From 0c28a4184a202e7fbca5d78a7df5d75edf1afd04 Mon Sep 17 00:00:00 2001 From: Ricardo Rius Date: Fri, 31 Jul 2020 00:04:40 +0200 Subject: [PATCH 01/91] Initial commit --- .gitignore | 13 ++ Cargo.toml | 9 + LICENSE | 24 ++ README.md | 169 ++++++++++++++ node/Cargo.toml | 111 +++++++++ node/build.rs | 7 + node/src/chain_spec.rs | 157 +++++++++++++ node/src/cli.rs | 11 + node/src/command.rs | 86 +++++++ node/src/lib.rs | 2 + node/src/main.rs | 12 + node/src/service.rs | 256 +++++++++++++++++++++ pallets/template/Cargo.toml | 56 +++++ pallets/template/src/lib.rs | 103 +++++++++ pallets/template/src/mock.rs | 61 +++++ pallets/template/src/tests.rs | 23 ++ runtime/Cargo.toml | 198 ++++++++++++++++ runtime/build.rs | 10 + runtime/src/lib.rs | 420 ++++++++++++++++++++++++++++++++++ 19 files changed, 1728 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.toml create mode 100644 LICENSE create mode 100644 README.md create mode 100644 node/Cargo.toml create mode 100644 node/build.rs create mode 100644 node/src/chain_spec.rs create mode 100644 node/src/cli.rs create mode 100644 node/src/command.rs create mode 100644 node/src/lib.rs create mode 100644 node/src/main.rs create mode 100644 node/src/service.rs create mode 100644 pallets/template/Cargo.toml create mode 100644 pallets/template/src/lib.rs create mode 100644 pallets/template/src/mock.rs create mode 100644 pallets/template/src/tests.rs create mode 100644 runtime/Cargo.toml create mode 100644 runtime/build.rs create mode 100644 runtime/src/lib.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..dee6ee19 --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +# Generated by Cargo +# will have compiled files and executables +**/target/ +# These are backup files generated by rustfmt +**/*.rs.bk + +.DS_Store + +# The cache for docker container dependency +.cargo + +# The cache for chain data in container +.local \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 00000000..d77ff631 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,9 @@ +[profile.release] +panic = 'unwind' + +[workspace] +members = [ + 'node', + 'pallets/template', + 'runtime', +] diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..cf1ab25d --- /dev/null +++ b/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/README.md b/README.md new file mode 100644 index 00000000..ca5fa2e9 --- /dev/null +++ b/README.md @@ -0,0 +1,169 @@ +# Substrate Node Template + +A new FRAME-based Substrate node, ready for hacking :rocket: + +## Local Development + +Follow these steps to prepare a local Substrate development environment :hammer_and_wrench: + +### Simple Setup + +Install all the required dependencies with a single command (be patient, this can take up to 30 +minutes). + +```bash +curl https://getsubstrate.io -sSf | bash -s -- --fast +``` + +### Manual Setup + +Find manual setup instructions at the +[Substrate Developer Hub](https://substrate.dev/docs/en/knowledgebase/getting-started/#manual-installation). + +### Build + +Once the development environment is set up, build the node template. This command will build the +[Wasm](https://substrate.dev/docs/en/knowledgebase/advanced/executor#wasm-execution) and +[native](https://substrate.dev/docs/en/knowledgebase/advanced/executor#native-execution) code: + +```bash +cargo build --release +``` + +## Run + +### Single Node Development Chain + +Purge any existing dev chain state: + +```bash +./target/release/node-template purge-chain --dev +``` + +Start a dev chain: + +```bash +./target/release/node-template --dev +``` + +Or, start a dev chain with detailed logging: + +```bash +RUST_LOG=debug RUST_BACKTRACE=1 ./target/release/node-template -lruntime=debug --dev +``` + +### Multi-Node Local Testnet + +If you want to see the multi-node consensus algorithm in action, refer to +[our Start a Private Network tutorial](https://substrate.dev/docs/en/tutorials/start-a-private-network/). + +## Template Structure + +A Substrate project such as this consists of a number of components that are spread across a few +directories. + +### Node + +A blockchain node is an application that allows users to participate in a blockchain network. +Substrate-based blockchain nodes expose a number of capabilities: + +- Networking: Substrate nodes use the [`libp2p`](https://libp2p.io/) networking stack to allow the + nodes in the network to communicate with one another. +- Consensus: Blockchains must have a way to come to + [consensus](https://substrate.dev/docs/en/knowledgebase/advanced/consensus) on the state of the + network. Substrate makes it possible to supply custom consensus engines and also ships with + several consensus mechanisms that have been built on top of Web3 Foundation research. +- RPC Server: A remote procedure call (RPC) server is used to interact with Substrate nodes. + +There are several files in the `node` directory - take special note of the following: + +- [`chain_spec.rs`](./node/src/chain_spec.rs): A + [chain specification](https://substrate.dev/docs/en/knowledgebase/integrate/chain-spec) is a + source code file that defines a Substrate chain's initial (genesis) state. Chain specifications + are useful for development and testing, and critical when architecting the launch of a + production chain. Take note of the `development_config` and `testnet_genesis` functions, which + are used to define the genesis state for the local development chain configuration. These + functions identify some + [well-known accounts](https://substrate.dev/docs/en/knowledgebase/integrate/subkey#well-known-keys) + and use them to configure the blockchain's initial state. +- [`service.rs`](./node/src/service.rs): This file defines the node implementation. Take note of + the libraries that this file imports and the names of the functions it invokes. In particular, + there are references to consensus-related topics, such as the + [longest chain rule](https://substrate.dev/docs/en/knowledgebase/advanced/consensus#longest-chain-rule), + the [Aura](https://substrate.dev/docs/en/knowledgebase/advanced/consensus#aura) block authoring + mechanism and the + [GRANDPA](https://substrate.dev/docs/en/knowledgebase/advanced/consensus#grandpa) finality + gadget. + +After the node has been [built](#build), refer to the embedded documentation to learn more about the +capabilities and configuration parameters that it exposes: + +```shell +./target/release/node-template --help +``` + +### Runtime + +The Substrate project in this repository uses the +[FRAME](https://substrate.dev/docs/en/knowledgebase/runtime/frame) framework to construct a +blockchain runtime. FRAME allows runtime developers to declare domain-specific logic in modules +called "pallets". At the heart of FRAME is a helpful +[macro language](https://substrate.dev/docs/en/knowledgebase/runtime/macros) that makes it easy to +create pallets and flexibly compose them to create blockchains that can address a variety of needs. + +Review the [FRAME runtime implementation](./runtime/src/lib.rs) included in this template and note +the following: + +- This file configures several pallets to include in the runtime. Each pallet configuration is + defined by a code block that begins with `impl $PALLET_NAME::Trait for Runtime`. +- The pallets are composed into a single runtime by way of the + [`construct_runtime!`](https://crates.parity.io/frame_support/macro.construct_runtime.html) + macro, which is part of the core + [FRAME Support](https://substrate.dev/docs/en/knowledgebase/runtime/frame#support-library) + library. + +### Pallets + +The runtime in this project is constructed using many FRAME pallets that ship with the +[core Substrate repository](https://github.com/paritytech/substrate/tree/master/frame) and a +template pallet that is [defined in the `pallets`](./pallets/template/src/lib.rs) directory. + +A FRAME pallet is compromised of a number of blockchain primitives: + +- Storage: FRAME defines a rich set of powerful + [storage abstractions](https://substrate.dev/docs/en/knowledgebase/runtime/storage) that makes + it easy to use Substrate's efficient key-value database to manage the evolving state of a + blockchain. +- Dispatchables: FRAME pallets define special types of functions that can be invoked (dispatched) + from outside of the runtime in order to update its state. +- Events: Substrate uses [events](https://substrate.dev/docs/en/knowledgebase/runtime/events) to + notify users of important changes in the runtime. +- Errors: When a dispatchable fails, it returns an error. +- Trait: The `Trait` configuration interface is used to define the types and parameters upon which + a FRAME pallet depends. + +### Run in Docker + +First, install [Docker](https://docs.docker.com/get-docker/) and +[Docker Compose](https://docs.docker.com/compose/install/). + +Then run the following command to start a single node development chain. + +```bash +./scripts/docker_run.sh +``` + +This command will firstly compile your code, and then start a local development network. You can +also replace the default command (`cargo build --release && ./target/release/node-template --dev --ws-external`) +by appending your own. A few useful ones are as follow. + +```bash +# Run Substrate node without re-compiling +./scripts/docker_run.sh ./target/release/node-template --dev --ws-external + +# Purge the local dev chain +./scripts/docker_run.sh ./target/release/node-template purge-chain --dev + +# Check whether the code is compilable +./scripts/docker_run.sh cargo check +``` diff --git a/node/Cargo.toml b/node/Cargo.toml new file mode 100644 index 00000000..e87eb251 --- /dev/null +++ b/node/Cargo.toml @@ -0,0 +1,111 @@ +[package] +authors = ['Substrate DevHub '] +build = 'build.rs' +description = 'A fresh FRAME-based Substrate node, ready for hacking.' +edition = '2018' +homepage = 'https://substrate.dev' +license = 'Unlicense' +name = 'node-template' +repository = 'https://github.com/substrate-developer-hub/substrate-node-template/' +version = '2.0.0-rc5' + +[package.metadata.docs.rs] +targets = ['x86_64-unknown-linux-gnu'] + +[[bin]] +name = 'node-template' + +[dependencies.node-template-runtime] +path = '../runtime' +version = '2.0.0-rc5' + +[dependencies.sc-basic-authorship] +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '0.8.0-rc5' + +[dependencies.sc-cli] +features = ['wasmtime'] +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '0.8.0-rc5' + +[dependencies.sc-client-api] +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.sc-consensus] +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '0.8.0-rc5' + +[dependencies.sc-consensus-aura] +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '0.8.0-rc5' + +[dependencies.sc-executor] +features = ['wasmtime'] +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '0.8.0-rc5' + +[dependencies.sc-finality-grandpa] +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '0.8.0-rc5' + +[dependencies.sc-service] +features = ['wasmtime'] +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '0.8.0-rc5' + +[dependencies.sc-transaction-pool] +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.sp-consensus] +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '0.8.0-rc5' + +[dependencies.sp-consensus-aura] +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '0.8.0-rc5' + +[dependencies.sp-core] +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.sp-finality-grandpa] +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.sp-inherents] +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.sp-runtime] +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.sp-transaction-pool] +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.structopt] +version = '0.3.8' + +[build-dependencies.substrate-build-script-utils] +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' diff --git a/node/build.rs b/node/build.rs new file mode 100644 index 00000000..e3bfe311 --- /dev/null +++ b/node/build.rs @@ -0,0 +1,7 @@ +use substrate_build_script_utils::{generate_cargo_keys, rerun_if_git_head_changed}; + +fn main() { + generate_cargo_keys(); + + rerun_if_git_head_changed(); +} diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs new file mode 100644 index 00000000..e49457b0 --- /dev/null +++ b/node/src/chain_spec.rs @@ -0,0 +1,157 @@ +use sp_core::{Pair, Public, sr25519}; +use node_template_runtime::{ + AccountId, AuraConfig, BalancesConfig, GenesisConfig, GrandpaConfig, + SudoConfig, SystemConfig, WASM_BINARY, Signature +}; +use sp_consensus_aura::sr25519::AuthorityId as AuraId; +use sp_finality_grandpa::AuthorityId as GrandpaId; +use sp_runtime::traits::{Verify, IdentifyAccount}; +use sc_service::ChainType; + +// The URL for the telemetry server. +// const STAGING_TELEMETRY_URL: &str = "wss://telemetry.polkadot.io/submit/"; + +/// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type. +pub type ChainSpec = sc_service::GenericChainSpec; + +/// Generate a crypto pair from seed. +pub fn get_from_seed(seed: &str) -> ::Public { + TPublic::Pair::from_string(&format!("//{}", seed), None) + .expect("static values are valid; qed") + .public() +} + +type AccountPublic = ::Signer; + +/// Generate an account ID from seed. +pub fn get_account_id_from_seed(seed: &str) -> AccountId where + AccountPublic: From<::Public> +{ + AccountPublic::from(get_from_seed::(seed)).into_account() +} + +/// Generate an Aura authority key. +pub fn authority_keys_from_seed(s: &str) -> (AuraId, GrandpaId) { + ( + get_from_seed::(s), + get_from_seed::(s), + ) +} + +pub fn development_config() -> Result { + let wasm_binary = WASM_BINARY.ok_or("Development wasm binary not available".to_string())?; + + Ok(ChainSpec::from_genesis( + // Name + "Development", + // ID + "dev", + ChainType::Development, + move || testnet_genesis( + wasm_binary, + // Initial PoA authorities + vec![ + authority_keys_from_seed("Alice"), + ], + // Sudo account + get_account_id_from_seed::("Alice"), + // Pre-funded accounts + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + ], + true, + ), + // Bootnodes + vec![], + // Telemetry + None, + // Protocol ID + None, + // Properties + None, + // Extensions + None, + )) +} + +pub fn local_testnet_config() -> Result { + let wasm_binary = WASM_BINARY.ok_or("Development wasm binary not available".to_string())?; + + Ok(ChainSpec::from_genesis( + // Name + "Local Testnet", + // ID + "local_testnet", + ChainType::Local, + move || testnet_genesis( + wasm_binary, + // Initial PoA authorities + vec![ + authority_keys_from_seed("Alice"), + authority_keys_from_seed("Bob"), + ], + // Sudo account + get_account_id_from_seed::("Alice"), + // Pre-funded accounts + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), + ], + true, + ), + // Bootnodes + vec![], + // Telemetry + None, + // Protocol ID + None, + // Properties + None, + // Extensions + None, + )) +} + +/// Configure initial storage state for FRAME modules. +fn testnet_genesis( + wasm_binary: &[u8], + initial_authorities: Vec<(AuraId, GrandpaId)>, + root_key: AccountId, + endowed_accounts: Vec, + _enable_println: bool, +) -> GenesisConfig { + GenesisConfig { + system: Some(SystemConfig { + // Add Wasm runtime to storage. + code: wasm_binary.to_vec(), + changes_trie_config: Default::default(), + }), + balances: Some(BalancesConfig { + // Configure endowed accounts with initial balance of 1 << 60. + balances: endowed_accounts.iter().cloned().map(|k|(k, 1 << 60)).collect(), + }), + aura: Some(AuraConfig { + authorities: initial_authorities.iter().map(|x| (x.0.clone())).collect(), + }), + grandpa: Some(GrandpaConfig { + authorities: initial_authorities.iter().map(|x| (x.1.clone(), 1)).collect(), + }), + sudo: Some(SudoConfig { + // Assign network admin rights. + key: root_key, + }), + } +} diff --git a/node/src/cli.rs b/node/src/cli.rs new file mode 100644 index 00000000..0091ef7d --- /dev/null +++ b/node/src/cli.rs @@ -0,0 +1,11 @@ +use sc_cli::{RunCmd, Subcommand}; +use structopt::StructOpt; + +#[derive(Debug, StructOpt)] +pub struct Cli { + #[structopt(subcommand)] + pub subcommand: Option, + + #[structopt(flatten)] + pub run: RunCmd, +} diff --git a/node/src/command.rs b/node/src/command.rs new file mode 100644 index 00000000..81b3ce77 --- /dev/null +++ b/node/src/command.rs @@ -0,0 +1,86 @@ +// This file is part of Substrate. + +// Copyright (C) 2017-2020 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use crate::chain_spec; +use crate::cli::Cli; +use crate::service; +use sc_cli::{SubstrateCli, RuntimeVersion, Role, ChainSpec}; +use sc_service::ServiceParams; +use crate::service::new_full_params; + +impl SubstrateCli for Cli { + fn impl_name() -> String { + "Substrate Node".into() + } + + fn impl_version() -> String { + env!("SUBSTRATE_CLI_IMPL_VERSION").into() + } + + fn description() -> String { + env!("CARGO_PKG_DESCRIPTION").into() + } + + fn author() -> String { + env!("CARGO_PKG_AUTHORS").into() + } + + fn support_url() -> String { + "support.anonymous.an".into() + } + + fn copyright_start_year() -> i32 { + 2017 + } + + fn load_spec(&self, id: &str) -> Result, String> { + Ok(match id { + "dev" => Box::new(chain_spec::development_config()?), + "" | "local" => Box::new(chain_spec::local_testnet_config()?), + path => Box::new(chain_spec::ChainSpec::from_json_file( + std::path::PathBuf::from(path), + )?), + }) + } + + fn native_runtime_version(_: &Box) -> &'static RuntimeVersion { + &node_template_runtime::VERSION + } +} + +/// Parse and run command line arguments +pub fn run() -> sc_cli::Result<()> { + let cli = Cli::from_args(); + + match &cli.subcommand { + Some(subcommand) => { + let runner = cli.create_runner(subcommand)?; + runner.run_subcommand(subcommand, |config| { + let (ServiceParams { client, backend, task_manager, import_queue, .. }, ..) + = new_full_params(config)?; + Ok((client, backend, import_queue, task_manager)) + }) + } + None => { + let runner = cli.create_runner(&cli.run)?; + runner.run_node_until_exit(|config| match config.role { + Role::Light => service::new_light(config), + _ => service::new_full(config), + }) + } + } +} diff --git a/node/src/lib.rs b/node/src/lib.rs new file mode 100644 index 00000000..38e43372 --- /dev/null +++ b/node/src/lib.rs @@ -0,0 +1,2 @@ +pub mod chain_spec; +pub mod service; diff --git a/node/src/main.rs b/node/src/main.rs new file mode 100644 index 00000000..369e6932 --- /dev/null +++ b/node/src/main.rs @@ -0,0 +1,12 @@ +//! Substrate Node Template CLI library. +#![warn(missing_docs)] + +mod chain_spec; +#[macro_use] +mod service; +mod cli; +mod command; + +fn main() -> sc_cli::Result<()> { + command::run() +} diff --git a/node/src/service.rs b/node/src/service.rs new file mode 100644 index 00000000..4c41e988 --- /dev/null +++ b/node/src/service.rs @@ -0,0 +1,256 @@ +//! Service and ServiceFactory implementation. Specialized wrapper over substrate service. + +use std::sync::Arc; +use std::time::Duration; +use sc_client_api::{ExecutorProvider, RemoteBackend}; +use node_template_runtime::{self, Block, RuntimeApi}; +use sc_service::{error::Error as ServiceError, Configuration, ServiceComponents, TaskManager}; +use sp_inherents::InherentDataProviders; +use sc_executor::native_executor_instance; +pub use sc_executor::NativeExecutor; +use sp_consensus_aura::sr25519::{AuthorityPair as AuraPair}; +use sc_finality_grandpa::{ + FinalityProofProvider as GrandpaFinalityProofProvider, StorageAndProofProvider, SharedVoterState, +}; + +// Our native executor instance. +native_executor_instance!( + pub Executor, + node_template_runtime::api::dispatch, + node_template_runtime::native_version, +); + +type FullClient = sc_service::TFullClient; +type FullBackend = sc_service::TFullBackend; +type FullSelectChain = sc_consensus::LongestChain; + +pub fn new_full_params(config: Configuration) -> Result<( + sc_service::ServiceParams< + Block, FullClient, + sc_consensus_aura::AuraImportQueue, + sc_transaction_pool::FullPool, + (), FullBackend, + >, + FullSelectChain, + sp_inherents::InherentDataProviders, + sc_finality_grandpa::GrandpaBlockImport, + sc_finality_grandpa::LinkHalf +), ServiceError> { + let inherent_data_providers = sp_inherents::InherentDataProviders::new(); + + let (client, backend, keystore, task_manager) = + sc_service::new_full_parts::(&config)?; + let client = Arc::new(client); + + let select_chain = sc_consensus::LongestChain::new(backend.clone()); + + let pool_api = sc_transaction_pool::FullChainApi::new( + client.clone(), config.prometheus_registry(), + ); + let transaction_pool = sc_transaction_pool::BasicPool::new_full( + config.transaction_pool.clone(), + std::sync::Arc::new(pool_api), + config.prometheus_registry(), + task_manager.spawn_handle(), + client.clone(), + ); + + let (grandpa_block_import, grandpa_link) = sc_finality_grandpa::block_import( + client.clone(), &(client.clone() as Arc<_>), select_chain.clone(), + )?; + + let aura_block_import = sc_consensus_aura::AuraBlockImport::<_, _, _, AuraPair>::new( + grandpa_block_import.clone(), client.clone(), + ); + + let import_queue = sc_consensus_aura::import_queue::<_, _, _, AuraPair, _>( + sc_consensus_aura::slot_duration(&*client)?, + aura_block_import, + Some(Box::new(grandpa_block_import.clone())), + None, + client.clone(), + inherent_data_providers.clone(), + &task_manager.spawn_handle(), + config.prometheus_registry(), + )?; + + let provider = client.clone() as Arc>; + let finality_proof_provider = + Arc::new(GrandpaFinalityProofProvider::new(backend.clone(), provider)); + + let params = sc_service::ServiceParams { + backend, client, import_queue, keystore, task_manager, transaction_pool, + config, + block_announce_validator_builder: None, + finality_proof_request_builder: None, + finality_proof_provider: Some(finality_proof_provider), + on_demand: None, + remote_blockchain: None, + rpc_extensions_builder: Box::new(|_| ()), + }; + + Ok(( + params, select_chain, inherent_data_providers, + grandpa_block_import, grandpa_link, + )) +} + +/// Builds a new service for a full client. +pub fn new_full(config: Configuration) -> Result { + let ( + params, select_chain, inherent_data_providers, + block_import, grandpa_link, + ) = new_full_params(config)?; + + let ( + role, force_authoring, name, enable_grandpa, prometheus_registry, + client, transaction_pool, keystore, + ) = { + let sc_service::ServiceParams { + config, client, transaction_pool, keystore, .. + } = ¶ms; + + ( + config.role.clone(), + config.force_authoring, + config.network.node_name.clone(), + !config.disable_grandpa, + config.prometheus_registry().cloned(), + + client.clone(), transaction_pool.clone(), keystore.clone(), + ) + }; + + let ServiceComponents { + task_manager, network, telemetry_on_connect_sinks, .. + } = sc_service::build(params)?; + + if role.is_authority() { + let proposer = sc_basic_authorship::ProposerFactory::new( + client.clone(), + transaction_pool, + prometheus_registry.as_ref(), + ); + + let can_author_with = + sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()); + + let aura = sc_consensus_aura::start_aura::<_, _, _, _, _, AuraPair, _, _, _>( + sc_consensus_aura::slot_duration(&*client)?, + client.clone(), + select_chain, + block_import, + proposer, + network.clone(), + inherent_data_providers.clone(), + force_authoring, + keystore.clone(), + can_author_with, + )?; + + // the AURA authoring task is considered essential, i.e. if it + // fails we take down the service with it. + task_manager.spawn_essential_handle().spawn_blocking("aura", aura); + } + + // if the node isn't actively participating in consensus then it doesn't + // need a keystore, regardless of which protocol we use below. + let keystore = if role.is_authority() { + Some(keystore as sp_core::traits::BareCryptoStorePtr) + } else { + None + }; + + let grandpa_config = sc_finality_grandpa::Config { + // FIXME #1578 make this available through chainspec + gossip_duration: Duration::from_millis(333), + justification_period: 512, + name: Some(name), + observer_enabled: false, + keystore, + is_authority: role.is_network_authority(), + }; + + if enable_grandpa { + // start the full GRANDPA voter + // NOTE: non-authorities could run the GRANDPA observer protocol, but at + // this point the full voter should provide better guarantees of block + // and vote data availability than the observer. The observer has not + // been tested extensively yet and having most nodes in a network run it + // could lead to finality stalls. + let grandpa_config = sc_finality_grandpa::GrandpaParams { + config: grandpa_config, + link: grandpa_link, + network, + inherent_data_providers, + telemetry_on_connect: Some(telemetry_on_connect_sinks.on_connect_stream()), + voting_rule: sc_finality_grandpa::VotingRulesBuilder::default().build(), + prometheus_registry, + shared_voter_state: SharedVoterState::empty(), + }; + + // the GRANDPA voter task is considered infallible, i.e. + // if it fails we take down the service with it. + task_manager.spawn_essential_handle().spawn_blocking( + "grandpa-voter", + sc_finality_grandpa::run_grandpa_voter(grandpa_config)? + ); + } else { + sc_finality_grandpa::setup_disabled_grandpa( + client, + &inherent_data_providers, + network, + )?; + } + + Ok(task_manager) +} + +/// Builds a new service for a light client. +pub fn new_light(config: Configuration) -> Result { + let (client, backend, keystore, task_manager, on_demand) = + sc_service::new_light_parts::(&config)?; + + let transaction_pool_api = Arc::new(sc_transaction_pool::LightChainApi::new( + client.clone(), on_demand.clone(), + )); + let transaction_pool = sc_transaction_pool::BasicPool::new_light( + config.transaction_pool.clone(), + transaction_pool_api, + config.prometheus_registry(), + task_manager.spawn_handle(), + ); + + let grandpa_block_import = sc_finality_grandpa::light_block_import( + client.clone(), backend.clone(), &(client.clone() as Arc<_>), + Arc::new(on_demand.checker().clone()) as Arc<_>, + )?; + let finality_proof_import = grandpa_block_import.clone(); + let finality_proof_request_builder = + finality_proof_import.create_finality_proof_request_builder(); + + let import_queue = sc_consensus_aura::import_queue::<_, _, _, AuraPair, _>( + sc_consensus_aura::slot_duration(&*client)?, + grandpa_block_import, + None, + Some(Box::new(finality_proof_import)), + client.clone(), + InherentDataProviders::new(), + &task_manager.spawn_handle(), + config.prometheus_registry(), + )?; + + let finality_proof_provider = + Arc::new(GrandpaFinalityProofProvider::new(backend.clone(), client.clone() as Arc<_>)); + + sc_service::build(sc_service::ServiceParams { + block_announce_validator_builder: None, + finality_proof_request_builder: Some(finality_proof_request_builder), + finality_proof_provider: Some(finality_proof_provider), + on_demand: Some(on_demand), + remote_blockchain: Some(backend.remote_blockchain()), + rpc_extensions_builder: Box::new(|_| ()), + transaction_pool: Arc::new(transaction_pool), + config, client, import_queue, keystore, backend, task_manager + }).map(|ServiceComponents { task_manager, .. }| task_manager) +} diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml new file mode 100644 index 00000000..21741815 --- /dev/null +++ b/pallets/template/Cargo.toml @@ -0,0 +1,56 @@ +[package] +authors = ['Substrate DevHub '] +description = 'FRAME pallet template for defining custom runtime logic.' +edition = '2018' +homepage = 'https://substrate.dev' +license = 'Unlicense' +name = 'pallet-template' +repository = 'https://github.com/substrate-developer-hub/substrate-node-template/' +version = '2.0.0-rc5' + +[package.metadata.docs.rs] +targets = ['x86_64-unknown-linux-gnu'] + +[dependencies.codec] +default-features = false +features = ['derive'] +package = 'parity-scale-codec' +version = '1.3.1' + +[dependencies.frame-support] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.frame-system] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dev-dependencies.sp-core] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dev-dependencies.sp-io] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dev-dependencies.sp-runtime] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[features] +default = ['std'] +std = [ + 'codec/std', + 'frame-support/std', + 'frame-system/std', +] diff --git a/pallets/template/src/lib.rs b/pallets/template/src/lib.rs new file mode 100644 index 00000000..729a7127 --- /dev/null +++ b/pallets/template/src/lib.rs @@ -0,0 +1,103 @@ +#![cfg_attr(not(feature = "std"), no_std)] + +/// Edit this file to define custom logic or remove it if it is not needed. +/// Learn more about FRAME and the core library of Substrate FRAME pallets: +/// https://substrate.dev/docs/en/knowledgebase/runtime/frame + +use frame_support::{decl_module, decl_storage, decl_event, decl_error, dispatch, traits::Get}; +use frame_system::ensure_signed; + +#[cfg(test)] +mod mock; + +#[cfg(test)] +mod tests; + +/// Configure the pallet by specifying the parameters and types on which it depends. +pub trait Trait: frame_system::Trait { + /// Because this pallet emits events, it depends on the runtime's definition of an event. + type Event: From> + Into<::Event>; +} + +// The pallet's runtime storage items. +// https://substrate.dev/docs/en/knowledgebase/runtime/storage +decl_storage! { + // A unique name is used to ensure that the pallet's storage items are isolated. + // This name may be updated, but each pallet in the runtime must use a unique name. + // ---------------------------------vvvvvvvvvvvvvv + trait Store for Module as TemplateModule { + // Learn more about declaring storage items: + // https://substrate.dev/docs/en/knowledgebase/runtime/storage#declaring-storage-items + Something get(fn something): Option; + } +} + +// Pallets use events to inform users when important changes are made. +// https://substrate.dev/docs/en/knowledgebase/runtime/events +decl_event!( + pub enum Event where AccountId = ::AccountId { + /// Event documentation should end with an array that provides descriptive names for event + /// parameters. [something, who] + SomethingStored(u32, AccountId), + } +); + +// Errors inform users that something went wrong. +decl_error! { + pub enum Error for Module { + /// Error names should be descriptive. + NoneValue, + /// Errors should have helpful documentation associated with them. + StorageOverflow, + } +} + +// Dispatchable functions allows users to interact with the pallet and invoke state changes. +// These functions materialize as "extrinsics", which are often compared to transactions. +// Dispatchable functions must be annotated with a weight and must return a DispatchResult. +decl_module! { + pub struct Module for enum Call where origin: T::Origin { + // Errors must be initialized if they are used by the pallet. + type Error = Error; + + // Events must be initialized if they are used by the pallet. + fn deposit_event() = default; + + /// An example dispatchable that takes a singles value as a parameter, writes the value to + /// storage and emits an event. This function must be dispatched by a signed extrinsic. + #[weight = 10_000 + T::DbWeight::get().writes(1)] + pub fn do_something(origin, something: u32) -> dispatch::DispatchResult { + // Check that the extrinsic was signed and get the signer. + // This function will return an error if the extrinsic is not signed. + // https://substrate.dev/docs/en/knowledgebase/runtime/origin + let who = ensure_signed(origin)?; + + // Update storage. + Something::put(something); + + // Emit an event. + Self::deposit_event(RawEvent::SomethingStored(something, who)); + // Return a successful DispatchResult + Ok(()) + } + + /// An example dispatchable that may throw a custom error. + #[weight = 10_000 + T::DbWeight::get().reads_writes(1,1)] + pub fn cause_error(origin) -> dispatch::DispatchResult { + let _who = ensure_signed(origin)?; + + // Read a value from storage. + match Something::get() { + // Return an error if the value has not been set. + None => Err(Error::::NoneValue)?, + Some(old) => { + // Increment the value read from storage; will error in the event of overflow. + let new = old.checked_add(1).ok_or(Error::::StorageOverflow)?; + // Update the value in storage with the incremented result. + Something::put(new); + Ok(()) + }, + } + } + } +} diff --git a/pallets/template/src/mock.rs b/pallets/template/src/mock.rs new file mode 100644 index 00000000..8c3bf2b4 --- /dev/null +++ b/pallets/template/src/mock.rs @@ -0,0 +1,61 @@ +use crate::{Module, Trait}; +use sp_core::H256; +use frame_support::{impl_outer_origin, parameter_types, weights::Weight}; +use sp_runtime::{ + traits::{BlakeTwo256, IdentityLookup}, testing::Header, Perbill, +}; +use frame_system as system; + +impl_outer_origin! { + pub enum Origin for Test {} +} + +// Configure a mock runtime to test the pallet. + +#[derive(Clone, Eq, PartialEq)] +pub struct Test; +parameter_types! { + pub const BlockHashCount: u64 = 250; + pub const MaximumBlockWeight: Weight = 1024; + pub const MaximumBlockLength: u32 = 2 * 1024; + pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75); +} + +impl system::Trait for Test { + type BaseCallFilter = (); + type Origin = Origin; + type Call = (); + type Index = u64; + type BlockNumber = u64; + type Hash = H256; + type Hashing = BlakeTwo256; + type AccountId = u64; + type Lookup = IdentityLookup; + type Header = Header; + type Event = (); + type BlockHashCount = BlockHashCount; + type MaximumBlockWeight = MaximumBlockWeight; + type DbWeight = (); + type BlockExecutionWeight = (); + type ExtrinsicBaseWeight = (); + type MaximumExtrinsicWeight = MaximumBlockWeight; + type MaximumBlockLength = MaximumBlockLength; + type AvailableBlockRatio = AvailableBlockRatio; + type Version = (); + type ModuleToIndex = (); + type AccountData = (); + type OnNewAccount = (); + type OnKilledAccount = (); + type SystemWeightInfo = (); +} + +impl Trait for Test { + type Event = (); +} + +pub type TemplateModule = Module; + +// Build genesis storage according to the mock runtime. +pub fn new_test_ext() -> sp_io::TestExternalities { + system::GenesisConfig::default().build_storage::().unwrap().into() +} diff --git a/pallets/template/src/tests.rs b/pallets/template/src/tests.rs new file mode 100644 index 00000000..3356b29f --- /dev/null +++ b/pallets/template/src/tests.rs @@ -0,0 +1,23 @@ +use crate::{Error, mock::*}; +use frame_support::{assert_ok, assert_noop}; + +#[test] +fn it_works_for_default_value() { + new_test_ext().execute_with(|| { + // Dispatch a signed extrinsic. + assert_ok!(TemplateModule::do_something(Origin::signed(1), 42)); + // Read pallet storage and assert an expected result. + assert_eq!(TemplateModule::something(), Some(42)); + }); +} + +#[test] +fn correct_error_for_none_value() { + new_test_ext().execute_with(|| { + // Ensure the expected error is thrown when no value is present. + assert_noop!( + TemplateModule::cause_error(Origin::signed(1)), + Error::::NoneValue + ); + }); +} diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml new file mode 100644 index 00000000..a8a6ef50 --- /dev/null +++ b/runtime/Cargo.toml @@ -0,0 +1,198 @@ +[package] +authors = ['Substrate DevHub '] +edition = '2018' +homepage = 'https://substrate.dev' +license = 'Unlicense' +name = 'node-template-runtime' +repository = 'https://github.com/substrate-developer-hub/substrate-node-template/' +version = '2.0.0-rc5' + +[package.metadata.docs.rs] +targets = ['x86_64-unknown-linux-gnu'] + +[dependencies.aura] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +package = 'pallet-aura' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.balances] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +package = 'pallet-balances' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.codec] +default-features = false +features = ['derive'] +package = 'parity-scale-codec' +version = '1.3.1' + +[dependencies.frame-executive] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.frame-support] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.grandpa] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +package = 'pallet-grandpa' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.randomness-collective-flip] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +package = 'pallet-randomness-collective-flip' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.serde] +default-features = false +features = ['derive'] +optional = true +version = '1.0.101' + +[dependencies.sp-api] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.sp-block-builder] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.sp-consensus-aura] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '0.8.0-rc5' + +[dependencies.sp-core] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.sp-inherents] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.sp-offchain] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.sp-runtime] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.sp-session] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.sp-std] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.sp-transaction-pool] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.sp-version] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.sudo] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +package = 'pallet-sudo' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.system] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +package = 'frame-system' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.template] +default-features = false +package = 'pallet-template' +path = '../pallets/template' +version = '2.0.0-rc5' + +[dependencies.timestamp] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +package = 'pallet-timestamp' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[dependencies.transaction-payment] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +package = 'pallet-transaction-payment' +tag = 'v2.0.0-rc5' +version = '2.0.0-rc5' + +[build-dependencies.wasm-builder-runner] +git = 'https://github.com/paritytech/substrate.git' +package = 'substrate-wasm-builder-runner' +tag = 'v2.0.0-rc5' +version = '1.0.5' + +[features] +default = ['std'] +std = [ + 'aura/std', + 'balances/std', + 'codec/std', + 'frame-executive/std', + 'frame-support/std', + 'grandpa/std', + 'randomness-collective-flip/std', + 'serde/std', + 'sp-api/std', + 'sp-block-builder/std', + 'sp-consensus-aura/std', + 'sp-core/std', + 'sp-inherents/std', + 'sp-offchain/std', + 'sp-runtime/std', + 'sp-session/std', + 'sp-std/std', + 'sp-transaction-pool/std', + 'sp-version/std', + 'sudo/std', + 'system/std', + 'timestamp/std', + 'transaction-payment/std', + 'template/std', +] diff --git a/runtime/build.rs b/runtime/build.rs new file mode 100644 index 00000000..52705043 --- /dev/null +++ b/runtime/build.rs @@ -0,0 +1,10 @@ +use wasm_builder_runner::WasmBuilder; + +fn main() { + WasmBuilder::new() + .with_current_project() + .with_wasm_builder_from_crates("2.0.0") + .export_heap_base() + .import_memory() + .build() +} diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs new file mode 100644 index 00000000..c46d515a --- /dev/null +++ b/runtime/src/lib.rs @@ -0,0 +1,420 @@ +#![cfg_attr(not(feature = "std"), no_std)] +// `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256. +#![recursion_limit="256"] + +// Make the WASM binary available. +#[cfg(feature = "std")] +include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); + +use sp_std::prelude::*; +use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; +use sp_runtime::{ + ApplyExtrinsicResult, generic, create_runtime_str, impl_opaque_keys, MultiSignature, + transaction_validity::{TransactionValidity, TransactionSource}, +}; +use sp_runtime::traits::{ + BlakeTwo256, Block as BlockT, IdentityLookup, Verify, IdentifyAccount, NumberFor, Saturating, +}; +use sp_api::impl_runtime_apis; +use sp_consensus_aura::sr25519::AuthorityId as AuraId; +use grandpa::{AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList}; +use grandpa::fg_primitives; +use sp_version::RuntimeVersion; +#[cfg(feature = "std")] +use sp_version::NativeVersion; + +// A few exports that help ease life for downstream crates. +#[cfg(any(feature = "std", test))] +pub use sp_runtime::BuildStorage; +pub use timestamp::Call as TimestampCall; +pub use balances::Call as BalancesCall; +pub use sp_runtime::{Permill, Perbill}; +pub use frame_support::{ + construct_runtime, parameter_types, StorageValue, + traits::{KeyOwnerProofSystem, Randomness}, + weights::{ + Weight, IdentityFee, + constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND}, + }, +}; + +/// Import the template pallet. +pub use template; + +/// An index to a block. +pub type BlockNumber = u32; + +/// Alias to 512-bit hash when used in the context of a transaction signature on the chain. +pub type Signature = MultiSignature; + +/// Some way of identifying an account on the chain. We intentionally make it equivalent +/// to the public key of our transaction signing scheme. +pub type AccountId = <::Signer as IdentifyAccount>::AccountId; + +/// The type for looking up accounts. We don't expect more than 4 billion of them, but you +/// never know... +pub type AccountIndex = u32; + +/// Balance of an account. +pub type Balance = u128; + +/// Index of a transaction in the chain. +pub type Index = u32; + +/// A hash of some data used by the chain. +pub type Hash = sp_core::H256; + +/// Digest item type. +pub type DigestItem = generic::DigestItem; + +/// Opaque types. These are used by the CLI to instantiate machinery that don't need to know +/// the specifics of the runtime. They can then be made to be agnostic over specific formats +/// of data like extrinsics, allowing for them to continue syncing the network through upgrades +/// to even the core data structures. +pub mod opaque { + use super::*; + + pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic; + + /// Opaque block header type. + pub type Header = generic::Header; + /// Opaque block type. + pub type Block = generic::Block; + /// Opaque block identifier type. + pub type BlockId = generic::BlockId; + + impl_opaque_keys! { + pub struct SessionKeys { + pub aura: Aura, + pub grandpa: Grandpa, + } + } +} + +pub const VERSION: RuntimeVersion = RuntimeVersion { + spec_name: create_runtime_str!("node-template"), + impl_name: create_runtime_str!("node-template"), + authoring_version: 1, + spec_version: 1, + impl_version: 1, + apis: RUNTIME_API_VERSIONS, + transaction_version: 1, +}; + +pub const MILLISECS_PER_BLOCK: u64 = 6000; + +pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK; + +// Time is measured by number of blocks. +pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber); +pub const HOURS: BlockNumber = MINUTES * 60; +pub const DAYS: BlockNumber = HOURS * 24; + +/// The version information used to identify this runtime when compiled natively. +#[cfg(feature = "std")] +pub fn native_version() -> NativeVersion { + NativeVersion { + runtime_version: VERSION, + can_author_with: Default::default(), + } +} + +parameter_types! { + pub const BlockHashCount: BlockNumber = 2400; + /// We allow for 2 seconds of compute with a 6 second average block time. + pub const MaximumBlockWeight: Weight = 2 * WEIGHT_PER_SECOND; + pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75); + /// Assume 10% of weight for average on_initialize calls. + pub MaximumExtrinsicWeight: Weight = AvailableBlockRatio::get() + .saturating_sub(Perbill::from_percent(10)) * MaximumBlockWeight::get(); + pub const MaximumBlockLength: u32 = 5 * 1024 * 1024; + pub const Version: RuntimeVersion = VERSION; +} + +// Configure FRAME pallets to include in runtime. + +impl system::Trait for Runtime { + /// The basic call filter to use in dispatchable. + type BaseCallFilter = (); + /// The identifier used to distinguish between accounts. + type AccountId = AccountId; + /// The aggregated dispatch type that is available for extrinsics. + type Call = Call; + /// The lookup mechanism to get account ID from whatever is passed in dispatchers. + type Lookup = IdentityLookup; + /// The index type for storing how many extrinsics an account has signed. + type Index = Index; + /// The index type for blocks. + type BlockNumber = BlockNumber; + /// The type for hashing blocks and tries. + type Hash = Hash; + /// The hashing algorithm used. + type Hashing = BlakeTwo256; + /// The header type. + type Header = generic::Header; + /// The ubiquitous event type. + type Event = Event; + /// The ubiquitous origin type. + type Origin = Origin; + /// Maximum number of block number to block hash mappings to keep (oldest pruned first). + type BlockHashCount = BlockHashCount; + /// Maximum weight of each block. + type MaximumBlockWeight = MaximumBlockWeight; + /// The weight of database operations that the runtime can invoke. + type DbWeight = RocksDbWeight; + /// The weight of the overhead invoked on the block import process, independent of the + /// extrinsics included in that block. + type BlockExecutionWeight = BlockExecutionWeight; + /// The base weight of any extrinsic processed by the runtime, independent of the + /// logic of that extrinsic. (Signature verification, nonce increment, fee, etc...) + type ExtrinsicBaseWeight = ExtrinsicBaseWeight; + /// The maximum weight that a single extrinsic of `Normal` dispatch class can have, + /// idependent of the logic of that extrinsics. (Roughly max block weight - average on + /// initialize cost). + type MaximumExtrinsicWeight = MaximumExtrinsicWeight; + /// Maximum size of all encoded transactions (in bytes) that are allowed in one block. + type MaximumBlockLength = MaximumBlockLength; + /// Portion of the block weight that is available to all normal transactions. + type AvailableBlockRatio = AvailableBlockRatio; + /// Version of the runtime. + type Version = Version; + /// Converts a module to the index of the module in `construct_runtime!`. + /// + /// This type is being generated by `construct_runtime!`. + type ModuleToIndex = ModuleToIndex; + /// What to do if a new account is created. + type OnNewAccount = (); + /// What to do if an account is fully reaped from the system. + type OnKilledAccount = (); + /// The data to be stored in an account. + type AccountData = balances::AccountData; + /// Weight information for the extrinsics of this pallet. + type SystemWeightInfo = (); +} + +impl aura::Trait for Runtime { + type AuthorityId = AuraId; +} + +impl grandpa::Trait for Runtime { + type Event = Event; + type Call = Call; + + type KeyOwnerProofSystem = (); + + type KeyOwnerProof = + >::Proof; + + type KeyOwnerIdentification = >::IdentificationTuple; + + type HandleEquivocation = (); +} + +parameter_types! { + pub const MinimumPeriod: u64 = SLOT_DURATION / 2; +} + +impl timestamp::Trait for Runtime { + /// A timestamp: milliseconds since the unix epoch. + type Moment = u64; + type OnTimestampSet = Aura; + type MinimumPeriod = MinimumPeriod; + type WeightInfo = (); +} + +parameter_types! { + pub const ExistentialDeposit: u128 = 500; +} + +impl balances::Trait for Runtime { + /// The type for recording an account's balance. + type Balance = Balance; + /// The ubiquitous event type. + type Event = Event; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = (); +} + +parameter_types! { + pub const TransactionByteFee: Balance = 1; +} + +impl transaction_payment::Trait for Runtime { + type Currency = balances::Module; + type OnTransactionPayment = (); + type TransactionByteFee = TransactionByteFee; + type WeightToFee = IdentityFee; + type FeeMultiplierUpdate = (); +} + +impl sudo::Trait for Runtime { + type Event = Event; + type Call = Call; +} + +/// Configure the pallet template in pallets/template. +impl template::Trait for Runtime { + type Event = Event; +} + +// Create the runtime by composing the FRAME pallets that were previously configured. +construct_runtime!( + pub enum Runtime where + Block = Block, + NodeBlock = opaque::Block, + UncheckedExtrinsic = UncheckedExtrinsic + { + System: system::{Module, Call, Config, Storage, Event}, + RandomnessCollectiveFlip: randomness_collective_flip::{Module, Call, Storage}, + Timestamp: timestamp::{Module, Call, Storage, Inherent}, + Aura: aura::{Module, Config, Inherent}, + Grandpa: grandpa::{Module, Call, Storage, Config, Event}, + Balances: balances::{Module, Call, Storage, Config, Event}, + TransactionPayment: transaction_payment::{Module, Storage}, + Sudo: sudo::{Module, Call, Config, Storage, Event}, + // Include the custom logic from the template pallet in the runtime. + TemplateModule: template::{Module, Call, Storage, Event}, + } +); + +/// The address format for describing accounts. +pub type Address = AccountId; +/// Block header type as expected by this runtime. +pub type Header = generic::Header; +/// Block type as expected by this runtime. +pub type Block = generic::Block; +/// A Block signed with a Justification +pub type SignedBlock = generic::SignedBlock; +/// BlockId type as expected by this runtime. +pub type BlockId = generic::BlockId; +/// The SignedExtension to the basic transaction logic. +pub type SignedExtra = ( + system::CheckSpecVersion, + system::CheckTxVersion, + system::CheckGenesis, + system::CheckEra, + system::CheckNonce, + system::CheckWeight, + transaction_payment::ChargeTransactionPayment +); +/// Unchecked extrinsic type as expected by this runtime. +pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; +/// Extrinsic type that has already been checked. +pub type CheckedExtrinsic = generic::CheckedExtrinsic; +/// Executive: handles dispatch to the various modules. +pub type Executive = frame_executive::Executive, Runtime, AllModules>; + +impl_runtime_apis! { + impl sp_api::Core for Runtime { + fn version() -> RuntimeVersion { + VERSION + } + + fn execute_block(block: Block) { + Executive::execute_block(block) + } + + fn initialize_block(header: &::Header) { + Executive::initialize_block(header) + } + } + + impl sp_api::Metadata for Runtime { + fn metadata() -> OpaqueMetadata { + Runtime::metadata().into() + } + } + + impl sp_block_builder::BlockBuilder for Runtime { + fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { + Executive::apply_extrinsic(extrinsic) + } + + fn finalize_block() -> ::Header { + Executive::finalize_block() + } + + fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { + data.create_extrinsics() + } + + fn check_inherents( + block: Block, + data: sp_inherents::InherentData, + ) -> sp_inherents::CheckInherentsResult { + data.check_extrinsics(&block) + } + + fn random_seed() -> ::Hash { + RandomnessCollectiveFlip::random_seed() + } + } + + impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { + fn validate_transaction( + source: TransactionSource, + tx: ::Extrinsic, + ) -> TransactionValidity { + Executive::validate_transaction(source, tx) + } + } + + impl sp_offchain::OffchainWorkerApi for Runtime { + fn offchain_worker(header: &::Header) { + Executive::offchain_worker(header) + } + } + + impl sp_consensus_aura::AuraApi for Runtime { + fn slot_duration() -> u64 { + Aura::slot_duration() + } + + fn authorities() -> Vec { + Aura::authorities() + } + } + + impl sp_session::SessionKeys for Runtime { + fn generate_session_keys(seed: Option>) -> Vec { + opaque::SessionKeys::generate(seed) + } + + fn decode_session_keys( + encoded: Vec, + ) -> Option, KeyTypeId)>> { + opaque::SessionKeys::decode_into_raw_public_keys(&encoded) + } + } + + impl fg_primitives::GrandpaApi for Runtime { + fn grandpa_authorities() -> GrandpaAuthorityList { + Grandpa::grandpa_authorities() + } + + fn submit_report_equivocation_unsigned_extrinsic( + _equivocation_proof: fg_primitives::EquivocationProof< + ::Hash, + NumberFor, + >, + _key_owner_proof: fg_primitives::OpaqueKeyOwnershipProof, + ) -> Option<()> { + None + } + + fn generate_key_ownership_proof( + _set_id: fg_primitives::SetId, + _authority_id: GrandpaId, + ) -> Option { + // NOTE: this is the only implementation possible since we've + // defined our key owner proof type as a bottom type (i.e. a type + // with no values). + None + } + } +} From f54c0cb8a319e05a3b3a6b5878afdeab47cfa4ae Mon Sep 17 00:00:00 2001 From: Ricardo Rius Date: Fri, 7 Aug 2020 12:08:40 +0200 Subject: [PATCH 02/91] Clean code --- .gitignore | 4 +- Cargo.lock | 9346 +++++++++++++++++++++++++++++++ Cargo.toml | 13 +- README.md | 64 +- node/Cargo.toml | 182 +- node/build.rs | 17 +- node/src/chain_spec.rs | 205 +- node/src/cli.rs | 103 +- node/src/command.rs | 434 +- node/src/lib.rs | 2 - node/src/main.rs | 6 +- node/src/service.rs | 398 +- pallets/template/Cargo.toml | 37 +- pallets/template/src/lib.rs | 1 + pallets/template/src/mock.rs | 1 + pallets/template/src/tests.rs | 1 + pallets/token-dealer/Cargo.toml | 30 + pallets/token-dealer/src/lib.rs | 154 + runtime/Cargo.toml | 265 +- runtime/build.rs | 18 +- runtime/src/lib.rs | 277 +- 21 files changed, 10653 insertions(+), 905 deletions(-) create mode 100644 Cargo.lock delete mode 100644 node/src/lib.rs create mode 100644 pallets/token-dealer/Cargo.toml create mode 100644 pallets/token-dealer/src/lib.rs diff --git a/.gitignore b/.gitignore index dee6ee19..edfb46c2 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,6 @@ .cargo # The cache for chain data in container -.local \ No newline at end of file +.local + +local-test \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 00000000..eb931f43 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,9346 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "addr2line" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6a2d3371669ab3ca9797670853d61402b03d0b4b9ebf33d677dfa720203072" +dependencies = [ + "gimli 0.22.0", +] + +[[package]] +name = "adler" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aead" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" +dependencies = [ + "generic-array 0.14.3", +] + +[[package]] +name = "aes" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7001367fde4c768a19d1029f0a8be5abd9308e1119846d5bd9ad26297b8faf5" +dependencies = [ + "aes-soft", + "aesni", + "block-cipher", +] + +[[package]] +name = "aes-gcm" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86f5007801316299f922a6198d1d09a0bae95786815d066d5880d13f7c45ead1" +dependencies = [ + "aead", + "aes", + "block-cipher", + "ghash", + "subtle 2.2.3", +] + +[[package]] +name = "aes-soft" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4925647ee64e5056cf231608957ce7c81e12d6d6e316b9ce1404778cc1d35fa7" +dependencies = [ + "block-cipher", + "byteorder", + "opaque-debug 0.2.3", +] + +[[package]] +name = "aesni" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050d39b0b7688b3a3254394c3e30a9d66c41dcf9b05b0e2dbdc623f6505d264" +dependencies = [ + "block-cipher", + "opaque-debug 0.2.3", +] + +[[package]] +name = "ahash" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f33b5018f120946c1dcf279194f238a9f146725593ead1c08fa47ff22b0b5d3" +dependencies = [ + "const-random", +] + +[[package]] +name = "ahash" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217" + +[[package]] +name = "aho-corasick" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86" +dependencies = [ + "memchr", +] + +[[package]] +name = "alga" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f823d037a7ec6ea2197046bafd4ae150e6bc36f9ca347404f46a46823fa84f2" +dependencies = [ + "approx", + "num-complex", + "num-traits 0.2.12", +] + +[[package]] +name = "ansi_term" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "anyhow" +version = "1.0.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b602bfe940d21c130f3895acd65221e8a61270debe89d628b9cb4e3ccb8569b" + +[[package]] +name = "approx" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3" +dependencies = [ + "num-traits 0.2.12", +] + +[[package]] +name = "arc-swap" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d25d88fd6b8041580a654f9d0c581a047baee2b3efee13275f2fc392fc75034" + +[[package]] +name = "arrayref" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" + +[[package]] +name = "arrayvec" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" +dependencies = [ + "nodrop", +] + +[[package]] +name = "arrayvec" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" + +[[package]] +name = "asn1_der" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fce6b6a0ffdafebd82c87e79e3f40e8d2c523e5fea5566ff6b90509bf98d638" +dependencies = [ + "asn1_der_derive", +] + +[[package]] +name = "asn1_der_derive" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d0864d84b8e07b145449be9a8537db86bf9de5ce03b913214694643b4743502" +dependencies = [ + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "assert_cmd" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "936fcf2c692b37c696cd0002c57752b2d9478402450c9ca4a463f6afae16d6f5" +dependencies = [ + "doc-comment", + "escargot", + "predicates", + "predicates-core", + "predicates-tree", + "wait-timeout", +] + +[[package]] +name = "assert_matches" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7deb0a829ca7bcfaf5da70b073a8d128619259a7be8216a355e23f00763059e5" + +[[package]] +name = "async-channel" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43de69555a39d52918e2bc33a408d3c0a86c829b212d898f4ca25d21a6387478" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + +[[package]] +name = "async-std" +version = "1.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00d68a33ebc8b57800847d00787307f84a562224a14db069b0acefe4c2abbf5d" +dependencies = [ + "async-task", + "crossbeam-utils", + "futures-channel", + "futures-core", + "futures-io", + "futures-timer 3.0.2", + "kv-log-macro", + "log 0.4.11", + "memchr", + "num_cpus", + "once_cell", + "pin-project-lite", + "pin-utils", + "slab", + "smol", + "wasm-bindgen-futures", +] + +[[package]] +name = "async-task" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17772156ef2829aadc587461c7753af20b7e8db1529bc66855add962a3b35d3" + +[[package]] +name = "async-tls" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df097e3f506bec0e1a24f06bb3c962c228f36671de841ff579cb99f371772634" +dependencies = [ + "futures 0.3.5", + "rustls", + "webpki", + "webpki-roots 0.19.0", +] + +[[package]] +name = "atomic-waker" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "autocfg" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" + +[[package]] +name = "autocfg" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" + +[[package]] +name = "backtrace" +version = "0.3.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46254cf2fdcdf1badb5934448c1bcbe046a56537b3987d96c51a7afc5d03f293" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object 0.20.0", + "rustc-demangle", +] + +[[package]] +name = "base58" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" + +[[package]] +name = "base64" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" + +[[package]] +name = "base64" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" + +[[package]] +name = "bincode" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f30d3a39baa26f9651f17b375061f3233dde33424a8b72b0dbe93a68a0bc896d" +dependencies = [ + "byteorder", + "serde", +] + +[[package]] +name = "bindgen" +version = "0.53.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c72a978d268b1d70b0e963217e60fdabd9523a941457a6c42a7315d15c7e89e5" +dependencies = [ + "bitflags", + "cexpr", + "cfg-if", + "clang-sys", + "clap", + "env_logger", + "lazy_static", + "lazycell", + "log 0.4.11", + "peeking_take_while", + "proc-macro2 1.0.19", + "quote 1.0.7", + "regex", + "rustc-hash", + "shlex", + "which", +] + +[[package]] +name = "bitflags" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" + +[[package]] +name = "bitmask" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5da9b3d9f6f585199287a473f4f8dfab6566cf827d15c00c219f53c645687ead" + +[[package]] +name = "bitvec" +version = "0.17.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41262f11d771fd4a61aa3ce019fca363b4b6c282fca9da2a31186d3965a47a5c" +dependencies = [ + "either", + "radium", +] + +[[package]] +name = "blake2" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84ce5b6108f8e154604bd4eb76a2f726066c3464d5a552a4229262a18c9bb471" +dependencies = [ + "byte-tools", + "byteorder", + "crypto-mac 0.8.0", + "digest 0.9.0", + "opaque-debug 0.2.3", +] + +[[package]] +name = "blake2-rfc" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" +dependencies = [ + "arrayvec 0.4.12", + "constant_time_eq", +] + +[[package]] +name = "blake2b_simd" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a" +dependencies = [ + "arrayref", + "arrayvec 0.5.1", + "constant_time_eq", +] + +[[package]] +name = "blake2s_simd" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab9e07352b829279624ceb7c64adb4f585dacdb81d35cafae81139ccd617cf44" +dependencies = [ + "arrayref", + "arrayvec 0.5.1", + "constant_time_eq", +] + +[[package]] +name = "block-buffer" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" +dependencies = [ + "block-padding", + "byte-tools", + "byteorder", + "generic-array 0.12.3", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array 0.14.3", +] + +[[package]] +name = "block-cipher" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa136449e765dc7faa244561ccae839c394048667929af599b5d931ebe7b7f10" +dependencies = [ + "generic-array 0.14.3", +] + +[[package]] +name = "block-padding" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +dependencies = [ + "byte-tools", +] + +[[package]] +name = "blocking" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2468ff7bf85066b4a3678fede6fe66db31846d753ff0adfbfab2c6a6e81612b" +dependencies = [ + "async-channel", + "atomic-waker", + "futures-lite", + "once_cell", + "parking", + "waker-fn", +] + +[[package]] +name = "bs58" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "476e9cd489f9e121e02ffa6014a8ef220ecb15c05ed23fc34cca13925dc283fb" + +[[package]] +name = "bstr" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31accafdb70df7871592c058eca3985b71104e15ac32f64706022c58867da931" +dependencies = [ + "memchr", +] + +[[package]] +name = "bumpalo" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820" + +[[package]] +name = "byte-slice-cast" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0a5e3906bcbf133e33c1d4d95afc664ad37fbdb9f6568d8043e7ea8c27d93d3" + +[[package]] +name = "byte-tools" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" + +[[package]] +name = "byteorder" +version = "1.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" + +[[package]] +name = "bytes" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" +dependencies = [ + "byteorder", + "either", + "iovec", +] + +[[package]] +name = "bytes" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" + +[[package]] +name = "c_linked_list" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4964518bd3b4a8190e832886cdc0da9794f12e8e6c1613a9e90ff331c4c8724b" + +[[package]] +name = "cache-padded" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba" + +[[package]] +name = "cc" +version = "1.0.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518" +dependencies = [ + "jobserver", +] + +[[package]] +name = "cexpr" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "chacha20" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "086c0f07ac275808b7bf9a39f2fd013aae1498be83632814c8c4e0bd53f2dc58" +dependencies = [ + "stream-cipher", + "zeroize", +] + +[[package]] +name = "chacha20poly1305" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18b0c90556d8e3fec7cf18d84a2f53d27b21288f2fe481b830fadcf809e48205" +dependencies = [ + "aead", + "chacha20", + "poly1305", + "stream-cipher", + "zeroize", +] + +[[package]] +name = "chrono" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6" +dependencies = [ + "num-integer", + "num-traits 0.2.12", + "time", +] + +[[package]] +name = "clang-sys" +version = "0.29.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "2.33.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10040cdf04294b565d9e0319955430099ec3813a64c952b86a41200ad714ae48" +dependencies = [ + "ansi_term 0.11.0", + "atty", + "bitflags", + "strsim", + "textwrap", + "unicode-width", + "vec_map", +] + +[[package]] +name = "cloudabi" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" +dependencies = [ + "bitflags", +] + +[[package]] +name = "concurrent-queue" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3" +dependencies = [ + "cache-padded", +] + +[[package]] +name = "const-random" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f1af9ac737b2dd2d577701e59fd09ba34822f6f2ebdb30a7647405d9e55e16a" +dependencies = [ + "const-random-macro", + "proc-macro-hack", +] + +[[package]] +name = "const-random-macro" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25e4c606eb459dd29f7c57b2e0879f2b6f14ee130918c2b78ccb58a9624e6c7a" +dependencies = [ + "getrandom", + "proc-macro-hack", +] + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "core-foundation" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" + +[[package]] +name = "cpuid-bool" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634" + +[[package]] +name = "cranelift-bforest" +version = "0.66.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dcc286b052ee24a1e5a222e7c1125e6010ad35b0f248709b9b3737a8fedcfdf" +dependencies = [ + "cranelift-entity", +] + +[[package]] +name = "cranelift-codegen" +version = "0.66.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d9badfe36176cb653506091693bc2bb1970c9bddfcd6ec7fac404f7eaec6f38" +dependencies = [ + "byteorder", + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-entity", + "gimli 0.21.0", + "log 0.4.11", + "regalloc", + "serde", + "smallvec 1.4.1", + "target-lexicon", + "thiserror", +] + +[[package]] +name = "cranelift-codegen-meta" +version = "0.66.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c3f460031861e4f4ad510be62b2ae50bba6cc886b598a36f9c0a970feab9598" +dependencies = [ + "cranelift-codegen-shared", + "cranelift-entity", +] + +[[package]] +name = "cranelift-codegen-shared" +version = "0.66.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ad12409e922e7697cd0bdc7dc26992f64a77c31880dfe5e3c7722f4710206d" + +[[package]] +name = "cranelift-entity" +version = "0.66.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d97cdc58972ea065d107872cfb9079f4c92ade78a8af85aaff519a65b5d13f71" +dependencies = [ + "serde", +] + +[[package]] +name = "cranelift-frontend" +version = "0.66.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ef419efb4f94ecc02e5d9fbcc910d2bb7f0040e2de570e63a454f883bc891d6" +dependencies = [ + "cranelift-codegen", + "log 0.4.11", + "smallvec 1.4.1", + "target-lexicon", +] + +[[package]] +name = "cranelift-native" +version = "0.66.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e69d44d59826eef6794066ac2c0f4ad3975f02d97030c60dbc04e3886adf36e" +dependencies = [ + "cranelift-codegen", + "raw-cpuid", + "target-lexicon", +] + +[[package]] +name = "cranelift-wasm" +version = "0.66.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "979df666b1304624abe99738e9e0e7c7479ee5523ba4b8b237df9ff49996acbb" +dependencies = [ + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "log 0.4.11", + "serde", + "thiserror", + "wasmparser 0.59.0", +] + +[[package]] +name = "crc32fast" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-deque" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", + "maybe-uninit", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" +dependencies = [ + "autocfg 1.0.0", + "cfg-if", + "crossbeam-utils", + "lazy_static", + "maybe-uninit", + "memoffset", + "scopeguard 1.1.0", +] + +[[package]] +name = "crossbeam-queue" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "maybe-uninit", +] + +[[package]] +name = "crossbeam-utils" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" +dependencies = [ + "autocfg 1.0.0", + "cfg-if", + "lazy_static", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-mac" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" +dependencies = [ + "generic-array 0.12.3", + "subtle 1.0.0", +] + +[[package]] +name = "crypto-mac" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" +dependencies = [ + "generic-array 0.14.3", + "subtle 2.2.3", +] + +[[package]] +name = "ct-logs" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c8e13110a84b6315df212c045be706af261fd364791cad863285439ebba672e" +dependencies = [ + "sct", +] + +[[package]] +name = "cumulus-collator" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus#817507f99001cfeab56eb5e916b366c656370d53" +dependencies = [ + "cumulus-consensus", + "cumulus-network", + "cumulus-primitives", + "cumulus-runtime", + "futures 0.3.5", + "log 0.4.11", + "parity-scale-codec", + "parking_lot 0.9.0", + "polkadot-collator", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-service", + "polkadot-validation", + "sc-cli", + "sc-client-api", + "sc-service", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", +] + +[[package]] +name = "cumulus-consensus" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus#817507f99001cfeab56eb5e916b366c656370d53" +dependencies = [ + "futures 0.3.5", + "log 0.4.11", + "parity-scale-codec", + "polkadot-primitives", + "polkadot-runtime", + "sc-client-api", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", + "substrate-prometheus-endpoint", + "tokio 0.1.22", +] + +[[package]] +name = "cumulus-message-broker" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus#817507f99001cfeab56eb5e916b366c656370d53" +dependencies = [ + "cumulus-primitives", + "cumulus-upward-message", + "frame-support", + "frame-system", + "parity-scale-codec", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "cumulus-network" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus#817507f99001cfeab56eb5e916b366c656370d53" +dependencies = [ + "cumulus-primitives", + "futures 0.3.5", + "log 0.4.11", + "parity-scale-codec", + "parking_lot 0.10.2", + "polkadot-collator", + "polkadot-network", + "polkadot-primitives", + "polkadot-statement-table", + "polkadot-validation", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "cumulus-parachain-upgrade" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus#817507f99001cfeab56eb5e916b366c656370d53" +dependencies = [ + "cumulus-primitives", + "cumulus-runtime", + "frame-support", + "frame-system", + "pallet-balances", + "parity-scale-codec", + "polkadot-parachain", + "serde", + "sp-core", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-std", + "sp-version", +] + +[[package]] +name = "cumulus-primitives" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus#817507f99001cfeab56eb5e916b366c656370d53" +dependencies = [ + "impl-trait-for-tuples", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain", + "polkadot-primitives", + "sp-inherents", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "cumulus-runtime" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus#817507f99001cfeab56eb5e916b366c656370d53" +dependencies = [ + "cumulus-primitives", + "frame-executive", + "hash-db", + "hashbrown 0.8.1", + "memory-db", + "parity-scale-codec", + "polkadot-parachain", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-trie", + "trie-db", +] + +[[package]] +name = "cumulus-upward-message" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus#817507f99001cfeab56eb5e916b366c656370d53" +dependencies = [ + "kusama-runtime", + "polkadot-core-primitives", + "polkadot-parachain", + "polkadot-runtime", + "rococo-runtime", + "sp-std", + "westend-runtime", +] + +[[package]] +name = "curve25519-dalek" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d85653f070353a16313d0046f173f70d1aadd5b42600a14de626f0dfb3473a5" +dependencies = [ + "byteorder", + "digest 0.8.1", + "rand_core 0.5.1", + "subtle 2.2.3", + "zeroize", +] + +[[package]] +name = "data-encoding" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72aa14c04dfae8dd7d8a2b1cb7ca2152618cd01336dbfe704b8dcbf8d41dbd69" + +[[package]] +name = "derive_more" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d944ac6003ed268757ef1ee686753b57efc5fcf0ebe7b64c9fc81e7e32ff839" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "rustc_version", + "syn 0.15.44", +] + +[[package]] +name = "derive_more" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a141330240c921ec6d074a3e188a7c7ef95668bb95e7d44fa0e5778ec2a7afe" +dependencies = [ + "lazy_static", + "proc-macro2 0.4.30", + "quote 0.6.13", + "regex", + "rustc_version", + "syn 0.15.44", +] + +[[package]] +name = "derive_more" +version = "0.99.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298998b1cf6b5b2c8a7b023dfd45821825ce3ba8a8af55c921a0e734e4653f76" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "difference" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" + +[[package]] +name = "digest" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" +dependencies = [ + "generic-array 0.12.3", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array 0.14.3", +] + +[[package]] +name = "directories" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "551a778172a450d7fc12e629ca3b0428d00f6afa9a43da1b630d54604e97371c" +dependencies = [ + "cfg-if", + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a" +dependencies = [ + "libc", + "redox_users", + "winapi 0.3.9", +] + +[[package]] +name = "dns-parser" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbea" +dependencies = [ + "byteorder", + "quick-error", +] + +[[package]] +name = "doc-comment" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" + +[[package]] +name = "dyn-clonable" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e9232f0e607a262ceb9bd5141a3dfb3e4db6994b31989bbfd845878cba59fd4" +dependencies = [ + "dyn-clonable-impl", + "dyn-clone", +] + +[[package]] +name = "dyn-clonable-impl" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "dyn-clone" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c53dc3a653e0f64081026e4bf048d48fec9fce90c66e8326ca7292df0ff2d82" + +[[package]] +name = "ed25519" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf038a7b6fd7ef78ad3348b63f3a17550877b0e28f8d68bcc94894d1412158bc" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "1.0.0-pre.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21a8a37f4e8b35af971e6db5e3897e7a6344caa3f92f6544f88125a1f5f0035a" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand 0.7.3", + "serde", + "sha2 0.8.2", + "zeroize", +] + +[[package]] +name = "either" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" + +[[package]] +name = "enum-primitive-derive" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2b90e520ec62c1864c8c78d637acbfe8baf5f63240f2fb8165b8325c07812dd" +dependencies = [ + "num-traits 0.1.43", + "quote 0.3.15", + "syn 0.11.11", +] + +[[package]] +name = "enum_primitive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180" +dependencies = [ + "num-traits 0.1.43", +] + +[[package]] +name = "enumflags2" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83c8d82922337cd23a15f88b70d8e4ef5f11da38dd7cdb55e84dd5de99695da0" +dependencies = [ + "enumflags2_derive", +] + +[[package]] +name = "enumflags2_derive" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "env_logger" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" +dependencies = [ + "atty", + "humantime", + "log 0.4.11", + "regex", + "termcolor", +] + +[[package]] +name = "environmental" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "516aa8d7a71cb00a1c4146f0798549b93d083d4f189b3ced8f3de6b8f11ee6c4" + +[[package]] +name = "erased-serde" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ca8b296792113e1500fd935ae487be6e00ce318952a6880555554824d6ebf38" +dependencies = [ + "serde", +] + +[[package]] +name = "errno" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eab5ee3df98a279d9b316b1af6ac95422127b1290317e6d18c1743c99418b01" +dependencies = [ + "errno-dragonfly", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14ca354e36190500e1e1fb267c647932382b54053c50b14970856c0b00a35067" +dependencies = [ + "gcc", + "libc", +] + +[[package]] +name = "escargot" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74cf96bec282dcdb07099f7e31d9fed323bca9435a09aba7b6d99b7617bca96d" +dependencies = [ + "lazy_static", + "log 0.4.11", + "serde", + "serde_json", +] + +[[package]] +name = "event-listener" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68082183f458867ce7cddea16d4df4443c1537112c0c09c450dedc09daf5c719" + +[[package]] +name = "exit-future" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8013f441e38e31c670e7f34ec8f1d5d3a2bd9d303c1ff83976ca886005e8f48" +dependencies = [ + "futures 0.1.29", + "parking_lot 0.7.1", +] + +[[package]] +name = "exit-future" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" +dependencies = [ + "futures 0.3.5", +] + +[[package]] +name = "failure" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" +dependencies = [ + "backtrace", + "failure_derive", +] + +[[package]] +name = "failure_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", + "synstructure", +] + +[[package]] +name = "fake-simd" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fastrand" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36a9cb09840f81cd211e435d00a4e487edd263dc3c8ff815c32dd76ad668ebed" + +[[package]] +name = "fdlimit" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0da54a593b34c71b889ee45f5b5bb900c74148c5f7f8c6a9479ee7899f69603c" +dependencies = [ + "libc", +] + +[[package]] +name = "file-per-thread-logger" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b3937f028664bd0e13df401ba49a4567ccda587420365823242977f06609ed1" +dependencies = [ + "env_logger", + "log 0.4.11", +] + +[[package]] +name = "finality-grandpa" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8feb87a63249689640ac9c011742c33139204e3c134293d3054022276869133b" +dependencies = [ + "either", + "futures 0.3.5", + "futures-timer 2.0.2", + "log 0.4.11", + "num-traits 0.2.12", + "parity-scale-codec", + "parking_lot 0.9.0", +] + +[[package]] +name = "fixed-hash" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11498d382790b7a8f2fd211780bec78619bba81cdad3a283997c0c41f836759c" +dependencies = [ + "byteorder", + "rand 0.7.3", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixedbitset" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" + +[[package]] +name = "flate2" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68c90b0fc46cf89d227cc78b40e494ff81287a92dd07631e5af0d06fe3cf885e" +dependencies = [ + "cfg-if", + "crc32fast", + "libc", + "libz-sys", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "fork-tree" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "frame-benchmarking" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "linregress", + "parity-scale-codec", + "paste", + "sp-api", + "sp-io", + "sp-runtime", + "sp-runtime-interface", + "sp-std", +] + +[[package]] +name = "frame-benchmarking-cli" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-benchmarking", + "parity-scale-codec", + "sc-cli", + "sc-client-db", + "sc-executor", + "sc-service", + "sp-core", + "sp-externalities", + "sp-runtime", + "sp-state-machine", + "structopt", +] + +[[package]] +name = "frame-executive" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-io", + "sp-runtime", + "sp-std", + "sp-tracing", +] + +[[package]] +name = "frame-metadata" +version = "11.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "parity-scale-codec", + "serde", + "sp-core", + "sp-std", +] + +[[package]] +name = "frame-support" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "bitmask", + "frame-metadata", + "frame-support-procedural", + "impl-trait-for-tuples", + "log 0.4.11", + "once_cell", + "parity-scale-codec", + "paste", + "serde", + "smallvec 1.4.1", + "sp-arithmetic", + "sp-core", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-tracing", +] + +[[package]] +name = "frame-support-procedural" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support-procedural-tools", + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "frame-support-procedural-tools" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support-procedural-tools-derive", + "proc-macro-crate", + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "frame-support-procedural-tools-derive" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "frame-system" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "impl-trait-for-tuples", + "parity-scale-codec", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-version", +] + +[[package]] +name = "frame-system-rpc-runtime-api" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "parity-scale-codec", + "sp-api", +] + +[[package]] +name = "fs-swap" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "921d332c89b3b61a826de38c61ee5b6e02c56806cade1b0e5d81bd71f57a71bb" +dependencies = [ + "lazy_static", + "libc", + "libloading", + "winapi 0.3.9", +] + +[[package]] +name = "fuchsia-cprng" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + +[[package]] +name = "fuchsia-zircon" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" +dependencies = [ + "bitflags", + "fuchsia-zircon-sys", +] + +[[package]] +name = "fuchsia-zircon-sys" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" + +[[package]] +name = "futures" +version = "0.1.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef" + +[[package]] +name = "futures" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-channel-preview" +version = "0.3.0-alpha.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5e5f4df964fa9c1c2f8bddeb5c3611631cacd93baf810fc8bb2fb4b495c263a" +dependencies = [ + "futures-core-preview", +] + +[[package]] +name = "futures-core" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399" + +[[package]] +name = "futures-core-preview" +version = "0.3.0-alpha.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b35b6263fb1ef523c3056565fa67b1d16f0a8604ff12b11b08c25f28a734c60a" + +[[package]] +name = "futures-cpupool" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" +dependencies = [ + "futures 0.1.29", + "num_cpus", +] + +[[package]] +name = "futures-diagnose" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdcef58a173af8148b182684c9f2d5250875adbcaff7b5794073894f9d8634a9" +dependencies = [ + "futures 0.1.29", + "futures 0.3.5", + "lazy_static", + "log 0.4.11", + "parking_lot 0.9.0", + "pin-project", + "serde", + "serde_json", +] + +[[package]] +name = "futures-executor" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", + "num_cpus", +] + +[[package]] +name = "futures-io" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789" + +[[package]] +name = "futures-lite" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbe71459749b2e8e66fb95df721b22fa08661ad384a0c5b519e11d3893b4692a" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "futures-macro" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39" +dependencies = [ + "proc-macro-hack", + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "futures-sink" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc" + +[[package]] +name = "futures-task" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626" +dependencies = [ + "once_cell", +] + +[[package]] +name = "futures-timer" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1de7508b218029b0f01662ed8f61b1c964b3ae99d6f25462d0f55a595109df6" + +[[package]] +name = "futures-timer" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" +dependencies = [ + "gloo-timers", + "send_wrapper 0.4.0", +] + +[[package]] +name = "futures-util" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6" +dependencies = [ + "futures 0.1.29", + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project", + "pin-utils", + "proc-macro-hack", + "proc-macro-nested", + "slab", +] + +[[package]] +name = "futures-util-preview" +version = "0.3.0-alpha.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce968633c17e5f97936bd2797b6e38fb56cf16a7422319f7ec2e30d3c470e8d" +dependencies = [ + "futures-channel-preview", + "futures-core-preview", + "pin-utils", + "slab", +] + +[[package]] +name = "futures_codec" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce54d63f8b0c75023ed920d46fd71d0cbbb830b0ee012726b5b4f506fb6dea5b" +dependencies = [ + "bytes 0.5.6", + "futures 0.3.5", + "memchr", + "pin-project", +] + +[[package]] +name = "gcc" +version = "0.3.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" + +[[package]] +name = "generic-array" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" +dependencies = [ + "typenum", +] + +[[package]] +name = "generic-array" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60fb4bb6bba52f78a471264d9a3b7d026cc0af47b22cd2cffbc0b787ca003e63" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "get_if_addrs" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abddb55a898d32925f3148bd281174a68eeb68bbfd9a5938a57b18f506ee4ef7" +dependencies = [ + "c_linked_list", + "get_if_addrs-sys", + "libc", + "winapi 0.2.8", +] + +[[package]] +name = "get_if_addrs-sys" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d04f9fb746cf36b191c00f3ede8bde9c8e64f9f4b05ae2694a9ccf5e3f5ab48" +dependencies = [ + "gcc", + "libc", +] + +[[package]] +name = "getrandom" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "ghash" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6e27f0689a6e15944bdce7e45425efb87eaa8ab0c6e87f11d0987a9133e2531" +dependencies = [ + "polyval", +] + +[[package]] +name = "gimli" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c" +dependencies = [ + "fallible-iterator", + "indexmap", + "stable_deref_trait", +] + +[[package]] +name = "gimli" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724" + +[[package]] +name = "glob" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" + +[[package]] +name = "globset" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ad1da430bd7281dde2576f44c84cc3f0f7b475e7202cd503042dff01a8c8120" +dependencies = [ + "aho-corasick", + "bstr", + "fnv", + "log 0.4.11", + "regex", +] + +[[package]] +name = "gloo-timers" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47204a46aaff920a1ea58b11d03dec6f704287d27561724a4631e450654a891f" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "h2" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5b34c246847f938a410a03c5458c7fee2274436675e76d8b903c08efc29c462" +dependencies = [ + "byteorder", + "bytes 0.4.12", + "fnv", + "futures 0.1.29", + "http 0.1.21", + "indexmap", + "log 0.4.11", + "slab", + "string", + "tokio-io", +] + +[[package]] +name = "h2" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "993f9e0baeed60001cf565546b0d3dbe6a6ad23f2bd31644a133c641eccf6d53" +dependencies = [ + "bytes 0.5.6", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.1", + "indexmap", + "slab", + "tokio 0.2.22", + "tokio-util", + "tracing", +] + +[[package]] +name = "hash-db" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364a" + +[[package]] +name = "hash256-std-hasher" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92c171d55b98633f4ed3860808f004099b36c1cc29c42cfc53aa8591b21efcf2" +dependencies = [ + "crunchy", +] + +[[package]] +name = "hashbrown" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6073d0ca812575946eb5f35ff68dbe519907b25c42530389ff946dc84c6ead" +dependencies = [ + "ahash 0.2.18", + "autocfg 0.1.7", +] + +[[package]] +name = "hashbrown" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34f595585f103464d8d2f6e9864682d74c1601fed5e07d62b1c9058dba8246fb" +dependencies = [ + "ahash 0.3.8", + "autocfg 1.0.0", +] + +[[package]] +name = "heck" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "hermit-abi" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9" +dependencies = [ + "libc", +] + +[[package]] +name = "hex" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35" + +[[package]] +name = "hex-literal" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "961de220ec9a91af2e1e5bd80d02109155695e516771762381ef8581317066e0" +dependencies = [ + "hex-literal-impl", + "proc-macro-hack", +] + +[[package]] +name = "hex-literal-impl" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "853f769599eb31de176303197b7ba4973299c38c7a7604a6bc88c3eef05b9b46" +dependencies = [ + "proc-macro-hack", +] + +[[package]] +name = "hmac" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695" +dependencies = [ + "crypto-mac 0.7.0", + "digest 0.8.1", +] + +[[package]] +name = "hmac-drbg" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6e570451493f10f6581b48cdd530413b63ea9e780f544bfd3bdcaa0d89d1a7b" +dependencies = [ + "digest 0.8.1", + "generic-array 0.12.3", + "hmac", +] + +[[package]] +name = "http" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6ccf5ede3a895d8856620237b2f02972c1bbc78d2965ad7fe8838d4a0ed41f0" +dependencies = [ + "bytes 0.4.12", + "fnv", + "itoa", +] + +[[package]] +name = "http" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9" +dependencies = [ + "bytes 0.5.6", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d" +dependencies = [ + "bytes 0.4.12", + "futures 0.1.29", + "http 0.1.21", + "tokio-buf", +] + +[[package]] +name = "http-body" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" +dependencies = [ + "bytes 0.5.6", + "http 0.2.1", +] + +[[package]] +name = "httparse" +version = "1.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" + +[[package]] +name = "humantime" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" +dependencies = [ + "quick-error", +] + +[[package]] +name = "hyper" +version = "0.12.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dbe6ed1438e1f8ad955a4701e9a944938e9519f6888d12d8558b645e247d5f6" +dependencies = [ + "bytes 0.4.12", + "futures 0.1.29", + "futures-cpupool", + "h2 0.1.26", + "http 0.1.21", + "http-body 0.1.0", + "httparse", + "iovec", + "itoa", + "log 0.4.11", + "net2", + "rustc_version", + "time", + "tokio 0.1.22", + "tokio-buf", + "tokio-executor 0.1.10", + "tokio-io", + "tokio-reactor", + "tokio-tcp", + "tokio-threadpool", + "tokio-timer", + "want 0.2.0", +] + +[[package]] +name = "hyper" +version = "0.13.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e68a8dd9716185d9e64ea473ea6ef63529252e3e27623295a0378a19665d5eb" +dependencies = [ + "bytes 0.5.6", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.2.6", + "http 0.2.1", + "http-body 0.3.1", + "httparse", + "itoa", + "pin-project", + "socket2", + "time", + "tokio 0.2.22", + "tower-service", + "tracing", + "want 0.3.0", +] + +[[package]] +name = "hyper-rustls" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37743cc83e8ee85eacfce90f2f4102030d9ff0a95244098d781e9bee4a90abb6" +dependencies = [ + "bytes 0.5.6", + "ct-logs", + "futures-util", + "hyper 0.13.7", + "log 0.4.11", + "rustls", + "rustls-native-certs", + "tokio 0.2.22", + "tokio-rustls", + "webpki", +] + +[[package]] +name = "idna" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "idna" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "impl-codec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1be51a921b067b0eaca2fad532d9400041561aa922221cc65f95a85641c6bf53" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-serde" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58e3cae7e99c7ff5a995da2cf78dd0a5383740eda71d98cf7b1910c301ac69b8" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-serde" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b47ca4d2b6931707a55fce5cf66aff80e2178c8b63bbb4ecb5695cbc870ddf6f" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef5550a42e3740a0e71f909d4c861056a284060af885ae7aa6242820f920d9d" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "indexmap" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b88cd59ee5f71fea89a62248fc8f387d44400cefe05ef548466d61ced9029a7" +dependencies = [ + "autocfg 1.0.0", + "hashbrown 0.8.1", + "serde", +] + +[[package]] +name = "integer-sqrt" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f65877bf7d44897a473350b1046277941cee20b263397e90869c50b6e766088b" + +[[package]] +name = "intervalier" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275" +dependencies = [ + "futures 0.3.5", + "futures-timer 2.0.2", +] + +[[package]] +name = "iovec" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" +dependencies = [ + "libc", +] + +[[package]] +name = "ip_network" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee15951c035f79eddbef745611ec962f63f4558f1dadf98ab723cc603487c6f" + +[[package]] +name = "ipnet" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135" + +[[package]] +name = "itertools" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6" + +[[package]] +name = "jobserver" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c71313ebb9439f74b00d9d2dcec36440beaf57a6aa0623068441dd7cd81a7f2" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85a7e2c92a4804dd459b86c339278d0fe87cf93757fae222c3fa3ae75458bc73" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "jsonrpc-client-transports" +version = "14.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2773fa94a2a1fd51efb89a8f45b8861023dbb415d18d3c9235ae9388d780f9ec" +dependencies = [ + "failure", + "futures 0.1.29", + "jsonrpc-core", + "jsonrpc-pubsub", + "log 0.4.11", + "serde", + "serde_json", + "url 1.7.2", +] + +[[package]] +name = "jsonrpc-core" +version = "14.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0747307121ffb9703afd93afbd0fb4f854c38fb873f2c8b90e0e902f27c7b62" +dependencies = [ + "futures 0.1.29", + "log 0.4.11", + "serde", + "serde_derive", + "serde_json", +] + +[[package]] +name = "jsonrpc-core-client" +version = "14.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34221123bc79b66279a3fde2d3363553835b43092d629b34f2e760c44dc94713" +dependencies = [ + "jsonrpc-client-transports", +] + +[[package]] +name = "jsonrpc-derive" +version = "14.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fadf6945e227246825a583514534d864554e9f23d80b3c77d034b10983db5ef" +dependencies = [ + "proc-macro-crate", + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "jsonrpc-http-server" +version = "14.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0da906d682799df05754480dac1b9e70ec92e12c19ebafd2662a5ea1c9fd6522" +dependencies = [ + "hyper 0.12.35", + "jsonrpc-core", + "jsonrpc-server-utils", + "log 0.4.11", + "net2", + "parking_lot 0.10.2", + "unicase", +] + +[[package]] +name = "jsonrpc-ipc-server" +version = "14.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dedccd693325d833963b549e959137f30a7a0ea650cde92feda81dc0c1393cb5" +dependencies = [ + "jsonrpc-core", + "jsonrpc-server-utils", + "log 0.4.11", + "parity-tokio-ipc", + "parking_lot 0.10.2", + "tokio-service", +] + +[[package]] +name = "jsonrpc-pubsub" +version = "14.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d44f5602a11d657946aac09357956d2841299ed422035edf140c552cb057986" +dependencies = [ + "jsonrpc-core", + "log 0.4.11", + "parking_lot 0.10.2", + "rand 0.7.3", + "serde", +] + +[[package]] +name = "jsonrpc-server-utils" +version = "14.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56cbfb462e7f902e21121d9f0d1c2b77b2c5b642e1a4e8f4ebfa2e15b94402bb" +dependencies = [ + "bytes 0.4.12", + "globset", + "jsonrpc-core", + "lazy_static", + "log 0.4.11", + "tokio 0.1.22", + "tokio-codec", + "unicase", +] + +[[package]] +name = "jsonrpc-ws-server" +version = "14.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "903d3109fe7c4acb932b567e1e607e0f524ed04741b09fb0e61841bc40a022fc" +dependencies = [ + "jsonrpc-core", + "jsonrpc-server-utils", + "log 0.4.11", + "parking_lot 0.10.2", + "slab", + "ws", +] + +[[package]] +name = "keccak" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" + +[[package]] +name = "kernel32-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "kusama-runtime" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "bitvec", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-rpc-runtime-api", + "log 0.3.9", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-collective", + "pallet-democracy", + "pallet-elections-phragmen", + "pallet-finality-tracker", + "pallet-grandpa", + "pallet-identity", + "pallet-im-online", + "pallet-indices", + "pallet-membership", + "pallet-multisig", + "pallet-nicks", + "pallet-offences", + "pallet-proxy", + "pallet-randomness-collective-flip", + "pallet-recovery", + "pallet-scheduler", + "pallet-session", + "pallet-society", + "pallet-staking", + "pallet-staking-reward-curve", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury", + "pallet-utility", + "pallet-vesting", + "parity-scale-codec", + "polkadot-primitives", + "polkadot-runtime-common", + "rustc-hex", + "serde", + "serde_derive", + "smallvec 1.4.1", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-transaction-pool", + "sp-version", + "static_assertions", + "substrate-wasm-builder-runner 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "kv-log-macro" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" +dependencies = [ + "log 0.4.11", +] + +[[package]] +name = "kvdb" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0315ef2f688e33844400b31f11c263f2b3dc21d8b9355c6891c5f185fae43f9a" +dependencies = [ + "parity-util-mem", + "smallvec 1.4.1", +] + +[[package]] +name = "kvdb-memorydb" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73de822b260a3bdfb889dbbb65bb2d473eee2253973d6fa4a5d149a2a4a7c66e" +dependencies = [ + "kvdb", + "parity-util-mem", + "parking_lot 0.10.2", +] + +[[package]] +name = "kvdb-rocksdb" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c341ef15cfb1f923fa3b5138bfbd2d4813a2c1640b473727a53351c7f0b0fa2" +dependencies = [ + "fs-swap", + "kvdb", + "log 0.4.11", + "num_cpus", + "owning_ref", + "parity-util-mem", + "parking_lot 0.10.2", + "regex", + "rocksdb", + "smallvec 1.4.1", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lazycell" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" + +[[package]] +name = "leb128" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a" + +[[package]] +name = "libc" +version = "0.2.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2f02823cf78b754822df5f7f268fb59822e7296276d3e069d8e8cb26a14bd10" + +[[package]] +name = "libflate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9bac9023e1db29c084f9f8cd9d3852e5e8fddf98fb47c4964a0ea4663d95949" +dependencies = [ + "adler32", + "crc32fast", + "libflate_lz77", + "rle-decode-fast", +] + +[[package]] +name = "libflate_lz77" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3286f09f7d4926fc486334f28d8d2e6ebe4f7f9994494b6dab27ddfad2c9b11b" + +[[package]] +name = "libloading" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" +dependencies = [ + "cc", + "winapi 0.3.9", +] + +[[package]] +name = "libm" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" + +[[package]] +name = "libp2p" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0306a49ee6a89468f96089906f36b0eef82c988dcfc8acf3e2dcd6ad1c859f85" +dependencies = [ + "bytes 0.5.6", + "futures 0.3.5", + "lazy_static", + "libp2p-core", + "libp2p-core-derive", + "libp2p-dns", + "libp2p-identify", + "libp2p-kad", + "libp2p-mdns", + "libp2p-mplex", + "libp2p-noise", + "libp2p-ping", + "libp2p-swarm", + "libp2p-tcp", + "libp2p-wasm-ext", + "libp2p-websocket", + "libp2p-yamux", + "multihash", + "parity-multiaddr", + "parking_lot 0.10.2", + "pin-project", + "smallvec 1.4.1", + "wasm-timer", +] + +[[package]] +name = "libp2p-core" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a694fd76d7c33a45a0e6e1525e9b9b5d11127c9c94e560ac0f8abba54ed80af" +dependencies = [ + "asn1_der", + "bs58", + "ed25519-dalek", + "either", + "fnv", + "futures 0.3.5", + "futures-timer 3.0.2", + "lazy_static", + "libsecp256k1", + "log 0.4.11", + "multihash", + "multistream-select", + "parity-multiaddr", + "parking_lot 0.10.2", + "pin-project", + "prost", + "prost-build", + "rand 0.7.3", + "ring", + "rw-stream-sink", + "sha2 0.8.2", + "smallvec 1.4.1", + "thiserror", + "unsigned-varint 0.4.0", + "void", + "zeroize", +] + +[[package]] +name = "libp2p-core-derive" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f753d9324cd3ec14bf04b8a8cd0d269c87f294153d6bf2a84497a63a5ad22213" +dependencies = [ + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "libp2p-dns" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f751924b6b98e350005e0b87a822beb246792a3fb878c684e088f866158120ac" +dependencies = [ + "futures 0.3.5", + "libp2p-core", + "log 0.4.11", +] + +[[package]] +name = "libp2p-identify" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "912c00a7bf67e0e765daf0cc37e08f675ea26aba3d6d1fbfaee81f19a4c23049" +dependencies = [ + "futures 0.3.5", + "libp2p-core", + "libp2p-swarm", + "log 0.4.11", + "prost", + "prost-build", + "smallvec 1.4.1", + "wasm-timer", +] + +[[package]] +name = "libp2p-kad" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44ed3a4c8111c570ab2bffb30c6353178d7603ce3787e3c5f2493c8d3d16d1f0" +dependencies = [ + "arrayvec 0.5.1", + "bytes 0.5.6", + "either", + "fnv", + "futures 0.3.5", + "futures_codec", + "libp2p-core", + "libp2p-swarm", + "log 0.4.11", + "multihash", + "prost", + "prost-build", + "rand 0.7.3", + "sha2 0.8.2", + "smallvec 1.4.1", + "uint", + "unsigned-varint 0.4.0", + "void", + "wasm-timer", +] + +[[package]] +name = "libp2p-mdns" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd004c668160fd922f7268b2cd1e4550ff69165d9c744e9eb5770086eb753d02" +dependencies = [ + "async-std", + "data-encoding", + "dns-parser", + "either", + "futures 0.3.5", + "lazy_static", + "libp2p-core", + "libp2p-swarm", + "log 0.4.11", + "net2", + "rand 0.7.3", + "smallvec 1.4.1", + "void", + "wasm-timer", +] + +[[package]] +name = "libp2p-mplex" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14ae0ffacd30f073f96cd518b2c9cd2cb18ac27c3d136a4b23cf1af99f33e541" +dependencies = [ + "bytes 0.5.6", + "fnv", + "futures 0.3.5", + "futures_codec", + "libp2p-core", + "log 0.4.11", + "parking_lot 0.10.2", + "unsigned-varint 0.4.0", +] + +[[package]] +name = "libp2p-noise" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f353f8966bbaaf7456535fffd3f366f153148773a0cf04b2ec3860955cb720e" +dependencies = [ + "bytes 0.5.6", + "curve25519-dalek", + "futures 0.3.5", + "lazy_static", + "libp2p-core", + "log 0.4.11", + "prost", + "prost-build", + "rand 0.7.3", + "sha2 0.8.2", + "snow", + "static_assertions", + "x25519-dalek", + "zeroize", +] + +[[package]] +name = "libp2p-ping" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70130cf130e4ba6dc177366e72dd9f86f9e3588fa1a0c4145247e676f16affad" +dependencies = [ + "futures 0.3.5", + "libp2p-core", + "libp2p-swarm", + "log 0.4.11", + "rand 0.7.3", + "void", + "wasm-timer", +] + +[[package]] +name = "libp2p-swarm" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f88d5e2a090a2aadf042cd33484e2f015c6dab212567406a59deece5dedbd133" +dependencies = [ + "futures 0.3.5", + "libp2p-core", + "log 0.4.11", + "rand 0.7.3", + "smallvec 1.4.1", + "void", + "wasm-timer", +] + +[[package]] +name = "libp2p-tcp" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b1fa2bbad054020cb875546a577a66a65a5bf42eff55ed5265f92ffee3cc052" +dependencies = [ + "async-std", + "futures 0.3.5", + "futures-timer 3.0.2", + "get_if_addrs", + "ipnet", + "libp2p-core", + "log 0.4.11", + "socket2", +] + +[[package]] +name = "libp2p-wasm-ext" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0feb99e32fea20ffb1bbf56a6fb2614bff7325ff44a515728385170b3420d2c3" +dependencies = [ + "futures 0.3.5", + "js-sys", + "libp2p-core", + "parity-send-wrapper", + "wasm-bindgen", + "wasm-bindgen-futures", +] + +[[package]] +name = "libp2p-websocket" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "046a5201f6e471f22b22b394e4d084269ed1e28cf7300f7b49874385db84c7bd" +dependencies = [ + "async-tls", + "either", + "futures 0.3.5", + "libp2p-core", + "log 0.4.11", + "quicksink", + "rustls", + "rw-stream-sink", + "soketto", + "url 2.1.1", + "webpki", + "webpki-roots 0.18.0", +] + +[[package]] +name = "libp2p-yamux" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46ae9bf2f7d8a4be9c7e9b61df9de9dc1bd66419d669098f22f81f8d9571029a" +dependencies = [ + "futures 0.3.5", + "libp2p-core", + "parking_lot 0.10.2", + "thiserror", + "yamux", +] + +[[package]] +name = "librocksdb-sys" +version = "6.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "883213ae3d09bfc3d104aefe94b25ebb183b6f4d3a515b23b14817e1f4854005" +dependencies = [ + "bindgen", + "cc", + "glob", + "libc", +] + +[[package]] +name = "libsecp256k1" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc1e2c808481a63dc6da2074752fdd4336a3c8fcc68b83db6f1fd5224ae7962" +dependencies = [ + "arrayref", + "crunchy", + "digest 0.8.1", + "hmac-drbg", + "rand 0.7.3", + "sha2 0.8.2", + "subtle 2.2.3", + "typenum", +] + +[[package]] +name = "libz-sys" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a" + +[[package]] +name = "linked_hash_set" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "linregress" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9290cf6f928576eeb9c096c6fad9d8d452a0a1a70a2bbffa6e36064eedc0aac9" +dependencies = [ + "failure", + "nalgebra", + "statrs", +] + +[[package]] +name = "lock_api" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" +dependencies = [ + "owning_ref", + "scopeguard 0.3.3", +] + +[[package]] +name = "lock_api" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" +dependencies = [ + "scopeguard 1.1.0", +] + +[[package]] +name = "log" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" +dependencies = [ + "log 0.4.11", +] + +[[package]] +name = "log" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "lru" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0609345ddee5badacf857d4f547e0e5a2e987db77085c24cd887f73573a04237" +dependencies = [ + "hashbrown 0.6.3", +] + +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + +[[package]] +name = "matches" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" + +[[package]] +name = "matrixmultiply" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4f7ec66360130972f34830bfad9ef05c6610a43938a467bcc9ab9369ab3478f" +dependencies = [ + "rawpointer", +] + +[[package]] +name = "maybe-uninit" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" + +[[package]] +name = "memchr" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" + +[[package]] +name = "memmap" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "memoffset" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f" +dependencies = [ + "autocfg 1.0.0", +] + +[[package]] +name = "memory-db" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f36ddb0b2cdc25d38babba472108798e3477f02be5165f038c5e393e50c57a" +dependencies = [ + "hash-db", + "hashbrown 0.8.1", + "parity-util-mem", +] + +[[package]] +name = "memory_units" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71d96e3f3c0b6325d8ccd83c33b28acb183edcb6c67938ba104ec546854b0882" + +[[package]] +name = "memrange" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc29ba65898edc4fdc252cb31cd3925f37c1a8ba25bb46eec883569984976530" +dependencies = [ + "rustc-serialize", +] + +[[package]] +name = "merlin" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6feca46f4fa3443a01769d768727f10c10a20fdb65e52dc16a81f0c8269bb78" +dependencies = [ + "byteorder", + "keccak", + "rand_core 0.5.1", + "zeroize", +] + +[[package]] +name = "miniz_oxide" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be0f75932c1f6cfae3c04000e40114adf955636e19040f9c0a2c380702aa1c7f" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.6.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430" +dependencies = [ + "cfg-if", + "fuchsia-zircon", + "fuchsia-zircon-sys", + "iovec", + "kernel32-sys", + "libc", + "log 0.4.11", + "miow 0.2.1", + "net2", + "slab", + "winapi 0.2.8", +] + +[[package]] +name = "mio-extras" +version = "2.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" +dependencies = [ + "lazycell", + "log 0.4.11", + "mio", + "slab", +] + +[[package]] +name = "mio-named-pipes" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656" +dependencies = [ + "log 0.4.11", + "mio", + "miow 0.3.5", + "winapi 0.3.9", +] + +[[package]] +name = "mio-uds" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" +dependencies = [ + "iovec", + "libc", + "mio", +] + +[[package]] +name = "miow" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" +dependencies = [ + "kernel32-sys", + "net2", + "winapi 0.2.8", + "ws2_32-sys", +] + +[[package]] +name = "miow" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07b88fb9795d4d36d62a012dfbf49a8f5cf12751f36d31a9dbe66d528e58979e" +dependencies = [ + "socket2", + "winapi 0.3.9", +] + +[[package]] +name = "more-asserts" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0debeb9fcf88823ea64d64e4a815ab1643f33127d995978e099942ce38f25238" + +[[package]] +name = "multihash" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f75db05d738947aa5389863aadafbcf2e509d7ba099dc2ddcdf4fc66bf7a9e03" +dependencies = [ + "blake2b_simd", + "blake2s_simd", + "digest 0.8.1", + "sha-1", + "sha2 0.8.2", + "sha3", + "unsigned-varint 0.3.3", +] + +[[package]] +name = "multimap" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8883adfde9756c1d30b0f519c9b8c502a94b41ac62f696453c37c7fc0a958ce" + +[[package]] +name = "multistream-select" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9157e87afbc2ef0d84cc0345423d715f445edde00141c93721c162de35a05e5" +dependencies = [ + "bytes 0.5.6", + "futures 0.3.5", + "log 0.4.11", + "pin-project", + "smallvec 1.4.1", + "unsigned-varint 0.4.0", +] + +[[package]] +name = "nalgebra" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaa9fddbc34c8c35dd2108515587b8ce0cab396f17977b8c738568e4edb521a2" +dependencies = [ + "alga", + "approx", + "generic-array 0.12.3", + "matrixmultiply", + "num-complex", + "num-rational", + "num-traits 0.2.12", + "rand 0.6.5", + "typenum", +] + +[[package]] +name = "names" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef320dab323286b50fb5cdda23f61c796a72a89998ab565ca32525c5c556f2da" +dependencies = [ + "rand 0.3.23", +] + +[[package]] +name = "net2" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7" +dependencies = [ + "cfg-if", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "netstat2" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29449d242064c48d3057a194b049a2bdcccadda16faa18a91468677b44e8d422" +dependencies = [ + "bitflags", + "byteorder", + "enum-primitive-derive", + "libc", + "num-traits 0.2.12", + "thiserror", +] + +[[package]] +name = "nix" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7fd5681d13fda646462cfbd4e5f2051279a89a544d50eb98c365b507246839f" +dependencies = [ + "bitflags", + "bytes 0.4.12", + "cfg-if", + "gcc", + "libc", + "void", +] + +[[package]] +name = "nix" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363" +dependencies = [ + "bitflags", + "cc", + "cfg-if", + "libc", + "void", +] + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "nohash-hasher" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + +[[package]] +name = "nom" +version = "5.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af" +dependencies = [ + "memchr", + "version_check", +] + +[[package]] +name = "ntapi" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a31937dea023539c72ddae0e3571deadc1414b300483fa7aaec176168cfa9d2" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg 1.0.0", + "num-integer", + "num-traits 0.2.12", +] + +[[package]] +name = "num-complex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +dependencies = [ + "autocfg 1.0.0", + "num-traits 0.2.12", +] + +[[package]] +name = "num-integer" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b" +dependencies = [ + "autocfg 1.0.0", + "num-traits 0.2.12", +] + +[[package]] +name = "num-rational" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +dependencies = [ + "autocfg 1.0.0", + "num-bigint", + "num-integer", + "num-traits 0.2.12", +] + +[[package]] +name = "num-traits" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" +dependencies = [ + "num-traits 0.2.12", +] + +[[package]] +name = "num-traits" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611" +dependencies = [ + "autocfg 1.0.0", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "object" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cbca9424c482ee628fa549d9c812e2cd22f1180b9222c9200fdfa6eb31aecb2" + +[[package]] +name = "object" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ab52be62400ca80aa00285d25253d7f7c437b7375c4de678f5405d3afe82ca5" +dependencies = [ + "crc32fast", + "indexmap", + "wasmparser 0.57.0", +] + +[[package]] +name = "once_cell" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d" +dependencies = [ + "parking_lot 0.10.2", +] + +[[package]] +name = "opaque-debug" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "openssl-probe" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" + +[[package]] +name = "owning_ref" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ff55baddef9e4ad00f88b6c743a2a8062d4c6ade126c2a528644b8e444d52ce" +dependencies = [ + "stable_deref_trait", +] + +[[package]] +name = "pallet-authority-discovery" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "pallet-session", + "parity-scale-codec", + "serde", + "sp-application-crypto", + "sp-authority-discovery", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-authorship" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "parity-scale-codec", + "sp-authorship", + "sp-inherents", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-babe" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-authorship", + "pallet-session", + "pallet-timestamp", + "parity-scale-codec", + "serde", + "sp-application-crypto", + "sp-consensus-babe", + "sp-consensus-vrf", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-timestamp", +] + +[[package]] +name = "pallet-balances" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-collective" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-democracy" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-elections-phragmen" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-npos-elections", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-finality-tracker" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "parity-scale-codec", + "serde", + "sp-finality-tracker", + "sp-inherents", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-grandpa" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-authorship", + "pallet-finality-tracker", + "pallet-session", + "parity-scale-codec", + "serde", + "sp-application-crypto", + "sp-core", + "sp-finality-grandpa", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", +] + +[[package]] +name = "pallet-identity" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "enumflags2", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-im-online" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "pallet-authorship", + "pallet-session", + "parity-scale-codec", + "serde", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-std", +] + +[[package]] +name = "pallet-indices" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-core", + "sp-io", + "sp-keyring", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-membership" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-multisig" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-nicks" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-offences" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "pallet-balances", + "parity-scale-codec", + "serde", + "sp-runtime", + "sp-staking", + "sp-std", +] + +[[package]] +name = "pallet-proxy" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-randomness-collective-flip" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "safe-mix", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-recovery" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "enumflags2", + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-scheduler" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-session" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "pallet-timestamp", + "parity-scale-codec", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-trie", +] + +[[package]] +name = "pallet-society" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "rand_chacha 0.2.2", + "serde", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-staking" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "pallet-authorship", + "pallet-session", + "parity-scale-codec", + "serde", + "sp-application-crypto", + "sp-io", + "sp-npos-elections", + "sp-runtime", + "sp-staking", + "sp-std", + "static_assertions", +] + +[[package]] +name = "pallet-staking-reward-curve" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "proc-macro-crate", + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "pallet-sudo" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-template" +version = "2.0.0-rc5" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "sp-core", + "sp-io", + "sp-runtime", +] + +[[package]] +name = "pallet-timestamp" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "parity-scale-codec", + "serde", + "sp-inherents", + "sp-runtime", + "sp-std", + "sp-timestamp", +] + +[[package]] +name = "pallet-transaction-payment" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "pallet-transaction-payment-rpc-runtime-api", + "parity-scale-codec", + "serde", + "smallvec 1.4.1", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-transaction-payment-rpc" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "pallet-transaction-payment-rpc-runtime-api", + "parity-scale-codec", + "serde", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-rpc", + "sp-runtime", +] + +[[package]] +name = "pallet-transaction-payment-rpc-runtime-api" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "parity-scale-codec", + "serde", + "sp-api", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-treasury" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "pallet-balances", + "parity-scale-codec", + "serde", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-utility" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-vesting" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "enumflags2", + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "parachain-collator" +version = "0.1.0" +dependencies = [ + "ansi_term 0.12.1", + "assert_cmd", + "cumulus-collator", + "cumulus-consensus", + "cumulus-network", + "cumulus-primitives", + "derive_more 0.15.0", + "exit-future 0.1.4", + "futures 0.3.5", + "log 0.4.11", + "nix 0.17.0", + "pallet-sudo", + "parachain-runtime", + "parity-scale-codec", + "parking_lot 0.9.0", + "polkadot-cli", + "polkadot-collator", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-runtime-common", + "polkadot-service", + "polkadot-test-runtime", + "polkadot-test-runtime-client", + "polkadot-test-service", + "rand 0.7.3", + "sc-basic-authorship", + "sc-chain-spec", + "sc-cli", + "sc-client-api", + "sc-consensus", + "sc-executor", + "sc-finality-grandpa", + "sc-informant", + "sc-network", + "sc-service", + "sc-transaction-pool", + "serde", + "sp-api", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-timestamp", + "sp-transaction-pool", + "sp-trie", + "structopt", + "substrate-build-script-utils", + "substrate-test-client", + "substrate-test-runtime-client", + "tokio 0.2.22", + "trie-root 0.15.2", +] + +[[package]] +name = "parachain-runtime" +version = "0.1.0" +dependencies = [ + "cumulus-message-broker", + "cumulus-parachain-upgrade", + "cumulus-primitives", + "cumulus-runtime", + "cumulus-upward-message", + "frame-executive", + "frame-support", + "frame-system", + "pallet-balances", + "pallet-randomness-collective-flip", + "pallet-sudo", + "pallet-template", + "pallet-timestamp", + "pallet-transaction-payment", + "parity-scale-codec", + "serde", + "sp-api", + "sp-block-builder", + "sp-core", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-transaction-pool", + "sp-version", + "substrate-wasm-builder-runner 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "token-dealer", +] + +[[package]] +name = "parity-db" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00d595e372d119261593297debbe4193811a4dc811d2a1ccbb8caaa6666ad7ab" +dependencies = [ + "blake2-rfc", + "crc32fast", + "libc", + "log 0.4.11", + "memmap", + "parking_lot 0.10.2", +] + +[[package]] +name = "parity-multiaddr" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc20af3143a62c16e7c9e92ea5c6ae49f7d271d97d4d8fe73afc28f0514a3d0f" +dependencies = [ + "arrayref", + "bs58", + "byteorder", + "data-encoding", + "multihash", + "percent-encoding 2.1.0", + "serde", + "static_assertions", + "unsigned-varint 0.4.0", + "url 2.1.1", +] + +[[package]] +name = "parity-scale-codec" +version = "1.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34d38aeaffc032ec69faa476b3caaca8d4dd7f3f798137ff30359e5c7869ceb6" +dependencies = [ + "arrayvec 0.5.1", + "bitvec", + "byte-slice-cast", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd20ff7e0399b274a5f5bb37b712fccb5b3a64b9128200d1c3cc40fe709cb073" +dependencies = [ + "proc-macro-crate", + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "parity-send-wrapper" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f" + +[[package]] +name = "parity-tokio-ipc" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e57fea504fea33f9fbb5f49f378359030e7e026a6ab849bb9e8f0787376f1bf" +dependencies = [ + "bytes 0.4.12", + "futures 0.1.29", + "libc", + "log 0.4.11", + "mio-named-pipes", + "miow 0.3.5", + "rand 0.7.3", + "tokio 0.1.22", + "tokio-named-pipes", + "tokio-uds", + "winapi 0.3.9", +] + +[[package]] +name = "parity-util-mem" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "297ff91fa36aec49ce183484b102f6b75b46776822bd81525bfc4cc9b0dd0f5c" +dependencies = [ + "cfg-if", + "hashbrown 0.8.1", + "impl-trait-for-tuples", + "parity-util-mem-derive", + "parking_lot 0.10.2", + "primitive-types", + "smallvec 1.4.1", + "winapi 0.3.9", +] + +[[package]] +name = "parity-util-mem-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" +dependencies = [ + "proc-macro2 1.0.19", + "syn 1.0.38", + "synstructure", +] + +[[package]] +name = "parity-wasm" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddfc878dac00da22f8f61e7af3157988424567ab01d9920b962ef7dcbd7cd865" + +[[package]] +name = "parking" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cb300f271742d4a2a66c01b6b2fa0c83dfebd2e0bf11addb879a3547b4ed87c" + +[[package]] +name = "parking_lot" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" +dependencies = [ + "lock_api 0.1.5", + "parking_lot_core 0.4.0", +] + +[[package]] +name = "parking_lot" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" +dependencies = [ + "lock_api 0.3.4", + "parking_lot_core 0.6.2", + "rustc_version", +] + +[[package]] +name = "parking_lot" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" +dependencies = [ + "lock_api 0.3.4", + "parking_lot_core 0.7.2", +] + +[[package]] +name = "parking_lot_core" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" +dependencies = [ + "libc", + "rand 0.6.5", + "rustc_version", + "smallvec 0.6.13", + "winapi 0.3.9", +] + +[[package]] +name = "parking_lot_core" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" +dependencies = [ + "cfg-if", + "cloudabi", + "libc", + "redox_syscall", + "rustc_version", + "smallvec 0.6.13", + "winapi 0.3.9", +] + +[[package]] +name = "parking_lot_core" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3" +dependencies = [ + "cfg-if", + "cloudabi", + "libc", + "redox_syscall", + "smallvec 1.4.1", + "winapi 0.3.9", +] + +[[package]] +name = "paste" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880" +dependencies = [ + "paste-impl", + "proc-macro-hack", +] + +[[package]] +name = "paste-impl" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6" +dependencies = [ + "proc-macro-hack", +] + +[[package]] +name = "pbkdf2" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9" +dependencies = [ + "byteorder", + "crypto-mac 0.7.0", +] + +[[package]] +name = "pdqselect" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec91767ecc0a0bbe558ce8c9da33c068066c57ecc8bb8477ef8c1ad3ef77c27" + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "percent-encoding" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" + +[[package]] +name = "percent-encoding" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" + +[[package]] +name = "petgraph" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "pin-project" +version = "0.4.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca4433fff2ae79342e497d9f8ee990d174071408f28f726d6d83af93e58e48aa" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "0.4.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "pin-project-lite" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282adbf10f2698a7a77f8e983a74b2d18176c19a7fd32a45446139ae7b02b715" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33" + +[[package]] +name = "platforms" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "feb3b2b1033b8a60b4da6ee470325f887758c95d5320f52f9ce0df055a55940e" + +[[package]] +name = "polkadot-availability-store" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "derive_more 0.99.9", + "exit-future 0.2.0", + "futures 0.3.5", + "kvdb", + "kvdb-memorydb", + "kvdb-rocksdb", + "log 0.4.11", + "parity-scale-codec", + "parking_lot 0.9.0", + "polkadot-erasure-coding", + "polkadot-primitives", + "sc-client-api", + "sc-keystore", + "sc-network", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "tokio 0.2.22", +] + +[[package]] +name = "polkadot-cli" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "frame-benchmarking-cli", + "futures 0.3.5", + "log 0.4.11", + "polkadot-service", + "sc-cli", + "sc-client-api", + "sc-client-db", + "sc-executor", + "sc-service", + "sp-api", + "sp-core", + "sp-runtime", + "sp-trie", + "structopt", + "substrate-build-script-utils", + "tokio 0.2.22", +] + +[[package]] +name = "polkadot-collator" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "futures 0.3.5", + "futures-timer 2.0.2", + "log 0.4.11", + "parity-scale-codec", + "polkadot-cli", + "polkadot-network", + "polkadot-primitives", + "polkadot-service", + "polkadot-validation", + "sc-cli", + "sc-client-api", + "sc-executor", + "sc-network", + "sc-service", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "tokio 0.2.22", +] + +[[package]] +name = "polkadot-core-primitives" +version = "0.7.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "parity-scale-codec", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "polkadot-erasure-coding" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "derive_more 0.15.0", + "parity-scale-codec", + "polkadot-primitives", + "reed-solomon-erasure", + "sp-core", + "sp-trie", +] + +[[package]] +name = "polkadot-network" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "arrayvec 0.4.12", + "bytes 0.5.6", + "derive_more 0.14.1", + "exit-future 0.2.0", + "futures 0.3.5", + "futures-timer 2.0.2", + "log 0.4.11", + "parity-scale-codec", + "parking_lot 0.9.0", + "polkadot-availability-store", + "polkadot-erasure-coding", + "polkadot-primitives", + "polkadot-validation", + "rand 0.7.3", + "sc-network", + "sc-network-gossip", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "wasm-timer", +] + +[[package]] +name = "polkadot-parachain" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "derive_more 0.99.9", + "futures 0.3.5", + "log 0.4.11", + "parity-scale-codec", + "parking_lot 0.10.2", + "polkadot-core-primitives", + "sc-executor", + "serde", + "shared_memory", + "sp-core", + "sp-externalities", + "sp-io", + "sp-std", + "sp-wasm-interface", +] + +[[package]] +name = "polkadot-primitives" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "bitvec", + "frame-system", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain", + "serde", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-staking", + "sp-std", + "sp-trie", + "sp-version", +] + +[[package]] +name = "polkadot-rpc" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "jsonrpc-core", + "pallet-transaction-payment-rpc", + "parity-scale-codec", + "polkadot-primitives", + "sc-client-api", + "sc-consensus-babe", + "sc-consensus-babe-rpc", + "sc-consensus-epochs", + "sc-finality-grandpa", + "sc-finality-grandpa-rpc", + "sc-keystore", + "sc-rpc", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-runtime", + "sp-transaction-pool", + "substrate-frame-rpc-system", +] + +[[package]] +name = "polkadot-runtime" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "bitvec", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-rpc-runtime-api", + "hex-literal", + "log 0.3.9", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-collective", + "pallet-democracy", + "pallet-elections-phragmen", + "pallet-finality-tracker", + "pallet-grandpa", + "pallet-identity", + "pallet-im-online", + "pallet-indices", + "pallet-membership", + "pallet-multisig", + "pallet-nicks", + "pallet-offences", + "pallet-proxy", + "pallet-randomness-collective-flip", + "pallet-scheduler", + "pallet-session", + "pallet-staking", + "pallet-staking-reward-curve", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury", + "pallet-utility", + "pallet-vesting", + "parity-scale-codec", + "polkadot-primitives", + "polkadot-runtime-common", + "rustc-hex", + "serde", + "serde_derive", + "smallvec 1.4.1", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-transaction-pool", + "sp-version", + "static_assertions", + "substrate-wasm-builder-runner 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "polkadot-runtime-common" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "bitvec", + "frame-support", + "frame-system", + "log 0.3.9", + "pallet-authorship", + "pallet-balances", + "pallet-offences", + "pallet-session", + "pallet-staking", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-vesting", + "parity-scale-codec", + "polkadot-primitives", + "polkadot-runtime-parachains", + "rustc-hex", + "serde", + "serde_derive", + "sp-api", + "sp-core", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "static_assertions", +] + +[[package]] +name = "polkadot-runtime-parachains" +version = "0.8.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "bitvec", + "frame-support", + "frame-system", + "pallet-authorship", + "pallet-balances", + "pallet-offences", + "pallet-session", + "pallet-staking", + "pallet-timestamp", + "pallet-vesting", + "parity-scale-codec", + "polkadot-primitives", + "rand 0.7.3", + "rand_chacha 0.2.2", + "rustc-hex", + "serde", + "sp-api", + "sp-core", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", +] + +[[package]] +name = "polkadot-service" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "frame-benchmarking", + "frame-system-rpc-runtime-api", + "futures 0.3.5", + "hex-literal", + "kusama-runtime", + "lazy_static", + "log 0.4.11", + "pallet-babe", + "pallet-im-online", + "pallet-staking", + "pallet-transaction-payment-rpc-runtime-api", + "parity-scale-codec", + "parking_lot 0.9.0", + "polkadot-availability-store", + "polkadot-network", + "polkadot-primitives", + "polkadot-rpc", + "polkadot-runtime", + "polkadot-validation", + "rococo-runtime", + "sc-authority-discovery", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-client-db", + "sc-consensus", + "sc-consensus-babe", + "sc-executor", + "sc-finality-grandpa", + "sc-keystore", + "sc-network", + "sc-service", + "sc-telemetry", + "sc-transaction-pool", + "serde", + "slog", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-core", + "sp-finality-grandpa", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-transaction-pool", + "sp-trie", + "substrate-prometheus-endpoint", + "westend-runtime", +] + +[[package]] +name = "polkadot-statement-table" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "parity-scale-codec", + "polkadot-primitives", + "sp-core", +] + +[[package]] +name = "polkadot-test-runtime" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "bitvec", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-rpc-runtime-api", + "log 0.3.9", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-finality-tracker", + "pallet-grandpa", + "pallet-indices", + "pallet-nicks", + "pallet-offences", + "pallet-randomness-collective-flip", + "pallet-session", + "pallet-staking", + "pallet-staking-reward-curve", + "pallet-sudo", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-vesting", + "parity-scale-codec", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-runtime-common", + "rustc-hex", + "serde", + "serde_derive", + "smallvec 1.4.1", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-transaction-pool", + "sp-version", + "substrate-wasm-builder-runner 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "polkadot-test-runtime-client" +version = "2.0.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "futures 0.3.5", + "pallet-timestamp", + "parity-scale-codec", + "polkadot-primitives", + "polkadot-runtime-common", + "polkadot-test-runtime", + "polkadot-test-service", + "sc-block-builder", + "sc-client-api", + "sc-consensus", + "sc-light", + "sc-service", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-runtime", + "substrate-test-client", +] + +[[package]] +name = "polkadot-test-service" +version = "0.8.2" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "frame-benchmarking", + "frame-system", + "futures 0.1.29", + "futures 0.3.5", + "hex", + "log 0.4.11", + "pallet-staking", + "pallet-transaction-payment", + "polkadot-availability-store", + "polkadot-network", + "polkadot-primitives", + "polkadot-rpc", + "polkadot-runtime-common", + "polkadot-service", + "polkadot-test-runtime", + "polkadot-validation", + "rand 0.7.3", + "sc-authority-discovery", + "sc-chain-spec", + "sc-client-api", + "sc-consensus", + "sc-consensus-babe", + "sc-executor", + "sc-finality-grandpa", + "sc-informant", + "sc-network", + "sc-service", + "sc-transaction-pool", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-core", + "sp-finality-grandpa", + "sp-inherents", + "sp-keyring", + "sp-runtime", + "sp-state-machine", + "substrate-test-client", + "tempfile", +] + +[[package]] +name = "polkadot-validation" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "ansi_term 0.12.1", + "bitvec", + "derive_more 0.14.1", + "exit-future 0.2.0", + "futures 0.3.5", + "futures-timer 2.0.2", + "log 0.4.11", + "pallet-babe", + "parity-scale-codec", + "parking_lot 0.9.0", + "polkadot-availability-store", + "polkadot-erasure-coding", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-statement-table", + "sc-basic-authorship", + "sc-block-builder", + "sc-client-api", + "sc-finality-grandpa", + "sc-keystore", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-timestamp", + "sp-transaction-pool", + "sp-trie", + "substrate-prometheus-endpoint", + "tokio 0.2.22", +] + +[[package]] +name = "poly1305" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b42192ab143ed7619bf888a7f9c6733a9a2153b218e2cd557cfdb52fbf9bb1" +dependencies = [ + "universal-hash", +] + +[[package]] +name = "polyval" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9a50142b55ab3ed0e9f68dfb3709f1d90d29da24e91033f28b96330643107dc" +dependencies = [ + "cfg-if", + "universal-hash", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" + +[[package]] +name = "predicates" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bfead12e90dccead362d62bb2c90a5f6fc4584963645bc7f71a735e0b0735a" +dependencies = [ + "difference", + "predicates-core", +] + +[[package]] +name = "predicates-core" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06075c3a3e92559ff8929e7a280684489ea27fe44805174c3ebd9328dcb37178" + +[[package]] +name = "predicates-tree" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e63c4859013b38a76eca2414c64911fba30def9e3202ac461a2d22831220124" +dependencies = [ + "predicates-core", + "treeline", +] + +[[package]] +name = "primitive-types" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c55c21c64d0eaa4d7ed885d959ef2d62d9e488c27c0e02d9aa5ce6c877b7d5f8" +dependencies = [ + "fixed-hash", + "impl-codec", + "impl-serde 0.3.1", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" +dependencies = [ + "toml", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598" + +[[package]] +name = "proc-macro-nested" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" + +[[package]] +name = "proc-macro2" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +dependencies = [ + "unicode-xid 0.1.0", +] + +[[package]] +name = "proc-macro2" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12" +dependencies = [ + "unicode-xid 0.2.1", +] + +[[package]] +name = "procfs" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c434e93ef69c216e68e4f417c927b4f31502c3560b72cfdb6827e2321c5c6b3e" +dependencies = [ + "bitflags", + "byteorder", + "chrono", + "hex", + "lazy_static", + "libc", + "libflate", +] + +[[package]] +name = "prometheus" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0ced56dee39a6e960c15c74dc48849d614586db2eaada6497477af7c7811cd" +dependencies = [ + "cfg-if", + "fnv", + "lazy_static", + "spin", + "thiserror", +] + +[[package]] +name = "prost" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce49aefe0a6144a45de32927c77bd2859a5f7677b55f220ae5b744e87389c212" +dependencies = [ + "bytes 0.5.6", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02b10678c913ecbd69350e8535c3aef91a8676c0773fc1d7b95cdd196d7f2f26" +dependencies = [ + "bytes 0.5.6", + "heck", + "itertools 0.8.2", + "log 0.4.11", + "multimap", + "petgraph", + "prost", + "prost-types", + "tempfile", + "which", +] + +[[package]] +name = "prost-derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "537aa19b95acde10a12fec4301466386f757403de4cd4e5b4fa78fb5ecb18f72" +dependencies = [ + "anyhow", + "itertools 0.8.2", + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "prost-types" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1834f67c0697c001304b75be76f67add9c89742eda3a085ad8ee0bb38c3417aa" +dependencies = [ + "bytes 0.5.6", + "prost", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quicksink" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77de3c815e5a160b1539c6592796801df2043ae35e123b46d73380cfa57af858" +dependencies = [ + "futures-core", + "futures-sink", + "pin-project-lite", +] + +[[package]] +name = "quote" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a" + +[[package]] +name = "quote" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +dependencies = [ + "proc-macro2 0.4.30", +] + +[[package]] +name = "quote" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" +dependencies = [ + "proc-macro2 1.0.19", +] + +[[package]] +name = "radium" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def50a86306165861203e7f84ecffbbdfdea79f0e51039b33de1e952358c47ac" + +[[package]] +name = "rand" +version = "0.3.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c" +dependencies = [ + "libc", + "rand 0.4.6", +] + +[[package]] +name = "rand" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" +dependencies = [ + "fuchsia-cprng", + "libc", + "rand_core 0.3.1", + "rdrand", + "winapi 0.3.9", +] + +[[package]] +name = "rand" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9" +dependencies = [ + "cloudabi", + "fuchsia-cprng", + "libc", + "rand_core 0.3.1", + "winapi 0.3.9", +] + +[[package]] +name = "rand" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" +dependencies = [ + "autocfg 0.1.7", + "libc", + "rand_chacha 0.1.1", + "rand_core 0.4.2", + "rand_hc 0.1.0", + "rand_isaac", + "rand_jitter", + "rand_os", + "rand_pcg 0.1.2", + "rand_xorshift", + "winapi 0.3.9", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc 0.2.0", + "rand_pcg 0.2.1", +] + +[[package]] +name = "rand_chacha" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" +dependencies = [ + "autocfg 0.1.7", + "rand_core 0.3.1", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +dependencies = [ + "rand_core 0.4.2", +] + +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_hc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_isaac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "rand_jitter" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" +dependencies = [ + "libc", + "rand_core 0.4.2", + "winapi 0.3.9", +] + +[[package]] +name = "rand_os" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" +dependencies = [ + "cloudabi", + "fuchsia-cprng", + "libc", + "rand_core 0.4.2", + "rdrand", + "winapi 0.3.9", +] + +[[package]] +name = "rand_pcg" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" +dependencies = [ + "autocfg 0.1.7", + "rand_core 0.4.2", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_xorshift" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "raw-cpuid" +version = "7.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4a349ca83373cfa5d6dbb66fd76e58b2cca08da71a5f6400de0a0a6a9bceeaf" +dependencies = [ + "bitflags", + "cc", + "rustc_version", +] + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + +[[package]] +name = "rayon" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62f02856753d04e03e26929f820d0a0a337ebe71f849801eea335d464b349080" +dependencies = [ + "autocfg 1.0.0", + "crossbeam-deque", + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e92e15d89083484e11353891f1af602cc661426deb9564c298b270c726973280" +dependencies = [ + "crossbeam-deque", + "crossbeam-queue", + "crossbeam-utils", + "lazy_static", + "num_cpus", +] + +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "redox_syscall" +version = "0.1.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" + +[[package]] +name = "redox_users" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431" +dependencies = [ + "getrandom", + "redox_syscall", + "rust-argon2", +] + +[[package]] +name = "reed-solomon-erasure" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a415a013dd7c5d4221382329a5a3482566da675737494935cbbbcdec04662f9d" +dependencies = [ + "smallvec 1.4.1", +] + +[[package]] +name = "ref-cast" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "745c1787167ddae5569661d5ffb8b25ae5fedbf46717eaa92d652221cec72623" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d21b475ab879ef0e315ad99067fa25778c3b0377f57f1b00207448dac1a3144" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "regalloc" +version = "0.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ba8aaf5fe7cf307c6dbdaeed85478961d29e25e3bee5169e11b92fa9f027a8" +dependencies = [ + "log 0.4.11", + "rustc-hash", + "smallvec 1.4.1", +] + +[[package]] +name = "regex" +version = "1.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", + "thread_local", +] + +[[package]] +name = "regex-syntax" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8" + +[[package]] +name = "region" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877e54ea2adcd70d80e9179344c97f93ef0dffd6b03e1f4529e6e83ab2fa9ae0" +dependencies = [ + "bitflags", + "libc", + "mach", + "winapi 0.3.9", +] + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi 0.3.9", +] + +[[package]] +name = "rental" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8545debe98b2b139fb04cad8618b530e9b07c152d99a5de83c860b877d67847f" +dependencies = [ + "rental-impl", + "stable_deref_trait", +] + +[[package]] +name = "rental-impl" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "475e68978dc5b743f2f40d8e0a8fdc83f1c5e78cbf4b8fa5e74e73beebc340de" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "retain_mut" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e005d658ad26eacc2b6c506dfde519f4e277e328d0eb3379ca61647d70a8f531" + +[[package]] +name = "ring" +version = "0.16.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "952cd6b98c85bbc30efa1ba5783b8abf12fec8b3287ffa52605b9432313e34e4" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted", + "web-sys", + "winapi 0.3.9", +] + +[[package]] +name = "rle-decode-fast" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cabe4fa914dec5870285fa7f71f602645da47c486e68486d2b4ceb4a343e90ac" + +[[package]] +name = "rocksdb" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61aa17a99a2413cd71c1106691bf59dad7de0cd5099127f90e9d99c429c40d4a" +dependencies = [ + "libc", + "librocksdb-sys", +] + +[[package]] +name = "rococo-runtime" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "bitvec", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-rpc-runtime-api", + "hex-literal", + "log 0.3.9", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-collective", + "pallet-democracy", + "pallet-elections-phragmen", + "pallet-finality-tracker", + "pallet-grandpa", + "pallet-identity", + "pallet-im-online", + "pallet-indices", + "pallet-membership", + "pallet-multisig", + "pallet-nicks", + "pallet-offences", + "pallet-proxy", + "pallet-randomness-collective-flip", + "pallet-recovery", + "pallet-scheduler", + "pallet-session", + "pallet-society", + "pallet-staking", + "pallet-staking-reward-curve", + "pallet-sudo", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury", + "pallet-utility", + "pallet-vesting", + "parity-scale-codec", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-runtime-common", + "rustc-hex", + "serde", + "serde_derive", + "smallvec 1.4.1", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-transaction-pool", + "sp-version", + "static_assertions", + "substrate-wasm-builder-runner 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rpassword" +version = "4.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99371657d3c8e4d816fb6221db98fa408242b0b53bac08f8676a41f8554fe99f" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "rust-argon2" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017" +dependencies = [ + "base64 0.11.0", + "blake2b_simd", + "constant_time_eq", + "crossbeam-utils", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc-serialize" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" + +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver", +] + +[[package]] +name = "rustls" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cac94b333ee2aac3284c5b8a1b7fb4dd11cba88c244e3fe33cdbd047af0eb693" +dependencies = [ + "base64 0.12.3", + "log 0.4.11", + "ring", + "sct", + "webpki", +] + +[[package]] +name = "rustls-native-certs" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "629d439a7672da82dd955498445e496ee2096fe2117b9f796558a43fdb9e59b8" +dependencies = [ + "openssl-probe", + "rustls", + "schannel", + "security-framework", +] + +[[package]] +name = "rw-stream-sink" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" +dependencies = [ + "futures 0.3.5", + "pin-project", + "static_assertions", +] + +[[package]] +name = "ryu" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" + +[[package]] +name = "safe-mix" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d3d055a2582e6b00ed7a31c1524040aa391092bf636328350813f3a0605215c" +dependencies = [ + "rustc_version", +] + +[[package]] +name = "sc-authority-discovery" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "bytes 0.5.6", + "derive_more 0.99.9", + "futures 0.3.5", + "futures-timer 3.0.2", + "libp2p", + "log 0.4.11", + "parity-scale-codec", + "prost", + "prost-build", + "rand 0.7.3", + "sc-client-api", + "sc-keystore", + "sc-network", + "serde_json", + "sp-api", + "sp-authority-discovery", + "sp-blockchain", + "sp-core", + "sp-runtime", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-basic-authorship" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "futures 0.3.5", + "futures-timer 3.0.2", + "log 0.4.11", + "parity-scale-codec", + "sc-block-builder", + "sc-client-api", + "sc-proposer-metrics", + "sc-telemetry", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-transaction-pool", + "substrate-prometheus-endpoint", + "tokio-executor 0.2.0-alpha.6", +] + +[[package]] +name = "sc-block-builder" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "parity-scale-codec", + "sc-client-api", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", +] + +[[package]] +name = "sc-chain-spec" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "impl-trait-for-tuples", + "sc-chain-spec-derive", + "sc-network", + "sc-telemetry", + "serde", + "serde_json", + "sp-chain-spec", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "sc-chain-spec-derive" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "proc-macro-crate", + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "sc-cli" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "ansi_term 0.12.1", + "atty", + "chrono", + "derive_more 0.99.9", + "env_logger", + "fdlimit", + "futures 0.3.5", + "lazy_static", + "log 0.4.11", + "names", + "nix 0.17.0", + "parity-util-mem", + "regex", + "rpassword", + "sc-client-api", + "sc-informant", + "sc-network", + "sc-service", + "sc-telemetry", + "sc-tracing", + "serde", + "serde_json", + "sp-blockchain", + "sp-core", + "sp-keyring", + "sp-panic-handler", + "sp-runtime", + "sp-state-machine", + "sp-utils", + "sp-version", + "structopt", + "substrate-prometheus-endpoint", + "time", + "tokio 0.2.22", +] + +[[package]] +name = "sc-client-api" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "derive_more 0.99.9", + "fnv", + "futures 0.3.5", + "hash-db", + "hex-literal", + "kvdb", + "lazy_static", + "log 0.4.11", + "parity-scale-codec", + "parking_lot 0.10.2", + "sc-executor", + "sc-telemetry", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-database", + "sp-externalities", + "sp-inherents", + "sp-keyring", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-storage", + "sp-transaction-pool", + "sp-trie", + "sp-utils", + "sp-version", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-client-db" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "blake2-rfc", + "hash-db", + "kvdb", + "kvdb-memorydb", + "kvdb-rocksdb", + "linked-hash-map", + "log 0.4.11", + "parity-db", + "parity-scale-codec", + "parity-util-mem", + "parking_lot 0.10.2", + "sc-client-api", + "sc-executor", + "sc-state-db", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-database", + "sp-runtime", + "sp-state-machine", + "sp-trie", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-consensus" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "sc-client-api", + "sp-blockchain", + "sp-consensus", + "sp-runtime", +] + +[[package]] +name = "sc-consensus-babe" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "derive_more 0.99.9", + "fork-tree", + "futures 0.3.5", + "futures-timer 3.0.2", + "log 0.4.11", + "merlin", + "num-bigint", + "num-rational", + "num-traits 0.2.12", + "parity-scale-codec", + "parking_lot 0.10.2", + "pdqselect", + "rand 0.7.3", + "retain_mut", + "sc-client-api", + "sc-consensus-epochs", + "sc-consensus-slots", + "sc-consensus-uncles", + "sc-keystore", + "sc-telemetry", + "schnorrkel", + "serde", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-consensus-vrf", + "sp-core", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-timestamp", + "sp-utils", + "sp-version", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-consensus-babe-rpc" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "derive_more 0.99.9", + "futures 0.3.5", + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-keystore", + "sc-rpc-api", + "serde", + "sp-api", + "sp-application-crypto", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "sc-consensus-epochs" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "fork-tree", + "parity-scale-codec", + "parking_lot 0.10.2", + "sc-client-api", + "sp-blockchain", + "sp-runtime", +] + +[[package]] +name = "sc-consensus-slots" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "futures 0.3.5", + "futures-timer 3.0.2", + "log 0.4.11", + "parity-scale-codec", + "parking_lot 0.10.2", + "sc-client-api", + "sc-telemetry", + "sp-api", + "sp-application-crypto", + "sp-blockchain", + "sp-consensus", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", +] + +[[package]] +name = "sc-consensus-uncles" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "log 0.4.11", + "sc-client-api", + "sp-authorship", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", +] + +[[package]] +name = "sc-executor" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "derive_more 0.99.9", + "lazy_static", + "libsecp256k1", + "log 0.4.11", + "parity-scale-codec", + "parity-wasm", + "parking_lot 0.10.2", + "sc-executor-common", + "sc-executor-wasmi", + "sc-executor-wasmtime", + "sp-api", + "sp-core", + "sp-externalities", + "sp-io", + "sp-panic-handler", + "sp-runtime-interface", + "sp-serializer", + "sp-trie", + "sp-version", + "sp-wasm-interface", + "wasmi", +] + +[[package]] +name = "sc-executor-common" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "derive_more 0.99.9", + "log 0.4.11", + "parity-scale-codec", + "parity-wasm", + "sp-allocator", + "sp-core", + "sp-runtime-interface", + "sp-serializer", + "sp-wasm-interface", + "wasmi", +] + +[[package]] +name = "sc-executor-wasmi" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "log 0.4.11", + "parity-scale-codec", + "sc-executor-common", + "sp-allocator", + "sp-core", + "sp-runtime-interface", + "sp-wasm-interface", + "wasmi", +] + +[[package]] +name = "sc-executor-wasmtime" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "cranelift-codegen", + "cranelift-wasm", + "log 0.4.11", + "parity-scale-codec", + "parity-wasm", + "sc-executor-common", + "scoped-tls", + "sp-allocator", + "sp-core", + "sp-runtime-interface", + "sp-wasm-interface", + "substrate-wasmtime", + "wasmtime-environ", + "wasmtime-runtime", +] + +[[package]] +name = "sc-finality-grandpa" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "assert_matches", + "derive_more 0.99.9", + "finality-grandpa", + "fork-tree", + "futures 0.3.5", + "futures-timer 3.0.2", + "log 0.4.11", + "parity-scale-codec", + "parking_lot 0.10.2", + "pin-project", + "rand 0.7.3", + "sc-block-builder", + "sc-client-api", + "sc-consensus", + "sc-keystore", + "sc-network", + "sc-network-gossip", + "sc-telemetry", + "serde_json", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-finality-grandpa", + "sp-finality-tracker", + "sp-inherents", + "sp-runtime", + "sp-utils", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-finality-grandpa-rpc" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "derive_more 0.99.9", + "finality-grandpa", + "futures 0.3.5", + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "log 0.4.11", + "sc-finality-grandpa", + "serde", + "serde_json", +] + +[[package]] +name = "sc-informant" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "ansi_term 0.12.1", + "futures 0.3.5", + "log 0.4.11", + "parity-util-mem", + "sc-client-api", + "sc-network", + "sp-blockchain", + "sp-runtime", + "sp-transaction-pool", + "sp-utils", + "wasm-timer", +] + +[[package]] +name = "sc-keystore" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "derive_more 0.99.9", + "hex", + "merlin", + "parking_lot 0.10.2", + "rand 0.7.3", + "serde_json", + "sp-application-crypto", + "sp-core", + "subtle 2.2.3", +] + +[[package]] +name = "sc-light" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "hash-db", + "lazy_static", + "parity-scale-codec", + "parking_lot 0.10.2", + "sc-client-api", + "sc-executor", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-externalities", + "sp-runtime", + "sp-state-machine", +] + +[[package]] +name = "sc-network" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "bitflags", + "bs58", + "bytes 0.5.6", + "derive_more 0.99.9", + "either", + "erased-serde", + "fnv", + "fork-tree", + "futures 0.3.5", + "futures-timer 3.0.2", + "futures_codec", + "hex", + "ip_network", + "libp2p", + "linked-hash-map", + "linked_hash_set", + "log 0.4.11", + "lru", + "nohash-hasher", + "parity-scale-codec", + "parking_lot 0.10.2", + "pin-project", + "prost", + "prost-build", + "rand 0.7.3", + "sc-block-builder", + "sc-client-api", + "sc-peerset", + "serde", + "serde_json", + "slog", + "slog_derive", + "smallvec 0.6.13", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "sp-utils", + "substrate-prometheus-endpoint", + "thiserror", + "unsigned-varint 0.4.0", + "void", + "wasm-timer", + "zeroize", +] + +[[package]] +name = "sc-network-gossip" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "futures 0.3.5", + "futures-timer 3.0.2", + "libp2p", + "log 0.4.11", + "lru", + "sc-network", + "sp-runtime", + "wasm-timer", +] + +[[package]] +name = "sc-offchain" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "bytes 0.5.6", + "fnv", + "futures 0.3.5", + "futures-timer 3.0.2", + "hyper 0.13.7", + "hyper-rustls", + "log 0.4.11", + "num_cpus", + "parity-scale-codec", + "parking_lot 0.10.2", + "rand 0.7.3", + "sc-client-api", + "sc-keystore", + "sc-network", + "sp-api", + "sp-core", + "sp-offchain", + "sp-runtime", + "sp-utils", + "threadpool", +] + +[[package]] +name = "sc-peerset" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "futures 0.3.5", + "libp2p", + "log 0.4.11", + "serde_json", + "sp-utils", + "wasm-timer", +] + +[[package]] +name = "sc-proposer-metrics" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "log 0.4.11", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-rpc" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "futures 0.3.5", + "hash-db", + "jsonrpc-core", + "jsonrpc-pubsub", + "log 0.4.11", + "parity-scale-codec", + "parking_lot 0.10.2", + "sc-block-builder", + "sc-client-api", + "sc-executor", + "sc-keystore", + "sc-rpc-api", + "serde_json", + "sp-api", + "sp-blockchain", + "sp-chain-spec", + "sp-core", + "sp-offchain", + "sp-rpc", + "sp-runtime", + "sp-session", + "sp-state-machine", + "sp-transaction-pool", + "sp-utils", + "sp-version", +] + +[[package]] +name = "sc-rpc-api" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "derive_more 0.99.9", + "futures 0.3.5", + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "jsonrpc-pubsub", + "log 0.4.11", + "parity-scale-codec", + "parking_lot 0.10.2", + "serde", + "serde_json", + "sp-chain-spec", + "sp-core", + "sp-rpc", + "sp-runtime", + "sp-transaction-pool", + "sp-version", +] + +[[package]] +name = "sc-rpc-server" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "jsonrpc-core", + "jsonrpc-http-server", + "jsonrpc-ipc-server", + "jsonrpc-pubsub", + "jsonrpc-ws-server", + "log 0.4.11", + "serde", + "serde_json", + "sp-runtime", +] + +[[package]] +name = "sc-service" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "derive_more 0.99.9", + "directories", + "exit-future 0.2.0", + "futures 0.1.29", + "futures 0.3.5", + "futures-timer 3.0.2", + "hash-db", + "jsonrpc-pubsub", + "lazy_static", + "log 0.4.11", + "netstat2", + "parity-scale-codec", + "parity-util-mem", + "parking_lot 0.10.2", + "pin-project", + "procfs", + "rand 0.7.3", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-client-db", + "sc-executor", + "sc-informant", + "sc-keystore", + "sc-light", + "sc-network", + "sc-offchain", + "sc-rpc", + "sc-rpc-server", + "sc-telemetry", + "sc-tracing", + "sc-transaction-pool", + "serde", + "serde_json", + "slog", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-externalities", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-session", + "sp-state-machine", + "sp-transaction-pool", + "sp-trie", + "sp-utils", + "sp-version", + "substrate-prometheus-endpoint", + "sysinfo", + "tempfile", + "tracing", + "wasm-timer", +] + +[[package]] +name = "sc-state-db" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "log 0.4.11", + "parity-scale-codec", + "parity-util-mem", + "parity-util-mem-derive", + "parking_lot 0.10.2", + "sc-client-api", + "sp-core", +] + +[[package]] +name = "sc-telemetry" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "futures 0.3.5", + "futures-timer 3.0.2", + "libp2p", + "log 0.4.11", + "parking_lot 0.10.2", + "pin-project", + "rand 0.7.3", + "serde", + "slog", + "slog-json", + "slog-scope", + "take_mut", + "void", + "wasm-timer", +] + +[[package]] +name = "sc-tracing" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "erased-serde", + "log 0.4.11", + "parking_lot 0.10.2", + "rustc-hash", + "sc-telemetry", + "serde", + "serde_json", + "slog", + "sp-tracing", + "tracing-core", +] + +[[package]] +name = "sc-transaction-graph" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "derive_more 0.99.9", + "futures 0.3.5", + "linked-hash-map", + "log 0.4.11", + "parity-util-mem", + "parking_lot 0.10.2", + "retain_mut", + "serde", + "sp-blockchain", + "sp-core", + "sp-runtime", + "sp-transaction-pool", + "sp-utils", + "wasm-timer", +] + +[[package]] +name = "sc-transaction-pool" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "derive_more 0.99.9", + "futures 0.3.5", + "futures-diagnose", + "intervalier", + "log 0.4.11", + "parity-scale-codec", + "parity-util-mem", + "parking_lot 0.10.2", + "sc-client-api", + "sc-transaction-graph", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-runtime", + "sp-tracing", + "sp-transaction-pool", + "sp-utils", + "substrate-prometheus-endpoint", + "wasm-timer", +] + +[[package]] +name = "schannel" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" +dependencies = [ + "lazy_static", + "winapi 0.3.9", +] + +[[package]] +name = "schnorrkel" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862" +dependencies = [ + "arrayref", + "arrayvec 0.5.1", + "curve25519-dalek", + "getrandom", + "merlin", + "rand 0.7.3", + "rand_core 0.5.1", + "sha2 0.8.2", + "subtle 2.2.3", + "zeroize", +] + +[[package]] +name = "scoped-tls" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" + +[[package]] +name = "scopeguard" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "scroll" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb2332cb595d33f7edd5700f4cbf94892e680c7f0ae56adab58a35190b66cb1" +dependencies = [ + "scroll_derive", +] + +[[package]] +name = "scroll_derive" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e367622f934864ffa1c704ba2b82280aab856e3d8213c84c5720257eb34b15b9" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "sct" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3042af939fca8c3453b7af0f1c66e533a15a86169e39de2657310ade8f98d3c" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "secrecy" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9182278ed645df3477a9c27bfee0621c621aa16f6972635f7f795dae3d81070f" +dependencies = [ + "zeroize", +] + +[[package]] +name = "security-framework" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad502866817f0575705bd7be36e2b2535cc33262d493aa733a2ec862baa2bc2b" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51ceb04988b17b6d1dcd555390fa822ca5637b4a14e1f5099f13d351bed4d6c7" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] +name = "send_wrapper" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0eddf2e8f50ced781f288c19f18621fa72a3779e3cb58dbf23b07469b0abeb4" + +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "serde" +version = "1.0.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "serde_json" +version = "1.0.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha-1" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" +dependencies = [ + "block-buffer 0.7.3", + "digest 0.8.1", + "fake-simd", + "opaque-debug 0.2.3", +] + +[[package]] +name = "sha2" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" +dependencies = [ + "block-buffer 0.7.3", + "digest 0.8.1", + "fake-simd", + "opaque-debug 0.2.3", +] + +[[package]] +name = "sha2" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2933378ddfeda7ea26f48c555bdad8bb446bf8a3d17832dc83e380d444cfb8c1" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpuid-bool", + "digest 0.9.0", + "opaque-debug 0.3.0", +] + +[[package]] +name = "sha3" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd26bc0e7a2e3a7c959bc494caf58b72ee0c71d67704e9520f736ca7e4853ecf" +dependencies = [ + "block-buffer 0.7.3", + "byte-tools", + "digest 0.8.1", + "keccak", + "opaque-debug 0.2.3", +] + +[[package]] +name = "shared_memory" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf3ab0cdff84d6c66fc9e268010ea6508e58ee942575afb66f2cf194bb218bb4" +dependencies = [ + "cfg-if", + "enum_primitive", + "libc", + "log 0.4.11", + "memrange", + "nix 0.10.0", + "quick-error", + "rand 0.4.6", + "shared_memory_derive", + "theban_interval_tree", + "winapi 0.3.9", +] + +[[package]] +name = "shared_memory_derive" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "767a14f1304be2f0b04e69860252f8ae9cfae0afaa9cc07b675147c43425dd3a" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "syn 0.15.44", +] + +[[package]] +name = "shlex" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" + +[[package]] +name = "signal-hook-registry" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e12110bc539e657a646068aaf5eb5b63af9d0c1f7b29c97113fad80e15f035" +dependencies = [ + "arc-swap", + "libc", +] + +[[package]] +name = "signature" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29f060a7d147e33490ec10da418795238fd7545bba241504d6b31a409f2e6210" + +[[package]] +name = "slab" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" + +[[package]] +name = "slog" +version = "2.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cc9c640a4adbfbcc11ffb95efe5aa7af7309e002adab54b185507dbf2377b99" +dependencies = [ + "erased-serde", +] + +[[package]] +name = "slog-json" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddc0d2aff1f8f325ef660d9a0eb6e6dcd20b30b3f581a5897f58bf42d061c37a" +dependencies = [ + "chrono", + "erased-serde", + "serde", + "serde_json", + "slog", +] + +[[package]] +name = "slog-scope" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c44c89dd8b0ae4537d1ae318353eaf7840b4869c536e31c41e963d1ea523ee6" +dependencies = [ + "arc-swap", + "lazy_static", + "slog", +] + +[[package]] +name = "slog_derive" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a945ec7f7ce853e89ffa36be1e27dce9a43e82ff9093bf3461c30d5da74ed11b" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "smallvec" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" +dependencies = [ + "maybe-uninit", +] + +[[package]] +name = "smallvec" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3757cb9d89161a2f24e1cf78efa0c1fcff485d18e3f55e0aa3480824ddaa0f3f" + +[[package]] +name = "smol" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "620cbb3c6e34da57d3a248cda0cd01cd5848164dc062e764e65d06fe3ea7aed5" +dependencies = [ + "async-task", + "blocking", + "concurrent-queue", + "fastrand", + "futures-io", + "futures-util", + "libc", + "once_cell", + "scoped-tls", + "slab", + "socket2", + "wepoll-sys-stjepang", + "winapi 0.3.9", +] + +[[package]] +name = "snow" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32bf8474159a95551661246cda4976e89356999e3cbfef36f493dacc3fae1e8e" +dependencies = [ + "aes-gcm", + "blake2", + "chacha20poly1305", + "rand 0.7.3", + "rand_core 0.5.1", + "ring", + "rustc_version", + "sha2 0.9.1", + "subtle 2.2.3", + "x25519-dalek", +] + +[[package]] +name = "socket2" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "winapi 0.3.9", +] + +[[package]] +name = "soketto" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85457366ae0c6ce56bf05a958aef14cd38513c236568618edbcd9a8c52cb80b0" +dependencies = [ + "base64 0.12.3", + "bytes 0.5.6", + "flate2", + "futures 0.3.5", + "httparse", + "log 0.4.11", + "rand 0.7.3", + "sha-1", +] + +[[package]] +name = "sp-allocator" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "derive_more 0.99.9", + "log 0.4.11", + "sp-core", + "sp-std", + "sp-wasm-interface", +] + +[[package]] +name = "sp-api" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "hash-db", + "parity-scale-codec", + "sp-api-proc-macro", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-version", +] + +[[package]] +name = "sp-api-proc-macro" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "blake2-rfc", + "proc-macro-crate", + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "sp-application-crypto" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "parity-scale-codec", + "serde", + "sp-core", + "sp-io", + "sp-std", +] + +[[package]] +name = "sp-arithmetic" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "integer-sqrt", + "num-traits 0.2.12", + "parity-scale-codec", + "serde", + "sp-debug-derive", + "sp-std", +] + +[[package]] +name = "sp-authority-discovery" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "parity-scale-codec", + "sp-api", + "sp-application-crypto", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "sp-authorship" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "parity-scale-codec", + "sp-inherents", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "sp-block-builder" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "parity-scale-codec", + "sp-api", + "sp-inherents", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "sp-blockchain" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "derive_more 0.99.9", + "log 0.4.11", + "lru", + "parity-scale-codec", + "parking_lot 0.10.2", + "sp-block-builder", + "sp-consensus", + "sp-database", + "sp-runtime", + "sp-state-machine", +] + +[[package]] +name = "sp-chain-spec" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "sp-consensus" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "derive_more 0.99.9", + "futures 0.3.5", + "futures-timer 3.0.2", + "libp2p", + "log 0.4.11", + "parity-scale-codec", + "parking_lot 0.10.2", + "serde", + "sp-api", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", + "sp-utils", + "sp-version", + "substrate-prometheus-endpoint", + "wasm-timer", +] + +[[package]] +name = "sp-consensus-aura" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "parity-scale-codec", + "sp-api", + "sp-application-crypto", + "sp-inherents", + "sp-runtime", + "sp-std", + "sp-timestamp", +] + +[[package]] +name = "sp-consensus-babe" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "merlin", + "parity-scale-codec", + "sp-api", + "sp-application-crypto", + "sp-consensus", + "sp-consensus-slots", + "sp-consensus-vrf", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-std", + "sp-timestamp", +] + +[[package]] +name = "sp-consensus-slots" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "parity-scale-codec", + "sp-runtime", +] + +[[package]] +name = "sp-consensus-vrf" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "parity-scale-codec", + "schnorrkel", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "sp-core" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "base58", + "blake2-rfc", + "byteorder", + "derive_more 0.99.9", + "dyn-clonable", + "ed25519-dalek", + "futures 0.3.5", + "hash-db", + "hash256-std-hasher", + "hex", + "impl-serde 0.3.1", + "lazy_static", + "libsecp256k1", + "log 0.4.11", + "merlin", + "num-traits 0.2.12", + "parity-scale-codec", + "parity-util-mem", + "parking_lot 0.10.2", + "primitive-types", + "rand 0.7.3", + "regex", + "schnorrkel", + "secrecy", + "serde", + "sha2 0.8.2", + "sp-debug-derive", + "sp-externalities", + "sp-runtime-interface", + "sp-std", + "sp-storage", + "substrate-bip39", + "tiny-bip39", + "tiny-keccak", + "twox-hash", + "wasmi", + "zeroize", +] + +[[package]] +name = "sp-database" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "kvdb", + "parking_lot 0.10.2", +] + +[[package]] +name = "sp-debug-derive" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "sp-externalities" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "environmental", + "parity-scale-codec", + "sp-std", + "sp-storage", +] + +[[package]] +name = "sp-finality-grandpa" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "finality-grandpa", + "log 0.4.11", + "parity-scale-codec", + "serde", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "sp-finality-tracker" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "parity-scale-codec", + "sp-inherents", + "sp-std", +] + +[[package]] +name = "sp-inherents" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "derive_more 0.99.9", + "parity-scale-codec", + "parking_lot 0.10.2", + "sp-core", + "sp-std", +] + +[[package]] +name = "sp-io" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "futures 0.3.5", + "hash-db", + "libsecp256k1", + "log 0.4.11", + "parity-scale-codec", + "parking_lot 0.10.2", + "sp-core", + "sp-externalities", + "sp-runtime-interface", + "sp-state-machine", + "sp-std", + "sp-tracing", + "sp-trie", + "sp-wasm-interface", +] + +[[package]] +name = "sp-keyring" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "lazy_static", + "sp-core", + "sp-runtime", + "strum", +] + +[[package]] +name = "sp-npos-elections" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "parity-scale-codec", + "serde", + "sp-arithmetic", + "sp-npos-elections-compact", + "sp-std", +] + +[[package]] +name = "sp-npos-elections-compact" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "proc-macro-crate", + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "sp-offchain" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "sp-api", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "sp-panic-handler" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "backtrace", + "log 0.4.11", +] + +[[package]] +name = "sp-rpc" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "serde", + "sp-core", +] + +[[package]] +name = "sp-runtime" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "either", + "hash256-std-hasher", + "impl-trait-for-tuples", + "log 0.4.11", + "parity-scale-codec", + "parity-util-mem", + "paste", + "rand 0.7.3", + "serde", + "sp-application-crypto", + "sp-arithmetic", + "sp-core", + "sp-inherents", + "sp-io", + "sp-std", +] + +[[package]] +name = "sp-runtime-interface" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "parity-scale-codec", + "primitive-types", + "sp-externalities", + "sp-runtime-interface-proc-macro", + "sp-std", + "sp-tracing", + "sp-wasm-interface", + "static_assertions", +] + +[[package]] +name = "sp-runtime-interface-proc-macro" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "Inflector", + "proc-macro-crate", + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "sp-serializer" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "sp-session" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "parity-scale-codec", + "sp-api", + "sp-core", + "sp-runtime", + "sp-staking", + "sp-std", +] + +[[package]] +name = "sp-staking" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "parity-scale-codec", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "sp-state-machine" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "hash-db", + "itertools 0.9.0", + "log 0.4.11", + "num-traits 0.2.12", + "parity-scale-codec", + "parking_lot 0.10.2", + "rand 0.7.3", + "smallvec 1.4.1", + "sp-core", + "sp-externalities", + "sp-panic-handler", + "sp-trie", + "trie-db", + "trie-root 0.16.0", +] + +[[package]] +name = "sp-std" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" + +[[package]] +name = "sp-storage" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "impl-serde 0.2.3", + "ref-cast", + "serde", + "sp-debug-derive", + "sp-std", +] + +[[package]] +name = "sp-timestamp" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "impl-trait-for-tuples", + "parity-scale-codec", + "sp-api", + "sp-inherents", + "sp-runtime", + "sp-std", + "wasm-timer", +] + +[[package]] +name = "sp-tracing" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "log 0.4.11", + "rental", + "tracing", +] + +[[package]] +name = "sp-transaction-pool" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "derive_more 0.99.9", + "futures 0.3.5", + "log 0.4.11", + "parity-scale-codec", + "serde", + "sp-api", + "sp-blockchain", + "sp-runtime", +] + +[[package]] +name = "sp-trie" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "hash-db", + "memory-db", + "parity-scale-codec", + "sp-core", + "sp-std", + "trie-db", + "trie-root 0.16.0", +] + +[[package]] +name = "sp-utils" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "futures 0.3.5", + "futures-core", + "futures-timer 3.0.2", + "lazy_static", + "prometheus", +] + +[[package]] +name = "sp-version" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "impl-serde 0.2.3", + "parity-scale-codec", + "serde", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "sp-wasm-interface" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "impl-trait-for-tuples", + "parity-scale-codec", + "sp-std", + "wasmi", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "statrs" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10102ac8d55e35db2b3fafc26f81ba8647da2e15879ab686a67e6d19af2685e8" +dependencies = [ + "rand 0.5.6", +] + +[[package]] +name = "stream-cipher" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09f8ed9974042b8c3672ff3030a69fcc03b74c47c3d1ecb7755e8a3626011e88" +dependencies = [ + "generic-array 0.14.3", +] + +[[package]] +name = "string" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24114bfcceb867ca7f71a0d3fe45d45619ec47a6fbfa98cb14e14250bfa5d6d" +dependencies = [ + "bytes 0.4.12", +] + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "structopt" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de5472fb24d7e80ae84a7801b7978f95a19ec32cb1876faea59ab711eb901976" +dependencies = [ + "clap", + "lazy_static", + "structopt-derive", +] + +[[package]] +name = "structopt-derive" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0eb37335aeeebe51be42e2dc07f031163fbabfa6ac67d7ea68b5c2f68d5f99" +dependencies = [ + "heck", + "proc-macro-error", + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "strum" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6138f8f88a16d90134763314e3fc76fa3ed6a7db4725d6acf9a3ef95a3188d22" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0054a7df764039a6cd8592b9de84be4bec368ff081d203a7d5371cbfa8e65c81" +dependencies = [ + "heck", + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "substrate-bip39" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c004e8166d6e0aa3a9d5fa673e5b7098ff25f930de1013a21341988151e681bb" +dependencies = [ + "hmac", + "pbkdf2", + "schnorrkel", + "sha2 0.8.2", +] + +[[package]] +name = "substrate-build-script-utils" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "platforms", +] + +[[package]] +name = "substrate-frame-rpc-system" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "frame-system-rpc-runtime-api", + "futures 0.3.5", + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "log 0.4.11", + "parity-scale-codec", + "sc-client-api", + "sc-rpc-api", + "serde", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-core", + "sp-runtime", + "sp-transaction-pool", +] + +[[package]] +name = "substrate-prometheus-endpoint" +version = "0.8.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "async-std", + "derive_more 0.99.9", + "futures-util", + "hyper 0.13.7", + "log 0.4.11", + "prometheus", + "tokio 0.2.22", +] + +[[package]] +name = "substrate-test-client" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "futures 0.1.29", + "futures 0.3.5", + "hash-db", + "hex", + "parity-scale-codec", + "sc-client-api", + "sc-client-db", + "sc-consensus", + "sc-executor", + "sc-light", + "sc-service", + "serde", + "serde_json", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-keyring", + "sp-runtime", + "sp-state-machine", +] + +[[package]] +name = "substrate-test-runtime" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "cfg-if", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-rpc-runtime-api", + "log 0.4.11", + "memory-db", + "pallet-babe", + "pallet-timestamp", + "parity-scale-codec", + "parity-util-mem", + "sc-service", + "serde", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-consensus-aura", + "sp-consensus-babe", + "sp-core", + "sp-finality-grandpa", + "sp-inherents", + "sp-io", + "sp-keyring", + "sp-offchain", + "sp-runtime", + "sp-runtime-interface", + "sp-session", + "sp-std", + "sp-transaction-pool", + "sp-trie", + "sp-version", + "substrate-wasm-builder-runner 1.0.6 (git+https://github.com/paritytech/substrate?branch=rococo-branch)", + "trie-db", +] + +[[package]] +name = "substrate-test-runtime-client" +version = "2.0.0-rc5" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +dependencies = [ + "futures 0.3.5", + "parity-scale-codec", + "sc-block-builder", + "sc-client-api", + "sc-consensus", + "sc-light", + "sc-service", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "substrate-test-client", + "substrate-test-runtime", +] + +[[package]] +name = "substrate-wasm-builder-runner" +version = "1.0.6" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" + +[[package]] +name = "substrate-wasm-builder-runner" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2a965994514ab35d3893e9260245f2947fd1981cdd4fffd2c6e6d1a9ce02e6a" + +[[package]] +name = "substrate-wasmtime" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a69f5b3afef86e3e372529bf3fb1f7219b20287c4490e4cb4b4e91970f4f5" +dependencies = [ + "anyhow", + "backtrace", + "cfg-if", + "lazy_static", + "libc", + "log 0.4.11", + "region", + "rustc-demangle", + "smallvec 1.4.1", + "target-lexicon", + "wasmparser 0.59.0", + "wasmtime-environ", + "wasmtime-jit", + "wasmtime-profiling", + "wasmtime-runtime", + "wat", + "winapi 0.3.9", +] + +[[package]] +name = "subtle" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" + +[[package]] +name = "subtle" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "502d53007c02d7605a05df1c1a73ee436952781653da5d0bf57ad608f66932c1" + +[[package]] +name = "syn" +version = "0.11.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad" +dependencies = [ + "quote 0.3.15", + "synom", + "unicode-xid 0.0.4", +] + +[[package]] +name = "syn" +version = "0.15.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid 0.1.0", +] + +[[package]] +name = "syn" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e69abc24912995b3038597a7a593be5053eb0fb44f3cc5beec0deb421790c1f4" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "unicode-xid 0.2.1", +] + +[[package]] +name = "synom" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6" +dependencies = [ + "unicode-xid 0.0.4", +] + +[[package]] +name = "synstructure" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", + "unicode-xid 0.2.1", +] + +[[package]] +name = "sysinfo" +version = "0.14.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2983daff11a197c7c406b130579bc362177aa54cf2cc1f34d6ac88fccaa6a5e1" +dependencies = [ + "cfg-if", + "doc-comment", + "libc", + "ntapi", + "once_cell", + "rayon", + "winapi 0.3.9", +] + +[[package]] +name = "take_mut" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" + +[[package]] +name = "target-lexicon" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab0e7238dcc7b40a7be719a25365910f6807bd864f4cce6b2e6b873658e2b19d" + +[[package]] +name = "tempfile" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" +dependencies = [ + "cfg-if", + "libc", + "rand 0.7.3", + "redox_syscall", + "remove_dir_all", + "winapi 0.3.9", +] + +[[package]] +name = "termcolor" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "theban_interval_tree" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7b42a5385db9a651628091edcd1d58ac9cb1c92327d8cd2a29bf8e35bdfe4ea" +dependencies = [ + "memrange", + "rand 0.3.23", + "time", +] + +[[package]] +name = "thiserror" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dfdd070ccd8ccb78f4ad66bf1982dc37f620ef696c6b5028fe2ed83dd3d0d08" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "thread_local" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "time" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "tiny-bip39" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0165e045cc2ae1660270ca65e1676dbaab60feb0f91b10f7d0665e9b47e31f2" +dependencies = [ + "failure", + "hmac", + "once_cell", + "pbkdf2", + "rand 0.7.3", + "rustc-hash", + "sha2 0.8.2", + "unicode-normalization", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinyvec" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed" + +[[package]] +name = "token-dealer" +version = "2.0.0-rc5" +dependencies = [ + "cumulus-primitives", + "cumulus-upward-message", + "frame-support", + "frame-system", + "parity-scale-codec", + "polkadot-parachain", +] + +[[package]] +name = "tokio" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" +dependencies = [ + "bytes 0.4.12", + "futures 0.1.29", + "mio", + "num_cpus", + "tokio-codec", + "tokio-current-thread", + "tokio-executor 0.1.10", + "tokio-fs", + "tokio-io", + "tokio-reactor", + "tokio-sync 0.1.8", + "tokio-tcp", + "tokio-threadpool", + "tokio-timer", + "tokio-udp", + "tokio-uds", +] + +[[package]] +name = "tokio" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d34ca54d84bf2b5b4d7d31e901a8464f7b60ac145a284fba25ceb801f2ddccd" +dependencies = [ + "bytes 0.5.6", + "fnv", + "futures-core", + "iovec", + "lazy_static", + "libc", + "memchr", + "mio", + "mio-uds", + "num_cpus", + "pin-project-lite", + "signal-hook-registry", + "slab", + "tokio-macros", + "winapi 0.3.9", +] + +[[package]] +name = "tokio-buf" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46" +dependencies = [ + "bytes 0.4.12", + "either", + "futures 0.1.29", +] + +[[package]] +name = "tokio-codec" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b" +dependencies = [ + "bytes 0.4.12", + "futures 0.1.29", + "tokio-io", +] + +[[package]] +name = "tokio-current-thread" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e" +dependencies = [ + "futures 0.1.29", + "tokio-executor 0.1.10", +] + +[[package]] +name = "tokio-executor" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" +dependencies = [ + "crossbeam-utils", + "futures 0.1.29", +] + +[[package]] +name = "tokio-executor" +version = "0.2.0-alpha.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ee9ceecf69145923834ea73f32ba40c790fd877b74a7817dd0b089f1eb9c7c8" +dependencies = [ + "futures-util-preview", + "lazy_static", + "tokio-sync 0.2.0-alpha.6", +] + +[[package]] +name = "tokio-fs" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4" +dependencies = [ + "futures 0.1.29", + "tokio-io", + "tokio-threadpool", +] + +[[package]] +name = "tokio-io" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" +dependencies = [ + "bytes 0.4.12", + "futures 0.1.29", + "log 0.4.11", +] + +[[package]] +name = "tokio-macros" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0c3acc6aa564495a0f2e1d59fab677cd7f81a19994cfc7f3ad0e64301560389" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "tokio-named-pipes" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d282d483052288b2308ba5ee795f5673b159c9bdf63c385a05609da782a5eae" +dependencies = [ + "bytes 0.4.12", + "futures 0.1.29", + "mio", + "mio-named-pipes", + "tokio 0.1.22", +] + +[[package]] +name = "tokio-reactor" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" +dependencies = [ + "crossbeam-utils", + "futures 0.1.29", + "lazy_static", + "log 0.4.11", + "mio", + "num_cpus", + "parking_lot 0.9.0", + "slab", + "tokio-executor 0.1.10", + "tokio-io", + "tokio-sync 0.1.8", +] + +[[package]] +name = "tokio-rustls" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228139ddd4fea3fa345a29233009635235833e52807af7ea6448ead03890d6a9" +dependencies = [ + "futures-core", + "rustls", + "tokio 0.2.22", + "webpki", +] + +[[package]] +name = "tokio-service" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24da22d077e0f15f55162bdbdc661228c1581892f52074fb242678d015b45162" +dependencies = [ + "futures 0.1.29", +] + +[[package]] +name = "tokio-sync" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee" +dependencies = [ + "fnv", + "futures 0.1.29", +] + +[[package]] +name = "tokio-sync" +version = "0.2.0-alpha.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f1aaeb685540f7407ea0e27f1c9757d258c7c6bf4e3eb19da6fc59b747239d2" +dependencies = [ + "fnv", + "futures-core-preview", + "futures-util-preview", +] + +[[package]] +name = "tokio-tcp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" +dependencies = [ + "bytes 0.4.12", + "futures 0.1.29", + "iovec", + "mio", + "tokio-io", + "tokio-reactor", +] + +[[package]] +name = "tokio-threadpool" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" +dependencies = [ + "crossbeam-deque", + "crossbeam-queue", + "crossbeam-utils", + "futures 0.1.29", + "lazy_static", + "log 0.4.11", + "num_cpus", + "slab", + "tokio-executor 0.1.10", +] + +[[package]] +name = "tokio-timer" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" +dependencies = [ + "crossbeam-utils", + "futures 0.1.29", + "slab", + "tokio-executor 0.1.10", +] + +[[package]] +name = "tokio-udp" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82" +dependencies = [ + "bytes 0.4.12", + "futures 0.1.29", + "log 0.4.11", + "mio", + "tokio-codec", + "tokio-io", + "tokio-reactor", +] + +[[package]] +name = "tokio-uds" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0" +dependencies = [ + "bytes 0.4.12", + "futures 0.1.29", + "iovec", + "libc", + "log 0.4.11", + "mio", + "mio-uds", + "tokio-codec", + "tokio-io", + "tokio-reactor", +] + +[[package]] +name = "tokio-util" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" +dependencies = [ + "bytes 0.5.6", + "futures-core", + "futures-sink", + "log 0.4.11", + "pin-project-lite", + "tokio 0.2.22", +] + +[[package]] +name = "toml" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a" +dependencies = [ + "serde", +] + +[[package]] +name = "tower-service" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" + +[[package]] +name = "tracing" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0aae59226cf195d8e74d4b34beae1859257efb4e5fed3f147d2dc2c7d372178" +dependencies = [ + "cfg-if", + "log 0.4.11", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0693bf8d6f2bf22c690fc61a9d21ac69efdbb894a17ed596b9af0f01e64b84b" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", +] + +[[package]] +name = "tracing-core" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d593f98af59ebc017c0648f0117525db358745a8894a8d684e185ba3f45954f9" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "treeline" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41" + +[[package]] +name = "trie-db" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e55f7ace33d6237e14137e386f4e1672e2a5c6bbc97fef9f438581a143971f0" +dependencies = [ + "hash-db", + "hashbrown 0.8.1", + "log 0.4.11", + "rustc-hex", + "smallvec 1.4.1", +] + +[[package]] +name = "trie-root" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b779f7c1c8fe9276365d9d5be5c4b5adeacf545117bb3f64c974305789c5c0b" +dependencies = [ + "hash-db", +] + +[[package]] +name = "trie-root" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "652931506d2c1244d7217a70b99f56718a7b4161b37f04e7cd868072a99f68cd" +dependencies = [ + "hash-db", +] + +[[package]] +name = "try-lock" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" + +[[package]] +name = "twox-hash" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bfd5b7557925ce778ff9b9ef90e3ade34c524b5ff10e239c69a42d546d2af56" +dependencies = [ + "rand 0.7.3", +] + +[[package]] +name = "typenum" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" + +[[package]] +name = "uint" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "429ffcad8c8c15f874578c7337d156a3727eb4a1c2374c0ae937ad9a9b748c80" +dependencies = [ + "byteorder", + "crunchy", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "unicase" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" +dependencies = [ + "matches", +] + +[[package]] +name = "unicode-normalization" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" + +[[package]] +name = "unicode-width" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" + +[[package]] +name = "unicode-xid" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc" + +[[package]] +name = "unicode-xid" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + +[[package]] +name = "unicode-xid" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" + +[[package]] +name = "universal-hash" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" +dependencies = [ + "generic-array 0.14.3", + "subtle 2.2.3", +] + +[[package]] +name = "unsigned-varint" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f67332660eb59a6f1eb24ff1220c9e8d01738a8503c6002e30bcfe4bd9f2b4a9" + +[[package]] +name = "unsigned-varint" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "669d776983b692a906c881fcd0cfb34271a48e197e4d6cb8df32b05bfc3d3fa5" +dependencies = [ + "bytes 0.5.6", + "futures-io", + "futures-util", + "futures_codec", +] + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "url" +version = "1.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" +dependencies = [ + "idna 0.1.5", + "matches", + "percent-encoding 1.0.1", +] + +[[package]] +name = "url" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb" +dependencies = [ + "idna 0.2.0", + "matches", + "percent-encoding 2.1.0", +] + +[[package]] +name = "vcpkg" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "version_check" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + +[[package]] +name = "waker-fn" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9571542c2ce85ce642e6b58b3364da2fb53526360dfb7c211add4f5c23105ff7" + +[[package]] +name = "want" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230" +dependencies = [ + "futures 0.1.29", + "log 0.4.11", + "try-lock", +] + +[[package]] +name = "want" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +dependencies = [ + "log 0.4.11", + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasm-bindgen" +version = "0.2.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0563a9a4b071746dd5aedbc3a28c6fe9be4586fb3fbadb67c400d4f53c6b16c" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc71e4c5efa60fb9e74160e89b93353bc24059999c0ae0fb03affc39770310b0" +dependencies = [ + "bumpalo", + "lazy_static", + "log 0.4.11", + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95f8d235a77f880bcef268d379810ea6c0af2eacfa90b1ad5af731776e0c4699" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97c57cefa5fa80e2ba15641578b44d36e7a64279bc5ed43c6dbaf329457a2ed2" +dependencies = [ + "quote 1.0.7", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841a6d1c35c6f596ccea1f82504a192a60378f64b3bb0261904ad8f2f5657556" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93b162580e34310e5931c4b792560108b10fd14d64915d7fff8ff00180e70092" + +[[package]] +name = "wasm-timer" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "324c5e65a08699c9c4334ba136597ab22b85dccd4b65dd1e36ccf8f723a95b54" +dependencies = [ + "futures 0.3.5", + "js-sys", + "parking_lot 0.9.0", + "pin-utils", + "send_wrapper 0.2.0", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasmi" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf617d864d25af3587aa745529f7aaa541066c876d57e050c0d0c85c61c92aff" +dependencies = [ + "libc", + "memory_units", + "num-rational", + "num-traits 0.2.12", + "parity-wasm", + "wasmi-validation", +] + +[[package]] +name = "wasmi-validation" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea78c597064ba73596099281e2f4cfc019075122a65cdda3205af94f0b264d93" +dependencies = [ + "parity-wasm", +] + +[[package]] +name = "wasmparser" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32fddd575d477c6e9702484139cf9f23dcd554b06d185ed0f56c857dd3a47aa6" + +[[package]] +name = "wasmparser" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a950e6a618f62147fd514ff445b2a0b53120d382751960797f85f058c7eda9b9" + +[[package]] +name = "wasmtime-debug" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e634af9067a3af6cf2c7d33dc3b84767ddaf5d010ba68e80eecbcea73d4a349" +dependencies = [ + "anyhow", + "gimli 0.21.0", + "more-asserts", + "object 0.20.0", + "target-lexicon", + "thiserror", + "wasmparser 0.59.0", + "wasmtime-environ", +] + +[[package]] +name = "wasmtime-environ" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f85619a94ee4034bd5bb87fc3dcf71fd2237b81c840809da1201061eec9ab3" +dependencies = [ + "anyhow", + "base64 0.12.3", + "bincode", + "cfg-if", + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "cranelift-wasm", + "directories", + "errno", + "file-per-thread-logger", + "indexmap", + "libc", + "log 0.4.11", + "more-asserts", + "rayon", + "serde", + "sha2 0.8.2", + "thiserror", + "toml", + "wasmparser 0.59.0", + "winapi 0.3.9", + "zstd", +] + +[[package]] +name = "wasmtime-jit" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e914c013c7a9f15f4e429d5431f2830fb8adb56e40567661b69c5ec1d645be23" +dependencies = [ + "anyhow", + "cfg-if", + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "cranelift-native", + "cranelift-wasm", + "gimli 0.21.0", + "log 0.4.11", + "more-asserts", + "object 0.20.0", + "region", + "target-lexicon", + "thiserror", + "wasmparser 0.59.0", + "wasmtime-debug", + "wasmtime-environ", + "wasmtime-obj", + "wasmtime-profiling", + "wasmtime-runtime", + "winapi 0.3.9", +] + +[[package]] +name = "wasmtime-obj" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e81d8e02e9bc9fe2da9b6d48bbc217f96e089f7df613f11a28a3958abc44641e" +dependencies = [ + "anyhow", + "more-asserts", + "object 0.20.0", + "target-lexicon", + "wasmtime-debug", + "wasmtime-environ", +] + +[[package]] +name = "wasmtime-profiling" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e8d4d1af8dd5f7096cfcc89dd668d358e52980c38cce199643372ffd6590e27" +dependencies = [ + "anyhow", + "cfg-if", + "gimli 0.21.0", + "lazy_static", + "libc", + "object 0.19.0", + "scroll", + "serde", + "target-lexicon", + "wasmtime-environ", + "wasmtime-runtime", +] + +[[package]] +name = "wasmtime-runtime" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a25f140bbbaadb07c531cba99ce1a966dba216138dc1b2a0ddecec851a01a93" +dependencies = [ + "backtrace", + "cc", + "cfg-if", + "indexmap", + "lazy_static", + "libc", + "log 0.4.11", + "memoffset", + "more-asserts", + "region", + "thiserror", + "wasmtime-environ", + "winapi 0.3.9", +] + +[[package]] +name = "wast" +version = "21.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b1844f66a2bc8526d71690104c0e78a8e59ffa1597b7245769d174ebb91deb5" +dependencies = [ + "leb128", +] + +[[package]] +name = "wat" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce85d72b74242c340e9e3492cfb602652d7bb324c3172dd441b5577e39a2e18c" +dependencies = [ + "wast", +] + +[[package]] +name = "web-sys" +version = "0.3.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dda38f4e5ca63eda02c059d243aa25b5f35ab98451e518c51612cd0f1bd19a47" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab146130f5f790d45f82aeeb09e55a256573373ec64409fc19a6fb82fb1032ae" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki-roots" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91cd5736df7f12a964a5067a12c62fa38e1bd8080aff1f80bc29be7c80d19ab4" +dependencies = [ + "webpki", +] + +[[package]] +name = "webpki-roots" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8eff4b7516a57307f9349c64bf34caa34b940b66fed4b2fb3136cb7386e5739" +dependencies = [ + "webpki", +] + +[[package]] +name = "wepoll-sys-stjepang" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fd319e971980166b53e17b1026812ad66c6b54063be879eb182342b55284694" +dependencies = [ + "cc", +] + +[[package]] +name = "westend-runtime" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +dependencies = [ + "bitvec", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-rpc-runtime-api", + "hex-literal", + "log 0.3.9", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-collective", + "pallet-democracy", + "pallet-elections-phragmen", + "pallet-finality-tracker", + "pallet-grandpa", + "pallet-identity", + "pallet-im-online", + "pallet-indices", + "pallet-membership", + "pallet-multisig", + "pallet-nicks", + "pallet-offences", + "pallet-proxy", + "pallet-randomness-collective-flip", + "pallet-recovery", + "pallet-scheduler", + "pallet-session", + "pallet-society", + "pallet-staking", + "pallet-staking-reward-curve", + "pallet-sudo", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury", + "pallet-utility", + "pallet-vesting", + "parity-scale-codec", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-runtime-common", + "rustc-hex", + "serde", + "serde_derive", + "smallvec 1.4.1", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-transaction-pool", + "sp-version", + "static_assertions", + "substrate-wasm-builder-runner 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "which" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724" +dependencies = [ + "libc", +] + +[[package]] +name = "winapi" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" + +[[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-build" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi 0.3.9", +] + +[[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 = "ws" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c51a2c47b5798ccc774ffb93ff536aec7c4275d722fd9c740c83cdd1af1f2d94" +dependencies = [ + "byteorder", + "bytes 0.4.12", + "httparse", + "log 0.4.11", + "mio", + "mio-extras", + "rand 0.7.3", + "sha-1", + "slab", + "url 2.1.1", +] + +[[package]] +name = "ws2_32-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "x25519-dalek" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "637ff90c9540fa3073bb577e65033069e4bae7c79d49d74aa3ffdf5342a53217" +dependencies = [ + "curve25519-dalek", + "rand_core 0.5.1", + "zeroize", +] + +[[package]] +name = "yamux" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd37e58a1256a0b328ce9c67d8b62ecdd02f4803ba443df478835cb1a41a637c" +dependencies = [ + "futures 0.3.5", + "log 0.4.11", + "nohash-hasher", + "parking_lot 0.10.2", + "rand 0.7.3", + "static_assertions", +] + +[[package]] +name = "zeroize" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cbac2ed2ba24cc90f5e06485ac8c7c1e5449fe8911aef4d8877218af021a5b8" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de251eec69fc7c1bc3923403d18ececb929380e016afe103da75f396704f8ca2" +dependencies = [ + "proc-macro2 1.0.19", + "quote 1.0.7", + "syn 1.0.38", + "synstructure", +] + +[[package]] +name = "zstd" +version = "0.5.3+zstd.1.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01b32eaf771efa709e8308605bbf9319bf485dc1503179ec0469b611937c0cd8" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "2.0.5+zstd.1.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfb642e0d27f64729a639c52db457e0ae906e7bc6f5fe8f5c453230400f1055" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "1.4.17+zstd.1.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b89249644df056b522696b1bb9e7c18c87e8ffa3e2f0dc3b0155875d6498f01b" +dependencies = [ + "cc", + "glob", + "itertools 0.9.0", + "libc", +] diff --git a/Cargo.toml b/Cargo.toml index d77ff631..01ce8953 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,9 +1,10 @@ -[profile.release] -panic = 'unwind' - [workspace] members = [ - 'node', - 'pallets/template', - 'runtime', + "runtime/", + "pallets/token-dealer", + "pallets/template", + "node/", ] + +[profile.release] +panic = 'unwind' diff --git a/README.md b/README.md index ca5fa2e9..2b10d54a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Substrate Node Template +# Substrate Parachain Template A new FRAME-based Substrate node, ready for hacking :rocket: @@ -34,25 +34,38 @@ cargo build --release ### Single Node Development Chain -Purge any existing dev chain state: +Purge any existing staging chain state: ```bash -./target/release/node-template purge-chain --dev +./target/release/parachain-collator purge-chain --chain staging ``` -Start a dev chain: +Start a staging chain: ```bash -./target/release/node-template --dev +./target/release/parachain-collator --chain staging ``` -Or, start a dev chain with detailed logging: +Or, start a staging chain with detailed logging: ```bash -RUST_LOG=debug RUST_BACKTRACE=1 ./target/release/node-template -lruntime=debug --dev +RUST_LOG=debug RUST_BACKTRACE=1 ./target/release/parachain-collator -lruntime=debug --chain staging ``` -### Multi-Node Local Testnet +### Local Testnet + +Polkadot (rococo-branch): +``` +./target/release/polkadot build-spec --chain rococo-local --raw --disable-default-bootnode > rococo_local.json + +./target/release/polkadot --chain ./rococo_local.json -d cumulus_relay1 --validator --bob --port 50555 +./target/release/polkadot --chain ./rococo_local.json -d cumulus_relay0 --validator --alice --port 50556 +``` + +Parachain Template: +``` +./target/release/parachain-collator -d local-test --validator --ws-port 9945 --parachain-id 200 -- --chain ~/.dev/polkadot/rococo_local.json +``` If you want to see the multi-node consensus algorithm in action, refer to [our Start a Private Network tutorial](https://substrate.dev/docs/en/tutorials/start-a-private-network/). @@ -88,18 +101,13 @@ There are several files in the `node` directory - take special note of the follo and use them to configure the blockchain's initial state. - [`service.rs`](./node/src/service.rs): This file defines the node implementation. Take note of the libraries that this file imports and the names of the functions it invokes. In particular, - there are references to consensus-related topics, such as the - [longest chain rule](https://substrate.dev/docs/en/knowledgebase/advanced/consensus#longest-chain-rule), - the [Aura](https://substrate.dev/docs/en/knowledgebase/advanced/consensus#aura) block authoring - mechanism and the - [GRANDPA](https://substrate.dev/docs/en/knowledgebase/advanced/consensus#grandpa) finality - gadget. + there are references to consensus-related topics. After the node has been [built](#build), refer to the embedded documentation to learn more about the capabilities and configuration parameters that it exposes: ```shell -./target/release/node-template --help +./target/release/parachain-collator --help ``` ### Runtime @@ -141,29 +149,3 @@ A FRAME pallet is compromised of a number of blockchain primitives: - Errors: When a dispatchable fails, it returns an error. - Trait: The `Trait` configuration interface is used to define the types and parameters upon which a FRAME pallet depends. - -### Run in Docker - -First, install [Docker](https://docs.docker.com/get-docker/) and -[Docker Compose](https://docs.docker.com/compose/install/). - -Then run the following command to start a single node development chain. - -```bash -./scripts/docker_run.sh -``` - -This command will firstly compile your code, and then start a local development network. You can -also replace the default command (`cargo build --release && ./target/release/node-template --dev --ws-external`) -by appending your own. A few useful ones are as follow. - -```bash -# Run Substrate node without re-compiling -./scripts/docker_run.sh ./target/release/node-template --dev --ws-external - -# Purge the local dev chain -./scripts/docker_run.sh ./target/release/node-template purge-chain --dev - -# Check whether the code is compilable -./scripts/docker_run.sh cargo check -``` diff --git a/node/Cargo.toml b/node/Cargo.toml index e87eb251..14501374 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -1,111 +1,81 @@ [package] -authors = ['Substrate DevHub '] +name = 'parachain-collator' +version = '0.1.0' +authors = ["Parity Technologies "] build = 'build.rs' -description = 'A fresh FRAME-based Substrate node, ready for hacking.' edition = '2018' -homepage = 'https://substrate.dev' -license = 'Unlicense' -name = 'node-template' -repository = 'https://github.com/substrate-developer-hub/substrate-node-template/' -version = '2.0.0-rc5' - -[package.metadata.docs.rs] -targets = ['x86_64-unknown-linux-gnu'] [[bin]] -name = 'node-template' - -[dependencies.node-template-runtime] -path = '../runtime' -version = '2.0.0-rc5' - -[dependencies.sc-basic-authorship] -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '0.8.0-rc5' - -[dependencies.sc-cli] -features = ['wasmtime'] -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '0.8.0-rc5' - -[dependencies.sc-client-api] -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.sc-consensus] -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '0.8.0-rc5' - -[dependencies.sc-consensus-aura] -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '0.8.0-rc5' - -[dependencies.sc-executor] -features = ['wasmtime'] -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '0.8.0-rc5' - -[dependencies.sc-finality-grandpa] -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '0.8.0-rc5' - -[dependencies.sc-service] -features = ['wasmtime'] -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '0.8.0-rc5' - -[dependencies.sc-transaction-pool] -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.sp-consensus] -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '0.8.0-rc5' - -[dependencies.sp-consensus-aura] -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '0.8.0-rc5' - -[dependencies.sp-core] -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.sp-finality-grandpa] -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.sp-inherents] -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.sp-runtime] -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.sp-transaction-pool] -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.structopt] -version = '0.3.8' - -[build-dependencies.substrate-build-script-utils] -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' +name = 'parachain-collator' +path = 'src/main.rs' + +[dependencies] +derive_more = '0.15.0' +exit-future = '0.1.4' +futures = { version = "0.3.1", features = ["compat"] } +log = '0.4.8' +parking_lot = '0.9.0' +trie-root = '0.15.2' +codec = { package = 'parity-scale-codec', version = '1.0.0' } +structopt = "0.3.3" +ansi_term = "0.12.1" +serde = { version = "1.0.101", features = ["derive"] } + +# Parachain dependencies +parachain-runtime = { path = "../runtime" } + +# Substrate dependencies +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", version = "0.8.0-rc5" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sc-informant = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } + +# Cumulus dependencies +cumulus-consensus = { git = "https://github.com/paritytech/cumulus" } +cumulus-collator = { git = "https://github.com/paritytech/cumulus" } +cumulus-network = { git = "https://github.com/paritytech/cumulus" } +cumulus-primitives = { git = "https://github.com/paritytech/cumulus" } + +# Polkadot dependencies +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } +polkadot-collator = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } +polkadot-test-service = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } + +[build-dependencies] +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } + +[dev-dependencies] +assert_cmd = "0.12" +nix = "0.17" +rand = "0.7.3" +tokio = { version = "0.2.13", features = ["macros"] } + +# Polkadot dependencies +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } +polkadot-test-runtime = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } +polkadot-test-runtime-client = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } +polkadot-test-service = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } + +# Substrate dependencies +pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +substrate-test-runtime-client = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } diff --git a/node/build.rs b/node/build.rs index e3bfe311..c3462ee3 100644 --- a/node/build.rs +++ b/node/build.rs @@ -1,7 +1,22 @@ +// Copyright 2019 Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + use substrate_build_script_utils::{generate_cargo_keys, rerun_if_git_head_changed}; fn main() { generate_cargo_keys(); - rerun_if_git_head_changed(); } diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index e49457b0..cfc90f8a 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -1,157 +1,128 @@ -use sp_core::{Pair, Public, sr25519}; -use node_template_runtime::{ - AccountId, AuraConfig, BalancesConfig, GenesisConfig, GrandpaConfig, - SudoConfig, SystemConfig, WASM_BINARY, Signature +// Copyright 2020 Parity Technologies (UK) Ltd. + +use cumulus_primitives::ParaId; +use parachain_runtime::{ + AccountId, BalancesConfig, GenesisConfig, Signature, SudoConfig, SystemConfig, WASM_BINARY, }; -use sp_consensus_aura::sr25519::AuthorityId as AuraId; -use sp_finality_grandpa::AuthorityId as GrandpaId; -use sp_runtime::traits::{Verify, IdentifyAccount}; +use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup}; use sc_service::ChainType; - -// The URL for the telemetry server. -// const STAGING_TELEMETRY_URL: &str = "wss://telemetry.polkadot.io/submit/"; +use serde::{Deserialize, Serialize}; +use sp_core::{sr25519, Pair, Public}; +use sp_runtime::traits::{IdentifyAccount, Verify}; /// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type. -pub type ChainSpec = sc_service::GenericChainSpec; +pub type ChainSpec = sc_service::GenericChainSpec; -/// Generate a crypto pair from seed. +/// Helper function to generate a crypto pair from seed pub fn get_from_seed(seed: &str) -> ::Public { TPublic::Pair::from_string(&format!("//{}", seed), None) .expect("static values are valid; qed") .public() } +/// The extensions for the [`ChainSpec`]. +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, ChainSpecGroup, ChainSpecExtension)] +#[serde(deny_unknown_fields)] +pub struct Extensions { + /// The relay chain of the Parachain. + pub relay_chain: String, + /// The id of the Parachain. + pub para_id: u32, +} + +impl Extensions { + /// Try to get the extension from the given `ChainSpec`. + pub fn try_get(chain_spec: &Box) -> Option<&Self> { + sc_chain_spec::get_extension(chain_spec.extensions()) + } +} + type AccountPublic = ::Signer; -/// Generate an account ID from seed. -pub fn get_account_id_from_seed(seed: &str) -> AccountId where - AccountPublic: From<::Public> +/// Helper function to generate an account ID from seed +pub fn get_account_id_from_seed(seed: &str) -> AccountId +where + AccountPublic: From<::Public>, { AccountPublic::from(get_from_seed::(seed)).into_account() } -/// Generate an Aura authority key. -pub fn authority_keys_from_seed(s: &str) -> (AuraId, GrandpaId) { - ( - get_from_seed::(s), - get_from_seed::(s), - ) -} - -pub fn development_config() -> Result { - let wasm_binary = WASM_BINARY.ok_or("Development wasm binary not available".to_string())?; - - Ok(ChainSpec::from_genesis( - // Name - "Development", - // ID - "dev", - ChainType::Development, - move || testnet_genesis( - wasm_binary, - // Initial PoA authorities - vec![ - authority_keys_from_seed("Alice"), - ], - // Sudo account - get_account_id_from_seed::("Alice"), - // Pre-funded accounts - vec![ +pub fn get_chain_spec(id: ParaId) -> ChainSpec { + ChainSpec::from_genesis( + "Local Testnet", + "local_testnet", + ChainType::Local, + move || { + testnet_genesis( get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - ], - true, - ), - // Bootnodes + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), + ], + id, + ) + }, vec![], - // Telemetry - None, - // Protocol ID None, - // Properties None, - // Extensions None, - )) + Extensions { + relay_chain: "local_testnet".into(), + para_id: id.into(), + }, + ) } -pub fn local_testnet_config() -> Result { - let wasm_binary = WASM_BINARY.ok_or("Development wasm binary not available".to_string())?; - - Ok(ChainSpec::from_genesis( - // Name - "Local Testnet", - // ID - "local_testnet", - ChainType::Local, - move || testnet_genesis( - wasm_binary, - // Initial PoA authorities - vec![ - authority_keys_from_seed("Alice"), - authority_keys_from_seed("Bob"), - ], - // Sudo account - get_account_id_from_seed::("Alice"), - // Pre-funded accounts - vec![ +pub fn staging_test_net(id: ParaId) -> ChainSpec { + ChainSpec::from_genesis( + "Staging Testnet", + "staging_testnet", + ChainType::Live, + move || { + testnet_genesis( get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Charlie"), - get_account_id_from_seed::("Dave"), - get_account_id_from_seed::("Eve"), - get_account_id_from_seed::("Ferdie"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - get_account_id_from_seed::("Charlie//stash"), - get_account_id_from_seed::("Dave//stash"), - get_account_id_from_seed::("Eve//stash"), - get_account_id_from_seed::("Ferdie//stash"), - ], - true, - ), - // Bootnodes - vec![], - // Telemetry - None, - // Protocol ID + vec![get_account_id_from_seed::("Alice")], + id, + ) + }, + Vec::new(), None, - // Properties None, - // Extensions None, - )) + Extensions { + relay_chain: "rococo_local_testnet".into(), + para_id: id.into(), + }, + ) } -/// Configure initial storage state for FRAME modules. fn testnet_genesis( - wasm_binary: &[u8], - initial_authorities: Vec<(AuraId, GrandpaId)>, root_key: AccountId, endowed_accounts: Vec, - _enable_println: bool, + _id: ParaId, ) -> GenesisConfig { GenesisConfig { - system: Some(SystemConfig { - // Add Wasm runtime to storage. - code: wasm_binary.to_vec(), + frame_system: Some(SystemConfig { + code: WASM_BINARY.to_vec(), changes_trie_config: Default::default(), }), - balances: Some(BalancesConfig { - // Configure endowed accounts with initial balance of 1 << 60. - balances: endowed_accounts.iter().cloned().map(|k|(k, 1 << 60)).collect(), - }), - aura: Some(AuraConfig { - authorities: initial_authorities.iter().map(|x| (x.0.clone())).collect(), - }), - grandpa: Some(GrandpaConfig { - authorities: initial_authorities.iter().map(|x| (x.1.clone(), 1)).collect(), - }), - sudo: Some(SudoConfig { - // Assign network admin rights. - key: root_key, + pallet_balances: Some(BalancesConfig { + balances: endowed_accounts + .iter() + .cloned() + .map(|k| (k, 1 << 60)) + .collect(), }), + pallet_sudo: Some(SudoConfig { key: root_key }), } } diff --git a/node/src/cli.rs b/node/src/cli.rs index 0091ef7d..5258b858 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -1,11 +1,112 @@ -use sc_cli::{RunCmd, Subcommand}; +// Copyright 2020 Parity Technologies (UK) Ltd. + +use std::path::PathBuf; + +use sc_cli; use structopt::StructOpt; +/// Sub-commands supported by the collator. +#[derive(Debug, StructOpt)] +pub enum Subcommand { + #[structopt(flatten)] + Base(sc_cli::Subcommand), + + /// Export the genesis state of the parachain. + #[structopt(name = "export-genesis-state")] + ExportGenesisState(ExportGenesisStateCommand), + + /// Export the genesis wasm of the parachain. + #[structopt(name = "export-genesis-wasm")] + ExportGenesisWasm(ExportGenesisWasmCommand), +} + +/// Command for exporting the genesis state of the parachain +#[derive(Debug, StructOpt)] +pub struct ExportGenesisStateCommand { + /// Output file name or stdout if unspecified. + #[structopt(parse(from_os_str))] + pub output: Option, + + /// Id of the parachain this state is for. + #[structopt(long, default_value = "200")] + pub parachain_id: u32, + + /// The name of the chain for that the genesis state should be exported. + #[structopt(long)] + pub chain: Option, +} + +/// Command for exporting the genesis wasm file. +#[derive(Debug, StructOpt)] +pub struct ExportGenesisWasmCommand { + /// Output file name or stdout if unspecified. + #[structopt(parse(from_os_str))] + pub output: Option, + + /// The name of the chain for that the genesis wasm file should be exported. + #[structopt(long)] + pub chain: Option, +} + +#[derive(Debug, StructOpt)] +pub struct RunCmd { + #[structopt(flatten)] + pub base: sc_cli::RunCmd, + + /// Id of the parachain this collator collates for. + #[structopt(long)] + pub parachain_id: Option, +} + +impl std::ops::Deref for RunCmd { + type Target = sc_cli::RunCmd; + + fn deref(&self) -> &Self::Target { + &self.base + } +} + #[derive(Debug, StructOpt)] +#[structopt(settings = &[ + structopt::clap::AppSettings::GlobalVersion, + structopt::clap::AppSettings::ArgsNegateSubcommands, + structopt::clap::AppSettings::SubcommandsNegateReqs, +])] pub struct Cli { #[structopt(subcommand)] pub subcommand: Option, #[structopt(flatten)] pub run: RunCmd, + + /// Relaychain arguments + #[structopt(raw = true)] + pub relaychain_args: Vec, +} + +#[derive(Debug)] +pub struct RelayChainCli { + /// The actual relay chain cli object. + pub base: polkadot_cli::RunCmd, + + /// Optional chain id that should be passed to the relay chain. + pub chain_id: Option, + + /// The base path that should be used by the relay chain. + pub base_path: Option, +} + +impl RelayChainCli { + /// Create a new instance of `Self`. + pub fn new<'a>( + base_path: Option, + chain_id: Option, + relay_chain_args: impl Iterator, + ) -> Self { + Self { + base_path, + chain_id, + base: polkadot_cli::RunCmd::from_iter(relay_chain_args), + } + } } diff --git a/node/src/command.rs b/node/src/command.rs index 81b3ce77..572d04f3 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -1,30 +1,26 @@ -// This file is part of Substrate. - -// Copyright (C) 2017-2020 Parity Technologies (UK) Ltd. -// SPDX-License-Identifier: Apache-2.0 - -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -use crate::chain_spec; -use crate::cli::Cli; -use crate::service; -use sc_cli::{SubstrateCli, RuntimeVersion, Role, ChainSpec}; -use sc_service::ServiceParams; -use crate::service::new_full_params; +// Copyright 2020 Parity Technologies (UK) Ltd. + +use crate::{ + chain_spec, + cli::{Cli, RelayChainCli, Subcommand}, +}; +use codec::Encode; +use cumulus_primitives::ParaId; +use log::info; +use parachain_runtime::Block; +use polkadot_parachain::primitives::AccountIdConversion; +use sc_cli::{ + ChainSpec, CliConfiguration, Error, ImportParams, KeystoreParams, NetworkParams, Result, + RuntimeVersion, SharedParams, SubstrateCli, +}; +use sc_service::config::{BasePath, PrometheusConfig}; +use sp_core::hexdisplay::HexDisplay; +use sp_runtime::traits::{Block as BlockT, Hash as HashT, Header as HeaderT, Zero}; +use std::{io::Write, net::SocketAddr, sync::Arc}; impl SubstrateCli for Cli { fn impl_name() -> String { - "Substrate Node".into() + "Parachain Collator Template".into() } fn impl_version() -> String { @@ -32,7 +28,13 @@ impl SubstrateCli for Cli { } fn description() -> String { - env!("CARGO_PKG_DESCRIPTION").into() + format!( + "Parachain Collator Template\n\nThe command-line arguments provided first will be \ + passed to the parachain node, while the arguments provided after -- will be passed \ + to the relaychain node.\n\n\ + {} [parachain-args] -- [relaychain-args]", + Self::executable_name() + ) } fn author() -> String { @@ -40,47 +42,387 @@ impl SubstrateCli for Cli { } fn support_url() -> String { - "support.anonymous.an".into() + "https://github.com/paritytech/cumulus/issues/new".into() } fn copyright_start_year() -> i32 { 2017 } - fn load_spec(&self, id: &str) -> Result, String> { - Ok(match id { - "dev" => Box::new(chain_spec::development_config()?), - "" | "local" => Box::new(chain_spec::local_testnet_config()?), - path => Box::new(chain_spec::ChainSpec::from_json_file( - std::path::PathBuf::from(path), - )?), - }) + fn load_spec(&self, id: &str) -> std::result::Result, String> { + match id { + "staging" => Ok(Box::new(chain_spec::staging_test_net( + self.run.parachain_id.unwrap_or(200).into(), + ))), + "" => Ok(Box::new(chain_spec::get_chain_spec( + self.run.parachain_id.unwrap_or(200).into(), + ))), + path => Ok(Box::new(chain_spec::ChainSpec::from_json_file( + path.into(), + )?)), + } } fn native_runtime_version(_: &Box) -> &'static RuntimeVersion { - &node_template_runtime::VERSION + ¶chain_runtime::VERSION + } +} + +impl SubstrateCli for RelayChainCli { + fn impl_name() -> String { + "Parachain Collator Template".into() + } + + fn impl_version() -> String { + env!("SUBSTRATE_CLI_IMPL_VERSION").into() + } + + fn description() -> String { + "Parachain Collator Template\n\nThe command-line arguments provided first will be \ + passed to the parachain node, while the arguments provided after -- will be passed \ + to the relaychain node.\n\n\ + parachain-collator [parachain-args] -- [relaychain-args]" + .into() + } + + fn author() -> String { + env!("CARGO_PKG_AUTHORS").into() + } + + fn support_url() -> String { + "https://github.com/paritytech/cumulus/issues/new".into() } + + fn copyright_start_year() -> i32 { + 2017 + } + + fn load_spec(&self, id: &str) -> std::result::Result, String> { + polkadot_cli::Cli::from_iter([RelayChainCli::executable_name().to_string()].iter()) + .load_spec(id) + } + + fn native_runtime_version(chain_spec: &Box) -> &'static RuntimeVersion { + polkadot_cli::Cli::native_runtime_version(chain_spec) + } +} + +pub fn generate_genesis_state(chain_spec: &Box) -> Result { + let storage = chain_spec.build_storage()?; + + let child_roots = storage.children_default.iter().map(|(sk, child_content)| { + let state_root = <<::Header as HeaderT>::Hashing as HashT>::trie_root( + child_content.data.clone().into_iter().collect(), + ); + (sk.clone(), state_root.encode()) + }); + let state_root = <<::Header as HeaderT>::Hashing as HashT>::trie_root( + storage.top.clone().into_iter().chain(child_roots).collect(), + ); + + let extrinsics_root = + <<::Header as HeaderT>::Hashing as HashT>::trie_root(Vec::new()); + + Ok(Block::new( + <::Header as HeaderT>::new( + Zero::zero(), + extrinsics_root, + state_root, + Default::default(), + Default::default(), + ), + Default::default(), + )) } -/// Parse and run command line arguments -pub fn run() -> sc_cli::Result<()> { +fn extract_genesis_wasm(chain_spec: &Box) -> Result> { + let mut storage = chain_spec.build_storage()?; + + storage + .top + .remove(sp_core::storage::well_known_keys::CODE) + .ok_or_else(|| "Could not find wasm file in genesis state!".into()) +} + +/// Parse command line arguments into service configuration. +pub fn run() -> Result<()> { let cli = Cli::from_args(); match &cli.subcommand { - Some(subcommand) => { + Some(Subcommand::Base(subcommand)) => { let runner = cli.create_runner(subcommand)?; - runner.run_subcommand(subcommand, |config| { - let (ServiceParams { client, backend, task_manager, import_queue, .. }, ..) - = new_full_params(config)?; - Ok((client, backend, import_queue, task_manager)) + + runner.run_subcommand(subcommand, |mut config| { + let params = crate::service::new_partial(&mut config)?; + + Ok(( + params.client, + params.backend, + params.import_queue, + params.task_manager, + )) }) } + Some(Subcommand::ExportGenesisState(params)) => { + sc_cli::init_logger(""); + + let block = + generate_genesis_state(&cli.load_spec(¶ms.chain.clone().unwrap_or_default())?)?; + let header_hex = format!("0x{:?}", HexDisplay::from(&block.header().encode())); + + if let Some(output) = ¶ms.output { + std::fs::write(output, header_hex)?; + } else { + println!("{}", header_hex); + } + + Ok(()) + } + Some(Subcommand::ExportGenesisWasm(params)) => { + sc_cli::init_logger(""); + + let wasm_file = + extract_genesis_wasm(&cli.load_spec(¶ms.chain.clone().unwrap_or_default())?)?; + + if let Some(output) = ¶ms.output { + std::fs::write(output, wasm_file)?; + } else { + std::io::stdout().write_all(&wasm_file)?; + } + + Ok(()) + } None => { - let runner = cli.create_runner(&cli.run)?; - runner.run_node_until_exit(|config| match config.role { - Role::Light => service::new_light(config), - _ => service::new_full(config), + let runner = cli.create_runner(&*cli.run)?; + + runner.run_node_until_exit(|config| { + // TODO + let key = Arc::new(sp_core::Pair::generate().0); + + let extension = chain_spec::Extensions::try_get(&config.chain_spec); + let relay_chain_id = extension.map(|e| e.relay_chain.clone()); + let para_id = extension.map(|e| e.para_id); + + let polkadot_cli = RelayChainCli::new( + config.base_path.as_ref().map(|x| x.path().join("polkadot")), + relay_chain_id, + [RelayChainCli::executable_name().to_string()] + .iter() + .chain(cli.relaychain_args.iter()), + ); + + let id = ParaId::from(cli.run.parachain_id.or(para_id).unwrap_or(200)); + + let parachain_account = + AccountIdConversion::::into_account(&id); + + let block = + generate_genesis_state(&config.chain_spec).map_err(|e| format!("{:?}", e))?; + let genesis_state = format!("0x{:?}", HexDisplay::from(&block.header().encode())); + + let task_executor = config.task_executor.clone(); + let polkadot_config = + SubstrateCli::create_configuration(&polkadot_cli, &polkadot_cli, task_executor) + .map_err(|err| format!("Relay chain argument error: {}", err))?; + + info!("Parachain id: {:?}", id); + info!("Parachain Account: {}", parachain_account); + info!("Parachain genesis state: {}", genesis_state); + info!( + "Is collating: {}", + if cli.run.base.validator { "yes" } else { "no" } + ); + + crate::service::run_collator( + config, + key, + polkadot_config, + id, + cli.run.base.validator, + ) + .map(|(x, _)| x) }) } } } + +impl CliConfiguration for RelayChainCli { + fn shared_params(&self) -> &SharedParams { + self.base.base.shared_params() + } + + fn import_params(&self) -> Option<&ImportParams> { + self.base.base.import_params() + } + + fn network_params(&self) -> Option<&NetworkParams> { + self.base.base.network_params() + } + + fn keystore_params(&self) -> Option<&KeystoreParams> { + self.base.base.keystore_params() + } + + fn base_path(&self) -> Result> { + Ok(self + .shared_params() + .base_path() + .or_else(|| self.base_path.clone().map(Into::into))) + } + + fn rpc_http(&self) -> Result> { + let rpc_external = self.base.base.rpc_external; + let unsafe_rpc_external = self.base.base.unsafe_rpc_external; + let validator = self.base.base.validator; + let rpc_port = self.base.base.rpc_port; + // copied directly from substrate + let rpc_interface: &str = interface_str(rpc_external, unsafe_rpc_external, validator)?; + + Ok(Some(parse_address( + &format!("{}:{}", rpc_interface, 9934), + rpc_port, + )?)) + } + + fn rpc_ipc(&self) -> Result> { + self.base.base.rpc_ipc() + } + + fn rpc_ws(&self) -> Result> { + let ws_external = self.base.base.ws_external; + let unsafe_ws_external = self.base.base.unsafe_ws_external; + let validator = self.base.base.validator; + let ws_port = self.base.base.ws_port; + // copied directly from substrate + let ws_interface: &str = interface_str(ws_external, unsafe_ws_external, validator)?; + + Ok(Some(parse_address( + &format!("{}:{}", ws_interface, 9945), + ws_port, + )?)) + } + + fn prometheus_config(&self) -> Result> { + let no_prometheus = self.base.base.no_prometheus; + let prometheus_external = self.base.base.prometheus_external; + let prometheus_port = self.base.base.prometheus_port; + + if no_prometheus { + Ok(None) + } else { + let prometheus_interface: &str = if prometheus_external { + "0.0.0.0" + } else { + "127.0.0.1" + }; + + Ok(Some(PrometheusConfig::new_with_default_registry( + parse_address( + &format!("{}:{}", prometheus_interface, 9616), + prometheus_port, + )?, + ))) + } + } + + fn init(&self) -> Result<()> { + unreachable!("PolkadotCli is never initialized; qed"); + } + + fn chain_id(&self, is_dev: bool) -> Result { + let chain_id = self.base.base.chain_id(is_dev)?; + + Ok(if chain_id.is_empty() { + self.chain_id.clone().unwrap_or_default() + } else { + chain_id + }) + } + + fn role(&self, is_dev: bool) -> Result { + self.base.base.role(is_dev) + } + + fn transaction_pool(&self) -> Result { + self.base.base.transaction_pool() + } + + fn state_cache_child_ratio(&self) -> Result> { + self.base.base.state_cache_child_ratio() + } + + fn rpc_methods(&self) -> Result { + self.base.base.rpc_methods() + } + + fn rpc_ws_max_connections(&self) -> Result> { + self.base.base.rpc_ws_max_connections() + } + + fn rpc_cors(&self, is_dev: bool) -> Result>> { + self.base.base.rpc_cors(is_dev) + } + + fn telemetry_external_transport(&self) -> Result> { + self.base.base.telemetry_external_transport() + } + + fn default_heap_pages(&self) -> Result> { + self.base.base.default_heap_pages() + } + + fn force_authoring(&self) -> Result { + self.base.base.force_authoring() + } + + fn disable_grandpa(&self) -> Result { + self.base.base.disable_grandpa() + } + + fn max_runtime_instances(&self) -> Result> { + self.base.base.max_runtime_instances() + } + + fn announce_block(&self) -> Result { + self.base.base.announce_block() + } +} + +// copied directly from substrate +fn parse_address(address: &str, port: Option) -> std::result::Result { + let mut address: SocketAddr = address + .parse() + .map_err(|_| format!("Invalid address: {}", address))?; + if let Some(port) = port { + address.set_port(port); + } + + Ok(address) +} + +// copied directly from substrate +fn interface_str( + is_external: bool, + is_unsafe_external: bool, + is_validator: bool, +) -> Result<&'static str> { + if is_external && is_validator { + return Err(Error::Input( + "--rpc-external and --ws-external options shouldn't be \ + used if the node is running as a validator. Use `--unsafe-rpc-external` if you understand \ + the risks. See the options description for more information." + .to_owned(), + )); + } + + if is_external || is_unsafe_external { + log::warn!( + "It isn't safe to expose RPC publicly without a proxy server that filters \ + available set of RPC methods." + ); + + Ok("0.0.0.0") + } else { + Ok("127.0.0.1") + } +} diff --git a/node/src/lib.rs b/node/src/lib.rs deleted file mode 100644 index 38e43372..00000000 --- a/node/src/lib.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod chain_spec; -pub mod service; diff --git a/node/src/main.rs b/node/src/main.rs index 369e6932..87b47cdf 100644 --- a/node/src/main.rs +++ b/node/src/main.rs @@ -1,5 +1,9 @@ -//! Substrate Node Template CLI library. +// Copyright 2020 Parity Technologies (UK) Ltd. + +//! Cumulus test parachain collator + #![warn(missing_docs)] +#![warn(unused_extern_crates)] mod chain_spec; #[macro_use] diff --git a/node/src/service.rs b/node/src/service.rs index 4c41e988..4b375c2d 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -1,256 +1,248 @@ -//! Service and ServiceFactory implementation. Specialized wrapper over substrate service. +// Copyright 2020 Parity Technologies (UK) Ltd. -use std::sync::Arc; -use std::time::Duration; -use sc_client_api::{ExecutorProvider, RemoteBackend}; -use node_template_runtime::{self, Block, RuntimeApi}; -use sc_service::{error::Error as ServiceError, Configuration, ServiceComponents, TaskManager}; -use sp_inherents::InherentDataProviders; +use ansi_term::Color; +use cumulus_collator::{prepare_collator_config, CollatorBuilder}; +use cumulus_network::{DelayedBlockAnnounceValidator, JustifiedBlockAnnounceValidator}; +use futures::{future::ready, FutureExt}; +use polkadot_primitives::v0::{CollatorPair, Block as PBlock, Id as ParaId}; use sc_executor::native_executor_instance; pub use sc_executor::NativeExecutor; -use sp_consensus_aura::sr25519::{AuthorityPair as AuraPair}; -use sc_finality_grandpa::{ - FinalityProofProvider as GrandpaFinalityProofProvider, StorageAndProofProvider, SharedVoterState, -}; +use sc_informant::OutputFormat; +use sc_service::{Configuration, PartialComponents, TaskManager, TFullBackend, TFullClient, Role}; +use std::sync::Arc; +use sp_core::crypto::Pair; +use sp_trie::PrefixedMemoryDB; +use sp_runtime::traits::{BlakeTwo256, Block as BlockT}; +use polkadot_service::{AbstractClient, RuntimeApiCollection}; +use sp_consensus::SyncOracle; // Our native executor instance. native_executor_instance!( pub Executor, - node_template_runtime::api::dispatch, - node_template_runtime::native_version, + parachain_runtime::api::dispatch, + parachain_runtime::native_version, ); -type FullClient = sc_service::TFullClient; -type FullBackend = sc_service::TFullBackend; -type FullSelectChain = sc_consensus::LongestChain; - -pub fn new_full_params(config: Configuration) -> Result<( - sc_service::ServiceParams< - Block, FullClient, - sc_consensus_aura::AuraImportQueue, - sc_transaction_pool::FullPool, - (), FullBackend, +/// Starts a `ServiceBuilder` for a full service. +/// +/// Use this macro if you don't actually need the full service, but just the builder in order to +/// be able to perform chain operations. +pub fn new_partial(config: &mut Configuration) -> Result< + PartialComponents< + TFullClient, + TFullBackend, + (), + sp_consensus::import_queue::BasicQueue>, + sc_transaction_pool::FullPool>, + (), >, - FullSelectChain, - sp_inherents::InherentDataProviders, - sc_finality_grandpa::GrandpaBlockImport, - sc_finality_grandpa::LinkHalf -), ServiceError> { + sc_service::Error, +> +{ let inherent_data_providers = sp_inherents::InherentDataProviders::new(); let (client, backend, keystore, task_manager) = - sc_service::new_full_parts::(&config)?; + sc_service::new_full_parts::< + parachain_runtime::opaque::Block, + parachain_runtime::RuntimeApi, + crate::service::Executor, + >(&config)?; let client = Arc::new(client); + //let select_chain = sc_consensus::LongestChain::new(backend.clone()); - let select_chain = sc_consensus::LongestChain::new(backend.clone()); + let registry = config.prometheus_registry(); - let pool_api = sc_transaction_pool::FullChainApi::new( - client.clone(), config.prometheus_registry(), - ); let transaction_pool = sc_transaction_pool::BasicPool::new_full( config.transaction_pool.clone(), - std::sync::Arc::new(pool_api), + //std::sync::Arc::new(pool_api), config.prometheus_registry(), task_manager.spawn_handle(), client.clone(), ); - let (grandpa_block_import, grandpa_link) = sc_finality_grandpa::block_import( - client.clone(), &(client.clone() as Arc<_>), select_chain.clone(), - )?; - - let aura_block_import = sc_consensus_aura::AuraBlockImport::<_, _, _, AuraPair>::new( - grandpa_block_import.clone(), client.clone(), - ); - - let import_queue = sc_consensus_aura::import_queue::<_, _, _, AuraPair, _>( - sc_consensus_aura::slot_duration(&*client)?, - aura_block_import, - Some(Box::new(grandpa_block_import.clone())), - None, + let import_queue = cumulus_consensus::import_queue::import_queue( + client.clone(), client.clone(), inherent_data_providers.clone(), &task_manager.spawn_handle(), - config.prometheus_registry(), + registry.clone(), )?; - let provider = client.clone() as Arc>; - let finality_proof_provider = - Arc::new(GrandpaFinalityProofProvider::new(backend.clone(), provider)); - - let params = sc_service::ServiceParams { - backend, client, import_queue, keystore, task_manager, transaction_pool, - config, - block_announce_validator_builder: None, - finality_proof_request_builder: None, - finality_proof_provider: Some(finality_proof_provider), - on_demand: None, - remote_blockchain: None, - rpc_extensions_builder: Box::new(|_| ()), + let params = PartialComponents { + backend, + client, + import_queue, + keystore, + task_manager, + transaction_pool, + inherent_data_providers, + select_chain: (), + other: (), }; - Ok(( - params, select_chain, inherent_data_providers, - grandpa_block_import, grandpa_link, - )) + Ok(params) } -/// Builds a new service for a full client. -pub fn new_full(config: Configuration) -> Result { - let ( - params, select_chain, inherent_data_providers, - block_import, grandpa_link, - ) = new_full_params(config)?; - - let ( - role, force_authoring, name, enable_grandpa, prometheus_registry, - client, transaction_pool, keystore, - ) = { - let sc_service::ServiceParams { - config, client, transaction_pool, keystore, .. - } = ¶ms; +/// Run a collator node with the given parachain `Configuration` and relaychain `Configuration` +/// +/// This function blocks until done. +pub fn run_collator( + parachain_config: Configuration, + key: Arc, + mut polkadot_config: polkadot_collator::Configuration, + id: polkadot_primitives::v0::Id, + validator: bool, +) -> sc_service::error::Result<( + TaskManager, + Arc>, +)> { + if matches!(parachain_config.role, Role::Light) { + return Err("Light client not supported!".into()); + } - ( - config.role.clone(), - config.force_authoring, - config.network.node_name.clone(), - !config.disable_grandpa, - config.prometheus_registry().cloned(), + let mut parachain_config = prepare_collator_config(parachain_config); - client.clone(), transaction_pool.clone(), keystore.clone(), - ) + parachain_config.informant_output_format = OutputFormat { + enable_color: true, + prefix: format!("[{}] ", Color::Yellow.bold().paint("Parachain")), + }; + polkadot_config.informant_output_format = OutputFormat { + enable_color: true, + prefix: format!("[{}] ", Color::Blue.bold().paint("Relaychain")), }; - let ServiceComponents { - task_manager, network, telemetry_on_connect_sinks, .. - } = sc_service::build(params)?; + let params = new_partial(&mut parachain_config)?; + params.inherent_data_providers + .register_provider(sp_timestamp::InherentDataProvider) + .unwrap(); + + let client = params.client.clone(); + let backend = params.backend.clone(); + let block_announce_validator = DelayedBlockAnnounceValidator::new(); + let block_announce_validator_builder = { + let block_announce_validator = block_announce_validator.clone(); + move |_| Box::new(block_announce_validator) as Box<_> + }; - if role.is_authority() { - let proposer = sc_basic_authorship::ProposerFactory::new( + let prometheus_registry = parachain_config.prometheus_registry().cloned(); + let transaction_pool = params.transaction_pool.clone(); + let mut task_manager = params.task_manager; + let import_queue = params.import_queue; + let (network, network_status_sinks, system_rpc_tx, start_network) = + sc_service::build_network(sc_service::BuildNetworkParams { + config: ¶chain_config, + client: client.clone(), + transaction_pool: transaction_pool.clone(), + spawn_handle: task_manager.spawn_handle(), + import_queue, + on_demand: None, + block_announce_validator_builder: Some(Box::new(block_announce_validator_builder)), + finality_proof_request_builder: None, + finality_proof_provider: None, + })?; + + let _rpc_handlers = sc_service::spawn_tasks(sc_service::SpawnTasksParams { + on_demand: None, + remote_blockchain: None, + rpc_extensions_builder: Box::new(|_| ()), + client: client.clone(), + transaction_pool: transaction_pool.clone(), + task_manager: &mut task_manager, + telemetry_connection_sinks: Default::default(), + config: parachain_config, + keystore: params.keystore, + backend, + network: network.clone(), + network_status_sinks, + system_rpc_tx, + })?; + + if validator { + let proposer_factory = sc_basic_authorship::ProposerFactory::new( client.clone(), transaction_pool, prometheus_registry.as_ref(), ); - let can_author_with = - sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()); - - let aura = sc_consensus_aura::start_aura::<_, _, _, _, _, AuraPair, _, _, _>( - sc_consensus_aura::slot_duration(&*client)?, - client.clone(), - select_chain, + let block_import = client.clone(); + let announce_block = Arc::new(move |hash, data| network.announce_block(hash, data)); + let builder = CollatorBuilder::new( + proposer_factory, + params.inherent_data_providers, block_import, - proposer, - network.clone(), - inherent_data_providers.clone(), - force_authoring, - keystore.clone(), - can_author_with, - )?; - - // the AURA authoring task is considered essential, i.e. if it - // fails we take down the service with it. - task_manager.spawn_essential_handle().spawn_blocking("aura", aura); - } - - // if the node isn't actively participating in consensus then it doesn't - // need a keystore, regardless of which protocol we use below. - let keystore = if role.is_authority() { - Some(keystore as sp_core::traits::BareCryptoStorePtr) - } else { - None - }; + client.clone(), + id, + client.clone(), + announce_block, + block_announce_validator, + ); - let grandpa_config = sc_finality_grandpa::Config { - // FIXME #1578 make this available through chainspec - gossip_duration: Duration::from_millis(333), - justification_period: 512, - name: Some(name), - observer_enabled: false, - keystore, - is_authority: role.is_network_authority(), - }; + let (polkadot_future, polkadpt_task_manager) = + polkadot_collator::start_collator(builder, id, key, polkadot_config)?; - if enable_grandpa { - // start the full GRANDPA voter - // NOTE: non-authorities could run the GRANDPA observer protocol, but at - // this point the full voter should provide better guarantees of block - // and vote data availability than the observer. The observer has not - // been tested extensively yet and having most nodes in a network run it - // could lead to finality stalls. - let grandpa_config = sc_finality_grandpa::GrandpaParams { - config: grandpa_config, - link: grandpa_link, - network, - inherent_data_providers, - telemetry_on_connect: Some(telemetry_on_connect_sinks.on_connect_stream()), - voting_rule: sc_finality_grandpa::VotingRulesBuilder::default().build(), - prometheus_registry, - shared_voter_state: SharedVoterState::empty(), - }; + // Make sure the polkadot task manager survives as long as the service. + let polkadot_future = polkadot_future.then(move |_| { + let _ = polkadpt_task_manager; + ready(()) + }); - // the GRANDPA voter task is considered infallible, i.e. - // if it fails we take down the service with it. - task_manager.spawn_essential_handle().spawn_blocking( - "grandpa-voter", - sc_finality_grandpa::run_grandpa_voter(grandpa_config)? - ); + task_manager + .spawn_essential_handle() + .spawn("polkadot", polkadot_future); } else { - sc_finality_grandpa::setup_disabled_grandpa( - client, - &inherent_data_providers, - network, - )?; + let is_light = matches!(polkadot_config.role, Role::Light); + let (mut polkadot_task_manager, client, handles) = if is_light { + Err("Light client not supported.".into()) + } else { + polkadot_service::build_full( + polkadot_config, + Some((key.public(), id)), + None, + false, + 6000, + None, + ) + }?; + let polkadot_future = async move { + polkadot_task_manager.future().await.expect("polkadot essential task failed"); + }; + let polkadot_network = handles.polkadot_network.expect("polkadot service is started; qed"); + client.execute_with(SetDelayedBlockAnnounceValidator { + block_announce_validator, + para_id: id, + polkadot_sync_oracle: Box::new(polkadot_network), + }); + + task_manager + .spawn_essential_handle() + .spawn("polkadot", polkadot_future); } - Ok(task_manager) -} + start_network.start_network(); -/// Builds a new service for a light client. -pub fn new_light(config: Configuration) -> Result { - let (client, backend, keystore, task_manager, on_demand) = - sc_service::new_light_parts::(&config)?; - - let transaction_pool_api = Arc::new(sc_transaction_pool::LightChainApi::new( - client.clone(), on_demand.clone(), - )); - let transaction_pool = sc_transaction_pool::BasicPool::new_light( - config.transaction_pool.clone(), - transaction_pool_api, - config.prometheus_registry(), - task_manager.spawn_handle(), - ); - - let grandpa_block_import = sc_finality_grandpa::light_block_import( - client.clone(), backend.clone(), &(client.clone() as Arc<_>), - Arc::new(on_demand.checker().clone()) as Arc<_>, - )?; - let finality_proof_import = grandpa_block_import.clone(); - let finality_proof_request_builder = - finality_proof_import.create_finality_proof_request_builder(); - - let import_queue = sc_consensus_aura::import_queue::<_, _, _, AuraPair, _>( - sc_consensus_aura::slot_duration(&*client)?, - grandpa_block_import, - None, - Some(Box::new(finality_proof_import)), - client.clone(), - InherentDataProviders::new(), - &task_manager.spawn_handle(), - config.prometheus_registry(), - )?; + Ok((task_manager, client)) +} - let finality_proof_provider = - Arc::new(GrandpaFinalityProofProvider::new(backend.clone(), client.clone() as Arc<_>)); +struct SetDelayedBlockAnnounceValidator { + block_announce_validator: DelayedBlockAnnounceValidator, + para_id: ParaId, + polkadot_sync_oracle: Box, +} - sc_service::build(sc_service::ServiceParams { - block_announce_validator_builder: None, - finality_proof_request_builder: Some(finality_proof_request_builder), - finality_proof_provider: Some(finality_proof_provider), - on_demand: Some(on_demand), - remote_blockchain: Some(backend.remote_blockchain()), - rpc_extensions_builder: Box::new(|_| ()), - transaction_pool: Arc::new(transaction_pool), - config, client, import_queue, keystore, backend, task_manager - }).map(|ServiceComponents { task_manager, .. }| task_manager) +impl polkadot_service::ExecuteWithClient for SetDelayedBlockAnnounceValidator { + type Output = (); + + fn execute_with_client(self, client: Arc) -> Self::Output + where>::StateBackend: sp_api::StateBackend, + Backend: sc_client_api::Backend, + Backend::State: sp_api::StateBackend, + Api: RuntimeApiCollection, + Client: AbstractClient + 'static + { + self.block_announce_validator.set(Box::new(JustifiedBlockAnnounceValidator::new( + client, + self.para_id, + self.polkadot_sync_oracle, + ))); + } } diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 21741815..4997cfa3 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -17,35 +17,14 @@ features = ['derive'] package = 'parity-scale-codec' version = '1.3.1' -[dependencies.frame-support] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.frame-system] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dev-dependencies.sp-core] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dev-dependencies.sp-io] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dev-dependencies.sp-runtime] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' +[dependencies] +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } + +[dev-dependencies] +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } [features] default = ['std'] diff --git a/pallets/template/src/lib.rs b/pallets/template/src/lib.rs index 729a7127..1b1e3f03 100644 --- a/pallets/template/src/lib.rs +++ b/pallets/template/src/lib.rs @@ -1,3 +1,4 @@ +// Copyright 2020 Parity Technologies (UK) Ltd. #![cfg_attr(not(feature = "std"), no_std)] /// Edit this file to define custom logic or remove it if it is not needed. diff --git a/pallets/template/src/mock.rs b/pallets/template/src/mock.rs index 8c3bf2b4..b23151df 100644 --- a/pallets/template/src/mock.rs +++ b/pallets/template/src/mock.rs @@ -1,3 +1,4 @@ +// Copyright 2020 Parity Technologies (UK) Ltd. use crate::{Module, Trait}; use sp_core::H256; use frame_support::{impl_outer_origin, parameter_types, weights::Weight}; diff --git a/pallets/template/src/tests.rs b/pallets/template/src/tests.rs index 3356b29f..dd40b2ec 100644 --- a/pallets/template/src/tests.rs +++ b/pallets/template/src/tests.rs @@ -1,3 +1,4 @@ +// Copyright 2020 Parity Technologies (UK) Ltd. use crate::{Error, mock::*}; use frame_support::{assert_ok, assert_noop}; diff --git a/pallets/token-dealer/Cargo.toml b/pallets/token-dealer/Cargo.toml new file mode 100644 index 00000000..0d0a5dfe --- /dev/null +++ b/pallets/token-dealer/Cargo.toml @@ -0,0 +1,30 @@ +[package] +authors = ["Parity Technologies "] +edition = "2018" +license = 'Unlicense' +name = "token-dealer" +version = "2.0.0-rc5" + +[dependencies] +codec = { package = "parity-scale-codec", version = "1.3.0", default-features = false, features = ["derive"] } + +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } + +# Cumulus dependencies +cumulus-upward-message = { git = "https://github.com/paritytech/cumulus", default-features = false } +cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false } + +# Polkadot dependencies +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch", default-features = false } + +[features] +default = ["std"] +std = [ + "codec/std", + "cumulus-upward-message/std", + "cumulus-primitives/std", + "frame-support/std", + "frame-system/std", + "polkadot-parachain/std", +] diff --git a/pallets/token-dealer/src/lib.rs b/pallets/token-dealer/src/lib.rs new file mode 100644 index 00000000..10776fb1 --- /dev/null +++ b/pallets/token-dealer/src/lib.rs @@ -0,0 +1,154 @@ +// Copyright 2020 Parity Technologies (UK) Ltd. +#![cfg_attr(not(feature = "std"), no_std)] + +use frame_support::{ + decl_event, decl_module, dispatch::DispatchResult, + traits::{Currency, ExistenceRequirement, WithdrawReason}, +}; +use frame_system::ensure_signed; + +use codec::{Decode, Encode}; +use cumulus_primitives::{ + relay_chain::DownwardMessage, + xcmp::{XCMPMessageHandler, XCMPMessageSender}, + DownwardMessageHandler, ParaId, UpwardMessageOrigin, UpwardMessageSender, +}; +use cumulus_upward_message::BalancesMessage; +use polkadot_parachain::primitives::AccountIdConversion; + +#[derive(Encode, Decode)] +pub enum XCMPMessage { + /// Transfer tokens to the given account from the Parachain account. + TransferToken(XAccountId, XBalance), +} + +type BalanceOf = + <::Currency as Currency<::AccountId>>::Balance; + +/// Configuration trait of this pallet. +pub trait Trait: frame_system::Trait { + /// Event type used by the runtime. + type Event: From> + Into<::Event>; + + /// The sender of upward messages. + type UpwardMessageSender: UpwardMessageSender; + + /// The upward message type used by the Parachain runtime. + type UpwardMessage: codec::Codec + BalancesMessage>; + + /// Currency of the runtime. + type Currency: Currency; + + /// The sender of XCMP messages. + type XCMPMessageSender: XCMPMessageSender>>; +} + +decl_event! { + pub enum Event where + AccountId = ::AccountId, + Balance = BalanceOf + { + /// Transferred tokens to the account on the relay chain. + TransferredTokensToRelayChain(AccountId, Balance), + /// Transferred tokens to the account on request from the relay chain. + TransferredTokensFromRelayChain(AccountId, Balance), + /// Transferred tokens to the account from the given parachain account. + TransferredTokensViaXCMP(ParaId, AccountId, Balance, DispatchResult), + } +} + +decl_module! { + pub struct Module for enum Call where origin: T::Origin, system = frame_system { + /// Transfer `amount` of tokens on the relay chain from the Parachain account to + /// the given `dest` account. + #[weight = 10] + fn transfer_tokens_to_relay_chain(origin, dest: T::AccountId, amount: BalanceOf) { + let who = ensure_signed(origin)?; + + let _ = T::Currency::withdraw( + &who, + amount, + WithdrawReason::Transfer.into(), + ExistenceRequirement::AllowDeath, + )?; + + let msg = ::UpwardMessage::transfer(dest.clone(), amount.clone()); + ::UpwardMessageSender::send_upward_message(&msg, UpwardMessageOrigin::Signed) + .expect("Should not fail; qed"); + + Self::deposit_event(Event::::TransferredTokensToRelayChain(dest, amount)); + } + + /// Transfer `amount` of tokens to another parachain. + #[weight = 10] + fn transfer_tokens_to_parachain_chain( + origin, + para_id: u32, + dest: T::AccountId, + amount: BalanceOf, + ) { + //TODO we don't make sure that the parachain has some tokens on the other parachain. + let who = ensure_signed(origin)?; + + let _ = T::Currency::withdraw( + &who, + amount, + WithdrawReason::Transfer.into(), + ExistenceRequirement::AllowDeath, + )?; + + T::XCMPMessageSender::send_xcmp_message( + para_id.into(), + &XCMPMessage::TransferToken(dest, amount), + ).expect("Should not fail; qed"); + } + + fn deposit_event() = default; + } +} + +/// This is a hack to convert from one generic type to another where we are sure that both are the +/// same type/use the same encoding. +fn convert_hack(input: &impl Encode) -> O { + input.using_encoded(|e| Decode::decode(&mut &e[..]).expect("Must be compatible; qed")) +} + +impl DownwardMessageHandler for Module { + fn handle_downward_message(msg: &DownwardMessage) { + match msg { + DownwardMessage::TransferInto(dest, amount, _) => { + let dest = convert_hack(&dest); + let amount: BalanceOf = convert_hack(amount); + + let _ = T::Currency::deposit_creating(&dest, amount.clone()); + + Self::deposit_event(Event::::TransferredTokensFromRelayChain(dest, amount)); + } + _ => {} + } + } +} + +impl XCMPMessageHandler>> for Module { + fn handle_xcmp_message(src: ParaId, msg: &XCMPMessage>) { + match msg { + XCMPMessage::TransferToken(dest, amount) => { + let para_account = src.clone().into_account(); + + let res = T::Currency::transfer( + ¶_account, + dest, + amount.clone(), + ExistenceRequirement::AllowDeath, + ); + + Self::deposit_event(Event::::TransferredTokensViaXCMP( + src, + dest.clone(), + amount.clone(), + res, + )); + } + } + } +} diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index a8a6ef50..804a6f53 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -1,198 +1,81 @@ [package] -authors = ['Substrate DevHub '] +name = 'parachain-runtime' +version = '0.1.0' +authors = ["Parity Technologies "] edition = '2018' -homepage = 'https://substrate.dev' -license = 'Unlicense' -name = 'node-template-runtime' -repository = 'https://github.com/substrate-developer-hub/substrate-node-template/' -version = '2.0.0-rc5' -[package.metadata.docs.rs] -targets = ['x86_64-unknown-linux-gnu'] - -[dependencies.aura] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -package = 'pallet-aura' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.balances] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -package = 'pallet-balances' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.codec] -default-features = false -features = ['derive'] -package = 'parity-scale-codec' -version = '1.3.1' - -[dependencies.frame-executive] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.frame-support] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.grandpa] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -package = 'pallet-grandpa' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.randomness-collective-flip] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -package = 'pallet-randomness-collective-flip' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.serde] -default-features = false -features = ['derive'] -optional = true -version = '1.0.101' - -[dependencies.sp-api] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.sp-block-builder] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.sp-consensus-aura] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '0.8.0-rc5' - -[dependencies.sp-core] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.sp-inherents] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.sp-offchain] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.sp-runtime] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.sp-session] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.sp-std] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.sp-transaction-pool] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.sp-version] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.sudo] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -package = 'pallet-sudo' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.system] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -package = 'frame-system' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.template] -default-features = false -package = 'pallet-template' -path = '../pallets/template' -version = '2.0.0-rc5' - -[dependencies.timestamp] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -package = 'pallet-timestamp' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[dependencies.transaction-payment] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -package = 'pallet-transaction-payment' -tag = 'v2.0.0-rc5' -version = '2.0.0-rc5' - -[build-dependencies.wasm-builder-runner] -git = 'https://github.com/paritytech/substrate.git' -package = 'substrate-wasm-builder-runner' -tag = 'v2.0.0-rc5' -version = '1.0.5' +[dependencies] +serde = { version = "1.0.101", default-features = false, optional = true, features = ["derive"] } +codec = { package = "parity-scale-codec", version = "1.3.0", default-features = false, features = ["derive"] } + +token-dealer = { package = "token-dealer", path = "../pallets/token-dealer", version = "2.0.0-rc5", default-features = false} +template = { package = "pallet-template", path = "../pallets/template", version = "2.0.0-rc5", default-features = false} + +# Substrate dependencies +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } + +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } + +# Cumulus dependencies +cumulus-runtime = { git = "https://github.com/paritytech/cumulus", default-features = false } +cumulus-parachain-upgrade = { git = "https://github.com/paritytech/cumulus", default-features = false } +cumulus-message-broker = { git = "https://github.com/paritytech/cumulus", default-features = false } +cumulus-upward-message = { git = "https://github.com/paritytech/cumulus", default-features = false } +cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false } + +[build-dependencies] +wasm-builder-runner = { package = "substrate-wasm-builder-runner", version = "1.0.6" } [features] -default = ['std'] +default = [ "std" ] std = [ - 'aura/std', - 'balances/std', - 'codec/std', - 'frame-executive/std', - 'frame-support/std', - 'grandpa/std', - 'randomness-collective-flip/std', - 'serde/std', - 'sp-api/std', - 'sp-block-builder/std', - 'sp-consensus-aura/std', - 'sp-core/std', - 'sp-inherents/std', - 'sp-offchain/std', - 'sp-runtime/std', - 'sp-session/std', - 'sp-std/std', - 'sp-transaction-pool/std', - 'sp-version/std', - 'sudo/std', - 'system/std', - 'timestamp/std', - 'transaction-payment/std', - 'template/std', + "codec/std", + "serde", + "sp-api/std", + "sp-std/std", + "sp-io/std", + "sp-core/std", + "sp-runtime/std", + "sp-version/std", + "sp-offchain/std", + "sp-session/std", + "sp-block-builder/std", + "sp-transaction-pool/std", + "sp-inherents/std", + "frame-support/std", + "frame-executive/std", + "frame-system/std", + "pallet-balances/std", + "pallet-randomness-collective-flip/std", + "pallet-timestamp/std", + "pallet-sudo/std", + "pallet-transaction-payment/std", + "cumulus-runtime/std", + "cumulus-parachain-upgrade/std", + "cumulus-message-broker/std", + "cumulus-upward-message/std", + "cumulus-primitives/std", + "token-dealer/std", + "template/std", +] +# Will be enabled by the `wasm-builder` when building the runtime for WASM. +runtime-wasm = [ + "cumulus-upward-message/runtime-wasm", ] diff --git a/runtime/build.rs b/runtime/build.rs index 52705043..2ca8a48c 100644 --- a/runtime/build.rs +++ b/runtime/build.rs @@ -1,9 +1,25 @@ +// Copyright 2019 Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + use wasm_builder_runner::WasmBuilder; fn main() { WasmBuilder::new() .with_current_project() - .with_wasm_builder_from_crates("2.0.0") + .with_wasm_builder_from_crates("1.0.11") .export_heap_base() .import_memory() .build() diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index c46d515a..d09d65d7 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -1,46 +1,44 @@ +// Copyright 2020 Parity Technologies (UK) Ltd. #![cfg_attr(not(feature = "std"), no_std)] // `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256. -#![recursion_limit="256"] +#![recursion_limit = "256"] // Make the WASM binary available. #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); -use sp_std::prelude::*; -use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; +use sp_api::impl_runtime_apis; +use sp_core::OpaqueMetadata; use sp_runtime::{ - ApplyExtrinsicResult, generic, create_runtime_str, impl_opaque_keys, MultiSignature, - transaction_validity::{TransactionValidity, TransactionSource}, -}; -use sp_runtime::traits::{ - BlakeTwo256, Block as BlockT, IdentityLookup, Verify, IdentifyAccount, NumberFor, Saturating, + create_runtime_str, generic, impl_opaque_keys, + traits::{BlakeTwo256, Block as BlockT, IdentifyAccount, IdentityLookup, Saturating, Verify}, + transaction_validity::{TransactionSource, TransactionValidity}, + ApplyExtrinsicResult, MultiSignature, }; -use sp_api::impl_runtime_apis; -use sp_consensus_aura::sr25519::AuthorityId as AuraId; -use grandpa::{AuthorityId as GrandpaId, AuthorityList as GrandpaAuthorityList}; -use grandpa::fg_primitives; -use sp_version::RuntimeVersion; +use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; +use sp_version::RuntimeVersion; // A few exports that help ease life for downstream crates. -#[cfg(any(feature = "std", test))] -pub use sp_runtime::BuildStorage; -pub use timestamp::Call as TimestampCall; -pub use balances::Call as BalancesCall; -pub use sp_runtime::{Permill, Perbill}; pub use frame_support::{ - construct_runtime, parameter_types, StorageValue, - traits::{KeyOwnerProofSystem, Randomness}, - weights::{ - Weight, IdentityFee, - constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND}, - }, + construct_runtime, parameter_types, + traits::Randomness, + weights::{constants::WEIGHT_PER_SECOND, IdentityFee, Weight}, + StorageValue, }; +pub use pallet_balances::Call as BalancesCall; +pub use pallet_timestamp::Call as TimestampCall; +#[cfg(any(feature = "std", test))] +pub use sp_runtime::BuildStorage; +pub use sp_runtime::{Perbill, Permill}; /// Import the template pallet. pub use template; +/// Import the message pallet. +pub use token_dealer; + /// An index to a block. pub type BlockNumber = u32; @@ -70,7 +68,7 @@ pub type DigestItem = generic::DigestItem; /// Opaque types. These are used by the CLI to instantiate machinery that don't need to know /// the specifics of the runtime. They can then be made to be agnostic over specific formats /// of data like extrinsics, allowing for them to continue syncing the network through upgrades -/// to even the core data structures. +/// to even the core datastructures. pub mod opaque { use super::*; @@ -83,17 +81,17 @@ pub mod opaque { /// Opaque block identifier type. pub type BlockId = generic::BlockId; + pub type SessionHandlers = (); + impl_opaque_keys! { - pub struct SessionKeys { - pub aura: Aura, - pub grandpa: Grandpa, - } + pub struct SessionKeys {} } } +/// This runtime version. pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("node-template"), - impl_name: create_runtime_str!("node-template"), + spec_name: create_runtime_str!("parachain-template"), + impl_name: create_runtime_str!("parachain-template"), authoring_version: 1, spec_version: 1, impl_version: 1, @@ -105,12 +103,17 @@ pub const MILLISECS_PER_BLOCK: u64 = 6000; pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK; -// Time is measured by number of blocks. +pub const EPOCH_DURATION_IN_BLOCKS: u32 = 10 * MINUTES; + +// These time units are defined in number of blocks. pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber); pub const HOURS: BlockNumber = MINUTES * 60; pub const DAYS: BlockNumber = HOURS * 24; -/// The version information used to identify this runtime when compiled natively. +// 1 in 4 blocks (on average, not counting collisions) will be primary babe blocks. +pub const PRIMARY_PROBABILITY: (u64, u64) = (1, 4); + +/// The version infromation used to identify this runtime when compiled natively. #[cfg(feature = "std")] pub fn native_version() -> NativeVersion { NativeVersion { @@ -120,22 +123,18 @@ pub fn native_version() -> NativeVersion { } parameter_types! { - pub const BlockHashCount: BlockNumber = 2400; - /// We allow for 2 seconds of compute with a 6 second average block time. + pub const BlockHashCount: BlockNumber = 250; pub const MaximumBlockWeight: Weight = 2 * WEIGHT_PER_SECOND; - pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75); /// Assume 10% of weight for average on_initialize calls. pub MaximumExtrinsicWeight: Weight = AvailableBlockRatio::get() .saturating_sub(Perbill::from_percent(10)) * MaximumBlockWeight::get(); + pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75); pub const MaximumBlockLength: u32 = 5 * 1024 * 1024; pub const Version: RuntimeVersion = VERSION; + pub const ExtrinsicBaseWeight: Weight = 10_000_000; } -// Configure FRAME pallets to include in runtime. - -impl system::Trait for Runtime { - /// The basic call filter to use in dispatchable. - type BaseCallFilter = (); +impl frame_system::Trait for Runtime { /// The identifier used to distinguish between accounts. type AccountId = AccountId; /// The aggregated dispatch type that is available for extrinsics. @@ -158,78 +157,47 @@ impl system::Trait for Runtime { type Origin = Origin; /// Maximum number of block number to block hash mappings to keep (oldest pruned first). type BlockHashCount = BlockHashCount; - /// Maximum weight of each block. + /// Maximum weight of each block. With a default weight system of 1byte == 1weight, 4mb is ok. type MaximumBlockWeight = MaximumBlockWeight; - /// The weight of database operations that the runtime can invoke. - type DbWeight = RocksDbWeight; - /// The weight of the overhead invoked on the block import process, independent of the - /// extrinsics included in that block. - type BlockExecutionWeight = BlockExecutionWeight; - /// The base weight of any extrinsic processed by the runtime, independent of the - /// logic of that extrinsic. (Signature verification, nonce increment, fee, etc...) - type ExtrinsicBaseWeight = ExtrinsicBaseWeight; - /// The maximum weight that a single extrinsic of `Normal` dispatch class can have, - /// idependent of the logic of that extrinsics. (Roughly max block weight - average on - /// initialize cost). - type MaximumExtrinsicWeight = MaximumExtrinsicWeight; /// Maximum size of all encoded transactions (in bytes) that are allowed in one block. type MaximumBlockLength = MaximumBlockLength; /// Portion of the block weight that is available to all normal transactions. type AvailableBlockRatio = AvailableBlockRatio; - /// Version of the runtime. + /// Runtime version. type Version = Version; - /// Converts a module to the index of the module in `construct_runtime!`. - /// - /// This type is being generated by `construct_runtime!`. + /// Converts a module to an index of this module in the runtime. type ModuleToIndex = ModuleToIndex; - /// What to do if a new account is created. + type AccountData = pallet_balances::AccountData; type OnNewAccount = (); - /// What to do if an account is fully reaped from the system. type OnKilledAccount = (); - /// The data to be stored in an account. - type AccountData = balances::AccountData; - /// Weight information for the extrinsics of this pallet. + type DbWeight = (); + type ExtrinsicBaseWeight = ExtrinsicBaseWeight; + type BlockExecutionWeight = (); + type MaximumExtrinsicWeight = MaximumExtrinsicWeight; + type BaseCallFilter = (); type SystemWeightInfo = (); } -impl aura::Trait for Runtime { - type AuthorityId = AuraId; -} - -impl grandpa::Trait for Runtime { - type Event = Event; - type Call = Call; - - type KeyOwnerProofSystem = (); - - type KeyOwnerProof = - >::Proof; - - type KeyOwnerIdentification = >::IdentificationTuple; - - type HandleEquivocation = (); -} - parameter_types! { pub const MinimumPeriod: u64 = SLOT_DURATION / 2; } -impl timestamp::Trait for Runtime { +impl pallet_timestamp::Trait for Runtime { /// A timestamp: milliseconds since the unix epoch. type Moment = u64; - type OnTimestampSet = Aura; + type OnTimestampSet = (); type MinimumPeriod = MinimumPeriod; type WeightInfo = (); } parameter_types! { pub const ExistentialDeposit: u128 = 500; + pub const TransferFee: u128 = 0; + pub const CreationFee: u128 = 0; + pub const TransactionByteFee: u128 = 1; } -impl balances::Trait for Runtime { +impl pallet_balances::Trait for Runtime { /// The type for recording an account's balance. type Balance = Balance; /// The ubiquitous event type. @@ -240,21 +208,43 @@ impl balances::Trait for Runtime { type WeightInfo = (); } -parameter_types! { - pub const TransactionByteFee: Balance = 1; -} - -impl transaction_payment::Trait for Runtime { - type Currency = balances::Module; +impl pallet_transaction_payment::Trait for Runtime { + type Currency = Balances; type OnTransactionPayment = (); type TransactionByteFee = TransactionByteFee; type WeightToFee = IdentityFee; type FeeMultiplierUpdate = (); } -impl sudo::Trait for Runtime { - type Event = Event; +impl pallet_sudo::Trait for Runtime { type Call = Call; + type Event = Event; +} + +impl cumulus_parachain_upgrade::Trait for Runtime { + type Event = Event; + type OnValidationFunctionParams = (); +} + +parameter_types! { + pub storage ParachainId: cumulus_primitives::ParaId = 200.into(); +} + +impl cumulus_message_broker::Trait for Runtime { + type Event = Event; + type DownwardMessageHandlers = TokenDealer; + type UpwardMessage = cumulus_upward_message::RococoUpwardMessage; + type ParachainId = ParachainId; + type XCMPMessage = token_dealer::XCMPMessage; + type XCMPMessageHandlers = TokenDealer; +} + +impl token_dealer::Trait for Runtime { + type Event = Event; + type UpwardMessageSender = MessageBroker; + type UpwardMessage = cumulus_upward_message::RococoUpwardMessage; + type Currency = Balances; + type XCMPMessageSender = MessageBroker; } /// Configure the pallet template in pallets/template. @@ -262,25 +252,24 @@ impl template::Trait for Runtime { type Event = Event; } -// Create the runtime by composing the FRAME pallets that were previously configured. -construct_runtime!( +construct_runtime! { pub enum Runtime where Block = Block, NodeBlock = opaque::Block, UncheckedExtrinsic = UncheckedExtrinsic { - System: system::{Module, Call, Config, Storage, Event}, - RandomnessCollectiveFlip: randomness_collective_flip::{Module, Call, Storage}, - Timestamp: timestamp::{Module, Call, Storage, Inherent}, - Aura: aura::{Module, Config, Inherent}, - Grandpa: grandpa::{Module, Call, Storage, Config, Event}, - Balances: balances::{Module, Call, Storage, Config, Event}, - TransactionPayment: transaction_payment::{Module, Storage}, - Sudo: sudo::{Module, Call, Config, Storage, Event}, - // Include the custom logic from the template pallet in the runtime. + System: frame_system::{Module, Call, Storage, Config, Event}, + Timestamp: pallet_timestamp::{Module, Call, Storage, Inherent}, + Balances: pallet_balances::{Module, Call, Storage, Config, Event}, + Sudo: pallet_sudo::{Module, Call, Storage, Config, Event}, + RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Module, Call, Storage}, + ParachainUpgrade: cumulus_parachain_upgrade::{Module, Call, Storage, Inherent, Event}, + MessageBroker: cumulus_message_broker::{Module, Call, Inherent, Event}, + TokenDealer: token_dealer::{Module, Call, Event}, + TransactionPayment: pallet_transaction_payment::{Module, Storage}, TemplateModule: template::{Module, Call, Storage, Event}, } -); +} /// The address format for describing accounts. pub type Address = AccountId; @@ -294,20 +283,25 @@ pub type SignedBlock = generic::SignedBlock; pub type BlockId = generic::BlockId; /// The SignedExtension to the basic transaction logic. pub type SignedExtra = ( - system::CheckSpecVersion, - system::CheckTxVersion, - system::CheckGenesis, - system::CheckEra, - system::CheckNonce, - system::CheckWeight, - transaction_payment::ChargeTransactionPayment + frame_system::CheckSpecVersion, + frame_system::CheckGenesis, + frame_system::CheckEra, + frame_system::CheckNonce, + frame_system::CheckWeight, + pallet_transaction_payment::ChargeTransactionPayment, ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; /// Extrinsic type that has already been checked. pub type CheckedExtrinsic = generic::CheckedExtrinsic; /// Executive: handles dispatch to the various modules. -pub type Executive = frame_executive::Executive, Runtime, AllModules>; +pub type Executive = frame_executive::Executive< + Runtime, + Block, + frame_system::ChainContext, + Runtime, + AllModules, +>; impl_runtime_apis! { impl sp_api::Core for Runtime { @@ -331,7 +325,9 @@ impl_runtime_apis! { } impl sp_block_builder::BlockBuilder for Runtime { - fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { + fn apply_extrinsic( + extrinsic: ::Extrinsic, + ) -> ApplyExtrinsicResult { Executive::apply_extrinsic(extrinsic) } @@ -343,10 +339,7 @@ impl_runtime_apis! { data.create_extrinsics() } - fn check_inherents( - block: Block, - data: sp_inherents::InherentData, - ) -> sp_inherents::CheckInherentsResult { + fn check_inherents(block: Block, data: sp_inherents::InherentData) -> sp_inherents::CheckInherentsResult { data.check_extrinsics(&block) } @@ -370,51 +363,17 @@ impl_runtime_apis! { } } - impl sp_consensus_aura::AuraApi for Runtime { - fn slot_duration() -> u64 { - Aura::slot_duration() - } - - fn authorities() -> Vec { - Aura::authorities() - } - } - impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - opaque::SessionKeys::generate(seed) - } - fn decode_session_keys( encoded: Vec, - ) -> Option, KeyTypeId)>> { + ) -> Option, sp_core::crypto::KeyTypeId)>> { opaque::SessionKeys::decode_into_raw_public_keys(&encoded) } - } - - impl fg_primitives::GrandpaApi for Runtime { - fn grandpa_authorities() -> GrandpaAuthorityList { - Grandpa::grandpa_authorities() - } - - fn submit_report_equivocation_unsigned_extrinsic( - _equivocation_proof: fg_primitives::EquivocationProof< - ::Hash, - NumberFor, - >, - _key_owner_proof: fg_primitives::OpaqueKeyOwnershipProof, - ) -> Option<()> { - None - } - fn generate_key_ownership_proof( - _set_id: fg_primitives::SetId, - _authority_id: GrandpaId, - ) -> Option { - // NOTE: this is the only implementation possible since we've - // defined our key owner proof type as a bottom type (i.e. a type - // with no values). - None + fn generate_session_keys(seed: Option>) -> Vec { + opaque::SessionKeys::generate(seed) } } } + +cumulus_runtime::register_validate_block!(Block, Executive); From 49ef02e265c31aa1ed2dd45f6921f4d397269d38 Mon Sep 17 00:00:00 2001 From: Joshy Orndorff Date: Thu, 6 Aug 2020 11:35:03 -0400 Subject: [PATCH 03/91] Crib some basic QA stuff from recipes --- .github/workflows/link-check.yml | 19 +++++++++++++ .github/workflows/mlc_config.json | 7 +++++ .github/workflows/test-code.yml | 47 +++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 .github/workflows/link-check.yml create mode 100644 .github/workflows/mlc_config.json create mode 100644 .github/workflows/test-code.yml diff --git a/.github/workflows/link-check.yml b/.github/workflows/link-check.yml new file mode 100644 index 00000000..75948534 --- /dev/null +++ b/.github/workflows/link-check.yml @@ -0,0 +1,19 @@ +name: Check Links + +on: + pull_request: + branches: + - master + push: + branches: + - master + +jobs: + markdown-link-check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: gaurav-nelson/github-action-markdown-link-check@v1 + with: + use-quiet-mode: 'yes' + config-file: '.github/workflows/mlc_config.json' diff --git a/.github/workflows/mlc_config.json b/.github/workflows/mlc_config.json new file mode 100644 index 00000000..f741e987 --- /dev/null +++ b/.github/workflows/mlc_config.json @@ -0,0 +1,7 @@ +{ + "ignorePatterns": [ + { + "pattern": "^https://crates.io" + } + ] +} diff --git a/.github/workflows/test-code.yml b/.github/workflows/test-code.yml new file mode 100644 index 00000000..91cf4494 --- /dev/null +++ b/.github/workflows/test-code.yml @@ -0,0 +1,47 @@ +name: Test Code + +on: + pull_request: + branches: + - master + push: + branches: + - master + +jobs: + test-code: + runs-on: ubuntu-18.04 + + steps: + - name: Checkout Code + uses: actions/checkout@v2 + + # Steps taken from https://github.com/actions/cache/blob/master/examples.md#rust---cargo + - name: Cache cargo registry + uses: actions/cache@v2 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + target + key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} + + - name: Install toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly-2020-05-07 + components: rustfmt, clippy + target: wasm32-unknown-unknown + override: true + default: true + + # Enable this for clippy linting. + # - name: Check and Lint Code + # run: cargo +nightly-2020-05-07 clippy -- -D warnings + + - name: Check Code + run: cargo check --all + + - name: Test Code + run: cargo test --all From 59c411b88b7bf0384315fcfa82faa7e766e936b5 Mon Sep 17 00:00:00 2001 From: Ricardo Rius Date: Sat, 8 Aug 2020 03:02:34 +0200 Subject: [PATCH 04/91] Add parachain info --- Cargo.lock | 330 ++++++++++++++++-------------- Cargo.toml | 1 + README.md | 8 +- node/src/chain_spec.rs | 6 +- node/src/service.rs | 21 +- pallets/parachain-info/Cargo.toml | 24 +++ pallets/parachain-info/src/lib.rs | 28 +++ pallets/token-dealer/Cargo.toml | 5 +- runtime/Cargo.toml | 6 +- runtime/src/lib.rs | 17 +- 10 files changed, 252 insertions(+), 194 deletions(-) create mode 100644 pallets/parachain-info/Cargo.toml create mode 100644 pallets/parachain-info/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index eb931f43..c218e800 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -892,7 +892,7 @@ dependencies = [ [[package]] name = "cumulus-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus#817507f99001cfeab56eb5e916b366c656370d53" +source = "git+https://github.com/paritytech/cumulus#1fcd05503a3439edc86127832d4d37a41d87a91d" dependencies = [ "cumulus-consensus", "cumulus-network", @@ -921,7 +921,7 @@ dependencies = [ [[package]] name = "cumulus-consensus" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus#817507f99001cfeab56eb5e916b366c656370d53" +source = "git+https://github.com/paritytech/cumulus#1fcd05503a3439edc86127832d4d37a41d87a91d" dependencies = [ "futures 0.3.5", "log 0.4.11", @@ -943,7 +943,7 @@ dependencies = [ [[package]] name = "cumulus-message-broker" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus#817507f99001cfeab56eb5e916b366c656370d53" +source = "git+https://github.com/paritytech/cumulus#1fcd05503a3439edc86127832d4d37a41d87a91d" dependencies = [ "cumulus-primitives", "cumulus-upward-message", @@ -959,7 +959,7 @@ dependencies = [ [[package]] name = "cumulus-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus#817507f99001cfeab56eb5e916b366c656370d53" +source = "git+https://github.com/paritytech/cumulus#1fcd05503a3439edc86127832d4d37a41d87a91d" dependencies = [ "cumulus-primitives", "futures 0.3.5", @@ -981,7 +981,7 @@ dependencies = [ [[package]] name = "cumulus-parachain-upgrade" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus#817507f99001cfeab56eb5e916b366c656370d53" +source = "git+https://github.com/paritytech/cumulus#1fcd05503a3439edc86127832d4d37a41d87a91d" dependencies = [ "cumulus-primitives", "cumulus-runtime", @@ -1002,7 +1002,7 @@ dependencies = [ [[package]] name = "cumulus-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus#817507f99001cfeab56eb5e916b366c656370d53" +source = "git+https://github.com/paritytech/cumulus#1fcd05503a3439edc86127832d4d37a41d87a91d" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -1017,7 +1017,7 @@ dependencies = [ [[package]] name = "cumulus-runtime" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus#817507f99001cfeab56eb5e916b366c656370d53" +source = "git+https://github.com/paritytech/cumulus#1fcd05503a3439edc86127832d4d37a41d87a91d" dependencies = [ "cumulus-primitives", "frame-executive", @@ -1034,10 +1034,22 @@ dependencies = [ "trie-db", ] +[[package]] +name = "cumulus-token-dealer" +version = "0.1.0" +dependencies = [ + "cumulus-primitives", + "cumulus-upward-message", + "frame-support", + "frame-system", + "parity-scale-codec", + "polkadot-parachain", +] + [[package]] name = "cumulus-upward-message" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus#817507f99001cfeab56eb5e916b366c656370d53" +source = "git+https://github.com/paritytech/cumulus#1fcd05503a3439edc86127832d4d37a41d87a91d" dependencies = [ "kusama-runtime", "polkadot-core-primitives", @@ -1324,9 +1336,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "2.3.2" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68082183f458867ce7cddea16d4df4443c1537112c0c09c450dedc09daf5c719" +checksum = "7f14646a9e0430150a87951622ba9675472b68e384b7701b8423b30560805c7a" [[package]] name = "exit-future" @@ -1461,7 +1473,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "parity-scale-codec", ] @@ -1469,7 +1481,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -1486,7 +1498,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-benchmarking", "parity-scale-codec", @@ -1504,7 +1516,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -1519,7 +1531,7 @@ dependencies = [ [[package]] name = "frame-metadata" version = "11.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "parity-scale-codec", "serde", @@ -1530,7 +1542,7 @@ dependencies = [ [[package]] name = "frame-support" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "bitmask", "frame-metadata", @@ -1555,7 +1567,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support-procedural-tools", "proc-macro2 1.0.19", @@ -1566,7 +1578,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -1578,7 +1590,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", @@ -1588,7 +1600,7 @@ dependencies = [ [[package]] name = "frame-system" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1604,7 +1616,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "parity-scale-codec", "sp-api", @@ -3536,7 +3548,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -3552,7 +3564,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -3567,7 +3579,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-benchmarking", "frame-support", @@ -3592,7 +3604,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-benchmarking", "frame-support", @@ -3606,7 +3618,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -3621,7 +3633,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-benchmarking", "frame-support", @@ -3636,7 +3648,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -3650,7 +3662,7 @@ dependencies = [ [[package]] name = "pallet-finality-tracker" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -3666,7 +3678,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-benchmarking", "frame-support", @@ -3688,7 +3700,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "enumflags2", "frame-benchmarking", @@ -3704,7 +3716,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -3723,7 +3735,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -3739,7 +3751,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -3753,7 +3765,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -3768,7 +3780,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -3782,7 +3794,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -3797,7 +3809,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -3812,7 +3824,7 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -3825,7 +3837,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "enumflags2", "frame-support", @@ -3840,7 +3852,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-benchmarking", "frame-support", @@ -3855,7 +3867,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -3875,7 +3887,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -3889,7 +3901,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -3909,7 +3921,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.19", @@ -3920,7 +3932,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -3946,7 +3958,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-benchmarking", "frame-support", @@ -3963,7 +3975,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -3980,7 +3992,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -3998,7 +4010,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "parity-scale-codec", @@ -4011,7 +4023,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -4025,7 +4037,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-support", "frame-system", @@ -4040,7 +4052,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "enumflags2", "frame-support", @@ -4109,6 +4121,17 @@ dependencies = [ "trie-root 0.15.2", ] +[[package]] +name = "parachain-info" +version = "0.1.0" +dependencies = [ + "cumulus-primitives", + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", +] + [[package]] name = "parachain-runtime" version = "0.1.0" @@ -4117,6 +4140,7 @@ dependencies = [ "cumulus-parachain-upgrade", "cumulus-primitives", "cumulus-runtime", + "cumulus-token-dealer", "cumulus-upward-message", "frame-executive", "frame-support", @@ -4127,6 +4151,7 @@ dependencies = [ "pallet-template", "pallet-timestamp", "pallet-transaction-payment", + "parachain-info", "parity-scale-codec", "serde", "sp-api", @@ -4141,7 +4166,6 @@ dependencies = [ "sp-transaction-pool", "sp-version", "substrate-wasm-builder-runner 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "token-dealer", ] [[package]] @@ -5837,7 +5861,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "bytes 0.5.6", "derive_more 0.99.9", @@ -5864,7 +5888,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "futures 0.3.5", "futures-timer 3.0.2", @@ -5888,7 +5912,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -5905,7 +5929,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "impl-trait-for-tuples", "sc-chain-spec-derive", @@ -5921,7 +5945,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.19", @@ -5932,7 +5956,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "ansi_term 0.12.1", "atty", @@ -5973,7 +5997,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "derive_more 0.99.9", "fnv", @@ -6009,7 +6033,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "blake2-rfc", "hash-db", @@ -6039,7 +6063,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "sc-client-api", "sp-blockchain", @@ -6050,7 +6074,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "derive_more 0.99.9", "fork-tree", @@ -6094,7 +6118,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "derive_more 0.99.9", "futures 0.3.5", @@ -6118,7 +6142,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "fork-tree", "parity-scale-codec", @@ -6131,7 +6155,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "futures 0.3.5", "futures-timer 3.0.2", @@ -6154,7 +6178,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "log 0.4.11", "sc-client-api", @@ -6168,7 +6192,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "derive_more 0.99.9", "lazy_static", @@ -6196,7 +6220,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "derive_more 0.99.9", "log 0.4.11", @@ -6213,7 +6237,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "log 0.4.11", "parity-scale-codec", @@ -6228,7 +6252,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "cranelift-codegen", "cranelift-wasm", @@ -6249,7 +6273,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "assert_matches", "derive_more 0.99.9", @@ -6287,7 +6311,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "derive_more 0.99.9", "finality-grandpa", @@ -6304,7 +6328,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "ansi_term 0.12.1", "futures 0.3.5", @@ -6322,7 +6346,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "derive_more 0.99.9", "hex", @@ -6338,7 +6362,7 @@ dependencies = [ [[package]] name = "sc-light" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "hash-db", "lazy_static", @@ -6357,7 +6381,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "bitflags", "bs58", @@ -6409,7 +6433,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "futures 0.3.5", "futures-timer 3.0.2", @@ -6424,7 +6448,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "bytes 0.5.6", "fnv", @@ -6451,7 +6475,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "futures 0.3.5", "libp2p", @@ -6464,7 +6488,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "log 0.4.11", "substrate-prometheus-endpoint", @@ -6473,7 +6497,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "futures 0.3.5", "hash-db", @@ -6505,7 +6529,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "derive_more 0.99.9", "futures 0.3.5", @@ -6529,7 +6553,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "jsonrpc-core", "jsonrpc-http-server", @@ -6545,7 +6569,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "derive_more 0.99.9", "directories", @@ -6608,7 +6632,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "log 0.4.11", "parity-scale-codec", @@ -6622,7 +6646,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "futures 0.3.5", "futures-timer 3.0.2", @@ -6643,7 +6667,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "erased-serde", "log 0.4.11", @@ -6660,7 +6684,7 @@ dependencies = [ [[package]] name = "sc-transaction-graph" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "derive_more 0.99.9", "futures 0.3.5", @@ -6681,7 +6705,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "derive_more 0.99.9", "futures 0.3.5", @@ -7107,7 +7131,7 @@ dependencies = [ [[package]] name = "sp-allocator" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "derive_more 0.99.9", "log 0.4.11", @@ -7119,7 +7143,7 @@ dependencies = [ [[package]] name = "sp-api" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "hash-db", "parity-scale-codec", @@ -7134,7 +7158,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "blake2-rfc", "proc-macro-crate", @@ -7146,7 +7170,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "parity-scale-codec", "serde", @@ -7158,7 +7182,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "integer-sqrt", "num-traits 0.2.12", @@ -7171,7 +7195,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "parity-scale-codec", "sp-api", @@ -7183,7 +7207,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "parity-scale-codec", "sp-inherents", @@ -7194,7 +7218,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "parity-scale-codec", "sp-api", @@ -7206,7 +7230,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "derive_more 0.99.9", "log 0.4.11", @@ -7223,7 +7247,7 @@ dependencies = [ [[package]] name = "sp-chain-spec" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "serde", "serde_json", @@ -7232,7 +7256,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "derive_more 0.99.9", "futures 0.3.5", @@ -7258,7 +7282,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "parity-scale-codec", "sp-api", @@ -7272,7 +7296,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "merlin", "parity-scale-codec", @@ -7291,7 +7315,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -7300,7 +7324,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -7312,7 +7336,7 @@ dependencies = [ [[package]] name = "sp-core" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "base58", "blake2-rfc", @@ -7356,7 +7380,7 @@ dependencies = [ [[package]] name = "sp-database" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "kvdb", "parking_lot 0.10.2", @@ -7365,7 +7389,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", @@ -7375,7 +7399,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "environmental", "parity-scale-codec", @@ -7386,7 +7410,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "finality-grandpa", "log 0.4.11", @@ -7402,7 +7426,7 @@ dependencies = [ [[package]] name = "sp-finality-tracker" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "parity-scale-codec", "sp-inherents", @@ -7412,7 +7436,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "derive_more 0.99.9", "parity-scale-codec", @@ -7424,7 +7448,7 @@ dependencies = [ [[package]] name = "sp-io" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "futures 0.3.5", "hash-db", @@ -7445,7 +7469,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "lazy_static", "sp-core", @@ -7456,7 +7480,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "parity-scale-codec", "serde", @@ -7468,7 +7492,7 @@ dependencies = [ [[package]] name = "sp-npos-elections-compact" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.19", @@ -7479,7 +7503,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "sp-api", "sp-core", @@ -7489,7 +7513,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "backtrace", "log 0.4.11", @@ -7498,7 +7522,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "serde", "sp-core", @@ -7507,7 +7531,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "either", "hash256-std-hasher", @@ -7529,7 +7553,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "parity-scale-codec", "primitive-types", @@ -7544,7 +7568,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "Inflector", "proc-macro-crate", @@ -7556,7 +7580,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "serde", "serde_json", @@ -7565,7 +7589,7 @@ dependencies = [ [[package]] name = "sp-session" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "parity-scale-codec", "sp-api", @@ -7578,7 +7602,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -7588,7 +7612,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "hash-db", "itertools 0.9.0", @@ -7609,12 +7633,12 @@ dependencies = [ [[package]] name = "sp-std" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" [[package]] name = "sp-storage" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "impl-serde 0.2.3", "ref-cast", @@ -7626,7 +7650,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7640,7 +7664,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "log 0.4.11", "rental", @@ -7650,7 +7674,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "derive_more 0.99.9", "futures 0.3.5", @@ -7665,7 +7689,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "hash-db", "memory-db", @@ -7679,7 +7703,7 @@ dependencies = [ [[package]] name = "sp-utils" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "futures 0.3.5", "futures-core", @@ -7691,7 +7715,7 @@ dependencies = [ [[package]] name = "sp-version" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "impl-serde 0.2.3", "parity-scale-codec", @@ -7703,7 +7727,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7822,7 +7846,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "platforms", ] @@ -7830,7 +7854,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.5", @@ -7853,7 +7877,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "async-std", "derive_more 0.99.9", @@ -7867,7 +7891,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "futures 0.1.29", "futures 0.3.5", @@ -7893,7 +7917,7 @@ dependencies = [ [[package]] name = "substrate-test-runtime" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "cfg-if", "frame-executive", @@ -7933,7 +7957,7 @@ dependencies = [ [[package]] name = "substrate-test-runtime-client" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" dependencies = [ "futures 0.3.5", "parity-scale-codec", @@ -7954,7 +7978,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder-runner" version = "1.0.6" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#6ea3c68bd3f880a24978a41bf8a73e3babd21337" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" [[package]] name = "substrate-wasm-builder-runner" @@ -8202,18 +8226,6 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed" -[[package]] -name = "token-dealer" -version = "2.0.0-rc5" -dependencies = [ - "cumulus-primitives", - "cumulus-upward-message", - "frame-support", - "frame-system", - "parity-scale-codec", - "polkadot-parachain", -] - [[package]] name = "tokio" version = "0.1.22" @@ -9056,18 +9068,18 @@ dependencies = [ [[package]] name = "wast" -version = "21.0.0" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b1844f66a2bc8526d71690104c0e78a8e59ffa1597b7245769d174ebb91deb5" +checksum = "fe1220ed7f824992b426a76125a3403d048eaf0f627918e97ade0d9b9d510d20" dependencies = [ "leb128", ] [[package]] name = "wat" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce85d72b74242c340e9e3492cfb602652d7bb324c3172dd441b5577e39a2e18c" +checksum = "f888158d9a4b7c39b859f72a435019835b64097c749f4f28d319004ca5a520b8" dependencies = [ "wast", ] diff --git a/Cargo.toml b/Cargo.toml index 01ce8953..9eda221f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,7 @@ [workspace] members = [ "runtime/", + "pallets/parachain-info", "pallets/token-dealer", "pallets/template", "node/", diff --git a/README.md b/README.md index 2b10d54a..07fff6fa 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# Substrate Parachain Template +# Substrate Cumulus Parachain Template -A new FRAME-based Substrate node, ready for hacking :rocket: +A new Cumulus-based Substrate node, ready for hacking :rocket: ## Local Development @@ -32,7 +32,7 @@ cargo build --release ## Run -### Single Node Development Chain +### Single Staging Node Chain Purge any existing staging chain state: @@ -62,7 +62,7 @@ Polkadot (rococo-branch): ./target/release/polkadot --chain ./rococo_local.json -d cumulus_relay0 --validator --alice --port 50556 ``` -Parachain Template: +Substrate Parachain Template: ``` ./target/release/parachain-collator -d local-test --validator --ws-port 9945 --parachain-id 200 -- --chain ~/.dev/polkadot/rococo_local.json ``` diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index cfc90f8a..742e2e8b 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -2,7 +2,8 @@ use cumulus_primitives::ParaId; use parachain_runtime::{ - AccountId, BalancesConfig, GenesisConfig, Signature, SudoConfig, SystemConfig, WASM_BINARY, + AccountId, BalancesConfig, GenesisConfig, Signature, SudoConfig, SystemConfig, + ParachainInfoConfig, WASM_BINARY, }; use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup}; use sc_service::ChainType; @@ -109,7 +110,7 @@ pub fn staging_test_net(id: ParaId) -> ChainSpec { fn testnet_genesis( root_key: AccountId, endowed_accounts: Vec, - _id: ParaId, + id: ParaId, ) -> GenesisConfig { GenesisConfig { frame_system: Some(SystemConfig { @@ -124,5 +125,6 @@ fn testnet_genesis( .collect(), }), pallet_sudo: Some(SudoConfig { key: root_key }), + parachain_info: Some(ParachainInfoConfig { parachain_id: id }), } } diff --git a/node/src/service.rs b/node/src/service.rs index 4b375c2d..e072c84c 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -3,7 +3,6 @@ use ansi_term::Color; use cumulus_collator::{prepare_collator_config, CollatorBuilder}; use cumulus_network::{DelayedBlockAnnounceValidator, JustifiedBlockAnnounceValidator}; -use futures::{future::ready, FutureExt}; use polkadot_primitives::v0::{CollatorPair, Block as PBlock, Id as ParaId}; use sc_executor::native_executor_instance; pub use sc_executor::NativeExecutor; @@ -141,6 +140,7 @@ pub fn run_collator( finality_proof_provider: None, })?; + let _rpc_handlers = sc_service::spawn_tasks(sc_service::SpawnTasksParams { on_demand: None, remote_blockchain: None, @@ -177,21 +177,17 @@ pub fn run_collator( block_announce_validator, ); - let (polkadot_future, polkadpt_task_manager) = + let (polkadot_future, polkadot_task_manager) = polkadot_collator::start_collator(builder, id, key, polkadot_config)?; - // Make sure the polkadot task manager survives as long as the service. - let polkadot_future = polkadot_future.then(move |_| { - let _ = polkadpt_task_manager; - ready(()) - }); - task_manager .spawn_essential_handle() .spawn("polkadot", polkadot_future); + + task_manager.add_child(polkadot_task_manager); } else { let is_light = matches!(polkadot_config.role, Role::Light); - let (mut polkadot_task_manager, client, handles) = if is_light { + let (polkadot_task_manager, client, handles) = if is_light { Err("Light client not supported.".into()) } else { polkadot_service::build_full( @@ -203,9 +199,6 @@ pub fn run_collator( None, ) }?; - let polkadot_future = async move { - polkadot_task_manager.future().await.expect("polkadot essential task failed"); - }; let polkadot_network = handles.polkadot_network.expect("polkadot service is started; qed"); client.execute_with(SetDelayedBlockAnnounceValidator { block_announce_validator, @@ -213,9 +206,7 @@ pub fn run_collator( polkadot_sync_oracle: Box::new(polkadot_network), }); - task_manager - .spawn_essential_handle() - .spawn("polkadot", polkadot_future); + task_manager.add_child(polkadot_task_manager); } start_network.start_network(); diff --git a/pallets/parachain-info/Cargo.toml b/pallets/parachain-info/Cargo.toml new file mode 100644 index 00000000..665e5451 --- /dev/null +++ b/pallets/parachain-info/Cargo.toml @@ -0,0 +1,24 @@ +[package] +authors = ["Parity Technologies "] +edition = "2018" +name = "parachain-info" +version = "0.1.0" + +[dependencies] +codec = { package = "parity-scale-codec", version = "1.3.0", default-features = false, features = ["derive"] } +serde = { version = "1.0.101", optional = true, features = ["derive"] } + +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } + +cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false } + +[features] +default = ["std"] +std = [ + "codec/std", + "serde", + "cumulus-primitives/std", + "frame-support/std", + "frame-system/std", +] diff --git a/pallets/parachain-info/src/lib.rs b/pallets/parachain-info/src/lib.rs new file mode 100644 index 00000000..39a65c44 --- /dev/null +++ b/pallets/parachain-info/src/lib.rs @@ -0,0 +1,28 @@ +// Copyright 2020 Parity Technologies (UK) Ltd. + +//! Minimal Pallet that injects a ParachainId into Runtime storage from + +#![cfg_attr(not(feature = "std"), no_std)] + +use frame_support::{decl_module, decl_storage, traits::Get}; + +use cumulus_primitives::ParaId; + +/// Configuration trait of this pallet. +pub trait Trait: frame_system::Trait {} + +impl Get for Module { + fn get() -> ParaId { + Self::parachain_id() + } +} + +decl_storage! { + trait Store for Module as ParachainUpgrade { + ParachainId get(fn parachain_id) config(): ParaId = 200.into(); + } +} + +decl_module! { + pub struct Module for enum Call where origin: T::Origin {} +} diff --git a/pallets/token-dealer/Cargo.toml b/pallets/token-dealer/Cargo.toml index 0d0a5dfe..26e1b52a 100644 --- a/pallets/token-dealer/Cargo.toml +++ b/pallets/token-dealer/Cargo.toml @@ -1,9 +1,8 @@ [package] authors = ["Parity Technologies "] edition = "2018" -license = 'Unlicense' -name = "token-dealer" -version = "2.0.0-rc5" +name = "cumulus-token-dealer" +version = "0.1.0" [dependencies] codec = { package = "parity-scale-codec", version = "1.3.0", default-features = false, features = ["derive"] } diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 804a6f53..6ce85bac 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -8,7 +8,8 @@ edition = '2018' serde = { version = "1.0.101", default-features = false, optional = true, features = ["derive"] } codec = { package = "parity-scale-codec", version = "1.3.0", default-features = false, features = ["derive"] } -token-dealer = { package = "token-dealer", path = "../pallets/token-dealer", version = "2.0.0-rc5", default-features = false} +parachain-info = { path = "../pallets/parachain-info", default-features = false} +cumulus-token-dealer = { path = "../pallets/token-dealer", default-features = false} template = { package = "pallet-template", path = "../pallets/template", version = "2.0.0-rc5", default-features = false} # Substrate dependencies @@ -67,12 +68,13 @@ std = [ "pallet-timestamp/std", "pallet-sudo/std", "pallet-transaction-payment/std", + "parachain-info/std", "cumulus-runtime/std", "cumulus-parachain-upgrade/std", "cumulus-message-broker/std", "cumulus-upward-message/std", "cumulus-primitives/std", - "token-dealer/std", + "cumulus-token-dealer/std", "template/std", ] # Will be enabled by the `wasm-builder` when building the runtime for WASM. diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index d09d65d7..380a00c3 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -37,7 +37,7 @@ pub use sp_runtime::{Perbill, Permill}; pub use template; /// Import the message pallet. -pub use token_dealer; +pub use cumulus_token_dealer; /// An index to a block. pub type BlockNumber = u32; @@ -226,20 +226,18 @@ impl cumulus_parachain_upgrade::Trait for Runtime { type OnValidationFunctionParams = (); } -parameter_types! { - pub storage ParachainId: cumulus_primitives::ParaId = 200.into(); -} - impl cumulus_message_broker::Trait for Runtime { type Event = Event; type DownwardMessageHandlers = TokenDealer; type UpwardMessage = cumulus_upward_message::RococoUpwardMessage; - type ParachainId = ParachainId; - type XCMPMessage = token_dealer::XCMPMessage; + type ParachainId = ParachainInfo; + type XCMPMessage = cumulus_token_dealer::XCMPMessage; type XCMPMessageHandlers = TokenDealer; } -impl token_dealer::Trait for Runtime { +impl parachain_info::Trait for Runtime {} + +impl cumulus_token_dealer::Trait for Runtime { type Event = Event; type UpwardMessageSender = MessageBroker; type UpwardMessage = cumulus_upward_message::RococoUpwardMessage; @@ -265,8 +263,9 @@ construct_runtime! { RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Module, Call, Storage}, ParachainUpgrade: cumulus_parachain_upgrade::{Module, Call, Storage, Inherent, Event}, MessageBroker: cumulus_message_broker::{Module, Call, Inherent, Event}, - TokenDealer: token_dealer::{Module, Call, Event}, TransactionPayment: pallet_transaction_payment::{Module, Storage}, + ParachainInfo: parachain_info::{Module, Storage, Config}, + TokenDealer: cumulus_token_dealer::{Module, Call, Event}, TemplateModule: template::{Module, Call, Storage, Event}, } } From 9c4e41fc1c483a4195064473daa436a6933219d0 Mon Sep 17 00:00:00 2001 From: Ricardo Rius Date: Mon, 10 Aug 2020 23:44:33 +0200 Subject: [PATCH 05/91] Update to Cumulus 96da14c --- Cargo.lock | 348 ++++++++++++++++-------------- README.md | 2 +- node/Cargo.toml | 9 +- node/src/command.rs | 116 +++------- node/src/service.rs | 183 +++++++--------- pallets/parachain-info/Cargo.toml | 2 +- pallets/token-dealer/Cargo.toml | 4 +- runtime/Cargo.toml | 10 +- 8 files changed, 309 insertions(+), 365 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c218e800..f177542d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -37,7 +37,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" dependencies = [ - "generic-array 0.14.3", + "generic-array 0.14.4", ] [[package]] @@ -452,7 +452,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "generic-array 0.14.3", + "generic-array 0.14.4", ] [[package]] @@ -461,7 +461,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa136449e765dc7faa244561ccae839c394048667929af599b5d931ebe7b7f10" dependencies = [ - "generic-array 0.14.3", + "generic-array 0.14.4", ] [[package]] @@ -876,7 +876,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ - "generic-array 0.14.3", + "generic-array 0.14.4", "subtle 2.2.3", ] @@ -892,7 +892,7 @@ dependencies = [ [[package]] name = "cumulus-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus#1fcd05503a3439edc86127832d4d37a41d87a91d" +source = "git+https://github.com/paritytech/cumulus?rev=96da14c14fb785e106bb89a18c9dedaf2f789d2c#96da14c14fb785e106bb89a18c9dedaf2f789d2c" dependencies = [ "cumulus-consensus", "cumulus-network", @@ -909,7 +909,6 @@ dependencies = [ "polkadot-validation", "sc-cli", "sc-client-api", - "sc-service", "sp-api", "sp-blockchain", "sp-consensus", @@ -921,7 +920,7 @@ dependencies = [ [[package]] name = "cumulus-consensus" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus#1fcd05503a3439edc86127832d4d37a41d87a91d" +source = "git+https://github.com/paritytech/cumulus?rev=96da14c14fb785e106bb89a18c9dedaf2f789d2c#96da14c14fb785e106bb89a18c9dedaf2f789d2c" dependencies = [ "futures 0.3.5", "log 0.4.11", @@ -943,7 +942,7 @@ dependencies = [ [[package]] name = "cumulus-message-broker" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus#1fcd05503a3439edc86127832d4d37a41d87a91d" +source = "git+https://github.com/paritytech/cumulus?rev=96da14c14fb785e106bb89a18c9dedaf2f789d2c#96da14c14fb785e106bb89a18c9dedaf2f789d2c" dependencies = [ "cumulus-primitives", "cumulus-upward-message", @@ -959,7 +958,7 @@ dependencies = [ [[package]] name = "cumulus-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus#1fcd05503a3439edc86127832d4d37a41d87a91d" +source = "git+https://github.com/paritytech/cumulus?rev=96da14c14fb785e106bb89a18c9dedaf2f789d2c#96da14c14fb785e106bb89a18c9dedaf2f789d2c" dependencies = [ "cumulus-primitives", "futures 0.3.5", @@ -981,7 +980,7 @@ dependencies = [ [[package]] name = "cumulus-parachain-upgrade" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus#1fcd05503a3439edc86127832d4d37a41d87a91d" +source = "git+https://github.com/paritytech/cumulus?rev=96da14c14fb785e106bb89a18c9dedaf2f789d2c#96da14c14fb785e106bb89a18c9dedaf2f789d2c" dependencies = [ "cumulus-primitives", "cumulus-runtime", @@ -1002,7 +1001,7 @@ dependencies = [ [[package]] name = "cumulus-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus#1fcd05503a3439edc86127832d4d37a41d87a91d" +source = "git+https://github.com/paritytech/cumulus?rev=96da14c14fb785e106bb89a18c9dedaf2f789d2c#96da14c14fb785e106bb89a18c9dedaf2f789d2c" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -1017,12 +1016,12 @@ dependencies = [ [[package]] name = "cumulus-runtime" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus#1fcd05503a3439edc86127832d4d37a41d87a91d" +source = "git+https://github.com/paritytech/cumulus?rev=96da14c14fb785e106bb89a18c9dedaf2f789d2c#96da14c14fb785e106bb89a18c9dedaf2f789d2c" dependencies = [ "cumulus-primitives", "frame-executive", "hash-db", - "hashbrown 0.8.1", + "hashbrown 0.8.2", "memory-db", "parity-scale-codec", "polkadot-parachain", @@ -1034,6 +1033,28 @@ dependencies = [ "trie-db", ] +[[package]] +name = "cumulus-service" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus?rev=96da14c14fb785e106bb89a18c9dedaf2f789d2c#96da14c14fb785e106bb89a18c9dedaf2f789d2c" +dependencies = [ + "cumulus-collator", + "cumulus-consensus", + "cumulus-network", + "cumulus-primitives", + "polkadot-collator", + "polkadot-primitives", + "polkadot-service", + "sc-client-api", + "sc-service", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", +] + [[package]] name = "cumulus-token-dealer" version = "0.1.0" @@ -1049,7 +1070,7 @@ dependencies = [ [[package]] name = "cumulus-upward-message" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus#1fcd05503a3439edc86127832d4d37a41d87a91d" +source = "git+https://github.com/paritytech/cumulus?rev=96da14c14fb785e106bb89a18c9dedaf2f789d2c#96da14c14fb785e106bb89a18c9dedaf2f789d2c" dependencies = [ "kusama-runtime", "polkadot-core-primitives", @@ -1075,9 +1096,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72aa14c04dfae8dd7d8a2b1cb7ca2152618cd01336dbfe704b8dcbf8d41dbd69" +checksum = "d4d0e2d24e5ee3b23a01de38eefdcd978907890701f08ffffd4cb457ca4ee8d6" [[package]] name = "derive_more" @@ -1137,7 +1158,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.3", + "generic-array 0.14.4", ] [[package]] @@ -1395,9 +1416,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "1.3.3" +version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36a9cb09840f81cd211e435d00a4e487edd263dc3c8ff815c32dd76ad668ebed" +checksum = "4bd3bdaaf0a72155260a1c098989b60db1cbb22d6a628e64f16237aa4da93cc7" [[package]] name = "fdlimit" @@ -1473,7 +1494,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "parity-scale-codec", ] @@ -1481,7 +1502,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -1498,7 +1519,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-benchmarking", "parity-scale-codec", @@ -1516,7 +1537,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -1531,7 +1552,7 @@ dependencies = [ [[package]] name = "frame-metadata" version = "11.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "parity-scale-codec", "serde", @@ -1542,7 +1563,7 @@ dependencies = [ [[package]] name = "frame-support" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "bitmask", "frame-metadata", @@ -1567,7 +1588,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support-procedural-tools", "proc-macro2 1.0.19", @@ -1578,7 +1599,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -1590,7 +1611,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", @@ -1600,7 +1621,7 @@ dependencies = [ [[package]] name = "frame-system" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1616,7 +1637,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "parity-scale-codec", "sp-api", @@ -1872,9 +1893,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60fb4bb6bba52f78a471264d9a3b7d026cc0af47b22cd2cffbc0b787ca003e63" +checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" dependencies = [ "typenum", "version_check", @@ -2035,9 +2056,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34f595585f103464d8d2f6e9864682d74c1601fed5e07d62b1c9058dba8246fb" +checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25" dependencies = [ "ahash 0.3.8", "autocfg 1.0.0", @@ -2300,12 +2321,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b88cd59ee5f71fea89a62248fc8f387d44400cefe05ef548466d61ced9029a7" +checksum = "86b45e59b16c76b11bf9738fd5d38879d3bd28ad292d7b313608becb17ae2df9" dependencies = [ "autocfg 1.0.0", - "hashbrown 0.8.1", + "hashbrown 0.8.2", "serde", ] @@ -3154,7 +3175,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36f36ddb0b2cdc25d38babba472108798e3477f02be5165f038c5e393e50c57a" dependencies = [ "hash-db", - "hashbrown 0.8.1", + "hashbrown 0.8.2", "parity-util-mem", ] @@ -3548,7 +3569,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -3564,7 +3585,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -3579,7 +3600,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-benchmarking", "frame-support", @@ -3604,7 +3625,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-benchmarking", "frame-support", @@ -3618,7 +3639,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -3633,7 +3654,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-benchmarking", "frame-support", @@ -3648,7 +3669,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -3662,7 +3683,7 @@ dependencies = [ [[package]] name = "pallet-finality-tracker" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -3678,7 +3699,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-benchmarking", "frame-support", @@ -3700,7 +3721,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "enumflags2", "frame-benchmarking", @@ -3716,7 +3737,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -3735,7 +3756,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -3751,7 +3772,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -3765,7 +3786,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -3780,7 +3801,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -3794,7 +3815,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -3809,7 +3830,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -3824,7 +3845,7 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -3837,7 +3858,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "enumflags2", "frame-support", @@ -3852,7 +3873,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-benchmarking", "frame-support", @@ -3867,7 +3888,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -3887,7 +3908,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -3901,7 +3922,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -3921,7 +3942,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.19", @@ -3932,7 +3953,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -3958,7 +3979,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-benchmarking", "frame-support", @@ -3975,7 +3996,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -3992,7 +4013,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4010,7 +4031,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "parity-scale-codec", @@ -4023,7 +4044,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -4037,7 +4058,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-support", "frame-system", @@ -4052,7 +4073,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "enumflags2", "frame-support", @@ -4073,6 +4094,7 @@ dependencies = [ "cumulus-consensus", "cumulus-network", "cumulus-primitives", + "cumulus-service", "derive_more 0.15.0", "exit-future 0.1.4", "futures 0.3.5", @@ -4257,7 +4279,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "297ff91fa36aec49ce183484b102f6b75b46776822bd81525bfc4cc9b0dd0f5c" dependencies = [ "cfg-if", - "hashbrown 0.8.1", + "hashbrown 0.8.2", "impl-trait-for-tuples", "parity-util-mem-derive", "parking_lot 0.10.2", @@ -5861,7 +5883,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "bytes 0.5.6", "derive_more 0.99.9", @@ -5888,7 +5910,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "futures 0.3.5", "futures-timer 3.0.2", @@ -5912,7 +5934,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -5929,7 +5951,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "impl-trait-for-tuples", "sc-chain-spec-derive", @@ -5945,7 +5967,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.19", @@ -5956,7 +5978,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "ansi_term 0.12.1", "atty", @@ -5997,7 +6019,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "derive_more 0.99.9", "fnv", @@ -6033,7 +6055,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "blake2-rfc", "hash-db", @@ -6063,7 +6085,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "sc-client-api", "sp-blockchain", @@ -6074,7 +6096,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "derive_more 0.99.9", "fork-tree", @@ -6118,7 +6140,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "derive_more 0.99.9", "futures 0.3.5", @@ -6142,7 +6164,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "fork-tree", "parity-scale-codec", @@ -6155,7 +6177,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "futures 0.3.5", "futures-timer 3.0.2", @@ -6178,7 +6200,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "log 0.4.11", "sc-client-api", @@ -6192,7 +6214,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "derive_more 0.99.9", "lazy_static", @@ -6220,7 +6242,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "derive_more 0.99.9", "log 0.4.11", @@ -6237,7 +6259,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "log 0.4.11", "parity-scale-codec", @@ -6252,7 +6274,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "cranelift-codegen", "cranelift-wasm", @@ -6273,7 +6295,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "assert_matches", "derive_more 0.99.9", @@ -6311,7 +6333,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "derive_more 0.99.9", "finality-grandpa", @@ -6328,7 +6350,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "ansi_term 0.12.1", "futures 0.3.5", @@ -6346,7 +6368,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "derive_more 0.99.9", "hex", @@ -6362,7 +6384,7 @@ dependencies = [ [[package]] name = "sc-light" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "hash-db", "lazy_static", @@ -6381,7 +6403,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "bitflags", "bs58", @@ -6433,7 +6455,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "futures 0.3.5", "futures-timer 3.0.2", @@ -6448,7 +6470,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "bytes 0.5.6", "fnv", @@ -6475,7 +6497,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "futures 0.3.5", "libp2p", @@ -6488,7 +6510,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "log 0.4.11", "substrate-prometheus-endpoint", @@ -6497,7 +6519,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "futures 0.3.5", "hash-db", @@ -6529,7 +6551,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "derive_more 0.99.9", "futures 0.3.5", @@ -6553,7 +6575,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "jsonrpc-core", "jsonrpc-http-server", @@ -6569,7 +6591,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "derive_more 0.99.9", "directories", @@ -6632,7 +6654,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "log 0.4.11", "parity-scale-codec", @@ -6646,7 +6668,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "futures 0.3.5", "futures-timer 3.0.2", @@ -6667,7 +6689,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "erased-serde", "log 0.4.11", @@ -6684,7 +6706,7 @@ dependencies = [ [[package]] name = "sc-transaction-graph" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "derive_more 0.99.9", "futures 0.3.5", @@ -6705,7 +6727,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "derive_more 0.99.9", "futures 0.3.5", @@ -7131,7 +7153,7 @@ dependencies = [ [[package]] name = "sp-allocator" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "derive_more 0.99.9", "log 0.4.11", @@ -7143,7 +7165,7 @@ dependencies = [ [[package]] name = "sp-api" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "hash-db", "parity-scale-codec", @@ -7158,7 +7180,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "blake2-rfc", "proc-macro-crate", @@ -7170,7 +7192,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "parity-scale-codec", "serde", @@ -7182,7 +7204,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "integer-sqrt", "num-traits 0.2.12", @@ -7195,7 +7217,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "parity-scale-codec", "sp-api", @@ -7207,7 +7229,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "parity-scale-codec", "sp-inherents", @@ -7218,7 +7240,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "parity-scale-codec", "sp-api", @@ -7230,7 +7252,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "derive_more 0.99.9", "log 0.4.11", @@ -7247,7 +7269,7 @@ dependencies = [ [[package]] name = "sp-chain-spec" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "serde", "serde_json", @@ -7256,7 +7278,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "derive_more 0.99.9", "futures 0.3.5", @@ -7282,7 +7304,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "parity-scale-codec", "sp-api", @@ -7296,7 +7318,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "merlin", "parity-scale-codec", @@ -7315,7 +7337,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -7324,7 +7346,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -7336,7 +7358,7 @@ dependencies = [ [[package]] name = "sp-core" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "base58", "blake2-rfc", @@ -7380,7 +7402,7 @@ dependencies = [ [[package]] name = "sp-database" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "kvdb", "parking_lot 0.10.2", @@ -7389,7 +7411,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", @@ -7399,7 +7421,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "environmental", "parity-scale-codec", @@ -7410,7 +7432,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "finality-grandpa", "log 0.4.11", @@ -7426,7 +7448,7 @@ dependencies = [ [[package]] name = "sp-finality-tracker" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "parity-scale-codec", "sp-inherents", @@ -7436,7 +7458,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "derive_more 0.99.9", "parity-scale-codec", @@ -7448,7 +7470,7 @@ dependencies = [ [[package]] name = "sp-io" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "futures 0.3.5", "hash-db", @@ -7469,7 +7491,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "lazy_static", "sp-core", @@ -7480,7 +7502,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "parity-scale-codec", "serde", @@ -7492,7 +7514,7 @@ dependencies = [ [[package]] name = "sp-npos-elections-compact" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.19", @@ -7503,7 +7525,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "sp-api", "sp-core", @@ -7513,7 +7535,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "backtrace", "log 0.4.11", @@ -7522,7 +7544,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "serde", "sp-core", @@ -7531,7 +7553,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "either", "hash256-std-hasher", @@ -7553,7 +7575,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "parity-scale-codec", "primitive-types", @@ -7568,7 +7590,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "Inflector", "proc-macro-crate", @@ -7580,7 +7602,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "serde", "serde_json", @@ -7589,7 +7611,7 @@ dependencies = [ [[package]] name = "sp-session" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "parity-scale-codec", "sp-api", @@ -7602,7 +7624,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -7612,7 +7634,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "hash-db", "itertools 0.9.0", @@ -7633,12 +7655,12 @@ dependencies = [ [[package]] name = "sp-std" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" [[package]] name = "sp-storage" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "impl-serde 0.2.3", "ref-cast", @@ -7650,7 +7672,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7664,7 +7686,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "log 0.4.11", "rental", @@ -7674,7 +7696,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "derive_more 0.99.9", "futures 0.3.5", @@ -7689,7 +7711,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "hash-db", "memory-db", @@ -7703,7 +7725,7 @@ dependencies = [ [[package]] name = "sp-utils" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "futures 0.3.5", "futures-core", @@ -7715,7 +7737,7 @@ dependencies = [ [[package]] name = "sp-version" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "impl-serde 0.2.3", "parity-scale-codec", @@ -7727,7 +7749,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7768,7 +7790,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09f8ed9974042b8c3672ff3030a69fcc03b74c47c3d1ecb7755e8a3626011e88" dependencies = [ - "generic-array 0.14.3", + "generic-array 0.14.4", ] [[package]] @@ -7846,7 +7868,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "platforms", ] @@ -7854,7 +7876,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.5", @@ -7877,7 +7899,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "async-std", "derive_more 0.99.9", @@ -7891,7 +7913,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "futures 0.1.29", "futures 0.3.5", @@ -7917,7 +7939,7 @@ dependencies = [ [[package]] name = "substrate-test-runtime" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "cfg-if", "frame-executive", @@ -7957,7 +7979,7 @@ dependencies = [ [[package]] name = "substrate-test-runtime-client" version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" dependencies = [ "futures 0.3.5", "parity-scale-codec", @@ -7978,7 +8000,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder-runner" version = "1.0.6" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#d15f420bd14fb1cb3b8789d7949276b97dada9b0" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" [[package]] name = "substrate-wasm-builder-runner" @@ -8583,7 +8605,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e55f7ace33d6237e14137e386f4e1672e2a5c6bbc97fef9f438581a143971f0" dependencies = [ "hash-db", - "hashbrown 0.8.1", + "hashbrown 0.8.2", "log 0.4.11", "rustc-hex", "smallvec 1.4.1", @@ -8703,7 +8725,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" dependencies = [ - "generic-array 0.14.3", + "generic-array 0.14.4", "subtle 2.2.3", ] diff --git a/README.md b/README.md index 07fff6fa..be9e7cc6 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ Polkadot (rococo-branch): Substrate Parachain Template: ``` -./target/release/parachain-collator -d local-test --validator --ws-port 9945 --parachain-id 200 -- --chain ~/.dev/polkadot/rococo_local.json +./target/release/parachain-collator -d local-test --validator --ws-port 9945 --parachain-id 200 -- --chain ../polkadot/rococo_local.json ``` If you want to see the multi-node consensus algorithm in action, refer to diff --git a/node/Cargo.toml b/node/Cargo.toml index 14501374..954f2cfe 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -47,10 +47,11 @@ sc-informant = { git = "https://github.com/paritytech/substrate", branch = "roco sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } # Cumulus dependencies -cumulus-consensus = { git = "https://github.com/paritytech/cumulus" } -cumulus-collator = { git = "https://github.com/paritytech/cumulus" } -cumulus-network = { git = "https://github.com/paritytech/cumulus" } -cumulus-primitives = { git = "https://github.com/paritytech/cumulus" } +cumulus-consensus = { git = "https://github.com/paritytech/cumulus", rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } +cumulus-collator = { git = "https://github.com/paritytech/cumulus", rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } +cumulus-network = { git = "https://github.com/paritytech/cumulus", rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } +cumulus-primitives = { git = "https://github.com/paritytech/cumulus", rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } +cumulus-service = { git = "https://github.com/paritytech/cumulus", rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } # Polkadot dependencies polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } diff --git a/node/src/command.rs b/node/src/command.rs index 572d04f3..f9fb94cc 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -10,8 +10,8 @@ use log::info; use parachain_runtime::Block; use polkadot_parachain::primitives::AccountIdConversion; use sc_cli::{ - ChainSpec, CliConfiguration, Error, ImportParams, KeystoreParams, NetworkParams, Result, - RuntimeVersion, SharedParams, SubstrateCli, + ChainSpec, CliConfiguration, ImportParams, KeystoreParams, NetworkParams, Result, + RuntimeVersion, SharedParams, SubstrateCli, DefaultConfigurationValues, }; use sc_service::config::{BasePath, PrometheusConfig}; use sp_core::hexdisplay::HexDisplay; @@ -233,7 +233,7 @@ pub fn run() -> Result<()> { if cli.run.base.validator { "yes" } else { "no" } ); - crate::service::run_collator( + crate::service::run_node( config, key, polkadot_config, @@ -246,7 +246,25 @@ pub fn run() -> Result<()> { } } -impl CliConfiguration for RelayChainCli { +impl DefaultConfigurationValues for RelayChainCli { + fn p2p_listen_port() -> u16 { + 30334 + } + + fn rpc_ws_listen_port() -> u16 { + 9945 + } + + fn rpc_http_listen_port() -> u16 { + 9934 + } + + fn prometheus_listen_port() -> u16 { + 9616 + } +} + +impl CliConfiguration for RelayChainCli { fn shared_params(&self) -> &SharedParams { self.base.base.shared_params() } @@ -270,59 +288,20 @@ impl CliConfiguration for RelayChainCli { .or_else(|| self.base_path.clone().map(Into::into))) } - fn rpc_http(&self) -> Result> { - let rpc_external = self.base.base.rpc_external; - let unsafe_rpc_external = self.base.base.unsafe_rpc_external; - let validator = self.base.base.validator; - let rpc_port = self.base.base.rpc_port; - // copied directly from substrate - let rpc_interface: &str = interface_str(rpc_external, unsafe_rpc_external, validator)?; - - Ok(Some(parse_address( - &format!("{}:{}", rpc_interface, 9934), - rpc_port, - )?)) + fn rpc_http(&self, default_listen_port: u16) -> Result> { + self.base.base.rpc_http(default_listen_port) } fn rpc_ipc(&self) -> Result> { self.base.base.rpc_ipc() } - fn rpc_ws(&self) -> Result> { - let ws_external = self.base.base.ws_external; - let unsafe_ws_external = self.base.base.unsafe_ws_external; - let validator = self.base.base.validator; - let ws_port = self.base.base.ws_port; - // copied directly from substrate - let ws_interface: &str = interface_str(ws_external, unsafe_ws_external, validator)?; - - Ok(Some(parse_address( - &format!("{}:{}", ws_interface, 9945), - ws_port, - )?)) + fn rpc_ws(&self, default_listen_port: u16) -> Result> { + self.base.base.rpc_ws(default_listen_port) } - fn prometheus_config(&self) -> Result> { - let no_prometheus = self.base.base.no_prometheus; - let prometheus_external = self.base.base.prometheus_external; - let prometheus_port = self.base.base.prometheus_port; - - if no_prometheus { - Ok(None) - } else { - let prometheus_interface: &str = if prometheus_external { - "0.0.0.0" - } else { - "127.0.0.1" - }; - - Ok(Some(PrometheusConfig::new_with_default_registry( - parse_address( - &format!("{}:{}", prometheus_interface, 9616), - prometheus_port, - )?, - ))) - } + fn prometheus_config(&self, default_listen_port: u16) -> Result> { + self.base.base.prometheus_config(default_listen_port) } fn init(&self) -> Result<()> { @@ -387,42 +366,3 @@ impl CliConfiguration for RelayChainCli { self.base.base.announce_block() } } - -// copied directly from substrate -fn parse_address(address: &str, port: Option) -> std::result::Result { - let mut address: SocketAddr = address - .parse() - .map_err(|_| format!("Invalid address: {}", address))?; - if let Some(port) = port { - address.set_port(port); - } - - Ok(address) -} - -// copied directly from substrate -fn interface_str( - is_external: bool, - is_unsafe_external: bool, - is_validator: bool, -) -> Result<&'static str> { - if is_external && is_validator { - return Err(Error::Input( - "--rpc-external and --ws-external options shouldn't be \ - used if the node is running as a validator. Use `--unsafe-rpc-external` if you understand \ - the risks. See the options description for more information." - .to_owned(), - )); - } - - if is_external || is_unsafe_external { - log::warn!( - "It isn't safe to expose RPC publicly without a proxy server that filters \ - available set of RPC methods." - ); - - Ok("0.0.0.0") - } else { - Ok("127.0.0.1") - } -} diff --git a/node/src/service.rs b/node/src/service.rs index e072c84c..9a331596 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -1,19 +1,18 @@ // Copyright 2020 Parity Technologies (UK) Ltd. use ansi_term::Color; -use cumulus_collator::{prepare_collator_config, CollatorBuilder}; -use cumulus_network::{DelayedBlockAnnounceValidator, JustifiedBlockAnnounceValidator}; -use polkadot_primitives::v0::{CollatorPair, Block as PBlock, Id as ParaId}; +use cumulus_network::DelayedBlockAnnounceValidator; +use cumulus_service::{ + prepare_node_config, start_collator, start_full_node, StartCollatorParams, StartFullNodeParams, +}; +use polkadot_primitives::v0::CollatorPair; use sc_executor::native_executor_instance; pub use sc_executor::NativeExecutor; use sc_informant::OutputFormat; -use sc_service::{Configuration, PartialComponents, TaskManager, TFullBackend, TFullClient, Role}; -use std::sync::Arc; -use sp_core::crypto::Pair; +use sc_service::{Configuration, PartialComponents, Role, TFullBackend, TFullClient, TaskManager}; +use sp_runtime::traits::BlakeTwo256; use sp_trie::PrefixedMemoryDB; -use sp_runtime::traits::{BlakeTwo256, Block as BlockT}; -use polkadot_service::{AbstractClient, RuntimeApiCollection}; -use sp_consensus::SyncOracle; +use std::sync::Arc; // Our native executor instance. native_executor_instance!( @@ -26,26 +25,40 @@ native_executor_instance!( /// /// Use this macro if you don't actually need the full service, but just the builder in order to /// be able to perform chain operations. -pub fn new_partial(config: &mut Configuration) -> Result< +pub fn new_partial( + config: &mut Configuration, +) -> Result< PartialComponents< - TFullClient, + TFullClient< + parachain_runtime::opaque::Block, + parachain_runtime::RuntimeApi, + crate::service::Executor, + >, TFullBackend, (), - sp_consensus::import_queue::BasicQueue>, - sc_transaction_pool::FullPool>, + sp_consensus::import_queue::BasicQueue< + parachain_runtime::opaque::Block, + PrefixedMemoryDB, + >, + sc_transaction_pool::FullPool< + parachain_runtime::opaque::Block, + TFullClient< + parachain_runtime::opaque::Block, + parachain_runtime::RuntimeApi, + crate::service::Executor, + >, + >, (), >, sc_service::Error, -> -{ +> { let inherent_data_providers = sp_inherents::InherentDataProviders::new(); - let (client, backend, keystore, task_manager) = - sc_service::new_full_parts::< - parachain_runtime::opaque::Block, - parachain_runtime::RuntimeApi, - crate::service::Executor, - >(&config)?; + let (client, backend, keystore, task_manager) = sc_service::new_full_parts::< + parachain_runtime::opaque::Block, + parachain_runtime::RuntimeApi, + crate::service::Executor, + >(&config)?; let client = Arc::new(client); //let select_chain = sc_consensus::LongestChain::new(backend.clone()); @@ -82,24 +95,30 @@ pub fn new_partial(config: &mut Configuration) -> Result< Ok(params) } -/// Run a collator node with the given parachain `Configuration` and relaychain `Configuration` +/// Run a node with the given parachain `Configuration` and relay chain `Configuration` /// /// This function blocks until done. -pub fn run_collator( +pub fn run_node( parachain_config: Configuration, - key: Arc, + collator_key: Arc, mut polkadot_config: polkadot_collator::Configuration, id: polkadot_primitives::v0::Id, validator: bool, ) -> sc_service::error::Result<( TaskManager, - Arc>, + Arc< + TFullClient< + parachain_runtime::opaque::Block, + parachain_runtime::RuntimeApi, + crate::service::Executor, + >, + >, )> { if matches!(parachain_config.role, Role::Light) { return Err("Light client not supported!".into()); } - let mut parachain_config = prepare_collator_config(parachain_config); + let mut parachain_config = prepare_node_config(parachain_config); parachain_config.informant_output_format = OutputFormat { enable_color: true, @@ -111,7 +130,8 @@ pub fn run_collator( }; let params = new_partial(&mut parachain_config)?; - params.inherent_data_providers + params + .inherent_data_providers .register_provider(sp_timestamp::InherentDataProvider) .unwrap(); @@ -140,23 +160,24 @@ pub fn run_collator( finality_proof_provider: None, })?; - - let _rpc_handlers = sc_service::spawn_tasks(sc_service::SpawnTasksParams { - on_demand: None, - remote_blockchain: None, - rpc_extensions_builder: Box::new(|_| ()), - client: client.clone(), - transaction_pool: transaction_pool.clone(), - task_manager: &mut task_manager, - telemetry_connection_sinks: Default::default(), - config: parachain_config, - keystore: params.keystore, - backend, - network: network.clone(), - network_status_sinks, - system_rpc_tx, + sc_service::spawn_tasks(sc_service::SpawnTasksParams { + on_demand: None, + remote_blockchain: None, + rpc_extensions_builder: Box::new(|_| ()), + client: client.clone(), + transaction_pool: transaction_pool.clone(), + task_manager: &mut task_manager, + telemetry_connection_sinks: Default::default(), + config: parachain_config, + keystore: params.keystore, + backend, + network: network.clone(), + network_status_sinks, + system_rpc_tx, })?; + let announce_block = Arc::new(move |hash, data| network.announce_block(hash, data)); + if validator { let proposer_factory = sc_basic_authorship::ProposerFactory::new( client.clone(), @@ -164,76 +185,36 @@ pub fn run_collator( prometheus_registry.as_ref(), ); - let block_import = client.clone(); - let announce_block = Arc::new(move |hash, data| network.announce_block(hash, data)); - let builder = CollatorBuilder::new( + let params = StartCollatorParams { + para_id: id, + block_import: client.clone(), proposer_factory, - params.inherent_data_providers, - block_import, - client.clone(), - id, - client.clone(), + inherent_data_providers: params.inherent_data_providers, + block_status: client.clone(), announce_block, + client: client.clone(), block_announce_validator, - ); - - let (polkadot_future, polkadot_task_manager) = - polkadot_collator::start_collator(builder, id, key, polkadot_config)?; - - task_manager - .spawn_essential_handle() - .spawn("polkadot", polkadot_future); + task_manager: &mut task_manager, + polkadot_config, + collator_key, + }; - task_manager.add_child(polkadot_task_manager); + start_collator(params)?; } else { - let is_light = matches!(polkadot_config.role, Role::Light); - let (polkadot_task_manager, client, handles) = if is_light { - Err("Light client not supported.".into()) - } else { - polkadot_service::build_full( - polkadot_config, - Some((key.public(), id)), - None, - false, - 6000, - None, - ) - }?; - let polkadot_network = handles.polkadot_network.expect("polkadot service is started; qed"); - client.execute_with(SetDelayedBlockAnnounceValidator { + let params = StartFullNodeParams { + client: client.clone(), + announce_block, + polkadot_config, + collator_key, block_announce_validator, + task_manager: &mut task_manager, para_id: id, - polkadot_sync_oracle: Box::new(polkadot_network), - }); + }; - task_manager.add_child(polkadot_task_manager); + start_full_node(params)?; } start_network.start_network(); Ok((task_manager, client)) } - -struct SetDelayedBlockAnnounceValidator { - block_announce_validator: DelayedBlockAnnounceValidator, - para_id: ParaId, - polkadot_sync_oracle: Box, -} - -impl polkadot_service::ExecuteWithClient for SetDelayedBlockAnnounceValidator { - type Output = (); - - fn execute_with_client(self, client: Arc) -> Self::Output - where>::StateBackend: sp_api::StateBackend, - Backend: sc_client_api::Backend, - Backend::State: sp_api::StateBackend, - Api: RuntimeApiCollection, - Client: AbstractClient + 'static - { - self.block_announce_validator.set(Box::new(JustifiedBlockAnnounceValidator::new( - client, - self.para_id, - self.polkadot_sync_oracle, - ))); - } -} diff --git a/pallets/parachain-info/Cargo.toml b/pallets/parachain-info/Cargo.toml index 665e5451..f43243ba 100644 --- a/pallets/parachain-info/Cargo.toml +++ b/pallets/parachain-info/Cargo.toml @@ -11,7 +11,7 @@ serde = { version = "1.0.101", optional = true, features = ["derive"] } frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false } +cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } [features] default = ["std"] diff --git a/pallets/token-dealer/Cargo.toml b/pallets/token-dealer/Cargo.toml index 26e1b52a..f74bd815 100644 --- a/pallets/token-dealer/Cargo.toml +++ b/pallets/token-dealer/Cargo.toml @@ -11,8 +11,8 @@ frame-support = { git = "https://github.com/paritytech/substrate", default-featu frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } # Cumulus dependencies -cumulus-upward-message = { git = "https://github.com/paritytech/cumulus", default-features = false } -cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false } +cumulus-upward-message = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } +cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } # Polkadot dependencies polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch", default-features = false } diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 6ce85bac..13415ed0 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -35,11 +35,11 @@ pallet-sudo = { git = "https://github.com/paritytech/substrate", default-feature pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } # Cumulus dependencies -cumulus-runtime = { git = "https://github.com/paritytech/cumulus", default-features = false } -cumulus-parachain-upgrade = { git = "https://github.com/paritytech/cumulus", default-features = false } -cumulus-message-broker = { git = "https://github.com/paritytech/cumulus", default-features = false } -cumulus-upward-message = { git = "https://github.com/paritytech/cumulus", default-features = false } -cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false } +cumulus-runtime = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } +cumulus-parachain-upgrade = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } +cumulus-message-broker = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } +cumulus-upward-message = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } +cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } [build-dependencies] wasm-builder-runner = { package = "substrate-wasm-builder-runner", version = "1.0.6" } From 03edb9bad8d84ef53be8e51fe6de38bbbdb5e8f9 Mon Sep 17 00:00:00 2001 From: Ricardo Rius <9488369+riusricardo@users.noreply.github.com> Date: Mon, 10 Aug 2020 23:58:47 +0200 Subject: [PATCH 06/91] Update README.md Co-authored-by: Dan Forbes --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index be9e7cc6..fd6eb173 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,7 @@ Polkadot (rococo-branch): Substrate Parachain Template: ``` +# this command assumes the chain spec is in a directory named polkadot that is a sibling of the working directory ./target/release/parachain-collator -d local-test --validator --ws-port 9945 --parachain-id 200 -- --chain ../polkadot/rococo_local.json ``` From 712fe0472b5893da7b9eeb613c1e2ee57855e06b Mon Sep 17 00:00:00 2001 From: Ricardo Rius Date: Wed, 19 Aug 2020 11:36:24 +0200 Subject: [PATCH 07/91] Update to Cumulus 35f60b1 --- Cargo.lock | 362 +++++++++++++++++++----------- README.md | 26 +-- node/Cargo.toml | 33 +-- node/src/chain_spec.rs | 31 ++- node/src/command.rs | 46 ++-- node/src/service.rs | 132 ++++++----- pallets/parachain-info/Cargo.toml | 2 +- pallets/parachain-info/src/lib.rs | 2 +- pallets/token-dealer/Cargo.toml | 4 +- pallets/token-dealer/src/lib.rs | 5 +- runtime/Cargo.toml | 10 +- runtime/src/lib.rs | 18 +- 12 files changed, 408 insertions(+), 263 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f177542d..c59262cd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -230,17 +230,64 @@ dependencies = [ "futures-core", ] +[[package]] +name = "async-executor" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90f47c78ea98277cb1f5e6f60ba4fc762f5eafe9f6511bc2f7dfd8b75c225650" +dependencies = [ + "async-io", + "futures-lite", + "multitask", + "parking 1.0.6", + "scoped-tls", + "waker-fn", +] + +[[package]] +name = "async-io" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ae22a338d28c75b53702b66f77979062cb29675db376d99e451af4fa79dedb3" +dependencies = [ + "cfg-if", + "concurrent-queue", + "futures-lite", + "libc", + "once_cell", + "parking 2.0.0", + "polling", + "socket2", + "vec-arena", + "wepoll-sys-stjepang", + "winapi 0.3.9", +] + +[[package]] +name = "async-mutex" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20e85981fc34e84cdff3fc2c9219189752633fdc538a06df8b5ac45b68a4f3a9" +dependencies = [ + "event-listener", +] + [[package]] name = "async-std" -version = "1.6.2" +version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00d68a33ebc8b57800847d00787307f84a562224a14db069b0acefe4c2abbf5d" +checksum = "46c8da367da62b8ff2313c406c9ac091c1b31d67a165becdd2de380d846260f7" dependencies = [ + "async-executor", + "async-io", + "async-mutex", "async-task", + "blocking", "crossbeam-utils", "futures-channel", "futures-core", "futures-io", + "futures-lite", "futures-timer 3.0.2", "kv-log-macro", "log 0.4.11", @@ -250,7 +297,6 @@ dependencies = [ "pin-project-lite", "pin-utils", "slab", - "smol", "wasm-bindgen-futures", ] @@ -475,15 +521,14 @@ dependencies = [ [[package]] name = "blocking" -version = "0.4.7" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2468ff7bf85066b4a3678fede6fe66db31846d753ff0adfbfab2c6a6e81612b" +checksum = "ea5800d29218fea137b0880387e5948694a23c93fcdde157006966693a865c7c" dependencies = [ "async-channel", "atomic-waker", "futures-lite", "once_cell", - "parking", "waker-fn", ] @@ -604,9 +649,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.13" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6" +checksum = "942f72db697d8767c22d46a598e01f2d3b475501ea43d0db4f16d90259182d0b" dependencies = [ "num-integer", "num-traits 0.2.12", @@ -626,9 +671,9 @@ dependencies = [ [[package]] name = "clap" -version = "2.33.2" +version = "2.33.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10040cdf04294b565d9e0319955430099ec3813a64c952b86a41200ad714ae48" +checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" dependencies = [ "ansi_term 0.11.0", "atty", @@ -648,6 +693,15 @@ dependencies = [ "bitflags", ] +[[package]] +name = "cloudabi" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4344512281c643ae7638bbabc3af17a11307803ec8f0fcad9fae512a8bf36467" +dependencies = [ + "bitflags", +] + [[package]] name = "concurrent-queue" version = "1.2.2" @@ -729,7 +783,7 @@ dependencies = [ "log 0.4.11", "regalloc", "serde", - "smallvec 1.4.1", + "smallvec 1.4.2", "target-lexicon", "thiserror", ] @@ -767,7 +821,7 @@ checksum = "2ef419efb4f94ecc02e5d9fbcc910d2bb7f0040e2de570e63a454f883bc891d6" dependencies = [ "cranelift-codegen", "log 0.4.11", - "smallvec 1.4.1", + "smallvec 1.4.2", "target-lexicon", ] @@ -892,7 +946,7 @@ dependencies = [ [[package]] name = "cumulus-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=96da14c14fb785e106bb89a18c9dedaf2f789d2c#96da14c14fb785e106bb89a18c9dedaf2f789d2c" +source = "git+https://github.com/paritytech/cumulus?rev=35f60b1e90145714730d372b5067d9c392884ac9#35f60b1e90145714730d372b5067d9c392884ac9" dependencies = [ "cumulus-consensus", "cumulus-network", @@ -920,7 +974,7 @@ dependencies = [ [[package]] name = "cumulus-consensus" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=96da14c14fb785e106bb89a18c9dedaf2f789d2c#96da14c14fb785e106bb89a18c9dedaf2f789d2c" +source = "git+https://github.com/paritytech/cumulus?rev=35f60b1e90145714730d372b5067d9c392884ac9#35f60b1e90145714730d372b5067d9c392884ac9" dependencies = [ "futures 0.3.5", "log 0.4.11", @@ -942,7 +996,7 @@ dependencies = [ [[package]] name = "cumulus-message-broker" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=96da14c14fb785e106bb89a18c9dedaf2f789d2c#96da14c14fb785e106bb89a18c9dedaf2f789d2c" +source = "git+https://github.com/paritytech/cumulus?rev=35f60b1e90145714730d372b5067d9c392884ac9#35f60b1e90145714730d372b5067d9c392884ac9" dependencies = [ "cumulus-primitives", "cumulus-upward-message", @@ -958,7 +1012,7 @@ dependencies = [ [[package]] name = "cumulus-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=96da14c14fb785e106bb89a18c9dedaf2f789d2c#96da14c14fb785e106bb89a18c9dedaf2f789d2c" +source = "git+https://github.com/paritytech/cumulus?rev=35f60b1e90145714730d372b5067d9c392884ac9#35f60b1e90145714730d372b5067d9c392884ac9" dependencies = [ "cumulus-primitives", "futures 0.3.5", @@ -980,7 +1034,7 @@ dependencies = [ [[package]] name = "cumulus-parachain-upgrade" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=96da14c14fb785e106bb89a18c9dedaf2f789d2c#96da14c14fb785e106bb89a18c9dedaf2f789d2c" +source = "git+https://github.com/paritytech/cumulus?rev=35f60b1e90145714730d372b5067d9c392884ac9#35f60b1e90145714730d372b5067d9c392884ac9" dependencies = [ "cumulus-primitives", "cumulus-runtime", @@ -1001,7 +1055,7 @@ dependencies = [ [[package]] name = "cumulus-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=96da14c14fb785e106bb89a18c9dedaf2f789d2c#96da14c14fb785e106bb89a18c9dedaf2f789d2c" +source = "git+https://github.com/paritytech/cumulus?rev=35f60b1e90145714730d372b5067d9c392884ac9#35f60b1e90145714730d372b5067d9c392884ac9" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -1016,12 +1070,11 @@ dependencies = [ [[package]] name = "cumulus-runtime" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=96da14c14fb785e106bb89a18c9dedaf2f789d2c#96da14c14fb785e106bb89a18c9dedaf2f789d2c" +source = "git+https://github.com/paritytech/cumulus?rev=35f60b1e90145714730d372b5067d9c392884ac9#35f60b1e90145714730d372b5067d9c392884ac9" dependencies = [ "cumulus-primitives", "frame-executive", "hash-db", - "hashbrown 0.8.2", "memory-db", "parity-scale-codec", "polkadot-parachain", @@ -1036,7 +1089,7 @@ dependencies = [ [[package]] name = "cumulus-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=96da14c14fb785e106bb89a18c9dedaf2f789d2c#96da14c14fb785e106bb89a18c9dedaf2f789d2c" +source = "git+https://github.com/paritytech/cumulus?rev=35f60b1e90145714730d372b5067d9c392884ac9#35f60b1e90145714730d372b5067d9c392884ac9" dependencies = [ "cumulus-collator", "cumulus-consensus", @@ -1070,7 +1123,7 @@ dependencies = [ [[package]] name = "cumulus-upward-message" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=96da14c14fb785e106bb89a18c9dedaf2f789d2c#96da14c14fb785e106bb89a18c9dedaf2f789d2c" +source = "git+https://github.com/paritytech/cumulus?rev=35f60b1e90145714730d372b5067d9c392884ac9#35f60b1e90145714730d372b5067d9c392884ac9" dependencies = [ "kusama-runtime", "polkadot-core-primitives", @@ -1250,9 +1303,9 @@ dependencies = [ [[package]] name = "either" -version = "1.5.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" +checksum = "cd56b59865bce947ac5958779cfa508f6c3b9497cc762b7e24a12d11ccde2c4f" [[package]] name = "enum-primitive-derive" @@ -1574,7 +1627,7 @@ dependencies = [ "parity-scale-codec", "paste", "serde", - "smallvec 1.4.1", + "smallvec 1.4.2", "sp-arithmetic", "sp-core", "sp-inherents", @@ -1775,15 +1828,15 @@ checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789" [[package]] name = "futures-lite" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe71459749b2e8e66fb95df721b22fa08661ad384a0c5b519e11d3893b4692a" +checksum = "97999970129b808f0ccba93211201d431fcc12d7e1ffae03a61b5cedd1a7ced2" dependencies = [ "fastrand", "futures-core", "futures-io", "memchr", - "parking", + "parking 2.0.0", "pin-project-lite", "waker-fn", ] @@ -2330,6 +2383,12 @@ dependencies = [ "serde", ] +[[package]] +name = "instant" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b141fdc7836c525d4d594027d318c84161ca17aaf8113ab1f81ab93ae897485" + [[package]] name = "integer-sqrt" version = "0.1.3" @@ -2550,7 +2609,7 @@ dependencies = [ [[package]] name = "kusama-runtime" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "bitvec", "frame-executive", @@ -2594,7 +2653,7 @@ dependencies = [ "rustc-hex", "serde", "serde_derive", - "smallvec 1.4.1", + "smallvec 1.4.2", "sp-api", "sp-authority-discovery", "sp-block-builder", @@ -2629,7 +2688,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0315ef2f688e33844400b31f11c263f2b3dc21d8b9355c6891c5f185fae43f9a" dependencies = [ "parity-util-mem", - "smallvec 1.4.1", + "smallvec 1.4.2", ] [[package]] @@ -2658,7 +2717,7 @@ dependencies = [ "parking_lot 0.10.2", "regex", "rocksdb", - "smallvec 1.4.1", + "smallvec 1.4.2", ] [[package]] @@ -2669,9 +2728,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "lazycell" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "leb128" @@ -2746,7 +2805,7 @@ dependencies = [ "parity-multiaddr", "parking_lot 0.10.2", "pin-project", - "smallvec 1.4.1", + "smallvec 1.4.2", "wasm-timer", ] @@ -2777,7 +2836,7 @@ dependencies = [ "ring", "rw-stream-sink", "sha2 0.8.2", - "smallvec 1.4.1", + "smallvec 1.4.2", "thiserror", "unsigned-varint 0.4.0", "void", @@ -2817,7 +2876,7 @@ dependencies = [ "log 0.4.11", "prost", "prost-build", - "smallvec 1.4.1", + "smallvec 1.4.2", "wasm-timer", ] @@ -2841,7 +2900,7 @@ dependencies = [ "prost-build", "rand 0.7.3", "sha2 0.8.2", - "smallvec 1.4.1", + "smallvec 1.4.2", "uint", "unsigned-varint 0.4.0", "void", @@ -2865,7 +2924,7 @@ dependencies = [ "log 0.4.11", "net2", "rand 0.7.3", - "smallvec 1.4.1", + "smallvec 1.4.2", "void", "wasm-timer", ] @@ -2933,7 +2992,7 @@ dependencies = [ "libp2p-core", "log 0.4.11", "rand 0.7.3", - "smallvec 1.4.1", + "smallvec 1.4.2", "void", "wasm-timer", ] @@ -3031,9 +3090,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.0.25" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe" +checksum = "af67924b8dd885cccea261866c8ce5b74d239d272e154053ff927dae839f5ae9" dependencies = [ "cc", "libc", @@ -3086,6 +3145,15 @@ dependencies = [ "scopeguard 1.1.0", ] +[[package]] +name = "lock_api" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28247cc5a5be2f05fbcd76dd0cf2c7d3b5400cb978a28042abcd4fa0b3f8261c" +dependencies = [ + "scopeguard 1.1.0", +] + [[package]] name = "log" version = "0.3.9" @@ -3328,10 +3396,21 @@ dependencies = [ "futures 0.3.5", "log 0.4.11", "pin-project", - "smallvec 1.4.1", + "smallvec 1.4.2", "unsigned-varint 0.4.0", ] +[[package]] +name = "multitask" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c09c35271e7dcdb5f709779111f2c8e8ab8e06c1b587c1c6a9e179d865aaa5b4" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand", +] + [[package]] name = "nalgebra" version = "0.18.1" @@ -3532,11 +3611,11 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d" +checksum = "260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad" dependencies = [ - "parking_lot 0.10.2", + "parking_lot 0.11.0", ] [[package]] @@ -4003,7 +4082,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", "serde", - "smallvec 1.4.1", + "smallvec 1.4.2", "sp-core", "sp-io", "sp-runtime", @@ -4127,11 +4206,15 @@ dependencies = [ "sc-transaction-pool", "serde", "sp-api", + "sp-block-builder", + "sp-blockchain", "sp-consensus", "sp-core", "sp-inherents", "sp-io", + "sp-offchain", "sp-runtime", + "sp-session", "sp-timestamp", "sp-transaction-pool", "sp-trie", @@ -4284,7 +4367,7 @@ dependencies = [ "parity-util-mem-derive", "parking_lot 0.10.2", "primitive-types", - "smallvec 1.4.1", + "smallvec 1.4.2", "winapi 0.3.9", ] @@ -4311,6 +4394,12 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6cb300f271742d4a2a66c01b6b2fa0c83dfebd2e0bf11addb879a3547b4ed87c" +[[package]] +name = "parking" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" + [[package]] name = "parking_lot" version = "0.7.1" @@ -4342,6 +4431,17 @@ dependencies = [ "parking_lot_core 0.7.2", ] +[[package]] +name = "parking_lot" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4893845fa2ca272e647da5d0e46660a314ead9c2fdd9a883aabc32e481a8733" +dependencies = [ + "instant", + "lock_api 0.4.1", + "parking_lot_core 0.8.0", +] + [[package]] name = "parking_lot_core" version = "0.4.0" @@ -4362,7 +4462,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" dependencies = [ "cfg-if", - "cloudabi", + "cloudabi 0.0.3", "libc", "redox_syscall", "rustc_version", @@ -4377,10 +4477,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3" dependencies = [ "cfg-if", - "cloudabi", + "cloudabi 0.0.3", "libc", "redox_syscall", - "smallvec 1.4.1", + "smallvec 1.4.2", + "winapi 0.3.9", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c361aa727dd08437f2f1447be8b59a33b0edd15e0fcee698f935613d9efbca9b" +dependencies = [ + "cfg-if", + "cloudabi 0.1.0", + "instant", + "libc", + "redox_syscall", + "smallvec 1.4.2", "winapi 0.3.9", ] @@ -4494,7 +4609,7 @@ checksum = "feb3b2b1033b8a60b4da6ee470325f887758c95d5320f52f9ce0df055a55940e" [[package]] name = "polkadot-availability-store" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "derive_more 0.99.9", "exit-future 0.2.0", @@ -4521,7 +4636,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "frame-benchmarking-cli", "futures 0.3.5", @@ -4544,7 +4659,7 @@ dependencies = [ [[package]] name = "polkadot-collator" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "futures 0.3.5", "futures-timer 2.0.2", @@ -4571,7 +4686,7 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "0.7.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "parity-scale-codec", "sp-core", @@ -4582,7 +4697,7 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "derive_more 0.15.0", "parity-scale-codec", @@ -4595,7 +4710,7 @@ dependencies = [ [[package]] name = "polkadot-network" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "arrayvec 0.4.12", "bytes 0.5.6", @@ -4624,7 +4739,7 @@ dependencies = [ [[package]] name = "polkadot-parachain" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "derive_more 0.99.9", "futures 0.3.5", @@ -4645,7 +4760,7 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "bitvec", "frame-system", @@ -4668,7 +4783,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "jsonrpc-core", "pallet-transaction-payment-rpc", @@ -4695,7 +4810,7 @@ dependencies = [ [[package]] name = "polkadot-runtime" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "bitvec", "frame-executive", @@ -4738,7 +4853,7 @@ dependencies = [ "rustc-hex", "serde", "serde_derive", - "smallvec 1.4.1", + "smallvec 1.4.2", "sp-api", "sp-authority-discovery", "sp-block-builder", @@ -4760,7 +4875,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "bitvec", "frame-support", @@ -4794,7 +4909,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "bitvec", "frame-support", @@ -4825,7 +4940,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "frame-benchmarking", "frame-system-rpc-runtime-api", @@ -4885,7 +5000,7 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -4895,7 +5010,7 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "bitvec", "frame-executive", @@ -4928,7 +5043,7 @@ dependencies = [ "rustc-hex", "serde", "serde_derive", - "smallvec 1.4.1", + "smallvec 1.4.2", "sp-api", "sp-authority-discovery", "sp-block-builder", @@ -4949,7 +5064,7 @@ dependencies = [ [[package]] name = "polkadot-test-runtime-client" version = "2.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "futures 0.3.5", "pallet-timestamp", @@ -4973,7 +5088,7 @@ dependencies = [ [[package]] name = "polkadot-test-service" version = "0.8.2" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "frame-benchmarking", "frame-system", @@ -5020,7 +5135,7 @@ dependencies = [ [[package]] name = "polkadot-validation" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "ansi_term 0.12.1", "bitvec", @@ -5056,6 +5171,18 @@ dependencies = [ "tokio 0.2.22", ] +[[package]] +name = "polling" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e09dffb745feffca5be3dea51c02b7b368c4597ab0219a82acaf9799ab3e0d1" +dependencies = [ + "cfg-if", + "libc", + "wepoll-sys-stjepang", + "winapi 0.3.9", +] + [[package]] name = "poly1305" version = "0.6.0" @@ -5337,7 +5464,7 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9" dependencies = [ - "cloudabi", + "cloudabi 0.0.3", "fuchsia-cprng", "libc", "rand_core 0.3.1", @@ -5465,7 +5592,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" dependencies = [ - "cloudabi", + "cloudabi 0.0.3", "fuchsia-cprng", "libc", "rand_core 0.4.2", @@ -5575,7 +5702,7 @@ version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a415a013dd7c5d4221382329a5a3482566da675737494935cbbbcdec04662f9d" dependencies = [ - "smallvec 1.4.1", + "smallvec 1.4.2", ] [[package]] @@ -5606,7 +5733,7 @@ checksum = "b9ba8aaf5fe7cf307c6dbdaeed85478961d29e25e3bee5169e11b92fa9f027a8" dependencies = [ "log 0.4.11", "rustc-hash", - "smallvec 1.4.1", + "smallvec 1.4.2", ] [[package]] @@ -5709,7 +5836,7 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "bitvec", "frame-executive", @@ -5756,7 +5883,7 @@ dependencies = [ "rustc-hex", "serde", "serde_derive", - "smallvec 1.4.1", + "smallvec 1.4.2", "sp-api", "sp-authority-discovery", "sp-block-builder", @@ -5831,9 +5958,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.18.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cac94b333ee2aac3284c5b8a1b7fb4dd11cba88c244e3fe33cdbd047af0eb693" +checksum = "5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81" dependencies = [ "base64 0.12.3", "log 0.4.11", @@ -6887,18 +7014,18 @@ checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" [[package]] name = "serde" -version = "1.0.114" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3" +checksum = "e54c9a88f2da7238af84b5101443f0c0d0a3bbdc455e34a5c9497b1903ed55d5" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.114" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e" +checksum = "609feed1d0a73cc36a0182a840a9b37b4a82f0b1150369f0536a9e3f2a31dc48" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", @@ -7079,30 +7206,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3757cb9d89161a2f24e1cf78efa0c1fcff485d18e3f55e0aa3480824ddaa0f3f" - -[[package]] -name = "smol" -version = "0.1.18" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "620cbb3c6e34da57d3a248cda0cd01cd5848164dc062e764e65d06fe3ea7aed5" -dependencies = [ - "async-task", - "blocking", - "concurrent-queue", - "fastrand", - "futures-io", - "futures-util", - "libc", - "once_cell", - "scoped-tls", - "slab", - "socket2", - "wepoll-sys-stjepang", - "winapi 0.3.9", -] +checksum = "fbee7696b84bbf3d89a1c2eccff0850e3047ed46bfcd2e92c29a2d074d57e252" [[package]] name = "snow" @@ -7643,7 +7749,7 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.10.2", "rand 0.7.3", - "smallvec 1.4.1", + "smallvec 1.4.2", "sp-core", "sp-externalities", "sp-panic-handler", @@ -8022,7 +8128,7 @@ dependencies = [ "log 0.4.11", "region", "rustc-demangle", - "smallvec 1.4.1", + "smallvec 1.4.2", "target-lexicon", "wasmparser 0.59.0", "wasmtime-environ", @@ -8244,9 +8350,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed" +checksum = "238ce071d267c5710f9d31451efec16c5ee22de34df17cc05e56cbc92e967117" [[package]] name = "tokio" @@ -8562,9 +8668,9 @@ checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" [[package]] name = "tracing" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0aae59226cf195d8e74d4b34beae1859257efb4e5fed3f147d2dc2c7d372178" +checksum = "6d79ca061b032d6ce30c660fded31189ca0b9922bf483cd70759f13a2d86786c" dependencies = [ "cfg-if", "log 0.4.11", @@ -8574,9 +8680,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0693bf8d6f2bf22c690fc61a9d21ac69efdbb894a17ed596b9af0f01e64b84b" +checksum = "80e0ccfc3378da0cce270c946b676a376943f5cd16aeba64568e7939806f4ada" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", @@ -8585,9 +8691,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d593f98af59ebc017c0648f0117525db358745a8894a8d684e185ba3f45954f9" +checksum = "db63662723c316b43ca36d833707cc93dff82a02ba3d7e354f342682cc8b3545" dependencies = [ "lazy_static", ] @@ -8608,7 +8714,7 @@ dependencies = [ "hashbrown 0.8.2", "log 0.4.11", "rustc-hex", - "smallvec 1.4.1", + "smallvec 1.4.2", ] [[package]] @@ -8652,9 +8758,9 @@ checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" [[package]] name = "uint" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "429ffcad8c8c15f874578c7337d156a3727eb4a1c2374c0ae937ad9a9b748c80" +checksum = "9db035e67dfaf7edd9aebfe8676afcd63eed53c8a4044fed514c8cccf1835177" dependencies = [ "byteorder", "crunchy", @@ -8781,6 +8887,12 @@ version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c" +[[package]] +name = "vec-arena" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17dfb54bf57c9043f4616cb03dab30eff012cc26631b797d8354b916708db919" + [[package]] name = "vec_map" version = "0.8.2" @@ -9090,18 +9202,18 @@ dependencies = [ [[package]] name = "wast" -version = "22.0.0" +version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe1220ed7f824992b426a76125a3403d048eaf0f627918e97ade0d9b9d510d20" +checksum = "26b080a48623c1b15193eac2e28c7b8d0e6b2e1c6c67ed46ddcd86063e78e504" dependencies = [ "leb128", ] [[package]] name = "wat" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f888158d9a4b7c39b859f72a435019835b64097c749f4f28d319004ca5a520b8" +checksum = "6c350d7431aa486488d28cdf75b57d59c02fab9cde20d93c52424510afe18ecc" dependencies = [ "wast", ] @@ -9156,7 +9268,7 @@ dependencies = [ [[package]] name = "westend-runtime" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#bb02af4c860940c070db47a0461e1bd406e88f39" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" dependencies = [ "bitvec", "frame-executive", @@ -9203,7 +9315,7 @@ dependencies = [ "rustc-hex", "serde", "serde_derive", - "smallvec 1.4.1", + "smallvec 1.4.2", "sp-api", "sp-authority-discovery", "sp-block-builder", diff --git a/README.md b/README.md index fd6eb173..16e91a6f 100644 --- a/README.md +++ b/README.md @@ -32,26 +32,6 @@ cargo build --release ## Run -### Single Staging Node Chain - -Purge any existing staging chain state: - -```bash -./target/release/parachain-collator purge-chain --chain staging -``` - -Start a staging chain: - -```bash -./target/release/parachain-collator --chain staging -``` - -Or, start a staging chain with detailed logging: - -```bash -RUST_LOG=debug RUST_BACKTRACE=1 ./target/release/parachain-collator -lruntime=debug --chain staging -``` - ### Local Testnet Polkadot (rococo-branch): @@ -68,6 +48,12 @@ Substrate Parachain Template: ./target/release/parachain-collator -d local-test --validator --ws-port 9945 --parachain-id 200 -- --chain ../polkadot/rococo_local.json ``` +Or, start a staging chain with detailed logging: + +```bash +RUST_LOG=debug RUST_BACKTRACE=1 ./target/release/parachain-collator -lruntime=debug --chain staging -- --chain ../polkadot/rococo_local.json +``` + If you want to see the multi-node consensus algorithm in action, refer to [our Start a Private Network tutorial](https://substrate.dev/docs/en/tutorials/start-a-private-network/). diff --git a/node/Cargo.toml b/node/Cargo.toml index 954f2cfe..5c5a051d 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -25,33 +25,38 @@ serde = { version = "1.0.101", features = ["derive"] } parachain-runtime = { path = "../runtime" } # Substrate dependencies -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } sc-cli = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } sc-executor = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } sc-service = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } sc-network = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", version = "0.8.0-rc5" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } sc-informant = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } + # Cumulus dependencies -cumulus-consensus = { git = "https://github.com/paritytech/cumulus", rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } -cumulus-collator = { git = "https://github.com/paritytech/cumulus", rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } -cumulus-network = { git = "https://github.com/paritytech/cumulus", rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } -cumulus-primitives = { git = "https://github.com/paritytech/cumulus", rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } -cumulus-service = { git = "https://github.com/paritytech/cumulus", rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } +cumulus-consensus = { git = "https://github.com/paritytech/cumulus", rev = '35f60b1e90145714730d372b5067d9c392884ac9' } +cumulus-collator = { git = "https://github.com/paritytech/cumulus", rev = '35f60b1e90145714730d372b5067d9c392884ac9' } +cumulus-network = { git = "https://github.com/paritytech/cumulus", rev = '35f60b1e90145714730d372b5067d9c392884ac9' } +cumulus-primitives = { git = "https://github.com/paritytech/cumulus", rev = '35f60b1e90145714730d372b5067d9c392884ac9' } +cumulus-service = { git = "https://github.com/paritytech/cumulus", rev = '35f60b1e90145714730d372b5067d9c392884ac9' } # Polkadot dependencies polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index 742e2e8b..1c186c99 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -6,7 +6,7 @@ use parachain_runtime::{ ParachainInfoConfig, WASM_BINARY, }; use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup}; -use sc_service::ChainType; +use sc_service::{ChainType, Properties}; use serde::{Deserialize, Serialize}; use sp_core::{sr25519, Pair, Public}; use sp_runtime::traits::{IdentifyAccount, Verify}; @@ -48,13 +48,18 @@ where AccountPublic::from(get_from_seed::(seed)).into_account() } -pub fn get_chain_spec(id: ParaId) -> ChainSpec { - ChainSpec::from_genesis( +pub fn get_chain_spec(id: ParaId) -> Result { + let mut properties = Properties::new(); + properties.insert("tokenSymbol".into(), "DEV".into()); + properties.insert("tokenDecimals".into(), 12.into()); + + Ok(ChainSpec::from_genesis( "Local Testnet", "local_testnet", ChainType::Local, move || { testnet_genesis( + WASM_BINARY, get_account_id_from_seed::("Alice"), vec![ get_account_id_from_seed::("Alice"), @@ -76,21 +81,26 @@ pub fn get_chain_spec(id: ParaId) -> ChainSpec { vec![], None, None, - None, + Some(properties), Extensions { relay_chain: "local_testnet".into(), para_id: id.into(), }, - ) + )) } -pub fn staging_test_net(id: ParaId) -> ChainSpec { - ChainSpec::from_genesis( +pub fn staging_test_net(id: ParaId) -> Result { + let mut properties = Properties::new(); + properties.insert("tokenSymbol".into(), "STG".into()); + properties.insert("tokenDecimals".into(), 12.into()); + + Ok(ChainSpec::from_genesis( "Staging Testnet", "staging_testnet", ChainType::Live, move || { testnet_genesis( + WASM_BINARY, get_account_id_from_seed::("Alice"), vec![get_account_id_from_seed::("Alice")], id, @@ -99,22 +109,23 @@ pub fn staging_test_net(id: ParaId) -> ChainSpec { Vec::new(), None, None, - None, + Some(properties), Extensions { relay_chain: "rococo_local_testnet".into(), para_id: id.into(), }, - ) + )) } fn testnet_genesis( + wasm_binary: &[u8], root_key: AccountId, endowed_accounts: Vec, id: ParaId, ) -> GenesisConfig { GenesisConfig { frame_system: Some(SystemConfig { - code: WASM_BINARY.to_vec(), + code: wasm_binary.to_vec(), changes_trie_config: Default::default(), }), pallet_balances: Some(BalancesConfig { diff --git a/node/src/command.rs b/node/src/command.rs index f9fb94cc..03f72404 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -10,14 +10,27 @@ use log::info; use parachain_runtime::Block; use polkadot_parachain::primitives::AccountIdConversion; use sc_cli::{ - ChainSpec, CliConfiguration, ImportParams, KeystoreParams, NetworkParams, Result, - RuntimeVersion, SharedParams, SubstrateCli, DefaultConfigurationValues, + ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, + NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli, }; use sc_service::config::{BasePath, PrometheusConfig}; use sp_core::hexdisplay::HexDisplay; use sp_runtime::traits::{Block as BlockT, Hash as HashT, Header as HeaderT, Zero}; use std::{io::Write, net::SocketAddr, sync::Arc}; +fn load_spec( + id: &str, + para_id: ParaId, +) -> std::result::Result, String> { + match id { + "staging" => Ok(Box::new(chain_spec::staging_test_net(para_id)?)), + "" => Ok(Box::new(chain_spec::get_chain_spec(para_id)?)), + path => Ok(Box::new(chain_spec::ChainSpec::from_json_file( + path.into(), + )?)), + } +} + impl SubstrateCli for Cli { fn impl_name() -> String { "Parachain Collator Template".into() @@ -50,17 +63,7 @@ impl SubstrateCli for Cli { } fn load_spec(&self, id: &str) -> std::result::Result, String> { - match id { - "staging" => Ok(Box::new(chain_spec::staging_test_net( - self.run.parachain_id.unwrap_or(200).into(), - ))), - "" => Ok(Box::new(chain_spec::get_chain_spec( - self.run.parachain_id.unwrap_or(200).into(), - ))), - path => Ok(Box::new(chain_spec::ChainSpec::from_json_file( - path.into(), - )?)), - } + load_spec(id, self.run.parachain_id.unwrap_or(200).into()) } fn native_runtime_version(_: &Box) -> &'static RuntimeVersion { @@ -153,7 +156,10 @@ pub fn run() -> Result<()> { let runner = cli.create_runner(subcommand)?; runner.run_subcommand(subcommand, |mut config| { - let params = crate::service::new_partial(&mut config)?; + let params = crate::service::new_partial::< + parachain_runtime::RuntimeApi, + crate::service::RuntimeExecutor, + >(&mut config)?; Ok(( params.client, @@ -166,14 +172,16 @@ pub fn run() -> Result<()> { Some(Subcommand::ExportGenesisState(params)) => { sc_cli::init_logger(""); - let block = - generate_genesis_state(&cli.load_spec(¶ms.chain.clone().unwrap_or_default())?)?; + let block = generate_genesis_state(&load_spec( + ¶ms.chain.clone().unwrap_or_default(), + params.parachain_id.into(), + )?)?; let header_hex = format!("0x{:?}", HexDisplay::from(&block.header().encode())); if let Some(output) = ¶ms.output { std::fs::write(output, header_hex)?; } else { - println!("{}", header_hex); + print!("{}", header_hex); } Ok(()) @@ -233,14 +241,14 @@ pub fn run() -> Result<()> { if cli.run.base.validator { "yes" } else { "no" } ); - crate::service::run_node( + crate::service::start_node( config, key, polkadot_config, id, cli.run.base.validator, ) - .map(|(x, _)| x) + .map(|r| r.0) }) } } diff --git a/node/src/service.rs b/node/src/service.rs index 9a331596..192399b8 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -6,17 +6,19 @@ use cumulus_service::{ prepare_node_config, start_collator, start_full_node, StartCollatorParams, StartFullNodeParams, }; use polkadot_primitives::v0::CollatorPair; +use parachain_runtime::opaque::Block; use sc_executor::native_executor_instance; pub use sc_executor::NativeExecutor; use sc_informant::OutputFormat; use sc_service::{Configuration, PartialComponents, Role, TFullBackend, TFullClient, TaskManager}; +use sp_api::ConstructRuntimeApi; use sp_runtime::traits::BlakeTwo256; use sp_trie::PrefixedMemoryDB; use std::sync::Arc; -// Our native executor instance. +// Native executor instance. native_executor_instance!( - pub Executor, + pub RuntimeExecutor, parachain_runtime::api::dispatch, parachain_runtime::native_version, ); @@ -25,48 +27,46 @@ native_executor_instance!( /// /// Use this macro if you don't actually need the full service, but just the builder in order to /// be able to perform chain operations. -pub fn new_partial( +pub fn new_partial( config: &mut Configuration, ) -> Result< PartialComponents< - TFullClient< - parachain_runtime::opaque::Block, - parachain_runtime::RuntimeApi, - crate::service::Executor, - >, - TFullBackend, + TFullClient, + TFullBackend, (), - sp_consensus::import_queue::BasicQueue< - parachain_runtime::opaque::Block, - PrefixedMemoryDB, - >, - sc_transaction_pool::FullPool< - parachain_runtime::opaque::Block, - TFullClient< - parachain_runtime::opaque::Block, - parachain_runtime::RuntimeApi, - crate::service::Executor, - >, - >, + sp_consensus::import_queue::BasicQueue>, + sc_transaction_pool::FullPool>, (), >, sc_service::Error, -> { +> +where + RuntimeApi: ConstructRuntimeApi> + + Send + + Sync + + 'static, + RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue + + sp_api::Metadata + + sp_session::SessionKeys + + sp_api::ApiExt< + Block, + Error = sp_blockchain::Error, + StateBackend = sc_client_api::StateBackendFor, Block>, + > + sp_offchain::OffchainWorkerApi + + sp_block_builder::BlockBuilder, + sc_client_api::StateBackendFor, Block>: sp_api::StateBackend, + Executor: sc_executor::NativeExecutionDispatch + 'static, +{ let inherent_data_providers = sp_inherents::InherentDataProviders::new(); - let (client, backend, keystore, task_manager) = sc_service::new_full_parts::< - parachain_runtime::opaque::Block, - parachain_runtime::RuntimeApi, - crate::service::Executor, - >(&config)?; + let (client, backend, keystore, task_manager) = + sc_service::new_full_parts::(&config)?; let client = Arc::new(client); - //let select_chain = sc_consensus::LongestChain::new(backend.clone()); let registry = config.prometheus_registry(); let transaction_pool = sc_transaction_pool::BasicPool::new_full( config.transaction_pool.clone(), - //std::sync::Arc::new(pool_api), config.prometheus_registry(), task_manager.spawn_handle(), client.clone(), @@ -95,25 +95,33 @@ pub fn new_partial( Ok(params) } -/// Run a node with the given parachain `Configuration` and relay chain `Configuration` +/// Start a node with the given parachain `Configuration` and relay chain `Configuration`. /// -/// This function blocks until done. -pub fn run_node( +/// This is the actual implementation that is abstract over the executor and the runtime api. +fn start_node_impl( parachain_config: Configuration, collator_key: Arc, mut polkadot_config: polkadot_collator::Configuration, id: polkadot_primitives::v0::Id, validator: bool, -) -> sc_service::error::Result<( - TaskManager, - Arc< - TFullClient< - parachain_runtime::opaque::Block, - parachain_runtime::RuntimeApi, - crate::service::Executor, - >, - >, -)> { +) -> sc_service::error::Result<(TaskManager, Arc>)> +where + RuntimeApi: ConstructRuntimeApi> + + Send + + Sync + + 'static, + RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue + + sp_api::Metadata + + sp_session::SessionKeys + + sp_api::ApiExt< + Block, + Error = sp_blockchain::Error, + StateBackend = sc_client_api::StateBackendFor, Block>, + > + sp_offchain::OffchainWorkerApi + + sp_block_builder::BlockBuilder, + sc_client_api::StateBackendFor, Block>: sp_api::StateBackend, + Executor: sc_executor::NativeExecutionDispatch + 'static, +{ if matches!(parachain_config.role, Role::Light) { return Err("Light client not supported!".into()); } @@ -129,7 +137,7 @@ pub fn run_node( prefix: format!("[{}] ", Color::Blue.bold().paint("Relaychain")), }; - let params = new_partial(&mut parachain_config)?; + let params = new_partial::(&mut parachain_config)?; params .inherent_data_providers .register_provider(sp_timestamp::InherentDataProvider) @@ -149,15 +157,15 @@ pub fn run_node( let import_queue = params.import_queue; let (network, network_status_sinks, system_rpc_tx, start_network) = sc_service::build_network(sc_service::BuildNetworkParams { - config: ¶chain_config, - client: client.clone(), - transaction_pool: transaction_pool.clone(), - spawn_handle: task_manager.spawn_handle(), - import_queue, - on_demand: None, - block_announce_validator_builder: Some(Box::new(block_announce_validator_builder)), - finality_proof_request_builder: None, - finality_proof_provider: None, + config: ¶chain_config, + client: client.clone(), + transaction_pool: transaction_pool.clone(), + spawn_handle: task_manager.spawn_handle(), + import_queue, + on_demand: None, + block_announce_validator_builder: Some(Box::new(block_announce_validator_builder)), + finality_proof_request_builder: None, + finality_proof_provider: None, })?; sc_service::spawn_tasks(sc_service::SpawnTasksParams { @@ -218,3 +226,23 @@ pub fn run_node( Ok((task_manager, client)) } + +/// Start a normal parachain node. +pub fn start_node( + parachain_config: Configuration, + collator_key: Arc, + polkadot_config: polkadot_collator::Configuration, + id: polkadot_primitives::v0::Id, + validator: bool, +) -> sc_service::error::Result<( + TaskManager, + Arc>, +)> { + start_node_impl::( + parachain_config, + collator_key, + polkadot_config, + id, + validator, + ) +} diff --git a/pallets/parachain-info/Cargo.toml b/pallets/parachain-info/Cargo.toml index f43243ba..e00c9f04 100644 --- a/pallets/parachain-info/Cargo.toml +++ b/pallets/parachain-info/Cargo.toml @@ -11,7 +11,7 @@ serde = { version = "1.0.101", optional = true, features = ["derive"] } frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } +cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '35f60b1e90145714730d372b5067d9c392884ac9' } [features] default = ["std"] diff --git a/pallets/parachain-info/src/lib.rs b/pallets/parachain-info/src/lib.rs index 39a65c44..51af72d0 100644 --- a/pallets/parachain-info/src/lib.rs +++ b/pallets/parachain-info/src/lib.rs @@ -11,7 +11,7 @@ use cumulus_primitives::ParaId; /// Configuration trait of this pallet. pub trait Trait: frame_system::Trait {} -impl Get for Module { +impl Get for Module { fn get() -> ParaId { Self::parachain_id() } diff --git a/pallets/token-dealer/Cargo.toml b/pallets/token-dealer/Cargo.toml index f74bd815..c1373b87 100644 --- a/pallets/token-dealer/Cargo.toml +++ b/pallets/token-dealer/Cargo.toml @@ -11,8 +11,8 @@ frame-support = { git = "https://github.com/paritytech/substrate", default-featu frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } # Cumulus dependencies -cumulus-upward-message = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } -cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } +cumulus-upward-message = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '35f60b1e90145714730d372b5067d9c392884ac9' } +cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '35f60b1e90145714730d372b5067d9c392884ac9' } # Polkadot dependencies polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch", default-features = false } diff --git a/pallets/token-dealer/src/lib.rs b/pallets/token-dealer/src/lib.rs index 10776fb1..ad762666 100644 --- a/pallets/token-dealer/src/lib.rs +++ b/pallets/token-dealer/src/lib.rs @@ -2,7 +2,8 @@ #![cfg_attr(not(feature = "std"), no_std)] use frame_support::{ - decl_event, decl_module, dispatch::DispatchResult, + decl_event, decl_module, + dispatch::DispatchResult, traits::{Currency, ExistenceRequirement, WithdrawReason}, }; use frame_system::ensure_signed; @@ -58,7 +59,7 @@ decl_event! { } decl_module! { - pub struct Module for enum Call where origin: T::Origin, system = frame_system { + pub struct Module for enum Call where origin: T::Origin { /// Transfer `amount` of tokens on the relay chain from the Parachain account to /// the given `dest` account. #[weight = 10] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 13415ed0..fc151ec4 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -35,11 +35,11 @@ pallet-sudo = { git = "https://github.com/paritytech/substrate", default-feature pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } # Cumulus dependencies -cumulus-runtime = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } -cumulus-parachain-upgrade = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } -cumulus-message-broker = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } -cumulus-upward-message = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } -cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '96da14c14fb785e106bb89a18c9dedaf2f789d2c' } +cumulus-runtime = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '35f60b1e90145714730d372b5067d9c392884ac9' } +cumulus-parachain-upgrade = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '35f60b1e90145714730d372b5067d9c392884ac9' } +cumulus-message-broker = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '35f60b1e90145714730d372b5067d9c392884ac9' } +cumulus-upward-message = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '35f60b1e90145714730d372b5067d9c392884ac9' } +cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '35f60b1e90145714730d372b5067d9c392884ac9' } [build-dependencies] wasm-builder-runner = { package = "substrate-wasm-builder-runner", version = "1.0.6" } diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 380a00c3..09f4ca21 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -71,21 +71,15 @@ pub type DigestItem = generic::DigestItem; /// to even the core datastructures. pub mod opaque { use super::*; - pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic; - /// Opaque block header type. - pub type Header = generic::Header; - /// Opaque block type. pub type Block = generic::Block; - /// Opaque block identifier type. - pub type BlockId = generic::BlockId; +} - pub type SessionHandlers = (); +pub type SessionHandlers = (); - impl_opaque_keys! { - pub struct SessionKeys {} - } +impl_opaque_keys! { + pub struct SessionKeys {} } /// This runtime version. @@ -366,11 +360,11 @@ impl_runtime_apis! { fn decode_session_keys( encoded: Vec, ) -> Option, sp_core::crypto::KeyTypeId)>> { - opaque::SessionKeys::decode_into_raw_public_keys(&encoded) + SessionKeys::decode_into_raw_public_keys(&encoded) } fn generate_session_keys(seed: Option>) -> Vec { - opaque::SessionKeys::generate(seed) + SessionKeys::generate(seed) } } } From df2cecc1f3f7afa3ef0c276c7f0e41edb2324127 Mon Sep 17 00:00:00 2001 From: Dan Forbes Date: Sat, 22 Aug 2020 14:20:06 -0700 Subject: [PATCH 08/91] Tailor the README More Specifically to this Project (#5) --- README.md | 108 ++++++++---------------------------------------------- 1 file changed, 15 insertions(+), 93 deletions(-) diff --git a/README.md b/README.md index 16e91a6f..b494b743 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,19 @@ # Substrate Cumulus Parachain Template -A new Cumulus-based Substrate node, ready for hacking :rocket: +A new Cumulus-based Substrate node, ready for hacking :cloud: -## Local Development +## Upstream -Follow these steps to prepare a local Substrate development environment :hammer_and_wrench: - -### Simple Setup +This project is a fork of the +[Substrate Developer Hub Node Template](https://github.com/substrate-developer-hub/substrate-node-template). -Install all the required dependencies with a single command (be patient, this can take up to 30 -minutes). +## Build & Run -```bash -curl https://getsubstrate.io -sSf | bash -s -- --fast -``` +Follow these steps to prepare a local Substrate development environment :hammer_and_wrench: -### Manual Setup +### Setup -Find manual setup instructions at the +If necessary, refer to the setup instructions at the [Substrate Developer Hub](https://substrate.dev/docs/en/knowledgebase/getting-started/#manual-installation). ### Build @@ -54,85 +50,11 @@ Or, start a staging chain with detailed logging: RUST_LOG=debug RUST_BACKTRACE=1 ./target/release/parachain-collator -lruntime=debug --chain staging -- --chain ../polkadot/rococo_local.json ``` -If you want to see the multi-node consensus algorithm in action, refer to -[our Start a Private Network tutorial](https://substrate.dev/docs/en/tutorials/start-a-private-network/). - -## Template Structure - -A Substrate project such as this consists of a number of components that are spread across a few -directories. - -### Node - -A blockchain node is an application that allows users to participate in a blockchain network. -Substrate-based blockchain nodes expose a number of capabilities: - -- Networking: Substrate nodes use the [`libp2p`](https://libp2p.io/) networking stack to allow the - nodes in the network to communicate with one another. -- Consensus: Blockchains must have a way to come to - [consensus](https://substrate.dev/docs/en/knowledgebase/advanced/consensus) on the state of the - network. Substrate makes it possible to supply custom consensus engines and also ships with - several consensus mechanisms that have been built on top of Web3 Foundation research. -- RPC Server: A remote procedure call (RPC) server is used to interact with Substrate nodes. - -There are several files in the `node` directory - take special note of the following: - -- [`chain_spec.rs`](./node/src/chain_spec.rs): A - [chain specification](https://substrate.dev/docs/en/knowledgebase/integrate/chain-spec) is a - source code file that defines a Substrate chain's initial (genesis) state. Chain specifications - are useful for development and testing, and critical when architecting the launch of a - production chain. Take note of the `development_config` and `testnet_genesis` functions, which - are used to define the genesis state for the local development chain configuration. These - functions identify some - [well-known accounts](https://substrate.dev/docs/en/knowledgebase/integrate/subkey#well-known-keys) - and use them to configure the blockchain's initial state. -- [`service.rs`](./node/src/service.rs): This file defines the node implementation. Take note of - the libraries that this file imports and the names of the functions it invokes. In particular, - there are references to consensus-related topics. - -After the node has been [built](#build), refer to the embedded documentation to learn more about the -capabilities and configuration parameters that it exposes: - -```shell -./target/release/parachain-collator --help -``` +## Learn More -### Runtime - -The Substrate project in this repository uses the -[FRAME](https://substrate.dev/docs/en/knowledgebase/runtime/frame) framework to construct a -blockchain runtime. FRAME allows runtime developers to declare domain-specific logic in modules -called "pallets". At the heart of FRAME is a helpful -[macro language](https://substrate.dev/docs/en/knowledgebase/runtime/macros) that makes it easy to -create pallets and flexibly compose them to create blockchains that can address a variety of needs. - -Review the [FRAME runtime implementation](./runtime/src/lib.rs) included in this template and note -the following: - -- This file configures several pallets to include in the runtime. Each pallet configuration is - defined by a code block that begins with `impl $PALLET_NAME::Trait for Runtime`. -- The pallets are composed into a single runtime by way of the - [`construct_runtime!`](https://crates.parity.io/frame_support/macro.construct_runtime.html) - macro, which is part of the core - [FRAME Support](https://substrate.dev/docs/en/knowledgebase/runtime/frame#support-library) - library. - -### Pallets - -The runtime in this project is constructed using many FRAME pallets that ship with the -[core Substrate repository](https://github.com/paritytech/substrate/tree/master/frame) and a -template pallet that is [defined in the `pallets`](./pallets/template/src/lib.rs) directory. - -A FRAME pallet is compromised of a number of blockchain primitives: - -- Storage: FRAME defines a rich set of powerful - [storage abstractions](https://substrate.dev/docs/en/knowledgebase/runtime/storage) that makes - it easy to use Substrate's efficient key-value database to manage the evolving state of a - blockchain. -- Dispatchables: FRAME pallets define special types of functions that can be invoked (dispatched) - from outside of the runtime in order to update its state. -- Events: Substrate uses [events](https://substrate.dev/docs/en/knowledgebase/runtime/events) to - notify users of important changes in the runtime. -- Errors: When a dispatchable fails, it returns an error. -- Trait: The `Trait` configuration interface is used to define the types and parameters upon which - a FRAME pallet depends. +Refer to the upstream +[Substrate Developer Hub Node Template](https://github.com/substrate-developer-hub/substrate-node-template) +to learn more about the structure of this project, the capabilities it encapsulates and the way in +which those capabilities are implemented. You can learn more about +[The Path of Parachain Block](https://polkadot.network/the-path-of-a-parachain-block/) on the +official Polkadot Blog. From d439ea5209cb71619231d45bd116aa48f9d96efe Mon Sep 17 00:00:00 2001 From: Joshy Orndorff Date: Tue, 25 Aug 2020 15:01:21 -0400 Subject: [PATCH 09/91] prune incorrect file headers --- node/build.rs | 16 ---------------- runtime/build.rs | 16 ---------------- 2 files changed, 32 deletions(-) diff --git a/node/build.rs b/node/build.rs index c3462ee3..a5b17353 100644 --- a/node/build.rs +++ b/node/build.rs @@ -1,19 +1,3 @@ -// Copyright 2019 Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Substrate is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Substrate is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Cumulus. If not, see . - use substrate_build_script_utils::{generate_cargo_keys, rerun_if_git_head_changed}; fn main() { diff --git a/runtime/build.rs b/runtime/build.rs index 2ca8a48c..1f40a41f 100644 --- a/runtime/build.rs +++ b/runtime/build.rs @@ -1,19 +1,3 @@ -// Copyright 2019 Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Substrate is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Substrate is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Cumulus. If not, see . - use wasm_builder_runner::WasmBuilder; fn main() { From 5b0270be8c13e2e4a70ee24dac2b7f54b8c2d1d4 Mon Sep 17 00:00:00 2001 From: Ricardo Rius Date: Tue, 25 Aug 2020 23:08:10 +0200 Subject: [PATCH 10/91] Update to Cumulus 4e7f138 --- Cargo.lock | 347 +++++++++++++++++------------- node/Cargo.toml | 11 +- pallets/parachain-info/Cargo.toml | 2 +- pallets/token-dealer/Cargo.toml | 4 +- runtime/Cargo.toml | 10 +- 5 files changed, 216 insertions(+), 158 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c59262cd..363735ed 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -196,7 +196,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d0864d84b8e07b145449be9a8537db86bf9de5ce03b913214694643b4743502" dependencies = [ "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -343,9 +343,9 @@ checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" [[package]] name = "autocfg" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" +checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "backtrace" @@ -391,9 +391,9 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.53.3" +version = "0.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c72a978d268b1d70b0e963217e60fdabd9523a941457a6c42a7315d15c7e89e5" +checksum = "66c0bb6167449588ff70803f4127f0684f9063097eca5016f37eb52b92c2cf36" dependencies = [ "bitflags", "cexpr", @@ -480,13 +480,28 @@ dependencies = [ "constant_time_eq", ] +[[package]] +name = "blake3" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce4f9586c9a3151c4b49b19e82ba163dd073614dd057e53c969e1a4db5b52720" +dependencies = [ + "arrayref", + "arrayvec 0.5.1", + "cc", + "cfg-if", + "constant_time_eq", + "crypto-mac 0.8.0", + "digest 0.9.0", +] + [[package]] name = "block-buffer" version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" dependencies = [ - "block-padding", + "block-padding 0.1.5", "byte-tools", "byteorder", "generic-array 0.12.3", @@ -498,6 +513,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ + "block-padding 0.2.1", "generic-array 0.14.4", ] @@ -519,6 +535,12 @@ dependencies = [ "byte-tools", ] +[[package]] +name = "block-padding" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" + [[package]] name = "blocking" version = "0.5.2" @@ -602,9 +624,9 @@ checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba" [[package]] name = "cc" -version = "1.0.58" +version = "1.0.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518" +checksum = "66120af515773fb005778dc07c261bd201ec8ce50bd6e7144c927753fe013381" dependencies = [ "jobserver", ] @@ -860,6 +882,16 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "crossbeam-channel" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ee0cc8804d5393478d743b035099520087a5186f3b93fa58cec08fa62407b6" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + [[package]] name = "crossbeam-deque" version = "0.7.3" @@ -877,7 +909,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "cfg-if", "crossbeam-utils", "lazy_static", @@ -903,7 +935,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "cfg-if", "lazy_static", ] @@ -946,7 +978,7 @@ dependencies = [ [[package]] name = "cumulus-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=35f60b1e90145714730d372b5067d9c392884ac9#35f60b1e90145714730d372b5067d9c392884ac9" +source = "git+https://github.com/paritytech/cumulus?rev=4e7f138c828bcf118df1c988a400d4dac8e904d9#4e7f138c828bcf118df1c988a400d4dac8e904d9" dependencies = [ "cumulus-consensus", "cumulus-network", @@ -974,7 +1006,7 @@ dependencies = [ [[package]] name = "cumulus-consensus" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=35f60b1e90145714730d372b5067d9c392884ac9#35f60b1e90145714730d372b5067d9c392884ac9" +source = "git+https://github.com/paritytech/cumulus?rev=4e7f138c828bcf118df1c988a400d4dac8e904d9#4e7f138c828bcf118df1c988a400d4dac8e904d9" dependencies = [ "futures 0.3.5", "log 0.4.11", @@ -996,7 +1028,7 @@ dependencies = [ [[package]] name = "cumulus-message-broker" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=35f60b1e90145714730d372b5067d9c392884ac9#35f60b1e90145714730d372b5067d9c392884ac9" +source = "git+https://github.com/paritytech/cumulus?rev=4e7f138c828bcf118df1c988a400d4dac8e904d9#4e7f138c828bcf118df1c988a400d4dac8e904d9" dependencies = [ "cumulus-primitives", "cumulus-upward-message", @@ -1012,7 +1044,7 @@ dependencies = [ [[package]] name = "cumulus-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=35f60b1e90145714730d372b5067d9c392884ac9#35f60b1e90145714730d372b5067d9c392884ac9" +source = "git+https://github.com/paritytech/cumulus?rev=4e7f138c828bcf118df1c988a400d4dac8e904d9#4e7f138c828bcf118df1c988a400d4dac8e904d9" dependencies = [ "cumulus-primitives", "futures 0.3.5", @@ -1034,7 +1066,7 @@ dependencies = [ [[package]] name = "cumulus-parachain-upgrade" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=35f60b1e90145714730d372b5067d9c392884ac9#35f60b1e90145714730d372b5067d9c392884ac9" +source = "git+https://github.com/paritytech/cumulus?rev=4e7f138c828bcf118df1c988a400d4dac8e904d9#4e7f138c828bcf118df1c988a400d4dac8e904d9" dependencies = [ "cumulus-primitives", "cumulus-runtime", @@ -1055,7 +1087,7 @@ dependencies = [ [[package]] name = "cumulus-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=35f60b1e90145714730d372b5067d9c392884ac9#35f60b1e90145714730d372b5067d9c392884ac9" +source = "git+https://github.com/paritytech/cumulus?rev=4e7f138c828bcf118df1c988a400d4dac8e904d9#4e7f138c828bcf118df1c988a400d4dac8e904d9" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -1070,7 +1102,7 @@ dependencies = [ [[package]] name = "cumulus-runtime" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=35f60b1e90145714730d372b5067d9c392884ac9#35f60b1e90145714730d372b5067d9c392884ac9" +source = "git+https://github.com/paritytech/cumulus?rev=4e7f138c828bcf118df1c988a400d4dac8e904d9#4e7f138c828bcf118df1c988a400d4dac8e904d9" dependencies = [ "cumulus-primitives", "frame-executive", @@ -1089,7 +1121,7 @@ dependencies = [ [[package]] name = "cumulus-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=35f60b1e90145714730d372b5067d9c392884ac9#35f60b1e90145714730d372b5067d9c392884ac9" +source = "git+https://github.com/paritytech/cumulus?rev=4e7f138c828bcf118df1c988a400d4dac8e904d9#4e7f138c828bcf118df1c988a400d4dac8e904d9" dependencies = [ "cumulus-collator", "cumulus-consensus", @@ -1123,7 +1155,7 @@ dependencies = [ [[package]] name = "cumulus-upward-message" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=35f60b1e90145714730d372b5067d9c392884ac9#35f60b1e90145714730d372b5067d9c392884ac9" +source = "git+https://github.com/paritytech/cumulus?rev=4e7f138c828bcf118df1c988a400d4dac8e904d9#4e7f138c828bcf118df1c988a400d4dac8e904d9" dependencies = [ "kusama-runtime", "polkadot-core-primitives", @@ -1147,6 +1179,19 @@ dependencies = [ "zeroize", ] +[[package]] +name = "curve25519-dalek" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8492de420e9e60bc9a1d66e2dbb91825390b738a388606600663fc529b4b307" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.5.1", + "subtle 2.2.3", + "zeroize", +] + [[package]] name = "data-encoding" version = "2.3.0" @@ -1187,7 +1232,7 @@ checksum = "298998b1cf6b5b2c8a7b023dfd45821825ce3ba8a8af55c921a0e734e4653f76" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -1269,7 +1314,7 @@ checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -1289,15 +1334,15 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "1.0.0-pre.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a8a37f4e8b35af971e6db5e3897e7a6344caa3f92f6544f88125a1f5f0035a" +checksum = "53d2e93f837d749c16d118e7ddf7a4dfd0ac8f452cf51e46e9348824e5ef6851" dependencies = [ - "curve25519-dalek", + "curve25519-dalek 3.0.0", "ed25519", "rand 0.7.3", "serde", - "sha2 0.8.2", + "sha2 0.9.1", "zeroize", ] @@ -1344,7 +1389,7 @@ checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -1410,9 +1455,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f14646a9e0430150a87951622ba9675472b68e384b7701b8423b30560805c7a" +checksum = "e1cd41440ae7e4734bbd42302f63eaba892afc93a3912dad84006247f0dedb0e" [[package]] name = "exit-future" @@ -1451,7 +1496,7 @@ checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", "synstructure", ] @@ -1484,9 +1529,9 @@ dependencies = [ [[package]] name = "file-per-thread-logger" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b3937f028664bd0e13df401ba49a4567ccda587420365823242977f06609ed1" +checksum = "4fdbe0d94371f9ce939b555dd342d0686cc4c0cadbcd4b61d70af5ff97eb4126" dependencies = [ "env_logger", "log 0.4.11", @@ -1527,9 +1572,9 @@ checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" [[package]] name = "flate2" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68c90b0fc46cf89d227cc78b40e494ff81287a92dd07631e5af0d06fe3cf885e" +checksum = "766d0e77a2c1502169d4a93ff3b8c15a71fd946cd0126309752104e5f3c46d94" dependencies = [ "cfg-if", "crc32fast", @@ -1646,7 +1691,7 @@ dependencies = [ "frame-support-procedural-tools", "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -1658,7 +1703,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -1668,7 +1713,7 @@ source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -1850,7 +1895,7 @@ dependencies = [ "proc-macro-hack", "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -2114,7 +2159,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25" dependencies = [ "ahash 0.3.8", - "autocfg 1.0.0", + "autocfg 1.0.1", ] [[package]] @@ -2369,7 +2414,7 @@ checksum = "7ef5550a42e3740a0e71f909d4c861056a284060af885ae7aa6242820f920d9d" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -2378,7 +2423,7 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b45e59b16c76b11bf9738fd5d38879d3bd28ad292d7b313608becb17ae2df9" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "hashbrown 0.8.2", "serde", ] @@ -2515,7 +2560,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -2609,7 +2654,7 @@ dependencies = [ [[package]] name = "kusama-runtime" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "bitvec", "frame-executive", @@ -2740,9 +2785,9 @@ checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a" [[package]] name = "libc" -version = "0.2.74" +version = "0.2.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2f02823cf78b754822df5f7f268fb59822e7296276d3e069d8e8cb26a14bd10" +checksum = "755456fae044e6fa1ebbbd1b3e902ae19e73097ed4ed87bb79934a867c007bc3" [[package]] name = "libflate" @@ -2850,7 +2895,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f753d9324cd3ec14bf04b8a8cd0d269c87f294153d6bf2a84497a63a5ad22213" dependencies = [ "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -2952,7 +2997,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f353f8966bbaaf7456535fffd3f366f153148773a0cf04b2ec3860955cb720e" dependencies = [ "bytes 0.5.6", - "curve25519-dalek", + "curve25519-dalek 2.1.0", "futures 0.3.5", "lazy_static", "libp2p-core", @@ -3062,9 +3107,9 @@ dependencies = [ [[package]] name = "librocksdb-sys" -version = "6.7.4" +version = "6.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "883213ae3d09bfc3d104aefe94b25ebb183b6f4d3a515b23b14817e1f4854005" +checksum = "eb5b56f651c204634b936be2f92dbb42c36867e00ff7fe2405591f3b9fa66f09" dependencies = [ "bindgen", "cc", @@ -3095,7 +3140,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af67924b8dd885cccea261866c8ce5b74d239d272e154053ff927dae839f5ae9" dependencies = [ "cc", - "libc", "pkg-config", "vcpkg", ] @@ -3233,7 +3277,7 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", ] [[package]] @@ -3276,9 +3320,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be0f75932c1f6cfae3c04000e40114adf955636e19040f9c0a2c380702aa1c7f" +checksum = "4d7559a8a40d0f97e1edea3220f698f78b1c5ab67532e49f68fde3910323b722" dependencies = [ "adler", ] @@ -3367,17 +3411,18 @@ checksum = "0debeb9fcf88823ea64d64e4a815ab1643f33127d995978e099942ce38f25238" [[package]] name = "multihash" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f75db05d738947aa5389863aadafbcf2e509d7ba099dc2ddcdf4fc66bf7a9e03" +checksum = "51cc1552a982658478dbc22eefb72bb1d4fd1161eb9818f7bbf4347443f07569" dependencies = [ "blake2b_simd", "blake2s_simd", - "digest 0.8.1", - "sha-1", - "sha2 0.8.2", + "blake3", + "digest 0.9.0", + "sha-1 0.9.1", + "sha2 0.9.1", "sha3", - "unsigned-varint 0.3.3", + "unsigned-varint 0.5.0", ] [[package]] @@ -3526,7 +3571,7 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "num-integer", "num-traits 0.2.12", ] @@ -3537,7 +3582,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "num-traits 0.2.12", ] @@ -3547,7 +3592,7 @@ version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "num-traits 0.2.12", ] @@ -3557,7 +3602,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "num-bigint", "num-integer", "num-traits 0.2.12", @@ -3578,7 +3623,7 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "libm", ] @@ -4026,7 +4071,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -4327,7 +4372,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -4378,7 +4423,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" dependencies = [ "proc-macro2 1.0.19", - "syn 1.0.38", + "syn 1.0.39", "synstructure", ] @@ -4579,7 +4624,7 @@ checksum = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -4609,7 +4654,7 @@ checksum = "feb3b2b1033b8a60b4da6ee470325f887758c95d5320f52f9ce0df055a55940e" [[package]] name = "polkadot-availability-store" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "derive_more 0.99.9", "exit-future 0.2.0", @@ -4636,7 +4681,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "frame-benchmarking-cli", "futures 0.3.5", @@ -4659,7 +4704,7 @@ dependencies = [ [[package]] name = "polkadot-collator" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "futures 0.3.5", "futures-timer 2.0.2", @@ -4686,7 +4731,7 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "0.7.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "parity-scale-codec", "sp-core", @@ -4697,7 +4742,7 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "derive_more 0.15.0", "parity-scale-codec", @@ -4710,7 +4755,7 @@ dependencies = [ [[package]] name = "polkadot-network" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "arrayvec 0.4.12", "bytes 0.5.6", @@ -4739,7 +4784,7 @@ dependencies = [ [[package]] name = "polkadot-parachain" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "derive_more 0.99.9", "futures 0.3.5", @@ -4760,7 +4805,7 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "bitvec", "frame-system", @@ -4783,7 +4828,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "jsonrpc-core", "pallet-transaction-payment-rpc", @@ -4810,7 +4855,7 @@ dependencies = [ [[package]] name = "polkadot-runtime" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "bitvec", "frame-executive", @@ -4875,7 +4920,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "bitvec", "frame-support", @@ -4909,7 +4954,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "bitvec", "frame-support", @@ -4940,7 +4985,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "frame-benchmarking", "frame-system-rpc-runtime-api", @@ -5000,7 +5045,7 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -5010,7 +5055,7 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "bitvec", "frame-executive", @@ -5064,7 +5109,7 @@ dependencies = [ [[package]] name = "polkadot-test-runtime-client" version = "2.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "futures 0.3.5", "pallet-timestamp", @@ -5088,7 +5133,7 @@ dependencies = [ [[package]] name = "polkadot-test-service" version = "0.8.2" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "frame-benchmarking", "frame-system", @@ -5135,7 +5180,7 @@ dependencies = [ [[package]] name = "polkadot-validation" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "ansi_term 0.12.1", "bitvec", @@ -5204,9 +5249,9 @@ dependencies = [ [[package]] name = "ppv-lite86" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" +checksum = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20" [[package]] name = "predicates" @@ -5264,7 +5309,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", "version_check", ] @@ -5375,7 +5420,7 @@ dependencies = [ "itertools 0.8.2", "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -5647,11 +5692,11 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f02856753d04e03e26929f820d0a0a337ebe71f849801eea335d464b349080" +checksum = "cfd016f0c045ad38b5251be2c9c0ab806917f82da4d36b2a327e5166adad9270" dependencies = [ - "autocfg 1.0.0", + "autocfg 1.0.1", "crossbeam-deque", "either", "rayon-core", @@ -5659,12 +5704,12 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e92e15d89083484e11353891f1af602cc661426deb9564c298b270c726973280" +checksum = "91739a34c4355b5434ce54c9086c5895604a9c278586d1f1aa95e04f66b525a0" dependencies = [ + "crossbeam-channel", "crossbeam-deque", - "crossbeam-queue", "crossbeam-utils", "lazy_static", "num_cpus", @@ -5722,7 +5767,7 @@ checksum = "7d21b475ab879ef0e315ad99067fa25778c3b0377f57f1b00207448dac1a3144" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -5793,7 +5838,7 @@ checksum = "475e68978dc5b743f2f40d8e0a8fdc83f1c5e78cbf4b8fa5e74e73beebc340de" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -5836,7 +5881,7 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "bitvec", "frame-executive", @@ -5894,6 +5939,7 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", + "sp-staking", "sp-std", "sp-transaction-pool", "sp-version", @@ -6099,7 +6145,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -6895,7 +6941,7 @@ checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862" dependencies = [ "arrayref", "arrayvec 0.5.1", - "curve25519-dalek", + "curve25519-dalek 2.1.0", "getrandom", "merlin", "rand 0.7.3", @@ -6940,7 +6986,7 @@ checksum = "e367622f934864ffa1c704ba2b82280aab856e3d8213c84c5720257eb34b15b9" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -7029,7 +7075,7 @@ checksum = "609feed1d0a73cc36a0182a840a9b37b4a82f0b1150369f0536a9e3f2a31dc48" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -7055,6 +7101,19 @@ dependencies = [ "opaque-debug 0.2.3", ] +[[package]] +name = "sha-1" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "170a36ea86c864a3f16dd2687712dd6646f7019f301e57537c7f4dc9f5916770" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpuid-bool", + "digest 0.9.0", + "opaque-debug 0.3.0", +] + [[package]] name = "sha2" version = "0.8.2" @@ -7082,15 +7141,14 @@ dependencies = [ [[package]] name = "sha3" -version = "0.8.2" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd26bc0e7a2e3a7c959bc494caf58b72ee0c71d67704e9520f736ca7e4853ecf" +checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" dependencies = [ - "block-buffer 0.7.3", - "byte-tools", - "digest 0.8.1", + "block-buffer 0.9.0", + "digest 0.9.0", "keccak", - "opaque-debug 0.2.3", + "opaque-debug 0.3.0", ] [[package]] @@ -7192,7 +7250,7 @@ checksum = "a945ec7f7ce853e89ffa36be1e27dce9a43e82ff9093bf3461c30d5da74ed11b" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -7253,7 +7311,7 @@ dependencies = [ "httparse", "log 0.4.11", "rand 0.7.3", - "sha-1", + "sha-1 0.8.2", ] [[package]] @@ -7292,7 +7350,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -7521,7 +7579,7 @@ source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -7625,7 +7683,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -7702,7 +7760,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -7916,9 +7974,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "structopt" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de5472fb24d7e80ae84a7801b7978f95a19ec32cb1876faea59ab711eb901976" +checksum = "6cc388d94ffabf39b5ed5fadddc40147cb21e605f53db6f8f36a625d27489ac5" dependencies = [ "clap", "lazy_static", @@ -7927,15 +7985,15 @@ dependencies = [ [[package]] name = "structopt-derive" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0eb37335aeeebe51be42e2dc07f031163fbabfa6ac67d7ea68b5c2f68d5f99" +checksum = "5e2513111825077552a6751dfad9e11ce0fba07d7276a3943a037d7e93e64c5f" dependencies = [ "heck", "proc-macro-error", "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -7956,19 +8014,20 @@ dependencies = [ "heck", "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] name = "substrate-bip39" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c004e8166d6e0aa3a9d5fa673e5b7098ff25f930de1013a21341988151e681bb" +checksum = "bed6646a0159b9935b5d045611560eeef842b78d7adc3ba36f5ca325a13a0236" dependencies = [ "hmac", "pbkdf2", "schnorrkel", "sha2 0.8.2", + "zeroize", ] [[package]] @@ -8175,9 +8234,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.38" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e69abc24912995b3038597a7a593be5053eb0fb44f3cc5beec0deb421790c1f4" +checksum = "891d8d6567fe7c7f8835a3a98af4208f3846fba258c1bc3c31d6e506239f11f9" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", @@ -8201,7 +8260,7 @@ checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", "unicode-xid 0.2.1", ] @@ -8292,7 +8351,7 @@ checksum = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -8484,7 +8543,7 @@ checksum = "f0c3acc6aa564495a0f2e1d59fab677cd7f81a19994cfc7f3ad0e64301560389" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] @@ -8686,14 +8745,14 @@ checksum = "80e0ccfc3378da0cce270c946b676a376943f5cd16aeba64568e7939806f4ada" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", ] [[package]] name = "tracing-core" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db63662723c316b43ca36d833707cc93dff82a02ba3d7e354f342682cc8b3545" +checksum = "4f0e00789804e99b20f12bc7003ca416309d28a6f495d6af58d1e2c2842461b5" dependencies = [ "lazy_static", ] @@ -8835,12 +8894,6 @@ dependencies = [ "subtle 2.2.3", ] -[[package]] -name = "unsigned-varint" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f67332660eb59a6f1eb24ff1220c9e8d01738a8503c6002e30bcfe4bd9f2b4a9" - [[package]] name = "unsigned-varint" version = "0.4.0" @@ -8853,6 +8906,12 @@ dependencies = [ "futures_codec", ] +[[package]] +name = "unsigned-varint" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a98e44fc6af1e18c3a06666d829b4fd8d2714fb2dbffe8ab99d5dc7ea6baa628" + [[package]] name = "untrusted" version = "0.7.1" @@ -8889,9 +8948,9 @@ checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c" [[package]] name = "vec-arena" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17dfb54bf57c9043f4616cb03dab30eff012cc26631b797d8354b916708db919" +checksum = "8cb18268690309760d59ee1a9b21132c126ba384f374c59a94db4bc03adeb561" [[package]] name = "vec_map" @@ -8974,7 +9033,7 @@ dependencies = [ "log 0.4.11", "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", "wasm-bindgen-shared", ] @@ -9008,7 +9067,7 @@ checksum = "841a6d1c35c6f596ccea1f82504a192a60378f64b3bb0261904ad8f2f5657556" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -9268,7 +9327,7 @@ dependencies = [ [[package]] name = "westend-runtime" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#58830aabfe9640ac773023914104ec08be9122d0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" dependencies = [ "bitvec", "frame-executive", @@ -9399,7 +9458,7 @@ dependencies = [ "mio", "mio-extras", "rand 0.7.3", - "sha-1", + "sha-1 0.8.2", "slab", "url 2.1.1", ] @@ -9420,7 +9479,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "637ff90c9540fa3073bb577e65033069e4bae7c79d49d74aa3ffdf5342a53217" dependencies = [ - "curve25519-dalek", + "curve25519-dalek 2.1.0", "rand_core 0.5.1", "zeroize", ] @@ -9456,7 +9515,7 @@ checksum = "de251eec69fc7c1bc3923403d18ececb929380e016afe103da75f396704f8ca2" dependencies = [ "proc-macro2 1.0.19", "quote 1.0.7", - "syn 1.0.38", + "syn 1.0.39", "synstructure", ] diff --git a/node/Cargo.toml b/node/Cargo.toml index 5c5a051d..2945f91f 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -50,13 +50,12 @@ sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "roco sp-trie = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } - # Cumulus dependencies -cumulus-consensus = { git = "https://github.com/paritytech/cumulus", rev = '35f60b1e90145714730d372b5067d9c392884ac9' } -cumulus-collator = { git = "https://github.com/paritytech/cumulus", rev = '35f60b1e90145714730d372b5067d9c392884ac9' } -cumulus-network = { git = "https://github.com/paritytech/cumulus", rev = '35f60b1e90145714730d372b5067d9c392884ac9' } -cumulus-primitives = { git = "https://github.com/paritytech/cumulus", rev = '35f60b1e90145714730d372b5067d9c392884ac9' } -cumulus-service = { git = "https://github.com/paritytech/cumulus", rev = '35f60b1e90145714730d372b5067d9c392884ac9' } +cumulus-consensus = { git = "https://github.com/paritytech/cumulus", rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } +cumulus-collator = { git = "https://github.com/paritytech/cumulus", rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } +cumulus-network = { git = "https://github.com/paritytech/cumulus", rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } +cumulus-primitives = { git = "https://github.com/paritytech/cumulus", rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } +cumulus-service = { git = "https://github.com/paritytech/cumulus", rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } # Polkadot dependencies polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } diff --git a/pallets/parachain-info/Cargo.toml b/pallets/parachain-info/Cargo.toml index e00c9f04..a2d7ee86 100644 --- a/pallets/parachain-info/Cargo.toml +++ b/pallets/parachain-info/Cargo.toml @@ -11,7 +11,7 @@ serde = { version = "1.0.101", optional = true, features = ["derive"] } frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '35f60b1e90145714730d372b5067d9c392884ac9' } +cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } [features] default = ["std"] diff --git a/pallets/token-dealer/Cargo.toml b/pallets/token-dealer/Cargo.toml index c1373b87..9cb77090 100644 --- a/pallets/token-dealer/Cargo.toml +++ b/pallets/token-dealer/Cargo.toml @@ -11,8 +11,8 @@ frame-support = { git = "https://github.com/paritytech/substrate", default-featu frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } # Cumulus dependencies -cumulus-upward-message = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '35f60b1e90145714730d372b5067d9c392884ac9' } -cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '35f60b1e90145714730d372b5067d9c392884ac9' } +cumulus-upward-message = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } +cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } # Polkadot dependencies polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch", default-features = false } diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index fc151ec4..e4cfc5e8 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -35,11 +35,11 @@ pallet-sudo = { git = "https://github.com/paritytech/substrate", default-feature pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } # Cumulus dependencies -cumulus-runtime = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '35f60b1e90145714730d372b5067d9c392884ac9' } -cumulus-parachain-upgrade = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '35f60b1e90145714730d372b5067d9c392884ac9' } -cumulus-message-broker = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '35f60b1e90145714730d372b5067d9c392884ac9' } -cumulus-upward-message = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '35f60b1e90145714730d372b5067d9c392884ac9' } -cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '35f60b1e90145714730d372b5067d9c392884ac9' } +cumulus-runtime = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } +cumulus-parachain-upgrade = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } +cumulus-message-broker = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } +cumulus-upward-message = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } +cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } [build-dependencies] wasm-builder-runner = { package = "substrate-wasm-builder-runner", version = "1.0.6" } From aa86d441ca5bc1747bb98377a9e08dfdde7e12ab Mon Sep 17 00:00:00 2001 From: Ricardo Rius Date: Thu, 15 Oct 2020 16:30:25 +0200 Subject: [PATCH 11/91] Add Polkadot JS types --- Cargo.lock | 6 +++--- README.md | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 363735ed..7f1bed84 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8165,13 +8165,13 @@ dependencies = [ [[package]] name = "substrate-wasm-builder-runner" version = "1.0.6" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2a965994514ab35d3893e9260245f2947fd1981cdd4fffd2c6e6d1a9ce02e6a" [[package]] name = "substrate-wasm-builder-runner" version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2a965994514ab35d3893e9260245f2947fd1981cdd4fffd2c6e6d1a9ce02e6a" +source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" [[package]] name = "substrate-wasmtime" diff --git a/README.md b/README.md index b494b743..27fd7055 100644 --- a/README.md +++ b/README.md @@ -18,12 +18,26 @@ If necessary, refer to the setup instructions at the ### Build +``` +rustup install nightly-2020-10-06 +rustup target add wasm32-unknown-unknown --toolchain nightly-2020-10-06 +``` + Once the development environment is set up, build the node template. This command will build the [Wasm](https://substrate.dev/docs/en/knowledgebase/advanced/executor#wasm-execution) and [native](https://substrate.dev/docs/en/knowledgebase/advanced/executor#native-execution) code: ```bash -cargo build --release +cargo +nightly-2020-10-06 build --release +``` + +## Polkadot JS types +``` +{ + "Address": "AccountId", + "LookupSource": "AccountId", + "RefCount": "u8" +} ``` ## Run From cdf172976326399de523cb59559e41952e389076 Mon Sep 17 00:00:00 2001 From: Ricardo Rius Date: Sat, 16 Jan 2021 01:30:14 -0600 Subject: [PATCH 12/91] Update to rococo-v1 --- Cargo.lock | 5641 ++++++++++++++++------------- Cargo.toml | 14 +- README.md | 27 +- node/Cargo.toml | 279 +- node/src/chain_spec.rs | 101 +- node/src/cli.rs | 42 +- node/src/command.rs | 206 +- node/src/main.rs | 7 +- node/src/service.rs | 142 +- pallets/parachain-info/Cargo.toml | 31 +- pallets/parachain-info/src/lib.rs | 24 +- pallets/template/Cargo.toml | 74 +- pallets/template/README.md | 1 + pallets/template/src/lib.rs | 13 +- pallets/template/src/mock.rs | 28 +- pallets/template/src/tests.rs | 1 - pallets/token-dealer/Cargo.toml | 29 - pallets/token-dealer/src/lib.rs | 155 - runtime/Cargo.toml | 286 +- runtime/build.rs | 3 +- runtime/src/lib.rs | 358 +- scripts/init.sh | 12 + 22 files changed, 4273 insertions(+), 3201 deletions(-) create mode 100644 pallets/template/README.md delete mode 100644 pallets/token-dealer/Cargo.toml delete mode 100644 pallets/token-dealer/src/lib.rs create mode 100755 scripts/init.sh diff --git a/Cargo.lock b/Cargo.lock index 7f1bed84..39c16c66 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12,11 +12,11 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.13.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6a2d3371669ab3ca9797670853d61402b03d0b4b9ebf33d677dfa720203072" +checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7" dependencies = [ - "gimli 0.22.0", + "gimli 0.23.0", ] [[package]] @@ -25,12 +25,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" -[[package]] -name = "adler32" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" - [[package]] name = "aead" version = "0.3.2" @@ -42,9 +36,9 @@ dependencies = [ [[package]] name = "aes" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7001367fde4c768a19d1029f0a8be5abd9308e1119846d5bd9ad26297b8faf5" +checksum = "dd2bc6d3f370b5666245ff421e231cba4353df936e26986d2918e61a8fd6aef6" dependencies = [ "aes-soft", "aesni", @@ -53,73 +47,53 @@ dependencies = [ [[package]] name = "aes-gcm" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f5007801316299f922a6198d1d09a0bae95786815d066d5880d13f7c45ead1" +checksum = "0301c9e9c443494d970a07885e8cf3e587bae8356a1d5abd0999068413f7205f" dependencies = [ "aead", "aes", "block-cipher", "ghash", - "subtle 2.2.3", + "subtle 2.4.0", ] [[package]] name = "aes-soft" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4925647ee64e5056cf231608957ce7c81e12d6d6e316b9ce1404778cc1d35fa7" +checksum = "63dd91889c49327ad7ef3b500fd1109dbd3c509a03db0d4a9ce413b79f575cb6" dependencies = [ "block-cipher", "byteorder", - "opaque-debug 0.2.3", + "opaque-debug 0.3.0", ] [[package]] name = "aesni" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050d39b0b7688b3a3254394c3e30a9d66c41dcf9b05b0e2dbdc623f6505d264" +checksum = "0a6fe808308bb07d393e2ea47780043ec47683fcf19cf5efc8ca51c50cc8c68a" dependencies = [ "block-cipher", - "opaque-debug 0.2.3", -] - -[[package]] -name = "ahash" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f33b5018f120946c1dcf279194f238a9f146725593ead1c08fa47ff22b0b5d3" -dependencies = [ - "const-random", + "opaque-debug 0.3.0", ] [[package]] name = "ahash" -version = "0.3.8" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217" +checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" [[package]] name = "aho-corasick" -version = "0.7.13" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86" +checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5" dependencies = [ "memchr", ] -[[package]] -name = "alga" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f823d037a7ec6ea2197046bafd4ae150e6bc36f9ca347404f46a46823fa84f2" -dependencies = [ - "approx", - "num-complex", - "num-traits 0.2.12", -] - [[package]] name = "ansi_term" version = "0.11.0" @@ -140,9 +114,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.32" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b602bfe940d21c130f3895acd65221e8a61270debe89d628b9cb4e3ccb8569b" +checksum = "afddf7f520a80dbf76e6f50a35bca42a2331ef227a28b3b6dc5c2e2338d114b1" [[package]] name = "approx" @@ -150,14 +124,14 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3" dependencies = [ - "num-traits 0.2.12", + "num-traits 0.2.14", ] [[package]] name = "arc-swap" -version = "0.4.7" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d25d88fd6b8041580a654f9d0c581a047baee2b3efee13275f2fc392fc75034" +checksum = "d4d7d63395147b81a9e570bcc6243aaf71c017bd666d4909cfef0085bdda8d73" [[package]] name = "arrayref" @@ -176,9 +150,9 @@ dependencies = [ [[package]] name = "arrayvec" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "asn1_der" @@ -195,106 +169,128 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d0864d84b8e07b145449be9a8537db86bf9de5ce03b913214694643b4743502" dependencies = [ - "quote 1.0.7", - "syn 1.0.39", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] -name = "assert_cmd" -version = "0.12.2" +name = "async-channel" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936fcf2c692b37c696cd0002c57752b2d9478402450c9ca4a463f6afae16d6f5" +checksum = "59740d83946db6a5af71ae25ddf9562c2b176b2ca42cf99a455f09f4a220d6b9" dependencies = [ - "doc-comment", - "escargot", - "predicates", - "predicates-core", - "predicates-tree", - "wait-timeout", + "concurrent-queue", + "event-listener", + "futures-core", ] [[package]] -name = "assert_matches" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7deb0a829ca7bcfaf5da70b073a8d128619259a7be8216a355e23f00763059e5" - -[[package]] -name = "async-channel" +name = "async-executor" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43de69555a39d52918e2bc33a408d3c0a86c829b212d898f4ca25d21a6387478" +checksum = "eb877970c7b440ead138f6321a3b5395d6061183af779340b65e20c0fede9146" dependencies = [ + "async-task", "concurrent-queue", - "event-listener", - "futures-core", + "fastrand", + "futures-lite", + "once_cell", + "vec-arena", ] [[package]] -name = "async-executor" -version = "0.1.2" +name = "async-global-executor" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90f47c78ea98277cb1f5e6f60ba4fc762f5eafe9f6511bc2f7dfd8b75c225650" +checksum = "9586ec52317f36de58453159d48351bc244bc24ced3effc1fce22f3d48664af6" dependencies = [ + "async-channel", + "async-executor", "async-io", + "async-mutex", + "blocking", "futures-lite", - "multitask", - "parking 1.0.6", - "scoped-tls", - "waker-fn", + "num_cpus", + "once_cell", ] [[package]] name = "async-io" -version = "0.1.11" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae22a338d28c75b53702b66f77979062cb29675db376d99e451af4fa79dedb3" +checksum = "9315f8f07556761c3e48fec2e6b276004acf426e6dc068b2c2251854d65ee0fd" dependencies = [ - "cfg-if", "concurrent-queue", + "fastrand", "futures-lite", "libc", + "log", + "nb-connect", "once_cell", - "parking 2.0.0", + "parking", "polling", - "socket2", "vec-arena", - "wepoll-sys-stjepang", + "waker-fn", "winapi 0.3.9", ] +[[package]] +name = "async-lock" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1996609732bde4a9988bc42125f55f2af5f3c36370e27c778d5191a4a1b63bfb" +dependencies = [ + "event-listener", +] + [[package]] name = "async-mutex" -version = "1.1.5" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20e85981fc34e84cdff3fc2c9219189752633fdc538a06df8b5ac45b68a4f3a9" +checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e" dependencies = [ "event-listener", ] [[package]] -name = "async-std" -version = "1.6.3" +name = "async-process" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c8da367da62b8ff2313c406c9ac091c1b31d67a165becdd2de380d846260f7" +checksum = "4c8cea09c1fb10a317d1b5af8024eeba256d6554763e85ecd90ff8df31c7bbda" dependencies = [ - "async-executor", "async-io", - "async-mutex", - "async-task", "blocking", - "crossbeam-utils", + "cfg-if 0.1.10", + "event-listener", + "futures-lite", + "once_cell", + "signal-hook", + "winapi 0.3.9", +] + +[[package]] +name = "async-std" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9f06685bad74e0570f5213741bea82158279a4103d988e57bfada11ad230341" +dependencies = [ + "async-channel", + "async-global-executor", + "async-io", + "async-lock", + "async-process", + "crossbeam-utils 0.8.1", "futures-channel", "futures-core", "futures-io", "futures-lite", - "futures-timer 3.0.2", + "gloo-timers", "kv-log-macro", - "log 0.4.11", + "log", "memchr", "num_cpus", "once_cell", - "pin-project-lite", + "pin-project-lite 0.2.4", "pin-utils", "slab", "wasm-bindgen-futures", @@ -302,20 +298,41 @@ dependencies = [ [[package]] name = "async-task" -version = "3.0.0" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17772156ef2829aadc587461c7753af20b7e8db1529bc66855add962a3b35d3" +checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0" [[package]] name = "async-tls" -version = "0.8.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df097e3f506bec0e1a24f06bb3c962c228f36671de841ff579cb99f371772634" +checksum = "2f23d769dbf1838d5df5156e7b1ad404f4c463d1ac2c6aeb6cd943630f8a8400" dependencies = [ - "futures 0.3.5", - "rustls", + "futures-core", + "futures-io", + "rustls 0.19.0", "webpki", - "webpki-roots 0.19.0", + "webpki-roots", +] + +[[package]] +name = "async-trait" +version = "0.1.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d3a45e77e34375a7923b1e8febb049bb011f064714a8e17a1a616fef01da13d" +dependencies = [ + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", +] + +[[package]] +name = "atomic" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3410529e8288c463bedb5930f82833bc0c90e5d2fe639a56582a4d09220b281" +dependencies = [ + "autocfg", ] [[package]] @@ -335,12 +352,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "autocfg" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" - [[package]] name = "autocfg" version = "1.0.1" @@ -349,15 +360,15 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "backtrace" -version = "0.3.50" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46254cf2fdcdf1badb5934448c1bcbe046a56537b3987d96c51a7afc5d03f293" +checksum = "ef5140344c85b01f9bbb4d4b7288a8aa4b3287ccef913a14bcc78a1063623598" dependencies = [ "addr2line", - "cfg-if", + "cfg-if 1.0.0", "libc", "miniz_oxide", - "object 0.20.0", + "object 0.22.0", "rustc-demangle", ] @@ -369,15 +380,15 @@ checksum = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" [[package]] name = "base64" -version = "0.11.0" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" +checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" [[package]] name = "base64" -version = "0.12.3" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "bincode" @@ -397,16 +408,16 @@ checksum = "66c0bb6167449588ff70803f4127f0684f9063097eca5016f37eb52b92c2cf36" dependencies = [ "bitflags", "cexpr", - "cfg-if", + "cfg-if 0.1.10", "clang-sys", "clap", "env_logger", "lazy_static", "lazycell", - "log 0.4.11", + "log", "peeking_take_while", - "proc-macro2 1.0.19", - "quote 1.0.7", + "proc-macro2 1.0.24", + "quote 1.0.8", "regex", "rustc-hash", "shlex", @@ -419,12 +430,6 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" -[[package]] -name = "bitmask" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5da9b3d9f6f585199287a473f4f8dfab6566cf827d15c00c219f53c645687ead" - [[package]] name = "bitvec" version = "0.17.4" @@ -437,15 +442,13 @@ dependencies = [ [[package]] name = "blake2" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84ce5b6108f8e154604bd4eb76a2f726066c3464d5a552a4229262a18c9bb471" +checksum = "10a5720225ef5daecf08657f23791354e1685a8c91a4c60c7f3d3b2892f978f4" dependencies = [ - "byte-tools", - "byteorder", "crypto-mac 0.8.0", "digest 0.9.0", - "opaque-debug 0.2.3", + "opaque-debug 0.3.0", ] [[package]] @@ -460,39 +463,13 @@ dependencies = [ [[package]] name = "blake2b_simd" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a" -dependencies = [ - "arrayref", - "arrayvec 0.5.1", - "constant_time_eq", -] - -[[package]] -name = "blake2s_simd" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab9e07352b829279624ceb7c64adb4f585dacdb81d35cafae81139ccd617cf44" -dependencies = [ - "arrayref", - "arrayvec 0.5.1", - "constant_time_eq", -] - -[[package]] -name = "blake3" -version = "0.3.6" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce4f9586c9a3151c4b49b19e82ba163dd073614dd057e53c969e1a4db5b52720" +checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" dependencies = [ "arrayref", - "arrayvec 0.5.1", - "cc", - "cfg-if", + "arrayvec 0.5.2", "constant_time_eq", - "crypto-mac 0.8.0", - "digest 0.9.0", ] [[package]] @@ -519,9 +496,9 @@ dependencies = [ [[package]] name = "block-cipher" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa136449e765dc7faa244561ccae839c394048667929af599b5d931ebe7b7f10" +checksum = "f337a3e6da609650eb74e02bc9fac7b735049f7623ab12f2e4c719316fcc7e80" dependencies = [ "generic-array 0.14.4", ] @@ -543,32 +520,42 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" [[package]] name = "blocking" -version = "0.5.2" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea5800d29218fea137b0880387e5948694a23c93fcdde157006966693a865c7c" +checksum = "c5e170dbede1f740736619b776d7251cb1b9095c435c34d8ca9f57fcd2f335e9" dependencies = [ "async-channel", + "async-task", "atomic-waker", + "fastrand", "futures-lite", "once_cell", - "waker-fn", ] [[package]] name = "bs58" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "476e9cd489f9e121e02ffa6014a8ef220ecb15c05ed23fc34cca13925dc283fb" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bstr" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31accafdb70df7871592c058eca3985b71104e15ac32f64706022c58867da931" +checksum = "473fc6b38233f9af7baa94fb5852dca389e3d95b8e21c8e3719301462c5d9faf" dependencies = [ "memchr", ] +[[package]] +name = "build-helper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdce191bf3fa4995ce948c8c83b4640a1745457a149e73c6db75b4ffe36aad5f" +dependencies = [ + "semver 0.6.0", +] + [[package]] name = "bumpalo" version = "3.4.0" @@ -589,9 +576,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "byteorder" -version = "1.3.4" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" +checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b" [[package]] name = "bytes" @@ -611,10 +598,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" [[package]] -name = "c_linked_list" -version = "1.1.1" +name = "bytes" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4964518bd3b4a8190e832886cdc0da9794f12e8e6c1613a9e90ff331c4c8724b" +checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" [[package]] name = "cache-padded" @@ -622,11 +609,33 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba" +[[package]] +name = "cargo-platform" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0226944a63d1bf35a3b5f948dd7c59e263db83695c9e8bffc4037de02e30f1d7" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7714a157da7991e23d90686b9524b9e12e0407a108647f52e9328f4b3d51ac7f" +dependencies = [ + "cargo-platform", + "semver 0.11.0", + "semver-parser 0.10.2", + "serde", + "serde_json", +] + [[package]] name = "cc" -version = "1.0.59" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66120af515773fb005778dc07c261bd201ec8ce50bd6e7144c927753fe013381" +checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48" dependencies = [ "jobserver", ] @@ -646,11 +655,17 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + [[package]] name = "chacha20" -version = "0.4.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "086c0f07ac275808b7bf9a39f2fd013aae1498be83632814c8c4e0bd53f2dc58" +checksum = "244fbce0d47e97e8ef2f63b81d5e05882cb518c68531eb33194990d7b7e85845" dependencies = [ "stream-cipher", "zeroize", @@ -658,9 +673,9 @@ dependencies = [ [[package]] name = "chacha20poly1305" -version = "0.5.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18b0c90556d8e3fec7cf18d84a2f53d27b21288f2fe481b830fadcf809e48205" +checksum = "9bf18d374d66df0c05cdddd528a7db98f78c28e2519b120855c4f84c5027b1f5" dependencies = [ "aead", "chacha20", @@ -671,13 +686,24 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.15" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942f72db697d8767c22d46a598e01f2d3b475501ea43d0db4f16d90259182d0b" +checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" dependencies = [ + "libc", "num-integer", - "num-traits 0.2.12", + "num-traits 0.2.14", "time", + "winapi 0.3.9", +] + +[[package]] +name = "cipher" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" +dependencies = [ + "generic-array 0.14.4", ] [[package]] @@ -715,15 +741,6 @@ dependencies = [ "bitflags", ] -[[package]] -name = "cloudabi" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4344512281c643ae7638bbabc3af17a11307803ec8f0fcad9fae512a8bf36467" -dependencies = [ - "bitflags", -] - [[package]] name = "concurrent-queue" version = "1.2.2" @@ -734,24 +751,10 @@ dependencies = [ ] [[package]] -name = "const-random" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f1af9ac737b2dd2d577701e59fd09ba34822f6f2ebdb30a7647405d9e55e16a" -dependencies = [ - "const-random-macro", - "proc-macro-hack", -] - -[[package]] -name = "const-random-macro" -version = "0.1.8" +name = "const_fn" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25e4c606eb459dd29f7c57b2e0879f2b6f14ee130918c2b78ccb58a9624e6c7a" -dependencies = [ - "getrandom", - "proc-macro-hack", -] +checksum = "28b9d6de7f49e22cf97ad17fc4036ece69300032f45f78f30b4a4482cdc3f4a6" [[package]] name = "constant_time_eq" @@ -781,6 +784,12 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634" +[[package]] +name = "cpuid-bool" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" + [[package]] name = "cranelift-bforest" version = "0.66.0" @@ -802,10 +811,10 @@ dependencies = [ "cranelift-codegen-shared", "cranelift-entity", "gimli 0.21.0", - "log 0.4.11", + "log", "regalloc", "serde", - "smallvec 1.4.2", + "smallvec 1.6.1", "target-lexicon", "thiserror", ] @@ -842,8 +851,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2ef419efb4f94ecc02e5d9fbcc910d2bb7f0040e2de570e63a454f883bc891d6" dependencies = [ "cranelift-codegen", - "log 0.4.11", - "smallvec 1.4.2", + "log", + "smallvec 1.6.1", "target-lexicon", ] @@ -867,7 +876,7 @@ dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-frontend", - "log 0.4.11", + "log", "serde", "thiserror", "wasmparser 0.59.0", @@ -875,21 +884,21 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" +checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", ] [[package]] name = "crossbeam-channel" -version = "0.4.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ee0cc8804d5393478d743b035099520087a5186f3b93fa58cec08fa62407b6" +checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775" dependencies = [ - "cfg-if", - "crossbeam-utils", + "cfg-if 1.0.0", + "crossbeam-utils 0.8.1", ] [[package]] @@ -898,24 +907,49 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", + "crossbeam-epoch 0.8.2", + "crossbeam-utils 0.7.2", "maybe-uninit", ] +[[package]] +name = "crossbeam-deque" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-epoch 0.9.1", + "crossbeam-utils 0.8.1", +] + [[package]] name = "crossbeam-epoch" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" dependencies = [ - "autocfg 1.0.1", - "cfg-if", - "crossbeam-utils", + "autocfg", + "cfg-if 0.1.10", + "crossbeam-utils 0.7.2", "lazy_static", "maybe-uninit", - "memoffset", - "scopeguard 1.1.0", + "memoffset 0.5.6", + "scopeguard", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1aaa739f95311c2c7887a76863f500026092fb1dce0161dab577e559ef3569d" +dependencies = [ + "cfg-if 1.0.0", + "const_fn", + "crossbeam-utils 0.8.1", + "lazy_static", + "memoffset 0.6.1", + "scopeguard", ] [[package]] @@ -924,8 +958,8 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" dependencies = [ - "cfg-if", - "crossbeam-utils", + "cfg-if 0.1.10", + "crossbeam-utils 0.7.2", "maybe-uninit", ] @@ -935,13 +969,24 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" dependencies = [ - "autocfg 1.0.1", - "cfg-if", + "autocfg", + "cfg-if 0.1.10", "lazy_static", ] [[package]] -name = "crunchy" +name = "crossbeam-utils" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d" +dependencies = [ + "autocfg", + "cfg-if 1.0.0", + "lazy_static", +] + +[[package]] +name = "crunchy" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" @@ -963,7 +1008,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ "generic-array 0.14.4", - "subtle 2.2.3", + "subtle 2.4.0", ] [[package]] @@ -975,20 +1020,32 @@ dependencies = [ "sct", ] +[[package]] +name = "cuckoofilter" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b810a8449931679f64cd7eef1bbd0fa315801b6d5d9cdc1ace2804d6529eee18" +dependencies = [ + "byteorder", + "fnv", + "rand 0.7.3", +] + [[package]] name = "cumulus-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=4e7f138c828bcf118df1c988a400d4dac8e904d9#4e7f138c828bcf118df1c988a400d4dac8e904d9" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#7277f7aae5c0b45543a53d823d0c6c1da2a3ab18" dependencies = [ - "cumulus-consensus", "cumulus-network", "cumulus-primitives", "cumulus-runtime", - "futures 0.3.5", - "log 0.4.11", + "futures 0.3.12", + "log", "parity-scale-codec", "parking_lot 0.9.0", - "polkadot-collator", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-overseer", "polkadot-parachain", "polkadot-primitives", "polkadot-service", @@ -996,20 +1053,20 @@ dependencies = [ "sc-cli", "sc-client-api", "sp-api", - "sp-blockchain", "sp-consensus", "sp-core", "sp-inherents", + "sp-io", "sp-runtime", + "sp-state-machine", ] [[package]] name = "cumulus-consensus" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=4e7f138c828bcf118df1c988a400d4dac8e904d9#4e7f138c828bcf118df1c988a400d4dac8e904d9" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#7277f7aae5c0b45543a53d823d0c6c1da2a3ab18" dependencies = [ - "futures 0.3.5", - "log 0.4.11", + "futures 0.3.12", "parity-scale-codec", "polkadot-primitives", "polkadot-runtime", @@ -1023,39 +1080,43 @@ dependencies = [ "sp-runtime", "substrate-prometheus-endpoint", "tokio 0.1.22", + "tracing", ] [[package]] name = "cumulus-message-broker" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=4e7f138c828bcf118df1c988a400d4dac8e904d9#4e7f138c828bcf118df1c988a400d4dac8e904d9" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#7277f7aae5c0b45543a53d823d0c6c1da2a3ab18" dependencies = [ + "cumulus-parachain-upgrade", "cumulus-primitives", - "cumulus-upward-message", "frame-support", "frame-system", "parity-scale-codec", "sp-inherents", - "sp-io", - "sp-runtime", "sp-std", ] [[package]] name = "cumulus-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=4e7f138c828bcf118df1c988a400d4dac8e904d9#4e7f138c828bcf118df1c988a400d4dac8e904d9" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#7277f7aae5c0b45543a53d823d0c6c1da2a3ab18" dependencies = [ "cumulus-primitives", - "futures 0.3.5", - "log 0.4.11", + "derive_more 0.99.11", + "futures 0.3.12", + "futures-timer 3.0.2", + "log", "parity-scale-codec", "parking_lot 0.10.2", - "polkadot-collator", - "polkadot-network", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-overseer", "polkadot-primitives", + "polkadot-service", "polkadot-statement-table", "polkadot-validation", + "sc-client-api", "sp-api", "sp-blockchain", "sp-consensus", @@ -1066,12 +1127,13 @@ dependencies = [ [[package]] name = "cumulus-parachain-upgrade" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=4e7f138c828bcf118df1c988a400d4dac8e904d9#4e7f138c828bcf118df1c988a400d4dac8e904d9" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#7277f7aae5c0b45543a53d823d0c6c1da2a3ab18" dependencies = [ "cumulus-primitives", "cumulus-runtime", "frame-support", "frame-system", + "hash-db", "pallet-balances", "parity-scale-codec", "polkadot-parachain", @@ -1080,29 +1142,34 @@ dependencies = [ "sp-inherents", "sp-io", "sp-runtime", + "sp-state-machine", "sp-std", + "sp-trie", "sp-version", ] [[package]] name = "cumulus-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=4e7f138c828bcf118df1c988a400d4dac8e904d9#4e7f138c828bcf118df1c988a400d4dac8e904d9" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#7277f7aae5c0b45543a53d823d0c6c1da2a3ab18" dependencies = [ - "impl-trait-for-tuples", + "impl-trait-for-tuples 0.1.3", "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-primitives", + "sc-chain-spec", + "sp-core", "sp-inherents", "sp-runtime", "sp-std", + "sp-trie", ] [[package]] name = "cumulus-runtime" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=4e7f138c828bcf118df1c988a400d4dac8e904d9#4e7f138c828bcf118df1c988a400d4dac8e904d9" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#7277f7aae5c0b45543a53d823d0c6c1da2a3ab18" dependencies = [ "cumulus-primitives", "frame-executive", @@ -1111,8 +1178,10 @@ dependencies = [ "parity-scale-codec", "polkadot-parachain", "sp-core", + "sp-externalities", "sp-io", "sp-runtime", + "sp-state-machine", "sp-std", "sp-trie", "trie-db", @@ -1121,15 +1190,16 @@ dependencies = [ [[package]] name = "cumulus-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=4e7f138c828bcf118df1c988a400d4dac8e904d9#4e7f138c828bcf118df1c988a400d4dac8e904d9" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#7277f7aae5c0b45543a53d823d0c6c1da2a3ab18" dependencies = [ "cumulus-collator", "cumulus-consensus", - "cumulus-network", "cumulus-primitives", - "polkadot-collator", + "futures 0.3.12", + "polkadot-overseer", "polkadot-primitives", "polkadot-service", + "sc-cli", "sc-client-api", "sc-service", "sp-api", @@ -1138,77 +1208,40 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", -] - -[[package]] -name = "cumulus-token-dealer" -version = "0.1.0" -dependencies = [ - "cumulus-primitives", - "cumulus-upward-message", - "frame-support", - "frame-system", - "parity-scale-codec", - "polkadot-parachain", -] - -[[package]] -name = "cumulus-upward-message" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?rev=4e7f138c828bcf118df1c988a400d4dac8e904d9#4e7f138c828bcf118df1c988a400d4dac8e904d9" -dependencies = [ - "kusama-runtime", - "polkadot-core-primitives", - "polkadot-parachain", - "polkadot-runtime", - "rococo-runtime", - "sp-std", - "westend-runtime", + "tracing", ] [[package]] name = "curve25519-dalek" -version = "2.1.0" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d85653f070353a16313d0046f173f70d1aadd5b42600a14de626f0dfb3473a5" +checksum = "434e1720189a637d44fe464f4df1e6eb900b4835255b14354497c78af37d9bb8" dependencies = [ "byteorder", "digest 0.8.1", "rand_core 0.5.1", - "subtle 2.2.3", + "subtle 2.4.0", "zeroize", ] [[package]] name = "curve25519-dalek" -version = "3.0.0" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8492de420e9e60bc9a1d66e2dbb91825390b738a388606600663fc529b4b307" +checksum = "f627126b946c25a4638eec0ea634fc52506dea98db118aae985118ce7c3d723f" dependencies = [ "byteorder", "digest 0.9.0", "rand_core 0.5.1", - "subtle 2.2.3", + "subtle 2.4.0", "zeroize", ] [[package]] name = "data-encoding" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d0e2d24e5ee3b23a01de38eefdcd978907890701f08ffffd4cb457ca4ee8d6" - -[[package]] -name = "derive_more" -version = "0.14.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d944ac6003ed268757ef1ee686753b57efc5fcf0ebe7b64c9fc81e7e32ff839" -dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "rustc_version", - "syn 0.15.44", -] +checksum = "993a608597367c6377b258c25d7120740f00ed23a2252b729b1932dd7866f908" [[package]] name = "derive_more" @@ -1226,21 +1259,15 @@ dependencies = [ [[package]] name = "derive_more" -version = "0.99.9" +version = "0.99.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298998b1cf6b5b2c8a7b023dfd45821825ce3ba8a8af55c921a0e734e4653f76" +checksum = "41cb0e6161ad61ed084a36ba71fbba9e3ac5aee3606fb607fe08da6acbcf3d8c" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] -[[package]] -name = "difference" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" - [[package]] name = "digest" version = "0.8.1" @@ -1265,7 +1292,16 @@ version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "551a778172a450d7fc12e629ca3b0428d00f6afa9a43da1b630d54604e97371c" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", + "dirs-sys", +] + +[[package]] +name = "directories" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fed639d60b58d0f53498ab13d26f621fd77569cc6edb031f4cc36a2ad9da0f" +dependencies = [ "dirs-sys", ] @@ -1287,15 +1323,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbea" dependencies = [ "byteorder", - "quick-error", + "quick-error 1.2.3", ] -[[package]] -name = "doc-comment" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" - [[package]] name = "dyn-clonable" version = "0.9.0" @@ -1312,56 +1342,45 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "dyn-clone" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c53dc3a653e0f64081026e4bf048d48fec9fce90c66e8326ca7292df0ff2d82" +checksum = "ee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcf" [[package]] name = "ed25519" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf038a7b6fd7ef78ad3348b63f3a17550877b0e28f8d68bcc94894d1412158bc" +checksum = "37c66a534cbb46ab4ea03477eae19d5c22c01da8258030280b7bd9d8433fb6ef" dependencies = [ "signature", ] [[package]] name = "ed25519-dalek" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d2e93f837d749c16d118e7ddf7a4dfd0ac8f452cf51e46e9348824e5ef6851" +checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" dependencies = [ - "curve25519-dalek 3.0.0", + "curve25519-dalek 3.0.2", "ed25519", "rand 0.7.3", "serde", - "sha2 0.9.1", + "sha2 0.9.2", "zeroize", ] [[package]] name = "either" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56b59865bce947ac5958779cfa508f6c3b9497cc762b7e24a12d11ccde2c4f" - -[[package]] -name = "enum-primitive-derive" -version = "0.1.2" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b90e520ec62c1864c8c78d637acbfe8baf5f63240f2fb8165b8325c07812dd" -dependencies = [ - "num-traits 0.1.43", - "quote 0.3.15", - "syn 0.11.11", -] +checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" [[package]] name = "enum_primitive" @@ -1387,9 +1406,9 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] @@ -1400,31 +1419,31 @@ checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" dependencies = [ "atty", "humantime", - "log 0.4.11", + "log", "regex", "termcolor", ] [[package]] name = "environmental" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "516aa8d7a71cb00a1c4146f0798549b93d083d4f189b3ced8f3de6b8f11ee6c4" +checksum = "6576a1755ddffd988788025e75bce9e74b018f7cc226198fe931d077911c6d7e" [[package]] name = "erased-serde" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ca8b296792113e1500fd935ae487be6e00ce318952a6880555554824d6ebf38" +checksum = "0465971a8cc1fa2455c8465aaa377131e1f1cf4983280f474a13e68793aa770c" dependencies = [ "serde", ] [[package]] name = "errno" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eab5ee3df98a279d9b316b1af6ac95422127b1290317e6d18c1743c99418b01" +checksum = "fa68f2fb9cae9d37c9b2b3584aba698a2e97f72d7aef7b9f7aa71d8b54ce46fe" dependencies = [ "errno-dragonfly", "libc", @@ -1441,33 +1460,11 @@ dependencies = [ "libc", ] -[[package]] -name = "escargot" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74cf96bec282dcdb07099f7e31d9fed323bca9435a09aba7b6d99b7617bca96d" -dependencies = [ - "lazy_static", - "log 0.4.11", - "serde", - "serde_json", -] - [[package]] name = "event-listener" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cd41440ae7e4734bbd42302f63eaba892afc93a3912dad84006247f0dedb0e" - -[[package]] -name = "exit-future" -version = "0.1.4" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8013f441e38e31c670e7f34ec8f1d5d3a2bd9d303c1ff83976ca886005e8f48" -dependencies = [ - "futures 0.1.29", - "parking_lot 0.7.1", -] +checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59" [[package]] name = "exit-future" @@ -1475,7 +1472,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" dependencies = [ - "futures 0.3.5", + "futures 0.3.12", ] [[package]] @@ -1494,9 +1491,9 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", "synstructure", ] @@ -1514,15 +1511,18 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "1.3.4" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd3bdaaf0a72155260a1c098989b60db1cbb22d6a628e64f16237aa4da93cc7" +checksum = "ca5faf057445ce5c9d4329e382b2ce7ca38550ef3b73a5348362d5f24e0c7fe3" +dependencies = [ + "instant", +] [[package]] name = "fdlimit" -version = "0.1.4" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da54a593b34c71b889ee45f5b5bb900c74148c5f7f8c6a9479ee7899f69603c" +checksum = "2c4c9e43643f5a3be4ca5b67d26b98031ff9db6806c3440ae32e02e3ceac3f1b" dependencies = [ "libc", ] @@ -1534,7 +1534,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fdbe0d94371f9ce939b555dd342d0686cc4c0cadbcd4b61d70af5ff97eb4126" dependencies = [ "env_logger", - "log 0.4.11", + "log", ] [[package]] @@ -1544,22 +1544,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8feb87a63249689640ac9c011742c33139204e3c134293d3054022276869133b" dependencies = [ "either", - "futures 0.3.5", + "futures 0.3.12", "futures-timer 2.0.2", - "log 0.4.11", - "num-traits 0.2.12", + "log", + "num-traits 0.2.14", "parity-scale-codec", "parking_lot 0.9.0", ] [[package]] name = "fixed-hash" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11498d382790b7a8f2fd211780bec78619bba81cdad3a283997c0c41f836759c" +checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" dependencies = [ "byteorder", - "rand 0.7.3", + "rand 0.8.2", "rustc-hex", "static_assertions", ] @@ -1572,11 +1572,11 @@ checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" [[package]] name = "flate2" -version = "1.0.17" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "766d0e77a2c1502169d4a93ff3b8c15a71fd946cd0126309752104e5f3c46d94" +checksum = "7411863d55df97a419aa64cb4d2f167103ea9d767e2c54a1868b7ac3f6b47129" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "crc32fast", "libc", "libz-sys", @@ -1591,16 +1591,26 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "parity-scale-codec", ] +[[package]] +name = "form_urlencoded" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00" +dependencies = [ + "matches", + "percent-encoding 2.1.0", +] + [[package]] name = "frame-benchmarking" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", @@ -1612,21 +1622,27 @@ dependencies = [ "sp-runtime", "sp-runtime-interface", "sp-std", + "sp-storage", ] [[package]] name = "frame-benchmarking-cli" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ + "Inflector", + "chrono", "frame-benchmarking", + "handlebars", "parity-scale-codec", "sc-cli", "sc-client-db", "sc-executor", "sc-service", + "serde", "sp-core", "sp-externalities", + "sp-keystore", "sp-runtime", "sp-state-machine", "structopt", @@ -1634,13 +1650,14 @@ dependencies = [ [[package]] name = "frame-executive" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", "serde", + "sp-core", "sp-io", "sp-runtime", "sp-std", @@ -1649,8 +1666,8 @@ dependencies = [ [[package]] name = "frame-metadata" -version = "11.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "12.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "parity-scale-codec", "serde", @@ -1660,19 +1677,19 @@ dependencies = [ [[package]] name = "frame-support" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "bitmask", + "bitflags", "frame-metadata", "frame-support-procedural", - "impl-trait-for-tuples", - "log 0.4.11", + "impl-trait-for-tuples 0.2.0", + "log", "once_cell", "parity-scale-codec", "paste", "serde", - "smallvec 1.4.2", + "smallvec 1.6.1", "sp-arithmetic", "sp-core", "sp-inherents", @@ -1685,44 +1702,45 @@ dependencies = [ [[package]] name = "frame-support-procedural" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ + "Inflector", "frame-support-procedural-tools", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "frame-support-procedural-tools" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "frame-support-procedural-tools-derive" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "frame-system" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", - "impl-trait-for-tuples", + "impl-trait-for-tuples 0.2.0", "parity-scale-codec", "serde", "sp-core", @@ -1732,10 +1750,24 @@ dependencies = [ "sp-version", ] +[[package]] +name = "frame-system-benchmarking" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "sp-core", + "sp-runtime", + "sp-std", +] + [[package]] name = "frame-system-rpc-runtime-api" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "parity-scale-codec", "sp-api", @@ -1743,9 +1775,9 @@ dependencies = [ [[package]] name = "fs-swap" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "921d332c89b3b61a826de38c61ee5b6e02c56806cade1b0e5d81bd71f57a71bb" +checksum = "5839fda247e24ca4919c87c71dd5ca658f1f39e4f06829f80e3f15c3bafcfc2c" dependencies = [ "lazy_static", "libc", @@ -1777,15 +1809,15 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" [[package]] name = "futures" -version = "0.1.29" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef" +checksum = "4c7e4c2612746b0df8fed4ce0c69156021b704c9aefa360311c04e6e9e002eed" [[package]] name = "futures" -version = "0.3.5" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613" +checksum = "da9052a1a50244d8d5aa9bf55cbc2fb6f357c86cc52e46c62ed390a7180cf150" dependencies = [ "futures-channel", "futures-core", @@ -1798,34 +1830,19 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.5" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5" +checksum = "f2d31b7ec7efab6eefc7c57233bb10b847986139d88cc2f5a02a1ae6871a1846" dependencies = [ "futures-core", "futures-sink", ] -[[package]] -name = "futures-channel-preview" -version = "0.3.0-alpha.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5e5f4df964fa9c1c2f8bddeb5c3611631cacd93baf810fc8bb2fb4b495c263a" -dependencies = [ - "futures-core-preview", -] - [[package]] name = "futures-core" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399" - -[[package]] -name = "futures-core-preview" -version = "0.3.0-alpha.19" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35b6263fb1ef523c3056565fa67b1d16f0a8604ff12b11b08c25f28a734c60a" +checksum = "79e5145dde8da7d1b3892dad07a9c98fc04bc39892b1ecc9692cf53e2b780a65" [[package]] name = "futures-cpupool" @@ -1833,7 +1850,7 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" dependencies = [ - "futures 0.1.29", + "futures 0.1.30", "num_cpus", ] @@ -1843,21 +1860,21 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdcef58a173af8148b182684c9f2d5250875adbcaff7b5794073894f9d8634a9" dependencies = [ - "futures 0.1.29", - "futures 0.3.5", + "futures 0.1.30", + "futures 0.3.12", "lazy_static", - "log 0.4.11", + "log", "parking_lot 0.9.0", - "pin-project", + "pin-project 0.4.27", "serde", "serde_json", ] [[package]] name = "futures-executor" -version = "0.3.5" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314" +checksum = "e9e59fdc009a4b3096bf94f740a0f2424c082521f20a9b08c5c07c48d90fd9b9" dependencies = [ "futures-core", "futures-task", @@ -1867,48 +1884,48 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.5" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789" +checksum = "28be053525281ad8259d47e4de5de657b25e7bac113458555bb4b70bc6870500" [[package]] name = "futures-lite" -version = "0.1.11" +version = "1.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97999970129b808f0ccba93211201d431fcc12d7e1ffae03a61b5cedd1a7ced2" +checksum = "b4481d0cd0de1d204a4fa55e7d45f07b1d958abcb06714b3446438e2eff695fb" dependencies = [ "fastrand", "futures-core", "futures-io", "memchr", - "parking 2.0.0", - "pin-project-lite", + "parking", + "pin-project-lite 0.2.4", "waker-fn", ] [[package]] name = "futures-macro" -version = "0.3.5" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39" +checksum = "c287d25add322d9f9abdcdc5927ca398917996600182178774032e9f8258fedd" dependencies = [ "proc-macro-hack", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "futures-sink" -version = "0.3.5" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc" +checksum = "caf5c69029bda2e743fddd0582d1083951d65cc9539aebf8812f36c3491342d6" [[package]] name = "futures-task" -version = "0.3.5" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626" +checksum = "13de07eb8ea81ae445aca7b69f5f7bf15d7bf4912d8ca37d6645c77ae8a58d86" dependencies = [ "once_cell", ] @@ -1924,18 +1941,14 @@ name = "futures-timer" version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" -dependencies = [ - "gloo-timers", - "send_wrapper 0.4.0", -] [[package]] name = "futures-util" -version = "0.3.5" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6" +checksum = "632a8cd0f2a4b3fdea1657f08bde063848c3bd00f9bbf6e256b8be78802e624b" dependencies = [ - "futures 0.1.29", + "futures 0.1.30", "futures-channel", "futures-core", "futures-io", @@ -1943,25 +1956,13 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project", + "pin-project-lite 0.2.4", "pin-utils", "proc-macro-hack", "proc-macro-nested", "slab", ] -[[package]] -name = "futures-util-preview" -version = "0.3.0-alpha.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce968633c17e5f97936bd2797b6e38fb56cf16a7422319f7ec2e30d3c470e8d" -dependencies = [ - "futures-channel-preview", - "futures-core-preview", - "pin-utils", - "slab", -] - [[package]] name = "futures_codec" version = "0.4.1" @@ -1969,9 +1970,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce54d63f8b0c75023ed920d46fd71d0cbbb830b0ee012726b5b4f506fb6dea5b" dependencies = [ "bytes 0.5.6", - "futures 0.3.5", + "futures 0.3.12", "memchr", - "pin-project", + "pin-project 0.4.27", ] [[package]] @@ -1991,53 +1992,52 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.4" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" +checksum = "0ed1e761351b56f54eb9dcd0cfaca9fd0daecf93918e1cfc01c8a3d26ee7adcd" dependencies = [ "typenum", - "version_check", ] [[package]] -name = "get_if_addrs" -version = "0.5.3" +name = "generic-array" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abddb55a898d32925f3148bd281174a68eeb68bbfd9a5938a57b18f506ee4ef7" +checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" dependencies = [ - "c_linked_list", - "get_if_addrs-sys", - "libc", - "winapi 0.2.8", + "typenum", + "version_check", ] [[package]] -name = "get_if_addrs-sys" -version = "0.1.1" +name = "getrandom" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d04f9fb746cf36b191c00f3ede8bde9c8e64f9f4b05ae2694a9ccf5e3f5ab48" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "gcc", + "cfg-if 1.0.0", "libc", + "wasi 0.9.0+wasi-snapshot-preview1", ] [[package]] name = "getrandom" -version = "0.1.14" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" +checksum = "4060f4657be78b8e766215b02b18a2e862d83745545de804638e2b545e81aee6" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", - "wasi", + "wasi 0.10.1+wasi-snapshot-preview1", ] [[package]] name = "ghash" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6e27f0689a6e15944bdce7e45425efb87eaa8ab0c6e87f11d0987a9133e2531" +checksum = "97304e4cd182c3846f7575ced3890c53012ce534ad9114046b0a9e00bb30a375" dependencies = [ + "opaque-debug 0.3.0", "polyval", ] @@ -2054,9 +2054,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724" +checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce" [[package]] name = "glob" @@ -2066,14 +2066,14 @@ checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" [[package]] name = "globset" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ad1da430bd7281dde2576f44c84cc3f0f7b475e7202cd503042dff01a8c8120" +checksum = "c152169ef1e421390738366d2f796655fec62621dabbd0fd476f905934061e4a" dependencies = [ "aho-corasick", "bstr", "fnv", - "log 0.4.11", + "log", "regex", ] @@ -2099,10 +2099,10 @@ dependencies = [ "byteorder", "bytes 0.4.12", "fnv", - "futures 0.1.29", + "futures 0.1.30", "http 0.1.21", "indexmap", - "log 0.4.11", + "log", "slab", "string", "tokio-io", @@ -2110,21 +2110,36 @@ dependencies = [ [[package]] name = "h2" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "993f9e0baeed60001cf565546b0d3dbe6a6ad23f2bd31644a133c641eccf6d53" +checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535" dependencies = [ "bytes 0.5.6", "fnv", "futures-core", "futures-sink", "futures-util", - "http 0.2.1", + "http 0.2.3", "indexmap", "slab", - "tokio 0.2.22", + "tokio 0.2.24", "tokio-util", "tracing", + "tracing-futures", +] + +[[package]] +name = "handlebars" +version = "3.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "964d0e99a61fe9b1b347389b77ebf8b7e1587b70293676aaca7d27e59b9073b2" +dependencies = [ + "log", + "pest", + "pest_derive", + "quick-error 2.0.0", + "serde", + "serde_json", ] [[package]] @@ -2144,38 +2159,27 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6073d0ca812575946eb5f35ff68dbe519907b25c42530389ff946dc84c6ead" -dependencies = [ - "ahash 0.2.18", - "autocfg 0.1.7", -] - -[[package]] -name = "hashbrown" -version = "0.8.2" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25" +checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" dependencies = [ - "ahash 0.3.8", - "autocfg 1.0.1", + "ahash", ] [[package]] name = "heck" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" +checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac" dependencies = [ "unicode-segmentation", ] [[package]] name = "hermit-abi" -version = "0.1.15" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9" +checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8" dependencies = [ "libc", ] @@ -2196,6 +2200,12 @@ dependencies = [ "proc-macro-hack", ] +[[package]] +name = "hex-literal" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5af1f635ef1bc545d78392b136bfe1c9809e029023c84a3638a864a10b8819c8" + [[package]] name = "hex-literal-impl" version = "0.2.2" @@ -2205,6 +2215,12 @@ dependencies = [ "proc-macro-hack", ] +[[package]] +name = "hex_fmt" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b07f60793ff0a4d9cef0f18e63b5357e06209987153a64648c972c1e5aff336f" + [[package]] name = "hmac" version = "0.7.1" @@ -2216,14 +2232,24 @@ dependencies = [ ] [[package]] -name = "hmac-drbg" -version = "0.2.0" +name = "hmac" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" +dependencies = [ + "crypto-mac 0.8.0", + "digest 0.9.0", +] + +[[package]] +name = "hmac-drbg" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6e570451493f10f6581b48cdd530413b63ea9e780f544bfd3bdcaa0d89d1a7b" dependencies = [ "digest 0.8.1", "generic-array 0.12.3", - "hmac", + "hmac 0.7.1", ] [[package]] @@ -2239,11 +2265,11 @@ dependencies = [ [[package]] name = "http" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9" +checksum = "7245cd7449cc792608c3c8a9eaf69bd4eabbabf802713748fd739c98b82f0747" dependencies = [ - "bytes 0.5.6", + "bytes 1.0.1", "fnv", "itoa", ] @@ -2255,7 +2281,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d" dependencies = [ "bytes 0.4.12", - "futures 0.1.29", + "futures 0.1.30", "http 0.1.21", "tokio-buf", ] @@ -2267,7 +2293,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" dependencies = [ "bytes 0.5.6", - "http 0.2.1", + "http 0.2.3", ] [[package]] @@ -2276,13 +2302,19 @@ version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" +[[package]] +name = "httpdate" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" + [[package]] name = "humantime" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" dependencies = [ - "quick-error", + "quick-error 1.2.3", ] [[package]] @@ -2292,7 +2324,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9dbe6ed1438e1f8ad955a4701e9a944938e9519f6888d12d8558b645e247d5f6" dependencies = [ "bytes 0.4.12", - "futures 0.1.29", + "futures 0.1.30", "futures-cpupool", "h2 0.1.26", "http 0.1.21", @@ -2300,13 +2332,13 @@ dependencies = [ "httparse", "iovec", "itoa", - "log 0.4.11", + "log", "net2", "rustc_version", "time", "tokio 0.1.22", "tokio-buf", - "tokio-executor 0.1.10", + "tokio-executor", "tokio-io", "tokio-reactor", "tokio-tcp", @@ -2317,23 +2349,23 @@ dependencies = [ [[package]] name = "hyper" -version = "0.13.7" +version = "0.13.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e68a8dd9716185d9e64ea473ea6ef63529252e3e27623295a0378a19665d5eb" +checksum = "f6ad767baac13b44d4529fcf58ba2cd0995e36e7b435bc5b039de6f47e880dbf" dependencies = [ "bytes 0.5.6", "futures-channel", "futures-core", "futures-util", - "h2 0.2.6", - "http 0.2.1", + "h2 0.2.7", + "http 0.2.3", "http-body 0.3.1", "httparse", + "httpdate", "itoa", - "pin-project", + "pin-project 1.0.4", "socket2", - "time", - "tokio 0.2.22", + "tokio 0.2.24", "tower-service", "tracing", "want 0.3.0", @@ -2348,11 +2380,11 @@ dependencies = [ "bytes 0.5.6", "ct-logs", "futures-util", - "hyper 0.13.7", - "log 0.4.11", - "rustls", + "hyper 0.13.9", + "log", + "rustls 0.18.1", "rustls-native-certs", - "tokio 0.2.22", + "tokio 0.2.24", "tokio-rustls", "webpki", ] @@ -2380,21 +2412,49 @@ dependencies = [ ] [[package]] -name = "impl-codec" -version = "0.4.2" +name = "if-addrs" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1be51a921b067b0eaca2fad532d9400041561aa922221cc65f95a85641c6bf53" +checksum = "28538916eb3f3976311f5dfbe67b5362d0add1293d0a9cad17debf86f8e3aa48" dependencies = [ - "parity-scale-codec", + "if-addrs-sys", + "libc", + "winapi 0.3.9", ] [[package]] -name = "impl-serde" -version = "0.2.3" +name = "if-addrs-sys" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58e3cae7e99c7ff5a995da2cf78dd0a5383740eda71d98cf7b1910c301ac69b8" +checksum = "de74b9dd780476e837e5eb5ab7c88b49ed304126e412030a0adba99c8efe79ea" dependencies = [ - "serde", + "cc", + "libc", +] + +[[package]] +name = "if-watch" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d7c5e361e6b05c882b4847dd98992534cebc6fcde7f4bc98225bcf10fd6d0d" +dependencies = [ + "async-io", + "futures 0.3.12", + "futures-lite", + "if-addrs", + "ipnet", + "libc", + "log", + "winapi 0.3.9", +] + +[[package]] +name = "impl-codec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1be51a921b067b0eaca2fad532d9400041561aa922221cc65f95a85641c6bf53" +dependencies = [ + "parity-scale-codec", ] [[package]] @@ -2412,33 +2472,56 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ef5550a42e3740a0e71f909d4c861056a284060af885ae7aa6242820f920d9d" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f65a8ecf74feeacdab8d38cb129e550ca871cccaa7d1921d8636ecd75534903" +dependencies = [ + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "indexmap" -version = "1.5.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b45e59b16c76b11bf9738fd5d38879d3bd28ad292d7b313608becb17ae2df9" +checksum = "4fb1fa934250de4de8aef298d81c729a7d33d8c239daa3a7575e6b92bfc7313b" dependencies = [ - "autocfg 1.0.1", - "hashbrown 0.8.2", + "autocfg", + "hashbrown", "serde", ] [[package]] name = "instant" -version = "0.1.6" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "integer-encoding" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b141fdc7836c525d4d594027d318c84161ca17aaf8113ab1f81ab93ae897485" +checksum = "f6104619c35f8835695e517cfb80fb7142139ee4b53f4d0fa4c8dca6e98fbc66" [[package]] name = "integer-sqrt" -version = "0.1.3" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f65877bf7d44897a473350b1046277941cee20b263397e90869c50b6e766088b" +checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770" +dependencies = [ + "num-traits 0.2.14", +] [[package]] name = "intervalier" @@ -2446,7 +2529,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275" dependencies = [ - "futures 0.3.5", + "futures 0.3.12", "futures-timer 2.0.2", ] @@ -2491,9 +2574,9 @@ dependencies = [ [[package]] name = "itoa" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6" +checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" [[package]] name = "jobserver" @@ -2506,24 +2589,24 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.44" +version = "0.3.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85a7e2c92a4804dd459b86c339278d0fe87cf93757fae222c3fa3ae75458bc73" +checksum = "cf3d7383929f7c9c7c2d0fa596f325832df98c3704f2c60553080f7127a58175" dependencies = [ "wasm-bindgen", ] [[package]] name = "jsonrpc-client-transports" -version = "14.2.1" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2773fa94a2a1fd51efb89a8f45b8861023dbb415d18d3c9235ae9388d780f9ec" +checksum = "489b9c612e60c766f751ab40fcb43cbb55a1e10bb44a9b4307ed510ca598cbd7" dependencies = [ "failure", - "futures 0.1.29", + "futures 0.1.30", "jsonrpc-core", "jsonrpc-pubsub", - "log 0.4.11", + "log", "serde", "serde_json", "url 1.7.2", @@ -2531,12 +2614,12 @@ dependencies = [ [[package]] name = "jsonrpc-core" -version = "14.2.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0747307121ffb9703afd93afbd0fb4f854c38fb873f2c8b90e0e902f27c7b62" +checksum = "0745a6379e3edc893c84ec203589790774e4247420033e71a76d3ab4687991fa" dependencies = [ - "futures 0.1.29", - "log 0.4.11", + "futures 0.1.30", + "log", "serde", "serde_derive", "serde_json", @@ -2544,35 +2627,35 @@ dependencies = [ [[package]] name = "jsonrpc-core-client" -version = "14.2.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34221123bc79b66279a3fde2d3363553835b43092d629b34f2e760c44dc94713" +checksum = "6f764902d7b891344a0acb65625f32f6f7c6db006952143bd650209fbe7d94db" dependencies = [ "jsonrpc-client-transports", ] [[package]] name = "jsonrpc-derive" -version = "14.2.1" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fadf6945e227246825a583514534d864554e9f23d80b3c77d034b10983db5ef" +checksum = "99a847f9ec7bb52149b2786a17c9cb260d6effc6b8eeb8c16b343a487a7563a3" dependencies = [ "proc-macro-crate", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "jsonrpc-http-server" -version = "14.2.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da906d682799df05754480dac1b9e70ec92e12c19ebafd2662a5ea1c9fd6522" +checksum = "4fb5c4513b7b542f42da107942b7b759f27120b5cc894729f88254b28dff44b7" dependencies = [ "hyper 0.12.35", "jsonrpc-core", "jsonrpc-server-utils", - "log 0.4.11", + "log", "net2", "parking_lot 0.10.2", "unicase", @@ -2580,13 +2663,13 @@ dependencies = [ [[package]] name = "jsonrpc-ipc-server" -version = "14.2.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dedccd693325d833963b549e959137f30a7a0ea650cde92feda81dc0c1393cb5" +checksum = "cf50e53e4eea8f421a7316c5f63e395f7bc7c4e786a6dc54d76fab6ff7aa7ce7" dependencies = [ "jsonrpc-core", "jsonrpc-server-utils", - "log 0.4.11", + "log", "parity-tokio-ipc", "parking_lot 0.10.2", "tokio-service", @@ -2594,12 +2677,12 @@ dependencies = [ [[package]] name = "jsonrpc-pubsub" -version = "14.2.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d44f5602a11d657946aac09357956d2841299ed422035edf140c552cb057986" +checksum = "639558e0604013be9787ae52f798506ae42bf4220fe587bdc5625871cc8b9c77" dependencies = [ "jsonrpc-core", - "log 0.4.11", + "log", "parking_lot 0.10.2", "rand 0.7.3", "serde", @@ -2607,15 +2690,15 @@ dependencies = [ [[package]] name = "jsonrpc-server-utils" -version = "14.2.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56cbfb462e7f902e21121d9f0d1c2b77b2c5b642e1a4e8f4ebfa2e15b94402bb" +checksum = "72f1f3990650c033bd8f6bd46deac76d990f9bbfb5f8dc8c4767bf0a00392176" dependencies = [ "bytes 0.4.12", "globset", "jsonrpc-core", "lazy_static", - "log 0.4.11", + "log", "tokio 0.1.22", "tokio-codec", "unicase", @@ -2623,16 +2706,16 @@ dependencies = [ [[package]] name = "jsonrpc-ws-server" -version = "14.2.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "903d3109fe7c4acb932b567e1e607e0f524ed04741b09fb0e61841bc40a022fc" +checksum = "6596fe75209b73a2a75ebe1dce4e60e03b88a2b25e8807b667597f6315150d22" dependencies = [ "jsonrpc-core", "jsonrpc-server-utils", - "log 0.4.11", + "log", + "parity-ws", "parking_lot 0.10.2", "slab", - "ws", ] [[package]] @@ -2653,23 +2736,23 @@ dependencies = [ [[package]] name = "kusama-runtime" -version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" dependencies = [ "bitvec", "frame-executive", "frame-support", "frame-system", "frame-system-rpc-runtime-api", - "log 0.3.9", + "log", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-balances", + "pallet-bounties", "pallet-collective", "pallet-democracy", "pallet-elections-phragmen", - "pallet-finality-tracker", "pallet-grandpa", "pallet-identity", "pallet-im-online", @@ -2687,6 +2770,7 @@ dependencies = [ "pallet-staking", "pallet-staking-reward-curve", "pallet-timestamp", + "pallet-tips", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", @@ -2698,7 +2782,7 @@ dependencies = [ "rustc-hex", "serde", "serde_derive", - "smallvec 1.4.2", + "smallvec 1.6.1", "sp-api", "sp-authority-discovery", "sp-block-builder", @@ -2714,7 +2798,7 @@ dependencies = [ "sp-transaction-pool", "sp-version", "static_assertions", - "substrate-wasm-builder-runner 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-wasm-builder 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2723,46 +2807,46 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" dependencies = [ - "log 0.4.11", + "log", ] [[package]] name = "kvdb" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0315ef2f688e33844400b31f11c263f2b3dc21d8b9355c6891c5f185fae43f9a" +checksum = "92312348daade49976a6dc59263ad39ed54f840aacb5664874f7c9aa16e5f848" dependencies = [ "parity-util-mem", - "smallvec 1.4.2", + "smallvec 1.6.1", ] [[package]] name = "kvdb-memorydb" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73de822b260a3bdfb889dbbb65bb2d473eee2253973d6fa4a5d149a2a4a7c66e" +checksum = "986052a8d16c692eaebe775391f9a3ac26714f3907132658500b601dec94c8c2" dependencies = [ "kvdb", "parity-util-mem", - "parking_lot 0.10.2", + "parking_lot 0.11.1", ] [[package]] name = "kvdb-rocksdb" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c341ef15cfb1f923fa3b5138bfbd2d4813a2c1640b473727a53351c7f0b0fa2" +checksum = "8d92c36be64baba5ea549116ff0d7ffd445456a7be8aaee21ec05882b980cd11" dependencies = [ "fs-swap", "kvdb", - "log 0.4.11", + "log", "num_cpus", "owning_ref", "parity-util-mem", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "regex", "rocksdb", - "smallvec 1.4.2", + "smallvec 1.6.1", ] [[package]] @@ -2785,27 +2869,9 @@ checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a" [[package]] name = "libc" -version = "0.2.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "755456fae044e6fa1ebbbd1b3e902ae19e73097ed4ed87bb79934a867c007bc3" - -[[package]] -name = "libflate" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9bac9023e1db29c084f9f8cd9d3852e5e8fddf98fb47c4964a0ea4663d95949" -dependencies = [ - "adler32", - "crc32fast", - "libflate_lz77", - "rle-decode-fast", -] - -[[package]] -name = "libflate_lz77" -version = "1.0.0" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3286f09f7d4926fc486334f28d8d2e6ebe4f7f9994494b6dab27ddfad2c9b11b" +checksum = "89203f3fba0a3795506acaad8ebce3c80c0af93f994d5a1d7a0b1eeb23271929" [[package]] name = "libloading" @@ -2825,187 +2891,249 @@ checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" [[package]] name = "libp2p" -version = "0.22.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0306a49ee6a89468f96089906f36b0eef82c988dcfc8acf3e2dcd6ad1c859f85" +checksum = "2e17c636b5fe5ff900ccc2840b643074bfac321551d821243a781d0d46f06588" dependencies = [ + "atomic", "bytes 0.5.6", - "futures 0.3.5", + "futures 0.3.12", "lazy_static", "libp2p-core", "libp2p-core-derive", + "libp2p-deflate", "libp2p-dns", + "libp2p-floodsub", + "libp2p-gossipsub", "libp2p-identify", "libp2p-kad", "libp2p-mdns", "libp2p-mplex", "libp2p-noise", "libp2p-ping", + "libp2p-plaintext", + "libp2p-pnet", + "libp2p-request-response", "libp2p-swarm", "libp2p-tcp", + "libp2p-uds", "libp2p-wasm-ext", "libp2p-websocket", "libp2p-yamux", - "multihash", "parity-multiaddr", - "parking_lot 0.10.2", - "pin-project", - "smallvec 1.4.2", + "parking_lot 0.11.1", + "pin-project 1.0.4", + "smallvec 1.6.1", "wasm-timer", ] [[package]] name = "libp2p-core" -version = "0.20.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a694fd76d7c33a45a0e6e1525e9b9b5d11127c9c94e560ac0f8abba54ed80af" +checksum = "e1cb706da14c064dce54d8864ade6836b3486b51689300da74eeb7053aa4551e" dependencies = [ "asn1_der", "bs58", "ed25519-dalek", "either", "fnv", - "futures 0.3.5", + "futures 0.3.12", "futures-timer 3.0.2", "lazy_static", "libsecp256k1", - "log 0.4.11", + "log", "multihash", "multistream-select", "parity-multiaddr", - "parking_lot 0.10.2", - "pin-project", + "parking_lot 0.11.1", + "pin-project 1.0.4", "prost", "prost-build", "rand 0.7.3", "ring", "rw-stream-sink", - "sha2 0.8.2", - "smallvec 1.4.2", + "sha2 0.9.2", + "smallvec 1.6.1", "thiserror", - "unsigned-varint 0.4.0", + "unsigned-varint", "void", "zeroize", ] [[package]] name = "libp2p-core-derive" -version = "0.20.2" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4bc40943156e42138d22ed3c57ff0e1a147237742715937622a99b10fbe0156" +dependencies = [ + "quote 1.0.8", + "syn 1.0.58", +] + +[[package]] +name = "libp2p-deflate" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f753d9324cd3ec14bf04b8a8cd0d269c87f294153d6bf2a84497a63a5ad22213" +checksum = "e3257a41f376aa23f237231971fee7e350e4d8353cfcf233aef34d6d6b638f0c" dependencies = [ - "quote 1.0.7", - "syn 1.0.39", + "flate2", + "futures 0.3.12", + "libp2p-core", ] [[package]] name = "libp2p-dns" -version = "0.20.0" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e09bab25af01326b4ed9486d31325911437448edda30bc57681502542d49f20" +dependencies = [ + "futures 0.3.12", + "libp2p-core", + "log", +] + +[[package]] +name = "libp2p-floodsub" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fd8cdd5ef1dd0b7346975477216d752de976b92e43051bc8bd808c372ea6cec" +dependencies = [ + "cuckoofilter", + "fnv", + "futures 0.3.12", + "libp2p-core", + "libp2p-swarm", + "log", + "prost", + "prost-build", + "rand 0.7.3", + "smallvec 1.6.1", +] + +[[package]] +name = "libp2p-gossipsub" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751924b6b98e350005e0b87a822beb246792a3fb878c684e088f866158120ac" +checksum = "d489531aa9d4ba8726a08b3b74e21c2e10a518ad266ebca98d79040123ab0036" dependencies = [ - "futures 0.3.5", + "base64 0.13.0", + "byteorder", + "bytes 0.5.6", + "fnv", + "futures 0.3.12", + "futures_codec", + "hex_fmt", "libp2p-core", - "log 0.4.11", + "libp2p-swarm", + "log", + "lru_time_cache", + "prost", + "prost-build", + "rand 0.7.3", + "sha2 0.9.2", + "smallvec 1.6.1", + "unsigned-varint", + "wasm-timer", ] [[package]] name = "libp2p-identify" -version = "0.20.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "912c00a7bf67e0e765daf0cc37e08f675ea26aba3d6d1fbfaee81f19a4c23049" +checksum = "c43bc51a9bc3780288c526615ba0f5f8216820ea6dcc02b89e8daee526c5fccb" dependencies = [ - "futures 0.3.5", + "futures 0.3.12", "libp2p-core", "libp2p-swarm", - "log 0.4.11", + "log", "prost", "prost-build", - "smallvec 1.4.2", + "smallvec 1.6.1", "wasm-timer", ] [[package]] name = "libp2p-kad" -version = "0.21.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44ed3a4c8111c570ab2bffb30c6353178d7603ce3787e3c5f2493c8d3d16d1f0" +checksum = "bfe68563ee33f3848293919afd61470ebcdea4e757a36cc2c33a5508abec2216" dependencies = [ - "arrayvec 0.5.1", + "arrayvec 0.5.2", "bytes 0.5.6", "either", "fnv", - "futures 0.3.5", + "futures 0.3.12", "futures_codec", "libp2p-core", "libp2p-swarm", - "log 0.4.11", - "multihash", + "log", "prost", "prost-build", "rand 0.7.3", - "sha2 0.8.2", - "smallvec 1.4.2", - "uint", - "unsigned-varint 0.4.0", + "sha2 0.9.2", + "smallvec 1.6.1", + "uint 0.8.5", + "unsigned-varint", "void", "wasm-timer", ] [[package]] name = "libp2p-mdns" -version = "0.20.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd004c668160fd922f7268b2cd1e4550ff69165d9c744e9eb5770086eb753d02" +checksum = "8a9e12688e8f14008c950c1efde587cb44dbf316fa805f419cd4e524991236f5" dependencies = [ - "async-std", + "async-io", "data-encoding", "dns-parser", - "either", - "futures 0.3.5", + "futures 0.3.12", + "if-watch", "lazy_static", "libp2p-core", "libp2p-swarm", - "log 0.4.11", - "net2", + "log", "rand 0.7.3", - "smallvec 1.4.2", + "smallvec 1.6.1", + "socket2", "void", - "wasm-timer", ] [[package]] name = "libp2p-mplex" -version = "0.20.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14ae0ffacd30f073f96cd518b2c9cd2cb18ac27c3d136a4b23cf1af99f33e541" +checksum = "ce3200fbe6608e623bd9efa459cc8bafa0e4efbb0a2dfcdd0e1387ff4181264b" dependencies = [ "bytes 0.5.6", - "fnv", - "futures 0.3.5", + "futures 0.3.12", "futures_codec", "libp2p-core", - "log 0.4.11", - "parking_lot 0.10.2", - "unsigned-varint 0.4.0", + "log", + "nohash-hasher", + "parking_lot 0.11.1", + "rand 0.7.3", + "smallvec 1.6.1", + "unsigned-varint", ] [[package]] name = "libp2p-noise" -version = "0.21.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f353f8966bbaaf7456535fffd3f366f153148773a0cf04b2ec3860955cb720e" +checksum = "0580e0d18019d254c9c349c03ff7b22e564b6f2ada70c045fc39738e144f2139" dependencies = [ "bytes 0.5.6", - "curve25519-dalek 2.1.0", - "futures 0.3.5", + "curve25519-dalek 3.0.2", + "futures 0.3.12", "lazy_static", "libp2p-core", - "log 0.4.11", + "log", "prost", "prost-build", "rand 0.7.3", - "sha2 0.8.2", + "sha2 0.9.2", "snow", "static_assertions", "x25519-dalek", @@ -3014,57 +3142,121 @@ dependencies = [ [[package]] name = "libp2p-ping" -version = "0.20.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70130cf130e4ba6dc177366e72dd9f86f9e3588fa1a0c4145247e676f16affad" +checksum = "50b2ec86a18cbf09d7df440e7786a2409640c774e476e9a3b4d031382c3d7588" dependencies = [ - "futures 0.3.5", + "futures 0.3.12", "libp2p-core", "libp2p-swarm", - "log 0.4.11", + "log", "rand 0.7.3", "void", "wasm-timer", ] +[[package]] +name = "libp2p-plaintext" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a7b1bdcbe46a3a2159c231601ed29645282653c0a96ce3a2ad8352c9fbe6800" +dependencies = [ + "bytes 0.5.6", + "futures 0.3.12", + "futures_codec", + "libp2p-core", + "log", + "prost", + "prost-build", + "unsigned-varint", + "void", +] + +[[package]] +name = "libp2p-pnet" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce3374f3b28162db9d3442c9347c4f14cb01e8290052615c7d341d40eae0599" +dependencies = [ + "futures 0.3.12", + "log", + "pin-project 1.0.4", + "rand 0.7.3", + "salsa20", + "sha3", +] + +[[package]] +name = "libp2p-request-response" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "620e2950decbf77554b5aed3824f7d0e2c04923f28c70f9bff1a402c47ef6b1e" +dependencies = [ + "async-trait", + "bytes 0.5.6", + "futures 0.3.12", + "libp2p-core", + "libp2p-swarm", + "log", + "lru", + "minicbor", + "rand 0.7.3", + "smallvec 1.6.1", + "unsigned-varint", + "wasm-timer", +] + [[package]] name = "libp2p-swarm" -version = "0.20.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f88d5e2a090a2aadf042cd33484e2f015c6dab212567406a59deece5dedbd133" +checksum = "fdf5894ee1ee63a38aa58d58a16e3dcf7ede6b59ea7b22302c00c1a41d7aec41" dependencies = [ - "futures 0.3.5", + "either", + "futures 0.3.12", "libp2p-core", - "log 0.4.11", + "log", "rand 0.7.3", - "smallvec 1.4.2", + "smallvec 1.6.1", "void", "wasm-timer", ] [[package]] name = "libp2p-tcp" -version = "0.20.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b1fa2bbad054020cb875546a577a66a65a5bf42eff55ed5265f92ffee3cc052" +checksum = "1d2113a7dab2b502c55fe290910cd7399a2aa04fe70a2f5a415a87a1db600c0e" dependencies = [ "async-std", - "futures 0.3.5", + "futures 0.3.12", "futures-timer 3.0.2", - "get_if_addrs", + "if-addrs", "ipnet", "libp2p-core", - "log 0.4.11", + "log", "socket2", ] +[[package]] +name = "libp2p-uds" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af05fe92c2a3aa320bc82a308ddb7b33bef3b060154c5a4b9fb0b01f15385fc0" +dependencies = [ + "async-std", + "futures 0.3.12", + "libp2p-core", + "log", +] + [[package]] name = "libp2p-wasm-ext" -version = "0.20.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0feb99e32fea20ffb1bbf56a6fb2614bff7325ff44a515728385170b3420d2c3" +checksum = "37cd44ea05a4523f40183f60ab6e6a80e400a5ddfc98b0df1c55edeb85576cd9" dependencies = [ - "futures 0.3.5", + "futures 0.3.12", "js-sys", "libp2p-core", "parity-send-wrapper", @@ -3074,33 +3266,33 @@ dependencies = [ [[package]] name = "libp2p-websocket" -version = "0.21.1" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046a5201f6e471f22b22b394e4d084269ed1e28cf7300f7b49874385db84c7bd" +checksum = "270c80528e21089ea25b41dd1ab8fd834bdf093ebee422fed3b68699a857a083" dependencies = [ "async-tls", "either", - "futures 0.3.5", + "futures 0.3.12", "libp2p-core", - "log 0.4.11", + "log", "quicksink", - "rustls", + "rustls 0.19.0", "rw-stream-sink", "soketto", - "url 2.1.1", + "url 2.2.0", "webpki", - "webpki-roots 0.18.0", + "webpki-roots", ] [[package]] name = "libp2p-yamux" -version = "0.20.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46ae9bf2f7d8a4be9c7e9b61df9de9dc1bd66419d669098f22f81f8d9571029a" +checksum = "36799de9092c35782f080032eddbc8de870f94a0def87cf9f8883efccd5cacf0" dependencies = [ - "futures 0.3.5", + "futures 0.3.12", "libp2p-core", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "thiserror", "yamux", ] @@ -3129,15 +3321,15 @@ dependencies = [ "hmac-drbg", "rand 0.7.3", "sha2 0.8.2", - "subtle 2.2.3", + "subtle 2.4.0", "typenum", ] [[package]] name = "libz-sys" -version = "1.1.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af67924b8dd885cccea261866c8ce5b74d239d272e154053ff927dae839f5ae9" +checksum = "602113192b08db8f38796c4e85c39e960c145965140e918018bcde1952429655" dependencies = [ "cc", "pkg-config", @@ -3146,9 +3338,9 @@ dependencies = [ [[package]] name = "linked-hash-map" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a" +checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" [[package]] name = "linked_hash_set" @@ -3161,69 +3353,55 @@ dependencies = [ [[package]] name = "linregress" -version = "0.1.7" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9290cf6f928576eeb9c096c6fad9d8d452a0a1a70a2bbffa6e36064eedc0aac9" +checksum = "0d0ad4b5cc8385a881c561fac3501353d63d2a2b7a357b5064d71815c9a92724" dependencies = [ - "failure", "nalgebra", "statrs", ] -[[package]] -name = "lock_api" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" -dependencies = [ - "owning_ref", - "scopeguard 0.3.3", -] - [[package]] name = "lock_api" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" dependencies = [ - "scopeguard 1.1.0", + "scopeguard", ] [[package]] name = "lock_api" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28247cc5a5be2f05fbcd76dd0cf2c7d3b5400cb978a28042abcd4fa0b3f8261c" +checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312" dependencies = [ - "scopeguard 1.1.0", + "scopeguard", ] [[package]] name = "log" -version = "0.3.9" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" +checksum = "fcf3805d4480bb5b86070dcfeb9e2cb2ebc148adb753c5cca5f884d1d65a42b2" dependencies = [ - "log 0.4.11", + "cfg-if 0.1.10", ] [[package]] -name = "log" -version = "0.4.11" +name = "lru" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" +checksum = "3aae342b73d57ad0b8b364bd12584819f2c1fe9114285dfcf8b0722607671635" dependencies = [ - "cfg-if", + "hashbrown", ] [[package]] -name = "lru" -version = "0.4.3" +name = "lru_time_cache" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0609345ddee5badacf857d4f547e0e5a2e987db77085c24cd887f73573a04237" -dependencies = [ - "hashbrown 0.6.3", -] +checksum = "2cc2beb26938dfd9988fc368548b70bcdfaf955f55aa788e1682198de794a451" [[package]] name = "mach" @@ -3234,6 +3412,21 @@ dependencies = [ "libc", ] +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + +[[package]] +name = "matchers" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" +dependencies = [ + "regex-automata", +] + [[package]] name = "matches" version = "0.1.8" @@ -3242,9 +3435,9 @@ checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" [[package]] name = "matrixmultiply" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4f7ec66360130972f34830bfad9ef05c6610a43938a467bcc9ab9369ab3478f" +checksum = "916806ba0031cd542105d916a97c8572e1fa6dd79c9c51e7eb43a09ec2dd84c1" dependencies = [ "rawpointer", ] @@ -3257,9 +3450,9 @@ checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" [[package]] name = "memchr" -version = "2.3.3" +version = "2.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" +checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" [[package]] name = "memmap" @@ -3273,21 +3466,30 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.5.5" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f" +checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87" dependencies = [ - "autocfg 1.0.1", + "autocfg", ] [[package]] name = "memory-db" -version = "0.24.1" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f36ddb0b2cdc25d38babba472108798e3477f02be5165f038c5e393e50c57a" +checksum = "6cbd2a22f201c03cc1706a727842490abfea17b7b53260358239828208daba3c" dependencies = [ "hash-db", - "hashbrown 0.8.2", + "hashbrown", "parity-util-mem", ] @@ -3308,9 +3510,9 @@ dependencies = [ [[package]] name = "merlin" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6feca46f4fa3443a01769d768727f10c10a20fdb65e52dc16a81f0c8269bb78" +checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42" dependencies = [ "byteorder", "keccak", @@ -3319,28 +3521,69 @@ dependencies = [ ] [[package]] -name = "miniz_oxide" -version = "0.4.1" +name = "metered-channel" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "futures 0.3.12", + "futures-timer 3.0.2", +] + +[[package]] +name = "mick-jaeger" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d7559a8a40d0f97e1edea3220f698f78b1c5ab67532e49f68fde3910323b722" +checksum = "c023c3f16109e7f33aa451f773fd61070e265b4977d0b6e344a51049296dd7df" dependencies = [ - "adler", + "futures 0.3.12", + "rand 0.7.3", + "thrift", ] [[package]] -name = "mio" -version = "0.6.22" +name = "minicbor" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430" +checksum = "0164190d1771b1458c3742075b057ed55d25cd9dfb930aade99315a1eb1fe12d" dependencies = [ - "cfg-if", - "fuchsia-zircon", + "minicbor-derive", +] + +[[package]] +name = "minicbor-derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e071b3159835ee91df62dbdbfdd7ec366b7ea77c838f43aff4acda6b61bcfb9" +dependencies = [ + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", +] + +[[package]] +name = "miniz_oxide" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d" +dependencies = [ + "adler", + "autocfg", +] + +[[package]] +name = "mio" +version = "0.6.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" +dependencies = [ + "cfg-if 0.1.10", + "fuchsia-zircon", "fuchsia-zircon-sys", "iovec", "kernel32-sys", "libc", - "log 0.4.11", - "miow 0.2.1", + "log", + "miow 0.2.2", "net2", "slab", "winapi 0.2.8", @@ -3353,7 +3596,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" dependencies = [ "lazycell", - "log 0.4.11", + "log", "mio", "slab", ] @@ -3364,9 +3607,9 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656" dependencies = [ - "log 0.4.11", + "log", "mio", - "miow 0.3.5", + "miow 0.3.6", "winapi 0.3.9", ] @@ -3383,9 +3626,9 @@ dependencies = [ [[package]] name = "miow" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" +checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" dependencies = [ "kernel32-sys", "net2", @@ -3395,9 +3638,9 @@ dependencies = [ [[package]] name = "miow" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07b88fb9795d4d36d62a012dfbf49a8f5cf12751f36d31a9dbe66d528e58979e" +checksum = "5a33c1b55807fbed163481b5ba66db4b2fa6cde694a5027be10fb724206c5897" dependencies = [ "socket2", "winapi 0.3.9", @@ -3411,65 +3654,66 @@ checksum = "0debeb9fcf88823ea64d64e4a815ab1643f33127d995978e099942ce38f25238" [[package]] name = "multihash" -version = "0.11.3" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51cc1552a982658478dbc22eefb72bb1d4fd1161eb9818f7bbf4347443f07569" +checksum = "4dac63698b887d2d929306ea48b63760431ff8a24fac40ddb22f9c7f49fb7cab" dependencies = [ - "blake2b_simd", - "blake2s_simd", - "blake3", "digest 0.9.0", - "sha-1 0.9.1", - "sha2 0.9.1", - "sha3", - "unsigned-varint 0.5.0", + "generic-array 0.14.4", + "multihash-derive", + "sha2 0.9.2", + "unsigned-varint", ] [[package]] -name = "multimap" -version = "0.8.1" +name = "multihash-derive" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8883adfde9756c1d30b0f519c9b8c502a94b41ac62f696453c37c7fc0a958ce" +checksum = "85ee3c48cb9d9b275ad967a0e96715badc13c6029adb92f34fa17b9ff28fd81f" +dependencies = [ + "proc-macro-crate", + "proc-macro-error", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", + "synstructure", +] [[package]] -name = "multistream-select" +name = "multimap" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9157e87afbc2ef0d84cc0345423d715f445edde00141c93721c162de35a05e5" -dependencies = [ - "bytes 0.5.6", - "futures 0.3.5", - "log 0.4.11", - "pin-project", - "smallvec 1.4.2", - "unsigned-varint 0.4.0", -] +checksum = "1255076139a83bb467426e7f8d0134968a8118844faa755985e077cf31850333" [[package]] -name = "multitask" -version = "0.2.0" +name = "multistream-select" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c09c35271e7dcdb5f709779111f2c8e8ab8e06c1b587c1c6a9e179d865aaa5b4" +checksum = "dda822043bba2d6da31c4e14041f9794f8fb130a5959289038d0b809d8888614" dependencies = [ - "async-task", - "concurrent-queue", - "fastrand", + "bytes 0.5.6", + "futures 0.3.12", + "log", + "pin-project 1.0.4", + "smallvec 1.6.1", + "unsigned-varint", ] [[package]] name = "nalgebra" -version = "0.18.1" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaa9fddbc34c8c35dd2108515587b8ce0cab396f17977b8c738568e4edb521a2" +checksum = "d6b6147c3d50b4f3cdabfe2ecc94a0191fd3d6ad58aefd9664cf396285883486" dependencies = [ - "alga", "approx", - "generic-array 0.12.3", + "generic-array 0.13.2", "matrixmultiply", "num-complex", "num-rational", - "num-traits 0.2.12", - "rand 0.6.5", + "num-traits 0.2.14", + "rand 0.7.3", + "rand_distr", + "simba", "typenum", ] @@ -3483,28 +3727,24 @@ dependencies = [ ] [[package]] -name = "net2" -version = "0.2.34" +name = "nb-connect" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7" +checksum = "8123a81538e457d44b933a02faf885d3fe8408806b23fa700e8f01c6c3a98998" dependencies = [ - "cfg-if", "libc", "winapi 0.3.9", ] [[package]] -name = "netstat2" -version = "0.8.1" +name = "net2" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29449d242064c48d3057a194b049a2bdcccadda16faa18a91468677b44e8d422" +checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" dependencies = [ - "bitflags", - "byteorder", - "enum-primitive-derive", + "cfg-if 0.1.10", "libc", - "num-traits 0.2.12", - "thiserror", + "winapi 0.3.9", ] [[package]] @@ -3515,25 +3755,12 @@ checksum = "b7fd5681d13fda646462cfbd4e5f2051279a89a544d50eb98c365b507246839f" dependencies = [ "bitflags", "bytes 0.4.12", - "cfg-if", + "cfg-if 0.1.10", "gcc", "libc", "void", ] -[[package]] -name = "nix" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363" -dependencies = [ - "bitflags", - "cc", - "cfg-if", - "libc", - "void", -] - [[package]] name = "nodrop" version = "0.1.14" @@ -3556,24 +3783,15 @@ dependencies = [ "version_check", ] -[[package]] -name = "ntapi" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a31937dea023539c72ddae0e3571deadc1414b300483fa7aaec176168cfa9d2" -dependencies = [ - "winapi 0.3.9", -] - [[package]] name = "num-bigint" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" dependencies = [ - "autocfg 1.0.1", + "autocfg", "num-integer", - "num-traits 0.2.12", + "num-traits 0.2.14", ] [[package]] @@ -3582,18 +3800,18 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" dependencies = [ - "autocfg 1.0.1", - "num-traits 0.2.12", + "autocfg", + "num-traits 0.2.14", ] [[package]] name = "num-integer" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b" +checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" dependencies = [ - "autocfg 1.0.1", - "num-traits 0.2.12", + "autocfg", + "num-traits 0.2.14", ] [[package]] @@ -3602,10 +3820,10 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" dependencies = [ - "autocfg 1.0.1", + "autocfg", "num-bigint", "num-integer", - "num-traits 0.2.12", + "num-traits 0.2.14", ] [[package]] @@ -3614,16 +3832,16 @@ version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" dependencies = [ - "num-traits 0.2.12", + "num-traits 0.2.14", ] [[package]] name = "num-traits" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" dependencies = [ - "autocfg 1.0.1", + "autocfg", "libm", ] @@ -3654,15 +3872,27 @@ dependencies = [ "wasmparser 0.57.0", ] +[[package]] +name = "object" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397" + [[package]] name = "once_cell" -version = "1.4.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad" +checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0" dependencies = [ - "parking_lot 0.11.0", + "parking_lot 0.11.1", ] +[[package]] +name = "oorandom" +version = "11.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" + [[package]] name = "opaque-debug" version = "0.2.3" @@ -3681,6 +3911,15 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" +[[package]] +name = "ordered-float" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7" +dependencies = [ + "num-traits 0.2.14", +] + [[package]] name = "owning_ref" version = "0.4.1" @@ -3692,8 +3931,8 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", @@ -3708,12 +3947,12 @@ dependencies = [ [[package]] name = "pallet-authorship" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", - "impl-trait-for-tuples", + "impl-trait-for-tuples 0.2.0", "parity-scale-codec", "sp-authorship", "sp-inherents", @@ -3723,8 +3962,8 @@ dependencies = [ [[package]] name = "pallet-babe" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-benchmarking", "frame-support", @@ -3748,8 +3987,8 @@ dependencies = [ [[package]] name = "pallet-balances" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-benchmarking", "frame-support", @@ -3761,75 +4000,72 @@ dependencies = [ ] [[package]] -name = "pallet-collective" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +name = "pallet-bounties" +version = "2.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", + "pallet-treasury", "parity-scale-codec", "serde", - "sp-core", - "sp-io", "sp-runtime", "sp-std", ] [[package]] -name = "pallet-democracy" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +name = "pallet-collective" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "serde", + "sp-core", "sp-io", "sp-runtime", "sp-std", ] [[package]] -name = "pallet-elections-phragmen" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +name = "pallet-democracy" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "serde", - "sp-npos-elections", + "sp-io", "sp-runtime", "sp-std", ] [[package]] -name = "pallet-finality-tracker" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +name = "pallet-elections-phragmen" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", - "impl-trait-for-tuples", "parity-scale-codec", "serde", - "sp-finality-tracker", - "sp-inherents", + "sp-npos-elections", "sp-runtime", "sp-std", ] [[package]] name = "pallet-grandpa" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "pallet-authorship", - "pallet-finality-tracker", "pallet-session", "parity-scale-codec", "serde", @@ -3844,8 +4080,8 @@ dependencies = [ [[package]] name = "pallet-identity" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "enumflags2", "frame-benchmarking", @@ -3860,8 +4096,8 @@ dependencies = [ [[package]] name = "pallet-im-online" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", @@ -3879,8 +4115,8 @@ dependencies = [ [[package]] name = "pallet-indices" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", @@ -3895,8 +4131,8 @@ dependencies = [ [[package]] name = "pallet-membership" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", @@ -3909,8 +4145,8 @@ dependencies = [ [[package]] name = "pallet-multisig" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", @@ -3924,8 +4160,8 @@ dependencies = [ [[package]] name = "pallet-nicks" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", @@ -3938,8 +4174,8 @@ dependencies = [ [[package]] name = "pallet-offences" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", @@ -3953,8 +4189,8 @@ dependencies = [ [[package]] name = "pallet-proxy" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", @@ -3968,8 +4204,8 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", @@ -3981,8 +4217,8 @@ dependencies = [ [[package]] name = "pallet-recovery" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "enumflags2", "frame-support", @@ -3996,8 +4232,8 @@ dependencies = [ [[package]] name = "pallet-scheduler" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4011,12 +4247,12 @@ dependencies = [ [[package]] name = "pallet-session" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", - "impl-trait-for-tuples", + "impl-trait-for-tuples 0.1.3", "pallet-timestamp", "parity-scale-codec", "serde", @@ -4031,8 +4267,8 @@ dependencies = [ [[package]] name = "pallet-society" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", @@ -4045,8 +4281,8 @@ dependencies = [ [[package]] name = "pallet-staking" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", @@ -4065,19 +4301,19 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "proc-macro-crate", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "pallet-sudo" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", @@ -4090,7 +4326,7 @@ dependencies = [ [[package]] name = "pallet-template" -version = "2.0.0-rc5" +version = "2.0.0" dependencies = [ "frame-support", "frame-system", @@ -4102,32 +4338,46 @@ dependencies = [ [[package]] name = "pallet-timestamp" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "impl-trait-for-tuples", + "impl-trait-for-tuples 0.2.0", "parity-scale-codec", "serde", "sp-inherents", + "sp-io", "sp-runtime", "sp-std", "sp-timestamp", ] +[[package]] +name = "pallet-tips" +version = "2.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +dependencies = [ + "frame-support", + "frame-system", + "pallet-treasury", + "parity-scale-codec", + "serde", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-transaction-payment" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", - "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", "serde", - "smallvec 1.4.2", + "smallvec 1.6.1", "sp-core", "sp-io", "sp-runtime", @@ -4136,15 +4386,14 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", - "serde", "sp-api", "sp-blockchain", "sp-core", @@ -4154,24 +4403,23 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "frame-support", + "pallet-transaction-payment", "parity-scale-codec", - "serde", "sp-api", "sp-runtime", - "sp-std", ] [[package]] name = "pallet-treasury" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", + "impl-trait-for-tuples 0.2.0", "pallet-balances", "parity-scale-codec", "serde", @@ -4181,8 +4429,8 @@ dependencies = [ [[package]] name = "pallet-utility" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-support", "frame-system", @@ -4196,8 +4444,8 @@ dependencies = [ [[package]] name = "pallet-vesting" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "enumflags2", "frame-support", @@ -4210,44 +4458,38 @@ dependencies = [ [[package]] name = "parachain-collator" -version = "0.1.0" +version = "2.0.0" dependencies = [ - "ansi_term 0.12.1", - "assert_cmd", "cumulus-collator", "cumulus-consensus", "cumulus-network", "cumulus-primitives", "cumulus-service", "derive_more 0.15.0", - "exit-future 0.1.4", - "futures 0.3.5", - "log 0.4.11", - "nix 0.17.0", - "pallet-sudo", + "frame-benchmarking", + "frame-benchmarking-cli", + "hex-literal 0.2.1", + "jsonrpc-core", + "log", + "pallet-transaction-payment-rpc", "parachain-runtime", "parity-scale-codec", - "parking_lot 0.9.0", "polkadot-cli", - "polkadot-collator", "polkadot-parachain", "polkadot-primitives", - "polkadot-runtime-common", "polkadot-service", - "polkadot-test-runtime", - "polkadot-test-runtime-client", "polkadot-test-service", - "rand 0.7.3", "sc-basic-authorship", "sc-chain-spec", "sc-cli", "sc-client-api", "sc-consensus", "sc-executor", - "sc-finality-grandpa", - "sc-informant", - "sc-network", + "sc-keystore", + "sc-rpc", + "sc-rpc-api", "sc-service", + "sc-tracing", "sc-transaction-pool", "serde", "sp-api", @@ -4256,19 +4498,13 @@ dependencies = [ "sp-consensus", "sp-core", "sp-inherents", - "sp-io", - "sp-offchain", "sp-runtime", - "sp-session", "sp-timestamp", "sp-transaction-pool", "sp-trie", "structopt", "substrate-build-script-utils", - "substrate-test-client", - "substrate-test-runtime-client", - "tokio 0.2.22", - "trie-root 0.15.2", + "substrate-frame-rpc-system", ] [[package]] @@ -4284,25 +4520,29 @@ dependencies = [ [[package]] name = "parachain-runtime" -version = "0.1.0" +version = "2.0.0" dependencies = [ "cumulus-message-broker", "cumulus-parachain-upgrade", "cumulus-primitives", "cumulus-runtime", - "cumulus-token-dealer", - "cumulus-upward-message", + "frame-benchmarking", "frame-executive", "frame-support", "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "hex-literal 0.3.1", "pallet-balances", "pallet-randomness-collective-flip", "pallet-sudo", "pallet-template", "pallet-timestamp", "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", "parachain-info", "parity-scale-codec", + "polkadot-parachain", "serde", "sp-api", "sp-block-builder", @@ -4315,7 +4555,11 @@ dependencies = [ "sp-std", "sp-transaction-pool", "sp-version", - "substrate-wasm-builder-runner 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-wasm-builder 3.0.0 (git+https://github.com/paritytech/substrate.git?branch=rococo-v1)", + "xcm", + "xcm-builder", + "xcm-executor", + "xcm-handler", ] [[package]] @@ -4327,16 +4571,16 @@ dependencies = [ "blake2-rfc", "crc32fast", "libc", - "log 0.4.11", + "log", "memmap", "parking_lot 0.10.2", ] [[package]] name = "parity-multiaddr" -version = "0.9.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc20af3143a62c16e7c9e92ea5c6ae49f7d271d97d4d8fe73afc28f0514a3d0f" +checksum = "180cd097078b337d2ba6400c6a67b181b38b611273cb1d8d12f3d8d5d8eaaacb" dependencies = [ "arrayref", "bs58", @@ -4346,17 +4590,17 @@ dependencies = [ "percent-encoding 2.1.0", "serde", "static_assertions", - "unsigned-varint 0.4.0", - "url 2.1.1", + "unsigned-varint", + "url 2.2.0", ] [[package]] name = "parity-scale-codec" -version = "1.3.4" +version = "1.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34d38aeaffc032ec69faa476b3caaca8d4dd7f3f798137ff30359e5c7869ceb6" +checksum = "79602888a81ace83e3d1d4b2873286c1f5f906c84db667594e8db8da3506c383" dependencies = [ - "arrayvec 0.5.1", + "arrayvec 0.5.2", "bitvec", "byte-slice-cast", "parity-scale-codec-derive", @@ -4365,14 +4609,14 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd20ff7e0399b274a5f5bb37b712fccb5b3a64b9128200d1c3cc40fe709cb073" +checksum = "198db82bb1c18fc00176004462dd809b2a6d851669550aa17af6dacd21ae0c14" dependencies = [ "proc-macro-crate", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] @@ -4388,11 +4632,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e57fea504fea33f9fbb5f49f378359030e7e026a6ab849bb9e8f0787376f1bf" dependencies = [ "bytes 0.4.12", - "futures 0.1.29", + "futures 0.1.30", "libc", - "log 0.4.11", + "log", "mio-named-pipes", - "miow 0.3.5", + "miow 0.3.6", "rand 0.7.3", "tokio 0.1.22", "tokio-named-pipes", @@ -4402,17 +4646,17 @@ dependencies = [ [[package]] name = "parity-util-mem" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "297ff91fa36aec49ce183484b102f6b75b46776822bd81525bfc4cc9b0dd0f5c" +checksum = "8f17f15cb05897127bf36a240085a1f0bbef7bce3024849eccf7f93f6171bc27" dependencies = [ - "cfg-if", - "hashbrown 0.8.2", - "impl-trait-for-tuples", + "cfg-if 1.0.0", + "hashbrown", + "impl-trait-for-tuples 0.2.0", "parity-util-mem-derive", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "primitive-types", - "smallvec 1.4.2", + "smallvec 1.6.1", "winapi 0.3.9", ] @@ -4422,11 +4666,20 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" dependencies = [ - "proc-macro2 1.0.19", - "syn 1.0.39", + "proc-macro2 1.0.24", + "syn 1.0.58", "synstructure", ] +[[package]] +name = "parity-wasm" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16ad52817c4d343339b3bc2e26861bd21478eda0b7509acf83505727000512ac" +dependencies = [ + "byteorder", +] + [[package]] name = "parity-wasm" version = "0.41.0" @@ -4434,10 +4687,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddfc878dac00da22f8f61e7af3157988424567ab01d9920b962ef7dcbd7cd865" [[package]] -name = "parking" -version = "1.0.6" +name = "parity-ws" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cb300f271742d4a2a66c01b6b2fa0c83dfebd2e0bf11addb879a3547b4ed87c" +checksum = "9e02a625dd75084c2a7024f07c575b61b782f729d18702dabb3cdbf31911dc61" +dependencies = [ + "byteorder", + "bytes 0.4.12", + "httparse", + "log", + "mio", + "mio-extras", + "rand 0.7.3", + "sha-1 0.8.2", + "slab", + "url 2.2.0", +] [[package]] name = "parking" @@ -4445,16 +4710,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" -[[package]] -name = "parking_lot" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" -dependencies = [ - "lock_api 0.1.5", - "parking_lot_core 0.4.0", -] - [[package]] name = "parking_lot" version = "0.9.0" @@ -4478,26 +4733,13 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4893845fa2ca272e647da5d0e46660a314ead9c2fdd9a883aabc32e481a8733" +checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb" dependencies = [ "instant", - "lock_api 0.4.1", - "parking_lot_core 0.8.0", -] - -[[package]] -name = "parking_lot_core" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" -dependencies = [ - "libc", - "rand 0.6.5", - "rustc_version", - "smallvec 0.6.13", - "winapi 0.3.9", + "lock_api 0.4.2", + "parking_lot_core 0.8.2", ] [[package]] @@ -4506,12 +4748,12 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" dependencies = [ - "cfg-if", - "cloudabi 0.0.3", + "cfg-if 0.1.10", + "cloudabi", "libc", - "redox_syscall", + "redox_syscall 0.1.57", "rustc_version", - "smallvec 0.6.13", + "smallvec 0.6.14", "winapi 0.3.9", ] @@ -4521,26 +4763,25 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3" dependencies = [ - "cfg-if", - "cloudabi 0.0.3", + "cfg-if 0.1.10", + "cloudabi", "libc", - "redox_syscall", - "smallvec 1.4.2", + "redox_syscall 0.1.57", + "smallvec 1.6.1", "winapi 0.3.9", ] [[package]] name = "parking_lot_core" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c361aa727dd08437f2f1447be8b59a33b0edd15e0fcee698f935613d9efbca9b" +checksum = "9ccb628cad4f84851442432c60ad8e1f607e29752d0bf072cbd0baf28aa34272" dependencies = [ - "cfg-if", - "cloudabi 0.1.0", + "cfg-if 1.0.0", "instant", "libc", - "redox_syscall", - "smallvec 1.4.2", + "redox_syscall 0.1.57", + "smallvec 1.6.1", "winapi 0.3.9", ] @@ -4573,6 +4814,15 @@ dependencies = [ "crypto-mac 0.7.0", ] +[[package]] +name = "pbkdf2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd" +dependencies = [ + "crypto-mac 0.8.0", +] + [[package]] name = "pdqselect" version = "0.1.0" @@ -4598,140 +4848,201 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" [[package]] -name = "petgraph" -version = "0.5.1" +name = "pest" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" +checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" dependencies = [ - "fixedbitset", - "indexmap", + "ucd-trie", ] [[package]] -name = "pin-project" -version = "0.4.23" +name = "pest_derive" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca4433fff2ae79342e497d9f8ee990d174071408f28f726d6d83af93e58e48aa" +checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" dependencies = [ - "pin-project-internal", + "pest", + "pest_generator", ] [[package]] -name = "pin-project-internal" -version = "0.4.23" +name = "pest_generator" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f" +checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "pest", + "pest_meta", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] -name = "pin-project-lite" -version = "0.1.7" +name = "pest_meta" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282adbf10f2698a7a77f8e983a74b2d18176c19a7fd32a45446139ae7b02b715" +checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d" +dependencies = [ + "maplit", + "pest", + "sha-1 0.8.2", +] [[package]] -name = "pin-utils" -version = "0.1.0" +name = "petgraph" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" +dependencies = [ + "fixedbitset", + "indexmap", +] [[package]] -name = "pkg-config" -version = "0.3.18" +name = "pin-project" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33" +checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15" +dependencies = [ + "pin-project-internal 0.4.27", +] [[package]] -name = "platforms" -version = "0.2.1" +name = "pin-project" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feb3b2b1033b8a60b4da6ee470325f887758c95d5320f52f9ce0df055a55940e" +checksum = "95b70b68509f17aa2857863b6fa00bf21fc93674c7a8893de2f469f6aa7ca2f2" +dependencies = [ + "pin-project-internal 1.0.4", +] [[package]] -name = "polkadot-availability-store" -version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" +name = "pin-project-internal" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895" dependencies = [ - "derive_more 0.99.9", - "exit-future 0.2.0", - "futures 0.3.5", - "kvdb", - "kvdb-memorydb", - "kvdb-rocksdb", - "log 0.4.11", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", +] + +[[package]] +name = "pin-project-internal" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caa25a6393f22ce819b0f50e0be89287292fda8d425be38ee0ca14c4931d9e71" +dependencies = [ + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", +] + +[[package]] +name = "pin-project-lite" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b" + +[[package]] +name = "pin-project-lite" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439697af366c49a6d0a010c56a0d97685bc140ce0d377b13a2ea2aa42d64a827" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" + +[[package]] +name = "platforms" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "feb3b2b1033b8a60b4da6ee470325f887758c95d5320f52f9ce0df055a55940e" + +[[package]] +name = "polkadot-availability-bitfield-distribution" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "futures 0.3.12", + "parity-scale-codec", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-availability-distribution" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "futures 0.3.12", "parity-scale-codec", - "parking_lot 0.9.0", "polkadot-erasure-coding", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", "polkadot-primitives", - "sc-client-api", - "sc-keystore", - "sc-network", - "sp-api", - "sp-blockchain", - "sp-consensus", "sp-core", - "sp-runtime", - "tokio 0.2.22", + "sp-keystore", + "thiserror", + "tracing", + "tracing-futures", ] [[package]] name = "polkadot-cli" -version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" dependencies = [ "frame-benchmarking-cli", - "futures 0.3.5", - "log 0.4.11", + "futures 0.3.12", + "log", + "polkadot-parachain", "polkadot-service", "sc-cli", - "sc-client-api", - "sc-client-db", - "sc-executor", "sc-service", - "sp-api", "sp-core", - "sp-runtime", "sp-trie", "structopt", "substrate-build-script-utils", - "tokio 0.2.22", + "thiserror", + "tracing-futures", ] [[package]] -name = "polkadot-collator" -version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" +name = "polkadot-collator-protocol" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" dependencies = [ - "futures 0.3.5", - "futures-timer 2.0.2", - "log 0.4.11", - "parity-scale-codec", - "polkadot-cli", - "polkadot-network", + "futures 0.3.12", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", "polkadot-primitives", - "polkadot-service", - "polkadot-validation", - "sc-cli", - "sc-client-api", - "sc-executor", - "sc-network", - "sc-service", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-runtime", - "tokio 0.2.22", + "thiserror", + "tracing", + "tracing-futures", ] [[package]] name = "polkadot-core-primitives" version = "0.7.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" dependencies = [ "parity-scale-codec", "sp-core", @@ -4741,56 +5052,336 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" dependencies = [ - "derive_more 0.15.0", "parity-scale-codec", "polkadot-primitives", "reed-solomon-erasure", "sp-core", "sp-trie", + "thiserror", ] [[package]] -name = "polkadot-network" -version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" +name = "polkadot-network-bridge" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" dependencies = [ - "arrayvec 0.4.12", - "bytes 0.5.6", - "derive_more 0.14.1", - "exit-future 0.2.0", - "futures 0.3.5", - "futures-timer 2.0.2", - "log 0.4.11", + "async-trait", + "futures 0.3.12", "parity-scale-codec", - "parking_lot 0.9.0", - "polkadot-availability-store", - "polkadot-erasure-coding", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", "polkadot-primitives", - "polkadot-validation", - "rand 0.7.3", + "sc-authority-discovery", "sc-network", - "sc-network-gossip", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-node-collation-generation" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "futures 0.3.12", + "polkadot-erasure-coding", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-core", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-node-core-av-store" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "bitvec", + "futures 0.3.12", + "futures-timer 3.0.2", + "kvdb", + "kvdb-rocksdb", + "parity-scale-codec", + "polkadot-erasure-coding", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-primitives", + "sc-service", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-node-core-backing" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "bitvec", + "futures 0.3.12", + "polkadot-erasure-coding", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "polkadot-statement-table", + "sp-keystore", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-node-core-bitfield-signing" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "futures 0.3.12", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-keystore", + "thiserror", + "tracing", + "tracing-futures", + "wasm-timer", +] + +[[package]] +name = "polkadot-node-core-candidate-selection" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "futures 0.3.12", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-keystore", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-node-core-candidate-validation" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "futures 0.3.12", + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-parachain", + "polkadot-primitives", + "sp-core", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-node-core-chain-api" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "futures 0.3.12", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-blockchain", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-node-core-proposer" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "futures 0.3.12", + "futures-timer 3.0.2", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives", + "sc-basic-authorship", + "sc-block-builder", + "sc-client-api", "sp-api", "sp-blockchain", "sp-consensus", "sp-core", + "sp-inherents", "sp-runtime", - "wasm-timer", + "sp-transaction-pool", + "substrate-prometheus-endpoint", + "tracing", +] + +[[package]] +name = "polkadot-node-core-provisioner" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "bitvec", + "futures 0.3.12", + "futures-timer 3.0.2", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-node-core-runtime-api" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "futures 0.3.12", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-api", + "sp-core", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-node-jaeger" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "async-std", + "lazy_static", + "log", + "mick-jaeger", + "parking_lot 0.11.1", + "polkadot-primitives", + "sc-network", + "sp-core", + "thiserror", +] + +[[package]] +name = "polkadot-node-network-protocol" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "parity-scale-codec", + "polkadot-node-jaeger", + "polkadot-node-primitives", + "polkadot-primitives", + "sc-network", + "strum 0.20.0", +] + +[[package]] +name = "polkadot-node-primitives" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "futures 0.3.12", + "parity-scale-codec", + "polkadot-primitives", + "polkadot-statement-table", + "sp-consensus-vrf", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "polkadot-node-subsystem" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "async-std", + "async-trait", + "derive_more 0.99.11", + "futures 0.3.12", + "futures-timer 3.0.2", + "lazy_static", + "log", + "mick-jaeger", + "parity-scale-codec", + "parking_lot 0.11.1", + "pin-project 1.0.4", + "polkadot-node-jaeger", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-primitives", + "polkadot-statement-table", + "sc-network", + "smallvec 1.6.1", + "sp-core", + "substrate-prometheus-endpoint", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-node-subsystem-util" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "async-trait", + "futures 0.3.12", + "futures-timer 3.0.2", + "metered-channel", + "parity-scale-codec", + "pin-project 1.0.4", + "polkadot-node-jaeger", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-primitives", + "sc-network", + "sp-application-crypto", + "sp-core", + "sp-keystore", + "streamunordered", + "substrate-prometheus-endpoint", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "polkadot-overseer" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "async-trait", + "futures 0.3.12", + "futures-timer 3.0.2", + "oorandom", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sc-client-api", + "tracing", + "tracing-futures", ] [[package]] name = "polkadot-parachain" -version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" dependencies = [ - "derive_more 0.99.9", - "futures 0.3.5", - "log 0.4.11", + "derive_more 0.99.11", + "futures 0.3.12", + "log", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "polkadot-core-primitives", "sc-executor", "serde", @@ -4798,17 +5389,35 @@ dependencies = [ "sp-core", "sp-externalities", "sp-io", + "sp-runtime", "sp-std", "sp-wasm-interface", + "thiserror", +] + +[[package]] +name = "polkadot-pov-distribution" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "futures 0.3.12", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "thiserror", + "tracing", + "tracing-futures", ] [[package]] name = "polkadot-primitives" -version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" dependencies = [ "bitvec", "frame-system", + "hex-literal 0.3.1", "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", @@ -4816,8 +5425,11 @@ dependencies = [ "sp-api", "sp-application-crypto", "sp-arithmetic", + "sp-authority-discovery", "sp-core", "sp-inherents", + "sp-io", + "sp-keystore", "sp-runtime", "sp-staking", "sp-std", @@ -4827,13 +5439,14 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" dependencies = [ "jsonrpc-core", "pallet-transaction-payment-rpc", "parity-scale-codec", "polkadot-primitives", + "sc-chain-spec", "sc-client-api", "sc-consensus-babe", "sc-consensus-babe-rpc", @@ -4842,11 +5455,13 @@ dependencies = [ "sc-finality-grandpa-rpc", "sc-keystore", "sc-rpc", + "sc-sync-state-rpc", "sp-api", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-babe", + "sp-keystore", "sp-runtime", "sp-transaction-pool", "substrate-frame-rpc-system", @@ -4854,24 +5469,23 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" dependencies = [ "bitvec", "frame-executive", "frame-support", "frame-system", "frame-system-rpc-runtime-api", - "hex-literal", - "log 0.3.9", + "log", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-balances", + "pallet-bounties", "pallet-collective", "pallet-democracy", "pallet-elections-phragmen", - "pallet-finality-tracker", "pallet-grandpa", "pallet-identity", "pallet-im-online", @@ -4887,6 +5501,7 @@ dependencies = [ "pallet-staking", "pallet-staking-reward-curve", "pallet-timestamp", + "pallet-tips", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", @@ -4898,7 +5513,7 @@ dependencies = [ "rustc-hex", "serde", "serde_derive", - "smallvec 1.4.2", + "smallvec 1.6.1", "sp-api", "sp-authority-discovery", "sp-block-builder", @@ -4914,18 +5529,18 @@ dependencies = [ "sp-transaction-pool", "sp-version", "static_assertions", - "substrate-wasm-builder-runner 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-wasm-builder 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "polkadot-runtime-common" -version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" dependencies = [ "bitvec", "frame-support", "frame-system", - "log 0.3.9", + "log", "pallet-authorship", "pallet-balances", "pallet-offences", @@ -4933,6 +5548,7 @@ dependencies = [ "pallet-staking", "pallet-timestamp", "pallet-transaction-payment", + "pallet-treasury", "pallet-vesting", "parity-scale-codec", "polkadot-primitives", @@ -4949,16 +5565,20 @@ dependencies = [ "sp-staking", "sp-std", "static_assertions", + "xcm", ] [[package]] name = "polkadot-runtime-parachains" version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" dependencies = [ "bitvec", + "derive_more 0.99.11", "frame-support", "frame-system", + "log", + "pallet-authority-discovery", "pallet-authorship", "pallet-balances", "pallet-offences", @@ -4968,44 +5588,61 @@ dependencies = [ "pallet-vesting", "parity-scale-codec", "polkadot-primitives", - "rand 0.7.3", - "rand_chacha 0.2.2", + "rand 0.8.2", + "rand_chacha 0.3.0", "rustc-hex", "serde", "sp-api", "sp-core", "sp-inherents", "sp-io", + "sp-keystore", "sp-runtime", "sp-session", "sp-staking", "sp-std", + "xcm", + "xcm-executor", ] [[package]] name = "polkadot-service" -version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" +version = "0.8.3" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" dependencies = [ "frame-benchmarking", "frame-system-rpc-runtime-api", - "futures 0.3.5", - "hex-literal", + "futures 0.3.12", + "hex-literal 0.3.1", "kusama-runtime", - "lazy_static", - "log 0.4.11", "pallet-babe", "pallet-im-online", "pallet-staking", "pallet-transaction-payment-rpc-runtime-api", - "parity-scale-codec", - "parking_lot 0.9.0", - "polkadot-availability-store", - "polkadot-network", + "polkadot-availability-bitfield-distribution", + "polkadot-availability-distribution", + "polkadot-collator-protocol", + "polkadot-network-bridge", + "polkadot-node-collation-generation", + "polkadot-node-core-av-store", + "polkadot-node-core-backing", + "polkadot-node-core-bitfield-signing", + "polkadot-node-core-candidate-selection", + "polkadot-node-core-candidate-validation", + "polkadot-node-core-chain-api", + "polkadot-node-core-proposer", + "polkadot-node-core-provisioner", + "polkadot-node-core-runtime-api", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-parachain", + "polkadot-pov-distribution", "polkadot-primitives", "polkadot-rpc", "polkadot-runtime", - "polkadot-validation", + "polkadot-runtime-parachains", + "polkadot-statement-distribution", "rococo-runtime", "sc-authority-discovery", "sc-block-builder", @@ -5014,15 +5651,14 @@ dependencies = [ "sc-client-db", "sc-consensus", "sc-consensus-babe", + "sc-consensus-slots", "sc-executor", "sc-finality-grandpa", - "sc-keystore", "sc-network", "sc-service", "sc-telemetry", "sc-transaction-pool", "serde", - "slog", "sp-api", "sp-authority-discovery", "sp-block-builder", @@ -5033,19 +5669,43 @@ dependencies = [ "sp-finality-grandpa", "sp-inherents", "sp-io", + "sp-keystore", "sp-offchain", "sp-runtime", "sp-session", + "sp-state-machine", + "sp-storage", "sp-transaction-pool", "sp-trie", "substrate-prometheus-endpoint", + "thiserror", + "tracing", + "tracing-futures", "westend-runtime", ] +[[package]] +name = "polkadot-statement-distribution" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "arrayvec 0.5.2", + "futures 0.3.12", + "indexmap", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-staking", + "tracing", + "tracing-futures", +] + [[package]] name = "polkadot-statement-table" -version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -5054,20 +5714,19 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" -version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" dependencies = [ "bitvec", "frame-executive", "frame-support", "frame-system", "frame-system-rpc-runtime-api", - "log 0.3.9", + "log", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-balances", - "pallet-finality-tracker", "pallet-grandpa", "pallet-indices", "pallet-nicks", @@ -5085,10 +5744,11 @@ dependencies = [ "polkadot-parachain", "polkadot-primitives", "polkadot-runtime-common", + "polkadot-runtime-parachains", "rustc-hex", "serde", "serde_derive", - "smallvec 1.4.2", + "smallvec 1.6.1", "sp-api", "sp-authority-discovery", "sp-block-builder", @@ -5103,67 +5763,46 @@ dependencies = [ "sp-std", "sp-transaction-pool", "sp-version", - "substrate-wasm-builder-runner 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "polkadot-test-runtime-client" -version = "2.0.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" -dependencies = [ - "futures 0.3.5", - "pallet-timestamp", - "parity-scale-codec", - "polkadot-primitives", - "polkadot-runtime-common", - "polkadot-test-runtime", - "polkadot-test-service", - "sc-block-builder", - "sc-client-api", - "sc-consensus", - "sc-light", - "sc-service", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-runtime", - "substrate-test-client", + "substrate-wasm-builder 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "polkadot-test-service" -version = "0.8.2" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" dependencies = [ "frame-benchmarking", "frame-system", - "futures 0.1.29", - "futures 0.3.5", + "futures 0.1.30", + "futures 0.3.12", "hex", - "log 0.4.11", + "pallet-balances", "pallet-staking", "pallet-transaction-payment", - "polkadot-availability-store", - "polkadot-network", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-parachain", "polkadot-primitives", "polkadot-rpc", "polkadot-runtime-common", + "polkadot-runtime-parachains", "polkadot-service", "polkadot-test-runtime", - "polkadot-validation", - "rand 0.7.3", + "rand 0.8.2", "sc-authority-discovery", "sc-chain-spec", + "sc-cli", "sc-client-api", "sc-consensus", "sc-consensus-babe", "sc-executor", "sc-finality-grandpa", - "sc-informant", "sc-network", "sc-service", "sc-transaction-pool", "sp-arithmetic", + "sp-authority-discovery", "sp-blockchain", "sp-consensus", "sp-consensus-babe", @@ -5175,33 +5814,24 @@ dependencies = [ "sp-state-machine", "substrate-test-client", "tempfile", + "tracing", + "tracing-futures", ] [[package]] name = "polkadot-validation" -version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" dependencies = [ - "ansi_term 0.12.1", - "bitvec", - "derive_more 0.14.1", - "exit-future 0.2.0", - "futures 0.3.5", - "futures-timer 2.0.2", - "log 0.4.11", - "pallet-babe", + "futures 0.3.12", + "log", "parity-scale-codec", - "parking_lot 0.9.0", - "polkadot-availability-store", - "polkadot-erasure-coding", "polkadot-parachain", "polkadot-primitives", - "polkadot-statement-table", "sc-basic-authorship", "sc-block-builder", "sc-client-api", "sc-finality-grandpa", - "sc-keystore", "sp-api", "sp-blockchain", "sp-consensus", @@ -5213,82 +5843,59 @@ dependencies = [ "sp-transaction-pool", "sp-trie", "substrate-prometheus-endpoint", - "tokio 0.2.22", + "thiserror", ] [[package]] name = "polling" -version = "0.1.5" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e09dffb745feffca5be3dea51c02b7b368c4597ab0219a82acaf9799ab3e0d1" +checksum = "a2a7bc6b2a29e632e45451c941832803a18cce6781db04de8a04696cdca8bde4" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "libc", - "wepoll-sys-stjepang", + "log", + "wepoll-sys", "winapi 0.3.9", ] [[package]] name = "poly1305" -version = "0.6.0" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b42192ab143ed7619bf888a7f9c6733a9a2153b218e2cd557cfdb52fbf9bb1" +checksum = "4b7456bc1ad2d4cf82b3a016be4c2ac48daf11bf990c1603ebd447fe6f30fca8" dependencies = [ + "cpuid-bool 0.2.0", "universal-hash", ] [[package]] name = "polyval" -version = "0.4.0" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9a50142b55ab3ed0e9f68dfb3709f1d90d29da24e91033f28b96330643107dc" +checksum = "eebcc4aa140b9abd2bc40d9c3f7ccec842679cd79045ac3a7ac698c1a064b7cd" dependencies = [ - "cfg-if", + "cpuid-bool 0.2.0", + "opaque-debug 0.3.0", "universal-hash", ] [[package]] name = "ppv-lite86" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20" - -[[package]] -name = "predicates" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96bfead12e90dccead362d62bb2c90a5f6fc4584963645bc7f71a735e0b0735a" -dependencies = [ - "difference", - "predicates-core", -] - -[[package]] -name = "predicates-core" -version = "1.0.0" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06075c3a3e92559ff8929e7a280684489ea27fe44805174c3ebd9328dcb37178" - -[[package]] -name = "predicates-tree" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e63c4859013b38a76eca2414c64911fba30def9e3202ac461a2d22831220124" -dependencies = [ - "predicates-core", - "treeline", -] +checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" [[package]] name = "primitive-types" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c55c21c64d0eaa4d7ed885d959ef2d62d9e488c27c0e02d9aa5ce6c877b7d5f8" +checksum = "b3824ae2c5e27160113b9e029a10ec9e3f0237bad8029f69c7724393c9fdefd8" dependencies = [ "fixed-hash", "impl-codec", - "impl-serde 0.3.1", - "uint", + "impl-serde", + "uint 0.9.0", ] [[package]] @@ -5307,9 +5914,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", "version_check", ] @@ -5319,22 +5926,22 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", + "proc-macro2 1.0.24", + "quote 1.0.8", "version_check", ] [[package]] name = "proc-macro-hack" -version = "0.5.18" +version = "0.5.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598" +checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" [[package]] name = "proc-macro-nested" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" +checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" [[package]] name = "proc-macro2" @@ -5347,38 +5954,24 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.19" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12" +checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" dependencies = [ "unicode-xid 0.2.1", ] -[[package]] -name = "procfs" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c434e93ef69c216e68e4f417c927b4f31502c3560b72cfdb6827e2321c5c6b3e" -dependencies = [ - "bitflags", - "byteorder", - "chrono", - "hex", - "lazy_static", - "libc", - "libflate", -] - [[package]] name = "prometheus" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0ced56dee39a6e960c15c74dc48849d614586db2eaada6497477af7c7811cd" +checksum = "30d70cf4412832bcac9cffe27906f4a66e450d323525e977168c70d1b36120ae" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "fnv", "lazy_static", - "spin", + "parking_lot 0.11.1", + "regex", "thiserror", ] @@ -5401,7 +5994,7 @@ dependencies = [ "bytes 0.5.6", "heck", "itertools 0.8.2", - "log 0.4.11", + "log", "multimap", "petgraph", "prost", @@ -5418,9 +6011,9 @@ checksum = "537aa19b95acde10a12fec4301466386f757403de4cd4e5b4fa78fb5ecb18f72" dependencies = [ "anyhow", "itertools 0.8.2", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] @@ -5433,12 +6026,29 @@ dependencies = [ "prost", ] +[[package]] +name = "pwasm-utils" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f53bc2558e8376358ebdc28301546471d67336584f6438ed4b7c7457a055fd7" +dependencies = [ + "byteorder", + "log", + "parity-wasm 0.41.0", +] + [[package]] name = "quick-error" version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +[[package]] +name = "quick-error" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ac73b1112776fc109b2e61909bc46c7e1bf0d7f690ffb1676553acce16d5cda" + [[package]] name = "quicksink" version = "0.1.2" @@ -5447,15 +6057,9 @@ checksum = "77de3c815e5a160b1539c6592796801df2043ae35e123b46d73380cfa57af858" dependencies = [ "futures-core", "futures-sink", - "pin-project-lite", + "pin-project-lite 0.1.11", ] -[[package]] -name = "quote" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a" - [[package]] name = "quote" version = "0.6.13" @@ -5467,11 +6071,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" +checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df" dependencies = [ - "proc-macro2 1.0.19", + "proc-macro2 1.0.24", ] [[package]] @@ -5503,60 +6107,30 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "rand" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9" -dependencies = [ - "cloudabi 0.0.3", - "fuchsia-cprng", - "libc", - "rand_core 0.3.1", - "winapi 0.3.9", -] - -[[package]] -name = "rand" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" -dependencies = [ - "autocfg 0.1.7", - "libc", - "rand_chacha 0.1.1", - "rand_core 0.4.2", - "rand_hc 0.1.0", - "rand_isaac", - "rand_jitter", - "rand_os", - "rand_pcg 0.1.2", - "rand_xorshift", - "winapi 0.3.9", -] - [[package]] name = "rand" version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" dependencies = [ - "getrandom", + "getrandom 0.1.16", "libc", "rand_chacha 0.2.2", "rand_core 0.5.1", "rand_hc 0.2.0", - "rand_pcg 0.2.1", + "rand_pcg", ] [[package]] -name = "rand_chacha" -version = "0.1.1" +name = "rand" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" +checksum = "18519b42a40024d661e1714153e9ad0c3de27cd495760ceb09710920f1098b1e" dependencies = [ - "autocfg 0.1.7", - "rand_core 0.3.1", + "libc", + "rand_chacha 0.3.0", + "rand_core 0.6.1", + "rand_hc 0.3.0", ] [[package]] @@ -5569,6 +6143,16 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rand_chacha" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.1", +] + [[package]] name = "rand_core" version = "0.3.1" @@ -5590,69 +6174,43 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" dependencies = [ - "getrandom", + "getrandom 0.1.16", ] [[package]] -name = "rand_hc" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" -dependencies = [ - "rand_core 0.3.1", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rand_isaac" -version = "0.1.1" +name = "rand_core" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" +checksum = "c026d7df8b298d90ccbbc5190bd04d85e159eaf5576caeacf8741da93ccbd2e5" dependencies = [ - "rand_core 0.3.1", + "getrandom 0.2.1", ] [[package]] -name = "rand_jitter" -version = "0.1.4" +name = "rand_distr" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" +checksum = "96977acbdd3a6576fb1d27391900035bf3863d4a16422973a409b488cf29ffb2" dependencies = [ - "libc", - "rand_core 0.4.2", - "winapi 0.3.9", + "rand 0.7.3", ] [[package]] -name = "rand_os" -version = "0.1.3" +name = "rand_hc" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" dependencies = [ - "cloudabi 0.0.3", - "fuchsia-cprng", - "libc", - "rand_core 0.4.2", - "rdrand", - "winapi 0.3.9", + "rand_core 0.5.1", ] [[package]] -name = "rand_pcg" -version = "0.1.2" +name = "rand_hc" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" +checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" dependencies = [ - "autocfg 0.1.7", - "rand_core 0.4.2", + "rand_core 0.6.1", ] [[package]] @@ -5664,20 +6222,11 @@ dependencies = [ "rand_core 0.5.1", ] -[[package]] -name = "rand_xorshift" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" -dependencies = [ - "rand_core 0.3.1", -] - [[package]] name = "raw-cpuid" -version = "7.0.3" +version = "7.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4a349ca83373cfa5d6dbb66fd76e58b2cca08da71a5f6400de0a0a6a9bceeaf" +checksum = "beb71f708fe39b2c5e98076204c3cc094ee5a4c12c4cdb119a2b72dc34164f41" dependencies = [ "bitflags", "cc", @@ -5692,25 +6241,25 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfd016f0c045ad38b5251be2c9c0ab806917f82da4d36b2a327e5166adad9270" +checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674" dependencies = [ - "autocfg 1.0.1", - "crossbeam-deque", + "autocfg", + "crossbeam-deque 0.8.0", "either", "rayon-core", ] [[package]] name = "rayon-core" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91739a34c4355b5434ce54c9086c5895604a9c278586d1f1aa95e04f66b525a0" +checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a" dependencies = [ "crossbeam-channel", - "crossbeam-deque", - "crossbeam-utils", + "crossbeam-deque 0.8.0", + "crossbeam-utils 0.8.1", "lazy_static", "num_cpus", ] @@ -5730,14 +6279,23 @@ version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" +[[package]] +name = "redox_syscall" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05ec8ca9416c5ea37062b502703cd7fcb207736bc294f6e0cf367ac6fc234570" +dependencies = [ + "bitflags", +] + [[package]] name = "redox_users" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431" +checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d" dependencies = [ - "getrandom", - "redox_syscall", + "getrandom 0.1.16", + "redox_syscall 0.1.57", "rust-argon2", ] @@ -5747,27 +6305,27 @@ version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a415a013dd7c5d4221382329a5a3482566da675737494935cbbbcdec04662f9d" dependencies = [ - "smallvec 1.4.2", + "smallvec 1.6.1", ] [[package]] name = "ref-cast" -version = "1.0.2" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "745c1787167ddae5569661d5ffb8b25ae5fedbf46717eaa92d652221cec72623" +checksum = "300f2a835d808734ee295d45007adacb9ebb29dd3ae2424acfa17930cae541da" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.2" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d21b475ab879ef0e315ad99067fa25778c3b0377f57f1b00207448dac1a3144" +checksum = "4c38e3aecd2b21cb3959637b883bb3714bc7e43f0268b9a29d3743ee3e55cdd2" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] @@ -5776,16 +6334,16 @@ version = "0.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9ba8aaf5fe7cf307c6dbdaeed85478961d29e25e3bee5169e11b92fa9f027a8" dependencies = [ - "log 0.4.11", + "log", "rustc-hash", - "smallvec 1.4.2", + "smallvec 1.6.1", ] [[package]] name = "regex" -version = "1.3.9" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6" +checksum = "d9251239e129e16308e70d853559389de218ac275b515068abc96829d05b948a" dependencies = [ "aho-corasick", "memchr", @@ -5793,11 +6351,21 @@ dependencies = [ "thread_local", ] +[[package]] +name = "regex-automata" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4" +dependencies = [ + "byteorder", + "regex-syntax", +] + [[package]] name = "regex-syntax" -version = "0.6.18" +version = "0.6.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8" +checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581" [[package]] name = "region" @@ -5820,38 +6388,17 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "rental" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8545debe98b2b139fb04cad8618b530e9b07c152d99a5de83c860b877d67847f" -dependencies = [ - "rental-impl", - "stable_deref_trait", -] - -[[package]] -name = "rental-impl" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "475e68978dc5b743f2f40d8e0a8fdc83f1c5e78cbf4b8fa5e74e73beebc340de" -dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", -] - [[package]] name = "retain_mut" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e005d658ad26eacc2b6c506dfde519f4e277e328d0eb3379ca61647d70a8f531" +checksum = "53552c6c49e1e13f1a203ef0080ab3bbef0beb570a528993e83df057a9d9bba1" [[package]] name = "ring" -version = "0.16.15" +version = "0.16.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "952cd6b98c85bbc30efa1ba5783b8abf12fec8b3287ffa52605b9432313e34e4" +checksum = "024a1e66fea74c66c66624ee5622a7ff0e4b73a13b4f5c326ddb50c708944226" dependencies = [ "cc", "libc", @@ -5862,17 +6409,11 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "rle-decode-fast" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cabe4fa914dec5870285fa7f71f602645da47c486e68486d2b4ceb4a343e90ac" - [[package]] name = "rocksdb" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61aa17a99a2413cd71c1106691bf59dad7de0cd5099127f90e9d99c429c40d4a" +checksum = "23d83c02c429044d58474eaf5ae31e062d0de894e21125b47437ec0edc1397e6" dependencies = [ "libc", "librocksdb-sys", @@ -5880,55 +6421,37 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" dependencies = [ - "bitvec", "frame-executive", "frame-support", "frame-system", "frame-system-rpc-runtime-api", - "hex-literal", - "log 0.3.9", + "hex-literal 0.3.1", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", "pallet-balances", - "pallet-collective", - "pallet-democracy", - "pallet-elections-phragmen", - "pallet-finality-tracker", "pallet-grandpa", - "pallet-identity", "pallet-im-online", "pallet-indices", - "pallet-membership", - "pallet-multisig", - "pallet-nicks", "pallet-offences", - "pallet-proxy", - "pallet-randomness-collective-flip", - "pallet-recovery", - "pallet-scheduler", "pallet-session", - "pallet-society", "pallet-staking", "pallet-staking-reward-curve", "pallet-sudo", "pallet-timestamp", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", - "pallet-treasury", - "pallet-utility", - "pallet-vesting", "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", "polkadot-runtime-common", - "rustc-hex", + "polkadot-runtime-parachains", "serde", "serde_derive", - "smallvec 1.4.2", + "smallvec 1.6.1", "sp-api", "sp-authority-discovery", "sp-block-builder", @@ -5943,15 +6466,17 @@ dependencies = [ "sp-std", "sp-transaction-pool", "sp-version", - "static_assertions", - "substrate-wasm-builder-runner 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-wasm-builder 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "xcm", + "xcm-builder", + "xcm-executor", ] [[package]] name = "rpassword" -version = "4.0.5" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99371657d3c8e4d816fb6221db98fa408242b0b53bac08f8676a41f8554fe99f" +checksum = "d755237fc0f99d98641540e66abac8bc46a0652f19148ac9e21de2da06b326c9" dependencies = [ "libc", "winapi 0.3.9", @@ -5959,21 +6484,21 @@ dependencies = [ [[package]] name = "rust-argon2" -version = "0.7.0" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017" +checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb" dependencies = [ - "base64 0.11.0", + "base64 0.13.0", "blake2b_simd", "constant_time_eq", - "crossbeam-utils", + "crossbeam-utils 0.8.1", ] [[package]] name = "rustc-demangle" -version = "0.1.16" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" +checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232" [[package]] name = "rustc-hash" @@ -5999,7 +6524,7 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" dependencies = [ - "semver", + "semver 0.9.0", ] [[package]] @@ -6009,7 +6534,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81" dependencies = [ "base64 0.12.3", - "log 0.4.11", + "log", + "ring", + "sct", + "webpki", +] + +[[package]] +name = "rustls" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "064fd21ff87c6e87ed4506e68beb42459caa4a0e2eb144932e6776768556980b" +dependencies = [ + "base64 0.13.0", + "log", "ring", "sct", "webpki", @@ -6022,7 +6560,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "629d439a7672da82dd955498445e496ee2096fe2117b9f796558a43fdb9e59b8" dependencies = [ "openssl-probe", - "rustls", + "rustls 0.18.1", "schannel", "security-framework", ] @@ -6033,8 +6571,8 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" dependencies = [ - "futures 0.3.5", - "pin-project", + "futures 0.3.12", + "pin-project 0.4.27", "static_assertions", ] @@ -6053,41 +6591,60 @@ dependencies = [ "rustc_version", ] +[[package]] +name = "salsa20" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "399f290ffc409596022fce5ea5d4138184be4784f2b28c62c59f0d8389059a15" +dependencies = [ + "cipher", +] + +[[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 = "sc-authority-discovery" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "bytes 0.5.6", - "derive_more 0.99.9", - "futures 0.3.5", + "async-trait", + "derive_more 0.99.11", + "either", + "futures 0.3.12", "futures-timer 3.0.2", "libp2p", - "log 0.4.11", + "log", "parity-scale-codec", "prost", "prost-build", "rand 0.7.3", "sc-client-api", - "sc-keystore", "sc-network", "serde_json", "sp-api", "sp-authority-discovery", "sp-blockchain", "sp-core", + "sp-keystore", "sp-runtime", "substrate-prometheus-endpoint", ] [[package]] name = "sc-basic-authorship" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "futures 0.3.5", + "futures 0.3.12", "futures-timer 3.0.2", - "log 0.4.11", + "log", "parity-scale-codec", "sc-block-builder", "sc-client-api", @@ -6101,13 +6658,12 @@ dependencies = [ "sp-runtime", "sp-transaction-pool", "substrate-prometheus-endpoint", - "tokio-executor 0.2.0-alpha.6", ] [[package]] name = "sc-block-builder" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -6123,52 +6679,56 @@ dependencies = [ [[package]] name = "sc-chain-spec" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "impl-trait-for-tuples", + "impl-trait-for-tuples 0.2.0", + "parity-scale-codec", "sc-chain-spec-derive", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-finality-grandpa", "sc-network", "sc-telemetry", "serde", "serde_json", "sp-chain-spec", + "sp-consensus-babe", "sp-core", "sp-runtime", ] [[package]] name = "sc-chain-spec-derive" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "proc-macro-crate", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "sc-cli" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "ansi_term 0.12.1", "atty", "chrono", - "derive_more 0.99.9", - "env_logger", "fdlimit", - "futures 0.3.5", - "lazy_static", - "log 0.4.11", + "futures 0.3.12", + "hex", + "libp2p", + "log", "names", - "nix 0.17.0", - "parity-util-mem", + "parity-scale-codec", + "rand 0.7.3", "regex", "rpassword", + "sc-cli-proc-macro", "sc-client-api", - "sc-informant", + "sc-keystore", "sc-network", "sc-service", "sc-telemetry", @@ -6178,34 +6738,46 @@ dependencies = [ "sp-blockchain", "sp-core", "sp-keyring", + "sp-keystore", "sp-panic-handler", "sp-runtime", - "sp-state-machine", "sp-utils", "sp-version", "structopt", - "substrate-prometheus-endpoint", - "time", - "tokio 0.2.22", + "thiserror", + "tiny-bip39", + "tokio 0.2.24", + "tracing", + "tracing-log", + "tracing-subscriber", +] + +[[package]] +name = "sc-cli-proc-macro" +version = "2.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +dependencies = [ + "proc-macro-crate", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "sc-client-api" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "derive_more 0.99.9", + "derive_more 0.99.11", "fnv", - "futures 0.3.5", + "futures 0.3.12", "hash-db", - "hex-literal", "kvdb", "lazy_static", - "log 0.4.11", + "log", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "sc-executor", - "sc-telemetry", "sp-api", "sp-blockchain", "sp-consensus", @@ -6213,7 +6785,7 @@ dependencies = [ "sp-database", "sp-externalities", "sp-inherents", - "sp-keyring", + "sp-keystore", "sp-runtime", "sp-state-machine", "sp-std", @@ -6227,8 +6799,8 @@ dependencies = [ [[package]] name = "sc-client-db" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "blake2-rfc", "hash-db", @@ -6236,11 +6808,11 @@ dependencies = [ "kvdb-memorydb", "kvdb-rocksdb", "linked-hash-map", - "log 0.4.11", + "log", "parity-db", "parity-scale-codec", "parity-util-mem", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "sc-client-api", "sc-executor", "sc-state-db", @@ -6257,8 +6829,8 @@ dependencies = [ [[package]] name = "sc-consensus" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "sc-client-api", "sp-blockchain", @@ -6268,20 +6840,20 @@ dependencies = [ [[package]] name = "sc-consensus-babe" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "derive_more 0.99.9", + "derive_more 0.99.11", "fork-tree", - "futures 0.3.5", + "futures 0.3.12", "futures-timer 3.0.2", - "log 0.4.11", + "log", "merlin", "num-bigint", "num-rational", - "num-traits 0.2.12", + "num-traits 0.2.14", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "pdqselect", "rand 0.7.3", "retain_mut", @@ -6303,6 +6875,7 @@ dependencies = [ "sp-core", "sp-inherents", "sp-io", + "sp-keystore", "sp-runtime", "sp-timestamp", "sp-utils", @@ -6312,17 +6885,16 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "derive_more 0.99.9", - "futures 0.3.5", + "derive_more 0.99.11", + "futures 0.3.12", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", "sc-consensus-babe", "sc-consensus-epochs", - "sc-keystore", "sc-rpc-api", "serde", "sp-api", @@ -6331,17 +6903,18 @@ dependencies = [ "sp-consensus", "sp-consensus-babe", "sp-core", + "sp-keystore", "sp-runtime", ] [[package]] name = "sc-consensus-epochs" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "fork-tree", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "sc-client-api", "sp-blockchain", "sp-runtime", @@ -6349,18 +6922,19 @@ dependencies = [ [[package]] name = "sc-consensus-slots" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "futures 0.3.5", + "futures 0.3.12", "futures-timer 3.0.2", - "log 0.4.11", + "log", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "sc-client-api", "sc-telemetry", "sp-api", "sp-application-crypto", + "sp-arithmetic", "sp-blockchain", "sp-consensus", "sp-consensus-slots", @@ -6368,14 +6942,16 @@ dependencies = [ "sp-inherents", "sp-runtime", "sp-state-machine", + "sp-trie", + "thiserror", ] [[package]] name = "sc-consensus-uncles" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "log 0.4.11", + "log", "sc-client-api", "sp-authorship", "sp-consensus", @@ -6386,16 +6962,16 @@ dependencies = [ [[package]] name = "sc-executor" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "derive_more 0.99.9", + "derive_more 0.99.11", "lazy_static", "libsecp256k1", - "log 0.4.11", + "log", "parity-scale-codec", - "parity-wasm", - "parking_lot 0.10.2", + "parity-wasm 0.41.0", + "parking_lot 0.11.1", "sc-executor-common", "sc-executor-wasmi", "sc-executor-wasmtime", @@ -6406,6 +6982,7 @@ dependencies = [ "sp-panic-handler", "sp-runtime-interface", "sp-serializer", + "sp-tasks", "sp-trie", "sp-version", "sp-wasm-interface", @@ -6414,27 +6991,26 @@ dependencies = [ [[package]] name = "sc-executor-common" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "derive_more 0.99.9", - "log 0.4.11", + "derive_more 0.99.11", "parity-scale-codec", - "parity-wasm", + "parity-wasm 0.41.0", "sp-allocator", "sp-core", - "sp-runtime-interface", "sp-serializer", "sp-wasm-interface", + "thiserror", "wasmi", ] [[package]] name = "sc-executor-wasmi" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "log 0.4.11", + "log", "parity-scale-codec", "sc-executor-common", "sp-allocator", @@ -6446,40 +7022,36 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "cranelift-codegen", - "cranelift-wasm", - "log 0.4.11", + "log", "parity-scale-codec", - "parity-wasm", + "parity-wasm 0.41.0", + "pwasm-utils", "sc-executor-common", "scoped-tls", "sp-allocator", "sp-core", "sp-runtime-interface", "sp-wasm-interface", - "substrate-wasmtime", - "wasmtime-environ", - "wasmtime-runtime", + "wasmtime", ] [[package]] name = "sc-finality-grandpa" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "assert_matches", - "derive_more 0.99.9", + "derive_more 0.99.11", "finality-grandpa", "fork-tree", - "futures 0.3.5", + "futures 0.3.12", "futures-timer 3.0.2", - "log 0.4.11", + "log", "parity-scale-codec", - "parking_lot 0.10.2", - "pin-project", + "parking_lot 0.11.1", + "pin-project 0.4.27", "rand 0.7.3", "sc-block-builder", "sc-client-api", @@ -6496,8 +7068,8 @@ dependencies = [ "sp-consensus", "sp-core", "sp-finality-grandpa", - "sp-finality-tracker", "sp-inherents", + "sp-keystore", "sp-runtime", "sp-utils", "substrate-prometheus-endpoint", @@ -6505,29 +7077,36 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "derive_more 0.99.9", + "derive_more 0.99.11", "finality-grandpa", - "futures 0.3.5", + "futures 0.3.12", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", - "log 0.4.11", + "jsonrpc-pubsub", + "log", + "parity-scale-codec", + "sc-client-api", "sc-finality-grandpa", + "sc-rpc", "serde", "serde_json", + "sp-blockchain", + "sp-core", + "sp-runtime", ] [[package]] name = "sc-informant" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "ansi_term 0.12.1", - "futures 0.3.5", - "log 0.4.11", + "futures 0.3.12", + "log", "parity-util-mem", "sc-client-api", "sc-network", @@ -6540,29 +7119,33 @@ dependencies = [ [[package]] name = "sc-keystore" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "derive_more 0.99.9", + "async-trait", + "derive_more 0.99.11", + "futures 0.3.12", + "futures-util", "hex", "merlin", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "rand 0.7.3", "serde_json", "sp-application-crypto", "sp-core", - "subtle 2.2.3", + "sp-keystore", + "subtle 2.4.0", ] [[package]] name = "sc-light" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "hash-db", "lazy_static", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "sc-client-api", "sc-executor", "sp-api", @@ -6575,18 +7158,20 @@ dependencies = [ [[package]] name = "sc-network" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ + "async-std", + "async-trait", "bitflags", "bs58", "bytes 0.5.6", - "derive_more 0.99.9", + "derive_more 0.99.11", "either", "erased-serde", "fnv", "fork-tree", - "futures 0.3.5", + "futures 0.3.12", "futures-timer 3.0.2", "futures_codec", "hex", @@ -6594,12 +7179,11 @@ dependencies = [ "libp2p", "linked-hash-map", "linked_hash_set", - "log 0.4.11", - "lru", + "log", "nohash-hasher", "parity-scale-codec", - "parking_lot 0.10.2", - "pin-project", + "parking_lot 0.11.1", + "pin-project 0.4.27", "prost", "prost-build", "rand 0.7.3", @@ -6610,7 +7194,7 @@ dependencies = [ "serde_json", "slog", "slog_derive", - "smallvec 0.6.13", + "smallvec 1.6.1", "sp-arithmetic", "sp-blockchain", "sp-consensus", @@ -6619,7 +7203,7 @@ dependencies = [ "sp-utils", "substrate-prometheus-endpoint", "thiserror", - "unsigned-varint 0.4.0", + "unsigned-varint", "void", "wasm-timer", "zeroize", @@ -6627,34 +7211,35 @@ dependencies = [ [[package]] name = "sc-network-gossip" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "futures 0.3.5", + "futures 0.3.12", "futures-timer 3.0.2", "libp2p", - "log 0.4.11", + "log", "lru", "sc-network", "sp-runtime", + "substrate-prometheus-endpoint", "wasm-timer", ] [[package]] name = "sc-offchain" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "bytes 0.5.6", "fnv", - "futures 0.3.5", + "futures 0.3.12", "futures-timer 3.0.2", - "hyper 0.13.7", + "hyper 0.13.9", "hyper-rustls", - "log 0.4.11", + "log", "num_cpus", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "rand 0.7.3", "sc-client-api", "sc-keystore", @@ -6669,12 +7254,12 @@ dependencies = [ [[package]] name = "sc-peerset" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "futures 0.3.5", + "futures 0.3.12", "libp2p", - "log 0.4.11", + "log", "serde_json", "sp-utils", "wasm-timer", @@ -6682,35 +7267,37 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "log 0.4.11", + "log", "substrate-prometheus-endpoint", ] [[package]] name = "sc-rpc" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "futures 0.3.5", + "futures 0.3.12", "hash-db", "jsonrpc-core", "jsonrpc-pubsub", - "log 0.4.11", + "log", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "sc-block-builder", "sc-client-api", "sc-executor", "sc-keystore", "sc-rpc-api", + "sc-tracing", "serde_json", "sp-api", "sp-blockchain", "sp-chain-spec", "sp-core", + "sp-keystore", "sp-offchain", "sp-rpc", "sp-runtime", @@ -6723,18 +7310,18 @@ dependencies = [ [[package]] name = "sc-rpc-api" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "derive_more 0.99.9", - "futures 0.3.5", + "derive_more 0.99.11", + "futures 0.3.12", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", "jsonrpc-pubsub", - "log 0.4.11", + "log", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "serde", "serde_json", "sp-chain-spec", @@ -6747,41 +7334,41 @@ dependencies = [ [[package]] name = "sc-rpc-server" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ + "futures 0.1.30", "jsonrpc-core", "jsonrpc-http-server", "jsonrpc-ipc-server", "jsonrpc-pubsub", "jsonrpc-ws-server", - "log 0.4.11", + "log", "serde", "serde_json", "sp-runtime", + "substrate-prometheus-endpoint", ] [[package]] name = "sc-service" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" -dependencies = [ - "derive_more 0.99.9", - "directories", - "exit-future 0.2.0", - "futures 0.1.29", - "futures 0.3.5", +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +dependencies = [ + "directories 3.0.1", + "exit-future", + "futures 0.1.30", + "futures 0.3.12", "futures-timer 3.0.2", "hash-db", + "jsonrpc-core", "jsonrpc-pubsub", "lazy_static", - "log 0.4.11", - "netstat2", + "log", "parity-scale-codec", "parity-util-mem", - "parking_lot 0.10.2", - "pin-project", - "procfs", + "parking_lot 0.11.1", + "pin-project 0.4.27", "rand 0.7.3", "sc-block-builder", "sc-chain-spec", @@ -6810,45 +7397,69 @@ dependencies = [ "sp-externalities", "sp-inherents", "sp-io", + "sp-keystore", "sp-runtime", "sp-session", "sp-state-machine", + "sp-tracing", "sp-transaction-pool", "sp-trie", "sp-utils", "sp-version", "substrate-prometheus-endpoint", - "sysinfo", "tempfile", + "thiserror", "tracing", + "tracing-futures", "wasm-timer", ] [[package]] name = "sc-state-db" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "log 0.4.11", + "log", "parity-scale-codec", "parity-util-mem", "parity-util-mem-derive", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "sc-client-api", "sp-core", + "thiserror", +] + +[[package]] +name = "sc-sync-state-rpc" +version = "0.8.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +dependencies = [ + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "sc-chain-spec", + "sc-client-api", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-finality-grandpa", + "sc-rpc-api", + "serde_json", + "sp-blockchain", + "sp-runtime", + "thiserror", ] [[package]] name = "sc-telemetry" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "futures 0.3.5", + "futures 0.3.12", "futures-timer 3.0.2", "libp2p", - "log 0.4.11", - "parking_lot 0.10.2", - "pin-project", + "log", + "parking_lot 0.11.1", + "pin-project 0.4.27", "rand 0.7.3", "serde", "slog", @@ -6861,32 +7472,39 @@ dependencies = [ [[package]] name = "sc-tracing" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ + "ansi_term 0.12.1", "erased-serde", - "log 0.4.11", - "parking_lot 0.10.2", + "lazy_static", + "log", + "once_cell", + "parking_lot 0.11.1", + "regex", "rustc-hash", "sc-telemetry", "serde", "serde_json", "slog", "sp-tracing", + "tracing", "tracing-core", + "tracing-log", + "tracing-subscriber", ] [[package]] name = "sc-transaction-graph" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "derive_more 0.99.9", - "futures 0.3.5", + "derive_more 0.99.11", + "futures 0.3.12", "linked-hash-map", - "log 0.4.11", + "log", "parity-util-mem", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "retain_mut", "serde", "sp-blockchain", @@ -6894,22 +7512,22 @@ dependencies = [ "sp-runtime", "sp-transaction-pool", "sp-utils", + "thiserror", "wasm-timer", ] [[package]] name = "sc-transaction-pool" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "derive_more 0.99.9", - "futures 0.3.5", + "futures 0.3.12", "futures-diagnose", "intervalier", - "log 0.4.11", + "log", "parity-scale-codec", "parity-util-mem", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "sc-client-api", "sc-transaction-graph", "sp-api", @@ -6920,6 +7538,7 @@ dependencies = [ "sp-transaction-pool", "sp-utils", "substrate-prometheus-endpoint", + "thiserror", "wasm-timer", ] @@ -6940,14 +7559,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862" dependencies = [ "arrayref", - "arrayvec 0.5.1", - "curve25519-dalek 2.1.0", - "getrandom", + "arrayvec 0.5.2", + "curve25519-dalek 2.1.2", + "getrandom 0.1.16", "merlin", "rand 0.7.3", "rand_core 0.5.1", + "serde", "sha2 0.8.2", - "subtle 2.2.3", + "subtle 2.4.0", "zeroize", ] @@ -6957,12 +7577,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" -[[package]] -name = "scopeguard" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" - [[package]] name = "scopeguard" version = "1.1.0" @@ -6971,22 +7585,22 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "scroll" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb2332cb595d33f7edd5700f4cbf94892e680c7f0ae56adab58a35190b66cb1" +checksum = "fda28d4b4830b807a8b43f7b0e6b5df875311b3e7621d84577188c175b6ec1ec" dependencies = [ "scroll_derive", ] [[package]] name = "scroll_derive" -version = "0.10.2" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e367622f934864ffa1c704ba2b82280aab856e3d8213c84c5720257eb34b15b9" +checksum = "b12bd20b94c7cdfda8c7ba9b92ad0d9a56e3fa018c25fca83b51aa664c9b4c0d" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] @@ -7001,9 +7615,9 @@ dependencies = [ [[package]] name = "secrecy" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9182278ed645df3477a9c27bfee0621c621aa16f6972635f7f795dae3d81070f" +checksum = "0673d6a6449f5e7d12a1caf424fd9363e2af3a4953023ed455e3c4beef4597c0" dependencies = [ "zeroize", ] @@ -7025,10 +7639,19 @@ dependencies = [ name = "security-framework-sys" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51ceb04988b17b6d1dcd555390fa822ca5637b4a14e1f5099f13d351bed4d6c7" +checksum = "51ceb04988b17b6d1dcd555390fa822ca5637b4a14e1f5099f13d351bed4d6c7" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537" dependencies = [ - "core-foundation-sys", - "libc", + "semver-parser 0.7.0", ] [[package]] @@ -7037,52 +7660,59 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" dependencies = [ - "semver-parser", + "semver-parser 0.7.0", ] [[package]] -name = "semver-parser" -version = "0.7.0" +name = "semver" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser 0.10.2", + "serde", +] [[package]] -name = "send_wrapper" -version = "0.2.0" +name = "semver-parser" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0eddf2e8f50ced781f288c19f18621fa72a3779e3cb58dbf23b07469b0abeb4" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] -name = "send_wrapper" -version = "0.4.0" +name = "semver-parser" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] [[package]] name = "serde" -version = "1.0.115" +version = "1.0.119" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e54c9a88f2da7238af84b5101443f0c0d0a3bbdc455e34a5c9497b1903ed55d5" +checksum = "9bdd36f49e35b61d49efd8aa7fc068fd295961fd2286d0b2ee9a4c7a14e99cc3" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.115" +version = "1.0.119" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "609feed1d0a73cc36a0182a840a9b37b4a82f0b1150369f0536a9e3f2a31dc48" +checksum = "552954ce79a059ddd5fd68c271592374bd15cab2274970380c000118aeffe1cd" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "serde_json" -version = "1.0.57" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c" +checksum = "4fceb2595057b6891a4ee808f70054bd2d12f0e97f1cbb78689b59f676df325a" dependencies = [ "itoa", "ryu", @@ -7103,13 +7733,13 @@ dependencies = [ [[package]] name = "sha-1" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "170a36ea86c864a3f16dd2687712dd6646f7019f301e57537c7f4dc9f5916770" +checksum = "ce3cdf1b5e620a498ee6f2a171885ac7e22f0e12089ec4b3d22b84921792507c" dependencies = [ "block-buffer 0.9.0", - "cfg-if", - "cpuid-bool", + "cfg-if 1.0.0", + "cpuid-bool 0.1.2", "digest 0.9.0", "opaque-debug 0.3.0", ] @@ -7128,13 +7758,13 @@ dependencies = [ [[package]] name = "sha2" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2933378ddfeda7ea26f48c555bdad8bb446bf8a3d17832dc83e380d444cfb8c1" +checksum = "6e7aab86fe2149bad8c507606bdb3f4ef5e7b2380eb92350f56122cca72a42a8" dependencies = [ "block-buffer 0.9.0", - "cfg-if", - "cpuid-bool", + "cfg-if 1.0.0", + "cpuid-bool 0.1.2", "digest 0.9.0", "opaque-debug 0.3.0", ] @@ -7151,19 +7781,28 @@ dependencies = [ "opaque-debug 0.3.0", ] +[[package]] +name = "sharded-slab" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79c719719ee05df97490f80a45acfc99e5a30ce98a1e4fb67aee422745ae14e3" +dependencies = [ + "lazy_static", +] + [[package]] name = "shared_memory" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf3ab0cdff84d6c66fc9e268010ea6508e58ee942575afb66f2cf194bb218bb4" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "enum_primitive", "libc", - "log 0.4.11", + "log", "memrange", - "nix 0.10.0", - "quick-error", + "nix", + "quick-error 1.2.3", "rand 0.4.6", "shared_memory_derive", "theban_interval_tree", @@ -7187,21 +7826,42 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" +[[package]] +name = "signal-hook" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e31d442c16f047a671b5a71e2161d6e68814012b7f5379d269ebd915fac2729" +dependencies = [ + "libc", + "signal-hook-registry", +] + [[package]] name = "signal-hook-registry" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e12110bc539e657a646068aaf5eb5b63af9d0c1f7b29c97113fad80e15f035" +checksum = "16f1d0fef1604ba8f7a073c7e701f213e056707210e9020af4528e0101ce11a6" dependencies = [ - "arc-swap", "libc", ] [[package]] name = "signature" -version = "1.2.2" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f0242b8e50dd9accdd56170e94ca1ebd223b098eb9c83539a6e367d0f36ae68" + +[[package]] +name = "simba" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29f060a7d147e33490ec10da418795238fd7545bba241504d6b31a409f2e6210" +checksum = "fb931b1367faadea6b1ab1c306a860ec17aaa5fa39f367d0c744e69d971a1fb2" +dependencies = [ + "approx", + "num-complex", + "num-traits 0.2.14", + "paste", +] [[package]] name = "slab" @@ -7211,9 +7871,9 @@ checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" [[package]] name = "slog" -version = "2.5.2" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cc9c640a4adbfbcc11ffb95efe5aa7af7309e002adab54b185507dbf2377b99" +checksum = "8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06" dependencies = [ "erased-serde", ] @@ -7233,9 +7893,9 @@ dependencies = [ [[package]] name = "slog-scope" -version = "4.3.0" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c44c89dd8b0ae4537d1ae318353eaf7840b4869c536e31c41e963d1ea523ee6" +checksum = "2f95a4b4c3274cd2869549da82b57ccc930859bdbf5bcea0424bc5f140b3c786" dependencies = [ "arc-swap", "lazy_static", @@ -7248,31 +7908,31 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a945ec7f7ce853e89ffa36be1e27dce9a43e82ff9093bf3461c30d5da74ed11b" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "smallvec" -version = "0.6.13" +version = "0.6.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" +checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0" dependencies = [ "maybe-uninit", ] [[package]] name = "smallvec" -version = "1.4.2" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbee7696b84bbf3d89a1c2eccff0850e3047ed46bfcd2e92c29a2d074d57e252" +checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" [[package]] name = "snow" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32bf8474159a95551661246cda4976e89356999e3cbfef36f493dacc3fae1e8e" +checksum = "795dd7aeeee24468e5a32661f6d27f7b5cbed802031b2d7640c7b10f8fb2dd50" dependencies = [ "aes-gcm", "blake2", @@ -7281,55 +7941,54 @@ dependencies = [ "rand_core 0.5.1", "ring", "rustc_version", - "sha2 0.9.1", - "subtle 2.2.3", + "sha2 0.9.2", + "subtle 2.4.0", "x25519-dalek", ] [[package]] name = "socket2" -version = "0.3.12" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918" +checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", - "redox_syscall", "winapi 0.3.9", ] [[package]] name = "soketto" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85457366ae0c6ce56bf05a958aef14cd38513c236568618edbcd9a8c52cb80b0" +checksum = "b5c71ed3d54db0a699f4948e1bb3e45b450fa31fe602621dee6680361d569c88" dependencies = [ "base64 0.12.3", "bytes 0.5.6", "flate2", - "futures 0.3.5", + "futures 0.3.12", "httparse", - "log 0.4.11", + "log", "rand 0.7.3", - "sha-1 0.8.2", + "sha-1 0.9.2", ] [[package]] name = "sp-allocator" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "derive_more 0.99.9", - "log 0.4.11", + "log", "sp-core", "sp-std", "sp-wasm-interface", + "thiserror", ] [[package]] name = "sp-api" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "hash-db", "parity-scale-codec", @@ -7339,24 +7998,25 @@ dependencies = [ "sp-state-machine", "sp-std", "sp-version", + "thiserror", ] [[package]] name = "sp-api-proc-macro" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "blake2-rfc", "proc-macro-crate", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "sp-application-crypto" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "parity-scale-codec", "serde", @@ -7367,11 +8027,11 @@ dependencies = [ [[package]] name = "sp-arithmetic" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "integer-sqrt", - "num-traits 0.2.12", + "num-traits 0.2.14", "parity-scale-codec", "serde", "sp-debug-derive", @@ -7380,8 +8040,8 @@ dependencies = [ [[package]] name = "sp-authority-discovery" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "parity-scale-codec", "sp-api", @@ -7392,8 +8052,8 @@ dependencies = [ [[package]] name = "sp-authorship" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "parity-scale-codec", "sp-inherents", @@ -7403,8 +8063,8 @@ dependencies = [ [[package]] name = "sp-block-builder" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "parity-scale-codec", "sp-api", @@ -7415,25 +8075,26 @@ dependencies = [ [[package]] name = "sp-blockchain" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "derive_more 0.99.9", - "log 0.4.11", + "futures 0.3.12", + "log", "lru", "parity-scale-codec", - "parking_lot 0.10.2", - "sp-block-builder", + "parking_lot 0.11.1", + "sp-api", "sp-consensus", "sp-database", "sp-runtime", "sp-state-machine", + "thiserror", ] [[package]] name = "sp-chain-spec" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "serde", "serde_json", @@ -7441,16 +8102,15 @@ dependencies = [ [[package]] name = "sp-consensus" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "derive_more 0.99.9", - "futures 0.3.5", + "futures 0.3.12", "futures-timer 3.0.2", "libp2p", - "log 0.4.11", + "log", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "serde", "sp-api", "sp-core", @@ -7462,27 +8122,14 @@ dependencies = [ "sp-utils", "sp-version", "substrate-prometheus-endpoint", + "thiserror", "wasm-timer", ] -[[package]] -name = "sp-consensus-aura" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" -dependencies = [ - "parity-scale-codec", - "sp-api", - "sp-application-crypto", - "sp-inherents", - "sp-runtime", - "sp-std", - "sp-timestamp", -] - [[package]] name = "sp-consensus-babe" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "merlin", "parity-scale-codec", @@ -7493,6 +8140,7 @@ dependencies = [ "sp-consensus-vrf", "sp-core", "sp-inherents", + "sp-keystore", "sp-runtime", "sp-std", "sp-timestamp", @@ -7500,8 +8148,8 @@ dependencies = [ [[package]] name = "sp-consensus-slots" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -7509,8 +8157,8 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -7521,41 +8169,41 @@ dependencies = [ [[package]] name = "sp-core" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "base58", "blake2-rfc", "byteorder", - "derive_more 0.99.9", "dyn-clonable", "ed25519-dalek", - "futures 0.3.5", + "futures 0.3.12", "hash-db", "hash256-std-hasher", "hex", - "impl-serde 0.3.1", + "impl-serde", "lazy_static", "libsecp256k1", - "log 0.4.11", + "log", "merlin", - "num-traits 0.2.12", + "num-traits 0.2.14", "parity-scale-codec", "parity-util-mem", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "primitive-types", "rand 0.7.3", "regex", "schnorrkel", "secrecy", "serde", - "sha2 0.8.2", + "sha2 0.9.2", "sp-debug-derive", "sp-externalities", "sp-runtime-interface", "sp-std", "sp-storage", "substrate-bip39", + "thiserror", "tiny-bip39", "tiny-keccak", "twox-hash", @@ -7565,27 +8213,27 @@ dependencies = [ [[package]] name = "sp-database" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "kvdb", - "parking_lot 0.10.2", + "parking_lot 0.11.1", ] [[package]] name = "sp-debug-derive" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "sp-externalities" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "environmental", "parity-scale-codec", @@ -7595,78 +8243,89 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "finality-grandpa", - "log 0.4.11", + "log", "parity-scale-codec", "serde", "sp-api", "sp-application-crypto", "sp-core", + "sp-keystore", "sp-runtime", "sp-std", ] -[[package]] -name = "sp-finality-tracker" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" -dependencies = [ - "parity-scale-codec", - "sp-inherents", - "sp-std", -] - [[package]] name = "sp-inherents" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "derive_more 0.99.9", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "sp-core", "sp-std", + "thiserror", ] [[package]] name = "sp-io" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "futures 0.3.5", + "futures 0.3.12", "hash-db", "libsecp256k1", - "log 0.4.11", + "log", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "sp-core", "sp-externalities", + "sp-keystore", "sp-runtime-interface", "sp-state-machine", "sp-std", "sp-tracing", "sp-trie", "sp-wasm-interface", + "tracing", + "tracing-core", ] [[package]] name = "sp-keyring" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "lazy_static", "sp-core", "sp-runtime", - "strum", + "strum 0.16.0", +] + +[[package]] +name = "sp-keystore" +version = "0.8.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +dependencies = [ + "async-trait", + "derive_more 0.99.11", + "futures 0.3.12", + "merlin", + "parity-scale-codec", + "parking_lot 0.11.1", + "schnorrkel", + "serde", + "sp-core", + "sp-externalities", ] [[package]] name = "sp-npos-elections" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "parity-scale-codec", "serde", @@ -7677,19 +8336,19 @@ dependencies = [ [[package]] name = "sp-npos-elections-compact" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "proc-macro-crate", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "sp-offchain" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "sp-api", "sp-core", @@ -7698,17 +8357,16 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "backtrace", - "log 0.4.11", ] [[package]] name = "sp-rpc" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "serde", "sp-core", @@ -7716,13 +8374,13 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "either", "hash256-std-hasher", - "impl-trait-for-tuples", - "log 0.4.11", + "impl-trait-for-tuples 0.2.0", + "log", "parity-scale-codec", "parity-util-mem", "paste", @@ -7731,21 +8389,22 @@ dependencies = [ "sp-application-crypto", "sp-arithmetic", "sp-core", - "sp-inherents", "sp-io", "sp-std", ] [[package]] name = "sp-runtime-interface" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ + "impl-trait-for-tuples 0.2.0", "parity-scale-codec", "primitive-types", "sp-externalities", "sp-runtime-interface-proc-macro", "sp-std", + "sp-storage", "sp-tracing", "sp-wasm-interface", "static_assertions", @@ -7753,20 +8412,20 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "Inflector", "proc-macro-crate", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "sp-serializer" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "serde", "serde_json", @@ -7774,8 +8433,8 @@ dependencies = [ [[package]] name = "sp-session" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "parity-scale-codec", "sp-api", @@ -7787,8 +8446,8 @@ dependencies = [ [[package]] name = "sp-staking" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -7797,48 +8456,63 @@ dependencies = [ [[package]] name = "sp-state-machine" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "hash-db", - "itertools 0.9.0", - "log 0.4.11", - "num-traits 0.2.12", + "log", + "num-traits 0.2.14", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "rand 0.7.3", - "smallvec 1.4.2", + "smallvec 1.6.1", "sp-core", "sp-externalities", "sp-panic-handler", + "sp-std", "sp-trie", + "thiserror", "trie-db", - "trie-root 0.16.0", + "trie-root", ] [[package]] name = "sp-std" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" [[package]] name = "sp-storage" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "impl-serde 0.2.3", + "impl-serde", + "parity-scale-codec", "ref-cast", "serde", "sp-debug-derive", "sp-std", ] +[[package]] +name = "sp-tasks" +version = "2.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +dependencies = [ + "log", + "sp-core", + "sp-externalities", + "sp-io", + "sp-runtime-interface", + "sp-std", +] + [[package]] name = "sp-timestamp" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "impl-trait-for-tuples", + "impl-trait-for-tuples 0.2.0", "parity-scale-codec", "sp-api", "sp-inherents", @@ -7849,33 +8523,37 @@ dependencies = [ [[package]] name = "sp-tracing" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "log 0.4.11", - "rental", + "log", + "parity-scale-codec", + "sp-std", "tracing", + "tracing-core", + "tracing-subscriber", ] [[package]] name = "sp-transaction-pool" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "derive_more 0.99.9", - "futures 0.3.5", - "log 0.4.11", + "derive_more 0.99.11", + "futures 0.3.12", + "log", "parity-scale-codec", "serde", "sp-api", "sp-blockchain", "sp-runtime", + "thiserror", ] [[package]] name = "sp-trie" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "hash-db", "memory-db", @@ -7883,15 +8561,15 @@ dependencies = [ "sp-core", "sp-std", "trie-db", - "trie-root 0.16.0", + "trie-root", ] [[package]] name = "sp-utils" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "futures 0.3.5", + "futures 0.3.12", "futures-core", "futures-timer 3.0.2", "lazy_static", @@ -7900,10 +8578,10 @@ dependencies = [ [[package]] name = "sp-version" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "impl-serde 0.2.3", + "impl-serde", "parity-scale-codec", "serde", "sp-runtime", @@ -7912,10 +8590,10 @@ dependencies = [ [[package]] name = "sp-wasm-interface" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "impl-trait-for-tuples", + "impl-trait-for-tuples 0.2.0", "parity-scale-codec", "sp-std", "wasmi", @@ -7941,22 +8619,35 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "statrs" -version = "0.10.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10102ac8d55e35db2b3fafc26f81ba8647da2e15879ab686a67e6d19af2685e8" +checksum = "cce16f6de653e88beca7bd13780d08e09d4489dbca1f9210e041bc4852481382" dependencies = [ - "rand 0.5.6", + "rand 0.7.3", ] [[package]] name = "stream-cipher" -version = "0.4.1" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09f8ed9974042b8c3672ff3030a69fcc03b74c47c3d1ecb7755e8a3626011e88" +checksum = "c80e15f898d8d8f25db24c253ea615cc14acf418ff307822995814e7d42cfa89" dependencies = [ + "block-cipher", "generic-array 0.14.4", ] +[[package]] +name = "streamunordered" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9394ee1338fee8370bee649f8a7170b3a56917903a0956467ad192dcf8699ca" +dependencies = [ + "futures-core", + "futures-sink", + "futures-util", + "slab", +] + [[package]] name = "string" version = "0.2.1" @@ -7974,9 +8665,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "structopt" -version = "0.3.17" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cc388d94ffabf39b5ed5fadddc40147cb21e605f53db6f8f36a625d27489ac5" +checksum = "5277acd7ee46e63e5168a80734c9f6ee81b1367a7d8772a2d765df2a3705d28c" dependencies = [ "clap", "lazy_static", @@ -7985,15 +8676,15 @@ dependencies = [ [[package]] name = "structopt-derive" -version = "0.4.10" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e2513111825077552a6751dfad9e11ce0fba07d7276a3943a037d7e93e64c5f" +checksum = "5ba9cdfda491b814720b6b06e0cac513d922fc407582032e8706e9f137976f90" dependencies = [ "heck", "proc-macro-error", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] @@ -8002,7 +8693,16 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6138f8f88a16d90134763314e3fc76fa3ed6a7db4725d6acf9a3ef95a3188d22" dependencies = [ - "strum_macros", + "strum_macros 0.16.0", +] + +[[package]] +name = "strum" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7318c509b5ba57f18533982607f24070a55d353e90d4cae30c467cdb2ad5ac5c" +dependencies = [ + "strum_macros 0.20.1", ] [[package]] @@ -8012,9 +8712,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0054a7df764039a6cd8592b9de84be4bec368ff081d203a7d5371cbfa8e65c81" dependencies = [ "heck", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", +] + +[[package]] +name = "strum_macros" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149" +dependencies = [ + "heck", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] @@ -8023,8 +8735,8 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bed6646a0159b9935b5d045611560eeef842b78d7adc3ba36f5ca325a13a0236" dependencies = [ - "hmac", - "pbkdf2", + "hmac 0.7.1", + "pbkdf2 0.3.0", "schnorrkel", "sha2 0.8.2", "zeroize", @@ -8032,23 +8744,23 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "platforms", ] [[package]] name = "substrate-frame-rpc-system" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "frame-system-rpc-runtime-api", - "futures 0.3.5", + "futures 0.3.12", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", - "log 0.4.11", + "log", "parity-scale-codec", "sc-client-api", "sc-rpc-api", @@ -8063,25 +8775,25 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" -version = "0.8.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "0.8.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ "async-std", - "derive_more 0.99.9", + "derive_more 0.99.11", "futures-util", - "hyper 0.13.7", - "log 0.4.11", + "hyper 0.13.9", + "log", "prometheus", - "tokio 0.2.22", + "tokio 0.2.24", ] [[package]] name = "substrate-test-client" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +version = "2.0.1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "futures 0.1.29", - "futures 0.3.5", + "futures 0.1.30", + "futures 0.3.12", "hash-db", "hex", "parity-scale-codec", @@ -8097,105 +8809,40 @@ dependencies = [ "sp-consensus", "sp-core", "sp-keyring", + "sp-keystore", "sp-runtime", "sp-state-machine", ] [[package]] -name = "substrate-test-runtime" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" -dependencies = [ - "cfg-if", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-rpc-runtime-api", - "log 0.4.11", - "memory-db", - "pallet-babe", - "pallet-timestamp", - "parity-scale-codec", - "parity-util-mem", - "sc-service", - "serde", - "sp-api", - "sp-application-crypto", - "sp-block-builder", - "sp-consensus-aura", - "sp-consensus-babe", - "sp-core", - "sp-finality-grandpa", - "sp-inherents", - "sp-io", - "sp-keyring", - "sp-offchain", - "sp-runtime", - "sp-runtime-interface", - "sp-session", - "sp-std", - "sp-transaction-pool", - "sp-trie", - "sp-version", - "substrate-wasm-builder-runner 1.0.6 (git+https://github.com/paritytech/substrate?branch=rococo-branch)", - "trie-db", -] - -[[package]] -name = "substrate-test-runtime-client" -version = "2.0.0-rc5" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" +name = "substrate-wasm-builder" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79091baab813855ddf65b191de9fe53e656b6b67c1e9bd23fdcbff8788164684" dependencies = [ - "futures 0.3.5", - "parity-scale-codec", - "sc-block-builder", - "sc-client-api", - "sc-consensus", - "sc-light", - "sc-service", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-runtime", - "substrate-test-client", - "substrate-test-runtime", + "ansi_term 0.12.1", + "atty", + "build-helper", + "cargo_metadata", + "tempfile", + "toml", + "walkdir", + "wasm-gc-api", ] [[package]] -name = "substrate-wasm-builder-runner" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2a965994514ab35d3893e9260245f2947fd1981cdd4fffd2c6e6d1a9ce02e6a" - -[[package]] -name = "substrate-wasm-builder-runner" -version = "1.0.6" -source = "git+https://github.com/paritytech/substrate?branch=rococo-branch#f397f246fd0a0c8c2ef2f0b7576ecbed133ed78d" - -[[package]] -name = "substrate-wasmtime" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a69f5b3afef86e3e372529bf3fb1f7219b20287c4490e4cb4b4e91970f4f5" +name = "substrate-wasm-builder" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" dependencies = [ - "anyhow", - "backtrace", - "cfg-if", - "lazy_static", - "libc", - "log 0.4.11", - "region", - "rustc-demangle", - "smallvec 1.4.2", - "target-lexicon", - "wasmparser 0.59.0", - "wasmtime-environ", - "wasmtime-jit", - "wasmtime-profiling", - "wasmtime-runtime", - "wat", - "winapi 0.3.9", + "ansi_term 0.12.1", + "atty", + "build-helper", + "cargo_metadata", + "tempfile", + "toml", + "walkdir", + "wasm-gc-api", ] [[package]] @@ -8206,20 +8853,9 @@ checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" [[package]] name = "subtle" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "502d53007c02d7605a05df1c1a73ee436952781653da5d0bf57ad608f66932c1" - -[[package]] -name = "syn" -version = "0.11.11" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad" -dependencies = [ - "quote 0.3.15", - "synom", - "unicode-xid 0.0.4", -] +checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2" [[package]] name = "syn" @@ -8234,51 +8870,27 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.39" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891d8d6567fe7c7f8835a3a98af4208f3846fba258c1bc3c31d6e506239f11f9" +checksum = "cc60a3d73ea6594cd712d830cc1f0390fd71542d8c8cd24e70cc54cdfd5e05d5" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", + "proc-macro2 1.0.24", + "quote 1.0.8", "unicode-xid 0.2.1", ] -[[package]] -name = "synom" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6" -dependencies = [ - "unicode-xid 0.0.4", -] - [[package]] name = "synstructure" version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", "unicode-xid 0.2.1", ] -[[package]] -name = "sysinfo" -version = "0.14.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2983daff11a197c7c406b130579bc362177aa54cf2cc1f34d6ac88fccaa6a5e1" -dependencies = [ - "cfg-if", - "doc-comment", - "libc", - "ntapi", - "once_cell", - "rayon", - "winapi 0.3.9", -] - [[package]] name = "take_mut" version = "0.2.2" @@ -8293,23 +8905,23 @@ checksum = "ab0e7238dcc7b40a7be719a25365910f6807bd864f4cce6b2e6b873658e2b19d" [[package]] name = "tempfile" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" +checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "libc", - "rand 0.7.3", - "redox_syscall", + "rand 0.8.2", + "redox_syscall 0.2.4", "remove_dir_all", "winapi 0.3.9", ] [[package]] name = "termcolor" -version = "1.1.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" +checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" dependencies = [ "winapi-util", ] @@ -8336,29 +8948,29 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.20" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dfdd070ccd8ccb78f4ad66bf1982dc37f620ef696c6b5028fe2ed83dd3d0d08" +checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.20" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793" +checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "thread_local" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" +checksum = "bb9bc092d0d51e76b2b19d9d85534ffc9ec2db959a2523cdae0697e2972cd447" dependencies = [ "lazy_static", ] @@ -8372,6 +8984,19 @@ dependencies = [ "num_cpus", ] +[[package]] +name = "thrift" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c6d965454947cc7266d22716ebfd07b18d84ebaf35eec558586bbb2a8cb6b5b" +dependencies = [ + "byteorder", + "integer-encoding", + "log", + "ordered-float", + "threadpool", +] + [[package]] name = "time" version = "0.1.43" @@ -8384,18 +9009,20 @@ dependencies = [ [[package]] name = "tiny-bip39" -version = "0.7.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0165e045cc2ae1660270ca65e1676dbaab60feb0f91b10f7d0665e9b47e31f2" +checksum = "d9e44c4759bae7f1032e286a7ef990bd9ed23fe831b7eeba0beb97484c2e59b8" dependencies = [ - "failure", - "hmac", + "anyhow", + "hmac 0.8.1", "once_cell", - "pbkdf2", + "pbkdf2 0.4.0", "rand 0.7.3", "rustc-hash", - "sha2 0.8.2", + "sha2 0.9.2", + "thiserror", "unicode-normalization", + "zeroize", ] [[package]] @@ -8409,9 +9036,18 @@ dependencies = [ [[package]] name = "tinyvec" -version = "0.3.4" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "238ce071d267c5710f9d31451efec16c5ee22de34df17cc05e56cbc92e967117" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" @@ -8420,16 +9056,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" dependencies = [ "bytes 0.4.12", - "futures 0.1.29", + "futures 0.1.30", "mio", "num_cpus", "tokio-codec", "tokio-current-thread", - "tokio-executor 0.1.10", + "tokio-executor", "tokio-fs", "tokio-io", "tokio-reactor", - "tokio-sync 0.1.8", + "tokio-sync", "tokio-tcp", "tokio-threadpool", "tokio-timer", @@ -8439,9 +9075,9 @@ dependencies = [ [[package]] name = "tokio" -version = "0.2.22" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d34ca54d84bf2b5b4d7d31e901a8464f7b60ac145a284fba25ceb801f2ddccd" +checksum = "099837d3464c16a808060bb3f02263b412f6fafcb5d01c533d309985fbeebe48" dependencies = [ "bytes 0.5.6", "fnv", @@ -8453,10 +9089,9 @@ dependencies = [ "mio", "mio-uds", "num_cpus", - "pin-project-lite", + "pin-project-lite 0.1.11", "signal-hook-registry", "slab", - "tokio-macros", "winapi 0.3.9", ] @@ -8468,7 +9103,7 @@ checksum = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46" dependencies = [ "bytes 0.4.12", "either", - "futures 0.1.29", + "futures 0.1.30", ] [[package]] @@ -8478,7 +9113,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b" dependencies = [ "bytes 0.4.12", - "futures 0.1.29", + "futures 0.1.30", "tokio-io", ] @@ -8488,8 +9123,8 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e" dependencies = [ - "futures 0.1.29", - "tokio-executor 0.1.10", + "futures 0.1.30", + "tokio-executor", ] [[package]] @@ -8498,19 +9133,8 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" dependencies = [ - "crossbeam-utils", - "futures 0.1.29", -] - -[[package]] -name = "tokio-executor" -version = "0.2.0-alpha.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ee9ceecf69145923834ea73f32ba40c790fd877b74a7817dd0b089f1eb9c7c8" -dependencies = [ - "futures-util-preview", - "lazy_static", - "tokio-sync 0.2.0-alpha.6", + "crossbeam-utils 0.7.2", + "futures 0.1.30", ] [[package]] @@ -8519,7 +9143,7 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4" dependencies = [ - "futures 0.1.29", + "futures 0.1.30", "tokio-io", "tokio-threadpool", ] @@ -8531,19 +9155,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" dependencies = [ "bytes 0.4.12", - "futures 0.1.29", - "log 0.4.11", -] - -[[package]] -name = "tokio-macros" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c3acc6aa564495a0f2e1d59fab677cd7f81a19994cfc7f3ad0e64301560389" -dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "futures 0.1.30", + "log", ] [[package]] @@ -8553,7 +9166,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d282d483052288b2308ba5ee795f5673b159c9bdf63c385a05609da782a5eae" dependencies = [ "bytes 0.4.12", - "futures 0.1.29", + "futures 0.1.30", "mio", "mio-named-pipes", "tokio 0.1.22", @@ -8565,28 +9178,28 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" dependencies = [ - "crossbeam-utils", - "futures 0.1.29", + "crossbeam-utils 0.7.2", + "futures 0.1.30", "lazy_static", - "log 0.4.11", + "log", "mio", "num_cpus", "parking_lot 0.9.0", "slab", - "tokio-executor 0.1.10", + "tokio-executor", "tokio-io", - "tokio-sync 0.1.8", + "tokio-sync", ] [[package]] name = "tokio-rustls" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "228139ddd4fea3fa345a29233009635235833e52807af7ea6448ead03890d6a9" +checksum = "e12831b255bcfa39dc0436b01e19fea231a37db570686c06ee72c423479f889a" dependencies = [ "futures-core", - "rustls", - "tokio 0.2.22", + "rustls 0.18.1", + "tokio 0.2.24", "webpki", ] @@ -8596,7 +9209,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24da22d077e0f15f55162bdbdc661228c1581892f52074fb242678d015b45162" dependencies = [ - "futures 0.1.29", + "futures 0.1.30", ] [[package]] @@ -8606,18 +9219,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee" dependencies = [ "fnv", - "futures 0.1.29", -] - -[[package]] -name = "tokio-sync" -version = "0.2.0-alpha.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f1aaeb685540f7407ea0e27f1c9757d258c7c6bf4e3eb19da6fc59b747239d2" -dependencies = [ - "fnv", - "futures-core-preview", - "futures-util-preview", + "futures 0.1.30", ] [[package]] @@ -8627,7 +9229,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" dependencies = [ "bytes 0.4.12", - "futures 0.1.29", + "futures 0.1.30", "iovec", "mio", "tokio-io", @@ -8640,15 +9242,15 @@ version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" dependencies = [ - "crossbeam-deque", + "crossbeam-deque 0.7.3", "crossbeam-queue", - "crossbeam-utils", - "futures 0.1.29", + "crossbeam-utils 0.7.2", + "futures 0.1.30", "lazy_static", - "log 0.4.11", + "log", "num_cpus", "slab", - "tokio-executor 0.1.10", + "tokio-executor", ] [[package]] @@ -8657,10 +9259,10 @@ version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" dependencies = [ - "crossbeam-utils", - "futures 0.1.29", + "crossbeam-utils 0.7.2", + "futures 0.1.30", "slab", - "tokio-executor 0.1.10", + "tokio-executor", ] [[package]] @@ -8670,8 +9272,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82" dependencies = [ "bytes 0.4.12", - "futures 0.1.29", - "log 0.4.11", + "futures 0.1.30", + "log", "mio", "tokio-codec", "tokio-io", @@ -8685,10 +9287,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0" dependencies = [ "bytes 0.4.12", - "futures 0.1.29", + "futures 0.1.30", "iovec", "libc", - "log 0.4.11", + "log", "mio", "mio-uds", "tokio-codec", @@ -8705,16 +9307,16 @@ dependencies = [ "bytes 0.5.6", "futures-core", "futures-sink", - "log 0.4.11", - "pin-project-lite", - "tokio 0.2.22", + "log", + "pin-project-lite 0.1.11", + "tokio 0.2.24", ] [[package]] name = "toml" -version = "0.5.6" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a" +checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" dependencies = [ "serde", ] @@ -8727,12 +9329,13 @@ checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" [[package]] name = "tracing" -version = "0.1.19" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d79ca061b032d6ce30c660fded31189ca0b9922bf483cd70759f13a2d86786c" +checksum = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3" dependencies = [ - "cfg-if", - "log 0.4.11", + "cfg-if 1.0.0", + "log", + "pin-project-lite 0.2.4", "tracing-attributes", "tracing-core", ] @@ -8743,46 +9346,84 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80e0ccfc3378da0cce270c946b676a376943f5cd16aeba64568e7939806f4ada" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", ] [[package]] name = "tracing-core" -version = "0.1.15" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f0e00789804e99b20f12bc7003ca416309d28a6f495d6af58d1e2c2842461b5" +checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f" dependencies = [ "lazy_static", ] [[package]] -name = "treeline" -version = "0.1.0" +name = "tracing-futures" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c" +dependencies = [ + "pin-project 0.4.27", + "tracing", +] + +[[package]] +name = "tracing-log" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41" +checksum = "5e0f8c7178e13481ff6765bd169b33e8d554c5d2bbede5e32c356194be02b9b9" +dependencies = [ + "lazy_static", + "log", + "tracing-core", +] [[package]] -name = "trie-db" -version = "0.22.1" +name = "tracing-serde" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e55f7ace33d6237e14137e386f4e1672e2a5c6bbc97fef9f438581a143971f0" +checksum = "fb65ea441fbb84f9f6748fd496cf7f63ec9af5bca94dd86456978d055e8eb28b" dependencies = [ - "hash-db", - "hashbrown 0.8.2", - "log 0.4.11", - "rustc-hex", - "smallvec 1.4.2", + "serde", + "tracing-core", ] [[package]] -name = "trie-root" -version = "0.15.2" +name = "tracing-subscriber" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1fa8f0c8f4c594e4fc9debc1990deab13238077271ba84dd853d54902ee3401" +dependencies = [ + "ansi_term 0.12.1", + "chrono", + "lazy_static", + "matchers", + "regex", + "serde", + "serde_json", + "sharded-slab", + "smallvec 1.6.1", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", + "tracing-serde", +] + +[[package]] +name = "trie-db" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b779f7c1c8fe9276365d9d5be5c4b5adeacf545117bb3f64c974305789c5c0b" +checksum = "5cc176c377eb24d652c9c69c832c832019011b6106182bf84276c66b66d5c9a6" dependencies = [ "hash-db", + "hashbrown", + "log", + "rustc-hex", + "smallvec 1.6.1", ] [[package]] @@ -8802,11 +9443,13 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "twox-hash" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bfd5b7557925ce778ff9b9ef90e3ade34c524b5ff10e239c69a42d546d2af56" +checksum = "04f8ab788026715fa63b31960869617cba39117e520eb415b0139543e325ab59" dependencies = [ + "cfg-if 0.1.10", "rand 0.7.3", + "static_assertions", ] [[package]] @@ -8815,6 +9458,12 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" +[[package]] +name = "ucd-trie" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" + [[package]] name = "uint" version = "0.8.5" @@ -8827,6 +9476,18 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "uint" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e11fe9a9348741cf134085ad57c249508345fe16411b3d7fb4ff2da2f1d6382e" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + [[package]] name = "unicase" version = "2.6.0" @@ -8847,18 +9508,18 @@ dependencies = [ [[package]] name = "unicode-normalization" -version = "0.1.13" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977" +checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" +checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796" [[package]] name = "unicode-width" @@ -8866,12 +9527,6 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" -[[package]] -name = "unicode-xid" -version = "0.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc" - [[package]] name = "unicode-xid" version = "0.1.0" @@ -8891,14 +9546,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" dependencies = [ "generic-array 0.14.4", - "subtle 2.2.3", + "subtle 2.4.0", ] [[package]] name = "unsigned-varint" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "669d776983b692a906c881fcd0cfb34271a48e197e4d6cb8df32b05bfc3d3fa5" +checksum = "f7fdeedbf205afadfe39ae559b75c3240f24e257d0ca27e85f85cb82aa19ac35" dependencies = [ "bytes 0.5.6", "futures-io", @@ -8906,12 +9561,6 @@ dependencies = [ "futures_codec", ] -[[package]] -name = "unsigned-varint" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a98e44fc6af1e18c3a06666d829b4fd8d2714fb2dbffe8ab99d5dc7ea6baa628" - [[package]] name = "untrusted" version = "0.7.1" @@ -8931,10 +9580,11 @@ dependencies = [ [[package]] name = "url" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb" +checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e" dependencies = [ + "form_urlencoded", "idna 0.2.0", "matches", "percent-encoding 2.1.0", @@ -8942,15 +9592,15 @@ dependencies = [ [[package]] name = "vcpkg" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c" +checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb" [[package]] name = "vec-arena" -version = "0.5.2" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cb18268690309760d59ee1a9b21132c126ba384f374c59a94db4bc03adeb561" +checksum = "eafc1b9b2dfc6f5529177b62cf806484db55b32dc7c9658a118e11bbeb33061d" [[package]] name = "vec_map" @@ -8971,19 +9621,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" [[package]] -name = "wait-timeout" -version = "0.2.0" +name = "waker-fn" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" -dependencies = [ - "libc", -] +checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" [[package]] -name = "waker-fn" -version = "1.0.0" +name = "walkdir" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9571542c2ce85ce642e6b58b3364da2fb53526360dfb7c211add4f5c23105ff7" +checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" +dependencies = [ + "same-file", + "winapi 0.3.9", + "winapi-util", +] [[package]] name = "want" @@ -8991,8 +9643,8 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230" dependencies = [ - "futures 0.1.29", - "log 0.4.11", + "futures 0.1.30", + "log", "try-lock", ] @@ -9002,7 +9654,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" dependencies = [ - "log 0.4.11", + "log", "try-lock", ] @@ -9012,38 +9664,44 @@ version = "0.9.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +[[package]] +name = "wasi" +version = "0.10.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93c6c3420963c5c64bca373b25e77acb562081b9bb4dd5bb864187742186cea9" + [[package]] name = "wasm-bindgen" -version = "0.2.67" +version = "0.2.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0563a9a4b071746dd5aedbc3a28c6fe9be4586fb3fbadb67c400d4f53c6b16c" +checksum = "3cd364751395ca0f68cafb17666eee36b63077fb5ecd972bbcd74c90c4bf736e" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.67" +version = "0.2.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc71e4c5efa60fb9e74160e89b93353bc24059999c0ae0fb03affc39770310b0" +checksum = "1114f89ab1f4106e5b55e688b828c0ab0ea593a1ea7c094b141b14cbaaec2d62" dependencies = [ "bumpalo", "lazy_static", - "log 0.4.11", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "log", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.17" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95f8d235a77f880bcef268d379810ea6c0af2eacfa90b1ad5af731776e0c4699" +checksum = "1fe9756085a84584ee9457a002b7cdfe0bfff169f45d2591d8be1345a6780e35" dependencies = [ - "cfg-if", + "cfg-if 1.0.0", "js-sys", "wasm-bindgen", "web-sys", @@ -9051,44 +9709,54 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.67" +version = "0.2.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97c57cefa5fa80e2ba15641578b44d36e7a64279bc5ed43c6dbaf329457a2ed2" +checksum = "7a6ac8995ead1f084a8dea1e65f194d0973800c7f571f6edd70adf06ecf77084" dependencies = [ - "quote 1.0.7", + "quote 1.0.8", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.67" +version = "0.2.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841a6d1c35c6f596ccea1f82504a192a60378f64b3bb0261904ad8f2f5657556" +checksum = "b5a48c72f299d80557c7c62e37e7225369ecc0c963964059509fbafe917c7549" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.67" +version = "0.2.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158" + +[[package]] +name = "wasm-gc-api" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93b162580e34310e5931c4b792560108b10fd14d64915d7fff8ff00180e70092" +checksum = "d0c32691b6c7e6c14e7f8fd55361a9088b507aa49620fcd06c09b3a1082186b9" +dependencies = [ + "log", + "parity-wasm 0.32.0", + "rustc-demangle", +] [[package]] name = "wasm-timer" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "324c5e65a08699c9c4334ba136597ab22b85dccd4b65dd1e36ccf8f723a95b54" +checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures 0.3.5", + "futures 0.3.12", "js-sys", - "parking_lot 0.9.0", + "parking_lot 0.11.1", "pin-utils", - "send_wrapper 0.2.0", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -9103,8 +9771,8 @@ dependencies = [ "libc", "memory_units", "num-rational", - "num-traits 0.2.12", - "parity-wasm", + "num-traits 0.2.14", + "parity-wasm 0.41.0", "wasmi-validation", ] @@ -9114,7 +9782,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea78c597064ba73596099281e2f4cfc019075122a65cdda3205af94f0b264d93" dependencies = [ - "parity-wasm", + "parity-wasm 0.41.0", ] [[package]] @@ -9129,6 +9797,31 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a950e6a618f62147fd514ff445b2a0b53120d382751960797f85f058c7eda9b9" +[[package]] +name = "wasmtime" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd3c4f449382779ef6e0a7c3ec6752ae614e20a42e4100000c3efdc973100e2" +dependencies = [ + "anyhow", + "backtrace", + "cfg-if 0.1.10", + "lazy_static", + "libc", + "log", + "region", + "rustc-demangle", + "smallvec 1.6.1", + "target-lexicon", + "wasmparser 0.59.0", + "wasmtime-environ", + "wasmtime-jit", + "wasmtime-profiling", + "wasmtime-runtime", + "wat", + "winapi 0.3.9", +] + [[package]] name = "wasmtime-debug" version = "0.19.0" @@ -9154,17 +9847,17 @@ dependencies = [ "anyhow", "base64 0.12.3", "bincode", - "cfg-if", + "cfg-if 0.1.10", "cranelift-codegen", "cranelift-entity", "cranelift-frontend", "cranelift-wasm", - "directories", + "directories 2.0.2", "errno", "file-per-thread-logger", "indexmap", "libc", - "log 0.4.11", + "log", "more-asserts", "rayon", "serde", @@ -9183,14 +9876,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e914c013c7a9f15f4e429d5431f2830fb8adb56e40567661b69c5ec1d645be23" dependencies = [ "anyhow", - "cfg-if", + "cfg-if 0.1.10", "cranelift-codegen", "cranelift-entity", "cranelift-frontend", "cranelift-native", "cranelift-wasm", "gimli 0.21.0", - "log 0.4.11", + "log", "more-asserts", "object 0.20.0", "region", @@ -9226,7 +9919,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e8d4d1af8dd5f7096cfcc89dd668d358e52980c38cce199643372ffd6590e27" dependencies = [ "anyhow", - "cfg-if", + "cfg-if 0.1.10", "gimli 0.21.0", "lazy_static", "libc", @@ -9246,12 +9939,12 @@ checksum = "3a25f140bbbaadb07c531cba99ce1a966dba216138dc1b2a0ddecec851a01a93" dependencies = [ "backtrace", "cc", - "cfg-if", + "cfg-if 0.1.10", "indexmap", "lazy_static", "libc", - "log 0.4.11", - "memoffset", + "log", + "memoffset 0.5.6", "more-asserts", "region", "thiserror", @@ -9261,27 +9954,27 @@ dependencies = [ [[package]] name = "wast" -version = "23.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b080a48623c1b15193eac2e28c7b8d0e6b2e1c6c67ed46ddcd86063e78e504" +checksum = "9beb1f6b63f08c523a1e8e76fc70058af4d2a34ef1c504f56cdac7b6970228b9" dependencies = [ "leb128", ] [[package]] name = "wat" -version = "1.0.24" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c350d7431aa486488d28cdf75b57d59c02fab9cde20d93c52424510afe18ecc" +checksum = "2a0b3044da73d3b84a822d955afad356759b2fee454b6882722008dace80b68e" dependencies = [ "wast", ] [[package]] name = "web-sys" -version = "0.3.44" +version = "0.3.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dda38f4e5ca63eda02c059d243aa25b5f35ab98451e518c51612cd0f1bd19a47" +checksum = "222b1ef9334f92a21d3fb53dc3fd80f30836959a90f9274a626d7e06315ba3c3" dependencies = [ "js-sys", "wasm-bindgen", @@ -9289,9 +9982,9 @@ dependencies = [ [[package]] name = "webpki" -version = "0.21.3" +version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab146130f5f790d45f82aeeb09e55a256573373ec64409fc19a6fb82fb1032ae" +checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" dependencies = [ "ring", "untrusted", @@ -9299,43 +9992,33 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91cd5736df7f12a964a5067a12c62fa38e1bd8080aff1f80bc29be7c80d19ab4" -dependencies = [ - "webpki", -] - -[[package]] -name = "webpki-roots" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8eff4b7516a57307f9349c64bf34caa34b940b66fed4b2fb3136cb7386e5739" +checksum = "82015b7e0b8bad8185994674a13a93306bea76cf5a16c5a181382fd3a5ec2376" dependencies = [ "webpki", ] [[package]] -name = "wepoll-sys-stjepang" -version = "1.0.6" +name = "wepoll-sys" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd319e971980166b53e17b1026812ad66c6b54063be879eb182342b55284694" +checksum = "0fcb14dea929042224824779fbc82d9fab8d2e6d3cbc0ac404de8edf489e77ff" dependencies = [ "cc", ] [[package]] name = "westend-runtime" -version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-branch#93f0029184a6c1749ce9420f4df1628a313a117d" +version = "0.8.27" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" dependencies = [ "bitvec", "frame-executive", "frame-support", "frame-system", "frame-system-rpc-runtime-api", - "hex-literal", - "log 0.3.9", + "log", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", @@ -9343,7 +10026,6 @@ dependencies = [ "pallet-collective", "pallet-democracy", "pallet-elections-phragmen", - "pallet-finality-tracker", "pallet-grandpa", "pallet-identity", "pallet-im-online", @@ -9374,7 +10056,7 @@ dependencies = [ "rustc-hex", "serde", "serde_derive", - "smallvec 1.4.2", + "smallvec 1.6.1", "sp-api", "sp-authority-discovery", "sp-block-builder", @@ -9390,7 +10072,7 @@ dependencies = [ "sp-transaction-pool", "sp-version", "static_assertions", - "substrate-wasm-builder-runner 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-wasm-builder 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -9445,24 +10127,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "ws" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c51a2c47b5798ccc774ffb93ff536aec7c4275d722fd9c740c83cdd1af1f2d94" -dependencies = [ - "byteorder", - "bytes 0.4.12", - "httparse", - "log 0.4.11", - "mio", - "mio-extras", - "rand 0.7.3", - "sha-1 0.8.2", - "slab", - "url 2.1.1", -] - [[package]] name = "ws2_32-sys" version = "0.2.1" @@ -9475,64 +10139,117 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "0.6.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "637ff90c9540fa3073bb577e65033069e4bae7c79d49d74aa3ffdf5342a53217" +checksum = "bc614d95359fd7afc321b66d2107ede58b246b844cf5d8a0adcca413e439f088" dependencies = [ - "curve25519-dalek 2.1.0", + "curve25519-dalek 3.0.2", "rand_core 0.5.1", "zeroize", ] +[[package]] +name = "xcm" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "xcm-builder" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "frame-support", + "parity-scale-codec", + "polkadot-parachain", + "sp-arithmetic", + "sp-io", + "sp-runtime", + "sp-std", + "xcm", + "xcm-executor", +] + +[[package]] +name = "xcm-executor" +version = "0.8.22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +dependencies = [ + "frame-support", + "impl-trait-for-tuples 0.2.0", + "parity-scale-codec", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "xcm", +] + +[[package]] +name = "xcm-handler" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#7277f7aae5c0b45543a53d823d0c6c1da2a3ab18" +dependencies = [ + "cumulus-primitives", + "frame-support", + "frame-system", + "parity-scale-codec", + "sp-std", + "xcm", +] + [[package]] name = "yamux" -version = "0.4.7" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd37e58a1256a0b328ce9c67d8b62ecdd02f4803ba443df478835cb1a41a637c" +checksum = "9aeb8c4043cac71c3c299dff107171c220d179492350ea198e109a414981b83c" dependencies = [ - "futures 0.3.5", - "log 0.4.11", + "futures 0.3.12", + "log", "nohash-hasher", - "parking_lot 0.10.2", + "parking_lot 0.11.1", "rand 0.7.3", "static_assertions", ] [[package]] name = "zeroize" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cbac2ed2ba24cc90f5e06485ac8c7c1e5449fe8911aef4d8877218af021a5b8" +checksum = "81a974bcdd357f0dca4d41677db03436324d45a4c9ed2d0b873a5a360ce41c36" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de251eec69fc7c1bc3923403d18ececb929380e016afe103da75f396704f8ca2" +checksum = "c3f369ddb18862aba61aa49bf31e74d29f0f162dec753063200e1dc084345d16" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.39", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.58", "synstructure", ] [[package]] name = "zstd" -version = "0.5.3+zstd.1.4.5" +version = "0.5.4+zstd.1.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01b32eaf771efa709e8308605bbf9319bf485dc1503179ec0469b611937c0cd8" +checksum = "69996ebdb1ba8b1517f61387a883857818a66c8a295f487b1ffd8fd9d2c82910" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "2.0.5+zstd.1.4.5" +version = "2.0.6+zstd.1.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfb642e0d27f64729a639c52db457e0ae906e7bc6f5fe8f5c453230400f1055" +checksum = "98aa931fb69ecee256d44589d19754e61851ae4769bf963b385119b1cc37a49e" dependencies = [ "libc", "zstd-sys", @@ -9540,9 +10257,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "1.4.17+zstd.1.4.5" +version = "1.4.18+zstd.1.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b89249644df056b522696b1bb9e7c18c87e8ffa3e2f0dc3b0155875d6498f01b" +checksum = "a1e6e8778706838f43f771d80d37787cb2fe06dafe89dd3aebaf6721b9eaec81" dependencies = [ "cc", "glob", diff --git a/Cargo.toml b/Cargo.toml index 9eda221f..188c6fd1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,11 +1,9 @@ +[profile.release] +panic = 'unwind' + [workspace] members = [ - "runtime/", - "pallets/parachain-info", - "pallets/token-dealer", - "pallets/template", - "node/", + 'node', + 'pallets/*', + 'runtime', ] - -[profile.release] -panic = 'unwind' diff --git a/README.md b/README.md index 27fd7055..72b87899 100644 --- a/README.md +++ b/README.md @@ -18,33 +18,18 @@ If necessary, refer to the setup instructions at the ### Build -``` -rustup install nightly-2020-10-06 -rustup target add wasm32-unknown-unknown --toolchain nightly-2020-10-06 -``` - Once the development environment is set up, build the node template. This command will build the [Wasm](https://substrate.dev/docs/en/knowledgebase/advanced/executor#wasm-execution) and [native](https://substrate.dev/docs/en/knowledgebase/advanced/executor#native-execution) code: ```bash -cargo +nightly-2020-10-06 build --release -``` - -## Polkadot JS types -``` -{ - "Address": "AccountId", - "LookupSource": "AccountId", - "RefCount": "u8" -} +cargo build --release ``` - ## Run ### Local Testnet -Polkadot (rococo-branch): +Polkadot (rococo-v1 branch): ``` ./target/release/polkadot build-spec --chain rococo-local --raw --disable-default-bootnode > rococo_local.json @@ -55,13 +40,7 @@ Polkadot (rococo-branch): Substrate Parachain Template: ``` # this command assumes the chain spec is in a directory named polkadot that is a sibling of the working directory -./target/release/parachain-collator -d local-test --validator --ws-port 9945 --parachain-id 200 -- --chain ../polkadot/rococo_local.json -``` - -Or, start a staging chain with detailed logging: - -```bash -RUST_LOG=debug RUST_BACKTRACE=1 ./target/release/parachain-collator -lruntime=debug --chain staging -- --chain ../polkadot/rococo_local.json +./target/release/parachain-collator -d local-test --collator --alice --ws-port 9945 --parachain-id 200 -- --chain ../polkadot/rococo_local.json ``` ## Learn More diff --git a/node/Cargo.toml b/node/Cargo.toml index 2945f91f..d85bb134 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -1,86 +1,213 @@ -[package] -name = 'parachain-collator' -version = '0.1.0' -authors = ["Parity Technologies "] -build = 'build.rs' -edition = '2018' - -[[bin]] -name = 'parachain-collator' -path = 'src/main.rs' - [dependencies] derive_more = '0.15.0' -exit-future = '0.1.4' -futures = { version = "0.3.1", features = ["compat"] } -log = '0.4.8' -parking_lot = '0.9.0' -trie-root = '0.15.2' +log = "0.4.13" codec = { package = 'parity-scale-codec', version = '1.0.0' } -structopt = "0.3.3" -ansi_term = "0.12.1" +structopt = "0.3.8" serde = { version = "1.0.101", features = ["derive"] } +hex-literal = "0.2.1" +# RPC related dependencies +jsonrpc-core = "15.1.0" + +[dependencies.frame-benchmarking] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.frame-benchmarking-cli] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.parachain-runtime] +path = '../runtime' +version = '2.0.0' + +[dependencies.pallet-transaction-payment-rpc] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sc-basic-authorship] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '0.8.0' + +[dependencies.sc-chain-spec] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sc-cli] +features = ['wasmtime'] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '0.8.0' + +[dependencies.sc-client-api] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sc-consensus] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '0.8.0' + +[dependencies.sc-executor] +features = ['wasmtime'] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '0.8.0' + +[dependencies.sc-keystore] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sc-rpc] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sc-rpc-api] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '0.8.0' + +[dependencies.sc-service] +features = ['wasmtime'] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '0.8.0' + +[dependencies.sc-transaction-pool] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sc-tracing] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sp-api] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sp-block-builder] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' -# Parachain dependencies -parachain-runtime = { path = "../runtime" } - -# Substrate dependencies -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch", version = "0.8.0-rc5" } -sc-finality-grandpa = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sc-informant = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +[dependencies.sp-blockchain] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sp-consensus] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '0.8.0' + +[dependencies.sp-core] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sp-inherents] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sp-runtime] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sp-timestamp] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sp-transaction-pool] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sp-trie] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.substrate-frame-rpc-system] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[build-dependencies.substrate-build-script-utils] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' # Cumulus dependencies -cumulus-consensus = { git = "https://github.com/paritytech/cumulus", rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } -cumulus-collator = { git = "https://github.com/paritytech/cumulus", rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } -cumulus-network = { git = "https://github.com/paritytech/cumulus", rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } -cumulus-primitives = { git = "https://github.com/paritytech/cumulus", rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } -cumulus-service = { git = "https://github.com/paritytech/cumulus", rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } +[dependencies.cumulus-consensus] +git = 'https://github.com/paritytech/cumulus.git' +branch = "rococo-v1" -# Polkadot dependencies -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } -polkadot-collator = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } -polkadot-test-service = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } - -[build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } - -[dev-dependencies] -assert_cmd = "0.12" -nix = "0.17" -rand = "0.7.3" -tokio = { version = "0.2.13", features = ["macros"] } +[dependencies.cumulus-collator] +git = 'https://github.com/paritytech/cumulus.git' +branch = "rococo-v1" + +[dependencies.cumulus-network] +git = 'https://github.com/paritytech/cumulus.git' +branch = "rococo-v1" + +[dependencies.cumulus-primitives] +git = 'https://github.com/paritytech/cumulus.git' +branch = "rococo-v1" + +[dependencies.cumulus-service] +git = 'https://github.com/paritytech/cumulus.git' +branch = "rococo-v1" # Polkadot dependencies -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } -polkadot-test-runtime = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } -polkadot-test-runtime-client = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } -polkadot-test-service = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch" } - -# Substrate dependencies -pallet-sudo = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } -substrate-test-runtime-client = { git = "https://github.com/paritytech/substrate", branch = "rococo-branch" } +[dependencies.polkadot-primitives] +git = "https://github.com/paritytech/polkadot" +branch = "rococo-v1" + +[dependencies.polkadot-service] +git = "https://github.com/paritytech/polkadot" +branch = "rococo-v1" + +[dependencies.polkadot-cli] +git = "https://github.com/paritytech/polkadot" +branch = "rococo-v1" + +[dependencies.polkadot-test-service] +git = "https://github.com/paritytech/polkadot" +branch = "rococo-v1" + +[dependencies.polkadot-parachain] +git = "https://github.com/paritytech/polkadot" +branch = "rococo-v1" + +[[bin]] +name = 'parachain-collator' + +[package] +authors = ['Anonymous'] +build = 'build.rs' +description = 'A new Cumulus FRAME-based Substrate node, ready for hacking.' +edition = '2018' +homepage = 'https://substrate.dev' +license = 'Unlicense' +name = 'parachain-collator' +repository = 'https://github.com/substrate-developer-hub/substrate-parachain-template' +version = '2.0.0' +[package.metadata.docs.rs] +targets = ['x86_64-unknown-linux-gnu'] + +[features] +default = [] +runtime-benchmarks = ['parachain-runtime/runtime-benchmarks'] diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index 1c186c99..01fd92be 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -1,18 +1,13 @@ -// Copyright 2020 Parity Technologies (UK) Ltd. - use cumulus_primitives::ParaId; -use parachain_runtime::{ - AccountId, BalancesConfig, GenesisConfig, Signature, SudoConfig, SystemConfig, - ParachainInfoConfig, WASM_BINARY, -}; use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup}; -use sc_service::{ChainType, Properties}; +use sc_service::ChainType; use serde::{Deserialize, Serialize}; use sp_core::{sr25519, Pair, Public}; use sp_runtime::traits::{IdentifyAccount, Verify}; +use parachain_runtime::{AccountId, Signature}; -/// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type. -pub type ChainSpec = sc_service::GenericChainSpec; +/// Specialized `ChainSpec` for the normal parachain runtime. +pub type ChainSpec = sc_service::GenericChainSpec; /// Helper function to generate a crypto pair from seed pub fn get_from_seed(seed: &str) -> ::Public { @@ -33,7 +28,7 @@ pub struct Extensions { impl Extensions { /// Try to get the extension from the given `ChainSpec`. - pub fn try_get(chain_spec: &Box) -> Option<&Self> { + pub fn try_get(chain_spec: &dyn sc_service::ChainSpec) -> Option<&Self> { sc_chain_spec::get_extension(chain_spec.extensions()) } } @@ -48,32 +43,21 @@ where AccountPublic::from(get_from_seed::(seed)).into_account() } -pub fn get_chain_spec(id: ParaId) -> Result { - let mut properties = Properties::new(); - properties.insert("tokenSymbol".into(), "DEV".into()); - properties.insert("tokenDecimals".into(), 12.into()); - - Ok(ChainSpec::from_genesis( - "Local Testnet", - "local_testnet", +pub fn development_config(id: ParaId) -> ChainSpec { + ChainSpec::from_genesis( + // Name + "Development", + // ID + "dev", ChainType::Local, move || { testnet_genesis( - WASM_BINARY, get_account_id_from_seed::("Alice"), vec![ get_account_id_from_seed::("Alice"), get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Charlie"), - get_account_id_from_seed::("Dave"), - get_account_id_from_seed::("Eve"), - get_account_id_from_seed::("Ferdie"), get_account_id_from_seed::("Alice//stash"), get_account_id_from_seed::("Bob//stash"), - get_account_id_from_seed::("Charlie//stash"), - get_account_id_from_seed::("Dave//stash"), - get_account_id_from_seed::("Eve//stash"), - get_account_id_from_seed::("Ferdie//stash"), ], id, ) @@ -81,61 +65,72 @@ pub fn get_chain_spec(id: ParaId) -> Result { vec![], None, None, - Some(properties), + None, Extensions { - relay_chain: "local_testnet".into(), + relay_chain: "rococo-dev".into(), para_id: id.into(), }, - )) + ) } -pub fn staging_test_net(id: ParaId) -> Result { - let mut properties = Properties::new(); - properties.insert("tokenSymbol".into(), "STG".into()); - properties.insert("tokenDecimals".into(), 12.into()); - - Ok(ChainSpec::from_genesis( - "Staging Testnet", - "staging_testnet", - ChainType::Live, +pub fn local_testnet_config(id: ParaId) -> ChainSpec { + ChainSpec::from_genesis( + // Name + "Local Testnet", + // ID + "local_testnet", + ChainType::Local, move || { testnet_genesis( - WASM_BINARY, get_account_id_from_seed::("Alice"), - vec![get_account_id_from_seed::("Alice")], + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), + ], id, ) }, - Vec::new(), + vec![], + None, None, None, - Some(properties), Extensions { - relay_chain: "rococo_local_testnet".into(), + relay_chain: "rococo-local".into(), para_id: id.into(), }, - )) + ) } fn testnet_genesis( - wasm_binary: &[u8], root_key: AccountId, endowed_accounts: Vec, id: ParaId, -) -> GenesisConfig { - GenesisConfig { - frame_system: Some(SystemConfig { - code: wasm_binary.to_vec(), +) -> parachain_runtime::GenesisConfig { + parachain_runtime::GenesisConfig { + frame_system: Some(parachain_runtime::SystemConfig { + code: parachain_runtime::WASM_BINARY + .expect("WASM binary was not build, please build it!") + .to_vec(), changes_trie_config: Default::default(), }), - pallet_balances: Some(BalancesConfig { + pallet_balances: Some(parachain_runtime::BalancesConfig { balances: endowed_accounts .iter() .cloned() .map(|k| (k, 1 << 60)) .collect(), }), - pallet_sudo: Some(SudoConfig { key: root_key }), - parachain_info: Some(ParachainInfoConfig { parachain_id: id }), + pallet_sudo: Some(parachain_runtime::SudoConfig { key: root_key }), + parachain_info: Some(parachain_runtime::ParachainInfoConfig { parachain_id: id }), } } diff --git a/node/src/cli.rs b/node/src/cli.rs index 5258b858..6740e743 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -1,5 +1,3 @@ -// Copyright 2020 Parity Technologies (UK) Ltd. - use std::path::PathBuf; use sc_cli; @@ -8,9 +6,6 @@ use structopt::StructOpt; /// Sub-commands supported by the collator. #[derive(Debug, StructOpt)] pub enum Subcommand { - #[structopt(flatten)] - Base(sc_cli::Subcommand), - /// Export the genesis state of the parachain. #[structopt(name = "export-genesis-state")] ExportGenesisState(ExportGenesisStateCommand), @@ -18,6 +13,27 @@ pub enum Subcommand { /// Export the genesis wasm of the parachain. #[structopt(name = "export-genesis-wasm")] ExportGenesisWasm(ExportGenesisWasmCommand), + + /// Build a chain specification. + BuildSpec(sc_cli::BuildSpecCmd), + + /// Validate blocks. + CheckBlock(sc_cli::CheckBlockCmd), + + /// Export blocks. + ExportBlocks(sc_cli::ExportBlocksCmd), + + /// Export the state of a given block into a chain spec. + ExportState(sc_cli::ExportStateCmd), + + /// Import blocks. + ImportBlocks(sc_cli::ImportBlocksCmd), + + /// Remove the whole chain. + PurgeChain(sc_cli::PurgeChainCmd), + + /// Revert the chain to a previous state. + Revert(sc_cli::RevertCmd), } /// Command for exporting the genesis state of the parachain @@ -28,9 +44,13 @@ pub struct ExportGenesisStateCommand { pub output: Option, /// Id of the parachain this state is for. - #[structopt(long, default_value = "200")] + #[structopt(long, default_value = "100")] pub parachain_id: u32, + /// Write output in binary. Default is to write in hex. + #[structopt(short, long)] + pub raw: bool, + /// The name of the chain for that the genesis state should be exported. #[structopt(long)] pub chain: Option, @@ -43,6 +63,10 @@ pub struct ExportGenesisWasmCommand { #[structopt(parse(from_os_str))] pub output: Option, + /// Write output in binary. Default is to write in hex. + #[structopt(short, long)] + pub raw: bool, + /// The name of the chain for that the genesis wasm file should be exported. #[structopt(long)] pub chain: Option, @@ -79,6 +103,12 @@ pub struct Cli { #[structopt(flatten)] pub run: RunCmd, + /// Run node as collator. + /// + /// Note that this is the same as running with `--validator`. + #[structopt(long, conflicts_with = "validator")] + pub collator: bool, + /// Relaychain arguments #[structopt(raw = true)] pub relaychain_args: Vec, diff --git a/node/src/command.rs b/node/src/command.rs index 03f72404..24bbbc8b 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -1,34 +1,35 @@ -// Copyright 2020 Parity Technologies (UK) Ltd. - use crate::{ chain_spec, cli::{Cli, RelayChainCli, Subcommand}, }; use codec::Encode; -use cumulus_primitives::ParaId; +use cumulus_primitives::{genesis::generate_genesis_block, ParaId}; use log::info; use parachain_runtime::Block; use polkadot_parachain::primitives::AccountIdConversion; use sc_cli::{ - ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, - NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli, + ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, InitLoggerParams, + KeystoreParams, NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli, +}; +use sc_service::{ + config::{BasePath, PrometheusConfig}, + PartialComponents, }; -use sc_service::config::{BasePath, PrometheusConfig}; use sp_core::hexdisplay::HexDisplay; -use sp_runtime::traits::{Block as BlockT, Hash as HashT, Header as HeaderT, Zero}; -use std::{io::Write, net::SocketAddr, sync::Arc}; +use sp_runtime::traits::Block as BlockT; +use std::{io::Write, net::SocketAddr}; fn load_spec( id: &str, para_id: ParaId, ) -> std::result::Result, String> { - match id { - "staging" => Ok(Box::new(chain_spec::staging_test_net(para_id)?)), - "" => Ok(Box::new(chain_spec::get_chain_spec(para_id)?)), - path => Ok(Box::new(chain_spec::ChainSpec::from_json_file( - path.into(), - )?)), - } + Ok(match id { + "dev" => Box::new(chain_spec::development_config(para_id)), + "" | "local" => Box::new(chain_spec::local_testnet_config(para_id)), + path => Box::new(chain_spec::ChainSpec::from_json_file( + std::path::PathBuf::from(path), + )?), + }) } impl SubstrateCli for Cli { @@ -55,7 +56,7 @@ impl SubstrateCli for Cli { } fn support_url() -> String { - "https://github.com/paritytech/cumulus/issues/new".into() + "https://github.com/substrate-developer-hub/substrate-parachain-template/issues/new".into() } fn copyright_start_year() -> i32 { @@ -84,7 +85,7 @@ impl SubstrateCli for RelayChainCli { "Parachain Collator Template\n\nThe command-line arguments provided first will be \ passed to the parachain node, while the arguments provided after -- will be passed \ to the relaychain node.\n\n\ - parachain-collator [parachain-args] -- [relaychain-args]" + rococo-collator [parachain-args] -- [relaychain-args]" .into() } @@ -93,7 +94,7 @@ impl SubstrateCli for RelayChainCli { } fn support_url() -> String { - "https://github.com/paritytech/cumulus/issues/new".into() + "https://github.com/substrate-developer-hub/substrate-parachain-template/issues/new".into() } fn copyright_start_year() -> i32 { @@ -110,34 +111,6 @@ impl SubstrateCli for RelayChainCli { } } -pub fn generate_genesis_state(chain_spec: &Box) -> Result { - let storage = chain_spec.build_storage()?; - - let child_roots = storage.children_default.iter().map(|(sk, child_content)| { - let state_root = <<::Header as HeaderT>::Hashing as HashT>::trie_root( - child_content.data.clone().into_iter().collect(), - ); - (sk.clone(), state_root.encode()) - }); - let state_root = <<::Header as HeaderT>::Hashing as HashT>::trie_root( - storage.top.clone().into_iter().chain(child_roots).collect(), - ); - - let extrinsics_root = - <<::Header as HeaderT>::Hashing as HashT>::trie_root(Vec::new()); - - Ok(Block::new( - <::Header as HeaderT>::new( - Zero::zero(), - extrinsics_root, - state_root, - Default::default(), - Default::default(), - ), - Default::default(), - )) -} - fn extract_genesis_wasm(chain_spec: &Box) -> Result> { let mut storage = chain_spec.build_storage()?; @@ -152,50 +125,115 @@ pub fn run() -> Result<()> { let cli = Cli::from_args(); match &cli.subcommand { - Some(Subcommand::Base(subcommand)) => { - let runner = cli.create_runner(subcommand)?; - - runner.run_subcommand(subcommand, |mut config| { - let params = crate::service::new_partial::< - parachain_runtime::RuntimeApi, - crate::service::RuntimeExecutor, - >(&mut config)?; - - Ok(( - params.client, - params.backend, - params.import_queue, - params.task_manager, - )) + Some(Subcommand::BuildSpec(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.sync_run(|config| cmd.run(config.chain_spec, config.network)) + } + Some(Subcommand::CheckBlock(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.async_run(|config| { + let PartialComponents { + client, + task_manager, + import_queue, + .. + } = crate::service::new_partial(&config)?; + Ok((cmd.run(client, import_queue), task_manager)) + }) + } + Some(Subcommand::ExportBlocks(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.async_run(|config| { + let PartialComponents { + client, + task_manager, + .. + } = crate::service::new_partial(&config)?; + Ok((cmd.run(client, config.database), task_manager)) + }) + } + Some(Subcommand::ExportState(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.async_run(|config| { + let PartialComponents { + client, + task_manager, + .. + } = crate::service::new_partial(&config)?; + Ok((cmd.run(client, config.chain_spec), task_manager)) + }) + } + Some(Subcommand::ImportBlocks(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.async_run(|config| { + let PartialComponents { + client, + task_manager, + import_queue, + .. + } = crate::service::new_partial(&config)?; + Ok((cmd.run(client, import_queue), task_manager)) + }) + } + Some(Subcommand::PurgeChain(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.sync_run(|config| cmd.run(config.database)) + } + Some(Subcommand::Revert(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.async_run(|config| { + let PartialComponents { + client, + task_manager, + backend, + .. + } = crate::service::new_partial(&config)?; + Ok((cmd.run(client, backend), task_manager)) }) } Some(Subcommand::ExportGenesisState(params)) => { - sc_cli::init_logger(""); + sc_cli::init_logger(InitLoggerParams { + tracing_receiver: sc_tracing::TracingReceiver::Log, + ..Default::default() + })?; - let block = generate_genesis_state(&load_spec( + let block: Block = generate_genesis_block(&load_spec( ¶ms.chain.clone().unwrap_or_default(), params.parachain_id.into(), )?)?; - let header_hex = format!("0x{:?}", HexDisplay::from(&block.header().encode())); + let raw_header = block.header().encode(); + let output_buf = if params.raw { + raw_header + } else { + format!("0x{:?}", HexDisplay::from(&block.header().encode())).into_bytes() + }; if let Some(output) = ¶ms.output { - std::fs::write(output, header_hex)?; + std::fs::write(output, output_buf)?; } else { - print!("{}", header_hex); + std::io::stdout().write_all(&output_buf)?; } Ok(()) } Some(Subcommand::ExportGenesisWasm(params)) => { - sc_cli::init_logger(""); + sc_cli::init_logger(InitLoggerParams { + tracing_receiver: sc_tracing::TracingReceiver::Log, + ..Default::default() + })?; - let wasm_file = + let raw_wasm_blob = extract_genesis_wasm(&cli.load_spec(¶ms.chain.clone().unwrap_or_default())?)?; + let output_buf = if params.raw { + raw_wasm_blob + } else { + format!("0x{:?}", HexDisplay::from(&raw_wasm_blob)).into_bytes() + }; if let Some(output) = ¶ms.output { - std::fs::write(output, wasm_file)?; + std::fs::write(output, output_buf)?; } else { - std::io::stdout().write_all(&wasm_file)?; + std::io::stdout().write_all(&output_buf)?; } Ok(()) @@ -203,11 +241,11 @@ pub fn run() -> Result<()> { None => { let runner = cli.create_runner(&*cli.run)?; - runner.run_node_until_exit(|config| { + runner.run_node_until_exit(|config| async move { // TODO - let key = Arc::new(sp_core::Pair::generate().0); + let key = sp_core::Pair::generate().0; - let extension = chain_spec::Extensions::try_get(&config.chain_spec); + let extension = chain_spec::Extensions::try_get(&*config.chain_spec); let relay_chain_id = extension.map(|e| e.relay_chain.clone()); let para_id = extension.map(|e| e.para_id); @@ -224,31 +262,25 @@ pub fn run() -> Result<()> { let parachain_account = AccountIdConversion::::into_account(&id); - let block = - generate_genesis_state(&config.chain_spec).map_err(|e| format!("{:?}", e))?; + let block: Block = + generate_genesis_block(&config.chain_spec).map_err(|e| format!("{:?}", e))?; let genesis_state = format!("0x{:?}", HexDisplay::from(&block.header().encode())); let task_executor = config.task_executor.clone(); let polkadot_config = SubstrateCli::create_configuration(&polkadot_cli, &polkadot_cli, task_executor) .map_err(|err| format!("Relay chain argument error: {}", err))?; + let collator = cli.run.base.validator || cli.collator; info!("Parachain id: {:?}", id); info!("Parachain Account: {}", parachain_account); info!("Parachain genesis state: {}", genesis_state); - info!( - "Is collating: {}", - if cli.run.base.validator { "yes" } else { "no" } - ); + info!("Is collating: {}", if collator { "yes" } else { "no" }); - crate::service::start_node( - config, - key, - polkadot_config, - id, - cli.run.base.validator, - ) - .map(|r| r.0) + crate::service::start_node(config, key, polkadot_config, id, collator) + .await + .map(|r| r.0) + .map_err(Into::into) }) } } diff --git a/node/src/main.rs b/node/src/main.rs index 87b47cdf..a3bcf9be 100644 --- a/node/src/main.rs +++ b/node/src/main.rs @@ -1,8 +1,3 @@ -// Copyright 2020 Parity Technologies (UK) Ltd. - -//! Cumulus test parachain collator - -#![warn(missing_docs)] #![warn(unused_extern_crates)] mod chain_spec; @@ -13,4 +8,4 @@ mod command; fn main() -> sc_cli::Result<()> { command::run() -} +} \ No newline at end of file diff --git a/node/src/service.rs b/node/src/service.rs index 192399b8..484a7f29 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -1,24 +1,20 @@ -// Copyright 2020 Parity Technologies (UK) Ltd. - -use ansi_term::Color; -use cumulus_network::DelayedBlockAnnounceValidator; +use cumulus_network::build_block_announce_validator; use cumulus_service::{ prepare_node_config, start_collator, start_full_node, StartCollatorParams, StartFullNodeParams, }; +use parachain_runtime::{RuntimeApi, opaque::Block}; use polkadot_primitives::v0::CollatorPair; -use parachain_runtime::opaque::Block; use sc_executor::native_executor_instance; pub use sc_executor::NativeExecutor; -use sc_informant::OutputFormat; use sc_service::{Configuration, PartialComponents, Role, TFullBackend, TFullClient, TaskManager}; -use sp_api::ConstructRuntimeApi; +use sp_core::Pair; use sp_runtime::traits::BlakeTwo256; use sp_trie::PrefixedMemoryDB; use std::sync::Arc; // Native executor instance. native_executor_instance!( - pub RuntimeExecutor, + pub Executor, parachain_runtime::api::dispatch, parachain_runtime::native_version, ); @@ -27,8 +23,8 @@ native_executor_instance!( /// /// Use this macro if you don't actually need the full service, but just the builder in order to /// be able to perform chain operations. -pub fn new_partial( - config: &mut Configuration, +pub fn new_partial( + config: &Configuration, ) -> Result< PartialComponents< TFullClient, @@ -39,27 +35,10 @@ pub fn new_partial( (), >, sc_service::Error, -> -where - RuntimeApi: ConstructRuntimeApi> - + Send - + Sync - + 'static, - RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue - + sp_api::Metadata - + sp_session::SessionKeys - + sp_api::ApiExt< - Block, - Error = sp_blockchain::Error, - StateBackend = sc_client_api::StateBackendFor, Block>, - > + sp_offchain::OffchainWorkerApi - + sp_block_builder::BlockBuilder, - sc_client_api::StateBackendFor, Block>: sp_api::StateBackend, - Executor: sc_executor::NativeExecutionDispatch + 'static, -{ +> { let inherent_data_providers = sp_inherents::InherentDataProviders::new(); - let (client, backend, keystore, task_manager) = + let (client, backend, keystore_container, task_manager) = sc_service::new_full_parts::(&config)?; let client = Arc::new(client); @@ -84,7 +63,7 @@ where backend, client, import_queue, - keystore, + keystore_container, task_manager, transaction_pool, inherent_data_providers, @@ -98,46 +77,37 @@ where /// Start a node with the given parachain `Configuration` and relay chain `Configuration`. /// /// This is the actual implementation that is abstract over the executor and the runtime api. -fn start_node_impl( +#[sc_cli::prefix_logs_with("Parachain")] +async fn start_node_impl( parachain_config: Configuration, - collator_key: Arc, - mut polkadot_config: polkadot_collator::Configuration, + collator_key: CollatorPair, + polkadot_config: Configuration, id: polkadot_primitives::v0::Id, validator: bool, + rpc_ext_builder: RB, ) -> sc_service::error::Result<(TaskManager, Arc>)> where - RuntimeApi: ConstructRuntimeApi> + RB: Fn( + Arc>, + ) -> jsonrpc_core::IoHandler + Send - + Sync + 'static, - RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue - + sp_api::Metadata - + sp_session::SessionKeys - + sp_api::ApiExt< - Block, - Error = sp_blockchain::Error, - StateBackend = sc_client_api::StateBackendFor, Block>, - > + sp_offchain::OffchainWorkerApi - + sp_block_builder::BlockBuilder, - sc_client_api::StateBackendFor, Block>: sp_api::StateBackend, - Executor: sc_executor::NativeExecutionDispatch + 'static, { if matches!(parachain_config.role, Role::Light) { return Err("Light client not supported!".into()); } - let mut parachain_config = prepare_node_config(parachain_config); + let parachain_config = prepare_node_config(parachain_config); - parachain_config.informant_output_format = OutputFormat { - enable_color: true, - prefix: format!("[{}] ", Color::Yellow.bold().paint("Parachain")), - }; - polkadot_config.informant_output_format = OutputFormat { - enable_color: true, - prefix: format!("[{}] ", Color::Blue.bold().paint("Relaychain")), - }; + let polkadot_full_node = + cumulus_service::build_polkadot_full_node(polkadot_config, collator_key.public()).map_err( + |e| match e { + polkadot_service::Error::Sub(x) => x, + s => format!("{}", s).into(), + }, + )?; - let params = new_partial::(&mut parachain_config)?; + let params = new_partial(¶chain_config)?; params .inherent_data_providers .register_provider(sp_timestamp::InherentDataProvider) @@ -145,11 +115,12 @@ where let client = params.client.clone(); let backend = params.backend.clone(); - let block_announce_validator = DelayedBlockAnnounceValidator::new(); - let block_announce_validator_builder = { - let block_announce_validator = block_announce_validator.clone(); - move |_| Box::new(block_announce_validator) as Box<_> - }; + let block_announce_validator = build_block_announce_validator( + polkadot_full_node.client.clone(), + id, + Box::new(polkadot_full_node.network.clone()), + polkadot_full_node.backend.clone(), + ); let prometheus_registry = parachain_config.prometheus_registry().cloned(); let transaction_pool = params.transaction_pool.clone(); @@ -163,35 +134,43 @@ where spawn_handle: task_manager.spawn_handle(), import_queue, on_demand: None, - block_announce_validator_builder: Some(Box::new(block_announce_validator_builder)), - finality_proof_request_builder: None, - finality_proof_provider: None, + block_announce_validator_builder: Some(Box::new(|_| block_announce_validator)), })?; + let rpc_client = client.clone(); + let rpc_extensions_builder = Box::new(move |_, _| rpc_ext_builder(rpc_client.clone())); + sc_service::spawn_tasks(sc_service::SpawnTasksParams { on_demand: None, remote_blockchain: None, - rpc_extensions_builder: Box::new(|_| ()), + rpc_extensions_builder, client: client.clone(), transaction_pool: transaction_pool.clone(), task_manager: &mut task_manager, telemetry_connection_sinks: Default::default(), config: parachain_config, - keystore: params.keystore, - backend, + keystore: params.keystore_container.sync_keystore(), + backend: backend.clone(), network: network.clone(), network_status_sinks, system_rpc_tx, })?; - let announce_block = Arc::new(move |hash, data| network.announce_block(hash, data)); + let announce_block = { + let network = network.clone(); + Arc::new(move |hash, data| network.announce_block(hash, data)) + }; if validator { let proposer_factory = sc_basic_authorship::ProposerFactory::new( + task_manager.spawn_handle(), client.clone(), transaction_pool, prometheus_registry.as_ref(), ); + let spawner = task_manager.spawn_handle(); + + let polkadot_backend = polkadot_full_node.backend.clone(); let params = StartCollatorParams { para_id: id, @@ -201,22 +180,22 @@ where block_status: client.clone(), announce_block, client: client.clone(), - block_announce_validator, task_manager: &mut task_manager, - polkadot_config, collator_key, + polkadot_full_node, + spawner, + backend, + polkadot_backend, }; - start_collator(params)?; + start_collator(params).await?; } else { let params = StartFullNodeParams { client: client.clone(), announce_block, - polkadot_config, - collator_key, - block_announce_validator, task_manager: &mut task_manager, para_id: id, + polkadot_full_node, }; start_full_node(params)?; @@ -228,21 +207,20 @@ where } /// Start a normal parachain node. -pub fn start_node( +pub async fn start_node( parachain_config: Configuration, - collator_key: Arc, - polkadot_config: polkadot_collator::Configuration, + collator_key: CollatorPair, + polkadot_config: Configuration, id: polkadot_primitives::v0::Id, validator: bool, -) -> sc_service::error::Result<( - TaskManager, - Arc>, -)> { - start_node_impl::( +) -> sc_service::error::Result<(TaskManager, Arc>)> { + start_node_impl( parachain_config, collator_key, polkadot_config, id, validator, + |_| Default::default(), ) + .await } diff --git a/pallets/parachain-info/Cargo.toml b/pallets/parachain-info/Cargo.toml index a2d7ee86..75f7a86f 100644 --- a/pallets/parachain-info/Cargo.toml +++ b/pallets/parachain-info/Cargo.toml @@ -4,14 +4,33 @@ edition = "2018" name = "parachain-info" version = "0.1.0" -[dependencies] -codec = { package = "parity-scale-codec", version = "1.3.0", default-features = false, features = ["derive"] } -serde = { version = "1.0.101", optional = true, features = ["derive"] } +[dependencies.codec] +default-features = false +features = ['derive'] +package = 'parity-scale-codec' +version = '1.3.6' -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } +[dependencies.serde] +features = ['derive'] +optional = true +version = '1.0.101' -cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } +[dependencies.frame-support] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.frame-system] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.cumulus-primitives] +git = 'https://github.com/paritytech/cumulus.git' +branch = "rococo-v1" +default-features = false [features] default = ["std"] diff --git a/pallets/parachain-info/src/lib.rs b/pallets/parachain-info/src/lib.rs index 51af72d0..d5ed49e4 100644 --- a/pallets/parachain-info/src/lib.rs +++ b/pallets/parachain-info/src/lib.rs @@ -1,4 +1,18 @@ // Copyright 2020 Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . //! Minimal Pallet that injects a ParachainId into Runtime storage from @@ -9,20 +23,20 @@ use frame_support::{decl_module, decl_storage, traits::Get}; use cumulus_primitives::ParaId; /// Configuration trait of this pallet. -pub trait Trait: frame_system::Trait {} +pub trait Config: frame_system::Config {} -impl Get for Module { +impl Get for Module { fn get() -> ParaId { Self::parachain_id() } } decl_storage! { - trait Store for Module as ParachainUpgrade { - ParachainId get(fn parachain_id) config(): ParaId = 200.into(); + trait Store for Module as ParachainUpgrade { + ParachainId get(fn parachain_id) config(): ParaId = 100.into(); } } decl_module! { - pub struct Module for enum Call where origin: T::Origin {} + pub struct Module for enum Call where origin: T::Origin {} } diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 4997cfa3..588c9544 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -1,35 +1,55 @@ +[features] +default = ['std'] +std = [ + 'codec/std', + 'frame-support/std', + 'frame-system/std', +] +[dependencies.codec] +default-features = false +features = ['derive'] +package = 'parity-scale-codec' +version = '1.3.6' + +[dependencies.frame-support] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.frame-system] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dev-dependencies.sp-core] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dev-dependencies.sp-io] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dev-dependencies.sp-runtime] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + [package] -authors = ['Substrate DevHub '] +authors = ['Anonymous'] description = 'FRAME pallet template for defining custom runtime logic.' edition = '2018' homepage = 'https://substrate.dev' license = 'Unlicense' name = 'pallet-template' -repository = 'https://github.com/substrate-developer-hub/substrate-node-template/' -version = '2.0.0-rc5' - +readme = 'README.md' +repository = 'https://github.com/paritytech/substrate/' +version = '2.0.0' [package.metadata.docs.rs] targets = ['x86_64-unknown-linux-gnu'] - -[dependencies.codec] -default-features = false -features = ['derive'] -package = 'parity-scale-codec' -version = '1.3.1' - -[dependencies] -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } - -[dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } - -[features] -default = ['std'] -std = [ - 'codec/std', - 'frame-support/std', - 'frame-system/std', -] diff --git a/pallets/template/README.md b/pallets/template/README.md new file mode 100644 index 00000000..8d751a42 --- /dev/null +++ b/pallets/template/README.md @@ -0,0 +1 @@ +License: Unlicense \ No newline at end of file diff --git a/pallets/template/src/lib.rs b/pallets/template/src/lib.rs index 1b1e3f03..24de4f2f 100644 --- a/pallets/template/src/lib.rs +++ b/pallets/template/src/lib.rs @@ -1,4 +1,3 @@ -// Copyright 2020 Parity Technologies (UK) Ltd. #![cfg_attr(not(feature = "std"), no_std)] /// Edit this file to define custom logic or remove it if it is not needed. @@ -15,9 +14,9 @@ mod mock; mod tests; /// Configure the pallet by specifying the parameters and types on which it depends. -pub trait Trait: frame_system::Trait { +pub trait Config: frame_system::Config { /// Because this pallet emits events, it depends on the runtime's definition of an event. - type Event: From> + Into<::Event>; + type Event: From> + Into<::Event>; } // The pallet's runtime storage items. @@ -26,7 +25,7 @@ decl_storage! { // A unique name is used to ensure that the pallet's storage items are isolated. // This name may be updated, but each pallet in the runtime must use a unique name. // ---------------------------------vvvvvvvvvvvvvv - trait Store for Module as TemplateModule { + trait Store for Module as TemplateModule { // Learn more about declaring storage items: // https://substrate.dev/docs/en/knowledgebase/runtime/storage#declaring-storage-items Something get(fn something): Option; @@ -36,7 +35,7 @@ decl_storage! { // Pallets use events to inform users when important changes are made. // https://substrate.dev/docs/en/knowledgebase/runtime/events decl_event!( - pub enum Event where AccountId = ::AccountId { + pub enum Event where AccountId = ::AccountId { /// Event documentation should end with an array that provides descriptive names for event /// parameters. [something, who] SomethingStored(u32, AccountId), @@ -45,7 +44,7 @@ decl_event!( // Errors inform users that something went wrong. decl_error! { - pub enum Error for Module { + pub enum Error for Module { /// Error names should be descriptive. NoneValue, /// Errors should have helpful documentation associated with them. @@ -57,7 +56,7 @@ decl_error! { // These functions materialize as "extrinsics", which are often compared to transactions. // Dispatchable functions must be annotated with a weight and must return a DispatchResult. decl_module! { - pub struct Module for enum Call where origin: T::Origin { + pub struct Module for enum Call where origin: T::Origin { // Errors must be initialized if they are used by the pallet. type Error = Error; diff --git a/pallets/template/src/mock.rs b/pallets/template/src/mock.rs index b23151df..60d22aad 100644 --- a/pallets/template/src/mock.rs +++ b/pallets/template/src/mock.rs @@ -1,9 +1,8 @@ -// Copyright 2020 Parity Technologies (UK) Ltd. -use crate::{Module, Trait}; +use crate::{Module, Config}; use sp_core::H256; -use frame_support::{impl_outer_origin, parameter_types, weights::Weight}; +use frame_support::{impl_outer_origin, parameter_types}; use sp_runtime::{ - traits::{BlakeTwo256, IdentityLookup}, testing::Header, Perbill, + traits::{BlakeTwo256, IdentityLookup}, testing::Header, }; use frame_system as system; @@ -17,13 +16,14 @@ impl_outer_origin! { pub struct Test; parameter_types! { pub const BlockHashCount: u64 = 250; - pub const MaximumBlockWeight: Weight = 1024; - pub const MaximumBlockLength: u32 = 2 * 1024; - pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75); + pub const SS58Prefix: u8 = 42; } -impl system::Trait for Test { +impl system::Config for Test { type BaseCallFilter = (); + type BlockWeights = (); + type BlockLength = (); + type DbWeight = (); type Origin = Origin; type Call = (); type Index = u64; @@ -35,22 +35,16 @@ impl system::Trait for Test { type Header = Header; type Event = (); type BlockHashCount = BlockHashCount; - type MaximumBlockWeight = MaximumBlockWeight; - type DbWeight = (); - type BlockExecutionWeight = (); - type ExtrinsicBaseWeight = (); - type MaximumExtrinsicWeight = MaximumBlockWeight; - type MaximumBlockLength = MaximumBlockLength; - type AvailableBlockRatio = AvailableBlockRatio; type Version = (); - type ModuleToIndex = (); + type PalletInfo = (); type AccountData = (); type OnNewAccount = (); type OnKilledAccount = (); type SystemWeightInfo = (); + type SS58Prefix = SS58Prefix; } -impl Trait for Test { +impl Config for Test { type Event = (); } diff --git a/pallets/template/src/tests.rs b/pallets/template/src/tests.rs index dd40b2ec..3356b29f 100644 --- a/pallets/template/src/tests.rs +++ b/pallets/template/src/tests.rs @@ -1,4 +1,3 @@ -// Copyright 2020 Parity Technologies (UK) Ltd. use crate::{Error, mock::*}; use frame_support::{assert_ok, assert_noop}; diff --git a/pallets/token-dealer/Cargo.toml b/pallets/token-dealer/Cargo.toml deleted file mode 100644 index 9cb77090..00000000 --- a/pallets/token-dealer/Cargo.toml +++ /dev/null @@ -1,29 +0,0 @@ -[package] -authors = ["Parity Technologies "] -edition = "2018" -name = "cumulus-token-dealer" -version = "0.1.0" - -[dependencies] -codec = { package = "parity-scale-codec", version = "1.3.0", default-features = false, features = ["derive"] } - -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } - -# Cumulus dependencies -cumulus-upward-message = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } -cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } - -# Polkadot dependencies -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "rococo-branch", default-features = false } - -[features] -default = ["std"] -std = [ - "codec/std", - "cumulus-upward-message/std", - "cumulus-primitives/std", - "frame-support/std", - "frame-system/std", - "polkadot-parachain/std", -] diff --git a/pallets/token-dealer/src/lib.rs b/pallets/token-dealer/src/lib.rs deleted file mode 100644 index ad762666..00000000 --- a/pallets/token-dealer/src/lib.rs +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright 2020 Parity Technologies (UK) Ltd. -#![cfg_attr(not(feature = "std"), no_std)] - -use frame_support::{ - decl_event, decl_module, - dispatch::DispatchResult, - traits::{Currency, ExistenceRequirement, WithdrawReason}, -}; -use frame_system::ensure_signed; - -use codec::{Decode, Encode}; -use cumulus_primitives::{ - relay_chain::DownwardMessage, - xcmp::{XCMPMessageHandler, XCMPMessageSender}, - DownwardMessageHandler, ParaId, UpwardMessageOrigin, UpwardMessageSender, -}; -use cumulus_upward_message::BalancesMessage; -use polkadot_parachain::primitives::AccountIdConversion; - -#[derive(Encode, Decode)] -pub enum XCMPMessage { - /// Transfer tokens to the given account from the Parachain account. - TransferToken(XAccountId, XBalance), -} - -type BalanceOf = - <::Currency as Currency<::AccountId>>::Balance; - -/// Configuration trait of this pallet. -pub trait Trait: frame_system::Trait { - /// Event type used by the runtime. - type Event: From> + Into<::Event>; - - /// The sender of upward messages. - type UpwardMessageSender: UpwardMessageSender; - - /// The upward message type used by the Parachain runtime. - type UpwardMessage: codec::Codec + BalancesMessage>; - - /// Currency of the runtime. - type Currency: Currency; - - /// The sender of XCMP messages. - type XCMPMessageSender: XCMPMessageSender>>; -} - -decl_event! { - pub enum Event where - AccountId = ::AccountId, - Balance = BalanceOf - { - /// Transferred tokens to the account on the relay chain. - TransferredTokensToRelayChain(AccountId, Balance), - /// Transferred tokens to the account on request from the relay chain. - TransferredTokensFromRelayChain(AccountId, Balance), - /// Transferred tokens to the account from the given parachain account. - TransferredTokensViaXCMP(ParaId, AccountId, Balance, DispatchResult), - } -} - -decl_module! { - pub struct Module for enum Call where origin: T::Origin { - /// Transfer `amount` of tokens on the relay chain from the Parachain account to - /// the given `dest` account. - #[weight = 10] - fn transfer_tokens_to_relay_chain(origin, dest: T::AccountId, amount: BalanceOf) { - let who = ensure_signed(origin)?; - - let _ = T::Currency::withdraw( - &who, - amount, - WithdrawReason::Transfer.into(), - ExistenceRequirement::AllowDeath, - )?; - - let msg = ::UpwardMessage::transfer(dest.clone(), amount.clone()); - ::UpwardMessageSender::send_upward_message(&msg, UpwardMessageOrigin::Signed) - .expect("Should not fail; qed"); - - Self::deposit_event(Event::::TransferredTokensToRelayChain(dest, amount)); - } - - /// Transfer `amount` of tokens to another parachain. - #[weight = 10] - fn transfer_tokens_to_parachain_chain( - origin, - para_id: u32, - dest: T::AccountId, - amount: BalanceOf, - ) { - //TODO we don't make sure that the parachain has some tokens on the other parachain. - let who = ensure_signed(origin)?; - - let _ = T::Currency::withdraw( - &who, - amount, - WithdrawReason::Transfer.into(), - ExistenceRequirement::AllowDeath, - )?; - - T::XCMPMessageSender::send_xcmp_message( - para_id.into(), - &XCMPMessage::TransferToken(dest, amount), - ).expect("Should not fail; qed"); - } - - fn deposit_event() = default; - } -} - -/// This is a hack to convert from one generic type to another where we are sure that both are the -/// same type/use the same encoding. -fn convert_hack(input: &impl Encode) -> O { - input.using_encoded(|e| Decode::decode(&mut &e[..]).expect("Must be compatible; qed")) -} - -impl DownwardMessageHandler for Module { - fn handle_downward_message(msg: &DownwardMessage) { - match msg { - DownwardMessage::TransferInto(dest, amount, _) => { - let dest = convert_hack(&dest); - let amount: BalanceOf = convert_hack(amount); - - let _ = T::Currency::deposit_creating(&dest, amount.clone()); - - Self::deposit_event(Event::::TransferredTokensFromRelayChain(dest, amount)); - } - _ => {} - } - } -} - -impl XCMPMessageHandler>> for Module { - fn handle_xcmp_message(src: ParaId, msg: &XCMPMessage>) { - match msg { - XCMPMessage::TransferToken(dest, amount) => { - let para_account = src.clone().into_account(); - - let res = T::Currency::transfer( - ¶_account, - dest, - amount.clone(), - ExistenceRequirement::AllowDeath, - ); - - Self::deposit_event(Event::::TransferredTokensViaXCMP( - src, - dest.clone(), - amount.clone(), - res, - )); - } - } - } -} diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index e4cfc5e8..4b012776 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -1,51 +1,246 @@ +[build-dependencies.substrate-wasm-builder] +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '3.0.0' + [package] -name = 'parachain-runtime' -version = '0.1.0' -authors = ["Parity Technologies "] +authors = ['Anonymous'] edition = '2018' +homepage = 'https://substrate.dev' +license = 'Unlicense' +name = 'parachain-runtime' +repository = 'https://github.com/substrate-developer-hub/substrate-parachain-template' + +version = '2.0.0' +[package.metadata.docs.rs] +targets = ['x86_64-unknown-linux-gnu'] + +[dependencies.codec] +default-features = false +features = ['derive'] +package = 'parity-scale-codec' +version = '1.3.6' + +[dependencies.frame-benchmarking] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +optional = true +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.frame-executive] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.frame-support] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.frame-system] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.frame-system-benchmarking] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +optional = true +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.frame-system-rpc-runtime-api] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.hex-literal] +optional = true +version = '0.3.1' + +[dependencies.pallet-balances] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.pallet-randomness-collective-flip] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.pallet-sudo] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.pallet-timestamp] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.pallet-transaction-payment] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.pallet-transaction-payment-rpc-runtime-api] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.serde] +features = ['derive'] +optional = true +version = '1.0.101' + +[dependencies.sp-api] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sp-block-builder] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sp-core] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sp-inherents] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sp-io] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sp-offchain] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sp-runtime] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sp-session] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sp-std] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sp-transaction-pool] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.sp-version] +default-features = false +git = 'https://github.com/paritytech/substrate.git' +branch = "rococo-v1" +version = '2.0.0' + +[dependencies.parachain-info] +default-features = false +package = 'parachain-info' +path = '../pallets/parachain-info' + +[dependencies.template] +default-features = false +package = 'pallet-template' +path = '../pallets/template' +version = '2.0.0' -[dependencies] -serde = { version = "1.0.101", default-features = false, optional = true, features = ["derive"] } -codec = { package = "parity-scale-codec", version = "1.3.0", default-features = false, features = ["derive"] } - -parachain-info = { path = "../pallets/parachain-info", default-features = false} -cumulus-token-dealer = { path = "../pallets/token-dealer", default-features = false} -template = { package = "pallet-template", path = "../pallets/template", version = "2.0.0-rc5", default-features = false} - -# Substrate dependencies -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } - -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "rococo-branch" } # Cumulus dependencies -cumulus-runtime = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } -cumulus-parachain-upgrade = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } -cumulus-message-broker = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } -cumulus-upward-message = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } -cumulus-primitives = { git = "https://github.com/paritytech/cumulus", default-features = false, rev = '4e7f138c828bcf118df1c988a400d4dac8e904d9' } +[dependencies.cumulus-runtime] +git = 'https://github.com/paritytech/cumulus.git' +branch = "rococo-v1" +default-features = false + +[dependencies.cumulus-parachain-upgrade] +git = 'https://github.com/paritytech/cumulus.git' +branch = "rococo-v1" +default-features = false + +[dependencies.cumulus-primitives] +git = 'https://github.com/paritytech/cumulus.git' +branch = "rococo-v1" +default-features = false + +[dependencies.cumulus-message-broker] +git = 'https://github.com/paritytech/cumulus.git' +branch = "rococo-v1" +default-features = false + +[dependencies.xcm-handler] +git = 'https://github.com/paritytech/cumulus.git' +branch = "rococo-v1" +default-features = false -[build-dependencies] -wasm-builder-runner = { package = "substrate-wasm-builder-runner", version = "1.0.6" } +# Polkadot dependencies +[dependencies.polkadot-parachain] +git = "https://github.com/paritytech/polkadot" +branch = "rococo-v1" +default-features = false + +[dependencies.xcm] +git = "https://github.com/paritytech/polkadot" +branch = "rococo-v1" +default-features = false + +[dependencies.xcm-builder] +git = "https://github.com/paritytech/polkadot" +branch = "rococo-v1" +default-features = false + +[dependencies.xcm-executor] +git = "https://github.com/paritytech/polkadot" +branch = "rococo-v1" +default-features = false [features] -default = [ "std" ] +default = ['std'] +runtime-benchmarks = [ + 'sp-runtime/runtime-benchmarks', + 'frame-benchmarking', + 'frame-support/runtime-benchmarks', + 'frame-system-benchmarking', + 'hex-literal', + 'frame-system/runtime-benchmarks', + 'pallet-balances/runtime-benchmarks', + 'pallet-timestamp/runtime-benchmarks', +] std = [ "codec/std", "serde", @@ -72,12 +267,9 @@ std = [ "cumulus-runtime/std", "cumulus-parachain-upgrade/std", "cumulus-message-broker/std", - "cumulus-upward-message/std", "cumulus-primitives/std", - "cumulus-token-dealer/std", - "template/std", -] -# Will be enabled by the `wasm-builder` when building the runtime for WASM. -runtime-wasm = [ - "cumulus-upward-message/runtime-wasm", + "xcm/std", + "xcm-builder/std", + "xcm-executor/std", + "xcm-handler/std", ] diff --git a/runtime/build.rs b/runtime/build.rs index 1f40a41f..9b53d245 100644 --- a/runtime/build.rs +++ b/runtime/build.rs @@ -1,9 +1,8 @@ -use wasm_builder_runner::WasmBuilder; +use substrate_wasm_builder::WasmBuilder; fn main() { WasmBuilder::new() .with_current_project() - .with_wasm_builder_from_crates("1.0.11") .export_heap_base() .import_memory() .build() diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 09f4ca21..2bd1cccd 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -1,44 +1,57 @@ -// Copyright 2020 Parity Technologies (UK) Ltd. #![cfg_attr(not(feature = "std"), no_std)] // `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256. -#![recursion_limit = "256"] +#![recursion_limit="256"] // Make the WASM binary available. #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); -use sp_api::impl_runtime_apis; -use sp_core::OpaqueMetadata; -use sp_runtime::{ - create_runtime_str, generic, impl_opaque_keys, - traits::{BlakeTwo256, Block as BlockT, IdentifyAccount, IdentityLookup, Saturating, Verify}, - transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, MultiSignature, -}; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; +use sp_std::prelude::*; +use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; +use sp_runtime::{ + ApplyExtrinsicResult, generic, create_runtime_str, impl_opaque_keys, MultiSignature, + transaction_validity::{TransactionValidity, TransactionSource}, +}; +use sp_runtime::traits::{ + BlakeTwo256, Block as BlockT, AccountIdLookup, Verify, IdentifyAccount, +}; +use sp_api::impl_runtime_apis; -// A few exports that help ease life for downstream crates. -pub use frame_support::{ - construct_runtime, parameter_types, - traits::Randomness, - weights::{constants::WEIGHT_PER_SECOND, IdentityFee, Weight}, - StorageValue, +// XCM imports +use polkadot_parachain::primitives::Sibling; +use xcm::v0::{Junction, MultiLocation, NetworkId}; +use xcm_builder::{ + AccountId32Aliases, CurrencyAdapter, LocationInverter, ParentIsDefault, RelayChainAsNative, + SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, + SovereignSignedViaLocation, }; -pub use pallet_balances::Call as BalancesCall; -pub use pallet_timestamp::Call as TimestampCall; +use xcm_executor::{ + traits::{IsConcrete, NativeAsset}, + Config, XcmExecutor, +}; +use frame_system::limits::{BlockLength, BlockWeights}; + +// A few exports that help ease life for downstream crates. #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; -pub use sp_runtime::{Perbill, Permill}; +pub use pallet_timestamp::Call as TimestampCall; +pub use pallet_balances::Call as BalancesCall; +pub use sp_runtime::{Permill, Perbill}; +pub use frame_support::{ + construct_runtime, parameter_types, StorageValue, + traits::{KeyOwnerProofSystem, Randomness}, + weights::{ + Weight, IdentityFee, DispatchClass, + constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND}, + }, +}; /// Import the template pallet. pub use template; -/// Import the message pallet. -pub use cumulus_token_dealer; - /// An index to a block. pub type BlockNumber = u32; @@ -68,24 +81,25 @@ pub type DigestItem = generic::DigestItem; /// Opaque types. These are used by the CLI to instantiate machinery that don't need to know /// the specifics of the runtime. They can then be made to be agnostic over specific formats /// of data like extrinsics, allowing for them to continue syncing the network through upgrades -/// to even the core datastructures. +/// to even the core data structures. pub mod opaque { use super::*; + pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic; + /// Opaque block type. pub type Block = generic::Block; -} -pub type SessionHandlers = (); + pub type SessionHandlers = (); -impl_opaque_keys! { - pub struct SessionKeys {} + impl_opaque_keys! { + pub struct SessionKeys {} + } } -/// This runtime version. pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("parachain-template"), - impl_name: create_runtime_str!("parachain-template"), + spec_name: create_runtime_str!("cumulus-test-parachain"), + impl_name: create_runtime_str!("cumulus-test-parachain"), authoring_version: 1, spec_version: 1, impl_version: 1, @@ -93,13 +107,17 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { transaction_version: 1, }; +/// This determines the average expected block time that we are targetting. +/// Blocks will be produced at a minimum duration defined by `SLOT_DURATION`. +/// `SLOT_DURATION` is picked up by `pallet_timestamp` which is in turn picked +/// up by `pallet_aura` to implement `fn slot_duration()`. +/// +/// Change this to adjust the block time. pub const MILLISECS_PER_BLOCK: u64 = 6000; pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK; -pub const EPOCH_DURATION_IN_BLOCKS: u32 = 10 * MINUTES; - -// These time units are defined in number of blocks. +// Time is measured by number of blocks. pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber); pub const HOURS: BlockNumber = MINUTES * 60; pub const DAYS: BlockNumber = HOURS * 24; @@ -107,7 +125,13 @@ pub const DAYS: BlockNumber = HOURS * 24; // 1 in 4 blocks (on average, not counting collisions) will be primary babe blocks. pub const PRIMARY_PROBABILITY: (u64, u64) = (1, 4); -/// The version infromation used to identify this runtime when compiled natively. +#[derive(codec::Encode, codec::Decode)] +pub enum XCMPMessage { + /// Transfer tokens to the given account from the Parachain account. + TransferToken(XAccountId, XBalance), +} + +/// The version information used to identify this runtime when compiled natively. #[cfg(feature = "std")] pub fn native_version() -> NativeVersion { NativeVersion { @@ -116,25 +140,56 @@ pub fn native_version() -> NativeVersion { } } +/// We assume that ~10% of the block weight is consumed by `on_initalize` handlers. +/// This is used to limit the maximal weight of a single extrinsic. +const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(10); +/// We allow `Normal` extrinsics to fill up the block up to 75%, the rest can be used +/// by Operational extrinsics. +const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); +/// We allow for 2 seconds of compute with a 6 second average block time. +const MAXIMUM_BLOCK_WEIGHT: Weight = 2 * WEIGHT_PER_SECOND; + parameter_types! { pub const BlockHashCount: BlockNumber = 250; - pub const MaximumBlockWeight: Weight = 2 * WEIGHT_PER_SECOND; - /// Assume 10% of weight for average on_initialize calls. - pub MaximumExtrinsicWeight: Weight = AvailableBlockRatio::get() - .saturating_sub(Perbill::from_percent(10)) * MaximumBlockWeight::get(); - pub const AvailableBlockRatio: Perbill = Perbill::from_percent(75); - pub const MaximumBlockLength: u32 = 5 * 1024 * 1024; pub const Version: RuntimeVersion = VERSION; - pub const ExtrinsicBaseWeight: Weight = 10_000_000; + pub RuntimeBlockLength: BlockLength = + BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() + .base_block(BlockExecutionWeight::get()) + .for_class(DispatchClass::all(), |weights| { + weights.base_extrinsic = ExtrinsicBaseWeight::get(); + }) + .for_class(DispatchClass::Normal, |weights| { + weights.max_total = Some(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT); + }) + .for_class(DispatchClass::Operational, |weights| { + weights.max_total = Some(MAXIMUM_BLOCK_WEIGHT); + // Operational transactions have some extra reserved space, so that they + // are included even if block reached `MAXIMUM_BLOCK_WEIGHT`. + weights.reserved = Some( + MAXIMUM_BLOCK_WEIGHT - NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT + ); + }) + .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) + .build_or_panic(); + pub const SS58Prefix: u8 = 42; } -impl frame_system::Trait for Runtime { +// Configure FRAME pallets to include in runtime. + +impl frame_system::Config for Runtime { + /// The basic call filter to use in dispatchable. + type BaseCallFilter = (); + /// Block & extrinsics weights: base values and limits. + type BlockWeights = RuntimeBlockWeights; + /// The maximum length of a block (in bytes). + type BlockLength = RuntimeBlockLength; /// The identifier used to distinguish between accounts. type AccountId = AccountId; /// The aggregated dispatch type that is available for extrinsics. type Call = Call; /// The lookup mechanism to get account ID from whatever is passed in dispatchers. - type Lookup = IdentityLookup; + type Lookup = AccountIdLookup; /// The index type for storing how many extrinsics an account has signed. type Index = Index; /// The index type for blocks. @@ -151,32 +206,31 @@ impl frame_system::Trait for Runtime { type Origin = Origin; /// Maximum number of block number to block hash mappings to keep (oldest pruned first). type BlockHashCount = BlockHashCount; - /// Maximum weight of each block. With a default weight system of 1byte == 1weight, 4mb is ok. - type MaximumBlockWeight = MaximumBlockWeight; - /// Maximum size of all encoded transactions (in bytes) that are allowed in one block. - type MaximumBlockLength = MaximumBlockLength; - /// Portion of the block weight that is available to all normal transactions. - type AvailableBlockRatio = AvailableBlockRatio; - /// Runtime version. + /// The weight of database operations that the runtime can invoke. + type DbWeight = RocksDbWeight; + /// Version of the runtime. type Version = Version; - /// Converts a module to an index of this module in the runtime. - type ModuleToIndex = ModuleToIndex; - type AccountData = pallet_balances::AccountData; + /// Converts a module to the index of the module in `construct_runtime!`. + /// + /// This type is being generated by `construct_runtime!`. + type PalletInfo = PalletInfo; + /// What to do if a new account is created. type OnNewAccount = (); + /// What to do if an account is fully reaped from the system. type OnKilledAccount = (); - type DbWeight = (); - type ExtrinsicBaseWeight = ExtrinsicBaseWeight; - type BlockExecutionWeight = (); - type MaximumExtrinsicWeight = MaximumExtrinsicWeight; - type BaseCallFilter = (); + /// The data to be stored in an account. + type AccountData = pallet_balances::AccountData; + /// Weight information for the extrinsics of this pallet. type SystemWeightInfo = (); + /// This is used as an identifier of the chain. 42 is the generic substrate prefix. + type SS58Prefix = SS58Prefix; } parameter_types! { pub const MinimumPeriod: u64 = SLOT_DURATION / 2; } -impl pallet_timestamp::Trait for Runtime { +impl pallet_timestamp::Config for Runtime { /// A timestamp: milliseconds since the unix epoch. type Moment = u64; type OnTimestampSet = (); @@ -186,12 +240,11 @@ impl pallet_timestamp::Trait for Runtime { parameter_types! { pub const ExistentialDeposit: u128 = 500; - pub const TransferFee: u128 = 0; - pub const CreationFee: u128 = 0; - pub const TransactionByteFee: u128 = 1; + pub const MaxLocks: u32 = 50; } -impl pallet_balances::Trait for Runtime { +impl pallet_balances::Config for Runtime { + type MaxLocks = MaxLocks; /// The type for recording an account's balance. type Balance = Balance; /// The ubiquitous event type. @@ -199,56 +252,101 @@ impl pallet_balances::Trait for Runtime { type DustRemoval = (); type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; - type WeightInfo = (); + type WeightInfo = pallet_balances::weights::SubstrateWeight; } -impl pallet_transaction_payment::Trait for Runtime { - type Currency = Balances; - type OnTransactionPayment = (); +parameter_types! { + pub const TransactionByteFee: Balance = 1; +} + +impl pallet_transaction_payment::Config for Runtime { + type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter; type TransactionByteFee = TransactionByteFee; type WeightToFee = IdentityFee; type FeeMultiplierUpdate = (); } -impl pallet_sudo::Trait for Runtime { - type Call = Call; +impl pallet_sudo::Config for Runtime { type Event = Event; + type Call = Call; } -impl cumulus_parachain_upgrade::Trait for Runtime { +impl cumulus_parachain_upgrade::Config for Runtime { type Event = Event; - type OnValidationFunctionParams = (); + type OnValidationData = (); + type SelfParaId = parachain_info::Module; } -impl cumulus_message_broker::Trait for Runtime { - type Event = Event; - type DownwardMessageHandlers = TokenDealer; - type UpwardMessage = cumulus_upward_message::RococoUpwardMessage; - type ParachainId = ParachainInfo; - type XCMPMessage = cumulus_token_dealer::XCMPMessage; - type XCMPMessageHandlers = TokenDealer; +impl cumulus_message_broker::Config for Runtime { + type DownwardMessageHandlers = (); + type HrmpMessageHandlers = (); } -impl parachain_info::Trait for Runtime {} +impl parachain_info::Config for Runtime {} -impl cumulus_token_dealer::Trait for Runtime { +parameter_types! { + pub const RococoLocation: MultiLocation = MultiLocation::X1(Junction::Parent); + pub const RococoNetwork: NetworkId = NetworkId::Polkadot; + pub RelayChainOrigin: Origin = xcm_handler::Origin::Relay.into(); + pub Ancestry: MultiLocation = Junction::Parachain { + id: ParachainInfo::parachain_id().into() + }.into(); +} + +type LocationConverter = ( + ParentIsDefault, + SiblingParachainConvertsVia, + AccountId32Aliases, +); + +type LocalAssetTransactor = CurrencyAdapter< + // Use this currency: + Balances, + // Use this currency when it is a fungible asset matching the given location or name: + IsConcrete, + // Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID: + LocationConverter, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, +>; + +type LocalOriginConverter = ( + SovereignSignedViaLocation, + RelayChainAsNative, + SiblingParachainAsNative, + SignedAccountId32AsNative, +); + +pub struct XcmConfig; +impl Config for XcmConfig { + type Call = Call; + type XcmSender = XcmHandler; + // How to withdraw and deposit an asset. + type AssetTransactor = LocalAssetTransactor; + type OriginConverter = LocalOriginConverter; + type IsReserve = NativeAsset; + type IsTeleporter = (); + type LocationInverter = LocationInverter; +} + +impl xcm_handler::Config for Runtime { type Event = Event; + type XcmExecutor = XcmExecutor; type UpwardMessageSender = MessageBroker; - type UpwardMessage = cumulus_upward_message::RococoUpwardMessage; - type Currency = Balances; - type XCMPMessageSender = MessageBroker; + type HrmpMessageSender = MessageBroker; } /// Configure the pallet template in pallets/template. -impl template::Trait for Runtime { +impl template::Config for Runtime { type Event = Event; } -construct_runtime! { +// Create the runtime by composing the FRAME pallets that were previously configured. +construct_runtime!( pub enum Runtime where Block = Block, NodeBlock = opaque::Block, - UncheckedExtrinsic = UncheckedExtrinsic + UncheckedExtrinsic = UncheckedExtrinsic, { System: frame_system::{Module, Call, Storage, Config, Event}, Timestamp: pallet_timestamp::{Module, Call, Storage, Inherent}, @@ -256,16 +354,16 @@ construct_runtime! { Sudo: pallet_sudo::{Module, Call, Storage, Config, Event}, RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Module, Call, Storage}, ParachainUpgrade: cumulus_parachain_upgrade::{Module, Call, Storage, Inherent, Event}, - MessageBroker: cumulus_message_broker::{Module, Call, Inherent, Event}, + MessageBroker: cumulus_message_broker::{Module, Storage, Call, Inherent}, TransactionPayment: pallet_transaction_payment::{Module, Storage}, ParachainInfo: parachain_info::{Module, Storage, Config}, - TokenDealer: cumulus_token_dealer::{Module, Call, Event}, + XcmHandler: xcm_handler::{Module, Event, Origin}, TemplateModule: template::{Module, Call, Storage, Event}, } -} +); /// The address format for describing accounts. -pub type Address = AccountId; +pub type Address = sp_runtime::MultiAddress; /// Block header type as expected by this runtime. pub type Header = generic::Header; /// Block type as expected by this runtime. @@ -277,11 +375,12 @@ pub type BlockId = generic::BlockId; /// The SignedExtension to the basic transaction logic. pub type SignedExtra = ( frame_system::CheckSpecVersion, + frame_system::CheckTxVersion, frame_system::CheckGenesis, frame_system::CheckEra, frame_system::CheckNonce, frame_system::CheckWeight, - pallet_transaction_payment::ChargeTransactionPayment, + pallet_transaction_payment::ChargeTransactionPayment ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; @@ -318,9 +417,7 @@ impl_runtime_apis! { } impl sp_block_builder::BlockBuilder for Runtime { - fn apply_extrinsic( - extrinsic: ::Extrinsic, - ) -> ApplyExtrinsicResult { + fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { Executive::apply_extrinsic(extrinsic) } @@ -332,7 +429,10 @@ impl_runtime_apis! { data.create_extrinsics() } - fn check_inherents(block: Block, data: sp_inherents::InherentData) -> sp_inherents::CheckInherentsResult { + fn check_inherents( + block: Block, + data: sp_inherents::InherentData, + ) -> sp_inherents::CheckInherentsResult { data.check_extrinsics(&block) } @@ -357,16 +457,72 @@ impl_runtime_apis! { } impl sp_session::SessionKeys for Runtime { + fn generate_session_keys(seed: Option>) -> Vec { + opaque::SessionKeys::generate(seed) + } + fn decode_session_keys( encoded: Vec, - ) -> Option, sp_core::crypto::KeyTypeId)>> { - SessionKeys::decode_into_raw_public_keys(&encoded) + ) -> Option, KeyTypeId)>> { + opaque::SessionKeys::decode_into_raw_public_keys(&encoded) + } + } + + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { + fn account_nonce(account: AccountId) -> Index { + System::account_nonce(account) } + } - fn generate_session_keys(seed: Option>) -> Vec { - SessionKeys::generate(seed) + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { + fn query_info( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { + TransactionPayment::query_info(uxt, len) + } + fn query_fee_details( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_fee_details(uxt, len) + } + } + + #[cfg(feature = "runtime-benchmarks")] + impl frame_benchmarking::Benchmark for Runtime { + fn dispatch_benchmark( + config: frame_benchmarking::BenchmarkConfig + ) -> Result, sp_runtime::RuntimeString> { + use frame_benchmarking::{Benchmarking, BenchmarkBatch, add_benchmark, TrackedStorageKey}; + + use frame_system_benchmarking::Module as SystemBench; + impl frame_system_benchmarking::Config for Runtime {} + + let whitelist: Vec = vec![ + // Block Number + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), + // Total Issuance + hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(), + // Execution Phase + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), + // Event Count + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), + // System Events + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), + ]; + + let mut batches = Vec::::new(); + let params = (&config, &whitelist); + + add_benchmark!(params, batches, frame_system, SystemBench::); + add_benchmark!(params, batches, pallet_balances, Balances); + add_benchmark!(params, batches, pallet_timestamp, Timestamp); + + if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) } + Ok(batches) } } } -cumulus_runtime::register_validate_block!(Block, Executive); +cumulus_runtime::register_validate_block!(Block, Executive); \ No newline at end of file diff --git a/scripts/init.sh b/scripts/init.sh new file mode 100755 index 00000000..1405a41e --- /dev/null +++ b/scripts/init.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +set -e + +echo "*** Initializing WASM build environment" + +if [ -z $CI_PROJECT_NAME ] ; then + rustup update nightly + rustup update stable +fi + +rustup target add wasm32-unknown-unknown --toolchain nightly From 422bc45daa49d6d0b4c48f964d5d66749376a173 Mon Sep 17 00:00:00 2001 From: Ricardo Rius Date: Tue, 2 Feb 2021 12:38:03 -0600 Subject: [PATCH 13/91] Update to CUmulus 4b69b8d --- Cargo.lock | 1285 +++++++++++++++-------------- node/Cargo.toml | 81 +- node/src/cli.rs | 2 +- node/src/command.rs | 27 +- node/src/service.rs | 13 +- pallets/parachain-info/Cargo.toml | 43 - pallets/parachain-info/src/lib.rs | 42 - pallets/template/Cargo.toml | 11 +- runtime/Cargo.toml | 87 +- runtime/src/lib.rs | 16 +- 10 files changed, 797 insertions(+), 810 deletions(-) delete mode 100644 pallets/parachain-info/Cargo.toml delete mode 100644 pallets/parachain-info/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 39c16c66..ea2eec0f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -127,12 +127,6 @@ dependencies = [ "num-traits 0.2.14", ] -[[package]] -name = "arc-swap" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d7d63395147b81a9e570bcc6243aaf71c017bd666d4909cfef0085bdda8d73" - [[package]] name = "arrayref" version = "0.3.6" @@ -170,7 +164,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d0864d84b8e07b145449be9a8537db86bf9de5ce03b913214694643b4743502" dependencies = [ "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] @@ -302,19 +296,6 @@ version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0" -[[package]] -name = "async-tls" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f23d769dbf1838d5df5156e7b1ad404f4c463d1ac2c6aeb6cd943630f8a8400" -dependencies = [ - "futures-core", - "futures-io", - "rustls 0.19.0", - "webpki", - "webpki-roots", -] - [[package]] name = "async-trait" version = "0.1.42" @@ -323,7 +304,20 @@ checksum = "8d3a45e77e34375a7923b1e8febb049bb011f064714a8e17a1a616fef01da13d" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", +] + +[[package]] +name = "asynchronous-codec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb4401f0a3622dad2e0763fa79e0eb328bc70fb7dccfdd645341f00d671247d6" +dependencies = [ + "bytes 1.0.1", + "futures-sink", + "futures-util", + "memchr", + "pin-project-lite 0.2.4", ] [[package]] @@ -360,15 +354,15 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "backtrace" -version = "0.3.55" +version = "0.3.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef5140344c85b01f9bbb4d4b7288a8aa4b3287ccef913a14bcc78a1063623598" +checksum = "9d117600f438b1707d4e4ae15d3595657288f8235a0eb593e80ecc98ab34e1bc" dependencies = [ "addr2line", "cfg-if 1.0.0", "libc", "miniz_oxide", - "object 0.22.0", + "object 0.23.0", "rustc-demangle", ] @@ -421,7 +415,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "which", + "which 3.1.1", ] [[package]] @@ -558,9 +552,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.4.0" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820" +checksum = "099e596ef14349721d9016f6b80dd3419ea1bf289ab9b44df8e4dfd3a005d5d9" [[package]] name = "byte-slice-cast" @@ -1020,6 +1014,16 @@ dependencies = [ "sct", ] +[[package]] +name = "ctor" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10bcb9d7dcbf7002aaffbb53eac22906b64cdcc127971dcc387d8eb7c95d5560" +dependencies = [ + "quote 1.0.8", + "syn 1.0.60", +] + [[package]] name = "cuckoofilter" version = "0.5.0" @@ -1034,7 +1038,7 @@ dependencies = [ [[package]] name = "cumulus-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#7277f7aae5c0b45543a53d823d0c6c1da2a3ab18" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#4b69b8d4bfa113fb3af2da34d1b71313bc43fb0c" dependencies = [ "cumulus-network", "cumulus-primitives", @@ -1049,7 +1053,6 @@ dependencies = [ "polkadot-parachain", "polkadot-primitives", "polkadot-service", - "polkadot-validation", "sc-cli", "sc-client-api", "sp-api", @@ -1064,7 +1067,7 @@ dependencies = [ [[package]] name = "cumulus-consensus" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#7277f7aae5c0b45543a53d823d0c6c1da2a3ab18" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#4b69b8d4bfa113fb3af2da34d1b71313bc43fb0c" dependencies = [ "futures 0.3.12", "parity-scale-codec", @@ -1083,24 +1086,10 @@ dependencies = [ "tracing", ] -[[package]] -name = "cumulus-message-broker" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#7277f7aae5c0b45543a53d823d0c6c1da2a3ab18" -dependencies = [ - "cumulus-parachain-upgrade", - "cumulus-primitives", - "frame-support", - "frame-system", - "parity-scale-codec", - "sp-inherents", - "sp-std", -] - [[package]] name = "cumulus-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#7277f7aae5c0b45543a53d823d0c6c1da2a3ab18" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#4b69b8d4bfa113fb3af2da34d1b71313bc43fb0c" dependencies = [ "cumulus-primitives", "derive_more 0.99.11", @@ -1112,10 +1101,10 @@ dependencies = [ "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-overseer", + "polkadot-parachain", "polkadot-primitives", "polkadot-service", "polkadot-statement-table", - "polkadot-validation", "sc-client-api", "sp-api", "sp-blockchain", @@ -1125,9 +1114,9 @@ dependencies = [ ] [[package]] -name = "cumulus-parachain-upgrade" +name = "cumulus-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#7277f7aae5c0b45543a53d823d0c6c1da2a3ab18" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#4b69b8d4bfa113fb3af2da34d1b71313bc43fb0c" dependencies = [ "cumulus-primitives", "cumulus-runtime", @@ -1151,7 +1140,7 @@ dependencies = [ [[package]] name = "cumulus-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#7277f7aae5c0b45543a53d823d0c6c1da2a3ab18" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#4b69b8d4bfa113fb3af2da34d1b71313bc43fb0c" dependencies = [ "impl-trait-for-tuples 0.1.3", "parity-scale-codec", @@ -1169,7 +1158,7 @@ dependencies = [ [[package]] name = "cumulus-runtime" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#7277f7aae5c0b45543a53d823d0c6c1da2a3ab18" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#4b69b8d4bfa113fb3af2da34d1b71313bc43fb0c" dependencies = [ "cumulus-primitives", "frame-executive", @@ -1190,7 +1179,7 @@ dependencies = [ [[package]] name = "cumulus-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#7277f7aae5c0b45543a53d823d0c6c1da2a3ab18" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#4b69b8d4bfa113fb3af2da34d1b71313bc43fb0c" dependencies = [ "cumulus-collator", "cumulus-consensus", @@ -1199,9 +1188,9 @@ dependencies = [ "polkadot-overseer", "polkadot-primitives", "polkadot-service", - "sc-cli", "sc-client-api", "sc-service", + "sc-tracing", "sp-api", "sp-blockchain", "sp-consensus", @@ -1239,9 +1228,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "993a608597367c6377b258c25d7120740f00ed23a2252b729b1932dd7866f908" +checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57" [[package]] name = "derive_more" @@ -1265,7 +1254,7 @@ checksum = "41cb0e6161ad61ed084a36ba71fbba9e3ac5aee3606fb607fe08da6acbcf3d8c" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] @@ -1344,7 +1333,7 @@ checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] @@ -1372,7 +1361,7 @@ dependencies = [ "ed25519", "rand 0.7.3", "serde", - "sha2 0.9.2", + "sha2 0.9.3", "zeroize", ] @@ -1408,7 +1397,7 @@ checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] @@ -1460,6 +1449,33 @@ dependencies = [ "libc", ] +[[package]] +name = "ethbloom" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22a621dcebea74f2a6f2002d0a885c81ccf6cbdf86760183316a7722b5707ca4" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-rlp", + "impl-serde", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05dc5f0df4915fa6dff7f975a8366ecfaaa8959c74235469495153e7bb1b280e" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-rlp", + "impl-serde", + "primitive-types", + "uint", +] + [[package]] name = "event-listener" version = "2.5.1" @@ -1493,7 +1509,7 @@ checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", "synstructure", ] @@ -1559,7 +1575,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" dependencies = [ "byteorder", - "rand 0.8.2", + "rand 0.8.3", "rustc-hex", "static_assertions", ] @@ -1572,9 +1588,9 @@ checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" [[package]] name = "flate2" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7411863d55df97a419aa64cb4d2f167103ea9d767e2c54a1868b7ac3f6b47129" +checksum = "cd3aec53de10fe96d7d8c565eb17f2c687bb5518a2ec453b5b1252964526abe0" dependencies = [ "cfg-if 1.0.0", "crc32fast", @@ -1592,7 +1608,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "parity-scale-codec", ] @@ -1610,7 +1626,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -1628,7 +1644,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "Inflector", "chrono", @@ -1651,7 +1667,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -1667,7 +1683,7 @@ dependencies = [ [[package]] name = "frame-metadata" version = "12.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "parity-scale-codec", "serde", @@ -1678,7 +1694,7 @@ dependencies = [ [[package]] name = "frame-support" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "bitflags", "frame-metadata", @@ -1703,41 +1719,41 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "Inflector", "frame-support-procedural-tools", "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] name = "frame-support-procedural-tools" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] name = "frame-support-procedural-tools-derive" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] name = "frame-system" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "impl-trait-for-tuples 0.2.0", @@ -1753,7 +1769,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-benchmarking", "frame-support", @@ -1767,7 +1783,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "parity-scale-codec", "sp-api", @@ -1912,7 +1928,18 @@ dependencies = [ "proc-macro-hack", "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", +] + +[[package]] +name = "futures-rustls" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a1387e07917c711fb4ee4f48ea0adb04a3c9739e53ef85bf43ae1edc2937a8b" +dependencies = [ + "futures-io", + "rustls 0.19.0", + "webpki", ] [[package]] @@ -1963,18 +1990,6 @@ dependencies = [ "slab", ] -[[package]] -name = "futures_codec" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce54d63f8b0c75023ed920d46fd71d0cbbb830b0ee012726b5b4f506fb6dea5b" -dependencies = [ - "bytes 0.5.6", - "futures 0.3.12", - "memchr", - "pin-project 0.4.27", -] - [[package]] name = "gcc" version = "0.3.55" @@ -2022,13 +2037,13 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4060f4657be78b8e766215b02b18a2e862d83745545de804638e2b545e81aee6" +checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" dependencies = [ "cfg-if 1.0.0", "libc", - "wasi 0.10.1+wasi-snapshot-preview1", + "wasi 0.10.0+wasi-snapshot-preview1", ] [[package]] @@ -2122,7 +2137,7 @@ dependencies = [ "http 0.2.3", "indexmap", "slab", - "tokio 0.2.24", + "tokio 0.2.25", "tokio-util", "tracing", "tracing-futures", @@ -2177,9 +2192,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8" +checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" dependencies = [ "libc", ] @@ -2298,9 +2313,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.3.4" +version = "1.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" +checksum = "615caabe2c3160b313d52ccc905335f4ed5f10881dd63dc5699d47e90be85691" [[package]] name = "httpdate" @@ -2365,7 +2380,7 @@ dependencies = [ "itoa", "pin-project 1.0.4", "socket2", - "tokio 0.2.24", + "tokio 0.2.25", "tower-service", "tracing", "want 0.3.0", @@ -2384,7 +2399,7 @@ dependencies = [ "log", "rustls 0.18.1", "rustls-native-certs", - "tokio 0.2.24", + "tokio 0.2.25", "tokio-rustls", "webpki", ] @@ -2434,9 +2449,9 @@ dependencies = [ [[package]] name = "if-watch" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d7c5e361e6b05c882b4847dd98992534cebc6fcde7f4bc98225bcf10fd6d0d" +checksum = "97b8538953a3f0d0d3868f0a706eb4273535e10d72acb5c82c1c23ae48835c85" dependencies = [ "async-io", "futures 0.3.12", @@ -2457,6 +2472,15 @@ dependencies = [ "parity-scale-codec", ] +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + [[package]] name = "impl-serde" version = "0.3.1" @@ -2474,7 +2498,7 @@ checksum = "7ef5550a42e3740a0e71f909d4c861056a284060af885ae7aa6242820f920d9d" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] @@ -2485,7 +2509,7 @@ checksum = "6f65a8ecf74feeacdab8d38cb129e550ca871cccaa7d1921d8636ecd75534903" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] @@ -2589,9 +2613,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.46" +version = "0.3.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3d7383929f7c9c7c2d0fa596f325832df98c3704f2c60553080f7127a58175" +checksum = "5cfb73131c35423a367daf8cbd24100af0d077668c8c2943f0e7dd775fef0f65" dependencies = [ "wasm-bindgen", ] @@ -2643,7 +2667,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] @@ -2736,8 +2760,8 @@ dependencies = [ [[package]] name = "kusama-runtime" -version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +version = "0.8.28" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "bitvec", "frame-executive", @@ -2869,9 +2893,9 @@ checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a" [[package]] name = "libc" -version = "0.2.82" +version = "0.2.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89203f3fba0a3795506acaad8ebce3c80c0af93f994d5a1d7a0b1eeb23271929" +checksum = "7ccac4b00700875e6a07c6cde370d44d32fa01c5a65cdd2fca6858c479d28bb3" [[package]] name = "libloading" @@ -2891,12 +2915,12 @@ checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" [[package]] name = "libp2p" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e17c636b5fe5ff900ccc2840b643074bfac321551d821243a781d0d46f06588" +checksum = "d5133112ce42be9482f6a87be92a605dd6bbc9e93c297aee77d172ff06908f3a" dependencies = [ "atomic", - "bytes 0.5.6", + "bytes 1.0.1", "futures 0.3.12", "lazy_static", "libp2p-core", @@ -2929,9 +2953,9 @@ dependencies = [ [[package]] name = "libp2p-core" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cb706da14c064dce54d8864ade6836b3486b51689300da74eeb7053aa4551e" +checksum = "dad04d3cef6c1df366a6ab58c9cf8b06497699e335d83ac2174783946ff847d6" dependencies = [ "asn1_der", "bs58", @@ -2948,15 +2972,15 @@ dependencies = [ "parity-multiaddr", "parking_lot 0.11.1", "pin-project 1.0.4", - "prost", + "prost 0.7.0", "prost-build", "rand 0.7.3", "ring", "rw-stream-sink", - "sha2 0.9.2", + "sha2 0.9.3", "smallvec 1.6.1", "thiserror", - "unsigned-varint", + "unsigned-varint 0.6.0", "void", "zeroize", ] @@ -2968,14 +2992,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4bc40943156e42138d22ed3c57ff0e1a147237742715937622a99b10fbe0156" dependencies = [ "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] name = "libp2p-deflate" -version = "0.26.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3257a41f376aa23f237231971fee7e350e4d8353cfcf233aef34d6d6b638f0c" +checksum = "6d42eed63305f0420736fa487f9acef720c4528bd7852a6a760f5ccde4813345" dependencies = [ "flate2", "futures 0.3.12", @@ -2984,9 +3008,9 @@ dependencies = [ [[package]] name = "libp2p-dns" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e09bab25af01326b4ed9486d31325911437448edda30bc57681502542d49f20" +checksum = "5153b6db68fd4baa3b304e377db744dd8fea8ff4e4504509ee636abcde88d3e3" dependencies = [ "futures 0.3.12", "libp2p-core", @@ -2995,9 +3019,9 @@ dependencies = [ [[package]] name = "libp2p-floodsub" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd8cdd5ef1dd0b7346975477216d752de976b92e43051bc8bd808c372ea6cec" +checksum = "b3c63dfa06581b24b1d12bf9815b43689a784424be217d6545c800c7c75a207f" dependencies = [ "cuckoofilter", "fnv", @@ -3005,7 +3029,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "prost", + "prost 0.7.0", "prost-build", "rand 0.7.3", "smallvec 1.6.1", @@ -3013,41 +3037,41 @@ dependencies = [ [[package]] name = "libp2p-gossipsub" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d489531aa9d4ba8726a08b3b74e21c2e10a518ad266ebca98d79040123ab0036" +checksum = "12451ba9493e87c91baf2a6dffce9ddf1fbc807a0861532d7cf477954f8ebbee" dependencies = [ + "asynchronous-codec", "base64 0.13.0", "byteorder", - "bytes 0.5.6", + "bytes 1.0.1", "fnv", "futures 0.3.12", - "futures_codec", "hex_fmt", "libp2p-core", "libp2p-swarm", "log", - "lru_time_cache", - "prost", + "prost 0.7.0", "prost-build", "rand 0.7.3", - "sha2 0.9.2", + "regex", + "sha2 0.9.3", "smallvec 1.6.1", - "unsigned-varint", + "unsigned-varint 0.6.0", "wasm-timer", ] [[package]] name = "libp2p-identify" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43bc51a9bc3780288c526615ba0f5f8216820ea6dcc02b89e8daee526c5fccb" +checksum = "b40fb36a059b7a8cce1514bd8b546fa612e006c9937caa7f5950cb20021fe91e" dependencies = [ "futures 0.3.12", "libp2p-core", "libp2p-swarm", "log", - "prost", + "prost 0.7.0", "prost-build", "smallvec 1.6.1", "wasm-timer", @@ -3055,35 +3079,35 @@ dependencies = [ [[package]] name = "libp2p-kad" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe68563ee33f3848293919afd61470ebcdea4e757a36cc2c33a5508abec2216" +checksum = "456f5de8e283d7800ca848b9b9a4e2a578b790bd8ae582b885e831353cf0e5df" dependencies = [ "arrayvec 0.5.2", - "bytes 0.5.6", + "asynchronous-codec", + "bytes 1.0.1", "either", "fnv", "futures 0.3.12", - "futures_codec", "libp2p-core", "libp2p-swarm", "log", - "prost", + "prost 0.7.0", "prost-build", "rand 0.7.3", - "sha2 0.9.2", + "sha2 0.9.3", "smallvec 1.6.1", - "uint 0.8.5", - "unsigned-varint", + "uint", + "unsigned-varint 0.6.0", "void", "wasm-timer", ] [[package]] name = "libp2p-mdns" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9e12688e8f14008c950c1efde587cb44dbf316fa805f419cd4e524991236f5" +checksum = "b974db63233fc0e199f4ede7794294aae285c96f4b6010f853eac4099ef08590" dependencies = [ "async-io", "data-encoding", @@ -3102,38 +3126,38 @@ dependencies = [ [[package]] name = "libp2p-mplex" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce3200fbe6608e623bd9efa459cc8bafa0e4efbb0a2dfcdd0e1387ff4181264b" +checksum = "2705dc94b01ab9e3779b42a09bbf3712e637ed213e875c30face247291a85af0" dependencies = [ - "bytes 0.5.6", + "asynchronous-codec", + "bytes 1.0.1", "futures 0.3.12", - "futures_codec", "libp2p-core", "log", "nohash-hasher", "parking_lot 0.11.1", "rand 0.7.3", "smallvec 1.6.1", - "unsigned-varint", + "unsigned-varint 0.6.0", ] [[package]] name = "libp2p-noise" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0580e0d18019d254c9c349c03ff7b22e564b6f2ada70c045fc39738e144f2139" +checksum = "4aca322b52a0c5136142a7c3971446fb1e9964923a526c9cc6ef3b7c94e57778" dependencies = [ - "bytes 0.5.6", + "bytes 1.0.1", "curve25519-dalek 3.0.2", "futures 0.3.12", "lazy_static", "libp2p-core", "log", - "prost", + "prost 0.7.0", "prost-build", "rand 0.7.3", - "sha2 0.9.2", + "sha2 0.9.3", "snow", "static_assertions", "x25519-dalek", @@ -3142,9 +3166,9 @@ dependencies = [ [[package]] name = "libp2p-ping" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50b2ec86a18cbf09d7df440e7786a2409640c774e476e9a3b4d031382c3d7588" +checksum = "6f3813276d0708c8db0f500d8beda1bda9ad955723b9cb272c41f4727256f73c" dependencies = [ "futures 0.3.12", "libp2p-core", @@ -3157,18 +3181,18 @@ dependencies = [ [[package]] name = "libp2p-plaintext" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a7b1bdcbe46a3a2159c231601ed29645282653c0a96ce3a2ad8352c9fbe6800" +checksum = "48e8c1ec305c9949351925cdc7196b9570f4330477f5e47fbf5bb340b57e26ed" dependencies = [ - "bytes 0.5.6", + "asynchronous-codec", + "bytes 1.0.1", "futures 0.3.12", - "futures_codec", "libp2p-core", "log", - "prost", + "prost 0.7.0", "prost-build", - "unsigned-varint", + "unsigned-varint 0.6.0", "void", ] @@ -3188,12 +3212,12 @@ dependencies = [ [[package]] name = "libp2p-request-response" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "620e2950decbf77554b5aed3824f7d0e2c04923f28c70f9bff1a402c47ef6b1e" +checksum = "d37637a4b33b5390322ccc068a33897d0aa541daf4fec99f6a7efbf37295346e" dependencies = [ "async-trait", - "bytes 0.5.6", + "bytes 1.0.1", "futures 0.3.12", "libp2p-core", "libp2p-swarm", @@ -3202,15 +3226,15 @@ dependencies = [ "minicbor", "rand 0.7.3", "smallvec 1.6.1", - "unsigned-varint", + "unsigned-varint 0.6.0", "wasm-timer", ] [[package]] name = "libp2p-swarm" -version = "0.26.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdf5894ee1ee63a38aa58d58a16e3dcf7ede6b59ea7b22302c00c1a41d7aec41" +checksum = "d4f89ebb4d8953bda12623e9871959fe728dea3bf6eae0421dc9c42dc821e488" dependencies = [ "either", "futures 0.3.12", @@ -3224,15 +3248,16 @@ dependencies = [ [[package]] name = "libp2p-tcp" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2113a7dab2b502c55fe290910cd7399a2aa04fe70a2f5a415a87a1db600c0e" +checksum = "3dbd3d7076a478ac5a6aca55e74bdc250ac539b95de09b9d09915e0b8d01a6b2" dependencies = [ - "async-std", + "async-io", "futures 0.3.12", "futures-timer 3.0.2", - "if-addrs", + "if-watch", "ipnet", + "libc", "libp2p-core", "log", "socket2", @@ -3240,9 +3265,9 @@ dependencies = [ [[package]] name = "libp2p-uds" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af05fe92c2a3aa320bc82a308ddb7b33bef3b060154c5a4b9fb0b01f15385fc0" +checksum = "80ac51ce419f60be966e02103c17f67ff5dc4422ba83ba54d251d6c62a4ed487" dependencies = [ "async-std", "futures 0.3.12", @@ -3252,9 +3277,9 @@ dependencies = [ [[package]] name = "libp2p-wasm-ext" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37cd44ea05a4523f40183f60ab6e6a80e400a5ddfc98b0df1c55edeb85576cd9" +checksum = "6149c46cb76935c80bc8be6ec6e3ebd5f5e1679765a255fb34331d54610f15dd" dependencies = [ "futures 0.3.12", "js-sys", @@ -3266,29 +3291,27 @@ dependencies = [ [[package]] name = "libp2p-websocket" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "270c80528e21089ea25b41dd1ab8fd834bdf093ebee422fed3b68699a857a083" +checksum = "d3b1c6a3431045da8b925ed83384e4c5163e14b990572307fca9c507435d4d22" dependencies = [ - "async-tls", "either", "futures 0.3.12", + "futures-rustls", "libp2p-core", "log", "quicksink", - "rustls 0.19.0", "rw-stream-sink", "soketto", "url 2.2.0", - "webpki", "webpki-roots", ] [[package]] name = "libp2p-yamux" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36799de9092c35782f080032eddbc8de870f94a0def87cf9f8883efccd5cacf0" +checksum = "490b8b27fc40fe35212df1b6a3d14bffaa4117cbff956fdc2892168a371102ad" dependencies = [ "futures 0.3.12", "libp2p-core", @@ -3381,11 +3404,12 @@ dependencies = [ [[package]] name = "log" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcf3805d4480bb5b86070dcfeb9e2cb2ebc148adb753c5cca5f884d1d65a42b2" +checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" dependencies = [ - "cfg-if 0.1.10", + "cfg-if 1.0.0", + "value-bag", ] [[package]] @@ -3397,12 +3421,6 @@ dependencies = [ "hashbrown", ] -[[package]] -name = "lru_time_cache" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc2beb26938dfd9988fc368548b70bcdfaf955f55aa788e1682198de794a451" - [[package]] name = "mach" version = "0.3.2" @@ -3493,6 +3511,15 @@ dependencies = [ "parity-util-mem", ] +[[package]] +name = "memory-lru" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "beeb98b3d1ed2c0054bd81b5ba949a0243c3ccad751d45ea898fa8059fa2860a" +dependencies = [ + "lru", +] + [[package]] name = "memory_units" version = "0.3.0" @@ -3523,7 +3550,7 @@ dependencies = [ [[package]] name = "metered-channel" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -3542,22 +3569,22 @@ dependencies = [ [[package]] name = "minicbor" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0164190d1771b1458c3742075b057ed55d25cd9dfb930aade99315a1eb1fe12d" +checksum = "3265a9f5210bb726f81ef9c456ae0aff5321cd95748c0e71889b0e19d8f0332b" dependencies = [ "minicbor-derive", ] [[package]] name = "minicbor-derive" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e071b3159835ee91df62dbdbfdd7ec366b7ea77c838f43aff4acda6b61bcfb9" +checksum = "130b9455e28a3f308f6579671816a6f2621e2e0cbf55dc2f886345bef699481e" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] @@ -3661,8 +3688,8 @@ dependencies = [ "digest 0.9.0", "generic-array 0.14.4", "multihash-derive", - "sha2 0.9.2", - "unsigned-varint", + "sha2 0.9.3", + "unsigned-varint 0.5.1", ] [[package]] @@ -3675,7 +3702,7 @@ dependencies = [ "proc-macro-error", "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", "synstructure", ] @@ -3687,16 +3714,16 @@ checksum = "1255076139a83bb467426e7f8d0134968a8118844faa755985e077cf31850333" [[package]] name = "multistream-select" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dda822043bba2d6da31c4e14041f9794f8fb130a5959289038d0b809d8888614" +checksum = "10ddc0eb0117736f19d556355464fc87efc8ad98b29e3fd84f02531eb6e90840" dependencies = [ - "bytes 0.5.6", + "bytes 1.0.1", "futures 0.3.12", "log", "pin-project 1.0.4", "smallvec 1.6.1", - "unsigned-varint", + "unsigned-varint 0.6.0", ] [[package]] @@ -3874,9 +3901,9 @@ dependencies = [ [[package]] name = "object" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397" +checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4" [[package]] name = "once_cell" @@ -3932,7 +3959,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -3948,7 +3975,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -3963,7 +3990,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-benchmarking", "frame-support", @@ -3988,7 +4015,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-benchmarking", "frame-support", @@ -4002,7 +4029,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "2.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -4016,7 +4043,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -4031,7 +4058,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-benchmarking", "frame-support", @@ -4045,8 +4072,8 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -4060,7 +4087,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-benchmarking", "frame-support", @@ -4081,7 +4108,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4097,7 +4124,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -4116,7 +4143,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -4132,7 +4159,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -4146,7 +4173,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -4161,7 +4188,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -4175,7 +4202,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -4190,7 +4217,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -4205,7 +4232,7 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -4218,7 +4245,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "enumflags2", "frame-support", @@ -4233,7 +4260,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-benchmarking", "frame-support", @@ -4248,7 +4275,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -4268,7 +4295,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -4282,7 +4309,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -4302,18 +4329,18 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] name = "pallet-sudo" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -4339,7 +4366,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-benchmarking", "frame-support", @@ -4357,7 +4384,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "2.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -4371,7 +4398,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -4387,7 +4414,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4404,7 +4431,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -4415,7 +4442,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -4430,7 +4457,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-support", "frame-system", @@ -4445,7 +4472,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "enumflags2", "frame-support", @@ -4489,6 +4516,7 @@ dependencies = [ "sc-rpc", "sc-rpc-api", "sc-service", + "sc-telemetry", "sc-tracing", "sc-transaction-pool", "serde", @@ -4510,6 +4538,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#4b69b8d4bfa113fb3af2da34d1b71313bc43fb0c" dependencies = [ "cumulus-primitives", "frame-support", @@ -4522,8 +4551,7 @@ dependencies = [ name = "parachain-runtime" version = "2.0.0" dependencies = [ - "cumulus-message-broker", - "cumulus-parachain-upgrade", + "cumulus-parachain-system", "cumulus-primitives", "cumulus-runtime", "frame-benchmarking", @@ -4578,9 +4606,9 @@ dependencies = [ [[package]] name = "parity-multiaddr" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180cd097078b337d2ba6400c6a67b181b38b611273cb1d8d12f3d8d5d8eaaacb" +checksum = "8bfda2e46fc5e14122649e2645645a81ee5844e0fb2e727ef560cc71a8b2d801" dependencies = [ "arrayref", "bs58", @@ -4590,7 +4618,7 @@ dependencies = [ "percent-encoding 2.1.0", "serde", "static_assertions", - "unsigned-varint", + "unsigned-varint 0.6.0", "url 2.2.0", ] @@ -4616,7 +4644,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] @@ -4651,8 +4679,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f17f15cb05897127bf36a240085a1f0bbef7bce3024849eccf7f93f6171bc27" dependencies = [ "cfg-if 1.0.0", + "ethereum-types", "hashbrown", "impl-trait-for-tuples 0.2.0", + "lru", "parity-util-mem-derive", "parking_lot 0.11.1", "primitive-types", @@ -4667,7 +4697,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" dependencies = [ "proc-macro2 1.0.24", - "syn 1.0.58", + "syn 1.0.60", "synstructure", ] @@ -4876,7 +4906,7 @@ dependencies = [ "pest_meta", "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] @@ -4926,7 +4956,7 @@ checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] @@ -4937,7 +4967,7 @@ checksum = "caa25a6393f22ce819b0f50e0be89287292fda8d425be38ee0ca14c4931d9e71" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] @@ -4970,10 +5000,25 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "feb3b2b1033b8a60b4da6ee470325f887758c95d5320f52f9ce0df055a55940e" +[[package]] +name = "polkadot-approval-distribution" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +dependencies = [ + "futures 0.3.12", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "tracing", + "tracing-futures", +] + [[package]] name = "polkadot-availability-bitfield-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "futures 0.3.12", "parity-scale-codec", @@ -4988,7 +5033,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "futures 0.3.12", "parity-scale-codec", @@ -5004,10 +5049,30 @@ dependencies = [ "tracing-futures", ] +[[package]] +name = "polkadot-availability-recovery" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +dependencies = [ + "futures 0.3.12", + "futures-timer 3.0.2", + "lru", + "polkadot-erasure-coding", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "rand 0.8.3", + "streamunordered", + "thiserror", + "tracing", + "tracing-futures", +] + [[package]] name = "polkadot-cli" -version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +version = "0.8.28" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "frame-benchmarking-cli", "futures 0.3.12", @@ -5027,7 +5092,7 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "futures 0.3.12", "polkadot-node-network-protocol", @@ -5042,9 +5107,10 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "0.7.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "parity-scale-codec", + "parity-util-mem", "sp-core", "sp-runtime", "sp-std", @@ -5052,8 +5118,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +version = "0.8.28" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -5066,7 +5132,7 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "async-trait", "futures 0.3.12", @@ -5083,7 +5149,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "futures 0.3.12", "polkadot-erasure-coding", @@ -5100,7 +5166,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "bitvec", "futures 0.3.12", @@ -5122,7 +5188,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "bitvec", "futures 0.3.12", @@ -5141,7 +5207,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "futures 0.3.12", "polkadot-node-subsystem", @@ -5157,7 +5223,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-selection" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "futures 0.3.12", "polkadot-node-subsystem", @@ -5172,7 +5238,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "futures 0.3.12", "parity-scale-codec", @@ -5189,7 +5255,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "futures 0.3.12", "polkadot-node-subsystem", @@ -5203,7 +5269,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-proposer" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -5227,7 +5293,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "bitvec", "futures 0.3.12", @@ -5243,9 +5309,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "futures 0.3.12", + "memory-lru", + "parity-util-mem", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -5258,7 +5326,7 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "async-std", "lazy_static", @@ -5274,7 +5342,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "parity-scale-codec", "polkadot-node-jaeger", @@ -5282,17 +5350,20 @@ dependencies = [ "polkadot-primitives", "sc-network", "strum 0.20.0", + "thiserror", + "zstd", ] [[package]] name = "polkadot-node-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "futures 0.3.12", "parity-scale-codec", "polkadot-primitives", "polkadot-statement-table", + "sp-consensus-slots", "sp-consensus-vrf", "sp-core", "sp-runtime", @@ -5301,7 +5372,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "async-std", "async-trait", @@ -5331,7 +5402,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "async-trait", "futures 0.3.12", @@ -5357,7 +5428,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "async-trait", "futures 0.3.12", @@ -5374,13 +5445,14 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +version = "0.8.28" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "derive_more 0.99.11", "futures 0.3.12", "log", "parity-scale-codec", + "parity-util-mem", "parking_lot 0.11.1", "polkadot-core-primitives", "sc-executor", @@ -5398,7 +5470,7 @@ dependencies = [ [[package]] name = "polkadot-pov-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "futures 0.3.12", "polkadot-node-network-protocol", @@ -5412,13 +5484,14 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +version = "0.8.28" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "bitvec", "frame-system", "hex-literal 0.3.1", "parity-scale-codec", + "parity-util-mem", "polkadot-core-primitives", "polkadot-parachain", "serde", @@ -5439,8 +5512,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +version = "0.8.28" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "jsonrpc-core", "pallet-transaction-payment-rpc", @@ -5469,8 +5542,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +version = "0.8.28" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "bitvec", "frame-executive", @@ -5534,8 +5607,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +version = "0.8.28" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "bitvec", "frame-support", @@ -5571,7 +5644,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "bitvec", "derive_more 0.99.11", @@ -5588,7 +5661,7 @@ dependencies = [ "pallet-vesting", "parity-scale-codec", "polkadot-primitives", - "rand 0.8.2", + "rand 0.8.3", "rand_chacha 0.3.0", "rustc-hex", "serde", @@ -5608,7 +5681,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "0.8.3" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "frame-benchmarking", "frame-system-rpc-runtime-api", @@ -5619,8 +5692,10 @@ dependencies = [ "pallet-im-online", "pallet-staking", "pallet-transaction-payment-rpc-runtime-api", + "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", + "polkadot-availability-recovery", "polkadot-collator-protocol", "polkadot-network-bridge", "polkadot-node-collation-generation", @@ -5654,6 +5729,7 @@ dependencies = [ "sc-consensus-slots", "sc-executor", "sc-finality-grandpa", + "sc-finality-grandpa-warp-sync", "sc-network", "sc-service", "sc-telemetry", @@ -5687,7 +5763,7 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "arrayvec 0.5.2", "futures 0.3.12", @@ -5704,8 +5780,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +version = "0.8.28" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -5714,8 +5790,8 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" -version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +version = "0.8.28" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "bitvec", "frame-executive", @@ -5768,8 +5844,8 @@ dependencies = [ [[package]] name = "polkadot-test-service" -version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +version = "0.8.28" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "frame-benchmarking", "frame-system", @@ -5789,7 +5865,7 @@ dependencies = [ "polkadot-runtime-parachains", "polkadot-service", "polkadot-test-runtime", - "rand 0.8.2", + "rand 0.8.3", "sc-authority-discovery", "sc-chain-spec", "sc-cli", @@ -5800,6 +5876,7 @@ dependencies = [ "sc-finality-grandpa", "sc-network", "sc-service", + "sc-tracing", "sc-transaction-pool", "sp-arithmetic", "sp-authority-discovery", @@ -5818,34 +5895,6 @@ dependencies = [ "tracing-futures", ] -[[package]] -name = "polkadot-validation" -version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" -dependencies = [ - "futures 0.3.12", - "log", - "parity-scale-codec", - "polkadot-parachain", - "polkadot-primitives", - "sc-basic-authorship", - "sc-block-builder", - "sc-client-api", - "sc-finality-grandpa", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-timestamp", - "sp-transaction-pool", - "sp-trie", - "substrate-prometheus-endpoint", - "thiserror", -] - [[package]] name = "polling" version = "2.0.2" @@ -5894,8 +5943,9 @@ checksum = "b3824ae2c5e27160113b9e029a10ec9e3f0237bad8029f69c7724393c9fdefd8" dependencies = [ "fixed-hash", "impl-codec", + "impl-rlp", "impl-serde", - "uint 0.9.0", + "uint", ] [[package]] @@ -5916,7 +5966,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", "version_check", ] @@ -5982,25 +6032,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce49aefe0a6144a45de32927c77bd2859a5f7677b55f220ae5b744e87389c212" dependencies = [ "bytes 0.5.6", - "prost-derive", + "prost-derive 0.6.1", +] + +[[package]] +name = "prost" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e6984d2f1a23009bd270b8bb56d0926810a3d483f59c987d77969e9d8e840b2" +dependencies = [ + "bytes 1.0.1", + "prost-derive 0.7.0", ] [[package]] name = "prost-build" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b10678c913ecbd69350e8535c3aef91a8676c0773fc1d7b95cdd196d7f2f26" +checksum = "32d3ebd75ac2679c2af3a92246639f9fcc8a442ee420719cc4fe195b98dd5fa3" dependencies = [ - "bytes 0.5.6", + "bytes 1.0.1", "heck", - "itertools 0.8.2", + "itertools 0.9.0", "log", "multimap", "petgraph", - "prost", + "prost 0.7.0", "prost-types", "tempfile", - "which", + "which 4.0.2", ] [[package]] @@ -6013,17 +6073,30 @@ dependencies = [ "itertools 0.8.2", "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", +] + +[[package]] +name = "prost-derive" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "169a15f3008ecb5160cba7d37bcd690a7601b6d30cfb87a117d45e59d52af5d4" +dependencies = [ + "anyhow", + "itertools 0.9.0", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.60", ] [[package]] name = "prost-types" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1834f67c0697c001304b75be76f67add9c89742eda3a085ad8ee0bb38c3417aa" +checksum = "b518d7cdd93dab1d1122cf07fa9a60771836c668dde9d9e2a139f957f0d9f1bb" dependencies = [ - "bytes 0.5.6", - "prost", + "bytes 1.0.1", + "prost 0.7.0", ] [[package]] @@ -6123,9 +6196,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18519b42a40024d661e1714153e9ad0c3de27cd495760ceb09710920f1098b1e" +checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" dependencies = [ "libc", "rand_chacha 0.3.0", @@ -6183,7 +6256,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c026d7df8b298d90ccbbc5190bd04d85e159eaf5576caeacf8741da93ccbd2e5" dependencies = [ - "getrandom 0.2.1", + "getrandom 0.2.2", ] [[package]] @@ -6325,7 +6398,7 @@ checksum = "4c38e3aecd2b21cb3959637b883bb3714bc7e43f0268b9a29d3743ee3e55cdd2" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] @@ -6396,9 +6469,9 @@ checksum = "53552c6c49e1e13f1a203ef0080ab3bbef0beb570a528993e83df057a9d9bba1" [[package]] name = "ring" -version = "0.16.19" +version = "0.16.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "024a1e66fea74c66c66624ee5622a7ff0e4b73a13b4f5c326ddb50c708944226" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" dependencies = [ "cc", "libc", @@ -6409,6 +6482,16 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "rlp" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e54369147e3e7796c9b885c7304db87ca3d09a0a98f72843d532868675bbfba8" +dependencies = [ + "bytes 1.0.1", + "rustc-hex", +] + [[package]] name = "rocksdb" version = "0.15.0" @@ -6421,8 +6504,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +version = "0.8.28" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "frame-executive", "frame-support", @@ -6474,9 +6557,9 @@ dependencies = [ [[package]] name = "rpassword" -version = "5.0.0" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d755237fc0f99d98641540e66abac8bc46a0652f19148ac9e21de2da06b326c9" +checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" dependencies = [ "libc", "winapi 0.3.9", @@ -6612,7 +6695,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "async-trait", "derive_more 0.99.11", @@ -6622,7 +6705,7 @@ dependencies = [ "libp2p", "log", "parity-scale-codec", - "prost", + "prost 0.7.0", "prost-build", "rand 0.7.3", "sc-client-api", @@ -6640,7 +6723,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -6663,7 +6746,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -6680,7 +6763,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "impl-trait-for-tuples 0.2.0", "parity-scale-codec", @@ -6701,20 +6784,19 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] name = "sc-cli" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ - "atty", "chrono", "fdlimit", "futures 0.3.12", @@ -6726,7 +6808,6 @@ dependencies = [ "rand 0.7.3", "regex", "rpassword", - "sc-cli-proc-macro", "sc-client-api", "sc-keystore", "sc-network", @@ -6746,27 +6827,13 @@ dependencies = [ "structopt", "thiserror", "tiny-bip39", - "tokio 0.2.24", - "tracing", - "tracing-log", - "tracing-subscriber", -] - -[[package]] -name = "sc-cli-proc-macro" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" -dependencies = [ - "proc-macro-crate", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "tokio 0.2.25", ] [[package]] name = "sc-client-api" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "derive_more 0.99.11", "fnv", @@ -6800,7 +6867,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "blake2-rfc", "hash-db", @@ -6830,7 +6897,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "sc-client-api", "sp-blockchain", @@ -6841,7 +6908,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "derive_more 0.99.11", "fork-tree", @@ -6886,7 +6953,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "derive_more 0.99.11", "futures 0.3.12", @@ -6910,7 +6977,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "fork-tree", "parity-scale-codec", @@ -6923,7 +6990,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -6949,7 +7016,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "log", "sc-client-api", @@ -6963,7 +7030,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "derive_more 0.99.11", "lazy_static", @@ -6992,7 +7059,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "derive_more 0.99.11", "parity-scale-codec", @@ -7008,7 +7075,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "log", "parity-scale-codec", @@ -7023,7 +7090,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "log", "parity-scale-codec", @@ -7041,13 +7108,14 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "derive_more 0.99.11", "finality-grandpa", "fork-tree", "futures 0.3.12", "futures-timer 3.0.2", + "linked-hash-map", "log", "parity-scale-codec", "parking_lot 0.11.1", @@ -7078,7 +7146,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "derive_more 0.99.11", "finality-grandpa", @@ -7099,10 +7167,30 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "sc-finality-grandpa-warp-sync" +version = "0.8.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +dependencies = [ + "derive_more 0.99.11", + "futures 0.3.12", + "log", + "num-traits 0.2.14", + "parity-scale-codec", + "parking_lot 0.11.1", + "prost 0.6.1", + "sc-client-api", + "sc-finality-grandpa", + "sc-network", + "sc-service", + "sp-blockchain", + "sp-runtime", +] + [[package]] name = "sc-informant" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "ansi_term 0.12.1", "futures 0.3.12", @@ -7120,7 +7208,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "async-trait", "derive_more 0.99.11", @@ -7140,7 +7228,7 @@ dependencies = [ [[package]] name = "sc-light" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "hash-db", "lazy_static", @@ -7159,13 +7247,14 @@ dependencies = [ [[package]] name = "sc-network" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "async-std", "async-trait", + "asynchronous-codec", "bitflags", "bs58", - "bytes 0.5.6", + "bytes 1.0.1", "derive_more 0.99.11", "either", "erased-serde", @@ -7173,18 +7262,18 @@ dependencies = [ "fork-tree", "futures 0.3.12", "futures-timer 3.0.2", - "futures_codec", "hex", "ip_network", "libp2p", "linked-hash-map", "linked_hash_set", "log", + "lru", "nohash-hasher", "parity-scale-codec", "parking_lot 0.11.1", "pin-project 0.4.27", - "prost", + "prost 0.7.0", "prost-build", "rand 0.7.3", "sc-block-builder", @@ -7192,8 +7281,6 @@ dependencies = [ "sc-peerset", "serde", "serde_json", - "slog", - "slog_derive", "smallvec 1.6.1", "sp-arithmetic", "sp-blockchain", @@ -7203,7 +7290,7 @@ dependencies = [ "sp-utils", "substrate-prometheus-endpoint", "thiserror", - "unsigned-varint", + "unsigned-varint 0.6.0", "void", "wasm-timer", "zeroize", @@ -7212,7 +7299,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -7228,7 +7315,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "bytes 0.5.6", "fnv", @@ -7255,7 +7342,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "futures 0.3.12", "libp2p", @@ -7268,7 +7355,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -7277,7 +7364,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "futures 0.3.12", "hash-db", @@ -7311,7 +7398,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "derive_more 0.99.11", "futures 0.3.12", @@ -7335,7 +7422,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "futures 0.1.30", "jsonrpc-core", @@ -7353,7 +7440,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "directories 3.0.1", "exit-future", @@ -7387,7 +7474,6 @@ dependencies = [ "sc-transaction-pool", "serde", "serde_json", - "slog", "sp-api", "sp-application-crypto", "sp-block-builder", @@ -7417,7 +7503,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "log", "parity-scale-codec", @@ -7432,7 +7518,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.8.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -7452,20 +7538,21 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ + "chrono", "futures 0.3.12", - "futures-timer 3.0.2", "libp2p", "log", "parking_lot 0.11.1", "pin-project 0.4.27", "rand 0.7.3", "serde", - "slog", - "slog-json", - "slog-scope", + "serde_json", + "sp-utils", "take_mut", + "tracing", + "tracing-subscriber", "void", "wasm-timer", ] @@ -7473,9 +7560,10 @@ dependencies = [ [[package]] name = "sc-tracing" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "ansi_term 0.12.1", + "atty", "erased-serde", "lazy_static", "log", @@ -7484,20 +7572,34 @@ dependencies = [ "regex", "rustc-hash", "sc-telemetry", + "sc-tracing-proc-macro", "serde", "serde_json", - "slog", "sp-tracing", + "thiserror", "tracing", "tracing-core", "tracing-log", "tracing-subscriber", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "sc-tracing-proc-macro" +version = "2.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +dependencies = [ + "proc-macro-crate", + "proc-macro2 1.0.24", + "quote 1.0.8", + "syn 1.0.60", ] [[package]] name = "sc-transaction-graph" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "derive_more 0.99.11", "futures 0.3.12", @@ -7519,7 +7621,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "futures 0.3.12", "futures-diagnose", @@ -7594,13 +7696,13 @@ dependencies = [ [[package]] name = "scroll_derive" -version = "0.10.4" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b12bd20b94c7cdfda8c7ba9b92ad0d9a56e3fa018c25fca83b51aa664c9b4c0d" +checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] @@ -7690,22 +7792,22 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.119" +version = "1.0.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bdd36f49e35b61d49efd8aa7fc068fd295961fd2286d0b2ee9a4c7a14e99cc3" +checksum = "92d5161132722baa40d802cc70b15262b98258453e85e5d1d365c757c73869ae" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.119" +version = "1.0.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "552954ce79a059ddd5fd68c271592374bd15cab2274970380c000118aeffe1cd" +checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] @@ -7733,9 +7835,9 @@ dependencies = [ [[package]] name = "sha-1" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce3cdf1b5e620a498ee6f2a171885ac7e22f0e12089ec4b3d22b84921792507c" +checksum = "f4b312c3731e3fe78a185e6b9b911a7aa715b8e31cce117975219aab2acf285d" dependencies = [ "block-buffer 0.9.0", "cfg-if 1.0.0", @@ -7758,9 +7860,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e7aab86fe2149bad8c507606bdb3f4ef5e7b2380eb92350f56122cca72a42a8" +checksum = "fa827a14b29ab7f44778d14a88d3cb76e949c45083f7dbfa507d0cb699dc12de" dependencies = [ "block-buffer 0.9.0", "cfg-if 1.0.0", @@ -7869,50 +7971,6 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" -[[package]] -name = "slog" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06" -dependencies = [ - "erased-serde", -] - -[[package]] -name = "slog-json" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc0d2aff1f8f325ef660d9a0eb6e6dcd20b30b3f581a5897f58bf42d061c37a" -dependencies = [ - "chrono", - "erased-serde", - "serde", - "serde_json", - "slog", -] - -[[package]] -name = "slog-scope" -version = "4.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f95a4b4c3274cd2869549da82b57ccc930859bdbf5bcea0424bc5f140b3c786" -dependencies = [ - "arc-swap", - "lazy_static", - "slog", -] - -[[package]] -name = "slog_derive" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a945ec7f7ce853e89ffa36be1e27dce9a43e82ff9093bf3461c30d5da74ed11b" -dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", -] - [[package]] name = "smallvec" version = "0.6.14" @@ -7941,7 +7999,7 @@ dependencies = [ "rand_core 0.5.1", "ring", "rustc_version", - "sha2 0.9.2", + "sha2 0.9.3", "subtle 2.4.0", "x25519-dalek", ] @@ -7970,13 +8028,13 @@ dependencies = [ "httparse", "log", "rand 0.7.3", - "sha-1 0.9.2", + "sha-1 0.9.3", ] [[package]] name = "sp-allocator" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "log", "sp-core", @@ -7988,7 +8046,7 @@ dependencies = [ [[package]] name = "sp-api" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "hash-db", "parity-scale-codec", @@ -8004,19 +8062,19 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "blake2-rfc", "proc-macro-crate", "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] name = "sp-application-crypto" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "parity-scale-codec", "serde", @@ -8028,7 +8086,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "integer-sqrt", "num-traits 0.2.14", @@ -8041,7 +8099,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "parity-scale-codec", "sp-api", @@ -8053,7 +8111,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "parity-scale-codec", "sp-inherents", @@ -8064,7 +8122,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "parity-scale-codec", "sp-api", @@ -8076,7 +8134,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "futures 0.3.12", "log", @@ -8094,7 +8152,7 @@ dependencies = [ [[package]] name = "sp-chain-spec" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "serde", "serde_json", @@ -8103,7 +8161,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -8129,7 +8187,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "merlin", "parity-scale-codec", @@ -8149,7 +8207,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -8158,7 +8216,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -8170,7 +8228,7 @@ dependencies = [ [[package]] name = "sp-core" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "base58", "blake2-rfc", @@ -8196,7 +8254,7 @@ dependencies = [ "schnorrkel", "secrecy", "serde", - "sha2 0.9.2", + "sha2 0.9.3", "sp-debug-derive", "sp-externalities", "sp-runtime-interface", @@ -8214,7 +8272,7 @@ dependencies = [ [[package]] name = "sp-database" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "kvdb", "parking_lot 0.11.1", @@ -8223,17 +8281,17 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] name = "sp-externalities" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "environmental", "parity-scale-codec", @@ -8244,7 +8302,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "finality-grandpa", "log", @@ -8261,7 +8319,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "parity-scale-codec", "parking_lot 0.11.1", @@ -8273,7 +8331,7 @@ dependencies = [ [[package]] name = "sp-io" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "futures 0.3.12", "hash-db", @@ -8297,7 +8355,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "lazy_static", "sp-core", @@ -8308,7 +8366,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.8.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "async-trait", "derive_more 0.99.11", @@ -8325,11 +8383,12 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "parity-scale-codec", "serde", "sp-arithmetic", + "sp-core", "sp-npos-elections-compact", "sp-std", ] @@ -8337,18 +8396,18 @@ dependencies = [ [[package]] name = "sp-npos-elections-compact" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] name = "sp-offchain" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "sp-api", "sp-core", @@ -8358,7 +8417,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "backtrace", ] @@ -8366,7 +8425,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "serde", "sp-core", @@ -8375,7 +8434,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "either", "hash256-std-hasher", @@ -8396,7 +8455,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "impl-trait-for-tuples 0.2.0", "parity-scale-codec", @@ -8413,19 +8472,19 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "Inflector", "proc-macro-crate", "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] name = "sp-serializer" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "serde", "serde_json", @@ -8434,7 +8493,7 @@ dependencies = [ [[package]] name = "sp-session" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "parity-scale-codec", "sp-api", @@ -8447,7 +8506,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -8457,7 +8516,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "hash-db", "log", @@ -8479,12 +8538,12 @@ dependencies = [ [[package]] name = "sp-std" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" [[package]] name = "sp-storage" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "impl-serde", "parity-scale-codec", @@ -8497,7 +8556,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "2.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "log", "sp-core", @@ -8510,7 +8569,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "impl-trait-for-tuples 0.2.0", "parity-scale-codec", @@ -8524,7 +8583,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "log", "parity-scale-codec", @@ -8537,7 +8596,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "derive_more 0.99.11", "futures 0.3.12", @@ -8553,7 +8612,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "hash-db", "memory-db", @@ -8567,7 +8626,7 @@ dependencies = [ [[package]] name = "sp-utils" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "futures 0.3.12", "futures-core", @@ -8579,7 +8638,7 @@ dependencies = [ [[package]] name = "sp-version" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "impl-serde", "parity-scale-codec", @@ -8591,7 +8650,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "impl-trait-for-tuples 0.2.0", "parity-scale-codec", @@ -8684,7 +8743,7 @@ dependencies = [ "proc-macro-error", "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] @@ -8714,7 +8773,7 @@ dependencies = [ "heck", "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] @@ -8726,7 +8785,7 @@ dependencies = [ "heck", "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] @@ -8745,7 +8804,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "platforms", ] @@ -8753,7 +8812,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.12", @@ -8776,7 +8835,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "async-std", "derive_more 0.99.11", @@ -8784,13 +8843,13 @@ dependencies = [ "hyper 0.13.9", "log", "prometheus", - "tokio 0.2.24", + "tokio 0.2.25", ] [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "futures 0.1.30", "futures 0.3.12", @@ -8833,7 +8892,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a9bbc7bdbfd3fa66537e5feedf1562dcb2c132a5" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" dependencies = [ "ansi_term 0.12.1", "atty", @@ -8870,9 +8929,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.58" +version = "1.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc60a3d73ea6594cd712d830cc1f0390fd71542d8c8cd24e70cc54cdfd5e05d5" +checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", @@ -8887,7 +8946,7 @@ checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", "unicode-xid 0.2.1", ] @@ -8911,7 +8970,7 @@ checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" dependencies = [ "cfg-if 1.0.0", "libc", - "rand 0.8.2", + "rand 0.8.3", "redox_syscall 0.2.4", "remove_dir_all", "winapi 0.3.9", @@ -8963,16 +9022,16 @@ checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] name = "thread_local" -version = "1.1.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb9bc092d0d51e76b2b19d9d85534ffc9ec2db959a2523cdae0697e2972cd447" +checksum = "d8208a331e1cb318dd5bd76951d2b8fc48ca38a69f5f4e4af1b6a9f8c6236915" dependencies = [ - "lazy_static", + "once_cell", ] [[package]] @@ -8999,11 +9058,12 @@ dependencies = [ [[package]] name = "time" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" +checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" dependencies = [ "libc", + "wasi 0.10.0+wasi-snapshot-preview1", "winapi 0.3.9", ] @@ -9019,7 +9079,7 @@ dependencies = [ "pbkdf2 0.4.0", "rand 0.7.3", "rustc-hash", - "sha2 0.9.2", + "sha2 0.9.3", "thiserror", "unicode-normalization", "zeroize", @@ -9036,9 +9096,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f" +checksum = "317cca572a0e89c3ce0ca1f1bdc9369547fe318a683418e42ac8f59d14701023" dependencies = [ "tinyvec_macros", ] @@ -9075,9 +9135,9 @@ dependencies = [ [[package]] name = "tokio" -version = "0.2.24" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099837d3464c16a808060bb3f02263b412f6fafcb5d01c533d309985fbeebe48" +checksum = "6703a273949a90131b290be1fe7b039d0fc884aa1935860dfcbe056f28cd8092" dependencies = [ "bytes 0.5.6", "fnv", @@ -9199,7 +9259,7 @@ checksum = "e12831b255bcfa39dc0436b01e19fea231a37db570686c06ee72c423479f889a" dependencies = [ "futures-core", "rustls 0.18.1", - "tokio 0.2.24", + "tokio 0.2.25", "webpki", ] @@ -9309,7 +9369,7 @@ dependencies = [ "futures-sink", "log", "pin-project-lite 0.1.11", - "tokio 0.2.24", + "tokio 0.2.25", ] [[package]] @@ -9323,9 +9383,9 @@ dependencies = [ [[package]] name = "tower-service" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" +checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" @@ -9348,7 +9408,7 @@ checksum = "80e0ccfc3378da0cce270c946b676a376943f5cd16aeba64568e7939806f4ada" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", ] [[package]] @@ -9415,9 +9475,9 @@ dependencies = [ [[package]] name = "trie-db" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc176c377eb24d652c9c69c832c832019011b6106182bf84276c66b66d5c9a6" +checksum = "ec051edf7f0fc9499a2cb0947652cab2148b9d7f61cee7605e312e9f970dacaf" dependencies = [ "hash-db", "hashbrown", @@ -9464,18 +9524,6 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" -[[package]] -name = "uint" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9db035e67dfaf7edd9aebfe8676afcd63eed53c8a4044fed514c8cccf1835177" -dependencies = [ - "byteorder", - "crunchy", - "rustc-hex", - "static_assertions", -] - [[package]] name = "uint" version = "0.9.0" @@ -9554,11 +9602,17 @@ name = "unsigned-varint" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7fdeedbf205afadfe39ae559b75c3240f24e257d0ca27e85f85cb82aa19ac35" + +[[package]] +name = "unsigned-varint" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35581ff83d4101e58b582e607120c7f5ffb17e632a980b1f38334d76b36908b2" dependencies = [ - "bytes 0.5.6", + "asynchronous-codec", + "bytes 1.0.1", "futures-io", "futures-util", - "futures_codec", ] [[package]] @@ -9590,6 +9644,15 @@ dependencies = [ "percent-encoding 2.1.0", ] +[[package]] +name = "value-bag" +version = "1.0.0-alpha.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b676010e055c99033117c2343b33a40a30b91fecd6c49055ac9cd2d6c305ab1" +dependencies = [ + "ctor", +] + [[package]] name = "vcpkg" version = "0.2.11" @@ -9666,15 +9729,15 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "wasi" -version = "0.10.1+wasi-snapshot-preview1" +version = "0.10.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93c6c3420963c5c64bca373b25e77acb562081b9bb4dd5bb864187742186cea9" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" [[package]] name = "wasm-bindgen" -version = "0.2.69" +version = "0.2.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd364751395ca0f68cafb17666eee36b63077fb5ecd972bbcd74c90c4bf736e" +checksum = "55c0f7123de74f0dab9b7d00fd614e7b19349cd1e2f5252bbe9b1754b59433be" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -9682,24 +9745,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.69" +version = "0.2.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1114f89ab1f4106e5b55e688b828c0ab0ea593a1ea7c094b141b14cbaaec2d62" +checksum = "7bc45447f0d4573f3d65720f636bbcc3dd6ce920ed704670118650bcd47764c7" dependencies = [ "bumpalo", "lazy_static", "log", "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.19" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fe9756085a84584ee9457a002b7cdfe0bfff169f45d2591d8be1345a6780e35" +checksum = "3de431a2910c86679c34283a33f66f4e4abd7e0aec27b6669060148872aadf94" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -9709,9 +9772,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.69" +version = "0.2.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6ac8995ead1f084a8dea1e65f194d0973800c7f571f6edd70adf06ecf77084" +checksum = "3b8853882eef39593ad4174dd26fc9865a64e84026d223f63bb2c42affcbba2c" dependencies = [ "quote 1.0.8", "wasm-bindgen-macro-support", @@ -9719,22 +9782,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.69" +version = "0.2.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a48c72f299d80557c7c62e37e7225369ecc0c963964059509fbafe917c7549" +checksum = "4133b5e7f2a531fa413b3a1695e925038a05a71cf67e87dafa295cb645a01385" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.69" +version = "0.2.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158" +checksum = "dd4945e4943ae02d15c13962b38a5b1e81eadd4b71214eee75af64a4d6a4fd64" [[package]] name = "wasm-gc-api" @@ -9954,27 +10017,27 @@ dependencies = [ [[package]] name = "wast" -version = "31.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9beb1f6b63f08c523a1e8e76fc70058af4d2a34ef1c504f56cdac7b6970228b9" +checksum = "c24a3ee360d01d60ed0a0f960ab76a6acce64348cdb0bf8699c2a866fad57c7c" dependencies = [ "leb128", ] [[package]] name = "wat" -version = "1.0.32" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0b3044da73d3b84a822d955afad356759b2fee454b6882722008dace80b68e" +checksum = "5e8f7f34773fa6318e8897283abf7941c1f250faae4e1a52f82df09c3bad7cce" dependencies = [ "wast", ] [[package]] name = "web-sys" -version = "0.3.46" +version = "0.3.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222b1ef9334f92a21d3fb53dc3fd80f30836959a90f9274a626d7e06315ba3c3" +checksum = "c40dc691fc48003eba817c38da7113c15698142da971298003cac3ef175680b3" dependencies = [ "js-sys", "wasm-bindgen", @@ -10010,8 +10073,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.8.27" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +version = "0.8.28" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "bitvec", "frame-executive", @@ -10084,6 +10147,16 @@ dependencies = [ "libc", ] +[[package]] +name = "which" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87c14ef7e1b8b8ecfc75d5eca37949410046e66f15d185c01d70824f1f8111ef" +dependencies = [ + "libc", + "thiserror", +] + [[package]] name = "winapi" version = "0.2.8" @@ -10151,7 +10224,7 @@ dependencies = [ [[package]] name = "xcm" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "parity-scale-codec", ] @@ -10159,7 +10232,7 @@ dependencies = [ [[package]] name = "xcm-builder" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "frame-support", "parity-scale-codec", @@ -10175,7 +10248,7 @@ dependencies = [ [[package]] name = "xcm-executor" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#a3e1113655acfa42ae210310de90df086933ce26" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" dependencies = [ "frame-support", "impl-trait-for-tuples 0.2.0", @@ -10191,7 +10264,7 @@ dependencies = [ [[package]] name = "xcm-handler" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#7277f7aae5c0b45543a53d823d0c6c1da2a3ab18" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#4b69b8d4bfa113fb3af2da34d1b71313bc43fb0c" dependencies = [ "cumulus-primitives", "frame-support", @@ -10232,7 +10305,7 @@ checksum = "c3f369ddb18862aba61aa49bf31e74d29f0f162dec753063200e1dc084345d16" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.8", - "syn 1.0.58", + "syn 1.0.60", "synstructure", ] diff --git a/node/Cargo.toml b/node/Cargo.toml index d85bb134..150be4e9 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -3,19 +3,19 @@ derive_more = '0.15.0' log = "0.4.13" codec = { package = 'parity-scale-codec', version = '1.0.0' } structopt = "0.3.8" -serde = { version = "1.0.101", features = ["derive"] } +serde = { version = "1.0.119", features = ["derive"] } hex-literal = "0.2.1" # RPC related dependencies jsonrpc-core = "15.1.0" [dependencies.frame-benchmarking] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.frame-benchmarking-cli] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.parachain-runtime] @@ -24,173 +24,178 @@ version = '2.0.0' [dependencies.pallet-transaction-payment-rpc] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sc-basic-authorship] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '0.8.0' [dependencies.sc-chain-spec] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sc-cli] features = ['wasmtime'] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '0.8.0' [dependencies.sc-client-api] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sc-consensus] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '0.8.0' [dependencies.sc-executor] features = ['wasmtime'] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '0.8.0' [dependencies.sc-keystore] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sc-rpc] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sc-rpc-api] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '0.8.0' [dependencies.sc-service] features = ['wasmtime'] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '0.8.0' +[dependencies.sc-telemetry] +git = 'https://github.com/paritytech/substrate.git' +branch = 'rococo-v1' +version = '2.0.0' + [dependencies.sc-transaction-pool] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sc-tracing] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sp-api] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sp-block-builder] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sp-blockchain] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sp-consensus] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '0.8.0' [dependencies.sp-core] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sp-inherents] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sp-runtime] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sp-timestamp] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sp-transaction-pool] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sp-trie] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.substrate-frame-rpc-system] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [build-dependencies.substrate-build-script-utils] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' # Cumulus dependencies [dependencies.cumulus-consensus] git = 'https://github.com/paritytech/cumulus.git' -branch = "rococo-v1" +branch = 'rococo-v1' [dependencies.cumulus-collator] git = 'https://github.com/paritytech/cumulus.git' -branch = "rococo-v1" +branch = 'rococo-v1' [dependencies.cumulus-network] git = 'https://github.com/paritytech/cumulus.git' -branch = "rococo-v1" +branch = 'rococo-v1' [dependencies.cumulus-primitives] git = 'https://github.com/paritytech/cumulus.git' -branch = "rococo-v1" +branch = 'rococo-v1' [dependencies.cumulus-service] git = 'https://github.com/paritytech/cumulus.git' -branch = "rococo-v1" +branch = 'rococo-v1' # Polkadot dependencies [dependencies.polkadot-primitives] git = "https://github.com/paritytech/polkadot" -branch = "rococo-v1" +branch = 'rococo-v1' [dependencies.polkadot-service] git = "https://github.com/paritytech/polkadot" -branch = "rococo-v1" +branch = 'rococo-v1' [dependencies.polkadot-cli] git = "https://github.com/paritytech/polkadot" -branch = "rococo-v1" +branch = 'rococo-v1' [dependencies.polkadot-test-service] git = "https://github.com/paritytech/polkadot" -branch = "rococo-v1" +branch = 'rococo-v1' [dependencies.polkadot-parachain] git = "https://github.com/paritytech/polkadot" -branch = "rococo-v1" +branch = 'rococo-v1' [[bin]] name = 'parachain-collator' diff --git a/node/src/cli.rs b/node/src/cli.rs index 6740e743..b89b8417 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -44,7 +44,7 @@ pub struct ExportGenesisStateCommand { pub output: Option, /// Id of the parachain this state is for. - #[structopt(long, default_value = "100")] + #[structopt(long, default_value = "200")] pub parachain_id: u32, /// Write output in binary. Default is to write in hex. diff --git a/node/src/command.rs b/node/src/command.rs index 24bbbc8b..a4a151cd 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -8,7 +8,7 @@ use log::info; use parachain_runtime::Block; use polkadot_parachain::primitives::AccountIdConversion; use sc_cli::{ - ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, InitLoggerParams, + ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli, }; use sc_service::{ @@ -192,10 +192,9 @@ pub fn run() -> Result<()> { }) } Some(Subcommand::ExportGenesisState(params)) => { - sc_cli::init_logger(InitLoggerParams { - tracing_receiver: sc_tracing::TracingReceiver::Log, - ..Default::default() - })?; + let mut builder = sc_cli::GlobalLoggerBuilder::new(""); + builder.with_profiling(sc_tracing::TracingReceiver::Log, ""); + let _ = builder.init(); let block: Block = generate_genesis_block(&load_spec( ¶ms.chain.clone().unwrap_or_default(), @@ -217,10 +216,9 @@ pub fn run() -> Result<()> { Ok(()) } Some(Subcommand::ExportGenesisWasm(params)) => { - sc_cli::init_logger(InitLoggerParams { - tracing_receiver: sc_tracing::TracingReceiver::Log, - ..Default::default() - })?; + let mut builder = sc_cli::GlobalLoggerBuilder::new(""); + builder.with_profiling(sc_tracing::TracingReceiver::Log, ""); + let _ = builder.init(); let raw_wasm_blob = extract_genesis_wasm(&cli.load_spec(¶ms.chain.clone().unwrap_or_default())?)?; @@ -267,9 +265,12 @@ pub fn run() -> Result<()> { let genesis_state = format!("0x{:?}", HexDisplay::from(&block.header().encode())); let task_executor = config.task_executor.clone(); - let polkadot_config = - SubstrateCli::create_configuration(&polkadot_cli, &polkadot_cli, task_executor) - .map_err(|err| format!("Relay chain argument error: {}", err))?; + let polkadot_config = SubstrateCli::create_configuration( + &polkadot_cli, + &polkadot_cli, + task_executor, + None, + ).map_err(|err| format!("Relay chain argument error: {}", err))?; let collator = cli.run.base.validator || cli.collator; info!("Parachain id: {:?}", id); @@ -344,7 +345,7 @@ impl CliConfiguration for RelayChainCli { self.base.base.prometheus_config(default_listen_port) } - fn init(&self) -> Result<()> { + fn init(&self) -> Result { unreachable!("PolkadotCli is never initialized; qed"); } diff --git a/node/src/service.rs b/node/src/service.rs index 484a7f29..0bfa84f4 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -32,13 +32,13 @@ pub fn new_partial( (), sp_consensus::import_queue::BasicQueue>, sc_transaction_pool::FullPool>, - (), + Option, >, sc_service::Error, > { let inherent_data_providers = sp_inherents::InherentDataProviders::new(); - let (client, backend, keystore_container, task_manager) = + let (client, backend, keystore_container, task_manager, telemetry_span) = sc_service::new_full_parts::(&config)?; let client = Arc::new(client); @@ -68,7 +68,7 @@ pub fn new_partial( transaction_pool, inherent_data_providers, select_chain: (), - other: (), + other: telemetry_span, }; Ok(params) @@ -77,7 +77,7 @@ pub fn new_partial( /// Start a node with the given parachain `Configuration` and relay chain `Configuration`. /// /// This is the actual implementation that is abstract over the executor and the runtime api. -#[sc_cli::prefix_logs_with("Parachain")] +#[sc_tracing::logging::prefix_logs_with("Parachain")] async fn start_node_impl( parachain_config: Configuration, collator_key: CollatorPair, @@ -108,6 +108,7 @@ where )?; let params = new_partial(¶chain_config)?; + let telemetry_span = params.other; params .inherent_data_providers .register_provider(sp_timestamp::InherentDataProvider) @@ -147,18 +148,18 @@ where client: client.clone(), transaction_pool: transaction_pool.clone(), task_manager: &mut task_manager, - telemetry_connection_sinks: Default::default(), config: parachain_config, keystore: params.keystore_container.sync_keystore(), backend: backend.clone(), network: network.clone(), network_status_sinks, system_rpc_tx, + telemetry_span, })?; let announce_block = { let network = network.clone(); - Arc::new(move |hash, data| network.announce_block(hash, data)) + Arc::new(move |hash, data| network.announce_block(hash, Some(data))) }; if validator { diff --git a/pallets/parachain-info/Cargo.toml b/pallets/parachain-info/Cargo.toml deleted file mode 100644 index 75f7a86f..00000000 --- a/pallets/parachain-info/Cargo.toml +++ /dev/null @@ -1,43 +0,0 @@ -[package] -authors = ["Parity Technologies "] -edition = "2018" -name = "parachain-info" -version = "0.1.0" - -[dependencies.codec] -default-features = false -features = ['derive'] -package = 'parity-scale-codec' -version = '1.3.6' - -[dependencies.serde] -features = ['derive'] -optional = true -version = '1.0.101' - -[dependencies.frame-support] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" -version = '2.0.0' - -[dependencies.frame-system] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" -version = '2.0.0' - -[dependencies.cumulus-primitives] -git = 'https://github.com/paritytech/cumulus.git' -branch = "rococo-v1" -default-features = false - -[features] -default = ["std"] -std = [ - "codec/std", - "serde", - "cumulus-primitives/std", - "frame-support/std", - "frame-system/std", -] diff --git a/pallets/parachain-info/src/lib.rs b/pallets/parachain-info/src/lib.rs deleted file mode 100644 index d5ed49e4..00000000 --- a/pallets/parachain-info/src/lib.rs +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2020 Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Cumulus is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Cumulus. If not, see . - -//! Minimal Pallet that injects a ParachainId into Runtime storage from - -#![cfg_attr(not(feature = "std"), no_std)] - -use frame_support::{decl_module, decl_storage, traits::Get}; - -use cumulus_primitives::ParaId; - -/// Configuration trait of this pallet. -pub trait Config: frame_system::Config {} - -impl Get for Module { - fn get() -> ParaId { - Self::parachain_id() - } -} - -decl_storage! { - trait Store for Module as ParachainUpgrade { - ParachainId get(fn parachain_id) config(): ParaId = 100.into(); - } -} - -decl_module! { - pub struct Module for enum Call where origin: T::Origin {} -} diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 588c9544..df05475e 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -14,31 +14,31 @@ version = '1.3.6' [dependencies.frame-support] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.frame-system] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dev-dependencies.sp-core] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dev-dependencies.sp-io] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dev-dependencies.sp-runtime] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [package] @@ -51,5 +51,6 @@ name = 'pallet-template' readme = 'README.md' repository = 'https://github.com/paritytech/substrate/' version = '2.0.0' + [package.metadata.docs.rs] targets = ['x86_64-unknown-linux-gnu'] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 4b012776..534fac28 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -1,6 +1,6 @@ [build-dependencies.substrate-wasm-builder] git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '3.0.0' [package] @@ -25,38 +25,38 @@ version = '1.3.6' default-features = false git = 'https://github.com/paritytech/substrate.git' optional = true -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.frame-executive] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.frame-support] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.frame-system] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.frame-system-benchmarking] default-features = false git = 'https://github.com/paritytech/substrate.git' optional = true -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.frame-system-rpc-runtime-api] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.hex-literal] @@ -66,115 +66,110 @@ version = '0.3.1' [dependencies.pallet-balances] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.pallet-randomness-collective-flip] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.pallet-sudo] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.pallet-timestamp] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.pallet-transaction-payment] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.pallet-transaction-payment-rpc-runtime-api] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.serde] features = ['derive'] optional = true -version = '1.0.101' +version = '1.0.119' [dependencies.sp-api] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sp-block-builder] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sp-core] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sp-inherents] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sp-io] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sp-offchain] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sp-runtime] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sp-session] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sp-std] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sp-transaction-pool] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' [dependencies.sp-version] default-features = false git = 'https://github.com/paritytech/substrate.git' -branch = "rococo-v1" +branch = 'rococo-v1' version = '2.0.0' -[dependencies.parachain-info] -default-features = false -package = 'parachain-info' -path = '../pallets/parachain-info' - [dependencies.template] default-features = false package = 'pallet-template' @@ -183,50 +178,51 @@ version = '2.0.0' # Cumulus dependencies -[dependencies.cumulus-runtime] -git = 'https://github.com/paritytech/cumulus.git' -branch = "rococo-v1" +[dependencies.parachain-info] default-features = false +git = 'https://github.com/paritytech/cumulus.git' +branch = 'rococo-v1' +version = '0.1.0' -[dependencies.cumulus-parachain-upgrade] +[dependencies.cumulus-runtime] git = 'https://github.com/paritytech/cumulus.git' -branch = "rococo-v1" +branch = 'rococo-v1' default-features = false -[dependencies.cumulus-primitives] +[dependencies.cumulus-parachain-system] git = 'https://github.com/paritytech/cumulus.git' -branch = "rococo-v1" +branch = 'rococo-v1' default-features = false -[dependencies.cumulus-message-broker] +[dependencies.cumulus-primitives] git = 'https://github.com/paritytech/cumulus.git' -branch = "rococo-v1" +branch = 'rococo-v1' default-features = false [dependencies.xcm-handler] git = 'https://github.com/paritytech/cumulus.git' -branch = "rococo-v1" +branch = 'rococo-v1' default-features = false # Polkadot dependencies [dependencies.polkadot-parachain] git = "https://github.com/paritytech/polkadot" -branch = "rococo-v1" +branch = 'rococo-v1' default-features = false [dependencies.xcm] git = "https://github.com/paritytech/polkadot" -branch = "rococo-v1" +branch = 'rococo-v1' default-features = false [dependencies.xcm-builder] git = "https://github.com/paritytech/polkadot" -branch = "rococo-v1" +branch = 'rococo-v1' default-features = false [dependencies.xcm-executor] git = "https://github.com/paritytech/polkadot" -branch = "rococo-v1" +branch = 'rococo-v1' default-features = false [features] @@ -265,8 +261,7 @@ std = [ "pallet-transaction-payment/std", "parachain-info/std", "cumulus-runtime/std", - "cumulus-parachain-upgrade/std", - "cumulus-message-broker/std", + "cumulus-parachain-system/std", "cumulus-primitives/std", "xcm/std", "xcm-builder/std", diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 2bd1cccd..265f49e2 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -101,7 +101,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("cumulus-test-parachain"), impl_name: create_runtime_str!("cumulus-test-parachain"), authoring_version: 1, - spec_version: 1, + spec_version: 100, impl_version: 1, apis: RUNTIME_API_VERSIONS, transaction_version: 1, @@ -113,7 +113,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { /// up by `pallet_aura` to implement `fn slot_duration()`. /// /// Change this to adjust the block time. -pub const MILLISECS_PER_BLOCK: u64 = 6000; +pub const MILLISECS_PER_BLOCK: u64 = 12000; pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK; @@ -271,13 +271,10 @@ impl pallet_sudo::Config for Runtime { type Call = Call; } -impl cumulus_parachain_upgrade::Config for Runtime { +impl cumulus_parachain_system::Config for Runtime { type Event = Event; type OnValidationData = (); type SelfParaId = parachain_info::Module; -} - -impl cumulus_message_broker::Config for Runtime { type DownwardMessageHandlers = (); type HrmpMessageHandlers = (); } @@ -332,8 +329,8 @@ impl Config for XcmConfig { impl xcm_handler::Config for Runtime { type Event = Event; type XcmExecutor = XcmExecutor; - type UpwardMessageSender = MessageBroker; - type HrmpMessageSender = MessageBroker; + type UpwardMessageSender = ParachainSystem; + type HrmpMessageSender = ParachainSystem; } /// Configure the pallet template in pallets/template. @@ -353,8 +350,7 @@ construct_runtime!( Balances: pallet_balances::{Module, Call, Storage, Config, Event}, Sudo: pallet_sudo::{Module, Call, Storage, Config, Event}, RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Module, Call, Storage}, - ParachainUpgrade: cumulus_parachain_upgrade::{Module, Call, Storage, Inherent, Event}, - MessageBroker: cumulus_message_broker::{Module, Storage, Call, Inherent}, + ParachainSystem: cumulus_parachain_system::{Module, Call, Storage, Inherent, Event}, TransactionPayment: pallet_transaction_payment::{Module, Storage}, ParachainInfo: parachain_info::{Module, Storage, Config}, XcmHandler: xcm_handler::{Module, Event, Origin}, From b4aa45adc67f1f8a5d61370af8bdfd9d317f1007 Mon Sep 17 00:00:00 2001 From: bwty Date: Wed, 17 Feb 2021 10:41:54 +0700 Subject: [PATCH 14/91] chore: update to use Rococov1 branch --- Cargo.lock | 1859 ++++++++++++++++++----------------- node/Cargo.toml | 68 +- node/src/chain_spec.rs | 4 +- node/src/command.rs | 7 +- node/src/service.rs | 15 +- pallets/template/Cargo.toml | 14 +- runtime/Cargo.toml | 70 +- runtime/src/lib.rs | 14 +- 8 files changed, 1065 insertions(+), 986 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ea2eec0f..e355d52f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -16,7 +16,7 @@ version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7" dependencies = [ - "gimli 0.23.0", + "gimli", ] [[package]] @@ -124,7 +124,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3" dependencies = [ - "num-traits 0.2.14", + "num-traits", ] [[package]] @@ -163,7 +163,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d0864d84b8e07b145449be9a8537db86bf9de5ce03b913214694643b4743502" dependencies = [ - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] @@ -248,13 +248,13 @@ dependencies = [ [[package]] name = "async-process" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8cea09c1fb10a317d1b5af8024eeba256d6554763e85ecd90ff8df31c7bbda" +checksum = "ef37b86e2fa961bae5a4d212708ea0154f904ce31d1a4a7f47e1bbc33a0c040b" dependencies = [ "async-io", "blocking", - "cfg-if 0.1.10", + "cfg-if 1.0.0", "event-listener", "futures-lite", "once_cell", @@ -303,7 +303,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d3a45e77e34375a7923b1e8febb049bb011f064714a8e17a1a616fef01da13d" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] @@ -320,6 +320,19 @@ dependencies = [ "pin-project-lite 0.2.4", ] +[[package]] +name = "asynchronous-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0de5164e5edbf51c45fb8c2d9664ae1c095cce1b265ecf7569093c0d66ef690" +dependencies = [ + "bytes 1.0.1", + "futures-sink", + "futures-util", + "memchr", + "pin-project-lite 0.2.4", +] + [[package]] name = "atomic" version = "0.5.0" @@ -366,6 +379,12 @@ dependencies = [ "rustc-demangle", ] +[[package]] +name = "base-x" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" + [[package]] name = "base58" version = "0.1.0" @@ -411,7 +430,7 @@ dependencies = [ "log", "peeking_take_while", "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "regex", "rustc-hash", "shlex", @@ -426,12 +445,14 @@ checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" [[package]] name = "bitvec" -version = "0.17.4" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41262f11d771fd4a61aa3ce019fca363b4b6c282fca9da2a31186d3965a47a5c" +checksum = "f5011ffc90248764d7005b0e10c7294f5aa1bd87d9dd7248f4ad475b347c294d" dependencies = [ - "either", + "funty", "radium", + "tap", + "wyz", ] [[package]] @@ -466,6 +487,32 @@ dependencies = [ "constant_time_eq", ] +[[package]] +name = "blake2s_simd" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e461a7034e85b211a4acb57ee2e6730b32912b06c08cc242243c39fc21ae6a2" +dependencies = [ + "arrayref", + "arrayvec 0.5.2", + "constant_time_eq", +] + +[[package]] +name = "blake3" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9ff35b701f3914bdb8fad3368d822c766ef2858b2583198e41639b936f09d3f" +dependencies = [ + "arrayref", + "arrayvec 0.5.2", + "cc", + "cfg-if 0.1.10", + "constant_time_eq", + "crypto-mac 0.8.0", + "digest 0.9.0", +] + [[package]] name = "block-buffer" version = "0.7.3" @@ -534,9 +581,9 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bstr" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "473fc6b38233f9af7baa94fb5852dca389e3d95b8e21c8e3719301462c5d9faf" +checksum = "a40b47ad93e1a5404e6c18dec46b628214fee441c70f4ab5d6942142cc268a3d" dependencies = [ "memchr", ] @@ -558,9 +605,9 @@ checksum = "099e596ef14349721d9016f6b80dd3419ea1bf289ab9b44df8e4dfd3a005d5d9" [[package]] name = "byte-slice-cast" -version = "0.3.5" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0a5e3906bcbf133e33c1d4d95afc664ad37fbdb9f6568d8043e7ea8c27d93d3" +checksum = "65c1bf4a04a88c54f589125563643d773f3254b5c38571395e2b591c693bbc81" [[package]] name = "byte-tools" @@ -686,11 +733,22 @@ checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" dependencies = [ "libc", "num-integer", - "num-traits 0.2.14", + "num-traits", "time", "winapi 0.3.9", ] +[[package]] +name = "cid" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d88f30b1e74e7063df5711496f3ee6e74a9735d62062242d70cddf77717f18e" +dependencies = [ + "multibase", + "multihash", + "unsigned-varint 0.5.1", +] + [[package]] name = "cipher" version = "0.2.5" @@ -772,6 +830,16 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" +[[package]] +name = "cpp_demangle" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44919ecaf6f99e8e737bc239408931c9a01e9a6c74814fee8242dd2506b65390" +dependencies = [ + "cfg-if 1.0.0", + "glob", +] + [[package]] name = "cpuid-bool" version = "0.1.2" @@ -786,25 +854,25 @@ checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" [[package]] name = "cranelift-bforest" -version = "0.66.0" +version = "0.69.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dcc286b052ee24a1e5a222e7c1125e6010ad35b0f248709b9b3737a8fedcfdf" +checksum = "4066fd63b502d73eb8c5fa6bcab9c7962b05cd580f6b149ee83a8e730d8ce7fb" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.66.0" +version = "0.69.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d9badfe36176cb653506091693bc2bb1970c9bddfcd6ec7fac404f7eaec6f38" +checksum = "1a54e4beb833a3c873a18a8fe735d73d732044004c7539a072c8faa35ccb0c60" dependencies = [ "byteorder", "cranelift-bforest", "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-entity", - "gimli 0.21.0", + "gimli", "log", "regalloc", "serde", @@ -815,9 +883,9 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.66.0" +version = "0.69.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3f460031861e4f4ad510be62b2ae50bba6cc886b598a36f9c0a970feab9598" +checksum = "c54cac7cacb443658d8f0ff36a3545822613fa202c946c0891897843bc933810" dependencies = [ "cranelift-codegen-shared", "cranelift-entity", @@ -825,24 +893,24 @@ dependencies = [ [[package]] name = "cranelift-codegen-shared" -version = "0.66.0" +version = "0.69.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76ad12409e922e7697cd0bdc7dc26992f64a77c31880dfe5e3c7722f4710206d" +checksum = "a109760aff76788b2cdaeefad6875a73c2b450be13906524f6c2a81e05b8d83c" [[package]] name = "cranelift-entity" -version = "0.66.0" +version = "0.69.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97cdc58972ea065d107872cfb9079f4c92ade78a8af85aaff519a65b5d13f71" +checksum = "3b044234aa32531f89a08b487630ddc6744696ec04c8123a1ad388de837f5de3" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.66.0" +version = "0.69.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ef419efb4f94ecc02e5d9fbcc910d2bb7f0040e2de570e63a454f883bc891d6" +checksum = "5452b3e4e97538ee5ef2cc071301c69a86c7adf2770916b9d04e9727096abd93" dependencies = [ "cranelift-codegen", "log", @@ -852,9 +920,9 @@ dependencies = [ [[package]] name = "cranelift-native" -version = "0.66.0" +version = "0.69.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e69d44d59826eef6794066ac2c0f4ad3975f02d97030c60dbc04e3886adf36e" +checksum = "f68035c10b2e80f26cc29c32fa824380877f38483504c2a47b54e7da311caaf3" dependencies = [ "cranelift-codegen", "raw-cpuid", @@ -863,17 +931,19 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.66.0" +version = "0.69.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "979df666b1304624abe99738e9e0e7c7479ee5523ba4b8b237df9ff49996acbb" +checksum = "a530eb9d1c95b3309deb24c3d179d8b0ba5837ed98914a429787c395f614949d" dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-frontend", + "itertools", "log", "serde", + "smallvec 1.6.1", "thiserror", - "wasmparser 0.59.0", + "wasmparser", ] [[package]] @@ -1016,11 +1086,11 @@ dependencies = [ [[package]] name = "ctor" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10bcb9d7dcbf7002aaffbb53eac22906b64cdcc127971dcc387d8eb7c95d5560" +checksum = "e8f45d9ad417bcef4817d614a501ab55cdd96a6fdb24f49aab89a54acfd66b19" dependencies = [ - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] @@ -1036,13 +1106,13 @@ dependencies = [ ] [[package]] -name = "cumulus-collator" +name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#4b69b8d4bfa113fb3af2da34d1b71313bc43fb0c" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#fad35c28b1f73aaeb25dedb46674b48774c092b4" dependencies = [ - "cumulus-network", - "cumulus-primitives", - "cumulus-runtime", + "cumulus-client-network", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", "futures 0.3.12", "log", "parity-scale-codec", @@ -1065,9 +1135,9 @@ dependencies = [ ] [[package]] -name = "cumulus-consensus" +name = "cumulus-client-consensus" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#4b69b8d4bfa113fb3af2da34d1b71313bc43fb0c" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#fad35c28b1f73aaeb25dedb46674b48774c092b4" dependencies = [ "futures 0.3.12", "parity-scale-codec", @@ -1087,20 +1157,16 @@ dependencies = [ ] [[package]] -name = "cumulus-network" +name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#4b69b8d4bfa113fb3af2da34d1b71313bc43fb0c" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#fad35c28b1f73aaeb25dedb46674b48774c092b4" dependencies = [ - "cumulus-primitives", "derive_more 0.99.11", "futures 0.3.12", "futures-timer 3.0.2", - "log", "parity-scale-codec", "parking_lot 0.10.2", "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-overseer", "polkadot-parachain", "polkadot-primitives", "polkadot-service", @@ -1111,23 +1177,53 @@ dependencies = [ "sp-consensus", "sp-core", "sp-runtime", + "tracing", +] + +[[package]] +name = "cumulus-client-service" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#fad35c28b1f73aaeb25dedb46674b48774c092b4" +dependencies = [ + "cumulus-client-collator", + "cumulus-client-consensus", + "cumulus-primitives-core", + "futures 0.3.12", + "parity-scale-codec", + "polkadot-overseer", + "polkadot-primitives", + "polkadot-service", + "sc-chain-spec", + "sc-client-api", + "sc-service", + "sc-tracing", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", + "tracing", ] [[package]] -name = "cumulus-parachain-system" +name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#4b69b8d4bfa113fb3af2da34d1b71313bc43fb0c" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#fad35c28b1f73aaeb25dedb46674b48774c092b4" dependencies = [ - "cumulus-primitives", - "cumulus-runtime", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", + "frame-executive", "frame-support", "frame-system", "hash-db", + "memory-db", "pallet-balances", "parity-scale-codec", "polkadot-parachain", "serde", "sp-core", + "sp-externalities", "sp-inherents", "sp-io", "sp-runtime", @@ -1135,68 +1231,52 @@ dependencies = [ "sp-std", "sp-trie", "sp-version", + "trie-db", ] [[package]] -name = "cumulus-primitives" +name = "cumulus-pallet-xcm-handler" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#4b69b8d4bfa113fb3af2da34d1b71313bc43fb0c" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#fad35c28b1f73aaeb25dedb46674b48774c092b4" dependencies = [ - "impl-trait-for-tuples 0.1.3", + "cumulus-primitives-core", + "frame-support", + "frame-system", "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-parachain", - "polkadot-primitives", - "sc-chain-spec", - "sp-core", - "sp-inherents", - "sp-runtime", "sp-std", - "sp-trie", + "xcm", ] [[package]] -name = "cumulus-runtime" +name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#4b69b8d4bfa113fb3af2da34d1b71313bc43fb0c" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#fad35c28b1f73aaeb25dedb46674b48774c092b4" dependencies = [ - "cumulus-primitives", - "frame-executive", - "hash-db", - "memory-db", + "impl-trait-for-tuples", "parity-scale-codec", + "polkadot-core-primitives", "polkadot-parachain", - "sp-core", - "sp-externalities", - "sp-io", + "polkadot-primitives", "sp-runtime", - "sp-state-machine", "sp-std", "sp-trie", - "trie-db", ] [[package]] -name = "cumulus-service" +name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#4b69b8d4bfa113fb3af2da34d1b71313bc43fb0c" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#fad35c28b1f73aaeb25dedb46674b48774c092b4" dependencies = [ - "cumulus-collator", - "cumulus-consensus", - "cumulus-primitives", - "futures 0.3.12", - "polkadot-overseer", - "polkadot-primitives", - "polkadot-service", + "cumulus-primitives-core", + "parity-scale-codec", "sc-client-api", - "sc-service", - "sc-tracing", "sp-api", - "sp-blockchain", - "sp-consensus", "sp-core", "sp-inherents", "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", "tracing", ] @@ -1232,6 +1312,26 @@ version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57" +[[package]] +name = "data-encoding-macro" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a94feec3d2ba66c0b6621bca8bc6f68415b1e5c69af3586fdd0af9fd9f29b17" +dependencies = [ + "data-encoding", + "data-encoding-macro-internal", +] + +[[package]] +name = "data-encoding-macro-internal" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f83e699727abca3c56e187945f303389590305ab2f0185ea445aa66e8d5f2a" +dependencies = [ + "data-encoding", + "syn 1.0.60", +] + [[package]] name = "derive_more" version = "0.15.0" @@ -1253,7 +1353,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41cb0e6161ad61ed084a36ba71fbba9e3ac5aee3606fb607fe08da6acbcf3d8c" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] @@ -1277,21 +1377,21 @@ dependencies = [ [[package]] name = "directories" -version = "2.0.2" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "551a778172a450d7fc12e629ca3b0428d00f6afa9a43da1b630d54604e97371c" +checksum = "f8fed639d60b58d0f53498ab13d26f621fd77569cc6edb031f4cc36a2ad9da0f" dependencies = [ - "cfg-if 0.1.10", "dirs-sys", ] [[package]] -name = "directories" -version = "3.0.1" +name = "directories-next" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8fed639d60b58d0f53498ab13d26f621fd77569cc6edb031f4cc36a2ad9da0f" +checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc" dependencies = [ - "dirs-sys", + "cfg-if 1.0.0", + "dirs-sys-next", ] [[package]] @@ -1301,7 +1401,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a" dependencies = [ "libc", - "redox_users", + "redox_users 0.3.5", + "winapi 0.3.9", +] + +[[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 0.4.0", "winapi 0.3.9", ] @@ -1332,7 +1443,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] @@ -1371,15 +1482,6 @@ version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" -[[package]] -name = "enum_primitive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180" -dependencies = [ - "num-traits 0.1.43", -] - [[package]] name = "enumflags2" version = "0.6.4" @@ -1396,7 +1498,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] @@ -1451,9 +1553,9 @@ dependencies = [ [[package]] name = "ethbloom" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a621dcebea74f2a6f2002d0a885c81ccf6cbdf86760183316a7722b5707ca4" +checksum = "779864b9c7f7ead1f092972c3257496c6a84b46dba2ce131dd8a282cb2cc5972" dependencies = [ "crunchy", "fixed-hash", @@ -1464,9 +1566,9 @@ dependencies = [ [[package]] name = "ethereum-types" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05dc5f0df4915fa6dff7f975a8366ecfaaa8959c74235469495153e7bb1b280e" +checksum = "f64b5df66a228d85e4b17e5d6c6aa43b0310898ffe8a85988c4c032357aaabfd" dependencies = [ "ethbloom", "fixed-hash", @@ -1508,7 +1610,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", "synstructure", ] @@ -1555,17 +1657,17 @@ dependencies = [ [[package]] name = "finality-grandpa" -version = "0.12.3" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8feb87a63249689640ac9c011742c33139204e3c134293d3054022276869133b" +checksum = "c6447e2f8178843749e8c8003206def83ec124a7859475395777a28b5338647c" dependencies = [ "either", "futures 0.3.12", - "futures-timer 2.0.2", + "futures-timer 3.0.2", "log", - "num-traits 0.2.14", + "num-traits", "parity-scale-codec", - "parking_lot 0.9.0", + "parking_lot 0.11.1", ] [[package]] @@ -1607,8 +1709,8 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "parity-scale-codec", ] @@ -1625,14 +1727,14 @@ dependencies = [ [[package]] name = "frame-benchmarking" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", "linregress", "parity-scale-codec", - "paste", + "paste 1.0.4", "sp-api", "sp-io", "sp-runtime", @@ -1643,8 +1745,8 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "Inflector", "chrono", @@ -1666,8 +1768,8 @@ dependencies = [ [[package]] name = "frame-executive" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", @@ -1682,8 +1784,8 @@ dependencies = [ [[package]] name = "frame-metadata" -version = "12.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "13.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "parity-scale-codec", "serde", @@ -1693,17 +1795,17 @@ dependencies = [ [[package]] name = "frame-support" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "bitflags", "frame-metadata", "frame-support-procedural", - "impl-trait-for-tuples 0.2.0", + "impl-trait-for-tuples", "log", "once_cell", "parity-scale-codec", - "paste", + "paste 1.0.4", "serde", "smallvec 1.6.1", "sp-arithmetic", @@ -1711,6 +1813,7 @@ dependencies = [ "sp-inherents", "sp-io", "sp-runtime", + "sp-staking", "sp-state-machine", "sp-std", "sp-tracing", @@ -1718,45 +1821,45 @@ dependencies = [ [[package]] name = "frame-support-procedural" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "Inflector", "frame-support-procedural-tools", "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] [[package]] name = "frame-support-procedural-tools" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] [[package]] name = "frame-support-procedural-tools-derive" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] [[package]] name = "frame-system" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", - "impl-trait-for-tuples 0.2.0", + "impl-trait-for-tuples", "parity-scale-codec", "serde", "sp-core", @@ -1768,8 +1871,8 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-benchmarking", "frame-support", @@ -1782,8 +1885,8 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "parity-scale-codec", "sp-api", @@ -1823,6 +1926,12 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" +[[package]] +name = "funty" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" + [[package]] name = "futures" version = "0.1.30" @@ -1927,7 +2036,7 @@ checksum = "c287d25add322d9f9abdcdc5927ca398917996600182178774032e9f8258fedd" dependencies = [ "proc-macro-hack", "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] @@ -2058,21 +2167,15 @@ dependencies = [ [[package]] name = "gimli" -version = "0.21.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c" +checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce" dependencies = [ "fallible-iterator", "indexmap", "stable_deref_trait", ] -[[package]] -name = "gimli" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce" - [[package]] name = "glob" version = "0.3.0" @@ -2364,9 +2467,9 @@ dependencies = [ [[package]] name = "hyper" -version = "0.13.9" +version = "0.13.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ad767baac13b44d4529fcf58ba2cd0995e36e7b435bc5b039de6f47e880dbf" +checksum = "8a6f157065790a3ed2f88679250419b5cdd96e714a0d65f7797fd337186e96bb" dependencies = [ "bytes 0.5.6", "futures-channel", @@ -2378,7 +2481,7 @@ dependencies = [ "httparse", "httpdate", "itoa", - "pin-project 1.0.4", + "pin-project 1.0.5", "socket2", "tokio 0.2.25", "tower-service", @@ -2395,7 +2498,7 @@ dependencies = [ "bytes 0.5.6", "ct-logs", "futures-util", - "hyper 0.13.9", + "hyper 0.13.10", "log", "rustls 0.18.1", "rustls-native-certs", @@ -2417,9 +2520,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" +checksum = "de910d521f7cc3135c4de8db1cb910e0b5ed1dc6f57c381cd07e8e661ce10094" dependencies = [ "matches", "unicode-bidi", @@ -2465,9 +2568,9 @@ dependencies = [ [[package]] name = "impl-codec" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1be51a921b067b0eaca2fad532d9400041561aa922221cc65f95a85641c6bf53" +checksum = "df170efa359aebdd5cb7fe78edcc67107748e4737bdca8a8fb40d15ea7a877ed" dependencies = [ "parity-scale-codec", ] @@ -2492,23 +2595,12 @@ dependencies = [ [[package]] name = "impl-trait-for-tuples" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef5550a42e3740a0e71f909d4c861056a284060af885ae7aa6242820f920d9d" -dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.60", -] - -[[package]] -name = "impl-trait-for-tuples" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f65a8ecf74feeacdab8d38cb129e550ca871cccaa7d1921d8636ecd75534903" +checksum = "d5dacb10c5b3bb92d46ba347505a9041e676bb20ad220101326bffb0c93031ee" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] @@ -2534,9 +2626,9 @@ dependencies = [ [[package]] name = "integer-encoding" -version = "1.1.6" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6104619c35f8835695e517cfb80fb7142139ee4b53f4d0fa4c8dca6e98fbc66" +checksum = "48dc51180a9b377fd75814d0cc02199c20f8e99433d6762f650d39cdbbd3b56f" [[package]] name = "integer-sqrt" @@ -2544,7 +2636,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770" dependencies = [ - "num-traits 0.2.14", + "num-traits", ] [[package]] @@ -2578,15 +2670,6 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135" -[[package]] -name = "itertools" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.9.0" @@ -2666,7 +2749,7 @@ checksum = "99a847f9ec7bb52149b2786a17c9cb260d6effc6b8eeb8c16b343a487a7563a3" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] @@ -2761,7 +2844,7 @@ dependencies = [ [[package]] name = "kusama-runtime" version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "bitvec", "frame-executive", @@ -2822,7 +2905,7 @@ dependencies = [ "sp-transaction-pool", "sp-version", "static_assertions", - "substrate-wasm-builder 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-wasm-builder 3.0.0", ] [[package]] @@ -2836,9 +2919,9 @@ dependencies = [ [[package]] name = "kvdb" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92312348daade49976a6dc59263ad39ed54f840aacb5664874f7c9aa16e5f848" +checksum = "8891bd853eff90e33024195d79d578dc984c82f9e0715fcd2b525a0c19d52811" dependencies = [ "parity-util-mem", "smallvec 1.6.1", @@ -2846,9 +2929,9 @@ dependencies = [ [[package]] name = "kvdb-memorydb" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "986052a8d16c692eaebe775391f9a3ac26714f3907132658500b601dec94c8c2" +checksum = "30a0da8e08caf08d384a620ec19bb6c9b85c84137248e202617fb91881f25912" dependencies = [ "kvdb", "parity-util-mem", @@ -2857,9 +2940,9 @@ dependencies = [ [[package]] name = "kvdb-rocksdb" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d92c36be64baba5ea549116ff0d7ffd445456a7be8aaee21ec05882b980cd11" +checksum = "34446c373ccc494c2124439281c198c7636ccdc2752c06722bbffd56d459c1e4" dependencies = [ "fs-swap", "kvdb", @@ -2893,9 +2976,9 @@ checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a" [[package]] name = "libc" -version = "0.2.85" +version = "0.2.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ccac4b00700875e6a07c6cde370d44d32fa01c5a65cdd2fca6858c479d28bb3" +checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c" [[package]] name = "libloading" @@ -2946,16 +3029,16 @@ dependencies = [ "libp2p-yamux", "parity-multiaddr", "parking_lot 0.11.1", - "pin-project 1.0.4", + "pin-project 1.0.5", "smallvec 1.6.1", "wasm-timer", ] [[package]] name = "libp2p-core" -version = "0.27.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad04d3cef6c1df366a6ab58c9cf8b06497699e335d83ac2174783946ff847d6" +checksum = "8a2d56aadc2c2bf22cd7797f86e56a65b5b3994a0136b65be3106938acae7a26" dependencies = [ "asn1_der", "bs58", @@ -2971,8 +3054,8 @@ dependencies = [ "multistream-select", "parity-multiaddr", "parking_lot 0.11.1", - "pin-project 1.0.4", - "prost 0.7.0", + "pin-project 1.0.5", + "prost", "prost-build", "rand 0.7.3", "ring", @@ -2980,7 +3063,7 @@ dependencies = [ "sha2 0.9.3", "smallvec 1.6.1", "thiserror", - "unsigned-varint 0.6.0", + "unsigned-varint 0.7.0", "void", "zeroize", ] @@ -2991,7 +3074,7 @@ version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4bc40943156e42138d22ed3c57ff0e1a147237742715937622a99b10fbe0156" dependencies = [ - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] @@ -3029,7 +3112,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "prost 0.7.0", + "prost", "prost-build", "rand 0.7.3", "smallvec 1.6.1", @@ -3041,7 +3124,7 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12451ba9493e87c91baf2a6dffce9ddf1fbc807a0861532d7cf477954f8ebbee" dependencies = [ - "asynchronous-codec", + "asynchronous-codec 0.5.0", "base64 0.13.0", "byteorder", "bytes 1.0.1", @@ -3051,7 +3134,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "prost 0.7.0", + "prost", "prost-build", "rand 0.7.3", "regex", @@ -3071,7 +3154,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "prost 0.7.0", + "prost", "prost-build", "smallvec 1.6.1", "wasm-timer", @@ -3079,12 +3162,12 @@ dependencies = [ [[package]] name = "libp2p-kad" -version = "0.28.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456f5de8e283d7800ca848b9b9a4e2a578b790bd8ae582b885e831353cf0e5df" +checksum = "cf3da6c9acbcc05f93235d201d7d45ef4e8b88a45d8836f98becd8b4d443f066" dependencies = [ "arrayvec 0.5.2", - "asynchronous-codec", + "asynchronous-codec 0.6.0", "bytes 1.0.1", "either", "fnv", @@ -3092,22 +3175,22 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "prost 0.7.0", + "prost", "prost-build", "rand 0.7.3", "sha2 0.9.3", "smallvec 1.6.1", "uint", - "unsigned-varint 0.6.0", + "unsigned-varint 0.7.0", "void", "wasm-timer", ] [[package]] name = "libp2p-mdns" -version = "0.28.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b974db63233fc0e199f4ede7794294aae285c96f4b6010f853eac4099ef08590" +checksum = "0e9e6374814d1b118d97ccabdfc975c8910bd16dc38a8bc058eeb08bf2080fe1" dependencies = [ "async-io", "data-encoding", @@ -3126,11 +3209,11 @@ dependencies = [ [[package]] name = "libp2p-mplex" -version = "0.27.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2705dc94b01ab9e3779b42a09bbf3712e637ed213e875c30face247291a85af0" +checksum = "350ce8b3923594aedabd5d6e3f875d058435052a29c3f32df378bc70d10be464" dependencies = [ - "asynchronous-codec", + "asynchronous-codec 0.6.0", "bytes 1.0.1", "futures 0.3.12", "libp2p-core", @@ -3139,7 +3222,7 @@ dependencies = [ "parking_lot 0.11.1", "rand 0.7.3", "smallvec 1.6.1", - "unsigned-varint 0.6.0", + "unsigned-varint 0.7.0", ] [[package]] @@ -3154,7 +3237,7 @@ dependencies = [ "lazy_static", "libp2p-core", "log", - "prost 0.7.0", + "prost", "prost-build", "rand 0.7.3", "sha2 0.9.3", @@ -3181,18 +3264,18 @@ dependencies = [ [[package]] name = "libp2p-plaintext" -version = "0.27.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e8c1ec305c9949351925cdc7196b9570f4330477f5e47fbf5bb340b57e26ed" +checksum = "9d58defcadb646ae4b033e130b48d87410bf76394dc3335496cae99dac803e61" dependencies = [ - "asynchronous-codec", + "asynchronous-codec 0.6.0", "bytes 1.0.1", "futures 0.3.12", "libp2p-core", "log", - "prost 0.7.0", + "prost", "prost-build", - "unsigned-varint 0.6.0", + "unsigned-varint 0.7.0", "void", ] @@ -3204,7 +3287,7 @@ checksum = "6ce3374f3b28162db9d3442c9347c4f14cb01e8290052615c7d341d40eae0599" dependencies = [ "futures 0.3.12", "log", - "pin-project 1.0.4", + "pin-project 1.0.5", "rand 0.7.3", "salsa20", "sha3", @@ -3212,9 +3295,9 @@ dependencies = [ [[package]] name = "libp2p-request-response" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d37637a4b33b5390322ccc068a33897d0aa541daf4fec99f6a7efbf37295346e" +checksum = "10e5552827c33d8326502682da73a0ba4bfa40c1b55b216af3c303f32169dd89" dependencies = [ "async-trait", "bytes 1.0.1", @@ -3226,15 +3309,15 @@ dependencies = [ "minicbor", "rand 0.7.3", "smallvec 1.6.1", - "unsigned-varint 0.6.0", + "unsigned-varint 0.7.0", "wasm-timer", ] [[package]] name = "libp2p-swarm" -version = "0.27.1" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4f89ebb4d8953bda12623e9871959fe728dea3bf6eae0421dc9c42dc821e488" +checksum = "7955b973e1fd2bd61ffd43ce261c1223f61f4aacd5bae362a924993f9a25fd98" dependencies = [ "either", "futures 0.3.12", @@ -3248,9 +3331,9 @@ dependencies = [ [[package]] name = "libp2p-tcp" -version = "0.27.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dbd3d7076a478ac5a6aca55e74bdc250ac539b95de09b9d09915e0b8d01a6b2" +checksum = "88a5aef80e519a6cb8e2663605142f97baaaea1a252eecbf8756184765f7471b" dependencies = [ "async-io", "futures 0.3.12", @@ -3414,9 +3497,9 @@ dependencies = [ [[package]] name = "lru" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3aae342b73d57ad0b8b364bd12584819f2c1fe9114285dfcf8b0722607671635" +checksum = "1f374d42cdfc1d7dbf3d3dec28afab2eb97ffbf43a3234d795b5986dbf4b90ba" dependencies = [ "hashbrown", ] @@ -3473,13 +3556,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" [[package]] -name = "memmap" -version = "0.7.0" +name = "memmap2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b" +checksum = "04e3e85b970d650e2ae6d70592474087051c11c54da7f7b4949725c5735fbcc6" dependencies = [ "libc", - "winapi 0.3.9", ] [[package]] @@ -3502,9 +3584,9 @@ dependencies = [ [[package]] name = "memory-db" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cbd2a22f201c03cc1706a727842490abfea17b7b53260358239828208daba3c" +checksum = "814bbecfc0451fc314eeea34f05bbcd5b98a7ad7af37faee088b86a1e633f1d4" dependencies = [ "hash-db", "hashbrown", @@ -3526,15 +3608,6 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71d96e3f3c0b6325d8ccd83c33b28acb183edcb6c67938ba104ec546854b0882" -[[package]] -name = "memrange" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc29ba65898edc4fdc252cb31cd3925f37c1a8ba25bb46eec883569984976530" -dependencies = [ - "rustc-serialize", -] - [[package]] name = "merlin" version = "2.0.1" @@ -3550,7 +3623,7 @@ dependencies = [ [[package]] name = "metered-channel" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -3583,7 +3656,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "130b9455e28a3f308f6579671816a6f2621e2e0cbf55dc2f886345bef699481e" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] @@ -3679,16 +3752,31 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0debeb9fcf88823ea64d64e4a815ab1643f33127d995978e099942ce38f25238" +[[package]] +name = "multibase" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b78c60039650ff12e140ae867ef5299a58e19dded4d334c849dc7177083667e2" +dependencies = [ + "base-x", + "data-encoding", + "data-encoding-macro", +] + [[package]] name = "multihash" version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dac63698b887d2d929306ea48b63760431ff8a24fac40ddb22f9c7f49fb7cab" dependencies = [ + "blake2b_simd", + "blake2s_simd", + "blake3", "digest 0.9.0", "generic-array 0.14.4", "multihash-derive", "sha2 0.9.3", + "sha3", "unsigned-varint 0.5.1", ] @@ -3701,7 +3789,7 @@ dependencies = [ "proc-macro-crate", "proc-macro-error", "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", "synstructure", ] @@ -3714,16 +3802,16 @@ checksum = "1255076139a83bb467426e7f8d0134968a8118844faa755985e077cf31850333" [[package]] name = "multistream-select" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10ddc0eb0117736f19d556355464fc87efc8ad98b29e3fd84f02531eb6e90840" +checksum = "5df70763c86c98487451f307e1b68b4100da9076f4c12146905fc2054277f4e8" dependencies = [ "bytes 1.0.1", "futures 0.3.12", "log", - "pin-project 1.0.4", + "pin-project 1.0.5", "smallvec 1.6.1", - "unsigned-varint 0.6.0", + "unsigned-varint 0.7.0", ] [[package]] @@ -3737,7 +3825,7 @@ dependencies = [ "matrixmultiply", "num-complex", "num-rational", - "num-traits 0.2.14", + "num-traits", "rand 0.7.3", "rand_distr", "simba", @@ -3755,12 +3843,12 @@ dependencies = [ [[package]] name = "nb-connect" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8123a81538e457d44b933a02faf885d3fe8408806b23fa700e8f01c6c3a98998" +checksum = "670361df1bc2399ee1ff50406a0d422587dd3bb0da596e1978fe8e05dabddf4f" dependencies = [ "libc", - "winapi 0.3.9", + "socket2", ] [[package]] @@ -3776,16 +3864,14 @@ dependencies = [ [[package]] name = "nix" -version = "0.10.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7fd5681d13fda646462cfbd4e5f2051279a89a544d50eb98c365b507246839f" +checksum = "b2ccba0cfe4fdf15982d1674c69b1fd80bad427d293849982668dfe454bd61f2" dependencies = [ "bitflags", - "bytes 0.4.12", - "cfg-if 0.1.10", - "gcc", + "cc", + "cfg-if 1.0.0", "libc", - "void", ] [[package]] @@ -3818,7 +3904,7 @@ checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" dependencies = [ "autocfg", "num-integer", - "num-traits 0.2.14", + "num-traits", ] [[package]] @@ -3828,7 +3914,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" dependencies = [ "autocfg", - "num-traits 0.2.14", + "num-traits", ] [[package]] @@ -3838,7 +3924,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" dependencies = [ "autocfg", - "num-traits 0.2.14", + "num-traits", ] [[package]] @@ -3850,16 +3936,7 @@ dependencies = [ "autocfg", "num-bigint", "num-integer", - "num-traits 0.2.14", -] - -[[package]] -name = "num-traits" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" -dependencies = [ - "num-traits 0.2.14", + "num-traits", ] [[package]] @@ -3884,19 +3961,12 @@ dependencies = [ [[package]] name = "object" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cbca9424c482ee628fa549d9c812e2cd22f1180b9222c9200fdfa6eb31aecb2" - -[[package]] -name = "object" -version = "0.20.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ab52be62400ca80aa00285d25253d7f7c437b7375c4de678f5405d3afe82ca5" +checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397" dependencies = [ "crc32fast", "indexmap", - "wasmparser 0.57.0", ] [[package]] @@ -3944,7 +4014,7 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7" dependencies = [ - "num-traits 0.2.14", + "num-traits", ] [[package]] @@ -3958,8 +4028,8 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", @@ -3974,12 +4044,12 @@ dependencies = [ [[package]] name = "pallet-authorship" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", - "impl-trait-for-tuples 0.2.0", + "impl-trait-for-tuples", "parity-scale-codec", "sp-authorship", "sp-inherents", @@ -3989,8 +4059,8 @@ dependencies = [ [[package]] name = "pallet-babe" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-benchmarking", "frame-support", @@ -4014,8 +4084,8 @@ dependencies = [ [[package]] name = "pallet-balances" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-benchmarking", "frame-support", @@ -4028,8 +4098,8 @@ dependencies = [ [[package]] name = "pallet-bounties" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", @@ -4042,8 +4112,8 @@ dependencies = [ [[package]] name = "pallet-collective" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", @@ -4057,8 +4127,8 @@ dependencies = [ [[package]] name = "pallet-democracy" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-benchmarking", "frame-support", @@ -4073,7 +4143,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", @@ -4086,8 +4156,8 @@ dependencies = [ [[package]] name = "pallet-grandpa" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-benchmarking", "frame-support", @@ -4107,8 +4177,8 @@ dependencies = [ [[package]] name = "pallet-identity" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4123,13 +4193,12 @@ dependencies = [ [[package]] name = "pallet-im-online" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", "pallet-authorship", - "pallet-session", "parity-scale-codec", "serde", "sp-application-crypto", @@ -4142,8 +4211,8 @@ dependencies = [ [[package]] name = "pallet-indices" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", @@ -4158,8 +4227,8 @@ dependencies = [ [[package]] name = "pallet-membership" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", @@ -4172,8 +4241,8 @@ dependencies = [ [[package]] name = "pallet-multisig" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", @@ -4187,8 +4256,8 @@ dependencies = [ [[package]] name = "pallet-nicks" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", @@ -4201,8 +4270,8 @@ dependencies = [ [[package]] name = "pallet-offences" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", @@ -4216,8 +4285,8 @@ dependencies = [ [[package]] name = "pallet-proxy" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", @@ -4231,8 +4300,8 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", @@ -4244,8 +4313,8 @@ dependencies = [ [[package]] name = "pallet-recovery" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "enumflags2", "frame-support", @@ -4259,8 +4328,8 @@ dependencies = [ [[package]] name = "pallet-scheduler" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-benchmarking", "frame-support", @@ -4274,12 +4343,12 @@ dependencies = [ [[package]] name = "pallet-session" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", - "impl-trait-for-tuples 0.1.3", + "impl-trait-for-tuples", "pallet-timestamp", "parity-scale-codec", "serde", @@ -4294,8 +4363,8 @@ dependencies = [ [[package]] name = "pallet-society" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", @@ -4308,8 +4377,8 @@ dependencies = [ [[package]] name = "pallet-staking" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", @@ -4328,19 +4397,19 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] [[package]] name = "pallet-sudo" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", @@ -4353,7 +4422,7 @@ dependencies = [ [[package]] name = "pallet-template" -version = "2.0.0" +version = "3.0.0" dependencies = [ "frame-support", "frame-system", @@ -4365,13 +4434,13 @@ dependencies = [ [[package]] name = "pallet-timestamp" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "impl-trait-for-tuples 0.2.0", + "impl-trait-for-tuples", "parity-scale-codec", "serde", "sp-inherents", @@ -4383,8 +4452,8 @@ dependencies = [ [[package]] name = "pallet-tips" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", @@ -4397,8 +4466,8 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", @@ -4413,8 +4482,8 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4430,8 +4499,8 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -4441,12 +4510,12 @@ dependencies = [ [[package]] name = "pallet-treasury" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", - "impl-trait-for-tuples 0.2.0", + "impl-trait-for-tuples", "pallet-balances", "parity-scale-codec", "serde", @@ -4456,8 +4525,8 @@ dependencies = [ [[package]] name = "pallet-utility" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-support", "frame-system", @@ -4471,8 +4540,8 @@ dependencies = [ [[package]] name = "pallet-vesting" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "enumflags2", "frame-support", @@ -4487,11 +4556,11 @@ dependencies = [ name = "parachain-collator" version = "2.0.0" dependencies = [ - "cumulus-collator", - "cumulus-consensus", - "cumulus-network", - "cumulus-primitives", - "cumulus-service", + "cumulus-client-collator", + "cumulus-client-consensus", + "cumulus-client-network", + "cumulus-client-service", + "cumulus-primitives-core", "derive_more 0.15.0", "frame-benchmarking", "frame-benchmarking-cli", @@ -4538,9 +4607,9 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#4b69b8d4bfa113fb3af2da34d1b71313bc43fb0c" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#fad35c28b1f73aaeb25dedb46674b48774c092b4" dependencies = [ - "cumulus-primitives", + "cumulus-primitives-core", "frame-support", "frame-system", "parity-scale-codec", @@ -4551,9 +4620,9 @@ dependencies = [ name = "parachain-runtime" version = "2.0.0" dependencies = [ - "cumulus-parachain-system", - "cumulus-primitives", - "cumulus-runtime", + "cumulus-pallet-parachain-system", + "cumulus-pallet-xcm-handler", + "cumulus-primitives-core", "frame-benchmarking", "frame-executive", "frame-support", @@ -4583,32 +4652,33 @@ dependencies = [ "sp-std", "sp-transaction-pool", "sp-version", - "substrate-wasm-builder 3.0.0 (git+https://github.com/paritytech/substrate.git?branch=rococo-v1)", + "substrate-wasm-builder 4.0.0", "xcm", "xcm-builder", "xcm-executor", - "xcm-handler", ] [[package]] name = "parity-db" -version = "0.1.2" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00d595e372d119261593297debbe4193811a4dc811d2a1ccbb8caaa6666ad7ab" +checksum = "111e193c96758d476d272093a853882668da17489f76bf4361b8decae0b6c515" dependencies = [ "blake2-rfc", "crc32fast", + "hex", "libc", "log", - "memmap", - "parking_lot 0.10.2", + "memmap2", + "parking_lot 0.11.1", + "rand 0.8.3", ] [[package]] name = "parity-multiaddr" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bfda2e46fc5e14122649e2645645a81ee5844e0fb2e727ef560cc71a8b2d801" +checksum = "d2c6805f98667a3828afb2ec2c396a8d610497e8d546f5447188aae47c5a79ec" dependencies = [ "arrayref", "bs58", @@ -4618,15 +4688,15 @@ dependencies = [ "percent-encoding 2.1.0", "serde", "static_assertions", - "unsigned-varint 0.6.0", + "unsigned-varint 0.7.0", "url 2.2.0", ] [[package]] name = "parity-scale-codec" -version = "1.3.6" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79602888a81ace83e3d1d4b2873286c1f5f906c84db667594e8db8da3506c383" +checksum = "75c823fdae1bb5ff5708ee61a62697e6296175dc671710876871c853f48592b3" dependencies = [ "arrayvec 0.5.2", "bitvec", @@ -4637,13 +4707,13 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "1.2.2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "198db82bb1c18fc00176004462dd809b2a6d851669550aa17af6dacd21ae0c14" +checksum = "9029e65297c7fd6d7013f0579e193ec2b34ae78eabca854c9417504ad8a2d214" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] @@ -4674,14 +4744,14 @@ dependencies = [ [[package]] name = "parity-util-mem" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f17f15cb05897127bf36a240085a1f0bbef7bce3024849eccf7f93f6171bc27" +checksum = "664a8c6b8e62d8f9f2f937e391982eb433ab285b4cd9545b342441e04a906e42" dependencies = [ "cfg-if 1.0.0", "ethereum-types", "hashbrown", - "impl-trait-for-tuples 0.2.0", + "impl-trait-for-tuples", "lru", "parity-util-mem-derive", "parking_lot 0.11.1", @@ -4769,7 +4839,7 @@ checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb" dependencies = [ "instant", "lock_api 0.4.2", - "parking_lot_core 0.8.2", + "parking_lot_core 0.8.3", ] [[package]] @@ -4803,14 +4873,14 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ccb628cad4f84851442432c60ad8e1f607e29752d0bf072cbd0baf28aa34272" +checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018" dependencies = [ "cfg-if 1.0.0", "instant", "libc", - "redox_syscall 0.1.57", + "redox_syscall 0.2.5", "smallvec 1.6.1", "winapi 0.3.9", ] @@ -4825,6 +4895,12 @@ dependencies = [ "proc-macro-hack", ] +[[package]] +name = "paste" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5d65c4d95931acda4498f675e332fcbdc9a06705cd07086c510e9b6009cd1c1" + [[package]] name = "paste-impl" version = "0.1.18" @@ -4905,7 +4981,7 @@ dependencies = [ "pest", "pest_meta", "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] @@ -4941,11 +5017,11 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b70b68509f17aa2857863b6fa00bf21fc93674c7a8893de2f469f6aa7ca2f2" +checksum = "96fa8ebb90271c4477f144354485b8068bd8f6b78b428b01ba892ca26caf0b63" dependencies = [ - "pin-project-internal 1.0.4", + "pin-project-internal 1.0.5", ] [[package]] @@ -4955,18 +5031,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] [[package]] name = "pin-project-internal" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caa25a6393f22ce819b0f50e0be89287292fda8d425be38ee0ca14c4931d9e71" +checksum = "758669ae3558c6f74bd2a18b41f7ac0b5a195aea6639d6a9b5e5d1ad5ba24c0b" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] @@ -4996,14 +5072,14 @@ checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" [[package]] name = "platforms" -version = "0.2.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feb3b2b1033b8a60b4da6ee470325f887758c95d5320f52f9ce0df055a55940e" +checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325" [[package]] name = "polkadot-approval-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "futures 0.3.12", "polkadot-node-network-protocol", @@ -5018,7 +5094,7 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "futures 0.3.12", "parity-scale-codec", @@ -5033,7 +5109,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "futures 0.3.12", "parity-scale-codec", @@ -5052,7 +5128,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -5072,7 +5148,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "frame-benchmarking-cli", "futures 0.3.12", @@ -5092,10 +5168,11 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "futures 0.3.12", "polkadot-node-network-protocol", + "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -5107,7 +5184,7 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "0.7.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -5119,7 +5196,7 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -5132,7 +5209,7 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "async-trait", "futures 0.3.12", @@ -5142,6 +5219,7 @@ dependencies = [ "polkadot-primitives", "sc-authority-discovery", "sc-network", + "strum", "tracing", "tracing-futures", ] @@ -5149,7 +5227,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "futures 0.3.12", "polkadot-erasure-coding", @@ -5166,7 +5244,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "bitvec", "futures 0.3.12", @@ -5188,7 +5266,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "bitvec", "futures 0.3.12", @@ -5207,7 +5285,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "futures 0.3.12", "polkadot-node-subsystem", @@ -5223,9 +5301,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-selection" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "futures 0.3.12", + "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -5238,7 +5317,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "futures 0.3.12", "parity-scale-codec", @@ -5255,7 +5334,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "futures 0.3.12", "polkadot-node-subsystem", @@ -5269,7 +5348,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-proposer" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -5293,7 +5372,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "bitvec", "futures 0.3.12", @@ -5309,7 +5388,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "futures 0.3.12", "memory-lru", @@ -5318,6 +5397,7 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "sp-api", + "sp-consensus-babe", "sp-core", "tracing", "tracing-futures", @@ -5326,7 +5406,7 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "async-std", "lazy_static", @@ -5342,14 +5422,15 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ + "futures 0.3.12", "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", "polkadot-primitives", "sc-network", - "strum 0.20.0", + "strum", "thiserror", "zstd", ] @@ -5357,22 +5438,25 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "futures 0.3.12", "parity-scale-codec", "polkadot-primitives", "polkadot-statement-table", - "sp-consensus-slots", + "schnorrkel", + "sp-application-crypto", + "sp-consensus-babe", "sp-consensus-vrf", "sp-core", "sp-runtime", + "thiserror", ] [[package]] name = "polkadot-node-subsystem" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "async-std", "async-trait", @@ -5384,7 +5468,7 @@ dependencies = [ "mick-jaeger", "parity-scale-codec", "parking_lot 0.11.1", - "pin-project 1.0.4", + "pin-project 1.0.5", "polkadot-node-jaeger", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -5402,15 +5486,16 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "async-trait", "futures 0.3.12", "futures-timer 3.0.2", "metered-channel", "parity-scale-codec", - "pin-project 1.0.4", + "pin-project 1.0.5", "polkadot-node-jaeger", + "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-primitives", @@ -5428,7 +5513,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "async-trait", "futures 0.3.12", @@ -5446,15 +5531,17 @@ dependencies = [ [[package]] name = "polkadot-parachain" version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "derive_more 0.99.11", "futures 0.3.12", + "libc", "log", "parity-scale-codec", "parity-util-mem", "parking_lot 0.11.1", "polkadot-core-primitives", + "raw_sync", "sc-executor", "serde", "shared_memory", @@ -5464,13 +5551,14 @@ dependencies = [ "sp-runtime", "sp-std", "sp-wasm-interface", + "static_assertions", "thiserror", ] [[package]] name = "polkadot-pov-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "futures 0.3.12", "polkadot-node-network-protocol", @@ -5485,7 +5573,7 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "bitvec", "frame-system", @@ -5513,7 +5601,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "jsonrpc-core", "pallet-transaction-payment-rpc", @@ -5543,7 +5631,7 @@ dependencies = [ [[package]] name = "polkadot-runtime" version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "bitvec", "frame-executive", @@ -5602,13 +5690,13 @@ dependencies = [ "sp-transaction-pool", "sp-version", "static_assertions", - "substrate-wasm-builder 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-wasm-builder 3.0.0", ] [[package]] name = "polkadot-runtime-common" version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "bitvec", "frame-support", @@ -5644,7 +5732,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "bitvec", "derive_more 0.99.11", @@ -5681,7 +5769,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "0.8.3" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "frame-benchmarking", "frame-system-rpc-runtime-api", @@ -5730,6 +5818,7 @@ dependencies = [ "sc-executor", "sc-finality-grandpa", "sc-finality-grandpa-warp-sync", + "sc-keystore", "sc-network", "sc-service", "sc-telemetry", @@ -5763,7 +5852,7 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "arrayvec 0.5.2", "futures 0.3.12", @@ -5781,7 +5870,7 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -5791,7 +5880,7 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "bitvec", "frame-executive", @@ -5839,13 +5928,13 @@ dependencies = [ "sp-std", "sp-transaction-pool", "sp-version", - "substrate-wasm-builder 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-wasm-builder 3.0.0", ] [[package]] name = "polkadot-test-service" version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "frame-benchmarking", "frame-system", @@ -5937,9 +6026,9 @@ checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" [[package]] name = "primitive-types" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3824ae2c5e27160113b9e029a10ec9e3f0237bad8029f69c7724393c9fdefd8" +checksum = "2415937401cb030a2a0a4d922483f945fa068f52a7dbb22ce0fe5f2b6f6adace" dependencies = [ "fixed-hash", "impl-codec", @@ -5965,7 +6054,7 @@ checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", "version_check", ] @@ -5977,7 +6066,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "version_check", ] @@ -6013,11 +6102,11 @@ dependencies = [ [[package]] name = "prometheus" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d70cf4412832bcac9cffe27906f4a66e450d323525e977168c70d1b36120ae" +checksum = "c8425533e7122f0c3cc7a37e6244b16ad3a2cc32ae7ac6276e2a75da0d9c200d" dependencies = [ - "cfg-if 0.1.10", + "cfg-if 1.0.0", "fnv", "lazy_static", "parking_lot 0.11.1", @@ -6025,16 +6114,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "prost" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce49aefe0a6144a45de32927c77bd2859a5f7677b55f220ae5b744e87389c212" -dependencies = [ - "bytes 0.5.6", - "prost-derive 0.6.1", -] - [[package]] name = "prost" version = "0.7.0" @@ -6042,7 +6121,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e6984d2f1a23009bd270b8bb56d0926810a3d483f59c987d77969e9d8e840b2" dependencies = [ "bytes 1.0.1", - "prost-derive 0.7.0", + "prost-derive", ] [[package]] @@ -6053,29 +6132,16 @@ checksum = "32d3ebd75ac2679c2af3a92246639f9fcc8a442ee420719cc4fe195b98dd5fa3" dependencies = [ "bytes 1.0.1", "heck", - "itertools 0.9.0", + "itertools", "log", "multimap", "petgraph", - "prost 0.7.0", + "prost", "prost-types", "tempfile", "which 4.0.2", ] -[[package]] -name = "prost-derive" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "537aa19b95acde10a12fec4301466386f757403de4cd4e5b4fa78fb5ecb18f72" -dependencies = [ - "anyhow", - "itertools 0.8.2", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.60", -] - [[package]] name = "prost-derive" version = "0.7.0" @@ -6083,9 +6149,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "169a15f3008ecb5160cba7d37bcd690a7601b6d30cfb87a117d45e59d52af5d4" dependencies = [ "anyhow", - "itertools 0.9.0", + "itertools", "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] @@ -6096,7 +6162,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b518d7cdd93dab1d1122cf07fa9a60771836c668dde9d9e2a139f957f0d9f1bb" dependencies = [ "bytes 1.0.1", - "prost 0.7.0", + "prost", +] + +[[package]] +name = "psm" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3abf49e5417290756acfd26501536358560c4a5cc4a0934d390939acb3e7083a" +dependencies = [ + "cc", ] [[package]] @@ -6144,18 +6219,18 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df" +checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" dependencies = [ "proc-macro2 1.0.24", ] [[package]] name = "radium" -version = "0.3.0" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "def50a86306165861203e7f84ecffbbdfdea79f0e51039b33de1e952358c47ac" +checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" [[package]] name = "rand" @@ -6202,7 +6277,7 @@ checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" dependencies = [ "libc", "rand_chacha 0.3.0", - "rand_core 0.6.1", + "rand_core 0.6.2", "rand_hc 0.3.0", ] @@ -6223,7 +6298,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" dependencies = [ "ppv-lite86", - "rand_core 0.6.1", + "rand_core 0.6.2", ] [[package]] @@ -6252,9 +6327,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c026d7df8b298d90ccbbc5190bd04d85e159eaf5576caeacf8741da93ccbd2e5" +checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" dependencies = [ "getrandom 0.2.2", ] @@ -6283,7 +6358,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" dependencies = [ - "rand_core 0.6.1", + "rand_core 0.6.2", ] [[package]] @@ -6297,15 +6372,28 @@ dependencies = [ [[package]] name = "raw-cpuid" -version = "7.0.4" +version = "8.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beb71f708fe39b2c5e98076204c3cc094ee5a4c12c4cdb119a2b72dc34164f41" +checksum = "1fdf7d9dbd43f3d81d94a49c1c3df73cc2b3827995147e6cf7f89d4ec5483e73" dependencies = [ "bitflags", "cc", "rustc_version", ] +[[package]] +name = "raw_sync" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a34bde3561f980a51c70495164200569a11662644fe5af017f0b5d7015688cc" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "nix", + "rand 0.8.3", + "winapi 0.3.9", +] + [[package]] name = "rawpointer" version = "0.2.1" @@ -6354,9 +6442,9 @@ checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" [[package]] name = "redox_syscall" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ec8ca9416c5ea37062b502703cd7fcb207736bc294f6e0cf367ac6fc234570" +checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9" dependencies = [ "bitflags", ] @@ -6372,6 +6460,16 @@ dependencies = [ "rust-argon2", ] +[[package]] +name = "redox_users" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" +dependencies = [ + "getrandom 0.2.2", + "redox_syscall 0.2.5", +] + [[package]] name = "reed-solomon-erasure" version = "4.0.2" @@ -6397,15 +6495,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c38e3aecd2b21cb3959637b883bb3714bc7e43f0268b9a29d3743ee3e55cdd2" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] [[package]] name = "regalloc" -version = "0.0.27" +version = "0.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ba8aaf5fe7cf307c6dbdaeed85478961d29e25e3bee5169e11b92fa9f027a8" +checksum = "571f7f397d61c4755285cd37853fe8e03271c243424a907415909379659381c5" dependencies = [ "log", "rustc-hash", @@ -6505,7 +6603,7 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "frame-executive", "frame-support", @@ -6549,7 +6647,7 @@ dependencies = [ "sp-std", "sp-transaction-pool", "sp-version", - "substrate-wasm-builder 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-wasm-builder 3.0.0", "xcm", "xcm-builder", "xcm-executor", @@ -6595,12 +6693,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" -[[package]] -name = "rustc-serialize" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" - [[package]] name = "rustc_version" version = "0.2.3" @@ -6694,8 +6786,8 @@ dependencies = [ [[package]] name = "sc-authority-discovery" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "async-trait", "derive_more 0.99.11", @@ -6705,7 +6797,7 @@ dependencies = [ "libp2p", "log", "parity-scale-codec", - "prost 0.7.0", + "prost", "prost-build", "rand 0.7.3", "sc-client-api", @@ -6722,8 +6814,8 @@ dependencies = [ [[package]] name = "sc-basic-authorship" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -6745,8 +6837,8 @@ dependencies = [ [[package]] name = "sc-block-builder" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -6762,10 +6854,10 @@ dependencies = [ [[package]] name = "sc-chain-spec" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ - "impl-trait-for-tuples 0.2.0", + "impl-trait-for-tuples", "parity-scale-codec", "sc-chain-spec-derive", "sc-consensus-babe", @@ -6783,19 +6875,19 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] [[package]] name = "sc-cli" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "chrono", "fdlimit", @@ -6832,8 +6924,8 @@ dependencies = [ [[package]] name = "sc-client-api" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "derive_more 0.99.11", "fnv", @@ -6866,8 +6958,8 @@ dependencies = [ [[package]] name = "sc-client-db" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "blake2-rfc", "hash-db", @@ -6896,8 +6988,8 @@ dependencies = [ [[package]] name = "sc-consensus" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "sc-client-api", "sp-blockchain", @@ -6907,8 +6999,8 @@ dependencies = [ [[package]] name = "sc-consensus-babe" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "derive_more 0.99.11", "fork-tree", @@ -6918,7 +7010,7 @@ dependencies = [ "merlin", "num-bigint", "num-rational", - "num-traits 0.2.14", + "num-traits", "parity-scale-codec", "parking_lot 0.11.1", "pdqselect", @@ -6938,6 +7030,7 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-babe", + "sp-consensus-slots", "sp-consensus-vrf", "sp-core", "sp-inherents", @@ -6952,8 +7045,8 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "derive_more 0.99.11", "futures 0.3.12", @@ -6976,8 +7069,8 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "fork-tree", "parity-scale-codec", @@ -6989,8 +7082,8 @@ dependencies = [ [[package]] name = "sc-consensus-slots" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -7015,8 +7108,8 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "log", "sc-client-api", @@ -7029,8 +7122,8 @@ dependencies = [ [[package]] name = "sc-executor" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "derive_more 0.99.11", "lazy_static", @@ -7058,8 +7151,8 @@ dependencies = [ [[package]] name = "sc-executor-common" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "derive_more 0.99.11", "parity-scale-codec", @@ -7074,8 +7167,8 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "log", "parity-scale-codec", @@ -7089,8 +7182,8 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "log", "parity-scale-codec", @@ -7107,10 +7200,11 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "derive_more 0.99.11", + "dyn-clone", "finality-grandpa", "fork-tree", "futures 0.3.12", @@ -7119,7 +7213,7 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.11.1", - "pin-project 0.4.27", + "pin-project 1.0.5", "rand 0.7.3", "sc-block-builder", "sc-client-api", @@ -7145,8 +7239,8 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "derive_more 0.99.11", "finality-grandpa", @@ -7169,16 +7263,16 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-warp-sync" -version = "0.8.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "derive_more 0.99.11", "futures 0.3.12", "log", - "num-traits 0.2.14", + "num-traits", "parity-scale-codec", "parking_lot 0.11.1", - "prost 0.6.1", + "prost", "sc-client-api", "sc-finality-grandpa", "sc-network", @@ -7189,8 +7283,8 @@ dependencies = [ [[package]] name = "sc-informant" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "ansi_term 0.12.1", "futures 0.3.12", @@ -7207,8 +7301,8 @@ dependencies = [ [[package]] name = "sc-keystore" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "async-trait", "derive_more 0.99.11", @@ -7227,8 +7321,8 @@ dependencies = [ [[package]] name = "sc-light" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "hash-db", "lazy_static", @@ -7246,15 +7340,16 @@ dependencies = [ [[package]] name = "sc-network" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "async-std", "async-trait", - "asynchronous-codec", + "asynchronous-codec 0.5.0", "bitflags", "bs58", "bytes 1.0.1", + "cid", "derive_more 0.99.11", "either", "erased-serde", @@ -7272,8 +7367,8 @@ dependencies = [ "nohash-hasher", "parity-scale-codec", "parking_lot 0.11.1", - "pin-project 0.4.27", - "prost 0.7.0", + "pin-project 1.0.5", + "prost", "prost-build", "rand 0.7.3", "sc-block-builder", @@ -7298,8 +7393,8 @@ dependencies = [ [[package]] name = "sc-network-gossip" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -7314,14 +7409,14 @@ dependencies = [ [[package]] name = "sc-offchain" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "bytes 0.5.6", "fnv", "futures 0.3.12", "futures-timer 3.0.2", - "hyper 0.13.9", + "hyper 0.13.10", "hyper-rustls", "log", "num_cpus", @@ -7341,8 +7436,8 @@ dependencies = [ [[package]] name = "sc-peerset" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "futures 0.3.12", "libp2p", @@ -7354,8 +7449,8 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -7363,8 +7458,8 @@ dependencies = [ [[package]] name = "sc-rpc" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "futures 0.3.12", "hash-db", @@ -7397,8 +7492,8 @@ dependencies = [ [[package]] name = "sc-rpc-api" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "derive_more 0.99.11", "futures 0.3.12", @@ -7421,8 +7516,8 @@ dependencies = [ [[package]] name = "sc-rpc-server" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "futures 0.1.30", "jsonrpc-core", @@ -7439,10 +7534,10 @@ dependencies = [ [[package]] name = "sc-service" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ - "directories 3.0.1", + "directories", "exit-future", "futures 0.1.30", "futures 0.3.12", @@ -7455,7 +7550,7 @@ dependencies = [ "parity-scale-codec", "parity-util-mem", "parking_lot 0.11.1", - "pin-project 0.4.27", + "pin-project 1.0.5", "rand 0.7.3", "sc-block-builder", "sc-chain-spec", @@ -7502,8 +7597,8 @@ dependencies = [ [[package]] name = "sc-state-db" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "log", "parity-scale-codec", @@ -7517,8 +7612,8 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" -version = "0.8.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -7537,15 +7632,15 @@ dependencies = [ [[package]] name = "sc-telemetry" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "chrono", "futures 0.3.12", "libp2p", "log", "parking_lot 0.11.1", - "pin-project 0.4.27", + "pin-project 1.0.5", "rand 0.7.3", "serde", "serde_json", @@ -7559,8 +7654,8 @@ dependencies = [ [[package]] name = "sc-tracing" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "ansi_term 0.12.1", "atty", @@ -7587,19 +7682,19 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] [[package]] name = "sc-transaction-graph" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "derive_more 0.99.11", "futures 0.3.12", @@ -7620,8 +7715,8 @@ dependencies = [ [[package]] name = "sc-transaction-pool" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "futures 0.3.12", "futures-diagnose", @@ -7701,7 +7796,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] @@ -7806,15 +7901,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] [[package]] name = "serde_json" -version = "1.0.61" +version = "1.0.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fceb2595057b6891a4ee808f70054bd2d12f0e97f1cbb78689b59f676df325a" +checksum = "ea1c6153794552ea7cf7cf63b1231a25de00ec90db326ba6264440fa08e31486" dependencies = [ "itoa", "ryu", @@ -7835,9 +7930,9 @@ dependencies = [ [[package]] name = "sha-1" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4b312c3731e3fe78a185e6b9b911a7aa715b8e31cce117975219aab2acf285d" +checksum = "dfebf75d25bd900fd1e7d11501efab59bc846dbc76196839663e6637bba9f25f" dependencies = [ "block-buffer 0.9.0", "cfg-if 1.0.0", @@ -7894,34 +7989,18 @@ dependencies = [ [[package]] name = "shared_memory" -version = "0.10.0" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf3ab0cdff84d6c66fc9e268010ea6508e58ee942575afb66f2cf194bb218bb4" +checksum = "b854a362375dfe8ab12ea8a98228040d37293c988f85fbac9fa0f83336387966" dependencies = [ "cfg-if 0.1.10", - "enum_primitive", "libc", - "log", - "memrange", "nix", - "quick-error 1.2.3", - "rand 0.4.6", - "shared_memory_derive", - "theban_interval_tree", + "quick-error 2.0.0", + "rand 0.8.3", "winapi 0.3.9", ] -[[package]] -name = "shared_memory_derive" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "767a14f1304be2f0b04e69860252f8ae9cfae0afaa9cc07b675147c43425dd3a" -dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "syn 0.15.44", -] - [[package]] name = "shlex" version = "0.1.1" @@ -7930,9 +8009,9 @@ checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" [[package]] name = "signal-hook" -version = "0.1.17" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e31d442c16f047a671b5a71e2161d6e68814012b7f5379d269ebd915fac2729" +checksum = "780f5e3fe0c66f67197236097d89de1e86216f1f6fdeaf47c442f854ab46c240" dependencies = [ "libc", "signal-hook-registry", @@ -7961,8 +8040,8 @@ checksum = "fb931b1367faadea6b1ab1c306a860ec17aaa5fa39f367d0c744e69d971a1fb2" dependencies = [ "approx", "num-complex", - "num-traits 0.2.14", - "paste", + "num-traits", + "paste 0.1.18", ] [[package]] @@ -8028,13 +8107,13 @@ dependencies = [ "httparse", "log", "rand 0.7.3", - "sha-1 0.9.3", + "sha-1 0.9.4", ] [[package]] name = "sp-allocator" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "log", "sp-core", @@ -8045,8 +8124,8 @@ dependencies = [ [[package]] name = "sp-api" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "hash-db", "parity-scale-codec", @@ -8061,20 +8140,20 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "blake2-rfc", "proc-macro-crate", "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] [[package]] name = "sp-application-crypto" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "parity-scale-codec", "serde", @@ -8085,11 +8164,11 @@ dependencies = [ [[package]] name = "sp-arithmetic" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "integer-sqrt", - "num-traits 0.2.14", + "num-traits", "parity-scale-codec", "serde", "sp-debug-derive", @@ -8098,8 +8177,8 @@ dependencies = [ [[package]] name = "sp-authority-discovery" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "parity-scale-codec", "sp-api", @@ -8110,8 +8189,8 @@ dependencies = [ [[package]] name = "sp-authorship" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "parity-scale-codec", "sp-inherents", @@ -8121,8 +8200,8 @@ dependencies = [ [[package]] name = "sp-block-builder" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "parity-scale-codec", "sp-api", @@ -8133,8 +8212,8 @@ dependencies = [ [[package]] name = "sp-blockchain" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "futures 0.3.12", "log", @@ -8151,8 +8230,8 @@ dependencies = [ [[package]] name = "sp-chain-spec" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "serde", "serde_json", @@ -8160,8 +8239,8 @@ dependencies = [ [[package]] name = "sp-consensus" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "futures 0.3.12", "futures-timer 3.0.2", @@ -8186,8 +8265,8 @@ dependencies = [ [[package]] name = "sp-consensus-babe" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "merlin", "parity-scale-codec", @@ -8206,17 +8285,18 @@ dependencies = [ [[package]] name = "sp-consensus-slots" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "parity-scale-codec", + "sp-arithmetic", "sp-runtime", ] [[package]] name = "sp-consensus-vrf" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -8227,8 +8307,8 @@ dependencies = [ [[package]] name = "sp-core" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "base58", "blake2-rfc", @@ -8244,7 +8324,7 @@ dependencies = [ "libsecp256k1", "log", "merlin", - "num-traits 0.2.14", + "num-traits", "parity-scale-codec", "parity-util-mem", "parking_lot 0.11.1", @@ -8271,8 +8351,8 @@ dependencies = [ [[package]] name = "sp-database" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "kvdb", "parking_lot 0.11.1", @@ -8280,18 +8360,18 @@ dependencies = [ [[package]] name = "sp-debug-derive" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] [[package]] name = "sp-externalities" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "environmental", "parity-scale-codec", @@ -8301,8 +8381,8 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "finality-grandpa", "log", @@ -8318,8 +8398,8 @@ dependencies = [ [[package]] name = "sp-inherents" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "parity-scale-codec", "parking_lot 0.11.1", @@ -8330,8 +8410,8 @@ dependencies = [ [[package]] name = "sp-io" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "futures 0.3.12", "hash-db", @@ -8354,19 +8434,19 @@ dependencies = [ [[package]] name = "sp-keyring" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "lazy_static", "sp-core", "sp-runtime", - "strum 0.16.0", + "strum", ] [[package]] name = "sp-keystore" -version = "0.8.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "async-trait", "derive_more 0.99.11", @@ -8382,8 +8462,8 @@ dependencies = [ [[package]] name = "sp-npos-elections" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "parity-scale-codec", "serde", @@ -8395,19 +8475,19 @@ dependencies = [ [[package]] name = "sp-npos-elections-compact" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] [[package]] name = "sp-offchain" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "sp-api", "sp-core", @@ -8416,16 +8496,16 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "backtrace", ] [[package]] name = "sp-rpc" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "serde", "sp-core", @@ -8433,16 +8513,16 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "either", "hash256-std-hasher", - "impl-trait-for-tuples 0.2.0", + "impl-trait-for-tuples", "log", "parity-scale-codec", "parity-util-mem", - "paste", + "paste 1.0.4", "rand 0.7.3", "serde", "sp-application-crypto", @@ -8454,10 +8534,10 @@ dependencies = [ [[package]] name = "sp-runtime-interface" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ - "impl-trait-for-tuples 0.2.0", + "impl-trait-for-tuples", "parity-scale-codec", "primitive-types", "sp-externalities", @@ -8471,20 +8551,20 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "Inflector", "proc-macro-crate", "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] [[package]] name = "sp-serializer" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "serde", "serde_json", @@ -8492,8 +8572,8 @@ dependencies = [ [[package]] name = "sp-session" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "parity-scale-codec", "sp-api", @@ -8505,8 +8585,8 @@ dependencies = [ [[package]] name = "sp-staking" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -8515,12 +8595,12 @@ dependencies = [ [[package]] name = "sp-state-machine" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "hash-db", "log", - "num-traits 0.2.14", + "num-traits", "parity-scale-codec", "parking_lot 0.11.1", "rand 0.7.3", @@ -8537,13 +8617,13 @@ dependencies = [ [[package]] name = "sp-std" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" [[package]] name = "sp-storage" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "impl-serde", "parity-scale-codec", @@ -8555,8 +8635,8 @@ dependencies = [ [[package]] name = "sp-tasks" -version = "2.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "log", "sp-core", @@ -8568,10 +8648,10 @@ dependencies = [ [[package]] name = "sp-timestamp" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ - "impl-trait-for-tuples 0.2.0", + "impl-trait-for-tuples", "parity-scale-codec", "sp-api", "sp-inherents", @@ -8582,8 +8662,8 @@ dependencies = [ [[package]] name = "sp-tracing" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "log", "parity-scale-codec", @@ -8595,8 +8675,8 @@ dependencies = [ [[package]] name = "sp-transaction-pool" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "derive_more 0.99.11", "futures 0.3.12", @@ -8611,8 +8691,8 @@ dependencies = [ [[package]] name = "sp-trie" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "hash-db", "memory-db", @@ -8625,8 +8705,8 @@ dependencies = [ [[package]] name = "sp-utils" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "futures 0.3.12", "futures-core", @@ -8637,8 +8717,8 @@ dependencies = [ [[package]] name = "sp-version" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "impl-serde", "parity-scale-codec", @@ -8649,10 +8729,10 @@ dependencies = [ [[package]] name = "sp-wasm-interface" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ - "impl-trait-for-tuples 0.2.0", + "impl-trait-for-tuples", "parity-scale-codec", "sp-std", "wasmi", @@ -8697,9 +8777,9 @@ dependencies = [ [[package]] name = "streamunordered" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9394ee1338fee8370bee649f8a7170b3a56917903a0956467ad192dcf8699ca" +checksum = "e68576e37c8a37f5372796df15202190349dd80e7ed6a79544c0232213e90e35" dependencies = [ "futures-core", "futures-sink", @@ -8742,38 +8822,17 @@ dependencies = [ "heck", "proc-macro-error", "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] -[[package]] -name = "strum" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6138f8f88a16d90134763314e3fc76fa3ed6a7db4725d6acf9a3ef95a3188d22" -dependencies = [ - "strum_macros 0.16.0", -] - [[package]] name = "strum" version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7318c509b5ba57f18533982607f24070a55d353e90d4cae30c467cdb2ad5ac5c" dependencies = [ - "strum_macros 0.20.1", -] - -[[package]] -name = "strum_macros" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0054a7df764039a6cd8592b9de84be4bec368ff081d203a7d5371cbfa8e65c81" -dependencies = [ - "heck", - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.60", + "strum_macros", ] [[package]] @@ -8784,7 +8843,7 @@ checksum = "ee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149" dependencies = [ "heck", "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] @@ -8803,16 +8862,16 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "platforms", ] [[package]] name = "substrate-frame-rpc-system" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.12", @@ -8834,13 +8893,13 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" -version = "0.8.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "async-std", "derive_more 0.99.11", "futures-util", - "hyper 0.13.9", + "hyper 0.13.10", "log", "prometheus", "tokio 0.2.25", @@ -8849,7 +8908,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "futures 0.1.30", "futures 0.3.12", @@ -8891,8 +8950,8 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#a0e44efcde6f1adbb4df17f068cfff52593063ad" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" dependencies = [ "ansi_term 0.12.1", "atty", @@ -8934,7 +8993,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "unicode-xid 0.2.1", ] @@ -8945,7 +9004,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", "unicode-xid 0.2.1", ] @@ -8956,11 +9015,17 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "target-lexicon" -version = "0.10.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab0e7238dcc7b40a7be719a25365910f6807bd864f4cce6b2e6b873658e2b19d" +checksum = "4ee5a98e506fb7231a304c3a1bd7c132a55016cf65001e0282480665870dfcb9" [[package]] name = "tempfile" @@ -8971,7 +9036,7 @@ dependencies = [ "cfg-if 1.0.0", "libc", "rand 0.8.3", - "redox_syscall 0.2.4", + "redox_syscall 0.2.5", "remove_dir_all", "winapi 0.3.9", ] @@ -8994,17 +9059,6 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "theban_interval_tree" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7b42a5385db9a651628091edcd1d58ac9cb1c92327d8cd2a29bf8e35bdfe4ea" -dependencies = [ - "memrange", - "rand 0.3.23", - "time", -] - [[package]] name = "thiserror" version = "1.0.23" @@ -9021,15 +9075,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] [[package]] name = "thread_local" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8208a331e1cb318dd5bd76951d2b8fc48ca38a69f5f4e4af1b6a9f8c6236915" +checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd" dependencies = [ "once_cell", ] @@ -9389,9 +9443,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3" +checksum = "f7d40a22fd029e33300d8d89a5cc8ffce18bb7c587662f54629e94c9de5487f3" dependencies = [ "cfg-if 1.0.0", "log", @@ -9402,12 +9456,12 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e0ccfc3378da0cce270c946b676a376943f5cd16aeba64568e7939806f4ada" +checksum = "43f080ea7e4107844ef4766459426fa2d5c1ada2e47edba05dc7fa99d9629f47" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", ] @@ -9556,9 +9610,9 @@ dependencies = [ [[package]] name = "unicode-normalization" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606" +checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef" dependencies = [ "tinyvec", ] @@ -9609,7 +9663,19 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35581ff83d4101e58b582e607120c7f5ffb17e632a980b1f38334d76b36908b2" dependencies = [ - "asynchronous-codec", + "asynchronous-codec 0.5.0", + "bytes 1.0.1", + "futures-io", + "futures-util", +] + +[[package]] +name = "unsigned-varint" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f8d425fafb8cd76bc3f22aace4af471d3156301d7508f2107e98fbeae10bc7f" +dependencies = [ + "asynchronous-codec 0.6.0", "bytes 1.0.1", "futures-io", "futures-util", @@ -9639,7 +9705,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e" dependencies = [ "form_urlencoded", - "idna 0.2.0", + "idna 0.2.1", "matches", "percent-encoding 2.1.0", ] @@ -9753,7 +9819,7 @@ dependencies = [ "lazy_static", "log", "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", "wasm-bindgen-shared", ] @@ -9776,7 +9842,7 @@ version = "0.2.70" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b8853882eef39593ad4174dd26fc9865a64e84026d223f63bb2c42affcbba2c" dependencies = [ - "quote 1.0.8", + "quote 1.0.9", "wasm-bindgen-macro-support", ] @@ -9787,7 +9853,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4133b5e7f2a531fa413b3a1695e925038a05a71cf67e87dafa295cb645a01385" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", "wasm-bindgen-backend", "wasm-bindgen-shared", @@ -9834,7 +9900,7 @@ dependencies = [ "libc", "memory_units", "num-rational", - "num-traits 0.2.14", + "num-traits", "parity-wasm 0.41.0", "wasmi-validation", ] @@ -9850,33 +9916,31 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.57.0" +version = "0.71.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32fddd575d477c6e9702484139cf9f23dcd554b06d185ed0f56c857dd3a47aa6" - -[[package]] -name = "wasmparser" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a950e6a618f62147fd514ff445b2a0b53120d382751960797f85f058c7eda9b9" +checksum = "89a30c99437829ede826802bfcf28500cf58df00e66cb9114df98813bc145ff1" [[package]] name = "wasmtime" -version = "0.19.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd3c4f449382779ef6e0a7c3ec6752ae614e20a42e4100000c3efdc973100e2" +checksum = "7426055cb92bd9a1e9469b48154d8d6119cd8c498c8b70284e420342c05dc45d" dependencies = [ "anyhow", "backtrace", - "cfg-if 0.1.10", - "lazy_static", + "bincode", + "cfg-if 1.0.0", + "cpp_demangle", + "indexmap", "libc", "log", "region", "rustc-demangle", + "serde", "smallvec 1.6.1", "target-lexicon", - "wasmparser 0.59.0", + "wasmparser", + "wasmtime-cache", "wasmtime-environ", "wasmtime-jit", "wasmtime-profiling", @@ -9885,74 +9949,101 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "wasmtime-cache" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c01d9287e36921e46f5887a47007824ae5dbb9b7517a2d565660ab4471478709" +dependencies = [ + "anyhow", + "base64 0.13.0", + "bincode", + "directories-next", + "errno", + "file-per-thread-logger", + "libc", + "log", + "serde", + "sha2 0.9.3", + "toml", + "winapi 0.3.9", + "zstd", +] + +[[package]] +name = "wasmtime-cranelift" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4134ed3a4316cd0de0e546c6004850afe472b0fa3fcdc2f2c15f8d449562d962" +dependencies = [ + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "cranelift-wasm", + "wasmtime-environ", +] + [[package]] name = "wasmtime-debug" -version = "0.19.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e634af9067a3af6cf2c7d33dc3b84767ddaf5d010ba68e80eecbcea73d4a349" +checksum = "e91fa931df6dd8af2b02606307674d3bad23f55473d5f4c809dddf7e4c4dc411" dependencies = [ "anyhow", - "gimli 0.21.0", + "gimli", "more-asserts", - "object 0.20.0", + "object 0.22.0", "target-lexicon", "thiserror", - "wasmparser 0.59.0", + "wasmparser", "wasmtime-environ", ] [[package]] name = "wasmtime-environ" -version = "0.19.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f85619a94ee4034bd5bb87fc3dcf71fd2237b81c840809da1201061eec9ab3" +checksum = "a1098871dc3120aaf8190d79153e470658bb79f63ee9ca31716711e123c28220" dependencies = [ "anyhow", - "base64 0.12.3", - "bincode", - "cfg-if 0.1.10", + "cfg-if 1.0.0", "cranelift-codegen", "cranelift-entity", - "cranelift-frontend", "cranelift-wasm", - "directories 2.0.2", - "errno", - "file-per-thread-logger", + "gimli", "indexmap", - "libc", "log", "more-asserts", - "rayon", "serde", - "sha2 0.8.2", "thiserror", - "toml", - "wasmparser 0.59.0", - "winapi 0.3.9", - "zstd", + "wasmparser", ] [[package]] name = "wasmtime-jit" -version = "0.19.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e914c013c7a9f15f4e429d5431f2830fb8adb56e40567661b69c5ec1d645be23" +checksum = "738bfcd1561ede8bb174215776fd7d9a95d5f0a47ca3deabe0282c55f9a89f68" dependencies = [ + "addr2line", "anyhow", - "cfg-if 0.1.10", + "cfg-if 1.0.0", "cranelift-codegen", "cranelift-entity", "cranelift-frontend", "cranelift-native", "cranelift-wasm", - "gimli 0.21.0", + "gimli", "log", "more-asserts", - "object 0.20.0", + "object 0.22.0", + "rayon", "region", + "serde", "target-lexicon", "thiserror", - "wasmparser 0.59.0", + "wasmparser", + "wasmtime-cranelift", "wasmtime-debug", "wasmtime-environ", "wasmtime-obj", @@ -9963,13 +10054,13 @@ dependencies = [ [[package]] name = "wasmtime-obj" -version = "0.19.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e81d8e02e9bc9fe2da9b6d48bbc217f96e089f7df613f11a28a3958abc44641e" +checksum = "3e96d77f1801131c5e86d93e42a3cf8a35402107332c202c245c83f34888a906" dependencies = [ "anyhow", "more-asserts", - "object 0.20.0", + "object 0.22.0", "target-lexicon", "wasmtime-debug", "wasmtime-environ", @@ -9977,16 +10068,16 @@ dependencies = [ [[package]] name = "wasmtime-profiling" -version = "0.19.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e8d4d1af8dd5f7096cfcc89dd668d358e52980c38cce199643372ffd6590e27" +checksum = "60bb672c9d894776d7b9250dd9b4fe890f8760201ee4f53e5f2da772b6c4debb" dependencies = [ "anyhow", - "cfg-if 0.1.10", - "gimli 0.21.0", + "cfg-if 1.0.0", + "gimli", "lazy_static", "libc", - "object 0.19.0", + "object 0.22.0", "scroll", "serde", "target-lexicon", @@ -9996,19 +10087,20 @@ dependencies = [ [[package]] name = "wasmtime-runtime" -version = "0.19.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a25f140bbbaadb07c531cba99ce1a966dba216138dc1b2a0ddecec851a01a93" +checksum = "a978086740949eeedfefcee667b57a9e98d9a7fc0de382fcfa0da30369e3530d" dependencies = [ "backtrace", "cc", - "cfg-if 0.1.10", + "cfg-if 1.0.0", "indexmap", "lazy_static", "libc", "log", - "memoffset 0.5.6", + "memoffset 0.6.1", "more-asserts", + "psm", "region", "thiserror", "wasmtime-environ", @@ -10017,18 +10109,18 @@ dependencies = [ [[package]] name = "wast" -version = "32.0.0" +version = "33.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c24a3ee360d01d60ed0a0f960ab76a6acce64348cdb0bf8699c2a866fad57c7c" +checksum = "1d04fe175c7f78214971293e7d8875673804e736092206a3a4544dbc12811c1b" dependencies = [ "leb128", ] [[package]] name = "wat" -version = "1.0.33" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e8f7f34773fa6318e8897283abf7941c1f250faae4e1a52f82df09c3bad7cce" +checksum = "7ec9c6ee01ae07a26adadcdfed22c7a97e0b8cbee9c06e0e96076ece5aeb5cfe" dependencies = [ "wast", ] @@ -10074,7 +10166,7 @@ dependencies = [ [[package]] name = "westend-runtime" version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "bitvec", "frame-executive", @@ -10135,7 +10227,7 @@ dependencies = [ "sp-transaction-pool", "sp-version", "static_assertions", - "substrate-wasm-builder 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-wasm-builder 3.0.0", ] [[package]] @@ -10210,6 +10302,12 @@ dependencies = [ "winapi-build", ] +[[package]] +name = "wyz" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" + [[package]] name = "x25519-dalek" version = "1.1.0" @@ -10224,7 +10322,7 @@ dependencies = [ [[package]] name = "xcm" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "parity-scale-codec", ] @@ -10232,7 +10330,7 @@ dependencies = [ [[package]] name = "xcm-builder" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "frame-support", "parity-scale-codec", @@ -10248,10 +10346,10 @@ dependencies = [ [[package]] name = "xcm-executor" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#bf2d87a1eca511c3258a66f468f918692dc5fd24" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" dependencies = [ "frame-support", - "impl-trait-for-tuples 0.2.0", + "impl-trait-for-tuples", "parity-scale-codec", "sp-arithmetic", "sp-core", @@ -10261,19 +10359,6 @@ dependencies = [ "xcm", ] -[[package]] -name = "xcm-handler" -version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#4b69b8d4bfa113fb3af2da34d1b71313bc43fb0c" -dependencies = [ - "cumulus-primitives", - "frame-support", - "frame-system", - "parity-scale-codec", - "sp-std", - "xcm", -] - [[package]] name = "yamux" version = "0.8.0" @@ -10304,7 +10389,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f369ddb18862aba61aa49bf31e74d29f0f162dec753063200e1dc084345d16" dependencies = [ "proc-macro2 1.0.24", - "quote 1.0.8", + "quote 1.0.9", "syn 1.0.60", "synstructure", ] @@ -10336,6 +10421,6 @@ checksum = "a1e6e8778706838f43f771d80d37787cb2fe06dafe89dd3aebaf6721b9eaec81" dependencies = [ "cc", "glob", - "itertools 0.9.0", + "itertools", "libc", ] diff --git a/node/Cargo.toml b/node/Cargo.toml index 150be4e9..0c97f42b 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -1,7 +1,7 @@ [dependencies] derive_more = '0.15.0' log = "0.4.13" -codec = { package = 'parity-scale-codec', version = '1.0.0' } +codec = { package = 'parity-scale-codec', version = '2.0.0' } structopt = "0.3.8" serde = { version = "1.0.119", features = ["derive"] } hex-literal = "0.2.1" @@ -11,12 +11,12 @@ jsonrpc-core = "15.1.0" [dependencies.frame-benchmarking] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.frame-benchmarking-cli] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.parachain-runtime] path = '../runtime' @@ -25,154 +25,154 @@ version = '2.0.0' [dependencies.pallet-transaction-payment-rpc] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sc-basic-authorship] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '0.8.0' +version = '0.9.0' [dependencies.sc-chain-spec] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sc-cli] features = ['wasmtime'] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '0.8.0' +version = '0.9.0' [dependencies.sc-client-api] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sc-consensus] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '0.8.0' +version = '0.9.0' [dependencies.sc-executor] features = ['wasmtime'] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '0.8.0' +version = '0.9.0' [dependencies.sc-keystore] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sc-rpc] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sc-rpc-api] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '0.8.0' +version = '0.9.0' [dependencies.sc-service] features = ['wasmtime'] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '0.8.0' +version = '0.9.0' [dependencies.sc-telemetry] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sc-transaction-pool] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sc-tracing] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sp-api] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sp-block-builder] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sp-blockchain] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sp-consensus] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '0.8.0' +version = '0.9.0' [dependencies.sp-core] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sp-inherents] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sp-runtime] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sp-timestamp] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sp-transaction-pool] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sp-trie] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.substrate-frame-rpc-system] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [build-dependencies.substrate-build-script-utils] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' # Cumulus dependencies -[dependencies.cumulus-consensus] +[dependencies.cumulus-client-consensus] git = 'https://github.com/paritytech/cumulus.git' branch = 'rococo-v1' -[dependencies.cumulus-collator] +[dependencies.cumulus-client-collator] git = 'https://github.com/paritytech/cumulus.git' branch = 'rococo-v1' -[dependencies.cumulus-network] +[dependencies.cumulus-client-network] git = 'https://github.com/paritytech/cumulus.git' branch = 'rococo-v1' -[dependencies.cumulus-primitives] +[dependencies.cumulus-primitives-core] git = 'https://github.com/paritytech/cumulus.git' branch = 'rococo-v1' -[dependencies.cumulus-service] +[dependencies.cumulus-client-service] git = 'https://github.com/paritytech/cumulus.git' branch = 'rococo-v1' diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index 01fd92be..f6ca03c5 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -1,10 +1,10 @@ -use cumulus_primitives::ParaId; +use cumulus_primitives_core::ParaId; +use parachain_runtime::{AccountId, Signature}; use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup}; use sc_service::ChainType; use serde::{Deserialize, Serialize}; use sp_core::{sr25519, Pair, Public}; use sp_runtime::traits::{IdentifyAccount, Verify}; -use parachain_runtime::{AccountId, Signature}; /// Specialized `ChainSpec` for the normal parachain runtime. pub type ChainSpec = sc_service::GenericChainSpec; diff --git a/node/src/command.rs b/node/src/command.rs index a4a151cd..b739695b 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -3,7 +3,8 @@ use crate::{ cli::{Cli, RelayChainCli, Subcommand}, }; use codec::Encode; -use cumulus_primitives::{genesis::generate_genesis_block, ParaId}; +use cumulus_client_service::genesis::generate_genesis_block; +use cumulus_primitives_core::ParaId; use log::info; use parachain_runtime::Block; use polkadot_parachain::primitives::AccountIdConversion; @@ -192,7 +193,7 @@ pub fn run() -> Result<()> { }) } Some(Subcommand::ExportGenesisState(params)) => { - let mut builder = sc_cli::GlobalLoggerBuilder::new(""); + let mut builder = sc_cli::LoggerBuilder::new(""); builder.with_profiling(sc_tracing::TracingReceiver::Log, ""); let _ = builder.init(); @@ -216,7 +217,7 @@ pub fn run() -> Result<()> { Ok(()) } Some(Subcommand::ExportGenesisWasm(params)) => { - let mut builder = sc_cli::GlobalLoggerBuilder::new(""); + let mut builder = sc_cli::LoggerBuilder::new(""); builder.with_profiling(sc_tracing::TracingReceiver::Log, ""); let _ = builder.init(); diff --git a/node/src/service.rs b/node/src/service.rs index 0bfa84f4..8a0a3c32 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -1,5 +1,5 @@ -use cumulus_network::build_block_announce_validator; -use cumulus_service::{ +use cumulus_client_network::build_block_announce_validator; +use cumulus_client_service::{ prepare_node_config, start_collator, start_full_node, StartCollatorParams, StartFullNodeParams, }; use parachain_runtime::{RuntimeApi, opaque::Block}; @@ -32,13 +32,13 @@ pub fn new_partial( (), sp_consensus::import_queue::BasicQueue>, sc_transaction_pool::FullPool>, - Option, + (), >, sc_service::Error, > { let inherent_data_providers = sp_inherents::InherentDataProviders::new(); - let (client, backend, keystore_container, task_manager, telemetry_span) = + let (client, backend, keystore_container, task_manager) = sc_service::new_full_parts::(&config)?; let client = Arc::new(client); @@ -46,12 +46,13 @@ pub fn new_partial( let transaction_pool = sc_transaction_pool::BasicPool::new_full( config.transaction_pool.clone(), + config.role.is_authority().into(), config.prometheus_registry(), task_manager.spawn_handle(), client.clone(), ); - let import_queue = cumulus_consensus::import_queue::import_queue( + let import_queue = cumulus_client_consensus::import_queue::import_queue( client.clone(), client.clone(), inherent_data_providers.clone(), @@ -68,7 +69,7 @@ pub fn new_partial( transaction_pool, inherent_data_providers, select_chain: (), - other: telemetry_span, + other: (), }; Ok(params) @@ -108,7 +109,6 @@ where )?; let params = new_partial(¶chain_config)?; - let telemetry_span = params.other; params .inherent_data_providers .register_provider(sp_timestamp::InherentDataProvider) @@ -154,7 +154,6 @@ where network: network.clone(), network_status_sinks, system_rpc_tx, - telemetry_span, })?; let announce_block = { diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index df05475e..f4233d3a 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -9,37 +9,37 @@ std = [ default-features = false features = ['derive'] package = 'parity-scale-codec' -version = '1.3.6' +version = '2.0.0' [dependencies.frame-support] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.frame-system] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dev-dependencies.sp-core] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dev-dependencies.sp-io] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dev-dependencies.sp-runtime] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [package] authors = ['Anonymous'] @@ -50,7 +50,7 @@ license = 'Unlicense' name = 'pallet-template' readme = 'README.md' repository = 'https://github.com/paritytech/substrate/' -version = '2.0.0' +version = '3.0.0' [package.metadata.docs.rs] targets = ['x86_64-unknown-linux-gnu'] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 534fac28..6720d6d6 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -1,7 +1,7 @@ [build-dependencies.substrate-wasm-builder] git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '3.0.0' +version = '4.0.0' [package] authors = ['Anonymous'] @@ -19,45 +19,45 @@ targets = ['x86_64-unknown-linux-gnu'] default-features = false features = ['derive'] package = 'parity-scale-codec' -version = '1.3.6' +version = '2.0.0' [dependencies.frame-benchmarking] default-features = false git = 'https://github.com/paritytech/substrate.git' optional = true branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.frame-executive] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.frame-support] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.frame-system] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.frame-system-benchmarking] default-features = false git = 'https://github.com/paritytech/substrate.git' optional = true branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.frame-system-rpc-runtime-api] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.hex-literal] optional = true @@ -67,37 +67,37 @@ version = '0.3.1' default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.pallet-randomness-collective-flip] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.pallet-sudo] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.pallet-timestamp] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.pallet-transaction-payment] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.pallet-transaction-payment-rpc-runtime-api] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.serde] features = ['derive'] @@ -108,73 +108,73 @@ version = '1.0.119' default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sp-block-builder] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sp-core] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sp-inherents] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sp-io] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sp-offchain] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sp-runtime] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sp-session] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sp-std] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sp-transaction-pool] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.sp-version] default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' -version = '2.0.0' +version = '3.0.0' [dependencies.template] default-features = false package = 'pallet-template' path = '../pallets/template' -version = '2.0.0' +version = '3.0.0' # Cumulus dependencies @@ -184,22 +184,17 @@ git = 'https://github.com/paritytech/cumulus.git' branch = 'rococo-v1' version = '0.1.0' -[dependencies.cumulus-runtime] -git = 'https://github.com/paritytech/cumulus.git' -branch = 'rococo-v1' -default-features = false - -[dependencies.cumulus-parachain-system] +[dependencies.cumulus-pallet-parachain-system] git = 'https://github.com/paritytech/cumulus.git' branch = 'rococo-v1' default-features = false -[dependencies.cumulus-primitives] +[dependencies.cumulus-primitives-core] git = 'https://github.com/paritytech/cumulus.git' branch = 'rococo-v1' default-features = false -[dependencies.xcm-handler] +[dependencies.cumulus-pallet-xcm-handler] git = 'https://github.com/paritytech/cumulus.git' branch = 'rococo-v1' default-features = false @@ -260,11 +255,10 @@ std = [ "pallet-sudo/std", "pallet-transaction-payment/std", "parachain-info/std", - "cumulus-runtime/std", - "cumulus-parachain-system/std", - "cumulus-primitives/std", + "cumulus-pallet-parachain-system/std", + "cumulus-primitives-core/std", "xcm/std", "xcm-builder/std", "xcm-executor/std", - "xcm-handler/std", + "cumulus-pallet-xcm-handler/std", ] diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 265f49e2..6dab71a9 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -271,7 +271,7 @@ impl pallet_sudo::Config for Runtime { type Call = Call; } -impl cumulus_parachain_system::Config for Runtime { +impl cumulus_pallet_parachain_system::Config for Runtime { type Event = Event; type OnValidationData = (); type SelfParaId = parachain_info::Module; @@ -284,7 +284,7 @@ impl parachain_info::Config for Runtime {} parameter_types! { pub const RococoLocation: MultiLocation = MultiLocation::X1(Junction::Parent); pub const RococoNetwork: NetworkId = NetworkId::Polkadot; - pub RelayChainOrigin: Origin = xcm_handler::Origin::Relay.into(); + pub RelayChainOrigin: Origin = cumulus_pallet_xcm_handler::Origin::Relay.into(); pub Ancestry: MultiLocation = Junction::Parachain { id: ParachainInfo::parachain_id().into() }.into(); @@ -310,7 +310,7 @@ type LocalAssetTransactor = CurrencyAdapter< type LocalOriginConverter = ( SovereignSignedViaLocation, RelayChainAsNative, - SiblingParachainAsNative, + SiblingParachainAsNative, SignedAccountId32AsNative, ); @@ -326,7 +326,7 @@ impl Config for XcmConfig { type LocationInverter = LocationInverter; } -impl xcm_handler::Config for Runtime { +impl cumulus_pallet_xcm_handler::Config for Runtime { type Event = Event; type XcmExecutor = XcmExecutor; type UpwardMessageSender = ParachainSystem; @@ -350,10 +350,10 @@ construct_runtime!( Balances: pallet_balances::{Module, Call, Storage, Config, Event}, Sudo: pallet_sudo::{Module, Call, Storage, Config, Event}, RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Module, Call, Storage}, - ParachainSystem: cumulus_parachain_system::{Module, Call, Storage, Inherent, Event}, + ParachainSystem: cumulus_pallet_parachain_system::{Module, Call, Storage, Inherent, Event}, TransactionPayment: pallet_transaction_payment::{Module, Storage}, ParachainInfo: parachain_info::{Module, Storage, Config}, - XcmHandler: xcm_handler::{Module, Event, Origin}, + XcmHandler: cumulus_pallet_xcm_handler::{Module, Event, Origin}, TemplateModule: template::{Module, Call, Storage, Event}, } ); @@ -521,4 +521,4 @@ impl_runtime_apis! { } } -cumulus_runtime::register_validate_block!(Block, Executive); \ No newline at end of file +cumulus_pallet_parachain_system::register_validate_block!(Block, Executive); From 09ff0ebfbfefa3011361578a1598366c9f892411 Mon Sep 17 00:00:00 2001 From: bwty Date: Wed, 17 Feb 2021 11:48:42 +0700 Subject: [PATCH 15/91] fix: template pallet and tests to run --- Cargo.lock | 1 + node/src/service.rs | 2 +- pallets/template/Cargo.toml | 3 ++ pallets/template/src/lib.rs | 102 +++++++++++++++++------------------ pallets/template/src/mock.rs | 33 +++++++----- 5 files changed, 75 insertions(+), 66 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e355d52f..4c8570c4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4427,6 +4427,7 @@ dependencies = [ "frame-support", "frame-system", "parity-scale-codec", + "serde", "sp-core", "sp-io", "sp-runtime", diff --git a/node/src/service.rs b/node/src/service.rs index 8a0a3c32..aa52ea20 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -101,7 +101,7 @@ where let parachain_config = prepare_node_config(parachain_config); let polkadot_full_node = - cumulus_service::build_polkadot_full_node(polkadot_config, collator_key.public()).map_err( + cumulus_client_service::build_polkadot_full_node(polkadot_config, collator_key.public()).map_err( |e| match e { polkadot_service::Error::Sub(x) => x, s => format!("{}", s).into(), diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index f4233d3a..560823ba 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -23,6 +23,9 @@ git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' version = '3.0.0' +[dev-dependencies] +serde = { version = "1.0.101" } + [dev-dependencies.sp-core] default-features = false git = 'https://github.com/paritytech/substrate.git' diff --git a/pallets/template/src/lib.rs b/pallets/template/src/lib.rs index 24de4f2f..97cc7b73 100644 --- a/pallets/template/src/lib.rs +++ b/pallets/template/src/lib.rs @@ -3,9 +3,7 @@ /// Edit this file to define custom logic or remove it if it is not needed. /// Learn more about FRAME and the core library of Substrate FRAME pallets: /// https://substrate.dev/docs/en/knowledgebase/runtime/frame - -use frame_support::{decl_module, decl_storage, decl_event, decl_error, dispatch, traits::Get}; -use frame_system::ensure_signed; +pub use pallet::*; #[cfg(test)] mod mock; @@ -13,90 +11,92 @@ mod mock; #[cfg(test)] mod tests; -/// Configure the pallet by specifying the parameters and types on which it depends. -pub trait Config: frame_system::Config { - /// Because this pallet emits events, it depends on the runtime's definition of an event. - type Event: From> + Into<::Event>; -} +#[frame_support::pallet] +pub mod pallet { + use frame_support::{dispatch::DispatchResultWithPostInfo, pallet_prelude::*}; + use frame_system::pallet_prelude::*; -// The pallet's runtime storage items. -// https://substrate.dev/docs/en/knowledgebase/runtime/storage -decl_storage! { - // A unique name is used to ensure that the pallet's storage items are isolated. - // This name may be updated, but each pallet in the runtime must use a unique name. - // ---------------------------------vvvvvvvvvvvvvv - trait Store for Module as TemplateModule { - // Learn more about declaring storage items: - // https://substrate.dev/docs/en/knowledgebase/runtime/storage#declaring-storage-items - Something get(fn something): Option; + /// Configure the pallet by specifying the parameters and types on which it depends. + #[pallet::config] + pub trait Config: frame_system::Config { + /// Because this pallet emits events, it depends on the runtime's definition of an event. + type Event: From> + IsType<::Event>; } -} -// Pallets use events to inform users when important changes are made. -// https://substrate.dev/docs/en/knowledgebase/runtime/events -decl_event!( - pub enum Event where AccountId = ::AccountId { + #[pallet::pallet] + #[pallet::generate_store(pub(super) trait Store)] + pub struct Pallet(_); + + // The pallet's runtime storage items. + // https://substrate.dev/docs/en/knowledgebase/runtime/storage + #[pallet::storage] + #[pallet::getter(fn something)] + // Learn more about declaring storage items: + // https://substrate.dev/docs/en/knowledgebase/runtime/storage#declaring-storage-items + pub type Something = StorageValue<_, u32>; + + // Pallets use events to inform users when important changes are made. + // https://substrate.dev/docs/en/knowledgebase/runtime/events + #[pallet::event] + #[pallet::metadata(T::AccountId = "AccountId")] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { /// Event documentation should end with an array that provides descriptive names for event /// parameters. [something, who] - SomethingStored(u32, AccountId), + SomethingStored(u32, T::AccountId), } -); -// Errors inform users that something went wrong. -decl_error! { - pub enum Error for Module { + // Errors inform users that something went wrong. + #[pallet::error] + pub enum Error { /// Error names should be descriptive. NoneValue, /// Errors should have helpful documentation associated with them. StorageOverflow, } -} - -// Dispatchable functions allows users to interact with the pallet and invoke state changes. -// These functions materialize as "extrinsics", which are often compared to transactions. -// Dispatchable functions must be annotated with a weight and must return a DispatchResult. -decl_module! { - pub struct Module for enum Call where origin: T::Origin { - // Errors must be initialized if they are used by the pallet. - type Error = Error; - // Events must be initialized if they are used by the pallet. - fn deposit_event() = default; + #[pallet::hooks] + impl Hooks> for Pallet {} + // Dispatchable functions allows users to interact with the pallet and invoke state changes. + // These functions materialize as "extrinsics", which are often compared to transactions. + // Dispatchable functions must be annotated with a weight and must return a DispatchResult. + #[pallet::call] + impl Pallet { /// An example dispatchable that takes a singles value as a parameter, writes the value to /// storage and emits an event. This function must be dispatched by a signed extrinsic. - #[weight = 10_000 + T::DbWeight::get().writes(1)] - pub fn do_something(origin, something: u32) -> dispatch::DispatchResult { + #[pallet::weight(10_000 + T::DbWeight::get().writes(1))] + pub fn do_something(origin: OriginFor, something: u32) -> DispatchResultWithPostInfo { // Check that the extrinsic was signed and get the signer. // This function will return an error if the extrinsic is not signed. // https://substrate.dev/docs/en/knowledgebase/runtime/origin let who = ensure_signed(origin)?; // Update storage. - Something::put(something); + >::put(something); // Emit an event. - Self::deposit_event(RawEvent::SomethingStored(something, who)); - // Return a successful DispatchResult - Ok(()) + Self::deposit_event(Event::SomethingStored(something, who)); + // Return a successful DispatchResultWithPostInfo + Ok(().into()) } /// An example dispatchable that may throw a custom error. - #[weight = 10_000 + T::DbWeight::get().reads_writes(1,1)] - pub fn cause_error(origin) -> dispatch::DispatchResult { + #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1))] + pub fn cause_error(origin: OriginFor) -> DispatchResultWithPostInfo { let _who = ensure_signed(origin)?; // Read a value from storage. - match Something::get() { + match >::get() { // Return an error if the value has not been set. None => Err(Error::::NoneValue)?, Some(old) => { // Increment the value read from storage; will error in the event of overflow. let new = old.checked_add(1).ok_or(Error::::StorageOverflow)?; // Update the value in storage with the incremented result. - Something::put(new); - Ok(()) - }, + >::put(new); + Ok(().into()) + } } } } diff --git a/pallets/template/src/mock.rs b/pallets/template/src/mock.rs index 60d22aad..d33670f2 100644 --- a/pallets/template/src/mock.rs +++ b/pallets/template/src/mock.rs @@ -1,19 +1,26 @@ -use crate::{Module, Config}; +use crate as pallet_template; use sp_core::H256; -use frame_support::{impl_outer_origin, parameter_types}; +use frame_support::parameter_types; use sp_runtime::{ traits::{BlakeTwo256, IdentityLookup}, testing::Header, }; use frame_system as system; -impl_outer_origin! { - pub enum Origin for Test {} -} +type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; +type Block = frame_system::mocking::MockBlock; // Configure a mock runtime to test the pallet. +frame_support::construct_runtime!( + pub enum Test where + Block = Block, + NodeBlock = Block, + UncheckedExtrinsic = UncheckedExtrinsic, + { + System: frame_system::{Module, Call, Config, Storage, Event}, + TemplateModule: pallet_template::{Module, Call, Storage, Event}, + } +); -#[derive(Clone, Eq, PartialEq)] -pub struct Test; parameter_types! { pub const BlockHashCount: u64 = 250; pub const SS58Prefix: u8 = 42; @@ -25,7 +32,7 @@ impl system::Config for Test { type BlockLength = (); type DbWeight = (); type Origin = Origin; - type Call = (); + type Call = Call; type Index = u64; type BlockNumber = u64; type Hash = H256; @@ -33,10 +40,10 @@ impl system::Config for Test { type AccountId = u64; type Lookup = IdentityLookup; type Header = Header; - type Event = (); + type Event = Event; type BlockHashCount = BlockHashCount; type Version = (); - type PalletInfo = (); + type PalletInfo = PalletInfo; type AccountData = (); type OnNewAccount = (); type OnKilledAccount = (); @@ -44,12 +51,10 @@ impl system::Config for Test { type SS58Prefix = SS58Prefix; } -impl Config for Test { - type Event = (); +impl pallet_template::Config for Test { + type Event = Event; } -pub type TemplateModule = Module; - // Build genesis storage according to the mock runtime. pub fn new_test_ext() -> sp_io::TestExternalities { system::GenesisConfig::default().build_storage::().unwrap().into() From 24fa1994d5012685a3f030d29f9e2fe829407dba Mon Sep 17 00:00:00 2001 From: bwty Date: Wed, 17 Feb 2021 13:45:16 +0700 Subject: [PATCH 16/91] docs: compile polkadot with real-overseer feat --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 72b87899..cfd6d84d 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,8 @@ cargo build --release Polkadot (rococo-v1 branch): ``` +cargo build --release --features real-overseer + ./target/release/polkadot build-spec --chain rococo-local --raw --disable-default-bootnode > rococo_local.json ./target/release/polkadot --chain ./rococo_local.json -d cumulus_relay1 --validator --bob --port 50555 From d5c1c30a893807610530a016ed3b8bf93f6a11b7 Mon Sep 17 00:00:00 2001 From: bwty Date: Wed, 17 Feb 2021 21:11:16 +0700 Subject: [PATCH 17/91] fix: update rustc version in gha --- .github/workflows/test-code.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-code.yml b/.github/workflows/test-code.yml index 91cf4494..f5ae999e 100644 --- a/.github/workflows/test-code.yml +++ b/.github/workflows/test-code.yml @@ -30,7 +30,7 @@ jobs: uses: actions-rs/toolchain@v1 with: profile: minimal - toolchain: nightly-2020-05-07 + toolchain: nightly-2021-01-26 components: rustfmt, clippy target: wasm32-unknown-unknown override: true From 0ab43bd1ee77f50785a13431487a5bdd99b17f65 Mon Sep 17 00:00:00 2001 From: junius zhou Date: Tue, 9 Mar 2021 10:39:40 +0800 Subject: [PATCH 18/91] enable ocw (#13) --- node/src/service.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/node/src/service.rs b/node/src/service.rs index aa52ea20..bdad3908 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -141,6 +141,12 @@ where let rpc_client = client.clone(); let rpc_extensions_builder = Box::new(move |_, _| rpc_ext_builder(rpc_client.clone())); + if parachain_config.offchain_worker.enabled { + sc_service::build_offchain_workers( + ¶chain_config, backend.clone(), task_manager.spawn_handle(), client.clone(), network.clone(), + ); + } + sc_service::spawn_tasks(sc_service::SpawnTasksParams { on_demand: None, remote_blockchain: None, From b32ee9160298282937541523ab1328af635e9e43 Mon Sep 17 00:00:00 2001 From: stanly-johnson Date: Fri, 12 Mar 2021 11:28:38 +0530 Subject: [PATCH 19/91] fix:match cumulus refactoring (#14) --- Cargo.lock | 1423 ++++++++++++++++++++++++---------------- node/Cargo.toml | 2 +- node/src/chain_spec.rs | 190 +++--- node/src/service.rs | 52 +- runtime/src/lib.rs | 6 +- 5 files changed, 978 insertions(+), 695 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4c8570c4..2b070eb4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -21,9 +21,9 @@ dependencies = [ [[package]] name = "adler" -version = "0.2.3" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aead" @@ -164,14 +164,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d0864d84b8e07b145449be9a8537db86bf9de5ce03b913214694643b4743502" dependencies = [ "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] +[[package]] +name = "assert_matches" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" + [[package]] name = "async-channel" -version = "1.5.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59740d83946db6a5af71ae25ddf9562c2b176b2ca42cf99a455f09f4a220d6b9" +checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319" dependencies = [ "concurrent-queue", "event-listener", @@ -273,7 +279,7 @@ dependencies = [ "async-io", "async-lock", "async-process", - "crossbeam-utils 0.8.1", + "crossbeam-utils 0.8.3", "futures-channel", "futures-core", "futures-io", @@ -284,7 +290,7 @@ dependencies = [ "memchr", "num_cpus", "once_cell", - "pin-project-lite 0.2.4", + "pin-project-lite 0.2.6", "pin-utils", "slab", "wasm-bindgen-futures", @@ -298,13 +304,13 @@ checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0" [[package]] name = "async-trait" -version = "0.1.42" +version = "0.1.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3a45e77e34375a7923b1e8febb049bb011f064714a8e17a1a616fef01da13d" +checksum = "36ea56748e10732c49404c153638a15ec3d6211ec5ff35d9bb20e13b93576adf" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] @@ -317,7 +323,7 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.4", + "pin-project-lite 0.2.6", ] [[package]] @@ -330,7 +336,7 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.4", + "pin-project-lite 0.2.6", ] [[package]] @@ -405,9 +411,9 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "bincode" -version = "1.3.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30d3a39baa26f9651f17b375061f3233dde33424a8b72b0dbe93a68a0bc896d" +checksum = "d175dfa69e619905c4c3cdb7c3c203fa3bdd5d51184e3afdb2742c0280493772" dependencies = [ "byteorder", "serde", @@ -424,7 +430,7 @@ dependencies = [ "cfg-if 0.1.10", "clang-sys", "clap", - "env_logger", + "env_logger 0.7.1", "lazy_static", "lazycell", "log", @@ -445,9 +451,9 @@ checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" [[package]] name = "bitvec" -version = "0.20.1" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5011ffc90248764d7005b0e10c7294f5aa1bd87d9dd7248f4ad475b347c294d" +checksum = "1f682656975d3a682daff957be4ddeb65d6ad656737cd821f2d00685ae466af1" dependencies = [ "funty", "radium", @@ -522,7 +528,7 @@ dependencies = [ "block-padding 0.1.5", "byte-tools", "byteorder", - "generic-array 0.12.3", + "generic-array 0.12.4", ] [[package]] @@ -599,9 +605,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.6.0" +version = "3.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099e596ef14349721d9016f6b80dd3419ea1bf289ab9b44df8e4dfd3a005d5d9" +checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe" [[package]] name = "byte-slice-cast" @@ -617,9 +623,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "byteorder" -version = "1.4.2" +version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b" +checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" [[package]] name = "bytes" @@ -674,9 +680,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.66" +version = "1.0.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48" +checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd" dependencies = [ "jobserver", ] @@ -740,9 +746,9 @@ dependencies = [ [[package]] name = "cid" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d88f30b1e74e7063df5711496f3ee6e74a9735d62062242d70cddf77717f18e" +checksum = "ff0e3bc0b6446b3f9663c1a6aba6ef06c5aeaa1bc92bd18077be337198ab9768" dependencies = [ "multibase", "multihash", @@ -802,12 +808,6 @@ dependencies = [ "cache-padded", ] -[[package]] -name = "const_fn" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b9d6de7f49e22cf97ad17fc4036ece69300032f45f78f30b4a4482cdc3f4a6" - [[package]] name = "constant_time_eq" version = "0.1.5" @@ -962,7 +962,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775" dependencies = [ "cfg-if 1.0.0", - "crossbeam-utils 0.8.1", + "crossbeam-utils 0.8.3", ] [[package]] @@ -983,8 +983,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" dependencies = [ "cfg-if 1.0.0", - "crossbeam-epoch 0.9.1", - "crossbeam-utils 0.8.1", + "crossbeam-epoch 0.9.3", + "crossbeam-utils 0.8.3", ] [[package]] @@ -1004,13 +1004,12 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.1" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1aaa739f95311c2c7887a76863f500026092fb1dce0161dab577e559ef3569d" +checksum = "2584f639eb95fea8c798496315b297cf81b9b58b6d30ab066a75455333cf4b12" dependencies = [ "cfg-if 1.0.0", - "const_fn", - "crossbeam-utils 0.8.1", + "crossbeam-utils 0.8.3", "lazy_static", "memoffset 0.6.1", "scopeguard", @@ -1040,9 +1039,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d" +checksum = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49" dependencies = [ "autocfg", "cfg-if 1.0.0", @@ -1061,7 +1060,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" dependencies = [ - "generic-array 0.12.3", + "generic-array 0.12.4", "subtle 1.0.0", ] @@ -1091,7 +1090,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8f45d9ad417bcef4817d614a501ab55cdd96a6fdb24f49aab89a54acfd66b19" dependencies = [ "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] @@ -1108,38 +1107,35 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#fad35c28b1f73aaeb25dedb46674b48774c092b4" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#24b1ee6bd1d96f255889f167e59ef9c9399a6305" dependencies = [ + "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", - "futures 0.3.12", - "log", + "futures 0.3.13", "parity-scale-codec", "parking_lot 0.9.0", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-overseer", - "polkadot-parachain", "polkadot-primitives", - "polkadot-service", - "sc-cli", "sc-client-api", - "sp-api", "sp-consensus", "sp-core", - "sp-inherents", "sp-io", "sp-runtime", "sp-state-machine", + "tracing", ] [[package]] -name = "cumulus-client-consensus" +name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#fad35c28b1f73aaeb25dedb46674b48774c092b4" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#24b1ee6bd1d96f255889f167e59ef9c9399a6305" dependencies = [ - "futures 0.3.12", + "async-trait", + "dyn-clone", + "futures 0.3.13", "parity-scale-codec", "polkadot-primitives", "polkadot-runtime", @@ -1151,18 +1147,44 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", + "sp-trie", "substrate-prometheus-endpoint", "tokio 0.1.22", "tracing", ] +[[package]] +name = "cumulus-client-consensus-relay-chain" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#24b1ee6bd1d96f255889f167e59ef9c9399a6305" +dependencies = [ + "async-trait", + "cumulus-client-consensus-common", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", + "futures 0.3.13", + "parity-scale-codec", + "parking_lot 0.9.0", + "polkadot-service", + "sc-client-api", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", + "substrate-prometheus-endpoint", + "tracing", +] + [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#fad35c28b1f73aaeb25dedb46674b48774c092b4" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#24b1ee6bd1d96f255889f167e59ef9c9399a6305" dependencies = [ "derive_more 0.99.11", - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", "parity-scale-codec", "parking_lot 0.10.2", @@ -1183,14 +1205,13 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#fad35c28b1f73aaeb25dedb46674b48774c092b4" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#24b1ee6bd1d96f255889f167e59ef9c9399a6305" dependencies = [ "cumulus-client-collator", - "cumulus-client-consensus", + "cumulus-client-consensus-common", "cumulus-primitives-core", - "futures 0.3.12", + "futures 0.3.13", "parity-scale-codec", - "polkadot-overseer", "polkadot-primitives", "polkadot-service", "sc-chain-spec", @@ -1201,7 +1222,6 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-core", - "sp-inherents", "sp-runtime", "tracing", ] @@ -1209,14 +1229,15 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#fad35c28b1f73aaeb25dedb46674b48774c092b4" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#24b1ee6bd1d96f255889f167e59ef9c9399a6305" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", - "frame-executive", + "environmental", "frame-support", "frame-system", "hash-db", + "log", "memory-db", "pallet-balances", "parity-scale-codec", @@ -1237,20 +1258,22 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm-handler" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#fad35c28b1f73aaeb25dedb46674b48774c092b4" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#24b1ee6bd1d96f255889f167e59ef9c9399a6305" dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", + "log", "parity-scale-codec", "sp-std", "xcm", + "xcm-executor", ] [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#fad35c28b1f73aaeb25dedb46674b48774c092b4" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#24b1ee6bd1d96f255889f167e59ef9c9399a6305" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -1265,7 +1288,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#fad35c28b1f73aaeb25dedb46674b48774c092b4" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#24b1ee6bd1d96f255889f167e59ef9c9399a6305" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1329,7 +1352,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f83e699727abca3c56e187945f303389590305ab2f0185ea445aa66e8d5f2a" dependencies = [ "data-encoding", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] @@ -1354,7 +1377,7 @@ checksum = "41cb0e6161ad61ed084a36ba71fbba9e3ac5aee3606fb607fe08da6acbcf3d8c" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] @@ -1363,7 +1386,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" dependencies = [ - "generic-array 0.12.3", + "generic-array 0.12.4", ] [[package]] @@ -1444,7 +1467,7 @@ checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] @@ -1499,7 +1522,7 @@ checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] @@ -1509,7 +1532,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" dependencies = [ "atty", - "humantime", + "humantime 1.3.0", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "env_logger" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17392a012ea30ef05a610aa97dfb49496e71c9f676b27879922ea5bdf60d9d3f" +dependencies = [ + "atty", + "humantime 2.1.0", "log", "regex", "termcolor", @@ -1590,7 +1626,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", ] [[package]] @@ -1611,7 +1647,7 @@ checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", "synstructure", ] @@ -1651,7 +1687,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fdbe0d94371f9ce939b555dd342d0686cc4c0cadbcd4b61d70af5ff97eb4126" dependencies = [ - "env_logger", + "env_logger 0.7.1", "log", ] @@ -1662,7 +1698,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6447e2f8178843749e8c8003206def83ec124a7859475395777a28b5338647c" dependencies = [ "either", - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", "log", "num-traits", @@ -1710,16 +1746,16 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "parity-scale-codec", ] [[package]] name = "form_urlencoded" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00" +checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" dependencies = [ "matches", "percent-encoding 2.1.0", @@ -1727,12 +1763,13 @@ dependencies = [ [[package]] name = "frame-benchmarking" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +version = "3.1.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", "linregress", + "log", "parity-scale-codec", "paste 1.0.4", "sp-api", @@ -1746,7 +1783,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "Inflector", "chrono", @@ -1769,7 +1806,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", @@ -1785,7 +1822,7 @@ dependencies = [ [[package]] name = "frame-metadata" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "parity-scale-codec", "serde", @@ -1796,7 +1833,7 @@ dependencies = [ [[package]] name = "frame-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "bitflags", "frame-metadata", @@ -1822,44 +1859,45 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "Inflector", "frame-support-procedural-tools", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] name = "frame-support-procedural-tools" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] name = "frame-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "impl-trait-for-tuples", + "log", "parity-scale-codec", "serde", "sp-core", @@ -1872,7 +1910,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-benchmarking", "frame-support", @@ -1886,12 +1924,24 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "parity-scale-codec", "sp-api", ] +[[package]] +name = "frame-try-runtime" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +dependencies = [ + "frame-support", + "parity-scale-codec", + "sp-api", + "sp-runtime", + "sp-std", +] + [[package]] name = "fs-swap" version = "0.2.5" @@ -1904,6 +1954,16 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi 0.3.9", +] + [[package]] name = "fuchsia-cprng" version = "0.1.1" @@ -1934,15 +1994,15 @@ checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" [[package]] name = "futures" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7e4c2612746b0df8fed4ce0c69156021b704c9aefa360311c04e6e9e002eed" +checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9052a1a50244d8d5aa9bf55cbc2fb6f357c86cc52e46c62ed390a7180cf150" +checksum = "7f55667319111d593ba876406af7c409c0ebb44dc4be6132a783ccf163ea14c1" dependencies = [ "futures-channel", "futures-core", @@ -1955,9 +2015,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2d31b7ec7efab6eefc7c57233bb10b847986139d88cc2f5a02a1ae6871a1846" +checksum = "8c2dd2df839b57db9ab69c2c9d8f3e8c81984781937fe2807dc6dcf3b2ad2939" dependencies = [ "futures-core", "futures-sink", @@ -1965,9 +2025,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e5145dde8da7d1b3892dad07a9c98fc04bc39892b1ecc9692cf53e2b780a65" +checksum = "15496a72fabf0e62bdc3df11a59a3787429221dd0710ba8ef163d6f7a9112c94" [[package]] name = "futures-cpupool" @@ -1975,7 +2035,7 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" dependencies = [ - "futures 0.1.30", + "futures 0.1.31", "num_cpus", ] @@ -1985,8 +2045,8 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdcef58a173af8148b182684c9f2d5250875adbcaff7b5794073894f9d8634a9" dependencies = [ - "futures 0.1.30", - "futures 0.3.12", + "futures 0.1.31", + "futures 0.3.13", "lazy_static", "log", "parking_lot 0.9.0", @@ -1997,9 +2057,9 @@ dependencies = [ [[package]] name = "futures-executor" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9e59fdc009a4b3096bf94f740a0f2424c082521f20a9b08c5c07c48d90fd9b9" +checksum = "891a4b7b96d84d5940084b2a37632dd65deeae662c114ceaa2c879629c9c0ad1" dependencies = [ "futures-core", "futures-task", @@ -2009,9 +2069,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28be053525281ad8259d47e4de5de657b25e7bac113458555bb4b70bc6870500" +checksum = "d71c2c65c57704c32f5241c1223167c2c3294fd34ac020c807ddbe6db287ba59" [[package]] name = "futures-lite" @@ -2024,20 +2084,20 @@ dependencies = [ "futures-io", "memchr", "parking", - "pin-project-lite 0.2.4", + "pin-project-lite 0.2.6", "waker-fn", ] [[package]] name = "futures-macro" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c287d25add322d9f9abdcdc5927ca398917996600182178774032e9f8258fedd" +checksum = "ea405816a5139fb39af82c2beb921d52143f556038378d6db21183a5c37fbfb7" dependencies = [ "proc-macro-hack", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] @@ -2053,18 +2113,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf5c69029bda2e743fddd0582d1083951d65cc9539aebf8812f36c3491342d6" +checksum = "85754d98985841b7d4f5e8e6fbfa4a4ac847916893ec511a2917ccd8525b8bb3" [[package]] name = "futures-task" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13de07eb8ea81ae445aca7b69f5f7bf15d7bf4912d8ca37d6645c77ae8a58d86" -dependencies = [ - "once_cell", -] +checksum = "fa189ef211c15ee602667a6fcfe1c1fd9e07d42250d2156382820fba33c9df80" [[package]] name = "futures-timer" @@ -2080,11 +2137,11 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "632a8cd0f2a4b3fdea1657f08bde063848c3bd00f9bbf6e256b8be78802e624b" +checksum = "1812c7ab8aedf8d6f2701a43e1243acdbcc2b36ab26e2ad421eb99ac963d96d1" dependencies = [ - "futures 0.1.30", + "futures 0.1.31", "futures-channel", "futures-core", "futures-io", @@ -2092,7 +2149,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.4", + "pin-project-lite 0.2.6", "pin-utils", "proc-macro-hack", "proc-macro-nested", @@ -2107,18 +2164,18 @@ checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" [[package]] name = "generic-array" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" +checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" dependencies = [ "typenum", ] [[package]] name = "generic-array" -version = "0.13.2" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed1e761351b56f54eb9dcd0cfaca9fd0daecf93918e1cfc01c8a3d26ee7adcd" +checksum = "f797e67af32588215eaaab8327027ee8e71b9dd0b2b26996aedf20c030fce309" dependencies = [ "typenum", ] @@ -2217,7 +2274,7 @@ dependencies = [ "byteorder", "bytes 0.4.12", "fnv", - "futures 0.1.30", + "futures 0.1.31", "http 0.1.21", "indexmap", "log", @@ -2248,9 +2305,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "3.5.2" +version = "3.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "964d0e99a61fe9b1b347389b77ebf8b7e1587b70293676aaca7d27e59b9073b2" +checksum = "cdb0867bbc5a3da37a753e78021d5fcf8a4db00e18dd2dd90fd36e24190e162d" dependencies = [ "log", "pest", @@ -2304,9 +2361,9 @@ dependencies = [ [[package]] name = "hex" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hex-literal" @@ -2366,7 +2423,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6e570451493f10f6581b48cdd530413b63ea9e780f544bfd3bdcaa0d89d1a7b" dependencies = [ "digest 0.8.1", - "generic-array 0.12.3", + "generic-array 0.12.4", "hmac 0.7.1", ] @@ -2399,7 +2456,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d" dependencies = [ "bytes 0.4.12", - "futures 0.1.30", + "futures 0.1.31", "http 0.1.21", "tokio-buf", ] @@ -2435,14 +2492,20 @@ dependencies = [ "quick-error 1.2.3", ] +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + [[package]] name = "hyper" -version = "0.12.35" +version = "0.12.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dbe6ed1438e1f8ad955a4701e9a944938e9519f6888d12d8558b645e247d5f6" +checksum = "5c843caf6296fc1f93444735205af9ed4e109a539005abb2564ae1d6fad34c52" dependencies = [ "bytes 0.4.12", - "futures 0.1.30", + "futures 0.1.31", "futures-cpupool", "h2 0.1.26", "http 0.1.21", @@ -2520,9 +2583,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de910d521f7cc3135c4de8db1cb910e0b5ed1dc6f57c381cd07e8e661ce10094" +checksum = "89829a5d69c23d348314a7ac337fe39173b61149a9864deabd260983aed48c21" dependencies = [ "matches", "unicode-bidi", @@ -2557,7 +2620,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97b8538953a3f0d0d3868f0a706eb4273535e10d72acb5c82c1c23ae48835c85" dependencies = [ "async-io", - "futures 0.3.12", + "futures 0.3.13", "futures-lite", "if-addrs", "ipnet", @@ -2601,14 +2664,14 @@ checksum = "d5dacb10c5b3bb92d46ba347505a9041e676bb20ad220101326bffb0c93031ee" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] name = "indexmap" -version = "1.6.1" +version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb1fa934250de4de8aef298d81c729a7d33d8c239daa3a7575e6b92bfc7313b" +checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3" dependencies = [ "autocfg", "hashbrown", @@ -2645,7 +2708,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "futures-timer 2.0.2", ] @@ -2696,9 +2759,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.47" +version = "0.3.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cfb73131c35423a367daf8cbd24100af0d077668c8c2943f0e7dd775fef0f65" +checksum = "dc9f84f9b115ce7843d60706df1422a916680bfdfcbdb0447c5614ff9d7e4d78" dependencies = [ "wasm-bindgen", ] @@ -2710,7 +2773,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "489b9c612e60c766f751ab40fcb43cbb55a1e10bb44a9b4307ed510ca598cbd7" dependencies = [ "failure", - "futures 0.1.30", + "futures 0.1.31", "jsonrpc-core", "jsonrpc-pubsub", "log", @@ -2725,7 +2788,7 @@ version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0745a6379e3edc893c84ec203589790774e4247420033e71a76d3ab4687991fa" dependencies = [ - "futures 0.1.30", + "futures 0.1.31", "log", "serde", "serde_derive", @@ -2750,7 +2813,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] @@ -2759,7 +2822,7 @@ version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb5c4513b7b542f42da107942b7b759f27120b5cc894729f88254b28dff44b7" dependencies = [ - "hyper 0.12.35", + "hyper 0.12.36", "jsonrpc-core", "jsonrpc-server-utils", "log", @@ -2825,6 +2888,67 @@ dependencies = [ "slab", ] +[[package]] +name = "jsonrpsee-http-client" +version = "0.2.0-alpha.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f1d8440e2617bdebdf45114e90f65aed3f14bf73e23d874dde8e4b764676fe9" +dependencies = [ + "async-trait", + "futures 0.3.13", + "hyper 0.13.10", + "jsonrpsee-types", + "jsonrpsee-utils", + "log", + "serde", + "serde_json", + "thiserror", + "unicase", + "url 2.2.1", +] + +[[package]] +name = "jsonrpsee-proc-macros" +version = "0.2.0-alpha.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cb3f732ccbeafd15cefb59c7c7b5ac6c553c2653613b63e5e7feb7f06a219e9" +dependencies = [ + "Inflector", + "proc-macro2 1.0.24", + "quote 1.0.9", + "syn 1.0.63", +] + +[[package]] +name = "jsonrpsee-types" +version = "0.2.0-alpha.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a8cd20c190e75dc56f7543b9d5713c3186351b301b5507ea6b85d8c403aac78" +dependencies = [ + "async-trait", + "futures 0.3.13", + "log", + "serde", + "serde_json", + "smallvec 1.6.1", + "thiserror", +] + +[[package]] +name = "jsonrpsee-utils" +version = "0.2.0-alpha.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51670a3b56e5fb0d325920ce317c76184b8afabfd7bc5009831229cfef0732b" +dependencies = [ + "futures 0.3.13", + "globset", + "hyper 0.13.10", + "jsonrpsee-types", + "lazy_static", + "log", + "unicase", +] + [[package]] name = "keccak" version = "0.1.0" @@ -2843,8 +2967,8 @@ dependencies = [ [[package]] name = "kusama-runtime" -version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +version = "0.8.29" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "bitvec", "frame-executive", @@ -2859,6 +2983,7 @@ dependencies = [ "pallet-bounties", "pallet-collective", "pallet-democracy", + "pallet-election-provider-multi-phase", "pallet-elections-phragmen", "pallet-grandpa", "pallet-identity", @@ -2976,9 +3101,9 @@ checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a" [[package]] name = "libc" -version = "0.2.86" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c" +checksum = "03b07a082330a35e43f63177cc01689da34fbffa0105e1246cf0311472cac73a" [[package]] name = "libloading" @@ -2998,16 +3123,15 @@ checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" [[package]] name = "libp2p" -version = "0.34.0" +version = "0.35.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5133112ce42be9482f6a87be92a605dd6bbc9e93c297aee77d172ff06908f3a" +checksum = "adc225a49973cf9ab10d0cdd6a4b8f0cda299df9b760824bbb623f15f8f0c95a" dependencies = [ "atomic", "bytes 1.0.1", - "futures 0.3.12", + "futures 0.3.13", "lazy_static", "libp2p-core", - "libp2p-core-derive", "libp2p-deflate", "libp2p-dns", "libp2p-floodsub", @@ -3022,6 +3146,7 @@ dependencies = [ "libp2p-pnet", "libp2p-request-response", "libp2p-swarm", + "libp2p-swarm-derive", "libp2p-tcp", "libp2p-uds", "libp2p-wasm-ext", @@ -3045,7 +3170,7 @@ dependencies = [ "ed25519-dalek", "either", "fnv", - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", "lazy_static", "libsecp256k1", @@ -3068,16 +3193,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "libp2p-core-derive" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4bc40943156e42138d22ed3c57ff0e1a147237742715937622a99b10fbe0156" -dependencies = [ - "quote 1.0.9", - "syn 1.0.60", -] - [[package]] name = "libp2p-deflate" version = "0.27.1" @@ -3085,7 +3200,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d42eed63305f0420736fa487f9acef720c4528bd7852a6a760f5ccde4813345" dependencies = [ "flate2", - "futures 0.3.12", + "futures 0.3.13", "libp2p-core", ] @@ -3095,7 +3210,7 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5153b6db68fd4baa3b304e377db744dd8fea8ff4e4504509ee636abcde88d3e3" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "libp2p-core", "log", ] @@ -3108,7 +3223,7 @@ checksum = "b3c63dfa06581b24b1d12bf9815b43689a784424be217d6545c800c7c75a207f" dependencies = [ "cuckoofilter", "fnv", - "futures 0.3.12", + "futures 0.3.13", "libp2p-core", "libp2p-swarm", "log", @@ -3120,16 +3235,16 @@ dependencies = [ [[package]] name = "libp2p-gossipsub" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12451ba9493e87c91baf2a6dffce9ddf1fbc807a0861532d7cf477954f8ebbee" +checksum = "502dc5fcbfec4aa1c63ef3f7307ffe20e90c1a1387bf23ed0bec087f2dde58a1" dependencies = [ - "asynchronous-codec 0.5.0", + "asynchronous-codec 0.6.0", "base64 0.13.0", "byteorder", "bytes 1.0.1", "fnv", - "futures 0.3.12", + "futures 0.3.13", "hex_fmt", "libp2p-core", "libp2p-swarm", @@ -3140,7 +3255,7 @@ dependencies = [ "regex", "sha2 0.9.3", "smallvec 1.6.1", - "unsigned-varint 0.6.0", + "unsigned-varint 0.7.0", "wasm-timer", ] @@ -3150,7 +3265,7 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b40fb36a059b7a8cce1514bd8b546fa612e006c9937caa7f5950cb20021fe91e" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "libp2p-core", "libp2p-swarm", "log", @@ -3171,7 +3286,7 @@ dependencies = [ "bytes 1.0.1", "either", "fnv", - "futures 0.3.12", + "futures 0.3.13", "libp2p-core", "libp2p-swarm", "log", @@ -3195,7 +3310,7 @@ dependencies = [ "async-io", "data-encoding", "dns-parser", - "futures 0.3.12", + "futures 0.3.13", "if-watch", "lazy_static", "libp2p-core", @@ -3215,7 +3330,7 @@ checksum = "350ce8b3923594aedabd5d6e3f875d058435052a29c3f32df378bc70d10be464" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.0.1", - "futures 0.3.12", + "futures 0.3.13", "libp2p-core", "log", "nohash-hasher", @@ -3233,7 +3348,7 @@ checksum = "4aca322b52a0c5136142a7c3971446fb1e9964923a526c9cc6ef3b7c94e57778" dependencies = [ "bytes 1.0.1", "curve25519-dalek 3.0.2", - "futures 0.3.12", + "futures 0.3.13", "lazy_static", "libp2p-core", "log", @@ -3253,7 +3368,7 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f3813276d0708c8db0f500d8beda1bda9ad955723b9cb272c41f4727256f73c" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "libp2p-core", "libp2p-swarm", "log", @@ -3270,7 +3385,7 @@ checksum = "9d58defcadb646ae4b033e130b48d87410bf76394dc3335496cae99dac803e61" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.0.1", - "futures 0.3.12", + "futures 0.3.13", "libp2p-core", "log", "prost", @@ -3285,7 +3400,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce3374f3b28162db9d3442c9347c4f14cb01e8290052615c7d341d40eae0599" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "log", "pin-project 1.0.5", "rand 0.7.3", @@ -3301,7 +3416,7 @@ checksum = "10e5552827c33d8326502682da73a0ba4bfa40c1b55b216af3c303f32169dd89" dependencies = [ "async-trait", "bytes 1.0.1", - "futures 0.3.12", + "futures 0.3.13", "libp2p-core", "libp2p-swarm", "log", @@ -3320,7 +3435,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7955b973e1fd2bd61ffd43ce261c1223f61f4aacd5bae362a924993f9a25fd98" dependencies = [ "either", - "futures 0.3.12", + "futures 0.3.13", "libp2p-core", "log", "rand 0.7.3", @@ -3329,6 +3444,16 @@ dependencies = [ "wasm-timer", ] +[[package]] +name = "libp2p-swarm-derive" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c564ebaa36a64839f51eaddb0243aaaa29ce64affb56129193cc3248b72af273" +dependencies = [ + "quote 1.0.9", + "syn 1.0.63", +] + [[package]] name = "libp2p-tcp" version = "0.27.1" @@ -3336,7 +3461,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88a5aef80e519a6cb8e2663605142f97baaaea1a252eecbf8756184765f7471b" dependencies = [ "async-io", - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", "if-watch", "ipnet", @@ -3353,7 +3478,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80ac51ce419f60be966e02103c17f67ff5dc4422ba83ba54d251d6c62a4ed487" dependencies = [ "async-std", - "futures 0.3.12", + "futures 0.3.13", "libp2p-core", "log", ] @@ -3364,7 +3489,7 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6149c46cb76935c80bc8be6ec6e3ebd5f5e1679765a255fb34331d54610f15dd" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "js-sys", "libp2p-core", "parity-send-wrapper", @@ -3379,24 +3504,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3b1c6a3431045da8b925ed83384e4c5163e14b990572307fca9c507435d4d22" dependencies = [ "either", - "futures 0.3.12", + "futures 0.3.13", "futures-rustls", "libp2p-core", "log", "quicksink", "rw-stream-sink", "soketto", - "url 2.2.0", + "url 2.2.1", "webpki-roots", ] [[package]] name = "libp2p-yamux" -version = "0.30.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "490b8b27fc40fe35212df1b6a3d14bffaa4117cbff956fdc2892168a371102ad" +checksum = "4819358c542a86ff95f6ae691efb4b94ddaf477079b01a686f5705b79bfc232a" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "libp2p-core", "parking_lot 0.11.1", "thiserror", @@ -3623,9 +3748,9 @@ dependencies = [ [[package]] name = "metered-channel" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", ] @@ -3635,36 +3760,36 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c023c3f16109e7f33aa451f773fd61070e265b4977d0b6e344a51049296dd7df" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "rand 0.7.3", "thrift", ] [[package]] name = "minicbor" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3265a9f5210bb726f81ef9c456ae0aff5321cd95748c0e71889b0e19d8f0332b" +checksum = "1c2b2c73f9640fccab53947e2b3474d5071fcbc8f82cac51ddf6c8041a30a9ea" dependencies = [ "minicbor-derive", ] [[package]] name = "minicbor-derive" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "130b9455e28a3f308f6579671816a6f2621e2e0cbf55dc2f886345bef699481e" +checksum = "19ce18b5423c573a13e80cb3046ea0af6379ef725dc3af4886bdb8f4e5093068" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] name = "miniz_oxide" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d" +checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" dependencies = [ "adler", "autocfg", @@ -3790,7 +3915,7 @@ dependencies = [ "proc-macro-error", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", "synstructure", ] @@ -3802,12 +3927,12 @@ checksum = "1255076139a83bb467426e7f8d0134968a8118844faa755985e077cf31850333" [[package]] name = "multistream-select" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5df70763c86c98487451f307e1b68b4100da9076f4c12146905fc2054277f4e8" +checksum = "7d91ec0a2440aaff5f78ec35631a7027d50386c6163aa975f7caa0d5da4b6ff8" dependencies = [ "bytes 1.0.1", - "futures 0.3.12", + "futures 0.3.13", "log", "pin-project 1.0.5", "smallvec 1.6.1", @@ -3821,7 +3946,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6b6147c3d50b4f3cdabfe2ecc94a0191fd3d6ad58aefd9664cf396285883486" dependencies = [ "approx", - "generic-array 0.13.2", + "generic-array 0.13.3", "matrixmultiply", "num-complex", "num-rational", @@ -3864,9 +3989,9 @@ dependencies = [ [[package]] name = "nix" -version = "0.19.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ccba0cfe4fdf15982d1674c69b1fd80bad427d293849982668dfe454bd61f2" +checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a" dependencies = [ "bitflags", "cc", @@ -3977,9 +4102,9 @@ checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4" [[package]] name = "once_cell" -version = "1.5.2" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0" +checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3" dependencies = [ "parking_lot 0.11.1", ] @@ -4029,7 +4154,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", @@ -4045,7 +4170,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", @@ -4060,11 +4185,12 @@ dependencies = [ [[package]] name = "pallet-babe" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "log", "pallet-authorship", "pallet-session", "pallet-timestamp", @@ -4073,7 +4199,6 @@ dependencies = [ "sp-application-crypto", "sp-consensus-babe", "sp-consensus-vrf", - "sp-inherents", "sp-io", "sp-runtime", "sp-session", @@ -4085,11 +4210,12 @@ dependencies = [ [[package]] name = "pallet-balances" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "serde", "sp-runtime", @@ -4099,7 +4225,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", @@ -4113,10 +4239,11 @@ dependencies = [ [[package]] name = "pallet-collective" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", + "log", "parity-scale-codec", "serde", "sp-core", @@ -4128,7 +4255,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-benchmarking", "frame-support", @@ -4140,13 +4267,33 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-election-provider-multi-phase" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +dependencies = [ + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "serde", + "sp-arithmetic", + "sp-election-providers", + "sp-io", + "sp-npos-elections", + "sp-runtime", + "sp-std", + "static_assertions", +] + [[package]] name = "pallet-elections-phragmen" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", + "log", "parity-scale-codec", "serde", "sp-npos-elections", @@ -4157,11 +4304,12 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "log", "pallet-authorship", "pallet-session", "parity-scale-codec", @@ -4178,7 +4326,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4194,10 +4342,11 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", + "log", "pallet-authorship", "parity-scale-codec", "serde", @@ -4212,7 +4361,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", @@ -4228,7 +4377,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", @@ -4242,7 +4391,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", @@ -4257,7 +4406,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", @@ -4271,10 +4420,11 @@ dependencies = [ [[package]] name = "pallet-offences" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", + "log", "pallet-balances", "parity-scale-codec", "serde", @@ -4286,7 +4436,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", @@ -4301,7 +4451,7 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", @@ -4314,7 +4464,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "enumflags2", "frame-support", @@ -4329,11 +4479,12 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "serde", "sp-io", @@ -4344,7 +4495,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", @@ -4364,7 +4515,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", @@ -4378,15 +4529,17 @@ dependencies = [ [[package]] name = "pallet-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", + "log", "pallet-authorship", "pallet-session", "parity-scale-codec", "serde", "sp-application-crypto", + "sp-election-providers", "sp-io", "sp-npos-elections", "sp-runtime", @@ -4398,18 +4551,18 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] name = "pallet-sudo" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", @@ -4436,12 +4589,13 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "impl-trait-for-tuples", + "log", "parity-scale-codec", "serde", "sp-inherents", @@ -4454,7 +4608,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", @@ -4468,7 +4622,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", @@ -4484,7 +4638,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4501,7 +4655,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -4512,7 +4666,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", @@ -4527,7 +4681,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-support", "frame-system", @@ -4542,7 +4696,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "enumflags2", "frame-support", @@ -4558,7 +4712,7 @@ name = "parachain-collator" version = "2.0.0" dependencies = [ "cumulus-client-collator", - "cumulus-client-consensus", + "cumulus-client-consensus-relay-chain", "cumulus-client-network", "cumulus-client-service", "cumulus-primitives-core", @@ -4608,7 +4762,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#fad35c28b1f73aaeb25dedb46674b48774c092b4" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#24b1ee6bd1d96f255889f167e59ef9c9399a6305" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -4661,12 +4815,13 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "111e193c96758d476d272093a853882668da17489f76bf4361b8decae0b6c515" +checksum = "495197c078e54b8735181aa35c00a327f7f3a3cc00a1ee8c95926dd010f0ec6b" dependencies = [ "blake2-rfc", "crc32fast", + "fs2", "hex", "libc", "log", @@ -4690,14 +4845,14 @@ dependencies = [ "serde", "static_assertions", "unsigned-varint 0.7.0", - "url 2.2.0", + "url 2.2.1", ] [[package]] name = "parity-scale-codec" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75c823fdae1bb5ff5708ee61a62697e6296175dc671710876871c853f48592b3" +checksum = "0cd3dab59b5cf4bc81069ade0fc470341a1ef3ad5fa73e5a8943bed2ec12b2e8" dependencies = [ "arrayvec 0.5.2", "bitvec", @@ -4708,14 +4863,14 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9029e65297c7fd6d7013f0579e193ec2b34ae78eabca854c9417504ad8a2d214" +checksum = "fa04976a81fde04924b40cc4036c4d12841e8bb04325a5cf2ada75731a150a7d" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] @@ -4731,7 +4886,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e57fea504fea33f9fbb5f49f378359030e7e026a6ab849bb9e8f0787376f1bf" dependencies = [ "bytes 0.4.12", - "futures 0.1.30", + "futures 0.1.31", "libc", "log", "mio-named-pipes", @@ -4768,7 +4923,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" dependencies = [ "proc-macro2 1.0.24", - "syn 1.0.60", + "syn 1.0.63", "synstructure", ] @@ -4802,7 +4957,7 @@ dependencies = [ "rand 0.7.3", "sha-1 0.8.2", "slab", - "url 2.2.0", + "url 2.2.1", ] [[package]] @@ -4983,7 +5138,7 @@ dependencies = [ "pest_meta", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] @@ -5033,7 +5188,7 @@ checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] @@ -5044,20 +5199,20 @@ checksum = "758669ae3558c6f74bd2a18b41f7ac0b5a195aea6639d6a9b5e5d1ad5ba24c0b" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] name = "pin-project-lite" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b" +checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" [[package]] name = "pin-project-lite" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439697af366c49a6d0a010c56a0d97685bc140ce0d377b13a2ea2aa42d64a827" +checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905" [[package]] name = "pin-utils" @@ -5080,9 +5235,9 @@ checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325" [[package]] name = "polkadot-approval-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -5095,9 +5250,9 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-subsystem", @@ -5110,15 +5265,19 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", + "lru", "parity-scale-codec", "polkadot-erasure-coding", + "polkadot-node-core-runtime-api", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", + "rand 0.8.3", + "sp-application-crypto", "sp-core", "sp-keystore", "thiserror", @@ -5129,9 +5288,9 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", "lru", "polkadot-erasure-coding", @@ -5148,11 +5307,11 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +version = "0.8.29" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "frame-benchmarking-cli", - "futures 0.3.12", + "futures 0.3.13", "log", "polkadot-parachain", "polkadot-service", @@ -5164,14 +5323,15 @@ dependencies = [ "substrate-build-script-utils", "thiserror", "tracing-futures", + "try-runtime-cli", ] [[package]] name = "polkadot-collator-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -5185,7 +5345,7 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "0.7.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -5196,8 +5356,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +version = "0.8.29" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -5207,13 +5367,28 @@ dependencies = [ "thiserror", ] +[[package]] +name = "polkadot-gossip-support" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +dependencies = [ + "futures 0.3.13", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "rand 0.8.3", + "tracing", + "tracing-futures", +] + [[package]] name = "polkadot-network-bridge" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "async-trait", - "futures 0.3.12", + "futures 0.3.13", "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-subsystem", @@ -5228,9 +5403,9 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -5242,13 +5417,43 @@ dependencies = [ "tracing-futures", ] +[[package]] +name = "polkadot-node-core-approval-voting" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +dependencies = [ + "bitvec", + "derive_more 0.99.11", + "futures 0.3.13", + "futures-timer 3.0.2", + "kvdb", + "kvdb-rocksdb", + "merlin", + "parity-scale-codec", + "polkadot-node-jaeger", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-primitives", + "sc-client-api", + "sc-keystore", + "schnorrkel", + "sp-application-crypto", + "sp-blockchain", + "sp-consensus-slots", + "sp-runtime", + "tracing", + "tracing-futures", +] + [[package]] name = "polkadot-node-core-av-store" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "bitvec", - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", "kvdb", "kvdb-rocksdb", @@ -5267,10 +5472,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "bitvec", - "futures 0.3.12", + "futures 0.3.13", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -5286,9 +5491,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -5302,9 +5507,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-selection" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -5318,9 +5523,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -5335,9 +5540,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -5349,9 +5554,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-proposer" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", "polkadot-node-subsystem", "polkadot-overseer", @@ -5373,10 +5578,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "bitvec", - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -5389,9 +5594,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "memory-lru", "parity-util-mem", "polkadot-node-subsystem", @@ -5407,12 +5612,13 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "async-std", "lazy_static", "log", "mick-jaeger", + "parity-scale-codec", "parking_lot 0.11.1", "polkadot-primitives", "sc-network", @@ -5423,9 +5629,9 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", @@ -5439,9 +5645,9 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "parity-scale-codec", "polkadot-primitives", "polkadot-statement-table", @@ -5457,12 +5663,12 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "async-std", "async-trait", "derive_more 0.99.11", - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", "lazy_static", "log", @@ -5474,6 +5680,7 @@ dependencies = [ "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-primitives", + "polkadot-procmacro-subsystem-dispatch-gen", "polkadot-statement-table", "sc-network", "smallvec 1.6.1", @@ -5487,10 +5694,10 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "async-trait", - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", "metered-channel", "parity-scale-codec", @@ -5514,10 +5721,10 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "async-trait", - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", "oorandom", "polkadot-node-primitives", @@ -5531,11 +5738,11 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +version = "0.8.29" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "derive_more 0.99.11", - "futures 0.3.12", + "futures 0.3.13", "libc", "log", "parity-scale-codec", @@ -5559,9 +5766,9 @@ dependencies = [ [[package]] name = "polkadot-pov-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -5573,8 +5780,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +version = "0.8.29" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "bitvec", "frame-system", @@ -5599,10 +5806,21 @@ dependencies = [ "sp-version", ] +[[package]] +name = "polkadot-procmacro-subsystem-dispatch-gen" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +dependencies = [ + "assert_matches", + "proc-macro2 1.0.24", + "quote 1.0.9", + "syn 1.0.63", +] + [[package]] name = "polkadot-rpc" -version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +version = "0.8.29" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "jsonrpc-core", "pallet-transaction-payment-rpc", @@ -5631,8 +5849,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +version = "0.8.29" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "bitvec", "frame-executive", @@ -5647,6 +5865,7 @@ dependencies = [ "pallet-bounties", "pallet-collective", "pallet-democracy", + "pallet-election-provider-multi-phase", "pallet-elections-phragmen", "pallet-grandpa", "pallet-identity", @@ -5696,8 +5915,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +version = "0.8.29" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "bitvec", "frame-support", @@ -5733,7 +5952,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "bitvec", "derive_more 0.99.11", @@ -5770,11 +5989,11 @@ dependencies = [ [[package]] name = "polkadot-service" version = "0.8.3" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "frame-benchmarking", "frame-system-rpc-runtime-api", - "futures 0.3.12", + "futures 0.3.13", "hex-literal 0.3.1", "kusama-runtime", "pallet-babe", @@ -5786,8 +6005,10 @@ dependencies = [ "polkadot-availability-distribution", "polkadot-availability-recovery", "polkadot-collator-protocol", + "polkadot-gossip-support", "polkadot-network-bridge", "polkadot-node-collation-generation", + "polkadot-node-core-approval-voting", "polkadot-node-core-av-store", "polkadot-node-core-backing", "polkadot-node-core-bitfield-signing", @@ -5853,10 +6074,10 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "arrayvec 0.5.2", - "futures 0.3.12", + "futures 0.3.13", "indexmap", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -5870,8 +6091,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +version = "0.8.29" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -5880,8 +6101,8 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" -version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +version = "0.8.29" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "bitvec", "frame-executive", @@ -5920,6 +6141,7 @@ dependencies = [ "sp-block-builder", "sp-consensus-babe", "sp-core", + "sp-election-providers", "sp-inherents", "sp-io", "sp-offchain", @@ -5934,13 +6156,13 @@ dependencies = [ [[package]] name = "polkadot-test-service" -version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +version = "0.8.29" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "frame-benchmarking", "frame-system", - "futures 0.1.30", - "futures 0.3.12", + "futures 0.1.31", + "futures 0.3.13", "hex", "pallet-balances", "pallet-staking", @@ -6056,7 +6278,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", "version_check", ] @@ -6153,7 +6375,7 @@ dependencies = [ "itertools", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] @@ -6206,7 +6428,7 @@ checksum = "77de3c815e5a160b1539c6592796801df2043ae35e123b46d73380cfa57af858" dependencies = [ "futures-core", "futures-sink", - "pin-project-lite 0.1.11", + "pin-project-lite 0.1.12", ] [[package]] @@ -6421,7 +6643,7 @@ checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a" dependencies = [ "crossbeam-channel", "crossbeam-deque 0.8.0", - "crossbeam-utils 0.8.1", + "crossbeam-utils 0.8.3", "lazy_static", "num_cpus", ] @@ -6497,7 +6719,7 @@ checksum = "4c38e3aecd2b21cb3959637b883bb3714bc7e43f0268b9a29d3743ee3e55cdd2" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] @@ -6551,6 +6773,22 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "remote-externalities" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +dependencies = [ + "env_logger 0.8.3", + "hex-literal 0.3.1", + "jsonrpsee-http-client", + "jsonrpsee-proc-macros", + "jsonrpsee-types", + "log", + "parity-scale-codec", + "sp-core", + "sp-io", +] + [[package]] name = "remove_dir_all" version = "0.5.3" @@ -6603,14 +6841,15 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +version = "0.8.29" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "frame-executive", "frame-support", "frame-system", "frame-system-rpc-runtime-api", "hex-literal 0.3.1", + "log", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", @@ -6673,7 +6912,7 @@ dependencies = [ "base64 0.13.0", "blake2b_simd", "constant_time_eq", - "crossbeam-utils 0.8.1", + "crossbeam-utils 0.8.3", ] [[package]] @@ -6747,7 +6986,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "pin-project 0.4.27", "static_assertions", ] @@ -6788,12 +7027,12 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "async-trait", "derive_more 0.99.11", "either", - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", "libp2p", "log", @@ -6816,9 +7055,9 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -6839,14 +7078,13 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "parity-scale-codec", "sc-client-api", "sp-api", "sp-block-builder", "sp-blockchain", - "sp-consensus", "sp-core", "sp-inherents", "sp-runtime", @@ -6856,7 +7094,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -6877,22 +7115,22 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] name = "sc-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "chrono", "fdlimit", - "futures 0.3.12", + "futures 0.3.13", "hex", "libp2p", "log", @@ -6926,11 +7164,11 @@ dependencies = [ [[package]] name = "sc-client-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "derive_more 0.99.11", "fnv", - "futures 0.3.12", + "futures 0.3.13", "hash-db", "kvdb", "lazy_static", @@ -6960,7 +7198,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "blake2-rfc", "hash-db", @@ -6990,7 +7228,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "sc-client-api", "sp-blockchain", @@ -7001,11 +7239,11 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "derive_more 0.99.11", "fork-tree", - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", "log", "merlin", @@ -7047,10 +7285,10 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "derive_more 0.99.11", - "futures 0.3.12", + "futures 0.3.13", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -7071,7 +7309,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7084,9 +7322,9 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -7110,7 +7348,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "log", "sc-client-api", @@ -7124,7 +7362,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "derive_more 0.99.11", "lazy_static", @@ -7153,7 +7391,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "derive_more 0.99.11", "parity-scale-codec", @@ -7169,7 +7407,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "log", "parity-scale-codec", @@ -7184,7 +7422,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "log", "parity-scale-codec", @@ -7202,13 +7440,13 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "derive_more 0.99.11", "dyn-clone", "finality-grandpa", "fork-tree", - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", "linked-hash-map", "log", @@ -7241,11 +7479,11 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "derive_more 0.99.11", "finality-grandpa", - "futures 0.3.12", + "futures 0.3.13", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -7265,10 +7503,10 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-warp-sync" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "derive_more 0.99.11", - "futures 0.3.12", + "futures 0.3.13", "log", "num-traits", "parity-scale-codec", @@ -7279,16 +7517,17 @@ dependencies = [ "sc-network", "sc-service", "sp-blockchain", + "sp-finality-grandpa", "sp-runtime", ] [[package]] name = "sc-informant" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "ansi_term 0.12.1", - "futures 0.3.12", + "futures 0.3.13", "log", "parity-util-mem", "sc-client-api", @@ -7303,11 +7542,11 @@ dependencies = [ [[package]] name = "sc-keystore" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "async-trait", "derive_more 0.99.11", - "futures 0.3.12", + "futures 0.3.13", "futures-util", "hex", "merlin", @@ -7323,7 +7562,7 @@ dependencies = [ [[package]] name = "sc-light" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "hash-db", "lazy_static", @@ -7342,7 +7581,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "async-std", "async-trait", @@ -7356,7 +7595,7 @@ dependencies = [ "erased-serde", "fnv", "fork-tree", - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", "hex", "ip_network", @@ -7395,9 +7634,9 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", "libp2p", "log", @@ -7411,11 +7650,11 @@ dependencies = [ [[package]] name = "sc-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "bytes 0.5.6", "fnv", - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", "hyper 0.13.10", "hyper-rustls", @@ -7438,9 +7677,9 @@ dependencies = [ [[package]] name = "sc-peerset" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "libp2p", "log", "serde_json", @@ -7451,7 +7690,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -7460,9 +7699,9 @@ dependencies = [ [[package]] name = "sc-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "hash-db", "jsonrpc-core", "jsonrpc-pubsub", @@ -7494,10 +7733,10 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "derive_more 0.99.11", - "futures 0.3.12", + "futures 0.3.13", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -7518,9 +7757,9 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ - "futures 0.1.30", + "futures 0.1.31", "jsonrpc-core", "jsonrpc-http-server", "jsonrpc-ipc-server", @@ -7536,12 +7775,12 @@ dependencies = [ [[package]] name = "sc-service" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "directories", "exit-future", - "futures 0.1.30", - "futures 0.3.12", + "futures 0.1.31", + "futures 0.3.13", "futures-timer 3.0.2", "hash-db", "jsonrpc-core", @@ -7599,7 +7838,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "log", "parity-scale-codec", @@ -7614,7 +7853,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -7634,10 +7873,10 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "chrono", - "futures 0.3.12", + "futures 0.3.13", "libp2p", "log", "parking_lot 0.11.1", @@ -7656,7 +7895,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "ansi_term 0.12.1", "atty", @@ -7684,21 +7923,21 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] name = "sc-transaction-graph" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "derive_more 0.99.11", - "futures 0.3.12", + "futures 0.3.13", "linked-hash-map", "log", "parity-util-mem", @@ -7717,9 +7956,9 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "futures-diagnose", "intervalier", "log", @@ -7798,7 +8037,7 @@ checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] @@ -7888,29 +8127,29 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.123" +version = "1.0.124" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d5161132722baa40d802cc70b15262b98258453e85e5d1d365c757c73869ae" +checksum = "bd761ff957cb2a45fbb9ab3da6512de9de55872866160b23c25f1a841e99d29f" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.123" +version = "1.0.124" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31" +checksum = "1800f7693e94e186f5e25a28291ae1570da908aff7d97a095dec1e56ff99069b" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] name = "serde_json" -version = "1.0.62" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea1c6153794552ea7cf7cf63b1231a25de00ec90db326ba6264440fa08e31486" +checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79" dependencies = [ "itoa", "ryu", @@ -8010,9 +8249,9 @@ checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" [[package]] name = "signal-hook" -version = "0.3.4" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "780f5e3fe0c66f67197236097d89de1e86216f1f6fdeaf47c442f854ab46c240" +checksum = "6aa894ef3fade0ee7243422f4fbbd6c2b48e6de767e621d37ef65f2310f53cea" dependencies = [ "libc", "signal-hook-registry", @@ -8104,7 +8343,7 @@ dependencies = [ "base64 0.12.3", "bytes 0.5.6", "flate2", - "futures 0.3.12", + "futures 0.3.13", "httparse", "log", "rand 0.7.3", @@ -8114,7 +8353,7 @@ dependencies = [ [[package]] name = "sp-allocator" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "log", "sp-core", @@ -8126,9 +8365,10 @@ dependencies = [ [[package]] name = "sp-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "hash-db", + "log", "parity-scale-codec", "sp-api-proc-macro", "sp-core", @@ -8142,19 +8382,19 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "blake2-rfc", "proc-macro-crate", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] name = "sp-application-crypto" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "parity-scale-codec", "serde", @@ -8166,7 +8406,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "integer-sqrt", "num-traits", @@ -8179,7 +8419,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "parity-scale-codec", "sp-api", @@ -8191,7 +8431,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "parity-scale-codec", "sp-inherents", @@ -8202,7 +8442,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "parity-scale-codec", "sp-api", @@ -8214,9 +8454,9 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "log", "lru", "parity-scale-codec", @@ -8232,7 +8472,7 @@ dependencies = [ [[package]] name = "sp-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "serde", "serde_json", @@ -8241,9 +8481,9 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "futures-timer 3.0.2", "libp2p", "log", @@ -8267,7 +8507,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "merlin", "parity-scale-codec", @@ -8287,7 +8527,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "parity-scale-codec", "sp-arithmetic", @@ -8297,7 +8537,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -8309,14 +8549,14 @@ dependencies = [ [[package]] name = "sp-core" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "base58", "blake2-rfc", "byteorder", "dyn-clonable", "ed25519-dalek", - "futures 0.3.12", + "futures 0.3.13", "hash-db", "hash256-std-hasher", "hex", @@ -8353,7 +8593,7 @@ dependencies = [ [[package]] name = "sp-database" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "kvdb", "parking_lot 0.11.1", @@ -8362,17 +8602,28 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", +] + +[[package]] +name = "sp-election-providers" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +dependencies = [ + "parity-scale-codec", + "sp-arithmetic", + "sp-npos-elections", + "sp-std", ] [[package]] name = "sp-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "environmental", "parity-scale-codec", @@ -8383,7 +8634,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "finality-grandpa", "log", @@ -8400,7 +8651,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "parity-scale-codec", "parking_lot 0.11.1", @@ -8412,9 +8663,9 @@ dependencies = [ [[package]] name = "sp-io" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "hash-db", "libsecp256k1", "log", @@ -8436,7 +8687,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "lazy_static", "sp-core", @@ -8447,11 +8698,11 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "async-trait", "derive_more 0.99.11", - "futures 0.3.12", + "futures 0.3.13", "merlin", "parity-scale-codec", "parking_lot 0.11.1", @@ -8464,7 +8715,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "parity-scale-codec", "serde", @@ -8477,18 +8728,18 @@ dependencies = [ [[package]] name = "sp-npos-elections-compact" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "proc-macro-crate", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] name = "sp-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "sp-api", "sp-core", @@ -8498,7 +8749,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "backtrace", ] @@ -8506,7 +8757,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "serde", "sp-core", @@ -8515,7 +8766,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "either", "hash256-std-hasher", @@ -8536,7 +8787,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -8553,19 +8804,19 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "Inflector", "proc-macro-crate", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] name = "sp-serializer" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "serde", "serde_json", @@ -8574,7 +8825,7 @@ dependencies = [ [[package]] name = "sp-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "parity-scale-codec", "sp-api", @@ -8587,7 +8838,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -8597,7 +8848,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "hash-db", "log", @@ -8619,12 +8870,12 @@ dependencies = [ [[package]] name = "sp-std" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" [[package]] name = "sp-storage" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "impl-serde", "parity-scale-codec", @@ -8637,7 +8888,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "log", "sp-core", @@ -8650,7 +8901,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -8664,7 +8915,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "log", "parity-scale-codec", @@ -8677,10 +8928,10 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "derive_more 0.99.11", - "futures 0.3.12", + "futures 0.3.13", "log", "parity-scale-codec", "serde", @@ -8693,7 +8944,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "hash-db", "memory-db", @@ -8707,9 +8958,9 @@ dependencies = [ [[package]] name = "sp-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "futures-core", "futures-timer 3.0.2", "lazy_static", @@ -8719,7 +8970,7 @@ dependencies = [ [[package]] name = "sp-version" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "impl-serde", "parity-scale-codec", @@ -8731,7 +8982,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -8824,7 +9075,7 @@ dependencies = [ "proc-macro-error", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] @@ -8845,7 +9096,7 @@ dependencies = [ "heck", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] @@ -8864,7 +9115,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "platforms", ] @@ -8872,10 +9123,10 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "frame-system-rpc-runtime-api", - "futures 0.3.12", + "futures 0.3.13", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -8895,7 +9146,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "async-std", "derive_more 0.99.11", @@ -8909,10 +9160,10 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ - "futures 0.1.30", - "futures 0.3.12", + "futures 0.1.31", + "futures 0.3.13", "hash-db", "hex", "parity-scale-codec", @@ -8952,7 +9203,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#e03ca38d45f438932ec92bf69a40b6b16b6ec643" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" dependencies = [ "ansi_term 0.12.1", "atty", @@ -8989,9 +9240,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.60" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081" +checksum = "8fd9bc7ccc2688b3344c2f48b9b546648b25ce0b20fc717ee7fa7981a8ca9717" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", @@ -9006,7 +9257,7 @@ checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", "unicode-xid 0.2.1", ] @@ -9024,9 +9275,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee5a98e506fb7231a304c3a1bd7c132a55016cf65001e0282480665870dfcb9" +checksum = "422045212ea98508ae3d28025bc5aaa2bd4a9cdaecd442a08da2ee620ee9ea95" [[package]] name = "tempfile" @@ -9062,22 +9313,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146" +checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1" +checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] @@ -9171,7 +9422,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" dependencies = [ "bytes 0.4.12", - "futures 0.1.30", + "futures 0.1.31", "mio", "num_cpus", "tokio-codec", @@ -9204,7 +9455,7 @@ dependencies = [ "mio", "mio-uds", "num_cpus", - "pin-project-lite 0.1.11", + "pin-project-lite 0.1.12", "signal-hook-registry", "slab", "winapi 0.3.9", @@ -9218,7 +9469,7 @@ checksum = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46" dependencies = [ "bytes 0.4.12", "either", - "futures 0.1.30", + "futures 0.1.31", ] [[package]] @@ -9228,7 +9479,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b" dependencies = [ "bytes 0.4.12", - "futures 0.1.30", + "futures 0.1.31", "tokio-io", ] @@ -9238,7 +9489,7 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e" dependencies = [ - "futures 0.1.30", + "futures 0.1.31", "tokio-executor", ] @@ -9249,7 +9500,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" dependencies = [ "crossbeam-utils 0.7.2", - "futures 0.1.30", + "futures 0.1.31", ] [[package]] @@ -9258,7 +9509,7 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4" dependencies = [ - "futures 0.1.30", + "futures 0.1.31", "tokio-io", "tokio-threadpool", ] @@ -9270,7 +9521,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" dependencies = [ "bytes 0.4.12", - "futures 0.1.30", + "futures 0.1.31", "log", ] @@ -9281,7 +9532,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d282d483052288b2308ba5ee795f5673b159c9bdf63c385a05609da782a5eae" dependencies = [ "bytes 0.4.12", - "futures 0.1.30", + "futures 0.1.31", "mio", "mio-named-pipes", "tokio 0.1.22", @@ -9294,7 +9545,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" dependencies = [ "crossbeam-utils 0.7.2", - "futures 0.1.30", + "futures 0.1.31", "lazy_static", "log", "mio", @@ -9324,7 +9575,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24da22d077e0f15f55162bdbdc661228c1581892f52074fb242678d015b45162" dependencies = [ - "futures 0.1.30", + "futures 0.1.31", ] [[package]] @@ -9334,7 +9585,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee" dependencies = [ "fnv", - "futures 0.1.30", + "futures 0.1.31", ] [[package]] @@ -9344,7 +9595,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" dependencies = [ "bytes 0.4.12", - "futures 0.1.30", + "futures 0.1.31", "iovec", "mio", "tokio-io", @@ -9360,7 +9611,7 @@ dependencies = [ "crossbeam-deque 0.7.3", "crossbeam-queue", "crossbeam-utils 0.7.2", - "futures 0.1.30", + "futures 0.1.31", "lazy_static", "log", "num_cpus", @@ -9375,7 +9626,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" dependencies = [ "crossbeam-utils 0.7.2", - "futures 0.1.30", + "futures 0.1.31", "slab", "tokio-executor", ] @@ -9387,7 +9638,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82" dependencies = [ "bytes 0.4.12", - "futures 0.1.30", + "futures 0.1.31", "log", "mio", "tokio-codec", @@ -9402,7 +9653,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0" dependencies = [ "bytes 0.4.12", - "futures 0.1.30", + "futures 0.1.31", "iovec", "libc", "log", @@ -9423,7 +9674,7 @@ dependencies = [ "futures-core", "futures-sink", "log", - "pin-project-lite 0.1.11", + "pin-project-lite 0.1.12", "tokio 0.2.25", ] @@ -9444,26 +9695,26 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.23" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d40a22fd029e33300d8d89a5cc8ffce18bb7c587662f54629e94c9de5487f3" +checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f" dependencies = [ "cfg-if 1.0.0", "log", - "pin-project-lite 0.2.4", + "pin-project-lite 0.2.6", "tracing-attributes", "tracing-core", ] [[package]] name = "tracing-attributes" -version = "0.1.12" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f080ea7e4107844ef4766459426fa2d5c1ada2e47edba05dc7fa99d9629f47" +checksum = "41768be5b9f3489491825f56f01f25290aa1d3e7cc97e182d4d34360493ba6fa" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", ] [[package]] @@ -9477,19 +9728,19 @@ dependencies = [ [[package]] name = "tracing-futures" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "pin-project 0.4.27", + "pin-project 1.0.5", "tracing", ] [[package]] name = "tracing-log" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e0f8c7178e13481ff6765bd169b33e8d554c5d2bbede5e32c356194be02b9b9" +checksum = "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3" dependencies = [ "lazy_static", "log", @@ -9508,9 +9759,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1fa8f0c8f4c594e4fc9debc1990deab13238077271ba84dd853d54902ee3401" +checksum = "8ab8966ac3ca27126141f7999361cc97dd6fb4b71da04c02044fa9045d98bb96" dependencies = [ "ansi_term 0.12.1", "chrono", @@ -9556,6 +9807,28 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" +[[package]] +name = "try-runtime-cli" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +dependencies = [ + "frame-try-runtime", + "log", + "parity-scale-codec", + "remote-externalities", + "sc-cli", + "sc-client-api", + "sc-executor", + "sc-service", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-externalities", + "sp-runtime", + "sp-state-machine", + "structopt", +] + [[package]] name = "twox-hash" version = "1.6.0" @@ -9701,12 +9974,12 @@ dependencies = [ [[package]] name = "url" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e" +checksum = "9ccd964113622c8e9322cfac19eb1004a07e636c545f325da085d5cdde6f1f8b" dependencies = [ "form_urlencoded", - "idna 0.2.1", + "idna 0.2.2", "matches", "percent-encoding 2.1.0", ] @@ -9773,7 +10046,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230" dependencies = [ - "futures 0.1.30", + "futures 0.1.31", "log", "try-lock", ] @@ -9802,9 +10075,9 @@ checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" [[package]] name = "wasm-bindgen" -version = "0.2.70" +version = "0.2.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55c0f7123de74f0dab9b7d00fd614e7b19349cd1e2f5252bbe9b1754b59433be" +checksum = "7ee1280240b7c461d6a0071313e08f34a60b0365f14260362e5a2b17d1d31aa7" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -9812,24 +10085,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.70" +version = "0.2.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bc45447f0d4573f3d65720f636bbcc3dd6ce920ed704670118650bcd47764c7" +checksum = "5b7d8b6942b8bb3a9b0e73fc79b98095a27de6fa247615e59d096754a3bc2aa8" dependencies = [ "bumpalo", "lazy_static", "log", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3de431a2910c86679c34283a33f66f4e4abd7e0aec27b6669060148872aadf94" +checksum = "8e67a5806118af01f0d9045915676b22aaebecf4178ae7021bc171dab0b897ab" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -9839,9 +10112,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.70" +version = "0.2.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b8853882eef39593ad4174dd26fc9865a64e84026d223f63bb2c42affcbba2c" +checksum = "e5ac38da8ef716661f0f36c0d8320b89028efe10c7c0afde65baffb496ce0d3b" dependencies = [ "quote 1.0.9", "wasm-bindgen-macro-support", @@ -9849,22 +10122,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.70" +version = "0.2.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4133b5e7f2a531fa413b3a1695e925038a05a71cf67e87dafa295cb645a01385" +checksum = "cc053ec74d454df287b9374ee8abb36ffd5acb95ba87da3ba5b7d3fe20eb401e" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.70" +version = "0.2.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd4945e4943ae02d15c13962b38a5b1e81eadd4b71214eee75af64a4d6a4fd64" +checksum = "7d6f8ec44822dd71f5f221a5847fb34acd9060535c1211b70a05844c0f6383b1" [[package]] name = "wasm-gc-api" @@ -9883,7 +10156,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "js-sys", "parking_lot 0.11.1", "pin-utils", @@ -10110,27 +10383,27 @@ dependencies = [ [[package]] name = "wast" -version = "33.0.0" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d04fe175c7f78214971293e7d8875673804e736092206a3a4544dbc12811c1b" +checksum = "db5ae96da18bb5926341516fd409b5a8ce4e4714da7f0a1063d3b20ac9f9a1e1" dependencies = [ "leb128", ] [[package]] name = "wat" -version = "1.0.34" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ec9c6ee01ae07a26adadcdfed22c7a97e0b8cbee9c06e0e96076ece5aeb5cfe" +checksum = "0b0fa059022c5dabe129f02b429d67086400deb8277f89c975555dacc1dadbcc" dependencies = [ "wast", ] [[package]] name = "web-sys" -version = "0.3.47" +version = "0.3.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c40dc691fc48003eba817c38da7113c15698142da971298003cac3ef175680b3" +checksum = "ec600b26223b2948cedfde2a0aa6756dcf1fef616f43d7b3097aaf53a6c4d92b" dependencies = [ "js-sys", "wasm-bindgen", @@ -10166,8 +10439,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.8.28" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +version = "0.8.29" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "bitvec", "frame-executive", @@ -10181,6 +10454,7 @@ dependencies = [ "pallet-balances", "pallet-collective", "pallet-democracy", + "pallet-election-provider-multi-phase", "pallet-elections-phragmen", "pallet-grandpa", "pallet-identity", @@ -10323,7 +10597,7 @@ dependencies = [ [[package]] name = "xcm" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "parity-scale-codec", ] @@ -10331,7 +10605,7 @@ dependencies = [ [[package]] name = "xcm-builder" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "frame-support", "parity-scale-codec", @@ -10347,10 +10621,11 @@ dependencies = [ [[package]] name = "xcm-executor" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#9bc8915acd5507a77737371fdd892bb1f6a8db22" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" dependencies = [ "frame-support", "impl-trait-for-tuples", + "log", "parity-scale-codec", "sp-arithmetic", "sp-core", @@ -10362,11 +10637,11 @@ dependencies = [ [[package]] name = "yamux" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aeb8c4043cac71c3c299dff107171c220d179492350ea198e109a414981b83c" +checksum = "1cc7bd8c983209ed5d527f44b01c41b7dc146fd960c61cf9e1d25399841dc271" dependencies = [ - "futures 0.3.12", + "futures 0.3.13", "log", "nohash-hasher", "parking_lot 0.11.1", @@ -10391,7 +10666,7 @@ checksum = "c3f369ddb18862aba61aa49bf31e74d29f0f162dec753063200e1dc084345d16" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.60", + "syn 1.0.63", "synstructure", ] diff --git a/node/Cargo.toml b/node/Cargo.toml index 0c97f42b..81df0a27 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -156,7 +156,7 @@ branch = 'rococo-v1' version = '3.0.0' # Cumulus dependencies -[dependencies.cumulus-client-consensus] +[dependencies.cumulus-client-consensus-relay-chain] git = 'https://github.com/paritytech/cumulus.git' branch = 'rococo-v1' diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index f6ca03c5..98bd3b9e 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -11,26 +11,26 @@ pub type ChainSpec = sc_service::GenericChainSpec(seed: &str) -> ::Public { - TPublic::Pair::from_string(&format!("//{}", seed), None) - .expect("static values are valid; qed") - .public() + TPublic::Pair::from_string(&format!("//{}", seed), None) + .expect("static values are valid; qed") + .public() } /// The extensions for the [`ChainSpec`]. #[derive(Debug, Clone, PartialEq, Serialize, Deserialize, ChainSpecGroup, ChainSpecExtension)] #[serde(deny_unknown_fields)] pub struct Extensions { - /// The relay chain of the Parachain. - pub relay_chain: String, - /// The id of the Parachain. - pub para_id: u32, + /// The relay chain of the Parachain. + pub relay_chain: String, + /// The id of the Parachain. + pub para_id: u32, } impl Extensions { - /// Try to get the extension from the given `ChainSpec`. - pub fn try_get(chain_spec: &dyn sc_service::ChainSpec) -> Option<&Self> { - sc_chain_spec::get_extension(chain_spec.extensions()) - } + /// Try to get the extension from the given `ChainSpec`. + pub fn try_get(chain_spec: &dyn sc_service::ChainSpec) -> Option<&Self> { + sc_chain_spec::get_extension(chain_spec.extensions()) + } } type AccountPublic = ::Signer; @@ -38,99 +38,99 @@ type AccountPublic = ::Signer; /// Helper function to generate an account ID from seed pub fn get_account_id_from_seed(seed: &str) -> AccountId where - AccountPublic: From<::Public>, + AccountPublic: From<::Public>, { - AccountPublic::from(get_from_seed::(seed)).into_account() + AccountPublic::from(get_from_seed::(seed)).into_account() } pub fn development_config(id: ParaId) -> ChainSpec { - ChainSpec::from_genesis( - // Name - "Development", - // ID - "dev", - ChainType::Local, - move || { - testnet_genesis( - get_account_id_from_seed::("Alice"), - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - ], - id, - ) - }, - vec![], - None, - None, - None, - Extensions { - relay_chain: "rococo-dev".into(), - para_id: id.into(), - }, - ) + ChainSpec::from_genesis( + // Name + "Development", + // ID + "dev", + ChainType::Local, + move || { + testnet_genesis( + get_account_id_from_seed::("Alice"), + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + ], + id, + ) + }, + vec![], + None, + None, + None, + Extensions { + relay_chain: "rococo-dev".into(), + para_id: id.into(), + }, + ) } pub fn local_testnet_config(id: ParaId) -> ChainSpec { - ChainSpec::from_genesis( - // Name - "Local Testnet", - // ID - "local_testnet", - ChainType::Local, - move || { - testnet_genesis( - get_account_id_from_seed::("Alice"), - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Charlie"), - get_account_id_from_seed::("Dave"), - get_account_id_from_seed::("Eve"), - get_account_id_from_seed::("Ferdie"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - get_account_id_from_seed::("Charlie//stash"), - get_account_id_from_seed::("Dave//stash"), - get_account_id_from_seed::("Eve//stash"), - get_account_id_from_seed::("Ferdie//stash"), - ], - id, - ) - }, - vec![], - None, - None, - None, - Extensions { - relay_chain: "rococo-local".into(), - para_id: id.into(), - }, - ) + ChainSpec::from_genesis( + // Name + "Local Testnet", + // ID + "local_testnet", + ChainType::Local, + move || { + testnet_genesis( + get_account_id_from_seed::("Alice"), + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), + ], + id, + ) + }, + vec![], + None, + None, + None, + Extensions { + relay_chain: "rococo-local".into(), + para_id: id.into(), + }, + ) } fn testnet_genesis( - root_key: AccountId, - endowed_accounts: Vec, - id: ParaId, + root_key: AccountId, + endowed_accounts: Vec, + id: ParaId, ) -> parachain_runtime::GenesisConfig { - parachain_runtime::GenesisConfig { - frame_system: Some(parachain_runtime::SystemConfig { - code: parachain_runtime::WASM_BINARY - .expect("WASM binary was not build, please build it!") - .to_vec(), - changes_trie_config: Default::default(), - }), - pallet_balances: Some(parachain_runtime::BalancesConfig { - balances: endowed_accounts - .iter() - .cloned() - .map(|k| (k, 1 << 60)) - .collect(), - }), - pallet_sudo: Some(parachain_runtime::SudoConfig { key: root_key }), - parachain_info: Some(parachain_runtime::ParachainInfoConfig { parachain_id: id }), - } + parachain_runtime::GenesisConfig { + frame_system: parachain_runtime::SystemConfig { + code: parachain_runtime::WASM_BINARY + .expect("WASM binary was not build, please build it!") + .to_vec(), + changes_trie_config: Default::default(), + }, + pallet_balances: parachain_runtime::BalancesConfig { + balances: endowed_accounts + .iter() + .cloned() + .map(|k| (k, 1 << 60)) + .collect(), + }, + pallet_sudo: parachain_runtime::SudoConfig { key: root_key }, + parachain_info: parachain_runtime::ParachainInfoConfig { parachain_id: id }, + } } diff --git a/node/src/service.rs b/node/src/service.rs index bdad3908..e586a837 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -1,12 +1,17 @@ +use cumulus_client_consensus_relay_chain::{ + build_relay_chain_consensus, BuildRelayChainConsensusParams, +}; use cumulus_client_network::build_block_announce_validator; use cumulus_client_service::{ prepare_node_config, start_collator, start_full_node, StartCollatorParams, StartFullNodeParams, }; -use parachain_runtime::{RuntimeApi, opaque::Block}; +use cumulus_primitives_core::ParaId; use polkadot_primitives::v0::CollatorPair; +use parachain_runtime::{RuntimeApi, opaque::Block}; use sc_executor::native_executor_instance; pub use sc_executor::NativeExecutor; use sc_service::{Configuration, PartialComponents, Role, TFullBackend, TFullClient, TaskManager}; +use sc_telemetry::TelemetrySpan; use sp_core::Pair; use sp_runtime::traits::BlakeTwo256; use sp_trie::PrefixedMemoryDB; @@ -52,11 +57,11 @@ pub fn new_partial( client.clone(), ); - let import_queue = cumulus_client_consensus::import_queue::import_queue( + let import_queue = cumulus_client_consensus_relay_chain::import_queue( client.clone(), client.clone(), inherent_data_providers.clone(), - &task_manager.spawn_handle(), + &task_manager.spawn_essential_handle(), registry.clone(), )?; @@ -83,7 +88,7 @@ async fn start_node_impl( parachain_config: Configuration, collator_key: CollatorPair, polkadot_config: Configuration, - id: polkadot_primitives::v0::Id, + id: ParaId, validator: bool, rpc_ext_builder: RB, ) -> sc_service::error::Result<(TaskManager, Arc>)> @@ -101,12 +106,11 @@ where let parachain_config = prepare_node_config(parachain_config); let polkadot_full_node = - cumulus_client_service::build_polkadot_full_node(polkadot_config, collator_key.public()).map_err( - |e| match e { + cumulus_client_service::build_polkadot_full_node(polkadot_config, collator_key.public()) + .map_err(|e| match e { polkadot_service::Error::Sub(x) => x, s => format!("{}", s).into(), - }, - )?; + })?; let params = new_partial(¶chain_config)?; params @@ -141,12 +145,9 @@ where let rpc_client = client.clone(); let rpc_extensions_builder = Box::new(move |_, _| rpc_ext_builder(rpc_client.clone())); - if parachain_config.offchain_worker.enabled { - sc_service::build_offchain_workers( - ¶chain_config, backend.clone(), task_manager.spawn_handle(), client.clone(), network.clone(), - ); - } - + let telemetry_span = TelemetrySpan::new(); + let _telemetry_span_entered = telemetry_span.enter(); + sc_service::spawn_tasks(sc_service::SpawnTasksParams { on_demand: None, remote_blockchain: None, @@ -160,6 +161,7 @@ where network: network.clone(), network_status_sinks, system_rpc_tx, + telemetry_span: Some(telemetry_span.clone()), })?; let announce_block = { @@ -168,7 +170,7 @@ where }; if validator { - let proposer_factory = sc_basic_authorship::ProposerFactory::new( + let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( task_manager.spawn_handle(), client.clone(), transaction_pool, @@ -176,22 +178,26 @@ where ); let spawner = task_manager.spawn_handle(); - let polkadot_backend = polkadot_full_node.backend.clone(); - - let params = StartCollatorParams { + let parachain_consensus = build_relay_chain_consensus(BuildRelayChainConsensusParams { para_id: id, - block_import: client.clone(), proposer_factory, inherent_data_providers: params.inherent_data_providers, + block_import: client.clone(), + relay_chain_client: polkadot_full_node.client.clone(), + relay_chain_backend: polkadot_full_node.backend.clone(), + }); + + let params = StartCollatorParams { + para_id: id, block_status: client.clone(), announce_block, client: client.clone(), task_manager: &mut task_manager, collator_key, - polkadot_full_node, + relay_chain_full_node: polkadot_full_node, spawner, backend, - polkadot_backend, + parachain_consensus, }; start_collator(params).await?; @@ -217,7 +223,7 @@ pub async fn start_node( parachain_config: Configuration, collator_key: CollatorPair, polkadot_config: Configuration, - id: polkadot_primitives::v0::Id, + id: ParaId, validator: bool, ) -> sc_service::error::Result<(TaskManager, Arc>)> { start_node_impl( @@ -229,4 +235,4 @@ pub async fn start_node( |_| Default::default(), ) .await -} +} \ No newline at end of file diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 6dab71a9..b5525b35 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -32,7 +32,7 @@ use xcm_executor::{ traits::{IsConcrete, NativeAsset}, Config, XcmExecutor, }; -use frame_system::limits::{BlockLength, BlockWeights}; +use frame_system::{EnsureRoot, limits::{BlockLength, BlockWeights}}; // A few exports that help ease life for downstream crates. #[cfg(any(feature = "std", test))] @@ -331,6 +331,8 @@ impl cumulus_pallet_xcm_handler::Config for Runtime { type XcmExecutor = XcmExecutor; type UpwardMessageSender = ParachainSystem; type HrmpMessageSender = ParachainSystem; + type SendXcmOrigin = EnsureRoot; + type AccountIdConverter = LocationConverter; } /// Configure the pallet template in pallets/template. @@ -521,4 +523,4 @@ impl_runtime_apis! { } } -cumulus_pallet_parachain_system::register_validate_block!(Block, Executive); +cumulus_pallet_parachain_system::register_validate_block!(Runtime, Executive); From 72f933b8b0a158861c41b8796296280f60e8e6ab Mon Sep 17 00:00:00 2001 From: Black3HDF <29630164+Satoshi-Kusumoto@users.noreply.github.com> Date: Wed, 17 Mar 2021 22:16:24 +0800 Subject: [PATCH 20/91] fix enable ocw (#15) --- node/src/service.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/node/src/service.rs b/node/src/service.rs index e586a837..8e612f8b 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -148,6 +148,12 @@ where let telemetry_span = TelemetrySpan::new(); let _telemetry_span_entered = telemetry_span.enter(); + if parachain_config.offchain_worker.enabled { + sc_service::build_offchain_workers( + ¶chain_config, backend.clone(), task_manager.spawn_handle(), client.clone(), network.clone(), + ); + } + sc_service::spawn_tasks(sc_service::SpawnTasksParams { on_demand: None, remote_blockchain: None, From 465d53997652b56978ba5eede5a4321a29d59a73 Mon Sep 17 00:00:00 2001 From: Ricardo Rius Date: Thu, 18 Mar 2021 18:47:01 +0100 Subject: [PATCH 21/91] Update Cargo.lock --- Cargo.lock | 139 ++++++++++++++++++++++------------------------------- 1 file changed, 57 insertions(+), 82 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2b070eb4..4430cd00 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1107,7 +1107,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#24b1ee6bd1d96f255889f167e59ef9c9399a6305" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#8771d9431b66124d240c419f5300af671a82b5e5" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1131,7 +1131,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#24b1ee6bd1d96f255889f167e59ef9c9399a6305" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#8771d9431b66124d240c419f5300af671a82b5e5" dependencies = [ "async-trait", "dyn-clone", @@ -1156,7 +1156,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-relay-chain" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#24b1ee6bd1d96f255889f167e59ef9c9399a6305" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#8771d9431b66124d240c419f5300af671a82b5e5" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1181,7 +1181,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#24b1ee6bd1d96f255889f167e59ef9c9399a6305" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#8771d9431b66124d240c419f5300af671a82b5e5" dependencies = [ "derive_more 0.99.11", "futures 0.3.13", @@ -1205,7 +1205,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#24b1ee6bd1d96f255889f167e59ef9c9399a6305" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#8771d9431b66124d240c419f5300af671a82b5e5" dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-common", @@ -1229,7 +1229,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#24b1ee6bd1d96f255889f167e59ef9c9399a6305" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#8771d9431b66124d240c419f5300af671a82b5e5" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", @@ -1258,7 +1258,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm-handler" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#24b1ee6bd1d96f255889f167e59ef9c9399a6305" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#8771d9431b66124d240c419f5300af671a82b5e5" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1273,7 +1273,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#24b1ee6bd1d96f255889f167e59ef9c9399a6305" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#8771d9431b66124d240c419f5300af671a82b5e5" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -1288,7 +1288,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#24b1ee6bd1d96f255889f167e59ef9c9399a6305" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#8771d9431b66124d240c419f5300af671a82b5e5" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -2968,7 +2968,7 @@ dependencies = [ [[package]] name = "kusama-runtime" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "bitvec", "frame-executive", @@ -3748,7 +3748,7 @@ dependencies = [ [[package]] name = "metered-channel" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "futures 0.3.13", "futures-timer 3.0.2", @@ -4762,7 +4762,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#24b1ee6bd1d96f255889f167e59ef9c9399a6305" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#8771d9431b66124d240c419f5300af671a82b5e5" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -5235,7 +5235,7 @@ checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325" [[package]] name = "polkadot-approval-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "futures 0.3.13", "polkadot-node-network-protocol", @@ -5244,13 +5244,12 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-availability-bitfield-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "futures 0.3.13", "parity-scale-codec", @@ -5259,13 +5258,12 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-availability-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "futures 0.3.13", "lru", @@ -5282,13 +5280,12 @@ dependencies = [ "sp-keystore", "thiserror", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-availability-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "futures 0.3.13", "futures-timer 3.0.2", @@ -5302,13 +5299,12 @@ dependencies = [ "streamunordered", "thiserror", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-cli" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "frame-benchmarking-cli", "futures 0.3.13", @@ -5322,14 +5318,13 @@ dependencies = [ "structopt", "substrate-build-script-utils", "thiserror", - "tracing-futures", "try-runtime-cli", ] [[package]] name = "polkadot-collator-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "futures 0.3.13", "polkadot-node-network-protocol", @@ -5339,13 +5334,12 @@ dependencies = [ "polkadot-primitives", "thiserror", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-core-primitives" version = "0.7.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -5357,7 +5351,7 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -5370,7 +5364,7 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "futures 0.3.13", "polkadot-node-network-protocol", @@ -5379,13 +5373,12 @@ dependencies = [ "polkadot-primitives", "rand 0.8.3", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-network-bridge" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "async-trait", "futures 0.3.13", @@ -5397,13 +5390,12 @@ dependencies = [ "sc-network", "strum", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-node-collation-generation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "futures 0.3.13", "polkadot-erasure-coding", @@ -5414,13 +5406,12 @@ dependencies = [ "sp-core", "thiserror", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-node-core-approval-voting" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "bitvec", "derive_more 0.99.11", @@ -5444,13 +5435,12 @@ dependencies = [ "sp-consensus-slots", "sp-runtime", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-node-core-av-store" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "bitvec", "futures 0.3.13", @@ -5466,13 +5456,12 @@ dependencies = [ "sc-service", "thiserror", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-node-core-backing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "bitvec", "futures 0.3.13", @@ -5485,13 +5474,12 @@ dependencies = [ "sp-keystore", "thiserror", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-node-core-bitfield-signing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "futures 0.3.13", "polkadot-node-subsystem", @@ -5500,14 +5488,13 @@ dependencies = [ "sp-keystore", "thiserror", "tracing", - "tracing-futures", "wasm-timer", ] [[package]] name = "polkadot-node-core-candidate-selection" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "futures 0.3.13", "polkadot-node-primitives", @@ -5517,13 +5504,12 @@ dependencies = [ "sp-keystore", "thiserror", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-node-core-candidate-validation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "futures 0.3.13", "parity-scale-codec", @@ -5534,13 +5520,12 @@ dependencies = [ "polkadot-primitives", "sp-core", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-node-core-chain-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "futures 0.3.13", "polkadot-node-subsystem", @@ -5548,13 +5533,12 @@ dependencies = [ "polkadot-primitives", "sp-blockchain", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-node-core-proposer" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "futures 0.3.13", "futures-timer 3.0.2", @@ -5578,7 +5562,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "bitvec", "futures 0.3.13", @@ -5588,13 +5572,12 @@ dependencies = [ "polkadot-primitives", "thiserror", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-node-core-runtime-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "futures 0.3.13", "memory-lru", @@ -5606,13 +5589,12 @@ dependencies = [ "sp-consensus-babe", "sp-core", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-node-jaeger" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "async-std", "lazy_static", @@ -5629,7 +5611,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "futures 0.3.13", "parity-scale-codec", @@ -5645,7 +5627,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "futures 0.3.13", "parity-scale-codec", @@ -5663,7 +5645,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "async-std", "async-trait", @@ -5688,13 +5670,12 @@ dependencies = [ "substrate-prometheus-endpoint", "thiserror", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-node-subsystem-util" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "async-trait", "futures 0.3.13", @@ -5715,13 +5696,12 @@ dependencies = [ "substrate-prometheus-endpoint", "thiserror", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-overseer" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "async-trait", "futures 0.3.13", @@ -5733,13 +5713,12 @@ dependencies = [ "polkadot-primitives", "sc-client-api", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-parachain" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "derive_more 0.99.11", "futures 0.3.13", @@ -5766,7 +5745,7 @@ dependencies = [ [[package]] name = "polkadot-pov-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "futures 0.3.13", "polkadot-node-network-protocol", @@ -5775,13 +5754,12 @@ dependencies = [ "polkadot-primitives", "thiserror", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-primitives" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "bitvec", "frame-system", @@ -5809,7 +5787,7 @@ dependencies = [ [[package]] name = "polkadot-procmacro-subsystem-dispatch-gen" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "assert_matches", "proc-macro2 1.0.24", @@ -5820,7 +5798,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "jsonrpc-core", "pallet-transaction-payment-rpc", @@ -5850,7 +5828,7 @@ dependencies = [ [[package]] name = "polkadot-runtime" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "bitvec", "frame-executive", @@ -5916,7 +5894,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "bitvec", "frame-support", @@ -5952,7 +5930,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "bitvec", "derive_more 0.99.11", @@ -5989,7 +5967,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "0.8.3" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "frame-benchmarking", "frame-system-rpc-runtime-api", @@ -6067,14 +6045,13 @@ dependencies = [ "substrate-prometheus-endpoint", "thiserror", "tracing", - "tracing-futures", "westend-runtime", ] [[package]] name = "polkadot-statement-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "arrayvec 0.5.2", "futures 0.3.13", @@ -6086,13 +6063,12 @@ dependencies = [ "polkadot-primitives", "sp-staking", "tracing", - "tracing-futures", ] [[package]] name = "polkadot-statement-table" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -6102,7 +6078,7 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "bitvec", "frame-executive", @@ -6157,7 +6133,7 @@ dependencies = [ [[package]] name = "polkadot-test-service" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "frame-benchmarking", "frame-system", @@ -6204,7 +6180,6 @@ dependencies = [ "substrate-test-client", "tempfile", "tracing", - "tracing-futures", ] [[package]] @@ -6842,7 +6817,7 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "frame-executive", "frame-support", @@ -10440,7 +10415,7 @@ dependencies = [ [[package]] name = "westend-runtime" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "bitvec", "frame-executive", @@ -10597,7 +10572,7 @@ dependencies = [ [[package]] name = "xcm" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "parity-scale-codec", ] @@ -10605,7 +10580,7 @@ dependencies = [ [[package]] name = "xcm-builder" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "frame-support", "parity-scale-codec", @@ -10621,7 +10596,7 @@ dependencies = [ [[package]] name = "xcm-executor" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#72243baaedf3ded4226032949a23f8478f5565d9" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" dependencies = [ "frame-support", "impl-trait-for-tuples", From dd3383b8afa2a4fd64eccbdabd0be5a51f54b410 Mon Sep 17 00:00:00 2001 From: John Whitton Date: Tue, 6 Apr 2021 08:53:31 -0700 Subject: [PATCH 22/91] Update to Cumulus 28f5ec2 (#18) * Update to work with latest version of Polkadot and Cumulus * more clear steps more clear steps * clarify era waiting period clarify era waiting period * Fix build * try again Co-authored-by: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Co-authored-by: Ricardo Rius --- Cargo.lock | 961 +++++++++++++++------------ README.md | 97 ++- node/src/chain_spec.rs | 190 +++--- node/src/command.rs | 12 +- node/src/lib.rs | 2 + node/src/main.rs | 2 +- node/src/service.rs | 73 +- pallets/template/Cargo.toml | 46 +- pallets/template/src/benchmarking.rs | 20 + pallets/template/src/lib.rs | 5 +- pallets/template/src/mock.rs | 6 +- pallets/template/src/tests.rs | 4 +- runtime/Cargo.toml | 99 +-- runtime/build.rs | 10 +- runtime/src/lib.rs | 611 ++++++++--------- 15 files changed, 1191 insertions(+), 947 deletions(-) create mode 100644 node/src/lib.rs create mode 100644 pallets/template/src/benchmarking.rs diff --git a/Cargo.lock b/Cargo.lock index 4430cd00..0330b595 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -94,6 +94,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "always-assert" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf688625d06217d5b1bb0ea9d9c44a1635fd0ee3534466388d18203174f4d11" + [[package]] name = "ansi_term" version = "0.11.0" @@ -114,9 +120,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.38" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afddf7f520a80dbf76e6f50a35bca42a2331ef227a28b3b6dc5c2e2338d114b1" +checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b" [[package]] name = "approx" @@ -164,7 +170,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d0864d84b8e07b145449be9a8537db86bf9de5ce03b913214694643b4743502" dependencies = [ "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -310,7 +316,7 @@ checksum = "36ea56748e10732c49404c153638a15ec3d6211ec5ff35d9bb20e13b93576adf" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -708,6 +714,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chacha20" version = "0.5.0" @@ -814,6 +826,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + [[package]] name = "core-foundation" version = "0.7.0" @@ -938,7 +956,7 @@ dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-frontend", - "itertools", + "itertools 0.9.0", "log", "serde", "smallvec 1.6.1", @@ -1011,7 +1029,7 @@ dependencies = [ "cfg-if 1.0.0", "crossbeam-utils 0.8.3", "lazy_static", - "memoffset 0.6.1", + "memoffset 0.6.3", "scopeguard", ] @@ -1085,12 +1103,12 @@ dependencies = [ [[package]] name = "ctor" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8f45d9ad417bcef4817d614a501ab55cdd96a6fdb24f49aab89a54acfd66b19" +checksum = "5e98e2ad1a782e33928b96fc3948e7c355e5af34ba4de7670fe8bac2a3b2006d" dependencies = [ "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -1107,7 +1125,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#8771d9431b66124d240c419f5300af671a82b5e5" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#28f5ec297d21349e360209cfe2e3d48d7127a297" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1131,7 +1149,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#8771d9431b66124d240c419f5300af671a82b5e5" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#28f5ec297d21349e360209cfe2e3d48d7127a297" dependencies = [ "async-trait", "dyn-clone", @@ -1156,7 +1174,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-relay-chain" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#8771d9431b66124d240c419f5300af671a82b5e5" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#28f5ec297d21349e360209cfe2e3d48d7127a297" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1181,9 +1199,9 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#8771d9431b66124d240c419f5300af671a82b5e5" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#28f5ec297d21349e360209cfe2e3d48d7127a297" dependencies = [ - "derive_more 0.99.11", + "derive_more 0.99.13", "futures 0.3.13", "futures-timer 3.0.2", "parity-scale-codec", @@ -1205,7 +1223,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#8771d9431b66124d240c419f5300af671a82b5e5" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#28f5ec297d21349e360209cfe2e3d48d7127a297" dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-common", @@ -1217,6 +1235,7 @@ dependencies = [ "sc-chain-spec", "sc-client-api", "sc-service", + "sc-telemetry", "sc-tracing", "sp-api", "sp-blockchain", @@ -1229,7 +1248,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#8771d9431b66124d240c419f5300af671a82b5e5" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#28f5ec297d21349e360209cfe2e3d48d7127a297" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", @@ -1258,7 +1277,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm-handler" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#8771d9431b66124d240c419f5300af671a82b5e5" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#28f5ec297d21349e360209cfe2e3d48d7127a297" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1273,7 +1292,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#8771d9431b66124d240c419f5300af671a82b5e5" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#28f5ec297d21349e360209cfe2e3d48d7127a297" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -1288,7 +1307,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#8771d9431b66124d240c419f5300af671a82b5e5" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#28f5ec297d21349e360209cfe2e3d48d7127a297" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1352,7 +1371,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f83e699727abca3c56e187945f303389590305ab2f0185ea445aa66e8d5f2a" dependencies = [ "data-encoding", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -1371,13 +1390,14 @@ dependencies = [ [[package]] name = "derive_more" -version = "0.99.11" +version = "0.99.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cb0e6161ad61ed084a36ba71fbba9e3ac5aee3606fb607fe08da6acbcf3d8c" +checksum = "f82b1b72f1263f214c0f823371768776c4f5841b942c9883aa8e5ec584fd0ba6" dependencies = [ + "convert_case", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -1467,7 +1487,7 @@ checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -1522,7 +1542,7 @@ checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -1647,7 +1667,7 @@ checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", "synstructure", ] @@ -1746,7 +1766,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "parity-scale-codec", ] @@ -1764,14 +1784,14 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "3.1.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", "linregress", "log", "parity-scale-codec", - "paste 1.0.4", + "paste 1.0.5", "sp-api", "sp-io", "sp-runtime", @@ -1783,7 +1803,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "Inflector", "chrono", @@ -1803,10 +1823,23 @@ dependencies = [ "structopt", ] +[[package]] +name = "frame-election-provider-support" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "sp-arithmetic", + "sp-npos-elections", + "sp-std", +] + [[package]] name = "frame-executive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -1822,7 +1855,7 @@ dependencies = [ [[package]] name = "frame-metadata" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "parity-scale-codec", "serde", @@ -1833,7 +1866,7 @@ dependencies = [ [[package]] name = "frame-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "bitflags", "frame-metadata", @@ -1842,7 +1875,7 @@ dependencies = [ "log", "once_cell", "parity-scale-codec", - "paste 1.0.4", + "paste 1.0.5", "serde", "smallvec 1.6.1", "sp-arithmetic", @@ -1859,41 +1892,41 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "Inflector", "frame-support-procedural-tools", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] name = "frame-support-procedural-tools" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support-procedural-tools-derive", - "proc-macro-crate", + "proc-macro-crate 1.0.0", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] name = "frame-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1910,7 +1943,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-benchmarking", "frame-support", @@ -1924,7 +1957,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "parity-scale-codec", "sp-api", @@ -1933,7 +1966,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "parity-scale-codec", @@ -1942,11 +1975,17 @@ dependencies = [ "sp-std", ] +[[package]] +name = "fs-err" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcd1163ae48bda72a20ae26d66a04d3094135cadab911cff418ae5e33f253431" + [[package]] name = "fs-swap" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5839fda247e24ca4919c87c71dd5ca658f1f39e4f06829f80e3f15c3bafcfc2c" +checksum = "03d47dad3685eceed8488986cad3d5027165ea5edb164331770e2059555f10a5" dependencies = [ "lazy_static", "libc", @@ -2050,7 +2089,7 @@ dependencies = [ "lazy_static", "log", "parking_lot 0.9.0", - "pin-project 0.4.27", + "pin-project 0.4.28", "serde", "serde_json", ] @@ -2097,7 +2136,7 @@ dependencies = [ "proc-macro-hack", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -2305,9 +2344,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "3.5.3" +version = "3.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb0867bbc5a3da37a753e78021d5fcf8a4db00e18dd2dd90fd36e24190e162d" +checksum = "580b6f551b29a3a02436318aed09ba1c58eea177dc49e39beac627ad356730a5" dependencies = [ "log", "pest", @@ -2544,8 +2583,8 @@ dependencies = [ "httparse", "httpdate", "itoa", - "pin-project 1.0.5", - "socket2", + "pin-project 1.0.6", + "socket2 0.3.19", "tokio 0.2.25", "tower-service", "tracing", @@ -2664,7 +2703,7 @@ checksum = "d5dacb10c5b3bb92d46ba347505a9041e676bb20ad220101326bffb0c93031ee" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -2742,6 +2781,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37d572918e350e82412fe766d24b15e6682fb2ed2bbe018280caa810397cb319" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "0.4.7" @@ -2759,9 +2807,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.48" +version = "0.3.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc9f84f9b115ce7843d60706df1422a916680bfdfcbdb0447c5614ff9d7e4d78" +checksum = "2d99f9e3e84b8f67f846ef5b4cbbc3b1c29f6c759fcbce6f01aa0e73d932a24c" dependencies = [ "wasm-bindgen", ] @@ -2810,10 +2858,10 @@ version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99a847f9ec7bb52149b2786a17c9cb260d6effc6b8eeb8c16b343a487a7563a3" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -2890,13 +2938,14 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.2.0-alpha.2" +version = "0.2.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f1d8440e2617bdebdf45114e90f65aed3f14bf73e23d874dde8e4b764676fe9" +checksum = "9b15fc3a0ef2e02d770aa1a221d3412443dcaedc43e27d80c957dd5bbd65321b" dependencies = [ "async-trait", "futures 0.3.13", "hyper 0.13.10", + "hyper-rustls", "jsonrpsee-types", "jsonrpsee-utils", "log", @@ -2909,21 +2958,21 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.2.0-alpha.2" +version = "0.2.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb3f732ccbeafd15cefb59c7c7b5ac6c553c2653613b63e5e7feb7f06a219e9" +checksum = "6bb4afbda476e2ee11cc6245055c498c116fc8002d2d60fe8338b6ee15d84c3a" dependencies = [ "Inflector", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] name = "jsonrpsee-types" -version = "0.2.0-alpha.2" +version = "0.2.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a8cd20c190e75dc56f7543b9d5713c3186351b301b5507ea6b85d8c403aac78" +checksum = "c42a82588b5f7830e94341bb7e79d15f46070ab6f64dde1e3b3719721b61c5bf" dependencies = [ "async-trait", "futures 0.3.13", @@ -2936,9 +2985,9 @@ dependencies = [ [[package]] name = "jsonrpsee-utils" -version = "0.2.0-alpha.2" +version = "0.2.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51670a3b56e5fb0d325920ce317c76184b8afabfd7bc5009831229cfef0732b" +checksum = "e65c77838fce96bc554b4a3a159d0b9a2497319ae9305c66ee853998c7ed2fd3" dependencies = [ "futures 0.3.13", "globset", @@ -2968,13 +3017,14 @@ dependencies = [ [[package]] name = "kusama-runtime" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "bitvec", "frame-executive", "frame-support", "frame-system", "frame-system-rpc-runtime-api", + "frame-try-runtime", "log", "pallet-authority-discovery", "pallet-authorship", @@ -3101,9 +3151,9 @@ checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a" [[package]] name = "libc" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03b07a082330a35e43f63177cc01689da34fbffa0105e1246cf0311472cac73a" +checksum = "56d855069fafbb9b344c0f962150cd2c1187975cb1c22c1522c240d8c4986714" [[package]] name = "libloading" @@ -3154,7 +3204,7 @@ dependencies = [ "libp2p-yamux", "parity-multiaddr", "parking_lot 0.11.1", - "pin-project 1.0.5", + "pin-project 1.0.6", "smallvec 1.6.1", "wasm-timer", ] @@ -3179,7 +3229,7 @@ dependencies = [ "multistream-select", "parity-multiaddr", "parking_lot 0.11.1", - "pin-project 1.0.5", + "pin-project 1.0.6", "prost", "prost-build", "rand 0.7.3", @@ -3318,7 +3368,7 @@ dependencies = [ "log", "rand 0.7.3", "smallvec 1.6.1", - "socket2", + "socket2 0.3.19", "void", ] @@ -3402,7 +3452,7 @@ checksum = "6ce3374f3b28162db9d3442c9347c4f14cb01e8290052615c7d341d40eae0599" dependencies = [ "futures 0.3.13", "log", - "pin-project 1.0.5", + "pin-project 1.0.6", "rand 0.7.3", "salsa20", "sha3", @@ -3451,7 +3501,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c564ebaa36a64839f51eaddb0243aaaa29ce64affb56129193cc3248b72af273" dependencies = [ "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -3468,7 +3518,7 @@ dependencies = [ "libc", "libp2p-core", "log", - "socket2", + "socket2 0.3.19", ] [[package]] @@ -3700,9 +3750,9 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.6.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87" +checksum = "f83fb6581e8ed1f85fd45c116db8405483899489e38406156c25eb743554361d" dependencies = [ "autocfg", ] @@ -3748,8 +3798,9 @@ dependencies = [ [[package]] name = "metered-channel" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ + "derive_more 0.99.13", "futures 0.3.13", "futures-timer 3.0.2", ] @@ -3782,7 +3833,7 @@ checksum = "19ce18b5423c573a13e80cb3046ea0af6379ef725dc3af4886bdb8f4e5093068" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -3834,7 +3885,7 @@ checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656" dependencies = [ "log", "mio", - "miow 0.3.6", + "miow 0.3.7", "winapi 0.3.9", ] @@ -3863,11 +3914,10 @@ dependencies = [ [[package]] name = "miow" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a33c1b55807fbed163481b5ba66db4b2fa6cde694a5027be10fb724206c5897" +checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" dependencies = [ - "socket2", "winapi 0.3.9", ] @@ -3911,19 +3961,19 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85ee3c48cb9d9b275ad967a0e96715badc13c6029adb92f34fa17b9ff28fd81f" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro-error", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", "synstructure", ] [[package]] name = "multimap" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1255076139a83bb467426e7f8d0134968a8118844faa755985e077cf31850333" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "multistream-select" @@ -3934,7 +3984,7 @@ dependencies = [ "bytes 1.0.1", "futures 0.3.13", "log", - "pin-project 1.0.5", + "pin-project 1.0.6", "smallvec 1.6.1", "unsigned-varint 0.7.0", ] @@ -3968,12 +4018,12 @@ dependencies = [ [[package]] name = "nb-connect" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670361df1bc2399ee1ff50406a0d422587dd3bb0da596e1978fe8e05dabddf4f" +checksum = "a19900e7eee95eb2b3c2e26d12a874cc80aaf750e31be6fcbe743ead369fa45d" dependencies = [ "libc", - "socket2", + "socket2 0.4.0", ] [[package]] @@ -4109,12 +4159,6 @@ dependencies = [ "parking_lot 0.11.1", ] -[[package]] -name = "oorandom" -version = "11.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" - [[package]] name = "opaque-debug" version = "0.2.3" @@ -4154,7 +4198,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -4170,7 +4214,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -4185,7 +4229,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-benchmarking", "frame-support", @@ -4204,13 +4248,12 @@ dependencies = [ "sp-session", "sp-staking", "sp-std", - "sp-timestamp", ] [[package]] name = "pallet-balances" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-benchmarking", "frame-support", @@ -4225,7 +4268,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -4239,7 +4282,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -4255,7 +4298,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-benchmarking", "frame-support", @@ -4270,15 +4313,15 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ + "frame-election-provider-support", "frame-support", "frame-system", "log", "parity-scale-codec", "serde", "sp-arithmetic", - "sp-election-providers", "sp-io", "sp-npos-elections", "sp-runtime", @@ -4289,7 +4332,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -4304,7 +4347,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-benchmarking", "frame-support", @@ -4326,7 +4369,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4342,7 +4385,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -4361,7 +4404,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -4377,7 +4420,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -4391,7 +4434,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -4406,7 +4449,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -4420,7 +4463,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -4436,7 +4479,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -4451,7 +4494,7 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -4464,7 +4507,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "enumflags2", "frame-support", @@ -4479,7 +4522,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-benchmarking", "frame-support", @@ -4495,7 +4538,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -4515,7 +4558,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -4529,17 +4572,18 @@ dependencies = [ [[package]] name = "pallet-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ + "frame-election-provider-support", "frame-support", "frame-system", "log", "pallet-authorship", "pallet-session", "parity-scale-codec", + "paste 1.0.5", "serde", "sp-application-crypto", - "sp-election-providers", "sp-io", "sp-npos-elections", "sp-runtime", @@ -4551,18 +4595,18 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.0.0", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] name = "pallet-sudo" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -4577,6 +4621,7 @@ dependencies = [ name = "pallet-template" version = "3.0.0" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", @@ -4589,7 +4634,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-benchmarking", "frame-support", @@ -4608,7 +4653,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -4622,7 +4667,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -4638,7 +4683,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4655,7 +4700,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -4666,7 +4711,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -4681,7 +4726,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-support", "frame-system", @@ -4696,7 +4741,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "enumflags2", "frame-support", @@ -4762,7 +4807,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#8771d9431b66124d240c419f5300af671a82b5e5" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#28f5ec297d21349e360209cfe2e3d48d7127a297" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -4796,6 +4841,7 @@ dependencies = [ "parity-scale-codec", "polkadot-parachain", "serde", + "smallvec 1.6.1", "sp-api", "sp-block-builder", "sp-core", @@ -4832,9 +4878,9 @@ dependencies = [ [[package]] name = "parity-multiaddr" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c6805f98667a3828afb2ec2c396a8d610497e8d546f5447188aae47c5a79ec" +checksum = "58341485071825827b7f03cf7efd1cb21e6a709bea778fb50227fd45d2f361b4" dependencies = [ "arrayref", "bs58", @@ -4867,10 +4913,10 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa04976a81fde04924b40cc4036c4d12841e8bb04325a5cf2ada75731a150a7d" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -4890,7 +4936,7 @@ dependencies = [ "libc", "log", "mio-named-pipes", - "miow 0.3.6", + "miow 0.3.7", "rand 0.7.3", "tokio 0.1.22", "tokio-named-pipes", @@ -4923,7 +4969,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" dependencies = [ "proc-macro2 1.0.24", - "syn 1.0.63", + "syn 1.0.67", "synstructure", ] @@ -5053,9 +5099,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5d65c4d95931acda4498f675e332fcbdc9a06705cd07086c510e9b6009cd1c1" +checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" [[package]] name = "paste-impl" @@ -5138,7 +5184,7 @@ dependencies = [ "pest_meta", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -5164,42 +5210,42 @@ dependencies = [ [[package]] name = "pin-project" -version = "0.4.27" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15" +checksum = "918192b5c59119d51e0cd221f4d49dde9112824ba717369e903c97d076083d0f" dependencies = [ - "pin-project-internal 0.4.27", + "pin-project-internal 0.4.28", ] [[package]] name = "pin-project" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96fa8ebb90271c4477f144354485b8068bd8f6b78b428b01ba892ca26caf0b63" +checksum = "bc174859768806e91ae575187ada95c91a29e96a98dc5d2cd9a1fed039501ba6" dependencies = [ - "pin-project-internal 1.0.5", + "pin-project-internal 1.0.6", ] [[package]] name = "pin-project-internal" -version = "0.4.27" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895" +checksum = "3be26700300be6d9d23264c73211d8190e755b6b5ca7a1b28230025511b52a5e" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] name = "pin-project-internal" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "758669ae3558c6f74bd2a18b41f7ac0b5a195aea6639d6a9b5e5d1ad5ba24c0b" +checksum = "a490329918e856ed1b083f244e3bfe2d8c4f336407e4ea9e1a9f479ff09049e5" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -5235,7 +5281,7 @@ checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325" [[package]] name = "polkadot-approval-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "futures 0.3.13", "polkadot-node-network-protocol", @@ -5249,7 +5295,7 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "futures 0.3.13", "parity-scale-codec", @@ -5263,7 +5309,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "futures 0.3.13", "lru", @@ -5285,18 +5331,17 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "futures 0.3.13", - "futures-timer 3.0.2", "lru", + "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", "rand 0.8.3", - "streamunordered", "thiserror", "tracing", ] @@ -5304,7 +5349,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "frame-benchmarking-cli", "futures 0.3.13", @@ -5324,14 +5369,18 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ + "always-assert", "futures 0.3.13", + "futures-timer 3.0.2", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", + "sp-core", + "sp-runtime", "thiserror", "tracing", ] @@ -5339,7 +5388,7 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "0.7.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -5351,11 +5400,11 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "parity-scale-codec", "polkadot-primitives", - "reed-solomon-erasure", + "reed-solomon-novelpoly", "sp-core", "sp-trie", "thiserror", @@ -5364,7 +5413,7 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "futures 0.3.13", "polkadot-node-network-protocol", @@ -5378,11 +5427,12 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "async-trait", "futures 0.3.13", "parity-scale-codec", + "parking_lot 0.11.1", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-primitives", @@ -5395,7 +5445,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "futures 0.3.13", "polkadot-erasure-coding", @@ -5411,10 +5461,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "bitvec", - "derive_more 0.99.11", + "derive_more 0.99.13", "futures 0.3.13", "futures-timer 3.0.2", "kvdb", @@ -5440,7 +5490,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "bitvec", "futures 0.3.13", @@ -5461,7 +5511,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "bitvec", "futures 0.3.13", @@ -5479,7 +5529,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "futures 0.3.13", "polkadot-node-subsystem", @@ -5494,7 +5544,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-selection" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "futures 0.3.13", "polkadot-node-primitives", @@ -5509,7 +5559,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "futures 0.3.13", "parity-scale-codec", @@ -5525,7 +5575,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "futures 0.3.13", "polkadot-node-subsystem", @@ -5538,7 +5588,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-proposer" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "futures 0.3.13", "futures-timer 3.0.2", @@ -5548,6 +5598,7 @@ dependencies = [ "sc-basic-authorship", "sc-block-builder", "sc-client-api", + "sc-telemetry", "sp-api", "sp-blockchain", "sp-consensus", @@ -5562,7 +5613,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "bitvec", "futures 0.3.13", @@ -5577,7 +5628,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "futures 0.3.13", "memory-lru", @@ -5594,7 +5645,7 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "async-std", "lazy_static", @@ -5611,7 +5662,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "futures 0.3.13", "parity-scale-codec", @@ -5621,13 +5672,12 @@ dependencies = [ "sc-network", "strum", "thiserror", - "zstd", ] [[package]] name = "polkadot-node-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "futures 0.3.13", "parity-scale-codec", @@ -5645,11 +5695,11 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "async-std", "async-trait", - "derive_more 0.99.11", + "derive_more 0.99.13", "futures 0.3.13", "futures-timer 3.0.2", "lazy_static", @@ -5657,7 +5707,7 @@ dependencies = [ "mick-jaeger", "parity-scale-codec", "parking_lot 0.11.1", - "pin-project 1.0.5", + "pin-project 1.0.6", "polkadot-node-jaeger", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -5675,14 +5725,14 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "async-trait", "futures 0.3.13", "futures-timer 3.0.2", "metered-channel", "parity-scale-codec", - "pin-project 1.0.5", + "pin-project 1.0.6", "polkadot-node-jaeger", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -5701,12 +5751,11 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "async-trait", "futures 0.3.13", "futures-timer 3.0.2", - "oorandom", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -5718,9 +5767,9 @@ dependencies = [ [[package]] name = "polkadot-parachain" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ - "derive_more 0.99.11", + "derive_more 0.99.13", "futures 0.3.13", "libc", "log", @@ -5742,24 +5791,10 @@ dependencies = [ "thiserror", ] -[[package]] -name = "polkadot-pov-distribution" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" -dependencies = [ - "futures 0.3.13", - "polkadot-node-network-protocol", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "thiserror", - "tracing", -] - [[package]] name = "polkadot-primitives" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "bitvec", "frame-system", @@ -5782,23 +5817,25 @@ dependencies = [ "sp-std", "sp-trie", "sp-version", + "thiserror", + "zstd", ] [[package]] name = "polkadot-procmacro-subsystem-dispatch-gen" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "assert_matches", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] name = "polkadot-rpc" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "jsonrpc-core", "pallet-transaction-payment-rpc", @@ -5828,13 +5865,14 @@ dependencies = [ [[package]] name = "polkadot-runtime" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "bitvec", "frame-executive", "frame-support", "frame-system", "frame-system-rpc-runtime-api", + "frame-try-runtime", "log", "pallet-authority-discovery", "pallet-authorship", @@ -5894,11 +5932,12 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "bitvec", "frame-support", "frame-system", + "impl-trait-for-tuples", "log", "pallet-authorship", "pallet-balances", @@ -5930,10 +5969,10 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "bitvec", - "derive_more 0.99.11", + "derive_more 0.99.13", "frame-support", "frame-system", "log", @@ -5967,7 +6006,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "0.8.3" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "frame-benchmarking", "frame-system-rpc-runtime-api", @@ -6000,7 +6039,6 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-parachain", - "polkadot-pov-distribution", "polkadot-primitives", "polkadot-rpc", "polkadot-runtime", @@ -6051,7 +6089,7 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "arrayvec 0.5.2", "futures 0.3.13", @@ -6068,7 +6106,7 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -6078,9 +6116,10 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "bitvec", + "frame-election-provider-support", "frame-executive", "frame-support", "frame-system", @@ -6117,7 +6156,6 @@ dependencies = [ "sp-block-builder", "sp-consensus-babe", "sp-core", - "sp-election-providers", "sp-inherents", "sp-io", "sp-offchain", @@ -6133,7 +6171,7 @@ dependencies = [ [[package]] name = "polkadot-test-service" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "frame-benchmarking", "frame-system", @@ -6184,11 +6222,11 @@ dependencies = [ [[package]] name = "polling" -version = "2.0.2" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a7bc6b2a29e632e45451c941832803a18cce6781db04de8a04696cdca8bde4" +checksum = "4fc12d774e799ee9ebae13f4076ca003b40d18a11ac0f3641e6f899618580b7b" dependencies = [ - "cfg-if 0.1.10", + "cfg-if 1.0.0", "libc", "log", "wepoll-sys", @@ -6244,6 +6282,16 @@ dependencies = [ "toml", ] +[[package]] +name = "proc-macro-crate" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41fdbd1df62156fbc5945f4762632564d7d038153091c3fcf1067f6aef7cff92" +dependencies = [ + "thiserror", + "toml", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -6253,7 +6301,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", "version_check", ] @@ -6330,14 +6378,14 @@ checksum = "32d3ebd75ac2679c2af3a92246639f9fcc8a442ee420719cc4fe195b98dd5fa3" dependencies = [ "bytes 1.0.1", "heck", - "itertools", + "itertools 0.9.0", "log", "multimap", "petgraph", "prost", "prost-types", "tempfile", - "which 4.0.2", + "which 4.1.0", ] [[package]] @@ -6347,10 +6395,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "169a15f3008ecb5160cba7d37bcd690a7601b6d30cfb87a117d45e59d52af5d4" dependencies = [ "anyhow", - "itertools", + "itertools 0.9.0", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -6669,12 +6717,16 @@ dependencies = [ ] [[package]] -name = "reed-solomon-erasure" -version = "4.0.2" +name = "reed-solomon-novelpoly" +version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a415a013dd7c5d4221382329a5a3482566da675737494935cbbbcdec04662f9d" +checksum = "f11e01a8ef53ec033daf53a9385a1d0bb266155797919096e4134118f45efe82" dependencies = [ - "smallvec 1.6.1", + "derive_more 0.99.13", + "fs-err", + "itertools 0.10.0", + "static_init", + "thiserror", ] [[package]] @@ -6694,7 +6746,7 @@ checksum = "4c38e3aecd2b21cb3959637b883bb3714bc7e43f0268b9a29d3743ee3e55cdd2" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -6710,14 +6762,13 @@ dependencies = [ [[package]] name = "regex" -version = "1.4.3" +version = "1.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9251239e129e16308e70d853559389de218ac275b515068abc96829d05b948a" +checksum = "957056ecddbeba1b26965114e191d2e8589ce74db242b6ea25fc4062427a5c19" dependencies = [ "aho-corasick", "memchr", "regex-syntax", - "thread_local", ] [[package]] @@ -6732,9 +6783,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.22" +version = "0.6.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581" +checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548" [[package]] name = "region" @@ -6751,7 +6802,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "env_logger 0.8.3", "hex-literal 0.3.1", @@ -6762,6 +6813,7 @@ dependencies = [ "parity-scale-codec", "sp-core", "sp-io", + "sp-runtime", ] [[package]] @@ -6817,7 +6869,7 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "frame-executive", "frame-support", @@ -6833,6 +6885,7 @@ dependencies = [ "pallet-im-online", "pallet-indices", "pallet-offences", + "pallet-proxy", "pallet-session", "pallet-staking", "pallet-staking-reward-curve", @@ -6840,6 +6893,7 @@ dependencies = [ "pallet-timestamp", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", + "pallet-utility", "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", @@ -6962,7 +7016,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" dependencies = [ "futures 0.3.13", - "pin-project 0.4.27", + "pin-project 0.4.28", "static_assertions", ] @@ -7002,10 +7056,10 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "async-trait", - "derive_more 0.99.11", + "derive_more 0.99.13", "either", "futures 0.3.13", "futures-timer 3.0.2", @@ -7030,7 +7084,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "futures 0.3.13", "futures-timer 3.0.2", @@ -7053,7 +7107,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7069,7 +7123,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7090,18 +7144,18 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.0.0", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] name = "sc-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "chrono", "fdlimit", @@ -7139,9 +7193,9 @@ dependencies = [ [[package]] name = "sc-client-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ - "derive_more 0.99.11", + "derive_more 0.99.13", "fnv", "futures 0.3.13", "hash-db", @@ -7173,7 +7227,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "blake2-rfc", "hash-db", @@ -7203,7 +7257,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "sc-client-api", "sp-blockchain", @@ -7214,9 +7268,9 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ - "derive_more 0.99.11", + "derive_more 0.99.13", "fork-tree", "futures 0.3.13", "futures-timer 3.0.2", @@ -7260,9 +7314,9 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ - "derive_more 0.99.11", + "derive_more 0.99.13", "futures 0.3.13", "jsonrpc-core", "jsonrpc-core-client", @@ -7284,7 +7338,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7297,7 +7351,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "futures 0.3.13", "futures-timer 3.0.2", @@ -7316,6 +7370,7 @@ dependencies = [ "sp-inherents", "sp-runtime", "sp-state-machine", + "sp-timestamp", "sp-trie", "thiserror", ] @@ -7323,7 +7378,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "log", "sc-client-api", @@ -7337,9 +7392,9 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ - "derive_more 0.99.11", + "derive_more 0.99.13", "lazy_static", "libsecp256k1", "log", @@ -7366,9 +7421,9 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ - "derive_more 0.99.11", + "derive_more 0.99.13", "parity-scale-codec", "parity-wasm 0.41.0", "sp-allocator", @@ -7382,7 +7437,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "log", "parity-scale-codec", @@ -7397,7 +7452,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "log", "parity-scale-codec", @@ -7415,9 +7470,9 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ - "derive_more 0.99.11", + "derive_more 0.99.13", "dyn-clone", "finality-grandpa", "fork-tree", @@ -7427,7 +7482,7 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.11.1", - "pin-project 1.0.5", + "pin-project 1.0.6", "rand 0.7.3", "sc-block-builder", "sc-client-api", @@ -7454,9 +7509,9 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ - "derive_more 0.99.11", + "derive_more 0.99.13", "finality-grandpa", "futures 0.3.13", "jsonrpc-core", @@ -7478,9 +7533,9 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-warp-sync" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ - "derive_more 0.99.11", + "derive_more 0.99.13", "futures 0.3.13", "log", "num-traits", @@ -7499,7 +7554,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "ansi_term 0.12.1", "futures 0.3.13", @@ -7517,10 +7572,10 @@ dependencies = [ [[package]] name = "sc-keystore" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "async-trait", - "derive_more 0.99.11", + "derive_more 0.99.13", "futures 0.3.13", "futures-util", "hex", @@ -7537,7 +7592,7 @@ dependencies = [ [[package]] name = "sc-light" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "hash-db", "lazy_static", @@ -7556,7 +7611,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "async-std", "async-trait", @@ -7565,7 +7620,7 @@ dependencies = [ "bs58", "bytes 1.0.1", "cid", - "derive_more 0.99.11", + "derive_more 0.99.13", "either", "erased-serde", "fnv", @@ -7582,7 +7637,7 @@ dependencies = [ "nohash-hasher", "parity-scale-codec", "parking_lot 0.11.1", - "pin-project 1.0.5", + "pin-project 1.0.6", "prost", "prost-build", "rand 0.7.3", @@ -7609,7 +7664,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "futures 0.3.13", "futures-timer 3.0.2", @@ -7619,18 +7674,20 @@ dependencies = [ "sc-network", "sp-runtime", "substrate-prometheus-endpoint", + "tracing", "wasm-timer", ] [[package]] name = "sc-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "bytes 0.5.6", "fnv", "futures 0.3.13", "futures-timer 3.0.2", + "hex", "hyper 0.13.10", "hyper-rustls", "log", @@ -7652,7 +7709,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "futures 0.3.13", "libp2p", @@ -7665,7 +7722,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -7674,7 +7731,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "futures 0.3.13", "hash-db", @@ -7708,9 +7765,9 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ - "derive_more 0.99.11", + "derive_more 0.99.13", "futures 0.3.13", "jsonrpc-core", "jsonrpc-core-client", @@ -7732,7 +7789,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "futures 0.1.31", "jsonrpc-core", @@ -7750,7 +7807,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "directories", "exit-future", @@ -7765,7 +7822,7 @@ dependencies = [ "parity-scale-codec", "parity-util-mem", "parking_lot 0.11.1", - "pin-project 1.0.5", + "pin-project 1.0.6", "rand 0.7.3", "sc-block-builder", "sc-chain-spec", @@ -7813,7 +7870,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "log", "parity-scale-codec", @@ -7828,7 +7885,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -7848,21 +7905,19 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "chrono", "futures 0.3.13", "libp2p", "log", "parking_lot 0.11.1", - "pin-project 1.0.5", + "pin-project 1.0.6", "rand 0.7.3", "serde", "serde_json", - "sp-utils", "take_mut", - "tracing", - "tracing-subscriber", + "thiserror", "void", "wasm-timer", ] @@ -7870,7 +7925,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "ansi_term 0.12.1", "atty", @@ -7881,7 +7936,6 @@ dependencies = [ "parking_lot 0.11.1", "regex", "rustc-hash", - "sc-telemetry", "sc-tracing-proc-macro", "serde", "serde_json", @@ -7898,20 +7952,20 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.0.0", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] name = "sc-transaction-graph" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ - "derive_more 0.99.11", + "derive_more 0.99.13", "futures 0.3.13", "linked-hash-map", "log", @@ -7931,7 +7985,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "futures 0.3.13", "futures-diagnose", @@ -8012,7 +8066,7 @@ checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -8102,22 +8156,22 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.124" +version = "1.0.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd761ff957cb2a45fbb9ab3da6512de9de55872866160b23c25f1a841e99d29f" +checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.124" +version = "1.0.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1800f7693e94e186f5e25a28291ae1570da908aff7d97a095dec1e56ff99069b" +checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -8309,6 +8363,16 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "socket2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dfc207c526015c632472a77be09cf1b6e46866581aecae5cc38fb4235dea2" +dependencies = [ + "libc", + "winapi 0.3.9", +] + [[package]] name = "soketto" version = "0.4.2" @@ -8328,7 +8392,7 @@ dependencies = [ [[package]] name = "sp-allocator" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "log", "sp-core", @@ -8340,7 +8404,7 @@ dependencies = [ [[package]] name = "sp-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "hash-db", "log", @@ -8357,19 +8421,19 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "blake2-rfc", - "proc-macro-crate", + "proc-macro-crate 1.0.0", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] name = "sp-application-crypto" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "parity-scale-codec", "serde", @@ -8381,7 +8445,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "integer-sqrt", "num-traits", @@ -8394,7 +8458,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "parity-scale-codec", "sp-api", @@ -8406,7 +8470,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "parity-scale-codec", "sp-inherents", @@ -8417,7 +8481,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "parity-scale-codec", "sp-api", @@ -8429,7 +8493,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "futures 0.3.13", "log", @@ -8447,7 +8511,7 @@ dependencies = [ [[package]] name = "sp-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "serde", "serde_json", @@ -8456,7 +8520,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "futures 0.3.13", "futures-timer 3.0.2", @@ -8482,10 +8546,11 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "merlin", "parity-scale-codec", + "serde", "sp-api", "sp-application-crypto", "sp-consensus", @@ -8502,7 +8567,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "parity-scale-codec", "sp-arithmetic", @@ -8512,7 +8577,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -8524,7 +8589,7 @@ dependencies = [ [[package]] name = "sp-core" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "base58", "blake2-rfc", @@ -8568,7 +8633,7 @@ dependencies = [ [[package]] name = "sp-database" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "kvdb", "parking_lot 0.11.1", @@ -8577,28 +8642,17 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", -] - -[[package]] -name = "sp-election-providers" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" -dependencies = [ - "parity-scale-codec", - "sp-arithmetic", - "sp-npos-elections", - "sp-std", + "syn 1.0.67", ] [[package]] name = "sp-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "environmental", "parity-scale-codec", @@ -8609,7 +8663,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "finality-grandpa", "log", @@ -8626,7 +8680,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "parity-scale-codec", "parking_lot 0.11.1", @@ -8638,7 +8692,7 @@ dependencies = [ [[package]] name = "sp-io" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "futures 0.3.13", "hash-db", @@ -8662,7 +8716,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "lazy_static", "sp-core", @@ -8673,10 +8727,10 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "async-trait", - "derive_more 0.99.11", + "derive_more 0.99.13", "futures 0.3.13", "merlin", "parity-scale-codec", @@ -8690,7 +8744,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "parity-scale-codec", "serde", @@ -8703,18 +8757,18 @@ dependencies = [ [[package]] name = "sp-npos-elections-compact" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.0.0", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] name = "sp-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "sp-api", "sp-core", @@ -8724,7 +8778,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "backtrace", ] @@ -8732,7 +8786,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "serde", "sp-core", @@ -8741,7 +8795,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "either", "hash256-std-hasher", @@ -8749,7 +8803,7 @@ dependencies = [ "log", "parity-scale-codec", "parity-util-mem", - "paste 1.0.4", + "paste 1.0.5", "rand 0.7.3", "serde", "sp-application-crypto", @@ -8762,7 +8816,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -8779,19 +8833,19 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "Inflector", - "proc-macro-crate", + "proc-macro-crate 1.0.0", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] name = "sp-serializer" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "serde", "serde_json", @@ -8800,7 +8854,7 @@ dependencies = [ [[package]] name = "sp-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "parity-scale-codec", "sp-api", @@ -8813,7 +8867,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -8823,7 +8877,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "hash-db", "log", @@ -8845,12 +8899,12 @@ dependencies = [ [[package]] name = "sp-std" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" [[package]] name = "sp-storage" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "impl-serde", "parity-scale-codec", @@ -8863,7 +8917,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "log", "sp-core", @@ -8876,9 +8930,8 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ - "impl-trait-for-tuples", "parity-scale-codec", "sp-api", "sp-inherents", @@ -8890,7 +8943,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "log", "parity-scale-codec", @@ -8903,9 +8956,9 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ - "derive_more 0.99.11", + "derive_more 0.99.13", "futures 0.3.13", "log", "parity-scale-codec", @@ -8919,7 +8972,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "hash-db", "memory-db", @@ -8933,7 +8986,7 @@ dependencies = [ [[package]] name = "sp-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "futures 0.3.13", "futures-core", @@ -8945,7 +8998,7 @@ dependencies = [ [[package]] name = "sp-version" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "impl-serde", "parity-scale-codec", @@ -8957,7 +9010,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -8983,6 +9036,31 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "static_init" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11b73400442027c4adedda20a9f9b7945234a5bd8d5f7e86da22bd5d0622369c" +dependencies = [ + "cfg_aliases", + "libc", + "parking_lot 0.11.1", + "static_init_macro", +] + +[[package]] +name = "static_init_macro" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2261c91034a1edc3fc4d1b80e89d82714faede0515c14a75da10cb941546bbf" +dependencies = [ + "cfg_aliases", + "memchr", + "proc-macro2 1.0.24", + "quote 1.0.9", + "syn 1.0.67", +] + [[package]] name = "statrs" version = "0.12.0" @@ -9050,7 +9128,7 @@ dependencies = [ "proc-macro-error", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -9071,7 +9149,7 @@ dependencies = [ "heck", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -9090,7 +9168,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "platforms", ] @@ -9098,7 +9176,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.13", @@ -9121,10 +9199,10 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "async-std", - "derive_more 0.99.11", + "derive_more 0.99.13", "futures-util", "hyper 0.13.10", "log", @@ -9135,7 +9213,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "futures 0.1.31", "futures 0.3.13", @@ -9147,6 +9225,7 @@ dependencies = [ "sc-consensus", "sc-executor", "sc-light", + "sc-offchain", "sc-service", "serde", "serde_json", @@ -9178,7 +9257,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "ansi_term 0.12.1", "atty", @@ -9215,9 +9294,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.63" +version = "1.0.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd9bc7ccc2688b3344c2f48b9b546648b25ce0b20fc717ee7fa7981a8ca9717" +checksum = "6498a9efc342871f91cc2d0d694c674368b4ceb40f62b65a7a08c3792935e702" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", @@ -9232,7 +9311,7 @@ checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", "unicode-xid 0.2.1", ] @@ -9303,7 +9382,7 @@ checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -9683,13 +9762,13 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41768be5b9f3489491825f56f01f25290aa1d3e7cc97e182d4d34360493ba6fa" +checksum = "c42e6fa53307c8a17e4ccd4dc81cf5ec38db9209f59b222210375b54ee40d1e2" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", ] [[package]] @@ -9707,7 +9786,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "pin-project 1.0.5", + "pin-project 1.0.6", "tracing", ] @@ -9734,9 +9813,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ab8966ac3ca27126141f7999361cc97dd6fb4b71da04c02044fa9045d98bb96" +checksum = "705096c6f83bf68ea5d357a6aa01829ddbdac531b357b45abeca842938085baa" dependencies = [ "ansi_term 0.12.1", "chrono", @@ -9785,7 +9864,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#645299e8b23ec5fa52935b1a6edbf36886e80141" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" dependencies = [ "frame-try-runtime", "log", @@ -9817,9 +9896,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" +checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06" [[package]] name = "ucd-trie" @@ -9976,9 +10055,9 @@ checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb" [[package]] name = "vec-arena" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eafc1b9b2dfc6f5529177b62cf806484db55b32dc7c9658a118e11bbeb33061d" +checksum = "34b2f665b594b07095e3ac3f718e13c2197143416fae4c5706cffb7b1af8d7f1" [[package]] name = "vec_map" @@ -9988,9 +10067,9 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" [[package]] name = "version_check" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" +checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" [[package]] name = "void" @@ -10006,9 +10085,9 @@ checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" [[package]] name = "walkdir" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" dependencies = [ "same-file", "winapi 0.3.9", @@ -10050,9 +10129,9 @@ checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" [[package]] name = "wasm-bindgen" -version = "0.2.71" +version = "0.2.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee1280240b7c461d6a0071313e08f34a60b0365f14260362e5a2b17d1d31aa7" +checksum = "83240549659d187488f91f33c0f8547cbfef0b2088bc470c116d1d260ef623d9" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -10060,24 +10139,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.71" +version = "0.2.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b7d8b6942b8bb3a9b0e73fc79b98095a27de6fa247615e59d096754a3bc2aa8" +checksum = "ae70622411ca953215ca6d06d3ebeb1e915f0f6613e3b495122878d7ebec7dae" dependencies = [ "bumpalo", "lazy_static", "log", "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.21" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e67a5806118af01f0d9045915676b22aaebecf4178ae7021bc171dab0b897ab" +checksum = "81b8b767af23de6ac18bf2168b690bed2902743ddf0fb39252e36f9e2bfc63ea" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -10087,9 +10166,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.71" +version = "0.2.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ac38da8ef716661f0f36c0d8320b89028efe10c7c0afde65baffb496ce0d3b" +checksum = "3e734d91443f177bfdb41969de821e15c516931c3c3db3d318fa1b68975d0f6f" dependencies = [ "quote 1.0.9", "wasm-bindgen-macro-support", @@ -10097,22 +10176,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.71" +version = "0.2.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc053ec74d454df287b9374ee8abb36ffd5acb95ba87da3ba5b7d3fe20eb401e" +checksum = "d53739ff08c8a68b0fdbcd54c372b8ab800b1449ab3c9d706503bc7dd1621b2c" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.71" +version = "0.2.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d6f8ec44822dd71f5f221a5847fb34acd9060535c1211b70a05844c0f6383b1" +checksum = "d9a543ae66aa233d14bb765ed9af4a33e81b8b58d1584cf1b47ff8cd0b9e4489" [[package]] name = "wasm-gc-api" @@ -10347,7 +10426,7 @@ dependencies = [ "lazy_static", "libc", "log", - "memoffset 0.6.1", + "memoffset 0.6.3", "more-asserts", "psm", "region", @@ -10358,9 +10437,9 @@ dependencies = [ [[package]] name = "wast" -version = "35.0.0" +version = "35.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db5ae96da18bb5926341516fd409b5a8ce4e4714da7f0a1063d3b20ac9f9a1e1" +checksum = "1a5800e9f86a1eae935e38bea11e60fd253f6d514d153fb39b3e5535a7b37b56" dependencies = [ "leb128", ] @@ -10376,9 +10455,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.48" +version = "0.3.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec600b26223b2948cedfde2a0aa6756dcf1fef616f43d7b3097aaf53a6c4d92b" +checksum = "a905d57e488fec8861446d3393670fb50d27a262344013181c2cdf9fff5481be" dependencies = [ "js-sys", "wasm-bindgen", @@ -10415,13 +10494,14 @@ dependencies = [ [[package]] name = "westend-runtime" version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "bitvec", "frame-executive", "frame-support", "frame-system", "frame-system-rpc-runtime-api", + "frame-try-runtime", "log", "pallet-authority-discovery", "pallet-authorship", @@ -10458,6 +10538,7 @@ dependencies = [ "polkadot-parachain", "polkadot-primitives", "polkadot-runtime-common", + "polkadot-runtime-parachains", "rustc-hex", "serde", "serde_derive", @@ -10491,12 +10572,12 @@ dependencies = [ [[package]] name = "which" -version = "4.0.2" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87c14ef7e1b8b8ecfc75d5eca37949410046e66f15d185c01d70824f1f8111ef" +checksum = "b55551e42cbdf2ce2bedd2203d0cc08dba002c27510f86dab6d0ce304cba3dfe" dependencies = [ + "either", "libc", - "thiserror", ] [[package]] @@ -10572,7 +10653,7 @@ dependencies = [ [[package]] name = "xcm" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "parity-scale-codec", ] @@ -10580,7 +10661,7 @@ dependencies = [ [[package]] name = "xcm-builder" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "frame-support", "parity-scale-codec", @@ -10596,7 +10677,7 @@ dependencies = [ [[package]] name = "xcm-executor" version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#46c826f595021475fa5dbcd0987ed53f104e6e15" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -10641,7 +10722,7 @@ checksum = "c3f369ddb18862aba61aa49bf31e74d29f0f162dec753063200e1dc084345d16" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.9", - "syn 1.0.63", + "syn 1.0.67", "synstructure", ] @@ -10672,6 +10753,6 @@ checksum = "a1e6e8778706838f43f771d80d37787cb2fe06dafe89dd3aebaf6721b9eaec81" dependencies = [ "cc", "glob", - "itertools", + "itertools 0.9.0", "libc", ] diff --git a/README.md b/README.md index cfd6d84d..064d7d29 100644 --- a/README.md +++ b/README.md @@ -27,24 +27,109 @@ cargo build --release ``` ## Run -### Local Testnet +### Local Relay Chain Testnet -Polkadot (rococo-v1 branch): -``` +#### Relay Chain Network(Validators) + +We need to clone and install the Polkadot (rococo-v1 branch): +```bash +# Get a fresh clone, or `cd` to where you have polkadot already: +git clone git@github.com:paritytech/polkadot.git +cd polkadot +git checkout rococo-v1 + +# build WITH the real-overseer (required) cargo build --release --features real-overseer +# generaete the chainspec - note this file MUST be shared with all nodes! +# Other nodes cannot generate it due to possible non-determanism ./target/release/polkadot build-spec --chain rococo-local --raw --disable-default-bootnode > rococo_local.json -./target/release/polkadot --chain ./rococo_local.json -d cumulus_relay1 --validator --bob --port 50555 +# Start Relay `Alice` node ./target/release/polkadot --chain ./rococo_local.json -d cumulus_relay0 --validator --alice --port 50556 ``` -Substrate Parachain Template: +Open a new terminal, same directory: + +```bash +# Start Relay `Bob` node +./target/release/polkadot --chain ./rococo_local.json -d cumulus_relay1 --validator --bob --port 50555 ``` -# this command assumes the chain spec is in a directory named polkadot that is a sibling of the working directory + +> There _must_ be a minimum of 2 relay chain nodes per parachain node. Scale as needed! + +#### Parachain Nodes (Collators) + +Substrate Parachain Template: +```bash +# NOTE: this command assumes the chain spec is in a directory named polkadot that is a sibling of the working directory ./target/release/parachain-collator -d local-test --collator --alice --ws-port 9945 --parachain-id 200 -- --chain ../polkadot/rococo_local.json ``` +> Note: this chainspec file MUST be shared with all nodes genereated by _one_ validator node and passed around. +> Other nodes cannot generate it due to possible non-determanism + +### Registering on Local Relay Chain + +#### Export the Parachain Genesis and Runtime + +The files you will need to register we will generate in a `./resources` folder, to build them because +you modified the code you can use the following commands: + +```bash +# Build the parachain node (from it's top level dir) +cargo build --release + +# Build the Chain spec +./target/release/parachain-collator build-spec \ +--disable-default-bootnode > ./resources/template-local-plain.json + +# Build the raw file +./target/release/parachain-collator build-spec \ +--chain=./resources/template-local-plain.json \ +--raw --disable-default-bootnode > ./resources/template-local.json + + +# Export genesis state to `./resources files +./target/release/parachain-collator export-genesis-state --parachain-id 200 > ./resources/para-200-genesis +# export runtime wasm +./target/release/parachain-collator export-genesis-wasm > ./resources/para-200.wasm +``` + +#### Register on the Relay with `sudo` + +In order to produce blocks you will need to register the parachain as detailed in the [Substrate Cumulus Worship](https://substrate.dev/cumulus-workshop/#/en/3-parachains/2-register) by going to + +`Developer -> sudo -> paraSudoWrapper -> sudoScheduleParaInitialize(id, genesis)` + +Ensure you set the `ParaId to 200` and the `parachain: Bool to Yes`. + +The files you will need are in the `./resources` folder, you just created. + +#### Restart the Parachain (Collator) and Wait... + +The collator node may need to be restarted to get it functioning as expected. After a [new era](https://wiki.polkadot.network/docs/en/glossary#era) starts on the relay chain, your parachain will come online. Once this happens, you should see the +collator start reporting _parachian_ blocks: + +```bash +2021-04-01 16:31:06 [Relaychain] ✨ Imported #243 (0x46d8…f394) +2021-04-01 16:31:06 [Relaychain] 👴 Applying authority set change scheduled at block #191 +2021-04-01 16:31:06 [Relaychain] 👴 Applying GRANDPA set change to new set [(Public(88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee (5FA9nQDV...)), 1), (Public(d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69 (5GoNkf6W...)), 1)] +2021-04-01 16:31:06 [Relaychain] 👴 Imported justification for block #191 that triggers command Changing authorities, signaling voter. +2021-04-01 16:31:06 [Parachain] Starting collation. relay_parent=0x46d87d4b55ffcd2d2dde3ee2459524c41da48ac970fb1448feaa26777b14f394 at=0x85c655663ad333b1508d0e4a373e86c08eb5b5353a3eef532a572af6395c45be +2021-04-01 16:31:06 [Parachain] 🙌 Starting consensus session on top of parent 0x85c655663ad333b1508d0e4a373e86c08eb5b5353a3eef532a572af6395c45be +2021-04-01 16:31:06 [Parachain] 🎁 Prepared block for proposing at 91 [hash: 0x078560513ac1862fed0caf5726b7ca024c2af6a28861c6c69776b61fcf5d3e1f; parent_hash: 0x85c6…45be; extrinsics (2): [0x8909…1c6c, 0x12ac…5583]] +2021-04-01 16:31:06 [Parachain] Produced proof-of-validity candidate. pov_hash=0x836cd0d72bf587343cdd5d4f8631ceb9b863faaa5e878498f833c7f656d05f71 block_hash=0x078560513ac1862fed0caf5726b7ca024c2af6a28861c6c69776b61fcf5d3e1f +2021-04-01 16:31:06 [Parachain] ✨ Imported #91 (0x0785…3e1f) +2021-04-01 16:31:09 [Relaychain] 💤 Idle (2 peers), best: #243 (0x46d8…f394), finalized #192 (0x9fb4…4b28), ⬇ 1.0kiB/s ⬆ 3.2kiB/s +2021-04-01 16:31:09 [Parachain] 💤 Idle (0 peers), best: #90 (0x85c6…45be), finalized #64 (0x10af…4ede), ⬇ 1.1kiB/s ⬆ 1.0kiB/s +2021-04-01 16:31:12 [Relaychain] ✨ Imported #244 (0xe861…d99d) +2021-04-01 16:31:14 [Relaychain] 💤 Idle (2 peers), best: #244 (0xe861…d99d), finalized #193 (0x9225…85f1), ⬇ 2.0kiB/s ⬆ 1.6kiB/s +2021-04-01 16:31:14 [Parachain] 💤 Idle (0 peers), best: #90 (0x85c6…45be), finalized #65 (0xdd20…d44a), ⬇ 1.6kiB/s ⬆ 1.4kiB/s +``` + +> Note the delay here! It may take some time for your relaychain to enter a new era. + ## Learn More Refer to the upstream diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index 98bd3b9e..04fae740 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -11,26 +11,26 @@ pub type ChainSpec = sc_service::GenericChainSpec(seed: &str) -> ::Public { - TPublic::Pair::from_string(&format!("//{}", seed), None) - .expect("static values are valid; qed") - .public() + TPublic::Pair::from_string(&format!("//{}", seed), None) + .expect("static values are valid; qed") + .public() } /// The extensions for the [`ChainSpec`]. #[derive(Debug, Clone, PartialEq, Serialize, Deserialize, ChainSpecGroup, ChainSpecExtension)] #[serde(deny_unknown_fields)] pub struct Extensions { - /// The relay chain of the Parachain. - pub relay_chain: String, - /// The id of the Parachain. - pub para_id: u32, + /// The relay chain of the Parachain. + pub relay_chain: String, + /// The id of the Parachain. + pub para_id: u32, } impl Extensions { - /// Try to get the extension from the given `ChainSpec`. - pub fn try_get(chain_spec: &dyn sc_service::ChainSpec) -> Option<&Self> { - sc_chain_spec::get_extension(chain_spec.extensions()) - } + /// Try to get the extension from the given `ChainSpec`. + pub fn try_get(chain_spec: &dyn sc_service::ChainSpec) -> Option<&Self> { + sc_chain_spec::get_extension(chain_spec.extensions()) + } } type AccountPublic = ::Signer; @@ -38,99 +38,99 @@ type AccountPublic = ::Signer; /// Helper function to generate an account ID from seed pub fn get_account_id_from_seed(seed: &str) -> AccountId where - AccountPublic: From<::Public>, + AccountPublic: From<::Public>, { - AccountPublic::from(get_from_seed::(seed)).into_account() + AccountPublic::from(get_from_seed::(seed)).into_account() } pub fn development_config(id: ParaId) -> ChainSpec { - ChainSpec::from_genesis( - // Name - "Development", - // ID - "dev", - ChainType::Local, - move || { - testnet_genesis( - get_account_id_from_seed::("Alice"), - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - ], - id, - ) - }, - vec![], - None, - None, - None, - Extensions { - relay_chain: "rococo-dev".into(), - para_id: id.into(), - }, - ) + ChainSpec::from_genesis( + // Name + "Development", + // ID + "dev", + ChainType::Local, + move || { + testnet_genesis( + get_account_id_from_seed::("Alice"), + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + ], + id, + ) + }, + vec![], + None, + None, + None, + Extensions { + relay_chain: "rococo-dev".into(), + para_id: id.into(), + }, + ) } pub fn local_testnet_config(id: ParaId) -> ChainSpec { - ChainSpec::from_genesis( - // Name - "Local Testnet", - // ID - "local_testnet", - ChainType::Local, - move || { - testnet_genesis( - get_account_id_from_seed::("Alice"), - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Charlie"), - get_account_id_from_seed::("Dave"), - get_account_id_from_seed::("Eve"), - get_account_id_from_seed::("Ferdie"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - get_account_id_from_seed::("Charlie//stash"), - get_account_id_from_seed::("Dave//stash"), - get_account_id_from_seed::("Eve//stash"), - get_account_id_from_seed::("Ferdie//stash"), - ], - id, - ) - }, - vec![], - None, - None, - None, - Extensions { - relay_chain: "rococo-local".into(), - para_id: id.into(), - }, - ) + ChainSpec::from_genesis( + // Name + "Local Testnet", + // ID + "local_testnet", + ChainType::Local, + move || { + testnet_genesis( + get_account_id_from_seed::("Alice"), + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), + ], + id, + ) + }, + vec![], + None, + None, + None, + Extensions { + relay_chain: "rococo-local".into(), + para_id: id.into(), + }, + ) } fn testnet_genesis( - root_key: AccountId, - endowed_accounts: Vec, - id: ParaId, + root_key: AccountId, + endowed_accounts: Vec, + id: ParaId, ) -> parachain_runtime::GenesisConfig { - parachain_runtime::GenesisConfig { - frame_system: parachain_runtime::SystemConfig { - code: parachain_runtime::WASM_BINARY - .expect("WASM binary was not build, please build it!") - .to_vec(), - changes_trie_config: Default::default(), - }, - pallet_balances: parachain_runtime::BalancesConfig { - balances: endowed_accounts - .iter() - .cloned() - .map(|k| (k, 1 << 60)) - .collect(), - }, - pallet_sudo: parachain_runtime::SudoConfig { key: root_key }, - parachain_info: parachain_runtime::ParachainInfoConfig { parachain_id: id }, - } + parachain_runtime::GenesisConfig { + frame_system: parachain_runtime::SystemConfig { + code: parachain_runtime::WASM_BINARY + .expect("WASM binary was not build, please build it!") + .to_vec(), + changes_trie_config: Default::default(), + }, + pallet_balances: parachain_runtime::BalancesConfig { + balances: endowed_accounts + .iter() + .cloned() + .map(|k| (k, 1 << 60)) + .collect(), + }, + pallet_sudo: parachain_runtime::SudoConfig { key: root_key }, + parachain_info: parachain_runtime::ParachainInfoConfig { parachain_id: id }, + } } diff --git a/node/src/command.rs b/node/src/command.rs index b739695b..d4b75ca0 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -267,11 +267,11 @@ pub fn run() -> Result<()> { let task_executor = config.task_executor.clone(); let polkadot_config = SubstrateCli::create_configuration( - &polkadot_cli, - &polkadot_cli, - task_executor, - None, - ).map_err(|err| format!("Relay chain argument error: {}", err))?; + &polkadot_cli, + &polkadot_cli, + task_executor.clone(), + ) + .map_err(|err| format!("Relay chain argument error: {}", err))?; let collator = cli.run.base.validator || cli.collator; info!("Parachain id: {:?}", id); @@ -346,7 +346,7 @@ impl CliConfiguration for RelayChainCli { self.base.base.prometheus_config(default_listen_port) } - fn init(&self) -> Result { + fn init(&self) -> Result<()> { unreachable!("PolkadotCli is never initialized; qed"); } diff --git a/node/src/lib.rs b/node/src/lib.rs new file mode 100644 index 00000000..38e43372 --- /dev/null +++ b/node/src/lib.rs @@ -0,0 +1,2 @@ +pub mod chain_spec; +pub mod service; diff --git a/node/src/main.rs b/node/src/main.rs index a3bcf9be..62155f4c 100644 --- a/node/src/main.rs +++ b/node/src/main.rs @@ -1,4 +1,4 @@ -#![warn(unused_extern_crates)] +#![warn(missing_docs)] mod chain_spec; #[macro_use] diff --git a/node/src/service.rs b/node/src/service.rs index 8e612f8b..395165d9 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -11,8 +11,7 @@ use parachain_runtime::{RuntimeApi, opaque::Block}; use sc_executor::native_executor_instance; pub use sc_executor::NativeExecutor; use sc_service::{Configuration, PartialComponents, Role, TFullBackend, TFullClient, TaskManager}; -use sc_telemetry::TelemetrySpan; -use sp_core::Pair; +use sc_telemetry::{Telemetry, TelemetryWorker, TelemetryWorkerHandle}; use sp_runtime::traits::BlakeTwo256; use sp_trie::PrefixedMemoryDB; use std::sync::Arc; @@ -37,16 +36,40 @@ pub fn new_partial( (), sp_consensus::import_queue::BasicQueue>, sc_transaction_pool::FullPool>, - (), + (Option, Option), >, sc_service::Error, > { let inherent_data_providers = sp_inherents::InherentDataProviders::new(); + let telemetry = config + .telemetry_endpoints + .clone() + .filter(|x| !x.is_empty()) + .map(|endpoints| -> Result<_, sc_telemetry::Error> { + let worker = TelemetryWorker::new(16)?; + let telemetry = worker.handle().new_telemetry(endpoints); + Ok((worker, telemetry)) + }) + .transpose()?; + let (client, backend, keystore_container, task_manager) = - sc_service::new_full_parts::(&config)?; + sc_service::new_full_parts::( + &config, + telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), + )?; let client = Arc::new(client); + let telemetry_worker_handle = telemetry + .as_ref() + .map(|(worker, _)| worker.handle()); + + let telemetry = telemetry + .map(|(worker, telemetry)| { + task_manager.spawn_handle().spawn("telemetry", worker.run()); + telemetry + }); + let registry = config.prometheus_registry(); let transaction_pool = sc_transaction_pool::BasicPool::new_full( @@ -74,7 +97,7 @@ pub fn new_partial( transaction_pool, inherent_data_providers, select_chain: (), - other: (), + other: (telemetry, telemetry_worker_handle), }; Ok(params) @@ -105,18 +128,23 @@ where let parachain_config = prepare_node_config(parachain_config); - let polkadot_full_node = - cumulus_client_service::build_polkadot_full_node(polkadot_config, collator_key.public()) - .map_err(|e| match e { - polkadot_service::Error::Sub(x) => x, - s => format!("{}", s).into(), - })?; - let params = new_partial(¶chain_config)?; params .inherent_data_providers .register_provider(sp_timestamp::InherentDataProvider) .unwrap(); + let (mut telemetry, telemetry_worker_handle) = params.other; + + let polkadot_full_node = + cumulus_client_service::build_polkadot_full_node( + polkadot_config, + collator_key.clone(), + telemetry_worker_handle, + ) + .map_err(|e| match e { + polkadot_service::Error::Sub(x) => x, + s => format!("{}", s).into(), + })?; let client = params.client.clone(); let backend = params.backend.clone(); @@ -142,18 +170,18 @@ where block_announce_validator_builder: Some(Box::new(|_| block_announce_validator)), })?; - let rpc_client = client.clone(); - let rpc_extensions_builder = Box::new(move |_, _| rpc_ext_builder(rpc_client.clone())); - - let telemetry_span = TelemetrySpan::new(); - let _telemetry_span_entered = telemetry_span.enter(); - if parachain_config.offchain_worker.enabled { sc_service::build_offchain_workers( - ¶chain_config, backend.clone(), task_manager.spawn_handle(), client.clone(), network.clone(), + ¶chain_config, + task_manager.spawn_handle(), + client.clone(), + network.clone(), ); } - + + let rpc_client = client.clone(); + let rpc_extensions_builder = Box::new(move |_, _| rpc_ext_builder(rpc_client.clone())); + sc_service::spawn_tasks(sc_service::SpawnTasksParams { on_demand: None, remote_blockchain: None, @@ -167,12 +195,12 @@ where network: network.clone(), network_status_sinks, system_rpc_tx, - telemetry_span: Some(telemetry_span.clone()), + telemetry: telemetry.as_mut(), })?; let announce_block = { let network = network.clone(); - Arc::new(move |hash, data| network.announce_block(hash, Some(data))) + Arc::new(move |hash, data| network.announce_block(hash, data)) }; if validator { @@ -181,6 +209,7 @@ where client.clone(), transaction_pool, prometheus_registry.as_ref(), + telemetry.as_ref().map(|x| x.handle()), ); let spawner = task_manager.spawn_handle(); diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 560823ba..e5bc5983 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -1,16 +1,40 @@ +[package] +authors = ['Anonymous'] +description = 'FRAME pallet template for defining custom runtime logic.' +edition = '2018' +homepage = 'https://substrate.dev' +license = 'Unlicense' +name = 'pallet-template' +readme = 'README.md' +repository = 'https://github.com/paritytech/substrate/' +version = '3.0.0' + +[package.metadata.docs.rs] +targets = ['x86_64-unknown-linux-gnu'] + [features] default = ['std'] +runtime-benchmarks = ['frame-benchmarking'] std = [ - 'codec/std', - 'frame-support/std', - 'frame-system/std', + 'codec/std', + 'frame-support/std', + 'frame-system/std', + 'frame-benchmarking/std', ] + [dependencies.codec] default-features = false features = ['derive'] package = 'parity-scale-codec' version = '2.0.0' +[dependencies.frame-benchmarking] +default-features = false +optional = true +git = 'https://github.com/paritytech/substrate.git' +branch = 'rococo-v1' +version = '3.0.0' + [dependencies.frame-support] default-features = false git = 'https://github.com/paritytech/substrate.git' @@ -24,7 +48,7 @@ branch = 'rococo-v1' version = '3.0.0' [dev-dependencies] -serde = { version = "1.0.101" } +serde = { version = "1.0.119" } [dev-dependencies.sp-core] default-features = false @@ -43,17 +67,3 @@ default-features = false git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' version = '3.0.0' - -[package] -authors = ['Anonymous'] -description = 'FRAME pallet template for defining custom runtime logic.' -edition = '2018' -homepage = 'https://substrate.dev' -license = 'Unlicense' -name = 'pallet-template' -readme = 'README.md' -repository = 'https://github.com/paritytech/substrate/' -version = '3.0.0' - -[package.metadata.docs.rs] -targets = ['x86_64-unknown-linux-gnu'] diff --git a/pallets/template/src/benchmarking.rs b/pallets/template/src/benchmarking.rs new file mode 100644 index 00000000..4e1acc8b --- /dev/null +++ b/pallets/template/src/benchmarking.rs @@ -0,0 +1,20 @@ +//! Benchmarking setup for pallet-template + +use super::*; + +#[allow(unused)] +use crate::Module as Template; +use frame_benchmarking::{benchmarks, impl_benchmark_test_suite, whitelisted_caller}; +use frame_system::RawOrigin; + +benchmarks! { + do_something { + let s in 0 .. 100; + let caller: T::AccountId = whitelisted_caller(); + }: _(RawOrigin::Signed(caller), s) + verify { + assert_eq!(Something::::get(), Some(s)); + } +} + +impl_benchmark_test_suite!(Template, crate::mock::new_test_ext(), crate::mock::Test,); diff --git a/pallets/template/src/lib.rs b/pallets/template/src/lib.rs index 97cc7b73..68220acb 100644 --- a/pallets/template/src/lib.rs +++ b/pallets/template/src/lib.rs @@ -2,7 +2,7 @@ /// Edit this file to define custom logic or remove it if it is not needed. /// Learn more about FRAME and the core library of Substrate FRAME pallets: -/// https://substrate.dev/docs/en/knowledgebase/runtime/frame +/// pub use pallet::*; #[cfg(test)] @@ -11,6 +11,9 @@ mod mock; #[cfg(test)] mod tests; +#[cfg(feature = "runtime-benchmarks")] +mod benchmarking; + #[frame_support::pallet] pub mod pallet { use frame_support::{dispatch::DispatchResultWithPostInfo, pallet_prelude::*}; diff --git a/pallets/template/src/mock.rs b/pallets/template/src/mock.rs index d33670f2..1ebe3bee 100644 --- a/pallets/template/src/mock.rs +++ b/pallets/template/src/mock.rs @@ -7,7 +7,7 @@ use sp_runtime::{ use frame_system as system; type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; -type Block = frame_system::mocking::MockBlock; +type Block = frame_system::mocking::MockBlock; // Configure a mock runtime to test the pallet. frame_support::construct_runtime!( @@ -16,8 +16,8 @@ frame_support::construct_runtime!( NodeBlock = Block, UncheckedExtrinsic = UncheckedExtrinsic, { - System: frame_system::{Module, Call, Config, Storage, Event}, - TemplateModule: pallet_template::{Module, Call, Storage, Event}, + System: frame_system::{Pallet, Call, Config, Storage, Event}, + TemplateModule: pallet_template::{Pallet, Call, Storage, Event}, } ); diff --git a/pallets/template/src/tests.rs b/pallets/template/src/tests.rs index 3356b29f..aecf1301 100644 --- a/pallets/template/src/tests.rs +++ b/pallets/template/src/tests.rs @@ -1,5 +1,5 @@ -use crate::{Error, mock::*}; -use frame_support::{assert_ok, assert_noop}; +use crate::{mock::*, Error}; +use frame_support::{assert_noop, assert_ok}; #[test] fn it_works_for_default_value() { diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 6720d6d6..9e441277 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,6 +12,10 @@ name = 'parachain-runtime' repository = 'https://github.com/substrate-developer-hub/substrate-parachain-template' version = '2.0.0' + +[dependencies] +smallvec = "1.6.1" + [package.metadata.docs.rs] targets = ['x86_64-unknown-linux-gnu'] @@ -170,13 +174,6 @@ git = 'https://github.com/paritytech/substrate.git' branch = 'rococo-v1' version = '3.0.0' -[dependencies.template] -default-features = false -package = 'pallet-template' -path = '../pallets/template' -version = '3.0.0' - - # Cumulus dependencies [dependencies.parachain-info] default-features = false @@ -201,64 +198,72 @@ default-features = false # Polkadot dependencies [dependencies.polkadot-parachain] -git = "https://github.com/paritytech/polkadot" +git = 'https://github.com/paritytech/polkadot' branch = 'rococo-v1' default-features = false [dependencies.xcm] -git = "https://github.com/paritytech/polkadot" +git = 'https://github.com/paritytech/polkadot' branch = 'rococo-v1' default-features = false [dependencies.xcm-builder] -git = "https://github.com/paritytech/polkadot" +git = 'https://github.com/paritytech/polkadot' branch = 'rococo-v1' default-features = false [dependencies.xcm-executor] -git = "https://github.com/paritytech/polkadot" +git = 'https://github.com/paritytech/polkadot' branch = 'rococo-v1' default-features = false +[dependencies.template] +default-features = false +package = 'pallet-template' +path = '../pallets/template' + [features] default = ['std'] runtime-benchmarks = [ - 'sp-runtime/runtime-benchmarks', - 'frame-benchmarking', - 'frame-support/runtime-benchmarks', - 'frame-system-benchmarking', - 'hex-literal', - 'frame-system/runtime-benchmarks', - 'pallet-balances/runtime-benchmarks', - 'pallet-timestamp/runtime-benchmarks', + 'sp-runtime/runtime-benchmarks', + 'frame-benchmarking', + 'frame-support/runtime-benchmarks', + 'frame-system-benchmarking', + 'hex-literal', + 'frame-system/runtime-benchmarks', + 'pallet-balances/runtime-benchmarks', + 'pallet-timestamp/runtime-benchmarks', + 'template/runtime-benchmarks', ] std = [ - "codec/std", - "serde", - "sp-api/std", - "sp-std/std", - "sp-io/std", - "sp-core/std", - "sp-runtime/std", - "sp-version/std", - "sp-offchain/std", - "sp-session/std", - "sp-block-builder/std", - "sp-transaction-pool/std", - "sp-inherents/std", - "frame-support/std", - "frame-executive/std", - "frame-system/std", - "pallet-balances/std", - "pallet-randomness-collective-flip/std", - "pallet-timestamp/std", - "pallet-sudo/std", - "pallet-transaction-payment/std", - "parachain-info/std", - "cumulus-pallet-parachain-system/std", - "cumulus-primitives-core/std", - "xcm/std", - "xcm-builder/std", - "xcm-executor/std", - "cumulus-pallet-xcm-handler/std", + 'codec/std', + 'serde', + 'sp-api/std', + 'sp-std/std', + 'sp-io/std', + 'sp-core/std', + 'sp-runtime/std', + 'sp-version/std', + 'sp-offchain/std', + 'sp-session/std', + 'sp-block-builder/std', + 'sp-transaction-pool/std', + 'sp-inherents/std', + 'frame-support/std', + 'frame-executive/std', + 'frame-system/std', + 'frame-system-rpc-runtime-api/std', + 'pallet-balances/std', + 'pallet-randomness-collective-flip/std', + 'pallet-timestamp/std', + 'pallet-sudo/std', + 'pallet-transaction-payment/std', + 'parachain-info/std', + 'cumulus-pallet-parachain-system/std', + 'cumulus-primitives-core/std', + 'xcm/std', + 'xcm-builder/std', + 'xcm-executor/std', + 'cumulus-pallet-xcm-handler/std', + 'template/std', ] diff --git a/runtime/build.rs b/runtime/build.rs index 9b53d245..18a76f78 100644 --- a/runtime/build.rs +++ b/runtime/build.rs @@ -1,9 +1,9 @@ use substrate_wasm_builder::WasmBuilder; fn main() { - WasmBuilder::new() - .with_current_project() - .export_heap_base() - .import_memory() - .build() + WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .build() } diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index b5525b35..924570d4 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -1,53 +1,61 @@ #![cfg_attr(not(feature = "std"), no_std)] // `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256. -#![recursion_limit="256"] +#![recursion_limit = "256"] // Make the WASM binary available. #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); -#[cfg(feature = "std")] -use sp_version::NativeVersion; -use sp_version::RuntimeVersion; -use sp_std::prelude::*; +use sp_api::impl_runtime_apis; use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; +use sp_runtime::traits::{ + AccountIdLookup, BlakeTwo256, Block as BlockT, IdentifyAccount, Verify, +}; use sp_runtime::{ - ApplyExtrinsicResult, generic, create_runtime_str, impl_opaque_keys, MultiSignature, - transaction_validity::{TransactionValidity, TransactionSource}, + create_runtime_str, generic, impl_opaque_keys, + transaction_validity::{TransactionSource, TransactionValidity}, + ApplyExtrinsicResult, MultiSignature, }; -use sp_runtime::traits::{ - BlakeTwo256, Block as BlockT, AccountIdLookup, Verify, IdentifyAccount, + +use sp_std::prelude::*; +#[cfg(feature = "std")] +use sp_version::NativeVersion; +use sp_version::RuntimeVersion; + +use frame_system::{ + limits::{BlockLength, BlockWeights}, + EnsureRoot, }; -use sp_api::impl_runtime_apis; -// XCM imports +// Polkadot imports use polkadot_parachain::primitives::Sibling; use xcm::v0::{Junction, MultiLocation, NetworkId}; use xcm_builder::{ - AccountId32Aliases, CurrencyAdapter, LocationInverter, ParentIsDefault, RelayChainAsNative, - SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, - SovereignSignedViaLocation, + AccountId32Aliases, CurrencyAdapter, LocationInverter, ParentIsDefault, RelayChainAsNative, + SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, + SovereignSignedViaLocation, }; use xcm_executor::{ - traits::{IsConcrete, NativeAsset}, - Config, XcmExecutor, + traits::{IsConcrete, NativeAsset}, + Config, XcmExecutor, }; -use frame_system::{EnsureRoot, limits::{BlockLength, BlockWeights}}; // A few exports that help ease life for downstream crates. -#[cfg(any(feature = "std", test))] -pub use sp_runtime::BuildStorage; -pub use pallet_timestamp::Call as TimestampCall; -pub use pallet_balances::Call as BalancesCall; -pub use sp_runtime::{Permill, Perbill}; +use codec::{Decode, Encode}; pub use frame_support::{ - construct_runtime, parameter_types, StorageValue, + construct_runtime, parameter_types, traits::{KeyOwnerProofSystem, Randomness}, weights::{ - Weight, IdentityFee, DispatchClass, - constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND}, - }, + constants::{BlockExecutionWeight, RocksDbWeight, ExtrinsicBaseWeight, WEIGHT_PER_SECOND}, + DispatchClass, IdentityFee, Weight, + }, + RuntimeDebug, StorageValue, }; +pub use pallet_balances::Call as BalancesCall; +pub use pallet_timestamp::Call as TimestampCall; +#[cfg(any(feature = "std", test))] +pub use sp_runtime::BuildStorage; +pub use sp_runtime::{Perbill, Permill, Perquintill}; /// Import the template pallet. pub use template; @@ -83,28 +91,28 @@ pub type DigestItem = generic::DigestItem; /// of data like extrinsics, allowing for them to continue syncing the network through upgrades /// to even the core data structures. pub mod opaque { - use super::*; + use super::*; - pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic; + pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic; - /// Opaque block type. - pub type Block = generic::Block; + /// Opaque block type. + pub type Block = generic::Block; - pub type SessionHandlers = (); + pub type SessionHandlers = (); - impl_opaque_keys! { - pub struct SessionKeys {} - } + impl_opaque_keys! { + pub struct SessionKeys {} + } } pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("cumulus-test-parachain"), impl_name: create_runtime_str!("cumulus-test-parachain"), authoring_version: 1, - spec_version: 100, - impl_version: 1, - apis: RUNTIME_API_VERSIONS, - transaction_version: 1, + spec_version: 1, + impl_version: 1, + apis: RUNTIME_API_VERSIONS, + transaction_version: 1, }; /// This determines the average expected block time that we are targetting. @@ -113,7 +121,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { /// up by `pallet_aura` to implement `fn slot_duration()`. /// /// Change this to adjust the block time. -pub const MILLISECS_PER_BLOCK: u64 = 12000; +pub const MILLISECS_PER_BLOCK: u64 = 6000; pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK; @@ -127,17 +135,17 @@ pub const PRIMARY_PROBABILITY: (u64, u64) = (1, 4); #[derive(codec::Encode, codec::Decode)] pub enum XCMPMessage { - /// Transfer tokens to the given account from the Parachain account. - TransferToken(XAccountId, XBalance), + /// Transfer tokens to the given account from the Parachain account. + TransferToken(XAccountId, XBalance), } /// The version information used to identify this runtime when compiled natively. #[cfg(feature = "std")] pub fn native_version() -> NativeVersion { - NativeVersion { - runtime_version: VERSION, - can_author_with: Default::default(), - } + NativeVersion { + runtime_version: VERSION, + can_author_with: Default::default(), + } } /// We assume that ~10% of the block weight is consumed by `on_initalize` handlers. @@ -146,11 +154,11 @@ const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(10); /// We allow `Normal` extrinsics to fill up the block up to 75%, the rest can be used /// by Operational extrinsics. const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); -/// We allow for 2 seconds of compute with a 6 second average block time. -const MAXIMUM_BLOCK_WEIGHT: Weight = 2 * WEIGHT_PER_SECOND; +/// We allow for 0.5 seconds of compute with a 6 second average block time. +const MAXIMUM_BLOCK_WEIGHT: Weight = WEIGHT_PER_SECOND / 2; parameter_types! { - pub const BlockHashCount: BlockNumber = 250; + pub const BlockHashCount: BlockNumber = 250; pub const Version: RuntimeVersion = VERSION; pub RuntimeBlockLength: BlockLength = BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); @@ -172,91 +180,92 @@ parameter_types! { }) .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) .build_or_panic(); - pub const SS58Prefix: u8 = 42; + pub const SS58Prefix: u8 = 0; } // Configure FRAME pallets to include in runtime. impl frame_system::Config for Runtime { - /// The basic call filter to use in dispatchable. - type BaseCallFilter = (); - /// Block & extrinsics weights: base values and limits. - type BlockWeights = RuntimeBlockWeights; - /// The maximum length of a block (in bytes). - type BlockLength = RuntimeBlockLength; - /// The identifier used to distinguish between accounts. - type AccountId = AccountId; - /// The aggregated dispatch type that is available for extrinsics. - type Call = Call; - /// The lookup mechanism to get account ID from whatever is passed in dispatchers. - type Lookup = AccountIdLookup; - /// The index type for storing how many extrinsics an account has signed. - type Index = Index; - /// The index type for blocks. - type BlockNumber = BlockNumber; - /// The type for hashing blocks and tries. - type Hash = Hash; - /// The hashing algorithm used. - type Hashing = BlakeTwo256; - /// The header type. - type Header = generic::Header; - /// The ubiquitous event type. - type Event = Event; - /// The ubiquitous origin type. - type Origin = Origin; - /// Maximum number of block number to block hash mappings to keep (oldest pruned first). - type BlockHashCount = BlockHashCount; - /// The weight of database operations that the runtime can invoke. - type DbWeight = RocksDbWeight; - /// Version of the runtime. - type Version = Version; - /// Converts a module to the index of the module in `construct_runtime!`. - /// - /// This type is being generated by `construct_runtime!`. - type PalletInfo = PalletInfo; - /// What to do if a new account is created. - type OnNewAccount = (); - /// What to do if an account is fully reaped from the system. - type OnKilledAccount = (); - /// The data to be stored in an account. - type AccountData = pallet_balances::AccountData; - /// Weight information for the extrinsics of this pallet. - type SystemWeightInfo = (); - /// This is used as an identifier of the chain. 42 is the generic substrate prefix. - type SS58Prefix = SS58Prefix; + /// The basic call filter to use in dispatchable. + type BaseCallFilter = (); + /// Block & extrinsics weights: base values and limits. + type BlockWeights = RuntimeBlockWeights; + /// The maximum length of a block (in bytes). + type BlockLength = RuntimeBlockLength; + /// The identifier used to distinguish between accounts. + type AccountId = AccountId; + /// The aggregated dispatch type that is available for extrinsics. + type Call = Call; + /// The lookup mechanism to get account ID from whatever is passed in dispatchers. + type Lookup = AccountIdLookup; + /// The index type for storing how many extrinsics an account has signed. + type Index = Index; + /// The index type for blocks. + type BlockNumber = BlockNumber; + /// The type for hashing blocks and tries. + type Hash = Hash; + /// The hashing algorithm used. + type Hashing = BlakeTwo256; + /// The header type. + type Header = generic::Header; + /// The ubiquitous event type. + type Event = Event; + /// The ubiquitous origin type. + type Origin = Origin; + /// Maximum number of block number to block hash mappings to keep (oldest pruned first). + type BlockHashCount = BlockHashCount; + /// The weight of database operations that the runtime can invoke. + type DbWeight = RocksDbWeight; + /// Version of the runtime. + type Version = Version; + /// Converts a module to the index of the module in `construct_runtime!`. + /// + /// This type is being generated by `construct_runtime!`. + type PalletInfo = PalletInfo; + /// What to do if a new account is created. + type OnNewAccount = (); + /// What to do if an account is fully reaped from the system. + type OnKilledAccount = (); + /// The data to be stored in an account. + type AccountData = pallet_balances::AccountData; + /// Weight information for the extrinsics of this pallet. + type SystemWeightInfo = (); + /// This is used as an identifier of the chain. 42 is the generic substrate prefix. + type SS58Prefix = SS58Prefix; } parameter_types! { - pub const MinimumPeriod: u64 = SLOT_DURATION / 2; + pub const MinimumPeriod: u64 = SLOT_DURATION / 2; } impl pallet_timestamp::Config for Runtime { - /// A timestamp: milliseconds since the unix epoch. - type Moment = u64; - type OnTimestampSet = (); - type MinimumPeriod = MinimumPeriod; - type WeightInfo = (); + /// A timestamp: milliseconds since the unix epoch. + type Moment = u64; + type OnTimestampSet = (); + type MinimumPeriod = MinimumPeriod; + type WeightInfo = (); } parameter_types! { - pub const ExistentialDeposit: u128 = 500; + /// Same as Polkadot Relay Chain. + pub const ExistentialDeposit: Balance = 500; pub const MaxLocks: u32 = 50; } impl pallet_balances::Config for Runtime { - type MaxLocks = MaxLocks; - /// The type for recording an account's balance. - type Balance = Balance; - /// The ubiquitous event type. - type Event = Event; - type DustRemoval = (); - type ExistentialDeposit = ExistentialDeposit; - type AccountStore = System; - type WeightInfo = pallet_balances::weights::SubstrateWeight; + type MaxLocks = MaxLocks; + /// The type for recording an account's balance. + type Balance = Balance; + /// The ubiquitous event type. + type Event = Event; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = pallet_balances::weights::SubstrateWeight; } parameter_types! { - pub const TransactionByteFee: Balance = 1; + pub const TransactionByteFee: Balance = 1 ; } impl pallet_transaction_payment::Config for Runtime { @@ -267,72 +276,72 @@ impl pallet_transaction_payment::Config for Runtime { } impl pallet_sudo::Config for Runtime { - type Event = Event; - type Call = Call; + type Event = Event; + type Call = Call; } impl cumulus_pallet_parachain_system::Config for Runtime { type Event = Event; type OnValidationData = (); - type SelfParaId = parachain_info::Module; - type DownwardMessageHandlers = (); - type HrmpMessageHandlers = (); + type SelfParaId = parachain_info::Pallet; + type DownwardMessageHandlers = XcmHandler; + type HrmpMessageHandlers = XcmHandler; } impl parachain_info::Config for Runtime {} parameter_types! { - pub const RococoLocation: MultiLocation = MultiLocation::X1(Junction::Parent); - pub const RococoNetwork: NetworkId = NetworkId::Polkadot; - pub RelayChainOrigin: Origin = cumulus_pallet_xcm_handler::Origin::Relay.into(); - pub Ancestry: MultiLocation = Junction::Parachain { - id: ParachainInfo::parachain_id().into() - }.into(); + pub const RococoLocation: MultiLocation = MultiLocation::X1(Junction::Parent); + pub const RococoNetwork: NetworkId = NetworkId::Polkadot; + pub RelayChainOrigin: Origin = cumulus_pallet_xcm_handler::Origin::Relay.into(); + pub Ancestry: MultiLocation = Junction::Parachain { + id: ParachainInfo::parachain_id().into() + }.into(); } type LocationConverter = ( - ParentIsDefault, - SiblingParachainConvertsVia, - AccountId32Aliases, + ParentIsDefault, + SiblingParachainConvertsVia, + AccountId32Aliases, ); type LocalAssetTransactor = CurrencyAdapter< - // Use this currency: - Balances, - // Use this currency when it is a fungible asset matching the given location or name: - IsConcrete, - // Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID: - LocationConverter, - // Our chain's account ID type (we can't get away without mentioning it explicitly): - AccountId, + // Use this currency: + Balances, + // Use this currency when it is a fungible asset matching the given location or name: + IsConcrete, + // Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID: + LocationConverter, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, >; type LocalOriginConverter = ( - SovereignSignedViaLocation, - RelayChainAsNative, - SiblingParachainAsNative, - SignedAccountId32AsNative, + SovereignSignedViaLocation, + RelayChainAsNative, + SiblingParachainAsNative, + SignedAccountId32AsNative, ); pub struct XcmConfig; impl Config for XcmConfig { - type Call = Call; - type XcmSender = XcmHandler; - // How to withdraw and deposit an asset. - type AssetTransactor = LocalAssetTransactor; - type OriginConverter = LocalOriginConverter; - type IsReserve = NativeAsset; - type IsTeleporter = (); - type LocationInverter = LocationInverter; + type Call = Call; + type XcmSender = XcmHandler; + // How to withdraw and deposit an asset. + type AssetTransactor = LocalAssetTransactor; + type OriginConverter = LocalOriginConverter; + type IsReserve = NativeAsset; + type IsTeleporter = (); + type LocationInverter = LocationInverter; } impl cumulus_pallet_xcm_handler::Config for Runtime { - type Event = Event; - type XcmExecutor = XcmExecutor; - type UpwardMessageSender = ParachainSystem; - type HrmpMessageSender = ParachainSystem; - type SendXcmOrigin = EnsureRoot; - type AccountIdConverter = LocationConverter; + type Event = Event; + type XcmExecutor = XcmExecutor; + type UpwardMessageSender = ParachainSystem; + type HrmpMessageSender = ParachainSystem; + type SendXcmOrigin = EnsureRoot; + type AccountIdConverter = LocationConverter; } /// Configure the pallet template in pallets/template. @@ -347,16 +356,16 @@ construct_runtime!( NodeBlock = opaque::Block, UncheckedExtrinsic = UncheckedExtrinsic, { - System: frame_system::{Module, Call, Storage, Config, Event}, - Timestamp: pallet_timestamp::{Module, Call, Storage, Inherent}, - Balances: pallet_balances::{Module, Call, Storage, Config, Event}, - Sudo: pallet_sudo::{Module, Call, Storage, Config, Event}, - RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Module, Call, Storage}, - ParachainSystem: cumulus_pallet_parachain_system::{Module, Call, Storage, Inherent, Event}, - TransactionPayment: pallet_transaction_payment::{Module, Storage}, - ParachainInfo: parachain_info::{Module, Storage, Config}, - XcmHandler: cumulus_pallet_xcm_handler::{Module, Event, Origin}, - TemplateModule: template::{Module, Call, Storage, Event}, + System: frame_system::{Pallet, Call, Config, Storage, Event}, + RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Call, Storage}, + Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent}, + Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, + ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Storage, Inherent, Event}, + TransactionPayment: pallet_transaction_payment::{Pallet, Storage}, + ParachainInfo: parachain_info::{Pallet, Storage, Config}, + XcmHandler: cumulus_pallet_xcm_handler::{Pallet, Event, Origin}, + Sudo: pallet_sudo::{Pallet, Call, Config, Storage, Event}, + TemplatePallet: template::{Pallet, Call, Storage, Event}, } ); @@ -372,13 +381,13 @@ pub type SignedBlock = generic::SignedBlock; pub type BlockId = generic::BlockId; /// The SignedExtension to the basic transaction logic. pub type SignedExtra = ( - frame_system::CheckSpecVersion, - frame_system::CheckTxVersion, - frame_system::CheckGenesis, - frame_system::CheckEra, - frame_system::CheckNonce, - frame_system::CheckWeight, - pallet_transaction_payment::ChargeTransactionPayment + frame_system::CheckSpecVersion, + frame_system::CheckTxVersion, + frame_system::CheckGenesis, + frame_system::CheckEra, + frame_system::CheckNonce, + frame_system::CheckWeight, + pallet_transaction_payment::ChargeTransactionPayment, ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; @@ -386,141 +395,141 @@ pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< - Runtime, - Block, - frame_system::ChainContext, - Runtime, - AllModules, + Runtime, + Block, + frame_system::ChainContext, + Runtime, + AllPallets, >; impl_runtime_apis! { - impl sp_api::Core for Runtime { - fn version() -> RuntimeVersion { - VERSION - } - - fn execute_block(block: Block) { - Executive::execute_block(block) - } - - fn initialize_block(header: &::Header) { - Executive::initialize_block(header) - } - } - - impl sp_api::Metadata for Runtime { - fn metadata() -> OpaqueMetadata { - Runtime::metadata().into() - } - } - - impl sp_block_builder::BlockBuilder for Runtime { - fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { - Executive::apply_extrinsic(extrinsic) - } - - fn finalize_block() -> ::Header { - Executive::finalize_block() - } - - fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { - data.create_extrinsics() - } - - fn check_inherents( - block: Block, - data: sp_inherents::InherentData, - ) -> sp_inherents::CheckInherentsResult { - data.check_extrinsics(&block) - } - - fn random_seed() -> ::Hash { - RandomnessCollectiveFlip::random_seed() - } - } - - impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { - fn validate_transaction( - source: TransactionSource, - tx: ::Extrinsic, - ) -> TransactionValidity { - Executive::validate_transaction(source, tx) - } - } - - impl sp_offchain::OffchainWorkerApi for Runtime { - fn offchain_worker(header: &::Header) { - Executive::offchain_worker(header) - } - } - - impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - opaque::SessionKeys::generate(seed) - } - - fn decode_session_keys( - encoded: Vec, - ) -> Option, KeyTypeId)>> { - opaque::SessionKeys::decode_into_raw_public_keys(&encoded) - } - } - - impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { - fn account_nonce(account: AccountId) -> Index { - System::account_nonce(account) - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { - fn query_info( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { - TransactionPayment::query_info(uxt, len) - } - fn query_fee_details( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment::FeeDetails { - TransactionPayment::query_fee_details(uxt, len) - } - } - - #[cfg(feature = "runtime-benchmarks")] - impl frame_benchmarking::Benchmark for Runtime { - fn dispatch_benchmark( - config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { - use frame_benchmarking::{Benchmarking, BenchmarkBatch, add_benchmark, TrackedStorageKey}; - - use frame_system_benchmarking::Module as SystemBench; - impl frame_system_benchmarking::Config for Runtime {} - - let whitelist: Vec = vec![ - // Block Number - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), - // Total Issuance - hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(), - // Execution Phase - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), - // Event Count - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), - // System Events - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), - ]; - - let mut batches = Vec::::new(); - let params = (&config, &whitelist); - - add_benchmark!(params, batches, frame_system, SystemBench::); - add_benchmark!(params, batches, pallet_balances, Balances); - add_benchmark!(params, batches, pallet_timestamp, Timestamp); - - if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) } - Ok(batches) - } - } + impl sp_api::Core for Runtime { + fn version() -> RuntimeVersion { + VERSION + } + + fn execute_block(block: Block) { + Executive::execute_block(block) + } + + fn initialize_block(header: &::Header) { + Executive::initialize_block(header) + } + } + + impl sp_api::Metadata for Runtime { + fn metadata() -> OpaqueMetadata { + Runtime::metadata().into() + } + } + + impl sp_block_builder::BlockBuilder for Runtime { + fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { + Executive::apply_extrinsic(extrinsic) + } + + fn finalize_block() -> ::Header { + Executive::finalize_block() + } + + fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { + data.create_extrinsics() + } + + fn check_inherents( + block: Block, + data: sp_inherents::InherentData, + ) -> sp_inherents::CheckInherentsResult { + data.check_extrinsics(&block) + } + + fn random_seed() -> ::Hash { + RandomnessCollectiveFlip::random_seed().0 + } + } + + impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { + fn validate_transaction( + source: TransactionSource, + tx: ::Extrinsic, + ) -> TransactionValidity { + Executive::validate_transaction(source, tx) + } + } + + impl sp_offchain::OffchainWorkerApi for Runtime { + fn offchain_worker(header: &::Header) { + Executive::offchain_worker(header) + } + } + + impl sp_session::SessionKeys for Runtime { + fn generate_session_keys(seed: Option>) -> Vec { + opaque::SessionKeys::generate(seed) + } + + fn decode_session_keys( + encoded: Vec, + ) -> Option, KeyTypeId)>> { + opaque::SessionKeys::decode_into_raw_public_keys(&encoded) + } + } + + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { + fn account_nonce(account: AccountId) -> Index { + System::account_nonce(account) + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { + fn query_info( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { + TransactionPayment::query_info(uxt, len) + } + fn query_fee_details( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_fee_details(uxt, len) + } + } + + #[cfg(feature = "runtime-benchmarks")] + impl frame_benchmarking::Benchmark for Runtime { + fn dispatch_benchmark( + config: frame_benchmarking::BenchmarkConfig + ) -> Result, sp_runtime::RuntimeString> { + use frame_benchmarking::{Benchmarking, BenchmarkBatch, add_benchmark, TrackedStorageKey}; + + use frame_system_benchmarking::Pallet as SystemBench; + impl frame_system_benchmarking::Config for Runtime {} + + let whitelist: Vec = vec![ + // Block Number + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), + // Total Issuance + hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(), + // Execution Phase + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), + // Event Count + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), + // System Events + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), + ]; + + let mut batches = Vec::::new(); + let params = (&config, &whitelist); + + add_benchmark!(params, batches, frame_system, SystemBench::); + add_benchmark!(params, batches, pallet_balances, Balances); + add_benchmark!(params, batches, pallet_timestamp, Timestamp); + + if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) } + Ok(batches) + } + } } cumulus_pallet_parachain_system::register_validate_block!(Runtime, Executive); From 40b858149b212e493da08d80e0fc5b06a6b0b72d Mon Sep 17 00:00:00 2001 From: stanly-johnson Date: Mon, 19 Apr 2021 20:24:57 +0530 Subject: [PATCH 23/91] Update template to cumulus@6ed9632 (#21) * compile to cumulus@6ed9632 * update docs * fix test * Update github actions * Update node/src/command.rs Co-authored-by: Ricardo Rius <9488369+riusricardo@users.noreply.github.com> * Update node/src/command.rs Co-authored-by: Ricardo Rius <9488369+riusricardo@users.noreply.github.com> * Update runtime/src/lib.rs Co-authored-by: Ricardo Rius <9488369+riusricardo@users.noreply.github.com> Co-authored-by: Ricardo Rius Co-authored-by: Ricardo Rius <9488369+riusricardo@users.noreply.github.com> --- .github/workflows/test-code.yml | 8 +- Cargo.lock | 1941 +++++++++++++++++++------------ README.md | 10 +- node/Cargo.toml | 4 + node/src/cli.rs | 27 +- node/src/command.rs | 44 +- pallets/template/src/mock.rs | 1 + runtime/Cargo.toml | 21 +- runtime/src/lib.rs | 193 ++- 9 files changed, 1442 insertions(+), 807 deletions(-) diff --git a/.github/workflows/test-code.yml b/.github/workflows/test-code.yml index f5ae999e..56bd07b9 100644 --- a/.github/workflows/test-code.yml +++ b/.github/workflows/test-code.yml @@ -10,7 +10,7 @@ on: jobs: test-code: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - name: Checkout Code @@ -30,7 +30,7 @@ jobs: uses: actions-rs/toolchain@v1 with: profile: minimal - toolchain: nightly-2021-01-26 + toolchain: nightly-2021-04-18 components: rustfmt, clippy target: wasm32-unknown-unknown override: true @@ -41,7 +41,7 @@ jobs: # run: cargo +nightly-2020-05-07 clippy -- -D warnings - name: Check Code - run: cargo check --all + run: cargo check - name: Test Code - run: cargo test --all + run: cargo test diff --git a/Cargo.lock b/Cargo.lock index 0330b595..96f5a019 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,5 +1,7 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + [[package]] name = "Inflector" version = "0.11.4" @@ -94,6 +96,17 @@ dependencies = [ "memchr", ] +[[package]] +name = "alga" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f823d037a7ec6ea2197046bafd4ae150e6bc36f9ca347404f46a46823fa84f2" +dependencies = [ + "approx 0.3.2", + "num-complex 0.2.4", + "num-traits", +] + [[package]] name = "always-assert" version = "0.1.2" @@ -133,6 +146,15 @@ dependencies = [ "num-traits", ] +[[package]] +name = "approx" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f2a05fd1bd10b2527e20a2cd32d8873d115b8b39fe219ee25f42a8aca6ba278" +dependencies = [ + "num-traits", +] + [[package]] name = "arrayref" version = "0.3.6" @@ -155,23 +177,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] -name = "asn1_der" -version = "0.6.3" +name = "arrayvec" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fce6b6a0ffdafebd82c87e79e3f40e8d2c523e5fea5566ff6b90509bf98d638" -dependencies = [ - "asn1_der_derive", -] +checksum = "5a2f58b0bb10c380af2b26e57212856b8c9a59e0925b4c20f4a174a49734eaf7" [[package]] -name = "asn1_der_derive" -version = "0.1.2" +name = "asn1_der" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d0864d84b8e07b145449be9a8537db86bf9de5ce03b913214694643b4743502" -dependencies = [ - "quote 1.0.9", - "syn 1.0.67", -] +checksum = "9d6e24d2cce90c53b948c46271bfb053e4bdc2db9b5d3f65e20f8cf28a1b7fc3" [[package]] name = "assert_matches" @@ -179,6 +194,16 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +[[package]] +name = "async-attributes" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" +dependencies = [ + "quote 1.0.9", + "syn 1.0.69", +] + [[package]] name = "async-channel" version = "1.6.1" @@ -280,6 +305,7 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9f06685bad74e0570f5213741bea82158279a4103d988e57bfada11ad230341" dependencies = [ + "async-attributes", "async-channel", "async-global-executor", "async-io", @@ -302,6 +328,20 @@ dependencies = [ "wasm-bindgen-futures", ] +[[package]] +name = "async-std-resolver" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f665c56111e244fe38e7708ee10948a4356ad6a548997c21f5a63a0f4e0edc4d" +dependencies = [ + "async-std", + "async-trait", + "futures-io", + "futures-util", + "pin-utils", + "trust-dns-resolver", +] + [[package]] name = "async-task" version = "4.0.3" @@ -310,13 +350,13 @@ checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0" [[package]] name = "async-trait" -version = "0.1.48" +version = "0.1.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36ea56748e10732c49404c153638a15ec3d6211ec5ff35d9bb20e13b93576adf" +checksum = "589652ce7ccb335d1e7ecb3be145425702b290dbcb7029bbeaae263fc1d87b48" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -387,7 +427,7 @@ dependencies = [ "cfg-if 1.0.0", "libc", "miniz_oxide", - "object 0.23.0", + "object", "rustc-demangle", ] @@ -415,13 +455,73 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +[[package]] +name = "beefy-gadget" +version = "0.1.0" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=rococo-v1#d3599994d4a54fb8573367c22e090354a2df1de6" +dependencies = [ + "beefy-primitives", + "futures 0.3.14", + "hex", + "log", + "parity-scale-codec", + "parking_lot 0.11.1", + "sc-client-api", + "sc-keystore", + "sc-network", + "sc-network-gossip", + "sp-api", + "sp-application-crypto", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-keystore", + "sp-runtime", + "sp-utils", + "substrate-prometheus-endpoint", + "thiserror", +] + +[[package]] +name = "beefy-gadget-rpc" +version = "0.1.0" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=rococo-v1#d3599994d4a54fb8573367c22e090354a2df1de6" +dependencies = [ + "beefy-gadget", + "beefy-primitives", + "futures 0.3.14", + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "jsonrpc-pubsub", + "log", + "parity-scale-codec", + "sc-rpc", + "serde", + "serde_json", + "sp-core", + "sp-runtime", +] + +[[package]] +name = "beefy-primitives" +version = "0.1.0" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=rococo-v1#d3599994d4a54fb8573367c22e090354a2df1de6" +dependencies = [ + "parity-scale-codec", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-runtime", + "sp-std", +] + [[package]] name = "bincode" -version = "1.3.2" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d175dfa69e619905c4c3cdb7c3c203fa3bdd5d51184e3afdb2742c0280493772" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" dependencies = [ - "byteorder", "serde", ] @@ -441,7 +541,7 @@ dependencies = [ "lazycell", "log", "peeking_take_while", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", "regex", "rustc-hash", @@ -629,9 +729,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "byteorder" -version = "1.3.4" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" @@ -776,6 +876,15 @@ dependencies = [ "generic-array 0.14.4", ] +[[package]] +name = "ckb-merkle-mountain-range" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e486fe53bb9f2ca0f58cb60e8679a5354fd6687a839942ef0a75967250289ca6" +dependencies = [ + "cfg-if 0.1.10", +] + [[package]] name = "clang-sys" version = "0.29.3" @@ -872,18 +981,18 @@ checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" [[package]] name = "cranelift-bforest" -version = "0.69.0" +version = "0.71.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4066fd63b502d73eb8c5fa6bcab9c7962b05cd580f6b149ee83a8e730d8ce7fb" +checksum = "bcee7a5107071484772b89fdf37f0f460b7db75f476e43ea7a684fd942470bcf" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.69.0" +version = "0.71.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a54e4beb833a3c873a18a8fe735d73d732044004c7539a072c8faa35ccb0c60" +checksum = "654ab96f0f1cab71c0d323618a58360a492da2c341eb2c1f977fc195c664001b" dependencies = [ "byteorder", "cranelift-bforest", @@ -901,9 +1010,9 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.69.0" +version = "0.71.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c54cac7cacb443658d8f0ff36a3545822613fa202c946c0891897843bc933810" +checksum = "65994cfc5be9d5fd10c5fc30bcdddfa50c04bb79c91329287bff846434ff8f14" dependencies = [ "cranelift-codegen-shared", "cranelift-entity", @@ -911,24 +1020,27 @@ dependencies = [ [[package]] name = "cranelift-codegen-shared" -version = "0.69.0" +version = "0.71.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a109760aff76788b2cdaeefad6875a73c2b450be13906524f6c2a81e05b8d83c" +checksum = "889d720b688b8b7df5e4903f9b788c3c59396050f5548e516e58ccb7312463ab" +dependencies = [ + "serde", +] [[package]] name = "cranelift-entity" -version = "0.69.0" +version = "0.71.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b044234aa32531f89a08b487630ddc6744696ec04c8123a1ad388de837f5de3" +checksum = "1a2e6884a363e42a9ba980193ea8603a4272f8a92bd8bbaf9f57a94dbea0ff96" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.69.0" +version = "0.71.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5452b3e4e97538ee5ef2cc071301c69a86c7adf2770916b9d04e9727096abd93" +checksum = "e6f41e2f9b57d2c030e249d0958f1cdc2c3cd46accf8c0438b3d1944e9153444" dependencies = [ "cranelift-codegen", "log", @@ -938,25 +1050,24 @@ dependencies = [ [[package]] name = "cranelift-native" -version = "0.69.0" +version = "0.71.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f68035c10b2e80f26cc29c32fa824380877f38483504c2a47b54e7da311caaf3" +checksum = "aab70ba7575665375d31cbdea2462916ce58be887834e1b83c860b43b51af637" dependencies = [ "cranelift-codegen", - "raw-cpuid", "target-lexicon", ] [[package]] name = "cranelift-wasm" -version = "0.69.0" +version = "0.71.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a530eb9d1c95b3309deb24c3d179d8b0ba5837ed98914a429787c395f614949d" +checksum = "f2fc3d2e70da6439adf97648dcdf81834363154f2907405345b6fbe7ca38918c" dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-frontend", - "itertools 0.9.0", + "itertools 0.10.0", "log", "serde", "smallvec 1.6.1", @@ -975,9 +1086,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775" +checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4" dependencies = [ "cfg-if 1.0.0", "crossbeam-utils 0.8.3", @@ -1108,7 +1219,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e98e2ad1a782e33928b96fc3948e7c355e5af34ba4de7670fe8bac2a3b2006d" dependencies = [ "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -1122,15 +1233,25 @@ dependencies = [ "rand 0.7.3", ] +[[package]] +name = "cumulus-client-cli" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" +dependencies = [ + "sc-cli", + "sc-service", + "structopt", +] + [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#28f5ec297d21349e360209cfe2e3d48d7127a297" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-primitives-core", - "futures 0.3.13", + "futures 0.3.14", "parity-scale-codec", "parking_lot 0.9.0", "polkadot-node-primitives", @@ -1149,11 +1270,11 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#28f5ec297d21349e360209cfe2e3d48d7127a297" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" dependencies = [ "async-trait", "dyn-clone", - "futures 0.3.13", + "futures 0.3.14", "parity-scale-codec", "polkadot-primitives", "polkadot-runtime", @@ -1174,13 +1295,13 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-relay-chain" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#28f5ec297d21349e360209cfe2e3d48d7127a297" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" dependencies = [ "async-trait", "cumulus-client-consensus-common", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", - "futures 0.3.13", + "futures 0.3.14", "parity-scale-codec", "parking_lot 0.9.0", "polkadot-service", @@ -1199,10 +1320,10 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#28f5ec297d21349e360209cfe2e3d48d7127a297" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" dependencies = [ "derive_more 0.99.13", - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", "parity-scale-codec", "parking_lot 0.10.2", @@ -1223,12 +1344,12 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#28f5ec297d21349e360209cfe2e3d48d7127a297" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-common", "cumulus-primitives-core", - "futures 0.3.13", + "futures 0.3.14", "parity-scale-codec", "polkadot-primitives", "polkadot-service", @@ -1248,7 +1369,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#28f5ec297d21349e360209cfe2e3d48d7127a297" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", @@ -1272,18 +1393,37 @@ dependencies = [ "sp-trie", "sp-version", "trie-db", + "xcm", ] [[package]] -name = "cumulus-pallet-xcm-handler" +name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#28f5ec297d21349e360209cfe2e3d48d7127a297" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-runtime", + "sp-std", + "xcm", +] + +[[package]] +name = "cumulus-pallet-xcmp-queue" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", "log", "parity-scale-codec", + "rand 0.8.3", + "rand_chacha 0.3.0", + "sp-runtime", "sp-std", "xcm", "xcm-executor", @@ -1292,8 +1432,9 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#28f5ec297d21349e360209cfe2e3d48d7127a297" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" dependencies = [ + "frame-support", "impl-trait-for-tuples", "parity-scale-codec", "polkadot-core-primitives", @@ -1302,12 +1443,13 @@ dependencies = [ "sp-runtime", "sp-std", "sp-trie", + "xcm", ] [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#28f5ec297d21349e360209cfe2e3d48d7127a297" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1322,6 +1464,24 @@ dependencies = [ "tracing", ] +[[package]] +name = "cumulus-primitives-utility" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "impl-trait-for-tuples", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain", + "polkadot-primitives", + "sp-runtime", + "sp-std", + "sp-trie", + "xcm", +] + [[package]] name = "curve25519-dalek" version = "2.1.2" @@ -1337,9 +1497,9 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "3.0.2" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f627126b946c25a4638eec0ea634fc52506dea98db118aae985118ce7c3d723f" +checksum = "639891fde0dbea823fc3d798a0fdf9d2f9440a42d64a78ab3488b0ca025117b3" dependencies = [ "byteorder", "digest 0.9.0", @@ -1371,7 +1531,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f83e699727abca3c56e187945f303389590305ab2f0185ea445aa66e8d5f2a" dependencies = [ "data-encoding", - "syn 1.0.67", + "syn 1.0.69", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2 1.0.26", + "quote 1.0.9", + "syn 1.0.69", ] [[package]] @@ -1395,9 +1566,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f82b1b72f1263f214c0f823371768776c4f5841b942c9883aa8e5ec584fd0ba6" dependencies = [ "convert_case", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -1485,9 +1656,9 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -1511,7 +1682,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" dependencies = [ - "curve25519-dalek 3.0.2", + "curve25519-dalek 3.1.0", "ed25519", "rand 0.7.3", "serde", @@ -1525,6 +1696,18 @@ version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +[[package]] +name = "enum-as-inner" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595" +dependencies = [ + "heck", + "proc-macro2 1.0.26", + "quote 1.0.9", + "syn 1.0.69", +] + [[package]] name = "enumflags2" version = "0.6.4" @@ -1540,9 +1723,9 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -1646,7 +1829,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", ] [[package]] @@ -1665,9 +1848,9 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", "synstructure", ] @@ -1718,7 +1901,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6447e2f8178843749e8c8003206def83ec124a7859475395777a28b5338647c" dependencies = [ "either", - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", "log", "num-traits", @@ -1766,7 +1949,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "parity-scale-codec", ] @@ -1784,14 +1967,14 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "3.1.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", "linregress", "log", "parity-scale-codec", - "paste 1.0.5", + "paste", "sp-api", "sp-io", "sp-runtime", @@ -1803,7 +1986,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "Inflector", "chrono", @@ -1826,7 +2009,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -1839,7 +2022,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -1855,7 +2038,7 @@ dependencies = [ [[package]] name = "frame-metadata" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "parity-scale-codec", "serde", @@ -1866,7 +2049,7 @@ dependencies = [ [[package]] name = "frame-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "bitflags", "frame-metadata", @@ -1875,7 +2058,7 @@ dependencies = [ "log", "once_cell", "parity-scale-codec", - "paste 1.0.5", + "paste", "serde", "smallvec 1.6.1", "sp-arithmetic", @@ -1892,41 +2075,41 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "Inflector", "frame-support-procedural-tools", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] name = "frame-support-procedural-tools" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.0.0", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] name = "frame-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1943,7 +2126,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-benchmarking", "frame-support", @@ -1957,7 +2140,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "parity-scale-codec", "sp-api", @@ -1966,7 +2149,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "parity-scale-codec", @@ -2039,9 +2222,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f55667319111d593ba876406af7c409c0ebb44dc4be6132a783ccf163ea14c1" +checksum = "a9d5813545e459ad3ca1bff9915e9ad7f1a47dc6a91b627ce321d5863b7dd253" dependencies = [ "futures-channel", "futures-core", @@ -2054,9 +2237,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c2dd2df839b57db9ab69c2c9d8f3e8c81984781937fe2807dc6dcf3b2ad2939" +checksum = "ce79c6a52a299137a6013061e0cf0e688fce5d7f1bc60125f520912fdb29ec25" dependencies = [ "futures-core", "futures-sink", @@ -2064,9 +2247,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15496a72fabf0e62bdc3df11a59a3787429221dd0710ba8ef163d6f7a9112c94" +checksum = "098cd1c6dda6ca01650f1a37a794245eb73181d0d4d4e955e2f3c37db7af1815" [[package]] name = "futures-cpupool" @@ -2085,7 +2268,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdcef58a173af8148b182684c9f2d5250875adbcaff7b5794073894f9d8634a9" dependencies = [ "futures 0.1.31", - "futures 0.3.13", + "futures 0.3.14", "lazy_static", "log", "parking_lot 0.9.0", @@ -2096,9 +2279,9 @@ dependencies = [ [[package]] name = "futures-executor" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891a4b7b96d84d5940084b2a37632dd65deeae662c114ceaa2c879629c9c0ad1" +checksum = "10f6cb7042eda00f0049b1d2080aa4b93442997ee507eb3828e8bd7577f94c9d" dependencies = [ "futures-core", "futures-task", @@ -2108,9 +2291,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71c2c65c57704c32f5241c1223167c2c3294fd34ac020c807ddbe6db287ba59" +checksum = "365a1a1fb30ea1c03a830fdb2158f5236833ac81fa0ad12fe35b29cddc35cb04" [[package]] name = "futures-lite" @@ -2129,14 +2312,14 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea405816a5139fb39af82c2beb921d52143f556038378d6db21183a5c37fbfb7" +checksum = "668c6733a182cd7deb4f1de7ba3bf2120823835b3bcfbeacf7d2c4a773c1bb8b" dependencies = [ "proc-macro-hack", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -2152,15 +2335,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85754d98985841b7d4f5e8e6fbfa4a4ac847916893ec511a2917ccd8525b8bb3" +checksum = "5c5629433c555de3d82861a7a4e3794a4c40040390907cfbfd7143a92a426c23" [[package]] name = "futures-task" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa189ef211c15ee602667a6fcfe1c1fd9e07d42250d2156382820fba33c9df80" +checksum = "ba7aa51095076f3ba6d9a1f702f74bd05ec65f555d70d2033d55ba8d69f581bc" [[package]] name = "futures-timer" @@ -2176,9 +2359,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1812c7ab8aedf8d6f2701a43e1243acdbcc2b36ab26e2ad421eb99ac963d96d1" +checksum = "3c144ad54d60f23927f0a6b6d816e4271278b64f005ad65e4e35291d2de9c025" dependencies = [ "futures 0.1.31", "futures-channel", @@ -2333,7 +2516,7 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http 0.2.3", + "http 0.2.4", "indexmap", "slab", "tokio 0.2.25", @@ -2466,6 +2649,17 @@ dependencies = [ "hmac 0.7.1", ] +[[package]] +name = "hostname" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +dependencies = [ + "libc", + "match_cfg", + "winapi 0.3.9", +] + [[package]] name = "http" version = "0.1.21" @@ -2479,9 +2673,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7245cd7449cc792608c3c8a9eaf69bd4eabbabf802713748fd739c98b82f0747" +checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11" dependencies = [ "bytes 1.0.1", "fnv", @@ -2507,14 +2701,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" dependencies = [ "bytes 0.5.6", - "http 0.2.3", + "http 0.2.4", ] [[package]] name = "httparse" -version = "1.3.5" +version = "1.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "615caabe2c3160b313d52ccc905335f4ed5f10881dd63dc5699d47e90be85691" +checksum = "bc35c995b9d93ec174cf9a27d425c7892722101e14993cd227fdb51d70cf9589" [[package]] name = "httpdate" @@ -2578,7 +2772,7 @@ dependencies = [ "futures-core", "futures-util", "h2 0.2.7", - "http 0.2.3", + "http 0.2.4", "http-body 0.3.1", "httparse", "httpdate", @@ -2654,12 +2848,12 @@ dependencies = [ [[package]] name = "if-watch" -version = "0.1.8" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b8538953a3f0d0d3868f0a706eb4273535e10d72acb5c82c1c23ae48835c85" +checksum = "144c0ecbda48cc819482c37e460723b634dc060e23922f8ace87d94ff95ea4e5" dependencies = [ "async-io", - "futures 0.3.13", + "futures 0.3.14", "futures-lite", "if-addrs", "ipnet", @@ -2701,9 +2895,9 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5dacb10c5b3bb92d46ba347505a9041e676bb20ad220101326bffb0c93031ee" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -2747,7 +2941,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "futures-timer 2.0.2", ] @@ -2766,6 +2960,18 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2ee15951c035f79eddbef745611ec962f63f4558f1dadf98ab723cc603487c6f" +[[package]] +name = "ipconfig" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7e2f18aece9709094573a9f24f483c4f65caa4298e2f7ae1b71cc65d853fad7" +dependencies = [ + "socket2 0.3.19", + "widestring", + "winapi 0.3.9", + "winreg", +] + [[package]] name = "ipnet" version = "2.3.0" @@ -2859,9 +3065,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99a847f9ec7bb52149b2786a17c9cb260d6effc6b8eeb8c16b343a487a7563a3" dependencies = [ "proc-macro-crate 0.1.5", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -2943,7 +3149,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b15fc3a0ef2e02d770aa1a221d3412443dcaedc43e27d80c957dd5bbd65321b" dependencies = [ "async-trait", - "futures 0.3.13", + "futures 0.3.14", "hyper 0.13.10", "hyper-rustls", "jsonrpsee-types", @@ -2963,9 +3169,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6bb4afbda476e2ee11cc6245055c498c116fc8002d2d60fe8338b6ee15d84c3a" dependencies = [ "Inflector", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -2975,7 +3181,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c42a82588b5f7830e94341bb7e79d15f46070ab6f64dde1e3b3719721b61c5bf" dependencies = [ "async-trait", - "futures 0.3.13", + "futures 0.3.14", "log", "serde", "serde_json", @@ -2989,7 +3195,7 @@ version = "0.2.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e65c77838fce96bc554b4a3a159d0b9a2497319ae9305c66ee853998c7ed2fd3" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "globset", "hyper 0.13.10", "jsonrpsee-types", @@ -3016,9 +3222,10 @@ dependencies = [ [[package]] name = "kusama-runtime" -version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +version = "0.8.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ + "beefy-primitives", "bitvec", "frame-executive", "frame-support", @@ -3040,6 +3247,7 @@ dependencies = [ "pallet-im-online", "pallet-indices", "pallet-membership", + "pallet-mmr-primitives", "pallet-multisig", "pallet-nicks", "pallet-offences", @@ -3072,6 +3280,7 @@ dependencies = [ "sp-core", "sp-inherents", "sp-io", + "sp-npos-elections", "sp-offchain", "sp-runtime", "sp-session", @@ -3151,9 +3360,9 @@ checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a" [[package]] name = "libc" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56d855069fafbb9b344c0f962150cd2c1187975cb1c22c1522c240d8c4986714" +checksum = "9385f66bf6105b241aa65a61cb923ef20efc665cb9f9bb50ac2f0c4b7f378d41" [[package]] name = "libloading" @@ -3173,13 +3382,13 @@ checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" [[package]] name = "libp2p" -version = "0.35.1" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc225a49973cf9ab10d0cdd6a4b8f0cda299df9b760824bbb623f15f8f0c95a" +checksum = "fe5759b526f75102829c15e4d8566603b4bf502ed19b5f35920d98113873470d" dependencies = [ "atomic", "bytes 1.0.1", - "futures 0.3.13", + "futures 0.3.14", "lazy_static", "libp2p-core", "libp2p-deflate", @@ -3194,6 +3403,7 @@ dependencies = [ "libp2p-ping", "libp2p-plaintext", "libp2p-pnet", + "libp2p-relay", "libp2p-request-response", "libp2p-swarm", "libp2p-swarm-derive", @@ -3211,16 +3421,16 @@ dependencies = [ [[package]] name = "libp2p-core" -version = "0.27.1" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a2d56aadc2c2bf22cd7797f86e56a65b5b3994a0136b65be3106938acae7a26" +checksum = "71dd51b562e14846e65bad00e5808d0644376e6588668c490d3c48e1dfeb4a9a" dependencies = [ "asn1_der", "bs58", "ed25519-dalek", "either", "fnv", - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", "lazy_static", "libsecp256k1", @@ -3245,35 +3455,38 @@ dependencies = [ [[package]] name = "libp2p-deflate" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d42eed63305f0420736fa487f9acef720c4528bd7852a6a760f5ccde4813345" +checksum = "a2181a641cd15f9b6ba71b1335800f309012a0a97a29ffaabbbf40e9d3d58f08" dependencies = [ "flate2", - "futures 0.3.13", + "futures 0.3.14", "libp2p-core", ] [[package]] name = "libp2p-dns" -version = "0.27.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5153b6db68fd4baa3b304e377db744dd8fea8ff4e4504509ee636abcde88d3e3" +checksum = "62e63dab8b5ff35e0c101a3e51e843ba782c07bbb1682f5fd827622e0d02b98b" dependencies = [ - "futures 0.3.13", + "async-std-resolver", + "futures 0.3.14", "libp2p-core", "log", + "smallvec 1.6.1", + "trust-dns-resolver", ] [[package]] name = "libp2p-floodsub" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3c63dfa06581b24b1d12bf9815b43689a784424be217d6545c800c7c75a207f" +checksum = "897645f99e9b396df256a6aa8ba8c4bc019ac6b7c62556f624b5feea9acc82bb" dependencies = [ "cuckoofilter", "fnv", - "futures 0.3.13", + "futures 0.3.14", "libp2p-core", "libp2p-swarm", "log", @@ -3285,16 +3498,16 @@ dependencies = [ [[package]] name = "libp2p-gossipsub" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "502dc5fcbfec4aa1c63ef3f7307ffe20e90c1a1387bf23ed0bec087f2dde58a1" +checksum = "794b0c85f5df1acbc1fc38414d37272594811193b6325c76d3931c3e3f5df8c0" dependencies = [ "asynchronous-codec 0.6.0", "base64 0.13.0", "byteorder", "bytes 1.0.1", "fnv", - "futures 0.3.13", + "futures 0.3.14", "hex_fmt", "libp2p-core", "libp2p-swarm", @@ -3311,11 +3524,11 @@ dependencies = [ [[package]] name = "libp2p-identify" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b40fb36a059b7a8cce1514bd8b546fa612e006c9937caa7f5950cb20021fe91e" +checksum = "f88ebc841d744979176ab4b8b294a3e655a7ba4ef26a905d073a52b49ed4dff5" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "libp2p-core", "libp2p-swarm", "log", @@ -3327,16 +3540,16 @@ dependencies = [ [[package]] name = "libp2p-kad" -version = "0.28.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3da6c9acbcc05f93235d201d7d45ef4e8b88a45d8836f98becd8b4d443f066" +checksum = "bbb5b90b6bda749023a85f60b49ea74b387c25f17d8df541ae72a3c75dd52e63" dependencies = [ "arrayvec 0.5.2", "asynchronous-codec 0.6.0", "bytes 1.0.1", "either", "fnv", - "futures 0.3.13", + "futures 0.3.14", "libp2p-core", "libp2p-swarm", "log", @@ -3353,34 +3566,34 @@ dependencies = [ [[package]] name = "libp2p-mdns" -version = "0.28.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e9e6374814d1b118d97ccabdfc975c8910bd16dc38a8bc058eeb08bf2080fe1" +checksum = "be28ca13bb648d249a9baebd750ebc64ce7040ddd5f0ce1035ff1f4549fb596d" dependencies = [ "async-io", "data-encoding", "dns-parser", - "futures 0.3.13", + "futures 0.3.14", "if-watch", "lazy_static", "libp2p-core", "libp2p-swarm", "log", - "rand 0.7.3", + "rand 0.8.3", "smallvec 1.6.1", - "socket2 0.3.19", + "socket2 0.4.0", "void", ] [[package]] name = "libp2p-mplex" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350ce8b3923594aedabd5d6e3f875d058435052a29c3f32df378bc70d10be464" +checksum = "85e9b544335d1ed30af71daa96edbefadef6f19c7a55f078b9fc92c87163105d" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.0.1", - "futures 0.3.13", + "futures 0.3.14", "libp2p-core", "log", "nohash-hasher", @@ -3392,13 +3605,13 @@ dependencies = [ [[package]] name = "libp2p-noise" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4aca322b52a0c5136142a7c3971446fb1e9964923a526c9cc6ef3b7c94e57778" +checksum = "36db0f0db3b0433f5b9463f1c0cd9eadc0a3734a9170439ce501ff99733a88bd" dependencies = [ "bytes 1.0.1", - "curve25519-dalek 3.0.2", - "futures 0.3.13", + "curve25519-dalek 3.1.0", + "futures 0.3.14", "lazy_static", "libp2p-core", "log", @@ -3414,11 +3627,11 @@ dependencies = [ [[package]] name = "libp2p-ping" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f3813276d0708c8db0f500d8beda1bda9ad955723b9cb272c41f4727256f73c" +checksum = "dea10fc5209260915ea65b78f612d7ff78a29ab288e7aa3250796866af861c45" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "libp2p-core", "libp2p-swarm", "log", @@ -3429,13 +3642,13 @@ dependencies = [ [[package]] name = "libp2p-plaintext" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d58defcadb646ae4b033e130b48d87410bf76394dc3335496cae99dac803e61" +checksum = "0c8c37b4d2a075b4be8442760a5f8c037180f0c8dd5b5734b9978ab868b3aa11" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.0.1", - "futures 0.3.13", + "futures 0.3.14", "libp2p-core", "log", "prost", @@ -3450,7 +3663,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce3374f3b28162db9d3442c9347c4f14cb01e8290052615c7d341d40eae0599" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "log", "pin-project 1.0.6", "rand 0.7.3", @@ -3458,15 +3671,38 @@ dependencies = [ "sha3", ] +[[package]] +name = "libp2p-relay" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ff268be6a9d6f3c6cca3b81bbab597b15217f9ad8787c6c40fc548c1af7cd24" +dependencies = [ + "asynchronous-codec 0.6.0", + "bytes 1.0.1", + "futures 0.3.14", + "futures-timer 3.0.2", + "libp2p-core", + "libp2p-swarm", + "log", + "pin-project 1.0.6", + "prost", + "prost-build", + "rand 0.7.3", + "smallvec 1.6.1", + "unsigned-varint 0.7.0", + "void", + "wasm-timer", +] + [[package]] name = "libp2p-request-response" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10e5552827c33d8326502682da73a0ba4bfa40c1b55b216af3c303f32169dd89" +checksum = "725367dd2318c54c5ab1a6418592e5b01c63b0dedfbbfb8389220b2bcf691899" dependencies = [ "async-trait", "bytes 1.0.1", - "futures 0.3.13", + "futures 0.3.14", "libp2p-core", "libp2p-swarm", "log", @@ -3480,12 +3716,12 @@ dependencies = [ [[package]] name = "libp2p-swarm" -version = "0.27.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7955b973e1fd2bd61ffd43ce261c1223f61f4aacd5bae362a924993f9a25fd98" +checksum = "75c26980cadd7c25d89071cb23e1f7f5df4863128cc91d83c6ddc72338cecafa" dependencies = [ "either", - "futures 0.3.13", + "futures 0.3.14", "libp2p-core", "log", "rand 0.7.3", @@ -3501,45 +3737,45 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c564ebaa36a64839f51eaddb0243aaaa29ce64affb56129193cc3248b72af273" dependencies = [ "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] name = "libp2p-tcp" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88a5aef80e519a6cb8e2663605142f97baaaea1a252eecbf8756184765f7471b" +checksum = "2b1a27d21c477951799e99d5c105d78868258502ce092988040a808d5a19bbd9" dependencies = [ "async-io", - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", "if-watch", "ipnet", "libc", "libp2p-core", "log", - "socket2 0.3.19", + "socket2 0.4.0", ] [[package]] name = "libp2p-uds" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80ac51ce419f60be966e02103c17f67ff5dc4422ba83ba54d251d6c62a4ed487" +checksum = "ffd6564bb3b7ff203661ccbb69003c2b551e34cef974f2d6c6a28306a12170b5" dependencies = [ "async-std", - "futures 0.3.13", + "futures 0.3.14", "libp2p-core", "log", ] [[package]] name = "libp2p-wasm-ext" -version = "0.27.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6149c46cb76935c80bc8be6ec6e3ebd5f5e1679765a255fb34331d54610f15dd" +checksum = "cef45d61e43c313531b5e903e4e8415212ff6338e0c54c47da5b9b412b5760de" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "js-sys", "libp2p-core", "parity-send-wrapper", @@ -3549,12 +3785,12 @@ dependencies = [ [[package]] name = "libp2p-websocket" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3b1c6a3431045da8b925ed83384e4c5163e14b990572307fca9c507435d4d22" +checksum = "cace60995ef6f637e4752cccbb2590f6bc358e8741a0d066307636c69a4b3a74" dependencies = [ "either", - "futures 0.3.13", + "futures 0.3.14", "futures-rustls", "libp2p-core", "log", @@ -3567,11 +3803,11 @@ dependencies = [ [[package]] name = "libp2p-yamux" -version = "0.30.1" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4819358c542a86ff95f6ae691efb4b94ddaf477079b01a686f5705b79bfc232a" +checksum = "96d6144cc94143fb0a8dd1e7c2fbcc32a2808168bcd1d69920635424d5993b7b" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "libp2p-core", "parking_lot 0.11.1", "thiserror", @@ -3634,11 +3870,11 @@ dependencies = [ [[package]] name = "linregress" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d0ad4b5cc8385a881c561fac3501353d63d2a2b7a357b5064d71815c9a92724" +checksum = "b36162d2e1dcbdeb61223cb788f029f8ac9f2ab19969b89c5a8f4517aad4d940" dependencies = [ - "nalgebra", + "nalgebra 0.25.4", "statrs", ] @@ -3653,9 +3889,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312" +checksum = "5a3c91c24eae6777794bb1997ad98bbb87daf92890acab859f7eaa4320333176" dependencies = [ "scopeguard", ] @@ -3679,6 +3915,15 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "lru-cache" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" +dependencies = [ + "linked-hash-map", +] + [[package]] name = "mach" version = "0.3.2" @@ -3694,6 +3939,12 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" +[[package]] +name = "match_cfg" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" + [[package]] name = "matchers" version = "0.0.1" @@ -3718,6 +3969,15 @@ dependencies = [ "rawpointer", ] +[[package]] +name = "matrixmultiply" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a8a15b776d9dfaecd44b03c5828c2199cddff5247215858aac14624f8d6b741" +dependencies = [ + "rawpointer", +] + [[package]] name = "maybe-uninit" version = "2.0.0" @@ -3732,9 +3992,9 @@ checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" [[package]] name = "memmap2" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04e3e85b970d650e2ae6d70592474087051c11c54da7f7b4949725c5735fbcc6" +checksum = "397d1a6d6d0563c0f5462bbdae662cf6c784edf5e828e40c7257f85d82bf56dd" dependencies = [ "libc", ] @@ -3798,10 +4058,10 @@ dependencies = [ [[package]] name = "metered-channel" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "derive_more 0.99.13", - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", ] @@ -3811,29 +4071,29 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c023c3f16109e7f33aa451f773fd61070e265b4977d0b6e344a51049296dd7df" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "rand 0.7.3", "thrift", ] [[package]] name = "minicbor" -version = "0.7.2" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c2b2c73f9640fccab53947e2b3474d5071fcbc8f82cac51ddf6c8041a30a9ea" +checksum = "51aa5bb0ca22415daca596a227b507f880ad1b2318a87fa9325312a5d285ca0d" dependencies = [ "minicbor-derive", ] [[package]] name = "minicbor-derive" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce18b5423c573a13e80cb3046ea0af6379ef725dc3af4886bdb8f4e5093068" +checksum = "7f2b9e8883d58e34b18facd16c4564a77ea50fce028ad3d0ee6753440e37acc8" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -3963,9 +4223,9 @@ checksum = "85ee3c48cb9d9b275ad967a0e96715badc13c6029adb92f34fa17b9ff28fd81f" dependencies = [ "proc-macro-crate 0.1.5", "proc-macro-error", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", "synstructure", ] @@ -3982,7 +4242,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d91ec0a2440aaff5f78ec35631a7027d50386c6163aa975f7caa0d5da4b6ff8" dependencies = [ "bytes 1.0.1", - "futures 0.3.13", + "futures 0.3.14", "log", "pin-project 1.0.6", "smallvec 1.6.1", @@ -3991,18 +4251,35 @@ dependencies = [ [[package]] name = "nalgebra" -version = "0.21.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6b6147c3d50b4f3cdabfe2ecc94a0191fd3d6ad58aefd9664cf396285883486" +checksum = "0abb021006c01b126a936a8dd1351e0720d83995f4fc942d0d426c654f990745" dependencies = [ - "approx", + "alga", + "approx 0.3.2", "generic-array 0.13.3", - "matrixmultiply", - "num-complex", - "num-rational", + "matrixmultiply 0.2.4", + "num-complex 0.2.4", + "num-rational 0.2.4", "num-traits", "rand 0.7.3", "rand_distr", + "typenum", +] + +[[package]] +name = "nalgebra" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c70c9e8c5f213c8e93fc8c112ade4edd3ee62062fb897776c23dcebac7932900" +dependencies = [ + "approx 0.4.0", + "generic-array 0.14.4", + "matrixmultiply 0.3.1", + "num-complex 0.3.1", + "num-rational 0.3.2", + "num-traits", + "serde", "simba", "typenum", ] @@ -4037,18 +4314,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "nix" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a" -dependencies = [ - "bitflags", - "cc", - "cfg-if 1.0.0", - "libc", -] - [[package]] name = "nodrop" version = "0.1.14" @@ -4092,6 +4357,15 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-complex" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5" +dependencies = [ + "num-traits", +] + [[package]] name = "num-integer" version = "0.1.44" @@ -4114,6 +4388,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-rational" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.14" @@ -4136,20 +4421,14 @@ dependencies = [ [[package]] name = "object" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397" +checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4" dependencies = [ "crc32fast", "indexmap", ] -[[package]] -name = "object" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4" - [[package]] name = "once_cell" version = "1.7.2" @@ -4198,7 +4477,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -4214,7 +4493,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -4229,7 +4508,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4253,7 +4532,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4265,10 +4544,25 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-beefy" +version = "0.1.0" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=rococo-v1#d3599994d4a54fb8573367c22e090354a2df1de6" +dependencies = [ + "beefy-primitives", + "frame-support", + "frame-system", + "pallet-session", + "parity-scale-codec", + "serde", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-bounties" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -4282,7 +4576,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -4298,7 +4592,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4313,7 +4607,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4332,7 +4626,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -4347,7 +4641,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4369,7 +4663,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4385,7 +4679,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -4404,7 +4698,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -4420,21 +4714,73 @@ dependencies = [ [[package]] name = "pallet-membership" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-mmr" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ + "ckb-merkle-mountain-range", + "frame-benchmarking", "frame-support", "frame-system", + "pallet-mmr-primitives", "parity-scale-codec", "serde", + "sp-core", "sp-io", "sp-runtime", "sp-std", ] +[[package]] +name = "pallet-mmr-primitives" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +dependencies = [ + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "serde", + "sp-api", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-mmr-rpc" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +dependencies = [ + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "pallet-mmr-primitives", + "parity-scale-codec", + "serde", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-rpc", + "sp-runtime", +] + [[package]] name = "pallet-multisig" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -4449,7 +4795,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -4463,7 +4809,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -4479,7 +4825,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -4494,7 +4840,7 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -4507,7 +4853,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "enumflags2", "frame-support", @@ -4522,7 +4868,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4538,7 +4884,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -4558,7 +4904,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -4572,7 +4918,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4581,11 +4927,10 @@ dependencies = [ "pallet-authorship", "pallet-session", "parity-scale-codec", - "paste 1.0.5", + "paste", "serde", "sp-application-crypto", "sp-io", - "sp-npos-elections", "sp-runtime", "sp-staking", "sp-std", @@ -4595,18 +4940,18 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "proc-macro-crate 1.0.0", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] name = "pallet-sudo" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -4634,7 +4979,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-benchmarking", "frame-support", @@ -4653,7 +4998,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -4667,7 +5012,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -4683,7 +5028,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4700,7 +5045,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -4711,7 +5056,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -4726,7 +5071,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-support", "frame-system", @@ -4741,21 +5086,36 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +dependencies = [ + "enumflags2", + "frame-support", + "frame-system", + "parity-scale-codec", + "serde", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-xcm" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ - "enumflags2", "frame-support", "frame-system", "parity-scale-codec", "serde", "sp-runtime", "sp-std", + "xcm", ] [[package]] name = "parachain-collator" version = "2.0.0" dependencies = [ + "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-relay-chain", "cumulus-client-network", @@ -4807,7 +5167,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#28f5ec297d21349e360209cfe2e3d48d7127a297" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -4821,8 +5181,10 @@ name = "parachain-runtime" version = "2.0.0" dependencies = [ "cumulus-pallet-parachain-system", - "cumulus-pallet-xcm-handler", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", "cumulus-primitives-core", + "cumulus-primitives-utility", "frame-benchmarking", "frame-executive", "frame-support", @@ -4837,6 +5199,7 @@ dependencies = [ "pallet-timestamp", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", + "pallet-xcm", "parachain-info", "parity-scale-codec", "polkadot-parachain", @@ -4896,11 +5259,11 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cd3dab59b5cf4bc81069ade0fc470341a1ef3ad5fa73e5a8943bed2ec12b2e8" +checksum = "e0f518afaa5a47d0d6386229b0a6e01e86427291d643aa4cabb4992219f504f8" dependencies = [ - "arrayvec 0.5.2", + "arrayvec 0.7.0", "bitvec", "byte-slice-cast", "parity-scale-codec-derive", @@ -4909,14 +5272,14 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa04976a81fde04924b40cc4036c4d12841e8bb04325a5cf2ada75731a150a7d" +checksum = "f44c5f94427bd0b5076e8f7e15ca3f60a4d8ac0077e4793884e6fdfd8915344e" dependencies = [ "proc-macro-crate 0.1.5", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -4968,8 +5331,8 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" dependencies = [ - "proc-macro2 1.0.24", - "syn 1.0.67", + "proc-macro2 1.0.26", + "syn 1.0.69", "synstructure", ] @@ -5040,7 +5403,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb" dependencies = [ "instant", - "lock_api 0.4.2", + "lock_api 0.4.3", "parking_lot_core 0.8.3", ] @@ -5082,36 +5445,17 @@ dependencies = [ "cfg-if 1.0.0", "instant", "libc", - "redox_syscall 0.2.5", + "redox_syscall 0.2.6", "smallvec 1.6.1", "winapi 0.3.9", ] -[[package]] -name = "paste" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880" -dependencies = [ - "paste-impl", - "proc-macro-hack", -] - [[package]] name = "paste" version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" -[[package]] -name = "paste-impl" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6" -dependencies = [ - "proc-macro-hack", -] - [[package]] name = "pbkdf2" version = "0.3.0" @@ -5182,9 +5526,9 @@ checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" dependencies = [ "pest", "pest_meta", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -5232,9 +5576,9 @@ version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3be26700300be6d9d23264c73211d8190e755b6b5ca7a1b28230025511b52a5e" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -5243,9 +5587,9 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a490329918e856ed1b083f244e3bfe2d8c4f336407e4ea9e1a9f479ff09049e5" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -5281,9 +5625,9 @@ checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325" [[package]] name = "polkadot-approval-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -5295,9 +5639,9 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-subsystem", @@ -5309,14 +5653,15 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "lru", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-core-runtime-api", "polkadot-node-network-protocol", + "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -5331,13 +5676,14 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "lru", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", + "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -5348,13 +5694,13 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +version = "0.8.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "frame-benchmarking-cli", - "futures 0.3.13", + "futures 0.3.14", "log", - "polkadot-parachain", + "polkadot-node-core-pvf", "polkadot-service", "sc-cli", "sc-service", @@ -5369,10 +5715,10 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "always-assert", - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -5380,6 +5726,7 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "sp-core", + "sp-keystore", "sp-runtime", "thiserror", "tracing", @@ -5387,8 +5734,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.7.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +version = "0.8.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -5399,10 +5746,11 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +version = "0.8.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "parity-scale-codec", + "polkadot-node-primitives", "polkadot-primitives", "reed-solomon-novelpoly", "sp-core", @@ -5413,31 +5761,34 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.3", + "sp-application-crypto", + "sp-keystore", "tracing", ] [[package]] name = "polkadot-network-bridge" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "async-trait", - "futures 0.3.13", + "futures 0.3.14", "parity-scale-codec", "parking_lot 0.11.1", "polkadot-node-network-protocol", "polkadot-node-subsystem", + "polkadot-node-subsystem-util", "polkadot-primitives", "sc-authority-discovery", "sc-network", + "sp-consensus", "strum", "tracing", ] @@ -5445,15 +5796,17 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", + "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", "sp-core", + "sp-maybe-compressed-blob", "thiserror", "tracing", ] @@ -5461,14 +5814,13 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "bitvec", "derive_more 0.99.13", - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", "kvdb", - "kvdb-rocksdb", "merlin", "parity-scale-codec", "polkadot-node-jaeger", @@ -5482,6 +5834,7 @@ dependencies = [ "schnorrkel", "sp-application-crypto", "sp-blockchain", + "sp-consensus", "sp-consensus-slots", "sp-runtime", "tracing", @@ -5490,20 +5843,19 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "bitvec", - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", "kvdb", - "kvdb-rocksdb", "parity-scale-codec", "polkadot-erasure-coding", + "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", - "sc-service", "thiserror", "tracing", ] @@ -5511,10 +5863,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "bitvec", - "futures 0.3.13", + "futures 0.3.14", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -5529,9 +5881,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -5544,9 +5896,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-selection" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -5559,25 +5911,27 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ - "futures 0.3.13", + "async-trait", + "futures 0.3.14", "parity-scale-codec", + "polkadot-node-core-pvf", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-parachain", "polkadot-primitives", - "sp-core", + "sp-maybe-compressed-blob", "tracing", ] [[package]] name = "polkadot-node-core-chain-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -5588,9 +5942,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-proposer" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", "polkadot-node-subsystem", "polkadot-overseer", @@ -5613,10 +5967,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "bitvec", - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -5625,18 +5979,47 @@ dependencies = [ "tracing", ] +[[package]] +name = "polkadot-node-core-pvf" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +dependencies = [ + "always-assert", + "assert_matches", + "async-process", + "async-std", + "futures 0.3.14", + "futures-timer 3.0.2", + "libc", + "parity-scale-codec", + "pin-project 1.0.6", + "polkadot-core-primitives", + "polkadot-parachain", + "rand 0.8.3", + "sc-executor", + "sc-executor-common", + "sc-executor-wasmtime", + "slotmap", + "sp-core", + "sp-externalities", + "sp-io", + "sp-wasm-interface", + "tracing", +] + [[package]] name = "polkadot-node-core-runtime-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "memory-lru", "parity-util-mem", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", "sp-api", + "sp-authority-discovery", "sp-consensus-babe", "sp-core", "tracing", @@ -5645,7 +6028,7 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "async-std", "lazy_static", @@ -5653,6 +6036,7 @@ dependencies = [ "mick-jaeger", "parity-scale-codec", "parking_lot 0.11.1", + "polkadot-node-primitives", "polkadot-primitives", "sc-network", "sp-core", @@ -5662,9 +6046,9 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", @@ -5677,30 +6061,34 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "parity-scale-codec", + "polkadot-parachain", "polkadot-primitives", "polkadot-statement-table", "schnorrkel", + "serde", "sp-application-crypto", "sp-consensus-babe", "sp-consensus-vrf", "sp-core", + "sp-maybe-compressed-blob", "sp-runtime", "thiserror", + "zstd", ] [[package]] name = "polkadot-node-subsystem" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "async-std", "async-trait", "derive_more 0.99.13", - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", "lazy_static", "log", @@ -5725,10 +6113,10 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "async-trait", - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", "metered-channel", "parity-scale-codec", @@ -5738,6 +6126,7 @@ dependencies = [ "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-primitives", + "rand 0.8.3", "sc-network", "sp-application-crypto", "sp-core", @@ -5751,50 +6140,39 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "async-trait", - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", "sc-client-api", + "sp-api", "tracing", ] [[package]] name = "polkadot-parachain" -version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +version = "0.8.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "derive_more 0.99.13", - "futures 0.3.13", - "libc", - "log", "parity-scale-codec", "parity-util-mem", - "parking_lot 0.11.1", "polkadot-core-primitives", - "raw_sync", - "sc-executor", "serde", - "shared_memory", "sp-core", - "sp-externalities", - "sp-io", "sp-runtime", "sp-std", - "sp-wasm-interface", - "static_assertions", - "thiserror", ] [[package]] name = "polkadot-primitives" -version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +version = "0.8.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "bitvec", "frame-system", @@ -5818,26 +6196,28 @@ dependencies = [ "sp-trie", "sp-version", "thiserror", - "zstd", ] [[package]] name = "polkadot-procmacro-subsystem-dispatch-gen" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "assert_matches", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] name = "polkadot-rpc" -version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +version = "0.8.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ + "beefy-gadget", + "beefy-gadget-rpc", "jsonrpc-core", + "pallet-mmr-rpc", "pallet-transaction-payment-rpc", "parity-scale-codec", "polkadot-primitives", @@ -5864,9 +6244,10 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +version = "0.8.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ + "beefy-primitives", "bitvec", "frame-executive", "frame-support", @@ -5888,6 +6269,7 @@ dependencies = [ "pallet-im-online", "pallet-indices", "pallet-membership", + "pallet-mmr-primitives", "pallet-multisig", "pallet-nicks", "pallet-offences", @@ -5918,6 +6300,7 @@ dependencies = [ "sp-core", "sp-inherents", "sp-io", + "sp-npos-elections", "sp-offchain", "sp-runtime", "sp-session", @@ -5931,16 +6314,20 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +version = "0.8.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ + "beefy-primitives", "bitvec", "frame-support", "frame-system", "impl-trait-for-tuples", + "libsecp256k1", "log", "pallet-authorship", "pallet-balances", + "pallet-beefy", + "pallet-mmr", "pallet-offences", "pallet-session", "pallet-staking", @@ -5954,6 +6341,7 @@ dependencies = [ "rustc-hex", "serde", "serde_derive", + "slot-range-helper", "sp-api", "sp-core", "sp-inherents", @@ -5968,8 +6356,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +version = "0.8.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "bitvec", "derive_more 0.99.13", @@ -6005,16 +6393,21 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.8.3" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +version = "0.8.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ + "beefy-gadget", + "beefy-primitives", "frame-benchmarking", "frame-system-rpc-runtime-api", - "futures 0.3.13", + "futures 0.3.14", "hex-literal 0.3.1", "kusama-runtime", + "kvdb", + "kvdb-rocksdb", "pallet-babe", "pallet-im-online", + "pallet-mmr-primitives", "pallet-staking", "pallet-transaction-payment-rpc-runtime-api", "polkadot-approval-distribution", @@ -6035,6 +6428,7 @@ dependencies = [ "polkadot-node-core-proposer", "polkadot-node-core-provisioner", "polkadot-node-core-runtime-api", + "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-overseer", @@ -6089,10 +6483,10 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "arrayvec 0.5.2", - "futures 0.3.13", + "futures 0.3.14", "indexmap", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -6105,8 +6499,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +version = "0.8.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -6115,9 +6509,10 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" -version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +version = "0.8.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ + "beefy-primitives", "bitvec", "frame-election-provider-support", "frame-executive", @@ -6131,6 +6526,7 @@ dependencies = [ "pallet-balances", "pallet-grandpa", "pallet-indices", + "pallet-mmr-primitives", "pallet-nicks", "pallet-offences", "pallet-randomness-collective-flip", @@ -6170,13 +6566,13 @@ dependencies = [ [[package]] name = "polkadot-test-service" -version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +version = "0.8.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "frame-benchmarking", "frame-system", "futures 0.1.31", - "futures 0.3.13", + "futures 0.3.14", "hex", "pallet-balances", "pallet-staking", @@ -6299,9 +6695,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", "version_check", ] @@ -6311,7 +6707,7 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", "version_check", ] @@ -6339,9 +6735,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.24" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" +checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec" dependencies = [ "unicode-xid 0.2.1", ] @@ -6396,9 +6792,9 @@ checksum = "169a15f3008ecb5160cba7d37bcd690a7601b6d30cfb87a117d45e59d52af5d4" dependencies = [ "anyhow", "itertools 0.9.0", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -6469,7 +6865,7 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", ] [[package]] @@ -6616,30 +7012,6 @@ dependencies = [ "rand_core 0.5.1", ] -[[package]] -name = "raw-cpuid" -version = "8.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fdf7d9dbd43f3d81d94a49c1c3df73cc2b3827995147e6cf7f89d4ec5483e73" -dependencies = [ - "bitflags", - "cc", - "rustc_version", -] - -[[package]] -name = "raw_sync" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a34bde3561f980a51c70495164200569a11662644fe5af017f0b5d7015688cc" -dependencies = [ - "cfg-if 0.1.10", - "libc", - "nix", - "rand 0.8.3", - "winapi 0.3.9", -] - [[package]] name = "rawpointer" version = "0.2.1" @@ -6688,9 +7060,9 @@ checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" [[package]] name = "redox_syscall" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9" +checksum = "8270314b5ccceb518e7e578952f0b72b88222d02e8f77f5ecf7abbb673539041" dependencies = [ "bitflags", ] @@ -6713,14 +7085,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" dependencies = [ "getrandom 0.2.2", - "redox_syscall 0.2.5", + "redox_syscall 0.2.6", ] [[package]] name = "reed-solomon-novelpoly" -version = "0.0.3" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f11e01a8ef53ec033daf53a9385a1d0bb266155797919096e4134118f45efe82" +checksum = "3bd8f48b2066e9f69ab192797d66da804d1935bf22763204ed3675740cb0f221" dependencies = [ "derive_more 0.99.13", "fs-err", @@ -6744,9 +7116,9 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c38e3aecd2b21cb3959637b883bb3714bc7e43f0268b9a29d3743ee3e55cdd2" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -6757,6 +7129,7 @@ checksum = "571f7f397d61c4755285cd37853fe8e03271c243424a907415909379659381c5" dependencies = [ "log", "rustc-hash", + "serde", "smallvec 1.6.1", ] @@ -6802,7 +7175,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "env_logger 0.8.3", "hex-literal 0.3.1", @@ -6825,6 +7198,16 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "resolv-conf" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" +dependencies = [ + "hostname", + "quick-error 1.2.3", +] + [[package]] name = "retain_mut" version = "0.1.2" @@ -6868,9 +7251,10 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +version = "0.8.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ + "beefy-primitives", "frame-executive", "frame-support", "frame-system", @@ -6881,9 +7265,14 @@ dependencies = [ "pallet-authorship", "pallet-babe", "pallet-balances", + "pallet-beefy", + "pallet-collective", "pallet-grandpa", "pallet-im-online", "pallet-indices", + "pallet-membership", + "pallet-mmr", + "pallet-mmr-primitives", "pallet-offences", "pallet-proxy", "pallet-session", @@ -6894,6 +7283,7 @@ dependencies = [ "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-utility", + "pallet-xcm", "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", @@ -7009,13 +7399,23 @@ dependencies = [ "security-framework", ] +[[package]] +name = "ruzstd" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d425143485a37727c7a46e689bbe3b883a00f42b4a52c4ac0f44855c1009b00" +dependencies = [ + "byteorder", + "twox-hash", +] + [[package]] name = "rw-stream-sink" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "pin-project 0.4.28", "static_assertions", ] @@ -7056,12 +7456,12 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "async-trait", "derive_more 0.99.13", "either", - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", "libp2p", "log", @@ -7084,9 +7484,9 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -7107,7 +7507,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7123,7 +7523,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7144,22 +7544,22 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "proc-macro-crate 1.0.0", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] name = "sc-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "chrono", "fdlimit", - "futures 0.3.13", + "futures 0.3.14", "hex", "libp2p", "log", @@ -7193,11 +7593,11 @@ dependencies = [ [[package]] name = "sc-client-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "derive_more 0.99.13", "fnv", - "futures 0.3.13", + "futures 0.3.14", "hash-db", "kvdb", "lazy_static", @@ -7227,7 +7627,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "blake2-rfc", "hash-db", @@ -7257,8 +7657,9 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ + "parking_lot 0.11.1", "sc-client-api", "sp-blockchain", "sp-consensus", @@ -7268,16 +7669,17 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ + "async-trait", "derive_more 0.99.13", "fork-tree", - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", "log", "merlin", "num-bigint", - "num-rational", + "num-rational 0.2.4", "num-traits", "parity-scale-codec", "parking_lot 0.11.1", @@ -7314,10 +7716,10 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "derive_more 0.99.13", - "futures 0.3.13", + "futures 0.3.14", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -7338,12 +7740,12 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "fork-tree", "parity-scale-codec", - "parking_lot 0.11.1", "sc-client-api", + "sc-consensus", "sp-blockchain", "sp-runtime", ] @@ -7351,13 +7753,13 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ - "futures 0.3.13", + "async-trait", + "futures 0.3.14", "futures-timer 3.0.2", "log", "parity-scale-codec", - "parking_lot 0.11.1", "sc-client-api", "sc-telemetry", "sp-api", @@ -7378,7 +7780,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "log", "sc-client-api", @@ -7392,7 +7794,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "derive_more 0.99.13", "lazy_static", @@ -7408,6 +7810,7 @@ dependencies = [ "sp-core", "sp-externalities", "sp-io", + "sp-maybe-compressed-blob", "sp-panic-handler", "sp-runtime-interface", "sp-serializer", @@ -7421,11 +7824,12 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "derive_more 0.99.13", "parity-scale-codec", "parity-wasm 0.41.0", + "pwasm-utils", "sp-allocator", "sp-core", "sp-serializer", @@ -7437,7 +7841,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "log", "parity-scale-codec", @@ -7452,7 +7856,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "log", "parity-scale-codec", @@ -7470,13 +7874,14 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ + "async-trait", "derive_more 0.99.13", "dyn-clone", "finality-grandpa", "fork-tree", - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", "linked-hash-map", "log", @@ -7509,11 +7914,11 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "derive_more 0.99.13", "finality-grandpa", - "futures 0.3.13", + "futures 0.3.14", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -7533,10 +7938,10 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-warp-sync" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "derive_more 0.99.13", - "futures 0.3.13", + "futures 0.3.14", "log", "num-traits", "parity-scale-codec", @@ -7554,10 +7959,10 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "ansi_term 0.12.1", - "futures 0.3.13", + "futures 0.3.14", "log", "parity-util-mem", "sc-client-api", @@ -7572,11 +7977,11 @@ dependencies = [ [[package]] name = "sc-keystore" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "async-trait", "derive_more 0.99.13", - "futures 0.3.13", + "futures 0.3.14", "futures-util", "hex", "merlin", @@ -7592,7 +7997,7 @@ dependencies = [ [[package]] name = "sc-light" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "hash-db", "lazy_static", @@ -7611,7 +8016,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "async-std", "async-trait", @@ -7625,7 +8030,7 @@ dependencies = [ "erased-serde", "fnv", "fork-tree", - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", "hex", "ip_network", @@ -7664,9 +8069,9 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", "libp2p", "log", @@ -7681,11 +8086,11 @@ dependencies = [ [[package]] name = "sc-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "bytes 0.5.6", "fnv", - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", "hex", "hyper 0.13.10", @@ -7709,9 +8114,9 @@ dependencies = [ [[package]] name = "sc-peerset" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "libp2p", "log", "serde_json", @@ -7722,7 +8127,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -7731,9 +8136,9 @@ dependencies = [ [[package]] name = "sc-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "hash-db", "jsonrpc-core", "jsonrpc-pubsub", @@ -7765,10 +8170,10 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "derive_more 0.99.13", - "futures 0.3.13", + "futures 0.3.14", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -7789,7 +8194,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "futures 0.1.31", "jsonrpc-core", @@ -7807,12 +8212,13 @@ dependencies = [ [[package]] name = "sc-service" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ + "async-trait", "directories", "exit-future", "futures 0.1.31", - "futures 0.3.13", + "futures 0.3.14", "futures-timer 3.0.2", "hash-db", "jsonrpc-core", @@ -7870,7 +8276,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "log", "parity-scale-codec", @@ -7885,7 +8291,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -7905,10 +8311,10 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "chrono", - "futures 0.3.13", + "futures 0.3.14", "libp2p", "log", "parking_lot 0.11.1", @@ -7925,7 +8331,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "ansi_term 0.12.1", "atty", @@ -7952,21 +8358,21 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "proc-macro-crate 1.0.0", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] name = "sc-transaction-graph" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "derive_more 0.99.13", - "futures 0.3.13", + "futures 0.3.14", "linked-hash-map", "log", "parity-util-mem", @@ -7985,9 +8391,9 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "futures-diagnose", "intervalier", "log", @@ -8064,16 +8470,16 @@ version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] name = "sct" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3042af939fca8c3453b7af0f1c66e533a15a86169e39de2657310ade8f98d3c" +checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" dependencies = [ "ring", "untrusted", @@ -8169,9 +8575,9 @@ version = "1.0.125" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -8256,20 +8662,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "shared_memory" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b854a362375dfe8ab12ea8a98228040d37293c988f85fbac9fa0f83336387966" -dependencies = [ - "cfg-if 0.1.10", - "libc", - "nix", - "quick-error 2.0.0", - "rand 0.8.3", - "winapi 0.3.9", -] - [[package]] name = "shlex" version = "0.1.1" @@ -8278,9 +8670,9 @@ checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" [[package]] name = "signal-hook" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aa894ef3fade0ee7243422f4fbbd6c2b48e6de767e621d37ef65f2310f53cea" +checksum = "ef33d6d0cd06e0840fba9985aab098c147e67e05cee14d412d3345ed14ff30ac" dependencies = [ "libc", "signal-hook-registry", @@ -8303,14 +8695,14 @@ checksum = "0f0242b8e50dd9accdd56170e94ca1ebd223b098eb9c83539a6e367d0f36ae68" [[package]] name = "simba" -version = "0.1.5" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb931b1367faadea6b1ab1c306a860ec17aaa5fa39f367d0c744e69d971a1fb2" +checksum = "5132a955559188f3d13c9ba831e77c802ddc8782783f050ed0c52f5988b95f4c" dependencies = [ - "approx", - "num-complex", + "approx 0.4.0", + "num-complex 0.3.1", "num-traits", - "paste 0.1.18", + "paste", ] [[package]] @@ -8319,6 +8711,26 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" +[[package]] +name = "slot-range-helper" +version = "0.8.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +dependencies = [ + "parity-scale-codec", + "paste", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "slotmap" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "585cd5dffe4e9e06f6dfdf66708b70aca3f781bed561f4f667b2d9c0d4559e36" +dependencies = [ + "version_check", +] + [[package]] name = "smallvec" version = "0.6.14" @@ -8382,7 +8794,7 @@ dependencies = [ "base64 0.12.3", "bytes 0.5.6", "flate2", - "futures 0.3.13", + "futures 0.3.14", "httparse", "log", "rand 0.7.3", @@ -8392,7 +8804,7 @@ dependencies = [ [[package]] name = "sp-allocator" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "log", "sp-core", @@ -8404,7 +8816,7 @@ dependencies = [ [[package]] name = "sp-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "hash-db", "log", @@ -8421,19 +8833,19 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "blake2-rfc", "proc-macro-crate 1.0.0", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] name = "sp-application-crypto" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "parity-scale-codec", "serde", @@ -8445,7 +8857,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "integer-sqrt", "num-traits", @@ -8453,12 +8865,13 @@ dependencies = [ "serde", "sp-debug-derive", "sp-std", + "static_assertions", ] [[package]] name = "sp-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "parity-scale-codec", "sp-api", @@ -8470,7 +8883,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "parity-scale-codec", "sp-inherents", @@ -8481,7 +8894,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "parity-scale-codec", "sp-api", @@ -8493,9 +8906,9 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "log", "lru", "parity-scale-codec", @@ -8511,7 +8924,7 @@ dependencies = [ [[package]] name = "sp-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "serde", "serde_json", @@ -8520,9 +8933,10 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ - "futures 0.3.13", + "async-trait", + "futures 0.3.14", "futures-timer 3.0.2", "libp2p", "log", @@ -8546,7 +8960,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "merlin", "parity-scale-codec", @@ -8567,7 +8981,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "parity-scale-codec", "sp-arithmetic", @@ -8577,7 +8991,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -8589,14 +9003,14 @@ dependencies = [ [[package]] name = "sp-core" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "base58", "blake2-rfc", "byteorder", "dyn-clonable", "ed25519-dalek", - "futures 0.3.13", + "futures 0.3.14", "hash-db", "hash256-std-hasher", "hex", @@ -8633,7 +9047,7 @@ dependencies = [ [[package]] name = "sp-database" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "kvdb", "parking_lot 0.11.1", @@ -8642,17 +9056,17 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] name = "sp-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "environmental", "parity-scale-codec", @@ -8663,7 +9077,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "finality-grandpa", "log", @@ -8680,7 +9094,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "parity-scale-codec", "parking_lot 0.11.1", @@ -8692,9 +9106,9 @@ dependencies = [ [[package]] name = "sp-io" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "hash-db", "libsecp256k1", "log", @@ -8716,7 +9130,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "lazy_static", "sp-core", @@ -8727,11 +9141,11 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "async-trait", "derive_more 0.99.13", - "futures 0.3.13", + "futures 0.3.14", "merlin", "parity-scale-codec", "parking_lot 0.11.1", @@ -8741,10 +9155,19 @@ dependencies = [ "sp-externalities", ] +[[package]] +name = "sp-maybe-compressed-blob" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +dependencies = [ + "ruzstd", + "zstd", +] + [[package]] name = "sp-npos-elections" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "parity-scale-codec", "serde", @@ -8757,18 +9180,18 @@ dependencies = [ [[package]] name = "sp-npos-elections-compact" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "proc-macro-crate 1.0.0", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] name = "sp-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "sp-api", "sp-core", @@ -8778,7 +9201,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "backtrace", ] @@ -8786,7 +9209,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "serde", "sp-core", @@ -8795,7 +9218,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "either", "hash256-std-hasher", @@ -8803,7 +9226,7 @@ dependencies = [ "log", "parity-scale-codec", "parity-util-mem", - "paste 1.0.5", + "paste", "rand 0.7.3", "serde", "sp-application-crypto", @@ -8816,7 +9239,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -8833,19 +9256,19 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "Inflector", "proc-macro-crate 1.0.0", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] name = "sp-serializer" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "serde", "serde_json", @@ -8854,7 +9277,7 @@ dependencies = [ [[package]] name = "sp-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "parity-scale-codec", "sp-api", @@ -8867,7 +9290,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -8877,7 +9300,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "hash-db", "log", @@ -8899,12 +9322,12 @@ dependencies = [ [[package]] name = "sp-std" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" [[package]] name = "sp-storage" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "impl-serde", "parity-scale-codec", @@ -8917,7 +9340,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "log", "sp-core", @@ -8930,7 +9353,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "parity-scale-codec", "sp-api", @@ -8943,7 +9366,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "log", "parity-scale-codec", @@ -8956,10 +9379,10 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "derive_more 0.99.13", - "futures 0.3.13", + "futures 0.3.14", "log", "parity-scale-codec", "serde", @@ -8972,7 +9395,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "hash-db", "memory-db", @@ -8986,9 +9409,9 @@ dependencies = [ [[package]] name = "sp-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "futures-core", "futures-timer 3.0.2", "lazy_static", @@ -8998,7 +9421,7 @@ dependencies = [ [[package]] name = "sp-version" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9010,7 +9433,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9056,17 +9479,18 @@ checksum = "f2261c91034a1edc3fc4d1b80e89d82714faede0515c14a75da10cb941546bbf" dependencies = [ "cfg_aliases", "memchr", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] name = "statrs" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cce16f6de653e88beca7bd13780d08e09d4489dbca1f9210e041bc4852481382" +checksum = "1e34b58a8f9b7462b6922e0b4e3c83d1b3c2075f7f996a56d6c66afa81590064" dependencies = [ + "nalgebra 0.19.0", "rand 0.7.3", ] @@ -9126,9 +9550,9 @@ checksum = "5ba9cdfda491b814720b6b06e0cac513d922fc407582032e8706e9f137976f90" dependencies = [ "heck", "proc-macro-error", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -9147,9 +9571,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149" dependencies = [ "heck", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -9168,7 +9592,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "platforms", ] @@ -9176,10 +9600,10 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-system-rpc-runtime-api", - "futures 0.3.13", + "futures 0.3.14", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -9199,7 +9623,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "async-std", "derive_more 0.99.13", @@ -9213,10 +9637,11 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ + "async-trait", "futures 0.1.31", - "futures 0.3.13", + "futures 0.3.14", "hash-db", "hex", "parity-scale-codec", @@ -9257,12 +9682,13 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "ansi_term 0.12.1", "atty", "build-helper", "cargo_metadata", + "sp-maybe-compressed-blob", "tempfile", "toml", "walkdir", @@ -9294,11 +9720,11 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.67" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6498a9efc342871f91cc2d0d694c674368b4ceb40f62b65a7a08c3792935e702" +checksum = "48fe99c6bd8b1cc636890bcc071842de909d902c81ac7dab53ba33c421ab8ffb" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", "unicode-xid 0.2.1", ] @@ -9309,9 +9735,9 @@ version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", "unicode-xid 0.2.1", ] @@ -9342,7 +9768,7 @@ dependencies = [ "cfg-if 1.0.0", "libc", "rand 0.8.3", - "redox_syscall 0.2.5", + "redox_syscall 0.2.6", "remove_dir_all", "winapi 0.3.9", ] @@ -9380,9 +9806,9 @@ version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -9456,9 +9882,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317cca572a0e89c3ce0ca1f1bdc9369547fe318a683418e42ac8f59d14701023" +checksum = "5b5220f05bb7de7f3f53c7c065e1199b3172696fe2db9f9c4d8ad9b4ee74c342" dependencies = [ "tinyvec_macros", ] @@ -9766,9 +10192,9 @@ version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c42e6fa53307c8a17e4ccd4dc81cf5ec38db9209f59b222210375b54ee40d1e2" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", ] [[package]] @@ -9855,6 +10281,49 @@ dependencies = [ "hash-db", ] +[[package]] +name = "trust-dns-proto" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d57e219ba600dd96c2f6d82eb79645068e14edbc5c7e27514af40436b88150c" +dependencies = [ + "async-trait", + "cfg-if 1.0.0", + "data-encoding", + "enum-as-inner", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.2.2", + "ipnet", + "lazy_static", + "log", + "rand 0.8.3", + "smallvec 1.6.1", + "thiserror", + "tinyvec", + "url 2.2.1", +] + +[[package]] +name = "trust-dns-resolver" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0437eea3a6da51acc1e946545ff53d5b8fb2611ff1c3bed58522dde100536ae" +dependencies = [ + "cfg-if 1.0.0", + "futures-util", + "ipconfig", + "lazy_static", + "log", + "lru-cache", + "parking_lot 0.11.1", + "resolv-conf", + "smallvec 1.6.1", + "thiserror", + "trust-dns-proto", +] + [[package]] name = "try-lock" version = "0.2.3" @@ -9864,7 +10333,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#401c24e8a62cdf058882b0e92815faef966d9fa1" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" dependencies = [ "frame-try-runtime", "log", @@ -9929,9 +10398,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" +checksum = "eeb8be209bb1c96b7c177c7420d26e04eccacb0eeae6b980e35fcb74678107e0" dependencies = [ "matches", ] @@ -10146,9 +10615,9 @@ dependencies = [ "bumpalo", "lazy_static", "log", - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", "wasm-bindgen-shared", ] @@ -10180,9 +10649,9 @@ version = "0.2.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d53739ff08c8a68b0fdbcd54c372b8ab800b1449ab3c9d706503bc7dd1621b2c" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -10210,7 +10679,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "js-sys", "parking_lot 0.11.1", "pin-utils", @@ -10227,7 +10696,7 @@ checksum = "bf617d864d25af3587aa745529f7aaa541066c876d57e050c0d0c85c61c92aff" dependencies = [ "libc", "memory_units", - "num-rational", + "num-rational 0.2.4", "num-traits", "parity-wasm 0.41.0", "wasmi-validation", @@ -10244,15 +10713,15 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.71.0" +version = "0.76.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89a30c99437829ede826802bfcf28500cf58df00e66cb9114df98813bc145ff1" +checksum = "755a9a4afe3f6cccbbe6d7e965eef44cf260b001f93e547eba84255c1d0187d8" [[package]] name = "wasmtime" -version = "0.22.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7426055cb92bd9a1e9469b48154d8d6119cd8c498c8b70284e420342c05dc45d" +checksum = "718cb52a9fdb7ab12471e9b9d051c9adfa6b5c504e0a1fea045e5eabc81eedd9" dependencies = [ "anyhow", "backtrace", @@ -10262,6 +10731,7 @@ dependencies = [ "indexmap", "libc", "log", + "paste", "region", "rustc-demangle", "serde", @@ -10270,6 +10740,7 @@ dependencies = [ "wasmparser", "wasmtime-cache", "wasmtime-environ", + "wasmtime-fiber", "wasmtime-jit", "wasmtime-profiling", "wasmtime-runtime", @@ -10279,9 +10750,9 @@ dependencies = [ [[package]] name = "wasmtime-cache" -version = "0.22.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c01d9287e36921e46f5887a47007824ae5dbb9b7517a2d565660ab4471478709" +checksum = "1f984df56c4adeba91540f9052db9f7a8b3b00cfaac1a023bee50a972f588b0c" dependencies = [ "anyhow", "base64 0.13.0", @@ -10300,27 +10771,28 @@ dependencies = [ [[package]] name = "wasmtime-cranelift" -version = "0.22.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4134ed3a4316cd0de0e546c6004850afe472b0fa3fcdc2f2c15f8d449562d962" +checksum = "2a05abbf94e03c2c8ee02254b1949320c4d45093de5d9d6ed4d9351d536075c9" dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-frontend", "cranelift-wasm", + "wasmparser", "wasmtime-environ", ] [[package]] name = "wasmtime-debug" -version = "0.22.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91fa931df6dd8af2b02606307674d3bad23f55473d5f4c809dddf7e4c4dc411" +checksum = "382eecd6281c6c1d1f3c904c3c143e671fc1a9573820cbfa777fba45ce2eda9c" dependencies = [ "anyhow", "gimli", "more-asserts", - "object 0.22.0", + "object", "target-lexicon", "thiserror", "wasmparser", @@ -10329,9 +10801,9 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "0.22.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1098871dc3120aaf8190d79153e470658bb79f63ee9ca31716711e123c28220" +checksum = "81011b2b833663d7e0ce34639459a0e301e000fc7331e0298b3a27c78d0cec60" dependencies = [ "anyhow", "cfg-if 1.0.0", @@ -10347,11 +10819,22 @@ dependencies = [ "wasmparser", ] +[[package]] +name = "wasmtime-fiber" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d92da32e31af2e3d828f485f5f24651ed4d3b7f03a46ea6555eae6940d1402cd" +dependencies = [ + "cc", + "libc", + "winapi 0.3.9", +] + [[package]] name = "wasmtime-jit" -version = "0.22.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "738bfcd1561ede8bb174215776fd7d9a95d5f0a47ca3deabe0282c55f9a89f68" +checksum = "9b5f649623859a12d361fe4cc4793de44f7c3ff34c322c5714289787e89650bb" dependencies = [ "addr2line", "anyhow", @@ -10364,7 +10847,7 @@ dependencies = [ "gimli", "log", "more-asserts", - "object 0.22.0", + "object", "rayon", "region", "serde", @@ -10382,13 +10865,13 @@ dependencies = [ [[package]] name = "wasmtime-obj" -version = "0.22.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e96d77f1801131c5e86d93e42a3cf8a35402107332c202c245c83f34888a906" +checksum = "ef2e99cd9858f57fd062e9351e07881cedfc8597928385e02a48d9333b9e15a1" dependencies = [ "anyhow", "more-asserts", - "object 0.22.0", + "object", "target-lexicon", "wasmtime-debug", "wasmtime-environ", @@ -10396,16 +10879,16 @@ dependencies = [ [[package]] name = "wasmtime-profiling" -version = "0.22.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60bb672c9d894776d7b9250dd9b4fe890f8760201ee4f53e5f2da772b6c4debb" +checksum = "e46c0a590e49278ba7f79ef217af9db4ecc671b50042c185093e22d73524abb2" dependencies = [ "anyhow", "cfg-if 1.0.0", "gimli", "lazy_static", "libc", - "object 0.22.0", + "object", "scroll", "serde", "target-lexicon", @@ -10415,9 +10898,9 @@ dependencies = [ [[package]] name = "wasmtime-runtime" -version = "0.22.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a978086740949eeedfefcee667b57a9e98d9a7fc0de382fcfa0da30369e3530d" +checksum = "1438a09185fc7ca067caf1a80d7e5b398eefd4fb7630d94841448ade60feb3d0" dependencies = [ "backtrace", "cc", @@ -10437,18 +10920,18 @@ dependencies = [ [[package]] name = "wast" -version = "35.0.1" +version = "35.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5800e9f86a1eae935e38bea11e60fd253f6d514d153fb39b3e5535a7b37b56" +checksum = "2ef140f1b49946586078353a453a1d28ba90adfc54dde75710bc1931de204d68" dependencies = [ "leb128", ] [[package]] name = "wat" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b0fa059022c5dabe129f02b429d67086400deb8277f89c975555dacc1dadbcc" +checksum = "8ec280a739b69173e0ffd12c1658507996836ba4e992ed9bc1e5385a0bd72a02" dependencies = [ "wast", ] @@ -10475,9 +10958,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.21.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82015b7e0b8bad8185994674a13a93306bea76cf5a16c5a181382fd3a5ec2376" +checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" dependencies = [ "webpki", ] @@ -10493,9 +10976,10 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.8.29" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +version = "0.8.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ + "beefy-primitives", "bitvec", "frame-executive", "frame-support", @@ -10507,6 +10991,7 @@ dependencies = [ "pallet-authorship", "pallet-babe", "pallet-balances", + "pallet-beefy", "pallet-collective", "pallet-democracy", "pallet-election-provider-multi-phase", @@ -10516,6 +11001,8 @@ dependencies = [ "pallet-im-online", "pallet-indices", "pallet-membership", + "pallet-mmr", + "pallet-mmr-primitives", "pallet-multisig", "pallet-nicks", "pallet-offences", @@ -10550,6 +11037,7 @@ dependencies = [ "sp-core", "sp-inherents", "sp-io", + "sp-npos-elections", "sp-offchain", "sp-runtime", "sp-session", @@ -10580,6 +11068,12 @@ dependencies = [ "libc", ] +[[package]] +name = "widestring" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c" + [[package]] name = "winapi" version = "0.2.8" @@ -10623,6 +11117,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "winreg" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9" +dependencies = [ + "winapi 0.3.9", +] + [[package]] name = "ws2_32-sys" version = "0.2.1" @@ -10641,29 +11144,33 @@ checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" [[package]] name = "x25519-dalek" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc614d95359fd7afc321b66d2107ede58b246b844cf5d8a0adcca413e439f088" +checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f" dependencies = [ - "curve25519-dalek 3.0.2", + "curve25519-dalek 3.1.0", "rand_core 0.5.1", "zeroize", ] [[package]] name = "xcm" -version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +version = "0.8.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ + "derivative", + "impl-trait-for-tuples", "parity-scale-codec", ] [[package]] name = "xcm-builder" -version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +version = "0.8.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "frame-support", + "frame-system", + "impl-trait-for-tuples", "parity-scale-codec", "polkadot-parachain", "sp-arithmetic", @@ -10676,8 +11183,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.8.22" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#8ab338b7cc2c860eb557adbb3723408054f77330" +version = "0.8.30" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -10697,7 +11204,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1cc7bd8c983209ed5d527f44b01c41b7dc146fd960c61cf9e1d25399841dc271" dependencies = [ - "futures 0.3.13", + "futures 0.3.14", "log", "nohash-hasher", "parking_lot 0.11.1", @@ -10720,26 +11227,26 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f369ddb18862aba61aa49bf31e74d29f0f162dec753063200e1dc084345d16" dependencies = [ - "proc-macro2 1.0.24", + "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.67", + "syn 1.0.69", "synstructure", ] [[package]] name = "zstd" -version = "0.5.4+zstd.1.4.7" +version = "0.6.1+zstd.1.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69996ebdb1ba8b1517f61387a883857818a66c8a295f487b1ffd8fd9d2c82910" +checksum = "5de55e77f798f205d8561b8fe2ef57abfb6e0ff2abe7fd3c089e119cdb5631a3" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "2.0.6+zstd.1.4.7" +version = "3.0.1+zstd.1.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98aa931fb69ecee256d44589d19754e61851ae4769bf963b385119b1cc37a49e" +checksum = "1387cabcd938127b30ce78c4bf00b30387dddf704e3f0881dbc4ff62b5566f8c" dependencies = [ "libc", "zstd-sys", @@ -10747,12 +11254,10 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "1.4.18+zstd.1.4.7" +version = "1.4.20+zstd.1.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e6e8778706838f43f771d80d37787cb2fe06dafe89dd3aebaf6721b9eaec81" +checksum = "ebd5b733d7cf2d9447e2c3e76a5589b4f5e5ae065c22a2bc0b023cbc331b6c8e" dependencies = [ "cc", - "glob", - "itertools 0.9.0", "libc", ] diff --git a/README.md b/README.md index 064d7d29..1bcba9e5 100644 --- a/README.md +++ b/README.md @@ -38,8 +38,8 @@ git clone git@github.com:paritytech/polkadot.git cd polkadot git checkout rococo-v1 -# build WITH the real-overseer (required) -cargo build --release --features real-overseer +# build polkadot relay chain +cargo build --release # generaete the chainspec - note this file MUST be shared with all nodes! # Other nodes cannot generate it due to possible non-determanism @@ -63,7 +63,7 @@ Open a new terminal, same directory: Substrate Parachain Template: ```bash # NOTE: this command assumes the chain spec is in a directory named polkadot that is a sibling of the working directory -./target/release/parachain-collator -d local-test --collator --alice --ws-port 9945 --parachain-id 200 -- --chain ../polkadot/rococo_local.json +./target/release/parachain-collator -d local-test --collator --alice --ws-port 9945 --parachain-id 200 -- --execution wasm --chain ../polkadot/rococo_local.json ``` > Note: this chainspec file MUST be shared with all nodes genereated by _one_ validator node and passed around. @@ -93,7 +93,7 @@ cargo build --release # Export genesis state to `./resources files ./target/release/parachain-collator export-genesis-state --parachain-id 200 > ./resources/para-200-genesis # export runtime wasm -./target/release/parachain-collator export-genesis-wasm > ./resources/para-200.wasm +./target/release/parachain-collator export-genesis-wasm > ./resources/para-200-wasm ``` #### Register on the Relay with `sudo` @@ -102,6 +102,8 @@ In order to produce blocks you will need to register the parachain as detailed i `Developer -> sudo -> paraSudoWrapper -> sudoScheduleParaInitialize(id, genesis)` +> Note : When registering to Rococo, ensure you set a ParaId > 1000, below 1000 is meant for system parachains. + Ensure you set the `ParaId to 200` and the `parachain: Bool to Yes`. The files you will need are in the `./resources` folder, you just created. diff --git a/node/Cargo.toml b/node/Cargo.toml index 81df0a27..8c7a1b2f 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -164,6 +164,10 @@ branch = 'rococo-v1' git = 'https://github.com/paritytech/cumulus.git' branch = 'rococo-v1' +[dependencies.cumulus-client-cli] +git = 'https://github.com/paritytech/cumulus.git' +branch = 'rococo-v1' + [dependencies.cumulus-client-network] git = 'https://github.com/paritytech/cumulus.git' branch = 'rococo-v1' diff --git a/node/src/cli.rs b/node/src/cli.rs index b89b8417..e350e4c9 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -1,6 +1,6 @@ -use std::path::PathBuf; - +use crate::chain_spec; use sc_cli; +use std::path::PathBuf; use structopt::StructOpt; /// Sub-commands supported by the collator. @@ -30,7 +30,7 @@ pub enum Subcommand { ImportBlocks(sc_cli::ImportBlocksCmd), /// Remove the whole chain. - PurgeChain(sc_cli::PurgeChainCmd), + PurgeChain(cumulus_client_cli::PurgeChainCmd), /// Revert the chain to a previous state. Revert(sc_cli::RevertCmd), @@ -44,15 +44,17 @@ pub struct ExportGenesisStateCommand { pub output: Option, /// Id of the parachain this state is for. - #[structopt(long, default_value = "200")] - pub parachain_id: u32, + /// + /// Default: 100 + #[structopt(long, conflicts_with = "chain")] + pub parachain_id: Option, /// Write output in binary. Default is to write in hex. #[structopt(short, long)] pub raw: bool, /// The name of the chain for that the genesis state should be exported. - #[structopt(long)] + #[structopt(long, conflicts_with = "parachain-id")] pub chain: Option, } @@ -127,16 +129,21 @@ pub struct RelayChainCli { } impl RelayChainCli { - /// Create a new instance of `Self`. + /// Parse the relay chain CLI parameters using the para chain `Configuration`. pub fn new<'a>( - base_path: Option, - chain_id: Option, + para_config: &sc_service::Configuration, relay_chain_args: impl Iterator, ) -> Self { + let extension = chain_spec::Extensions::try_get(&*para_config.chain_spec); + let chain_id = extension.map(|e| e.relay_chain.clone()); + let base_path = para_config + .base_path + .as_ref() + .map(|x| x.path().join("polkadot")); Self { base_path, chain_id, base: polkadot_cli::RunCmd::from_iter(relay_chain_args), } } -} +} \ No newline at end of file diff --git a/node/src/command.rs b/node/src/command.rs index d4b75ca0..e2abd9f2 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -3,14 +3,14 @@ use crate::{ cli::{Cli, RelayChainCli, Subcommand}, }; use codec::Encode; -use cumulus_client_service::genesis::generate_genesis_block; use cumulus_primitives_core::ParaId; +use cumulus_client_service::genesis::generate_genesis_block; use log::info; use parachain_runtime::Block; use polkadot_parachain::primitives::AccountIdConversion; use sc_cli::{ - ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, - KeystoreParams, NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli, + ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, + NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli, }; use sc_service::{ config::{BasePath, PrometheusConfig}, @@ -178,7 +178,24 @@ pub fn run() -> Result<()> { } Some(Subcommand::PurgeChain(cmd)) => { let runner = cli.create_runner(cmd)?; - runner.sync_run(|config| cmd.run(config.database)) + + runner.sync_run(|config| { + let polkadot_cli = RelayChainCli::new( + &config, + [RelayChainCli::executable_name().to_string()] + .iter() + .chain(cli.relaychain_args.iter()), + ); + + let polkadot_config = SubstrateCli::create_configuration( + &polkadot_cli, + &polkadot_cli, + config.task_executor.clone(), + ) + .map_err(|err| format!("Relay chain argument error: {}", err))?; + + cmd.run(config, polkadot_config) + }) } Some(Subcommand::Revert(cmd)) => { let runner = cli.create_runner(cmd)?; @@ -199,7 +216,7 @@ pub fn run() -> Result<()> { let block: Block = generate_genesis_block(&load_spec( ¶ms.chain.clone().unwrap_or_default(), - params.parachain_id.into(), + params.parachain_id.unwrap_or(200).into(), )?)?; let raw_header = block.header().encode(); let output_buf = if params.raw { @@ -244,13 +261,11 @@ pub fn run() -> Result<()> { // TODO let key = sp_core::Pair::generate().0; - let extension = chain_spec::Extensions::try_get(&*config.chain_spec); - let relay_chain_id = extension.map(|e| e.relay_chain.clone()); - let para_id = extension.map(|e| e.para_id); + let para_id = + chain_spec::Extensions::try_get(&*config.chain_spec).map(|e| e.para_id); let polkadot_cli = RelayChainCli::new( - config.base_path.as_ref().map(|x| x.path().join("polkadot")), - relay_chain_id, + &config, [RelayChainCli::executable_name().to_string()] .iter() .chain(cli.relaychain_args.iter()), @@ -269,7 +284,7 @@ pub fn run() -> Result<()> { let polkadot_config = SubstrateCli::create_configuration( &polkadot_cli, &polkadot_cli, - task_executor.clone(), + task_executor, ) .map_err(|err| format!("Relay chain argument error: {}", err))?; let collator = cli.run.base.validator || cli.collator; @@ -407,4 +422,11 @@ impl CliConfiguration for RelayChainCli { fn announce_block(&self) -> Result { self.base.base.announce_block() } + + fn telemetry_endpoints( + &self, + chain_spec: &Box, + ) -> Result> { + self.base.base.telemetry_endpoints(chain_spec) + } } diff --git a/pallets/template/src/mock.rs b/pallets/template/src/mock.rs index 1ebe3bee..8719bcb4 100644 --- a/pallets/template/src/mock.rs +++ b/pallets/template/src/mock.rs @@ -49,6 +49,7 @@ impl system::Config for Test { type OnKilledAccount = (); type SystemWeightInfo = (); type SS58Prefix = SS58Prefix; + type OnSetCode = (); } impl pallet_template::Config for Test { diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 9e441277..587c3a7e 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -191,7 +191,17 @@ git = 'https://github.com/paritytech/cumulus.git' branch = 'rococo-v1' default-features = false -[dependencies.cumulus-pallet-xcm-handler] +[dependencies.cumulus-pallet-xcm] +git = 'https://github.com/paritytech/cumulus.git' +branch = 'rococo-v1' +default-features = false + +[dependencies.cumulus-pallet-xcmp-queue] +git = 'https://github.com/paritytech/cumulus.git' +branch = 'rococo-v1' +default-features = false + +[dependencies.cumulus-primitives-utility] git = 'https://github.com/paritytech/cumulus.git' branch = 'rococo-v1' default-features = false @@ -217,6 +227,11 @@ git = 'https://github.com/paritytech/polkadot' branch = 'rococo-v1' default-features = false +[dependencies.pallet-xcm] +git = 'https://github.com/paritytech/polkadot' +branch = 'rococo-v1' +default-features = false + [dependencies.template] default-features = false package = 'pallet-template' @@ -264,6 +279,8 @@ std = [ 'xcm/std', 'xcm-builder/std', 'xcm-executor/std', - 'cumulus-pallet-xcm-handler/std', + 'cumulus-pallet-xcm/std', + 'cumulus-pallet-xcmp-queue/std', + 'cumulus-primitives-utility/std', 'template/std', ] diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 924570d4..1ae360be 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -24,32 +24,29 @@ use sp_version::RuntimeVersion; use frame_system::{ limits::{BlockLength, BlockWeights}, - EnsureRoot, }; // Polkadot imports use polkadot_parachain::primitives::Sibling; use xcm::v0::{Junction, MultiLocation, NetworkId}; use xcm_builder::{ - AccountId32Aliases, CurrencyAdapter, LocationInverter, ParentIsDefault, RelayChainAsNative, - SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, - SovereignSignedViaLocation, -}; -use xcm_executor::{ - traits::{IsConcrete, NativeAsset}, - Config, XcmExecutor, + AccountId32Aliases, CurrencyAdapter, LocationInverter, ParentIsDefault, RelayChainAsNative, + SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, + SovereignSignedViaLocation, FixedRateOfConcreteFungible, EnsureXcmOrigin, + AllowTopLevelPaidExecutionFrom, TakeWeightCredit, FixedWeightBounds, IsConcrete, NativeAsset, + AllowUnpaidExecutionFrom, ParentAsSuperuser, }; +use xcm_executor::{Config, XcmExecutor}; // A few exports that help ease life for downstream crates. -use codec::{Decode, Encode}; pub use frame_support::{ construct_runtime, parameter_types, - traits::{KeyOwnerProofSystem, Randomness}, + traits::{Randomness, IsInVec, All}, weights::{ - constants::{BlockExecutionWeight, RocksDbWeight, ExtrinsicBaseWeight, WEIGHT_PER_SECOND}, + constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND}, DispatchClass, IdentityFee, Weight, - }, - RuntimeDebug, StorageValue, + }, + StorageValue, }; pub use pallet_balances::Call as BalancesCall; pub use pallet_timestamp::Call as TimestampCall; @@ -232,6 +229,7 @@ impl frame_system::Config for Runtime { type SystemWeightInfo = (); /// This is used as an identifier of the chain. 42 is the generic substrate prefix. type SS58Prefix = SS58Prefix; + type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; } parameter_types! { @@ -280,68 +278,145 @@ impl pallet_sudo::Config for Runtime { type Call = Call; } +parameter_types! { + pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT / 4; +} + impl cumulus_pallet_parachain_system::Config for Runtime { type Event = Event; type OnValidationData = (); - type SelfParaId = parachain_info::Pallet; - type DownwardMessageHandlers = XcmHandler; - type HrmpMessageHandlers = XcmHandler; + type SelfParaId = parachain_info::Module; + type DownwardMessageHandlers = cumulus_primitives_utility::UnqueuedDmpAsParent< + MaxDownwardMessageWeight, + XcmExecutor, + Call, + >; + type OutboundXcmpMessageSource = XcmpQueue; + type XcmpMessageHandler = XcmpQueue; + type ReservedXcmpWeight = ReservedXcmpWeight; } impl parachain_info::Config for Runtime {} parameter_types! { - pub const RococoLocation: MultiLocation = MultiLocation::X1(Junction::Parent); - pub const RococoNetwork: NetworkId = NetworkId::Polkadot; - pub RelayChainOrigin: Origin = cumulus_pallet_xcm_handler::Origin::Relay.into(); - pub Ancestry: MultiLocation = Junction::Parachain { - id: ParachainInfo::parachain_id().into() - }.into(); + pub const RococoLocation: MultiLocation = MultiLocation::X1(Junction::Parent); + pub const RococoNetwork: NetworkId = NetworkId::Polkadot; + pub RelayChainOrigin: Origin = cumulus_pallet_xcm::Origin::Relay.into(); + pub Ancestry: MultiLocation = Junction::Parachain { + id: ParachainInfo::parachain_id().into() + }.into(); } -type LocationConverter = ( - ParentIsDefault, - SiblingParachainConvertsVia, - AccountId32Aliases, +/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used +/// when determining ownership of accounts for asset transacting and when attempting to use XCM +/// `Transact` in order to determine the dispatch Origin. +pub type LocationToAccountId = ( + // The parent (Relay-chain) origin converts to the default `AccountId`. + ParentIsDefault, + // Sibling parachain origins convert to AccountId via the `ParaId::into`. + SiblingParachainConvertsVia, + // Straight up local `AccountId32` origins just alias directly to `AccountId`. + AccountId32Aliases, ); -type LocalAssetTransactor = CurrencyAdapter< - // Use this currency: - Balances, - // Use this currency when it is a fungible asset matching the given location or name: - IsConcrete, - // Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID: - LocationConverter, - // Our chain's account ID type (we can't get away without mentioning it explicitly): - AccountId, +/// Means for transacting assets on this chain. +pub type LocalAssetTransactor = CurrencyAdapter< + // Use this currency: + Balances, + // Use this currency when it is a fungible asset matching the given location or name: + IsConcrete, + // Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, >; -type LocalOriginConverter = ( - SovereignSignedViaLocation, - RelayChainAsNative, - SiblingParachainAsNative, - SignedAccountId32AsNative, +/// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance, +/// ready for dispatching a transaction with Xcm's `Transact`. There is an `OriginKind` which can +/// biases the kind of local `Origin` it will become. +pub type XcmOriginToTransactDispatchOrigin = ( + // Sovereign account converter; this attempts to derive an `AccountId` from the origin location + // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for + // foreign chains who want to have a local sovereign account on this chain which they control. + SovereignSignedViaLocation, + // Native converter for Relay-chain (Parent) location; will converts to a `Relay` origin when + // recognised. + RelayChainAsNative, + // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when + // recognised. + SiblingParachainAsNative, + // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a + // transaction from the Root origin. + ParentAsSuperuser, + // Native signed account converter; this just converts an `AccountId32` origin into a normal + // `Origin::Signed` origin of the same 32-byte value. + SignedAccountId32AsNative, ); +parameter_types! { + pub UnitWeightCost: Weight = 1_000; +} + +parameter_types! { + // 1_000_000_000_000 => 1 unit of asset for 1 unit of Weight. + // TODO: Should take the actual weight price. This is just 1_000 ROC per second of weight. + pub const WeightPrice: (MultiLocation, u128) = (MultiLocation::X1(Junction::Parent), 1_000); + pub AllowUnpaidFrom: Vec = vec![ MultiLocation::X1(Junction::Parent) ]; +} + +pub type Barrier = ( + TakeWeightCredit, + AllowTopLevelPaidExecutionFrom>, + AllowUnpaidExecutionFrom>, // <- Parent gets free execution +); + + pub struct XcmConfig; impl Config for XcmConfig { - type Call = Call; - type XcmSender = XcmHandler; - // How to withdraw and deposit an asset. - type AssetTransactor = LocalAssetTransactor; - type OriginConverter = LocalOriginConverter; - type IsReserve = NativeAsset; - type IsTeleporter = (); - type LocationInverter = LocationInverter; + type Call = Call; + type XcmSender = XcmRouter; + // How to withdraw and deposit an asset. + type AssetTransactor = LocalAssetTransactor; + type OriginConverter = XcmOriginToTransactDispatchOrigin; + type IsReserve = NativeAsset; + type IsTeleporter = NativeAsset; // <- should be enough to allow teleportation of ROC + type LocationInverter = LocationInverter; + type Barrier = Barrier; + type Weigher = FixedWeightBounds; + type Trader = FixedRateOfConcreteFungible; + type ResponseHandler = (); // Don't handle responses for now. } -impl cumulus_pallet_xcm_handler::Config for Runtime { - type Event = Event; - type XcmExecutor = XcmExecutor; - type UpwardMessageSender = ParachainSystem; - type HrmpMessageSender = ParachainSystem; - type SendXcmOrigin = EnsureRoot; - type AccountIdConverter = LocationConverter; +parameter_types! { + pub const MaxDownwardMessageWeight: Weight = MAXIMUM_BLOCK_WEIGHT / 10; +} + +/// No local origins on this chain are allowed to dispatch XCM sends/executions. +pub type LocalOriginToLocation = (); + +/// The means for routing XCM messages which are not for local execution into the right message +/// queues. +pub type XcmRouter = ( + // Two routers - use UMP to communicate with the relay chain: + cumulus_primitives_utility::ParentAsUmp, + // ..and XCMP to communicate with the sibling chains. + XcmpQueue, +); + +impl pallet_xcm::Config for Runtime { + type Event = Event; + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + type ExecuteXcmOrigin = EnsureXcmOrigin; + type XcmExecutor = XcmExecutor; +} + +impl cumulus_pallet_xcm::Config for Runtime {} + +impl cumulus_pallet_xcmp_queue::Config for Runtime { + type Event = Event; + type XcmExecutor = XcmExecutor; + type ChannelInfo = ParachainSystem; } /// Configure the pallet template in pallets/template. @@ -360,12 +435,14 @@ construct_runtime!( RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Call, Storage}, Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent}, Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, - ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Storage, Inherent, Event}, + ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Storage, Inherent, Event}, TransactionPayment: pallet_transaction_payment::{Pallet, Storage}, ParachainInfo: parachain_info::{Pallet, Storage, Config}, - XcmHandler: cumulus_pallet_xcm_handler::{Pallet, Event, Origin}, + XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event}, + PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin}, + CumulusXcm: cumulus_pallet_xcm::{Pallet, Origin}, Sudo: pallet_sudo::{Pallet, Call, Config, Storage, Event}, - TemplatePallet: template::{Pallet, Call, Storage, Event}, + TemplatePallet: template::{Pallet, Call, Storage, Event}, } ); From 8ba99d4506d6e2352ec3357af67b34b6e42e0d27 Mon Sep 17 00:00:00 2001 From: al3mart Date: Wed, 5 May 2021 15:42:29 +0200 Subject: [PATCH 24/91] Updating versions --- Cargo.lock | 559 ++++++++++++++++++++++++++--------------------------- 1 file changed, 277 insertions(+), 282 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 96f5a019..11e48fe9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -455,10 +455,16 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +[[package]] +name = "beef" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6736e2428df2ca2848d846c43e88745121a6654696e349ce0054a420815a7409" + [[package]] name = "beefy-gadget" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=rococo-v1#d3599994d4a54fb8573367c22e090354a2df1de6" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=rococo-v1#b0e5f2da52cc9bc9804a23e111d003413b268faf" dependencies = [ "beefy-primitives", "futures 0.3.14", @@ -485,7 +491,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=rococo-v1#d3599994d4a54fb8573367c22e090354a2df1de6" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=rococo-v1#b0e5f2da52cc9bc9804a23e111d003413b268faf" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -506,7 +512,7 @@ dependencies = [ [[package]] name = "beefy-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=rococo-v1#d3599994d4a54fb8573367c22e090354a2df1de6" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=rococo-v1#b0e5f2da52cc9bc9804a23e111d003413b268faf" dependencies = [ "parity-scale-codec", "sp-api", @@ -1236,7 +1242,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" dependencies = [ "sc-cli", "sc-service", @@ -1246,7 +1252,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1270,7 +1276,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" dependencies = [ "async-trait", "dyn-clone", @@ -1295,7 +1301,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-relay-chain" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1320,7 +1326,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" dependencies = [ "derive_more 0.99.13", "futures 0.3.14", @@ -1344,7 +1350,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-common", @@ -1369,7 +1375,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", @@ -1399,7 +1405,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1414,7 +1420,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1432,7 +1438,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1449,7 +1455,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1467,7 +1473,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1728,6 +1734,17 @@ dependencies = [ "syn 1.0.69", ] +[[package]] +name = "enumn" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e58b112d5099aa0857c5d05f0eacab86406dd8c0f85fe5d320a13256d29ecf4" +dependencies = [ + "proc-macro2 1.0.26", + "quote 1.0.9", + "syn 1.0.69", +] + [[package]] name = "env_logger" version = "0.7.1" @@ -1949,7 +1966,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "parity-scale-codec", ] @@ -1967,7 +1984,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "3.1.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", @@ -1986,7 +2003,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "Inflector", "chrono", @@ -2009,7 +2026,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", @@ -2022,12 +2039,11 @@ dependencies = [ [[package]] name = "frame-executive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", - "serde", "sp-core", "sp-io", "sp-runtime", @@ -2038,7 +2054,7 @@ dependencies = [ [[package]] name = "frame-metadata" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "parity-scale-codec", "serde", @@ -2049,7 +2065,7 @@ dependencies = [ [[package]] name = "frame-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "bitflags", "frame-metadata", @@ -2075,7 +2091,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2087,7 +2103,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.0.0", @@ -2099,7 +2115,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "proc-macro2 1.0.26", "quote 1.0.9", @@ -2109,7 +2125,7 @@ dependencies = [ [[package]] name = "frame-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -2126,7 +2142,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-benchmarking", "frame-support", @@ -2140,7 +2156,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "parity-scale-codec", "sp-api", @@ -2149,7 +2165,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "parity-scale-codec", @@ -3144,12 +3160,12 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.2.0-alpha.3" +version = "0.2.0-alpha.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b15fc3a0ef2e02d770aa1a221d3412443dcaedc43e27d80c957dd5bbd65321b" +checksum = "7e3a49473ea266be8e9f23e20a7bfa4349109b42319d72cc0b8a101e18fa6466" dependencies = [ "async-trait", - "futures 0.3.14", + "fnv", "hyper 0.13.10", "hyper-rustls", "jsonrpsee-types", @@ -3158,17 +3174,17 @@ dependencies = [ "serde", "serde_json", "thiserror", - "unicase", "url 2.2.1", ] [[package]] name = "jsonrpsee-proc-macros" -version = "0.2.0-alpha.3" +version = "0.2.0-alpha.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb4afbda476e2ee11cc6245055c498c116fc8002d2d60fe8338b6ee15d84c3a" +checksum = "b0cbaee9ca6440e191545a68c7bf28db0ff918359a904e37a6e7cf7edd132f5a" dependencies = [ "Inflector", + "proc-macro-crate 1.0.0", "proc-macro2 1.0.26", "quote 1.0.9", "syn 1.0.69", @@ -3176,32 +3192,29 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.2.0-alpha.3" +version = "0.2.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42a82588b5f7830e94341bb7e79d15f46070ab6f64dde1e3b3719721b61c5bf" +checksum = "bab3dabceeeeb865897661d532d47202eaae71cd2c606f53cb69f1fbc0555a51" dependencies = [ "async-trait", - "futures 0.3.14", + "beef", + "futures-channel", + "futures-util", "log", "serde", "serde_json", - "smallvec 1.6.1", "thiserror", ] [[package]] name = "jsonrpsee-utils" -version = "0.2.0-alpha.3" +version = "0.2.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e65c77838fce96bc554b4a3a159d0b9a2497319ae9305c66ee853998c7ed2fd3" +checksum = "d63cf4d423614e71fd144a8691208539d2b23d8373e069e2fbe023c5eba5e922" dependencies = [ - "futures 0.3.14", - "globset", + "futures-util", "hyper 0.13.10", "jsonrpsee-types", - "lazy_static", - "log", - "unicase", ] [[package]] @@ -3223,7 +3236,7 @@ dependencies = [ [[package]] name = "kusama-runtime" version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "beefy-primitives", "bitvec", @@ -3382,9 +3395,9 @@ checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" [[package]] name = "libp2p" -version = "0.36.0" +version = "0.37.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe5759b526f75102829c15e4d8566603b4bf502ed19b5f35920d98113873470d" +checksum = "08053fbef67cd777049ef7a95ebaca2ece370b4ed7712c3fa404d69a88cb741b" dependencies = [ "atomic", "bytes 1.0.1", @@ -3480,9 +3493,9 @@ dependencies = [ [[package]] name = "libp2p-floodsub" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897645f99e9b396df256a6aa8ba8c4bc019ac6b7c62556f624b5feea9acc82bb" +checksum = "48a9b570f6766301d9c4aa00fce3554cad1598e2f466debbc4dde909028417cf" dependencies = [ "cuckoofilter", "fnv", @@ -3498,9 +3511,9 @@ dependencies = [ [[package]] name = "libp2p-gossipsub" -version = "0.29.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "794b0c85f5df1acbc1fc38414d37272594811193b6325c76d3931c3e3f5df8c0" +checksum = "e7b0c8506a6ec3344b9e706d7c7a6dba826f8ede735cfe13dde12a8c263c4af9" dependencies = [ "asynchronous-codec 0.6.0", "base64 0.13.0", @@ -3524,9 +3537,9 @@ dependencies = [ [[package]] name = "libp2p-identify" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f88ebc841d744979176ab4b8b294a3e655a7ba4ef26a905d073a52b49ed4dff5" +checksum = "5f668f00efd9883e8b7bcc582eaf0164615792608f886f6577da18bcbeea0a46" dependencies = [ "futures 0.3.14", "libp2p-core", @@ -3540,9 +3553,9 @@ dependencies = [ [[package]] name = "libp2p-kad" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb5b90b6bda749023a85f60b49ea74b387c25f17d8df541ae72a3c75dd52e63" +checksum = "b07312ebe5ee4fd2404447a0609814574df55c65d4e20838b957bbd34907d820" dependencies = [ "arrayvec 0.5.2", "asynchronous-codec 0.6.0", @@ -3566,9 +3579,9 @@ dependencies = [ [[package]] name = "libp2p-mdns" -version = "0.29.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be28ca13bb648d249a9baebd750ebc64ce7040ddd5f0ce1035ff1f4549fb596d" +checksum = "41e282f974c4bea56db8acca50387f05189406e346318cb30190b0bde662961e" dependencies = [ "async-io", "data-encoding", @@ -3627,9 +3640,9 @@ dependencies = [ [[package]] name = "libp2p-ping" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea10fc5209260915ea65b78f612d7ff78a29ab288e7aa3250796866af861c45" +checksum = "bf4bfaffac63bf3c7ec11ed9d8879d455966ddea7e78ee14737f0b6dce0d1cd1" dependencies = [ "futures 0.3.14", "libp2p-core", @@ -3673,9 +3686,9 @@ dependencies = [ [[package]] name = "libp2p-relay" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff268be6a9d6f3c6cca3b81bbab597b15217f9ad8787c6c40fc548c1af7cd24" +checksum = "0b8786aca3f18671d8776289706a5521f6c9124a820f69e358de214b9939440d" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.0.1", @@ -3696,9 +3709,9 @@ dependencies = [ [[package]] name = "libp2p-request-response" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "725367dd2318c54c5ab1a6418592e5b01c63b0dedfbbfb8389220b2bcf691899" +checksum = "1cdbe172f08e6d0f95fa8634e273d4c4268c4063de2e33e7435194b0130c62e3" dependencies = [ "async-trait", "bytes 1.0.1", @@ -3716,9 +3729,9 @@ dependencies = [ [[package]] name = "libp2p-swarm" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75c26980cadd7c25d89071cb23e1f7f5df4863128cc91d83c6ddc72338cecafa" +checksum = "1e04d8e1eef675029ec728ba14e8d0da7975d84b6679b699b4ae91a1de9c3a92" dependencies = [ "either", "futures 0.3.14", @@ -3732,9 +3745,9 @@ dependencies = [ [[package]] name = "libp2p-swarm-derive" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c564ebaa36a64839f51eaddb0243aaaa29ce64affb56129193cc3248b72af273" +checksum = "365b0a699fea5168676840567582a012ea297b1ca02eee467e58301b9c9c5eed" dependencies = [ "quote 1.0.9", "syn 1.0.69", @@ -3803,9 +3816,9 @@ dependencies = [ [[package]] name = "libp2p-yamux" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d6144cc94143fb0a8dd1e7c2fbcc32a2808168bcd1d69920635424d5993b7b" +checksum = "f35da42cfc6d5cb0dcf3ad6881bc68d146cdf38f98655e09e33fbba4d13eabc4" dependencies = [ "futures 0.3.14", "libp2p-core", @@ -4058,7 +4071,7 @@ dependencies = [ [[package]] name = "metered-channel" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "derive_more 0.99.13", "futures 0.3.14", @@ -4477,13 +4490,12 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", "pallet-session", "parity-scale-codec", - "serde", "sp-application-crypto", "sp-authority-discovery", "sp-runtime", @@ -4493,7 +4505,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", @@ -4508,7 +4520,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-benchmarking", "frame-support", @@ -4518,7 +4530,6 @@ dependencies = [ "pallet-session", "pallet-timestamp", "parity-scale-codec", - "serde", "sp-application-crypto", "sp-consensus-babe", "sp-consensus-vrf", @@ -4532,14 +4543,13 @@ dependencies = [ [[package]] name = "pallet-balances" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", "parity-scale-codec", - "serde", "sp-runtime", "sp-std", ] @@ -4547,7 +4557,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=rococo-v1#d3599994d4a54fb8573367c22e090354a2df1de6" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=rococo-v1#b0e5f2da52cc9bc9804a23e111d003413b268faf" dependencies = [ "beefy-primitives", "frame-support", @@ -4562,13 +4572,12 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", "pallet-treasury", "parity-scale-codec", - "serde", "sp-runtime", "sp-std", ] @@ -4576,13 +4585,12 @@ dependencies = [ [[package]] name = "pallet-collective" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", "log", "parity-scale-codec", - "serde", "sp-core", "sp-io", "sp-runtime", @@ -4592,7 +4600,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-benchmarking", "frame-support", @@ -4607,14 +4615,13 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-election-provider-support", "frame-support", "frame-system", "log", "parity-scale-codec", - "serde", "sp-arithmetic", "sp-io", "sp-npos-elections", @@ -4625,14 +4632,15 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", "log", "parity-scale-codec", - "serde", + "sp-core", + "sp-io", "sp-npos-elections", "sp-runtime", "sp-std", @@ -4641,7 +4649,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-benchmarking", "frame-support", @@ -4650,7 +4658,6 @@ dependencies = [ "pallet-authorship", "pallet-session", "parity-scale-codec", - "serde", "sp-application-crypto", "sp-core", "sp-finality-grandpa", @@ -4663,14 +4670,13 @@ dependencies = [ [[package]] name = "pallet-identity" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "enumflags2", "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", - "serde", "sp-io", "sp-runtime", "sp-std", @@ -4679,14 +4685,13 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", "log", "pallet-authorship", "parity-scale-codec", - "serde", "sp-application-crypto", "sp-core", "sp-io", @@ -4698,12 +4703,11 @@ dependencies = [ [[package]] name = "pallet-indices" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", - "serde", "sp-core", "sp-io", "sp-keyring", @@ -4714,12 +4718,13 @@ dependencies = [ [[package]] name = "pallet-membership" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", - "serde", "sp-io", "sp-runtime", "sp-std", @@ -4728,7 +4733,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -4736,7 +4741,6 @@ dependencies = [ "frame-system", "pallet-mmr-primitives", "parity-scale-codec", - "serde", "sp-core", "sp-io", "sp-runtime", @@ -4746,7 +4750,7 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", @@ -4762,7 +4766,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4780,12 +4784,11 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", - "serde", "sp-core", "sp-io", "sp-runtime", @@ -4795,12 +4798,11 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", - "serde", "sp-io", "sp-runtime", "sp-std", @@ -4809,7 +4811,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", @@ -4825,12 +4827,11 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", - "serde", "sp-core", "sp-io", "sp-runtime", @@ -4840,7 +4841,7 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", @@ -4853,13 +4854,12 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "enumflags2", "frame-support", "frame-system", "parity-scale-codec", - "serde", "sp-io", "sp-runtime", "sp-std", @@ -4868,14 +4868,13 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", "parity-scale-codec", - "serde", "sp-io", "sp-runtime", "sp-std", @@ -4884,14 +4883,13 @@ dependencies = [ [[package]] name = "pallet-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", "pallet-timestamp", "parity-scale-codec", - "serde", "sp-core", "sp-io", "sp-runtime", @@ -4904,13 +4902,12 @@ dependencies = [ [[package]] name = "pallet-society" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", "rand_chacha 0.2.2", - "serde", "sp-runtime", "sp-std", ] @@ -4918,7 +4915,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4940,7 +4937,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2 1.0.26", @@ -4951,12 +4948,11 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", - "serde", "sp-io", "sp-runtime", "sp-std", @@ -4979,7 +4975,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-benchmarking", "frame-support", @@ -4987,7 +4983,6 @@ dependencies = [ "impl-trait-for-tuples", "log", "parity-scale-codec", - "serde", "sp-inherents", "sp-io", "sp-runtime", @@ -4998,7 +4993,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", @@ -5012,7 +5007,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", @@ -5028,7 +5023,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5045,7 +5040,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5056,7 +5051,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", @@ -5071,12 +5066,11 @@ dependencies = [ [[package]] name = "pallet-utility" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", - "serde", "sp-core", "sp-io", "sp-runtime", @@ -5086,13 +5080,12 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "enumflags2", "frame-support", "frame-system", "parity-scale-codec", - "serde", "sp-runtime", "sp-std", ] @@ -5100,7 +5093,7 @@ dependencies = [ [[package]] name = "pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "frame-support", "frame-system", @@ -5167,7 +5160,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#6ed96321a6b004eb860454087b3a7e278f326eb1" +source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -5625,7 +5618,7 @@ checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325" [[package]] name = "polkadot-approval-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "futures 0.3.14", "polkadot-node-network-protocol", @@ -5639,7 +5632,7 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "futures 0.3.14", "parity-scale-codec", @@ -5653,7 +5646,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "futures 0.3.14", "lru", @@ -5676,7 +5669,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "futures 0.3.14", "lru", @@ -5695,7 +5688,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "frame-benchmarking-cli", "futures 0.3.14", @@ -5715,7 +5708,7 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "always-assert", "futures 0.3.14", @@ -5735,7 +5728,7 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -5747,7 +5740,7 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -5761,7 +5754,7 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "futures 0.3.14", "polkadot-node-network-protocol", @@ -5776,7 +5769,7 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "async-trait", "futures 0.3.14", @@ -5796,7 +5789,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "futures 0.3.14", "parity-scale-codec", @@ -5814,7 +5807,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "bitvec", "derive_more 0.99.13", @@ -5843,7 +5836,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "bitvec", "futures 0.3.14", @@ -5863,7 +5856,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "bitvec", "futures 0.3.14", @@ -5881,7 +5874,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "futures 0.3.14", "polkadot-node-subsystem", @@ -5896,7 +5889,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-selection" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "futures 0.3.14", "polkadot-node-primitives", @@ -5911,7 +5904,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "async-trait", "futures 0.3.14", @@ -5929,7 +5922,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "futures 0.3.14", "polkadot-node-subsystem", @@ -5942,7 +5935,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-proposer" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "futures 0.3.14", "futures-timer 3.0.2", @@ -5967,7 +5960,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "bitvec", "futures 0.3.14", @@ -5982,7 +5975,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "always-assert", "assert_matches", @@ -6010,7 +6003,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "futures 0.3.14", "memory-lru", @@ -6028,7 +6021,7 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "async-std", "lazy_static", @@ -6046,7 +6039,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "futures 0.3.14", "parity-scale-codec", @@ -6061,7 +6054,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "futures 0.3.14", "parity-scale-codec", @@ -6083,7 +6076,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "async-std", "async-trait", @@ -6113,11 +6106,12 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "async-trait", "futures 0.3.14", "futures-timer 3.0.2", + "lru", "metered-channel", "parity-scale-codec", "pin-project 1.0.6", @@ -6140,7 +6134,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "async-trait", "futures 0.3.14", @@ -6157,7 +6151,7 @@ dependencies = [ [[package]] name = "polkadot-parachain" version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "derive_more 0.99.13", "parity-scale-codec", @@ -6172,7 +6166,7 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "bitvec", "frame-system", @@ -6201,7 +6195,7 @@ dependencies = [ [[package]] name = "polkadot-procmacro-subsystem-dispatch-gen" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "assert_matches", "proc-macro2 1.0.26", @@ -6212,7 +6206,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -6245,7 +6239,7 @@ dependencies = [ [[package]] name = "polkadot-runtime" version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "beefy-primitives", "bitvec", @@ -6315,7 +6309,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "beefy-primitives", "bitvec", @@ -6357,7 +6351,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "bitvec", "derive_more 0.99.13", @@ -6394,7 +6388,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -6483,16 +6477,18 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "arrayvec 0.5.2", "futures 0.3.14", "indexmap", + "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", + "sc-network", "sp-staking", "tracing", ] @@ -6500,7 +6496,7 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -6510,7 +6506,7 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "beefy-primitives", "bitvec", @@ -7175,13 +7171,12 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "env_logger 0.8.3", "hex-literal 0.3.1", "jsonrpsee-http-client", "jsonrpsee-proc-macros", - "jsonrpsee-types", "log", "parity-scale-codec", "sp-core", @@ -7252,7 +7247,7 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "beefy-primitives", "frame-executive", @@ -7456,13 +7451,14 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "async-trait", "derive_more 0.99.13", "either", "futures 0.3.14", "futures-timer 3.0.2", + "ip_network", "libp2p", "log", "parity-scale-codec", @@ -7484,7 +7480,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "futures 0.3.14", "futures-timer 3.0.2", @@ -7507,7 +7503,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7523,7 +7519,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7544,7 +7540,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2 1.0.26", @@ -7555,7 +7551,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "chrono", "fdlimit", @@ -7593,7 +7589,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "derive_more 0.99.13", "fnv", @@ -7627,7 +7623,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "blake2-rfc", "hash-db", @@ -7657,7 +7653,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "parking_lot 0.11.1", "sc-client-api", @@ -7669,7 +7665,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "async-trait", "derive_more 0.99.13", @@ -7716,7 +7712,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "derive_more 0.99.13", "futures 0.3.14", @@ -7740,7 +7736,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7753,7 +7749,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "async-trait", "futures 0.3.14", @@ -7780,7 +7776,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "log", "sc-client-api", @@ -7794,7 +7790,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "derive_more 0.99.13", "lazy_static", @@ -7824,7 +7820,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "derive_more 0.99.13", "parity-scale-codec", @@ -7841,7 +7837,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "log", "parity-scale-codec", @@ -7856,7 +7852,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "log", "parity-scale-codec", @@ -7874,7 +7870,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "async-trait", "derive_more 0.99.13", @@ -7914,7 +7910,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "derive_more 0.99.13", "finality-grandpa", @@ -7938,7 +7934,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-warp-sync" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "derive_more 0.99.13", "futures 0.3.14", @@ -7959,7 +7955,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "ansi_term 0.12.1", "futures 0.3.14", @@ -7977,7 +7973,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "async-trait", "derive_more 0.99.13", @@ -7997,7 +7993,7 @@ dependencies = [ [[package]] name = "sc-light" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "hash-db", "lazy_static", @@ -8016,7 +8012,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "async-std", "async-trait", @@ -8069,7 +8065,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "futures 0.3.14", "futures-timer 3.0.2", @@ -8086,7 +8082,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "bytes 0.5.6", "fnv", @@ -8114,7 +8110,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "futures 0.3.14", "libp2p", @@ -8127,7 +8123,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8136,7 +8132,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "futures 0.3.14", "hash-db", @@ -8170,7 +8166,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "derive_more 0.99.13", "futures 0.3.14", @@ -8194,7 +8190,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "futures 0.1.31", "jsonrpc-core", @@ -8212,7 +8208,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "async-trait", "directories", @@ -8276,7 +8272,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "log", "parity-scale-codec", @@ -8291,7 +8287,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -8311,7 +8307,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "chrono", "futures 0.3.14", @@ -8331,7 +8327,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "ansi_term 0.12.1", "atty", @@ -8358,7 +8354,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2 1.0.26", @@ -8369,7 +8365,7 @@ dependencies = [ [[package]] name = "sc-transaction-graph" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "derive_more 0.99.13", "futures 0.3.14", @@ -8391,7 +8387,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "futures 0.3.14", "futures-diagnose", @@ -8714,8 +8710,9 @@ checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" [[package]] name = "slot-range-helper" version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ + "enumn", "parity-scale-codec", "paste", "sp-runtime", @@ -8804,7 +8801,7 @@ dependencies = [ [[package]] name = "sp-allocator" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "log", "sp-core", @@ -8816,7 +8813,7 @@ dependencies = [ [[package]] name = "sp-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "hash-db", "log", @@ -8833,7 +8830,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "blake2-rfc", "proc-macro-crate 1.0.0", @@ -8845,7 +8842,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "parity-scale-codec", "serde", @@ -8857,7 +8854,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "integer-sqrt", "num-traits", @@ -8871,7 +8868,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "parity-scale-codec", "sp-api", @@ -8883,7 +8880,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "parity-scale-codec", "sp-inherents", @@ -8894,7 +8891,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "parity-scale-codec", "sp-api", @@ -8906,7 +8903,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "futures 0.3.14", "log", @@ -8924,7 +8921,7 @@ dependencies = [ [[package]] name = "sp-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "serde", "serde_json", @@ -8933,7 +8930,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "async-trait", "futures 0.3.14", @@ -8960,7 +8957,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "merlin", "parity-scale-codec", @@ -8981,7 +8978,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "parity-scale-codec", "sp-arithmetic", @@ -8991,7 +8988,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -9003,7 +9000,7 @@ dependencies = [ [[package]] name = "sp-core" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "base58", "blake2-rfc", @@ -9047,7 +9044,7 @@ dependencies = [ [[package]] name = "sp-database" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "kvdb", "parking_lot 0.11.1", @@ -9056,7 +9053,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "proc-macro2 1.0.26", "quote 1.0.9", @@ -9066,7 +9063,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "environmental", "parity-scale-codec", @@ -9077,7 +9074,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "finality-grandpa", "log", @@ -9094,7 +9091,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "parity-scale-codec", "parking_lot 0.11.1", @@ -9106,7 +9103,7 @@ dependencies = [ [[package]] name = "sp-io" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "futures 0.3.14", "hash-db", @@ -9130,7 +9127,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "lazy_static", "sp-core", @@ -9141,7 +9138,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "async-trait", "derive_more 0.99.13", @@ -9158,7 +9155,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "ruzstd", "zstd", @@ -9167,7 +9164,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "parity-scale-codec", "serde", @@ -9180,7 +9177,7 @@ dependencies = [ [[package]] name = "sp-npos-elections-compact" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2 1.0.26", @@ -9191,7 +9188,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "sp-api", "sp-core", @@ -9201,7 +9198,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "backtrace", ] @@ -9209,7 +9206,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "serde", "sp-core", @@ -9218,7 +9215,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "either", "hash256-std-hasher", @@ -9239,7 +9236,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9256,7 +9253,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "Inflector", "proc-macro-crate 1.0.0", @@ -9268,7 +9265,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "serde", "serde_json", @@ -9277,7 +9274,7 @@ dependencies = [ [[package]] name = "sp-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "parity-scale-codec", "sp-api", @@ -9290,7 +9287,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -9300,7 +9297,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "hash-db", "log", @@ -9322,12 +9319,12 @@ dependencies = [ [[package]] name = "sp-std" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" [[package]] name = "sp-storage" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9340,7 +9337,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "log", "sp-core", @@ -9353,7 +9350,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "parity-scale-codec", "sp-api", @@ -9366,7 +9363,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "log", "parity-scale-codec", @@ -9379,7 +9376,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "derive_more 0.99.13", "futures 0.3.14", @@ -9395,7 +9392,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "hash-db", "memory-db", @@ -9409,7 +9406,7 @@ dependencies = [ [[package]] name = "sp-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "futures 0.3.14", "futures-core", @@ -9421,7 +9418,7 @@ dependencies = [ [[package]] name = "sp-version" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9433,7 +9430,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9592,7 +9589,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "platforms", ] @@ -9600,7 +9597,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.14", @@ -9623,7 +9620,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "async-std", "derive_more 0.99.13", @@ -9637,7 +9634,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "async-trait", "futures 0.1.31", @@ -9682,7 +9679,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "ansi_term 0.12.1", "atty", @@ -10333,7 +10330,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#68cfc326fa0e3d96d0d92509e4db1a104b9da9bb" +source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" dependencies = [ "frame-try-runtime", "log", @@ -10977,7 +10974,7 @@ dependencies = [ [[package]] name = "westend-runtime" version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "beefy-primitives", "bitvec", @@ -10991,7 +10988,6 @@ dependencies = [ "pallet-authorship", "pallet-babe", "pallet-balances", - "pallet-beefy", "pallet-collective", "pallet-democracy", "pallet-election-provider-multi-phase", @@ -11001,7 +10997,6 @@ dependencies = [ "pallet-im-online", "pallet-indices", "pallet-membership", - "pallet-mmr", "pallet-mmr-primitives", "pallet-multisig", "pallet-nicks", @@ -11156,7 +11151,7 @@ dependencies = [ [[package]] name = "xcm" version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -11166,7 +11161,7 @@ dependencies = [ [[package]] name = "xcm-builder" version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "frame-support", "frame-system", @@ -11184,7 +11179,7 @@ dependencies = [ [[package]] name = "xcm-executor" version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -11200,15 +11195,15 @@ dependencies = [ [[package]] name = "yamux" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cc7bd8c983209ed5d527f44b01c41b7dc146fd960c61cf9e1d25399841dc271" +checksum = "e7d9028f208dd5e63c614be69f115c1b53cacc1111437d4c765185856666c107" dependencies = [ "futures 0.3.14", "log", "nohash-hasher", "parking_lot 0.11.1", - "rand 0.7.3", + "rand 0.8.3", "static_assertions", ] From 765c00daf0fc032e10f401a053c31d3ee6423f5d Mon Sep 17 00:00:00 2001 From: Dan Shields Date: Wed, 5 May 2021 11:22:02 -0600 Subject: [PATCH 25/91] update readme instructions, create stong indication of rococo testnet compatablility --- README.md | 151 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 112 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 1bcba9e5..334541ce 100644 --- a/README.md +++ b/README.md @@ -1,74 +1,138 @@ # Substrate Cumulus Parachain Template -A new Cumulus-based Substrate node, ready for hacking :cloud: - -## Upstream +A new [Cumulus](https://github.com/paritytech/cumulus/)-based Substrate node, ready for hacking :cloud: This project is a fork of the -[Substrate Developer Hub Node Template](https://github.com/substrate-developer-hub/substrate-node-template). +[Substrate Developer Hub Node Template](https://github.com/substrate-developer-hub/substrate-node-template) +modified to include dependencies required for registering this node as a **parathread or parachian** +to an established **relay chain** ## Build & Run Follow these steps to prepare a local Substrate development environment :hammer_and_wrench: -### Setup +### Setup of Machine If necessary, refer to the setup instructions at the [Substrate Developer Hub](https://substrate.dev/docs/en/knowledgebase/getting-started/#manual-installation). ### Build -Once the development environment is set up, build the node template. This command will build the -[Wasm](https://substrate.dev/docs/en/knowledgebase/advanced/executor#wasm-execution) and -[native](https://substrate.dev/docs/en/knowledgebase/advanced/executor#native-execution) code: +Once the development environment is set up, build the parachain node template. This command will +build the +[Wasm Runtime](https://substrate.dev/docs/en/knowledgebase/advanced/executor#wasm-execution) and +[native node](https://substrate.dev/docs/en/knowledgebase/advanced/executor#native-execution) code: ```bash cargo build --release ``` -## Run + +## Run A Collator Node + +### Rococo Relay Chain Testnet + +Rococo is Parity's official relay chain testnet for connecting cumulus-based parathreads +and parachains. + +**See the [Cumulus Workshop](https://substrate.dev/cumulus-workshop/) for the latest instructions** +**to register a parathread/parachain on Rococo** + +> **IMPORTANT NOTE:** you _must_ use the _same_ commit for cumulus and polkadot `rococo-v1` branch +> to build your parachain against to be compatible!!! You _must_ test locally registering your +> parachain successfully before you attempt to connect to rococo! + +- **[Polkadot `rococo-v1` branch](https://github.com/paritytech/polkadot/tree/rococo-v1)** +- **[Cumulus `rococo-v1` branch](https://github.com/paritytech/cumulus/tree/rococo-v1)** + +--- + +### _IS THIS TEMPLATE ROCOCO COMPATIBLE?_ +> :white_check_mark: **Yes!** :white_check_mark: +> +> As of 5/5/2021 +--- + +This network is under _constant development_ - so expect to need to follow progress and update +your parachains in lock step with the rococo changes if you wish to connect to the network. + +Do join the [rococo matrix chat room](https://matrix.to/#/#rococo:matrix.parity.io) to ask +questions and connect with the rococo teams. ### Local Relay Chain Testnet -#### Relay Chain Network(Validators) +To operate a parathread or parachain, you _must_ connect to a relay chain. -We need to clone and install the Polkadot (rococo-v1 branch): +#### Relay Chain Network (Validators) + +Clkone and build the Polkadot (**`rococo-v1` branch**): ```bash # Get a fresh clone, or `cd` to where you have polkadot already: -git clone git@github.com:paritytech/polkadot.git +git clone -b rococo-v1 --depth 1 https://github.com:paritytech/polkadot.git cd polkadot -git checkout rococo-v1 - -# build polkadot relay chain cargo build --release +``` + +##### Generaete the chainspec -# generaete the chainspec - note this file MUST be shared with all nodes! -# Other nodes cannot generate it due to possible non-determanism -./target/release/polkadot build-spec --chain rococo-local --raw --disable-default-bootnode > rococo_local.json +> NOTE: this file _must_ be generated on a _single node_ and then the file shared with all nodes! +> Other nodes _cannot_ generate it due to possible non-determinism. +```bash +./target/release/polkadot build-spec\ +--chain rococo-local\ +--raw\ +--disable-default-bootnode\ +> rococo_local.json +``` + +##### Start Relay Chain Node(s) + +You should have a minimum of 2 running full _validator_ nodes on your relay chain per parachain/thread +collator you intend to connect! + +From the Polkadot working directory: +```bash # Start Relay `Alice` node -./target/release/polkadot --chain ./rococo_local.json -d cumulus_relay0 --validator --alice --port 50556 +./target/release/polkadot\ +--chain ./rococo_local.json\ +-d cumulus_relay/alice\ +--validator\ +--alice\ +--port 50555 ``` Open a new terminal, same directory: -```bash -# Start Relay `Bob` node -./target/release/polkadot --chain ./rococo_local.json -d cumulus_relay1 --validator --bob --port 50555 +```bash +# Start Relay `Alice` node +./target/release/polkadot\ +--chain ./rococo_local.json\ +-d cumulus_relay/bob\ +--validator\ +--bob\ +--port 50556 ``` - -> There _must_ be a minimum of 2 relay chain nodes per parachain node. Scale as needed! +Add more nodes as needed, with non-conflicting ports, DB directiories, and validator keys +(`--charlie`, `--dave`, etc.). #### Parachain Nodes (Collators) -Substrate Parachain Template: +From the parachain template working directory: + ```bash -# NOTE: this command assumes the chain spec is in a directory named polkadot that is a sibling of the working directory -./target/release/parachain-collator -d local-test --collator --alice --ws-port 9945 --parachain-id 200 -- --execution wasm --chain ../polkadot/rococo_local.json +# NOTE: this command assumes the chain spec is in a directory named `polkadot` +# that is at the same level of the template working directory. Change as needed. +./target/release/parachain-collator\ +-d cumulus-parachain/alice\ +--collator\ +--alice\ +--ws-port 9945\ +--parachain-id 200\ +--\ +--execution wasm\ +--chain ../polkadot/rococo_local.json ``` -> Note: this chainspec file MUST be shared with all nodes genereated by _one_ validator node and passed around. -> Other nodes cannot generate it due to possible non-determanism - ### Registering on Local Relay Chain #### Export the Parachain Genesis and Runtime @@ -81,7 +145,7 @@ you modified the code you can use the following commands: cargo build --release # Build the Chain spec -./target/release/parachain-collator build-spec \ +./target/release/parachain-collator build-spec\ --disable-default-bootnode > ./resources/template-local-plain.json # Build the raw file @@ -96,22 +160,30 @@ cargo build --release ./target/release/parachain-collator export-genesis-wasm > ./resources/para-200-wasm ``` +> Note: we have set the `para_ID = 200` here, this _must_ be unique for all parathreads/chains on the +> relay chain you register with. + #### Register on the Relay with `sudo` -In order to produce blocks you will need to register the parachain as detailed in the [Substrate Cumulus Worship](https://substrate.dev/cumulus-workshop/#/en/3-parachains/2-register) by going to +In order to produce blocks you will need to register the parachain as detailed in the +[Substrate Cumulus Worship](https://substrate.dev/cumulus-workshop/#/en/3-parachains/2-register) +by going to: `Developer -> sudo -> paraSudoWrapper -> sudoScheduleParaInitialize(id, genesis)` -> Note : When registering to Rococo, ensure you set a ParaId > 1000, below 1000 is meant for system parachains. - Ensure you set the `ParaId to 200` and the `parachain: Bool to Yes`. The files you will need are in the `./resources` folder, you just created. +> Note : When registering to the public Rococo testnet, ensure you set a **unique** +> `para_id` > 1000, below 1000 is reserved _exclusively_ for system parachains. + #### Restart the Parachain (Collator) and Wait... -The collator node may need to be restarted to get it functioning as expected. After a [new era](https://wiki.polkadot.network/docs/en/glossary#era) starts on the relay chain, your parachain will come online. Once this happens, you should see the -collator start reporting _parachian_ blocks: +The collator node may need to be restarted to get it functioning as expected. After a +[new era](https://wiki.polkadot.network/docs/en/glossary#era) starts on the relay chain, +your parachain will come online. Once this happens, you should see the collator start +reporting _parachian_ blocks: ```bash 2021-04-01 16:31:06 [Relaychain] ✨ Imported #243 (0x46d8…f394) @@ -130,13 +202,14 @@ collator start reporting _parachian_ blocks: 2021-04-01 16:31:14 [Parachain] 💤 Idle (0 peers), best: #90 (0x85c6…45be), finalized #65 (0xdd20…d44a), ⬇ 1.6kiB/s ⬆ 1.4kiB/s ``` -> Note the delay here! It may take some time for your relaychain to enter a new era. +> Note the delay here! It may take some time for your relaychain to enter a new era. ## Learn More -Refer to the upstream +- Refer to the upstream [Substrate Developer Hub Node Template](https://github.com/substrate-developer-hub/substrate-node-template) to learn more about the structure of this project, the capabilities it encapsulates and the way in -which those capabilities are implemented. You can learn more about +which those capabilities are implemented. +- You can learn more about [The Path of Parachain Block](https://polkadot.network/the-path-of-a-parachain-block/) on the official Polkadot Blog. From 1e1e7257e4429e8413f5a27940d4941d220317a7 Mon Sep 17 00:00:00 2001 From: Dan Shields Date: Wed, 5 May 2021 11:26:31 -0600 Subject: [PATCH 26/91] update readme --- README.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 334541ce..7bb6e3fe 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,13 @@ cargo build --release ### Rococo Relay Chain Testnet +--- +### _IS THIS TEMPLATE ROCOCO COMPATIBLE?_ +> :white_check_mark: **Yes!** :white_check_mark: +> +> As of 5/5/2021 +--- + Rococo is Parity's official relay chain testnet for connecting cumulus-based parathreads and parachains. @@ -44,14 +51,6 @@ and parachains. - **[Polkadot `rococo-v1` branch](https://github.com/paritytech/polkadot/tree/rococo-v1)** - **[Cumulus `rococo-v1` branch](https://github.com/paritytech/cumulus/tree/rococo-v1)** ---- - -### _IS THIS TEMPLATE ROCOCO COMPATIBLE?_ -> :white_check_mark: **Yes!** :white_check_mark: -> -> As of 5/5/2021 ---- - This network is under _constant development_ - so expect to need to follow progress and update your parachains in lock step with the rococo changes if you wish to connect to the network. @@ -206,6 +205,8 @@ reporting _parachian_ blocks: ## Learn More +- More detailed instructions to use Cumulus parachains are found in the +[Cumulus Worship](https://substrate.dev/cumulus-workshop/#/en/3-parachains/2-register) - Refer to the upstream [Substrate Developer Hub Node Template](https://github.com/substrate-developer-hub/substrate-node-template) to learn more about the structure of this project, the capabilities it encapsulates and the way in From 60df341da5666355b24b0ef91ef2e39a3bfd3554 Mon Sep 17 00:00:00 2001 From: David R Date: Wed, 19 May 2021 21:44:26 -0700 Subject: [PATCH 27/91] Update README.md fix minor typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7bb6e3fe..b1d8f307 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ To operate a parathread or parachain, you _must_ connect to a relay chain. #### Relay Chain Network (Validators) -Clkone and build the Polkadot (**`rococo-v1` branch**): +Clone and build the Polkadot (**`rococo-v1` branch**): ```bash # Get a fresh clone, or `cd` to where you have polkadot already: git clone -b rococo-v1 --depth 1 https://github.com:paritytech/polkadot.git From b7d946d2877104b0d520b68b390205c17fb10563 Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Wed, 2 Jun 2021 20:20:31 -0600 Subject: [PATCH 28/91] Update rococo-v1 -> polkadot-v0.9.3 (#33) * update cargo.toml files to new use branches, remove explicit versions * use compact dependency notation, and only single quotes in cargo files * build deps * 0.9.2 deps. compact pallet deps. cargo update environmental * update CLI to cumulus (statemint reference) * add benchmarking (ref node template & statemint) , deps polish * update collator service * update runtime, in progress (not building) * runtime builds! * service builds * progress on service & chainspec * get commands and service working, aura chainspec * builds no errors! * readme updates. Westend in use, but era is too long for testing! * update to 0.9.3 (#38) * update to rococo-local relay chain use, readme polish * readme updates * readme on chain specs for live networks * update * readme updated with output. Working! Co-authored-by: Sam Elamin --- Cargo.lock | 968 +++++++++++++++++++++++++----------- README.md | 305 ++++++++---- node/Cargo.toml | 294 ++++------- node/src/chain_spec.rs | 23 +- node/src/cli.rs | 31 +- node/src/command.rs | 109 ++-- node/src/service.rs | 344 +++++++++---- pallets/template/Cargo.toml | 68 +-- runtime/Cargo.toml | 359 ++++--------- runtime/src/lib.rs | 427 ++++++++-------- 10 files changed, 1662 insertions(+), 1266 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 11e48fe9..37c1b44b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -464,7 +464,7 @@ checksum = "6736e2428df2ca2848d846c43e88745121a6654696e349ce0054a420815a7409" [[package]] name = "beefy-gadget" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=rococo-v1#b0e5f2da52cc9bc9804a23e111d003413b268faf" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.3#063e18a1f82945d5a304906db92bfbb571bac459" dependencies = [ "beefy-primitives", "futures 0.3.14", @@ -478,6 +478,7 @@ dependencies = [ "sc-network-gossip", "sp-api", "sp-application-crypto", + "sp-arithmetic", "sp-blockchain", "sp-consensus", "sp-core", @@ -491,7 +492,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=rococo-v1#b0e5f2da52cc9bc9804a23e111d003413b268faf" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.3#063e18a1f82945d5a304906db92bfbb571bac459" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -512,7 +513,7 @@ dependencies = [ [[package]] name = "beefy-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=rococo-v1#b0e5f2da52cc9bc9804a23e111d003413b268faf" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.3#063e18a1f82945d5a304906db92bfbb571bac459" dependencies = [ "parity-scale-codec", "sp-api", @@ -691,6 +692,114 @@ dependencies = [ "once_cell", ] +[[package]] +name = "bp-header-chain" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +dependencies = [ + "finality-grandpa", + "frame-support", + "parity-scale-codec", + "serde", + "sp-core", + "sp-finality-grandpa", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-messages" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +dependencies = [ + "bp-runtime", + "frame-support", + "frame-system", + "parity-scale-codec", + "sp-std", +] + +[[package]] +name = "bp-polkadot-core" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +dependencies = [ + "bp-messages", + "bp-runtime", + "frame-support", + "frame-system", + "parity-scale-codec", + "sp-api", + "sp-core", + "sp-runtime", + "sp-std", + "sp-version", +] + +[[package]] +name = "bp-rococo" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +dependencies = [ + "bp-header-chain", + "bp-messages", + "bp-polkadot-core", + "bp-runtime", + "parity-scale-codec", + "sp-api", + "sp-runtime", + "sp-std", + "sp-version", +] + +[[package]] +name = "bp-runtime" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +dependencies = [ + "frame-support", + "hash-db", + "num-traits", + "parity-scale-codec", + "sp-core", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", +] + +[[package]] +name = "bp-test-utils" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +dependencies = [ + "bp-header-chain", + "ed25519-dalek", + "finality-grandpa", + "parity-scale-codec", + "sp-application-crypto", + "sp-finality-grandpa", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-wococo" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +dependencies = [ + "bp-header-chain", + "bp-messages", + "bp-polkadot-core", + "bp-runtime", + "parity-scale-codec", + "sp-api", + "sp-runtime", + "sp-std", + "sp-version", +] + [[package]] name = "bs58" version = "0.4.0" @@ -768,6 +877,15 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba" +[[package]] +name = "camino" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4648c6d00a709aa069a236adcaae4f605a6241c72bf5bee79331a4b625921a9" +dependencies = [ + "serde", +] + [[package]] name = "cargo-platform" version = "0.1.1" @@ -790,6 +908,20 @@ dependencies = [ "serde_json", ] +[[package]] +name = "cargo_metadata" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "081e3f0755c1f380c2d010481b6fa2e02973586d5f2b24eebb7a2a1d98b143d8" +dependencies = [ + "camino", + "cargo-platform", + "semver 0.11.0", + "semver-parser 0.10.2", + "serde", + "serde_json", +] + [[package]] name = "cc" version = "1.0.67" @@ -1242,7 +1374,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" dependencies = [ "sc-cli", "sc-service", @@ -1252,65 +1384,68 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-primitives-core", "futures 0.3.14", "parity-scale-codec", - "parking_lot 0.9.0", + "parking_lot 0.10.2", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", "sc-client-api", + "sp-api", "sp-consensus", "sp-core", "sp-io", "sp-runtime", - "sp-state-machine", "tracing", ] [[package]] -name = "cumulus-client-consensus-common" +name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" dependencies = [ "async-trait", - "dyn-clone", + "cumulus-client-consensus-common", + "cumulus-primitives-core", "futures 0.3.14", "parity-scale-codec", - "polkadot-primitives", - "polkadot-runtime", + "parking_lot 0.10.2", + "polkadot-service", "sc-client-api", + "sc-consensus-aura", + "sc-consensus-slots", + "sc-telemetry", "sp-api", + "sp-application-crypto", "sp-block-builder", "sp-blockchain", "sp-consensus", + "sp-consensus-aura", "sp-core", "sp-inherents", + "sp-keystore", "sp-runtime", - "sp-trie", "substrate-prometheus-endpoint", - "tokio 0.1.22", "tracing", ] [[package]] -name = "cumulus-client-consensus-relay-chain" +name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" dependencies = [ "async-trait", - "cumulus-client-consensus-common", - "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", + "dyn-clone", "futures 0.3.14", "parity-scale-codec", - "parking_lot 0.9.0", - "polkadot-service", + "polkadot-primitives", + "polkadot-runtime", "sc-client-api", "sp-api", "sp-block-builder", @@ -1319,6 +1454,7 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", + "sp-trie", "substrate-prometheus-endpoint", "tracing", ] @@ -1326,7 +1462,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" dependencies = [ "derive_more 0.99.13", "futures 0.3.14", @@ -1347,20 +1483,49 @@ dependencies = [ "tracing", ] +[[package]] +name = "cumulus-client-pov-recovery" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" +dependencies = [ + "cumulus-primitives-core", + "futures 0.3.14", + "futures-timer 3.0.2", + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-service", + "polkadot-statement-table", + "rand 0.8.3", + "sc-client-api", + "sp-api", + "sp-consensus", + "sp-core", + "sp-maybe-compressed-blob", + "sp-runtime", + "tracing", +] + [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-common", + "cumulus-client-pov-recovery", "cumulus-primitives-core", - "futures 0.3.14", "parity-scale-codec", + "parking_lot 0.10.2", + "polkadot-overseer", "polkadot-primitives", "polkadot-service", "sc-chain-spec", "sc-client-api", + "sc-consensus-babe", "sc-service", "sc-telemetry", "sc-tracing", @@ -1372,10 +1537,46 @@ dependencies = [ "tracing", ] +[[package]] +name = "cumulus-pallet-aura-ext" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" +dependencies = [ + "frame-executive", + "frame-support", + "frame-system", + "pallet-aura", + "parity-scale-codec", + "serde", + "sp-application-crypto", + "sp-consensus-aura", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "cumulus-pallet-dmp-queue" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "rand 0.8.3", + "rand_chacha 0.3.0", + "sp-io", + "sp-runtime", + "sp-std", + "xcm", + "xcm-executor", +] + [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", @@ -1405,13 +1606,14 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", "parity-scale-codec", "serde", + "sp-io", "sp-runtime", "sp-std", "xcm", @@ -1420,7 +1622,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1438,7 +1640,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1446,6 +1648,7 @@ dependencies = [ "polkadot-core-primitives", "polkadot-parachain", "polkadot-primitives", + "sp-api", "sp-runtime", "sp-std", "sp-trie", @@ -1455,10 +1658,12 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" dependencies = [ + "async-trait", "cumulus-primitives-core", "parity-scale-codec", + "polkadot-service", "sc-client-api", "sp-api", "sp-core", @@ -1473,7 +1678,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1773,9 +1978,9 @@ dependencies = [ [[package]] name = "environmental" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6576a1755ddffd988788025e75bce9e74b018f7cc226198fe931d077911c6d7e" +checksum = "68b91989ae21441195d7d9b9993a2f9295c7e1a8c96255d8b729accddc124797" [[package]] name = "erased-serde" @@ -1966,7 +2171,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "parity-scale-codec", ] @@ -1984,7 +2189,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "3.1.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -2003,7 +2208,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "Inflector", "chrono", @@ -2026,7 +2231,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -2039,7 +2244,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -2054,7 +2259,7 @@ dependencies = [ [[package]] name = "frame-metadata" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "parity-scale-codec", "serde", @@ -2065,7 +2270,7 @@ dependencies = [ [[package]] name = "frame-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "bitflags", "frame-metadata", @@ -2091,7 +2296,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2103,7 +2308,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.0.0", @@ -2115,7 +2320,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "proc-macro2 1.0.26", "quote 1.0.9", @@ -2125,7 +2330,7 @@ dependencies = [ [[package]] name = "frame-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -2142,7 +2347,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-benchmarking", "frame-support", @@ -2156,7 +2361,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "parity-scale-codec", "sp-api", @@ -2165,7 +2370,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "parity-scale-codec", @@ -2543,14 +2748,14 @@ dependencies = [ [[package]] name = "handlebars" -version = "3.5.4" +version = "3.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "580b6f551b29a3a02436318aed09ba1c58eea177dc49e39beac627ad356730a5" +checksum = "4498fc115fa7d34de968184e473529abb40eeb6be8bc5f7faba3d08c316cb3e3" dependencies = [ "log", "pest", "pest_derive", - "quick-error 2.0.0", + "quick-error 2.0.1", "serde", "serde_json", ] @@ -3160,9 +3365,9 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.2.0-alpha.5" +version = "0.2.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e3a49473ea266be8e9f23e20a7bfa4349109b42319d72cc0b8a101e18fa6466" +checksum = "2737440f37efa10e5ef7beeec43d059d29dc92640978be21fcdcef481a2edb0d" dependencies = [ "async-trait", "fnv", @@ -3179,9 +3384,9 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.2.0-alpha.5" +version = "0.2.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0cbaee9ca6440e191545a68c7bf28db0ff918359a904e37a6e7cf7edd132f5a" +checksum = "5784ee8bb31988fa2c7a755fe31b0e21aa51894a67e5c99b6d4470f0253bf31a" dependencies = [ "Inflector", "proc-macro-crate 1.0.0", @@ -3235,8 +3440,8 @@ dependencies = [ [[package]] name = "kusama-runtime" -version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +version = "0.9.3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "beefy-primitives", "bitvec", @@ -3255,6 +3460,7 @@ dependencies = [ "pallet-democracy", "pallet-election-provider-multi-phase", "pallet-elections-phragmen", + "pallet-gilt", "pallet-grandpa", "pallet-identity", "pallet-im-online", @@ -3271,7 +3477,7 @@ dependencies = [ "pallet-session", "pallet-society", "pallet-staking", - "pallet-staking-reward-curve", + "pallet-staking-reward-fn", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", @@ -3279,14 +3485,17 @@ dependencies = [ "pallet-treasury", "pallet-utility", "pallet-vesting", + "pallet-xcm", "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-common", + "polkadot-runtime-parachains", "rustc-hex", "serde", "serde_derive", "smallvec 1.6.1", "sp-api", + "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-babe", @@ -3303,6 +3512,9 @@ dependencies = [ "sp-version", "static_assertions", "substrate-wasm-builder 3.0.0", + "xcm", + "xcm-builder", + "xcm-executor", ] [[package]] @@ -4071,7 +4283,7 @@ dependencies = [ [[package]] name = "metered-channel" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "derive_more 0.99.13", "futures 0.3.14", @@ -4487,10 +4699,26 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "pallet-aura" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +dependencies = [ + "frame-support", + "frame-system", + "pallet-session", + "pallet-timestamp", + "parity-scale-codec", + "sp-application-crypto", + "sp-consensus-aura", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -4505,14 +4733,13 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", "parity-scale-codec", "sp-authorship", - "sp-inherents", "sp-runtime", "sp-std", ] @@ -4520,7 +4747,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-benchmarking", "frame-support", @@ -4543,7 +4770,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-benchmarking", "frame-support", @@ -4557,7 +4784,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=rococo-v1#b0e5f2da52cc9bc9804a23e111d003413b268faf" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.3#063e18a1f82945d5a304906db92bfbb571bac459" dependencies = [ "beefy-primitives", "frame-support", @@ -4572,7 +4799,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -4582,10 +4809,31 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-bridge-grandpa" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +dependencies = [ + "bp-header-chain", + "bp-runtime", + "bp-test-utils", + "finality-grandpa", + "frame-support", + "frame-system", + "log", + "num-traits", + "parity-scale-codec", + "serde", + "sp-finality-grandpa", + "sp-runtime", + "sp-std", + "sp-trie", +] + [[package]] name = "pallet-collective" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -4600,7 +4848,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-benchmarking", "frame-support", @@ -4615,7 +4863,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4623,6 +4871,7 @@ dependencies = [ "log", "parity-scale-codec", "sp-arithmetic", + "sp-core", "sp-io", "sp-npos-elections", "sp-runtime", @@ -4633,7 +4882,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -4646,10 +4895,24 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-gilt" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "sp-arithmetic", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-benchmarking", "frame-support", @@ -4670,7 +4933,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4685,7 +4948,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -4703,7 +4966,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -4718,7 +4981,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-benchmarking", "frame-support", @@ -4733,7 +4996,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -4750,7 +5013,7 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -4766,7 +5029,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4784,7 +5047,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -4798,7 +5061,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -4811,7 +5074,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -4827,7 +5090,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -4841,7 +5104,7 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -4854,7 +5117,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "enumflags2", "frame-support", @@ -4868,7 +5131,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-benchmarking", "frame-support", @@ -4883,7 +5146,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -4902,7 +5165,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -4915,7 +5178,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4937,7 +5200,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2 1.0.26", @@ -4945,10 +5208,19 @@ dependencies = [ "syn 1.0.69", ] +[[package]] +name = "pallet-staking-reward-fn" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +dependencies = [ + "log", + "sp-arithmetic", +] + [[package]] name = "pallet-sudo" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -4975,7 +5247,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-benchmarking", "frame-support", @@ -4993,7 +5265,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -5007,7 +5279,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -5023,7 +5295,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5040,7 +5312,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5051,7 +5323,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -5066,7 +5338,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-support", "frame-system", @@ -5080,7 +5352,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "enumflags2", "frame-support", @@ -5093,7 +5365,7 @@ dependencies = [ [[package]] name = "pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "frame-support", "frame-system", @@ -5102,18 +5374,21 @@ dependencies = [ "sp-runtime", "sp-std", "xcm", + "xcm-executor", ] [[package]] name = "parachain-collator" -version = "2.0.0" +version = "3.0.0" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", - "cumulus-client-consensus-relay-chain", + "cumulus-client-consensus-aura", + "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-client-service", "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", "derive_more 0.15.0", "frame-benchmarking", "frame-benchmarking-cli", @@ -5135,6 +5410,7 @@ dependencies = [ "sc-consensus", "sc-executor", "sc-keystore", + "sc-network", "sc-rpc", "sc-rpc-api", "sc-service", @@ -5146,21 +5422,25 @@ dependencies = [ "sp-block-builder", "sp-blockchain", "sp-consensus", + "sp-consensus-aura", "sp-core", "sp-inherents", + "sp-keystore", + "sp-offchain", "sp-runtime", + "sp-session", "sp-timestamp", "sp-transaction-pool", - "sp-trie", "structopt", "substrate-build-script-utils", "substrate-frame-rpc-system", + "substrate-prometheus-endpoint", ] [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=rococo-v1#da4c3bac6e9584e65740ef5db4dbd2c31c1a91db" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -5171,8 +5451,10 @@ dependencies = [ [[package]] name = "parachain-runtime" -version = "2.0.0" +version = "3.0.0" dependencies = [ + "cumulus-pallet-aura-ext", + "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", @@ -5184,7 +5466,8 @@ dependencies = [ "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", - "hex-literal 0.3.1", + "log", + "pallet-aura", "pallet-balances", "pallet-randomness-collective-flip", "pallet-sudo", @@ -5197,9 +5480,9 @@ dependencies = [ "parity-scale-codec", "polkadot-parachain", "serde", - "smallvec 1.6.1", "sp-api", "sp-block-builder", + "sp-consensus-aura", "sp-core", "sp-inherents", "sp-io", @@ -5618,7 +5901,7 @@ checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325" [[package]] name = "polkadot-approval-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "futures 0.3.14", "polkadot-node-network-protocol", @@ -5632,10 +5915,9 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "futures 0.3.14", - "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -5646,7 +5928,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "futures 0.3.14", "lru", @@ -5669,7 +5951,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "futures 0.3.14", "lru", @@ -5687,8 +5969,8 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +version = "0.9.3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "frame-benchmarking-cli", "futures 0.3.14", @@ -5708,7 +5990,7 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "always-assert", "futures 0.3.14", @@ -5727,8 +6009,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +version = "0.9.3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -5739,8 +6021,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +version = "0.9.3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -5754,7 +6036,7 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "futures 0.3.14", "polkadot-node-network-protocol", @@ -5769,7 +6051,7 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "async-trait", "futures 0.3.14", @@ -5789,7 +6071,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "futures 0.3.14", "parity-scale-codec", @@ -5807,7 +6089,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "bitvec", "derive_more 0.99.13", @@ -5836,7 +6118,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "bitvec", "futures 0.3.14", @@ -5856,7 +6138,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "bitvec", "futures 0.3.14", @@ -5874,7 +6156,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "futures 0.3.14", "polkadot-node-subsystem", @@ -5889,7 +6171,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-selection" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "futures 0.3.14", "polkadot-node-primitives", @@ -5904,7 +6186,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "async-trait", "futures 0.3.14", @@ -5922,7 +6204,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "futures 0.3.14", "polkadot-node-subsystem", @@ -5933,34 +6215,27 @@ dependencies = [ ] [[package]] -name = "polkadot-node-core-proposer" +name = "polkadot-node-core-parachains-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ + "async-trait", "futures 0.3.14", "futures-timer 3.0.2", "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", - "sc-basic-authorship", - "sc-block-builder", - "sc-client-api", - "sc-telemetry", - "sp-api", "sp-blockchain", - "sp-consensus", - "sp-core", "sp-inherents", "sp-runtime", - "sp-transaction-pool", - "substrate-prometheus-endpoint", + "thiserror", "tracing", ] [[package]] name = "polkadot-node-core-provisioner" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "bitvec", "futures 0.3.14", @@ -5975,7 +6250,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "always-assert", "assert_matches", @@ -6003,7 +6278,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "futures 0.3.14", "memory-lru", @@ -6021,7 +6296,7 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "async-std", "lazy_static", @@ -6039,7 +6314,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "futures 0.3.14", "parity-scale-codec", @@ -6054,7 +6329,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "futures 0.3.14", "parity-scale-codec", @@ -6076,7 +6351,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "async-std", "async-trait", @@ -6106,7 +6381,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "async-trait", "futures 0.3.14", @@ -6134,7 +6409,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "async-trait", "futures 0.3.14", @@ -6143,6 +6418,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", + "polkadot-procmacro-overseer-subsystems-gen", "sc-client-api", "sp-api", "tracing", @@ -6150,8 +6426,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +version = "0.9.3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "derive_more 0.99.13", "parity-scale-codec", @@ -6165,8 +6441,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +version = "0.9.3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "bitvec", "frame-system", @@ -6192,10 +6468,21 @@ dependencies = [ "thiserror", ] +[[package]] +name = "polkadot-procmacro-overseer-subsystems-gen" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +dependencies = [ + "assert_matches", + "proc-macro2 1.0.26", + "quote 1.0.9", + "syn 1.0.69", +] + [[package]] name = "polkadot-procmacro-subsystem-dispatch-gen" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "assert_matches", "proc-macro2 1.0.26", @@ -6205,8 +6492,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +version = "0.9.3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -6238,8 +6525,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +version = "0.9.3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "beefy-primitives", "bitvec", @@ -6308,8 +6595,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +version = "0.9.3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "beefy-primitives", "bitvec", @@ -6350,8 +6637,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +version = "0.9.3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "bitvec", "derive_more 0.99.13", @@ -6387,8 +6674,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +version = "0.9.3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -6419,7 +6706,7 @@ dependencies = [ "polkadot-node-core-candidate-selection", "polkadot-node-core-candidate-validation", "polkadot-node-core-chain-api", - "polkadot-node-core-proposer", + "polkadot-node-core-parachains-inherent", "polkadot-node-core-provisioner", "polkadot-node-core-runtime-api", "polkadot-node-primitives", @@ -6434,6 +6721,7 @@ dependencies = [ "polkadot-statement-distribution", "rococo-runtime", "sc-authority-discovery", + "sc-basic-authorship", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -6441,6 +6729,7 @@ dependencies = [ "sc-consensus", "sc-consensus-babe", "sc-consensus-slots", + "sc-consensus-uncles", "sc-executor", "sc-finality-grandpa", "sc-finality-grandpa-warp-sync", @@ -6466,6 +6755,7 @@ dependencies = [ "sp-session", "sp-state-machine", "sp-storage", + "sp-timestamp", "sp-transaction-pool", "sp-trie", "substrate-prometheus-endpoint", @@ -6477,7 +6767,7 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "arrayvec 0.5.2", "futures 0.3.14", @@ -6489,14 +6779,16 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "sc-network", + "sp-keystore", "sp-staking", + "thiserror", "tracing", ] [[package]] name = "polkadot-statement-table" -version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +version = "0.9.3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -6505,8 +6797,8 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" -version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +version = "0.9.3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "beefy-primitives", "bitvec", @@ -6562,8 +6854,8 @@ dependencies = [ [[package]] name = "polkadot-test-service" -version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#943038a888bfaf736142642e2610b248f7af486c" +version = "0.9.3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "frame-benchmarking", "frame-system", @@ -6831,9 +7123,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quick-error" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ac73b1112776fc109b2e61909bc46c7e1bf0d7f690ffb1676553acce16d5cda" +checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" [[package]] name = "quicksink" @@ -7171,7 +7463,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "env_logger 0.8.3", "hex-literal 0.3.1", @@ -7246,10 +7538,12 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +version = "0.9.3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "beefy-primitives", + "bp-rococo", + "bp-wococo", "frame-executive", "frame-support", "frame-system", @@ -7261,6 +7555,7 @@ dependencies = [ "pallet-babe", "pallet-balances", "pallet-beefy", + "pallet-bridge-grandpa", "pallet-collective", "pallet-grandpa", "pallet-im-online", @@ -7451,7 +7746,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "async-trait", "derive_more 0.99.13", @@ -7480,7 +7775,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "futures 0.3.14", "futures-timer 3.0.2", @@ -7503,7 +7798,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7519,7 +7814,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7540,7 +7835,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2 1.0.26", @@ -7551,7 +7846,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "chrono", "fdlimit", @@ -7589,7 +7884,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "derive_more 0.99.13", "fnv", @@ -7623,7 +7918,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "blake2-rfc", "hash-db", @@ -7653,7 +7948,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "parking_lot 0.11.1", "sc-client-api", @@ -7662,10 +7957,41 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "sc-consensus-aura" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +dependencies = [ + "async-trait", + "derive_more 0.99.13", + "futures 0.3.14", + "futures-timer 3.0.2", + "log", + "parity-scale-codec", + "sc-block-builder", + "sc-client-api", + "sc-consensus-slots", + "sc-telemetry", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-version", + "substrate-prometheus-endpoint", +] + [[package]] name = "sc-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "async-trait", "derive_more 0.99.13", @@ -7703,7 +8029,6 @@ dependencies = [ "sp-io", "sp-keystore", "sp-runtime", - "sp-timestamp", "sp-utils", "sp-version", "substrate-prometheus-endpoint", @@ -7712,7 +8037,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "derive_more 0.99.13", "futures 0.3.14", @@ -7736,7 +8061,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7749,11 +8074,12 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "async-trait", "futures 0.3.14", "futures-timer 3.0.2", + "impl-trait-for-tuples", "log", "parity-scale-codec", "sc-client-api", @@ -7776,21 +8102,18 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ - "log", "sc-client-api", "sp-authorship", - "sp-consensus", - "sp-core", - "sp-inherents", "sp-runtime", + "thiserror", ] [[package]] name = "sc-executor" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "derive_more 0.99.13", "lazy_static", @@ -7806,7 +8129,6 @@ dependencies = [ "sp-core", "sp-externalities", "sp-io", - "sp-maybe-compressed-blob", "sp-panic-handler", "sp-runtime-interface", "sp-serializer", @@ -7820,7 +8142,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "derive_more 0.99.13", "parity-scale-codec", @@ -7828,6 +8150,7 @@ dependencies = [ "pwasm-utils", "sp-allocator", "sp-core", + "sp-maybe-compressed-blob", "sp-serializer", "sp-wasm-interface", "thiserror", @@ -7837,7 +8160,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "log", "parity-scale-codec", @@ -7852,7 +8175,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "log", "parity-scale-codec", @@ -7870,7 +8193,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "async-trait", "derive_more 0.99.13", @@ -7910,7 +8233,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "derive_more 0.99.13", "finality-grandpa", @@ -7934,7 +8257,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-warp-sync" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "derive_more 0.99.13", "futures 0.3.14", @@ -7955,7 +8278,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "ansi_term 0.12.1", "futures 0.3.14", @@ -7973,7 +8296,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "async-trait", "derive_more 0.99.13", @@ -7993,7 +8316,7 @@ dependencies = [ [[package]] name = "sc-light" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "hash-db", "lazy_static", @@ -8012,7 +8335,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "async-std", "async-trait", @@ -8065,7 +8388,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "futures 0.3.14", "futures-timer 3.0.2", @@ -8082,7 +8405,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "bytes 0.5.6", "fnv", @@ -8110,7 +8433,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "futures 0.3.14", "libp2p", @@ -8123,7 +8446,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8132,7 +8455,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "futures 0.3.14", "hash-db", @@ -8158,6 +8481,7 @@ dependencies = [ "sp-runtime", "sp-session", "sp-state-machine", + "sp-tracing", "sp-transaction-pool", "sp-utils", "sp-version", @@ -8166,7 +8490,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "derive_more 0.99.13", "futures 0.3.14", @@ -8183,6 +8507,7 @@ dependencies = [ "sp-core", "sp-rpc", "sp-runtime", + "sp-tracing", "sp-transaction-pool", "sp-version", ] @@ -8190,7 +8515,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "futures 0.1.31", "jsonrpc-core", @@ -8208,7 +8533,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "async-trait", "directories", @@ -8272,7 +8597,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "log", "parity-scale-codec", @@ -8287,7 +8612,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -8307,7 +8632,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "chrono", "futures 0.3.14", @@ -8327,7 +8652,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "ansi_term 0.12.1", "atty", @@ -8338,23 +8663,33 @@ dependencies = [ "parking_lot 0.11.1", "regex", "rustc-hash", + "sc-client-api", + "sc-rpc-server", + "sc-telemetry", "sc-tracing-proc-macro", "serde", "serde_json", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-core", + "sp-rpc", + "sp-runtime", + "sp-storage", "sp-tracing", "thiserror", "tracing", - "tracing-core", "tracing-log", "tracing-subscriber", "wasm-bindgen", + "wasm-timer", "web-sys", ] [[package]] name = "sc-tracing-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2 1.0.26", @@ -8365,7 +8700,7 @@ dependencies = [ [[package]] name = "sc-transaction-graph" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "derive_more 0.99.13", "futures 0.3.14", @@ -8387,7 +8722,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "futures 0.3.14", "futures-diagnose", @@ -8707,10 +9042,19 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" +[[package]] +name = "slog" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06" +dependencies = [ + "erased-serde", +] + [[package]] name = "slot-range-helper" -version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +version = "0.9.3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "enumn", "parity-scale-codec", @@ -8801,7 +9145,7 @@ dependencies = [ [[package]] name = "sp-allocator" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "log", "sp-core", @@ -8813,7 +9157,7 @@ dependencies = [ [[package]] name = "sp-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "hash-db", "log", @@ -8830,7 +9174,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "blake2-rfc", "proc-macro-crate 1.0.0", @@ -8842,7 +9186,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "parity-scale-codec", "serde", @@ -8854,7 +9198,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "integer-sqrt", "num-traits", @@ -8868,7 +9212,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "parity-scale-codec", "sp-api", @@ -8880,8 +9224,9 @@ dependencies = [ [[package]] name = "sp-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ + "async-trait", "parity-scale-codec", "sp-inherents", "sp-runtime", @@ -8891,7 +9236,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "parity-scale-codec", "sp-api", @@ -8903,7 +9248,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "futures 0.3.14", "log", @@ -8921,7 +9266,7 @@ dependencies = [ [[package]] name = "sp-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "serde", "serde_json", @@ -8930,7 +9275,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "async-trait", "futures 0.3.14", @@ -8954,11 +9299,29 @@ dependencies = [ "wasm-timer", ] +[[package]] +name = "sp-consensus-aura" +version = "0.9.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +dependencies = [ + "async-trait", + "parity-scale-codec", + "sp-api", + "sp-application-crypto", + "sp-consensus", + "sp-consensus-slots", + "sp-inherents", + "sp-runtime", + "sp-std", + "sp-timestamp", +] + [[package]] name = "sp-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ + "async-trait", "merlin", "parity-scale-codec", "serde", @@ -8978,7 +9341,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "parity-scale-codec", "sp-arithmetic", @@ -8988,7 +9351,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -9000,7 +9363,7 @@ dependencies = [ [[package]] name = "sp-core" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "base58", "blake2-rfc", @@ -9044,7 +9407,7 @@ dependencies = [ [[package]] name = "sp-database" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "kvdb", "parking_lot 0.11.1", @@ -9053,7 +9416,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "proc-macro2 1.0.26", "quote 1.0.9", @@ -9063,7 +9426,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "environmental", "parity-scale-codec", @@ -9074,7 +9437,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "finality-grandpa", "log", @@ -9091,11 +9454,13 @@ dependencies = [ [[package]] name = "sp-inherents" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ + "async-trait", + "impl-trait-for-tuples", "parity-scale-codec", - "parking_lot 0.11.1", "sp-core", + "sp-runtime", "sp-std", "thiserror", ] @@ -9103,7 +9468,7 @@ dependencies = [ [[package]] name = "sp-io" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "futures 0.3.14", "hash-db", @@ -9114,6 +9479,7 @@ dependencies = [ "sp-core", "sp-externalities", "sp-keystore", + "sp-maybe-compressed-blob", "sp-runtime-interface", "sp-state-machine", "sp-std", @@ -9127,7 +9493,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "lazy_static", "sp-core", @@ -9138,7 +9504,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "async-trait", "derive_more 0.99.13", @@ -9155,7 +9521,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "ruzstd", "zstd", @@ -9164,7 +9530,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "parity-scale-codec", "serde", @@ -9177,7 +9543,7 @@ dependencies = [ [[package]] name = "sp-npos-elections-compact" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2 1.0.26", @@ -9188,7 +9554,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "sp-api", "sp-core", @@ -9198,7 +9564,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "backtrace", ] @@ -9206,16 +9572,18 @@ dependencies = [ [[package]] name = "sp-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ + "rustc-hash", "serde", "sp-core", + "tracing-core", ] [[package]] name = "sp-runtime" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "either", "hash256-std-hasher", @@ -9236,7 +9604,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9253,7 +9621,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "Inflector", "proc-macro-crate 1.0.0", @@ -9265,7 +9633,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "serde", "serde_json", @@ -9274,7 +9642,7 @@ dependencies = [ [[package]] name = "sp-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "parity-scale-codec", "sp-api", @@ -9287,7 +9655,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -9297,7 +9665,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "hash-db", "log", @@ -9312,6 +9680,7 @@ dependencies = [ "sp-std", "sp-trie", "thiserror", + "tracing", "trie-db", "trie-root", ] @@ -9319,12 +9688,12 @@ dependencies = [ [[package]] name = "sp-std" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" [[package]] name = "sp-storage" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9337,7 +9706,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "log", "sp-core", @@ -9350,23 +9719,32 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ + "async-trait", + "futures-timer 3.0.2", + "log", "parity-scale-codec", "sp-api", "sp-inherents", "sp-runtime", "sp-std", + "thiserror", "wasm-timer", ] [[package]] name = "sp-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ + "erased-serde", "log", "parity-scale-codec", + "parking_lot 0.10.2", + "serde", + "serde_json", + "slog", "sp-std", "tracing", "tracing-core", @@ -9376,7 +9754,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "derive_more 0.99.13", "futures 0.3.14", @@ -9392,7 +9770,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "hash-db", "memory-db", @@ -9406,7 +9784,7 @@ dependencies = [ [[package]] name = "sp-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "futures 0.3.14", "futures-core", @@ -9418,19 +9796,32 @@ dependencies = [ [[package]] name = "sp-version" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "impl-serde", "parity-scale-codec", "serde", "sp-runtime", "sp-std", + "sp-version-proc-macro", +] + +[[package]] +name = "sp-version-proc-macro" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +dependencies = [ + "parity-scale-codec", + "proc-macro-crate 1.0.0", + "proc-macro2 1.0.26", + "quote 1.0.9", + "syn 1.0.69", ] [[package]] name = "sp-wasm-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9589,7 +9980,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "platforms", ] @@ -9597,7 +9988,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.14", @@ -9620,7 +10011,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "async-std", "derive_more 0.99.13", @@ -9634,7 +10025,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "async-trait", "futures 0.1.31", @@ -9669,7 +10060,7 @@ dependencies = [ "ansi_term 0.12.1", "atty", "build-helper", - "cargo_metadata", + "cargo_metadata 0.12.3", "tempfile", "toml", "walkdir", @@ -9679,12 +10070,12 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "ansi_term 0.12.1", "atty", "build-helper", - "cargo_metadata", + "cargo_metadata 0.13.1", "sp-maybe-compressed-blob", "tempfile", "toml", @@ -10330,7 +10721,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate.git?branch=rococo-v1#2be8fcc4236d32786c62f6f27a98e7fe7e550807" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" dependencies = [ "frame-try-runtime", "log", @@ -10973,8 +11364,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +version = "0.9.3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "beefy-primitives", "bitvec", @@ -11016,6 +11407,7 @@ dependencies = [ "pallet-treasury", "pallet-utility", "pallet-vesting", + "pallet-xcm", "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", @@ -11042,6 +11434,9 @@ dependencies = [ "sp-version", "static_assertions", "substrate-wasm-builder 3.0.0", + "xcm", + "xcm-builder", + "xcm-executor", ] [[package]] @@ -11150,8 +11545,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +version = "0.9.3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -11160,12 +11555,13 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +version = "0.9.3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", + "pallet-transaction-payment", "parity-scale-codec", "polkadot-parachain", "sp-arithmetic", @@ -11178,8 +11574,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.8.30" -source = "git+https://github.com/paritytech/polkadot?branch=rococo-v1#127eb17a25bbe2a9f2731ff11a65d7f8170f2373" +version = "0.9.3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" dependencies = [ "frame-support", "impl-trait-for-tuples", diff --git a/README.md b/README.md index b1d8f307..55621936 100644 --- a/README.md +++ b/README.md @@ -27,60 +27,35 @@ build the cargo build --release ``` -## Run A Collator Node - -### Rococo Relay Chain Testnet - ---- -### _IS THIS TEMPLATE ROCOCO COMPATIBLE?_ -> :white_check_mark: **Yes!** :white_check_mark: -> -> As of 5/5/2021 ---- - -Rococo is Parity's official relay chain testnet for connecting cumulus-based parathreads -and parachains. - -**See the [Cumulus Workshop](https://substrate.dev/cumulus-workshop/) for the latest instructions** -**to register a parathread/parachain on Rococo** - -> **IMPORTANT NOTE:** you _must_ use the _same_ commit for cumulus and polkadot `rococo-v1` branch -> to build your parachain against to be compatible!!! You _must_ test locally registering your -> parachain successfully before you attempt to connect to rococo! - -- **[Polkadot `rococo-v1` branch](https://github.com/paritytech/polkadot/tree/rococo-v1)** -- **[Cumulus `rococo-v1` branch](https://github.com/paritytech/cumulus/tree/rococo-v1)** - -This network is under _constant development_ - so expect to need to follow progress and update -your parachains in lock step with the rococo changes if you wish to connect to the network. - -Do join the [rococo matrix chat room](https://matrix.to/#/#rococo:matrix.parity.io) to ask -questions and connect with the rococo teams. +## Connect a Collator Node to a Relay Chain ### Local Relay Chain Testnet -To operate a parathread or parachain, you _must_ connect to a relay chain. +To operate a parathread or parachain, you _must_ connect to a relay chain. You have a few choices, +the most typical for testing is a local development Rococo network, then moving to the live testnet. +**Keep in mind, you need to configure the specific relay chain you will connect to in your** +**collator `chain_spec.rs`**. In the following examples, we will use a `rococo-local` relay network. #### Relay Chain Network (Validators) -Clone and build the Polkadot (**`rococo-v1` branch**): +Clone and build Polkadot (**at the correct commit for your relay chain**): ```bash # Get a fresh clone, or `cd` to where you have polkadot already: -git clone -b rococo-v1 --depth 1 https://github.com:paritytech/polkadot.git +git clone -b --depth 1 https://github.com:paritytech/polkadot.git cd polkadot cargo build --release ``` -##### Generaete the chainspec +##### Generate the chainspec > NOTE: this file _must_ be generated on a _single node_ and then the file shared with all nodes! > Other nodes _cannot_ generate it due to possible non-determinism. ```bash -./target/release/polkadot build-spec\ ---chain rococo-local\ ---raw\ ---disable-default-bootnode\ +./target/release/polkadot build-spec \ +--chain rococo-local \ +--raw \ +--disable-default-bootnode \ > rococo_local.json ``` @@ -92,47 +67,67 @@ collator you intend to connect! From the Polkadot working directory: ```bash # Start Relay `Alice` node -./target/release/polkadot\ ---chain ./rococo_local.json\ --d cumulus_relay/alice\ ---validator\ ---alice\ +./target/release/polkadot \ +--chain ./rococo_local.json \ +-d /tmp/relay/alice \ +--validator \ +--alice \ --port 50555 ``` Open a new terminal, same directory: ```bash -# Start Relay `Alice` node -./target/release/polkadot\ ---chain ./rococo_local.json\ --d cumulus_relay/bob\ ---validator\ ---bob\ +# Start Relay `Bob` node +./target/release/polkadot \ +--chain ./rococo_local.json \ +-d /tmp/relay/bob \ +--validator \ +--bob \ --port 50556 ``` -Add more nodes as needed, with non-conflicting ports, DB directiories, and validator keys +Add more nodes as needed, with non-conflicting ports, DB directories, and validator keys (`--charlie`, `--dave`, etc.). -#### Parachain Nodes (Collators) +##### Reserve a ParaID -From the parachain template working directory: +To connect to a relay chain, you must first _reserve a `ParaId` for your parathread that will +become a parachain. To do this, you _must_ have currency available on an account on that network +in sufficient amount to reserve an ID. This is 20 "units" on the testnets, check for the amount +on your relay chain. The relay chain will increment starting at `2000` for all chains connecting +that are not "systems parachains" that use a different method to obtain a `ParaId`. -```bash -# NOTE: this command assumes the chain spec is in a directory named `polkadot` -# that is at the same level of the template working directory. Change as needed. -./target/release/parachain-collator\ --d cumulus-parachain/alice\ ---collator\ ---alice\ ---ws-port 9945\ ---parachain-id 200\ ---\ ---execution wasm\ ---chain ../polkadot/rococo_local.json +The easiest way to reserve your `ParaId` this is via the +[Polkadot Apps UI](https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944#/parachains/parathreads) +under the Parachains -> Parathreads tab and use the `+ ParaID` button. + +> You will need to connect to a _relay chain node_ to submit this extrinsic! +> In testnets, your ParaId will be 2000 for your first parathread registration. + +In this example flow, we will use the **`Charlie` development account** where we have funds available. +Once you submit this extrinsic successfully, you can start your collators. + +### Parachain Network + +#### Select the Correct Relay Chain + +To operate your parachain, it _must_ connect to the _correct_ relay chain. +**Keep in mind, you need to configure the specific relay chain you will connect to in your** +**collator `chain_spec.rs`**. Specifically you pass the command for the network you need in +the `Extensions` section of your `ChainSpec::from_genesis(` section: + +```rust + Extensions { + relay_chain: "rococo-local".into(), // You MUST set this to the correct network! + para_id: id.into(), + }, ``` -### Registering on Local Relay Chain +> You can choose from any pre-set runtime chain spec in the Polkadot repo looking in the +> `cli/src/command.rs` and `node/service/src/chain_spec.rs` files or generate your own and use +> that. See the [Cumulus Workshop](https://substrate.dev/cumulus-workshop/) for how. + +In the following examples, we use the `rococo-local` relay network we setup in the last section. #### Export the Parachain Genesis and Runtime @@ -143,8 +138,11 @@ you modified the code you can use the following commands: # Build the parachain node (from it's top level dir) cargo build --release +# Place to store files we need +mkdir -p resources + # Build the Chain spec -./target/release/parachain-collator build-spec\ +./target/release/parachain-collator build-spec \ --disable-default-bootnode > ./resources/template-local-plain.json # Build the raw file @@ -152,25 +150,90 @@ cargo build --release --chain=./resources/template-local-plain.json \ --raw --disable-default-bootnode > ./resources/template-local.json - # Export genesis state to `./resources files -./target/release/parachain-collator export-genesis-state --parachain-id 200 > ./resources/para-200-genesis +# Assumes ParaId = 2000 . Change as needed. +./target/release/parachain-collator export-genesis-state --parachain-id 2000 > ./resources/para-2000-genesis # export runtime wasm -./target/release/parachain-collator export-genesis-wasm > ./resources/para-200-wasm +./target/release/parachain-collator export-genesis-wasm > ./resources/para-2000-wasm ``` -> Note: we have set the `para_ID = 200` here, this _must_ be unique for all parathreads/chains on the -> relay chain you register with. +> Note: we have set the `para_ID = 2000` here, this _must_ be unique for all parathreads/chains on the +> relay chain you register with. You _must_ reserve this first on the relay chain! + +#### Start Parachain Nodes (Collators) + +From the parachain template working directory: + +```bash +# NOTE: this command assumes the chain spec is in a directory named `polkadot` +# that is at the same level of the template working directory. Change as needed. +# +# It also assumes a ParaId oof 2000. Change as needed. +./target/release/parachain-collator \ +-d /tmp/parachain/alice \ +--collator \ +--alice \ +--force-authoring \ +--ws-port 9945 \ +--parachain-id 2000 \ +-- \ +--execution wasm \ +--chain ../polkadot/rococo_local.json +``` + +_Output:_ +```bash +2021-05-30 16:57:39 Parachain Collator Template +2021-05-30 16:57:39 ✌️ version 3.0.0-acce183-x86_64-linux-gnu +2021-05-30 16:57:39 ❤️ by Anonymous, 2017-2021 +2021-05-30 16:57:39 📋 Chain specification: Local Testnet +2021-05-30 16:57:39 🏷 Node name: Alice +2021-05-30 16:57:39 👤 Role: AUTHORITY +2021-05-30 16:57:39 💾 Database: RocksDb at /tmp/parachain/alice/chains/local_testnet/db +2021-05-30 16:57:39 ⛓ Native runtime: template-parachain-1 (template-parachain-0.tx1.au1) +2021-05-30 16:57:41 Parachain id: Id(2000) +2021-05-30 16:57:41 Parachain Account: 5Ec4AhPUwPeyTFyuhGuBbD224mY85LKLMSqSSo33JYWCazU4 +2021-05-30 16:57:41 Parachain genesis state: 0x0000000000000000000000000000000000000000000000000000000000000000000a96f42b5cb798190e5f679bb16970905087a9a9fc612fb5ca6b982b85783c0d03170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c11131400 +2021-05-30 16:57:41 Is collating: yes +2021-05-30 16:57:41 [Parachain] 🔨 Initializing Genesis block/state (state: 0x0a96…3c0d, header-hash: 0xd42b…f271) +2021-05-30 16:57:41 [Parachain] ⏱ Loaded block-time = 12s from block 0xd42bb78354bc21770e3f0930ed45c7377558d2d8e81ca4d457e573128aabf271 +2021-05-30 16:57:43 [Relaychain] 🔨 Initializing Genesis block/state (state: 0xace1…1b62, header-hash: 0xfa68…cf58) +2021-05-30 16:57:43 [Relaychain] 👴 Loading GRANDPA authority set from genesis on what appears to be first startup. +2021-05-30 16:57:44 [Relaychain] ⏱ Loaded block-time = 6s from block 0xfa68f5abd2a80394b87c9bd07e0f4eee781b8c696d0a22c8e5ba38ae10e1cf58 +2021-05-30 16:57:44 [Relaychain] 👶 Creating empty BABE epoch changes on what appears to be first startup. +2021-05-30 16:57:44 [Relaychain] 🏷 Local node identity is: 12D3KooWBjYK2W4dsBfsrFA9tZCStb5ogPb6STQqi2AK9awXfXyG +2021-05-30 16:57:44 [Relaychain] 📦 Highest known block at #0 +2021-05-30 16:57:44 [Relaychain] 〽️ Prometheus server started at 127.0.0.1:9616 +2021-05-30 16:57:44 [Relaychain] Listening for new connections on 127.0.0.1:9945. +2021-05-30 16:57:44 [Parachain] Using default protocol ID "sup" because none is configured in the chain specs +2021-05-30 16:57:44 [Parachain] 🏷 Local node identity is: 12D3KooWADBSC58of6ng2M29YTDkmWCGehHoUZhsy9LGkHgYscBw +2021-05-30 16:57:44 [Parachain] 📦 Highest known block at #0 +2021-05-30 16:57:44 [Parachain] Unable to listen on 127.0.0.1:9945 +2021-05-30 16:57:44 [Parachain] Unable to bind RPC server to 127.0.0.1:9945. Trying random port. +2021-05-30 16:57:44 [Parachain] Listening for new connections on 127.0.0.1:45141. +2021-05-30 16:57:45 [Relaychain] 🔍 Discovered new external address for our node: /ip4/192.168.42.204/tcp/30334/ws/p2p/12D3KooWBjYK2W4dsBfsrFA9tZCStb5ogPb6STQqi2AK9awXfXyG +2021-05-30 16:57:45 [Parachain] 🔍 Discovered new external address for our node: /ip4/192.168.42.204/tcp/30333/p2p/12D3KooWADBSC58of6ng2M29YTDkmWCGehHoUZhsy9LGkHgYscBw +2021-05-30 16:57:48 [Relaychain] ✨ Imported #8 (0xe60b…9b0a) +2021-05-30 16:57:49 [Relaychain] 💤 Idle (2 peers), best: #8 (0xe60b…9b0a), finalized #5 (0x1e6f…567c), ⬇ 4.5kiB/s ⬆ 2.2kiB/s +2021-05-30 16:57:49 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 2.0kiB/s ⬆ 1.7kiB/s +2021-05-30 16:57:54 [Relaychain] ✨ Imported #9 (0x1af9…c9be) +2021-05-30 16:57:54 [Relaychain] ✨ Imported #9 (0x6ed8…fdf6) +2021-05-30 16:57:54 [Relaychain] 💤 Idle (2 peers), best: #9 (0x1af9…c9be), finalized #6 (0x3319…69a2), ⬇ 1.8kiB/s ⬆ 0.5kiB/s +2021-05-30 16:57:54 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 0.2kiB/s ⬆ 0.2kiB/s +2021-05-30 16:57:59 [Relaychain] 💤 Idle (2 peers), best: #9 (0x1af9…c9be), finalized #7 (0x5b50…1e5b), ⬇ 0.6kiB/s ⬆ 0.4kiB/s +2021-05-30 16:57:59 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 +2021-05-30 16:58:00 [Relaychain] ✨ Imported #10 (0xc9c9…1ca3) +``` #### Register on the Relay with `sudo` -In order to produce blocks you will need to register the parachain as detailed in the +In order to produce parachain blocks you will need to register the parachain as detailed in the [Substrate Cumulus Worship](https://substrate.dev/cumulus-workshop/#/en/3-parachains/2-register) by going to: `Developer -> sudo -> paraSudoWrapper -> sudoScheduleParaInitialize(id, genesis)` -Ensure you set the `ParaId to 200` and the `parachain: Bool to Yes`. +Ensure you set the `ParaId to 2000` and the `parachain: Bool to Yes`. The files you will need are in the `./resources` folder, you just created. @@ -180,28 +243,94 @@ The files you will need are in the `./resources` folder, you just created. #### Restart the Parachain (Collator) and Wait... The collator node may need to be restarted to get it functioning as expected. After a -[new era](https://wiki.polkadot.network/docs/en/glossary#era) starts on the relay chain, +[new epoch](https://wiki.polkadot.network/docs/en/glossary#epoch) starts on the relay chain, your parachain will come online. Once this happens, you should see the collator start reporting _parachian_ blocks: ```bash -2021-04-01 16:31:06 [Relaychain] ✨ Imported #243 (0x46d8…f394) -2021-04-01 16:31:06 [Relaychain] 👴 Applying authority set change scheduled at block #191 -2021-04-01 16:31:06 [Relaychain] 👴 Applying GRANDPA set change to new set [(Public(88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee (5FA9nQDV...)), 1), (Public(d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69 (5GoNkf6W...)), 1)] -2021-04-01 16:31:06 [Relaychain] 👴 Imported justification for block #191 that triggers command Changing authorities, signaling voter. -2021-04-01 16:31:06 [Parachain] Starting collation. relay_parent=0x46d87d4b55ffcd2d2dde3ee2459524c41da48ac970fb1448feaa26777b14f394 at=0x85c655663ad333b1508d0e4a373e86c08eb5b5353a3eef532a572af6395c45be -2021-04-01 16:31:06 [Parachain] 🙌 Starting consensus session on top of parent 0x85c655663ad333b1508d0e4a373e86c08eb5b5353a3eef532a572af6395c45be -2021-04-01 16:31:06 [Parachain] 🎁 Prepared block for proposing at 91 [hash: 0x078560513ac1862fed0caf5726b7ca024c2af6a28861c6c69776b61fcf5d3e1f; parent_hash: 0x85c6…45be; extrinsics (2): [0x8909…1c6c, 0x12ac…5583]] -2021-04-01 16:31:06 [Parachain] Produced proof-of-validity candidate. pov_hash=0x836cd0d72bf587343cdd5d4f8631ceb9b863faaa5e878498f833c7f656d05f71 block_hash=0x078560513ac1862fed0caf5726b7ca024c2af6a28861c6c69776b61fcf5d3e1f -2021-04-01 16:31:06 [Parachain] ✨ Imported #91 (0x0785…3e1f) -2021-04-01 16:31:09 [Relaychain] 💤 Idle (2 peers), best: #243 (0x46d8…f394), finalized #192 (0x9fb4…4b28), ⬇ 1.0kiB/s ⬆ 3.2kiB/s -2021-04-01 16:31:09 [Parachain] 💤 Idle (0 peers), best: #90 (0x85c6…45be), finalized #64 (0x10af…4ede), ⬇ 1.1kiB/s ⬆ 1.0kiB/s -2021-04-01 16:31:12 [Relaychain] ✨ Imported #244 (0xe861…d99d) -2021-04-01 16:31:14 [Relaychain] 💤 Idle (2 peers), best: #244 (0xe861…d99d), finalized #193 (0x9225…85f1), ⬇ 2.0kiB/s ⬆ 1.6kiB/s -2021-04-01 16:31:14 [Parachain] 💤 Idle (0 peers), best: #90 (0x85c6…45be), finalized #65 (0xdd20…d44a), ⬇ 1.6kiB/s ⬆ 1.4kiB/s +# Notice the relay epoch change! Only then do we start parachain collating! +# +2021-05-30 17:00:04 [Relaychain] 💤 Idle (2 peers), best: #30 (0xfc02…2a2a), finalized #28 (0x10ff…6539), ⬇ 1.0kiB/s ⬆ 0.3kiB/s +2021-05-30 17:00:04 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 +2021-05-30 17:00:06 [Relaychain] 👶 New epoch 3 launching at block 0x68bc…0605 (block slot 270402601 >= start slot 270402601). +2021-05-30 17:00:06 [Relaychain] 👶 Next epoch starts at slot 270402611 +2021-05-30 17:00:06 [Relaychain] ✨ Imported #31 (0x68bc…0605) +2021-05-30 17:00:06 [Parachain] Starting collation. relay_parent=0x68bcc93d24a31a2c89800a56c7a2b275fe9ca7bd63f829b64588ae0d99280605 at=0xd42bb78354bc21770e3f0930ed45c7377558d2d8e81ca4d457e573128aabf271 +2021-05-30 17:00:06 [Parachain] 🙌 Starting consensus session on top of parent 0xd42bb78354bc21770e3f0930ed45c7377558d2d8e81ca4d457e573128aabf271 +2021-05-30 17:00:06 [Parachain] 🎁 Prepared block for proposing at 1 [hash: 0xf6507812bf60bf53af1311f775aac03869be870df6b0406b2969784d0935cb92; parent_hash: 0xd42b…f271; extrinsics (2): [0x1bf5…1d76, 0x7c9b…4e23]] +2021-05-30 17:00:06 [Parachain] 🔖 Pre-sealed block for proposal at 1. Hash now 0x80fc151d7ccf228b802525022b6de257e42388ec7dc3c1dd7de491313650ccae, previously 0xf6507812bf60bf53af1311f775aac03869be870df6b0406b2969784d0935cb92. +2021-05-30 17:00:06 [Parachain] ✨ Imported #1 (0x80fc…ccae) +2021-05-30 17:00:06 [Parachain] Produced proof-of-validity candidate. block_hash=0x80fc151d7ccf228b802525022b6de257e42388ec7dc3c1dd7de491313650ccae +2021-05-30 17:00:09 [Relaychain] 💤 Idle (2 peers), best: #31 (0x68bc…0605), finalized #29 (0xa6fa…9e16), ⬇ 1.2kiB/s ⬆ 129.9kiB/s +2021-05-30 17:00:09 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 +2021-05-30 17:00:12 [Relaychain] ✨ Imported #32 (0x5e92…ba30) +2021-05-30 17:00:12 [Relaychain] Moving approval window from session 0..=2 to 0..=3 +2021-05-30 17:00:12 [Relaychain] ✨ Imported #32 (0x8144…74eb) +2021-05-30 17:00:14 [Relaychain] 💤 Idle (2 peers), best: #32 (0x5e92…ba30), finalized #29 (0xa6fa…9e16), ⬇ 1.4kiB/s ⬆ 0.2kiB/s +2021-05-30 17:00:14 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 +2021-05-30 17:00:18 [Relaychain] ✨ Imported #33 (0x8c30…9ccd) +2021-05-30 17:00:18 [Parachain] Starting collation. relay_parent=0x8c30ce9e6e9867824eb2aff40148ac1ed64cf464f51c5f2574013b44b20f9ccd at=0x80fc151d7ccf228b802525022b6de257e42388ec7dc3c1dd7de491313650ccae +2021-05-30 17:00:19 [Relaychain] 💤 Idle (2 peers), best: #33 (0x8c30…9ccd), finalized #30 (0xfc02…2a2a), ⬇ 0.7kiB/s ⬆ 0.4kiB/s +2021-05-30 17:00:19 [Parachain] 💤 Idle (0 peers), best: #1 (0x80fc…ccae), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 +2021-05-30 17:00:22 [Relaychain] 👴 Applying authority set change scheduled at block #31 +2021-05-30 17:00:22 [Relaychain] 👴 Applying GRANDPA set change to new set [(Public(88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee (5FA9nQDV...)), 1), (Public(d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69 (5GoNkf6W...)), 1)] +2021-05-30 17:00:22 [Relaychain] 👴 Imported justification for block #31 that triggers command Changing authorities, signaling voter. +2021-05-30 17:00:24 [Relaychain] ✨ Imported #34 (0x211b…febf) +2021-05-30 17:00:24 [Parachain] Starting collation. relay_parent=0x211b3c53bebeff8af05e8f283d59fe171b7f91a5bf9c4669d88943f5a42bfebf at=0x80fc151d7ccf228b802525022b6de257e42388ec7dc3c1dd7de491313650ccae +2021-05-30 17:00:24 [Parachain] 🙌 Starting consensus session on top of parent 0x80fc151d7ccf228b802525022b6de257e42388ec7dc3c1dd7de491313650ccae +2021-05-30 17:00:24 [Parachain] 🎁 Prepared block for proposing at 2 [hash: 0x10fcb3180e966729c842d1b0c4d8d2c4028cfa8bef02b909af5ef787e6a6a694; parent_hash: 0x80fc…ccae; extrinsics (2): [0x4a6c…1fc6, 0x6b84…7cea]] +2021-05-30 17:00:24 [Parachain] 🔖 Pre-sealed block for proposal at 2. Hash now 0x5087fd06b1b73d90cfc3ad175df8495b378fffbb02fea212cc9e49a00fd8b5a0, previously 0x10fcb3180e966729c842d1b0c4d8d2c4028cfa8bef02b909af5ef787e6a6a694. +2021-05-30 17:00:24 [Parachain] ✨ Imported #2 (0x5087…b5a0) +2021-05-30 17:00:24 [Parachain] Produced proof-of-validity candidate. block_hash=0x5087fd06b1b73d90cfc3ad175df8495b378fffbb02fea212cc9e49a00fd8b5a0 +2021-05-30 17:00:24 [Relaychain] 💤 Idle (2 peers), best: #34 (0x211b…febf), finalized #31 (0x68bc…0605), ⬇ 1.0kiB/s ⬆ 130.1kiB/s +2021-05-30 17:00:24 [Parachain] 💤 Idle (0 peers), best: #1 (0x80fc…ccae), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 +2021-05-30 17:00:29 [Relaychain] 💤 Idle (2 peers), best: #34 (0x211b…febf), finalized #32 (0x5e92…ba30), ⬇ 0.2kiB/s ⬆ 0.1kiB/s +2021-05-30 17:00:29 [Parachain] 💤 Idle (0 peers), best: #1 (0x80fc…ccae), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 +2021-05-30 17:00:30 [Relaychain] ✨ Imported #35 (0xee07…38a0) +2021-05-30 17:00:34 [Relaychain] 💤 Idle (2 peers), best: #35 (0xee07…38a0), finalized #33 (0x8c30…9ccd), ⬇ 0.9kiB/s ⬆ 0.3kiB/s +2021-05-30 17:00:34 [Parachain] 💤 Idle (0 peers), best: #1 (0x80fc…ccae), finalized #1 (0x80fc…ccae), ⬇ 0 ⬆ 0 +2021-05-30 17:00:36 [Relaychain] ✨ Imported #36 (0xe8ce…4af6) +2021-05-30 17:00:36 [Parachain] Starting collation. relay_parent=0xe8cec8015c0c7bf508bf3f2f82b1696e9cca078e814b0f6671f0b0d5dfe84af6 at=0x5087fd06b1b73d90cfc3ad175df8495b378fffbb02fea212cc9e49a00fd8b5a0 +2021-05-30 17:00:39 [Relaychain] 💤 Idle (2 peers), best: #36 (0xe8ce…4af6), finalized #33 (0x8c30…9ccd), ⬇ 0.6kiB/s ⬆ 0.1kiB/s +2021-05-30 17:00:39 [Parachain] 💤 Idle (0 peers), best: #2 (0x5087…b5a0), finalized #1 (0x80fc…ccae), ⬇ 0 ⬆ 0 ``` -> Note the delay here! It may take some time for your relaychain to enter a new era. +> Note the delay here! It may take some time for your relaychain to enter a new epoch. + +### Rococo & Westend Testnet Relay Chains + +--- + +> _IS THIS TEMPLATE ROCOCO & WESTEND COMPATIBLE?_ +> +> **Yes!** +> +> As of 30/05/2021 for Polkadot runtimes v0.9.3 + +--- + +**See the [Cumulus Workshop](https://substrate.dev/cumulus-workshop/) for the latest instructions** +**to register a parathread/parachain on a relay chain** + +> **IMPORTANT NOTE:** you _must_ use the _same_ commit for cumulus and polkadot the present runtime +> for the network you are connecting to uses to be compatible!!! +> You _must_ test locally registering your parachain successfully before you attempt to connect to +> any running relay chain network! + +Find `Chain spec` files to connect to live networks [here](https://github.com/paritytech/polkadot/tree/master/node/service/res). +You want to be sure to use the correct git release tag in these files, as they change from time +to time and _must_ match the live network! + +- **Rococo** is generally more unstable getting tests incorporated first, and reset often! + - Join in the [Rococo Faucet](https://matrix.to/#/#rococo-faucet:matrix.org) to get some funds. +- **Westend** is more stable, and is not reset except when absolutely needed. + - Join in the [Westend Faucet](https://matrix.to/#/#westend_faucet:matrix.org) to get some funds. + +These networks are under _constant development_ - so expect to need to follow progress and update +your parachains in lock step with the testnet changes if you wish to connect to the network. + +Do join the [rococo matrix chat room](https://matrix.to/#/#rococo:matrix.parity.io) to ask +questions and connect with the parachain building teams. ## Learn More diff --git a/node/Cargo.toml b/node/Cargo.toml index 8c7a1b2f..e76a3e28 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -1,222 +1,94 @@ -[dependencies] -derive_more = '0.15.0' -log = "0.4.13" -codec = { package = 'parity-scale-codec', version = '2.0.0' } -structopt = "0.3.8" -serde = { version = "1.0.119", features = ["derive"] } -hex-literal = "0.2.1" -# RPC related dependencies -jsonrpc-core = "15.1.0" - -[dependencies.frame-benchmarking] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.frame-benchmarking-cli] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.parachain-runtime] -path = '../runtime' -version = '2.0.0' - -[dependencies.pallet-transaction-payment-rpc] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sc-basic-authorship] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '0.9.0' - -[dependencies.sc-chain-spec] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sc-cli] -features = ['wasmtime'] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '0.9.0' - -[dependencies.sc-client-api] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sc-consensus] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '0.9.0' - -[dependencies.sc-executor] -features = ['wasmtime'] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '0.9.0' - -[dependencies.sc-keystore] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sc-rpc] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sc-rpc-api] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '0.9.0' - -[dependencies.sc-service] -features = ['wasmtime'] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '0.9.0' - -[dependencies.sc-telemetry] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sc-transaction-pool] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sc-tracing] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sp-api] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sp-block-builder] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sp-blockchain] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sp-consensus] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '0.9.0' - -[dependencies.sp-core] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sp-inherents] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sp-runtime] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sp-timestamp] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sp-transaction-pool] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sp-trie] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.substrate-frame-rpc-system] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[build-dependencies.substrate-build-script-utils] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -# Cumulus dependencies -[dependencies.cumulus-client-consensus-relay-chain] -git = 'https://github.com/paritytech/cumulus.git' -branch = 'rococo-v1' - -[dependencies.cumulus-client-collator] -git = 'https://github.com/paritytech/cumulus.git' -branch = 'rococo-v1' - -[dependencies.cumulus-client-cli] -git = 'https://github.com/paritytech/cumulus.git' -branch = 'rococo-v1' - -[dependencies.cumulus-client-network] -git = 'https://github.com/paritytech/cumulus.git' -branch = 'rococo-v1' - -[dependencies.cumulus-primitives-core] -git = 'https://github.com/paritytech/cumulus.git' -branch = 'rococo-v1' - -[dependencies.cumulus-client-service] -git = 'https://github.com/paritytech/cumulus.git' -branch = 'rococo-v1' - -# Polkadot dependencies -[dependencies.polkadot-primitives] -git = "https://github.com/paritytech/polkadot" -branch = 'rococo-v1' - -[dependencies.polkadot-service] -git = "https://github.com/paritytech/polkadot" -branch = 'rococo-v1' - -[dependencies.polkadot-cli] -git = "https://github.com/paritytech/polkadot" -branch = 'rococo-v1' - -[dependencies.polkadot-test-service] -git = "https://github.com/paritytech/polkadot" -branch = 'rococo-v1' - -[dependencies.polkadot-parachain] -git = "https://github.com/paritytech/polkadot" -branch = 'rococo-v1' - -[[bin]] -name = 'parachain-collator' - [package] +name = 'parachain-collator' authors = ['Anonymous'] -build = 'build.rs' description = 'A new Cumulus FRAME-based Substrate node, ready for hacking.' -edition = '2018' -homepage = 'https://substrate.dev' license = 'Unlicense' -name = 'parachain-collator' +version = '3.0.0' +homepage = 'https://substrate.dev' repository = 'https://github.com/substrate-developer-hub/substrate-parachain-template' -version = '2.0.0' +edition = '2018' +build = 'build.rs' + [package.metadata.docs.rs] targets = ['x86_64-unknown-linux-gnu'] +[build-dependencies] +substrate-build-script-utils = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } + +[[bin]] +name = 'parachain-collator' + [features] default = [] runtime-benchmarks = ['parachain-runtime/runtime-benchmarks'] + +[dependencies] +derive_more = '0.15.0' +log = '0.4.14' +codec = { package = 'parity-scale-codec', version = '2.0.0' } +structopt = '0.3.8' +serde = { version = '1.0.119', features = ['derive'] } +hex-literal = '0.2.1' + +# RPC related Dependencies +jsonrpc-core = '15.1.0' + +# Local Dependencies +parachain-runtime = { path = '../runtime' } + +# Substrate Dependencies +frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +frame-benchmarking-cli = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } + +pallet-transaction-payment-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } + +substrate-frame-rpc-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.3" } + +## Substrate Client Dependencies +sc-basic-authorship = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sc-chain-spec = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sc-cli = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sc-client-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sc-consensus = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sc-executor = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sc-network = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sc-keystore = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sc-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sc-rpc-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sc-service = { git = 'https://github.com/paritytech/substrate', branch = "polkadot-v0.9.3", version = '0.9.0', features = ['wasmtime'] } +sc-telemetry = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sc-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sc-tracing = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } + +## Substrate Primitive Dependencies +sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sp-blockchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sp-consensus = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sp-keystore = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sp-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } + +# Cumulus dependencies +cumulus-client-consensus-aura = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3' } +cumulus-client-consensus-common = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3' } +cumulus-client-collator = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3' } +cumulus-client-cli = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3' } +cumulus-client-network = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3' } +cumulus-client-service = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3' } +cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3' } +cumulus-primitives-parachain-inherent = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3' } + +# Polkadot dependencies +polkadot-primitives = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.3'} +polkadot-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.3'} +polkadot-cli = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.3'} +polkadot-test-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.3'} +polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.3'} diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index 04fae740..bca7c27c 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -1,5 +1,5 @@ use cumulus_primitives_core::ParaId; -use parachain_runtime::{AccountId, Signature}; +use parachain_runtime::{AccountId, AuraId, Signature}; use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup}; use sc_service::ChainType; use serde::{Deserialize, Serialize}; @@ -53,6 +53,10 @@ pub fn development_config(id: ParaId) -> ChainSpec { move || { testnet_genesis( get_account_id_from_seed::("Alice"), + vec![ + get_from_seed::("Alice"), + get_from_seed::("Bob"), + ], vec![ get_account_id_from_seed::("Alice"), get_account_id_from_seed::("Bob"), @@ -67,7 +71,7 @@ pub fn development_config(id: ParaId) -> ChainSpec { None, None, Extensions { - relay_chain: "rococo-dev".into(), + relay_chain: "rococo-local".into(), // You MUST set this to the correct network! para_id: id.into(), }, ) @@ -83,6 +87,10 @@ pub fn local_testnet_config(id: ParaId) -> ChainSpec { move || { testnet_genesis( get_account_id_from_seed::("Alice"), + vec![ + get_from_seed::("Alice"), + get_from_seed::("Bob"), + ], vec![ get_account_id_from_seed::("Alice"), get_account_id_from_seed::("Bob"), @@ -100,12 +108,12 @@ pub fn local_testnet_config(id: ParaId) -> ChainSpec { id, ) }, - vec![], + Vec::new(), None, None, None, Extensions { - relay_chain: "rococo-local".into(), + relay_chain: "rococo-local".into(), // You MUST set this to the correct network! para_id: id.into(), }, ) @@ -113,6 +121,7 @@ pub fn local_testnet_config(id: ParaId) -> ChainSpec { fn testnet_genesis( root_key: AccountId, + initial_authorities: Vec, endowed_accounts: Vec, id: ParaId, ) -> parachain_runtime::GenesisConfig { @@ -132,5 +141,9 @@ fn testnet_genesis( }, pallet_sudo: parachain_runtime::SudoConfig { key: root_key }, parachain_info: parachain_runtime::ParachainInfoConfig { parachain_id: id }, + pallet_aura: parachain_runtime::AuraConfig { + authorities: initial_authorities, + }, + cumulus_pallet_aura_ext: Default::default(), } -} +} \ No newline at end of file diff --git a/node/src/cli.rs b/node/src/cli.rs index e350e4c9..365a19bf 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -1,5 +1,6 @@ use crate::chain_spec; use sc_cli; +use cumulus_client_cli; use std::path::PathBuf; use structopt::StructOpt; @@ -34,6 +35,10 @@ pub enum Subcommand { /// Revert the chain to a previous state. Revert(sc_cli::RevertCmd), + + /// The custom benchmark subcommmand benchmarking runtime pallets. + #[structopt(name = "benchmark", about = "Benchmark runtime pallets.")] + Benchmark(frame_benchmarking_cli::BenchmarkCmd), } /// Command for exporting the genesis state of the parachain @@ -74,24 +79,6 @@ pub struct ExportGenesisWasmCommand { pub chain: Option, } -#[derive(Debug, StructOpt)] -pub struct RunCmd { - #[structopt(flatten)] - pub base: sc_cli::RunCmd, - - /// Id of the parachain this collator collates for. - #[structopt(long)] - pub parachain_id: Option, -} - -impl std::ops::Deref for RunCmd { - type Target = sc_cli::RunCmd; - - fn deref(&self) -> &Self::Target { - &self.base - } -} - #[derive(Debug, StructOpt)] #[structopt(settings = &[ structopt::clap::AppSettings::GlobalVersion, @@ -103,13 +90,7 @@ pub struct Cli { pub subcommand: Option, #[structopt(flatten)] - pub run: RunCmd, - - /// Run node as collator. - /// - /// Note that this is the same as running with `--validator`. - #[structopt(long, conflicts_with = "validator")] - pub collator: bool, + pub run: cumulus_client_cli::RunCmd, /// Relaychain arguments #[structopt(raw = true)] diff --git a/node/src/command.rs b/node/src/command.rs index e2abd9f2..30c4dc0e 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -1,20 +1,20 @@ use crate::{ chain_spec, cli::{Cli, RelayChainCli, Subcommand}, + service::{new_partial, ParachainRuntimeExecutor} }; use codec::Encode; use cumulus_primitives_core::ParaId; use cumulus_client_service::genesis::generate_genesis_block; use log::info; -use parachain_runtime::Block; +use parachain_runtime::{RuntimeApi, Block}; use polkadot_parachain::primitives::AccountIdConversion; use sc_cli::{ ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli, }; use sc_service::{ - config::{BasePath, PrometheusConfig}, - PartialComponents, + config::{BasePath, PrometheusConfig} }; use sp_core::hexdisplay::HexDisplay; use sp_runtime::traits::Block as BlockT; @@ -86,7 +86,7 @@ impl SubstrateCli for RelayChainCli { "Parachain Collator Template\n\nThe command-line arguments provided first will be \ passed to the parachain node, while the arguments provided after -- will be passed \ to the relaychain node.\n\n\ - rococo-collator [parachain-args] -- [relaychain-args]" + parachain-collator [parachain-args] -- [relaychain-args]" .into() } @@ -121,6 +121,24 @@ fn extract_genesis_wasm(chain_spec: &Box) -> Result {{ + let runner = $cli.create_runner($cmd)?; + runner.async_run(|$config| { + let $components = new_partial::< + RuntimeApi, + ParachainRuntimeExecutor, + _ + >( + &$config, + crate::service::parachain_build_import_queue, + )?; + let task_manager = $components.task_manager; + { $( $code )* }.map(|v| (v, task_manager)) + }) + }} +} + /// Parse command line arguments into service configuration. pub fn run() -> Result<()> { let cli = Cli::from_args(); @@ -131,49 +149,23 @@ pub fn run() -> Result<()> { runner.sync_run(|config| cmd.run(config.chain_spec, config.network)) } Some(Subcommand::CheckBlock(cmd)) => { - let runner = cli.create_runner(cmd)?; - runner.async_run(|config| { - let PartialComponents { - client, - task_manager, - import_queue, - .. - } = crate::service::new_partial(&config)?; - Ok((cmd.run(client, import_queue), task_manager)) + construct_async_run!(|components, cli, cmd, config| { + Ok(cmd.run(components.client, components.import_queue)) }) } Some(Subcommand::ExportBlocks(cmd)) => { - let runner = cli.create_runner(cmd)?; - runner.async_run(|config| { - let PartialComponents { - client, - task_manager, - .. - } = crate::service::new_partial(&config)?; - Ok((cmd.run(client, config.database), task_manager)) + construct_async_run!(|components, cli, cmd, config| { + Ok(cmd.run(components.client, config.database)) }) } Some(Subcommand::ExportState(cmd)) => { - let runner = cli.create_runner(cmd)?; - runner.async_run(|config| { - let PartialComponents { - client, - task_manager, - .. - } = crate::service::new_partial(&config)?; - Ok((cmd.run(client, config.chain_spec), task_manager)) + construct_async_run!(|components, cli, cmd, config| { + Ok(cmd.run(components.client, config.chain_spec)) }) } Some(Subcommand::ImportBlocks(cmd)) => { - let runner = cli.create_runner(cmd)?; - runner.async_run(|config| { - let PartialComponents { - client, - task_manager, - import_queue, - .. - } = crate::service::new_partial(&config)?; - Ok((cmd.run(client, import_queue), task_manager)) + construct_async_run!(|components, cli, cmd, config| { + Ok(cmd.run(components.client, components.import_queue)) }) } Some(Subcommand::PurgeChain(cmd)) => { @@ -197,18 +189,9 @@ pub fn run() -> Result<()> { cmd.run(config, polkadot_config) }) } - Some(Subcommand::Revert(cmd)) => { - let runner = cli.create_runner(cmd)?; - runner.async_run(|config| { - let PartialComponents { - client, - task_manager, - backend, - .. - } = crate::service::new_partial(&config)?; - Ok((cmd.run(client, backend), task_manager)) - }) - } + Some(Subcommand::Revert(cmd)) => construct_async_run!(|components, cli, cmd, config| { + Ok(cmd.run(components.client, components.backend)) + }), Some(Subcommand::ExportGenesisState(params)) => { let mut builder = sc_cli::LoggerBuilder::new(""); builder.with_profiling(sc_tracing::TracingReceiver::Log, ""); @@ -253,9 +236,19 @@ pub fn run() -> Result<()> { } Ok(()) - } + }, + Some(Subcommand::Benchmark(cmd)) => { + if cfg!(feature = "runtime-benchmarks") { + let runner = cli.create_runner(cmd)?; + + runner.sync_run(|config| cmd.run::(config)) + } else { + Err("Benchmarking wasn't enabled when building the node. \ + You can enable it with `--features runtime-benchmarks`.".into()) + } + }, None => { - let runner = cli.create_runner(&*cli.run)?; + let runner = cli.create_runner(&cli.run.normalize())?; runner.run_node_until_exit(|config| async move { // TODO @@ -287,14 +280,20 @@ pub fn run() -> Result<()> { task_executor, ) .map_err(|err| format!("Relay chain argument error: {}", err))?; - let collator = cli.run.base.validator || cli.collator; info!("Parachain id: {:?}", id); info!("Parachain Account: {}", parachain_account); info!("Parachain genesis state: {}", genesis_state); - info!("Is collating: {}", if collator { "yes" } else { "no" }); + info!( + "Is collating: {}", + if config.role.is_authority() { + "yes" + } else { + "no" + } + ); - crate::service::start_node(config, key, polkadot_config, id, collator) + crate::service::start_node(config, key, polkadot_config, id) .await .map(|r| r.0) .map_err(Into::into) diff --git a/node/src/service.rs b/node/src/service.rs index 395165d9..6366a9c1 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -1,47 +1,93 @@ -use cumulus_client_consensus_relay_chain::{ - build_relay_chain_consensus, BuildRelayChainConsensusParams, +// std +use std::sync::Arc; + +// Local Runtime Types +use parachain_runtime::RuntimeApi; + +// Cumulus Imports +use cumulus_client_consensus_aura::{ + build_aura_consensus, BuildAuraConsensusParams, SlotProportion, }; +use cumulus_client_consensus_common::ParachainConsensus; use cumulus_client_network::build_block_announce_validator; use cumulus_client_service::{ prepare_node_config, start_collator, start_full_node, StartCollatorParams, StartFullNodeParams, }; use cumulus_primitives_core::ParaId; -use polkadot_primitives::v0::CollatorPair; -use parachain_runtime::{RuntimeApi, opaque::Block}; -use sc_executor::native_executor_instance; + +// Polkadot Imports +use polkadot_primitives::v1::CollatorPair; + +// Substrate Imports +use sc_client_api::ExecutorProvider; pub use sc_executor::NativeExecutor; +use sc_executor::native_executor_instance; +use sc_network::NetworkService; use sc_service::{Configuration, PartialComponents, Role, TFullBackend, TFullClient, TaskManager}; -use sc_telemetry::{Telemetry, TelemetryWorker, TelemetryWorkerHandle}; +use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; +use sp_api::ConstructRuntimeApi; +use sp_consensus::SlotData; +use sp_keystore::SyncCryptoStorePtr; use sp_runtime::traits::BlakeTwo256; -use sp_trie::PrefixedMemoryDB; -use std::sync::Arc; +use substrate_prometheus_endpoint::Registry; + +// Runtime type overrides +type BlockNumber = u32; +type Header = sp_runtime::generic::Header; +pub type Block = sp_runtime::generic::Block; +type Hash = sp_core::H256; // Native executor instance. native_executor_instance!( - pub Executor, + pub ParachainRuntimeExecutor, parachain_runtime::api::dispatch, parachain_runtime::native_version, + frame_benchmarking::benchmarking::HostFunctions, ); /// Starts a `ServiceBuilder` for a full service. /// /// Use this macro if you don't actually need the full service, but just the builder in order to /// be able to perform chain operations. -pub fn new_partial( +pub fn new_partial( config: &Configuration, + build_import_queue: BIQ, ) -> Result< PartialComponents< TFullClient, TFullBackend, (), - sp_consensus::import_queue::BasicQueue>, + sp_consensus::DefaultImportQueue>, sc_transaction_pool::FullPool>, (Option, Option), >, sc_service::Error, -> { - let inherent_data_providers = sp_inherents::InherentDataProviders::new(); - +> +where + RuntimeApi: ConstructRuntimeApi> + + Send + + Sync + + 'static, + RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue + + sp_api::Metadata + + sp_session::SessionKeys + + sp_api::ApiExt< + Block, + StateBackend = sc_client_api::StateBackendFor, Block>, + > + sp_offchain::OffchainWorkerApi + + sp_block_builder::BlockBuilder, + sc_client_api::StateBackendFor, Block>: sp_api::StateBackend, + Executor: sc_executor::NativeExecutionDispatch + 'static, + BIQ: FnOnce( + Arc>, + &Configuration, + Option, + &TaskManager, + ) -> Result< + sp_consensus::DefaultImportQueue>, + sc_service::Error, + >, +{ let telemetry = config .telemetry_endpoints .clone() @@ -60,17 +106,12 @@ pub fn new_partial( )?; let client = Arc::new(client); - let telemetry_worker_handle = telemetry - .as_ref() - .map(|(worker, _)| worker.handle()); + let telemetry_worker_handle = telemetry.as_ref().map(|(worker, _)| worker.handle()); - let telemetry = telemetry - .map(|(worker, telemetry)| { - task_manager.spawn_handle().spawn("telemetry", worker.run()); - telemetry - }); - - let registry = config.prometheus_registry(); + let telemetry = telemetry.map(|(worker, telemetry)| { + task_manager.spawn_handle().spawn("telemetry", worker.run()); + telemetry + }); let transaction_pool = sc_transaction_pool::BasicPool::new_full( config.transaction_pool.clone(), @@ -80,12 +121,11 @@ pub fn new_partial( client.clone(), ); - let import_queue = cumulus_client_consensus_relay_chain::import_queue( - client.clone(), + let import_queue = build_import_queue( client.clone(), - inherent_data_providers.clone(), - &task_manager.spawn_essential_handle(), - registry.clone(), + config, + telemetry.as_ref().map(|telemetry| telemetry.handle()), + &task_manager, )?; let params = PartialComponents { @@ -95,7 +135,6 @@ pub fn new_partial( keystore_container, task_manager, transaction_pool, - inherent_data_providers, select_chain: (), other: (telemetry, telemetry_worker_handle), }; @@ -107,20 +146,56 @@ pub fn new_partial( /// /// This is the actual implementation that is abstract over the executor and the runtime api. #[sc_tracing::logging::prefix_logs_with("Parachain")] -async fn start_node_impl( +async fn start_node_impl( parachain_config: Configuration, collator_key: CollatorPair, polkadot_config: Configuration, id: ParaId, - validator: bool, rpc_ext_builder: RB, + build_import_queue: BIQ, + build_consensus: BIC, ) -> sc_service::error::Result<(TaskManager, Arc>)> where + RuntimeApi: ConstructRuntimeApi> + + Send + + Sync + + 'static, + RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue + + sp_api::Metadata + + sp_session::SessionKeys + + sp_api::ApiExt< + Block, + StateBackend = sc_client_api::StateBackendFor, Block>, + > + sp_offchain::OffchainWorkerApi + + sp_block_builder::BlockBuilder + + cumulus_primitives_core::CollectCollationInfo, + sc_client_api::StateBackendFor, Block>: sp_api::StateBackend, + Executor: sc_executor::NativeExecutionDispatch + 'static, RB: Fn( Arc>, ) -> jsonrpc_core::IoHandler + Send + 'static, + BIQ: FnOnce( + Arc>, + &Configuration, + Option, + &TaskManager, + ) -> Result< + sp_consensus::DefaultImportQueue>, + sc_service::Error, + >, + BIC: FnOnce( + Arc>, + Option<&Registry>, + Option, + &TaskManager, + &polkadot_service::NewFull, + Arc>>, + Arc>, + SyncCryptoStorePtr, + bool, + ) -> Result>, sc_service::Error>, { if matches!(parachain_config.role, Role::Light) { return Err("Light client not supported!".into()); @@ -128,57 +203,45 @@ where let parachain_config = prepare_node_config(parachain_config); - let params = new_partial(¶chain_config)?; - params - .inherent_data_providers - .register_provider(sp_timestamp::InherentDataProvider) - .unwrap(); + let params = new_partial::(¶chain_config, build_import_queue)?; let (mut telemetry, telemetry_worker_handle) = params.other; - let polkadot_full_node = - cumulus_client_service::build_polkadot_full_node( - polkadot_config, - collator_key.clone(), - telemetry_worker_handle, - ) - .map_err(|e| match e { - polkadot_service::Error::Sub(x) => x, - s => format!("{}", s).into(), - })?; + let relay_chain_full_node = cumulus_client_service::build_polkadot_full_node( + polkadot_config, + collator_key.clone(), + telemetry_worker_handle, + ) + .map_err(|e| match e { + polkadot_service::Error::Sub(x) => x, + s => format!("{}", s).into(), + })?; let client = params.client.clone(); let backend = params.backend.clone(); let block_announce_validator = build_block_announce_validator( - polkadot_full_node.client.clone(), + relay_chain_full_node.client.clone(), id, - Box::new(polkadot_full_node.network.clone()), - polkadot_full_node.backend.clone(), + Box::new(relay_chain_full_node.network.clone()), + relay_chain_full_node.backend.clone(), ); + let force_authoring = parachain_config.force_authoring; + let validator = parachain_config.role.is_authority(); let prometheus_registry = parachain_config.prometheus_registry().cloned(); let transaction_pool = params.transaction_pool.clone(); let mut task_manager = params.task_manager; - let import_queue = params.import_queue; + let import_queue = cumulus_client_service::SharedImportQueue::new(params.import_queue); let (network, network_status_sinks, system_rpc_tx, start_network) = sc_service::build_network(sc_service::BuildNetworkParams { config: ¶chain_config, client: client.clone(), transaction_pool: transaction_pool.clone(), spawn_handle: task_manager.spawn_handle(), - import_queue, + import_queue: import_queue.clone(), on_demand: None, block_announce_validator_builder: Some(Box::new(|_| block_announce_validator)), })?; - if parachain_config.offchain_worker.enabled { - sc_service::build_offchain_workers( - ¶chain_config, - task_manager.spawn_handle(), - client.clone(), - network.clone(), - ); - } - let rpc_client = client.clone(); let rpc_extensions_builder = Box::new(move |_, _| rpc_ext_builder(rpc_client.clone())); @@ -204,23 +267,19 @@ where }; if validator { - let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( - task_manager.spawn_handle(), + let parachain_consensus = build_consensus( client.clone(), - transaction_pool, prometheus_registry.as_ref(), - telemetry.as_ref().map(|x| x.handle()), - ); - let spawner = task_manager.spawn_handle(); + telemetry.as_ref().map(|t| t.handle()), + &task_manager, + &relay_chain_full_node, + transaction_pool, + network, + params.keystore_container.sync_keystore(), + force_authoring, + )?; - let parachain_consensus = build_relay_chain_consensus(BuildRelayChainConsensusParams { - para_id: id, - proposer_factory, - inherent_data_providers: params.inherent_data_providers, - block_import: client.clone(), - relay_chain_client: polkadot_full_node.client.clone(), - relay_chain_backend: polkadot_full_node.backend.clone(), - }); + let spawner = task_manager.spawn_handle(); let params = StartCollatorParams { para_id: id, @@ -229,10 +288,10 @@ where client: client.clone(), task_manager: &mut task_manager, collator_key, - relay_chain_full_node: polkadot_full_node, + relay_chain_full_node, spawner, - backend, parachain_consensus, + import_queue, }; start_collator(params).await?; @@ -242,7 +301,7 @@ where announce_block, task_manager: &mut task_manager, para_id: id, - polkadot_full_node, + relay_chain_full_node, }; start_full_node(params)?; @@ -253,21 +312,140 @@ where Ok((task_manager, client)) } +/// Build the import queue for the the parachain runtime. +pub fn parachain_build_import_queue( + client: Arc>, + config: &Configuration, + telemetry: Option, + task_manager: &TaskManager, +) -> Result< + sp_consensus::DefaultImportQueue< + Block, + TFullClient, + >, + sc_service::Error, +> { + let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?; + + + cumulus_client_consensus_aura::import_queue::< + sp_consensus_aura::sr25519::AuthorityPair, + _, + _, + _, + _, + _, + _, + >(cumulus_client_consensus_aura::ImportQueueParams { + block_import: client.clone(), + client: client.clone(), + create_inherent_data_providers: move |_, _| async move { + let time = sp_timestamp::InherentDataProvider::from_system_time(); + + let slot = + sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_duration( + *time, + slot_duration.slot_duration(), + ); + + Ok((time, slot)) + }, + registry: config.prometheus_registry().clone(), + can_author_with: sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()), + spawner: &task_manager.spawn_essential_handle(), + telemetry, + }) + .map_err(Into::into) +} + /// Start a normal parachain node. pub async fn start_node( parachain_config: Configuration, collator_key: CollatorPair, polkadot_config: Configuration, id: ParaId, - validator: bool, -) -> sc_service::error::Result<(TaskManager, Arc>)> { - start_node_impl( +) -> sc_service::error::Result<(TaskManager, Arc>)> { + start_node_impl::( parachain_config, collator_key, polkadot_config, id, - validator, |_| Default::default(), + parachain_build_import_queue, + |client, + prometheus_registry, + telemetry, + task_manager, + relay_chain_node, + transaction_pool, + sync_oracle, + keystore, + force_authoring| { + let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?; + + let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( + task_manager.spawn_handle(), + client.clone(), + transaction_pool, + prometheus_registry.clone(), + telemetry.clone(), + ); + + let relay_chain_backend = relay_chain_node.backend.clone(); + let relay_chain_client = relay_chain_node.client.clone(); + Ok(build_aura_consensus::< + sp_consensus_aura::sr25519::AuthorityPair, + _, + _, + _, + _, + _, + _, + _, + _, + _, + >(BuildAuraConsensusParams { + proposer_factory, + create_inherent_data_providers: move |_, (relay_parent, validation_data)| { + let parachain_inherent = + cumulus_primitives_parachain_inherent::ParachainInherentData::create_at_with_client( + relay_parent, + &relay_chain_client, + &*relay_chain_backend, + &validation_data, + id, + ); + async move { + let time = sp_timestamp::InherentDataProvider::from_system_time(); + + let slot = + sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_duration( + *time, + slot_duration.slot_duration(), + ); + + let parachain_inherent = parachain_inherent.ok_or_else(|| { + Box::::from( + "Failed to create parachain inherent", + ) + })?; + Ok((time, slot, parachain_inherent)) + } + }, + block_import: client.clone(), + relay_chain_client: relay_chain_node.client.clone(), + relay_chain_backend: relay_chain_node.backend.clone(), + para_client: client.clone(), + backoff_authoring_blocks: Option::<()>::None, + sync_oracle, + keystore, + force_authoring, + slot_duration, + // We got around 500ms for proposing + block_proposal_slot_portion: SlotProportion::new(1f32 / 24f32), + telemetry, + })) + }, ) .await -} \ No newline at end of file +} diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index e5bc5983..ddad66b5 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -1,17 +1,29 @@ [package] +name = 'pallet-template' authors = ['Anonymous'] description = 'FRAME pallet template for defining custom runtime logic.' -edition = '2018' -homepage = 'https://substrate.dev' +version = '3.0.0' license = 'Unlicense' -name = 'pallet-template' -readme = 'README.md' +homepage = 'https://substrate.dev' repository = 'https://github.com/paritytech/substrate/' -version = '3.0.0' +edition = '2018' [package.metadata.docs.rs] targets = ['x86_64-unknown-linux-gnu'] +[dependencies] +codec = { package = 'parity-scale-codec', version = '2.0.0', features = ['derive'], default-features = false } + +frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false, optional = true } +frame-support = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } + +[dev-dependencies] +serde = { version = "1.0.101" } +sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' , default-features = false} +sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } + [features] default = ['std'] runtime-benchmarks = ['frame-benchmarking'] @@ -21,49 +33,3 @@ std = [ 'frame-system/std', 'frame-benchmarking/std', ] - -[dependencies.codec] -default-features = false -features = ['derive'] -package = 'parity-scale-codec' -version = '2.0.0' - -[dependencies.frame-benchmarking] -default-features = false -optional = true -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.frame-support] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.frame-system] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dev-dependencies] -serde = { version = "1.0.119" } - -[dev-dependencies.sp-core] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dev-dependencies.sp-io] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dev-dependencies.sp-runtime] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 587c3a7e..0c041011 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -1,241 +1,74 @@ -[build-dependencies.substrate-wasm-builder] -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '4.0.0' - [package] +name = 'parachain-runtime' authors = ['Anonymous'] -edition = '2018' -homepage = 'https://substrate.dev' +description = 'A new Cumulus FRAME-based Substrate Runtime, ready for hacking.' license = 'Unlicense' -name = 'parachain-runtime' +version = '3.0.0' +homepage = 'https://substrate.dev' repository = 'https://github.com/substrate-developer-hub/substrate-parachain-template' - -version = '2.0.0' - -[dependencies] -smallvec = "1.6.1" - +edition = '2018' [package.metadata.docs.rs] targets = ['x86_64-unknown-linux-gnu'] -[dependencies.codec] -default-features = false -features = ['derive'] -package = 'parity-scale-codec' -version = '2.0.0' - -[dependencies.frame-benchmarking] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -optional = true -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.frame-executive] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.frame-support] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.frame-system] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.frame-system-benchmarking] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -optional = true -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.frame-system-rpc-runtime-api] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.hex-literal] -optional = true -version = '0.3.1' - -[dependencies.pallet-balances] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.pallet-randomness-collective-flip] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.pallet-sudo] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.pallet-timestamp] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.pallet-transaction-payment] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.pallet-transaction-payment-rpc-runtime-api] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.serde] -features = ['derive'] -optional = true -version = '1.0.119' - -[dependencies.sp-api] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sp-block-builder] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sp-core] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sp-inherents] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sp-io] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sp-offchain] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sp-runtime] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sp-session] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' +[build-dependencies] +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.3" } -[dependencies.sp-std] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sp-transaction-pool] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -[dependencies.sp-version] -default-features = false -git = 'https://github.com/paritytech/substrate.git' -branch = 'rococo-v1' -version = '3.0.0' - -# Cumulus dependencies -[dependencies.parachain-info] -default-features = false -git = 'https://github.com/paritytech/cumulus.git' -branch = 'rococo-v1' -version = '0.1.0' - -[dependencies.cumulus-pallet-parachain-system] -git = 'https://github.com/paritytech/cumulus.git' -branch = 'rococo-v1' -default-features = false - -[dependencies.cumulus-primitives-core] -git = 'https://github.com/paritytech/cumulus.git' -branch = 'rococo-v1' -default-features = false - -[dependencies.cumulus-pallet-xcm] -git = 'https://github.com/paritytech/cumulus.git' -branch = 'rococo-v1' -default-features = false - -[dependencies.cumulus-pallet-xcmp-queue] -git = 'https://github.com/paritytech/cumulus.git' -branch = 'rococo-v1' -default-features = false - -[dependencies.cumulus-primitives-utility] -git = 'https://github.com/paritytech/cumulus.git' -branch = 'rococo-v1' -default-features = false - -# Polkadot dependencies -[dependencies.polkadot-parachain] -git = 'https://github.com/paritytech/polkadot' -branch = 'rococo-v1' -default-features = false - -[dependencies.xcm] -git = 'https://github.com/paritytech/polkadot' -branch = 'rococo-v1' -default-features = false - -[dependencies.xcm-builder] -git = 'https://github.com/paritytech/polkadot' -branch = 'rococo-v1' -default-features = false - -[dependencies.xcm-executor] -git = 'https://github.com/paritytech/polkadot' -branch = 'rococo-v1' -default-features = false - -[dependencies.pallet-xcm] -git = 'https://github.com/paritytech/polkadot' -branch = 'rococo-v1' -default-features = false - -[dependencies.template] -default-features = false -package = 'pallet-template' -path = '../pallets/template' +[dependencies] +codec = { package = 'parity-scale-codec', version = '2.0.0', default-features = false, features = ['derive']} +log = { version = "0.4.14", default-features = false } +serde = { version = '1.0.119', optional = true, features = ['derive'] } + +# Local Dependencies +template = { package = 'pallet-template', path = '../pallets/template', default-features = false } + +# Substrate Dependencies +## Substrate Primitive Dependencies +sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +sp-std = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +sp-version = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } + +## Substrate FRAME Dependencies +frame-executive = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false, optional = true } +frame-support = { git = 'https://github.com/paritytech/substrate', default-features = false, branch = 'polkadot-v0.9.3' } +frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +frame-system-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false, optional = true } +frame-system-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } + +## Substrate Pallet Dependencies +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.3" } +pallet-balances = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +pallet-randomness-collective-flip = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +pallet-sudo = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +pallet-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +pallet-transaction-payment = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } + +# Cumulus Dependencies +cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3', default-features = false } +cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3', default-features = false } +cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3', default-features = false } +cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3', default-features = false } +cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3', default-features = false } +cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3', default-features = false } +cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3', default-features = false } +parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3', default-features = false } + +# Polkadot Dependencies +polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.3', default-features = false } +xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.3', default-features = false } +xcm-builder = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.3', default-features = false } +xcm-executor = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.3', default-features = false } +pallet-xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.3', default-features = false } [features] default = ['std'] @@ -244,43 +77,45 @@ runtime-benchmarks = [ 'frame-benchmarking', 'frame-support/runtime-benchmarks', 'frame-system-benchmarking', - 'hex-literal', 'frame-system/runtime-benchmarks', 'pallet-balances/runtime-benchmarks', 'pallet-timestamp/runtime-benchmarks', 'template/runtime-benchmarks', ] std = [ - 'codec/std', - 'serde', - 'sp-api/std', - 'sp-std/std', - 'sp-io/std', - 'sp-core/std', - 'sp-runtime/std', - 'sp-version/std', - 'sp-offchain/std', - 'sp-session/std', - 'sp-block-builder/std', - 'sp-transaction-pool/std', - 'sp-inherents/std', - 'frame-support/std', - 'frame-executive/std', - 'frame-system/std', - 'frame-system-rpc-runtime-api/std', - 'pallet-balances/std', - 'pallet-randomness-collective-flip/std', - 'pallet-timestamp/std', - 'pallet-sudo/std', - 'pallet-transaction-payment/std', - 'parachain-info/std', - 'cumulus-pallet-parachain-system/std', - 'cumulus-primitives-core/std', - 'xcm/std', - 'xcm-builder/std', - 'xcm-executor/std', - 'cumulus-pallet-xcm/std', - 'cumulus-pallet-xcmp-queue/std', - 'cumulus-primitives-utility/std', + "codec/std", + "serde", + "log/std", + "sp-api/std", + "sp-std/std", + "sp-io/std", + "sp-core/std", + "sp-runtime/std", + "sp-version/std", + "sp-offchain/std", + "sp-session/std", + "sp-block-builder/std", + "sp-transaction-pool/std", + "sp-inherents/std", + "frame-support/std", + "frame-executive/std", + "frame-system/std", + "pallet-balances/std", + "pallet-randomness-collective-flip/std", + "pallet-timestamp/std", + "pallet-sudo/std", + "pallet-transaction-payment/std", + "parachain-info/std", + "cumulus-pallet-aura-ext/std", + "cumulus-pallet-parachain-system/std", + "cumulus-pallet-xcmp-queue/std", + "cumulus-pallet-xcm/std", + "cumulus-primitives-core/std", + "cumulus-primitives-utility/std", + "xcm/std", + "xcm-builder/std", + "xcm-executor/std", + "pallet-aura/std", + "sp-consensus-aura/std", 'template/std', ] diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 1ae360be..6fd209a0 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -8,13 +8,11 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); use sp_api::impl_runtime_apis; use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; -use sp_runtime::traits::{ - AccountIdLookup, BlakeTwo256, Block as BlockT, IdentifyAccount, Verify, -}; use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, + traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, IdentifyAccount, Verify}, transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, MultiSignature, + ApplyExtrinsicResult, MultiSignature }; use sp_std::prelude::*; @@ -22,120 +20,132 @@ use sp_std::prelude::*; use sp_version::NativeVersion; use sp_version::RuntimeVersion; -use frame_system::{ - limits::{BlockLength, BlockWeights}, -}; - -// Polkadot imports -use polkadot_parachain::primitives::Sibling; -use xcm::v0::{Junction, MultiLocation, NetworkId}; -use xcm_builder::{ - AccountId32Aliases, CurrencyAdapter, LocationInverter, ParentIsDefault, RelayChainAsNative, - SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, - SovereignSignedViaLocation, FixedRateOfConcreteFungible, EnsureXcmOrigin, - AllowTopLevelPaidExecutionFrom, TakeWeightCredit, FixedWeightBounds, IsConcrete, NativeAsset, - AllowUnpaidExecutionFrom, ParentAsSuperuser, -}; -use xcm_executor::{Config, XcmExecutor}; - // A few exports that help ease life for downstream crates. pub use frame_support::{ - construct_runtime, parameter_types, + construct_runtime, parameter_types, match_type, traits::{Randomness, IsInVec, All}, weights::{ - constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND}, + constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND}, DispatchClass, IdentityFee, Weight, }, StorageValue, }; +use frame_system::limits::{BlockLength, BlockWeights}; pub use pallet_balances::Call as BalancesCall; pub use pallet_timestamp::Call as TimestampCall; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; -pub use sp_runtime::{Perbill, Permill, Perquintill}; +pub use sp_runtime::{MultiAddress, Perbill, Permill}; +pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; + +// Polkadot & XCM imports +use polkadot_parachain::primitives::Sibling; +use xcm::v0::{MultiAsset, MultiLocation, MultiLocation::*, Junction::*, BodyId, NetworkId}; +use xcm_builder::{ + AccountId32Aliases, CurrencyAdapter, LocationInverter, ParentIsDefault, RelayChainAsNative, + SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, + SovereignSignedViaLocation, EnsureXcmOrigin, AllowUnpaidExecutionFrom, ParentAsSuperuser, + AllowTopLevelPaidExecutionFrom, TakeWeightCredit, FixedWeightBounds, IsConcrete, NativeAsset, + UsingComponents, SignedToAccountId32, +}; +use xcm_executor::{Config, XcmExecutor}; +use pallet_xcm::XcmPassthrough; +use xcm::v0::Xcm; + /// Import the template pallet. pub use template; -/// An index to a block. -pub type BlockNumber = u32; /// Alias to 512-bit hash when used in the context of a transaction signature on the chain. pub type Signature = MultiSignature; - /// Some way of identifying an account on the chain. We intentionally make it equivalent /// to the public key of our transaction signing scheme. pub type AccountId = <::Signer as IdentifyAccount>::AccountId; - -/// The type for looking up accounts. We don't expect more than 4 billion of them, but you -/// never know... -pub type AccountIndex = u32; - /// Balance of an account. pub type Balance = u128; - /// Index of a transaction in the chain. pub type Index = u32; - /// A hash of some data used by the chain. pub type Hash = sp_core::H256; +/// An index to a block. +pub type BlockNumber = u32; +/// The address format for describing accounts. +pub type Address = MultiAddress; +/// Block header type as expected by this runtime. +pub type Header = generic::Header; +/// Block type as expected by this runtime. +pub type Block = generic::Block; +/// A Block signed with a Justification +pub type SignedBlock = generic::SignedBlock; +/// BlockId type as expected by this runtime. +pub type BlockId = generic::BlockId; +/// The SignedExtension to the basic transaction logic. +pub type SignedExtra = ( + frame_system::CheckSpecVersion, + frame_system::CheckGenesis, + frame_system::CheckEra, + frame_system::CheckNonce, + frame_system::CheckWeight, + pallet_transaction_payment::ChargeTransactionPayment, +); +/// Unchecked extrinsic type as expected by this runtime. +pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; +/// Extrinsic type that has already been checked. +pub type CheckedExtrinsic = generic::CheckedExtrinsic; +/// Executive: handles dispatch to the various modules. +pub type Executive = frame_executive::Executive< + Runtime, + Block, + frame_system::ChainContext, + Runtime, + AllPallets, +>; -/// Digest item type. -pub type DigestItem = generic::DigestItem; - -/// Opaque types. These are used by the CLI to instantiate machinery that don't need to know -/// the specifics of the runtime. They can then be made to be agnostic over specific formats -/// of data like extrinsics, allowing for them to continue syncing the network through upgrades -/// to even the core data structures. -pub mod opaque { - use super::*; - - pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic; - - /// Opaque block type. - pub type Block = generic::Block; - - pub type SessionHandlers = (); - - impl_opaque_keys! { - pub struct SessionKeys {} - } +impl_opaque_keys! { + pub struct SessionKeys { + pub aura: Aura, + } } +/// This runtime version. +#[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { - spec_name: create_runtime_str!("cumulus-test-parachain"), - impl_name: create_runtime_str!("cumulus-test-parachain"), + spec_name: create_runtime_str!("template-parachain"), + impl_name: create_runtime_str!("template-parachain"), authoring_version: 1, spec_version: 1, - impl_version: 1, + impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, }; -/// This determines the average expected block time that we are targetting. +/// This determines the average expected block time that we are targeting. /// Blocks will be produced at a minimum duration defined by `SLOT_DURATION`. /// `SLOT_DURATION` is picked up by `pallet_timestamp` which is in turn picked /// up by `pallet_aura` to implement `fn slot_duration()`. /// /// Change this to adjust the block time. -pub const MILLISECS_PER_BLOCK: u64 = 6000; +pub const MILLISECS_PER_BLOCK: u64 = 12000; pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK; +pub const EPOCH_DURATION_IN_BLOCKS: u32 = 10 * MINUTES; + + // Time is measured by number of blocks. pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber); pub const HOURS: BlockNumber = MINUTES * 60; pub const DAYS: BlockNumber = HOURS * 24; +// Unit = the base number of indivisible units for balances +pub const UNIT: Balance = 1_000_000_000_000; +pub const MILLIUNIT: Balance = 1_000_000_000; +pub const MICROUNIT: Balance = 1_000_000; + // 1 in 4 blocks (on average, not counting collisions) will be primary babe blocks. pub const PRIMARY_PROBABILITY: (u64, u64) = (1, 4); -#[derive(codec::Encode, codec::Decode)] -pub enum XCMPMessage { - /// Transfer tokens to the given account from the Parachain account. - TransferToken(XAccountId, XBalance), -} - /// The version information used to identify this runtime when compiled natively. #[cfg(feature = "std")] pub fn native_version() -> NativeVersion { @@ -151,8 +161,8 @@ const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(10); /// We allow `Normal` extrinsics to fill up the block up to 75%, the rest can be used /// by Operational extrinsics. const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); -/// We allow for 0.5 seconds of compute with a 6 second average block time. -const MAXIMUM_BLOCK_WEIGHT: Weight = WEIGHT_PER_SECOND / 2; +/// We allow for 2 seconds of compute with a 12 second average block time. +const MAXIMUM_BLOCK_WEIGHT: Weight = WEIGHT_PER_SECOND * 2; parameter_types! { pub const BlockHashCount: BlockNumber = 250; @@ -177,59 +187,57 @@ parameter_types! { }) .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) .build_or_panic(); - pub const SS58Prefix: u8 = 0; + pub const SS58Prefix: u8 = 42; } // Configure FRAME pallets to include in runtime. impl frame_system::Config for Runtime { - /// The basic call filter to use in dispatchable. - type BaseCallFilter = (); - /// Block & extrinsics weights: base values and limits. - type BlockWeights = RuntimeBlockWeights; - /// The maximum length of a block (in bytes). - type BlockLength = RuntimeBlockLength; /// The identifier used to distinguish between accounts. - type AccountId = AccountId; - /// The aggregated dispatch type that is available for extrinsics. - type Call = Call; - /// The lookup mechanism to get account ID from whatever is passed in dispatchers. - type Lookup = AccountIdLookup; - /// The index type for storing how many extrinsics an account has signed. - type Index = Index; - /// The index type for blocks. - type BlockNumber = BlockNumber; - /// The type for hashing blocks and tries. - type Hash = Hash; - /// The hashing algorithm used. - type Hashing = BlakeTwo256; - /// The header type. - type Header = generic::Header; - /// The ubiquitous event type. - type Event = Event; - /// The ubiquitous origin type. - type Origin = Origin; - /// Maximum number of block number to block hash mappings to keep (oldest pruned first). - type BlockHashCount = BlockHashCount; - /// The weight of database operations that the runtime can invoke. - type DbWeight = RocksDbWeight; - /// Version of the runtime. - type Version = Version; - /// Converts a module to the index of the module in `construct_runtime!`. - /// - /// This type is being generated by `construct_runtime!`. - type PalletInfo = PalletInfo; + type AccountId = AccountId; + /// The aggregated dispatch type that is available for extrinsics. + type Call = Call; + /// The lookup mechanism to get account ID from whatever is passed in dispatchers. + type Lookup = AccountIdLookup; + /// The index type for storing how many extrinsics an account has signed. + type Index = Index; + /// The index type for blocks. + type BlockNumber = BlockNumber; + /// The type for hashing blocks and tries. + type Hash = Hash; + /// The hashing algorithm used. + type Hashing = BlakeTwo256; + /// The header type. + type Header = generic::Header; + /// The ubiquitous event type. + type Event = Event; + /// The ubiquitous origin type. + type Origin = Origin; + /// Maximum number of block number to block hash mappings to keep (oldest pruned first). + type BlockHashCount = BlockHashCount; + /// Runtime version. + type Version = Version; + /// Converts a module to an index of this module in the runtime. + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; /// What to do if a new account is created. - type OnNewAccount = (); + type OnNewAccount = (); /// What to do if an account is fully reaped from the system. type OnKilledAccount = (); - /// The data to be stored in an account. - type AccountData = pallet_balances::AccountData; + /// The weight of database operations that the runtime can invoke. + type DbWeight = (); + /// The basic call filter to use in dispatchable. + type BaseCallFilter = (); /// Weight information for the extrinsics of this pallet. - type SystemWeightInfo = (); + type SystemWeightInfo = (); + /// Block & extrinsics weights: base values and limits. + type BlockWeights = RuntimeBlockWeights; + /// The maximum length of a block (in bytes). + type BlockLength = RuntimeBlockLength; /// This is used as an identifier of the chain. 42 is the generic substrate prefix. - type SS58Prefix = SS58Prefix; - type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; + type SS58Prefix = SS58Prefix; + /// The action to take on a Runtime Upgrade + type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; } parameter_types! { @@ -245,13 +253,13 @@ impl pallet_timestamp::Config for Runtime { } parameter_types! { - /// Same as Polkadot Relay Chain. - pub const ExistentialDeposit: Balance = 500; + pub const ExistentialDeposit: u128 = 1 * MILLIUNIT; + pub const TransferFee: u128 = 1 * MILLIUNIT; + pub const CreationFee: u128 = 1 * MILLIUNIT; pub const MaxLocks: u32 = 50; } impl pallet_balances::Config for Runtime { - type MaxLocks = MaxLocks; /// The type for recording an account's balance. type Balance = Balance; /// The ubiquitous event type. @@ -260,10 +268,11 @@ impl pallet_balances::Config for Runtime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = pallet_balances::weights::SubstrateWeight; + type MaxLocks = MaxLocks; } parameter_types! { - pub const TransactionByteFee: Balance = 1 ; + pub const TransactionByteFee: u128 = 1 * MICROUNIT; } impl pallet_transaction_payment::Config for Runtime { @@ -280,31 +289,29 @@ impl pallet_sudo::Config for Runtime { parameter_types! { pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT / 4; + pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT / 4; } impl cumulus_pallet_parachain_system::Config for Runtime { type Event = Event; type OnValidationData = (); - type SelfParaId = parachain_info::Module; - type DownwardMessageHandlers = cumulus_primitives_utility::UnqueuedDmpAsParent< - MaxDownwardMessageWeight, - XcmExecutor, - Call, - >; + type SelfParaId = parachain_info::Pallet; type OutboundXcmpMessageSource = XcmpQueue; + type DmpMessageHandler = DmpQueue; + type ReservedDmpWeight = ReservedDmpWeight; type XcmpMessageHandler = XcmpQueue; type ReservedXcmpWeight = ReservedXcmpWeight; } impl parachain_info::Config for Runtime {} +impl cumulus_pallet_aura_ext::Config for Runtime {} + parameter_types! { - pub const RococoLocation: MultiLocation = MultiLocation::X1(Junction::Parent); - pub const RococoNetwork: NetworkId = NetworkId::Polkadot; - pub RelayChainOrigin: Origin = cumulus_pallet_xcm::Origin::Relay.into(); - pub Ancestry: MultiLocation = Junction::Parachain { - id: ParachainInfo::parachain_id().into() - }.into(); + pub const RelayLocation: MultiLocation = X1(Parent); + pub const RelayNetwork: NetworkId = NetworkId::Polkadot; + pub RelayOrigin: Origin = cumulus_pallet_xcm::Origin::Relay.into(); + pub Ancestry: MultiLocation = X1(Parachain(ParachainInfo::parachain_id().into())); } /// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used @@ -316,7 +323,7 @@ pub type LocationToAccountId = ( // Sibling parachain origins convert to AccountId via the `ParaId::into`. SiblingParachainConvertsVia, // Straight up local `AccountId32` origins just alias directly to `AccountId`. - AccountId32Aliases, + AccountId32Aliases, ); /// Means for transacting assets on this chain. @@ -324,11 +331,13 @@ pub type LocalAssetTransactor = CurrencyAdapter< // Use this currency: Balances, // Use this currency when it is a fungible asset matching the given location or name: - IsConcrete, + IsConcrete, // Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, + // We don't track any teleports. + (), >; /// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance, @@ -341,7 +350,7 @@ pub type XcmOriginToTransactDispatchOrigin = ( SovereignSignedViaLocation, // Native converter for Relay-chain (Parent) location; will converts to a `Relay` origin when // recognised. - RelayChainAsNative, + RelayChainAsNative, // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when // recognised. SiblingParachainAsNative, @@ -350,27 +359,31 @@ pub type XcmOriginToTransactDispatchOrigin = ( ParentAsSuperuser, // Native signed account converter; this just converts an `AccountId32` origin into a normal // `Origin::Signed` origin of the same 32-byte value. - SignedAccountId32AsNative, + SignedAccountId32AsNative, + // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. + XcmPassthrough, ); parameter_types! { - pub UnitWeightCost: Weight = 1_000; + // One XCM operation is 1_000_000 weight - almost certainly a conservative estimate. + pub UnitWeightCost: Weight = 1_000_000; + // One UNIT buys 1 second of weight. + pub const WeightPrice: (MultiLocation, u128) = (X1(Parent), UNIT); } -parameter_types! { - // 1_000_000_000_000 => 1 unit of asset for 1 unit of Weight. - // TODO: Should take the actual weight price. This is just 1_000 ROC per second of weight. - pub const WeightPrice: (MultiLocation, u128) = (MultiLocation::X1(Junction::Parent), 1_000); - pub AllowUnpaidFrom: Vec = vec![ MultiLocation::X1(Junction::Parent) ]; +match_type! { + pub type ParentOrParentsUnitPlurality: impl Contains = { + X1(Parent) | X2(Parent, Plurality { id: BodyId::Unit, .. }) + }; } pub type Barrier = ( TakeWeightCredit, AllowTopLevelPaidExecutionFrom>, - AllowUnpaidExecutionFrom>, // <- Parent gets free execution + AllowUnpaidExecutionFrom, + // ^^^ Parent & its unit plurality gets free execution ); - pub struct XcmConfig; impl Config for XcmConfig { type Call = Call; @@ -383,16 +396,14 @@ impl Config for XcmConfig { type LocationInverter = LocationInverter; type Barrier = Barrier; type Weigher = FixedWeightBounds; - type Trader = FixedRateOfConcreteFungible; + type Trader = UsingComponents, RelayLocation, AccountId, Balances, ()>; type ResponseHandler = (); // Don't handle responses for now. } -parameter_types! { - pub const MaxDownwardMessageWeight: Weight = MAXIMUM_BLOCK_WEIGHT / 10; -} - /// No local origins on this chain are allowed to dispatch XCM sends/executions. -pub type LocalOriginToLocation = (); +pub type LocalOriginToLocation = ( + SignedToAccountId32, +); /// The means for routing XCM messages which are not for local execution into the right message /// queues. @@ -408,10 +419,18 @@ impl pallet_xcm::Config for Runtime { type SendXcmOrigin = EnsureXcmOrigin; type XcmRouter = XcmRouter; type ExecuteXcmOrigin = EnsureXcmOrigin; + type XcmExecuteFilter = All<(MultiLocation, Xcm)>; type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = All<(MultiLocation, Vec)>; + type XcmReserveTransferFilter = (); + type Weigher = FixedWeightBounds; } -impl cumulus_pallet_xcm::Config for Runtime {} + +impl cumulus_pallet_xcm::Config for Runtime { + type Event = Event; + type XcmExecutor = XcmExecutor; +} impl cumulus_pallet_xcmp_queue::Config for Runtime { type Event = Event; @@ -419,6 +438,16 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ChannelInfo = ParachainSystem; } +impl cumulus_pallet_dmp_queue::Config for Runtime { + type Event = Event; + type XcmExecutor = XcmExecutor; + type ExecuteOverweightOrigin = frame_system::EnsureRoot; +} + +impl pallet_aura::Config for Runtime { + type AuthorityId = AuraId; +} + /// Configure the pallet template in pallets/template. impl template::Config for Runtime { type Event = Event; @@ -428,57 +457,34 @@ impl template::Config for Runtime { construct_runtime!( pub enum Runtime where Block = Block, - NodeBlock = opaque::Block, + NodeBlock = generic::Block, UncheckedExtrinsic = UncheckedExtrinsic, { - System: frame_system::{Pallet, Call, Config, Storage, Event}, - RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Call, Storage}, + System: frame_system::{Pallet, Call, Storage, Config, Event}, Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent}, - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, - ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Storage, Inherent, Event}, + Sudo: pallet_sudo::{Pallet, Call, Storage, Config, Event}, + RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Call, Storage}, TransactionPayment: pallet_transaction_payment::{Pallet, Storage}, - ParachainInfo: parachain_info::{Pallet, Storage, Config}, - XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event}, - PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin}, - CumulusXcm: cumulus_pallet_xcm::{Pallet, Origin}, - Sudo: pallet_sudo::{Pallet, Call, Config, Storage, Event}, + + ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Storage, Inherent, Event, ValidateUnsigned} = 20, + ParachainInfo: parachain_info::{Pallet, Storage, Config} = 21, + + Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 30, + + Aura: pallet_aura::{Pallet, Config}, + AuraExt: cumulus_pallet_aura_ext::{Pallet, Config}, + + // XCM helpers. + XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 50, + PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin} = 51, + CumulusXcm: cumulus_pallet_xcm::{Pallet, Call, Event, Origin} = 52, + DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 53, + + //Template TemplatePallet: template::{Pallet, Call, Storage, Event}, } ); -/// The address format for describing accounts. -pub type Address = sp_runtime::MultiAddress; -/// Block header type as expected by this runtime. -pub type Header = generic::Header; -/// Block type as expected by this runtime. -pub type Block = generic::Block; -/// A Block signed with a Justification -pub type SignedBlock = generic::SignedBlock; -/// BlockId type as expected by this runtime. -pub type BlockId = generic::BlockId; -/// The SignedExtension to the basic transaction logic. -pub type SignedExtra = ( - frame_system::CheckSpecVersion, - frame_system::CheckTxVersion, - frame_system::CheckGenesis, - frame_system::CheckEra, - frame_system::CheckNonce, - frame_system::CheckWeight, - pallet_transaction_payment::ChargeTransactionPayment, -); -/// Unchecked extrinsic type as expected by this runtime. -pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; -/// Extrinsic type that has already been checked. -pub type CheckedExtrinsic = generic::CheckedExtrinsic; -/// Executive: handles dispatch to the various modules. -pub type Executive = frame_executive::Executive< - Runtime, - Block, - frame_system::ChainContext, - Runtime, - AllPallets, ->; - impl_runtime_apis! { impl sp_api::Core for Runtime { fn version() -> RuntimeVersion { @@ -501,7 +507,9 @@ impl_runtime_apis! { } impl sp_block_builder::BlockBuilder for Runtime { - fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { + fn apply_extrinsic( + extrinsic: ::Extrinsic, + ) -> ApplyExtrinsicResult { Executive::apply_extrinsic(extrinsic) } @@ -520,9 +528,9 @@ impl_runtime_apis! { data.check_extrinsics(&block) } - fn random_seed() -> ::Hash { - RandomnessCollectiveFlip::random_seed().0 - } + // fn random_seed() -> ::Hash { + // RandomnessCollectiveFlip::random_seed().0 + // } } impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { @@ -540,18 +548,34 @@ impl_runtime_apis! { } } - impl sp_session::SessionKeys for Runtime { - fn generate_session_keys(seed: Option>) -> Vec { - opaque::SessionKeys::generate(seed) - } + impl sp_session::SessionKeys for Runtime { + fn decode_session_keys( + encoded: Vec, + ) -> Option, KeyTypeId)>> { + SessionKeys::decode_into_raw_public_keys(&encoded) + } - fn decode_session_keys( - encoded: Vec, - ) -> Option, KeyTypeId)>> { - opaque::SessionKeys::decode_into_raw_public_keys(&encoded) - } + fn generate_session_keys(seed: Option>) -> Vec { + SessionKeys::generate(seed) + } + } + + impl sp_consensus_aura::AuraApi for Runtime { + fn slot_duration() -> sp_consensus_aura::SlotDuration { + sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) + } + + fn authorities() -> Vec { + Aura::authorities() + } } + impl cumulus_primitives_core::CollectCollationInfo for Runtime { + fn collect_collation_info() -> cumulus_primitives_core::CollationInfo { + ParachainSystem::collect_collation_info() + } + } + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { fn account_nonce(account: AccountId) -> Index { System::account_nonce(account) @@ -609,4 +633,7 @@ impl_runtime_apis! { } } -cumulus_pallet_parachain_system::register_validate_block!(Runtime, Executive); +cumulus_pallet_parachain_system::register_validate_block!( + Runtime, + cumulus_pallet_aura_ext::BlockExecutor::, +); From 9c65875fd7f59754c65c87662df0083cf56addf1 Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Thu, 3 Jun 2021 14:56:13 -0600 Subject: [PATCH 29/91] add editorconfig & rustfmt.toml, run `rustfmt && eclint fix` (#42) * add editorconfig * rustfmt * fix missing doc comment lint * CLI note * use substrate editorconfig, ran `eclint fix` * add rustfmt hard tabs * rustfmt edition Co-authored-by: Dan Shields --- .editorconfig | 22 ++ .github/workflows/mlc_config.json | 10 +- .rustfmt.toml | 2 + Cargo.toml | 6 +- README.md | 186 +++++++-------- node/src/chain_spec.rs | 2 +- node/src/cli.rs | 4 +- node/src/main.rs | 4 +- pallets/template/README.md | 2 +- pallets/template/src/mock.rs | 12 +- runtime/build.rs | 10 +- runtime/src/lib.rs | 360 +++++++++++++++--------------- scripts/init.sh | 4 +- 13 files changed, 324 insertions(+), 300 deletions(-) create mode 100644 .editorconfig create mode 100644 .rustfmt.toml diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..2b40ec32 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,22 @@ +root = true +[*] +indent_style=tab +indent_size=tab +tab_width=4 +end_of_line=lf +charset=utf-8 +trim_trailing_whitespace=true +max_line_length=100 +insert_final_newline=true + +[*.yml] +indent_style=space +indent_size=2 +tab_width=8 +end_of_line=lf + +[*.sh] +indent_style=space +indent_size=2 +tab_width=8 +end_of_line=lf diff --git a/.github/workflows/mlc_config.json b/.github/workflows/mlc_config.json index f741e987..48bfb36d 100644 --- a/.github/workflows/mlc_config.json +++ b/.github/workflows/mlc_config.json @@ -1,7 +1,7 @@ { - "ignorePatterns": [ - { - "pattern": "^https://crates.io" - } - ] + "ignorePatterns": [ + { + "pattern": "^https://crates.io" + } + ] } diff --git a/.rustfmt.toml b/.rustfmt.toml new file mode 100644 index 00000000..3534ebc2 --- /dev/null +++ b/.rustfmt.toml @@ -0,0 +1,2 @@ +edition = "2018" +hard_tabs = true diff --git a/Cargo.toml b/Cargo.toml index 188c6fd1..28431094 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ panic = 'unwind' [workspace] members = [ - 'node', - 'pallets/*', - 'runtime', + 'node', + 'pallets/*', + 'runtime', ] diff --git a/README.md b/README.md index 55621936..6065e5af 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ A new [Cumulus](https://github.com/paritytech/cumulus/)-based Substrate node, re This project is a fork of the [Substrate Developer Hub Node Template](https://github.com/substrate-developer-hub/substrate-node-template) modified to include dependencies required for registering this node as a **parathread or parachian** -to an established **relay chain** +to an established **relay chain** ## Build & Run @@ -27,7 +27,7 @@ build the cargo build --release ``` -## Connect a Collator Node to a Relay Chain +## Connect a Collator Node to a Relay Chain ### Local Relay Chain Testnet @@ -49,7 +49,7 @@ cargo build --release ##### Generate the chainspec > NOTE: this file _must_ be generated on a _single node_ and then the file shared with all nodes! -> Other nodes _cannot_ generate it due to possible non-determinism. +> Other nodes _cannot_ generate it due to possible non-determinism. ```bash ./target/release/polkadot build-spec \ @@ -75,7 +75,7 @@ From the Polkadot working directory: --port 50555 ``` -Open a new terminal, same directory: +Open a new terminal, same directory: ```bash # Start Relay `Bob` node @@ -91,7 +91,7 @@ Add more nodes as needed, with non-conflicting ports, DB directories, and valida ##### Reserve a ParaID -To connect to a relay chain, you must first _reserve a `ParaId` for your parathread that will +To connect to a relay chain, you must first _reserve a `ParaId` for your parathread that will become a parachain. To do this, you _must_ have currency available on an account on that network in sufficient amount to reserve an ID. This is 20 "units" on the testnets, check for the amount on your relay chain. The relay chain will increment starting at `2000` for all chains connecting @@ -104,26 +104,26 @@ under the Parachains -> Parathreads tab and use the `+ ParaID` button. > You will need to connect to a _relay chain node_ to submit this extrinsic! > In testnets, your ParaId will be 2000 for your first parathread registration. -In this example flow, we will use the **`Charlie` development account** where we have funds available. +In this example flow, we will use the **`Charlie` development account** where we have funds available. Once you submit this extrinsic successfully, you can start your collators. ### Parachain Network #### Select the Correct Relay Chain -To operate your parachain, it _must_ connect to the _correct_ relay chain. +To operate your parachain, it _must_ connect to the _correct_ relay chain. **Keep in mind, you need to configure the specific relay chain you will connect to in your** **collator `chain_spec.rs`**. Specifically you pass the command for the network you need in the `Extensions` section of your `ChainSpec::from_genesis(` section: ```rust - Extensions { + Extensions { relay_chain: "rococo-local".into(), // You MUST set this to the correct network! para_id: id.into(), }, ``` -> You can choose from any pre-set runtime chain spec in the Polkadot repo looking in the +> You can choose from any pre-set runtime chain spec in the Polkadot repo looking in the > `cli/src/command.rs` and `node/service/src/chain_spec.rs` files or generate your own and use > that. See the [Cumulus Workshop](https://substrate.dev/cumulus-workshop/) for how. @@ -139,7 +139,7 @@ you modified the code you can use the following commands: cargo build --release # Place to store files we need -mkdir -p resources +mkdir -p resources # Build the Chain spec ./target/release/parachain-collator build-spec \ @@ -183,45 +183,45 @@ From the parachain template working directory: _Output:_ ```bash -2021-05-30 16:57:39 Parachain Collator Template -2021-05-30 16:57:39 ✌️ version 3.0.0-acce183-x86_64-linux-gnu -2021-05-30 16:57:39 ❤️ by Anonymous, 2017-2021 -2021-05-30 16:57:39 📋 Chain specification: Local Testnet -2021-05-30 16:57:39 🏷 Node name: Alice -2021-05-30 16:57:39 👤 Role: AUTHORITY -2021-05-30 16:57:39 💾 Database: RocksDb at /tmp/parachain/alice/chains/local_testnet/db -2021-05-30 16:57:39 ⛓ Native runtime: template-parachain-1 (template-parachain-0.tx1.au1) -2021-05-30 16:57:41 Parachain id: Id(2000) -2021-05-30 16:57:41 Parachain Account: 5Ec4AhPUwPeyTFyuhGuBbD224mY85LKLMSqSSo33JYWCazU4 -2021-05-30 16:57:41 Parachain genesis state: 0x0000000000000000000000000000000000000000000000000000000000000000000a96f42b5cb798190e5f679bb16970905087a9a9fc612fb5ca6b982b85783c0d03170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c11131400 -2021-05-30 16:57:41 Is collating: yes -2021-05-30 16:57:41 [Parachain] 🔨 Initializing Genesis block/state (state: 0x0a96…3c0d, header-hash: 0xd42b…f271) -2021-05-30 16:57:41 [Parachain] ⏱ Loaded block-time = 12s from block 0xd42bb78354bc21770e3f0930ed45c7377558d2d8e81ca4d457e573128aabf271 -2021-05-30 16:57:43 [Relaychain] 🔨 Initializing Genesis block/state (state: 0xace1…1b62, header-hash: 0xfa68…cf58) -2021-05-30 16:57:43 [Relaychain] 👴 Loading GRANDPA authority set from genesis on what appears to be first startup. -2021-05-30 16:57:44 [Relaychain] ⏱ Loaded block-time = 6s from block 0xfa68f5abd2a80394b87c9bd07e0f4eee781b8c696d0a22c8e5ba38ae10e1cf58 -2021-05-30 16:57:44 [Relaychain] 👶 Creating empty BABE epoch changes on what appears to be first startup. -2021-05-30 16:57:44 [Relaychain] 🏷 Local node identity is: 12D3KooWBjYK2W4dsBfsrFA9tZCStb5ogPb6STQqi2AK9awXfXyG -2021-05-30 16:57:44 [Relaychain] 📦 Highest known block at #0 -2021-05-30 16:57:44 [Relaychain] 〽️ Prometheus server started at 127.0.0.1:9616 -2021-05-30 16:57:44 [Relaychain] Listening for new connections on 127.0.0.1:9945. -2021-05-30 16:57:44 [Parachain] Using default protocol ID "sup" because none is configured in the chain specs -2021-05-30 16:57:44 [Parachain] 🏷 Local node identity is: 12D3KooWADBSC58of6ng2M29YTDkmWCGehHoUZhsy9LGkHgYscBw -2021-05-30 16:57:44 [Parachain] 📦 Highest known block at #0 -2021-05-30 16:57:44 [Parachain] Unable to listen on 127.0.0.1:9945 -2021-05-30 16:57:44 [Parachain] Unable to bind RPC server to 127.0.0.1:9945. Trying random port. -2021-05-30 16:57:44 [Parachain] Listening for new connections on 127.0.0.1:45141. -2021-05-30 16:57:45 [Relaychain] 🔍 Discovered new external address for our node: /ip4/192.168.42.204/tcp/30334/ws/p2p/12D3KooWBjYK2W4dsBfsrFA9tZCStb5ogPb6STQqi2AK9awXfXyG -2021-05-30 16:57:45 [Parachain] 🔍 Discovered new external address for our node: /ip4/192.168.42.204/tcp/30333/p2p/12D3KooWADBSC58of6ng2M29YTDkmWCGehHoUZhsy9LGkHgYscBw -2021-05-30 16:57:48 [Relaychain] ✨ Imported #8 (0xe60b…9b0a) -2021-05-30 16:57:49 [Relaychain] 💤 Idle (2 peers), best: #8 (0xe60b…9b0a), finalized #5 (0x1e6f…567c), ⬇ 4.5kiB/s ⬆ 2.2kiB/s -2021-05-30 16:57:49 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 2.0kiB/s ⬆ 1.7kiB/s -2021-05-30 16:57:54 [Relaychain] ✨ Imported #9 (0x1af9…c9be) -2021-05-30 16:57:54 [Relaychain] ✨ Imported #9 (0x6ed8…fdf6) -2021-05-30 16:57:54 [Relaychain] 💤 Idle (2 peers), best: #9 (0x1af9…c9be), finalized #6 (0x3319…69a2), ⬇ 1.8kiB/s ⬆ 0.5kiB/s -2021-05-30 16:57:54 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 0.2kiB/s ⬆ 0.2kiB/s -2021-05-30 16:57:59 [Relaychain] 💤 Idle (2 peers), best: #9 (0x1af9…c9be), finalized #7 (0x5b50…1e5b), ⬇ 0.6kiB/s ⬆ 0.4kiB/s -2021-05-30 16:57:59 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 +2021-05-30 16:57:39 Parachain Collator Template +2021-05-30 16:57:39 ✌️ version 3.0.0-acce183-x86_64-linux-gnu +2021-05-30 16:57:39 ❤️ by Anonymous, 2017-2021 +2021-05-30 16:57:39 📋 Chain specification: Local Testnet +2021-05-30 16:57:39 🏷 Node name: Alice +2021-05-30 16:57:39 👤 Role: AUTHORITY +2021-05-30 16:57:39 💾 Database: RocksDb at /tmp/parachain/alice/chains/local_testnet/db +2021-05-30 16:57:39 ⛓ Native runtime: template-parachain-1 (template-parachain-0.tx1.au1) +2021-05-30 16:57:41 Parachain id: Id(2000) +2021-05-30 16:57:41 Parachain Account: 5Ec4AhPUwPeyTFyuhGuBbD224mY85LKLMSqSSo33JYWCazU4 +2021-05-30 16:57:41 Parachain genesis state: 0x0000000000000000000000000000000000000000000000000000000000000000000a96f42b5cb798190e5f679bb16970905087a9a9fc612fb5ca6b982b85783c0d03170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c11131400 +2021-05-30 16:57:41 Is collating: yes +2021-05-30 16:57:41 [Parachain] 🔨 Initializing Genesis block/state (state: 0x0a96…3c0d, header-hash: 0xd42b…f271) +2021-05-30 16:57:41 [Parachain] ⏱ Loaded block-time = 12s from block 0xd42bb78354bc21770e3f0930ed45c7377558d2d8e81ca4d457e573128aabf271 +2021-05-30 16:57:43 [Relaychain] 🔨 Initializing Genesis block/state (state: 0xace1…1b62, header-hash: 0xfa68…cf58) +2021-05-30 16:57:43 [Relaychain] 👴 Loading GRANDPA authority set from genesis on what appears to be first startup. +2021-05-30 16:57:44 [Relaychain] ⏱ Loaded block-time = 6s from block 0xfa68f5abd2a80394b87c9bd07e0f4eee781b8c696d0a22c8e5ba38ae10e1cf58 +2021-05-30 16:57:44 [Relaychain] 👶 Creating empty BABE epoch changes on what appears to be first startup. +2021-05-30 16:57:44 [Relaychain] 🏷 Local node identity is: 12D3KooWBjYK2W4dsBfsrFA9tZCStb5ogPb6STQqi2AK9awXfXyG +2021-05-30 16:57:44 [Relaychain] 📦 Highest known block at #0 +2021-05-30 16:57:44 [Relaychain] 〽️ Prometheus server started at 127.0.0.1:9616 +2021-05-30 16:57:44 [Relaychain] Listening for new connections on 127.0.0.1:9945. +2021-05-30 16:57:44 [Parachain] Using default protocol ID "sup" because none is configured in the chain specs +2021-05-30 16:57:44 [Parachain] 🏷 Local node identity is: 12D3KooWADBSC58of6ng2M29YTDkmWCGehHoUZhsy9LGkHgYscBw +2021-05-30 16:57:44 [Parachain] 📦 Highest known block at #0 +2021-05-30 16:57:44 [Parachain] Unable to listen on 127.0.0.1:9945 +2021-05-30 16:57:44 [Parachain] Unable to bind RPC server to 127.0.0.1:9945. Trying random port. +2021-05-30 16:57:44 [Parachain] Listening for new connections on 127.0.0.1:45141. +2021-05-30 16:57:45 [Relaychain] 🔍 Discovered new external address for our node: /ip4/192.168.42.204/tcp/30334/ws/p2p/12D3KooWBjYK2W4dsBfsrFA9tZCStb5ogPb6STQqi2AK9awXfXyG +2021-05-30 16:57:45 [Parachain] 🔍 Discovered new external address for our node: /ip4/192.168.42.204/tcp/30333/p2p/12D3KooWADBSC58of6ng2M29YTDkmWCGehHoUZhsy9LGkHgYscBw +2021-05-30 16:57:48 [Relaychain] ✨ Imported #8 (0xe60b…9b0a) +2021-05-30 16:57:49 [Relaychain] 💤 Idle (2 peers), best: #8 (0xe60b…9b0a), finalized #5 (0x1e6f…567c), ⬇ 4.5kiB/s ⬆ 2.2kiB/s +2021-05-30 16:57:49 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 2.0kiB/s ⬆ 1.7kiB/s +2021-05-30 16:57:54 [Relaychain] ✨ Imported #9 (0x1af9…c9be) +2021-05-30 16:57:54 [Relaychain] ✨ Imported #9 (0x6ed8…fdf6) +2021-05-30 16:57:54 [Relaychain] 💤 Idle (2 peers), best: #9 (0x1af9…c9be), finalized #6 (0x3319…69a2), ⬇ 1.8kiB/s ⬆ 0.5kiB/s +2021-05-30 16:57:54 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 0.2kiB/s ⬆ 0.2kiB/s +2021-05-30 16:57:59 [Relaychain] 💤 Idle (2 peers), best: #9 (0x1af9…c9be), finalized #7 (0x5b50…1e5b), ⬇ 0.6kiB/s ⬆ 0.4kiB/s +2021-05-30 16:57:59 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 2021-05-30 16:58:00 [Relaychain] ✨ Imported #10 (0xc9c9…1ca3) ``` @@ -237,12 +237,12 @@ Ensure you set the `ParaId to 2000` and the `parachain: Bool to Yes`. The files you will need are in the `./resources` folder, you just created. -> Note : When registering to the public Rococo testnet, ensure you set a **unique** +> Note : When registering to the public Rococo testnet, ensure you set a **unique** > `para_id` > 1000, below 1000 is reserved _exclusively_ for system parachains. #### Restart the Parachain (Collator) and Wait... -The collator node may need to be restarted to get it functioning as expected. After a +The collator node may need to be restarted to get it functioning as expected. After a [new epoch](https://wiki.polkadot.network/docs/en/glossary#epoch) starts on the relay chain, your parachain will come online. Once this happens, you should see the collator start reporting _parachian_ blocks: @@ -250,50 +250,50 @@ reporting _parachian_ blocks: ```bash # Notice the relay epoch change! Only then do we start parachain collating! # -2021-05-30 17:00:04 [Relaychain] 💤 Idle (2 peers), best: #30 (0xfc02…2a2a), finalized #28 (0x10ff…6539), ⬇ 1.0kiB/s ⬆ 0.3kiB/s -2021-05-30 17:00:04 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 -2021-05-30 17:00:06 [Relaychain] 👶 New epoch 3 launching at block 0x68bc…0605 (block slot 270402601 >= start slot 270402601). -2021-05-30 17:00:06 [Relaychain] 👶 Next epoch starts at slot 270402611 -2021-05-30 17:00:06 [Relaychain] ✨ Imported #31 (0x68bc…0605) +2021-05-30 17:00:04 [Relaychain] 💤 Idle (2 peers), best: #30 (0xfc02…2a2a), finalized #28 (0x10ff…6539), ⬇ 1.0kiB/s ⬆ 0.3kiB/s +2021-05-30 17:00:04 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 +2021-05-30 17:00:06 [Relaychain] 👶 New epoch 3 launching at block 0x68bc…0605 (block slot 270402601 >= start slot 270402601). +2021-05-30 17:00:06 [Relaychain] 👶 Next epoch starts at slot 270402611 +2021-05-30 17:00:06 [Relaychain] ✨ Imported #31 (0x68bc…0605) 2021-05-30 17:00:06 [Parachain] Starting collation. relay_parent=0x68bcc93d24a31a2c89800a56c7a2b275fe9ca7bd63f829b64588ae0d99280605 at=0xd42bb78354bc21770e3f0930ed45c7377558d2d8e81ca4d457e573128aabf271 -2021-05-30 17:00:06 [Parachain] 🙌 Starting consensus session on top of parent 0xd42bb78354bc21770e3f0930ed45c7377558d2d8e81ca4d457e573128aabf271 -2021-05-30 17:00:06 [Parachain] 🎁 Prepared block for proposing at 1 [hash: 0xf6507812bf60bf53af1311f775aac03869be870df6b0406b2969784d0935cb92; parent_hash: 0xd42b…f271; extrinsics (2): [0x1bf5…1d76, 0x7c9b…4e23]] -2021-05-30 17:00:06 [Parachain] 🔖 Pre-sealed block for proposal at 1. Hash now 0x80fc151d7ccf228b802525022b6de257e42388ec7dc3c1dd7de491313650ccae, previously 0xf6507812bf60bf53af1311f775aac03869be870df6b0406b2969784d0935cb92. -2021-05-30 17:00:06 [Parachain] ✨ Imported #1 (0x80fc…ccae) +2021-05-30 17:00:06 [Parachain] 🙌 Starting consensus session on top of parent 0xd42bb78354bc21770e3f0930ed45c7377558d2d8e81ca4d457e573128aabf271 +2021-05-30 17:00:06 [Parachain] 🎁 Prepared block for proposing at 1 [hash: 0xf6507812bf60bf53af1311f775aac03869be870df6b0406b2969784d0935cb92; parent_hash: 0xd42b…f271; extrinsics (2): [0x1bf5…1d76, 0x7c9b…4e23]] +2021-05-30 17:00:06 [Parachain] 🔖 Pre-sealed block for proposal at 1. Hash now 0x80fc151d7ccf228b802525022b6de257e42388ec7dc3c1dd7de491313650ccae, previously 0xf6507812bf60bf53af1311f775aac03869be870df6b0406b2969784d0935cb92. +2021-05-30 17:00:06 [Parachain] ✨ Imported #1 (0x80fc…ccae) 2021-05-30 17:00:06 [Parachain] Produced proof-of-validity candidate. block_hash=0x80fc151d7ccf228b802525022b6de257e42388ec7dc3c1dd7de491313650ccae -2021-05-30 17:00:09 [Relaychain] 💤 Idle (2 peers), best: #31 (0x68bc…0605), finalized #29 (0xa6fa…9e16), ⬇ 1.2kiB/s ⬆ 129.9kiB/s -2021-05-30 17:00:09 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 -2021-05-30 17:00:12 [Relaychain] ✨ Imported #32 (0x5e92…ba30) +2021-05-30 17:00:09 [Relaychain] 💤 Idle (2 peers), best: #31 (0x68bc…0605), finalized #29 (0xa6fa…9e16), ⬇ 1.2kiB/s ⬆ 129.9kiB/s +2021-05-30 17:00:09 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 +2021-05-30 17:00:12 [Relaychain] ✨ Imported #32 (0x5e92…ba30) 2021-05-30 17:00:12 [Relaychain] Moving approval window from session 0..=2 to 0..=3 -2021-05-30 17:00:12 [Relaychain] ✨ Imported #32 (0x8144…74eb) -2021-05-30 17:00:14 [Relaychain] 💤 Idle (2 peers), best: #32 (0x5e92…ba30), finalized #29 (0xa6fa…9e16), ⬇ 1.4kiB/s ⬆ 0.2kiB/s -2021-05-30 17:00:14 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 -2021-05-30 17:00:18 [Relaychain] ✨ Imported #33 (0x8c30…9ccd) +2021-05-30 17:00:12 [Relaychain] ✨ Imported #32 (0x8144…74eb) +2021-05-30 17:00:14 [Relaychain] 💤 Idle (2 peers), best: #32 (0x5e92…ba30), finalized #29 (0xa6fa…9e16), ⬇ 1.4kiB/s ⬆ 0.2kiB/s +2021-05-30 17:00:14 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 +2021-05-30 17:00:18 [Relaychain] ✨ Imported #33 (0x8c30…9ccd) 2021-05-30 17:00:18 [Parachain] Starting collation. relay_parent=0x8c30ce9e6e9867824eb2aff40148ac1ed64cf464f51c5f2574013b44b20f9ccd at=0x80fc151d7ccf228b802525022b6de257e42388ec7dc3c1dd7de491313650ccae -2021-05-30 17:00:19 [Relaychain] 💤 Idle (2 peers), best: #33 (0x8c30…9ccd), finalized #30 (0xfc02…2a2a), ⬇ 0.7kiB/s ⬆ 0.4kiB/s -2021-05-30 17:00:19 [Parachain] 💤 Idle (0 peers), best: #1 (0x80fc…ccae), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 -2021-05-30 17:00:22 [Relaychain] 👴 Applying authority set change scheduled at block #31 -2021-05-30 17:00:22 [Relaychain] 👴 Applying GRANDPA set change to new set [(Public(88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee (5FA9nQDV...)), 1), (Public(d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69 (5GoNkf6W...)), 1)] -2021-05-30 17:00:22 [Relaychain] 👴 Imported justification for block #31 that triggers command Changing authorities, signaling voter. -2021-05-30 17:00:24 [Relaychain] ✨ Imported #34 (0x211b…febf) +2021-05-30 17:00:19 [Relaychain] 💤 Idle (2 peers), best: #33 (0x8c30…9ccd), finalized #30 (0xfc02…2a2a), ⬇ 0.7kiB/s ⬆ 0.4kiB/s +2021-05-30 17:00:19 [Parachain] 💤 Idle (0 peers), best: #1 (0x80fc…ccae), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 +2021-05-30 17:00:22 [Relaychain] 👴 Applying authority set change scheduled at block #31 +2021-05-30 17:00:22 [Relaychain] 👴 Applying GRANDPA set change to new set [(Public(88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee (5FA9nQDV...)), 1), (Public(d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69 (5GoNkf6W...)), 1)] +2021-05-30 17:00:22 [Relaychain] 👴 Imported justification for block #31 that triggers command Changing authorities, signaling voter. +2021-05-30 17:00:24 [Relaychain] ✨ Imported #34 (0x211b…febf) 2021-05-30 17:00:24 [Parachain] Starting collation. relay_parent=0x211b3c53bebeff8af05e8f283d59fe171b7f91a5bf9c4669d88943f5a42bfebf at=0x80fc151d7ccf228b802525022b6de257e42388ec7dc3c1dd7de491313650ccae -2021-05-30 17:00:24 [Parachain] 🙌 Starting consensus session on top of parent 0x80fc151d7ccf228b802525022b6de257e42388ec7dc3c1dd7de491313650ccae -2021-05-30 17:00:24 [Parachain] 🎁 Prepared block for proposing at 2 [hash: 0x10fcb3180e966729c842d1b0c4d8d2c4028cfa8bef02b909af5ef787e6a6a694; parent_hash: 0x80fc…ccae; extrinsics (2): [0x4a6c…1fc6, 0x6b84…7cea]] -2021-05-30 17:00:24 [Parachain] 🔖 Pre-sealed block for proposal at 2. Hash now 0x5087fd06b1b73d90cfc3ad175df8495b378fffbb02fea212cc9e49a00fd8b5a0, previously 0x10fcb3180e966729c842d1b0c4d8d2c4028cfa8bef02b909af5ef787e6a6a694. -2021-05-30 17:00:24 [Parachain] ✨ Imported #2 (0x5087…b5a0) +2021-05-30 17:00:24 [Parachain] 🙌 Starting consensus session on top of parent 0x80fc151d7ccf228b802525022b6de257e42388ec7dc3c1dd7de491313650ccae +2021-05-30 17:00:24 [Parachain] 🎁 Prepared block for proposing at 2 [hash: 0x10fcb3180e966729c842d1b0c4d8d2c4028cfa8bef02b909af5ef787e6a6a694; parent_hash: 0x80fc…ccae; extrinsics (2): [0x4a6c…1fc6, 0x6b84…7cea]] +2021-05-30 17:00:24 [Parachain] 🔖 Pre-sealed block for proposal at 2. Hash now 0x5087fd06b1b73d90cfc3ad175df8495b378fffbb02fea212cc9e49a00fd8b5a0, previously 0x10fcb3180e966729c842d1b0c4d8d2c4028cfa8bef02b909af5ef787e6a6a694. +2021-05-30 17:00:24 [Parachain] ✨ Imported #2 (0x5087…b5a0) 2021-05-30 17:00:24 [Parachain] Produced proof-of-validity candidate. block_hash=0x5087fd06b1b73d90cfc3ad175df8495b378fffbb02fea212cc9e49a00fd8b5a0 -2021-05-30 17:00:24 [Relaychain] 💤 Idle (2 peers), best: #34 (0x211b…febf), finalized #31 (0x68bc…0605), ⬇ 1.0kiB/s ⬆ 130.1kiB/s -2021-05-30 17:00:24 [Parachain] 💤 Idle (0 peers), best: #1 (0x80fc…ccae), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 -2021-05-30 17:00:29 [Relaychain] 💤 Idle (2 peers), best: #34 (0x211b…febf), finalized #32 (0x5e92…ba30), ⬇ 0.2kiB/s ⬆ 0.1kiB/s -2021-05-30 17:00:29 [Parachain] 💤 Idle (0 peers), best: #1 (0x80fc…ccae), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 -2021-05-30 17:00:30 [Relaychain] ✨ Imported #35 (0xee07…38a0) -2021-05-30 17:00:34 [Relaychain] 💤 Idle (2 peers), best: #35 (0xee07…38a0), finalized #33 (0x8c30…9ccd), ⬇ 0.9kiB/s ⬆ 0.3kiB/s -2021-05-30 17:00:34 [Parachain] 💤 Idle (0 peers), best: #1 (0x80fc…ccae), finalized #1 (0x80fc…ccae), ⬇ 0 ⬆ 0 -2021-05-30 17:00:36 [Relaychain] ✨ Imported #36 (0xe8ce…4af6) +2021-05-30 17:00:24 [Relaychain] 💤 Idle (2 peers), best: #34 (0x211b…febf), finalized #31 (0x68bc…0605), ⬇ 1.0kiB/s ⬆ 130.1kiB/s +2021-05-30 17:00:24 [Parachain] 💤 Idle (0 peers), best: #1 (0x80fc…ccae), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 +2021-05-30 17:00:29 [Relaychain] 💤 Idle (2 peers), best: #34 (0x211b…febf), finalized #32 (0x5e92…ba30), ⬇ 0.2kiB/s ⬆ 0.1kiB/s +2021-05-30 17:00:29 [Parachain] 💤 Idle (0 peers), best: #1 (0x80fc…ccae), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 +2021-05-30 17:00:30 [Relaychain] ✨ Imported #35 (0xee07…38a0) +2021-05-30 17:00:34 [Relaychain] 💤 Idle (2 peers), best: #35 (0xee07…38a0), finalized #33 (0x8c30…9ccd), ⬇ 0.9kiB/s ⬆ 0.3kiB/s +2021-05-30 17:00:34 [Parachain] 💤 Idle (0 peers), best: #1 (0x80fc…ccae), finalized #1 (0x80fc…ccae), ⬇ 0 ⬆ 0 +2021-05-30 17:00:36 [Relaychain] ✨ Imported #36 (0xe8ce…4af6) 2021-05-30 17:00:36 [Parachain] Starting collation. relay_parent=0xe8cec8015c0c7bf508bf3f2f82b1696e9cca078e814b0f6671f0b0d5dfe84af6 at=0x5087fd06b1b73d90cfc3ad175df8495b378fffbb02fea212cc9e49a00fd8b5a0 -2021-05-30 17:00:39 [Relaychain] 💤 Idle (2 peers), best: #36 (0xe8ce…4af6), finalized #33 (0x8c30…9ccd), ⬇ 0.6kiB/s ⬆ 0.1kiB/s -2021-05-30 17:00:39 [Parachain] 💤 Idle (0 peers), best: #2 (0x5087…b5a0), finalized #1 (0x80fc…ccae), ⬇ 0 ⬆ 0 -``` +2021-05-30 17:00:39 [Relaychain] 💤 Idle (2 peers), best: #36 (0xe8ce…4af6), finalized #33 (0x8c30…9ccd), ⬇ 0.6kiB/s ⬆ 0.1kiB/s +2021-05-30 17:00:39 [Parachain] 💤 Idle (0 peers), best: #2 (0x5087…b5a0), finalized #1 (0x80fc…ccae), ⬇ 0 ⬆ 0 +``` > Note the delay here! It may take some time for your relaychain to enter a new epoch. @@ -302,9 +302,9 @@ reporting _parachian_ blocks: --- > _IS THIS TEMPLATE ROCOCO & WESTEND COMPATIBLE?_ -> +> > **Yes!** -> +> > As of 30/05/2021 for Polkadot runtimes v0.9.3 --- @@ -319,12 +319,12 @@ reporting _parachian_ blocks: Find `Chain spec` files to connect to live networks [here](https://github.com/paritytech/polkadot/tree/master/node/service/res). You want to be sure to use the correct git release tag in these files, as they change from time -to time and _must_ match the live network! +to time and _must_ match the live network! - **Rococo** is generally more unstable getting tests incorporated first, and reset often! - - Join in the [Rococo Faucet](https://matrix.to/#/#rococo-faucet:matrix.org) to get some funds. + - Join in the [Rococo Faucet](https://matrix.to/#/#rococo-faucet:matrix.org) to get some funds. - **Westend** is more stable, and is not reset except when absolutely needed. - - Join in the [Westend Faucet](https://matrix.to/#/#westend_faucet:matrix.org) to get some funds. + - Join in the [Westend Faucet](https://matrix.to/#/#westend_faucet:matrix.org) to get some funds. These networks are under _constant development_ - so expect to need to follow progress and update your parachains in lock step with the testnet changes if you wish to connect to the network. diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index bca7c27c..57f5d934 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -146,4 +146,4 @@ fn testnet_genesis( }, cumulus_pallet_aura_ext: Default::default(), } -} \ No newline at end of file +} diff --git a/node/src/cli.rs b/node/src/cli.rs index 365a19bf..9fa698de 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -1,6 +1,6 @@ use crate::chain_spec; -use sc_cli; use cumulus_client_cli; +use sc_cli; use std::path::PathBuf; use structopt::StructOpt; @@ -127,4 +127,4 @@ impl RelayChainCli { base: polkadot_cli::RunCmd::from_iter(relay_chain_args), } } -} \ No newline at end of file +} diff --git a/node/src/main.rs b/node/src/main.rs index 62155f4c..ca6c23e5 100644 --- a/node/src/main.rs +++ b/node/src/main.rs @@ -1,3 +1,5 @@ +//! Substrate Parachain Node Template CLI + #![warn(missing_docs)] mod chain_spec; @@ -8,4 +10,4 @@ mod command; fn main() -> sc_cli::Result<()> { command::run() -} \ No newline at end of file +} diff --git a/pallets/template/README.md b/pallets/template/README.md index 8d751a42..5a646123 100644 --- a/pallets/template/README.md +++ b/pallets/template/README.md @@ -1 +1 @@ -License: Unlicense \ No newline at end of file +License: Unlicense diff --git a/pallets/template/src/mock.rs b/pallets/template/src/mock.rs index 8719bcb4..f3a76775 100644 --- a/pallets/template/src/mock.rs +++ b/pallets/template/src/mock.rs @@ -1,10 +1,11 @@ use crate as pallet_template; -use sp_core::H256; use frame_support::parameter_types; +use frame_system as system; +use sp_core::H256; use sp_runtime::{ - traits::{BlakeTwo256, IdentityLookup}, testing::Header, + testing::Header, + traits::{BlakeTwo256, IdentityLookup}, }; -use frame_system as system; type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; type Block = frame_system::mocking::MockBlock; @@ -58,5 +59,8 @@ impl pallet_template::Config for Test { // Build genesis storage according to the mock runtime. pub fn new_test_ext() -> sp_io::TestExternalities { - system::GenesisConfig::default().build_storage::().unwrap().into() + system::GenesisConfig::default() + .build_storage::() + .unwrap() + .into() } diff --git a/runtime/build.rs b/runtime/build.rs index 18a76f78..9b53d245 100644 --- a/runtime/build.rs +++ b/runtime/build.rs @@ -1,9 +1,9 @@ use substrate_wasm_builder::WasmBuilder; fn main() { - WasmBuilder::new() - .with_current_project() - .export_heap_base() - .import_memory() - .build() + WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .build() } diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 6fd209a0..d4b4875f 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -10,9 +10,9 @@ use sp_api::impl_runtime_apis; use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, - traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, IdentifyAccount, Verify}, + traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, IdentifyAccount, Verify}, transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, MultiSignature + ApplyExtrinsicResult, MultiSignature, }; use sp_std::prelude::*; @@ -22,10 +22,10 @@ use sp_version::RuntimeVersion; // A few exports that help ease life for downstream crates. pub use frame_support::{ - construct_runtime, parameter_types, match_type, - traits::{Randomness, IsInVec, All}, + construct_runtime, match_type, parameter_types, + traits::{All, IsInVec, Randomness}, weights::{ - constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND}, + constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND}, DispatchClass, IdentityFee, Weight, }, StorageValue, @@ -33,30 +33,28 @@ pub use frame_support::{ use frame_system::limits::{BlockLength, BlockWeights}; pub use pallet_balances::Call as BalancesCall; pub use pallet_timestamp::Call as TimestampCall; +pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; pub use sp_runtime::{MultiAddress, Perbill, Permill}; -pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; // Polkadot & XCM imports +use pallet_xcm::XcmPassthrough; use polkadot_parachain::primitives::Sibling; -use xcm::v0::{MultiAsset, MultiLocation, MultiLocation::*, Junction::*, BodyId, NetworkId}; +use xcm::v0::Xcm; +use xcm::v0::{BodyId, Junction::*, MultiAsset, MultiLocation, MultiLocation::*, NetworkId}; use xcm_builder::{ - AccountId32Aliases, CurrencyAdapter, LocationInverter, ParentIsDefault, RelayChainAsNative, - SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, - SovereignSignedViaLocation, EnsureXcmOrigin, AllowUnpaidExecutionFrom, ParentAsSuperuser, - AllowTopLevelPaidExecutionFrom, TakeWeightCredit, FixedWeightBounds, IsConcrete, NativeAsset, - UsingComponents, SignedToAccountId32, + AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter, + EnsureXcmOrigin, FixedWeightBounds, IsConcrete, LocationInverter, NativeAsset, + ParentAsSuperuser, ParentIsDefault, RelayChainAsNative, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, + SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, }; use xcm_executor::{Config, XcmExecutor}; -use pallet_xcm::XcmPassthrough; -use xcm::v0::Xcm; - /// Import the template pallet. pub use template; - /// Alias to 512-bit hash when used in the context of a transaction signature on the chain. pub type Signature = MultiSignature; /// Some way of identifying an account on the chain. We intentionally make it equivalent @@ -114,10 +112,10 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("template-parachain"), impl_name: create_runtime_str!("template-parachain"), authoring_version: 1, - spec_version: 1, - impl_version: 0, - apis: RUNTIME_API_VERSIONS, - transaction_version: 1, + spec_version: 1, + impl_version: 0, + apis: RUNTIME_API_VERSIONS, + transaction_version: 1, }; /// This determines the average expected block time that we are targeting. @@ -132,13 +130,12 @@ pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK; pub const EPOCH_DURATION_IN_BLOCKS: u32 = 10 * MINUTES; - // Time is measured by number of blocks. pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber); pub const HOURS: BlockNumber = MINUTES * 60; pub const DAYS: BlockNumber = HOURS * 24; -// Unit = the base number of indivisible units for balances +// Unit = the base number of indivisible units for balances pub const UNIT: Balance = 1_000_000_000_000; pub const MILLIUNIT: Balance = 1_000_000_000; pub const MICROUNIT: Balance = 1_000_000; @@ -149,10 +146,10 @@ pub const PRIMARY_PROBABILITY: (u64, u64) = (1, 4); /// The version information used to identify this runtime when compiled natively. #[cfg(feature = "std")] pub fn native_version() -> NativeVersion { - NativeVersion { - runtime_version: VERSION, - can_author_with: Default::default(), - } + NativeVersion { + runtime_version: VERSION, + can_author_with: Default::default(), + } } /// We assume that ~10% of the block weight is consumed by `on_initalize` handlers. @@ -165,7 +162,7 @@ const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); const MAXIMUM_BLOCK_WEIGHT: Weight = WEIGHT_PER_SECOND * 2; parameter_types! { - pub const BlockHashCount: BlockNumber = 250; + pub const BlockHashCount: BlockNumber = 250; pub const Version: RuntimeVersion = VERSION; pub RuntimeBlockLength: BlockLength = BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); @@ -193,7 +190,7 @@ parameter_types! { // Configure FRAME pallets to include in runtime. impl frame_system::Config for Runtime { - /// The identifier used to distinguish between accounts. + /// The identifier used to distinguish between accounts. type AccountId = AccountId; /// The aggregated dispatch type that is available for extrinsics. type Call = Call; @@ -220,36 +217,36 @@ impl frame_system::Config for Runtime { /// Converts a module to an index of this module in the runtime. type PalletInfo = PalletInfo; type AccountData = pallet_balances::AccountData; - /// What to do if a new account is created. + /// What to do if a new account is created. type OnNewAccount = (); - /// What to do if an account is fully reaped from the system. - type OnKilledAccount = (); - /// The weight of database operations that the runtime can invoke. + /// What to do if an account is fully reaped from the system. + type OnKilledAccount = (); + /// The weight of database operations that the runtime can invoke. type DbWeight = (); - /// The basic call filter to use in dispatchable. + /// The basic call filter to use in dispatchable. type BaseCallFilter = (); - /// Weight information for the extrinsics of this pallet. + /// Weight information for the extrinsics of this pallet. type SystemWeightInfo = (); - /// Block & extrinsics weights: base values and limits. + /// Block & extrinsics weights: base values and limits. type BlockWeights = RuntimeBlockWeights; - /// The maximum length of a block (in bytes). + /// The maximum length of a block (in bytes). type BlockLength = RuntimeBlockLength; - /// This is used as an identifier of the chain. 42 is the generic substrate prefix. + /// This is used as an identifier of the chain. 42 is the generic substrate prefix. type SS58Prefix = SS58Prefix; - /// The action to take on a Runtime Upgrade + /// The action to take on a Runtime Upgrade type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; } parameter_types! { - pub const MinimumPeriod: u64 = SLOT_DURATION / 2; + pub const MinimumPeriod: u64 = SLOT_DURATION / 2; } impl pallet_timestamp::Config for Runtime { - /// A timestamp: milliseconds since the unix epoch. - type Moment = u64; - type OnTimestampSet = (); - type MinimumPeriod = MinimumPeriod; - type WeightInfo = (); + /// A timestamp: milliseconds since the unix epoch. + type Moment = u64; + type OnTimestampSet = (); + type MinimumPeriod = MinimumPeriod; + type WeightInfo = (); } parameter_types! { @@ -260,15 +257,15 @@ parameter_types! { } impl pallet_balances::Config for Runtime { - /// The type for recording an account's balance. - type Balance = Balance; - /// The ubiquitous event type. - type Event = Event; - type DustRemoval = (); - type ExistentialDeposit = ExistentialDeposit; - type AccountStore = System; - type WeightInfo = pallet_balances::weights::SubstrateWeight; - type MaxLocks = MaxLocks; + /// The type for recording an account's balance. + type Balance = Balance; + /// The ubiquitous event type. + type Event = Event; + type DustRemoval = (); + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = pallet_balances::weights::SubstrateWeight; + type MaxLocks = MaxLocks; } parameter_types! { @@ -283,8 +280,8 @@ impl pallet_transaction_payment::Config for Runtime { } impl pallet_sudo::Config for Runtime { - type Event = Event; - type Call = Call; + type Event = Event; + type Call = Call; } parameter_types! { @@ -336,7 +333,7 @@ pub type LocalAssetTransactor = CurrencyAdapter< LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, - // We don't track any teleports. + // We don't track any teleports. (), >; @@ -360,7 +357,7 @@ pub type XcmOriginToTransactDispatchOrigin = ( // Native signed account converter; this just converts an `AccountId32` origin into a normal // `Origin::Signed` origin of the same 32-byte value. SignedAccountId32AsNative, - // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. + // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. XcmPassthrough, ); @@ -392,18 +389,16 @@ impl Config for XcmConfig { type AssetTransactor = LocalAssetTransactor; type OriginConverter = XcmOriginToTransactDispatchOrigin; type IsReserve = NativeAsset; - type IsTeleporter = NativeAsset; // <- should be enough to allow teleportation of ROC + type IsTeleporter = NativeAsset; // <- should be enough to allow teleportation of ROC type LocationInverter = LocationInverter; type Barrier = Barrier; type Weigher = FixedWeightBounds; type Trader = UsingComponents, RelayLocation, AccountId, Balances, ()>; - type ResponseHandler = (); // Don't handle responses for now. + type ResponseHandler = (); // Don't handle responses for now. } /// No local origins on this chain are allowed to dispatch XCM sends/executions. -pub type LocalOriginToLocation = ( - SignedToAccountId32, -); +pub type LocalOriginToLocation = (SignedToAccountId32,); /// The means for routing XCM messages which are not for local execution into the right message /// queues. @@ -426,7 +421,6 @@ impl pallet_xcm::Config for Runtime { type Weigher = FixedWeightBounds; } - impl cumulus_pallet_xcm::Config for Runtime { type Event = Event; type XcmExecutor = XcmExecutor; @@ -471,7 +465,7 @@ construct_runtime!( Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 30, - Aura: pallet_aura::{Pallet, Config}, + Aura: pallet_aura::{Pallet, Config}, AuraExt: cumulus_pallet_aura_ext::{Pallet, Config}, // XCM helpers. @@ -480,73 +474,73 @@ construct_runtime!( CumulusXcm: cumulus_pallet_xcm::{Pallet, Call, Event, Origin} = 52, DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 53, - //Template + //Template TemplatePallet: template::{Pallet, Call, Storage, Event}, } ); impl_runtime_apis! { - impl sp_api::Core for Runtime { - fn version() -> RuntimeVersion { - VERSION - } - - fn execute_block(block: Block) { - Executive::execute_block(block) - } - - fn initialize_block(header: &::Header) { - Executive::initialize_block(header) - } - } - - impl sp_api::Metadata for Runtime { - fn metadata() -> OpaqueMetadata { - Runtime::metadata().into() - } - } - - impl sp_block_builder::BlockBuilder for Runtime { - fn apply_extrinsic( - extrinsic: ::Extrinsic, - ) -> ApplyExtrinsicResult { - Executive::apply_extrinsic(extrinsic) - } - - fn finalize_block() -> ::Header { - Executive::finalize_block() - } - - fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { - data.create_extrinsics() - } - - fn check_inherents( - block: Block, - data: sp_inherents::InherentData, - ) -> sp_inherents::CheckInherentsResult { - data.check_extrinsics(&block) - } - - // fn random_seed() -> ::Hash { - // RandomnessCollectiveFlip::random_seed().0 - // } - } - - impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { - fn validate_transaction( - source: TransactionSource, - tx: ::Extrinsic, - ) -> TransactionValidity { - Executive::validate_transaction(source, tx) - } - } - - impl sp_offchain::OffchainWorkerApi for Runtime { - fn offchain_worker(header: &::Header) { - Executive::offchain_worker(header) - } - } + impl sp_api::Core for Runtime { + fn version() -> RuntimeVersion { + VERSION + } + + fn execute_block(block: Block) { + Executive::execute_block(block) + } + + fn initialize_block(header: &::Header) { + Executive::initialize_block(header) + } + } + + impl sp_api::Metadata for Runtime { + fn metadata() -> OpaqueMetadata { + Runtime::metadata().into() + } + } + + impl sp_block_builder::BlockBuilder for Runtime { + fn apply_extrinsic( + extrinsic: ::Extrinsic, + ) -> ApplyExtrinsicResult { + Executive::apply_extrinsic(extrinsic) + } + + fn finalize_block() -> ::Header { + Executive::finalize_block() + } + + fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { + data.create_extrinsics() + } + + fn check_inherents( + block: Block, + data: sp_inherents::InherentData, + ) -> sp_inherents::CheckInherentsResult { + data.check_extrinsics(&block) + } + + // fn random_seed() -> ::Hash { + // RandomnessCollectiveFlip::random_seed().0 + // } + } + + impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { + fn validate_transaction( + source: TransactionSource, + tx: ::Extrinsic, + ) -> TransactionValidity { + Executive::validate_transaction(source, tx) + } + } + + impl sp_offchain::OffchainWorkerApi for Runtime { + fn offchain_worker(header: &::Header) { + Executive::offchain_worker(header) + } + } impl sp_session::SessionKeys for Runtime { fn decode_session_keys( @@ -560,7 +554,7 @@ impl_runtime_apis! { } } - impl sp_consensus_aura::AuraApi for Runtime { + impl sp_consensus_aura::AuraApi for Runtime { fn slot_duration() -> sp_consensus_aura::SlotDuration { sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) } @@ -568,7 +562,7 @@ impl_runtime_apis! { fn authorities() -> Vec { Aura::authorities() } - } + } impl cumulus_primitives_core::CollectCollationInfo for Runtime { fn collect_collation_info() -> cumulus_primitives_core::CollationInfo { @@ -576,61 +570,61 @@ impl_runtime_apis! { } } - impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { - fn account_nonce(account: AccountId) -> Index { - System::account_nonce(account) - } - } - - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { - fn query_info( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { - TransactionPayment::query_info(uxt, len) - } - fn query_fee_details( - uxt: ::Extrinsic, - len: u32, - ) -> pallet_transaction_payment::FeeDetails { - TransactionPayment::query_fee_details(uxt, len) - } - } - - #[cfg(feature = "runtime-benchmarks")] - impl frame_benchmarking::Benchmark for Runtime { - fn dispatch_benchmark( - config: frame_benchmarking::BenchmarkConfig - ) -> Result, sp_runtime::RuntimeString> { - use frame_benchmarking::{Benchmarking, BenchmarkBatch, add_benchmark, TrackedStorageKey}; - - use frame_system_benchmarking::Pallet as SystemBench; - impl frame_system_benchmarking::Config for Runtime {} - - let whitelist: Vec = vec![ - // Block Number - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), - // Total Issuance - hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(), - // Execution Phase - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), - // Event Count - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), - // System Events - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), - ]; - - let mut batches = Vec::::new(); - let params = (&config, &whitelist); - - add_benchmark!(params, batches, frame_system, SystemBench::); - add_benchmark!(params, batches, pallet_balances, Balances); - add_benchmark!(params, batches, pallet_timestamp, Timestamp); - - if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) } - Ok(batches) - } - } + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { + fn account_nonce(account: AccountId) -> Index { + System::account_nonce(account) + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { + fn query_info( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { + TransactionPayment::query_info(uxt, len) + } + fn query_fee_details( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_fee_details(uxt, len) + } + } + + #[cfg(feature = "runtime-benchmarks")] + impl frame_benchmarking::Benchmark for Runtime { + fn dispatch_benchmark( + config: frame_benchmarking::BenchmarkConfig + ) -> Result, sp_runtime::RuntimeString> { + use frame_benchmarking::{Benchmarking, BenchmarkBatch, add_benchmark, TrackedStorageKey}; + + use frame_system_benchmarking::Pallet as SystemBench; + impl frame_system_benchmarking::Config for Runtime {} + + let whitelist: Vec = vec![ + // Block Number + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), + // Total Issuance + hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(), + // Execution Phase + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), + // Event Count + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), + // System Events + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), + ]; + + let mut batches = Vec::::new(); + let params = (&config, &whitelist); + + add_benchmark!(params, batches, frame_system, SystemBench::); + add_benchmark!(params, batches, pallet_balances, Balances); + add_benchmark!(params, batches, pallet_timestamp, Timestamp); + + if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) } + Ok(batches) + } + } } cumulus_pallet_parachain_system::register_validate_block!( diff --git a/scripts/init.sh b/scripts/init.sh index 1405a41e..5b0e363a 100755 --- a/scripts/init.sh +++ b/scripts/init.sh @@ -5,8 +5,8 @@ set -e echo "*** Initializing WASM build environment" if [ -z $CI_PROJECT_NAME ] ; then - rustup update nightly - rustup update stable + rustup update nightly + rustup update stable fi rustup target add wasm32-unknown-unknown --toolchain nightly From 9ff2041b70f1b80338a2544f6dcf7efc1f28c513 Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Thu, 1 Jul 2021 00:59:54 -0600 Subject: [PATCH 30/91] Update to polkadot-v.0.9.6 (#46) --- Cargo.lock | 2912 ++++++++++++++++------------------- README.md | 37 +- node/Cargo.toml | 105 +- node/src/chain_spec.rs | 21 +- node/src/command.rs | 5 +- node/src/service.rs | 13 +- pallets/template/Cargo.toml | 12 +- runtime/Cargo.toml | 80 +- runtime/src/lib.rs | 48 +- 9 files changed, 1490 insertions(+), 1743 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 37c1b44b..4834ace0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,7 +1,5 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 - [[package]] name = "Inflector" version = "0.11.4" @@ -14,9 +12,9 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.14.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7" +checksum = "e7a2e47a1fbe209ee101dd6d61285226744c6c8d3c21c8dc878ba6cb9f467f3a" dependencies = [ "gimli", ] @@ -89,24 +87,13 @@ checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" [[package]] name = "aho-corasick" -version = "0.7.15" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5" +checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" dependencies = [ "memchr", ] -[[package]] -name = "alga" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f823d037a7ec6ea2197046bafd4ae150e6bc36f9ca347404f46a46823fa84f2" -dependencies = [ - "approx 0.3.2", - "num-complex 0.2.4", - "num-traits", -] - [[package]] name = "always-assert" version = "0.1.2" @@ -133,24 +120,24 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.40" +version = "1.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b" +checksum = "15af2628f6890fe2609a3b91bef4c83450512802e59489f9c1cb1fa5df064a61" [[package]] name = "approx" -version = "0.3.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3" +checksum = "3f2a05fd1bd10b2527e20a2cd32d8873d115b8b39fe219ee25f42a8aca6ba278" dependencies = [ "num-traits", ] [[package]] name = "approx" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f2a05fd1bd10b2527e20a2cd32d8873d115b8b39fe219ee25f42a8aca6ba278" +checksum = "072df7202e63b127ab55acfe16ce97013d5b97bf160489336d3f1840fd78e99e" dependencies = [ "num-traits", ] @@ -178,9 +165,9 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "arrayvec" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a2f58b0bb10c380af2b26e57212856b8c9a59e0925b4c20f4a174a49734eaf7" +checksum = "be4dc07131ffa69b8072d35f5007352af944213cde02545e2103680baed38fcd" [[package]] name = "asn1_der" @@ -200,8 +187,8 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" dependencies = [ - "quote 1.0.9", - "syn 1.0.69", + "quote", + "syn", ] [[package]] @@ -217,16 +204,16 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb877970c7b440ead138f6321a3b5395d6061183af779340b65e20c0fede9146" +checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965" dependencies = [ "async-task", "concurrent-queue", "fastrand", "futures-lite", "once_cell", - "vec-arena", + "slab", ] [[package]] @@ -247,29 +234,29 @@ dependencies = [ [[package]] name = "async-io" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9315f8f07556761c3e48fec2e6b276004acf426e6dc068b2c2251854d65ee0fd" +checksum = "4bbfd5cf2794b1e908ea8457e6c45f8f8f1f6ec5f74617bf4662623f47503c3b" dependencies = [ "concurrent-queue", "fastrand", "futures-lite", "libc", "log", - "nb-connect", "once_cell", "parking", "polling", - "vec-arena", + "slab", + "socket2 0.4.0", "waker-fn", "winapi 0.3.9", ] [[package]] name = "async-lock" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1996609732bde4a9988bc42125f55f2af5f3c36370e27c778d5191a4a1b63bfb" +checksum = "e6a8ea61bf9947a1007c5cada31e647dbc77b103c679858150003ba697ea798b" dependencies = [ "event-listener", ] @@ -285,15 +272,16 @@ dependencies = [ [[package]] name = "async-process" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef37b86e2fa961bae5a4d212708ea0154f904ce31d1a4a7f47e1bbc33a0c040b" +checksum = "a8f38756dd9ac84671c428afbf7c9f7495feff9ec5b0710f17100098e5b354ac" dependencies = [ "async-io", "blocking", "cfg-if 1.0.0", "event-listener", "futures-lite", + "libc", "once_cell", "signal-hook", "winapi 0.3.9", @@ -311,7 +299,7 @@ dependencies = [ "async-io", "async-lock", "async-process", - "crossbeam-utils 0.8.3", + "crossbeam-utils 0.8.5", "futures-channel", "futures-core", "futures-io", @@ -330,9 +318,9 @@ dependencies = [ [[package]] name = "async-std-resolver" -version = "0.20.1" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665c56111e244fe38e7708ee10948a4356ad6a548997c21f5a63a0f4e0edc4d" +checksum = "ed4e2c3da14d8ad45acb1e3191db7a918e9505b6f155b218e70a7c9a1a48c638" dependencies = [ "async-std", "async-trait", @@ -350,13 +338,13 @@ checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0" [[package]] name = "async-trait" -version = "0.1.49" +version = "0.1.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589652ce7ccb335d1e7ecb3be145425702b290dbcb7029bbeaae263fc1d87b48" +checksum = "0b98e84bbb4cbcdd97da190ba0c58a1bb0de2c1fdf67d159e192ed766aeca722" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -419,15 +407,16 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "backtrace" -version = "0.3.56" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d117600f438b1707d4e4ae15d3595657288f8235a0eb593e80ecc98ab34e1bc" +checksum = "b7815ea54e4d821e791162e078acbebfd6d8c8939cd559c9335dceb1c8ca7282" dependencies = [ "addr2line", + "cc", "cfg-if 1.0.0", "libc", "miniz_oxide", - "object", + "object 0.25.3", "rustc-demangle", ] @@ -460,14 +449,17 @@ name = "beef" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6736e2428df2ca2848d846c43e88745121a6654696e349ce0054a420815a7409" +dependencies = [ + "serde", +] [[package]] name = "beefy-gadget" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.3#063e18a1f82945d5a304906db92bfbb571bac459" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.6#caf37ef1b9dc17f2289a931b7724339acce5f96d" dependencies = [ "beefy-primitives", - "futures 0.3.14", + "futures 0.3.15", "hex", "log", "parity-scale-codec", @@ -492,11 +484,11 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.3#063e18a1f82945d5a304906db92bfbb571bac459" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.6#caf37ef1b9dc17f2289a931b7724339acce5f96d" dependencies = [ "beefy-gadget", "beefy-primitives", - "futures 0.3.14", + "futures 0.3.15", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -513,7 +505,7 @@ dependencies = [ [[package]] name = "beefy-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.3#063e18a1f82945d5a304906db92bfbb571bac459" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.6#caf37ef1b9dc17f2289a931b7724339acce5f96d" dependencies = [ "parity-scale-codec", "sp-api", @@ -534,26 +526,21 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.54.0" +version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66c0bb6167449588ff70803f4127f0684f9063097eca5016f37eb52b92c2cf36" +checksum = "fd4865004a46a0aafb2a0a5eb19d3c9fc46ee5f063a6cfc605c69ac9ecf5263d" dependencies = [ "bitflags", "cexpr", - "cfg-if 0.1.10", "clang-sys", - "clap", - "env_logger 0.7.1", "lazy_static", "lazycell", - "log", "peeking_take_while", - "proc-macro2 1.0.26", - "quote 1.0.9", + "proc-macro2", + "quote", "regex", "rustc-hash", "shlex", - "which 3.1.1", ] [[package]] @@ -564,9 +551,9 @@ checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" [[package]] name = "bitvec" -version = "0.20.2" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f682656975d3a682daff957be4ddeb65d6ad656737cd821f2d00685ae466af1" +checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" dependencies = [ "funty", "radium", @@ -619,9 +606,9 @@ dependencies = [ [[package]] name = "blake3" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9ff35b701f3914bdb8fad3368d822c766ef2858b2583198e41639b936f09d3f" +checksum = "b64485778c4f16a6a5a9d335e80d449ac6c70cdd6a06d2af18a6f6f775a125b3" dependencies = [ "arrayref", "arrayvec 0.5.2", @@ -692,114 +679,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "bp-header-chain" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" -dependencies = [ - "finality-grandpa", - "frame-support", - "parity-scale-codec", - "serde", - "sp-core", - "sp-finality-grandpa", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bp-messages" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" -dependencies = [ - "bp-runtime", - "frame-support", - "frame-system", - "parity-scale-codec", - "sp-std", -] - -[[package]] -name = "bp-polkadot-core" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" -dependencies = [ - "bp-messages", - "bp-runtime", - "frame-support", - "frame-system", - "parity-scale-codec", - "sp-api", - "sp-core", - "sp-runtime", - "sp-std", - "sp-version", -] - -[[package]] -name = "bp-rococo" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" -dependencies = [ - "bp-header-chain", - "bp-messages", - "bp-polkadot-core", - "bp-runtime", - "parity-scale-codec", - "sp-api", - "sp-runtime", - "sp-std", - "sp-version", -] - -[[package]] -name = "bp-runtime" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" -dependencies = [ - "frame-support", - "hash-db", - "num-traits", - "parity-scale-codec", - "sp-core", - "sp-io", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-trie", -] - -[[package]] -name = "bp-test-utils" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" -dependencies = [ - "bp-header-chain", - "ed25519-dalek", - "finality-grandpa", - "parity-scale-codec", - "sp-application-crypto", - "sp-finality-grandpa", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bp-wococo" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" -dependencies = [ - "bp-header-chain", - "bp-messages", - "bp-polkadot-core", - "bp-runtime", - "parity-scale-codec", - "sp-api", - "sp-runtime", - "sp-std", - "sp-version", -] - [[package]] name = "bs58" version = "0.4.0" @@ -808,9 +687,9 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bstr" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a40b47ad93e1a5404e6c18dec46b628214fee441c70f4ab5d6942142cc268a3d" +checksum = "90682c8d613ad3373e66de8c6411e0ae2ab2571e879d2efbf73558cc66f21279" dependencies = [ "memchr", ] @@ -826,9 +705,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.6.1" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe" +checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631" [[package]] name = "byte-slice-cast" @@ -924,9 +803,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.67" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd" +checksum = "4a72c244c1ff497a746a7e1fb3d14bd08420ecda70c8f25c7112f2781652d787" dependencies = [ "jobserver", ] @@ -1025,13 +904,13 @@ dependencies = [ [[package]] name = "clang-sys" -version = "0.29.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a" +checksum = "853eda514c284c2287f4bf20ae614f8781f40a81d32ecda6e91449304dfe077c" dependencies = [ "glob", "libc", - "libloading", + "libloading 0.7.0", ] [[package]] @@ -1085,7 +964,17 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" dependencies = [ - "core-foundation-sys", + "core-foundation-sys 0.7.0", + "libc", +] + +[[package]] +name = "core-foundation" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62" +dependencies = [ + "core-foundation-sys 0.8.2", "libc", ] @@ -1095,6 +984,12 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" +[[package]] +name = "core-foundation-sys" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b" + [[package]] name = "cpp_demangle" version = "0.3.2" @@ -1106,10 +1001,13 @@ dependencies = [ ] [[package]] -name = "cpuid-bool" -version = "0.1.2" +name = "cpufeatures" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634" +checksum = "ed00c67cb5d0a7d64a44f6ad2668db7e7530311dd53ea79bcd4fb022c64911c8" +dependencies = [ + "libc", +] [[package]] name = "cpuid-bool" @@ -1119,20 +1017,19 @@ checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" [[package]] name = "cranelift-bforest" -version = "0.71.0" +version = "0.74.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcee7a5107071484772b89fdf37f0f460b7db75f476e43ea7a684fd942470bcf" +checksum = "c8ca3560686e7c9c7ed7e0fe77469f2410ba5d7781b1acaa9adc8d8deea28e3e" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.71.0" +version = "0.74.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "654ab96f0f1cab71c0d323618a58360a492da2c341eb2c1f977fc195c664001b" +checksum = "baf9bf1ffffb6ce3d2e5ebc83549bd2436426c99b31cc550d521364cbe35d276" dependencies = [ - "byteorder", "cranelift-bforest", "cranelift-codegen-meta", "cranelift-codegen-shared", @@ -1143,14 +1040,13 @@ dependencies = [ "serde", "smallvec 1.6.1", "target-lexicon", - "thiserror", ] [[package]] name = "cranelift-codegen-meta" -version = "0.71.0" +version = "0.74.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65994cfc5be9d5fd10c5fc30bcdddfa50c04bb79c91329287bff846434ff8f14" +checksum = "4cc21936a5a6d07e23849ffe83e5c1f6f50305c074f4b2970ca50c13bf55b821" dependencies = [ "cranelift-codegen-shared", "cranelift-entity", @@ -1158,27 +1054,27 @@ dependencies = [ [[package]] name = "cranelift-codegen-shared" -version = "0.71.0" +version = "0.74.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "889d720b688b8b7df5e4903f9b788c3c59396050f5548e516e58ccb7312463ab" +checksum = "ca5b6ffaa87560bebe69a5446449da18090b126037920b0c1c6d5945f72faf6b" dependencies = [ "serde", ] [[package]] name = "cranelift-entity" -version = "0.71.0" +version = "0.74.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a2e6884a363e42a9ba980193ea8603a4272f8a92bd8bbaf9f57a94dbea0ff96" +checksum = "7d6b4a8bef04f82e4296782646f733c641d09497df2fabf791323fefaa44c64c" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.71.0" +version = "0.74.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6f41e2f9b57d2c030e249d0958f1cdc2c3cd46accf8c0438b3d1944e9153444" +checksum = "c31b783b351f966fce33e3c03498cb116d16d97a8f9978164a60920bd0d3a99c" dependencies = [ "cranelift-codegen", "log", @@ -1188,9 +1084,9 @@ dependencies = [ [[package]] name = "cranelift-native" -version = "0.71.0" +version = "0.74.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aab70ba7575665375d31cbdea2462916ce58be887834e1b83c860b43b51af637" +checksum = "a77c88d3dd48021ff1e37e978a00098524abd3513444ae252c08d37b310b3d2a" dependencies = [ "cranelift-codegen", "target-lexicon", @@ -1198,14 +1094,14 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.71.0" +version = "0.74.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2fc3d2e70da6439adf97648dcdf81834363154f2907405345b6fbe7ca38918c" +checksum = "edb6d408e2da77cdbbd65466298d44c86ae71c1785d2ab0d8657753cdb4d9d89" dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-frontend", - "itertools 0.10.0", + "itertools 0.10.1", "log", "serde", "smallvec 1.6.1", @@ -1229,7 +1125,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4" dependencies = [ "cfg-if 1.0.0", - "crossbeam-utils 0.8.3", + "crossbeam-utils 0.8.5", ] [[package]] @@ -1250,8 +1146,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" dependencies = [ "cfg-if 1.0.0", - "crossbeam-epoch 0.9.3", - "crossbeam-utils 0.8.3", + "crossbeam-epoch 0.9.5", + "crossbeam-utils 0.8.5", ] [[package]] @@ -1271,14 +1167,14 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2584f639eb95fea8c798496315b297cf81b9b58b6d30ab066a75455333cf4b12" +checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd" dependencies = [ "cfg-if 1.0.0", - "crossbeam-utils 0.8.3", + "crossbeam-utils 0.8.5", "lazy_static", - "memoffset 0.6.3", + "memoffset 0.6.4", "scopeguard", ] @@ -1306,11 +1202,10 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49" +checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db" dependencies = [ - "autocfg", "cfg-if 1.0.0", "lazy_static", ] @@ -1356,8 +1251,8 @@ version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e98e2ad1a782e33928b96fc3948e7c355e5af34ba4de7670fe8bac2a3b2006d" dependencies = [ - "quote 1.0.9", - "syn 1.0.69", + "quote", + "syn", ] [[package]] @@ -1374,7 +1269,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" dependencies = [ "sc-cli", "sc-service", @@ -1384,12 +1279,12 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-primitives-core", - "futures 0.3.14", + "futures 0.3.15", "parity-scale-codec", "parking_lot 0.10.2", "polkadot-node-primitives", @@ -1408,15 +1303,15 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" dependencies = [ "async-trait", "cumulus-client-consensus-common", "cumulus-primitives-core", - "futures 0.3.14", + "futures 0.3.15", "parity-scale-codec", "parking_lot 0.10.2", - "polkadot-service", + "polkadot-client", "sc-client-api", "sc-consensus-aura", "sc-consensus-slots", @@ -1438,11 +1333,11 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" dependencies = [ "async-trait", "dyn-clone", - "futures 0.3.14", + "futures 0.3.15", "parity-scale-codec", "polkadot-primitives", "polkadot-runtime", @@ -1462,17 +1357,17 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" dependencies = [ - "derive_more 0.99.13", - "futures 0.3.14", + "derive_more", + "futures 0.3.15", "futures-timer 3.0.2", "parity-scale-codec", "parking_lot 0.10.2", + "polkadot-client", "polkadot-node-primitives", "polkadot-parachain", "polkadot-primitives", - "polkadot-service", "polkadot-statement-table", "sc-client-api", "sp-api", @@ -1486,20 +1381,17 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" dependencies = [ "cumulus-primitives-core", - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-overseer", - "polkadot-parachain", "polkadot-primitives", - "polkadot-service", - "polkadot-statement-table", - "rand 0.8.3", + "rand 0.8.4", "sc-client-api", "sp-api", "sp-consensus", @@ -1512,7 +1404,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-common", @@ -1540,7 +1432,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" dependencies = [ "frame-executive", "frame-support", @@ -1557,15 +1449,15 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", "log", "parity-scale-codec", - "rand 0.8.3", - "rand_chacha 0.3.0", + "rand 0.8.4", + "rand_chacha 0.3.1", "sp-io", "sp-runtime", "sp-std", @@ -1576,16 +1468,15 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" dependencies = [ + "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "environmental", "frame-support", "frame-system", - "hash-db", "log", - "memory-db", "pallet-balances", "parity-scale-codec", "polkadot-parachain", @@ -1599,14 +1490,24 @@ dependencies = [ "sp-std", "sp-trie", "sp-version", - "trie-db", "xcm", ] +[[package]] +name = "cumulus-pallet-parachain-system-proc-macro" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" +dependencies = [ + "proc-macro-crate 1.0.0", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1622,15 +1523,15 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", "log", "parity-scale-codec", - "rand 0.8.3", - "rand_chacha 0.3.0", + "rand 0.8.4", + "rand_chacha 0.3.1", "sp-runtime", "sp-std", "xcm", @@ -1640,7 +1541,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1658,12 +1559,12 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" dependencies = [ "async-trait", "cumulus-primitives-core", "parity-scale-codec", - "polkadot-service", + "polkadot-client", "sc-client-api", "sp-api", "sp-core", @@ -1675,10 +1576,21 @@ dependencies = [ "tracing", ] +[[package]] +name = "cumulus-primitives-timestamp" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" +dependencies = [ + "cumulus-primitives-core", + "sp-inherents", + "sp-std", + "sp-timestamp", +] + [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1727,9 +1639,9 @@ checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57" [[package]] name = "data-encoding-macro" -version = "0.1.10" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a94feec3d2ba66c0b6621bca8bc6f68415b1e5c69af3586fdd0af9fd9f29b17" +checksum = "86927b7cd2fe88fa698b87404b287ab98d1a0063a34071d92e575b72d3029aca" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -1737,12 +1649,12 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f83e699727abca3c56e187945f303389590305ab2f0185ea445aa66e8d5f2a" +checksum = "a5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038db" dependencies = [ "data-encoding", - "syn 1.0.69", + "syn", ] [[package]] @@ -1751,35 +1663,21 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", -] - -[[package]] -name = "derive_more" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a141330240c921ec6d074a3e188a7c7ef95668bb95e7d44fa0e5778ec2a7afe" -dependencies = [ - "lazy_static", - "proc-macro2 0.4.30", - "quote 0.6.13", - "regex", - "rustc_version", - "syn 0.15.44", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "derive_more" -version = "0.99.13" +version = "0.99.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b1b72f1263f214c0f823371768776c4f5841b942c9883aa8e5ec584fd0ba6" +checksum = "5cc7b9cef1e351660e5443924e4f43ab25fbbed3e9a5f052df3677deb4d6b320" dependencies = [ "convert_case", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -1802,9 +1700,9 @@ dependencies = [ [[package]] name = "directories" -version = "3.0.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8fed639d60b58d0f53498ab13d26f621fd77569cc6edb031f4cc36a2ad9da0f" +checksum = "e69600ff1703123957937708eb27f7a564e48885c537782722ed0ba3189ce1d7" dependencies = [ "dirs-sys", ] @@ -1821,12 +1719,12 @@ dependencies = [ [[package]] name = "dirs-sys" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a" +checksum = "03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780" dependencies = [ "libc", - "redox_users 0.3.5", + "redox_users", "winapi 0.3.9", ] @@ -1837,7 +1735,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ "libc", - "redox_users 0.4.0", + "redox_users", "winapi 0.3.9", ] @@ -1851,6 +1749,12 @@ dependencies = [ "quick-error 1.2.3", ] +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + [[package]] name = "dyn-clonable" version = "0.9.0" @@ -1867,9 +1771,9 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -1880,9 +1784,9 @@ checksum = "ee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcf" [[package]] name = "ed25519" -version = "1.0.3" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c66a534cbb46ab4ea03477eae19d5c22c01da8258030280b7bd9d8433fb6ef" +checksum = "8d0860415b12243916284c67a9be413e044ee6668247b99ba26d94b2bc06c8f6" dependencies = [ "signature", ] @@ -1897,7 +1801,7 @@ dependencies = [ "ed25519", "rand 0.7.3", "serde", - "sha2 0.9.3", + "sha2 0.9.5", "zeroize", ] @@ -1914,9 +1818,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595" dependencies = [ "heck", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -1934,9 +1838,9 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -1945,9 +1849,9 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e58b112d5099aa0857c5d05f0eacab86406dd8c0f85fe5d320a13256d29ecf4" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -1965,9 +1869,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17392a012ea30ef05a610aa97dfb49496e71c9f676b27879922ea5bdf60d9d3f" +checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" dependencies = [ "atty", "humantime 2.1.0", @@ -1984,9 +1888,9 @@ checksum = "68b91989ae21441195d7d9b9993a2f9295c7e1a8c96255d8b729accddc124797" [[package]] name = "erased-serde" -version = "0.3.13" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0465971a8cc1fa2455c8465aaa377131e1f1cf4983280f474a13e68793aa770c" +checksum = "3de9ad4541d99dc22b59134e7ff8dc3d6c988c89ecd7324bf10a8362b07a2afa" dependencies = [ "serde", ] @@ -2051,7 +1955,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", ] [[package]] @@ -2070,9 +1974,9 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", "synstructure", ] @@ -2090,9 +1994,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca5faf057445ce5c9d4329e382b2ce7ca38550ef3b73a5348362d5f24e0c7fe3" +checksum = "77b705829d1e87f762c2df6da140b26af5839e1033aa84aa5f56bb688e4e1bdb" dependencies = [ "instant", ] @@ -2118,12 +2022,12 @@ dependencies = [ [[package]] name = "finality-grandpa" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6447e2f8178843749e8c8003206def83ec124a7859475395777a28b5338647c" +checksum = "74a1bfdcc776e63e49f741c7ce6116fa1b887e8ac2e3ccb14dd4aa113e54feb9" dependencies = [ "either", - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "log", "num-traits", @@ -2138,7 +2042,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" dependencies = [ "byteorder", - "rand 0.8.3", + "rand 0.8.4", "rustc-hex", "static_assertions", ] @@ -2171,7 +2075,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", ] @@ -2189,7 +2093,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "3.1.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -2208,7 +2112,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "Inflector", "chrono", @@ -2231,7 +2135,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -2244,7 +2148,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -2259,7 +2163,7 @@ dependencies = [ [[package]] name = "frame-metadata" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "serde", @@ -2270,13 +2174,14 @@ dependencies = [ [[package]] name = "frame-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "bitflags", "frame-metadata", "frame-support-procedural", "impl-trait-for-tuples", "log", + "max-encoded-len", "once_cell", "parity-scale-codec", "paste", @@ -2296,41 +2201,41 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "Inflector", "frame-support-procedural-tools", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "frame-support-procedural-tools" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.0.0", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "frame-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -2347,7 +2252,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-benchmarking", "frame-support", @@ -2361,7 +2266,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "sp-api", @@ -2370,7 +2275,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "parity-scale-codec", @@ -2381,9 +2286,9 @@ dependencies = [ [[package]] name = "fs-err" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcd1163ae48bda72a20ae26d66a04d3094135cadab911cff418ae5e33f253431" +checksum = "5ebd3504ad6116843b8375ad70df74e7bfe83cac77a1f3fe73200c844d43bfe0" [[package]] name = "fs-swap" @@ -2393,7 +2298,7 @@ checksum = "03d47dad3685eceed8488986cad3d5027165ea5edb164331770e2059555f10a5" dependencies = [ "lazy_static", "libc", - "libloading", + "libloading 0.5.2", "winapi 0.3.9", ] @@ -2443,9 +2348,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d5813545e459ad3ca1bff9915e9ad7f1a47dc6a91b627ce321d5863b7dd253" +checksum = "0e7e43a803dae2fa37c1f6a8fe121e1f7bf9548b4dfc0522a42f34145dadfc27" dependencies = [ "futures-channel", "futures-core", @@ -2458,9 +2363,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce79c6a52a299137a6013061e0cf0e688fce5d7f1bc60125f520912fdb29ec25" +checksum = "e682a68b29a882df0545c143dc3646daefe80ba479bcdede94d5a703de2871e2" dependencies = [ "futures-core", "futures-sink", @@ -2468,9 +2373,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "098cd1c6dda6ca01650f1a37a794245eb73181d0d4d4e955e2f3c37db7af1815" +checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1" [[package]] name = "futures-cpupool" @@ -2482,27 +2387,11 @@ dependencies = [ "num_cpus", ] -[[package]] -name = "futures-diagnose" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdcef58a173af8148b182684c9f2d5250875adbcaff7b5794073894f9d8634a9" -dependencies = [ - "futures 0.1.31", - "futures 0.3.14", - "lazy_static", - "log", - "parking_lot 0.9.0", - "pin-project 0.4.28", - "serde", - "serde_json", -] - [[package]] name = "futures-executor" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f6cb7042eda00f0049b1d2080aa4b93442997ee507eb3828e8bd7577f94c9d" +checksum = "badaa6a909fac9e7236d0620a2f57f7664640c56575b71a7552fbd68deafab79" dependencies = [ "futures-core", "futures-task", @@ -2512,15 +2401,15 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "365a1a1fb30ea1c03a830fdb2158f5236833ac81fa0ad12fe35b29cddc35cb04" +checksum = "acc499defb3b348f8d8f3f66415835a9131856ff7714bf10dadfc4ec4bdb29a1" [[package]] name = "futures-lite" -version = "1.11.3" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4481d0cd0de1d204a4fa55e7d45f07b1d958abcb06714b3446438e2eff695fb" +checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" dependencies = [ "fastrand", "futures-core", @@ -2533,14 +2422,15 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668c6733a182cd7deb4f1de7ba3bf2120823835b3bcfbeacf7d2c4a773c1bb8b" +checksum = "a4c40298486cdf52cc00cd6d6987892ba502c7656a16a4192a9992b1ccedd121" dependencies = [ + "autocfg", "proc-macro-hack", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -2550,21 +2440,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a1387e07917c711fb4ee4f48ea0adb04a3c9739e53ef85bf43ae1edc2937a8b" dependencies = [ "futures-io", - "rustls 0.19.0", + "rustls 0.19.1", "webpki", ] [[package]] name = "futures-sink" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5629433c555de3d82861a7a4e3794a4c40040390907cfbfd7143a92a426c23" +checksum = "a57bead0ceff0d6dde8f465ecd96c9338121bb7717d3e7b108059531870c4282" [[package]] name = "futures-task" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba7aa51095076f3ba6d9a1f702f74bd05ec65f555d70d2033d55ba8d69f581bc" +checksum = "8a16bef9fc1a4dddb5bee51c989e3fbba26569cbb0e31f5b303c184e3dd33dae" [[package]] name = "futures-timer" @@ -2580,10 +2470,11 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c144ad54d60f23927f0a6b6d816e4271278b64f005ad65e4e35291d2de9c025" +checksum = "feb5c238d27e2bf94ffdfd27b2c29e3df4a68c4193bb6427384259e2bf191967" dependencies = [ + "autocfg", "futures 0.1.31", "futures-channel", "futures-core", @@ -2614,15 +2505,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "generic-array" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f797e67af32588215eaaab8327027ee8e71b9dd0b2b26996aedf20c030fce309" -dependencies = [ - "typenum", -] - [[package]] name = "generic-array" version = "0.14.4" @@ -2646,9 +2528,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" +checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" dependencies = [ "cfg-if 1.0.0", "libc", @@ -2667,9 +2549,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce" +checksum = "0e4075386626662786ddb0ec9081e7c7eeb1ba31951f447ca780ef9f5d568189" dependencies = [ "fallible-iterator", "indexmap", @@ -2684,9 +2566,9 @@ checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" [[package]] name = "globset" -version = "0.4.6" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c152169ef1e421390738366d2f796655fec62621dabbd0fd476f905934061e4a" +checksum = "10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd" dependencies = [ "aho-corasick", "bstr", @@ -2786,9 +2668,9 @@ dependencies = [ [[package]] name = "heck" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" dependencies = [ "unicode-segmentation", ] @@ -2808,31 +2690,12 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hex-literal" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "961de220ec9a91af2e1e5bd80d02109155695e516771762381ef8581317066e0" -dependencies = [ - "hex-literal-impl", - "proc-macro-hack", -] - [[package]] name = "hex-literal" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5af1f635ef1bc545d78392b136bfe1c9809e029023c84a3638a864a10b8819c8" -[[package]] -name = "hex-literal-impl" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "853f769599eb31de176303197b7ba4973299c38c7a7604a6bc88c3eef05b9b46" -dependencies = [ - "proc-macro-hack", -] - [[package]] name = "hex_fmt" version = "0.3.0" @@ -2925,11 +2788,22 @@ dependencies = [ "http 0.2.4", ] +[[package]] +name = "http-body" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60daa14be0e0786db0f03a9e57cb404c9d756eed2b6c62b9ea98ec5743ec75a9" +dependencies = [ + "bytes 1.0.1", + "http 0.2.4", + "pin-project-lite 0.2.6", +] + [[package]] name = "httparse" -version = "1.3.6" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc35c995b9d93ec174cf9a27d425c7892722101e14993cd227fdb51d70cf9589" +checksum = "f3a87b616e37e93c22fb19bcd386f02f3af5ea98a25670ad0fce773de23c5e68" [[package]] name = "httpdate" @@ -2938,8 +2812,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" [[package]] -name = "humantime" -version = "1.3.0" +name = "httpdate" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6456b8a6c8f33fee7d958fcd1b60d55b11940a79e63ae87013e6d22e26034440" + +[[package]] +name = "humantime" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" dependencies = [ @@ -2996,9 +2876,9 @@ dependencies = [ "http 0.2.4", "http-body 0.3.1", "httparse", - "httpdate", + "httpdate 0.3.2", "itoa", - "pin-project 1.0.6", + "pin-project 1.0.7", "socket2 0.3.19", "tokio 0.2.25", "tower-service", @@ -3006,6 +2886,28 @@ dependencies = [ "want 0.3.0", ] +[[package]] +name = "hyper" +version = "0.14.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07d6baa1b441335f3ce5098ac421fb6547c46dda735ca1bc6d0153c838f9dd83" +dependencies = [ + "bytes 1.0.1", + "futures-channel", + "futures-core", + "futures-util", + "http 0.2.4", + "http-body 0.4.2", + "httparse", + "httpdate 1.0.1", + "itoa", + "pin-project-lite 0.2.6", + "tokio 1.7.1", + "tower-service", + "tracing", + "want 0.3.0", +] + [[package]] name = "hyper-rustls" version = "0.21.0" @@ -3018,9 +2920,9 @@ dependencies = [ "hyper 0.13.10", "log", "rustls 0.18.1", - "rustls-native-certs", + "rustls-native-certs 0.4.0", "tokio 0.2.25", - "tokio-rustls", + "tokio-rustls 0.14.1", "webpki", ] @@ -3037,9 +2939,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89829a5d69c23d348314a7ac337fe39173b61149a9864deabd260983aed48c21" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" dependencies = [ "matches", "unicode-bidi", @@ -3069,12 +2971,12 @@ dependencies = [ [[package]] name = "if-watch" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "144c0ecbda48cc819482c37e460723b634dc060e23922f8ace87d94ff95ea4e5" +checksum = "ae8ab7f67bad3240049cb24fb9cb0b4c2c6af4c245840917fbbdededeee91179" dependencies = [ "async-io", - "futures 0.3.14", + "futures 0.3.15", "futures-lite", "if-addrs", "ipnet", @@ -3116,9 +3018,9 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5dacb10c5b3bb92d46ba347505a9041e676bb20ad220101326bffb0c93031ee" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -3162,7 +3064,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "futures-timer 2.0.2", ] @@ -3195,9 +3097,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135" +checksum = "68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9" [[package]] name = "itertools" @@ -3210,9 +3112,9 @@ dependencies = [ [[package]] name = "itertools" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d572918e350e82412fe766d24b15e6682fb2ed2bbe018280caa810397cb319" +checksum = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf" dependencies = [ "either", ] @@ -3225,18 +3127,18 @@ checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" [[package]] name = "jobserver" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c71313ebb9439f74b00d9d2dcec36440beaf57a6aa0623068441dd7cd81a7f2" +checksum = "972f5ae5d1cb9c6ae417789196c803205313edde988685da5e3aae0827b9e7fd" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.50" +version = "0.3.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d99f9e3e84b8f67f846ef5b4cbbc3b1c29f6c759fcbce6f01aa0e73d932a24c" +checksum = "83bdfbace3a0e81a4253f73b49e960b053e396a11012cbd49b9b74d6a2b67062" dependencies = [ "wasm-bindgen", ] @@ -3286,9 +3188,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99a847f9ec7bb52149b2786a17c9cb260d6effc6b8eeb8c16b343a487a7563a3" dependencies = [ "proc-macro-crate 0.1.5", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -3363,63 +3265,59 @@ dependencies = [ "slab", ] -[[package]] -name = "jsonrpsee-http-client" -version = "0.2.0-alpha.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2737440f37efa10e5ef7beeec43d059d29dc92640978be21fcdcef481a2edb0d" -dependencies = [ - "async-trait", - "fnv", - "hyper 0.13.10", - "hyper-rustls", - "jsonrpsee-types", - "jsonrpsee-utils", - "log", - "serde", - "serde_json", - "thiserror", - "url 2.2.1", -] - [[package]] name = "jsonrpsee-proc-macros" -version = "0.2.0-alpha.6" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5784ee8bb31988fa2c7a755fe31b0e21aa51894a67e5c99b6d4470f0253bf31a" +checksum = "3b4c85cfa6767333f3e5f3b2f2f765dad2727b0033ee270ae07c599bf43ed5ae" dependencies = [ "Inflector", "proc-macro-crate 1.0.0", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "jsonrpsee-types" -version = "0.2.0-alpha.6" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab3dabceeeeb865897661d532d47202eaae71cd2c606f53cb69f1fbc0555a51" +checksum = "c0cf7bd4e93b3b56e59131de7f24afbea871faf914e97bcdd942c86927ab0172" dependencies = [ "async-trait", "beef", "futures-channel", "futures-util", + "hyper 0.14.9", "log", "serde", "serde_json", + "soketto 0.5.0", "thiserror", ] [[package]] -name = "jsonrpsee-utils" -version = "0.2.0-alpha.6" +name = "jsonrpsee-ws-client" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d63cf4d423614e71fd144a8691208539d2b23d8373e069e2fbe023c5eba5e922" +checksum = "6ec51150965544e1a4468f372bdab8545243a1b045d4ab272023aac74c60de32" dependencies = [ - "futures-util", - "hyper 0.13.10", + "async-trait", + "fnv", + "futures 0.3.15", "jsonrpsee-types", + "log", + "pin-project 1.0.7", + "rustls 0.19.1", + "rustls-native-certs 0.5.0", + "serde", + "serde_json", + "soketto 0.5.0", + "thiserror", + "tokio 0.2.25", + "tokio-rustls 0.15.0", + "tokio-util", + "url 2.2.2", ] [[package]] @@ -3438,85 +3336,6 @@ dependencies = [ "winapi-build", ] -[[package]] -name = "kusama-runtime" -version = "0.9.3" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" -dependencies = [ - "beefy-primitives", - "bitvec", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "log", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-balances", - "pallet-bounties", - "pallet-collective", - "pallet-democracy", - "pallet-election-provider-multi-phase", - "pallet-elections-phragmen", - "pallet-gilt", - "pallet-grandpa", - "pallet-identity", - "pallet-im-online", - "pallet-indices", - "pallet-membership", - "pallet-mmr-primitives", - "pallet-multisig", - "pallet-nicks", - "pallet-offences", - "pallet-proxy", - "pallet-randomness-collective-flip", - "pallet-recovery", - "pallet-scheduler", - "pallet-session", - "pallet-society", - "pallet-staking", - "pallet-staking-reward-fn", - "pallet-timestamp", - "pallet-tips", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-treasury", - "pallet-utility", - "pallet-vesting", - "pallet-xcm", - "parity-scale-codec", - "polkadot-primitives", - "polkadot-runtime-common", - "polkadot-runtime-parachains", - "rustc-hex", - "serde", - "serde_derive", - "smallvec 1.6.1", - "sp-api", - "sp-arithmetic", - "sp-authority-discovery", - "sp-block-builder", - "sp-consensus-babe", - "sp-core", - "sp-inherents", - "sp-io", - "sp-npos-elections", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "sp-transaction-pool", - "sp-version", - "static_assertions", - "substrate-wasm-builder 3.0.0", - "xcm", - "xcm-builder", - "xcm-executor", -] - [[package]] name = "kv-log-macro" version = "1.0.7" @@ -3549,9 +3368,9 @@ dependencies = [ [[package]] name = "kvdb-rocksdb" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34446c373ccc494c2124439281c198c7636ccdc2752c06722bbffd56d459c1e4" +checksum = "94b27cdb788bf1c8ade782289f9dbee626940be2961fd75c7cde993fa2f1ded1" dependencies = [ "fs-swap", "kvdb", @@ -3585,9 +3404,9 @@ checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a" [[package]] name = "libc" -version = "0.2.93" +version = "0.2.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9385f66bf6105b241aa65a61cb923ef20efc665cb9f9bb50ac2f0c4b7f378d41" +checksum = "12b8adadd720df158f4d70dfe7ccc6adb0472d7c55ca83445f6a5ab3e36f8fb6" [[package]] name = "libloading" @@ -3599,6 +3418,16 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "libloading" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f84d96438c15fcd6c3f244c8fce01d1e2b9c6b5623e9c711dc9286d8fc92d6a" +dependencies = [ + "cfg-if 1.0.0", + "winapi 0.3.9", +] + [[package]] name = "libm" version = "0.2.1" @@ -3613,7 +3442,7 @@ checksum = "08053fbef67cd777049ef7a95ebaca2ece370b4ed7712c3fa404d69a88cb741b" dependencies = [ "atomic", "bytes 1.0.1", - "futures 0.3.14", + "futures 0.3.15", "lazy_static", "libp2p-core", "libp2p-deflate", @@ -3639,23 +3468,23 @@ dependencies = [ "libp2p-yamux", "parity-multiaddr", "parking_lot 0.11.1", - "pin-project 1.0.6", + "pin-project 1.0.7", "smallvec 1.6.1", "wasm-timer", ] [[package]] name = "libp2p-core" -version = "0.28.2" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71dd51b562e14846e65bad00e5808d0644376e6588668c490d3c48e1dfeb4a9a" +checksum = "554d3e7e9e65f939d66b75fd6a4c67f258fe250da61b91f46c545fc4a89b51d9" dependencies = [ "asn1_der", "bs58", "ed25519-dalek", "either", "fnv", - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "lazy_static", "libsecp256k1", @@ -3664,13 +3493,13 @@ dependencies = [ "multistream-select", "parity-multiaddr", "parking_lot 0.11.1", - "pin-project 1.0.6", + "pin-project 1.0.7", "prost", "prost-build", "rand 0.7.3", "ring", "rw-stream-sink", - "sha2 0.9.3", + "sha2 0.9.5", "smallvec 1.6.1", "thiserror", "unsigned-varint 0.7.0", @@ -3685,7 +3514,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2181a641cd15f9b6ba71b1335800f309012a0a97a29ffaabbbf40e9d3d58f08" dependencies = [ "flate2", - "futures 0.3.14", + "futures 0.3.15", "libp2p-core", ] @@ -3696,7 +3525,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62e63dab8b5ff35e0c101a3e51e843ba782c07bbb1682f5fd827622e0d02b98b" dependencies = [ "async-std-resolver", - "futures 0.3.14", + "futures 0.3.15", "libp2p-core", "log", "smallvec 1.6.1", @@ -3711,7 +3540,7 @@ checksum = "48a9b570f6766301d9c4aa00fce3554cad1598e2f466debbc4dde909028417cf" dependencies = [ "cuckoofilter", "fnv", - "futures 0.3.14", + "futures 0.3.15", "libp2p-core", "libp2p-swarm", "log", @@ -3732,7 +3561,7 @@ dependencies = [ "byteorder", "bytes 1.0.1", "fnv", - "futures 0.3.14", + "futures 0.3.15", "hex_fmt", "libp2p-core", "libp2p-swarm", @@ -3741,7 +3570,7 @@ dependencies = [ "prost-build", "rand 0.7.3", "regex", - "sha2 0.9.3", + "sha2 0.9.5", "smallvec 1.6.1", "unsigned-varint 0.7.0", "wasm-timer", @@ -3753,7 +3582,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f668f00efd9883e8b7bcc582eaf0164615792608f886f6577da18bcbeea0a46" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "libp2p-core", "libp2p-swarm", "log", @@ -3774,14 +3603,14 @@ dependencies = [ "bytes 1.0.1", "either", "fnv", - "futures 0.3.14", + "futures 0.3.15", "libp2p-core", "libp2p-swarm", "log", "prost", "prost-build", "rand 0.7.3", - "sha2 0.9.3", + "sha2 0.9.5", "smallvec 1.6.1", "uint", "unsigned-varint 0.7.0", @@ -3791,20 +3620,20 @@ dependencies = [ [[package]] name = "libp2p-mdns" -version = "0.30.1" +version = "0.30.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41e282f974c4bea56db8acca50387f05189406e346318cb30190b0bde662961e" +checksum = "4efa70c1c3d2d91237f8546e27aeb85e287d62c066a7b4f3ea6a696d43ced714" dependencies = [ "async-io", "data-encoding", "dns-parser", - "futures 0.3.14", + "futures 0.3.15", "if-watch", "lazy_static", "libp2p-core", "libp2p-swarm", "log", - "rand 0.8.3", + "rand 0.8.4", "smallvec 1.6.1", "socket2 0.4.0", "void", @@ -3818,7 +3647,7 @@ checksum = "85e9b544335d1ed30af71daa96edbefadef6f19c7a55f078b9fc92c87163105d" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.0.1", - "futures 0.3.14", + "futures 0.3.15", "libp2p-core", "log", "nohash-hasher", @@ -3836,14 +3665,14 @@ checksum = "36db0f0db3b0433f5b9463f1c0cd9eadc0a3734a9170439ce501ff99733a88bd" dependencies = [ "bytes 1.0.1", "curve25519-dalek 3.1.0", - "futures 0.3.14", + "futures 0.3.15", "lazy_static", "libp2p-core", "log", "prost", "prost-build", "rand 0.7.3", - "sha2 0.9.3", + "sha2 0.9.5", "snow", "static_assertions", "x25519-dalek", @@ -3856,7 +3685,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf4bfaffac63bf3c7ec11ed9d8879d455966ddea7e78ee14737f0b6dce0d1cd1" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "libp2p-core", "libp2p-swarm", "log", @@ -3873,7 +3702,7 @@ checksum = "0c8c37b4d2a075b4be8442760a5f8c037180f0c8dd5b5734b9978ab868b3aa11" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.0.1", - "futures 0.3.14", + "futures 0.3.15", "libp2p-core", "log", "prost", @@ -3888,9 +3717,9 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce3374f3b28162db9d3442c9347c4f14cb01e8290052615c7d341d40eae0599" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "log", - "pin-project 1.0.6", + "pin-project 1.0.7", "rand 0.7.3", "salsa20", "sha3", @@ -3904,12 +3733,12 @@ checksum = "0b8786aca3f18671d8776289706a5521f6c9124a820f69e358de214b9939440d" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.0.1", - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "libp2p-core", "libp2p-swarm", "log", - "pin-project 1.0.6", + "pin-project 1.0.7", "prost", "prost-build", "rand 0.7.3", @@ -3927,7 +3756,7 @@ checksum = "1cdbe172f08e6d0f95fa8634e273d4c4268c4063de2e33e7435194b0130c62e3" dependencies = [ "async-trait", "bytes 1.0.1", - "futures 0.3.14", + "futures 0.3.15", "libp2p-core", "libp2p-swarm", "log", @@ -3946,7 +3775,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e04d8e1eef675029ec728ba14e8d0da7975d84b6679b699b4ae91a1de9c3a92" dependencies = [ "either", - "futures 0.3.14", + "futures 0.3.15", "libp2p-core", "log", "rand 0.7.3", @@ -3961,8 +3790,8 @@ version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "365b0a699fea5168676840567582a012ea297b1ca02eee467e58301b9c9c5eed" dependencies = [ - "quote 1.0.9", - "syn 1.0.69", + "quote", + "syn", ] [[package]] @@ -3972,7 +3801,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b1a27d21c477951799e99d5c105d78868258502ce092988040a808d5a19bbd9" dependencies = [ "async-io", - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "if-watch", "ipnet", @@ -3989,18 +3818,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffd6564bb3b7ff203661ccbb69003c2b551e34cef974f2d6c6a28306a12170b5" dependencies = [ "async-std", - "futures 0.3.14", + "futures 0.3.15", "libp2p-core", "log", ] [[package]] name = "libp2p-wasm-ext" -version = "0.28.1" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cef45d61e43c313531b5e903e4e8415212ff6338e0c54c47da5b9b412b5760de" +checksum = "e2d413e4cf9b8e5dfbcd2a60d3dc5a3391308bdb463684093d4f67137b7113de" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "js-sys", "libp2p-core", "parity-send-wrapper", @@ -4015,14 +3844,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cace60995ef6f637e4752cccbb2590f6bc358e8741a0d066307636c69a4b3a74" dependencies = [ "either", - "futures 0.3.14", + "futures 0.3.15", "futures-rustls", "libp2p-core", "log", "quicksink", "rw-stream-sink", - "soketto", - "url 2.2.1", + "soketto 0.4.2", + "url 2.2.2", "webpki-roots", ] @@ -4032,7 +3861,7 @@ version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f35da42cfc6d5cb0dcf3ad6881bc68d146cdf38f98655e09e33fbba4d13eabc4" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "libp2p-core", "parking_lot 0.11.1", "thiserror", @@ -4041,9 +3870,9 @@ dependencies = [ [[package]] name = "librocksdb-sys" -version = "6.11.4" +version = "6.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b56f651c204634b936be2f92dbb42c36867e00ff7fe2405591f3b9fa66f09" +checksum = "5da125e1c0f22c7cae785982115523a0738728498547f415c9054cb17c7e89f9" dependencies = [ "bindgen", "cc", @@ -4069,9 +3898,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "602113192b08db8f38796c4e85c39e960c145965140e918018bcde1952429655" +checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66" dependencies = [ "cc", "pkg-config", @@ -4095,11 +3924,11 @@ dependencies = [ [[package]] name = "linregress" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b36162d2e1dcbdeb61223cb788f029f8ac9f2ab19969b89c5a8f4517aad4d940" +checksum = "b1ff7f341d23e1275eec0656a9a07225fcc86216c4322392868adffe59023d1a" dependencies = [ - "nalgebra 0.25.4", + "nalgebra 0.27.1", "statrs", ] @@ -4114,9 +3943,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3c91c24eae6777794bb1997ad98bbb87daf92890acab859f7eaa4320333176" +checksum = "0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb" dependencies = [ "scopeguard", ] @@ -4187,20 +4016,33 @@ checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" [[package]] name = "matrixmultiply" -version = "0.2.4" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "916806ba0031cd542105d916a97c8572e1fa6dd79c9c51e7eb43a09ec2dd84c1" +checksum = "5a8a15b776d9dfaecd44b03c5828c2199cddff5247215858aac14624f8d6b741" dependencies = [ "rawpointer", ] [[package]] -name = "matrixmultiply" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a8a15b776d9dfaecd44b03c5828c2199cddff5247215858aac14624f8d6b741" +name = "max-encoded-len" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "rawpointer", + "impl-trait-for-tuples", + "max-encoded-len-derive", + "parity-scale-codec", + "primitive-types", +] + +[[package]] +name = "max-encoded-len-derive" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +dependencies = [ + "proc-macro-crate 1.0.0", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -4211,15 +4053,15 @@ checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" [[package]] name = "memchr" -version = "2.3.4" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" +checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc" [[package]] name = "memmap2" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397d1a6d6d0563c0f5462bbdae662cf6c784edf5e828e40c7257f85d82bf56dd" +checksum = "723e3ebdcdc5c023db1df315364573789f8857c11b631a2fdfad7c00f5c046b4" dependencies = [ "libc", ] @@ -4235,9 +4077,9 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83fb6581e8ed1f85fd45c116db8405483899489e38406156c25eb743554361d" +checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9" dependencies = [ "autocfg", ] @@ -4283,10 +4125,10 @@ dependencies = [ [[package]] name = "metered-channel" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ - "derive_more 0.99.13", - "futures 0.3.14", + "derive_more", + "futures 0.3.15", "futures-timer 3.0.2", ] @@ -4296,7 +4138,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c023c3f16109e7f33aa451f773fd61070e265b4977d0b6e344a51049296dd7df" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "rand 0.7.3", "thrift", ] @@ -4316,9 +4158,9 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f2b9e8883d58e34b18facd16c4564a77ea50fce028ad3d0ee6753440e37acc8" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -4435,22 +4277,22 @@ dependencies = [ "digest 0.9.0", "generic-array 0.14.4", "multihash-derive", - "sha2 0.9.3", + "sha2 0.9.5", "sha3", "unsigned-varint 0.5.1", ] [[package]] name = "multihash-derive" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85ee3c48cb9d9b275ad967a0e96715badc13c6029adb92f34fa17b9ff28fd81f" +checksum = "424f6e86263cd5294cbd7f1e95746b95aca0e0d66bff31e5a40d6baa87b4aa99" dependencies = [ - "proc-macro-crate 0.1.5", + "proc-macro-crate 1.0.0", "proc-macro-error", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", "synstructure", ] @@ -4467,65 +4309,64 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d91ec0a2440aaff5f78ec35631a7027d50386c6163aa975f7caa0d5da4b6ff8" dependencies = [ "bytes 1.0.1", - "futures 0.3.14", + "futures 0.3.15", "log", - "pin-project 1.0.6", + "pin-project 1.0.7", "smallvec 1.6.1", "unsigned-varint 0.7.0", ] [[package]] name = "nalgebra" -version = "0.19.0" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0abb021006c01b126a936a8dd1351e0720d83995f4fc942d0d426c654f990745" +checksum = "476d1d59fe02fe54c86356e91650cd892f392782a1cb9fc524ec84f7aa9e1d06" dependencies = [ - "alga", - "approx 0.3.2", - "generic-array 0.13.3", - "matrixmultiply 0.2.4", - "num-complex 0.2.4", - "num-rational 0.2.4", + "approx 0.4.0", + "matrixmultiply", + "num-complex 0.3.1", + "num-rational 0.3.2", "num-traits", - "rand 0.7.3", + "rand 0.8.4", "rand_distr", + "simba 0.4.0", "typenum", ] [[package]] name = "nalgebra" -version = "0.25.4" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c70c9e8c5f213c8e93fc8c112ade4edd3ee62062fb897776c23dcebac7932900" +checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120" dependencies = [ - "approx 0.4.0", - "generic-array 0.14.4", - "matrixmultiply 0.3.1", - "num-complex 0.3.1", - "num-rational 0.3.2", + "approx 0.5.0", + "matrixmultiply", + "nalgebra-macros", + "num-complex 0.4.0", + "num-rational 0.4.0", "num-traits", - "serde", - "simba", + "simba 0.5.1", "typenum", ] [[package]] -name = "names" -version = "0.11.0" +name = "nalgebra-macros" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef320dab323286b50fb5cdda23f61c796a72a89998ab565ca32525c5c556f2da" +checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" dependencies = [ - "rand 0.3.23", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "nb-connect" -version = "1.1.0" +name = "names" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19900e7eee95eb2b3c2e26d12a874cc80aaf750e31be6fcbe743ead369fa45d" +checksum = "ef320dab323286b50fb5cdda23f61c796a72a89998ab565ca32525c5c556f2da" dependencies = [ - "libc", - "socket2 0.4.0", + "rand 0.3.23", ] [[package]] @@ -4574,19 +4415,18 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.2.4" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-complex" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5" +checksum = "26873667bbbb7c5182d4a37c1add32cdf09f841af72da53318fdb81543c15085" dependencies = [ "num-traits", ] @@ -4624,6 +4464,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-rational" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.14" @@ -4646,19 +4497,28 @@ dependencies = [ [[package]] name = "object" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4" +checksum = "1a5b3dd1c072ee7963717671d1ca129f1048fda25edea6b752bfc71ac8854170" dependencies = [ "crc32fast", "indexmap", ] +[[package]] +name = "object" +version = "0.25.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a38f2be3697a57b4060074ff41b44c16870d916ad7877c17696e063257482bc7" +dependencies = [ + "memchr", +] + [[package]] name = "once_cell" -version = "1.7.2" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3" +checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" dependencies = [ "parking_lot 0.11.1", ] @@ -4677,9 +4537,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl-probe" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" +checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" [[package]] name = "ordered-float" @@ -4702,7 +4562,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4718,7 +4578,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4733,7 +4593,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4747,7 +4607,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-benchmarking", "frame-support", @@ -4770,12 +4630,13 @@ dependencies = [ [[package]] name = "pallet-balances" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", + "max-encoded-len", "parity-scale-codec", "sp-runtime", "sp-std", @@ -4784,7 +4645,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.3#063e18a1f82945d5a304906db92bfbb571bac459" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.6#caf37ef1b9dc17f2289a931b7724339acce5f96d" dependencies = [ "beefy-primitives", "frame-support", @@ -4799,7 +4660,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4809,31 +4670,10 @@ dependencies = [ "sp-std", ] -[[package]] -name = "pallet-bridge-grandpa" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" -dependencies = [ - "bp-header-chain", - "bp-runtime", - "bp-test-utils", - "finality-grandpa", - "frame-support", - "frame-system", - "log", - "num-traits", - "parity-scale-codec", - "serde", - "sp-finality-grandpa", - "sp-runtime", - "sp-std", - "sp-trie", -] - [[package]] name = "pallet-collective" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4848,7 +4688,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-benchmarking", "frame-support", @@ -4863,7 +4703,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4882,7 +4722,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4895,24 +4735,10 @@ dependencies = [ "sp-std", ] -[[package]] -name = "pallet-gilt" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "sp-arithmetic", - "sp-runtime", - "sp-std", -] - [[package]] name = "pallet-grandpa" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +version = "3.1.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-benchmarking", "frame-support", @@ -4924,6 +4750,7 @@ dependencies = [ "sp-application-crypto", "sp-core", "sp-finality-grandpa", + "sp-io", "sp-runtime", "sp-session", "sp-staking", @@ -4933,7 +4760,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4948,7 +4775,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4966,7 +4793,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4981,7 +4808,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-benchmarking", "frame-support", @@ -4996,7 +4823,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5013,7 +4840,7 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -5029,7 +4856,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5047,7 +4874,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -5061,7 +4888,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -5074,7 +4901,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -5090,10 +4917,11 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", + "max-encoded-len", "parity-scale-codec", "sp-core", "sp-io", @@ -5104,7 +4932,7 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -5114,24 +4942,10 @@ dependencies = [ "sp-std", ] -[[package]] -name = "pallet-recovery" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" -dependencies = [ - "enumflags2", - "frame-support", - "frame-system", - "parity-scale-codec", - "sp-io", - "sp-runtime", - "sp-std", -] - [[package]] name = "pallet-scheduler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-benchmarking", "frame-support", @@ -5146,11 +4960,12 @@ dependencies = [ [[package]] name = "pallet-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", + "log", "pallet-timestamp", "parity-scale-codec", "sp-core", @@ -5162,23 +4977,10 @@ dependencies = [ "sp-trie", ] -[[package]] -name = "pallet-society" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" -dependencies = [ - "frame-support", - "frame-system", - "parity-scale-codec", - "rand_chacha 0.2.2", - "sp-runtime", - "sp-std", -] - [[package]] name = "pallet-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-election-provider-support", "frame-support", @@ -5200,27 +5002,18 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "proc-macro-crate 1.0.0", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", -] - -[[package]] -name = "pallet-staking-reward-fn" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" -dependencies = [ - "log", - "sp-arithmetic", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "pallet-sudo" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -5247,7 +5040,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-benchmarking", "frame-support", @@ -5265,7 +5058,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -5279,7 +5072,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -5295,7 +5088,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5312,7 +5105,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5323,7 +5116,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -5338,7 +5131,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -5352,7 +5145,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "enumflags2", "frame-support", @@ -5365,12 +5158,11 @@ dependencies = [ [[package]] name = "pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", - "serde", "sp-runtime", "sp-std", "xcm", @@ -5389,10 +5181,10 @@ dependencies = [ "cumulus-client-service", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", - "derive_more 0.15.0", + "derive_more", "frame-benchmarking", "frame-benchmarking-cli", - "hex-literal 0.2.1", + "hex-literal", "jsonrpc-core", "log", "pallet-transaction-payment-rpc", @@ -5440,7 +5232,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.3#78b31b21122995b49f3c2cfe2791f188e33e5917" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -5459,6 +5251,7 @@ dependencies = [ "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-primitives-core", + "cumulus-primitives-timestamp", "cumulus-primitives-utility", "frame-benchmarking", "frame-executive", @@ -5500,9 +5293,9 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "495197c078e54b8735181aa35c00a327f7f3a3cc00a1ee8c95926dd010f0ec6b" +checksum = "2e337f62db341435f0da05b8f6b97e984ef4ea5800510cd07c2d624688c40b47" dependencies = [ "blake2-rfc", "crc32fast", @@ -5512,7 +5305,7 @@ dependencies = [ "log", "memmap2", "parking_lot 0.11.1", - "rand 0.8.3", + "rand 0.8.4", ] [[package]] @@ -5530,16 +5323,16 @@ dependencies = [ "serde", "static_assertions", "unsigned-varint 0.7.0", - "url 2.2.1", + "url 2.2.2", ] [[package]] name = "parity-scale-codec" -version = "2.1.1" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0f518afaa5a47d0d6386229b0a6e01e86427291d643aa4cabb4992219f504f8" +checksum = "b310f220c335f9df1b3d2e9fbe3890bbfeef5030dad771620f48c5c229877cd3" dependencies = [ - "arrayvec 0.7.0", + "arrayvec 0.7.1", "bitvec", "byte-slice-cast", "parity-scale-codec-derive", @@ -5548,14 +5341,14 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "2.1.0" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f44c5f94427bd0b5076e8f7e15ca3f60a4d8ac0077e4793884e6fdfd8915344e" +checksum = "81038e13ca2c32587201d544ea2e6b6c47120f1e4eae04478f9f60b6bcb89145" dependencies = [ - "proc-macro-crate 0.1.5", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro-crate 1.0.0", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -5607,8 +5400,8 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" dependencies = [ - "proc-macro2 1.0.26", - "syn 1.0.69", + "proc-macro2", + "syn", "synstructure", ] @@ -5623,9 +5416,9 @@ dependencies = [ [[package]] name = "parity-wasm" -version = "0.41.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddfc878dac00da22f8f61e7af3157988424567ab01d9920b962ef7dcbd7cd865" +checksum = "be5e13c266502aadf83426d87d81a0f5d1ef45b8027f5a471c360abfe4bfae92" [[package]] name = "parity-ws" @@ -5642,7 +5435,7 @@ dependencies = [ "rand 0.7.3", "sha-1 0.8.2", "slab", - "url 2.2.1", + "url 2.2.2", ] [[package]] @@ -5679,7 +5472,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb" dependencies = [ "instant", - "lock_api 0.4.3", + "lock_api 0.4.4", "parking_lot_core 0.8.3", ] @@ -5721,7 +5514,7 @@ dependencies = [ "cfg-if 1.0.0", "instant", "libc", - "redox_syscall 0.2.6", + "redox_syscall 0.2.9", "smallvec 1.6.1", "winapi 0.3.9", ] @@ -5802,9 +5595,9 @@ checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" dependencies = [ "pest", "pest_meta", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -5839,11 +5632,11 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc174859768806e91ae575187ada95c91a29e96a98dc5d2cd9a1fed039501ba6" +checksum = "c7509cc106041c40a4518d2af7a61530e1eed0e6285296a3d8c5472806ccc4a4" dependencies = [ - "pin-project-internal 1.0.6", + "pin-project-internal 1.0.7", ] [[package]] @@ -5852,20 +5645,20 @@ version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3be26700300be6d9d23264c73211d8190e755b6b5ca7a1b28230025511b52a5e" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "pin-project-internal" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a490329918e856ed1b083f244e3bfe2d8c4f336407e4ea9e1a9f479ff09049e5" +checksum = "48c950132583b500556b1efd71d45b319029f2b71518d979fcc208e16b42426f" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -5901,9 +5694,9 @@ checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325" [[package]] name = "polkadot-approval-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -5915,9 +5708,9 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -5928,9 +5721,9 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "lru", "parity-scale-codec", "polkadot-erasure-coding", @@ -5940,7 +5733,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.3", + "rand 0.8.4", "sp-application-crypto", "sp-core", "sp-keystore", @@ -5951,9 +5744,9 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "lru", "parity-scale-codec", "polkadot-erasure-coding", @@ -5962,18 +5755,18 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.3", + "rand 0.8.4", "thiserror", "tracing", ] [[package]] name = "polkadot-cli" -version = "0.9.3" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +version = "0.9.6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "frame-benchmarking-cli", - "futures 0.3.14", + "futures 0.3.15", "log", "polkadot-node-core-pvf", "polkadot-service", @@ -5987,13 +5780,42 @@ dependencies = [ "try-runtime-cli", ] +[[package]] +name = "polkadot-client" +version = "0.9.6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +dependencies = [ + "beefy-primitives", + "frame-benchmarking", + "frame-system-rpc-runtime-api", + "pallet-mmr-primitives", + "pallet-transaction-payment-rpc-runtime-api", + "polkadot-primitives", + "polkadot-runtime", + "sc-client-api", + "sc-executor", + "sc-service", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-finality-grandpa", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-storage", + "sp-transaction-pool", +] + [[package]] name = "polkadot-collator-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "always-assert", - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -6009,8 +5831,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.3" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +version = "0.9.6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -6021,8 +5843,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.3" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +version = "0.9.6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6036,9 +5858,9 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -6051,10 +5873,10 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "async-trait", - "futures 0.3.14", + "futures 0.3.15", "parity-scale-codec", "parking_lot 0.11.1", "polkadot-node-network-protocol", @@ -6071,9 +5893,9 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-primitives", @@ -6089,11 +5911,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "bitvec", - "derive_more 0.99.13", - "futures 0.3.14", + "derive_more", + "futures 0.3.15", "futures-timer 3.0.2", "kvdb", "merlin", @@ -6118,10 +5940,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "bitvec", - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "kvdb", "parity-scale-codec", @@ -6138,10 +5960,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "bitvec", - "futures 0.3.14", + "futures 0.3.15", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -6156,9 +5978,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -6168,28 +5990,13 @@ dependencies = [ "wasm-timer", ] -[[package]] -name = "polkadot-node-core-candidate-selection" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" -dependencies = [ - "futures 0.3.14", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sp-keystore", - "thiserror", - "tracing", -] - [[package]] name = "polkadot-node-core-candidate-validation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "async-trait", - "futures 0.3.14", + "futures 0.3.15", "parity-scale-codec", "polkadot-node-core-pvf", "polkadot-node-primitives", @@ -6204,9 +6011,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -6217,10 +6024,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "async-trait", - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "polkadot-node-subsystem", "polkadot-overseer", @@ -6235,10 +6042,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "bitvec", - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -6250,20 +6057,20 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "always-assert", "assert_matches", "async-process", "async-std", - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "libc", "parity-scale-codec", - "pin-project 1.0.6", + "pin-project 1.0.7", "polkadot-core-primitives", "polkadot-parachain", - "rand 0.8.3", + "rand 0.8.4", "sc-executor", "sc-executor-common", "sc-executor-wasmtime", @@ -6278,9 +6085,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "memory-lru", "parity-util-mem", "polkadot-node-subsystem", @@ -6296,7 +6103,7 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "async-std", "lazy_static", @@ -6314,9 +6121,9 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", @@ -6329,9 +6136,9 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", @@ -6342,6 +6149,7 @@ dependencies = [ "sp-consensus-babe", "sp-consensus-vrf", "sp-core", + "sp-keystore", "sp-maybe-compressed-blob", "sp-runtime", "thiserror", @@ -6351,19 +6159,19 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "async-std", "async-trait", - "derive_more 0.99.13", - "futures 0.3.14", + "derive_more", + "futures 0.3.15", "futures-timer 3.0.2", "lazy_static", "log", "mick-jaeger", "parity-scale-codec", "parking_lot 0.11.1", - "pin-project 1.0.6", + "pin-project 1.0.7", "polkadot-node-jaeger", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -6381,21 +6189,21 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "async-trait", - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "lru", "metered-channel", "parity-scale-codec", - "pin-project 1.0.6", + "pin-project 1.0.7", "polkadot-node-jaeger", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-primitives", - "rand 0.8.3", + "rand 0.8.4", "sc-network", "sp-application-crypto", "sp-core", @@ -6409,11 +6217,12 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "async-trait", - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", + "lru", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -6426,10 +6235,10 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.3" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +version = "0.9.6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ - "derive_more 0.99.13", + "derive_more", "parity-scale-codec", "parity-util-mem", "polkadot-core-primitives", @@ -6441,12 +6250,12 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.3" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +version = "0.9.6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "bitvec", "frame-system", - "hex-literal 0.3.1", + "hex-literal", "parity-scale-codec", "parity-util-mem", "polkadot-core-primitives", @@ -6456,6 +6265,7 @@ dependencies = [ "sp-application-crypto", "sp-arithmetic", "sp-authority-discovery", + "sp-consensus-slots", "sp-core", "sp-inherents", "sp-io", @@ -6471,29 +6281,29 @@ dependencies = [ [[package]] name = "polkadot-procmacro-overseer-subsystems-gen" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "assert_matches", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "polkadot-procmacro-subsystem-dispatch-gen" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "assert_matches", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "polkadot-rpc" -version = "0.9.3" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +version = "0.9.6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -6525,17 +6335,19 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.3" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +version = "0.9.6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "beefy-primitives", "bitvec", + "frame-election-provider-support", "frame-executive", "frame-support", "frame-system", "frame-system-rpc-runtime-api", "frame-try-runtime", "log", + "max-encoded-len", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", @@ -6595,8 +6407,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.3" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +version = "0.9.5" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "beefy-primitives", "bitvec", @@ -6637,11 +6449,11 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.3" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +version = "0.9.5" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "bitvec", - "derive_more 0.99.13", + "derive_more", "frame-support", "frame-system", "log", @@ -6655,8 +6467,8 @@ dependencies = [ "pallet-vesting", "parity-scale-codec", "polkadot-primitives", - "rand 0.8.3", - "rand_chacha 0.3.0", + "rand 0.8.4", + "rand_chacha 0.3.1", "rustc-hex", "serde", "sp-api", @@ -6674,16 +6486,14 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.3" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +version = "0.9.6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "beefy-gadget", "beefy-primitives", - "frame-benchmarking", "frame-system-rpc-runtime-api", - "futures 0.3.14", - "hex-literal 0.3.1", - "kusama-runtime", + "futures 0.3.15", + "hex-literal", "kvdb", "kvdb-rocksdb", "pallet-babe", @@ -6695,6 +6505,7 @@ dependencies = [ "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", "polkadot-availability-recovery", + "polkadot-client", "polkadot-collator-protocol", "polkadot-gossip-support", "polkadot-network-bridge", @@ -6703,7 +6514,6 @@ dependencies = [ "polkadot-node-core-av-store", "polkadot-node-core-backing", "polkadot-node-core-bitfield-signing", - "polkadot-node-core-candidate-selection", "polkadot-node-core-candidate-validation", "polkadot-node-core-chain-api", "polkadot-node-core-parachains-inherent", @@ -6719,7 +6529,6 @@ dependencies = [ "polkadot-runtime", "polkadot-runtime-parachains", "polkadot-statement-distribution", - "rococo-runtime", "sc-authority-discovery", "sc-basic-authorship", "sc-block-builder", @@ -6761,16 +6570,15 @@ dependencies = [ "substrate-prometheus-endpoint", "thiserror", "tracing", - "westend-runtime", ] [[package]] name = "polkadot-statement-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "arrayvec 0.5.2", - "futures 0.3.14", + "futures 0.3.15", "indexmap", "parity-scale-codec", "polkadot-node-network-protocol", @@ -6787,8 +6595,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.3" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +version = "0.9.6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -6797,8 +6605,8 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" -version = "0.9.3" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +version = "0.9.6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "beefy-primitives", "bitvec", @@ -6854,13 +6662,13 @@ dependencies = [ [[package]] name = "polkadot-test-service" -version = "0.9.3" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +version = "0.9.6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "frame-benchmarking", "frame-system", "futures 0.1.31", - "futures 0.3.14", + "futures 0.3.15", "hex", "pallet-balances", "pallet-staking", @@ -6875,7 +6683,7 @@ dependencies = [ "polkadot-runtime-parachains", "polkadot-service", "polkadot-test-runtime", - "rand 0.8.3", + "rand 0.8.4", "sc-authority-discovery", "sc-chain-spec", "sc-cli", @@ -6906,14 +6714,14 @@ dependencies = [ [[package]] name = "polling" -version = "2.0.3" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fc12d774e799ee9ebae13f4076ca003b40d18a11ac0f3641e6f899618580b7b" +checksum = "92341d779fa34ea8437ef4d82d440d5e1ce3f3ff7f824aa64424cd481f9a1f25" dependencies = [ "cfg-if 1.0.0", "libc", "log", - "wepoll-sys", + "wepoll-ffi", "winapi 0.3.9", ] @@ -6923,7 +6731,7 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b7456bc1ad2d4cf82b3a016be4c2ac48daf11bf990c1603ebd447fe6f30fca8" dependencies = [ - "cpuid-bool 0.2.0", + "cpuid-bool", "universal-hash", ] @@ -6933,7 +6741,7 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eebcc4aa140b9abd2bc40d9c3f7ccec842679cd79045ac3a7ac698c1a064b7cd" dependencies = [ - "cpuid-bool 0.2.0", + "cpuid-bool", "opaque-debug 0.3.0", "universal-hash", ] @@ -6983,9 +6791,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", "version_check", ] @@ -6995,8 +6803,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", + "proc-macro2", + "quote", "version_check", ] @@ -7014,20 +6822,11 @@ checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" [[package]] name = "proc-macro2" -version = "0.4.30" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038" dependencies = [ - "unicode-xid 0.1.0", -] - -[[package]] -name = "proc-macro2" -version = "1.0.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec" -dependencies = [ - "unicode-xid 0.2.1", + "unicode-xid", ] [[package]] @@ -7069,7 +6868,7 @@ dependencies = [ "prost", "prost-types", "tempfile", - "which 4.1.0", + "which", ] [[package]] @@ -7080,9 +6879,9 @@ checksum = "169a15f3008ecb5160cba7d37bcd690a7601b6d30cfb87a117d45e59d52af5d4" dependencies = [ "anyhow", "itertools 0.9.0", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -7097,22 +6896,22 @@ dependencies = [ [[package]] name = "psm" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3abf49e5417290756acfd26501536358560c4a5cc4a0934d390939acb3e7083a" +checksum = "21ff0279b4a85e576b97e4a21d13e437ebcd56612706cde5d3f0d5c9399490c0" dependencies = [ "cc", ] [[package]] name = "pwasm-utils" -version = "0.14.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f53bc2558e8376358ebdc28301546471d67336584f6438ed4b7c7457a055fd7" +checksum = "f0c1a2f10b47d446372a4f397c58b329aaea72b2daf9395a623a411cb8ccb54f" dependencies = [ "byteorder", "log", - "parity-wasm 0.41.0", + "parity-wasm 0.42.2", ] [[package]] @@ -7138,22 +6937,13 @@ dependencies = [ "pin-project-lite 0.1.12", ] -[[package]] -name = "quote" -version = "0.6.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" -dependencies = [ - "proc-macro2 0.4.30", -] - [[package]] name = "quote" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" dependencies = [ - "proc-macro2 1.0.26", + "proc-macro2", ] [[package]] @@ -7201,14 +6991,14 @@ dependencies = [ [[package]] name = "rand" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" +checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" dependencies = [ "libc", - "rand_chacha 0.3.0", - "rand_core 0.6.2", - "rand_hc 0.3.0", + "rand_chacha 0.3.1", + "rand_core 0.6.3", + "rand_hc 0.3.1", ] [[package]] @@ -7223,12 +7013,12 @@ dependencies = [ [[package]] name = "rand_chacha" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.2", + "rand_core 0.6.3", ] [[package]] @@ -7257,20 +7047,21 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ - "getrandom 0.2.2", + "getrandom 0.2.3", ] [[package]] name = "rand_distr" -version = "0.2.2" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96977acbdd3a6576fb1d27391900035bf3863d4a16422973a409b488cf29ffb2" +checksum = "051b398806e42b9cd04ad9ec8f81e355d0a382c543ac6672c62f5a5b452ef142" dependencies = [ - "rand 0.7.3", + "num-traits", + "rand 0.8.4", ] [[package]] @@ -7284,11 +7075,11 @@ dependencies = [ [[package]] name = "rand_hc" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" +checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" dependencies = [ - "rand_core 0.6.2", + "rand_core 0.6.3", ] [[package]] @@ -7308,9 +7099,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674" +checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" dependencies = [ "autocfg", "crossbeam-deque 0.8.0", @@ -7320,13 +7111,13 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.9.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a" +checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" dependencies = [ "crossbeam-channel", "crossbeam-deque 0.8.0", - "crossbeam-utils 0.8.3", + "crossbeam-utils 0.8.5", "lazy_static", "num_cpus", ] @@ -7348,32 +7139,21 @@ checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" [[package]] name = "redox_syscall" -version = "0.2.6" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8270314b5ccceb518e7e578952f0b72b88222d02e8f77f5ecf7abbb673539041" +checksum = "5ab49abadf3f9e1c4bc499e8845e152ad87d2ad2d30371841171169e9d75feee" dependencies = [ "bitflags", ] -[[package]] -name = "redox_users" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d" -dependencies = [ - "getrandom 0.1.16", - "redox_syscall 0.1.57", - "rust-argon2", -] - [[package]] name = "redox_users" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" dependencies = [ - "getrandom 0.2.2", - "redox_syscall 0.2.6", + "getrandom 0.2.3", + "redox_syscall 0.2.9", ] [[package]] @@ -7382,9 +7162,9 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3bd8f48b2066e9f69ab192797d66da804d1935bf22763204ed3675740cb0f221" dependencies = [ - "derive_more 0.99.13", + "derive_more", "fs-err", - "itertools 0.10.0", + "itertools 0.10.1", "static_init", "thiserror", ] @@ -7404,9 +7184,9 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c38e3aecd2b21cb3959637b883bb3714bc7e43f0268b9a29d3743ee3e55cdd2" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -7423,9 +7203,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.4.5" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957056ecddbeba1b26965114e191d2e8589ce74db242b6ea25fc4062427a5c19" +checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" dependencies = [ "aho-corasick", "memchr", @@ -7434,19 +7214,18 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" dependencies = [ - "byteorder", "regex-syntax", ] [[package]] name = "regex-syntax" -version = "0.6.23" +version = "0.6.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548" +checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" [[package]] name = "region" @@ -7463,14 +7242,16 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "env_logger 0.8.3", - "hex-literal 0.3.1", - "jsonrpsee-http-client", + "env_logger 0.8.4", + "hex", "jsonrpsee-proc-macros", + "jsonrpsee-ws-client", "log", "parity-scale-codec", + "serde", + "serde_json", "sp-core", "sp-io", "sp-runtime", @@ -7497,9 +7278,9 @@ dependencies = [ [[package]] name = "retain_mut" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53552c6c49e1e13f1a203ef0080ab3bbef0beb570a528993e83df057a9d9bba1" +checksum = "e9c17925a9027d298a4603d286befe3f9dc0e8ed02523141914eb628798d6e5b" [[package]] name = "ring" @@ -7522,113 +7303,35 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e54369147e3e7796c9b885c7304db87ca3d09a0a98f72843d532868675bbfba8" dependencies = [ - "bytes 1.0.1", - "rustc-hex", -] - -[[package]] -name = "rocksdb" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d83c02c429044d58474eaf5ae31e062d0de894e21125b47437ec0edc1397e6" -dependencies = [ - "libc", - "librocksdb-sys", -] - -[[package]] -name = "rococo-runtime" -version = "0.9.3" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" -dependencies = [ - "beefy-primitives", - "bp-rococo", - "bp-wococo", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-rpc-runtime-api", - "hex-literal 0.3.1", - "log", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-balances", - "pallet-beefy", - "pallet-bridge-grandpa", - "pallet-collective", - "pallet-grandpa", - "pallet-im-online", - "pallet-indices", - "pallet-membership", - "pallet-mmr", - "pallet-mmr-primitives", - "pallet-offences", - "pallet-proxy", - "pallet-session", - "pallet-staking", - "pallet-staking-reward-curve", - "pallet-sudo", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-utility", - "pallet-xcm", - "parity-scale-codec", - "polkadot-parachain", - "polkadot-primitives", - "polkadot-runtime-common", - "polkadot-runtime-parachains", - "serde", - "serde_derive", - "smallvec 1.6.1", - "sp-api", - "sp-authority-discovery", - "sp-block-builder", - "sp-consensus-babe", - "sp-core", - "sp-inherents", - "sp-io", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "sp-transaction-pool", - "sp-version", - "substrate-wasm-builder 3.0.0", - "xcm", - "xcm-builder", - "xcm-executor", + "bytes 1.0.1", + "rustc-hex", ] [[package]] -name = "rpassword" -version = "5.0.1" +name = "rocksdb" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" +checksum = "c749134fda8bfc90d0de643d59bfc841dcb3ac8a1062e12b6754bd60235c48b3" dependencies = [ "libc", - "winapi 0.3.9", + "librocksdb-sys", ] [[package]] -name = "rust-argon2" -version = "0.8.3" +name = "rpassword" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb" +checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" dependencies = [ - "base64 0.13.0", - "blake2b_simd", - "constant_time_eq", - "crossbeam-utils 0.8.3", + "libc", + "winapi 0.3.9", ] [[package]] name = "rustc-demangle" -version = "0.1.18" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232" +checksum = "dead70b0b5e03e9c814bcb6b01e03e68f7c57a80aa48c72ec92152ab3e818d49" [[package]] name = "rustc-hash" @@ -7666,9 +7369,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.19.0" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "064fd21ff87c6e87ed4506e68beb42459caa4a0e2eb144932e6776768556980b" +checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" dependencies = [ "base64 0.13.0", "log", @@ -7686,7 +7389,19 @@ dependencies = [ "openssl-probe", "rustls 0.18.1", "schannel", - "security-framework", + "security-framework 1.0.0", +] + +[[package]] +name = "rustls-native-certs" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092" +dependencies = [ + "openssl-probe", + "rustls 0.19.1", + "schannel", + "security-framework 2.3.1", ] [[package]] @@ -7705,7 +7420,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "pin-project 0.4.28", "static_assertions", ] @@ -7746,12 +7461,12 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", - "derive_more 0.99.13", + "derive_more", "either", - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "ip_network", "libp2p", @@ -7775,9 +7490,9 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -7798,7 +7513,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7814,7 +7529,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7835,22 +7550,22 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "proc-macro-crate 1.0.0", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "sc-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "chrono", "fdlimit", - "futures 0.3.14", + "futures 0.3.15", "hex", "libp2p", "log", @@ -7884,11 +7599,11 @@ dependencies = [ [[package]] name = "sc-client-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "derive_more 0.99.13", + "derive_more", "fnv", - "futures 0.3.14", + "futures 0.3.15", "hash-db", "kvdb", "lazy_static", @@ -7918,7 +7633,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "blake2-rfc", "hash-db", @@ -7948,7 +7663,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parking_lot 0.11.1", "sc-client-api", @@ -7960,11 +7675,11 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", - "derive_more 0.99.13", - "futures 0.3.14", + "derive_more", + "futures 0.3.15", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -7991,12 +7706,12 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", - "derive_more 0.99.13", + "derive_more", "fork-tree", - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "log", "merlin", @@ -8037,10 +7752,10 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "derive_more 0.99.13", - "futures 0.3.14", + "derive_more", + "futures 0.3.15", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -8061,7 +7776,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8074,10 +7789,10 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "impl-trait-for-tuples", "log", @@ -8102,7 +7817,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "sc-client-api", "sp-authorship", @@ -8113,14 +7828,14 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "derive_more 0.99.13", + "derive_more", "lazy_static", "libsecp256k1", "log", "parity-scale-codec", - "parity-wasm 0.41.0", + "parity-wasm 0.42.2", "parking_lot 0.11.1", "sc-executor-common", "sc-executor-wasmi", @@ -8142,11 +7857,10 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "derive_more 0.99.13", + "derive_more", "parity-scale-codec", - "parity-wasm 0.41.0", "pwasm-utils", "sp-allocator", "sp-core", @@ -8160,7 +7874,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "log", "parity-scale-codec", @@ -8175,12 +7889,11 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "log", "parity-scale-codec", - "parity-wasm 0.41.0", - "pwasm-utils", + "parity-wasm 0.42.2", "sc-executor-common", "scoped-tls", "sp-allocator", @@ -8193,20 +7906,20 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", - "derive_more 0.99.13", + "derive_more", "dyn-clone", "finality-grandpa", "fork-tree", - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "linked-hash-map", "log", "parity-scale-codec", "parking_lot 0.11.1", - "pin-project 1.0.6", + "pin-project 1.0.7", "rand 0.7.3", "sc-block-builder", "sc-client-api", @@ -8228,16 +7941,17 @@ dependencies = [ "sp-runtime", "sp-utils", "substrate-prometheus-endpoint", + "wasm-timer", ] [[package]] name = "sc-finality-grandpa-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "derive_more 0.99.13", + "derive_more", "finality-grandpa", - "futures 0.3.14", + "futures 0.3.15", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -8257,10 +7971,10 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-warp-sync" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "derive_more 0.99.13", - "futures 0.3.14", + "derive_more", + "futures 0.3.15", "log", "num-traits", "parity-scale-codec", @@ -8278,10 +7992,11 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "ansi_term 0.12.1", - "futures 0.3.14", + "futures 0.3.15", + "futures-timer 3.0.2", "log", "parity-util-mem", "sc-client-api", @@ -8289,18 +8004,17 @@ dependencies = [ "sp-blockchain", "sp-runtime", "sp-transaction-pool", - "sp-utils", "wasm-timer", ] [[package]] name = "sc-keystore" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", - "derive_more 0.99.13", - "futures 0.3.14", + "derive_more", + "futures 0.3.15", "futures-util", "hex", "merlin", @@ -8316,7 +8030,7 @@ dependencies = [ [[package]] name = "sc-light" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "hash-db", "lazy_static", @@ -8335,7 +8049,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-std", "async-trait", @@ -8344,12 +8058,12 @@ dependencies = [ "bs58", "bytes 1.0.1", "cid", - "derive_more 0.99.13", + "derive_more", "either", "erased-serde", "fnv", "fork-tree", - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "hex", "ip_network", @@ -8361,7 +8075,7 @@ dependencies = [ "nohash-hasher", "parity-scale-codec", "parking_lot 0.11.1", - "pin-project 1.0.6", + "pin-project 1.0.7", "prost", "prost-build", "rand 0.7.3", @@ -8388,9 +8102,9 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "libp2p", "log", @@ -8405,11 +8119,11 @@ dependencies = [ [[package]] name = "sc-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "bytes 0.5.6", "fnv", - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "hex", "hyper 0.13.10", @@ -8433,9 +8147,9 @@ dependencies = [ [[package]] name = "sc-peerset" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "libp2p", "log", "serde_json", @@ -8446,7 +8160,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8455,9 +8169,9 @@ dependencies = [ [[package]] name = "sc-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "hash-db", "jsonrpc-core", "jsonrpc-pubsub", @@ -8490,10 +8204,10 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "derive_more 0.99.13", - "futures 0.3.14", + "derive_more", + "futures 0.3.15", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -8515,7 +8229,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "futures 0.1.31", "jsonrpc-core", @@ -8533,13 +8247,13 @@ dependencies = [ [[package]] name = "sc-service" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "directories", "exit-future", "futures 0.1.31", - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "hash-db", "jsonrpc-core", @@ -8549,7 +8263,7 @@ dependencies = [ "parity-scale-codec", "parity-util-mem", "parking_lot 0.11.1", - "pin-project 1.0.6", + "pin-project 1.0.7", "rand 0.7.3", "sc-block-builder", "sc-chain-spec", @@ -8583,6 +8297,7 @@ dependencies = [ "sp-state-machine", "sp-tracing", "sp-transaction-pool", + "sp-transaction-storage-proof", "sp-trie", "sp-utils", "sp-version", @@ -8597,7 +8312,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "log", "parity-scale-codec", @@ -8612,7 +8327,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -8632,14 +8347,14 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "chrono", - "futures 0.3.14", + "futures 0.3.15", "libp2p", "log", "parking_lot 0.11.1", - "pin-project 1.0.6", + "pin-project 1.0.7", "rand 0.7.3", "serde", "serde_json", @@ -8652,7 +8367,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "ansi_term 0.12.1", "atty", @@ -8689,21 +8404,21 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "proc-macro-crate 1.0.0", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "sc-transaction-graph" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "derive_more 0.99.13", - "futures 0.3.14", + "derive_more", + "futures 0.3.15", "linked-hash-map", "log", "parity-util-mem", @@ -8722,10 +8437,9 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "futures 0.3.14", - "futures-diagnose", + "futures 0.3.15", "intervalier", "log", "parity-scale-codec", @@ -8768,7 +8482,6 @@ dependencies = [ "merlin", "rand 0.7.3", "rand_core 0.5.1", - "serde", "sha2 0.8.2", "subtle 2.4.0", "zeroize", @@ -8801,9 +8514,9 @@ version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -8832,10 +8545,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad502866817f0575705bd7be36e2b2535cc33262d493aa733a2ec862baa2bc2b" dependencies = [ "bitflags", - "core-foundation", - "core-foundation-sys", + "core-foundation 0.7.0", + "core-foundation-sys 0.7.0", + "libc", + "security-framework-sys 1.0.0", +] + +[[package]] +name = "security-framework" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23a2ac85147a3a11d77ecf1bc7166ec0b92febfa4461c37944e180f319ece467" +dependencies = [ + "bitflags", + "core-foundation 0.9.1", + "core-foundation-sys 0.8.2", "libc", - "security-framework-sys", + "security-framework-sys 2.3.0", ] [[package]] @@ -8844,7 +8570,17 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51ceb04988b17b6d1dcd555390fa822ca5637b4a14e1f5099f13d351bed4d6c7" dependencies = [ - "core-foundation-sys", + "core-foundation-sys 0.7.0", + "libc", +] + +[[package]] +name = "security-framework-sys" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e4effb91b4b8b6fb7732e670b6cee160278ff8e6bf485c7805d9e319d76e284" +dependencies = [ + "core-foundation-sys 0.8.2", "libc", ] @@ -8893,22 +8629,22 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.125" +version = "1.0.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171" +checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.125" +version = "1.0.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d" +checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -8936,13 +8672,13 @@ dependencies = [ [[package]] name = "sha-1" -version = "0.9.4" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfebf75d25bd900fd1e7d11501efab59bc846dbc76196839663e6637bba9f25f" +checksum = "8c4cfa741c5832d0ef7fab46cabed29c2aae926db0b11bb2069edd8db5e64e16" dependencies = [ "block-buffer 0.9.0", "cfg-if 1.0.0", - "cpuid-bool 0.1.2", + "cpufeatures", "digest 0.9.0", "opaque-debug 0.3.0", ] @@ -8961,13 +8697,13 @@ dependencies = [ [[package]] name = "sha2" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa827a14b29ab7f44778d14a88d3cb76e949c45083f7dbfa507d0cb699dc12de" +checksum = "b362ae5752fd2137731f9fa25fd4d9058af34666ca1966fb969119cc35719f12" dependencies = [ "block-buffer 0.9.0", "cfg-if 1.0.0", - "cpuid-bool 0.1.2", + "cpufeatures", "digest 0.9.0", "opaque-debug 0.3.0", ] @@ -9001,9 +8737,9 @@ checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" [[package]] name = "signal-hook" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef33d6d0cd06e0840fba9985aab098c147e67e05cee14d412d3345ed14ff30ac" +checksum = "470c5a6397076fae0094aaf06a08e6ba6f37acb77d3b1b91ea92b4d6c8650c39" dependencies = [ "libc", "signal-hook-registry", @@ -9011,9 +8747,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f1d0fef1604ba8f7a073c7e701f213e056707210e9020af4528e0101ce11a6" +checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" dependencies = [ "libc", ] @@ -9036,11 +8772,23 @@ dependencies = [ "paste", ] +[[package]] +name = "simba" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c" +dependencies = [ + "approx 0.5.0", + "num-complex 0.4.0", + "num-traits", + "paste", +] + [[package]] name = "slab" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" +checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527" [[package]] name = "slog" @@ -9053,8 +8801,8 @@ dependencies = [ [[package]] name = "slot-range-helper" -version = "0.9.3" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +version = "0.9.6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "enumn", "parity-scale-codec", @@ -9100,7 +8848,7 @@ dependencies = [ "rand_core 0.5.1", "ring", "rustc_version", - "sha2 0.9.3", + "sha2 0.9.5", "subtle 2.4.0", "x25519-dalek", ] @@ -9135,17 +8883,32 @@ dependencies = [ "base64 0.12.3", "bytes 0.5.6", "flate2", - "futures 0.3.14", + "futures 0.3.15", "httparse", "log", "rand 0.7.3", - "sha-1 0.9.4", + "sha-1 0.9.6", +] + +[[package]] +name = "soketto" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4919971d141dbadaa0e82b5d369e2d7666c98e4625046140615ca363e50d4daa" +dependencies = [ + "base64 0.13.0", + "bytes 1.0.1", + "futures 0.3.15", + "httparse", + "log", + "rand 0.8.4", + "sha-1 0.9.6", ] [[package]] name = "sp-allocator" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "log", "sp-core", @@ -9157,7 +8920,7 @@ dependencies = [ [[package]] name = "sp-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "hash-db", "log", @@ -9174,20 +8937,21 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "blake2-rfc", "proc-macro-crate 1.0.0", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "sp-application-crypto" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ + "max-encoded-len", "parity-scale-codec", "serde", "sp-core", @@ -9198,7 +8962,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "integer-sqrt", "num-traits", @@ -9212,7 +8976,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "sp-api", @@ -9224,7 +8988,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "parity-scale-codec", @@ -9236,7 +9000,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "sp-api", @@ -9248,9 +9012,9 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "log", "lru", "parity-scale-codec", @@ -9266,7 +9030,7 @@ dependencies = [ [[package]] name = "sp-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "serde", "serde_json", @@ -9275,10 +9039,10 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", - "futures 0.3.14", + "futures 0.3.15", "futures-timer 3.0.2", "libp2p", "log", @@ -9302,7 +9066,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "parity-scale-codec", @@ -9319,7 +9083,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "merlin", @@ -9341,7 +9105,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "sp-arithmetic", @@ -9351,7 +9115,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -9363,14 +9127,14 @@ dependencies = [ [[package]] name = "sp-core" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "base58", "blake2-rfc", "byteorder", "dyn-clonable", "ed25519-dalek", - "futures 0.3.14", + "futures 0.3.15", "hash-db", "hash256-std-hasher", "hex", @@ -9378,6 +9142,7 @@ dependencies = [ "lazy_static", "libsecp256k1", "log", + "max-encoded-len", "merlin", "num-traits", "parity-scale-codec", @@ -9389,7 +9154,7 @@ dependencies = [ "schnorrkel", "secrecy", "serde", - "sha2 0.9.3", + "sha2 0.9.5", "sp-debug-derive", "sp-externalities", "sp-runtime-interface", @@ -9407,7 +9172,7 @@ dependencies = [ [[package]] name = "sp-database" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "kvdb", "parking_lot 0.11.1", @@ -9416,17 +9181,17 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "sp-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "environmental", "parity-scale-codec", @@ -9437,7 +9202,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "finality-grandpa", "log", @@ -9454,7 +9219,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9468,9 +9233,9 @@ dependencies = [ [[package]] name = "sp-io" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "hash-db", "libsecp256k1", "log", @@ -9493,7 +9258,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "lazy_static", "sp-core", @@ -9504,11 +9269,11 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", - "derive_more 0.99.13", - "futures 0.3.14", + "derive_more", + "futures 0.3.15", "merlin", "parity-scale-codec", "parking_lot 0.11.1", @@ -9521,7 +9286,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "ruzstd", "zstd", @@ -9530,7 +9295,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "serde", @@ -9543,18 +9308,18 @@ dependencies = [ [[package]] name = "sp-npos-elections-compact" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "proc-macro-crate 1.0.0", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "sp-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "sp-api", "sp-core", @@ -9564,7 +9329,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "backtrace", ] @@ -9572,7 +9337,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "rustc-hash", "serde", @@ -9583,12 +9348,13 @@ dependencies = [ [[package]] name = "sp-runtime" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "either", "hash256-std-hasher", "impl-trait-for-tuples", "log", + "max-encoded-len", "parity-scale-codec", "parity-util-mem", "paste", @@ -9604,7 +9370,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9621,19 +9387,19 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "Inflector", "proc-macro-crate 1.0.0", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "sp-serializer" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "serde", "serde_json", @@ -9642,7 +9408,7 @@ dependencies = [ [[package]] name = "sp-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "sp-api", @@ -9655,7 +9421,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -9665,7 +9431,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "hash-db", "log", @@ -9688,12 +9454,12 @@ dependencies = [ [[package]] name = "sp-std" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" [[package]] name = "sp-storage" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9706,7 +9472,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "log", "sp-core", @@ -9719,7 +9485,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "futures-timer 3.0.2", @@ -9736,7 +9502,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "erased-serde", "log", @@ -9754,10 +9520,10 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "derive_more 0.99.13", - "futures 0.3.14", + "derive_more", + "futures 0.3.15", "log", "parity-scale-codec", "serde", @@ -9767,10 +9533,25 @@ dependencies = [ "thiserror", ] +[[package]] +name = "sp-transaction-storage-proof" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +dependencies = [ + "async-trait", + "log", + "parity-scale-codec", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-std", + "sp-trie", +] + [[package]] name = "sp-trie" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "hash-db", "memory-db", @@ -9784,9 +9565,9 @@ dependencies = [ [[package]] name = "sp-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "futures-core", "futures-timer 3.0.2", "lazy_static", @@ -9796,7 +9577,7 @@ dependencies = [ [[package]] name = "sp-version" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9809,19 +9590,19 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "proc-macro-crate 1.0.0", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "sp-wasm-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9867,19 +9648,22 @@ checksum = "f2261c91034a1edc3fc4d1b80e89d82714faede0515c14a75da10cb941546bbf" dependencies = [ "cfg_aliases", "memchr", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "statrs" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e34b58a8f9b7462b6922e0b4e3c83d1b3c2075f7f996a56d6c66afa81590064" +checksum = "1e0c1f144861fbfd2a8cc82d564ccbf7fb3b7834d4fa128b84e9c2a73371aead" dependencies = [ - "nalgebra 0.19.0", - "rand 0.7.3", + "approx 0.4.0", + "lazy_static", + "nalgebra 0.26.2", + "num-traits", + "rand 0.8.4", ] [[package]] @@ -9938,9 +9722,9 @@ checksum = "5ba9cdfda491b814720b6b06e0cac513d922fc407582032e8706e9f137976f90" dependencies = [ "heck", "proc-macro-error", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -9959,9 +9743,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149" dependencies = [ "heck", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -9980,7 +9764,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "platforms", ] @@ -9988,10 +9772,10 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-system-rpc-runtime-api", - "futures 0.3.14", + "futures 0.3.15", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -10011,10 +9795,10 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-std", - "derive_more 0.99.13", + "derive_more", "futures-util", "hyper 0.13.10", "log", @@ -10025,11 +9809,11 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "futures 0.1.31", - "futures 0.3.14", + "futures 0.3.15", "hash-db", "hex", "parity-scale-codec", @@ -10070,7 +9854,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "ansi_term 0.12.1", "atty", @@ -10097,24 +9881,13 @@ checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2" [[package]] name = "syn" -version = "0.15.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" -dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "unicode-xid 0.1.0", -] - -[[package]] -name = "syn" -version = "1.0.69" +version = "1.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48fe99c6bd8b1cc636890bcc071842de909d902c81ac7dab53ba33c421ab8ffb" +checksum = "f71489ff30030d2ae598524f61326b902466f72a0fb1a8564c001cc63425bcc7" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "unicode-xid 0.2.1", + "proc-macro2", + "quote", + "unicode-xid", ] [[package]] @@ -10123,10 +9896,10 @@ version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", - "unicode-xid 0.2.1", + "proc-macro2", + "quote", + "syn", + "unicode-xid", ] [[package]] @@ -10143,9 +9916,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.11.2" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "422045212ea98508ae3d28025bc5aaa2bd4a9cdaecd442a08da2ee620ee9ea95" +checksum = "64ae3b39281e4b14b8123bdbaddd472b7dfe215e444181f2f9d2443c2444f834" [[package]] name = "tempfile" @@ -10155,8 +9928,8 @@ checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" dependencies = [ "cfg-if 1.0.0", "libc", - "rand 0.8.3", - "redox_syscall 0.2.6", + "rand 0.8.4", + "redox_syscall 0.2.9", "remove_dir_all", "winapi 0.3.9", ] @@ -10181,22 +9954,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e" +checksum = "fa6f76457f59514c7eeb4e59d891395fab0b2fd1d40723ae737d64153392e9c6" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0" +checksum = "8a36768c0fbf1bb15eca10defa29526bda730a2376c2ab4393ccfa16fb1a318d" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -10253,7 +10026,7 @@ dependencies = [ "pbkdf2 0.4.0", "rand 0.7.3", "rustc-hash", - "sha2 0.9.3", + "sha2 0.9.5", "thiserror", "unicode-normalization", "zeroize", @@ -10329,6 +10102,16 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "tokio" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fb2ed024293bb19f7a5dc54fe83bf86532a44c12a2bb8ba40d64a4509395ca2" +dependencies = [ + "autocfg", + "pin-project-lite 0.2.6", +] + [[package]] name = "tokio-buf" version = "0.1.1" @@ -10437,6 +10220,18 @@ dependencies = [ "webpki", ] +[[package]] +name = "tokio-rustls" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03d15e5669243a45f630a5167d101b942174ca94b615445b2057eace1c818736" +dependencies = [ + "futures-core", + "rustls 0.19.1", + "tokio 0.2.25", + "webpki", +] + [[package]] name = "tokio-service" version = "0.1.0" @@ -10540,6 +10335,7 @@ checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" dependencies = [ "bytes 0.5.6", "futures-core", + "futures-io", "futures-sink", "log", "pin-project-lite 0.1.12", @@ -10563,9 +10359,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f" +checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d" dependencies = [ "cfg-if 1.0.0", "log", @@ -10580,16 +10376,16 @@ version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c42e6fa53307c8a17e4ccd4dc81cf5ec38db9209f59b222210375b54ee40d1e2" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "tracing-core" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f" +checksum = "a9ff14f98b1a4b289c6248a023c1c2fa1491062964e9fed67ab29c4e4da4a052" dependencies = [ "lazy_static", ] @@ -10600,7 +10396,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "pin-project 1.0.6", + "pin-project 1.0.7", "tracing", ] @@ -10627,9 +10423,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "705096c6f83bf68ea5d357a6aa01829ddbdac531b357b45abeca842938085baa" +checksum = "aa5553bf0883ba7c9cbe493b085c29926bd41b66afc31ff72cf17ff4fb60dcd5" dependencies = [ "ansi_term 0.12.1", "chrono", @@ -10649,9 +10445,9 @@ dependencies = [ [[package]] name = "trie-db" -version = "0.22.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec051edf7f0fc9499a2cb0947652cab2148b9d7f61cee7605e312e9f970dacaf" +checksum = "cd81fe0c8bc2b528a51c9d2c31dae4483367a26a723a3c9a4a8120311d7774e3" dependencies = [ "hash-db", "hashbrown", @@ -10671,9 +10467,9 @@ dependencies = [ [[package]] name = "trust-dns-proto" -version = "0.20.1" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d57e219ba600dd96c2f6d82eb79645068e14edbc5c7e27514af40436b88150c" +checksum = "ad0d7f5db438199a6e2609debe3f69f808d074e0a2888ee0bccb45fe234d03f4" dependencies = [ "async-trait", "cfg-if 1.0.0", @@ -10682,22 +10478,22 @@ dependencies = [ "futures-channel", "futures-io", "futures-util", - "idna 0.2.2", + "idna 0.2.3", "ipnet", "lazy_static", "log", - "rand 0.8.3", + "rand 0.8.4", "smallvec 1.6.1", "thiserror", "tinyvec", - "url 2.2.1", + "url 2.2.2", ] [[package]] name = "trust-dns-resolver" -version = "0.20.1" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0437eea3a6da51acc1e946545ff53d5b8fb2611ff1c3bed58522dde100536ae" +checksum = "f6ad17b608a64bd0735e67bde16b0636f8aa8591f831a25d18443ed00a699770" dependencies = [ "cfg-if 1.0.0", "futures-util", @@ -10721,20 +10517,23 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.3#85fa0ab80c3ceccf4bb98380d7833578aaf8815e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-try-runtime", "log", "parity-scale-codec", "remote-externalities", + "sc-chain-spec", "sc-cli", "sc-client-api", "sc-executor", "sc-service", + "serde", "sp-api", "sp-blockchain", "sp-core", "sp-externalities", + "sp-keystore", "sp-runtime", "sp-state-machine", "structopt", @@ -10795,9 +10594,9 @@ dependencies = [ [[package]] name = "unicode-normalization" -version = "0.1.17" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef" +checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" dependencies = [ "tinyvec", ] @@ -10816,15 +10615,9 @@ checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" [[package]] name = "unicode-xid" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" - -[[package]] -name = "unicode-xid" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" +checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" [[package]] name = "universal-hash" @@ -10885,36 +10678,31 @@ dependencies = [ [[package]] name = "url" -version = "2.2.1" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ccd964113622c8e9322cfac19eb1004a07e636c545f325da085d5cdde6f1f8b" +checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" dependencies = [ "form_urlencoded", - "idna 0.2.2", + "idna 0.2.3", "matches", "percent-encoding 2.1.0", ] [[package]] name = "value-bag" -version = "1.0.0-alpha.6" +version = "1.0.0-alpha.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b676010e055c99033117c2343b33a40a30b91fecd6c49055ac9cd2d6c305ab1" +checksum = "dd320e1520f94261153e96f7534476ad869c14022aee1e59af7c778075d840ae" dependencies = [ "ctor", + "version_check", ] [[package]] name = "vcpkg" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb" - -[[package]] -name = "vec-arena" -version = "1.1.0" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34b2f665b594b07095e3ac3f718e13c2197143416fae4c5706cffb7b1af8d7f1" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "vec_map" @@ -10986,9 +10774,9 @@ checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" [[package]] name = "wasm-bindgen" -version = "0.2.73" +version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83240549659d187488f91f33c0f8547cbfef0b2088bc470c116d1d260ef623d9" +checksum = "d54ee1d4ed486f78874278e63e4069fc1ab9f6a18ca492076ffb90c5eb2997fd" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -10996,24 +10784,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.73" +version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae70622411ca953215ca6d06d3ebeb1e915f0f6613e3b495122878d7ebec7dae" +checksum = "3b33f6a0694ccfea53d94db8b2ed1c3a8a4c86dd936b13b9f0a15ec4a451b900" dependencies = [ "bumpalo", "lazy_static", "log", - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.23" +version = "0.4.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81b8b767af23de6ac18bf2168b690bed2902743ddf0fb39252e36f9e2bfc63ea" +checksum = "5fba7978c679d53ce2d0ac80c8c175840feb849a161664365d1287b41f2e67f1" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -11023,32 +10811,32 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.73" +version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e734d91443f177bfdb41969de821e15c516931c3c3db3d318fa1b68975d0f6f" +checksum = "088169ca61430fe1e58b8096c24975251700e7b1f6fd91cc9d59b04fb9b18bd4" dependencies = [ - "quote 1.0.9", + "quote", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.73" +version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53739ff08c8a68b0fdbcd54c372b8ab800b1449ab3c9d706503bc7dd1621b2c" +checksum = "be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.73" +version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9a543ae66aa233d14bb765ed9af4a33e81b8b58d1584cf1b47ff8cd0b9e4489" +checksum = "d7cff876b8f18eed75a66cf49b65e7f967cb354a7aa16003fb55dbfd25b44b4f" [[package]] name = "wasm-gc-api" @@ -11067,7 +10855,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "js-sys", "parking_lot 0.11.1", "pin-utils", @@ -11078,38 +10866,39 @@ dependencies = [ [[package]] name = "wasmi" -version = "0.6.2" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf617d864d25af3587aa745529f7aaa541066c876d57e050c0d0c85c61c92aff" +checksum = "d2ee05bba3d1d994652079893941a2ef9324d2b58a63c31b40678fb7eddd7a5a" dependencies = [ + "downcast-rs", "libc", "memory_units", "num-rational 0.2.4", "num-traits", - "parity-wasm 0.41.0", + "parity-wasm 0.42.2", "wasmi-validation", ] [[package]] name = "wasmi-validation" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea78c597064ba73596099281e2f4cfc019075122a65cdda3205af94f0b264d93" +checksum = "a2eb8e860796d8be48efef530b60eebf84e74a88bce107374fffb0da97d504b8" dependencies = [ - "parity-wasm 0.41.0", + "parity-wasm 0.42.2", ] [[package]] name = "wasmparser" -version = "0.76.0" +version = "0.78.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "755a9a4afe3f6cccbbe6d7e965eef44cf260b001f93e547eba84255c1d0187d8" +checksum = "52144d4c78e5cf8b055ceab8e5fa22814ce4315d6002ad32cfd914f37c12fd65" [[package]] name = "wasmtime" -version = "0.24.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718cb52a9fdb7ab12471e9b9d051c9adfa6b5c504e0a1fea045e5eabc81eedd9" +checksum = "b310b9d20fcf59385761d1ade7a3ef06aecc380e3d3172035b919eaf7465d9f7" dependencies = [ "anyhow", "backtrace", @@ -11117,9 +10906,11 @@ dependencies = [ "cfg-if 1.0.0", "cpp_demangle", "indexmap", + "lazy_static", "libc", "log", "paste", + "psm", "region", "rustc-demangle", "serde", @@ -11138,9 +10929,9 @@ dependencies = [ [[package]] name = "wasmtime-cache" -version = "0.24.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f984df56c4adeba91540f9052db9f7a8b3b00cfaac1a023bee50a972f588b0c" +checksum = "d14d500d5c3dc5f5c097158feee123d64b3097f0d836a2a27dff9c761c73c843" dependencies = [ "anyhow", "base64 0.13.0", @@ -11151,7 +10942,7 @@ dependencies = [ "libc", "log", "serde", - "sha2 0.9.3", + "sha2 0.9.5", "toml", "winapi 0.3.9", "zstd", @@ -11159,28 +10950,29 @@ dependencies = [ [[package]] name = "wasmtime-cranelift" -version = "0.24.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a05abbf94e03c2c8ee02254b1949320c4d45093de5d9d6ed4d9351d536075c9" +checksum = "c525b39f062eada7db3c1298287b96dcb6e472b9f6b22501300b28d9fa7582f6" dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-frontend", "cranelift-wasm", + "target-lexicon", "wasmparser", "wasmtime-environ", ] [[package]] name = "wasmtime-debug" -version = "0.24.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "382eecd6281c6c1d1f3c904c3c143e671fc1a9573820cbfa777fba45ce2eda9c" +checksum = "c5d2a763e7a6fc734218e0e463196762a4f409c483063d81e0e85f96343b2e0a" dependencies = [ "anyhow", "gimli", "more-asserts", - "object", + "object 0.24.0", "target-lexicon", "thiserror", "wasmparser", @@ -11189,11 +10981,10 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "0.24.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81011b2b833663d7e0ce34639459a0e301e000fc7331e0298b3a27c78d0cec60" +checksum = "f64d0c2d881c31b0d65c1f2695e022d71eb60b9fbdd336aacca28208b58eac90" dependencies = [ - "anyhow", "cfg-if 1.0.0", "cranelift-codegen", "cranelift-entity", @@ -11209,9 +11000,9 @@ dependencies = [ [[package]] name = "wasmtime-fiber" -version = "0.24.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d92da32e31af2e3d828f485f5f24651ed4d3b7f03a46ea6555eae6940d1402cd" +checksum = "a089d44cd7e2465d41a53b840a5b4fca1bf6d1ecfebc970eac9592b34ea5f0b3" dependencies = [ "cc", "libc", @@ -11220,9 +11011,9 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "0.24.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b5f649623859a12d361fe4cc4793de44f7c3ff34c322c5714289787e89650bb" +checksum = "4d4539ea734422b7c868107e2187d7746d8affbcaa71916d72639f53757ad707" dependencies = [ "addr2line", "anyhow", @@ -11235,7 +11026,7 @@ dependencies = [ "gimli", "log", "more-asserts", - "object", + "object 0.24.0", "rayon", "region", "serde", @@ -11253,13 +11044,13 @@ dependencies = [ [[package]] name = "wasmtime-obj" -version = "0.24.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef2e99cd9858f57fd062e9351e07881cedfc8597928385e02a48d9333b9e15a1" +checksum = "8e1a8ff85246d091828e2225af521a6208ed28c997bb5c39eb697366dc2e2f2b" dependencies = [ "anyhow", "more-asserts", - "object", + "object 0.24.0", "target-lexicon", "wasmtime-debug", "wasmtime-environ", @@ -11267,16 +11058,16 @@ dependencies = [ [[package]] name = "wasmtime-profiling" -version = "0.24.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e46c0a590e49278ba7f79ef217af9db4ecc671b50042c185093e22d73524abb2" +checksum = "e24364d522dcd67c897c8fffc42e5bdfc57207bbb6d7eeade0da9d4a7d70105b" dependencies = [ "anyhow", "cfg-if 1.0.0", "gimli", "lazy_static", "libc", - "object", + "object 0.24.0", "scroll", "serde", "target-lexicon", @@ -11286,10 +11077,11 @@ dependencies = [ [[package]] name = "wasmtime-runtime" -version = "0.24.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1438a09185fc7ca067caf1a80d7e5b398eefd4fb7630d94841448ade60feb3d0" +checksum = "c51e57976e8a19a18a18e002c6eb12e5769554204238e47ff155fda1809ef0f7" dependencies = [ + "anyhow", "backtrace", "cc", "cfg-if 1.0.0", @@ -11297,38 +11089,40 @@ dependencies = [ "lazy_static", "libc", "log", - "memoffset 0.6.3", + "mach", + "memoffset 0.6.4", "more-asserts", - "psm", + "rand 0.8.4", "region", "thiserror", "wasmtime-environ", + "wasmtime-fiber", "winapi 0.3.9", ] [[package]] name = "wast" -version = "35.0.2" +version = "36.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ef140f1b49946586078353a453a1d28ba90adfc54dde75710bc1931de204d68" +checksum = "8b5d7ba374a364571da1cb0a379a3dc302582a2d9937a183bfe35b68ad5bb9c4" dependencies = [ "leb128", ] [[package]] name = "wat" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ec280a739b69173e0ffd12c1658507996836ba4e992ed9bc1e5385a0bd72a02" +checksum = "16383df7f0e3901484c2dda6294ed6895caa3627ce4f6584141dcf30a33a23e6" dependencies = [ "wast", ] [[package]] name = "web-sys" -version = "0.3.50" +version = "0.3.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a905d57e488fec8861446d3393670fb50d27a262344013181c2cdf9fff5481be" +checksum = "e828417b379f3df7111d3a2a9e5753706cae29c41f7c4029ee9fd77f3e09e582" dependencies = [ "js-sys", "wasm-bindgen", @@ -11354,100 +11148,14 @@ dependencies = [ ] [[package]] -name = "wepoll-sys" -version = "3.0.1" +name = "wepoll-ffi" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcb14dea929042224824779fbc82d9fab8d2e6d3cbc0ac404de8edf489e77ff" +checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" dependencies = [ "cc", ] -[[package]] -name = "westend-runtime" -version = "0.9.3" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" -dependencies = [ - "beefy-primitives", - "bitvec", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "log", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-balances", - "pallet-collective", - "pallet-democracy", - "pallet-election-provider-multi-phase", - "pallet-elections-phragmen", - "pallet-grandpa", - "pallet-identity", - "pallet-im-online", - "pallet-indices", - "pallet-membership", - "pallet-mmr-primitives", - "pallet-multisig", - "pallet-nicks", - "pallet-offences", - "pallet-proxy", - "pallet-randomness-collective-flip", - "pallet-recovery", - "pallet-scheduler", - "pallet-session", - "pallet-society", - "pallet-staking", - "pallet-staking-reward-curve", - "pallet-sudo", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-treasury", - "pallet-utility", - "pallet-vesting", - "pallet-xcm", - "parity-scale-codec", - "polkadot-parachain", - "polkadot-primitives", - "polkadot-runtime-common", - "polkadot-runtime-parachains", - "rustc-hex", - "serde", - "serde_derive", - "smallvec 1.6.1", - "sp-api", - "sp-authority-discovery", - "sp-block-builder", - "sp-consensus-babe", - "sp-core", - "sp-inherents", - "sp-io", - "sp-npos-elections", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "sp-transaction-pool", - "sp-version", - "static_assertions", - "substrate-wasm-builder 3.0.0", - "xcm", - "xcm-builder", - "xcm-executor", -] - -[[package]] -name = "which" -version = "3.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724" -dependencies = [ - "libc", -] - [[package]] name = "which" version = "4.1.0" @@ -11545,8 +11253,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.3" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +version = "0.9.5" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -11555,8 +11263,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.3" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +version = "0.9.6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "frame-support", "frame-system", @@ -11574,8 +11282,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.3" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.3#aa386760948574af4078c59decf558d16efe15e2" +version = "0.9.6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -11595,32 +11303,32 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7d9028f208dd5e63c614be69f115c1b53cacc1111437d4c765185856666c107" dependencies = [ - "futures 0.3.14", + "futures 0.3.15", "log", "nohash-hasher", "parking_lot 0.11.1", - "rand 0.8.3", + "rand 0.8.4", "static_assertions", ] [[package]] name = "zeroize" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81a974bcdd357f0dca4d41677db03436324d45a4c9ed2d0b873a5a360ce41c36" +checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3f369ddb18862aba61aa49bf31e74d29f0f162dec753063200e1dc084345d16" +checksum = "a2c1e130bebaeab2f23886bf9acbaca14b092408c452543c857f66399cd6dab1" dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.69", + "proc-macro2", + "quote", + "syn", "synstructure", ] diff --git a/README.md b/README.md index 6065e5af..c196f463 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,7 @@ the most typical for testing is a local development Rococo network, then moving #### Relay Chain Network (Validators) Clone and build Polkadot (**at the correct commit for your relay chain**): + ```bash # Get a fresh clone, or `cd` to where you have polkadot already: git clone -b --depth 1 https://github.com:paritytech/polkadot.git @@ -65,6 +66,7 @@ You should have a minimum of 2 running full _validator_ nodes on your relay chai collator you intend to connect! From the Polkadot working directory: + ```bash # Start Relay `Alice` node ./target/release/polkadot \ @@ -86,13 +88,14 @@ Open a new terminal, same directory: --bob \ --port 50556 ``` + Add more nodes as needed, with non-conflicting ports, DB directories, and validator keys (`--charlie`, `--dave`, etc.). ##### Reserve a ParaID To connect to a relay chain, you must first _reserve a `ParaId` for your parathread that will -become a parachain. To do this, you _must_ have currency available on an account on that network +become a parachain. To do this, you \_must_ have currency available on an account on that network in sufficient amount to reserve an ID. This is 20 "units" on the testnets, check for the amount on your relay chain. The relay chain will increment starting at `2000` for all chains connecting that are not "systems parachains" that use a different method to obtain a `ParaId`. @@ -182,6 +185,7 @@ From the parachain template working directory: ``` _Output:_ + ```bash 2021-05-30 16:57:39 Parachain Collator Template 2021-05-30 16:57:39 ✌️ version 3.0.0-acce183-x86_64-linux-gnu @@ -237,8 +241,7 @@ Ensure you set the `ParaId to 2000` and the `parachain: Bool to Yes`. The files you will need are in the `./resources` folder, you just created. -> Note : When registering to the public Rococo testnet, ensure you set a **unique** -> `para_id` > 1000, below 1000 is reserved _exclusively_ for system parachains. +> Note : When registering to the public Rococo testnet, ensure you set a **unique** > `para_id` > 1000, below 1000 is reserved _exclusively_ for system parachains. #### Restart the Parachain (Collator) and Wait... @@ -305,7 +308,7 @@ reporting _parachian_ blocks: > > **Yes!** > -> As of 30/05/2021 for Polkadot runtimes v0.9.3 +> As of 22/06/2021 for Polkadot runtimes v0.9.6 --- @@ -321,10 +324,10 @@ Find `Chain spec` files to connect to live networks [here](https://github.com/pa You want to be sure to use the correct git release tag in these files, as they change from time to time and _must_ match the live network! -- **Rococo** is generally more unstable getting tests incorporated first, and reset often! - - Join in the [Rococo Faucet](https://matrix.to/#/#rococo-faucet:matrix.org) to get some funds. -- **Westend** is more stable, and is not reset except when absolutely needed. - - Join in the [Westend Faucet](https://matrix.to/#/#westend_faucet:matrix.org) to get some funds. +- **Rococo** is generally more unstable getting tests incorporated first, and reset often! + - Join in the [Rococo Faucet](https://matrix.to/#/#rococo-faucet:matrix.org) to get some funds. +- **Westend** is more stable, and is not reset except when absolutely needed. + - Join in the [Westend Faucet](https://matrix.to/#/#westend_faucet:matrix.org) to get some funds. These networks are under _constant development_ - so expect to need to follow progress and update your parachains in lock step with the testnet changes if you wish to connect to the network. @@ -334,12 +337,12 @@ questions and connect with the parachain building teams. ## Learn More -- More detailed instructions to use Cumulus parachains are found in the -[Cumulus Worship](https://substrate.dev/cumulus-workshop/#/en/3-parachains/2-register) -- Refer to the upstream -[Substrate Developer Hub Node Template](https://github.com/substrate-developer-hub/substrate-node-template) -to learn more about the structure of this project, the capabilities it encapsulates and the way in -which those capabilities are implemented. -- You can learn more about -[The Path of Parachain Block](https://polkadot.network/the-path-of-a-parachain-block/) on the -official Polkadot Blog. +- More detailed instructions to use Cumulus parachains are found in the + [Cumulus Worship](https://substrate.dev/cumulus-workshop/#/en/3-parachains/2-register) +- Refer to the upstream + [Substrate Developer Hub Node Template](https://github.com/substrate-developer-hub/substrate-node-template) + to learn more about the structure of this project, the capabilities it encapsulates and the way in + which those capabilities are implemented. +- You can learn more about + [The Path of Parachain Block](https://polkadot.network/the-path-of-a-parachain-block/) on the + official Polkadot Blog. diff --git a/node/Cargo.toml b/node/Cargo.toml index e76a3e28..0ed87d85 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -13,7 +13,7 @@ build = 'build.rs' targets = ['x86_64-unknown-linux-gnu'] [build-dependencies] -substrate-build-script-utils = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +substrate-build-script-utils = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } [[bin]] name = 'parachain-collator' @@ -23,12 +23,12 @@ default = [] runtime-benchmarks = ['parachain-runtime/runtime-benchmarks'] [dependencies] -derive_more = '0.15.0' +derive_more = '0.99.2' log = '0.4.14' codec = { package = 'parity-scale-codec', version = '2.0.0' } structopt = '0.3.8' serde = { version = '1.0.119', features = ['derive'] } -hex-literal = '0.2.1' +hex-literal = '0.3.1' # RPC related Dependencies jsonrpc-core = '15.1.0' @@ -37,58 +37,67 @@ jsonrpc-core = '15.1.0' parachain-runtime = { path = '../runtime' } # Substrate Dependencies -frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -frame-benchmarking-cli = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +frame-benchmarking-cli = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } -pallet-transaction-payment-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +pallet-transaction-payment-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } -substrate-frame-rpc-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.3" } +substrate-frame-rpc-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.6" } ## Substrate Client Dependencies -sc-basic-authorship = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sc-chain-spec = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sc-cli = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sc-client-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sc-consensus = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sc-executor = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sc-network = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sc-keystore = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sc-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sc-rpc-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sc-service = { git = 'https://github.com/paritytech/substrate', branch = "polkadot-v0.9.3", version = '0.9.0', features = ['wasmtime'] } -sc-telemetry = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sc-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sc-tracing = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sc-basic-authorship = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sc-chain-spec = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sc-cli = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sc-client-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sc-consensus = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sc-executor = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sc-network = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sc-keystore = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sc-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sc-rpc-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sc-service = { git = 'https://github.com/paritytech/substrate', branch = "polkadot-v0.9.6", version = '0.9.0', features = ['wasmtime'] } +sc-telemetry = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sc-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sc-tracing = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } ## Substrate Primitive Dependencies -sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sp-blockchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sp-consensus = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sp-keystore = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sp-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } -sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' } +sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sp-blockchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sp-consensus = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sp-keystore = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sp-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } +sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6' } # Cumulus dependencies -cumulus-client-consensus-aura = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3' } -cumulus-client-consensus-common = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3' } -cumulus-client-collator = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3' } -cumulus-client-cli = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3' } -cumulus-client-network = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3' } -cumulus-client-service = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3' } -cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3' } -cumulus-primitives-parachain-inherent = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3' } +cumulus-client-consensus-aura = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6' } +cumulus-client-consensus-common = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6' } +cumulus-client-collator = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6' } +cumulus-client-cli = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6' } +cumulus-client-network = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6' } +cumulus-client-service = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6' } +cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6' } +cumulus-primitives-parachain-inherent = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6' } # Polkadot dependencies -polkadot-primitives = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.3'} -polkadot-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.3'} -polkadot-cli = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.3'} -polkadot-test-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.3'} -polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.3'} +polkadot-primitives = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6'} +polkadot-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6'} +polkadot-test-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6'} +polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6'} + +# FIXME: You MUST set the relay chain networks you wish to target in the `features` here +# Options are found here: https://github.com/paritytech/polkadot/blob/master/cli/Cargo.toml#L64-L71 +# +# Alternatively to setting here, you can use cargo CLI at build time: +# https://doc.rust-lang.org/cargo/reference/features.html#command-line-feature-options +# +# ** Don't enable relay chains you don't need, as this is a **very** heavy build for no reason** +# More info: https://github.com/paritytech/polkadot/pull/3189 +polkadot-cli = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6', features = [ "rococo-native" ] } \ No newline at end of file diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index 57f5d934..df7ef98b 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -44,6 +44,11 @@ where } pub fn development_config(id: ParaId) -> ChainSpec { + // Give your base currency a unit name and decimal places + let mut properties = sc_chain_spec::Properties::new(); + properties.insert("tokenSymbol".into(), "UNIT".into()); + properties.insert("tokenDecimals".into(), 12.into()); + ChainSpec::from_genesis( // Name "Development", @@ -78,6 +83,11 @@ pub fn development_config(id: ParaId) -> ChainSpec { } pub fn local_testnet_config(id: ParaId) -> ChainSpec { + // Give your base currency a unit name and decimal places + let mut properties = sc_chain_spec::Properties::new(); + properties.insert("tokenSymbol".into(), "UNIT".into()); + properties.insert("tokenDecimals".into(), 12.into()); + ChainSpec::from_genesis( // Name "Local Testnet", @@ -126,24 +136,25 @@ fn testnet_genesis( id: ParaId, ) -> parachain_runtime::GenesisConfig { parachain_runtime::GenesisConfig { - frame_system: parachain_runtime::SystemConfig { + system: parachain_runtime::SystemConfig { code: parachain_runtime::WASM_BINARY .expect("WASM binary was not build, please build it!") .to_vec(), changes_trie_config: Default::default(), }, - pallet_balances: parachain_runtime::BalancesConfig { + balances: parachain_runtime::BalancesConfig { balances: endowed_accounts .iter() .cloned() .map(|k| (k, 1 << 60)) .collect(), }, - pallet_sudo: parachain_runtime::SudoConfig { key: root_key }, + sudo: parachain_runtime::SudoConfig { key: root_key }, parachain_info: parachain_runtime::ParachainInfoConfig { parachain_id: id }, - pallet_aura: parachain_runtime::AuraConfig { + aura: parachain_runtime::AuraConfig { authorities: initial_authorities, }, - cumulus_pallet_aura_ext: Default::default(), + aura_ext: Default::default(), + // parachain_system: Default::default(), } } diff --git a/node/src/command.rs b/node/src/command.rs index 30c4dc0e..6aeef36e 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -251,9 +251,6 @@ pub fn run() -> Result<()> { let runner = cli.create_runner(&cli.run.normalize())?; runner.run_node_until_exit(|config| async move { - // TODO - let key = sp_core::Pair::generate().0; - let para_id = chain_spec::Extensions::try_get(&*config.chain_spec).map(|e| e.para_id); @@ -293,7 +290,7 @@ pub fn run() -> Result<()> { } ); - crate::service::start_node(config, key, polkadot_config, id) + crate::service::start_node(config, polkadot_config, id) .await .map(|r| r.0) .map_err(Into::into) diff --git a/node/src/service.rs b/node/src/service.rs index 6366a9c1..ef93cd3e 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -15,9 +15,6 @@ use cumulus_client_service::{ }; use cumulus_primitives_core::ParaId; -// Polkadot Imports -use polkadot_primitives::v1::CollatorPair; - // Substrate Imports use sc_client_api::ExecutorProvider; pub use sc_executor::NativeExecutor; @@ -117,7 +114,7 @@ where config.transaction_pool.clone(), config.role.is_authority().into(), config.prometheus_registry(), - task_manager.spawn_handle(), + task_manager.spawn_essential_handle(), client.clone(), ); @@ -148,7 +145,6 @@ where #[sc_tracing::logging::prefix_logs_with("Parachain")] async fn start_node_impl( parachain_config: Configuration, - collator_key: CollatorPair, polkadot_config: Configuration, id: ParaId, rpc_ext_builder: RB, @@ -208,7 +204,6 @@ where let relay_chain_full_node = cumulus_client_service::build_polkadot_full_node( polkadot_config, - collator_key.clone(), telemetry_worker_handle, ) .map_err(|e| match e { @@ -231,7 +226,7 @@ where let transaction_pool = params.transaction_pool.clone(); let mut task_manager = params.task_manager; let import_queue = cumulus_client_service::SharedImportQueue::new(params.import_queue); - let (network, network_status_sinks, system_rpc_tx, start_network) = + let (network, system_rpc_tx, start_network) = sc_service::build_network(sc_service::BuildNetworkParams { config: ¶chain_config, client: client.clone(), @@ -256,7 +251,6 @@ where keystore: params.keystore_container.sync_keystore(), backend: backend.clone(), network: network.clone(), - network_status_sinks, system_rpc_tx, telemetry: telemetry.as_mut(), })?; @@ -287,7 +281,6 @@ where announce_block, client: client.clone(), task_manager: &mut task_manager, - collator_key, relay_chain_full_node, spawner, parachain_consensus, @@ -361,13 +354,11 @@ pub fn parachain_build_import_queue( /// Start a normal parachain node. pub async fn start_node( parachain_config: Configuration, - collator_key: CollatorPair, polkadot_config: Configuration, id: ParaId, ) -> sc_service::error::Result<(TaskManager, Arc>)> { start_node_impl::( parachain_config, - collator_key, polkadot_config, id, |_| Default::default(), diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index ddad66b5..626b3403 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -14,15 +14,15 @@ targets = ['x86_64-unknown-linux-gnu'] [dependencies] codec = { package = 'parity-scale-codec', version = '2.0.0', features = ['derive'], default-features = false } -frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false, optional = true } -frame-support = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } -frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false, optional = true } +frame-support = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } [dev-dependencies] serde = { version = "1.0.101" } -sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } -sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3' , default-features = false} -sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } [features] default = ['std'] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 0c041011..b1f26f42 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -11,7 +11,7 @@ edition = '2018' targets = ['x86_64-unknown-linux-gnu'] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.3" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.6" } [dependencies] codec = { package = 'parity-scale-codec', version = '2.0.0', default-features = false, features = ['derive']} @@ -23,52 +23,53 @@ template = { package = 'pallet-template', path = '../pallets/template', default- # Substrate Dependencies ## Substrate Primitive Dependencies -sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } -sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } -sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } -sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } -sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } -sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } -sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } -sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } -sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } -sp-std = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } -sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } -sp-version = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +sp-std = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +sp-version = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } ## Substrate FRAME Dependencies -frame-executive = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } -frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false, optional = true } -frame-support = { git = 'https://github.com/paritytech/substrate', default-features = false, branch = 'polkadot-v0.9.3' } -frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } -frame-system-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false, optional = true } -frame-system-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +frame-executive = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false, optional = true } +frame-support = { git = 'https://github.com/paritytech/substrate', default-features = false, branch = 'polkadot-v0.9.6' } +frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +frame-system-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false, optional = true } +frame-system-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } ## Substrate Pallet Dependencies -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.3" } -pallet-balances = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } -pallet-randomness-collective-flip = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } -pallet-sudo = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } -pallet-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } -pallet-transaction-payment = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.3', default-features = false } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.6" } +pallet-balances = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +pallet-randomness-collective-flip = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +pallet-sudo = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +pallet-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +pallet-transaction-payment = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } # Cumulus Dependencies -cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3', default-features = false } -cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3', default-features = false } -cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3', default-features = false } -cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3', default-features = false } -cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3', default-features = false } -cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3', default-features = false } -cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3', default-features = false } -parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.3', default-features = false } +cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6', default-features = false } +cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6', default-features = false } +cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6', default-features = false } +cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6', default-features = false } +cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6', default-features = false } +cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6', default-features = false } +cumulus-primitives-timestamp = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6', default-features = false } +cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6', default-features = false } +parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6', default-features = false } # Polkadot Dependencies -polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.3', default-features = false } -xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.3', default-features = false } -xcm-builder = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.3', default-features = false } -xcm-executor = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.3', default-features = false } -pallet-xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.3', default-features = false } +polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6', default-features = false } +xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6', default-features = false } +xcm-builder = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6', default-features = false } +xcm-executor = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6', default-features = false } +pallet-xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6', default-features = false } [features] default = ['std'] @@ -111,6 +112,7 @@ std = [ "cumulus-pallet-xcmp-queue/std", "cumulus-pallet-xcm/std", "cumulus-primitives-core/std", + "cumulus-primitives-timestamp/std", "cumulus-primitives-utility/std", "xcm/std", "xcm-builder/std", diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index d4b4875f..418fbfb7 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -41,8 +41,7 @@ pub use sp_runtime::{MultiAddress, Perbill, Permill}; // Polkadot & XCM imports use pallet_xcm::XcmPassthrough; use polkadot_parachain::primitives::Sibling; -use xcm::v0::Xcm; -use xcm::v0::{BodyId, Junction::*, MultiAsset, MultiLocation, MultiLocation::*, NetworkId}; +use xcm::v0::{BodyId, Junction::*, MultiAsset, MultiLocation, MultiLocation::*, NetworkId, Xcm}; use xcm_builder::{ AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter, EnsureXcmOrigin, FixedWeightBounds, IsConcrete, LocationInverter, NativeAsset, @@ -253,7 +252,9 @@ parameter_types! { pub const ExistentialDeposit: u128 = 1 * MILLIUNIT; pub const TransferFee: u128 = 1 * MILLIUNIT; pub const CreationFee: u128 = 1 * MILLIUNIT; + pub const TransactionByteFee: u128 = 1 * MICROUNIT; pub const MaxLocks: u32 = 50; + pub const MaxReserves: u32 = 50; } impl pallet_balances::Config for Runtime { @@ -266,10 +267,8 @@ impl pallet_balances::Config for Runtime { type AccountStore = System; type WeightInfo = pallet_balances::weights::SubstrateWeight; type MaxLocks = MaxLocks; -} - -parameter_types! { - pub const TransactionByteFee: u128 = 1 * MICROUNIT; + type MaxReserves = MaxReserves; + type ReserveIdentifier = [u8; 8]; } impl pallet_transaction_payment::Config for Runtime { @@ -280,8 +279,8 @@ impl pallet_transaction_payment::Config for Runtime { } impl pallet_sudo::Config for Runtime { - type Event = Event; type Call = Call; + type Event = Event; } parameter_types! { @@ -304,6 +303,8 @@ impl parachain_info::Config for Runtime {} impl cumulus_pallet_aura_ext::Config for Runtime {} +impl pallet_randomness_collective_flip::Config for Runtime {} + parameter_types! { pub const RelayLocation: MultiLocation = X1(Parent); pub const RelayNetwork: NetworkId = NetworkId::Polkadot; @@ -389,7 +390,7 @@ impl Config for XcmConfig { type AssetTransactor = LocalAssetTransactor; type OriginConverter = XcmOriginToTransactDispatchOrigin; type IsReserve = NativeAsset; - type IsTeleporter = NativeAsset; // <- should be enough to allow teleportation of ROC + type IsTeleporter = NativeAsset; // <- should be enough to allow teleportation of UNIT type LocationInverter = LocationInverter; type Barrier = Barrier; type Weigher = FixedWeightBounds; @@ -398,7 +399,7 @@ impl Config for XcmConfig { } /// No local origins on this chain are allowed to dispatch XCM sends/executions. -pub type LocalOriginToLocation = (SignedToAccountId32,); +pub type LocalOriginToLocation = SignedToAccountId32; /// The means for routing XCM messages which are not for local execution into the right message /// queues. @@ -522,6 +523,7 @@ impl_runtime_apis! { data.check_extrinsics(&block) } + // FIXME: is this needed? Unimplemented in cumulus `rococo-parachain` runtime // fn random_seed() -> ::Hash { // RandomnessCollectiveFlip::random_seed().0 // } @@ -627,7 +629,31 @@ impl_runtime_apis! { } } +struct CheckInherents; + +impl cumulus_pallet_parachain_system::CheckInherents for CheckInherents { + fn check_inherents( + block: &Block, + relay_state_proof: &cumulus_pallet_parachain_system::RelayChainStateProof, + ) -> sp_inherents::CheckInherentsResult { + let relay_chain_slot = relay_state_proof + .read_slot() + .expect("Could not read the relay chain slot from the proof"); + + let inherent_data = + cumulus_primitives_timestamp::InherentDataProvider::from_relay_chain_slot_and_duration( + relay_chain_slot, + sp_std::time::Duration::from_secs(6), + ) + .create_inherent_data() + .expect("Could not create the timestamp inherent data"); + + inherent_data.check_extrinsics(&block) + } +} + cumulus_pallet_parachain_system::register_validate_block!( - Runtime, - cumulus_pallet_aura_ext::BlockExecutor::, + Runtime = Runtime, + BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, + CheckInherents = CheckInherents, ); From 4c47b6e2b88bf23807be3325e0d798a8540a2e84 Mon Sep 17 00:00:00 2001 From: Alejandro Martinez Andres Date: Thu, 1 Jul 2021 09:08:49 +0200 Subject: [PATCH 31/91] Expect para_id on load_spec for parachain (#48) --- node/src/command.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/src/command.rs b/node/src/command.rs index 6aeef36e..0859d164 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -65,7 +65,7 @@ impl SubstrateCli for Cli { } fn load_spec(&self, id: &str) -> std::result::Result, String> { - load_spec(id, self.run.parachain_id.unwrap_or(200).into()) + load_spec(id, self.run.parachain_id.expect("Missing para_id").into()) } fn native_runtime_version(_: &Box) -> &'static RuntimeVersion { From f3f28296308f015cf9bdd0d285bbe1157a8f0013 Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Fri, 2 Jul 2021 10:11:26 -0600 Subject: [PATCH 32/91] remove polkadot-cli features (#52) these are not needed for collators. --- node/Cargo.toml | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/node/Cargo.toml b/node/Cargo.toml index 0ed87d85..e7582c2f 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -87,17 +87,8 @@ cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branc cumulus-primitives-parachain-inherent = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6' } # Polkadot dependencies +polkadot-cli = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6'} +polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6'} polkadot-primitives = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6'} polkadot-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6'} polkadot-test-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6'} -polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6'} - -# FIXME: You MUST set the relay chain networks you wish to target in the `features` here -# Options are found here: https://github.com/paritytech/polkadot/blob/master/cli/Cargo.toml#L64-L71 -# -# Alternatively to setting here, you can use cargo CLI at build time: -# https://doc.rust-lang.org/cargo/reference/features.html#command-line-feature-options -# -# ** Don't enable relay chains you don't need, as this is a **very** heavy build for no reason** -# More info: https://github.com/paritytech/polkadot/pull/3189 -polkadot-cli = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6', features = [ "rococo-native" ] } \ No newline at end of file From cdc5e5e0bee250f7c14ca8249f0f0e0e63d068b5 Mon Sep 17 00:00:00 2001 From: Jimmy Chu Date: Sat, 3 Jul 2021 00:14:41 +0800 Subject: [PATCH 33/91] Updated to polkadot v0.9.7 (#50) * updated to v0.9.7 * Further enhancement - Further enhancement on the README. - Added a diagram on doing the sudo extrinsic. - In command.rs removing code that defaulting ParaId to 200 or 2000. Co-authored-by: Dan Shields <35669742+NukeManDan@users.noreply.github.com> --- Cargo.lock | 673 +++++++++++++++++++++++------------- README.md | 218 ++++++------ docs/assets/ss01.png | Bin 0 -> 91040 bytes node/Cargo.toml | 92 ++--- node/src/command.rs | 4 +- pallets/template/Cargo.toml | 12 +- runtime/Cargo.toml | 80 ++--- runtime/src/lib.rs | 5 - 8 files changed, 645 insertions(+), 439 deletions(-) create mode 100644 docs/assets/ss01.png diff --git a/Cargo.lock b/Cargo.lock index 4834ace0..783570e9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,5 +1,7 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + [[package]] name = "Inflector" version = "0.11.4" @@ -456,7 +458,7 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.6#caf37ef1b9dc17f2289a931b7724339acce5f96d" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.7#299dd5fd3fabd99c3c919f1312001283ddc5b365" dependencies = [ "beefy-primitives", "futures 0.3.15", @@ -484,7 +486,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.6#caf37ef1b9dc17f2289a931b7724339acce5f96d" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.7#299dd5fd3fabd99c3c919f1312001283ddc5b365" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -505,7 +507,7 @@ dependencies = [ [[package]] name = "beefy-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.6#caf37ef1b9dc17f2289a931b7724339acce5f96d" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.7#299dd5fd3fabd99c3c919f1312001283ddc5b365" dependencies = [ "parity-scale-codec", "sp-api", @@ -679,6 +681,114 @@ dependencies = [ "once_cell", ] +[[package]] +name = "bp-header-chain" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +dependencies = [ + "finality-grandpa", + "frame-support", + "parity-scale-codec", + "serde", + "sp-core", + "sp-finality-grandpa", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-messages" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +dependencies = [ + "bp-runtime", + "frame-support", + "frame-system", + "parity-scale-codec", + "sp-std", +] + +[[package]] +name = "bp-polkadot-core" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +dependencies = [ + "bp-messages", + "bp-runtime", + "frame-support", + "frame-system", + "parity-scale-codec", + "sp-api", + "sp-core", + "sp-runtime", + "sp-std", + "sp-version", +] + +[[package]] +name = "bp-rococo" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +dependencies = [ + "bp-header-chain", + "bp-messages", + "bp-polkadot-core", + "bp-runtime", + "parity-scale-codec", + "sp-api", + "sp-runtime", + "sp-std", + "sp-version", +] + +[[package]] +name = "bp-runtime" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +dependencies = [ + "frame-support", + "hash-db", + "num-traits", + "parity-scale-codec", + "sp-core", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", +] + +[[package]] +name = "bp-test-utils" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +dependencies = [ + "bp-header-chain", + "ed25519-dalek", + "finality-grandpa", + "parity-scale-codec", + "sp-application-crypto", + "sp-finality-grandpa", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-wococo" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +dependencies = [ + "bp-header-chain", + "bp-messages", + "bp-polkadot-core", + "bp-runtime", + "parity-scale-codec", + "sp-api", + "sp-runtime", + "sp-std", + "sp-version", +] + [[package]] name = "bs58" version = "0.4.0" @@ -1269,7 +1379,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" dependencies = [ "sc-cli", "sc-service", @@ -1279,7 +1389,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1303,7 +1413,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1333,7 +1443,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" dependencies = [ "async-trait", "dyn-clone", @@ -1357,7 +1467,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" dependencies = [ "derive_more", "futures 0.3.15", @@ -1381,7 +1491,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" dependencies = [ "cumulus-primitives-core", "futures 0.3.15", @@ -1404,7 +1514,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-common", @@ -1432,7 +1542,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" dependencies = [ "frame-executive", "frame-support", @@ -1449,7 +1559,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1468,7 +1578,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1496,7 +1606,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -1507,7 +1617,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1523,7 +1633,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1541,7 +1651,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1559,7 +1669,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1579,7 +1689,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" dependencies = [ "cumulus-primitives-core", "sp-inherents", @@ -1590,7 +1700,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -2075,7 +2185,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", ] @@ -2093,7 +2203,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "3.1.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -2112,7 +2222,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "Inflector", "chrono", @@ -2135,7 +2245,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -2148,7 +2258,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -2163,7 +2273,7 @@ dependencies = [ [[package]] name = "frame-metadata" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "serde", @@ -2174,7 +2284,7 @@ dependencies = [ [[package]] name = "frame-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "bitflags", "frame-metadata", @@ -2201,7 +2311,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2213,7 +2323,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.0.0", @@ -2225,7 +2335,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "proc-macro2", "quote", @@ -2235,7 +2345,7 @@ dependencies = [ [[package]] name = "frame-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -2252,7 +2362,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-benchmarking", "frame-support", @@ -2266,7 +2376,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "sp-api", @@ -2275,7 +2385,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "parity-scale-codec", @@ -4026,7 +4136,7 @@ dependencies = [ [[package]] name = "max-encoded-len" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "impl-trait-for-tuples", "max-encoded-len-derive", @@ -4037,7 +4147,7 @@ dependencies = [ [[package]] name = "max-encoded-len-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -4125,7 +4235,7 @@ dependencies = [ [[package]] name = "metered-channel" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "derive_more", "futures 0.3.15", @@ -4562,7 +4672,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4578,7 +4688,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4593,7 +4703,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4607,7 +4717,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-benchmarking", "frame-support", @@ -4630,7 +4740,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-benchmarking", "frame-support", @@ -4645,7 +4755,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.6#caf37ef1b9dc17f2289a931b7724339acce5f96d" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.7#299dd5fd3fabd99c3c919f1312001283ddc5b365" dependencies = [ "beefy-primitives", "frame-support", @@ -4660,7 +4770,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4670,10 +4780,31 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-bridge-grandpa" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +dependencies = [ + "bp-header-chain", + "bp-runtime", + "bp-test-utils", + "finality-grandpa", + "frame-support", + "frame-system", + "log", + "num-traits", + "parity-scale-codec", + "serde", + "sp-finality-grandpa", + "sp-runtime", + "sp-std", + "sp-trie", +] + [[package]] name = "pallet-collective" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4688,7 +4819,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-benchmarking", "frame-support", @@ -4703,7 +4834,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4722,7 +4853,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4738,7 +4869,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "3.1.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-benchmarking", "frame-support", @@ -4760,7 +4891,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4775,7 +4906,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4793,7 +4924,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4808,7 +4939,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-benchmarking", "frame-support", @@ -4823,7 +4954,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -4840,7 +4971,7 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4856,7 +4987,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4874,7 +5005,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4888,7 +5019,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4901,7 +5032,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4917,7 +5048,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4932,7 +5063,7 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4945,7 +5076,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-benchmarking", "frame-support", @@ -4960,7 +5091,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -4980,7 +5111,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-election-provider-support", "frame-support", @@ -5002,7 +5133,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -5013,7 +5144,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -5040,7 +5171,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-benchmarking", "frame-support", @@ -5058,7 +5189,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -5072,7 +5203,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -5088,7 +5219,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5105,7 +5236,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5116,7 +5247,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -5131,7 +5262,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-support", "frame-system", @@ -5145,7 +5276,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "enumflags2", "frame-support", @@ -5158,11 +5289,12 @@ dependencies = [ [[package]] name = "pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", + "serde", "sp-runtime", "sp-std", "xcm", @@ -5232,7 +5364,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.6#e11ed73ba342fc1aaafaf86979c987ea8d035544" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -5694,7 +5826,7 @@ checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325" [[package]] name = "polkadot-approval-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "futures 0.3.15", "polkadot-node-network-protocol", @@ -5708,7 +5840,7 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "futures 0.3.15", "polkadot-node-network-protocol", @@ -5721,7 +5853,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "futures 0.3.15", "lru", @@ -5744,7 +5876,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "futures 0.3.15", "lru", @@ -5762,8 +5894,8 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.6" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +version = "0.9.7" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "frame-benchmarking-cli", "futures 0.3.15", @@ -5782,8 +5914,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.6" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +version = "0.9.7" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -5792,6 +5924,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "polkadot-primitives", "polkadot-runtime", + "rococo-runtime", "sc-client-api", "sc-executor", "sc-service", @@ -5812,7 +5945,7 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "always-assert", "futures 0.3.15", @@ -5831,8 +5964,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.6" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +version = "0.9.7" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -5843,8 +5976,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.6" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +version = "0.9.7" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -5858,7 +5991,7 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "futures 0.3.15", "polkadot-node-network-protocol", @@ -5873,7 +6006,7 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "async-trait", "futures 0.3.15", @@ -5893,7 +6026,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "futures 0.3.15", "parity-scale-codec", @@ -5911,7 +6044,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "bitvec", "derive_more", @@ -5940,7 +6073,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "bitvec", "futures 0.3.15", @@ -5960,7 +6093,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "bitvec", "futures 0.3.15", @@ -5978,7 +6111,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "futures 0.3.15", "polkadot-node-subsystem", @@ -5993,7 +6126,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "async-trait", "futures 0.3.15", @@ -6011,7 +6144,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "futures 0.3.15", "polkadot-node-subsystem", @@ -6024,7 +6157,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "async-trait", "futures 0.3.15", @@ -6042,7 +6175,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "bitvec", "futures 0.3.15", @@ -6057,7 +6190,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "always-assert", "assert_matches", @@ -6085,7 +6218,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "futures 0.3.15", "memory-lru", @@ -6103,7 +6236,7 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "async-std", "lazy_static", @@ -6121,7 +6254,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "futures 0.3.15", "parity-scale-codec", @@ -6136,7 +6269,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "futures 0.3.15", "parity-scale-codec", @@ -6159,7 +6292,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "async-std", "async-trait", @@ -6189,7 +6322,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "async-trait", "futures 0.3.15", @@ -6217,7 +6350,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "async-trait", "futures 0.3.15", @@ -6235,8 +6368,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.6" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +version = "0.9.7" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "derive_more", "parity-scale-codec", @@ -6250,8 +6383,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.6" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +version = "0.9.7" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "bitvec", "frame-system", @@ -6281,7 +6414,7 @@ dependencies = [ [[package]] name = "polkadot-procmacro-overseer-subsystems-gen" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "assert_matches", "proc-macro2", @@ -6292,7 +6425,7 @@ dependencies = [ [[package]] name = "polkadot-procmacro-subsystem-dispatch-gen" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "assert_matches", "proc-macro2", @@ -6302,8 +6435,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.6" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +version = "0.9.7" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -6335,8 +6468,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.6" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +version = "0.9.7" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "beefy-primitives", "bitvec", @@ -6407,8 +6540,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.5" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +version = "0.9.7" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "beefy-primitives", "bitvec", @@ -6449,8 +6582,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.5" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +version = "0.9.7" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "bitvec", "derive_more", @@ -6486,8 +6619,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.6" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +version = "0.9.7" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -6529,6 +6662,7 @@ dependencies = [ "polkadot-runtime", "polkadot-runtime-parachains", "polkadot-statement-distribution", + "rococo-runtime", "sc-authority-discovery", "sc-basic-authorship", "sc-block-builder", @@ -6575,7 +6709,7 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "arrayvec 0.5.2", "futures 0.3.15", @@ -6595,8 +6729,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.6" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +version = "0.9.7" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -6605,8 +6739,8 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" -version = "0.9.6" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +version = "0.9.7" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "beefy-primitives", "bitvec", @@ -6662,8 +6796,8 @@ dependencies = [ [[package]] name = "polkadot-test-service" -version = "0.9.6" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +version = "0.9.7" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "frame-benchmarking", "frame-system", @@ -7242,7 +7376,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "env_logger 0.8.4", "hex", @@ -7317,6 +7451,73 @@ dependencies = [ "librocksdb-sys", ] +[[package]] +name = "rococo-runtime" +version = "0.9.7" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +dependencies = [ + "beefy-primitives", + "bp-rococo", + "bp-wococo", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-rpc-runtime-api", + "hex-literal", + "log", + "max-encoded-len", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-beefy", + "pallet-bridge-grandpa", + "pallet-collective", + "pallet-grandpa", + "pallet-im-online", + "pallet-indices", + "pallet-membership", + "pallet-mmr", + "pallet-mmr-primitives", + "pallet-offences", + "pallet-proxy", + "pallet-session", + "pallet-staking", + "pallet-staking-reward-curve", + "pallet-sudo", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-utility", + "pallet-xcm", + "parity-scale-codec", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-runtime-common", + "polkadot-runtime-parachains", + "serde", + "serde_derive", + "smallvec 1.6.1", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-transaction-pool", + "sp-version", + "substrate-wasm-builder 3.0.0", + "xcm", + "xcm-builder", + "xcm-executor", +] + [[package]] name = "rpassword" version = "5.0.1" @@ -7461,7 +7662,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "derive_more", @@ -7490,7 +7691,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "futures 0.3.15", "futures-timer 3.0.2", @@ -7513,7 +7714,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7529,7 +7730,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7550,7 +7751,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -7561,7 +7762,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "chrono", "fdlimit", @@ -7599,7 +7800,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "derive_more", "fnv", @@ -7633,7 +7834,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "blake2-rfc", "hash-db", @@ -7663,7 +7864,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parking_lot 0.11.1", "sc-client-api", @@ -7675,7 +7876,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "derive_more", @@ -7706,7 +7907,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "derive_more", @@ -7752,7 +7953,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "derive_more", "futures 0.3.15", @@ -7776,7 +7977,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7789,7 +7990,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "futures 0.3.15", @@ -7817,7 +8018,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "sc-client-api", "sp-authorship", @@ -7828,7 +8029,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "derive_more", "lazy_static", @@ -7857,7 +8058,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "derive_more", "parity-scale-codec", @@ -7874,7 +8075,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "log", "parity-scale-codec", @@ -7889,7 +8090,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "log", "parity-scale-codec", @@ -7906,7 +8107,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "derive_more", @@ -7947,7 +8148,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "derive_more", "finality-grandpa", @@ -7971,7 +8172,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-warp-sync" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "derive_more", "futures 0.3.15", @@ -7992,7 +8193,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "ansi_term 0.12.1", "futures 0.3.15", @@ -8010,7 +8211,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "derive_more", @@ -8030,7 +8231,7 @@ dependencies = [ [[package]] name = "sc-light" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "hash-db", "lazy_static", @@ -8049,7 +8250,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-std", "async-trait", @@ -8102,7 +8303,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "futures 0.3.15", "futures-timer 3.0.2", @@ -8119,7 +8320,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "bytes 0.5.6", "fnv", @@ -8147,7 +8348,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "futures 0.3.15", "libp2p", @@ -8160,7 +8361,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8169,7 +8370,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "futures 0.3.15", "hash-db", @@ -8204,7 +8405,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "derive_more", "futures 0.3.15", @@ -8229,7 +8430,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "futures 0.1.31", "jsonrpc-core", @@ -8247,7 +8448,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "directories", @@ -8312,7 +8513,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "log", "parity-scale-codec", @@ -8327,7 +8528,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -8347,7 +8548,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "chrono", "futures 0.3.15", @@ -8367,7 +8568,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "ansi_term 0.12.1", "atty", @@ -8404,7 +8605,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -8415,7 +8616,7 @@ dependencies = [ [[package]] name = "sc-transaction-graph" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "derive_more", "futures 0.3.15", @@ -8437,7 +8638,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "futures 0.3.15", "intervalier", @@ -8801,8 +9002,8 @@ dependencies = [ [[package]] name = "slot-range-helper" -version = "0.9.6" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +version = "0.9.7" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "enumn", "parity-scale-codec", @@ -8908,7 +9109,7 @@ dependencies = [ [[package]] name = "sp-allocator" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "log", "sp-core", @@ -8920,7 +9121,7 @@ dependencies = [ [[package]] name = "sp-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "hash-db", "log", @@ -8937,7 +9138,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "blake2-rfc", "proc-macro-crate 1.0.0", @@ -8949,7 +9150,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "max-encoded-len", "parity-scale-codec", @@ -8962,7 +9163,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "integer-sqrt", "num-traits", @@ -8976,7 +9177,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "sp-api", @@ -8988,7 +9189,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "parity-scale-codec", @@ -9000,7 +9201,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "sp-api", @@ -9012,7 +9213,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "futures 0.3.15", "log", @@ -9030,7 +9231,7 @@ dependencies = [ [[package]] name = "sp-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "serde", "serde_json", @@ -9039,7 +9240,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "futures 0.3.15", @@ -9066,7 +9267,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "parity-scale-codec", @@ -9083,7 +9284,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "merlin", @@ -9105,7 +9306,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "sp-arithmetic", @@ -9115,7 +9316,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -9127,7 +9328,7 @@ dependencies = [ [[package]] name = "sp-core" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "base58", "blake2-rfc", @@ -9172,7 +9373,7 @@ dependencies = [ [[package]] name = "sp-database" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "kvdb", "parking_lot 0.11.1", @@ -9181,7 +9382,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "proc-macro2", "quote", @@ -9191,7 +9392,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "environmental", "parity-scale-codec", @@ -9202,7 +9403,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "finality-grandpa", "log", @@ -9219,7 +9420,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9233,7 +9434,7 @@ dependencies = [ [[package]] name = "sp-io" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "futures 0.3.15", "hash-db", @@ -9258,7 +9459,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "lazy_static", "sp-core", @@ -9269,7 +9470,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "derive_more", @@ -9286,7 +9487,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "ruzstd", "zstd", @@ -9295,7 +9496,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "serde", @@ -9308,7 +9509,7 @@ dependencies = [ [[package]] name = "sp-npos-elections-compact" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -9319,7 +9520,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "sp-api", "sp-core", @@ -9329,7 +9530,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "backtrace", ] @@ -9337,7 +9538,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "rustc-hash", "serde", @@ -9348,7 +9549,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "either", "hash256-std-hasher", @@ -9370,7 +9571,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9387,7 +9588,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "Inflector", "proc-macro-crate 1.0.0", @@ -9399,7 +9600,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "serde", "serde_json", @@ -9408,7 +9609,7 @@ dependencies = [ [[package]] name = "sp-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "sp-api", @@ -9421,7 +9622,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -9431,7 +9632,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "hash-db", "log", @@ -9454,12 +9655,12 @@ dependencies = [ [[package]] name = "sp-std" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" [[package]] name = "sp-storage" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9472,7 +9673,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "log", "sp-core", @@ -9485,7 +9686,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "futures-timer 3.0.2", @@ -9502,7 +9703,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "erased-serde", "log", @@ -9520,7 +9721,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "derive_more", "futures 0.3.15", @@ -9536,7 +9737,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "log", @@ -9551,7 +9752,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "hash-db", "memory-db", @@ -9565,7 +9766,7 @@ dependencies = [ [[package]] name = "sp-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "futures 0.3.15", "futures-core", @@ -9577,7 +9778,7 @@ dependencies = [ [[package]] name = "sp-version" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9590,7 +9791,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "parity-scale-codec", "proc-macro-crate 1.0.0", @@ -9602,7 +9803,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9764,7 +9965,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "platforms", ] @@ -9772,7 +9973,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.15", @@ -9795,7 +9996,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-std", "derive_more", @@ -9809,7 +10010,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "async-trait", "futures 0.1.31", @@ -9854,7 +10055,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "ansi_term 0.12.1", "atty", @@ -10517,7 +10718,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.6#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" dependencies = [ "frame-try-runtime", "log", @@ -11253,8 +11454,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.5" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +version = "0.9.7" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -11263,8 +11464,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.6" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +version = "0.9.7" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "frame-support", "frame-system", @@ -11282,8 +11483,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.6" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.6#63667acb674776f18d07a97032e56efe4e72bcd6" +version = "0.9.7" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" dependencies = [ "frame-support", "impl-trait-for-tuples", diff --git a/README.md b/README.md index c196f463..58841cea 100644 --- a/README.md +++ b/README.md @@ -3,9 +3,12 @@ A new [Cumulus](https://github.com/paritytech/cumulus/)-based Substrate node, ready for hacking :cloud: This project is a fork of the -[Substrate Developer Hub Node Template](https://github.com/substrate-developer-hub/substrate-node-template) -modified to include dependencies required for registering this node as a **parathread or parachian** -to an established **relay chain** +[Substrate Node Template](https://github.com/substrate-developer-hub/substrate-node-template) +modified to include dependencies required for registering this node as a **parathread** or +**parachain** to an established **relay chain**. + +👉 Learn more about parachains [here](https://wiki.polkadot.network/docs/learn-parachains), and +parathreads [here](https://wiki.polkadot.network/docs/learn-parathreads). ## Build & Run @@ -18,39 +21,47 @@ If necessary, refer to the setup instructions at the ### Build -Once the development environment is set up, build the parachain node template. This command will +Once the development environment is set up, build the Cumulus Parachain Template. This command will build the [Wasm Runtime](https://substrate.dev/docs/en/knowledgebase/advanced/executor#wasm-execution) and -[native node](https://substrate.dev/docs/en/knowledgebase/advanced/executor#native-execution) code: +[native](https://substrate.dev/docs/en/knowledgebase/advanced/executor#native-execution) code: ```bash cargo build --release ``` -## Connect a Collator Node to a Relay Chain +## Relay Chain -### Local Relay Chain Testnet +> **NOTE**: In the following two sections, we document how to manually start a few relay chain +> nodes, start a parachain node (collator), and register the parachain with the relay chain. +> +> We also have the [**`polkadot-launch`**](https://www.npmjs.com/package/polkadot-launch) CLI tool +> that automate the following steps and help you easily launch relay chains and parachains. However +> it is still good to go through the following procedures once to understand the mechanism for running +> and registering a parachain. -To operate a parathread or parachain, you _must_ connect to a relay chain. You have a few choices, -the most typical for testing is a local development Rococo network, then moving to the live testnet. -**Keep in mind, you need to configure the specific relay chain you will connect to in your** -**collator `chain_spec.rs`**. In the following examples, we will use a `rococo-local` relay network. +To operate a parathread or parachain, you _must_ connect to a relay chain. Typically you would test +on a local Rococo development network, then move to the testnet, and finally launch on the mainnet. +**Keep in mind you need to configure the specific relay chain you will connect to in your collator +`chain_spec.rs`**. In the following examples, we will use `rococo-local` as the relay network. -#### Relay Chain Network (Validators) +### Build Relay Chain -Clone and build Polkadot (**at the correct commit for your relay chain**): +Clone and build [Polkadot](https://github.com/paritytech/polkadot) (beware of the version tag we used): ```bash # Get a fresh clone, or `cd` to where you have polkadot already: -git clone -b --depth 1 https://github.com:paritytech/polkadot.git +git clone -b v0.9.7 --depth 1 https://github.com/paritytech/polkadot.git cd polkadot cargo build --release ``` -##### Generate the chainspec +### Generate the Relay Chain Chainspec + +First, we create the chain specification file (chainspec). Note the chainspec file _must_ be generated on a +_single node_ and then shared among all nodes! -> NOTE: this file _must_ be generated on a _single node_ and then the file shared with all nodes! -> Other nodes _cannot_ generate it due to possible non-determinism. +👉 Learn more about chain specification [here](https://substrate.dev/docs/en/knowledgebase/integrate/chain-spec). ```bash ./target/release/polkadot build-spec \ @@ -60,10 +71,11 @@ cargo build --release > rococo_local.json ``` -##### Start Relay Chain Node(s) +### Start Relay Chain -You should have a minimum of 2 running full _validator_ nodes on your relay chain per parachain/thread -collator you intend to connect! +We need *n + 1* full _validator_ nodes running on a relay chain to accept *n* parachain / parathread +connections. Here we will start two relay chain nodes so we can have one parachain node connecting in +later. From the Polkadot working directory: @@ -92,78 +104,73 @@ Open a new terminal, same directory: Add more nodes as needed, with non-conflicting ports, DB directories, and validator keys (`--charlie`, `--dave`, etc.). -##### Reserve a ParaID +### Reserve a ParaID To connect to a relay chain, you must first _reserve a `ParaId` for your parathread that will -become a parachain. To do this, you \_must_ have currency available on an account on that network -in sufficient amount to reserve an ID. This is 20 "units" on the testnets, check for the amount -on your relay chain. The relay chain will increment starting at `2000` for all chains connecting -that are not "systems parachains" that use a different method to obtain a `ParaId`. - -The easiest way to reserve your `ParaId` this is via the -[Polkadot Apps UI](https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944#/parachains/parathreads) -under the Parachains -> Parathreads tab and use the `+ ParaID` button. +become a parachain. To do this, you will need sufficient amount of currency on the network account +to reserve the ID. -> You will need to connect to a _relay chain node_ to submit this extrinsic! -> In testnets, your ParaId will be 2000 for your first parathread registration. - -In this example flow, we will use the **`Charlie` development account** where we have funds available. +In this example, we will use **`Charlie` development account** where we have funds available. Once you submit this extrinsic successfully, you can start your collators. -### Parachain Network +The easiest way to reserve your `ParaId` is via +[Polkadot Apps UI](https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944#/parachains/parathreads) +under the `Parachains` -> `Parathreads` tab and use the `+ ParaID` button. + +## Parachain -#### Select the Correct Relay Chain +### Select the Correct Relay Chain -To operate your parachain, it _must_ connect to the _correct_ relay chain. -**Keep in mind, you need to configure the specific relay chain you will connect to in your** -**collator `chain_spec.rs`**. Specifically you pass the command for the network you need in -the `Extensions` section of your `ChainSpec::from_genesis(` section: +To operate your parachain, you need to specify the correct relay chain you will connect to in your +collator `chain_spec.rs`. Specifically you pass the command for the network you need in the +`Extensions` of your `ChainSpec::from_genesis()` [in the code](node/src/chain_spec.rs#78-81). ```rust - Extensions { - relay_chain: "rococo-local".into(), // You MUST set this to the correct network! - para_id: id.into(), - }, +Extensions { + relay_chain: "rococo-local".into(), // You MUST set this to the correct network! + para_id: id.into(), +}, ``` -> You can choose from any pre-set runtime chain spec in the Polkadot repo looking in the +> You can choose from any pre-set runtime chainspec in the Polkadot repo, by referring to the > `cli/src/command.rs` and `node/service/src/chain_spec.rs` files or generate your own and use > that. See the [Cumulus Workshop](https://substrate.dev/cumulus-workshop/) for how. -In the following examples, we use the `rococo-local` relay network we setup in the last section. +In the following examples, we will use the `rococo-local` relay network we setup in the last section. -#### Export the Parachain Genesis and Runtime +### Export the Parachain Genesis and Runtime -The files you will need to register we will generate in a `./resources` folder, to build them because -you modified the code you can use the following commands: +We first generate the **genesis state** and **genesis wasm** needed for the parachain registration. ```bash # Build the parachain node (from it's top level dir) +cd substrate-parachain-template cargo build --release -# Place to store files we need +# Folder to store resource files needed for parachain registration mkdir -p resources -# Build the Chain spec +# Build the chainspec ./target/release/parachain-collator build-spec \ --disable-default-bootnode > ./resources/template-local-plain.json -# Build the raw file +# Build the raw chainspec file ./target/release/parachain-collator build-spec \ --chain=./resources/template-local-plain.json \ ---raw --disable-default-bootnode > ./resources/template-local.json +--raw --disable-default-bootnode > ./resources/template-local-raw.json -# Export genesis state to `./resources files -# Assumes ParaId = 2000 . Change as needed. +# Export genesis state to `./resources`, using 2000 as the ParaId ./target/release/parachain-collator export-genesis-state --parachain-id 2000 > ./resources/para-2000-genesis -# export runtime wasm + +# Export the genesis wasm ./target/release/parachain-collator export-genesis-wasm > ./resources/para-2000-wasm ``` -> Note: we have set the `para_ID = 2000` here, this _must_ be unique for all parathreads/chains on the -> relay chain you register with. You _must_ reserve this first on the relay chain! +> **NOTE**: we have set the `para_ID` to be **2000** here. This _must_ be unique for all parathreads/chains +> on the relay chain you register with. You _must_ reserve this first on the relay chain for the +> testnet or mainnet. -#### Start Parachain Nodes (Collators) +### Start a Parachain Node (Collator) From the parachain template working directory: @@ -171,7 +178,7 @@ From the parachain template working directory: # NOTE: this command assumes the chain spec is in a directory named `polkadot` # that is at the same level of the template working directory. Change as needed. # -# It also assumes a ParaId oof 2000. Change as needed. +# It also assumes a ParaId of 2000. Change as needed. ./target/release/parachain-collator \ -d /tmp/parachain/alice \ --collator \ @@ -229,26 +236,40 @@ _Output:_ 2021-05-30 16:58:00 [Relaychain] ✨ Imported #10 (0xc9c9…1ca3) ``` -#### Register on the Relay with `sudo` +You see messages are from both a relaychain node and a parachain node. This is because a relay chain +light client is also run next to the parachain collator. + +### Parachain Registration -In order to produce parachain blocks you will need to register the parachain as detailed in the -[Substrate Cumulus Worship](https://substrate.dev/cumulus-workshop/#/en/3-parachains/2-register) -by going to: +Now that you have two relay chain nodes, and a parachain node accompanied with a relay chain light +client running, the next step is to register the parachain in the relay chain with the following +steps (for detail, refer to the [Substrate Cumulus Worship](https://substrate.dev/cumulus-workshop/#/en/3-parachains/2-register)): -`Developer -> sudo -> paraSudoWrapper -> sudoScheduleParaInitialize(id, genesis)` +- Goto [Polkadot Apps UI](https://polkadot.js.org/apps/#/explorer), connecting to your relay chain. -Ensure you set the `ParaId to 2000` and the `parachain: Bool to Yes`. +- Execute a sudo extrinsic on the relay chain by going to `Developer` -> `sudo` page. -The files you will need are in the `./resources` folder, you just created. +- Pick `paraSudoWrapper` -> `sudoScheduleParaInitialize(id, genesis)` as the extrinsic type, +shown below. -> Note : When registering to the public Rococo testnet, ensure you set a **unique** > `para_id` > 1000, below 1000 is reserved _exclusively_ for system parachains. + ![Polkadot Apps UI](docs/assets/ss01.png) -#### Restart the Parachain (Collator) and Wait... +- Set the `id: ParaId` to 2,000 (or whatever ParaId you used above), and set the `parachain: Bool` +option to **Yes**. + +- For the `genesisHead`, drag the genesis state file exported above, `para-2000-genesis`, in. + +- For the `validationCode`, drag the genesis wasm file exported above, `para-2000-wasm`, in. + +> **Note**: When registering to the public Rococo testnet, ensure you set a **unique** `paraId` +> larger than 1,000. Values below 1,000 are reserved _exclusively_ for system parachains. + +### Restart the Parachain (Collator) The collator node may need to be restarted to get it functioning as expected. After a [new epoch](https://wiki.polkadot.network/docs/en/glossary#epoch) starts on the relay chain, your parachain will come online. Once this happens, you should see the collator start -reporting _parachian_ blocks: +reporting _parachain_ blocks: ```bash # Notice the relay epoch change! Only then do we start parachain collating! @@ -298,51 +319,40 @@ reporting _parachian_ blocks: 2021-05-30 17:00:39 [Parachain] 💤 Idle (0 peers), best: #2 (0x5087…b5a0), finalized #1 (0x80fc…ccae), ⬇ 0 ⬆ 0 ``` -> Note the delay here! It may take some time for your relaychain to enter a new epoch. +**Note the delay here!** It may take some time for your relay chain to enter a new epoch. -### Rococo & Westend Testnet Relay Chains +## Rococo & Westend Relay Chain Testnets ---- +_Is this Cumulus Parachain Template Rococo & Westend testnets compatible?_ **Yes!** -> _IS THIS TEMPLATE ROCOCO & WESTEND COMPATIBLE?_ -> -> **Yes!** -> -> As of 22/06/2021 for Polkadot runtimes v0.9.6 - ---- +- **Rococo** is the testnet of Kusama (join the +[Rococo Faucet](https://matrix.to/#/#rococo-faucet:matrix.org) to get testing funds). +- **Westend** is the testnet of Polkadot (join the +[Westend Faucet](https://matrix.to/#/#westend_faucet:matrix.org) to get testing funds). -**See the [Cumulus Workshop](https://substrate.dev/cumulus-workshop/) for the latest instructions** -**to register a parathread/parachain on a relay chain** +See the [Cumulus Workshop](https://substrate.dev/cumulus-workshop/) for the latest instructions to +register a parathread/parachain on a relay chain. -> **IMPORTANT NOTE:** you _must_ use the _same_ commit for cumulus and polkadot the present runtime -> for the network you are connecting to uses to be compatible!!! -> You _must_ test locally registering your parachain successfully before you attempt to connect to +> **NOTE**: When running the relay chain and parachain, you _must_ use the _same_ tagged version of +> [Polkadot](https://github.com/paritytech/polkadot) and [Cumulus](https://github.com/paritytech/cumulus) +> so the collator would register successfully to the relay chain. +> You should test locally registering your parachain successfully before attempting to connect to > any running relay chain network! -Find `Chain spec` files to connect to live networks [here](https://github.com/paritytech/polkadot/tree/master/node/service/res). +Find `chainspec` files to connect to live networks [here](https://github.com/paritytech/polkadot/tree/master/node/service/res). You want to be sure to use the correct git release tag in these files, as they change from time to time and _must_ match the live network! -- **Rococo** is generally more unstable getting tests incorporated first, and reset often! - - Join in the [Rococo Faucet](https://matrix.to/#/#rococo-faucet:matrix.org) to get some funds. -- **Westend** is more stable, and is not reset except when absolutely needed. - - Join in the [Westend Faucet](https://matrix.to/#/#westend_faucet:matrix.org) to get some funds. - -These networks are under _constant development_ - so expect to need to follow progress and update -your parachains in lock step with the testnet changes if you wish to connect to the network. - -Do join the [rococo matrix chat room](https://matrix.to/#/#rococo:matrix.parity.io) to ask -questions and connect with the parachain building teams. +These networks are under _constant development_ - so please follow the progress and update of +your parachains in lock step with the testnet changes if you wish to connect to the network. Do +join the [Parachain Technical matrix chat room](https://app.element.io/#/room/#parachain-technical:matrix.parity.io) +to ask questions and connect with the parachain building teams. ## Learn More -- More detailed instructions to use Cumulus parachains are found in the - [Cumulus Worship](https://substrate.dev/cumulus-workshop/#/en/3-parachains/2-register) -- Refer to the upstream - [Substrate Developer Hub Node Template](https://github.com/substrate-developer-hub/substrate-node-template) - to learn more about the structure of this project, the capabilities it encapsulates and the way in - which those capabilities are implemented. -- You can learn more about - [The Path of Parachain Block](https://polkadot.network/the-path-of-a-parachain-block/) on the - official Polkadot Blog. +- More detailed instructions to use Cumulus parachains are found in the +[Cumulus Workshop](https://substrate.dev/cumulus-workshop/#/en/3-parachains/2-register). +- Refer to the upstream [Substrate Node Template](https://github.com/substrate-developer-hub/substrate-node-template) +to learn more about the structure of this project, the capabilities it encapsulates and the way in +which those capabilities are implemented. +- Learn more about how a parachain block is added to a finalized chain [here](https://polkadot.network/the-path-of-a-parachain-block/). diff --git a/docs/assets/ss01.png b/docs/assets/ss01.png new file mode 100644 index 0000000000000000000000000000000000000000..0ab85f5cd09d33e680359c093e011ceb199c9364 GIT binary patch literal 91040 zcmZ^~19)Y@vM8Kn;)y-6ZQHhOd&kBE6HjbTY}>}f&P031oY;Oj_ndR@d;fp#{<^%L3CSu2qRFzXbSa_~ zq=>~ago)&dDm3cqlEC${j~l_67jMvvufO1mzyHj|vq7(W^^2z?m>2JBLBRm(B$&AP z$UOcO0@S7eKU6(B*cUHwtoWczA_~g!J|GacZ{PC;G_eEreR=)R<+R~_^P?BbRM;2+ z3TzB-rclXDM{FFS=Mv=Ag(BfirHQY{v+|T*$Ig2OU*noWFvP#v!*E33F3~hG_T{hZy<6I zyWkC!(oc`>Pkrr=7mfy9_fmv$clM`)fhD3Sxi|k{A&b#58_2HW^o}2hB#~_C^|p47 zJ-v?}NXN&qv23FuIwlZjbKlsBi;8$UV`3!>wKeJd5p61#J;k*fQkDPc@Mi{YH>^+k zOB%=p!fc~D@C6OU+P>kK?^?&WXd<I3Svfo2}|iAHw>bVK|V7$4&aQwVS*0b-UrU$uAn0@s6#-N2; zR1_en@YcC$vqljNBkn2F))9V5CaluIEWveH?LP0^`q(-oLVm}(VG!(sAPhR}JKd%D z;7L@;RJn^wzKeJl5X@?M{)nuY%gYTs;d<7~{<5`vl9xRuHs-S@W{%f@z8Yf>89b(G zj^6Oq+lt^rN9=-gc^2Rhi+3N|@ABEJ!`5O~fkYPgX7~$C&6a0j`>mQkcZilvY_?oK zaq-dUtieDKLBUuF7~VP}6i^frV9OWDQ)VZXyCVkR^`0N$l00DFpYg#Si$7*bdmx;k zfV;t*ANi3_ed`EcgqO%EVzGK<#Hxj6FKzlDFQ^&&kj1}~|4l$s{-P^Plny3m43ixM za~ZUY4^eA{D-HIW7}NZ_y%R<@*zgttH*!TEg%cusu;nZ?;diQEFt;IEm(LksME&^M zkP|47CM3`ikj^3y@i^pPXhh7Vu~~zvNTkNTT>l8pm!?LN4Z9axRTfl7$O);)ubfpV zLp%xf$xoZbxg~stU?7Qy^?{@dMka~<6GlvifT9U&HRK`AOp2QjAuWY3fdm;MUD7|sLHe(fnCX8M9 z-Qb8RTOCzBc7639!M~9AFtJEf-_-^(cKDqW+Sv8MYoJ$xPX`sYQ?DkySh^^INJQU3 zKWB#1b^+U+SLlxx5MM=te~CF!hN7v$NrX;>zJ!_#Xz}v$n(!j>!tl~=3U-io(7DAO zjT{BcqaPO^|2*nG-aU$&)tUzt2g-b;1Oz z8^IVs8-X4X9GQ{#qGX}`LP=C2UIJ0#Q{q_i&62;7yAidK=*I8>?I3HCDIHr|nm&r& zgC3Qhhn|BzhkikvUM1UF6oI$|eFpskbyP+=5%zb4ILR4RO44}}r8Y|yS`}7Re${GK zns#3ObUo^-`XBvOkNT9lO%pr|sfOrAy}Izm!v-TWB4eYStzG6V*uAm6w#m8CtDK~8 zwLG?Xw&=###yreT#*m_0PG70BB8u*Mi?NO9$!DU*T1jNulcW|PkN7_ukny>P-PIKP`Xfpunlmy zuwh@Z;5=Zb;jZ8_z7E6Xp!-lZ(bJRsCC#SPr+U>5B^JekL*rqbXJntTrG@s#2h7s+}mJs>G_>Ab-t76N8~cD}U0Y z9>*@KtHCSYA>N?}O;SiHmcqlZKo_056#p}sA<3Uaiph!?n@Nj~i*kk$z>r4?qW^bDw+SxqT zcve`BHtWk(<^Fg}uffaCgpxVJ!p;$CGqzp&T`Nj)bnGP4Bvdt%1>*(X1s*nyM)Jna z18Y~h8~z(?EI%xaXxnHWIrj;HR07RgO-0RNO+a;Vwas#?Jql+k=cs*{!>~P>1K!#9 zoFAJkoh$cf_jC8H1k6bHNEAp(u~D(VW07;D75TDlv$1jzb6j(b+NC>&+M7CA+kHAU zI|Dq~JSIHx+(8FDqi>NgtuRZ4ztK;RPjt51w=8zt2kZv)miPvJjXQ_#4c7Vm+x!Ro z&;J^)ZMPNzvCmEq^maRUtPZsfTDJh(f#ZR(rs6b3eh9P3+=Q2c%2dokPPEcg)I!$0 z+EkC)moF&Y@xk%mDo~r#d5LTZeJF2z(+#vO{^+*pc^N=54sh*QlC!YVH<(d88_;)>db*#b z0(07ZY3JClMA2v?6Bl#ole07VTSkp%+Ph~BKf2FoNNJ8~&|fC+HHy(x2UYV*Xo~hr z{nsyAJ~Vlao_lVuzF5N8vf;2&j_PXL)=NkQHG;S5&j+@bo|MamHolnsXs|+KX zh8$xAGZsq+n+y)Fw#V3lLn}kQQDJ-#J#CiVdV3K0Lu8wCTCS{1v8V8 zV@Hk7M8_S+LlhX$u+jXw4R!tF1pYkgZ`9KG*!UdnXhp2;-N^|qFmpp!+(G~BB^rqB z%lOU6wu9dDNuR*i;2zV7;(R>3vPTQ1M#sRemTJYQhtcD05pn)!6?B=2=b*ls^saT1 zl-h;DMAlhrljCL^LttlvPFedN(t6GYmZ+T1gsz?G>A+@LC!0gR!|oa1n$f0f?}Jvj z*l6R6<^z!cv%k|te*fUI6mMK69|s>mkW$Feui(BYU#|IdL~W^*E4N(0?nv{(@nr6( zeW`MDeZF*M<$mMwDWsSF-De)K4&vKlWqurZ89p-Z+q#{&OuG@g5}T;KM=T6)G-T^# z#MvgG@g=(}aa4D>old{fUePOUtsSA+B?1k1>19agnWxjIqor5mYGyhH0G@jeLsr5g z<5Y;!tXKu>{dn(mu5a#i-d1aP9@-nn&AoCOLd82tKth3E7NdbdBZEl`IAv}% zXWTeolD}RDeb>{HCVY;N4hJkcsza|~gbeZbV{MaOEkn}q(r+U86N!=uBocFtUjm4q0*?_N}OezZkuWQ%?9tt`qcKM{AdC%0`K};JuZ68ihNI| zVrDn{MT2!qRRgbOjw!nBsiT!??FsSr*zVBZ7*~-FQAb$MWEf!5YV?GjTW5CMB9e*` zxR7HYCp^t}9BFt{oinHPCE%*8x@6~H(}S}lf}mz*TV1wnw;c_2y4jHW!ydeHS^_ed~7VM zW$vq42Ea46vuhz2<%ibl&Z5!63J5zu`Uyu+>`D9ypCe1a(=6b=^1anHy68ee$Rahj zy6AOYU+-o8m5!uT<;j{30q=mLg)l7ynG$C~W`S+4mRX(!i4~Ex*Th@uRs4CpW2|Mo zXR?0$DcUZ@H{p=(f*wTvQ74?Y<)5E5fJwSqux+}$GmqvKiJX|Dx-_rDs;)!F!{ZJ8 zwCd0ezk>NSB{7AD7O5i4R`x{HoYY%kxACA(v(zI*F~c#|Fu12Ss5n0nwUuSyvHLgM z0-dGz0Snf2s;wrz=EO3<{(N=$&;BYE4>m-jk?$fe-x_hlW2q=3 z{?2clW#c5N$8U65vHoz(6RyzDoDNub`}hL)EgV@B-*yUr{5f~fNBcNJ%yDmS(7X95 zF1DMmN3+kMOxHY+wdzs$cZQlmsjqD5%q#DxE~UF+>Bc)mF=@@Uu?DK&wENPuA*rEe zjcW&*KgWZvga7E=Hl7hKi-JB^F~A1cV(-z5zKFJ->B80Q5cm@0`;7qRg2*TSj`?tI zdwMVqS%_yN<%a!5$MT^+_ZGO=BQUf35p@pYLAfLKU_Rat$~UVW4?8sy!ts7OSitd; z!^aLN<<94`Vc8e*zke%@t6-DK(-r*4T*!?3aCtiIgqoJ9yr2;}2~=dbso}1%d^`D* z8HgSV?t*vCR)Oe`vKyK*G`;J%!v-7c*5yWad-#nMha(+D-eK~XK2@C36#1CCk^m2V zUG1J8Nlh`LF_JD(FVr`lDoZQv0o@3$m*;~kNL9qOe@1ll2gi?aiTeonsFsMQi0TMz znKEfN8EDxWX@aEG1jiKT#EfKx6!av#6f_IOojBsNcyp^%(@OK<9PR zHPw;p9F6kkQpC8>UVZ8_76>Zqf)* zNK{7TS)5&TtsM1cN+%x&3keN9kMYcX_c_h<3%(k`JpMgj2_Mnr*q;FAOJ!|Kc}>~- z{Os4kVyOyOyjbAG=@b#q{S#z`aK&ur(b4ah;fc~crI)l^?wiNIvKjMFeb+l*H&e=J z&rU)!JJ#aTikQNem-I8bOEh~ge6+r3nR%&=G6b#DOab(&^s?45)|ouUHhQ0DFXv`= z4GbWZd^?aIc!jVpV7?H+fDrw?5P=at&v0rp#FeN5AoIo#sg3TiehV3BMlBx(-t_j~ z1*?478WI6p{+MyDf+jvB1w-ou-}>&Va!%>gDlh9La)46I@C$u&^eX-5W(ybq=b z{9F3qlLdFS8dfmxEZj&x?GRkKsG>508-#7J;UG^Q{Qzb{RGC-|aYlUD7~~$s9(i`L zccH9u?Uwu`wmnir=OQYqT91&#`jB40(Ze zez~vG?{W}^PLi{9$#nKq1EkmbP0EvU`qF-?I|b%3$tCRMn>0yOr%<)iJWo9iQ}CEk zPqMx#<+O?wnYIuo@z2!lI=gL_WvQ{8h4*!e&5l*Mxq^zlE5Cr39V&%a3`tlEzLq%$ zn^<2`$u!lLZ#XABxP3ifoTVC)n%RaaR-4DFhyB-*_AIstn!6`UL1|l7TY2I(@Q;Mz zNQ&?_UnxS{L(`<_|FXx?{>=S37dsV;C!@UT?)Ko9sCOOG%}c{ju4%J-obin}T-XwD zpE6kLa&t2oM-m5O8l!`!=j5f(qxI9Qk}uw9A?>IrI`~bYTpF;{0^F69HoKleZ>`-t zwllClykHJQc{%#KYh_Tm>C(NPM|9lFCyiTxV1%3TZI^&b=}3vD$LjUc^kD4Jq0!;y zz=*eph5>_#@y+Sc+r%b7!j)rxW%K8and^Jx<*OXHyD|KRF!i6Wu_3y%;F5jF5s);( zEz0C>7!~1$q+p`()7J|qTBv|+ejsi}ti1$dp_}rHih;GF8%hUw$mpXnZr$V`r@!dg z^o-c8-ycSVh{w?3kK^6u+{|tnZ{xnj;OOEsf4k_@`AcRAbAZaNWI#qp^*brIL2@9& z3cZsEhCmA43I&^QMeKZ&zk%PZ>xZAmEBCuckbiKPC{BLq02FCJ!F2(hsliS$+FT-~ zD!-~x5z$0;nnJ=&;>sFjabJ0amcB}+2BDUB{<_{fLM{W@=hXLTnRb<9RSJ zJ|J2oXIrDtXIC<5y`mV9@?1yM`>bz0jLx^f3;^084Aizp9Srl&Su_^*5Kb z`NoJ*zdELJxn@}ZZ?E6B>@~;5sV!p6&t0xs5HN7GCFSN^+t(fDEa;xh{;)6Ur1Yhu z+t)oW`mPayAJ@&B=Zf}<<8-W9<*+{Gssb*KrsQ}UIoz^JkZqn`!A^UAu?W7`VF>-Gf8ljga$x_lLL zy|WU7vvv%NUG^PQEI4S~kzINu^ROyg!WG-kt9oMlO$NC}#wk}z%nsJDpi+&h&Kww5 z=hnmd_&pLmrahjvERPL$BOeNUgl*ajKJ66|QjY3;~D^S%@4XPg6-+zhJTv;z{ zFodtCU7+X&>*}pVoCQ7Lo);4S5u*2If7d>NYp&cm*5>kz6T1lNIh_IBqeEjDawE+f z5`L=)a0j$~-0h9MW~HzkF?itLAhCf{rcw$i{FE2+2i@lX-ObM!Q{v3Cu&i$c9AqA_ z^?C)QJU{R2-H5IgTzO7D#1hd6H3v*H8ED_@lT@)+sRppTcC;MS3x2SOjLYJ!z=#82 z!Fej+~zhkhv(OUpr zrw6te?^3SK!h^)|82sphJ|N7*fQJ$Gw=kba5SkX+GL{MoV6>kwEEssW4H)Dn1pZlZ zKPwp6m&7ozf6$?QR`FjD|HeWt{QB~57=rE}gd%EUGBTf6H8U3r3rAOLfE%!oL+4Y} zijBIqo3?^HuNlCB(Zn2JYQgB`;Pej`Fn%xIPtd`_&4k#?!QRo8*Gqu(zbJS=;eRwU zkrMwGiJP4OskVYLu^7O`f|!GmospST5T2NrnBT?Rl2=t+@?Y$q{{%>_-Q1jbnV391 zJsCaO7y&L;Oe{P+JWR~2OsuR7pA-zP-i~f2UJQ<|Wd9WMZ#m)?u4XPaPHr{;N8*3T zH8BOay9tnz{zK7!|NeQO7G5_0qsh_rU)}obAk#lEOe~DdO#dzWla>D;t-Q)MUKaM+ z;x-PS=K0hi$im9T!T(04}DRgQ=_xuG)Tt3s1pI%HQ4X?N5|RG66h?`mQeNZK7o0XvF_Z8H@j(WP+&q zzo9?d>maF1uEhUWf*@`GjkD+@yR7HGh!D%~q!fv=Yl0Ein zy}0=TyEB(OmM17!ZBxTB4pRCv3ICtUJPI>acx0BP4C53xA^_WlQ@iNoiBz#?(t*NB zb#H}-R46XK?>ddOmC-KgzkA(hL%Nminm5+Y6_H%+o9WXxb$}aWU?+aiOA{pV@w-`} z&g9>{3>qSjKQ+xb8!~RORddi>R2N z0^n_r%bnowInxpVi zQ}qo6^LxXh1swnWYe4r{7Z-Wm<=nATI+U#>0?_Gqw=H1MeK|fw|sXOaJ~qZ_zvLJDWL&!2I>Vwia@8-=&YY ziBfyqf6omX$SuC)UCR>?bxAb5%`iKWu46`&Tgg0i0u60hwGY{0YlBrz+rs&hpCiRE zdzY$2|M^Z60cDU*;PjKjzGQR&Qpbih-!$ju+)5+{y@_2`z@P-DAJh2^&8Y3ggL4a- zX0;+R%P8_eL^>tUs-`vYk=m+BZ&O|YGS!C6vHCBhl_Szyr7-q7mhVGrJ%8Sw z)gLO$J=AygS{al3ijvAi;#NCWu$`%QAz`l)GlM9Pd@kcD3B5OA1batAg<3ltT|X| z^F(99ANfEl15cWe&5iP_gxK&6m$HbG8{{iQ3F{}O;dt6g<}c~bBVd*xZpuNK#yeJFM|6H za5esHqr-x^g@v@zuuppUswltEyXr9VLUnN8j9PlZt;DSV)C{kkq@F$hcJiL@06e~H zzy#a$uC2IiURw`%Lb`I~H4rG>7bE>yTL-kgZalAz{d;noV||+8cv1FCTTNoDRD4+p z)y5?yz2eJ|2FYZU1?~86rOZ;q0z*^_)rv4!murUkyNx7Lhb3Q>6N2=6JQCHmrZ%DO z60#vjR2$DYANKp0jnqxvkN>>f3cEqja_z;CG%ffPSV$DU0`zhcNQE=U+b8ZPu7*7{qu$FZeeX{CQVE(=MJo1Ud*T*EzV}DlO|xJ@DUX&Yl>xpg**w0y4=h zx2Sg1dsX#etBs$_qpYMjBRltO_Pa&f4QPWd93$6KL6kx=|7ll{Ce9X)jj*|_YT%h? zy_61-UamC~(&-KG_Yx|Y7IVuI^zVov6yR<7RkGgV|EHPT3Yvo3S=}5&d52M1;Lo)raZb__G`s6^KQ<3NnORTJt%}vbK_ekV7*3Pt#s{Bgn@U6E3 z0(9V?$L=U2v2Ik^g+;}TIbM``FWOgrxJ7_A+a`l}gI$6>(KLm9&pEFe`ymf!{oz4wyc|Y% zJV2)2XN?H4P@QcGI=U*0{ygrZ!O(De_RhmQ^#fmsyum**Es3EEb(6t!4-#`Z)0X;F z;pC1>I$Ho)*0_g?F-$9tw^ysZ912)@?A;6JHD`}_9!sYg z6l%?)d8OW+Z}KVR=sC7ajQqr-dH@CXV$LgT*BS~OFO3Ys}ax$fr7jLJYP*a3^MmBXQ$PYW3R@`FR-18;8^{z>7E@gfi zxsIK{a1Q17$c~$j8jOsW0s3Jc)447t2tH*|{C%c;bbWQl?KKa(r`@Bf4NpiDisqO5 zX!KkVY__DQ*LKv;8f?$O!c)bN+Qz~Q>Bz<|e21}xu#dGg?e*3dcc*Zq zSf@rUqlbxh^Qr@{m$-^Z<*UUit#xPT4*y?l@feLJ>sV!026*-I(aUJ1Gt|yChSqp) zj4vWLrTz@(B6qC%g7fEm{8LpT!t@#wE|*y1AEz}++sk$_2UV4fCCkRn0j;DQy@r%) zQ9YQc|8ZH|qkuTrt1~7yO1)p#Z&gJ|>>Xu}FwPHwBPPNf5ZL7~Q~iPG)hH4gZE-%W zvD4%0QANu#kxh5-CxPlq;S1y`&kCa^c4-nC&gusGz;orJMq7+ltO~7^K@p*z-dWdz zN4oT&NG{hm=x^HZKOimNR_QvodP%M9dYHX3N%)c({Dhx@G- zXpfQ-(wLX>XQzv&=RwJ=cfsrTjgTX@e5jL8Z$1W@2rQFEpSwc9%*G&oDT$-eZErBkWn?(`leAgpyuK?$obz;^hLOA=^F}k?Rm2U-x zrV~PGeQ`7)l-3W~;7JmHovwM&xf##h2=3gbvVgz7Vs8{;s^U{UI4%a<))D$5;T-=$ zG{wI&w4*4wI@6p)KnVBzWi@@#EVMwh;%A3Tsr%`)oLy)j4+a}#6_1m=KmzYAp@$&CIhzOqTU^Q!W8)yVrhCVk85=4pfZE8_m_=GfuPEp*o$Yy^` z7_zf8h3mW|QQYTzQ5|uTsSC5V_^^ExX0_{a6HZ34Ub4s}9UHnD#0Iqg6czPlNE1`U zGTwBCsbCkMJbkN)*s$s`2zc6mH!l%_LBgj7`4v8mEsCzkti|6?#UivTxw`&)MJEP_ zOTRuFz6~@QJOHKib-|e3&)PgiNZ*_ey*=v^7(9okyX#0pkUJfqGHY;jkG^x*NO>x) zD(q#Zn7wrK5Nyygd-P?%eD@Xqq>)5%S`(mCEet8)d)D5_%i|@xrhbp=SL~htfo*uCv^Mkh^6*viDQ0x7 z$p*bDY))X#<8!sk$Xt{9XH+O`iYgp1qFB2gq=HsyR@%c=QV#sncXD?vX!fR1j;>Fo zxd}VICM2MbczgL1dkNA3BOwNe*Q`U10~KJy&iJ%)H#U2HZQo6>BzB$w+U z3nxs^)@_L4y2@ob?kU}Swv!@J(faV7R-Vcbr1Vw{@z(95vTL*vz02z_9E2mSy8`wX3)$QxOF`f_wF7<@E5t?qRTI1H0nqz` zGYGwx&4=jF|(@A|9 zqJ8c5VaCkRYAx=nXK0dM9ETrN<4eGhz-TQX zz`kh5o{6pb_Q&$74Ir^`(^?WSyBf&d>?>YnA)9vyhp51&sDfG_1gZTv@RbRc|L*NW z%gDc(|M{r!%KPu3@&_p3#X+a;yWs~-eoohM2+TG8G;t&^U-#0pVcRejgIe558HKGKFhFnKV6F0d7Q^N%q8 zechR`&#Y7)e^aUo^ItrVKFneUk6XZ{YvS{3BHPe#!?X6t3IO^}8`a#VbA+s8E zDI&9)nSli8?V0$G>7Awyy&`KKXRd(S!aN}M-?Z`#xyg1P^l(&V?4BIn zg0i_gJ)vqYfP+K})3S;x2= zE=wu)kyQCJ64QY$*^N!yJ90rwwQ2zJF-JOmadtjH&!Au_04F63Gy+Mb%W6zT%909mMxhH#^Cm}Lf z$phYz%23ress@c(m?b6@wW^9X3p^i84X>Fo`NKGgaV`|k zb2-vVpr%MoPr9N~l)hJQdbLk4rUOd#Y*>~)g^O2O?4Ng+lleM}pgcm9#_N#BH93bL zYM-;kiZp0x*I^vqMo=9lbDg1qZ=b6@Dy&}1fug}AGmO*&&2@Xw2Y~mqpB^`STx00C zv>y4&szM^${>c2Fn6QE}GZWV;WFcOt9 z&Xc%wLath2S(Ml`ac_@8L!en}FQ7Nd{yC8n`~amnKF@gIdT;K}X4@&^uUYiHcske% zQCcx=yZK-3mMSo_?|!faiX7=pwK!;8j`g)TtW!o~S@@a7mt=51rYxb!y~*btmvl}B6hJLS0~KL)brBP2j`IUc6ld%XfM_Hco5{2ZFDQhA2Gr2iNN z+eNAwGk;kQ+)2iv2m*)#BTUs7?*mt0CjDr6mzH1_hT$47c;-+KH+oM(T!qbV;z*Zn zr6?z}!#t0Wrw~ac77LGuSl+fX{}E{+Ef44smal%EG+{5`)6+)H_-a5*7&h(SL-*dG z`=A?Xv^uMrr?C>178FIL;8-l_SCc-)&74?w(A+J_jo;2b)pv9gsNGe!zFXJe7LJxi zOXnv7?+^I_r+i;1Ba->_TFshr1%<1!>|ZRV1NG$xC)C*)tO0AAc~VDlTXn{PH@8Fe z{?ETOl(G+yrH!`>RaCeM4DVuXf(Cfwe*Y!nZ?KSi+9mp+9*#P`h{k<>ShK5L_2q~CVbJM;7`xSDIfd)J6$G>A+53{? z_qZMIk)vfeXD3U@yzop2V464)kR?|mnZh-MuaL^@7ef$dre6e|^%YfiUuy?$lb~@Y zWHug+Atlt~p095Cy#DgF8}O}O;Q|8KrqjCd?zlc^`Lt8nyxOIMNJ)R(@s;+joqhQ>W=A6q8lw3AT8Gq8%47V6?9PyUcv7aj6t;OcTdu-FFgYVjce4r|PDPoLv2ccKF<5J0LqTBr1*;nxotNVC3*$Q|W!k>Hc za!4{vo2alZM^*kz7u*LZ-a_?mwHMi*E^1cL7`;y0&%H1;&%V?x$^tR?(Tfw|eD>9th-T`LAuEfSY;*vt5IF_DzklDMc0;rmci602-);uleG>5N}=?T=YL~aT>f+ z@$pjk$Y+!T){plLlFdIXoj+e+cwSZo;cPL4s0G$xF1?1c9d2nRaC)9nWB4>Ki2~T2 z2f2Z+$nK1}74;8+3oy-i0UTHKwL9QK3oRkSti`g$m zr!Jlq3-J$h=V)@@b9r5$C^lk%oNWzi$JK|+sclX zyIh*`NVR}&_S54ye({VPx@u;V4uR@zVO&<6NFGAn+iKz=d%j?&v-A75%;zuF>6R79 zb59UEj=A}VD-@&-cYNOFwSQJ>4OTJn^$}!juKQ{RQ5TkDrz-I7K)nU!K8_^1*GOkXa!X~Tk zHapOjIMuC4``U%jbo9BBZ!mWa1&YF*&kp;05@f32A>cQ`T=RH+H^ZQw>Ll{O=le6e;fno1HIA|d8GLy^~GWN~A4CWBRVVH<6i>0+_XbTw_Fv4jG)!~9;$0{4H+T=vFL+aC-u zjTZkAO|N#iSNdK5rc!NlGHL(YFk$~D7LN4$GYU5m(<50PwnI7Mblkvc=7s#N=O|ML zIxp*9TJVg0mt+iB3!6!=p_RAME^XfRc^}X`y%VwkgFpu;W-B~*+n2Q?GUXK$HUOeJ zpWU6~?3aAQ7wvv504fZv?2ZBF;{H;eqA^jPB_Gyz*Y*}hWn(-m$02*D-FdSYvq*2# z$8xD|6XVU7=ZLq0eY!C(V98nUdA_EPCEtJ#jUHTpH-F$&lPK?E|MAU7RGZL2q`hm1<6e0W~S7^3*UJO*w89> zS*lhh700~d)gm5eZ4eD1rdobI5U-dfiW^;vXNpm!6b%%ZSMgHw)pPY8* z$CDcezh_#tnb80wo(vCG|5Gv?ow}*hg!eOFlXo&P)KCAC+d!@XE$MjgZn>%8ZSe)J z%_|&7KR=c!SwFtRY}X>!!|8YX+ZpZ`obDigO$d|UVRAio zfQZRoOycZa(paZI69minx&_nvxVw)}s>d6`P&%T4sA@*8YmE-trhU99zEf1pd)~^M^d5;mp2L$5Qj0U}uY}6M%4M5& zYRL0Q{$BI`brxP=dLJDOAz9@rOblu@S#9f7r)h7T{??V0=Q!OYq1YPu2NiWzyaE{Y zmPOHCLs6yHB)|dTHm9@z^M@7Ueyc_lmg?cDaaQ8f3Z0ja9+L?4d+?0cq@E4BWwJO;52^%JbGg+P1mG~?-Q zDhYP-p`KOkn-ZKozWJ=ZUsQ0w^Rjl=JZ#TXZkCBW47F1%=WUI2IJpwD^vKNyjW0<| zn1?5rras*y=i!GXMg*hky>vnKZw?tc_bmrSIECJhVY<`XlUIe-)14aGylHY!~+gfp6@SNR|~x zKhflC$)Izko_8H)Mhl;XQ{h}&C(*y;Q$)2tiYS@isG;_)e`N}^t?()a$dKv&yr&H~ z7Q1n_P;csbU?nphzWuuSRD05%A3320oL$5Ix};nAon3PH?{q&VLJi^x0oJ2@?_nFb z>f89Ys>771RZV#@1p(w&yO7-;OMyU(6Cv`tWAv=RA^k?-T6CXWdPGh-){mdRwD7On zbb`*S>q7VJ#6ITQOoX8;Pk0 zS_N#v5cx4bvSJ1kgx2Knd5({#(4A3*_FnJbb!moxarxX@)0I4(ejFh+(5;4iFE6Ize}u z=F?v*B1cJoXyR4XCqIuH9NH{nx-(5LFL!-%7j=ViFfAR+H1A7bO@dklNg)Tw1+ z(vWveL(+xa~+T6xsuFB_Rsbgf7>EFF`{+00Yy5aOGk(9biTplaLQQ_P^r5NaeAm(?MyZ=1Zh4w0yn`fx1a#kN);%W5b%kGUK`8FwgKsc1JjbO+ZQ4sK z8aH`1+T2S1c6%&sC4eYup(b1@58h7(wj}KdFLqETE1WP-GwHI57rYYyr zSFVy6CiK7L3|Iea>zo7+72U-b9&Msihes1mMh^FIuQ3%wM~fEysfyH!Vy(^c@FMGk`WW z>NCHV*0b*oQ)zCG3xAN+d8NlPR;$`k@87u1^dPipky(cZWbrpt^ZYxtQ{ky=4D<&M z_88H`&Y1ItIsa8$qvftyAZ$X$Qyl#`&f>z9@f+lcGpjK1*4(>J+eHWDk>X4vhFqv| zO!YSwhY&u#(ppyFEIcz_@K^ki4`fzzvcE54!lmF1&DLX;dL>37cG9W#f!TYgIp$O9hE{+h-_5w`aB>GncnOKrnv93% z85QQVGDP?St4XK;?7%CgAS zl`gDZ3V`u^RP%ATng;jmd_akF?c1s*AK($2G~lG?K4ergK?WVt`Yfcl2uM9vbO(ts zc(I&3-xo`d>jwQy5?zkl^|@S+T6{jeU8^?LRY#WWdQ(K5|10~vBaUli@}r;q(5-HG zC|mfQ-OFF3jMw|R2(jG_e-ud(Wz8(Y0cD}X^TH9TcHOaa3f@K=hKXiZX9a-lewBE; z6Rj2?)C5LSHkHZoHOi+fi^-_xSA5vh&5RHz%H~q@X1Mn=g@`G!{F&s&?w4En%;G*p z7nz7*8nW4(t+%H6p0`Wo`ka)z*_rZ;qXYerBd7^0SI>mbLpA`=Q3_+5PIb}*-46>O zsKbUUTvY=tdBit|@TKGY!o3p!ID!qB@se*D%&94WmoBhy6K1QpJhPMbE}!ie@>1-J z_=)DFz>*zyV(j48C4n}o$S#yP zoeZwAI25W|@~JV#-dC6Y4`sbizt4%2u(oLyk0dk_=>M?Ue`lunE3Qc%)d}?+f=>5$ z6eTd`U7*XL){Un0YwQbZPWZ9==q9UVm32rLW{-t3NVD;*D8l5Or}($4LUr!5Q@N2M z2X-!Po-GL%|SW)ksa`wP~Qcf~%+ z7muT()I*`tg_F6WlXkVcFMJNVw(H@oUROXG1&L=^`al_wAJziQ{JMQT-yswxx>2n9 z-7UjlkEWp32hQE2H@$*TcF9L_UvQu=Xq_5_xLdSA4kMZ}7H@eOkME%dP$X=?l}6xGr_piOiAit`B=z9d1)LLx^liki)PVJ3TG=rQe#5^1@AjXeJF}Oc0GGNy5^d5*0@VowU<jcy{3B_-r+Lo>z?m(XI9prqZ!Y42^7Fh_h&fWBgd!UnQs4z;7u7yCzJ;ES z=wn+Ry2d9F=-Xe9ec8gTc$ar>A?7(j_JlXc(4b8j)U|ZsgI33Gd*Rx21G=SQ8Gr36 zBy$WY*#J!z`LjGKb-&wn14$0qTG1KjuvDg3Z1>7y@|zl$&_4tVvS4;EC{iv6T3-ic z_Zsay@EDwB?pk3X*nG_Ow_o=--_}3+T*0N{dj$zjS%!o^EQb`A==8cUU!~`i66ppQ zJ_r_aCvVvp_Jf%Fp-5kGst(T+bd~JV`2BJhmIf%1GQ==LoT!p_6R34%cWiRah8KJU z!S(5!r#l(I5qUB2Rol-B3pkZrc6k##`}1c_k7LYHTl@Ezr%=J^Lx{)VGkD$tzVRJ^0zjFZ1vtv*JJq1`j%%}gCiT?TSR5(wW{)kNp5kx@=Zd0 z8@1xu_;&l0O^Ys?*tQp9ZrU8)QtW7d3GU3-GLBd0Zr1L6Klh>RfzIk;%d*`4#RAhI zZsa#9G0%IpdYzt+MeX8gjh(k_9pV@PXmxqzm06609b|nrMr9bqmg3BuSf#vQZ0Nq4 zr}s`m^H;0Nr{8jto}k#xp^Y>DdUH=*e$gcCs5Zip6dEiJ*)Htbf*Pmea5;JWZ2lbU zL&i7tolf+f^PXqNdmDzy8KMR#V&?G1#NH(_BZSM|M_Mu&XKJ6+m=Ro}+*^FrHQe*66!VVFA&F8_|==6$sx}gLKCYM<0(Fagq|t0+*G`qr3@`8jhv- znNa4FFuv!xuiFCirtO2;vvOBZNXV|&Y%1} z&Aa1{C)v`tIc=0}`nat)Rd3yIe^Hy}K1h+EGo$`YHt+0zT{K-4wsWbCz2u5vfLUT2 zx;S2rGzgFkvl_WHKh?fiee4k5|5d0C^(Fw3;51Sc?W=xsgW(ADGK+|B_Ia!QX1_|Q zHfJiARoY-0Cw&S(LzdJ1B?{iF_nne<H6ZGXG5#}gxA%#6a>v3!JMVD;?xFry)M|~%+bCo zf*mLQBe`QS)!TJlww{NmUdM8jM}V+N3k@w`Ln(afOlIz}*Cp>Vv&gk1x1I<2d{|ZJ zKg?m)%Ry#5?=am$(Y$!qotrF4@3#}6JL0~0lATjRM{4gL{1%wSF?^;S?+q6%)^uI7 zG1#0E$$HzO-R+$=6!U20=eI@Ca0v%E)~HyvUhQF7xwm}6!2M};{rT;{}=_$-!XagxlXv&UlL4_?sf(-S?Q5Bl(Q@)ef)2hoXk$t07Qtz+t2)8LUW zZf4IdycmKayYyb==bF-U>{9*q3voE~-M1w_3&Pa#3q2AQWF?je{Fi_RFK5d@mG$ee zjxh&?FRq#q$y!(x6wV;OFNHKMmh=)#liO7Ksr+nN;;WUNo6<=g^J|Y+b-R&G4UcJo zHeY=|8C(2hs^KNLs4_$LLi<*y{BG>w*-sr7b-{$P>d+~Z zt$6IWWtcQZgR6_b%BJs}$R5ophW34F%`jKf(@N$rTx}@>AN!d(?yis4(A4~-yDc3w zEW8>gWGF_?SD(|2A9)$3ZM`eu8E_{J%kprp9*LL=SH^&5)RN$ETu$Is0xj)$-)jEU zQk%!=qu$p{lSDe2Sa3PKOYU~`l6v2tO%ps^pw*Y|ms~D-^$riO|KbA+^;bNeBp;mg zTFX_PS6{wXfI*fD8%K)Dm@y1#qa=*$!Jl`FDsq<$4nGKLI&)5vurz0#KPpq)1&4~7 zA&@UPiJ(IQK48^uWw_W3>0_SzEfevGmj~K-WC`-PuqsQ#%&&F^!{^zE)oBCtIWk5Z z$m`=eF(wYeE=JcZAnzUsdMn0pyB5y8vHbW@OL5wt!sn`!qQv#`?rc~t@s)ZBw{|SGq@~$T>%#>z z{f^Ocme-{gzw4yKuwZgQS63nht&`YHU*D zZE{$dnQ~bTWrNG&x-|C548ak1xtzt2U&J-T-_zMkAE|TW;IcT^ zxyX=Y&xNLcaY`*DrYSY7e*Usmn5>$+2;(&-_;Yj` z&ehV-Hg(XXoUbuIhTR``V){RVCd3YMg2}NLEKT}Hq_r2|U}$vmi%Htd6mOPs%M6?0 z`~&$5UavGG5F_f%x@TPtuCNItlhPcn|Tm`*6W;H0d)JZ!O-oc@wm6I5m+cUAjS1*6IkVIQ_ATZCO z#v9DQcbR8FQZ2~Zs#bA+m830By<)zkz%9_05q^%Kv1~stady0*!^yRyMGdlu5yq_F zHk1(%(C$vfbucx5prK{`QIx?F@`^C?*#s=h*oh1>g;Vk_CXKf)>kGdvHT%NF61VF# zSLA4`B^W)TEZ)7Pi@D)FAJw{RLR~WSKFfv$l(>hgHd?RsaV5#^Z_Hzl_l}ip6BOL^ z`9@3`ykHzp#8?VBAIe3iqn(H;ot(TobO2e=k4i&_|MYqM<3 z>nwf^Xw6x6+MpEm&eN#<=yw9H>T`$v+A|~A@^+&!_`*HMnB+9AJ?e0h>hN(#;nqjI zBV=(_n|pp5wz=RsD8|eSBz@{+v0G1)@~MZ`4;><{Bya*gph6%Mxe2Ed50WvPi?Aqf zp2Bzldwx6C6@T$;_ezXdLn?|RA=_oi&Ah2?O>4R*puq!jmHz&^W9I1)p5+Db78AMfm1|S^g5cfndWXN z;euh?X7aCw2s%YsC1)z$txi)x;N3!xV@^ux4RU7FR9B zbqB5Q(LBBCAG~+IQ&1D50pqf!V8NkYxV3zF*(bDmk|5vx#QB1o$}^Qz@t5ijC+%H> zU(NlkFRNgelqym z_4eX6@>1u}<>vqr1E{J|!0T#uMkK>m%; z>C8RW;lh)7!F~eIm{_;ec%%Eq_a( zj=_`8r>y6|4=p~xGdP+mEpjwXU+&N1oWC6yOk)4Wv}=qzbj(3Y;d$&w_Qs(r1dEG; z7hVz z40GfmrYn9Hzfr*gJl|U5p-(STwzFIRi#4ofrTw%!aTwYdGq?=$-N+~o>h$fRqaI6UNuyp$)fe{W zZZVBg_9i>2LG8#B?C2Pb)iZGC&Kwq7)+5LKw8)Zd5cwG;;m<`8b|ntKJ}09DiDRM* zhrHt~4_lgfBNLvk(V>RM;KgKg6Gy=3Z`)E-(8}Tr75oA(29rL?MDzT$i$g^1DDIds z)o>kJk6Nd5t`^_c=qo8L^0NZ!em*zn${?wAscv^4ODkFgV{Ou{kB7)5@1_*`;#^!w z(<{`Cy&&sWGzx-9m!n_~wFx#4)$|Xa3E6qQ1V<`1<*kIJrm>5W$o0H;Oh4QvraHah z)|EkBCO@t0t}>(6DRDYg(K3t+JFK+a%bggL-{O!WtZRG&e?u4)E4=v@jtYHmrM8p8GhAt*oFS)580;Nkk@@6)u$$ zLkF<@%m9s5thaDmHGy(@VY|MyG#d<=#pFgDdaTVVV@%nZ3cuVsjwGI29+l#LKjWwv zahbX*71t`3BsgBNH?+wvXu^v_ihxd>@Vo@)t468zB*tXa0=Y~|I0y<%|HPQYVGLHE zBxUxCo(D5-F#L~KyCWE}Wo3s&UUT(Jx6`gcaNORiXU)>}`gGH|Yb2bh;l&VVT&=dX zN5M1Z)IkX8FJXC8bab&64K#sIu&?UaIVp5M*prxef71>4kJgY)lG4LiyK`RhrYWTu zU5rOOi(@&48#YhD$SrDad-}CV{PO6K2n;bFrMr!ZI1Vd1s?*C6lY+2@&*Y;ZiHntx z_XVDaWc!~&mQoaC8m;sDb*26zV$-6GneMJ;pp=_ae^K!4Am?4re{?LAa&T3oTcM@! zNv*U67kX&}A~^UxMkHL8GIaSS?#g~VH8hRWsxslhs&P|xd@W@*^n3FH+=@qUUIk?) zwDBl}m3`Pno21=&JY9NktRKJLXmB}t9FPzrp|Eyv?kyS2!L&O$J^FkRnGa?%X}@Q8 z9^pFpcgo6@i04p`S(d4(w<-&J!qDh+n2oLO7Mm2=YCD5 zP$6&ilRsZJUv)5wt^Qpx+*0Yw!<0Qqlw|zzL*#O`@mpTO$@tS5Dm!5c+Cv$1SRrR+ z=^Xb7gUsyzM|1XH=_x2)q()$T#NP0iPj_)Sm6KD$j|C8l>98Vty~Sd~cQ|Rwxl&n$ zffl-+_up}wG~(AHd!?+=75WE{htM!3RWvH{W;q*F^1HOC17C+Z^g(X4UI&kmy-+kF zyS8hO=R+%xLf~E(C4mWBAl@3Wq5iCHtIEz*DI01LWo8v0pHk<0o?Cw9s; z9ht6SVhD<*AH^Zas-EPnuzb=8;zvs$K_uNVT63X^Gm3^sMmcd~$1>omqvD)4`axd$Q zYkSWuB&BKy%+;TLXILt>QB$5}<64?4Nd^OJIz?Cl|2#k=78JrS{*;>%uau#mEo*rC znVL?;`L#n{YWVh!S!Up~W3B9oQNBqBtSxT`aoYqXM5EkDC%pg|ok8K>b|)<;Q6wtV zd`8T0b=_ERkx$rIGD=3Lc{|I4ni2onhWp58V{Auml14#I2DQYM*PSehRv6mpMZ9NV z6X_H6sSp(fpI{aezK!(@)m-~05sP}hjMmRc=kG!OWr~XsJ$lYs0~fpK-J2G&<#N?8 z`NdEKxa)Up-v3dr{#Td$A2BPTA1U$~niY_F2V_a9=CM0_5qs+H< zYW3mhG^L;A>4!LZVC!qyjh;sp2|2`I)PIlb=->(6zq|l|Pp}hx@g|0v{m4Ity8Bj* zGrQ*h^obYKb|$pf`%7-30#hh2e|DV`$JjNYR{m)>(~;xHbLwvTFx(d(&kSbytVK4i zsA6H~B>@lASq_B-^!V|hv+Kx{_}}%)zl4s8RDP;V1(_XQ>jl4`Y`|5N(#RWEW?8&* z{9J$SH~)?2f8QWW_!?`&kfAvT{^7eQD*?j*x&8Idr9U|a(1HL<0Axp&8N9#Z`TuI= z0OsR!K!;Nqjp-r%yR{1F;}{XZwcy!EyP@Wvo(4PJ*KQKKF??T-2O84#hSh>DG{ftS zE7tb!g`d7~_OVdF&W~kn&1n^Ni088T!mmi`PsR#7PQce^@=fv9em2JI&X^oJQyi$* znEkC*2bi292*BkgP%n(a_Z$hd_!Yr#8jw9gW>|ms_8P zPo=-xKlp7tDWTk=GpEn^1UV)g#Hx zQ}1uU0lm*Fdcsj_w0o|0#IdEw|1;Pxo$haA;NLSG_9@QDi1q#T)MfNlPVK1`+zW`m z3mZ`Gc?*L(j(s`uzUm!cRbfeHLSN$B%s-7$_NNXB(x9F$T~gfWwT>klz^+f;C;8u* z@c$MW(sBYVmi4;o;2T~rHxl9b%TeIJbK>7`c;$dN44n!zmjdkm!zFa;#_6mjZ`-}U zUG|?pZG*5sr8pOm%``N3>2<~m4p(>f-&6fA2r_6e*ABTPI z$)jf4?$CW+VO-t2nn}$Vv~e0VBk=n>Y%s#iVw`#2UraMrhT+loGuAE`KfWWroKRJo z9o~Q7^}MPm(QnoUQn{GLf{mHVcc<6e*{Bk2>{Gjrc#z~@)QCQEyLuaTO1quOzlO2} z+*G)1mKZ!P_xsKp3f%+Od!h#>idDZYOq&cO^{sV>D>>EH3;v_O{YWWe4p@fOziP}{ z>v~;Gj(xY#I1XRQm_k6^FCY0sZu8>oQ( znl8`2&q5&hk>bk|xQ8J&s1!&h=&rUklt~XXBysGsoT+>KTY@zsK)}V`%%u7EDFuzq z(+pR2ka{_9lLd)q&Np(oGjC=1+IY2-7p*-UZPXdmN0;qM4X~v$NCjM#$z50cO1M&8 zrp6b{57TTUq7LO6yteF=8pM-IF_h9cWC3Y9v)AoqqVU5>wEcP{_v=6uyp3??mWpMF zD{(fjL%|)uvp-QYA^S)8fSnWH&(fnna-L71zsdqg5@Jx9n^<--RT`bG{6_r!Fk*JC zMsp=kyKt0x`Hz}tfIC;ElL&h^d0uZOpZ3$2&$v~ev_9S|fi%>s-pke>HtdZ#?R_n8 ziL+_BmI6+UA8MT@)iwJ71#@zlz6#?DUG3&^clRapNG91YWprzH!P4vLHZA7Ov6MR< z-%heT4r8lK2DEGVo%ds=^*t2unRH)VpKT{|Sf^)x zCV+z1m|O)o*aAwaDz95-a{%yOa2!`q`KrOFgArY7n(d|W#1wfFQ=RXOia(`=MyaJS za6T-)$SIuG3p1BBhVB0LKnDKAJ9`E~nlU-nzrEQjH(CD?=}g4qOVI*hZoR7_<#Ut) z#0#eIE)^%U*NxH6Z3NR8u3+^tT`l*^{g=nK-K<3HALP^40mU9eDz{D6g7dspO(;-n z@2#_2e?MKOcbQUSv%F-(cg5><ebl-pI-bh7=UQ~maFdTUIz ztC=W0Up7+7Z)f|o$ftAtM0wZxaPxH$_q6i6#k67s>l0P@7DUDu1atc3n%vG6)LoPd zGNsIQI$Y4w_dMz5(92>m^2d_}kq2einC-<%lgr|0r+o-~pH@6B-aP&zG=nEizBx%k z;P5!?4j9UtadJ$tPw-?Atq`E*N}?a?ygh7GN@6y!9&o?deYWfc$!yER4mvvmNND(A zgpNHFVP>w2pu1$>24j$w6a_Vq@jF-R zTh&l*3`Y>L@1OX|U<_-87=sp#dh?Jfna=tAEfAyV(RvQnqlIgX$*!i$4VJg$z6HMY z@xD8e_JcyS!w@5xBNlY8#uE|WlT7<@V$k4N45UKcC?6cQ2C=F&fr@LR&CY-{h1dIX zr#i(PgNNQeGfXi?37sZ}PygKZHiY~bJPN!3^$8mgeM3w@pG%m5ku4&`>FQxJwUQYC z=<>lU!cBrJk!*%-P<_eF20=fm_AP*MKBWV%Z&g7p83squ!5SU>K7`N*U{bPJP?)ju zy%bOf*(XhCkiv@Y7?$o8hD_{bax}(;^xOjzv^sA}?TTR#eW24h>0tF9l7L|?9Cxb_K>z8k1h=le$!$QRd>H4QKvY=||e zit_n)%UQNH{mymFB^#^xn(x`i3|&>OX!@m~+p_vC;&dAHJ&}bjI|w=qA@~8{vv)9c z2(`Z(BIv$zU(G%i(Wx->!@H`WsF?j`iaJE0yKQ(p<8d*mSxOjk-&wQz9pMcoxyx}{ zc+GMR^us@QO&~MS!XFn4td4L8H)vsvuWUjyR|3-QSwwlTTYDa&k;2J_g7^$Bxqz1+ z?0r{f_0g!mEweyZaL{~?5c$V@KRmX%S}>C^RApPp#BSWkBHEEIHMt8IU5v%gx5nj2 zpTs)k3=shfiCSyN4dIAR*oCqK&rUHX%7%NvHXu`i1c^Dw7Yy1`?&L*Mq7QkAq@E?< zR)tP+FkYxMg8EWJ%Sb%&N7^_ z&q(eaD~`MhILP=FK}RRZY;C_4BWjXeiNyZs+IxYXqgOFvlG4NX(8;$IKQ*O@tEvf@ zJ$YPj#90Yr|EhaD%YMWKI~nJ{+1L|9%CZ58P}WGWX9SN5ynKTYP)O9YboWTuhwYD! zHs5?U#1Fsp770Sa=V+$9AF2L9Q!!Wgm?1!uTmXlvWc4<5L@OJsgQp$&kxESzEu6a= zD-SAwq=S}9pBj!`w*&?K3@uYixFgzT$Emw@3rz8DaD5@_Dy6g| zKR@s~(k!^tpmoW64U?S3E1(B)w;i^N8!UYtggC`!(m#W!;zLB9i!~Jp`jTHm zJ~#!26|RG7?&6WA3v3V8WTRS|YjtvV5WG(-t7^PbW& zoi(=w_l7(k4+SK@l;B(zyS^E?Qv!R?yvNl&s$0kKAoJ@XLSSrjf(mk5_OwGi11V7z zwbP8&j%1hsKO$h(T~G3nhhoKq=qIoXnu-TgHMFl|qfG7N!!8;yi zY=|IAW)#DN&lB9y+(l`5GmVY3#S^p=#iFe%Z5!#E67&wrhQ|_fO;CbC*G8FQUV5G< ziqH@S!4ET+5X=QW6I+qEB~*i=ej%_AkOp04ecgNgf*lZYO4GS*Y65CLF`h$j&S0K< z08*eD@=MGhWo2E=)x{u?7Rzron+#$YDT)~majz}LDPP!F?aoe{59pXZBR8O=O_Ec5 zqxTZaGyri6jPClmZD89Um8rrw@CXkayaJq|G5!LtE2^94?mnZe>p+O$PXG zd2qKopu62uR<{958;gmnOgm*2B?Vyz{0W}tY9K+0OwgrW76!S%OcZHY11K@pWdzdH z!RtM(=Q4XHs6jNPfDmAYP|0@gfq`&^Ay(oqDiSc#Y&uNNk9kt$aJZhP*fucg+hJq6gu|$&Y zUV*8@xX~}E!!OmT9YWDHqi~}9A<6cb#;GQ*WF&ld9Ds*Nb!gN)EOa}F0^Y%_2_6|5 z%H*GKxC*#$1BS`&9hZM##y=1Ez3NZf&Ppo&5ha`!+0XH12PBZ|2%u3IPP7ehL1^M# z2@OIVmI<ny!3QE=Mw2O3B@HY$3umQmlZKdjs>1O|ZEo76X z95B}2;_93$jPNA^5kaJ5FCk$G@(OW2{WZhrz!7KT6*Slr@T8b%AryJw{tG$#-=5M| z{4B<~Xh5~m%9@b?sSW^N)Xbg-iD@&9n8efC-XOPmlsO;F`8P!aI@iDDynd=mzFFpl zS#D+4qnXD9tfkfjFVp$v-j`X&ME=i;@&Cp?MaZdFHgdcK&s?1DIaoh`RFUC7i{^mD z{Qa?>prREHEFkSpYuoPsFs%qG9;eYv`;hnh3|$0<8h3ms;hW(&L#!Ad%KJbm(|&S0 z;ok#Jl&b&~BUdLL*Nst{`9h`E17CCN4z0V=>|b6p ze~X9AM*!A{yE%5tbV;Q@K;sEpfd5CxfC&1%rvv~Sq9~OTA!`Hbtr_Upk5ae8QuI#u_!k8y_`e)5zl7m}gvm*M@&l zZh^*bDStjHYIKfE;S(Gq_^&tR{|3i@no#!C1p2p1qIn+Nq1RTSL9Wii@FeTce;;69 zI1vC|smem!O?>X;9!?lv;?d^)hw(55^l_47uspw~ZDU=!X_#Dj^?L#LefHl4Lj)VA zx7B92jP}rbX}^KjP3$y#Qay@-rwHme8$VR!WOY*lCiXS9!)!a1PPY>Z?T76d`rkgh z9Azu<8(I>-yYBANWlh(OxP!LtL*|z7vd%o>bZoibz>X{D*er;UBPS&rf;y+)-t*~0 z84Q@g)FjfL&}Q1d&6L0Xl!1CezE&tJQ2#XG`ko*d@ z;9%@m+C*o+TO=pE)T5U3*B%25B4q+%G^*Z*<_j9`^Za3`w*8`k+Ga4&;j8dzO<+(P9zl19l} zDnRzxSFvczR6j~_?s#+l%l>lKR1OGwo{K>8YkP}q`{Ks-53To?I@iAnv;EIf+Ux=| z0pi-fK--_cFRaEQ(<-ExZX9MWeMZD2PcR=Z=<`;1o2(ji+4A^sYv=&zP2(3E0W-Ny zx)H<>njY~r&q|Dk?SzBHMooQ>1I|V=dDHi+y7mpiGeR}24qNiq01VB(t5}w>{X=N; zwX`^~*UhiO05R=Q>}Ms09uL>sa-02$R*V_aMdH7$`GhC}XOhv`jHI}9>jv2f)^;nU zECH=2luoe2A65K0Wp(>J61g@!3NF&izWP1@y`J@Ss$H;`OKaI&z-L=lsWk517~(%l z5DP>x@!k}u`vIJ{@fR#y1u+O&D0!lhL+YOFp9Yj6V{*(2szXG-U1Xz0vIxdwEUkAZ ziv5pYyShx4>FMw}?Y{5+icZ4S3jp~Wz`-3IMIDuZDS_8vt2dH+iBKRo#$y)%TPt~s zUa5bf1#thQkCR_!?Mn;*`ViGgf0IyTME09+zjj;X$D=v}LF(7jl%=?<5& z5uhpJlDD6)u~I41nQ8Iz5S`fuj9i{z z*P7NRw-<6jcNqYy7t@U9A!|4Q{A6T--i9YvS;55Q2?_QN+4VSTrUL?;2rzScYv3^O6$iLz?;OBJjmI!( z+q*8rJ*YYPKwSkd#04opLfC5{;Wp;n z5#Y;tAlx5K#{XgXB{-h?r7@tVV6fPyC@{()eMi;_1Os*MA`Bil3sdMyq{ecVnvBn}!k7?Dh!jjjguVQ39&`nWIhlac z$9LncyX&)3L#;a7)lbK;Mu@i+p4X=xQ&&0?~G816A2rc}JS1V->%QPedu32xU&(S@_y^wf8C7Sl|v zTDPIfL(xJvG9%J=kj@ahp=sMd_%QHWxukvH5}(bq7<;B~6aj0C?SV3J!lJF+<# zw{;@JC;&XB%`}U$N*FXa%4N!jHj-WfDN5S*0JM2h9@|f)2ydQGP_~Fl1c;)Y6^ic} zvOtA!vVh&hQclqK@|bt#O_KFKG^bOpv{RNCwSno&o5nD*d|O1611hksLHjFK!621$ z=)MQ4JJIvbo8wObF^ERCfEre`lCFu&XNllvS1`C#YHnKFbeOYzXQI z!)N>$$bIZbM=110I4wud7T#t*&xaJB;jQ8J{Xwokf~Kp7AsjT;1=WjOA@G1Q6({~X z*BEpnwk~@=P0FSN+l5-2W%30zV1iq^?M;;)@FKoJ6?-Ki#sZ~U(d`C1m6MeEj<7+Y z6}>w83`IYVCwhgK=+!4l?H+^V--a<6dE=U8xIiI&&bALIL@YgjA8ZIGO2>}C{9-v~ zhHQ{sO+F_tDQBY(g&rFJ!P2H_^?p#8Rw+tsz5 zo|(M!1{7C;zD#LL)k@OEc_;@UhA4*Bv<$Kixzpbv0CR$4 z#9~h2yGEQ@BZa7R$GBbNsk*SYYzSadZDz`t7p?)AY$AA?a_*ebGk@T1#OierR~y_? zXiK5-j-Aw_=UJ!!n`uZ5>Y`GHc#fC!{48(K3{w+IWi-++FoE6Jl(b;a;(KUN|DslT-F+vDSwVVBBG+^>-A&g; zOM#>Iwh4E|0 ze3$Vh&x`t+A1+GyNxmk7_yzQ8#?4{#wHLOv&f73i|yfq?kXphqeC@V3>9fbRC!szVBOAfc+hI?CSm zzAZ{uAMz%-`%NzC$Da6fzF-l12KNc@qBeLsNYQ6dc8wEEun<4*IHPQ#w8W$iIx61C z#yvI*Sh)l$dfLO^AMS6%k7n0B46dE--5%M;PDiSM3h*44bOhn5rotI=WhqeF)))-u zO#5J#4(c2+brnLV5LyWPXa<`nB~>-z^d?FaItE0M69k%|gc^rx0XwbTR-=V+3<(-dN z5l*AJBM3kcIqvNJtXd!+`y_6DV~|&h(;yfTck>AR7E1O;^}39{6t zvFwB_h85^PW=(G`v)4^;4=uCLGLMEbjy$=9NY;I!5vvpsVgo>w$_P{mqFUNkQ->d0 zAup{W-F4W<+4B;szuvdDE*}m$YN~4rF6!xB9Myg~{EiGXEr$PEA&VoZ?wH zciHnM(t{NsL|YVcwan)8S!;=hbs^p%rh_^`+a%%wSYvA)Y7KQEk%8Jdc71f@u^Z72 z;dMdM?;SU1VhVN3euD5TBiwdC_}rE=E8H}5tM$oD2Oy>Fe})zKgdeGwT|rYUnyQT& z%E-Fj`~K$ID8D|${1yhZM)B1$&NL{z>IHPCEg~9W1#?y2yRd&eT}Yd^^e5$Ej!^U4 z#m}E$LjQTezdoVGdZ8x2cY+F{^_%p@0zv=&g#<@i0FQlx`-gvn{NP})$FZTzYyTeO z|3>}k0vKek-?a1J4HJQZ4mC&it=55)5c&P<=>k8nkmMi!EkWt$+f@xGGROG$QTpEi zKV2Y_8}7x$!BNM(>^VL;HRb$zh}>hJwbpDjS5a0j6lks^Gt5(kzY!<^o((zXT#Nwh zkA>xj%i5;sWJa+TlR6;DTLhAeM8-brZ$|)4$>pi+&9>zNWCDjzR*qkbi~9(l@2{kG ze6MiY)0m!`+Oh_`Y-)ijeT7G@aQz3F*2>D!XPfB(2h76-y8W-+fGYpdVKYR3IBS^= zYi9_qZn)S7;ALcKvI2tq{q;?}msBhlGePJi*kT7W%_al*kRK#A8@L*N8SB@Lz&fNT zE=pnqdR+&4w7l`JaTB;Vb zGdTEpcQjN95Lq_rFur{K>hN01NklQF3Zeg^WgxBByF%4in}9!*gxlKD;ASj&;dTik z1leTvnbq?+_M%W5V2hVM-L_Iq7l4E1 z7P;F-EXMp37pU>bbDN*6=2tLMh{!aJFH7`{ziV9hfwdrq&60r2xB~a4eNjf|hECA( z-4^%Zq^7~om-pEZ=Y=g%d0Fd6Vf1CT2Dfw5eCqGROgHiStgv1y&x8gN5sE zZrmv{8a#(Gc#DfT%s>?&$G8Xt+G&{Wlp~*;@$7}XXrVM*#_jt@h|lA8md}HmroR5+ z+O=Y`OxbXOqg~@z4bU0h00Uyjy7k`K1z>f!eBP&Lrj8+imN42S1uSdH-Fxq^hkY)s z2B)T`GRAVO0h1*KMI#4v@JbbsxMuj510|cES%Un96}RG);7(orn)k2hsTEAaqB9c*%}uqz9yb0!bbB733%*^bsZw&@&%SJ;7vx);lt2&%lzUy zr;97>@rD_qn+Hhi5kJqgflo6;;;K){du?}jcY(X*B(gbf{9P394`JJ1X7C<>wdwtI zD!XZr!qU5_AGoU~z=XLa@bl8cJU~qYyw6>PZ)b<^D403Y($nuzBhB>cm`}S|A6F?J z+C5?}evS8-`bE)`%@`JDI;V*z@Bz%W&VmdfENAQbP5hql*dZ3as%YT{*H_K1E&S_* zdYqBE1KKJoYeMHanAd;}sM>Rw#YiZ!JAkTG*B*e_D97A9(Y!5qWH%u?kjy-M4KL+F z@8B|g1SBO@^URz4@$HRE7fdeg@B|wP8-9r7J5Sa!+(0@>k+m(ahP2s@&fFFybhDE& z7LL$QM=|Q^al_w1XOd4A*SAK>7C5gu&%bw-8H+(4)ER_+HjSJ8tK{n$1RifAumTz9 zd0n~p#aHW*PohE?Hfj%htq%jOq9nZb`TURthsDO_d+XNdAHCwm|0x%_psnB<)8fs zez%Go%!1#=x>V2xoz7{Iv~Ki+OF$l~)1R@m~_S!p&yA?#Q zG&IqQRSVv3^q z9}z_BM^?KnhO_-`%8~i*EcrM>-zM?EIcOWO>u0{O7{?c*0M%_Dz`+ELoa_Lm<5g`p z02Q4@y70xlEogW?|E*Kn@{wRyeAh9mJ$*7>k+09=rK-W{k3^ObuMD~@Ne*&A`VMLI zxlZ;u**@Mgcx<>mdVH{1{nd>~=C(7E(-JA;L9)(MZRhsm zM1b#nL|mNXG1P@)xPBzcgogav#F@a++7A}>UH2gJ)67#+pSu$wPXUHj^CQ)xHh)uM z^AEdS%YgY_OLG(ijiHF9&!)O$c8o@7VTb>iL9(gKOo#n0&KsIpN|ARH_mSb4fBrF6 zc=vgP5b^~{2M)qAOD5VqPS$AkH+G`!jBPpai$Zg?mhGI`$e&CQM@gVL&ouz*jDbm5ak}7u_DTD?=nnotA1jvHJ2ATrwxj_!% zd>G)_%-dJ)Xe|zCL&(F{T@GbBWwG)-!)njRaw(*J5-k$hq9}xymU~kBMKcWFT`{psOoJjoL zXG0bh@=nBPb=>B`@TI;MSvQGXhD;Gi@rSy0`}sGFI=XW#6Pdcx3y2xD%F)tC{80h5 ztWH8%juYWKs8kHw*&bjASj0osx!Gzbqsh$D9*+WeO((^DX`xfBN5hr&ZWgrtc0`Kv zOi^;er=8Vn^Rd*%i+<9OQpgyCdo@_WSNu+FVy(RmHryyp0P4w^;pW^GY9wc)0NC2^ zq#vO^@Td@K4#QppjNo%)Tuj-BbbejS1&|urDEFLz4ABG5lHuKL>!Zg1>aoRaqVzdL5sjno&jzLFX%h?j)_DUREjn35h=k&wv(5XtkN zm`Gl!^|BAw*^jfyWLUnzl$oeOxJC(nKVUl}%?OXDLW8weBnZhrJp$jgXCpKANkx23^gcuYPu-if80vd}{aW!MZ@~c+Ikl0VdcLfIEJ&d0S3L5^Im!r5an&U)Rr% zqKSOs?<{8nl(<`4-NPdQnC=nYC?;SfE?EYSNuGisP}1Z?#^i?w`D`01m_eS$scM=M zok2%Nb=Z-d#J-O=<&V4k;OzT-Q?G#JhG0H4In8NWLH-WAE3^wLW-Cxl(GiipQZVH{ zCN;sW`NUZ4YN|vhmjG;$OZ={Ww&4Z^`ZMAPLh(D%o8+!CU*Nf&V%XE-k(7u)a{$E`j7A_;@lfk?TRXv` z2ZrtPv-M_A)SQ?6M34PRafMjQGh|3uk}jr!be&hyOUkS3zW+k;USyFxqRz3-tTR@h z5Wd};udZ6Wc-fVF^oK-AAz9d{-DiC%&rbnLdZbna!Oq2)3lGs4E`&=2i$g9!Lk{wM zEdZ)hSFYn)@R_||WSf5@(iHAMCrj>EM3XYt-2DV{LgJ8l5lK9-SY*Dh>x>)Xy#8#1 zbt)$qB`&g161ONP)gZcJn$^xT#GH7CFuN?bA?$2{ zs%!`Btk{!kp6pd!P_ikZ7t|2lFsNUg1b$s>(EDnPw+9*qVI$qa*Y2?Mdn`T4n&g@2 zV1q^{M$UnYcy1xE-J^ue;?XSb447>JGSOsB_776K)?yez+kQM+pq z=mW4RtI$eFFxLKRfW`CESFmVWxt14pNkVvbZaW2Qj(BQDVI`50?Ji1iVdC}Z^g`vF z9+zJJfkW=luJz%t75`m-F~Q-M9k;QF7fj{i#-Ufj@ct`OTSIfL|7nw zNlrOVN#NYzChnbj!<&PIn?3>qZ2(hP?Y)xW%6J$)^eP7Du?3ld#sUf7t2I6K1od$T za#ViObmTO7tVoQfXg*d>TFmlmZJCj5sWv5?$PTh7E7g{*9VTfToHRgyS2O z<~Yldkf!;gH)hB8lrfWv&$xkms)D_z>Vwg@96O8GRG z3`H9WDp?!q#-HzJt==-LVbR1cRO#fLFflwv@nU-+)nUdoeG!*Y-vxI$gY}8whccRB zq_&<0)Ir49UclISH?AiGre`fcBOanYjU!<^HQZgugb{gcG|%e8m}eIp;JJV*T3e#-#PuXRwG<2e z-&9uWF|Xa^unkIbunAh^P7lSj1@>X!R>&MmbI1*;ErHAna?D?GxHy5Wnbdl_dIM6> zP^t)l$HvUK12$(Psta#%ICto#Y(O~vZhTQTa*_+C zTPJ&|3!1QErt3X8A^CW)W}mt8G&PH9w1upHVWQbjRbD-O9x z0%chR4}{rLrtD*UI}#QqMBDe@T_|ZGw}Ffs2CS?vYD}#XU+vkZ9@6=Of=SLZ$fYbz z$u8G^YN$r`Klw;#mg`JT`P1tQBZuawC-^*zh?L(Z8^67;b6Uji1*IbNTecvU@prb5 zpDo(>y74G27o^lk4#JZA`XIu;Q79aPo8_XM0_BvhkTR|7o&$7E-ra*jY@iQ%yEYNC zt(VDIQP?ZLq`@nc84Hx8=L+siHyP1k0&iZ@g`12{HNvNYN z;g-+?;>b%;53IKC!N~>6T%0J6tb;c(2vY?!Q0MPu-tpRx9m0$9qkC96C?AJN+REZ< zpBsllv*CFAwG0Us@<%#*InB=^FTRR!8204us3^v&zHt7<{Z)vM2Y}#KPB@TN4xh*z z3k|T>m0%PPTw%z9tQQs>h~~rL-rFI}>{E0~@A71zpb@|ur*P`fMZO7lgU10HG^>Jb z<9VPhrAJ^o%Q`1u*aurpu@UOz(A4j0`J(H3k0DoK@5%#IJV;zXS-k1s*ri!xn2|HC z>CnjwTe*z}X}0ps{A?ynB7}kvC9U-68fQsbzt?CPhFZLGFw@gWuLCboXCHk%6YH>4 zQ#L`EUx#yOgPi71+)l+)1)&293LiN*-tor}&srE5GphyX$~gFU+j)m{UHC2x@ktOK zSCg7DxWmY?oV%+Tx{X5?-C5De`^iEHcEcElYxh^!qu#l{wT#&Srws&uXspAuP1CPb zY0U(e`!+XZO`m?rGG#z#+t0Zgm7t7731vF6=dFlyW+wP(TJ6ibEYU!5;(%@Y`IF#I zBlOe)>{B`Sl|GqcRkR!u+wWd$EwZhBXduGCA^6c@5q9ay6z3MCVnT$_R z%&@XUX6=_-*DqABvgXY@zmJkgw;&jyr0Z;si&hTu>{F8FqRv&Xq|gNA^eD68C{Swr zVapeT!b`XV)!&_z=zFPJ#$tT0Om{Q=s0mp%)*!qWVtfxi!iWx@ACRzYyy_@PhXzQJ z*a2xlFyCHN6W++)M63R@C0otWEJ8NiLEIEKJ%`hrr*i($?+~<4%rMQUZ4l&b#=am3 zJqh>$#=!fmp(>+HE2lw*4x1wnNVa%ETP)#Nc1?9!)IqU_UD~-T#NhGde*x~Qx$pzd$H=G8H^6s*& z^xgxxJALtJ*v0>@2L3^j#0zgF&u%RYJQwhicE1N5;x!5^A+sE_=32!_>;FtrU8gBg zmfa#osA2Gx(+pS8L(WzhO}m~e;@Ra`u}|EGz!qjbLmIfaY(^b^hDt9L=lgZ&VOCHj z+o{=beVUc;8qCpG#t_PT6xIK3f~uGfLV-`xk&dxHN26y+JR%(NM{V>}eV-{XZ>Q5U zu%FYclYlh^B#VH$V=w=vuZK;-)K&ERoMTr6 z@Dl2#0$c&y4oI=@7?zaeITN#iY)%NMp|=ImPAI-_BgfCCqE*{Jo)uOr}g4 z(77G2m=)m8*Xzt7Yp|&O25FF{l=h%WSJ(=WCp>-?N;cemlC-TC5wm& zK_PU4*oS2fA3ti7v_58r9msqSXU?BA$QYiT-@%x6*R%o`2z}XPXe&410%M*ChSs$@nLou1jQe`NE_z( zd8y)~PUz5N6YIyY*3wVJm5$ki%#tnVI${4u3qV$F{P!OI7L_zjrwq5;amOMAY}~9X zDYB)rmKsb`VPkqGxkp5k9@y;i^+^~Ss^fD?qR3xP&RsIpWDj>(iDuTqJ6!t7D0k#Z zoxy>PK)&j%7Q`K8onDn@gNw_tlkM=&$=AU*Rux7vvWF`t)Fw$_T)( zG*Sj2>Wg`d%ecX5KHkSzuc z09QUJVLjHl{}4CkVK9d&0BHU^9{8+xkjU&^X%PYJeYufk71nXk=_6m*Hdo=Jw9oVW z*m*e^KeDYh>OfG!M=-m+$OUmM7w&C~K#pKT6J!AlQzjh(?Kl(bN9g`~ZZ-7AtW6G@ zNOelsiAkZ+7BV<%YFMuN0(+`=XlbcF=!~!mK%^10 zyC|^-+zc2(EchC`JcaBU)<1JbKSw-Jh^chC3gVy6CaNB?o3D9EI(ppvTSG+LSfaH# z%bR}j5S&vi^VXHB;}6Xr7m(!d6-mwCM60n{XF1+N5XD8QS0<=MVO6*&h(#UJHI zf4NgS_b)spN?$^ju-h%9wpWGBB?$#y4-Mp8vXI8_rbWDMw<&Cr3$+Ce7!8u0k$PY`+*y zl9-8VFXXy>`%fH$3E6tobDpganNB~%=L`KL0c+o+?k8xOhkr+Dadb!Hk{xR(Pcy|i zG2=MdFLj?^WS7fM-S5MaHF=2^%qlSZmX92!!>!;dkS*PAxi{k1fr4#cWW>jZH(*!0 z&M>zw`FlxvrMVZ9y4$@4IToY~4@FoTgn~u0OcI*79!(%o(Y@BT9MN^7lb7$;pDO0w~3LhO9+iqUKxmADvLYXigI| zl9R8{{+A)DJOlMmz~=~)6FJ;#7p12W1GmDMTQxy?%!*kqvV3d< zJS}vt8vkgZv6OIEb$^aFDR7qZSBmC99){<(z8en@S`HI^&oC}HPT@Oxt+2eLcfj_I6LP+;_QilNeA(R4W2I_f*lI7=)& zC+&9wrEK&1;J(M~X~=PgKa*&X2opPgB+WOg6>8c058Lhk=D-eI(NOkRM#Z*Mr9I%@iX$ zz_BuDm~g5ELHoWn5br-c`z-vd#9by>*$_rnw$rq2)j8%@7*Oi}%PobTJs3L792M>g zvJF*j-qXvb>&-$ZIZWr~w*HN|pKUd7i+_R-A3McsOB{*ncr5rh_Dp`Y%&4Cjys_BL zOG_rGrKyZ*6`~dmv|JHs(`>sMI-^yEeIf`J^ug+S|I`WVajKX6NTxF+AQ+>{xT`zZ z7)P*M$^#UOM1p@OMT)?NWk>eW2PN>=&`_(R-!jLFP_q^JOHwlETQolL*D3I5LECHavEkvLmNbx%#1RSH7JndlT#??$sPKn+&4eniF?WsIvW}j z+Iro7{oJ7Ppe3cB|Cm~CYRL1G1%nCxBFGn3^O$o3+L>3ccug#WJ(V)5wqWMOhhvrl ze`1!WjNF}!jAno{ARc6kXUyRTc6yCu_tWA?(?A|8#JETPa_{^s4>u0%WKCb9yP0Q_ z)Rz%<-w94|UGJ7Q40Oit#vT}?lt=ZWS)~Jy;4`(-D()W%X)kyM4Zsr5cJXlR^a4WD zl|ul*bv8qRA+N#x&gzvcBBGSvZ^Q$Mi{2KYv@u?M{EN-amc~7d?$58+_>~#li4pUl zg}=8V!mqiE({56ztu=T~;ZzIM$+(E?z4S?52cHV}1)I-R4$t{ZtDE+bFu2-BXWIoC zDeqRXn0+S>kuTJGWIh(bzWbikkdo0A>7sSbzkG(jO693#nEsMxvvEnXtvp6GQ#1Jr zE&4TPui)4v$jR+a^N}V)zTO6+o}XexcDNYe>F4xnw>>ZL$-;RgT<{2Vv&b2my->Gt znpK;;L9z6q_5;rJVTJ28gDCUTl&{MyIt34hU&&V%LABZtMr>C-3}+Xuzy1N;;ZBtG zI@0~EJ|dMv9bOXy)1tGF_V&Wxlo(5-BQmr7n*#XKhVT|9G`rU$!49bIvf`EQ~yHMK@gMxxM)= zC;+N7?A6iDcs4*Ai}5N#;lFiN-gJz@RA1t5YV`yI@C7*r98j@{(+xd1c)}2 ztMB9FEfEL%H2VcPSYj=9J+Dx9j|}cQ5!1c0IW^-`IZ&K9J3c8(zwUMWasD+-(v3kf zjRX!^-*D)b6Ki*7)7KSB_;vWRM|0ruK&i5=^NBOn%7qs#oA3I?!+peS4tQEpH$}_g zVzMd&XX>vw`tc*_S}$`YPSWVz(FEAr_Dd{sL2dCI6pel}FvW?n9`068xv%{9nSW~H zJZWyP2SQZDYZO=v#XFaUv3r!4=e>+4i%MVMBz4DIi^oop?k_RMF>ClNuIFINljyu( z`pjW45x-6ey5#j{NIO*C=do4mgd=1(U;3C1*(yYS>DQ{fU}xrV{{|0TVbnN3DAbS^ zaYQq|oW0Pig(i`SLql{@2e_3EFc6I)Dyx+w-Q>gpEhoz9dN%uLP(GVspMx*#5;<|~ z-Y1MMXTKreqJ{QFTP-bLl=h6ieA20A5?3yfldXooW{3J~CLJj_xkIrNVIxh-_GKef zZzGe-LM79tY?(WO=fzmSkk_`I{^#{}xg(POU4>&quvbwdvr^?@y3$O_X6fPrPa3aC z1}u(S@9R1$kINvBz8fM88;-MYdXQp_f(Tt;XSM&ZuPmv&tmD}8wG&pY+*sB=;0l1; zY~JUM;_f3c7W#W^F~Q?*x1;$^5WCT?d@NaH*7s(>>?w`()Rx*4f|i4%7?9@6nqP6b zWg`*s5xZdCVGO-h%NiKKmoj z1{cN9l%if^L+u;3n^oV7PJ6dytYF00n4nHJUs;GOC}Ee87#)(j_aJs#?2%?AG}tJ; z>pPzVXWyUvu4h1g<3ALl6LEh>0ejNcr+9A(@x1|O{ZU0K^2L4@DW63bg&-jIy)5i%PY8L!d=Fh|@HxP_azT^Ly^DBvOKBRU1HDw< z#Ls&hbRR8i4GSP$i3DT~-$(0O!v~&m96It-`aWJ36b)cqrAet<{Xaym|MkNW2zZ7^ zo7Eed`-oX00g_etBLLk1324=bX7?)IJ1^)2lBUwuEN!(>iEpOrstO7VS#u)8>F${z z>PO6vER`))f^>k7XJPG`0XW^rKZX1UuUP*ovqs;|L_2bL1k1@}&*aYJCp3|D;UBXN zl0gzXChNY_)7Q_Q{)60_nyOW)JblbUp>fahQOo&dronP(a*jEe!?ydjEvlZ5II(__ zzK>xS+61Q=v<-IONm^vpx|?1Htk3T>fSiVW%baufxI-mz8L7DoLku6VG~D-&9n>c& zR(-?vwycU2xz#Tt9_ARWMcnh|CLbk9xYgx$zE<;nd^?d8U_|{4KaTEu!-?*r$GC?` z`!Ja&e~`lfw}^D6a>ac7&$rB<_EcQ4yaw4}QFXV&eRX{|T$b+hzAT_!>88?N6E z2DqfB{v>+{I?O-NR##sLkBB%_li|Ma*|k{yfBw7~9~_(qG`bcqj<+>FWiW8Fx30I* z*$!s-f75(p4$AENf0%#&>xY@J2mPm52>?HsFK$H~=kMK~NS~5~v@!YdW z{?`!?l5wZhXn+Ty@UOhw98-ev%nzC0{r0s=)IqN&X;g+E)T_j{yQ}Y8h*<_|Zd-c- zdx=?qnT!NTG6XR|8HK9^w}DC1HIt-azWpDh4Aqw&_vEHDu?%Ay(NZl<#3CQp9+6?F2J#r|`Md={NyAlJ&r$Xb zO<`GCrPH#a_Pci*9nlnEy!D27hrbc zOds8I`|5`Qd%xaG04P(L->KUb_Z=1YzNjAXTH&qxJD;0i;KXau4-K_i-&#&EJfSqp zOLYowZ7qCtO90aaSXzelk3Me!1#S*%V#i;n5$?_`UAO$IC=%`#ZcT!LN(hc{o7nZy zh`}o|p7)`bzvaajTg@X<6xmu6l9NeK0pGq4sBB|_fNY8GWZe1}NlBVa8HnS;tQIH) z0C6ut`&op3bc4f!^y%4B%;k9ta2KvTE<&e-Wk7C8b(g{ecx6v2f`icnJx^>T{u0pG z0<8WWpqR>0p3*(1ZY9}T&(^l^a%R_OoW^}c%o9+-Kmy-wCx|mph%KR-;%WGmrInTA zEsyewC{P$N;{yf zY^xsdIVs!k6TXJ?T0{diO`mn^Tnjg+tBUK+79+e7#D-o&abLey1KbKm{;$0HA8%=G zr<$hUEp}(?55rS9#E5j72%@0@LLj=Ndxjwk45N1Nt#LnBV6KLm7=Ik=3iGBigsW9_ zr+h@!nNB_$DphR~O3!M!m>b^}j6<;z#CM{WDm3(OUo4?IP|2dr%s_zs<)`TA$~&)j zDF1&R@LWo{^KOP!&Fzc!ZZG!noQz(^GF0O`<*osV(Gd;?GruUX(#vmOQ0K=bChy%tQdxcQp) z7@(febC*4^*o!?`m2XE~o?^MXr^nj>Z%q7Z0T-Z1SK5T3DP4*&@7Pw&tn`F|s_kY( z{#^sDrcbP*D8;6t0J2muk;lL5)4H;LksfSvA+F{8_!GY=rn?QtW$10Kfs0hEQ$^)= zs%}B`_ly@O>YtrOx2BF$kW%PTJ?svQAtq~dl*Yi#Zl%$YjU7_~G_CQ(EiU(ef(-TR z3{MW4*lBCm#a817|9StvOv3;DvLp|KO~1Amn@WUfx79MyV)plm7bfSvUu z^PAA!dA=K4c9{UcA$60KYtX2|U8%ua$P@-5Wv@75Ez5 zg?JzCg;tz&na&j^fC>CBPB_regRtfATZGHVT zM+s3t&u<5?o$=htz!m1Xn&!r{GmdlLq#!ZA{-xBU5e<+8Ou*$WC;GNCr>2ty-2K}n zz;j&%fX8(uy;6KN)%BXZ9Z*$%a~g<2fUIgbW*0PS^3zNO%+KgGz=L%?K0X$o1y08d zapRe+wx;Ia*3q%C8bIaq(ysaAj)1Zz zNa{ZONBfBpxQyH%P0!4GUmQ8!=9!Ry_G!KRB!DPZFHU!N4ScU%(vJX6_F{cs!^K!} zEl}uOTWZ=_JK%eB=p(fHL#x0m@s=z&ZTdj(^T()ZSu4<#(Qz&T%_*=^zfLdimMMVu2P_+wjTTcig= zV-@YTksNsh$ZOl$&>3K}Z+;ST&RPf)u;@=6Jt?u2#B0G3ntxCQKoD(R-IOPX08{?5 z9kl0gOKG3G>E#{BIpG8}nK*4EFYX1{Ew?vTq;7L5UcJx1%ehNJp|_IrfI7mdFVKDd z*oxA*m)maiyZR15Bn?ZE@NGx|lw|9c<8_h1Db#Sz(06Pn6yLf{?NGL zl4|rN&~+X`FUw9@YG-2_z!k|AqyJ_mq&L;q>-YwM-rASSWK9A^I;AbQrHlZbKNq{@ z)vKFCB^8FdEh}wFfMll0yRZkY`j21*^lyjBEn#J{VpCs+NA9Z#^Y2CFvv_ANFm=Ck zPH`KZ@PkO)jq`yB3^gxs#UxEy#@vnFfUggw2Fwo%&h>ra3p`*LFTRieHe~3T93CcLn zxPE5xbcE;Ct&_{o$M=4s;C@Fm?teVWH?Lpj!13~a{X*JKl}}bw2m>zg4q%BqrAxKs z?mn3l_88@rl^(14eJNGdKHitlH2Zz)TMDRYu{}%WPq>rDY0^3 zaCg?f%657MD0nOP3}ZU6Be1l#cD5cboZg0h{hunt|Mj=zDfO#iv0wRm9T?!_Bi>uH zzEhTd?m1pCK073{TYbop9+j0vds|0_BV-gQdR5Z8_;#AE(c0R2CZf!|MsQAV@tv;j zOo?$TGEQ5sK|VT8Ez6$c?IIwcEp-ZKErw>xMfEcNz`Z;pP^*oPH+S0+Uj0j6z}HN4_7p6yr?LK~+8;$j1Xz{Cp6!LkitiC{_7fivS*=TJ`Ow7*S1|Wd;Or zUMeX?)Llo5&H!Lx<~dNC6Rs3K^M&4C7}0`va*`V*x+e)p-mH?wF1TA{1Eq<5X`pv?i``cQNqn%`< z4xSMc*LB4*m_6eUEAzQV3$f5g&U#o|eHckmnpO5*RpOh&TA!(QG@UwpTwpt$ELuV@ zKF%^uKW@MzF@0Mj_uqf&hVq( zW4hw@ZFvJSGlYB*@5ikpT^qrHXcF5W9VwcX$)+U>cOQ$>h81(r()A;~2MqNgtvEEc zfUb@KwF%YY6qQ{~MF7khD6TxCiHk7soe{g*qeFEjB=klyir=XJ6T9jm5)70|tXcju z?PXBZupwsbJev*)!Ev!?*I#KT1-FqL+}2gO;N{L<&KAr#kbSAKnRIg7HT<_xRFawG zd%ZdLdeM~RTX@KHYYcetPmz8~cV`!4+TUog6Ot;E_9wgeK$OmJv|%m5hKd*QFXZ99ay>9@#iS70mUq0u= z@urJ$aSo`!U9O^X`TKci)RnVovdqwhv;InPIA(k2sd?wu4oN@t3{a*w+YtbURO*ajw$-n$;IHNoXJk`v|Kbf zzQFQzSmzk|p`xf!FUc-V$BV1exqp7dSE_v6Pwb1PZ_YY3Ynw%%;N+!y`~bpt>BQq8 zzl_H~+^_(NE&)p`C^?_-Ih>xmtOg~+B54G^mA!~3cLNH9XO%W*67)YTYGiw^Eri(a z2loN>hyL*)jWx;1?@pUH#f@h5ZR1xZCXqIrH5z&8i;pD(%X>KLM*|B>8$-nE{7*-pT8@+!)W}jF!%WI$mL74sCqytKGr~c(&R6|t2hz&9A3tKW} z@EG3kGfHp#|F#SMGqltI?hy}+dW=b23zYRvadQ&AdGjXuN&VWf?Ci8nPG4L_2O>Wa zuhDiET;Ha-_fyM;#}@{w_9Z7AFJ_X=90_wo;|S>A|+@IVV5U-0;wB!_^+V03%~ zS+!|e6qq?SC3vE9iK_JpzSGB5%@6XI2{w+9iQ6b(ObVkGjez})*J;OMyMc^!hH(QI zmSb^sbsJE3w{Dz<5=J)mvblned2iznJ%1ivRFFH>dVUJI$%3EKl1iJ|EA3NUGqKp2W52zQUF~*;G zGkM+&iV-`#I=pe-nm~D-^$ZS64LJyRYUI4ZRsRWS&)Q|`LsDb&HNGXnYMlKap^EqK z1OCrdgr28>6AgU#lQur&AqrZxSx>^{ zW3uQ(fj&<(pb;bE9Ty#K$@J~vk*s#zCT$E6t{r|(sW8DS@ROV5k^Ekh$+Wus4tZsW z#ap~!lK9X*t8_2;Zh-9>Q|klnH@{zO^(K{(8@vp)A~tYnzz_?#y0Q7^%4k;!Z58k4 zwi=dk3wPH9plff0=a#N*)+kIDkH$*MkLxS`&=$}k_^^xCl7^{;(+>1HRI$f)jkbk0 zf{NVZce7okyKS>b82$Q!7;#|f{6dwtXF+;Q^fkz7b7}yiF(4xZ~s~2r4EX%*K1$)bTOjLrh3oPt?8kujpfSIag&w_;A&jYwy~ey>G@sqhpE%j!^=YA zPXP>_GqKkrpUxUQnP_TX8wWH#INwQHg*#u{tZ}uf+-EI~@;;V&u5Y=OUh5e#;BfmA z!Ic1yK7?38S_%+UF>$sXJIjQ^FuC(3K4KJTGCa3hatxB}NHq*)2bvvJgsr&!+&TN$ zS5e_{JT0D7icUV?o-^P4Or@?5m1L0zSEod8kyf+xfs|e#hSjqJVaFDjg!&B-n7H0Z zIb7vD>f+0Jo6iRqhfq9U>3VU+wgKGQxR;qpF2|y8E>nHFnZ=)Aa-!}we3Ezw&J<3|erHQ;%O*&G+A zoivR_M;^iE@bffjb;{!AM&o8T+|3XW(*eu`%Ztw^v75oNm^!k@+itUtrxJU9OFAU9 zZ0@a?(T^!WqU}W^JOtxHMap;WDx*^jAZ&yJSz!>}KU(3WzP#_~2CH5#tssaWqU6 zpPZMa&kZ)SvV|>kpktCL!&*4%|LXhj56rza;08a=qwuNz7tM9tdpL0Jb&h=!^O!Mf zHqaj(lh`Qza?9d1L_f)pqqnLRiRnT zXb?ir*&>N}$~30$CB-QP!K9F@PG79?FUB;eN#%^(URX39-pefw`ZHAt ziJW(HRF_f+%&GlrL1GuOO7al{vU+p0+9<@Z+xSa~1EivV{P;1lI+O)AX0j1Kr?*kDEiB;SETVpu8-Z($_?ald zA-?Y;5WhYgZU;$hL&0WnTq6C>UtHFp<-HBw*0JTKWEinW6(-W%WBoq$@o}9s)@Iw; z&tm&MOj@wL2?wh$&lTT?+n}KHl=?Rtbh${R}i*G-S}gJO&8-?aYuHH$cGqm zjj%g816x2~+my|ML_IOLstkEq;JK_dZr}Z0o4e%=7QirC z3uO5pLdpN~M1hx*Xph(ni;Vk3?KU^vg=9kE0X7=@H@w)yH=qhJ zyv~8o-!juY{eIr_AN)xkju<^jD>g8B7n$pG=LWfrvq&-kAr+p_Lnrmp8Logt&MWOI z?P#q*DI2Y^Z^6MIv+kaQrW<)6>v`j*TBj9eR}Uz(bQ=Ck)`n9haktjuK8Wrg`Km>dqosot&zrFhkUe(ENKkC;o3b&nOy#B*@)eeOIs za1w;>8C7)$mQUXt5Nn&l-D{@APUm*b8x9nUnh90!+EGThctBVJJ;QbE#q>K}eTaAc z(n!(+!iw!m+mVi_IuE1AF>IJI7MdbGB;${&D$CEH1%mcFFy&}_s~B?b7C6!95-=P@mDwyfl; zCSkbrx9xq0?Zz(RRTy#EL8<*xFgARXW5FDr!y8yBmCWn-DyUpnO5g2y2 z;v%M0XMU{wxU6g%dME6Lr7gHtNJ{)b@tbDc+J`9UwU<;r6YM(Wp+-BO@-=2;SJQWa zI5^-PaZQSsEn7!mc=~#-(NvjlPia2QgM0lFU8r8V+D+)Yv|j1qth<0_eGM`SU60Iz zJLRRqvP9Pd30_yJAO0<(ChLZn6n( z@3m?)-h=xDfnDyjG-?Z3NIUKn-Pt?;_dU$$`r^bz@Ol9^|KJv4apu&Y9`wwVWI|@r zcMv0DMzsAQMfHDD$EOf}!JmQ$dCf`ZkX-g_oUYtkPls4Vu$~o{w&IHR zVw3az);d{VdQ9>3Ww_{X@Zif$VS;E8;hm z3VuxcGm?Ur!M34lYOtAyAPVo@M;ZqH6h?wKCM{$ps$AgYM0D&PBI3^*`V1{%`@Ot7 z?Fj}4aGh9{t(v`5XM`W&aL-ZFGq>Kgp`Az#wd0{Al$|(jLlycscEi1<0<4&t>d!bW zbP(}??G;iuP15Kpl#DbS)PXc>tlJj2bz~(F&y4L`q|j^ffEFz(yfM{p1xBICL9F4R z^n4i;!#~M>!SxqY*7;%(j(sO8|KxY?aO$M1Um-Tv;hv7tCIW9+X>>SRYs+5`-V&Ol#KRQ8i>voJ=?sb z&`z$Y5K7Npt!b8YER-nH^AD=fx{7$Wu>s*R5a_J8Njqi`;2#xS@^ee35)6cR+YQ}K(- z_g%nttCDRPh6PEd$Fz)QC~aBYfc533$V!84mHOb6$4+SzMeTrx zS{4;fV*$yl6kHJ?6rK?mLQ^rW=Mrbwcj)W0kJ)ISflVe>KZ8=zLBw@-sPE>k9+$RP zx2V5+uyFL>E=0y9-ghfY=yBh)4NLlV(b8+LG()r%7EX3%SHcy9`jB|kt5vF8&u==K z+8X+J|A1VLliaO)@mJQyo{F=$*F}21kQWZ6>le!-cpXmPJSbcDa6{#lRBwwCcJuPj z5j8h?)s*-rk%AL%2)A+Vi#FL!&8_}iWpgF(Ha^*6O$!1=!kjhA{8!=Fm;s(rRj6cP8ia`2DA5L4 zjYh&SH2|JeQ&cjqSgY`ru8egn zHS0tO{)mhuntEyI*B5-Sa=E_Lgqjb}@UVwj%^Z|3!`HKI7u{FTJtu>CvQ&62{*(&f zdvg*Dyw?wSP~iBB>A_(xO-_^|iTO0YQ=#5}=MuN99)YZ;ZC*?Qq>$GpZ-=?@k==a} zHY4Bq(spv+SRX=7#q?jr0*zq^T@SAzwy!TU1>D|nuv)qvX1Pvpsikr??=#+k>-{DF z!$n@E%L%H6NGvS>xWQJHxBp4;UT#T!%Yz26eLY|9q~kwKa4%0pZPMACFe- zonLPCJzA5m+H`NOEKY%bqb^$47u#QMdde&=GtE~YN&L%+ISHsdYluB1QQ(1zAfv(UYnasgI?|L%;#$? zb)C;uxb}vm!&(Zt)M{Rn2?#G_1R&il;OpU2#K&~kd4QNXyMARa;k3X?YXe~3Qwaw< zeNFdGPLaJycCpyIQEX$jUE}Pa+Dt7ws zg9Gg5E&fLqaM$EbU9IJyT;~CRu1CT5yJF(SrHa7&lCiduYVH?bjT4q|z=LVlv~O(n z)9Q{neI2K#R<$F7?M>G*ZS4hO@{MwytJKY|Sa`0Lc3y$shdP-te405OgzRje(0rqz zOlObpXLn@_P6w2=n0G>3ahzdeGv0IF;yNk0-qYJvbuI#p)57spbT|@7KnuH#*QOqO z9dUYdS?>UgkE?48b03%jJJ#r=JZ9O9jw2^Jm#`SK<(5 zHN@l{E_j{g*Bwy}sQaUp^R_|N;J{gz-Fk{&bscX|uub$rD1@&P!Hy;@nw(_GU7rRk zR%D3;gZ<-^K}3N7yS3aH9%{w*!mkSHKxQXmKSW#AO~hfzS6qF(k}J>@C~Z@??0B?R z9*PC~KUx4o1}_iEw&vcGtt1sB0?Mad z@Kj~WnqV_{B{;Dp_>B1HWJ_C25G*00^oF5Tqo?oE)-4JOa51X}Fsm4ccQ&jPl{Ysm zz7rf))ptC*7T4-0bZZ72EZNE-&C5k`!lE2Q-|-TY+)ZA))UxphX)l|;{8At%)8=qn zZj~2GFwafwh-1~WFUW~t#}#Xzvgv=It+yE7tteXY+g2dq;Tz4jN#ZjrMC0!aH^W&k zMLb(_aLcG{Y|E-NhBj-u^lBrvGBre6ikiuPPBQS>mW3Ev^)7=$zCWS;|4NQ*}Cimt3>YfSI6n66nM z<=&>GEu7~+q%Nqqai=mV<0K5%XYiOxXwcr!*b1Fag^F^Zg!V7@ zYS!g#$iMxMy@gLzKiI*q~2Iqt!9XW^b{Baz`i)krsthVj;(` zCG**FS()BRo=d_;QpNV)>P1NywByAt_2?&V^&va&GPhNIrnmYe1GIeTwY>EeNVyCB z!v~`02-?d3Y<$qJv&@{fQ!X($;o5LJ!xxVDz+Op;ydbX9UH>f3|l zy>Z3c2&?Kurbjw#(*!#!lKn`3x-~v5+9-i&;3k%&4J2z@)Dd~Y9Q!Y($WdnclB490 zJnVEz!JOPc9^OqE`g1@*8B%S{qh9NElz9CvW6N&b?|}9HHQBF({H;PLHw+T_d$7qw zMk$PDEe{Kexi{mqk(WR}-zY1?QrqPn?OhPEVN_3Ap$ad^;#n+-s8?b0+7wP{m;@&bSu5D`@O#%t-4#71zfkuLB zAZTzWxCaaF?iSn{cXx--xHj(Y!L4z*y-&U8yJw%B_ty9CR#DXIRXt~~DQnCj&lr#N zV@IC1r(04>YF|O#H=bjgqr4xRaHXuA{4-Do=bmXtukx*1Dcz7v`~mw3*<4Ni;!In| zz{~=Q4v*uPBs$NjMSuV)Oq3uS^*}r-p_O#f(S1R-w2_PVKmb3i1@6ero5f$|pIwBl z4*rzMURR7x+6yPu=f_&>P?DyleiFMm241Qa9cOO~u$OjzN7y!Q9 zZv1H6*SB>!`lj({6Xp6dU)095>VJlfNh^+r%q1Gw4r&Biz)QMr{;_GwHle#rusPvKY1UHU@`V*ws&4Qe2zM4xh;Lqok(C(hfDP zAhEA$f$@u9ZMf{>5b$B-1$t)|YdXp~A8TJG`cKY`*lerlRA**QxL#h_P`CW=i*#kS8-D+!F z=M%1u4@(M244CbyE1XXF=Gq*?1yTJFa`aM~hric*+|=5gi7zc_Lza0^qw7DWEn`r= zjB0VVK8FaHq)eKSifUQnb(-rcKzRAq`l1{m(n&2HN(C*L?rG?aqhS8Sp&(@T*M)t1 znS5-^*uqp$Mvgb@P7Zra75j#KG%dQS=DXb=^KhPeMA5z?urNkxSuEenq~fDYZai>m zQ5SRt<^MzzE4MG5J})D({TZr?(5KLSpKsIry8r!Q*rHm7Ih&eU!0a*ahxvUN`M9k12Lr9Flxvf9tzotG`b7V2cKy<->r#TUs;dck8t~y) zR|U9Bshg&8MZ0kj=8?#H6RbBYIG$I5TwE{NtI zWSu_~E`852Yy!G3KtTM1Rg3iQ(g|aPs~%HpnT)k7OBD=Ot*+@1-Z3%mT9ZpYOI8~t zzK5`*F1_z_Ce15EE?M@>P5ox+*l9#=dRUAZD20%@1ccu%7`Q}f9l`HYKb;DEefpbH z4lSDTYq1$+_FV<5F9V)sRR@AYdCL7P`K|Z!jdv>&w9Y8835ktBM17h=HSQrCYeYP! z%d%PP!`!P)w{xMEaYn^cftz&(a@p9iA?ioXf)n0Y+ zl~ab%#Cq3Q%(QJca!zN^$F~BU4AT~j@rFqBrb-nHGnLc&Y=hoPQ1sGb6w5pf0e^>c z533uTih(CX)iv}v`T~R~f}A6j;yN9$MV805hU-u?Q>pnI9~AU!vd$}G2i(I%Bno7* z9%`Ifwr=DCw1lx4w)yzQBpM+P9;&FG+$Sf86e)jxKa8{+Jff*PphSwLxTtA0kmIWR z_1Q!Hx~>d0wM+x0`nvI*C5!`2>6YQ2R4V z>-CWvBQab0`iD|a&saQ!Vf>opZ?aBuX9M&NaF&@)6A6ddukl6K{f;@Yel(+EfHr5% z&WU7i8GZ|X>u&}K0BAVb!6ZRsvnF$*GkJp*jXEzV4a)#g9X1xDl$g+_kvo4T(6$p+ zP3|1K{`rvQQsSx((M07$z#^st0c{3u>u%a{Dq0Y$+QY7ax6XAnmu`HLJ$qfl^hE%A zgbIGGed|kAYTzZYs4T_`y$sdooX2J1)rojX*-Ak7G(ZK&j*rJB9(YtH3JyL+@*&N{(cUPQeW=$X-)-J90XYMMybqEdYm78TT!iRbq6q;V`k&9AQ}8eyYErTS@rC*Yk4}xTR^}GC&l?J?cOmQpIBAMed+KM; z7UioO#k*Lw-YRj0O-!{WC&|I33vGTy3h0QKlixXCquCX|Y)mQYDv0l5OgHTw$NX3X zW5SX1^FL39{CDF28@^$bv-d-hF zye4%4lLPO2sSJd9H^{@qIX) zrKwM)RL8h=j%w+F)KwYob*y#Q&^y!%;5YpaK3FC(T0X9DYi@c!z2=P5Rhrw2;4>mz z>-83)`H~t-6o$sFxsl96&10`kx6v8G5le8Pp&ym1fI<9{)tnbp|9W+5IcFl}owhuE zQuz^U;OxMX)2_a!B5snL29$~~v+C!9;NEs0#^|lC70v{TwM7fq`u+DrrfaS@$gM{D zz9$Bv_o~e(fcn+$vdP7(X5>2~GgF-?&u$MMvOGv*AdGuUuiF$qalee5E`JZ=SR3`y=fCEjUxmQe6&++Dby)TfOW z0fE}n*~JXwEeka=S|=u!(xcIn>W7(RAN+a~Ue(_Nj~YQ7sijPnCN4^Em%iIz@-gt` z8ZcCC^7pZJ>|cMpG#PeGNYw3ZAKjp*X{&c%gIIJjtLw89-^6t0$wTpcsM;1tXnB{+ zhnC%pjZ0$5E`%RHbm|cB2H~b9>H3de&Mgg14fl+QSqiea=;n{OkXHbfEV8?r6a6Bn;;C_)cPUwwVYSV7*B9ZNkyt&FObfm?0p z%F@WNT`R)4i^b62+_71OnB2Z!Iafx|r|~bEXC#)Um-Jj+Q}lM?dFJtPy3@^&+4BVl z3}Dj)~#{ktRdqn^ILKi5}87mxepzqF3_kkcm?;XoE0J=}i?u7!tD z+AWF;lNNY3k%}_7CmbtpN*}wM8;J~fs0SGaZ=_88P+BWDh)82mvwEn=-mG?dX09l+ zT^dvnT^ zc&X_+-bB1Acf`s9VBkA`o}=U^{8akK)LY*J-?NO6LbiB5Jjyyi_$H+XeQrAH1+n?1dtHCjbsS4`&2 zS$hB^*zoEy4K_bb=Zy(g?R4=E_Jdy%mHW9=4IgNp9f2oMbiqzDEUAcXda);Qa1!od9uU zG=YHWX+MfYmXn1h@-dMRODyupyO$v=RL%&VgEOo6|AK7%5PVa1F_>w!h6xSJ+uWU= z=iU%-&4zOT8sLR?ZV?*Lf0?ZD$dBq9Z%ULi35>U{y-K4!Qn*BSn~-mLep%o>U2ht@ zT<&~@+m6Rs_1fwio@{7_0oI4F?Fu!tv&~?Kp@}I* zPqiX8jE@ft8cEu?U@t-Ht{D;r5{ZB#VdA^&S3H>t3m9*NPa-rjK-k19pNKird8{u? zcg#8%wtsZHr2(dy?XtqWUiV30zI;N#6BCzIRu$WHRywYl+TZXL3Y5iuXU6BQ8qT_% ze5Mi-N3ca}#$2E7!}v9@TI#YpUp{@@cv9?4iG{HYXXYzLYPi@Xd^5-3vkHeVd|=Ow z`BtCQ!I^$vZJGTXsuBbX=WDF`sv-0k+*^Swsv^vE`C<`GoDk83sU(@Ldl{8-5PQ;- z;@jjNy?2LPEhGAke3z=UpTNFLLv(-<2*(FkPb>c==mdr2o9vu&ogz810W+iHh}os# z!$!M(zta{V#Wn5py~W^L7@5uIcMxrd9h1@l#|am`e6(ird7l1D$M=Psq`+ZZ9kd?S zv&Pv1@&t7FxF5i}SV|5t4J4$ZUwD;3{i^NP{t@G9-kW(rg}VojcoFj{#b8P9pm9}f ztEvYfN7cjn5Ia`A*4->o=1&0`o6dvgv!zuhBO0}G4C-7K`KoG8iK^G-kPjU^{p)Q1 zAW{|j2IVn+bNTyH?cDg2=QLe(Q2+|H#f5!ZcZr0tK^fKbKKn{MULGZN^C?6h(RW)&b5kxMJ+2J#(d z{J<7Sxt;=R!_&$&)m7@5#51FXe5ubIUlL*z?M*cRW&HM@gkHu^+PX@1N@OF9}Ln{xLL9PW$g zyTc=aOg57;eSLbDgJx_%=!WC&3o(DfFWGT&DR+#3 ztHuOzm+a--z79|?tJWk-!r4CwrOcQKYO4+iMdHZ zNKwXPbM2we#EckOI$IXkHJm7+PxT^NSNvJJEsU8f0NuKjgu5?2+ofa7JQo)wwoJ8a z0Q;5XY>YIHtQDX;O4zTBLKzidYGtE9SaYqZ45UEYi*m^B79bh}&)E<}^2OjM2C@zE zawMe=j0mgsZ4tpB9#?4ATavD!6->kCQ>8T3WUH^IMR{GC zkYAn^CNBawwIx)hCv8!vQP*C3ptm?4 z2={W(x4amgk&EIE$O-TOtZpxE{9O;&kB-W(Wp%o>A>lV5{twqKLGe7VCSI#&N=o))A; z(Np=n`BrLdcq-j_h7eSUBc8F*5Otj~`};|_`z>+Jc4TR`ZRfZxV-*g41qLZUOU}gRDtbTj@lU(? zumt~sLiDd@VsAySzqU$%q(E zEBwGZU3>W^p%1aglPk`{ci3;76}(-v9jb25EyYdWU7+;TC4D%Xk<2=kGw@vPX=pRn9Md`1&zcUazOi8_8VZ|neT@B_XSO|{&>}WnaCD%e(f&Q-ciPXN z6a>G2e{}CdmI4pJyS5D{F-z%wub`r#4PFjLk@}~+A;U!&XJ^7abqjIV?f6mrxN_4$ zJ7v>4Y7i=P_=z+EFp1d93(=?Ou`4{fPXkB%?4Kj9ax|thxAStwkrXv zKXGWYeenUBKRxwP_OPx7n;dL;cg(lry9J6IXyXW{F6;~GwmTqnC^;u@~+bn13|4>|mqmb90me;kCO zSp3v+mryAgE5NP%vSsP&O{mdG+^iuiF6( z*VAsa9h>J17HX;Pdx5n&DW}sF1_*ln^ri~-ou2p89Ps)X)$1OFq*&;Oa@5g!ng~q+ z{qem7G!94V&Grv;m1SQk40VTc19Bfnq1NmTx zZZ-%Pc4B&3naBRB=<&`UZJP)zuq4ItcvtB~ZKwhp$d$H(R-ndVgsu9~BqF%0L|!1) za|q>K*QFGSD{;}y8z+gIhh5&&BHhBA@}+ca?*J!oNThZ4Z@!6x0kzvH=UQn8b|0WR_@-XYs$X6?$B}|ox?R25DUsY z{`+4r7f+{NYBW4O4Gc*v!@LY?LjxP#qxgF62Oq%PXCt4yH~h|xN>!>+`)`XCquJ(H zq!W_`(C0iBi0CD|I_`H^hUZkMq$fO|&yO1;gH>DIjD&^!W1Qx4#3hVM)a0vS=vhJj zNT8pccJgMZfU4BW=8b37K*7Ddfn*s$C zpf;;ZjVn=G)ip669lPUmtho5Dy}jbk!i7X)-iVv&$=>kDeScOF%Pr+sAh3NlAOnfL- zWK7_*E1|C2?lRANH>;=$9Kl#9H;E-69oN!F$V}#KJ+I26e-%PCi&p!_FOuvmcm#kr zW!)1RlvgQr}LP#@5VnY3SDyj_1iAw(=#s-AnW#th}mAi&!0s~Ek!fr`dEFDmpq&S z)N$c5Z&S=P^LgtW=q`$z%f~&f_?OV%mvs!yUL{&`)fA<{& zcF!kG52FUfOmBz=6OyB3u4oL}(izi>b&&yi`oY3c)pQG3ngHxK1R@%O%BR&`Evg|} z=w~rV-`j(Vn3c{idWw}UZbi`oIT)^yF@B8RLx9&XGg##sy^6}u9zx=S^_iYDS}MxR zW#CzE6ts3VB(*B~A~-y>f2zdy1W={y=_u%aacr4@eH*7-p;?c=SFRXuA}pAcbJPmR z5N(>`MrW;5nQxYSGmmm`7kF2@916ksp5h|{_kAhPAfj=@&B3Ae=C@C#!$Eb`zmqQF4jr*pYCVDwaVC`0HNC!rRigF9{xonNCd1N(My>yrG8 zauTAoG~ft#qpNjB)Fxy1*HRwO3GPVdDL=Mg+&{HYp-!@KfIy|5Rd|{$CVmdNXY;{p zNH#8vP>muCMShfLW0ITUdb)TPtav^y@5&G|8!s%|5IcqaY z5IgxK`QvGuo1ySXt$zG|G-6gi6y&%${Rxt~7(6Zv&>DZ$4+DqHN*(}D&^vFc41dK5 zFVqyo$r`{$afP0sG~3JkK9swEp-z$`@>j_d7uZ;<2oKX;B~Rwrhbsit>(t?q*e zuo6w#D5YH2LQZt!b$al8AbKwjA^mNtYPy)DQB;`XY)mln3@`bBhaT3bI}zyB`DFl2 zNiZ!|80pB=vR-Cs5p1kUNl-HGVY34vB0^flU44utl7sNNyByNn$BV|!gu_oZvF79- zwJytrZ67+pf;MB=(eHl`cJ6+s=${Ek7L+WoVMr9H06JGb{g%JDu&him!6!wyirpH{ zB&WqkcGo>$_rF*zQ31NzJ)hRMd}wP{@K|U6EG|F7D=bchA3%EqaV)1oJgsEme{O2a zv8*yQ)G6A%3txNetNToZ9b!vJpPqv*)QqT%&f8tR1|=Jo_!S`3qAkjVq#RKf^l<*x zxI?y=H^gr>=)J>f$4kfKdaxiz5^k~S0vU>aMm|_Ja1{$%)o0@wZECNFu!nbBp%xed zAE(3WT+u%APigK;hgnpi_BnBv#?i(6FkX``OvxqaivnB|;s$3;A}Z1@1HutC z?{pJdz6X@`@s2GWc3n^B=~|z8UDh+Zly&ire+XExYlT$2*M&k6KPU=gf>Pv_!0aIf z=siDIda12=j|ko{@V$5tgb`7ho$x3Pviq3*E@c7#)8K-oQOI4REF~nA&5e)Wjykoz z=O-E?lFXeBDPoGGvK;5UeQ)hwm6(w_c`8;fP3lddA&nap84fhpr#$o~Cc}mV#Jp3K zB3#8E@Ix@)PfN%kHiPe+13`{1NCtkV?6tkqeXhvXsp8K@EU_`K&Q&z$2&|LVY_Hes zX2uW*I~%_9r4KwH{fu33W;|ajNRDz0qjL!$`NM+-NMx0@NDywsWJjU#@aS}siYiD? zoUY#bswgXeDbK`~%^sbvS1J9Zr(Iee7m=tsC?|cqNY*z7wUDcc#*X`NeWAPzVdF~J z{7udaAEo4WNZaS#-ZW|bU2XF1ka;Dd87G0bv$yBkQ}gY?cRevj*J!RnC%Pp`Gg88) z%Rol~YWy92*mlI+?}m-}JhuDuuzP8J^1p2nvR!zxIxG_N4R~{0%(iK0#$SHhV=6yR zy)(Q8O;T#+54o>tMR;gE7Qpt~U0d`2vi<-1I8KV7-Rz;k`F)jfuI`mqdk|H{%MrV| z@;Q8i`>F1SRyRnZRcl+B3{R z)om3=8Rv#NWr3MH_aSE8W{N{)Ze)|9MTE-)N+xx^J;$rha`k3J_C+(66aMOeAlJTw zjJ=LO{T?nlx9xsR1U{!sN0ULI>GdWCW%Aa7sAyhAvy?(TJ7JLB!C&y|j^^eyl^f&) zuHHHYscPas8T3Mp@Q;tZc=;^_5}R9FJDSt`ijPWCJ zt5eE2c&LP);FD1ZqfVXV1rlOQo#m9+6S(utkI!Yz^P|D7tpl-s9{z*nC#Qm_rzyQ> z#glaQ&)20{&gYZVgM(vo*NTHWG)lJ+OVf4u-hz3rQ?k%W^eB@|qljUb#WY4JG)y z*6;}8^Trbcu{AQ{WvPprcTb0v(s8_(tvX zm%0A1e9J~}w)&zHn3fu)zsp5MuzX;v?N%Div|emcfo7o6Iv1b4CE~S+e^hTDmILx^ z{kCBaIR9w2F64TZ9V`<)h($|i(~!~XES>Gv&T||;=3C!oIOYcG8n&!=D*;$kaKYO} z^WA1)7m+2W|1@YxEID&Jd31GXQ$qS6G~jj+O52l=OgHttRaRHUuHp*xc8|j=Iyd2v zQFH57#|&9FD;d|HD?{rKK1g3(c_IEx^u^Ga@y1op#wmLibASRvpJNL;DA>-h&qcG> z(u_t#gryWOrI8$&LrR>LA#dXzALTM2IY{KqSt3#1M!^FbY2u}3QMBXX=4hTlv^+9=nR@+Ii z8nrgDzOOU?SXVXfb#!rp9i86akUgAnI^rc!!Ook+AAEz0vUPQRAfn|UE2@O??p|qh zVzwY>%?y&vprDVknOSdQy~U5$)2e_B;lco>=B(PR03xQa64%F&=CBNJuGu~mK(2YQ zdm&Iso0FMH{&O5jX{R{c%D?0q!Mu2LXejZ%c8{vONb*V$Ml99`H6Mza9?OW07xovw zLaS*6r1LU_-hciiJcrIOTfqZE)kSSLDD`#4zIFGbPj7zV14(1ExaOe+6*<4sl^*_@ z^?lcZ(^I9=*k1EjotCXD(u};Wd*q;Rqp7U*Ixpwa7xp}8*$ioa^Lh$p(!^xx>cf|g z%&`tpBjLGSE0+7=h%mN~BI>9O56O_f((ZISPIYGI@jOXi7VvD@<7*p2zyEC=c>l71 z@vKp}W<9yQW;tfAH6J7FzdasHIhp6T2t^*^433Qg_P_`8v#bT?Xy7XD0Yi$h!-kB? z8`!7SsK@UU=u@n6^6H9$&m?#ec)fMs0`9vYeUq2>#?NJB1eC}IU;BCnHFff~lI~P( zFbw2+D>4cQzZ}Gfm`nH#lqONLacN<~{dn@9&44rKSAK3AsU%AL7)Uuz1& zoJwWZQJ$z~reZ?@>Ewn@eh>|YSo+pf^22De{Kso7v<+Jzmr9k^XdUMZ^KQTvBEg%r z252~5{va=Kos8_Dc61dHbxNYS{4Hsh-v3qb+4xMR*Fm!tnu6+^YeBWxfRv}CXG3~lCs5JX6N&ee*0?>n*KPgNNHqD{gujBn*t zQdl$t8@Zo%+R+5#mmsakVr_=Ba>a{TyTw><$PX`qfWXlM9>%6@7 zw3GuYrv$MF>A&RT;7CiW-Br+rnn;YJ@AK%@JZx_a8eej5YMyBxI0VF9<%e^bgikD-kikZKEc7g(Qb{RR!y3j z9GHPa`=TfZ%(MKdU~Y*Mp_T8jGX}KmD;H?eTb!Pve`qj2_>jUpYOI#OJO9;ud>i=T zK00NJa4elugb=p5!$OK4oi}qYo!8_Z8zr||FyuRA4=jcFT$);1x@XL>yN>@iU1413 z&1!ZW@O*hy3kY^&^*+%qo_T4C3IoCy1_(9SK0j87q_$4^4<`|wBdKucvrogIY^F^W zm`(WVxL@PPqUtAKnt(a=Q^z>D<-S%n(W;fjIR7Y{Q&I3o`D#<&56!NBk2dFFhCab6 z;H6ORP`9fr+WQs1r-j$?DXp%BRt$hmne5n4T=2@@9DSXd9Uxu;X@wRe&ku8o{VbQ= zS*bAhN-6jU0y(hwYY8XeWI%h_*T0dLaG#&kM2O4+Sr6@BfI-OF)@(wfJwR9w9%~r zIU#<7lF!rjl{^hRD}iC(m*YV!2_Gqi(~7GJL#i&~PTgDzX%B;%I*w@qn^ffT>7U7h zLKZ67HWh8m_gahtvJHnUppK z-ND#ZE;ftS)G_`rbWNH5fW{|nt0iG(S{{`q(9pBBF`MVGp?z|-Bx`0p)r++G1iWmUmw(CX8DFSV$p_CKNxSBka0SYfl!}>zROZOJ z;mD?hikE#?t@esqsTb*=`Xw(3)H={4cu<9AX+@#xU0n$}e&yU*dO-x^$GNk~A`(+| z+WWrWg7gHvxg+e*6DQXbxCL?TI;8?xuwQj5-qqZ1^^cy?4q4G2IJ~t~imojqpa&HL zO7}F{-O@m{EOIX!@)M@);@({AzG3dZYiy61aj=e}VC61Fj`UeRHTt~na8}_3Bf0eL z=2H`ej=!G>HndqUf{nT_g0>}y+S%&uUR=Tz0F|{*fS0b92k#n>--;<^BsK++&o8?Q zW#XN1WD(deq{~ZZFDtTM?4%R&4c6^mYe6rQ^H+~ z{?jpcT{q26^eJY~$510C4Sde9F?p5wm4)m^EVCIs0eAs9hYh4p1`QBtC(Q}T%bm`X zdA6xMO>q|WFWEt%t{Saw1RKLHkO|7op}~YY{qD$M3|P*9lP*maNwYRplg0c4$AI0L zB3i{bMEnn_mk1lCqv&|bRKEGhOdKG@0Q?Y|!Go`cd%iJ29$Ew0s?N{pWC18|q_<`m zS_E(!IfD4c=jZhjT9z6BoRSAs`VvCEF}Ne>Kk+itDa`3lg+hOFTQeJmNNIMU=OCp*PA%Na z0snzBeol>auX&ab=P14zXVMnM-H(8c1^x!Qlt%Zr!EbID3@@;wV}j08hbmH=t=!?` z&`D90p0;$Il{5K0N#fq2i8w^hyyvkJ0~rM{zN?mKr#&0^GVZNDwVcBMRD%D-3a|Zb zDbJ4?C&WtBVlfJdr5~VN6#Ozp4pM0pPT7^gzJ#q1_h)&dTzMeEHm}8 z8Te$d245~a2@r-4%BQczetPm(A^k)K4+z{(ETP~D;JF-0E%hM(&q$iDfQZnGpcA)& za)}q$Iqqbev&EuI=GEmw{!7<#QcTe9uAu$Ht=IN@`t;*JzuH z*YU+9EJfT9c#EbVU8u*GD{qA*SG@EQ4#eTAtMWHf&lM~bUccqpD^pYY={BiiwMH+y zqc(cqZETJ=UiNgZ$6j`WJ4TsA5cV;zC^)VWP=tpW&~ap*%7OKkI{tIQZiZ;G9^GsS z(BJO1MQJmZ68v89}Kdt zeYQHx#d>ofU!6S3M`ikk?}njacBMM=!LR3n|IEx&&V*aIk+s#Wr{MKith@v z*U9v>JikYCDG*4ju#){=(y0fvow`aZHF{N&1Zbt+(t}FyBkDEIF^@K8@Cpz8>l@85 zqR2X7oCG@l<`xz5ru3U-eP>o3;H=Y6Xbu;R`2zt_yXTl$sp`5qsH@zpzGq&9L zrOs7pGgTdxOM0R=<4!ewYIFidPy9AWZ^WV9OaZ}@2K@F0Vl;iKzqya$JCkrRYC}Xt zchoGgP-Z+d+Xp2%IYWWcC`|qUi(4Yl-Z%8fZ{;%yn_o!2MZt75VRF2vhDtd_J4x71 z-h4A`R8~nF7u|Zh1AJwPMnl!~k(aM-{H^X6R+rmmWf``?dq}imJz|KQ z)P#1irHVgSLOtgb3qlYMUv3+H704Y~-(w7#96gF_k&t*BAm-R~fw{W8>U@5(_Xda4 z)2{Il=^C|?DFBAneB-s=s&NXT$wEOW>xOwq-s8Q|j{w}#B;EGiJL&1Cp3-E3>E)ZZ zKs6F2UG%xsdd(sLU!j~lpZjV@T1oEN?NmU)x3vP@U{;sJ>=MSdu>+2>hK(U(smYk> zX?=PU(d5|&|2>LPp3WL}^2Eh8t@oV%_iht*ww-a8HjiH9*o2+(=)IA@J(zJq4ihXb zb;=9!4sUfV)J&ckg?q0|a9Y!*hpT1Znz>j^{>=+Zriw5k5-&^24sQW}S2k&u_UTDV zN{UlOE*7dRu?>Uq2SshBy|;8vyW1S4TE#!vhz}wMJfKrtKkVQJXJhrS?>U4z zyhbLkhY;?jWPy$S!g_93%VKp9&WK+wmd0{)9PVZnwb}oOm zXRdB>L%Bk4Kw7A)nW6OeEsB$VZj`F#0A&}V%?=u~G47B=3GC};c;J75bM_-)(Jw+X zEk?6d3qcD2PqaPWZ&dCgvA$G}*g`XMVP+W!iZX{Ixoe)FB+~%0)O3>*Rsokc1i~Xv z)b064B?!G@w-h2hib2SV(OF~J*>bF-gw7dOm96cCm^B~MW%>G@LutH zXuV96vJ8e_%mWt#LM)+Y>>J#l$EDlmEWiDDPmn~2Wp67VzA&`i#48mAZN7#-zH*8G zkXCR}6Lo^F2mllC9YrK%><);!uz;+mR1~@$^e+mVFXPEcwYyW4`fAz6hD*m!-Kx-@ z`b(w+e!LGj5m685@<$UXDa;C~Kf7&WgO68%=VMM`gg_vZ%WiGEj}$MM%pd z5z&&JgdFjjIN=JvXAoz51~LGAk<1RWY#SV0H~r1_N?C%ajaBRWPp z?nqA@D?~xkBa`!cdLAmN3Ewci^D(Q6;8zTs&>jBWnN^2XPank6^U%V)>-n#PAq;GR z*av{q*rvf>Ol zAhKPMVt)juU<2tYgR>QvZd^*^-B@;_HtR2{6B`9EK<#@&m^NPIjmmutkza-bpI*Nm z{qsh%)dWNc8OGbvnotqJmsM&{iik%ivPjV2zira$o;z(02>o)rhqq&UcuDo$cvCK^9ngMER8&6795}P zI?7BVh%9^9sWLv}YxsvLe8>&+JQ380tJ1m0`?5E+qnIYF|kE6di{+j)}s2Q1! zy4I*|P&5!LijLFSIe0F%&p+3Kq6cxi?#py0tSr5r`(xAgHjZRg^%m7c8A=X3Jp)K# z25YOHx4>4Oa8he=o~@4;wYe5n(4r^?{B42aYti=hf-MKQ{?<5;ZJ);J}6ze&hItTn!!X@Aq#F~jj=rv7e*1} z8kpBkQ&x8b8Eg`W0%X*DDPNL1$4)Mx_A4Q7fnOm|`YV`6c{YIDnTUQMXOXstSv?0R zO0A-Pu>W;;l~cRJOboy`UF38)`97c_2U;${btbLQpKtt*)nZ-(D1c zqT#^TaD*Ui?=YRyVgh~80w+S|wT}@>v+_ibD*F*W)c}LYP7Lb`@pr;JNaQd*vZLa1 zl|b%iZrIRohL-!;R5S!#XMMj`xF-Q*uv0$Y>5v7_2z+txR9tXgk>sd%X=2rr%G(4U+j0s4)@p1PMw*x6*kIr90nbmld^5m zxNT#?Tjb-08FWP1+HVN+EPo9*&Cw%ESQLGN_V<=NmE|C)ic1DuR}~9cK^0)2 zyvKy~$hcf>X!uRh;nH~i9KmvZJ=}g%FO=D?Gv`sxGC#k9uI9mv@}S0&CAVv-bDbVW zaKxsFIYVhl^@q&&P^@yc)+3?v)#rw>Z(>w?xFd0n&A7P*_wIADk+EdIJxv{ z6CvUaQF*tZNZ?2wQG!x8=`Z={@2iL3z>Y}|C-o8Ep4w9%p7D=duW54@CfdBgR~qmQ z-!YCl{Aq&agA*==TPMBxx}?#ODJEX_gmt z%I5S%w9UHD8ieou-r;jc91 zf7tEpNj>F<^RsdE|Ch$|f5u^p?(;7+^8dh3$3`~L-oDx^$S zhxac4bam6>!O*qjr-p`p*B0s?agKmOZ#p|;)Am6=JG-LkrPy}0X!1~WA9 z`QOyv|AV$9D?s>HY!iL*FLbVfFdGwv)sfi$0uM(IhsEC|2zSnK|3fV0Uy~8?7ho`? zsv7G*yvzTIB@tqT>JGU7zxQCf>+9FdC{^$L2PxV^O zBRyh3@+a?wQa%~rqXuI|L(4~snSy%$F&L)5Bq-mLC{NSEWnfK#S%YuPbs>8~jhTzD z483Gh59}uti8z)&zYS!*yR)1;3aSj2;DkX#%34ayX^Ob@0f7V9bttyndNFIHD0=ku zA7ZcnTEQM}7L8+Lch>|)Qrr$y(VIfu3o7!zLe+oFJb6 zl5TEmXwlYYW~_X#x_9iQ3=9lS!VsBRtdG9EoaNva`W@@Bqbz*Mp6ONAKAO*RrlNT^qvmX6t%Q0 z<<_9Abu}*M2B$QSGJo3D<4Aw~;9D+V>5zzDFlc^0G1+C`Hh*F}Ss|HP!Wzu8X1B7|!YbJJ-Q4{A z2xhM;iCi>j07}xEE}CMvmuhKY5pgz?9}6rhDmrugwBKB;R5-Nayv8IAjZec{&E}3c z1&qIwQ_pSGw}x`!6=Yr#f>h42@bLEdMh*WYzI=5hpaQx5C`inm2TIJBr~?hKS9RU2 zd9T6qbqAruv3Q+_OSE-)WO`nw9Idu5QGV*}?;l=!T3JiUCwr`FYEqBMJesdI+)Zak zW>e4$k;?SA2t8V;?Z4`l*4NMGgOc3>!IpCs3D!#uDPSn?D#sxRZd+Na**-s=+YUte z1xom!4fME>>JnJTd6&j*m$U2*B@3PJc-)5az%1Ex>d0jZFztaexe75jLmjo2sttn? z7Sg$FfFn@0A|UD^vBCR`H1cWecVEw-^N^raD3=0WhvEQk2BGYYBc?}h=g5&kP=Z(b zX#VSDGNX8jKduqU~f8@)Qj$B)xGlE!wpI$7ctJ^c4fBE>`-X6SSNMT zyhlPH=+$<#(y9h!9@>TLu8-M4lrgn30xlknWNgkZ$Q_=#I14@A>a{ zZ^aMi!})T4hfiyUS?gI(-OqLB<;SFNOd09~N`Az|bQff(&{75WhI{s@&`0 zXcm?O{6WO+^z`)0LoxKv7XdCHht+TX+_uHw15k7JQ0g$Y}U;8 z6L`wC7!V+Xv8*2Ylq}F)T&_jvO&s~V+YXa2$M}Yb{xiN&snyNlL~ODqCTY7T{&uJV zoyaX_i48qTpq;yUY=X_y3=|?hf{hRA*~W`G(C$Diq9YbO4_1@Qjj8rZQtS|Fm-4`& zT0iU1M!+*W0p7r_?JY$pL-oWor@SxtH_G_$1rX}+##p4fO zfi!o1gqha22Zj)d)0*|f8`Ul2NDWCLMx1C;s=}890W8+g&oJ=ZCssX+ z$Yi!ocrexCHwl@Cf0%i2=wGR4FZuGf>>)Nc;f8Z-RNtF=A#AbSlBKv@Nn|^!cSa+WI z5kTgh2Wk5wlijnQtb90qN0F0(Ww4C9ytHf?3F)B^<_2odw~m%g3#0F{y+;5=zx#tU z#Q@H~*;-qgLXXBbh=?sr5|p90<@o%CVgiA*nhP3Y&Q}pXLvDTCO$43yjkX~y5qVph z$_?lT(*dHZt@GV7&!50j_00x2CUHQy?G(JhM#MCt94t~cT$Q(F|J<|zyad5uHS9gz zznqf)z_+a+ARwH>A+1XOPi<@iYR8CoF!`Sp6KW~o914#n>$Q&g$8-PLo)Z*+*xQ_o zpg$=;9O6JfMd}AKGBWl6y4`Lz-_ve|8Y^q-kA(oi+uoL~Z_S|lAC)VR9B{WGz;?CX zpCYkzBkq8MP%)B9WP7|D;QXZpFvTA3^$sBXZj&;99V8%y#(T9GItQjmib996UT14r zd(i7s=-xi`TDK1>!e(24nkl%`i2V3f53#wqImZgG^~8OEH_)Mj!nO0b{#fXlygc`$ zu=9HC1?>7FYK`}0Cs?b(>a*ZpC!IG5#^~=!x;Jyv0jfP5(J3)%31-bzkdb-sdm85( z-P6;k7Q zyC$QksAy1qVSYXWV$T`G^$37j$u<(#7fQ;?wB2!Raic(Ce=D#t2}((IHUBBV%eQEI zePnCe6+^$Qt*;NcIQG4+yh+mX@~Y+H=I)vYa!TH#aahmPx+8H!{$Zo=hKqW5RC@t5 z&(SMTUwu~HZ`9x)?_GToI9-~lTTPlb^@Ejj=!eS8Rn0ro-wC|2tW z9B(D|3sR1{IyxIwJlsyD_HUZ+t~QX)t8Z@2v4E48tg))2KE z;M*N|ayf-bgYB6S?^3#b!UACg)Pa}}A4~zFTgXQ)9-f2+u>dp-N*POl1v6%9N_T(v zW?mxRSNL3dxNnt@_P~JbG2bo#R$4p$+wJz>w&ZCLF6V8pmThgm>s~RW09llBcao@t zJj%v1uxDFCMn=@D9G1ce2ngcAu$&yGs*Qr0muo*VlvPydZUpN~fE5o&hVm6b1KEe) zzL)wx16!?6(0Coc7DoN`at8=X=NkgopYCV}NMjv?Jkzeu+%~m9@bv z`8Gv(pf3mNyTo5DNq=pPP;)?n7_T0seL=W;z_(>^eQ2;Wd$lzycu(*J;=;`?p{Jv3 zxe(m%;mpKbt%28DRs)=z8q@^?e^B2EF>Xo{R7jWXjvSGt%H5_Q(u+m*?vu zBP;tj1yb*VZp)+dzH!tU@`rmhX+(L`G^+-u7;oDd!0d@uVgN{+M;zymlAQTQl7CNL z7XG6omj`52C7uJqpQJ4C5*#e*+g!(gl;qYolKkC!^!<{+;$t z_c&%zRLdGSqKD>Bqm=aTeC4TVDASFRVY_?yKxqT9{!e+!fZbsWmGn+oyv&V_qeLhs zGJlI#ckVycF3kT^?Lzk5zf30(GtvxGN8;N@Y84*^Jb@9#1u{p?E(jfw`@e5t3VrlM z_1ScUpm`seL+OfR-|c$uU;7aO(Ia!0@4qPduP^`m(GLu)RV+M$#9O0v|5`6?T*An= zOOG2+LhBdmm>KlMM>Ua~oBNrhX~z9(U1c@3EfUYgPQ2w4fDTbm8m)Onv{Ur@?hYR{ z@ye5{OIE? zHPF$iiPir`jf_qp8ar@C5Po{w)v;6D2gNu z0;IL9soF<=YwR6+?wxGm51jeREdsY?IsE4-Kon!Bht*fx(AV+8beU?Zz$RG5DgC2C zkO+xR>JHq2H5T7H2SMxsnK2oF#8&a1*w3fOevIoXw;b*H;_mLQ{N8{%O*$%U=05q` zTeip<*iU%jGtcY(M&ZE2c4bAtV!)^fskW#6F70`|^#KR~k+L2F3^`qG;Y4XXkU~FJ zz3Tgu71qbjT`N_uIr0h$J|zpd9AULqe!AzK1VbWT5;6W*Cp90Tych@Zm!|>m7C1 ziBebS=J+Iy@jbdBI2^2UybX_vTd6-%dmA3UKh6;IVW+6OukX`bOK{MTkdTmG{bjx_=3R;-bPie3lkN3%CYlg*h zSfD_5RP)Kp(9e}$sAnUv6$=#A3ptFUc6aSx>BG|X(G3q~z8^2;8n~+i@I;Pyp}XNc zxhI)Z`k1q;%;y*ef2OXU`AGYl(oc*EmuZg{l&y{^szPhCM3-}1a(2i|nDBntX~g>u zXTS&~iG3}n`20f<7Ez~#-e>^s6q|%oFT3v@yib@%MRC5zVRtC_RVh7o5ckLHy?~;v zd_MDmWtHV!FyCE&z}BJm3YI|Mcm63h_I_KN$VmCa(q(KeFOI+5`lF0 z>#gT(SUElVEX*IEmltt2YKE+Xa)^w}>337D!vSfBx>WI!1HPtx*xtEvVDv-J0IX*@t30p(nkU!M#=uoS*j&75{gyprRd@9NW|fbfCSXWaG`{RIsH zlF`TF;~OUi+Gb`=UDc!7NQiak`%?1234kPd?> z(_gl9YK9asTd6Qy{a6$I|Qa9dEC9fFYU~7zuCBuW8fUpwcHmE{R=# zxn~=Ulx!lQDh_%HWIK`YN(&9;0lJacv5@+!-lP=I{EskRo07P6^%mt~TjIbnz@*hx zV(QwpInK#_vH#v`cA%+iu*n;|s@1q(rrf6Bw#=ee(&}bUTR0wsHMi7I0|5RkbG+|w z&r5x;5%*1U*PC1V5?rY~A-DK2Z}R94NML0;dT$KhV(RVO_ZK7Q^EmjnyXXG~1viUL zG$xcXwtwCjm14OPUST8=$-DCHo_3hq=6<-GFNOEq7b|*R-TWSZTcWWS(Lei6_ z#iNO=dDPmH_Xa?Xj$_sabct@1!yW%DwbOEkuHIgbm5JfWEf_qX%YXWVqR)%GuL1R7 zr=JhenAHoj0BhHP8@`yKfa7vRj|QUU*#TSpMvH3v*}{fxya}8rkbXI5l>8}6=!+}` zs4`pGqla~NO(64~MgJ8I`xnu8!_=RIj;BWNtF$o?w-!$)2y90R*uc3C)&|WYWR80V z6?4IHmId@#_q(M+P69vp5fi>6e<+~(rn#Eh#(h!=sFv$!_7P?Z6AH{C9XUBrG5F+l zuf-6sDwinKttGV~Z|heN4R(0y_MrQLjUY$kMcy?1-bUIXMd&H^-JkN2U}CmWoT1rZ z&3wlBqLdc?x1oJ}$U;~WSRvmRnAJN0!kQk(;KQGM5(QilR5?x0`zK|ev#pjs(X?ss zu3lVxnfM)|zyX8`!#Peq-?j(I5TCx1oKGGBWHm5l2(&@v0Cs6l!-BHuRa*s8y4h$Y zeu2mV_Ts|FAanNGmE2=>HMNY>JAUZ;O5m0}ZXO;IT+UE7P@I#8j+p8mj>%Msb0Q`; zOFJF5Nz2dd;QCJ7;GO4LO`a_BEf0+VadkFf1RU}_Gdf45$DYxcreE_g1ia7k9@SYE zdwrpF+xZ^gs%Bx4u$w30hd7qC-7iYs;)$VeJN99abwfLbi|Yrb`M2QrVzwMCV2KsC z6iNe^SzhM!6skbcQ1hS2ee9t!(Zu2w`S;fMkplWZMccQeVXZJILLMcS6SoxlT#}LG z&yx!-Cc*AbG>W?uYHL4^IPu88NZ|UqLe|>5On5Cx!Y_rhbx+^7g)8tVJvhc@s;sT> zC(*=fE6LxS5yKy_5lgpz70Z}j{ zY59_5G>>@M`_2FpYk|ZA$H+NBDNxp6k_pZI#}6M4xbcqj>^R9PDsoa9JXrxKoS)3@ zzUk;-Bt^s&C#Z$yy+$qMjWFBd!B(S4g~)0s!{Bq z@T}pMt?wUmDY+{pQOWP0yY^W|HFcYV&nG4Yp!;ni{~5H(uU}WZXCH+Vnwqqg$%Nl) z?QmV}Zt<8$7Np|j7NHER^acoX0ri<1#Vsnhea2ioEZMVI?m`F)Y-(`6uo06v7bi(4 zB~!6H5-@7`4UGo=mC$mB$L-skS@$RFnK-X7Up>-Yl;5;V(N+{v(!`9E>}Tg4&%&e} zo5UEj_HA6fvTWj{>eRCy29a{j)?Qu_@4noQ>^z+r%FHetLIlz3=PcjN`Z|J`Rr-BU z?}yM>Ll!3Ze)Zi9?UqaGJY6%Ph(Yei*|Fm+PzUTu)3zV$~so~r8! z726?@z~NjO(_|FqNj!{0L~Cj*ARDFLKIIG*26w%`wgil(uW;`7NVBrtpEt-+<2M>p zsUehayn5k5YwZ;H|X>{IOD6*o3 zFK*Dn9k}N~cBQny=RZg6o0Pnq8@10L^}C`;%c!Imk~E*6X-K6EcOye7C%A+}Q4u@n z(P_AHVK-}Ad#9C^RXo#{Rptt*&oGg^JO36H-6gv^L#LYW1Fq^E%ADO-L5vqz#sqtw zK^A}_z)Oo3b4~Y9B=C!CS?V(2+LRzQo)5%eSRq}m%kjS(m`$XA@iE)wEh6~H_2R@H zzaBk$dqGh>F(*|iEq{*4EHup5wGUcYH5S>4cxdM@pTIS+wN<9k!TJFve68!VKN%Nc z7i1>^x(_&xxg}AGTsCRmi&+JNoV6u{q~DR6CeU)-4ML-Crs)!~3iObo8NUXwoC)Sb z!_C?H0|7+`-@(pHWnJBuwb@D>&I_5n!Pgb+lGKR;HXVJ*QbUfBaJbvIV{euAuhe07 z%AoiZZ66;&N%e_#<5tmC_;ZMhVu6e3)D2p(>(30M0FEij4DBzs+7WcBAR*Qs$Rs$aKi7fJmqmo_k>3bbDMcXp7Ycr{5enFNnQ4Ruv}0-f2b zM#($6-tEq1qxmGN$_Uu~{NmAN`W^ZEHVp3ExBrTtUq9*2+zh|VrlyMZUA|4o+1`i9 zPe(iLNlylg+ohL~^T{pXWPQe(U1{7#)LHU z6$uKe`9rk}{oEtNz)bINs_z?Ws& zP&g3{G@6k5#xb;+#Qta^_Po<=XT3?nqUA1~mP;CgxAY7P{6aq^GH6F(@rfg*WMBO^ z8!YrEFmwT_*AK)WT^?HhFhF@NHA55M)Q-L6!Oq}ZUBIb5fKRF5;vF(vvkmylKAAz? zCse`Mrj%vHbDwyQwZ2{!U87t|fNexpPTYK|TX5SjbQ6X+hByEr49W_66D;U8U4BT$ z^EG5qAKG%G6cA3i({YWP(ft;{&4c(v?ThB;LUB`K@@NTAlLRIt(fq;Fkl3d(0t8`O z)0MC%-i-sPY?CQ1A-%3XPvIwzpOPg%aaXp13QvzN74@m9j^@zGXm?VY*Q3GTzE|uC z@Y)zBp$NkE?w!==lVr*~1OOl8k?5PmJ9u=eG%d3dMna_*dbln#Vb886P;0gesamT< zz0+uFPZ9-)KRoTlssxk;sn#Se^B4?wA&14USH+ze&t+OJqQi^^#(Z6&$##;uzQ>%; z@Rg*xsXt+}kTaPsnKGc%*7V{KL9Ze)u|`>cX=VK>OVQ7?vMW9!(B| z)ty?n=E4B#u$Xo9tJbm`oni%QyIBz*9C&RP3*s&tq#`;9!GB&Bc6ZEO&K{|^jWQP% z<18Y6Ly?YWjMP_Tc&)RrORi$|{LIP^KaOgG2~U;(HhnPLR`I-l*$X zZ#7=s8yMuX7OogS2v~e#qJWyS5I5tXMN0zAu=Ki<+*#u2J5{wW7t8GktdG@S;Uzkh}1(IS5Nm7>-W$%^>&=iSY#B`~D7{ z@z9YiKQSorC^dQqsIhW1!oEQ0@HCsuR=~WUCa?0;9WowO5*F~{o)2KmNUSwJo^q_r z>aIQ{lk0;sHXKN{;Cd@2Ju!+54+{f~6VK(s$Tx8%cbEH;S#&C_RCXUft4~cGKZpBL zXIIBi2SQrtUykAG3n7B26{ zN$^=hjGuT!S4G7HV8`OUKKK--aL-|-)?N9rP13_3Av`QBEScE)E}LU1v__vE#f!|k zm3gPO?HA38dhR=o1gPZ-|7dnbmy6%1t#Vuhu;|`dqVMD8380!IU+RDYPaMw~g`k^K zP;JvIP-rkZE=A0wEtJ&}$cy$*V(}VHoeTSkuxmXZxVy~HueNb@WM06#*x6o>iMiLy zS7RG$_rM|~RsxG#9tWi#81DGf&F5c$G4_Rn$wS(JU(pvgsI7`)JQUVJ$?ZQ|>+Y!bem$YutThy`Y~{tD8eA;{#MpnVP%m?=Iq>xKnCMhk4edO_G00=y>z^&i0S8j3k z*svf55^E!F9ITZxv9o-_9ooRW_n1w;Hl0>I0k1$@&(zN&sV(;nT8n@(+SM3y!C@nIRVdZa4?CHBwcuqfIhXXv3}k?qii5B ziGbksn=z202*_xM0musw_yVy2bq9*A`s=B|c@lm5Jc>VKZO1hQpuH90z727t^xO@#x#PZ=He8;wRz{)4&Huu709LhUbckrBp(2uovJ86olIUeBSs><{KV4QGv`*PS>_k9|ylM zqnr4%7fS^01MJ5GX&u8lRwZkLKYm!v%xR&)L@klg?y#SmTdaTEwv^x5+cyIlIh%)O z4bD?|-r*@Mg%&PI-MdgG-#8p*h;<~+VtgblT)-Gymu(V!Uh|4*^pv*`vLx`E{&wRU zi~>Ix3cLWD3v0kwK>Rxqq<~fS{(NCxUTlW;L(cbn`~IjFD;uPOH5InAG#yb;c1Lkh zQVy?gn`2eofqL5ZM(;gd(xBkq6UZMnzv3~V9j877O=irK)pnq*`xtgaI=j6YuTQBz zpCsG+*2MaC)vSeOV|_zDk~i;Ou&y=Kr+S1yN_4vts8SlgzoQudD8OA~942PA(XnTZLckUCX{F4a zlnC%%U$Q{fymB!Kk~rlE5{xskkX&4~JWT${N}fZ4VOm(>)FdOw63o$Vi-21^($aJHe7Rg zox5lf+|NNeP_L2+wO;+k1}H{@w50zW)U!@4cF?ZaS1-`~l6& zrNu=jOi3=H=>aEjPBk6;MeXs9}ane z@SmD0GSj-l0_?guwO`;HlRo7bn*$<{{|CzxVD4-$z#SiWN+gbq@O&8ToqclEm&Uf& zq=hT!yVWd&E9C;OKa+ZFD`8SPWH}J>zl$7{Az8SeavOB79aS9+E&9-8HgWa_^MoL0 zz&b;PwB8tQRXeZGoORG`lYhkeYd#~{}gl%O7)G+?yHva45wz(QMp;{){a(jif?PZ=#Ky=SNkPC=pv50+} zf97dNs9Avxr_;p`nHkLH;Jy6gB0! zI$IYX7qMe5k{2;ze3J7PVK0~HV`@cl*K)RZFw6m1%CUCZ9owQM*lzxKt&vCl=8_8V%C+TLY=M4g^tJ^aT9 zMnzQ+m|FA=0wNO1-xnj$Mhhb9*NN;~D%|6cfq{dcb1kkmA{@f{-ZMgi7kxfdfB*FF z3!Vzm$w2cOSKkCfOL%>qdwDdoxrc|xF7MoE!>N3E!iq)QgkEhl_CK2W&%J)MsK$u? z!?6_@gTli|D8AROzB*Nx8x5D9)y^9(XYlLOS*N3^(*wop6WrWgC+vT|=wDB02L10p zak(3xn5g62Hw1JZ4IS;ra&O|`#f6tZ`Mc`7zjc)0K07DphwWM4qV78iptvBhpb_M=^6^SydN&B0ArOOIT?2s8ErSJ366-|fPPi;v*F#9@D6WG1O8?H z<~7lU{Hm?EFaB9#|7_swWul$OnItL6cye`3%>qf!RtgL z2wAaxE$46l6xBj%E-RUku>N~d{C$B*2+q7W^(05?xA{@}^oBh@??{R4_W|-p4KzpP zjm-Id#l+H6%Q5E)4F&%?pQ2w35skE)-lbXmzC=wiK!e{caLZ|ao9YLeqVei>3tvh9 zf0zFMEWJVS`#)cJucHC)JzK;6q8SX5akg=|!8^-WpFpv{zrS|6zheICRpweZBLl;a zlM}bWQ5M%Gz_nRzzp(5OqA?{RAP{E_$>OyYo>~H8ht`0gAZFph*Z{o@)u%##Z=nCV z$R}_+II+K%L?Psmo+B0bdWB6_H&0nZLxbObz9ZXpW2DWy*Xrr&!SE9E8W1cR9_Q@j zl%6JylLZ7Hv2N>_n{3Wp5*SVO_xH0e~!?Jrz^cJ6m_)cU*Q_?}O=VI9!|*9{{NnOfunSQHp}H1LxLN>@0nCZfm(^ zK++cz%2d+E#bVb7r=|6BCvIN~p=$8cfS`?^O~cK^73G=C4N!)_;s$4eTzcy@{(yR1>PJKiP9#lL@p&Mjqx<85~@@IK^7q zhbGDCY*5;tPJ!l9Aun9E$D$(_XRH%>tYs^0W}ihl;?`VU)eDk4rSkjiH2Mt+0$rigyklVOrH5huB~Z3aj=X{yG>sm`|gMR?QE+GdPsa>lbpz ziBbmhCo2b`eGvKcV|XD_I%p_3gecfbN{{x5Mc!bdprX!Zcwu!dkVwWA=UKi*LLoo9 zxJ3+^i1zG}96MlwM|s;vd3zqKrwqSKnXAXYTar5_`L&X$ary@Wi*qcD48uCB6|oYzkC5%de5{hsiU3B8bv9R-TW=u>&jtC zb6d}aCB*f3@4|Zb9_(#Z-#Vphx1I)^s=IEE_Wk+Vib%G{dYhNE@5utyzN1-=3T{kr9HBCtnu?;)*g7+#C-Ip;V{;g1%!=dIo1<;*U$LQXoSAIGs##L zdmgv2G_3qV0CK=E?1a#eI41ulQ7COZx zns5$AtvhoO5L4&Rg}gaXxKEhgKw5tB(@uh=Lv)mv?~XlZw^q9d9m_A5U_j-*F~A5x z#P;rVZNQXPkW0BO> zmhcgawyqO$diAfH8yh+&MPcybGgG;AsuZm|Q4w8NCQIE9cKJN?CE2+-IHE(ikJO>I zGu3(&24^hGV&RfVw6UaAREo|BgwtrDH0;O&X<6FexHan6F7s0HKraQmAUB)p=;ksykIJP>>*U>LPF1QNClhI7A`#_ zpG_swyptL+ER$x{D^wRrC7^E2o22gDS9yJ6&wd1kPy_b?ot|$GK;iRqa zJRHXeu_#)RP!9J^e0_Zl_&p9}tkjw9gnJNY7X+zvz1l9UUvylQ4DagIpbY}_I_3T= zZO>sjcJ{Adf5k-2#owz06vdahSm8z{V^lC7j;9sFH_*6i3B9 Result<()> { let block: Block = generate_genesis_block(&load_spec( ¶ms.chain.clone().unwrap_or_default(), - params.parachain_id.unwrap_or(200).into(), + params.parachain_id.expect("Missing ParaId").into(), )?)?; let raw_header = block.header().encode(); let output_buf = if params.raw { @@ -261,7 +261,7 @@ pub fn run() -> Result<()> { .chain(cli.relaychain_args.iter()), ); - let id = ParaId::from(cli.run.parachain_id.or(para_id).unwrap_or(200)); + let id = ParaId::from(cli.run.parachain_id.or(para_id).expect("Missing ParaId")); let parachain_account = AccountIdConversion::::into_account(&id); diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 626b3403..e6040dac 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -14,15 +14,15 @@ targets = ['x86_64-unknown-linux-gnu'] [dependencies] codec = { package = 'parity-scale-codec', version = '2.0.0', features = ['derive'], default-features = false } -frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false, optional = true } -frame-support = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false, optional = true } +frame-support = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } [dev-dependencies] serde = { version = "1.0.101" } -sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } [features] default = ['std'] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index b1f26f42..708c01d0 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -11,7 +11,7 @@ edition = '2018' targets = ['x86_64-unknown-linux-gnu'] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.6" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.7" } [dependencies] codec = { package = 'parity-scale-codec', version = '2.0.0', default-features = false, features = ['derive']} @@ -23,53 +23,53 @@ template = { package = 'pallet-template', path = '../pallets/template', default- # Substrate Dependencies ## Substrate Primitive Dependencies -sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -sp-std = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -sp-version = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +sp-std = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +sp-version = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } ## Substrate FRAME Dependencies -frame-executive = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false, optional = true } -frame-support = { git = 'https://github.com/paritytech/substrate', default-features = false, branch = 'polkadot-v0.9.6' } -frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -frame-system-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false, optional = true } -frame-system-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +frame-executive = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false, optional = true } +frame-support = { git = 'https://github.com/paritytech/substrate', default-features = false, branch = 'polkadot-v0.9.7' } +frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +frame-system-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false, optional = true } +frame-system-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } ## Substrate Pallet Dependencies -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.6" } -pallet-balances = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -pallet-randomness-collective-flip = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -pallet-sudo = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -pallet-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -pallet-transaction-payment = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.6', default-features = false } +pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.7", default-features = false } +pallet-balances = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +pallet-randomness-collective-flip = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +pallet-sudo = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +pallet-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +pallet-transaction-payment = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } # Cumulus Dependencies -cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6', default-features = false } -cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6', default-features = false } -cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6', default-features = false } -cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6', default-features = false } -cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6', default-features = false } -cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6', default-features = false } -cumulus-primitives-timestamp = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6', default-features = false } -cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6', default-features = false } -parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.6', default-features = false } +cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7', default-features = false } +cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7', default-features = false } +cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7', default-features = false } +cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7', default-features = false } +cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7', default-features = false } +cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7', default-features = false } +cumulus-primitives-timestamp = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7', default-features = false } +cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7', default-features = false } +parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7', default-features = false } # Polkadot Dependencies -polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6', default-features = false } -xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6', default-features = false } -xcm-builder = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6', default-features = false } -xcm-executor = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6', default-features = false } -pallet-xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.6', default-features = false } +polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.7', default-features = false } +xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.7', default-features = false } +xcm-builder = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.7', default-features = false } +xcm-executor = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.7', default-features = false } +pallet-xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.7', default-features = false } [features] default = ['std'] diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 418fbfb7..025c5371 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -522,11 +522,6 @@ impl_runtime_apis! { ) -> sp_inherents::CheckInherentsResult { data.check_extrinsics(&block) } - - // FIXME: is this needed? Unimplemented in cumulus `rococo-parachain` runtime - // fn random_seed() -> ::Hash { - // RandomnessCollectiveFlip::random_seed().0 - // } } impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { From c115b3a17b36bdd0801266919b7738bb925e6321 Mon Sep 17 00:00:00 2001 From: Alejandro Martinez Andres Date: Fri, 9 Jul 2021 17:58:50 +0200 Subject: [PATCH 34/91] rollback expect para_id (#57) * rollback expect para_id * Update node/src/command.rs * Update node/src/command.rs * Update node/src/command.rs Co-authored-by: Dan Shields <35669742+NukeManDan@users.noreply.github.com> --- node/src/command.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/node/src/command.rs b/node/src/command.rs index 916743be..7b986d38 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -65,7 +65,7 @@ impl SubstrateCli for Cli { } fn load_spec(&self, id: &str) -> std::result::Result, String> { - load_spec(id, self.run.parachain_id.expect("Missing para_id").into()) + load_spec(id, self.run.parachain_id.unwrap_or(2000).into()) } fn native_runtime_version(_: &Box) -> &'static RuntimeVersion { @@ -199,7 +199,7 @@ pub fn run() -> Result<()> { let block: Block = generate_genesis_block(&load_spec( ¶ms.chain.clone().unwrap_or_default(), - params.parachain_id.expect("Missing ParaId").into(), + params.parachain_id.unwrap_or(2000).into(), )?)?; let raw_header = block.header().encode(); let output_buf = if params.raw { @@ -261,7 +261,7 @@ pub fn run() -> Result<()> { .chain(cli.relaychain_args.iter()), ); - let id = ParaId::from(cli.run.parachain_id.or(para_id).expect("Missing ParaId")); + let id = ParaId::from(cli.run.parachain_id.or(para_id).unwrap_or(2000)); let parachain_account = AccountIdConversion::::into_account(&id); From b52e3947c74a73ee6a9bd7b5a7d418a00eec7647 Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Mon, 12 Jul 2021 20:53:25 -0600 Subject: [PATCH 35/91] Update to 0.9.8 (#58) --- Cargo.lock | 1065 +++++++++++++---------------------- node/Cargo.toml | 92 +-- node/src/chain_spec.rs | 2 +- node/src/service.rs | 2 + pallets/template/Cargo.toml | 12 +- runtime/Cargo.toml | 80 +-- runtime/src/lib.rs | 22 +- 7 files changed, 514 insertions(+), 761 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 783570e9..c3a984f5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -87,6 +87,17 @@ version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" +[[package]] +name = "ahash" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43bb833f0bf979d8475d38fbf09ed3b8a55e1885fe93ad3f93239fc6a4f17b98" +dependencies = [ + "getrandom 0.2.3", + "once_cell", + "version_check", +] + [[package]] name = "aho-corasick" version = "0.7.18" @@ -122,18 +133,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.41" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15af2628f6890fe2609a3b91bef4c83450512802e59489f9c1cb1fa5df064a61" - -[[package]] -name = "approx" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f2a05fd1bd10b2527e20a2cd32d8873d115b8b39fe219ee25f42a8aca6ba278" -dependencies = [ - "num-traits", -] +checksum = "595d3cfa7a60d4555cb5067b99f07142a08ea778de5cf993f7b75c7d8fabc486" [[package]] name = "approx" @@ -236,12 +238,11 @@ dependencies = [ [[package]] name = "async-io" -version = "1.4.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bbfd5cf2794b1e908ea8457e6c45f8f8f1f6ec5f74617bf4662623f47503c3b" +checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b" dependencies = [ "concurrent-queue", - "fastrand", "futures-lite", "libc", "log", @@ -312,7 +313,7 @@ dependencies = [ "memchr", "num_cpus", "once_cell", - "pin-project-lite 0.2.6", + "pin-project-lite 0.2.7", "pin-utils", "slab", "wasm-bindgen-futures", @@ -359,7 +360,7 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.6", + "pin-project-lite 0.2.7", ] [[package]] @@ -372,7 +373,7 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.6", + "pin-project-lite 0.2.7", ] [[package]] @@ -458,7 +459,7 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.7#299dd5fd3fabd99c3c919f1312001283ddc5b365" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.8#55ae3329847e0bbde51c9d45991d99f444777555" dependencies = [ "beefy-primitives", "futures 0.3.15", @@ -486,7 +487,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.7#299dd5fd3fabd99c3c919f1312001283ddc5b365" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.8#55ae3329847e0bbde51c9d45991d99f444777555" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -507,7 +508,7 @@ dependencies = [ [[package]] name = "beefy-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.7#299dd5fd3fabd99c3c919f1312001283ddc5b365" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.8#55ae3329847e0bbde51c9d45991d99f444777555" dependencies = [ "parity-scale-codec", "sp-api", @@ -681,114 +682,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "bp-header-chain" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" -dependencies = [ - "finality-grandpa", - "frame-support", - "parity-scale-codec", - "serde", - "sp-core", - "sp-finality-grandpa", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bp-messages" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" -dependencies = [ - "bp-runtime", - "frame-support", - "frame-system", - "parity-scale-codec", - "sp-std", -] - -[[package]] -name = "bp-polkadot-core" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" -dependencies = [ - "bp-messages", - "bp-runtime", - "frame-support", - "frame-system", - "parity-scale-codec", - "sp-api", - "sp-core", - "sp-runtime", - "sp-std", - "sp-version", -] - -[[package]] -name = "bp-rococo" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" -dependencies = [ - "bp-header-chain", - "bp-messages", - "bp-polkadot-core", - "bp-runtime", - "parity-scale-codec", - "sp-api", - "sp-runtime", - "sp-std", - "sp-version", -] - -[[package]] -name = "bp-runtime" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" -dependencies = [ - "frame-support", - "hash-db", - "num-traits", - "parity-scale-codec", - "sp-core", - "sp-io", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-trie", -] - -[[package]] -name = "bp-test-utils" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" -dependencies = [ - "bp-header-chain", - "ed25519-dalek", - "finality-grandpa", - "parity-scale-codec", - "sp-application-crypto", - "sp-finality-grandpa", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bp-wococo" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" -dependencies = [ - "bp-header-chain", - "bp-messages", - "bp-polkadot-core", - "bp-runtime", - "parity-scale-codec", - "sp-api", - "sp-runtime", - "sp-std", - "sp-version", -] - [[package]] name = "bs58" version = "0.4.0" @@ -884,19 +777,6 @@ dependencies = [ "serde", ] -[[package]] -name = "cargo_metadata" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714a157da7991e23d90686b9524b9e12e0407a108647f52e9328f4b3d51ac7f" -dependencies = [ - "cargo-platform", - "semver 0.11.0", - "semver-parser 0.10.2", - "serde", - "serde_json", -] - [[package]] name = "cargo_metadata" version = "0.13.1" @@ -1102,19 +982,18 @@ checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b" [[package]] name = "cpp_demangle" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44919ecaf6f99e8e737bc239408931c9a01e9a6c74814fee8242dd2506b65390" +checksum = "8ea47428dc9d2237f3c6bc134472edfd63ebba0af932e783506dcfd66f10d18a" dependencies = [ "cfg-if 1.0.0", - "glob", ] [[package]] name = "cpufeatures" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed00c67cb5d0a7d64a44f6ad2668db7e7530311dd53ea79bcd4fb022c64911c8" +checksum = "66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71ef" dependencies = [ "libc", ] @@ -1379,7 +1258,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" dependencies = [ "sc-cli", "sc-service", @@ -1389,7 +1268,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1413,7 +1292,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1443,7 +1322,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" dependencies = [ "async-trait", "dyn-clone", @@ -1467,7 +1346,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" dependencies = [ "derive_more", "futures 0.3.15", @@ -1491,7 +1370,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" dependencies = [ "cumulus-primitives-core", "futures 0.3.15", @@ -1514,7 +1393,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-common", @@ -1542,7 +1421,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" dependencies = [ "frame-executive", "frame-support", @@ -1559,7 +1438,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1578,7 +1457,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1606,7 +1485,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -1617,7 +1496,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1633,7 +1512,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1651,7 +1530,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1669,10 +1548,11 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" dependencies = [ "async-trait", "cumulus-primitives-core", + "cumulus-test-relay-sproof-builder", "parity-scale-codec", "polkadot-client", "sc-client-api", @@ -1689,7 +1569,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" dependencies = [ "cumulus-primitives-core", "sp-inherents", @@ -1700,7 +1580,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1715,6 +1595,19 @@ dependencies = [ "xcm", ] +[[package]] +name = "cumulus-test-relay-sproof-builder" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" +dependencies = [ + "cumulus-primitives-core", + "parity-scale-codec", + "polkadot-primitives", + "sp-runtime", + "sp-state-machine", + "sp-std", +] + [[package]] name = "curve25519-dalek" version = "2.1.2" @@ -1780,13 +1673,14 @@ dependencies = [ [[package]] name = "derive_more" -version = "0.99.14" +version = "0.99.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc7b9cef1e351660e5443924e4f43ab25fbbed3e9a5f052df3677deb4d6b320" +checksum = "40eebddd2156ce1bb37b20bbe5151340a31828b1f2d22ba4141f3531710e38df" dependencies = [ "convert_case", "proc-macro2", "quote", + "rustc_version 0.3.3", "syn", ] @@ -2185,7 +2079,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "parity-scale-codec", ] @@ -2203,7 +2097,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "3.1.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -2222,7 +2116,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "Inflector", "chrono", @@ -2245,7 +2139,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -2258,7 +2152,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -2273,7 +2167,7 @@ dependencies = [ [[package]] name = "frame-metadata" version = "13.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "parity-scale-codec", "serde", @@ -2284,7 +2178,7 @@ dependencies = [ [[package]] name = "frame-support" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "bitflags", "frame-metadata", @@ -2311,7 +2205,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2323,7 +2217,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.0.0", @@ -2335,7 +2229,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "proc-macro2", "quote", @@ -2345,7 +2239,7 @@ dependencies = [ [[package]] name = "frame-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -2362,7 +2256,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-benchmarking", "frame-support", @@ -2376,7 +2270,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "parity-scale-codec", "sp-api", @@ -2385,7 +2279,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "parity-scale-codec", @@ -2526,7 +2420,7 @@ dependencies = [ "futures-io", "memchr", "parking", - "pin-project-lite 0.2.6", + "pin-project-lite 0.2.7", "waker-fn", ] @@ -2593,7 +2487,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.6", + "pin-project-lite 0.2.7", "pin-utils", "proc-macro-hack", "proc-macro-nested", @@ -2773,7 +2667,16 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" dependencies = [ - "ahash", + "ahash 0.4.7", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash 0.7.4", ] [[package]] @@ -2787,9 +2690,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" dependencies = [ "libc", ] @@ -2802,9 +2705,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hex-literal" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5af1f635ef1bc545d78392b136bfe1c9809e029023c84a3638a864a10b8819c8" +checksum = "76505e26b6ca3bbdbbb360b68472abbb80998c5fa5dc43672eca34f28258e138" [[package]] name = "hex_fmt" @@ -2906,7 +2809,7 @@ checksum = "60daa14be0e0786db0f03a9e57cb404c9d756eed2b6c62b9ea98ec5743ec75a9" dependencies = [ "bytes 1.0.1", "http 0.2.4", - "pin-project-lite 0.2.6", + "pin-project-lite 0.2.7", ] [[package]] @@ -2959,7 +2862,7 @@ dependencies = [ "itoa", "log", "net2", - "rustc_version", + "rustc_version 0.2.3", "time", "tokio 0.1.22", "tokio-buf", @@ -2998,9 +2901,9 @@ dependencies = [ [[package]] name = "hyper" -version = "0.14.9" +version = "0.14.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07d6baa1b441335f3ce5098ac421fb6547c46dda735ca1bc6d0153c838f9dd83" +checksum = "7728a72c4c7d72665fde02204bcbd93b247721025b222ef78606f14513e0fd03" dependencies = [ "bytes 1.0.1", "futures-channel", @@ -3011,8 +2914,8 @@ dependencies = [ "httparse", "httpdate 1.0.1", "itoa", - "pin-project-lite 0.2.6", - "tokio 1.7.1", + "pin-project-lite 0.2.7", + "tokio 1.8.1", "tower-service", "tracing", "want 0.3.0", @@ -3097,9 +3000,9 @@ dependencies = [ [[package]] name = "impl-codec" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df170efa359aebdd5cb7fe78edcc67107748e4737bdca8a8fb40d15ea7a877ed" +checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443" dependencies = [ "parity-scale-codec", ] @@ -3135,12 +3038,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.6.2" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3" +checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.11.2", "serde", ] @@ -3398,7 +3301,7 @@ dependencies = [ "beef", "futures-channel", "futures-util", - "hyper 0.14.9", + "hyper 0.14.10", "log", "serde", "serde_json", @@ -3514,9 +3417,9 @@ checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a" [[package]] name = "libc" -version = "0.2.97" +version = "0.2.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12b8adadd720df158f4d70dfe7ccc6adb0472d7c55ca83445f6a5ab3e36f8fb6" +checksum = "320cfe77175da3a483efed4bc0adc1968ca050b098ce4f2f1c13a56626128790" [[package]] name = "libloading" @@ -4034,11 +3937,11 @@ dependencies = [ [[package]] name = "linregress" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1ff7f341d23e1275eec0656a9a07225fcc86216c4322392868adffe59023d1a" +checksum = "1e6e407dadb4ca4b31bc69c27aff00e7ca4534fdcee855159b039a7cebb5f395" dependencies = [ - "nalgebra 0.27.1", + "nalgebra", "statrs", ] @@ -4076,7 +3979,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f374d42cdfc1d7dbf3d3dec28afab2eb97ffbf43a3234d795b5986dbf4b90ba" dependencies = [ - "hashbrown", + "hashbrown 0.9.1", ] [[package]] @@ -4136,7 +4039,7 @@ dependencies = [ [[package]] name = "max-encoded-len" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "impl-trait-for-tuples", "max-encoded-len-derive", @@ -4147,7 +4050,7 @@ dependencies = [ [[package]] name = "max-encoded-len-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -4201,7 +4104,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "814bbecfc0451fc314eeea34f05bbcd5b98a7ad7af37faee088b86a1e633f1d4" dependencies = [ "hash-db", - "hashbrown", + "hashbrown 0.9.1", "parity-util-mem", ] @@ -4235,7 +4138,7 @@ dependencies = [ [[package]] name = "metered-channel" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "derive_more", "futures 0.3.15", @@ -4426,36 +4329,21 @@ dependencies = [ "unsigned-varint 0.7.0", ] -[[package]] -name = "nalgebra" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "476d1d59fe02fe54c86356e91650cd892f392782a1cb9fc524ec84f7aa9e1d06" -dependencies = [ - "approx 0.4.0", - "matrixmultiply", - "num-complex 0.3.1", - "num-rational 0.3.2", - "num-traits", - "rand 0.8.4", - "rand_distr", - "simba 0.4.0", - "typenum", -] - [[package]] name = "nalgebra" version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120" dependencies = [ - "approx 0.5.0", + "approx", "matrixmultiply", "nalgebra-macros", - "num-complex 0.4.0", + "num-complex", "num-rational 0.4.0", "num-traits", - "simba 0.5.1", + "rand 0.8.4", + "rand_distr", + "simba", "typenum", ] @@ -4523,15 +4411,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-complex" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5" -dependencies = [ - "num-traits", -] - [[package]] name = "num-complex" version = "0.4.0" @@ -4563,17 +4442,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-rational" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - [[package]] name = "num-rational" version = "0.4.0" @@ -4672,7 +4540,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -4688,7 +4556,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -4703,7 +4571,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -4717,7 +4585,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-benchmarking", "frame-support", @@ -4740,7 +4608,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-benchmarking", "frame-support", @@ -4755,7 +4623,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.7#299dd5fd3fabd99c3c919f1312001283ddc5b365" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.8#55ae3329847e0bbde51c9d45991d99f444777555" dependencies = [ "beefy-primitives", "frame-support", @@ -4770,7 +4638,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -4780,31 +4648,10 @@ dependencies = [ "sp-std", ] -[[package]] -name = "pallet-bridge-grandpa" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" -dependencies = [ - "bp-header-chain", - "bp-runtime", - "bp-test-utils", - "finality-grandpa", - "frame-support", - "frame-system", - "log", - "num-traits", - "parity-scale-codec", - "serde", - "sp-finality-grandpa", - "sp-runtime", - "sp-std", - "sp-trie", -] - [[package]] name = "pallet-collective" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -4819,7 +4666,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-benchmarking", "frame-support", @@ -4834,7 +4681,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4853,7 +4700,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -4869,7 +4716,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "3.1.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-benchmarking", "frame-support", @@ -4891,7 +4738,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4906,7 +4753,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -4924,7 +4771,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -4939,7 +4786,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-benchmarking", "frame-support", @@ -4954,7 +4801,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -4971,7 +4818,7 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -4987,7 +4834,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5005,7 +4852,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -5019,7 +4866,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -5032,7 +4879,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -5048,7 +4895,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -5063,7 +4910,7 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -5076,7 +4923,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-benchmarking", "frame-support", @@ -5091,7 +4938,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -5111,7 +4958,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-election-provider-support", "frame-support", @@ -5133,7 +4980,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -5144,7 +4991,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -5171,7 +5018,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-benchmarking", "frame-support", @@ -5189,7 +5036,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -5203,7 +5050,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -5219,7 +5066,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5236,7 +5083,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5247,7 +5094,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -5262,7 +5109,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-support", "frame-system", @@ -5276,7 +5123,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "enumflags2", "frame-support", @@ -5289,12 +5136,11 @@ dependencies = [ [[package]] name = "pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", - "serde", "sp-runtime", "sp-std", "xcm", @@ -5364,7 +5210,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.7#c5c3abf7eb9d4fdfb588d6560efaa8dca66a8dbc" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -5417,7 +5263,7 @@ dependencies = [ "sp-std", "sp-transaction-pool", "sp-version", - "substrate-wasm-builder 4.0.0", + "substrate-wasm-builder", "xcm", "xcm-builder", "xcm-executor", @@ -5460,22 +5306,23 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "2.1.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b310f220c335f9df1b3d2e9fbe3890bbfeef5030dad771620f48c5c229877cd3" +checksum = "8975095a2a03bbbdc70a74ab11a4f76a6d0b84680d87c68d722531b0ac28e8a9" dependencies = [ "arrayvec 0.7.1", "bitvec", "byte-slice-cast", + "impl-trait-for-tuples", "parity-scale-codec-derive", "serde", ] [[package]] name = "parity-scale-codec-derive" -version = "2.1.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81038e13ca2c32587201d544ea2e6b6c47120f1e4eae04478f9f60b6bcb89145" +checksum = "40dbbfef7f0a1143c5b06e0d76a6278e25dac0bc1af4be51a0fbb73f07e7ad09" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -5516,7 +5363,7 @@ checksum = "664a8c6b8e62d8f9f2f937e391982eb433ab285b4cd9545b342441e04a906e42" dependencies = [ "cfg-if 1.0.0", "ethereum-types", - "hashbrown", + "hashbrown 0.9.1", "impl-trait-for-tuples", "lru", "parity-util-mem-derive", @@ -5554,9 +5401,9 @@ checksum = "be5e13c266502aadf83426d87d81a0f5d1ef45b8027f5a471c360abfe4bfae92" [[package]] name = "parity-ws" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e02a625dd75084c2a7024f07c575b61b782f729d18702dabb3cdbf31911dc61" +checksum = "322d72dfe461b8b9e367d057ceace105379d64d5b03907d23c481ccf3fbf8aa4" dependencies = [ "byteorder", "bytes 0.4.12", @@ -5584,7 +5431,7 @@ checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" dependencies = [ "lock_api 0.3.4", "parking_lot_core 0.6.2", - "rustc_version", + "rustc_version 0.2.3", ] [[package]] @@ -5618,7 +5465,7 @@ dependencies = [ "cloudabi", "libc", "redox_syscall 0.1.57", - "rustc_version", + "rustc_version 0.2.3", "smallvec 0.6.14", "winapi 0.3.9", ] @@ -5801,9 +5648,9 @@ checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" [[package]] name = "pin-project-lite" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905" +checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443" [[package]] name = "pin-utils" @@ -5826,7 +5673,7 @@ checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325" [[package]] name = "polkadot-approval-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "futures 0.3.15", "polkadot-node-network-protocol", @@ -5840,7 +5687,7 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "futures 0.3.15", "polkadot-node-network-protocol", @@ -5853,7 +5700,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "futures 0.3.15", "lru", @@ -5876,7 +5723,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "futures 0.3.15", "lru", @@ -5894,8 +5741,8 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.7" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +version = "0.9.8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "frame-benchmarking-cli", "futures 0.3.15", @@ -5914,8 +5761,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.7" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +version = "0.9.8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -5924,7 +5771,6 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "polkadot-primitives", "polkadot-runtime", - "rococo-runtime", "sc-client-api", "sc-executor", "sc-service", @@ -5945,7 +5791,7 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "always-assert", "futures 0.3.15", @@ -5964,8 +5810,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.7" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +version = "0.9.8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -5976,8 +5822,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.7" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +version = "0.9.8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -5991,14 +5837,17 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "futures 0.3.15", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", + "rand 0.8.4", + "rand_chacha 0.3.1", "sp-application-crypto", + "sp-core", "sp-keystore", "tracing", ] @@ -6006,7 +5855,7 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "async-trait", "futures 0.3.15", @@ -6026,7 +5875,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "futures 0.3.15", "parity-scale-codec", @@ -6044,13 +5893,14 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "bitvec", "derive_more", "futures 0.3.15", "futures-timer 3.0.2", "kvdb", + "lru", "merlin", "parity-scale-codec", "polkadot-node-jaeger", @@ -6073,7 +5923,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "bitvec", "futures 0.3.15", @@ -6093,7 +5943,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "bitvec", "futures 0.3.15", @@ -6111,7 +5961,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "futures 0.3.15", "polkadot-node-subsystem", @@ -6126,7 +5976,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "async-trait", "futures 0.3.15", @@ -6144,12 +5994,14 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "futures 0.3.15", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", + "sc-client-api", + "sc-consensus-babe", "sp-blockchain", "tracing", ] @@ -6157,7 +6009,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "async-trait", "futures 0.3.15", @@ -6175,7 +6027,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "bitvec", "futures 0.3.15", @@ -6190,7 +6042,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "always-assert", "assert_matches", @@ -6211,6 +6063,7 @@ dependencies = [ "sp-core", "sp-externalities", "sp-io", + "sp-maybe-compressed-blob", "sp-wasm-interface", "tracing", ] @@ -6218,7 +6071,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "futures 0.3.15", "memory-lru", @@ -6236,7 +6089,7 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "async-std", "lazy_static", @@ -6254,7 +6107,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "futures 0.3.15", "parity-scale-codec", @@ -6269,7 +6122,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "futures 0.3.15", "parity-scale-codec", @@ -6292,7 +6145,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "async-std", "async-trait", @@ -6322,11 +6175,12 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "async-trait", "futures 0.3.15", "futures-timer 3.0.2", + "itertools 0.10.1", "lru", "metered-channel", "parity-scale-codec", @@ -6341,7 +6195,6 @@ dependencies = [ "sp-application-crypto", "sp-core", "sp-keystore", - "streamunordered", "substrate-prometheus-endpoint", "thiserror", "tracing", @@ -6350,7 +6203,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "async-trait", "futures 0.3.15", @@ -6368,8 +6221,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.7" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +version = "0.9.8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "derive_more", "parity-scale-codec", @@ -6383,8 +6236,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.7" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +version = "0.9.8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "bitvec", "frame-system", @@ -6414,7 +6267,7 @@ dependencies = [ [[package]] name = "polkadot-procmacro-overseer-subsystems-gen" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "assert_matches", "proc-macro2", @@ -6425,7 +6278,7 @@ dependencies = [ [[package]] name = "polkadot-procmacro-subsystem-dispatch-gen" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "assert_matches", "proc-macro2", @@ -6435,8 +6288,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.7" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +version = "0.9.8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -6468,8 +6321,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.7" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +version = "0.9.8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "beefy-primitives", "bitvec", @@ -6500,7 +6353,6 @@ dependencies = [ "pallet-nicks", "pallet-offences", "pallet-proxy", - "pallet-randomness-collective-flip", "pallet-scheduler", "pallet-session", "pallet-staking", @@ -6535,13 +6387,13 @@ dependencies = [ "sp-transaction-pool", "sp-version", "static_assertions", - "substrate-wasm-builder 3.0.0", + "substrate-wasm-builder", ] [[package]] name = "polkadot-runtime-common" -version = "0.9.7" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +version = "0.9.8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "beefy-primitives", "bitvec", @@ -6553,6 +6405,7 @@ dependencies = [ "pallet-authorship", "pallet-balances", "pallet-beefy", + "pallet-election-provider-multi-phase", "pallet-mmr", "pallet-offences", "pallet-session", @@ -6582,8 +6435,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.7" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +version = "0.9.8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "bitvec", "derive_more", @@ -6619,9 +6472,10 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.7" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +version = "0.9.8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ + "async-trait", "beefy-gadget", "beefy-primitives", "frame-system-rpc-runtime-api", @@ -6662,7 +6516,6 @@ dependencies = [ "polkadot-runtime", "polkadot-runtime-parachains", "polkadot-statement-distribution", - "rococo-runtime", "sc-authority-discovery", "sc-basic-authorship", "sc-block-builder", @@ -6709,7 +6562,7 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "arrayvec 0.5.2", "futures 0.3.15", @@ -6729,8 +6582,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.7" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +version = "0.9.8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -6739,8 +6592,8 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" -version = "0.9.7" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +version = "0.9.8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "beefy-primitives", "bitvec", @@ -6759,7 +6612,6 @@ dependencies = [ "pallet-mmr-primitives", "pallet-nicks", "pallet-offences", - "pallet-randomness-collective-flip", "pallet-session", "pallet-staking", "pallet-staking-reward-curve", @@ -6791,13 +6643,13 @@ dependencies = [ "sp-std", "sp-transaction-pool", "sp-version", - "substrate-wasm-builder 3.0.0", + "substrate-wasm-builder", ] [[package]] name = "polkadot-test-service" -version = "0.9.7" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +version = "0.9.8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "frame-benchmarking", "frame-system", @@ -6888,9 +6740,9 @@ checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" [[package]] name = "primitive-types" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2415937401cb030a2a0a4d922483f945fa068f52a7dbb22ce0fe5f2b6f6adace" +checksum = "06345ee39fbccfb06ab45f3a1a5798d9dafa04cb8921a76d227040003a234b0e" dependencies = [ "fixed-hash", "impl-codec", @@ -7376,7 +7228,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "env_logger 0.8.4", "hex", @@ -7451,73 +7303,6 @@ dependencies = [ "librocksdb-sys", ] -[[package]] -name = "rococo-runtime" -version = "0.9.7" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" -dependencies = [ - "beefy-primitives", - "bp-rococo", - "bp-wococo", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-rpc-runtime-api", - "hex-literal", - "log", - "max-encoded-len", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-balances", - "pallet-beefy", - "pallet-bridge-grandpa", - "pallet-collective", - "pallet-grandpa", - "pallet-im-online", - "pallet-indices", - "pallet-membership", - "pallet-mmr", - "pallet-mmr-primitives", - "pallet-offences", - "pallet-proxy", - "pallet-session", - "pallet-staking", - "pallet-staking-reward-curve", - "pallet-sudo", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-utility", - "pallet-xcm", - "parity-scale-codec", - "polkadot-parachain", - "polkadot-primitives", - "polkadot-runtime-common", - "polkadot-runtime-parachains", - "serde", - "serde_derive", - "smallvec 1.6.1", - "sp-api", - "sp-authority-discovery", - "sp-block-builder", - "sp-consensus-babe", - "sp-core", - "sp-inherents", - "sp-io", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "sp-transaction-pool", - "sp-version", - "substrate-wasm-builder 3.0.0", - "xcm", - "xcm-builder", - "xcm-executor", -] - [[package]] name = "rpassword" version = "5.0.1" @@ -7555,6 +7340,15 @@ dependencies = [ "semver 0.9.0", ] +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + [[package]] name = "rustls" version = "0.18.1" @@ -7607,9 +7401,9 @@ dependencies = [ [[package]] name = "ruzstd" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d425143485a37727c7a46e689bbe3b883a00f42b4a52c4ac0f44855c1009b00" +checksum = "8cada0ef59efa6a5f4dc5e491f93d9f31e3fc7758df421ff1de8a706338e1100" dependencies = [ "byteorder", "twox-hash", @@ -7638,7 +7432,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d3d055a2582e6b00ed7a31c1524040aa391092bf636328350813f3a0605215c" dependencies = [ - "rustc_version", + "rustc_version 0.2.3", ] [[package]] @@ -7659,10 +7453,22 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "sc-allocator" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +dependencies = [ + "log", + "sp-core", + "sp-std", + "sp-wasm-interface", + "thiserror", +] + [[package]] name = "sc-authority-discovery" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "async-trait", "derive_more", @@ -7691,7 +7497,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "futures 0.3.15", "futures-timer 3.0.2", @@ -7714,7 +7520,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7730,7 +7536,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7742,7 +7548,6 @@ dependencies = [ "sc-telemetry", "serde", "serde_json", - "sp-chain-spec", "sp-consensus-babe", "sp-core", "sp-runtime", @@ -7751,7 +7556,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -7762,7 +7567,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "chrono", "fdlimit", @@ -7800,7 +7605,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "derive_more", "fnv", @@ -7834,7 +7639,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "blake2-rfc", "hash-db", @@ -7864,8 +7669,9 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ + "async-trait", "parking_lot 0.11.1", "sc-client-api", "sp-blockchain", @@ -7876,7 +7682,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "async-trait", "derive_more", @@ -7907,7 +7713,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "async-trait", "derive_more", @@ -7953,7 +7759,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "derive_more", "futures 0.3.15", @@ -7977,7 +7783,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7990,7 +7796,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "async-trait", "futures 0.3.15", @@ -8018,7 +7824,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "sc-client-api", "sp-authorship", @@ -8029,7 +7835,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "derive_more", "lazy_static", @@ -8058,12 +7864,12 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "derive_more", "parity-scale-codec", "pwasm-utils", - "sp-allocator", + "sc-allocator", "sp-core", "sp-maybe-compressed-blob", "sp-serializer", @@ -8075,12 +7881,12 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "log", "parity-scale-codec", + "sc-allocator", "sc-executor-common", - "sp-allocator", "sp-core", "sp-runtime-interface", "sp-wasm-interface", @@ -8090,14 +7896,16 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ + "cfg-if 1.0.0", + "libc", "log", "parity-scale-codec", "parity-wasm 0.42.2", + "sc-allocator", "sc-executor-common", "scoped-tls", - "sp-allocator", "sp-core", "sp-runtime-interface", "sp-wasm-interface", @@ -8107,7 +7915,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "async-trait", "derive_more", @@ -8148,7 +7956,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "derive_more", "finality-grandpa", @@ -8172,7 +7980,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-warp-sync" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "derive_more", "futures 0.3.15", @@ -8193,7 +8001,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "ansi_term 0.12.1", "futures 0.3.15", @@ -8211,7 +8019,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "async-trait", "derive_more", @@ -8231,7 +8039,7 @@ dependencies = [ [[package]] name = "sc-light" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "hash-db", "lazy_static", @@ -8250,7 +8058,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "async-std", "async-trait", @@ -8303,7 +8111,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "futures 0.3.15", "futures-timer 3.0.2", @@ -8320,7 +8128,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "bytes 0.5.6", "fnv", @@ -8348,7 +8156,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "futures 0.3.15", "libp2p", @@ -8361,7 +8169,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8370,7 +8178,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "futures 0.3.15", "hash-db", @@ -8380,6 +8188,7 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.11.1", "sc-block-builder", + "sc-chain-spec", "sc-client-api", "sc-executor", "sc-keystore", @@ -8388,7 +8197,6 @@ dependencies = [ "serde_json", "sp-api", "sp-blockchain", - "sp-chain-spec", "sp-core", "sp-keystore", "sp-offchain", @@ -8405,7 +8213,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "derive_more", "futures 0.3.15", @@ -8416,9 +8224,9 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.11.1", + "sc-chain-spec", "serde", "serde_json", - "sp-chain-spec", "sp-core", "sp-rpc", "sp-runtime", @@ -8430,7 +8238,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "futures 0.1.31", "jsonrpc-core", @@ -8448,7 +8256,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "async-trait", "directories", @@ -8496,6 +8304,7 @@ dependencies = [ "sp-runtime", "sp-session", "sp-state-machine", + "sp-storage", "sp-tracing", "sp-transaction-pool", "sp-transaction-storage-proof", @@ -8513,7 +8322,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "log", "parity-scale-codec", @@ -8528,7 +8337,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -8548,7 +8357,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "chrono", "futures 0.3.15", @@ -8568,7 +8377,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "ansi_term 0.12.1", "atty", @@ -8605,7 +8414,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -8616,7 +8425,7 @@ dependencies = [ [[package]] name = "sc-transaction-graph" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "derive_more", "futures 0.3.15", @@ -8638,7 +8447,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "futures 0.3.15", "intervalier", @@ -8957,21 +8766,9 @@ dependencies = [ [[package]] name = "signature" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0242b8e50dd9accdd56170e94ca1ebd223b098eb9c83539a6e367d0f36ae68" - -[[package]] -name = "simba" -version = "0.4.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5132a955559188f3d13c9ba831e77c802ddc8782783f050ed0c52f5988b95f4c" -dependencies = [ - "approx 0.4.0", - "num-complex 0.3.1", - "num-traits", - "paste", -] +checksum = "c19772be3c4dd2ceaacf03cb41d5885f2a02c4d8804884918e3a258480803335" [[package]] name = "simba" @@ -8979,8 +8776,8 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c" dependencies = [ - "approx 0.5.0", - "num-complex 0.4.0", + "approx", + "num-complex", "num-traits", "paste", ] @@ -9002,8 +8799,8 @@ dependencies = [ [[package]] name = "slot-range-helper" -version = "0.9.7" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +version = "0.9.8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "enumn", "parity-scale-codec", @@ -9014,9 +8811,9 @@ dependencies = [ [[package]] name = "slotmap" -version = "1.0.3" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585cd5dffe4e9e06f6dfdf66708b70aca3f781bed561f4f667b2d9c0d4559e36" +checksum = "a952280edbecfb1d4bd3cf2dbc309dc6ab523e53487c438ae21a6df09fe84bc4" dependencies = [ "version_check", ] @@ -9048,7 +8845,7 @@ dependencies = [ "rand 0.7.3", "rand_core 0.5.1", "ring", - "rustc_version", + "rustc_version 0.2.3", "sha2 0.9.5", "subtle 2.4.0", "x25519-dalek", @@ -9106,22 +8903,10 @@ dependencies = [ "sha-1 0.9.6", ] -[[package]] -name = "sp-allocator" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" -dependencies = [ - "log", - "sp-core", - "sp-std", - "sp-wasm-interface", - "thiserror", -] - [[package]] name = "sp-api" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "hash-db", "log", @@ -9138,7 +8923,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "blake2-rfc", "proc-macro-crate 1.0.0", @@ -9150,7 +8935,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "max-encoded-len", "parity-scale-codec", @@ -9163,7 +8948,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "integer-sqrt", "num-traits", @@ -9177,7 +8962,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "parity-scale-codec", "sp-api", @@ -9189,7 +8974,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "async-trait", "parity-scale-codec", @@ -9201,7 +8986,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "parity-scale-codec", "sp-api", @@ -9213,7 +8998,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "futures 0.3.15", "log", @@ -9228,19 +9013,10 @@ dependencies = [ "thiserror", ] -[[package]] -name = "sp-chain-spec" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" -dependencies = [ - "serde", - "serde_json", -] - [[package]] name = "sp-consensus" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "async-trait", "futures 0.3.15", @@ -9267,7 +9043,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "async-trait", "parity-scale-codec", @@ -9284,7 +9060,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "async-trait", "merlin", @@ -9306,7 +9082,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "parity-scale-codec", "sp-arithmetic", @@ -9316,7 +9092,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -9328,7 +9104,7 @@ dependencies = [ [[package]] name = "sp-core" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "base58", "blake2-rfc", @@ -9373,7 +9149,7 @@ dependencies = [ [[package]] name = "sp-database" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "kvdb", "parking_lot 0.11.1", @@ -9382,7 +9158,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "proc-macro2", "quote", @@ -9392,7 +9168,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "environmental", "parity-scale-codec", @@ -9403,7 +9179,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "finality-grandpa", "log", @@ -9420,7 +9196,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9434,7 +9210,7 @@ dependencies = [ [[package]] name = "sp-io" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "futures 0.3.15", "hash-db", @@ -9459,7 +9235,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "lazy_static", "sp-core", @@ -9470,7 +9246,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "async-trait", "derive_more", @@ -9487,7 +9263,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "ruzstd", "zstd", @@ -9496,7 +9272,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "parity-scale-codec", "serde", @@ -9509,7 +9285,7 @@ dependencies = [ [[package]] name = "sp-npos-elections-compact" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -9520,7 +9296,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "sp-api", "sp-core", @@ -9530,7 +9306,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "backtrace", ] @@ -9538,7 +9314,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "rustc-hash", "serde", @@ -9549,7 +9325,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "either", "hash256-std-hasher", @@ -9571,7 +9347,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9588,7 +9364,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "Inflector", "proc-macro-crate 1.0.0", @@ -9600,7 +9376,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "serde", "serde_json", @@ -9609,7 +9385,7 @@ dependencies = [ [[package]] name = "sp-session" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "parity-scale-codec", "sp-api", @@ -9622,7 +9398,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -9632,7 +9408,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "hash-db", "log", @@ -9655,12 +9431,12 @@ dependencies = [ [[package]] name = "sp-std" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" [[package]] name = "sp-storage" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9673,7 +9449,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "log", "sp-core", @@ -9686,7 +9462,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "async-trait", "futures-timer 3.0.2", @@ -9703,7 +9479,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "erased-serde", "log", @@ -9721,7 +9497,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "derive_more", "futures 0.3.15", @@ -9737,7 +9513,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "async-trait", "log", @@ -9752,7 +9528,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "hash-db", "memory-db", @@ -9766,7 +9542,7 @@ dependencies = [ [[package]] name = "sp-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "futures 0.3.15", "futures-core", @@ -9778,7 +9554,7 @@ dependencies = [ [[package]] name = "sp-version" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9791,7 +9567,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "parity-scale-codec", "proc-macro-crate 1.0.0", @@ -9803,7 +9579,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9856,13 +9632,13 @@ dependencies = [ [[package]] name = "statrs" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0c1f144861fbfd2a8cc82d564ccbf7fb3b7834d4fa128b84e9c2a73371aead" +checksum = "05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05" dependencies = [ - "approx 0.4.0", + "approx", "lazy_static", - "nalgebra 0.26.2", + "nalgebra", "num-traits", "rand 0.8.4", ] @@ -9877,18 +9653,6 @@ dependencies = [ "generic-array 0.14.4", ] -[[package]] -name = "streamunordered" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e68576e37c8a37f5372796df15202190349dd80e7ed6a79544c0232213e90e35" -dependencies = [ - "futures-core", - "futures-sink", - "futures-util", - "slab", -] - [[package]] name = "string" version = "0.2.1" @@ -9906,9 +9670,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "structopt" -version = "0.3.21" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5277acd7ee46e63e5168a80734c9f6ee81b1367a7d8772a2d765df2a3705d28c" +checksum = "69b041cdcb67226aca307e6e7be44c8806423d83e018bd662360a93dabce4d71" dependencies = [ "clap", "lazy_static", @@ -9917,9 +9681,9 @@ dependencies = [ [[package]] name = "structopt-derive" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ba9cdfda491b814720b6b06e0cac513d922fc407582032e8706e9f137976f90" +checksum = "7813934aecf5f51a54775e00068c237de98489463968231a51746bbbc03f9c10" dependencies = [ "heck", "proc-macro-error", @@ -9965,7 +9729,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "platforms", ] @@ -9973,7 +9737,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.15", @@ -9996,7 +9760,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "async-std", "derive_more", @@ -10010,7 +9774,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "async-trait", "futures 0.1.31", @@ -10036,31 +9800,15 @@ dependencies = [ "sp-state-machine", ] -[[package]] -name = "substrate-wasm-builder" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79091baab813855ddf65b191de9fe53e656b6b67c1e9bd23fdcbff8788164684" -dependencies = [ - "ansi_term 0.12.1", - "atty", - "build-helper", - "cargo_metadata 0.12.3", - "tempfile", - "toml", - "walkdir", - "wasm-gc-api", -] - [[package]] name = "substrate-wasm-builder" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "ansi_term 0.12.1", "atty", "build-helper", - "cargo_metadata 0.13.1", + "cargo_metadata", "sp-maybe-compressed-blob", "tempfile", "toml", @@ -10155,18 +9903,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.25" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa6f76457f59514c7eeb4e59d891395fab0b2fd1d40723ae737d64153392e9c6" +checksum = "93119e4feac1cbe6c798c34d3a53ea0026b0b1de6a120deef895137c0529bfe2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.25" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a36768c0fbf1bb15eca10defa29526bda730a2376c2ab4393ccfa16fb1a318d" +checksum = "060d69a0afe7796bf42e9e2ff91f5ee691fb15c53d38b4b62a9a53eb23164745" dependencies = [ "proc-macro2", "quote", @@ -10305,12 +10053,12 @@ dependencies = [ [[package]] name = "tokio" -version = "1.7.1" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fb2ed024293bb19f7a5dc54fe83bf86532a44c12a2bb8ba40d64a4509395ca2" +checksum = "98c8b05dc14c75ea83d63dd391100353789f5f24b8b3866542a5e85c8be8e985" dependencies = [ "autocfg", - "pin-project-lite 0.2.6", + "pin-project-lite 0.2.7", ] [[package]] @@ -10566,7 +10314,7 @@ checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d" dependencies = [ "cfg-if 1.0.0", "log", - "pin-project-lite 0.2.6", + "pin-project-lite 0.2.7", "tracing-attributes", "tracing-core", ] @@ -10624,9 +10372,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa5553bf0883ba7c9cbe493b085c29926bd41b66afc31ff72cf17ff4fb60dcd5" +checksum = "ab69019741fca4d98be3c62d2b75254528b5432233fd8a4d2739fec20278de48" dependencies = [ "ansi_term 0.12.1", "chrono", @@ -10646,12 +10394,12 @@ dependencies = [ [[package]] name = "trie-db" -version = "0.22.5" +version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd81fe0c8bc2b528a51c9d2c31dae4483367a26a723a3c9a4a8120311d7774e3" +checksum = "9eac131e334e81b6b3be07399482042838adcd7957aa0010231d0813e39e02fa" dependencies = [ "hash-db", - "hashbrown", + "hashbrown 0.11.2", "log", "rustc-hex", "smallvec 1.6.1", @@ -10718,7 +10466,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.7#9c572625f6557dfdb19f47474369a0327d51dfbc" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" dependencies = [ "frame-try-runtime", "log", @@ -10734,6 +10482,7 @@ dependencies = [ "sp-blockchain", "sp-core", "sp-externalities", + "sp-io", "sp-keystore", "sp-runtime", "sp-state-machine", @@ -10765,9 +10514,9 @@ checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" [[package]] name = "uint" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e11fe9a9348741cf134085ad57c249508345fe16411b3d7fb4ff2da2f1d6382e" +checksum = "6470ab50f482bde894a037a57064480a246dbfdd5960bd65a44824693f08da5f" dependencies = [ "byteorder", "crunchy", @@ -10804,9 +10553,9 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796" +checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" [[package]] name = "unicode-width" @@ -11454,8 +11203,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.7" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +version = "0.9.8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -11464,8 +11213,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.7" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +version = "0.9.8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "frame-support", "frame-system", @@ -11483,8 +11232,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.7" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.7#5d35bac7408a4cb12a578764217d06f3920b36aa" +version = "0.9.8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" dependencies = [ "frame-support", "impl-trait-for-tuples", diff --git a/node/Cargo.toml b/node/Cargo.toml index acd889f2..907d4ff0 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -13,7 +13,7 @@ build = 'build.rs' targets = ['x86_64-unknown-linux-gnu'] [build-dependencies] -substrate-build-script-utils = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } +substrate-build-script-utils = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } [[bin]] name = 'parachain-collator' @@ -37,58 +37,58 @@ jsonrpc-core = '15.1.0' parachain-runtime = { path = '../runtime' } # Substrate Dependencies -frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -frame-benchmarking-cli = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } +frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +frame-benchmarking-cli = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -pallet-transaction-payment-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } +pallet-transaction-payment-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -substrate-frame-rpc-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.7" } +substrate-frame-rpc-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.8" } ## Substrate Client Dependencies -sc-basic-authorship = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sc-chain-spec = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sc-cli = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sc-client-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sc-consensus = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sc-executor = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sc-network = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sc-keystore = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sc-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sc-rpc-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sc-service = { git = 'https://github.com/paritytech/substrate', branch = "polkadot-v0.9.7", version = '0.9.0', features = ['wasmtime'] } -sc-telemetry = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sc-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sc-tracing = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } +sc-basic-authorship = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sc-chain-spec = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sc-cli = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sc-client-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sc-consensus = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sc-executor = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sc-network = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sc-keystore = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sc-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sc-rpc-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sc-service = { git = 'https://github.com/paritytech/substrate', branch = "polkadot-v0.9.8", version = '0.9.0', features = ['wasmtime'] } +sc-telemetry = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sc-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sc-tracing = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } ## Substrate Primitive Dependencies -sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sp-blockchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sp-consensus = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sp-keystore = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sp-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } -sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7' } +sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sp-blockchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sp-consensus = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sp-keystore = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sp-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } # Cumulus dependencies -cumulus-client-consensus-aura = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7' } -cumulus-client-consensus-common = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7' } -cumulus-client-collator = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7' } -cumulus-client-cli = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7' } -cumulus-client-network = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7' } -cumulus-client-service = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7' } -cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7' } -cumulus-primitives-parachain-inherent = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7' } +cumulus-client-consensus-aura = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8' } +cumulus-client-consensus-common = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8' } +cumulus-client-collator = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8' } +cumulus-client-cli = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8' } +cumulus-client-network = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8' } +cumulus-client-service = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8' } +cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8' } +cumulus-primitives-parachain-inherent = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8' } # Polkadot dependencies -polkadot-cli = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.7'} -polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.7'} -polkadot-primitives = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.7'} -polkadot-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.7'} -polkadot-test-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.7'} \ No newline at end of file +polkadot-cli = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.8'} +polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.8'} +polkadot-primitives = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.8'} +polkadot-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.8'} +polkadot-test-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.8'} \ No newline at end of file diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index df7ef98b..c141ba89 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -155,6 +155,6 @@ fn testnet_genesis( authorities: initial_authorities, }, aura_ext: Default::default(), - // parachain_system: Default::default(), + parachain_system: Default::default(), } } diff --git a/node/src/service.rs b/node/src/service.rs index ef93cd3e..f13ea4a7 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -434,6 +434,8 @@ pub async fn start_node( slot_duration, // We got around 500ms for proposing block_proposal_slot_portion: SlotProportion::new(1f32 / 24f32), + // And a maximum of 750ms if slots are skipped + max_block_proposal_slot_portion: Some(SlotProportion::new(1f32 / 16f32)), telemetry, })) }, diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index e6040dac..8a908f81 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -14,15 +14,15 @@ targets = ['x86_64-unknown-linux-gnu'] [dependencies] codec = { package = 'parity-scale-codec', version = '2.0.0', features = ['derive'], default-features = false } -frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false, optional = true } -frame-support = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false, optional = true } +frame-support = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } [dev-dependencies] serde = { version = "1.0.101" } -sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } [features] default = ['std'] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 708c01d0..fb6a7187 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -11,7 +11,7 @@ edition = '2018' targets = ['x86_64-unknown-linux-gnu'] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.7" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.8" } [dependencies] codec = { package = 'parity-scale-codec', version = '2.0.0', default-features = false, features = ['derive']} @@ -23,53 +23,53 @@ template = { package = 'pallet-template', path = '../pallets/template', default- # Substrate Dependencies ## Substrate Primitive Dependencies -sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -sp-std = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -sp-version = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +sp-std = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +sp-version = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } ## Substrate FRAME Dependencies -frame-executive = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false, optional = true } -frame-support = { git = 'https://github.com/paritytech/substrate', default-features = false, branch = 'polkadot-v0.9.7' } -frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -frame-system-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false, optional = true } -frame-system-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +frame-executive = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false, optional = true } +frame-support = { git = 'https://github.com/paritytech/substrate', default-features = false, branch = 'polkadot-v0.9.8' } +frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +frame-system-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false, optional = true } +frame-system-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } ## Substrate Pallet Dependencies -pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.7", default-features = false } -pallet-balances = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -pallet-randomness-collective-flip = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -pallet-sudo = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -pallet-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -pallet-transaction-payment = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.7', default-features = false } +pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.8", default-features = false } +pallet-balances = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +pallet-randomness-collective-flip = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +pallet-sudo = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +pallet-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +pallet-transaction-payment = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } # Cumulus Dependencies -cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7', default-features = false } -cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7', default-features = false } -cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7', default-features = false } -cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7', default-features = false } -cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7', default-features = false } -cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7', default-features = false } -cumulus-primitives-timestamp = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7', default-features = false } -cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7', default-features = false } -parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.7', default-features = false } +cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8', default-features = false } +cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8', default-features = false } +cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8', default-features = false } +cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8', default-features = false } +cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8', default-features = false } +cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8', default-features = false } +cumulus-primitives-timestamp = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8', default-features = false } +cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8', default-features = false } +parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8', default-features = false } # Polkadot Dependencies -polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.7', default-features = false } -xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.7', default-features = false } -xcm-builder = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.7', default-features = false } -xcm-executor = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.7', default-features = false } -pallet-xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.7', default-features = false } +polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.8', default-features = false } +xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.8', default-features = false } +xcm-builder = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.8', default-features = false } +xcm-executor = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.8', default-features = false } +pallet-xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.8', default-features = false } [features] default = ['std'] diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 025c5371..6e84c569 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -134,14 +134,14 @@ pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber); pub const HOURS: BlockNumber = MINUTES * 60; pub const DAYS: BlockNumber = HOURS * 24; +// 1 in 4 blocks (on average, not counting collisions) will be primary babe blocks. +pub const PRIMARY_PROBABILITY: (u64, u64) = (1, 4); + // Unit = the base number of indivisible units for balances pub const UNIT: Balance = 1_000_000_000_000; pub const MILLIUNIT: Balance = 1_000_000_000; pub const MICROUNIT: Balance = 1_000_000; -// 1 in 4 blocks (on average, not counting collisions) will be primary babe blocks. -pub const PRIMARY_PROBABILITY: (u64, u64) = (1, 4); - /// The version information used to identify this runtime when compiled natively. #[cfg(feature = "std")] pub fn native_version() -> NativeVersion { @@ -157,8 +157,8 @@ const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(10); /// We allow `Normal` extrinsics to fill up the block up to 75%, the rest can be used /// by Operational extrinsics. const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); -/// We allow for 2 seconds of compute with a 12 second average block time. -const MAXIMUM_BLOCK_WEIGHT: Weight = WEIGHT_PER_SECOND * 2; +/// We allow for 0.5 of a second of compute with a 12 second average block time. +const MAXIMUM_BLOCK_WEIGHT: Weight = WEIGHT_PER_SECOND / 2; parameter_types! { pub const BlockHashCount: BlockNumber = 250; @@ -278,6 +278,8 @@ impl pallet_transaction_payment::Config for Runtime { type FeeMultiplierUpdate = (); } +impl pallet_randomness_collective_flip::Config for Runtime {} + impl pallet_sudo::Config for Runtime { type Call = Call; type Event = Event; @@ -303,8 +305,6 @@ impl parachain_info::Config for Runtime {} impl cumulus_pallet_aura_ext::Config for Runtime {} -impl pallet_randomness_collective_flip::Config for Runtime {} - parameter_types! { pub const RelayLocation: MultiLocation = X1(Parent); pub const RelayNetwork: NetworkId = NetworkId::Polkadot; @@ -458,10 +458,11 @@ construct_runtime!( System: frame_system::{Pallet, Call, Storage, Config, Event}, Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent}, Sudo: pallet_sudo::{Pallet, Call, Storage, Config, Event}, - RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Call, Storage}, + RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Storage}, TransactionPayment: pallet_transaction_payment::{Pallet, Storage}, - ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Storage, Inherent, Event, ValidateUnsigned} = 20, + ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Config, Storage, Inherent, Event} = 20, + ParachainInfo: parachain_info::{Pallet, Storage, Config} = 21, Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 30, @@ -528,8 +529,9 @@ impl_runtime_apis! { fn validate_transaction( source: TransactionSource, tx: ::Extrinsic, + block_hash: ::Hash, ) -> TransactionValidity { - Executive::validate_transaction(source, tx) + Executive::validate_transaction(source, tx, block_hash) } } From 9b41b90fa241ea36563bf1f5cefca0bdd2543c26 Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Sat, 24 Jul 2021 01:41:28 -0600 Subject: [PATCH 36/91] Add rustfmt, run `cargo +nightly fmt` (#61) --- .rustfmt.toml | 2 -- node/src/chain_spec.rs | 20 +++-------- node/src/cli.rs | 11 ++----- node/src/command.rs | 62 +++++++++++++---------------------- node/src/service.rs | 26 +++++++-------- pallets/template/src/lib.rs | 2 +- pallets/template/src/mock.rs | 5 +-- pallets/template/src/tests.rs | 5 +-- runtime/src/lib.rs | 5 +-- rustfmt.toml | 22 +++++++++++++ 10 files changed, 67 insertions(+), 93 deletions(-) delete mode 100644 .rustfmt.toml create mode 100644 rustfmt.toml diff --git a/.rustfmt.toml b/.rustfmt.toml deleted file mode 100644 index 3534ebc2..00000000 --- a/.rustfmt.toml +++ /dev/null @@ -1,2 +0,0 @@ -edition = "2018" -hard_tabs = true diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index c141ba89..f529a45e 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -58,10 +58,7 @@ pub fn development_config(id: ParaId) -> ChainSpec { move || { testnet_genesis( get_account_id_from_seed::("Alice"), - vec![ - get_from_seed::("Alice"), - get_from_seed::("Bob"), - ], + vec![get_from_seed::("Alice"), get_from_seed::("Bob")], vec![ get_account_id_from_seed::("Alice"), get_account_id_from_seed::("Bob"), @@ -97,10 +94,7 @@ pub fn local_testnet_config(id: ParaId) -> ChainSpec { move || { testnet_genesis( get_account_id_from_seed::("Alice"), - vec![ - get_from_seed::("Alice"), - get_from_seed::("Bob"), - ], + vec![get_from_seed::("Alice"), get_from_seed::("Bob")], vec![ get_account_id_from_seed::("Alice"), get_account_id_from_seed::("Bob"), @@ -143,17 +137,11 @@ fn testnet_genesis( changes_trie_config: Default::default(), }, balances: parachain_runtime::BalancesConfig { - balances: endowed_accounts - .iter() - .cloned() - .map(|k| (k, 1 << 60)) - .collect(), + balances: endowed_accounts.iter().cloned().map(|k| (k, 1 << 60)).collect(), }, sudo: parachain_runtime::SudoConfig { key: root_key }, parachain_info: parachain_runtime::ParachainInfoConfig { parachain_id: id }, - aura: parachain_runtime::AuraConfig { - authorities: initial_authorities, - }, + aura: parachain_runtime::AuraConfig { authorities: initial_authorities }, aura_ext: Default::default(), parachain_system: Default::default(), } diff --git a/node/src/cli.rs b/node/src/cli.rs index 9fa698de..80985041 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -117,14 +117,7 @@ impl RelayChainCli { ) -> Self { let extension = chain_spec::Extensions::try_get(&*para_config.chain_spec); let chain_id = extension.map(|e| e.relay_chain.clone()); - let base_path = para_config - .base_path - .as_ref() - .map(|x| x.path().join("polkadot")); - Self { - base_path, - chain_id, - base: polkadot_cli::RunCmd::from_iter(relay_chain_args), - } + let base_path = para_config.base_path.as_ref().map(|x| x.path().join("polkadot")); + Self { base_path, chain_id, base: polkadot_cli::RunCmd::from_iter(relay_chain_args) } } } diff --git a/node/src/command.rs b/node/src/command.rs index 7b986d38..f637ce10 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -1,21 +1,19 @@ use crate::{ chain_spec, cli::{Cli, RelayChainCli, Subcommand}, - service::{new_partial, ParachainRuntimeExecutor} + service::{new_partial, ParachainRuntimeExecutor}, }; use codec::Encode; -use cumulus_primitives_core::ParaId; use cumulus_client_service::genesis::generate_genesis_block; +use cumulus_primitives_core::ParaId; use log::info; -use parachain_runtime::{RuntimeApi, Block}; +use parachain_runtime::{Block, RuntimeApi}; use polkadot_parachain::primitives::AccountIdConversion; use sc_cli::{ ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli, }; -use sc_service::{ - config::{BasePath, PrometheusConfig} -}; +use sc_service::config::{BasePath, PrometheusConfig}; use sp_core::hexdisplay::HexDisplay; use sp_runtime::traits::Block as BlockT; use std::{io::Write, net::SocketAddr}; @@ -27,9 +25,7 @@ fn load_spec( Ok(match id { "dev" => Box::new(chain_spec::development_config(para_id)), "" | "local" => Box::new(chain_spec::local_testnet_config(para_id)), - path => Box::new(chain_spec::ChainSpec::from_json_file( - std::path::PathBuf::from(path), - )?), + path => Box::new(chain_spec::ChainSpec::from_json_file(std::path::PathBuf::from(path))?), }) } @@ -147,27 +143,27 @@ pub fn run() -> Result<()> { Some(Subcommand::BuildSpec(cmd)) => { let runner = cli.create_runner(cmd)?; runner.sync_run(|config| cmd.run(config.chain_spec, config.network)) - } + }, Some(Subcommand::CheckBlock(cmd)) => { construct_async_run!(|components, cli, cmd, config| { Ok(cmd.run(components.client, components.import_queue)) }) - } + }, Some(Subcommand::ExportBlocks(cmd)) => { construct_async_run!(|components, cli, cmd, config| { Ok(cmd.run(components.client, config.database)) }) - } + }, Some(Subcommand::ExportState(cmd)) => { construct_async_run!(|components, cli, cmd, config| { Ok(cmd.run(components.client, config.chain_spec)) }) - } + }, Some(Subcommand::ImportBlocks(cmd)) => { construct_async_run!(|components, cli, cmd, config| { Ok(cmd.run(components.client, components.import_queue)) }) - } + }, Some(Subcommand::PurgeChain(cmd)) => { let runner = cli.create_runner(cmd)?; @@ -188,7 +184,7 @@ pub fn run() -> Result<()> { cmd.run(config, polkadot_config) }) - } + }, Some(Subcommand::Revert(cmd)) => construct_async_run!(|components, cli, cmd, config| { Ok(cmd.run(components.client, components.backend)) }), @@ -215,7 +211,7 @@ pub fn run() -> Result<()> { } Ok(()) - } + }, Some(Subcommand::ExportGenesisWasm(params)) => { let mut builder = sc_cli::LoggerBuilder::new(""); builder.with_profiling(sc_tracing::TracingReceiver::Log, ""); @@ -237,16 +233,16 @@ pub fn run() -> Result<()> { Ok(()) }, - Some(Subcommand::Benchmark(cmd)) => { + Some(Subcommand::Benchmark(cmd)) => if cfg!(feature = "runtime-benchmarks") { let runner = cli.create_runner(cmd)?; runner.sync_run(|config| cmd.run::(config)) } else { Err("Benchmarking wasn't enabled when building the node. \ - You can enable it with `--features runtime-benchmarks`.".into()) - } - }, + You can enable it with `--features runtime-benchmarks`." + .into()) + }, None => { let runner = cli.create_runner(&cli.run.normalize())?; @@ -271,31 +267,21 @@ pub fn run() -> Result<()> { let genesis_state = format!("0x{:?}", HexDisplay::from(&block.header().encode())); let task_executor = config.task_executor.clone(); - let polkadot_config = SubstrateCli::create_configuration( - &polkadot_cli, - &polkadot_cli, - task_executor, - ) - .map_err(|err| format!("Relay chain argument error: {}", err))?; + let polkadot_config = + SubstrateCli::create_configuration(&polkadot_cli, &polkadot_cli, task_executor) + .map_err(|err| format!("Relay chain argument error: {}", err))?; info!("Parachain id: {:?}", id); info!("Parachain Account: {}", parachain_account); info!("Parachain genesis state: {}", genesis_state); - info!( - "Is collating: {}", - if config.role.is_authority() { - "yes" - } else { - "no" - } - ); + info!("Is collating: {}", if config.role.is_authority() { "yes" } else { "no" }); crate::service::start_node(config, polkadot_config, id) .await .map(|r| r.0) .map_err(Into::into) }) - } + }, } } @@ -364,11 +350,7 @@ impl CliConfiguration for RelayChainCli { fn chain_id(&self, is_dev: bool) -> Result { let chain_id = self.base.base.chain_id(is_dev)?; - Ok(if chain_id.is_empty() { - self.chain_id.clone().unwrap_or_default() - } else { - chain_id - }) + Ok(if chain_id.is_empty() { self.chain_id.clone().unwrap_or_default() } else { chain_id }) } fn role(&self, is_dev: bool) -> Result { diff --git a/node/src/service.rs b/node/src/service.rs index f13ea4a7..2876e840 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -17,8 +17,8 @@ use cumulus_primitives_core::ParaId; // Substrate Imports use sc_client_api::ExecutorProvider; -pub use sc_executor::NativeExecutor; use sc_executor::native_executor_instance; +pub use sc_executor::NativeExecutor; use sc_network::NetworkService; use sc_service::{Configuration, PartialComponents, Role, TFullBackend, TFullClient, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; @@ -194,7 +194,7 @@ where ) -> Result>, sc_service::Error>, { if matches!(parachain_config.role, Role::Light) { - return Err("Light client not supported!".into()); + return Err("Light client not supported!".into()) } let parachain_config = prepare_node_config(parachain_config); @@ -202,14 +202,12 @@ where let params = new_partial::(¶chain_config, build_import_queue)?; let (mut telemetry, telemetry_worker_handle) = params.other; - let relay_chain_full_node = cumulus_client_service::build_polkadot_full_node( - polkadot_config, - telemetry_worker_handle, - ) - .map_err(|e| match e { - polkadot_service::Error::Sub(x) => x, - s => format!("{}", s).into(), - })?; + let relay_chain_full_node = + cumulus_client_service::build_polkadot_full_node(polkadot_config, telemetry_worker_handle) + .map_err(|e| match e { + polkadot_service::Error::Sub(x) => x, + s => format!("{}", s).into(), + })?; let client = params.client.clone(); let backend = params.backend.clone(); @@ -320,7 +318,6 @@ pub fn parachain_build_import_queue( > { let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?; - cumulus_client_consensus_aura::import_queue::< sp_consensus_aura::sr25519::AuthorityPair, _, @@ -330,7 +327,7 @@ pub fn parachain_build_import_queue( _, _, >(cumulus_client_consensus_aura::ImportQueueParams { - block_import: client.clone(), + block_import: client.clone(), client: client.clone(), create_inherent_data_providers: move |_, _| async move { let time = sp_timestamp::InherentDataProvider::from_system_time(); @@ -356,7 +353,10 @@ pub async fn start_node( parachain_config: Configuration, polkadot_config: Configuration, id: ParaId, -) -> sc_service::error::Result<(TaskManager, Arc>)> { +) -> sc_service::error::Result<( + TaskManager, + Arc>, +)> { start_node_impl::( parachain_config, polkadot_config, diff --git a/pallets/template/src/lib.rs b/pallets/template/src/lib.rs index 68220acb..a9ebf50a 100644 --- a/pallets/template/src/lib.rs +++ b/pallets/template/src/lib.rs @@ -99,7 +99,7 @@ pub mod pallet { // Update the value in storage with the incremented result. >::put(new); Ok(().into()) - } + }, } } } diff --git a/pallets/template/src/mock.rs b/pallets/template/src/mock.rs index f3a76775..a7394c13 100644 --- a/pallets/template/src/mock.rs +++ b/pallets/template/src/mock.rs @@ -59,8 +59,5 @@ impl pallet_template::Config for Test { // Build genesis storage according to the mock runtime. pub fn new_test_ext() -> sp_io::TestExternalities { - system::GenesisConfig::default() - .build_storage::() - .unwrap() - .into() + system::GenesisConfig::default().build_storage::().unwrap().into() } diff --git a/pallets/template/src/tests.rs b/pallets/template/src/tests.rs index aecf1301..22056586 100644 --- a/pallets/template/src/tests.rs +++ b/pallets/template/src/tests.rs @@ -15,9 +15,6 @@ fn it_works_for_default_value() { fn correct_error_for_none_value() { new_test_ext().execute_with(|| { // Ensure the expected error is thrown when no value is present. - assert_noop!( - TemplateModule::cause_error(Origin::signed(1)), - Error::::NoneValue - ); + assert_noop!(TemplateModule::cause_error(Origin::signed(1)), Error::::NoneValue); }); } diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 6e84c569..da1a01d9 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -145,10 +145,7 @@ pub const MICROUNIT: Balance = 1_000_000; /// The version information used to identify this runtime when compiled natively. #[cfg(feature = "std")] pub fn native_version() -> NativeVersion { - NativeVersion { - runtime_version: VERSION, - can_author_with: Default::default(), - } + NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } } /// We assume that ~10% of the block weight is consumed by `on_initalize` handlers. diff --git a/rustfmt.toml b/rustfmt.toml new file mode 100644 index 00000000..4e242588 --- /dev/null +++ b/rustfmt.toml @@ -0,0 +1,22 @@ +# Basic +hard_tabs = true +max_width = 100 +use_small_heuristics = "Max" +# Imports +imports_granularity = "Crate" +reorder_imports = true +# Consistency +newline_style = "Unix" +normalize_comments = true +normalize_doc_attributes = true +# Misc +chain_width = 80 +spaces_around_ranges = false +binop_separator = "Back" +reorder_impl_items = false +match_arm_leading_pipes = "Preserve" +match_arm_blocks = false +match_block_trailing_comma = true +trailing_comma = "Vertical" +trailing_semicolon = false +use_field_init_shorthand = true \ No newline at end of file From 6589adf6885f382f38a8cfed081fc948397be325 Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Thu, 26 Aug 2021 04:50:29 -0700 Subject: [PATCH 37/91] Update to `polkadot-v0.9.9` (#65) * update deps, no other modifications * fix deps * builds, no warnings * disable teleporting --- Cargo.lock | 2118 +++++++++++++++++++---------------- node/Cargo.toml | 92 +- node/src/service.rs | 13 +- pallets/template/Cargo.toml | 14 +- runtime/Cargo.toml | 80 +- runtime/src/lib.rs | 26 +- 6 files changed, 1286 insertions(+), 1057 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c3a984f5..6ba2f695 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -18,7 +18,16 @@ version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7a2e47a1fbe209ee101dd6d61285226744c6c8d3c21c8dc878ba6cb9f467f3a" dependencies = [ - "gimli", + "gimli 0.24.0", +] + +[[package]] +name = "addr2line" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e61f2b7f93d2c7d2b08263acaa4a363b3e276806c68af6134c44f523bf1aacd" +dependencies = [ + "gimli 0.25.0", ] [[package]] @@ -57,7 +66,7 @@ dependencies = [ "aes", "block-cipher", "ghash", - "subtle 2.4.0", + "subtle 2.4.1", ] [[package]] @@ -81,12 +90,6 @@ dependencies = [ "opaque-debug 0.3.0", ] -[[package]] -name = "ahash" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" - [[package]] name = "ahash" version = "0.7.4" @@ -133,9 +136,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.42" +version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595d3cfa7a60d4555cb5067b99f07142a08ea778de5cf993f7b75c7d8fabc486" +checksum = "28ae2b3dec75a406790005a200b1bd89785afc02517a00ca99ecfe093ee9e6cf" [[package]] name = "approx" @@ -250,7 +253,7 @@ dependencies = [ "parking", "polling", "slab", - "socket2 0.4.0", + "socket2 0.4.1", "waker-fn", "winapi 0.3.9", ] @@ -275,9 +278,9 @@ dependencies = [ [[package]] name = "async-process" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f38756dd9ac84671c428afbf7c9f7495feff9ec5b0710f17100098e5b354ac" +checksum = "b21b63ab5a0db0369deb913540af2892750e42d949faacc7a61495ac418a1692" dependencies = [ "async-io", "blocking", @@ -341,9 +344,9 @@ checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0" [[package]] name = "async-trait" -version = "0.1.50" +version = "0.1.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b98e84bbb4cbcdd97da190ba0c58a1bb0de2c1fdf67d159e192ed766aeca722" +checksum = "44318e776df68115a881de9a8fd1b9e53368d7a4a5ce4cc48517da3393233a5e" dependencies = [ "proc-macro2", "quote", @@ -410,19 +413,32 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "backtrace" -version = "0.3.60" +version = "0.3.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7815ea54e4d821e791162e078acbebfd6d8c8939cd559c9335dceb1c8ca7282" +checksum = "e7a905d892734eea339e896738c14b9afce22b5318f64b951e70bf3844419b01" dependencies = [ - "addr2line", + "addr2line 0.16.0", "cc", "cfg-if 1.0.0", "libc", "miniz_oxide", - "object 0.25.3", + "object 0.26.0", "rustc-demangle", ] +[[package]] +name = "bae" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec107f431ee3d8a8e45e6dd117adab769556ef463959e77bf6a4888d5fd500cf" +dependencies = [ + "heck", + "proc-macro-error 0.4.12", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "base-x" version = "0.2.8" @@ -449,9 +465,9 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "beef" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6736e2428df2ca2848d846c43e88745121a6654696e349ce0054a420815a7409" +checksum = "bed554bd50246729a1ec158d08aa3235d1b69d94ad120ebe187e28894787e736" dependencies = [ "serde", ] @@ -459,10 +475,11 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.8#55ae3329847e0bbde51c9d45991d99f444777555" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.9#f40c0ab7b327e874d5c8d699bfa5d762f1759ee0" dependencies = [ "beefy-primitives", - "futures 0.3.15", + "fnv", + "futures 0.3.16", "hex", "log", "parity-scale-codec", @@ -482,16 +499,17 @@ dependencies = [ "sp-utils", "substrate-prometheus-endpoint", "thiserror", + "wasm-timer", ] [[package]] name = "beefy-gadget-rpc" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.8#55ae3329847e0bbde51c9d45991d99f444777555" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.9#f40c0ab7b327e874d5c8d699bfa5d762f1759ee0" dependencies = [ "beefy-gadget", "beefy-primitives", - "futures 0.3.15", + "futures 0.3.16", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -505,10 +523,15 @@ dependencies = [ "sp-runtime", ] +[[package]] +name = "beefy-merkle-tree" +version = "0.1.0" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.9#f40c0ab7b327e874d5c8d699bfa5d762f1759ee0" + [[package]] name = "beefy-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.8#55ae3329847e0bbde51c9d45991d99f444777555" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.9#f40c0ab7b327e874d5c8d699bfa5d762f1759ee0" dependencies = [ "parity-scale-codec", "sp-api", @@ -529,9 +552,9 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.57.0" +version = "0.59.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd4865004a46a0aafb2a0a5eb19d3c9fc46ee5f063a6cfc605c69ac9ecf5263d" +checksum = "453c49e5950bb0eb63bb3df640e31618846c89d5b7faa54040d76e98e0134375" dependencies = [ "bitflags", "cexpr", @@ -548,9 +571,21 @@ dependencies = [ [[package]] name = "bitflags" -version = "1.2.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitvec" +version = "0.19.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8942c8d352ae1838c9dda0b0ca2ab657696ef2232a20147cf1b30ae1a9cb4321" +dependencies = [ + "funty", + "radium 0.5.3", + "tap", + "wyz", +] [[package]] name = "bitvec" @@ -559,7 +594,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" dependencies = [ "funty", - "radium", + "radium 0.6.2", "tap", "wyz", ] @@ -761,18 +796,18 @@ checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba" [[package]] name = "camino" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4648c6d00a709aa069a236adcaae4f605a6241c72bf5bee79331a4b625921a9" +checksum = "52d74260d9bf6944e2208aa46841b4b8f0d7ffc0849a06837b2f510337f86b2b" dependencies = [ "serde", ] [[package]] name = "cargo-platform" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0226944a63d1bf35a3b5f948dd7c59e263db83695c9e8bffc4037de02e30f1d7" +checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" dependencies = [ "serde", ] @@ -793,18 +828,18 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a72c244c1ff497a746a7e1fb3d14bd08420ecda70c8f25c7112f2781652d787" +checksum = "e70cc2f62c6ce1868963827bd677764c62d07c3d9a3e1fb1177ee1a9ab199eb2" dependencies = [ "jobserver", ] [[package]] name = "cexpr" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27" +checksum = "db507a7679252d2276ed0dd8113c6875ec56d3089f9225b2b42c30cc1f8e5c89" dependencies = [ "nom", ] @@ -1023,7 +1058,7 @@ dependencies = [ "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-entity", - "gimli", + "gimli 0.24.0", "log", "regalloc", "serde", @@ -1119,9 +1154,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" +checksum = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed" dependencies = [ "crossbeam-epoch 0.8.2", "crossbeam-utils 0.7.2", @@ -1130,9 +1165,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" +checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" dependencies = [ "cfg-if 1.0.0", "crossbeam-epoch 0.9.5", @@ -1222,7 +1257,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ "generic-array 0.14.4", - "subtle 2.4.0", + "subtle 2.4.1", ] [[package]] @@ -1258,7 +1293,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" dependencies = [ "sc-cli", "sc-service", @@ -1268,12 +1303,12 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-primitives-core", - "futures 0.3.15", + "futures 0.3.16", "parity-scale-codec", "parking_lot 0.10.2", "polkadot-node-primitives", @@ -1292,16 +1327,17 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" dependencies = [ "async-trait", "cumulus-client-consensus-common", "cumulus-primitives-core", - "futures 0.3.15", + "futures 0.3.16", "parity-scale-codec", "parking_lot 0.10.2", "polkadot-client", "sc-client-api", + "sc-consensus", "sc-consensus-aura", "sc-consensus-slots", "sc-telemetry", @@ -1322,15 +1358,16 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" dependencies = [ "async-trait", "dyn-clone", - "futures 0.3.15", + "futures 0.3.16", "parity-scale-codec", "polkadot-primitives", "polkadot-runtime", "sc-client-api", + "sc-consensus", "sp-api", "sp-block-builder", "sp-blockchain", @@ -1346,10 +1383,10 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" dependencies = [ "derive_more", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "parity-scale-codec", "parking_lot 0.10.2", @@ -1370,10 +1407,10 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" dependencies = [ "cumulus-primitives-core", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "parity-scale-codec", "polkadot-node-primitives", @@ -1382,6 +1419,7 @@ dependencies = [ "polkadot-primitives", "rand 0.8.4", "sc-client-api", + "sc-consensus", "sp-api", "sp-consensus", "sp-core", @@ -1393,7 +1431,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-common", @@ -1406,6 +1444,7 @@ dependencies = [ "polkadot-service", "sc-chain-spec", "sc-client-api", + "sc-consensus", "sc-consensus-babe", "sc-service", "sc-telemetry", @@ -1421,7 +1460,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" dependencies = [ "frame-executive", "frame-support", @@ -1438,7 +1477,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1457,7 +1496,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1485,7 +1524,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -1496,7 +1535,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1512,7 +1551,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1530,7 +1569,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1548,7 +1587,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1569,7 +1608,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" dependencies = [ "cumulus-primitives-core", "sp-inherents", @@ -1580,7 +1619,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1598,7 +1637,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1610,27 +1649,27 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "2.1.2" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "434e1720189a637d44fe464f4df1e6eb900b4835255b14354497c78af37d9bb8" +checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216" dependencies = [ "byteorder", "digest 0.8.1", "rand_core 0.5.1", - "subtle 2.4.0", + "subtle 2.4.1", "zeroize", ] [[package]] name = "curve25519-dalek" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "639891fde0dbea823fc3d798a0fdf9d2f9440a42d64a78ab3488b0ca025117b3" +checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" dependencies = [ "byteorder", "digest 0.9.0", "rand_core 0.5.1", - "subtle 2.4.0", + "subtle 2.4.1", "zeroize", ] @@ -1788,9 +1827,9 @@ checksum = "ee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcf" [[package]] name = "ed25519" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d0860415b12243916284c67a9be413e044ee6668247b99ba26d94b2bc06c8f6" +checksum = "4620d40f6d2601794401d6dd95a5cf69b6c157852539470eeda433a99b3c0efc" dependencies = [ "signature", ] @@ -1801,7 +1840,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" dependencies = [ - "curve25519-dalek 3.1.0", + "curve25519-dalek 3.2.0", "ed25519", "rand 0.7.3", "serde", @@ -1935,9 +1974,9 @@ dependencies = [ [[package]] name = "ethereum-types" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64b5df66a228d85e4b17e5d6c6aa43b0310898ffe8a85988c4c032357aaabfd" +checksum = "0dd6bde671199089e601e8d47e153368b893ef885f11f365a3261ec58153c211" dependencies = [ "ethbloom", "fixed-hash", @@ -1959,7 +1998,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", ] [[package]] @@ -1998,9 +2037,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77b705829d1e87f762c2df6da140b26af5839e1033aa84aa5f56bb688e4e1bdb" +checksum = "b394ed3d285a429378d3b384b9eb1285267e7df4b166df24b7a6939a04dc392e" dependencies = [ "instant", ] @@ -2026,17 +2065,18 @@ dependencies = [ [[package]] name = "finality-grandpa" -version = "0.14.1" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74a1bfdcc776e63e49f741c7ce6116fa1b887e8ac2e3ccb14dd4aa113e54feb9" +checksum = "c832d0ed507622c7cb98e9b7f10426850fc9d38527ab8071778dcc3a81d45875" dependencies = [ "either", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "log", "num-traits", "parity-scale-codec", "parking_lot 0.11.1", + "scale-info", ] [[package]] @@ -2079,7 +2119,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "parity-scale-codec", ] @@ -2096,8 +2136,8 @@ dependencies = [ [[package]] name = "frame-benchmarking" -version = "3.1.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -2115,13 +2155,16 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "Inflector", "chrono", "frame-benchmarking", + "frame-support", "handlebars", + "linked-hash-map", + "log", "parity-scale-codec", "sc-cli", "sc-client-db", @@ -2138,8 +2181,8 @@ dependencies = [ [[package]] name = "frame-election-provider-support" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -2151,8 +2194,8 @@ dependencies = [ [[package]] name = "frame-executive" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -2166,8 +2209,8 @@ dependencies = [ [[package]] name = "frame-metadata" -version = "13.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "14.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "parity-scale-codec", "serde", @@ -2177,15 +2220,14 @@ dependencies = [ [[package]] name = "frame-support" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "bitflags", "frame-metadata", "frame-support-procedural", "impl-trait-for-tuples", "log", - "max-encoded-len", "once_cell", "parity-scale-codec", "paste", @@ -2204,8 +2246,8 @@ dependencies = [ [[package]] name = "frame-support-procedural" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2216,8 +2258,8 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.0.0", @@ -2229,7 +2271,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "proc-macro2", "quote", @@ -2238,8 +2280,8 @@ dependencies = [ [[package]] name = "frame-system" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -2255,8 +2297,8 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-benchmarking", "frame-support", @@ -2269,8 +2311,8 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "parity-scale-codec", "sp-api", @@ -2278,8 +2320,8 @@ dependencies = [ [[package]] name = "frame-try-runtime" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "parity-scale-codec", @@ -2352,9 +2394,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7e43a803dae2fa37c1f6a8fe121e1f7bf9548b4dfc0522a42f34145dadfc27" +checksum = "1adc00f486adfc9ce99f77d717836f0c5aa84965eb0b4f051f4e83f7cab53f8b" dependencies = [ "futures-channel", "futures-core", @@ -2367,9 +2409,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e682a68b29a882df0545c143dc3646daefe80ba479bcdede94d5a703de2871e2" +checksum = "74ed2411805f6e4e3d9bc904c95d5d423b89b3b25dc0250aa74729de20629ff9" dependencies = [ "futures-core", "futures-sink", @@ -2377,9 +2419,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1" +checksum = "af51b1b4a7fdff033703db39de8802c673eb91855f2e0d47dcf3bf2c0ef01f99" [[package]] name = "futures-cpupool" @@ -2393,9 +2435,9 @@ dependencies = [ [[package]] name = "futures-executor" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "badaa6a909fac9e7236d0620a2f57f7664640c56575b71a7552fbd68deafab79" +checksum = "4d0d535a57b87e1ae31437b892713aee90cd2d7b0ee48727cd11fc72ef54761c" dependencies = [ "futures-core", "futures-task", @@ -2405,9 +2447,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acc499defb3b348f8d8f3f66415835a9131856ff7714bf10dadfc4ec4bdb29a1" +checksum = "0b0e06c393068f3a6ef246c75cdca793d6a46347e75286933e5e75fd2fd11582" [[package]] name = "futures-lite" @@ -2426,9 +2468,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c40298486cdf52cc00cd6d6987892ba502c7656a16a4192a9992b1ccedd121" +checksum = "c54913bae956fb8df7f4dc6fc90362aa72e69148e3f39041fbe8742d21e0ac57" dependencies = [ "autocfg", "proc-macro-hack", @@ -2450,15 +2492,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a57bead0ceff0d6dde8f465ecd96c9338121bb7717d3e7b108059531870c4282" +checksum = "c0f30aaa67363d119812743aa5f33c201a7a66329f97d1a887022971feea4b53" [[package]] name = "futures-task" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a16bef9fc1a4dddb5bee51c989e3fbba26569cbb0e31f5b303c184e3dd33dae" +checksum = "bbe54a98670017f3be909561f6ad13e810d9a51f3f061b902062ca3da80799f2" [[package]] name = "futures-timer" @@ -2474,9 +2516,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feb5c238d27e2bf94ffdfd27b2c29e3df4a68c4193bb6427384259e2bf191967" +checksum = "67eb846bfd58e44a8481a00049e82c43e0ccb5d61f8dc071057cb19249dd4d78" dependencies = [ "autocfg", "futures 0.1.31", @@ -2562,6 +2604,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "gimli" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0a01e0497841a3b2db4f8afa483cce65f7e96a3498bd6c541734792aeac8fe7" + [[package]] name = "glob" version = "0.3.0" @@ -2661,22 +2709,13 @@ dependencies = [ "crunchy", ] -[[package]] -name = "hashbrown" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" -dependencies = [ - "ahash 0.4.7", -] - [[package]] name = "hashbrown" version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" dependencies = [ - "ahash 0.7.4", + "ahash", ] [[package]] @@ -2705,9 +2744,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hex-literal" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76505e26b6ca3bbdbbb360b68472abbb80998c5fa5dc43672eca34f28258e138" +checksum = "21e4590e13640f19f249fe3e4eca5113bc4289f2497710378190e7f4bd96f45b" [[package]] name = "hex_fmt" @@ -2803,9 +2842,9 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60daa14be0e0786db0f03a9e57cb404c9d756eed2b6c62b9ea98ec5743ec75a9" +checksum = "399c583b2979440c60be0821a6199eca73bc3c8dcd9d070d75ac726e2c6186e5" dependencies = [ "bytes 1.0.1", "http 0.2.4", @@ -2891,7 +2930,7 @@ dependencies = [ "httparse", "httpdate 0.3.2", "itoa", - "pin-project 1.0.7", + "pin-project 1.0.8", "socket2 0.3.19", "tokio 0.2.25", "tower-service", @@ -2901,21 +2940,21 @@ dependencies = [ [[package]] name = "hyper" -version = "0.14.10" +version = "0.14.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7728a72c4c7d72665fde02204bcbd93b247721025b222ef78606f14513e0fd03" +checksum = "0b61cf2d1aebcf6e6352c97b81dc2244ca29194be1b276f5d8ad5c6330fffb11" dependencies = [ "bytes 1.0.1", "futures-channel", "futures-core", "futures-util", "http 0.2.4", - "http-body 0.4.2", + "http-body 0.4.3", "httparse", "httpdate 1.0.1", "itoa", "pin-project-lite 0.2.7", - "tokio 1.8.1", + "tokio 1.10.0", "tower-service", "tracing", "want 0.3.0", @@ -2989,7 +3028,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae8ab7f67bad3240049cb24fb9cb0b4c2c6af4c245840917fbbdededeee91179" dependencies = [ "async-io", - "futures 0.3.15", + "futures 0.3.16", "futures-lite", "if-addrs", "ipnet", @@ -3043,15 +3082,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" dependencies = [ "autocfg", - "hashbrown 0.11.2", + "hashbrown", "serde", ] [[package]] name = "instant" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec" +checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d" dependencies = [ "cfg-if 1.0.0", ] @@ -3077,7 +3116,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "futures-timer 2.0.2", ] @@ -3140,18 +3179,18 @@ checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" [[package]] name = "jobserver" -version = "0.1.22" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "972f5ae5d1cb9c6ae417789196c803205313edde988685da5e3aae0827b9e7fd" +checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.51" +version = "0.3.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83bdfbace3a0e81a4253f73b49e960b053e396a11012cbd49b9b74d6a2b67062" +checksum = "ce791b7ca6638aae45be056e068fc756d871eb3b3b10b8efa62d1c9cec616752" dependencies = [ "wasm-bindgen", ] @@ -3280,11 +3319,12 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b4c85cfa6767333f3e5f3b2f2f765dad2727b0033ee270ae07c599bf43ed5ae" +checksum = "f37924e16300e249a52a22cabb5632f846dc9760b39355f5e8bc70cd23dc6300" dependencies = [ "Inflector", + "bae", "proc-macro-crate 1.0.0", "proc-macro2", "quote", @@ -3293,39 +3333,39 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0cf7bd4e93b3b56e59131de7f24afbea871faf914e97bcdd942c86927ab0172" +checksum = "d67724d368c59e08b557a516cf8fcc51100e7a708850f502e1044b151fe89788" dependencies = [ "async-trait", "beef", "futures-channel", "futures-util", - "hyper 0.14.10", + "hyper 0.14.11", "log", "serde", "serde_json", - "soketto 0.5.0", + "soketto 0.6.0", "thiserror", ] [[package]] name = "jsonrpsee-ws-client" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ec51150965544e1a4468f372bdab8545243a1b045d4ab272023aac74c60de32" +checksum = "8e2834b6e7f57ce9a4412ed4d6dc95125d2c8612e68f86b9d9a07369164e4198" dependencies = [ "async-trait", "fnv", - "futures 0.3.15", + "futures 0.3.16", "jsonrpsee-types", "log", - "pin-project 1.0.7", + "pin-project 1.0.8", "rustls 0.19.1", "rustls-native-certs 0.5.0", "serde", "serde_json", - "soketto 0.5.0", + "soketto 0.6.0", "thiserror", "tokio 0.2.25", "tokio-rustls 0.15.0", @@ -3360,9 +3400,9 @@ dependencies = [ [[package]] name = "kvdb" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8891bd853eff90e33024195d79d578dc984c82f9e0715fcd2b525a0c19d52811" +checksum = "45a3f58dc069ec0e205a27f5b45920722a46faed802a0541538241af6228f512" dependencies = [ "parity-util-mem", "smallvec 1.6.1", @@ -3370,9 +3410,9 @@ dependencies = [ [[package]] name = "kvdb-memorydb" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a0da8e08caf08d384a620ec19bb6c9b85c84137248e202617fb91881f25912" +checksum = "c3b6b85fc643f5acd0bffb2cc8a6d150209379267af0d41db72170021841f9f5" dependencies = [ "kvdb", "parity-util-mem", @@ -3381,9 +3421,9 @@ dependencies = [ [[package]] name = "kvdb-rocksdb" -version = "0.11.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b27cdb788bf1c8ade782289f9dbee626940be2961fd75c7cde993fa2f1ded1" +checksum = "0d169dbb316aa0fa185d02d847c047f1aa20e292cf1563d790c13536a2a732c8" dependencies = [ "fs-swap", "kvdb", @@ -3409,17 +3449,11 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" -[[package]] -name = "leb128" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a" - [[package]] name = "libc" -version = "0.2.98" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320cfe77175da3a483efed4bc0adc1968ca050b098ce4f2f1c13a56626128790" +checksum = "a7f823d141fe0a24df1e23b4af4e3c7ba9e5966ec514ea068c93024aa7deb765" [[package]] name = "libloading" @@ -3455,7 +3489,7 @@ checksum = "08053fbef67cd777049ef7a95ebaca2ece370b4ed7712c3fa404d69a88cb741b" dependencies = [ "atomic", "bytes 1.0.1", - "futures 0.3.15", + "futures 0.3.16", "lazy_static", "libp2p-core", "libp2p-deflate", @@ -3481,7 +3515,7 @@ dependencies = [ "libp2p-yamux", "parity-multiaddr", "parking_lot 0.11.1", - "pin-project 1.0.7", + "pin-project 1.0.8", "smallvec 1.6.1", "wasm-timer", ] @@ -3497,16 +3531,16 @@ dependencies = [ "ed25519-dalek", "either", "fnv", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "lazy_static", - "libsecp256k1", + "libsecp256k1 0.3.5", "log", "multihash", "multistream-select", "parity-multiaddr", "parking_lot 0.11.1", - "pin-project 1.0.7", + "pin-project 1.0.8", "prost", "prost-build", "rand 0.7.3", @@ -3527,7 +3561,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2181a641cd15f9b6ba71b1335800f309012a0a97a29ffaabbbf40e9d3d58f08" dependencies = [ "flate2", - "futures 0.3.15", + "futures 0.3.16", "libp2p-core", ] @@ -3538,7 +3572,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62e63dab8b5ff35e0c101a3e51e843ba782c07bbb1682f5fd827622e0d02b98b" dependencies = [ "async-std-resolver", - "futures 0.3.15", + "futures 0.3.16", "libp2p-core", "log", "smallvec 1.6.1", @@ -3553,7 +3587,7 @@ checksum = "48a9b570f6766301d9c4aa00fce3554cad1598e2f466debbc4dde909028417cf" dependencies = [ "cuckoofilter", "fnv", - "futures 0.3.15", + "futures 0.3.16", "libp2p-core", "libp2p-swarm", "log", @@ -3574,7 +3608,7 @@ dependencies = [ "byteorder", "bytes 1.0.1", "fnv", - "futures 0.3.15", + "futures 0.3.16", "hex_fmt", "libp2p-core", "libp2p-swarm", @@ -3595,7 +3629,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f668f00efd9883e8b7bcc582eaf0164615792608f886f6577da18bcbeea0a46" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "libp2p-core", "libp2p-swarm", "log", @@ -3616,7 +3650,7 @@ dependencies = [ "bytes 1.0.1", "either", "fnv", - "futures 0.3.15", + "futures 0.3.16", "libp2p-core", "libp2p-swarm", "log", @@ -3640,7 +3674,7 @@ dependencies = [ "async-io", "data-encoding", "dns-parser", - "futures 0.3.15", + "futures 0.3.16", "if-watch", "lazy_static", "libp2p-core", @@ -3648,7 +3682,7 @@ dependencies = [ "log", "rand 0.8.4", "smallvec 1.6.1", - "socket2 0.4.0", + "socket2 0.4.1", "void", ] @@ -3660,7 +3694,7 @@ checksum = "85e9b544335d1ed30af71daa96edbefadef6f19c7a55f078b9fc92c87163105d" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.0.1", - "futures 0.3.15", + "futures 0.3.16", "libp2p-core", "log", "nohash-hasher", @@ -3677,8 +3711,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36db0f0db3b0433f5b9463f1c0cd9eadc0a3734a9170439ce501ff99733a88bd" dependencies = [ "bytes 1.0.1", - "curve25519-dalek 3.1.0", - "futures 0.3.15", + "curve25519-dalek 3.2.0", + "futures 0.3.16", "lazy_static", "libp2p-core", "log", @@ -3698,7 +3732,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf4bfaffac63bf3c7ec11ed9d8879d455966ddea7e78ee14737f0b6dce0d1cd1" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "libp2p-core", "libp2p-swarm", "log", @@ -3715,7 +3749,7 @@ checksum = "0c8c37b4d2a075b4be8442760a5f8c037180f0c8dd5b5734b9978ab868b3aa11" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.0.1", - "futures 0.3.15", + "futures 0.3.16", "libp2p-core", "log", "prost", @@ -3730,9 +3764,9 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce3374f3b28162db9d3442c9347c4f14cb01e8290052615c7d341d40eae0599" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "log", - "pin-project 1.0.7", + "pin-project 1.0.8", "rand 0.7.3", "salsa20", "sha3", @@ -3746,12 +3780,12 @@ checksum = "0b8786aca3f18671d8776289706a5521f6c9124a820f69e358de214b9939440d" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.0.1", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "libp2p-core", "libp2p-swarm", "log", - "pin-project 1.0.7", + "pin-project 1.0.8", "prost", "prost-build", "rand 0.7.3", @@ -3769,7 +3803,7 @@ checksum = "1cdbe172f08e6d0f95fa8634e273d4c4268c4063de2e33e7435194b0130c62e3" dependencies = [ "async-trait", "bytes 1.0.1", - "futures 0.3.15", + "futures 0.3.16", "libp2p-core", "libp2p-swarm", "log", @@ -3788,7 +3822,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e04d8e1eef675029ec728ba14e8d0da7975d84b6679b699b4ae91a1de9c3a92" dependencies = [ "either", - "futures 0.3.15", + "futures 0.3.16", "libp2p-core", "log", "rand 0.7.3", @@ -3814,14 +3848,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b1a27d21c477951799e99d5c105d78868258502ce092988040a808d5a19bbd9" dependencies = [ "async-io", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "if-watch", "ipnet", "libc", "libp2p-core", "log", - "socket2 0.4.0", + "socket2 0.4.1", ] [[package]] @@ -3831,7 +3865,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffd6564bb3b7ff203661ccbb69003c2b551e34cef974f2d6c6a28306a12170b5" dependencies = [ "async-std", - "futures 0.3.15", + "futures 0.3.16", "libp2p-core", "log", ] @@ -3842,7 +3876,7 @@ version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2d413e4cf9b8e5dfbcd2a60d3dc5a3391308bdb463684093d4f67137b7113de" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "js-sys", "libp2p-core", "parity-send-wrapper", @@ -3857,7 +3891,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cace60995ef6f637e4752cccbb2590f6bc358e8741a0d066307636c69a4b3a74" dependencies = [ "either", - "futures 0.3.15", + "futures 0.3.16", "futures-rustls", "libp2p-core", "log", @@ -3874,7 +3908,7 @@ version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f35da42cfc6d5cb0dcf3ad6881bc68d146cdf38f98655e09e33fbba4d13eabc4" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "libp2p-core", "parking_lot 0.11.1", "thiserror", @@ -3883,9 +3917,9 @@ dependencies = [ [[package]] name = "librocksdb-sys" -version = "6.17.3" +version = "6.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5da125e1c0f22c7cae785982115523a0738728498547f415c9054cb17c7e89f9" +checksum = "c309a9d2470844aceb9a4a098cf5286154d20596868b75a6b36357d2bb9ca25d" dependencies = [ "bindgen", "cc", @@ -3905,10 +3939,56 @@ dependencies = [ "hmac-drbg", "rand 0.7.3", "sha2 0.8.2", - "subtle 2.4.0", + "subtle 2.4.1", "typenum", ] +[[package]] +name = "libsecp256k1" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73" +dependencies = [ + "arrayref", + "base64 0.12.3", + "digest 0.9.0", + "libsecp256k1-core", + "libsecp256k1-gen-ecmult", + "libsecp256k1-gen-genmult", + "rand 0.7.3", + "serde", + "sha2 0.9.5", +] + +[[package]] +name = "libsecp256k1-core" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80" +dependencies = [ + "crunchy", + "digest 0.9.0", + "subtle 2.4.1", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3" +dependencies = [ + "libsecp256k1-core", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" +dependencies = [ + "libsecp256k1-core", +] + [[package]] name = "libz-sys" version = "1.1.3" @@ -3975,11 +4055,11 @@ dependencies = [ [[package]] name = "lru" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f374d42cdfc1d7dbf3d3dec28afab2eb97ffbf43a3234d795b5986dbf4b90ba" +checksum = "7ea2d928b485416e8908cff2d97d621db22b27f7b3b6729e438bcf42c671ba91" dependencies = [ - "hashbrown 0.9.1", + "hashbrown", ] [[package]] @@ -4023,9 +4103,9 @@ dependencies = [ [[package]] name = "matches" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" +checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" [[package]] name = "matrixmultiply" @@ -4036,28 +4116,6 @@ dependencies = [ "rawpointer", ] -[[package]] -name = "max-encoded-len" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" -dependencies = [ - "impl-trait-for-tuples", - "max-encoded-len-derive", - "parity-scale-codec", - "primitive-types", -] - -[[package]] -name = "max-encoded-len-derive" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" -dependencies = [ - "proc-macro-crate 1.0.0", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "maybe-uninit" version = "2.0.0" @@ -4066,9 +4124,9 @@ checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" [[package]] name = "memchr" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc" +checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" [[package]] name = "memmap2" @@ -4099,12 +4157,12 @@ dependencies = [ [[package]] name = "memory-db" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "814bbecfc0451fc314eeea34f05bbcd5b98a7ad7af37faee088b86a1e633f1d4" +checksum = "de006e09d04fc301a5f7e817b75aa49801c4479a8af753764416b085337ddcc5" dependencies = [ "hash-db", - "hashbrown 0.9.1", + "hashbrown", "parity-util-mem", ] @@ -4137,11 +4195,11 @@ dependencies = [ [[package]] name = "metered-channel" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "derive_more", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", ] @@ -4151,7 +4209,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c023c3f16109e7f33aa451f773fd61070e265b4977d0b6e344a51049296dd7df" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "rand 0.7.3", "thrift", ] @@ -4167,9 +4225,9 @@ dependencies = [ [[package]] name = "minicbor-derive" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2b9e8883d58e34b18facd16c4564a77ea50fce028ad3d0ee6753440e37acc8" +checksum = "54999f917cd092b13904737e26631aa2b2b88d625db68e4bab461dcd8006c788" dependencies = [ "proc-macro2", "quote", @@ -4302,7 +4360,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "424f6e86263cd5294cbd7f1e95746b95aca0e0d66bff31e5a40d6baa87b4aa99" dependencies = [ "proc-macro-crate 1.0.0", - "proc-macro-error", + "proc-macro-error 1.0.4", "proc-macro2", "quote", "syn", @@ -4322,9 +4380,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d91ec0a2440aaff5f78ec35631a7027d50386c6163aa975f7caa0d5da4b6ff8" dependencies = [ "bytes 1.0.1", - "futures 0.3.15", + "futures 0.3.16", "log", - "pin-project 1.0.7", + "pin-project 1.0.8", "smallvec 1.6.1", "unsigned-varint 0.7.0", ] @@ -4392,10 +4450,12 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" [[package]] name = "nom" -version = "5.1.2" +version = "6.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af" +checksum = "e7413f999671bd4745a7b624bd370a569fb6bc574b23c83a3c5ed2e453f3d5e2" dependencies = [ + "bitvec 0.19.5", + "funty", "memchr", "version_check", ] @@ -4485,9 +4545,9 @@ dependencies = [ [[package]] name = "object" -version = "0.25.3" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a38f2be3697a57b4060074ff41b44c16870d916ad7877c17696e063257482bc7" +checksum = "c55827317fb4c08822499848a14237d2874d6f139828893017237e7ab93eb386" dependencies = [ "memchr", ] @@ -4539,8 +4599,8 @@ dependencies = [ [[package]] name = "pallet-aura" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -4555,8 +4615,8 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -4570,8 +4630,8 @@ dependencies = [ [[package]] name = "pallet-authorship" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -4584,8 +4644,8 @@ dependencies = [ [[package]] name = "pallet-babe" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-benchmarking", "frame-support", @@ -4607,14 +4667,13 @@ dependencies = [ [[package]] name = "pallet-balances" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", - "max-encoded-len", "parity-scale-codec", "sp-runtime", "sp-std", @@ -4623,22 +4682,48 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.8#55ae3329847e0bbde51c9d45991d99f444777555" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.9#f40c0ab7b327e874d5c8d699bfa5d762f1759ee0" +dependencies = [ + "beefy-primitives", + "frame-support", + "frame-system", + "pallet-session", + "parity-scale-codec", + "scale-info", + "serde", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-beefy-mmr" +version = "0.1.0" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.9#f40c0ab7b327e874d5c8d699bfa5d762f1759ee0" dependencies = [ + "beefy-merkle-tree", "beefy-primitives", "frame-support", "frame-system", + "hex", + "libsecp256k1 0.6.0", + "log", + "pallet-beefy", + "pallet-mmr", + "pallet-mmr-primitives", "pallet-session", "parity-scale-codec", + "scale-info", "serde", + "sp-core", + "sp-io", "sp-runtime", "sp-std", ] [[package]] name = "pallet-bounties" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -4650,8 +4735,8 @@ dependencies = [ [[package]] name = "pallet-collective" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -4665,8 +4750,8 @@ dependencies = [ [[package]] name = "pallet-democracy" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-benchmarking", "frame-support", @@ -4680,8 +4765,8 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4699,8 +4784,8 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "5.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -4715,8 +4800,8 @@ dependencies = [ [[package]] name = "pallet-grandpa" -version = "3.1.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-benchmarking", "frame-support", @@ -4737,8 +4822,8 @@ dependencies = [ [[package]] name = "pallet-identity" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4752,8 +4837,8 @@ dependencies = [ [[package]] name = "pallet-im-online" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -4770,8 +4855,8 @@ dependencies = [ [[package]] name = "pallet-indices" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -4785,8 +4870,8 @@ dependencies = [ [[package]] name = "pallet-membership" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-benchmarking", "frame-support", @@ -4800,8 +4885,8 @@ dependencies = [ [[package]] name = "pallet-mmr" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -4817,8 +4902,8 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -4834,7 +4919,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4851,8 +4936,8 @@ dependencies = [ [[package]] name = "pallet-multisig" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -4865,8 +4950,8 @@ dependencies = [ [[package]] name = "pallet-nicks" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -4878,8 +4963,8 @@ dependencies = [ [[package]] name = "pallet-offences" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -4894,12 +4979,11 @@ dependencies = [ [[package]] name = "pallet-proxy" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", - "max-encoded-len", "parity-scale-codec", "sp-core", "sp-io", @@ -4909,8 +4993,8 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -4922,8 +5006,8 @@ dependencies = [ [[package]] name = "pallet-scheduler" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-benchmarking", "frame-support", @@ -4937,8 +5021,8 @@ dependencies = [ [[package]] name = "pallet-session" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -4957,8 +5041,8 @@ dependencies = [ [[package]] name = "pallet-staking" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4979,8 +5063,8 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -4990,8 +5074,8 @@ dependencies = [ [[package]] name = "pallet-sudo" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -5017,8 +5101,8 @@ dependencies = [ [[package]] name = "pallet-timestamp" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-benchmarking", "frame-support", @@ -5035,8 +5119,8 @@ dependencies = [ [[package]] name = "pallet-tips" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -5049,8 +5133,8 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -5065,8 +5149,8 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5082,8 +5166,8 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5093,8 +5177,8 @@ dependencies = [ [[package]] name = "pallet-treasury" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -5108,8 +5192,8 @@ dependencies = [ [[package]] name = "pallet-utility" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-support", "frame-system", @@ -5122,8 +5206,8 @@ dependencies = [ [[package]] name = "pallet-vesting" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "enumflags2", "frame-support", @@ -5135,12 +5219,14 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "frame-support", "frame-system", + "log", "parity-scale-codec", + "serde", "sp-runtime", "sp-std", "xcm", @@ -5210,7 +5296,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.8#4e51d32fdc4636f2d207204a25534e01d5fddf75" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -5311,7 +5397,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8975095a2a03bbbdc70a74ab11a4f76a6d0b84680d87c68d722531b0ac28e8a9" dependencies = [ "arrayvec 0.7.1", - "bitvec", + "bitvec 0.20.4", "byte-slice-cast", "impl-trait-for-tuples", "parity-scale-codec-derive", @@ -5357,13 +5443,13 @@ dependencies = [ [[package]] name = "parity-util-mem" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "664a8c6b8e62d8f9f2f937e391982eb433ab285b4cd9545b342441e04a906e42" +checksum = "7ad6f1acec69b95caf435bbd158d486e5a0a44fcf51531e84922c59ff09e8457" dependencies = [ "cfg-if 1.0.0", "ethereum-types", - "hashbrown 0.9.1", + "hashbrown", "impl-trait-for-tuples", "lru", "parity-util-mem-derive", @@ -5493,7 +5579,7 @@ dependencies = [ "cfg-if 1.0.0", "instant", "libc", - "redox_syscall 0.2.9", + "redox_syscall 0.2.10", "smallvec 1.6.1", "winapi 0.3.9", ] @@ -5611,11 +5697,11 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7509cc106041c40a4518d2af7a61530e1eed0e6285296a3d8c5472806ccc4a4" +checksum = "576bc800220cc65dac09e99e97b08b358cfab6e17078de8dc5fee223bd2d0c08" dependencies = [ - "pin-project-internal 1.0.7", + "pin-project-internal 1.0.8", ] [[package]] @@ -5631,9 +5717,9 @@ dependencies = [ [[package]] name = "pin-project-internal" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c950132583b500556b1efd71d45b319029f2b71518d979fcc208e16b42426f" +checksum = "6e8fe8163d14ce7f0cdac2e040116f22eac817edabff0be91e8aff7e9accf389" dependencies = [ "proc-macro2", "quote", @@ -5672,10 +5758,10 @@ checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325" [[package]] name = "polkadot-approval-distribution" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -5686,10 +5772,10 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -5699,10 +5785,10 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "lru", "parity-scale-codec", "polkadot-erasure-coding", @@ -5722,10 +5808,10 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "lru", "parity-scale-codec", "polkadot-erasure-coding", @@ -5741,11 +5827,11 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.8" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "frame-benchmarking-cli", - "futures 0.3.15", + "futures 0.3.16", "log", "polkadot-node-core-pvf", "polkadot-service", @@ -5761,8 +5847,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.8" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -5772,6 +5858,7 @@ dependencies = [ "polkadot-primitives", "polkadot-runtime", "sc-client-api", + "sc-consensus", "sc-executor", "sc-service", "sp-api", @@ -5790,11 +5877,11 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "always-assert", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -5810,8 +5897,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.8" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -5821,25 +5908,49 @@ dependencies = [ ] [[package]] -name = "polkadot-erasure-coding" -version = "0.9.8" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +name = "polkadot-dispute-distribution" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ + "futures 0.3.16", + "lru", "parity-scale-codec", + "polkadot-erasure-coding", + "polkadot-node-core-runtime-api", + "polkadot-node-network-protocol", "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", "polkadot-primitives", - "reed-solomon-novelpoly", + "rand 0.8.4", + "sc-network", + "sp-application-crypto", "sp-core", - "sp-trie", + "sp-keystore", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-erasure-coding" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +dependencies = [ + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-primitives", + "reed-solomon-novelpoly", + "sp-core", + "sp-trie", "thiserror", ] [[package]] name = "polkadot-gossip-support" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -5854,18 +5965,18 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "async-trait", - "futures 0.3.15", + "futures 0.3.16", "parity-scale-codec", "parking_lot 0.11.1", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", + "polkadot-overseer", "polkadot-primitives", - "sc-authority-discovery", "sc-network", "sp-consensus", "strum", @@ -5874,10 +5985,10 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-primitives", @@ -5892,12 +6003,12 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ - "bitvec", + "bitvec 0.20.4", "derive_more", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "kvdb", "lru", @@ -5922,11 +6033,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ - "bitvec", - "futures 0.3.15", + "bitvec 0.20.4", + "futures 0.3.16", "futures-timer 3.0.2", "kvdb", "parity-scale-codec", @@ -5942,11 +6053,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ - "bitvec", - "futures 0.3.15", + "bitvec 0.20.4", + "futures 0.3.16", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -5960,10 +6071,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -5975,11 +6086,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "async-trait", - "futures 0.3.15", + "futures 0.3.16", "parity-scale-codec", "polkadot-node-core-pvf", "polkadot-node-primitives", @@ -5993,10 +6104,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -6006,16 +6117,64 @@ dependencies = [ "tracing", ] +[[package]] +name = "polkadot-node-core-chain-selection" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +dependencies = [ + "futures 0.3.16", + "futures-timer 3.0.2", + "kvdb", + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-node-core-dispute-coordinator" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +dependencies = [ + "bitvec 0.20.4", + "derive_more", + "futures 0.3.16", + "kvdb", + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sc-keystore", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-node-core-dispute-participation" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +dependencies = [ + "futures 0.3.16", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-primitives", + "thiserror", + "tracing", +] + [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "async-trait", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "polkadot-node-subsystem", - "polkadot-overseer", "polkadot-primitives", "sp-blockchain", "sp-inherents", @@ -6026,11 +6185,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ - "bitvec", - "futures 0.3.15", + "bitvec 0.20.4", + "futures 0.3.16", "futures-timer 3.0.2", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -6041,18 +6200,18 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "always-assert", "assert_matches", "async-process", "async-std", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "libc", "parity-scale-codec", - "pin-project 1.0.7", + "pin-project 1.0.8", "polkadot-core-primitives", "polkadot-parachain", "rand 0.8.4", @@ -6064,16 +6223,17 @@ dependencies = [ "sp-externalities", "sp-io", "sp-maybe-compressed-blob", + "sp-tracing", "sp-wasm-interface", "tracing", ] [[package]] name = "polkadot-node-core-runtime-api" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "memory-lru", "parity-util-mem", "polkadot-node-subsystem", @@ -6088,8 +6248,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "async-std", "lazy_static", @@ -6104,16 +6264,34 @@ dependencies = [ "thiserror", ] +[[package]] +name = "polkadot-node-metrics" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +dependencies = [ + "async-trait", + "futures 0.3.16", + "futures-timer 3.0.2", + "metered-channel", + "sc-network", + "sp-application-crypto", + "sp-core", + "sp-keystore", + "substrate-prometheus-endpoint", +] + [[package]] name = "polkadot-node-network-protocol" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ - "futures 0.3.15", + "async-trait", + "futures 0.3.16", "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", "polkadot-primitives", + "sc-authority-discovery", "sc-network", "strum", "thiserror", @@ -6121,10 +6299,10 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", @@ -6139,30 +6317,41 @@ dependencies = [ "sp-maybe-compressed-blob", "sp-runtime", "thiserror", + "tracing", "zstd", ] [[package]] name = "polkadot-node-subsystem" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +dependencies = [ + "polkadot-node-jaeger", + "polkadot-node-subsystem-types", + "polkadot-overseer", +] + +[[package]] +name = "polkadot-node-subsystem-types" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "async-std", "async-trait", "derive_more", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "lazy_static", "log", "mick-jaeger", "parity-scale-codec", "parking_lot 0.11.1", - "pin-project 1.0.7", + "pin-project 1.0.8", "polkadot-node-jaeger", "polkadot-node-network-protocol", "polkadot-node-primitives", + "polkadot-overseer-gen", "polkadot-primitives", - "polkadot-procmacro-subsystem-dispatch-gen", "polkadot-statement-table", "sc-network", "smallvec 1.6.1", @@ -6174,21 +6363,23 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "async-trait", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "itertools 0.10.1", "lru", "metered-channel", "parity-scale-codec", - "pin-project 1.0.7", + "pin-project 1.0.8", "polkadot-node-jaeger", + "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", + "polkadot-overseer", "polkadot-primitives", "rand 0.8.4", "sc-network", @@ -6202,29 +6393,72 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "async-trait", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "lru", + "parking_lot 0.11.1", + "polkadot-node-metrics", + "polkadot-node-network-protocol", "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", + "polkadot-node-subsystem-types", + "polkadot-overseer-all-subsystems-gen", + "polkadot-overseer-gen", "polkadot-primitives", - "polkadot-procmacro-overseer-subsystems-gen", "sc-client-api", "sp-api", "tracing", ] +[[package]] +name = "polkadot-overseer-all-subsystems-gen" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +dependencies = [ + "assert_matches", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "polkadot-overseer-gen" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +dependencies = [ + "async-trait", + "futures 0.3.16", + "futures-timer 3.0.2", + "metered-channel", + "pin-project 1.0.8", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-overseer-gen-proc-macro", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-overseer-gen-proc-macro" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +dependencies = [ + "proc-macro-crate 1.0.0", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "polkadot-parachain" -version = "0.9.8" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "derive_more", + "frame-support", "parity-scale-codec", "parity-util-mem", "polkadot-core-primitives", @@ -6236,10 +6470,10 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.8" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ - "bitvec", + "bitvec 0.20.4", "frame-system", "hex-literal", "parity-scale-codec", @@ -6264,32 +6498,10 @@ dependencies = [ "thiserror", ] -[[package]] -name = "polkadot-procmacro-overseer-subsystems-gen" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" -dependencies = [ - "assert_matches", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "polkadot-procmacro-subsystem-dispatch-gen" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" -dependencies = [ - "assert_matches", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "polkadot-rpc" -version = "0.9.8" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -6308,6 +6520,7 @@ dependencies = [ "sc-keystore", "sc-rpc", "sc-sync-state-rpc", + "sc-transaction-pool-api", "sp-api", "sp-block-builder", "sp-blockchain", @@ -6315,17 +6528,16 @@ dependencies = [ "sp-consensus-babe", "sp-keystore", "sp-runtime", - "sp-transaction-pool", "substrate-frame-rpc-system", ] [[package]] name = "polkadot-runtime" -version = "0.9.8" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "beefy-primitives", - "bitvec", + "bitvec 0.20.4", "frame-election-provider-support", "frame-executive", "frame-support", @@ -6333,7 +6545,6 @@ dependencies = [ "frame-system-rpc-runtime-api", "frame-try-runtime", "log", - "max-encoded-len", "pallet-authority-discovery", "pallet-authorship", "pallet-babe", @@ -6392,21 +6603,19 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.8" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ - "beefy-primitives", - "bitvec", + "bitvec 0.20.4", "frame-support", "frame-system", "impl-trait-for-tuples", - "libsecp256k1", + "libsecp256k1 0.6.0", "log", "pallet-authorship", "pallet-balances", - "pallet-beefy", + "pallet-beefy-mmr", "pallet-election-provider-multi-phase", - "pallet-mmr", "pallet-offences", "pallet-session", "pallet-staking", @@ -6435,10 +6644,11 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.8" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ - "bitvec", + "bitflags", + "bitvec 0.20.4", "derive_more", "frame-support", "frame-system", @@ -6472,14 +6682,14 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.8" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "async-trait", "beefy-gadget", "beefy-primitives", "frame-system-rpc-runtime-api", - "futures 0.3.15", + "futures 0.3.16", "hex-literal", "kvdb", "kvdb-rocksdb", @@ -6494,6 +6704,7 @@ dependencies = [ "polkadot-availability-recovery", "polkadot-client", "polkadot-collator-protocol", + "polkadot-dispute-distribution", "polkadot-gossip-support", "polkadot-network-bridge", "polkadot-node-collation-generation", @@ -6503,6 +6714,9 @@ dependencies = [ "polkadot-node-core-bitfield-signing", "polkadot-node-core-candidate-validation", "polkadot-node-core-chain-api", + "polkadot-node-core-chain-selection", + "polkadot-node-core-dispute-coordinator", + "polkadot-node-core-dispute-participation", "polkadot-node-core-parachains-inherent", "polkadot-node-core-provisioner", "polkadot-node-core-runtime-api", @@ -6528,10 +6742,10 @@ dependencies = [ "sc-consensus-uncles", "sc-executor", "sc-finality-grandpa", - "sc-finality-grandpa-warp-sync", "sc-keystore", "sc-network", "sc-service", + "sc-sync-state-rpc", "sc-telemetry", "sc-transaction-pool", "serde", @@ -6561,11 +6775,11 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "arrayvec 0.5.2", - "futures 0.3.15", + "futures 0.3.16", "indexmap", "parity-scale-codec", "polkadot-node-network-protocol", @@ -6582,8 +6796,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.8" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -6592,11 +6806,11 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" -version = "0.9.8" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "beefy-primitives", - "bitvec", + "bitvec 0.20.4", "frame-election-provider-support", "frame-executive", "frame-support", @@ -6620,6 +6834,7 @@ dependencies = [ "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-vesting", + "pallet-xcm", "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", @@ -6644,17 +6859,20 @@ dependencies = [ "sp-transaction-pool", "sp-version", "substrate-wasm-builder", + "xcm", + "xcm-builder", + "xcm-executor", ] [[package]] name = "polkadot-test-service" -version = "0.9.8" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "frame-benchmarking", "frame-system", "futures 0.1.31", - "futures 0.3.15", + "futures 0.3.16", "hex", "pallet-balances", "pallet-staking", @@ -6740,9 +6958,9 @@ checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" [[package]] name = "primitive-types" -version = "0.9.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06345ee39fbccfb06ab45f3a1a5798d9dafa04cb8921a76d227040003a234b0e" +checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" dependencies = [ "fixed-hash", "impl-codec", @@ -6770,16 +6988,42 @@ dependencies = [ "toml", ] +[[package]] +name = "proc-macro-error" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18f33027081eba0a6d8aba6d1b1c3a3be58cbb12106341c2d5759fcd9b5277e7" +dependencies = [ + "proc-macro-error-attr 0.4.12", + "proc-macro2", + "quote", + "syn", + "version_check", +] + [[package]] name = "proc-macro-error" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ - "proc-macro-error-attr", + "proc-macro-error-attr 1.0.4", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a5b4b77fdb63c1eca72173d68d24501c54ab1269409f6b672c85deb18af69de" +dependencies = [ "proc-macro2", "quote", "syn", + "syn-mid", "version_check", ] @@ -6808,9 +7052,9 @@ checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" [[package]] name = "proc-macro2" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038" +checksum = "5c7ed8b8c7b886ea3ed7dde405212185f423ab44682667c8c6dd14aa1d9f6612" dependencies = [ "unicode-xid", ] @@ -6882,9 +7126,9 @@ dependencies = [ [[package]] name = "psm" -version = "0.1.13" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21ff0279b4a85e576b97e4a21d13e437ebcd56612706cde5d3f0d5c9399490c0" +checksum = "0617ee61163b5d941d804065ce49040967610a4d4278fae73e096a057b01d358" dependencies = [ "cc", ] @@ -6932,6 +7176,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "radium" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8" + [[package]] name = "radium" version = "0.6.2" @@ -7090,7 +7340,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" dependencies = [ "autocfg", - "crossbeam-deque 0.8.0", + "crossbeam-deque 0.8.1", "either", "rayon-core", ] @@ -7102,7 +7352,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" dependencies = [ "crossbeam-channel", - "crossbeam-deque 0.8.0", + "crossbeam-deque 0.8.1", "crossbeam-utils 0.8.5", "lazy_static", "num_cpus", @@ -7125,9 +7375,9 @@ checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" [[package]] name = "redox_syscall" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab49abadf3f9e1c4bc499e8845e152ad87d2ad2d30371841171169e9d75feee" +checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" dependencies = [ "bitflags", ] @@ -7139,7 +7389,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" dependencies = [ "getrandom 0.2.3", - "redox_syscall 0.2.9", + "redox_syscall 0.2.10", ] [[package]] @@ -7227,8 +7477,8 @@ dependencies = [ [[package]] name = "remote-externalities" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "env_logger 0.8.4", "hex", @@ -7285,9 +7535,9 @@ dependencies = [ [[package]] name = "rlp" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e54369147e3e7796c9b885c7304db87ca3d09a0a98f72843d532868675bbfba8" +checksum = "999508abb0ae792aabed2460c45b89106d97fe4adac593bdaef433c2605847b5" dependencies = [ "bytes 1.0.1", "rustc-hex", @@ -7295,9 +7545,9 @@ dependencies = [ [[package]] name = "rocksdb" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c749134fda8bfc90d0de643d59bfc841dcb3ac8a1062e12b6754bd60235c48b3" +checksum = "7a62eca5cacf2c8261128631bed9f045598d40bfbe4b29f5163f0f802f8f44a7" dependencies = [ "libc", "librocksdb-sys", @@ -7415,7 +7665,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "pin-project 0.4.28", "static_assertions", ] @@ -7455,25 +7705,24 @@ dependencies = [ [[package]] name = "sc-allocator" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "log", "sp-core", - "sp-std", "sp-wasm-interface", "thiserror", ] [[package]] name = "sc-authority-discovery" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "async-trait", "derive_more", "either", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "ip_network", "libp2p", @@ -7496,10 +7745,10 @@ dependencies = [ [[package]] name = "sc-basic-authorship" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -7507,20 +7756,20 @@ dependencies = [ "sc-client-api", "sc-proposer-metrics", "sc-telemetry", + "sc-transaction-pool-api", "sp-api", "sp-blockchain", "sp-consensus", "sp-core", "sp-inherents", "sp-runtime", - "sp-transaction-pool", "substrate-prometheus-endpoint", ] [[package]] name = "sc-block-builder" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7535,28 +7784,24 @@ dependencies = [ [[package]] name = "sc-chain-spec" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "sc-chain-spec-derive", - "sc-consensus-babe", - "sc-consensus-epochs", - "sc-finality-grandpa", "sc-network", "sc-telemetry", "serde", "serde_json", - "sp-consensus-babe", "sp-core", "sp-runtime", ] [[package]] name = "sc-chain-spec-derive" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -7566,12 +7811,12 @@ dependencies = [ [[package]] name = "sc-cli" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "chrono", "fdlimit", - "futures 0.3.15", + "futures 0.3.16", "hex", "libp2p", "log", @@ -7604,12 +7849,12 @@ dependencies = [ [[package]] name = "sc-client-api" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "derive_more", "fnv", - "futures 0.3.15", + "futures 0.3.16", "hash-db", "kvdb", "lazy_static", @@ -7617,6 +7862,7 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.11.1", "sc-executor", + "sc-transaction-pool-api", "sp-api", "sp-blockchain", "sp-consensus", @@ -7629,7 +7875,6 @@ dependencies = [ "sp-state-machine", "sp-std", "sp-storage", - "sp-transaction-pool", "sp-trie", "sp-utils", "sp-version", @@ -7638,8 +7883,8 @@ dependencies = [ [[package]] name = "sc-client-db" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "blake2-rfc", "hash-db", @@ -7657,7 +7902,6 @@ dependencies = [ "sc-state-db", "sp-arithmetic", "sp-blockchain", - "sp-consensus", "sp-core", "sp-database", "sp-runtime", @@ -7668,30 +7912,43 @@ dependencies = [ [[package]] name = "sc-consensus" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "async-trait", + "futures 0.3.16", + "futures-timer 3.0.2", + "libp2p", + "log", "parking_lot 0.11.1", "sc-client-api", + "serde", + "sp-api", "sp-blockchain", "sp-consensus", + "sp-core", "sp-runtime", + "sp-state-machine", + "sp-utils", + "substrate-prometheus-endpoint", + "thiserror", + "wasm-timer", ] [[package]] name = "sc-consensus-aura" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "async-trait", "derive_more", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "log", "parity-scale-codec", "sc-block-builder", "sc-client-api", + "sc-consensus", "sc-consensus-slots", "sc-telemetry", "sp-api", @@ -7712,13 +7969,13 @@ dependencies = [ [[package]] name = "sc-consensus-babe" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "async-trait", "derive_more", "fork-tree", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "log", "merlin", @@ -7731,6 +7988,7 @@ dependencies = [ "rand 0.7.3", "retain_mut", "sc-client-api", + "sc-consensus", "sc-consensus-epochs", "sc-consensus-slots", "sc-consensus-uncles", @@ -7758,11 +8016,11 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "derive_more", - "futures 0.3.15", + "futures 0.3.16", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -7782,8 +8040,8 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7795,16 +8053,17 @@ dependencies = [ [[package]] name = "sc-consensus-slots" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "async-trait", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "impl-trait-for-tuples", "log", "parity-scale-codec", "sc-client-api", + "sc-consensus", "sc-telemetry", "sp-api", "sp-application-crypto", @@ -7823,8 +8082,8 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "sc-client-api", "sp-authorship", @@ -7834,12 +8093,12 @@ dependencies = [ [[package]] name = "sc-executor" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "derive_more", "lazy_static", - "libsecp256k1", + "libsecp256k1 0.3.5", "log", "parity-scale-codec", "parity-wasm 0.42.2", @@ -7863,8 +8122,8 @@ dependencies = [ [[package]] name = "sc-executor-common" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "derive_more", "parity-scale-codec", @@ -7880,8 +8139,8 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "log", "parity-scale-codec", @@ -7895,14 +8154,15 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "cfg-if 1.0.0", "libc", "log", "parity-scale-codec", "parity-wasm 0.42.2", + "pwasm-utils", "sc-allocator", "sc-executor-common", "scoped-tls", @@ -7914,22 +8174,22 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "async-trait", "derive_more", "dyn-clone", "finality-grandpa", "fork-tree", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "linked-hash-map", "log", "parity-scale-codec", "parking_lot 0.11.1", - "pin-project 1.0.7", - "rand 0.7.3", + "pin-project 1.0.8", + "rand 0.8.4", "sc-block-builder", "sc-client-api", "sc-consensus", @@ -7955,12 +8215,12 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "derive_more", "finality-grandpa", - "futures 0.3.15", + "futures 0.3.16", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -7977,53 +8237,32 @@ dependencies = [ "sp-runtime", ] -[[package]] -name = "sc-finality-grandpa-warp-sync" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" -dependencies = [ - "derive_more", - "futures 0.3.15", - "log", - "num-traits", - "parity-scale-codec", - "parking_lot 0.11.1", - "prost", - "sc-client-api", - "sc-finality-grandpa", - "sc-network", - "sc-service", - "sp-blockchain", - "sp-finality-grandpa", - "sp-runtime", -] - [[package]] name = "sc-informant" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "ansi_term 0.12.1", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "log", "parity-util-mem", "sc-client-api", "sc-network", + "sc-transaction-pool-api", "sp-blockchain", "sp-runtime", - "sp-transaction-pool", "wasm-timer", ] [[package]] name = "sc-keystore" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "async-trait", "derive_more", - "futures 0.3.15", + "futures 0.3.16", "futures-util", "hex", "merlin", @@ -8033,13 +8272,13 @@ dependencies = [ "sp-application-crypto", "sp-core", "sp-keystore", - "subtle 2.4.0", + "subtle 2.4.1", ] [[package]] name = "sc-light" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "hash-db", "lazy_static", @@ -8057,8 +8296,8 @@ dependencies = [ [[package]] name = "sc-network" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "async-std", "async-trait", @@ -8072,7 +8311,7 @@ dependencies = [ "erased-serde", "fnv", "fork-tree", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "hex", "ip_network", @@ -8084,12 +8323,13 @@ dependencies = [ "nohash-hasher", "parity-scale-codec", "parking_lot 0.11.1", - "pin-project 1.0.7", + "pin-project 1.0.8", "prost", "prost-build", "rand 0.7.3", "sc-block-builder", "sc-client-api", + "sc-consensus", "sc-peerset", "serde", "serde_json", @@ -8098,6 +8338,7 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-core", + "sp-finality-grandpa", "sp-runtime", "sp-utils", "substrate-prometheus-endpoint", @@ -8110,10 +8351,10 @@ dependencies = [ [[package]] name = "sc-network-gossip" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "libp2p", "log", @@ -8127,12 +8368,12 @@ dependencies = [ [[package]] name = "sc-offchain" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "bytes 0.5.6", "fnv", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "hex", "hyper 0.13.10", @@ -8155,10 +8396,10 @@ dependencies = [ [[package]] name = "sc-peerset" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "libp2p", "log", "serde_json", @@ -8169,7 +8410,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8177,10 +8418,10 @@ dependencies = [ [[package]] name = "sc-rpc" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "hash-db", "jsonrpc-core", "jsonrpc-pubsub", @@ -8194,6 +8435,7 @@ dependencies = [ "sc-keystore", "sc-rpc-api", "sc-tracing", + "sc-transaction-pool-api", "serde_json", "sp-api", "sp-blockchain", @@ -8205,18 +8447,17 @@ dependencies = [ "sp-session", "sp-state-machine", "sp-tracing", - "sp-transaction-pool", "sp-utils", "sp-version", ] [[package]] name = "sc-rpc-api" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "derive_more", - "futures 0.3.15", + "futures 0.3.16", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -8225,20 +8466,20 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.11.1", "sc-chain-spec", + "sc-transaction-pool-api", "serde", "serde_json", "sp-core", "sp-rpc", "sp-runtime", "sp-tracing", - "sp-transaction-pool", "sp-version", ] [[package]] name = "sc-rpc-server" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "futures 0.1.31", "jsonrpc-core", @@ -8255,14 +8496,14 @@ dependencies = [ [[package]] name = "sc-service" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "async-trait", "directories", "exit-future", "futures 0.1.31", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", "hash-db", "jsonrpc-core", @@ -8272,12 +8513,13 @@ dependencies = [ "parity-scale-codec", "parity-util-mem", "parking_lot 0.11.1", - "pin-project 1.0.7", + "pin-project 1.0.8", "rand 0.7.3", "sc-block-builder", "sc-chain-spec", "sc-client-api", "sc-client-db", + "sc-consensus", "sc-executor", "sc-informant", "sc-keystore", @@ -8289,6 +8531,7 @@ dependencies = [ "sc-telemetry", "sc-tracing", "sc-transaction-pool", + "sc-transaction-pool-api", "serde", "serde_json", "sp-api", @@ -8321,8 +8564,8 @@ dependencies = [ [[package]] name = "sc-state-db" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "log", "parity-scale-codec", @@ -8336,18 +8579,20 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", + "parity-scale-codec", "sc-chain-spec", "sc-client-api", "sc-consensus-babe", "sc-consensus-epochs", "sc-finality-grandpa", "sc-rpc-api", + "serde", "serde_json", "sp-blockchain", "sp-runtime", @@ -8356,15 +8601,15 @@ dependencies = [ [[package]] name = "sc-telemetry" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "chrono", - "futures 0.3.15", + "futures 0.3.16", "libp2p", "log", "parking_lot 0.11.1", - "pin-project 1.0.7", + "pin-project 1.0.8", "rand 0.7.3", "serde", "serde_json", @@ -8376,8 +8621,8 @@ dependencies = [ [[package]] name = "sc-tracing" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "ansi_term 0.12.1", "atty", @@ -8413,8 +8658,8 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -8423,50 +8668,72 @@ dependencies = [ ] [[package]] -name = "sc-transaction-graph" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +name = "sc-transaction-pool" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "derive_more", - "futures 0.3.15", + "futures 0.3.16", + "intervalier", "linked-hash-map", "log", + "parity-scale-codec", "parity-util-mem", "parking_lot 0.11.1", "retain_mut", + "sc-client-api", + "sc-transaction-pool-api", "serde", + "sp-api", "sp-blockchain", "sp-core", "sp-runtime", + "sp-tracing", "sp-transaction-pool", "sp-utils", + "substrate-prometheus-endpoint", "thiserror", "wasm-timer", ] [[package]] -name = "sc-transaction-pool" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +name = "sc-transaction-pool-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ - "futures 0.3.15", - "intervalier", + "derive_more", + "futures 0.3.16", "log", "parity-scale-codec", - "parity-util-mem", - "parking_lot 0.11.1", - "sc-client-api", - "sc-transaction-graph", - "sp-api", + "serde", "sp-blockchain", - "sp-core", "sp-runtime", - "sp-tracing", - "sp-transaction-pool", - "sp-utils", - "substrate-prometheus-endpoint", "thiserror", - "wasm-timer", +] + +[[package]] +name = "scale-info" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2e62ff266e136db561a007c84569985805f84a1d5a08278e52c36aacb6e061b" +dependencies = [ + "bitvec 0.20.4", + "cfg-if 1.0.0", + "derive_more", + "parity-scale-codec", + "scale-info-derive", +] + +[[package]] +name = "scale-info-derive" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b648fa291891a4c80187a25532f6a7d96b82c70353e30b868b14632b8fe043d6" +dependencies = [ + "proc-macro-crate 1.0.0", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -8487,13 +8754,13 @@ checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862" dependencies = [ "arrayref", "arrayvec 0.5.2", - "curve25519-dalek 2.1.2", + "curve25519-dalek 2.1.3", "getrandom 0.1.16", "merlin", "rand 0.7.3", "rand_core 0.5.1", "sha2 0.8.2", - "subtle 2.4.0", + "subtle 2.4.1", "zeroize", ] @@ -8509,26 +8776,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" -[[package]] -name = "scroll" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda28d4b4830b807a8b43f7b0e6b5df875311b3e7621d84577188c175b6ec1ec" -dependencies = [ - "scroll_derive", -] - -[[package]] -name = "scroll_derive" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "sct" version = "0.6.1" @@ -8639,18 +8886,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.126" +version = "1.0.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03" +checksum = "f03b9878abf6d14e6779d3f24f07b2cfa90352cfec4acc5aab8f1ac7f146fae8" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.126" +version = "1.0.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43" +checksum = "a024926d3432516606328597e0f224a51355a493b49fdd67e9209187cbe55ecc" dependencies = [ "proc-macro2", "quote", @@ -8659,9 +8906,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.64" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79" +checksum = "336b10da19a12ad094b59d870ebde26a45402e5b470add4b5fd03c5048a32127" dependencies = [ "itoa", "ryu", @@ -8682,9 +8929,9 @@ dependencies = [ [[package]] name = "sha-1" -version = "0.9.6" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c4cfa741c5832d0ef7fab46cabed29c2aae926db0b11bb2069edd8db5e64e16" +checksum = "1a0c8611594e2ab4ebbf06ec7cbbf0a99450b8570e96cbf5188b5d5f6ef18d81" dependencies = [ "block-buffer 0.9.0", "cfg-if 1.0.0", @@ -8732,18 +8979,18 @@ dependencies = [ [[package]] name = "sharded-slab" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79c719719ee05df97490f80a45acfc99e5a30ce98a1e4fb67aee422745ae14e3" +checksum = "740223c51853f3145fe7c90360d2d4232f2b62e3449489c207eccde818979982" dependencies = [ "lazy_static", ] [[package]] name = "shlex" -version = "0.1.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" +checksum = "42a568c8f2cd051a4d283bd6eb0343ac214c1b0f1ac19f93e1175b2dee38c73d" [[package]] name = "signal-hook" @@ -8784,9 +9031,9 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527" +checksum = "c307a32c1c5c437f38c7fd45d753050587732ba8628319fbdf12a7e289ccc590" [[package]] name = "slog" @@ -8799,8 +9046,8 @@ dependencies = [ [[package]] name = "slot-range-helper" -version = "0.9.8" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "enumn", "parity-scale-codec", @@ -8847,7 +9094,7 @@ dependencies = [ "ring", "rustc_version 0.2.3", "sha2 0.9.5", - "subtle 2.4.0", + "subtle 2.4.1", "x25519-dalek", ] @@ -8864,9 +9111,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dfc207c526015c632472a77be09cf1b6e46866581aecae5cc38fb4235dea2" +checksum = "765f090f0e423d2b55843402a07915add955e7d60657db13707a159727326cad" dependencies = [ "libc", "winapi 0.3.9", @@ -8881,32 +9128,32 @@ dependencies = [ "base64 0.12.3", "bytes 0.5.6", "flate2", - "futures 0.3.15", + "futures 0.3.16", "httparse", "log", "rand 0.7.3", - "sha-1 0.9.6", + "sha-1 0.9.7", ] [[package]] name = "soketto" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4919971d141dbadaa0e82b5d369e2d7666c98e4625046140615ca363e50d4daa" +checksum = "a74e48087dbeed4833785c2f3352b59140095dc192dce966a3bfc155020a439f" dependencies = [ "base64 0.13.0", "bytes 1.0.1", - "futures 0.3.15", + "futures 0.3.16", "httparse", "log", "rand 0.8.4", - "sha-1 0.9.6", + "sha-1 0.9.7", ] [[package]] name = "sp-api" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "hash-db", "log", @@ -8922,8 +9169,8 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "blake2-rfc", "proc-macro-crate 1.0.0", @@ -8934,10 +9181,9 @@ dependencies = [ [[package]] name = "sp-application-crypto" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ - "max-encoded-len", "parity-scale-codec", "serde", "sp-core", @@ -8947,8 +9193,8 @@ dependencies = [ [[package]] name = "sp-arithmetic" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "integer-sqrt", "num-traits", @@ -8961,8 +9207,8 @@ dependencies = [ [[package]] name = "sp-authority-discovery" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "parity-scale-codec", "sp-api", @@ -8973,8 +9219,8 @@ dependencies = [ [[package]] name = "sp-authorship" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "async-trait", "parity-scale-codec", @@ -8985,8 +9231,8 @@ dependencies = [ [[package]] name = "sp-block-builder" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "parity-scale-codec", "sp-api", @@ -8997,10 +9243,10 @@ dependencies = [ [[package]] name = "sp-blockchain" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "log", "lru", "parity-scale-codec", @@ -9015,13 +9261,12 @@ dependencies = [ [[package]] name = "sp-consensus" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "async-trait", - "futures 0.3.15", + "futures 0.3.16", "futures-timer 3.0.2", - "libp2p", "log", "parity-scale-codec", "parking_lot 0.11.1", @@ -9042,8 +9287,8 @@ dependencies = [ [[package]] name = "sp-consensus-aura" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "async-trait", "parity-scale-codec", @@ -9059,8 +9304,8 @@ dependencies = [ [[package]] name = "sp-consensus-babe" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "async-trait", "merlin", @@ -9081,8 +9326,8 @@ dependencies = [ [[package]] name = "sp-consensus-slots" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "parity-scale-codec", "sp-arithmetic", @@ -9091,8 +9336,8 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -9103,23 +9348,22 @@ dependencies = [ [[package]] name = "sp-core" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "base58", "blake2-rfc", "byteorder", "dyn-clonable", "ed25519-dalek", - "futures 0.3.15", + "futures 0.3.16", "hash-db", "hash256-std-hasher", "hex", "impl-serde", "lazy_static", - "libsecp256k1", + "libsecp256k1 0.3.5", "log", - "max-encoded-len", "merlin", "num-traits", "parity-scale-codec", @@ -9148,8 +9392,8 @@ dependencies = [ [[package]] name = "sp-database" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "kvdb", "parking_lot 0.11.1", @@ -9158,7 +9402,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "proc-macro2", "quote", @@ -9167,8 +9411,8 @@ dependencies = [ [[package]] name = "sp-externalities" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "environmental", "parity-scale-codec", @@ -9178,8 +9422,8 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "finality-grandpa", "log", @@ -9195,8 +9439,8 @@ dependencies = [ [[package]] name = "sp-inherents" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9209,12 +9453,12 @@ dependencies = [ [[package]] name = "sp-io" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "hash-db", - "libsecp256k1", + "libsecp256k1 0.3.5", "log", "parity-scale-codec", "parking_lot 0.11.1", @@ -9234,8 +9478,8 @@ dependencies = [ [[package]] name = "sp-keyring" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "lazy_static", "sp-core", @@ -9245,12 +9489,12 @@ dependencies = [ [[package]] name = "sp-keystore" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "async-trait", "derive_more", - "futures 0.3.15", + "futures 0.3.16", "merlin", "parity-scale-codec", "parking_lot 0.11.1", @@ -9262,8 +9506,8 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "ruzstd", "zstd", @@ -9271,8 +9515,8 @@ dependencies = [ [[package]] name = "sp-npos-elections" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "parity-scale-codec", "serde", @@ -9284,8 +9528,8 @@ dependencies = [ [[package]] name = "sp-npos-elections-compact" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "proc-macro-crate 1.0.0", "proc-macro2", @@ -9295,8 +9539,8 @@ dependencies = [ [[package]] name = "sp-offchain" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "sp-api", "sp-core", @@ -9306,15 +9550,15 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "backtrace", ] [[package]] name = "sp-rpc" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "rustc-hash", "serde", @@ -9324,14 +9568,13 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "either", "hash256-std-hasher", "impl-trait-for-tuples", "log", - "max-encoded-len", "parity-scale-codec", "parity-util-mem", "paste", @@ -9346,8 +9589,8 @@ dependencies = [ [[package]] name = "sp-runtime-interface" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9363,8 +9606,8 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "Inflector", "proc-macro-crate 1.0.0", @@ -9376,7 +9619,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "serde", "serde_json", @@ -9384,8 +9627,8 @@ dependencies = [ [[package]] name = "sp-session" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "parity-scale-codec", "sp-api", @@ -9397,8 +9640,8 @@ dependencies = [ [[package]] name = "sp-staking" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -9407,8 +9650,8 @@ dependencies = [ [[package]] name = "sp-state-machine" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "hash-db", "log", @@ -9430,13 +9673,13 @@ dependencies = [ [[package]] name = "sp-std" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" [[package]] name = "sp-storage" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9448,8 +9691,8 @@ dependencies = [ [[package]] name = "sp-tasks" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "log", "sp-core", @@ -9461,8 +9704,8 @@ dependencies = [ [[package]] name = "sp-timestamp" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "async-trait", "futures-timer 3.0.2", @@ -9478,8 +9721,8 @@ dependencies = [ [[package]] name = "sp-tracing" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "erased-serde", "log", @@ -9496,24 +9739,17 @@ dependencies = [ [[package]] name = "sp-transaction-pool" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ - "derive_more", - "futures 0.3.15", - "log", - "parity-scale-codec", - "serde", "sp-api", - "sp-blockchain", "sp-runtime", - "thiserror", ] [[package]] name = "sp-transaction-storage-proof" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "async-trait", "log", @@ -9527,8 +9763,8 @@ dependencies = [ [[package]] name = "sp-trie" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "hash-db", "memory-db", @@ -9541,10 +9777,10 @@ dependencies = [ [[package]] name = "sp-utils" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "futures-core", "futures-timer 3.0.2", "lazy_static", @@ -9553,21 +9789,23 @@ dependencies = [ [[package]] name = "sp-version" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "impl-serde", "parity-scale-codec", + "parity-wasm 0.42.2", "serde", "sp-runtime", "sp-std", "sp-version-proc-macro", + "thiserror", ] [[package]] name = "sp-version-proc-macro" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "parity-scale-codec", "proc-macro-crate 1.0.0", @@ -9578,8 +9816,8 @@ dependencies = [ [[package]] name = "sp-wasm-interface" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9686,7 +9924,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7813934aecf5f51a54775e00068c237de98489463968231a51746bbbc03f9c10" dependencies = [ "heck", - "proc-macro-error", + "proc-macro-error 1.0.4", "proc-macro2", "quote", "syn", @@ -9729,18 +9967,18 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "platforms", ] [[package]] name = "substrate-frame-rpc-system" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-system-rpc-runtime-api", - "futures 0.3.15", + "futures 0.3.16", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -9748,19 +9986,19 @@ dependencies = [ "parity-scale-codec", "sc-client-api", "sc-rpc-api", + "sc-transaction-pool-api", "serde", "sp-api", "sp-block-builder", "sp-blockchain", "sp-core", "sp-runtime", - "sp-transaction-pool", ] [[package]] name = "substrate-prometheus-endpoint" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "async-std", "derive_more", @@ -9774,11 +10012,11 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "async-trait", "futures 0.1.31", - "futures 0.3.15", + "futures 0.3.16", "hash-db", "hex", "parity-scale-codec", @@ -9802,8 +10040,8 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "5.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "ansi_term 0.12.1", "atty", @@ -9824,26 +10062,37 @@ checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" [[package]] name = "subtle" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.73" +version = "1.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f71489ff30030d2ae598524f61326b902466f72a0fb1a8564c001cc63425bcc7" +checksum = "1873d832550d4588c3dbc20f01361ab00bfe741048f71e3fecf145a7cc18b29c" dependencies = [ "proc-macro2", "quote", "unicode-xid", ] +[[package]] +name = "syn-mid" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baa8e7560a164edb1621a55d18a0c59abf49d360f47aa7b821061dd7eea7fac9" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "synstructure" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" +checksum = "474aaa926faa1603c40b7885a9eaea29b444d1cb2850cb7c0e37bb1a4182f4fa" dependencies = [ "proc-macro2", "quote", @@ -9865,9 +10114,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ae3b39281e4b14b8123bdbaddd472b7dfe215e444181f2f9d2443c2444f834" +checksum = "d9bffcddbc2458fa3e6058414599e3c838a022abae82e5c67b4f7f80298d5bff" [[package]] name = "tempfile" @@ -9878,7 +10127,7 @@ dependencies = [ "cfg-if 1.0.0", "libc", "rand 0.8.4", - "redox_syscall 0.2.9", + "redox_syscall 0.2.10", "remove_dir_all", "winapi 0.3.9", ] @@ -9992,9 +10241,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.2.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b5220f05bb7de7f3f53c7c065e1199b3172696fe2db9f9c4d8ad9b4ee74c342" +checksum = "848a1e1181b9f6753b5e96a092749e29b11d19ede67dfbbd6c7dc7e0f49b5338" dependencies = [ "tinyvec_macros", ] @@ -10048,14 +10297,15 @@ dependencies = [ "pin-project-lite 0.1.12", "signal-hook-registry", "slab", + "tokio-macros", "winapi 0.3.9", ] [[package]] name = "tokio" -version = "1.8.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98c8b05dc14c75ea83d63dd391100353789f5f24b8b3866542a5e85c8be8e985" +checksum = "01cf844b23c6131f624accf65ce0e4e9956a8bb329400ea5bcc26ae3a5c20b0b" dependencies = [ "autocfg", "pin-project-lite 0.2.7", @@ -10125,6 +10375,17 @@ dependencies = [ "log", ] +[[package]] +name = "tokio-macros" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "tokio-named-pipes" version = "0.1.0" @@ -10220,7 +10481,7 @@ version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" dependencies = [ - "crossbeam-deque 0.7.3", + "crossbeam-deque 0.7.4", "crossbeam-queue", "crossbeam-utils 0.7.2", "futures 0.1.31", @@ -10332,9 +10593,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9ff14f98b1a4b289c6248a023c1c2fa1491062964e9fed67ab29c4e4da4a052" +checksum = "2ca517f43f0fb96e0c3072ed5c275fe5eece87e8cb52f4a77b69226d3b1c9df8" dependencies = [ "lazy_static", ] @@ -10345,7 +10606,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "pin-project 1.0.7", + "pin-project 1.0.8", "tracing", ] @@ -10372,9 +10633,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.2.19" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab69019741fca4d98be3c62d2b75254528b5432233fd8a4d2739fec20278de48" +checksum = "b9cbe87a2fa7e35900ce5de20220a582a9483a7063811defce79d7cbd59d4cfe" dependencies = [ "ansi_term 0.12.1", "chrono", @@ -10399,7 +10660,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9eac131e334e81b6b3be07399482042838adcd7957aa0010231d0813e39e02fa" dependencies = [ "hash-db", - "hashbrown 0.11.2", + "hashbrown", "log", "rustc-hex", "smallvec 1.6.1", @@ -10465,8 +10726,8 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.8#1b758b2a8d151d97d2242260c465b6df9cb8a7a4" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" dependencies = [ "frame-try-runtime", "log", @@ -10482,7 +10743,6 @@ dependencies = [ "sp-blockchain", "sp-core", "sp-externalities", - "sp-io", "sp-keystore", "sp-runtime", "sp-state-machine", @@ -10491,12 +10751,12 @@ dependencies = [ [[package]] name = "twox-hash" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04f8ab788026715fa63b31960869617cba39117e520eb415b0139543e325ab59" +checksum = "1f559b464de2e2bdabcac6a210d12e9b5a5973c251e102c44c585c71d51bd78e" dependencies = [ - "cfg-if 0.1.10", - "rand 0.7.3", + "cfg-if 1.0.0", + "rand 0.8.4", "static_assertions", ] @@ -10535,12 +10795,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeb8be209bb1c96b7c177c7420d26e04eccacb0eeae6b980e35fcb74678107e0" -dependencies = [ - "matches", -] +checksum = "246f4c42e67e7a4e3c6106ff716a5d067d4132a642840b242e357e468a2a0085" [[package]] name = "unicode-normalization" @@ -10571,12 +10828,12 @@ checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" [[package]] name = "universal-hash" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" +checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" dependencies = [ "generic-array 0.14.4", - "subtle 2.4.0", + "subtle 2.4.1", ] [[package]] @@ -10724,9 +10981,9 @@ checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" [[package]] name = "wasm-bindgen" -version = "0.2.74" +version = "0.2.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54ee1d4ed486f78874278e63e4069fc1ab9f6a18ca492076ffb90c5eb2997fd" +checksum = "b608ecc8f4198fe8680e2ed18eccab5f0cd4caaf3d83516fa5fb2e927fda2586" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -10734,9 +10991,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.74" +version = "0.2.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b33f6a0694ccfea53d94db8b2ed1c3a8a4c86dd936b13b9f0a15ec4a451b900" +checksum = "580aa3a91a63d23aac5b6b267e2d13cb4f363e31dce6c352fca4752ae12e479f" dependencies = [ "bumpalo", "lazy_static", @@ -10749,9 +11006,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.24" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fba7978c679d53ce2d0ac80c8c175840feb849a161664365d1287b41f2e67f1" +checksum = "16646b21c3add8e13fdb8f20172f8a28c3dbf62f45406bcff0233188226cfe0c" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -10761,9 +11018,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.74" +version = "0.2.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "088169ca61430fe1e58b8096c24975251700e7b1f6fd91cc9d59b04fb9b18bd4" +checksum = "171ebf0ed9e1458810dfcb31f2e766ad6b3a89dbda42d8901f2b268277e5f09c" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -10771,9 +11028,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.74" +version = "0.2.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97" +checksum = "6c2657dd393f03aa2a659c25c6ae18a13a4048cebd220e147933ea837efc589f" dependencies = [ "proc-macro2", "quote", @@ -10784,9 +11041,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.74" +version = "0.2.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7cff876b8f18eed75a66cf49b65e7f967cb354a7aa16003fb55dbfd25b44b4f" +checksum = "2e0c4a743a309662d45f4ede961d7afa4ba4131a59a639f29b0069c3798bbcc2" [[package]] name = "wasm-gc-api" @@ -10805,7 +11062,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "js-sys", "parking_lot 0.11.1", "pin-utils", @@ -10869,11 +11126,9 @@ dependencies = [ "wasmparser", "wasmtime-cache", "wasmtime-environ", - "wasmtime-fiber", "wasmtime-jit", "wasmtime-profiling", "wasmtime-runtime", - "wat", "winapi 0.3.9", ] @@ -10920,7 +11175,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5d2a763e7a6fc734218e0e463196762a4f409c483063d81e0e85f96343b2e0a" dependencies = [ "anyhow", - "gimli", + "gimli 0.24.0", "more-asserts", "object 0.24.0", "target-lexicon", @@ -10939,7 +11194,7 @@ dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-wasm", - "gimli", + "gimli 0.24.0", "indexmap", "log", "more-asserts", @@ -10948,24 +11203,13 @@ dependencies = [ "wasmparser", ] -[[package]] -name = "wasmtime-fiber" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a089d44cd7e2465d41a53b840a5b4fca1bf6d1ecfebc970eac9592b34ea5f0b3" -dependencies = [ - "cc", - "libc", - "winapi 0.3.9", -] - [[package]] name = "wasmtime-jit" version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d4539ea734422b7c868107e2187d7746d8affbcaa71916d72639f53757ad707" dependencies = [ - "addr2line", + "addr2line 0.15.2", "anyhow", "cfg-if 1.0.0", "cranelift-codegen", @@ -10973,7 +11217,7 @@ dependencies = [ "cranelift-frontend", "cranelift-native", "cranelift-wasm", - "gimli", + "gimli 0.24.0", "log", "more-asserts", "object 0.24.0", @@ -11014,11 +11258,8 @@ checksum = "e24364d522dcd67c897c8fffc42e5bdfc57207bbb6d7eeade0da9d4a7d70105b" dependencies = [ "anyhow", "cfg-if 1.0.0", - "gimli", "lazy_static", "libc", - "object 0.24.0", - "scroll", "serde", "target-lexicon", "wasmtime-environ", @@ -11046,33 +11287,14 @@ dependencies = [ "region", "thiserror", "wasmtime-environ", - "wasmtime-fiber", "winapi 0.3.9", ] -[[package]] -name = "wast" -version = "36.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b5d7ba374a364571da1cb0a379a3dc302582a2d9937a183bfe35b68ad5bb9c4" -dependencies = [ - "leb128", -] - -[[package]] -name = "wat" -version = "1.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16383df7f0e3901484c2dda6294ed6895caa3627ce4f6584141dcf30a33a23e6" -dependencies = [ - "wast", -] - [[package]] name = "web-sys" -version = "0.3.51" +version = "0.3.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e828417b379f3df7111d3a2a9e5753706cae29c41f7c4029ee9fd77f3e09e582" +checksum = "01c70a82d842c9979078c772d4a1344685045f1a5628f677c2b2eab4dd7d2696" dependencies = [ "js-sys", "wasm-bindgen", @@ -11108,11 +11330,12 @@ dependencies = [ [[package]] name = "which" -version = "4.1.0" +version = "4.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55551e42cbdf2ce2bedd2203d0cc08dba002c27510f86dab6d0ce304cba3dfe" +checksum = "ea187a8ef279bc014ec368c27a920da2024d2a711109bfbe3440585d5cf27ad9" dependencies = [ "either", + "lazy_static", "libc", ] @@ -11196,25 +11419,26 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f" dependencies = [ - "curve25519-dalek 3.1.0", + "curve25519-dalek 3.2.0", "rand_core 0.5.1", "zeroize", ] [[package]] name = "xcm" -version = "0.9.8" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "derivative", "impl-trait-for-tuples", + "log", "parity-scale-codec", ] [[package]] name = "xcm-builder" -version = "0.9.8" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "frame-support", "frame-system", @@ -11232,8 +11456,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.8" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.8#3a10ee63c0b5703a1c802db3438ab7e01344a8ce" +version = "0.9.9" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -11253,7 +11477,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7d9028f208dd5e63c614be69f115c1b53cacc1111437d4c765185856666c107" dependencies = [ - "futures 0.3.15", + "futures 0.3.16", "log", "nohash-hasher", "parking_lot 0.11.1", @@ -11263,9 +11487,9 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.3.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" +checksum = "377db0846015f7ae377174787dd452e1c5f5a9050bc6f954911d01f116daa0cd" dependencies = [ "zeroize_derive", ] diff --git a/node/Cargo.toml b/node/Cargo.toml index 907d4ff0..84b43f93 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -13,7 +13,7 @@ build = 'build.rs' targets = ['x86_64-unknown-linux-gnu'] [build-dependencies] -substrate-build-script-utils = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +substrate-build-script-utils = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } [[bin]] name = 'parachain-collator' @@ -37,58 +37,58 @@ jsonrpc-core = '15.1.0' parachain-runtime = { path = '../runtime' } # Substrate Dependencies -frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -frame-benchmarking-cli = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +frame-benchmarking-cli = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -pallet-transaction-payment-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +pallet-transaction-payment-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -substrate-frame-rpc-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.8" } +substrate-frame-rpc-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.9" } ## Substrate Client Dependencies -sc-basic-authorship = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sc-chain-spec = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sc-cli = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sc-client-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sc-consensus = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sc-executor = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sc-network = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sc-keystore = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sc-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sc-rpc-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sc-service = { git = 'https://github.com/paritytech/substrate', branch = "polkadot-v0.9.8", version = '0.9.0', features = ['wasmtime'] } -sc-telemetry = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sc-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sc-tracing = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sc-basic-authorship = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sc-chain-spec = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sc-cli = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sc-client-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sc-consensus = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sc-executor = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sc-network = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sc-keystore = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sc-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sc-rpc-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sc-service = { git = 'https://github.com/paritytech/substrate', branch = "polkadot-v0.9.9", features = ['wasmtime'] } +sc-telemetry = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sc-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sc-tracing = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } ## Substrate Primitive Dependencies -sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sp-blockchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sp-consensus = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sp-keystore = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sp-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } -sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8' } +sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sp-blockchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sp-consensus = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sp-keystore = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sp-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } # Cumulus dependencies -cumulus-client-consensus-aura = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8' } -cumulus-client-consensus-common = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8' } -cumulus-client-collator = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8' } -cumulus-client-cli = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8' } -cumulus-client-network = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8' } -cumulus-client-service = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8' } -cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8' } -cumulus-primitives-parachain-inherent = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8' } +cumulus-client-consensus-aura = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9' } +cumulus-client-consensus-common = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9' } +cumulus-client-collator = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9' } +cumulus-client-cli = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9' } +cumulus-client-network = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9' } +cumulus-client-service = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9' } +cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9' } +cumulus-primitives-parachain-inherent = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9' } # Polkadot dependencies -polkadot-cli = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.8'} -polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.8'} -polkadot-primitives = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.8'} -polkadot-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.8'} -polkadot-test-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.8'} \ No newline at end of file +polkadot-cli = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.9'} +polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.9'} +polkadot-primitives = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.9'} +polkadot-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.9'} +polkadot-test-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.9'} \ No newline at end of file diff --git a/node/src/service.rs b/node/src/service.rs index 2876e840..5faec11b 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -54,7 +54,7 @@ pub fn new_partial( TFullClient, TFullBackend, (), - sp_consensus::DefaultImportQueue>, + sc_consensus::DefaultImportQueue>, sc_transaction_pool::FullPool>, (Option, Option), >, @@ -81,7 +81,7 @@ where Option, &TaskManager, ) -> Result< - sp_consensus::DefaultImportQueue>, + sc_consensus::DefaultImportQueue>, sc_service::Error, >, { @@ -169,7 +169,7 @@ where Executor: sc_executor::NativeExecutionDispatch + 'static, RB: Fn( Arc>, - ) -> jsonrpc_core::IoHandler + ) -> Result, sc_service::Error> + Send + 'static, BIQ: FnOnce( @@ -178,7 +178,7 @@ where Option, &TaskManager, ) -> Result< - sp_consensus::DefaultImportQueue>, + sc_consensus::DefaultImportQueue>, sc_service::Error, >, BIC: FnOnce( @@ -233,6 +233,7 @@ where import_queue: import_queue.clone(), on_demand: None, block_announce_validator_builder: Some(Box::new(|_| block_announce_validator)), + warp_sync: None, })?; let rpc_client = client.clone(); @@ -310,7 +311,7 @@ pub fn parachain_build_import_queue( telemetry: Option, task_manager: &TaskManager, ) -> Result< - sp_consensus::DefaultImportQueue< + sc_consensus::DefaultImportQueue< Block, TFullClient, >, @@ -361,7 +362,7 @@ pub async fn start_node( parachain_config, polkadot_config, id, - |_| Default::default(), + |_| Ok(Default::default()), parachain_build_import_queue, |client, prometheus_registry, diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 8a908f81..a9db9b2d 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -14,15 +14,15 @@ targets = ['x86_64-unknown-linux-gnu'] [dependencies] codec = { package = 'parity-scale-codec', version = '2.0.0', features = ['derive'], default-features = false } -frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false, optional = true } -frame-support = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false, optional = true } +frame-support = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } [dev-dependencies] -serde = { version = "1.0.101" } -sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +serde = { version = "1.0.119" } +sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } [features] default = ['std'] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index fb6a7187..8f5bc27f 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -11,7 +11,7 @@ edition = '2018' targets = ['x86_64-unknown-linux-gnu'] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.8" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.9" } [dependencies] codec = { package = 'parity-scale-codec', version = '2.0.0', default-features = false, features = ['derive']} @@ -23,53 +23,53 @@ template = { package = 'pallet-template', path = '../pallets/template', default- # Substrate Dependencies ## Substrate Primitive Dependencies -sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -sp-std = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -sp-version = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +sp-std = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +sp-version = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } ## Substrate FRAME Dependencies -frame-executive = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false, optional = true } -frame-support = { git = 'https://github.com/paritytech/substrate', default-features = false, branch = 'polkadot-v0.9.8' } -frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -frame-system-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false, optional = true } -frame-system-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +frame-executive = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false, optional = true } +frame-support = { git = 'https://github.com/paritytech/substrate', default-features = false, branch = 'polkadot-v0.9.9' } +frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +frame-system-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false, optional = true } +frame-system-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } ## Substrate Pallet Dependencies -pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.8", default-features = false } -pallet-balances = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -pallet-randomness-collective-flip = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -pallet-sudo = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -pallet-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -pallet-transaction-payment = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.8', default-features = false } +pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.9", default-features = false } +pallet-balances = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +pallet-randomness-collective-flip = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +pallet-sudo = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +pallet-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +pallet-transaction-payment = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } # Cumulus Dependencies -cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8', default-features = false } -cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8', default-features = false } -cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8', default-features = false } -cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8', default-features = false } -cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8', default-features = false } -cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8', default-features = false } -cumulus-primitives-timestamp = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8', default-features = false } -cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8', default-features = false } -parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.8', default-features = false } +cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9', default-features = false } +cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9', default-features = false } +cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9', default-features = false } +cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9', default-features = false } +cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9', default-features = false } +cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9', default-features = false } +cumulus-primitives-timestamp = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9', default-features = false } +cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9', default-features = false } +parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9', default-features = false } # Polkadot Dependencies -polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.8', default-features = false } -xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.8', default-features = false } -xcm-builder = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.8', default-features = false } -xcm-executor = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.8', default-features = false } -pallet-xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.8', default-features = false } +polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.9', default-features = false } +xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.9', default-features = false } +xcm-builder = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.9', default-features = false } +xcm-executor = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.9', default-features = false } +pallet-xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.9', default-features = false } [features] default = ['std'] diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index da1a01d9..b3e32ea3 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -23,7 +23,7 @@ use sp_version::RuntimeVersion; // A few exports that help ease life for downstream crates. pub use frame_support::{ construct_runtime, match_type, parameter_types, - traits::{All, IsInVec, Randomness}, + traits::{Everything, IsInVec, Randomness}, weights::{ constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND}, DispatchClass, IdentityFee, Weight, @@ -38,10 +38,12 @@ pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; pub use sp_runtime::BuildStorage; pub use sp_runtime::{MultiAddress, Perbill, Permill}; -// Polkadot & XCM imports +// Polkadot Imports use pallet_xcm::XcmPassthrough; use polkadot_parachain::primitives::Sibling; -use xcm::v0::{BodyId, Junction::*, MultiAsset, MultiLocation, MultiLocation::*, NetworkId, Xcm}; + +//XCM Imports +use xcm::v0::{BodyId, Junction::*, MultiLocation, MultiLocation::*, NetworkId}; use xcm_builder::{ AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter, EnsureXcmOrigin, FixedWeightBounds, IsConcrete, LocationInverter, NativeAsset, @@ -220,7 +222,7 @@ impl frame_system::Config for Runtime { /// The weight of database operations that the runtime can invoke. type DbWeight = (); /// The basic call filter to use in dispatchable. - type BaseCallFilter = (); + type BaseCallFilter = Everything; /// Weight information for the extrinsics of this pallet. type SystemWeightInfo = (); /// Block & extrinsics weights: base values and limits. @@ -305,7 +307,7 @@ impl cumulus_pallet_aura_ext::Config for Runtime {} parameter_types! { pub const RelayLocation: MultiLocation = X1(Parent); pub const RelayNetwork: NetworkId = NetworkId::Polkadot; - pub RelayOrigin: Origin = cumulus_pallet_xcm::Origin::Relay.into(); + pub RelayChainOrigin: Origin = cumulus_pallet_xcm::Origin::Relay.into(); pub Ancestry: MultiLocation = X1(Parachain(ParachainInfo::parachain_id().into())); } @@ -345,7 +347,7 @@ pub type XcmOriginToTransactDispatchOrigin = ( SovereignSignedViaLocation, // Native converter for Relay-chain (Parent) location; will converts to a `Relay` origin when // recognised. - RelayChainAsNative, + RelayChainAsNative, // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when // recognised. SiblingParachainAsNative, @@ -374,7 +376,7 @@ match_type! { pub type Barrier = ( TakeWeightCredit, - AllowTopLevelPaidExecutionFrom>, + AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, // ^^^ Parent & its unit plurality gets free execution ); @@ -387,7 +389,7 @@ impl Config for XcmConfig { type AssetTransactor = LocalAssetTransactor; type OriginConverter = XcmOriginToTransactDispatchOrigin; type IsReserve = NativeAsset; - type IsTeleporter = NativeAsset; // <- should be enough to allow teleportation of UNIT + type IsTeleporter = (); // Teleporting is disabled. type LocationInverter = LocationInverter; type Barrier = Barrier; type Weigher = FixedWeightBounds; @@ -412,11 +414,12 @@ impl pallet_xcm::Config for Runtime { type SendXcmOrigin = EnsureXcmOrigin; type XcmRouter = XcmRouter; type ExecuteXcmOrigin = EnsureXcmOrigin; - type XcmExecuteFilter = All<(MultiLocation, Xcm)>; + type XcmExecuteFilter = Everything; type XcmExecutor = XcmExecutor; - type XcmTeleportFilter = All<(MultiLocation, Vec)>; + type XcmTeleportFilter = Everything; type XcmReserveTransferFilter = (); type Weigher = FixedWeightBounds; + type LocationInverter = LocationInverter; } impl cumulus_pallet_xcm::Config for Runtime { @@ -438,6 +441,7 @@ impl cumulus_pallet_dmp_queue::Config for Runtime { impl pallet_aura::Config for Runtime { type AuthorityId = AuraId; + type DisabledValidators = (); } /// Configure the pallet template in pallets/template. @@ -458,7 +462,7 @@ construct_runtime!( RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Storage}, TransactionPayment: pallet_transaction_payment::{Pallet, Storage}, - ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Config, Storage, Inherent, Event} = 20, + ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Config, Storage, Inherent, Event, ValidateUnsigned} = 20, ParachainInfo: parachain_info::{Pallet, Storage, Config} = 21, From ff39ffa43af9440feb5ef02f3122cffc2fd6263b Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Mon, 27 Sep 2021 17:44:37 -0600 Subject: [PATCH 38/91] remove relay root origin for XCM (#75) --- runtime/src/lib.rs | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index b3e32ea3..ad84bc62 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -42,14 +42,14 @@ pub use sp_runtime::{MultiAddress, Perbill, Permill}; use pallet_xcm::XcmPassthrough; use polkadot_parachain::primitives::Sibling; -//XCM Imports +// XCM Imports use xcm::v0::{BodyId, Junction::*, MultiLocation, MultiLocation::*, NetworkId}; use xcm_builder::{ AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter, - EnsureXcmOrigin, FixedWeightBounds, IsConcrete, LocationInverter, NativeAsset, - ParentAsSuperuser, ParentIsDefault, RelayChainAsNative, SiblingParachainAsNative, - SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, - SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, + EnsureXcmOrigin, FixedWeightBounds, IsConcrete, LocationInverter, NativeAsset, ParentIsDefault, + RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, + UsingComponents, }; use xcm_executor::{Config, XcmExecutor}; @@ -150,7 +150,7 @@ pub fn native_version() -> NativeVersion { NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } } -/// We assume that ~10% of the block weight is consumed by `on_initalize` handlers. +/// We assume that ~10% of the block weight is consumed by `on_initialize` handlers. /// This is used to limit the maximal weight of a single extrinsic. const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(10); /// We allow `Normal` extrinsics to fill up the block up to 75%, the rest can be used @@ -346,14 +346,11 @@ pub type XcmOriginToTransactDispatchOrigin = ( // foreign chains who want to have a local sovereign account on this chain which they control. SovereignSignedViaLocation, // Native converter for Relay-chain (Parent) location; will converts to a `Relay` origin when - // recognised. + // recognized. RelayChainAsNative, // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when - // recognised. + // recognized. SiblingParachainAsNative, - // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a - // transaction from the Root origin. - ParentAsSuperuser, // Native signed account converter; this just converts an `AccountId32` origin into a normal // `Origin::Signed` origin of the same 32-byte value. SignedAccountId32AsNative, From b648b7fe56159456053b09f26fce14b6968bfb6c Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Wed, 29 Sep 2021 14:28:36 -0600 Subject: [PATCH 39/91] Update to `polkadot-v0.9.10` (#73) * update cargo deps * update runtime, builds * cargo +nightly fmt * spelling * clear lock file, builds! * patch minor gripes from issues * rm extra constant * Update rust ci Co-authored-by: Ricardo Rius --- .github/workflows/test-code.yml | 2 +- Cargo.lock | 1826 ++++++++++++++++--------------- README.md | 45 +- node/Cargo.toml | 92 +- pallets/template/Cargo.toml | 12 +- runtime/Cargo.toml | 80 +- runtime/src/lib.rs | 24 +- 7 files changed, 1046 insertions(+), 1035 deletions(-) diff --git a/.github/workflows/test-code.yml b/.github/workflows/test-code.yml index 56bd07b9..4343e63e 100644 --- a/.github/workflows/test-code.yml +++ b/.github/workflows/test-code.yml @@ -30,7 +30,7 @@ jobs: uses: actions-rs/toolchain@v1 with: profile: minimal - toolchain: nightly-2021-04-18 + toolchain: nightly-2021-09-29 components: rustfmt, clippy target: wasm32-unknown-unknown override: true diff --git a/Cargo.lock b/Cargo.lock index 6ba2f695..cb3ac24c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -38,56 +38,37 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aead" -version = "0.3.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" +checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" dependencies = [ "generic-array 0.14.4", ] [[package]] name = "aes" -version = "0.5.0" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd2bc6d3f370b5666245ff421e231cba4353df936e26986d2918e61a8fd6aef6" +checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ - "aes-soft", - "aesni", - "block-cipher", + "cfg-if 1.0.0", + "cipher", + "cpufeatures", + "opaque-debug 0.3.0", ] [[package]] name = "aes-gcm" -version = "0.7.0" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0301c9e9c443494d970a07885e8cf3e587bae8356a1d5abd0999068413f7205f" +checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6" dependencies = [ "aead", "aes", - "block-cipher", + "cipher", + "ctr", "ghash", - "subtle 2.4.1", -] - -[[package]] -name = "aes-soft" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63dd91889c49327ad7ef3b500fd1109dbd3c509a03db0d4a9ce413b79f575cb6" -dependencies = [ - "block-cipher", - "byteorder", - "opaque-debug 0.3.0", -] - -[[package]] -name = "aesni" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6fe808308bb07d393e2ea47780043ec47683fcf19cf5efc8ca51c50cc8c68a" -dependencies = [ - "block-cipher", - "opaque-debug 0.3.0", + "subtle", ] [[package]] @@ -136,9 +117,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.43" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28ae2b3dec75a406790005a200b1bd89785afc02517a00ca99ecfe093ee9e6cf" +checksum = "61604a8f862e1d5c3229fdd78f8b02c68dcf73a4c4b05fd636d12240aaa242c1" [[package]] name = "approx" @@ -253,7 +234,7 @@ dependencies = [ "parking", "polling", "slab", - "socket2 0.4.1", + "socket2 0.4.2", "waker-fn", "winapi 0.3.9", ] @@ -295,9 +276,9 @@ dependencies = [ [[package]] name = "async-std" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f06685bad74e0570f5213741bea82158279a4103d988e57bfada11ad230341" +checksum = "f8056f1455169ab86dd47b47391e4ab0cbd25410a70e9fe675544f49bafaf952" dependencies = [ "async-attributes", "async-channel", @@ -359,7 +340,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb4401f0a3622dad2e0763fa79e0eb328bc70fb7dccfdd645341f00d671247d6" dependencies = [ - "bytes 1.0.1", + "bytes 1.1.0", "futures-sink", "futures-util", "memchr", @@ -372,7 +353,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0de5164e5edbf51c45fb8c2d9664ae1c095cce1b265ecf7569093c0d66ef690" dependencies = [ - "bytes 1.0.1", + "bytes 1.1.0", "futures-sink", "futures-util", "memchr", @@ -422,7 +403,7 @@ dependencies = [ "cfg-if 1.0.0", "libc", "miniz_oxide", - "object 0.26.0", + "object 0.26.2", "rustc-demangle", ] @@ -475,15 +456,15 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.9#f40c0ab7b327e874d5c8d699bfa5d762f1759ee0" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.10#9954b61657dc8899a21b4f2501ee6bd3b7a2dc23" dependencies = [ "beefy-primitives", "fnv", - "futures 0.3.16", + "futures 0.3.17", "hex", "log", "parity-scale-codec", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "sc-client-api", "sc-keystore", "sc-network", @@ -505,11 +486,11 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.9#f40c0ab7b327e874d5c8d699bfa5d762f1759ee0" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.10#9954b61657dc8899a21b4f2501ee6bd3b7a2dc23" dependencies = [ "beefy-gadget", "beefy-primitives", - "futures 0.3.16", + "futures 0.3.17", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -526,12 +507,12 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.9#f40c0ab7b327e874d5c8d699bfa5d762f1759ee0" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.10#9954b61657dc8899a21b4f2501ee6bd3b7a2dc23" [[package]] name = "beefy-primitives" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.9#f40c0ab7b327e874d5c8d699bfa5d762f1759ee0" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.10#9954b61657dc8899a21b4f2501ee6bd3b7a2dc23" dependencies = [ "parity-scale-codec", "sp-api", @@ -601,9 +582,9 @@ dependencies = [ [[package]] name = "blake2" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a5720225ef5daecf08657f23791354e1685a8c91a4c60c7f3d3b2892f978f4" +checksum = "0a4e37d16930f5459780f5621038b6382b9bb37c19016f39fb6b5808d831f174" dependencies = [ "crypto-mac 0.8.0", "digest 0.9.0", @@ -679,15 +660,6 @@ dependencies = [ "generic-array 0.14.4", ] -[[package]] -name = "block-cipher" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f337a3e6da609650eb74e02bc9fac7b735049f7623ab12f2e4c719316fcc7e80" -dependencies = [ - "generic-array 0.14.4", -] - [[package]] name = "block-padding" version = "0.1.5" @@ -725,9 +697,9 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bstr" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90682c8d613ad3373e66de8c6411e0ae2ab2571e879d2efbf73558cc66f21279" +checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" dependencies = [ "memchr", ] @@ -743,15 +715,15 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.7.0" +version = "3.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631" +checksum = "d9df67f7bf9ef8498769f994239c45613ef0c5899415fb58e9add412d2c1a538" [[package]] name = "byte-slice-cast" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65c1bf4a04a88c54f589125563643d773f3254b5c38571395e2b591c693bbc81" +checksum = "ca0796d76a983651b4a0ddda16203032759f2fd9103d9181f7c65c06ee8872e6" [[package]] name = "byte-tools" @@ -784,9 +756,9 @@ checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" [[package]] name = "bytes" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" +checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" [[package]] name = "cache-padded" @@ -828,9 +800,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.69" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e70cc2f62c6ce1868963827bd677764c62d07c3d9a3e1fb1177ee1a9ab199eb2" +checksum = "d26a6ce4b6a484fa3edb70f7efa6fc430fd2b87285fe8b84304fd0936faa0dc0" dependencies = [ "jobserver", ] @@ -864,24 +836,26 @@ checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" [[package]] name = "chacha20" -version = "0.5.0" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "244fbce0d47e97e8ef2f63b81d5e05882cb518c68531eb33194990d7b7e85845" +checksum = "f08493fa7707effc63254c66c6ea908675912493cd67952eda23c09fae2610b1" dependencies = [ - "stream-cipher", + "cfg-if 1.0.0", + "cipher", + "cpufeatures", "zeroize", ] [[package]] name = "chacha20poly1305" -version = "0.6.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bf18d374d66df0c05cdddd528a7db98f78c28e2519b120855c4f84c5027b1f5" +checksum = "b6547abe025f4027edacd9edaa357aded014eecec42a5070d9b885c3c334aba2" dependencies = [ "aead", "chacha20", + "cipher", "poly1305", - "stream-cipher", "zeroize", ] @@ -905,33 +879,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff0e3bc0b6446b3f9663c1a6aba6ef06c5aeaa1bc92bd18077be337198ab9768" dependencies = [ "multibase", - "multihash", + "multihash 0.13.2", "unsigned-varint 0.5.1", ] [[package]] name = "cipher" -version = "0.2.5" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" +checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" dependencies = [ "generic-array 0.14.4", ] [[package]] name = "ckb-merkle-mountain-range" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e486fe53bb9f2ca0f58cb60e8679a5354fd6687a839942ef0a75967250289ca6" +checksum = "4f061f97d64fd1822664bdfb722f7ae5469a97b77567390f7442be5b5dc82a5b" dependencies = [ "cfg-if 0.1.10", ] [[package]] name = "clang-sys" -version = "1.2.0" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "853eda514c284c2287f4bf20ae614f8781f40a81d32ecda6e91449304dfe077c" +checksum = "10612c0ec0e0a1ff0e97980647cb058a6e7aedb913d01d009c406b8b7d0b26ee" dependencies = [ "glob", "libc", @@ -1026,19 +1000,13 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.1.5" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71ef" +checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469" dependencies = [ "libc", ] -[[package]] -name = "cpuid-bool" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" - [[package]] name = "cranelift-bforest" version = "0.74.0" @@ -1125,7 +1093,7 @@ dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-frontend", - "itertools 0.10.1", + "itertools", "log", "serde", "smallvec 1.6.1", @@ -1242,22 +1210,22 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "crypto-mac" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" +checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ - "generic-array 0.12.4", - "subtle 1.0.0", + "generic-array 0.14.4", + "subtle", ] [[package]] name = "crypto-mac" -version = "0.8.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" +checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" dependencies = [ "generic-array 0.14.4", - "subtle 2.4.1", + "subtle", ] [[package]] @@ -1271,14 +1239,23 @@ dependencies = [ [[package]] name = "ctor" -version = "0.1.20" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e98e2ad1a782e33928b96fc3948e7c355e5af34ba4de7670fe8bac2a3b2006d" +checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa" dependencies = [ "quote", "syn", ] +[[package]] +name = "ctr" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" +dependencies = [ + "cipher", +] + [[package]] name = "cuckoofilter" version = "0.5.0" @@ -1293,7 +1270,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" dependencies = [ "sc-cli", "sc-service", @@ -1303,12 +1280,12 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-primitives-core", - "futures 0.3.16", + "futures 0.3.17", "parity-scale-codec", "parking_lot 0.10.2", "polkadot-node-primitives", @@ -1327,12 +1304,12 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" dependencies = [ "async-trait", "cumulus-client-consensus-common", "cumulus-primitives-core", - "futures 0.3.16", + "futures 0.3.17", "parity-scale-codec", "parking_lot 0.10.2", "polkadot-client", @@ -1358,11 +1335,11 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" dependencies = [ "async-trait", "dyn-clone", - "futures 0.3.16", + "futures 0.3.17", "parity-scale-codec", "polkadot-primitives", "polkadot-runtime", @@ -1383,10 +1360,10 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" dependencies = [ "derive_more", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "parity-scale-codec", "parking_lot 0.10.2", @@ -1407,10 +1384,10 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" dependencies = [ "cumulus-primitives-core", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "parity-scale-codec", "polkadot-node-primitives", @@ -1431,7 +1408,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-common", @@ -1460,7 +1437,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" dependencies = [ "frame-executive", "frame-support", @@ -1477,7 +1454,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1496,7 +1473,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1524,9 +1501,9 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" dependencies = [ - "proc-macro-crate 1.0.0", + "proc-macro-crate 1.1.0", "proc-macro2", "quote", "syn", @@ -1535,7 +1512,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1551,7 +1528,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1569,7 +1546,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1587,7 +1564,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1608,7 +1585,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" dependencies = [ "cumulus-primitives-core", "sp-inherents", @@ -1619,7 +1596,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1637,7 +1614,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1656,7 +1633,7 @@ dependencies = [ "byteorder", "digest 0.8.1", "rand_core 0.5.1", - "subtle 2.4.1", + "subtle", "zeroize", ] @@ -1669,7 +1646,7 @@ dependencies = [ "byteorder", "digest 0.9.0", "rand_core 0.5.1", - "subtle 2.4.1", + "subtle", "zeroize", ] @@ -1844,7 +1821,7 @@ dependencies = [ "ed25519", "rand 0.7.3", "serde", - "sha2 0.9.5", + "sha2 0.9.8", "zeroize", ] @@ -1951,11 +1928,11 @@ dependencies = [ [[package]] name = "errno-dragonfly" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14ca354e36190500e1e1fb267c647932382b54053c50b14970856c0b00a35067" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" dependencies = [ - "gcc", + "cc", "libc", ] @@ -1998,7 +1975,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", ] [[package]] @@ -2065,18 +2042,18 @@ dependencies = [ [[package]] name = "finality-grandpa" -version = "0.14.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c832d0ed507622c7cb98e9b7f10426850fc9d38527ab8071778dcc3a81d45875" +checksum = "e8ac3ff5224ef91f3c97e03eb1de2db82743427e91aaa5ac635f454f0b164f5a" dependencies = [ "either", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "log", "num-traits", "parity-scale-codec", - "parking_lot 0.11.1", - "scale-info", + "parking_lot 0.11.2", + "scale-info 1.0.0", ] [[package]] @@ -2099,9 +2076,9 @@ checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" [[package]] name = "flate2" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd3aec53de10fe96d7d8c565eb17f2c687bb5518a2ec453b5b1252964526abe0" +checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f" dependencies = [ "cfg-if 1.0.0", "crc32fast", @@ -2119,7 +2096,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "parity-scale-codec", ] @@ -2137,7 +2114,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -2156,7 +2133,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "Inflector", "chrono", @@ -2182,7 +2159,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -2195,7 +2172,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -2210,7 +2187,7 @@ dependencies = [ [[package]] name = "frame-metadata" version = "14.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "parity-scale-codec", "serde", @@ -2221,7 +2198,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "bitflags", "frame-metadata", @@ -2247,7 +2224,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2259,10 +2236,10 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support-procedural-tools-derive", - "proc-macro-crate 1.0.0", + "proc-macro-crate 1.1.0", "proc-macro2", "quote", "syn", @@ -2271,7 +2248,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "proc-macro2", "quote", @@ -2281,7 +2258,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -2298,7 +2275,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-benchmarking", "frame-support", @@ -2312,7 +2289,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "parity-scale-codec", "sp-api", @@ -2321,7 +2298,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "parity-scale-codec", @@ -2394,9 +2371,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adc00f486adfc9ce99f77d717836f0c5aa84965eb0b4f051f4e83f7cab53f8b" +checksum = "a12aa0eb539080d55c3f2d45a67c3b58b6b0773c1a3ca2dfec66d58c97fd66ca" dependencies = [ "futures-channel", "futures-core", @@ -2409,9 +2386,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74ed2411805f6e4e3d9bc904c95d5d423b89b3b25dc0250aa74729de20629ff9" +checksum = "5da6ba8c3bb3c165d3c7319fc1cc8304facf1fb8db99c5de877183c08a273888" dependencies = [ "futures-core", "futures-sink", @@ -2419,9 +2396,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af51b1b4a7fdff033703db39de8802c673eb91855f2e0d47dcf3bf2c0ef01f99" +checksum = "88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53d" [[package]] name = "futures-cpupool" @@ -2435,9 +2412,9 @@ dependencies = [ [[package]] name = "futures-executor" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d0d535a57b87e1ae31437b892713aee90cd2d7b0ee48727cd11fc72ef54761c" +checksum = "45025be030969d763025784f7f355043dc6bc74093e4ecc5000ca4dc50d8745c" dependencies = [ "futures-core", "futures-task", @@ -2447,9 +2424,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b0e06c393068f3a6ef246c75cdca793d6a46347e75286933e5e75fd2fd11582" +checksum = "522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377" [[package]] name = "futures-lite" @@ -2468,9 +2445,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c54913bae956fb8df7f4dc6fc90362aa72e69148e3f39041fbe8742d21e0ac57" +checksum = "18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bb" dependencies = [ "autocfg", "proc-macro-hack", @@ -2492,15 +2469,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0f30aaa67363d119812743aa5f33c201a7a66329f97d1a887022971feea4b53" +checksum = "36ea153c13024fe480590b3e3d4cad89a0cfacecc24577b68f86c6ced9c2bc11" [[package]] name = "futures-task" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe54a98670017f3be909561f6ad13e810d9a51f3f061b902062ca3da80799f2" +checksum = "1d3d00f4eddb73e498a54394f228cd55853bdf059259e8e7bc6e69d408892e99" [[package]] name = "futures-timer" @@ -2516,9 +2493,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67eb846bfd58e44a8481a00049e82c43e0ccb5d61f8dc071057cb19249dd4d78" +checksum = "36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481" dependencies = [ "autocfg", "futures 0.1.31", @@ -2536,12 +2513,6 @@ dependencies = [ "slab", ] -[[package]] -name = "gcc" -version = "0.3.55" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" - [[package]] name = "generic-array" version = "0.12.4" @@ -2585,9 +2556,9 @@ dependencies = [ [[package]] name = "ghash" -version = "0.3.1" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97304e4cd182c3846f7575ced3890c53012ce534ad9114046b0a9e00bb30a375" +checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" dependencies = [ "opaque-debug 0.3.0", "polyval", @@ -2671,7 +2642,7 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http 0.2.4", + "http 0.2.5", "indexmap", "slab", "tokio 0.2.25", @@ -2756,33 +2727,33 @@ checksum = "b07f60793ff0a4d9cef0f18e63b5357e06209987153a64648c972c1e5aff336f" [[package]] name = "hmac" -version = "0.7.1" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695" +checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" dependencies = [ - "crypto-mac 0.7.0", - "digest 0.8.1", + "crypto-mac 0.8.0", + "digest 0.9.0", ] [[package]] name = "hmac" -version = "0.8.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" +checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" dependencies = [ - "crypto-mac 0.8.0", + "crypto-mac 0.11.1", "digest 0.9.0", ] [[package]] name = "hmac-drbg" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6e570451493f10f6581b48cdd530413b63ea9e780f544bfd3bdcaa0d89d1a7b" +checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" dependencies = [ - "digest 0.8.1", - "generic-array 0.12.4", - "hmac 0.7.1", + "digest 0.9.0", + "generic-array 0.14.4", + "hmac 0.8.1", ] [[package]] @@ -2809,11 +2780,11 @@ dependencies = [ [[package]] name = "http" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11" +checksum = "1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186b" dependencies = [ - "bytes 1.0.1", + "bytes 1.1.0", "fnv", "itoa", ] @@ -2837,7 +2808,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" dependencies = [ "bytes 0.5.6", - "http 0.2.4", + "http 0.2.5", ] [[package]] @@ -2846,16 +2817,16 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "399c583b2979440c60be0821a6199eca73bc3c8dcd9d070d75ac726e2c6186e5" dependencies = [ - "bytes 1.0.1", - "http 0.2.4", + "bytes 1.1.0", + "http 0.2.5", "pin-project-lite 0.2.7", ] [[package]] name = "httparse" -version = "1.4.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a87b616e37e93c22fb19bcd386f02f3af5ea98a25670ad0fce773de23c5e68" +checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" [[package]] name = "httpdate" @@ -2925,7 +2896,7 @@ dependencies = [ "futures-core", "futures-util", "h2 0.2.7", - "http 0.2.4", + "http 0.2.5", "http-body 0.3.1", "httparse", "httpdate 0.3.2", @@ -2940,21 +2911,21 @@ dependencies = [ [[package]] name = "hyper" -version = "0.14.11" +version = "0.14.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b61cf2d1aebcf6e6352c97b81dc2244ca29194be1b276f5d8ad5c6330fffb11" +checksum = "15d1cfb9e4f68655fa04c01f59edb405b6074a0f7118ea881e5026e4a1cd8593" dependencies = [ - "bytes 1.0.1", + "bytes 1.1.0", "futures-channel", "futures-core", "futures-util", - "http 0.2.4", + "http 0.2.5", "http-body 0.4.3", "httparse", "httpdate 1.0.1", "itoa", "pin-project-lite 0.2.7", - "tokio 1.10.0", + "tokio 1.12.0", "tower-service", "tracing", "want 0.3.0", @@ -3002,9 +2973,9 @@ dependencies = [ [[package]] name = "if-addrs" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28538916eb3f3976311f5dfbe67b5362d0add1293d0a9cad17debf86f8e3aa48" +checksum = "c9a83ec4af652890ac713ffd8dc859e650420a5ef47f7b9be29b6664ab50fbc8" dependencies = [ "if-addrs-sys", "libc", @@ -3028,7 +2999,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae8ab7f67bad3240049cb24fb9cb0b4c2c6af4c245840917fbbdededeee91179" dependencies = [ "async-io", - "futures 0.3.16", + "futures 0.3.17", "futures-lite", "if-addrs", "ipnet", @@ -3088,11 +3059,14 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d" +checksum = "716d3d89f35ac6a34fd0eed635395f4c3b76fa889338a4632e5231a8684216bd" dependencies = [ "cfg-if 1.0.0", + "js-sys", + "wasm-bindgen", + "web-sys", ] [[package]] @@ -3116,7 +3090,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "futures-timer 2.0.2", ] @@ -3153,15 +3127,6 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9" -[[package]] -name = "itertools" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.10.1" @@ -3173,9 +3138,9 @@ dependencies = [ [[package]] name = "itoa" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "jobserver" @@ -3188,9 +3153,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.52" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce791b7ca6638aae45be056e068fc756d871eb3b3b10b8efa62d1c9cec616752" +checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84" dependencies = [ "wasm-bindgen", ] @@ -3319,13 +3284,13 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f37924e16300e249a52a22cabb5632f846dc9760b39355f5e8bc70cd23dc6300" +checksum = "8edb341d35279b59c79d7fe9e060a51aec29d45af99cc7c72ea7caa350fa71a4" dependencies = [ "Inflector", "bae", - "proc-macro-crate 1.0.0", + "proc-macro-crate 1.1.0", "proc-macro2", "quote", "syn", @@ -3333,15 +3298,15 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d67724d368c59e08b557a516cf8fcc51100e7a708850f502e1044b151fe89788" +checksum = "4cc738fd55b676ada3271ef7c383a14a0867a2a88b0fa941311bf5fc0a29d498" dependencies = [ "async-trait", "beef", "futures-channel", "futures-util", - "hyper 0.14.11", + "hyper 0.14.13", "log", "serde", "serde_json", @@ -3351,13 +3316,13 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2834b6e7f57ce9a4412ed4d6dc95125d2c8612e68f86b9d9a07369164e4198" +checksum = "9841352dbecf4c2ed5dc71698df9f1660262ae4e0b610e968602529bdbcf7b30" dependencies = [ "async-trait", "fnv", - "futures 0.3.16", + "futures 0.3.17", "jsonrpsee-types", "log", "pin-project 1.0.8", @@ -3416,7 +3381,7 @@ checksum = "c3b6b85fc643f5acd0bffb2cc8a6d150209379267af0d41db72170021841f9f5" dependencies = [ "kvdb", "parity-util-mem", - "parking_lot 0.11.1", + "parking_lot 0.11.2", ] [[package]] @@ -3431,7 +3396,7 @@ dependencies = [ "num_cpus", "owning_ref", "parity-util-mem", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "regex", "rocksdb", "smallvec 1.6.1", @@ -3451,9 +3416,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.99" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7f823d141fe0a24df1e23b4af4e3c7ba9e5966ec514ea068c93024aa7deb765" +checksum = "dd8f7255a17a627354f321ef0055d63b898c6fb27eff628af4d1b66b7331edf6" [[package]] name = "libloading" @@ -3483,13 +3448,13 @@ checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" [[package]] name = "libp2p" -version = "0.37.1" +version = "0.39.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08053fbef67cd777049ef7a95ebaca2ece370b4ed7712c3fa404d69a88cb741b" +checksum = "9004c06878ef8f3b4b4067e69a140d87ed20bf777287f82223e49713b36ee433" dependencies = [ "atomic", - "bytes 1.0.1", - "futures 0.3.16", + "bytes 1.1.0", + "futures 0.3.17", "lazy_static", "libp2p-core", "libp2p-deflate", @@ -3513,8 +3478,8 @@ dependencies = [ "libp2p-wasm-ext", "libp2p-websocket", "libp2p-yamux", - "parity-multiaddr", - "parking_lot 0.11.1", + "multiaddr", + "parking_lot 0.11.2", "pin-project 1.0.8", "smallvec 1.6.1", "wasm-timer", @@ -3522,31 +3487,31 @@ dependencies = [ [[package]] name = "libp2p-core" -version = "0.28.3" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "554d3e7e9e65f939d66b75fd6a4c67f258fe250da61b91f46c545fc4a89b51d9" +checksum = "af9b4abdeaa420593a297c8592f63fad4234f4b88dc9343b8fd8e736c35faa59" dependencies = [ "asn1_der", "bs58", "ed25519-dalek", "either", "fnv", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "lazy_static", - "libsecp256k1 0.3.5", + "libsecp256k1 0.5.0", "log", - "multihash", + "multiaddr", + "multihash 0.14.0", "multistream-select", - "parity-multiaddr", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "pin-project 1.0.8", "prost", "prost-build", "rand 0.7.3", "ring", "rw-stream-sink", - "sha2 0.9.5", + "sha2 0.9.8", "smallvec 1.6.1", "thiserror", "unsigned-varint 0.7.0", @@ -3556,23 +3521,23 @@ dependencies = [ [[package]] name = "libp2p-deflate" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2181a641cd15f9b6ba71b1335800f309012a0a97a29ffaabbbf40e9d3d58f08" +checksum = "66097fccc0b7f8579f90a03ea76ba6196332ea049fd07fd969490a06819dcdc8" dependencies = [ "flate2", - "futures 0.3.16", + "futures 0.3.17", "libp2p-core", ] [[package]] name = "libp2p-dns" -version = "0.28.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62e63dab8b5ff35e0c101a3e51e843ba782c07bbb1682f5fd827622e0d02b98b" +checksum = "58ff08b3196b85a17f202d80589e93b1660a574af67275706657fdc762e42c32" dependencies = [ "async-std-resolver", - "futures 0.3.16", + "futures 0.3.17", "libp2p-core", "log", "smallvec 1.6.1", @@ -3581,13 +3546,13 @@ dependencies = [ [[package]] name = "libp2p-floodsub" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48a9b570f6766301d9c4aa00fce3554cad1598e2f466debbc4dde909028417cf" +checksum = "404eca8720967179dac7a5b4275eb91f904a53859c69ca8d018560ad6beb214f" dependencies = [ "cuckoofilter", "fnv", - "futures 0.3.16", + "futures 0.3.17", "libp2p-core", "libp2p-swarm", "log", @@ -3599,16 +3564,16 @@ dependencies = [ [[package]] name = "libp2p-gossipsub" -version = "0.30.1" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7b0c8506a6ec3344b9e706d7c7a6dba826f8ede735cfe13dde12a8c263c4af9" +checksum = "b1cc48709bcbc3a3321f08a73560b4bbb4166a7d56f6fdb615bc775f4f91058e" dependencies = [ "asynchronous-codec 0.6.0", "base64 0.13.0", "byteorder", - "bytes 1.0.1", + "bytes 1.1.0", "fnv", - "futures 0.3.16", + "futures 0.3.17", "hex_fmt", "libp2p-core", "libp2p-swarm", @@ -3617,7 +3582,7 @@ dependencies = [ "prost-build", "rand 0.7.3", "regex", - "sha2 0.9.5", + "sha2 0.9.8", "smallvec 1.6.1", "unsigned-varint 0.7.0", "wasm-timer", @@ -3625,11 +3590,11 @@ dependencies = [ [[package]] name = "libp2p-identify" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f668f00efd9883e8b7bcc582eaf0164615792608f886f6577da18bcbeea0a46" +checksum = "a7b61f6cf07664fb97016c318c4d4512b3dd4cc07238607f3f0163245f99008e" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "libp2p-core", "libp2p-swarm", "log", @@ -3641,23 +3606,23 @@ dependencies = [ [[package]] name = "libp2p-kad" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b07312ebe5ee4fd2404447a0609814574df55c65d4e20838b957bbd34907d820" +checksum = "50ed78489c87924235665a0ab345b298ee34dff0f7ad62c0ba6608b2144fb75e" dependencies = [ "arrayvec 0.5.2", "asynchronous-codec 0.6.0", - "bytes 1.0.1", + "bytes 1.1.0", "either", "fnv", - "futures 0.3.16", + "futures 0.3.17", "libp2p-core", "libp2p-swarm", "log", "prost", "prost-build", "rand 0.7.3", - "sha2 0.9.5", + "sha2 0.9.8", "smallvec 1.6.1", "uint", "unsigned-varint 0.7.0", @@ -3667,14 +3632,14 @@ dependencies = [ [[package]] name = "libp2p-mdns" -version = "0.30.2" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4efa70c1c3d2d91237f8546e27aeb85e287d62c066a7b4f3ea6a696d43ced714" +checksum = "a29e6cbc2a24b8471b6567e580a0e8e7b70a6d0f0ea2be0844d1e842d7d4fa33" dependencies = [ "async-io", "data-encoding", "dns-parser", - "futures 0.3.16", + "futures 0.3.17", "if-watch", "lazy_static", "libp2p-core", @@ -3682,23 +3647,23 @@ dependencies = [ "log", "rand 0.8.4", "smallvec 1.6.1", - "socket2 0.4.1", + "socket2 0.4.2", "void", ] [[package]] name = "libp2p-mplex" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85e9b544335d1ed30af71daa96edbefadef6f19c7a55f078b9fc92c87163105d" +checksum = "313d9ea526c68df4425f580024e67a9d3ffd49f2c33de5154b1f5019816f7a99" dependencies = [ "asynchronous-codec 0.6.0", - "bytes 1.0.1", - "futures 0.3.16", + "bytes 1.1.0", + "futures 0.3.17", "libp2p-core", "log", "nohash-hasher", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "rand 0.7.3", "smallvec 1.6.1", "unsigned-varint 0.7.0", @@ -3706,20 +3671,20 @@ dependencies = [ [[package]] name = "libp2p-noise" -version = "0.30.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36db0f0db3b0433f5b9463f1c0cd9eadc0a3734a9170439ce501ff99733a88bd" +checksum = "3f1db7212f342b6ba7c981cc40e31f76e9e56cb48e65fa4c142ecaca5839523e" dependencies = [ - "bytes 1.0.1", + "bytes 1.1.0", "curve25519-dalek 3.2.0", - "futures 0.3.16", + "futures 0.3.17", "lazy_static", "libp2p-core", "log", "prost", "prost-build", - "rand 0.7.3", - "sha2 0.9.5", + "rand 0.8.4", + "sha2 0.9.8", "snow", "static_assertions", "x25519-dalek", @@ -3728,11 +3693,11 @@ dependencies = [ [[package]] name = "libp2p-ping" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4bfaffac63bf3c7ec11ed9d8879d455966ddea7e78ee14737f0b6dce0d1cd1" +checksum = "2482cfd9eb0b7a0baaf3e7b329dc4f2785181a161b1a47b7192f8d758f54a439" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "libp2p-core", "libp2p-swarm", "log", @@ -3743,13 +3708,13 @@ dependencies = [ [[package]] name = "libp2p-plaintext" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8c37b4d2a075b4be8442760a5f8c037180f0c8dd5b5734b9978ab868b3aa11" +checksum = "13b4783e5423870b9a5c199f65a7a3bc66d86ab56b2b9beebf3c338d889cf8e4" dependencies = [ "asynchronous-codec 0.6.0", - "bytes 1.0.1", - "futures 0.3.16", + "bytes 1.1.0", + "futures 0.3.17", "libp2p-core", "log", "prost", @@ -3760,11 +3725,11 @@ dependencies = [ [[package]] name = "libp2p-pnet" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce3374f3b28162db9d3442c9347c4f14cb01e8290052615c7d341d40eae0599" +checksum = "07cb4dd4b917e5b40ddefe49b96b07adcd8d342e0317011d175b7b2bb1dcc974" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "log", "pin-project 1.0.8", "rand 0.7.3", @@ -3774,13 +3739,13 @@ dependencies = [ [[package]] name = "libp2p-relay" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8786aca3f18671d8776289706a5521f6c9124a820f69e358de214b9939440d" +checksum = "0133f6cfd81cdc16e716de2982e012c62e6b9d4f12e41967b3ee361051c622aa" dependencies = [ "asynchronous-codec 0.6.0", - "bytes 1.0.1", - "futures 0.3.16", + "bytes 1.1.0", + "futures 0.3.17", "futures-timer 3.0.2", "libp2p-core", "libp2p-swarm", @@ -3797,13 +3762,13 @@ dependencies = [ [[package]] name = "libp2p-request-response" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cdbe172f08e6d0f95fa8634e273d4c4268c4063de2e33e7435194b0130c62e3" +checksum = "06cdae44b6821466123af93cbcdec7c9e6ba9534a8af9cdc296446d39416d241" dependencies = [ "async-trait", - "bytes 1.0.1", - "futures 0.3.16", + "bytes 1.1.0", + "futures 0.3.17", "libp2p-core", "libp2p-swarm", "log", @@ -3817,12 +3782,12 @@ dependencies = [ [[package]] name = "libp2p-swarm" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e04d8e1eef675029ec728ba14e8d0da7975d84b6679b699b4ae91a1de9c3a92" +checksum = "7083861341e1555467863b4cd802bea1e8c4787c0f7b5110097d0f1f3248f9a9" dependencies = [ "either", - "futures 0.3.16", + "futures 0.3.17", "libp2p-core", "log", "rand 0.7.3", @@ -3833,9 +3798,9 @@ dependencies = [ [[package]] name = "libp2p-swarm-derive" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "365b0a699fea5168676840567582a012ea297b1ca02eee467e58301b9c9c5eed" +checksum = "ab8cb308d4fc854869f5abb54fdab0833d2cf670d407c745849dc47e6e08d79c" dependencies = [ "quote", "syn", @@ -3843,40 +3808,40 @@ dependencies = [ [[package]] name = "libp2p-tcp" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b1a27d21c477951799e99d5c105d78868258502ce092988040a808d5a19bbd9" +checksum = "79edd26b6b4bb5feee210dcda562dca186940dfecb0024b979c3f50824b3bf28" dependencies = [ "async-io", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "if-watch", "ipnet", "libc", "libp2p-core", "log", - "socket2 0.4.1", + "socket2 0.4.2", ] [[package]] name = "libp2p-uds" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffd6564bb3b7ff203661ccbb69003c2b551e34cef974f2d6c6a28306a12170b5" +checksum = "280e793440dd4e9f273d714f4497325c72cddb0fe85a49f9a03c88f41dd20182" dependencies = [ "async-std", - "futures 0.3.16", + "futures 0.3.17", "libp2p-core", "log", ] [[package]] name = "libp2p-wasm-ext" -version = "0.28.2" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d413e4cf9b8e5dfbcd2a60d3dc5a3391308bdb463684093d4f67137b7113de" +checksum = "f553b7140fad3d7a76f50497b0ea591e26737d9607428a75509fc191e4d1b1f6" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "js-sys", "libp2p-core", "parity-send-wrapper", @@ -3886,12 +3851,12 @@ dependencies = [ [[package]] name = "libp2p-websocket" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cace60995ef6f637e4752cccbb2590f6bc358e8741a0d066307636c69a4b3a74" +checksum = "ddf99dcbf5063e9d59087f61b1e85c686ceab2f5abedb472d32288065c0e5e27" dependencies = [ "either", - "futures 0.3.16", + "futures 0.3.17", "futures-rustls", "libp2p-core", "log", @@ -3904,13 +3869,13 @@ dependencies = [ [[package]] name = "libp2p-yamux" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f35da42cfc6d5cb0dcf3ad6881bc68d146cdf38f98655e09e33fbba4d13eabc4" +checksum = "214cc0dd9c37cbed27f0bb1eba0c41bbafdb93a8be5e9d6ae1e6b4b42cd044bf" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "libp2p-core", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "thiserror", "yamux", ] @@ -3929,17 +3894,20 @@ dependencies = [ [[package]] name = "libsecp256k1" -version = "0.3.5" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc1e2c808481a63dc6da2074752fdd4336a3c8fcc68b83db6f1fd5224ae7962" +checksum = "bd1137239ab33b41aa9637a88a28249e5e70c40a42ccc92db7f12cc356c1fcd7" dependencies = [ "arrayref", - "crunchy", - "digest 0.8.1", + "base64 0.12.3", + "digest 0.9.0", "hmac-drbg", + "libsecp256k1-core", + "libsecp256k1-gen-ecmult", + "libsecp256k1-gen-genmult", "rand 0.7.3", - "sha2 0.8.2", - "subtle 2.4.1", + "serde", + "sha2 0.9.8", "typenum", ] @@ -3952,12 +3920,14 @@ dependencies = [ "arrayref", "base64 0.12.3", "digest 0.9.0", + "hmac-drbg", "libsecp256k1-core", "libsecp256k1-gen-ecmult", "libsecp256k1-gen-genmult", "rand 0.7.3", "serde", - "sha2 0.9.5", + "sha2 0.9.8", + "typenum", ] [[package]] @@ -3968,7 +3938,7 @@ checksum = "d0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80" dependencies = [ "crunchy", "digest 0.9.0", - "subtle 2.4.1", + "subtle", ] [[package]] @@ -4017,9 +3987,9 @@ dependencies = [ [[package]] name = "linregress" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e6e407dadb4ca4b31bc69c27aff00e7ca4534fdcee855159b039a7cebb5f395" +checksum = "d6c601a85f5ecd1aba625247bca0031585fb1c446461b142878a16f8245ddeb8" dependencies = [ "nalgebra", "statrs", @@ -4036,9 +4006,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0382880606dff6d15c9476c416d18690b72742aa7b605bb6dd6ec9030fbf07eb" +checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109" dependencies = [ "scopeguard", ] @@ -4195,11 +4165,11 @@ dependencies = [ [[package]] name = "metered-channel" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "derive_more", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", ] @@ -4209,7 +4179,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c023c3f16109e7f33aa451f773fd61070e265b4977d0b6e344a51049296dd7df" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "rand 0.7.3", "thrift", ] @@ -4325,6 +4295,24 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0debeb9fcf88823ea64d64e4a815ab1643f33127d995978e099942ce38f25238" +[[package]] +name = "multiaddr" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48ee4ea82141951ac6379f964f71b20876d43712bea8faf6dd1a375e08a46499" +dependencies = [ + "arrayref", + "bs58", + "byteorder", + "data-encoding", + "multihash 0.14.0", + "percent-encoding 2.1.0", + "serde", + "static_assertions", + "unsigned-varint 0.7.0", + "url 2.2.2", +] + [[package]] name = "multibase" version = "0.8.0" @@ -4348,18 +4336,31 @@ dependencies = [ "digest 0.9.0", "generic-array 0.14.4", "multihash-derive", - "sha2 0.9.5", + "sha2 0.9.8", "sha3", "unsigned-varint 0.5.1", ] +[[package]] +name = "multihash" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "752a61cd890ff691b4411423d23816d5866dd5621e4d1c5687a53b94b5a979d8" +dependencies = [ + "digest 0.9.0", + "generic-array 0.14.4", + "multihash-derive", + "sha2 0.9.8", + "unsigned-varint 0.7.0", +] + [[package]] name = "multihash-derive" version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "424f6e86263cd5294cbd7f1e95746b95aca0e0d66bff31e5a40d6baa87b4aa99" dependencies = [ - "proc-macro-crate 1.0.0", + "proc-macro-crate 1.1.0", "proc-macro-error 1.0.4", "proc-macro2", "quote", @@ -4379,8 +4380,8 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d91ec0a2440aaff5f78ec35631a7027d50386c6163aa975f7caa0d5da4b6ff8" dependencies = [ - "bytes 1.0.1", - "futures 0.3.16", + "bytes 1.1.0", + "futures 0.3.17", "log", "pin-project 1.0.8", "smallvec 1.6.1", @@ -4545,9 +4546,9 @@ dependencies = [ [[package]] name = "object" -version = "0.26.0" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c55827317fb4c08822499848a14237d2874d6f139828893017237e7ab93eb386" +checksum = "39f37e50073ccad23b6d09bcb5b263f4e76d3bb6038e4a3c08e52162ffa8abc2" dependencies = [ "memchr", ] @@ -4558,7 +4559,7 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" dependencies = [ - "parking_lot 0.11.1", + "parking_lot 0.11.2", ] [[package]] @@ -4600,7 +4601,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -4616,7 +4617,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -4631,7 +4632,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -4645,7 +4646,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-benchmarking", "frame-support", @@ -4668,7 +4669,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-benchmarking", "frame-support", @@ -4682,14 +4683,14 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.9#f40c0ab7b327e874d5c8d699bfa5d762f1759ee0" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.10#9954b61657dc8899a21b4f2501ee6bd3b7a2dc23" dependencies = [ "beefy-primitives", "frame-support", "frame-system", "pallet-session", "parity-scale-codec", - "scale-info", + "scale-info 0.10.0", "serde", "sp-runtime", "sp-std", @@ -4698,7 +4699,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.9#f40c0ab7b327e874d5c8d699bfa5d762f1759ee0" +source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.10#9954b61657dc8899a21b4f2501ee6bd3b7a2dc23" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -4712,7 +4713,7 @@ dependencies = [ "pallet-mmr-primitives", "pallet-session", "parity-scale-codec", - "scale-info", + "scale-info 0.10.0", "serde", "sp-core", "sp-io", @@ -4723,7 +4724,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -4736,7 +4737,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -4751,7 +4752,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-benchmarking", "frame-support", @@ -4766,7 +4767,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4785,7 +4786,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -4801,7 +4802,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-benchmarking", "frame-support", @@ -4823,7 +4824,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4838,7 +4839,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -4856,7 +4857,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -4871,7 +4872,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-benchmarking", "frame-support", @@ -4886,7 +4887,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -4903,7 +4904,7 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -4919,7 +4920,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4937,7 +4938,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -4951,7 +4952,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -4964,7 +4965,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -4980,7 +4981,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -4994,7 +4995,7 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -5007,7 +5008,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-benchmarking", "frame-support", @@ -5022,7 +5023,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -5042,7 +5043,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-election-provider-support", "frame-support", @@ -5064,9 +5065,9 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ - "proc-macro-crate 1.0.0", + "proc-macro-crate 1.1.0", "proc-macro2", "quote", "syn", @@ -5075,7 +5076,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -5102,7 +5103,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-benchmarking", "frame-support", @@ -5120,7 +5121,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -5134,7 +5135,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -5150,7 +5151,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5167,7 +5168,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5178,7 +5179,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -5193,7 +5194,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-support", "frame-system", @@ -5207,7 +5208,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "enumflags2", "frame-support", @@ -5219,8 +5220,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "frame-support", "frame-system", @@ -5296,7 +5297,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.9#fd80849dde5c209c20a996cfcc5aaacd4666dcbe" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -5368,33 +5369,15 @@ dependencies = [ "libc", "log", "memmap2", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "rand 0.8.4", ] -[[package]] -name = "parity-multiaddr" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58341485071825827b7f03cf7efd1cb21e6a709bea778fb50227fd45d2f361b4" -dependencies = [ - "arrayref", - "bs58", - "byteorder", - "data-encoding", - "multihash", - "percent-encoding 2.1.0", - "serde", - "static_assertions", - "unsigned-varint 0.7.0", - "url 2.2.2", -] - [[package]] name = "parity-scale-codec" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8975095a2a03bbbdc70a74ab11a4f76a6d0b84680d87c68d722531b0ac28e8a9" +checksum = "e11263a97373b43da4b426edbb52ef99a7b51e2d9752ef56a7f8b356f48495a5" dependencies = [ "arrayvec 0.7.1", "bitvec 0.20.4", @@ -5406,11 +5389,11 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40dbbfef7f0a1143c5b06e0d76a6278e25dac0bc1af4be51a0fbb73f07e7ad09" +checksum = "b157dc92b3db2bae522afb31b3843e91ae097eb01d66c72dda66a2e86bc3ca14" dependencies = [ - "proc-macro-crate 1.0.0", + "proc-macro-crate 1.1.0", "proc-macro2", "quote", "syn", @@ -5443,9 +5426,9 @@ dependencies = [ [[package]] name = "parity-util-mem" -version = "0.10.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ad6f1acec69b95caf435bbd158d486e5a0a44fcf51531e84922c59ff09e8457" +checksum = "6f4cb4e169446179cbc6b8b6320cc9fca49bd2e94e8db25f25f200a8ea774770" dependencies = [ "cfg-if 1.0.0", "ethereum-types", @@ -5453,7 +5436,7 @@ dependencies = [ "impl-trait-for-tuples", "lru", "parity-util-mem-derive", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "primitive-types", "smallvec 1.6.1", "winapi 0.3.9", @@ -5532,13 +5515,13 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" dependencies = [ "instant", - "lock_api 0.4.4", - "parking_lot_core 0.8.3", + "lock_api 0.4.5", + "parking_lot_core 0.8.5", ] [[package]] @@ -5572,9 +5555,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018" +checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" dependencies = [ "cfg-if 1.0.0", "instant", @@ -5592,21 +5575,20 @@ checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" [[package]] name = "pbkdf2" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9" +checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd" dependencies = [ - "byteorder", - "crypto-mac 0.7.0", + "crypto-mac 0.8.0", ] [[package]] name = "pbkdf2" -version = "0.4.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd" +checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" dependencies = [ - "crypto-mac 0.8.0", + "crypto-mac 0.11.1", ] [[package]] @@ -5746,9 +5728,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" +checksum = "7c9b1041b4387893b91ee6746cddfc28516aff326a3519fb2adf820932c5e6cb" [[package]] name = "platforms" @@ -5758,10 +5740,10 @@ checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325" [[package]] name = "polkadot-approval-distribution" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -5772,10 +5754,10 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -5785,10 +5767,11 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ - "futures 0.3.16", + "derive_more", + "futures 0.3.17", "lru", "parity-scale-codec", "polkadot-erasure-coding", @@ -5808,10 +5791,10 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "lru", "parity-scale-codec", "polkadot-erasure-coding", @@ -5827,11 +5810,11 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "frame-benchmarking-cli", - "futures 0.3.16", + "futures 0.3.17", "log", "polkadot-node-core-pvf", "polkadot-service", @@ -5847,8 +5830,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -5877,11 +5860,12 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "always-assert", - "futures 0.3.16", + "derive_more", + "futures 0.3.17", "futures-timer 3.0.2", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -5897,8 +5881,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -5909,10 +5893,11 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ - "futures 0.3.16", + "derive_more", + "futures 0.3.17", "lru", "parity-scale-codec", "polkadot-erasure-coding", @@ -5933,8 +5918,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -5947,10 +5932,10 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -5965,13 +5950,13 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "async-trait", - "futures 0.3.16", + "futures 0.3.17", "parity-scale-codec", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -5979,16 +5964,15 @@ dependencies = [ "polkadot-primitives", "sc-network", "sp-consensus", - "strum", "tracing", ] [[package]] name = "polkadot-node-collation-generation" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-primitives", @@ -6003,12 +5987,12 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "bitvec 0.20.4", "derive_more", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "kvdb", "lru", @@ -6033,11 +6017,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "bitvec 0.20.4", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "kvdb", "parity-scale-codec", @@ -6053,11 +6037,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "bitvec 0.20.4", - "futures 0.3.16", + "futures 0.3.17", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -6071,10 +6055,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -6086,11 +6070,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "async-trait", - "futures 0.3.16", + "futures 0.3.17", "parity-scale-codec", "polkadot-node-core-pvf", "polkadot-node-primitives", @@ -6104,10 +6088,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -6119,10 +6103,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "kvdb", "parity-scale-codec", @@ -6136,12 +6120,12 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "bitvec 0.20.4", "derive_more", - "futures 0.3.16", + "futures 0.3.17", "kvdb", "parity-scale-codec", "polkadot-node-primitives", @@ -6155,10 +6139,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-participation" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-primitives", @@ -6168,11 +6152,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "async-trait", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "polkadot-node-subsystem", "polkadot-primitives", @@ -6185,11 +6169,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "bitvec 0.20.4", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -6200,14 +6184,14 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "always-assert", "assert_matches", "async-process", "async-std", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "libc", "parity-scale-codec", @@ -6230,10 +6214,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "memory-lru", "parity-util-mem", "polkadot-node-subsystem", @@ -6248,15 +6232,15 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "async-std", "lazy_static", "log", "mick-jaeger", "parity-scale-codec", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "polkadot-node-primitives", "polkadot-primitives", "sc-network", @@ -6266,11 +6250,11 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "async-trait", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "metered-channel", "sc-network", @@ -6282,11 +6266,12 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "async-trait", - "futures 0.3.16", + "derive_more", + "futures 0.3.17", "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", @@ -6299,10 +6284,10 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", @@ -6323,8 +6308,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -6333,19 +6318,19 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "async-std", "async-trait", "derive_more", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "lazy_static", "log", "mick-jaeger", "parity-scale-codec", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "pin-project 1.0.8", "polkadot-node-jaeger", "polkadot-node-network-protocol", @@ -6363,13 +6348,14 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "async-trait", - "futures 0.3.16", + "derive_more", + "futures 0.3.17", "futures-timer 3.0.2", - "itertools 0.10.1", + "itertools", "lru", "metered-channel", "parity-scale-codec", @@ -6393,14 +6379,14 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "async-trait", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "lru", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -6415,8 +6401,8 @@ dependencies = [ [[package]] name = "polkadot-overseer-all-subsystems-gen" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "assert_matches", "proc-macro2", @@ -6426,11 +6412,11 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "async-trait", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "metered-channel", "pin-project 1.0.8", @@ -6443,10 +6429,10 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen-proc-macro" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ - "proc-macro-crate 1.0.0", + "proc-macro-crate 1.1.0", "proc-macro2", "quote", "syn", @@ -6454,8 +6440,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "derive_more", "frame-support", @@ -6470,8 +6456,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "bitvec 0.20.4", "frame-system", @@ -6500,8 +6486,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -6533,8 +6519,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "beefy-primitives", "bitvec 0.20.4", @@ -6603,8 +6589,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "bitvec 0.20.4", "frame-support", @@ -6644,8 +6630,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "bitflags", "bitvec 0.20.4", @@ -6682,14 +6668,14 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "async-trait", "beefy-gadget", "beefy-primitives", "frame-system-rpc-runtime-api", - "futures 0.3.16", + "futures 0.3.17", "hex-literal", "kvdb", "kvdb-rocksdb", @@ -6720,6 +6706,7 @@ dependencies = [ "polkadot-node-core-parachains-inherent", "polkadot-node-core-provisioner", "polkadot-node-core-runtime-api", + "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -6775,11 +6762,12 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "arrayvec 0.5.2", - "futures 0.3.16", + "derive_more", + "futures 0.3.17", "indexmap", "parity-scale-codec", "polkadot-node-network-protocol", @@ -6787,7 +6775,6 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sc-network", "sp-keystore", "sp-staking", "thiserror", @@ -6796,8 +6783,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -6806,8 +6793,8 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "beefy-primitives", "bitvec 0.20.4", @@ -6866,13 +6853,13 @@ dependencies = [ [[package]] name = "polkadot-test-service" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "frame-benchmarking", "frame-system", "futures 0.1.31", - "futures 0.3.16", + "futures 0.3.17", "hex", "pallet-balances", "pallet-staking", @@ -6931,21 +6918,23 @@ dependencies = [ [[package]] name = "poly1305" -version = "0.6.2" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b7456bc1ad2d4cf82b3a016be4c2ac48daf11bf990c1603ebd447fe6f30fca8" +checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" dependencies = [ - "cpuid-bool", + "cpufeatures", + "opaque-debug 0.3.0", "universal-hash", ] [[package]] name = "polyval" -version = "0.4.5" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eebcc4aa140b9abd2bc40d9c3f7ccec842679cd79045ac3a7ac698c1a064b7cd" +checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" dependencies = [ - "cpuid-bool", + "cfg-if 1.0.0", + "cpufeatures", "opaque-debug 0.3.0", "universal-hash", ] @@ -6980,9 +6969,9 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fdbd1df62156fbc5945f4762632564d7d038153091c3fcf1067f6aef7cff92" +checksum = "1ebace6889caf889b4d3f76becee12e90353f2b8c7d875534a71e5742f8f6f83" dependencies = [ "thiserror", "toml", @@ -7052,9 +7041,9 @@ checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" [[package]] name = "proc-macro2" -version = "1.0.28" +version = "1.0.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c7ed8b8c7b886ea3ed7dde405212185f423ab44682667c8c6dd14aa1d9f6612" +checksum = "b9f5105d4fdaab20335ca9565e106a5d9b82b6219b5ba735731124ac6711d23d" dependencies = [ "unicode-xid", ] @@ -7068,30 +7057,30 @@ dependencies = [ "cfg-if 1.0.0", "fnv", "lazy_static", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "regex", "thiserror", ] [[package]] name = "prost" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e6984d2f1a23009bd270b8bb56d0926810a3d483f59c987d77969e9d8e840b2" +checksum = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020" dependencies = [ - "bytes 1.0.1", + "bytes 1.1.0", "prost-derive", ] [[package]] name = "prost-build" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32d3ebd75ac2679c2af3a92246639f9fcc8a442ee420719cc4fe195b98dd5fa3" +checksum = "355f634b43cdd80724ee7848f95770e7e70eefa6dcf14fea676216573b8fd603" dependencies = [ - "bytes 1.0.1", + "bytes 1.1.0", "heck", - "itertools 0.9.0", + "itertools", "log", "multimap", "petgraph", @@ -7103,12 +7092,12 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "169a15f3008ecb5160cba7d37bcd690a7601b6d30cfb87a117d45e59d52af5d4" +checksum = "600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efba" dependencies = [ "anyhow", - "itertools 0.9.0", + "itertools", "proc-macro2", "quote", "syn", @@ -7116,28 +7105,28 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b518d7cdd93dab1d1122cf07fa9a60771836c668dde9d9e2a139f957f0d9f1bb" +checksum = "603bbd6394701d13f3f25aada59c7de9d35a6a5887cfc156181234a44002771b" dependencies = [ - "bytes 1.0.1", + "bytes 1.1.0", "prost", ] [[package]] name = "psm" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0617ee61163b5d941d804065ce49040967610a4d4278fae73e096a057b01d358" +checksum = "cd136ff4382c4753fc061cb9e4712ab2af263376b95bbd5bd8cd50c020b78e69" dependencies = [ "cc", ] [[package]] name = "pwasm-utils" -version = "0.18.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c1a2f10b47d446372a4f397c58b329aaea72b2daf9395a623a411cb8ccb54f" +checksum = "880b3384fb00b8f6ecccd5d358b93bd2201900ae3daad213791d1864f6441f5c" dependencies = [ "byteorder", "log", @@ -7292,9 +7281,9 @@ dependencies = [ [[package]] name = "rand_distr" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "051b398806e42b9cd04ad9ec8f81e355d0a382c543ac6672c62f5a5b452ef142" +checksum = "964d548f8e7d12e102ef183a0de7e98180c9f8729f555897a857b96e48122d2f" dependencies = [ "num-traits", "rand 0.8.4", @@ -7400,7 +7389,7 @@ checksum = "3bd8f48b2066e9f69ab192797d66da804d1935bf22763204ed3675740cb0f221" dependencies = [ "derive_more", "fs-err", - "itertools 0.10.1", + "itertools", "static_init", "thiserror", ] @@ -7478,7 +7467,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "env_logger 0.8.4", "hex", @@ -7514,9 +7503,9 @@ dependencies = [ [[package]] name = "retain_mut" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9c17925a9027d298a4603d286befe3f9dc0e8ed02523141914eb628798d6e5b" +checksum = "448296241d034b96c11173591deaa1302f2c17b56092106c1f92c1bc0183a8c9" [[package]] name = "ring" @@ -7539,7 +7528,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "999508abb0ae792aabed2460c45b89106d97fe4adac593bdaef433c2605847b5" dependencies = [ - "bytes 1.0.1", + "bytes 1.1.0", "rustc-hex", ] @@ -7565,9 +7554,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.20" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dead70b0b5e03e9c814bcb6b01e03e68f7c57a80aa48c72ec92152ab3e818d49" +checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" [[package]] name = "rustc-hash" @@ -7646,7 +7635,7 @@ dependencies = [ "openssl-probe", "rustls 0.19.1", "schannel", - "security-framework 2.3.1", + "security-framework 2.4.2", ] [[package]] @@ -7665,7 +7654,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "pin-project 0.4.28", "static_assertions", ] @@ -7687,9 +7676,9 @@ dependencies = [ [[package]] name = "salsa20" -version = "0.7.2" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "399f290ffc409596022fce5ea5d4138184be4784f2b28c62c59f0d8389059a15" +checksum = "ecbd2eb639fd7cab5804a0837fe373cc2172d15437e804c054a9fb885cb923b0" dependencies = [ "cipher", ] @@ -7706,7 +7695,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "log", "sp-core", @@ -7717,12 +7706,12 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "async-trait", "derive_more", "either", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "ip_network", "libp2p", @@ -7746,9 +7735,9 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -7769,7 +7758,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7785,7 +7774,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7801,9 +7790,9 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ - "proc-macro-crate 1.0.0", + "proc-macro-crate 1.1.0", "proc-macro2", "quote", "syn", @@ -7812,11 +7801,11 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "chrono", "fdlimit", - "futures 0.3.16", + "futures 0.3.17", "hex", "libp2p", "log", @@ -7850,17 +7839,17 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "derive_more", "fnv", - "futures 0.3.16", + "futures 0.3.17", "hash-db", "kvdb", "lazy_static", "log", "parity-scale-codec", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "sc-executor", "sc-transaction-pool-api", "sp-api", @@ -7884,7 +7873,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "blake2-rfc", "hash-db", @@ -7896,7 +7885,7 @@ dependencies = [ "parity-db", "parity-scale-codec", "parity-util-mem", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "sc-client-api", "sc-executor", "sc-state-db", @@ -7913,14 +7902,14 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "async-trait", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "libp2p", "log", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "sc-client-api", "serde", "sp-api", @@ -7938,11 +7927,11 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "async-trait", "derive_more", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -7970,12 +7959,12 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "async-trait", "derive_more", "fork-tree", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "log", "merlin", @@ -7983,7 +7972,7 @@ dependencies = [ "num-rational 0.2.4", "num-traits", "parity-scale-codec", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "pdqselect", "rand 0.7.3", "retain_mut", @@ -8017,10 +8006,10 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "derive_more", - "futures 0.3.16", + "futures 0.3.17", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -8041,7 +8030,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8054,10 +8043,10 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "async-trait", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "impl-trait-for-tuples", "log", @@ -8083,7 +8072,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "sc-client-api", "sp-authorship", @@ -8094,15 +8083,15 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "derive_more", "lazy_static", - "libsecp256k1 0.3.5", + "libsecp256k1 0.6.0", "log", "parity-scale-codec", "parity-wasm 0.42.2", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "sc-executor-common", "sc-executor-wasmi", "sc-executor-wasmtime", @@ -8123,7 +8112,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "derive_more", "parity-scale-codec", @@ -8140,7 +8129,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "log", "parity-scale-codec", @@ -8155,7 +8144,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "cfg-if 1.0.0", "libc", @@ -8175,19 +8164,19 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "async-trait", "derive_more", "dyn-clone", "finality-grandpa", "fork-tree", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "linked-hash-map", "log", "parity-scale-codec", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "pin-project 1.0.8", "rand 0.8.4", "sc-block-builder", @@ -8216,11 +8205,11 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "derive_more", "finality-grandpa", - "futures 0.3.16", + "futures 0.3.17", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -8240,10 +8229,10 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "ansi_term 0.12.1", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "log", "parity-util-mem", @@ -8258,32 +8247,32 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "async-trait", "derive_more", - "futures 0.3.16", + "futures 0.3.17", "futures-util", "hex", "merlin", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "rand 0.7.3", "serde_json", "sp-application-crypto", "sp-core", "sp-keystore", - "subtle 2.4.1", + "subtle", ] [[package]] name = "sc-light" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "hash-db", "lazy_static", "parity-scale-codec", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "sc-client-api", "sc-executor", "sp-api", @@ -8297,21 +8286,21 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "async-std", "async-trait", "asynchronous-codec 0.5.0", "bitflags", "bs58", - "bytes 1.0.1", + "bytes 1.1.0", "cid", "derive_more", "either", "erased-serde", "fnv", "fork-tree", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "hex", "ip_network", @@ -8322,7 +8311,7 @@ dependencies = [ "lru", "nohash-hasher", "parity-scale-codec", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "pin-project 1.0.8", "prost", "prost-build", @@ -8352,9 +8341,9 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "libp2p", "log", @@ -8369,11 +8358,11 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "bytes 0.5.6", "fnv", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "hex", "hyper 0.13.10", @@ -8381,7 +8370,7 @@ dependencies = [ "log", "num_cpus", "parity-scale-codec", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "rand 0.7.3", "sc-client-api", "sc-keystore", @@ -8397,9 +8386,9 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "libp2p", "log", "serde_json", @@ -8410,7 +8399,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8419,15 +8408,15 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "hash-db", "jsonrpc-core", "jsonrpc-pubsub", "log", "parity-scale-codec", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -8454,17 +8443,17 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "derive_more", - "futures 0.3.16", + "futures 0.3.17", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", "jsonrpc-pubsub", "log", "parity-scale-codec", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "sc-chain-spec", "sc-transaction-pool-api", "serde", @@ -8479,7 +8468,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "futures 0.1.31", "jsonrpc-core", @@ -8497,13 +8486,13 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "async-trait", "directories", "exit-future", "futures 0.1.31", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "hash-db", "jsonrpc-core", @@ -8512,7 +8501,7 @@ dependencies = [ "log", "parity-scale-codec", "parity-util-mem", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "pin-project 1.0.8", "rand 0.7.3", "sc-block-builder", @@ -8565,13 +8554,13 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "log", "parity-scale-codec", "parity-util-mem", "parity-util-mem-derive", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "sc-client-api", "sp-core", "thiserror", @@ -8580,7 +8569,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -8602,13 +8591,13 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "chrono", - "futures 0.3.16", + "futures 0.3.17", "libp2p", "log", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "pin-project 1.0.8", "rand 0.7.3", "serde", @@ -8622,7 +8611,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "ansi_term 0.12.1", "atty", @@ -8630,7 +8619,7 @@ dependencies = [ "lazy_static", "log", "once_cell", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "regex", "rustc-hash", "sc-client-api", @@ -8659,9 +8648,9 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ - "proc-macro-crate 1.0.0", + "proc-macro-crate 1.1.0", "proc-macro2", "quote", "syn", @@ -8670,16 +8659,16 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "derive_more", - "futures 0.3.16", + "futures 0.3.17", "intervalier", "linked-hash-map", "log", "parity-scale-codec", "parity-util-mem", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "retain_mut", "sc-client-api", "sc-transaction-pool-api", @@ -8699,10 +8688,10 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "derive_more", - "futures 0.3.16", + "futures 0.3.17", "log", "parity-scale-codec", "serde", @@ -8721,7 +8710,20 @@ dependencies = [ "cfg-if 1.0.0", "derive_more", "parity-scale-codec", - "scale-info-derive", + "scale-info-derive 0.7.0", +] + +[[package]] +name = "scale-info" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c55b744399c25532d63a0d2789b109df8d46fc93752d46b0782991a931a782f" +dependencies = [ + "bitvec 0.20.4", + "cfg-if 1.0.0", + "derive_more", + "parity-scale-codec", + "scale-info-derive 1.0.0", ] [[package]] @@ -8730,7 +8732,19 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b648fa291891a4c80187a25532f6a7d96b82c70353e30b868b14632b8fe043d6" dependencies = [ - "proc-macro-crate 1.0.0", + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "scale-info-derive" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baeb2780690380592f86205aa4ee49815feb2acad8c2f59e6dd207148c3f1fcd" +dependencies = [ + "proc-macro-crate 1.1.0", "proc-macro2", "quote", "syn", @@ -8760,7 +8774,7 @@ dependencies = [ "rand 0.7.3", "rand_core 0.5.1", "sha2 0.8.2", - "subtle 2.4.1", + "subtle", "zeroize", ] @@ -8810,15 +8824,15 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.3.1" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23a2ac85147a3a11d77ecf1bc7166ec0b92febfa4461c37944e180f319ece467" +checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87" dependencies = [ "bitflags", "core-foundation 0.9.1", "core-foundation-sys 0.8.2", "libc", - "security-framework-sys 2.3.0", + "security-framework-sys 2.4.2", ] [[package]] @@ -8833,9 +8847,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.3.0" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e4effb91b4b8b6fb7732e670b6cee160278ff8e6bf485c7805d9e319d76e284" +checksum = "a9dd14d83160b528b7bfd66439110573efcfbe281b17fc2ca9f39f550d619c7e" dependencies = [ "core-foundation-sys 0.8.2", "libc", @@ -8886,18 +8900,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.127" +version = "1.0.130" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f03b9878abf6d14e6779d3f24f07b2cfa90352cfec4acc5aab8f1ac7f146fae8" +checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.127" +version = "1.0.130" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a024926d3432516606328597e0f224a51355a493b49fdd67e9209187cbe55ecc" +checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b" dependencies = [ "proc-macro2", "quote", @@ -8906,9 +8920,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.66" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "336b10da19a12ad094b59d870ebde26a45402e5b470add4b5fd03c5048a32127" +checksum = "0f690853975602e1bfe1ccbf50504d67174e3bcf340f23b5ea9992e0587a52d8" dependencies = [ "itoa", "ryu", @@ -8929,9 +8943,9 @@ dependencies = [ [[package]] name = "sha-1" -version = "0.9.7" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a0c8611594e2ab4ebbf06ec7cbbf0a99450b8570e96cbf5188b5d5f6ef18d81" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" dependencies = [ "block-buffer 0.9.0", "cfg-if 1.0.0", @@ -8954,9 +8968,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.9.5" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b362ae5752fd2137731f9fa25fd4d9058af34666ca1966fb969119cc35719f12" +checksum = "b69f9a4c9740d74c5baa3fd2e547f9525fa8088a8a958e0ca2409a514e33f5fa" dependencies = [ "block-buffer 0.9.0", "cfg-if 1.0.0", @@ -8988,15 +9002,15 @@ dependencies = [ [[package]] name = "shlex" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42a568c8f2cd051a4d283bd6eb0343ac214c1b0f1ac19f93e1175b2dee38c73d" +checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" [[package]] name = "signal-hook" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "470c5a6397076fae0094aaf06a08e6ba6f37acb77d3b1b91ea92b4d6c8650c39" +checksum = "9c98891d737e271a2954825ef19e46bd16bdb98e2746f2eec4f7a4ef7946efd1" dependencies = [ "libc", "signal-hook-registry", @@ -9046,8 +9060,8 @@ dependencies = [ [[package]] name = "slot-range-helper" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "enumn", "parity-scale-codec", @@ -9058,9 +9072,9 @@ dependencies = [ [[package]] name = "slotmap" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a952280edbecfb1d4bd3cf2dbc309dc6ab523e53487c438ae21a6df09fe84bc4" +checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" dependencies = [ "version_check", ] @@ -9082,19 +9096,19 @@ checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" [[package]] name = "snow" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "795dd7aeeee24468e5a32661f6d27f7b5cbed802031b2d7640c7b10f8fb2dd50" +checksum = "6142f7c25e94f6fd25a32c3348ec230df9109b463f59c8c7acc4bd34936babb7" dependencies = [ "aes-gcm", "blake2", "chacha20poly1305", - "rand 0.7.3", - "rand_core 0.5.1", + "rand 0.8.4", + "rand_core 0.6.3", "ring", - "rustc_version 0.2.3", - "sha2 0.9.5", - "subtle 2.4.1", + "rustc_version 0.3.3", + "sha2 0.9.8", + "subtle", "x25519-dalek", ] @@ -9111,9 +9125,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "765f090f0e423d2b55843402a07915add955e7d60657db13707a159727326cad" +checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516" dependencies = [ "libc", "winapi 0.3.9", @@ -9128,11 +9142,11 @@ dependencies = [ "base64 0.12.3", "bytes 0.5.6", "flate2", - "futures 0.3.16", + "futures 0.3.17", "httparse", "log", "rand 0.7.3", - "sha-1 0.9.7", + "sha-1 0.9.8", ] [[package]] @@ -9142,18 +9156,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a74e48087dbeed4833785c2f3352b59140095dc192dce966a3bfc155020a439f" dependencies = [ "base64 0.13.0", - "bytes 1.0.1", - "futures 0.3.16", + "bytes 1.1.0", + "futures 0.3.17", "httparse", "log", "rand 0.8.4", - "sha-1 0.9.7", + "sha-1 0.9.8", ] [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "hash-db", "log", @@ -9170,10 +9184,10 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "blake2-rfc", - "proc-macro-crate 1.0.0", + "proc-macro-crate 1.1.0", "proc-macro2", "quote", "syn", @@ -9182,7 +9196,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "parity-scale-codec", "serde", @@ -9194,7 +9208,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "integer-sqrt", "num-traits", @@ -9208,7 +9222,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "parity-scale-codec", "sp-api", @@ -9220,7 +9234,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "async-trait", "parity-scale-codec", @@ -9232,7 +9246,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "parity-scale-codec", "sp-api", @@ -9244,13 +9258,13 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "log", "lru", "parity-scale-codec", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "sp-api", "sp-consensus", "sp-database", @@ -9262,14 +9276,14 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "async-trait", - "futures 0.3.16", + "futures 0.3.17", "futures-timer 3.0.2", "log", "parity-scale-codec", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "serde", "sp-api", "sp-core", @@ -9288,7 +9302,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "async-trait", "parity-scale-codec", @@ -9305,7 +9319,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "async-trait", "merlin", @@ -9327,7 +9341,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "parity-scale-codec", "sp-arithmetic", @@ -9337,7 +9351,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -9349,33 +9363,33 @@ dependencies = [ [[package]] name = "sp-core" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "base58", "blake2-rfc", "byteorder", "dyn-clonable", "ed25519-dalek", - "futures 0.3.16", + "futures 0.3.17", "hash-db", "hash256-std-hasher", "hex", "impl-serde", "lazy_static", - "libsecp256k1 0.3.5", + "libsecp256k1 0.6.0", "log", "merlin", "num-traits", "parity-scale-codec", "parity-util-mem", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "primitive-types", "rand 0.7.3", "regex", "schnorrkel", "secrecy", "serde", - "sha2 0.9.5", + "sha2 0.9.8", "sp-debug-derive", "sp-externalities", "sp-runtime-interface", @@ -9393,16 +9407,16 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "kvdb", - "parking_lot 0.11.1", + "parking_lot 0.11.2", ] [[package]] name = "sp-debug-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "proc-macro2", "quote", @@ -9412,7 +9426,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "environmental", "parity-scale-codec", @@ -9423,7 +9437,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "finality-grandpa", "log", @@ -9440,7 +9454,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9454,14 +9468,14 @@ dependencies = [ [[package]] name = "sp-io" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "hash-db", - "libsecp256k1 0.3.5", + "libsecp256k1 0.6.0", "log", "parity-scale-codec", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "sp-core", "sp-externalities", "sp-keystore", @@ -9479,7 +9493,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "lazy_static", "sp-core", @@ -9490,14 +9504,14 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "async-trait", "derive_more", - "futures 0.3.16", + "futures 0.3.17", "merlin", "parity-scale-codec", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "schnorrkel", "serde", "sp-core", @@ -9507,7 +9521,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "ruzstd", "zstd", @@ -9516,22 +9530,22 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "parity-scale-codec", "serde", "sp-arithmetic", "sp-core", - "sp-npos-elections-compact", + "sp-npos-elections-solution-type", "sp-std", ] [[package]] -name = "sp-npos-elections-compact" +name = "sp-npos-elections-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ - "proc-macro-crate 1.0.0", + "proc-macro-crate 1.1.0", "proc-macro2", "quote", "syn", @@ -9540,7 +9554,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "sp-api", "sp-core", @@ -9550,7 +9564,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "backtrace", ] @@ -9558,7 +9572,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "rustc-hash", "serde", @@ -9569,7 +9583,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "either", "hash256-std-hasher", @@ -9590,7 +9604,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9607,10 +9621,10 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "Inflector", - "proc-macro-crate 1.0.0", + "proc-macro-crate 1.1.0", "proc-macro2", "quote", "syn", @@ -9619,7 +9633,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "serde", "serde_json", @@ -9628,7 +9642,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "parity-scale-codec", "sp-api", @@ -9641,7 +9655,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "parity-scale-codec", "sp-runtime", @@ -9651,13 +9665,13 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "hash-db", "log", "num-traits", "parity-scale-codec", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "rand 0.7.3", "smallvec 1.6.1", "sp-core", @@ -9674,12 +9688,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" [[package]] name = "sp-storage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9692,7 +9706,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "log", "sp-core", @@ -9705,7 +9719,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "async-trait", "futures-timer 3.0.2", @@ -9722,7 +9736,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "erased-serde", "log", @@ -9740,7 +9754,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "sp-api", "sp-runtime", @@ -9749,7 +9763,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "async-trait", "log", @@ -9764,7 +9778,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "hash-db", "memory-db", @@ -9778,9 +9792,9 @@ dependencies = [ [[package]] name = "sp-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "futures-core", "futures-timer 3.0.2", "lazy_static", @@ -9790,7 +9804,7 @@ dependencies = [ [[package]] name = "sp-version" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9805,10 +9819,10 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "parity-scale-codec", - "proc-macro-crate 1.0.0", + "proc-macro-crate 1.1.0", "proc-macro2", "quote", "syn", @@ -9817,7 +9831,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9851,7 +9865,7 @@ checksum = "11b73400442027c4adedda20a9f9b7945234a5bd8d5f7e86da22bd5d0622369c" dependencies = [ "cfg_aliases", "libc", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "static_init_macro", ] @@ -9881,16 +9895,6 @@ dependencies = [ "rand 0.8.4", ] -[[package]] -name = "stream-cipher" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c80e15f898d8d8f25db24c253ea615cc14acf418ff307822995814e7d42cfa89" -dependencies = [ - "block-cipher", - "generic-array 0.14.4", -] - [[package]] name = "string" version = "0.2.1" @@ -9908,9 +9912,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "structopt" -version = "0.3.22" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69b041cdcb67226aca307e6e7be44c8806423d83e018bd662360a93dabce4d71" +checksum = "bf9d950ef167e25e0bdb073cf1d68e9ad2795ac826f2f3f59647817cf23c0bfa" dependencies = [ "clap", "lazy_static", @@ -9919,9 +9923,9 @@ dependencies = [ [[package]] name = "structopt-derive" -version = "0.4.15" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7813934aecf5f51a54775e00068c237de98489463968231a51746bbbc03f9c10" +checksum = "134d838a2c9943ac3125cf6df165eda53493451b719f3255b2a26b85f772d0ba" dependencies = [ "heck", "proc-macro-error 1.0.4", @@ -9953,21 +9957,21 @@ dependencies = [ [[package]] name = "substrate-bip39" -version = "0.4.2" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bed6646a0159b9935b5d045611560eeef842b78d7adc3ba36f5ca325a13a0236" +checksum = "49eee6965196b32f882dd2ee85a92b1dbead41b04e53907f269de3b0dc04733c" dependencies = [ - "hmac 0.7.1", - "pbkdf2 0.3.0", + "hmac 0.11.0", + "pbkdf2 0.8.0", "schnorrkel", - "sha2 0.8.2", + "sha2 0.9.8", "zeroize", ] [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "platforms", ] @@ -9975,10 +9979,10 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-system-rpc-runtime-api", - "futures 0.3.16", + "futures 0.3.17", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -9998,7 +10002,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "async-std", "derive_more", @@ -10012,11 +10016,11 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "async-trait", "futures 0.1.31", - "futures 0.3.16", + "futures 0.3.17", "hash-db", "hex", "parity-scale-codec", @@ -10041,7 +10045,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "ansi_term 0.12.1", "atty", @@ -10054,12 +10058,6 @@ dependencies = [ "wasm-gc-api", ] -[[package]] -name = "subtle" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" - [[package]] name = "subtle" version = "2.4.1" @@ -10068,9 +10066,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.74" +version = "1.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1873d832550d4588c3dbc20f01361ab00bfe741048f71e3fecf145a7cc18b29c" +checksum = "5239bc68e0fef57495900cfea4e8dc75596d9a319d7e16b1e0a440d24e6fe0a0" dependencies = [ "proc-macro2", "quote", @@ -10152,18 +10150,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.26" +version = "1.0.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93119e4feac1cbe6c798c34d3a53ea0026b0b1de6a120deef895137c0529bfe2" +checksum = "602eca064b2d83369e2b2f34b09c70b605402801927c65c11071ac911d299b88" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.26" +version = "1.0.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "060d69a0afe7796bf42e9e2ff91f5ee691fb15c53d38b4b62a9a53eb23164745" +checksum = "bad553cc2c78e8de258400763a647e80e6d1b31ee237275d756f6836d204494c" dependencies = [ "proc-macro2", "quote", @@ -10214,17 +10212,18 @@ dependencies = [ [[package]] name = "tiny-bip39" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9e44c4759bae7f1032e286a7ef990bd9ed23fe831b7eeba0beb97484c2e59b8" +checksum = "524daa5624d9d4ffb5a0625971d35205b882111daa6b6338a7a6c578a3c36928" dependencies = [ "anyhow", "hmac 0.8.1", "once_cell", + "parking_lot 0.11.2", "pbkdf2 0.4.0", "rand 0.7.3", "rustc-hash", - "sha2 0.9.5", + "sha2 0.9.8", "thiserror", "unicode-normalization", "zeroize", @@ -10241,9 +10240,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.3.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "848a1e1181b9f6753b5e96a092749e29b11d19ede67dfbbd6c7dc7e0f49b5338" +checksum = "f83b2a3d4d9091d0abd7eba4dc2710b1718583bd4d8992e2190720ea38f391f7" dependencies = [ "tinyvec_macros", ] @@ -10303,9 +10302,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.10.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cf844b23c6131f624accf65ce0e4e9956a8bb329400ea5bcc26ae3a5c20b0b" +checksum = "c2c2416fdedca8443ae44b4527de1ea633af61d8f7169ffa6e72c5b53d24efcc" dependencies = [ "autocfg", "pin-project-lite 0.2.7", @@ -10569,9 +10568,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.26" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d" +checksum = "84f96e095c0c82419687c20ddf5cb3eadb61f4e1405923c9dc8e53a1adacbda8" dependencies = [ "cfg-if 1.0.0", "log", @@ -10582,9 +10581,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42e6fa53307c8a17e4ccd4dc81cf5ec38db9209f59b222210375b54ee40d1e2" +checksum = "98863d0dd09fa59a1b79c6750ad80dbda6b75f4e71c437a6a1a8cb91a8bcbd77" dependencies = [ "proc-macro2", "quote", @@ -10593,9 +10592,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ca517f43f0fb96e0c3072ed5c275fe5eece87e8cb52f4a77b69226d3b1c9df8" +checksum = "46125608c26121c81b0c6d693eab5a420e416da7e43c426d2e8f7df8da8a3acf" dependencies = [ "lazy_static", ] @@ -10633,9 +10632,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.2.20" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9cbe87a2fa7e35900ce5de20220a582a9483a7063811defce79d7cbd59d4cfe" +checksum = "fdd0568dbfe3baf7048b7908d2b32bca0d81cd56bec6d2a8f894b01d74f86be3" dependencies = [ "ansi_term 0.12.1", "chrono", @@ -10711,7 +10710,7 @@ dependencies = [ "lazy_static", "log", "lru-cache", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "resolv-conf", "smallvec 1.6.1", "thiserror", @@ -10727,7 +10726,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.9#91061a7d925b5bc597804293da283477512ba4ff" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" dependencies = [ "frame-try-runtime", "log", @@ -10762,9 +10761,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.13.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06" +checksum = "b63708a265f51345575b27fe43f9500ad611579e764c79edbc2037b1121959ec" [[package]] name = "ucd-trie" @@ -10816,9 +10815,9 @@ checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" [[package]] name = "unicode-width" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" [[package]] name = "unicode-xid" @@ -10833,7 +10832,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" dependencies = [ "generic-array 0.14.4", - "subtle 2.4.1", + "subtle", ] [[package]] @@ -10849,7 +10848,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35581ff83d4101e58b582e607120c7f5ffb17e632a980b1f38334d76b36908b2" dependencies = [ "asynchronous-codec 0.5.0", - "bytes 1.0.1", + "bytes 1.1.0", "futures-io", "futures-util", ] @@ -10861,7 +10860,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f8d425fafb8cd76bc3f22aace4af471d3156301d7508f2107e98fbeae10bc7f" dependencies = [ "asynchronous-codec 0.6.0", - "bytes 1.0.1", + "bytes 1.1.0", "futures-io", "futures-util", ] @@ -10981,9 +10980,9 @@ checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" [[package]] name = "wasm-bindgen" -version = "0.2.75" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b608ecc8f4198fe8680e2ed18eccab5f0cd4caaf3d83516fa5fb2e927fda2586" +checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -10991,9 +10990,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.75" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "580aa3a91a63d23aac5b6b267e2d13cb4f363e31dce6c352fca4752ae12e479f" +checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b" dependencies = [ "bumpalo", "lazy_static", @@ -11006,9 +11005,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.25" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16646b21c3add8e13fdb8f20172f8a28c3dbf62f45406bcff0233188226cfe0c" +checksum = "8e8d7523cb1f2a4c96c1317ca690031b714a51cc14e05f712446691f413f5d39" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -11018,9 +11017,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.75" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "171ebf0ed9e1458810dfcb31f2e766ad6b3a89dbda42d8901f2b268277e5f09c" +checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -11028,9 +11027,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.75" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c2657dd393f03aa2a659c25c6ae18a13a4048cebd220e147933ea837efc589f" +checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" dependencies = [ "proc-macro2", "quote", @@ -11041,9 +11040,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.75" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e0c4a743a309662d45f4ede961d7afa4ba4131a59a639f29b0069c3798bbcc2" +checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" [[package]] name = "wasm-gc-api" @@ -11062,9 +11061,9 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "js-sys", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "pin-utils", "wasm-bindgen", "wasm-bindgen-futures", @@ -11073,9 +11072,9 @@ dependencies = [ [[package]] name = "wasmi" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ee05bba3d1d994652079893941a2ef9324d2b58a63c31b40678fb7eddd7a5a" +checksum = "ca00c5147c319a8ec91ec1a0edbec31e566ce2c9cc93b3f9bb86a9efd0eb795d" dependencies = [ "downcast-rs", "libc", @@ -11088,9 +11087,9 @@ dependencies = [ [[package]] name = "wasmi-validation" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb8e860796d8be48efef530b60eebf84e74a88bce107374fffb0da97d504b8" +checksum = "165343ecd6c018fc09ebcae280752702c9a2ef3e6f8d02f1cfcbdb53ef6d7937" dependencies = [ "parity-wasm 0.42.2", ] @@ -11147,7 +11146,7 @@ dependencies = [ "libc", "log", "serde", - "sha2 0.9.5", + "sha2 0.9.8", "toml", "winapi 0.3.9", "zstd", @@ -11292,9 +11291,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.52" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01c70a82d842c9979078c772d4a1344685045f1a5628f677c2b2eab4dd7d2696" +checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb" dependencies = [ "js-sys", "wasm-bindgen", @@ -11415,9 +11414,9 @@ checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" [[package]] name = "x25519-dalek" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f" +checksum = "2392b6b94a576b4e2bf3c5b2757d63f10ada8020a2e4d08ac849ebcf6ea8e077" dependencies = [ "curve25519-dalek 3.2.0", "rand_core 0.5.1", @@ -11426,19 +11425,20 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "derivative", "impl-trait-for-tuples", "log", "parity-scale-codec", + "xcm-procedural", ] [[package]] name = "xcm-builder" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "frame-support", "frame-system", @@ -11456,8 +11456,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.9" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.9#5af7db1894a38ca08e2cd19fd522a229c88646a2" +version = "0.9.10" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -11471,34 +11471,44 @@ dependencies = [ "xcm", ] +[[package]] +name = "xcm-procedural" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "yamux" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7d9028f208dd5e63c614be69f115c1b53cacc1111437d4c765185856666c107" dependencies = [ - "futures 0.3.16", + "futures 0.3.17", "log", "nohash-hasher", - "parking_lot 0.11.1", + "parking_lot 0.11.2", "rand 0.8.4", "static_assertions", ] [[package]] name = "zeroize" -version = "1.4.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "377db0846015f7ae377174787dd452e1c5f5a9050bc6f954911d01f116daa0cd" +checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2c1e130bebaeab2f23886bf9acbaca14b092408c452543c857f66399cd6dab1" +checksum = "bdff2024a851a322b08f179173ae2ba620445aef1e838f0c196820eade4ae0c7" dependencies = [ "proc-macro2", "quote", diff --git a/README.md b/README.md index 58841cea..42f53ca9 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,9 @@ build the cargo build --release ``` +> NOTE: You _must_ use the release builds for parachains! The optimizations here are required +> as in debug mode, it is expected that nodes are not able to run fast enough to produce blocks. + ## Relay Chain > **NOTE**: In the following two sections, we document how to manually start a few relay chain @@ -73,7 +76,7 @@ _single node_ and then shared among all nodes! ### Start Relay Chain -We need *n + 1* full _validator_ nodes running on a relay chain to accept *n* parachain / parathread +We need _n + 1_ full _validator_ nodes running on a relay chain to accept _n_ parachain / parathread connections. Here we will start two relay chain nodes so we can have one parachain node connecting in later. @@ -106,7 +109,7 @@ Add more nodes as needed, with non-conflicting ports, DB directories, and valida ### Reserve a ParaID -To connect to a relay chain, you must first _reserve a `ParaId` for your parathread that will +To connect to a relay chain, you must first \_reserve a `ParaId` for your parathread that will become a parachain. To do this, you will need sufficient amount of currency on the network account to reserve the ID. @@ -245,21 +248,21 @@ Now that you have two relay chain nodes, and a parachain node accompanied with a client running, the next step is to register the parachain in the relay chain with the following steps (for detail, refer to the [Substrate Cumulus Worship](https://substrate.dev/cumulus-workshop/#/en/3-parachains/2-register)): -- Goto [Polkadot Apps UI](https://polkadot.js.org/apps/#/explorer), connecting to your relay chain. +- Goto [Polkadot Apps UI](https://polkadot.js.org/apps/#/explorer), connecting to your relay chain. -- Execute a sudo extrinsic on the relay chain by going to `Developer` -> `sudo` page. +- Execute a sudo extrinsic on the relay chain by going to `Developer` -> `sudo` page. -- Pick `paraSudoWrapper` -> `sudoScheduleParaInitialize(id, genesis)` as the extrinsic type, -shown below. +- Pick `paraSudoWrapper` -> `sudoScheduleParaInitialize(id, genesis)` as the extrinsic type, + shown below. - ![Polkadot Apps UI](docs/assets/ss01.png) + ![Polkadot Apps UI](docs/assets/ss01.png) -- Set the `id: ParaId` to 2,000 (or whatever ParaId you used above), and set the `parachain: Bool` -option to **Yes**. +- Set the `id: ParaId` to 2,000 (or whatever ParaId you used above), and set the `parachain: Bool` + option to **Yes**. -- For the `genesisHead`, drag the genesis state file exported above, `para-2000-genesis`, in. +- For the `genesisHead`, drag the genesis state file exported above, `para-2000-genesis`, in. -- For the `validationCode`, drag the genesis wasm file exported above, `para-2000-wasm`, in. +- For the `validationCode`, drag the genesis wasm file exported above, `para-2000-wasm`, in. > **Note**: When registering to the public Rococo testnet, ensure you set a **unique** `paraId` > larger than 1,000. Values below 1,000 are reserved _exclusively_ for system parachains. @@ -325,10 +328,10 @@ reporting _parachain_ blocks: _Is this Cumulus Parachain Template Rococo & Westend testnets compatible?_ **Yes!** -- **Rococo** is the testnet of Kusama (join the -[Rococo Faucet](https://matrix.to/#/#rococo-faucet:matrix.org) to get testing funds). -- **Westend** is the testnet of Polkadot (join the -[Westend Faucet](https://matrix.to/#/#westend_faucet:matrix.org) to get testing funds). +- **Rococo** is the testnet of Kusama (join the + [Rococo Faucet](https://matrix.to/#/#rococo-faucet:matrix.org) to get testing funds). +- **Westend** is the testnet of Polkadot (join the + [Westend Faucet](https://matrix.to/#/#westend_faucet:matrix.org) to get testing funds). See the [Cumulus Workshop](https://substrate.dev/cumulus-workshop/) for the latest instructions to register a parathread/parachain on a relay chain. @@ -350,9 +353,9 @@ to ask questions and connect with the parachain building teams. ## Learn More -- More detailed instructions to use Cumulus parachains are found in the -[Cumulus Workshop](https://substrate.dev/cumulus-workshop/#/en/3-parachains/2-register). -- Refer to the upstream [Substrate Node Template](https://github.com/substrate-developer-hub/substrate-node-template) -to learn more about the structure of this project, the capabilities it encapsulates and the way in -which those capabilities are implemented. -- Learn more about how a parachain block is added to a finalized chain [here](https://polkadot.network/the-path-of-a-parachain-block/). +- More detailed instructions to use Cumulus parachains are found in the + [Cumulus Workshop](https://substrate.dev/cumulus-workshop/#/en/3-parachains/2-register). +- Refer to the upstream [Substrate Node Template](https://github.com/substrate-developer-hub/substrate-node-template) + to learn more about the structure of this project, the capabilities it encapsulates and the way in + which those capabilities are implemented. +- Learn more about how a parachain block is added to a finalized chain [here](https://polkadot.network/the-path-of-a-parachain-block/). diff --git a/node/Cargo.toml b/node/Cargo.toml index 84b43f93..0feaa771 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -13,7 +13,7 @@ build = 'build.rs' targets = ['x86_64-unknown-linux-gnu'] [build-dependencies] -substrate-build-script-utils = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +substrate-build-script-utils = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } [[bin]] name = 'parachain-collator' @@ -37,58 +37,58 @@ jsonrpc-core = '15.1.0' parachain-runtime = { path = '../runtime' } # Substrate Dependencies -frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -frame-benchmarking-cli = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +frame-benchmarking-cli = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -pallet-transaction-payment-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +pallet-transaction-payment-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -substrate-frame-rpc-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.9" } +substrate-frame-rpc-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.10" } ## Substrate Client Dependencies -sc-basic-authorship = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sc-chain-spec = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sc-cli = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sc-client-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sc-consensus = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sc-executor = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sc-network = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sc-keystore = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sc-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sc-rpc-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sc-service = { git = 'https://github.com/paritytech/substrate', branch = "polkadot-v0.9.9", features = ['wasmtime'] } -sc-telemetry = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sc-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sc-tracing = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sc-basic-authorship = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sc-chain-spec = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sc-cli = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sc-client-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sc-consensus = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sc-executor = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sc-network = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sc-keystore = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sc-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sc-rpc-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sc-service = { git = 'https://github.com/paritytech/substrate', branch = "polkadot-v0.9.10", features = ['wasmtime'] } +sc-telemetry = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sc-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sc-tracing = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } ## Substrate Primitive Dependencies -sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sp-blockchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sp-consensus = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sp-keystore = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sp-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } -sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9' } +sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sp-blockchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sp-consensus = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sp-keystore = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sp-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } # Cumulus dependencies -cumulus-client-consensus-aura = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9' } -cumulus-client-consensus-common = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9' } -cumulus-client-collator = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9' } -cumulus-client-cli = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9' } -cumulus-client-network = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9' } -cumulus-client-service = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9' } -cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9' } -cumulus-primitives-parachain-inherent = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9' } +cumulus-client-consensus-aura = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10' } +cumulus-client-consensus-common = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10' } +cumulus-client-collator = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10' } +cumulus-client-cli = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10' } +cumulus-client-network = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10' } +cumulus-client-service = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10' } +cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10' } +cumulus-primitives-parachain-inherent = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10' } # Polkadot dependencies -polkadot-cli = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.9'} -polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.9'} -polkadot-primitives = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.9'} -polkadot-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.9'} -polkadot-test-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.9'} \ No newline at end of file +polkadot-cli = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.10'} +polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.10'} +polkadot-primitives = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.10'} +polkadot-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.10'} +polkadot-test-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.10'} \ No newline at end of file diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index a9db9b2d..e5174a5a 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -14,15 +14,15 @@ targets = ['x86_64-unknown-linux-gnu'] [dependencies] codec = { package = 'parity-scale-codec', version = '2.0.0', features = ['derive'], default-features = false } -frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false, optional = true } -frame-support = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false, optional = true } +frame-support = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } [dev-dependencies] serde = { version = "1.0.119" } -sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } [features] default = ['std'] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 8f5bc27f..da2412d0 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -11,7 +11,7 @@ edition = '2018' targets = ['x86_64-unknown-linux-gnu'] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.9" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.10" } [dependencies] codec = { package = 'parity-scale-codec', version = '2.0.0', default-features = false, features = ['derive']} @@ -23,53 +23,53 @@ template = { package = 'pallet-template', path = '../pallets/template', default- # Substrate Dependencies ## Substrate Primitive Dependencies -sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -sp-std = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -sp-version = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +sp-std = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +sp-version = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } ## Substrate FRAME Dependencies -frame-executive = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false, optional = true } -frame-support = { git = 'https://github.com/paritytech/substrate', default-features = false, branch = 'polkadot-v0.9.9' } -frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -frame-system-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false, optional = true } -frame-system-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +frame-executive = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false, optional = true } +frame-support = { git = 'https://github.com/paritytech/substrate', default-features = false, branch = 'polkadot-v0.9.10' } +frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +frame-system-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false, optional = true } +frame-system-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } ## Substrate Pallet Dependencies -pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.9", default-features = false } -pallet-balances = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -pallet-randomness-collective-flip = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -pallet-sudo = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -pallet-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -pallet-transaction-payment = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.9', default-features = false } +pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.10", default-features = false } +pallet-balances = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +pallet-randomness-collective-flip = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +pallet-sudo = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +pallet-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +pallet-transaction-payment = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } # Cumulus Dependencies -cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9', default-features = false } -cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9', default-features = false } -cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9', default-features = false } -cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9', default-features = false } -cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9', default-features = false } -cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9', default-features = false } -cumulus-primitives-timestamp = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9', default-features = false } -cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9', default-features = false } -parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.9', default-features = false } +cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10', default-features = false } +cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10', default-features = false } +cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10', default-features = false } +cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10', default-features = false } +cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10', default-features = false } +cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10', default-features = false } +cumulus-primitives-timestamp = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10', default-features = false } +cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10', default-features = false } +parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10', default-features = false } # Polkadot Dependencies -polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.9', default-features = false } -xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.9', default-features = false } -xcm-builder = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.9', default-features = false } -xcm-executor = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.9', default-features = false } -pallet-xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.9', default-features = false } +polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.10', default-features = false } +xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.10', default-features = false } +xcm-builder = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.10', default-features = false } +xcm-executor = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.10', default-features = false } +pallet-xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.10', default-features = false } [features] default = ['std'] diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index ad84bc62..cce023b7 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -38,12 +38,10 @@ pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; pub use sp_runtime::BuildStorage; pub use sp_runtime::{MultiAddress, Perbill, Permill}; -// Polkadot Imports +// XCM Imports use pallet_xcm::XcmPassthrough; use polkadot_parachain::primitives::Sibling; - -// XCM Imports -use xcm::v0::{BodyId, Junction::*, MultiLocation, MultiLocation::*, NetworkId}; +use xcm::latest::prelude::*; use xcm_builder::{ AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter, EnsureXcmOrigin, FixedWeightBounds, IsConcrete, LocationInverter, NativeAsset, ParentIsDefault, @@ -136,9 +134,6 @@ pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber); pub const HOURS: BlockNumber = MINUTES * 60; pub const DAYS: BlockNumber = HOURS * 24; -// 1 in 4 blocks (on average, not counting collisions) will be primary babe blocks. -pub const PRIMARY_PROBABILITY: (u64, u64) = (1, 4); - // Unit = the base number of indivisible units for balances pub const UNIT: Balance = 1_000_000_000_000; pub const MILLIUNIT: Balance = 1_000_000_000; @@ -220,7 +215,7 @@ impl frame_system::Config for Runtime { /// What to do if an account is fully reaped from the system. type OnKilledAccount = (); /// The weight of database operations that the runtime can invoke. - type DbWeight = (); + type DbWeight = RocksDbWeight; /// The basic call filter to use in dispatchable. type BaseCallFilter = Everything; /// Weight information for the extrinsics of this pallet. @@ -305,10 +300,10 @@ impl parachain_info::Config for Runtime {} impl cumulus_pallet_aura_ext::Config for Runtime {} parameter_types! { - pub const RelayLocation: MultiLocation = X1(Parent); + pub const RelayLocation: MultiLocation = MultiLocation::parent(); pub const RelayNetwork: NetworkId = NetworkId::Polkadot; pub RelayChainOrigin: Origin = cumulus_pallet_xcm::Origin::Relay.into(); - pub Ancestry: MultiLocation = X1(Parachain(ParachainInfo::parachain_id().into())); + pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); } /// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used @@ -362,12 +357,13 @@ parameter_types! { // One XCM operation is 1_000_000 weight - almost certainly a conservative estimate. pub UnitWeightCost: Weight = 1_000_000; // One UNIT buys 1 second of weight. - pub const WeightPrice: (MultiLocation, u128) = (X1(Parent), UNIT); + pub const WeightPrice: (MultiLocation, u128) = (MultiLocation::parent(), UNIT); } match_type! { pub type ParentOrParentsUnitPlurality: impl Contains = { - X1(Parent) | X2(Parent, Plurality { id: BodyId::Unit, .. }) + MultiLocation { parents: 1, interior: Here } | + MultiLocation { parents: 1, interior: X1(Plurality { id: BodyId::Unit, .. }) } }; } @@ -392,6 +388,7 @@ impl Config for XcmConfig { type Weigher = FixedWeightBounds; type Trader = UsingComponents, RelayLocation, AccountId, Balances, ()>; type ResponseHandler = (); // Don't handle responses for now. + type SubscriptionService = PolkadotXcm; } /// No local origins on this chain are allowed to dispatch XCM sends/executions. @@ -401,7 +398,7 @@ pub type LocalOriginToLocation = SignedToAccountId32, + cumulus_primitives_utility::ParentAsUmp, // ..and XCMP to communicate with the sibling chains. XcmpQueue, ); @@ -428,6 +425,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type Event = Event; type XcmExecutor = XcmExecutor; type ChannelInfo = ParachainSystem; + type VersionWrapper = (); } impl cumulus_pallet_dmp_queue::Config for Runtime { From 8c36ad63053555b92b6dad05295a69c7b90016cb Mon Sep 17 00:00:00 2001 From: Ricardo Rius Date: Mon, 18 Oct 2021 15:04:57 +0200 Subject: [PATCH 40/91] Fix XCM config --- runtime/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index cce023b7..c9a24ee4 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -392,7 +392,7 @@ impl Config for XcmConfig { } /// No local origins on this chain are allowed to dispatch XCM sends/executions. -pub type LocalOriginToLocation = SignedToAccountId32; +pub type LocalOriginToLocation = (); /// The means for routing XCM messages which are not for local execution into the right message /// queues. From 70b63ad47a0255c667c6b3329fce92bebb369b3a Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Tue, 2 Nov 2021 19:13:12 +0100 Subject: [PATCH 41/91] Update to `polkadot-0.9.11` (#80) * * replace all source with upstream 0.9.11 tag * tweaks for use with the template on devhub stand-alone * remove Cargo.lock, build from scratch * upstream rustfmt * .editorconfig update * update ignores * pub mod rpc * node lib.rs rm * port from upstream cumulus #690 * fmt * * comments for clarity * XcmExecuteFilter = Nothing * tweaks from review * Fix compilation errors * Alex review edits * more tweaks Co-authored-by: Keith Yeung --- .dockerignore | 9 + .editorconfig | 7 + .gitignore | 17 +- rustfmt.toml => .rustfmt.toml | 15 +- Cargo.lock | 2485 +++++++++++++-------------------- README.md | 2 +- node/Cargo.toml | 133 +- node/build.rs | 1 + node/src/chain_spec.rs | 109 +- node/src/cli.rs | 4 +- node/src/command.rs | 57 +- node/src/lib.rs | 2 - node/src/main.rs | 1 + node/src/rpc.rs | 57 + node/src/service.rs | 145 +- pallets/template/Cargo.toml | 46 +- pallets/template/src/lib.rs | 1 - pallets/template/src/mock.rs | 4 +- polkadot-launch/config.json | 39 + runtime/Cargo.toml | 173 ++- runtime/src/lib.rs | 391 ++++-- 21 files changed, 1770 insertions(+), 1928 deletions(-) create mode 100644 .dockerignore rename rustfmt.toml => .rustfmt.toml (82%) delete mode 100644 node/src/lib.rs create mode 100644 node/src/rpc.rs create mode 100644 polkadot-launch/config.json diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..913065a3 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,9 @@ +.git +**/target/ +**/*.txt +**/*.md +/docker/ +!/target/release/polkadot-collator + +# dotfiles in the repo root +/.* diff --git a/.editorconfig b/.editorconfig index 2b40ec32..e8ff2027 100644 --- a/.editorconfig +++ b/.editorconfig @@ -17,6 +17,13 @@ end_of_line=lf [*.sh] indent_style=space +indent_size=4 +tab_width=8 +end_of_line=lf + +[*.json] +indent_style=space indent_size=2 tab_width=8 end_of_line=lf + diff --git a/.gitignore b/.gitignore index edfb46c2..1e0870fb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,18 @@ -# Generated by Cargo -# will have compiled files and executables +# Cargo compiled files and executables **/target/ + # These are backup files generated by rustfmt **/*.rs.bk -.DS_Store - -# The cache for docker container dependency -.cargo +# Local chain databases (defalut location) +**/chains/ # The cache for chain data in container .local -local-test \ No newline at end of file +# The cache for docker container dependency +/.cargo/config + +.DS_Store +.idea +.vscode \ No newline at end of file diff --git a/rustfmt.toml b/.rustfmt.toml similarity index 82% rename from rustfmt.toml rename to .rustfmt.toml index 4e242588..3018614b 100644 --- a/rustfmt.toml +++ b/.rustfmt.toml @@ -2,21 +2,22 @@ hard_tabs = true max_width = 100 use_small_heuristics = "Max" + # Imports imports_granularity = "Crate" reorder_imports = true + # Consistency newline_style = "Unix" -normalize_comments = true -normalize_doc_attributes = true + # Misc -chain_width = 80 -spaces_around_ranges = false binop_separator = "Back" -reorder_impl_items = false -match_arm_leading_pipes = "Preserve" +chain_width = 80 match_arm_blocks = false +match_arm_leading_pipes = "Preserve" match_block_trailing_comma = true +reorder_impl_items = false +spaces_around_ranges = false trailing_comma = "Vertical" trailing_semicolon = false -use_field_init_shorthand = true \ No newline at end of file +use_field_init_shorthand = true diff --git a/Cargo.lock b/Cargo.lock index cb3ac24c..8515e6fd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12,22 +12,13 @@ dependencies = [ "regex", ] -[[package]] -name = "addr2line" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7a2e47a1fbe209ee101dd6d61285226744c6c8d3c21c8dc878ba6cb9f467f3a" -dependencies = [ - "gimli 0.24.0", -] - [[package]] name = "addr2line" version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e61f2b7f93d2c7d2b08263acaa4a363b3e276806c68af6134c44f523bf1aacd" dependencies = [ - "gimli 0.25.0", + "gimli", ] [[package]] @@ -53,7 +44,7 @@ checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ "cfg-if 1.0.0", "cipher", - "cpufeatures", + "cpufeatures 0.2.1", "opaque-debug 0.3.0", ] @@ -73,9 +64,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43bb833f0bf979d8475d38fbf09ed3b8a55e1885fe93ad3f93239fc6a4f17b98" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ "getrandom 0.2.3", "once_cell", @@ -159,9 +150,9 @@ checksum = "be4dc07131ffa69b8072d35f5007352af944213cde02545e2103680baed38fcd" [[package]] name = "asn1_der" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6e24d2cce90c53b948c46271bfb053e4bdc2db9b5d3f65e20f8cf28a1b7fc3" +checksum = "e22d1f4b888c298a027c99dc9048015fac177587de20fc30232a057dfbe24a21" [[package]] name = "assert_matches" @@ -286,7 +277,7 @@ dependencies = [ "async-io", "async-lock", "async-process", - "crossbeam-utils 0.8.5", + "crossbeam-utils", "futures-channel", "futures-core", "futures-io", @@ -398,12 +389,12 @@ version = "0.3.61" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7a905d892734eea339e896738c14b9afce22b5318f64b951e70bf3844419b01" dependencies = [ - "addr2line 0.16.0", + "addr2line", "cc", "cfg-if 1.0.0", "libc", "miniz_oxide", - "object 0.26.2", + "object", "rustc-demangle", ] @@ -455,13 +446,12 @@ dependencies = [ [[package]] name = "beefy-gadget" -version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.10#9954b61657dc8899a21b4f2501ee6bd3b7a2dc23" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "beefy-primitives", "fnv", "futures 0.3.17", - "hex", "log", "parity-scale-codec", "parking_lot 0.11.2", @@ -469,15 +459,14 @@ dependencies = [ "sc-keystore", "sc-network", "sc-network-gossip", + "sc-utils", "sp-api", "sp-application-crypto", "sp-arithmetic", "sp-blockchain", - "sp-consensus", "sp-core", "sp-keystore", "sp-runtime", - "sp-utils", "substrate-prometheus-endpoint", "thiserror", "wasm-timer", @@ -485,8 +474,8 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" -version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.10#9954b61657dc8899a21b4f2501ee6bd3b7a2dc23" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -499,22 +488,22 @@ dependencies = [ "parity-scale-codec", "sc-rpc", "serde", - "serde_json", "sp-core", "sp-runtime", ] [[package]] name = "beefy-merkle-tree" -version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.10#9954b61657dc8899a21b4f2501ee6bd3b7a2dc23" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" [[package]] name = "beefy-primitives" -version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.10#9954b61657dc8899a21b4f2501ee6bd3b7a2dc23" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "parity-scale-codec", + "scale-info", "sp-api", "sp-application-crypto", "sp-core", @@ -689,6 +678,15 @@ dependencies = [ "once_cell", ] +[[package]] +name = "bounded-vec" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afdd1dffefe5fc66262a524b91087c43b16e478b2e3dc49eb11b0e2fd6b6ec90" +dependencies = [ + "thiserror", +] + [[package]] name = "bs58" version = "0.4.0" @@ -715,15 +713,15 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.7.1" +version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9df67f7bf9ef8498769f994239c45613ef0c5899415fb58e9add412d2c1a538" +checksum = "8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6c" [[package]] name = "byte-slice-cast" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca0796d76a983651b4a0ddda16203032759f2fd9103d9181f7c65c06ee8872e6" +checksum = "1d30c751592b77c499e7bce34d99d67c2c11bdc0574e9a488ddade14150a4698" [[package]] name = "byte-tools" @@ -744,7 +742,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" dependencies = [ "byteorder", - "either", "iovec", ] @@ -800,9 +797,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.70" +version = "1.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26a6ce4b6a484fa3edb70f7efa6fc430fd2b87285fe8b84304fd0936faa0dc0" +checksum = "79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedd" dependencies = [ "jobserver", ] @@ -836,21 +833,21 @@ checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" [[package]] name = "chacha20" -version = "0.7.3" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f08493fa7707effc63254c66c6ea908675912493cd67952eda23c09fae2610b1" +checksum = "fee7ad89dc1128635074c268ee661f90c3f7e83d9fd12910608c36b47d6c3412" dependencies = [ "cfg-if 1.0.0", "cipher", - "cpufeatures", + "cpufeatures 0.1.5", "zeroize", ] [[package]] name = "chacha20poly1305" -version = "0.8.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6547abe025f4027edacd9edaa357aded014eecec42a5070d9b885c3c334aba2" +checksum = "1580317203210c517b6d44794abfbe600698276db18127e37ad3e69bf5e848e5" dependencies = [ "aead", "chacha20", @@ -909,7 +906,7 @@ checksum = "10612c0ec0e0a1ff0e97980647cb058a6e7aedb913d01d009c406b8b7d0b26ee" dependencies = [ "glob", "libc", - "libloading 0.7.0", + "libloading 0.7.1", ] [[package]] @@ -959,35 +956,19 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "core-foundation" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" -dependencies = [ - "core-foundation-sys 0.7.0", - "libc", -] - -[[package]] -name = "core-foundation" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62" +checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3" dependencies = [ - "core-foundation-sys 0.8.2", + "core-foundation-sys", "libc", ] [[package]] name = "core-foundation-sys" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" - -[[package]] -name = "core-foundation-sys" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" [[package]] name = "cpp_demangle" @@ -998,6 +979,15 @@ dependencies = [ "cfg-if 1.0.0", ] +[[package]] +name = "cpufeatures" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71ef" +dependencies = [ + "libc", +] + [[package]] name = "cpufeatures" version = "0.2.1" @@ -1009,36 +999,36 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.74.0" +version = "0.76.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ca3560686e7c9c7ed7e0fe77469f2410ba5d7781b1acaa9adc8d8deea28e3e" +checksum = "7e6bea67967505247f54fa2c85cf4f6e0e31c4e5692c9b70e4ae58e339067333" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.74.0" +version = "0.76.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf9bf1ffffb6ce3d2e5ebc83549bd2436426c99b31cc550d521364cbe35d276" +checksum = "48194035d2752bdd5bdae429e3ab88676e95f52a2b1355a5d4e809f9e39b1d74" dependencies = [ "cranelift-bforest", "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-entity", - "gimli 0.24.0", + "gimli", "log", "regalloc", "serde", - "smallvec 1.6.1", + "smallvec", "target-lexicon", ] [[package]] name = "cranelift-codegen-meta" -version = "0.74.0" +version = "0.76.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cc21936a5a6d07e23849ffe83e5c1f6f50305c074f4b2970ca50c13bf55b821" +checksum = "976efb22fcab4f2cd6bd4e9913764616a54d895c1a23530128d04e03633c555f" dependencies = [ "cranelift-codegen-shared", "cranelift-entity", @@ -1046,49 +1036,50 @@ dependencies = [ [[package]] name = "cranelift-codegen-shared" -version = "0.74.0" +version = "0.76.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca5b6ffaa87560bebe69a5446449da18090b126037920b0c1c6d5945f72faf6b" +checksum = "9dabb5fe66e04d4652e434195b45ae65b5c8172d520247b8f66d8df42b2b45dc" dependencies = [ "serde", ] [[package]] name = "cranelift-entity" -version = "0.74.0" +version = "0.76.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d6b4a8bef04f82e4296782646f733c641d09497df2fabf791323fefaa44c64c" +checksum = "3329733e4d4b8e91c809efcaa4faee80bf66f20164e3dd16d707346bd3494799" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.74.0" +version = "0.76.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b783b351f966fce33e3c03498cb116d16d97a8f9978164a60920bd0d3a99c" +checksum = "279afcc0d3e651b773f94837c3d581177b348c8d69e928104b2e9fccb226f921" dependencies = [ "cranelift-codegen", "log", - "smallvec 1.6.1", + "smallvec", "target-lexicon", ] [[package]] name = "cranelift-native" -version = "0.74.0" +version = "0.76.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77c88d3dd48021ff1e37e978a00098524abd3513444ae252c08d37b310b3d2a" +checksum = "4c04d1fe6a5abb5bb0edc78baa8ef238370fb8e389cc88b6d153f7c3e9680425" dependencies = [ "cranelift-codegen", + "libc", "target-lexicon", ] [[package]] name = "cranelift-wasm" -version = "0.74.0" +version = "0.76.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb6d408e2da77cdbbd65466298d44c86ae71c1785d2ab0d8657753cdb4d9d89" +checksum = "e0d260ad44f6fd2c91f7f5097191a2a9e3edcbb36df1fb787b600dad5ea148ec" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1096,7 +1087,7 @@ dependencies = [ "itertools", "log", "serde", - "smallvec 1.6.1", + "smallvec", "thiserror", "wasmparser", ] @@ -1117,18 +1108,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4" dependencies = [ "cfg-if 1.0.0", - "crossbeam-utils 0.8.5", -] - -[[package]] -name = "crossbeam-deque" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed" -dependencies = [ - "crossbeam-epoch 0.8.2", - "crossbeam-utils 0.7.2", - "maybe-uninit", + "crossbeam-utils", ] [[package]] @@ -1138,23 +1118,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" dependencies = [ "cfg-if 1.0.0", - "crossbeam-epoch 0.9.5", - "crossbeam-utils 0.8.5", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" -dependencies = [ - "autocfg", - "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", - "lazy_static", - "maybe-uninit", - "memoffset 0.5.6", - "scopeguard", + "crossbeam-epoch", + "crossbeam-utils", ] [[package]] @@ -1164,34 +1129,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd" dependencies = [ "cfg-if 1.0.0", - "crossbeam-utils 0.8.5", + "crossbeam-utils", "lazy_static", - "memoffset 0.6.4", + "memoffset", "scopeguard", ] -[[package]] -name = "crossbeam-queue" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" -dependencies = [ - "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", - "maybe-uninit", -] - -[[package]] -name = "crossbeam-utils" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" -dependencies = [ - "autocfg", - "cfg-if 0.1.10", - "lazy_static", -] - [[package]] name = "crossbeam-utils" version = "0.8.5" @@ -1230,9 +1173,9 @@ dependencies = [ [[package]] name = "ct-logs" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c8e13110a84b6315df212c045be706af261fd364791cad863285439ebba672e" +checksum = "c1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8" dependencies = [ "sct", ] @@ -1270,7 +1213,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" dependencies = [ "sc-cli", "sc-service", @@ -1280,7 +1223,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1296,7 +1239,6 @@ dependencies = [ "sp-api", "sp-consensus", "sp-core", - "sp-io", "sp-runtime", "tracing", ] @@ -1304,14 +1246,13 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" dependencies = [ "async-trait", "cumulus-client-consensus-common", "cumulus-primitives-core", "futures 0.3.17", "parity-scale-codec", - "parking_lot 0.10.2", "polkadot-client", "sc-client-api", "sc-consensus", @@ -1335,32 +1276,27 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" dependencies = [ "async-trait", "dyn-clone", "futures 0.3.17", "parity-scale-codec", "polkadot-primitives", - "polkadot-runtime", "sc-client-api", "sc-consensus", "sp-api", - "sp-block-builder", "sp-blockchain", "sp-consensus", - "sp-core", - "sp-inherents", "sp-runtime", "sp-trie", - "substrate-prometheus-endpoint", "tracing", ] [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" dependencies = [ "derive_more", "futures 0.3.17", @@ -1371,7 +1307,6 @@ dependencies = [ "polkadot-node-primitives", "polkadot-parachain", "polkadot-primitives", - "polkadot-statement-table", "sc-client-api", "sp-api", "sp-blockchain", @@ -1384,7 +1319,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" dependencies = [ "cumulus-primitives-core", "futures 0.3.17", @@ -1399,7 +1334,6 @@ dependencies = [ "sc-consensus", "sp-api", "sp-consensus", - "sp-core", "sp-maybe-compressed-blob", "sp-runtime", "tracing", @@ -1408,7 +1342,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-common", @@ -1437,13 +1371,14 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" dependencies = [ "frame-executive", "frame-support", "frame-system", "pallet-aura", "parity-scale-codec", + "scale-info", "serde", "sp-application-crypto", "sp-consensus-aura", @@ -1454,15 +1389,14 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", "log", "parity-scale-codec", - "rand 0.8.4", - "rand_chacha 0.3.1", + "scale-info", "sp-io", "sp-runtime", "sp-std", @@ -1473,7 +1407,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1485,6 +1419,7 @@ dependencies = [ "pallet-balances", "parity-scale-codec", "polkadot-parachain", + "scale-info", "serde", "sp-core", "sp-externalities", @@ -1501,7 +1436,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -1512,12 +1447,13 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", "parity-scale-codec", + "scale-info", "serde", "sp-io", "sp-runtime", @@ -1528,15 +1464,15 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", "log", "parity-scale-codec", - "rand 0.8.4", "rand_chacha 0.3.1", + "scale-info", "sp-runtime", "sp-std", "xcm", @@ -1546,7 +1482,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1558,13 +1494,12 @@ dependencies = [ "sp-runtime", "sp-std", "sp-trie", - "xcm", ] [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1572,6 +1507,7 @@ dependencies = [ "parity-scale-codec", "polkadot-client", "sc-client-api", + "scale-info", "sp-api", "sp-core", "sp-inherents", @@ -1585,7 +1521,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" dependencies = [ "cumulus-primitives-core", "sp-inherents", @@ -1596,11 +1532,10 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" dependencies = [ "cumulus-primitives-core", "frame-support", - "impl-trait-for-tuples", "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", @@ -1614,7 +1549,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1889,9 +1824,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.8.4" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" +checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" dependencies = [ "atty", "humantime 2.1.0", @@ -1938,9 +1873,9 @@ dependencies = [ [[package]] name = "ethbloom" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "779864b9c7f7ead1f092972c3257496c6a84b46dba2ce131dd8a282cb2cc5972" +checksum = "bfb684ac8fa8f6c5759f788862bb22ec6fe3cb392f6bfd08e3c64b603661e3f8" dependencies = [ "crunchy", "fixed-hash", @@ -1951,9 +1886,9 @@ dependencies = [ [[package]] name = "ethereum-types" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd6bde671199089e601e8d47e153368b893ef885f11f365a3261ec58153c211" +checksum = "05136f7057fe789f06e6d41d07b34e6f70d8c86e5693b60f97aaa6553553bdaf" dependencies = [ "ethbloom", "fixed-hash", @@ -1978,28 +1913,6 @@ dependencies = [ "futures 0.3.17", ] -[[package]] -name = "failure" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" -dependencies = [ - "backtrace", - "failure_derive", -] - -[[package]] -name = "failure_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - [[package]] name = "fake-simd" version = "0.1.2" @@ -2053,7 +1966,7 @@ dependencies = [ "num-traits", "parity-scale-codec", "parking_lot 0.11.2", - "scale-info 1.0.0", + "scale-info", ] [[package]] @@ -2096,7 +2009,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "parity-scale-codec", ] @@ -2114,7 +2027,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", @@ -2122,6 +2035,7 @@ dependencies = [ "log", "parity-scale-codec", "paste", + "scale-info", "sp-api", "sp-io", "sp-runtime", @@ -2133,7 +2047,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "Inflector", "chrono", @@ -2159,11 +2073,12 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", + "scale-info", "sp-arithmetic", "sp-npos-elections", "sp-std", @@ -2172,11 +2087,12 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", + "scale-info", "sp-core", "sp-io", "sp-runtime", @@ -2186,19 +2102,20 @@ dependencies = [ [[package]] name = "frame-metadata" -version = "14.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +version = "14.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96616f82e069102b95a72c87de4c84d2f87ef7f0f20630e78ce3824436483110" dependencies = [ + "cfg-if 1.0.0", "parity-scale-codec", + "scale-info", "serde", - "sp-core", - "sp-std", ] [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "bitflags", "frame-metadata", @@ -2208,8 +2125,9 @@ dependencies = [ "once_cell", "parity-scale-codec", "paste", + "scale-info", "serde", - "smallvec 1.6.1", + "smallvec", "sp-arithmetic", "sp-core", "sp-inherents", @@ -2224,7 +2142,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2236,7 +2154,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.1.0", @@ -2248,7 +2166,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "proc-macro2", "quote", @@ -2258,12 +2176,12 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", - "impl-trait-for-tuples", "log", "parity-scale-codec", + "scale-info", "serde", "sp-core", "sp-io", @@ -2275,12 +2193,13 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", + "scale-info", "sp-core", "sp-runtime", "sp-std", @@ -2289,7 +2208,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "parity-scale-codec", "sp-api", @@ -2298,10 +2217,9 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", - "parity-scale-codec", "sp-api", "sp-runtime", "sp-std", @@ -2335,12 +2253,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "fuchsia-cprng" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" - [[package]] name = "fuchsia-zircon" version = "0.3.3" @@ -2400,16 +2312,6 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53d" -[[package]] -name = "futures-cpupool" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" -dependencies = [ - "futures 0.1.31", - "num_cpus", -] - [[package]] name = "futures-executor" version = "0.3.17" @@ -2463,7 +2365,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a1387e07917c711fb4ee4f48ea0adb04a3c9739e53ef85bf43ae1edc2937a8b" dependencies = [ "futures-io", - "rustls 0.19.1", + "rustls", "webpki", ] @@ -2539,8 +2441,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ "cfg-if 1.0.0", + "js-sys", "libc", "wasi 0.9.0+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] @@ -2566,21 +2470,15 @@ dependencies = [ [[package]] name = "gimli" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4075386626662786ddb0ec9081e7c7eeb1ba31951f447ca780ef9f5d568189" +checksum = "f0a01e0497841a3b2db4f8afa483cce65f7e96a3498bd6c541734792aeac8fe7" dependencies = [ "fallible-iterator", "indexmap", "stable_deref_trait", ] -[[package]] -name = "gimli" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0a01e0497841a3b2db4f8afa483cce65f7e96a3498bd6c541734792aeac8fe7" - [[package]] name = "glob" version = "0.3.0" @@ -2613,44 +2511,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "h2" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5b34c246847f938a410a03c5458c7fee2274436675e76d8b903c08efc29c462" -dependencies = [ - "byteorder", - "bytes 0.4.12", - "fnv", - "futures 0.1.31", - "http 0.1.21", - "indexmap", - "log", - "slab", - "string", - "tokio-io", -] - -[[package]] -name = "h2" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535" -dependencies = [ - "bytes 0.5.6", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.5", - "indexmap", - "slab", - "tokio 0.2.25", - "tokio-util", - "tracing", - "tracing-futures", -] - [[package]] name = "handlebars" version = "3.5.5" @@ -2767,17 +2627,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "http" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6ccf5ede3a895d8856620237b2f02972c1bbc78d2965ad7fe8838d4a0ed41f0" -dependencies = [ - "bytes 0.4.12", - "fnv", - "itoa", -] - [[package]] name = "http" version = "0.2.5" @@ -2789,28 +2638,6 @@ dependencies = [ "itoa", ] -[[package]] -name = "http-body" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "http 0.1.21", - "tokio-buf", -] - -[[package]] -name = "http-body" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" -dependencies = [ - "bytes 0.5.6", - "http 0.2.5", -] - [[package]] name = "http-body" version = "0.4.3" @@ -2818,7 +2645,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "399c583b2979440c60be0821a6199eca73bc3c8dcd9d070d75ac726e2c6186e5" dependencies = [ "bytes 1.1.0", - "http 0.2.5", + "http", "pin-project-lite 0.2.7", ] @@ -2828,12 +2655,6 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" -[[package]] -name = "httpdate" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" - [[package]] name = "httpdate" version = "1.0.1" @@ -2855,60 +2676,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" -[[package]] -name = "hyper" -version = "0.12.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c843caf6296fc1f93444735205af9ed4e109a539005abb2564ae1d6fad34c52" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "futures-cpupool", - "h2 0.1.26", - "http 0.1.21", - "http-body 0.1.0", - "httparse", - "iovec", - "itoa", - "log", - "net2", - "rustc_version 0.2.3", - "time", - "tokio 0.1.22", - "tokio-buf", - "tokio-executor", - "tokio-io", - "tokio-reactor", - "tokio-tcp", - "tokio-threadpool", - "tokio-timer", - "want 0.2.0", -] - -[[package]] -name = "hyper" -version = "0.13.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a6f157065790a3ed2f88679250419b5cdd96e714a0d65f7797fd337186e96bb" -dependencies = [ - "bytes 0.5.6", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.2.7", - "http 0.2.5", - "http-body 0.3.1", - "httparse", - "httpdate 0.3.2", - "itoa", - "pin-project 1.0.8", - "socket2 0.3.19", - "tokio 0.2.25", - "tower-service", - "tracing", - "want 0.3.0", -] - [[package]] name = "hyper" version = "0.14.13" @@ -2919,33 +2686,33 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "http 0.2.5", - "http-body 0.4.3", + "http", + "http-body", "httparse", - "httpdate 1.0.1", + "httpdate", "itoa", "pin-project-lite 0.2.7", - "tokio 1.12.0", + "socket2 0.4.2", + "tokio", "tower-service", "tracing", - "want 0.3.0", + "want", ] [[package]] name = "hyper-rustls" -version = "0.21.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37743cc83e8ee85eacfce90f2f4102030d9ff0a95244098d781e9bee4a90abb6" +checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64" dependencies = [ - "bytes 0.5.6", "ct-logs", "futures-util", - "hyper 0.13.10", + "hyper", "log", - "rustls 0.18.1", - "rustls-native-certs 0.4.0", - "tokio 0.2.25", - "tokio-rustls 0.14.1", + "rustls", + "rustls-native-certs", + "tokio", + "tokio-rustls", "webpki", ] @@ -3059,14 +2826,11 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "716d3d89f35ac6a34fd0eed635395f4c3b76fa889338a4632e5231a8684216bd" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ "cfg-if 1.0.0", - "js-sys", - "wasm-bindgen", - "web-sys", ] [[package]] @@ -3105,9 +2869,9 @@ dependencies = [ [[package]] name = "ip_network" -version = "0.3.4" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ee15951c035f79eddbef745611ec962f63f4558f1dadf98ab723cc603487c6f" +checksum = "09b746553d2f4a1ca26fab939943ddfb217a091f34f53571620a8e3d30691303" [[package]] name = "ipconfig" @@ -3162,12 +2926,12 @@ dependencies = [ [[package]] name = "jsonrpc-client-transports" -version = "15.1.0" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "489b9c612e60c766f751ab40fcb43cbb55a1e10bb44a9b4307ed510ca598cbd7" +checksum = "d2b99d4207e2a04fb4581746903c2bb7eb376f88de9c699d0f3e10feeac0cd3a" dependencies = [ - "failure", - "futures 0.1.31", + "derive_more", + "futures 0.3.17", "jsonrpc-core", "jsonrpc-pubsub", "log", @@ -3178,11 +2942,13 @@ dependencies = [ [[package]] name = "jsonrpc-core" -version = "15.1.0" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0745a6379e3edc893c84ec203589790774e4247420033e71a76d3ab4687991fa" +checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" dependencies = [ - "futures 0.1.31", + "futures 0.3.17", + "futures-executor", + "futures-util", "log", "serde", "serde_derive", @@ -3191,18 +2957,19 @@ dependencies = [ [[package]] name = "jsonrpc-core-client" -version = "15.1.0" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f764902d7b891344a0acb65625f32f6f7c6db006952143bd650209fbe7d94db" +checksum = "b51da17abecbdab3e3d4f26b01c5ec075e88d3abe3ab3b05dc9aa69392764ec0" dependencies = [ + "futures 0.3.17", "jsonrpc-client-transports", ] [[package]] name = "jsonrpc-derive" -version = "15.1.0" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99a847f9ec7bb52149b2786a17c9cb260d6effc6b8eeb8c16b343a487a7563a3" +checksum = "5b939a78fa820cdfcb7ee7484466746a7377760970f6f9c6fe19f9edcc8a38d2" dependencies = [ "proc-macro-crate 0.1.5", "proc-macro2", @@ -3212,73 +2979,80 @@ dependencies = [ [[package]] name = "jsonrpc-http-server" -version = "15.1.0" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb5c4513b7b542f42da107942b7b759f27120b5cc894729f88254b28dff44b7" +checksum = "e1dea6e07251d9ce6a552abfb5d7ad6bc290a4596c8dcc3d795fae2bbdc1f3ff" dependencies = [ - "hyper 0.12.36", + "futures 0.3.17", + "hyper", "jsonrpc-core", "jsonrpc-server-utils", "log", "net2", - "parking_lot 0.10.2", + "parking_lot 0.11.2", "unicase", ] [[package]] name = "jsonrpc-ipc-server" -version = "15.1.0" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf50e53e4eea8f421a7316c5f63e395f7bc7c4e786a6dc54d76fab6ff7aa7ce7" +checksum = "382bb0206323ca7cda3dcd7e245cea86d37d02457a02a975e3378fb149a48845" dependencies = [ + "futures 0.3.17", "jsonrpc-core", "jsonrpc-server-utils", "log", "parity-tokio-ipc", - "parking_lot 0.10.2", - "tokio-service", + "parking_lot 0.11.2", + "tower-service", ] [[package]] name = "jsonrpc-pubsub" -version = "15.1.0" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "639558e0604013be9787ae52f798506ae42bf4220fe587bdc5625871cc8b9c77" +checksum = "240f87695e6c6f62fb37f05c02c04953cf68d6408b8c1c89de85c7a0125b1011" dependencies = [ + "futures 0.3.17", "jsonrpc-core", + "lazy_static", "log", - "parking_lot 0.10.2", + "parking_lot 0.11.2", "rand 0.7.3", "serde", ] [[package]] name = "jsonrpc-server-utils" -version = "15.1.0" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72f1f3990650c033bd8f6bd46deac76d990f9bbfb5f8dc8c4767bf0a00392176" +checksum = "fa4fdea130485b572c39a460d50888beb00afb3e35de23ccd7fad8ff19f0e0d4" dependencies = [ - "bytes 0.4.12", + "bytes 1.1.0", + "futures 0.3.17", "globset", "jsonrpc-core", "lazy_static", "log", - "tokio 0.1.22", - "tokio-codec", + "tokio", + "tokio-stream", + "tokio-util", "unicase", ] [[package]] name = "jsonrpc-ws-server" -version = "15.1.0" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6596fe75209b73a2a75ebe1dce4e60e03b88a2b25e8807b667597f6315150d22" +checksum = "f892c7d766369475ab7b0669f417906302d7c0fb521285c0a0c92e52e7c8e946" dependencies = [ + "futures 0.3.17", "jsonrpc-core", "jsonrpc-server-utils", "log", "parity-ws", - "parking_lot 0.10.2", + "parking_lot 0.11.2", "slab", ] @@ -3306,7 +3080,7 @@ dependencies = [ "beef", "futures-channel", "futures-util", - "hyper 0.14.13", + "hyper", "log", "serde", "serde_json", @@ -3326,14 +3100,14 @@ dependencies = [ "jsonrpsee-types", "log", "pin-project 1.0.8", - "rustls 0.19.1", - "rustls-native-certs 0.5.0", + "rustls", + "rustls-native-certs", "serde", "serde_json", "soketto 0.6.0", "thiserror", - "tokio 0.2.25", - "tokio-rustls 0.15.0", + "tokio", + "tokio-rustls", "tokio-util", "url 2.2.2", ] @@ -3370,7 +3144,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45a3f58dc069ec0e205a27f5b45920722a46faed802a0541538241af6228f512" dependencies = [ "parity-util-mem", - "smallvec 1.6.1", + "smallvec", ] [[package]] @@ -3386,9 +3160,9 @@ dependencies = [ [[package]] name = "kvdb-rocksdb" -version = "0.12.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d169dbb316aa0fa185d02d847c047f1aa20e292cf1563d790c13536a2a732c8" +checksum = "9b1b6ea8f2536f504b645ad78419c8246550e19d2c3419a167080ce08edee35a" dependencies = [ "fs-swap", "kvdb", @@ -3399,7 +3173,7 @@ dependencies = [ "parking_lot 0.11.2", "regex", "rocksdb", - "smallvec 1.6.1", + "smallvec", ] [[package]] @@ -3416,9 +3190,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.103" +version = "0.2.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8f7255a17a627354f321ef0055d63b898c6fb27eff628af4d1b66b7331edf6" +checksum = "7b2f96d100e1cf1929e7719b7edb3b90ab5298072638fccd77be9ce942ecdfce" [[package]] name = "libloading" @@ -3432,9 +3206,9 @@ dependencies = [ [[package]] name = "libloading" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f84d96438c15fcd6c3f244c8fce01d1e2b9c6b5623e9c711dc9286d8fc92d6a" +checksum = "c0cf036d15402bea3c5d4de17b3fce76b3e4a56ebc1f577be0e7a72f7c607cf0" dependencies = [ "cfg-if 1.0.0", "winapi 0.3.9", @@ -3481,7 +3255,7 @@ dependencies = [ "multiaddr", "parking_lot 0.11.2", "pin-project 1.0.8", - "smallvec 1.6.1", + "smallvec", "wasm-timer", ] @@ -3512,7 +3286,7 @@ dependencies = [ "ring", "rw-stream-sink", "sha2 0.9.8", - "smallvec 1.6.1", + "smallvec", "thiserror", "unsigned-varint 0.7.0", "void", @@ -3540,7 +3314,7 @@ dependencies = [ "futures 0.3.17", "libp2p-core", "log", - "smallvec 1.6.1", + "smallvec", "trust-dns-resolver", ] @@ -3559,7 +3333,7 @@ dependencies = [ "prost", "prost-build", "rand 0.7.3", - "smallvec 1.6.1", + "smallvec", ] [[package]] @@ -3583,7 +3357,7 @@ dependencies = [ "rand 0.7.3", "regex", "sha2 0.9.8", - "smallvec 1.6.1", + "smallvec", "unsigned-varint 0.7.0", "wasm-timer", ] @@ -3600,7 +3374,7 @@ dependencies = [ "log", "prost", "prost-build", - "smallvec 1.6.1", + "smallvec", "wasm-timer", ] @@ -3623,7 +3397,7 @@ dependencies = [ "prost-build", "rand 0.7.3", "sha2 0.9.8", - "smallvec 1.6.1", + "smallvec", "uint", "unsigned-varint 0.7.0", "void", @@ -3646,7 +3420,7 @@ dependencies = [ "libp2p-swarm", "log", "rand 0.8.4", - "smallvec 1.6.1", + "smallvec", "socket2 0.4.2", "void", ] @@ -3665,7 +3439,7 @@ dependencies = [ "nohash-hasher", "parking_lot 0.11.2", "rand 0.7.3", - "smallvec 1.6.1", + "smallvec", "unsigned-varint 0.7.0", ] @@ -3754,7 +3528,7 @@ dependencies = [ "prost", "prost-build", "rand 0.7.3", - "smallvec 1.6.1", + "smallvec", "unsigned-varint 0.7.0", "void", "wasm-timer", @@ -3775,7 +3549,7 @@ dependencies = [ "lru", "minicbor", "rand 0.7.3", - "smallvec 1.6.1", + "smallvec", "unsigned-varint 0.7.0", "wasm-timer", ] @@ -3791,7 +3565,7 @@ dependencies = [ "libp2p-core", "log", "rand 0.7.3", - "smallvec 1.6.1", + "smallvec", "void", "wasm-timer", ] @@ -3902,9 +3676,9 @@ dependencies = [ "base64 0.12.3", "digest 0.9.0", "hmac-drbg", - "libsecp256k1-core", - "libsecp256k1-gen-ecmult", - "libsecp256k1-gen-genmult", + "libsecp256k1-core 0.2.2", + "libsecp256k1-gen-ecmult 0.2.1", + "libsecp256k1-gen-genmult 0.2.1", "rand 0.7.3", "serde", "sha2 0.9.8", @@ -3921,15 +3695,32 @@ dependencies = [ "base64 0.12.3", "digest 0.9.0", "hmac-drbg", - "libsecp256k1-core", - "libsecp256k1-gen-ecmult", - "libsecp256k1-gen-genmult", + "libsecp256k1-core 0.2.2", + "libsecp256k1-gen-ecmult 0.2.1", + "libsecp256k1-gen-genmult 0.2.1", "rand 0.7.3", "serde", "sha2 0.9.8", "typenum", ] +[[package]] +name = "libsecp256k1" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0452aac8bab02242429380e9b2f94ea20cea2b37e2c1777a1358799bbe97f37" +dependencies = [ + "arrayref", + "base64 0.13.0", + "digest 0.9.0", + "libsecp256k1-core 0.3.0", + "libsecp256k1-gen-ecmult 0.3.0", + "libsecp256k1-gen-genmult 0.3.0", + "rand 0.8.4", + "serde", + "sha2 0.9.8", +] + [[package]] name = "libsecp256k1-core" version = "0.2.2" @@ -3941,13 +3732,33 @@ dependencies = [ "subtle", ] +[[package]] +name = "libsecp256k1-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +dependencies = [ + "crunchy", + "digest 0.9.0", + "subtle", +] + [[package]] name = "libsecp256k1-gen-ecmult" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3" dependencies = [ - "libsecp256k1-core", + "libsecp256k1-core 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core 0.3.0", ] [[package]] @@ -3956,7 +3767,16 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" dependencies = [ - "libsecp256k1-core", + "libsecp256k1-core 0.2.2", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core 0.3.0", ] [[package]] @@ -4041,6 +3861,26 @@ dependencies = [ "linked-hash-map", ] +[[package]] +name = "lz4" +version = "1.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac20ed6991e01bf6a2e68cc73df2b389707403662a8ba89f68511fb340f724c" +dependencies = [ + "libc", + "lz4-sys", +] + +[[package]] +name = "lz4-sys" +version = "1.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dca79aa95d8b3226213ad454d328369853be3a1382d89532a854f4d69640acae" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "mach" version = "0.3.2" @@ -4086,12 +3926,6 @@ dependencies = [ "rawpointer", ] -[[package]] -name = "maybe-uninit" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" - [[package]] name = "memchr" version = "2.4.1" @@ -4107,15 +3941,6 @@ dependencies = [ "libc", ] -[[package]] -name = "memoffset" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa" -dependencies = [ - "autocfg", -] - [[package]] name = "memoffset" version = "0.6.4" @@ -4165,12 +3990,14 @@ dependencies = [ [[package]] name = "metered-channel" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "derive_more", "futures 0.3.17", "futures-timer 3.0.2", + "thiserror", + "tracing", ] [[package]] @@ -4234,38 +4061,28 @@ dependencies = [ ] [[package]] -name = "mio-extras" -version = "2.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" -dependencies = [ - "lazycell", - "log", - "mio", - "slab", -] - -[[package]] -name = "mio-named-pipes" -version = "0.1.7" +name = "mio" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656" +checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" dependencies = [ + "libc", "log", - "mio", "miow 0.3.7", + "ntapi", "winapi 0.3.9", ] [[package]] -name = "mio-uds" -version = "0.6.8" +name = "mio-extras" +version = "2.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" +checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" dependencies = [ - "iovec", - "libc", - "mio", + "lazycell", + "log", + "mio 0.6.23", + "slab", ] [[package]] @@ -4376,15 +4193,15 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "multistream-select" -version = "0.10.2" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d91ec0a2440aaff5f78ec35631a7027d50386c6163aa975f7caa0d5da4b6ff8" +checksum = "56a336acba8bc87c8876f6425407dbbe6c417bf478b22015f8fb0994ef3bc0ab" dependencies = [ "bytes 1.1.0", "futures 0.3.17", "log", "pin-project 1.0.8", - "smallvec 1.6.1", + "smallvec", "unsigned-varint 0.7.0", ] @@ -4419,11 +4236,11 @@ dependencies = [ [[package]] name = "names" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef320dab323286b50fb5cdda23f61c796a72a89998ab565ca32525c5c556f2da" +checksum = "10a8690bf09abf659851e58cd666c3d37ac6af07c2bd7a9e332cfba471715775" dependencies = [ - "rand 0.3.23", + "rand 0.8.4", ] [[package]] @@ -4461,6 +4278,15 @@ dependencies = [ "version_check", ] +[[package]] +name = "ntapi" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" +dependencies = [ + "winapi 0.3.9", +] + [[package]] name = "num-bigint" version = "0.2.6" @@ -4534,22 +4360,14 @@ dependencies = [ "libc", ] -[[package]] -name = "object" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5b3dd1c072ee7963717671d1ca129f1048fda25edea6b752bfc71ac8854170" -dependencies = [ - "crc32fast", - "indexmap", -] - [[package]] name = "object" version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39f37e50073ccad23b6d09bcb5b263f4e76d3bb6038e4a3c08e52162ffa8abc2" dependencies = [ + "crc32fast", + "indexmap", "memchr", ] @@ -4558,9 +4376,6 @@ name = "once_cell" version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" -dependencies = [ - "parking_lot 0.11.2", -] [[package]] name = "opaque-debug" @@ -4601,13 +4416,13 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", - "pallet-session", "pallet-timestamp", "parity-scale-codec", + "scale-info", "sp-application-crypto", "sp-consensus-aura", "sp-runtime", @@ -4617,12 +4432,13 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", "pallet-session", "parity-scale-codec", + "scale-info", "sp-application-crypto", "sp-authority-discovery", "sp-runtime", @@ -4632,12 +4448,13 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", "parity-scale-codec", + "scale-info", "sp-authorship", "sp-runtime", "sp-std", @@ -4646,7 +4463,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-benchmarking", "frame-support", @@ -4656,6 +4473,7 @@ dependencies = [ "pallet-session", "pallet-timestamp", "parity-scale-codec", + "scale-info", "sp-application-crypto", "sp-consensus-babe", "sp-consensus-vrf", @@ -4666,31 +4484,47 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-bags-list" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +dependencies = [ + "frame-election-provider-support", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", "parity-scale-codec", + "scale-info", "sp-runtime", "sp-std", ] [[package]] name = "pallet-beefy" -version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.10#9954b61657dc8899a21b4f2501ee6bd3b7a2dc23" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "beefy-primitives", "frame-support", "frame-system", "pallet-session", "parity-scale-codec", - "scale-info 0.10.0", + "scale-info", "serde", "sp-runtime", "sp-std", @@ -4698,22 +4532,22 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" -version = "0.1.0" -source = "git+https://github.com/paritytech/grandpa-bridge-gadget?branch=polkadot-v0.9.10#9954b61657dc8899a21b4f2501ee6bd3b7a2dc23" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "beefy-merkle-tree", "beefy-primitives", "frame-support", "frame-system", "hex", - "libsecp256k1 0.6.0", + "libsecp256k1 0.7.0", "log", "pallet-beefy", "pallet-mmr", "pallet-mmr-primitives", "pallet-session", "parity-scale-codec", - "scale-info 0.10.0", + "scale-info", "serde", "sp-core", "sp-io", @@ -4724,25 +4558,50 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", + "log", "pallet-treasury", "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-collator-selection" +version = "3.0.0" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-authorship", + "pallet-session", + "parity-scale-codec", + "scale-info", + "serde", "sp-runtime", + "sp-staking", "sp-std", ] [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "log", "parity-scale-codec", + "scale-info", "sp-core", "sp-io", "sp-runtime", @@ -4752,12 +4611,13 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", + "scale-info", "serde", "sp-io", "sp-runtime", @@ -4767,13 +4627,14 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-election-provider-support", "frame-support", "frame-system", "log", "parity-scale-codec", + "scale-info", "sp-arithmetic", "sp-core", "sp-io", @@ -4786,12 +4647,13 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", "log", "parity-scale-codec", + "scale-info", "sp-core", "sp-io", "sp-npos-elections", @@ -4802,7 +4664,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-benchmarking", "frame-support", @@ -4811,6 +4673,7 @@ dependencies = [ "pallet-authorship", "pallet-session", "parity-scale-codec", + "scale-info", "sp-application-crypto", "sp-core", "sp-finality-grandpa", @@ -4824,13 +4687,14 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "enumflags2", "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", + "scale-info", "sp-io", "sp-runtime", "sp-std", @@ -4839,13 +4703,14 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", "log", "pallet-authorship", "parity-scale-codec", + "scale-info", "sp-application-crypto", "sp-core", "sp-io", @@ -4857,11 +4722,12 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", + "scale-info", "sp-core", "sp-io", "sp-keyring", @@ -4872,13 +4738,15 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", "parity-scale-codec", + "scale-info", + "sp-core", "sp-io", "sp-runtime", "sp-std", @@ -4887,7 +4755,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -4895,6 +4763,7 @@ dependencies = [ "frame-system", "pallet-mmr-primitives", "parity-scale-codec", + "scale-info", "sp-core", "sp-io", "sp-runtime", @@ -4904,7 +4773,7 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", @@ -4920,7 +4789,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4931,19 +4800,18 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-core", - "sp-rpc", "sp-runtime", ] [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", - "sp-core", + "scale-info", "sp-io", "sp-runtime", "sp-std", @@ -4952,11 +4820,12 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", + "scale-info", "sp-io", "sp-runtime", "sp-std", @@ -4965,13 +4834,14 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", "log", "pallet-balances", "parity-scale-codec", + "scale-info", "serde", "sp-runtime", "sp-staking", @@ -4981,12 +4851,12 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", - "sp-core", + "scale-info", "sp-io", "sp-runtime", "sp-std", @@ -4995,12 +4865,13 @@ dependencies = [ [[package]] name = "pallet-randomness-collective-flip" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", "safe-mix", + "scale-info", "sp-runtime", "sp-std", ] @@ -5008,13 +4879,14 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", "parity-scale-codec", + "scale-info", "sp-io", "sp-runtime", "sp-std", @@ -5023,7 +4895,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", @@ -5031,6 +4903,7 @@ dependencies = [ "log", "pallet-timestamp", "parity-scale-codec", + "scale-info", "sp-core", "sp-io", "sp-runtime", @@ -5043,7 +4916,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-election-provider-support", "frame-support", @@ -5052,20 +4925,19 @@ dependencies = [ "pallet-authorship", "pallet-session", "parity-scale-codec", - "paste", + "scale-info", "serde", "sp-application-crypto", "sp-io", "sp-runtime", "sp-staking", "sp-std", - "static_assertions", ] [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -5076,11 +4948,12 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", + "scale-info", "sp-io", "sp-runtime", "sp-std", @@ -5088,12 +4961,13 @@ dependencies = [ [[package]] name = "pallet-template" -version = "3.0.0" +version = "0.1.0" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", + "scale-info", "serde", "sp-core", "sp-io", @@ -5103,14 +4977,14 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "impl-trait-for-tuples", "log", "parity-scale-codec", + "scale-info", "sp-inherents", "sp-io", "sp-runtime", @@ -5121,13 +4995,17 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", + "log", "pallet-treasury", "parity-scale-codec", + "scale-info", "serde", + "sp-core", + "sp-io", "sp-runtime", "sp-std", ] @@ -5135,13 +5013,14 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", + "scale-info", "serde", - "smallvec 1.6.1", + "smallvec", "sp-core", "sp-io", "sp-runtime", @@ -5151,7 +5030,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5168,7 +5047,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5179,13 +5058,14 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", "pallet-balances", "parity-scale-codec", + "scale-info", "serde", "sp-runtime", "sp-std", @@ -5194,11 +5074,12 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", + "scale-info", "sp-core", "sp-io", "sp-runtime", @@ -5208,26 +5089,29 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ - "enumflags2", "frame-support", "frame-system", + "log", "parity-scale-codec", + "scale-info", "sp-runtime", "sp-std", ] [[package]] name = "pallet-xcm" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "frame-support", "frame-system", "log", "parity-scale-codec", + "scale-info", "serde", + "sp-core", "sp-runtime", "sp-std", "xcm", @@ -5235,8 +5119,21 @@ dependencies = [ ] [[package]] -name = "parachain-collator" -version = "3.0.0" +name = "parachain-info" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +dependencies = [ + "cumulus-primitives-core", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "serde", +] + +[[package]] +name = "parachain-template-node" +version = "0.1.0" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -5253,7 +5150,7 @@ dependencies = [ "jsonrpc-core", "log", "pallet-transaction-payment-rpc", - "parachain-runtime", + "parachain-template-runtime", "parity-scale-codec", "polkadot-cli", "polkadot-parachain", @@ -5274,6 +5171,7 @@ dependencies = [ "sc-telemetry", "sc-tracing", "sc-transaction-pool", + "sc-transaction-pool-api", "serde", "sp-api", "sp-block-builder", @@ -5295,20 +5193,8 @@ dependencies = [ ] [[package]] -name = "parachain-info" +name = "parachain-template-runtime" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.10#870b214693856e768ba482fe2d3b9a83b24e4540" -dependencies = [ - "cumulus-primitives-core", - "frame-support", - "frame-system", - "parity-scale-codec", - "serde", -] - -[[package]] -name = "parachain-runtime" -version = "3.0.0" dependencies = [ "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", @@ -5326,8 +5212,11 @@ dependencies = [ "frame-system-rpc-runtime-api", "log", "pallet-aura", + "pallet-authorship", "pallet-balances", + "pallet-collator-selection", "pallet-randomness-collective-flip", + "pallet-session", "pallet-sudo", "pallet-template", "pallet-timestamp", @@ -5337,7 +5226,10 @@ dependencies = [ "parachain-info", "parity-scale-codec", "polkadot-parachain", + "polkadot-runtime-common", + "scale-info", "serde", + "smallvec", "sp-api", "sp-block-builder", "sp-consensus-aura", @@ -5358,9 +5250,9 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.2.4" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e337f62db341435f0da05b8f6b97e984ef4ea5800510cd07c2d624688c40b47" +checksum = "91b679c6acc14fac74382942e2b73bea441686a33430b951ea03b5aeb6a7f254" dependencies = [ "blake2-rfc", "crc32fast", @@ -5368,16 +5260,18 @@ dependencies = [ "hex", "libc", "log", + "lz4", "memmap2", "parking_lot 0.11.2", "rand 0.8.4", + "snap", ] [[package]] name = "parity-scale-codec" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e11263a97373b43da4b426edbb52ef99a7b51e2d9752ef56a7f8b356f48495a5" +checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" dependencies = [ "arrayvec 0.7.1", "bitvec 0.20.4", @@ -5389,9 +5283,9 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b157dc92b3db2bae522afb31b3843e91ae097eb01d66c72dda66a2e86bc3ca14" +checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -5407,20 +5301,15 @@ checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f" [[package]] name = "parity-tokio-ipc" -version = "0.4.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e57fea504fea33f9fbb5f49f378359030e7e026a6ab849bb9e8f0787376f1bf" +checksum = "9981e32fb75e004cc148f5fb70342f393830e0a4aa62e3cc93b50976218d42b6" dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", + "futures 0.3.17", "libc", "log", - "mio-named-pipes", - "miow 0.3.7", "rand 0.7.3", - "tokio 0.1.22", - "tokio-named-pipes", - "tokio-uds", + "tokio", "winapi 0.3.9", ] @@ -5438,7 +5327,7 @@ dependencies = [ "parity-util-mem-derive", "parking_lot 0.11.2", "primitive-types", - "smallvec 1.6.1", + "smallvec", "winapi 0.3.9", ] @@ -5470,15 +5359,15 @@ checksum = "be5e13c266502aadf83426d87d81a0f5d1ef45b8027f5a471c360abfe4bfae92" [[package]] name = "parity-ws" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322d72dfe461b8b9e367d057ceace105379d64d5b03907d23c481ccf3fbf8aa4" +checksum = "d0ab8a461779bd022964cae2b4989fa9c99deb270bec162da2125ec03c09fcaa" dependencies = [ "byteorder", "bytes 0.4.12", "httparse", "log", - "mio", + "mio 0.6.23", "mio-extras", "rand 0.7.3", "sha-1 0.8.2", @@ -5492,17 +5381,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" -[[package]] -name = "parking_lot" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" -dependencies = [ - "lock_api 0.3.4", - "parking_lot_core 0.6.2", - "rustc_version 0.2.3", -] - [[package]] name = "parking_lot" version = "0.10.2" @@ -5526,44 +5404,29 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.6.2" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" +checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3" dependencies = [ "cfg-if 0.1.10", "cloudabi", "libc", "redox_syscall 0.1.57", - "rustc_version 0.2.3", - "smallvec 0.6.14", + "smallvec", "winapi 0.3.9", ] [[package]] name = "parking_lot_core" -version = "0.7.2" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3" -dependencies = [ - "cfg-if 0.1.10", - "cloudabi", - "libc", - "redox_syscall 0.1.57", - "smallvec 1.6.1", - "winapi 0.3.9", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" dependencies = [ "cfg-if 1.0.0", "instant", "libc", "redox_syscall 0.2.10", - "smallvec 1.6.1", + "smallvec", "winapi 0.3.9", ] @@ -5591,12 +5454,6 @@ dependencies = [ "crypto-mac 0.11.1", ] -[[package]] -name = "pdqselect" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec91767ecc0a0bbe558ce8c9da33c068066c57ecc8bb8477ef8c1ad3ef77c27" - [[package]] name = "peeking_take_while" version = "0.1.2" @@ -5740,8 +5597,8 @@ checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325" [[package]] name = "polkadot-approval-distribution" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "futures 0.3.17", "polkadot-node-network-protocol", @@ -5754,8 +5611,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "futures 0.3.17", "polkadot-node-network-protocol", @@ -5767,22 +5624,20 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "derive_more", "futures 0.3.17", "lru", "parity-scale-codec", "polkadot-erasure-coding", - "polkadot-node-core-runtime-api", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", "rand 0.8.4", - "sp-application-crypto", "sp-core", "sp-keystore", "thiserror", @@ -5791,8 +5646,8 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "futures 0.3.17", "lru", @@ -5804,14 +5659,15 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "rand 0.8.4", + "sc-network", "thiserror", "tracing", ] [[package]] name = "polkadot-cli" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "frame-benchmarking-cli", "futures 0.3.17", @@ -5830,8 +5686,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -5860,8 +5716,8 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "always-assert", "derive_more", @@ -5881,11 +5737,12 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "parity-scale-codec", "parity-util-mem", + "scale-info", "sp-core", "sp-runtime", "sp-std", @@ -5893,24 +5750,21 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "derive_more", "futures 0.3.17", "lru", "parity-scale-codec", "polkadot-erasure-coding", - "polkadot-node-core-runtime-api", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.4", "sc-network", "sp-application-crypto", - "sp-core", "sp-keystore", "thiserror", "tracing", @@ -5918,8 +5772,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -5932,16 +5786,18 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "futures 0.3.17", + "futures-timer 3.0.2", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", "rand 0.8.4", "rand_chacha 0.3.1", + "sc-network", "sp-application-crypto", "sp-core", "sp-keystore", @@ -5950,8 +5806,8 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "async-trait", "futures 0.3.17", @@ -5969,8 +5825,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "futures 0.3.17", "parity-scale-codec", @@ -5987,8 +5843,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "bitvec 0.20.4", "derive_more", @@ -6004,11 +5860,9 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", - "sc-client-api", "sc-keystore", "schnorrkel", "sp-application-crypto", - "sp-blockchain", "sp-consensus", "sp-consensus-slots", "sp-runtime", @@ -6017,8 +5871,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "bitvec 0.20.4", "futures 0.3.17", @@ -6037,8 +5891,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "bitvec 0.20.4", "futures 0.3.17", @@ -6055,8 +5909,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "futures 0.3.17", "polkadot-node-subsystem", @@ -6070,8 +5924,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "async-trait", "futures 0.3.17", @@ -6088,8 +5942,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "futures 0.3.17", "polkadot-node-subsystem", @@ -6103,8 +5957,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "futures 0.3.17", "futures-timer 3.0.2", @@ -6120,8 +5974,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "bitvec 0.20.4", "derive_more", @@ -6139,8 +5993,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-participation" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "futures 0.3.17", "polkadot-node-primitives", @@ -6152,8 +6006,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "async-trait", "futures 0.3.17", @@ -6169,8 +6023,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "bitvec 0.20.4", "futures 0.3.17", @@ -6184,8 +6038,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "always-assert", "assert_matches", @@ -6197,6 +6051,7 @@ dependencies = [ "parity-scale-codec", "pin-project 1.0.8", "polkadot-core-primitives", + "polkadot-node-subsystem-util", "polkadot-parachain", "rand 0.8.4", "sc-executor", @@ -6214,8 +6069,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "futures 0.3.17", "memory-lru", @@ -6232,8 +6087,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "async-std", "lazy_static", @@ -6250,24 +6105,19 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ - "async-trait", "futures 0.3.17", "futures-timer 3.0.2", "metered-channel", - "sc-network", - "sp-application-crypto", - "sp-core", - "sp-keystore", "substrate-prometheus-endpoint", ] [[package]] name = "polkadot-node-network-protocol" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "async-trait", "derive_more", @@ -6278,20 +6128,20 @@ dependencies = [ "polkadot-primitives", "sc-authority-discovery", "sc-network", - "strum", + "strum 0.21.0", "thiserror", ] [[package]] name = "polkadot-node-primitives" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ + "bounded-vec", "futures 0.3.17", "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", - "polkadot-statement-table", "schnorrkel", "serde", "sp-application-crypto", @@ -6300,16 +6150,14 @@ dependencies = [ "sp-core", "sp-keystore", "sp-maybe-compressed-blob", - "sp-runtime", "thiserror", - "tracing", "zstd", ] [[package]] name = "polkadot-node-subsystem" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -6318,20 +6166,11 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ - "async-std", - "async-trait", "derive_more", "futures 0.3.17", - "futures-timer 3.0.2", - "lazy_static", - "log", - "mick-jaeger", - "parity-scale-codec", - "parking_lot 0.11.2", - "pin-project 1.0.8", "polkadot-node-jaeger", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -6339,22 +6178,19 @@ dependencies = [ "polkadot-primitives", "polkadot-statement-table", "sc-network", - "smallvec 1.6.1", - "sp-core", + "smallvec", "substrate-prometheus-endpoint", "thiserror", - "tracing", ] [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "async-trait", "derive_more", "futures 0.3.17", - "futures-timer 3.0.2", "itertools", "lru", "metered-channel", @@ -6363,35 +6199,31 @@ dependencies = [ "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", - "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", "rand 0.8.4", - "sc-network", "sp-application-crypto", "sp-core", "sp-keystore", - "substrate-prometheus-endpoint", "thiserror", "tracing", ] [[package]] name = "polkadot-overseer" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ - "async-trait", "futures 0.3.17", "futures-timer 3.0.2", "lru", + "parity-util-mem", "parking_lot 0.11.2", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem-types", - "polkadot-overseer-all-subsystems-gen", "polkadot-overseer-gen", "polkadot-primitives", "sc-client-api", @@ -6399,21 +6231,10 @@ dependencies = [ "tracing", ] -[[package]] -name = "polkadot-overseer-all-subsystems-gen" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" -dependencies = [ - "assert_matches", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "polkadot-overseer-gen" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "async-trait", "futures 0.3.17", @@ -6429,8 +6250,8 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen-proc-macro" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -6440,14 +6261,15 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "derive_more", "frame-support", "parity-scale-codec", "parity-util-mem", "polkadot-core-primitives", + "scale-info", "serde", "sp-core", "sp-runtime", @@ -6456,8 +6278,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "bitvec 0.20.4", "frame-system", @@ -6466,6 +6288,7 @@ dependencies = [ "parity-util-mem", "polkadot-core-primitives", "polkadot-parachain", + "scale-info", "serde", "sp-api", "sp-application-crypto", @@ -6481,20 +6304,18 @@ dependencies = [ "sp-std", "sp-trie", "sp-version", - "thiserror", ] [[package]] name = "polkadot-rpc" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", "jsonrpc-core", "pallet-mmr-rpc", "pallet-transaction-payment-rpc", - "parity-scale-codec", "polkadot-primitives", "sc-chain-spec", "sc-client-api", @@ -6503,7 +6324,6 @@ dependencies = [ "sc-consensus-epochs", "sc-finality-grandpa", "sc-finality-grandpa-rpc", - "sc-keystore", "sc-rpc", "sc-sync-state-rpc", "sc-transaction-pool-api", @@ -6519,8 +6339,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "beefy-primitives", "bitvec 0.20.4", @@ -6564,10 +6384,12 @@ dependencies = [ "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-common", + "polkadot-runtime-parachains", "rustc-hex", + "scale-info", "serde", "serde_derive", - "smallvec 1.6.1", + "smallvec", "sp-api", "sp-authority-discovery", "sp-block-builder", @@ -6589,20 +6411,22 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ + "beefy-primitives", "bitvec 0.20.4", + "frame-election-provider-support", "frame-support", "frame-system", "impl-trait-for-tuples", - "libsecp256k1 0.6.0", + "libsecp256k1 0.7.0", "log", "pallet-authorship", + "pallet-bags-list", "pallet-balances", "pallet-beefy-mmr", "pallet-election-provider-multi-phase", - "pallet-offences", "pallet-session", "pallet-staking", "pallet-timestamp", @@ -6613,6 +6437,7 @@ dependencies = [ "polkadot-primitives", "polkadot-runtime-parachains", "rustc-hex", + "scale-info", "serde", "serde_derive", "slot-range-helper", @@ -6620,6 +6445,7 @@ dependencies = [ "sp-core", "sp-inherents", "sp-io", + "sp-npos-elections", "sp-runtime", "sp-session", "sp-staking", @@ -6630,8 +6456,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "bitflags", "bitvec 0.20.4", @@ -6642,7 +6468,6 @@ dependencies = [ "pallet-authority-discovery", "pallet-authorship", "pallet-balances", - "pallet-offences", "pallet-session", "pallet-staking", "pallet-timestamp", @@ -6652,6 +6477,7 @@ dependencies = [ "rand 0.8.4", "rand_chacha 0.3.1", "rustc-hex", + "scale-info", "serde", "sp-api", "sp-core", @@ -6668,8 +6494,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "async-trait", "beefy-gadget", @@ -6679,6 +6505,7 @@ dependencies = [ "hex-literal", "kvdb", "kvdb-rocksdb", + "lru", "pallet-babe", "pallet-im-online", "pallet-mmr-primitives", @@ -6762,8 +6589,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "arrayvec 0.5.2", "derive_more", @@ -6783,8 +6610,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -6793,8 +6620,8 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "beefy-primitives", "bitvec 0.20.4", @@ -6828,9 +6655,10 @@ dependencies = [ "polkadot-runtime-common", "polkadot-runtime-parachains", "rustc-hex", + "scale-info", "serde", "serde_derive", - "smallvec 1.6.1", + "smallvec", "sp-api", "sp-authority-discovery", "sp-block-builder", @@ -6853,8 +6681,8 @@ dependencies = [ [[package]] name = "polkadot-test-service" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "frame-benchmarking", "frame-system", @@ -6900,6 +6728,7 @@ dependencies = [ "sp-state-machine", "substrate-test-client", "tempfile", + "tokio", "tracing", ] @@ -6922,7 +6751,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" dependencies = [ - "cpufeatures", + "cpufeatures 0.2.1", "opaque-debug 0.3.0", "universal-hash", ] @@ -6934,16 +6763,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" dependencies = [ "cfg-if 1.0.0", - "cpufeatures", + "cpufeatures 0.2.1", "opaque-debug 0.3.0", "universal-hash", ] [[package]] name = "ppv-lite86" -version = "0.2.10" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" +checksum = "c3ca011bd0129ff4ae15cd04c4eef202cadf6c51c21e47aba319b4e0501db741" [[package]] name = "primitive-types" @@ -6955,6 +6784,7 @@ dependencies = [ "impl-codec", "impl-rlp", "impl-serde", + "scale-info", "uint", ] @@ -7041,9 +6871,9 @@ checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" [[package]] name = "proc-macro2" -version = "1.0.29" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f5105d4fdaab20335ca9565e106a5d9b82b6219b5ba735731124ac6711d23d" +checksum = "edc3358ebc67bc8b7fa0c007f945b0b18226f78437d61bec735a9eb96b61ee70" dependencies = [ "unicode-xid", ] @@ -7158,9 +6988,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" +checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05" dependencies = [ "proc-macro2", ] @@ -7177,29 +7007,6 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" -[[package]] -name = "rand" -version = "0.3.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c" -dependencies = [ - "libc", - "rand 0.4.6", -] - -[[package]] -name = "rand" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" -dependencies = [ - "fuchsia-cprng", - "libc", - "rand_core 0.3.1", - "rdrand", - "winapi 0.3.9", -] - [[package]] name = "rand" version = "0.7.3" @@ -7246,21 +7053,6 @@ dependencies = [ "rand_core 0.6.3", ] -[[package]] -name = "rand_core" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" -dependencies = [ - "rand_core 0.4.2", -] - -[[package]] -name = "rand_core" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" - [[package]] name = "rand_core" version = "0.5.1" @@ -7329,7 +7121,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" dependencies = [ "autocfg", - "crossbeam-deque 0.8.1", + "crossbeam-deque", "either", "rayon-core", ] @@ -7341,21 +7133,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" dependencies = [ "crossbeam-channel", - "crossbeam-deque 0.8.1", - "crossbeam-utils 0.8.5", + "crossbeam-deque", + "crossbeam-utils", "lazy_static", "num_cpus", ] -[[package]] -name = "rdrand" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -dependencies = [ - "rand_core 0.3.1", -] - [[package]] name = "redox_syscall" version = "0.1.57" @@ -7423,7 +7206,7 @@ dependencies = [ "log", "rustc-hash", "serde", - "smallvec 1.6.1", + "smallvec", ] [[package]] @@ -7467,10 +7250,9 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ - "env_logger 0.8.4", - "hex", + "env_logger 0.9.0", "jsonrpsee-proc-macros", "jsonrpsee-ws-client", "log", @@ -7480,6 +7262,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", + "sp-version", ] [[package]] @@ -7588,19 +7371,6 @@ dependencies = [ "semver 0.11.0", ] -[[package]] -name = "rustls" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81" -dependencies = [ - "base64 0.12.3", - "log", - "ring", - "sct", - "webpki", -] - [[package]] name = "rustls" version = "0.19.1" @@ -7614,18 +7384,6 @@ dependencies = [ "webpki", ] -[[package]] -name = "rustls-native-certs" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629d439a7672da82dd955498445e496ee2096fe2117b9f796558a43fdb9e59b8" -dependencies = [ - "openssl-probe", - "rustls 0.18.1", - "schannel", - "security-framework 1.0.0", -] - [[package]] name = "rustls-native-certs" version = "0.5.0" @@ -7633,19 +7391,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092" dependencies = [ "openssl-probe", - "rustls 0.19.1", + "rustls", "schannel", - "security-framework 2.4.2", -] - -[[package]] -name = "ruzstd" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cada0ef59efa6a5f4dc5e491f93d9f31e3fc7758df421ff1de8a706338e1100" -dependencies = [ - "byteorder", - "twox-hash", + "security-framework", ] [[package]] @@ -7695,7 +7443,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "log", "sp-core", @@ -7706,11 +7454,10 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "async-trait", "derive_more", - "either", "futures 0.3.17", "futures-timer 3.0.2", "ip_network", @@ -7722,7 +7469,6 @@ dependencies = [ "rand 0.7.3", "sc-client-api", "sc-network", - "serde_json", "sp-api", "sp-authority-discovery", "sp-blockchain", @@ -7735,7 +7481,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "futures 0.3.17", "futures-timer 3.0.2", @@ -7758,7 +7504,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7774,7 +7520,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7790,7 +7536,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -7801,7 +7547,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "chrono", "fdlimit", @@ -7820,6 +7566,7 @@ dependencies = [ "sc-service", "sc-telemetry", "sc-tracing", + "sc-utils", "serde", "serde_json", "sp-blockchain", @@ -7828,54 +7575,46 @@ dependencies = [ "sp-keystore", "sp-panic-handler", "sp-runtime", - "sp-utils", "sp-version", "structopt", "thiserror", "tiny-bip39", - "tokio 0.2.25", + "tokio", ] [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ - "derive_more", "fnv", "futures 0.3.17", "hash-db", - "kvdb", - "lazy_static", "log", "parity-scale-codec", "parking_lot 0.11.2", "sc-executor", "sc-transaction-pool-api", + "sc-utils", "sp-api", "sp-blockchain", "sp-consensus", "sp-core", "sp-database", "sp-externalities", - "sp-inherents", "sp-keystore", "sp-runtime", "sp-state-machine", - "sp-std", "sp-storage", "sp-trie", - "sp-utils", - "sp-version", "substrate-prometheus-endpoint", ] [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ - "blake2-rfc", "hash-db", "kvdb", "kvdb-memorydb", @@ -7884,10 +7623,8 @@ dependencies = [ "log", "parity-db", "parity-scale-codec", - "parity-util-mem", "parking_lot 0.11.2", "sc-client-api", - "sc-executor", "sc-state-db", "sp-arithmetic", "sp-blockchain", @@ -7896,13 +7633,12 @@ dependencies = [ "sp-runtime", "sp-state-machine", "sp-trie", - "substrate-prometheus-endpoint", ] [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "async-trait", "futures 0.3.17", @@ -7911,6 +7647,7 @@ dependencies = [ "log", "parking_lot 0.11.2", "sc-client-api", + "sc-utils", "serde", "sp-api", "sp-blockchain", @@ -7918,21 +7655,18 @@ dependencies = [ "sp-core", "sp-runtime", "sp-state-machine", - "sp-utils", "substrate-prometheus-endpoint", "thiserror", - "wasm-timer", ] [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "async-trait", "derive_more", "futures 0.3.17", - "futures-timer 3.0.2", "log", "parity-scale-codec", "sc-block-builder", @@ -7949,23 +7683,20 @@ dependencies = [ "sp-consensus-slots", "sp-core", "sp-inherents", - "sp-io", "sp-keystore", "sp-runtime", - "sp-version", "substrate-prometheus-endpoint", ] [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "async-trait", "derive_more", "fork-tree", "futures 0.3.17", - "futures-timer 3.0.2", "log", "merlin", "num-bigint", @@ -7973,14 +7704,12 @@ dependencies = [ "num-traits", "parity-scale-codec", "parking_lot 0.11.2", - "pdqselect", "rand 0.7.3", "retain_mut", "sc-client-api", "sc-consensus", "sc-consensus-epochs", "sc-consensus-slots", - "sc-consensus-uncles", "sc-keystore", "sc-telemetry", "schnorrkel", @@ -7998,7 +7727,6 @@ dependencies = [ "sp-io", "sp-keystore", "sp-runtime", - "sp-utils", "sp-version", "substrate-prometheus-endpoint", ] @@ -8006,7 +7734,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "derive_more", "futures 0.3.17", @@ -8030,7 +7758,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8043,19 +7771,17 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "async-trait", "futures 0.3.17", "futures-timer 3.0.2", - "impl-trait-for-tuples", "log", "parity-scale-codec", "sc-client-api", "sc-consensus", "sc-telemetry", "sp-api", - "sp-application-crypto", "sp-arithmetic", "sp-blockchain", "sp-consensus", @@ -8065,14 +7791,13 @@ dependencies = [ "sp-runtime", "sp-state-machine", "sp-timestamp", - "sp-trie", "thiserror", ] [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "sc-client-api", "sp-authorship", @@ -8083,14 +7808,12 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ - "derive_more", "lazy_static", "libsecp256k1 0.6.0", "log", "parity-scale-codec", - "parity-wasm 0.42.2", "parking_lot 0.11.2", "sc-executor-common", "sc-executor-wasmi", @@ -8101,7 +7824,6 @@ dependencies = [ "sp-io", "sp-panic-handler", "sp-runtime-interface", - "sp-serializer", "sp-tasks", "sp-trie", "sp-version", @@ -8112,9 +7834,10 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "derive_more", + "environmental", "parity-scale-codec", "pwasm-utils", "sc-allocator", @@ -8129,12 +7852,13 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "log", "parity-scale-codec", "sc-allocator", "sc-executor-common", + "scoped-tls", "sp-core", "sp-runtime-interface", "sp-wasm-interface", @@ -8144,17 +7868,15 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "cfg-if 1.0.0", "libc", "log", "parity-scale-codec", "parity-wasm 0.42.2", - "pwasm-utils", "sc-allocator", "sc-executor-common", - "scoped-tls", "sp-core", "sp-runtime-interface", "sp-wasm-interface", @@ -8164,7 +7886,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "async-trait", "derive_more", @@ -8173,11 +7895,9 @@ dependencies = [ "fork-tree", "futures 0.3.17", "futures-timer 3.0.2", - "linked-hash-map", "log", "parity-scale-codec", "parking_lot 0.11.2", - "pin-project 1.0.8", "rand 0.8.4", "sc-block-builder", "sc-client-api", @@ -8186,6 +7906,7 @@ dependencies = [ "sc-network", "sc-network-gossip", "sc-telemetry", + "sc-utils", "serde_json", "sp-api", "sp-application-crypto", @@ -8194,18 +7915,15 @@ dependencies = [ "sp-consensus", "sp-core", "sp-finality-grandpa", - "sp-inherents", "sp-keystore", "sp-runtime", - "sp-utils", "substrate-prometheus-endpoint", - "wasm-timer", ] [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "derive_more", "finality-grandpa", @@ -8229,7 +7947,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "ansi_term 0.12.1", "futures 0.3.17", @@ -8241,36 +7959,29 @@ dependencies = [ "sc-transaction-pool-api", "sp-blockchain", "sp-runtime", - "wasm-timer", ] [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "async-trait", "derive_more", - "futures 0.3.17", - "futures-util", "hex", - "merlin", "parking_lot 0.11.2", - "rand 0.7.3", "serde_json", "sp-application-crypto", "sp-core", "sp-keystore", - "subtle", ] [[package]] name = "sc-light" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "hash-db", - "lazy_static", "parity-scale-codec", "parking_lot 0.11.2", "sc-client-api", @@ -8286,18 +7997,16 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "async-std", "async-trait", "asynchronous-codec 0.5.0", "bitflags", - "bs58", "bytes 1.1.0", "cid", "derive_more", "either", - "erased-serde", "fnv", "fork-tree", "futures 0.3.17", @@ -8309,7 +8018,6 @@ dependencies = [ "linked_hash_set", "log", "lru", - "nohash-hasher", "parity-scale-codec", "parking_lot 0.11.2", "pin-project 1.0.8", @@ -8320,28 +8028,27 @@ dependencies = [ "sc-client-api", "sc-consensus", "sc-peerset", + "sc-utils", "serde", "serde_json", - "smallvec 1.6.1", + "smallvec", "sp-arithmetic", "sp-blockchain", "sp-consensus", "sp-core", "sp-finality-grandpa", "sp-runtime", - "sp-utils", "substrate-prometheus-endpoint", "thiserror", "unsigned-varint 0.6.0", "void", - "wasm-timer", "zeroize", ] [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "futures 0.3.17", "futures-timer 3.0.2", @@ -8352,20 +8059,19 @@ dependencies = [ "sp-runtime", "substrate-prometheus-endpoint", "tracing", - "wasm-timer", ] [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ - "bytes 0.5.6", + "bytes 1.1.0", "fnv", "futures 0.3.17", "futures-timer 3.0.2", "hex", - "hyper 0.13.10", + "hyper", "hyper-rustls", "log", "num_cpus", @@ -8373,33 +8079,32 @@ dependencies = [ "parking_lot 0.11.2", "rand 0.7.3", "sc-client-api", - "sc-keystore", "sc-network", + "sc-utils", "sp-api", "sp-core", "sp-offchain", "sp-runtime", - "sp-utils", "threadpool", ] [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "futures 0.3.17", "libp2p", "log", + "sc-utils", "serde_json", - "sp-utils", "wasm-timer", ] [[package]] name = "sc-proposer-metrics" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8408,7 +8113,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "futures 0.3.17", "hash-db", @@ -8420,11 +8125,10 @@ dependencies = [ "sc-block-builder", "sc-chain-spec", "sc-client-api", - "sc-executor", - "sc-keystore", "sc-rpc-api", "sc-tracing", "sc-transaction-pool-api", + "sc-utils", "serde_json", "sp-api", "sp-blockchain", @@ -8434,18 +8138,14 @@ dependencies = [ "sp-rpc", "sp-runtime", "sp-session", - "sp-state-machine", - "sp-tracing", - "sp-utils", "sp-version", ] [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ - "derive_more", "futures 0.3.17", "jsonrpc-core", "jsonrpc-core-client", @@ -8463,41 +8163,39 @@ dependencies = [ "sp-runtime", "sp-tracing", "sp-version", + "thiserror", ] [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ - "futures 0.1.31", + "futures 0.3.17", "jsonrpc-core", "jsonrpc-http-server", "jsonrpc-ipc-server", "jsonrpc-pubsub", "jsonrpc-ws-server", "log", - "serde", "serde_json", - "sp-runtime", "substrate-prometheus-endpoint", + "tokio", ] [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "async-trait", "directories", "exit-future", - "futures 0.1.31", "futures 0.3.17", "futures-timer 3.0.2", "hash-db", "jsonrpc-core", "jsonrpc-pubsub", - "lazy_static", "log", "parity-scale-codec", "parity-util-mem", @@ -8521,6 +8219,7 @@ dependencies = [ "sc-tracing", "sc-transaction-pool", "sc-transaction-pool-api", + "sc-utils", "serde", "serde_json", "sp-api", @@ -8531,7 +8230,6 @@ dependencies = [ "sp-core", "sp-externalities", "sp-inherents", - "sp-io", "sp-keystore", "sp-runtime", "sp-session", @@ -8541,20 +8239,19 @@ dependencies = [ "sp-transaction-pool", "sp-transaction-storage-proof", "sp-trie", - "sp-utils", "sp-version", "substrate-prometheus-endpoint", "tempfile", "thiserror", + "tokio", "tracing", "tracing-futures", - "wasm-timer", ] [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "log", "parity-scale-codec", @@ -8563,13 +8260,12 @@ dependencies = [ "parking_lot 0.11.2", "sc-client-api", "sp-core", - "thiserror", ] [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -8591,7 +8287,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "chrono", "futures 0.3.17", @@ -8602,20 +8298,17 @@ dependencies = [ "rand 0.7.3", "serde", "serde_json", - "take_mut", "thiserror", - "void", "wasm-timer", ] [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "ansi_term 0.12.1", "atty", - "erased-serde", "lazy_static", "log", "once_cell", @@ -8624,31 +8317,24 @@ dependencies = [ "rustc-hash", "sc-client-api", "sc-rpc-server", - "sc-telemetry", "sc-tracing-proc-macro", "serde", - "serde_json", "sp-api", - "sp-block-builder", "sp-blockchain", "sp-core", "sp-rpc", "sp-runtime", - "sp-storage", "sp-tracing", "thiserror", "tracing", "tracing-log", "tracing-subscriber", - "wasm-bindgen", - "wasm-timer", - "web-sys", ] [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -8659,9 +8345,8 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ - "derive_more", "futures 0.3.17", "intervalier", "linked-hash-map", @@ -8672,6 +8357,7 @@ dependencies = [ "retain_mut", "sc-client-api", "sc-transaction-pool-api", + "sc-utils", "serde", "sp-api", "sp-blockchain", @@ -8679,21 +8365,18 @@ dependencies = [ "sp-runtime", "sp-tracing", "sp-transaction-pool", - "sp-utils", "substrate-prometheus-endpoint", "thiserror", - "wasm-timer", ] [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "derive_more", "futures 0.3.17", "log", - "parity-scale-codec", "serde", "sp-blockchain", "sp-runtime", @@ -8701,16 +8384,14 @@ dependencies = [ ] [[package]] -name = "scale-info" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2e62ff266e136db561a007c84569985805f84a1d5a08278e52c36aacb6e061b" +name = "sc-utils" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ - "bitvec 0.20.4", - "cfg-if 1.0.0", - "derive_more", - "parity-scale-codec", - "scale-info-derive 0.7.0", + "futures 0.3.17", + "futures-timer 3.0.2", + "lazy_static", + "prometheus", ] [[package]] @@ -8723,19 +8404,8 @@ dependencies = [ "cfg-if 1.0.0", "derive_more", "parity-scale-codec", - "scale-info-derive 1.0.0", -] - -[[package]] -name = "scale-info-derive" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b648fa291891a4c80187a25532f6a7d96b82c70353e30b868b14632b8fe043d6" -dependencies = [ - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", + "scale-info-derive", + "serde", ] [[package]] @@ -8790,6 +8460,26 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +[[package]] +name = "scroll" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fda28d4b4830b807a8b43f7b0e6b5df875311b3e7621d84577188c175b6ec1ec" +dependencies = [ + "scroll_derive", +] + +[[package]] +name = "scroll_derive" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "sct" version = "0.6.1" @@ -8811,47 +8501,24 @@ dependencies = [ [[package]] name = "security-framework" -version = "1.0.0" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad502866817f0575705bd7be36e2b2535cc33262d493aa733a2ec862baa2bc2b" +checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87" dependencies = [ "bitflags", - "core-foundation 0.7.0", - "core-foundation-sys 0.7.0", + "core-foundation", + "core-foundation-sys", "libc", - "security-framework-sys 1.0.0", + "security-framework-sys", ] [[package]] -name = "security-framework" +name = "security-framework-sys" version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87" +checksum = "a9dd14d83160b528b7bfd66439110573efcfbe281b17fc2ca9f39f550d619c7e" dependencies = [ - "bitflags", - "core-foundation 0.9.1", - "core-foundation-sys 0.8.2", - "libc", - "security-framework-sys 2.4.2", -] - -[[package]] -name = "security-framework-sys" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51ceb04988b17b6d1dcd555390fa822ca5637b4a14e1f5099f13d351bed4d6c7" -dependencies = [ - "core-foundation-sys 0.7.0", - "libc", -] - -[[package]] -name = "security-framework-sys" -version = "2.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9dd14d83160b528b7bfd66439110573efcfbe281b17fc2ca9f39f550d619c7e" -dependencies = [ - "core-foundation-sys 0.8.2", + "core-foundation-sys", "libc", ] @@ -8949,7 +8616,7 @@ checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" dependencies = [ "block-buffer 0.9.0", "cfg-if 1.0.0", - "cpufeatures", + "cpufeatures 0.2.1", "digest 0.9.0", "opaque-debug 0.3.0", ] @@ -8974,7 +8641,7 @@ checksum = "b69f9a4c9740d74c5baa3fd2e547f9525fa8088a8a958e0ca2409a514e33f5fa" dependencies = [ "block-buffer 0.9.0", "cfg-if 1.0.0", - "cpufeatures", + "cpufeatures 0.2.1", "digest 0.9.0", "opaque-debug 0.3.0", ] @@ -8993,9 +8660,9 @@ dependencies = [ [[package]] name = "sharded-slab" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740223c51853f3145fe7c90360d2d4232f2b62e3449489c207eccde818979982" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" dependencies = [ "lazy_static", ] @@ -9045,9 +8712,9 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c307a32c1c5c437f38c7fd45d753050587732ba8628319fbdf12a7e289ccc590" +checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" [[package]] name = "slog" @@ -9060,8 +8727,8 @@ dependencies = [ [[package]] name = "slot-range-helper" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "enumn", "parity-scale-codec", @@ -9081,18 +8748,15 @@ dependencies = [ [[package]] name = "smallvec" -version = "0.6.14" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0" -dependencies = [ - "maybe-uninit", -] +checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309" [[package]] -name = "smallvec" -version = "1.6.1" +name = "snap" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" +checksum = "45456094d1983e2ee2a18fdfebce3189fa451699d0502cb8e3b49dba5ba41451" [[package]] name = "snow" @@ -9167,7 +8831,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "hash-db", "log", @@ -9184,7 +8848,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "blake2-rfc", "proc-macro-crate 1.1.0", @@ -9196,9 +8860,10 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "parity-scale-codec", + "scale-info", "serde", "sp-core", "sp-io", @@ -9208,11 +8873,12 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "integer-sqrt", "num-traits", "parity-scale-codec", + "scale-info", "serde", "sp-debug-derive", "sp-std", @@ -9222,9 +8888,10 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "parity-scale-codec", + "scale-info", "sp-api", "sp-application-crypto", "sp-runtime", @@ -9234,7 +8901,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "async-trait", "parity-scale-codec", @@ -9246,7 +8913,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "parity-scale-codec", "sp-api", @@ -9258,7 +8925,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "futures 0.3.17", "log", @@ -9276,36 +8943,30 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "async-trait", "futures 0.3.17", "futures-timer 3.0.2", "log", "parity-scale-codec", - "parking_lot 0.11.2", - "serde", - "sp-api", "sp-core", "sp-inherents", "sp-runtime", "sp-state-machine", "sp-std", - "sp-trie", - "sp-utils", "sp-version", - "substrate-prometheus-endpoint", "thiserror", - "wasm-timer", ] [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "async-trait", "parity-scale-codec", + "scale-info", "sp-api", "sp-application-crypto", "sp-consensus", @@ -9319,11 +8980,12 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "async-trait", "merlin", "parity-scale-codec", + "scale-info", "serde", "sp-api", "sp-application-crypto", @@ -9341,9 +9003,10 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "parity-scale-codec", + "scale-info", "sp-arithmetic", "sp-runtime", ] @@ -9351,7 +9014,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -9363,7 +9026,7 @@ dependencies = [ [[package]] name = "sp-core" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "base58", "blake2-rfc", @@ -9386,6 +9049,7 @@ dependencies = [ "primitive-types", "rand 0.7.3", "regex", + "scale-info", "schnorrkel", "secrecy", "serde", @@ -9407,7 +9071,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "kvdb", "parking_lot 0.11.2", @@ -9416,7 +9080,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "proc-macro2", "quote", @@ -9426,7 +9090,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "environmental", "parity-scale-codec", @@ -9437,11 +9101,12 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "finality-grandpa", "log", "parity-scale-codec", + "scale-info", "serde", "sp-api", "sp-application-crypto", @@ -9454,7 +9119,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9468,7 +9133,7 @@ dependencies = [ [[package]] name = "sp-io" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "futures 0.3.17", "hash-db", @@ -9479,7 +9144,6 @@ dependencies = [ "sp-core", "sp-externalities", "sp-keystore", - "sp-maybe-compressed-blob", "sp-runtime-interface", "sp-state-machine", "sp-std", @@ -9493,18 +9157,18 @@ dependencies = [ [[package]] name = "sp-keyring" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "lazy_static", "sp-core", "sp-runtime", - "strum", + "strum 0.20.0", ] [[package]] name = "sp-keystore" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "async-trait", "derive_more", @@ -9521,29 +9185,30 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ - "ruzstd", "zstd", ] [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "parity-scale-codec", + "scale-info", "serde", "sp-arithmetic", "sp-core", "sp-npos-elections-solution-type", + "sp-runtime", "sp-std", ] [[package]] name = "sp-npos-elections-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -9554,7 +9219,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "sp-api", "sp-core", @@ -9564,7 +9229,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "backtrace", ] @@ -9572,18 +9237,17 @@ dependencies = [ [[package]] name = "sp-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "rustc-hash", "serde", "sp-core", - "tracing-core", ] [[package]] name = "sp-runtime" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "either", "hash256-std-hasher", @@ -9593,6 +9257,7 @@ dependencies = [ "parity-util-mem", "paste", "rand 0.7.3", + "scale-info", "serde", "sp-application-crypto", "sp-arithmetic", @@ -9604,7 +9269,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9621,7 +9286,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "Inflector", "proc-macro-crate 1.1.0", @@ -9633,7 +9298,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "serde", "serde_json", @@ -9642,9 +9307,10 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "parity-scale-codec", + "scale-info", "sp-api", "sp-core", "sp-runtime", @@ -9655,9 +9321,10 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "parity-scale-codec", + "scale-info", "sp-runtime", "sp-std", ] @@ -9665,7 +9332,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "hash-db", "log", @@ -9673,7 +9340,7 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.11.2", "rand 0.7.3", - "smallvec 1.6.1", + "smallvec", "sp-core", "sp-externalities", "sp-panic-handler", @@ -9688,12 +9355,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" [[package]] name = "sp-storage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9706,7 +9373,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "log", "sp-core", @@ -9719,7 +9386,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "async-trait", "futures-timer 3.0.2", @@ -9730,13 +9397,12 @@ dependencies = [ "sp-runtime", "sp-std", "thiserror", - "wasm-timer", ] [[package]] name = "sp-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "erased-serde", "log", @@ -9754,7 +9420,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "sp-api", "sp-runtime", @@ -9763,11 +9429,12 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "async-trait", "log", "parity-scale-codec", + "scale-info", "sp-core", "sp-inherents", "sp-runtime", @@ -9778,37 +9445,27 @@ dependencies = [ [[package]] name = "sp-trie" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "hash-db", "memory-db", "parity-scale-codec", + "scale-info", "sp-core", "sp-std", "trie-db", "trie-root", ] -[[package]] -name = "sp-utils" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" -dependencies = [ - "futures 0.3.17", - "futures-core", - "futures-timer 3.0.2", - "lazy_static", - "prometheus", -] - [[package]] name = "sp-version" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "impl-serde", "parity-scale-codec", "parity-wasm 0.42.2", + "scale-info", "serde", "sp-runtime", "sp-std", @@ -9819,10 +9476,9 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "parity-scale-codec", - "proc-macro-crate 1.1.0", "proc-macro2", "quote", "syn", @@ -9831,7 +9487,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9895,15 +9551,6 @@ dependencies = [ "rand 0.8.4", ] -[[package]] -name = "string" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24114bfcceb867ca7f71a0d3fe45d45619ec47a6fbfa98cb14e14250bfa5d6d" -dependencies = [ - "bytes 0.4.12", -] - [[package]] name = "strsim" version = "0.8.0" @@ -9912,9 +9559,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "structopt" -version = "0.3.23" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf9d950ef167e25e0bdb073cf1d68e9ad2795ac826f2f3f59647817cf23c0bfa" +checksum = "40b9788f4202aa75c240ecc9c15c65185e6a39ccdeb0fd5d008b98825464c87c" dependencies = [ "clap", "lazy_static", @@ -9923,9 +9570,9 @@ dependencies = [ [[package]] name = "structopt-derive" -version = "0.4.16" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134d838a2c9943ac3125cf6df165eda53493451b719f3255b2a26b85f772d0ba" +checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" dependencies = [ "heck", "proc-macro-error 1.0.4", @@ -9940,7 +9587,16 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7318c509b5ba57f18533982607f24070a55d353e90d4cae30c467cdb2ad5ac5c" dependencies = [ - "strum_macros", + "strum_macros 0.20.1", +] + +[[package]] +name = "strum" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2" +dependencies = [ + "strum_macros 0.21.1", ] [[package]] @@ -9955,6 +9611,18 @@ dependencies = [ "syn", ] +[[package]] +name = "strum_macros" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "substrate-bip39" version = "0.4.4" @@ -9971,7 +9639,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "platforms", ] @@ -9979,7 +9647,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.17", @@ -9991,7 +9659,6 @@ dependencies = [ "sc-client-api", "sc-rpc-api", "sc-transaction-pool-api", - "serde", "sp-api", "sp-block-builder", "sp-blockchain", @@ -10002,26 +9669,24 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "async-std", "derive_more", "futures-util", - "hyper 0.13.10", + "hyper", "log", "prometheus", - "tokio 0.2.25", + "tokio", ] [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "async-trait", - "futures 0.1.31", "futures 0.3.17", - "hash-db", "hex", "parity-scale-codec", "sc-client-api", @@ -10045,10 +9710,9 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ "ansi_term 0.12.1", - "atty", "build-helper", "cargo_metadata", "sp-maybe-compressed-blob", @@ -10066,9 +9730,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.77" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5239bc68e0fef57495900cfea4e8dc75596d9a319d7e16b1e0a440d24e6fe0a0" +checksum = "d010a1623fbd906d51d650a9916aaefc05ffa0e4053ff7fe601167f3e715d194" dependencies = [ "proc-macro2", "quote", @@ -10088,9 +9752,9 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "474aaa926faa1603c40b7885a9eaea29b444d1cb2850cb7c0e37bb1a4182f4fa" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", "quote", @@ -10098,12 +9762,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "take_mut" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" - [[package]] name = "tap" version = "1.0.1" @@ -10150,18 +9808,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.29" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "602eca064b2d83369e2b2f34b09c70b605402801927c65c11071ac911d299b88" +checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.29" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bad553cc2c78e8de258400763a647e80e6d1b31ee237275d756f6836d204494c" +checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" dependencies = [ "proc-macro2", "quote", @@ -10212,20 +9870,20 @@ dependencies = [ [[package]] name = "tiny-bip39" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524daa5624d9d4ffb5a0625971d35205b882111daa6b6338a7a6c578a3c36928" +checksum = "ffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839d" dependencies = [ "anyhow", "hmac 0.8.1", "once_cell", - "parking_lot 0.11.2", "pbkdf2 0.4.0", "rand 0.7.3", "rustc-hash", "sha2 0.9.8", "thiserror", "unicode-normalization", + "wasm-bindgen", "zeroize", ] @@ -10255,300 +9913,69 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "mio", - "num_cpus", - "tokio-codec", - "tokio-current-thread", - "tokio-executor", - "tokio-fs", - "tokio-io", - "tokio-reactor", - "tokio-sync", - "tokio-tcp", - "tokio-threadpool", - "tokio-timer", - "tokio-udp", - "tokio-uds", -] - -[[package]] -name = "tokio" -version = "0.2.25" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6703a273949a90131b290be1fe7b039d0fc884aa1935860dfcbe056f28cd8092" +checksum = "c2c2416fdedca8443ae44b4527de1ea633af61d8f7169ffa6e72c5b53d24efcc" dependencies = [ - "bytes 0.5.6", - "fnv", - "futures-core", - "iovec", - "lazy_static", + "autocfg", + "bytes 1.1.0", "libc", "memchr", - "mio", - "mio-uds", + "mio 0.7.14", "num_cpus", - "pin-project-lite 0.1.12", + "once_cell", + "pin-project-lite 0.2.7", "signal-hook-registry", - "slab", "tokio-macros", "winapi 0.3.9", ] -[[package]] -name = "tokio" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2c2416fdedca8443ae44b4527de1ea633af61d8f7169ffa6e72c5b53d24efcc" -dependencies = [ - "autocfg", - "pin-project-lite 0.2.7", -] - -[[package]] -name = "tokio-buf" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46" -dependencies = [ - "bytes 0.4.12", - "either", - "futures 0.1.31", -] - -[[package]] -name = "tokio-codec" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "tokio-io", -] - -[[package]] -name = "tokio-current-thread" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e" -dependencies = [ - "futures 0.1.31", - "tokio-executor", -] - -[[package]] -name = "tokio-executor" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" -dependencies = [ - "crossbeam-utils 0.7.2", - "futures 0.1.31", -] - -[[package]] -name = "tokio-fs" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4" -dependencies = [ - "futures 0.1.31", - "tokio-io", - "tokio-threadpool", -] - -[[package]] -name = "tokio-io" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "log", -] - [[package]] name = "tokio-macros" -version = "0.2.6" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265a" +checksum = "b2dd85aeaba7b68df939bd357c6afb36c87951be9e80bf9c859f2fc3e9fca0fd" dependencies = [ "proc-macro2", "quote", "syn", ] -[[package]] -name = "tokio-named-pipes" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d282d483052288b2308ba5ee795f5673b159c9bdf63c385a05609da782a5eae" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "mio", - "mio-named-pipes", - "tokio 0.1.22", -] - -[[package]] -name = "tokio-reactor" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" -dependencies = [ - "crossbeam-utils 0.7.2", - "futures 0.1.31", - "lazy_static", - "log", - "mio", - "num_cpus", - "parking_lot 0.9.0", - "slab", - "tokio-executor", - "tokio-io", - "tokio-sync", -] - [[package]] name = "tokio-rustls" -version = "0.14.1" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12831b255bcfa39dc0436b01e19fea231a37db570686c06ee72c423479f889a" +checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" dependencies = [ - "futures-core", - "rustls 0.18.1", - "tokio 0.2.25", + "rustls", + "tokio", "webpki", ] [[package]] -name = "tokio-rustls" -version = "0.15.0" +name = "tokio-stream" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03d15e5669243a45f630a5167d101b942174ca94b615445b2057eace1c818736" +checksum = "7b2f3f698253f03119ac0102beaa64f67a67e08074d03a22d18784104543727f" dependencies = [ "futures-core", - "rustls 0.19.1", - "tokio 0.2.25", - "webpki", -] - -[[package]] -name = "tokio-service" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24da22d077e0f15f55162bdbdc661228c1581892f52074fb242678d015b45162" -dependencies = [ - "futures 0.1.31", -] - -[[package]] -name = "tokio-sync" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee" -dependencies = [ - "fnv", - "futures 0.1.31", -] - -[[package]] -name = "tokio-tcp" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "iovec", - "mio", - "tokio-io", - "tokio-reactor", -] - -[[package]] -name = "tokio-threadpool" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" -dependencies = [ - "crossbeam-deque 0.7.4", - "crossbeam-queue", - "crossbeam-utils 0.7.2", - "futures 0.1.31", - "lazy_static", - "log", - "num_cpus", - "slab", - "tokio-executor", -] - -[[package]] -name = "tokio-timer" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" -dependencies = [ - "crossbeam-utils 0.7.2", - "futures 0.1.31", - "slab", - "tokio-executor", -] - -[[package]] -name = "tokio-udp" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "log", - "mio", - "tokio-codec", - "tokio-io", - "tokio-reactor", -] - -[[package]] -name = "tokio-uds" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0" -dependencies = [ - "bytes 0.4.12", - "futures 0.1.31", - "iovec", - "libc", - "log", - "mio", - "mio-uds", - "tokio-codec", - "tokio-io", - "tokio-reactor", + "pin-project-lite 0.2.7", + "tokio", ] [[package]] name = "tokio-util" -version = "0.3.1" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" +checksum = "08d3725d3efa29485e87311c5b699de63cde14b00ed4d256b8318aa30ca452cd" dependencies = [ - "bytes 0.5.6", + "bytes 1.1.0", "futures-core", "futures-io", "futures-sink", "log", - "pin-project-lite 0.1.12", - "tokio 0.2.25", + "pin-project-lite 0.2.7", + "tokio", ] [[package]] @@ -10568,12 +9995,11 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.28" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84f96e095c0c82419687c20ddf5cb3eadb61f4e1405923c9dc8e53a1adacbda8" +checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" dependencies = [ "cfg-if 1.0.0", - "log", "pin-project-lite 0.2.7", "tracing-attributes", "tracing-core", @@ -10581,9 +10007,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.16" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98863d0dd09fa59a1b79c6750ad80dbda6b75f4e71c437a6a1a8cb91a8bcbd77" +checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e" dependencies = [ "proc-macro2", "quote", @@ -10592,9 +10018,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.20" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46125608c26121c81b0c6d693eab5a420e416da7e43c426d2e8f7df8da8a3acf" +checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4" dependencies = [ "lazy_static", ] @@ -10632,9 +10058,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.2.24" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd0568dbfe3baf7048b7908d2b32bca0d81cd56bec6d2a8f894b01d74f86be3" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" dependencies = [ "ansi_term 0.12.1", "chrono", @@ -10644,7 +10070,7 @@ dependencies = [ "serde", "serde_json", "sharded-slab", - "smallvec 1.6.1", + "smallvec", "thread_local", "tracing", "tracing-core", @@ -10662,7 +10088,7 @@ dependencies = [ "hashbrown", "log", "rustc-hex", - "smallvec 1.6.1", + "smallvec", ] [[package]] @@ -10692,7 +10118,7 @@ dependencies = [ "lazy_static", "log", "rand 0.8.4", - "smallvec 1.6.1", + "smallvec", "thiserror", "tinyvec", "url 2.2.2", @@ -10712,7 +10138,7 @@ dependencies = [ "lru-cache", "parking_lot 0.11.2", "resolv-conf", - "smallvec 1.6.1", + "smallvec", "thiserror", "trust-dns-proto", ] @@ -10726,25 +10152,24 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.10#47ed70a3cb50f64b0691c63d2ec2cc80553a2dee" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" dependencies = [ - "frame-try-runtime", + "jsonrpsee-ws-client", "log", "parity-scale-codec", "remote-externalities", "sc-chain-spec", "sc-cli", - "sc-client-api", "sc-executor", "sc-service", "serde", - "sp-api", - "sp-blockchain", "sp-core", "sp-externalities", + "sp-io", "sp-keystore", "sp-runtime", "sp-state-machine", + "sp-version", "structopt", ] @@ -10794,9 +10219,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "246f4c42e67e7a4e3c6106ff716a5d067d4132a642840b242e357e468a2a0085" +checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" [[package]] name = "unicode-normalization" @@ -10945,17 +10370,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "want" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230" -dependencies = [ - "futures 0.1.31", - "log", - "try-lock", -] - [[package]] name = "want" version = "0.3.0" @@ -11096,15 +10510,15 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.78.2" +version = "0.79.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52144d4c78e5cf8b055ceab8e5fa22814ce4315d6002ad32cfd914f37c12fd65" +checksum = "5b5894be15a559c85779254700e1d35f02f843b5a69152e5c82c626d9fd66c0e" [[package]] name = "wasmtime" -version = "0.27.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b310b9d20fcf59385761d1ade7a3ef06aecc380e3d3172035b919eaf7465d9f7" +checksum = "8bbb8a082a8ef50f7eeb8b82dda9709ef1e68963ea3c94e45581644dd4041835" dependencies = [ "anyhow", "backtrace", @@ -11120,7 +10534,7 @@ dependencies = [ "region", "rustc-demangle", "serde", - "smallvec 1.6.1", + "smallvec", "target-lexicon", "wasmparser", "wasmtime-cache", @@ -11133,9 +10547,9 @@ dependencies = [ [[package]] name = "wasmtime-cache" -version = "0.27.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d14d500d5c3dc5f5c097158feee123d64b3097f0d836a2a27dff9c761c73c843" +checksum = "d73391579ca7f24573138ef768b73b2aed5f9d542385c64979b65d60d0912399" dependencies = [ "anyhow", "base64 0.13.0", @@ -11154,9 +10568,9 @@ dependencies = [ [[package]] name = "wasmtime-cranelift" -version = "0.27.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c525b39f062eada7db3c1298287b96dcb6e472b9f6b22501300b28d9fa7582f6" +checksum = "81c6f5ae9205382345c7cd7454932a906186836999a2161c385e38a15f52e1fe" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -11169,14 +10583,14 @@ dependencies = [ [[package]] name = "wasmtime-debug" -version = "0.27.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5d2a763e7a6fc734218e0e463196762a4f409c483063d81e0e85f96343b2e0a" +checksum = "c69e08f55e12f15f50b1b533bc3626723e7224254a065de6576934c86258c9e8" dependencies = [ "anyhow", - "gimli 0.24.0", + "gimli", "more-asserts", - "object 0.24.0", + "object", "target-lexicon", "thiserror", "wasmparser", @@ -11185,15 +10599,15 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "0.27.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64d0c2d881c31b0d65c1f2695e022d71eb60b9fbdd336aacca28208b58eac90" +checksum = "005d93174040af37fb8625f891cd9827afdad314261f7ec4ee61ec497d6e9d3c" dependencies = [ "cfg-if 1.0.0", "cranelift-codegen", "cranelift-entity", "cranelift-wasm", - "gimli 0.24.0", + "gimli", "indexmap", "log", "more-asserts", @@ -11204,11 +10618,11 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "0.27.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4539ea734422b7c868107e2187d7746d8affbcaa71916d72639f53757ad707" +checksum = "d0bf1dfb213a35d8f21aefae40e597fe72778a907011ffdff7affb029a02af9a" dependencies = [ - "addr2line 0.15.2", + "addr2line", "anyhow", "cfg-if 1.0.0", "cranelift-codegen", @@ -11216,10 +10630,10 @@ dependencies = [ "cranelift-frontend", "cranelift-native", "cranelift-wasm", - "gimli 0.24.0", + "gimli", "log", "more-asserts", - "object 0.24.0", + "object", "rayon", "region", "serde", @@ -11237,13 +10651,13 @@ dependencies = [ [[package]] name = "wasmtime-obj" -version = "0.27.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1a8ff85246d091828e2225af521a6208ed28c997bb5c39eb697366dc2e2f2b" +checksum = "d231491878e710c68015228c9f9fc5955fe5c96dbf1485c15f7bed55b622c83c" dependencies = [ "anyhow", "more-asserts", - "object 0.24.0", + "object", "target-lexicon", "wasmtime-debug", "wasmtime-environ", @@ -11251,14 +10665,17 @@ dependencies = [ [[package]] name = "wasmtime-profiling" -version = "0.27.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e24364d522dcd67c897c8fffc42e5bdfc57207bbb6d7eeade0da9d4a7d70105b" +checksum = "21486cfb5255c2069666c1f116f9e949d4e35c9a494f11112fa407879e42198d" dependencies = [ "anyhow", "cfg-if 1.0.0", + "gimli", "lazy_static", "libc", + "object", + "scroll", "serde", "target-lexicon", "wasmtime-environ", @@ -11267,9 +10684,9 @@ dependencies = [ [[package]] name = "wasmtime-runtime" -version = "0.27.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c51e57976e8a19a18a18e002c6eb12e5769554204238e47ff155fda1809ef0f7" +checksum = "d7ddfdf32e0a20d81f48be9dacd31612bc61de5a174d1356fef806d300f507de" dependencies = [ "anyhow", "backtrace", @@ -11280,7 +10697,7 @@ dependencies = [ "libc", "log", "mach", - "memoffset 0.6.4", + "memoffset", "more-asserts", "rand 0.8.4", "region", @@ -11414,9 +10831,9 @@ checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" [[package]] name = "x25519-dalek" -version = "1.2.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2392b6b94a576b4e2bf3c5b2757d63f10ada8020a2e4d08ac849ebcf6ea8e077" +checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f" dependencies = [ "curve25519-dalek 3.2.0", "rand_core 0.5.1", @@ -11425,27 +10842,29 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "derivative", "impl-trait-for-tuples", "log", "parity-scale-codec", + "scale-info", "xcm-procedural", ] [[package]] name = "xcm-builder" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "frame-support", "frame-system", - "impl-trait-for-tuples", + "log", "pallet-transaction-payment", "parity-scale-codec", "polkadot-parachain", + "scale-info", "sp-arithmetic", "sp-io", "sp-runtime", @@ -11456,8 +10875,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.10" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +version = "0.9.11" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -11474,7 +10893,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.10#aeea9b7bd81919e014f7621f6c4b2eb9709d918f" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" dependencies = [ "proc-macro2", "quote", @@ -11497,9 +10916,9 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.3.0" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" +checksum = "bf68b08513768deaa790264a7fac27a58cbf2705cfcdc9448362229217d7e970" dependencies = [ "zeroize_derive", ] @@ -11518,18 +10937,18 @@ dependencies = [ [[package]] name = "zstd" -version = "0.6.1+zstd.1.4.9" +version = "0.9.0+zstd.1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de55e77f798f205d8561b8fe2ef57abfb6e0ff2abe7fd3c089e119cdb5631a3" +checksum = "07749a5dc2cb6b36661290245e350f15ec3bbb304e493db54a1d354480522ccd" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "3.0.1+zstd.1.4.9" +version = "4.1.1+zstd.1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1387cabcd938127b30ce78c4bf00b30387dddf704e3f0881dbc4ff62b5566f8c" +checksum = "c91c90f2c593b003603e5e0493c837088df4469da25aafff8bce42ba48caf079" dependencies = [ "libc", "zstd-sys", @@ -11537,9 +10956,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "1.4.20+zstd.1.4.9" +version = "1.6.1+zstd.1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd5b733d7cf2d9447e2c3e76a5589b4f5e5ae065c22a2bc0b023cbc331b6c8e" +checksum = "615120c7a2431d16cf1cf979e7fc31ba7a5b5e5707b29c8a99e5dbf8a8392a33" dependencies = [ "cc", "libc", diff --git a/README.md b/README.md index 42f53ca9..2ca17bec 100644 --- a/README.md +++ b/README.md @@ -239,7 +239,7 @@ _Output:_ 2021-05-30 16:58:00 [Relaychain] ✨ Imported #10 (0xc9c9…1ca3) ``` -You see messages are from both a relaychain node and a parachain node. This is because a relay chain +You see messages are from both a relay chain node and a parachain node. This is because a relay chain light client is also run next to the parachain collator. ### Parachain Registration diff --git a/node/Cargo.toml b/node/Cargo.toml index 0feaa771..c8ca7617 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -1,94 +1,95 @@ [package] -name = 'parachain-collator' -authors = ['Anonymous'] -description = 'A new Cumulus FRAME-based Substrate node, ready for hacking.' -license = 'Unlicense' -version = '3.0.0' -homepage = 'https://substrate.dev' +name = "parachain-template-node" +version = "0.1.0" +authors = ["Anonymous"] +description = "A new Cumulus FRAME-based Substrate Node, ready for hacking together a parachain." +license = "Unlicense" +homepage = "https://substrate.io" repository = 'https://github.com/substrate-developer-hub/substrate-parachain-template' -edition = '2018' -build = 'build.rs' +edition = "2018" +build = "build.rs" [package.metadata.docs.rs] -targets = ['x86_64-unknown-linux-gnu'] +targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-build-script-utils = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } [[bin]] -name = 'parachain-collator' +name = "parachain-collator" +path = "src/main.rs" [features] -default = [] -runtime-benchmarks = ['parachain-runtime/runtime-benchmarks'] +runtime-benchmarks = ["parachain-template-runtime/runtime-benchmarks"] [dependencies] -derive_more = '0.99.2' -log = '0.4.14' -codec = { package = 'parity-scale-codec', version = '2.0.0' } -structopt = '0.3.8' -serde = { version = '1.0.119', features = ['derive'] } -hex-literal = '0.3.1' +derive_more = "0.99.2" +log = "0.4.14" +codec = { package = "parity-scale-codec", version = "2.0.0" } +structopt = "0.3.8" +serde = { version = "1.0.119", features = ["derive"] } +hex-literal = "0.3.1" # RPC related Dependencies -jsonrpc-core = '15.1.0' +jsonrpc-core = "18.0.0" # Local Dependencies -parachain-runtime = { path = '../runtime' } +parachain-template-runtime = { path = "../runtime" } # Substrate Dependencies -frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -frame-benchmarking-cli = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } -pallet-transaction-payment-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } -substrate-frame-rpc-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.10" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } ## Substrate Client Dependencies -sc-basic-authorship = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sc-chain-spec = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sc-cli = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sc-client-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sc-consensus = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sc-executor = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sc-network = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sc-keystore = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sc-rpc = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sc-rpc-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sc-service = { git = 'https://github.com/paritytech/substrate', branch = "polkadot-v0.9.10", features = ['wasmtime'] } -sc-telemetry = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sc-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sc-tracing = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"], branch = "polkadot-v0.9.11" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } ## Substrate Primitive Dependencies -sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sp-blockchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sp-consensus = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sp-keystore = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sp-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } -sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10' } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } # Cumulus dependencies -cumulus-client-consensus-aura = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10' } -cumulus-client-consensus-common = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10' } -cumulus-client-collator = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10' } -cumulus-client-cli = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10' } -cumulus-client-network = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10' } -cumulus-client-service = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10' } -cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10' } -cumulus-primitives-parachain-inherent = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10' } +cumulus-client-cli = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11' } +cumulus-client-collator = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11' } +cumulus-client-consensus-aura = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11' } +cumulus-client-consensus-common = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11' } +cumulus-client-network = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11' } +cumulus-client-service = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11' } +cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11' } +cumulus-primitives-parachain-inherent = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11' } # Polkadot dependencies -polkadot-cli = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.10'} -polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.10'} -polkadot-primitives = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.10'} -polkadot-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.10'} -polkadot-test-service = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.10'} \ No newline at end of file +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.11" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.11" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.11" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.11" } +polkadot-test-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.11" } diff --git a/node/build.rs b/node/build.rs index a5b17353..e3bfe311 100644 --- a/node/build.rs +++ b/node/build.rs @@ -2,5 +2,6 @@ use substrate_build_script_utils::{generate_cargo_keys, rerun_if_git_head_change fn main() { generate_cargo_keys(); + rerun_if_git_head_changed(); } diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index f529a45e..f0f64613 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -1,5 +1,5 @@ use cumulus_primitives_core::ParaId; -use parachain_runtime::{AccountId, AuraId, Signature}; +use parachain_template_runtime::{AccountId, AuraId, Signature, EXISTENTIAL_DEPOSIT}; use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup}; use sc_service::ChainType; use serde::{Deserialize, Serialize}; @@ -7,10 +7,11 @@ use sp_core::{sr25519, Pair, Public}; use sp_runtime::traits::{IdentifyAccount, Verify}; /// Specialized `ChainSpec` for the normal parachain runtime. -pub type ChainSpec = sc_service::GenericChainSpec; +pub type ChainSpec = + sc_service::GenericChainSpec; /// Helper function to generate a crypto pair from seed -pub fn get_from_seed(seed: &str) -> ::Public { +pub fn get_public_from_seed(seed: &str) -> ::Public { TPublic::Pair::from_string(&format!("//{}", seed), None) .expect("static values are valid; qed") .public() @@ -35,12 +36,26 @@ impl Extensions { type AccountPublic = ::Signer; +/// Generate collator keys from seed. +/// +/// This function's return type must always match the session keys of the chain in tuple format. +pub fn get_collator_keys_from_seed(seed: &str) -> AuraId { + get_public_from_seed::(seed) +} + /// Helper function to generate an account ID from seed pub fn get_account_id_from_seed(seed: &str) -> AccountId where AccountPublic: From<::Public>, { - AccountPublic::from(get_from_seed::(seed)).into_account() + AccountPublic::from(get_public_from_seed::(seed)).into_account() +} + +/// Generate the session keys from individual elements. +/// +/// The input must be a tuple of individual keys (a single arg for now since we have just one key). +pub fn template_session_keys(keys: AuraId) -> parachain_template_runtime::SessionKeys { + parachain_template_runtime::SessionKeys { aura: keys } } pub fn development_config(id: ParaId) -> ChainSpec { @@ -48,27 +63,45 @@ pub fn development_config(id: ParaId) -> ChainSpec { let mut properties = sc_chain_spec::Properties::new(); properties.insert("tokenSymbol".into(), "UNIT".into()); properties.insert("tokenDecimals".into(), 12.into()); + properties.insert("ss58Format".into(), 42.into()); ChainSpec::from_genesis( // Name "Development", // ID "dev", - ChainType::Local, + ChainType::Development, move || { testnet_genesis( - get_account_id_from_seed::("Alice"), - vec![get_from_seed::("Alice"), get_from_seed::("Bob")], + // initial collators. + vec![ + ( + get_account_id_from_seed::("Alice"), + get_collator_keys_from_seed("Alice"), + ), + ( + get_account_id_from_seed::("Bob"), + get_collator_keys_from_seed("Bob"), + ), + ], vec![ get_account_id_from_seed::("Alice"), get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), get_account_id_from_seed::("Alice//stash"), get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), ], id, ) }, - vec![], + Vec::new(), None, None, None, @@ -84,6 +117,7 @@ pub fn local_testnet_config(id: ParaId) -> ChainSpec { let mut properties = sc_chain_spec::Properties::new(); properties.insert("tokenSymbol".into(), "UNIT".into()); properties.insert("tokenDecimals".into(), 12.into()); + properties.insert("ss58Format".into(), 42.into()); ChainSpec::from_genesis( // Name @@ -93,8 +127,17 @@ pub fn local_testnet_config(id: ParaId) -> ChainSpec { ChainType::Local, move || { testnet_genesis( - get_account_id_from_seed::("Alice"), - vec![get_from_seed::("Alice"), get_from_seed::("Bob")], + // initial collators. + vec![ + ( + get_account_id_from_seed::("Alice"), + get_collator_keys_from_seed("Alice"), + ), + ( + get_account_id_from_seed::("Bob"), + get_collator_keys_from_seed("Bob"), + ), + ], vec![ get_account_id_from_seed::("Alice"), get_account_id_from_seed::("Bob"), @@ -112,10 +155,15 @@ pub fn local_testnet_config(id: ParaId) -> ChainSpec { id, ) }, + // Bootnodes Vec::new(), + // Telemetry None, - None, - None, + // Protocol ID + Some("template-local"), + // Properties + Some(properties), + // Extensions Extensions { relay_chain: "rococo-local".into(), // You MUST set this to the correct network! para_id: id.into(), @@ -124,24 +172,41 @@ pub fn local_testnet_config(id: ParaId) -> ChainSpec { } fn testnet_genesis( - root_key: AccountId, - initial_authorities: Vec, + invulnerables: Vec<(AccountId, AuraId)>, endowed_accounts: Vec, id: ParaId, -) -> parachain_runtime::GenesisConfig { - parachain_runtime::GenesisConfig { - system: parachain_runtime::SystemConfig { - code: parachain_runtime::WASM_BINARY +) -> parachain_template_runtime::GenesisConfig { + parachain_template_runtime::GenesisConfig { + system: parachain_template_runtime::SystemConfig { + code: parachain_template_runtime::WASM_BINARY .expect("WASM binary was not build, please build it!") .to_vec(), changes_trie_config: Default::default(), }, - balances: parachain_runtime::BalancesConfig { + balances: parachain_template_runtime::BalancesConfig { balances: endowed_accounts.iter().cloned().map(|k| (k, 1 << 60)).collect(), }, - sudo: parachain_runtime::SudoConfig { key: root_key }, - parachain_info: parachain_runtime::ParachainInfoConfig { parachain_id: id }, - aura: parachain_runtime::AuraConfig { authorities: initial_authorities }, + parachain_info: parachain_template_runtime::ParachainInfoConfig { parachain_id: id }, + collator_selection: parachain_template_runtime::CollatorSelectionConfig { + invulnerables: invulnerables.iter().cloned().map(|(acc, _)| acc).collect(), + candidacy_bond: EXISTENTIAL_DEPOSIT * 16, + ..Default::default() + }, + session: parachain_template_runtime::SessionConfig { + keys: invulnerables + .into_iter() + .map(|(acc, aura)| { + ( + acc.clone(), // account id + acc, // validator id + template_session_keys(aura), // session keys + ) + }) + .collect(), + }, + // no need to pass anything to aura, in fact it will panic if we do. Session will take care + // of this. + aura: Default::default(), aura_ext: Default::default(), parachain_system: Default::default(), } diff --git a/node/src/cli.rs b/node/src/cli.rs index 80985041..8737b288 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -1,6 +1,4 @@ use crate::chain_spec; -use cumulus_client_cli; -use sc_cli; use std::path::PathBuf; use structopt::StructOpt; @@ -92,7 +90,7 @@ pub struct Cli { #[structopt(flatten)] pub run: cumulus_client_cli::RunCmd, - /// Relaychain arguments + /// Relay chain arguments #[structopt(raw = true)] pub relaychain_args: Vec, } diff --git a/node/src/command.rs b/node/src/command.rs index f637ce10..50fd3245 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -1,13 +1,13 @@ use crate::{ chain_spec, cli::{Cli, RelayChainCli, Subcommand}, - service::{new_partial, ParachainRuntimeExecutor}, + service::{new_partial, TemplateRuntimeExecutor}, }; use codec::Encode; use cumulus_client_service::genesis::generate_genesis_block; use cumulus_primitives_core::ParaId; use log::info; -use parachain_runtime::{Block, RuntimeApi}; +use parachain_template_runtime::{Block, RuntimeApi}; use polkadot_parachain::primitives::AccountIdConversion; use sc_cli::{ ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, @@ -24,6 +24,7 @@ fn load_spec( ) -> std::result::Result, String> { Ok(match id { "dev" => Box::new(chain_spec::development_config(para_id)), + "template-rococo" => Box::new(chain_spec::local_testnet_config(para_id)), "" | "local" => Box::new(chain_spec::local_testnet_config(para_id)), path => Box::new(chain_spec::ChainSpec::from_json_file(std::path::PathBuf::from(path))?), }) @@ -42,7 +43,7 @@ impl SubstrateCli for Cli { format!( "Parachain Collator Template\n\nThe command-line arguments provided first will be \ passed to the parachain node, while the arguments provided after -- will be passed \ - to the relaychain node.\n\n\ + to the relay chain node.\n\n\ {} [parachain-args] -- [relaychain-args]", Self::executable_name() ) @@ -53,11 +54,11 @@ impl SubstrateCli for Cli { } fn support_url() -> String { - "https://github.com/substrate-developer-hub/substrate-parachain-template/issues/new".into() + "https://github.com/paritytech/cumulus/issues/new".into() } fn copyright_start_year() -> i32 { - 2017 + 2020 } fn load_spec(&self, id: &str) -> std::result::Result, String> { @@ -65,7 +66,7 @@ impl SubstrateCli for Cli { } fn native_runtime_version(_: &Box) -> &'static RuntimeVersion { - ¶chain_runtime::VERSION + ¶chain_template_runtime::VERSION } } @@ -81,8 +82,8 @@ impl SubstrateCli for RelayChainCli { fn description() -> String { "Parachain Collator Template\n\nThe command-line arguments provided first will be \ passed to the parachain node, while the arguments provided after -- will be passed \ - to the relaychain node.\n\n\ - parachain-collator [parachain-args] -- [relaychain-args]" + to the relay chain node.\n\n\ + parachain-collator [parachain-args] -- [relay_chain-args]" .into() } @@ -91,16 +92,15 @@ impl SubstrateCli for RelayChainCli { } fn support_url() -> String { - "https://github.com/substrate-developer-hub/substrate-parachain-template/issues/new".into() + "https://github.com/paritytech/cumulus/issues/new".into() } fn copyright_start_year() -> i32 { - 2017 + 2020 } fn load_spec(&self, id: &str) -> std::result::Result, String> { - polkadot_cli::Cli::from_iter([RelayChainCli::executable_name().to_string()].iter()) - .load_spec(id) + polkadot_cli::Cli::from_iter([RelayChainCli::executable_name()].iter()).load_spec(id) } fn native_runtime_version(chain_spec: &Box) -> &'static RuntimeVersion { @@ -108,6 +108,7 @@ impl SubstrateCli for RelayChainCli { } } +#[allow(clippy::borrowed_box)] fn extract_genesis_wasm(chain_spec: &Box) -> Result> { let mut storage = chain_spec.build_storage()?; @@ -123,7 +124,7 @@ macro_rules! construct_async_run { runner.async_run(|$config| { let $components = new_partial::< RuntimeApi, - ParachainRuntimeExecutor, + TemplateRuntimeExecutor, _ >( &$config, @@ -170,24 +171,24 @@ pub fn run() -> Result<()> { runner.sync_run(|config| { let polkadot_cli = RelayChainCli::new( &config, - [RelayChainCli::executable_name().to_string()] - .iter() - .chain(cli.relaychain_args.iter()), + [RelayChainCli::executable_name()].iter().chain(cli.relaychain_args.iter()), ); let polkadot_config = SubstrateCli::create_configuration( &polkadot_cli, &polkadot_cli, - config.task_executor.clone(), + config.tokio_handle.clone(), ) .map_err(|err| format!("Relay chain argument error: {}", err))?; cmd.run(config, polkadot_config) }) }, - Some(Subcommand::Revert(cmd)) => construct_async_run!(|components, cli, cmd, config| { - Ok(cmd.run(components.client, components.backend)) - }), + Some(Subcommand::Revert(cmd)) => { + construct_async_run!(|components, cli, cmd, config| { + Ok(cmd.run(components.client, components.backend)) + }) + }, Some(Subcommand::ExportGenesisState(params)) => { let mut builder = sc_cli::LoggerBuilder::new(""); builder.with_profiling(sc_tracing::TracingReceiver::Log, ""); @@ -237,7 +238,7 @@ pub fn run() -> Result<()> { if cfg!(feature = "runtime-benchmarks") { let runner = cli.create_runner(cmd)?; - runner.sync_run(|config| cmd.run::(config)) + runner.sync_run(|config| cmd.run::(config)) } else { Err("Benchmarking wasn't enabled when building the node. \ You can enable it with `--features runtime-benchmarks`." @@ -252,9 +253,7 @@ pub fn run() -> Result<()> { let polkadot_cli = RelayChainCli::new( &config, - [RelayChainCli::executable_name().to_string()] - .iter() - .chain(cli.relaychain_args.iter()), + [RelayChainCli::executable_name()].iter().chain(cli.relaychain_args.iter()), ); let id = ParaId::from(cli.run.parachain_id.or(para_id).unwrap_or(2000)); @@ -266,9 +265,9 @@ pub fn run() -> Result<()> { generate_genesis_block(&config.chain_spec).map_err(|e| format!("{:?}", e))?; let genesis_state = format!("0x{:?}", HexDisplay::from(&block.header().encode())); - let task_executor = config.task_executor.clone(); + let tokio_handle = config.tokio_handle.clone(); let polkadot_config = - SubstrateCli::create_configuration(&polkadot_cli, &polkadot_cli, task_executor) + SubstrateCli::create_configuration(&polkadot_cli, &polkadot_cli, tokio_handle) .map_err(|err| format!("Relay chain argument error: {}", err))?; info!("Parachain id: {:?}", id); @@ -276,7 +275,7 @@ pub fn run() -> Result<()> { info!("Parachain genesis state: {}", genesis_state); info!("Is collating: {}", if config.role.is_authority() { "yes" } else { "no" }); - crate::service::start_node(config, polkadot_config, id) + crate::service::start_parachain_node(config, polkadot_config, id) .await .map(|r| r.0) .map_err(Into::into) @@ -377,10 +376,6 @@ impl CliConfiguration for RelayChainCli { self.base.base.rpc_cors(is_dev) } - fn telemetry_external_transport(&self) -> Result> { - self.base.base.telemetry_external_transport() - } - fn default_heap_pages(&self) -> Result> { self.base.base.default_heap_pages() } diff --git a/node/src/lib.rs b/node/src/lib.rs deleted file mode 100644 index 38e43372..00000000 --- a/node/src/lib.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod chain_spec; -pub mod service; diff --git a/node/src/main.rs b/node/src/main.rs index ca6c23e5..ba9f28b3 100644 --- a/node/src/main.rs +++ b/node/src/main.rs @@ -7,6 +7,7 @@ mod chain_spec; mod service; mod cli; mod command; +mod rpc; fn main() -> sc_cli::Result<()> { command::run() diff --git a/node/src/rpc.rs b/node/src/rpc.rs new file mode 100644 index 00000000..5d3dd817 --- /dev/null +++ b/node/src/rpc.rs @@ -0,0 +1,57 @@ +//! A collection of node-specific RPC methods. +//! Substrate provides the `sc-rpc` crate, which defines the core RPC layer +//! used by Substrate nodes. This file extends those RPC definitions with +//! capabilities that are specific to this project's runtime configuration. + +#![warn(missing_docs)] + +use std::sync::Arc; + +use parachain_template_runtime::{opaque::Block, AccountId, Balance, Index as Nonce}; + +use sc_client_api::AuxStore; +pub use sc_rpc::{DenyUnsafe, SubscriptionTaskExecutor}; +use sc_transaction_pool_api::TransactionPool; +use sp_api::ProvideRuntimeApi; +use sp_block_builder::BlockBuilder; +use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; + +/// A type representing all RPC extensions. +pub type RpcExtension = jsonrpc_core::IoHandler; + +/// Full client dependencies +pub struct FullDeps { + /// The client instance to use. + pub client: Arc, + /// Transaction pool instance. + pub pool: Arc

, /// Whether to deny unsafe calls pub deny_unsafe: DenyUnsafe, + /// Network service + pub network: Arc> } /// Instantiate all RPC extensions. diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index dae7066e..513d720c 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -75,6 +75,10 @@ parachain-info = { git = "https://github.com/paritytech/cumulus.git", branch = " parachains-common = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } # Frontier +fp-rpc = { git = "https://github.com/paritytech/frontier", branch = "bar/polkadot-v0.9.42", default-features = false } + + +# Frontier FRAME pallet-base-fee = { git = "https://github.com/paritytech/frontier", branch = "bar/polkadot-v0.9.42", default-features = false } pallet-evm = { git = "https://github.com/paritytech/frontier.git", branch = "bar/polkadot-v0.9.42", default-features = false } pallet-ethereum = { git = "https://github.com/paritytech/frontier.git", branch = "bar/polkadot-v0.9.42", default-features = false } @@ -134,6 +138,8 @@ std = [ "xcm-executor/std", "xcm/std", "substrate-wasm-builder", + # Frontier + "fp-rpc/std", # Frontier FRAME "pallet-base-fee/std", "pallet-ethereum/std", diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 593e7117..cc078b1b 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -73,6 +73,7 @@ use pallet_evm::{ Account as EVMAccount, EVMCurrencyAdapter, EnsureAddressTruncated, FeeCalculator, HashedAddressMapping, OnChargeEVMTransaction, Runner, }; +use fp_rpc::TransactionStatus; mod precompiles; use precompiles::FrontierPrecompiles; @@ -793,6 +794,151 @@ impl_runtime_apis! { } } + impl fp_rpc::EthereumRuntimeRPCApi for Runtime { + fn chain_id() -> u64 { + ::ChainId::get() + } + + fn account_basic(address: H160) -> EVMAccount { + let (account, _) = EVM::account_basic(&address); + account + } + + fn gas_price() -> U256 { + let (gas_price, _) = ::FeeCalculator::min_gas_price(); + gas_price + } + + fn account_code_at(address: H160) -> Vec { + pallet_evm::AccountCodes::::get(address) + } + + fn author() -> H160 { + >::find_author() + } + + fn storage_at(address: H160, index: U256) -> H256 { + let mut tmp = [0u8; 32]; + index.to_big_endian(&mut tmp); + pallet_evm::AccountStorages::::get(address, H256::from_slice(&tmp[..])) + } + + fn call( + from: H160, + to: H160, + data: Vec, + value: U256, + gas_limit: U256, + max_fee_per_gas: Option, + max_priority_fee_per_gas: Option, + nonce: Option, + estimate: bool, + access_list: Option)>>, + ) -> Result { + let config = if estimate { + let mut config = ::config().clone(); + config.estimate = true; + Some(config) + } else { + None + }; + + let is_transactional = false; + let validate = true; + let evm_config = config.as_ref().unwrap_or(::config()); + ::Runner::call( + from, + to, + data, + value, + gas_limit.unique_saturated_into(), + max_fee_per_gas, + max_priority_fee_per_gas, + nonce, + access_list.unwrap_or_default(), + is_transactional, + validate, + evm_config, + ).map_err(|err| err.error.into()) + } + + fn create( + from: H160, + data: Vec, + value: U256, + gas_limit: U256, + max_fee_per_gas: Option, + max_priority_fee_per_gas: Option, + nonce: Option, + estimate: bool, + access_list: Option)>>, + ) -> Result { + let config = if estimate { + let mut config = ::config().clone(); + config.estimate = true; + Some(config) + } else { + None + }; + + let is_transactional = false; + let validate = true; + let evm_config = config.as_ref().unwrap_or(::config()); + ::Runner::create( + from, + data, + value, + gas_limit.unique_saturated_into(), + max_fee_per_gas, + max_priority_fee_per_gas, + nonce, + access_list.unwrap_or_default(), + is_transactional, + validate, + evm_config, + ).map_err(|err| err.error.into()) + } + + fn current_transaction_statuses() -> Option> { + pallet_ethereum::CurrentTransactionStatuses::::get() + } + + fn current_block() -> Option { + pallet_ethereum::CurrentBlock::::get() + } + + fn current_receipts() -> Option> { + pallet_ethereum::CurrentReceipts::::get() + } + + fn current_all() -> ( + Option, + Option>, + Option> + ) { + ( + pallet_ethereum::CurrentBlock::::get(), + pallet_ethereum::CurrentReceipts::::get(), + pallet_ethereum::CurrentTransactionStatuses::::get() + ) + } + + fn extrinsic_filter( + xts: Vec<::Extrinsic>, + ) -> Vec { + xts.into_iter().filter_map(|xt| match xt.0.function { + RuntimeCall::Ethereum(transact { transaction }) => Some(transaction), + _ => None + }).collect::>() + } + + fn elasticity() -> Option { + Some(pallet_base_fee::Elasticity::::get()) + } + + fn gas_limit_multiplier_support() {} + } + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { fn query_info( uxt: ::Extrinsic, From 3eee53b217fd1e1b4d1dbb52a5954edfa825953e Mon Sep 17 00:00:00 2001 From: magecnion Date: Tue, 4 Jul 2023 16:47:23 +0200 Subject: [PATCH 79/91] frontier extrinsic missing --- runtime/Cargo.toml | 8 +++++ runtime/src/lib.rs | 83 +++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 82 insertions(+), 9 deletions(-) diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 513d720c..9b853392 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -76,6 +76,7 @@ parachains-common = { git = "https://github.com/paritytech/cumulus.git", branch # Frontier fp-rpc = { git = "https://github.com/paritytech/frontier", branch = "bar/polkadot-v0.9.42", default-features = false } +fp-self-contained = { git = "https://github.com/paritytech/frontier", branch = "bar/polkadot-v0.9.42", default-features = false } # Frontier FRAME @@ -140,6 +141,7 @@ std = [ "substrate-wasm-builder", # Frontier "fp-rpc/std", + "fp-self-contained/std", # Frontier FRAME "pallet-base-fee/std", "pallet-ethereum/std", @@ -187,4 +189,10 @@ try-runtime = [ "pallet-transaction-payment/try-runtime", "pallet-xcm/try-runtime", "parachain-info/try-runtime", + "pallet-evm/try-runtime", + "pallet-evm-chain-id/try-runtime", + "pallet-ethereum/try-runtime", + "pallet-base-fee/try-runtime", + "fp-self-contained/try-runtime", ] + diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index cc078b1b..4295b587 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -9,6 +9,7 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); mod weights; pub mod xcm_config; +use core::marker::PhantomData; use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; use smallvec::smallvec; use sp_api::impl_runtime_apis; @@ -16,13 +17,15 @@ use sp_core::{ crypto::{ByteArray, KeyTypeId}, OpaqueMetadata, H160, H256, U256, }; -use core::{marker::PhantomData}; use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, - traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, IdentifyAccount, Verify, UniqueSaturatedInto}, - transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, MultiSignature, ConsensusEngineId + traits::{ + AccountIdLookup, BlakeTwo256, Block as BlockT, IdentifyAccount, UniqueSaturatedInto, Verify, Get, + PostDispatchInfoOf, Dispatchable, DispatchInfoOf, + }, + transaction_validity::{TransactionSource, TransactionValidity, TransactionValidityError}, + ApplyExtrinsicResult, ConsensusEngineId, MultiSignature, }; use sp_std::prelude::*; @@ -34,7 +37,10 @@ use frame_support::{ construct_runtime, dispatch::DispatchClass, parameter_types, - traits::{ConstU32, ConstU64, ConstU8, EitherOfDiverse, Everything, FindAuthor, OnUnbalanced, Currency, Imbalance}, + traits::{ + ConstU32, ConstU64, ConstU8, Currency, EitherOfDiverse, Everything, FindAuthor, Imbalance, + OnUnbalanced, + }, weights::{ constants::WEIGHT_REF_TIME_PER_SECOND, ConstantMultiplier, Weight, WeightToFeeCoefficient, WeightToFeeCoefficients, WeightToFeePolynomial, @@ -68,12 +74,12 @@ use xcm::latest::prelude::BodyId; use xcm_executor::XcmExecutor; // Frontier -use pallet_ethereum::{Call::transact, Transaction as EthereumTransaction, PostLogContent}; +use fp_rpc::TransactionStatus; +use pallet_ethereum::{Call::transact, PostLogContent, Transaction as EthereumTransaction}; use pallet_evm::{ Account as EVMAccount, EVMCurrencyAdapter, EnsureAddressTruncated, FeeCalculator, HashedAddressMapping, OnChargeEVMTransaction, Runner, }; -use fp_rpc::TransactionStatus; mod precompiles; use precompiles::FrontierPrecompiles; @@ -129,10 +135,11 @@ pub type SignedExtra = ( /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = - generic::UncheckedExtrinsic; + fp_self_contained::UncheckedExtrinsic; /// Extrinsic type that has already been checked. -pub type CheckedExtrinsic = generic::CheckedExtrinsic; +pub type CheckedExtrinsic = + fp_self_contained::CheckedExtrinsic; /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< @@ -688,6 +695,64 @@ construct_runtime!( } ); +impl fp_self_contained::SelfContainedCall for RuntimeCall { + type SignedInfo = H160; + + fn is_self_contained(&self) -> bool { + match self { + RuntimeCall::Ethereum(call) => call.is_self_contained(), + _ => false, + } + } + + fn check_self_contained(&self) -> Option> { + match self { + RuntimeCall::Ethereum(call) => call.check_self_contained(), + _ => None, + } + } + + fn validate_self_contained( + &self, + info: &Self::SignedInfo, + dispatch_info: &DispatchInfoOf, + len: usize, + ) -> Option { + match self { + RuntimeCall::Ethereum(call) => call.validate_self_contained(info, dispatch_info, len), + _ => None, + } + } + + fn pre_dispatch_self_contained( + &self, + info: &Self::SignedInfo, + dispatch_info: &DispatchInfoOf, + len: usize, + ) -> Option> { + match self { + RuntimeCall::Ethereum(call) => { + call.pre_dispatch_self_contained(info, dispatch_info, len) + }, + _ => None, + } + } + + fn apply_self_contained( + self, + info: Self::SignedInfo, + ) -> Option>> { + match self { + call @ RuntimeCall::Ethereum(pallet_ethereum::Call::transact { .. }) => { + Some(call.dispatch(RuntimeOrigin::from( + pallet_ethereum::RawOrigin::EthereumTransaction(info), + ))) + }, + _ => None, + } + } +} + #[cfg(feature = "runtime-benchmarks")] mod benches { frame_benchmarking::define_benchmarks!( From 6396b85380f18843a1ac0da746b48c0001db6c38 Mon Sep 17 00:00:00 2001 From: magecnion Date: Tue, 4 Jul 2023 20:34:46 +0200 Subject: [PATCH 80/91] net api --- Cargo.lock | 1159 +++++++++++++++++++++++++------------------ node/Cargo.toml | 3 + node/src/rpc.rs | 19 +- node/src/service.rs | 2 + 4 files changed, 688 insertions(+), 495 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2f0baf4c..f65171e0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,11 +23,11 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" dependencies = [ - "gimli 0.27.2", + "gimli 0.27.3", ] [[package]] @@ -90,9 +90,9 @@ dependencies = [ [[package]] name = "aes" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241" +checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" dependencies = [ "cfg-if", "cipher 0.4.4", @@ -115,12 +115,12 @@ dependencies = [ [[package]] name = "aes-gcm" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e1366e0c69c9f927b1fa5ce2c7bf9eafc8f9268c0b9800729e8b267612447c" +checksum = "209b47e8954a928e1d72e86eca7000ebb6655fe1436d33eefc2201cad027e237" dependencies = [ "aead 0.5.2", - "aes 0.8.2", + "aes 0.8.3", "cipher 0.4.4", "ctr 0.9.2", "ghash 0.5.0", @@ -153,7 +153,7 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.9", + "getrandom 0.2.10", "once_cell", "version_check", ] @@ -165,7 +165,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" dependencies = [ "cfg-if", - "getrandom 0.2.9", + "getrandom 0.2.10", "once_cell", "version_check", ] @@ -181,9 +181,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" +checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" dependencies = [ "memchr", ] @@ -194,6 +194,12 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4436e0292ab1bb631b42973c61205e704475fe8126af845c8d923c0996328127" +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -229,15 +235,15 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d" +checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" [[package]] name = "anstyle-parse" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee" +checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" dependencies = [ "utf8parse", ] @@ -308,9 +314,9 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "arrayvec" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "asn1-rs" @@ -325,7 +331,7 @@ dependencies = [ "num-traits", "rusticata-macros", "thiserror", - "time 0.3.20", + "time 0.3.22", ] [[package]] @@ -341,7 +347,7 @@ dependencies = [ "num-traits", "rusticata-macros", "thiserror", - "time 0.3.20", + "time 0.3.22", ] [[package]] @@ -416,9 +422,9 @@ dependencies = [ "log", "parking", "polling", - "rustix 0.37.19", + "rustix 0.37.22", "slab", - "socket2", + "socket2 0.4.9", "waker-fn", ] @@ -439,18 +445,18 @@ checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] name = "async-trait" -version = "0.1.68" +version = "0.1.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" +checksum = "7b2d0f03b3640e3a630367e40c468cb7f309529c708ed1d88597047b0e7c6ef7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -463,7 +469,7 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", ] [[package]] @@ -503,16 +509,16 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" -version = "0.3.67" +version = "0.3.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" +checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12" dependencies = [ - "addr2line 0.19.0", + "addr2line 0.20.0", "cc", "cfg-if", "libc", - "miniz_oxide 0.6.2", - "object 0.30.3", + "miniz_oxide", + "object 0.31.1", "rustc-demangle", ] @@ -542,9 +548,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.0" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" [[package]] name = "base64ct" @@ -585,7 +591,7 @@ version = "0.64.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cexpr", "clang-sys", "lazy_static", @@ -605,6 +611,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" + [[package]] name = "bitvec" version = "1.0.1" @@ -623,7 +635,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -633,7 +645,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc" dependencies = [ "arrayref", - "arrayvec 0.7.2", + "arrayvec 0.7.4", "constant_time_eq", ] @@ -644,22 +656,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6637f448b9e61dfadbdcbae9a885fadee1f3eaffb1f8d3c1965d3ade8bdfd44f" dependencies = [ "arrayref", - "arrayvec 0.7.2", + "arrayvec 0.7.4", "constant_time_eq", ] [[package]] name = "blake3" -version = "1.3.3" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ae2468a89544a466886840aa467a25b766499f4f04bf7d9fcd10ecee9fccef" +checksum = "729b71f35bd3fa1a4c86b85d32c8b9069ea7fe14f7a53cfabb65f62d4265b888" dependencies = [ "arrayref", - "arrayvec 0.7.2", + "arrayvec 0.7.4", "cc", "cfg-if", "constant_time_eq", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -719,9 +731,9 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" [[package]] name = "bounded-collections" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3888522b497857eb606bf51695988dba7096941822c1bcf676e3a929a9ae7a0" +checksum = "eb5b05133427c07c4776906f673ccf36c21b102c9829c641a5b56bd151d44fd6" dependencies = [ "log", "parity-scale-codec", @@ -746,9 +758,9 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bstr" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09" +checksum = "a246e68bb43f6cd9db24bea052a53e40405417c5fb372e3d1a8a7f770a564ef5" dependencies = [ "memchr", "serde", @@ -765,9 +777,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.12.1" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8" +checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" [[package]] name = "byte-slice-cast" @@ -919,13 +931,13 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.24" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" +checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" dependencies = [ + "android-tzdata", "iana-time-zone", "js-sys", - "num-integer", "num-traits", "time 0.1.45", "wasm-bindgen", @@ -995,9 +1007,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.2.7" +version = "4.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34d21f9bf1b425d2968943631ec91202fe5e837264063503708b83013f8fc938" +checksum = "384e169cc618c613d5e3ca6404dda77a8685a63e08660dcc64abaf7da7cb0c7a" dependencies = [ "clap_builder", "clap_derive", @@ -1006,34 +1018,33 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.2.7" +version = "4.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "914c8c79fb560f238ef6429439a30023c862f7a28e688c58f7203f12b29970bd" +checksum = "ef137bbe35aab78bdb468ccfba75a5f4d8321ae011d34063770780545176af2d" dependencies = [ "anstream", "anstyle", - "bitflags", "clap_lex", "strsim", ] [[package]] name = "clap_derive" -version = "4.2.0" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4" +checksum = "b8cd2b2a819ad6eec39e8f1d6b53001af1e5469f8c177579cdaeb313115b825f" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] name = "clap_lex" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" +checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" [[package]] name = "coarsetime" @@ -1086,9 +1097,9 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "comfy-table" -version = "6.1.4" +version = "6.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e7b787b0dc42e8111badfdbe4c3059158ccb2db8780352fa1b01e8ccf45cc4d" +checksum = "7e959d788268e3bf9d35ace83e81b124190378e4c91c9067524675e33394b8ba" dependencies = [ "strum", "strum_macros", @@ -1119,15 +1130,15 @@ dependencies = [ [[package]] name = "const-oid" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" +checksum = "6340df57935414636969091153f35f68d9f00bbc8fb4a9c6054706c213e6c6bc" [[package]] name = "constant_time_eq" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13418e745008f7349ec7e449155f419a61b92b58a99cc3616942b926825ec76b" +checksum = "21a53c0a4d288377e7415b53dcfc3c04da5cdc2cc95c8d5ac178b58f0b861ad6" [[package]] name = "convert_case" @@ -1181,9 +1192,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58" +checksum = "03e69e28e9f7f77debdedbaafa2866e1de9ba56df55a8bd7cfc724c25a09987c" dependencies = [ "libc", ] @@ -1203,7 +1214,7 @@ version = "0.93.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "253531aca9b6f56103c9420369db3263e784df39aa1c90685a1f69cfbba0623e" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.4", "bumpalo", "cranelift-bforest", "cranelift-codegen-meta", @@ -1334,14 +1345,14 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.14" +version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset 0.8.0", + "memoffset 0.9.0", "scopeguard", ] @@ -1357,9 +1368,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.15" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" dependencies = [ "cfg-if", ] @@ -1686,7 +1697,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -1977,9 +1988,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.94" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" +checksum = "e88abab2f5abbe4c56e8f1fb431b784d710b709888f35755a160e62e33fe38e8" dependencies = [ "cc", "cxxbridge-flags", @@ -1989,9 +2000,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.94" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" +checksum = "5c0c11acd0e63bae27dcd2afced407063312771212b7a823b4fd72d633be30fb" dependencies = [ "cc", "codespan-reporting", @@ -1999,24 +2010,24 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] name = "cxxbridge-flags" -version = "1.0.94" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" +checksum = "8d3816ed957c008ccd4728485511e3d9aaf7db419aa321e3d2c5a2f3411e36c8" [[package]] name = "cxxbridge-macro" -version = "1.0.94" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" +checksum = "a26acccf6f445af85ea056362561a24ef56cdc15fcc685f03aec50b9c702cb6d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -2056,15 +2067,15 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" +checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" [[package]] name = "data-encoding-macro" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86927b7cd2fe88fa698b87404b287ab98d1a0063a34071d92e575b72d3029aca" +checksum = "c904b33cc60130e1aeea4956ab803d08a3f4a0ca82d64ed757afac3891f2bb99" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -2072,9 +2083,9 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038db" +checksum = "8fdf3fce3ce863539ec1d7fd1b6dcc3c645663376b43ed376bbf887733e4f772" dependencies = [ "data-encoding", "syn 1.0.109", @@ -2093,9 +2104,9 @@ dependencies = [ [[package]] name = "der" -version = "0.7.5" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05e58dffcdcc8ee7b22f0c1f71a69243d7c2d9ad87b5a14361f2424a1565c219" +checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946" dependencies = [ "const-oid", "zeroize", @@ -2221,9 +2232,9 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", "const-oid", @@ -2280,7 +2291,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -2297,9 +2308,9 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "dtoa" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65d09067bfacaa79114679b279d7f5885b53295b1e2cfb4e79c8e4bd3d633169" +checksum = "519b83cd10f5f6e969625a409f735182bea5558cd8b64c655806ceaae36f1999" [[package]] name = "dyn-clonable" @@ -2342,15 +2353,16 @@ dependencies = [ [[package]] name = "ecdsa" -version = "0.16.6" +version = "0.16.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a48e5d537b8a30c0b023116d981b16334be1485af7ca68db3a2b7024cbc957fd" +checksum = "0997c976637b606099b9985693efa3581e84e41f5c11ba5255f88711058ad428" dependencies = [ - "der 0.7.5", - "digest 0.10.6", - "elliptic-curve 0.13.4", + "der 0.7.7", + "digest 0.10.7", + "elliptic-curve 0.13.5", "rfc6979 0.4.0", "signature 2.1.0", + "spki 0.7.2", ] [[package]] @@ -2405,7 +2417,7 @@ dependencies = [ "base16ct 0.1.1", "crypto-bigint 0.4.9", "der 0.6.1", - "digest 0.10.6", + "digest 0.10.7", "ff 0.12.1", "generic-array 0.14.7", "group 0.12.1", @@ -2420,13 +2432,13 @@ dependencies = [ [[package]] name = "elliptic-curve" -version = "0.13.4" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75c71eaa367f2e5d556414a8eea812bc62985c879748d6403edabd9cb03f16e7" +checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" dependencies = [ "base16ct 0.2.0", "crypto-bigint 0.5.2", - "digest 0.10.6", + "digest 0.10.7", "ff 0.13.0", "generic-array 0.14.7", "group 0.13.0", @@ -2472,18 +2484,18 @@ checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] name = "enumn" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48016319042fb7c87b78d2993084a831793a897a5cd1a2a67cab9d1eeb4b7d76" +checksum = "6fe4d538b570fd4ee7a01377f3e88069ecaee79e50bdc93c8895898dd2b47e37" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -2518,6 +2530,12 @@ version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e48c92028aaa870e83d51c64e5d4e0b6981b360c522198c23959f219a4e1b15b" +[[package]] +name = "equivalent" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1" + [[package]] name = "errno" version = "0.3.1" @@ -2708,7 +2726,7 @@ dependencies = [ "fs-err", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -2749,7 +2767,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5aa1e3ae159e592ad222dc90c5acbad632b527779ba88486abe92782ab268bd" dependencies = [ "expander 0.0.4", - "indexmap", + "indexmap 1.9.3", "proc-macro-crate", "proc-macro2", "quote", @@ -2757,6 +2775,126 @@ dependencies = [ "thiserror", ] +[[package]] +name = "fc-db" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/frontier?branch=bar/polkadot-v0.9.42#a5a5e1e6ec08cd542a6084c310863150fb8841b1" +dependencies = [ + "fp-storage", + "kvdb-rocksdb", + "log", + "parity-db", + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-client-db", + "smallvec", + "sp-blockchain", + "sp-core", + "sp-database", + "sp-runtime", +] + +[[package]] +name = "fc-mapping-sync" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/frontier?branch=bar/polkadot-v0.9.42#a5a5e1e6ec08cd542a6084c310863150fb8841b1" +dependencies = [ + "fc-db", + "fc-storage", + "fp-consensus", + "fp-rpc", + "futures", + "futures-timer", + "log", + "parking_lot 0.12.1", + "sc-client-api", + "sc-utils", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-runtime", +] + +[[package]] +name = "fc-rpc" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/frontier?branch=bar/polkadot-v0.9.42#a5a5e1e6ec08cd542a6084c310863150fb8841b1" +dependencies = [ + "ethereum", + "ethereum-types", + "evm", + "fc-db", + "fc-mapping-sync", + "fc-rpc-core", + "fc-storage", + "fp-ethereum", + "fp-evm", + "fp-rpc", + "fp-storage", + "futures", + "hex", + "jsonrpsee", + "libsecp256k1", + "log", + "lru 0.8.1", + "pallet-evm", + "parity-scale-codec", + "prometheus", + "rand 0.8.5", + "rlp", + "sc-client-api", + "sc-network", + "sc-network-common", + "sc-network-sync", + "sc-rpc", + "sc-service", + "sc-transaction-pool", + "sc-transaction-pool-api", + "sc-utils", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-storage", + "substrate-prometheus-endpoint", + "tokio", +] + +[[package]] +name = "fc-rpc-core" +version = "1.1.0-dev" +source = "git+https://github.com/paritytech/frontier?branch=bar/polkadot-v0.9.42#a5a5e1e6ec08cd542a6084c310863150fb8841b1" +dependencies = [ + "ethereum", + "ethereum-types", + "jsonrpsee", + "rustc-hex", + "serde", + "serde_json", +] + +[[package]] +name = "fc-storage" +version = "1.0.0-dev" +source = "git+https://github.com/paritytech/frontier?branch=bar/polkadot-v0.9.42#a5a5e1e6ec08cd542a6084c310863150fb8841b1" +dependencies = [ + "ethereum", + "ethereum-types", + "fp-rpc", + "fp-storage", + "parity-scale-codec", + "sc-client-api", + "sp-api", + "sp-blockchain", + "sp-io", + "sp-runtime", + "sp-storage", +] + [[package]] name = "fdlimit" version = "0.2.1" @@ -2856,7 +2994,7 @@ checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" dependencies = [ "crc32fast", "libz-sys", - "miniz_oxide 0.7.1", + "miniz_oxide", ] [[package]] @@ -2884,9 +3022,9 @@ dependencies = [ [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ "percent-encoding", ] @@ -2967,6 +3105,18 @@ dependencies = [ "sp-std", ] +[[package]] +name = "fp-self-contained" +version = "1.0.0-dev" +source = "git+https://github.com/paritytech/frontier?branch=bar/polkadot-v0.9.42#a5a5e1e6ec08cd542a6084c310863150fb8841b1" +dependencies = [ + "frame-support", + "parity-scale-codec", + "scale-info", + "serde", + "sp-runtime", +] + [[package]] name = "fp-storage" version = "2.0.0" @@ -3062,7 +3212,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -3136,7 +3286,7 @@ name = "frame-support" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ - "bitflags", + "bitflags 1.3.2", "environmental", "frame-metadata", "frame-support-procedural", @@ -3177,7 +3327,7 @@ dependencies = [ "proc-macro-warning", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -3189,7 +3339,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -3199,7 +3349,7 @@ source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -3274,11 +3424,11 @@ dependencies = [ [[package]] name = "fs4" -version = "0.6.4" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7f5b6908aecca5812a4569056285e58c666588c9573ee59765bf1d3692699e2" +checksum = "2eeb4ed9e12f43b7fa0baae3f9cdda28352770132ef2e09a23760c29cae8bd47" dependencies = [ - "rustix 0.37.19", + "rustix 0.38.2", "windows-sys 0.48.0", ] @@ -3348,7 +3498,7 @@ dependencies = [ "futures-io", "memchr", "parking", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", "waker-fn", ] @@ -3360,7 +3510,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -3405,7 +3555,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", "pin-utils", "slab", ] @@ -3462,9 +3612,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if", "libc", @@ -3488,7 +3638,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" dependencies = [ "opaque-debug 0.3.0", - "polyval 0.6.0", + "polyval 0.6.1", ] [[package]] @@ -3498,15 +3648,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" dependencies = [ "fallible-iterator", - "indexmap", + "indexmap 1.9.3", "stable_deref_trait", ] [[package]] name = "gimli" -version = "0.27.2" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" +checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" [[package]] name = "glob" @@ -3551,9 +3701,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.18" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f8a914c2987b688368b5138aa05321db91f4090cf26118185672ad588bce21" +checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" dependencies = [ "bytes", "fnv", @@ -3561,7 +3711,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "slab", "tokio", "tokio-util", @@ -3570,9 +3720,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.3.6" +version = "4.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "035ef95d03713f2c347a72547b7cd38cbc9af7cd51e6099fb62d586d4a6dee3a" +checksum = "83c3372087601b532857d332f5957cbae686da52bb7810bf038c3e3c3cc2fa0d" dependencies = [ "log", "pest", @@ -3621,6 +3771,12 @@ dependencies = [ "ahash 0.8.3", ] +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + [[package]] name = "heck" version = "0.4.1" @@ -3638,18 +3794,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" +checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" [[package]] name = "hex" @@ -3698,7 +3845,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -3742,7 +3889,7 @@ checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", "http", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", ] [[package]] @@ -3771,9 +3918,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.26" +version = "0.14.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" dependencies = [ "bytes", "futures-channel", @@ -3785,8 +3932,8 @@ dependencies = [ "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.9", - "socket2", + "pin-project-lite 0.2.10", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -3811,9 +3958,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.56" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" +checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -3825,12 +3972,11 @@ dependencies = [ [[package]] name = "iana-time-zone-haiku" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" dependencies = [ - "cxx", - "cxx-build", + "cc", ] [[package]] @@ -3852,9 +3998,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -3938,6 +4084,16 @@ dependencies = [ "serde", ] +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", +] + [[package]] name = "indicatif" version = "0.17.5" @@ -4005,11 +4161,11 @@ dependencies = [ [[package]] name = "io-lifetimes" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "hermit-abi 0.3.1", + "hermit-abi 0.3.2", "libc", "windows-sys 0.48.0", ] @@ -4022,31 +4178,30 @@ checksum = "aa2f047c0a98b2f299aa5d6d7088443570faae494e9ae1305e48be000c9e0eb1" [[package]] name = "ipconfig" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd302af1b90f2463a98fa5ad469fc212c8e3175a41c3068601bfa2727591c5be" +checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2", + "socket2 0.5.3", "widestring", - "winapi", + "windows-sys 0.48.0", "winreg", ] [[package]] name = "ipnet" -version = "2.7.2" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" +checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" [[package]] name = "is-terminal" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" +checksum = "24fddda5af7e54bf7da53067d6e802dbcc381d0a8eef629df528e3ebf68755cb" dependencies = [ - "hermit-abi 0.3.1", - "io-lifetimes", - "rustix 0.37.19", + "hermit-abi 0.3.2", + "rustix 0.38.2", "windows-sys 0.48.0", ] @@ -4061,9 +4216,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" +checksum = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a" [[package]] name = "jobserver" @@ -4076,9 +4231,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.61" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" dependencies = [ "wasm-bindgen", ] @@ -4126,7 +4281,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4e70b4439a751a5de7dd5ed55eacff78ebf4ffe0fc009cb1ebb11417f5b536b" dependencies = [ "anyhow", - "arrayvec 0.7.2", + "arrayvec 0.7.4", "async-lock", "async-trait", "beef", @@ -4234,17 +4389,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cadb76004ed8e97623117f3df85b17aaa6626ab0b0831e6573f104df16cd1bcc" dependencies = [ "cfg-if", - "ecdsa 0.16.6", - "elliptic-curve 0.13.4", + "ecdsa 0.16.7", + "elliptic-curve 0.13.5", "once_cell", - "sha2 0.10.6", + "sha2 0.10.7", ] [[package]] name = "keccak" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768" +checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" dependencies = [ "cpufeatures", ] @@ -4408,9 +4563,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.142" +version = "0.2.147" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317" +checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" [[package]] name = "libloading" @@ -4430,9 +4585,9 @@ checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" [[package]] name = "libm" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" [[package]] name = "libp2p" @@ -4443,7 +4598,7 @@ dependencies = [ "bytes", "futures", "futures-timer", - "getrandom 0.2.9", + "getrandom 0.2.10", "instant", "libp2p-core 0.38.0", "libp2p-dns", @@ -4494,7 +4649,7 @@ dependencies = [ "rand 0.8.5", "rw-stream-sink", "sec1 0.3.0", - "sha2 0.10.6", + "sha2 0.10.7", "smallvec", "thiserror", "unsigned-varint", @@ -4578,7 +4733,7 @@ dependencies = [ "multihash 0.17.0", "quick-protobuf", "rand 0.8.5", - "sha2 0.10.6", + "sha2 0.10.7", "thiserror", "zeroize", ] @@ -4589,7 +4744,7 @@ version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2766dcd2be8c87d5e1f35487deb22d765f49c6ae1251b3633efe3b25698bd3d2" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.4", "asynchronous-codec", "bytes", "either", @@ -4603,7 +4758,7 @@ dependencies = [ "prost", "prost-build", "rand 0.8.5", - "sha2 0.10.6", + "sha2 0.10.7", "smallvec", "thiserror", "uint", @@ -4625,7 +4780,7 @@ dependencies = [ "log", "rand 0.8.5", "smallvec", - "socket2", + "socket2 0.4.9", "tokio", "trust-dns-proto", "void", @@ -4678,7 +4833,7 @@ dependencies = [ "prost", "prost-build", "rand 0.8.5", - "sha2 0.10.6", + "sha2 0.10.7", "snow", "static_assertions", "thiserror", @@ -4786,7 +4941,7 @@ dependencies = [ "libc", "libp2p-core 0.38.0", "log", - "socket2", + "socket2 0.4.9", "tokio", ] @@ -4963,9 +5118,9 @@ dependencies = [ [[package]] name = "link-cplusplus" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" +checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" dependencies = [ "cc", ] @@ -4987,9 +5142,9 @@ dependencies = [ [[package]] name = "linregress" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "475015a7f8f017edb28d2e69813be23500ad4b32cfe3421c4148efc97324ee52" +checksum = "4de0b5f52a9f84544d268f5fabb71b38962d6aa3c6600b8bcd27d44ccf9c9c45" dependencies = [ "nalgebra", ] @@ -5002,15 +5157,21 @@ checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" [[package]] name = "linux-raw-sys" -version = "0.3.7" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + +[[package]] +name = "linux-raw-sys" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f" +checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" [[package]] name = "lock_api" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", @@ -5018,12 +5179,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.17" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] +checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" [[package]] name = "lru" @@ -5124,7 +5282,7 @@ version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -5139,7 +5297,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffc89ccdc6e10d6907450f753537ebc5c5d3460d2e4e62ea74bd571db62c0f9e" dependencies = [ - "rustix 0.37.19", + "rustix 0.37.22", ] [[package]] @@ -5162,9 +5320,9 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] @@ -5213,15 +5371,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" -[[package]] -name = "miniz_oxide" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" -dependencies = [ - "adler", -] - [[package]] name = "miniz_oxide" version = "0.7.1" @@ -5233,14 +5382,13 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" +checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" dependencies = [ "libc", - "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -5363,9 +5511,9 @@ dependencies = [ "blake2s_simd", "blake3", "core2", - "digest 0.10.6", + "digest 0.10.7", "multihash-derive", - "sha2 0.10.6", + "sha2 0.10.7", "sha3", "unsigned-varint", ] @@ -5476,7 +5624,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" dependencies = [ "anyhow", - "bitflags", + "bitflags 1.3.2", "byteorder", "libc", "netlink-packet-core", @@ -5529,7 +5677,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "libc", "memoffset 0.6.5", @@ -5597,7 +5745,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.4", "itoa", ] @@ -5645,11 +5793,11 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.2.6", + "hermit-abi 0.3.2", "libc", ] @@ -5671,7 +5819,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -5688,15 +5836,15 @@ checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" dependencies = [ "crc32fast", "hashbrown 0.12.3", - "indexmap", + "indexmap 1.9.3", "memchr", ] [[package]] name = "object" -version = "0.30.3" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" +checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" dependencies = [ "memchr", ] @@ -5721,9 +5869,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.1" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "opaque-debug" @@ -5792,7 +5940,7 @@ checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" dependencies = [ "ecdsa 0.14.8", "elliptic-curve 0.12.3", - "sha2 0.10.6", + "sha2 0.10.7", ] [[package]] @@ -5803,7 +5951,7 @@ checksum = "dfc8c5bf642dde52bb9e87c0ecd8ca5a76faac2eeed98dedb7c717997e1080aa" dependencies = [ "ecdsa 0.14.8", "elliptic-curve 0.12.3", - "sha2 0.10.6", + "sha2 0.10.7", ] [[package]] @@ -6703,7 +6851,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -6964,7 +7112,10 @@ dependencies = [ "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-relay-chain-interface", + "fc-rpc", + "fc-rpc-core", "fp-evm", + "fp-rpc", "frame-benchmarking", "frame-benchmarking-cli", "jsonrpsee", @@ -7021,6 +7172,7 @@ dependencies = [ "cumulus-primitives-timestamp", "cumulus-primitives-utility", "fp-rpc", + "fp-self-contained", "frame-benchmarking", "frame-executive", "frame-support", @@ -7102,9 +7254,9 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd4572a52711e2ccff02b4973ec7e4a5b5c23387ebbfbd6cd42b34755714cefc" +checksum = "0dab3ac198341b2f0fec6e7f8a6eeed07a41201d98a124260611598c142e76df" dependencies = [ "blake2", "crc32fast", @@ -7122,11 +7274,11 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.5.0" +version = "3.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ddb756ca205bd108aee3c62c6d3c994e1df84a59b9d6d4a5ea42ee1fd5a9a28" +checksum = "756d439303e94fae44f288ba881ad29670c65b0c4b0e05674ca81061bb65f2c5" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.4", "bitvec", "byte-slice-cast", "bytes", @@ -7137,9 +7289,9 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.1.4" +version = "3.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b26a931f824dd4eca30b3e43bb4f31cd5f0d3a403c5f5ff27106b805bfde7b" +checksum = "9d884d78fcf214d70b1e239fcd1c6e5e95aa3be1881918da2e488cc946c7a476" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -7183,7 +7335,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.7", + "parking_lot_core 0.9.8", ] [[package]] @@ -7202,22 +7354,22 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.7" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" +checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.2.16", + "redox_syscall 0.3.5", "smallvec", - "windows-sys 0.45.0", + "windows-targets 0.48.1", ] [[package]] name = "paste" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" +checksum = "b4b27ab7be369122c218afc2079489cdcb4b517c0a3fc386ff11e1fedfcc2b35" [[package]] name = "pbkdf2" @@ -7234,7 +7386,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -7263,15 +7415,15 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pest" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e68e84bfb01f0507134eac1e9b410a12ba379d064eab48c50ba4ce329a527b70" +checksum = "f73935e4d55e2abf7f130186537b19e7a4abc886a0252380b59248af473a3fc9" dependencies = [ "thiserror", "ucd-trie", @@ -7279,9 +7431,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b79d4c71c865a25a4322296122e3924d30bc8ee0834c8bfc8b95f7f054afbfb" +checksum = "aef623c9bbfa0eedf5a0efba11a5ee83209c326653ca31ff019bec3a95bfff2b" dependencies = [ "pest", "pest_generator", @@ -7289,26 +7441,26 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c435bf1076437b851ebc8edc3a18442796b30f1728ffea6262d59bbe28b077e" +checksum = "b3e8cba4ec22bada7fc55ffe51e2deb6a0e0db2d0b7ab0b103acc80d2510c190" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] name = "pest_meta" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "745a452f8eb71e39ffd8ee32b3c5f51d03845f99786fa9b68db6ff509c505411" +checksum = "a01f71cb40bd8bb94232df14b946909e14660e33fc05db3e50ae2a82d7ea0ca0" dependencies = [ "once_cell", "pest", - "sha2 0.10.6", + "sha2 0.10.7", ] [[package]] @@ -7318,27 +7470,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" dependencies = [ "fixedbitset", - "indexmap", + "indexmap 1.9.3", ] [[package]] name = "pin-project" -version = "1.0.12" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" +checksum = "030ad2bc4db10a8944cb0d837f158bdfec4d4a4873ab701a95046770d11f8842" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.12" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" +checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.23", ] [[package]] @@ -7349,9 +7501,9 @@ checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" [[package]] name = "pin-project-lite" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" [[package]] name = "pin-utils" @@ -7375,8 +7527,8 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ - "der 0.7.5", - "spki 0.7.1", + "der 0.7.7", + "spki 0.7.2", ] [[package]] @@ -7586,7 +7738,7 @@ dependencies = [ "fatality", "futures", "futures-timer", - "indexmap", + "indexmap 1.9.3", "lru 0.9.0", "parity-scale-codec", "polkadot-erasure-coding", @@ -8388,7 +8540,7 @@ name = "polkadot-runtime-parachains" version = "0.9.42" source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ - "bitflags", + "bitflags 1.3.2", "bitvec", "derive_more", "frame-benchmarking", @@ -8545,7 +8697,7 @@ dependencies = [ "arrayvec 0.5.2", "fatality", "futures", - "indexmap", + "indexmap 1.9.3", "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -8575,12 +8727,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" dependencies = [ "autocfg", - "bitflags", + "bitflags 1.3.2", "cfg-if", "concurrent-queue", "libc", "log", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", "windows-sys 0.48.0", ] @@ -8609,14 +8761,14 @@ dependencies = [ [[package]] name = "polyval" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6" +checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" dependencies = [ "cfg-if", "cpufeatures", "opaque-debug 0.3.0", - "universal-hash 0.5.0", + "universal-hash 0.5.1", ] [[package]] @@ -8743,14 +8895,14 @@ checksum = "0e99670bafb56b9a106419397343bdbc8b8742c3cc449fec6345f86173f47cd4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] name = "proc-macro2" -version = "1.0.56" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" +checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb" dependencies = [ "unicode-ident", ] @@ -8914,9 +9066,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.26" +version = "1.0.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" +checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105" dependencies = [ "proc-macro2", ] @@ -8986,7 +9138,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.9", + "getrandom 0.2.10", ] [[package]] @@ -9043,7 +9195,7 @@ checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" dependencies = [ "pem", "ring", - "time 0.3.20", + "time 0.3.22", "x509-parser 0.13.2", "yasna", ] @@ -9056,7 +9208,7 @@ checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" dependencies = [ "pem", "ring", - "time 0.3.20", + "time 0.3.22", "yasna", ] @@ -9066,7 +9218,7 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -9075,7 +9227,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -9084,7 +9236,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.9", + "getrandom 0.2.10", "redox_syscall 0.2.16", "thiserror", ] @@ -9104,22 +9256,22 @@ dependencies = [ [[package]] name = "ref-cast" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43faa91b1c8b36841ee70e97188a869d37ae21759da6846d4be66de5bf7b12c" +checksum = "85d07b1a5f16b5548f4255a978c94259971aff73f39e8d67e8250e8b2f6667c3" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d2275aab483050ab2a7364c1a46604865ee7d6906684e08db0f090acf74f9e7" +checksum = "a930b010d9effee5834317bb7ff406b76af7724348fd572b38705b4bd099fa92" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -9136,13 +9288,13 @@ dependencies = [ [[package]] name = "regex" -version = "1.8.1" +version = "1.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370" +checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f" dependencies = [ - "aho-corasick 1.0.1", + "aho-corasick 1.0.2", "memchr", - "regex-syntax 0.7.1", + "regex-syntax 0.7.2", ] [[package]] @@ -9162,9 +9314,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" +checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" [[package]] name = "region" @@ -9172,7 +9324,7 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" dependencies = [ - "bitflags", + "bitflags 1.3.2", "libc", "mach", "winapi", @@ -9230,7 +9382,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -9464,11 +9616,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.36.13" +version = "0.36.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a38f9520be93aba504e8ca974197f46158de5dcaa9fa04b57c57cd6a679d658" +checksum = "14e4d67015953998ad0eb82887a0eb0129e18a7e2f3b7b0f6c422fddcd503d62" dependencies = [ - "bitflags", + "bitflags 1.3.2", "errno", "io-lifetimes", "libc", @@ -9478,15 +9630,28 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.19" +version = "0.37.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" +checksum = "8818fa822adcc98b18fedbb3632a6a33213c070556b5aa7c4c8cc21cff565c4c" dependencies = [ - "bitflags", + "bitflags 1.3.2", "errno", "io-lifetimes", "libc", - "linux-raw-sys 0.3.7", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustix" +version = "0.38.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aabcb0461ebd01d6b79945797c27f8529082226cb630a9865a71870ff63532a4" +dependencies = [ + "bitflags 2.3.3", + "errno", + "libc", + "linux-raw-sys 0.4.3", "windows-sys 0.48.0", ] @@ -9517,9 +9682,9 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", "rustls-pemfile", @@ -9529,18 +9694,18 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" dependencies = [ - "base64 0.21.0", + "base64 0.21.2", ] [[package]] name = "rustversion" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" +checksum = "dc31bd9b61a32c31f9650d18add92aa83a49ba979c143eefd27fe7177b05bd5f" [[package]] name = "rw-stream-sink" @@ -9555,15 +9720,15 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" +checksum = "fe232bdf6be8c8de797b22184ee71118d63780ea42ac85b61d1baa6d3b782ae9" [[package]] name = "safe_arch" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "794821e4ccb0d9f979512f9c1973480123f9bd62a90d74ab0f9426fcf8f4a529" +checksum = "62a7484307bd40f8f7ccbacccac730108f2cae119a3b11c74485b48aa9ea650f" dependencies = [ "bytemuck", ] @@ -9681,7 +9846,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -10098,7 +10263,7 @@ dependencies = [ "libc", "log", "once_cell", - "rustix 0.36.13", + "rustix 0.36.14", "sc-allocator", "sc-executor-common", "sp-runtime-interface", @@ -10209,7 +10374,7 @@ source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff dependencies = [ "array-bytes 4.2.0", "async-trait", - "bitflags", + "bitflags 1.3.2", "bytes", "futures", "futures-timer", @@ -10657,7 +10822,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -10718,9 +10883,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.6.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfdef77228a4c05dc94211441595746732131ad7f6530c6c18f045da7b7ab937" +checksum = "35c0a159d0c45c12b20c5a844feb1fe4bea86e28f17b92a5f0c42193634d3782" dependencies = [ "bitvec", "cfg-if", @@ -10732,9 +10897,9 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.6.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53012eae69e5aa5c14671942a5dd47de59d4cdcff8532a6dd0e081faf1119482" +checksum = "912e55f6d20e0e80d63733872b40e1227c0bce1e1ab81ba67d696339bfd7fd29" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -10744,11 +10909,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ - "windows-sys 0.42.0", + "windows-sys 0.48.0", ] [[package]] @@ -10845,7 +11010,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0aec48e813d6b90b15f0b8948af3c63483992dee44c03e9930b3eebdabe046e" dependencies = [ "base16ct 0.2.0", - "der 0.7.5", + "der 0.7.7", "generic-array 0.14.7", "pkcs8 0.10.2", "subtle", @@ -10881,11 +11046,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.8.2" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" +checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-foundation-sys", "libc", @@ -10894,9 +11059,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" +checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" dependencies = [ "core-foundation-sys", "libc", @@ -10928,29 +11093,29 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.160" +version = "1.0.166" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c" +checksum = "d01b7404f9d441d3ad40e6a636a7782c377d2abdbe4fa2440e2edcc2f4f10db8" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.160" +version = "1.0.166" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df" +checksum = "5dd83d6dde2b6b2d466e14d9d1acce8816dedee94f735eac6395808b3483c6d6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] name = "serde_json" -version = "1.0.96" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" +checksum = "46266871c240a00b8f503b877622fe33430b3c7d963bdc0f2adc511e54a1eae3" dependencies = [ "itoa", "ryu", @@ -10959,9 +11124,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0efd8caf556a6cebd3b285caf480045fcc1ac04f6bd786b09a6f11af30c4fcf4" +checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" dependencies = [ "serde", ] @@ -10987,7 +11152,7 @@ checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -11017,22 +11182,22 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] name = "sha3" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54c2bb1a323307527314a36bfb73f24febb08ce2b8a554bf4ffd6f51ad15198c" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "keccak", ] @@ -11066,7 +11231,7 @@ version = "1.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "rand_core 0.6.4", ] @@ -11076,7 +11241,7 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "rand_core 0.6.4", ] @@ -11160,7 +11325,7 @@ dependencies = [ "rand_core 0.6.4", "ring", "rustc_version", - "sha2 0.10.6", + "sha2 0.10.7", "subtle", ] @@ -11174,6 +11339,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "soketto" version = "0.7.1" @@ -11222,7 +11397,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -11404,7 +11579,7 @@ version = "7.0.0" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "array-bytes 4.2.0", - "bitflags", + "bitflags 1.3.2", "blake2", "bounded-collections", "bs58", @@ -11449,8 +11624,8 @@ source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff dependencies = [ "blake2b_simd", "byteorder", - "digest 0.10.6", - "sha2 0.10.6", + "digest 0.10.7", + "sha2 0.10.7", "sha3", "sp-std", "twox-hash", @@ -11464,7 +11639,7 @@ dependencies = [ "proc-macro2", "quote", "sp-core-hashing", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -11483,7 +11658,7 @@ source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -11694,7 +11869,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -11862,7 +12037,7 @@ dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -11923,19 +12098,19 @@ dependencies = [ [[package]] name = "spki" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37a5be806ab6f127c3da44b7378837ebf01dadca8510a0e572460216b228bd0e" +checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" dependencies = [ "base64ct", - "der 0.7.5", + "der 0.7.7", ] [[package]] name = "ss58-registry" -version = "1.40.0" +version = "1.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47a8ad42e5fc72d5b1eb104a5546937eaf39843499948bb666d6e93c62423b" +checksum = "bfc443bad666016e012538782d9e3006213a7db43e9fb1dda91657dc06a6fa08" dependencies = [ "Inflector", "num-format", @@ -11976,7 +12151,7 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg_aliases", "libc", "parking_lot 0.11.2", @@ -12154,7 +12329,7 @@ dependencies = [ "sp-maybe-compressed-blob", "strum", "tempfile", - "toml 0.7.3", + "toml 0.7.5", "walkdir", "wasm-opt", ] @@ -12187,9 +12362,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.15" +version = "2.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" +checksum = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737" dependencies = [ "proc-macro2", "quote", @@ -12210,11 +12385,11 @@ dependencies = [ [[package]] name = "system-configuration" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75182f12f490e953596550b65ee31bda7c8e043d9386174b353bda50838c3fd" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "system-configuration-sys", ] @@ -12237,21 +12412,22 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.7" +version = "0.12.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5" +checksum = "1b1c7f239eb94671427157bd93b3694320f3668d4e1eff08c7285366fd777fac" [[package]] name = "tempfile" -version = "3.5.0" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" +checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" dependencies = [ + "autocfg", "cfg-if", "fastrand", "redox_syscall 0.3.5", - "rustix 0.37.19", - "windows-sys 0.45.0", + "rustix 0.37.22", + "windows-sys 0.48.0", ] [[package]] @@ -12286,7 +12462,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -12361,9 +12537,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.20" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" +checksum = "ea9e1b3cf1243ae005d9e74085d4d542f3125458f3a81af210d901dcd7411efd" dependencies = [ "itoa", "serde", @@ -12373,15 +12549,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" +checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" [[package]] name = "time-macros" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" +checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b" dependencies = [ "time-core", ] @@ -12398,7 +12574,7 @@ dependencies = [ "pbkdf2 0.11.0", "rand 0.8.5", "rustc-hash", - "sha2 0.10.6", + "sha2 0.10.7", "thiserror", "unicode-normalization", "wasm-bindgen", @@ -12441,19 +12617,20 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.28.0" +version = "1.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c786bf8134e5a3a166db9b29ab8f48134739014a3eca7bc6bfa95d673b136f" +checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" dependencies = [ "autocfg", + "backtrace", "bytes", "libc", "mio", "num_cpus", "parking_lot 0.12.1", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", "signal-hook-registry", - "socket2", + "socket2 0.4.9", "tokio-macros", "windows-sys 0.48.0", ] @@ -12466,7 +12643,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -12487,7 +12664,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" dependencies = [ "futures-core", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", "tokio", "tokio-util", ] @@ -12502,7 +12679,7 @@ dependencies = [ "futures-core", "futures-io", "futures-sink", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", "tokio", "tracing", ] @@ -12518,9 +12695,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b403acf6f2bb0859c93c7f0d967cb4a75a7ac552100f9322faf64dc047669b21" +checksum = "1ebafdf5ad1220cb59e7d17cf4d2c72015297b75b19a10472f99b89225089240" dependencies = [ "serde", "serde_spanned", @@ -12530,20 +12707,20 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.19.8" +version = "0.19.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13" +checksum = "266f016b7f039eec8a1a80dfe6156b633d208b9fccca5e4db1d6775b0c4e34a7" dependencies = [ - "indexmap", + "indexmap 2.0.0", "serde", "serde_spanned", "toml_datetime", @@ -12567,14 +12744,14 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" dependencies = [ - "bitflags", + "bitflags 1.3.2", "bytes", "futures-core", "futures-util", "http", "http-body", "http-range-header", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", "tower-layer", "tower-service", ] @@ -12599,27 +12776,27 @@ checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if", "log", - "pin-project-lite 0.2.9", + "pin-project-lite 0.2.10", "tracing-attributes", "tracing-core", ] [[package]] name = "tracing-attributes" -version = "0.1.24" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" +checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] name = "tracing-core" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" dependencies = [ "once_cell", "valuable", @@ -12655,7 +12832,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -12752,7 +12929,7 @@ dependencies = [ "lazy_static", "rand 0.8.5", "smallvec", - "socket2", + "socket2 0.4.9", "thiserror", "tinyvec", "tokio", @@ -12855,7 +13032,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", - "digest 0.10.6", + "digest 0.10.7", "rand 0.8.5", "static_assertions", ] @@ -12892,9 +13069,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" +checksum = "22049a19f4a68748a168c0fc439f9516686aa045927ff767eca0a85101fb6e73" [[package]] name = "unicode-normalization" @@ -12929,9 +13106,9 @@ dependencies = [ [[package]] name = "universal-hash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ "crypto-common", "subtle", @@ -12957,12 +13134,12 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" dependencies = [ "form_urlencoded", - "idna 0.3.0", + "idna 0.4.0", "percent-encoding", ] @@ -12974,11 +13151,11 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "uuid" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dad5567ad0cf5b760e5665964bec1b47dfd077ba8a2544b513f3556d3d239a2" +checksum = "d023da39d1fde5a8a3fe1f3e01ca9632ada0a63e9797de55a879d6e2236277be" dependencies = [ - "getrandom 0.2.9", + "getrandom 0.2.10", ] [[package]] @@ -13032,11 +13209,10 @@ dependencies = [ [[package]] name = "want" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" dependencies = [ - "log", "try-lock", ] @@ -13060,9 +13236,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.84" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -13070,24 +13246,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.84" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.23", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.34" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" +checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" dependencies = [ "cfg-if", "js-sys", @@ -13097,9 +13273,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.84" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -13107,22 +13283,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.84" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.23", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.84" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" [[package]] name = "wasm-instrument" @@ -13216,7 +13392,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57d20cb3c59b788653d99541c646c561c9dd26506f25c0cebfe810659c54c6d7" dependencies = [ "downcast-rs", - "libm 0.2.6", + "libm 0.2.7", "memory_units", "num-rational", "num-traits", @@ -13229,7 +13405,7 @@ version = "0.100.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64b20236ab624147dfbb62cf12a19aaf66af0e41b8398838b66e997d07d269d4" dependencies = [ - "indexmap", + "indexmap 1.9.3", "url", ] @@ -13242,7 +13418,7 @@ dependencies = [ "anyhow", "bincode", "cfg-if", - "indexmap", + "indexmap 1.9.3", "libc", "log", "object 0.29.0", @@ -13282,9 +13458,9 @@ dependencies = [ "directories-next", "file-per-thread-logger", "log", - "rustix 0.36.13", + "rustix 0.36.14", "serde", - "sha2 0.10.6", + "sha2 0.10.7", "toml 0.5.11", "windows-sys 0.42.0", "zstd 0.11.2+zstd.1.5.2", @@ -13320,7 +13496,7 @@ dependencies = [ "anyhow", "cranelift-entity", "gimli 0.26.2", - "indexmap", + "indexmap 1.9.3", "log", "object 0.29.0", "serde", @@ -13362,7 +13538,7 @@ checksum = "eed41cbcbf74ce3ff6f1d07d1b707888166dc408d1a880f651268f4f7c9194b2" dependencies = [ "object 0.29.0", "once_cell", - "rustix 0.36.13", + "rustix 0.36.14", ] [[package]] @@ -13385,7 +13561,7 @@ dependencies = [ "anyhow", "cc", "cfg-if", - "indexmap", + "indexmap 1.9.3", "libc", "log", "mach", @@ -13393,7 +13569,7 @@ dependencies = [ "memoffset 0.6.5", "paste", "rand 0.8.5", - "rustix 0.36.13", + "rustix 0.36.14", "wasmtime-asm-macros", "wasmtime-environ", "wasmtime-jit-debug", @@ -13414,9 +13590,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.61" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" dependencies = [ "js-sys", "wasm-bindgen", @@ -13474,10 +13650,10 @@ dependencies = [ "sdp", "serde", "serde_json", - "sha2 0.10.6", + "sha2 0.10.7", "stun", "thiserror", - "time 0.3.20", + "time 0.3.22", "tokio", "turn", "url", @@ -13514,7 +13690,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "942be5bd85f072c3128396f6e5a9bfb93ca8c1939ded735d177b7bcba9a13d05" dependencies = [ "aes 0.6.0", - "aes-gcm 0.10.1", + "aes-gcm 0.10.2", "async-trait", "bincode", "block-modes", @@ -13537,7 +13713,7 @@ dependencies = [ "sec1 0.3.0", "serde", "sha1", - "sha2 0.10.6", + "sha2 0.10.7", "signature 1.6.4", "subtle", "thiserror", @@ -13579,7 +13755,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f08dfd7a6e3987e255c4dbe710dde5d94d0f0574f8a21afa95d171376c143106" dependencies = [ "log", - "socket2", + "socket2 0.4.9", "thiserror", "tokio", "webrtc-util", @@ -13646,7 +13822,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f1db1727772c05cf7a2cfece52c3aca8045ca1e176cd517d323489aa3c6d87" dependencies = [ "async-trait", - "bitflags", + "bitflags 1.3.2", "bytes", "cc", "ipnet", @@ -13779,9 +13955,9 @@ dependencies = [ [[package]] name = "wide" -version = "0.7.8" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b689b6c49d6549434bf944e6b0f39238cf63693cb7a147e9d887507fffa3b223" +checksum = "40018623e2dba2602a9790faba8d33f2ebdebf4b86561b83928db735f8784728" dependencies = [ "bytemuck", "safe_arch", @@ -13789,9 +13965,9 @@ dependencies = [ [[package]] name = "widestring" -version = "0.5.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" +checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" [[package]] name = "winapi" @@ -13843,7 +14019,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets 0.48.0", + "windows-targets 0.48.1", ] [[package]] @@ -13876,7 +14052,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.0", + "windows-targets 0.48.1", ] [[package]] @@ -13896,9 +14072,9 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.0" +version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ "windows_aarch64_gnullvm 0.48.0", "windows_aarch64_msvc 0.48.0", @@ -14025,20 +14201,21 @@ checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" [[package]] name = "winnow" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699" +checksum = "ca0ace3845f0d96209f0375e6d367e3eb87eb65d27d445bdc9f1843a26f39448" dependencies = [ "memchr", ] [[package]] name = "winreg" -version = "0.10.1" +version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ - "winapi", + "cfg-if", + "windows-sys 0.48.0", ] [[package]] @@ -14088,7 +14265,7 @@ dependencies = [ "ring", "rusticata-macros", "thiserror", - "time 0.3.20", + "time 0.3.22", ] [[package]] @@ -14106,7 +14283,7 @@ dependencies = [ "oid-registry 0.6.1", "rusticata-macros", "thiserror", - "time 0.3.20", + "time 0.3.22", ] [[package]] @@ -14174,7 +14351,7 @@ dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] @@ -14197,7 +14374,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" dependencies = [ - "time 0.3.20", + "time 0.3.22", ] [[package]] @@ -14217,7 +14394,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.23", ] [[package]] diff --git a/node/Cargo.toml b/node/Cargo.toml index 08380f70..f2fc29cd 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -69,6 +69,9 @@ color-print = "0.3.4" # Frontier fp-evm = { git = "https://github.com/paritytech/frontier", branch = "bar/polkadot-v0.9.42" } +fp-rpc = { git = "https://github.com/paritytech/frontier", branch = "bar/polkadot-v0.9.42" } +fc-rpc = { git = "https://github.com/paritytech/frontier", branch = "bar/polkadot-v0.9.42", features = [ "rpc-binary-search-estimate" ] } +fc-rpc-core = { git = "https://github.com/paritytech/frontier", branch = "bar/polkadot-v0.9.42" } [build-dependencies] substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } diff --git a/node/src/rpc.rs b/node/src/rpc.rs index 028cb5e8..1c4c823a 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc.rs @@ -7,7 +7,7 @@ use std::sync::Arc; -use parachain_template_runtime::{opaque::Block, AccountId, Balance, Index as Nonce}; +use parachain_template_runtime::{Hash, opaque::Block, AccountId, Balance, Index as Nonce}; use sc_client_api::AuxStore; pub use sc_rpc::{DenyUnsafe, SubscriptionTaskExecutor}; @@ -29,7 +29,7 @@ pub struct FullDeps { /// Whether to deny unsafe calls pub deny_unsafe: DenyUnsafe, /// Network service - pub network: Arc> + pub network: Arc> } /// Instantiate all RPC extensions. @@ -47,15 +47,26 @@ where C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, C::Api: substrate_frame_rpc_system::AccountNonceApi, C::Api: BlockBuilder, + C::Api: fp_rpc::EthereumRuntimeRPCApi, P: TransactionPool + Sync + Send + 'static, { + use fc_rpc::{Net, NetApiServer}; use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApiServer}; use substrate_frame_rpc_system::{System, SystemApiServer}; let mut module = RpcExtension::new(()); - let FullDeps { client, pool, deny_unsafe } = deps; + let FullDeps { client, pool, deny_unsafe, network } = deps; module.merge(System::new(client.clone(), pool, deny_unsafe).into_rpc())?; - module.merge(TransactionPayment::new(client).into_rpc())?; + module.merge(TransactionPayment::new(client.clone()).into_rpc())?; + module.merge(Net::new( + client.clone(), + network.clone(), + // Whether to format the `peer_count` response as Hex (default) or not. + true, + ).into_rpc())?; + Ok(module) } + + diff --git a/node/src/service.rs b/node/src/service.rs index 4c9e1feb..56aa2113 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -203,12 +203,14 @@ async fn start_node_impl( let rpc_builder = { let client = client.clone(); let transaction_pool = transaction_pool.clone(); + let network = network.clone(); Box::new(move |deny_unsafe, _| { let deps = crate::rpc::FullDeps { client: client.clone(), pool: transaction_pool.clone(), deny_unsafe, + network: network.clone(), }; crate::rpc::create_full(deps).map_err(Into::into) From 5d17ae7537fa43e207522776f2b77c2d3558c900 Mon Sep 17 00:00:00 2001 From: magecnion Date: Fri, 7 Jul 2023 10:29:42 +0200 Subject: [PATCH 81/91] fixes derived from updating to v0.9.43 --- Cargo.lock | 14 ++++++++++++++ node/Cargo.toml | 1 + runtime/src/lib.rs | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index d416b281..36221a00 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5931,6 +5931,18 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-livingassets-ownership" +version = "0.0.1" +source = "git+https://github.com/freeverseio/pallet-livingassets-ownership?branch=feature/updated_substrate_0.9.43#666101084885bf57e644b957f12a44bb790ba9ee" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", +] + [[package]] name = "pallet-membership" version = "4.0.0-dev" @@ -6574,6 +6586,7 @@ dependencies = [ "parity-scale-codec", "polkadot-cli", "polkadot-primitives", + "polkadot-service", "sc-basic-authorship", "sc-chain-spec", "sc-cli", @@ -6632,6 +6645,7 @@ dependencies = [ "pallet-authorship", "pallet-balances", "pallet-collator-selection", + "pallet-livingassets-ownership", "pallet-parachain-template", "pallet-session", "pallet-sudo", diff --git a/node/Cargo.toml b/node/Cargo.toml index 4d5bc2c5..3218141b 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -53,6 +53,7 @@ try-runtime-cli = { git = "https://github.com/paritytech/substrate", optional = # Polkadot polkadot-cli = { git = "https://github.com/paritytech/polkadot", features = ["rococo-native"] , branch = "release-v0.9.43" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", features = ["rococo-native"] , branch = "release-v0.9.43" } polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43" } xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.43" } diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 4536d9c7..f9229b91 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -463,7 +463,7 @@ impl pallet_livingassets_ownership::Config for Runtime { impl pallet_sudo::Config for Runtime { type RuntimeEvent = RuntimeEvent; type RuntimeCall = RuntimeCall; - // type WeightInfo = (); + type WeightInfo = (); } // Create the runtime by composing the FRAME pallets that were previously configured. From d3751b26ab0fb285a1b1e8b0c89d15ea1beb10c9 Mon Sep 17 00:00:00 2001 From: magecnion Date: Fri, 7 Jul 2023 10:35:10 +0200 Subject: [PATCH 82/91] remove unused files --- .github/dependabot.yml | 11 -- .github/workflows/release.yml | 155 --------------------------- .github/workflows/test-code.yml | 45 -------- Containerfile | 32 ------ pallets/template/Cargo.toml | 41 ------- pallets/template/README.md | 1 - pallets/template/src/benchmarking.rs | 20 ---- pallets/template/src/lib.rs | 106 ------------------ pallets/template/src/mock.rs | 63 ----------- pallets/template/src/tests.rs | 23 ---- 10 files changed, 497 deletions(-) delete mode 100644 .github/dependabot.yml delete mode 100644 .github/workflows/release.yml delete mode 100644 .github/workflows/test-code.yml delete mode 100644 Containerfile delete mode 100644 pallets/template/Cargo.toml delete mode 100644 pallets/template/README.md delete mode 100644 pallets/template/src/benchmarking.rs delete mode 100644 pallets/template/src/lib.rs delete mode 100644 pallets/template/src/mock.rs delete mode 100644 pallets/template/src/tests.rs diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 11166769..00000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "cargo" - directory: "/" - schedule: - interval: "daily" - - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "daily" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 2383534c..00000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,155 +0,0 @@ -# This is an example GitHub action that will build and publish the binaries and a Docker image -# You need to add the following secrets to your GitHub Repository or Organization to make this work -# - DOCKERHUB_USERNAME: The username of the DockerHub account. E.g. parity -# - DOCKERHUB_TOKEN: Access token for DockerHub, see https://docs.docker.com/docker-hub/access-tokens/. -# The following is set up as an environment variable below -# - DOCKER_REPO: The unique name of the DockerHub repository. E.g. parity/polkadot - -name: Release - -permissions: - contents: read - -# Controls when the action will run. -on: - push: - # Triggers the workflow on tag push events - tags: - - v[0-9]+.* - -env: - RUST_BACKTRACE: 1 - CARGO_INCREMENTAL: 0 - CARGO_NET_GIT_FETCH_WITH_CLI: true - CARGO_NET_RETRY: 10 - RUSTFLAGS: -D warnings - RUSTUP_MAX_RETRIES: 10 - CARGO_TERM_COLOR: always - # Set an environment variable (that can be overriden) for the Docker Repo - DOCKER_REPO: tripleight/parachain-template - -defaults: - run: - shell: bash - - -jobs: - create-release: - # The type of runner that the job will run on - runs-on: ubuntu-22.04 - timeout-minutes: 60 - permissions: - contents: write - steps: - - uses: actions/checkout@v3 - with: - persist-credentials: false - - uses: taiki-e/create-gh-release-action@v1 - with: - title: $version - branch: main - token: ${{ secrets.GITHUB_TOKEN }} - - upload-assets: - name: ${{ matrix.target }} - needs: - - create-release - strategy: - matrix: - # The list of architechture and OS to build for - # You can add or remove targets here if you want - # - # When updating this list, remember to update the target list in tests too - include: - # - target: aarch64-unknown-linux-gnu - - target: x86_64-unknown-linux-gnu - - target: aarch64-apple-darwin - os: macos-11 - - target: x86_64-apple-darwin - os: macos-11 - # - target: universal-apple-darwin - # os: macos-11 - - # The type of runner that the job will run on - # Runs on Ubuntu if other os is not specified above - runs-on: ${{ matrix.os || 'ubuntu-22.04' }} - timeout-minutes: 90 - permissions: - contents: write - steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 - with: - persist-credentials: false - - - name: Install Rust - run: | - rustup update stable --no-self-update - rustup target add wasm32-unknown-unknown - - - name: Install linux dependencies - if: (matrix.os == '' || startsWith(matrix.os, 'ubuntu')) - run: | - sudo apt-get -qq update - sudo apt-get install -y protobuf-compiler - - - name: Install mac dependencies - if: startsWith(matrix.os, 'macos') - run: brew install protobuf - - uses: taiki-e/setup-cross-toolchain-action@v1 - if: (matrix.os == '' || startsWith(matrix.os, 'ubuntu')) - with: - target: ${{ matrix.target }} - - # Build and upload the binary to the new release - - uses: taiki-e/upload-rust-binary-action@v1 - with: - bin: parachain-template-node - target: ${{ matrix.target }} - tar: all - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Upload x86_64 linux binary to workflow - if: (matrix.target == 'x86_64-unknown-linux-gnu') - uses: actions/upload-artifact@v3 - with: - name: parachain-template-node - path: ${{ github.workspace }}/target/x86_64-unknown-linux-gnu/release/parachain-template-node - - build-image: - # The type of runner that the job will run on - needs: - - upload-assets - runs-on: ubuntu-22.04 - # Steps represent a sequence of tasks that will be executed as part of the job - steps: - # Login to Docker hub using the credentials stored in the repository secrets - - name: Log in to Docker Hub - uses: docker/login-action@v2.1.0 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - name: Check out the repo - uses: actions/checkout@v3 - - # Download the binary from the previous job - - name: Download x86_64 linux binary - uses: actions/download-artifact@v3 - with: - name: parachain-template-node - path: ${{ github.workspace }} - - # Build and push 2 images, One with the version tag and the other with latest tag - - name: Build and push Docker images - uses: docker/build-push-action@v4 - with: - context: . - file: ./Containerfile - push: true - build-args: | - DOCKER_REPO=${{ env.DOCKER_REPO }} - tags: | - ${{ env.DOCKER_REPO }}:${{ github.ref_name }} - ${{ env.DOCKER_REPO }}:latest diff --git a/.github/workflows/test-code.yml b/.github/workflows/test-code.yml deleted file mode 100644 index b84f356d..00000000 --- a/.github/workflows/test-code.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: Test Code - -# Controls when the action will run. -on: - # Triggers the workflow on push or pull request events but only for the master branch - pull_request: - branches: - - main - push: - branches: - - main - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel -jobs: - test-code: - runs-on: ubuntu-22.04 - - # Steps represent a sequence of tasks that will be executed as part of the job - steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - name: Checkout Code - uses: actions/checkout@v3 - - - name: Install linux dependencies - run: sudo apt-get install -y clang libssl-dev llvm libudev-dev protobuf-compiler - - - name: Install Rust - run: | - rustup update stable --no-self-update - rustup target add wasm32-unknown-unknown - - # Rust cache - - uses: Swatinem/rust-cache@v2 - - # Enable this for clippy linting. - # - name: Check and Lint Code - # run: cargo +nightly clippy -- -D warnings - - - name: Check Code - run: cargo check - - - name: Test Code - run: cargo test diff --git a/Containerfile b/Containerfile deleted file mode 100644 index 1ee45f61..00000000 --- a/Containerfile +++ /dev/null @@ -1,32 +0,0 @@ -FROM docker.io/library/ubuntu:22.04 - -# show backtraces -ENV RUST_BACKTRACE 1 - -# install tools and dependencies -RUN apt-get update && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - ca-certificates && \ -# apt cleanup - apt-get autoremove -y && \ - apt-get clean && \ - find /var/lib/apt/lists/ -type f -not -name lock -delete; \ -# add user and link ~/.local/share/polkadot to /data - useradd -m -u 1000 -U -s /bin/sh -d /polkadot polkadot && \ - mkdir -p /data /polkadot/.local/share && \ - chown -R polkadot:polkadot /data && \ - ln -s /data /polkadot/.local/share/parachain-template-node && \ - mkdir -p /specs - -USER polkadot - -# copy the compiled binary to the container -COPY --chown=polkadot:polkadot --chmod=774 parachain-template-node /usr/bin/parachain-template-node - -# check if executable works in this container -RUN /usr/bin/parachain-template-node --version - -# ws_port -EXPOSE 9333 9944 30333 30334 - -CMD ["/usr/bin/parachain-template-node"] diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml deleted file mode 100644 index 365fb7c1..00000000 --- a/pallets/template/Cargo.toml +++ /dev/null @@ -1,41 +0,0 @@ -[package] -name = "pallet-parachain-template" -authors = ["Anonymous"] -description = "FRAME pallet template for defining custom runtime logic." -version = "0.1.0" -license = "Unlicense" -homepage = "https://substrate.io" -repository = "https://github.com/paritytech/substrate/" -edition = "2021" - -[package.metadata.docs.rs] -targets = ["x86_64-unknown-linux-gnu"] - -[dependencies] -codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive"], default-features = false } -scale-info = { version = "2.2.0", default-features = false, features = ["derive"] } - -# Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.43" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } - -[dev-dependencies] -serde = { version = "1.0.132" } - -# Substrate -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } - -[features] -default = ["std"] -runtime-benchmarks = ["frame-benchmarking/runtime-benchmarks"] -std = [ - "codec/std", - "scale-info/std", - "frame-benchmarking/std", - "frame-support/std", - "frame-system/std", -] -try-runtime = [ "frame-support/try-runtime" ] diff --git a/pallets/template/README.md b/pallets/template/README.md deleted file mode 100644 index 5a646123..00000000 --- a/pallets/template/README.md +++ /dev/null @@ -1 +0,0 @@ -License: Unlicense diff --git a/pallets/template/src/benchmarking.rs b/pallets/template/src/benchmarking.rs deleted file mode 100644 index 8bba2a09..00000000 --- a/pallets/template/src/benchmarking.rs +++ /dev/null @@ -1,20 +0,0 @@ -//! Benchmarking setup for pallet-parachain-template - -use super::*; - -#[allow(unused)] -use crate::Pallet as Template; -use frame_benchmarking::{benchmarks, impl_benchmark_test_suite, whitelisted_caller}; -use frame_system::RawOrigin; - -benchmarks! { - do_something { - let s in 0 .. 100; - let caller: T::AccountId = whitelisted_caller(); - }: _(RawOrigin::Signed(caller), s) - verify { - assert_eq!(Something::::get(), Some(s)); - } -} - -impl_benchmark_test_suite!(Template, crate::mock::new_test_ext(), crate::mock::Test,); diff --git a/pallets/template/src/lib.rs b/pallets/template/src/lib.rs deleted file mode 100644 index 5f3252bf..00000000 --- a/pallets/template/src/lib.rs +++ /dev/null @@ -1,106 +0,0 @@ -#![cfg_attr(not(feature = "std"), no_std)] - -/// Edit this file to define custom logic or remove it if it is not needed. -/// Learn more about FRAME and the core library of Substrate FRAME pallets: -/// -pub use pallet::*; - -#[cfg(test)] -mod mock; - -#[cfg(test)] -mod tests; - -#[cfg(feature = "runtime-benchmarks")] -mod benchmarking; - -#[frame_support::pallet] -pub mod pallet { - use frame_support::{dispatch::DispatchResultWithPostInfo, pallet_prelude::*}; - use frame_system::pallet_prelude::*; - - /// Configure the pallet by specifying the parameters and types on which it depends. - #[pallet::config] - pub trait Config: frame_system::Config { - /// Because this pallet emits events, it depends on the runtime's definition of an event. - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - } - - #[pallet::pallet] - pub struct Pallet(_); - - // The pallet's runtime storage items. - // https://docs.substrate.io/v3/runtime/storage - #[pallet::storage] - #[pallet::getter(fn something)] - // Learn more about declaring storage items: - // https://docs.substrate.io/v3/runtime/storage#declaring-storage-items - pub type Something = StorageValue<_, u32>; - - // Pallets use events to inform users when important changes are made. - // https://docs.substrate.io/v3/runtime/events-and-errors - #[pallet::event] - #[pallet::generate_deposit(pub(super) fn deposit_event)] - pub enum Event { - /// Event documentation should end with an array that provides descriptive names for event - /// parameters. [something, who] - SomethingStored(u32, T::AccountId), - } - - // Errors inform users that something went wrong. - #[pallet::error] - pub enum Error { - /// Error names should be descriptive. - NoneValue, - /// Errors should have helpful documentation associated with them. - StorageOverflow, - } - - #[pallet::hooks] - impl Hooks> for Pallet {} - - // Dispatchable functions allows users to interact with the pallet and invoke state changes. - // These functions materialize as "extrinsics", which are often compared to transactions. - // Dispatchable functions must be annotated with a weight and must return a DispatchResult. - #[pallet::call] - impl Pallet { - /// An example dispatchable that takes a singles value as a parameter, writes the value to - /// storage and emits an event. This function must be dispatched by a signed extrinsic. - #[pallet::call_index(0)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn do_something(origin: OriginFor, something: u32) -> DispatchResultWithPostInfo { - // Check that the extrinsic was signed and get the signer. - // This function will return an error if the extrinsic is not signed. - // https://docs.substrate.io/v3/runtime/origins - let who = ensure_signed(origin)?; - - // Update storage. - >::put(something); - - // Emit an event. - Self::deposit_event(Event::SomethingStored(something, who)); - // Return a successful DispatchResultWithPostInfo - Ok(().into()) - } - - /// An example dispatchable that may throw a custom error. - #[pallet::call_index(1)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().reads_writes(1,1))] - pub fn cause_error(origin: OriginFor) -> DispatchResultWithPostInfo { - let _who = ensure_signed(origin)?; - - // Read a value from storage. - match >::get() { - // Return an error if the value has not been set. - None => Err(Error::::NoneValue)?, - Some(old) => { - // Increment the value read from storage; will error in the event of overflow. - let new = old.checked_add(1).ok_or(Error::::StorageOverflow)?; - // Update the value in storage with the incremented result. - >::put(new); - Ok(().into()) - }, - } - } - } -} diff --git a/pallets/template/src/mock.rs b/pallets/template/src/mock.rs deleted file mode 100644 index 099c0af8..00000000 --- a/pallets/template/src/mock.rs +++ /dev/null @@ -1,63 +0,0 @@ -use frame_support::{parameter_types, traits::Everything}; -use frame_system as system; -use sp_core::H256; -use sp_runtime::{ - testing::Header, - traits::{BlakeTwo256, IdentityLookup}, -}; - -type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; -type Block = frame_system::mocking::MockBlock; - -// Configure a mock runtime to test the pallet. -frame_support::construct_runtime!( - pub enum Test where - Block = Block, - NodeBlock = Block, - UncheckedExtrinsic = UncheckedExtrinsic, - { - System: frame_system::{Pallet, Call, Config, Storage, Event}, - TemplateModule: crate::{Pallet, Call, Storage, Event}, - } -); - -parameter_types! { - pub const BlockHashCount: u64 = 250; - pub const SS58Prefix: u8 = 42; -} - -impl system::Config for Test { - type BaseCallFilter = Everything; - type BlockWeights = (); - type BlockLength = (); - type DbWeight = (); - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - type Index = u64; - type BlockNumber = u64; - type Hash = H256; - type Hashing = BlakeTwo256; - type AccountId = u64; - type Lookup = IdentityLookup; - type Header = Header; - type RuntimeEvent = RuntimeEvent; - type BlockHashCount = BlockHashCount; - type Version = (); - type PalletInfo = PalletInfo; - type AccountData = (); - type OnNewAccount = (); - type OnKilledAccount = (); - type SystemWeightInfo = (); - type SS58Prefix = SS58Prefix; - type OnSetCode = (); - type MaxConsumers = frame_support::traits::ConstU32<16>; -} - -impl crate::Config for Test { - type RuntimeEvent = RuntimeEvent; -} - -// Build genesis storage according to the mock runtime. -pub fn new_test_ext() -> sp_io::TestExternalities { - system::GenesisConfig::default().build_storage::().unwrap().into() -} diff --git a/pallets/template/src/tests.rs b/pallets/template/src/tests.rs deleted file mode 100644 index 527aec8e..00000000 --- a/pallets/template/src/tests.rs +++ /dev/null @@ -1,23 +0,0 @@ -use crate::{mock::*, Error}; -use frame_support::{assert_noop, assert_ok}; - -#[test] -fn it_works_for_default_value() { - new_test_ext().execute_with(|| { - // Dispatch a signed extrinsic. - assert_ok!(TemplateModule::do_something(RuntimeOrigin::signed(1), 42)); - // Read pallet storage and assert an expected result. - assert_eq!(TemplateModule::something(), Some(42)); - }); -} - -#[test] -fn correct_error_for_none_value() { - new_test_ext().execute_with(|| { - // Ensure the expected error is thrown when no value is present. - assert_noop!( - TemplateModule::cause_error(RuntimeOrigin::signed(1)), - Error::::NoneValue - ); - }); -} From d215a78b7ff0f3bea043a4b37d91597741d54c01 Mon Sep 17 00:00:00 2001 From: magecnion Date: Fri, 7 Jul 2023 11:18:38 +0200 Subject: [PATCH 83/91] remove pallet template files --- Cargo.lock | 16 ---------------- runtime/Cargo.toml | 3 --- 2 files changed, 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 36221a00..4dfe4382 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6117,21 +6117,6 @@ dependencies = [ "sp-std", ] -[[package]] -name = "pallet-parachain-template" -version = "0.1.0" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-io", - "sp-runtime", -] - [[package]] name = "pallet-preimage" version = "4.0.0-dev" @@ -6646,7 +6631,6 @@ dependencies = [ "pallet-balances", "pallet-collator-selection", "pallet-livingassets-ownership", - "pallet-parachain-template", "pallet-session", "pallet-sudo", "pallet-timestamp", diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index b7cfd00e..ff59f2ae 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -21,9 +21,6 @@ log = { version = "0.4.17", default-features = false } scale-info = { version = "2.7.0", default-features = false, features = ["derive"] } smallvec = "1.10.0" -# Local -pallet-parachain-template = { path = "../pallets/template", default-features = false } - # Substrate frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.43" } frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } From edd580f0ea6e39d7d5521f8ffaa25f55696d6b56 Mon Sep 17 00:00:00 2001 From: magecnion Date: Fri, 7 Jul 2023 11:43:01 +0200 Subject: [PATCH 84/91] add rococo relay chain spec as raw --- specs/rococo-freeverse-chainspec.json | 315 ++++++++++++-------------- 1 file changed, 140 insertions(+), 175 deletions(-) diff --git a/specs/rococo-freeverse-chainspec.json b/specs/rococo-freeverse-chainspec.json index 6a5c654e..27fc48f0 100644 --- a/specs/rococo-freeverse-chainspec.json +++ b/specs/rococo-freeverse-chainspec.json @@ -18,181 +18,146 @@ "lightSyncState": null, "codeSubstitutes": {}, "genesis": { - "runtime": { - "runtime_genesis_config": { - "system": { - "code": "0x52bc537646db8e0528b52ffd00583c91042e09c64a13531040cd381d55d2e3297c94b9248bbdba8a12604680b519cfdb6f3293a94a689a413bf2eadbe912ec487efc84861bce61587e4ac9dc15a7c6223d1b1760e702e42fb961e0d1bef86fbda4eddd6defbda54c29a5c914ed112c1275e4aafc01d41d838495eaed4fa8921a8ed3fe86fc5314257fde86fc1b4e10024a55822770d5942a7f8b3864ccf7244864520efd1d84805205b50f6a1d8d16e1aabd46b976f16fe59f22d7e5919428c4814784a899451c27e6a0de22de3a20dcd9129a3aebce96b2d45ded4ff8554fb5a1f6db2f399d410828d5fea6fe726a27f4fb07f5f64ba748bfbf6bcf2ffb35ce27f297afbdf65cbfba6abf20118d72f8d5a0e626bc6540e8a956fece9676a8fb0b42408929d72ef9f23d152cf4ef2f4aaab288abe410500143e5883453ded803843b9bb2a57ebf5cfd1a654ebffa79b85909ece0ef3aee781dbffaa3e4f12fcff82372ddea31cbe7dad52804b5e72d788246c7afda730dae5cc976d111c92bea73fae5bdff4ebf366feb3a3a768ffa6e93ed0afbb5bdbf4dbfbaf7f73691abd7b5eb7b064fe8fad1f17bd46fe2d64f44f2dabdc7bdeca96dd7f86de2564fdc8aeac46dd7db54fe5d9f71a7321db59fefef39b3266e35819f139166656fbdfe16d4e8f842d57ec5917370e5ca7fdbc5ef49707bf5b5eb6b97fff6ebf25f90c846833ac857e4dad52fc5916b113f3d3d3dd551a9ee6b2292d77d16c376f53348c466d26d5773fdfac29c7e6df597e2d677202993c9643298bf6b8578f55f1e47f1f4c1e3675101e1286b3fc7cf71eb40db3d6358f9c7b0ca7ef52f4f2bf1b62e8fc7fce3579b9945afdf0a31e23235ca97f2f86351d6ef4c2dda6a1416f8a5545226abbc2b84ebd7c8d51f01e1091f8b5dbf598da2812bc48865b5c884cadfcf200aa1cc08cbc46dd7867543506a6e36bcad5cbfc67effede71ffd65bbf63d17b976ed0385fd8e423f9153ae5d1bd44acc46dafbbdfe64bffcf777c16d577f50bb28dbd51f241cc3daddeddfedcccf55a63a47f8e5b3d36dd7fe8244988e5cf9833aa897a79d190c6ffbc5fbfdfb5e8b1cf27baaed17d77d4ff68b7fdff36f437f1f386484f2fdfb1d24d294437e171b2422a96c97bfd71f57f73df931c8b5cb7f41076ce50feaa05e90487f5007755007b5123353e12dcff8d5df5b0384defe84fc0b12d967b0c80b32994c4a5dbaed1ab9eaeff527fbc5bfbffdeadf5f70dbe51fd42cca76f90709c7b0facbeff7f772fab5d5dfe32fecd7b66b9475dfdfa65ffcfe39fde2eabf2011fea00e6a2946f9518f946a539d235cede76a539d23fdf2fb2545e2ca74dbb5bfa011fea6633f7f5007f5f23825faba212835b318de220947aef273fdda316190a9fc5fbf7646c31c953fecd73ebf4dbf7626e54ae5cf59215bf9978729d1d70d4189b97a4a427eaedb25ec2fe8ed4fb8bf9bb748c291abfd5cbf764c18646affd7af9dd13047ed0ffbb5df6fd32ffefe9c15c2b57f799a127ddd10949817e0ed01c29dc9a0a82357f7b97e6dddcfe9d78e09834cdd0ffbb5b32eccd4fdedd7d671a7ee6fbfb88e36757f7996127ddd1094988d78fb0ac7b0f2bbfa357e959ffffb35ba2a3f3f907e71e50ffbb5953fa75f3b9322abfcdb2fae234fe5df7e751d772affd7af7dfee5614af453370425660f783b42b8bf9be7ef6db8ef03878c50c7483f7f3fffbeff82449c72d81fd44acc2e6fc3fdd570b4740972e0050a070b1c2a70aac08902e7091c2f384ee074c1610267099c2d3848e0188173044e103825683de1c870a4e0e0807343cb0e1c15e0a4a095039c2c3852e024810345ab8e161dad395a3268bdd18a41cb052d355a6eb468d02ad362a3f5020a4c00859653cb8c1615ad2f2d2f3ec69d5c4c6a062919a49c52667c367c35a4cae854d0a5a055854d0f6c786073039b33a82b281c5037a06ab831e3a60c140f5077d484512346cd18328c6c9259c899b4428221a79052c8282418a90279857c425621bf9054a48e905fbe3cba276417b9050e979b3424144647928b1a306e64d28b6ca2d57453c58d143751a04e80f2c1e6a9cba3b3c3260f14161b3c6cd2743ac0b1223587b6464a8854102920523fd8dcd0c241ab8cd6a2b76019f01bec0687d19a828f6023b8081e82896024380bf3c03bf094a418626c02128c00861078a0252603471e6044729140042050a401957b601d86244048129c2f384de00c8103044e0f38587076c0b98263034e0d3834b4ceb46cd04aa3b5c60b22689dd15a418b8c16182d2e5a57dc90b9f1723343877123c6cd165dc60d930d18365ed4e46123834d151b303654d84c6123854d148c43236103c405588c9aa69a2f6abca8b1a235464b8c9a276abcd474e92f9c4b0d971a266a96a829a28688bea366881a216a82a8d9a186871a1d6a72c0c901c704383ce0cc80e3038e0e3538d4dc5063434d0d354c3532e0a000e704383fd42ce10881a3440d959a293532d6132b0f561a560f583c60eda0b505cb0e160e5837609d61d9805503561c2c395874b0e660d5c1ca41d780a5839699161cad2e5a5fe068a9b15253029c296aa4b0eea83141cd959a2a3844d4cc50d3438d0f3558bc879a13d4a0a0e9a801a2e687d6414d969a236a8ce817301d3549d42051b3a5464b8d123529a871a2a6891a286a54c037a891a2268a9a296abed4545143050b4d2b8b16162d3035606aae60d18065863503960c586fb0dc60c580d506ab0c8b0d161a2c32ac34586ab05cc05a83f502160c582d609dc162416b0c6b05ac312c31ed84d7c0fa82d5052b0c8b0bd6162c2d58339619ac325864b0c66089c19a8205052b051e8403c1628215064b081616560f0e064b87eec2a2a18560cdc0b2c2a2c29ac22a014b8ae3c03b58e5b1c26395a68d58d5c102637566d50306634583151cab19ac60c05eb09a585eb0b26061c1ba8205866505ab0a1615ac2f2c295851b054c07a82e585e58413c16a82d5c5956071612dc15282b585a5859544cf8085845be9245841b08060fdc04201eb042c1f583cb07660e5c03201eb0a0b07d60d2c1b5835b0985832301eac2aac25966cf5c43a603b563c58ddb142b3dac14a07ab1cacec58e1607583950d563558d1b19a837504cb88951cab385845b0886065610dc13558c960f5c6ca8d550c5a5ab466ab3656655a3558bda0d5c66a8d950b566aacd2589159a1b16ac18a05ab33562b588d59895939adcc5895b1226335c64a8c55182b30564dab2f565eacba58855971b1da62a5c56ab6ca6285c5ea8a15989515ab2a56547809facceacb6a8a9514ab285650ac54b04ac1ea8995979513ab26565d565c564cac965829b1dab2d2b24a6275c4ca8855112b2256595643ac845805b10262f5c30a05ab13acb0ac7c58f5b0e261b5c34a87550e2b13acaeac7058ddb0b26155c38a86d50c2b2b2ba6950cab2aaba51595d5945509565256b2f029cc23c4c39708d3843d0879e04784778468c21d843a087310da11d611e220bc417826b4415883908e708e508e308e9006a199108e7006a10cc2374237c218846d846542364218842f08d7085d10aa11a6119209d1085b10b2203c235c41382614133a8566846584648463b40a4231c2304230c2a6f08bd08bb08b304cc845b845a845380bb308b108af08c1845684558454845fc2294229c228f88e108a5005cd449882de123e117a099d089b08bb845c4226c2254225c22da19630891089f6121e111a11161112110e110a1106d15c74172110e10f210ac2138458421fc21e421ec21d1c4ba84398436882f08acbd03c0871086ff021421b9a052e4458434843384368c58de81b340e42a65086b08a17115209a7842508a584324f42f5a4c2439546d503150f5477a8d0a876a0d2812a072a3b5475a870a0ba81ea8cca06aa1aa8e850cda1924315878a062a332a3854336829543250bda172431583e6a26aa39b509551b1a18281ea05aa35542e701b546af80d3c862a0d1519550b542c509da15a816a8c4a8cca496586aa0cce818a0cd5182a315461a8c05035a9be5079a1ea42c5856a0bd5ccc3a8b25061a1ba4205466585aa8a4e818a0ad517d5142a295451a8a050a9409502d5132a2f2a27544da8baa8b8a898502da15242b545a585cb6016301a4c467584ca085511aa215442a8826875993cb80ea91ec03ac02a3c1ba413a8223a283a2f1d974e897e0295050a0cca0a9414282fd20b9413a826c032bc4bea4bd784d6b4f130e5e0b470754c313a99ec426ad1f9d0f5e039c8a77ea365d0316837641e128756989617ded444b817de857ff126584ece846f691a3812aea5c5b49367f11f1c05ee839fc0af781567f225a7d2637c8a4be938ba0dffc2650d837eea3c1a8f4ed33de832cd46d7d1687a072d46e7a0ed681bf41c2d47afd1661a8e3ea3cde8315878b417dd5443438751e5d192a365456b06ad383a8a86a2956885d14774119da587e8201a88fea151d027682ced43f7d03cf40ead43e7d026e82b8d43dfd036740d4d43cfd0569aa965e82abdd4547a4a97a0a5b48c9f380f161ccc033ec339b01a9c068be116f0193c869dd80cc60193b132c35b7017dcd4f1c058f0156c036f612d7c859300019422a6816768a1d582264442257037785c97557874ed43474942200425c9100b42421efb1227434242a8e5a126214882e4c405158490940c193159e2848990508f16179e161330fc682dc102d20a4e869a28b143432a083d411242626105264322e8696dd9a3264c92200d2d111a1a5241845612fb4405274c8460301a72a1488809948ae464a80518924ce05b48ec9012274f9c082551e2e4890494d40f5a472c79a26468c98f56117b04c310d1110c43472c20b6883862d20018aad8ca52426b089e9610fbc29013560b88fd615950f204ca904e0b056be4c20a4c5470f24489101328752804496037ad1388d0c212a4e5c32e612284347464e482921ead1ef66888091213a3272c20b9904468052126506a12284b9c24313a0184160f7b7434d4e48396096a5a576e5824272e3c5122a44292a126372d1bd6a885165a8880aa55c3aaf0e489111421284c5838321a7222822742300c1101a045c32e1972b2029323272e28791285890b45434248464fa00c19bd5a332cd2d09190953d627204830a434321106202a5c2a0c2d010acd562daa3212417a01c3159d26ac9405b5576c8088ad0901113178a868c848e5488022584d6d22239196a418528505c2d2a7b3484f4248a909093273bad29cbc25112168460088110005a25386a32e4c449121694084169c18805a1254e5c781202274c80b4a4203979a244a8a885252dd91eb590c428091421a3274ffb44051f3779ec119293a1284378ec0a4e982c71320445680829c912264b9c245102e4a6073bb4e489920f6e78b0464f54381a3aba638f905c8082e4c29300dca069c185a3a32400b8d9c126414ab244c8c913264b86908e981c190d4111e126077b3464f44489100c484c9a30094192264c924449f23776ec1114179e18ad2004c24d1d7b64f404e9e889039218259940ce0d0e56044ca054a32122a327194041bcb1c10e0db930e40205525832b4c20a495218c04d0df68848c9100b4ae4d82324274346432c3861f237713861a282ce8d9955c2e4c8091323a4178684606802054a1221a3a1254d98b8002352f2a4096ce7068e3df271e3c62611dab969635b104a8294644912a4a108ac6ed8180193264998203171c2e4e6668d2552f2a449088486905c5032f4c210eb468d357ac2802f6895c3e634268f307595bc9dc9649595bc87c6e1c0e1c0507893dddd6d63d336cdc3d3363b5dcac9524a9692577acb953c576a9257fa6ac5712038c7ed72dc72dc4ae6965b6e97437121486f3611df656d77355fb94967e99ddab9a91b77b9ce3ee5aed7685ea32dcf9a9d1a6bbe7277354e2dafb6abada6c99d2ce5ae94db80f5e4ee7a08bc8bdaddad5bd7d825fb328af786019279d9a54bdeb695bbdbb6b194d217b61eb3e4ae57d77dfaca77e74ab9dbb12f6fd0f4dd393bd53af3ca6d79e7e6bed2d7d704dfd42eef6eca97e5aecbf5399d19b53b17e5ecbeccdae429d9775dca759feb72999d771bdcbd61d697d3bbcb7201bb9bec78db6ddb7cdb6df3d6b256ee825272b7b3a574dfad9bbecbd2d77d756e5cb52c15e07b3399d97da7f304bddd5df15b29d999a5af644f4a3957b5d27b4ee621a90448e739d759d376aed7cebbadaf8daf6f27254bb9f293db2699bbe3eddd95ee423cdfdd9a9add4580b6bb3e3d88468178db36dfdd367f6dbbee285ef675ffb6ddddb5ddb004afc6d977a7c62b35100477c1cfd7793bd5f2ceaa7458b5dd92b0f932afd39daef9ae4fdef53d80fbd6ecb6a0fbced5d6dd00ceaedaf575b929f61176b79dbbbcf9aec6ccbecb73b59d6d7997a7b6ebabed6cbebcddba6a3fde9da26a7f7c77e3ddddcd779ddddd572e2f4fdf2dc7bbce73b6f35ddfcde5f27abcadd471b9eeeb726adaee4ef7dd0238efb24be7dd9879a7bbfbf4e9534ab9727deba4f49572d3344d5bdf7566d9bbbe2b77997d35cde73aafe4f5f565144bc9bcccabb13651523aab53ed73d7bdf3e9cbeb2bd7dd775b39e54af99ab66d2f09e0d352ae749752a6dadd7f0019c08a59ca1fd27d5bb65c2f9cd3359f13959abbdb52f64e67b98b626ec6d182a384df6cc360f4a485a116349c10b870d47374346404a585274a80049064c8c8074e0f7085274d7ab09a0c45196a22f4429216845670c26485159e34f911820fa32127432b006005c310919012264d42e00214176b68e848a885274b9c2431a2ac254c9a24892274c42404d0d5b3029323318a932177ed084849908e84888c9e880069c8098f084b9c24111a324a02a585274a4800a14912254f9ab8be178696386122e48449121694a8a0c2935ff908c01ae0c91323a1254346434b8c9e0c3131421200b706188af244c990915092a3254a868446207a956000284a8646583214020044f8963819820225c9ced7d36305117a2c69c284052542484d5c48a2c2d012201fac01546062341445080123945082018c8e849e204181c148490838300c110921bd30e4048423a423262f0ce1ec082d304172e2821125529224044d9a3c31120093165a78a2c48572f28409929224474e92182109211925413a1281288912254344ff2ac1003fc4c24e4b05241784909c30318222a4e488490b1f80d0630df0021315868ca0d00f69e8a847cb28c950132542432b24317a8274a413c4002308196088284993107c48c24be885272240125ac10913168e92b0f0c1d60208519c0c39ef08424e9e3039321a8a22343464a48290d113a4244a9e3469924408e985a19d284e86bc002a1b7a959492942492554a5252fa906c52d296a4a42159250fc9765a5292528764939256496943b25c92d24c4a4a9a4894384922516225159255624d2929c9951c49122f12254e4a4a5292ed1c92554aea2d899392943849a991247152522725311225dea4a4a424a50d89122f92245662244a9c9494a439924d4a6a249ba4d44876916c525292122bb1d254928d6495584949c991ac12235925a54652446ee1dde5168e926cded331e9e43dfd1c8d492fded39fa2ee65341e74b18332a210438a136371030938d0d0b28134a9bf80e2891cc4a4f90126a93ce33dfda32ce38567ec14caf8654c6117fe3cd453a99203eb9e8af655421e6285302ddaa73a87589ffefe4f9c42ec08fd9e3883d811fa51e2046247e8efc4f9c38ed0bf8913053bc2fc71cb5cf127d9a45498767cd811fa7be0618a4a26abf2b0b9030f4ca353fce909a6fdc859b81f3bcb158e0a930b46a54a10d8c46147e8bfc1059b36e4c0e68fed657b7aca230d34c2f8218ba45498488051e1be4a10d8946147e8aff2c16a903ffa19ae410bd4706388263560eb651be3430ba890810c3a600bdbe894ede9e989a354aafcc06615176c2eed08fd54aa3c6c52d911faa7a89e9e9e9e60db8ff24ced9f3207dae86e0fbf969333e9ee9449ba3b65b57f2c10fea09e54a97b278b123bfce4d47e7e2fb59fa75f5efb81f4abdba6360bfb28dad5f1631f3c767777ff0599b20d478821eb8e79e28bbaebe3749b086f0c981ed85086b988abff1515f74ee1275897f50163d7a554a723cbea1e5155f92e469155d25ddfef0ff2e51fbc6724a1ee90babf5c03a57ef76dfac5fd7e4ebfe6efef3c4fbfbedf77f5abfbfd9f205e272a554edcfe1395ea1447ae3a47e66f3f7feb2ae928df53e2c224d1f65dbd75227feac054bb4a1db0d49e9f14532295d457d91d413ec3825c8afe9a383f252ecc9bdf82f39be2d694b8b005e707f5a773c47bd47b8ffaae1d0aee81de110ff4e673ef75df6fed5e8a3a1f2dc27df71dad5f6ad74f872db56bf79e7f44a8f7de931f4ad49e13b9ca91abf60e16f93eeadfd1227eeade51e8fa51a211f5f2b92e78846b47c7ae44f28f94aa7684ab4747f91aed505c25d70671c408b71fe7fb91aef26b508f1bd539a2c99f5447be8ea447e66bd4c89449ac846acd0c6f47d85f903b07a7ef975e8bfcde1475e66f5d71ec9ecf9aa8339febb672255f84eabffd8af37bb5d556db7e357e5fa3b2d8bf89b37a93ab84fc52fc9bf29bf36b917f12e1a590df9b9b2bc5748a3fb59786ed12a13a55d2d8cdf0dc655d6ece3046ed9ab333c59521bbc8f505af886bf7c054bf9fdfe211d7fe061db0b5a344fc5d1bf1facc47e26ad13e55ef1b2cf23d0af50b3a60ab4799a2827c7e2716f9d35307e47f68eaf7dd7bdefc163c01f55d8347a491eebf0f6acfbd67d1fb4efcdec123dcf32f58847ba6bb3efc41fd8963535e1ffeee3d71ec285c2df23c4624aefdfc4a1ab71cbc62a0a9f2b5dfca4ec29df130abda6f13d0800e67a4bbab5f3ada3f8f0b090b69b86d8e3981f46bd4de25ab875d1734e2cde5de1df0690049bfe63641a05f5c67ddd90e5b7e64539d75dc37ea148d90beca3d94ba7def23699bc895a75fd3a8193c2254b7e7b6efdde82e90a55e074240290b0da505b5a789236fdf224737511347a5aa118ddbef6ba0918dea1ce9df7ea3630cb57fab4647ae286822fff7ab457f8ffb887f3f7884357a84bf73fab5fdfc1d6f1377a64353d5c4a9fd7c965247ee3771c7844126b4f11c3c81fb31862723fc1a1d5b4ae5dedb96d5ed3591dbc420d7a4b49fe968f0969942f9ecb195b09da83b3b810cb587a83bebc14c75d59df580c508d29433755402a3d5d105137851f7556c25f42deace821853394cdd191037542075673f48c1e0092832cad4222475ff04d419216a5152aa8e48318041ce107544da328417833a22d1108359c7a334a21840154e753cfae2543999acee3ed5fdbadf3c78455ce57b529c92ce226aa8138dca11f06f3ace8cc8526511f9fc3d2ad5f92cea1c996854f9138d3a1e2955f9736bd13e3d3d8d4ab57f66a94c449a2a56b17afdb5f8a34e71a251193ce1a3dc3045ea235ffb835abe8b44fdf2bd6ef0047eaa45fc34a98e117eff13f89d22793b2b02888ad475d2b13f0a577fa52a5617c5dae2561691bcbaaf34b9d36cef6d7b0c760e91f5d95a94edda7ec16e51e4d667fb163180816dfb6e856cddb6e756c8f6cbb3ade11585276c55bdb7bbbbbbcdbf22575ed507f58adffaa8bec50f84a907ff7bef3f10a2be7beeb7ff40a8fd1cb9aada57f5ab54dfa28a05df5226559f6e54498bfce969e497a3f64dfc89337552ed47a7fcdabb287fc1235b060e49758ae3d49c2880caacce17aa3bd932aed4f9e308aad42675da824501d0d842e2d05477eace7058a27afd4d51f5f4f40404acd3226bc1e089293490c9672db20f6c4062872c4600c8e244930c09cabe51b5c80a80c616b2280aa0327b610475be9612ec1bb08ecaf60dd8d2d87e9213218848434a1a990cc6511915998cdfe908a5fa37b82006566dc020893ca63c3dc1d6a67a6b575ca9fdfb22d471690d432bc4e8a76a91afb43378ff9574522a557c60f3996a6035f4cba6f6fbc0690ac726956b6857ffcfcaa052992c251cb986da3fae0c6a7f4c7ee83d3900628a21a6f052462683cdf71fc3da30176592891b8c28411157c0a854f181f933d5c024952a0dd39e690130ff29322d0016eb92827f6c02ded3ef4eb12e29683f692cc87bfa351aeb92c27ca7b1f79efe497fc69dcdfcc7755a1dc80086163ad458a28d313866840b53e2618c2b8410420b3229a803b630f9e34f0a2f93c1bc867e89e03dfb2eaef75ca91b429254e2964fb894e27ce68dd3e67c7f6efe36677f0c12694d74701a51b75df3a5c8b5889f8ae4a452baec6e81123c3c18421cc83c128f615821a07ffd5a1d78da7b9ac815f51ff8bb42bc9fef79a2521dbfed89b6dfff7a557766c3952ad7677eafd80f8adb7722d77e8e7b50e4783fa8393a7ecf5d31e34bbdf7fcfbc47d54ef7b47bcdf0880bf74e4ea3e83452f50298114592d1a45d0033c9eead13a6dd96186fafd9152fde8b6aba3e33eca5b712b288e2fd4068f80747ca16e1f279ee0bde6711f2736e7edd760918f8e5cbfdfdfc022a8baeb13e41f91a53a46bcdff77e2911eaf71b2c82faa545b1baa011ae7a9488fb468923f77ca49f63b06e5ba72845517a2ce7f09884f2c6639652056f0f10f277cebeacfdcb714709fbb92f0480b72ea4d898e18cba3d58567b5508776683536559ddf71a485c1212f96f1d595647ffee411c952b3f8328b094ba746459f55f318aacfb523ca2aafb2e8e2b64949216a9ea8efb545754127609fb0c167d51589db2ac9bc2a2700039c89eac3fef2ee762128f4928436fe5da4ca05fe37fd1eab867c897afc9af9afc0384f37382fa35720ee8d718b2d02fed87f44b56ed35d0afadda232123974cd58254cda68e41823a274dd57e47d334ed9747a3447bc66bf05446b6dfb636d869dfdc7bf7dc6bee1ad7791bf72e46e1ca71bff1b6a7dcdfe957aea30ff0e716ecbaa2d828b74d7b6f3df9792bd5eef7e4c76d748cd5ed5d9c73ce39e7ec8ab6a7a7a734757bafbf4ea323d78e16f9f7ee44be8f12d6265226a58edd176d69a43cd5281cf8f2a74884fab9bdd3311cc771ec641147a50452aa5114ad6a1f65ab474a55a3feec2ecaefe4a76811a7a9285044ea22af28aa63846775fe0489cc979c38728ffa2946e93adfebee1ef528b1a36351acce7717c7edb9a3a352edd8f362557be7446f5e20fedc077951ac6e1c0a5ec723a5cadf89455e376eab148bbcce77d088ac93126d4764ddde41231b25e2775a14aba387b5454fb5a28e3fbf7f8b3a9e8bfc1e6fcf45fab77723fddbf69c11d207a572bfa01124957b6e4fd8fcb7f738b143bd3bea39ce39ff4e34e250dd0735aa7bcebbee3971ece82e106fb0c87c7f0689687454aadabbc871226be2c8757f8a633f8327701176316cd7bed2c72a2e639880cb0abdfadee77bd3df63f067910d03f3ea4ebfb4dfff15f2fdd46eff1377faf553f73523dc73cf3d8b5b19dc225dd82ed477bf34c83b71a75dfb28d1e3c4285c47aeddb318856bd73d276e95cdee29a6455e758a78e567faebb3cf95133b4ac4bdf7122ce222c0bdf7792a54f70c0e6d8fea28d7aee5c491fb0e4547a58a7a163b717c007ff741ce627ff72d88a2455efd3b715b5c6d137daa26e6b46be77cfe4dd4615ac455a339edda1f405d9008ffc6738b27a5b82424922f421d2baf90f1a74ea5690455a737b91f251d93aafcb18bc0ba5127d5c2cd5f91fb2962a0006868f104db97e218ab72d4be89121075fb31a9cedf4dc06e01c69dd910838ac475a34ef68d5ae44f4f55a35a62fb49fec41918476563ac4e3aca1fbbea1fe45214a1ee2fc8812de30a6ca528424d62a5d93dc6db31c4b03183190bf2788112b005bd6d6f5b2c0873dac56f23e68e2f956b8b4c0b8d70fc20412a3fff907ecdcafffc2e122aff08c406cfdb4fc97d30415177c674441dbf36d30ef51d0848f7f4f77baa0d2432b3324690ad4b847f410584a34bfb20ae9f7eed181ca8d47e1286ececf4cb9f6b57ffb4ab37da5294a29184791e7f2b8e5c81b4cbd5aefe0d84a3abf607790dfbe5544963f761be5c21daefcf15a2cde90bc29083fae9fdec7e723fb99fef718fe2e64feee77c9c1592d32ece861d6a504beefdeb8a59a3a9f6f333c8bdcef65ebbea6cb4889fea7602eeb58ee6b48bdbc429b5e95b3cfef6eaceacbc61837e62e6b3ae1667c6487fcf5de45f50861ab4ba332f6380756756d2b08b5cbdb9d59dcd6045ebeace66b8b231107583a8ec0eae8ff87d20dc999533ea287736831175e4f6fbc11567384195bb71a95d9ffd967578cb42d8ef7dbf46e9ea97bfbb3b0d59aabb4b1e8f792b831d5042994c26851b0557eda0e6bada7bdb81706756b05411aabf27bfe557af90e540b833262a75eb564ffbe40ae9baf347aeeeca1532ab7ca7a3bf0b391529a7f6bb381a15ed53ed47daea7c6f038fa8aaeffa8cfedc1ad15efe8227f86f1fd41324d27d9007b58b5b3bd1886bf497bf893a47b4ef6f4a245fa3bb3efe5ba7b8758244246527ae118aabfa3771d5fe910362181fd91d54ff169db8aa535e1f7f07517055a7bb3e4d398ea5185f2aab6875d69e7fd47eb3909ac8cb32843bbbb2a576dfeff5c7e009db73df8923f744a8efde5371f51624b27235ff7b7f4f13fbbd94a893faada3524dfd278edaeb1841558d16a96a14a4aea9ef5f34ea4f05459dd47355bd27bf16c7eefbbd1675bc97d5eb82464259f5bec5aede07758b5c3d074f483d28aafe1353af89fe81a2ac9efc3e71735041d1ab37bf4fdc1e5450eceac9e69d9bd45245fc5455af89fd9fb8785450dceaf54e6e99d239b25c3c3dd57eafa3121899acf67fe2ae5135b145ed5522f8410e8ab37a2aaefb44fddd8ffdfb0e01a52c3a074fe0ef3a221de880a0ba0b646c068bf07f3f8346fabbf752a2f71e7f29716b50bdfe52e2e2a07afea5c4b5a37af2d344ef53e2d156a3745dc188abf7534af5ded340ae127abf202f85de07b527c122bb46f5dedb1942ca4b893f5513378cac04d5e3c45156d4375864c3c864d5a346457b4626ab48ac0afeae0f6784f455f0bf5f1005289c387a45fd271a1599507b7d508fa4d5ef3dfe3871ec8a7a4f34fa1e49abe02f7844a86a1fd4a058f4a36aff894526545e1fd47bfc79da73e2c815a5d15d2028ca795077e2564edc6f71eb268efc20832b579386ed92b4ba12c8db174f0321ffb64bc7db5f9e7167d57f7f9f5b21f3f7bd29eeb4cb7da839ccbd0371efef72a0eefd7f48e8d74ebbb4f70fb2427e7db4f7efc4b07bb4e744ae7bb40ffb35e2547fd77656039aea8fb342b8facf9c7669e256225d7766c310f2837ae5ea6b5733a8bd8e7cae5d75e4efcc0622ea3a6d01a3fddc684ebbb46f8a5ca5c8adcf7e522bcd6e383cfe13b67a2c8e390289ba0cee6e502f93e71c215b605263e62741227567361451b75d122c9235677df62548a4889f6a8ff5e997e009a24dbbfa27b8cf22d7158bf8a9f24f9088d31573d6a77f450c843babb2430d7bac90ada8bab32a65eab6ab5fdeb68a83fb584cd59d55e941ddd5a6f4e6dd52120f9662be44f2ea5ced29227935c2329914915c567e2999c9789eb7a0dc9fafbd37454d9429847362a09f8e4a557e12cc7d410df8378d29c162f21bd62ec69460f2837a1da87fd4e8a423d72d8570ebbee72d9802bfd35812ac4a972213aaf60c9ba2a423d7f99a387a9ddfa27f904f71ab8b0d5b300587f107b514b7b6b8b06d20569249dd8d83776442ed0727c0dfa216122c29c1f85dd40243ac4a0c30f09b005382f107b9c760112d30f037d5428218f693600b4e80698c61fb9dc4ad016f9bebd74a8f43ffa4c87541ff0a7862eee052f757f498c10760618010cb0f6a4939ea4b3c22db2e95c70c08177c805295922a3137c0db0384fd9e53fdfd737636f4b7a94e016f0f10caffe9d7c805e9d718d6f9f3a7ce9f4f42bf649df3bf5fab05953275fe00a9b373eafcb05ffd73fe9cbf3c9312edec062a76f886dbdfe17e831050aa633fd1d2a2a4babf3c4e894236c2db13c29d2d51a93ba3f246b3bed692086f79c675b269978ef3eb382d32260c32fbef409d6ca3e052775feb3406a91b468e1a5e269321011b8180b330723c51c70d53f7bdb9ce90caceb87e6d48a5bd78bcdd29a66c45b84e6d8527a1a85394ebe37454f2a114ee2c0554eaf8ad5c212b848b18e01156e1a996677bd4ef7f73c59db0f58c1aeab853fd7d8ceaef1018d2af9aeaff2bd84242d7d4f10322babe5d4eb4fdd7aeb9da76cdf1ab4dbb1c056e1e831198bf7d4ebf7a52a27efe7ea639edf2ef96fddac4281d017eaa4d837001fc1d6c30c2ae6390ea1f8413f03c005821fe6d600468af4bab5e37100559f9b75fb088d78d1679e59edc9de2727a7b239dad5d8b27df97f3293d2a80d089ebcd068ff73d20edda77ed4aeeeb683f7f026bd32e1d8d1699613146959f42bfbaee6bc0817cb61fe48031ea3e04fae5751f49bf56cc1a6fd4fd262ff46bafc0c67d838a94ad61471df70c95ef4c9715f3821deab8692a900798766d9d6205f048d3aead52ac401eb2766d65a6babf4f42bf58ab3a0ea915c863d6aead2ceeba284f8b5a361a2eef3098b0a68e61dd1914606af8cad68e84a7fd095c1b0a20aafc09450d3584bab314ecd0af77b0c8c82f7fa3926a4c2991f6fda3f673259d220e19a1f6e39c2f5fa34493723fb99110b3033075c5ec804b25405d313a485355daafafb8ef59b56791d7259f4123b28e4acb9dcae91757ede587fdd2e937e22a5ffea43a4d8b6654c6a83ba342a66aaf857bed3fee6ba085696fd32feda798e3540bd3c3383a80703e952e2effbbfb0a28b8782aee39518edb6b2f3991ab0ad254ee3715cc51b5e744aea25f9bb875fb35ca473db74546f9ddf74ba3e3f628aa6344fbeeb5efe8d72ee72a5311cad728d1f6dc3768647b0ec729dc28d1f6da8fdb77df19d95e7b0723a0d18d72346752e945ecfb521f3d1639640ee7e7fc0c4a2a89347313cf3c6e9f7f94b2ae7bf7c875a3236adda5bb7bf7c815b574dc5e7b141db7f73ec8477eafdb524dd47e2cf24aa4fd9c7fa454643e1745887a144a24da9f707b6f0d109671546b8f9a20117f4ff447c98e72b86ddb136dcfef85531db93aebc24ced1dfe8d8e44fef29912693f37517b16e77bfe3183fe9be8cf1afddac5af5dc150846358ddc3712794cf39d06e8fa41d52e9c25fe5615dfafd3fd0edededed40edbf2934755127059f745d473e7f0518b6de4329d0b00fea2456e20641b86974e4aab6dff513f1bf768a12255fccdb0960de65e69f5432ef6a9ab6ae7ddd8fd3344d7ba9695acf95e2883439e67ef052bf628a84ddf79a9999dd7bedbbaef3bcaef3bc6e13919a88e7714b4f49707e9ab7a1b8aee3509ba77d1394295775c8ab6ffbb5aad4acdcadcdeff39eeb576fd55b6ffb3e3af2d42fc5de73dd2f536e3b544e373b14eaf951cf14896b87a2a3f7ec3d117f47bbcef33c8ff37e7bcf63caedb5ec9abbf26b9de779df7f2ffefa7cff7dcff5d6755de7799ed7317f410e7eaf8144f845e66ef612f66ebb9cdac6cba5e4faec7b740cdb65e5ed046cdffcbdfdb66d5ff55e6366d0fb6ddbb66ddbb66ddbb66ddbb66ddbb66ddbb66ddbb66ddbb66ddb36cfe3761697f35eebdefbfe7e8f3d3aca177702dafbe691abf7a3f75e7bef511473c7f16fdccefedb72b23fec17ffc70388c3db7dc9eedf9794be9d80ee6dd5ae90fdb15f7abdddce2ec5f336f4f85be4ffe98f6b57f36b226b1af76dfc1a1d918c5f9999c531a7b6275b4ade9992ebd3cf43646c12a4f237c7dec6729f12c7afdc73db8e94524aa48afaed3d29bbaeebbaee03b9542af5f2535beaeb3ab0c957bb50f521cd14f852caeeb7edbdadfbed79fbc475b0fbae03824a89a394b2fba9fb1f7eea3931859a9fcb97f4669772dbb66dda442ec541607db8f7642765c749d9afa2234f55a566f7a8d98144a4f4a474299fab523ef892038dc807e9d8a1d03d91fc8f3e77524a293b2965d7492965d76ddbf65dd7759d945dd7a93ea855af5271ed5249d9759d6aba4af541aec957a9b8b79192eba4ec382939d54647ae6eddd7755dd7c9aeeba4ecbaae9372dbb6efbaaeebbaae93b2dba677b2ebbaaeebbaae935dd749d9755d27e5e649d94929a5ec3a2965d7759d94b2ebbaf91e286eef75a0f464955276db554ad97552765db729d54ef4a494524a2965b749b93d4bd952ca6d6b29b76d93524a293b49a5ec7e942fd9755de7c997f44f765df749d9755dd749b9a9a4941cf75cbf7838666fca5f29e5771bd76d3f769ed71175dc37f7411ecae7a4dce1723ea9aaa3f4e949297f3e1fbb1fe5cbf9f2594ef71149d6f973529e0d48dddfa93bbb4e0c5a1feda7b653359aa37a8f8e3cd54b6df351dfa34022feeb946b573b1182ff895cc37e6dbbbeef8bf2a31e2955a73a47c0f707df2912d7ef3bd0883f48c7f91ff5effb3e77ffe644a5a6cfe9df37fdfbe6f4ef9b7352cff3cef33cae5ddee6791fe42a716cc253fdbd215e90aabd4d389f631ebfaa3de77dea5162eabd6e7e200882e0836290a3c411c9e7f7cd39bf39e7f7cd39bfef4375a8df2d258e412acae79c737e73cec983dade9b734e50ecde9b73ce39e79c7382e357512ce4046d56cfbf76efea69dfd4c022fe2b6e75af7322ddf7b77d3fbabb1fe9eabfb9bb77ddce6a875a70d291ab28bacd27617d50cfef397b952fe9ed4f4ffd111971dda7a7f9fd38e744ea6a4245a13ec83d716c12a4faa37e50220fc7bcdbfeece8b74b7ba7dd8f53fbfe2ec8397f6db989903f55474947591bf44f7a13a575def671fd1add070e1973fa4f7fa2c95d427e17570857477f71899072e30b55c59c8393b373bb74828efd3c86c736a19310a6ca0f639323bbdda59c5303896c2011b98124b48b9ffb77ffea1bd72edfa88f5f459a755fb2b721f354b6d9976298a076c9719d48689707469eba1f438232ee54b1094fdd21558e41aa74b54bbe47c720b59f7b20ae6dd7f87577365c3af66fdf2448ddd77eaa1c8110f976c9298e4dd6a9ee4bbaedda1de6128e5ce52d35be509908f7f9397ff58f4e970865ddbadf621050b8712703e6421bde0feb90c7841d1c86cb1cb59f07c856fb55b577c6254b4dd56d85f0fa78de5191a00d5385026d5362ebbc70292a3af00b94ea0c0f74e3f333205747aa4b0f54a8a550e2b05ae9c09247d47c5b6c5050dc60d16aa28bd68d4d0dce0f5784c7ae39664d9ce12dc2f889b0422458bf3aee8846fe4651b8ba5ff4358a5767558a1f544f7e52f451bdf9493147c4a9def649b1553dee93e24df5ba4f8a36d5437d52aca99ef7499155bdef93e208d5033f29fe542ff549f1ab9eea9322aa7ae127c5ae7aab4f8a5af5589f1467f56a3e29caead97c52f4eadd7c52eceab56c6a6e5a38296a8414d602ecefac7efdda993761054cf3e75517c89c8053777d8898a34cfd40b83322c0d4268205448c5177b90eaf6d6e664e94f998b9db8939664ec8407ac1c10b931369e6172f4560d1bc80f1a2022f49d4e5b6700c978a41f7b19733a88fbde8c01b03a68eba9f27039fc0f2040f281a521f6fa9abfaa0086f6c982053c7cf092e3637df2aac3b7bc20b5650dfac4fdbb8f8812762503ff0d59d3dd1826a7333e60a1e38aee663710e1baeeecc092758ab5095023f0fd571359445e5093b788edddd5d5e269a36082e53fbd97fd18ceb54db97e98a453be31f398b6b56fb47cef2f2c74533ae93a4a3cbe9e8ea323578a9cd597e08bf47f3dd8febd4fdf7a3ab8edd04d271d1d4d1cdc82bb28c03c5786350d1cee23d8d87182cab2ce128b7d4fe55bd096752d24bed2d6642da5ecea8687f415353b46753c6c4953a329a75aa2c533d6f59fdf8ac1f736a7e0c6d7ebd6732d5ee7e4613ca6260191313d3952b57bca7a7bfbfb160f19e9e8e81b3784f4fbf993a7613d74da19f71a09819b0f0fb1dcdcd4d4bd66a7dbf6472209c8fe57cbfabfffb73687fe8404bfef4f4049b92faa57ece81e68085f4875574e9a6f54935b0f0c3bfa1bc6545976e7056ab5f75dfb1e8d24d0e0e8d81c57ad6dfd0f51ef0c15f07aaa14b383f45f54b4b53527ff33934869a9aaf791cba3674c9e6a7a8bc5fd8d2d294d42f6c29c67400588bc610d21854aa57bd0d5def998c25dca8f735229711d9cc4ae4332a91c988ec241e29d51384fced67261db9c95b3e3abaeae866bedf13dd0c10e1c8b27132b16c055410810219dcc088a62a73ec60063a9e60ee657c994110b23bacd07ef61d7624219341a6046cbd87fb6de3589a4286052fb802b6de83faee279303a9ae34e101068b5316323670a02e638336c3850d60ad44963a7653ed2566fd6ec681620cfbf19e7e141db98e8e1c47c770a363a8d13167d231878eef74fc3aba99fa539bfbbd784a5fafd06c67c231e7ebe812c25842a3f9daefa352ef5df7b11840ef1b85f2680cddf7f2d7813e1a034af5fceb404b1f63098bb86e4debe3bfb0a5ef634c0780a9680cde148fe1db34341a1a0702e91208520d8df7f87f74e9fbe87acff6dc34be47973c8ff28ce99883a24ba89fc2fd128aaef7c8e72f1a9a8e2e753f85a331c85fd852c75ebc679361098db4efe71fc29d2971a6b734693b53e24cd53427deb2c58162dd27d5c038d43f8acbc94185611d794b8ce900b00e0f27d8148f61bdc78433b0293296507ed3918be43396b048ffb835f109423e41386e5934344b86b7741db7a6adc981788bf7f8735c18e6e4d4716bfafa55b665d99ab62cfb461d35270d8de664803a6a326d8b269b5e2699e9c5a68eb2cc64926550759457e4177965d6d1676ec6b1f8accf3896a6339d45d6b4a5b3a0d932329a1f968ddcb8647e46ae3aff10320a42aefd236fa9be714ab35566bce519fd4af5e71c2836c5d781244abecf647326db7ff9b9377b8ec65c366b998ac6b8ed63fef263dc7f34d667da0b949f291e7629f74294831ff32f6ca7585f89b1536cf94a166fd565b449637ce657f5b3cf65335938fb7eba339b17199e01bd74bfb5dc32e12fccfbb1b380bf30ee37f5e3862afa29ca39811fcdf168d8573a1a7234c729a906b6510ea6d18549baded3ae52e24691e12dcfc867aaff3a10f7fb9c036dbf1f3a90f6fb390e347fff1d4882ad89537c8a2fc529be89b129fe9c18c3f9a41ad8f672fb98f65518a67dcca5fcf972c671b39b5f8561d31f75530685baa1312a5540188e3f15261360375f85613738fe2d5a856137fe369465dee35fe3cfa2551886a2b11feff15f5128dee3dfd11812eff10f6915864d7f157deff19734c633eff14fd12a0ce3682cf41e7f907216eff1dffc3f5a85611a8d4dc07bfc3dca57bc673ac92b9a16ce2cdd8f3c934edaff96f9ed17c639ea472e83a24935b0f91d4daa81c9e77e61dc266a62e83dfc53ccf11e7e29f299ba2124d928716f4e5e8f02c0a67819f9638aa791f9d8214c526787307d3b3b84c9e6831dc2b403c20e61e2d96a7608152603c0a6b44cc6363b8469bbd9214caad60e61c2c1d9214c3f7276089308dab743a830f9c0a6381a59150ddc214c9dda214c28d50e6162853b84c9c76a873051d60e611200ac696c3ed301b41d4265ca0663fa81f557f16d87304d980f6102bb1dc27483da214c1fc07c081300604e63fe4c07e0fefdde214d63f2936a60dbd69ab6d19c39351a3a8d311d00e63fc539efe1673a002c56e34ed77bf8936a604c0780357defe1df4fd258ce3cd5faf0ab56c83edf78cb33ce59ddba42fcb73275576affb8025aef192796da3ff6a8fbbc4073b1845f9db258c4cf58c222596a3fd76905982bb0c8a28a2d4d1520b02efcf3fba70aa088428a29be50817a26129a70c2cb1329e8b24336f93afcfd33891d42658a0ac6f403dbbe8a961dc224b7ec10a64f891dc264b3c40e61da61628730f1c0e4f74f2e3b8409084cd2181309b0ed75f8fb27113b84892b6287308546ec10a69c237608d323b143985cb0edfb67961db2d1980e530b48d904e1531ff352fb996c60da3391009b2f830930148dc960028ca331252e5bc8008bbd0c26c0248dc1b05405d3136140f1048bc960026ca3b12438805003cb16323ac026377fccb89c97379ff3b11bee5becf45fd3a10ce1b7ee635d52a01fc2c7c2a77b66e743f9657abccec7c4eff131595fd93a9e0700ce07368fc332f06d66e0c7986c60dbafb64c67f1f12859edbf521b0034d63d0f9d4008341644690c4a18fe0e8db10e8d7d0f1a7391760e8dfddcdc7c8bc6d849e63dfd4f43568f57d1d87a4fff0fca3306815601024bfd8ff6e3cece68a90f747ea7e6bb9c77aaad7a96cf541fcb52fb53eda5f5da952c7c6587c6bad7a17c0587c6586643630dd258152030f05734c66790741629f341fdca3ab16cf6e872703ee7fb69e3fd877a6f56bb7b549f597d97c54be7d0d87c1cda3534d62c1af3998ac6384bacbdc82b2dea59f80a77336d68ac4b0aacaff998f6312612602aeea753ed8f754921f59c97daef5e4363dab3a87f34e61e8dc999f7f4a368accf743426b3aca87b69a7ba822bee98c950a3312a553e988aca8fc932b59f890498a4318dca3201acba5ac8904445d5d5c28aa5172a7360ecf0851839c841c4121838247144186270604337870f422a60820651a881a68834602cb1ba3976e8420a19b8b0ae983a6469ccc034a5290f2988806d4d7513420b5500eace9ae6a85a5d313770e2e1dbbcb9296520f33691e3c270b4cc9c715cd398d4379131c3263024d7e485cb262d663755b1699bd6d4e58e0db68610696409a2cb1c3fc0b82f2ad7d485dbb411b4208917487146197430c1a6175cdd5913128dc6ff00e1831d1d1f3d72705a373635ac55a84a819f87ea366d4a6f5eef29b57740bbb86903bec8618d2aeb7ea18314147800e06997ab5def52ca69824ee321c1d585a4410ba18b29c7a0c0088f7a1752365511437fe2031c61bc200b2b7ca0a20b39b52629dbfba63990355ee002293b70e28c1dc2f84cf383840ff2f3a3421b607a90220799a722b8d801083c3faeff1f3c98c2066840914511646c81830f48f8203f3f4138018103992b409cf106acb5a06387e7c7f5ff43163360b9c2450d24b280b5191d123ec8cf4f12482cf580060b38dc40c304377c28600533f87283322aa8638b05c0a0c70a6e30c68c2d8ca081065128208d1c9e1fd77f9559104e94910571832167e090f0417e7e0000268d0c65da90820a1524c08cd64e1a56b431c3d21d5e7a20248c1b2237b841b6041aa719804140173626e410879938cea08206460499d56c1c561811471e61acb8c2069015acd90c881b803101973353bca458a510860c74502103259ce8a1842742106aa045107658d183531c24705191f0417e7e72f8018d251ddc08b3d482036849ad992b69cea0210e1de4a185018a00935841c51b64a8000e2e3d8c10c4fc787e5cff29f0a188365240658932d0fc7c81657a18e80286145986b8030b200ab0038ae7c7f52fe60e2a8c8841193660700601beb8d2e5d4c0957007d30f49b821c31059f8306dfbc512172d30f802cc0d6d00f9828ae624063ea8b1e58d22e080c100be904d1e8258c10d5cb220b1c41701a491292da898228b1631697ce941e3247c909f9f076cc186193988a288349a70bd1dcdf3e3fa07da2245134ec0d146136444f8f96ab717676abf64125e06e91f7f7ee86a599c00cb972372b0c50d596001f0491de0b4010ef871a0a541dddddfdf00a7414dd7490260786b80d0a9ccd63de7de3d32d3918edd6b1fe41dc7cc7123c772a5f4389179d953fc4c8b9c43a1e40735279e801289e4f3048974923d078d70cf74e488e44f91e3c413b66a759355a3b25b9fa9a57a2a4e137618dcd45e48112bc709d83052264e53e8ef54c7c857ffaf4e77852cb781449872c8d55b2de5c50564361421871373cc21070c0018e01e350ed930dbc49d66c506eb502814e5ca78cf12d1980b9303312ac736cf715c175e3a74a01f73384c172e288c19d4334804d58961bb2090031b5996c8e28c162c80713c950b73a67278803bab6c9cf19ead736a5144993aeb6ac186ac8e61e528c610c38b599823baed5d0b0384b669daf7da47c348e28cf6cfe3ea51770c1ef0505175c9a8628b3abed7f38859981b525cf0c0868b19d87cdd19175e54b06e531d75fc68ec753f865c80a973b6b71aaadbce30a3da3857f8d5396793193fd4c9d5c939336c1773130c1668a9b383cdc951d74679c6afcc32fe314034d5c943ff9fc7d584033a2a58178c1648a9e3ff78ac6de1020a4ee3328f905c00c1f90e5c7323c7715103a7699aa669daa6edd49d6d71a6a2ea36dda00b4ee62d8f14b7765c4845cab670aa5e8347fca95b97cf2adff3227f4a535b568bbaf599efc90623e046f291b86a8414566f7dfcbb2d80d7f9ded4c4285de57bcbbd9ed2689157493949758ccc2a7f56492591652ac2adb38e5c751e6f30b4ad47ddb66d6b3a33abb26e1776f8d0438abb5fcdccccfdccedee2f6b331728d81185182972dc70c716b02d84ba490184b44188aaebc5135de830e68b19df2207b9050edeaaebc51340d4adae174fd8c08b157528218325a1d0c002eba273e48dcabffbebf2e6fb154ddbf5696238c2cde3264e00d77d14b889c15821dcdfcd4a683fee2ebb6e4ea87114aecacd52c76ddc72fa35e9c861d4fdf93cfda2753e57a6ceff664eb5eba47504c2ac697e02ab7218ebb3cfaaf33d4dd3b45d1fd65ea3a3a669dcb43ecd33b73c3c8eb07f0ba68a4346c84ef5870023e8e06b4083397070820c3ce98413ebe32fe488c534317fa77ca715229d968c2ae9285f52765a1f38425675e2048c69aa23938941383203056531667bb6fa2fbf82b250635d5b479e417596a26e1d59756432fd0aca628c75adc10908cac2690bb035cb3785b763e83f72a3c4c24ce5b83194f29747aae0f9b396335994a9cc66c29d6981a672c1c4461db7da5a9ca94dd58ff0174e792a33959a442de2276ee2046c5d8e41b8cf5a56c81153a9ac657df6851c253193556e6a3002fc4595cf60114e62851cc9dff5f1fda232182b64e4ea949bd687c1086385f0efaf10a745d28ad73a4d8b740d1d88cb71a0b07bf6b99210c453bdfb3148f50ec3754f7ff7f46b53f2186fbbaef4de81767edf01501c088b03e9fc3ecf1c885140ddefb3e0403dbfcf571ce8c7eff31707a2aadf0fe2481ce883df672607fa7e9fbd38108fcdefff3850cdb37e9f650e1480dff037e7f727e04020fcfe0b0ed4fa7dcee240a200e8c855017c8b3aae17e101f053dca14b3e7ee7359186f0f4ff37f1075dd200f0aee7c41ebad4f37bde1379e812cf7f080f8a1ff4cfe77e25068006e0b517e16f44912e51f1791e4704812ef5dc3cf73dc4a525105e676758ccaa00de0608ec03107ee755e21208d4ca00604be083f03e1ee5835a49c17ebc0e5deaf1aadfa1566e604bdbfbf81c9db779d4d7884b3a36bff3a99d4fbd0db5e2b0259c577d272eed502b3eb0a5d5efa41ef5525c4a512b0a802d790f028a5ad9812da1dec7eb502b36b0259d97cf12976e386aa5076c897b1fdfd40a075bd2f97eefa15618b664f33b7f43ad68b0a5d483f0935a61c1966e5ef52d71c945ade8c096747e8a40adf0c096725ef501f84f5c0a00b582822db1346a45055bfa1e840700b51204b6a4bd8f0fc5a5294b4a301e6a4504d892cefb3fb5d2035b6abdaafb7ff1595c0a815a69d852f83b3f65490946a99505c096540f025dea6cbee659bffaf0ad300c8417a91520d852f73ee8928fb7c2b09fff435cd2a14b5618a6f32068cfff81b854f33b7449a7c7e73cceb7fee6ad30cc075d5a5a5a52bd00c4a459ed9123babc671f479c80f7ecb7c417bc67ff46e42cdeb36f2372deb35f23fe78cf3e4bd480f7ecaf449679cf7e28f216efd95789a1f7eca7c420deb30f8a48bc67ff1399c97bf63d91bd78cf3e4accf19efd4e0cf29e7d4e64c17bae78cfbe26f217efd99fe27bcfbe141d00c57bf65b642cde33f39e7d254eea694e8bb7f28d90e6a6711caa4bfdfee77da947ea55f82a9bdfb7495596cd2369b5e6915ab54895f3d59b378a222bce23c9da7a249b5a6442d5314262d59c374242d51e6f1445ab3a8fd4d5879111525841782324ae7ef03b8f94538bbcfe30424ad55d1f7ea3285d7fd05e1f7e24adee8320fafaf07f20caf5e1df11e7faf0eb88ddfaf0fb10b9f5e1ef216eebc39f236aebc38f237eebc3df12bdf5e1bf1151ebc36f23d688a9f5e16789e0faf0afc4707df84371b53efc2a91b53efc29b1b53efca078b33efc9f68b33efc9e58b33efc28b18798b33efc9c88b33efc9bb8b33efc9aa8b33efc53f4b13efc52fc607df85d04e1c7faf02b81c08ec65b9e7196a9fe2914a9de7b1c32c23d63cb0ad9eacf2f0865355f0366fb6dc67161baae09851ae3fb9c40f08c54eafd27997e1d494989c2dff0fde71afd3a926ff35b8f2425623deb9f7364a87136e2517f0d9d572614d3cbe432b7cc2366960944bbfc39716211e70e2f00e7489d41d911a2916958328e4acdfb4fa67e156db3867e156dde6f9d35d488934abbfc59a24cd32eff509476b4cb3f25ca394469a65dfe9cd8a1c423106432595d7dd14dcd17b1be2804bfe86873aade1fedac7e4fc468b5fa22a31ba249660236354f34cf80400deb89a6930358e113cd311a1012cda6a014f84433cc10f0e97ba2396b977f9076f91b79ffe191c6a3e33e3db501a68e4d3631d57ba2f9a55dfe3fedf26894565dd1717b7a4a5389e61aedf24fa15dfe44134cbbfc49689734e3e3a726f9a51907f24135e03dd28c3423cd4833d24c7569469ab972e5ca952b57ae5c71200d68f24af52bf38a9ca13ace7f93b3495161c7d1f1251654c7492cd57fcb22b1003973e6cc99334d67b62523970c178e6153f5979ea5c9a3a352f58054cf92c5b37816cf82a6fa7b163468d0a041d3689c9c9c9c9cda69cb962d5bb66cd996b5ac652d6332d5bf654b860c193264c8b0176e865a8ef4c23008d98b065e7b66239c5f1ce8a785f31a1dc39c9774cc79a6e3d71f0db4cb3dd02eff1ef485cfa1507270280b402dca3008476e7ea9fe1a70200e4547aea363183e47c79cdf964cf507d22f7f1eeffd77baf7b7d9de9f4bbdff07fef71c1d1ff5211d739e2b624a448f8c9b989aa21a68973f483df0d1173c8a84a2503ada84a32cb4cbbf68a34bbec81fd168acca97229276f9731be12c533784a4a954d3b02c1db6a7daf18081ddeeb23b0fd8f755502f9d368d2569afbdcabfe5fca4eeb9dfdf69c9f927753f73fa93b497db73fe49a897df9fc4bde6fddc3e09f5fefb214b25b9ef4f9aafadbadf3ec9638549de7ba92a281848c1f0635550b0149df203f5499db7f2d7e427cdef67f201537decbb4ff27efb2a285848a7fc48d158b77d739fe42f9fc9070cfca84717d5bd9c9fb43df7b1a4f91345e5c7923aca7d2cc99ffba4ed2597b469b1a42993bce977092bdeaaf0a42f20a6f34c3e604e63f2635534987fd18fa44d0ccc69ac4a0ae6cfd482c92296738aea89c907cc3f36e54715d49474ca8f5812f82d261f301f36ac30e5ad3ed58e4d8b15a6bc1ad52aa7c5b20953decdaac6a66513b238a9d5dc841fb46c58a94ffa3edcf1ba6d7e92f6aee5039d1e9f333f27874ef9f1b1240ea5d3834ef9f1b12494e4960757603b3e5a36acd0fba4ef531fab8282e9d0293f9e9e9e603e7ae4d018930f180e8d25a1be65c30a535eb7cd4ffade3f96c47dcb8615a6bcce3fe9fbed6349f25b361f4bba79d6c7926a3efc58d2ea531f4b52bdf7b124f0b74ffabefb5892f62dca7343431bfa35d4864577563427a4392aba93a23620e5f9a48fbe474314dd8e7e1c955d02ff46b92ea13f96a4d1af4be09f74bb84fe2449b92e81dfa9ec12faf79374b86bf2b65f479ab61dcdf945475d77f47de01fa954e11fb158357fe47ef347ad16ceef7fbf8e72be88ff28e78b7a5022a3a2a222458af88b6cbec8bf68f545a92f92effd11ee8ff0d3d3d3517f11371d6b730f3ae6301d1f878ead1d9b1b3aba0d1d7356357464ade868930ae9a84ad131f4403a7e1e1d3f141dbb283eaafc283e2a47c79dd5318a8fbad171135335ff498b7e3c3d3d5549c7283eaad3b1c926a6fa8f485a751aa5559bf2bc520e4b2abcfd09f777b302882abe1891fbdc6240e39eccd230c18313e060cb19d1081dba5915b21e3f9ce41083a90674e4008c1f6304171f1574d4b4eacea840230914c7510146e552308ee3260a45b578e115401f8ce338d47c0f25e6a07e0cabf7288ee37e9da85caa721cc771a8308a1e788e4dce57970b36e8a8b32e1765c040f5dce1c78f1f3e7ac0851668a660e146163f426e670c358c61e28c2f56c0940608542c7554dc206a69341ca0b8a8a307f38bf8b522a1227e9a409defa2a42333c834c8b330e263541aa2c8b25127ff91d24ada8076f5a85483dad5df7222ec0ff236c690e22e90f92e8ef2d7887ca75abb46ff454152a73a4556d6a096bbaefd296e959468df779dfc8b9836c0d431873fa8fc3962dae04280b0b9eaa9b89b5cdbc76f0ca5ac524a899add5c4eca77d7efe44829a59474a75d4c698ecc71770689f00a42ad6eff72f58959e52fdce6c51329e068d0a5a8b8811cb2164821c28d3276be94017e71416a96d25475675f9e985f3801a8a5eaed4f9853c32e082fa7d19147b76d3590a16e1b775ac7691d3fc77161e8405339ee73388671dca6cd5f074a5a410db418b3c61b68b4003675ea7cc28b3a7f73c2ba61e810d3b1b401111d74d832858e1ce0c0c547177470a9dbec0b10373675675f98aa57970b3b9e18c21b7f5c898a1414e1250d3475d4c105b61ff6ab475d9703ed6c4110ee6c22c7146ca479b261083072a660c106d69d490144e5ea6a51851a1b370f52d410860f4f347007dae502ec7bcd0738c30b3694e0c4a0618c0ca1ee2c0a382aa846a82df702d4a6691cf7fc9cc609d1440dcab80110686cd901ce112ce0a4f09bba638e9855adee982b70d8d2e4e766091630f113723b2160051c62aa980106153b688de1a09039d43044172fa884b9c205b09baa7d2844d5de4603619ac6fd7c8f13b92f36e6a8120a68e0461271c8f103152c60db73fdb2a99b1a3cd4ad6e63aec0a16ebfd3401a6c7b9e0692b08d8e4d7eaa46b9767d116ee55fe795dc57374c952d553ac14d30bae67e529b76e584dc8f610d1da8a39a16051655f3609aa66d2fdbc574d3d2fda669517ca99a06d3344ddb34b02e19608c9058fa256b1bd9f97283379af0a051264d5d3165ae5403d415c3860b2a3bf119de86dc77963a5fd291ab925710725bf79cecdca94dbbe67b5213c31984f2c7b0ceaf2e368db1da7d47477f0d3c21742014e599f7cc9f334cbbe6773208e58fe0093c7b4e94ed9aec14e45f65270ec34dfde2d7d7a096e2f7853ebfd54438ee993a9deaf875ce473297b0c009b8215c316ca451e57716f9c68e40eafecfc2c62112366e18ce4582b748e18e79c24b5dd51de3a5a936356bcf51a93d6be95e03ea28071bbf3ae72c0561d4f9b2811c36dfa68176f62ba4094f9d6fc393c3845b4307e25f1ada88395c843875c3d0d146957567514051c7b0be13e185fdbbdcf634dd420cc8295b0b6d34cd5beb3ea8432dde6fefaf3d37795dda7b128c80d75149e3edd4fca0e6a436df88ab66d3af8dea4c4d7ea7512da897ff49f99a94bf4914d5422a5d347fd4d73df2670dfbb52fa5aa7dd55efed72fede5a43afe5c03a095a87429172a84a1180421438846684693040d331640303824188d8603415273fa1480118ab458489f4a854994e2280a628c31c6104288218600638c199821ab01403b01a607039a9f2c7eeceee22ac5df0f3a1165807551f1a8b8927df6aa110c1674b1d6a280d2cda534258b42a5c90031f617388c818c37858666dfa00b787d413846b57e048ddb69a24035d43225f49899cd886faecac04c4629171e35786e808d7d18713686dfd3f7f000b586d09f3eb871d9559cf8800e3a1d6f635b304a50c13c06109aff46d0efcda1bc32640d2814c7834bc02484e8e4cd1a87aa62c93455bf647a952e3d3d55a80da40f820edb5276d92db1fe309c0e6b2cc9b2e33790b37d1d988e723ca2af6b7541f35d2ac2a5daeda7f8567d5bc8f5eec201c27e49fee09adbfa923ad4734792634f3969ad4d5825dbd712dba5b7cf12b74bb7cf25be4b6f9f2566976cdf4b6c97d8be4bdc2eddbe4bcc2eddbe96f82ebd7d97985dba7d2d8a25bece0dad9706eddf81d92f71c85acb52b563cf54d1e07211753a37ccb20f82c3d1f419fc553958a2d3260523dbb109123e85ae5fd08d321350bb6151d87e4655e4ecb3e7feced4990259e88b45298805ae594414600b8bf8d7269039844c66dbfb692528c00bd70811b579ace564d99c94ae86b9c928ff509a14a99d0c3e8dda80aef4c441c73842a366d40e35c8c0807f8d8204f00f3e106cae629bc9518a92bf9caa768738c23af7910587b02174db15a8b53112a27760a70da3b23ec68e829e7f338152f6c10c676ce5748b5a38cefd0a9f0f2c7d9fec70c67648b7b985834bbb581a0f7cac0f6cb8b63d9cdbf862b845e706f30a449afe469ab5a498fed4b1417409fcd01820d73436f164f077a7063f8c8f165c9a15921b9f40e6e8de28b30e0e6ad2ba9b9b5228a7f56e685e514ed3df60d62391b6bf9926453a48a7e96e24b38d0784b419fdd1a32f0df10760a278a97d66c3b5db33dde217e32d3ab7312541a4ebdc609651a5d44080ee51e0f76efe3c0b141dcc308b72b5ce88279c18181b407f818d1b85721ac69c16e316e4dca809abc1310932e683f309aebe9be61285e9fdcd6db201013d8ddc1bcd2a8ad3c5df6073120e28d3ba1b32f92899320fa2ffc0461a011945636782d62e0261a97dd2c6795bf3b86909d41c56f476018578f91eec4129a3eaeb0e1639a65f037e7888a7c3df798572b195f0d0de83df1576ab01754670a98381bef29df529bb35b1f4f41b91d8ad3e0f0e79a41f40ef3f3373f361f32c7ac9211aa1cd096e4a4a2075101d2f0bf86d8ad6e9c572102e364dd313829fbf9aef25005ec8c6a109932d071cfc2a523938117185cc0bdffd1a29a8f54faeb6016ec78b862bd6edd5daae08b7f0957722b0ef91812f55bb806a448daf31f8d22c0178a7c4f36de248e997285badc6243092c82972ac31d562fee39db8b4db63721c3dd4449bcbe8e83f30af97d25d2e939386f8ac4b2ea3de570580a4b05ce3b83658214f585e6c9c1faadaf6a40322c1ad58cc456fb5242bde9e9cc9aa09d2f1147d5818f17c69382a72454b553a28f982c27249bb15553e577dc0a038e658941d9bf28c557ebb06132830aca3ffa7d343b7c8445d1552cc25ac8706cf4e1ed92f30de48d5ca78bdc0a339a099f44eee6b9ad9e35b79d94f7f7bcb7bab71ec8c74b4dc2cb423f5b5c77cd0578c8f0b33510664b7c583302e4f5bc8d5b04c3d8b6cbe20d22869abda78f91d434d905555e13bc2135d15c7c59c0c9efa687870314dacd00b916313955581788e68dc1833930808404134ac6f30d2aa9985d19b704a05bcc24e00c710d8c579e51a07446484fa3eccb8c365dedd74d8df48df6b39767bd22f64aced068679562db0316bb7a09038d823eb566ee83814c21903cf997abae5c6fd770713734b0dc4ff5497c0778ef5627283c8e13124e3a54049a1c7b3ae6e5e6a20b3a4cfcd19466e63a12ed4b8f8517d9ad94773d91be6432220f5aec3c506c26b912c6a46db008583d5d8615a2229be045f1f1c15aa4a2a992d44952eb8dc543b1c98abb5dd13475defea9b10496a6aaf6f5270299325f0c7da525c0d73473c933f454aade5c1dfdc68db835a70bd44eb79160f05b890a4cb8781631eb9a93df909197eed0b01fbf003deb0ab9f103086a3d6354f87cd7d2889b319b343d1492323c8a4bfd67b433e236f844583e9da788e75af55f1bb2b3db8b1e489107d25d1b1852e8291ec85c621165767c2d99156e19051d5bb0a1de42a8c3c6e75f6669816e274c032ee232ef33b7f6da653de79d8f7c241d4eee3fac2410c87b80ca209ef5bb10ccc630fe52e183d80b4367867192861b04615e5d9d64da1d5e9915a9f761c93485b771c8e86aa62b70ade658733463cf8cb0f4c51d62ad6e05e8b3393500c76d6840a1f96928bd633955cf22ca935efedbc0a205b4e80b3fde655a3cb40e8c805ea07750444fe4778ae181d9e7c6e6ed99150989a703570a9b960c8fb5da4f9452cad4ef7287c29575483271a7b94d0703e64ac7ceffda8e70c8bf8ed051ff02032d2b6588bd970afab922254b14d1b67c7a4b29733821d1ab9ae3693c5dec62f1f5b95455a00667ac3f4be7a47a3485ca850f98bac91aff96586c133bf34c6ed58e8573d4d40799aed8b9bda480d9648834b13698ae14b4f98a74ce14aa888a18ddbdb554ff700d1bb0fa960eb7b9e42f0ff7fa2b701d1123708482edc3aca6cb544cb6a7b01b71a7bd87ef139b6896f73817b967d89f439d941a7d71e43496da2076309b88c9a58e0751791d15b45e4bd1fe0ef4d9ecff58c0768792283153304a57f9d24d1a79d9cc47d67fb94e54a8e41102ffd3fdf138e6b240e2e57088bae0656d30b411f9bc11339417d68bb0fe556847ded25190a4d114245e13202bf9dbce358983fda0cb91e35e0f36a80d53137b98a0c7d0cc573dd5addaab81ebf62b1d80e9794e6a1471b448813b04f4b26918ed480334a80b75b240480f61ffd34241cb91359dd4f5c47b0ea976f9dc158809628b2dcf1f8050634925056a696b4d85149948fbd9fd0c1b7f9d616e4cd098c620876d92d4087efc6dfe46fb8bc79a0af4c3243eb9482a395b43f04d2002e1718aced6100db0226ac805902d56cf1802a51b59d474f44629840bbfb80d7fa25730490bfecee75cada6a75f6e7280c009f322f222954bdfe81c58954a0bb702b39c46e69089925f111bd89a1eb81665ec7916c52bea636998b399f7004ac3d73ca759730a303dbe41a72b5ad93f6bca29a05b5e0ab0be5c9e491c0bd6273c06102ba4c16ec205af151832551d561098da092fbd7e096467e9c5d518c97f4f6e2589c187b4bb5bfd205eb44f66f015ee7fb45d7baa5f7dee61cd963fb44a43ab971312870b46443ac4ae53cff43772dcc4174a7494775ec9de372c7da7e52724001ad803a9453456220a1586e2858ef6421b20491b34e07e55e3ed4a96df541285189f03a534bdb382721d8e9362bd7830be12bbd8d85260d7ca41b0f34dd51da68a7bab30a6385aa747817f481b5c73e8288609949fa2c92961456ecd3585b6f0c70787bfe74430960d2e17c048d50c6563f000776121d49bc42d0ddd4ce71587bd60d54fdc38a499e941dd1869cc630577ae0f21ef457967f7dfa2b69c1b03090933aeb5904042bbb30bc6146404ce4784c1237f8889d2760e9bdb146b6f40d62fdf881e91b564acdf502a2ddb871f7da98d10b1454afda5a63d2d7dbf85d54684a4d8efa149af22bcd91d1215f68febf89dcbbed5db47d856fee7c8fe1412affe732f8c824645da592402455839ce3c30590ee47fe45712cd937a42bce913fdd785ba56ea4adc4cd1be3ec4669f9a0f12f64135cfc13d343b7d78347bb128a7318d715b9efbadbca25e45b36b537d2c83f9ccbd237f1a4ab7fe8b5ff7ded53a7fdeaa9ffb4d746535c644b0ed7e9da137d686ba37a39139ac23dc52ceb36bd73796a9f7bd3607b19f9ddf0952ed06a55bf9d560ddf1cec7ae2e131ee90b9429f95dde146f2f16ef7bd46c25ce7944cd4a46702ee632595adfbbf410668a23802ec85a1dbdf08d985c88ba6ee86e5ddc339857b723d3ece092021790dcff2fc80c9502f6c29bc1355cd68c7aaf5b4fcbad3025fda1785b9820fc45656e8edf87c154f2436b1f52256cbad0ab2d4ffc69f6226ac019dd58bac0348619d1566648d5a9721d2284c057f627e3113192053bb0b60e98a5bfd70d8ce342aa1ec99baed92ac9c6d6e1d57cdad61db5593d40c27a2146ec944ad028b8d07855e6dc100fba6e5944aad0e76bd06651babd45692a60b943e38a1faa9f7239aef97c10e15fb3a9f7fed15fc31e932675e8bf807b7e293b2dfbfe2b2dbafc4640c0b5c2e9342e89d6bea1dd56e9123b4cde15a58aa38a63f8120dde52e63d933fffe259799bed836dff57e4d5875ccfffcbd4ce68af5ef87bedcc7d30ddecc35f1be080237606a3ee85ab2fb51997ff8b060965e680ef56234da17bad10e278986de8ec9451bb7c8c939683a8ac2286ee4147e69f50aa26d7f9719dadfb6fc7a38f45e533e6b38c8108cc4cb85f47fc2a12dd32f219aba3c2ecc62ce1fac84fa13a5adf72edbc72e87843b792a03ba04e83aaf37d650fbaa6d2f025a47aab143b94b367ee01d862b4b3d355f2781a6504e2e94c3eaa18c2cb685a701593c2c8c3e477f7d820c9525df1d1f1fd3db3b4fd14bc19d8d9d049fcf07e2c9d9f85675a3689571ed3468d0704dcd284894b74ea5ce0ec13b5dee32a376f90e8bae0002cff56ba57396568fb7b32881b3a8be63c47ce50955396ee8fad7458e70aa0195e931f2b04a40964c5f7950a461b9e0fea2f4dbcc232091a60d8386595760578f71d1d8003376f484e8da4b2d25651b8c0dfbfeb67acb1caf68a4557558923a0d0aed18496a89e0cd7d4f9a7efb75c18c39bab58bec3b0a37e38eb3dd321e7a9f56058a1d0052d16c0505e5d13466b51697f15f13b38c16672141c58d9f1c2b6edc1ff0ff0d30de95f651aab7586be6bf565717e237aa2dca02c7547850987a1dc94f7b2473cf0886d0f527313492acf12329d68a869aa431b973fc592ecffb9faa548b467531b58473222bd04a0b3f7d8043ddc4754a9d8aaa01391e09540cfa72cc8f38a7a42577c3454e08c7900b1ffa1311bb725fc46d99ce6dd4634969ca8cdb5564705ad0764ca97f694f42994f953ebc947128846a015256b122a2cbe9cdfb03ec6c18e5816e4ed2b929d59da9ebede6d150563a05504fb98d429fb745d8d5f39eb9cdf1f2388e89edc7e72cd21c1255b651272cba023fe058fe71a976c43ac9762591abac2715984beed92976f257e4b0c5d43d064ceb2e09aaefcb3c1ce08df6b54070fac29b7c6079183b69fb25841899fb3da41bfe70d2215ea78753bb4da703a31a1a9d3fda8ba713f97187ab2bff4fe4c84b5130289f74a06fedbacb074335ea8774536dfdaaf2d130f5e8384d8f7473cd9e05b25a505a6b9a4a75fb6b807d6ceebf501641e73938e78c4386e690ba175e58eda7cff29cac42dd2347dd83eba11c5a29877e9952e7a653524210ff8cf8675342c8732ed16906cdea2e7c973cc02ad339514bbc4754eaf1cce24706294e9d34ca93b52e6a94c4f7b0322a2fa000844e820a4dc71d4a222e95ee82729546f0e6f1fe9f8b2910974b5c6d88180d75b63a1156f780d97e8718456db045fb7255ec801f17eba0efc8d8c2a905c8c0936302851554d425f8d54129f615ea55de7211c40f1af5eb4f2721cfb5cd3fec4c6f0e10d050e1ea92060c08d3e10af805b6784154816fac80d051f4453f778da88c6f70c3dfad46e0add126cce4f8923e2d5c99556a9a8f56aded805ad444c6087ae63ff1a72b1fd133dd67024d42e88f3322494986e8d0c8eee72bd74e3a74bff6d703add006e7d2412359587d40c74b270be035dcc8c1a47f38660913bc9507bdc4cffef15a1192f371dee83405884fc2c9839e8b125de9f2c1494c79a728146c8aac2781381b96a29c2e63f78a2aa83a7d5861a424fb73352574919c21073d01f1d98884bdde77713fd80dd8c2ffd62566d487fcaaa9655f8e01eb72e67d11702d2e8a8ffe263fe57972338ef749bf851fcf6894433c611fc84cd5276f498710ae6778ce02c7b731df6e800b98025ad4e7d5097ab561d7412aa518fa1c313a33551a6c4de8f04928abf4ec7ce3706191081d320266aaad508e64b49f682bac3e4557861c621a4d5a8ea6c2eb3bbea1c3401d691a1b16113e58441ee20afc2917677315127f0b183fca756dc50c3bdd068cfb4e4c3f74cb20e927f6e8f618c9b5f13b9c614664b6036aa0d39477853d9403715f55cfe86bfc40b82ce7512a23cf80ad0374fb504a1a10d64a637d9506e957b7c8585cd4e1535ee6c147efaece05391b7af8edf2667257b97e4bbead88739d369635112ffa43d5eaf5de021c6395cba8fd402857d858f2b650db5b9bef9e859f8c1529781167fa385813c9e6da4c8c04ad71bf537b3182a15e08b20db8d67a6a8e62ca35e2d5dea6edd00925f299974bdbc1338d623c4c6dededc823e0639eed4de0ca8c5f0190b2d0606cdb6381299fb659cf6bf8f1c84eb9f35bf887238d95a03e168709be3f070d696f8d49b185c734c51770ebdd8c1c263d6a726cca91d5f9222f86856ac60616d04bbf8c2b694bf4e2caeed56385852af2b1a147ad5ce5077d9269a0ac5fab52063c6a4cabb4c95fa55e1a645f067095bacacbb8df523bea69baa3c8d04156b31983c2d765a4b39bc6b08caed0e3161afd0c0ec9a3b6c8bfdb10e0df7b98777feebf56769aa45da60d87599fea448cdeec7790faa54e62ec6d883e5cabc63903fd427399caa976a9793870b13582224846d93b5341fed2a4ae268c98958f646bd63e21ea4573f04ad500431c278a8640ae736190977d2d723f222be2520bb6135f59ce83ce8a20a9f81bd48f7d52a481be40cc7d3b67a6c86625d0c755c476d16240febd7737e0862b38657505cbd9d78616170d352afe10cc29ada6055e0626a1239f71e805eb47d48ca9a24eb262b46239b015b31354dc0bf90963e8c29b995b441fb953635119173fde8055106cd14eb8c9f67e053f78e8e0e24e0eda9f4e132143795f1e8877600a8f0bb47894abfc194cf243808036150be6d44be1561ce119e9a56b41c4440f3f556c492e2e9fff5f748d1e4adc4ae9db2500c8a381b890f14fa890f47f8c47a577600e65804fc9b0bed1ae0479a9d74408b040aa049a2f45e17e26a9f757d3098a25d03f42c54a948cf2441981477b13cc6d6209c870524b6847275b2d3d34148ab4c7dcd8477a595d5e8a77081d0a72696c277b62c6360e685d11ea9a38a54063c291dd1f10714886411dd07a322a78f59ba2ef1aa13c0b61bebf0495990249a383c0d8f95b4aae9178960e178d281034e1ead4125a8fd957130901e739778c08cfafab0a2357b35337cc6be801274a66a8e30ea5ea176e7f03dbdcbadac28afdcd8a0698a4a3f56ccb96a7836decc392b9f121b1f08743dc939e9f1f30fb809fb3a3355dbe45e54461c7eb7e289eb24a050c20c636c1522de730391c23819809d12f0c256cf839b89f82b94499b2447bd4f79c56d22d2cc4c2c246dd48c5d7fc3d07f7fc57ed2fab19b070743d073fc3031e91a97829581d82e07e22c4c81ba33f19a512dff067fd0ae43af4f38e779a1eb143477fc80fcb443fa87187dad5f64ad80aa0479e11ea4c757509dc61ba200b1295aff45fe2f6c02c2b683088c435219a62d09e4bde1ef21d04d40cb1e4f79ff7d92017fa638e90d05c0acf8cfc217e28ed0e8e2186aa78dcf0a2d971b1c3ccc3a5afd300e761471b6f9ca0e97b15301ad2fed7c8ff43505f42413896096fb0eba5c759bc82eaa96057fe7ab17ebcee29ec4a7b778b00dfaa7a141077aea239703553b34bc2ef0602fca24ca1bce4423cffc537d25a7eeac56e080f2cc7a8ba0e38af008a08e2535489f726d027e7c0ece2240de1f603cb54ab2e40bffc90f530407772720310d4f206018a85f4844c52dcba37efe0249bcd9b97d7e598843dad0e6319709695e215beeabdaf04a87530f35981bf454529fb75fac72c1d0bb4a60cea003f23bc41ab3e854629e89290ed4bfa3238ddfd99c4c13060a6828e59c9b98924eed5ad37d26564715738ee89811e2c8440fb9560c081e1939ef7e487733b065a1d07ab9b1bb94e868a37d5b263c08b78006e11113344507dc2fef39357450e737e465fea32356cc0999cfad0ba8e4e9ba953725ea8b3ea81f5da66574bec5b86cf50e6a6d0f56ffa0f09c80ce13ef2ff2023742eeace02f05affa5d6bd6be5b089ea5f1a601f087c6eff713833a101594040117c994b6f0ad5b8ff86ee8c20580c077be46c6548043bbd259403e266c3cd54474b10ab597ea8ccf646afbfdd749272b05e5a4e5cfd3b9bbcda2a9eaaaeb460a11fa0389470bad376b30c064ba635725ce997f36c0ef28b947d79c717d78613030bfbf89032593c02501af8aefdc7df17792f0dcd5c1a354a24a5a067b9a1384583ed2cd9a38d2e88a8e10fdfa2407eb1552f522923c35780bd58684566110792007a69f9c556fb92eec970ac992fa6deb2c3408dde733af6857dbd63d7c97a7fb569437396e8fd3b144f00270462fea69e311c4bff39d4562000a1fcb7280b855e3c93d6164e87c3196bd158e3bb6f75d6b97bb61c746070bfaaf6e052df4d3a7bcefab54ccc1cef4d516afba32db33f1ed6079a50af155c6b22f5b9e39edbf4ef0227fa5db71c44a7ca181ccc167866a53ce802f43832a755e1ee57880303246e6a62577841faa1cb688a4f6304f638a1b862a5cad512deb424fc52a7b22bc2b8c25ac8c14b518729574d3dcf434db16eb9f6b7a139f5ed4667cc4cf1e19114fd929d985bda1da00b5fc722878c1f66649b8b049089e33a99496bcde92c9ef354cd60c09ef6d2dfd0c27666e9643f1a44c17dccf39aa576c631b86a5cbb21a0b6b738de03c29a9a574824d88da6378fc7df9318a71b73bc34f3695947151306c1beee834a75236d88e7ffbe20354feee2cffc6170cd70f08b15897b665fbe33af321ca024d396a0cbf83a470acc12dcb8c104da068ae52204d117aa9188aa8707f84e57f38a46b2015339e0f872664628b8dab44385cba787e51a3c5828647d652a7fd83db805bc5b738dd0e5694a61bab7b64948535adc87a50a33f2a7ddf32fd6b36886e0ffd1ffd4f3684663a1dd33979ace3e5295d09fbb20ec1db0955b1efdaacea3f79ecbad57e5af537e5f39a85ae160bdd0148b86d3e460b4ea8e634a8ce4765ce062119c513492f2aa9938de4c5c6e28f5e24f42a3a6baf100b7ed6dd765cce890802761bc5797e1ed0a18370ee5d9bdc8f667b595cbab64b65560cc6dc98de886104177ce7de83380ca1a64e652b828f7c437f4f1e5a1faf7fef5e49564d9a0689d01bc9bd2ceead084547afe837f3423a57b2e9a1300262ed6027c606567a7ad7bdec1628c432fb5eff2c743481c6f24f98e5771fa6438a35c208001b7195b48b661355d8ee030c52cc7af90e2f27aff504c8715a26c09ebfafe1269dfc814d212dc527fca7249b9bf6512c7ea41a880fee91a014b9c353020898e339921457c018b15b2fbf3aa933e19eab9f9f0d0aceeb7d4f9407bad20ceea38852f862774df90681e5b6ece99177a97a7f5930ca90d0c4eca071b60a79411c6427310966391807a19c6f1805e0f142ca0d367726852075075943647db74bf3227e336ce97f388ae3ceb4fd5daaa9a65d1b43d42654b0c29ae8a6f3daab81610222ae1d082ce0866898e1bede75b90b0ca08271f9e2e58d31cc5aec5ee24c14906019f54a0cd4583e9e1fa3204d4a99b27f26912618eb6972c04c35c8074ab95b972d0011981c3d2831184b2d6b0471d953477b582a25c7b822f5b2ae92e12b4f642dd5cbcbf88fb85f1bf02dfd7e07f21bcafc4f535b85f0bef6bf17d05fe57e1f82a5efaca74181af89eb6f709da71598d692bc6562e97329b0ba185733fb69f53061288c04b57d802b8b816aa05b2b981a5a05808d04178d4462f9973144723d7198536c1fd8fbc2cbccaba5f7ba4b41e3e55ae7ccb48c2f4a8562b63f70324a62ce2d5ae71ad5f456a671f1359b7847230de7b7296673888f5b46a5ae52e40caa48e1b4b078c05ade044ff5a9eb3db5d80a4a99057210051102687c500da762d43b9b856d7097e20b7a9542f9c0a5465ca22c1297355bef2f4ebacf0469321897627c50406045eddef4aa6fe27b6d089df93e6861bc1b6663edddde02a629ec5c55ece4b353b12abfa46906b5b558f272e6be7016ff285cc941d2b6c714bf90fad4b18eee3f787a5607815243682431d4a5008c338b7ac124ba5aa35262514bb9446bf3bf42ab2ea27374d61d9bb61d93445af22a71f904d8111775ea042fe6b5d7ca95e190af9e9bcac234130c0acd86e2463d9efe8ea339ece41765598c218e0790019ecb0c07fb85c026d81f73cf9bd24dcd3e0bb758c67feb40d468f755666e0885183776a0341114fe0885bd9a6d0ca23c6dde011619f72f454dcfee99a72777837dabc565ceab8aaff46f2e596c0cf5e6581d1e4ec49a419ef24392956397f95cb1ec75b79a8b4ca36aefc33f3b7ce5d75694f3687acf38f2be500041c114cb5cd3ce9ac32ba8131c81c536780533b478c9c08c44f83932245ddf3650e7618b725063be232d4920c359928ac427f977255b34a4656d589eebe7ab4fc4d92b38fb0753dd7889bfb488c9f32bb9ccac996bf8c135f8ca8881352368c9a315e4b12ffff2ec63b540796d8548ac331b0d913e80484ea1be365c590d564883130de7b4e08768c15d6c1e2119b4e818e36a7b9f61300987c825e440b0d25c7df96eb2732dd2d2555396ed8f8c3c6d3d6c3ecb31265c083e962612e12173e52305e0c4c6e10b68c118f65b2987a8e041cd4864baf484715a6fc2b2990820a8fb7e58f20bebe933bebe10e8f63811bb04d976c2db69edc1eda41d7203418cf409cded15872bfdc075f5480869935eb502085bb849dbafd8a0b5595c7c0bb421229f102d9501766be6d9428f4c3a41240a0d683aadfee4bb29ccc1040ff802360d87b46ec8c4c22a9d778e680d3513021b714376a26371405bcf411c4c510de733c1a7eddbf49a78259d4abb412ebfe402607e67b025bda28ddd131b6a44a9eb4f35c21be74e2f677a023199612a5eb3bcfa8652456dc741fbbe50263b8a8f41dfe8ca71668f43b88e44ad5fba75554d1f40f2cf477ebfd83f625bdde7ac543f63ea0376543c4fcd7ca61513cb197142253ac2c334205820bdd911a3b8b22c7fcb2586b4fcb81fa903f4cf714391c2ded93b94a25b95e0bb7055eaef90dea8f49a65b2eb747861d6a91b22cb8c36d1aeac52556a7e15137456bbd5173c9416baf8153d4a3250c3d7976b0d6dcd93d3a36dd446f2c5546d35273442b45d363908d0b7b9b209578627f1b1bc9ab69fc1eaa39ed85a945d8ed4c70647094a0b1b0097af455f690d5152583369ebc0c3eb13396632b93e4939327823f82165cb2d5f9a947cf58655b4bbeb93387a82daf853fcbec04c9595d9d56248dea38e92c160703cd4fba1f25d4c258687a43f585a26e7bbc474f3622d7a72bba95274a9387018033932450052e6d7fff1e8593e0a3c1fec09d0312d5b5ef3d4a8cd209934687aeab14a103e4e18f6c5be6e3d6e2695803d0468f2adb969361606194ead1cd11dc90047a42aebbdb3d13b3692599aaabf43a94c5720b5b8d1cefd150ad934b8afdca92b3dae1fbb8cea816979e657560d1f0a4f650823a08c174896b736874488fe8510f07912156c3cae4d5b484721e25444e09009bf27f073d902ea73c9716a828f459676d4388bb9b0073a17a9521f2f832abdacec4031f75c939baaf9f6a8e3fa474f1955927ce9b29bb35cbf1acf4a81a6291a3b8cd8b1cf315bb3c127c6f1a3ca8a811c0a254b45208f34f50c185f90c27ec7ce640412b17463d0af43837856f1a62dc81f52086ff84246b9f182f56349314121be1b820aa602642c7715983360e35ff041f5ced65979579d6a87c52f1af683855fb1ed5de5be282aa283bd7adc25787ee46a7ff2e1a50a447cf7d28d77d2e35b93d7e5baa18582a25f768878c4adcf0ba19cc7def9406a8b229043da1fc73e4d285027f8ec918941006966efe17e2af4c21d8503955ec512ebd43457e65a116ec1e3d9c0b00359f1c7de9bf6fe7d28bb190075b41fb9969c92120b8cf9854c18be76b2c963749cdae49412165067ac38d98b89b64a969642a599f666e5047dc9cadf9abe0d67cfe0e3d4a9c58db6ba9ad0f2ff708aeaa900273d2dc10dd3b181798727995b947556c7879e91cc670479e61ca88c0d25472f7faa44a7f7ec5b51f68343fd6415de6c1f11773f0fea36a008d4d3cce81cda0c53da8944fcab592faa4568690419fc24dc206d8d4d9e51366c86d85ffc2e788c82e81a30ae540676412fe0bbc77e0713247831681e2a3f0e94c73b5e9b5496fe38b99dd1d530959faf88b879e1b795f3e05cd907331ef76bc7793f14877304f1869ac2eda4d4c1ebcb6f1506ba0a8d12cd72ccc59ec7e8a1b874153ac78b56e03f45bd66ed0e879ec9256250e45c913af04c1297f8eccb5647ed9205e51cb095e73418809acfbaeb65c595e4125b419b42124a21190d9c0790f03a7f33db6a16cdcd624ceb56c3d3a1e21ba845ce5ed04bb16da5db391784ae3a1acf9950543892f686858ec10939ada34c98d8bcd568a2c403e9e6384f8ae14c17a5b7a77d9b65bb94e7cf6b4c5c20b2a05563d8344f81fb9ce2c62c6b34dedc6302b2d03433c8a263a60954c1ad5aa58e423d5d996954ab6dbb9377c0256b23c99484bf5ac8fde8bfb49aaf22cb37edea1794095e45e0fc2aa0b17dd51a79719bcc288c7a540cc7250cfc032fb4ad145c9372bde51aac8727f9aabb607de1d9882c6fc4f5af35b7fd16a49578037cdbb470ab6b8a7f05ec6772bdf0fbc4bc9d56d6d1c1abad55cf1641633f2ae8eaf227ca9e0eead869a6d1ab171f152e6767c4e38998a9c1bfd4b7be47ff08503a1816775c2446acf1bce925eacd0f3766983eb02f822850d3b40630afd96f7945bdb74a23bf21942836016f251a339c609b5cc9c07de0c2f63d22ee0ca99ac48350543d7759b9221804150c7a7b29da6d1654f0fbc21b094cb5c12755ca8bced4cf68cd0efd0c06d5b71d1516e13281f1a5d6aabd51ad79cc415ae0a60a05d8f8f5102077360d8999f6787202fee81f62cb576c810da9c02310d0d73f49ea166dc027b7acf7802286e782e2bdd232cfcedfbfc1635cf9a2a8c45fc94b3816facf8d3fd116ffd056aefd0d710d71dc1e12742cd931be079947a4e69e77956474f7a30d7dad12435a58ba1578b4accd752bd192f236d38ced872cb6a4ccaa0b91cc408d65f4b54bfb7dcfb58b8865f5be1822f53b7b511288c8551d48a812f994cc2404746fddbe449baf599d9bb0071561e3ffbb5ad6baae89e8e0a3c32f48ecb2d1f6e9428bc0bd0975103325bfa3dd8bed983e6e63a6c6eec614b3784a6030b373a82352dcb840a71a112a53efad1cbfa3148bc4b14038ffc5b0df4a5a9403589e0f0097340a1bee2a3042ac905ec01e9db6c9fcd0a3864acb9c805887267527fe7a082596e46c0e5672ef435834268315018f47b61f04cb337d71d1c96016d66cf96b4f72c9ec3d1c04f7135b748d083d6790e7963edf8c2f2e382e3395788d1424a15ba1a747900f69a5e849463ee8a4d7e5fb54af00ce0cb714d1de3e818cf063bb6c78b1151cd2075cf4ea939fcc6dce031b77d77689c28fc315ac328e34ea066850e7f1ab9bf0c923367290b34f7ee28773c55ae0f715e5cff5b8af0baa3c2133ee6ee304506789c68301b6881cc1771578eea83f00898c55e2affe82616f8840957504a321f2163e0f5288031e49b0fee54b75afef9ada07ecf8f10382b2260dd5eb9600be47066dac2f1aef36040347c2309badb9e196189e8b65998f847d01c05a2616fe1cf3a43d0581992bfc979ad9c994e1d87dff8af126f792529d30c1a83d70e342dd117778407040f6e571676c37f7b13faf2cb3f90c01c96d4c3efae9f0fe301d3a32fa93481c1203da942bb6f0283417a729572df040607f4c96afa5e130e42b879562657f4bcff08d4ac4cbeec78ff2288fa7bf009533f7af6bda5c61688a3166e2fc4ec202d74aaa0b9b2ac350844a70278422e60abd1fef46e34bc580895925d8133d6b74ee9d2cbecb530a23202b8876d10c992fceedbf4218ea907efb9bb74538300cfce1da121e4b3ba9e7a9a2b994d6dd0e7ea23ac1a7efa28afefe5236b8da412e59d324d324e997b0a8cd6b48c47360bec7a462d932e8ec6c2c07a645cf62e179877ff4461a9b6ac8560d0b7eef32ea3809247fd926460a598eec53f871735e771d1259849f0b220e23d1be22f1323cf746986fea377608ec3e5ea1a3267f788c3783a9db107ec20b9f7c518d1d4452b9e1c1c86b6da3b00d11efa359c8dbf50c235ee169e5138daa12739295150437acee048c95b57f9a9245588421824439faab278bad445b10e93ed4ea6e87fff05da77ca9321b84dd8e441c2aed86fcea4857eb79b0ff14669d1d703bf20a4041ab6967e0c7b9e0d28a6a785317fad8af6e29f964399f3542f353d370df654a6f0a959e9735a87286e565164a682a40e7f1a78c7065e763f90739437f57a02e141513e27465b7ad6d7e9e1d26d1e01e41c56ec54def07e3b7be869093bbeb938484692635405bd192cac4896762804fc4eb548ed1d054516f4d2a379bec5b3dc5568eb88350bc29e52e4f2062d875a89b51d3f2522b2e880320bb3f65f82453f19187b6af04ef413827f3797664e085a209687d7bad68ab7ffeb78e4dbaaa3a5c15c3779452ca81609d027cf826d9e6bb21dec3d3916c178780df1c88613d686a6e08297c0df0000e635500c83261c35dd3ec4d01e636a2070f54b0b14e19bf4c8796dde9f6eb7399558cea8e1621f26c9cb92c283cd3ef41ce4f57a7c95001367d418a72a5a2d0430f5bf6aef7105f7bd8bdfc77b2872d587d3aca0508a1d37865fca4e1c50c006fe890d59ce0da72d555e07322724c7e821184ae584597ba98be1b2ce288449d579b1fdee5fe308a4c3a004ee0020d5354a426690b03a0d53da07c8a030513587dffe3c070674f61b1b42feda3c14c68d2530ba05d88d98a000a0158f66d3abc1aa3827a80fab586338edcf791aded69b5f8a2d043491198da0df20907d66bdf53a664dd2b9dffe14e9f8e44f52e5c60f8b51f83b454fd5d31f6680dd1eb1c955cd47e0c9cff7ef916ef32d80341b23d954f71343ae6ef33ee5aa1bf28bff19f0d995cc84a261c237c9d4f01112ee891920d165b4648b1a284ed6e3f7b8b39ff87e858bd5b02f1583caf30bbccfb762e1760203b67f6b9d6128e93d5516f18e017953163b8a11813dcf473417d6de454e51d06c2e3e6b52bd50d185400a29afdd85c8585bf73d0ac79f00a6445b8a682d01c665daab0a3178079343fb40bdb67ba5cbb0ab6612b0ead14efa46907e13d830197088c0cdcec3041b45cb6b9ad86804012d49198ef7a7bde9ddb0ef900ab43486b128ba09b303b7afcca7c2882b7c09075fb2cbd1d38a696ee0dcaf798ed0a63ab38afb03cdbd8afbcad8e295c1938b1719aadeca0338ce1d528d5fd5bcd83618b7bbe7a5d4c361e5da29805a2f96b4daa7c794d25cac9ad0c8db8e538982e0bdf80c2144d8f4841a39c1aeea09e076a19c99787be50c7607872df5d74e0a358453812e780fdf7994791aa2898263cb7c647f7d7c8cce50be231d252efea5ed4ec1d3c0410c2537c76d4fab9d2ad7c3f7e501fb5096bbfa3696601be2e58124ab2bf21a6441959b42aecb06214c94511c02f8dad7ac421416838ab89516c236f9287b3f1caecdd468a88fc9fd1991d30d797beb40dc516122b62d66d975c28134841451c4a8a4273ebb9ae45fd450f510e34ce3d4e5ed46101acd9124e69c531c41f6d0492e8dc8ff2d113d927b2dc855cc95d1993271c1be560aa0a72bccbe2d695f92370106d224a6f509d88212f728658f99320bfacf54fff0fec33f89dd0dc8b11302ff50a32454ee7c781915fb1448a88982be04fedae03dee1fa80eb1ba1b51b4d94d82155a2cf9e3acc081d096de93f9f60681083213dfad7b5f5e6c561fc14b0960ed0d409f3a61a23d50a58bdf579b700a237e32ff83b72fd84d82a7aa8aeeef70ce37dc81a1ca0d0cf190a4529b1626c8bd9361ff56a3542af58b1d6b4c71a188818066a65f98bc67132a3b8a47a653dee89a3c689f28269672f4882e0750fce4a5ec84f648a342ebf6a553b81149d5013234123be08a628c1ad20c460d5aa274c5000e351279741754824260217dbc39b734c5223f788f828e0afcc0ceed7f42d834b21ed20d8e64b464bf944e16be4a2f280a640e74ba8d0b8db4404adef66caf509305ca63075388db59e3fe4621967cc3e30e3b4d0f0739a606f4df25d77890301cb16959d5992da783f37e0cd021e4128ab157643960e26431498492c08a0f624fc18c9ff05fc222ca1023bbff6916485f30c9bce5ce898bd30bbd8f4de9f4a22a746fa4484f15c0098d8883a693594d1e6a6907925d60150bf3b9fb2d092c212d0b6a641439c5320e8a18facfe5b26254d0bba436bef0a4d69ddfdd345db71df15222f4d8781289abd7da94e6d7a9a49d6241884643686ee19397587bd54c1be518c5292c9a25bab8cb1064ec4367b496b280c4ec81559cca3ad6274b2cd4741ab47bcb522d9d5cb62535c99700ecb63998432e3c2526bd73084abeb52a9564460e1d021568a7ddd624db8f6cd58144ec5d00733b1329256d44deb29244b60686617a220b01081726af1dc91829f15b8a88789625498d58df7fefcda81fd335532c9b966aa773614028eeff978e1f659e4647df9a5932151ceb333b3b6681aa2281f2bd9c73d5ca9133a4aad0bf4f0b574c0d5d9b15df32d6c6c9eee0fefb9d85dd5284156ebda7a2eb28ce4f32c0c9974bd5e6af636e5f1731a857026086a6326b686528b41da8e8be3c5f117912074fe0a0caf5ce5343d2f69a98ac0aea42003152296507f4e483bbeb7f31295a47c6b31ce64682b1bcae9a19ed1faae2372ee5725a1c1f9aa51de790999de2200baed28c653c535077dd8103945455bd7cef3ed334b97dcb2124aa75d457235bbc04124fc360d6c45b9c72750c859ab8f64f88ed7d3d2231c1c7c5817f5ba6947a1717187e29625cb0468575ec071b1e17353c253c9de9091774d2bc1377d38c14db5114af5f0a01140c733867574b6c03c5070c88114b47c54c9c17c0ff5c6d4deff21ffc591d504cd6b9c69050177b8d7b2e773c38ff5687423ae9d66548f82ce0fc22a45044846761fcc6ac83f9cdf40ca9cd70ea10f1510cde4020bc0d80b7a5f3975d91017939b6874574535765c06f91366e1595230bea78732107d91c7427c9332c0e251499a473ba9c8b56b6364ee905d5473e4a9326146188c75356872bf51cda59d1fb54d0abc02eb6e3d1b3288fa4c36133ae241d5c0b1a29a56c3015f96d22f964c1c19eba9e127545778a988eec0ecc8ce3a0232729dccd306d3163b976ab1391235c03a582b68cdddd42aca483c08b8c4916cd034f1140806cf9ee2d2c1c77cbbcbee48720357b389d6b68d425ecbfcd05ab4f0816d53ab601731397abe4ab46e38a4867d71053bd1094e189da5ba873c1c738ded2fbd6e5027f4d772e43f762af47aef5c544013d13185cb489fa6402b2f7ad6c306cc7b2be383b8218b7e5f6490cb4cc80753e0815beaa1130612461b14032f956e22f80ef208de89c0427d7c486f4ebc10afda0a0fdbf683ec2aa9826b6fd4149768ab47a1f0cb414ac6bf7a1ac830b15fe0900fc3de360c158fcc8f69767f3b570327f8740977f2ec2cad7a9854a7262382718d85db9349072a9bc60c6bf988a95bd00d29dfa6afe8d5a57724a85176f9ff84f0c2f3467e4736f00446c2e26c0b87494b89e51016534f269cd7c5e7dfc569411208f71bd54fd10690d80125026a18ac5678e9aef7e6f605eaea506c1a64fcb1f9b7325d885544cc790155611d8a73685b26be5cfd201d633d375c59179e3e227b56798eb1ed8db1871ef09d64b62b7ea5c86cc4b4c346dbef93017e6e52ff2ccc422b88c4a6cef28472ddb4834cd04c6062955f861af42d7cf17545e89facc02589e8af8a557faa0d9888ab69ae20c58f38cf4a5cf23a7d8da05a82a0f6d4bfc457922fdbdd48bb8ed4f2c900b1fab59c5c6d92dc7a672e1436330a95eb9d22bc1fc27aa65dd4dcd4491b62f0caad2e312005f27cb42808063e6354357fa7e52942e62eb003ca0975343e18426a89b0c580ca84a719cf3532f5516e0e9a5da2028bb53d844844c6b07589f5be882152b0689b41f59ac7e7b93df2486a4849cbc82c3b9af27c830bd2d01cc17ca7344df4e3f24abbdefe48f4fe4eb078b24d881d69a40a37e171a50029935c047a4a9e6a512e39a4f5464e898d97979857edaa6994aa19d52fcc91a14bb1a4dfe4683a3897936841358c34478e497187891b4b8d2b6ace292fd9ad0c6dc074369737ca5015c55883a0fc7e9eb2eb6c528b7fe8f94de1073636d1edd9377e2c58df5b912341b5cd9ff5dde19403bceb6e661f1864d5d1831dea85d3c3abfc85b80789273d4aff5a1269344aed1d107730febccbd1beb8f1e007466c8d82ac477e968ce609286248d1ed60b69998f74db2511b5a289030944a3e9b957ac70de85e1699c93859508ddc9d9271881313ee4f7733b021c0b45937f060d1d7470e60ff4574c1d0e8e54db93b28a610960309c4896ac3d1276f29effd1abdac90d1da11846c5ef5d8e6b9484dd76ece0fb27a48976de9b5a93d9590f2f94a443afa79de4bc24f5227b392c8b44297d7cf86c5f0cbbf26705255d8ae431e59dc958b2713b4a46c395ddb62eac3db67bf6da1cd4f7f562f74b10b14af59e72af0950f524f2fe3d04f86241e5040426138e196299a8bff05eeeca61cf27276f3526e82a8c33e3a72a1091f0f695ca56272dc6b1cfb90fe9da11553790e63ad2cf531a4665ad582f5b7170790afec3d231a0e55800fe8fa99bcf1968b4bc13ff127164de17922cba0b1332f72de269c126316ffd1e1109ba9044eda45dd780a11eb1bb39e7d61506682c7a4e26ab1dcb203f66e45903a9d131ff70850e8957c18d0539eb5acb01966cea723cf242bfda5fae1ff86837c5d1c602a60cb24ab9621e471badc41dc7e3e34ad2c161abfcfdf081242b662fbc450caf36ea0b552a36d5b57f4dee9ee3d7f49e4a5609ab822bde396b1c5435cbcd7ae7090545b13032b915fea4aa7e0007d786917d7daa3e1e21203ba7a4feb9867c796500eaa9a24632d0072e7ef65efffd089c468514654f5d4f4db6f30be40c1b5729fc856afffc4b07042e698f51902fd5fd76f2b2f02e99e63a16951a2bcab35832e777632ebddcdab2228763c0fe3de45ceeaf930a74e7da2fa25930adcfe855079a3ba9f0be4367f2c5ca5505e8146993b222632b1e80d93a61b759c40b8c222f24159a1e5997c52561a10225e65765dd1693383185c229596305e76e30e28a8bf421ab2a2495223fec22d696ac4e37bf06a50a0583a3e3b2b45fe8d4669437deb8707e3bc5f5ef197565fe5f1cf4425083ac0912ac825ed8505a76c94fae49753a7bffdd77ae39fc6ca5416a3e28dda02411407252addab5e4e797ce08b099bc90d2596e283c0178782b07428ef1dded675d17142e7dd5e30e73895de524536eee533aa926e72ffc27cf5bb8750099435c33bcb34ba62425d52ad331228701183801d001cbf37bad4d4c4e1f568addb615c4883b81f74aa9348bebebae44c38ee7f6eefbc3f4696ab1c925585ea7e74a22bff14e6d15457e0a362c66e63e7d3e8f6581b2a1ac902809f02727793e693247da0093f45f7dbd39638bd3998975600849451177fe3673a781e1ca3c6d1c2dedd3754d2465cf02e10f6f6e0be269647331eff8d055f4330b791dfd8658ff023d20889a65a2104d8807af21ee255d0f75ff2a10833abcbff3a2629859821a0407247823d100f4718760b9ae74b469567c29f1b2124a58c24c416721e08f91bdef8f779b61a51f27ca5dc2e522b5fdc756458d329de803c4ace07200d5342cc346ab00c2a0e9aec586d5f8bb813c189a2155e67c23a90709cfe67b0d891473e4c70d72d22b13a3263fda133e641ef8e41ee21007faa8b1c52c915ed16b9bc40a2bc9248710cf35514951eef361fabfac5e20cb934831db9258046e2197bad02119c3e6c1a121bb57afd6876033df88c676898e2724d964344fe0d6003ba39bd84f913d01466e3cf5533f4d3c03c21b4e05cd9cb9ae0359e8dc3f9287036be28afbe56c7be8564010627ddf949e022cd3cf76f15cd0834ec39a06fe68e68500736d1329b6286e82501bc62d69985584c6294b4d266d0ac41849a9b16045881cf448c4da6d3bea297d81c0afd42d968979e0fb5024913919cc015b27668bca3bd65303c7a2ebddf2d5aea88531e5d541429662660f99490aa04ae2d857967c4931a15015c4e2f2758cea6446d1ff9e28a1035f20c3832cd585506d89211f4367c7874c172a3ac75e4e87dad4ed5c7546768df7af82fe086196019172720defcd026d7e6b113d8e7729d9b3f75c521167ee129c59098cc9b23302e48a7f2a50484de9ccb89222a6f7c81794c060b79a2963ba3a639ceb2bc1b17f76394c3271c5b3d21a0822b7401b9000380f0ee2f813aa5b5ba4fbe5d0c8013df1331da1c5e1ac9fa434f13332b6956029fcf86071fa83ccd2fcbc0840018bda09aebce1d231c9d90817cf4b4b66ae2bf35bcee58195c1a85747c138937080b06ac82a0e3cef1e62da0894f36117928062fc989406a0ac9c4cff41140cd73497a125e8a3cc808483ea679d3d2f39630bb92e768650641b4c4c48b32df011c28b06a22c2e00b79b4f390d13683e2cd6838a487e854747aa12a4c275be5a9e932f95db94bda2efe36a32624d73081cb7778fb2774e3ea932868de12f1667bac3ece38826c1a44c7881951ec22d40e828d1297707eec4ae03be32791675045bcaff8d222624ce8e7b75de6c2774943cd62207e62ad082c1b52b3b66c5faa45b63a2f2bb89e5ad703a9b15528df9d27bf827098f309ccb962887f7a6749177bca8d7029f44574a5fe13cf01b5566170060d35842517d73baf860bf1e48e0a9939e3546aced9e40be1b85d3468aab48d73a2647f654e1aa9119e2c12f8d5cd1343308b1f2a8ea658c1704dc1e39f496ac1a8a883b2baace6d1321a395b1704699dfd337030c3a27bbcdf86663a9a9162121d5fe777e98846975d2bc2fe0111b6d909ae9af44440581ca4618bd9bfd5509a86cdf3e73de804a685c24d1fb5454eacc57867db3f721a440a33cd5026fbc63900cf320ffc9effa32321d32e37bf6a2e0a04926d460e921018f77969994db01038b4dc022305a899cb823286cba9ce9f97fe4b37d406bcefbf6254f6a9f7aee2dfd0bb0f21861d52726578b86f23241fa1c3e944a8545aaf4fedd08abc45e95fad966511a90e37bbbebbbdecf1b3b77de257544b90e333a2974ac1d0342792e14d331f6eec8491d59f3c794705209e14a90973f0a22dd3e430301985d6d974bed283723ce4d1ef0f37dd4d02417e6d5fd420145c74e91ee935618e5cb8b86c7d10642d44f26813208499b02fdc891d0c7b4bca1bdc1020a03e03d64c8e2fbe231f1f85b3d84abfb6084827243a2c8a66f006db332325cda04d98c85a3671f95c1f4508eb959704b7d79a10b31933e97711ba5e941d35f2d0d621225fa7ac3c4dafda0fbdb0bf5721ff2c909d4107ba7ca19cc8244554f8b0cc7ca4f7d264d5a4225203940ea5df2ffd4bf38fd2f434d5bf284f6a788d0c31a1c3c50f1163e92abfca25b4e30ad450eeac851baefc139df64bf1a6d7d307ae7f05cbfc27f6052e203ef1657da0eb6df6653438e5703f3c46d652f26ab02fe72f9522dbdf27d483b309a510104da1228606f67ff4573b236c4cc1cac68b8a3fbb8540cc03342e081c158d700b143e17fb22ca10363c4c2a09484c0e0dbc522083e549edfe08da5d04468f463c2c2a4d8bcac7cfe671849daa98852931445c67b203dc8eddfc01d8b9810e546664e7fcf22a9cde1647c5796d7d24160dfc314b9a450c49259050f0fd36c10f972c79037d0d846469215db12a178cd49de0881a28a3290b9f59640885998a50e31f0ba04064aee28682ca87c4d84fd11d6588157ae93d20e695386cf120b0cf916d241042d96f0b2e75e0ff6dc379a0f51967e93b911386d2dd380a60079056dd6e913c5972e21678fc66465575c6399f644904a75afb194de1ecda7b4bf8d6ec6993dd16d9d718f6d59fcbb782ba18895a428ff09b889dfdc7e61d4bb9a4dc2a1033d687830997c472725a6396b1e4d17be7ca0dd6f084b1b7682d5d9d67b910d8f16ec81f90a44b9bb2896d37024e5ab3ac8af3c785af48340384c9c80cbfdfebea18c93bdd320e9101a639c47e66cf97e1cd644abeed885e08de1506c5031053af08a02d9b8f911eff5df5acc16ef45ff1061e0f5dc860b6be030c61167067bef05a1a80f8704c635fa4b2f0fd01cafb7084e0c3da50ec2017fdaa4a7328940f29bb4cec2c86e668a3566485574b53e92db0a443cca924c11e0a377bf9e6ffe5e737522d814587f81fd1eaa2d03b0f4a0edda342b4ec49a68646622af34c200fc903c9f81e6feaf6d5e75aa5a205bc0d5a7761312fc94611c0fc959f41201d4fdd0a9bc75c25a813b0e75c9e7037b3b55a3c567b1c1cfed684e5bdaf911b466f37ee9b6fbeafbab6b580bb460987b24103d9884fa9c25bba843a60671d2e80409a5aac0ecfa0603d46a75047f1c8dfcf006c7c6db1d3461b32371a9ef2af470a910f89b45ac3a69292c84422ae63a9b889daae9460d9d77a8e7f29438457bab88908bc0212db23e2aa8075234014a59a30b2ca81ad2aaba0762ac0a3277016fb4078d430b2086a5fa64a98ba9a576e003b76fc280f38ea8e4e31f28ce0a3db75c6c935b088a38c808200789cc012c2c4882ddad74dd19d7b9914422da39931a6b46b945e68c02c4428ee68e3e4cc8f506b8071215dcf61b05bbef533eb1d4b0552673c42e46226f61b4fc45d629e0ffc62608355a719092550728ddc9b69175a08974e8c43736d6916d112684c6d4a5e22a1d1449f6e7d89ef19a1ab6fbf4dc48d249ca443ccfe76709d87f038af685eebcd98c20df83e299509f02b46f0b9fa41123507917e83045e14c4ef0634515e92fce85cd0db2d0fad5c772777b4f7f9447a1576619184f871ca72b8b865d5ddce075a90bde01fae5d025f8c4cea9389f0db00af0c6f39779a6143100d97eaa8f76c48859c962307dcb2d70bdfeff937bfd12bd2c44457670dd66af8b3e1a204a98670c2f280fbe014dc9101dd0e701bbcbb6a0fd44b0a3a52ad572c494ed42e079ca990a219ca6ff7e8e92732677391cfb4b860e524b0793581e6bf46d01d9a88998d8fb852b94a4f7163e375d5c151975115b2ae055d16151606b775871ca3468218e3ba66bd8ab31657e9ec1a0367b5ed098de8ae44945ff12482557cdd6c743e509bc9735574ea58a723e49d64da8c515857b9c8aa0c2c3d0bcaf25d27ca5191104498ced4f04f0e333be86f2da946959b302aa68242ab193c242e466c46ce8d856f61d107e6b11ab40632f1b4a108a62fc90488da4e277702590033c237bce657a0465c7d3db8f065491f1cda78034da4e6795677e9102b1094063a5563e3b3417e04cec57ef3bbbff42f1e8039e6acfe6efea7a58133341d15ccf3752415601a9ee3ea9fcccad5fba01abe64af93058301a9807f603ec07c2eba179be6cafe0a3efd3f4acf356e064753e875caae20c255bf70ed652bc661b68ffbf1adf659764952c93375a4922006cdba87b15127a2568a311115b939c46b0dc590332e3a2ab8e4daaa4d03538745b54777a48c572f9ccbe23d3c39d0402a6ce5ccb5bc54f784a073e2204aaee8c1fa247657bdcb5e6d0c0c6c003fa45756ea53bb56842e18d402a444d4864ae0f2ec300220bed4e98d9980d9478178397d698a0d99575c88fb7d09a75ff18f819cf1d7e116f7a9b921ce17d2fbd71291b8a1496f0e9cd60a841f47e00928fd17e74a311baa3ff563293a1046df6d9f2c471eaa9fc1bb399668f9e84bf41e9f9b36c617f7fda29a6cb679e86311967a38d76be34b080e5af0253b4929ec5aaa533acc6e2949afa5f1b0035cd8ffea39c1f41391d69c7086378e34dd27b772700c9cf08d0915d5c7150566771cb05fe32e2bf2f25ea48d6a36d746bc257d63022ce56fbe391d9ff631373d3bc2d285152c2d06cc75443c844caee4dd7f0465296adceed64c3ba8d718ed70614f0700f2d423c1c62585febbf5301800ddda329af153823786bca6a352a0875ea90517339d50822888c628114eea8d38921727234c298b647fc4cd0fa6446a13c752dd51d655491f87f46148a488454f55808bf011994c50cacbf0ce7cd5c7112f0f924c3b950aeee20b35a500394edb1ea87e5a098c703550024f5164ec4484674309eb89599338568bec99a0c099ddf35d30d3a09ac898eecb59d570161e20e9752d464152443148b8881304e7202b8e6f1ae9e806faf95ada18d8c2784ba5a960b9438517f8eadffc5db89bfaeae90f887c37eda9b235a043bb0f401d01509ea41e142af61a039d018e59bf251783462c67bea4a31b600ce7d42baa850c28d9c7c03fa65dfb65a300cda4a071632ceb4840f5f2dee72f743a96c3025a7c12153007b1dd513fc737963c035eb0d4fcac0cc12ee66eb1a3e7478adc76db5d8531e1c8fb4b328a850d7dc574777018d6e1fe39b4063d0df84ecbdf7965b4a29659201400b230b5d0be2963d5a625c686b2ca81963324c1ae39a47501a02081fbc08f1450938362c35229d0de6181b9d1a4fd8e8d9a1ce9baa17960f902c20370cb125ea7673330608d7182715d4b80a020395125b36aada68414288313834e062c3e602b115ab3c1ae37c534222861d6766e0f165736cacbcc4acd898f8f4ac595d712d417fac80c87e84d48e1e3f56407c985947683b6dd0307da1e189539ded4620fdf0848724556cba3c81d9fe5f8b666d8d172e38bee8292366fbcfd09324c9328488283ba474b961cf3528648e48a9c7cd86253eb0c0c3c65862c27862ae0a6047630c72997bfd08a244654d1a33418aa8e1c42555434b6842cf9a182a39888e9823a2e771590c11b09b4baf7beffd1437d7c42855a0672d8c19ce872037703e9463aacc12323d5ea0a2864e50ad8d923b8570922509186cc8d083903461cc5420ea590b3365850b736b6184708e0bf383e656fce8590b53c3920d1343768c6710a331874558ac0acf99334da6ec00e405263892c0d4aeb064363f4a70522f84f9eb98cb39c9189db98b89787fbd373dbc7b5fa05187cb0fad2b1c7646539b03c40bd4b35675a6a33687aa30f502526ee2308982656507223427e5860c9aab556179cd0182089e97aaca872a43f25009a1e18cd48d2ede4bcf5a1596193c3da56c3c757a4ac180c469d5d90b9a296df5f482262a055c11129493cd096a4e0e6c92ec69e6036a6a371aa0b43451b2647365a45af0a202a6679722b0c4cc81fa5323e9191ab967e09bf6ce172feccf17c7156670bae247d2338491490ed4b7be4723518fc037698b4c8b6a3895f46ffc0e82915798c169fb481aa9844940033d6b554c558ac6113b6cfc08c09d17983b1adbb2d8f8e9debc32d0b306a64a63dbfd72ce16ddc596b3d9da2e5feee27befb53648b91146df7b654f652bb2d35b06feee4eda4929a54e66f0627842d7f2025dffcea20cf4fcafba7b1326334cd135839a81a66e85e8b47fce7356279dccf9eaf9598c4db7f3457d4b638b0c55b4b57afeecf48ae79c3ef9ac422daa0b41e060d3d3ddbad7d27237dfee5eb2cb1c482dbd5fc6f09722f74e52c7972c6345790ab991cdf6edb57656ead3ba2647e65e6be79c73d239e997734e9fd6291dd15a6bbf8c59d2136b3855d252199da2b6d6d20a5eb28ed31f7badb5524a29a594ba256bfd5b2b6869ad158fe50a955c41dfaf967278ac9f6580da5231227d5bc74ab9a7291a1d457292078b1e2b3578f4b8b139329aab7283a6b92d555cf6dcf0a1523da76ca9a27a5a17ad26b23f7a4ae118c2a5a7149d22a6d4122c0e033d6b6096e8aca7540eaa8ac3679faac0204f930c8925a763740dcf1b221fdf8cc53c0670f8bef4ace1d1d256cf2952503e6646d0bc60a9c2846a8bd5942e361bd373ca4e151dea2955430b9822b302f72d9820fa65ffbbb684abe7bb0d1770df7e0d4ba8a29d2fa6ae4e6f30ddc4e0c04a419932513627264866d2a4ab808ac90f4e890d948a4a930ef5a482a2d143941cb2874f80a8b30a8a4688f5ace1c16ab295087ba62263c1bef762d9fff798ea0a8c5a99f62bc7c94e932b5b1a2275f60da3f5a2320284f1bd35aa257d81f6bdf7e27b42cf1a550b78c8c55e158aa7d7bdf96295c38f372fb85095a58ccfe5a893d1ba81a30825254864ed0c46e79c458bce3e3b670e8b554faa2871340a3da9b220b93d887972417aaacd0616308a49870a0e4010a1c58717a636fe22054b1555162428a45c71a339ab034b5ba067cd0b5651d19c784cca1b636b82b8f1bd962482e7e37156214b6b9a398b8aa69d2c9448da2808ffd4f7f358a37b6e4cca9bfb39963313286de7efc61b2e362702abef0795e04cfa92952c6741987c00f7539b20eef98256a7e9cc8d4e13fd6715e952eb34c4a6cb0c66486d96e294c244d3652ead972a4f5ac6372902888614d131d9b3585113cb58ec57c858043d20ffd49f47d6b8e162e74fcafbebf2477a9fc76e82e0033dc305cc23b4258904d53f9ab55d82fc25e85a585be97ffd204b3ea0fb4a46606e4c6fd33757481112c4078d224a11b2a5e9c362294ca0b4dd39999477f7f4b3b5d612e9c8fc24d45c9240df2feb73a4e58008aab66f42cf70011a684b1229410b6b2bad7bf614a07e69adb52ab89e24d0d2bab57605aa89e49fe10907d899a4b6afcbd40987af9d3fe79cf3e79cf455dc2feb8b7a4e9b399292945292f47156ca6df9e810ddeb355f58ea72cd17b586e17c412d08ce17fe69fa625e97e7cd179d77dd7c9169cef30557396ebec016e3f9e2de7be70b6bed7c51ab9e2f2885225a5dfa503a5f388522ba2eddc539347fce39e7ab703d2da64feefb1c9ab6c59c3218cc84d75a3fcea913d1ff7ead93bc5f0663319fef647e5d55680e543a84e86f3d86a7bd03ebcff976dace73893d28b998cb9d97bd8e26d1ab0a65956c16e672c7754f34e9aa4259a58ca7953fd1a4ab0a753177b9279a7475b1c54f34e9d66955fa137d5a4e2bdac45fb9e6d975a50834256dd61c9a4fc95b9b43f3913acf45d8b4fd923211dd490e540a259639d72f34aa4bf5a916a94d35485daa3e6a53dda13255a52b335b5ab7db9b2cac2b33b73759565548a060add6da7b2fc698e3b2cdb952cfe0bd18638ee372ce5d478239441f831c9773eebacef3bcef032d0856ea6006bbcef3bceffb40100cc32d9775b92a7557767996077e1f08826118ba5caed70bbc32136e69fa2e2d4ddf7573bd5e592f2c4d5fbcd2f44533e24dd3f779a3e9fb64fdd89f9f4afd27bba8d51ca24f9b6a4ea06811da447780a248e81365babda149b406a5e5d9d2babda1b43c5b590ee5369ff22877e2508ec4a3bc8ad7fcc969797cc97db892d7705a9e7b3d4993604655f12b4d9f9ad1f4a915add556a734a55f4e2b2330315cdb34097388be3ba5b4d66aadbd175b8c2b75ec94d65aadb5f75e8c39cb71953a67efc518731c9773ee3acf7a5ea5ee7139775de779def77d2018da30acd443effb40100cc3d0e572bd5ea215c54a5d0c5daed7eb258aa28f8fcfcf8f096bc244a56ee2c78409180c76e2c4091428500001c56c2c56a9c77e422313f44dbc0918ecc4893086ebf28d2695a10863b88e015920a04a1d28bbf21ca27f22bb66f81e5d8e405bb22acd21faf646a1c439dddee60b4fd3bf51b61767bcc089c14b8ddabcbc409453c8884400e176f65d14d15d8a80b30dcd55cd711c478a36864f659c6b518c2bc51634a7b9cf1cc77199fb4cc442a6fd65736a4ed9424397325d67dceed860830f2526767685c588a64ce5a1742a8ff6da1c22ce85f000ae90bd9027ef13d2a4f36e27844ae8755ec77d4035c4c9469c1bb614f122a4c70f77e79297ad9867d6a0b6b5650b8b9e23a06c6cd318dbe043638c2fc721b95c99f3cb6047872378289d89ea62830b1e3725e24c8a66be9cf3113e7605c765bca531d6b8c21e63cc45d550f5831b29475cd9988bc64b7134fe14f8662a272c742b38f231a6aa418fc618632e731cc73d550e5930c61cf6f4a4ba218c0e75f9443f3888449d7361f540ac476750e7db7dd8751d999faad00c8df03782116e58009307098eda962a534af0959babf33c6fd1d2395b2f4a55687a63285b7144586d35db2546617faba151f79d14d70ad9bfac0b54f73434ea9ef3e89620449ab96871c9a3811e7254e961071ad204995a52e2522d45851c37ca56fcff0ada02734f35868eceb2153231767f858c071d4f147a38862a2a0d6dea2cd0734b93292f505b62d8b2b425ce531c11cf2d315c7c31de12e749735c7de9b905cb081d56089e9285a5453db7c09153db82036b59824e76e9599b5242eb767a5a8133660a0e3775049ebae25c7a5af1c18ec879548a8b47a76cde94951894c58d1515931e70871b75cf97a5a95663cf2c160cdbc9ff82ac3d7f6250c10462e0e771350b115ccee017840acd1da8102755840a71efa111376b51087458a303131686304293d2f945289da56a2eeff17fde18835159d7c142b0f2830b560a895580169b94a6212e9015ce7159c014799b7b187d4a44f41ab5c8f5fe25bee9cfff738dbebd115b5521d7bb4814844923bed2fe1e197482f7df7f240ac0f74825ed3ff7dc9f832ea307d034047096f63eef7b1c558bbef707c723a7133c4e122db44d03fca39955e344db34dac4da2049a39a71e383b6bdc7b65ae4bd7f86aa42b95685f25315bacafac6a013be07ffe392b4bf37069de03df8de83d34a97188ae2a82ae4ef8d59735657b5e8850d5a9a6a59b50869fb73376eab16b9ae506951a26dff4cab45b3b6548b52e0926ad1065fec10f144dbfe9c522d428ab267cf9e3dee4ba52795736bde3c4a9718aac45056baac35ed9f827fb67e1d5fe1a4a5ec4c1c59baf08fd265f6a74b969615556baa4fb568ee015c51b26dfbf3dab4db74e94b55c906558bbc4695fce99267f9ad1679152d4e4cdbdfb76ad1dc95c9952e597a520b1ab46edb92a5d32a59ce2d4a96f3a64bcfa2512e7e676511a9a3b11cc4189d42f4694996a2a625d167015094787f6a4c041425062d400507ea7f59c9a012b493449a96959451197d4baea0326aadc645c440041c5dada654beb9c2fbf05dff5900641357b8dac3ff7db9c2d5e17fa4a532d7cf104648662a73916236f24870dafb354d6fe9a3679d5488fe04bdf17b1fcf7b79d3f33c6fc6e62c4aa15ce16ad74fda22244b77d52862f8ae31fc29ba3e85ea43ba2af9893fff22cbd8c4ddcf997f4e32e8452a60ea27c1f5398ba2ebcbd8d7d7fbbc4796b3a63d6f0cdf4318f36f6814bef73ede8b6429eafa22cbac2b59be8730bed2ce9fb146a675649933598a1c59c63059be8ca874a1ef9e355d5f34a7b92b5cbf4fa3d1c05470ceb2c35ffa589f9c289622f989359c3817452a3341f4af302aa322955130c6715c29860ba8ba3ead95487e91b6a8ef9bfe0caba82ba6d58ed575056b455ff67b078a1269a54f29adaee39bb485fddc7d0ed199a64fa3698ef429bb27b0a40af857c8da2707f41da4617d8bffc3600d1b5035fecf2b754c9248d869149ffed7dd73a6b328971cf77aea1252d0f52faeee240b2aa3ef48c472d61240820b9282a0e9d38fd9c1a2c5fab93ead2427d6985aee20a1cbacad0bdf5c51fa93a635015446e7f4c141f9b907016d119449185467fc2b90807e0a1ba02f83b6a0d1f725ea3534a51e44d3cf1c7e006d41bdc9045ac7a953d80095510c3811cb19a500dae29244baa7cf00dac29222b8a8451d299369ea02042aa3f5e9c39a88fe64996c38986922e2f7d048a4b22a14a32b501d0b8b8895deffee945d5b1e71a4756d2956c0d4955c812ec0ea195e32a804fbf52d098a806a4b6543fc9a6faef8565099a52d66adb5d65a6badb55622cfa16b4d405d223a4984fb4aa6a0b2ca91b90ad5af15466595bebb52988f9648dace219fe15a04fe538bbea10338eda4750efc39354492fcfd46a3113a600377173488a0e91c3a204893ee2f18b0d70c189d8611d3f3c31c7595333406bfeff3ee0776dff76d307f86f552b733e45c48ee340f0ca796caec745a6da51e0486a5b2d085f62f5dd4aeb3b198285e51ccf9abd6c7e7fec762381613c53006d5305d7a18c303bd02ed5f561096b23086d71002b30a553b2dcdae4ac2f034256373687e2c8c5161d807d4b061238731aea63486cf211cc6c0158958da30c694953e3384e1b030069d2e8a73288c9135fd1cd22e8c40180302425e1883d3dff77d9fd3ecca398731bae99de7a24f02ad9d9023a21b1919d9a4a41b1ae1d0e8558f8847c4d22a69ffd22ae90a55a1aeae68124df2277f2aa795f67944f49fd3b38bc22071916f5621c432c7f08f8ac0dcf82f8c2ca31486d730867d19014989afcb4efb979d9e6fc31831f2739724c291930c3ac137fe4a12c1749c7a46912cad4b1fd663003dcec1fcbaa74e00b4c7d13674c09c3fc939875e335c8b60be0a3d41f40d1d60424f32cfa1c985313a9de7908725642aa361095997483a53590d61509d3fd086255c5dce40f086200e4ba8ba3cd2d90572210caa020c4ecf8741f524b3985fa2c8896287455114bbce155eb0fb6ca55ed779d775dd644135fdab4b14684a2251a777be598beedb9ffe73d3b7639093768ff52b7914e41e1a75b3f2bbf2c82013eed347dad78edef7e459914126d8c78fc9a3a04caa1063ea9af68fe1d92ced5f1f69db47da489b84ca8d33b83d7bf4e87d1d706f335c7be0de3447962650d232ee4d73ef745b6e52afae72a629929d555a69a01ebedb4a6bd470f72414bce75de77564387c9db6819e54c2c8a9413aefd24eeceebd1cfee1b9edc82b503ec0c9e18a16235b8ec3099e8b85e49931959526cde949f584482ef244a2288a60e63ecfd2e1f1832dee4090146378aa7878a63c3c603c3c663e2e34f29ee0aec3b8c31de98ff3cbe33cdc610e63bc84c6185f7c87890acda6fc2442c56a5488bb134585384c8471d761e14265c35ece397b18638cb1e7e59c3dec1d81c28ab1ada6ada75babd56b663b353b51167b9ee7719907eeb4b4b8a818ab6355e7aaeee052a5e454c5052b2dec7ce309114e26729e16d44fe736d749aaa3d469fd10d2a9d189ca353ab64e26c6a8d888a4902109ad2152369e3c04ec48c207ad2e4ad876d8d86d686c6b5a375c1863213648f570c6852c355ea30b969395820149e7e3390f7f9e1774392e672e73f9de7b3fc58dc53a1116d3baa14bf1892c61244b0e4196f03c09e32dd411f15c55a9c201a7c71c193647c34c9a13303d6b73a2e63cf9d0bce62425b125660eec42a3fac109c1acdb97cf88588c25e1238920dc4f47b9bc3c7a9168ea9078ea7068d4e1fcc3613853c0db13e8799ee72901ebcc5976088cc2c4989ca78ae128fdf8cc716e3473d8dfe8f9f1384f9fb3d41735f80a404f2a6080c474d082d3bda993ed0d3cb67a50c2cdd41a67810e183a45b8b8cc3d1962e68d131410223a384d8a4e142895832ad35012e2cd18d89b2a27de3cc1dedc60a2f3baf4b8e1917a769181f6e64608ca794313398e737313dd44b9396265e566880f97b91462c011c3530b2da400cac67b76643733805bd624f16a6e6c7462e532c771f5bbd379c9dc1b971070ca191c150044b8ca705c1b321a3f0c6ce3a5b3d3e651cf2e3a9cda0c51850b6b6d9e3095db654b947ee9d9c5cc9618a5ee2ffedb60270d97257370d0a045458f4ca65988b1152926b6571cc26465e949911caa245942766dacd65a6bad44594f2f738cc846e48a25ce7c7da0e1870f41bca1fdc09347736c9a4c2411428f9c2b5b4ca6a46c0e0f153d506d5ed05c069be3f09d36b359e29dcbf7b2b1a26fe6ba7b6b6c86d077c244588c4d53c8711c0772a06717354fd82cd115294a18586401904dc45fb2983793a548c932a6ebeb5b65d5048dc9d2849285be973341cb6041e48405d0102d232c8ae8f9669ce849ae4035d14745a6885e81ea1907d0214021c50293863549a65a9081485597cddda1e3d273ea071f0820437ee939f5438e2b25574654e859bb52ba6a01cd1e8b664b0a4b0d1aa6a7d4172e4eb53cf7f527c7fd9cf1d298e47079bfd61744fbf38ac06aa7d6be870c40ba4e93c499ef18cd3dac9ab96282c3f7023d6b667ad03f7a72b151430a8292684ce9a18716ac7e2831002847ca24b194021f4f5b353334fc7069610911f6cb91a9a373ce99bb97eb70e46cb16ce60e630e572961050d1e1e7af8b05385b91fae7bebbdf7de2f67a6968eec8084921175c820f9d10166ed54c26389abc2c42b13b19517ad3269c7550ed7ca8071bd4ccf5a193965d4883cc4c947705564b890b992c920b9246449e9a8f3da61c3158238b050ed509374041142e89071e2a4700cf18354430aeee899014e14284fb4c810b9a18a8f9e5da0bc69c20685381db05165eb0907992e67e6b089d1c6a9c8edc98e254e924812ea925523c796247792ec8944942d4664b92df9c8c1c28d885215f00051830e2f4495e121c7aa86e3e8f2e7c8b9f7e7fd7cbdcc89a3efc362b568ceb961ca0d776e482293b52f51cd4a498e2c31cffb43a4ed097f087e956e521eb1debb8447ace4ad423e2bd26bb457d6ea8e95bdd92c2544fcf5d2b6b6444c563be26fe5cfe451471e4d29515035ec59bdb39dbcd66a47f4af5f44278316e0ba7e253128c016216a1ed39257472ced92ce2a6a5074c4d2bedb1823440e1653c6a7262db1b424161b903659682c15c1a264644d96166a57a2e20c2164851a0da6adc7963d2bd4641560ae4554cac9f681e68cd690255ef0f850e22987fd555a9dce8ac33429a2cefefe4b9a2824f60d593ad0ec6e2442e2695c6093647f75881eaeeccf5aff8125e9cc28650b90aba031e4b4da01e4060078529620e4acb8a241052403aa207efc108030578c3061b04303ab64937c106136290419e80881b316f9e480b2b483c6ecee9176b6ce0109d639629e43007019f6fca06377230854f6e74daade7469620397197a0cd1b2bb7156e1d99fddb2b424b6b26e4864ede084c6fe38265b5cf6ac1189c1b6bfceeaea66e545d9e4447d50b538e2c4d2504b4ddd5899ea5315a270e8d737b549d3af4955c98d38b1344c973549d3ff5c2f5789a4a7a0f1126477236ccafe5680e0f865908db4c1b14396a600583555a0440d3c061a964052078f281b41090eb49d1f69e3a63944bfcb58c8978c300cf7b18c9562b9018debfd3a561b8660d947f9677487a91f7bd210ec23edaf1b43236eecc82013ba2e8f538faef763dab91ad34e961bd032621affdc1d26311395d1c741da88f54b197ed330d139c860eafa3549ca0b4fbb1b3190b23f4a86ca07ab6ae50620b66c47b068bb1b431e2a151c6e6abb0b40ee0ec00406dacea30bcdfe28289ab171a15264ccce63109ded2ea0d1a1b6f3bd730b0b1ba89dc7cfcbfe3400672d02729386b6e7945da17d39b26795cb90b08938b5d03863db798c3939a24a66d8b30ba07879a658d8f1b48f66cee3c615dace7f62cf139d9d49b01b83fc69140e20b49dc72027b53f59b5e7fe6ca5b6ba680d2517a0761ec9aafd5db01b8fe6158f20597b669780b3bbcfe3d14bd933a2a30c82ecd9b48d49de00f1b1679916c4cedf75ef91473e440aa6b2f62cebb161e7efc8231f628992357bc6bd11b333397d094a9ca49dc70c82ec4f88da68141b1a45ade85516b51240d6119e4569be65846f51259ab48626312d61d1a50d2a8d6e1541b758d01bcd5243b386688d42a5a15003a04fb4e98a3609c0834ce8f21864427eef3df208f6e44d68c42687aa11213a94a6e2e7175d9fdff539bff7f9419fefdee7f5ddbfbe23834ef8befbefbb0f7dc60788a302cebcc6145c230a6640b08132e5ccd29446023258dac3f16331afacc6580dd9a2acc489a54d38f23e3fd236a13bfabe7ba4fd8d78c44bf50b5ed29469498c38b134c80138b3bb9227851193ae4fbc0198a7971d4134ed4925aae92905d50ec2da41dd1cf29f618ac0216a4f2b29334f361c4bb63dbdd0a8dc76370639d941d94158fb9bd4c71c33b7fdd55a8688246efbab5a43ac6c0b6a8c44b954524692602a584b1c9847172454b9c8a36c240223cbe3a4b34467c903f3e8539698d03e308f54c8949edaeec62028fb03bf50c90ac13c7680458ecd05e67172b952436d77230846f627e6d1a3a4d101b5bb3105d5fe44308f6e85c31da6dd8d2ecceccf07cce3dc020415a8dd8d2010d99f0913ae12495f99c177bcb03f16e0ac4547be03cd0d55fb68060427889d7fe648b4ecee8f6c116f82d84737eeee66009843b1df12631dece852b30300672d0a824175fd0ac5481da84de5c4e101b53948f24369ef3c4e2b513ba2e6944d476d6ba102c56a7f17cca3bb90e686dafef0c5b87395483a77a991e5b6bb71ee8f08cc1ff52507d3febc461b3b14cce3c4a2c5cdd5f6241668a0ed6e4c91637ff6ba4a242c409240ed6e0ce2b2bf0ec0598be694d517a6fd556daae77f1e80a21760eaec6f62549dbf0fc099459ffd75e3511db3e7b667de9ea3a967cfe695237a6348d3d1eca373abedfcb31182a0da99740af247aa3330c9c2c0c71edba3c7d63e9a7120660a6de79fc9e630d999ec46dc343e69fa758a58e2a56e3c721f6298f68cdef6a4219430ddcdec2a91e01c71b2da79fcb6ec994100349009096003164303e080a8030f3e580100b2820ac65781c1053120142760263ca8357b489852c007d7d3beae8db6f0b79a5299fb4c2a9be4b55159b6493d697721d67eb54f65d49bf524df5795f484613e9d4f9968add54755aa3054263d83e83993acc0dcde6465615d99b10293857565b3d645b5f65e8c396e5e8c39aeeb403087e6bbe066ce5df77db39b9ef77d6178e581f39b2038c3f0f502ade67cd77c5796ebf5ba7a99d1f3452b3d5ffcc42c3db1f4b4cda1f99449cf207407ca4483d0275a8436d1a52c2c4acbb3b5a5757b9385b5a575bb2a1255a5567302e548fcc98bd4f474a2e76cdaf224bba5e75b2d4ff21a3410d4e6535aabb522e8e963396d7a4ee9e9620ecd77a794d65aadb5f7525a6bb5d6de7b31be1763cc715cceb9eb72eebacef3bceffb40f0fb40100cc3d0e572bd5eeef2d7eb05ba288aa0fbf8f880fef333c732db39963fc7323651a040014e20201f7f7e401fcb373231cb98114c84813e9eb027401f51885436ddc99a3487e6bb08f37db010fc50d0f57d2c65dadd412043a61d46c75204c58aa90ba4b289b1e3eba2599f7f0a2a13eb744c5df6e64e046358fd81e1145da191f5ef4acf9f66f4fc693587442b23307afe2b8c61f5b5cd2131348af9ac505629510685fd94374bc34e844628804e000101c14cfc0001f9884040402f205708040484af06aeeec86769adf64edd282adb229659ffdcf4fc6bbb53b2155e68b482ca66bd69fa754abbbe33b8b2466d117df49c4332ea4dfbd7f1a96c4afc42a34f89cae6af50d3b4a6fdab94e84f42a5a38cafe643cf6f09ec32872fe8e044e12a917cb4bf8f2e3da0fdc1ac2795511b9d725c5230d496a9cfeaba1fe7dcfc5ca509f4b46118231bd9705299287ad9e3b0773deb799ee755cff3a87b33035779a465da3f00ba9c807652a4cda1f9d773962b6e0cc7e57be273c4b36969fa9e68d54ecf2a33b050c545083451353c81c179d8422f37251f5282f4f492554663db8f9717384b60040115a606394e96b4f11d3808f1f2727392b9da10431ce1258f103c8ab80eaa2bc6835b169a892c3d0e9091884af2b245551161c691e35ac205b7e2898d2f52eca061aa7218b004d12484ef0c0c7ad860d950a4c6c62f68e1018c0d0bad831f71d4d0da544952041e77c10a67bb3205c2b4f9ca12fde969bb52048cdf3c8d763da727555a7a2d2b755ffa92ee36508be654402d9d56ceadd895685512e9d2057d8faab1d89cf7b362576e9546c8a8bf9fb5598d697645a3cd2b24264b42035468fb29e8faba92b736df5c51e62bed76493656d069ef71d2922d3d6b4a8a5ce9595bb2a43d6bbeb06104e8f6fca64b1776892e25d522673385fcbdc34a3e78a9824a9698a98eb849bb4c979e858d10f17e86f8f547aef73eace0efd39f3ff13f3f37cce74ffc091205aef7e14e3c7eb9fe048571358ac2acb4ff090e760228f6f4f53faef7f9799f1f1f32e87e055915aa0af9bf6af74afb8b373c9636c9d2b6b47f55017f085ccfb8afc20c14824e70c1def573fb3c0a4127bcfee77f48149cf8d7cf8de24dfccf73b037f13344e1c4ffbc09131198dbe72330370a145bbad2b4ffcf18641f69a37813e3ac422ad43fe1c8e7bf07ff84a39ff73e7c1566a000bef828846fe2ef7f1ea2007bd77b88c2897f3da086eb5feffa1719443f56954e8cf4aa0af9c3b26a92f607aa4b9c3f8adae4e1e85b55a80aa9302304ae67cc88c0dcaf8fc0dc277e060a4127801f7e48a2c0e7c19ffbf528049d10fe7cf8739ff818533bec5dff797882cfc37e8628fcbceb97b49f60d2feaf26ed0f1b83e823ed174dfb7f16059f07df43147e2230770df0c30f4ff850f048cfaa42fe211974df0494dfaa90ffcf4893aa90bfcfa8a4fdc131e8920f983484923e697f91acbd46ab204a46697f246aa34dbac450594bb5087cffcc949b3e302791208982f0bdac5485c0fc5485f25215e26a5c1467e39eae38a82c2bae86b302368ce85f668c864506e0ccae72a6ef5fd23a07f3838638200ae3753905873f00c186505bcca830342682168021111111d8410778c41224fa3cf03eb0c9ac11e2ac421d08991353746d2d0038c3182b3437a79d15639203d7e2113912e317a111a66b6c1803bc2ae000b455b11c97c86289d58315e01ca13807a5678b2081c68840af8311f47c1780eda07ae014844baa8169f72945979d163ddf4330d181f5e003ea4e6ec3b4f8f100f400fc009cf3856d11426884410e97485a97471c59deffe041003deab3ba13485de4ffbe2c124004218416452e08f0e21502e84ea2ad12a7ac0568d3744569c4ea42a404f0176844ff090276b5002d11e21971fe14f9b8a0040041180b910061c4d70b57087e239811fd3d77eaa6d86591ca2e85227ec06d8c806b6180b68c3bc500ddc915e0824c0926c222b07441a4ef97447edddd674de3770e603253998f11fd398cdf3a477e2e2801ec176b457d568f00e08b51972e25076721cd9432eaf95e7a017ce617a015930bc0192085d7f75ed2fe87e7e4c09cdc28426884b1183efdec221ce71d815a319504ab301ab462447fb76226026c01ac085e0d4047c8368ce85f824ee75711405b25facf8b0d005a307404b75f44bf6fa9447f4aab148af8fa924e02f5597d04105fee00f471ecc2b05e41738fefbdf7620ceafb248446f7e2bbc10d68eeef58c6f4fd69ef5b90f13b00ffbd254ce3e74619317d5f8746f762bb2b021200522862d6f4a91148a150d81da79df573220e0630c462030108c9340840062b00408eaf624e0c2e48116441051edc4bfa477d2a06282b17f6ec0661c414374df6ecdec9e10059a85ced991503bb404a9c2635f6ec820102364504db0d36fb68e671926801401a2fd78604cbd5c29ec19a44b08383d43e9a511c74c040dbf48f66f30b931eb58e86161d3e5cf64c03228eee112c04b9b2d56d6062d8f567aea50820b67da4bd631fcd603cb6259dfc67301ebb7ee04b9eab25fa03e48e1e18f6cc9fb86e9a7e35fd4d22118876a3c4d0e5724dea1364cef0258aa2cbe7e7e727abc996dfa4f9a27e4da3fdebd57c5145a7b857eb6269ff9b66b68851d9d57c816f0eedfffa6a2644fb1f0cec6030ef0d11a59b75b32ed6cdba59b44579b1ee9b8bf53dd11648a0680baa69d0f411f389a1365ff868ff597e55b47f53da5f84d23e4bda7d944626dacb570cfaa5a49d32d9b4bf0844d37914bdb1031f8644ed0f05a53e22d0bde22b067a232da28c11dbeec651cdfe2a00bdb1e2c0c38e6d77a30aaafd59007a63073f1859da5f10d8d9ad1e6adb2391f69702044dfc5cf00aed7b23d2fe5e60fe62b4c5953265f6e907dd2ada3e7dcb46db2a455bfbd8fee88f826274e98dd1f4cb91882ebb20baa73954dedb8faea4677f8835edf73d8cf1a3abfd6b49a02de28dc2366bbef8d19504da22d6285ddedbd37c619fbef521d6afb539543f6b0ed5ffb9515fee2196f7766ff6ad0ca2fd6a471103708a188446df1395d15a6d0ca2cbf86a1f920feaeb461554bb23699a3ed2f6c620133c2d247a586defdeaa10d2ee46a46d9544ca4482e9e31f641fd3688b9232b9b5f636f5a46285a5e9df3c35b0126d31a9545509829b688ba9a98d46a3bdb04bec4353fad4459798c9daa854a9d1252ea2e9dbea9489b628e716dd81b670254d7525016d61777c356dbf1b91b63722ed197e76fca0bea70f890eb1fc9e34fdbb455b9432b8276dbfde688bab75f3f8a445f756856e1606d1feb52f88f6af0a5697f7e633ad8a4a7d7eae12498360d50394ebc6d1213a2340b941db473327ff9907b52b9715d3eaa9ef5bbf411cbe1c77ddddddddddfd397cdddfdd53183740658e012a73eb82bf02fc19405b5452042aab459994b9537fed2f522d55d1777a6593bad2658e928a72dbb16796c68d2a54745ed8b34aa5cd9e1f7bf6ccd2e88281e7e88104162d96cc172b4ed2e0d0e34a8ad49c1e43eca359b7a48a611302903d7f06e09b6f9473882e2a606906375a36a8922062065a949c499f681ecddbf5ed18735aedc55ceebc3ae6cfeb32e82a91347d724a8fd03285b6c50215373b56348d407543961cfb683694c60626b294a50a4d11a93d958c10616a3cb8eca3590a2d2b188813c7c1a34615fb4733978e19b653ed21e4881efb002fecc1b203160f5578f60c76431e257666934acd854dc9212d52a6d0eca359d09524b613fdd90572653b55e1f15b0cd72f227d122a7619316dc7f9fe1ef09be600fd334ba65ef881881f41746e3e30e1e1638e18650b9724323a8428c1128413347994ec9983e387245e47da48c1b1c3101ae80099d344f5250c1bad2e4e524d2ac2dcc05ced192e2344d5171c6e597b46a7b409037ba107551c271c989c6142a3b467f44c151daeecd9cbc806630c75d6eca3991fb19293a49001cf0f503cf6d18cfb41cfbe4bdbfecc47c7056df6d16cc5a8b75ce902a60619a4e030060d104f51fb6896eb84d9f88f66ce74c4be3ff3e1e17160d2a95ed289bead1ee3ab5511e2691fcd381f77b6fd99cf9066570caceca3d98a6d4927fab32965d7175fae45472ae6eca3996cdf3f9acd29db89526989a2b58f66dd929c7d49a7fab3978e6da91bc075a8d181da33ec454e98c4be7127d51a1b41ec199d8a1ae7ec1b5866224e0d7bf6d16cda91b3ebcfba384760987de3ee4a3a510ebe598b8e3ca84ac22369cf28191b7a828e14b1672f231b388d25583ab25a8832d99051eae2058ad29f399b9b944ddd06ab3d83696d4a3af9cf9fb91ba0e63474e4b8da994c81b533e95db651aab079da471ee5480e33ec594da23262d9b35794ad465485aab5406f53157aa221de26ba14c316a8dd8d63154a444d8fabdd8da4152e5b259238a3b4bb1184a4fd5170d6a20e829859aa16041eb49a9cea5f6095634d126dcf5e53b693cba0e3c6d3ce63501b0b439c3a493b8f2000a14a5258503b8f1838d94137b480a569e711033bfbb3d427175464cc0ea69d47155a761ddd8a8d166de7f189583165945ced3cba0f4af6477d521b57b0b2761e2f68da1fae61cd4d117892761e392b69766c2a51a46e3b8f1c14d95ff5596b37ce25da5831ed3c7e55fbe36a8e384692761e5500d99f8799b2da794cb10546298c6de711031e66953c6bb6761e53686dc7824508ab6b655910b92c5d5e2b2af565ced5ce231192fd711d9581099ba59d470ca2ec2f83962692b588cbaa45970d8e254cb40aa68c3852c39411476ad8b508eb600aa580d49a7647e2a4249464495ab07ac8da1d79b772d09d9d494cab7b526c75d9d3e5b66fd6910934fbdef68837ab56ec2a91e8ac45eee04bf401c199f378748028533fbea8dd61b29451c2dc289ca19d43f77d2cb30c98f69957c3ecdb9974721233e91105f0030e18ac761e1d093c23c49181697f9407293a41acf6ecd5031894b5bbf168266184cad39e613438b8b0bbf1c8daa85243d69ebd9e7c00a785a43dc363b638cbe8d9dd7844cfe8a003d39ebd90885ca53ec3f7e4f946bb17363634ed3c8ab0c3fe7c4cf85cff3dd29eefbdf748993cea1e699ad1feb804225dff3beaa4fc38f3b467405082b0d0f67db4ef1ae7ee887425cb07684cca20d2de2c8391e2e169bb6ed616e9554bcfed6349b5822695754b5aacd0b6c740430ad5d6ae6f34c3b507a896be648902183447caa05afafe7749dfae318ffbd0fedf8f1be1c29da6fd390762a6547bd75045b9caddd514d4febccf0b99a5fd816aa0d8f617829f17765dc6f85a5b29a521759f611886436bc60051dadde822b33f13518a5072c411b167b01fbc1e7444eda3d94463a4066d777f34eb7ec601a10311bb239d85385d9ac4e8d813b53f4b47cfd2feae152247ae6812953a4dbb1b897cec0f5681d0d2dc2a0e1d3034d134457a28edae5259a2ad6123670b89225939ec0f7372daf078dadd586510b2bf1333093b44d0d979bc60866da3b163c7cee30070b0f16801899dc701d032e8c142133552f6ccdbb19dea07e9d8dd78e43696887061cf3ea5ed54ff9b77e239b4a5e50a6ae7318511bb8e1f0a304f3d3f20308b0f304abb1b5334d99f83793c72ac3c74bcecd99db23faf747a57c312700a30d7a220ac5d27881a9ef6e74ac0b9da1fbd33c454d49ebd966c917a9d7689324b40edef025bd412a20b0c64da89749ef0a804ab580b9b98748c219a01060000f316403028181089c4b22c4bd240f60314800c70b04a5e4e9dc8834992c3288a8228c820620c018400408c31cad0545901ac78b2ade49bbdf08f48aaa9882c2d65da42ae413c4f991891ebcfc13ca6f1c4895f45896a039f90c3a9964389943b28644bc3a965ee03f6e9d69966caaaf136b17a08590b74e344bee49dbca0cd71f1466a6209e3a1a70d2144c5832c311861553dd82cf2a19100e4d0284c86271e8451966892a53047047fb1a4e96132ab1ca8af41849b9d981a0c9521171dbced304fe60d980083c06c435bc83299186ffd9407fbff7af742d2cae8a055e26d1a299942366c605586cbe959e4426e417687011bc7fbc790054f4aa9271305878f8065ea65f910d3576ae1fee50e3a34f21db8164ce41c8f7ac73cbe47c42a2c69de26596f69081b271bc51a9df81d887f5daedd8034e96fb35c63e1c618dad114bf9b1963629faf27369ec42f11c384311e0844703a6edc50bc56cec2274bd691777468693ee9eb6c8727056ffaff08996acd4bd7604d7203d2660265b1407137dc8dc8cab90bf690d95c409370dbc64d77f4144d9c9fed2bcd7e7cd261ea29dae18af2edc9cbd805527e8ea5103dc509235df7d85d3ae9ec177bcc3e843b0983eec88f470931ec79eb028a55aab51542ba18bd176b2d2ec78f9dd1e125da74b91f346b06487b22f89b207d5d980ab03d21d8d3736214423ced268e140227755bae3380dd06f67d0bc7b9157b069b626c1891a5307c32ea7dc5c016e5f731fb21abf4f66a89dd6913581bddddcf6daf70817498133f5c36d4968c5d05a66b64fbd9df2baaea390ac247b4f7012856ea20c51502256cf89434d51c5094ace58957684d0f8ab084e09f7ffe244170036d7e6688c4437ccf775831f99ef726d1a9541371de981a1f6ca61132eba82b544bbdfafed2a2a7759c3236a2eacad480fe6c5aa3efebf67c80dd5b41ce203dec70b986392ab5adcb5ec033366b1ed26cc598bcdd99849b808c9a40b02a9bab39987fa7569dd918328525324366cb52030c641a92d94ac73e61efd3fef4028d0c83a1dfdd6f7b8e2480ca641faf7a8c01d2acd2bbda1750795878ad89b2fcaf551ccd2ef0dbfba16c7e8bd15bf41260301330d270b569cb76c10c858f43821bdac4039fdd3b22dc6f5c2d1a50a5a134a923604833b2f43865c7e40227409910808b3fbbcb1ef0c78c4abb5a5a5850dac06afe0fa2dc1490669b118698ca68868ea1ef177bacf40503872a73ee1491ae582f8e5aae5e0acca08b69dcf745e7af63d4c95073e55dad84f193965bf73e9cbd926908ee691aca69b43b489e2af9bd7405911c5cdad99ae480291bf0d8280d2c1682129b97ba2eac5406501639e9d65438e088290edf794e040abe363c7966d773f70fbae4d0b324c0c197cdfa786ae0273ddd312f976f3e2ed62a0efa429551058c8b4b40c0b3a259119a6599e99a4e777116927330e5fb95ca8e350356942b03901c5806e8e83043c9b12e46bac4573c18a795fc3484ceda06f59c79f5429ef6f7871e64c7209994dfcba5468eb7af3e47b7dcced1963bfcb785d7f21359108962d51b4e4bcc310bfb81fa8056c1d29fb7fa30b635758918cd2c3e1cf4d66c6aa2d22a32fb0b2f2b290c6ac8285f68adc9bb2722e19908ec9ae44652720236f97bc9a0955539c6b2dc8879c1b42de31f89e75a181fe1dc840694f5b33d2a981faefe2dbafa6c10c72a00dd9aaebf56b3b819e20ef6b652e11885a2da6dbfe66ecf2bdaed713632c6759822bef47136c6092cbe2af906a36471122a43e72934e6644b4ea47e8dacf0e20a33e3fcc468053fb4f8f0872529c2c12e18190841aafc409905cba2fb94ee43add2ceb597a8c2fe40bc1b71396396e9eb86252aae1a1f46c881116cc74ae6cbd0ae1c8772c352a861684d2685cc5f640b9d9b60e9a2c762b023d0ea06680cd5db66e10eff98f13e32b02c4f59e5971eb40bf7664a470396d531af383a59751bdee1ec662dc7ba9f70231e239e2e84606e92cbb3b21ee3b6430d4286bc1ab4981939c01f2700c2f94f83e38811c1185ecbb2a9a934391aec548dd3e8a24723aca3b98652b1b7482e0b838b4a24875cb098ae8a9864c139fcd2f540020aa4313141dc3089c34832af45feba2abaca25996b4633ceab46c1acbb815b77b9fa5d2e2e33654506e5662cc4aec1ddd294ded02b7715490b031e712b8d849d4426c38efcd2e5d3e54eaa33ba2dd0b09cc70ca859ca7e02d18b4af60779bccb4bfd206bba1c3ed45365c01457c78b00d7a23be1aa5d855470d70b10dc6882d0caf14b256f02c7f0d2191d95f49f595a7666248e75338c35a436615a37597ff97b6fbf00d4ea21b0417fd0123f797adb6323363ed908f8712c85f5c15aadd030178d044918ecaae2944af4e2bda26ad4c9e777360f88544b57f0874bcd3c0144202f4420ce3da05385e0aad8b0188f9580da4d8740326dcee0412bc875d4ea2de37e18c4ff95e340cf974a8d8ca3aedb906ce71585600eca86fecf5781e2237ac1bab0cbd70ec950db99f651e197c9fd7faebb40a2f61566465f6b1fbfe9b680563c488237add46f8897b90d86b99f05960bb493ddd3db0d6ac9ef72c3f16039633b60b51e12a67c51be8002abd684b6cc7d335291e7a6f5cc432cd29da0aaccfe657438ca039a87a42d8610ad7cb05ae94f45d65af0c7b72ad326994fe9a70f8fbbe7391cfb69ad7cf15ae987cc00c03ccf0972bf949625e274fc616fb3bcbcb73b5172435107117b1782f539435ac0e20f7dc08f6d1b3f4e8074073cad961612f9186f756ef9e05dc85ff76e80917679f32810506785e059d931b1de2bf7dce9a017541712239e80339ef4cb51a28600e55ce155353e829461e6b6904abbd474be23ee0d6cec3aa0b67cd91b60dca267d1fc230ae1c197a14ea15c7ba5882a45205df9c5686cc7e116b26b1db2fb86e2be765af17ee41809c93a675ea9d3f2c6f9b140df5ad862babaa9332df04bc05ba2d11d2190b22365a8a639bba932ac6e0561ac5ff3fa810a94f05e72b0bdd3865a8f387d94bbb933169ee9c938a8911ce0938a9bd4759790dacc0d46a6559cfff396b23bb64b8b270016d9af1c2e21b59d9ab92762fbd1fad8179d58c7e1f1b554e8276592045d0cfd3231976691b5566bee3aeda2bf9c4d72e420b30a7ce0fca6c5f8c2d8a7275789350d40d14d3c4d27208fd6cb1ad89036fc4cebe34e9d4ffd7360f69a791d70ba2f53937b18d987e4429dcd977390e7153c668a37650788bb3afcfcd2e8401ffd0907ce7e0dc204a2b1ac72989fbe77dbad99ebce2474e420cfecd300325d3b3ebb4a8409470ca334303f639bd711408c260acb9eb22d9c23910bd52471bde84e4be7d1ef44132db3ace1878145f98d69ea6c826e5086cd99735013a116ae0413d38c7a5ac8f4f19f0c294171e23e07c2aab2847026214ee119a32ad4badc4e44a1244e32ca851c50aede856e5a460e28ecdfccf30775424b636bfba86df7cc247fc7bab134d22f84e11be1891a101324922051e21325900026a0c57cfce1e20577e8f27ef83627970853b59894b73d031e1b18c046e3d6c37a8fd1009fc821c0cf5af94a8f7ddb223863bf8df103cfec0fa354d355af764f8ceb9a12b902bd3d5115b9b1ae3b4174c85c30230503cd00deb1f153ba4018ceec375eaa2ee1403980108e734fd9287a43b4a9c72316d0a2e71bcf41576e2cc39374a0a91304eecff4c23072c0ecd3dd1797e94cd6b00fa39902fc175a1a73b5c31885a798526aa32e9f5552705595df3e34d1ac21ec533983a8281a22a287ac3d34633b9822129d630455364f1fb05beae0ff0185e6f4cd667378b88c6300b6ac62737e16383641c12d23783a34188fc6a27b111210c890dd46a8f9fa62ac2f6dfd3be3f40aa077d48a8b8b144fd08b2c99cfc472d981ed2c8b9b5b3de7d8b0d2abdd8b182b4070177340a512fc5a94f5622db532122dc31f43c5d9d585630b3be6a1085fb02657c1dff420bedc1fa7bf440a76a702574269db3ba09648e64f0b2eaaafeb59a10646ee44f2746b765b9fb4f515974bb19db84b580ac1355138c9c4fb0107ef2abe560b8e6ee5df904a7a544d5d8ca15593f60cbce8a90ddd93c9e6d5532e47cc115eda0975518b7a8af8ab33134e69ad19045e86c8a7297be19e3444aa06a0b773fa3bf2def1719aeaf5a1ffd7dfd6dcedded0ba4161fccfe8f41fd5039999b3d3727b6895b2f761e116b82528d2a731fd80ab969fec8fa5945d38dc72af8d9726a3bebf066205f1121a96595b1943e99e5945089594d7d2655f41054f895b4bc18404286c12a9d346cd87e4527225d320ed0af738ddb303d0afa0e583153026d2f1c8a500dffda57b80d818f5dfa584314b9e6147305deb817abde47c364d5c1eaad9b256912cb7190142001ee0a65944c0baeecda9eedf0800198578618325e0b489aa838584b489a79e468399385a72e17a33f5c05b98052655681802719732d6018c887f634970f0b7ccfeac955d280b9cc0be50a15757876768da2dfcc8b222ec4ab14c514845dd6c3ea7a33ba742ce0b00200c6ef60a857caec2b4a3a77829a3a02d98b443fb4ee0e58daa15401cd534970320f58462c19762c318eac66278f0e05818191fd133c8af2649ff9f9c7425a083d3a64b2975a51e374ea0dff60142990dbd6167cd775b6b2eba30f3fc59505a0ad8dd21c7cb3328432953840be31d7d69b082df08af55c38020bdddb1aa85b591ea2d2a281ecea2ef314b8903bb8c09aaa67937287f01bb70ae66cdc6388dd3aed2fc64ea2ce0344e5a7a165154a8e86b1bc9710c141ab3af535af66eabffd34d8ec72d9017e5def78af381054aa22d7287d933f37b279e2605f3ff92d645680cbb898a24df2e43354c6e85db268c30b7f891cfa052ae1016e7ceaf52bad394d23097f41a5c6e407497bf65f24e468f56ca6200c9f4a726476abf712fc59a5db3679498118dbbfb4668843c3a0acfbcbdf14271efcdccaac50581f909aae2dedee83ab5ef5a3b74acfde9532b8e06b3f29386f84a065ca43b8dbd0b8b4f1c474646f7ea6de9f9da2e087d6198adb373c264b76b7be4f71299a237a76bf1cc03421e4d88db3f29c055e9c2ff02b0fee998d4cceea9a531040f0e8d5de0b2c00530ad4e27a900ecf089613d51c6f3c9fcfd1408b331fe25c3eecfb28569e9b6b5004641954d2b9cd8fbd27a2d7972e9321ad12241361755c371742f2f125add9e2f195d82409c65883892b70048f73ba9ac8cb48195d61194b08c9d19eea0b7d53a8283cab32f45b49a1e957225848be5c0691c16007d11b8c48a0ec48bdabfb25302c4629179c9799ca75b8f89440b346dd543ebb136f360064b959e14d0781fd2e3c9195df3c727915b6ef13bfb2254c61b442b075b4892585081b56382aa230b03955e23182246f26507ec6283debaa45a5e04ee8b0bd7650e4860c3435a08b69b3d36dd5bf1af03a125c6bcd68cb0c1cddcfc87acea5fc2ee7c044dc501639e8104f6df6fdab51308a4aec429a6ff0b3c1b14fcebf7c621541433822d756809f489d60609dc54c3403859b9be9f4f20db54c89dd6fa22e35598bbf0dbca1907b3d1b799bb822c6ef88192529d39c08ff8ecad92d35fea0e6129dcc985973ba38633ee4016d4a40935c57a9b9ea0079391bdc37542d232755f4c646ee7ad58465e3849357749fc043a68191b566d20b487c893bb5440f0db42d953ba048de98f7b09c1638818c606e26502983897c8b51b0f9e88060a2df81539e85a5d2ce3c87834c831b7dd6e2c07bf78017a0a89d10bd8699c80f9f3379bd267d9eae5d3864a9573565ae07a1fd32cf50843c8ebf60ba5883e8a8d5db0734124e311032dbed4d25ed738ac52ec230b635a4e34ee1957d6570627e58487a84e99882c873ead558bf273146c7045c08a1ea5e719a769260603c7bd11a00bfc6413dd7eb5ba138d892cf9150f953c1c9d9f554287fb68b9c88ecc6d0f9ad3b4070f0fea14fd7f10ae270fbc37e473790ee226286bc70f44d08464eabdfce94952a833e7b8d055a5e73a74ce95d39bec96ac50f27393a404386fd5377fff9863b3678adf2009b90e578e5fa95c8770bf661e0cdc8d7e7a0528bb680ad7ab265c6432662ae368ced5360480a2de8c1ec673f80ef7ced0d3073a14caf1131bd706f4a46ddbd01efcc8e5e89c05b210ae06f04a6827539657405a5e8891c1dd92db555a9bb02b76dd97757519f6f8c0e2aca76136e613e59a2bc68579320064831e2e00621d11c0613a8bb9a95a9f8d2dab68650618662c14d62e19d3e0eefd3e74a95749526541d3c10f4fc7a4779790aa01038d7ffc148f3574132ae9b94d38ce2211a01490e9b285becbac912809e448a2991b2301913ed0913508e7ddfab7425df2a53adf7f62d9a3758874b1d7c5686d06267a8335663c69dd056043e66280285012157dc0b8433e235a818353e1b530cc60eff817aef448247220afe2170df23f306c1a91447db7d15925a15553a81baeba41b14e3e572587ad404a205c44871297ee45f49fb493ab3507c3cce9dc17fba70964bdd356f7b7f82a3b4b07b9d4ca94fc8e1db527cd3616e471777f6eec7b84d8c67075d59026d8f3b38ea1a7ac21caeaeff4402df288bf13bdfe25a5f0b7b5b87e55678a6fd2db257bc5fc22dd23a894f89fd4619fc095155f6337e484188a0a0c668cafa3d5127e74b926663648574c40226855f7db23a3a4a7b9c6f728cda00a1a0c6e8390daf72f3410f0da2177da0b11dcc69dc6ce3f61f42f639033454eb8894c86c1cebdd3843d6053138557a0c0c864ada2acbe61f0d62f6f794a0fe7bf9468cf14b83e437c3ef10740adf82c61d32c91b3f81442595e5d67195ff716e6cbfa3236ce809ae162e13dafea00183453a4038c5e70186351ac1822f74a83488db75ffb83bb0dbd37893a3f7ded2fd3a9f0c575c50dee3a40b4377f753920098687d5aa752aa7a0c44d0f867fa1d14e876533fc5d5c44a715a8fee2db948ed4831b7104f170fb77db11aa8caa4a1a37f2d2f6f4f1824c030a44da8b189d1b36ba9e5a4c31a79fbe9053fee8b0e70549f0e11bb27f2206e52c125da02a6155fa6ea222e39eb6275ea0866ac32e7b4d5437a4c5588e9536f89e7bc9d0d2ea04ea760c2d006aa8544b51f3333b24a218227e6f3156b47558933e2e21681784d514ebf41eb856fcbb5a6ea0d0ccc708d8889144a92432a50af01861884cc2e70f0816f44c544340af016bf8b905e41e954d1c52a2625f2363dbcb4edd842a66e967dab72ac168234f3eaca8861e7547a7fd71f61cfaa5726753e4b99f6ef0508b50011ca042300d59d63026616f296a0d132d09ee54564380626165031586cf59102da9e4479e4fc72c0a0e82dcbd40e11cda77c776ee19d8352285f3b186163994fd91a0c57e1c2d06a0c0ddb8a7b7a733c52b73c73ae4a26324007b0bf737ba0035c7a1fbe93848b0e41ebb4c5178c9fd0f1c42d9075d349df6a3b5818f0a042d6d572c80208e92b272c135a4d8858a9e6ba8024be1717f8143e91cef0bd634fa1674c63e4d73ed1c7dca9d19a2702876db300ef4dcc0829ab2235525aa94700dadecb8dbe1282ab972e15da8b1f3ba94211159142287c75442799f3a02060e1963186ec2d8b22606a9ec598fff8847dccbb43df7a569fef145f9c987dcf1a022b12a11f4e9d84afd517c655a25e32831415d46c6a21e24927c070e24b5a463546aaf21d01d32a4366d5266ba4f2ac3d8833dc5c80ed056a63eb14600bf1ad6c1729fc612967cf406f4c5e57b2ee467034ae8b9c7e0a0244af0d4a03800722c194097c9b631efdff5524d4aefc2ce576ec71c3dc8ccfe1dca6ba8fdacd58326cf8e896c0da214feb24e4059b905afa10a3e6e7b1fe130e004349e0196741b1fa6456af0ac84ca6be82fb41c3bbaf5a558f50d95ea0fccc58603e82cb3c5e25b5e5af05e43078bcb5df79030f8991c588b0fbed7100bf2530db582dc2a35630578bf5d232bb157dfb909bc51db818b518c5615a2712f7c7543c6677acd873db07ea14359d0909a19f277e919bfb20a25d147ed2c71c581a62ed2cabb123979e7d65f3e84fa6e99a42b583900d25d2cba9a14561719635fd738bc3fd5f8f9dbfaba643787b5273bec967760e978d7a604f50300652fc993c60027e9f7cb896afee33e1d8d77d53f1383d5f89fbddf62df1df52aa32d12090b6c30ca799536767d4e559b847ef1a4ee431b08392096cdc81a196f408c57d17531d30a9a8dc0464067aa63b969102b6db31441ab4dae8db458ecfcf0ec67c2db615efd2cc66adff75dcb1bdfb094844e83e42c4578dc5327a783557cd588fe63cb8b3ab42e0bcad8c8ca6fa95a48db8d0fa77547c15df921df78cd991d0600843be8793123c468e64ec515c5b0e07ca6aec74bf9f390207a6dc51e0f0b6f43dfab515741ab6fa526e01f5d4d82e5a7c77efe1da57e5f93c3b9635c7ce8344ea25101c5ce798f52c267ba96f6d03d07c7a36cf9e88fe92141eb8af3bd8500d2103943a0136dbeee2fd3de239e5cc56e23fdf731d84c5d87351db31c7aa37b908c7291796e20885d302771bcc8231f38bd5c57896246681b119b45795153f0138c6c16e784aa261b0d51dc8b7337c16bacd0220be85c45510f8960d927beef3c57ac9b6edb16e62c3a1d55b34f87b9fa61be916041893f1c8c384dd3286bfdec8b4d5eb3bdc78afea5f27be29e9fead1c4fa17d59f89f63f55b72562f07e2aa6b4568468a40bc91e4f8d3716c0fb62250c00c71a284b2d774b3e0e2e092498bbcfb60cdd90aae1e13c5a6d2a29f01ebf9e26a3a73290be2ac081803f98896f46e9b7ae87faaf9239caf8e6e5ecc787332977d8828c99560546f218380d2076a07981c9b4f8f1ca2653120c9e6d4945f04c44a454db2938608bdb16757b68535a01dd365de4f683a411619d886e3cdb39544aae5d7a3c9354144aefa72c3d84ecc2f0f090debc908be53319475a3322138892ba0cc05b608ede2f7584b1bc34a1825a3a60f53b79c1313cc1208d5fb3849566c6513a2b0b8afe2ab498c3b2472917e76095eb28fd43f3a7be49d8f9e96dd92518acf760d5121b3db11f99f9a04591b240a410c54b5e37164b3c5c1871cc497e45cc4e35ce4805b33c32a4b8c7f2fce9eb072b1e83d59292385f9ad98680634bb7b316901c42c0071d0c3af0a085daab0f4202b0ffcc5f7053c68a209585d6029c078a20f770f28bb5e32a44e1419e7a09d7b2f68c8afe0d9e34f7271a522a66a8c217114ad1787b5325cca0f3b433da85bbebe7c1dace28a0f753df84908ec4dbedb9a1038099fb315743d38d25ea42f6b871b091e7f3cfc7e4474fbb61d1c41da9ea06fcd79190c44d1bf8e1353737c8141b860602c88996edf16a2199c8fd057fb8f043f0cbc0a525703f4783b7a8abe8af1322e9fddb4c3a6f1a244216c110190014d924d65dfc356889e6897dc2da801113235b6f6ed5e4192edac541bf44d4feada99d212ce274c893e60d25a056377d1bdac92b5948ec34bf24464e4b72ba670b44c1c814df77aefaaa4fb230a13d25e5f9a9aa2b02620ca8c625e8278a1d9808d44cc84d42fab6ee052a0ac11542f798f01ae3d0b93d6bfae59ca1d61b07fa80dbec0b5f5c5540009da64b27b3f7971d570c01ecc0da067e0b17c242f7e5e9dd5cc0ccf8dc3c015c28e6a6d3b8521f2a03061386da9ed520075a7c1821d328d0232e78cb6958651d9fc0a4539ee94c449c5c3f41da5264a347ee7a83cf4e085b8faa2c59ed73933d5cf10660ad9fc62a664956cd01f39fe78652c9bfd378311ad8ab235f652e47ddb6d3327551970c71757225666bb1857b36ad35880b499bcc20093434b4403f505128915696687b895670da5bc247e8fae073a31a94b8ca1c3242f6ba5554269202c0f288dfcccbd53294cde66efa78d15fde3d6ba3ca0e0a3a970545bceb4b264eb57e2103cb989af5c2a96cc50725bfea2b35b00064ee874f2496230b2b23fe3e4a9f49a19035d88b4d514fd5b5de5bbfa7549ac59bf66b3aad071eb4acc0ee1c85bbbae4ca9cdcc25ba81671603edd33824f5aa4bc75432fe160145d6d9469d08833214c6fd2ceae943a4ae8a801463cd76d279b23783afa598f1a0b90366f0870584f66305a441eb740872c9ece726c1f4969dca79332e8039acdd3758307537094bd013e3fb3aaa39d53330c16b4ea61b82e92f4ba26449613e4b201b442216caf6e0b79ec5654c3ade69105934114ebb1873c5199389c8ae0e8a84e54f8acda718bbbd548a045b0ce388bc824de10cff145bcb87cab834a17eb0b3ed982808237eec1f184b17371d42afdb1fce0fb67b03d99638d5c32cd07a75b78da75d0f10a6ddb02ef9512587871d2e7bc18e0898fefa7cccdc6dc0d3aa1dbc63d0f4c83868529de58e3b377e7d2b47301e4fd9e488e550624617f160cf0747e4d73835adf38611b42de59f219424c8b2ba16b68a1f40a5ed49e1539c202374f8627a101429cf7e8718d480bb62a4696895fccf6ac542b1b28239fa1ab426e36a13e72c08ad0a5214586083ee3bb066677b6aa6431dc12b79c1d9ca85bf0ba56f12c2515dcdf068371b9b7c5a4be39f0ebc428c7f29531d5345aed73bad115b3fc455485eb7cfb968d42fceff957367767c6b6509e85f325b6e7344a10c200865d882d9a24e4b4b3c968e38eb30703c49dc3c4f2f44f9df9e09e68ea853ca751ed3e8e9dbd761d6dee46c6e48b0ebd6a39e77859f1d9e419fe46d30c2c1e94fe0828e1fb140d3ae158e31ac8959ca0154d040cb522bdad3de463a0c516426bc848e72c8c09f108c8a24143c7ca17032c98e5a7da66c21912bcf342c3db30c1545424d560c23e54fa9b5b594e0830cc4fea7e667862841be639f8b27930238aa65a604938e751be20ec46670ace82c61607bd2a688c3896882ac9bb5a8e92a1aba6404837973d7ffa2b86bc559a4dea01e7e7ee1586d31b140c94e09663f234086d4d79725750f15d3298f1ecf3bb0332639c6d121a3c5b41d611ac55eaf76c1b24f66ccbeb4d34c8aa88112b1edbdada55fe9ddf4d2cbe3af5d34b51536ce76bde23b69d5bb0f17adf7c63fbba2007236858052c210bc8c8815f37711c13da31a4fe6fccdd41d871510345e2f2b8513804567f4539f805d1d52aa10a6010ec558b262323107a638a6a97cacede0c35b11da9e300c96b4440f3683751763bb386b8478c7068ab44d62b4d1a5c0ef121a3bb3d08c26e90f56891f9ac9053ef11b93b5cdaea53f899477985e34b02a3886a18cf035621f7fa318659a8147f6ee0d9bf30689bbc19221257c62684c05b12515f30122668267a089d2c694e795c053fc2d6b4c1118ec02d4ad0eeb51f557b7bfc6135c59ba0d44a62e3194f3c1185e5c318e769a2b242bae1e25f51e2c782dbb1fa778943716a8d6fd47d07f12b19128c5ebdfbd95219e481bfa20e6222c2a133a13b9665a6eb79cedc7f91a051ff915809dfc58531f7ecfe16b2ce4faaf9f0d29c7fc5b56bc485052ced4990b080ea5867e083052cd3d034eb1dd00d658f1210409bc19b10b91a10d5b1e09c21f708aabe02728ef1eea7228c630a8849810932585441c9a16aaee125b8085d8d12554ef17118e1e67aebb02529e7612288912cbb1eee1094029aa8f8718146b47329a2685dac9350829324578aacd80424ef801204e3874a41d415e51ff2ac74097531dc9e2a79cb6c0baa46f6c2d7030b2f05a2533b2e808e1d6da631d865c59aeb3059f50dded6170562ffbc87baec343a13ef1bdbc4c5e54588d1eea03b6516df833a3cf785ee1910696cec06df8b993db6069bfdb7549b0b902c507a364e670161a4140d7ac96f9461ec99413604d69e24e830bf048eca1a74902d7c58546b78f754ccc7dc14831f370db06956d9898afd0f715a48dd504e7f9e7ed8d9c74cced1a7fff1680ba32ff5f46ffe70a5a26dc1c2160a2038368f72679d04ed88a140bdb4870b1a3d510d650fa720e4e4112ee96d9a5b7799df8f6f80abd7fc0fd45f6a83174fb97006fec93f15ca5b0ec82b2f64657115cc00ed9a8781eceb978202b8afd428ea3ae837888661a91905bc765265f5ee1c44d35c66c18ee618181cc6f3a650b9e50d65f064001df78f1264395380662b270f5d5549704c65a87aa74daf29d919ece02051c69777487458ce1f64c28e324c05f365953aa4df54d7b570a6125201f08aae607799cde0667d953271fa749ad34d0a68604bc6bd15d224c026bd6ebd1f345c4f0972b1d301854649de1b3a9d0478d4d3689832c84ea713c052651829e92c6e008fa1c4a21fcc044bd3ea497515868734f3bdb60b63409490eaba00eba53bc032d38e9f3a68128f727d9d307223c0b2af36336055b8c02c7f4772ca33833a8e212d05ef13a5a3ed53a701b518dcec9e72baf679185a67cba9eaa57e62f1b85d3e6d4fd90e91fdb6cb8b25e2a6ac1d6bcafe58257cbc5a98ed74fd8fb9b034a5b92b1b3de97068ac769f33f9cda6ca5e0beb8ebda29b726081219ed27518d5c7384100fea1bfee76c175c445fb21290df05b66cc69c39aec8147d4c6250f192fe6146bb759a3db4af388e25315d1a209d7bad9083a0b2e08a0c44e9417e54309909576530e59489eb714fdae608839808ecdd7ee53199c3f8dd0358cca80f2c41a7f0407f2999e4186e87cb14b378601bec914b6d7b05baba36d4fa5d3a72f9bdc0f419fa021e90943f949445c649969bdb8e8d2385490c91dc98c25960ec140f71a11160f3a12939446e8cd1acaca36e2735cf944645065763bc1097d1d5644c72ed2e21fda21f79c57ff5f70e4f3f49ca53b9f59a3ada9126a8fe3ad80a454036c57725ef677ad0c79755217ffee03a4f6589729f99ce0557067ce28a53e0b3e38b2002d442c1ab891d19015824c155abeca541bbedbc9781cd08727ecf3cbf544a68d34585674b9bdd1175cf2b54b9bce5b71c65c09d6243594e74e0c4d0efaa3580f03d1ff01071b36fb1b4e7f44914184fc0717c3e20781b7b75483ebcc0d224a4d30243fdcf47b5c9795d746240faf549ed600fa0b6efa077ea45bf416349df2a0ab623d3438c7f8c0f10b844ce1ccae32dc6dac70487964f58793698a7777f18b9a1c0ce44f4f6f5f137e46eaa506ba2772a3ba7d18af84cceb74f7c48cd6bc6d317974a98a6e2fcce1cc73352c9a7009cc5e7abae48f3be5314200331496c2e8f5b578a93c90975eb58c5729bbb7b8dea1eb88e91c9f6159f649ab4f2dd960bb2280bf2ee45572997b840b1e08d8f062f6ef72f31ff6c9cbb9a20f48f708288548452adee21c6510e8da431b193162cdca1fe51112b91aa9d4a8d581b666ef6599ed381ce517c7d721b828048809436fac5e77b06c8155a74faa3e88328969bee482582a4c2f91fce81e92566989bbdd891f0a412a383872a09e141b3bea71c3ae632f995087b11c920fba8b8be87291151ddb0ab19628f426a6b2b8dbb2a141510655383be8fb40e4b17f11a8d2996fc680d3e12e0550a5cd38b82c06f8f5e9875e56e644697410cabd526fd0caa18ce8a4a2bae281e2402c3981830c7ad4db6cd16827e62cc7257a09a55db20ed33f0b34c50a8fadc3f6b4f3549fa8e9fffad58dc7a6f7d3afb27c4d89d5b57ea46ad04accefcdc662520081eb6b4a32badc2bbaa692016eaae491f60dd4222c503e7e0ec848ed64b425f3658fe5e6a3355e8c173516b4048d033808bcd38eeeef6c8d3f2a7c784610a13999a2c5e8029dfb6ad34521e4a0ac6302cbc7d4fe16a969b837679693daf0c65948b0df06bec82410d4bcf5042c154b00591e3aadb8068b6a9a57580a6b15660de80dd2717ee23854e7623c622f4a47913b8f1973314ddc84e4b24df24ef2407b7a135a8f14931935c20b3351524e27ee2e3bad394e032b6c3d51c1d86ce493f8a28a381669b9517b01c4571354fb317fabdb07ce0dfbc37b84f36096bad0859a20e252c768df1be4b53955d0ee1089557d33cf5ed1a90295d3e84048dca29e79b07d068bce2111f627f5935341ae4f6df80a25b09aca0ea833760cda0d740f545670e050ab8b4a1b359a6fa482d29015d5866b03a5b099ea0305167ff428ca53b7a41bfc5a6edda907330fb609cc565aca985f6d786791c94dcbd2b589545c60d4428ed7675a03f9990323c3129476af0596f764b3aaf8246fe0ce28253f848dd64386fdbebcee04764496836610d67e857e7f71c4133282feb86ea395538b50e17a307cef7b9b645ff568a756befaebd539b60e8f722200b8af4565726130cd7ed757890b7de9a2945954206c9c6a66e1c9181bffab3b7a8bd238fbd13c53e16e011ef82e4b69b0b6f0e5973050e57024cc204640a517ee568ed70f4416793ad9254530f4cd93cf639474c989128061168170001ee93effd6fc27f8c080ce6449f8dc3e1fc517fbc804ab0c53de42a7f04a640760aaf5087b6d0589641ac444ec07ab2ca54e7dd7ef4717aa1467edb6237d629d53c8806873c250468480efd3f161eecfa0bbe1fe5943b12e2598838ba6b19c86bbd083b9199cfbb97008fd583f26f5f7fcb6944519d19a972eb8ad07e6394e5833ffb539ea55aa5cc244a07ffdfa1193d49941bd5d2c97d5d92aee69bf741567c8b1bf2c5eab2c76b521550303e006cfa0e1366a96c72f2c85a1e5c4bc702c02825594518590514e19eeb02745318b29f9fd7c13e8282a2feb4e2b531b9e8c7df7fcb51db225dad8eabac5fe315309cde0c2f244ab1db10ed4e52e6d3de6ead0ff1c1d512c6cb411f16b23c7ab87e8f9f24eb448babbd829403ad69a6ed3552b88cd38d9202f7b9ab25432fdc96a1d91bd97c75274f4986686ba2d5a90bc1d289bc8205759c92a093215b088f25485cb255b9e38ef9625851783a8db0aa649d4537a727eccae1e867a101d8dc969d7441db1e0b203859564851fb78afde2a49f93be9e1d8ac2af04c6181c3f142e533f7ab61cd20f3d8a887538136602a8adf11a39a03f9e71e61c9be2dd1d9154f72833e1da707f180dc89efcac9e1279a6bceb610941650605c3418dc017d02f6fda220dc926ef9d736b950359f53be99cbe448eeece809aff88ef868772604259404b2d44197b00bbb4f3e78d09925454237b98c49cf01e27e2151031a6dd39f6f24b7ac26cf22e782834228a48ac7d9fda15b4f9b781025903509d6c6f8402589162c0a90d1e9b6d3f501c2beb0199491c6780d6b7bcf12d1755c2d93785b2d785948193444fdcd327b8e721fe504ad412eb91119f795792ec994d2b11ae86335f6867697868fb353ad858070492dabb429de90ae12747f40927d514597c52beabbdde932f524ec858cc4effc5209dde3111d5694cabc279503562f744c440f5129efcff0fef43b3ae3e688e2a131a5eee30458384fa7f4ca70310a942072b814395b66d502a0115959f033c0ad5660134b246ddde59696471dad6341a8515fa27a47168484c355a9a7ae85429e7c9000f7e184119ce3ae48de2830259163c1f24a110df64c853e70fe5b14196e7c46ddc4ec6617aca0a2894b78ca8f3c20dd81d63d36f8c4bd62d263d17b078a392b03668098ec254b6f7cc5cad434ba1396d2c52baa49fbd737e9da03b14f91a42ed76d0821d2ca35415a8a2bf4fb9f8a5dd42e9522e3fdab8070556a3d193d5d0a777693171fdc320b11e01919e2e753f18ff92c9caac50e85cc402451fef3962be2b46de75886dea691eafb007dd277da62588895d6bc8b3d12d3f286db4e1da28f44e1ba83e21bcbc6b54fc7bed4017ab8e8ae9fda042c545fa2da5ea293a130f951882f474dcbc08e0b424af7fc68d9bb947ff5c3d14787b66e50f879c7c66aad42cb5b92e37fbf898b52264838fc6c77bd68e5ac5c2343940d00372770dbcc85461dd4809c204aad189e6df5d363cda3140dd465b7723e5688a2a36025e9b5d4f7cd018ed0736f64112d43eae15b037159e01316588281de01971ce9b60b204492083f08a4018986b344db18b35df19c8a3c022f73cae50c3ce6fc822676dc57048218e9a7fc00a6b2079b541c288534803c7e8d552222316c35a74619c5adcba6f0abb1022158027f31c878e0f69ed31bcab5aae8361df2d76aaf1ef0d8f9ca18a922d3da25e8e900098ad7848fd08063c2571fdb38300f82e3ab45666a002f64c5781401245ff78fca8baf8b98265f8e0114b9d93d007af8203f7d9d4e75dd4271a52e3b04601a7ffd03f00543dfcc501c3a9f702bf8591404f60bd605e87a2b8f21a8f7cffbc9a7e6f6986c9a7f5f639f1ca371238034449d894d2d629cdcc1f5a938506c1f766463cad83adbe8f209e109aa06c106bcafb1f6eb8190f6a6e85fb421be5273396b735e6520b7972845cf8188072c2b8241bc0752c0454447f44cdae32a2818f6f1a4a8cc5a6188763a031992229e379d2b25c1c8a97df713035504fc814548db43f566e3e5c6e8bfa38174e7e7c56c39be6529298fb26ea07523e3b1775423da0f385178d62afb25052ff2cda54d3ce0d22f664e8c0bc9772586262fc4f35ee52bd579331aeee629eac3e3c3ff562886bc264f499489c0b766e2170e275625684d9198a528d2e84d40d7d454507db55e05184bad2dc7373b1f167f79f10640628e6f0565c80c3c569e9d6c3ab6918a36c52fb55d1f7d8c083bdbaf119bc2a49c6e4a94aee978f2da2db9109e6c488f45d6297756e7a9d958ad41fd3bca7bc3b619d20acf06824f0f52982c9d7f6381eafcf0e61a0795b7a34331ebf234f4f432b7da384a2efa8c7ad95e8f632691cc0b068bf31d66a130258d5eef2b347726a8e8472124f3c97f110b7db6a23dcb92631c6c4d81bfa29fe87321504b554d27139181d2732871318ac47cff08bebf1b252645d6561530555f81f1566a0c2f413f51992fea9677f54c2ff11c8150f904959003196cd4a5d0ea4eef120907f50e522acf1d00bfcf683e76b300b7330857c0ccf786d31b802f300ff366531af5b1582266c7f91908f8dff1079a6d738381ee2783db18f55014b2f891046a13356a8e40707216cf9c95bd4689978ccdf400861c368aa37f6cdc63f10d525c6e6f21042061ba36f93ed47c4373afa21135f2bd82333db7857849544737143cd6061fb66b0fdc045893e8708bd529865031467e28bf0957f2336ed6a91309b5713c3725d92ea3ef0f6e4a76254f3d827d886bc30d248ff31fe27593a188866386ee2fc68f5accb27b3112cedbc3d6eeb02bfd27573f3f538c1955297aff7824b3db92ebe107779e7f2bc13d47e217849f22442349088eb19edcc1e46900773d22b96cda5cc3c45157d922b7c823f41a0b164d787ff20997e76086b70e197ebe17f7d765a1f1327b5726dbd1e9a22c689d5872990aba7289896d209881188a3edc376bc479489f266730575555c85ed9403756c4445572d7054e8a8192754f20eb34817427d140d1223975cb725d33ff71abea0c86d111af3e3a502b86db69d594f051734e6446ca0698b11d071b0ae46663be269c71557389a4a52ca68bd64a494dd6970027cda33bd6346a86ea91be0a07c853ab81ea343c866ae4db8af912d5aa27ca5ec8599932a4f5ae28c249d14e86d5f8b86ab32105598014f81f9b808c6623c43875ffd15f8ba6f10787de8d85967c86cf9d72882dd2ae98f6ff4ae7d59c7bced3156250120e249f32d24a1d3558e9e2f8bb737f0d5b3a1824a78a49c98cf809bd9199075a7efa73b1a9b80d95ffb1c71557e1a45873fee37b970605e321ae8e309a53b9bd32c862d37f5fce952e61135f90d960b962fbcb65c2aab5cda8a7a3bfe1853c29b94d65b4e1681051c52efaf18561317cb033818ee4f0aabe8ca0f809c764d0ecfb1bc042caf58bed68d47ac31a325eda8de8d05e4860bd747f933d2b88b6a070f0484e410f286f96fb35d2d4752b54c041a033b87b19c9c3c4e0ac3b78dcbb98a7b50ac3e0a2826cc910cb8e06b45048b8536aa6c037190e714b24d6027a024f24b29f15397635292fb92d20d701eadf366af60035335d38141382a466c594dd31116893b160b2f946811b1208e236d25ae4d7aed88ba70fb9862618a6274a40b96455ba2f7aa959b1869caada8eb66d6fc0a40f1d41680404b14de023d9db2f510b0dcd7c3b9166501d2d924a24a27a513568f0dbcf6940d04376ba3df69f21b2eb36c1f4826ab784f24dffdf0219963451a81430906612d4815db5b4aaa5deaca57f30baf779cd638b32a93e0b48b99cd4098967030439bbec2c8ca32dedea1bd572680fc133342fe434ba9e8afadda4382690957d7a313043810f616bbce099ccb5e33cec0d0ce02478103c1f056002fa36a391bc37ee90f8e4b4ce8cfa6c35231d3f5193f7894c7ec4f5b9cce5e395120bd5b9dba93dbebd6fe690378deca8d69e5aa59326f6644e160cba35ce3bd728c0166fe5a0286434b9afa561f6321521cb10c95b6a9c6edad9c580e10f1c98d31c9d11bf2ee2c6e02c55e58ed971598a17d2b066f57ae17fee2751bddb714e93c5e58b7bc50a85437c26e85959fa425558efa47f23c2190e118a469a710bc77b40bdded6e82085641630855687bf8cb0108786a57a1709a26f2e50ffc4cbdec048fa8826bee0557e750bae7cc73bb920e353b7947504002fb316a659e9b3116ce1f11d78bb4083806ec83d0b050be80c516f19695dec586853965dffeae0a2cd4920735a3a2382ecb16dc5b0bd33240d011a7c2e139f009bf4bed307c72034de0668ed1badf02d553d8f62f6550382983b6c317280d61c3a8eb0bd9e3e1c4d77c99d34520c814bf2938ca44fb20e2349db6f88ce43ac9bce7d04adb70a75e1995573878913869501a6199bd3fd0c6fe4a09e30bbc6c53c34946d8d99f86d73e24434997c0fdf5e809338244c87e3edd1f5a5902e31888a1f1f3573df29bcddebcd2695536b2f88adb6be18b4af9fb89be595748c9a84c284e0e1160f0902e9d8a4cc87c2a17914d3e6aa954faa0f96d44b151b2975dd3d0b93616399334fbe18904642f263babc3cbaef241e807bf2eeff775bb5460a3f10bd83bf6d982194a1b0473b963de6808ab2534f3ea98e11f3b7ddadaffaef2b1591a5fca077dd77829ed5af3d5be2d7ebbc5c02b51f7622f31844296dd6898528250df65343e8c00531e199b214a17fb6520617cb459fc8fef26c0c061e1cfb598f535fa61b5c5c25265d535f8c56acabe64f7afd437eea90e220cf88c0df1fea64e9ed07ba391b09ee29bb6093b2f217a2b7fee29bbc88717fee95ea7ff0b7cbe058d84989d7d33370b2809db18c8bec4212e0d95fb289d3afaa49cd17d6804c3f5072355559e96511e656123f2d9ea3950b3b91dd627d826bd0ab3cfffac94aa73f89b017f4a6a11fe39c9f4621a0c97a53218d9ddc581345771b71db0ff642d4378fc670274ddb1eb0d89d4f87c11db0fba03df62d6033af61de8c388c619cd7f48cf3bb82e64c624799138912e91ca5db59074ead5c90398ff0118535daf00b0878a5b01aa80b45642f2cab7925d42924229f3b166520beab7f91416c057ef0b6b5a85891c4a970c0fb693b7437701291aff95f7626ceae02121a3db90ae8b0ed8c02acae065abf4988359525b5a5e2c0623b9a549802accb8f8435f05686c0af8d36d327f26959d307db26f70aff5d1ad1afb46698a980983256c886ff773242b656a993dde1b5565be8ac46709091a3377c436d4fad40fd7ba8ff609820b83ab8d7ca1f464d210d895ccc59a4e4513412931ceefc3d0318d46801df2dccaa533df145a39f46f4ca32317843d239b2895e83690f5144d573233da9b1bcbd436fa009fdb24a33b5219cdcd9af33739d681ce42b761accd7cb3986f26c6fd4730f2d67ed5a4c04a4720078e2f2131e8435a92c79c86626d86dcb34a51e09ad66960b02c8d0e1faa92e64edf13c1e2af8dad34cc6b43190819a2f8f74a01830491b966899eb3dc37b498bb0ea12c09ce337306cc1e5a7b8ab9784178ce54a6836005d69c9e8960b78b01068d11c843d190a3e1d5a98b260474280925a181844e5f80dc308e399a27f9f9f18e7f1b67b2c2f3b72f580b8318c66f477a721fdc408505b8559893ce4d02a51c0688db161b2f45ecf745b7923721fab270fdf2a9c083f4d442046e2386bd6522c315e217513f62dc3f5d2b3400f0fb3f4409b672ffd9067faf8022aa3eec90f21b22784352b744f7efa9a4f635eb0316b224a1cf8aaa4a28ac7a0a83506ac9fe76462fbf59c697fba49ae9ef81452b835b50c42d12bca162ce59c51d2868104eaf27bdfec21f0c8962c50a2ee7f543857afffd41a194f7c02ac6e344976aac8b7141ca5bb447257bac64b0320cbb9697b0d3bf0e3636fcd855c248454dc1f09a705871b58ffe1b89db5873350d282617a860b6467a6657692a410ed25c55de3254d22256f63ec6a8fc9dcfcd00f17d82b9c60aed47e28b53a6df35d93b414ee08783f84ffc7acb66dae5b3672ec9041723851958f5ec6e8666b9ed1242db5ca461bffa69e5a985b506f8722640ca64a21b4d3fd7821a524904ac21b1e9c87ab7ee0ba85a678aa735535eb56f2c1d653e56a7446d1e95bf509e0f549929723ecc888faacf1f5fb671a312e01b27c7b128b1624e9257f1554ef9f1250f1597b9a3aab8dae0d26288062fadb29a7e354b73a4063bd574485499d157081af88b578b4be63ff4d741b26dba8243fd4aa315e18d692d29fb9c0a372563233f3f02c84336923e8fcea2cafcbc3c3d7ee47428900a89e7e1110159ae67a2a55678610362a356409d484e9d7d5b844cb35164bf047e764998e3a0699b158769c3a776b4db3326507548699b277abfae55d0174de62c88b126ecc531dfbe998c146541f0b2501f9025e24f6c0f76fc30acb94027bab04eae641c91cb0c8d2a1b1597a56a268b98435d9723f03b94d912a8b61bca2f010a5f4df70d348803fb1644300a4a819874760c46f3010bec06420e5b3c1b142be370172551116015a47213c1c7d27ac4623d77ba28cac9920df62d7349b23eb8ff7d58ecd59db141481fecb02af4e600e9a2d7b4cc26c822c48628ab90f5ba1b4d304ea104ac47e74972243c4f2fc096262c27a5ab8c25cb031cb233be1addb24f253c112cc6722e0dfd0510fd426d8624e0c10bd6b244130e94fd3d768ede0652b9bfd5816c0a8183b4fca034fc097b640f36712f381306e2f2b8beb0e36ff052b5eeea673906e8f13a194b907317cbaf9ef1de98e53c578c4975e520149659bceaee4d36ea8c7ba6badcc4863501c734484e1958577922c9e5001c4fa97be1f4adfadccbd78f2649fec8671be52b4be38a31d822a591ae57ba952d786ac6c69fc76ff909ae5f53c7940adee945a453a4ab7d5ea8e708cec1378b74d82783409105254ca02162961afebfb960c0ad1e71c5815286ebc442737435bfda20c8cf3544691b81cc8b0074864446eae9810320437d33cd51ba896c53d14c4b8126603966fcb08346158562ee1b06888847362cd084168f88bb3483522aa88ec1c8dd41009b8bdaf1937c1a83c0e8bbf104b2008ea97ea00d9d7b0a276d953e1b4f0176e0d96725a1aee8ac172037580ee5b0461fc8acd058c40d7e8d27295386ee1c6087ca8aecd467602ba0fc63893cfab76350c1a3390f097f200aecc516aa67b00530e19b5478c759fab78dc2a197492dc7ac18e2ee348d287113ee76ec4dd09de7a697f9cc72e8ac06289e6599faca65949874e5b4c24132477784b57f437818dfb48b065cdf814d38504e2eea30c70da9514fd1af59163664fe150a4ceb3c4d7fb61dba31e737bd231d9ffe6a8951c2e3fdf758a0e1eec12397690e7f727efd2a9b64a48e320dd56d663e5748e756c8fb0133cb89f2efb719b3fb8ae0cb8e346e3ed1ebb391a651613ba8de72f0e5cb822d9a3d099b54b6a2e4894df1d74696916af035a735c0f04af58fc0e024a54052bc7e2819c8cf7a23b68475e0de0871489a117932bd9b93938fda00ffb82480dc818cfccdcf1a4a83fbdf854050060ef3373f6b280dee7f1702411938ccdffcaca134b8ff5d080465e04c961c544218394af722c0f312b9494360ab98a9c184192a25b8d7c7cdf24ec6096c4b2c6924ec8977c7b554830cba72bceeb79f4aa3c5945b1379278461a931ed8d8abdfd837de3f6d4ad65856a6afba7e681f2ac99982f910d570730a12fc054bd22d461c538dee846de471620caffc42caad8d17a7383d017a7c030c6ad68dc7654472704bde8cd7ce0364cfe371ee5bcc9fb5db9775ce7938425da0cf0fc79268b3d4010cda2276d3de84a1b51c789f4478d4abe3e5c12c79b0fd5ed77fc2e4ab6804a643e1a9fffe39dd19e1dddc38d2081b1cd8db163c419247453aef7047d0d31e2a90911fe76039f0ea31df13b7b33af90da5211a805f97cb4eaffabf9833c4b73acac76ac6959ec545f8620c4973f6a0a216543badecd04db8869228d0112bc7d591c13d21667f917425618d1dbd62ecbf7232571ff177ef061da07a427c1f4ca80ba11d8ef78b802b32b02745499738d46434675e895aeeb0ab02d600f26d825a81e6fcf06ceec80332ac192c402d3608e78e9bfd991e313f5070e3c839f2afefa54824ac81cbf15a01f7d7e1a7885cd03b28b86fdd8ae138c2d8ebee0f127c01b6a0eb6eaa638e8d0cf1a6cae7aa2b1080541108e3c66ac76e295a13a4f1cccef609ff2ef58c2071f10193b1fbbe5f7b17bc70bb1b9050f35612f24f3f00329de2e038139d76bf04a638391be3af4b2f1121bf601c7f7994595ef68d5cf2655fd8502ec282175dccf50ed81d32d10dfe703f284edad0d39b823bed4d8c0f1741d2c5c2894ac0c97c2456917d96d3be1d1e6cb491cefb5216946951a197e6125a9e8068f0323c11dd5808502edd6568fa1b038eff4db40b75ded1c504ecf355f2cc86f30a9dbae17ceb82d6e024945985c5e2c545884db9e2d699dbb8d45f4a6087e845b84fdcc3be3cb0045452231f4c8fe1eef854aabe5cd794725fc88eee0e03de83b39a733da9a0ca8d236f386274bb114f5bb2fe76438218acd41a4e6951208e315ffa0c92ddee1202ea5702cdd6985e65867f65eec19ac776d9c22948bd8a46b80068a2c18083facaa691aff9c39e735d42cee3e700d8fabb8649c02368bd098b3d0503a6e42b661ba5d6236e3b27a7b1455172a12234581e4399e3097992f27ecd170a893c4edd687deb039a60ab35dc9fdc445a4f1179637feadca27ae00a2e2221606c0f60db08a0616b3e59603b5831f41d1168da2563cdddc01e36b36a2bdd4c9bca880c30afd51b2b65090ef69b97210d35fd8085cf034f365f26788d098f63e472f8c0641b966f9dca12639834ea387b051cbdc7740c6c32aa89278855824d4169b3637a3b7384286e964efe327362d8c766074cf6b795daf084c75c70fa2fa5a696176ccb692fd7bf1c9ae2413eeaf631bdde5c0e116bb83638e96032af5e49a7320ced2754324caee345c7b7e58efa07a0b6172436ba1e012b3d47d28408c4954bb3285a45b4751a21c6cc175b63d45945d726d40a25a594bee41fb6139ca182185669ef7452a7c0fc6de669caa635c6e723eaf674c6e764ef1810d89a4e9c60f1ff851cddacfbf1f1f04a62d1f4e71d8325eb73fdaab9cb9bf7aa5e3f7b359c3d6ae561b5d29ab90aaf649c4d1bc6849a90d974bb5c87146189ece532f0b7b6913f69cec80032a49d7ab5620d851710e7d935237a70e0ef3939311a6337364364249655bc43af0a0fa549ea324a1267918bf84fdc35f3c1879d7ffffef9b07f54abb6e52ca551e7770103004fda46a4d9243bffd6f3f3bcfb624b4b464e59652ca9b0a4b0a7a0a0fe61e30b0a1a175e637c9ffcaefda234ae76fa9fe8700634ae7678d2a9d43536db5579f5fb54796ce9fca8f4abbfce61e5f9a87b74a780e6f5fe0e369930f5e94871c78c841c78e9a1701e2589e8cc30d2f5082e77714e1383b8a28716aa591662ed448b31666487318dbf34aeee0e1d4ce5a69d4de26e1a49f39eb6bf8ea673c7fc956fd8f45c251358b849335255c1954bee9a4711adf3a67f0da5b179470b9273331ced448a2e63da799cd9099c83da1c9bae02d12333564bcf534c6176fa21050876cc423687bfeb2803d02687b5ed26228071e70b8e144e737c184392b16116f81d3b6c067fceb8c71ab82cfe1b42c703bc4df70da1d6e6d8fc36957e0423c0fa72dc283781d4ebbe33a6f8d8089b12d8001c31a61772c0b6c117605768725c25f3fc37378ab02bfe1ed108ec35b9bf3f042b80e1f044ce72fb78b8fe02d70a6c05bfe75beb8083e87f3041e82bfe1248183e071384be03f3c0fa709dc87d7e14481eb3c102f29700102052730410948f0920217205070021394800423f0d7b7780e2f02bfe143e0383c089c87ffc175781f5cd7fe03aee33de0a4479df529be7a15cf5fdae4ffe8d0a1fa1fb2870064018242bce988bde99439cab7ce15af7d074ab8128a3a2b2d01f5010fb098b6e73274a5b484122e34754025c5f4316f3d8ae7ef36aa96cf323f497f0977d15bf2e2caeee8a1ebf81d3abe0c0282a23454d2c2e46909570695509440663986ab0bbc054e0eb8ffeb3cbd029fc3993a05fe8613033e81c7e1cc804be0793835e011781dce0db8cef7e0a5a192163a1e6f20d5400630a0c3888eb7382707469fedf983d1c306520d640003a10e0bfc0572f80af80d4f01c7e127e03cbc045c878f80ebd03952149e99c8f4e3a975fe019e9f44e9b8a9e3a91d3529b21701e29cb829749383e3173b84a69cd2e45f27cc13f0399c0d7004fc0da702fc008fc3b90037c0f37032c00bf03a9c0e701d0f81f254d12bde1e5b5dfb8b93bff61607f63ddbf393ef627b7e1a7f8c3ef2ce4e3d1e083cc0015fb1ac019e33e077b6e70bc86dcf1570b43d1f3b92c96b5f714c3c874f80dff008701cfe00cec31bc075f80278ed3b9cfca68ef7dc74665c7e0d6299ea7f763853ff93737e11d3f9c74dfe0f014c02b8ea67072e32011edc21a71c5374fe5045e707b7fe6e45e7ffb6fe8e7cf035aa579f7296b7c9ffd9c155ff93e3232a27e5d94d1f5f489a79da32e5302933e5ae1d3ee74799ce9f53bfbae875d40e678965b7e3a18368afde2f9abfdbaaffd9c16ba81ddc4cfd4fcd4db9a795bd9077a8ad58395ffb01b8e94fdefa12677dc9575f7a7ebcc9ffa9b9ea7f6cf0d4ff08c0c79aa36c7053007eebd965d045bd5067e50f2a7acda37d75c801871b1eb73d3f7d1ec3f3f2073549197467626c6f68a7a80da695edc1a429db73017cc5b2f24bb1ed91ce231d9f89b0cc739d2fda9e773e3caf3de8a2f3dffc7606f93f39aedf3cca394d32aeec7ad753a6e6d1cb0c93970b2626771e7a3ce3ad82b18221dd78db9d77a40d158c150cb51c204400ae0582a452b1544e39e9b62fea4c85d8a86b1d1f619a17b7ded930cd0cb76056f90e2962286edd561b94e5d6579886c55b292a6edde5ce56dc9e36fd82b6e7e6a7f65d7bb43af5ad0d6299576259ea593bff8f0c5c99cab2d3a957ed31ebd4a7528fda1977d1ebc595ddd49b7b0475ea4f432f8f8fb0ccf3191e98fa927befc5893af5a64d94ffa7c563ff2373d68bb78b66578942ae2c03e59cf30e0fd351aea4a4a4a42b7726d2a51d2bbda3cff6edf876ee8ac5ea66907a923874d17c8a372ccb252fe71d7964d8768862ce08cbeee974f2ee88db5e1115a59e6cf1d93a7bcb7b4758965df65e0ecbb2b3fcd7fa6fe7a2d953fee371d1ec2afff15c34fbca7f3d2e9a4fd2afcff8d1f6f2e25190fb6ab549228e24e24838d0cb0d6dcfbb199429c6a55eab64417b3c526484a8e54b2cf3f22a136dcf4b9dfa71c7fea7a5a5678b2d2f12615911961921c925b9a8884b7d58a2530f8e279dfa6fb3be53bdbea8e7a3a95d9ee5dc2145cc898880cdc553efedfc3f2c31cf8ee2238ca4a19cb68cf993031062c77cb41ae5edae64ecf4d0b7f5c5739611954f8fe57778477786eb447c80456887382f882e6ae488322db7e745db73562cc63acf54b76332a00dbaecc59517915cf4baca8b4617bd9ef2e2918b5e6fbd5874d1eb2c2f12f1549b54ea71db73562cc6424151e9953771957f79cabb3cf578c7fea7c5f3ffc81ca5e52cb1cc7395cc597e871427a78f260ff3d7bbbbfebdf5d94ffe87c5cfffd9711c161f597e85659effd78b3aec5bad3fd92763255329cff995ddf454c499bc4b957a97ea9fa4bd7c7cbd2df3cbe595cca64a76b98acb47ac4dbe6ed7d7fd7a7057d2e5d2fad71e3b92cb86960576eb5d5bf6e0eaa6a4b0ac8a4a4bb3c6b192e6990ab14d4f7d8a733b95db69cab3773228d394af3c1571392967790e6cbeca535f37eb61242d97a97c779a58416af5f5a22ba44edda9b3079cdb2a5f216db83b4decd82aaf244d757ae01eab2b045fa45a5f3c4fbdb82d99f3a6e7c0a8efdcfcba4f9f7a44fb7ac9a79ee9d3d1b6af975e2e5d913ef586d271675fd75e2e5d899fa23b1571a95894fa4e45dcf67208f0d6615b80a408592475eacea748da605b80a48add819be409b172635ef0bc28e6a2370cc3eff3be3ce28fa9b9d87579677a06808a5eb77596039f690f66cd4c17a577673a170075664345af5f1c73c7dd6bb5eaaef85ae7ceb08f6659518c491ddd061d6f1bea4c878bde0478244d3c790089507edff7d59054eb0bf66e5790f6ed98999aba47ec7947ead4ed9d3d9836d4f041c40a1b67ecd20113458b3e22f54dab529fcae8c6f031b2a903bb12d4cbf80482dfe8e9f77ddf08bebc5bd38d515af784743675771a842e4389e95442d23c324a4c3b8653363b144e5d7b7473e7ed7c8ac1b454ececb627b5b69d9d869dddaec2505acfe7a8b2f5da1c4a4ca942d5aa04575f17bc962bbbc070ab2ff9ec5e5fd0d8e424c9aa0bb6f34269bd0b62385221a552e995c76a752efc2a6f2746693dd7fa92cf34ac38dbe5c29a19583844a557bafbc25a295a43abcbb2add257d6756dc559b05a5abbb4974f34be1e536363fa04bf1009d8f370002e9a7db43a1d174a7be2a835bcb489d65e86758e1fd4f7033b1b26ba630248433af8d59b6ee679ae345c23181db9feb97b26afc1ec752831b3bc292addcae7e52ee79a9c5d6befb6505af7f12ba903dcd9c7d1c3d1c7b106d9d969f0687832ef3d9629045db5be64b7fbee20dbf33c8ede69a143326a0fffaba989894151f7d5aa04f399e69c73f7853e7a9ee735c7456df876f6daa5a0e7813f02fc830fdff6ce7474d07d28c1de4016ca1fc6d387ef73ef0c01dee0e9d2016ecfc1ed9d23c03bfbd5e008f0ce61f6908c5debacc3c28cf305c525d692c2a2225b41d115990a4b4a4bcc05e5e59cf1301e03a371226352e335e362426bc6a259d5a86848d9a06e4c1ba71b2535947090726c72671c8d3302400c40480373be9aa793757402c036dc01dc80c34b8d13252596a2b282ca585a5e50b495c2cb299d0ab8baa8957d51b2a8c462392525ec3c77bc72c3b72c5e2c452577e86531ed17fea12ae0cae7e5ae05bbe86b677c01037e5e0e515656308a5e992cc32c4bd9d239aac370a999b18165319e8dcb042680dd15d0995dfdda28b8e06b713e61ad181db2802ddf4bee708cbe28babe515923043f4f3c71e517884f5ef7bb2b64cfa4a573b939a35dbd08bf5c6d63f2cbe59be1e5985e038d78e4197d3c3c247706f3eb5eeece58fcba97e4ce50fcba777467a75ff7c8b8b314bffed9eeccc4af7f3bee6cc5af7f3b7786fa752f0b5e18f526df3ca36a43aae14cbf1f3467faf5b042384e5e5a396e5a6a1c3932d2088543281b37522c998f1121b269722aa51a9812b03c0101a2c19e9c8bb2cfc421a993fb6e336654afd5cc65d240994803692012ba629272a2b0c070f986c3d568b969bd9ce0101212dab19761a56ed84011d1a7122c81a929a9e89021363f99e8b95ceea84641f4b141088790c8dd23600f26c2777bc1be9e5117064da5edd7bdd22d5ddfee97a655134db33bdb3dda5d1337c6d9b851038e1c1b0700478e7446f6f588bcb09e8e06d2442e8d27a4a3b8b31a7e5d07ddd98c5fd740ee6c06bfae85ee6ce6d775157746e3d7f5edce6afcba16726734f8753d7467367e5d434144eba0de78443450b5b911d240421ac853d1675fcf351f961697971930313480009199d9a97894baec543cd20987f6cdf176fe4489a5a8aca03fbc1f329d9aa7606e5fc7b4dc8ad572bd4c4e60de0ed7a9e5803d9f47542a4d2527139542a2aae578fae5f1c7a5c9372c23e3ce3ebf3edaee0cf4ebe38e3b0bfdfab833f2e0e971673d7746f2ebe218aacd75718c7a93bdb030d7af8b47d506fbad9de918c5be39673a3ab12fedfcc1ee74c419ed1b8073c4d597eb642853f1e8c85af1c88a47563cb2e291158fac780480af17c579eb3bc75bc7f1d66b78eb37deba8dc7e1288e6023aac06120387cc4918bab2fd66d9e06eb356f9de6adcfaccff0d6676a78219484481778871019424b20b2afcbfceda92fd6697cbd68cc5b87f97ad1196ffde5eb455dde7acbd78bb2bc4f1540ae0f223e427c2e1340f675d9dba2fa621dfd7ad195b7aef2d653de7aecada3bcf5f3eb45ffef8e1f52f0762e0f6f870a3ff6757f0b545facc386b6f593b76ef2d65fb60aebadb7cefa7ad1d5e788783bac0e8ce4bcc85928bc1dfbbaea3f80fad3454beba52444b607922a8675625b27b23f88aa17b6752435f5c53af9d6757deba21572cb3723d90b7b532b4c4ac3b67e9194b77d73779abd40759db875cdda22b63076b832c53b3b250e57ba3da4a222d2026d9dd6dc28eeea1daeb4be536dc27bad77a8a27d7d1cdd3eb82d490beb6ddbd2ba47d246af24ad545fbebc68877d754b48275226852427894e4a4b1fcb378728bfda387ac9f346174b648ee8a0dbef00ceed0d880efa287e8a7397ccf9bcbc683e79490d740b9acef0cc27e914455297f0902ab3ee89271eaa2fd6bf14b64acbed9d298a8a14e7522078760f38578e76e72195c6b1ec7aeec2d30cc61eb31446cf43d5a6e4e3599eb654dd768eeb98c603c93305f5299e296ca7ee91357097dce3191d04cb12af56b03d7a0abbde4ab54d282c954ed35012cad494b3edeb28a16a53f24b22c1d8d67517db8ab91c7097489fc2b6e8e4a7abb4dce299e2213b35e552d3907dbbf43b7bc0b952b5c9a8124b72a1d4f6cb3dd60e822e8a99481eb2dd655ff654e1ca3cb4412fdd26e0a2970115359d29b8536b8730a0ce6ab56ee4daa4330fd517307d4be6885ee2620fd9b33c7842899c336983e5c1133cd68ea38b62cb536c74f214df4c4f3115299e22e529d681ca53dcc4ca53ec635b96a75889bd32625b3795ee2926aa61c80d1b3b31382f4f3117646892a7ddf6ae07cb304d0b0459670a96ab332d57aa335d79ea4c1d459d29bad39579a6313b5dedd399d2ec74955aa0ffc1075bc63eb9c9bb1e4cd3f5bcb75f5fc40a478a52b54559bac94f3e8624ed74dab274b13c9567c6b20ee81a6ddb01957c576960bc4f5febcb0b73b12dde625b377ddd257ff7eb6b9d21c5434adeeef2bdd8d65da6f72108db3e9d63c97fbb7cb9e97f5ea76b9b5e7be94dbba5daa2d45e3ac9c78fa4914e3b0021b6d665e9bf04601a9a98181475af4415ac44e0be647441178da203bae8f5cfa8da68ebfab645cfa27f9e03d7b403c246ecb403c224cd96b6b316bbe7fd831bff9763ddf28a4e89ae06e5f592c7dd596d2e304dce2e3ee8e17fa17f2710da43d1c11388d1c5cff5094467b3e17c0b007d3c8100fffb1596611f3b1d72dc8ea7fcaeb5d58413f6308215c7fb8a53ef6c03d93bc7a9640ef90ce21302dfbb8532ec409c13b7b0dad46a53a4083ca85a186b2cd5b7dd39e8b854f29c1d6b5166cf814ba55cfa0e8cb7bd81ecdf0e8ef7793a9ee978dba367af58688341a0a7a3cf0653e7293d5b500ecacd78eaedd4f034e368789a89643ccd452d609a877a623cbd3b2f4f2fcf89a7b7c706d3d0067a2d919e821b747b03f3f49a3ced66785a6e174f7d830efa7835d633bcfb68b51e7d0435486a936fc19ee52fbf8388206c382f4e842d032714472d7ae8205896e248d23366c87c5c69747cf9151f439bcb41b02c572b57e8f214dd696873791ab3d3d066fad247973e317d1e2259ce4cc40565ea43a497dce4252ff9ccbfd7f8143f7995bf7ee531afe2a62f651ea5e54f1fc1d3093c81997ccb697ccc5d1ef5f778b6e9a99f0805959ee4e46b1f5b74cca36ef22d377de92e0f731211840d07c667bccc5fffb3e2638a9ef1327ff91577f91d447c00f5963f539ee6a17d3d0d83507e519e821b15649e2dd64a853ac1c09ca912d35996ce13a683c1d75618189818528993a5ff6129daae334577c959be6259eb4bcefa6a61d2bb4b6e7ad9572c434bbef22557d9d9255ff1ec92abbec72e794ac963254729f959f22fb9973cf5e9edd925477d9a73bbe466c94f9f8e40bbe495cc89d92567ad2f251fbd1b6fbb74a6a367771259b72816ad761adaf6f5cebfcf3a25c4c975118d3596d208da37c45a94dee7f63dc71dc30e97763f4adbc317b4adf5cfc7fcd5de93db389ee0773428ed06fd7e7e6df66c58d3b1c8be6e1f7cbb73f859177ddf3aa6a77dc31283e01e71db7af7a3f4fc73fb1df882f6063ef7ce8eacd1d876b462879e9e86c0db9e273726caf4e4b6efd7839d5a165bb5b1fedaf63cb9fd6077ca62db75775f69047d2e30c7960d8f3fb6f5d1479d81170dc23496875b1f85308ded71eb634fb579b9f5d107d358c08ff07404da36f578b6f58cc33435b79e89308d0e4ca3e3d6b311a6d1c1ad7b364c9383f3806970b8c1e69e3166d90b49b6f54e8c3acbb9eea8da90dcb6dc82e4e8d64b15caadaf52e608ca6df2746567975bbff6e6865eb9f558b561b9f5947a631a6f9e87a8a7b9e9719cf500f0d507c0f3c36e70031f739e666ff00100004e4a8541b72a879b7e3beb6bf0d5e3f0fc304df8d8a0091f1bec1c4df8d800470df9677c51beb81080fc1f029c5ead37eef65cff0fb5bef810846daf7ccc3a7fcb1e3d1ad4c0f3b3e41ad0e063e287e7976d53fec104e8638947f7123e6ccf5b19b8e5f176064efe4f0e8f1e1e3d39e7c17065f794e69139868ade8cc332cf75e8e890030f339081d0f6dc3c32c7e0edd7995fa50c02726517b58379948f304d0996bb23b582765a6fa50995b2f311510c0e1df27a5bd5c46ccf3fb64752e74759b1485a657afe739b7e04e0364dcfbef23145d256a72d4dd38c65948f2792864291031062a7506ff7ea6d2e69fda3e7ffadfa9f9c1cd6cf0e8a73fee47876d2471449234f5b8e9e1ac951e777d5a3762c41fa1b37bd0d673d0dbe7a1bcf7fb2c9ffb13170d5ffd81e30f031068eea0183938d9bf25493c4201efe0fd64300eed24fbe08c7712c8641cca53431a8af7c4aa821d40d25a4d5da81e1b08cc8907ac48e16fb3ab6e5c43088b990857a692abf6ff15cb4c79da1b46d19bb81b15ba95442a1502dcfe4e5f296e799bc5c2d6f9b4ca6b2e42992567a8aac75db44b1fe07d34300ee9f3f4f3d27264e3ea72b9c8a4e494e61f0f0c7b2a8171916c6c50549c8066e9135d87367a6eda24cd499494445af5fa1d2985cd4224c630e6159923b338d5cf414863a33a3d072ef4c69f099c6a0ac3375d60af53a4f3ea8db890c7b631e21c2b672d77922c3dc31b93087a260a465ee78e60e36773e738765ee588c5af160997964651e29ff676785f3e7e9ef271ebb893952507db9f64c6146c076ea4b2b894ae3fa7f0b895ae3fac9b78ca833944e3d3e271ba6693901645f3fd9a2d8f764cbc9dbd41d91322509954e259bf53fefdfff9c5e82ff0358ba3e4d232f7043f5e59e7c605d5418d8908a5a20a025ec0bdb39cad5179811d5b64fc6a8b224fb448c8adecaa0e268c853cfa7d5d33aa2be5cd7df32a2c25ccfdfe271519e1e17f571a295839f7d3778b676ea8b16650a3b2209c56e46271f4c63ee60b03c89ddc833f5964f6be7a298a6c5e3ca5ae64eab87b95322e6c45cad2f8fdb29490854a14e9bf53f295efa1f1507ffe7f4f07fdecb143fa9bcc37e07cc8b0071628ee22b9e817215f6e66463018d9e814caf6293844eb9a4d4251096c33258177586eb2a0f1b4a79d80d4604ab0226545f62b02ff67594afb5460a63c236724f367b03a3a202990286645f67c18ea4208c0827db49ee4f8a88484298e6440c23291801038824944942252421929026090db1af9748422763eceb204908dce1515fae2391447dd9e1c3819d305ca581ba81a7f55fa9347e144bd76a13833fb59168f1b8339eebad1e7766cfeb644be32dca5a82ee2269da6bb589f9fe07e6f97667e6cec5a2cecc232a9a87308d98c349549a58163576c3b29e3b338d2eea3151676616509ed2c4a0259efa2a0fc18e7c603724f6e6e463618e8009d93b77060b52511109ccf627620ed3c086a8b22ceac951ec86694ec4a8b22cd41324fbfa75d3e8ce4ec2a8e875219a29748036b1af979ca9fbd857897dbd3c733023f6f59298dbab0dfb164f6ba7c5a3d573d1ebe2b77eacf6c9c7deb4685061aeb76cb0afdb93cfbe273914498865ab2fd7f3bb0d7674d17bc2c8b8280ccab4b5b3afa7b0a37dbdb58369ba16cfbeb7711cf1bbf688f5d7dae1ffc09cb5f1abdedce36bfce1a9f183238ac6a0be6867b36dfcde06ffc7fdfb1f987bd94f10cb56447c00369a809fa73349ea4aa5a9e464a2522a157c6d5db15aae97c98b74226ed4f6ba209062ec3068ad63b7dbe27b7211ea6e55cb92be320cded98c5dbd5ba24c75d909b1c1142d79da6d9c9a1baf520f4fd2ebefaeccfaf8d8471f4192367ea7878ef157499a5ed50eb3885801c8ee32ba3bcfa40d2c2256f8c1ee3ab3de99be3420cbaedef58015e313246f06033b187e5f5771575e14776347eac84ec4328cfaa9ce5a2a8af5e92bb4a53322754e7667fab91d3fcf1e7e2ac40eaffbedf2d5a9bb3b7bb8e2c5488682a0be2a41ac044fb5f9fc66a32ba6e982b0ec82e5cad1988e66df2ec91ebd8fa475b92b3f8d87eacbf52e08d3e021dd15c6281283280c9c1486c0b805eddb25d1f900e4f8ceb4b36dcc636dbd7967ddd69db17bb9abdd4f88e3cf070f551cb71a2a62a64075e04df8a88e8da8a1a77808ef549bcfeb5875d555d74a048b0e3a1ec234980813e1a1eebdad43073b177dcca1e3500cbb1d8ea0a831112eeabedbe1088a788b1abc5b872328823e5a1d6ab7ffa347f0db637eecdf9bb6e723f670e715d5972b851487123546c47c43a063b8185e18fbe223448ab0114c74d1ebdd997e3d1bfb84375ca2685ffdb97e9074fd243d8aa0eb0fbf51b466c9cd2f516e7eca3c95946ebea9742a515ddaca4d9e65f23093978be526df5abd5c4e537957f953e5519594d8e92a8ff22931190c8bc37c4b8cc33c0d98192f2d0ef32e2c335e646a6a78cdcfd0e0356f5343339bf19a9fa106cdec66dbf0fd37707c3f00760e1c377c7f0d3672e0a07dc5bae21a854e895dbde3a9363a3608988a5d1d0b559b1a1252d8d56f51b5c9f17a8f18b1abdf9d6a43c344986257b741dd0bc0d8d513506db2d7d406c04bec632669eef8451f3dfca47b9fbea4e91f59b31b93a2e3973948d24c0f7532a8e2e0974a07ff0496c0941cfc1a951218ed79322897791bef321f9361a56cb8ccdf40b152dbbbc1e1377fd2e2375fe32647ebc46ffe05478ed66802739367597193474d524e1637791458ca4952995cf5ae1957fd0cd56be572d5cf4caf55d5d9aef39fcc753e7410f4f0739d1f5d246b766f1f3b3d9234d0c7da27e3e29b945cfc12951b13171f4646e50683993c39f9291c4efe8b5c99524e3eebb432a932c9e5a4ffd349cf428add78277d0e57ec86a9f5a34e5c3f4cdb2851aebf5563a3acba9635edb57712f4da9b2e8efa929f8f64cd6e4cbad77e744dd63a4d92b44f95e3a1283ee9c6c537116548928baf12ca90a28fb594d5b8ec4f2997fd4a862a4f2e7b1b35a872570ce3f84b5c8e9f854da512c78f03c654aa6ff7288e244df49c075d93fa92db4952e539ff9548daf612cddd747f9989fbab3839cadcffc624471d5bf3b1f632255efb9a1a0c49c66b5f0a6148ba96393e6a9256f39cc73e92da92db73de9d246b76e7f848d297d44e22b1e7bcca4b64cdee9a8f9d2e499af692acd9ade36335752613bed604923ccf716be20e808fb5a4f968499ae8b437c9d0694ffa1d1d771a93a6d35e26fa0876ee9134fe71939ee7cff1f1a43d127b7e9d7d34f547d6dc446990ccf1fc3a1e49abd13a2f69fcba7b81e923e4d2844358e6840824462106dd19cdaf8b4044a13bab42bc893850f975b1897a03e6449feda9e845881389f8f8f8f8f8f8f8689c6b349d1c2f1cdae1503894825d2073a22903475a487e57ecfbdd3a19af371c4242e4ce6a7e3dc4855edc99caaf874477a6e3d7432377a68bee2ce7c89d6d232dc221f5c6330a87aa8df7b9cc99866490ce344c4286b41194992298037360cef39da37554b866f49d46217ed23da2a2813da14c8904532ba9d1401aa80b9df0f9b1efe9e5c21e49eecc3c22e3ce6efc7a680b7784218f10f48218f5c6c381b96aa303e6c09c11567d7ae788a02744332a6b4a6a30a4924c08f6803d608f8e8a8993e38dccf4703450ccd9fa53612321232321fbb644e32f916ae2cef96e3025384a26ec62794310fa70fbfa8d17d80356f103f4b9b3935f079db8331b7e1d04bab3d2af8351dc19caaf83417726f3eb20903b4bf97550e8ce567e1d64c2f3017dd41bcf07eca9361b2462040af13c0d1492544819f1c664e7c62be3b4abbe1a68e65cce8d578ee5c2a6128e1298ef26f4ddbe9bd02a254395364e35463e46463a2637a20ca9420a77724cb0f6a95ce37263097f698370d2e2ae794635a85669439fc0bc1d6fc7e84b92fb907cb72342eecce5d7bfa13b7bbffe11b9b31c7efdc3ddd90dbffe79716731bffe117d46bea20f8b9cfb82d49b9cfb6ed5c6fc6e3998863ba558a61589e3958932910a87cbf13c1913981b15b154926f3805cced6f74504716d6526027da46d942d518793b464626cb498addc8f12ed50b07b932b152271c0e874b4aa2ca0d8c898c9090502d94e9803e7efbc811ede137ed30ecf6be66a36a53226e1d0d6472cd562fd5cc8c261009ed1b9708d8085ef49ac4a83779c8c25cb0ceac57d775963dd0673909758b7dfd769187eccde8825189dcc56804b46f396454c2e463b4afdbe4aec35fb24d3e9826b57365d7533d40fb7a0abbef34855b610c49d9523b5aaedbbe7e32a49e0c559bec3047a8181ec689144ec0384fba7011d9d75d3797903b1bba335c7aa0f7ddce6f0232f95cf49a9cb8e8f594cde4b3afa76ca99d7d61b6cf7aa651b5b9551beda3e721b506d2494f3317dbbab5a7d78365e4ef9022145dff0e297ef0c1965184e3903efe8e1dc7211de3fc200fa0cd66c321a292469b3d47dbf815c7039d7c226038647ed03d91885a461965e4483e66fd43f2f1ebf047ca9e4f1fbedd39f83fdac7df719cd149e4e83b8ea3bddde5205e8fb5f5bb24cdf3ef4bb6d78369465b95dd9e74b4793da36d039dfb4e475b570a23c8be463b1d6d3d25fb3b4b4631284f432a0d36e234546d3e17129a620a1de8a089267cf8504209bdd3f2b6af97b73b13520edd59e7f73bbdceb485377ce28a9bd010908059d872d6da7bb3f891054fd775397f437cdf0782594461c50e1645711cad980126ada041ad2778511c06a106156352572c7a76da39e0521183dbb65c183b243cf10450cc102441448c5cb4864d723b0f14adb51aa840c522a626878e0e0920e2851123b3d46067adbdf708313539747420e245c763961aecba4e035d0572cec050bdd5c4dc7878ecd423a0810a64200b108db9b3b434573a2e3336840421c24266a9bfef03c195590e295a99a5288ae238be56a616776745922489b4da22b541dbeee062a79568571349b3d624ab2fd74d64cdc6f0f96810a2edb2185a6d8a50d14504a858c2ae18d75c8a67ec8c50fdad0ac05ae407433bedb298c2ee4870adbde268a7ba64992ba131acb5f762b12344865a5f3091510365b7eb8da7a48132ef7ae3f1d95665c4026785165614f1c118636cd2d5963788e200ab97a96c410edde0452f127c1441021012848a307204fc03a022b723fbb56a2b0ed203e40a3bc8ce4e41231d902cd4203cd80e0802540448929b75d7755dced5084819beef0343eb8321520b742d0284202040a17b566411208023a908902a0401b25310084aa821491a49922452dd010218a513c60e081e5550e48644e773ebd93503f1a0c80d4811a41016e10a6291db16457c7054e416a4c88d08bb5e140cc3d08ad616f9015191db17febd60ec7c8071073b3179b95aac952a85324f25a6b24422f52886e0e7e50e5f23d648d77d4218edc55df63e3014474dd6529b4a4c253b42f091c42e21adb52527d0c70edb23866d921877d8bb0ee31afc00bb804aa152381f3518af9052a554b82586209ba05aa95641b26002ae87c8ae2bd68a85841f24c620ac16ab85f3b1039c0f1ff4b45c2dd750165ed8d6f513424580e044d9e3d25a6bed7a3d6104f6d81e23762d954a259393a32f9cc04e603e92a0472b80f665778a1c410865deb508185fe8c28039cc6d69778a1c81081d1476757d3a9d4efe3d9d9904140a85faf30768b442a552a94e1450ff80c562b1506242330072b95cae588a50879b810d524ab850595159390d019656ac68180c065b41c1224390012a43653819f400820c1703287665d1282828282c2da34f4a4a4a4a8b0baef687a8c3c54009176d63b0e365c6cb8ca32b7c70b1ad83f609a023d747336066c07843803ec098c10b606260624a23313462686001860fd5aeb81e47a0214343a6078b8ddd0a2df1828d3b239c0c8a50cad49021c71a5d49d4230735666ad4008d7018d7c3c7ae331a0606066666e68923b0870b68d0a0416386199e18027b0c318281a68686465b8b93019092233534d4d4105181edd4050d3634d0a07725a2021be872d72b9ec002f00a23550829c2c612b2b9b121c71b6dbf7a25737db9403b58d080673514832c6cfc73845b820560d08d8d9b9b2788ae5822086efeb071c3868d1cd876aaeb153e9c70c512437449dcd035dcb841d2f277b8277676aa713e4adc4f112bc42002ea09324619dbbaae0e282bae891d5658615f0c0315ec5a83beb9b9b9a9a18614121cfac68d1b3770e0407d8103078e10479723c78fd04ef5c6bd2009bb5ed40e40c8d8f5408f371ef5ac5c8cf5420185755d6d5418635cae5bebf7de1b0b41b7af69addf7bafb57e5f49c66aed17f4e3bbff425c6b6730f2f0e8a13fb06f0986a0dbd6b449b85dd761ecdda71d1465f70559218cbf0f638c31b86d144a6b31c6da92dd45edbd8e31f61cf8de1702975b94d69e2ba35105aa118f1d1d627a88e101e2a235c9b646ba1d94d6ed99e40341fb3a26736c0980b04970f5a823c288c4e8c890909b13d6c7feb036324a505f8cf05033136396faded8bef7f650874eec822078525b032bc4b504188f921c91b1e35e6c79e4c61a94d5346233e6b18bd695592a55b47413bed694ad3d493a284d6db22693a966bbed89c96b2269a605029df82953fd4499aecc320765e744996af0f372aba4e43b8166891a6bea5af03e2ab562b5ba96672d0ecab453e97859ad58ad96cbf57a99989c9cc060ee259255ead7aa745997a9d57aadccd3cbe49a989c5caed7cbc4ac301886c12ecc82a45488d78bac591392167bd1ace3f3e404067307ff41b3d49f973b15157c6d68038c72516c7df718b36cfd7f6ad24e9420fecf130525164b998971293508d6b27641d9e7bd4e1312e5848cbd764d2169292adac9950eafdc9515bb52431414b27663b1949aadd5a4e99595952913a28a2ac49600dddf4315b2aded6e50d68bd633d5bba5765db08b8b8bcbb595d444ae9f42d25e655c49c149aaacd42e6a51b4762b2b282a8ba1b190b5bb7db0653c5a5f744b8b066b77772f9eb5260d95b1581616969a5b5ccc72e6da8a4794d652ca5c5c585e5ec8da6d9931c30506e625266686ae6f3d992c23d3c9c8c8e06b6564646ae942d274186a215df40c9266be6a09d3cd2069f6c845abcf206b765b18181a3464646ad4989989d933cc309b99349a0a43c6c4681a3464ac4ced64482d43d2569d4f59c3d62b43d24add83fe1992a6dd9ea54d7bb833cc686a481a0db69626ad860dca54ef5b6295949918caf933330e9b9999993931999979b96666aea5318317563d8cd8730fe30d3b61b4f676185bc7f6d4d9abd6cb5d79c4a8c808d1877d566609ae90e48c8e1419d9d52bda151361259429f662574cb29ee362dc6ad3caaeebde768eb7284bb744d65ebb349d4a4ea6f2743a9d4e2c122a8bb1c652d40664571fa7a8b35bc7a06a637a0dc1d8d545a26a53528baa7b05f2765c2032925c9a0c54c51276f5dc45bdc9556031a4cef2eda25ed419caab672256f55c74f2ead9c8e4d533aeda905e3d0f559b95d75cc6ed888a3c3485910e8a9ac83e94d8d5b31195260fd1784954dbaede8d5169bc1d8f89ea5595d79457345dd9f5f313af9e526f442416e63af634586d44af3e8e23c65d97415389a9f44ad24acf71c7db7d15f1db11ffdd62c9c68f37eb7fdc61dfdaf10c84695a3daecc891f4030db74b6782eca05ecc83aecc8bf2449244d7bb74190a4e95289a469cfb90afce35344059317cb659e6c4feb0bc71253e9a72416c61cbaa8a9856333892abbb393ed44853a3b1181dde4c57299277b9a46b0538fbd316d162689164086ee0c3645eb3cf5784976ec66268163b72f760b633756ec36c66e66ec76b2d954a6a3faf299bef412f9fd0fac2713c1c42dc08e40d24983ff03f3ec63940533768b6171ca25a612fc87ddb0ccdcb1303e59308a61612af55595fc615b94b564790949437909593aa5b19bb9536461ae973c2dad69f4e3632362559a4327d3e8f473f23911e132a2c2c8c834328db49176f34c41d01c3a0da5484262ce7494c5d6670a5382a7beb4866e403eac6ff1b4784471ed4dcb880a53c5be5e0272447d29dad72b093a0edb123157cbdbacd5bb1f65d53e9ae6bd97f42c477d4a13837a1e32b12f779d294deb4c6350b7a5c9cbd5f2f0f72c144cd9290165e8ce482f0275b9229550cbcf4d9236ba69bdb71b7f69b3fe07060ba0bba8e46a5aab7a9e646a480000000000d316003020140a0985e3799c6561720f14000e638a5a544c589408045990a2288ac118a48c32c80002002286d4cc904600fb3847b4294b19e6bb11c3915d89336877244427c008176c207546f0a3fa7f7f000d1fe93a579733167e455d4be367a25d52db5928873d37be7ab0483b71dae1ff25fd407f7b37d1e046a35a7173419e6d26e720c999ed159cb100263ffe332c53d127486b427ed166fce2b3e59150e2f9a06e126a9b7a91e4ca5040d29aad095d8c0b1a5fe4e7bb6a2cd34505d801c12e23d6a0ffda63aea645ea1d2ed42cc0ec1ef269dab03908eaec0d8661e78b415e51f9406a36175d1168872e3f0595e70c5f3bc908b98efcf3f12bf2ff49012a493578813438f573d91575abcfb573c174c0ee7620cb7428742a5517fbb62aff1db070316571cd53967ccd2f1b23c92c0b465081a2399393dd0d1574223009a6d0c44462ce25be2c986d10a0947a72630f9e464d39449bc078caef0bde81490ab92a887bf7dfc71f5f31ce4b8046af308f78b132ff3ce2063d77c5b814db20876ce2ff5b1c52f70cd17031b386522e7a2fc962b7ec2235448e79422fa44844d4ffeda66757d72a328ef39f9c94a0a745dc7f3c86637115060340168a53ea659ec872e57989cdd68d4ef5ff336addc8aaeb53522a5f28ebbf3d551aa022b3c07e378a5b05f8bc920a7bfb8e5bf922d61f4159accea187e5f1dd2f318f51a6f99bcc9a56130cab2f066032b18b46b92f8e74a84f2682314acf53aa1b3cf8e43b52ccddf37184a0b3166b01526452291a6632973e480cf7c5616ce9cd1bc7b1be9009de41ccc56f7d8e87ed315707dcd98c008fc242aa122bdb39e8729165af87e21012e2732ad0253330351bf76f8c0a72c323501bc9d79d921c170c2ef353facbadfff2c331cba3530223ff668250daf45fbb65ad52a6432d1d5bf2388509f4d4624e5a89df88b83d13281171f1ac210cc6a310e70f4011d16fdf10ae070941cedc625c25099a91a3f4351442af56976853868008a71023c488266aef4bccbea72ded1e8694a609614c172593aee99dee07616601ea8cd3c4b887022752d8cc623f75cc6a0f27b02dbac4242745e4243bb135ce42b317d0efa8a53bdbf7978f84b822df3e3a4c06f84e3de7cb92d1f5a374725110eefcb2d8f338728c9bd30ca483f0e818c4049cb549c8ba249628df3b4913e40a2c025fe1b6e10940d85ae6ae32782d9ed693c459ae97da895fcc1bf896f93f76c7b83ee4592126c01b22aa1022c7b891be9bf68f496741bd4ad54a775b05dddc15b7e6ce4824ade3e8414de3fe62675c3fefc4e83364d238a7de7c9d23cb66a1fbf181cffae4fb68f15750687d1a52a745b49d95818da27e8e86f06f13deea8f26a007a169ae098c403a8616a01938588c3219d5d0b4d0072dff0b88df4b6dfcf8e6e497b496995989c1f22bf6d43d4b4e43d13c2586537f3f2c0acecee04e93783195d5cf7b1fc0c8f322ea3366702b8bed7379a76f57c3628773f310919558ef766c7068394f3c5c0981350b415393f3a14545d5e221495ca7e1b4fa0357952064b3299b99af94217be7c583856a448bc4fa3093313940723401473b9b13226238279c11323f1681e8b0c997375c0c4edd21c58e11fdabb25b62ad281856afa736af23a11690014fbb23610712c46ffff68919cb3cdd00f071e71a8006118912c0894bc4ecde306dd1c527ca80cea2ecd78c0d0c3d0a56c43d6fc6950bcb6bdce93bea75d28fbb7edecdbc57eb10e03720f1447fea6a25553fbc738563013d7d6f723b8a7fb75faab847671086cf684a3415c7f0588d418ea2e9d8cdaeebf4b32a85bb08d0ee2ff9dff5eed400ab3950f87e8d614f662a4f922c36f4432ac6cd513c2f295e346ae6e2d7088d5d2068dc45d336782580e47c5af637b958accd854be8c9076a95db2740634ef1728228e9aaf32bd283187550804a3332b821cda83243260c27d52de87b57337ee11e4d38aaf0e8135ea5d4f4d7c65900117c4ac35649b5e4c45f2c93a1b7d4051fa15f3047b8e48565dd8f7af33a2aa2bdf4c63d7560715c643a2c0bc7fc028fc9a1d4c3e38329f009c3b95949e9fa77f85ebd4f08cd5f70c1a2faffbf8ab2293843cd17eaf503cfe08bee81df51794bb329e3930293c30eeaa4888b4a939e1aa1217211627dd50c50ceaf6e390051c933950bfb6d9193ecdc766da7934dba89b7083a04b77a1e7a594740fdb071d11b79c246fbec465f6500bd74fe1cc6a3afe35676d265679479dd72c586dd45903674ac085bd8fd0a8180d4fdaf68ecb70f223b93e49f74a056ca09a370cd27d60c455ed28d61a03272831c5597a16d5508201d0c174814572ac130fa29722faa3171d92ac46733b022e3f5fb0761114d5b3e860763c8befa4ffeb599d66040d11a26f68f8f188fa2936911a624145a1b13b7db3893a93bae30bd8a6e4b4c1cf85b1d2ae456f3ff1a4901648a5589f9c0d50b3c7aec03a331690abda4e59c4393163d8796506abc015facfe8995bce706b17eb7dc014c512e6a4ae7b106d1fd8cea34d4b4e874de2aca208a22bed7864257da2408793ca026c48a3db18c35c9eef66f2cd2c1b1be9ece9d4970b1d1bd93b7771d403a807e6faaebc7e7463f72197629114faa998e64ba8a15e2748cfd5b4d1645e16082c29dce8171e7b680cfe8840ff9444ca633610574c0be3edea7736145cfed73b64a8006f8689c72c1979c88f91e023148a1ff4fe0e143b4a517c823b7d2df8c5eac51e6434967a1f57a24868e1785394fe4f73458772a83781cf883ba805de2d788215b771907f1536cd1e2c58b52bc58f1a2162d5244f1628a1653b4c8a28b142b5a9ce2c58a16f155330865f0307b4d70d2ea3db7a3419fe60517dcef8acc93c245bb4d7c0e4e85cd6f598a2852468132251452a048418a81f221ff95a11d7ebc4dd70e33f21e3f91d4fd026727c22b2c6425878106e687bf28960c34febcb3b3d786bac3dfe1c20102138f48c7244da5de0492d9f8cad914cb7ef91957e0d753ee4a637931c79c0402a85451c7cf7d356893b10c44812f8992cb263088db55068b8021280fcad78011800eb54722e89777bbfcdda8b86828abb6ec7b045c643415aa0823effd7a7a5999023ca18f8a42479c5642945cdb6730e270c9bcdd7c45b80cafd5bac2ab7e3d53c0745cb76f9990f553b0464701ed042c425c76b170c66dc0e7adbd4beb964e2969efc4da8f4a67a9d64bd15df58d51e950e1c9c9dc0367776ee0b917f403ec93828b557a9046bc4e0b671305b555525d0a67f90477c964ab4c1b81df6448a87a6f0faa3eaac8c8878a0877f92997f13a456dd8771dfa191d1a32bc0b02019bc6414fa375ba1a74bfb2c97c1739ab986ebb504cfa0b48184abb233e3b28c9e424f99ac461a92bea73b3c97344ba610adc126bcd8490d435e273ac37365205d077ef55747a15094eb6b5989474cda5b051c25d184dd7110709bcdf5690e280858ea5c9a2d42d7ea8d3f12e3956f1e022e6939723205c730636b929d904903079bb0e958c9c885d30a37c18550aeb6ae243d5c9e6a1d01d55186e09126b0509f26fd27870d9b57360b712ee5224b11d9427af46949ba6cd653d72d60290c39171fa8244fb9f4af925d9662c60f297b8e1897d4a68933d01a7a3728fc0f5a91989a137d3848c8c3b2b5784fd30c7af4b1d2031dd6ee315800e9b92cd8df2ea9fb8d7b51cc5e8fe1a2901b284630e156c09a24962d03fb2ed50b8ee073b6d9d9e8ca50001de808759ea9e88e98fdfcc4fdfef9c8aeb7ea000d0cf946848404978e6bb6e7e55a5806248a9b81a4dd7450998bc40dceb29296846ca4ab9232a3920c5eb6b30301e8a716630a33c989ca5b46eed1153b09911c8a7ff75d4756505e544b365c6ba2684e13af6e3ed9a5d94c6cb98848729a1d15cb9027cf1201134c98e0e5dc63a310a3e0ce5449bad0d16c5aea1f9935c6b9a593744743042a432bf92158796c25b43771b4e056184b92eaa781414289a3304f1b812f823132b0a8d246db5a9a029636310ee7693277994b3bd6cd366e9dac9b35fac3eb29611913e0d0d9503a38e31357653ebd374011067ae492aced25e799a28d0ebe5328dedf588c9740d35f05f1f68a298f23482a5d88ae8780b4d33851e96c534a0e92bf26ebdd03b05ff5aeca0a01003690eb2325887c2781a93a0d0ac4c74de57587de0630f6d7506e40ac71d60e6a663d945791342ab8a697fa39a086b339251a328d171ee07fc7a0498829d0331114d68e541dc49727fe83acaa20c8b58cffe7d9547657e087c47c09954156667069b2b624dbc97377a050989a994c178fc9a59ae501d1e1e2b95ce9cbc11451460608eda71ba04913705b1f68e1a2148a888fd3d559a68a1214d97c94029cc91aee8d884a9180f04b08a066b5a58966720090ab682f11841b6027488d6bc9bba1582ff8c55e198a049ff1fe72dd4d4ce29658efd8029c43b4710960154bbe8a3ec85f7e6df3e436675840921c185af00cc50ca15755a75885a82004a55c47d8989b759eeff814cc311488f1a60820a0d97d32e6d50250f97cd24c0b5f952a8a3629a1dfba9311319edbfa15bb80d80f24b21982e0a6ff00125c7f68dcb5fb5ba75389a67044c70825ced2c22c1377999d453324795d1c485b72d7dcd3b6057ea37fc0ebb9684a4ac2179681e481884fe1ea635df17812857bd50dbf6977566feec755b0240f242c89b305de1bc079e8dfea1280939d10559864bf222489a5269583441e446775087d431d46bb39ac35e9c56213ea52f6c548804bfa1dd3655d88802f2289a224da85f39fa77338cb0fc6a0e09523a182edd5247b1580881aa14db27e4664e91748cec938452c172a1bd11846962b47cc353a43b30ce11fbd9cd38aae9c1c498369bb5e958adaa213ad9021c452375a09dc85690d3133aed7495a0b90641a1c51a27958f4e4731ad9d09656eca63695f3f7f3b71a75e7bcdf456268747e94c992b807fcd4f1aa3189ab56ffd76b33a5556c31d2d89f5780c2b00aa08df661ac7cb25072dabd6bfcd9cabe434dff87017009316a7e463e1d805608694dff55655208c984307719303850e006e0987027dd7c0481c8115be6d1931e1488d6f8b3931aaedbd2df26d611bda72a3440084890163d154a1da1cf02c9a552ec11b86ca8b42a6e1a7447b12dd169f84911b26fcb09a025f1937cc973471247fdba65f00c7bb4fb6f1d9191da9e49d19a4757ef80445f0319d1a2b424725f9d2df4e5a72fc915b005649b24b650e0233b93c01cdfc2e167c6f825ff987eb9f1f3b119e15611226a51b51b28d11c44098f8e0a1951c9653e06d53d2c88248280f1007d81c6bb0271f2f1286666d329802b505ecc5789fca4f2898de1dacafd4561ddf93573f1bfa7682ea4f93619452a2b908c3b994bdfda6e9279fc8fb8b5c304a7ea8eafdcb9ea6004a299fe09f5f01f5a1b0ed986f0aa107844366d9dfa35fdf4cccec48899745f26c2c33f775e72a609036902c42e74cc41acbbbaa89b9c091f2c6ffeef833fe9508d521091f1eff6c0ee0c6c2f8c9f14c81f5f8a56a554516790d646442f3982eca46906a662e882970e6eaec8a1e299e02647325f4a1a70c02f68bbb07b67362ed2c80d26284cd8a9140dfbb88d723e093aa580205fa35d546d1f51011b1d8e3f2d4ac905ceec59e0c5e9f709a6a280c5e01b2b4780dbe69b71a059bb8ae1e53f8848e089704ed833df7c1b82db2fc94f5b9b8fec7bcb45e9fafeeba5fac47330d035b5a00aa091e4790642bc84bd74d98de619fc9540a16c88c36c349d23c01191437dae431fbb3630ac71f61f35e494e4a34bcf509a37cd5503f65442cfa99df9f1c74a04acfe4315a52f77e25c1ebd6ff7048891bd72e8e96284ab68c1f72355526b6bb16629b5b62082a28a50c10ed4cc8b41e1c621fc2850e734aa07433702beb5cea4a3a87d6a0ca36a070d0e10c59f3e382feed18e50438c2225663196481d27a5e1cdaaf5eabd4296319a7a4dddd0175f098782d33ff89490cc3ce48e6948ab5d5c75f4770b648d4d4eb70a31803732897854c738bbee40c7dbc6c1c65af207a2adc27e63e6a7630825df7de756c7e6e0c657b48550fd41ab07ec0a7bbd37a2986f5a7fca103228d71dc0dd898676dd205c29a5e6e58e4ebac94f002b346c802852c92e49f82fc9e363ab5b3bc3257ae23442b2fd0eab7cd32a7f195fcc7c478d6333d35fc3674ecd88c4818386bab7c624fd086160e994de3c15a9403f1611807313aec549ff2ef83dca12c4bc10328aa9f1a354d4c99844d6614df4106afead7b863a7af4ecae359f6261b1c5a58c47aef133e00f7b4685e896e11f713506699bd19c6a701df7e545048f52916410184e04c48a8d231ebf2c44c50c9160de01af1bd19d6aa84f29d69c7ec0b9fd15cfcb90a35ef76f6ad2fa55e46f937b0311c80fb6d1906a57f108a057c4bd2257b4a07059f2e52ac50ace47ce7702c99e791f83ab4507a164d532532557b41664e2866d8d0e182f4178f2782595d29b91d642448077a3c0b33cfabf2cd4d34323aba30a2f2690d25004d359a2187e53abc86f7243ee12177a9871d585fdb12a77b19fa39ed1e7d2ae6110da83f2ba415e5fdb1148280a99880859405e99543eafb08eda96fa3ab521f690ed8a4b9f662c62c52d16289b69e26354f671de5964542d2be06c31a35ac03d5317ad29e8d40b3b64dc5c8b6c0b4533277407aeaf814655f3006b9db86b33f87ec790a7f024283f158dddb8fc6176bf147c3fc87242e3a2fa93621796ddad3fda79544a559fa4d839cc836fda11d26e749e3054395faad93d12ac8481e4f89903414072d83d9f6f9a4d87d0729c669deaa004b1823b05f42963bd5025f8636d346162a8fd79e175f9bd3e8fdf6b9fca363b05c182bbd87a9996831d544248f3fa678e4477ac1bf01d2df8e4c80999136f1bba660ad29706671e8583322c150b68f87e4bd1bfc715d5d9ceb6229b204e1999b2bcef232c4d9595cec5fc023c8925a74cbc9b6695f30f8a3ebd3c5afbb2c2f2ef86c20bbd50d998794ba38eaa0599b251ce61bc579fb8f20aca9bb6ecbe096afdcb2ba1f657f75fbfb1267aca8f9de2fd6570471b0d5cd5be928d95fb2b154107c51b5e02468a763708080055117e1bba65e285988b01db10da89b0f11ca4a9df61b73a53b1838abc14b118720e30cda342dbc9cc9c1ed2baafff5a1956e599fd9cc071135c84ad1b8134b06da978a1565f0dc214f9dc25b2cbd0a7f832c789b30a3de0bebb348641b317ada0af5e15b8b2db6accd7b45c57c466a82445a72ecfab87fb7fbb0eb9bb7c943d17542413ffc041fc358179b9073453b23716c19e09811a00f8177cba81a49baad6a198b9e41e6600dd10b65d5d5e56573bbc992c0954716945c91b47918350c46d1aa3675642e665ed917f64054f4353e16d4ca02a865c9c989baad9615363e1ef6d0b6339ddab55f9e116a8c2d59e793a3898fac22995faba046fbc4b58a65b34b0270bfadecf8721ae9c796d1d1c2afe46e115328fff7377dddb67a880cc3dac2e7496f04f80d916dc704d42fecea7e22178aa7fe04dd01a6b8c437e3cb7022429cc0ca8689c7ce588a43b7114882f21d1559227208dc67ccd3c630045821ccbe446da38bec12d05376c1981a0bb3482bab3ee485278e994503508d2dc4cdda80625b33e2ea284033d361d5509fcf1ed64f22934c615049af63f3c9febe601cf21069689f6fdc3405e974b15d8116a51dc30817bd47055b5988614c26f6d11e4c6635a3d6d69f704992e304f14c90feba6f2598d902a9afabac9a00cb05e22cb02fe0cf26a5ff7290c5aa73c0a54fc07697a17b053934857806091dc227d44aad940ea50699b00e3eb214e2b423c97689d63b1e66cb16c40310b63834cf72598bfe36aebca683a7340067349fa6a8b1bb7d397755653cf86f9d2c36a04fd361068039e886b070ad8509b193ef8ae8847412be536c1015214218c43a2181cfee88c9c869e9e7b3f31967d5cefafd7e9ab3f1ce1bf2705937c9d46002897320c8d89f7ee8613629f33a42b7ccc792377e58617647adcc679af3f5997ac49b9ab9aba7450a3a3f7a22f44fb781db5e6d8d6aea0ede4ce2ccd2e8c44e3a56b87e07803be83c0690ce65d8d39b283213c257edcfb13e2f752b722abcdeebfd5c8ee3a4859cbf0643df3058d2f879206ff175c4424a0c54d22076f71e1254f99ebee318fc83ffa3600295031db01f65c6baf3ba009c4ab0118e062804cd03b5a47c6740b24e0129bb7a27ed7992e6e9f421f49a965fa79717d254cfaa21636516dbac47406a3b5ac8e2aed5a88f5e174bb60146a2b402f1a5e3f9c24cd2ac07bc6a27dbb26d9d4af9f4ce4b8a8e9d3cffe7806a1653064ba366dddeafab8b644e4c693f7dbadc6da959e255ef3325591d8f54d5f728903f1199649062e9f4c7a2a170d0824c822e80ca8116edc18a1068494ff538ed595e72052e1dd74621238462296a7dadbbcc17955ab947f979388bb5cfcaaa59f8e5a88ae61909ea88d112802f19d6d92fc17b887c05dcc24cdaa8abdcc003bac1388be7ad407f6bb62110e145a9a83a71f4d486e8a8fe8ca03a22e39ab28b974e91a4158d42bfd9af76a70bea900c81e37eeb206d3f65d6ff8aecf0743c446aa6ffb515e7a34ffb2a19420206841546ede95e0df80e20d9aea88084d3a646208ecfb75e66749a1b2811599c2f32736b0fdc94f449bd134a5d88c556c0ed7221bb7e0b3e2ce87d4f245c928a8740b5cfa4bf4ef078a51cdc815f245ee99263e3c6e618bda5559a08406eb3d3d9183ab067fa07bbe12682e476cabc8adca7d3f9d2b477ed74cb178354641c8113911a9fb3d43de64c19fdbc1a80ea3cff74138482b6a0c7b460494a585eacfa01071c976bae0186b155690db285f5bc94224e31ae7d19441a96cf6e33a2cf84a9ba8664b219077ccc19bef7e7a21fd9b3d40c4d59b22cc8264e233b168bb6a41af7776d868b6cb46d8f0102671ca2cd5ae854699a6293b852847f6d94370aeba4dc9b3dc3f3d541ba4a3062ac363d831daf2bb99d8c6f47721fe1ad568e1c4bb69d5c1e83c3e00656b681dc04b699d22faa54c16d4927e9784be6acdcb7f9cec3c8a1ba5a68a9e617cebbd30e5781ccf862db295d4fc641b69eebc6f847cb9c26228ebc91fa2fa01155e8369f15f0e4daa9a7025645592d64dc02c764a60a7f7168d501b2893a58d71fa203275611a911aba016ab998bcc5e1670837bf6ab7ad8e77f5ffce6ad4c368a943c6773351adc143d448d18cfa8ba88bbb5fb3a277affb1b3995cab9a4d5c50e83e6666a4228250c7a971ca318ec42fb95aa01ab7fab96706fd1d72468b8d72037b77d426d50109f093e6ff69a832a7a7efe9471af9cb7e22a799d89ac0e19cb0a05b8ba8ea2892aceff52571ea2e201bdaeb3474799814e959df59615c4f8ad0b09ab3412d8b4268c50bff911a495b73f892f7431a5c0e5f0d6158ac532bd6279abb0d95d5c1f06ec52c3ff84f83959dfa10b265a3392cd69f97b0838d2b14fa20b982bc4fe46fbe0f1420c93be0e43a23500a1f3432309ed14946e15d814dc981ed91e135f84c3900c3ee914ddfb5f6b840e7c9f0770a69bc059c749006f7e1e38e0681887dac876ab939b7fab4757ee1eeb140f9a4220379aa254531fdc3e4f21ff54323deb35cf31d8832241240b137384b4d78cdf8261f622f259b0d7af14d8abd126778c6a183b4e06e71218e0b330ca7017fe570a1bee52f914cd142b12b907d0105c934b8b8b9e422d8df52cc45ed0c7301a327f45fb501e33c0a03da859d305b0de4060ffcd82e2598752124d5d431b068db3b1906c50f1a41f407be6e161b8cd21cd47cf3a16dd189a83408ff7406ca609daecb4fed3df3e2db74d16c50df9632307aeb6210b4cf130f82ff63b584cf5f83125718a5f94e2d5db8d0484fb0bf9ea10683cf2a7dba86011b17430bade688736393d49130c2fb6f300d6101b241d8a7c46441ab7a2fa993037d4e2acb79fb574559a91cffa1d7943961a834d80ffcdf246bdc293bc73ee86222a2d749ec15d73b0e10de963d3fadde474cf450296e4fed16d60b2ffd2eec90178072173bc307eb55a256947188a0c49117d5e56163fd84343c75e2c5146a34520d64a8aacaeb1327d75af4aff47c30c1fd9016203cf992951f7c0ca63ac257dc8feca20dc70a5f565233fd62d0b7731ef0638cda256961d921c7552beeb598596bfe622ed4aa2e3566d5d9d09c41f3f7d902288ad88b121c5aa5cdfba142f4ecdbbc6568bb554fccd0c3222fcd90ac5429480537c77e54520585e3c043a4d05e3cf8524168c4b72d59a53ce69e88389549d68d0b2efafe6f4182be0afb1eb9743f06229a5b265ebee5c8aa7d2746e8c11b9d278a27047d7e7f6db368b74e6a92f24d0e1619d01f7fb837a3b117ead832d7af7f22775942056e99c5a855692a1d2e8596c534136d26526229ee1350fa988c87363c88cf619f78ab14bf9f02435a952d43eeb3560a11f403151dc46623abb0fa6b2d20eed9a24c698c6fd85d6d62756ab4f1923855daf96afa9ce61d4a90b8420e22a92efbe59742f01c0d82096f05edd9697ef82900acac99a0ae9a2409f7c460d4811499ecd98077344bc66115975b1bfb02c4488ee7185d3320d4069e5063bba017a89046e265ab74abc8bebf0a3bd5ccb14e159f04aff9d81acd32c438e30fe8fbea04b5e2027db497e66f75823406a3918fce32cfb03ee122012a6611d8865728aa635207ee161bb13eeb2a810bbc7e9b9ca83c1fb772fea1471d8d575b24cabfa8df79ba8ae60dfd41fd05e4ba36c8bc2b52ff1508b08281b0de383769e5603df2bf117cba463d092c67ddb2edb165e00d9fd34de61c1e7b82144feefb1b8cfb622c89d3cdda5d862e462ab1827cf5dcb155c8f9f243dd4d6befe684e191c9b784b49884e17a3b9c4dafb0c456714984b916883c81c893dbef9cbb6c44586f227eec8106ea8230c6ce52588ada552374a9eb5c8d400683de49a47a30972148870b24fd6fd6cbaff0f464e8caf2b3904d327b6ff2084fc1b39f2251d533eb86f583358d55dca176e97231e38b139de63638cfdff550faca74650d553a72b6a0b6e3fa4f8eb288e5922077e69fd36c30d3b9c00f3ed7240e682ef84d914ec43964fa5c136c8e9d63fb714b10033236c193ca4065183841f1afe41435d500a544a6fd953cd89498ec806f6f2c3c1d26cd7182871662da20189f4f8de729856857e27c3c100527cce3fd647202c749b7b368c47169ffcc863acd7b139e3f6da9bdfccc42c682b519f94ad7336255508a36b76505ced0c06403a968b82c63af4c1febd0f9684072d823e9ea8268d92e8b4234906653e1b248e06934134e880929ac223a46c13b1b6c19eca47f01f6a245acfd85206a17f730a23416ba6c923ecdd86088fc3927438e3cd9c81a17d25d92496c889232cff728d1a9d4d1cbdf099e39d5bc9da5cc34e3f2c66179cefc988fd5c7160556cc6683de9f7830a9be7ab63a548e5d97e175668147e66028af4e4216c5e05e653f47674dc111d9c5319dda52d399e467e368a069253a41c0a36f89b916a19f8306f5a833357c06217af248f7caa6fec4891cf06b1a920dcf806bd543d31016d569ddc9497c826da8fd880cb25dfd99eb3db4d387525f7e0488dc64afec2150798fdf2dc9a96bbfdd83cc7c287072ddb875c42bae7a316f1044c15caa97f8768429dc4f5fda20ea46f4bd38c5b17ba788ca53b04cce88596dfd76364cbeae7a6d653d21a2d49414cc569f450c8ad9472015a73b1350c2abd31ede08743dc5291651c7ea472887814606e96be6f90adc3b69b49bb4dc4dc41435b746b1556230299f0c0ef0f83aac66375005f30cf79301bc050bd1354760737ceaeba019aaddb61cdf2c6df4f920a3c184a32e66400d8b418c1cc6a6ee4360ae95beb7d05eb189e2ff230fef882e414b916ef0210fef145d004f21ddf0e1f350fc5f33c059b0105d7304361a5c40fe844686ecbddf2a42dd325b6ccd304151fe64d864876db2174b3f70526c3d032bf9e6292b09678f7bacd776cf7c292265b04df87874ba08adec0d66f58cbf341c64c055a1274d0e728b89639dd4533c4bcc17280be5b45ea9a82f7f0a3602ff2e0f6fef0b782d0d51133f4423a191de70c6f4db168af99fe640c1769bfc9681bc58fe58e3cc6f06193552bf0705210f5ac1a2df88e29780664079001b1305286f9218291850563904cf9338fe9981a86fc029c8572e02c4dfc3ba90d5f5839b52c69b0c6c3b932dc87d7c43e7beb0f5f49f6f1a67101a1445ded8f417cfd30547f5146a33aa174b4a8fe6b1bb0f642bc3fa7a0d63eedf21e99608a666e282289709e87109a3daf078db687e783519afe53787a066b041f923bf7b9af11bb87dd688ff6cf2b2c09a2b4bebf26cb8cd8c410d2d7c612c18cda6b45f260c1bc2bf5521f9c4ded68e9f9e61f51b293750df0658ea805ed9138c2e192fd8fb7488890919ed006e55ad66847715abc813e8773168420a76f502886dae21ecd3cfca77a8870b4e784aef632d2d13c9ddc10ba5a36c818d9713fe6289a53e492f5ff424b449010a600dac41d0c5faa8df1fbd662f4ebe013e7c8937a88a192b405f1d3c6f9c6d6f7eefcfff42f9868c6cf9cea53925620830379eccc761e40eab192f6af854069f2e8fc3a334a41dbce4fd26ad26db932a3f5103cd39bf6e441a9d36aa847c6614fb8792facb7cd664a26af8e9ebae1d2fd0450790104801d169e2041b78eb26dffdccd93799903ef68470c369ccae354c96ebc83ee081d59678b73f9db4a3847402571cb53db0307ec519a701e1f7a8a362abaabce82ea725470eb79886193f0d9558d34fe11f54445f86cfe79d66cfd6e6599acccdbcd19ef7b6c4e640f13f1fab0057b10f20fb04edf6a7287efea949eee613dc50fd7c961d858c5d82fba68447f3e6cdc73ff3220a0d11c68bd836738920116abc15ba1863b354ba6b06deeabbb4765a1de515182a19da7538d0246023e4d0524e3cbda12e86b26e798d0d8a439ad81c7c47ba5fe3b043cd84a836461399d70ce8b211bb589eeb27be5a18c406734dbdfa9c3e7fb4a8490fba681273b2cbe895b0b7e62cd2dfcccce06b6d2510198cbaea4d4cb303b3d9a4a86777b29be841ee00b4edc89ba90d28060405f38ef8a65bb0eba136b435e65c4d304c6005636f733f509ea4e29f7f5c0781115938a3590e124a8c8aa751c50018aeeb147c86dce5da01afef6a5c211f046701aad00a05028152e4cc30f392e87ceb141f9667d440b619642cc264b6e756641d5602830ac37d24731254e5dbb4e71e164388ec4f0f9da772854f799016e952b385ad670c3934e220d8d2877dfe8dc151ded3ccdf010536c2e916dbe0edea044a341c33091d765df3f277e3eef0064b5035f2e822abb5bba90704b82c30e961355e6e362ff584550b77564ed0e674c401b8ab6d655f2233befd67d3382692990b9811cb6499bbad27a800f745b43821142490e3bc43be087e906a720329757527f2b1285b5329c17546848db96c17d52e110a8d5493e6d46aadf0479c0253159ee541281571a98badc28ec4edb02adbe254e07b4a554283884ca5d427133ecfc1e97227d1b4233d9aef839c1020fa4b9896217ab25156d88064c81ca9450fd8918ca7ef425fb07401dadefdb37a5ca28f786dc92e764b6d09fb9f01568cc1d7771f37587f76c2440612d21536113df6a0e8cff6e2276b0143849163c13c368864a3e0978b7379d3d792bd333dd708b685d752335d11c186652f97fee5b18768cc82d9892b4c386b0547d2a2b6036be925ec7d855f223cc8b9db3b73cbbc2f61d8acda72ebca554f59a4f437df8e12b673827a61595c06c896153016e933cd1288d02879d65bb80db2993d6bfaf902bdc08c030c4a45bd76ffa24fb39a918161c728b89ebbfca4dde9dcc7daf12f700df6c103da516bccfde0160409e145ce6a4835a5b6ae6af691cf5e8a82805027a2469e9e045425bd51fd55ac661fb5c4d0d51d843a9586aae394be6c2c542ac60b5d781379ca281698d2610151429f514a08f0ef02afa1afd8458d5b7482ee244da965472e94970176440d2bbe9985e269dbe9ea732920f6d152a99bcbcffab6b4f034ed60c092a14afdeaf38e5c711296ac874de5c56f57cfe162954fbb39746bb79cd127e925facae9272edffa5cdd2a8d601fdb1b7b990da4e53422062bfe7c13fa61a6ba3c27859cc970304bd9f89c825ef3b42e6ffe1c569d90e5df3e4ae5d3040b664a7916a5f555a81bc2c7cc3c04270c02572f76eccf1845e5da0e9306595c9a5b4ea0b43e73d4f6cd3574ee7acb9108e9dc5a26c7bdfe12e76537303702a7e14bc4fb2c0bc77e31cf0febf9b8361778da2257d8c27ba8cbcec43e6a944bcb39637b0309666abc3c9cf3f141a9d0da52fd9ef6e18042a95014005946f6488b2c62175e045d00cfd544722a6cf808248e24573b48355b5dc1873c48ab8e4261ad32d00c10b49a6ff081ca3ba1498e5f66583e0fdcb59c64addedc52f9bfec6d00f9441fd2653c44e63383231a745550184bc6414cd6dd92f14cebb4386f290081859a203341f37ae7ef75a9b49f4b7cc904aaa1c688ee83b4033cd95edd34a47932cb2f77f7bd8d3d3a93b8280836fb9258c4529c19cdb2dcd1b7809fbd9adea37603ef48bb273b1c270155956dcee6519f54d8f9b508af200328e86b903526035e3864c038451db6d921433136a6fd800608fb81bfa83a30223009e6f1522b7ebfcb2f6e76594c50cc5d2a8a114924758477406c7dcc65b3c44967a5f5b80d846fde5a922cbea1ca2fd7e6ffc4a1f1e1d5c6fc8d0c997f562bade633072d4f4fa4e4643aaa081c164ecd3b130d9dc4d190399c1ab2fd5643c61cc66864f4cbc46f3a329ac9c16ca8cc6443fdbd1f3bd5a8002ff44d87b086d07a6b68b70c073f98da50c3713304376474dda21b49166ac3280540b72ade2f8a7449cbce2b54b60d956430abf9ab501560f9333b53ef6f28794c5a56ac42da8b7f59b5e72df0bffadc493dd1d72fabbff8c0301db623a8c94d48867188b87ed13ade7e1d7ba885e3729da38ba42261186bb780ba95647f59965b20a169eeedc5b6a2c0d818581b3a1404ec8e7199d4ee62f6b19d1dfc9c9e8b5befe0c85b60bf6bc6de1f0bf794bf57851d4a185901ee0f96d1c1bf868e0a98fb40fa74ec20447b5400d2fbf33482ecd681606a4cd5320d5a302f1fa8f09e4870934bfe61ed893d81392035c848296e19a53d21024ae41161d0f3d238d7856a4b20a46383cbf18d8e9aa87806db7ddd083862402dbdf07b3cf09544ef39e00f1d4c3cc5408769e6906a9c6c264d3412eff94b2ee7f5791d359e03e3d673a4b49d6756455b40a5301e552ef7f90d9926a32f71f014aa6579642de1d64136abc6b5d4819bf98c869537eee90deb65da9a013ba16588bc629e6c8cc25ed83cb4631e52e34e30a9ceafc41caa8813fd167ba8b85b3bc7cb3af40b337997f1f4895e1cc4d64a657302365e59c90ee5a22ccca7930151d1082c10760ffe9ca98fc6db4c2566c95d19f68068bcba17c780eaba5b41842de69cb0d119cfb2366e4c6ee62b86946f0d3e9b201443a65084de1aade63271aee36da013b7467c490cd425d246141518c15cdd88fa20bb50ed8656483d556830504a342200175950704d5981435935a43e2cf3e98cd78791bc0eff1a21f57cafcd82695f4216aa710f8cbde017ac23d352e302624add1b3470bb6b479e7ad2350be3abbfbcb34a67db92c91cdf2ad5f0f5e2c6a2fb6f9366d63aee646b3ca2a537a98523b1a9179b3bd336e25f197f6a5977ce536ba3d261c92e9b469e083520457c3be74cd0540860b1776e6c2715e42e3bbcae84f6d382e5e2c16fac605fd4b869b3b95db2901c450f9c9e47c503ff0dd51e994d1b4e8614cb1c937d52fd602d908f434cc11f211aef7de4b644bb95dea7a0c80371e5a8cad63b5bd80d373588c2aed131d81ddf11eee2e36ad0563472aea2535a72c30037e6eb78fe9fa968215d4a116406f042ee6c9091b53f4ccbd7e697ec049a410326f5d2059a2e7bf28b1232784266b4274f31e0aa80206d6ec2255d3b6c52a2c87e441c5303ceca27ae814863bf123fa5861a9833afafa014b702f8490feab9f91e490af0ad4ca6550532700411524e1826b3a0aefd03618c417114c8e07500de05cc400d0aadd1acb2d58caf122641b6d2f6e5463973a6f7a0003b703b05afbc727e3a036ff06b9d3debbec30fd3d9c17f26c96b9b368a101d57b63d4f2b657a9f5c95167294f4bcb9bf7bbaa6e6b1e79ccdd985eb8bb54d8d648d77a4dd34be43781d6c5d952ae6d540cc53cb6f6314896c7a3925b1edac99ade652692af9e6260c2990290c60f42cef11d6e5a161b393ec8241f3f8eef9b427015e8b150d1f7f1a6cf91e6a9a07780b3312e8c7f5e4fd04dea218fce45fab0e06f6538ba60ccc0c249eec893d7009e67df713d17f1650f24af42bbd480bc66b83a1343d4594b4bbb30dd970e198f5bc92bbcb84510dd71acdd84906200f24cdfa7d0857dedd14d880529aca6ff7c5715e50cf0f54d5e0a73f4bf1d720b9d4e736613d8fe5cabdb0f1a798827b25f20f8133107c20ce7e6695fe298a6e769540439218a1bf194c1caf7d221094710b0b29e0938399845518b980a0016c58a80a1a958faef02e6dc4f8652e31a5eab97963761ca0e381ca1fb5546859c499da3099f717106c79bf363ff33b51e5517a3ab27fda8de363f43f048554ef8437aec3d51a93c2065d3f61568347a2a7fc6a4478b04bbd33598140b200d6d8735e2e85006c34ef34c7209c385e36409c90018793bab9db528887ebdde9347a4dd951d822d89f176ca92008824997f70a70a3f5a156e993d58e65424f4835a676c5ff24c2d9d236813d4fc13058305374c36ffaa6801f0b469a890ef30cad842af3e89b0d959f344557c7bde9db99b66ee8ffd40869b0d76706abb1e95d4d5181c9945f99c5bf26d0194533132616841d7429a2d8df1fcb64e1a78a4d6ff8d9038e0e1d805f7c26579ee90481fb4bf9d10b738a97141fd35fdde6482392cf662bef8cf957da60450eb14aae6a36ddfec5bb982dca47d1fb259bb1a9cc58adf7e3ecf865d8bd767cebc0bd15953a01f0b8827b2ef81b01fdadb1ba119757b0339689db2f486ce706070abf02d3ce8deae60402068699da879102d5dfb90fcdf11cab8aa4a98f0989eac9e0962069f3566176b3f28732c8ccf7eff5d214f802a3944ad0b9bdafb09213f69f89f41f2554b87b0eccd0e10033fdbb2cefb53b9de7c4798ecc9d4679db8399aaa069c7b7c9a2d9cdcb203dd11e6ba4e7cb69215d6d8924081ffd673a73a3f29d052927fcb50d18dc6174d68df259591efd2025b3dc8564a2bdf60c0dbb6548949dbe8e3c2864c8246440e6fdab8622e29f142c541d01a1e4a90ae65190137f9e4035205f827e2dc1208a8f7485d2a11132d1c7f5df5c3e6b68ff2b784a468bb4c33690cf892687036a4237071a67363daee7ecdcc78c3d20143154f9b102744e33c116692d6109b0cb8994eb741412071deeb27e8316e8a66f6930eaba7e844aa6f87e85f19c3863a287b96a127c1f025964583ae79595a80cdf18ce2b689c0f1f49d15e7110bff102129611afbc91782e4d86148dd8b8195109825648ca3dbd9aeecc8d87efeb502220d3ac0db227d5e0f538036be950cd0130f41866d784337174292f1a22be9b3a0bf8b377a69f12fdff2072ffd8b8e4cddf34dc0e2738ad69991404271278eac3c92fae84ae36aae8e730590a641a38814507d0ec047d4ada60bcde98a98109b70d82e1b1d724bf589556538d736106b9ade54ae48487f476426f5936fe01d2127420eb2baf45dcb3da9fb993d6af147a853b65b812fdc51ef2e460d1444f8919d5a20279339a90a83ca5d06f325b917eb7ebd6eba86f4d624faa689ef8ff3e77236b5cf4194d0eadde0eeffbe2797388df0170d1f3b8c36c4332eaa4097af001699d50d060fdeb948cb2e0d49317b38a29f335d33f69dd2263a91a8944ea324b6c47ed4dff3d502683eb8237d3fe3f8c50ed644166713ae686a49ad6af0e27ec8e584c1363bc6325d22a607ee1e84a72a4ea65e55d05f47d702893200cc42b81f499c27f102353d2bfcb2f6a843498df3a8d339b905919e4e8830929ded1982c4486b586845d7c372596bb41d9bcc3037ec7c0c863b9ca5bbfbbce97027940519cbdcc0137b7f467eee8323c62d768325f58ee9d978e357d3d537706e6e98fc89b8901a00cb892af9049665490a0e305092e53c3d6a8b327cc35c261ec2961312f46ea8ce505467089dbb29c222c33f558a68d6f748ab17f8cd1b51a49db2796ae47691010e4c2bd9d46bd50f16e3e7f189b8322f86984831ef719541a27dfdab4d8fe72ee1b6e474c1ab016ad581999819c0c2d98884bbce7af2db729838314dc19efd97e71e3e42c2206f2ed33fd1d60afc18589a2d39ec0e766afeb77e9b204752d0134ba2dc66bed4a1f882dff3afb2a406b049796c53d3906faa71b2bdd29ebc02c4ed07a1bbf7f9762724be5d4188ac0d80a9eaef860c014fc9b8f1762ed1cbb92febee2c21c2d1919b0980a80e9cb4a92e010a51d7c85d79e56b8d7772fd7ca4c0d0096fcb62f0ef19cd78c26920dd3954c58228fa8a170fc11b847a6dad4dbd79171f4d32a071b48d4c58ec47c0660c54a2e69a99abe187ddbcbb3ce9be673abdd553570b031024d757f9777a0b9680b77a250f664d9691639ad98d2436dd6aa38cf1aa7cc6e0dfd4bb428076b50d0e696acc4659d655bc6c4b6c86e4e7bc052d79c818fb11659c2d57bf06dcbd029b3c9f79e75604f2f4bafaed73ea368ab24ab18172bde57892729e49d03d83166596fd903963b69ab071ae4e1e5797cdca02f2d3eb897e60917cb3ee007fc376ecb2bd49323a15e02f325f84f19a784d3bc2cccf8a5953f3a0bd77a0d94476b2ff1d4d0769fdcace6a1ca71c294ab268ff9b8e7f606588b11d51f43f2e1a6364cd7146317c6d38567f6a75acfc660560095d3920bb4fc992c10f6e70ab0e851afc83a4b63446b5d045a0934d0d72a3d16289b9b6d293c4490455455cb6f90409bae1c66c1ef246d11eba16d1682746c32e13d823b6de40a0a5c31db4796586b315f777c33453172fe99daaf7a3c486b28a544a65d8175cd83647dc5deab76b446125217aba4ac49e29504df550d74f98f8ff658e6681e39f62cf2c80dd904c853cf4cc77615ca6a629a4781e3d29cdcaec0229eefc297fb985a52a7224e893f47a0afcac0c16c8897873f9b67ce4eef21f5fdbc3afcb612ba57765c69f9299e6e0f9a3402bd323290a4a9d5d091580002ff1f3ddd2ba9100fbaec9742c6a55e6aa985584acc2b1d04a9921fbc3773cce8996eae5453d57026bd4e9c4bda801f0edf92b1e4dd9f3b457aa8f5cccef68f9ff9c8febea6a6a26c15d682ab5ef8ad2e852f3d8b18e20a0cc0dc00ce16af7442c42531b5bdf682b7710ad97dd74f450bb3a3f7215de8c8f194ad496bf28f5d95284b7dbe0e773c1431836d74bee1e21696ca43a515d175b14c576afb6314036c39aa5322c74076bdaac40a48ac40ae4976955925d3911172692d647f2affa70ed85464677576340f592f26c47bd1a02247a7e12e4675a41ddbbcc3881050e13c377dd50173e84931d0c9c6e332cd6c42eeb686fb01ae492e6b8edceb4e3ecdb3486fb4a8539abd8d5d3a56a38d66b729598639ca6163da304567529a356d9246c948aa48638fe881ed7814135fbc17980168a1fbfdf5f84f1d3c3a60b4dfb6440e3cd00e685db00ab3bae105f6696ee43049003ed0800c3d3c10a2125ecfc58ec4b3697745b895e7fb7382fbb23bd52935bc27638c9c549ba40953a7566d09b01d09ec3eb666aad934a2258f40bc17afb3bd5ca47b2bec8af32d7c8b257ce45c789a965530c79d4acdcded6ac87b2d5dc5526e1d5ada7533491a45615844d60f707a5e5f2946e292576d65383ccd1e0d1c14f4f229f36e6ed7f0c4838a022078b9094ea959108b28d24c1dd45c584ddc2a3fcfe6e9bbc6610f977fa4212875bb0b173220c357e10bb5436cf25aef2c2ec9a6a068055e16e256d47d5ca079f94c42aada25b8da83c333772924610470369e7f15743d90c6c191c503bc8466c536f732b6e2b3d71f367b2ff58d8cd0924f19cda00c121c021f5ab9add0f7a2b8a29d96bc58cfc405a984de4a563888984574e801d0bfd4a2a5f35ae35248df4d49af83a810167eced13432ae08251c7505ba410e50aa4e89803e7ed1e042403649c84d063bac08896af11f1b741c97a7924c4458cce4f241897b365dafc228d9ede3bc784aa20ad627ccab24e0b7f6cd9ebe309f244477dc1013b23850544692671af224d5fc52e785849607158960ba0369640252c8aa33e04459129b132f6f6087389b1c073ca1138f8ba5e5b18631afb1af1422ce7b888bc30dc166a71e0a45d0aeeff8631940929de5b5c5ef0441fdcf02b3259588f27ae1d39e10bc58679980223cf77f3c1a17b310e17f883f61baccdeb25ca21cc1fc9ed0528114bccf7ce5ce1a6240ecfa465fca54e50e5868b239cd962df154cbdbaf8c5fd72993880ed60260f13ee98c4942262073ab411b258b1090206bc82014b3a74abbd1de53ee3690032e44e6239c02c39a934f339806a1752148a3769072a48700b924b9d580fe06ad08f0cab91f724b40c040d681504eafda504163cf24dee9d9b8e785f01964ccf285e21704b6901c59eed193f8bf355ac13fcc7aae2a42d18bc46e6ba2d6f57a518039edb102c0394c0c4e41a289fadbaa4c451b9ca80e025c02459e1af08f8baa14f85f1803b2f55ca61dd72f2af303d93dac6349d43d42b5f54aafd0e5555d4ba2e68c318082403f17a3261065aae933dca12cc2c9c4398f0602e0cee7db3304c925cd31d28adb88dbf839f1e8d7ad08c746bce21cb41ec7e7320b5d38009684502c158ee54e61676292079b3cf91d5e6445dd7864dd144ad043a07dd1f72777be23b6190c9eeadf8957463377b93c4369dae2da0d71500d5b38cd84dc7af1f765c7600f971693da81bb41769140220cd0578efdc3341e04f4d0ea3f01d40316b26c4e034beb824561c2c3cab7d6ca6dae102e6298d91687737d66ac7920d343a58fa7b7d635b00334ba59b9555f41c91ecfb26845aac617e668d4a2f7e664a581ee885b9521b1797da7cf95fc4758ec5813c3cc3cb80cf88d755a7ce8af4eb4411e8e1151054eac4002421f22a6637a108739704b8759c70c95553f8908a73f0f010da3d1f96411947720a860ad3e1b83f78f5f27b47bb3266cfe99ee8489710287a4460cc4067f73d0d9a974196274b2dd10759fdab6db0fa0f7142b21cd7af713432a662ea669e3cdee952694d998a68e84e46384752251bf0d25dc8ef9003ebd13a5dc577456147e035a3a8cb70e79e62e610e2bd34024b75ef95464fa605d48903ca8dce9d0bd830611857a171e2a306e412fbd6fc865c32d57dc591ecf1e40f5a2dd1a0b2e8877935cae473ce21c762a14c18c0a55957c15e85b9f4e5c67bb9fff564368916b0ea25144fe1fe7fe6f8825cb45842db994ef1eec09b8067bead380efbfed1551ef7fe4dc3f798820a06ea812f65382416eb6e2de2bd74601a0cd450d400f5a6c18b77828871a650dc4fdf888e441ea8384c3958d61ac207605e18d03d621bbc7ccb6c124a4dcd24f1c520dc34347becb5b6add979c419a85204160fe224b1946a1f80da1e3e33e62287ef5f052410db89119a02943ab6008d79f91587774378fe75c409d99a995b8d2de7a1da6ff167a1f6dd2890f11069464ef2c0fd4197811c11d07941472c3c77c3e5d9be3262a85edafb70b874c96e5fd4d0b219ece0023b8faac8cd673e435ca554c43df41f2b3a0d76221ab09272404617a51fe66af9164da3318b0d0bbf1625f12ad6dea3d886e2b1cdbdba8c6875af7ce1fd502c576a97849006a7e74bab7942dac33d225110f8fa05b24fbddc1e9ae3569694ca2aff6b09c5d9d0d600247b722e8f70527ae297b0df12ca54cfa12b0c695a307756b36c5aab58af4e17ad04e8bbf270ee3966952679e8a0f0e205ca1930e39d9b99af4665c6783dcbf89f6c068bbd2f4ce5fb18ef5fd49bd91f58e48a09dc154291ea03ad522c24ff1fe8416885fd61281e17599fc46c2d322490f8ea4ebc279da2dec6df4b745adf43784201aa61a87577849c1a80a4593fc438c3218e68efb16915742e28336822d3ad6fe4908ea311a7c6be46789aba7547f0fe3ba7b6ceb3234eb0328d4a414392b1e928dfbce0c776485be1ac6b9800c41047def0161beb7a6edfe138345ca41e5be2e645545637b0644700cd30d94238ebe43b22d7323e60ba2dddb41e109139acd1a19d7b5c244665074c06a6210a49e9ced89682308db5a28e0090c032164e35d9f42bbdf2aca5e3964798474c3657c40016a28e92361714a8a601a8617ade7258535377ff57cda2fd7a4ca7c84bf6f1236a2a2d00ff625079a7eed8ff1f2c5ebf6e2c984b6c907f544c292a89ce355d419b02e5293a0b2650506b9ceb9e50cbb5a90a6a836401c20084ad24101e6a04861a8a06989201d64ca3abe398dc57f2c0b8d01b8160085101edf1304e27234f21eead0998a9ab36b27ef973fe4ef43070a7e53467fa8bbd8676c20fefc3ebdba29acb7afaca9f4021fac4662be82aba5f6a1d6c17d121e221808e17986bf87918410d358676aab68ca1fab3faa87f17ee1ebb6e4833c2d793ebed238baf01116cb0c5ba1bdca546611a9b9c57e296c243afefbd46efef9f6920099f00321eeee2e7974bad661d622eb5b17bf3a9b5c1961870c7733580b409f9537bdc2742eab6f94bd7c3e9411ac525ccc79088eb886964d2c66fac7d12a097e56d48dbae8287a238152150fc02d8b54766181a80053011a5cdd5a80f3d634590d86212c8722816fca5076512764fcd9fea764f631bcbe6987df2a24c9106f6a792f5e2f185be0aceb5129573455003825f5ac0b3042b02b625e3f075bad6331e02779edbff1e4883328f3fb1e0302d36e2839e744ad1f448423760704067326e31c0c56aaf889b4a790f876c89df7bc35d772ee3b738b89508b4923109cae28e439f16c341977538fe8e7aa123e7db9f0ed9857a59d39ddbc1c55b8bdf67ed2da28aea54a39d67eee15220d42a2f9e090806bbae675fcfd86afc96a75b0ccc35acb5a951f25454803fc3dee9d1c2678b774c71ac4582344de949b66d0d866d736cabe714357b31c370c7d6ab683ba6e5db0a735c72629dad4542e194b8643429e7c58369142e5177a0b6a8bba87548932565896ad91596d5cf9a5763c8973e0a06329b319333bf829b53766767f3c84ac2d589f6ef45cdaa08ab787a047690e748f80dd4d90a091cc1c817ae2efe0673070004e5972587ce3202c098a529b49e5a82be58baf8de3665fce41535fb19eb676fa65aad874dfd3d1deffab8adc147f6e4a9fbcdb2610296d636af0716b4dc55141b70934274ae7671320b7e8cc1b6e0b97dd79a429f3713a93057ac85975f1744239793a8a2b006f366096420c42cfc127124943f6d30e2059b86ae0b85eec31b224659e3932bc9d325370808f364bdb0ae372176e45f23abec3926ca29429addf57232457edf3085101aaab134451208ec78549358cef741805855b55818b01d109f505bde45d5681090cb983398154efd18b6d00deafb5050b8352096f0e373f5f0466ca0d6dd07324a3ac22260692b016aac461562acc5a35f88821a3a9f18f8bb5f47feb0e3ec3dbb7beb2b09692000f908571315d6409301408a3ae063626b27096abc0605022dca29a98188ab0101b62714d51728d131d6e7ea99bd33d2e6ecce8f9e6bc6b9c9e76bb9e03b7ffbe95bd841b40f789b2afadc8ca7de7f8e58230fe8ba898a5caa5b09a2462fd432dfc80dcf386efad54297f775c73497989e21273874fb919f69954cb6efd3160db5a4e14710d0ca6b64884f103071bffdfd4c053d077ffc501d04f94a4adcfa2dc64d5dd86cf5188f3f58b38e860b60bc17b42d4748271512356e662d88e02472e48f42c88c5dee6ea8851aabb3da8b371d7c61eafcf5216173e08e0e9b7da0715b85e071d184099835b8d6334f6174194557212cc9b41f63c9f084f4e6dbc86a66255551cf372bfb59d1e7e63182e812fa25edb1cc29e03f2b8fc41c6a7893d68997bdebb8ad96270006ee10455b0f3436784f3bb786e91940d0a3b4116fb130ead4e60883efba79afe26d930ce63ccf06268759e8167d67ba0809d279db236d2aaf9aeaf3801a9d6d36e6ceb022f0f42b216106a73590571a26b6dd0e36193c66062dd3f9e4ee4c0e455dfc2463423e56a971bd77fb8286f44f2cbd522d3c926f34806a92bc30f5c694bb53d78969ed571796d31a42b00526443efbef95e5e7692df2434b744a4c6e0f994540cc38f849a01cadfe600cd367d406aa1ccd492a17d0557a6022c68656a3238d2fe6660abe0667f5969a5b2cd9876f6e3af269453a9a216b59098af8fb66c7e17de01156f52e7fe56656135236ebd83d410bd1aa1dd428a0379b9fa48870089a22e4642b0f58c806f7e502aa9cb70e4f944c48f526a7db118de24a9228ce09055eca737a079b3aac0b8c912728700a377419bf1b9114174377c08a1f0ea768e5406e6f85a1a7ac045170e0e5f30e5174d540340343bfe6549da9b1de6d204760d64fceb65cfabdf300089c25d10fb8e6d6827b78702de80d12974b28c2f035cbb86724eab0e5faa16f34f78c09db12a560afe1ab56f82c97c2a10620b3c4302aa96314e56205a16a503912bc07b08c0410d036ae1823766f914d5258b905f4c5d2667025e315ae7badc95b0e0af86bfffb1dc3bd09fa2b711407288ff99679b628e025680e327b3daec8e2365c7a9a1db1ad99b6cb9654a29a51452048e046805a3546655d534c3de351a8d46a4083f8389f0310044f86f34d2ebb11efd75751c45f890ad5392cc728df697fbd10617fec25d4b5595fbd425a189fad81033375b56b65cb20c96aa6afa77966559abaaaacabc592db07cbb3bdf7727e6efa2fced0e7572b2c9d4ddbddbdd422a2c410ce1eeeef6fc00f1bccf47e90ec1b5767bb7aebb5bf58aec372f0fd42c09d5165a6207e3165088dd42c822b9d66d89122bbeb775d69eba26ccf07a7e6f81e645684bb0ed82f03fc2ad092fb1362516138eeffdc797af8c5531c2e5751e87f4aab86c3a8fe3f29942463faa427a27ef5ef71e7b0ccb9877f5e6fdf5d817e1974e9e1296c1017ef6f0b32fb2234769a9da2227765ceceee3d36c4daa7c56b15f86add1d84fa486254a94f88f3e5388f54a52e024fa5bef72d278a63f3b0159ae9f74a2e1997e78aa8164e422619b69b98619b75cffe804c372fdd789c872edeeeeee9c4fc7f5306d6022aa0c6292ae934e893236409512758998a4f74556a3c42459efb4043e138e46e0a6c48a48e0fb86e43d8cfe30ea7bebd4dd90df448915f5fd9974c3db9458fe4df8b7c6b7261cf5fb33288b4ea3fbebdbee1bdddef5767768c16ef6dd6759fe6feb76ef7c1693d62e2b98fb73ef2330253a475402632c337da1c0b0cc9be7cddbccacfff69fc5fc626dccecdb0b3357c92fb250ac5e666bbb128caddcaba35488b28da689c996f578eb5a88cf6aab99adb775afdf77fd70ebeec7fd0c2f2260586fd15a6de0cfde5782a601fc2599f9b9eccb15d38229046e95dd5caac87ce6ef24347d4ea22b1601c62db7abbd98d2e6692f5053462d6bab6b6666fa366feeea0063765fef1680407723009507d6f3dddeb59e2b33cca71b84ed4bbe3f4cf5cd3dc1dfdcfd5503cbbcd97c6fde6d539f80e5ae9bfadf6b5f7ecfe6b281af4f7b39bdb7bb4b9858f1868c4cc43a79cb57c8d7eceeef410bee3e6566e68cad2eb7aebbf58a6929bbf22ba25b582e9ffa2f97eaaabe0179cf5fddddad5782fccacc0cbd4dcd038c88c88a260b37f4584c2a4d887901da725089c94e43c34567f73c42cc6f39349349d3dcb777df53e7df8f25e499fc4e8bd0663f9b08ddab4ac7e1e999a5983c2292ec74e5fc7eccdff391786e8bb97b66b7a7ff7bcc9ffbf3cdc37c9f4f5f21f366bbdf77fcd0d7c6fa0e765bcfd1c07ab954ed2db931cd154292e8cfa7ae14b92debfbbbfcb63ead6c2b9416ea9ab2526e494a3175b31a269622fb1af6d5be75775ff0bdaacf90d569d1b22ccbb2ac64df3a6deb4c913f1e513a80136a34a1b4ba104693ae5b0a773d493858b163417c9bb69cbe934532e2aadb4bbebea40e20af6ab25a78d34bc90449107062d2b097164ab975a5a858938cf8b5be1d97530b5ad1c95338051b1233ad54529beb3ae518f1028df0017bafdf7b4f97655cf82117ad53e2402b49d0bb6c0421c5516a10d85f078135df3a2bb33b3333b78edfb97d747d938c8c5e4f3ba2bfabbbdb9f767777f7e86a982d47727fec5d0f1d1c7ccb7c239f58b59c3e8c02cb16bae7850905c35e140b2e46646636e45623347e42cccccccc2c052680175ce0dddd006ca70fc2020080c8fcf0618ae961d3bfbbbbbb251e3b74682f2ea40c1b5dd07adebc2f9999c9b9ec9664a03e2766f5d9ee56acf56d50f60fc29f381c591145d377deb85bf0cde5245c6cf61433275bcd7910fec45b211a4cd27e2fd908d9ed634d1cd33dbc83fb30af64f1803b2e1d230d7bc95c482497ec05d3463aae1d9087557a30dea363d8b43ef447fe70e1b7de8fc8bfddcdcc9c9fca3c42a3afb80bda8dbee22e70172491840b2f08809b494169818ece8bc1ecb9ccddbda7ced388e969e40cb498bd7935f79999333377593b7959af2ebabb1fb7676766fe6b3ebdc7105a9c4672f9bcb965ed8626dc1a77cdce4cde58c897d0f4210f545f6aba6a88c6d0e9abaaaaff0781413b77f7013c5575a1273350653de154d5859e0800aafc882d2ed0f6ad177c37480917b04e55350b808ffa5c995bea73e5b9ee69fb7e9f5b9dbb7be6513ea5ed3f77a8a905d121a4b98a2cf0d80180120f9211055292817996bbbb5baf476ff120fc899bfc083fc2dd654aba6b5200a83ee1d1791678ed604147104df5c5e094f9115bdcfda95cdc3d06dafeb3dc3d00990561b6bbdb5b5c784100dcccf7153fa2b73801b2dee241f8137f0d43d65bb4fdf7fa84e415cd61a0ed5b906116c7124310fec4850c09c29f780c3441f8135f45fd212423fa9a34340a40612a133b5555ed2b9daaea151ffc4c9daaaaf77098d8b9bb5ba5bea2a82b5599886790e001af6b68a403b3dcddfd598c8594f90b5e34cddd1f1617d390bf40dbb748d09d559d41ff979934f70e6a991b81c191ea8ecba1fb683e966e4da7fedc39fae7dae0bbbb9ee3a6e7eeffdc63323742dbf757bd978457af4d595f7128dafefbbea2ed43ed878f95f901244b92aa23a1edbb0cc9883effea966ffd3c10d6fe2c78c195f60ced8e8a75da9f052d22b9d29ea1dd51b53feb11c995f60ced4efbf38e48aeb467488a1429dd11c995f6489122255752a41091c2c344989999f905b37eaddef2a609dcbc69a271de343145fdeeefacc9d8f9f0b12630ee779f3a27d19bc0b8affa4c9ac0a89b0ccb1921c2297012f795ec26430ae167526439a6793afa15ebd7edfdbaad08581b127f18bd9b551ef93d0c4c552a9f2c62678a259a7789abca0228ae29c62e3b2df9254d94e81c5149329189bd21d99a38918133857435447d22bc4d9458718614b2af448614e29fa4de8a2cb7ff747434ceaa51e212e6f76f43d2bfde84a36e5d6f4aaca8bf35bc5ca811f7b3d642c5a3a50727b1d3df1c7f8e3f9f88202b92aa6281256c5d7efd16bef7deea4c99a2a222678a1fe8d9d0fb453b557da142db6ff7d40db63e2b32730c77530a497fde9e73371baccff22d3565fe6e26ad4dc1da9f052fd8a92cedcf82d6100375aafd596f8718a8fdf990f7cfeaf0eecfb22ba1ed43855592d009c29f68faed9c5b3744ca9128c2999b05e647708ea6ddcf4fc07a8bb31ba1e9af9f786b5d2a302b31adac959819b49bdead106a9ac9c4710b4897023bc5ce4c3fc57e45d2ffb6df53ddeff5eede3285b8baeab92b6fa60e4dcc9d6841a86926d33fc75dd7b575a3cc12e163a3b7a3ef78d58cbebbf4d4b910a163502f0d1b775128148ac976a62261074b48c5b4e2054fcc1fc4b4d2c595f87d042844fe640309393f986207040a858a4c4c241a483964bfd3d1ccb1f59875ea1eff86a47f63462bfa7b6168d6fb2f927e8e48dc1f66deb8f6326fab3fd46b6181999f0f98bd75f5d248839999190a0931afeeee32f3080d1d347474b21ef4c0c579f0de7befbdf7b433ce78efedd8c10e98b9c43ae01d661df00e33f31c3dac58610e12c4cc1c9bc128663318c5cccccc032883a70c1e1e18c82083996318638cc7cc34cccc3960666666048811244650100d61f084c1f3e6e0490010d07bcf8607c653bd07c653bdf7de636607f0179c62fe8253ccccccfc001ce08002ef79f1def326e92b17bdddde7b1c785d3cd47b5d3cd47befbdf73c70831b3033175c30f37b2f043f3fef3d661e016fc1cccccc3d6801a405d07bef3173097c7c54b5cb956a6e66666234a30b726c1393e219d5181eb6196d3d563ca37f69313dd0a4c5f044ed91250bad034294256af792228ae159a9f67677f7c012f5777777777555df7b3f6021f4de7b2ab8e28a399879055964b130637f755a7c6c631e5d905b9cd177a6982f29b6196df0da5e76a049b3366b731b686f3d923e93303d917228ea8df9bd97f37adeeabd9eb77aefbdf71e12558010e958b1b262b552a2063d35e8e98142831d1aec30330c7806fc8c2555c54f153f3f4b5041c5141e1e26a620626666e69dcca1d0a4286561667e8299a3c8c2ccccccef3d2a8fcae3798fcae379efbdf79eeae70c25b4a18433548acca1d0ba189ece09961d2982924c36eaebe6a42345509ed0ba97d49122285b0365676b321e299ab2a723453b4e68478a521b4fe4d723455098a49f242831a12c97f14851ce127292848335c71cf148d1947dd98950d6e625158f14e9f0e3c78f1f3f7eca8f1f3f7efcf8f1d302458a382296376879c61b6fc4544de145ec8010457e534cd514542206021080e00321f00027021188c00324c8783a7046ec1a4b0f3df46e0f1d288167e18066021378b70938806403589224493670020dbc090528408106946460c992de5d920126cc18601aee871f7ec0800a7e2e80050b1040783710170822b3c00b21841016604105882082880aa07a7850a98a28a2081e8ca0404e4e0e05903882e9137da24f8e6812ab1d945042891da0e870b29409654299d0417726b0354e38e1c404a0c8842400052a5476b7a948408a6c77155523b03d8ea03aa5477bb427027ac50a02262cb0c002023e40390c0d69a15a78b71639fc64fc002eb8e0e2015de0e085175ee0f045e60030c000c301616437a8182a868a71838e81b2810c32c8b0c18c1e232a151a68a061248dd780f7b65e638d351a300406c020431b6db4c10022a8708888dc70c30d9c22f4443562d75892a049d0244455024f1121a137de78a30813821690254b13b409da8405a81314a0419306071c7028400a420958ad6207b568d192802da9c85c0313a1512a2815940a35681578681012522ba815d40a34681ca81bee550e9543e5b8d13910f0e4c913042491118912250a11293b91d986839875ca9429364c04d564c912bb6ea289266a9c98e189279e98818a2524c32abe2d8a28a290610aa003fcdb6280a0e550e4e1e13940154f27be6700b6c9864a5980ac3a277aa819ccc0fdbdf79e77cfc00035c80ad0313c56586145017a8868de64832cb5d472198788ada593e85bd7ee4cf648d194e5321e29da591b908c1c29cad91a2731230d2955c791222acb65ec5eb0c856478a7486902660cd71a42867b98c3134483640f7c642aa77a770052c5be82c95149aee76ef6e5dc6759b6868382e2e2b519a7c477b71b7eeb9090d0bd1aab4dca6905d4b85da4d3782c099abbd5768651ff5c9cc4c7d3433b32ccbb22ccbb22ccbb22ccbb22ccb96d3cc647ecff2b34b251ecca6ccb4b2edb729dc3071df93a0e51029a60f989022c298aa1f58217657eaea611b88e299bd76d8c6c7ef0469175044c95c29209267ae283499f7f11d44f938290ecca98ae9634e3a10c7b4614086879837bd691ba2abb004144ecca6437f690d2da534e4b593ca9b648394c30b89590687ee60bedf49bca84c49bd6b3130db3565b9fd9cdc19601e89c7c99d2166db9f1d43ec38919e4f49b2587a25c9ec20f33f9e07191f2fb30da1443e4bfca470621ec82b49071fdfa70472fa719239a9a24adfa90e0af5c3a6ee4d73a0b1462abd603b624e890377f286276f1606060606e604f34576c72963e974c518188c876a3ab21da4981f682eff02e4f263e8b5edcf4545ebf68724b383e97f3c0f3e5ee647e624a37fedfc38c9e8a6c385e34bd01668b9fdd2b6fe86d641201fa722a7e49928045dc1491c9f1ddf65d08eeff149c281c7c37c91cde44adfe3d4c9951e2b6510c53689d39968384ed350714bdb0585e651b7ee611c5ffa0e123141cb35901047d40e6289db05110ada9afd59a0d8ed1971f7275bd20d1d950c115537a8a574aa627ab8621bd30687a0b0dc76576a28ee432c5bd35da9236ccd330a08cb45ceec870181ac40a14d232ed0fe3cb13f5af2b18281d1928f9363d1d7f176a2bef6e2599aa4253a511c517f743d9da86f3d28530e10f30b9034c055193ab3df713630c2321489b87028872cdb40141c82ab8b99d94706a510f7bb16225c9dca88fb6903817266dfc7ca87161f44317f39a1758be251551e2a475ca92ba5ba3c3d88a90bb5114b4d55f5f983042db73e563cb384d65da9219737babd52319b4f77a5ae94ea855a8742d4ef2e1d572dd7c672daed0f0751c1ec0e5e60affd746f6c106128062d9f5abb4aacf88888ab1d938d8ee56902fa850e51cd6ffd592ef50b1d92df1ff304f48096d3b762d4ef9343d751e6a715f1e16dcd3226f57e4d4683dad614d156fa1a6ef114d3846dfd460f24768b1a6dab636daf891af2d04e7099870378666b52c804830ed9ef8d4b9b187466b36f333492c6bc7d6fa934f0e6430a925b207866dfface05a6206b32b70a5d27926d5687537f5c74a6db2bf6adac37625a96f942ccdfb2665152486e3f6b78f5a7bc79af9916b53545966329644d0e415cc6e7a72b9aa1b96845b6c687e5f6f9bb8e39648d10c9ed03b1dcbeea9896dbe75688ac2140ec72b5c3e28c3e49376cc4b25552ec78a52bedef9ce52a240d9943deef736bd4ef3acabeadbbae10bb7f4432d2cfd50424a343abdfb5a96b51af67513d8b7ad7f55288b53bcb735a2ab645f10c3f865a1d1e155a4ecbf1d14dd550d5ceb09fd3a8df32b447686bd4d81a151c69a34239b351528592885b44e42a686a45e3183bbea28becd1ad73c522758bac79bffe9d29350717151aea77276f326f34629acaecc22a64a91054212cee70eb4c2ae46e6d1dd43454484785745448270aa5106bb44168f5239134cb47574ba1f163a9a9bb669c7f92541fd391f9a9a374eac4ab1313f10cead4aae3c3d6f412caedef13206ba0c4fd4e22b9e649c56d26b4c4fd8b0aade315764a9cd4f87d0d8dc72a6f7208719fa79036a3dfe79596ce6139461b2f7cd9ba17cd9242d4094a3487c241b438a4e84db01016679f89f2263dba50f47f2423fe23e6070c07eb58a590156a95a2d941110e626f9d6951ac4142c012b7889cd9bfe06a4fcfb2a15d415b73c6d6b42a669af32a2eafb6468be2db3407da43c597134b2ab84494a07ba468cad66c6a6bf44b5bc3249829a8d46c9ce82844440200042008b3160000200c0c090443611866619cfa0114000d68823a5c503297872281481889411c8431108930140420409821461187144a3a000e1da0bd170baa2417eb875f0ffa2883360c80c4d20564f648023167a8d75285371ae689228b7d2b5b7b8c13acd214d1bd3fa9804d7f3e1b5dc409654bf38ec610379ce2b1ca1a8f08bc669178536e54aeec8e9fc7584a8f59cf2881ae3447620d3f1ee65e636c0c31d31a7f896434c00087d05a6de807e4bcadc2b1e2e1e95890a3e93019c14e3b951b2f30b62970e5fb2b7e8ef44a352848fd9df42ebb8ceae3c6cbf8ac7d9c064ff99f3380bf830263f8e3eb76fd622e5e182e05328fa6db4ac6a34ded5d59d0c04a59465abccf828f7b3af82ce47a09975da77ca29ac6165a826c44b9dce199121439fc9506dd4a4543c6d6afdc56caaa3747f0d60afe0223494d81b8632ca2f315af2709b56db6419bbe5bd0f71ad75677fdf068cc74d449934ccdc9feac8ea7ebf0c47cc953f82c0a4ec8812098687950b8b8edd1d6dc9417842c71c6d34b8d4a300d377fd15e76615ec71749c5d15d438030cebccd8ee9df8b2c043666cfbbe3c273ea90b458c54e3db799fe3ef411b9992a325b733a8eda40c7907d24a186b78b88c81e748df23d039c06460754393a2e95484b0ec62e5eac5b308ce8e54e437e080c10c68a2d0ce6be8a88b9d60deb23e8315085865e382b988a05b2a49aaebee1dacf1c9e0fa3173e7c8073e53d562a2a136fdb61d981b37fc315a5cdcedfd2a0065c00c1f8bafcee81c15bf8e5aff8b7526b226048891221b34da1981209600a4269475d900eea13eb00cc15958950af88eff01590992243c1a82b72f63fb80547b79f07c701a28b8dabb2e0523c8b6dcab62a36282d51a1ce963a90604be3e2ad2cff0baa796b47c3affdf335746de25e508691d306a83144555017622dd2fe3a580f6756be46eadd6f9572e3e0be6a2f95a244516d4a5b01f8f507f756d728fb70af1d4de76b80bd2a26ca63a917e76160dbda1f93d4750fc9b6354456336a0f8a2d538b3d4540a38bec57832f35a6bb18366467608b9e580e138b974bf5379477a3fdeaca2c2b75539f3b24bffab5190df2ba074cd90a025ab0867dff70cc88583283c3beb846ff2f88ef74238bb621e6d0829d0b15325fca09e2e7e93dc023bc952a2f7a7b253b9da7bc4422f4e062c148db4d89d7cfd88946952a9e8ac326723c068ff696b51f3cb8f8a97d247477e0e4cdadf720541ae000c0b8d814ff3dc7e72bb04ea39e998f86ea77ddf3d6d5bb10d260723877bd261138b3e6629b44c87386cffcbdbc0b946ee96f1bfbe8ce33494a1af2f72f8083cf099792f064fe42ec151be61f91a2508f259f3ac9d2b6de808cc1ec5e3d5b86d58d17da77ba80202d50a274fe04b157ec7ba4c61010721e1c38da71fe125f42eaf4eb7ed49ff35e5fbd7c76817433de15ffa0bbcf095b38f2090f1b2b4293625874f089d086c2898636056039b8783248f76dc9219eee3a615a456e5af16116726f9ae056043d889ce67e9d8b3d4242a372fa61a2e47c432f195d52a4a490c279993b579c928d432ba6fd851f54d4d7104a654aa57351f3a64efc5bb6cb026aed5c7efa37b538c042a7a6a39ba52636e978d37451b81be6ff307d7e1e123357cf7ee9545a8f6ada610e17397c18408a2895e5c0b3967722241ff514e44aeb33b61717b6cac12956eeca45ae032644230cc7d02b50210957db7471c74b7ed0ae9a6b2626d921ab4522fcb54a6aa825e0c1e8b875edb101db2b8ce5762467dbceccad88ebe56f21ea716e2f6cf7a8e17bbc7153bc6387e7004fdef62aaa3deeb485dc812aba34bbb071286e148139e8adcca051019cd2d15d5c91589e0e8760b42228af30009bcb13b835b3a0cee1b31224052b313ea9ed021b612684c7e9c9e7a8d6e20e9bb663ba6c48afbb7bb7bf1caf8e285ef502b847b099d7c8e43849c0cfa9a4d7c4f4247c3581155f3be1765c9bf561112af989a8e2899d57e7d7e67d63f177db9765b2e816a44b85aad9c25a4a60454b7ea5127f67c945c0af2bd62dabe63c6fa917103238c4c78152199138ef021715d4b372632f6ea4a6739140349ea703292212c22f6fcaa2e6496e9ee24d4fa797a20c5b859d4b76b77a7119cdec48a07d2ac837c0681717d5e8a402a07b5b599fd98beaa1e91a190cb5186b1a873a6bd930f297eefb7e0af99c9c6b34c9686c7c82c61360eca65d08e6fbc45ab671f92b4437193426183bc0314a9ba01f928a4e9d993a477362da37d2fb56d107f2921781018fed39c0c065e9942f29ffd2eee5af03f65d74c07d7b8c5c8c72ebd0bd61e60a8a7ac9d86fed262112262360322858325db75f475d8a4ab96476b3de106533d8e32f831d78f406ef027b306a154cf2a504edb08bca9c89975f3a7c3ca20462c4e8f19e9cbba56d08606206e553f0265af634011786cfb8499e82bce34b03aef57b27a54d52b15c709fbc44d3fb81b51c3502851e155de118fca5781dd1073c69f080889a8d47e44b3f41eac9a375dc467544f75dcc4b416d27f0f3c6b725dd95b75f2df78626beccc3e8a51b9c1b1b6dedd00a578e194d14479a27dc5cc2020313cf842a44e2900931576de59123659360bf559123c292f5e5f7103694eaa5e8de151d3683747f63376f6f1d91fa3b718a4554c7a6647c6b671868b63954d763b1716928ef4676affa57b7b4d4eb4d0ca3d8d7054c0e512283fb58d4dcad25e48fb1d42c064ed04e1f8c52a0e5ef4ba46bf4044504c36e7687e06cc2c0f82e5a99142a2a9526aceaa470dcb8def0039ed2364d20b862ab8cddc80bd4528ba2843c02fe59112d2882eb754d9a31874a433ae824c655bd9b8ca55cf636cafd0a0d3247eeb44377ffe649f36b751b1722f3147bf10bb2dba8d54ee038d451aa21088bd3fa9ec26bfa64ddaa80c7d0c947c72483dff14c0c9844c837d355c441ad2fc79d3f2a551887e2bb0fb7eaca858199731a7196c9efbfe939d9ff7bacee1e4080d9b35a8f2debbbfaba588e2cce10bd9d06a7911026ff8083a1059d2395e20e4d4881fec6c00931032414b2769659010857f42e61a8b20f6d119a0925372c572f679fd972cb8e8edc9821ca38014e135db43f4312ad183b699a2897aa0516e01c9cc55c2b312fcd7256ce7b9d42ecac0c0e767a6a033489d9beaa900a34477358a6346627814a5994cdd309bc66fbf658315283d28931751ac95b4f813675dd89cb6657cd092087eb888d5e3a48ebda6e4368a71a67378ba07159ea48c703a6421a9ae17c9d355ccd5acffaae0a3b6bd25b0d7b688bcd866cd2884fceb4a3c7a33ab7bda34f5b316071b36847784fcdb2156e942fa3dbd75c2e3a542b0286850ec4d49bbfb25ee944297d9029d3b71887a848148b9b68493bb7889229d24b5291a3eb7b41853b652b51236838831886f162a54cc54a2139e1151ca25830ce911461f2041f8590f381eeee602fb8ead9dcc9eaf7b88c7125a11723844adb24ca69c777d4dd4ef45d16c5ed3a891f308a0b90fc8423d556be54e0f10c6e37c8bed816685d8afdcd24718b337952b602778ec4478f2328d097af2e522a5c1e31b392f164a46f514f7b40a0288cc89ecabe7415622b989be88e24530629b6b65a29e265243f8e933c551d47e2567ad09e54cf6f312000a815023339d4c6ba46e4a753a657a3097263af9d1ec19cab971f937faca84362fc98125513f50dffa641ddf489eb349f26b68b32461a2ea1448e02bcd87198c5693906ed458c15d2d0a51f401e956811faf29e14ce63b62b6a95d279f4129c9dc8290a214208c84d054551f0ec1220923f6c982140b2e4ee5e3ad3a11249a8d2fddd18cde5e88bf1095025a72160e4faf4abcb07665277912822b6b8c13a91acddc93e79cb2479666131263392a1421fe054d38004d3cebb2cc8f0088d2d955e48662f190bbb581b64ef14677c68f92f556626dfc24088f6c98b71f12e6394f883c64dc210c15ad9f3d2b5813171d64828cbecf5eb2c9ebb4646c64177614842bba8a043f3f50e90a327f094f9c2060c8112656eeea54ba59821761b40122a2362d87fc905999e211d1bc064119a6d41d1599ebaa60c78318cbf685d1a8dd070c5c584a6c344ec4238a1806be31ffee90194c795a498b59b6389114c48871128a94c6f85171bed7b9f5907c767cb1a42f795bc7a8fd7c58dc94462e89252a1d595a1e8be71828ecde75d5299ef2c067c6379fe3a3074379d4b831aeda50a1f1bfd5adca7d1c626d5327c893f6c1c83c70d1ef7eee2130f93ba69f4d699b28a6b8d17a8e92908414dc31a2598feaf9f69ec3c6f542917fc5070d64f5c236366d16f6920f13a54d0b1fde6e38ee4739c04c30fab42750340cc8806b1befa348b5a76f13549e8e907f820129a245fde48d681d9f68f10891d209dd2a90264db74fa349421075fc13239231e83558406c2af22c7e62bcad7049cc52c5a23107ea81493b8735cc10fdfe6d3ae44a92e9d113872dfbd45d2c9dcb6cf10890d60baeabf3d27ae89290b4c40100a0f6110d9e7c0e0d78cb78cc1714c0cef9a434480f61cd574629fc53ad69d5a8174b10d539b3732d71d49377a5ec56e2c7cd1da286d3f528b0ab147b74b256a386edb5117f40f76f09f89c52d9bb29b69ab9bf7ba72ea5346a2b80a4a9cc8b2f028ee9b799206c042cfda960ea21932302a54cfbcec601889fd007c46903dc0160e3c64d9f85c47cce964022ab86429ea97d42f6d9169336c2856d893ce1414e4fcf1d32a31bff7a4a4b7c34c03c4e460754e26642c4fff7822a670c725c3320d0e654a9541e0f6cd503e1cc781753b28f8f567991d0707ef39fa8645fc3860a83043877e232b83ce128c5875e0c5c28de2f33f73e1479703b9c812f5c9cbdbe38c0bd1c14d9d76b942189ac6370e1909b853d9a9e14312070e9d9c1c9959dceb79c67952f90b818dff3e8f53c1ad2550507d1e754932e4253d9d2bd8b7cc82ac06a111a405e04ae29aad9782825344dc51e6a5f6c300de978e4d27b7961501bb6132c89b99bd98d0e2d6d1c6b6dd497ea191e6a4b5e8bc67ccc83d32034a94dedc96304b3102492cbdbb95314b6406965089b1baa7b1761a7a7f5c49561a94e6844e582967dcca3f22886c88827f5096e87f5a49c4aedcc5316279845eacc6e5b1f9b1ec528f19e3d16924f888c5aaee637c308bed8d516b934c66ac5c508f3d446cb8d3e447b33bc2fc5cccfc1bef48f6b44f490c585929c8e78a4718f0316b205b476ef37021b1284aaf03d517baa1575968c5424cf4a8f9fc819124f7f380b020d9b59498cdde8281876ea8e23bea18a30629e0b3ef24678b6c92936556a417c28ad79ead3ce4ff4afa1910d1bd12aa100ee38ab678115d589f69894baa10402d17039318d5b0dda2be7270c6d561ff79124301ce36011191e7e1c80c4536563154b3873080c49530010c22ff351180bfc4ab1332a5429af082a877a0cbe98a15cd28db5f06ba3280a478dae72bd135e225805ff35bae773382458a55958c46e6a0c426738278bb20d6551d6336fd5ced34e74b92a2f4c67b13a0730e35da3981f5ac045b3581b0c02ad0db8d555cd98bea065af1cdea75572dea0170e5ad828ad7de3115ee3d3c7a63b670f778d91f57e1bdbb0057bc2a28af806baf5a9403f03aea81567cb77add578ba65d54511c81564fd52826d0b5471545735543ab2fd50534cc466917277041922fa2f26b55c8d7b7614fd5f200f4b7a146d4c24ab59bcfdfbedf7fddcc2cdc6a1e0091fc87d05045b3cd09e0306ff7cdcaa7667c0370529285e57db98d5c87c6bc5b0d9e09f9df2515c14aae05964305ca3066bd8fc50bf5f1cb6e3c65e261142a93146f6306cc95805094f03f57b9a99255a8d124f0e5c3e6b9be3eb020faa945f1cec1d154433dda1ce85a0322e4d6c8ca58760fd77e88a1f7d7e4abf54fce04febba31c6e42ee45aac108790732165d390a6b15f2e640fe439f16d2c0cab3c98dc0774676812d04ad052c647192d83c90d44c2335352cf108860db48a111d434ae97000108fb7fc6a8c6c31a8d9d539ccf1201e72d51ad7a4deac8547e4bd6216c24d574a1b1cfa9a057002804c190bffedb76b926def999a4430c7fef16211d0fc1763533b7c541f0e1e54c37cf5e2e2f361b12eed0a722bbb8067a481328a4e798aea0f5eb7b4374ed1c61982cc9c12ed86238da7c7fd1949f754ecdd9108d8d7322dc4025d354d380c0a28b4e3221f3c1433fe5f404a769849006749a11348ceed2f04ea9092985ea6081478d4b9c0179092730281d869265ba44667e8739169eb92f706aa5f4cddc9767adde0e335fda1cf2534625505e927b0bb7e8c19ec0735be9fd90083dc261db25847df5d200b615b4b73b985832d604ae0785028e39f5e532846d2ba658d7ebebf6b83c33d13fe510303d9340e789b5007c28590e737c9e60cc3711f79be179e5fd4c5ae0a580f972444980a0a34f5539837c96a658806caa6c2342f0925c9da260305f129b662af367926fd41010371131c617da8448fa2532448d8140edc8ee410f3b3f76f5e086a2e9a7c514715567827fb28e0efcfb44f1ebbb17751525d3d81c1e69700c60a77a5f706ffcfd948acaedc0089ebd495ca324961cd55036e2b4597ae14f90b4059459f1cc5fb083042c09fbcd8296960109c56308622f4bdb3905284b8115b471488059a85c7204086333d074dfd46737a0a825212876025845ecbf4a60d82bf2d843391ac4c51b68a5eb669fb85416858d21832080330870fc806c5360651ac2a184c5e2f28c674b14f5d304a4df1cd12bbbc1d95c95fb68774450baa529d9e60d0cb8d7c39217014b5d6e819e8405c88d23c53c63e1a13e1f8563a3141a6b36eb7b5aff4ce74dcd7026cd4dc86163ccfe5e47e0d344755aa8f2a984d96fe5524f1114339da40b9e976f218cd5d87b0cabf016ccf371591b078d9130115878d91e55523f4cfd98256e2414d0439a5e1eaef0188bf8599e603551fc30bc588e97b08f154ce4305c3b88df9f0c19182f6957e3f6a89fd1a6bd3c4fc3b516c2319b1745282948b83179f16c6c4a2f8e98853d0f27a10f2e7444b9de510dd242ff1752f19566aba5b5fea460b363afc603354e2962e017b22c3badc7a3dd124379b286b0060cde7acede4e61134f2578d06ab7aa9167227b8649fce06591411f1b8082478967c0db5eab02cf5cf21c056f951556844e2643bffb2ed3b9b45315580e5da15eb64ca25dea9add7b24a1b540fd74e35c694ad9de910bd74f0e3641db71ba670143f7be36989ddb515b8785d6ccee296cdb6c0c508a9afbd4b07a7e5853d2b8f23251ce1913abcb48f316ed01a1a5707af0bd7bc9b0b4e31bd29f8e6e400b438a95d307786f84964ca8dd074e0f8de35f3fa8fd9d73f66ff4415f8e28ff9aead21c118864f5e0d7efad5ceabbfbc974b6c73d8f16a9bf7c7cfce133bd27247c0dea3dcabfc994d00c1d4e130c8c996f125d78b8cf4bf84eef04340d88b65713b8cad1331ddeb0beffcaf0958a2a8d432517f3e41287ac29eb3cc68199bacdbe79782c11f90c5afc3864b5f610fcb0017befcbf9f5b051a18ab5c6830f3768254ef5150cdf4ce4384436a85e64d52b8bfd46e2a8ac045d8bc3e51b64b69931479df1ee0892253555a21995c31a54a9597559f3c21befef5a0749bda5b0cc891e55cb17579320c01ec6f8f95dd74513e1c962e0c2c2d9d41e32ab7e434c4527704a9cb7cc20e08af6e78b6ab29a8ef61fea84f3220412c2baa590ffaa8a77137950deac4f1a7091569af87324b59be4512966c25777420dff11ad7f4e303f9eed5fca61b3fe87d5755c25ebd44ce8e0f8d4bfd1222e8c7ed7803377250c93be0bf1a07d013de74a307bd5daf71a61f5fd0ef9e8637dfd1835ee735afd98f4f41cb0ff3e2f214b5fc1b2f05a3ee07e838965d47f82d089cfe2d3daa82405682ac721be093e2d2580f12c2888ae6a68c50d7e56043ff06d742fd23460884d447ffc225269c27f270f7740ff340c89c0dc85e08813136af209db3d8c3f0d5ecdc1d6fb2b6bd945c9a3ebb9ffe3cee32baa09e47b339e81a31bb68f080b6a294ea82df586e4cc4ead81eb90c10a10232c76caa71764b7de211206190e89803b30d8a7495e903c00a76c06a3f310b3dcb37f6b93e4f5ee75d53247d1cea7f0165571e52130bb1ddb32de85d5352dcd8a4c7caabc138d50b597c69bf3be2ac518278fc2e2e4c2063b0cc7a6ed0e7b9890af54b726e8559633202b3ad1468fb4ccc7c7d4db86102da16edb8ae10c946b0a02e43aa28c5685bf4f4641d43a4463ce0029301b298ef51efe5e47f14de9c66f65961675670cdbc7aac634be6c1908cb52c9b477dcd0617ac42050a2589e846715852f2d8639803fe2b339ea7d9e199391aa04ba6bd044f5e2a8bbd1beda6a267e660b27dacc67a2e4ed84ae336539f703b2bf18989253555b0b7adb8fc3ec74ef16aaaa42db3730d4d1811f4de085e3f36b3cb8b9dbc8192e71f1566843fdc2624adc25f0913ce35da88314c30e9b953386f2b1d0431bb2b4aa22a5eaca24fd03339e1829ddad35ba43c2655901c9c8d0043e114f3c2e477faf4f7a6ac8289da91d5d6b227d24003566587196c82d3ec91861af02a3bcc701b8c668b35d08257d9e106dbe0145b343bc8edc35b3b2906eae3658aea659dfd491618205084a13c2362d26bc4fa45c69979206247c5aa011bdc605b6f7f50d4b3c4653f0a814319d61944c889247604e4c1444af81821db4cc6de081bc1a3182c98dc8807b68ef8eb8285965f454dc6f335f49735db27e0061cee06fd9942e74c1208c983c9bb412cb40fca757f69bcbf87d3ffc0ca30d53462b972adbaa1f504a558925e71b74f16fa607fb0fc0317b2c506564db00a26cc2296c9c49f037be4414f821e7c7b3b6882032f447ddb406c16721020690773fe0a40b34941252571134920f145bc488274222e3b11fe8141064bd17e96ae6e767d0899896b71afd840f7b07bf9c6f2b8657b87f48271af00b09e38d1f4d6fdeb124ce217941ab81c136ab9071d42b2a7d960a6496947b76092f754434936b9f214b34e845ed6c058e8112efca7fd5c235037e3722a3ccbe2de27eca516ac9baaaa800f9d7a1c2459e1f0c8ca351ce9248b612c513c08dea32d2d371c410a30d27891c52637faa99d4e7b5278a421d5a347ca32127f5a83a6859db8859d51395781ed233517308ed7eba18ce51bfb6ba6616e10e70acde5670e645585a507a17b43a8cbb92f577efa659439c5e225b83f9688c9b2af1fcace3e401840f15d7abb8920ee34dbeed5806aa3311ee0f87d50f62ec815622d553660b125de7a5db775062a6df48a7a45fef57ea0474d16c017dc51acc214a26154f7c3681f359388278a4fe59ad9803e0addd3ebb8bf4205fae2f076c26add06b2a985613e2579500282ee7a0921dd5d14f84185e24908389277275cc1cb436a303912acf882bf289388daad7a6769c82020ac3bd1d6d3a28bc0b7be084efe6b1a9d9643b716d2db6d24f10982abc81cb479e9032b6c5d61be8a0ad2dc9988ca7255be24f8b2c2aa7944595fd0f05f99caa52a56f19f6bdd1ef8d1558cb9b3ed2927469cc82b6770fad4988ca01494c339daf83ab30d0062c3ee9ae122ce4b3a8e963610d9b58f8066ddb3161896a54769b6d35cdd805b39a19095ef2d6b0736529d9c11c038e78c97610db3ef1111cdc227b1d42d77c567907ebc6c5f7c14c0afc23309b05f2a70966a7d430fdb8288052fbed6a3a2dc42f61d0346ba773b9cbd9923124c03936b37c169ca1c26513674ffded05ee6e4dc189d27f549f07d6b720b03750270b8f2308620c090093a6b7e248145688790568866664f326ccb4bb8343910b4e6e6101dca1a0fd63c2da4e82103cfb0b68ac3ba52d4bf013f78c174ced94cbf736c4cb38cbe09442b6eaf8633b3e80b2afea4390dd2d64f080fd1f63f768a06dcd7c7da2200ed05ebb5a70152103a0bc2236a6e0ae6aa156e78bdb1c906a0baf8691d820eff7a40d505854e60391cc0fa14fcaaf4acf5b8ca2e54c6fa601e01e2d1f3a9087d74f34cdf2fc3cfa0055dad28ba6aa13687fcb17d349675a09c0a56e5930ebe0b257c4ae8e65c4d07fc96208d8f1d84cdc0594103fa8bdfd8890fd6c766b801fa77d2ad221684f7db8b6e91c7c97134b781c9f28ee8814e46b88f942dd2b9ea8f12360b8589bb64ffcb831887b2ee9b684d0ec04dcdf065eaa22e1b775a7b1dc9e8cc9fb85997ef3023908e04be27d3244c14b496d244f43f38aba9c9c63c5b226c2c5d09091cee28ab7df44b91c55bdd1ebda572acbf63deb90215d94012bd8a889a6e67e2a8618818a7edb63c2bc859c52cc97ed4de41325800b944cf466ba198fc5d3d915a33d8529b555bb63ea9aec53b6782d4da26a5a54432a46696c38e1881984d1f940b27cd5ee40230200bd3e51faa397ee5ac641040dfa57a318bd35a913273a2123865ac93bf4b3dbb527d72d5e0ca21f140ccab1fe186e059cce11b13ff25e380f7f66f683e9067e456ee1bd1ec72666580b382c8dc98e1e9d4c73a1183ab0f84983fdf89ba6150c6b5dcaa62022389642b2180bc9ad0541e085772508f92507a341ce9ba0cd817ec047f4eda708b2863a42ca6078cd794f357298b28d124ed8d006645257a5e748d00783356e42da7ea335169a2238188600b9eb6cf37f64161afb92eea9c5c079d4fff803405374a97003a767fb4425410249a08b222246875bca9ba07ea8fa55885c3282fcba065a646166cbd9f08bc5e9d6d26031a9b6b14da394bf64d5c83bce2c42afe0f73a8071206c188dda662a31cab7bd11017c3bf2c61e1fe9c006ec05cc1e51fd92ee5eed0881432e7f60a2329c249c961f4da3853dccde7effb4bfb2c1e250cf17e7e84c62f88ec8f3246e2e7f737d8791800f9a3b0ba11ecea31edc2af41aed7ab45c2b0ce5157730428395171977b4df04ba081ebdc1f0cc94caf9a3720633089933a05e9d0f42ec3c4db919a6e8d817c709eed9e6fd1186162da17f937923c68ac030672e4f75d0900b275b37740e34af480506e33f69cdd86e3b0e12fdce42aa56fd00acb955822b71e0898a52983b09c1a925bae5c0df1b3592be23104c00c326b0fa0c03c8c1e4ffc7a69896d7ac652e68106628212902f114ed01fd054daeb5220e53a4325e40a8097357d28108640f881faaaf02fa54b9c409e3ce6603c4e677029899397dd2d057bc76e49012c7647223576ca0f0fb2dc31578c04c79d11c05d73f5150be7dbe9cef7d8bfca8c753bd5fb3e872a3df1b70a7f39fd0602161ffbe7f9c6e825991a8cc0419dc715e1c7af1f49a5113a3a788dae3394547860fb2b01b300ac7fd16ed5a6e734d7e10493393fb81981f07c6789746e4418d970d0a2b1a769184a4af973af9e0ffa001f10bf5cbfee17a631788e69df1a49d9487deb1c634de3f3f275359a81a70b3da9f7dd9db1779428583d033d8881d4ce5dd44a1131f21654c0eb3887f7caf473080c130d8fc649816fa5f3084384e74673aea3cbce65610918cc3e01c387c3d7d095c799eeff42f120d47f203ddabc9416d374061887fb5e5ee53de20e6581da41405226f1dcbf5e42550b588a5bbcbb32796beb0a3aa9e0902b662efbdc76f4bf3ceac121d06d4c20181652c269e5f198fd4e5424e34c98e859112880716ef54c55b22334d6a5da999b76a3b986904f976f56bd7e42259f59ab35110be676906aa5de3d57ba951fce140e8a81ad33081787aa53d9f374853fb9c6c514cfa5b95dfbf2ab9a4b476756f554891d1c0234ca524eed34b20d4cba0316a0584f624267ca69ec60ff25658824bec92fbe3fcff843d168b395b46cb159106060dc8a345e202ed850e3bf7c142a2ee1cf03088f4ce4395d29068631456e625f19348fc5d84ee136a633702a0e7000899b86634de6b35801c26d0b4a97e7a285c9290a9e0b8f156c85429ca077a19b78aa9dff3ef366c8d2d33caf5ae52306888facac242c5bf32d91dd15a36cf5f5ed3e8c571820ab5a0aeb430c32c0e9f1b96344998295b73f9431e9362b6062d571f375260a1a4a41093eb0c65357011a35065e4ed5509c433bd6fdf3fe773afb631e8cb52dcdf42bcac75553e51bb38ee4cf24c2b9d366bac08d38b3027f9ce2f1b887ca1a163559e42d31c62cca44aae5290bf14425ebc58599ddd609a5efe9140d10452b392bd5796ca5a563ac7fe33aa8adf122d717a2c5fb464dc57b8d5e15e2dc998cab1235bf9d84c9e77ee7add7102ae37feeaeb729ba97c05ef151d5d4191537b29aa55ffcb969ac0689b6fb44eb1165f54c9409ac993ac2407ada4acd8a81c063454bf15611e05ead2b53517e2c89d046a50e47f5c257ef7eaa675880305500126702b7c56c8a4094d4aaf992c5021c82393213161c47f18066c2bad24f82390a251fad4a95eea17163251297471f6c03b3d1c103a8f140e3f79fa90c624571a85f64397e186e4fc5cd8d7a9cf8a892cedbc3ce316e382e2d0803387f60078498c5f6c1ddbf78a4bf1b173ca77d0628415d9e688dca9bdc28061ad15535d0c4570f0722ec462c067d0cbbdf61dd0b96fcd88a63b2922b837c430277f2a363584a9f853503f605168bf10e9c03238890253c237ad9c83217ba2f906e0fd183e958a08f4871ea6dd8bcb731436e1a40444785c99f2634795832a9709b6704431d6dfcf2f8ab656017a6d1af019e6d0562b98cb0c99ec96eccac29e4d1f7b4fc051fe707095707afe8e0293236f2a3b5cae40166fcdd90fbb5e15951ca0f5febcd3f43938186d9a64223ec1105a582baea61add1fbe8ab93ccf6948394f6781fd91c1800973218b17bc9c1a7a8459a103ee01ca1de4b2cdc430ee8b01c0dcfdd0f56cbe869bbe3c0dc0995218ad3cf4a8697f4225b94f643acf9330e549a35b626fab16d3689b161621418d83244cd9f7c79e248c14aa7f54273cd0325fa6fd0a582854de9639eb226008ea6ba11a7a98e1e5fb8a0e4a41749f837887bb9e653cd3879f2ce2c74947311bf87ac60ae19428c4bb69cf2c50c125cbe08fadce882e8be501a2fbb46a4ab90c485b805f20629038e924d2eeb05241f0cff12a79b768f11d28cff1e1b2df1ea3decec28dbd3edef12f87d42667ce1e38fb35c2ed24c466f37fc2536c5ddb9cc662a29c992b12b7ce270b300a38eb6dcf0d883339991fd70ba59541c206d18306f7c790402cd6f23787f958ba44bd1992c8ae0ba7a7bad8bc73c20591d954f3d36e3078017e2084df1e0711becd652cea305d0c7da6ffb09109d009982f81b827ff596adb06f0de45106957c03c0c80228627600fcd70f9cde41abaaea328c4ae2457e69fec171a8b42f86c2db171d3cd5faa63d26a1158a44c96a0beddb3cacd3d737029eeb4bf76a2c2a6d600a81fd32125eae83df4db4e674b5375184161dccfc71b09ab0de39397698ef3d94d3b5c099c5da211b21afb69a726b20a128b0cd7212ba0796737c2be3852cb06ae1ffc8688b9403865df6539eb4f3eeb433b952d41be67e211f686bf7e27b41766b96944a5e49de727b2b660213e74ef9d78e681cff1c6f4dc2e3688f42168421f2e060f640007657ff4599428a4a48ac0b21b9cbb251946c972b760da6750c4a879ba0da64838123d43417d634cb465b45cef8e636fe3abfcac9522b46ba6897a91b3b7249e485467779a243470143048fedc667e2257aa00384afb7129f4b223b8c5fdd1d2266f015ba9b60e9612a14d5488c67e696133d02d7c695cbec20a90cb94f01b3a9c9bcbce23e2d08dcbc06466ed8c0b6aa0098364030ad9fc612d53bfd652f4eb69af8f682f3f85cb62cc1a1734c10d46927a7a32b66eedee4efe9abbf5154653ef18f536721228a6100590f85800bcbebc38c561177e0167c15350c702d1022e5e8db926e4a87dda626ff4ca3842da7beebc91527187c3b85300cb318272f79030c751ea17603700f8a68e2a2a91581025206f5f4acefe601b3a46463ae405e4ac05f0f0775fa1e68459b2e1641c1292b3345206f18314439407de20c94af47241691758e36f9c1dc0cccbcd628c2c43d9fcc6e9b18726ff23960e04c0962a047477aea4a0383bd8750ab377df2cfb6e3060c55c09f98a1cbe36c20102f06f3b0c432f809c4d0d3adb730346f1bc2d0c5a1a80bf50b1d1f2e74633fa76791e1418b363c1b2f013727ef83790ff02e7fd046cabb36b778171822a007f2d66d99842036f7d0357ad265aa4efbffbb80527529f5c4a3489a2f0211a886faa51174e5b62acdb4956dd8df136c3317c023c62fc4ad4782c0fcdd79b5b94d469fe1cfcc59182350e06cc06a4b901be747cc7004b1d6ce6d5211cd7f9a2a0e8391dddeb699e909d4f06284f37e00c9f91adeb4c0ad840c6d267c78097cebb7e425687fb6df50aa5bfe1e49ef0891648d9cdfefe05632e3348fcf0b9898616686604d3ca866db59c0c7d800a1934dd792370bc42ddf6e65a4ed74179f2fa01643f8b346aaaac593ba2d68feaa28f350b57198269f58904b330bcc5b94177849c279c2dcdf1bb62c4503c9cbf1273f99c7c6091db76962e138ad0c69e71a2c151281a77f7f5c05f34f67a8b1b46c062799897a69c02e67533581e8f3f00a69d9b7d218d77a2dd3f000422036509f18222a2bb14289848a0d6a6d907395974dff8918a689b80e43af63030579c395ca0822d190609178aae698e073299dcd636936bb20474361681c1eb49007f3bbeee80c714015f4d4b2bf9596746674f156c00199c5d7ecb81fa430ffcccb9529ad89931e2420c12d99f918261f6b9e9759a36c5589574ecf1975658924ed3bdeb8c39e0ede258c3bf4512234b4dfce6cb3c10f4ab8516e64be25141922db0de50ee5a083cda5f16a19939a30c129a1c50c9817552474c80f293c8cb5f79f1360853b3b1e27a4447522632ac452ab4c4a568a9dffef94946ee5d3f793284d574d63f9bed5ecbffcd02f6aafbbad798a256f09092bff78ea3ded1f133ba21628874c2fee7a01fcfbad1d2d73904b79254090944c45281571823878ba5768e81ffafe269f531228ad7ee92d1400da5b2fc97e49ac24996ac0875c1c89a89c3c1f6754c4b6c4a88d674ce3318efec8daf4bb06f5e5831e20dd52bfba76ec3a211f6cead43d5f963496d5b906973d17cbc75721d85717c4b454ea16afb3963a06cb9c128efecf280c964600c115f7cec416337e288eb1f635ffa125273dbbcf476aeb3222d1d614e739a1853dd96c97a1b378768dd9799c491a9858b26f74b9eca54fc017463911dc8c01dec229e0fecd77fd88fbae8a40fb960122da832cacf7ff8a22cb5f9ddaa282a199f47529c7b58d6f18d67c23da78ddb71b8232e5f2ad2c5301c3639eae0734f6d6cbb280a564756c9c835a689b803c349cfe335931bc4fec266375be3b5111b90c125ca6f93a56b672a992593b172f91b8fb5a614039d27b009a94555e9b8e8a601f64c0445026ff2353e9033596e6ee55d3b3cdd969bf6ba753adbf4bdab3dffdeb22a0f4dc35f3f18c0cf4e5ac3814b2a8d3ba40807a93533af0350e18290ffcd8709867a1c7f6b1ad8a5511c791e853d6be2f6c6e2ee4b1290ee0a3e49cb004189222ccd01ae9b48bc904ea8e3ea4ad925058b0448ee8991c52e5969dd13d6143b7046f4e0cfd286fa800cad2ced74259b5b24455d08a181d464fa1039979302ef06ab8c09fc351abb931435a353aacf08e0bc9dd5b1e5c7490e6a3970d44fc5f14b1d85aecae3a18b70cf960038dd0ff0a6a4b75cb215fc7124b75f2ef001792e22eb3ad1abb90499977fc38ef3aab22ebfc6cdf45c7e70b1fd09677dbd0c636b76cf324a33aba15494c67561160ca87e06af0e1ee126d09c0f5daff7738a7e36e386e7fe5b7a45ee38d6dde044ed6fb04ec7c348ec2153fa46795a3efbaf2e78c5c4f812c0e2b4c394df3c5c7ae28df7b1eb243bf1b79f115a19efb57961a2708d6125f8947feec56772b431edc29b1f9256a0f3418689e7ef5b0f3f6217e349785342f862640fe244529480ae5e36403f2629ab7347b2c54b89271b646aff9d58a548cb372722dd7a22e43b8b25c8d733f5456f03fc21bd7338604d5fd0808ef0ff4d27978b89bcb4191ba6bc642429ffc907e33b3d56991a3a8223de2e6962d49244afccb6d71ff3a6fb7d4b7ab9a794fef1de672bd19126b7000742402cdf61adf1bb3f1fa997095595af21a1a1638cff356f7be58c618136ecf6903f5b5738a89ffd9fb2bfe3ee459be8746e472d8ff6ba53ce60484bbf7f39502b33930963f0620b416c5b0f6a2c3dc84e4b58f4f30796b95ae828b74946e6481723375c959c7866083f93f609deb65b86d0f56cffab2c2863dc9627636fccd2adda66f27eda95186c531b334f33fe4f720665fc0c879767b7bde079c3506f8150aea0c3a9fab35ea17a93bedeb74756f39b57c12f8856c49f47b763d3ecd162b6adbbf492be2cff200f00824d3e4a21fc6b2110d7f6120f0ae5bf3736bea08b5b3e099b41ca38dfecd6a6aa06e56dd6912f453854fa2af0f5533fddedce8a41edd342b6d452c342b47025c311e37f536d203b782fa70762be0f34de7db60bd77627f342d69df3e51dd1d5c1c229123fa9362d265577bbdb51b0498fe64e778e55c7193821e020a8bd6a2a4ddadda5c956c9cd49da019925d4d72be0163327cf6a7357f7c259df0100652df557dd251fb101c063c7a1fee811a6f0f81ddb9d73ecdf946f2a4a06e4ae27dab4581afff82c9e824d349e2ab2d672381f7bd0ea5c5ccb48e1b7cbefa453012673a2b754c189e4a0b57cb9c9ee990efb6a07add52090816c224f972540f2d5cccfb3ec3247eb405be91613b778789e803f9e5fe8038a11823d47368793e73561a0ac5ddbd3bd8e6c904c3c62f60e7355d818fa8c4f1d90305153b01a020b6ae207b22ce5f75c94d8eaa0e4626a15ed6f4fcb267a63188975dde99fe6c91905551dd3df932012d45226806c85345039572a3a14deb21d74469bbdeacac3850ee4057b4ae4ce7b3733d02398e63571be8b3c8fed7b8279f7e472bf9e4cb2c68cb170ed65c24584f1fd4e3ef68be9d4e6a4c9f5028ce9d42bf7654f2214c5bb3ceb2893b5f5cc3d95ac80ac94a154622a23b215f53f7fff2a493764b2aff6810bef4f7740e200da3e9457ce50daa062cc69044f2a3cf7d39dcb1e27825145d3ab0d204211e46008104155fdac3d9883d7d21f4f1c8ad679259a7ecc761266efae5bdd79851d5284d9158395654e7f343227d1cc0fc08649904a9b16a378319fcc92c9fe7cd8e73c2d7f141d7d529218291e7268ac47460183aa47824c1451c07d4b67c85dc71375f169f4ee7951388e4080d6ebeccf9e60668869223e1f3721bce8be9a4ce05b26f04d85219de49d50345034e36bc26bc92c589e3d7a90a3a44c8cb4c0353035c8cc495fa4d6e49f0e2ec99d58dbbeaf38954fd4d290d535c85815ddac628cbc73cc58bbb8dde57f02bfd239fa012a35eaf1f9ea75b33162c5ce709cd5df098a358da40c139958cd9dde2d21a9652d4031502f57cc77470b69d1a37728068f7f496a8f13391880255d227da3d651bf607832bc6edc51f9e0f2e158befc535507a1f4a344fc263d39b1ab1866d6b51041d204aca687f6405e74993d0cce9074f1abdd03e7b5e7edea47ce3c6b9a3bd6322c0a0e2dcb576db974eb4f7fbd7d9de458d1a700b8b884aae72f85f834a3e58776ef68710b2bf8a6348a505b6cdfb6c1bb3a5648a5182592b4fc007690d0bff4b4dcd8f0ff446c8a7a6ae1c5785bcbf5eb3f6cd98e4d4735adb8587254bb27e579c3f43b2699d2f899bbbf12bfd9132c987c16b387d46b7555181a2a6e3b90ac15dda957506211c2fcf1fd126ef1fd201c0a7fa4e3d8632a8e6b6a1d7fddceb6c850a6969e741f219cf2b6ac039d6064fc2112ea2877ee6a3168aae3040450939dc30312a1adc1a8861bd6bf67b065e349dee42ac168a5bf0fc60269fce948030c52bd780c12a51e0b80f8039cc632760f9bd4fe78c621d368e698201e6ac78cce343a21d72bd6b2b6c77f578b8b2536387240009d03721f8dd3ab769f7e705cfe3d7e8cf45d26661511e94e136f78a49c6d770ade19ec6b731428934f5b9a470fe33350f532632b1d348c779509be040a5bfbe891719fc45a785e10858b7486e31f80bdaaef38ee4db49969031f0e589681087442f7089a58de9fa0caf7c8fdd9758290e83fbe02201027a8f9049cd00c9239892b3929481730b2b047158b828ed8a98dad312578feb5a07c4fa22abf9a9db0c16ed00248c21305acc1170a881726abd547b659d4e487f30925a2e599de1543f6800be06b945aa8065c0d50dfc741bead959434294adaf0732dd9a0e9f63ae91b48330167bda92e5c4afd8b65128adba645092a3c0c38190a5dbd3c0b0e91771bb765cb771c8e2f84f3e6701517809c029f9ee2732d6cf0c3423440120c9dbe1660043ba60ec08cfa6c6b4b252a538e5e1ad0c47c2588f5645182720393de43173c707e14a5b5b0c2500e2cf0589ae06b6fae951bd3c4ab903aab3ef05064d02ae0108663dabcab291b37cf3acc1b5019f825ca60130c1c70f0e274f5f034952690bf55de59eb555817bcceac44a2a8c6533505e7794bc0fbd6abca5f52c40c4192181c8de859c3e602fcc00f4f7cb6dcb79a1189901db39f80e1b73171f4b76b1377d6cf11b081b2e5b78fd70c75d829a0ecbf51e22cafcff15ecb94bab911a55d6e7e30cebebb78867456fa14b66b1818637d49b8f80a2cfc975baffb053f966338a4dcf21d52e1eeb6262daaaa5ad6dbb26cfc87ec448f5a39bc9fa5f58f89830884f7148528c0735718b131267c46286d4e920eece559df068e48a6d1e2b9b0033600408655e10e48f2144409a8b7912e0785575496276baced7c5ca0e7b5853178531601b9b2394d823dffc65a031c6fbf71d6025e8aa086787f28fd99232e5d4826c8901f91b11fa5bc7d124419884f3033a73ffb253106858ab0ee21e76e34900ca0c8344262afa1fa535ce36665e6890decf4bd57990cb44612dff3c0717fe80a16527b24ca4e1bb500657a403674e3c8289e235cc5e948386b4611d64b5eddefe9772ef2d539201000b230be70afd0a612728e6cda84cb7c2e05703058d10342a2a63cea84c0d2cc7ccac4dc8de07d139c78cd27c649d9d6ece6aadb576b8c94eeebaaebbf1393e9966e103237227d35a17ab4ceabaaeeb6e94b5761e941eac1f334a73a3bf5b7e938573cc481f5c6bad3a5a37ca1cb3fa37cfabb5ae93bb2770f739626e7aa1b824da749e87608e6192a4f9a44933c5c86e5e21fb9b5fd01afcfb5551664e6dc9b96962a14dfe26ce24a34a76f3267e640e5a8e590e9c197cdf5d77d7268e9bdc9c7db7dbcd834d1c3f8d019fe6cc9c9904802287571200f6b71c54b879daa8e5b0d9a855d48df7b761aba88a838800785dc9b8755d0393eb19af1f198d0aa3f0fa096e8a3dcffbbeaeebba4a826654a60851346ae4459fbca24630391b35d00834aa5514082607b251cbfe222826037cfeadfeada23cd581dda0d7e1083b92e65abbaeebba4a562e70f79de7791e284669bcb3c29e7c826222f8608ed0437ecedfc0f2a79834cf8333371bc7dc828ab4d62a0618c2fef66325df3200b4213a4afb58379b9b217a8dd48d32c7ab9e0210856e0b7f7bdda88cff570680d689013ecdd92dfbf768f550e2a6779a337366cedacb31cbeee940e115e327d0c297a35854b1e1ebbacf85cabc0ca0fc724ebc78b8c90931e4979b3ff4f8aaf0f09437355a6b1689e451e12bebdf13e79b03e6b3d1277f5a29bef7defb75dd07764004d127ff8e013583f74d7afebeeffb0e86bf076dd360006a0a4915e5f194fde7279fa4fcf9e493c7f72de2f08311af5a6195c95963aa1ca54183a23eefe1dfa7f4a6a23ee587063df98bb63cad10372c293dddf2b445941607b4f6e5fa95cbd7f6ab5ffdbad6b37d52bcee757d6506521ce757bdfb1e39a4d65abd6d014cb7ebd1330568d48f6fd3f53ccff33e18ec50c4608797eca74322408a990374c686ec5bb889d669e19a4f5abba134e28502b662f02e14f8a439b7e30101f0e1cd097cb8e99aeb4345f93841a37edcdb35a69eb9a9272145462004d7023a5351679ffcd3c8fee7007e3801dbef7cb85760cf83dfbd7def5e0ff4e46e300ca968d3b7f30bfa7edadeaebbf69385ebdfd87fa7e07cbf7ed7c0b4e9d39e91dc7beffbf05b8046fde893bf8fda35f7fd7b74cd2d39f0a351b41dc5439fdccb2c64ef1181215d160377dea50252dc612cdadc80427bd3c29e4f5aebdc009f34c78712fc40a488114785cf053e694e96b949859b9ea73934c70710f484a793e4755fe75a7eb3e702a4384e008c625f141f6c14eb9a0ff40cab9e628c98328ac518d1a826a24ffeadaaa70f744dd7d472f4059d21a251b447594c195981e27c748451ec8be283d50f74232946b10f744d097a26565130b83a92a2513064a053b23f084386467d51340cae045d53dfffa3754d2d63948822a61543834acfa8314b64a7d12d7c6024c5280676b79b483fb4aa57cdeab8b0aa08113775dd5ef6b7aa2fe7c61411e3ea181695a931af1d94e6f3a2f66dd1333fd4d30a3ae615e344ccabbde813adb55652cc22eeee063bdc82957d6473f38c794d8981b979c6b062626e9e652e86e566c9c788e626bda1e626d5428b5bf68f59e266bb46b4114d897c8666370bb87b90825fd85182bd7cc6b09460cf670ceb8357d0a8cf8beefd635e5dd395232be88c173d92e59111fae4efe7c809a32250140c183af91cc560701e392a0295995199d897cf512cfbf7831eee3ccdf7e9dbffbe4302d9817613cb95bfb250e2cbf96a61b9eada579e170758fcb02c797f13a466d3ef61b18c79ad3a55cccbcd920e1eed81c400b57578d5c43bc2fbbceff33e9b0310748ddc791a25b7888398bb84c17901770f838b79799e11cde38d68231af646b4116d44fb609e487aa90e79c338e27ee776bcebbaae1bd1aa64ff6f8aa3625862105d02010355f61e885e438a9bf6a392fd3b237b0caba2625e2c96cd6dc2034d851ff3eabc773a2f929d4856ec2e929eaa895fadd3e9fc29961fb00c43ef45d24b7d6ab5502753d101ad46be4bb2a73c75e46b611515f253bf7fb1ec62d7dddd99fc70c8c0548b9a92ecf96cd5f9e17cb62d6e6e9e14975b6eb64bc572936ad1459556e9e0131dd0990735666eca3f509aee5bd52a24d97a9e66fbfe38be2bbddc239a18d9bfdac836aa89397859879b4c2652a6593451056bbf477794cf116d94cf98574709eefe8c6165a753320d9ddc3b9208430709dc5fbf2ddcecb2c4a3078faebbee7e74d75dadfd9d6bd7116d24c6c836aac5bc6260314bea9f31af4ff7e1b859cbce4d4d65ea83a05a6b1d45811cd9c41f62ee72441bd1b23fe841c15f2d4a4b8dd2840f8373b3549fe6ae5debaa497b6238bf1a4cce6bf06f12860a0ecec0de855c9fa668eafc6ab9e60f0a45c5bceac9939013fbc6c81e03fb227453f6a87cb5954cb350c296c54c6b5d40913b48e0d303a384f309286e9643dfa4cd1e15fcf8cbf48a2eb2c85fa6352d6ef93bc2fbbe289fcd6bf0efe00077400c2013a9dfb9451dbc5ccb3070f71ef9d5a88c7fccaba23e28f4e439491823f6052cfff06c5554c6df61706060981c0c956f0bb8fb1306b7526bad252ee615f3cafee12b5cf2d5c2b2c9f9d5be5a25bd9a17850240e5711a333eb7dcb23f68ea19223ed54744d75c3aa3baa7c90960fa88f854dde1c119ecf7b5a59ffe8ce88cffcbc85a6bed83b57e3c28f4637d495a54948642c93ea4a57fbce04932554b7137ee0735c8dfa7fa84e5794193c7943bff2157ae92227fe427feb543f07ffebc23899eece943527a6ad1e676df64e73f9288972bee58225eae6f451d6eacb1c61a1e4562adb5d6cb99c05a14373f2c964dce4ff5a9eeb5e4d772037d250b37cad0cabb11268a72223aa43dd37fe6b8b92944666a468bfae6a6abdcd46650d397a0a6ce71d35ddeb88af297af7aa6a7641747b159467f59a30f6ed593cbcd2bf325a879a7a0a6d7793f7f7ef2e9f7baa66022ffa04f7e95b8f7d3695d21dcd67585c8bb425e1f50192fafaa9e688ee333373971937b0cafbca3caaa970e8b447a298fbcbc949e44ba98742f8bca6a3219e985fc7a7a92ac3f49e4e052feb75551201552fe5d3eef4ba4baac8aea947f3eafaa33d879e1eef40097828c468f2445224b2fa511163152a44792eab42acaefc5248ff1207798ce1da8d1d753c863a0771bd96902af3ccb4ff19b4bb9ef3637b9477193bfd7440774087e4803b7c0a15db4e9fc85d2883a7ce2c82fa26ef4674ca6a33f6fb8501b464f7a1f2e623114023b04c3b0a435aec241cdd08fdee5e9932a8af4a2f1298eec42a211fdf99da2a3f7e1247245fa977755d75c59cff8e30eecbe7613f00b39040c54a997279143f41aa9970747a4a7442ee40b590a43aa547a212e2e2e0deb18ac673deb978b6744145c6a54b68bc545737d961fdf8793344522690a04aba843e7fae08a0bae9344a7d549a20a17dc95b9e030c638e4e2d249a2d3eac03a4b3a2f37755cd995f87057f90ac75775c6faaef4959bdc59ae7255e9ac0e156ef2efd0c02a37295e752ad56d791246e4ab0a954f8c5c6e2d5d702eb84eabb5f29224bb0b2ef42fabec4f5538172a2e3917975c762a6e7217dc0ac51863dc781c712712596a682554b1b8ca555dd3517554ae12f910ae6a4acdd09ffd2e39172a2eb89c9b6d8afeecd2a5962e545c702e3937690756bbae8a422f1f0c8a480f85429f18fa5048f454b4f9fc489672183ffcb03cc31f1f491ee155135158765ce1e83f64d951d2050e61eaa7b01c3dcd2372d5e41c653c821c7e9321b2049d701c65fc540a3eb842763187510ea3904752cceee28dcb8748ca4514949045b55afdb36b388744221cae7495a5d68e589fd4919d4cddac2492a646244d89489a3f18ec48cfa01892481731e8e195ab3c9649efb18a2af58f9ea6bcd46529022f0ff3424a3f2a8f8cbef430e5912641465f2afd11987f295f5c489a1a42fa700b272a58c98aaba25e29ff95d7ca1237616e7613d97f8549adb9af48c59d0108f92b3d2eb0fbf0c3870f5df3019bf381aea1818629a030d0a033202ea4d185e13b3f3e268d25a80c7af2ff80e1a2b1d23a578438575aa01c6b2b2649f554df435a1a84dc340d5dd3a341b62aa451a03070b5d682c268d44a120db255d44aab9eac2d4168ac2401c2adb42a0ac4056b41694c01954165723960c0f74f508e07051731e2a6fd558ed2502e7cdc00c46b1003ee46923b24898409c1ef9ff9b0dff9ec7cff6b1111879b9e554b8b3fe5aa6f3e60926b7976ab48ada20eddf75f930e53f707963e00017f6e56c75e5bc85f797611d51331e45a0ef1d1b670f3a3399a2b92bd28772576fde5074db8dabb4db8ac5d92f33ccf63626ff7d1348a3411adb2b70811aa225dd34a7ac6bb09254aec92f1b6923bda256311961c5dee3688fedc91472d25adb9dd7ba17f82659c420922110e4b3952e1277fd06d679cb590236db491e3196315462a64ff110aade1663b5a21fb8f5fd0192fa99fce714af6677d8a548e52fce43fdac66ea25ddd44bb465837d1a8310ad5d8f2f0de7bbb91d535cde70b2a4383467dc0e895957c8e2c8fc77a9e2706a6b56bf5c4057c8e3257e2a6bed553101070d60f44dce46f33d202e3a8f71deb6bed553513262a26459a89af0ca11271b0d93e66b9d95f4d92290dfeeec5f3199540512da207bfe3fd0b39e68cb65186936026dcf429cf11e7295b4ab03c472b4458a73cc72864ffb1149b90fddbf562c2fed9a3ec7add9efd6a07ea25da354631c256da354631c28a8cb08afac8c6281af5a922f7c9f97c41658a74cdfd5b7ecaa03346dc321834f73123fb7faee779dec7e663c0a17c7e6c1f1ba5717b9f16e5cec629a24c4af6ef0881ebdb5384b1b06026bc9510b342944561e679211ec208abe22363193f9f11d635adea99d18856f5bdf75a5294416144a33e61f4c95bd5aeaeb9a5a884305a8c657f21dc565d718a2afe106163c0fda708f33ad97ff4cee053c0d77e93a20c52fc75dd6924db26bfb2d4dfe5fe92acd4653be99814f8f3cd340b1d4c01652adadcac70f9e498156b593bb97f762c4665daf32c4bc8c2aa186516d63523ac6764f55445a33e558c300b039bf4ecde8db05108fdb998544bdd8f3316b2d49537624c64e2a68f2d5790af742c5ea845b8a5330a491d176be38e01775a7a0c18440f8041018421110b0bcb9f37c81df5946af289d0b390ac9b0a953c3edfd154edbc1af8ec18155cce1429b610607a85ad4aae2fdaacfc87b43919f4c20f79765e6169697921a167097d4ba8ec5b487c9a12ff9e017bdec3a477f911f632c644a297f2080bcb91d08b443e5a4820223a9b75d5abb575fb22e65ebd989be7bb46276e823eecc8275a5e44b23ec5f22196677daa6505770538778e9bfc33c56b214716f247879ee56537abd0b3bc8b3f6c4efe8ca0af1bdf87af90a24da491b49ec21f59152582caf3e2925596a21437d10ff4a9e2262781f71f2a6e2a3fb74f0e74ff1c65de4873f31c61d9436e2a79e58f59155be4bbf2db173637e9155fccfa06aa999bf40a3054385b8c523c8994ff38c54d8aa3e2a855f8b2e920fb7bf68eb091899bcd83ecef8d2a5284893137b9c864d5e4f6878a9b3747c54dfec175e4832edadcb271f77f726efa8c42501a6afd92f69bfcbebefd8f1437d5f2732bc7d94805cd5e1798057fa8f8c9ff93534fa3103eea87a45924cfce39c51a891c6f53723e677c709fdca78a9ba3aa6b5c95fd8a36de3852b106f6883a26f394d44db66d1d7395af3ad6b18e75ac631deb58c7328b181399743e7543361deb58df902d7b0adc1726f44ae158c4588391456992388ac5479a92eccf32ca6e8cb58ab23ece2a2af47636e658d878c3570d6c125fb68a2af59328cb8f5e08cb8f5a7ed4528a4744cfd2e529decef091b1fc47e6f299b53ce9858cdea53c12fad193ca234d82847e34fa23a26f69799ac2a47af2f7c6c09f85ab08e248850c0b9866d187feb4309b8dbd59893e348eb4514456c1a7859da30c07591ab8746d797e6c261d6e72d328cbb959c55138899ffca548c9a708f37394d129679c41850aad42abf46a95a493e453848d3299f8a3e62e31cb4d1fdb3503fedc3e52dcd42f37cf66925d22131db3301612263171f3de082d39bac622be91a5ea9a51093a53451e69302e1183ec7fd1c034b37ce8bd8f5514a94584893052392ac26d2945e553d146845d91cf8edd00a48623b4000847d65804458d4a185918ca281ba9b821a334f449f6bf66e0ef45df2a376f0e9fa36ccc5554e8fd31132e373b252cdc1a6d15e53fe654144db1fc8955b7ece34b56511f5badcd48321c8bc1eec5a32d471995b102a629776225061c23dc52e7c7e66d018fb25b9668e7269f227732ad3d4903081a051475f8c016a9a883973f5084519a514665fcfd4528286a54023df9934820d02813619e4755b37ae5a6efc53bca6e395231cebc06ff4b06fcfd39ca74f0fe3e8823bc63c05f3e4796f7a51f4a3a34925c9e80e266b942a0fe2d4b37cca1fb7e909883f75dae883a74ef8d325acb46597f6c152542414ffe62116c4ac8c9a215d9df26c246192cfb8b58a2246e5a0b1b65a2b2c939ca465977aca29a9e5ad6f42461b9df32e93f2d0c8749c70e1ef5d4cf4276fe220179096c00521c2785428994e3db23e57852d7d0d033fe3ceaa95136340d60d3d035202b6c001941cc9e6b15056ad593b36490cb0a5bf60743f6f781a334b747113d58dd835ae00a7bdfb9f4e35bc920d8e487f43e1cfc889d3fa4e752f8fd313660d2a0170a18e66db46c2871f3e5fd6db8dc74797f0f0decf22fcfe3e5a68df7e7b18407aca2fe5149b23f8ae5a6888291d593b7bcbf49c3a15639556e546c67d4a6d0a464879945c9fee2f710829a2d60a0267f92371240f6efa16aa1925b7261e7c2a3f742989c8d560dfdc963c7c706f931f29d902ffbd9e3b889f624f26b6e8a42becd4d7e8389ec516cd85a1565438a9f94f048b2e3c6aaca53c97e868d29d9ff63a3956b16cb1b3660646e72cff3c812803398998d58c250d1b1013e6164366415057ad59383649966c51756b9cba79973d3cdd3462bbb59b3d172f3fc9b8d286ef61299662bbc30c58ce2e66c07366a0ea8396cc9651fc13e567fdfdfadfffe09ce728396f00077f64046c0d48a325af904c54272258301a0519a4b693adfe2a234df836294c63ea805c201122d4a03520272b9e9716782825f77ff37fec63f92d489738f1bffac9b32f1f8585d524a71fd15acba1eee489f63667a32a485b527c318ada7f0499aba41d2542709febff15fdab0d9a8d553457d17778e28d09a15dcac45f7fdc87b50aca6abffe47bfd37fec68d3f6f645a7eac185557d29e81c9e52aeab6e4404fbfc070085e84b051ed4bdde82660300c61232f46b591175df3dde84c098a1f734665305e61efcd5a2d0753f269dacc59ebae8ca8164028f82483347a22b988c2ce0a7760ba1c33130b736662d152ccba6654a3335e51a0588e59d7755d775dd789b5763132b061a3d641e8978d5ad780b4efd64168d447c6e80685ca744d37069df1a72d05909685ec4f04c873ebc01cb36e50aca2480f8ab9a73c71eeac7008ea404e40b21ae0ef91c4cd7e2f47f607d94035310a0df019c242989b9dbb94fbc31befc3f1aa49d7a7220f9dba513e89ab806b793dfd0261e7f73df87d5ebdafa01848e6662dfd9a337a225bd4e146ae0f8a819c8064a168d320280692d5af0c63bdc44da0582701836420276ef224e033c71162a018ce540b2c8ed0a143070108308001e4c8b10202bd07047c02d280748d8d1648ab28981cf8a451306ad868519a5933ad107f88fd365a5d6342a1336a342d57947985398523b2839d152e75b2984f7366cebacc317353113d84a0e6c77293eaab418f550d14d9bf064669ea7f3442647f1a15a5f13e88366794a65b726eaa01355bd2e8978d5a083b41b1ef5b722d6904b12a8a65ff6e1d4812f41af92b4b3978df3d0ede77bf82cedddb4792ef77e40de54255442a376fe9725387a4399413d9b263420a1c969d2b9b0906cb527d24b9b66ae5a6dcaa98185c90219fb7fb3e8f5887803b458cb8c93fd7c55c75d664685c93a1436ae459d7f48dce8472f4d64e989101d725e958fe39ecf3bcc3b2adb6ced3e9dadd3d767675aeced531e166f79fcdeb4051f43c51f43c8ff45717b158ee7c76b6999b1dcccd533413e1b8d93d70f3e526ed22e662d22dc9fea118de20e0b3737559fadea12842f6efae0f37c1a84c07ab9dabfb0b04574585725de7ba4b42b950ce43b950ae3b979bba57c7849bfc3a81bd3f3b5727a773869b5de7ea5cdfe7af58e7d9baf2fc66b95f541b7903c600298e137c826df8f4729efb3d35bc5ced3c35ba6bc615da799ee7e1c4087ca9f772e0166e765ececb815000298e7314cb1eada84f87006af29ea4e60e3779557cfaa4f77727ed70d384800ffc4a36146cc927ba77927561a67cb78aeade7bd1dfeb23497db68aaaeffd47a3345ff6fcbd6fa1511a4acb1eadab790d2ef2e0a96e879b9ea77fdf7ec7f33e9b37962b9ff5008c7ccbf3bb65eff37ac7132474c69452913eade964fc7d156dc0ef4891fc6cf5e4bd7f5bc8dea785ecfd3706adc17b52457d3802786550937767d833e88555bc4dc0fe95fc6af5e47d477a1fad9eaaf0fcf79d8fe526efa3c24dde7fb2ec3d08520af294c207ffb379c2d0f39f943afb685fcdcbf1fea36255de7746f6be5cf6ec2a7b1f829ef37365efbd112c7bef79ded38fe626ef3de4577393f76de126cffb8f86a7f0c08f9aaee7d9f2890f8e932ff6aa27efbd1acbde7f4cdce4d96fef3f57f9b59afc92b8c9fbcb04ec3d6843db913465adb59fca4dde8e7af268de872e37ed7b1f32e1e6f71e2d7b1fcdb31f0eaf24c12886a33085acd6ea3e7c740d06ee0c035d63ada5526c92aeeb6ac7f3bcda8f7addcdcd6aa160f0d63cd7b6175dfb6a5ee0bad5ba817d44f6f7745f71f0bed3d5ce941c27f87802e48a38b0e4b35ffdba60d83ea0282028ae5f1407254adba4806afe20091203872f7681cf96e527f8eb344ed3c0bf5ce0fa9e13a9b99627927ecf835ddeef3cef3d8dec999bbce36dd1b352a659e8c089ee5ad756722d1b37bb5a6481efe34c653a78af0357cac1cbfd5eee92869e354edf6a4c074ed47af0a860d975f67a21a59f68adb516873516054ceba9effd586bad156d3c2e6ab5da0f6e7ee3953d0048cbbaa693f49007342a04495a16824675127dea56121f5d73cb2e029da1fd83247d8459fba0632f1aee2703d32e6c50cb4dbbb081ab5720d1e6420197beafdf794f7127068ce36667fc5e59e596b3ce77a0c067d7beeb7ae6264ca659349146ee32ad3d91e5b36b5d6b12c5e6357c9363cf5aca13b58a02cb1faa91a6e1b8c9b1c0ddcc5754c69f808b107193e3e0ac98a9f8953f6c19c2f586ebdb32bcb6829268f5ac672aaa5f9d44a33a08b39e750d901f5640bb7d6443a1dd353d069d692964218bdcb52b707dbf56e0b36bf9e5a675f3abd56ad6ebea4ac7676ee0d5dad5bb7953bc9c2b85d3bb6552bf5cf9fcab45b6d5fb95eee1a2dcb285f42dd93f7df23aebab031037b53cced70110f6cc8793bd09f856d4c81b95de087ce8c17e4165ace5020f8b05f7bed4addd9f1f0050f3fb666eaaa7cf09a68f157009dcec94baaf52cc50a22252c4888ad258f0a76029b22894765e37093414752f78bba719889b9e61ddedee920e830d64879bf082816f3e0f7af7a7b57519f430242d159bb3511a510ab5552633954217b79b47f7de7bb1277ef77a7f436ba332359fd676997cc40fe70beca3f6e0839b34f7fb0e371870f396f7e5a6f0435e2654c6ef925b5995b8694462451bd08f4fc5db82b9097393a3807c968897bbef938803a9a88f764b11025d79c96ee5eb3737dd7b44cfe8f86615b5839ffc6b237123e519fa1420c9f7cbeebb1ed133f5aed47c619043d786cfdba22c5ea84569e8480b12f4b37c477a19043b64a94a583e449e487268e53da24da8c3e1bbe4d99d43f215e5b3df668f44922d49c4cba2b21ed1332c7f5940cf428ebf429e3583ca52ff79f347de20da8ce55d22e20084cad4ff7c47d61f9e3fe56552052c9636179696ca4bd5ba9ee7f7767fffb4b8ecf76dee5e20d5e62c158bbb6f716e52c97da24d7b166773e5755d5648ded555d27a9db8f1fdfbaa65fdbcee5a99b713fce1b8f9cddcfcee2bbb9be75592fd5fd5f18ace5a2d373bdf836bf1849c4c0352b3652beb4a2b2bbdc0e737fb6694a6bb40a80caa93b8151495033db949e58c33a64c912225caf9cdb6c827a5f1e06100039c4e94767e334a41a06ff6e91c130338404d6618b25f2ae05b362b0aee9c94f659f1aaa8ef8ad3259fdf2c0952c8fe5f16d96753c0a7b5b28a6a71f3f376a85f0da27005ae4e3969144ab3241aa501b9b685ecfc54fbc6428ee30c20c571c65c1be2f8b538d7ee80b305fdbe2942991737f8bfdb0e9a685837859b6b06b61f8af6073109b1f543d70ce91917936854a8c60dd70de99a90f65dcff7759febc3efbdf786eeaa910bcba033370958cc6768bb387766f30b05219472e8b2d4791e493e4dd9fee721ad8d470f1ea708e302be7f057c3b8fa7bbf603475a48eb9a21f466adb5432816b2bf157f5c4176439c2121c00965214ed7dc8063adb558647ff023fec8793ec35c8806458938105b392cba5c8c75f7b70c6c69166315e56529cac4562709124f84a052a5ceef46cbd2f7632d9774186bb9ffbb9138fef329b6c4d76d074d64b175d1b0b8bcd77637a11a61ce86b29e09c3e8ae0de3cb91d99660adb536a4e5e0536cd9db3fa334443a0f71937b809afcc7a715f5e97ce8811e18cb53c4c9a588cb93549ac0c0b70c6b65b885fd33a4657f326c7783ad756498137e41656ee81adb35b60ccba033fee12d8760f4c94333406badbd5ac0f67b7025bc5a78b953f0f72f370bd8fa278355fce1b7fcd119885e0387fb9d7db8872c79bebf6d3ce50f7bc3c02d2da3916823624c8a2e51899b3c24182c60d1558a4adcf47d57feb0b9bc6160fbbdbda1cd167e4151df18a1cd5a6b2d142cb64425312d4a43b5105ba212d175c3f64fb12506c60f7a2ba819cadc34a334fddd6ead9f42c4b971d314224e76d10a6a72b125b648624b6c99baae4b714665bab28732889b6ee7bd27ade5fb373db879fd5e8c5bf4d44390be9ffba2b803927c7bf8dce597f34d7113ad79996661063068219f62eb8a812d5829b5f65e01dbbf5d772d4b78499115a271c31c95c9658a1ff49d3abf5b98bb35ec3cf1de5bf844251641cd20d620fb7b618e0b7c7e37dbc9b81f408ac3eda0a77e1ef72b3b9fd08b30dd0d21187243d7ec30a4a2425a081a153ee97076e89a10a767681515e6eae949a342351a876ef1e1be31d46814edaef9c040677215f561e1130316d93bfb51241e8fc7e3a1f87b81c20d640cf1ef2605773e694d861f3f4ddd0471b3ab379c89ad8a62f9953f2f486cd92a8aa5fcc6a02ba52db4e1128dd026b6566e53dcf4bce35a624b6c7daf6f49eeda0db989041383fbb80e5de82146b086740d7d231a9503a4f73ad8b70bb8ed1782145b6badfd80e440515d44b3288dd6014269c4668d81fbcd9882eb37e9b1d9c51b5a4fd6459bcfd687211fc0e16e751237dd2fe0fa67b39a47cf38896a16ed1b5094e7fd6c1dfc4065fc79740d1074a61c524ffe34d96fb42154c60b2c5be7a1967e0e6badbd650568ad01d40ad93f871e8074017be73d5be0b3593637ed8cc562dd3ba4a29e9efa4d393b70f6eb90dfcdfae70820c571aea068f0e2869efc6b08d6fa7dff7962e08681724039a01c50ce09cab920334039548d22f4d4e1af39a0336698e6cf140dd5ca6b858915256ef256911afe2db6c43c572cfb7b72dc73869b9ecb73792eefc91be4284412e3ed7202a4384e97cfdece5b22affcb7f276c532b14b60150556d4cafbdb989b8dc408126af60ca8c9573d036a5a24a8c96dabe5a67521e1028d6369e448e845f18f88fe8384870f1a0f101dcb11874421aa128544a2d00ad86265e4e757babf2ea4cff8c2020651fac2d5f8f87df88a0c3ab5f260872da4a79abcb40b5e7b97d0b52bb22d8bec39b7db94db854265ae142e166c60d4acfdd227bb4aa0280b068bbb3259ad5f4b9bcfb5fd4d2103ff4e31456d0ad78c4c4dfed93b228594da20d21301d7fb509f074bd6caec134bb34f3a08b96b6ccbbea86d59598c9dc2ca9e644bf34223300cc1d07e46512c8d20b9b9c949f03f64f8a0edb0be23a1c72b2c20fe23a307b558f0c3ff4a5e13cf83fd21574d3aa2f723b92202a73e0f8e0f767867b2ec57d69e15c74fdf1a174a5e79033ecd41ac153fb4f35e1941f47ba5cddd42e9067c1e680a0c3f081e686ad5f22bdf9525ef85880f7a219fc70f8648522059eaf2bb5ff42e8f24057e5b510d4b067af2bf396423d12df17d7823f1a56171d4f4e5a8c9bf13494f8918b464103ad426484059233f21be9051d5a43e0c9af453d182a63b855b9b0235af19d45473f3e6209173dcec1635f97f4fdd868f68b390f387a44f84dfe413e05bf209d64d817fc9275838257e2e4e585e2a661525ba3437fbbd334447e526bb8475d925a869a7a02e37adcc656eda1b354d71da5b6da9f023093f08f8e1f787a591265d06091f97468e805e3cd2e408fe0f928b49d7e2c6b738d05310042a8f84e11b317204ffe79b80e0d3d4b7645ae3c209f9ec04c1fff920a0179f8aa52e2380fff342402fda31609a2add7cbe1444fcce1f28d8454569e813f26d511a9ac187c56e0bf6eaa8a87fa828a453616904492ab434d25320b96af2fd8a089c02dfbe885cb176a4c02702a7422c9ac044a657c8148b2aaac8a08722f2f320297e93345b2ab8a3aaa8163ff42defdf917d82484167cfdb07bb4e7578d5a452d146069d123dd821b90a5ff456ac7016e6a65db2badd55bff219b62aeae6e4b46e4eebe6e4e474506e570a7dea1ace0bc60d23fbd35be302ae654f4167fb5e19f8bc2d0b062aa3b261e8937f481b01a755a386d39ae12b2d2ea7c55bfabe2de0f3b670ad0a2a72e7dba2560ca1c4cd4f767a57b60a8ed0db02ce115e999be10c6c27b462f71d1befad686357489af2909dbbd1b77caf7ce83d24bda39596b2032b3b2eb274839f079ac225a87c213bb2197ea139bbf0405321f854e481a644efc33baa9bf03f320cb853da9add82668fb0ad4ee811a93896b775c4e7815d0db1fd8ce367ef076316ca72bfaf45fcfe138543f257b2b8d27d24b923e2b584b6db7e9f6def96428abd2f8936f74b2ee1155f441c3a9722303ef841c6074b234dba77298d880ffaf1bb3288e8c3d248a82c796504c4077da9cb20e2834a413e8f450fde16d00a1e4711cbcb0a4d815e6e40114953602d6d8e9d725b8d1ffe0af4f84be20df816d751753aae31b4394ba524deacc4ffd81d5ccfa58a09dbbb5d5b97dd41f77dae277ade8db06f90e187b4e2b7e87d4afac5fff4115ed72d57e789e4e7c117227e581e095f7cb03cd2244858966ec02ff14053e097847c5896fac72360193e7e21e08fe591f1c1c7e5912641c607ff08fe7c9323d9717dc81648d21426696a4c8924eda86c18f0755d2516d7fa88a41503a697d5ad23c2000000078e1c007059000260a2a61db7533ddf6900a24dbd32e167eff72d2d158b1b80686371b857edd89c8a45474871e775ccd019b2ef11344fb72cad67fcb658f2795b9edba7dcef56e4cef52040ab5bdda25d27b7eea8cc8d470768ab8186f00062f734cc841ed12608fba5af7ffc95cbe3d44a06e38f5e06f85b5e244bfde0d3d4872cf5874f53a047f24053abd54b195bb9941d58c745966e44cf034d0909c08b08505823152a3bac8eac33cbfe42d2940b4953a4965488a4291612894a45459b9b15b2f49537e1d31c24002f22d05429b0a35a213b360cb82bedcc5261c180cfdbb2387cde561b911d096a763aa066ed9a4e7261d7891a78501e1d15a86c23404cf208c79a10a4b87ad65a9b001ad1a67b9aef115ef209f03fe467cbabe4831320dadcd617f09f1d15ae13034ab3843c04edcc80d680a2be5c3d5919d01c1235a24df7a00dd486ae1fefb3a5298baba88b037af25722bbc5f94095a1e8a83eb5286e7e1d95cacd9bab57e6e57e8f914126d925648f7d4e72df60d9544ffd5d253b2e2b6879f75d4ff8c12ba116d20b8c8d2f71e4300d404701761c800693074d0f1b7ca46ef801a4013b3ce086878e7af40313a4dbe17d4d7cae1d5d733fd7d744a372dc1d4228d0c3fd4f4569eab7649a050f8ee0a28c7c7e2e0b5c000319d0c0068670a0031ef800084220021f467092a0042638010a7e002288141051c10a5850a4052e788191233040a20a8590a9b556191d1e8abd07673ed5abfb5e6edafa7db5f3ec8e1d3a7a80eb7f0658755dd7c99434d0d0440d28140f78d0d03051a300052c61830f1f3bc80c60800e256ef8f143870b871c72d0a18306ecb0838e241c000108e8c8c10d0f3ce8502281094c400712427ae8e1880a5ce0023a7080818e3e29e2890993e97b9ee76d6003ad211de8c00d3c0002101881ef7742e0830f361801094890a4042738410d5000041034088208912254c00216b08ab8c0053378c1912344c040a5ba3210628821ee6a45041143cca088226280eb7f34f8922411c20637b8c155b58e38620d24729003359270b9cea0c4124b5461a28926d2e8810f7c60861f2c598206109e782207138210ca3084da755dd72494117fa8a8cc87033ac3ca5f0c90c8fe960cb87e7f427c2d2ae3ca39677caecfd5c980b8be820948719c2fb75ca9c883a7bcf79e923c22564579a508eed8e131993affb7bc89583711eb2b6f2c2730787f803b3b81cf909629a59486333755f156c5dc4745693c571f609a4ff1962b0b2ed7b7dfbd3fc6b65c752296eb2b57adeaca53f4cab57ae5aa6746642fcf9b45ac9753c4caf55db97e5c5ef614b8562f5f6eee9f1544a2181937518c8c463516a2588b8e208a91716b27b166d235be84ce60d164681cf5281cd6650ff434cebee709ff5281efdb0e19caa9ea839e49d07f1780eff7fdfb9db764a8ca14b873e7eb3a56fbe5a5ec2e8d50aed28eb9d9334f839a6d051acab9d93637f9dfeaa99f64bf5d9c9e69278d459fdce53d52a4049571895a5608e52a4ab4833ef98b70404d2211ec89e8073352349bc2185ca953c4cade0528a953d4ca77092ddd12376fc7a48b754edc5c915131eb3e2b72511aef641792a66e98bb3cc7ff422bda8c6fc57ed155021e41a2ef20464fe466d28b1ef438f0e7107a16b06bc50ffe19ca8172ac656e628cc5173ffbd9effb44fb3d885fe6a4634d1cd07f65b803815049822e4f507349879aebb3945786c3bf417c942608fbe283fd2c8f9f8aee1a919dab6342447621b25382cef87f24119cbb252e984f91ab934f11783b572887f1b5a00f459bd1b3e2799b8e4df83f3a8b5a942609f8fb53e4126d8200a24b229d597003614b229dc5925219b03c55501f089bc3bfff919eec80fe15d41c96ddebe60fd9c1ba15b273d2c93a2adcc4c44d5e764bdc245285aab8c9f149c45b35e94a110ecd6b702b88664e20504b91123187ae2c9974b44cb5f4caf34ad1df8aca50e1bb176312e9df64dab1e374d8ebc2708cf4bd299f8dfb6ce8799ee779c2da2f372df12e12b057abc31c5661d561d72645ccd635be448a463519bea46d6d85b6b5141d133989b9c96bf54ef626038baef117aa67ed2f98137c8a62cee408d861f55e8c5dedaa46f07c8b36224845207e7406df66ec006103fa1f9d3b55dce4b95b04bc7276bb9870938772ed12b1442d2842392f5445a4f21adce56f2c946be960d52d9a8968a77debb90784e6ee71a0b92b475a7848b20ff7e1f75b4413e110019fa259d731d1bdbc06273d46bacc4d54903e231dc7696edac2bde6a64ee94e6e144df0d9b8ced5b8c6354e84f35ccaa18fa8346b3578591043866804000008b3140020280c0a87c30242a14c52d4e21b14800a7aa852604e9d4984390ce3288a610c424419420c03c010003032246407846b54c05b1736835bc1ee4720484f75c9ca8f413d08b03368dee682fc6f0e72ebd2aacfe7d8240e60b12fb2a29f648f720d38f8d5cc1b9986e09a1724e2e6894759e436eaa5590e7d332257e0de0160c902fa7afe77088d6bd556db59bc86081544b152d3d7678e7b89a08a25d064cda06c42e13ed9780aceb9910a777ee03901e9694e27d0398cea45169eb2da8b2108ad7db90e478f89fcb44f4e50189e437d59e30aa28f91c03343ee325c7046301069aebed4680017097af936b433c57a2704e434be3e381820f52569c1d97ebac954862f9a7512f858399a67b2c915cf4c24981723c158b77c1790ffcc89df298487dd0c7e4d93b20f968e8b6b49d1ad85db963e4a07716ee4806970bb01f32c5da4c735e20486d8ef56e0cb6c684265b12e9d8b02346fb1f9617dcbde8a9bad1080758bbf34ecaded7d95e0e29cd60238f046da22b7b905b88c80486dce3b6cd1bd9fd7235fa36e200b362780e98ee1ee483160dbd817d4744ce76ce34406e8c4804e131837b855447fdb4e943c86693e6e7575c3709e28ae665cbc941433d406e710632d076b94d2145b92c271eef6579c1d4e9c7432c3a5bc8923393bbf13e862381a7f2c9c41d768146de852313746e98f71f0b3b618592305bbc9cc4a823db13ccfa4aa406481774b64bf521eeb186bb7c2c4f5e43f848627c4a800987dd38a1bf9096ec60ab882b26b7c1325315acbd582c96ba16f21dbb1cd4acced0c29b16200abd7826a3e04a2cc88247637ff9f00d608bb6bce4d2ef4a69efac76f569e13eac2407b5798653924d2a08e5fbd87852810f4e7cb37f85d1a1d91aa4032d98383af5773b25f7e0636bd5034fd0c5dbc1e230c3dcef03582a9b2e8a9f770dae3a9775e1bd3c55348df0431e0eb9a6990305572c9eb24c982e33947a2455f72ad59daa0c3af63f50b643c2060ff823e04dffcff6213c850048cd019bce8ae21829cb377157e57a898136961e74b867491e69e06d9a3e989f46ae0cc00e44dce870bc0f9c4376a488863c2a1720c2b0bf24784e27d100410764fce02c4943c5d2dba43760a3b6f21729245eb57d496a75d7747af909dc5bab80811a2ba12f5d82a2d4f35503f01a9312b4b2d73b462ecdfaccb42e73188203cb9dcb97cd5cd92c58709259b3649a2089d2771431e541e06e02967c9e81ec93c00e54d06001e2f44f3e356b52d93a20a7a1b7ced61fb181b73108ff14be4b1c49442efe1374b2377868914b06974b248f1f349659831f6be63827722001caf5e08469af76b42674e4439bacbe7b5a1c191f1d2ea10769ed0fea101386c761561ef5abdf0d1a9c0f28eac09becac03aca9ac72c84a7c03cda37434ec3f178fae9e581564364d0b09343840fd2da11b9ca3baeda510c6e3a994d2343d3ceaccde01c7caa789c09f73ca54621c32951f68e1b27d3d84cd9ed823e7a61d514949514e7f289feb7238898c187974b537064ce3b7781c382645e6c45b92a627bd8e6ac2fb1763b955f2132a1b8ae50281831684c178c54b4c805236409b23eb1a258587cf0916f2d674cbd6dae29e6e124faa4ff575e867f27aac393c44794431c51e9372f9f568e583795d3ada544ebaaf3f15e90297fdadb537afcc037822187019d2b7bc65088cc4233f9d8964eb171fa8c6727f0cb86f212dc4a009fcdea813240075b93a228af3539ef5151d678ca4061decf44d91d115e3bb3ee12b79cd09a508370ee152ae6186da1f5d6c4c4ab9154cf08a95d2d05d97fba998d8937c003045fb781805eb575c5d88e33028061904da71c9f32c53daec33ef6c9add1e9504c7729576933203ec6860782152dad881c618e97d15feb191e8c36c79a86773de1245704a92985a182f22e1f5cc10e5ab2360c09a8c7020b75f765d04c57c70e659606a13eec7dcf693a161d206909f7e274403dcb1673a6a68cc7db3082ede22b6e993f7727b633a0346a1982ee85b42d39eecde1968aafd736a9f2e33e245223bc60aa9df10330b32e6da409aa3809a259d67aa6bd00dd78fa0f86a3f394238d07b0d965c13f16add1a2f7eff484a30a69376da6c6004a324d26b63f0e38e30932cb693402ae27be42a3de48be9526108202ec992b809d87da6b15580b699a0ff65a7600014eeac4b5983ec3ad95a53d5b2325e96075bace0ceea111f7ce54c905d0d0cdc5ec7c01a5ca96e7876bede7b048e3717b19d9a5da101e4ac4d5eb535a81ebcdc0bb26ec7cb8496f2ad501a67130973dc2be0c8acefff4065e6f89a218731c07851880a3331e95bd443eee132fffa99effd69c15eeba7e50cf4ac3972f4e3c89699210c719bc13a85db17d920768c7dee4080e71ba76ec7cf38ba5e4d71d72f9010d08541272cf91eba96a30b25dc12e47628ec7d789fa7ce106953c1d80cd13e01b0eb1206ad8bb0caddd557fae2b941b2bcdbb365f515b624ba6a1df2a4d2efc15853af2a66af2281201b069a50ee8a38366b50500fbf3e0b45ddbfc80e978168f75c22baa21cd37c495e45ba7767c2bd132bb96df3a8da4d5b3439d9c19441a24e0eba9aedcc53b251fc074f899befeaca4b02ac09644a8cfa74ea5ecbe0c8f7a3dd8dcb5407e5b4c9110a0b9f548f01890337a73cd92cbab33bd06478e10f917fa53e91d27aeeb49efd4e1bb648d1c2212ffa125ca4471ca8b761da3d9272d84c34e2569831d679a33a269d66e76b445e64d72bd52379e236ddcc876d1a2b595b55ecef826d21a178334129779f355c92c4babd4c466fc01011e60b257566b661cd8316d63d36102b7d449e45392aeda7145d33a3929e8323bb6fd16eff3a170031b4620bdba132017f428f1453377237ec61ba3cd01613dc8c67581c10a34362045a843da9826464d3c20d34913a33f8ace54e69d3bdc0d8388ccd6bea95637d2d70e5de21a8250a055a2491f774f1394bd2a88bf8f6f6d014e358baf12051b272a86f6ef0b98eae12aa67b9206115a3d84097bbe75f5bbc642fbe0381f09a48285015a73921f9c81e1c20f3574871fde44e57030632737260b76709ecab152c85ae2d4a5cb1bebd535eb02ed60f5af200a938179c3a7974ac1d2ec2b64411d708ac28618e3ed1c00028e4d8f3819efcee5286caf14cd9dce58f1328b24d4133eaf28bc51fa826655c7c776921c16f9dfb204711312c0aa76504497e24d7c3132ca41698551fa8d29e9670c3a436d396b7605c20f6318c92a2c617ce49f25e635cbce5d23f19faaa06b8778513730e1f7b52b0de649eb9a7808570cd332aa0fdab83133ee9f26c6ec319c3f61985012c37b91909a43448a1f872f8ae05ee29487947e765e7c42158a2626d889bf4b21946e48c2fbcd433596fa35c0b5f3fe0d38d0527cc70598c93a6f07a04422d72f243a052bf90328c2b6bb7a1d29e014679dfb19a71aeef8830941d17c5b709d016ceed18acf190d9db769b66691549590b0adf81917db210e2735caa22a2584357d906c1b29a29017b6e82aca7758d636c0bae5dc0e7772433bba19d96c3ce49b0ee2b3a96086c33fa23930c12de5ada80fcb86894d68245e7941f5a6cd1f5ca0b7421187c42cdf2364b133826957177a0a80491dc45f8f63b5b1955188c82218501833b04918dedd44dfa3b51bf70cfa8f93125b52cd0a084de091f531a1fd0b7e52e513707c17d6237027d2248849e4929096102b817b025a82d809ee44340962267427a0498849e09288963056827b025a82d809dc09348962267027a4491093e0928096285642f7045a82d809dc09681262267227a0491893802e09482409264ef65e2204c199d827530e91222897ef8190c09136cecc36d43d74cf7a4aff5a1385526af652aaac1ae3689a649c9231380c9c7f9c0c2df773fb0761e0825bfcded84ca6c31233e961655a3a5834250d6b4ca5931533e961c554ba5830350dd64ca48b9566e961c59474583225a50d38ab13f8b392dca149b91f6e64c0bf94a71210522ac81d471f8d780a680cefc55a5c11b8c6bdb626ac4bc0fdb3f3eb079cd68c801d6df5428e47c0964b29b439496fb97e351030d725ba365e8729781c6fe79bb8034e6c58000c28d0005dd200181a795270a51263651a3f2a36dbf5dadc825ebcfc74a1d2a3b088c667175045a70527e5651fc0323bf5d3565768b5a9aabab53eb806818c2b8281992a7d63e99011a0a2d7f039f0118fc897f9d8c05839b6508b76d4e9199f119fc4aa257d6b888be6a9caa8b81bd0187460e2aa7a1bbeea3c3031153d4d1f751f449c8a5e862fdd0f2656652fc387ce0315afb2c7f842d781395e952a7acd1f43de42d00e8d695881f629c9992c2bfd5bafd808c455647e44438f9cd5796e4fb472afc190fb8327e0cadc984b19fcec278091542a1e36ac109b9b55f51b4a820c41957a9be7f9e746528f364fbe42c7514e6b92c1edea0c65401f0dcc54e9194b868c40153d0c9f818d48c5bd514c603153a16f2a1de60255f4327c042c2255f70631a105cd547b94bee1533ad8bcefc0d55e870f205ec015bd436940963d4e5ae35cf271456ccbe631c5ce250eaeb028b817aec86c050ec2e77c9d7f2e8d333daeb81fc400d84957f53a7c867c0056f40f25a34c8f2b370731810de94acfd347c0137085fe513ac8f3b8f2ee10135891ace87d7c443c8056ea1f4a871c8fabee8e6282159384fcae7b477e7267c9624c4a335fb5cf2933f735000e59ad61c053119c8ee16f6c50e3b0baf4201eb00269e9f9f0118e2f72f6889211058105d3f2b163db0545266e209a2948612fb2d2417a1462abad750490fffdc39461f05b43e083f001340619208898bc92cda03c570c80c93c85d61af9d0eb072a9fdb44690c9fa8d34ac42086246f5f628eb5a1b0c44b4c8c46b03c304202d011017349c9ca68e9744676b233abb0a158a6df0448f40ba952a57d397ef2795cf2dce547c079bbfa4a8f6e1d1245c03952e61d33b33dea009363e7142a6dd69901ba6daf59bffd863dc902b437411a72a224d1ac5fdbd13a42d18e827eac2d03b56f3249e89da0eea08d3f7761fd33599c5f8d1406c987a5ad98dddaf2f547ad6e4952ca5dd63fab294b0b1b9943388a7f019e31faf8e25d691c7241869d3bc2de6f63a8a6b8345267c44a900151860e45082f8c8f8059d16b47d9c4d78bd4dec7a6342b0ddf6064da018c1e3905fbbcc80b258ad665034d9f87d0773c7ea0bfe662d4b96833c882aa42c03710be25a140aca43def08ea527de9acdd11ae14ea2e3d9ae3fdfeb41d7ad31ea394f79c36aaba462b36d22372212a7d6ac5613e7e01f335eeb385c0c8069a367b47c083fc19d5c112646f0d6fecbfb8603002f440e942878041e0b6ba56e0ee3c9073919233a08e483028ad4889b882ec73d03ba26170d7443e403662c44d7df3fbd10abd4b0ef8a697511e15b8eb785175345bcb242a2d357ab458759cf4e459263ca6e3f1d64759836ec75015233600ac302efa52a4a552c39fede6dee2ac114de53ef954b50004bb121ab0de8ed6b16c55f71b01a8ef080eabf5e4303b76d78953b56ae54a90c13e836b0e000a727aa8b1f8140a9841e6c550926a59def9f28575bd6038843e5e305998cf2f65fded12f93a8323c2c568638f3a4487330d1a0434db2b37ae6ae0553e2f73636f2aa353f621ebc91e248f21630819fb6905777d2ec8cae10cca3ad4526e11dfedb596d0c6420591c212d7f560877093017edbb580d5fa35c4dd8d1eaa9eb5843854eeb0c38e3816383edf05f1526be534e0d84621c9cba3bb98f0ed6bc5671f47121f204955916e5dd14ec39e468e3be0221c2ec49cc6db0b8e28de8277bd97b95e9bf9aaf51db733c20376648a3aec031f2c1087dbcf7607042a0d9802386de826a3576fde2844a1e232508b6046b464f4df1a11b510f0881323d3a1176a4eaeaf0f8d488656ba7f2ddfca1b6e4cbf0c18f58f18827ca9d7a0365358810788442b69abec71b6e17bc010cf2e1e49dadd536e6862e4864de1ac523843efcb065e7f0e2c84d43e350a82caba89c259b84531480338fc946888d85d30ea2830e8941e45f064555b60356de59871e29ea2af051a3b733c74793e647a399220de3ae4004fd89d7d0aa4cdc1d2de482c1f2201951422f2de07865e6cb8f294447cb92de64e9f929150263d6c2d325a527b9903fdf19984bf79bf30b06b0f3b5c9fc26fda14d1e0ae863b725d08360c2fa09b758d629165e3e49e53b4ad54d2875974d1395483cc329fca81bec78ac03adac57ba2ff505749f7a4950108851502469089950625d24ab5d39e19e4ca060c358916cb38738c1f1e60cc219debc131dfaa7c44f06837ed50b0bdfe9dd4756b624319a9b450bb81d324cf9e041a3ab3f82112758c33979df201c1518d57f756a5beceac969117a21b9d9c03ead2fa6f59990f3938f575046f4a9e48f00a36f0e2d56a029b044b1dda8b8d321358c62c19031f3a044f01c157184d2073c449f9f3686b39a6f00e9940031402b80712a887147e9ac3d355bcf72dd5973f9a0b3e4c54b05684ee1c4681e7f45fbcd81a16e00d82b4efb0a52b8c156d7988e20c170733c5eb81f3a11c7a0f26a5c2072ab9b7ca16ce4716cc30b0264529fcfd5df97bba4d5c805f45e30435dd5efc576c110180128b777d2000c951a3da78111566f33f4e54662a3140d54c300201ac2eaeacc124c9c01790c203cc04417f5bf34a75d0d97830c366e90ca973f84767dce564e02f481f907d8111d370af6a0774242da520bc4a6a4bd74fa3182e901a6eef1eb33b026b85086e43bfec2cb195d6f2c1d4792507582dd990a63317198ee983652bb1d2f41ca738888e5dd8a101ac228eb41d4ffd220a2005df3f8f045e4f88bbe5cb6d887c060c94190dcf866642a5bf591c48d81d9979b68c24e244de7eda22a4e8ada49dc69c8c0107b411811cede95360a51db45e9aa00f7d539c8d000c4174d4cfde848ce8307ed319c103bbe3c6e313f2ed6d1a025934e9b64bde307c7a8db89cbe7201994867f4a163251068345251e8d9b0b68a4a226d4b728b203c9e64c17d1dbfe54e4633843e09e56a3240109792d80aaf9bd2ed1dfdc733f2dd2d3837eb166e8792cc0bfc5c637f0726968e239889a973e1e1e0258ca313f62649d82d450fec37e73f353c3e713a088479f776ef7832019c5094b09cad6eb0358c8320e81b11df31f848168e5d1ab2db89e7e7af7ebfa889c3aac558f2830aadea11b106ce53f52372edc6db8670a013b111b800f0e241ccabbca4cf5e3f15643a897036d6c78d9edf1d38c31d36746a9a8852052f430a3440ab5198ea62ad82c69b5b3c71931aeb5fdfd3b0f57a7526dfbdc2c2152c9014301727250498789106365115277501e8e8fddb8cab24aac5184dfd4238bc9173a1ff486a7f582c2ce8b92d45e078097c334644386b6b20deec3ff0e905e4045e81378f9860108d02ce681dd18502d5acb944552172cac4d2c6304d20674ee8fa444d2868870d352f7ce3ec07df58d0f0ae930bc84f6105a9956fc9ebc02be7f0124a342a835764b9817d4984f62393a078599766c5d9ce31d59f7dd9492730ed16013726d990617c974c22607ff7612235547ebc045fc8ec1a20af6cb3710e53b8add9ddb021392a68950f06bcfedb07c59397e5f4bfac636ff30d6586e606ec7888d9e89a1f37078c255d0b3d5eea245b4a39f9b061e458548e565f7572b90c8503b8571523eac5bbc30ca58696060c3408b9ecfe22692f00436d59206164a8658b0ec9c22632bdf78ff73c430fc12fcf3ded6a0d57e05f3571630b8da988d39a78b88ec47b7225b78bd29f702138f925b572d2d091174768a0cd378c2756b8334534cca70be1d1eb7a3f10e2b7c568a15085003b27bcd4e9ae483f8d891c5c8408dde5f8661be7dade9c67dd6b121673638097b207a73d6cd3880a81675fd260d917e1e0ca9180c494b3788bc852a961d76776cfc94195a713bae7b61f3992bf8125aa30d84587b144dd6cc23dc6505eaad81ef9b80becb9bf3f5b5507e7a8113ddd6197566c8c5175a7be4148e5a2fbbb0d22f00ea78be561d2fafb89b803893d48057512d80bc1894715a633995843d97ebecef5d94d3946a21cb445c8b54d20b7b85a8cec17a0caf60330647f229ee82a5699bda7e3f684f5c83b90a3140c6a20d684880302d41ea2930a181f7a3fcebf1635a0299cfeaf1ec83ded1ac089042c73e11ea9aae38b3377f263fef8af7df876b9d26dca6b57829afa5e892684df70f721ebc3a532e29bec3eab381dba77a0a5dae71232f6dd32cfa5a46bc5f80b0debd7fe7080d6618637bc8e541c625d48de1c5b6aa05a639208dd3df38cba1043a413e72e2aa4e4c3b56f8e33c32a215af76048e8061c2617883c777f2c65c47a1d00bd97039fb8d8d1ac3f0c8a76b92d8264231f5eccf10a8cab6c256851394969079cc0d1870ea3e887ee4d357e484a2c45f2bc284bfed1414bf1917fab63c8902968a183bfd4ffe0ba6df7bb43c7928cc02e35d3ff442fa24f27079884c2a2fe4233a312237dc29e0769b1f58f1ce8a7b71a5c3a3d9a1461ead823df0c70ba0e311858bbbf256ed1f0e0a1a79d70d6bfff7f0e19567a31104562a5fc1d9aa2e481032dba8609f56c5d9106ab472b3f0b63c0295c94ef1f8590bbd40295aebf2766c05ad478fcd2e6316e94db02af5b5236641c9a1761e7c5108d02596d3460b61fe5efccad41e0f68fac4deb2deb293dab9e8de2aab9a5a5afc821350edb145caaba650b130eace05219d2d8b6a1d381213d293d3532a36d801c2377f49bc5d14596acad0ac568a6d37332e33bca10fca4d5161d7a6c02fad995608b9e7913382f0ad0b830fd60b5a7e8ad9951a51f8210ea80eb06f93796140396b43560fccb141872f718d7bb25070389723e4a8d1d1a7e9f5799796a533deeca9421c254e467a02d21974c30a5a6c630b4b19ba9ae650a695d1208b4c3bd02425b63657db79abac0c53e23a0afa570183f1349dc13117e67dfd911c693170fb6f770dd4245170497f7a26b1669a10f19c448f3f738b4893eef2a69d5c8178084077eb1aede4e297f207333dca2c4c462bfc1e02640d17eeb3bf87945fa9b09ff062864093e8914307fd47f13891362959724ac656c81e1981cbec796d332290cd302bcf67ce71d275dd46098a70edd1ed493e0670959b52f661222dd858405523c8c63214642b7b449288e04c2c27624f739838e04223fa923bf9b05eb9905ac599a3d7841bc0796e985ed2ccf9cb3c12ceeee8474a87052f3206f14406bbbc86d3aa5d773843649c03225c15f91d95be31b0a6ca78f5a756494d7b1959c474ee1e355303c20e67f0fce446d1bcbf5b8313ed4b07d65f04c5f2cddefd20debca4df2239d457c33b6165631a8a44cab3a957bb430c5668cbae93098e0dfd702db67f88fb0ab46754c3c27138a527c4905eb18650951c1c330759c40690ba521c86cf54d48f998cc846d47b2e140285c0ee603a3e4b0c4cf2d2333b66e4ad24e9c4d9f24df73d286490dcdc1f5aa63ef78a3fb41a5a96374b46acf51ee82fad266de1f3f9c1fcd14391e66594beea145016986fe8294fd42d8701d27947609f321039599d53e8be0f992cd5d9d62a2329f30754f6c7a7e42bfb825f06013b152cc8eb0f69e50e1619e148afacf94b19343a141208aae2482a070c3eca3e0ecd1d1be60b38a0feb0f39e4ed7ab6d9510755d75c0ae447bfa94cfbb52b35b29efdcf07567deab322f4ccb50fddaf03c56a57f497c82a1311341e4d16ef15fbd007c17c7e0f5660c0924c2ffa12165a1ce34e7e7185e12c028fb51f917eed0752c211fa9e0108afc170bf6e54fa9063fc0a7ed08825bc010337380e09912dc8de771185032dbcbfb884a266132609f8703536607344f911542029d887be24df1cb19a82c1610dd135e6dc403673986003272a1b720d0023ec80c9aee856c6452a66a07b25dd5a3760f64ab9182b69dddbdb6bfb4e0c8d6296212052c202b8ce63c1ce6387a8806075b1bb250e5de4ac23871f3bf2a6e02f9cae418e39debc7a2ec39be6fbb1da6d3b7275c0e04a7044bc6218ce34dc7cdd2a2b89032d8a88aa4068498c34681b47e3125ebf3168347cf61537a71de095eff49e73abd60cafe326a71f4a7e6733e6b0a80f073cf8b99ce88271a54d11500add9e18dad6a5683d9305da60e8730ad2069f2820c4d6cd1a4c224e21abddb0d66e3c30cbc582915645b981b05f509cce8ab880e58842cf99fcf0a5c31ce5fff3604c32e6ed19a52609dd7a8aa29565f0e3f496ff6be3851d4dbf9056508234d7040238a489f550d1fbd148e38740f4b69adde86ae54ff7eb84fc9c4f50069a284ddf755701f24beff5fa94a03e0d32e6a20ed4eda50b24e17a87891a243c2f180fe7039417e288019cf3431bbe554079ffcf92c93c203e4030a7ea81a48a66ea1a803c87d0f248b3677cde94b7893ee20905bb24860b2de918452cd210a0ff2f47f86adc402819dccd261f09bcc44dc0980771e7a31d6ffe134140763b157f316991fa142c9f8e9d4014267c1c498b6527b6144c487d17513edbcd6d6570f5a81a3199750cacdc09bc3269891615155590c32300a8abe9f573ac1d8955771a49416276330d6b5cb173783a718ed4ba1cc3de83b65f90438bfbbd1544d1210884e262d7f8fc1a44eb210090183112b2da0221362b1de676aaa1734b0ac7b651fef3fce58d26be62c1713b5174e58e12e194f675b1c969bebb3e9bc55fa27658d856c22904e7e7d8148364fc30fe44bf0fe28ea5a5b503e8c0e20d4f719412f14169460b607f3c8dabec7f096c79df7722fbee769d3c8a60c59b70ae0ab10641f83c3c23f69811833212b20196c65b233aae7f86e835e0fe8e8c30907cf1be7aa6830d265cef265d15b2193a1bed855f93645e7cbea3dcafc428bb5ac7699b18b1de85f3506bf7965b8c166867e465279719e9538234ddc1c16ac0a276686f9fb89ec77e04a7d7ab3449fb107f94d0532e1c08882221fb66b63e0808b8f584857b30c730f77cc05a7e075393b4c0e34b681f1d7cb4759f7bdb3fb02f46934454e12d959094d3b228d084d388e52d782db82fb2067c9355d4b45f52bcee8286996ffa033793abe04b51ef18acd9e9124d87ba3f7dcea9a8867d196ef0fde2d8c769db331d81f9ad58a22de8c3648d6738ecde9f3761e35d8fb728d7425da8225785e2cfb7bd2eba35ae28fa7064c329e12d55319ca2c0ecff686186c31aae8fbe45d60f5bc572af2e6178fc25e4663abf12909d9777c3b9a40605a770759d20b9d89eb6046e5f81251ad2cbe08ec3cb65fd6e62b191da6cde52cfde54db58c5757cccd5d9fdd8331f2331cedfd64ffd120249d6a1413ef62765df55f64fa931ec036d145de0f00c90f9d7977229c9f95ec932ef35b82def5acb602cb550cc7780160c26643d2463717d0108150a391119a99770ddcbd0e94fc2651aea882efe3c44067464c4d15893deefc86da3fc910ec7d9c3e7331fcd63e8be63acc4313a7b7f3f8dc932582f1db2cae5ba910675ad48da3bda30c192bd0af847504855a5595b6d6c5ea28cfe3c0a3298d552f7d6d65f1980203fb55c05d09ba8377700bbf0950c14f23911fde75489f1d85ec52c62a1163bd0df899495753c02a3f2582976e588197c2acbc8cd76a5768208cc97582885cd36245f0f022b976e68a60a628e328d23dea90789b5650b72e40195e035881c4ce155e7c6f88cd42488e59c87667f8f8515d72a2da804c36c4ba2ec910e102db863c006c1dca502acb6bd316258f37c61bee806c7a9df240d9d2a3128ccb9402ad3352c4f7087a01503c354850eaca5c6e1b638d62afed08651699c15c54c1eabca5f76e1cb3a9968078bc27bdd68851e4925ddae3384d3280819f283623b00415047795ac6ac9e7de2b015d913e560e45cab2813285914ab42b8c93d62602e46acb63a3edfe346d31c109616647bd10b225e0df1583e73b867c15e9b9e587b8ee0963312ee4f7fb229a50e955ae41958a586e6861856c89e4745ac51218981ec1b827ce1a711c5a9edb70dac8bf813ef066a638b2c26f62222f41eed29fd0381494867d5e83bdc12024311e9c0918cd40e2ec3f961e4efab56d9a9bbba7963cd5755982a93fa916972512420164d8ec36aa8d86656d731d0310403452aae25513e98ece726d0ae04993061e45d6cc903fa81d8f86fc77b0ff5b3939a225d5915c6ec9546616cd0059e20b068363434664fde58bde7b491654c0c7f8046b2830e205c3a3db367620db14be4214a228f332962f084a750e240d6ac866405dc07fa1622c0b37ef5aaa8ba431ebbcf0a8d1da8bb0441ea1b787b80e580addc63fbbd3f642487adf378f995c2c4128cdc34ae177a56f0918747b29877d1a6268ffe9c4b0922ae1c203f2754b1fdaa32ec498506ede0065f585fc9323a2c1f2ab902259517b8f61d90d3baaf38d30e7b87e957a51e0be55f83b8bf37dddecff2c55b407c10821b57e627115625eeab4a115232140178c4a70b04ef925a926b01ab09ca2b68419580bc60886effbe4777d648af5f00c4fe76f12d8407632bd276ee9606faa88a36ee9e45c16caf69c496fa23e8d018f27fcc2671340e7548fea0d50f1d6f08291c8ae781e90704768e54b5e8fbd576399b58f6530cf51fb28ec950e35a7c4ff0ed45daec2ff1c4dde914e2708cd7ee0bce83f8f0453d077c61a9fe91739433fba8c83fbb8a2e78d4f5b677144936216ac51c9ed0b41f0930853e37475e5b7ecb9d94648afbd57d0cffaa0a5de9ae1b01950a87cbabf9ad6ccee9d6f5a2060916fd51982924063d687e9440e58367a906883b63390b85878d0e39a4a09a917bf35c897befd1cb486072538b6c6bb02804052070fa50fbfc53070e6501c987ce78f9470310686440fd5288eb571c0d54201be8eaf744291ccf8a2d64321dc3d0f10b4ed002993c18cd4021152380031d75e22c05caba12ee4866aa4a28aa06c06e6b935129c8da5c5ede70b98f07bf07999a5f1462e9adacace45288f0bbb4df00ea92db2a62e7ced8206a35ab73c7def8a786bc2e719954360f1e1b2a105078449ec083fe213e87916b2f166a11bd62266d1064cf634338440a3f9824a702c443da66b518c27fb7f16e7f17e5f94f0b611438413ba1fe7835bb8953c38023f1756549ffe39cdfe2138a8e25f05b133ef886dc0958793770d4f2e9c1d97e2482926dc7e6d5e2193a754009e4319f77f340c281f13bc25c2e18d70115d2a874376dd9fcc68a2600a7a204995cf26d6b8a4e03bf67c84927006d4c261ee0764992521cd7a50ab6da421cc4a83a46842ca58e560f43335890d741daadba711d2efbd266a7116988de0c3c4a4e087ff852c73a3ff4f123145f82b6e8247caee4ed087e34e4043823cf4655a6ec84d4dc551568721798421fc287f297994220aa430d3af060ef3acc9b9a3a31e621813b63267a3c00b29dfa6592b2290565aaeed3519cbb0b035c78494d4e603b4565691b3f8552e158ea4413829a6cf65ac720cafb18919f6a7524c7939f1da4abae9032ce95e3eaa1721bc327145c17028c4e1ca7fb763a4c9e4f6199a193038662c6642623644a0e516a6f0549d16f00c662cb1083824b5eeb823af166826659765851f111ff271665468739db3c3c657ce289de2c6aa5bf810e1a24c80eb169f2439e5266bc3c88c847bd501aa21529c0bee9b2b5bd989201a60d040b95af421101ebc0787ad27bc80b3c38b119bd267a1f24096b18000f13f380b65a4c07c18430fdd619ef547a5dc3a381381c63213a7da261cbc112d478ac801bf8ee9e8e4ac5b2874fa83455be249a3a835c025517f6a13dc5c0f918814e599b23268d73c176e02c8bc28bda2d107c06ee43c9474ae269b1ae18d4cd1852aef2bd33624d68e4173f730ea52370dd99281d91d54cbbea84ed0aa09fffda065080bbc5add7d029bba5d0c62f04441fc906f2704dce36a91c27fbbbcbb069709dfd058d565ec2b51117e5e5fdb7f5c3fdb670ab94164ab841a346aa450959d04b32c9d854370a2a9723296dd93ccdb2ed5ad0ab3193a44ddd17664fe684e8c21c9b6305379f3d6abed9cfbf97b2b3bfcc8b9f07095e1cc191f37c06abcba303a5a7a3671f0789cd5c4c81a81abe69c37d330a45a41860012ee703f5ca2beea680de69642a549f0e5ae44a2f97be98b341b1fdc3c5266b8f9a08be3bcbf8c44ab132d780dd6192abdd2afde853d31279b311aac448a6068f31e63a51085aa8bbc5787d852eb25388092da847354755a01bbbc9e21080a3c7ff240e1c25994046001f24cd6cb9434818e7d8c7ccb807710478b479c90097ba7a07e0389323d65445c4037aa4488b49d71a79b67c91fc30833f6205a45b921b6d82ef28e2675392049b692926e2af20801d05b446cebd3b20f7b3869b162c10c6e1ff0cff1bdc748ad2379a7109ec5d4364d8f99c782bdb3c182105d119c48182b1e65f3327c654b6f68e2480698befe97de46d81c8ded7467e1b29acd660a433a22ff4e8a6b7d980fc040b43b701a7eddba03f61f1027a6f2422c8362c21fa88e85f03dd25852ea78bafdc77b2d695b346084cb1806c096a1a5d57b89f14acf50b5422159f15cdb87df914c8e8455be21c10c6473a8ab19436f1c24e912f8316a8ee4db0eb107d5e4bc46981ab6f5d6fab513d2b97c4026166f16d933cd709eac61da500ef14eb0b5c0410d4ad63930f9a55d25275958d892b6890d6f7065911baa28c047f2da3012a42f228326a7d842eda6ffe7729dcb711c109dc7eea57ba2f69ad07dc10201aadc0da9610eafcd53f8a1809a7a5ddfcb429adc65ba1ca7bdf52190e02b7e1507a33d1a0f4f027378319a5b01ccdd5145dced6b5d6326a9dc5c7bc6ec67b846f03383bb43efb4ca94507609d7be3b2a43b59d4ed48e5fcdc457c3587d6767e58704855f0eb16453a237d4b48c64b314a2bb6043090031840af1421f7a88c2630001379463051649d282d1748b7053eb72559d617a085a62f12795bb2e21c2bc0bc05fc14b69021008a54d5256d1c1490fe4df025b5ad774e18ab3fd6b618fbdc25d5bc019a07872aa964c24208853f8c03899f220a0b69e0d37012764d711fe3267829401a581c82314db1ab3b0b2bd2e2a69e52a39d5e4a0f5e4465ac4e9d8cd2d9552769249d854ece14b5ebdc6c2b49d78016111cfd097c6d2bbe6354a34207c87550373d30169b4cb5981ce7cc1e51253cb45d04e6d0f30c2181dca35783d8bf210dca7c4f313fe8bcaf0a0d35527892668c09c1ddb0501e6c437cf90de747530fef557a24b83035e928d8b70254594e3701ce9c46dd37b639d0129dae1e4652a1b8dd0b656029e61834e943fcb12d8b343d96e53c7a113923813f694d2ff308eda77115ea25e73cacf4b27e2db5df7525d59ed38f51f95a0cb70ab41143031c837de77c4048e410961dce2666cd5420a21ec68b9213eb17ad8fe9418058d93ed607131d0c910a9bad14508f207d545bbd1dbf00d0b01660583fe775880f08c91e87c8b85dc613ec54b650ac99c36214e3b2166272f41b4374b1293cdce743bcf50e5d80e8e29b9d368cde404d7793c6f1ec352ce7be7ecaf06456ce8912d4cccd6fef22052056a5058f3edaf7e4093905f99cfcbdeffdace54498064f2c5ebc0c6ec135deacec70c9b670fda471b750999b7743a8b3915dbe0eac5858c3c0a7c997638edbeef9da372fc2c33c5476e47894e7b1360c4c6f910f797af0d9f7856f907c82d4c918c1e52e70efb6008803c1701a02e737a0e56ad1b2919860f21ed1481841c9060cfe7add2110d4395818121a1ae4b061a1f328eba11d816b29668e44feb369fd4c89a20763d08d7fd5d07a7f9b71c8b177df36450862a31fc5a063e63eb2ed12f25d854e62950cfbaa795705e19f76179c5cf3908603b03df7236beb117a2b1fd46d6287f8c41e9f8782dcbedbc534e0ae89c8d3a5797da001dd0ac573fcdf9dde75615534e6953b962e7884fc9d3822434bea43979178d0228689498b6af8709e4eb7ddae1db95723a6a5abc4fba74238d3122a04bfefc98d37180573a0c060ffc5861afe87888656b974a8fd108efd5fb775ba170bc7adb324b836a192d01abe5b1eb9ea4995b6aa9e0855c042b66e4a79bfc0c0485726c0e8555c32d48dfd0742a34bb34870d0a4a4753cb03e4ed838a52448ac4d527d22a7e40e2caa2bf87baebce85d2ea9c4dc6de95d829fa3726bb6b0ffab9f34748bd4f49707fa8d0e760afd5a2bd9e6179965f85a1b7e1aba853b3c76b90077a72d4b0d04e448a8d79ee4006019afd1de80fd7702c61b1a6cbe0b700331f48d8b69fd03aae3c33313d7c74b352d124458143bd517026b53926d15925f0a944e36ad87e5e89e7ef9c712de7605493443cb505a14a7f0fe6509faa8d4035d0e513de7eb19839f4ab9897c65d9c484150077b6272896be5792f0250e3670095b67b4584ff7aec652b83cfd6a400fe8bdd7ae5412bf5af50c8c3fcd38e96a9ef9b75a166eb4b1042b7f513c5d958bf0307fa39b64a9b1953923a8398439a2e440c4520853f0ca6576ec923a869d13d6de3373e9af74a3a715d15d66e64c15a325dad49e6d4f6f7ae4c8a76494b8e2ed5cf070a2614c2b8bb1d3cec688bdc678239d302593af4de8a3d4a1a3039debf3442236403725c417e06e129678401b48d1d07f84af837037f542c04bb4987f424488a4ea9837c0c1a3b34a148800addc64244059558ab26c2555e999be7c6f1302d92370a0d20f289a81fac330353fe6b12254e7a57f1b87b9bb6c69309a97aa40b1561df699b66be1f304dff6c1a1dc6b50c699e5eb134a96888b3d5571e33430e6c80a084b8d3a38308757c401d6cacc0a6f7cca82bbc6ea08289804466f2ce5effcc6897c31385d2ca5991c37b4f439c0e6a610fa02af63d5988979d8aa095a88ea1285d4ccae888129519ab28dc5e38486bd01003481e9a43e4a27800c2186a27d34c231a36892c87fd46afed57050357211167161b96deb325250030c208a345cbdac944a425cbf2d90847906002840a24aea640df360c634a23cb2517d2eb8f71998aac24d34183202c52be44e909a21409bac7c5f3bd79dc7c5436163f4f25a352fd39eddf0b7ea5a8787bb940e8ccdf51c7cb0f5f4f2210321e44ed2e0d9d72864212e362873093db9ef37e32cd4eb40c27489267fad241b277de090c2c0eea86a9fddfd8ed4f68beeb073a1146f068b7428d51f486873a4586bd302db365fc781a73b9c471babb6b200fdfffab90bd1d196fa00b7aef33a83cb60b25a203ebe7bc4b2767c7ad18f46708d820419138668c03429d3696856421cc692027d1b200504dbb9f6ce8e60bec48e1fce274708fee4c5dae77049852b210e3f3d6d0827988de70ee544e97ed08c36fc99e72b8a9ce5e3130eced7a26bf609b404426e5c418b22d49d2fc1baa5a11fa3e63edcf14af91ec8917bf8819354dc6d6d9fc40bb342847c0d246cc971e95a3f128050a995a8e74d4feabb9e88e193a4d9b143cf78da34dcd2523e72f9dd13c4b6e300da9ab944e2e2b3f2a4d1f49780d0b8764a5a933b9db1310e2c1e1026e6ad6c58cc5ff59273cf4f355087994556c99af5a539c6753029b7b75cf19da96a3125a23def5ecf7186d2d58a61e43ccb6c8853de7c8cc1c2904615de68d9a7ff37d9e309071b69cc6b115448c8986f4b06e7cd821771cbd3d893a0baf35bc6155408598d71540839fa6d14e3607390e77530698ca9524bb9db4ee29afa9f01dfd0f4f63712e38c68685b485bea183b49883104cd7a37331f07e43e334bc581f4dcb99532617cad4f32e504cfa0cdf094487d7377073417fda00037103d90dc17e102630019101b6d8144da37235061582c719504ce4838e41124981cb96e09aa7dbbf1eb7b10cc420de017b11d285e4f05373c95a2f0ad2a23341a63b836e36e166f7be6036ea463dda886418cd2899bb86ad1699644a8221b3c11f88a2180a008f02bd58083c9ca070a31c0668b66499ba694e90631e41e20206e9661abf1ca6a37a30801bd2bfcea0b97f8502a916de99c65cb5ed7cd52720643b1aac99e59fdab390096e55331fe6941c0e589f41182e400a06ac3ef86d3f075370e575e4fce142ada103dca2b355ce3338980d2ef29e0c391b64d2a1aeb11b7234ddd5b544f53380a3135a66ec1104a3a9aac4f548f458f0c2210e5944d4a613a4d3f584d321abe011f5e1a3b0d6042513e633d3802adbed5d9954fef15b189e78e9824a08d68d425c135236c898728b41e5a275562488170123b632afaed86d0a61215f08c5356d5261096c1865c485fcaa954dfac17950bc36e996b4f327e7033b8fca01ee935e0e779c9ee3c886e284251ba707738bfb6c8cf137050ee80dfec5f1a14ba43fa2ae27437a8be69ab9c2b6792f9a71cf21b310a433b583560d944206cafc2bc8b61614c3e16718c6ddab06d96a308f8cf8580116fd84ef2076cc93dff9b7eabe979d2e82c31f7319e6fc618b062c29d1f44383be866c28e284f59611ddfef647d803183daaf87dadbdcbb2290f7001b1c9956e8b8041c8c786457f01f550a8d0c0c5972c845359895271b995f530dddce23441c538b0f91ca7542ca6c3902731fbc02f7e4125dd8e8db24a9d6e562c4a89d441216e4696eabd033666061d558edf58d6f5fb94f2d872a315dc1941c3127f82127f0434e7482156687f423ce08ced70a275749e2241ad1a4d9b4cbca907b321e2b64b295452c2cd6d3c5d8429de163093e3160e694022a40fd03d84d3c330ebaf500becb8436aa7b2dc100e5688ee418feaea0a4b8001caa02d66a10b980ffcdd55375aa6a17c633c488871c5297ce85606534a2c7bf8bba085118622c0ceb1e873aeb69e01998c19a5fb7ec09473aa0c3e348b81ac9592c0ffad8c2103ccaef1b359fe95161311ff12617b4c1a78c962d584ec4148476f5dac04772ec2a28c45e2d6dd11d62900ca5514b6c2e982549490afa305aa4ed2e6a7fa63d089a4c510270bfb4286564031093eb6bd665db3aa3b8190d22bf9cf9e900d49abf10a89eead895249721bc3854991b2ee8f044a706a527ff8cbbdaa97c824abfb89def1deb409670a138d9b29fb3bedb14ed9f4f4a805879301c3de9cda6d02c3e89d7bdf9a1a87a2391125eccdf2e34340bfdf81aa880bd4949a5798f3ba27fe2ff998c7c16969d048d9de41e30d23c09559dc2efaa43c5d99fa4a00635e5c3bf2d4f1b37f07b33609a3550309258995937015e16922ddb15d265a51567b003204da6e3db4f161cd948dba1a8771cd049a48cd19529122f382f071a2652f56df86f71ecbc07e5eddd0a336b94f0784fe83843542b774f11701131d41e2a8e7402200b756cffa04a9555d30a3c99703b746ef728fe491b508c066378475e2ada6478550da06425327b77767be0a44e00ca9cb743e42133617800dd3ba43456a761d9a655d9099c5f11fc129b1b0d1257164019545ed492cf87e0d1b56f1eb3c2eeda1c1373b3896af229ea9cc1237b02043f180c8a447e375cdfec9c80a224ac98b4522aabc911a57c9c2b06266ac0bbb78d53b92bff0513deb3dc480ba90d8d2dbbf766bf45ad5435c6aa5b53827212275c4f8b2e0a5f306e70c4a82606847e0474d0d6d501627067f1172c916aacfba2ed98187005070353d75018f030d44b2b8a871b52c107e9b9e725bf6c91cdb6ffcfc6e21ec6f31374c9aec7d037e15325e3b84e93cd5fb63e4a6fda0dbb5e19696fcaa62a29518d5b828b01c6a0a34f0e5463383454d3a6c3d9192c59b712d771a4c69596c62f8a78a1516b670a10ab84407bd589ac14311cc9e0320959261da9297d93b6ad70dc22e2d71f3da30c821f0dfe5b0db81af085b77b2cbd606b5c762cfbe5ad8315ed468bd71ab850dec483480106a75448145c63a2d867574120ed2e41d56eb7347ad836df8a8604487a96d9be389d9e00e1b0d86bf2794916f3c25ef742cf4bdf0294a59ff55a2597d3bace8be19881ea1e7f8c4c467ff4e4994bd308d1ad4f8f129adec6c6c508eae44e38d0378127982209c0ce963c6623c2f8c4df838359fcb1fdae9046dc6ef1c8e4fe7ee56d9fff8bc28b03c24fcab2de058d8640b1c5d2afe4f802ca9de700d9de5acba60893fcf6427aa96a77699f3012a4aa4fba36e4d814c0edc4b2e87bda9695c70fc77805411aae01c6ee26f26d80b82fd7b29441bb207e178b224818409c5f9efdd6f93779bd6acc251370b144ba56bc6f139bcce874cd9f05ea43c4ee3a438525e82cd9d259232e71670c89f3f9c79bd6f57d206374493fac549ea687f670e8115cef41632dd4f4075b6290385f8b08a5956e22e404d043c02b065a2bfe2a449a1723061b1f85518f86e0f7969b6aa0919181e1695b846b0ba868a1e71416238fc82dbb0e8ac20e1234f50abf345639908d49fbd3dfff5db6e6a786e9d0f45fd5d3fd2f9e49952ce271a1527d2ac711ad8621176b928634a491c0d14c02dedd67c6586237b4000a578c0459aed1cc26907ebcd89620c1ae57a80093b56ad11f42b20b43603e25fef061f90b18abe5913bb3be060b05fc28aa17c300c499c8e69248dec56d604e2f9de1ada384f76c5694323d8c80382bf56850e508be09aecf8844617903928829d65065a86bf41561e39ae9c3da3caf9f281c9d18b170a4b8b1a88c256aff42d61250ece449529cf888111b9a7234791a9b35123c1c66d21c3a23c89dd5b184a129005780a01d19428c00a916b6cbfb393439400a6189d6670bd6d2f497ca3b5ea082e043031dc40e73c3d7d159eccd9a6c57f0bf5ed867729b0aae0bec041964f227702405d75101f5c2a64072e14545606b9f2e39d5b576268b730a6bf9e2c0d8be539d431a65b7a41469a21c73fb22c9b2e798af8b313da6b67b2e3117f0a60b0e2fd2a39bf1c54ac7a901ec3a8a2c28c9ffa7357463f0bea17eebbc09cf0512ff3749b44eca319740f13fa6df1601684aeee2467ae3e725869eb7cab91235e4f017b505acb73e2678901985575e5313ccb8a265d7c87a53cc48c097471809ac46fc279450ad0382d7e9346bc50399811dc4503d3e8f8ac0d18d6cd0cd6ef6877bf75c23b761774ef9d81243d0182f9efca3aa2df9e07890d4a002f87c43be7ea37826ab1f7eb026a41d95f99381722c6c33c6556072d0af3ae26cd9fa8e5502bfc085fff42f9af460fb7374059930ed2fe63bcf53c2df213a87bf56efb2a089e917b90e61ca913720370bd38c91f3199b377f281853c36d48add2be184ea59adbe87afc86f58004c03925fa4c4968799122c8476c7e91bfb319834231648d25178036b760a91d7f1522c9c448cfe82c8b304f8dcc1dbace8494339b0df0030c54a225c1e4022ad6fe08cc1e954901931ffaf88a0307b06a519006dea93de1346c80490e82244b90142592eac92a4193b8a35409abd19bc4a28ae035ac9243445b308147ce657f908dc5acdd6652a0e5a94fbc22afe7ac68813b9735c881624173ec660f8d3cd291d246478bc0ff72cb3aead95adc4d71126971839744625f4030dc779e8873175583f07c925c71e9691acaad8486cc418d21485a312d17c5d8b386ca800f07446a6d31061bf213fb78c047353f82edcb73a3f71c999cf5c9141e683217a5a049f795a8332d0419af0f7bf417308656cf3335fc17ff4d499403ad1925caf4bd3d428f271c531ad68740c095ecf60670912aa9fbb613b35fd917e7eb322fae7d198bd63d3a21c775408f5540e23beb1d026061158c5c3d44fdb528218ebe35563cfb3695995bbf3d8329e461e7aec45302bd93d7b39bd152c8fd0d490b6751c04284681cad1e438abd4f6ff000100e8484bf4f70638ba5182ed5cb919d6d28d0cb69a60fe6e2779080e5a2bb7714002a45b43f6791a29fccc9722109592e0ff25b9bf76203bdeaaa1d5f3b05d54e2e05202084757bbb2526ba294661bfac2f25e81e11ecad2c0201845c1b66b2980a81e3ad445f26e95d4ca75599d9c43a49e047b472f310d8f1a4f60d213895f0c3fb9f5493140e8c7c33dc3c341dc7486de836d132fc0f910f157a464b339a066b7bb1da9890c20aa9131fe06cde2ca70ecd3ec76d83d4ccd559199b273b0da4b78ae1d833f26ece8ba16a40b0f1341d583cfbdbb7132ebe71fbab39a93e16605e017ff3d61b40df9aa401ff769d3befed4ce91b7b7db50e7de8ac9e1327196dffa6bbb786fe2896ef208a141600816b1fd354d7bb727ccf5c3aaa1c643e75f6e8944d97d1291955d1292895cc859bf1641b4873330f2d378bb52ab46bc1f239a7703786da77ebe3fe9e4eb88c85dd10e14b9753ec73449433d0d71b5ffb1063866c8c4639e58b243b0fab2fbee294a9bc99306987f35128e03b067641ec3411728349327a5dd10b89d5291b204105a8d7b311e3f99a4c7ed2ff8266b0ed47d29579bc06ddc2249d61772ceebc9c15ec6e64673784af9278a09eb04fdfa97d14cce2595a51a4cd4d2727b6c8c7a5305923787e122eca6f7e59e3182e7a794446f3f8544d423b23cab6bb4bbc3b5c00a5cd764dc8a953f34049c3a0f23ecb92faf6422add9e666148dc109e6a9d563b44e23927c3c1d0d422035b5a3758e755c10372d288dd67201221b0427e33bd1d1a955d1e49282c854a740cd92bcf3096b4ba67229d85ecd1a0529b49e85681522024f97aefeda0b018febb2644992012bb2f667f431b5cdeb2857e9a770a874d9feb4d7b280e017aea0537f4ce30f97323a0d1038c026785efc36326348357fb4dc63a1ffe3a2cf58fd331e01fc4aa0fe736eac1a0203d02bd879ace940f0dc5899c984519254c1f2eba2bc46cc511ef9596ebc5f3a2e24acf389b1bd4aefbe2589cf45b0e87e2c189a73c380cd1199ea0c874bf2d5137fb7e4d5e5e9af28f942030428bc77c839f6b94fdc1ab0327638a19f26aa4314d30c8ab4ad110eba06f984bb350657be19129426c16cdbe92591886276a1b1cff79120421429604ebe3540413dca21b237ea9d80048a215a1fef6b7575707b1d573f5633225665bd444ae761f99e63443c6ee9e1f6b0d45b0f4ee539ccd4b08b946be71c16894a1cc96552df049da7fe7f932e2063e26c334cf9abad3361b524bc32d83bc9362311a0f197d4966593ab025d3df9d2756adeef3ca269cfe8e19836b1c7971fd88d9d068fab7f6e883f632d12ba05bfe208d1560d483000861d1995e3c2b94a0b753b7768f12778bca2bd64f0d3514abd401e9c832417b48be4d93dc6b051c79ba9c1ad0579e5f07fab22058a954c749476af7f05ea9b71d3d3dba82822725a517595f629bb91a194f0a64408a7815f1dd407dbcc0968ebf28e3edae2a17908b78522080607996182ffd78f36a160a1c67aa6e2abfdaccf41708a35467c6bb2c86e20fd761c16cd03221ac19d460b44c7221dee3ce04a13c24e0a67a19c936ba07d8c28ab2b0095ce15315c8d8219e0ac49f1f3e2cb4306c07f73b7f3eb819c538cd39948a940a1eda309ac51e109c669782b8dd0e0e7e1791073a85781df5264204bb4da67e36218a4dfd22f58e09123a46253399d7919e0faf2bf19d44453de49853f56e1c87422f77686f152f79380fd92dc41dde5bf1f045df06f25fa8e60a07462f23d74dd9fad1d260305af891be115a138ea3baacd92b6e6dd95d19972bca1858b7647f70c8b0aab221131ddb429be95a0ace4b6da7ac898fe424c1c6743a20027b62786d34a7cf31b3c43e7f422407dd0f1c227fa34e30154ebc4f6fbcbf37fc309090461050324cbc43af598d45606f004d0bc510aa877dfec1323d62806548fc05a66126bde2e2b9b71dfe14ef0ce97f6dd89aed057625951d995e5b11ed7917f758700e50977a5a0621aaf1c0464495598742eb7e43faaaaa1f2e04eb2fea62ed5711d541d2c7044dc2359bd453629d00e2b7b2206132112fe7aa84e49164621690056d44974cde41e6e5e77142300da6e41592a5f24ac1424c188a309fe233d36b34f6f8701b38be4924eec1728b84f169a4aef77808eba91195a4c818d85ca118ffdfe5a8f9f0766fee94ac4dfa354d7da3e71829b4804c052b9060f85b37b41717f02848d9d3a9ad2e24c63c190926f645c042506730f3b4de923e1c1e67a025448f46ecbfa08414433cd4ee886be5a627780ee0a3581e0ffd4ce308ea43a7334ddb78767c31c54d9e3acd9ba5a90c47c355dc8baf4e258dc2d3e27eb1c33ab86584818417b55a2c5f60d4200dfb62344d8a12d35231b8289b9b8ab24c06515584ddb341b85fc632fbfa3c92acadd518e24614159de187021e950ab67de8f9e9c4aca36d2f03f6d164d4e1e88926453b7ba4f1117fcd86953e07dea81413240c1700fa524c20b4008f834026051e93cf7c84cf439100ae7e46b353d7b1eba82a77a84bafc34fb613816258a2cec9e9b22f8c6063f5719e680456a18084a30c792911f8f79f3a8906a8dc94e26469757e7e78a7a1f384dadefdb13bc58d1cce79e420af1a791216a8b1c1531cfcc81f46078c9156c688631964e03b4a654fe2db1eebc8a9e582d80882059e210c2980e01205ab37b6254ee8953a2c30fc178d55b5f9730eed7011f81adb71515c708e2c019a23c88b15f3210e85091c03b462d2a89cda18717c2d59077a17f2dbbecf24de8b9c630308ba0872e2a19fddb650a0a7d3cb7a4af7f3eb80ad7114ef2a4987f563ba0002e077d90d8188c66845a74f7cfc72dbb9cef50c492989dee88f4a2b67b173d53fd34378bff363c90601a7050e9c3026c19f1f2400eb83afc080ce0f1f7677fabf8a049f3e3649cb31f7d940b91511dce2d2868364ae2388851c3ce220b4496bcab62f4d787b4292e5725de8ef82c977c3e24a45fea32281facda2e329788c755d38036bab08e34ce5d0364de306935f42f47743a8c3ef90b23b14391931249cb7eb00a30499196dee6a7f9781b093888cb25a64f58e0d4378c9f6f9ba377bb16bb2505800c38263bd9475fced2e78e269520c3ac641e710dd631c5fb49a9002c7a1c92546803935a676f9410f5dad80c5e846e1a0a27022042e34cbdcb3bccb34a4dadd42318d1cc9e0bec8f36a2976b2f404b80eaa48b99f56d087ba05bc77a126c84f42a177b07ab8043ea6bd16d96a3b60cf4aa21a7bec2885c1bbb8e9c46bccccd128cd4b63caee7bbee40eeb831df3f460c9f0243b61e6f1579b58194fec8c5444c154a8d9d94e67d05d5f51350a315b9671f0cb88a698c8708d816f418dd5ed4abf0416e9e35393e6ab24e3e266b165da91f6e3d9f7a8fcd0fc2c13430c5d556efbe67471f676f429cd44cfb9e10517d91ae5a6b9e9035679e8a198671de19a0a1139eb28b8c8ba99e549c1262c72757999f724f9a521c467c0fba44630bd4e326b4d77a1dea1bd1d4b8b15fae9bc88b4eaf923f93500171e52b7f7281a29a1e7836a75e4d3699a3674f18200135791fce29e0f16e29f94787bfcdd375f5f26d00c8d59e4103c1880e3640c0f99f543b7030423b7192218335091cc79c1f249410329a08c674fe11e9f1d23c40f458cce4187403d577f700c43364cb96f6a8abd35e6b0beded727daff8d6dd07afb35e59d1fd571a9ad0570cce07d115cd77e9172da438e45a6837a6c092947ad2ae6105b3f8a285dc6dcd63ad7e6fafb0aa9bbb0f45233b51dd3e72b1f18d80d99f0d91eb37d134dae2a109b59bb685206a74ed51fcbab394f927705ce1c0dfda99bd2011b4b00c6b504c76163edf7f3ef21ebc2befde778ef3d6dad2eae72f45d798953df6f4547c2d6abc2f8c7eb179fe9ee00d8752a27fcecebcd80220274a801844bb3bcfec3f12daa6b965019ccdf49f762f04ff56b61cab8fe928efa8aa8708d9c374a58dc4e4ff9aa71f146a6353a5099def3fef577c07278b338d36711d4f84fb930727345800c45e1793b4999230d289810c9494888fc1ec443d53100045d199d39f52b5717b64e021093e0ef308dceaea505d60e50355a006db90ed3f283d52df0c1cacdb73d738bbdd680b0dbabcd2b1e01659d965cd5f5c24d88110b06527861652fd787eeabd0c6e93cdb57b18fe9186d248faecae28809e86b336e4089e201122240e9434a45db44b38fc3ab1ec057920d4b288ee0ef442b29cda36b2d301a9978ac795e511c38030cc0c73ed4f047c5962680f79d3a07b9bbac5b4f4a3948eb1e3a114523c563f48174a765006f13921f3f4c0eab843fe57ce388ecae151854a42fa8c597f489aaf6ae5dcef1447240a2c531f18f2e54c5c4fa5590f78c8e3388e7f84b729dc3eac8e4b40db47e74b6af437b9ec45cee5550147b1929af4a0529d01e7187cabbb6c0fad3d4d0c3b85eba42005122c53b97f44478cb17fdd163d7379e858d103479ef426c64ed9315ea8f4199d0fba9514c4b17630ea308400a754498d79bf5fa2892e0ca1d5f840bf3de59400aee317921a7f4d457321f51b343e318d8dc56fd91c37db2d669912d05e20918312cde37d2f7218cd685b3d03da5a0e2a7f12cd4509e9a56dfe3d5f30d4dbf1cc66a4a227c78258432cd4c1dd1627f1d5c2dd433d6274516975db60c2d2ef69ea77c0546ef4e346085d1c04fd4b4ca8b02138f7226c97300b7438469c06cbba55ae4c33d82c7d338db7f92dfc8842ca8107139f046bc938611ad160ab1f80d35a76242e18144b8e54f5b9e8f2a2ee5ba4e7e0ba87fa825f6265d79bd136e496d2960ad38f9eae75844012875f3c965a9e02cb2347aeb047a16c45aed77c80537c2d2f50d8b10d6f211bf8bfe592992d24c45544e5b6a6b6195021d82a653c6a400acb4d868001ef013d21c291e3cee53b1c28c8fd8d6177d008ef3a2c4624e98f92c139fe33cb4bc21e2c09d317f8141da47a1c76a85dbda2b8b6a0f9cbe728a3c1aa2224329a908f47f29b1c803a26d62611120c46582a148ea81e4d1cece283a7d82a51df2ae8d47c495de584947cdbe4b49f18aea78fb20870bb1b75834eb9d868f56c57b74cfcc25c0226539a3ee284410d8f6ae86f0b2d12334e0d887b9c9d445c3c02311770d11a0430ac5c7223a28e9bc7b1e86dc749bcb9042cca984b40e42bccb6e6f949208d7a80539edf8f46f67ff01457e2c29ed568a5b8a831da726f5cf17dab6e8237db442e6046c4ea1e99c26e53951594b71069d5ed356ab2fb76b0a334b589db848b0875741b3be2fd531c896601561b1d05774024aa768e761a3e9d40875f2ce1ea3ed2c2eb713f128b430581889e1265498b076d96ce881a309f04ff97f334210c40513a81b0c64a2560b93a11be385d7b67db0c9c44bbdfa55dc897e59af06a884d29b8403e24d5cf9d791e8b7f058994b643cf05ee1e0c96ebc62b165cda14a9893c96affb9d1161603f17a4d950f8b1fe2cc39bfc56bde0e37b0f53b90881c281999c9adfee7f0a40d2327281b3b374ec9b3360a927b386c176e69d83c26513add180bafd4ce6dbf594fec90b409d720c4aa0432767e10ea8068ddae410e2cd4108935c46c1674da1bca4179b0c9afb7e944001f61dc960f2df5ccb41875471afe8cb708242c309687012b902ad0af0e63f14a0ec682a6fad0227861c7ad257665ece26f7008505a57039b234cc517d768d2f5a2ea7c1b0d06cb2111bdd2a336d87f3dd462c9f51d13398d7c7623fcfc981a3d95b4f1b6b3c2f0380f61280f78f167bd10e052621136166ecab9f01b4efec2a1855cf8ff2f1ef1400b21d671b925fcbdb0ef0656bca2fda74be006895740b1d0a6fd5e551826dfd4a8ec5796c02533adf0462fc8bb9dfdfe27c97324ec3776c4ffbd6ee9474e5b2626f930e7a47b4f18c334b96c591e530fb10a534d64f00985d4dfca93c8d8399727c2703fe4722138213e862d143c7bc959b61298e5c1c2be57bfaa400dd98fcb3504ece2a8e4f3d08b32a74ac53134abce3d69b4cb83b9020e7df11437c7c28f0b68cc42a9034910248d40215b3e24611c18fbd39ee9403345f465088caa455cd078cf8bb30db5259686d38a5a549aed536429e35374c7631a4cc827350ac24e6fc0e7e8c355eed6c0216d4cbcacf574059d0c837cb2f21ef684a6b0a5141e28c26434a5997a34ae57a55b04ccfb7b506ff8ea0af40271d2a9c26a91405d235fbed1a8a8298e751389201f45840cb1936976c598a2b1933390aacbc07ba7b120a36f1eb52632395322f0ba9abee5b01b08ca7b2ecfcec006a0f363578ea53ed4b70e43c14d3162e25160a40498ad98196b17cccd00982560f2692aba0fdb1d93aa9adadec860212d67be40aa5642a85565857408a4ff80d9ad801dc32d6696df23868b2fbaeea10b3e4270412e45b12fdc123c4d6636cfa81784fef670f4839bd192e6d30e16c47c4853647f8a23a8a32d5e03e5e642b8e1152f4463064ef017e23504be5ab9367fdebf5d950b171902b504c8af6eb8b95240748369b1516bb96c94e0c18b7dfbfe4a23115c7305189dc2a30fa8f3d2ce2ee683a521406031f01c8911829f554aaf653a8a1f7c23ef3ee88d7e76d347e3cb2607458899087b27a5b9681c722230a91771bf1bc10a9bfca9a37901320c20c9b9f01a014da6e63d637d2aebe1152834b6a4c165c7e811e72c183a48928430ca5580685563f63536e12e685c9a5ff19ca8232e590c93f74b18051efe51366846362d7f1a4ad3eb6ba737b1eef448e2fba9d22b8b33ad7e38568122e201c9cf65ad6dad2b7376b7795d7d9bbe2083d29b177af9fe31b43412dbf90363b7c4bc4d66416ba419bbd265ef4b6d1b87b714b43617af7d9fccb3873a8259b428cfe4beb455e7c29866054480a2d09d1c1ce668be75cde8608e7ce7449e1f67062b39b0ec8d74b55141e160e7deb57c8fa49592b902633f1ad70f64e4a95d0a68f9a71bb8099e42d562c44b1b4ee22f4b713436db82d5016a111614016d6744b729aca9934422999e4132a5640fc04cb72b80132526343a551dcf74b3a8c5b1ebb7c7ed1a6af3a301b062e7868406714e2c7729e008d7e1348b23081298910669b91a26c2050e85b8d7afed4e00ccb268dbddc8fe86136ddf10fe919ecb663b40fbf34e0499633a89de7a082b164fddedc77539505c7ef0d28b23c053ed42b250de38a5162f251875f43c453fd14c24b3a0ac00a94489ae21d186ca2c594813448792aef010fdc6bcced4165d9445c504f1cf65575352fcf807db8a4ac9fa1f5f2eb46b67391805c2b078624cc56dd8067865a58d17ebe39e7a2048e08e91fa27115f46f454a019b18af4d7caf39602190df7106d80a066e52b8f008733665dc3a3875e5513b732a4075967312164fe7f9b99fb2a6dcde885048559695e0942d8e7978f374e79fec7f808a04ff1cf73e1da01782c7fffbe36deb9d7a6303ab80801b7e91942fa8a6880ce89ce148c8f043adffbc85b30d6d53a077a70eec0bd5f99d9cf0dff79b0db26a9ff404b24f9cb6570710bff8186ac293c9f9894159ec185780b243f8402003070be36600834683a6600ae6e9d57a6ad81ba8529b4ca4d0de92fbccfe3e9937071932449a44c323f0c590c880c32f8d6a49e3a9a6aaa7f4f6e754f6e15857b96f7a42f9bbaf1591146a729a9a5297c86cff3f43c3bb3345bc3201ded66b3d96c360f92429c6474157fedaa926b70af926dd48d3f25749727414fb7c73d5dbe72941fa1305df8897acd9edc064efcb0eb9fdb891ef454552795a1a323ee8f5d1f53515dd59d9d0f2ae3f694f228dc8a8bd9935dd997b5b4d94a3682bd5c9e6767b31126c245d13a88cca07ccaa7681d210e74d04491148a1eade9fe668ad1ac2a2c1b4dfbda7573cf8dbe3e5843184d3b3bf7fd4ea5daf7ad0eac13d4be3adbbfbedd81ed018db1bf796db48912c5ae2e2a63f1ca9e381fa8a93ed763f583c505d9f5b9d5e5689bd8bd2c20dbdf1be98b1776205b0bd504220262e5ab5a6dd5d59e506d6be9c360af30bcddd5a52ff5e8f2a53b96807dfc1c0e87f32187138a5a2221a21ad1907a72f97a434d44abb334a27c1bca021628cabf7ea80995e95ea4ba8968424d6a0977319ad7a3f902e188e4eddc7befad3684fe61695259e78da3b76ef377a57803e74532b60daffdd1be478635b12ad9196d683b7bad6f9e46e594a60e5bf4b9346fc041c626c9e056d8fe9b234fc4b6bf8863726b01a439b453fe2b7db720928d660ebb0376dfd079d0833eaff21e941bba0fbf7b4b01d1dfd9be4f3e11a2886df3b26a88000429ee902b64d719bc0fbf2bbdbfa579635f4d12df3e87d4ddee76b7bb1d49d4244efe196a4ddabcb1c3e768ce8f6410dfe6b7a57f47e2bc0dfacbb7a1e5595ec625654de2e819ad675a74f72c7e5f2c4dce6f9ecb0ff87c7e2ec7e0fbf3f7fd5b78b0f31c01df3702be3f4fa386a5280863a7bf85a759029fbffa86cf677d03f99753e22063771a0719a0277ff328a5c96dcfd73c83e8ef7b9681d45c2d81fcc7bfda54d1b4963ccfd59247ffa84ddf9dff4a7304fbf32c83dd5f9ec1ecfe566087f683c0b5bba3cd1d5df87d0e3bd4e6f81db0fb4bd1293f7edd294fa37e658a36bd7b7fd7fea4b203bebfa7e3f85e8a82308eef6307381ba4ff32107ee85f5bf4e1d32c81cdeefe96a1cfa57963e7b7b946e84171dca239daa228fedb13cb8b0fd6d0577b2ed39cd77ae5aaedb644113d8e3d91294f41a4a7f3b1c1d3da060e95857ef39dbe2154b30c211d3e0d9b671041e0dbdd872820224214353bfcfb1c6deab039f6419e8fa8e22920cfe7a98a364bdbbe98a243daf4c88ed65ed6e28fde4b130719fbfee639a507b20c7577fa863b83e8437b2d58c35ba27c6886cf011db6e71aa4ee397fbf2c595e972d37ba12078b2eff96332def1906fb39648a7ff2b93447a0a965d1335ad3d8e6e6458d838c1da2fc0625147a1a96548e3b548a7e2c7d74d56ea1f4110719db03be45ff993a9c7bf3a3d2bcb137ef5906d0168920e05ba4cd11f4b0fd4be5cabb94efbaf4ed79e34837324c197b73e489d7a64794a889b1e99127ce7d599e378e2525adf18225dd2e65a9dc4164a6d4ff3b56be72f7f365e67cf836447aec18d2206d7a1f6d8e1eadcddf9b17f5d56669b3a97906ec846d43aecbd225186a3bf4cf09f5061406e80682c200dd4243f84954849b5a53888a88899aa0e2088cbe80d486911ec1816ddbcf0f5e97c75eaf5d43326bc25018ed73decbcbaaa5fce5d3d47dcf9e48599370e82f3f87fe52efd841ada9d35aeb904c7befdac461b4f3733e8362695624f60ddd8b23da48068d8d5f826da774c7cc22b1699ea1ce60778fc3688bcfd117482dddd692d1bffb1bbaaf43f60ddd8b657781d421bbd3b7554b75c8c64f1839b35aaa577569ee4adff0f1cbd2898caabbaa315449c9d1ea0bdc8c9b0267e3ace0661dcec659c1cd389badeb4061745d26414b6ce8bc3fa88c7d96f2cf504b8768f664faea792ea2d68da7facb959696cf11e357f40ed3c7f816d3c7f81d2ea01b95e17c7d90151c040695b1ff66e8070ff1b01da67b73aceeee4eb168826073f405d202fa725de0a6fa970657758bb82b973759d08d732969caf365ed20b2a3e5f5ef58f9f2cdd07973a1f4313e87cbbba077acbccbc770f91d2d5f32b1306da4bbe557de0c9d578c24fb332dafdf661a68eadf5492ee9b9ea65cca9677f91c2b6f5a799795dfa1bfe5692a74b3a7189a743fc6d392265d4dc2517ad3e770f9187a47f92e6fd23b88cc94eff23bf4979e92acc6d1f2fa73b4cce8cfb1f2a5d6a1c389906e944f034d95da65da5d2b7b2a7394e56b967f9be9f59b6e73e163bce930176268a7b98c45a5729a49ab4a5d72d1d696a5e8b4a7b22c3569a6d4c1f2e50997046ed683aa056ed6838a9b398a5b39cccd9a4061702e519030fc141ac24df6143a57365112a12144352218ac4437b0895a2221f5e461dd742f47559a5dff02a931e1db93fe916ccb62a3adc578b97b311763f8e665e9af2c1d3aeacb9aaaaeb1cada51be7e9aaab58665d69a1ffcca9bf5f57a45d759ac36938245df576d6b1d32dd7c8bb156b3926668b04680c081108490854a95d2317bd2ba96af4115fb045bb35f58db8ab5b5ce7e616db6e6288e865bd92ffcc4f1b0b6d695f7bc3bf0f013f70547b3e4f6e0beb82bce664f97078ee60ab1e4aa74e80621d775c16551134b1772d9eb82cb0ab91c656d0e539f9b59d375819f382bbc0bb96c195ad11730acf0d3edc14df67455d6e428fbf5b995a3ac0ef940617a0059c1da4240702bd00d5f31721c74eb3a2c7a3787baa4a950120e1ebb8ea885af18f1eeb609bae12b46719ba09b97a2167d0175e9016f77fa0281711921be62b45a14e3cb9f89f1e5fb972ebcd63a56de85d7c1f2315ea3d1e96688b6cd502de4213f618806d40474ab31219aeabf810e78fbfea02ff53b30eecb0287a97fbde53f93fc6b28bfe56bd0ff0f5ad738ca6ff999d2df5feb78a79b6ebacb074059b23c00ca15cf35f4979a64af9e295f47cb979aa66826ddd04ff74ccbd399f2b5d641e4be0e962fffea19fd2d5ac7caeba7514db0399b4b795d2f92fddb2a4b92d537b81bc784b29070b43c4b8b26f9b73c4db1946f7afde59366f4973756fe75e8283d11d20dfd34d094fe1cdd6d8827b4a00531952ae5f22c00f0523441e8846d31526b2a5f0433b194ca9721e3b6dc268ca29808492d895afb6f8c3f78fd2695fde05bde7c4d4346694d2229469a62d15adf9735c5d0d49a5cd0ad96a7fc3a63860c19ba53fa20746e4235b010ebed836ee5836e1f52bd3f0bcbbfd6c1a249feaf439fa5adb12e5da3cd5174320af115e3669b5755634c6ec6cdc4dbba432e8b03dd404deaa97cfd6658965c6da47be55b565adbd7b1a26933fa75b4680bb3a6aaad2c6567170bd9658152341572c1767dec84d10c3dd662d42dbff239585eeb1dfa597e453f8b0edd58bec56bc2c8f23a747634cb986fe80fbd383a147295282a28a12e4331f186101663ce32d8774db22b1b845d95e59d651c9e2a1f2c45b0986cc6725944406a8ccdf88a5b598ace3c03b74933d81b4440f24c65e24412869085940e1d52d4e6302fabcc362255e86007a74a95d29a94e35fbfd63bca7f3047f9ff3494ff34e3a029cd52be0eb9ac4986908d54cfeaa39e59d46a8de67883e5432f7b62f9fa2b654b19725199cba22f307bba35d65484c65c20b4144a82c6dc1fe6352f6bc63643aecb92c12afd65b1e8dbb2a62cce10eb2cc50845425c0fb91449c9f2fea173874e7b22d977791d52f5432c7b22594dc2f1dff233ff2d6fbf45eb2062f5cccabb681d2dbfe2f23a56fe35c93e4dfdeb905279eb9d7559342bdff234ea9d62342f2b00229835b1a80cdea7961b13c12e8cb5d252de56c64c18e966d1242f7394cfa2771099597996dfd1f2e5e760f9ffd73b569ee5698a84a3e5cbafa145876abb7e0d2b3ae40ad196308a42376bb24746f3b2442c7bfa13081486f0820752b0a5ea632c4633740bb96e5adf01c88071985084a4b56135e6d648b1eb0f00d346dfe5eb37432ed9480018be62f4b62982ddd8569b37b6f5920bb9ca2f817e8e2e43b290cbbcb17190c111ef55d1ac6ae95e20aa30e4b2a7d0cd9aaa3de9f7bc710c855ce59ba159d6a60e9b460ddd54ab33d4252aecbaee1110e22bc6ba4d510b2c452a11cd1523b7375096174835d5d757c8063a30ee4bc4e9b2ac18f5b7fc29937094afbf86f2b526f9b3bc0ea91af4b7e8f2597ea67c16ad8388bf8e952fdff58c7e9667d13afef5eb90baac5ad2252d4b9ad2b7554b178812c6cb5242f7caff9ba2aec4dbcb99952f35b5a699ff1cac498bd1b76f5304b379897757e24d334ec2688a60bb3e09c7ca976fc3ca979bb7e1ffad69f334dbc0b56d7f5663aebeac5a52526336bac6584d727d81d4520b09e3a7b91bc7a496f01146ee4dceb6eb908df5976b70efe51aa41b2b4f034dad7c8e90154990a096852ca4fe45307b0a2d218a858ec8425004f922202721cf7017b846ab3159d0a80c3d52eb421acd895a57c334328b5af73d7c2a7cdc0449a3d9565f5872449c51999a7cb3a70ab3a6983d71bebec8b2a7fcb097e8dab07c83dd6e62bed518cc95a4ec081364ace528728acfcb9ec826482a60b0eb3b8ca4d1979b84711c9fc319b507f3360ddc140830806d6f53205821886d92b470c40515689c90caa0c36015566115b6eb7f66f6e4d1190c6aaadfd961d78fe8c3ae9fd967966fb47c7315f15622cd4f1f306f35bac0401d3675878b9804715679d4956371762b8fba12678e2265e2ac0a3fe52edc5493614d06a130ac9d023206bb3ed9a3455f60204fb2474d082ae381d1a6323eea293f10218c759be47992670b0b61b4db244f90765f9920329aa4cd7e14affcf2887838c3ea0b466ac9bf7b0eadc674f6541339ac73a51ac51a1e350d85e11a43fa5e87fdcdc0332eaedeb9724dc24fb7e392462d0501b2f3a651f8808a0e0761ac7bd43b88f87bbe861de277fef334df20c992b4813ca096c7f27cd8f167f28fef7a46fcce8bb5d126dac425b5555723494f67a4596c6c8be101b5e4d1587ee52e722dbf1ce5a91c2677e1277288d79777905fb98b5c236149d017d251e4116a0337d57782875b2f0752d925767d527c15d94888411d82df040901d55094380b025a6599582375df791d52a44e9370707efc19ce8fdffda87510e9f4ccf81dad43ec9ea66ad0919fa3499dbea183a7f32c492d756f6699671b24e922e5c89f437cd2664d98fa15bd7ad620ba37eb6a8833c4dc10e72587f0139945989804f93a42dac08924e849dc42ac89aecbb9a84caea7fc20562d09e39b62ad24e5787701183d10219535e9467ed2cc2f00082152d0a4b2d641c43462e5a9fc39549a68a57850000d2c350295265aa9ac7da52fa0d2442b45ade903d6f483cf6fd29b026860298e5e8154d6247a24e9f5e0a93e32af074f2526711832c796a02faf8328aad895ccaf3aa4baea0bf5b11423086ae5570b244db4429c913447552198a46526fc5479b86955856459e5e1a75c050ac90492265a21cef22d6f5145b66530284ce6225f0164027a22b3404940633a47913287a9ef9b77f9205f28d82411767d9558139788b69aadc6d0cf546419a904e92a6f9661255c59e6a8ba7225fc242ae1a6fa35cb7029b2441f5e5442ac2b47893f7e1089f861d79b6ba00bae351cf90569ab35e4177ef27ac0b5a6078c752ee22f6bca4c7c9124a58a44ad21bf206d95e5037da93f284cfd810825767d2a03395cc3ddfccaafd7e75ec1ca2f23b15d8638fc98f093c8e3654fe2ca9a2a0843b56fd6555967f4a5660b829f5ffcfce293b41a99452dad68244d743db1e4084f5c5d71c5b954ec7c8ef1b3de917ffc8ede416426ff38b2a6aa49568f578b6710f807a3f7b2a60aabb2d81176754ebc7f3506c28835394b524be07b6f923297e78de3193e8d4a22a9a75a434ab1eb9347284a74914eecfa248ccad8c04fe2cae528fc95879b3027ba441edb45d7bdb686b92fb416735fd759994c66b34c9665d66659ad467e98cb324ff4a11459f4a5722e9682dae06418c495b812571c968d6442dea2208938795aab495e5be269f24632711f8c1e696bb15119da44f5f07b4035a01688b53bef79a7a4ee6be07cfe1a464f494a754a927dcfd3949726a7f3fe36da791ad596241cf93d9f23bf47ef2032d379f177909a643f3fe7f3e710ffa3777434a9e33cc97244cecab6c59b8a34392d92a9de206d2015c9227d9036f289d1246da4adc6d02852f0daf5492635a6ca406bc9e400d9f5495545f3edcb64b471581c7eefcdec97e36ee873114779b908c984a442aec2659ed6b9d6799824730def4911873f745f946ba390ca64f2a4828292b0eb835a54c66e92d39a506dd336a1da9e0548080e0308bb3e8dc544d86b9ba09a5ddf0445b1eb9ba021d0bc7375b588b5b7f26836ff8940ea49ac5951c8ae2ffea0a82c12c1a2323ff8c93b578eb2de106e2299384c7d5cd2ecfa62ad062ac1f6c82fdc549fac814cb06bcda4edfb53e628dcc461ea9f4d4859f7211225b915f1bb44f172d692276e429e24eb729bb05b51e154f2abc2466e9bf995e2aaa9c1b0f1db667ecd70df8dbcfc556b48528ad1e63ccf6f03779be2aa53c118835d5010d0694f9d0a4690aca626834fa3922ed2e5aa435cb988e8aa43aaa97e919711189232d79ad8b8020a42ba72ad561b6b4532f8fe342a0c9cb8aa31662eb22ba875027acab520a8cc7d19ec2ab60008a3d5648dcce2fb5c84b6ebe79a3d89b9e6ca35d155dbf5ddb95bfaa63586137b783f82c4366c57476528284c1693d8206d75735996ff5a71b5120202b23700a2a927d2654d367b123d0cf2e10205b12b91ba5aad4a4e2cedc889654dd95c2e9b47dab89c9f46bd29efcc327baa599665b948ddd025270d6b72ff5b57f634534d5e57f5de7b8dc82fbaec296b97cbcbbcaf4bb6c16dfc3144d1e56913146483b452ea9c68eab0b106b53010464e675b364928726de48879e48819bf49ae56ab95e8d74f1fb00abe0820040710829e5f306cbcdb245dbbbe00bc73654f9e3f79f44853030531f221d6ec8904d1904dc8d8d8bd49da06107a49ba5c981357e229b2c4d6f544d7489c6517d1b5b7bf2922c1fb4a8fbec8c023e9067821f402749b009974233f0d34953f47e581144e108394f8e001420c3b77f5ec32b86a07d2654fa2172f110cd8e6ec10136ba4ad05580b486a0caea48db49136c73e60d513cb9135d9ec2203ab93a004d837de39087a8837a5bbba18b4baa8d1a87a507b040df203bbaf5631d8f5cd166f39b61c064107c2576e85cf3015f6e5b22362416248326cb06d521b6c1fa096ea96c1dd3ce0fbae6aa9fa382febaa569bcd6cb3996dac7d937b50741ebeb235b56457d5d2ecccca46b04741f914944ff9258c75afbccaef50f99447297710d9b1a2751099597915adc3ccc0ddfc0c05d839d02c7020f746d7a067a090296a4d31ccf8418c6691a2334e07815292fc37ff9f523eca9b5cace6442b564b14cdd54a1c2baff229256926e5513ee551fe4b92eb99154dda907270a4004b924af91c2abfa277104979154ddabccad3548e941c4ed0032452299ab4d137527ee5698aa650f45b936f1e6b3ba49636da03be5d5b97db5b4a795538956d72ed6c46c158024817460479ae346f6c2ee4a183eefea68c8d379bcd66b3d93c2e39efc5a7517df36dfe6edeb3799128e4092fb8a12876f336a8e0cdc6ebc4cfef95e2831d6fe340bce5450051ddb6a02f6e859b1c88a39238cab5834161b870205748b2d15edb84c2214e91b719e2c4ee7635849f2c0ff796a8d851160a0ac3c5be34bbe6bc6fcc9eb818b76bca5fd8756d1ab792a5945ccd9a9c8e1bcf2b3b155cda88f2299ea5b1b520ccaa0ae29e9ef69717a9a57b4faf236377b3ae9b75dd5f9a284657d1d1f369e16fe8efc99f844f7ad1e841de73a057e2df888ff18fceb3c5120204041f97e68d8d35e9fbcd77a4efed73165bec79a44f93526e6cee3b6ddea061399bef37da0471b829fdbdee6d40f994b761e555dec31863ac4956933a8d03e5535254f406ff579adde7f06df8588b82d0f14a103f183ea84541183dfd9da75902e1637d43f856df307abc294d2f3c197d7e90487c3c3af13cd62649240abd27f437743725bdde63ee5eef378f43f73df76e3c4e9b9edb826ee13d2d3c8d7acb1634e829fdc9b203a3e7bee7927fb9ff7cdedacfc927fac22fe53b3f95ff1efc5436b8eb1e45c5fea6047d285f1fec424fed69d4c2c948140a51de861410e553e9369fcf9ebee1f3dc479b3ad0b07606113fcd587c8e7bbc29cd1be7c9532b0a3fd2dfd39e52be05d189e80bf5d7c2e73c1185ceaacdd22ef9a798df73f0e7ef3c4fdf80e90697a60e1b6fca9915148c4bd09b9bf7bc9452e551ca95df6c66543ee5bd12878af67039b3a251de7ebe1fdf7229aff233292a289bfc1f07fafc19f7a714dfd311c7fc1c30cb00daa2a676881146d3d6d8d355adacafb6595576e579ae9575d76a1504775671cf7b9e271d6b935aaab75adabce9350954261fd0713bf7dd346f9e46adaa6aab4caaaaaaaa0adb99a55925dc8a5b71dfc6292b2b662b47d99a993d79cd0a3f7917352b5be328ef078539f70f3544ecfa3eb040e455819bc79b0dde941ec66f836eac3b0f3fb729eddb075daf4a2354ec6ce32a7ae3deaa7121558c6655b5ec6c367bd9d3e86129a33882a4bb1c465f92a02f759bee128d429a61a82e2a5339fc3d7843d073e7394ddd5ba7e2689b5badb4d62928efbfc9359c085cf8b689d1b4ab5dbbef7bcb51ceade83d78416e9c11765fca8ab7f12ebc86edcd615c0925fc6479b8c9de1ce559282c0f0bb32b7bb23ab0371b855da2b431fb4a32da2b46944f79b3aa686ae9aa928cdc36ed2bd7b84183c2d9b89a35d919b7a201344524f571ed79e3381afd974a3366c490c0a73b3fe7b4a64a91ec2bae6c30e23745559e61655f6d44e7439a1af3e973e49c32b6c9396750d8aac69cf644393e921845edb946f36b6a6948cd69f18c8ddb6c8dada6c614ba906178d1977a3112a3dd35ecafd25aa9b7d017ffafc4a1b43f8ee383c3c23f832f361235a031de0d6a1c8599d4eca0b45ab1561f57a2267f1b13db17bbfec7e18ff3f04b08804e0035e2bfe96dbc048ff34421e8c87d00720def03208010df3c5ba332373fe7b362e7cd202221d688618837981b7db9dbc4b7027cdff7ad9c546601a7a7323da84c0a1ce53f9262446264346414b22b103a7e2fcac4976804565fe83caec16872ce24b53413653e382c4ecb9e6ae8f83d0603dff00d068edfba30028b2c52e6af70bdd5bf6fa132de8b2a6bca353eed63697325a6d5d2afaca9be16eb77727cb0ea0b5fb369309a9c93736298c3883b5053fd3f9fd5125538db6a8c89619b498da92da931f83d16adc67cd861fc3f7fc0f77ddf77c5e8f9ce9ba2eabbb69273725a6349537777beabfdc6445cb97f1ccebdfedd6e631510e298a37e878fd9d38a145e082bb72741acfb04e41a9b4f803d4078af183fbfa3f39edf41fee7cdaf9911aed8a8ccf7f557bca027ce17c3397f87e73bbfe3f36426e1e8781ef4ac83c84ce7c9cff17952ebf0db1250b8822bd5d1351c60092d8aa4688a084d915edad87b500601214662acdb5cb9395b1b8246749e461dcb0df87f7fdfa5e057a0277cb33e05ea55a06e2bc18d045b455f56e229ee406148405faa485363441a2223478b5a34524baf05741b9758f3f5ebfe55fd95e6b4f96d2ff10d6b1305a48916dc741fbe36428cc4e86d53bc6198a3383e50d10ace517180c030ef65c835f0cb7053a19777830d08739e61658bcf394d8eedbcff5d9b6d7816b6efef6dd8fffed35f4bded3fcd9e8fed32df4c57b1d36cddff7e150daf87b4efcc05c43fc7ad6181f5466f369d7a2ca9e48fd1fcfb326d50fa931dc1bd1f977d953477358d6545363f2734ece994bce594b22b7bfe65d74ffcb9e68ea619ae3031319432dbab438a496f090d1c4b7d56dd7ff1fb8d842d0d38acd9a80a08f02fa2b4789b5152cace88a8d082ffd3e8d8a6ff8866f9cafd8c4152cacdc442e76fd8fbb1b8b3d0884df789f73c178bf7edff77ddf8310082510726240845d1f2331e26d724e1c068725ca1cc509c249c13639e70c9ec15f5125aa6ca2caa6b2715cb5545d738ae023c6eecdaf51893c8824a0a209a808043dbdca5198f62a1055bf1255dc8334501abec69edc0b6aaaef60ecfa353bbcaa0f5f63e39c9fc73939e766f3bf7abc84ed799da59f87bbbb791aa73a11539c14c5950450632eb8793a72740e0e533f0747ddf04a53554d6eb5c4a49666346bb2d1172fae87091e5a155b46e33c3447815432623c34576980bec438ca7790614f1b20010fbb3ef8dd10e760bc39187d7fe3e769ac3f6d3107863950999a738d1c5c45eaab23a3320cf0d046afd1b53f35db431bb1c673cb569b46f3786af5851ae6607ee0f779a1e7a1791e9aa776dfcaa8e9bea7e6c9c243f3d0ae87e6a97dfa032d1dc8818d7a34bfc1e8a965514b32cf67513b327e9b46f1840fdbdbf4074910629b2e1bf18b3807630e54c69e3c595453f52ca91aa0280f16940354c6c304fa52bf5ace03fbf6e6fd056e8ff9cbe8cbe9033df98c19042080c9549627279d8e6ce5ba06b1c428b31e9a87769fb39ac31df837cb50b706ec8d03945e00325a481c4e41a90c95c94eb63513c0e1bb5ac550ca18cbb7a603743c921da98cd126c3729d92a6ac27c39ef2c7785c9e1d50cfab96b2feac3cd829c351539de74acfeda3faece0aa311f1ebcb4030f1835ebc2363d1e97e65c307ab44e49539edb4745656aa7f4d05e63e7c7375db672998354f83d327bf268f7c17bc8fc872c88cc579f4c26bbd7b68408c061506ac90331dd9973c1c8596b2d28044b8fcdb3c453f364e1c182be7896c08dcfe9743a32727014a76f382e8d107fe5a5c4076f38ca67e030f5e9cb11f4a5be57fa90af88114f8da3871d4f714ad24ce7c71fb50ece77b48e7b85121cc1be0e295074b747c1a1b0ebfb16f485fa371ce55270981c8cdc36ddc6d55ce3c668330d35d5d1ce299de5ad21562eaba9142665d654df49996f31dbb586736f7a92d45275f741e633acc4e89e25bbd2649e2c3c341cac3c300f4ce681c93c3019ae315d9600cd625f0fcc9e3c5bc4b6171e19181e9aa78585b8cc7a973bc17aaa02a42de608d39821061a48f0bda2c5dd554261e50c5389bed4b7808c8d000a030037d5b7c2088c3dafeb79e5e0012f79363d184d3f3db684bfe88b4341615b071e05366234fddc1c750fe4803de04c54e04529ad547e18638c31c6188f5638ba94e7d575e716def2025f70c36d6ae007c3103331da6d96300fc68f664f34e5efb9e795c3921f8152190aa332d5bdf02d76c5c21d1bb171ae84565ff0bc3c6f1c795ef6e4a77d9d9e97119b9adab04a9f2959f9cdcf999f36b5d19ed78fd103f318a9a58e359ad4e6390283c233c59dcd665d67b5798fb0fdb1d84275bdc83987e3a521a301df1bf09f21061a333061578096ea23c1a59f9ec3cbe62f6a7325f445092f7b722bbc0b8fb916afbd8391849ffae979798c989e970789f7a027cf129ed7e9f1f3c4daf3a22f5807a3e9af9a2135a69bf9cc67d8fa8fce574137c378e6a896c37c9830d2e1cbc40b779dceb36e565d173f01d73e4c7c5ead4f8b7c8284e599cf3e56cc2aec63859fea13e22a83f1846a8b3e5098fa5600828b4f0c3ead27368c9aeadbf8bc3e463eb0cfebf3fac0c2aeb26eadd5558bf05355825595f053b6c24d7946432356222aab16515b97cb5d3441858a84c1a84ccdf909b9f629e2d3fadc5ceb3e457c5ab5d5aa913db8cb5157e719f9c49dd58e43c2c69fd9e708f494c1b87d66b7d1dd2ff7995199cc8168b32d8b7d40472dd55c8625a5e1873a0c35e946e8aa300c43ed59bbca943f7cd34f100b745a533db162e6a9b2157ecaaa4e93461c063cc91d3e45903d280f4230515b56ccec14288e028df11c55590e1323af5059c0454a8d416de5acd2d5d60b77d1e92efcf429c25f8e32e2a84e5796c3902a6bfa14e127b207f2c532f2897d96e8c161fb03c547079f282a0b76fd7aab0e294575f83347fcfb9f0f139dde9ca7a35dee300c3fad1a83f5e7553bfd31f211b2ebe7e5c2adfc49daf5568ec2358721b5f0d3870937d5f7562e7840782b520b92763bd15a6b3f4cf82987e1a67cab39ca1de53a87e127f2095cfbb43afb293f4778c24fd43f5b20e1f3840f0ceed3a8aa5aaa0f526d423a5a8b4bbaefbdd7f1f7beb9fa33fbcc3e33cfd3245a4bf54d3a8413a836574b2024f9b6c16aead81b2319b1265734f64d52e5d772201d392e87975392354bdaac4905dac1e384eea95c565cb38d8ea62ebde1e7a7dda009ed91f17e48db87f6f9882f91c68154323b2cc594583a143e929ca93b85874fda3a15642d1363f79a79835d189259d895c4c2ae4f82415f00f1e0e70f18a6ea2cc755ef447fd0b3e7951fcd6a183a9246fcdcf1f3fabc3e2f2a9349aefbcedbce0f4de5ee04adfbcc3e33fc35881f7e48d6f39dcfe1017de77790eff91c9d0f7d48ef00c1484db29eaf01a449561b11eabc7defbfafcc11fef8b6c411fef85ee6c8ffb1a1d261a0d263a4cb3c5afcf03fe58e8e26618d237cf149e2cfe4e75c2c2c09cbb35c0b69b4ac84369bd16a9ed1382befe4b0c49aed0613958835e24b747d5eb0b19a22d8e28cbed43a0aaf37128944f9969b882a2edff64d556328a93a39c936542a52f5794d6157d0157648753b3b1a8d9f993579915a72d592d7031735fa8428ecfa30973641b1bbbdcbb6c2dc482dd55845524bdfe79b3d7d66de585fb5c8cb511e4da619bd3fc9357007ea8dbe9cb59f9747f3f1c10776b95f49c936baddfdca67f699e51a589ba0237bc7ee3408866d7849f72686d9530683ceeee54012e642c2402d7ba229504d8bc22c099b0134534b7525c33fb359f79d0ac61a40352d3a8b815a17a8b1a66aca35c0070110968e7c3ccf5b95aced44ff0f46c23e2fd8e745c23e2f12664f9f2350537d2cbc2d60fbe3c5cc55047f5ae15fefd3facc3eb320f6064e248d5c52633a158846e5112155355245c359654f248da6a2a968f6846b351aaed170187eae305ca3d58ec3358b6bb5cd75608601c346fc12826054c68edeea08bb7ebe796792cc8513de4a0a24b15c3bb2391f7e8ef1f33a9ad3e48aa4f140988c1f24002540b562f77eefbd9746f3562ad815e462d7f7c69063807befbd1c01565e10de595fa88f9b184d6fb5bd15bd51994caa4815f7dc766a80ee0d906dd49a6100b7996f2fdca8b8f9bed9b58fdce65a9e5499b9b6690450ca356f95f312cea640f8c104040b3f47fe10d46dd720187d413276fa53f311c2bdf9691dc000997b2f6bf8342a8d169634c4f2deaeebba985348034fa3827474ebbab11fb0d71563e9f34e566edde52dcac4e52e84ba11eb39f78d966823b2159d46631fdebb92116d44aba5aaa496cace4f60b5278a6294a4963a3d9af94a554b43183be388664d5c698e948c94d451adc6789024a3d9122a4377163b08dec97922b2799e9facfc6475727ade38aa4ece204e5627b6e61ad6e607e820bad55215313909a2c6ac6accc979e2a3067baab5b32397fbf9040cb6ab54466cd3db2e57e89ee8952395171d2d46a291c80b954864ab272b2bbb4a18e9a659cd48e5efc14b89cf799aee7bf052f95dae5a721f3b50d30b0630f3365d85825d1f64593d7a8d8a20e1acd552eb56b4cf9d2d608942f024b4e5a8c7a8e519f318798c98c7086e73748e4e47d5d5c63c46ce3647278f51c58e4ecec7a8e2b20cdf836ff30cdddf776ec36d4e20d69eb5e4a355c35380841abc1c8dce5b031254545454f00554c24dc9ed940c016f7fa3f354a9ecb9b9dffb7fb906e6317edba4355b825eda2e06baeddba0db6a5114e377e05aafb49f6bd8df949b7db2a232aea22f27ad7a22a4c67cda81d4920f27ce722cc498030e3e6a09482d69c729701161c6fd4436dbcdcb0b7cd7064b6e4063700e76e0729488e6ba0087bbf36c896c3344365b87d6a1d1444b462738ea717616f318bb6d8e4e3ae27721d7e8de0553107a1a9dac7c89912c89237ef43859e11ea38ffabef2466e8e64309ca33992d9f0bc931f9a3801829ea0e044087a1ab9aca93a8a060f76fd9395eb84888bbb916c24a3c9ae4ae53e72d118f160f4a24d5c4bcbc2b35ed775ddc84565aa297b3b7c3e72dd29c68e8acaa0767ddf819e46321595a1359afbb0eb0556419c9c6205dfbe1319cd9395aac670e3c9eaac31b4ccc186abc2f0f3a8c3b3a68e054a08c282144d11e1def40090bdc73cc64b730c75dbef4ad014621ea3ddf6c197975cc37b9761c3e55c837b51d569a759a1603447b23d92f598d16ade5987312f12b6fff77d170f6000b9c6fd01641b7573329c3a69454b84191534061b21092399a36a70983a928d4632e7b06f46ae99a3ba1dba1faece87ab23c1e8acd5e0a8ab042a6c3f6ddbcf2b9470f48566e559cbddcef33ccf334088cb13d5c836f282be8c6e7b89a34e76a03023299c90a000b9c6fd02bc30928d64aa4e363a57a39a20a3f3c788d583cc35fc64a5da6189a3bc07cd80f3204417bb3ee631fa3e5dbbfec845657c07fa92043d390f3f622938b27f58e26475729e04514bf804a329b28d5210c616828e56404744d05387664da7a33a4d3a50189db4510c0e10436344367b3ae961fba10a623b51c9b047e52a577d1dda92268eba585018ff26b67d996c67c2f6373b616c0fa62ff7d6ae920fee2ef7398c3f4915027c39eb5d8f91613d87911101efbd1836d772a0c7799e9f4cbcc0eb27132f3f9d093fb98072bae0a71837a1c4a0d8ca09416ff45c2fdcc40064f4255eafd14b23c2bff10ab5c31640eb0ba6cb46ef6320c20666c1c8bd2fc05f2135f2c3f32ebcf7440a2d8a6c7fe75cbfb41ba925d668d25a78017bfa610b626df7751cc771dca53213f6fc3cc00d1dc0c0d5e6ddde7df751b6496b648c87bb1a0395a9db5f1b7053fa3c90522f691040067da98f5740ad7dd9d7a8044408ab2f8bcad8af2ee402e689d9d926adc570e6333c511cb56901666cea047e4eae719f936dd4ceebecc51fcb711cc77d0003351d38c1bd7640637a4063bacf327f798e020135ddb6af603f1f4b8228a85af19edefebc8bbbd0bdf76f28e4ca1a64b813a0317ea2ee003cc468fa8bc6382f7ff9ebc4d12ed66a47f8f93a3717448db1b7d7cb5f5dac93e2e273535d6081b4c58ca99c7b5e68b4e0d3f71cd532865abc16477d2dbbfe00fcd4f5d03571d4a7c1240ece7af013e8609226bbbe578237b004b700ad006d601247816080337b02b900af0056816929348235b0b6053d896854c682b70d7a118235aee37e141b8d64f50517ecfa45d4d0c0c5d5a2c46bd716d017234667b1bdc9b2458785c9aecf5263d982a23c27cb12161bcb13762d5264d75709424fa2980a4ba565041597ca11383a7b12d1c08f896e30478d90388ce7a4347b52e1a844b41658a7c4a9ba411b821b7016823311046716ec02ac8133478d0e53c12efc74b500c1d9ae8ef2462dfc0432e1347b025fd6a43b55a70664c24f1d1a80ba53795ee7080d62db519d29284cfd4e1354f00026019c815d803551acebc05c5a2e426a8cf8428bca28e00b5554d8b7fbf785fe78b3d96ce8f76667ded9defc9d626f1ea46ea915af8cbe6c3e0447229a8aead25a10d128aa8596a800680cfe5c5a8e02b5286644e73b9d17c51c4573946b1595c3d43f41b970d65af7eff33c0f0c375e49100441f0fb4232fcc08a18eb363b304f1efffbf07f250e63ae9165c0c1e2e0f9e63d6bc0b34083056bb6498c9b31e3e85200b0d5980d57b3f1ac041cabac5468442dca4245b56bb524a289683218af16c944528868a3e9d20ac330746975e709b6369befdbfcf7750e6ebeee1ce2d2ea589bcdad3bbbb33bbbb313a95421cbb3a29b928d3e198d46a4b0855aa748c7d519d2394245e5a8ce0c3a3531005f336a6aa2db68355271484437d16d468b6c06d7817560a29b3d7560a25b27ba5d9a3d852db25a07d68179b5049674dbeffbbe0f0525fb8f9038ca0588c3b800d9758464d72fb24d15245454f6a4c2a2a6ea71b6a9a202b50982d906df4bd0a93581250e5dcdc62e2d17212e353018f15ff0330e9cea527e95b4c8eeec26b932fae2ef02c451770a0ae35fa970c10fb6f9a9744a6a7396000edee3b0799d75a6c1a6280bf52a7a3c3689d1bfe3f8e93671e86a76f737548560a7c69a2e46ba14d635a34b4bbb08093272744bac05492de1d6c8bd4b2b54d993caa8c21ab96a477f1556193ef8025fe04ded2fd4e028364332925d70141bc5c0516c141bc52eedd240f03de54dcd78d9d3a561f005bebe19e0a55d5a12cefb5cc2afac2008822d614b4bf68f11ba906100411004bf32a4294117c4aeabed3eeaca914ad4440406cd51222b388ce8f682d1ecce96d981edfaa27308477d61cb9ec2d39a7c382aa40959d6f472d4a7c31ebc0745853b5021a84c1876e70e55f4a5ba603455582aac516c068d2171a9a931df4dd5072b67ad0a0bc9e7d272a9a132dfabc8e0c85669b15c8a6c9721bbba1cb1ab0b122c7b9a6155582a2c7abfefc0eca9d3e9c0700b46d3a505009b0a4b8a5ddfa5a6c66ce07329524fa1cac5654875718527121723bb7e073ef820111a68aaf32aac5d3f54719ed2fae7296b2a54d9934b2b54852a97963db5c85c5a2d3297967f58773adf7bca9bf2f888ed96192e2d9756a7c69ec24a3d3e66940df05a64f6f4806af26f9175b25de94b17a3e2541fa2c70e5ef7e5bd1c8563577c7dbd5a94390c96719856850cd3c42a6034cc044cab42764bce8abe80415f9ad875480dae011882a5384474d512bed9912cb661f65ff6d4e990a51f52237bb7af893d141ff3ce9f24ff1c1ef2f39ecff1d11dfdaf19334433c6fede85a2708cc2d4ef783ee693ff7d4f961fef065114dffc2145c6fce6d7805cf8b1373fc6f9f0fd402a64f8c680806b108a9ca7f9b331fe57d25c637c9bfd576c4ed0d3af645e14bb3e67079c1ed09897a3c41a87a9cf811f9367a0033b72596ffc4aee45558d199f23fd4152cd4785ece6e2ed7860466461dc704ce6ad3018f465e50b37d962359e0f2b5f602bc43c203e0cc342886198a3b012a709c14f580b37552531fab284167e126920d6589312477d9f16a110451d7c4a76d55188e28bca884bd09328ce8eec7a850b7602c38410e39ca32de88d8305e70849d04a39501c596274c418e48727c60880a81255ae180c2643acb94cbcc41a4789b59adac7c430fcf442005fb5e2057d3980287a32cf721b7cc34d3c9567576c9b4f5db1d11770c586af80c15861524fb8c94a937af268dcb662e336f70ab77dbef671dae7e2bf1c023c223c166708ce29733d96c71982737e4fdf63394a947186f0935885e8b1c42a44218eba57639adfac1886e89c16e7e4f4a089dce66bc41ad199f80ddfc09e887c5f9f73b6383519063036052f288c14f5e44cea27a9276f526dab8f71208d0a6a1d1e3d7ede4b003ffe5a1005613471d0c1c8f642af0cc5ff4a2f6ddfe009ecec86f3c010a46367dfa927862227088511f1121e879e0cf6493370efbda76fa0b5c43ddd9ff820187a18fcd4b898b5e81287882d3e4e30460eab964a9573724ebad19c22f4a57e86d90eb662aba9b1d93ed8a11ddfff03b7b9e15fd50de7892fdb576c3098ed624d1480d3978d3d40280402793c1f51e571db4874424f3ecec3bfb282824ddfdf630e440939ac5ae29c9c963555abc5591251254ac1e31c8563ba64a12ca2eadaafa9a9f9d8ab6005848b3dcec337461823464b4bae815f54dd6acc06fc3f0afa52ff4f2f85f9311744993d89605cf1b197e265f585fa587c9a9d73da93e879e35845dfa6781345d6c73cbfe3f3b15d9104a9d90cd814494b8bedd91fbc57783afff91d9e55e73f9fc3f3e4d3a89f8fe759e47b9c456b5390a2960aa81ea8242c344949cd3286060000000000c3140000280c0a86c30242a9500f44513e14000e74a0566e581d09c420896118650c420620030006604000044666140000897cdef6fe2ace80de9c648b10f7087c3ad48421003d86c8f51cbc9000ee59ee57351d3b74a259041703b192b9445f4bce7355b4d067d5b0ce0f69bb66ae879c1ad6a26cb17e62693b1e21a557c3dafcd5334fc5aa559ff522384ad2c9df59b309ce166378deab68805e58305a7bb13e6dddafb19d978c3b1a8aa519609e0f9c5f312243eaa528e5f97353e80dc217ae68a03ea37301733ccad0ee048c0dfbc9e6307dd17591816e69aebf1632debc7a602e5e80dc74006ae83fc8d4bea72b1b5ed470d9ebf445c2ba57d04d4cfe1f0b03844700dca40f8bc4133ab31887fffbed2549170191444e4bd19fff0bf94f61fbe209db7ca424d39eca56f807db025050e0f4e1ca098f0c2a4e6e0864b55141333d9e46c88ec78b6dceb803a733d3d84d3c5dc24d4dbcb38f32c49db8a5be991a0054fcd104cd419eb4d04c36fb2902d1bcfbf025d401ed53942dc09569dfe351dce33ca703df72f2d1031e267a7f8f176775baeaab1615ec8f773244c78cae25b699273379a4d8433e8ddbec936a28ab34b4012f04384c7e210d5835b46823f534c070b40db3b944a519616006107a68a47285bc70f90670c5cfbdd43b08120d184ac6251e831943b730e93dff84aa110313a1720e6431ff1cbbade9ca116e52062d7cf47a013a53ba3dbf7271b8aef1a5f3fbc0020b8b877ad75b2e1e0bcc39efff92c0d1e3b22f6d1193ef0f246b8353de38c294aef01bf0eaac18887fec554c4827adeb1e6b069c32490994a54e0650ac803640cf5e33a20281bbf8ab6ec96948529e5e338e8514fba363db754a08529abcf17c2baa9eb4e71a63f32d7296dcea3c017e3a112ad747e725a5c2b1a566e42c31d2917bbaf4fa25db6a44347da026a856b6640bb9462c2f73b36a2eafc69111df14e7c15e450b96b64e6114446e490cfe73fc1fffc9893b681260ed2558e3ea872b7588914c068e007840ac1b2b7b5cb0d8373165c5576adf65e646b9ae1d6d4d2c8d3fa83dbb136979ab76b5ed44d14b09784fe13701d4579bebf84c40791d7fca3840283b06ae6e2f4604e9d5db17a977423e9275821a0c394a6652ca53695e11f61f30575db8880af7d2a833ed4afe60968036c555f3992b251cb5c35705fca1fe711def049c6010cd3e86d42307fcfcb466ae52ab9199170f9bfb119e28e39c02a5aab25257c1850abb22673bfa5dc51cda092712c32822f1b891a31296a1763fd9e6e0da5c0a2930fe541026ca6e345bbb58c0e25a69221db48655cff5cc0f11ffbb6dca5a545e957daf12e53b874cac3114f75f315a1c446f494db54731318b6c19886902e468bc75d8383af3b0124148f8f2694b62808aa1ec693957803132a6d2000076ba30afc0812c63505a700eb6b8b9b0c1ff2648e7ba5a2456ad741934d1dc94245594496fbe5258620e3b93678a3896e56d057b1b89fc108f5d29b1eb29fa4096476fa8c5de463097f7eca967fa877a6ecb5d462fca8ebdb5f04f7b16a19ea3cbcb48308d243dc56f4976518350230deacc6d221253ab15d08c326f5b7111775cdbd93a9fd78081773199853c40b012362816100f8d94da5d6233fe9761dc1f41d1ce164ef9efd28f4a2a5a3b379f0ff5cefedfe82e9ac6f1daccd427bb35ea04b03a8320d1ddb33ab92c1b2daaeb78f3d59bba750ce1219c20b9fa670c67d08e025bf8bc2530cd52e57a6bb8d312c353263747e190cede0bfd84350701adfdc587cd814ab8c55c43df821fd95dceeddcbb97e0571468a502e5a72e2a27c751fbe3f45e64027f2f953ca243f1e36aac9deee968cee2870e7c480c0283ac145ce254c4d7aa249e4b46b03515147eef08e476ca04d110ed5fdab1aa85f7bdf2fe64557fcecbea49dfbccfae446b763dd882b5c1b3b96bf76cab6bea5baec04b77eaa3380426313d6549f0d206e0579fc1abf2810d8f524d45ee49077cf275bf4dd260c488ceca7799ff4e52ddebce9d69f8e7dafc266f924497418a38ef9088a40f643c96f4750aca6cb37a669a217d71fbbbe9df5460bf103b6a27ea04a99b652834e0f2d9cecaabde6ef74a03ff2558d42b7c38dbeac905f9a4d05948d94028ddb7cc0dae69bb693f1f56777695167d8365598c083e2e70ad2cb9952a3b7620a7dfe4a02d0626c3b561f533b686626b804f1d62c4d8f2c09aa2b1d491ddee4721e105f86f7b6e1f92e2721598c7fe7f07149c6cbc4f1a24dca4ae7fce1a811406a1d96ebd1b669b58e64b0d45a3ca0e97104c9fc6f4b62be85c5c757e1d8177385d1e32dd4aa06c23fc547c804a1c237a1b0aa5614a8c5dac213937dfd45a2bc74e5456973e6140f4e5b707c35cf72487c0bca3c7d19ec177e1494b18ad375d14f97084c7937cd024f39b2361c614f7c6c068081f92972d8944bb937464a2e2e73b8db58b67edd2da48340164dc4c429529419e7116205e94f5b4d1a3214789db3ff8b5f1e2ee0ad8bc673a491a4a761d7a2595e85c0c80e81a8fa32506816892a24749d933031c03a85d65cdded4db67635436e0d2f1971d4929895821c29443fd144f8818ed63416a62b5d84a9dd83204de97db2aba46fccd7e06b365e821b0aabbaf52a0fe4f38910f6f782329fbcbbffbd3fb6cdb084438d8007e34da8ffed1e17840bb1253fc71df1e816a59391629902e180fc2db1dc026f5d94763e1feff23b69828090f2997aee43a17e8f14c23066e394f5e7f046bbb0536aca5bf951ed907c11c64bca798823ebf595cfc3c80fd35c40e19b391f06ba7b741051bbf5e8df78f2d0862a478196d26a66a3107511163a2a561d185fd2ac4da6b2c3023847d1b6cba94bcef98297391a4d374643f3b70637fe25f514d862d0bb90dd2f78e1926b5f5b72fbf07e10c3a04847214385aa84945711809ddd888ebecf69653585cfe5a1b999c3711b77514011e3afc9f54daf9d6587671aea113165bcc6d3e9ee3588790aeee4e797a34a20d1b048cad4952b572f27b098b380685423772042bcab92d7323de2dbaa44ac5ca798bd23191764f383f47f77607e82d367a036542a3cfe4fc580e5bb94b84f08d9ab5a07d8ca2ed3c9c054d2c24555bef182d9c90d2d11ba97d291c85d98b050bc92c7380ff4fd3ac8aa5a0da701cd8ed3520d985772b93ef95cfae6712def3145689f9fe4f6792bd6c30dae21d7f3ef03535959ed720a5ac4d957da66666f4baa8f1dea35d023b664cdc976391d2f68376d649fcc729bc385d92686c71846535a26b2a819aa02f83e16502e59d8b58177dea7241aaea12e5d13d57bfa2ccffc8371cc2e8cdb2ecf1f3efec1ef403092211a794ba6ab41754a7992cca1cb1c7ee279277c32a40b99e9fd8aaa3b9c6e74380c46b02b98dbb435f51f3f517cc22c743ff732a656270fa1820d9f838231324774a1b2c964d848f6504c20059549ed68e26e0b2fbded72f64e3ba6ff1fc852ad80cc7de79ba9bb42cda3845c58529d79935ea6a8c01bec600136a161556bd2c22b3b8db8dfbdc334f45c793e6380c3f093dc8d4c99e22a02de5a8db33abaef4f9e3a87b732b7ce42d72623a1af4e6c0d7bc68b22f43157325710eb8bafc5705001d671010c12d73ebf5b9ee72e5a2e963674834ba0e4c7bb8fe4517b1e4f49ecdbad2ab7f4bb67ba34e1a564fdc79efc4c861a875e5df2cb06e4f244db084c079c61c47b4264b2e478f8409e5332855e17d98061252291e3d4179dcb5ac0d5003191ed2035c6fae5224728c09d434c4ceb2b6056fc12869c17360813aa377370799e3785716019227cca3780274961cd45ee87d52f64be3d5d0d45e3f19bef325abbdb055419054b0066b38152ddb059e8472f1fc470045adea1e7c68b7439d2ed467811ad1bfb740e26ef14e902231797e41626ffdc8cc1bbef2ab1844b174d084f10cac4c46fc540c75cadc6652896c5ad1546bfb34f4be8d3c15b01be1d229934e3d77145946d692b486153a4afd97581c71b9668fc1ef1c615223df7219a805e3a6d16446c630fb73bbb3f066af859f86ca03068e2db71abdab909c46faa9893af92890fe51e0d3952e7271f2819e1e4044846e3b37540dd6f930926d3b6d4f7b6dbfce6ca19cb11f040e7fa5a8ca49548aaa6ec2b0c72b8a20cadf349dcad189a2fa82777769e38e2183e16099bfbc9e0679b53d957bc62b5617135323b4f50a47afbbdceaf20acb4d06bed4b7409ae308f1dfadb6d6ec3314bba4eb6cbc18b62f6234aef2720f349ae8e7cc9239e2d56b768534a2f7c0c189904f032a83aca93a46a15b0f83ac97ebfe3db8c0a11cdaab5447b60415377ec95bc22d9fdc254cd7fc46beca11a3dfc41b832e68c1cfa3bc1710c64004ccd42ab4ed5eacd2d4ce52b60a81d259273aabde39321ce69cee240409d196a08877d53e2d861eb82202a95d2d9a61ccf75de4fe31109265f24bf33999232196ac74f23d36cbcc793330c804eaddb5aeeeea874bc75ce5aeff638e6557cac0bc0162d528aee4661b08202814b0a7f6fbe2943fa0b9b5633c7522f2ed8705c3332e58afe684d27f27f3936d3aa8c8577d955df57bd0862597e018bf29d992b149dc97755c4d4c2dfae08ee74d7f8df05d3119891be6bf309fe877947e41cd6afc7a37714dcc44684682d2c90e97c6be0524ecf9a7bbe03e0ec0282dfba1fbb5b4da69313745c141ffa86e9a5496be6f54a4b3866fa52bcee3f831e97803203a46ec8075b87d24c5d5c6819b532a1bb7b31b22255451cc94c9837815d4aa2906340112ff081a0714e83687cef6c658e3d51926f2b4e1bc27e61a814e12222df027414cec082674a539dc65c34b46d1b31bb0027e4b086670d128da55f13969948d5275c756dd2fb37288a861a1f2b665f7ad4cc8f110ad106744719045b5dc95551fdd9d2bf4465cad814f29f59391a28a1a375e5a3209dbb5b081e618836e0de719bff8c5295134b526c0934ef80d14a6a856913c370dcaad01be74fd9da57158e969b259d50038980dd3152b354589e443bdb5fa65c164414374e38c6ffe42fde10f35a03fefb2a64a0d0592c19e79b946aa296eb8ab29653b4ec513d609c55d16294358956ca32e6971cd472bdfed4f933dc447400bdf41dfaba52da194831d36c75b552cfb9488461f8ce6abf7e2a51bad0449991cd641f50d45e75b0de8c901be6faf61d200edbade81fa7ec8f94b75454b3f20f58f422ba1c434e86a3c48340b4e980a6217b861957cd99bbc2e31295861b9bc59d55277011427eaddeafb2df94c4a98084a766a252b21e915f2489094204bd4c040d4e49b3ead3e7d422d06b4b19e56273ea6c75b4c17c6b13265376b5e2d13b88e4bfc623edd9fdd10e30b9178e2fa35d3dbdf284ad1a5b574e4e635140aaf657180a573f7b504e51d2afa0953efd20d192824bfe0d63fbbe8f9844a378417f2822458d11fc0988f6c23b9068327c2a38a6428be50250adeee6c1d161d8d33cac6d36e1c5b4913650f6762b4dbade2c80f379d42b3eabb88e712a56ba24e30c9a001140dcd445d08dd06ed3ffe222393005147b63051e42c79d7bdb432b9e24a40e80105a577a0e1f064bb13fc14d111ea701570f6a6243fbc2df44e7f13bd06952c9626ae9f89727564a74d42377fe0095df67b5ae009bf03465dc0c9277aca2aa7ba63e60c52aa27188450feb0f1f045fa41bb93d0e65081e23ba05fec6fadab3c0d73b08bbd711a4c12920ddff48b607d8cc6af9f49bcf3a77238cf6cbcc585ca4bd5a62e9efa6782e8eda8267b8d0c13126a9a731d8690e8f568028e24c2c00ca1885e1ece447fd20ff7811a8574b1c8be9dfdbeb14cf336cf1987696e2cd5ca7141091d8b7ae5d9a3d8707837e9c13df29555393950d0547ea26284625a58f2f58ad6f4d37453899f00280a6c31bfac341ef51a73b8f6e1f2610ea7702b736cd322b3d5bd62acf74c8ae370c1f68c833e47b43c58d55710d08952d112a88ca16649de79b1611f577e257e45a9c18ca9f29e882de71931db2dba603dc89dab208a237532afe6326a9ee03b632108f126d8718b3de0e74717536111882d04439210432841013e46d2bfad293a3141abcb6355d0a76485d468e93e8f6f1d3ae79093b81edc0c1c6f84e709c612bfc0195bdcc354cb62ac9d4b84baa73a2258b1a154a400c253609569477481ebc05f3c268a4ef7cea995d9e32c95e9fcd3e622e519265a5eb83e29212d270100d17f93ae65f5c85a016af9e7eeada29b93695fd989201b8532d5533e621187d067e93a3af92785240df5506b2e9929bac4f5ee1240d7f3f6a2490f499175800b1072d91d95db528936f0ca39c36a564671f0811f1bbfd6765c6f84341a1cb32e57f851540190fd2d1f1a276c9602f4587c9e95bd4ddaa1909bfe1370ab9cfd0915478ba6652f67b7473a4aae243730f447b97480878bbb924bf00057ae3a10e9dcf1fe9d5fedf025ae215b85f36643acd160c3dcbe301bba83570a84bdb3d40cedad8af705767cf4c4416d0159b1baaea4cfcb489b7ee723d21425aa2ced3def9cef9bdba4644a0f38c2fa843bb6cd9bca8355b883a5eec7bd5a7063fcb95c62d155d6e8dd86c7204de4b7b2dd55100a0e8e6c7486751b53cfd0280594705d48f85c5c51b654c83c7ad1dc63461706918e4dbf2217a771d76d4f0980de731fa092d89342052bc5975dcc796b5b0e4b8aeb594f043a031314bb60583dd0421e8d686c1d32323f0ed86e4ec87b68526f0eb5613724ac304d2666fc5e1db3f09ece9f528b19034a3a4f56e1c5fb5b69b5a93091b09aa88cc523585e6e099b5e820f4dd1d58a4d7d7518b0084b3bfc3de21624fd2b82d1947444408fc7f82d588ef26d62ce6bdeb0e4c789f48b050af15c4c87030943f835c9f46af39b539886bdf2028975e245fdb4a2a78758cc3931580e7a6377ab718d357316ee255c78317a1d5d06998d5529ab57d6abe994c918f35ba7b3474785c9931a4160efcb918730cddee4b2aa72c01651bbde06dab132bcbb032daf6405a34ef0062f2d3d4740eb0c0cd2e13d37eb6c683c0b4fd363559b1e44d5735b69cf136b342e4618506106424b47d6db835534c6d1fa8502ef3cd8ea19169b5bd6bf0fd392bb548cb8a6216b795250082d71bd656bc05748dd1039ce78c838ae434d2f2a37a9a66dced4a3c6af50c7f8742a0cdfbcf0787a19e49370028a62c42fe0a1040f5354158f8d094bb096f21e0b4429fb961bd304e931f0c68e9f2f57368e80372c29e7740504c5625dcf0e97054603d601e61ddcf388c32e6c7e4c6d7fe0559e8f0a2ac40a19a25a6b00046605bd37faabb69f046cc70774721b3eb089c09c90452807fce1e86c8f1b95e6231ddbc8ca524ff971875bfed192c909e61d62d7b3b58982849159e8b4c25b54c187158927e10af7c3974b2ea71801d4f9791ba9c3ccc2e780e9de0251978e242be7549f061cf51a76c0206b1e03dca9d7677d38ab261e00052233e2607b11fc3bf21152695e00a9f0427c3a900f7c727c46de08602ca8b5e03a067c758489e1cad7462330a2afd2c94e09ba5b64b1ec355131e0e365768467818166ff02493d032f1116ea1804480bb664fd779ab2d214b47d4e8c1da1f6b7a0df462e80e401cd612562fdc19024b978a9d48fdc997d4e7af91198287c8ee5437fe0f59bdd02431db7e421f2d6079042c56f5e07c4f9ee520ee40e263d2ce4f0997592a251d792e42d31e0f4fa91df99fd844a6e57d978ef938b56b3299400bb6e46c7df299398fba0fe9d4c312ab3df32cf48a3424fc2c417441b318b9b2d4625a5198dab27783b59d1f7fd954e426584315172d083c9c72854560878895e39fdc8c7a233f8016ee0747459a151996df4bcaf9e87eac9b945626e1ffb5de4c7e1a759f3e9cd4a69d60ea1399aace3fb4a8b43176272ee771e8964edf2135a83fa8b2f60d920fadb0cc82d24a84610ee78a81df6289e88a59f97971f8a24bb50abd8a0417c63e8a9a770533896c894ffff946a46afdecaafa054532b62bd4143265eeabe1da2ffba4ce2dd43e85b0dda728d465ea9c76e18df7e03a59aba21d4e2de6d91622456f4d8bd57ccc0f00a56733d5432b60ebefff1218e739280ae31081b667910504363ab3c470caf5a267448a7ff79d90fc8aa24f646b8e1e073d4cda57b9585d21c12b236a06a943b285a1e6203bb19f9fb65e2e5e76efa43371dfa67636053abe4ae80d61a4b99bf50c4626ca5f8c31c5a36c471fadb425b5a744f35028efb035c228d2dae0ed74ee615ec893ceae0cb41f772e8cf91dcc0a16529cd9292973eabc2aa072607ef4470bdf79d0faccfa2371e3d1dd31771a5cb275a25d0345e31a9e3309b31653fc49b9909e8f6a2311427b2c0e2465584712c616dea57b4996723ed30530cc788200e328d2f82fe1d631a28008a71c76f372060cc3fe73c54944589015b996f4989c7e7212d18a18504140217e7e958cda2e7c8f2381e80583f79d4972478ac1daf33758c8a22c11bf0647816e3d08776536f07b33294968cb053f58784e00e78f267052978d75e2773d98680b199f3a8c6d21049b3a5203458faa2643faa64391d1896c24b4abe92f7bc089cc4be754c5f93584cfa38f48e26434d531634875d908d3ca2b209d0419e9de52b06b24c2b01b984a2e509c84f0566f10610651165afb66ef441b8b2b728b5340f02575e3a3a9a4091642b588015bf36a5f721c7aed93819c9579991eda14b064acd570b82142b93aa1a23e22576f93e97d514902ac49941a184a77defb86ce519d30beba526467180960a6544436e7212930c8bfe88f9cdd510c3969864783beeff77fdc153cedd43f33be584c903690fe36bf7f3e15fab524620ebaf0211b52b2d10bdbc5458c395237a716881e18b158fb49c22651f850f5301fb9ee93ff66ebefb26058a4d40d0201f26d70898d64e6134bd6fc22e19e2a8c14019b755a4418270c415eff951e3a84fb4694150111f478e16bd96a17218c452e6166a227a579fa9fbdb5a8d4aa4b50659e751dd8b26ba6532b71cfc55cb722153b3f7060e7a1cd31ba375b120d23ba30eaa548e42071cce1480600755ca71275880a6b2406309444e54c8e6e5d518c7235111eb82096f9def4843631ae1a10dd2df0fb8bbe5bd76d775290e601894fa22c8a97b0f68f9a236d681bb0d07ab2dc2a4358df108226ed0b40a8e846c2bd221344f751bbee5e9e4a33e65a375b9f5039ec0144753b7d380c1ce9647ec0d49302fd0eb39f5a3aa30495cfee2fd159e24f1eeeac085bebec2b5eba8c7cf90a255e08e07c772049770dbcb8338aa9d2f998de79538e1e73670a924f89034d049a8a45f2dab2ab2012575ab186fe0e6e4c42cca2e64e66e80f2c423dfa5058f4fbb821add1ec15cb26c1d298ee46a64ae4a34aa75e103b306adc531b8b19a1a9a86852ae32c670385afc3b880297ea6734d544a99aa2fc95c33d0695a3baed66ade91b8afe4225087863404b78b24c49af95343ca74a1662472a1115937a3c0e022e8adfc703a34e86753715019699c7a0404e140d212bb142353e78f893a61b34805308468de17e5c8816e86acee0869fa47fd58ccca8683281d97e2c3be73862ae1e8bda00d6b21a2003822b94536e9aa459a556997910055accb852a17a3587ae2cc6155820b04a7f225e3bc8a96b76e8be44d21ebbe0a347525456cc562939346f7b6b2cd50c3b5c6c8daa8717aacd8018ce04ded0fa8a9cf4265c95cb1bdc7c69972c07f3d1002b47818951d5e40847f0bc703e075b0db7c17a9f09e69974b5a69b1eb0550e9352cff16feddb354b17052cdf713ef2530a66703003f7b4bf531ebe1e43efe46511533f1dc309c096b590b768da790c8426eeaa09c5854e7e2c9a24e466315a9b5dd3a466a97211890e853d38d941e1ab80337f8dc2aeb723c019a10229a133dc28c995670d25b95d4c8715f351d60d5bf4bd221ee4a85809ffe90254d2c4ec9750889ffffd5fedef02f6696792e410ecdffa562d369e865d5266a14a88389e0a8acdf46ed44d46630bac1a8e21c8a7b36dd483e03024b4c2f0850c09103020fc851ef8cfe03135281d5a76378662976502836fb42c37f5c3d470152a015fa149842432a770cf1223f7314f119ed1488be4af1b357334461e96cac94432ff89d3b52a3f3a451fe659c6efd0b1ad835e78856c2badb706ee54eb97425be82f581acd0d0965ef20fe0811a4778512552f55a7100affc7c475122abfbff1c1282c127675e6ca78ea086695b031c2e66a4de265b117ac6311daf8b9610156c64d5078bc551bbfedc16b858e8d6c5ae5a5cd73c04304b59099549fc65c9d520dadc535cf10f6afbca73027e7506c72d27c16e8b1979b8216019edbcfe661e2d498840f51c91af045dfe8329c2f9aa95791ebb5150f3d73902b8aac28b2c0194267b8f56ae2c4956a13d609a501cbf225cf5e94ffc31267b37f6f73a12b9addd78f93a06f3f3684ce353919e814edc2781246e742f4d9d8a947966b3cdf50363fedee91df31d741bf9a0d569d161981475cc1b554e209943c16b4f7147588e657eac3714b97d2b334ca0ad4759de6542d6a86acdd5a8dc85f3a11946200094f26749c65190c1708956d6f05d5e21b6a1df49a5648955effdd13942d324d31a6318cca31e159709db176dcc24756c5d870ed0510167519048e08b2f2233b931f6d121082887ea422b30062dbce06f91f70ca70c78060aa9c88cbc306ea35a329e5d4095e21d5c1a3ced0f1635416be5770495b8f114716b813fe7f5099d8c36d631866ca1f518edb11143bea27b88cbcbf77e3be3769dbe482c1d78fc619ec313d4ec4e2d85596c289d48f6d3fee43029663948f30c78db565c260943b0122e2efac52b2507af1f31f979dde5855219cdd159df6fd636d28ce87ccd319cd11abf129a28896ffdfba77f363ce6c3c9406090d7c722e997c324329d45a14a25df21fd44dc87cba29c05d0a5d9708c5050616eeb4880c1db8871934fc450260efe954f572170ff784f0b56598b90b17741db0837177e1224daf721192ad8387ed8dd4c2b831dd4ced64fd74f0099f33997202683357cfd26ccaad50e3790763d69d1065c8873a6e0d8844bc9f12eec312f372444ec105e7119a69cc1030c31355f4d7e2d76fc38f6c91d8f9e6b536194b3e7f7af30fc064e9048195ade675e135a409b41442a01c1332b5331619bc50d09691b83d4636c70f6753ca21b22721795ec14821ac5c3e455b159f8fc18322dba2bd7759fa9397a49189fa59e4cb7774bd2fe817725a9e8861e315d6555e0dd11f720364747a7df9c59426064e4a3d45fa3cdf6d78e44c99c1a2c54c16e8562620ea4be9713156ccc48b889f155b4e3c4c83bda281ede3f883d7caebfc9b3a756139acc10b2acf2f20a8813d25b00247f713b234c1cbfd4225f2be86c13b4feb4f64ce7955c46b6e59851ab80c894ab40dbafd62252123feb41e3fe40df5fe428ed79bad9ca3400c6f71008f5c9ba6d98975098cca111786cd6476caf5581cbf1996913f58765dae2fae803b7307c2b16ca837ecf603f50ee9c8418172d550f800d16ad901060c8f41f4b0550514d20e2c1e06aecdb816e78fbd7463cf7439531da63b570833569570ebb2411ae81827ac5ea2558d02b19e071709f50ad98a7781e328489f3e615e0f9d480c95db694ffca276ed20511080aca10c900295500451212e9a8c68aea59f0bc24719c8a6c4522522f46e48a321e89bedbe59e62ad2f4703092fcd2e7b2301fb5939116b7a16b4380e92bc775a4007b6320d1059a1c3413b39cd1a58a974a0f79f8951045743b010e6350e0ec60867a1a854f8a242b6e9ac0a8ebeac769b34de116e4d5f7f455c88ac4eeed61334232c55831719b8cba9b7f7fc561b64a0015aadbcc248793f4cc84a70641ab71d5618c2fc307185a3f90382dac9449f5d5ef02ac94dccbad329cab5ff967fb3f2197592d4da6dc8207a01527d6a5b88a7ba9b0095c1fe9f1d90ecba07d29cf825d2d7377612c5e6cc4b3f8132c7f4ba97bb8ff828e45f05581edcc1cc8f85e2a39b4e9e6b16b5dc2d09985dd24720625eba7db44afe5a4488829f87384b94803911ad007d9c2ddcbdf30347106f510c5b9e55d09ccf2f78f46c511d93e31c8145a3a88fc0e6a6f66c8ec709baf2233b6ad49e9bc62aca7986e80ec7cad677c89a30de199a5ca80af8cc265cb967c4eb5d28ab467b28025a368b63195f544e47e1825e9578b9095f22a6776c0b7de89ebd12a8d6675cc066232bff9286a95bd3e3333e91a4d5bba08677bae1f18a311c9a673d65756783582f6db8611476da98f5bacecd8959d56444319711c9b2200fc352b25bae1706e1945e73edab379f9856033b178990135c161b56ba78ea6caa7feb726f8aa449dc5d8b12d38745aa69b4c26050b313a47a5e8ce51d21d2a29195181ab412f226526fa6e1567ae860d3346b4288c024aaa6f1d1137c98b9534f006db4c734db31404c6e56618cbd52edd1ef98aebfd2a1b4a34684d4e5056b67a543ceaaa01d7983e90895eb63a0cde60e36541d92bf733d37e946dd1a6a28aaa5339d1907155b4180b6764c4c75a1c00de586620d332cbbc8be5b6ae4dadb09e10bebbd30a426952e1a7ef51e87c467a5ec0867b0cc8488dbebeabf63c9d9fa71332a9137d1b50c695911bc82a3715b8edd6094bcb489d9405e779f7c65511d36065c859bad1eb5ef5c5b0d70e9e6bf81d99d20223b83ad92acbfddf5a5b1edc955d42b0fb0feeec7fac34455ef72796851e7771b1143a3786bac8ded26316a78861fc6dc6ea23df5976f2bece8d50b9abc9a9fa25a76984298a2bc45b5a7a86c21b01319fe02561b681975819de15416ce7cc4eaf0c17ff3eb2c8d35dce921ccb3f73a0cdad9312260a4df1581a4821a0c7767e0ee23ea0a55d621ed52530af400b41fe0ed1a3c86d8d9d9d7bd48e00e880982084910997f487de6e01c8ba262858ad9591b445ffada0d25fe95ae78b9042aa59bdc91ee1770488623cc01262c4bccf4e0ea14c009733c734afaa21b4f87f500cb9a7a0020719f607f14238375d0c27bc1f0ed6ad80df8b420db033be1567cab980061be761905a61d9d79b98a6423cda8e43cb357b625280a7eda4490eb03e9005272670b07c5669b8a5ba534d9481679b6e56e5e809dfab3079066af24b1bed7d9f7f5fefdd044bef06f02716c4254bc68e7dd3c59c9d8abcfffcfb853e0fc8cfb3f11acdd7b22ede910613dbd062c2231d8177f8c635022c2e8f7a80f77543c799bd0b48c7e5428ff962634a8aa5376f21c245dfbfad37333a386785a618f371fd5203bb6f6f9e0601375f279fbfaf9c53f6125ea30f8067cf4b99181da490767a3fffbd8fc894f94b3b80538fadc9ae482c6570f7ad10511702d699f69d71b18219722ad8318d250a5dc91d6f642d471bbfdf36f679a08734adbeff72c4d9510b401ef2e6a1d92b1f799d87da4a61a0a521c3a649332a4ddd9c7223d1a41764f52c4e00dbd5cb4181ddcd40f0cb30bc40c6a327dbb8b98fd24384c3f5248301664540a72e62337f4721ed0ae96941a210b3c793099fdeaef452be99f0b884d904e6dc5b182d507ff0416e772bf2b768f1b8984f18e5c846f7f849f9d5d97b5aaa293e740dfd348f160ffc70ea29463be612c95c7141f4c2e87000161c7f4370c71a84f069e23d7a7cf4e7938321f8f67b1c263b01376170d8ebc8e3820590edad1cf8d2d7d1c308b17857c1ab6b9ed91ff90f5ca527396e7bee48aafbefb697283b7dc2ef8f199616aee9d6566cf2d53fd69f3ea23cef55e7326f27fddb8e394baa71a4007b53579e09c0003d3e82c331c94c92b95229b4d7917cd5da62d24012c5771384633e6d54c04aa1f7707761c4589389748dde62489f512326e464f0763dbbe5ad5fac16cf127b6f5b4dbd44be212034c52ea3af7c2ae411535688786b8aa7eb33b56b26c2e4db02c68c4bcd0820610b50b4b122edd06fc47613292ae9ed3e46b31652c81842da8064db1a1309b3b85a941eb444abfcbec83c9637611ed16957eddcd40719e5b7c51473aa1713bef2bc52c680fbf43a8c8f860052a4d0bee4f3da28ddad514ffc44afa5a9a1aec5c181afad22df102fb85a41eed6219a138368a5f1a255e5225bf6d093ea33aac1c627ba94269d4604dde70ff93bd1519d816c0c729da5b42b326221957738922434d82b46cb2651bc34ff954534acdddcbe28c220ab374fe80b3ded11b3e019921665a1c6a3248c32270f2826f7466734d99060c79c2f1494be00ff8860bf6f9130bbc87b4a28b64512396982910bcfd460ee4a7c470fb712c9b6309c9eaa89c36833ba46aa0eddb7d06020b642f4ba081cc998c9bdf6daebde9dbb8ef32f17e1e8316009b03f9a40f9995bf8c5ce659fb8cdc11dbfdb1615669a06d6407ec44da5e56fdd12e98251a03048501049ac028532df7d1e322f0dace9b6039fdf1b17a80910a95e270fba104022cbe841122c83cde7f1d6d1d5b48434fc9b6ee1191ff76f420a445a84b7774d2f37c19ce9ea5e3a1573d4b9354a67504195fd9d19b202623ccfad83b13a6a6d6c971a939276536964cbdd775833e7b145ec6ead7835906f5a4744a33f7e424efe16dc84c5dca974158d283b2fe9e6d3e6855c9a9ca15f695e926de2e087861fa35a96e15df7a79d2f126cdaf1dff0bd4bd333e5d57ac30faaea4ec981eb0751263841199a7043795b836484157698a0e53a5279076a9a4c90f108ddc1d2753d564e2729e177caed8f62abab14340ff26670c4064cb7bcd97eca3fe658c92877d5ae0c2aff48ce1547f5f629a54739cedd65b1035332c702b2cc03d62f21329b6fb41a802a0dbdf474cc3b702c134a77defda8071e19a89420be485bd216a2ca2507e8dee6c67cd1d9762211091f2a7027623145c14357b2208411313a1f0bd3296e15fbbe0513177b86320db983f74fe72774459fd8fc91051550554ba4a0cd451ec8acdfad6a05414aa7141633f907e9f9a831edf2dc9e7cb2a28308cb171c84d35679d777c19760bb3eb52ec6ac862d5dfef6cd826ef04707049fa9e41e79d3db0220cc6f0db84f1c08c36a7e25b80cb685888671a6332d4bb6f4a209426cc562f91c9335aa4453a90d9ef0a74001ebb3b9c188b7707bd1c9a44119036eceef31fef54408c8add25e4f36fe078667bc0b277d81d784c11790401ab7b4c266b761888c41b2ccf0d3e58ec541cd9ecac92ba9c2238c524c5525633e686ea2dcaade7864328c86d0775098769c38ff536c37ed507b55d8e1733e202fd0f336cefb2d4fa0418e06011e31d40a5356a0907add6ca24424040af7392a7706d311b29adea2251e6a9567053d7486f0482c68d53b30dd4f36c087cadc8b3e782d13a20877f7049b782a34449c59ca20dad67a0f88d1ad4dc9be7dbb0841df7da76e57c5c8e55f57b4e4de6f1e592febc28c601ebcdc51f22e79340c16ca617ef532b95fb04f0b36c4ede4ebe22128d86f27115062851c1d8afee9b6287cf27ddc6d487ad26c158691a4f5127575a599cd27557e2ce75264fa3c2d5693a56cc13bfd72aa474b4ef46c52de891420b735d71dfd029e6720a670ad26cbad8702f86b322bc4122648d789406ffbd6554fac28854c870cfe79971ef117ec5c9f28f83907bbbe7bc4e5c59a33d95d7fb5e07cadc1aceaffaf41d762dba60cc1952eda90a07a08123a62df84c6790a8718ef6d7acc3e1e1e0d98da1ab1bf0a2e43530f4acbeb259efcd12b9ac472a81920d5196f31ac951766d232e77ecee010f6bdeb2b48f20075f48f258b519d18f4607abfe6014615ceab7bbfc2cdc1a1c8bd587e1e783fc36b0bc2c0314cb5c62de60006432a227b81e384f26230010d372fa6864feba696515ce8f7fd791216ea305fcae457123571cccde4e0775619e800714df5b6d2d22e3c9680d941c93b822ca7b5df659c39966124ebd36cd1408bd4422677da679b6acc6d6408e0472f138ac4d55502b9f2c2422d985a30e10292e381dcdeb37587fd076b4bb36ce2e7b0990ab0e7c301799873e54545157a89a8705e25e078079280ec9b4bcc804082eac5f4630588a48186137fe6c0b945c1aaa4914f417e4cdc13d643072c80ddda22af0d3aa2c141c16635d9d38f7439659bbe8bb600c08168410980c23a4994bf4cb723de1d8038ff2863b0cdbc64950413a86939ed67e15b77a8d0655c73e256347fc37b6f07ae1c2a680b9f2d917dee34f755898efc187c7079613a81421810bb91f82bb191085ad3b36a0e038f6c475631900fc05f478b1071b20fb9560905e53bc1eeb4c6b7bd2bd2a1d153426ef10d6cd283bc2efe62a4cbed4d299590eac339a43cdc0c8a0cf5f8d77c95e5df8064ac7afb6ef272576b80344504ccc0f52b238d389e300ce5c0828c0212264ceab3f49f48ada27593a386874d4e687f428409495505a34bf26378912f545cc5671319bd11385122063637f5644f269fc73e189bcb45f47d09fbe4060f57f19860778b35c0801702a30498d30c9d14510421ee9039153793223443c1056fb46c127566741b4a5c8990c848c2b339e5db45ad49f47b69467805269666b7a4b0fca58461402b4cdf2f59b74a742f2914eeace79c863837eac0a74619021f4b675e73a5d8d4a5a2e8a0331a310a084bd50d502dc2567776de9fba12b0e24ec03d1c852c01154bf0c929cb856b91017cc773bec74c2ca02f76f23bfa51a55856faa40d0c4c8e794085941d7925ce8ecee6514c406598d970d0bcb66a361928280a6aa9afe32bcbda0ef6bf6de6d510aeff1e15e57dcb8d4b128dfb5f05d123f5aca8a6be694ed003443c10f1bdf00e63718c9c33c17fde696c2205717f8767b609e3df78f51d3b52871ff887891e54a6eac04f5868ac356ca1a67a25ab5a156141af354bb9c0a87c35d59a12aa5df293928f75d14e42da71bef010b7a697345d76b9b76070a67754de01b1082af031e77b87f4d3a4a5ac99c25e76af932884b9588d4d882cbe3003e38578c44d3479c1dcb9ce961517f483f7f9db99db8af7ee339b00160e5d22cfa101b76af16afab64e90823836bab19c10a3ceaf093f906fa2a2786bce751b65733d74767c5bdd4feda6327c2c5cf254a1fda5ac9b56f264ca762260d09bd1c005bc953b0d420293345b6c0cc9accae7f1098bf8d7464f0b760047721c5bd2127029d003ba52e3614cad3994d66a479fd29d7fb9ebca83352d5d97d66969c40932454604d78123955313a9a5d371ab3743bbef924926dd8808d175ac468809cd2be9759395c5794b9103dde690cac75de4b99ea5d1bbd06c7dd566c60514ac332b6276fe48ee6b27a86a96cb00296adfacaabc20b5c06bbd993732dd4096ee03bcc25c9b3918e0d33a6e31a6944f0821a68419faab5d1418f334e13cd2617dd6e3c179cc0ad9fee4675d94ff5033933948a8da3a2983292c0d78596f8903feb243d820d88af7e3155b109a88da8930b6a7245ee3384d95930e29b755a48cd62c68dcf26dda3e259559cb14760946f3b716ee6f8d50ae730e1b708213b152bdbc816c8ccacc307204da5a38125f34365981e01c463d7c7bc9d6e491100a75cd07a1c71c3297f9d9311a41f79182680f6ad7ece260513099b5077b73a9e4f71d15c902a3849543a427864a147df73ab15ef26ab156f471df5bfea340d321b0209da84bebda396c49cbe3fe21fba62550713dc9a25c7209f5af3615ce94f68b3ae854d4f0f241ccc7b0d6789c9e1619ec4b87a60860ee127eac4476d447f3f5a767f5c1c4587a43df7ae3ad172a3643fea0724889299a13ee67af95843f3e44ff7782c441b207c0566951e56f9baa18c1504ae89bc821163e41dc2386d24cba2fe520a98da6a442b1c1e02d42ebad4fa82c8f5953974a8c2276f1158582ab2398d5c50d30576be4f2857b57a4b5ec3fbf86b3d113d893bc026cc4037b105cf579687fbbdcb4291e325b90107068c2f7d2d37721546569d6a9899eafd1c69700c8cd47b14ffb67fc07ac4f85b05c0791dcaf2c04f1288b9235e731f06b8cd85a19cd8f09c24be1f7b73ac86071454a2bced908fd83786d64d23bbe78061c149b479d35dfce3c8a530288f146b379a00af71738481a13807160910f6389d5ec227e1a09412ecb7b80f959d49e019897391ee268dc7880d43e3d91b9962c48f91040c15c46ff8aecb87af16df3f23608403f222280b53d706e406aa6ec51ea61f0f0751d268e92900058fa028bf61350bfb690567cbd0101370ebddc0306a254036f7358e580576050b40fc58ac7b4d4ea4e704b07aa27e3744d8b5469688df55e984b1a8b93216bd84ed04813efae749db6478acf81e26409b1ac4f90f91050828f306a7fb1d313500751e0822158c055d824c713a88b81e869989146a496b4efa0de15eec43bc6dffb608849903d54df012849a1a2a982b2c374f86e50e4ba2fdaf75d4a010f2318925fc4901dac8d71c406fd120e2b88535d95701da912b94ead6215f32d80752d2f98bf2b86a4dd3102dad0b9eb491c15f757cb0714bf1760d75a036821a642b308b952097ebafa0ed5337d2b15ee2fe2d089d369071c93f3472e6a2fa18de1424c86ee48ae73d4dd5b86cc2f1e6392667bb4c2ad74358e384c8a00bf23ff0d7c5750baf26cc12712705c42eda5b26bdfb50aa466518ef25f4d3a602fa692092ac077ad9d74103833725c702213c09a9e59d86d3514422415a90284f74521a0f66c45efbd96392247c6528b28c8dd3317805719246171684e346170e779e621728aa104e1443e8afa1a71dfd8d5d2c47df4d4ab63805357ea1fa288dbc1e05799916145fec8616886a3ddd591c67f26eefc72ca004fae2bd121b7c5af4422a736580425156906574eb7e9b9149e905551bd12804cf3562ff2847595494381c41481de3a9355c6e43c6bc0c2aba0df77b6ad7416eb8ad21b0853ac5a30967093d657b065f7dc9d2c24cb58edb1873859fbf5a98228069c00fef278a56028c877871bc9f232a07f0f8732643c4c900871eaff9bbb34742b61d268de7a5da0663771462114c2d3fcae24a069e3e2c664167e94aa63c2bdc1358cb98ceca146bc42c8aa8f45843c7eedfb5c70c366b10a6463c617ed258ff6d56b583b84a45bda44db1a23858672f3594a80dfd35034ce10bb37059874e58ac62f72a14c86cf563fb508d558317c9818c0340bbd30b6f222d7baae1e12af96b96e176aedc4a9c5d0eedddab50bdc8b2462cc460d36a86300b7822abf3f31bd66e500c484b3929019d8477e8378a455028b54ce0605a8216976c19ed08263c1a1a13b4f01f9a14e446204e5928b4856ca858573022af675c4e1a130539dca3465326e897e5ed48b72602f075552ed600f53157e4c374e4c1f0308602c9dc81a8087e3cf06605eb12a59541ac9a9d88cf6bcf865f488daa436068aebc00b5d2c0164a91c5f2fe1c519c725b3528367ece3d1e93c221d28af72c561b50fd8270f18aa09bd5043716deb468969a88f49a058db8267cfd0c2f81cf056e8bc00cefb2d461119f6bc8becbe3dc4e3245b7631d80eea67342e60641c8e6ce6eb9b8141686a7359fbfea68152709566287590978381345a8bad6a7e054efcd7963438bc967f178a06299c834d5794aa4d0b5ace3eca9f99885453fe016e21f699ba4bda988c2305e8ede41cb6d7a7f365a060d118df863e5e866b2568cb4fb516e9d0b4b1dad4baf4754a68c47d8c6d6d2adf43c6942cd609cd3d980babe826394de8b4ea1f8ec2fa136db220e964f45f3f3e67c1a4884e8931e263d3c4401f925404f073f6538fa8e24c1a602f55a74426b65fb9cc39ae4b365579a137784281848cc3efbdeb940e074b1fc586c44a7f4b963e060b521905fc32a4c099f828001f17b8f0f3fdab3aa49fc6c65ab202dcb7e78a4c621e23f361081591d1ec5664ee6c473d51fc0750f3583267d13024fde9fad1b4b10b5c7ec43b847703c4f8a5946764cbf4ecdbdf3c6bc2c380e8c4f41b6931d55e2d3dd332279de8220fc6feeed3e6a7cc3944dc989fd529a241aef1dacd249cac00d827145882534647c6d60d158134bbb7c3628743747d67b1a97e8aadc4e277c33986dc30bca85f8c7db50d4b1964de2cb71b3eb21799aa0839521e925716c64c234cc4b49464365c60cee8f3cf10e239de7503b635c757ef323d55d84ef30804e6a529bd3acab46c4c113b278c10fe6df4bbea53db51f8cf1eb75a7c563fe9dd791b2813b151c7960be8ecdfb00745b170c0bc681bfc8de0b31616192ff1a7c384cada201fb0045eb4f1002a0ba1d229c9a5519cf8b968c19f35e157e0783faae2a40ac68621c1f71db7537bb9d24d0dca7a5a156de78706bc117397968e6bff15aaa78d9325f1becc06e3091892022ddf29d600f5f8eb54c6af9a95d45d518492caf89b6932a6f4a6e6d1c0037f0aa96575e90b4a4f2bf0de3ffbe1e03a5ef9bd5e24f91a36cef9c032483adc3c7c7467ffbe2ea67a0b8606a10c4e515547735ab1007c41ded0e7d63f8fbe70037183ca69e4f97392180e118c1038ce346ae506055b3a60c6117e395b8c8520276eceacad34767dc01b2d2a1ebeefbeacd0f77d06890da0935f018033fddf9528bef19e0298d40a54f476f07f8070d758353541295a907a9bebbe6e0a3808d40ff47fad71080447c8a1e156e40ba2a42bd44c99832cf21978a506e2360ac5ad09a8a30e2fab0282d73a158cd08636563bd60947eb443e7c6ce04908abe53448b205eea22b24a90bf2c82136defb0084ca014460f0293c5e13071bf9593c6a1e90f385531550ae0a8d955b7b308f28ac27c95f5f1639813ecc45ad26a330dcd2b5378cd4a93b0787b432ddbdf6d413eede03b1c0d2b43c5e3214ca15f8a7561cdbb6d681ddc2a017f3784ebe46f9e0d8279c50fe3209ad53bc28b2739bd4b1fa9c2e9447ab044d9a11c15421c73e6499826869e82d44d3f3259972c4e51a08348711ce17309608ec55a9f4c8b8c24a16f80f7477c6d03ffd1312b44c0537e0937fcd968553d663de256bfb59ac4ac0ff65cdd56f0ccaae292112b4d4be06a9c95cd091ad379096f82672448e159649106138476c23a42a1714974754275ad3af2bc511063ea26caf08abb580576a2eee87e87899eae398575d695e79b21d73b21fe8502a931266a799aa1a1e1d3a21ecf113202497d84f181e2dbd8f4b0ebe489f14b1763483c86f138fa0d27fb326efde2879029240418d0e5d724f2e6ca5277d3141a71c78265b0097c9710e00ffff1df656bfecc9af9f9bb870e2b0876bf0381ce21e76546977dd2c796c0eb4af60ac367748aad3e4d1e9a49fb6098b4226246a266f2cbe76dd91ab74408aac1043f222f49b89e4054053e0d5b2f8f4be3657cf13fbe9c79790f310f73228e7b52e00634c2db1e014e33312ad9e1836ed64c943f2c78bb14313d4dc423a399990851bd34903ade97e14db044f81686fb2171356d5a0614fd40e1ae97b33647a96c262d382276c9014c280818f06965f1ace0a159845c6a12c93affdeb5c7a44c5e38c047a30bdff302d2d01d97f8c3871d50aa2e4bc17600be087a9eee8448bfd91a98f51a8e763d0deee2f8ccb5cd51e4f8f3c1c4aff554bf1cd466f4c2e330b4cd8bb24ec40fa8a1065d8c4e878dc335b3f93da3ef8c82fcfaec07c9842aa4192138421537a07083882932e486536e6e04a32798426504d0edadec90eed41e083a04d435a77da66a9d59266ff81c2e485ec0cc599dbb7347d8705aced5846d956c8779f9de80bbdb6cb00fc2b5b322b4358a54ae4c7570935ff0a5275c20050ff08515e64ed1e46e7725df91a5a20169b42f05353e5bdcb61c1c7deb34bdb1146c80ffcee16eedb270a8f7cf21759f78a1578cd6653650ad4563671c6e48d145c9eaeea905524fb5fee9b22cad44a2a1240461735ebbf56c607bae54c4cf856c9a39cec1175bff045e8e77728f4af2acbc41030550ddc7282c4b0f379d6fb7be6f0a177d4ff1b1ee1f54026cda8069bbd8c8df1200502818dc4722ebb2ee5af8c5835d92f2219cedc1da98ab6ebe2fdfa1d839e1d2dbc0e46a15cfc67361eb155ec287481e6fd9115cd96969d9e4293ae948c76e044cac53079b3f79394ed893411e0f42477a916f5b29e80984b28e952e0c943551c9964082509aff0d50e49f966bcbdfec6c8ff0402038e72672ea08a7e1bda7e0c9e2e1862a8121ae65b578c260047db4085e4e81613cc1f9e9fb33a1dc2d98ba13ab0dfe796c8f4c907000a012db692ab29793b8520ad05e1012f354329f81627db5efcb8ba79b85617aa4dc174eb0311c0cef22417f4096c6d7fc3ee702cac9009e68492eca555531462a855580d0b360c3318d0696de6a57a77a009705e3d9e3685267874f213ee589af76d2066a05a41bb3513ee4667b5474b5d8fd299b947c8e318d56f58e67a2c2db3872e736639a3bbd074fda2a4a938cd885598ff56fc9237d116d576b0c3bb080b2512a6319c534f319e0dbb3385340bd58f2133ad1ba2ebf651701c33bfc9dde4b025758ace1777f43ac952b49ec7c732cfb9524317fb06c41ee457f194af2752c9390c28e665af5be16c2829dcfb633d483ce9c309ecb6e6e93cc765394b1f3e50977db20e46a164edc4b02fd6512ad7eb35d319b83d0ce3afa8bb874869cf31b702e7d89bf9ec7aa4e415470b73d62d374ac0e23d5b9efe389cd98df28c4e2b328a6fb11db750c4e1148d129aac76a990904a786b324ca6f113e817b3d450d6457147aeef328e0c59067f5cdd8e4bc81062346edafc6d5991855dfe767d0b0d4b2498c229c1bfdda586a78c54e6d704ce2411cb24ba86fa2a7435f3d33696a86c377153d3baf61206278e8b19db52ceb2dd068561d41ec7f51c750698f443c1c0098d7d2072155a6a68eca70ac811dfe3de049162190d5aa9f17d0d30a6d33c681a8d65e8ee8e2090e118824c9baba7848691856d93d8af8cae037895041aa4e2146d1686dce1cdf6af8b683d85c2dd9437080d194692d5e21c2abe7848ed091455c4a27ea0d985a4606a19abe0e7ed2660e65f8f6cf1df6e6b1707cd8dddeaffde6c52c0d574d76f3ff88e681cdd1fe75d16e46ac6b7d620ec80c4c86a2950e7945961eaf2b0f62ba9c8cda87e13b31e0ef4862552e1899c8b32ecc27dbca94a62f9742a8118037ba5fbc7930cf654b2685ce1bcbd61d4601270bf61c70a6a7b4042f61624bf2cb9e6315ae6a1d4a23ef67a976870ee19eed494a0d3958431d9e419da6c252a66421b5915e9ee843ce9c5848b9633a0a753f3209d4b20aa7c86ab069222d9f56d4746fab1de9f95a8dc881dd956c28b9f61d95e5a569cca82e605776ea3cbc9f2981f8d7821c120ff47f935962c83d3bfc1a4a4aa697431809d9fc8d7d6901186e3b0d1d6d7b173e5b25194d9cf52a8adfa2af45b7fe9e980b1bf1b4c57ab0df6b8ef034e3e0c30855b3a8bb6fd6da006e47a37ab03edc15b5e0c5162361b89225be46d9e60fbe5f6537ae4f2a623a5b6935602e579c3fb7940ec7f222b7785cb57d616bab711603da68b2fb4e2cfe508d3a0d4ed2354985d31e7e741d53f3c6c3ee003a2ad82f9a366f052fe20b4cb43b31ca19713c05ae7548fe006d41f04bf53e25575e4c6c0a92a54857ba42770ff39ba8d8c1b50283622cb7657b0369b90f70469aab594bc261898ac4a0a180099ccfa603918eba3afda96d5cd2ec104adeaac9b79c2fab342564111eba7d3a9eee4341d1293c7e0453605d0267997ae5cd98097620ef630d78074678f133d023c09347ec4867b29a72a915cfc662aa26007de293e500212c92b496ca1c0fe88e1d0f3e9104c252b126b8372537391a816fc936f3df4b403f6902cf676c41822a0e79c1eda8d79b4c5d4e1b499baad04baea3f82c7f9162bc5b48699058f27f702c1b45f9021601b5ab3b278cf0e98bb1907fc0b076b66f486985ff8565a57413704dc4dd5ed8d3dea393aabb21c19f6926975babd72c129fe2d2c39b117754160a15da75f5cb292f00c6cfe178c65a114b9b5c0e2b750c8d13a75d5c28488532ed4addd6ccbc8b4ce288f51d977092dabd2db2f5bd3bbba5b36cf6ac794f5d586e412bc68619905228b41290a057d525e8ec918c99c1c2a0c91de48e2d46b5012d8ba26760134131bd8f0047707fbcd04eb2c32b06c883f2da0658db165d97a6861d41ff8c38d7366701b61095515403a763e361118146539d81cdf13fbf0c8bfa72c6dbe3320d2dee80164d54ffa296ac197d8416788793682c94fa2443206f7e11a27852098fbc9738613f8f89b9e114821665392b68791e4087a92059fc4d19c4834a32fcc793d6df4aa14c33235a214ad3af2a0791a0a8a59e5284b3a5d4a618f7a33f391318d6105c09d4e195df156b7ba1decbfa1c17a9e132c3fa08caf9ef5ca75151552a8a0b1d0d24c0302990c44c875c29de30cab87cafb0dafddb5fb36ebe0c835edf7645280cd5c20ce70dada8f580afed9230ef4f806e1b273a17efb0194d1a903d7b04e833da7d5645cffe5d262b10339996ac828359b13b871533d9a4a0a41279843c324fb224ff322441dcd7fbb086301729dd0e8c8ef662013c3264e211782bb34128a04255bfda951b610ffa5332adcf5ad2404cb54503c5b8d017b6218e529b32509cb3cce699cc3921610cd36e938f046986a6112ed6f9df94d0d62c724e11d6090feb538ffa312263980008733a0cc20ffaf71b49b6943dbeeff9558a5cb69fcca9652d6e10e9a4921e3aa1b6b1a10fa9bab4d54bbd9bd5c1eb217d09c02a44082c57a0cea65b1cec820cd5f4867f755c4a8cca15b09fe7dfc170b90048547f0db6a48ba9fe540e958cba28dfa49d05403f997a2c49ad53730a727bbf46d41828684964984ea15e815b663ab1c87f02f9e019e9d82cb406dfaeef6f5f2034b27517b4e7ea77c137b34f26ec7fd75461763414e20ee44984f5100e98335ace4e561432798c53ad25ed069e7c7e7ef5e01b0c24323501c107bacadf9e005c7a8d765039c804de6ff4952ac2c9bfa58307b49e74b541cc459c31c8cac0e63035652f01534199ebde81357968b06f23191f7b73ceb34f99cca1dd9c53b6e403fb50bb1a215b31f6b8b654864cb53a2ea386dd606f91fcba6caa807d5606e1371040e22e2e7cd9c47c910308550cdaf38c8308fb765618478f54e9d19495b357be02c2a37ce0f2a533862814c504e4274ee29d1690e6d06395e01fef6138e7889531df28cd90e64b44ee64a77c59aea86520c52405944db25fbe949ba480a4ceba991a1d46a1a9291c304ea3742bb8caa3c49a7e0d85d3b73e0088426d944630c7b1127ec13c1a8a8c4f29c2379189f0a7a4f138c6c2ed7829a51c7551136c6ffccc4717891f2ae537315b050a8a76c6ecd04028ec978260902446387597636cb4a68b824ef8421f83b801478c5b23ae011220e3f725ea56954533d87fc7c5106504e21026be9f92506eb8d2fafb124758b29e17957ecbb8daf62927c6c12b456fb6b00a2893e51996431ba9b08e03c3078aaaa6d918ceca0c24645103755a918d66a30bf82494c5c7e7c65dddd8714ad3dcdca0c99a93e4e88f31333ef6d6b230fd601dd43febf7be3d56d90a2ea4266c643927b721f3f17a0dea82505124ec9b5fa8ceb38324d40b0eeae843a68a5a5e78f7a3084c723bfee913ca33338060d412d875121098c16003af14a5a6ebf05b489c594bc45c2325a954d244502c825128299795541ad66bac8cf9af4a2f28652c9ed9499821f4e66d83aa27c4928a25ecfcdb9d49776ffbdceb4b76b790f0113a359845338e52c6c3c3f920a7245865f415173a918925f805d131d94e8fce190f1035bad76bfdf199a7e6a5fd4887afb649c0bcdcfdf2328f6345a7c0ea6334800e594bc296cff25a68c20d9c0fe087ed37d1ac82886050d82644b4a579bf51c972e3966ce2c8f7ff8294ba1d24521a2fb90a8b7837fb2ac8bf60e0f50c44fb1b39545929feed3436270482a89874f23a5c99ddf28e3ca6daa8fd1cb0b282b3b9e3e7b8b27692eb6f6d242dade2816b0d7e71f619a32d22f9a78930f0e8f069220203be4abc8083c60fb81ad1d39605304b69c27bbaf5203915731954cb39692a2ba3e6e97452d438aff80e651bea89e47b96bccbff6ccaf0fa5c347e75d49d77a1485899260348f949aa850bea11ae3ee6872f279d926c30c9205f939cbae06221eaaef62c169d543effd64b13f0f06d0b57ae220b935e9ad7c01ff0348c9fa6e4707bd4c893a1888c4500c3f89c0e31c905e2d0311a9d8b6b3a79d23b86c2d77c125e19357829bd8b1bca7e2c9a392fa42b98e27f2b5ce64bf68d6c0817fa3774037c57cfd3a32e6595a956b9bae2dc8c580ffccdc4d0ab0641a8a86391e9bb738cb2f9167aa240e3edbfb94cfbef50d600ec40a50fe13afa53db3c95abca3b27c7a1626a54a6ad7b4db4d1a7547451c020e17bd86713ede5db2e92b98bb2fccf58a29bc267efe4c5949cd63e895c31a0614dee48cedd26723ef0fb0f0c8c88fb7ba10b0c1a387e373466db63c46a32b18e8085e8540ec9318697a606bc7751430ac66c7f3411ddd56b53dd60db86efa24054d944f0cd963e1db7c6a42e69cbd97506d14686c009ae2d69ba575848ba283014a19b1c045b9a8bf20f03b68c8b0210ae6bb5e0e6682e0203b17b0fe2177e7c37c13067f104eaa91669cabb28b86815243afdf31d9133558f29121986c4f3a93366702eba2848065f2a8d72514b2f528c8a69e1caaa26f7027f6a1de61e20aa9608131705aa7e2539b00329759633009f6c965aabb9d6bd237cf51aad79cdac8b5ab707d2b16262e7b96d0e49a05b7c17f570a5132c3693ba67b4ae2eb6c126eae324a8164bfbe82a8278cc4c961ac1b06e16045dc56fed3e19cf04d4580884ab55a92842382346a366e27fa8e15c4be6545133e3071c7fadaa241a4d45115e424e2ec809caaac7e604bae76504df3c5828fc0332a1a242d1769bd3edafd5466f86f8f03db32cb11e806860c206b421ad7b3b1951d53adfb870e95f448bbcfb6b5ee7c3ec3c57bcdcb8afadbac255b0df0c817871b341fda46683690ef18e896ad5f53ddd8eb1e8a8782661d68fe407062091274c94b330664dbb5ba40aff17069fe4f4c569728a394f4ebdec7b13c57492b8d396026730f3e9ae498dd3a4eef1d170f20153a971352f20842526ea0ac3cc179896ddf8ecb499498357609286b14272260a50b987c944e11efc9d6e418c32d475db7630d5cab59b7318a01fde53b1af06e3052ec4b039513498bd8bd73e718b5370738e648bf25fc20dad5cf99e8e6c66a305cd5ae5518bd8c69875b48fa4cbcd5b2a507e65b9e48617873633870c5dd1af76636af708f7ab5072ae02283bd506e06682265caa9bc8f013114a252718812b1cbc0818727c0fad43e1a28273b9c8120ce38501ba27a0d5aa91a16c7bc0b67ac62dae0bf961c22048314f6930a70786c8bcf29c7c03a68210a4b29c79eac050c2c1ec7822acda28cbd9560296ca5acdd431ae666501971499d5f977a6ac682b172e8bd2fb645393648ef44cc715a6c7e697346db674ad80e01151e09c9e4f1bae15662468ed8fdab69f689235c3b699768d4bd3106ef1dcd1f6143145c019b51dec4989cd2a831aa51ccf456fac9491e2ac982522be40ed66854a262255814450ef830e09a559f1554fddc124de15fb3b3a80268945eb02d0309a3b8294c656b9fd5d01a8c595834ba82fb217c024daf6cab0528b6fd9ebbf507f72176bf31fa6e04bc4f7caca934bdd0ba69246da648028a08aae85e419a3037abb9a4908435b7f50b9c7d141a40451e32dfdb39c36328f8891078037e98af3f0e8ecc3467460ea06da02382ae2a1143b5ada6b5253f864adfe59fe1046b23fa2dd3a52479b953c51f3b04b53ce40b48f2279fa7f48000829afa54032dc8f88802879872668fd4959ed326dec1cbca5542b6a0906ed66b7d757c0314d511704f659da8e17a42c8247e1ee34d0da36968b444782060450c3f34418dce8fc4f3c3d290523651fd9a577508d76aead51ca4fb880259d96a7f5ed4bdc1d205031b2a056528789fbc284776ad69fc0b4371c6324537e2a860d6d7ea04ac2382fd733a4f5651d993551f206bd7b0fafcb05087b783ef1b5776e333623dc8aa720a9b53e011139bc786d81b43e2a2cf6e071b84d7769e379aa5753c01c3cefd552f5a4c67cb2c3103cce6bd5e95c2d5d8083b33a45aed3b5e51bf7dfdb9f78477c63444d90f72ba85f527de6a7e14ca2a98a3c4a07cc48f9d2f2a8f08da8b585b48ca80581fb2bb58920072a496a527822b4c01992ea9b3d93caa321b8344f2b7a17a9bcc13628bb2efedec55672e3ce75143ceed6ab0d6b5001dcf78a224e6c36b9b92142c742b6d46b51cf870817be2c255e177f4c20dc00a963ec8c92b7a5033bac36519b4dc115241312d059396405ed485bd77490d38474320328f63e0d75ee1ca7a691e7dec94dd410dc59fd4d7f66621dbfcd9ceb9c54b16e631fa3fa388c065af5fcb6d634bc7a1e11497acaab7c65d8018da82ec9002271e8317739ab481859ab201229dc87e6b8ca752f380a5dbff2b0cef92a99cc4223e93e2d56294df031c7d75f97cc3fd7251c4fe1f160151e5761e581e245db9cd92458dcc105291b30b13fd801451b21b1347746646fdd039d7ae5a3609bd58f9e379538f8ed98d0b911947a576a09b1ced18ae7c4ab859a4b5e663114d8ad2946f282cee321f85a5caa4aa4cba51607cdcd8d4d9ff07599dddcf0cbe741ccac18089cc0b7c8dbd404258d51f236700c09a1fef83f5ab7161c1b5835682a54bdbd791852c2db0a34c368ea3b39b1e4b5192501d5a3f29145b3509d75d0e06c0a235a40c3366b1411544591815f90bdd5a7fea31c839e7ba8f7fbd9c04182dff7b74bb107a224a530a6aa1e4128a94876a52d08398dbc47132cadcbf24aeb61c5bc4851d02a3bf24881a7095b8fb354f73417f57bc2039335632d62bb776e607a05ab946ff1205805be1d4d1b4e05e3195b09649e73630f3ae09dec162dcef1bd5bd8447d9b1f298c86a01de00775a8fb19d06a2696c641c82564b0b6a46d1b55db5530f7754bca45c5a35e716b6003313dd3e650e0d40bc0461caa88b1ce45bcb5d2ab14fab830da8c7284190405033fa3d814534418e6af61022c6dfe7261155d38bfc38a62a206d5689ac4de5ebec20a7433a00fb286b854149a30074cf14a4d576d7525bd563bd7ee7b40d98df5982b1e07edaf52c15057aee20d3b05aed705d7f11ea269647a4483857769d58c135a2eff14a011366dfaca1e69390c8bb966e7fc8f16ef878e1d215270135286b349c3f629f103b0c6dd929921db97e1621943946b4306eb0d4e8181c99d1d4eae2e8d13edb6ddfcf5841a8258b0e74a3a1c2ee59f907e2873b67fe08a6312e96ca7856448637d3c56ad818dcdd22c6572b0b9defe72343eb9fb683f88950c65fce0fdbf5f7a2328d41315e8d57434b21196c0ab45ca95a36be17b07978d9fac350e58fc123b7a3809e130ec93b7410dd073813b8f38f3c24b9a4d9688607727e3b0936446e51d7ed9198a324a65c027162da8cbb94ee969f4003b7c9c5109fd046756b69be5a29eb95c45fcf469144b6cec329738490e28fc8a7d1561dba8989cd09b91c3a3a76fd9a2d86083c0597fde5766f25452faf6f7479f3f7cb1edca5234d78c56c59dc1f66b052228fdeded0358db69578727647a2a4dd06dcc84e3c1102a05e1072c70b7c1933bd83c94ea236e8e15a71c34f1ecd2083977248a83eca0be1f79def8ce51090f215d7ab13de7430c91bfcbc4f290fed0e22d944513f0c7156d118fb9e6e6fde87734dbf823bc078e1d416caef148b0ae39e17f9e14afd132ca87886ed55fa95a4d53645b905761320cf2a6e6f103914f260c3a4d92c7c71a27a947443cc025409b7f02d790e6ac6fb7df17caf5cbdc9f58b96e5dcc00bb22e87d8feb234de47bdb3fad3fcc2105ebe6f24ee66196f106201cd2e6156a857d1a8f57dc2a8c1eac917fcf08c0905da3591412ef3df0d5648abb653c849214a323d025cc3dd650f5a922add75a93446fa5e707a3714a132e0bca371390faa9e9824a9da5cab9ae184ffd25d79af112418b6ca880dd3ab1be0d86fd28d2e338b8873eca7822fc0d74136bfcd5609380dd44464d13d887eb689445d05eb297e0b0e22f09c630d48517f7852edd4358417c01d0b5a6fa92d36f6906a28e07d1bed1cf183dc499b335e22e427a1252bf7ef830c5bcbb73f54654dcce05b06a2953729e01b188536e6a4f1dbbf23d805e50a7c8dbc643ee16064c04badc316a9729f376cda589c7fb3051f975fca85de69351859b3069046fd6a066875c825cc3c5be4f9ffeca6d5b7ec5b25e25e94326968623fd00fd0e593e6faed65ce3a8983fb5070c5e15821663206a850e0075ccea6aa4108568bda68f38fc1a1d43ee9c9a31b8dbd1e4eeaaa1446ea18bf31eb60d6660b83f18798132595260b4e7b696b97be3478aba21996dbdf9cf4263a4b35699f07f98fe527dc3f57cda762a6d491018159e39e455a56bc830119f7784f8349d39031688dc3e7927197076fe794c84a58ed72f240125aaa0bf7c9c5eef882d2aa5384ad5695ef9a20aa7d785f069d80b42e094553ab2015b8c9347ae40111315262e8d7509dbd64b9f6696873a0ea7416a67e441c83ab0395108826948109ac4c52f31cf89c4c5267c4ec368f089885a941acf3aa391f068c81a2d9a0d886e90152eba6a723763fdd4b7d45a2cf026657eb1631fdccd041c8f33cd056f89ced35870084eb7eae5019272c888144ff2f43b6a9b605b44b5f210685e1b27611b382b5cb52909e198d24c5227fd73450ff0cfc8a67364d174c7969109aeaf5bf137854f51acbf758e454f152ed91b1fd494c7d03d2e4d6194d4535fa57c49d442b06eab285ffa1b392361cf24670cf700f8144dd465c24732a4985014b892df19bc9f5e96927d6c4e06e6617f66d8b5b52cf98235d199c5d35710e5898f2e78ecedfddf86d1b1d4439c63a2bd4a69bdcb5f17dd9be5272a58572ac3130e3432a5206d97e6ca1990bdb7a65f3e5ce0b9bce1bb5e65d0d4b78c4fe33b871ae1bd22659f785add704163659b0146aacba468b759daa739f15118a77af56aa77beaf1776cfe9a6e2f0d6d8af204c51449605f179288f92740bea8dee3c5faf9bd3b57e0cfb53b7719f834c3c3207d8fce0bdf3901b56f953a3f8214eb0a30ba9cf0a379b9078400d95019791151ae65c7b2cb85a783ed5c2ee88c256590028136b42c434536671818e687e6d247ffb8e1a45105062eb5c4a323194ece138b389c1881d6d5480ba0d0881d08b4851d58b96cc1a3cfde745073e930d88751a612dfb359c868810f63d47a0d2ba4f355472d24b48b1fedf54970c18bdf43043489e1718bbcfe45050343a2006c60a40188bb3356c8869cfde1d6a9ae4b11f77f73128aad46efb427229ea2cc6c9fe6a113f92bf467d1d0e66adceb927a1eb75195b5100be18499214707ab18c1d4a30c4a39e812a4c94768876878512881861a96bd2eeb621fbe15c2ca526a768021c2bc686bd6fa0e84c7f7c1ed1dd7b51fc00463fe4461c2e0e5e0de1b85cc919f0902eddd2116a9678883e3711f6751e06f30b0520879047620706715023378f449c52df8ebad957ad146deb8b2a2eeddca106a6e9828681449fa3ef13728ecb5adb8779963cbcc8b4174303fc7eee574c3c5fff463f0ac918933c4913fab207670f86b2ece22f0e6003775cc6e8c22fcf84bbd7f18f00dd9d042564bc860a2611713984701eaa0a486121ebf8b52982d5a7984e15aeb5171a13895f942d110ba9d6f25f2d04b2a4662af52520b541c9a22a93c60c0ad03f32040dc1c4309c1fa6cb31a1287e960eede92bb9b22c998c53a82c07d4e775141976fb6e914b7f4da40297f97df7c28590641667e7b416987cc3a82e336eaff5f345d3826b8901fd1bd3f5f2454f72ce2d48d623798ef23be74e98a96a73202846e61a3d1810bc538a86bcbb689c100d69cc8d8dddfcefd2ab62063ea0a4451be31b77cb86e6c8234c9b0a9a2a71fb169d93c578163b508d42367be5d80ca55d1e42468f46c5c6aea2f682dd286ab8b34c0d116f782282107f9008e1734d567867615a20fd5c8d282951a759f86ab02a95c11f976a0aa9440951841c1a2edd3c9455a30a370fc2ccc424169fe189c9966f4947c334f3bbb16c2602b65eaef96449ad5a873e44e48f567935a28238d2b0cbc626c30ec6a9b63172eda542a4f6d7ac55589aca95be5101a4ae64ea81896ec2fb01993766f9d1f35af526538c214c5d65c8b7710a2902834a7146edefb6d4153a6b0ccec06d6fe64c0baafcc23294aaf39e18adde4a41d5c8e67d07230942e0e33d6cd1e49d4b643262d940271b268db3c62e5971f04865bc4c3615ca9c761c5b513d11e060748354065e7718975fe734062802971361bfb28d73b08c6946eb1bfe1e2174b24f3341a9f7b7105c67ce2f2882a36c01b3b381d04b9b40f22ff5f497ab7b7b0cddabc601928cc7789b92c2106f3448f89649a11f431e1bd95a92b69eb7bff55509807daf097d4530102a57478cba5608eaab4d06230f900e1f5420efbab8138c24a1d0a254e36561aa77880543c24f2f5e6ad890cd3b2490bf0ad291534ac59e041b73cfec144596c2d9281f01eeb2840532f36c95c1d61759a20c1475a6a51ec26adbab02224bcd8f9e1ee5eb7a5f6f84704f2455818985412a44f53fe696b6c80377597076679816150604651d1df16621b8199fd4ee41b87f29122de44bdb89a254b0a31d9b4e59387426ec4481faf03b0261da29275c01b0eb0251762e16ffbcdcc8944cd38f3e1f4e547b66ff1763203992e8860c1494e66c444996da1452a583d666f3690a21ceed5e021eb104fa1cb62f420cbf87c5dc42fb4700e42080d7781b783fe62190c4ad68d9a3e3e9449e30608e4a3abf0f6222a6d194f6a81bb8d9b4f821ad9cafab6104f32e86d96f0105ac899a05b94b946f42e30cc16bf249bc81383864b1685b2dfd406a97b63b48bf8f78fb10ee1bc5f26126e146891351a6c680f27514bbd2a343e7f293e089129e8f296ea2264ccc2b2a7de15e366a2c6769376c72df51645ad7584da61e882f228034fd8405fdf3fcfe6c9ace1b3f8e5fc664f46eb88c1032d130f167807d54e2d9850c43a9c240f7f14ae987a9502beadd0c39b5195d00a61c8365ad41222dc26285edb93a905037dff0d68003989e619b01664c789d036c8e3947867afb1f2ac65b35f6ea12f0e6f25b2a6fb64f88925d758c89362a01dae8bf557726397686473fd210681e39510e423ee27028dfe3ce7b54e2e792840f9866629b59cf54fcedf177a64db737b727ed0d49a029df3d880f77e196841bb31dfede10708c5411697397685133a746d8a9ac7a61e1226a28f9c323975e8b89b66fb87f875e6d92bbb1f74e2deb20d7d193bbea10f88669fd199620637b02637c04221bb2c3cc299bd1577739ba84ff1020e531e6e6aca6e6ae106be6bdb6d3a7365a8ff324283893950191a4488843de58ff4e7dfb0c4c177633a9adf84a1a95b63f1b41cc1c0f551a7d5f764a57307805ad722ee02a81e4433611e5cb3c62f6e93d8c9eb49e354cf424e6660a998a4f24bc8933448ccfccbe658d863333af5b1596c300bda5e3f856c8f8b0f2dcd38e942eb28554e9410b462282a2042fed406b07143877cf7cbb90045ce2493c70296fb31eb26cec0ccf0826f416ce28b4b1150adeeb2807b8b0c0eeee59566f0dad5b7f3bece58da2cbf70d5e67400209600fe888e5158f6d0251a2810dc02663f9599d968084163e35a83f56eb5f46a2d691885799dab8b1055e31c741104466929a60562ce4f5b1b6174c496f70535a85683f582f262b0c0a12afd5b17c78d9f14ea6cc2cb2f656ec63c665c4ade11acfdf4b14ea597fc9f19db89424149aeb3de32bbd1af0c1089467e4eca6ab1f8182f925e4939e7622dd3f74413121c6676bdfba26a6b77d51a9981305204ad874f770291cf6dd8a9ea58d258e7e95bb89b925346ab811bd0489ab449e4ddc818110d8c2c7d0875634adace13d65385459848b60de0bd238758b2be59d2ae360486d74cdfa24fe82e77844dc8dbafb59c05b4dab4603c69f3242582abe3b9b544839aa7b990c44bc89bb74b9f7290ace1455c0869c1418bd7eb7331aca21764fdf7ef2b201577dfa5ada09a7f05e9ac147713a47db11dd2dc147e7625d4d94387ee0a3889bc084e02c1edd82bf990e6d7c407867d0223566839ad781218d98c07570fd3f5b50cd024a47f19fae46ff7f316f9f609edebc5ef297375f5c04a58e0e4c352df2571180114525ef6913405bc5acb6e90a273c1d0be6219c227448e9f102a216b8986e86def983247aa9fc2310f8454043a3dfba55a30181237078a6345aac29cdb35634761ecca3c094e47a67344ab7346b5f6e0de992a064871495be5dd23c56d081e433804c160f800d0d71f92e143efc1c14b113c663a447358f7502efa803dec61bf7bc59aeceede227b4b9964780a240a360a40bc1148a7c3a2dc88bb5073895b61e08a8d5b87c694c3686d59bd345047061d9a0a443575682a10d5d4a171188ae32ea60a84973a40384e87d2224078a916e195a68e701ce63accd5748ce952c46ad35aa21487d2d28691b33b47cbf942b1cc5e1dbd17cf5092eb7cff998a45637543c343d114aa8342a1b447d5e03455d121645012554bb9ac252f9735b2661299349367c2b9e4c60be3a4e0c6f99281b831c3a1222028afc7d46c3aa93d0477cfe47561a7607a2bf05a304bd833390c6de1305632b06164bb455ad212bbd786ca90cb4e8f25f2ca89cc8222b7ee455b380c5cd22e6cfaf7ca30949ab2de0e3c94d794c3744cb4f476e0256ac474efbd36ccac1be62246bc848df888d6122e2b8dc35c9dc7c046f20a97b594a9703ba69bb35069566a106acadb8187cae56cf17818ca47c7c622b9b0e7d1048eecb512f07bf8bc2a44cd97056cfade4d45cd176d7f5e09225153e6d3211b9f0fdd007da1051e2b19f0c50e37e7bdf76a1c39301cf7fffe0d7168ef5bd34a946c30f45028efc63f5738b7e61d6e1c47edfdc842deb477f2c8c89a0fb3f4bdbdda109bbea805514b9feea02ecfd4419d6ccde4e100a122d46cf17a4c5067085eceec18d96a4de341459695456edc74aca54e8f0e3776b8911b51d7dafb093d1b4f0a0f099e11367d0f8a5cd69297048f14637b58e43072e7e1100e9fff3e87cf7f252187aa23ff4fc8d96cfa1eca2472e38544163d143752120eecb3f7b08ab6ad558b6fabadd66a1c39b08d71bebd16e2a09bc342bab30c047277d171d8f72deed85a28a26057d1ea6c524ae9b41d71c77eec63e8763103876c8ac72d76505c4aebf8bee445ce86bb41edfbd90615d2b058c89e8de7838aac1859f44c30a8608b1dfc90b32f1d433d532d757acc11fd254c4e783450d474501ecab1a7a4742978e6fa148c960e834b77a1d93381a12604d5428d87e643e930da0fee42ffca1f0dc0d8d99ea41639d8a287d24cb3258c8cb7a8993493c6e3be77a2a4ab6bd0d8de41cdd076541d71dbb33d5361d3177d366172e92e5acc61b7fd4c7b3ca8c88291ef8b9e69d3fb13d3e099fe06705fed9dae90454f8565b2b0a809124ab235e5a13edd84e8a13c5496a172d969a283ca3751883575d54cdbb80e777c7ab42953ca2308370320b2605cefbdb73bd2a2d9a6759d1d6d928c5fb4636765ab18ed9884552dc574ab0e0c56b7ca1debab3542483c9257edca982e3809bb0b5d36756dead22a360836e5eeeed796a5ffbdeabd6a6a2cc3b2ec17293334c65d7db15b05a08af162640ca01bab18b1cd584b98acc24b980b9b6eb4a48dc3541b04dbd4025819581a8b035b33d6eec55a1d938e49acc2abebb91b6215150dc124beb0ab6212ab2ac6c140a8888e241e8255be5a4901ec66157ea8c2e0821107a0a17118cb844dd92798a0e9ca2ec8135eeaaaf05aea9888a248a7eab660c28b286820670ba5a2074436ca9e54f480b539ef6c929c7d3a9b2477473a3068c94322d959a99ba21b31179814752e2fb6b465d789616d6c31c88e7498aa71982ef465a610ca8098bc6bad158fb57224d9e94853f6bd5aad6c642fe411ac9e7785c8f5bb557eb0e46b28862e1e3424986e983938aefec0fd0a04b9670ed7853178e66ab122d9367415c9f6f0bf967af8fed34313f57bf0dee4318fc9dff0dea4c68def3f3ae45a44a38e4458dc808a4a6b2704d5f1a99662ea883e0874aa220ea98c886f44169c3d0366e12478855935a7acf1aa0559c4a5178a795f220876adb8cc4f1fe75052cd1a539989711678c4515052d598092aea56b68bdb111983d888d8b18b93ae04dba235e96a771f846736f7bfdbeea8d938fcc5eb7a11afec73dd45a37673df7bd29d9c803a3bce174fc134e099ca5d7f693fc39d05eeb50b2c68c1840196c174185b83b2811dbb7bc50451b79a1a742af8d4f1619631c79801dc138b33a070a1f0684ea5abe1b7697c08e15508cfc4cc96e9897845850fa0a873ac73c435dede30741d395f3cc82ce1231dd9611a6ad8d924f96eb123bbd5c4a6aed5b1bab103d2e18c1d104ac2a14117ca5ac2a7b2c4ca10f1c962d6aea80cddca5a6bf185e29e325d4116bb554949d907f1338652e183f18b2b745898242c0b73e530b6c65da816268bd39951b18e030000f04cf700a8b5d62e65cb3a3262cbea6ec7cff6162d4eb6577bc458d261b90ae0baae7a81c8d8df1ace9002328b1dd83cc488f884676cf0c87a568fceea4805798467b624d94e200452a1227ae1d55f21bf3cf27553b09a2f748427504578e6da465d173a17532fc65747765c58dcb5ba23b3657498aabb32a60b6b775f74665c2e2e7806c3a76efb1f6a3ca6ae9ea35e335f7c35830d3fe4ba9a2ddd65438c77ab96bbfb751da0d65a6b0dadedb8c0d9d4616c90696bb0e97376ebb22f9c7bc1def3e2cb3ee51a9c6200eafc909d8c4dfffa904321f02f5047004d923d5bb4b9fbcb5ef7baaedb5d182749a6b8bbaed06eb5d65a6d92bced1a8258feef453c4609d47855c7f17eedbefb940e8a7dc36f4f4c63771f433905745d38a9e8810ff60db93d310e2e43a38ebafb3174dd0df7abb621c667c053c8d89eb1d57a752f5dee422bc56cb9170c67c70e2a86766e7627d5b1016573c4fe9d3aa74db33b35780482712849cbb306a6c1b5cd9a1c4c87613486625f03078f54d4c140e8c62f76e4326c4706d851c33855632078c4dc1c6580b06b98a42e460b7325c4433b8edd09c7d46d65539d165616089b7eddaed922eabc19c68e8b8eaca3c3d85447d6921d3b2ebc64ab488dd5063c051e3b2e3ad2a61c0693f864abf0127e0199dab4ebec17f2f6b7ebba8ea9eb3afb57885bf8c80b3479da625ff8c82cc55c2a1f262e038fb1e96fa1b8636f7888ea8c2ce2152633eff3cf557d7fff1c7e610d7c723f651baf9264f7d5ae13a8bfe9d0f573ef404962376efa572d75739c2106b7e86ac5eac66eb5e955a757d7bd974c3743adb542a05b754766091f5975ab954c8d4004f04cb675ab95d57c79c1bef3a34e98c6df7a217b3ebf884fac5ad23133d83093147145cd49e6765fbb6ebb7fb50d3154b437dd23ffbe7b6e710416043a77b5a3667b0d35edd9b62716467c71cd7436095e5dbbfe0d7998ab6db50d55cf604616f1eada138b2478ecbb278945b9bb80c128238bf8844fb5b4e788fe1534416af67c022a06af367803464149d59678855778e5d57a66c782a9271182a951458cd71ab786c3dcd04103436adc70985af51c52358765ee19f12d6c1a335de6ead66c7462b6808af0114d8c0e524c171010c62952298a6b56a3860e35549c37bbd041033a0c71971355d580974eba381952020ff84917431cc604934339828ab617e7eafa0e6041a4982510e80939885f4153a90cc587ceb47e0e87bf96699ae68f82b237403962a31ce119f14a14100a34448fe99284ab745695c5b8cb07467bd2c5892aa6963ad085973e6075966559e619f1d10918353c235ea9ed67aa9fc96174f04acfc86702a18630e2a5932df8885547d461320dea315db650534ba0188092d8f4452e002930398826abd5b1232e10816fd1514e29982f50d816e644459d888c654d267795116e4e0230afd001cf8857aa302d75a24aa19cee1641a917649af2b17b0bbbcd7d2d51504d313af03ba302926dab664f5855d3ea1650946ab69eb428494c619d2039494249dea6efa4932e4e5426209ad9f282ec6f1de5082aa28f8202adec8bf5354805cab9ae212415d13ba4bd96678b13c74a31c915ec2b4c16458389d3aa3fbd96d76ab5b22c03a1ac94742718072ab3f2dc8a8a6725d4e1322b187b4e25e4f11f3e4ba863e56f38b787e519c3f3a1c713860f41032fc8ace810c602cd293a01d11f5b304366caac3ccbb384c2d08dd0b33c8bd6c1f2a167f9ff7f161696677916938da5eb58aeef7b1690e563c282338b92d275dd779ad65191d65151d77d3ea3a4ee3f5fb33f8f43116cf8339ef974efc1339df67c6dbabbd7bc7cca4e1d257db4e8bbd32c210c8fc3ebb52e5af3f73d4b48f17d968e1772190f148a9ed649287ac8087d2b211595503865543c9d2d145209854260680b5d2195502804aaa88454b4add96751a91f0a855e84c16ad64449da5b5d012ab3f2945309ff59429595d065ea123bdbecac44d6c1a69f7b50d274919879b0e9e7541dd1bfc93ee056ba150aa2248c85b17090b57bef65f90ffd4a486554c2d08a4ae8213daa3ad21e151df2cf34754459b447a5438edaf944534416bd932c28e9f3f413a2c4ea72d3afda8b5648d61ec330ec04878ae8a5bdd667a2221e5474a2a2cf6af13ba2eaca041f6609971f6e19f10db1bf20365cd692d72a6b2b5b8bf25a2dafb5591f5444abb63654e4c3a26c28c92d8b63d591b636d647fe367deb83929c92f2a64cccd1dc3367f898a3b9fdb56f73ac5aca41e42158d908568f4ddf6a563ecd166c8b5b71f9e523a8ad2f5a949829adb86c596b6b28a492b5b597160db0fd5ba11014002afa0f773d07808ed338dd7532a896fefd35c6aa236bdf9f255e1685039551c1ee8583ecd7df300ba90a07806ee21a3a2f3a6b977c7e9650470f5108c215645842d137f85e8b92eaa6a10f691da15ff91d3202085d26534225149e321995ab45675d38c8e2ad1f70d6ce2d1da11bff2bff7ae5431fb6e64b8d5a82c14b4249e0bf08ca1ed243a23c24ca43a2c8d71ef23d248dcf0d957f95df21c385427b0a2d4d1d853ed4f6a4439fd07f18ba11fe7fa82d8d0e7d3ea43d651db94ce8a371a032a10f690f49030e2b229fbc4f28674e554778c6c42414c2f09ff06a95565db466cf27f47c28a4325a554bd66a95d52a8bb2a8fba1109311f27db0b045df25aff1cc47cfd952a24514d0ac845386253c811443f89001c3b9bf50041e8a9f1030e4504401cde6de1386c0bfe0b184df4af87d34b3a5e633e2a3c137834dff1b62caf09928e9ab818be87f3638f8228b9e87d7ab845366a57e271439cd83b376fdab093c08312d323d6913cf604dc8a2d7da273816f5f9d8f43fd3158296f2a98e5a1f0ffa9d28c97ecd119be6236286e34238f924ca974a58f35509a94c3ed592d7caf2a9554b99c86bdd4d8742af1262325ecb6b8542501dbd01e8c87f625765a1502fe2469baecdaeae343fdf00b4043a0c8cfb6793a6bc5490fd2d0f2ad24edcc801e170b8d131518deb9f8fce25be0f86a09c7bcc92679a20289c98d9129ee9e6baad34b712b1a9918fe79f4f5633cdc4fdd89463f1e0e3611712f9beb5d662bfd8f5343c93e71e109e67f2787826fc0943fe9fdf21c3cddcdd00fffb4febb061878c8737c0ff681d31da4618197b718ede8b9374ef472ec19c93575486b2e4e97ba9939b4def75851f9840360e7ffb562441b3a71548902e7b5a8144b93d54ad9de35a1fafaeebca817dc28fc342bcc23954843d768d0b00216094853983b44bff6cb1578b9e14b5c3b0ebca816d4f2bf1f9188adfab5fdabd404ab02f866118f63d9cfc374bafc76cf190700f08240ff0c64ebe07f0e42f6fb49fc3c97fef38e41a879207ff46c9838fe91b27ffed886263155f3840a8e80aafcb3e16e61004b3c5c304b2ef9f3061ca34715f9cacd0f3a03c1bec9a32dff684737fb0f67e64216b9863180ac33a94da7befa5b9bcee9fef3a48e9f7e95cfa88fea56ef293186ef293d354fb389cdb76a16f7b3d2dbf95c6e62465ced72d15e2790b9b81b16ccf8e0ca6a84343459fa665ce719724b9f44b4994ecc86092a8908c965488d562765dabc1700568bd1ffeee314bdef496d8d44b29016ed5e428b7c1b090fdb9171d55efe4b8fbf6adb596e3b8afa07daba67d7ece7695a3d6524c43269fcbf00de0e65eabdc6721f71dccd35dbfd776cd7da1a88eae21f6329d78fca7afcfe17b1b396ce54145f42b14f6e6cff7e1d3c8742ea9285b9a8d784989b6f9e2402f29e9eaec3a5f37a9d2e3466ef44cd9be5f37ecd850d1e7bf1735d3a59babd9a6594549ae692ffefec25c47f53f21878d1e7adec88ddc12ec67f6ca301d8ac07dec6bb88fe9cc86da67a196596d272ef10ae768a6d2ed35519140909f0f8d4ff68d14c7d431754c95867a86556c7418d7ab8fb65650e2d2546660f6612e4d5a6c6a2261a4fa556b13d0fed27995737279d969fd5af032715a70383f6cfad7e6fbb6e52e545469caec4977b1f7de0bbe0812d5a02d877130f496b3eac87587c65dae53be2ffae7b2567d5db6e599c68ec9470f1b0f0977a19fba3cd46ca9917df697f64e54a42d71d2b41abf170cb3123a4e6b33ad87099ba199c0cc6674a44aa038d762949c4f474aa2a51226899a3145389444c95aaa540c8c9239ee028452126e5191199384cd98a2acc76c416133b42334247ca4193145daa96a298d079b3ea64d5acd6c41714a80af69277a028d414ddc886dfa9e0f4aaa0ffa5cb990450f65935594743551ffde7bafbff7baae9b876c215f2f6632935444ad38e2c7bedebe83ef7908155d6fc3aca22214a775e1dc6038656ea66d9b86d2be2d6aa8eda14c18be01dcd773f7eda5d9cdb2afa1bec5ee357369d5a643ae5f6e7be7a14c9ae973b65a046dfb6a6f773a35445c55c8628726d750d2bc430c6184113d7a2cb184134edcd09b2d7650a187a2a1a24e4d47bf777c5c218b1d94cb80d5071956692a13f506325acd7c9958662f1be6c8df5595a63271031f5c15ccb0cff7c9becfe3128b818de0b27234b3dfe7d6d07d516f97b11a975494d3e181cbce16b17f0cbd90c86207a5c4f77932f909290d2523776c3e7b260a7a351fea7bf077b0d6bfebe868e2c6e7f33abeff681d9f3f791d256fb2af75eb6eb5a8e30b33bf30eda78c0ef03f1de27ecae8f83ec4d5ec40693b6e622e1df60edb3f94691cbc043bb349b6656d8f7f08eab63a040fc8f724cce3904ddf24c4c936f3658989e30409854a8a925be5201c1654a266eaa0c025e688be1338509052a8ea156510158785156c11386883856c75ada94478a197f26e3e25be3fddd51d9b8e0f32ea0fb49a6818253631af1d4bcb306889999c54541d62b6549a9a5d7bcc18d424b0d8f45e8b247b1ac869a828ab3414ab3416bbae4a335f68ed6cb1d2604566c9ebe1a1681946f62dd2b29c2f78dfbd6998d54cdfef90c100f8dfdff89480ff691d5a33e9a9bf1a8d884dbf2221dfaf3f710d1a8dd54207081dd14e8e5712510df1c84e161e4edeb487f2ab95005f2382921c556feac873ed50316170cb5d68270b4ab262d3ef8c94247aa60d64bed84e6756bf32cfe425819b625a31494ac09c904a73e512538ce9856929307580e8984c1d203aa6cc8459b3a5c86ca1467c44c931a60bfde954a02d9c8530b29ddb62597d8acbf942b1d542163dd4385f2ce71119b26330c5f64c5978403695c2c3f1020dc05ec36e9a4a2824800288aa181de0a5e92ad5254fc8f922c3a66f8364d22d13b25fd6aeec13668b55cd965b837dd9256016c3306bed4d1e5700d0d55a6bad71187b645a28f8a8b457d078067bed61dd5cd8fd256be9dad890e4b5b1d65a8b5dbf6357bf9fe199abed0d15fdd0228b9607dfbe3d98a41fcc1b840cba45b8301a2eb95114fba0a43b5597bce425a70bca35d5ab727b75ecaa41298dd640860e2a176243079a6273536c1c0604eed202c1c9612e4d7b4c97e93160d1242e2cc50729363705e52eb5e435293ef092e300c5aa275a460a4ae530f7a6a0ae6a660104b51485398549d22e8ec6d2a0b0298d693bed24685798a5142fac3049da2b6196a698242ba6363a4ca6755079516bbda8656142810a2a1aab5274a6097142761db241025acd3a77ce0ac94ee99c734e7a3b3ef3bd19156ddf736e3d2f7adf79f1fa8ef55c37607fb1f6efb985163e96506e1a7b6eb184d4d682c72ec09e5b28a14564771bf4f7573b8a2dda730b9288bd0599c5e6f6f57e03620ffabdd80ddbbebac3357c7e6eecaf1b4ac2eed5a1eee7e67ec333dd7393f3ba0bc3ec6398fd1c1487973b187659aca371781e53a0f3d77e0eba3d747b6fadd7c9d9763c6b27e0798fe3bece31ae5b74ededd081827b893d6cdf0e648b39a817e2c88f82ed21f8dcc5debbef69d1a3d8620e1a82ba45dfa0f6fe7a3007cd41b789a745baf39b68916ecfcdc6fee4b5b8b3f7e2f5a017fd419ece915fbc3c7e73feebed7b5c8b11b8ef14b8efefd8fb0f87f1c7bc132db2bdfe138abe3fdfe11a40ef1a87bff71ce87a2ba23ce88a28d875e91c75aaeee3c0f4f51aa640b7efd5e208b2d5e63c98dd399cdbe3f1bce7da3902dcf6a827fc61b5a7a8c8b57d30ecfc4958f226217e9530e5636a0cfd84737bf00cf6abc51cf545cf83180e8fce51454fe7a8dbf3d84f7cc385e990f7e0dbf768d1f7130e83bd15a76a83fa448b7ce91c55e7a83bbffdcea7846f1f87938af097841715612d823a4715a7ea7a1c597bbe620a74fbbab438821d1b7b4fa7d3e1b0ed85d36e4f3481dff06edf1d1c016e63579c4436c937f7b396eeeb4049fef7be3fe130d96fb606848e3e6d9cfb394b24e7a73413fb899f7bbfa1a2ee453c83bf85669392ecfbe5fa3ea6a7bb605828fa8fedee29ff21aa4db52c52426daca31d5487e879f727dcc5b1ce45c17eabe15091964514b238c9edb1315fa67b1388154c1b7b9ff7ca2f66b9dbee144523826b8b94c642218b9486e5557ee5298a92dc0b2f722a102339dbb7a88d22a5d9933ce20a9b3e2582920ad0c1a1a409a40a596843b42c2a70c6888387211c3cef7a776bed7bc24ee72d9ef1e4f015d871338431a21046119060fa2193a2776c0f316fc7c642ff91a3eeacfd0977b11f533d217e1b76df09c5bab1c6ba893bcde91d7b7b8a774c3107dd98d6f9634ccf4def75fdb14fe0ac36ce179c83242727e5665394941ea4d8d4dc956b85695568e3aaa555e1257ac6f593c3a4d8b46a89d29ce1255a049762e3305ee32eab3aa24578a98a916283851a395ba4100367534d4b828fe86b4236fd6bd3466c8b9a8e7d310dd74f2aca72645665031b6b85b866d6ea2de9688bbb2eec72d9c5211c42aff237587ea5a32d1c6c5de980ad6801b4da292b2a194bd542740814cd8bf4e219eb846cb5918a68d6341c2eb27d511b67beaf82612a18c37cac236d74fada1524255d5586be86335f3051cb116b1222558b5553c2be1cc514e0a1eeeb79c076f658585915496d51519549f9187a43ed2645d7550caeab011d780001092ecc49e0257f818f4e97c35cda97982ea85d0330bc073c363522f49a6a359c5a4ad1c81a214d4d7594425b76db48d1705a37456b631d35215f9d924a61828ab27b536ceea7a4a428e97a9a65634a8a8a9848b1b98fddcf6e8a4d4aead64ae44716536c5298a0243105b5698a0d25a588759592b335b2c71635953662984df1418a8d3602a1e37c216dfa764816b5df686a89e5e96fa65a0a6d359bbea8596153cd8badf4a7af8db5845b9b6661d37c854d7f6a11a3c2a634da4869b491d2d495cad7d5beda98832476b6e71646e0c21635cc9ff0940e2070984bd7204cb40b212de3345b684bc8f8a11b3f8bf810a408232819161dbadac6cacacab38472781653890c4b05829461d1221a2048990c9459014af910a5186dd50b7b4a534b95c6874dbfaeb4b18636aae826446dd4c62cbba19a12ce3a1269a48c206a011437032082e4c4ea45438af1a2e1801a5602ee924316343005d070808f6a708e69c0992daa7bc56ca1cf69f5aa62b47197400ab1e15edddd3bbdaf17b7a4225751d2a5ddc69970225e80373eb231459d8fa124861250c77987b1cc838e58fe8ea3a251043ee3aa2a644cd759ce5cd13736e74b0d735f2f62b58bab5eb58bd52d4f9bde23f9d2ab2cfab869580bbda43210a1221bdac7d04bc361962f2b64d1470e939aa65d658dd49d826117a796480ed88e33abd8aee7c8093026607bede41a97be46402268effb726743108a2b04716ab045b2fdab03a198a50dccf25ef7aea80c3bcc96329798749b6b0836aeb22166bd24728bcc92365faecbba476e91d952d2f4a5828fe87fe1a93bc610365555217b49848a6c4e1631e945544754b7b4f7562cfbf2bd17cf5c9cf9e217a7e4e27c2e0ee892f709178b1b05524542314be00d13c490ff1cbb7062cf9148189be21adc8aed40f6c434d0ebe008461164963472bed8c74fd841668ba6f1163eca9c09d9634f72f65effd52ab3211625e0dcaa3da7efeae6f89e37e7ae8e6053ae3419bcc83bdcec3654c8e22d6d282986ed15bb484ce2ab9b259fa50d497a96e50c02711f433bbc69afa2320ca1a21862d8fef5fd96e58d61cf7caf0ccfd492cdbaae7a2f4cea68e246e7f3ebd0dea363fb8e0e613f65f253d6bdf76f79eff558c68a64d06561933442c8ae5abcad4dbf9c65921fec4b973745491725d5bf2555e194e856d22f14d511e843dd755dd795d2b92f61e3a38d2d926d91ec397869ba041cc6834c174f829025ec0bb4a1366516f19c13931393139317e7e25c1c8cacaa215d64f1e2e0cc171c64b65c314b780b2f0285209b92b3c54a21cf0da64026666541fe7d655912b6750cfe166fe9aa5bdef29698aa96647ce48f45b90514b6b354528c4030f0d2182c545642a190af8442211515151515156ee52b663b154d544f595e6109710fd22668673686665f09a90c5e59595959f9950fa180fed882192b61e83d9ee7aacf15968ab1aa6785e5c5bc27c8662a3f57f6842144b2264dd3342d1452191c0a854218ab965e04025d2e639508bd4a78ca6442cfa2a275a8fc4a1325d451401ee60d3fe02ceea35954f5ceb02887f190ee824bef0c2f61239a45794887e1f20be8b7b9c9b1e417702c8e0cce061ae459ab56bdae821f43336d874ab06b9530949f05db57c69fc7209048546fa8a83c16de08fd8ad6b1f2a1e75842add2254b18baf1cff2afb58a4587aa2eebb354bd7299d415b28e56c2f06b784fa753f68bd6ecd5d0f390a487bcbfe2d1aafa1cab8ae03209bdd00a4bb5998a08a492f14cc9db9086b64ac977429187ebbde43d5c8665cc65b5667b3a9dae3dd5802533d7c75ee072e617e4d31c65cdf3c22c859e629bbe9764bef87df113420501a54939226ec7715ca73d099ec0fd4b3b185474bd786f3aafffbab82e7424acee4507c3c1e8f0a7742720141fc79aa2b31a15ac6eaec2ea56b22809d3998a625fb5786dd1559b0ba74cdd72664b1566cb9d0ec89fad0c42de50c28dc5993c5986b1bfa11227db8b8c782ffecd6ebff37c97982b28e35139fb79d9e31d6735be5bfc8d124e97a9a16755b8f7f2dceca6964c4c3630b6ebcd888b3624db17191190ef9390cae8cc1483725b35727276fa5eac014516b7dbdabf8141bbbfbf1971d2e51eff96e330f9e96f5ec06c2a77a1df79312bf94f79793e251d2dde92aa1c6623e29def6ebae740956a7b5a04ed70cb71970d0cba1971d146c461b60d09d6e2f6c57cd9bc982d1b914d7fbbc9260f7afb629633d5b545ce8412e63aaa56c8760862be2c276e474a93dabd711c8f6d93502414e03e747f8a9e0f5d1d82fb9dc6215ecfddb086b971e76f28fe8912ba50dc6163dd7d57d623ab31e8f6722bbdfb108d18686c6504b80fdd50fffed5383c5f29c0fd755739e196b3ad36249c898aea6f25156d606cad2d89fbcab32ccbf2c5b60085b98e4c08e0d775b5742726275a076e820c10988c896e628b2b1eda215cd856a4d4621e633bb2118161a093eb07af8263810dc28d23f1fc7d507812eaab9d8527e079af1f43a989922e3db3ce7335a4a6d093d417bdd5ba426c7742b79d11f8c6ef37ccdfc9970e93ccbdc3ae9ef0cacacb77081e8043df35cc816d4fa77d9be01aea7b4945db598e8496362474546496b6227344b772b6502ff5c6a2a2fc441635d3c4b24dc3aa56abee4e4efe04457be92b13bdc3919c7df7e25481666c983c48f3e00144964941fd020f8d92c0a00e00954e1ef4146735b504d2d94d8a9e75d4f1d4e4afa9322636d458e02ef4b5500b62b6841a117444a3094145da1174a4fdc86e3426341fd7c53476571b1894e494747fc67d4545da16b7722baf6bcfc17efd66650e20709c4307defad85a7365727283f69dde8290dd643759145911e6cbbda9233abae7509197eec5a582c97f7b84a70d424609b7158b33713e703fb80b8f1b72274e8890cba1a4eb20d0956926ed40a808878a7c741c21dceb3fb6b2da3c877370d4c95b1f19b445476de5566eab3aaa2f6ee50dda7bcdca5abaf76665ab8c00c518b6c3fd98aaaf87dc4b136dc38b8a3a031460a3712f108a8989c98b30a8dce5ca54e4bd37f39af3de2871f226e1299339790e14ba0c4a18ba61f2a007691d286fa26d307913ad23e48fa2359a1a6da316c9d9df037426db17362f6cfa5b1937b5c49dea88fbc1451c4d367240dc2064df226702cdd8085d6ff220ad9dea28a59c2f0ad8f4b72accd2c996335ffc41349b75daa569db1737249bbeb885b14ff4566e5e6ea547eba1a5b0b0b5adc481ca9868cd5444deb623b3aca56bbe3888f32197916d636c2fb7725be504b1adea864416b7722bf175351dbaef39b09de9d02a74b5e76ce5c6dacaad4479b1c5acc89132ca2dae5aaf03f80d255dfab63220aebe49b228ee19dabef7deeb82850d11dbb7b8953e6e31abd93e7f6c485c5cf004664eab96b2ecb6b2f2de7b6fcacbadcca9fc632bb7cf91871a6adb34ed8692321d806ba9c800344263093d41c9e535d66d30b20ad0268a236c764b8400335ba9f624fc7a0d25f90d15791293e442a688929ca4221a85bbf8116ee3372a1732491e8592d36cf97c490c4a82981f0db6acf68f2ca9c14796d0940c315be84783200b2ca129bf0fc9d76a42fb52fee4f3264f5b775afb1f122afa5af7fed76a228b1fcb59df97b3a232c020c3b03ffaf3263a8403ca7f3ee4fa06ca7f4237406ff2a03779244e3ca1892a7a7005c992a117e42d14bf39464a900487a844174192e6cca22590f5b5742f8661573b13998325764b073f2ebc043ee1a39493ee92029ff0d2b78592ebc02c80ac92c8102aa21f39a7d6f9762d3eae5609b97385dc7333675998ed92706ecd8e5fcd94071a584908b2c016158160dcc7cfcde9612f8225d696f038d5521d4116d802935052cdd9f44b88a05f7204ca8689cb81509297592cb2e836572b61f21acca122130d92ef78062412450a14c1d4cea1a4dfb6d485313166637f351df2f71bf0c7fb87d973eed666375a08661afc31451641d6cd275f1f647d6800afb0f360c7d362cefafbbe1aa98ea63faec8e247c6d493f013e2b0dc427208255d95ff762436fd0f8c7b35e62c1c56191bd357fb454db3e5db028bfae064388bac59f61c0696e0116eacc8a29f36abd2204c2c4cd730b70882648066ccd29c20cb1dcc02c88549aaf72f2d969c2ec8c29ee9615d1747ebc78b920b328513c458c6c5057951642d8125175e028d7ce56c09325b1ce6eaafc874f9547b0bd4e7058975f42359796e114c65fb17cf5c2ab2bfa5222fa34563d71769ececb33f09bf8eb2370939aabddf7addebba3476c3fabe27be21ebec121a4a4a51519641daf5a5b3c71e648148c016902cee60cd9718760964b1e6cb75a22c1fc016cbe44f7e15b371f88b733c094dc2cb08396ff123377dae6239eccec016c8d22092542d8163549005a6ae2b33b95e625e3a8c9324e930f75ef2aaae0b035f045319a601d39eb2b1a9a58ff57d2c166bdf90ab738cd997c6beead0fd2c87dd602b74358804644d619390c58fb5ed89b1bf61b659d763a16317c3300c732452647cc35d69dbf10df65d67a0b3270641900439b003484e121c424dd966b140ec042441236009920ee3a5bbf80d68c44b7e8412248fe0a58f0b1f7d641d9536527c5cdc7c642d8140b8c029dc0674e286e008a666cbdd63163f560dceb247a825102ce36bf960da25418020d64a827d3e252c943ff91e409ff22298fadc4879d0f770f228df43ca835e0453183da19d100e287ff23750fee45ddf007dca5760caf05001ca9fbc0a409ff23b363773e824d4117a95078528e1c9c7a2a2266ea07c8ad6e165c4000b2ca09141d1a03aa29a1241434d1609f96b7d48a8c81e218b602a01623461027d3e07137cc315815bff1d06b822510c3468609183200cb0356adcc7f6d533c48c5b025444673ed6577e486ed898794f320b2d6cd1592617c82a39cd9709b22ec80259200b64812c90658d90e9768d6fc8bb3e98aaa5af8ccc8754109b3e98fa581f6b5f118bc5b22661beaa2d19417a0116662b56a7654276b29295ac97acb5de7babfd715fb4a96d5354446db5aa2a46075491766b0e20ba350e73c35d2cb7dd9a036c2edc838dd58e0e2372db45175eb26758552dd9160685ada5cb035111ec5d62b6dccc166aa7b8364bc8fee2b529b930ebd53ee1a3540098782200769c2db766c433b72645649fb02951ea0991037c34d62c672a368a794b920997a6402cb5d68a6bf05aaf2b7c22756dc69b54c5ec55dd213ca8c1aed6ad196dadd1305b6bad358a204e73e454648b2cdad6b66d9d26029b20b3649fb0e92d728fdc80091bdc93d442052a6d555a655b9d4a5fd43de2d67401bb6e50d1820ea3d709d585c2aeae1456756deabd31a9e0e2f2300cc332b6b55a2664ecabdf20b908f9aaee90af6fb5c83fc8d8576b671536f67e5dd885596bad7da26af689f1864d0919b2f348b3ccb65ab6657f90b3bf7ece6bc359cc5acb4d0ed459cc5a6b5b1a5412d26db5c862ceaea652d94cd5b5d11e84676e083cbbda2e9831bf3053306dab655b34bb30bba96a69527f1aa770a8740dd437492d1591080000000083140000200c080644c231b14c0e64d17614000d749652765ca04aa42088619442062143100100022222022333b40db3c70c77ff15c16d8f6755edc0f579556dc566a0391b14e1f9a33f818d2eae706ce06ebd407fa4066787621427bf64443e65f6e2a55fab6c8ddbddee90bfafb9e7827f1705f54341a2582f449ebc64ec73ce9190cba6c8f4948fc3fd1dda8e4d1930a8da1ac9e843408a6ae98b1c44878a492316ed520c3c6aacbea43c8233f09607ca87c2358633f16e924b0f3ca22fa6e0a240557f6c196000e7a1dbb08e4eee5dc533378936a346ef7e9de78f07dc166772f0561a7e4663b75156c9aa20e170c61d1ffe576690a59e020de297a1c7197f9401d8d488bcce9433086a18039b63208a1bc4702c22d0f9a0b859a80a02ee2822ec1ce6e66c54db457a19a53f3674267f54363dc5630550800be8d97a6dcba94d57b588decc1f17fc2bd087ef9dd6f439b6f744b11139aa2e68adf562ce2659470a9583ac26a62de516c7109318702ae22297d601152ca1c6658e5b429f97f83fecdb009c77c1c23a14a96d1e63622c1aa900d07e777835c8226532b8c2c427621408201d88fef4a0ded7254ec088bf9bf05a3db91de7e9ed9b56450da794833c60abee373023bb363bdd19d77bdfadccb8226b94ca4cffd9edef2ac62e53cab3cd7a44a5850de9d74a3feae7709987a1607966fe48bb2bf2790358bd059824aaae7c441ecad3f44e3ce78e7d8ebd68e46e680ea7ee7d4722f1393ae4f6f92d983b0e80dd4804923d3e40f77b1538f29fb98b207a2d2d4663bb11d678e4e2924dafed284255219a51f2197c32b4e0f113560414b6edf3d55c9585ea93c997deca9628a545a8cbc939665da34697f6f8d44ed7a13b2b28851c94ad3648826cc122de90acc3df4f1df4d90045a5be24e3484a5055a94541bc34e0709aa740cf48125c0887d6753798102878286d040071a53a643d93036543683608c639fb89cc61e518fce407ac8448b3a16487419a4a03d02ea6a9206b2be88f73ca6f84485dc59a44a6d273e74ae78668034bb5faa53152bbbbeaa92636ae572213fac690eb6d4d20430f0a3210329d0190764451eec6bbfec5bd29d31162746f252651c12b9557a971d429ec3fe7cfa2c6c26dacb1a60538e09ac10670ecab1e7579e2f88f1ff4d46b336d17f1111d80897587a88076f948e0d60ded562c15b644022a8cd6b2e5ca85953001a3cfe6bebbc5a50202116aa450c3aa4df013d33d1c0a11e09772bb0970f98d88897cccb476829010a6384da62ef72d0c7f37c6262374b8173e8ea93bac3cce4ef3833d4e9557251e77cb9830b6e350cec00675ed9810490106efcf173a808e3384375d84dc5836a0bb4f330399b2445fe959ab626bf5e61f1290538e2749bb490a80499477a38401b728d62c6fd4978e94464d0d853edaa3f380cc12d070618642477cd926ddb6781a155c83e4755944cffea1896f98705d4c393ca92e5b37f7b6f0418985078087365bf6815747d65289df3ca032bab7594cccea4b07f0ad0c6e1bcbc12f396f63688a25e242978c749904a6cf654523a20ff16400b6b03b2514209748b3f8b4b4fcd9e1559145ae1e6e4ac617ad3490c7e104e17fdd69c0cf6b0e625a78042230137e323dcc50c54913653ba7e6c0cb45868982001705c0d20ade28f5a6fd5ae9c9279931ac6ab40e2aeb947d5687120f2bb3d12e9c6f7cb486f5277111060ba4a73b71c0bab49cfd6003ef1f9c12bd7c61ad8f3db7d0403eedf037d181801f4153e0ffcc88d50e92ba3a320de2e757e7af776496c393cea099ef46ed02ca23f5d4910fa3883af42ac6dd6d98e51aea83bf4a90849beaaa65c4aa1bd5ec16fcf0ca9e2cbe3f79f64cade5e41e3b0feb7c6360c2daba77a72adb5a1ec184116c49a4aa183d470d83ebfa2e0ba27510e9f90590f3e3b689aa09f8339d0ca60d26c4a1f2489b0812eb077e825efd8c7a30886c2a301f50148e2ef79e9025295ab781b08a556c04f734f704dd6e23fa3faa14597e1e65a73d8358ac90589ae816dc32d8c06ef5e4e84e8a6a01b7ad83cc2da15fb88d71fe77c0273b90d87799091a1a39494b1ae1c99163884d87542c0edcd757cc2a98c0fa0091e8d4ccfe0ead1fdac6ad027b75db5dbabdf5bbf2a5d7abfabe265ddb6302d17074445a663f48c2e7de76a11292705a6d54803f51fbdf0b00361adc2eaf6ed9cf70c5e95ef4271480d8f38baf76c2cab62dfa918931c7fd3ec8c41d67a9728097183a9d6e8060befbe42805ae4c85ea147337671d22908d5eb2e48137c0d8f4194e5355116363065b2e688866dd42101f80410267baaf98114898739d436e168731fd8258bfe836a057240bdded33ce336897f14946147a2dbddfdf93f7f5ed2d06d44e33fab0154a7af53c2f84f5e25b8ef542b57eddc9f7a70f8a02152501efc99c927dd91aeb8f86d83ee9177db16dd3b30c2808a17aea497772d532dcf0dec9119bb5fcca3ea37739c7400644489f0dfea50cac416d854ec52e88161bfbbb75896025a728cb985c81f33828db0166f1e7fc4dc72d3e14b27cfb826ec46c32814dd76fa8e0627f4bb5acb5beaa14498e85f339568b6504397c1745cf46979c129d6ee1a42d5fde4d8c807365f8f90097ffd254ae167e2dc655f9f46127d97be4d3f43aa86e25182b45d600f1c3d159833ddd5cc1089725945b4e4f58aaaf5e8dbf1e14fb87043b76a74b6471c9730b65c80fd1f0dbb84b7aac9d6dad20fb998539c111345c5a07193165405df60144673ea21920689cd6e9b714d998404880bf743df3dd802b04db18ec9f6245f518b696402030cae8338ad325268224a5b25f54605c31130757ae8599224dc913290f891cb51cb855c04e09f52c2f8eea0e4740a1f35d77e55fd1f318edaeb05795ee03ee653d178716b8dbafac2965c2dea433b1eaca1eaf6eb1a04156ad9c3516ce5b17101c1e218b22616ef0cdafd7359fb0c2e07ea2c40013ac27fd2a1fbb96b1b041b708af2683af634965657adfe3d44af3b4a2879bf05f36f298c850c1aebc6d62729e78aa6bcb3a4ace1419a5f2fd861e420f5575ecff26b530c6661d9b814634160e60529e5c2a01ce37ccf3acc214185415c4a9a3e13281d02733a19cd0d67deebf8161fb0c77073744e1510a44ff12812eeb4310e945a07a8d096369a5b696a9d64534256a7923552b4f606a067da8629ce6d54e0e395b14aab8f192f4b429bbaf5ecd052e58f5e9241bd416844b9a1fa70213bd44fbc594348788061cc95349f3b20b4728429e9f145cd2393cf2574215bde9cab94e925f1ad8ece707b6879bf8b9559581d8e7f4a11c6f1907ce194eb43afcc870389cf44310d3139d5ae92e0fe17aa2f46222df3e956ce5200433fc5a2cd3831c0be5010a33aab79b47386da3dadf61e33721d0275597a4393b756a8a1aa762e12e2c1453c61ae79a71b8221160def5dedfe335bbbaf91df1b590e3441476adeefc14c46827669b89430331bf959b8db45968cf6203d6dfa31b98839e8fe06dd0e148d174c2a56df0229b96271c22863c36d058639c83da24f135a9d18a2b194c2cdae03e008e086b96f0e0ec936055503a2c35a6ef45a469ededd6d10e08fe2f78316b1cf3ca84a708bc6c469440befdd576d1e2e32f6d7b57e4fb46b7ccecb73c121c49c9e35db9cd6d9eacd68d10a66e3b98a35693d349ff68c01f06f435e17bd8df0c8290264b59f53ed06a06d0f24b00dc92f68a2af38ae033e5501c4d5310a850b7600138b2e83fbc6c739f08ef2a68dda783a5c52e9d65ab93e62314c3b881fbd82ec5d83aa1b90a2125995f4a49cf936d0491859dc9e9c2c9d5d69087b628d755504bc109b86eacbc229725a9adc810079072dda16a91ba3729b46be70eb4653e975d930a1b8a3873b164cf58343c167079f43921f2263baf3223d95ffcf9ca73fe2cf2dafe7a272d89cd66701236a3af3bec951229671504b0b59f2d13e658403f2121c49f30c756e4513822164e85d47ea168d3edc1c3455c08fd9fd2fca95726c7da3d5a583179dca9dfee93884a930a141983e22bdd513241587928379427c48a1296b86dced43f222eb1cd9d9af37802a44f021101a6d42779fd285d87f53828bd49f5cc968d58ebd6f068c94016f42a5012fee2eeb2738fe2e1d97efda28240392d35da14358bc0582da5c94d96c2d71d297222b1f89e802dd7e0d3295714409098db7ff8bcaddb94545067fb29e36f644eb9526efbeb65b18846b0dd83a8e11d549a548ee7383369a8080bf8e6b8ca9572cca8907fb833b7ba720cba6498d9055623816f7fee0096a5f8ea47e71d66659377f0db838f84c1ed5042536b9a845c9cb3950c52a268c48a1edca5d133159ef5e57a1909a64b77f1ebb87df6df3aff758ebbe0d0a9e214565475db3c0f7fbb10ccfa167fe1d8f90b6e7a030fc184de1a17e66065c0faf25aa4368adcefc222c6ff3eaae2456aa3bbabddfa1af08e3ef6d68f01a1ce43fab982413cf0b8cd673a5db78a899eb0db929882ccc5dde15f34a0b1f209134930fdee356753152af3db78837fa4d5b124c053be5a9a5a7229cc81a994e6353e8c70f4f18efe7f75447805b5d9b630aa6df71898c41e53708b53b257214d351814b095f1c61f4cbebd28d03209722bc4d398ae5daa18dbaa7610a38d534a9ee7bf5b637ddbe85795de48b080743b2472b202ff88931c9a2d5760f2535a2089eb4e2451c85f07478c4a9d119f5f0cf177e4fd86e1b49a4eb1801a0cfcfadcfc4a9494a2ed59475e27756ecf6ee356bb0b93db0a97d0035ef31f5b82567c9610552e7bfe4b2c02b7e8ae3535851409c29d32bf14cf950f9f63b89865440ae3d064b2f805c9ba9e13694f8692fec827a428c0a9f571278f24e112b8248a3ff99b82db8445c715799e20e04f04770dcff0df9b776be10c5b4dc7da72f1d44286034a177600bd73901572e48faebc02058595901a8070a6fa3ea2976eafd172e2c226067bd64fdb53b9d4b4b8279cec7087712b3af1d4826b746b3fc001793a188d97a5ae2b3bdf8d00d24e08078bb60bfcee4b49db1a07133c8df698d5978f48659165976a00ea741d03df1fbc9865580b8089edd143028f2562ab5e99aac01a20071e5446bb7a49228166cdcffe58624e81188b565fbb6227fffbe4e53505b2ff00e3567a861a7291df4a3baf1715ad09d5390c28c7d333b6d6dc42f40a2fe2d5099c2e5da29d701116ad28819441f633085a90ffe233bc359aeca2daa0ede538aaa558bb6fdbfba50bb88b7aadf8e01bb9ae3d4b307df9eaf1e2c9721113b92ed1bc4604abb0f4db2222910c0864fc0f7b741b29e439e224c408c553e062294a84916db8bbe770d2cb9c8ec20032461b6c17f5f0d52fd20b0afb59bc2c663ba559f5be8287f9de91be8f2cba6b06338f41a8ca05f74b4802e3064e904480801748e018ccc95a7dd9867a379f97343520fd66728d3d40146602847e5b43d7f7131039d7865357f0a58d9f69e594dd3353bb85a86d35413b532ea5f77ffe5a1daf570d6dea77f16a767341eaf24c39c50893a300d9e88f8a8245a7c395c87d4c4cd493d4a42ac92e5667743e70e934a237f2853f4df74b4cb6ba60df38d07e077e42c64b838b1345a3b1d78537d6e884343b4ecc9813c98efb6ac6c2199fde544846ce800a652adb22305abac174280d5de09178c37b6772f76f035c17e7e537cee12903a29a57f65dabd1c016cb0bd855ea7fef1f43cb50af77c0adb2ea565ac2d2fd7da465922c833aad75b627158672241b80cc291c8bfc4905970c3224b60b12e3472c60a51fd8fe100da31fd35b0010bd478556bff098108b40e2605df55cae88f48fca7be54ab07f5a899209e960fcbd92ed81fa7ae0821bca700ffa280c35c70255660b2e6755cc6c12ecae9d66ed731fe5bf50e946632d5b1100edffb5a11c08556dab3a2330421ae6a125dbd457d0ce4b5baef05bce4c470f84cda06da5820e30e9556c54ecf697a01a217085567244cc8888112db200c6618baa3b869aebc91a01db0a42af392328ac4ef58e9a8e818531daaea156a6f797971201b893da29a6b4973ef7d20f14f52e27b22e957fa788212e4d1800332b828fb88e0c461f825503090fe9668298258dcbb5644815910c47bc1d4e04053667d1f1e59c8e21de33ced88267f0d1b78134fa2fc3cc3a3d1610c62e702565d67019cc95749aaab36da5c7d8d289b4f51602e2585549ddf1db8ef448275e972b50d8178990592bf1d4198e40a7a015580e115728fbc40124454749d334fd6a6662b285d26b32e5b8886414659280f7c230f008c999d97620aff3c21919273bd23b9512ae551e6f6a549e0be5e4130344656bd25fff2030d5016b1ac423a320b9c6d66c8c0a96d8f715ce15d9482521b40f8164cc323eb6068f280674e33eeb8afe7fe449b58133e64776495182f98e840f90d07a7320224835b31608d5f0ca6ca0f38695706ec35d930fb2b8146c8c6c1b31f6e8f3d00d443e4ba4453a5b086adfafa17339e8b50d8ec2d04a618ce7796ab4c5ac11af025b746b47d49ff165f2b19b4a1a5ff06e464d03d615df144a4a7de0c869a02b0210e4b850436ca0a2064d87f1ab32d19919aebd65ee88f1cba25001fb6c9f5420bbc90a4b66710d2b894abf2e8e1e0492850ec1509f3acf1fa59e94edae650f1304f7f5e5fe24ba91a1d2388957faed04ef5d4284e9b5e9c94bcb643e541cf2a04ee76a61aca4d586119a5c6966212649e657a2fc9b4ccdedc80b33e004569673428db38933f51f37acf78ca33130ca50507cc5f392a875c73f49c81594aacd4a0eee6972f140c8c9f8c2ac516fe255ff565ce89259561fc2816cec6b179f5a677ff81a6bbbb1db9de6df63cfec75148a84c872188217ddd0630f04968ce9c194df679e5592606195e633fce24231e5246d27d98d73c089784e46ecc910083c0e5caf5b9c60a9d4acd897222ec53c54f8ad8f335619c1e96818bccc92db14b54c63cbeb43305b0baa133525b12eabc041eb7b8baa7e397c0ba2e62c470a3fdcc199974211f5fda714fc1b877bc56934807365482f8bded44ecf5135bd6c8e6b2c736a71b821c740d5c9261c367d424d10506c77a2a1b9051dd5587011aee428cc8d27ce86627db0818b0882c762cb67c61494a26ef7133899cb5d7bd5240e7f072ce21bb805e1223615f4a7935be8725b6c387e17fb8ab2e7a605bb9e1ebba7150daf601905d3ca5fe9f2d2fa0daff810129c8b5dd8fd4094d024ac31344e809382b38daca5a05aca1736a552036e58983fe570964557cc509b110700ab5684a2dbd8ac0a6368e3a7f82542fd6a2220772becba616ba7b03b2b481cc2f18f79109527da148247918301dcd929fdcf30b92439162add6d6b88f93c21897b20890d02b0737b938eecdafe22e97c65d966c8f33fb9a92bd341c3737e692c70afe5dafdf3eda2881de8f653ccef001f57b8fab933853d34fbfd63a2dd2c269f2d1494bc01d1bb9e4b2f25d5319eb2e7e868659181c47787488b6411e9067cd07db6d45750dfc2416dcc9f0ae5ffae85a575fb2197329a211f3cec7472d89a89c495f2a707a5d80e7beb3cd5e3934b9a689adfb307c52cf92048b2517b102bd990d09ddb440419984b3efc0fe3cf828132dc7099be1a2eaf60c416c98977f7f7a4948168f9084ff0aa1a64763d86dbf2fcf1c47de91b3f0b46ad0dd5233e3e52a04857ab86d4f4283809f89f47eb14e8259a0810bbab5b6d41e96667443e20afa11c7f7cedcb6dda7a97f36bd326a2e5f29bebd89f28ce9d2d9c928a95b953b81a665c9c90768441ae70d390a42ee61ce50910409fe6a2adeac96d9cae111ce2e871e7a3f5c514aa3490123369b8a7b3b573408e623a133538ad8b0a4c701a186b0655fc234e434306d226c9c3af0e10b6e8af579b8da3ae357c5ceff0ea0bf1181081cada8fd6a3186e33118e6daf6052583692f460afd49a82310b4e04ce67a6b0503c4d7dbac02e855c7e78b7aa9838924a84f5b4db48b50d3d3dd4eef893426b6440e6b65bfba30a38e236909373ea6ed76651e58390b83569a8883daf7386d34946d18d8610bedd5c8fa491f614546c97544f5d38cad1e9bf47381d56d1ded32c788ba0b17a41a654891ebfae880a1c9b1935023579d8fb97fbc894ed91a80753829782f02e131a4c46611b8ae34ea2f5274a40a9d153a7484fe7e4401a7b5dd0c2f55b920e6caa27cd66dfba7d2e7b7c8dbc5122c3610b90e58428d0e070d5f7c450d1fe805b9594b0c3da8ef38679e7f6c9ee6dad0fd50568f0a90befb180e559602092899a1c66272d9587a4ae491a2a57e290f77ab7f6186f8cf476d049a588efe3b5148b98b7c75f32a23fdb539649ae71ca55ed61859b9594332ce57f2569fb2266060901357e631576d342acafe2b88867600cb11f39d04c11d957886e71ba86ccc6a6d535c386b1d562a7a9629c46beaa322d6ad570acd8568616f09b29e14aaed8119b71333b4cf078947a592f69048414001b617c14cd7ca63ddfa0feaef76cd538b004330f25f9f9e0976f7e1be07b25b82e73ab0d4159a6e2da015e312da26e22dda81f48e421300a10ba5d6038d118f714facbcd5b2a80cf0566fc2ec377f10c432c39b1e913c7cc5d1973f12190db0abca41402d24245843980ded4a11fbdeca625a99e43f3a60ee87a2312c3d6aa167bba3675bdba90a116af79b4c7c1a3c7ec2f34e9340bc064abc6b68422503dd4a661876718e14a9c118463e58129c70401d148138172ce8ca4e6cc77308b2348041d7356e0f78861dcbcff101a88a5c741e1f5c1846e27d802cc2280eca4b8698836e24e0fbd324b61d094ffafef7184807c6d04fee52f1027730df1dfe53baf5f5dbbbc96ddb1fa4da63fd57c8c8c9fcfbf78f482557fe118a54ad1b07759b420d0feaccd9d3e8cd4c309ce4b81f0a24a9aed2c5b1ecc53a00c957251e0457dfeb5c9cfc71a2e1d486c093249ec99a10b09e5443bfe0d70520f66ca5fb721cf442c9bd0d88017379745fe678b4f56d752ae0a8acaab7e09f36197b69727a90e3e165614b6e101d08c4391f172f3c077fdd86a50f8763ba6e4b333d676af5af3ef9e8fc22868954abb3ebe15353e3f188972a7956da3e08cd75d65c7677d8847fb739481156e31d16364558a459c282ac04ff3ee3c823d5598a1f7dbc88e7408725d829bd1e0f2f6163d9ce579446fe81b0731d6e318660ebc4d23d151f27af214cdd6bb8e13aac7643dd0d2e8a04e293e8b37dbe5d42a1a219510540f0ffb72bb597ea2d166866a1d01dfb6158dea8ca4d050d64c0cbea51fb40f99365f1c4a9096ab3bf075ba1e9a39d48ba4065b0cd336da2c10cea0e7849790de4d9347ca5c034c62a0fd77bb27c2e7262a5cc612122e10fe194e1674816ddb390a6f3c2f692b850f31dc5357a703bd8f7d707ffd68441ff7c275f019528bdcbd691ec01b3ad60d8a9d46e8c6f79e1f94054a2d09548b628bbb4cec503ff55a2fb84bf3bbc706245a203a1cce26fb8362cab05fd1946158becbeba3fe5f5bcb98b793d7b398e90585cb7491e2967f301b7c4cd74b509de8072ceb85a62a82a8a2b6a787464721d84637799ae404e5148370413e168a268ffe202dedf763e61cfdc1fba1d0592192f127c80ec9b243ca7c31e182abaddbff60272b309f4ba81c724282b2e136946643f453ac17cdc8ae2902a2552510d55ee12672c9d9cea754f1e9615814236bc0402a530114c6c93034f4a8f96b02c4f1881853be1c47cac9d926e07833457175df8096ec4b7b6a3f95f801412518dd3e928f493603916d15afd00083165c9e0f4f119fa564394f1e0027997f82b0b59a7f31fc4474839bab82e98c1a12deaf1c5b5a88c5e53302bf0fc12a7d214a6c886a6039aa29660b9b9b9e9bb42c1a8c38ee41e423396f0734ac720169321d003f189921da6bf72283f9f8b74c24a7c6e3a97c1940984fb30c16d06b9dea5124c74da858fd04a70bbd7342c3d0476af61b94171121700c263129d24a6d453be2d69327f7b8c1e150bd238dac63a4c77b56c75350bf4beb1e4a5a09c53f6d682a64d54347588f1e0c8d70185ddbd333fe487f87f016b14ac749832227fd428ec981f5223f728ea2d5037aa8806c87e2ad62cfd5917d33dca352fadbe7df7a7f50fec613a9656d2443135773e59565145afa396f143418843cbd79d75f03da0cd43fa8112eea0ee8290ecbcbd520166dc132f5dc2bd8dc3fc180daa8cfdd397e8155604bc82216bddb7e79197237532f2634914cf74bff61541ce1f71d930064864107584d05d1e285f50149964af462f102068bf93f6b6212b2a84197e9ccf7d8e83e1710755a6857fa0490723cb04da87a2421f0f41624217ef98c9df807de165311cda1b03980a68275734633ea88dcd99a3316dfc62ece25029ee8829cf5a3fbe82cd8137d49af13c1d74f7e706b465f3ea3e240eccf1a7d95d93c00d87be524b321ed0314aebe50172cd904debf8cb714af18bc93397b7eb7c98db3d755fa6ee8d7f75dcc17a329fee9768b144e38baa5b3540138453686172cd9e71ba263dfc76217ea7a59e1b371d9c57c0a6283b4e21c1bc2e7b9567fcaa4cf61c48ae89087861b38ca7f66e1fe73c8e22c6e0137bd3948bed541b532b4f724b992af915656b85259d9067e9e684ccb2cb18d93f42ca1f79c62f35cf54b89f6100d4a84abb2808a5d878a2cdb3e5e7b7a2eada21553ceb86ea377f0710e08452619b9905c2b4703027a811d90f8191fd69ff22a10ed5d606ea38d8eb5d662e65a29d74024acbf40c956859ab8dce77a16c8fdce17aa68ca03de5a4da03ccd50f76ea632e65af3a5f9bf2fd23fa712dd49eda98e8ed34c849fa331fc52828d2995a3a0eed6e09ba476b011adc86dd7ddd058cdcaa23dcc53e68f6859c793c72f516e0f9c5088febf794c31c1fb1aca7726682837a6a7c3d0e47bcb82c4bc34f5fc3d5268088b0d77d9993f8ce1a2412e9c2bf60643377175580154a3ced2d24535d3881b7f18965a8a3984d249de2ef91930cc6e485c722b903f45ce043e1488f3bd367fed261a7fcba74de4c9f4d1489270b7ed02ef3419e14c4b7590658681afce3a07811e84af6b68825b4efaecaeafa31dcca8d624051a1e232204a38407b0c0cee3c73373e31ba4b6ba77a3152f0b7275cf51811cebc81e2723a4a4e003c65209c5c95bac45177793859525ac6cb7fb86e360c2361cb00ee1b8f8cfe74b1fa94f7b168920ddacc582cd2c80ff3e5932d440cb8750d2e5b6d0f38fe07eb4959ed6cb62ff7ef6a03c50f6440446b17207c60d87fee8b57a4e5c3cc4e915934f641f65b1ef5f01e69855d308d828175baa1d016f1b27b1389f0d420c1869a49b254188e69c981691fada0f9dd5a922a3611ced89996490ee95ca430ae77d10faae549cf66b8008b32d46d8b91d85e5697229e89a0f324ff124f6c1ca0a0ccd81fb861db4224a16adcb128d02630ca5d841b47821ddbe3113347c7e06b6a33a6ff7dc66c6a31c00f72f30090afa722f3cf36881c86f525a56b2913912e8ffe57ec13c9f70f7fafd5bebca37a4472b0cc7d753a6560170058e12a8d92534fc15c1295052af2ecd79ffa62658144c627df953b03b4ef7fb86d6a2a5a55cdd37c70c939252bccd93570052e11f7fdc104b62a8599a392d43079d0c7298ed1e6b5a2c4eb3a906a805da1b1196390fbdc19b96f2bbdca54952d9d14e615f2665ec40e68a5c3be287076a3f5ddaeb86e1ad1e1db90bb44d843b59df47878a2e83921628a285df7f26c975c48a4ccbe7125d00c3a4e96fe9bb94f2bc6bb3314c566265bc47f42045dc41b50e93e3d2091a7a1bf8509922bce22f47644697ab19cde21708da4e4e76bbb51a52a46e2406cae7247a797ea62dcd1e8e88f1cfe43b546465220082299277b449e71155808735297c84e769dc8cbbf62a8259d0264c4b44ad9486750fc8976b5270d97e2a784041eaad2fb5bf37c800269f42e0ce91027031dfdb1a6fb0d64aee397794f032ed899dc53f0b13f65b757b422f8313a9820f219caa007d602998f73d9cd63aa6217ee60c0c4c1126b03cd335538562c245977d6ceb7eda2a206ea39177d54000425c888011f00ec222a3a3ac2548acabef796e89bc338fa41b20c52f7547bebba265caa134222b8a4f7d169f52125a7649f3c6f5b8f0ba00d588bbe8194f0262fa0c4a4b4a396d8fc6b3d52bc592ba46150d8e30ea92d9d12b16a9aea41d3232b75277a3213dead10cd625fce9c214555da6373c5b6c141c1e33e7968fe1308d88a507cb1dd7f955f632d38e18fff68345ff63694bb2abb02b6458b134032f845a90b6516df21ca5cd0b0014033394021e3642dcfc3ef34aae1e7630d15d79614c216d6dc58e1dab667d1f08f65a250b3eac64ef3eac67d5daa1b5bd5b68ad76b7a6bb5f90f242837bce520c91ef12a8ce7f20e09b6202d583443e48eb52a58d4fab617acba303a01f0826e2bcc1fea91aacd7c67bb93efe759ca783cff2878ecf4497aab2534c87406dd4467bb5ce623c6aa2cd3e88116262a8c05d09ed07cc6780694c1de57c8d410b5f9b41685831a6509a3c0b581a90216cc45df43cbedbfdb11af3f6bfcf8ae111c382c388cea1ff5df4251d0f4e206a514148e2f476d8080181282a707129f0c604634c0592a4a837e0deae917bf56351498a2f28ba38c1eafe4747b358328726705763a81570b3de11b6e13b90aa6744cc217c330507bec40f86f3447ead40b7a90c1f088828cb96249da1a06e92bd79e31365ddb06e8b74ea9e51df1374df2d42715122a78b884278c0e24dca6a8ea3ebb82c22f0f35f7219a4f0f10daa3bcbe093f1c43249cb6eff4bafc865d57fc39139ca9c1045e64b12b9bb0a7d53b12642d08b6d5679e56a6b550a8e61d841584381a35f8f49ee163a65b1234c0d3b5b4a03455aab3b377a75d8d442a82b167af3ff9ce0100bdd8a1ef35d5404ff3a2c96baffc051c238787865501abcc5be77086a4bd63c900a7ae8542961d941592136ffb43551703777d37117881fbe01a6a9d73548a4acd03e325fb5bbdb82a9224cc9e9b23dbba55ebbfc5edabff648e26df157f2f9d7aaf89935fa02bdcb3dc43196d7ce968578e4c9b695df2756734f9821e9d9c1a239e8348e44c00e64b73098ed72e7b3e89a6a476cb30333d1f6a330505cdf046867d45b02614386a9d6661ea86dee8978547ffb736058f951102276448c5897c1cf8011856ac7fbfc299c026d9a3aa2427a969fb13ca540cf04e0fbd60bf96a2f57f3a4b2619a6fbcdac5ecc6c813e017dfa726ce467e16cf3423f013a773ae0418c0748091cc1a994f5da4fb8d37d907074592c107da77b22a6ce2b223cf59c3919ce788d4d174c949aa6aa158361b04caeffac5acdf05102cbf2b62fead442f2003677a67bb53f03e912bb56be3302c6b927e4844afd7902aec9d8247a6c58944bf15f3021eb138cc6a8e2748c375181fe511e0ccfaa5b419fe925c05b6e6410a03918e1926117e2210052ea891fe4e4b7bc23e380bb54aa47b90c1e2149a180d6b2e9c185911c648a2250cd61adac904a5079685c61a961598e247e832f6df5f703aa68595604b04b59ac11320d1b5c4958c67155f2c209a9457aeb201147c60ecf5f45b60ff7fff725256568c0b2f29f95026915c10f394503f9391c83e2c34ff7b892718008f3edcab9f53d1e296fcc08360bf704fcfbbffe6db51f83b0d9ae89bba981027fb0f1f4298570153d3ddd43088dc8df93741954608e421dc4a14a26f56fe6883bba2731dfa10f1b2914c640b9ff5a1aab93978078d847aff1e4f7e24325152ab1824324ec73138eba10d77cbd115191e8cfb6fc552218a7693ff7255bcffcbc903591dbf7123c0a4d6204dacd8dc4084961ca4a252b553a024b9f1e46e42c57683fda241e2937f99f22bcf2b5fc9cfa0e07d1d4adc88066f8e85eaf84adf50b50b893e1c4470135d76753911262536556c8fb6ca68c95025f6946df7a9bfd21cc4cc08c564495bd0c9648c24af306e021ae8657c788d3b5f399ce020b471fc81cc4cf92c3f737702a3d10ff97c27e00b3134baf81e7e4890afc48118f67b7d7087e513db752ac386e7cf4fe430cbc1b6c9f0ed4158f610debd4fd735b3c20697a11f33a4efc90e6f65d09e1905ebe5d639a2e31ddaed497c256aeece2f0e7239b066120be7804213bd6195b3ab9d57d34dbda28de6fcc8e47531079f7534376e811e75baa5a3abd4339515342e80ddd130506062c8e5c5f0c2507f61f4b8c312addbebd356ebd3ef50665d05e987e88ee697976b10ab840883c4b7a3a759fa8168b50f07d5c3deb315b2001ecb2106b375c39524cdc06d8bbcc2e98ba1cd991627301ca5ab1e15184fee0fce65afe3e322d3918770ecc3878965e8380126e352fe2fa2f9e5b3319b0c60a6723e22dd033d11f003a8b7e3b9c031f20bea3e99298218bb4b49f8d0619f91e1f21dd15f0de7e28da0e7bbac3c6e3ed895b17c7bac1c5fb1bd45e040bbbeb595c6f8c0f48be85de8cac226f76fabb980da37e83edd6a10488410dc2ffa5f16c6f8fd5f0057e35f8798a44490c260d2ff328946f3c80a08f22b4d1d19e6ef0a8f96ecacd1317b59c47070be7587a22b52810836c8c89be1085ccccb543d80f9d0fb2fdf5f8dbb3bbdbdc92595cebd83b0c063f566dc09483b78693b9b9455f54d1115db06f32d9cfe9901a8cbfde98b0dc5d6bec3bde104f1b7c0a90f9fd814a615727289d2865d345398cdde8c2c1735f5c31c164732961f1bb0d9f75c5ccf4167ba8abeee24a8488f8defa062a730af350261ed64c73b6e5ed15b25414a20b7c2d03b840f60eb9bd99acc32b9265c2ba9fadc18afa2836383a488583f1f41870fac8872235db2d8c7c24919d07715a4711c038c6bbab1daf380df9609bef808ac533d3d8513db0b2563bafaa682674ac5b16016e18c19c00f06d27dfb60a9df092b576a8e197e970d347eab9712865315f35c13e8fddba92774501d101c2a5bad8fbc1a6aa2b58cf4f1ca923dbcaf7728b4601ff6860c312d966eb84aed3422405c382a8b7b49dcd8a45dc997ae34d4f50be08ef4f5c6a3cb14927a437f86752cb4761081dc875ce5fc6c8a722f65da62d84c51b75070633974734bf092be60aa207653ddc51603fdfc30a9b26daaa1f61420af742375015e6f21f343c49a21c018d8f5a9ea42c4f5e6dd176c5630538c913cb0157f54ae4fe57ba8e9b6de54f135844f2bc35fc40b3e4b197548021c9e1ead9306a70a27312781960fb3927877de1a11ddebd10776ff960fc13ac925802b0492728e5ab7f8a0cc78c2a16b227032dbbbff896e0d3d6b310329bb866ef21dc64a14e11e4100b092b4e52be1a432c92fa4dd72959e616fed55c77777ae3e7d92258040913043fbbc02132f1da5f109df3253325141cd8757fd28539cc3d48dbb68b8fc586f4c8e4cb7e7018a0584981f87d9a88029ceb54ef5ad078a2933f709864a243858a9c1ac8bc67b40333c6cb774c489a854b28b9ff39802f0734a56ee743ef5331e6f1a62ea5ff5b2d2137d0ec1e0db6e0032b3e9049b3657042c4eaa8b3b60aaaff5bec9f52e1d96d9039c8c5f1e1f529f6507d7bac86417e53d00231e78f773bca316ef039a53689709d449b56dc1cec425b47189652642376b8533a8c73a1aa3f6d8c8356eef8e79fa1542794a71c34b9851fb85a5110b7becda9e37dc9c4272f2461b0a00b7d474251f9024505b58421e0124c23188fe82330d01354380f5bc1ec921809079d855cb026928569e29265593cf9d4fde0991ca4cb2c89c1d8481236801034124e2e70aeebabec85c8adbe52ce6e5070cfc0f5d4f03579a8955c3b161dcbc19eb1b4466d3e1694e297bbab637ccf34adb810d04e58d706e20f6ff08e496a6053cd069bc5c71a45755658972905600e5cfff7e754e0aedfeae082ace20e8d7ebb0253f4ec61cf0446d76472b4473f201ad16220a590b41a2212849df30a88d98b89ca50b91834d1a16e0e12877bb4aa1bae74b7b9a80252b49f7595df60524cfca80a4cd295ac250cfc8d268a4ad35d23525211740283c8db47ac3a65223e1cf0e2b469cc0c035a91c4064355fd095690afaa164e28a64a2e122191427bd6fc812fdbbfd8ef9c7a27b975b58b9b01809261a0923c1220a2e8c07b83645c7c3200ed0ae8ee1d832acd644cca079461d05be0b1021591d8aee221632299a09a083fe6e16fc2151aeace5545390bb3f9e8a0ab1060c49cb2e940c1756aaa6a4fe7c02d05b49f998c629ddbce637a068db15189885c603112cf429123128534aa498e0107fe72789596f446431f265e6e6a4290acee745f2f4adcd329064de423bf40d352fa1b32c49b23d39cbb30c9614dc5335944bd79a0fd762c5fe4a6fbcdeb5742007465f774d56cb0d5ab9334007b96a4916ebecc9c273bd3b9c2687475be604a55df687d738cbf4df62aa0230ccec27e225de1c1beb5784d87da48dc8fc1b3b5c9fb8f900f0b5ae01a2dde14f9b7edea585abc27a09d74f4016c88656422d36aa1020c6203b1f100438196234b2cb8100eca5c5b4f30397bcae3c565a4844727273aa5b15234761c5535d138d7b4ed6c96b4093a95598ad054e5f7758c262e135683c160ab23f212b237640878c8480a2a80817325ccf1bcc8f9d4a265d512a1076cef635eb4ec8ea0e15fcf007e96a35ee24a337817958d76ee01d531a9b662c69f8749da0b181fba609d2111cad3aac6d1b95bf9f1e5c76735e80f235563a649d0e231cb43def1f6e0696e6524791a9b38953e72f350366467586529ddb8f073dfcf30b3c6448270eb758d5a309b6f0ac62f935e9207e2e9dd019e82d152b5807969d1e18a9061c5bfff7be7e87f3a8c4b8358af71162cf8ca4a6caede31619cedae4e40e938bce4c0c75baab7637ba77a120851bcc96646e2874eb2346a961c92b496e28e8c2e1eb5135765ccf6f1b63475df73fb744cd0bcae96d6dbbf3fa2a5ecdcf6149679ad39aa3ae9bcf8713059f5bc8de26e61781b7474335b2397d1c506bcd21ee651237d551f26334df409f9a9e85f5710fe11374d9edc4bb6a7f7a8d5e83d820432f23ce4257fbc3a5719571ad63274eca2cb26ecb562b76bfe424603e93894d01d43a4b5486b2996b163e08ff06b4c2c8f908fe3e3bdb4839f82f0a60776f189898baf47618a6559867962a0183e327a38e6c0b3c4edbd254a65feb0a6cb89d1365ef87de201cdb5a66dc0af0bc3d502936aeee100cac4f6e4598ddb1d463352e3d02b62bc60512227331899636a3fb110b7f823aa740f0daf75ddbe86ed6653682b55cd438acd5b5a25714803a488100d847f6e592d116e95314ffa8d80ea2e562e50f481b7dd8aec1dad0cc3db944968ae5fdd3af2c462a9603a5602a86e3b52700d8b0de7aa4c932fb8a36d25f5a0483bb064f34a26677896d06fd1332580d705fe18d52617aec08b6170c4e3290f765e15f9e117e2f28b859032dad645a1ecf6a934c095edf9c326285732aeecd9ec66e1fdb4d2c653f1ff4ca430e7cbfea3cf6f23e4caf838e7cb09c0fb0225840c2bdd7b8eebda305f16f056bfd05ba11c8e2f2fc1b93974dcbd06c1ab967d303bc199911a808df56c8dbd3a42ea16791a03256cc23a0c0c81ec66a4e81abe1c7a6ba5876054d5ace9678b6a233e760307e1f0ed3c9f1fcdef7eb7b50d0b8ad8c400f623d1ce8ccf0b0fe606139abb43e387773770d7a88f540d4e358d774f4f831f62c2c14654cba1c2b49f4dd9b598dc0fe9975a699e6f03608f9b540d4590a0b9ea020c0658ee8848518ab00c14c44fd15d91ab9a8048b833e57b978ed26d808dfb341dbc3111ac40f171a025a2ef82344ecb0206d4e861ec1dc8ca5ee8968b94b60fd759f3f8d852762c924d2a43b08190bae50aa4a937e01a5a557d7956c95feb7bcde0f3214a5fdaa70a228479743befd25d88a6dd384de85d7654aeb7c5968819ed0c91a6fea5c1d4573dbe78ddb1445635824eab7267ebef561b8883cafea0d24685723f6aa6f54f03db17767dfd05f40b4f8d6c4a95154cd1fe4e2e9aba6594558f8ef5703bf289240f7e8057ad16d5d519a9c4993e4bda03aaae69e534b47f9464a33db3d319595b3b99fc697379aa5d3a7f5372af8b3bfcae0057e6953c6fc27e68a279061ce853d98339238849aea161e34bc4764246d5297f323b54c872c12a13f8c556e9a49398269446c6f0bc8a068ab4c3d604ab799644ddd89bfcccc468b32f48bd2616a59ecb1764bc86196793f001621cdf8547365ada1d87a7ad082fe627df44741692e5bb5fa432310481eb72264a943306347b661fa7aec07612c010d565936bb39e802d25f423ec15b70dfafbb17bd5013a7cd85fbb77ab49afbab06831334c9a71e88724c1dd2b02d5bc2fdab0db6d43d0b40024844215ee1a632f819bc42c660a38348b52df3a63f031b853ee677fe01e0120bb716e1a032222aaaade21d8453fbfa20969bd419148236903ad1fb05e6923d0c3b6610ccf73b7352dcefc6ad2e302da6063aba881106489c8c319cebbe34039f71bfa943c9e8893064da486732170b7b372f0c8198bc3a9077b367acce96fcdc12716a368111d479a4c51edff8d3f291b73f1091b55efea43c36843b556b517bab6321081291c0ed6e8a56125f43c11a1e18c86310a371d61061d9918663a123969c025acfb5d7996fa827eb3e36507f9a4bfc06939ed9ca07c5fbdbed338f7509a29ded9c313f82befaeea1ec856c30309074c1fa93c54b8e328cc108042225b0c924471434c350ec8cc97faee33b4f30189bfd0a8555d9b7aca56cadfd04d247eba1e174eab1fd38b311d30ab319d09c5197c00b941cb240ce7c64c94e04569b4ea492dc48811079f082cd858d47f3a1068dc5651450795a5ee35fb7324bf303f35524fa43fd5e71eb7b77f0294ea077000fb2fd1772f8fd53bae12b59441fa1200b33ea7a80e2385c04504ea0e92dc631cabc5e6a244a92fbe54fda3292421ab914ec81773b03ea46ca96aad98ac6f75a5e82167e4eeb70af6d8ef74eed5ecbf58c95f6def3bd1b2f725c2426388d8c1ae9d22ac1d84d48540a0e157fd49e7a196749a6bfa088f81e8dfe0b8e5a6c535bd97465419c0b53794a60a1e055a27b3d8e83f5f0c1c2c04ae1b6acfd67c52c9a5f193f763e99d313425ec0708a29cce991654bf8f39a1961aba5b17cf6d64777db1f738e35b0d76c1b35f3e796d75d2a258623337f5e4867526eeb80ae025e6866c9c09c5858bd8c1af7c57631966b2902453648a2c708f8e1ba81e26b81a18871967f746117c80348f65742c9d06d1eee94198e2c4c18b33c7975646ed1b53b33b9311f465308216add7f941259bf9e15f1d92923b1984891e2bdf68db2d35d2ca15346bd9af3faab9d116e0474f5c6db5f8c8029da24bc47ffbb5d4ccdeb80d65480df04ba4b7d01d50dc5b00c02f4791182e0a587e031a1281d06b498ed28216f3f83ef5e787f07b574395a0d695886a69e303aedd51031e3b85cae3af8c0fe8ac88257260373f0c63ae6eb34a3e0541539a3233e87e0f45302d39364d10c6a0680bef4bd1264f4a678f1f260bd11ea2f0a7e2cab783439bcced5e8686d431e52d18dcac8aece979ebb7e04c7da930b500bedd6af8c569e2376ca1c98e1a40e5d3c0ad6e5dfdb13f4b8c10c3d74ce109c030509abc991552f34d2fa1abc4e5cac5f36e550651c0cb257b89f24805e8b366e53d03148471b6f8f827e540d41f186946e20bdbba436d9f93e3e25110738f056d939de449cf42d81fa62d03d1eb2805f329836a0b5b493f353da81c05cd40a8ac632ef21b7186471e0f082025f0c4e7eb5af23ff9290e415d4f540ee47ca5180ed743be6489817b8db3301c2e39ce69144ccd584c2503b17ef7160eda91c32aeb43ea88a5e69beb00b1bf20f28d4684d25904f1774a9795b6008d2ecfe6791dbbe968d3632422d60414e9d2dfb044161e27c5684776cc01bf3c9a8df1ce6245344fdd01140011020158f058c4559c6ef2ac3ac05eb2bbfa99c7a10019e8b3675bedca283c766c0465becd247f4925495221a4b6cc6e939a047a9d2aca5b159f885d21c59875d6655414fa3c3d20c8cd1f390bb4a39f734f29ce85d8d51732e90c982bbe6ac1f5c64bce1d6a7bdc7473a85a34c611a56e1a347c1f5e4e3e6c1be73a1b3e8513f896f47c8705441274e4183481178e778ea696ebc231f19ad0b7e399e083f5f2937bef2016e34ab95f809a445634735ebd75c03052bb862bc82922e18f51fa9925fb68d3ca27c31cdf32528937fe0e205dcf985e4b9705b89f2470fe4d41a2382bca5e2d5c9aaa115a20842217201929e409cea70027ea03246dd69ced85c87ee32c0897095c0e369210dd1c549cf0198a1409649444abade8921afa28916f16d0fc68c0a8544b7e4a565d005d8a7b947e24a3200b5955139d4b5207c5d2e2f020e6a407a6d388c275228555914795a32dfc4502a7faec062fb625f491a013c7dab5e9d0b5f457d8fd7c31093b692db1da5a55be95467c178dbaca6d390dc3b73a9a0f8b2efc81d33daa338672f0d854ef7959a2aa3f904eb215487ab0ce8424ed754b0e87b6c027cc7f4e86c562c5b2b8e81b1043e68679ccd72e8e9cc85943c77c5190acfc178c24bf7c414b2ec93e6410f7e855d15bd67ebfb805ef1aeea618f06a0b252481fac81e6fb96a76e1d2e77db2f07ee673be832b090388b6d4ddbcd250608a24b39022dddee5b3878dd3b01a15d584efabfb989852a2d5e54c5b023f2c420c9f73004c19b81a03c1d33c918e7576df715eff2e771c6cc7597656f9e5f646618a289919eb7bfcb7f9fdc18dd28c66ecc145aeffbcca51b995cafa27a1f94ee20f37a8db9a221996232d603ac100ce03336cd29442753d282c12a85d54f815e62fa4a6f9a3987f5ea7643edca682c1e1bc1f01780bd47471be69057aa91a3590d88d828ad217df69e7f2af681a9e5b286b201cfd767013adda59204746e5c30cff23fe749bc4f9d80985f26bf8cad8e5e4e43d705f3f7006537ef1cf3872a4ecf4fc481abdd8d7883ffd9b3cc2d3f6624fe028123ddb0e04efd46e1f5c9ebeb5bf7289737d82de0a7ed0dd853245cf4ece7bbfe818b03615c542ef7a1f395dfc8f35220e7be4d22cfbbae1b8e30d4a0bb586b011f815f0ed47ed13d3e88b757a1855427d01c2921a8738c8a8cf6fc3100b2e390a84d1b9c91ef790e831bedc615cab8ffb4bcd260238efef2a99b95fd208801270d93164e14526c73871f911aff2b1a91eae07daa56158b082206e262513ab852a60e1e8a1bf83da5f9bcc4081c601be72c7430cb84c5e998aa45bfac072bea914d2b2131700ae71a1135a59ba8e6a09fe2e9e59ca11a9737f083b8fe95fd5f9385efcb1b5f9628a5b0c55bf3f8b8c249385c3f6caab5a38b2891c3c94845adc95cf2df6e49b60d55ee28854a985cfbd410bcdb00f5a6e0522413c900812b4700486c50b4149ea385de12a9bfe586c5b51b4a6ea9f611790d1d60ed44a08c23220afcb2739aca365b1852afa8a006dd8cc27ec22f81b2f2dfdb8868cd4618da2000ad4da40756667795588238a38586a8e2e78ecefb49314202af892468af46dab809ae0aacb7971b8eb013ab311e515dde794d5bcd004aa6ece01a74777e4a5b31464e11379962be5994c39a48f9ac2f66cd3d23de95693f6eab12c29f7f8a871117a35c5863fbd96daf5f04f767c6bc0dc5938ee412c8cdce662f0eb3f1ed463da21011db3810c302da8c5f8d1c48dd74c4113688105a33aa781b562e0db9de0961f861d81b842d6b96940242253b6a84f0e3a6a1b1a46d4c46599c33d76e46b47068fce361f37bee5478cd5d30aa1f7c3d4e55b1ec84172248b1d15a9b1476021b7c953da58e42396b9109f4930d4cd30e47319b49ce0f718663bb898f96e39331f2606d62f770c163f4175b7a4923fb3109035f655d23b57288b800c269c74e76cb5ba9428906a2fc324c4d31339c481f715d5c6b912d7cea1db566ef2bfc9a4275b3cb692fe95117d719fa8d1f6fe7209ea3e71727168066416bc72c2ab1ef6643a4127948be4cec198d18a2804a12ca3c75ef780edbc0859281a209fa6919d7d656d699d31fe33f0a0bfacc3817d78bb07082bc630731cf0956b9881bc0db7022fc64b8f46e80b4470d51fca8e712a28a8f5f8877308e2e60d11f4d2e96622e42e81ddcb32df11b70460b43674232338554f476946e74fbc5fa24073fd9819a056c0656bb3e59cc708909f339b5208e31d7743296a152a6c17c54f436d00f1992a20886c2d86c4dce379c3ba2aafe68c596123cc44ac7b211d159063df8cc4c0788b4ab53b24a0a947dceb0fde37e4f53e340a8c42dce5f8448224cacad9f57c9691b52070ff223a373d9c6d82478309122cf1820ab65c132f6509aa69abb497e4cee72d589e00bae12e03fed61ba08c230e917505c5fadb609d4f548a9974f7ebe12a1be90cd361cb03f315e7502ab70f5de8a21c03a89cc84019ec496a4ac0a1e7b2a21d8026d36393c36670209a0266fff01cde196a54faa9683215bb9990ae9c5a4522a3cca17a8159eeca4f44f8b094e4b7244b1617851496803c112a2f7d14213d77f8b105948862ecc2fb92b8d352580c1033c9904d2c3556bcee3191cd1188c83cbe52749245f167dbce0422a9f8e749cb07297598d8544d09ca07c0a0a117342fbf50d58227cc367cef93a175eb159462cddd342d352083f2f99ffebfc8d9131cdcc561b6419399c6feebc4b2d26376873d56f4be802a209eb286c2b2f22fc21f1d642d3ecdd9d9587be7a3d02357211a8e2d413dae55c78bd64398583f0e7fb36ad22ad8916e0801f195839e99180114f0d584541b77269b0e25df129575aed5025d1877660485fd87ce00deae0acb1232caf28584120f8b803b53ea9406cd378e01bfcfe2a5ae296e79d7d60ba7e3dd061c06dcc16b4b046131a1ebab37b1103731afe01d59695e54338459592672c64d6d274c188b6edae9e95e8e8270327cb4943aadfb2fa5f0b608ef5643efb382f46ab7cf9d2c9cafa27b6e560ec77d845a0247de8f01b9ca30531b4537dd2d4e280e3fd0d0d32029a4dc4ca639b72857aa61b0d2615940e9d5a0b9aeb607633f40d5c9a04e5da3be884773e46a563d269a8c747663c58a0d7a81ed971404796417f783fcb074fc70656b75cc3fb5fd9230f182041929902625088f8550fbde9e5eea84fda678004c5e2409678e2c656b68a592b2a60b5ae453b1d4d3c216d462cf198399a9cd7794da8703438270949b34f2c5f67c59f9224d12e3c7f5bed9b517378dcde32dc56d4d72dc820db89162c4dcdce2f584813b5226028dd4b5dad75a5404661ca480fddac6e4ea2ce0c45207d15fa8209d7e5c1f441300972bec397b920fdb78691ec3b0999a4a9c632e056cb0c5513463f4c70ca12e175918b56ebf121800ff718ab2fc03f97d0d75d83ab7d97563d9d64207dc1c483ec8d339bb85210cad83d8e792c6272831b37a67f2bdd71d6c693b97b883e091e1615578492a92c66b3ce9f00f24d287ba8357bf695925d80047fad1542984a913e0d0fa5883ba25ac0ee8022b4cd74b51a18d0c502cfe994340adf46dd892c60068991d9e5d185b1b2eee85a14aa585c5c3bed59313c6ade09f0e04cddd88f7bc157d8ae1c619b054440fe313e03938fb2c02e1862717a2adb1653d3be5c65d0498afd27d6df5b9e6536682d8ef78592765467c7262001eab5ca401675570f1e7635d848753cfa69698006c2d236adb327cf48758dc8896e54e3a693da93e694626f17c2b7c292e8bbec5149e4b855409ec2b0183089826105c5dc963e912832569e5c9cfd7b9e858b0c745d1619f72f90055e21f58141ece389e170b5b2a40c0dea86d50081b47a8146750e0ff191ab6ff1a96c2a28e9ee53dc3f58aa8b454555b32620a93cdbe3cb769f0d54979f700040b1a521b1d5d21857f9568ebc4c372ac23a20ce5be25cfb9a28ff5d7d7b6bce6ab434017e78f3737585413b1ca1b58cadf0a4b4005b5458efd47a4b3c34845617906ecc5542a857f60b649a515f5b12069969b96587b17053df8dd5bc73806df9ef93530a61d69a2ca65ccc7c3b59b9aeabb6ecdeb01697f6fa7da790583e6b406da07e8d55f759e7c205bf5ed866d6156cb0c60f91e65a87f0c510a13ff7de49e872240589b20ef2c8c88712d066651b99db6a7438c7545c9d914eba1c2e8b3dc3c2cb4897fd6850c6d296334d84571745e14abb73e02e05416899ef4c04ec76c7fefa5a96e2a44f049fa41aaaf850523e91dc564fac05fa8193f5260ee9246677fd666052921a837e83087e7b9a37c8e835048d7d85a8dcb0a1311811db37e0db15372977b4285ba9fa367ce1f16f921c132f543ee4dfeb7ce3063ff04955ec05a1ba64de520166542cc77bb1b0f889f1162ac1092042a338a43012752c49c1eb10f73785fc0414f1f4dbfab854365ec80f047c3c2313461a195b9a9c4dfbfbea88a0f8cadf29ece29195f3e38f905538a4e936c47b3066b292626015beca4e370eac4cf75aa74807062b0f307fa69179036be7e46d8fe32a82b8866e4c3b1a32438a19f65981f069852a098912e7083dc3420b084251ddc20379ba146870993c322b3ce237eb67fca84dd7b2aac5c0ea037af1c3fdcbd156a1c925478739886b58b8ff6f9ba779edf5586b28de8e5d4c2708bb5e32b3916aebb758e7ad667e3f746ca50ba29cfe1385102666a35b81cad026bfc6ed58e3c84e4336734cee8bc9addb4687dcf55edc6d68c23608d11729c4ca664895482bcd8df826d4bd61ba0aecc1d42e03424bf259e889797bb61ce761533167c73aab090826b088d667a5a608c54a2a59250cc3de4ceca5ce64161cffae38691566a1bbce6926675dccf8663717d9a90a6c845a14f65b380a68cd0ee5c10ef9ebc415a9aa5ad0103efd9d0a8c883f3d76eaf7690c1d23719610544204f73f1e84d1d81f104c3ff6c10e90f5370fda0c03ab16011d59a0163da3485c927d6565c5fd838aa90c101dfc6eb339dfb3e6c00de4c9b9ef7c98edd2559de3c8b33d3ac35a65daec1450cefb2bfdacfda5f83024f9ff992880b1fcd9c2402f5ed094a048fe20858223361870f7adf14d424d9a6ea15d8e7229cc263ad97013841f263087a5df630695b104b2aa1c423cdeda2123ea4183c14f722e6658581bc2347155e0f1154b3521f261148b066fcca70641f22f36e27db864c1cd31a0a99553fb7fdd742622e79b30b1cf2f6960650aa82d87d7c3a83745d512e1de3d30e0ec0b1cc81853214f5988c21af5c8031c7fa7515864f622ddc7a9176bfffcda84bf8c67670a4e49205fe2fdb877e155900a6494d8a0e2df8b12be0e3a63426e5e06cc8da1d432a9e903efae1acff0e580fc5b0808b929b30938f155ed1da30f9a6b95b34b8e620a9d5ff1f5c1da46d3eb37f71dd3779feb5ba0d8a65f4d3843bed9031f60b7bab4dbe1fdbe06961e09b77c65fdc52a12f089663575684f64548d440295bac8e9034090ddc82818636047e172f38ab0482adabaf783fe783a03b679b2cc585a90a9e80790633cf81941db6d7f42eeb58a3961e43694722cfec5108bc4420d22a17038b81a83f5ec3a2ef6dae50ab74dd376b195ecba62bd9d4cfe7442dd4a4a8d9069073382094a45a24ed9871ee59042e15653f7fb9ce9b35452f09c204456d0a24a1627001e818a1a1999fc87e64c694c590d87760a2511721276c974c7305c1777e502dfe8eb6db3ac88b652a7daba47b550832ef2d3738fb1cd02d76585f37e38816ff031db9cac2c24eab87ffaa448eb456ad524a7646dc3ff3a5a75a0c1b3af30c3cdf35dcad4415c7f8f7072f655707c418d4a754ddbad7c6fae4e51ab4968348d967aede4b71fa49958d85766d1e31e8727b80007e363322de5698828bb6f497a360a4e06ab9ab5807ab80db31f5aa8e2e156ef4f8319b9c4ade0af800ee24d27b1b71aecd8ad1cbb7cb553cd2c09391d55401a11e1236705f55eca19f96784efda4eb94013888ee014ddd6e8955356064de02efdec8164e467f753a326e8681e56c462b57a97b411f07ed114c819e4daf2bf212d71bab76d89776a64d17145101b5145c16dc9621d64a811f321520fc1328b0c0b5fef6a3d1188ba281cea7e8ea3d50cc8b81f00719bbf8c820662b1855ea4f9cf715cf2b5b1c54041af138a13689e1521ed999fa6da50f40da423a45e0f89de0029f450fa14f48b88133ad5fc720ad9ee770e0ab7282085411fe614743bc70ed3144fd90d6ea79ca03282bbe3d1980986b3cac1331567571333cc4a28b5373c141a2b7e9bc7e80ac57df62132b2d97e2071ea14d79bce878789abfc5ac9e1a169714af0e0959c9945951a1c44bd5a3d465ed418d0c8f2f532e4e2d076362656d10df8a12b7c0617544d06b857fdaa3b19317b90dc142132bf6c1e00faff45466e5c81cba85d4ea8a459f5ef864850995adf423705f6c09b85049c841ea6ab936f9196d4fbdb2cf67a19ce9d71c4f0e37673c8199eee83342dd3632a2a44157c65b93ba929aaee13b4f4ba1b2a951d886e5a15620cc7ceab8245657cd3041ed5cad21a02232d3a24f9ac6293d377203c33cec9e67b0732d4f27be90eec3ab8566e2f81179f5023f7488553484942c951eb0d18443c981e364f101ac5affd801ffdf6ead6c37777f8aab614d1ec16dc8e419f8659bfe95d70df5b31112c39b40aaf0e67eecbb65af5e92a4faf82e7710f8cd0b08b2e6f91c8fd0dd4217ea4cd0dcd2206291c52297072af0ae5e138ce2aec73e35851cfea55748fb51400eed3a39e6f0aba2ab4241cd6041d422624a2b5756fec57bdcba7e4f74dfe6cab0f2cf70ede7d731e76008ff70dccc355edfa26acad052fda71e70db31a81bfa25785e70eba33e44da32841d7df7954347f961598f8730207936a7581b4111e69eb0c88dbaf9d5b9cbdc5bed43a5c88e8d2605a14a87b95e7f8b0e73c93664877ce4afea9e71929eed5178ca51831d18a60d18ec2971c1cc1577906adb78bca6a96c0878bc7ff22e990f4b0ba6e17d66a5b43e96018c8d31406616eccb523177a38d7cc0fe3d0ee4c72751cbae3b1f5876d0730c3e72132995816ae0e39aee305c4f3b87f828fa6ace861a293a0a3415589fa571cdaebb40f44d3125a97d777098e719a7c201d01b2455c0e2946bbc9ad08163ba18918436b54af8ee58a2e77757c736b69afd8b51ea392918503993634d3406d7d5c497ce8da83a01f7e7e42b40933bff3ec042382ae37908c210efdd2aa8a3d4c55be2abd3abc7c152d49417850bd729f21f35e976359a6ee6b80004e7c751fee7c7eb436af83ae136889589fed1e50bcc41223ef515a1b1e3709ed147fa456d78bae33ca991fbaf8c344a7098c1ad10ef6d2652b4caba186e74373b921b8dd6399a2ab74ef951a0ed5a312b9a4b1b78b14034d18b511552e5b8876c15600f5435789ee9928d8c526d86d6118521b9a2e68ef5c8527bc8c515aa4f5b9ec4c96069ea9202be5125540fa894843476617f513a48435055232e904c6d1470b6aa722e61b006862f0432f9da9db85e1c36361922d2be86e0b291b308dfa82514ff18281c1edc6ea0718d029ffeeaba96bdf9269648aaff94355fe1bc83d683341f1356348953951d6c44a9ee96f4adf23de825d1b02f5f4d3fa00115934f0be9297ba6c02beb3b274b755ba1f1a1e2eea892ae143b1c3aa89e294a3e015fa49d947fd3fddbb18d8cd02619ebb6d6ae0c17c73ab2308bf272de23f80b92a858e04bae3a4983813a26dc7028de4c15ac431acb9ab384eeda5c78f95655165376366f851a49c91cff3518175d73f6fed70216938674990825a3c68b886c1865e876527f16a5b41cc5568ac3edfe3eb0281c0a12075848a4542db0ed450b1a9caa098f14f048347bb57ce47b1d6003e0b99c23df4e7e0a02c306b666a99b56460928c8dd13ac6efbbd2e92849e47483e9accbceba16934ee8d9252d9e6de1facbfb9c1963588fd19114656d66fef4c038601e8e272d5b558040728abff90573851ceb3170068c3b46f36b74ff83e8d918a50362174599fe5c1a93f0dcbabb5a7323cc0b27ca586bf67233485c38f231f79b0f4904123e621bd635772627d2fae961f5d28c1551f5b9c7b47109f9da56c7d4536af7b688526c1f5ecf48e556b879213f9abc9c8fe557c0f170608b600f690d0c857eb77d36598d308d8c0c2dba5820dcd123080531747a61a5bc7140d617f498416d83b33f6ea2992cfbb0536784a63ff41c2cf9a5e5e68d9f7bdefa4f8b77d84d8366afe39cb639a8a48e0d5178d2245d9a3d97faf5392dfa29a4c6e0ac039f69a6ee622f42427df17611c7954f578da18dc9b544fbc844d4cf530a73fcb0477b6d8085ada288c2181af75802640123829e4c5467e1d05eb382292b08b6fd4d7431ea2c123f595956c60eb078940e40ede7fa6db88539d23359c1e0fa9298b480d2da3929091ba115799a005d6c1f5faedb296091bc3b42418d64cd12147f5e8ccf3275290aef9796e91e6efa3aaa651e3521764891e104afe18a672601b14d2b04d08f9a8ad15f3d848a4e028bcf02b8a232a2a79bcad4909d9922bc13be4b8c499d64552781ee933aa74d746946b8ea557f48bd339c132edd050e05f783eb06165dd32dadab95b24e0dd15c36bfbb5c610ccea3b35bfba6915e42a88319efe7333c5741f1840f915f5399d1f5721791159b2cad9e48b10d31c91c767025d1e7dfd209903baeea0ea70d3baab145ff710c980fd0c95371749fd018a99146d36bb6ad581346cb564770ac8c494d451a7929c3115c7cce94ba0217cef98422e80f1d8d47280c6930009715e2b8be6e53f691346d1fb577c31a6fd4bf0516ea0fdd26c6b955ab37f3d3825640689d979dc1b4de87ee0cf3cfd489270b6ed120b610aa2e47d70bd09c60936b2cc9f837eac6a17e954167a3dfe09840802e3d98da3ddd2e682bc19e6e37978ca47b5657f0b07f7bf06401ae48f18da64c4217e0ba0103233e55a38b72c22e7aaa469ca76ae00694318ceb84c14d743c5fad930d20e1fd583d49d8aa830503ea363371860f6d5484704ef51ec18767f18b4e8b7ffb3bfa85ca140ec513be52324bd4f03f3bd3cbcd90b95760230565326f6c800bce0eedf100deb1a52d84d92cfe869813b64e7889d5790a3da371a0c253bb50c89da5bf4febcfeb726a80cb08bb88bea46c6ca95d545a0eb0761e07c8dbd362a731b6febf1f5c49cb37539b7d770cc7a98ea1d0c97d59fa80afabc68a8234d4ad57b88a5413945c5ed187b407aa02b7c756a2f03589f9a0ac580093aafb68cb2d375a73bd61b0a1dfc2dd32db560073221194ba7bc3a6c69fc1c7f6aab58dbb28f344c50cf0455e1c5c00cba381b602effdb35a891827b03779ec34bf63a3bae1ba321ef015bd66cfc34ee875b3b9db1d2c71aed630f63518b02d22dd3e2071bc8f0d704e47984579cb989b3cbfaacd70a753ad17100b9b55eb93ba44668efa486e379c986e65ead7e7e836e8979401eca47ef133bc70f45287508977a1bbc28db7fc09140ec99bcd12e0dbe0248cd3b268857612ba9c492df80ff1118989e87d86d54ed1b02028689d45f22794f376b43e0328388bcb55f2220dd92d64666fb826aff58c2724da3c9ea8f604e66af80c1280fb22f08d86f92caaabeba80189d4d04a5478224c3f7fb93f5bd4e1c0222a0a32b6180e8dd9db29e160fa920edd3716191b12b0dc8525fb5b485454964ab5994b475bccf79bd7fefdcad5065743ab8200a929c18551a12a60217f74da9e9d832d230eb2b5499a1d468589b2f02e07fe574563590392a096ec8f5e0ebc18038d9d602a3f335c9ccf3945a70c5ab20858d65c6bbd910788a9882a4f137beecfd91ff1dddcf166c843cd258b0f7e64e7bacab8ac640a090f496e15e6564822af2422b0a8c6ce59831a058867747776202c9de54fe5f8fa36cf0095c387693ed8e4ff24c29be8f458fbe11eb4c431fffd6b614e94265d7893de3ef96e600eff0844d95da1f3ea79bb31c0c7842910c3ac7a76e784163c3f551e51b40c801a480c52d59b66675b7b2ba93f3a970ddf8bcdf80b462ef1df57c89815b1ef96f4f29fa56ec7bed532a5394c6a710ff781e0a8add0911e3bb780f2641518346087577543a213d057f9c9a5ca6865a0d3a3946696568382361ac8ffed72c164e111422df0f57a81ed290443bf129b7b2c10e63996786e7069de6b83d609d109604f13e39e1d14ad0bd88da8628bc606700424488346c28f5ad32271ce1cf0cc6e47685168ea45399038c842613232961f807fbe8f836a1a98e8ef71b394b8bd0ed63a466ad1cb18d68405c9bc79861a8f33be3d2f2be46f9bc83909e0331d1b0135867d277e06f8e06fc140039853daa7115d936db712e9b36cab38b25fd567f5169ee869f572ed25c65e65d18d2a86af731805775cf2ebe2f816be15f27962adf108cb783fb0fba46864e0146f5e2027b6fc3d5bc58d95062e412954bd321973a2ad703618da4709df39f933a6740e88b64fd269f9013e216e5d04cae134f4a9e01c78ae608f76ccc9028e766ad80529f0a3c6135d59843ace785f56c5039dd13d6ebb70e3229c33f9ebd3ab0d0803141c527889b9f3f06b5d6a09f3fc364c5b8f89213aad3a027775ac7f1e67094a8b32a6144394af1972a9cb276b691fa7ef8b0fa5245e4bb7c73e7d8b89b14406b1681de6c135b5528df1b1a8a292970ab21fa618d4ae3542c93f4f1a2ab6ff3c14ea511535b6c22e5ce92679bda6a00831e872c1c6911bf5f8745e3e0ea6039066dfe52dcfa31d6371fe2dadf01aaf4298a3c5dc471ded50891a0439f049c404a74d9df6587c5efec13cc98a6979554e6956945dc279b9d028c6f5a3c6e4bca9c2372f85edccb1813f702fadd6349c6a42c2eee4be9b802a693411426f0ada7a80f991b5dfe446d51b45b3464de2584f8d8ea8caa5bc8966db2b64a51b1b540964e539e62b5fffb3218bb5ab5ad479adf7ed77b604bc2f33e02ba2bafc35df6730fd8e577b8fe6435dfa9605fc05fade61f6db187dc070c8a88a232d95c699b554582b28dc5333445a143cde34b756a134a73d6ddc8a732d32caa47db2f6604a935289d748f9ecc321e7a6bec9ada2428d77ab32a2841d4544e5db7b06a0be402017f958c179275da670a3b6ffabc29c718e7be7f307d7a305e399a55a8eb91298126489117aaf9b426f5c80d203631cd073d33a0775ae09fbdfba6add639cc1d020b8c8b22c459501c199dadb246206299bb0e8052a7f0c4b09414817af559ad6170df0c405b25a9d9e60d62c6a4a44221da296929bd9671bc016a94167af3a5557e19a0862199eea33d2af7ac943e8683ddf6fbb8e8d6482a02ea6fdc50cf61b8fd2608c26ee45da9d0802f0d80e9d2537df15ca933a397e51255a3f30454fde77713cd9509a7ef63f6032da72d9173da4635863e1527ed0ca58ae0fa587639f497acd441cb0353db40c2e056a58abc83610e2ad441403f4fdd74b062268db01731da2cd5292949d95558f29957977b90d0fd5d1f09521f71bb05a86a082232e0ef321861943415ed0757f797822d52b2369b3e7895837327e46d3c7141850e4b6ce8dbd4ce32bc6c321465ad504d0dea456c177be2198150705c3ad2c2134f430ab6589a53cfc596284b5ea7ba8fa56dd5ecdaefb17fa8a6cc964c3341099779a72399c320905bb89eea3cfb5855ed884d3cd45d6436032173257b7462c73fa7f894af6437621f5c4fbd9bc763a60b3405f33cbc8a5f475b720f7feb7c0122b2e80bb1925754f554a366b475585a5e74ba55cb47ffb1d30c6cda4d66be61175f8d4c75830feb68ba4e2aa4ba60566a241226950bd9abd0fb5d9a6ee2e004a1c369b9a62aba0519ba15412ce06ad82b762092b114e549dc7a834f428d40a40f926d4f0643c373e9c0d8aed4093e7a0303d79894a3936017364241dd4d2b2796b7d2645824920ccbb7e12c2a41dd484cc6822f66a6b62567b367f15a6125c85c6e981f8867b3015d6ecabbc120bec61ffd0581a6f331a8ce131f6ba814ab41ca6eed29fa1f6212fc263c0bf232f6730c18092b91e3fff0d4985eac14153de80a7eabe76b5f04524d17d597fd6240cb4dcadc1394ceee5fd20308d0a84b5e9c3afc454396cb72c546a5f05a16cc457a0a5d2223e360fda9797ca0ca0faf1ddb36ba41a8cf00e18a641b8c2a6e2315de3ab9a5b49a541a61cc91da553c23f5eb1fda7247ce564b287c0252007a005eed325def91a7213f6541c1855f25cc1c4c4caa7acc62385ef8dc38ca1944506fd061ac3a001c21e9f427a5854e42815bf366d70a7e34d332445ef25e5a2d420a96dbfe22ac84c05f8e5c75cbec9b647bd340182338fcf60fb8d47a01b7de586688506f408a5af2206e631a4f72f7f1d64c4956fc13056619be510852433d480f9666978c90ae8ff8daddbe58b266e98cb72562ebf71d55dc7e3fb22ee119bdc4005e5942eec42d5215641e343607c043223b4105c2ad7d1f5e38b6722cd438c7d7b9cbac80cffaab4920195645ac9dc9f39b7bd1c76fedf811cd2b5c98d1ad8c2e97177a0d9f248507bb731163a198f42a47ea0cc3883a7691a13696327a246d4c609be87f71a88de0156c3e1d8d4ce2f2836cb15e260a12336c6c7aed6915a36acc29292b0e25197f89cc89f7ff70d18651ab1753488f491c488ab4688aeaae4c529cbb3a59927218cd8cec05e67a0c7ebcc4114da07bf3ff2280033f7b4fc12fe81308c72fc5ee2e72257884512189120c504315cd1cf9f37b2a42f642135deff4dee644e3fd8dacff694d80883d11b2a558cdd400b05003792e8872c48561985b6df5cca5f2dd89f88c87e42a86709fc70bcbf4a51b469f0ef7a5fd0f12491e084b15a2d80d189be604aa640782073f192b9654339def94c4c1f00c91aab70b078dc884228b7a7881bc70b3c0513f160a05e15b069a9c820d7117956c42fef9555ef16e8844dc4532b356d50441c2664aea614404c79a508506b5ab2944e21398c49f4094bbada4ea08dfb28c2c7bc8d916c9558f46e8bb313ced12054d4eac801103536bfdbbad811ac579d2020e9b447a075b79cb43c0c5a3d26866fa23f51767cae3d30cb5955abc2212dd342084f9866f9d017d13a5ab6195f605d5d26fea203fc240436aa260d274c11f131dbed9e3297b1cd1f2edc8ac02ad250ca258ae106d949a17c1abea2ede2f652f47d75abed166ff7b4c887c010dbd8ed169f108b1d7b9ca1cf85887c3eec6d1b0d492120f1e47119cd8910e6b8649ce5beda552b8fe42231d999b062093bb16e3cd62476a4567ff057865f7559a3985ff198de5591a660e3c62e43b3cd3fa0ec5bc9679476de868f5fc57f551888e52d398502d51e899850ea56380b3a92d0b615b5b7e0cc7ab44f64dc19959b381c1b59482a852d0c8b5a4deed0cdb70e07d00ee4ff44085d090fb5a0655fa6bddd61888a8ee9c4ab78e4c94e35b32be6256b6397be89d8b8fb934f72b512b34d370e2e9f544abb83acf6891f92dee91863bf83d0a3e8f0fcd0de454174c4f0bb5808444729461a643d72d6e0819443e732deff6dd0297f261ac405ffc52da9269c9e3a2e9421c67c57ceaa49206f7889328bc5cf5731840f376d11117a392526ea44bcff2632d3b1f18b9e6ccafdc0c31b9646cf815965beeb78134130e3591fb1a5b1090a17de88997392ddb0a03d40f9663140c00d02ad1b9fe57e92b17aa3d3768c83fcff1cf742f816158c1b275e444824e42ec01538ff88f383054dc1e5804f3109f31023dedafbcf162168667bfb481e71f852225f423031a6d36ba80224098fd986e82329d20a2f783f33903cb8a4e352dedc44a68736c4cc4f8ba7151c8cad0c73a1406bdb1fbe3b273bc706435f49e918df20e357f04c291e11c9314679c6b23d89a6e17ec4de6d615053c4649241aeb83cdbb743fff61d43cbc69d52d8147a955317cb8d0e33e144cb9a4a1e211e8ca08cc4f783f12b2d92fcd0dcb4c4066a897dc226a24648bd610b755a94040d8be3b4302caceae49718870c957c03ef958d8ebf1baa4ddbdf9b1d70f0cb466bde4870a63f85df7e00edfbb9b03f05ebb44d056dd47c4f4efb3b91ca9e1c047db0a60ca82a9f871a8fbfc955d112b13721b60dce602d7364559fc90e801ab83ee7a47df244ab925b3db1c5e5243ca1f1f05c5392f2e5bc4a54426cf4591d1d00215f7839d7d6219d54d24c15f53d83693924a4e83460b475913ccf45ea2722ec6d7f3b70499d56ad364a23fb47422f4be3b4cea362e98aa184757609dc71f6c6f1e027166acf1caf088f195580fcbb27bd6de2c34b0dbd36ce0248334fc4d4b568036bf792545782a934687bf69e266d41a6923332d21bf022ccc8042608137374194a26db34fe555c0666c384eb902df81b1cd361f17265e753ac7a4e4191e90fd78f57f0b2979e1d3bd0f1b2cd86a297156e39c7a7d8f55780594076ddf869c28d0b9290ee28db04743aebdd03d4d63f9f92f75c26163f2b91d5046ccd9971b5fe5127454045962dd74f83ecbc811d50b5eb124a037c0043c0fa01fe7d5c4e84a9c327ccb8d625919399005220f18466344c4181e1944f93c08107e939e5949d0f935d05d46a6b5a49865775c5efa9a7e51ffe57f9152034de0bd5e585d3d9cd1f6cb64a7d4826f0fa24e99e71f3b17c7c0a51896db1ca0e0ee14df2b82221cd7a14234f67857181de398b4f3673d50a9aabd70da062b80f7af3551aa6c20ad42c162024c8954d0f1ae9d156deaceb629da1d86bf86fb5bb85133a4387d0f43f3039dbbe9b4e37c20469ab462e463c23560c1ac752b63b018d94431da1fd1834089a1514eca8276ae00cc17640263ae2dff504a7d9f6d5461d55fde30d5b49383d917cc3ea023471044abc0fc15720da15a903caffdc312e4c1aee4ae5df6913fc702822f2629a1686b3bbcf55f1f9bf97c098c21960e638503b21da989f6a32f87bbdba32baf43b8149afab21c88fd8165548451cfb6dc9c6472b84ec5d42f6de52ca2465450c440cf30b2f2fa0e936592720681794f45310db3923f0dcf64d371898898bc9a25d062c8cf640d550355b7bb04158d88908279f49ca3e0a722ec0aa3db1e879e20408527e200594578c7c17efb91670f3965fde25bfe859499727c977d196d4b676f65d5e75dfc6e7bc48adea580f03f32cadb23d6cfaac77791b6fe3f2365cb4d536ac7779177dc3d244607477bb9be3b3bb5bb3e9c3f8a8b9bc32bb9351d97f79f25db20ac8cb93afb23ac88b56d57f79957dd6e7bcc8877997570581799787d1aa0af32aab55405e9ef5362fcfd2373cf66f5eb40dccbffc8bbe81d1392f17fa9d2e6bf6d543646896b43edbdb5d55ed03a8ea0f14f4bb9f9b7f324df7f469a73d8e062ddbaa2ed3add21ea8211a6322c3761366c2abbd76d671949a6e4326328c41032b21cd8d1b37c07c6af2c4649d7eea290834c61f36b34a2c8d6b011eb918bba03deabb28cca7ba74c8aaeb744bd15229a0ea7a793cbba576627b5644aa2755db305fa6827ce68bcca22b05bb649827f3cb9f6ede521d80bef73ebb88efce3b3551e22e1510f273bc8a530571f99877f998f73f0d55174bc5e920e4e778f2737c3932d98e826de758b0e36fdcc82afab567475651fd83cd8ebf516937f44d9deda83e3b7ebe5cbeac3d3bc82febec46ae3bf2ace4bb7c59653139c6238af91c312fc4bf72bc9d55d70e1d3237de259f6e95e49eccb3925c49fcdecb23131d30fe15e7318a0cebe5860d98183d4ef11d7a865345e4d03129f8345ff46a140a0accbbe7f22526bf1c61b44d62be68da7597ab564748535f870d5d3e3df1d5292828e7b96dc8f325803c5fad3c5f38f27cf1d8ae3c5f2c610eb519de875f2958dc256ae2d27f33a00d59e75f309ff39297178056d187791baf0202f3365e45751098b7f1ac7f795510d6bf3ceb5f5e9ea7f462561da07bfa9d56e97091ec22aef29f9c4d5b3816609867bd8ecf9123abeebb5025fdea1f6c747c8edf61be3c87bef1207ddbfe39af9f2fd6972ea443cf17cc971e94237bad02955eebeccca7ba6274bcb332ca56491b30cffa6f06a4e10c2f803cc27064940d79fa8e16cab684f51e2e79f919b2b2cebf5e1ed5e33df72828ee42f568dd33c2fc06987f79b7a151507c8c794bc75b22964645d9fe3df269269b0290672551b7ea32d9c81fb9c8631734c67f863c8e4334a7746272ca679ce2a4bf8e9ca255d295533079fa8e3215dbfe397ab67fab16b4e4e55f2f3a558493a9234e2a41e233439e3b479e2f1d3079be44de16f3dc2827dc355fa826f33543a36832344a09f92f6fe3f2304f7309e62505eb6e52a6cbc22a6961a6956df262b6c4304d37dac322a15dcc191bec934fe9746ab5063007404f3e271fdb5d0f6659b0ad0db67f775d38b2075008dc51da3dd78db7fb40e3ed3678a5606f83349ff6f7027f8094abdcd3a7096938af729a0004f01cc09ae9b6334bab7a24e38ac0a39dd19115e0d2743be22befc0c048567a0949eab1f44632994c0518cf00d30023316752b806d806f806788693c038c049b0129c03ac03bc64ce54125e02338199601ebc03cc833963bf1860b4e4710ca39471ca6491610c63b2ca9082a58048a14025a782c8a9582a059325c4640d91d2c92922264b05a915a48a48b120d582940b26cbdf25a7640598f133dec619cc3b13e3fdc731cc19d5fb8f52e64ccb9c49bdff48863933beff18c69c41bdff588639737a0e8839838239c3f2fea920e6cc4a6ccea8a460ce083167c0f74f0d31674673a6ce901ebf7f6a0573469462c19c11df3fd582940be68c67c474b9fcc9431c9c9ca4e9661a3ac15035daa30333867e1736fd185907034c16fd967c80c9a29fca0848c064d14765052c60b2e89b32901d183059f455b24d6e4010073c000211982cfaa52c81c9a22fe60950a0029345df255b80ab41b6eec74866ba9d824e0600f18e8df6187f688cffccc7b6111002e15ee47779c68f976740c1bd524846b25b2561be9a320e4d562ae66410ed31823163fcc5f1968ab96b9c55729ce2306f5530668ff1671c9a337656a68ea48ad83fa3941809005d32f79aa10e45e8ae3fa46e6e894b107fb9e89b9b17f933d481a4f3a24fb7ea0227497f4e1a280f93d9c7648db31fda438719431f0a9ecd298eb0fdaf074e3e5fdcbea0a62f36ed81b29950b6930f05c188038a773e719ce11e4c9b11814b3bc33b230e8674e38cc6f88908279f1311e8177b467b58d88c39dda6858db3aeeb3af1a3276e08d1cd5b51bc558ab1cb710bcf566e24f36c5cb5a82bbc8e2a40013520a7839348616b7366327197e956495bef49078a136cfb9075a27b15b541b1d9999d8d53eccc3403f794c20660b00b004fb7aeeb3a9310dea9e410b8b433a1195b78ab34928d37eb85ffc8c5ec81aad198fb23d9bf33d1e5ca1b75899262fb77250680379bb838c11a6003d26c620003c21ca4e0ba4bd3cd74f38204d92ab63f2704b6ef7b8c3294026e46bafc7873c923cd7728f1151d67a3929116c323de79ae9636e8c9f60fa2efc34b4b85059a33f4ed8c8ae94ad96c54a00215544411c534c22eed2c0001d8a59d613c8e7827359b2c18b65f8eb7207039def2a9d6e5d3131cd80078fa39d5bc9582f9caa7ba6cfc95824b16003370ba4d16fdf23401d0eab41e87c7e3f8d6cbbc4deb659e6a1b1e8f03c7f536de9f476ee55949d6dbe4d0aca7dac6a5a98dbf9171787ceb63320ecff738aecfe1fa1c6fe3fa1c3ac7c7fca76d787c4be3b4fec653205401c9f1316f93e3639e6a9bd6df703d8f2fe9cfe895e35bcfc3258190e6d3ad1c7988cc7701909ab605f08fb7ef133f51ab74b82f7e0ef7c52132fbfbbef4393be3a779ee0a84345833a1fd1e6fa4f7ff2a0096b2b76dadbae66bda822a501327b65b2624cda10087fa64d3a727bee280c0a5e9760acaf13a3e48eb77d8596bcc31be766455f72eafa29fe3735e3ab2aad3e403215fc7db90afe3e9eb70f91cfa06e65dfee6e5c9cfb1b44f5b25a34906c7fba384aa8b555d36de1f474ec1728a96ba91533279563266b5534c3c95aa62e5048ab1c94eca89242fc0a16eab53331b7984e1fbe5781b7f7ce5e30f5067291d7f2c975d489897121cd2755d376448486367371317a61bfe0078a560f701bc548032da594b6fb7db78b3345f29b1b36969b7eac23b1aef50f25de60c1d872a9964ce8c5e4c5612b3c7e842ea59c93b46419501a38450507c95eac61b0f1bbcc0e3d018c5577ec3c076a7baac1233db034c7ba2c7cec69bfdf11614deea6817821080570abe5f9e7c2e15b81c6f7366ae6e73e6c6f61f87aa8b4cc1c6a131ca789b2c32e01255c33b2924b60ab844d54e4135eb04680c693a7ada334cc0c4628325aac6720adafe7f0a3a3d492171d7e956c9d448e629279c89928d711d8d647887bc537039de54dc781ba30c798b56d738f3f4e9763a7d1ad4570abebb3cf99c7ce6cc13d3358e271f9f3d8ee5e986c457de8f23ded178e6ab31e072bce15b75994ca369348d37d3cd7433dd6460e011125f996e748e64a77001130ade294d378cc4741b4d37531498cc7843620a2750d8e578a351d5b8fc0ef3e5a283803f08c2119a788db35b75e119e0d36d6325700ff0ce102ec71bde59ed7224bb95e30ceb14e12d6e8b5ddad92e47b2233bde8281ffc888d96304a2313e67eef394e36dbcd9d9e8e1d9b64db6ff38ab2e97f71f69d5453e61fb732e59a692645e215b7200e0ee83217c8045155210c6c7f560641b6dd1538e866aadf5620147bdb7d61dd47bebbdb5de9a83da3da9dd93ee49addd937a6fbdf7de5a6badb5d61ab40447bdb5d624b7de5b6badb5de5b6fadb7de7a6f92244992d45a6b7d7299b838964872ad8039252e0e1cb70a97898b63892457c09c1217078e5bbb27f7dedb3db97549adb70b252a8e5a6badb5264972efbdf7de7befbdf7de25b5d6faa4d67aefcd42bd1547adf52649d23dc9c1bd3749ed9ed49aa426a93aa83507f7de5a9fd47a6b4d52ef1492e0a8b5d6fbe4de6a8227549d1d773943938e3b9d7ecc3738ae30cb82ec85e29adca89a50c2eb04251ebc4e8fca27f02b409164f42f044cbffbfa2921dbdef9d0a70d6daaa990af6cbea2b79116e9d2a316d501599f94fdd4a4dd88fa46a96c84c2aad0e735f1167dd11c9520f98e8ca644d9b1d14ba937f3900401536a39a7e267974ec5cfae51dc355f2efa2ac2573a3ad78e46509cbc968853beb6adba4f3728a33bbe4202c57a3b1e9299eff0e778b0b7e3cd7e7c95a2a2fb13e5bdfd9a783f1e144e7a4f7841a031347b4d7ce53fdaf371d036b26274051d41e9be527751df292195ea3afb5d17044afa4b7104167b511dfda150d09871f41151ea73454ff7c464f9fb4cd690af465bd8d3734c465d90eff0ef725785af8028a5e37f4538dd33dc68548291042fa0d7e32d7008fa2a4fd7947e6e1bfcdc8cff3e26e3c1ef559f02f053efc3bf19f9f432b2e9c7acf23132ea5599e55379e5bb67f998e9579e66554d1856f122fd47e74b86aa45c76229c881c16030d4c762a78fb17cf831d3c7569ef41abf89a927e40d5552a7923b22986816be543cdbd502a63a2d170bac027ac40a5c305bd5d509793ab4073d12869b87440c8e89c3b3754247c2d0091d51c360e9db9143878e56113a39421a4fe77bb013f2ae58626331bd2c66ab0bd3b3d11edd107abce884aacb33a21b0a3d1dcf46ea2139e12d8ed63c9b67f36cb4a7a3d121744bf4385103a72875ca11f907863ecbd16b3dfa79275c2d0dda83a31cbd42b89c40775f2d26eb0aa19a8c1bf32685e037faf2ca442f9bfb3af1d5fdc215eade3b6d830f1c687436541acc071c6cf071c3fe88d025a86bd4770b27ef94ba7fb0bbbc5ce0bbcbd975349d052b139576bf70853e4bbb5fb84295467b5c1f1a73bf405d23f0d901f5a13dacd52b1a5353e90ea82bc8f5c1d6dab9e9ce64113159feb24d67a002eac285ced50297b726946b34ab23546937215b569ad0bf6dffe0fb6a3159fefa0a4d96d53f0a307fa60da9bf5188e205aa592b0a693a5ddaddd57c75e9a84375a80ed5a15cbe4eae77ef05f21db27bc45ba8f7bfa8bf9f4befe5df2befa1b2ca7ba82cbe87caf83dd37ba8ccf21ecacb734f967f1685e073f9e6efb9fc231be640bfa43f7bdf3007fa35c4c1009c1735d8826dd3bc6f98030e389cb401b8298ce0826d533de7aaece613a408f251bb9c816daab4d26a51da28ac12db1251562dca1a45133190e20a922e2b2c4f610417425dbacd8b1a6cc10a5097fee3336e0855d062a44b8771225dfe668288235ca1736bb55aedcaaecffd69e22b306027b7e62dce8b1440c962fb5f206ffdfd02bef788afae177049a915b48607c09bfb1adeaf218dcfd53557c8095f6901d79ecae40a4d20aa336d480199a294ae4a545a5969da089526f435f1d6a557e85ee77207c5a66fa9d0a6fffd9c9c4cc27b5a2ba574f4d70bcccd68d00e1976496db520ec1aadd59ae7e11c32530936b0dce059eb398773c8f0c821c3e2790e8eeee590f1aae7799e67ade779de18bc1c329e37bbc025add580aa806d6e3667284d822a417b409fd83eabed38126f75b4466b2291d7d97a3b35198940dbffa32a2290659cc1f2b2a235a2d168f4930719ee192ce35ed9d108ff280f01370914fd8845fc72f4226d9379c8354023cd438de864fb8b4ebc457f24fa9128beef4f044e1cd28cae18b0ef72e5954536f8a35c827b2452f952f4a216a1f095581389a8f657c923300f01494f7a2f7d495f84c257624dfc5940f71ea05aacf96ae5e2cf04126ba213be9aa2022c6613645be5499ff82ab9a45be5a7838f1f5c21812b2b6011d3af90c0295e00838ade03f397ca11dd3eaa4aced9a33cb729b3e41bd2604db1f821185bd443c06ded1447628f4824016ff93ec96abc35f71440fc6cff0c788b520186cff6bff1d67c180c36c4ab9c516216c807b0dd330510407bd4e3ad52fcd93fde9a514839b2fd4528bc35bfd8242d76f72d282694de8634a5b0d401991868cec88c5a4c2bb6ff9c2a1d46ef5f432a8008bc62c074d3508711d538d04dbfc0e5fca9b1e1210cb87ee809a13f42d8e514aa69624f204ec9049a403520a8a91070f621f2b83bab108154fc74c4376994641843610cfd5821a80bb5054adaba2866cc164e41f899827e75d4c138eb2cec04c4e9eb462c469b37da50b31135a33d4e51cc183f05610a1c6c17fd373b19613b0f6a606a3667acb746fff2303762c69b85a16c36a7987812b3c728a331fe55f83881a289132f48b275fc8e2f4de0294889af681f299fb8f83e8bea413981f20143540f18beb8b83c7d97177d7393d33dcce774fa86a7fb9b179b978779187df392e3bdf742831242d9b081f9171bd6dbd03730cf8ac9e4dfc82edec76497bf91615e584fea59491b4ff58bb62f6426322be9b39236e4b3f40d85a16c9524dfe56dc877d1373c14a6862f0ff3e5bcd1a880c43cf936314fea1b1efa37e48d77d1372e7f83be90171e6aa68d9b4030d9873f77a9a8ad11c8575f8bf3de05e6471f98574519b6a7769878cb3f4a77fb36cf7d1712e6cb7ff972b5bbd1eede1361198cf110995dca9686ff07bb95cccdc524b99833733b8c07fb04c6f607a1d85d9dadfaddd339c37df73e67bcefde1bab0be6bbff6ed8f8f98a8979d607b9f136348e8dbf6143cf4adef8f93debe78b7e5a05c4c6b33e888d67691c1e9c59c9d2026d7f1b1eeb6dbc0d8d9343db1a4b4ff14b0b9be287127216cbc676b95c33bc916332fd785097eb79501efa86baa8ebe7abf52575e91ccf2353d94ef6c9eafe1b5158a06c29b0b3d94e302efcf48569c8a2c02463c6fc1e541350b51eda6394a19a405da830a8ace736595684415d56888e0b2bb4fd51578c322f5c37d1836a02aa7603bc67ec7336c0e578ab794ba543f7f7af2eef772927defa82463f3e3f7a350cb483f68f645bf80a07b7283752831ee680b2a176891aa2314519f737de4c43a629b71fa814bc6968dfd40575c13c9de19eb6b87ca9427e39e2c24565b6d332a2953fdac136ddecece4e3f2a7dae9e78a518a8b4b26ffa301b50594ed45b4fdc7b107d3f6f856075a7230f8d954ab6ace06a7f88a0e8dddd88d5dc7715c57b355e28db71aa82da06c3d281b6a0b3d3d3dd6258c5bbdd5db89763ad1aaeb640302ed71aac249a8c70a73c606db1f253b5161f64021a127211b5fa03da8ae61d018771d5818b4c7090834e6b4535d275a254fb49ddd3d15a65b477e79638f4a7833b8013165cc6454c68ce75ae08af188e8f73f4316bfc71177a17a043083c365c397a958005a3c50b5391362d53e8d7a94d1b857732dc0a31744d8346a781f3f36a131d565e3861d31df43db5ea66603c8910aaae14bffe3ab14cd57aec45718638d318704c6333c0280ad92317ece96d1f4a79f9345a586b633a0ff60b2aac64b56d5a851c3857c99cf79d5f8595daa955601b9f1326f73e365f40dcfea6f58baf4768d5f699b1b2ff332fac6c6dfd0b392353ee75543ab7ca0bbc69723100c0074b9dab5ba6c5aa5cb98169dd2e5eaffa4cb51afe812abe8508f461a60acc79aa747286adc9bcb54124364760dff5190955fde4686d991555d8e677df7ac1d6f43dfd8f81d7fc38ac9aaee6fa880e8f898b7d1f131df7d8cbee1e9b44dccdfd0372e1ff337e4ebf89cd7e7acbcdf467ed11afe9555f46f7cce6b67158579fa30307f43dfd87898bf61fdcbe7bc6ec82afa329ff31a401ec0df789b01fc8da77fe38697d1372e7fc3df903f80cf79d590c72996461ea300edb821a768291d3906908255726c4267930164f26fc82e5f439e9b469edbdb3d39380d7adcd17a3c22b3e1ac9787a1c1e81b9fbdbcf8cbe7331bd9652c977d3c728e77651dff75e0a7c35eab47a01e544f0fa9511e6aa8ba2ccce542922439fe90b9ba641faa24d5a36da892a828e0eef1ce8e47c444b96c019841d9743043d950357afa827e0270996ea3992262a68018c1a88da028954aa39a93ed5fdbfe2323747af43359421bd726ab24fee7e3248493cfe94445181414c47960c874b2ed0f994eec570fd8af2399af9ceb3a274e9cd89452eabd07bcaf5f80110c46b2f18bf1466347b27124a3e3f805758d3aa023190ac6850ea8eb44044a769d4611e134b4bb4005b1fdbf2b057f077242608bbf3c8948d77eea088a7c2702f6d677644609a1a0f80ad6a16c2821f7bcb18382b2a16cdeeaa00871d55a1bb357c0250a654309796b86010393e799b88e3a6909f9a4be39c16b1c123b5a4ba219e20082e964d75cf764754f338c93dd43b13b58f7e53884abf838d85ff9aaebbaaa6baedbb728a36cbe1a329d6caa51421a0505651b19319ac12889911209001390801d1850eb32ca890c8584f6404531631c15b4839a62b2fc4b940d1c30261967fe89361abbb433bb83fdc02b059f7679f2b95230dde5c9c70787341c112d13539a0ae9ab5668f6cd32c4a476569297da99ac91ec749b334e3392a970a89ba6689b8349c12127639a2aa9ebf4483659d7495569a97646e31332ce66ccacfe67baf53783373a82cb916ccbc0cef0ce911d0b601a429a314a0eb44648233e2704f69fdb621d781cf2d548d695b81b87c629db9fd210e250af134ef0ecb823f0f73b42e0fbd4d61aeb6d7cad8d230c699790efc3c79baf86720a96d219a374fae299b79cd81ee8be9c4e76fd5adf662fdf5c75399deceebd7bc7dbed36ab1d329deceffb349e658ce4082e310c7039de4cb4641bc9ba6b673a740c1ab70400b0ab51a3c60abcd9f64c5612936569b60733c6e2c0c5ce262b87b95153e0efa255c5305bdc5cad5ca6cb773f2e9355e916656bc464d517525df60594ac5f9510030eb0a581954d567d0f0ab8a430198579cbfbda7dadf55964f5598e784894ecfab36461b2ebdf3007cfbfb2883d42174736f8fe5a15640567fa0ed76511bbf2e0bb2e73543638672f59f98f8607700f94618b465a65b3f2a7df61e54fda6e912e5df49f2883ef796e961d5fd56739e2abfa251aac64188fbf2a88caaffc8ac6512d39fd7cadbccabb2ecd00fbf0951b846f3065dbcd423dd34d453b15c85baeefcd575585c30e2bafc2816eaa979cbe92378aafeaaf68150e74bb5eb2f22c6f3a99b20b55b2fe97fde6abfa2cb9d62a597f942b90afea1096ed2bda4b32c03e84c50eed3a6557216e739b2d033db86dda767d91901e6cbef2af37cf733d7228be7221df51ff09b8749bdbeabb90b7e6ae258b6c688ab7ca1ab4ebd7d261bbc24cb35d597a4eb5be0fcffb52d345c739434522514c95e3ae5960aa925dc7654ea36a0fd028f90c3ff8fc3fcf34a829f07d55f7f655f6559d9e9c5659adbd1c8e5e60ee7b6da640b817c759f72abe49a3d44052e0a991f84aef883d3e29f52cce7c45c5d9a68f64d317e1008b9f53eab9b4a2129166c59948732dd27c455f1fd1325fd19f89dac76d3808636b9aa63d6d48d3b6a679cb5ffc999cd843bb9f784a488387a4c0259edb6748e8e9f4d4f88687fc4b1c45846d8a6d1f977d8b4cbe52bab929faabaef843737f91be58137b7cc42622d01351888a556c2a9622e79ae6ad52d4e9f156a96b9a89b72811e22eb5139bfafeaad74af392aed3a2ac92f4a98844b6e98b3ade2ab15884b7fe9dda90b860972b4fecf971b126f6b88b3d1a083c82c55b43c05d3f0a4b44818921208d528673165f7d36cf5fd11002975ebdeed5ab7bdeaa7a09f54067b2fd47fa3e3ca7a3fe836fd2c82506a97bad34f8be0f3fe1188feb02f8ea87efa03fb38f3150faf43f1ba7ce838db77e789939796cfa75524da7ad56f1d13de79c3587b97da0659873cee94dd67c9a2f90afe63b0abe6f6277772f959c54dfdddd7d5ed29230887d5d7d7382d7ace409684e75b7a2e6923e9993fec4b09ce51e305910e042ed8a71d2f0230db3f53257bef211f5f2c3575e0590b9f2dff1e16127880795efeee0289cecd285029e404970b24b4ab3983323c0540bb387787a7f0a850a798b6b89e8146f85a42f3d7e7f47e22d9639634a62f6f8c08c81798b6e8fb98e17e1ad95f707431290de22747ca5f2200782be7db0b0b5b00fc562ae6c584c2bc8f020e3432f1518085a92bba436d18db089db467d445d7a98fa3c3149ff1deab34377a8cfed3acc83a3a8122811448e07a739e88ecf0cb24d2825bd5d77b1a862f18d07563b57c03929928e0a81dae6ca9fa3947e47bbef9b21a7cb1e3677f174b2bc214b222ce3b69de775f6e70ca59ca63e73a553970a9f33e4f68f4da02b86f60c5756421afb97e3388e2381e008bc3dfacf94e764814f617683cf223e8589375b7cff2f4c40dd22dd20f82ae10e3948f400e1c5114ae08942165e7392e28359cc25f82aff39c8029e7c3838374b06431a95ffba4c75445de66c71458f0fbee7adee415d0e01f7caabfcb792a90c08af7c4975ba497a3b0c75f0ea8af83e5c25a451d114832f0a7fcc0dea21e0ee5e14852576a7d241fcee456d3508c04d636038bdb9029fc2c0b2c8ee7eaec027650a93f9cadbe083210e76831aa4b10f0ca94e11b50966093185c18c38919086ea224ec0258cd2a82fe78da5a24013c7711c67e7f4992b1feda614095b38b2e774a1bc6db31675e2288aea80da00c5511d1a011e22407564e80ef77eaf87f7e9751ae2e09bfa38c125b5754e78eb8e366a9bd756951f93efa0c13769942a9e0f071e01ca7c401978047529c0e37c144047cfd37bc6ccc0e1392704ce073c0294dd98ac79a580ad053dcff3bc1ad2a8c4747c87ad02972ab039ab301a7cb14b90b64119a5a5b74530fc45f13654bf14a7d48cfeb360cdf7149471fb4ec187ea328501da6d8ee21b74b0b4384ec8adc32a41a8c07c25e3ab207ee890a9aed18fb41019194f68da8446cff33c6fe6719c8c8c016615442121cff36698fbcfa32bd85381c988429e27230ac9fca80293662425249acee6de67ce5021dc139c116c5c14368e0ace079439146f75a00c94813291c8ebaa8aac650a2ea8b9e087739742d623858c9603cf236c71db3f8fb085908eedaa09b3717b717f8330a5b4a70adbfecf16367defbbbf437386d66a5ff4f4afa779ca3bc4bd4cadf65f447510ee6f503e2fd1cfb04674a7807f972f23a3b3ebed64a2ecaa4b1efb3d1da3b229b8b0adbffd4ef394ff95e460de12e81154367564f408d98fda0fda6388fb717fd404a95122660c6c9780ae200a0926cb08098098e2c724455f65b49e6b8449fa03dd60fbdf1cbe8f8641872877c318b2344a941fb407a7a90f3d017551257c341a44b140f3e9c16d4ec5647910ede1564c7f8263b1448909da17b721afaff33a98bbee36033df817d40502280e02eaa261507288a33d38fd83c6380d83bae81113ca0fda83fa18a9e4097c6a1c154ea0c534525db40ab40bf409be4ff0dd25fd017f56bce76e0fbef27fcfc3d80375c7a3413448c4bddfe6cc4763c27330261010596cff9d1f1595fd955a75a96c90d49b4c2a8bc3f2a957eae7cb94f2db4a1ef7caa746a74194a6c47439106dce7c34b532d2754699a0652176403cd800e9316c37325d0a0e645d0a546792feb5569b7d7f33189102900731a4729b332edbdfa59461b65aa3f257e0f6bd0b29372fc4306bb8670d020973e50f7affddfc565d4e2b3d579100ea1f0f93c651a4a98d3e197d4983ae15dfad775612f77ef3dcdd7aa34c059014820eb4b2da14e809d0a68d3c3b695e04515f4d64c81412793a27eede7b4d469e60bbcb79428d2b2085820a39c1022efd5693982dea93faf9f2f75b9d0961aefc51cf1264e5531a27f52bcfa271786c52bff23863597758be14894e9b2c1bfd71a0ea42e9310ba701e9a07b054cb7d374826e3e7031471df760f6db64f9fe749d09c1b998e448975567675181b039183b68fbd31e26a22f29cd9798334d4ca759b1e9fb3b139307b3d595770b2118e9aa4ee8b46baf500bc8853838d0135cb78aeba8e4f9d2f946a23af3c06ccde93589b9f2f7ef4673d814a7824e0fbc27b0ebb8dff68f0785b7acdffce6378ebbf6620f40127e92ec1138e9103436c46c5117cc152d82ba60b63a24e6ca777c86c44c95123fd58738e1a7726478fcd01e90fa907054a9e7b1513de9472da54aa5542a6f8618e3839f8c19f3f579be6600f37c8d9c873dec75b8a685e28e7e0e7f864cfa2fb33c98577e869cfe41e595f0a766c82aada2da82dfd739d131d15e4f257b7ea8e703eaea6c41414f82bc28aacb93e2091d55793d73e6f660ba3c2b3c5bcfe57ee0feead0a35e1362c74447eb98f07a9a9862ab9c502ddd0e10e817bc9e19d309cd18352476bef8828c1a123b4834d109ed788bf608d5be6fa2e7fb6834d1d3c46c7953cc957b356f8a9d1a422b78794913277aaa2bc6433f2684f71202bfbe0f61b0b0f9aa4b3257feddcc57de2599adce0a7315e42bf756f7335756a83a39e1db943e7cfa61f8247d8343fa0f8707277c306796688f8a969ef441c217352914ffe606277cf0796cbe277d49abe87ce5f13d9b0de9bf9fa4ff3cdb9c79d9fede5075793ade577108d67ce51ca5770b5c7a7bc713aaae193b296f48c68b74643dd525eae9f1e1b407e4a4b34111f21d9d135c4de93d5b256f7dee6364f067e42ffc1999f45ea69b8634f563e4f99aa1ea3e2d68c21c0b9ff4decd5b244fc88be2d9ba9eeaa2de4e0fddd1a13b510449417ac2f60fa550d3a9713a9e77cbde1534f685edcf05cfe6e9cc90866e1959fc3197be7e300f76a1fdee9a7eccf335ca22a0bb66fc52f9f4aaacf2a8ccf2a6bcf257fcd27bb1952ffd5579aa0efc7e54f9588ce563e2871f5bf958e949dfe51af04b2b2a22cb49e5553a753bde373f4c831aa903c3b004729d079248218dada9b0b0b0ac5c2c5868c7719dad20bddefd530ecf366f9e14def574bc1a8df11878322f46ebd5bc187852d45a5a5a5a62e8e87845501a5c4b778648e0871fe47b92c621fdf7a1c6e1b12169554df82a559027e9c709358914861f3e4ee9493f5fe0cf9727e40d8974c0124956caf3853d995784902d949d10dda1410dfc1933cc906738ed9f864943ad068d1a6a5879badba28690a613d2f9a9a29f1e5b8f6d62d103604477baa01d9d1d1def87f6fcec04edec04d560be18d0060813dab71178741a65c264466595c49bd35489afb610b7daf31f0b856fd2701effbb05f6f1c3c3781cffe70fde1ca5f4c8a679ffcc1972d3f731672a15261534abe6e7eca94bfac37dfb5ca63a99ca9c1e3182f1887f5c594ce9cafaeafa25c237694ccefbbefb20a3e7340e87c363c3fde871baff9ecbaa9aaee3381d5cbb8d531cc21aefbf8969a535b1cf27ada4f7baacaadfbde88370ef691cefb917691c1e1befb9c7117df7f3653197bfdc55d2f6a033e0ab7973b743cc39e7c8a3ba7c4cf28723c05b6ee3adeeb197e704e78aaee8fc9179bcadf68108b87db8f170b8b19ef7ba7e8da0b63e0264bce25aa9189cd86c50f81a90f3b23f6990f365d35fcd1952398d500600bc4159469ee92bfad2a924a51f05298f4d67edfe0cd2a92e22744887ba1669538b4ac01cb34f439a158c8cef58dd80efc32be8f5cbe06be6a3baf48cba4f9a386b913615996cfa53d4a92e8c278b07a2acaa198d5441447fb3c0a0afc4a9aacf63d63a5fc71537250081c9a66fc30f6f4d253851c5a66f23841af1f2233c810bfb93616197d32748936c1ace9f61cd7d1fbeca467c453fc6fdf5be63c07cd917757c45657cd454528877f37cd95525a928d36211bea27fa1e0f9a5a823f68872aa834ef81efee5a97ec9ed5935114a72cfe94963acbed1dc6d6a6f34179998d274f08dc81ba9ae4a7f388efb0e0b4ca47b82a7b5deeabcd5651f627f36a42989b4cde86fc01f85aa9a12f83314fd8dfdd283fa464829abba37f21a6555a76b7ac880afb8cfc32ee321f657c12e8f86d89f05bbec3afbbb6097bded0db1bfce2389bafd897207fee82100fe48ab3c087caff2b40ac8e84b6f33fa92bee1f1fe8614ea9bb0cbd78703d0ed75998a322722429b6451cde87798af91c6e1f11ec7fe48e3d42f751bbf8d7dacb177f77bdaa67ee9b96c4487eec0406e721cc7d91fbd8dfd91567536f5559d1e7dc5fd7c7d25b98771443811c8fa280b4f24ca73e29a63bd2ea167dbf7e6cbcaa8f0a82f7e107f152d6a92107fafc6d6ff1e5f2b8084b88e51a0236cb03d6d6dd59f166d5babfb93340e0f0efefa20dda55f797b9f747b00aae101c87bd17f231fbeb205f831ba5be01a9999cc4e4bcaf4534886ea6bc1334cb9f438affc27535d250f999a4eaf469a06d0d758fb170a56d28d443948059283f8933e991afb9f3f8ef8f5491947e57df4dd5f19d9f43332fe1932cf9d417565905ec607097f860c8dc363a3f2e1e3883540dfdff7e19e4a56895e7c153ac318affa11e9ab98559e0e5536e1fb9f3e353e299b3eccf86fae897559355f748f1f8ba13e66fad2c74e1fc3bf9203c3a731539d92092563a9e1a1034886c64a8f1d14556e0d0fe1bce90092e911397ef2b32d4e8cf7affe3832be5e1931ded23dc3884d884c0706dabca7b112d24375893d3c6829fce5bccd21962f258e3caa8bd27a7e78fc08c1a0cd1392811e6cf63d1e42ec7b33324fe93f0ae20cbe88c36313e3c3c791f1a45fc938313efc61f42ad18cab05a63c4ca01a1b6f91b69d51b6751ed5f595b46f7fbe7f783db0f49d10db7dd17d1158fa19aabe25487dd207f10fff2b65d5fdd2e7bcc0acbafaef7df1677cceeb9b53bcaffa78dcefbb6fa4bac69b901eec0f29e22d5a04ddb1b8f6d8b611829062ff1b5d1e36a880e007df068f7e86be91a155f7eb48db885fd23731b44aa481d427bdea6a9bfa24958d7ff8fee18baa7cfa9654463d29b37c9857dec358248558fc4f5c31a132ddc12ca7998a904ada985883ad904ada2fe51e8c80301f36d878cc97ff782e4661e3ea319e499f93992cdc7576d695adef96d357db256a7deb796b522c6e1f8ebd0ad3fa0df6eb4f276b6671d2ead5585def37e8bc0e77d9e77ee5ad1f7e28e2ed2218c65df5b9ff6eb7c47e1177591de3e95e08ef659ffb9a6342ac5ef575c697d5e1f1b22f84f7aa5fce299ba3b1ec6d9be9ab4efba40f523fac4faa8f437afbd375382ae6ccfd70462925899694de87833edcb3bb97741127b9f7e14438d9884699f4741e0ddf88a04c628b8ae584c22631a71ee7fc1f913944640ed19d2332254470e795b28f4a725f0077f1f890f50f2a91e6febbe00d699efe704fa1f016c95b1cc711f13047e33c6ac40b680c4772a48c0bd853f967a812adbc0fa7544c16f734d327d018ee6ba65538f9c4498fa9bee53daf89e1176b6250f06681f3d35025d235a595cf59c848a5632cdfa26b622d9fa9cad7d4889d1e7fce319617a70834675e9e06712ff315478ff88adbf11ddcc7784622ee2950cb7393e338db737468d3f84fe7f95265554e7d3b95e49e9b6dee695ccfe6449ad6469a42c151205f71df71404a462da2963cca3ef315f7a2ef450fd648bdcad3f0fb2e83ba86aafb1a7ebe72ce5fe383fcd7f05fe31f8764cb948a49725f691636f7940a9beb389a0eebf938370b9854b9ef9880bbfd83dd34a351a6f134fca75540489f3f48f8ff5e75d5f8d1e83f2e5401c1188be28f728db7297d0d7dc3f3fd8db659f91af44df82b3fcae5b46d8e4696f134e4183f431e5fe7199fb3ea3fb77c27e3551f8bf12d2fcaaa9ad4ef305fa90fa2f2a221e7f912e5b9df1b7fc6c762323ea6fad4c7627cace55566c83495961833522a1963a63d94090d3ff735d5253ef7dc0ba9ae95af419d9e05afac882c990eb94ee964e24e3807e6aaee4b6f3fcc2a20a5b7afeab44d49db277d7d950de9ebe30f4b8fa3ea3efcf9c21fa4f4e28b1a87a449a16679168d237e58b9a74195e4be94a95025b90f331daa24c73d7e92c33647812ac919f115f79d2ee22b8ee3fea360cc7e7d959eceff094948c18f18b68055ebd5da4bc5376994a2ddf62b0f9e2f95e8553674c7f839f16dcebccc99b9536f7f56ec2bdbe9e0e13becc778aef7b26fa4ba4c25fdf951496badb57496e74b866ae54775511ffbe504fa6127d0b6442a693f06115fd9b7457c655f887f19f11d3728684d786b3c8d0019397c53069f85f431622d9ffa6187f98ab1bcea55a29637e5d453704e574c089957f83af8557f3e385dfef3e9ec31026f04e3a67a49fdb2eef99e4127ed7bd5daffdc7bf0969d362196b4edb66fc4d2d8b6f6e98fea92a9a4b5323232a3d4aa8592f65d6f5b63dba723177c5089744d4bea3b1f26cbfe10c6188808613aa223fa9f0d55352d2da9f7b0fbd1f82c1f43bd4a87c9b22fca3cf8ca7ecd06a0a4fd704a61dbf9846d7f4c96fd8e09f8b6bce979487d8cbf35323e9571fcc16fc938a96fb1446298ae16300f1d32db7e2af388be25e3d40fbd6d7a96b7313d4b7dd35f6dc3f22a7de3cff23edcd492c34f65b07ef836f5c307f73766f15119ff4afefe9455de944bcf924931fca4efc09a582c05aff2b198f8b1d2871fc31f233df83f7c65df4825ed93ece34c772a695f25535a25ed877956fb25d9aef6bf6cc58f48256d8d4680afacfd0b05d3968b454dacbebf5dc9e95cc4c29cf327497f7e97e7dc56cb4c16fded0391fddba98c45f27345e36560f60faf30db61bc451f570a2bc313f3e6c52ebd09645de0eeeeeeeeeeeeee4eab53777fbf5ee9cf09f3fe5d9eaf6b5f5e9e93f436ad3586073671842e940c1d1952423fead5eec07dd22869dc7611f7fb940a5d283ee4ab28be1251cfa3eeee2fca4358b6fb9502f6ec1b0809d894c13e02e79c09f77c1b181a43707769c8e60c6b572bb3b2ea3a9db4ebef9ba12897d63d91f7448a18b9b1ee5e9edb661f8cecfb9e4bbcbb5de66c1f3ad59293873414bbff98db7511dff776f7612bfa042bbfa28358f96f257f34d4309eae7bd743eabece8d328b8ce5887b222eaa4dd727a25c833c5728373cfa2d5ecc748f234c248295456e15f2d5e32ae4abfac457b5d62260faa5f730870a458bc0d0e32dd2d76771c25bf4ebb3f8788b646595ac6fefb8410a529086b2ea1ae9d2e37489455a36ca55a86ee1ab89bdff4a212c477cb5e33bea8bbec0a2c4577526f2022e59642c4cbc555de3577bbf7e75a44ddabb65ee7dd41ff38f216030c9b951f9c710484c726eb1c43817b99bf435a8ba58645be0e9ab591b0206bba4cb0a65d72f2181555e0c23164bd1f69ed6f73c7fd274fd03dde5b8a92e723729d463a5c3a8742c1557554f32866604000480007314002020100a8743e201894822489aee0314000c7d9c5470549e89a320c77114840c42c620620821003020223233630100abdbe60593963e1b286c0b0eea850dc4cc3b210962eaf75b63a5a6258c86e03bb094183f3ed14dbce4964bd23e1649e2c5e8d158a6f10268b68b7f3b3f81f93e17a62112a0e20180c8aa1cb92c8cb8c43c20f45ee6f3ab956727fd6a0ec581e4129fe20f006dacd6ef84ca5942278f3c6a1963e3649332d8d2575bf01e9281cc780b2391e8afa1721ffa8c026af3201a129c211651b71b06e5711477515fd05203756de098195e34154c17a7773c4678e2c49bbd08b83547580600142018b87c642b307d4fdf1e720aaa2d1bd583cd4895cc4056d0db2a06339bfb43f62c9c3152d6cfee3dcf0aa09f87c295ff6a3fa353b68cd7bb62c38ed206a037ad163bb7b28398358daebc7b6163b20930294e82841e40238a2e63f03c3ea4c5175407344c8b604564869ce4640539fe1238d2422c678bfc2fc22bd08459af01a044b98bdaa0eee8b091449b5c23fee7259d4b9f5188f45c231335f5aa5c63272b81a24a6e136d7560a06f04820a54dde1b2b55f9ab694037e966ea92f9231b46726ea31107ff2f759ccb79b060a44cb4a31b50794fe38810647159105333b538395858c7845be61172548ee776d74577f487406e11c6684f75adb8fcdac0e45944a91a17a2a996fd10d2edffd6e0c7fbf2d30ab014c92fa4b1b1d86590243809d417ecc82be97e13588750c3679de8a451d4525c053f4a6d0a2039fd30249ddc2e511a93431a99ef007da3445470518fd5f6654712cb5f03a039e2f41affa1623197ab2051e9395d700f63e11f34679579cd4e4cc3822063c9208c01cff549d55fdb50c262c00a7a5e92e0f00b611809c1600a40a00171b833b447da7ff9e378275327b571dc6cfa73d009b2aabaf2f32a7ccb345d8b4e2e5994b8d3b42baff35ddc73f3624cd9fc00a339e9f0e2f939067fb99c83556848a2f071cefaef489418b36c3b85c20a1d7cdf87a9fae7a70f498d1fecfe2aa0311395c68b862adfd0f6ed9b919bcc18ba3107379a8a84b4c06020ca0e0e22e230d05f024d56fbb73e53a2de3f8ed4014a95c36dda28830b278766e575a1c8daae9701ba1152ad02a4bdf4c2a525db6f05efe434019bf06cc30c22c1474f6b06723ec3b2db76420013e18fa48d8156813a62e081628a6846acc3c8e9af165ab4645199f49cb0a0b6393460fac0db6434396a8e2716c890d1622de3c2a6a982a1e6a27403265d6513b7d6295ac98cdd23f9b7d1fcbd5ae07b07396a7d3cd26c70e1a84d9c875132df42b9cc6ae8d2bff019a97a78648c641b15a862f08d4c795b8fdfb7ded58c6bb1db8e39a9d94392784853efb47e5b695861b0819f964b842c0b15888c09d94abd7dd5aec51064f5fd64d7948c08406c31dd196f62b541a31546da8572bf05428ecf51e300e71a3ff53d243bbc05a4eddb45cda3504e45a52539ae724c381dfd5db13e51005ee8de267d9b3842a6c6b2c378302cf56b254c040473e52eb7d5e49ad65307e1335f8e407a1ec86beedb467955e95ab352367dd3d69582f8905ae7215768bc25d50c77a8a9e3498932a27269ae452d6cc37cffdc538e701b7ca8fb4feca4098ad44a0ba5e2fbbbaa59433e6b5c961896b19e5ce0eb16b4fc6f641031853c7be06f5a7e255d7a211339244250c74ce1ca51bba434d74374fe9f7383f40baf9f0cecc9f188b091ed37379a43190c1799a5bfa259b16d39477dafaed330644e880b66d07d178bd0d45731ec0c9d2797122ca216e931d12053b5bfdad62ffbf7accc088988976fe93afa8a18e7bc25cc88a10a66b6e79e921e066fb9327073179094e2da88c515eed17f85a0317601fbd8d6c38792937a5eca3389e1102e84d7d3bbaa7682205eddd9f3ec6ee3eeb2c8f5777aa16bb027ffefca1410442b95700e4c68fdfb4635d89a0294b8c7a0dbd0a102efe34490627cc6df954459c777bdbfc7fd2f9aab495de757d672dad447dfa83f08ddf9524b8e0889028aa3a8b8184ca25975624b83f1ed7e5aaeae381c45adb87376558fe39a295d38c7a1b4f085de9f5d093b3b79928fb556261c4925ad094cb40ae258e98722a6cc4b7da8c43e0a19111f73d6d95cc94038586ebc3809f68a6f6cc4476b91605cb7f0c673e7f632d6c85a9b1124c8d31bdf7a9698804720bda008f02b8389dcdbe998ebd8115af202d0fc589df0caddb3c096c3e07e02ee7208e91ff9dbad4241f940d3b7858e58903804d594173ed5ed8adc2714783e381811b5b7eed8628b5492c2b2a35441dceb38beb4098aa0b2e4254f1086057cb57a125fde81e280ef9a8a71c1fb2f14571fbddfc01c6f40a34d60fb233055c71d0cfc5e3a36726ac33fa9d34bc38bd5c5152dc447570c8eb26c89bd68da263733900c9d842875120276aabf873807a1439b43f1bf8e9164d92a1f020a5121cbc6b7ddb60c7229989ee88f7768764492b021e86059f43ab365b530b6bd4f821a4686ef333793347db5c796f34b5ca021ceac3dadd0b0ce303505bf4fbded6eba67fe47947b9368e4f72ccabad1022ba3651d3e87343b40c5c164a0b45cb4cb2c6922c32fc33cddf939e7af1174d7cadb2b86e32e1f782bffb33c768e71f43a0a6552c04236190ca6ca0e4ce0c4b7e436be087977fcaf1e68a7e63b555faa8492dfde3cb3a074d53f1c8d712a6431d5a65b0cd9df2e2c05f1a9368176c9e11fccbdce4b0f653dd74e8f3d0cebf218949038e095a2d53852ae79537321f9e2227b7ce391d490cd948b113a1ab216cde9f8ad5a94efdedb8b1be80153609cc05501880121816385272d2c59f2c635299122adcbb6116cc40ae63a8aed27dd7da66fc8157c7ea377310c914d6d646d0dd3c6e0951a07a15bd410f24e852c82896b5ed14e3b09fc51643749ceb92a4567b93a81b1fe59b4363f5195f1433c6b0e97c56c56d4b324f1cd65b056378d293c6dc929514d272ca98596d6597973867f7636e5dcd9f17e3b1751f2b96d5abf617fdf631b381d892eab07097ef605c92f35378aed6693486a4c7ac1e85fa83fed3af38d230ab041499b9854978d778217371a1dae54f8e0c621b04d8cebee1e387e138804062ded057b375ab8d673aecb3d095f1295db4911b1845be48704eea8e5d93d257b2460d80b9039c6190844882b3de4eb320a459e069a13cfa88dd6c5c15368085398cad734bb81793d2b8a69a716c71f6ad9b75e1fc5afa89cdd8554345a368b6204a0c578a957149f0bfbb5cd7e12823b3163b77e839d5d8af3b66fd72ba707e65cbe86bc95beb47aec33becb8e929e0f8b6eda50e4791748f301a76d49833cb3f82862ceda999614035f7daa11773fd3c0b33dbdfebf4921dc84f7e456a4625ecc8e0cbeecb8d8409279d56edcc9b3806dd7bfa3063b30207fdceca64d4534b83c6b82d95a9b35a489a67b655be04bc4a9b34601a64abe1b59d27efd05c5dc2b4ea08ef64969ca717dbc77d166ded22c078da35c86f52f2bf9a96da2debdd98295c0bfe200559dfebde2c0a287346ad496fefdc745617faf9a827617bdf0e6c41b86c04a1b980796855d199e66cbfae91ab03f1ba6b8fed62365367b3888ddb9b8df1aeb9ea1757397ab419b5f4e4dcde6bb0c4e3eee0448864120b83379b1e640f8e6bddf8e1d2a4988677dc808c95039f154926b878656c60f1e76dbbe6b4db730b478afee651fb4b03a6bfe35b592eeec3266f94b9ed8211aa1a5b38db91c4de42259906f9387cdded3b29fe39622f5c1f38dac51de1b1b2458b7308cdcb5209ffc1a73d9b1a9549de9285366e4dbada238811090657e40d26174df47981b8b1a9f220d680f6c326ddcc4204c7f0cd8eed22b82efc61c6c21162c68fe1f56a4eba3c4489fa59ad8a0735fa10af82c4a172a7b2f776e4e9aedd201e0b09a9f06b6811b414ce5ecdc51301bb1a786b752bae1e509829002544466a13b6c985796d2dd9737bc91bfdbcdf17504b463a6d168d7b0865867a54364bd32a56b15c36862c4e72f4ca8c45ca45fc9d689091697592eef806c1b5cf50824d331bf8e5a1fb70ea9b1ac15ab05184e8c1e076adc9d5256e69280fd86a1a06f8e724a5790685c204498f47e8cb2086b5d339c12c39e2bd2e0235c083a5c2f4ab4be06e7ad8b0773c94c6d54061448b9722cbb3c06b007a2a2ce240e550af632d4486aa52b3552346a714b6bc251011a47673c74a06bcf2daa52463d466ac4aa53ec99c85874c88d180370b738b5d538019f9162bd2d1a7c72d684d58b7c9b971e1c3511c61837f9bd12e18132125810a31012b62962f957a4706ef9dfd88bedadf708fb9a90692a232c22fa0efef23fedddfc3de38e938843ee8a476ff7c9ac93f6e8ca9d04467bcabf5e022488335a97731b09eee8bbfed054ee9f256e9a1730957127bc3087e08066e4f9f5174fee578c1286273b93d4066b96f7fd3699a280dbf57eddab6a5a0d8e985e778f5b62e2b0a4bb70f2bbac8bb434e854573b8914aa8fdcba7bf5a9660201e72343d29d9f08b807eaa801048adfc688f66bcf4ee207526b5238fcaf7ad8adbae5477227737d0621911b2800a4c5c1ae82b8753078cf53da68924bab8bac97165e8c5bd5ea94cda4262050e0a1620bdf0248b54b6b4aca7ce132a88776fc7fd4e7871543a5fc41f6c48760ca4a3bd2f56ea3e41f8a34a795411d2cc6dd1a9d6cc3b5e2b898aba7e5633c2ae0e51f1b7947fa4e4975d3d17aefc9cee86eadd8144fb4877798d6d425b2c64fd4ace74e2b1826b24187c09d247dfbce6c53ea45ec3d8f5ed95994632ff17ceab0998b041662844ef688ceb6bff2a4e4589d875fc7d9d4efc067c425cda8c2a319122d48dc47393761062fa0cfbcb7d1428cc222913b979437b1596f08960fbdabb6500b4e85f3efd5a139de78039d252c1e7ada44a9d5b7278b2d40298542526cc37a4d5f7ca54bf169892dec94642d91a04b02b720e203485377e321d7a8a7886d015dc98ed77c169e6cbf4c83f98812072c34046434a17b9c84105d991d1f947728a92ac3ffb9bc44ffb94048b2ef8023f7dd314263e3a85f862e33291534e401ccbe0becc9c47465b9f872f7511d092a63627de27d0f632d73597ec969e671937fa78603b30aff253bbabf8cb08ab9c441ad9a07a7119fce8b4bf61a5294cd91fbf8cc01ec927b55762bc09bc7fc36e3859da224939c497502b5349cd3dbcb80cc9e8e3dcf3298c490736b779706231523ef41796fcb91f9643b867ae661b2b455113833d41ddc4708e0e8d3d9b9a755b4d6095ba8ccc2182cb13d8262309d7f47d10a23509b5f2db87580596578e87956e445bb8dc8a31c8606a4c3932f4f50dcf4af51c9ce39c31acfea1c11a7e0688304b0ce4ac0b7be33b07f90dff187733ccd164079c7202f3491173ec4f2daae9b7251311a46e2231f225de94431473d99c688eda42b9d3d5e7502c28ff3b100b98d1caef74326459d2064f6e7c090bebc6ecde61086bcedbd2f254a6fb7b1bc469be052164e980428b586d49e482d79efb94c39dafda37085604647621f8a972ecf920e8aa6686ca0b2b76b11cb2d841cf5560d46452a5e4d156555ff596e3d5bdcd4a1849b69491beb2cc7d24e6f8f55e3ebbcb1c0dcbcc3119076aa754a3ddee6ff053ec1b08539f6d2ba4cbef0c2588b7a3f5a3edcba6f5e721e16037d0726ea9758e72257fb79487e21faddeaa630a89f53b51dd6b18c54eb359f809f0cd553e2788681e48b1e95a2423c275e84c18c66144bff8abc2b6aef6970c7271e2be3bc2289be0b7f381935c7ef21d64e99162e57bf7639be62904e673c3e94a697c8a1cc706ca51d47454d5d4f0d139fa95a6a322634b589151463a1f3320225f5e4fb843c02a4a712be3bdd65459d560e9bdb66101d992aecb240a740e5703ccabc6de8e037705917e7722ae4ca42e5db199933515572a1d50f00908930d462d094fc8a1e0dcc9b63e4b1423835c3eeca7fc1fe380684c44aa709999e46b78acca0f87789fda2221032f2719245dfc4b59240e05ddee0f508175132ea9417e2d58285479be7513c8477ae99842ff8762984964c1525df76f94fa478afd9806a67352e4636c1da58e235a67efc638908622e1b57d4dffd9ef3e98ccc7c79a57e8053401b6c34854c85305223ba3b60b744071d054009c31938e611a65f465496717a6b782eecbe7302c8b5b5db4c2b4d911f812762ec6dbcb768cdabb071f17cd34f33b08e60d7a9c6394d851dc0a6d3c0526bc41c770c2e8615c562abcc5ef2745e89305fc31fd6aca05f4fd65e5c3d6df8ffb2bcdf0972e44b7b30174d9e74b80df5fa52e757e24c29148e62623f34c5e3d74991d79f9e34d0986c95893cfcaa24c940ed7bd2fbd0b58bf65233a670a90d607058e815df9fe4f4ccbf736b898ef6f248ee5331061c7a1a7e329f3d39795e1f0fc0890826ffade67e7d1fb9584c5fa4f6e713c5647f384f9393704603dc6e05fd59870da7130c70f81147f126ca7bec9b5d07fbadafef3184eb48962b49eac3f9b7fd1022a9362937badacd5eb78d3d95c281552d8da5bad7757c9f1e83e8edced7867f093af7d35f2a259926c673879157866d430a388f685b7459bac2401dfc69a26c35c7c766f42013dc52108144ef55f3ad6b056b183879eb343225bcd38d6d59cd8bde4d50870064da4f64162edd79b25b80c184d4b755bd0a9506825b970513d153ccf36f365463df87af02c5dbcd35484694a4902123cfd965eef0938d8716de170c4ae14fb4524c8647706e8249b6b861721d2f0ee2a1e5c53c0c83780e6826132cd4e18ef842a08259d3e96145d86b9e20970b7bb2434cbd1e08f14955fc9bc78306ef6b4853513b170a6f967eecc2be31270ba90b1ac1ff5c8d0ef4ff9d072c412554e8817ab1eec6d5e1a024606a93c8b15df0fb23265e4d360b57f86bf8705ba87107198a748a6a74415e892bc021196e261becf802a0d9a43b89f155d939d237b9e2f61e3a0464f723a3baf6917a34425c47e9aed6d0e58040ebc8a0559e4624d12ca4364f11a72535509b04ae6345ab512d5cb68e9fe551bb48c6576ea817295192d6f4d22481338fb16539bf5675426d69e6524cf0153d119ab9060a5fee104f8f506c2154ca29fc88efe13261156facba9a5d537d16d9110dcb61ebd12c16d01ffeb28c4b0018e8d12d3245585579c69e33d4a23cda4b6ef21689543c1caabe0ff5a8f0304b0c1bb5f7a24c1be6f6b68aeac612884254049ec5fa49d3090c8d366bed098160322b04bb72a0573466f16f6029af7bb1ba4a20c6e05d125b55a5e5f17ba39ebb415550066c76ec9f3a31e81a58b24e12af9aedb314203267afe9e4bd3f845756d2cd574933e2ef2d654f707eb261473dce5bdb2725489e0101348bb8d5bf1589a92eab2384cba549ee7b8ae8c23bfde25eeb56d35f3144a16dc489d6085d25583bdf73f0b2139205b00e373599dfc79f6fbb0b9502b5ef9323344f6954c5db485ffd934cbd32604c982a7d86e4614af25a1da7f87c4ce3e056a39f656385f75894fd7b9ffd832e54be3d04457941212f14c8dd3020cbe48dc1aee7ce8fc4287dca07993dca75f4013be0ceda7d02bc8d71458494e92ea10e73c0b97b0240e151b326eb10e1deb7a11ebdce3b7f0ef38597dbcc2cf21faedd17cd9fd9ba54d73ceec0618cb401fb22b3f846ba16e3f990d4e9b1091e818ddf0fe3f33fc7eccd6b8a39e3710a877b96ba48021e051bad91ad4476d5feacc9fa07bf6e202030b2497f2c619cc44996b02050def4b16e9a664ac62bb65fa23de912c72ab1b09d24353b97a8930ea72468d4251c6feb4598d0ff225a918090096f0f69af95e9cd58c29ec7cf56591897b0bcd54a5620406211c9d4dab238bc9b6dd83b04368105e536ac42995ab562608629308d223d71741b66584403af4bb55131c58ea05105bb59aeac7dd87c979f4dabc4abe8d6720abea85c185a90b41746d59b7402dbca1efca355645e180b1330c51792d717a3b958bb6e842a2d6dad6bd4bd7777b817c09f30acca7f9654b4ed074bccff34964cb21aab13b2230c7c589045f42766948123f4b1df223ea5779c355311fb4fd18cc27cd05699cd78d5867e8638eee685f94a6abc1728b2752610e1c5f48fffb2616753ad3a87883b075830d322bc8af27f08df8000be0b0886b76d53f67c48735b8f4244cc944f94b0d9ad1f89557d505b30643f5f2fcd53d20b77ac78c09e7c75db38bac2be1c841501cfbab4513278dbe3ff7844a65e2300046cbbfb11a5c0c8cf6bd920c57222630debc287286064c79308023a88accd49036a388e52853301ace6a3d48d62e8e8e62fd6ff5c65b037dc47075ef623499b1561f6f53d8895193660ec23ebd245fd9ad62975a288b75435ede1788e305141aded07022a9190296ab432041ef516f30495d4a3ae015ef022145d5aafab9716ca632667b56d107a40ac83aa2d144545ae73be5d5981460162e3d43462a761f5774a274b95e5e3a877028af10b7dfdd94c3d7eb540a96e0ebc50af87a3535de37219bd08841617403a0819202d5ea16c3446ad64d4cdfe61204f0dc1b90e8fd3e75a76de12b86f28ca7a3f5326f8418e929c28bea577cd2faeb3481f08165aa9297229bb56e714d7dce96e84603ce59348965a4d5d4c55741a7aebec6182c1cc64ea0a7756266ef7aee2c12a3fc85c9e7d61b9cc1d20fe730ae4587719a981633ab265b656f3d95bd8e68f7a8d9cfe889c622aeeb5fd52cf27945f71704cde29d49d2a69d15b9ba3eef8765c49f8b90986869516dc15fbd032e634e6d74f9212cc6bffe1cb1bdec52d6ec5247fdfa419c7cd57e8c2e8e2f7b501370c41f780742d457b20b618471a998e4e78623ef30a4683597375eaf08b21c2338144f6399003693d313691d448454340b90da757823fa719126cdf832f92461961f629ff70822115a273542a776fcd82aecf6602571016cd570b8058b01cc384e98821b08727aebc94dbf54422556a13a90b7e79affe2981b60e2fafd60463cf86387b5e9ed61149d6f7188084d29cf24ad22cec97e3a3f855bfe6f33118eb03b28172d90ca59709183eba52a2fcb350ba001ccef53b9e76dfdbaaa50873dee21da21fbccb0975e9e1be8eacb68710812fe0b81cf3f0463bc68976bf0fe9bb6d5bfa112faf7061082f84149534f9eeee2be0916d281c434dea70eb28c484c8b64578e9678517cc49d07514ae31ea1d127d7c0a2340610e2b11a1efc516d6d2fd58569f9ae4d9db3310fc4a05d120906f0f9bf94945228583e37766cc7b04e29a4c39af8a8680d4699bf5208b919f3071098887eea5dc31ac35bc69c1c9a868a3728924e8b1afa30b3cf327e5421a2295dc898b6a194cda766724bba4f2ab60ee8578c3998218ab6ac552bc0964b75838dae02cdc6d828ea3000f0facca062673fdf6c95f1dde9417f0a2bce89fbe84f73564912bd89f455eaed43bb053d42b73904c26bd6121e4c8a72d2e3d647e945803288bb22595cf51a6713b7e99686107de7ec563d17f4f8ed0debb06eeb594e3132d08546c017087a437ef831bc9ada4a339cc7027af0f2e32f9dc01e5c18afcd259e73540e03d35347608a701abdfd55cdba3f3ed1e6d6477fd4291cefc199af0fcfe0ee20229a8564444589024db82387db87dd9f47628bc5653dbb4127ac04919070b949f61470b8c58b35bc9c1fa8ce308fbb373d5f50cf39189b0516d5a9bbb2621fa3f16dd0afc03c486b5c129023a7c07e740d81654745b062348fe9acd69d39a732aacace96c6d0f98038a08cc219ce370ccd7e4e7406ed2fe2e55e3b570a787f0bb4b3472deb426c817303585231d10137fd1ff563e7c27ae0684265424443253ab0b4500be0b0b10648c69c910c3b749222dda1accdf862ab2d67cfd5ea013334273cd8175b380d8c5ec02300441e0c191a6c8047601fc4fb538d341b35124bd27d9d3640fd7ee89e6bc9d03f7e7d8f366f19f5504d5c1def0d69e04bf7f4bfb3a8bfc72981b06c3c4b6ba32d76765dafeee260dffe562dc30ab9cee17f0bd63b53ea032f6796fc4b8fc5a5457c4554df4f5b2c64e878b1004e840a50efc54bc1dc528d82f524ba07dca46e8944c54d86815be82583eeade06c71a97b2ef743689a5e85cbe1080edf5dd9a910c59b2efbd583cd7b0718c0553af60d6f2aab3c4c24d60a398914622d741ac54793326e2b70fb51a52039951b856e71bfc925c2a960d1ec654dd38d97eb7e05a95d2be13386745ba5d1f59e78b9646a9357339f578783b32907bf2aa861c57a254419df58dc38df7d295a77e47c38e4887046de5c42c08565b15be21ee595017abfbce6656394b4eac244f865bed896f555dc67686be936b10828a6c2afa5a4ed23d8297d88afe04d9d494512f6308e5302e494933d97bc316e294a7661155f20db996a43a653efe20fca1cf5a3d2bc32de2addac5845488dbc3df4a571f599e081116127f4d77eb26c9c10f4a60408feced765f29558552332d0103f140205555096df123c5d8e16fc38f0c1fc3c2de481081eab170826fd70e1aa267895143828cd59bfc8dda87e841ca5752eb81f8723088b2979a106fb934ff74f2e5b880641c7389d6a2c996eefe865b80cf2a86248495b12e57a94d21576acc7b0b84779d0ee8ff3cbbc419cf735637a90f0356ef88c8d043f677b1ad569e03778bb27dcecc9d8765a7416c8f7cc103c53b3268592ce8c2c6b0d891fb5244acc7d4cca9b29296e36456dd888f0c6c14e6e2566ca2f3362c453e1e6845ee980f6f3808f74d22ea1ed1f9657984f53c4330b08e8b9affdb9c4c276a04f70e2e46c6ac9a1463b27758895156eabcd2e65792b685941b8dc62f1e53c9a86806f2642a04381017e4db918d367f30c94f60830c2dd984501f11eed5becbe332d146051b5ec660e62939404966646bfa2c9c185064fe07d24a8e83df4d14cdb62fe6c2246b78dc5c301a09fc7d0a540d82a485690d5421ab72fcb0950e9ed8147b093f2b519410a3605c14362b8bcccbaf43919b8af2b501ca78194b986dc25f081c4c4f887902aef4e2f776a03072d05561810d540646124370947b1fe895e4fd0d61a8469af4da947957a43334bd52c30d6918e5cebcccd4bf82514666dc3a280805d9abfb702b2e36397a676fd11a313571f3937f30ad57f59c8c2d532d721c02cd4f9be50d6dd79bf20f2343ae265ff031d2db056ac3b359bb7cd2d1efeee7b502b25390527513c000aac2e09bcd9a03736ad40fc9c9a09c1009ed5c3b2c07f54b44dcd87dfec5e85cc3ccdd6306e79d81567279c0c9f753a57de4115d58809fed25cb54e016a883fb3ab5a15e78450959f7ccef94745d3b800f01b7ce3f338373dccd44aacac3ace7c4a622817a51ce69843416d755240c4a0c4cf08acf9bf8180f532682de4abad3a03a1649c6cc7c15665bd789544d591d463385adbadd45b2a12914287c78cf4157f2343dae548c30ff3c313e8154375c91533483c5e0a6ecc8c2fc8be7794b9b227fb1969c0ddecc31befd3efdeec29b1b668704f61c4b290813f248d278e4dd6e4187db33b3088d2a0cbbb878775fc6fae2cf44250ce5880bec9288fb99302edfda6a219d7680ae12e7bba9bfc09c41defdd6da47178c0ebc1736eb5ed4556825f7d4e20bf4940b72a219a8e7b4ec9c14375d8c3bf173c584f3bb463624fe8bc8ec52ccb63c5cf411aa6b53893734b18832ecc7686bd4f58ea4280f5f1bc6c79e81613bd91bd682c5eb54be5c6bc1b2bdedf425aaebed2d6f380364d1b0265d53023c6e3b6ce19860edd52c46e5c79706e6d988337d334f3cc244c93e9fc5904157128704303a086e51e083344eb91add7425acd3413dc38f062c5a25ba8ab9ea3517a5ef56ea5c11699c8f0b6dffa3c68fef378ce7b96341cabf23e9adb7e371245ceb34f2d7b0e21c425767874d528e657d47dee58d8362acb7a5882fa29f28354572c2adc8be32f7412a00c7240099b73590aa0d8d33457ea7ec7be301e17fd61f706ea441fd88ecfa74c9c2c104c346f96b4c81e5ab026cff28088144b1991e379207a96011caa27134287a477fc785bc4e5edf14bfde7bb32e82ab525b9a8d0845123618e09343b6b2cef0345f7db3db65a1835b416399f01c94f1e539e7e5fcb5f2b9c4074350abc09eff0b8113016edde1da08afeb93fabce2ec329f2e2ba388a0bd13da82dc6dfadb4884698a1c7703b3ec581074f0f3f9ae138b661626bc8f1811d31a21949be11fcd4ac948dec1ecdba4e2c708a52bbb2295136f3e3e36b81ce4f729c10af63a5ade76e6c655e240acfb075b647ed6d92548a5ee9b53910b11939c64a759fce3f4037f675a384881c1a655721eafdbdb4f283d814b585e497ee70220b1be745fdf26361164c316b47548e0d2c927c9fab36a2fe4620783d5b82170b9f5dcdc6aba062acf2ea2a7bfa900496e2b5b0e7df29a86c5dbbda2373d07c2abd0363198b86fa1cce5d93653c0e50eec44ec304da8cbab796c8881db30bbe7b397bba70475c44095276aaa5908e06c18c87772d27fc28e7d47862863dcbacbffd693d86b3d029982a0fe1d0d8ee85c5d5015a815ecfd95fc750566019b0fd666fde71611d1c63629c124a7dd41cc48cbf20ebf387944a209eb6d15fe97e0640c4a6b2d82f18a9cd0d77e08b0d840ef8970d982641b94203dc0544da7733a004a232fab61d8781a405317b8dd9182a36a035170e759c72201ddac0a187989e18b74c1a8e6cf4bc25863b5856f6c910831e301e4ee4ec7e08ddff99509b6f9c963571bbe986e763b4727c0bf7504db088b35d3951e645cbe1aede35901d251131974f3332fb2f0d008d0f34901c3bd9b13e750a1b4085a44d9ce45b1cf47cd47b355beaf421c80b6d1d716625d403b5d95004d3e0539910ba5784b73da9523d34a14066f3a66b8e120843040719cdf8b25274135a75b660644845f4512a5642b48b40154a62b2c9fa3bb9e72d5254207d0810bbaf75438c9833b348daf016751199b5a764ee634fe9206b2a8065e2a66516c591c8de6487677c3ca679bee50cab677a73a92d689b05dd32610a5e6c3104f254ceec847092496714a711ec8a8906b1de84adbf84851d03db9fac889d9cf1d684ad5691d76987ce00756a597e84c1a502d9855460861490d1b8d7a5986021d68c663eded63a982cc871ec8846b63e6b4ae9f3b9423e46c54fa65b29a481fe769d5229233ebd044e37657d1455b262fe0daa8285da8cc95612ea9a2fbfd543ffd5e1843ffcea4d07b77f44467aee82a78f34799fb65466531a384a8e03dd0a7c9fd3dcf399023f176deee5ee24317e968a82d75819cf50449840a8a6f74e6bc674a85c9c6b8696c12807a1b4f41a8532f3957723e96731ec84d5bc762fe47ea87e04f595041153e23e409e7cc4fb8c7b0e20a404c7675b20d9a319e62dfd135c69b40603c0149cfb494ddc06a4fbb437a9d2a20892ede7cdf87a60651c9c8202077264d5d8ffb7c9ed1fae24a32c05ea2d08b4aa4a04119a9bbd79431a2f072730ce24652a46458143f5e53ea56f561de9233f3a14a82c2f3fd28458ef950dd82b3804a7734294751cf944d59e47b2e1bfeb922989fa6c88bff7384e8ce46cc8453b26c2cbcf697d0fb4932596e828b95271550e485e30974ef494faf744c74bb5bc5686cc264a9f26d0e308b229a6aa897a1815bf51b265edf6cda50101cdc1837061fe18c0deb8991b93e0856243694c6ae0b2a35049808856d7fe2a015afdae32f059eac1fd145f7a6308512b832e13b3afcc1d2a65487a4ac5e7e61f4b7f6b8fd8fa790af253575ee9b885a54569d655210926b9a7d948214cccb9639a94ea3408d957a52995314ac5d5e686863e2f41da74b3badc31b3b20d5d85e67cfd52ecbbe0ffc46c0c01d44de23aafdb8e7283859d0c5c7f3c53cd9478a65465c3eaad47d0667452c9bad6c1aa355c1dbafe77761b2c896e0de40d7b814391ec1ad6da8aee09f2ef57e00aa5a106567df02f37f60c0a4b3367cfb54403e7fc8abb060df9de95a59c9f32ecd115a123ccff0d031faf630587e81d31cdd50ec872464fd3507025f6cbd108ca1d489d807054e0744811d8707d2f70b8c6815a4b7da172214429e8cacba5769755c2050351547cf3b1fff6313c9e0d0bf8c206086b21c5d2d49fa33ffa28c8a4106ce5dc36cf36773707ba38ea51820b09ff9dbe0c54b1d43fc8e340dd165c1727dbb860f19c71c2558d582651434b10d72d7b08ada095acbb179d5ebe70f03860d26ac4476c3af19c718644d465358ae89b54c43a02736adc96e732dcdc952441bbadc9731769c7390a81472a911f5d41f11a33af332d9f41aa8990e2c34cbcc1512d4c753ebdc834062c78fd49bb9e10244939551e9f8f649dd9a6a6ce7b251d82472ddb6a8e0c292ea1bdb85547ee5e5c601cc50fc4dd7b967065c46ed12bb83bb083d9dbe16db363d9d25100ea38928a0a77c93f8df2112e9853b418adecb375dd375f4711935b506616290047c877e1f104c072f2154acad248192bfcaa0fdd8244ca2d9063e5167e99ca47a0a4244fb8294cb8fe266ee91f550f3a295256460992ae377995812b6a22da973ffd25cc50f9e1281eab6b450ddb9412781938ea3e6f85bc9eb9771fb9ac7a04916db6ba53f8d44217c50a71bb1a244eecc20d6d551d4aa902a6860c65a20aa87dd099d7bd6e133fd45842ca1340b032c96fb9b5afb4c7bc2ef01252a562a527fed495a88ba5209683f68071239736ceca6f8c18321399eb9476b9caf4674e8bdbed00b705fead8f866abd286a7bd14b1b338a14008da8bed676d6b84bf733202f019d60ce6e07dbf7298512c85d11adcc9eb4f8cd287932f542e4f214f428b2028eb25a736d60f5e4f50629c7862f443aca2740a8d049a5991a889eb2d66813c71cfcd310ade4269201a2e2f697301252e832af9c3c30c4350ac2db26455a908105282563e18716f70cac9285ebd17fb1ab4be328acaba3a3c66dd495c0d4c8a4f93adcb61e0c3a09828e2a216534c71258af968d62a4c699df9e0985fdd2932b29e5b2a7ae5f36f6bf3448154424d1800474eeb3839a1dc896442c635094ec6e17d8c6311690ae453484d849935b37ba483a9f170a300db187bc8b2ac29b21344967ff6ac6da6fbc0fa33f6e885d7253b725978d725dd75be59abdde2ba969edd163f5b32bb0569e0290b7c2ead132d847ca96e824c04702e21f37dff8fdbfd42e892664770969fc24ff4b6dc7c2cd753e7e6d9543c2947d4c5c94c1b3b8c3f9d25b59a79ddc1e2ef60593e35b5b8a44c33e0bf7d939a6a95bfa7b994210f32a1de94911b2ff4b090555200bc6b522732c4f5b8ee0062449fe9782bff207a606ae32ab376a0263152a63e90215ef4855741772de245099f928220285104a1a7f403b53f642f7252e77b9b9364b7218abfcfc0e0c7a3625895e74d78eaa25572d994a6eb00bb8330c6c1b37149a4ac1640660215d6074da5617bd541b89b14b0a6e512b19635a1711ed98c44c14449c6989a21f664f82a0cf5c9d2f657cd57019d7dd6d878346d118a437082a0d62207fb294e4f9529be453994b39f05f514237303aca83c56910ffa25c3d5af868359382df021784a6927f799c2e8e9d073cf195c48694b269887cd4c2c23e594e99d0cbb352520c0e38a5ade1a2b4c9904e1cb830cbb4906d03518f27a9d61c773895033e32e0129012b4423c8de57fe2e881829adc01bd239e2eb07c6142b0d0ec0896c2fdb2bf94691d0e0ab4cc1971f352c396d7bea185d2bf8cb47241436cece8c819db84d242921a8c9565634aa183a0d566a12a0b5fdcb3341423002cb115b6d904cb38ff90f19af8fa8cb2590d7f49d0515fb4a9445029eafe8ea9633cf2a0f653466bff24a6f55536995f05bbb96cb00e5587a98858030393ce76aa08dd72d624853f4e84b4389351ca2929e4b87afd1d87a271d4745e825556934b226e2d79eb4a7574580b3a6ba4b447ca1da3c1839416aa63b19f1fb134d334d77d1ea4cb99eabc8b6c24dc889bd63795a917ac5353653a2c71b6f74f605b559050feacfcf8373d106ef4d523e31b85fd590233c2912aaf2920f245734b276559883e089f56ca9f5556fbeb446a0ca49f6683ffb452ab633e1bada6c4a93a28931687ec94aaff52aa95ae5c702c76322214f14e2b5520c73c5ea284fe53b1a6b7ef782a067d0e51168e1a6b501cee124b3558e18e7cf045480dc53ba5eafbb44f6e668b07983dcd05294a91d06ab314ff1f3059695f932877baf9914f115fc61672d4afc92fb6a5523162d74cd4adc4b9ba06e6fe3189123e1c82174c3baba50aac574915ead2419700760d6e8d947564391d339588f5fc055dae2d3e2a4667e57d20269f3965aae260e80ae5a0b252552b2504e57553983d3d1b7d396ca220aee245aa39b76a43ae9818fb8bd235b97a1ec5f29efd02c96aa5d6f45871417e7f302bc357c2ef739fdc46c31625573c12c5ef825cff0caa9a2ae9ccf7e2bbcc3e8b4156e1dde6d32fb7079d6b04b1302cec27fbb46566a20c30a419f305adc0b7bfd354608d7c728589db49dd41377a633ca35427cabb2411be5698ca983ac6941034d4c21d638af976e3481b264edd3f8736b829e2c98d53241fde1853aadfc6a6b709a84b9d92553226e4c1a93efcba9d7b0cd7814922065631c0f4491b20334044050b29499b1ac89ae7664c8592a937b7e2c7a9b1064a2286a8dc2cbadef18c309a20159543f0c891a9a4a01d87dc9bcccd4ae07201ed39b9e4def0a62338655af651cfbfb927f3d3f4676926a5664c199c94f1c30bb0c97860f6508670b58430095e2c89b78cb9516522adf63fa5e7040a0bc5c3216ec69415e694bf4622be22ec4142ac839d658834ddcf7a8b6b9699b99d3a417558affa99e2949921e8bcfecadf8c299216575d9c9a59a5cdbf69016344019057014d818286f251309f77a798faefda585816d6fab339cac6e6a9aa27076609a53463ea4b812d3c531b907b46ad5f7daf8b1ce01682779defcd5a9aa8252bc7fcde3cd7f98b1653f4ddb729ee8b4cf5561a18d1e9fda19e989d21b30d48464ec844ab40d8c9c4c543be3770e3fc0c836e2bcb6bd1aaa959c794e33c8562777e166a0aab89df14131049a87ec79ed1c27670dc2134d322796bfee9501f5baebed48053a232c22c2242bc976ae1f9721c9598f294698e5b6303757265b7da8f72576fa87a3a90702efbe5691058a6653fb9de644d7fe9502fcc32fe07935face1599c8a69b724cdd5233b9ef94506ea6e7f314703a6c6cb444e486e2f51156b66ac0f546c1cb3f96808b7ad735897f5884aac3488e1289d244f3a554487d28bfa0e47058f4f3997088314553d5ce3c7865f8c28a9229031cfb28149158a44da537aa7b7c72f558d7ea9bbcd7583df9d1dfc2dcd8ca70a8cd516bff555d74691105fa4853a574df2ecc5b8268b2beaf9712780aea9e4a631215b3d8fc39fe566262408410e0eb850deac04d332dd5290f325338846653ed6691ccb9909a3f277b9dd4045205b2526b0d891d3b778775ff9f7ff7f0c35c064246cd99c09fe06aba60a71b243067660aadae238c223f08e701bc00c34a74de44803770513aa1118f3572c890bbc44bc57836b926a85ed5eef2b513dc84a80fa4071b8f57084c10ec19aa6df1f3291d8266cda5b42ed89d859aff84849d2573cfc7ee5fb61f155dc138bb1d0c4fc0bea013453be722ae5730b080db8a33c7e4a3ae7f8280975c378d519eabd76cc7dd9b766c3ee9e2e36008f43fe38c3572b3ce234d49e9b146ad3baf6fe7c466a6de5d72f1edfb01c73e82dd47e887ff003ebf39711375127e4760d2807b8684e75d44dc6759caccba845bf5eefb68be2918f89e390b3e71d992f03ba7a60c43109309f86635a784827d03dede8baa1af39d08e3697ad0b9fffab4a3f800bde47176fa0f423c23e4c0ba6e2a170cba66f35ee38ffed1ea044178c3c14daba84297cc18ce3b253f7800b3645137254c0d07c57c74d74e66c492b7ff78250e7b5b01e88332c078498a80f003a8f32b25fd7f982801d12f28868440af32b1f5328a1df849e92ae571dd4dda9bce61f226d5467a352465adaf8e6a88a3c9d8840598c501e1fdd7af4d4ee85afcbd932446c22b6be38deb4ea0ddccd9c55e2d730aaacc7f0cb4a38919e89cb9389504426b6e99d5f01ea268b44fddca44ed94898ebffacd9fc6142964fed1ecefc2770c1b16c9b6b74044f13dab83b2232dd50bd6f2e20752d6988c08bafe5ba3d31cbd641d58894e4274b439d27083feacafa8148fa39111b976934ab0a0859fdc554223e648610e1119167c802cb5e25eadf162bc6f7e9ca21321fd60f15588f255667bc1ff4a6f6c2490099393949174dbf7ae7b931eb8231d1f590d33a4955677132553a08d7057f4a4fb357f112e8f65c370a1de5236229d4656da057376c5730fb769072bf403421fa6f96daa13e58ac15cae0a04629da4f9ecb069b781a2cf689482322641601b54cc1d99b419cb80b277abfc87a0a4f69d93af910fec2bbf90db39f1fb78c710b8f9475e9b8403c62a353c871cb0ad37deb628e95dbbb13997ec399327df93774de47d3436cbb8e063108b6740e1c0f5785d86662047cb8c14b9368225dd8d1f11fb81df0180ac2b8ff0dca079b7439b23244582d85b962be6320145b6e2e0264d8752b7cf3016a44a6f6d408bc04a698fc9672e4109bbec216d90a87cf924a17634da534ade1bb25f66418c7d4f7a1d2764e73409579472b5cdaa6134b9b36b2cda9ac29499524b31197e2997c905e96c6a46992960ec7bdd67f41ab329a651e2c3f15f1b176616b99c1b1760aaf3cfda6df5eaa18914a8504e39797c1cc04b0e7f4a74d0597b55e36758160d889329956c5a40679355db275cc2028d5f16929f6c0a291d1d2e2b755dc2b878091a638b3bc53a35237f02c977d7ea2687428e05ad5661eea180ba1ccb2bfcc3eea92d1c59ad195612fc898e62e2a2ff27e7198176e1d552923cd9b23ef4d718b683d142141a64266d2caa3c9be18326d84ce8eb8c691f624789a8a143cf5b79988402f786a46cab38b97ad052f19e4b4f2bdd72dc06914e92935f07fee141ff89e2fac5947b90a91ba93f356874bf8343badc86a8866c80784408fbd885cd6e9d270d8bf6f1dea251d23a956d3423634efb27761edf2dd586b9eb2c3f04e25e9845750aa4e5909d21b236468bcb9f010bbe9e3d2d5c568a7538bb48f14134be525d775f15f654cc9ed60fbd04e555626198126dca7ae406cd047dc2e46a887fd3f32bfc68676caec2bba6c7b2b5b2efa8d0b2e4cfca415c33513d11f8305e672f0afb1abe4721475cdc8bd3694ed3467d0c538c8489091804591bd66d8e504bbaab21a60353bad5da232dc4330e7a252373273fcfe5deab63ba1ad43c74f1fe87662987c9853d21eedd1d4eaebd3fcc789a03cd5a80b224c8c224f36488eac3ad08c244f50ed1d3b2cc77810c648706f151d4ae045cbf829d7d347b377384e76a80df844fe1e9bd6c4335a1a749b481ed44c2be3a36dff91dc4ed9adebc833e1255d327584dac6c2afb31eccce1b1c3fa463977b6149a4723f53e93ce7be6485341126e53848c6cce6595efeda050511fdcbb73df6e7d9d824f8ac4afa6abfe989607f5d7bb89b4943748c13c9e09ece4a3edb9c5d0eda959df66deaa0a7aed08a5c3a7d51b93769c288b5a91fe232feac0bd5425a22042478ec2c34aa2310f29301eb07e2a4dff1fc9e4c9db86d083ee65d9b87cd24deee220a39b1363a099f21079cf9318ffdaf7e2d54dbea5a0c1da4ad20166be67f7ed4dcb5736f45e9707c26e875993a2da902dba7a312184ce412003c774a33d74bcb56065b024cac98c987f3f2bd601d04298875797555c5ccd7b615b01912e32c60757bb40985f1395f5c691c309a6d6634d3e3bf42b06b6a5429dcef59ab6e1f8d032ba5cd9b901d9cc68e119937551b19f70563c34033a7da2c693b70cd078d96b5a8cca0de8f5856b02e7430b74e1995b8f2cbb21c1db8056f58f61f9d8ab81a20452c19728d00f2a6831379a56f57628ca6405e98d0dae56f8aa82855be779ad05a2479410e57da9dd7416b9c701f6d3b6d09cbc214dc2d2d31db95303a6c56a2793ab15e0c7bbd93d0a052879286b4ff64b41bcac6204d092f45ac443da6c87ce0d5a532ea98d562ae643b503203f5ca45f715bc4d2692af001b605f92acfba040f484727911f97bed925b5c5d20a3a02a236a365aa0bf858e3713e3c3eda9acc5723e99d27e1459b87fbe0531dc4b6217240333ba73d1fdf1f20a53b12aa866ea8368510cfd406b2045de7db6bc29beb0b5a2c60b41de8fb05a1111c5e7b4f23e908d5d4dc0a707b61428801cc0e32883c3125fd4f11d504c255cfbc241a6b878cd40487300bbc58711ba5fef8e39986b942e02051926a4e9d5dd8099bab3c6a6ef27f0cf8939b4da49ae2f27877cdc658061d2074ca4da67c09c5e48d13175ce81121e4883697a3ef8fd1e2187fe99e67bf17c4d8fe34a2676a60e8429f6d2d075d91b59e33a2996658fd7596e574b378586ebfa5407503e09f473472584856af6078ec9cb9f3e9cbe02918408358f89cfbbd0528c98f020cfab68f13e23f14e07c810029af1a5be1f63c2509617999da9cfe04d6c5c401b1eafa3677c0fb87fb5ebc5bc57e3a8346746c065de97bfed975127ac90f009e4ce15992f5d2e4baa71ca46af7f6ae488ab9723593fc7be5551ee60c5e64ddab2c9751d3e024cbd6bc381315d9c833c069f2ab470426a3508ed1d2ccae247b7a3d7f08b2bc3dcb97087a972b632817f441feb9a343b70ef8c2909004cb4cb97f47be5b212591348606493243a833aaf8e0f9ae9ce7991b4fe46c9ad54178ff6fe17ead5de4453eb41194003dcd9c66be021b18ee4f06e3db31dacf18fe9410306128a7e2304e2ee701fc35a893c7a8888daa7351c0087bc07adae5c13ec0086a84a7c26ef65b00f2ce831f278aa965ba2974d15a60c065e9ce1a9e53d5b271bc72d6f390059d651fe8ea460c93faaa4f8db662c1d063ea8ac593eab6b2670152dcb9a9e106f3f5c8ea1c4daab5a7bca5e9aa946d89bbb36249c98250a216484b6feb5cdc895d48d73e9273a483a0ef8a5714daca73e3b3c60b0870ccdfc6a71aeaf8043fb104411471a80ef542c5a4de97c461a03baf6bba022b7284b6a65723eff4114a4296b00c7230953162257632f15f9b0aa498bb3e81c4595270e15e1d30ad5e607171f2faaf77d1bb2b28e1df14eb788af41e1032a50cc878c3f748dfc84b73fefa7b3d7df4252b774df48ec2e10f4f5e51836692858a939e5abb27703cfdf7044cca95a95183658f4268b6abb73e2825dbdd614430713c9b03148f07b274d194295023501cb32f433dbf51be11ac2e4e78947bd332962cfb24f4f43022e7ba09546682c5414fbcdf87a81cde5744e1a50fbb7c1429612efd2386ebd41b000e01cd36f367dfd8d8dd52bf53042677be763d94479337e3f762b6edc52f4fddc3379bc874aa2e7b82928af78b22475889dbdb07fca68d6187b66c50cf157960e204f0a075a850f1f3036c882610e847a24b6c01db7209c7d0269a58df911343687b1283f3774c86c62c1931042f3f1031a7877e409762c3d4a934501b6caee56fa42452a9fad491e33e52a8fd878a245c021db0857191e457ed40a00be94d27d2fdc0ab44ca7364765a4457e3c392691760126d6d6d091afa1e6606e85cd962c26583eb9f05adc502543e8d1a3942aba90b26e9e53543e43f9601db6a34712e89128b08b4d45f35d07a24800afca6c0af67755e13ac0b1b2800bccca8777d4a73c53997a58879f431c3d0ae7542ed00e76d45d81b4ccf2b9051fbe0e7e32f9d78edea91310eebc2e2d072e26c09bf9befef7be0036023d20f9482d596b8e43de5f1c583c14f67edb9d161b8b58f8f254e10ccd2fb7bbd49b9b139d7672cd1a6ec03921525a2ce553e04cc2bcf6396718574b553c5836c89ebaf2dac244b6a70866fa326b1d0ebab94849d05bb1c2ced74806e2f6628d2b58e8520f3b52fc62536bff89443635aaa7451cc04099c1328bca135f20ae54b2a7a000cc006616d82de346d6d83398de7e9e25f4167a61985bc02d6fcacc5304e84526895dd3089322e01887b5a3c23eff429f9529b20b9ec4280f5acaa4af724851f368e574a0170fdf07776cf3b174fd574431dd54230e60dc3a49c1f6ce83bb22224326e3cc0cb0d3fa03379ab2f49830ac344cde6582a304288b8515683e1a3f7990832345ed008961d6ba2891f31c341acb1bfa1f378b5f3bc6fc1c564bb19d1b67dbdf8588cd113e22d07cfc682f3d007bae7185ce249a6f1604012c983c831d82d9fc69e71500d02cca2591e4faf53a1906e7459744ae98606f1911942294c93e2104096b8b5e56ca4d47b64add70d1a9e5214ea2f6786e29377703027d0bb89f9bc8321bc9851de75828de71741480c7cf7bba18fef06a29a117e036acfc8215f0632d12323392010f18e3713988c64510082082bdb9339392a008a71e78f13ba374327f6893b2dc22f76ab64534f90ae11ec1f8c13f63e1b7a8aba9550e21a3a4d793a5397770a6cd085e55a99a7d3b4d9ab34eea5f53a664d40ede46f063cbb33b06679ceed8da0abba924768536158ad2471953b23d5957a555e9b83c2b546a1c3a1e94f8a84d35cdbd85920e19b3be74608495431da87aa54cbc3b589b8c80c0ea2f7b812f166589d5c82bc0da9332bb3ceb8aa017b00a6f0d4423b605b0298f2db1c25c7f2ba665574e9670f5643e22f45b72dc380cb93bf19b624c8ee98f70dbfa3013a4832d5507d8a6aea5e739b2a432e2865f947350633959c8a95b6b746b7cb809b9535dc2cb1149af16d957ed6ed533a390d70b61a3fac36880da1a9c3d8adc2210f51480c1ab044c651b344f7c0d9825032c888b7396fe73a324f9e799ebd1d3ccd345be2a397cf3b159568e649cb8abb9c90128fd227daeda1e4ac65e60776ac0de88d79e91acb6a79e4d2224a7d3b5217dc8ae8d0299200b75069cf9b3705d35d3103d36d8d00c75e15901c62d641fa410a5aa80376500ac6990a592a519f1016f91676b82e124fe3b69fb037a4aa8909708bfb76ad66f8b703a545f78dc8ee5c2eb42fd00a51a1136bd759a22aee68c49b07d1df655dd8e52b019c7b5d152d64f52ed1b152d33922c9eddda3acb2006fe0ba28dcb8f1b03eb6b910c3bc48b9f84647761831f3d97281694127f03cd8de3f222333385cd0e66221d03ed8160e569b807065a8109229252e2a6181f96330c0052f33c0bd9fdf507802de50dc5a6ee10efa36cbdf0568ac7e48004cb549f0e1601fb8c2bface7622374aa950770deba52845cb57cf1fd48b48fc413878d845efb779bead05093bb6ae4da9b59b097675775d25b6aeaced5a7ab4beaeb0261ccfe96c1b35f92b8e82715bed8c12d3e780f3cf0de5c79a1cf5107df47095a084edf0242e82c13275f419738c2a9c992535ccdea03dd3a02a2477f9873ec99a6a30a9905bbf995c5321cd265ea04e88d266ebf8b0b6c3a5103bed919d060af8f97f84a304de84d1725b37154d5daf696f3387d7cb7c1f0d9bbfbe4c646f3cf662e073abd1895cfc91aec7aa9cfb2cacb4aab0b94032f18c7380d4edd9b715f0394487bc52d4c672dd3e7b8a6e1453564edc92f3cc9a7a66311fb184241a193076c96485554bdae6bf1b011a368d1a9b93fe34e1323ef3cab731100064b02f999d4ea6d47296db260d48f5ada68c863cd2e7bf79b2060f66edeef16ff38929a3316d6ecca20c31dbd301abb049b13db5e783a3310d15421580866b209ab802c4c65cf905ce3c35837ed2e90886fb156e7a293b6f537fee09d024a6c86b0d913de7bb4c270470e28e36e0d653d844868619a6c1bb6b0a0409e892331c1f7e4b9990f9b03322aefbc71bd604062adedbf27e4272a5005f1bf249a22450f3d4724a50b25f812d9bfc11bfa651a194be18190dbd4b3dba6d912895dc87697d2abf82b2045a7c6cb293ab00c57b302f18fefc7fcca5d5f49f5c0049d6eb0a52be2b624c369c1e3d7145c2039680bcad6f8c5040e60080bdfc85918a66bb7a05c9eba05eb76a73aebe928d012fc3abfac17c4857097ce1514fea607b55b499c75cd5c6a824aa04df7bd4a100789888d98cce0a63fee7323b14c8c896c430a2e87afc4ed2039f8d6e01234752055598a5fc58424614e8db03691c114349b0f4f05ff0ba55b4225e090f2c9a66e0111a77d5f64215cf24a6147033aa648a26ffe5edb23cfd845cc932f326543c339a092a7291dbbe2f04655fe52ba9b65a971383021671fd93c4151763a596dc02220b052e137ee10796e14eba69f0073fb01cb62246a16c82aa6d58978d30e090dfd28371fa3633ba085371ebf484a16fcab0f84e920c7c62800367dea3a2b793abbcad97e108b012f010e0dcd914f67020518afb926d3d6ef29fec916a3777c0b888d991eab5ba4330eac8877ba28a4fdb44ad961eddee14bf2e913acd67b51ea63e24378622711b874baadca284d3dea32e58d5bd6a8d9aea8e9d3804e3e0379ff59776e5186146222e1a900d3b2098a217e7031e3492ecaa0c80f0082b3839044d79df60eb3e27388549b132831e5e1427308aa03c146d2a23524ae879ceb3cb0215274c211cc751378e5622b71eef1d0981fb073bd96aa3faa46e808976fb08c6993503b4512c0af485268b95e19aa9dc6db8a4d4efcaee41c8ab34adb441b0b430a9f93290ae99b7bf6f83d8d872005d4eb4f23a8ab9596d88e60c964e829d945c7836c1caea17d4a760bac49d98383e4bca436c8a6f2e671db86c65bf5ac2a99d22b48057164cbe0924521a9f26160b60a298e6327232e6e40a0eb96f2d9e75d937ba844e6e2540e8b4642e30fb959bec7c7f11842d92541500576f64ed4d8d666b51135e2d041025c4cd1562a82286bc807431027cddbdadbafba3e258c28eae5c57cf9f4546b0c869af9eb078ca62a0bc515d810cba330824cb64fa25a6421d9944f6f82a1a79d8c8a819cb563d535194184c4c08c25e75f7b73d32cfb599d7459f4ac8dff350b95b559ca3a6709810f8f315cfa5b0c072ab1e01680c66649d61db5c57b69ce856fa871ab07466688cd9a4f9d09dadd96531d4cc97bf15b68e7ae1841ae002f5ee8f5eee02ca27278c371eed32b862e72bf4b06c9a8b40f64b34c1813cb0249856904f38de1c779aeb54ba1fd99e0bad0df23a1e9032e2705d22b033eec112fdbd6bc27179aafb068f3253db8740e3f00699cfb494284b0ceace8213ad693284ab25eff91c3a2b613bd2723cac300b201499005edb9b7888bf23ff9952cf1e30861b874645ee3972e9be76cd3e21304a254a387219e3ebb5b7c6978a879450ef288ed56ed51c1e8d9749c926b1cdbd6814c6a247eda265351cc307b17b99b9cd7b3c2c7a3a01da040e0861d6df2104160933b39bd99d855ef18badbb724340341357715c607da6e594e42acd292a08096bffa5fae48618b4e3cbe24e011d2c5d2478754c1246396923582de82129e522241f311d7b6f3f44dc118e248a4e05dafd6294afaf144ffa8bc9e832a36b5d2dee007cc43fb85568503a162ab34944e0fe0ac73c447eff43ff2322cb2274e9d73fea5a6156a82849c59bc22795accc8bc8c8152e614416c53f2fb7ecd3ca46d464ab248e22ac2189284409654ee698db54b4d24d2c4b7713ac1e5cb43698aa15eeacac9e62957c04c28c01b703ab3f73475b98582adfd222de095c6848666e3a3cc116fb63faf9e486462cc4c8e8a471375d87adaaff80f5a8e1b308de7490d76d8e496ecfffa77ccc3848b149399a74233de29d31268eaa8697d1ae9b4cbb4232e86988c63d67d678eab0587d7468af24da0893a0621e42db3a3a9de94311bee5883e9a61a1acff07368104aa98c1ec72652e028ab048d4cebb6d739b872482a0cd3980d7ce346f48e624caf0d0bb62b8e24ac6cc7674a3fcf18df37920bc21c74dbda288cc1c9712b42ea00b2a43850c141ff54180e2e0192cc06406c1e05a4edbdbd07a055d3452407aa1342376372b9478c960ad6db00979f769977bb816f36356824f87856cad23900b9ba946438ed703b6833b7f05ba6ca1eb3e0f7c3bcd5a224e56d2b37fb4b1d0623898f16488c301d7dc55a74cdbd111efac15614322fc0161321472a676c946a8157145622fb42ca5ec12b12fadcce7c8c5881521613c21171d8613bc0927c7ffa8dcdea4175004036dac1cfb9070b89c0739e144e56dad19aa4bfcde83445a735183f0f80429ee135b426ad8429a017f0acdc062e3c9b741d6de1b085c1358bec6303805429cc5e7b0aa47787904774d29cae740463770d0c946c97a2b9353a3c57ee4c53ed5cfbdc41dd8df51689882a8ef4bf577650ecb724bc502589c8b79fddc69bc284bc4d5c5d747394c2945c59674a136acaf6d5a582684ca44eccfa1a295a0f29a28c2b992b48b639d00d079d13da80b93cca5af5156e68751507b3a4252b98313a3ed1dbee061e46003de0e30f584b16a2a46a3a6dd46b44ba5e944d3420f24ebf885e06e123cc18f2c6d17749372267f9f19069d983b83d94f5b0ea4ad4483949ff59e31c788c87d7ab5e39880dcce40a600207b510e63be18366c96191bbf253b1b54f2e4ece58ada371d6c11af22443c3c3cf3f9e72d6235f93150927e23b4a0a4e6b312dd27eb0840f2998d28cb469c7046a8f2f1c4dc23593b61f2718f3ebfc3ae34f21fa1bf4090b5c5c48d7342f7cd94b28a097790731210694f8081140b0309673670555388125f0ff01155f2c76c89598538360c1dc4178c012a18d0e049e2539703e619deb8a48d594a3b12b8de8ba70aa7306b19a64bf4ac4263b813d69a478d0cd5fa1ea051dcc0db59bd4fdad87db94f27b2332e6002032af0a198090f2e24007ca7e258c2bd32dccc1cdf12c995834a1f12cff576eeb7d72c21d8cc43beb112fea1111f6f90cf4e7811967b08305d9dba9a9a7710b520d6f8b0474efd10ec53d660bc0b2f2e28f9ee0d4d0626caa1a7d7ca7adda7203ea2b7e2b3e433b588608cb78e2894e14be927c1e0e3a8df859a5db0df1faa20b989331ec355eb6dbf032151f832004ab1bf18ec6e03f2f02734a52bd621e8a8b5b6acabc3b5e56bcf34c17040c5915d311d487f45b33eb95b856235791b17e76fc1346f34c757b22fa07e21a51f93c986594d53046c8e5d24f2e9cbd6b032804a5fbc37c99ca419a0e9b9d73d6e8158d56a6703749f7629a57e5a6aab6b0d15ead138b39ac2fd31428d0156cf0ecd40f0500cc65a99c38d0429abc12d3f7b4688dff2e69e4204655e1a723a4077dc100296998f60445f2868e96129a683d788d3f4b3773145c8b8022f45f30de14be9f786256efbb4f3331e1979bb1ce23dabac4722d3feeed499a4bb163ab130aa11b5482781615115de50e8e426284d7a8fe7bf49a2c19ef0df73b1952940d1a1d95c3047de9d6c493520f503f510c5d9127b2e3ebf24bfe3ec02d683e920c5c721f504b91827ec3e94d15d083091600c1dbf234acd85435929365da0e344bf99f5ec12a83541e7c30c6ea4a7b60ed65f909281a54a9ce20555788a1e15f997e3dd4f01acf4c0a131a52a767592e4dc373e53de1683c969114b4677633b86c95d144d44c4d8ae391d125a68f11b23c1546d43d8cfc543fb4e0e54e2ecd3323622943b2bd010c2b21729adb12d4b2503170020106d7ac30942d8be90d85f3b5a125948dfed6c833c220b8705f1a5ae488bf83203d1ccc227728d9c730d840bf71cd060756ab17f06b0ab91995a348b0cd9013e4dd234382dd41584cfd88b800e1a4caf2c085a3efe8b5711a35dafd567a8bceff69cc80fe1dc3cb13046fc440d0abc45956a9f9f95ae145573881f7c160ec97c6878dd2000e3ffc5b4fc7da4dfc1964c64b111ae386bfba2c3b854ff6656ee92dddc5fd62e6bbe3f9e3c1c5ab3a56a0cb1d2278b2c6c30c875646769d1112a23822387177c3a6d1bfaa568db2da19bbcf2c5f413533f3df93698833053c5dfed22aa433c1810bb9ac923656d5c30858714c064ff49e59d3fb2450e523e072a1351ca0b9bc3715b46fd773feed9473182c71b5144136b76640e2f1c26f5cb5fe24a3a36972ea7a8653f2f8571ccc43b2a73a6ab3a3f849ef8113ed5082bee348a3af9a38ea9ee32d540ca76b9454421b435479fca657ef2ce98a256812e175bb7e7eb6f3c46a97e8f0618a59c0c02eb53c46c4f675f529865f7558de2189711e6903ab730412948bd8d637012e71a2e9c50cc4b7c17b4f8ddaa1619868da43b68ab484792a6b6fe90d7d717917ba0a6a069a68ea966a89c4ed838c322ddd1c57ea77d059330b58d564993b3c772bc112bd1cf0b25b7ea58be899c1943dc60dba6817b131b9dcb35fc0a440da4b28e9e37778f0c9350ccf7a5e2d7dd71b8219092c875742816e62a526192e29b807a6d0f431379d1371cdb35a07c1349730aa26d9f385e6d36a7e9c27ab487dcca96eeb61841bab6116a794ddf443c2283b0aa87abbe05fdb7cfb99f73f8974af916d71344062b7b5cc8cbef45540d2a24b9836490a09b85de643145cd4d49a7d041f5aa22156d7d8e30521e8e822413ad433fc8078566fe04dcb4e960229171b354a045b7b4889270206fe90f5b3803cca47ff1f4e03825a2805954f34a81a6ed649be20962ee577b668d9b039cd531a059cf9aaf21b6ca05495f2c2b02bb22c03215e3548b0c9fa4a65bb4ae3cc0d691e08152861550684bb6d7822cb24ff613a2a2218bb3d23226823e9cb6ce7013ea00e097ed4ce7f057501a05a914d082daabc0f5977b4b7e21bc03619439a170b0a2d751104833dc88540b831c10a040e58be4e278c9fe9c47cb8ffd7d4cb4d81a199c5ca079711ef0c80ac463a4c1019cef199d66ceb40887118fc864675cd02c96e56e71b4ac721596b4e608465f317236f9f0a9d60de40aff07e77594d39910de5f60e11af4a0bcac7d6f41768bd0d422c8c9227828517cd5bd98b0320e2ee1862b3206ba899b2d824a01cc0a3978c10c4ccba319c93e5f9e5afa9ff61348798b85b02db7d63c89aea0c4846df3e753f00d90360afe3fb83c64eccdd9cf733a7b6779a98665425d5b372a89dc55350a2c21452fba15c6681e043c6d8a4dc1d4d63ecfbd400d31a0b23fcd682b074933268296c40b005f520478e06fa5e4235584ab2b84ce082125bdd94203dc078134538510472292e0e96f243ed411bcb3d4a5086268d0c676be469d167003f8266425ce1a43d0017470bf84e742ca05afc3a99bcf580d2f0b2f14b6858b31cbf300e861fda6fd9cc477036115cdb4931fb7eb9ba72a848c9f8392e42f6605856ddbbeaa4bbd9b1e506d64b4c18d70fa51cd1a92c2adea720816c4f856bf22a844e3405a1ba06b6a94b1581a2c4392f7345f11672932915b445adce009a58108bb3e08d6429ff6b718e0885910e0f36475234b2689d2324acae9c9ebb231db5febf0d56833f5f5fb3430d832cf04653e497e8fb48b075370e016bccb0b1a9c4e4c7fe2df14191e820d3585cdef27cf41bc5dbac80053cbad2a8cf95a42a41f50d2efa2d846e280803465bacc78e2efe459bc11702b35a3d1920326d1a98d9ac89ba386cb3248ef238b772b25829346ca13874711694e988df75586640aa9d627720c488d47be4d523f9a7a591e2928bb937c5d1cc0d61560fa07298b2db950ecb11e65b613a85409b74f35042d96191e61018a75a0ccec13e7a70549f2387a941f478cd0cdf32a54322df43c3976d4f2ac73a5e9519aaca9cfb5535bd1b818f222e53c4821b066e441b520d26b9b9240eef5ad714cd68774f34c2ef06a5ce4db030c91de05889b30b7e7fc76d577b85db994797149fa8e71deb64cc75ee44cb46341d105a2a5cfbc2ae8ea205aa352175c2ee54803507f83571a068f7765d69443dd26ac7878bcc13be91d94dd6fe7f1bae92f7ed4d59221f129ddd2ca971cae8d31a8d83c9d27358e42527afe0e09d3548c92634f6914eb4c4d58e4a84420d985d0828971ac480dc58e7b2a3f636b46de8d893b633ea05ed1bd922d35e3d08f6bf5bcfa69f2a187cd02d736d2119cb2f4838aec021abbc7dd9ed4522dfb01bc027403d507bca8f8f4be8933ea70c9155f7bf76d205fc943533f76d94116345d4baef1091e9875b22ca49eab42f66dddb3353278c8cc37991e750d3e5799a57436b574dcc77d2ab848e6c59a4b7bb45b7a177d8a896856e2c26b64c56e7407c7916eee897df6c8df2b7ef473a8fdbbd3722a3e787ac7026cd17c3ab3c8d9314162d51d2659d68dae3c6434c93f291c6201b579f6ea1485adeda900d458e93a972c4927967e3d43a8e563e5de717b21a1bdc6a1d7f36401f50c76d2e59585ca8f8f9d4f96e155ba0425077a2fbc65962af88eee950b0ff6210778fc3c6ab11edcd0587be3da408ea5b0da5a96e281235893fe74412927f8a35fce9c5612f2ff9719de5ffa71fd227c03dd0987db280c22dc062bfea3c008111e950f4ba42c17783104dedddd20bb7f2a730d990261caae544fc96c0eac8a4c3d5cf7bac28848a8806c5f5e7ee92b53cb6de7c7444b8b88edb079aa4bc81784dbe283fa0c1cb53c2f66b75b569efc15ebec3a103a1a6f92ff72e0e4845771ccd5c985f4d7bd78fcdf605241247f52477ab5c8134d938ec40546f8f25b2393cd3ee5e4cb4e7b8eabc3c2a473c937694d250b52b61a3f33c4582dbee81b168146d2d2186e31b69aa6a8d760a80bee097a9fc2439ee348b9cffe3bb4baea23b0a41c7403b5e8833a3f051a985bba5014dde5f23ec163b3095588d51022156de1f90f92a384ab8746c8afe8c5d8cc9b2d875a01f2475af83a948dc0702f343fc9ceeacc24eb46d3d21812c2aa75113cf17c2140efb600b32bef09fa1f67ee750c067eed8799521c51bb62a1450859d9b62196b88696a012d26cd17dca00924616d78228f60313130444355e984a6e06a267781e5f85ab8767018892d398004d032b4fb0fbcf7a4bfd7b6b644aae8732438f34b15f8c2e026c15a9efe8daa61650620716b91451f750dd0fcb04d29d463b1f7fd549e5975f6b3fd32de1ff375098c4cc0020c4d62c2bed1d1690ac975e9cebba3ed76c4d40a03ae873e0abd38a7dd4d80a460f02cf1ff996af5549a0d78e87b68c25a411b104edc6fbc34f9f8886029e1478ce2c6b46f1af0a4e083ece3ccaf01d7adad8349b4a43fd1bfe82a73b2b276cc4184cfc53c4135d2e6d0d4341e719483de37d1d561c51c8fa280420442ceba86322058e5014ba8ee679d44d52ac1e9caf5725e437a86bece9c0efaf8c2518971e48e08f53828eb297bd04981aa9d09900e0bae769b81d02626f42942c019b01bf669012498359c073266a89379154f67f64c06a21d4000f225fce8781e2caf32c0ae01e22e4b704807cbcdb0f9682500124f71a5372da468b13b0cf0091be3c42a40fcfa12b20eaac3247152927d443ac4301152f98289634db5c44b2f70733b1bf02ae07f2e3c2924a79655974798d08bb598a6d728ab61cf9d1c66c48a52d90be9992f0f7cef1427491bb1d831b700aa583b40dc6bdb257073ea8239bbe0805cc2cc8f00de69789c7de2db4268741ed71e20ff10010e834e84e07fe00028531fe2d99fdf02b8e7bcf539b92cb6dcf4ced1766510e8e8ea798d16a4d10ee124e40be09f2fed0e2c1c6414f8b7c6e057fe53c3c1402f7c6851d748fb3a0ce9d24216284813cacb235b97d84cdd14b82a91f1108b7128f6493303477b97833b7555df3dba60522d856055e2f3815de6a560d04a3ddde45accd892f2ee3730260bd394869f850ea67e34c60bd471e5f2f9b9920adb7113e050adbe4ba8dd773a34047f649c6d01e9b79db8890a5dda173fe89e9ad30f3e29c494337fb94fe3371cf70a169ca11104e4f39cd062e8cba3f5078ea1b969df616b2565b1ba4d44752d480f6ed5e46900f470fdb0fcb0fde79adb86986a4477b5c206a06220d6aa841edf95396f8feb3d12dc81ebc705917278cd0b0ffd5e3c66211a137de5b0a4cf72fabd34d388cdddbfdccb7d006c8e74e9f8e4fd6a6a0b74756817a84a7c76d61d8f1b89fad331fa396fa0387fdddac74554f0adcc50ddcb664a24aff624c6e61a270efaef45c6a93b0123cf40ebe03e4a105c42461f137aab7d8fcf02b35fbb0551599b695160124bfd01bf6a9082552938be8078b8f3d3d0df3b19b3dd571ef2ad0ba9062f82610e304fd675af64f2bab9773f795bb597f039d8cb5b216e3fac6ab329f110d6fafbbde5f73c3084f96ada8c5eadd449f22d400503582c14918d03d5d230f5d9ea8ec31d6beb2bd3f42a799bbd6bf3ff3f5415641f700a3640ae24c5e684a607d813ed30b24a187af97fd4aa19f36301376c2b0ea4f48a5e530738f7e779c533327d4fb2e8633f75fece1cd256e300b67756395c4be911a0862dfdd3c7e8f37f1a5c88fdf3aebafb502b917147bf0f61713db7e1e41b73829f3739fc762992073bbcd907aca6e6a0f21ee92bac41bf578975ab5b65311f390bf6e30f71fbe562adcf0d02b6affec86b782a021d0e7a26bb2135cb19b0fe6e3c9d5a2ccfaca9daf387bda549fb698992f959c7e4a65ebc760bf5c941eb3b8ae68a36fabbece01e0de4a3cc52605a3fb4f23c0828339aaa25627a0874deb3e06c84e525ab7594f90929edd3a9ed26707b6699461b1825a9e0400e69b529b53b52921a3ff28e4007d89ac7c1ed189cdc1d7bb9d340c6f649295648a59c7e89ae2092cbb0ed98f22be68f983838df43f34dcba4c2c2ec285ec0fac111b23b6619b22804c5d6afadfafdb2cce92f5e7334e3ac6c45376d3307f7eb629550f1bd3b94df9bb0fd836ec726d7b7fd956680db358d3fc962ce6d2ec61cb62fd8bfe80c93eb84f18d2d582897e1bc53b82881562069fe26955bae3ee3ae8e27fade3cba28e49b96c59a336012c2a834f2b07df9b0887c1c7fe2fa578aac4a4e0cbc2ca0d9716af42b7504ebbe77e1a9afaeb8ebaec90701e375550bc0964067dba0a420a1f9026154292e120975374715ce11769eacd602ba2d0ea49a2ac74e7be0a1fb22386483732a606d91ba99f716405271676d4cc4e2ed734f7dab6bfa2bdc43d0a4e1644a9a24b6203af5014fdc2caa3afcde2836f9f5d2f3d58f67dfb19ac43c14585c229366107ee2ab33a8497a82cbbf1558b637ecb015a0005df321c2c951f9b5245d77163ed0151efed5b064eeebcaeb1c47779bbd884c43b4b676362173f0184b782d51b67b3fa0e90df933b8207a6a32a8877c3ad6f6c4115d67670c82ebca9b5609f464f4d8c3801746c03550cd60455436e6d1603c29986e9097e130d58e65c594e454a094a75ad491e6cf3b806eccc0d71b6d99013eef63e6c2f8b65dd023613855191d8b68d976180b6a2023dd8e0340d65bef73c832f4381082c96283e9c8ed1c1cd0b2bbcbd9e076f81bacf16ec9dc603eca3105abf8e7d1450c32c4e4d44fbc224e694ca2239dcba94f6465f9247b756d3130f1f7f808c0a8a824175c9173f7a1c08b0a7c892af9f41443e25ef52928200dd1314079d01c404cbcda46c149f51a4819ffdf09f96ae2d32493e088840ebefe34efcf638663b1323e399b3912b60eafc691369da93bb12528ea580ed10ba6cd784dc665ba81610957e08e7b3caa4e1e6171705668197d0dcd08d6b0ae8812e966b2a9f06fa696e8aaf9b78ad99d2684cb43d089415bbe65bea3681c8fa1eaf9c8b04caa623b258305c19251d9945d2ebfdeee37b0d28aedca772bd3c762ddd806db59e20ce8166cb430856c0c1988b2aa13004a0ecd20e0460bab7b90826c74b120c1c098b02671c652d627bc998cb6e3ffb7fdba41142082164ef2de5de01340b260beb0a9a65282f263eb3f0075a81b9389388bf2aecb12a54a242265588f9528f28c1e08931c6f86901da2c4a5a708b18600fa6a33234052a0fe73c16ab53b6abb91dd655653b9d1d79e3e7250228db4d1dea1dad683d1dea1d63d48078af5a803d98d01428a53dc65885a840adcb533c635546c89bf5cba5a8bf78338f3a897a5f22e0953eadcf6a5fec599defecc58d97a7f5852c6d53d478e88bd9f463ad7ed98a39f9622df100ef7c89087863880a8597efc1c88abb0c315a0c922a6a5554b4027d872f06be18678d705a215bbc3d331fbbe7b45d77f723cda3b17ace38a75551b10af4c55a75d78fe3b391b9f724576cc0b04b1b7edadb2c9402faccd901aa43cdf3f12effc366079e91c701c0d3a1079491972fd23430971fa2696c5ce2b8cc2165f7806ebc7b56b8432797ed4e177b268f3d3a0473479893dbb1475bb88739d9629909e6b809e7203f4b40b9479e9b4811cbb619793eb6cbd7340df710699a1b2e471dc932cf5fffde67fcbd18305e7af1f75cfc49edd80db5447ffabb89a9256a4b40c45ce641dcf0d30d97b9e14922a5614b409c2ef3204e97917912fec9062193045ec6be36d1bf1b6a4b44c04bbf59232f46de866fa844da24aded3818451e06c99af7aaed64eefb6d2733c3cab01d17c3bed8ee256b3bd273615d644856b7c5f25cf94902ca222fb250069b3cdd2a4c5eabaf0b474ef7821707c7713870e078123ef77793a3963053359972e4c8f124f1a663f5bdeb30356ad480818781877912b6514bef462d3d5b02e2c60d1b7d1b7d1b4f129ff67454c85377a836ccc95bf50773f239e471c8dba843b4491ea6166993bc499e93bf215fa34a79f91eb2e3ae9cf29e0f1d5e8cec71e58dfa6e6cd47753a3be9b8b2461aafb7846fed5779fad793192b29439f96933e6e4bb9a2b3f93d094cc600d07559444989352be9ae62a0611e6fdee3356f772af3f9aec33b38f4dd42d4b717cd96705688b802c2533333333cb19399ec980480bd2b7b2efc550c7a1d807e6780811e6725e0c1b01e782f685b9cb56cc1da1135984f907331f432aa2a7c37b32d4e147a48a3e1ff23abad17d90b29d751f33f7e39c73be187ae2c564540ba26f2a8b24c9cd6bd37bf2a781e092e88321cc613b843922539ecd79910ab47b5372a08d0f124e2086db911e848f3b839cc2b20a9eb1fe745c88ddf7d17b56fdddaab20ae6de3196545e9a9aefea3a606e7cd7d250fb617e075e4a43c0bcb920841a8457f5623aebc29ed38fd3f3b1bdc337c5e5def14cfc53dc3e70510f5f000d4ede7b24d29b9284db91de6180f11f4c8741b9f094b126b157b127cc4149a54d503e9158c04b2be6e1e5153c0324a9344ddfc0cb9fe7830fa5ac72e17bafb51fde7bef9d6b455196ca8587ef9da482411941777aa5782352623c320491220c38022ee9c9820913b71f21fb5005c3f7ea650fe7d1501aed4ba088358f46f497f368462ff2685cfe1ed04f77a22102433608b8854e09092e5f7bdf0891a60921e07114065170a937cf04dfa22221cec009b7f27826f8161f17fee00941c8bcd3ee783190c7012e8b9e099e56d333c18bea8b6782df6afc8e1f2e6b35c86f7c400da4371ee699e62bedb13ea1e9b8f335d30722ef07f4c74d1f98c3a1d4a50644c82604cc9d7423c522f30d51336d8d06042767b3795cbfc3b677947445efbafceaf9b0b0e6f860040a7198ebc3168f6b2860ab92756e7cb7b81c84de6a3e23a88bb9745d564bd4ad1eb520f45e8f9a90792bccca17c3afe1cb7612b8123e0e5936be981a9e8056dfcba17a0ddb9a1f48ec8f86383e50474ed53c7f9ead034ef747cfc6227c1c92f6bd1858c3333f94681a5f4a2e0e35210d509ef06030989de41ae875b577ef277b0f00f73daba68dbc18d8c43335e047660a5c137e847e4000b05df5382cd4bf10d1ea420b9b40125048c5c22a98b300cc60940274d2e3d492880f038ce410116208244caa401ea8c44c473bd8a4a12664bb3f72ec9034d0f8acaab95df343074722713074e444073535dda307a90d506ef7276800ebf8ea83b0c73b7adff50e2d658e5f5b4b22bd8f98631273dcd1775a49b4e99df5aa551b28fde486424a15281da519a6dc780628376ab7a37da8c528e3953f366b27a968757ac62e9e75fa7d7522471f9d121be5a7477d4e22d1363d9feabd670d54b834c29ec27beff2e1c1bce703c63b7ef1ae49efa28b77d2e5dd6cf18e1abdab5ade592cef2ed13b8c6eefb4fbb6ec1dcb7d5dcba8c57d2ed7c57d32debdb8ef1d2b552a62a92da3162e2e48304a2f2f861faa315e0c5fab3266bc5a1a30356cdc78317c19956b133394542afa7cb03c1f30ce6f193d1fa4f35bb8b820c128bd3c1ff4fc1832663c1fdaf9aff6f980793e6cdce04c8f46c6bb5b03d22f2f2f2f2f316a75619916daa888a565d4c205e9050cabaa2f2f069eaa315e0cfcac3266bc3e530c3945fe94d8cac011c0c0e408606872df11c01083fbdaf2d072afdb55f761b06550412ebdd47f770873b002ca32a804ec814b6013c8029e79103a7121cc2a36c233dd6988235004abfa6e122820c5e5db3d2b30093c175e78061cd15a10be41de1296b8d5b90a41041b82672a5b65efd11c6187a8478040ab770fc80873f0082b417e275722cc412347869095dd914266341b21efb44240223c23ed13daa3f501a769345bb3c3a987cf08cec034e38a4ae4bae3aee2c7f81863638d35162fdec18bb77ed5773b46aa76d57dd6e6c45c5f07733d640a9c2976e0ee1a217288d434293a09c2ed7edff10755aa1f7905f908a909290a5213c20beb7b5c7ca2aade85f1cdf0bbba7dabfbb4b6612510d2581f1150fe3b6f22a0d4855dd5ac3f2def7e8b6d2bc2c1400ff80714f645af8a56ce2a4e175d5593e7794617f30a897e4457cc2a0282f13afc10f688558decc05f970fe683f96098eda03d421eb1731d61aeaf8ae4dab148fa2c4b3438a5e8a7aaaa2af4d334d0093d82b9fe559158d61522201f511551505f9405cfb87c3e86871088672084160241f80381a093a67971d233db55187472d98ed4241e173c17d5775d2a0e066ef04cefb6a83818e8c133bd1babf6331f50bce88a1bdccd76afcaedaa56be3a7c1110cfb06db6d57d57f483054b8a25c53a7c34386dea5b96056f5504bc1652b63bf28642f62fa63503c457afb8ce4b99c66c13019d972b29d6174842a2e46674c9a29f2a540464455730d75b08e8bbe9443fd7b239a3cf0aadc0691a980598062c90e1767be176bf98f6f199420a15534457fc545888aadce63e0621648c5903026ff1b4a9dfb5f458da1f67d631583726e8e82cef5864f07305d33c88c56d58e536cce2f679c9edc75cd7a2c46d9627b72ddbb16071fb2e94403b1626b7df2c5525ea6e79476bfeffa3fa4e3c4b9828d1637d368e0182124451051a7e8c549c6403ccccb029bd153f72ca18639c314e1dccd54ce9e3f00f6bc31c1b286483096ef79f980286529a929bfcb0e14e3d708614e99e3272139ee9f7f989133c0333d0310b5e11f042eec5f4109a7b98895164284d85abaaaa3ae9e06a6a48cd038632dc5b753301ab18be7a347c79aa3953bad94af95567eafc7acad73e3007e37befe13027dff1fbd57b6f078eb68a6dc0e2ac2eac05d805254341777794289882822150d99c7352150bae260f3aa18926a270421354c026ac709f139ae0c2ddb66da314053f4d581959f739418a24606da20df731371a8d462d5a34610d52c8fb9c90822368a1f762deb10f600d75d0ee7b0d9e291e0106e1f2df833bf011330d08a44228610007a83375ec9ad7652d999205165cd67c3283188050a25c71f9508ac78756006258c5652c2e43861c9a5308518401cc553aaf00e54208e16329108704491d9b401e6bc45c892222821e9c1c262efc102186608513177e8767783c70d33d2ca0cf10b00086db3d2b584f093a004f4d196113d803792a89424a22dd9b6e9a7783d326785341281307d883e9a7041a20cfc4da8512459448854891a6a16de257b40b57561cb8f2b3a769322b6d57b1edb6dbcd9e2badbc1829d3f04cf2928907ae9c4930991608bec1aca4d226a95d29022aa57c3381ca1b29e529cf4c9973ceab563c6d92b76ac5249ee7ca57499cc4f37cf0b8f215cff3c157564d5c592d716506483f91650eb007d3c59e2b4fe3092cd87cdd2ece15d0be5dcca4468378867a3c37d182e8734f9be4fb09f4cf07bc7c7d3ef8320cb708be45f0edce4bbc1879d680489e2d033432b17109f7449ecba7e00e9c80042a97c49c94db12b1218b01eb60249410fe74e1e9412aa59452eac4ebc44b29a59597a9aac36f7e36ba80ce27e2b6047defa88f8c4231ce6afa715156d7df5ff8d68fc85c574498eb0a09c4302aa90083787e245cc2e408243d4e3c8132b8f0d494457806466100c4e2c25987b03b69a0ccd13e5175c51c0db202f5896c70f284fbac800489c816897828828061c00112786e28c0c3232d1214b8e90820e10927ccc0638627210b564cf58c52c6d91457f09a3c904731b4868d02147ea340e424e494b32265d625e7d48034655d58a685366a5615165a50722febda3040e13186af2d2ab85211ca4257873420b1ca121d1b95a251e4c8c22dd845e4222391ac6a84c1286d17a0f0b3ce60f976011611dd5ab04c0b6d54946949701cda9664a25265d14859774659a29c211a451c5962de5b5a70f7c58d66275176a565449390e3360e11b3bc2af8f66129e7b52909f7c6ed432db49022164cab008592ab8e32ca6cb68cb329fbdab459a063b65980c257546c26652f2f3f4e3162c8983143527177f8b29dda1235e2bb63dfb8e2beb34f8999b4b8d0892ec330dbc1dc3e7747bada66895fa08cc8bd349c0c53c30696957854cd1855a3aace1a1df78daa2dc62b0629236552da987386ad6e5c99dbb751afae44ddedf669c8382f5236e3a36a5b12b242e16d5b3564ed81ba5645cd2bcee07abc2bedc0dc8f4aabd263ee5a5b056a4803d2d49d37d2e8b6dd91060d18981a92fb466d6d898ab22c8d8cdef88872d48d1b1ca72d418fc3ba0f66c2d4b0b836e15862ca1aa4ec064771b0b6c40fd696b8c1ba913d2dda6e881bcb007477da860624f28d8b6b138e1cad83636e9039ede081c364619973fa601d7e04400003b0b93704d8219b4078e0a107ee0127480184f8608003fc903381980848808c18311b0528765d52f2b3ec7b319dbc1328f6bc3aee25efac1d77af77d5bbdee7b6ead380bc57ddaa15550a122b1e1ea06b3d5ebed1faab1d57b9d63159758668db2901c23df2828075d68d2f05817ded66f7baf1cd575c0bca1bb9c7b5e4bcb2ab38c4bd1eab752b5967bcefaa3bf1c6d831bea305afacd6754929653377ddf8a909e92b576295cd9e1cc547ca14d9849df0138612ad300f33e19ea6f20314c4308a8f942990f6adb765bda3d629aa7647b8caed5b4cacbae4bec3be3e1fadcb1241ddeaca57575a23daa6a963160ba1ae5cb96dddb653d4ee49b9547784ea67e5be338eec4d11698e781fd491c51b6446a7484d19abee68ca260e7ae560d1118a095d534776c3ebc34723735c31c7fc83f8c937c85c3387199849233305c0e394694b9c34a25976050786af77308f89c3eca1238719b65b121b0f85afe971dfb32b4bd04e87c5236b1c7a502d094b7360a6a16a6ab40a50f848017025d4061ae3679535f331d2810d1466310aa581c287b2a0f058680d145e0d149e092ea486b6550f96dba134cc59330140a3cd61ce50b70ffb70668667683420dd35d2d4648f39be7c401de0997bef976eda3bf7bd6b97dd96524a29a5ac47b2db2fd9851c84a4addb6ec7102680ee286f87c4ad56a896849604859f2aa0f011fad08048db1921dd3e0f8fbcf13e2d08e4e1b9efb1b2cf95f1f2bb72a583f769420670fbdde808e9f601a001e9c83e58871fd9eb3f9ee9dee1b32b149e5febf0230095851b15b1b4bc376ae1e242c68c57db2387191ad8148e60093b5091d3a67ec65c8f9c98e1d4dddf81695ebf8667f8dd3f3d1fd40ab3258d968d31c61ecc750efded0394cfb1fbdddddd1de56c6963b7a8a75580f9fca8e1814b98f46709fadd0b02ea810c8300bf23839c8787270ad6655596755dd76555d6a37561a76cf718438f9162d465df594b3c649fe73b1faaa56aaba5ca06d10f9582e06fe76fd9abda37ab4f4300b5b44d540d55487a31d4ad53d53a665d56157bb0f798e38b81dbeb17a17cdd163ec9fc8480b0bb5f9117f32a282191c64e530d3e51528973c6eeeeeeeeeefe944478a6ab8a084165a71e35449e10afc8f381fd41717dc905b81bed1778b58409e946fb05b89bd0df690bcbc9878af79670fb1d0ef7fdc7a339b5a9ef0394e12981cb11decac21703cf97df4f6c6fa9359ee97ab59da55e0f5526dc4d8874133a13ee66cbe15e424e4d43a44d50871d28d3275511d516348602ae2bfb109d1656858fbbac09dcea7dbd85f0c5ec7b31d7736cce102543200f12e6e012de813a44e0c9f4db89dbfd0795f8f1318117d347bc98eec7c1cb6e02f1c69c213916468bf73df3b9f872011418a023a420e1191e2343ec40264c38814a34e94f19391faa9891affa7194ebaac2aeba04de5ce037f2e510cf13b833be98783d2ede398fd33446802a208be3f238c085374222019d6e87c4831c822f86df7187c485877c23eb8e579f89b9269168077bdc4e097c1c7a2f86813465ab8a348a502ad0a38636f028214a8c213847d1733e5a9837cff10cc330a7e3727f1c84e160a7e3d29f8c3073dfaf249c7e7e753ed734d4d9e65d9ee09b229d6c9eb4dd937282b6ed12f877057b272a1f14df0e1c455152b40f7c02250a2955fc5041059e921c91226f0a1a236d82efd1fd18bd7b69f16ec4b954d882a5e58fbeebcb874f07c8022883f19fed8a0801024a84390899340ba0911c6eb11d89c57694a953c80252c876b4fbccccd45b0ac11cfce137b343989301b42c7c6204caf173729883b6835114018944698f3c2a62bc75c0a3e20e89239a913d9d7c7e74d5ed2a1277bf1573500b5f5ea0d51228a839bbdf7bcf76fdca76f729733c22310761bc364c710eeffcc96a88f389db992e7c67baef598f9a22697af572f782a9631042a841388539ab08d883e9dac7ba1d85904a11404497873e4dc34d3c537c7cc2841b53706314fd6950988b1d0573b1a3700ef14ba0c03286c23710c18d1c05cf881ecf5178262405cf6c3c431fcf55f00ccbe3d94aacc1d38199803231a834cd8ca6a98f4c9af458617263100f377931f1987cf482dce4f9d0f85d6c73f9f6ee745ddcc5311955c6692d09e13f462d01f1e2325e9236881797510a22c6d37e6034f4dc1dbe5cca612efedd215568854f47a9bea8af4d10004244f562f8b21eb51e9a401daa1b8fc513d08ea17094a6c1a2e5f16cc5e8f17c05cf00f1ccf578fe793eaac73394a669283e3c85892b41ea25348b1b5bde71951b47ef580b24180ca59db42996fe6e6054187ff1205e5eb249ea5ffea2fee549ec614858fa8b0751fa0bfbe249fe52102f5e7ac92699f117a4180f35f9970aa362f3496adc64e3376efa901a374d3bc4c6253d490d1bf1c587d4f88b93ec101b2ffd69fda4695e58d35fd824385e7afc4b4d62e33087519340219fa4c66198fee2434c7f716887e078e91da5695e9a2609f71b8fc761aa34fef22134ec4b3cb443386bd3a6f81bb6a1b429d6388c0fa9711896c6615cda21360e6393c0fce5add5b88d77271bb5068dc3f8101a87716887c0fce5988d5a82ff4d8d1ab77104c4dbb048a87d5de3ef06a6068d77d4460d1a87796458c1d0a8af8f9c9ed6c7c18b6f274d537a7c3fe98ee2f9a01ea9dbe25d4bd1cca12ec92582bad56d18b275ac926ba0593ce65275e09b74175b0ac227bd073ec93ee65cb83c742577bb4bdd0e8b90b77b543a98811b99b8b1caaaf62a988ba795a73017bf559642546bfc8cca54da141fa3b24f9be26d8dffcf8d9751819a86ad30135007aec193896fc24c7a6e3c132b3736cf8df106ccc48d74ab6e8cdcf6d68070c7a8da502b80920be367c511caf1d7343afe288aa2264551dc6db43adc25673b2597b7a709a111b9ca7f1ad3b894e71cee3aea735837c83c4687cd71838db19ced2a1db6da8ee6b01de9f665bbdbcd768d77edec678c56874fe3f29299f9382ecfc99cd8c5f3b7db38571d79be4a9cdcce7ec3718b83e36ed3a64ab94ae3d50d1ab7513b2482ae7d8ddae55cfb4a0b32baf1184cadafefb6bb1880ea81a9ef624f9b9346ede0a5711c644e3b789cc62d46e32e346c575d1a6f9ecb53a8fc000559b11204f443650a3be12750a2f84891e213050a3f61274156988799504db88995201f2953a8fc0001fd509922c507f6c026d0097c02853a0e7d1e3b64ba83ac401ec80432813c56821ed089e251d314455194edf8f63834dfe5364da3becb562eb5b99c064fa16cf73420d642bad923a77b0dc85fabce6d2948cbedb738e074a5d5713955e22bb9a1d8163144e63c5e0402de0de469137c11f0446c47c0bb399d874582c48865d271976a1c785ca6834c64fe6e665c3081be9b1d7f3727fbda2463dfa69f69fb87adcbbbba7cc7669b3491db5d36974f1a50be8c1915883527334551efc9f88b31c618638c31c61863bca48ceb3c2d19968c0a2f5bd88c0a655c312a10f9185f6a07ef0b45512f2fbdd8aeba2f9f5dbbc8f3031444c5ca14293ecfe749e9eeee97a3288a4a9129527c6c4e7d99e613efe01d95f9bdc9a74ad65ffab112415948dbeec80bef0bfb3007ef0b64299887993007ffa2b212dc539909e65c2c2f610ebe450d898136c90e4387a3437876e20ccff2b6a3da524b415a8ebde54aee9ba694a3e4063e69135c0205d6dd6d5956cd1d3d741746a033a7398fe3f00e3e51f21da7f7e777d45395a9ef7d3bc47a4eec4f6bc1de622bbc38d4b7c93a8f6a59d14b39333316dec8bc1404bc9139bc91b1304a9ba0929b1ecf415473b38b34212c2c38c207de0d6517499982a5602e8b1acca0159ec92cec71abd3e9fdf999caa366155aa98205cddec1a00b839883cffa49f32cc103376b27ccc166017390a3f0cf95b5e36ec753a014f0ec03cf553c1fef764cc585399cdea3ca503f1dd4fcd387410dadc09fe0658298baaa48c127569a6aeae7c70748cae9359c0f55c578c11e22fa46dbf11fa5e1bc4bd91d79e9334dc804ae5cb932851ea3d9a9d2b0a2093e3732f5ddc826c00bcff2f37cf4a0d476dc1d395dc11c044ac275280b81988330be294515a11a4acea5ba79a8eed9211174a9ee81506e67bd77e67c8cdbb177ab6fb574bdba57d7ee74290e87caa3ee38d5d726994ad9eddd3c39dddd71364a7a728650c23345e627ca23e270f9cae6f671a848f85cea3c76d4d727992d8bf773ad53a187cef5f52b117db9292ef5abdbd7ac4cd334212d60000518dcec942d1db3a5cbb214d5ad8222ff4099fbb0141c650851823ada8ead5cf81f28c3b6abe0cf6df1b9816107bed0a1c36983251eecb17a3ad10b1ac333f5ad4a240a7a310d0178f9b306f0ca20faeb245aa1aa7ea70d6355b52c6b47ca8be75a8fb58b3c3f404154ac4c91e2f37ca474132addcd9da8d44c91c23e9665512932458a0f6c62436b145171f2a43c8ce73e2bb7ba4559d9ab4a1141ddca1231235a7647de18b245008925511551152b9f53d079895355f459d64f3aef9ecff5f8eb57dd81b97e280c94fa45c51a822e1405b1f088acf0cca3620db76359729b87ebd45b2a84027ddad4dd5d6155f51edeadac8b2450ecba2ed26b346e1a51509bfa1525917eaeb21d773ad5b4d5fd2591670a9abd9dd063ef694bd1edd545414d037b7ace9d7a4441b70f7b9aa6aa2825917e8eb3de9dac2cbeab1159a9a220e6fad5d54455b2eb845aaca72756163e6951cff3d1e3f6bc4def13658680be9fc651326f070125d7f5adfa806af79d8ab7300bc3dec3bb987591046a84923b3f77a0aa28c88aa80a733d04dac19e2027b127f6b040c9f8c508a723a72327aec2a92652efbd8a8330be19dc418634de9dc903e6eb28c509638471421ce6c68a4cd932fbc1333f3a9b1b8f33b93bbb9a3bb3d064a93997f5adc24a551ce67ab079cdedfaf78367ba9c1bbb9cab05a1b72b72a3cecebcf271079ee96977e68557ae04b19911b386ab0b434716536bc0fa0fa63bc563cd4d513bf352b6eb6e19fb4da119aafb60201423459806f2c429e39c71ca0821d4a265001228a62cd726f81e1c8c9326bcf01852c11e8cc402c57efd1dc218cfd193adb94d51aa7522022cabb323b9aa1e3561609863861a10ef9960a45d6d4e91c21bed0e1308b42d69fe608aac424dd5ef992a18eefdaa9865cd6a5e170ccf3c4901335091851264a0a20c4ad02dc45a671193d7b4a8aaa2ac79c94c0b6d94728216b4806173ce89d52a627fd89c735a7f376653f8d92dba85b49ad9115712dd42715ed6ecddefbf3b63486a724adbed488c2b29728c8f9aede89cef6a1576354b7d9206a914e8008788c30d6e70831b3061a2052de020074cb4a00576a2852a3d55a26cefbdf7f8925a0c99f2834de8a92291cf87c040fb44246571e28b9d16933d680f6d55e858a4a3430d484b8c9b0c68c75dae69e8c90879754677793c037866f4782242f04ca9e5f1384d433a356a317a1ab4eae82e5a7cf4a70169317aa91a21af0ecb5d8e59c75c6af7ebe2525d9718efe875b98ccabd546cfeaa3ab2cefade03f56c27af57ddaf45711d61d8f8c25a27d98e745daa0b1797b6631e8c33971fa83927cbaf0aad4e0823ccc58f2a03988b6fa945988b960873713ea1d4523b038a1343a742a1889daac76c5671b03a5d40270d64ed7ea5ad6ec14b28792712911425e38b340db4c00f4e4ebc11092ea0e2c6184110b907092ec0429ce2640c979291448ad7f14862aa828a6720dca810a55194bd1e949b569d87ea8c6d0f86866e212d3b9655cc8eba92b690c6da01dec51eadc7c73f92a4ef8ad506026d292fe93c750a6a40a8c62abc30f6f0ac12ff511206a927ae8a45eb440ffd8a2cc6d956bb223e88ded8e1256aa95a5844da0d55886150a35a9c74d2ffe22e307442c71eaaa26f95c28b4477412b2a2eb71c7ba8b65c54bb2257f4cd9658be3d5462f9754c1369224da4d9128bc579f7faf550c8a67bab54fb767d3b46655ba57f5a10ec21db11f16b048c1bba0dd3dafd52914824b2259c772f1bfaf6d0b7d3db74a88aaed5eefa1b8d2e0a9d5e866a8be81895856acb9f7600786b177a8b75a1041ab23f8c2eb23aa36b56c7c545df9121bb23efc83ee648a72efe0ea376f1ba5c74a8057161237324fb98737964cec51aa0458bda21712b7ad1315a45b53a26331156854e2f6a61bb24b73a55511bc26c37ab2dab6cf6993db31dbcd5b7cd76d8acdbadba036fb555174aa03b7dabcf43ba136ff5ea3af5280fbba852d7fa3dd2ddb6635ba5acf110b29d921bbae8b46e9476a44b2163da43353b6f0f6d1fd116b6abe86d47baf42cb6236da72fd5f74cf4f49bed7ea9ed30ab43fd0a42d9ab7b1855457f9a08feba2e62b19d92cb72ad76bf5a88ceb8f4db5b36dbcd902123468c97975209068c172f4824172e5c5c5ab4188d5a5a585844224ab72d14d2b42cc3b0ebb22eb5eed6627b0b1dbda32ea5a48f6e5e7a1727b9b0ddbcdb47d4ddfe5c6c17eff6d15bd478e95b2a3da5b60bfd7d7b4bfdbb4d6b21160cb33aa25f414438ef528af115d5ecd7bbeb105072e9b1dac15b002557f4ad7645ee7651dddefd6ea7156a3cd087687d97d21e1faa1d123836b77bd76cf6d729b917bc14456ff5292ba4445057ae5cf9b93bf12a7152a4c585ff0b7e91c4a9eab5fb7d1deb8ebc902d10abd832bec8a5a48c7f937a35e39c8ff2d484d63e2e907eaeccaefd7a4e691e7bf6d2b45e40bb8aa7e26952a8ca2a81da249f55f9d3260b3c9aecf1ca574b9e8f784982f2849d5c593111d5adfada346311218c340d644255b649173281ad0501afdc6476c7334500dc78d8c38dbf62f5c30e7aa90f5940ce83318767729883d47c3732efcc1bab1ba46f8d98a3db96c52427dd2baea6546c1181086d88024626421ba6b81dcc7dd9ed381d0f07f86ec77d871a37336cc80c236c86d0c9fb7b244672214d037d2d0621a251137a80e892e853bd99d30703d351c14415322c2183132d1246eee608e5abe2e4360c6ad834b70f9b5aa92aa02b00c58e4d43a749ae674f02857c12ebd8a969058df75941f9be43e1b98f0a1a04d1dc47050da2dc26ddfd501468cf4943b4a9cf1a10ef46bba4214bed92b841274d538aa1f890450245b44342df2c92902dc5ed4828cb435772d35344a7ee63294aabca52a7882ce533ed86066afd3abffbb4c2097482b9beac02a734f481328a2694af59236dea03019580b08e7d8875cc4a3be47a664bb1a1cf940e52f1891a9027b0c7ce69226dea5b555a41a194c905ea643286060cfe4119a1945046c85a108e79624ef8f71e168c463d7a74f7782f0d1860347013187792483fc7f5e944c30c5f0cbc3ad834e7cc3c35a96acedb3c1fdae7efa369b144774ee14e2b42f36f0c773e2b3e6d9a9f224bed66df26e63951b6a3b9d7ab53b7aef9340d53cf6c47c3e35294bd148c4b1db31d89e552efeb52dc330f3b25b70a4966c23325eb45c079d9924551f689d0e77909f730cf126625e6afda53d5f782cebfaaeab658272f1fa5a4a8577dead4ad19f7fa5ca26ac2898b1c2464e099dec566dceb42645c9deb96855278e6fab422926bbdeb4b25b9d63bee2065bbeb9566d9ee7a759bee4b4999a2a38e5dab3ba0d461dc0efadc49d9d41d988301e3cec329ded3c107284f9eccbb1dc9096df24ceffa00a5e799dead605c1817c3aaea80eb56bf6a90eb5693ba35df1b98459cee10d7ad6037e376f2f338d4b43aec243445147e6ee0ca3ffdde7b0fbe634ffb81b70065de7b967f780b5006329064a0f818057b305b48abee035ec6a01d51ca5dc860562ddb298136ab951768f7a4e050e65a7b17d677435ca03ad7e5edb88c9bd9fb353fb24addc8033a42655648bc97bd4d4f685f2ae9249ea97e9e91f0a12e60f13a16658680a8fc237181c28bc33355ce10224214b91dbc1dcc019481769e095348249c1c29b7ffc233f3324106b7bb27e549e1600ea0ccbc6cac7e909788be62e3af53870fd5a7d96e9eb27d3bacaf653b48b5dde9fb82b01d889a5cecefb451c7b81a3d8d083e0494dc5802a2e5a30f69f9a8a31d323a5b248cc58b559aa66955d5c92e4d9bafaaa9e958cf3abed92906fa0c550c74adaa7a65af784336bebbecbc5685b487fe7826f4386a7994ed34dbc14d13725d2a3ea4f5b07db2f6ae46c5a9c54c0312a3edaaf8aa3a5f115f7195acea5c47e246fa78b567d433c6c2ba5651ab635533947a143dda8eef7591edf85a67a0ab4189125fd9aecade555a66fd7a57592d5e9a2d5dafac181fe3b5f3155087782d73a1040aa4693d881ead4e7cf64c54bd63b9a8a2a8772c5a8b5a89a8eb68d52f8aaaac6e7231ebb22ccbb2580b825928d3f115771e466df117d5e5a43aba8bda725a43737e9ba138b52dce0cb3d845efe245998ef6ed9df6ec5dcc325bca2efa7cdc02d4216210ca156176275e2c5efaf9d05dea6b538b2afa64f9a88aec4eb4b41eb0eb50bbbdd27ec82e86c56f96b7c03f94062414abbcd9bc597d57d3b49b658f7f31f216a00ef0c64328cd0c7431a8cd77d0c9eda2f68951b65402027ef420de5b2c003fb216786fb14a6e8c95921b77e2cd2c6f01ca4c0cdeaa4fbc57f5fd695d8cd252242a25217611827c8776872fbc4e5beec44b7ac429e39c71cac85fa0f15d0dff07cf5091022e74c9f379fcc197d5bbf0e728fb60204e19e78c53c6f77e6c5ecd7926be56ff9e89a5d4f89c9ee91a0f6fca8d39171e62d80c01f6606c1e7c95965d747b5cf36760ef13199253bd7b53aa43cb1d256589d821b7db01e76536961932ac9152989005162cc0220acb92c8cccc0ca3804941833c9ae33c1ff04de1358148f7fb11227b42f81ede85966bf807df45c0cb5cd340e63f228dd31d2461dc003bd1020f70c091480d39f8c3137b010950c0820c5190c1e70811c31737c050946081c3eeeefeabdc1683c21c943f6dda82fca1f22a2ccac5a2dc9e2d9c4e53983e92a9cdb41087bdb7fad66a86cd4a8246a0f31da57fa6fe55df3335654f7f1a90283f6577c33f9f2882abca6e892cce3e04cf746f8a8561d6610fcf1146a05cfe911d9e59e20496594384a80e8381ecc01cd4b16ed967b128aafe7eaaeaa7932a08a3a3e607d32cc99c5019c1e55b57c580eae5c5c0ecaa967d42d3805c16d2aab2315eaf4e3de319eb7287ec15736f7421ad2e67100ac6d40ab00783ed60b303e334cdfc7b56a53cf3515f92a4ac39c8639cedd003bd440c71db8e98934598939601cc49292fe995a496186c8e677a7878789278950bafbc8e1d726c9085f4b1411657feb8d2e7061e90efc8500875a5bc808fccdfc34e955a81122e30059f472b18344f15094cc10948c0a4e7e674998a04be80091cdcf038f6e8a9ca9c648e0409580118b4e066c791605103d0166e4ee7519120d122cacdc942313a920bc49b1d168a962331e2b991b150d0213a602ee9543da203888bd29f1643c69f36e3064983857bf9d380e8b80dcb731478777cd618b4c32e813f565cea32efcb26d0df1ed2f8c97210656ddf503deaf2a70181711b8ef96c9a991dafb9550fcb51686c356371b0241ef5ddeca042c50a3c76c4788e025f94537d9be6ac2e5aac70dcc051dd0dc80d34580ae6d8877380cfc14231a7a0db31cce264fab41dfb4cc58162a7faa2c0f081ef253d4e443955a7edae773ddd682d5b65b5cb717bd68060c7b00ae94edf20f2ca952b4db8397a5e1a6f4d88ecee8e5553f5c8e956e6b29a1aed2cb7ed59769bceea557d3b262d991a024afaa11c36dfedc890f6ae6fabdde94ebb5d7fda46aa165e61032b1e7c3c290d740c1776e1ce1ad08d7bb18f39aef20f5fa1a3321650e8cb4b1bbcdbb65dce6f9b3d55e5b7fa2edb6f9d23d278cc41839b5415a5ef6140683cd647a36d472af1795ce6542d95e499faa996a40582c7655e621b040ffb1d3fbd346d103b7efa0e7b3ad48044fbfa54ab366d5dada701c9518f9c2e8d6ac4bc3a95877a96faae55c76d987998a288a0749c2b1103b88e9daee486657efa10999f4afd1d941d22536a5bc490d3775824278b80774344c62ab9998f8a85a2fabba1ce55a76b647e0fefb23d42ba91bf616fec57bdae757a6dfaaa3a6ed5d7ada386ab27e674d89aa376efe7b58a8c60b52391b81e21dd192f96d319b9dd43e4f69fed86b8ddddd4668f358ded08e9d2c068d0806a0f1dbb512b6b1ad71d7963d4b4738dcba91ae22c608fcbb57723e3389c5d3f711c8359bd0dc7d40ec75d42dbcc11ba36ad0a6197b5c9d8e1b8cbb91a016f7dbd0de3a8375498c73a735498b571a471ae95af909643ab42d865f136ed2ba451216bf0c65497dfa8efe2a82e8dfaee0d0c0f39c68267187620680d5020d54df894c603256a6173a9eedb708f2b3a5577e6cd58a63e3675ac04f39f1a9c00055d78c682abf0f0cca3420d5694e826b004375d2fb9b0bbeeb9308302e832d556562bcc1fbdc1c51cd3aee33afe1b9ee38f67ea71e8c463b152e7da344e51af41f00c04b9ca85f5b225eb7c59b2be7dc61863b4256ba326cbd7f8769e8f46ccb8105072657753251cea5bede46de85be8b376f1c645c57a85e2af23a71b7f5627f4cdead4533f72eaa23d72ba21fb98d3f1b69d3d8e1c344e551d94ed6ec891437bd5da31ec1863f13cb178eaacd92ec9ccb01fdeb45d85750c66635ec5dc86b11a13b9b7edfaa6ba032fd6d82bcc744c9e0ba957a8b44c97b44d2d999a190000000aa314002028140e874422b16838a40b7bcd0714000f8da64a78509cc74990c21052c62862880120220020003092844900ea4399496c944bc457d2b1f178d0e5c72295841fae51bcf0c74a5870d860b6be9c31da347d7bbded82a98d760173bca72d0978b72adfd0f008bc343c0017163fa8e118862e9433f8678669db4aab87535a7de60e50d01f0b2833ff06fb9f288c74becfb345adcbb64f7346b4951bebd515c3525f88d6407f9ec5b8fcb8883c1bb70cf6139f4f25fb31106ca8ad1225a6781158f6535a490e77bfcc7ec8e733dee14dd6239b8a69ec094cbff527759e015f8f9ddca03015590db6ebe18c4a7bbf012a25bea9d3d08f4bfa3ec86ec1f6916a792f9e756af0c029facc100d861c4e26dee0ef31de99e92d0da06848c7bf5713f5062b858385ca54a707ef6ef00a46b3b81ead45e414904138f89875c15bd9b621a383c65226f0d629c3c1363222ff03589c07a096023697a8784fbf821fc9391b5be99ae22b3220c0852f85900513f0d348d2c8b44537fd515b2b91cc5e715d48116e887583c1606a733ba5bbbd9960abb3e7a1d22d91b39e35d358a6328a19b9577aaf930ba0afb78a3b77aa89235678f67fb9c0b3fedc5b7dc2344110058efc8e83947d0e6a359eab5d31141c54e68710608198dfbfe3df7532d0824e411f844796a2ec26659cae75c384b109509d253642dde8837ec1ca2bc074e3d06ce5ade169f3d8766501d03b8c0887a90a1f713355c21a290a173e887e587f0508084e24d8f75cba96453a60f9481f8ef4813e24299b446b2860fb95ae6951025a115c890d7ad531cb9ad181e5ace45e8abd391549b7aef14784a7506f6f051fc82d9625afb30104f8b356573510657d9786f6ad91114ed96a27706f37bbfc73d38f8daad54872adb2df5e939ab0de7ce276f0723a93a3c5eff8626f547646321ab9ba5e9509e0f3abe4917038cfa19f05765eff49c23c199401389d6d441f1ee393bf73b4abdd6179ae8f44ce59868cc14fe92eda1110636f1808ea053cca28ec29265f2feafa3e0d82f4c47523e6397ab0d3e00838c4dd01410e856eb821c90b031b3b7092852bc8be4dd1761f19d221dc824b6f506959f35f757f665260d0c940a4a2c03b56a053a004e152c8901321d25ff34a162015686eb626946cea139d349379091612e0333281138f468801c8012f1938fc20fced7eb61be5d0b3eb19d812d4901f99e280361ea07e566879589094fd534f85f333c06c5b1cd2833554d68b09a09b0a36135ae9bb070169d18767301b46ee1cace452722ce318e669c3148196977fdc50287eef7fcd1ca18ea1533e88742ead7a0a561cf8d68a191b5e8e68883a8abcc3eb18a891d5c421fe9088405f348805740adefcd95148a3923333439d6c1c73f845ae669059c6ab0aba9df4298244b30525da43b08697355c4d9dac92fc42dcd5caa3b34aba631b1888f783d3dabe64cd56a8345223fa7c6c3a558bd18c3553544275e120d39b4452d4b0d0c54ec342dfa12f8cfb50e8835fc6f597b7a70df79a6a6f28fee3dbb0d778c84dde44e9d81e9874923b22f589dc7fea2d7c53d8651eb593c47b6aab66c1d62a42b602197f19d87b79f4f75b9ff82262b10b3aea648102a21716f77fed04956034e84669657c2e1999ac98ae04ec83d2cc518b1fc05bfe6e039bbc0816ac2b8ea8d027dd82cb2431a1315be6932ed1a86b24d0a74e93b3f00d4062d62b179c6e83acdda0213948a4fa377df06ed779ce5c7484e6b3fe6a61a7a773e928696eb9e458a288cd1b930eb0d30bf22140e64f7416e4e691d040be64bb5c46b80e382be0fad81711f0714d484139e14c5c25c154f384847cb4d808954ae886742548aa274520234ae180c86560a5844259c75fa217bc556d53b014badb71258bda4ab463d4d3939f19fc64ce8a8c2963d770229063ef927ef61f9e749a1c6e82973067a76821358fe02f1b0f1c6f4d3f253e788d652c323734bc04007488eb4a41e708a6b3bc9a8525db524962567fc2c8560ee942f5d2c2c9e8fedda502e4575f1cc7c247d81b2eb0166be0e80947bea4418bb1a64f176d53717760a15bcab9766fd45726f294edb896107d2742e07f48228c850cc4a33c7e03b9e516127467a2a453c743d2f51b647b12d8a37d87c346c32083dc59a58bab2e1cdf01f5d9a0c4991550fb02faf9a4a248c7976b421bc28875e5718de4426719fcc3329bdaf368cf98d966ebe8508156fdf20bb4abd4e21ec98de1cfa9d9a88211c4300ec4e5085406cb944ecffcff67d6a7e3f33cc3cb4cb4dabac626eaf192f38cc112034d810a9b351bde0301cf03e2bc7ab46c1fccf11af4084f1247f65e70405492ea9110ffdb28a8cae4084e3d42b24daf996c524be3f7b3bf926d518f36e00f342e6c4ea7edfc828f2506b7cb518fd6d85a7bce8592ed146bc6d18dde650c960fac42efa290d6f5ea238e998f381a30ea4992d11949eed56b5ede6aac7c932298459530b62698442c1d6530ed072231d2e3cc594b89b2d1aec6a558bed6ff3db05361e95f923619f164c1147b7099cb42296d5e03ebdc000294322d87f9d3dce1be86e1016d121f61f37639224f65a616ee3fc0ab0c4238199896b035a4928c82dabacad0f658c9ded8a08d902b225b00062e857eaba07065ab4bc61180ec2edd274c3ac89ab3781732665c1a7d260dc1a16af796f302d8bbc0f4cf59f46b24f1f242b0c130b2507870461824664ee84578aa1c8ed612fb8ef0e930b54194fb6c9b59373bb7dc5169413f12ab5e6c20076ec0c72425903e21aa7def4a127e2aef5f4765180f0b236cc70e92852cc99db3a696c41fd5ffc4d899f90224a94881c581241a41882faa948511fa5e45f5530f892143404704b2a9d24e2754e19b72b1d9d29db65455934f32d28973bb5cb3315d0d6a7135f75338a74ee37d1525c79158565b489c5391d090d982e855bb7084e03b817f896fae9d04ab008c6aabc5e883f853e3eccf3e84b9a4050028ac39261ac639d4a73e5d5c0d2c5101c7d93d42e762e7e7825b1c6ca85b64e5a47aea332f4a96b51e7b4048afb6751140d0480933834827cf2776fe31ff8f5aec6b7120efa45a26d5b0f12d616291157ce7fd2db1f0f3ad568a45437aa0798630fa9847f1c72d1bfe755c68c1564444ab5104a04dcf9ca281a2f414f2959e223b2f74deea541042719d5f7186209542912b40138518d070cf4d33d0c305adb1912b788646f21e12bc6a8fb51cc736181b29af1b24a05a5792a93b8f8554d5ed95307e281f572ff08d532dfcea31c7c473018797d5222933917b709d199d98b9c4d21e8cb92cb6ea548b23db317326918aa622a37b31c7a4191790f9ef8ba271ac3816b592910b35d935a3cebe3ceb3d12826371a6e1a6d82a085778810693bcdc468ab50749ab1eb887410764851c0c401eb9b2c753a536dbc15247245685ba6a155017d0261d917dde261b540b55b13986ea155276aff4ea763438ad0ba82448613206e31dc1983640fe2e6375bbf08a11e8e2788a434845353cc8ca912f78896fcc24e8a5481b2082ab71894a3acda475375563f2f5aa512b1e0ef1c4a19ccf3e32ed2ebdcdae3c9974f4d4f04007fd4f2b2465ab787d27ee74e64e36eac7aa8c89df76d84f8d37f1b22c16805fdcd3c8f121572ea80c18887dfae946c8383a39f4ff0a4c4ef0e66751d3e45950dd16e4114d16be2d40a9b122ba48998497f56715827df959e04edffb3a529e50925589a6677dbcb5563053de6dc9598a3b8ad81d4ed4b3a86fe8a9d7f0b871bdf40ede070b5930bd5c7182f4c14213f99911f960a168fbb7c1b4d00ba8c891aacab30e657fa636465570cf99c49d298aa0bf721f896f4535b84cf1ee7a376e2407b8e2b0bf437be150926322e6454b06e2e3d8a9a80677fc026a32e6f4e3a7cab198e62599b0cbc0a23b5cc75d152eec5dd708dda704281349d24e33c76e7d062ab8aa9baa4df337cbd85f89f4fd95b6bff1aba551aca2d0bfc821e8a4ca36bbf61dbdc53618d14f4ead16643eb37b10f86c0f55e402a140e8f7e38ab224b85d796989b0e733599ce913cdeff4a43815020ef4f25b9ceb189e85c1cd71485c3b0b9d0c66fe4ff9a2dc323e33e305cd71bc8e56a38032048e6e26e2efdfe328d2021d3d3313d82bcc7df8c39d4531e8e03ffc81b72d7ab056feea826ee96c303d260d4f1a77a3e28235d0cc8e6be065bdd268ec1130ec526b334e046277cb4e1733bf0b743b9ead684991489c167b27d84d783be27924643bd08789e0592be466a8cc416e07709fd31349b7c8f2785cdf4e40dd5eeff2a4dc325da49711c62a0d8f17774fd9aa8cd40f48277aaad0bd6d1e67d9cb3b6a912ef3e98c0a0811a768a2d30314cc467e0c924452a87ce7ff4d1dfb0a134b8915d44c32a86021ac5af30462ca6c9dff5873544781562c02f2f66d676887c32b5d4768a9a166151dc6f880d3f9e9c21ea89d810efd03012d307adf5f84084a2207a60e964fa7210425e9cbddf766e118ef8222f438513d8dd0cac58db54fc216d3e1ee93f00e029f723ff32c0c73a29a2521cdcbe557f70d9968de17b21141a0f6b257884a90b55653d9c3481300d5ab904fbf5753a7367e6292753ad48006fb48b0fc5e8412d7d22fe7ad2bbdc9a8677dcf00773ddb7f04a8f5fd7fcf17662ad16595f9f09245c55a2952c0b5d2405aaa264f7cb87b040bd4bdd128be17ed0b9457be40862e5de3d2ee7fd0e4eeeb6d782e4009376006a642192bcd6bc4cd78cb8cebe18cb7459f977c28053a2bef4931d1d5d1f6734144407e34ce928cbea0776107cc36b79e8f651f617ccbf70c812f6a5121a78277b054a0e91a443b53eae09c31185cc5cfea9f6616bbad23fe76a88e6f6f074a84ac100421e442b5f805f2b7b156d30c3124b633c659db064ad858aea83349fb0232b7610bcd0ecb1ef4fbbf46e034c416f7e3f73a554b2d5c698ddfde920d7bd8abd532d0dcdeeefbe997ec23632028f9e075bd66949756714e22a95af44acbcf3dfaf36123655ab20f30e490e50ae27ff74512d9c3145f76c3d5917d92070775d59cdf8315d69c56fc837c452877748939301e79922e3720b563233e42477da8f2558a432351fa0e24543991e2070943d224fd67adb15e3ef4bedf6ed0cb1b8af15947b299cdeb4f89a33bc4d0b72dc7ec02817de53819741ef860bd595d3d0facb1ba39309374e245014a5da55c75574051cc5946e11d15cde863156694574cb96546e6440863c1080cdcf367b5cfab88dcecd6bbdc2ab7de28853fe1361b8f1de94f42ed0bc602e5964f188f0b5fa8c2dc09f3c85e758e60d29dfc4b1cc6d372af63b51551f391212d80643250215161947e2dedf9aff531b0eef16be5dfb37edf8b30c8ef2e46976bd0f103ef62899b8d03fe5fbe7af1dfe21739dfa4a6b01e9210bca0be2a5bdb66a3d230033120f501f92333224d2b78a3167dab89fff22daa179bfc027500d00120dc0e08491c520ab3433188c0013b2a53d66b553ebee52d385d45e385a43a1760aa1a68de253239a25f7c98cf21babc8e521ce211280a5ec0bcda4d56679e89efe7ad246e9375fe4c3fae5613ae1461f6a7097f838a6c3f6b88968c13f48974edcb94609c45e6cc5a7bc499a80862806b42e8adb4d97203af9be064a39d5ffb96deb838e65eb37e40e78e69186ab19a8dd60aa9cdf3be29c6d3b769d336af97595a076af38b8f9cb3aafc28abe4e4c75bfa1e82bad475db681e6ea32d559e53831d9abe4e8ea5390b99c434df198e481e48538ad3cd650aef95c236663ffbea3cc0b61100690ab8b62b2992e0bca700a6632004c00bb55daee5e3a4d521274d653969f597d3fd5666ce496b358f685fd405e817d50fd1a27dc9e44dfcce59db1669176b747c292232efa4c9ad5afc1231a434f4a1fb49b8197e7a0850d44cc43f84646b69679e58384cb10c76fda8410a4f4d23db8b6758f47330f611b0233a0e4e6a60299ac072ef3ee66166230cea016f4e5e340efbf054bee2a4182259a23f9e237399df0f9df00a2f9b949f74fdc4c0d2d0f2a13b6328a5c906dc0b4a17c03c9aecc59b54842274f3b41383a6b3292a1d04535928ab6287bc1745d4239e5b7f9ef49a34cedabb5b415ea0380e381c82867de3d55e5e78f23baaa584aa0629d2117546f99cc492379e6c033c57aa04406996ff5dc56a886624e8c52ec2fa0055416365769ab6c5a1159864c41ec953e441dbeeee0ec36610c1d63cfefd1d88f33e89daf057cd2f4364183ea1be14f9b55819fab9914b47e8085c40006bda00ee4dad3e2843b75cf23fac0588c4f5ff3ffd6867fd08b32e3882540f51b897f1f6c17c8b5198ff158a850478626337e4415e6431e3c03e64e07211b94e9989ae31809ee822f04844ecb6eb3d9ff945c02efe7cb306f4004431fbcb12ce4c055699f19416430bf5b90f92eea098172ed53c63eb97808193d73d5fe22d225cde0245f4eac9f2ebcfdab6dc3382c188a5e7ad37ddd3abe606bcfb2d934446fa53eff9e2200a64bb007fd95d2fdadcb208ffbdd3e68daefe322beb3dd0a3329f24ce535552f4454546772183deff2f611880b6c41156fc8356896c46f3cdbe1ce4266335005999e2fcef48689c8ed2b8367bb23d7f3790839cf9c2ceaa98f22ec5e374eb515d77287087d047cb240bafa1fe29edc9153626310e158bbd63a5e2b02f8e2708efbee6b35b7340c40b6a0ad5765cfa969d505506ce4be7895cf41b06c5e32686fe820b73162555c4e16d38edbe4ca8f13e534e9d12e4059fbf965836c573aaa10880eaba0a9545b520313edf52a20a699e71d5c63ef4e8eae64a0d15cdb48f3aaa03aba47df1020fd8aa9629a47220bbbcec56c83d5f467dfe04db7d833eb82da8e145a51eda4f2cc997c8dfc8044b1a71a7db07780e1a780be24c98b1d8c410b2ad7f86c77a0b2d64fecaf52ae95f819e7057fd3e65f962065ed95f0f427fe5cb65e61b24b6faa3b8524dac0aa0a728c9560ab3a4a062bed2cc9904029c8176031f148d57b2e9b0f5c6664f56106df56720b5dbd2393193eb64f925a2a065154593445fe333063174f7fb32d9481182192819fa04c02d6b1db7064ef2b1fcf8dd686044fc5ee1cb97b2eabcacf87838c6dd0e77e372151c225d89d09276d2f1c90eaf8eca0cf928c4d43d7aa23695a4ffd5916b6a6c1775ca4bd3e8aaccc9b3a4fc64ce75e23e2f542e8a0b84acd65923ffd898d94eaa58fb60286bf926e2d1cdaa557d30c9481d7548f1f5b2632c0be993ca51a0aee82f52670363ddeb1c65053611e4d0ff9a4360079572a6f9c6f740c033537c004df105b803f99fab80cf0e33013614b12dc466c60cf66021196db19d49e10913e8bda23f0263834151ee5d7d289abd779b063ccb89df6f9636acca0b0e428485352343901fc8c4092517fef4f9b8be90a020acd9a574107e67bbcdc4a0538a8893a888e5e64472726e05b102c0f3fed6addd035470d160d2f8aad39b4275c32fc0976cb44dc972941eb5bc6469a1b43a884f8d573b1240ec91c4a13c9f8f64fa3ba73bfd57b1e5573c23a3d72e912d81305df07e17cc3c4641ebd965fdb2d154594084bbe267335f93ab45523aa670c4f34ae25b79421009f8ebcd4b1e2b74b84f397c89eaf1ca04a34f0aeff1790dd4a684a5b943239aa3c7af908585efaadf43e67fb49e03cc9b5ed9a483c51f7e346951cc425b4693153a313a40b016f3cf9ee1ac8fabbe54827fd3d44768bcfb2c0eaa8a68aa648c3bf3eed4badf60106b9e2446d7f3a643a04f73b0667bc1ed5315c0dd879af461090f8969498303ace9a4b70f9a4f577f44784fc5d206024a583663efc646b29fd9d4c822d55d033071f57ed0a3e30c06025d8978c4bd5459d5ba32661594fd49a3701cccaeebbdd9aaeb3972f34bd4ae76cda068227317ea1c44d1ea84b6ddffdb8dc35709cca8c721358157b7c059fd23a038901e96756bd0a4ca1b1870c0d275c5c68c2520bd79ed5ff72d6eeab91c622e72d46e992be311b38f0f065f1036de54109dd787358f305583aefbf941f8f80c1aa8e9a471844d3e4ee851f5e25fbb0db29ba2c2a0fddb78cb1b3e4a63a7c6c5651cc56b6231f75beb59b75251852917b320f32a7bcd584a00bcded2c1ec9ea625a4894392447cc2393ea4415fb80e4a1aac0c4f4149ca6a5d9da43fd1ad156bbf34c4252c56954cc0a88afa3b2162f0f46f2d0ba5862b44353483c588fbbc179542626c6aa16985f87a5f70cd777226f5b63ef22eff157efda3951514fda50f22b0ba60a768170f71c3d0fe692030c8c1dd1a54279f5e27d3bc77cfdb6ffc3d08ca28f48c713d8706909d0b198b0027a0bbfe28eb1da1bc24b788a67024249c97eff6ff0658bac75b07703e2927cc95c6f1372fb54b9ac2ea7048e2c245796896c2c83059f11c673a45712e751a0f2b5f62ff5fa1cc986572fde65a21e0ffd7e39d33786bb431f161a19c8d8ebf5d36cb6264f63f83ec36a119e58b9437b449a41fb3372c661e7eaa2cf36571fe7a0fe1d1c31c7acbce7a7beb6491fb46819ce36748bf82ca7933b2560b22eb6423a0e4d8738214819574c83e5fce9b055114e64be5472726d8efc3c2f6cc449d6cc09b750633e3960777126a31c9f53eab499f668dd6559fe9b96ec0d47f564383495e17fb1152a93100c30022d14984cc15d0f83cf184a705811ec490e7f14132a1132b5baacf6a854995901bc0dbecad771d102e92794505a1570d309e4ffc40c38433f750d4736bb0c8fef310411ace803f497391507f4044d94bde4bd68ddf70bac7c7ef74b53bed055eb47861b8198b7c5d02d1fb0a15d3f4ca5bab2ce3ee118d53c2e7752c32a5b6530c40c6c8268b337f6ec3b1b39bd1c21a1a7192d0977d573fdf36f2ee63b988f4935cb48f50f2675cb68a7b659fdc4d713ef1f173994e908823c372093074988ca180b7d553fbd020eb14c6329537c59098809d53e3c921131dcf87c07e238f0e7944be7136032ff0f871ee41b0c2b69271bae8728228f9f5eb232cd5ceb9bf75f9b1a602cfca88d52823b8d72d19de8743d53e0a8cd91b3509dfca83ab9d75400c09de219912ef26575624437712231a9b9dc9385ddc81de57453496e5a0b1a61188cacf3e4cf92fe3d7d0f8dc98f83d30ee240704f737f758ae506affa130691685dcadd5b73085ae9e941565983f8eaaf31626fa90e9c405a1ed0770985b532e80e25f74ebb11496f65439bc477d81ebe553673c612d2f87eeb98dbdb79114af5b6428eff2a28c4ded9d37b3bf029d9664610e13d13d88f3ad867a7c59e56e5c00fd11d1de53b59c2a7e33172c97f120d6bfad449b88b2634b53f102fb50d93320920660f651f96d254a5942a1b74493af6f86ed126eb9d65208f13607bc7ef7b4716b3fcc2550bd518c637b7bea4371679319cca2af109e6f5d19b412f8ae366d1e8084c65a9107b215e3656da6cec36cc7151520ee0174998cab3a7c69ea39a9c15bc24b7f61dbd7b634d2671019f53d030fdcd7656100a9af0ea1153f6708f7a8ebcdd0e10b1ce1865d0e0336eca3a0cd5d72310ed75c5be1e9585e0c9c2ed13009594349928e5d041ea7aa66b613a435acd35e54c0945b244318617c3ae26449dd4d740ec437f74b00b90b4adaba3bd2ddd022d732364beb65b4f5dc6594617b26ac2aa334e091674ce8e37694c070503917d250c020c67360035f43b10005cc8ea74941d97cc85b9b4ad579927a330bb9aaa7a404aafe34c59615e79c8d7b75272efee12666fbe43882de1380d96ce67e318a2335635638216d29bad49f311b73acfba9adbdaaa472276813644ee7fdb67e41138965e869a8107e16cf9e736081fb1a5fae44196f06da41ddf008e2e64d26a7e55260766bf64d5e446e3850500fc8e014cd5a70c7b994b7764495ded894ecc5c6426764b475b8e5064f9286db0cbf8dc6166a94bda30f2872025156a2152aa46eff2d17cdc82f55a723968c828e1a07c7ba0f5c85808a3a714754492fce884cf4c5d17c0ac52b7ce218dc31f3c86c2a3832466d07851651331b855c4da0ba2c4331cb944cb50408b8fa9d06fc4d828cb168d5535d155187e2c2881c3c731aaff8163f205baf612c2d3453517771692bb395838097a5ec48729933444412792186b197bdb6286b014f0fa255ceade4f1320074b185a1cf9ce76591e07a2bad342c6949512095adc5572830de7b994420af52a501455e56a7cae879a34eafcc56d3ae3ac315fa278b62dfd897846c537edfb0d562ab7dc08e11314ffbbccc44ea4364081103122f93b2ee5b578432dc7409cce39f49279f50831676c63bdb9cbe0e3d2f2b4bc2c61ce6ec9380f3503d1449528edb2fc08b81241e58fdfeefd9b704de8aa8cc16379d57258dde93e38cbffef5ad36b306d885c1cd64e063cc66f248bab8e3ebe38b06b3708f43aa59f101144430023084273e2dcc0eee83de0a3fdabe05b4a9354b5d6bfc7f3dd42bc66b475ebaf769b4e88db84e224bc63ba20f9c9909deeb65d5323b3b6d9d568794958adaba0f1203a4e4dad6a9b6fc0a800a4398b3620a66ad9a1fa3dab18916e9e230b966a8c537c42baa866326988f22ee86a3f387debe6f42bb6ae3ef5bb87d75b270557c2faafa605c9c6ffbe554fa1add8660d723d3784fcb77fa6a40ba7951da2ddaba239a6dc3eb355d30cadfe7c749388deac28d93e622c7948e32e0d80bb7c27b7f000828a8cb842b0d15a92592b52ca7a689ac8a35b313aefbab3fc5f1454115a3cf57ee1b320df346e10cac90d7d3085821746f3c9cfcba9f19d3c4b434c561a30db772cb03b0d6bd9c3a66e1c78e34e85d494b554965a613f8bddf4e5fa22e94dee7d474c47dec9b5f35e995e381097d058dc7419de1b7cb3408f0305b3a349e4d22207117d7eebda5ed7e3b3b8cd37a3cad04c398412ec074c97a4d54deef8101326cbadc86fc8acb2e30e98da4aaa2bdb8c9a49d120e328f7825884932c219a6c59c3856851521ab982cc03e97c37e5c63f5017a4d9e776d076f148e9f3707393ad41117b42a132fb42d070f05325d6fcb402af11ea12aecb73d028fdbb487cfb75d1478c08ff05d52fbbfc6c2adf4d6f181492a59f97a5bf5aa38b06b51a7550b5b078b0fddfa40e1b18dbe5551a0f3ac454cbcf9e9549ca89ce6e2a4fbda3c2322117098a06a531dfa046a04c420a3265b553aed98b5adc8b6471e5a2b1e67e992a04ddbaa5d03fde4b5777653901d8d8af84953ceed56f900f5f231e8e4192f128128a4ad5679d6a95daf689aff6109cf41de763766f081896c1d1bc69d7e3971a220a188b11a476b8c0d9967e93c0379a442b39b6a6ff313c56fbfd26a13b7c4ef0c733ec0650685e5e0f8d56fb1862adb076c4243bb76d0c59c38714d302580de78e4472b48ff28b69da0ea88812f03a13b14328cf85bec1cf5c105f4d7934892e31e4e5e945ea1e1c016146bdbd46eaa7151275db0f88b7eb03c79a2f67896f8320a8a73eee21849f4b1d367cabb1edb8e31a04507c630f5f84ec8b62e885608b2333ed788fe9fa57d474712405a3bf6d62dbe31161dcec4c550ff023f8d048a34d146930cc1995c7636308aa66a8992aa25aacaec9e7e8be973b28f751cddad7e25db5e5a7dcb01f3ef78157f7ef8a9c2d7f60b8bb22778313b82250006006883022382595ad5f8ca95a79b9645a5f13711829d09988a7d53abcc6b4466d39060c07a2b42f26600364d719fe7e08440c8968c6eee81fcf72feca26fad0c088325b5b2a2d06953f0796288f06a268ff70924bcbea1a81f9fcfac4aeab612dbded71b0b823d7dbc8fedb0b31329c0533b6596da3c0bd71beefd820467ae37aa5d8852643ae3e26266356fff9292be428a4c9271f96df5d1a26fb9ad329bd30a1fa66bda5fb8c1b0b3f59e888ad093e0fcd80f6a991f1aead0f6a3231c8d3b83727322339b0c68736a5678b688916f2424a4c0685d65fd54304306fe567ab05e091487810ab804bfd44295d334fee0e29aeff1eba6f481ceaef827f27a7b76961a5aeb6866f65ecee78d4772a6c2344047fd4eb7f1f987b50f605d2b2db0410668117473487e82eaa9096e345d82c75243f4d4ad9987d30a2dea429db0595c1851753eeca329085a2954acf4b2a6e4fa29b05e40f126ffab466be7a8a454115c39752c1e80e8df042551240cccfea10ab5aa0fe990d59dd24611f7f268b4421e6b33f13055357d8a62582eea8a372bc3eb2f91d7333f8202ea29a0fb0f1612be2ce74ef2af7904fbabae7ee82e1b7d87aa1d4974c674208b79f9ae677df262488ee39f8584d524e330994b0fafcf2d537c2958b82fce743f5167dccca5c8e2ba4f331776aa5821efc5743ddb0057e9bad33d59b9f98edaf671fe6ef3323b55b72b887e1bd2541422b657427ccdb81675b962a8ed8bae759c4cfc5ee69f071e2a92cff3354f53f812c498153421b67d4f8898842f1571d53bc43052d73f27efca3c2ce4b3af2bd682abf5953b24914ab313304c06372fbcf350f8a825fa92ecc475e0a0b2043d01210f94df1ad1fc0cd13462d939855e0452b21ad0f28dc748508fb70b33d0f02dad907be8e5da2329525df5a9f172c6b9b31a63d0c837119746e444293c1329dc9142b526a60ed01508aa093f6c2a56a09b7d1a88d7d786313416054aea0474b6019378a93a5c3d4d14230107409d5ba1ec0fb5c6243e31144df8c2f0a3d34de4dead2a550e7e27f8b1edd2955e08de8cbc8cfc31391ea30030dec46061e0961510968db0492b8923e9e4ea5edbeb1e893b77221acaeae986259fb8ed88f724c6f53c40aa736fec48bfa11168e93e726bb5707854f7d9af8cbbce936a3c54a0fb7f5a2557ce2fd10bc2569bec6140e4b54a67e70336bfee88821ad736d0073026d473ffc6949697833da0cc4a54277d895284a807b44357818c7a49ab0f8a6223ad0afa8169d5a5d205bcdd29fbf89f21bbdb9f389de11525d05f01062e29f932d91344412cd1ce063b8099a5a50cb12f5201f6a0e8c2e5869f86ca9c0811a0259aa1a0ae7dadf482e6a206d8288e97bd3d9d82fddac16ac39e9fa52efaaa0df7030e6d8290ab4d2d0f8a5eb8ff1a79d58977eef3c5bb7f063a20a06e6603dea96c09b94cf587eb323a06b8e99725b8b08436ca54b7d85a30182f152be833bf484da8c0b699b42d00a6b837eb82ddcd43fb740505411cb70cec5935ec52f9aa3765c5eeaf16ac463c7267b8da3606134ebe05a92d75fcc4f0f3da4fc6e48ed0008de7b024de6b65ec97e34b9c47d3b5a99323f8a928482c936b2fb549885a0b3753ac02e70c22b0389a817ecace0934c4f08f97c7f69a4273dd2a1d91f07ac1dc3cde450a8d6a9b45e659d560dd9939332f358cd43ac8a5e74d1ec220873c480870f09723e093f094228764a6cc967da79febfa22ea89218687f1a196a32059f6ad5d65c9311ffca219330fe15b1839f4afbb4afe627b7db2ecace817b381c920d2ae15ba73e0634466486a07f15fbbd752feb2d2144b9f5aa41db4c1d72220ff54f80788923e35868f379925986b61ae8a845d99c5039462ede90158fb27e32d3db2df12d00d40146f9b3f5ea8d45926ce654ed03a0da25ea3789d395e359fe183dfc680f4f272a06441bc01d64962fb18989caa61f464135b8f8e250cb0a3636d5bf946754e9eed4804c657a6f1a20ac371fb4b6c475cef37b6f6eb9406e5a1cc0f68552ce1a79785af9040a7fb1f533acd80498621d71aa23335302022cf53cddffe70dcc1b43c03da3b64633b07defa262e8937d0a50186c99b3d2c5466d280f476f1eaf452c983f6b31d52cc24423f83a267d1b8d37b028c0d56f0c53c28bed4018c4974a36e5b027e1890b805fc27fc6e7edceac13d50fcd780f79e6ad688096b070f7888348c12851521682803d9a712ca7501202c8d4d32c0cc1ae0d8436d10009862160aa14f5f47622488bcca1a89b382dc8bfdd585f80ad0936c207ec8cbdaee2630a09e2502637fc5859f1cc1744151fd0143156e2b28df66b3bcbfb238f210e42e2114b8ea6f020a40aa21863224f8e00870b9e3c9c0c5162f03db2a60100c1bdac17c5c18bfb331bf7cafc89dd40852ac93f902bb68cb0efd24a61c520734e82226818c915ad59894bef5ee9aba89661c6a40965b95fc53ab5b309ec1c56aeeb1c7db03cbd4cf93b2c7afe21cec6c44ed42d33ffb12c3eb50cbf002cd48c9ee9bd51c5011ba72ebbff726278c2928500534651e7c1aeed640bc829d9d6f0032db7a3a5b5c9f333b2a692e5a3a8b71fa323ef67b51e8ac770bd7ba029164faf230c1cbc64e8a133162c41bf2a4c271c89dce233fed022406c573ee910868d7bea2e6529148697698d7e8d42931bba46b10a9abc0da91dbe8537c2baf8edac424f4a9f79e0fa75feb1f2d0c92e8c1ce0133f661a4f359a55911213643f380e44af0579b88f91d2be75910b67235de852f54b5fbec7bffbff93635626a17d34fa9ab7bc8735bcc14e7fe181d8698f25380b044b497e3adaaa172092f27f17e22a2b49ac02a80c43b01a5078d4338e490ff127489bf71ba8cf9c3105f1241240e7a05289f270378b9460977736b5bf359f77473ec5dd33b412277a6a8861bc1712a2123724c75d0889c5231344287514d8e28605757e8ccc7addc3a37c7715c7976ec913ec89ad2ba3cac0834070b948b29bdd0a096241466ff72720f153a18b24ea96a8d1f33d2b7009aa7db25ea6530496cc9a2646d1091d1280e0289a53474d7fdf51b4200f4471351a14f21136c1bf4be89d371418b57d40b3de862dc6a1d00fc468e5859809e03fb12c1ae8cd4134247bfa3f7d05ff491fbb6ab5fc47a1ae9b505a4c0671a5bf28832fe08555c9ca78beec3182a493d0efc4acfcfd1987e17bd2229170271ae5e5bb9140b683e47d9e01df51c85449d285467d1df1b929af29ee0c7436775d15306affdecb17efeea488ee68fb843ba492047bf9e1a606dc5670650fe46b39206e22c4ae14b62333f3e4d366a679288bdbc97ddb4dd366ea463afcb8df4ad2635d904a77a9bb1af492fe6c70c98c3401229e7825ed78725969f8b9833d0ab2ef8e932034d6d050f11a815eb4596e841e5bce7e35e9bcec48e0c75a42d7db94b97597b161a697412e56b506907cf13636a4e575cbf8c65933742f1e101412e4be65a432f990e4d771547cbb0d50b5242d1609913151940e280c6ae8f3039acb5f4ff801c57e62c6939f6a2406b9e94388625ee1d4d57a4d5d9dcb21dfd92042b17b2d7ee505f85bf4dda910b04c6aa6ac9a15a5093a6b9256af6cf657439254c8243104ab5924d6fbd08e85c11becda295d1112464bcb60acc7f72db7ad840269c79f2f3078249e95706640d68aa93b1e8d07f402d0952e1e55c398fbfea3e3e377bb7f808f317dec15cb064326bfe77e5f8a6dc3f292b365c8e629d25e8adcb8abb4246e02498b864b152f593b52f361e5a44b248e5109aa35f742218d8b2fe72dedca9fe57a4d4d61955e825bb9ce1035e6ee51089bfb5bf0ddeb698ef6e0958e4a9064c877914f34562f8e52c1f28ed88c275380778f5a90c8c1106fed3d21229d7e307e6f7ebfcbef82a1837fa20ba4461381c6a798f2ebed7bee33fd30006e53a7565246e8e3e698df9c63606838bd7cb932e327efe37b3cae073a8a2553eda1128056999f167e8e48c15a7720c848385a4dcee12665506ea6401f4dec1d452670393e31a346480e657b45d119c301629760cdc3f8d0bdca0db9bb8cd6d2e555b8d8584a3dd12d3d34871616e223211ccac1d49dd50499ad5694c7c5b17688ab5f02c585ba5e7fbcac2065e7ba20bcea1bcf3c7f6c9cdf4286e51a713c9c6424c179008b9e1cdca515e1001cc22fef38e244bef6050f47461901722068dd6f66350098404aaba0377e552e27c73b410897b5d3483a006dafd0b137749fb070aac0c6dd58a1ef9079781003d560b32335998f705a5e0dc1a36c4b313590e380e7f61feca9987d8107d065563a18eefc4d60fd985b4640f2644e687c4edf026f02d14cdbcd0f847c27a3c6982acb441deea3c757030e99ca91339c978e8f7d24a6e8f61b9ec0a107b8d715e70f289610cd41c8d3d479c49e8fb3ebf4877a2af8a652549572bd497347482789a2e0c9e149ed88a3c7ab43ed6bea2b6389b3505246e4cd76e2e6f6a2d6634eda070df40525bbcdacf3881d775ba441beb9d5520f78244e0fb650255351437cd5ab80c28237efbd92fb004439619dfc84fc39b193a3d8aa5c655f483a4b843b00bb53c70dd093dbfaf4bb1055b08d5fe8129084d3d1ba8c8ba931d8bb25c88fe7b27ec902d98aaafea475c060d620a9a95356f7233f88dcd0f77cd23f30dbf9a2e757855ec45e79829fd01c3a60d74f9f7ed9bd1edff4a798013472b5147e438d5b137c7414d1af0295c082e87ee5aa3029b5b408715132a78834085d941d2d0339745f49c7423465d96a40ed7b2db58ca511c398278807ad186aefe3a53caa8136a857cd2c2d9cc2cb78832b96ca6d6be52173585408a720fbf803fd6dc70df7876a1faa31107ef2551e598279fe16ce4da2cf752fa9e90d8f4652b63128cbdc8e61beaeae78d22e10060f4cc20f7d1699dd167fc973a073d349d727be5b4502b93d3c35d5d722043f3e122ead1bca2d9875789fee9ed0bc300e9cbfa8c20e01bea36e5ce1490716ea8f87f50e026045e4bfa5ef66b3eb9fb451d271ea4a60d15379228c08378f0461a027639d3ff5eaf0ca4f30dbf7bd9730c7219957bedb318910df5806743ca043d4194a0c1554344d6fba4157a596cba316ecd8daee07c0c4b5f446692fa16412503c6821fca6f4ceb5e6bf152b6d3b7077e6a9bf1df0e2a0b3b6064ec4e90fc1b1917931c67a724c0e70838cf52a4ddfc1b39ebb1de00b28acf00f767c61fd6a2170e99bec28c0a73c7a80c49403f28da0f3cdd08073751318d4e488c3a77be24dbb53c2fe9b1991ebb9458a689756a2c53c53a2dec2962991afb94d84c8db574aca6c4723ab6a9629d12d614b14c197bba58a68e552ab69a46ef3236e73c5276e894e1360f6dceb6c37903c999e341f71c3251e2515c096f4583097403d3ab4f107a8d3b7f6b427ab180a05e5381918e27f8254ffc8e9dcc9f4aebb4849f503c669708186a905df8d03e31b28528e74c786267941994b9c3bea166444949ee7f27d8503ff1625cac220f90587e3d6f0107bf00db93972689ad7f1bf915f6bd60e21b8cb05c42b64d0e50de17f80c6d9794dd9af0a5a7eed1fed8ce1940624ebe48f5763d1bfb95bbfc179dc926585dacef02ae02bb177ed0e2f283ed1bb944af00853a518215d33e27341fccc99c00d8caeb6ce88310ebd9412eae0de429b00da58e7b556298c82b91c737e2bdf0f78b5cff1d1700707c9fb5164662ead7947522bbad13319d798c7fdc0ced55e3b2a1e38d0b62439811984ac905682cd0e10a612638d64280f44f237aeaab93b04d2a7a9fa5d7e70bbc19a5140f38b3c7222656260690e43161622e0151026b5f84d051072b2c5cab6a47bd20a1a819b00a5ea03983be05ae52fa7e0ac865baeb532d1aa30586e5dc1815092cd62f000a3821b129b189f13e7c548b188dd554b1e970212d172368d7e163a32a2fd0841654c555a8f1ff47c7372f3afe6d16f61d4ccf44f79c2801d416a45081dcc6aec65b8fda14a9df3a6f5e1ab7e256d392e6f8d14734982217355ca74a3161538ff0ffcb7bc1dc7d1a8597fc7d575b7d56fdf488582d3fb60d3b03f90da2af0055df80180e0585d55fe5bf8854508e0814f616dac43542762cf0c1285bececb19f06b8fee1a0f26f9a5dc4db45004e05d07c370e65171c5b728fafe1d168ce1ae457ce2d380de218b796dbc22d331f59e3c03bbe698582e2c7a25dc64b59704ba0c2ea30a3b6d9c611df50b397fc64ccc08ba6c23e1df696e107ba04ed3a840a0a7f8b5b09df76c19959d984a00ce2d14d8c8a94416684484f6f5f6387f1c03aa7e935d7a0ec2aba657793a2c53f38d899f791e055ffce1dd64769e9545634b7c1d35c875890f3c5df38ea5855137c8c4c58abac4d4e0f500ea086599e3c1e193f123c9ba7f38f48c4593eabbbef699267add85ac181fcda3c50b980df26cc2c6cf695ccaab004d3ababb8ce94ab1c45eace013bd64d390500bc3dbc4245e6dd005618fcc5c41ca7e6c0e9c264bb3a26d413dc20245aa0db6a066a7eaa9f104456d835f177cae73602228707faa0b89963388e53b24c305e92495cd9ea5041eaf3b43077acdc257a8deec5f2e735a6fdaebd1a44cb16b4669eb49521bbf639f000297cfb57ce5324a7c62b48cfbaa87aaeba25d544b42b41ddbab8fced7125266d1b0857d77b9be62d125ca86a61f29298eec970f008c396aaee7f649b61dfbab1fdb8b84b717e9bb6bede33384447616fba7fb1d75cfddd55298adead8bb87463a1b2d8a7fc1e8bf590bb4a92db4ea326baefc9c94e231f3c354749c0b39f054a4a9aae03d61ff74b9f64c6bf2119591767bf1f876ac31ab958db4a3939cc8c4d5981af5aaeb2eaaa940d79f8d48fdcefdd594eb9d0625c1e76b968822141ef26ffb212c665ec715533f950eed3e6f44a19c4a4685e25d54cf07958b2259e8e8ab216e11e52389aee2295778d4f9bc4b66ba2925e6047384855f8889ba91236a2672a858ce019538f267bc976d84b3f7d74932efb16940253deecfa07cb7c37d898673a8bca1187c6360157b31bea92e16bd9a3088a958437587fee14c715cbe04b8f885e0b304e89336215ecb235f15b0d1436b41f72c3eae1b3c16c940f06fcb83b9c79202a03271b4f43b1dc941a4fff9b7fd7bd97b2942cb3392c9accd58a165f27cffc774a9130f6e9f5d42259cd3794d56ac6bcefc00474c47ab12c56e7c6ae00bcb8c2b4030f6771e236ef6660cbec9516f68b0846f09cd892e6929f5846d47d6d14a97ed96e1cdbb2e35bb3022c27253c89abe99b0eb3f5a58a24b8a51c25228c6d268403aed5295ec425ca2949e6f1a44e94166186551e0233b13276aa1dddd313034310a268f69e1f4f8996cc863f0b32875d4c8daf774cabb42ba8c7c3e780b400c10afb63f7f973816c55b1e318e1d19ed893696e164221c3a268c6c88ff8743db3026e78329487858db5c3e577cb576d4df0e6a304f4a691c3912023fbd3d4346917d548d73e41093a5d48aeb97a7d98e8242c872edae02f1f6864dd04ed14994ac08a83cfba9461984aab14b12f7b3ffc9feef7e9d2b454e6430d81b66b4c631661f8fbe1ca47007a93225ddef41c41b2d8001aa8cc075617f6bbed3daff41e3534394f4970e961db11488dcea2cb295088347e589613bbcee4f0d5b2cb7c8e37ff7dbba61498f4ce46c3611676352b6564142f82e49af3f19a6d4619513d5c46a35c3d846989aaaf8883aa3bbb88d2ad70cd89e841035c41e974f6e68a843162bc0fd8457f81c31db8ba7d9121523a99ed23118e7f67ed3ffd30d25206f4f03c9826452a59b07ea52581caf1dfdb72a1f5ede24c2e4e36cca6245cc97a0473106e24af24fb562794f9f5c77fb3c7b8c838d5ab14758cf3bac4078d632345025e75140914e8ee4a6f63625a043e7c6dfbbfbe63ff27a7aac06111db3e2e746e7cc3d84294d79857328552f9924c9cc5d80e75d0561566439e44ab0b61eb1c7f929d5cc7c51db5eecfbc79e1de109636369b9ed10286b927b66fbf95d56cd933d0fc17ec33dea9de9b95cdf18f76ce5da9b7d9aeeac880cc7f55c5d0aa849d352c4a918d99322a4c15eb148bdcd60cc144498494c17c6a07b0ccf0cbcf5f4f2ecfd7861c10919b87a8b7701e4a11429fd8231ac1c97eb8933d613db050401e132ef986f58db27f8c42da9fa21f3e3a79b6f289c2cd08cc696991818eed5268221f61899b3e370f158c4e828d1732148e5001d272e54ca4e67f23da5565f944c8f8de6c88669a1853b5f726f9d7bc43b09d41358fd95d99cf6eaa5b24aa9f4fd3e1bcccba0b44099d31e0fde6713f260252870ea73a1b9f9c6a4cb5ea88d0e1373e63f2df3d1e9426ffab65edf64e597f7d0d53beb970ccaeca12909abfb0a73e12d5877d4f1947a60b0e20207acd9e1a274ec8f24f68d7b2319ba662068cd6fb6cf71aac0bc435f17886acf736e430ee77e9ff758db0be427c10d917a789d31959deb2a5a209c81f59e287fb919fdf9f44f6ee5c2898266197c0335f589322baef69a4415e21d343e4cf73597a5c9f0c8f2e7a468b29b1ef09cc789f0fe2fa8edf58bcf54dd7e5a8bd068957f05f1268a83c45da97d7fc0de5204015d03d946b023675eff4713b0878856686f82a337d178924e33fb82a686d4486c0201676513c62c13f1c4041a12f39911fd9e2caedd3f50790b6a0bcd45038edc243bf97b879cbea599cc19677ad4ce31b7144b2669eb6a22c5103678111677e7c5193dacd9b51eb8783ae501dd9e6baba6f93274f51584e3bdf8f18f14333e802b940d13f8070cd47b04689a2c018af866b59a1c65fb82224cf820f12511db6942422c8a42e22108b2569a19562643528ea62d8a13ac5415908f021b1401a475c788629ce80d42230e8806546cc24d527f8d430a7d4f41cbc4b891921c5326f61cb337e9cbc2409ca66849b3541bf18d19e390380c9167de1ae45d88ea594dcc162cced3de10dc1440e41e402f26dd872390201b8a3b1692fb00500386c5639b715c94a97449c21477d123d829d0947e964e658d97b77902c0056ae82339f61d595b7a17d163c49aaf1d99f8a43210d38a506315c83486821459a01ffe00031f420f39ea28831f38f16132ee599e366d03bafa10362452fed72ad4ed3c5fb2c8547a2f677875e6fe058a024a2a8df4afafc2e56d4bb643f1848ec8d4ec96840fd448b693a950e61f2430c43478d7f1566aa4cef7cff5040bd742806914f8064c7269c75cb875f42b08bfa790411c71aac309e0cbd37c2bbfbc022b3a21d13c2699862c9a0f1f6357aee344035948112405a23f23ef722e85b56fddce6a852331d6ecaa31d6f0df6d950451186359300724413ea5aeaf97dc8abaccceb0f6e292bf5fd740fb2b4aa468d6727bcd5886050dc6307ee4547c8af12a7af11e0d8d4ef23100fdb6d2b794d8c33cce194fbccb35328888ff14fe0f066ebf3d5f55a035ad00b525dd47bcb04a037566f7805167a07305984b5684f87a8461ea6a73035836430ea0f8c6af9e0593a975780790da71714c947c22e99e4e19e617df0363f97cd0890b23575e09c96a68a03b7ba8580e3ba40bcb934287fa1ba0f7460d18fe28897a394a3bbb9681b0590533020cea0b0015f7207052a213fa72c74e0d4e238e85eaef73136d4e8bb48359e2396bc147993a378806598c51b268da7640f2baf7a2656bf19bff21603ce29d40188f2dfcb2cafd2ad1f2e8d6d3244243864bac09cec7d1f6f7be8651b191fce98050a90ad173c1d0476d04c87eba3a8307f2c8ad6e4ed9a8098db1b6238530af9efb81a30489024c1faa06d2bebc6cd0fdb01cf9b3d5000008064f85cc00855891088c1805b65772172420eca5375a70bca892d95e3aced628fb2d6228dcc47e63d78ad5ffe63ef8d149b13747d8e00568f74622815203ca29b7882530e95b0d5aca20ab403d09a3ed4562f133cc9cddb8458ffa62f108118f0500a90d5cc0d926bc21f05c27d06433abe1597614152c175de2b0a990046eb26d2fdbaa0db2182efa297f1aff67db86149b0de7d497a0095956f4a083ee0be5c54b6f34f77f2cde9e0c56f3f46b5a0b6d46e1014b0ad76724d1c0995a05e01edb5a51128ebf672d8237430a244213f712a00516031512c677a631a6e54b564d47c6c4a49cefba915bf12a4114622dbc800a422dbbc116ce809beafb8238c6fae67784d2c199b750f9bd7deb4e33afb021d8bbcbd26c53ccf45fab5b0be151ebce176fa4975ca15f0bc0b992dab3d111595658a8344a390e7c5cab0b8446bc7bf01513994ef724d8e81f114a8106bb499a820a743bccbdb6801c75cde204d31b697eb61d6b20df2d639d45e31482d9a2a95219235829098b2d8ea06b129026121ccfc13beefa873d4ad16d3da7fefa327c32d221c708f26fdf3ab2b41ab2842e3d59242ff90ae38b86b849b9474eb8ab7bf0d4b4a1e291c0c80dc44ffa22f8537e38d154e2e145299c4836ea3fc46085166faf53f9ddece13a2231d4b21eb229905830455fcb24717ebd9086c06085da9170641afa40d5833c441bcf0a7ede6bb3239c5c17023615b101065e230732e7b28bb92775f60b45ebdc9f06ae136ab8e7065528744dba66d1933297a338019945a20736a403f95ed08505cf890a73d336ada1c0fd82e4a7be81e59862151af69b780de4fb1c7be734c3a2dc9ccc160b6863c839bb38aebbd313f2bbca1fd4ee891780c38f2574d683dcbdab3ba277f9e8f57cde02cf952003a74d10d36829cb4c4a14565d396a5fa1ba6ae7540615544583ca42a077c32d53afdebb417cf84fc04f11630e101e012f97ffed4dd58db04863587caa812df31c980868ed1b2bd7e20be37c2c00d586044ff370a927e47d87161f90139640c38dd0869d2df6655190ae2088c289af894af5b89ef6e22f0d28e3b9c56ff899791cda9278b963a367abb3a6dac315f425cdb49a27f0f736a74af9eec02a9a99786a29faa4b310fda3d8f98e66f38e5b3b2934dc7970196176248a214d9f2a2eafe01508c5a0d2a8d4bc7193ace457979380ce8748fd8730a0132a668eaa0d5599a80aadc9ee1a437706fee760e1f31b122e4129e5566ac2a2337a182d414a612c68ebe56ca0def2ce9d13e28aa181a8f0ff3ab1e0fc371bbba202b0f3df869d2421f1ad6de13599975db5c2a19675ca1badc30148828090abe3ba8e90988e09169ff3e23dd1f222e034dd1d174c5fd352b5cf58cf9a81cf4d70c445b514576d4d36f88cce9da0914e58501ffb319625c506e44e5a4c6cd6bb6a58a04e45178bcc2c038be7a31e406a583236416d30329928912309bff62531cadfca6f25668116e8c60f0685561960720e3c62b3085c027470264da7a8c0d9804666c4932a3d8da5f1b155af537b52ff03e102ef6195d04dd14881b7eb6958dc0f85dafdd7bc370044f54637b1e2ecc473ca63efad7c0270cf0bb71a98919cae01d0bb48d7b4ab53feeedb5fdc6215f1e0cf8823d10ec3c02236c3448847f9f1f8fb7f86d3d83c0cec30e5dae77e19984fe61a7ddb76ee70b140dbfa985a36a76b20596a9c74e9a7ddc488f6322d6a7930ab11f7823558dfd06f9d905ed6749034b3aa6828fff9c2c294768d3294bce27ae51f78f67317eaec7d414dad25b9bf651cb95e01b45cdc9e88e3e97dac9c0441f28630490a37a4269a3cdce063007e538ef4b26ab3e79a6ff8810c826a56387602b221b97b299a8bd400b4b9b06949bc324dff75a4ca605bc8d222a18885601374e63357b3df38f8bc806c18cbdd360f8501a8d50c1345afc013f000372fa9ddce0cd19c252d293a549b5372c973ab250170a1990402a68697e5ad3c7cc3bc29f70360680c7c9fac53a8703035de6b1a0b4f3efe44051dc5b94607b2023646369566c9de992e1d6c07ab06872e3e0d3f534e7de0b2d3a54472daac8c49c34432c4ed387fbafbdc22adb05f17aa22f37651b0ffd94a71c4335f4759481d39ac7938e6b3d5ac6dbf2e295cfe39169e4e3b12e4cf587a6ab24bfea69e2223b49a9bd5b6652d47d42cc5cebbf152277da780696c8e1c4d5b62569d1b87aa26a0960d6f1340e1897c6a5088be9fb0a7b5955b0a98f85142b00283ed251137a51a937fe175dbfdfe99e5fb1b0acd95b0a21d7575a23956ee96d09c16aefa55c053cb4b69fd68ef7c84d37f1135bbc470f21c4be31e6cc169f0d742dbf4c287571f9baf847be61c4bc7d171432241a9ff709f68ef6f58933066b00f98d2005b9903f05b75f50593e2f879fffffbcd813cf2b83818bd6a94fd3e0fc0c28c9bed530265ec70a7894ec4148cd9e3298ae4f33de82b5722706e5942903a2c52fd731b1767bfadacc95db53619e56e531e98dcee2f9d40aa8155211cb7533adffadbe02854db514105fbd809cf974756fad4b8be94160687d2a6a0f35a807964c887c13eb1e5db9aedd9074ce2ac195cc2ac6e33a45dbe6f4ad0048db00dd6a4b38666e2320e68034488442bd0041539887c2abfc78f29a698d596c53058a354780722e9b74c37e3931280110aab0966415da26c6c42f769ae7e40db2560fed1bd9bc03cae9930b349f7d11dc5269d2c3b2a5888413f9e9be5a851eee7474ce1d0c5106cce24b9e3700d14757f8d7a1dd7471193b7587b192851e867b8c1171a0189f07cc4ab7022a6f19cccaaea6a1267f049c5996cce57e5f463da9b6fdaae2bfdb6f965109c60ee9499c22ba5111a35557a654989111c5330521962d06838e43e00bcc34aa3d03ff95c701b0716651c6a18a510acc6f5fbd56da34bc65f89c59d4a0acd55d1e760946ba5b35007e02a06e2c43ee3eedcbf5cb2f43ceceb22b5038074a8a16b273e5650c357142ab66eceb0e6db50d89797c05aa2e0a8c3b1c6f3c92f1980ac05ce1333f96f54e03beeb39f24b81ec86395d7010b1b170dc46c6b425f1f2fc7478dfd83b3141a05e5d3864ee2ae492ea18f76ecdc31ce6daf88bb9583e1d50a220e16c760856dbfcf53acad19103841c39cf2ea0cfadc7b5c320efa1a33ad51707b10a0b21f2d6d14e41aa07a9a71f51f4c5efa62d5ddf4b920cdef3a5a062299ed029919419859e5cf5e54c77acd568adf29320770e2d751cec116212ce3de7e609c702297f61e18e189f5220fcf6533de62def1367295ff0696da3225cdb7bc58830293a202d22619b016cb9113135ac2d5217e8bcd47e5ff58356d77703022a042f750135a2db19782dc6baf20f710c3baeb95170c8f52278fd2718f3258945fa6aa4a4e8f85a9f403528b82aa8fae236d74f5a8abb3871dd274977d5916cb3acdc53bb357fc960b332a7a71a7f644ce345d4613dc4f0af052aa90137a76ed346b964938246c72596b69727597d811547f6c3e50a8f07c486c3f4e8388fc9349aaffb1be9e6bcf65897e752e3a31439621f12e69a4488d0b45e1945994a023489b6a1067a85f1fe06bb7b474fb7c3c4945aa191a87320db54f92b9d1758fcb8f053d5f9b52756720c0d0faa23372f1926e5fda819854bc24ed810e9674eb21dbd0d82df4274172c949b3d83a3ec5697c066d6b928acac8a74cf99c9a4d25c44e2c6d749e9715d210fbf6a345c86d5b3eb1196727aebb841336503255edaf262b8641b3811ab3b1e83b4f11fae9cab0594010cb029c504b3c926d2dc3b0f3b95a43c4f054862284f0051c3eb6cbbef96270c340239aff45a635093690071be1f0deeb1e1f18a94da1d4c8d89a27e17dbb4d92c352004a25ce04994a2537ff1a404d1ec52c16cc366103caa9b8803647552234f664942c30797817025c31425c2ac0c7d13ca6ba4156386f42d74f7834c3b62679d5d512611c32f5532f53d9b265f3898c52fb008207fc90c2326ee30310875df9eb1cb3a5159d07210e2c6b01368163c80440adde303b0ac818723e70e5350125ec9820825ca4b3f249736292d1d19c4602603b71a5583158538a890955350f86bfb64afabcf2425bb042f17eecb44405614fbe07e39c77dddcbcea680a4d91716dd0e6652387bb84959f4b034e4413d1ed9107bcaea9faf3453c7b9edd90cfee36c909e2799eaee321a4395cd65db5a71c2f589fc1b2c633ce289ed2bba874d437acd380ecb137c486031461c3588b8c5eb8f887c2e07fcd35a3ea702fd472c3d6a85084af2c38ab6596debb2bde60b92b21a358c18116525e18fc825904f68e1c90f3e7736ec44122e2050314905b8ff7692fa260586e0c7c8a798e9e187fc891a0afb7705be8e8a80dad29f0038d4ea272d3b528854faaf7e7b74293141cc372f044e48e84da00c006b844e3226d9cb9e80f8720e894eef990ffd0fdd65844d2e6c7b6a2e2016ea309f52758683097e21af9ac774d7eb912d0cbc5617f8c6e4abadc168a82b45834c833fff605c6c50449f13963d6928da22dc63c9659536867dac8af69cc6f6652225acaed42b0ab34277d64e353221636268b119c54b574071918d3770fd76e84db4ffe17cb05f505bc85b161ebcadad11b60a6f87f9872e81639afc1f602798df45ac7e613bc8c798701758fee10b75811933c2b34b126209eb47020f0b683d6fb5488f0529eacd7ececd3970236db9024457e3d999e503c0be2983789847ea576681fbab08adad6c32ccb49256d066737eea3819d131ee5f93e591fe2e1020c0f395193af4cd28911c8a9619e0b98d054bb692c6cbb7574dcf8a2a0a19d0a5f9b6c6b1ae4b263f613f144d0c9c140de39bc17d831411049a8527bdfb5140354fc689de55212226fd69062e548932bac87d4bdf354056d705cf0d0c4efd5ca67baae1220f4be8b879ff06a090514d694dbfff411f6e3bebe69411ba206885d0b4b7350083061538f62ff1023bf853421ffdbf75f408fec7b9a38ec272145cffbe3a98351b4791072f03ddbe0a9720dca599c25d7529ec2a5013799a5ce3966aeeefe22ddcd685eefc5a53c26fc55da43f82ada897d5ad5a8519db8ab3d8f8d21e5292d588b82225456a3ad2707d2fad570737343758518dfa493c0573f68bece8f5f90bb1dd63ff7b76761f2c9b98cbe0d8b30980644a38f6b40864105dc6792aacd53ee23ff2d4a0a0d6b12ed93340c39f493c856f65f42a9a5cbeb02e09435382f157ca8d2335d0e471c0f231f51aafda1751e404130f10dea7bdeef7993654ea03c9f4ec52edfc3820335f22c8c8da04d2da4f884ca7d59e7d2e9d1e4d9689d05ca0ca9197dbd6e2fe39c8f865ed2a2d2a49392a62258e7fcbd387be1470f08fa98aff438afcca0ba1c6364c960894c87c425ccfd066fd2f8cf544ffa7bd63d0c195c6a2e1528f7985500010d8948ca36b5772f4d2451487604626252f9098c1dd052fc4ea4df7159973adbbc3e04bd70f0670458cab9699d6ef0f75e5f45b9f2773c6d65261dc0a09167eb7fea21626049e3cfc631fc986de641ad88ab0dfb9dba6f5597350074ce971a2b277eeea80069b78c9ce6d645b3471dbd88e986a6676feffc441d640786e3f979f43320b24bf071786d517534200ee825c3ffb2c19894f8f5fe39ba4bb2606f2f080aede0a3c560a51a65748cb2dc863f05c4d95c6a720ee14eda00846b7cfd32fee2e7648d303b17c8dca0270fda4819993fa35d8cf39db0c4395b7cb498936f418a8259bff5077068ba24df3cd0b2c0198d6464f50548e63b7aceeab0b748543b515805cab5eca20247e559df0573ab2f8e5fbf73297e91bdef80475c230304d1d6b8af363f5bb8fb6cc6fbe0ad3d2ddf66acf13083d299087bedf7816a119494003ad127aad4615ba4c8d6aec0bb995eb4d70adea6eccc8c9312f876b6537ca9f40321d7c8c5ffbf8049f6df36036b08bc046ba8c6038eab7008a11dc6a8e5601ece35a732757c6c46cc23229818da7b8746d78b97408e6b20798aeb03bc7fa75dcf2d0ad4fc0a17218d2df5215b1dd2473537cb58820f86f003c086e792245855629b0bcc104c3e758c94198dac8ec2a846b82e31307e4f25a015bbe68a7f14aed784868264391145a55e5e1618845c1195af3a1da6b38a4239a502a016230c153cebef12b2d580b71efa084e0573bec6a52deb85c78ae63c43e215679318009725796310834e79499ed29211233410cfe85398476362b57109a241e23f63b6ea2c9db8c61a708f555e3cdfd7364a847000c81833d7246d258e5eacd36e90d4bfa4b63eebb36cc91f158fefe9626e72c3d0b220f49b976d702d75f12aee012e506822ec6e175639e00822b48cc28d7c897afbfcefb0ff205a9a114b21412e205fa7af7a6e90468d1db114d9787dd39eb4b030bb3235383ed9fe13a8ebdbf82ab761d8cb5ec8b0b66f73f1fde9d13b87be629a89c298eab6bcb7c3cc88a0661f7f5a1472392f7fb34615096cf5f908c0c02112bfd3297f09d2af01046724245f959d4ce807a7284968da9bf078fefedacc77e2678726a902112be0444e36883f58265c44bc7d99dde79dac37296c29702d627cf1443c13689638eba361d0e7515209b4bc5f7c0bbedc01c633a3c356d8411fbd1b37a8850d34d402ed5c9f5c5e7aa09273684dcb613b2bdb2cc8cfbdca2d0c6038c25d5119523db842c7aed3059f2775723f3b49abaebb24ddb4e4c18b29ef4fc315439e7d855e2506502f2736583b85f284cbc266faded287f1b00eb1adb1ba2075ad9f5225e38d0648cc0fdf5872bf6b80d349aeea96777cd5a0f24e06f2f361e271040fb9448dece190359c509c20368aed02290f950de516b1eb505715dc9d401cfc3d1a48e98e87b64399de6405446e7de1d51efa72b75343fa93feb93b8b8caddfe19925b87a234eec3fce01a93099bcddf42d327ce717a04cd8ede487964cee353e33d4e305be6a160bc0547bbe48815605a495e2a88501c5d3e48d1623fe4cb146fa7918a7be730419368735c38bb6694557aeb8eb2184d4001313cf45342d099f015ccc52a684867d7cbdcf14c8a0a6dbc9152e753470854f41ffc652e0fdd01abdee9a9ab7b8dfd445c3e4b02b0599e4c7c9b50a6e0a27ed33e713ac92c871e0f3a5e45fe58e3febefed42878394b1dfef324f29e26ef69c13bcaa3fd1d04fc93bca30e2f2c4e042df58388823f47fcc8b180f6916c2d78ffe6a50619334bce731597ce66da196ceaac06f34fa9251802f0a6600444db0933c8a4e9ba44c9a3262abdd160a242bf66c48bf78b43e15151fc4742c5c2a3e294d55b96aa7d322cce804aa0d0275427b5fb05771a73bb7afa6e585e6cd5c8052ff9c162ce69913bce37cff8627103b048cf1ed1a3fb1cb4847798687b23c75891fadbf79c382afe85c9f1600bb4b174ed1bdccb5d7a1738dd35f515b35d7f6fd7bf1e46a0cc2d0b8b4d4ef110393c1595d304d8987de7b91618232177b9fe58c07fd312715e4af736c77c25cfab3cb59f58839b5348154e2406334cc41eb5fa02999a439e9f74e5eebbdd33b77bd84ffa471eba7c498317ca66536e6a25d69216838abee08c49244af93df1ed9f08128ea4d16e6ba7af918a7223043f3788a61755457cf08775d59cfeb548b36b8760220c6c89806160b540e1ffeb8c2913e09a34041aa53ba3aa0c037a09c961fce59709aea16b64c96d77c1c4048c6ddc15e4f0c03ed83e877a56d244c180b16726aaa89b5d0b70fbf5c73eadaef6161f2980aeae7157815d3dae4d72f875196453cb1982cdc3fcc7656f81ccf0f6ef4ca60dc2dd484c890e51179af43efcd1c297be444c8ae199c4bb11d3052809c52f8a230126b7a04fcb161a7dffe7c64234d4addea8a6a34e171b939a9d8dd27c91272904d34118d10218f5450c864e1bbdfed14a7dc1c57f83cf08026ab202ff11e3d1f44e3e6fc09c240c8c45139dbbf1b2479b8216c42df2ca42b22c596556574cec9f32788c5d2f065283207ca0936fda575e027803b5bdf09523c337de0c465fe4a4fb36159b73fb3d6966902f1ba626207d32ffb532ae8a8b7215417a227e734c9ada1eb2a3a1c31c401f72b0aa18c3410f19ab9f6c25b66824fe17b47562c2b52a363b9ac5f046833016e73d4633cdc47557d6d438b546c76d1245655243c183015a9894549b1de890e95293c1c03f32a7bddaa1b81c2f426dec398da0d254191f86afc014d6f450077de85439ce2ff3801d804aa060a89884eec647877d2377086e7f07caa4b022cc28dccf25fe878c798b9d16d0875a47bd7f34defa01e5eb82e673294c62e798a8ee19cc80eec949a9174ea05477e4649a47f51504bf0a70efd64c3f20e8d6a32aeec7f7dc9d3ec66001caa3451d38c77aeeb732b6588fdfc8d1f0e282c601798664ca38a4044c21584ea21b8b8ca508e7dd6e5c0b877921813c11cd5809c484300e37041869d25b40a9136d4f334c677d23bcabcf65871e60317a1fc58a474c78519d59929494d0e536a2261c375de7510ef6b053c47d63c57b756829b57825d7e90d45f003f365239258f1c12c643c62597034f4c38c6fb7defd07f689e761befa6290ff1c795ce8ced2764f9a7036390a04628f7accd73a0bbfbeaff66ab259b629cf27b37942ef7cdb8e5f6cee18147deb6d96d19aaa7d2af5adeb78d797ae6e088e75f70e03c89c14530519b25aecddcd88c87231113adfdc6f2497ec6828d9490f310bc8462b8e84b15041eb6c3b61a24fd23c423a62ada1b859c7ecc82c166e46a8700382e116e2b53c00af633988d9940f5bdd17f8dfb4f37615d3f9ab2fa46c37d7ed6540eb99c52900b8ed3e8a2a662a575c8178ffd6f204df7d1e190080912502a6a020211252ae9fb1717a6ac25865bd106a0180c608d6d08a748286ea618e3a0087225f330c4dd25fe07168b84d19614267b82cf40b22cd1133ca6a6eeb2365ec379e1bf123ab4cde8416201e758ea823ff872b8f7a120defa9efb9a3c7bb1a7ffa21ea7a701c07d0d9d824af1d1ee633f80e6e82c1db209511a099514b8a4b60fe3d678a3c6d3242db82898727e884701da109cbd1189b3370e874af08e78c9631589e0ae2147f720b0a06a9bdadd0376deb022d9e22055d5638321875f0b49ae043c8f7b50c3c4b3221dd632ae7168766850db3293906cdbd1f4485d768bbc6627225af49c290c043969e1d57c70e3033c432d2f20b0d1534dd80f86573a059c38e461887f8e891b49ef066b500085449354813210ec150c661d47556a931dadce2228c41f44d9d65ed0f4d8f3be62e2902cab45acc734d801fea051a04e667f0dfcc4239812f034e3a90b5f366d1657c0afe262aed4f072d3ea3c18bd25b98a91d1653622803d9e4e670ce7274266c4da17d1f823686b502d0cf62fc4398268cae400391fb3b9db102a397bc69ac587e1b758efd12f279ba492536620fcd06e4b26c047491f6339954b4ab217c6be35b61e9da6b5e521c1c2d64e16a1842ebdd0498142b50a3f3fdd0d83756f45dfb1a5942da50d6ce02882af71227df6524c82cbb3934c579fda971e2df265dc28efb694a12d2154e4eda2baf9f4f93ce9e3117d4c21003b0a7e25063d6533429caa14fd2910e7a212e426e238f25625caf41adde91be3c0d8dee3515a1468a8cb47d9a87c624d4851a737062a80baba2c229ea349b79cc353ef385de17453831158438778d895a7115742ca37770dabb8c39cddd43b584b3b7fce3733815578cf049ba91d15aeebe6ad086495150a4511bbca185a949bf8b380c87d07e94b4b24354eacc2acc627a61353dd362da1edf697cc29178a880a9a8fd50f3402679b356a72c8cb305b34ea527ec99058a4ac2adf58dad0ad4c209be24c6a30579a24a9f9e9a7d25793c23d9e80918c702624d01b99be69e17d09d161cbca07b965fcced2698d1c3088756475ea77683375545a36b885855a895d686dc0366cc93fb92695078c9b211ee9ed5f1a88726d40d39df35c5702280244f77c7c3df7dfc06ca6828306286b4e037443904be410b9ea0d39b6dccae6788099ed7925d4c67a4dfb83cb1f4c2e7094cd10e09c2df12b11da9ff30c3607e5e29039fcabbdc1283b23905ae9275afb4909c442e6ef8b26a34cb29d1e70dbc26d7b9c42300a98bb9330edecf370d072099990c5158c89939b6ec20e4b04846715827bdf136bc185df993910f3f4468be6e70ee80b3d3cb29930ca4efc5e0d456bd1e287b0a9b5a6c479af2b6a9a7cdb27a9f9e1b134d764c87a6d1ad6e63fa7daf3230b141510d8c91f20de739acbd036a8aa543294cf996a3c10205eabdce5162c73bb93de1d019f8efbc497eb1ea602c6533a60374831246f45a154406e684e45aba0596a321e394b5c00e5994678e78bcaf4310bdc405ad2e827c2a13852af013b43cb7b9bd2192ec1bd448625e81c33b900c2adaf5a4bb3239f270aa402bec59afad65c3a77dec0027bb7fa7472a90b2e47a3c260533f670b2c1227914129dea08a12cd75720da6bfd6cf6a63c9cad5870fb66d0d300753d08c2c44ae70a22fa91697bae4f83ae41ac044dc83d2f71facb0101b433a631f7075f4305989843b005d14af571d322d62ce10e1844211e41d889cf9ec9b2df0d5733ca83a5b4b5c2ff701d5cfa85719e5c2b0075a5bb6196c05aa1cfee818513d311dff72f9b65fc768c7753822883ee914dec8c11ef253d2f16668464b07a2c754be610805922fea0a1091025b28b6f381d7c8fdacd2b450a444d3c057c17d7b9b7bcd688dfeb8e834e22524a767961897909c5bc68c6bc048f7901845e52e9bc7820795e92dd238c392ff145b7edad47f4b279d1c0315a180878ddaa6e828f75b6eb357546c3eaf8d31d11927729dc9b1e290165dee465deef33102d02d1e88b76669e7ede6d55ab6bf75677c1d5b581977a66e8f537f4663bf4fe334fbde977dd5f0c5a37c94da6fc69f8834607fa7a7581992f79fe9ec6d29d83f3f74eb112421ff3d8e42c2ca9586b9f05bd1f644b2811111cf02e53b92d7ffa63029423e1d6881be82086ef54aa49d6387c764684479d8631829babc9d2ecad63d2bf1e357bd751d991556e9d051a8063155dbdba509fd8bc56f3b9119c57e8f4190f0c1ac7a4cc3be2a95df701bcf02ebd21fb633b03a0e6e3e672e70b5b77f501614e190d5e7775b85674ae2fb9b41dde970dd27e63067f6b770ca2f272a5e8e5801ed4bcfe6214c4586dabe8257688408a151f876158bad9d9d14b0072aee50fa6a07524276072dc2b12a04bd04e6b6f67e706ed4947b6ba67c423fb922c29880b6bfeb9e9c8c54d0a340c6df67f5fc0198cc5b4fbeea12f8d535961e0f8f38d421adf7a64d9d3a996064ce32dc34a2c6aacd743c3624162841577e4c16ebddcbb9f7442bf4493f1627c4004d075b07c6c27288bff4be9061b7063a0a2b3cbe0010d1c092d81b68b1ec7db3dc7406970243dd8bd76e2475161c325caaef755534e518eeed7f2b767c4c715e39c577d1961c783c48c00713af2fac3f747a03183a2ee72d1629acf409f8a12e867ab93c30df97df6968d64e9134368b8e7ae99fe118a87517711bf5a6d3c06ec28dedb337640a88cff7ad4f6ad745db702e8c7b6bc95264ba088e4879dde0a097de416782c17ca8969f8a8fb6f4ed3b3f11cf8aea4bc60e59433eb30268d4bc130785b2332dc169b68ba3ad8c01b37e16821e383043b4450d3b8c689c0f805b568ae18f921f9bcaab28cf3c96df2861d633f03173b14a8ecbf1541aebd896e7b35ee7d67947380b7e968e81178a57a78dd1baa1500e138514768170ae1561770dad26c6fccc77fa3ea11482dc6dc7396a85dfa66f13648c1403d0552c04ab2d2962cad9e5e63b49a10d69fee1b978dc197e8f6210d303c351b26a5b0374ec514372cb0711519cbceffb7479aa4caeaae02f3fabb7e7083ee5829f24a4ae8064b8db8e8a5c70f4650d0866924def19fae1c655104313ac0bf8a5f06e136185f0dbf9e7f568bbb76648468e6ed3459c9c233994f6d72788aafa3fa98715d62887d340258b9f144bde735316489d84070fca58a75e49297e38bb2bdab02d06114c4c7cc28c8823eb6e3a28f5c8c2a463c1f3412007a3e4014cc1bc20a70278a3ccc7832965146c12427acfd477b7fbf49f5f7699127edaf6ac225fca6c48114ebc1999ae1c5982c60dc69704366c3831d2c6d3b1dc6cfb7b087bb31ab2c38fe107fcbee32c136a030edc25e7de13e411ee9ac17f63b201cbfed7064883cec1a0c3345c104b79a1b1551b604238f4205a04a365fc4de4dfcb2ae819414bb1956ec4fd46549fb66b50fcb337d55efee3116e72df6eaad1d2fe6f8378113e3624f02638f5ad8db7d99ede8462fd9d8537d3876a708021e3b66c5699ac789a4e8801f869d5006c944f74f8a1d7355e283673a1b501ebbeac5ae534d9d9b298c07c7625ed70bfb9d4549a7875361010a0466304a6096f802b263ea9c37686493ca7c03b23f07d8393f00907d0c7c8f285464c04bf280ef6a4c47665a9bfeb87078696d280f8e556eace0f28d8a4f21feb795d88ff55295793d86b6193c7ed4d67599de01770ad383263380211023194feaaa052225654d307c0ab5cab9524fe872ca499dd31b0f0eb87b57a58695e1147732cbb5fe90e993ba6df8306d8d1d4a7d8e32e16682890ce68065b46404fc7d87d4c8192d0effc8392fd958a4b456af757a9a5e21f80e9c96aeb08118fb3f2c0e795efac97832ada1b752c28a6d47d5fc4f62526030bb0c4a24631e7b0da0d612e28ef982317d7e76870b19556543d5ea8282a8c3def313771989296c69ed9ec8a18bbb07f9a96152c9a4c2d12adfbd05e7bd1772ad96f6c2d47cbe31354f0190074e9b5c2ee2ee44fe34361b939d4a97bef11f896eaf36e268930e92df1030e0278caa4538ea9b08bf0bc21489b786918f5d9cca013b720d23dfa11c199eb4c811d05881a803a58346a1029ad0f36c1b0964050116c3803f7aeefe5eb1f9e734c534caae04d2b648df92098cf25203f5cf3db1d59b355a92ac7b680d96915b32da237268c451a543f554878fadd66023444c2517a7dd4644ccb3ab185554b881040e7dadfa12cbbfc82c63f07d12d9e6ca05e181408390f6b55914f03d9c9b215a6fb0b90a59f0f15d384abf94b4009a581299f1a662ca4532edb64a12f1d8dd5604505fc78d529825c32211fb91eea58e74155c7c7931ce8d1a5a55f7ea6ef12a239685cd11f5497c9c557700b4b204e8fd941c892d8169620ee8013d14b8d812bc33fe84280385a65d2fbdfde67083c37b91a54c2a74a80480f840a3c64b2b4eed3f79892d3645cc62ce36498fe008fb82e29905f7634527de823773b20729487e9d6c27bb77902c38d8becbc5bfb7aa871f55e1143187c8e4ce13b4c6ce2b407dbb00e2540f261b5b7cf64d0ff1388a36c40b02f0b60dc87c521e0b0ca0a2fb8ba7d6d9379db2e466253a45975161a8e44e03bd28fea338eb8d3a5c6ea8136f00aa77bcd8ce22ed13db2f1c2659c53cdc3e2c240f978934705e2aa5a4ca470c66df14f52bfba655bc7068bab301b939ec94beda6d81558bb146c1d59c75807d42319280174856bb5ce4b6bdc474f7ba9e43e4de14494e95e11f2db6d16a1015755594428aa32ab26590edaca060272a491ccc29c7a4d12a73365334847583b280788b8dbb590b64933cf43d4808357937ace0c0ee525bbbe9f0bf4ed3f38dae859a481a7bc8aa6dfc57d0c04e950b3ae3e2380894d5388fa8b9b0aa90c7a87e87902ce8f0d044f978b8a720f7a6c39239ee1d6cdc4a03675c8aac7fa36748861fa9bb791b9b7a7c1aa842fa482ca2d786f8ac900b472746f5e2667eb19d2c5203e0ae0d226cbc376a3a0311ead2caaede19421dc1072f7395509ecb33ac2161182657c884c01d7dce8d8cb5f134da99b76c51b1ba52e22907d1429be9d2850bc3fe13ee695cae4253dccf276d2addb7fed1ada43edbb821f91c626b2abe5ffdc14c5e46d51de12ee9c684924a87e57184b0cc7e58923df3d0cbbe15c878725adda3cd3d3d9eca47c54a62423e9b284d7364db6efe0c7feed915edaf949feae35fb5908ef6067aa5c607860da6a533b50390f314eeac241f5c079da5574fe2fdbc8872dd89de46d266677f3fa66cca11212b8f8486d4346d4cc6227fec2e6a912077aaec8ae53d30c46d7543d138365dac39c275642e2944e848b5005c7e30f2aa2cb46e77459392857f9642781d5fe5113eaca2eb9f904c68de1577d701adfb6be6714aef6c3d242bf98720db9ba0947c5de869b551458e9647025247163ad5ec3cd2efd74237a01fb456c211885b5af768ec1b51ba367ee391c0e538ff697d07fa2be6e17679b5b78871eac7e4795d530ebd794ed03ea9c406a2a1d5ad66ffc57590c16343a8fe219a598fdd1602309a63f07a0cb286931b4684d6fd42efd5bbce792a3148754053004c11a4c29a1580a198a0fe63105f7f211a19a7be3884532c83272fcda0d7b073b451c0c60b886ee67cb6814fb31c8b91b1e724e5584d664b06a5272518234441cc23966edef52572a3e22e004cc19d670fcc2405f924bbf32ae12a72400b30ceb4e5db06c90e0a76cc7a1b44ca1eb182500fe293d2de74793a1dbc952c4b0e99a9cbf1209443ec415cb875c0dca5584cc558d403ebb9c4091c97563eeb7b976b874e3a0d69cddcf6905692339a4936a094589e88c68e0cf38ce257db2c63a52d32024fd7d3eb95fc54093b7d88d3328f531b453e74aae6e5b97880aa89ad0f57c613152e97f80ac2c7c1e0e182a8db30c3b85880a09bd3e6a49da527f49a10b4a8030ac9468854305e55a503ff3c49cf9c994c0728760cf075838197587b5ee66d03931dc3d83294390cf20e6f0d36038543f98a55981580561875fd83490ec6660f970e77c77204e522f8d08245cb56d9c8de7b6fb9a59429a5145608880868086e2ad9ac7c89512d2dcfa816175aa45403fb933fa15b17b5d2fd30cdb16c2bd777b6957aa7361095eadb67c7888f4b18b18e56f458bdc76dab849590f9aa975436d71432edd924104c9ae69aa3738c1c9dbb9f12cd358e1c97fb4fff96895cd5c22402c72fe7309d046afcadde08b9b51138b56568b41239fa69331ef79ea905b86a4473eda242da41f2bb61606172ec68c506b6cb6a7bed99afb2301de39ce65e8fe6dea369da6363de5742666b47942aecb7cd58229c9679cf6399e4d8e086638485d9916a8cf70bd8998c46c6caf4bf57c0ca40a681fd9a7bf11e762623f5bf2fed8b9589ef425221d5c7cc70e10c9b1f17b524ad37155d98e71dadc02acf2a21932dde9db166e42fa9f68c57c160ca5f9880ee775af855ec0a7ecbfadee4f71f1289d4321b9fcf471f7495ac65ba1d71e39cfa9e99cc7d529248be3d49aaa2cd8d87061aff978fb43588e6dcaaf0c9acaaec985292a00b3087d1fd618fa32e335395e6485fdf6cce5548cdb9a8ceac3249fbbefcaaed553c937f67732417bb04be201aefbdf7de7b77667e710bac86201620a962c91a9e280915cd018a9118663fff2bf95bbfa8defae5dbe0b7a88ef5fc92ea14b9b19e5f47be1866c9bf5f7e0909f9fd25a736e47fc986f5fcfcd33d5691d24c8be4ce49f80bb4046cf7642211c001db9a1e6b352850fbd94fdebb807ceb33eddca3dd98f7eb3e1e7711b21085acba923906f5701377cf2954b3cf3f5e4d4a6905261889d38e1311a1f638f5bff7de7b551585aa194c206c1486797229a78c52c6f851057e37eb9b7587880fffd4a74d876fd0aaaacaa29dc7f7f8f1afa81101c6354c4d6fd049723c01e9b594fddcda412275116c4f1373fee6f8b1ff041fad6a3f032db7b5f319458eb0dc3e57fbbbaf11ab8efeae29c70fabfc302d13c780822fa8a1f62f566b5a68a484a294b3af6f6988ae4b786d77777fdeded0e45ff6c17ac247492adbdb6715308dcc2330cc2591e6e4eebd3b0c4c0737c01f7d61764b042fd884224a6a8bba4d2882a40a334685bfc4cecc8de19c082a3b51e1ef6e1c2a84107ecc62e2542baf0205ca9f321c78822d1ece49259dddb7d852b6f5b939cad7b44df5b08228dbc94dd5af54afb2d1b8a9a217935a2dca75fdee751ae294bcd0c967f6df67faaf165b8a8eeae55fd71055b563992c93aa037b1d3b9649ddb14cb4ec5b1b227bf9abd5c82e8d76d877f1772c937a22a95822569b61637e8661cfda10a3bf6887bdf619ed3230da6436f2c294bfdd8e65d2da1118f6da167f88c52a2cc3fc51fea67ffaa3d0ec3fd03f6986d1aeb23ecab736f9abcd902842d8199a5084c91a96101179811dc71c23777777777743dee96502a43b881934cd8ef14653d3afb272e209dfbf65cbe1a6d6b257d930b8d50441c584dfd1c0942dc70986fcdeb146546bd93c84513646cdadae899fb055a8fcdd831a9f445a8f2db713011c50e3f76fcca9652ada7da2306ae03f8dc65648772c931a5613287cc0ffe8b3c032a9309aeb35c2c9099df35d10698db120350728b4112eb8e4cd7aab7a29e5e9638c9176dbabaaf89272ddddedb8b79f07b085793598479a6367ee244ada00bddb3ebcb40c93612769254c5b89d0fa6b212a9a1e69252db38d246e1d54c55ca63d2405f83075fa81db986e25224eb79ce36d4aecf33b60698fe6fa75f0ef37d7bfe1688e57ba89e65022c7cd7623f5011cccb46308b7493e675d9f2b50717777777777a7e15524b5b47938b55b45c5e70115f9fcc68827f727c92d98c250fd0cd5bf3bc0ce20b126ff8dd46663fc312acc8eab27ae65fc7fe0f7d932fdc3f38144e490aa1ec48966c77f2e0f6a99ce797c8a9669ff712047e24a9638913b15d5ddafa8fe17b7f3b8efd4b4e7ed592dab6c9e8c52505ab0aca8b491ed232bf3b3323e3be303b7cf4bfabfe3261d5fc158b8f8ae7fd47d9ea26700f01d2729edb3908da1f2bbf2cbf2fb0cb43148bf2ebfbfcf3f7aa687ef1808fd8e83bc08a267fce7e646cb9cfcbe045a66fe7e8f8dd1e2f7735a06e5f739d53229bfdaefcb6c63f4ef4f95130c9a9691bfdf22d8991e6ef217c0778d8200ecf7f019ee817901d04e068076279589b00c0ec202e1ef41601ecc008076b24495b0327a8ad277cc84bafd03437b7a38062ba38f1ca9be7fc3fd650fb493946e6065b4112373a8fb387a868b76ff012ba38304d1425d56b2bde02b1808e79fe11f6d6570928dfe0bca03ddc1795c509e976f6d86cbf78b8bd014424225dab53f93dcbb65e3ea3c3ee33fd2e5b7965ad4979627b5fc4bcb934a2d6acbbb501d2dafd2424b45a8d49757a92f2db4a5e56b9a443bd2bbbc501da46f21bd0bc521626bcbb7b0ac74511f49b2e353a48450fd5b2505a57b8ca0748fbfb79827451d24a508a5c8ff8d64a5e40a254aae1822d68c3a9047d19c3b92362561194e8405c2934c9fc2081be39fa4fa476d88589b6a8f615bf7f8748ba48582e87e80a1f29d8b2e6220fc3be5c9a69a8fd0bcbca739ef22ecfdb9885d857613f3942289423b39bb49faf989fda5cd68ecf9faad8534e71911b1fe649bf734e7f551e7d99825ce73752e8409aeddd33258fb5cda0c8df26cba63832af64a45d054eb69aaf516cd9af3e13dcaa339df709af3e769ce799a83d47b06c0f9c0037a8f07e1c264e7f9617a0fe0708f613e6c11a2b0ce7cd81e0af3cc87cd51d8cb7cd81a85c5cc878d513f6cfee32697d66fcdaeeffa311dfd17f69dffb404cd528d131d756bd7b434eb8559d5c87f36c6df071f702eaaa31ff39f229ad6d8ea6fdafca70de03aaebfaeb7de9f47cb6054c7454b45bc4a2d8ae33fd5df7fb8731e0fe23def6b1a3eaa32476398dd12cd70cfd1dfd918fd03c9c54b01a07be04214525248b1822544575811450f1794e90fc64a5a179669a3938992227b78c4994aa57844a1d72f6b37efc41885f8ecf00419720488c80f7f7c90532281e66e34c7afddb37ff2dfa9f28f02db56ebfe016e07e7ae658ba47af51e9c15c368f7de5ad0ddbd5a247ef54bb2484e42c004312c922d08fd00f3dca965da8f00b9fb474913040d0c9a206ae6732796c7b4d1c9f60c0d37f922a9a97e4023a58f68f71c9705614135cbf5f38efb886247ba9432be1aeb61b48c254fcd390ceede9f26889a45b2482a0c9f33d3faf2003b61eed20e42882d84f0c97d01b6a7f9b2133e3929ff3bf5a9392a66778a69c80fa339082bb9c1680e9e68208924a5255f2a7c182df36685347842b0c005ef61712b6d73f0b7565b49fed6599709435380f3df74f81ed4c26ecb6c5555951149fc8486113602a8fd005819350b847ff69dd4fa4facef1b5a06b1a26db9fe1bd53b6995488bfec6f456bd7b10cd79b74ba061844d738fa399ccb22a8b2a20610111352ca9e2070fdcfe60ac242cc2ba27a07a7c7f99e2f7e7b204d53ff2f84ca43205ddddddddddbd999953f5bdef9bc1425498fed642217fb955affede230d3d226c619cb431af13c0bf8b4b5d1200d6a5b519f261364655f7374687ec304278b544613ec9df078135695706001608feea5b1ba2aa91c26c0c5b8f6d5defe06a5c82eb8080fa2c593da9b9b7f58bcc8ac824e2eed5bfcd7d7485f9538584adf6debb67a91a312c6ac48a6aece2901a755cbf0125d5b74e3b02bb68b70125d5df9a51e3d6d66d4049edaa6fba436ea55769302b9fbfd8afe047988db2f11949fa25aa351ba36b3fc1fd3d2a7e4d73738594534888bf44cf917e3a49464ac34f34cdb54f1cc113b2c0a28a27aa30b283bbbbbbbbbbfbce1239af3282bbbb233183924a055955954b29a5fcc5c1c5954bf9d8ab58ca97524a29e525bf92cf52be94ef524af9355d49995205cfeca7c84f59d22fe14b26b500414a1655fe72ca1baa9432c22259c94a56b2675ba206bf2762ebb5d7bbe4252fecaaaeaa72f9ed52be5fefa35e52fe5cd725af21cdc9198934278db401e48f924c96bf3092ea68c123bd80d12e0ec1de92b9ff6a8c7f3d16af9557f5d7f6aa5fabffa25b55455c98fb1d14aafdbb31dd57d74523086a5bdb5a55fc40edafaaeabbea5f4544b5f0f923dc1187782185a8babbbbe6f334232dd3553d5dfdb59fd588684053684a5c4352dd352aaaffe3ae7a2a1f21d5130db71a1a11043c134d1059106500af78f90e3629f5432a7ac6c537a9287e20fe882e369c97cd825558190ce43b7885da2a421b0325280ea93484b0c2648f4a709c65544118087f528ad089d048a34052551096a109c95a7c479a5e05894aaa573d7503ddb0a65d454b22a25e283605b89ca501d2c6cb754b0bed38c0f2582f8b36447b22e5af0991ef5a8aa6aafc8b0aa9fe2854f3d9187f4c8ad9d1683e349e0df98ce673423b39a7960d557fcdc769e804aaf57ef9b847ecb15eee514699a67613d7cb1651349a8f46a4fa47cda7fa6b1a0ce390da71488d02f8cccbcb4b216ae97964080b0ff0f4a0c56b2ec6ac4996868dc988dc547d768605a2eacc6b7c8281a8e2913655f13bd949987148f552cee9581cb231469aabbeb748e409961173b040545fed6063220e6ad5d35c15a4399e8da9e290e6aa8f5b24d25cf511c84da32acc2e63923294b22485494a938df1befa14356c8c2daa101655b18a55ace21235b83a95cdc9eb59db56292b592d26b74ed688f5963569aefa8cc9c6545fe1607aed3226b5fa2ef5fba8a522e4f78cd2d6d75cf5232350ade2904a2e4c4575b4e0a9ac80c508c0c6b48b9e21798b6dd9d26419300c44ff0cf6fb01d8189e0991511aaba5aed49d1696801f2090a8ec3dc0754061bf434265cfb10c8bd23010900ac140f4c388b131fd9b5fa81d120afb6ca3f1191a6c128265e06020d6092d5198f153b59f024b44dcd188f007b5217436a65f02f12dc7183b46bf46ef7336a6ffd1086c4c3f90d84f834b10819dc9e9135448985c992841edaf44f081da7f83024bc34db08135310b6a3f3ba1f5d8987e23cc1c3b70a003d8890a45d626c984103821054f54114515422ee650f5875558765994b5aa5795b4a4252d29ad4a5a6e5995ace4655dd76549f9efe543e2e5d631c9676a639ce20966acef40e882145a60032940e10d289f30c0dc3be6afa1d1324cfdd7da68c87f4ec39b72cdf991298411d4bbbb7b66d4db63b532d73fffc732da5d2f7726fb8bba6b996c2e32fd7770272168b4015cc8ec2276a80d5748b6015b98ae81aa93aa16bfa3f898c718a3fc527cd22f4a52266e58be65465a4282fecadbf827511dd2ffaf50924e0bcd912b7265930fd332292f9fbefce9332f5ed26e0757fbad9e0ed23c5a98d5bfd8280d37b17cc98685859624a356be6483576849d2120448df42758adc90bee5576849becbbb501d122d72d1528debe15f0f69a906cac7165a4262e559569ea56483f42d4fa2b424ffe57da09e96e4cb1739f99c12f6a5d1bfb8d012fc927c97137ab33d7d4a734a1865e2e6c5eff04994462f6f83fecbbfce0e3487c64dfef46de8bcd01bbfd112a44cdcbcfcf649380f3cb8bc8bd7d9680ec7c3db70f12fff42755c5cf840751bb47d47f3f28b72b994bcf845edf01d575fd022a51af1e54baa03e5e3ef0cacb3946dfeb5a1fcb6edf02fb6d26f2e9eb51e4af225b561f91b3dd022f15bbea661de076a6565a58787a1392bdf032d723de97da03012e9577a9028efec6cd1f62f4fffbfe31dfadbff0b2dd96cdb33eac58b67d48b9264d94a92966c587eab94f4e6e57ba0392cff428ba07c4b29622d1b0bcd2992c4a27ef4501ee226ff295aa4983bbccbf3f02e9c87dfe121e0e25d68897985a3f0e79f1863ffc418bba7659a5a80ab3ab287cd8361109e9c9c9c9c3ce9a4e5492dcfd2b2b2f21042f80be1ca8a500b90501089f48c62617946b1088d1e7d12dd1529b3ef2dc3465b898718bef523ba5d29ff82870d66dbb983e311f76601aeeab83e669d8f2e6e2db6d2e859de074a6553f995bf51f9951ffd0acd2932a2372d9e85e69446df92c3f22b6f83f42d54e7e549bf425d9ee517a5f23e50f15b66f4f1615a46fbd8f22ecff2375e28937e35266e5ede85e6301337f9bf50a2dff2bde9942e7ac342a2254991f06ff952456df8b7946cf4b37c3f4bf52d1b7c162fdc40395979af32b7d1cab6284ee1a04a5086ae66898347ac8a58556155c4f8b16dab112d6361d18a59ec526af5d6d659a05a9f23fb483b7e0c63eb0b13c36abcba5a6f55494400ea6e0c8d96895b1bd6b8b5754dc01c4fd6d5e233cdc0ab906619bbb3035539c016067b2ca3ea99ea7d9398f7f5fe3630a73a456efa313755efa68ad45cf5359d91603ad529025fc7fffaa63afdd8b3fff5374e4befdd6f9a9690d0fe46a3d9f7976eb2efcfa874acb2fedd5459d486e4a6ea1755bda43c9aab1e2e999c721b600bd39c179c3231c3dfe6f1fb76830c33871272878852af25b7942db9637c779a59716af5f0698c1ae5bb69b7c32fb975a72a234be1d45ac6a9106e34cdf9efb0a92f4679aa90564cb2a7e2637585831f261d4e40263859988da359abadb0ab3bd346dd9936eaafdca9bfa3e94c1b75a68dba336dd4d58ffab5ac336dd4d58f7a94695df5c65495fdb1652aca03d686f4757777632dc180f1855dd88561bf3ed37115c374c8efb7beaaf2c52f3d066cc5e8f510fe65c9e622dc4af4554ae6f428740aa779b40cfceaf10f1c3e83fd5221d2ce2c2231e1611e1e168a51081a279a206c2490c33749f56d52fd09b58c91ea54b47caecaa2e6fc87e6ae80c2ec38a225966b37f82041e51729cec6b41527a88c634dfdd7c6b90f9f2ae424d29cfc43cb30b740cfc833f28cf05c174ecb74a72c3830c147491a7ea441480f18f8bc797d582346d967c9d7c968341a511ecdf5788fe234d7b2c8cce981f1680ea7b966ca4cc4fee8475b8f5eeeccc9ce9320a9645433a2ddee12f568991ded3eed465b0f1ed786d32dd1e82f8ad3a365b41fcd3ada9de934da83c76673e22891a30a737be43497e21f1bc33f4f5aa430ad24fb4b5536d25c4aa22aa4dd7d920a739fb39062772f7ef9a043ba52bee92e686f5f7f74ae137cb086ba404c88420aa26802a4490fe7841f0819a262e80a9c17e1f3e626b83bc2686ebfe952089f6f588cf1db234d779fb0942412e4e8ff0850f7458fa78d59f818c2e7dc2789e1c266deb78210c1c14884324218a18c3d56e63d11931b42413495dc97f333ecb230f08055c39261bde06307b59f790a242f379a2036c91448dea8a2300c50a3f6a76c30230d860476d4ee729e76f5f503927c0f66610a932ba0d9990a84a9409aa315921e2f08ed46ff9dd56f8dffa2f657dfbdda1ffb2b971f2b49e97b1765fc6fcebd931b179f736f989ee1285f198250e51586706c8c3884a8aa8818e11e9f277e9008451154451c211e8e05f7f0ce6e518ec5a1c4cabcd77e4f3573df66ff64e333ecd27bc650f72bb0323808d300c767d809179050c0734a0953bb26ea50fbd98958044c854a2cc739d614c453959db9ebd75c511c1bc3cf33b05152b3263ead6979a8f667198e8d11ebfe10d6011fc818a59cd31b4248df4e77c37def216456a2b9d7ffe23187a16e2ff57ebc753cc2b131cf46c97beffbf1d6b86983767f9ebcf71eed98194302495af407a780c80e38a1491a8ea461a887cb920fc64a5a1766030ca802431b03c7c6e038587186cad511e67b7e1c4ab40c7cfe1c3e139f49cf31d31346d9a24cb99394739248ffdca92a81a3f4de477d8c5a2d894671dc16e58e8a34879bf89b9bc2e80182fd96048940a8c9144d96fc6e8e5113e68d9b1ea120173c7eff753b1c24929433987630955ba430bd6bae39f7e798721252fe9679d51f867bf319c9a209f5410f0c558f9144a34e7ef74a794149f9744175da3d0adc61f516ff686ee31d4e35e74ae48862566fe3a31f3561763b34da6eb4017c8766ffe09dd1bb9f7c06c7d069e834f444e0dfc1da8d3a9d5ca3a3772b809c28820fea84ae9b38c55120c211d4a2b2f7aedd9bc15bf5279fc1713a5512cab57e4c76fc7a04c5fcd66c306ad29c2650279477dc04a46d3cec376e9a1b21991da7529d4aa56af5a5f89266b448454b11a20c599d016177b3b62c380487c2b0a68643d8cfc38c683698fc7e036c614ed39d26889a57a2397f1eaa5e92937fece0f498c2d77d641527e947c5c5f41929e7546182930376342a131111c935c11d39de8e1e7077b40cbf738eebfd77b40c530934e73317a571d39cf737539ae66048e1247f600bd3b9f854e90b7763205663c750adc758fb9e1936b37fda8cae728b464caa6aa74a69f39292c867a604924572c867e2b032b62516555aa92ae51caafcd114b39b291a4599f457585a3696ad9bd2b2c2e4faf547519040412f5da8c63fb9497edc3837c9f738cc9393ea30fe5cbf29ff86aafc111482b40bbe96c1acb0ac76ff6430350c6612c8a503c12a4c2b073b23879080368602aa7ccba765e6cbb79e681994976f0db17eaab47c50e5bf74f1470ef119094487c4229b8aa7caaf76aaac52445593dc8fcfc6441aac49be3442851a7350e57b4c41a0d1136617e5472776c6c64df245305150a50baae4816098cec483e48f829c562f83dc6423bef42bcceef13c9e8d71653f9262b6f8eea5e24f57da8c66cd01a3ef52de88ad44a31631a24bf8c809f3ed54f93faa94ef87fc6a0873f4ddd745a1b2b9ceb1a892bea20dabd87b4295df99a49054c29a28ecc2ac684e919beae3e7701c88e0441a88501525b907bc0e754015e9f7edaaac6d732fa84a22cc4e02499c940dc7671e8f9c23f9d8c9b68f07bed583e2f38654989d998948da14a3689334420f757f5b1991080b84e4665a0d6142f8fabdda7e3a716fd16a0893eba3dd6330638225d0c6c41f3749396590e624f35cf49a3f38481b40521ed18ef444303be6a9927b5e9ba1d1dd18f8951066bffc8ccac7b6184573f2fd270853be94724e0954e53f1e97df9a037649b57c0977f1d1fa8340054f132cd460e445865d96ac227cdefca87cda194e9e57b1e13ef9baaed57b907e731072af7a98eff7305ccbccfa88c819593c1129132c15521ef0518149c9f11f0f88bd1dc2e4df198f35806bacbcc18f0119765953400821b4e4c34d5609218410563046580719658c51c618659431461925109e204131c618658c31ca18a394f1e5cb28a394324a29a38c52ca28630e109e203d4290b83891c229cc9c92d203084f901e213919679c65cc3d423805659e8c3805659e8ce63c39414149496106c213a4a78794cfccccd285c4cccc2d4c62176616665e61666656e1169cc28cc2934f78c4cccccccc52327b6c6116665e61292dc92a6c710b4e6146e1c9273c626666199969c7d633f3c7582a427efc2899999999a3e418394a8e1ca38c9299595a1c394619254b1599cd93971b86f212457bb9b2d2626d2d2fb7aa662f535ea6b478d942b2c81529999999995d482d2c2b2a2d525080f00461a0ead2018d35660ed203816a7f133b55caefb849e522d2c808731fe322cc89915a48f2504f90e4255576cca4e3265532114fc147f887a3183244ca07c4c342766897f432d92bb668b1e014ffe01d0642c573e1a2fa7c4484f99ae7a552b4bb51658f9b6854f95d0fd23bcb773baa5cf9eea64a1f515459a3f29d1055be214376488bef7c3c512590ec9a6052e5774d34a9b209a22a9b283af9ae092caaf491aad2c78f2a7dec54e90348e783a7cace47902a71aa7cdf3a1e55d24ebe4b5195720717455ada9ad52b788cb0000c46de80d2c11f2886a08882e14fcb7470488da265f8891cf80ce189523bc2b3931a3f892c8086b40c11232d239b7120d43c53c04151ed278cb4cc22b12249edef283aa8eb23b5a114b2b0428544576852ad2847d55bbc56afec64f4d686712a5547f3ad239c2755a7f69603ba6a47a8a8c8dada11d5b3bcdc2a6bab6af6d6163b4379eb0814972de5ad23525654b4a54b701dea6808b36b9eead329689e3e43e5e99dfed1a9e6b0d878c9c6499a63266ee2a2d962e3233d7238b5f1cec64036e6e11e16123481865420254f286ea523277554f9090d48964a55e669aeae56c3795295779aeb9ee6ac8f47546f51c6a2b9fe1a2d24d654aae6d460a054aaf678959734d79272122ac453602f9d83d97dedaead4408b36b82a776fe3bb8a8be6e4e2508b39b1088d4a438cc1f9db2d91b3e53554b75f6799f6909eaf057d4fa45b97b8ca78697d5352d1f3d75456d7eb0fb3cf862f7892646f9608c0fa3432a9bdbfa82ad1e7b1bf12faa737d7c8cea14b9b93ebe0ef6d55f5bc906c3aeebaa3e5e18865dd785c5abc22a2bbaea1373c5836d4275c584cf920db3e9966ce2974a36e04333ccd65c6bbfde8256bc2a2bbcad250c894c62845fb1a16a43c586ca8a32c0b6e94ef5795555d02b29bb6a4b429774c0986b7e87e15e5d198fcedd0e18f719907cc0820eb240a2f1a9b189d4b83591fad21234697cea561a9f8ab1d63f524213a10912a2397e184f0328d48e9b0d57c07278839be075e66f7b587d3e44d643a2122c410da325a9d39fd1925c148430755538ef822fb7e71e7bd5bf0ad21eb49b3848985b9d3bd292fc9b525c54eaed7c72a8545124fcb38cae9b1ea36d985bb70a09555de560a872c3280900f0e94150caa662c3bc7153592134c4829d2aa45dc2f47d2730ef27e93cf127036160de83d9fe55f49ba3cefcf1b7c69fa43501333f7e3ef31e777c574713cbb842c051c71f7b59a437fe187661d85fda758db0ebb1bfb91e7b7f61fed848c3aebedeb628e7f7d7f5de7b4755efadbff11b7fedafb7a1fd95bd4e29fe6523fbd18fe2f536b0bfaed73979ec6d5c3f7f529d51f68b8aa36d9e4e340c5e33a4b528299d80f17aefcf53a31cc83d3a69b99aac86624d9b326a6ea63511a01e80880a1f876ba042b9314febac4e0315c2353d38fa93cf8ce86b2e668686c9b10aae95ac64e5dead23dfa79b604682f901f9fe1fb058c60b81d3d2a3a5477df86319bd534242caf7e88df54d73aa52f55685ed8cd526b7f88210e514b9b1fe3dcda33939346e825fa464f33e89453d0a69b809be45496e82d6eff6ef722e8514af7d4733a237825e0e374158aa7ef43e502508606ffd8dc6aff94031b5684e4e91920d0472761865bd0718653d0f7113fc920d7c1f28ee295594891bec359a2329fc2416d5c34df07d30e19deba5e09ec72007b909be454b36acb7a8cefb455db454b9f5d7f53a192d59b454bdf58b6ada1d3fc7bf23bdc1be6d521ee517e50375d1ebadb771616fbdce454b6fc3c26889291427162d55148a8e832a7c212141f50075915461a4ae76f3e00ecad63c930cb3994008471b0f694a94f4549deaf141951f3fdbb08d8b76887adaa7c21d68ed34d16b0b8be933d5c3903695e5faad6d393949282338e62e874ab695105054158928a8765f65c32d6c261d4e37c131c4d8324c441eb3f677d3da18f8bc5d0c047cdfb2364196114350f76943545f98f275faad1952be94ef6f59bd6e7294655dbfa88adec8cfc95ed2527cac646365f2adbf916fdd589fd19c7eab82a5f81325b752a436d24df0170521848f4122aa2f4c7fb979e605ef5802251c3182062068080ac048cb30182b695d58a68d465a869df480e1842c38557bde79d8cb9d81737f603b2d036946f907ef704a0718e55415b58dc7ab907ff00eacd958361c6d80f723a0c7363b7c4da71c25b53106505f8b2719a9380c834d66276bca6718f578f8277423887fb8877d7808b6c203aab11b3ec34142433786347acae80f2f7b2fa525d19464bf9a8d8b1b9c62a1e6de632f3696e7614b79df50beb7969fdbcb9fb8fcca56fa1db6222d98486251254de5c5a6f23c6c2d7e87ed04fc2812bfdb7f67a2da459bdeef9c50fdc39fe5df7b9c11ef04f1e11b3ef31e90921a269989c6079602d4f72ec3711ab55169c14e74c0d9043c82fa22e554f65af61a9d81a9a8ac36dfffc7c9cba3fc0fd2b77cb5956c583e8945b1bc0d1b17b4f43f7ebcfc0f9467f91fa4ffd1f2295fd3584a0ba9c482f2e2d2b22dcaa5ea9dba9ff2fe3729ef28288fc9ea25ed783ccefac25c962175fa51de379d22d5ebf8a7a4fc8d7fca57f4a61fa524ff7aeb756098a6511d1d671433411df1b9b23ce9754ad7bf07a1b8a8f4ccf784490cd58c8804000000c314000028100c06c3e18058382418d7311f14800d8ea24882581c87410ec394418618400801048802000000002303ad0007789d3eb36dc3385c24d098c3684ae6c7f2fc97fcc797abab4b8035a7d0f8961593317a364970cd8fabd1821b97ec79a29e9da0602f0ecf31414dd11152cb4964e431e72713ca4ba426af33874c5e4086abdc75feb33db3227617fb4e1ff8f6fcbdb6eedd7d9cc812d246c61558217453312903d99337e8453d0693121a9fce76c4e491f48994721279f25a7348a5f22411cadbc97d54f5873f166549db8c815bb7f7d9634c97a076ad971824ce9a357229ec351f23850f978745751fcdeddf9caf97094908d1d67a391a460a69f556dcd68b9d9b484914b22d1f51cb68bd97d8faa269c183183399584da0adb90aab25c3d457462f8564e3af24a9120464ba992a63aae412e6d6ad569c0f6e710ba7d1855955994576d1ac9bf122aee1365b9db92a43c3de455aa516d455554e925a445b81ac1649d8141ab0e0a2978547e7a478090219b913ee499cba06932232133d6bef1dacbe69cd1aca94488618862cec4ed592a4e2fc481a73c43206fa0234a60289e4984402c94f1fdf84b869067b7537b083ef7c68ec414b9824f49551a9f20e523279795f3bc59e449a26170977d730ca4c4bae2d20922855debe2eae04b2c9fe9505ab363344ecf8839370811498546612c8a38e5d1548e704d091444b095ea75eae40ba355072212f2966987704f58a1d8ba7135142a9aeb83455d6e03548818c6365d8bcb65b4b1fc5603d840783f1d91fa9bfc9f852d28a46de7a21409690b6d697e7284e18bbde038b9e0cfa51badcb0588304183971e9c7ec88f24157dd82145ecee5164a2d7d20c3d231cb4a3bfe537ad6c5834545d22da2563267dce6332d17febd9ebae78bef3afc28b806f8651346597f7f6bf516e620a4647f2a94fd2fb60545d37d9f10b75375ec177a5d5b6a0db57f717601ceb4fedb1c04e46b1f6b103166783b87c2edc8c26303c9ecc5e377beadd7722c19c890d841d91829c2cd939b101e95b92a82e6979ffa47bf042b8512b5a20490609730e27414c5a3d26043b3c064f651c1d420566d8d038fa16c15283951f9d432043dc1a5e4ce33b685a672ce4746b4892119af99f63a43d4ac8dde311af104e5a79bb73666b29a3881c16f6f06116da7e57ebb33b155027c5a8e26c861ee05dedadeb71c1e7418d0e3bdecc6f5a10f337931853e7a5a2fa7504a5b0397da5de8ff870eb2a047b15424880a94dca08dcc517a8c88aa9d788bc4b28830dbfca7328871c70fba975039a8214a31d999ae71c0683869427cc00f29b1364456251ebfdc7f9d806329f4e11f478cde8ec4580ace29986dcf201561fe9fe42ecd04ede32271f3bd442b2a212988fb2eb149f74918ba34098d643140cf0156136567e4a910be0fe469d8b6074dd60162c519a5a5cedf345cbfce9b74ccfaa1ea9caade468a2f1ac42a2b66ea90b6c0a3c81dce4182836b81dcb6ca8fad2dcc41cbbfa617e2289da52b58e3d04f9478f8cd49918a5bf388720706ee6d0bbce5da78ca4175a5ba76465fd25ff3ea6dc924d1ebed59192504156e8b94e2a9e3c435d261d098f78c06663dc066f6981c470b5c909c827dfa19abbd294b3a1c8f2a3fd2afe39b51a5f5f6bf4083e0da0e7ac4380c6b8cce6f35a0170869e58a563decedf15f29b6d214d53d5b628ca4ee619fd005f187264fa3561cca1a89a2e724ecfe321d1990681a2db25a1b5306798f45fe53d6a15686004dc196580252c915c85db9bab27516ad54cf34f4c89c471ab8ff1017406561c1621a1037e9694c6ec1434490330ef0b71252812f24d0dab2d6322d058a47c273045a6e2470937c3056d7bbee56078af319683b550c36de01591487e87b3a674bf5edc6fdf68b165618c54cab61bace8e0515a219e1b7d8fb3e0aa74b10998f7b4aaff7e84f9b07dffc0a929643617d6aaae158b8e9a7fabc2abfd20729789593bda1ccbc0d220624a01871634f58737fa0cbf6617644b7c1eb10dc7f845258eb23a0ada0a86312693eee25895dc7253018ee4ed58316fb84a5e84b7fc284a4c0f04c1ffc90672f3b1af914e3a5184cd8a2c186458be55c2012bca1e8b3b743cec09e69dc9c8aa6f157a388a8be9e960121e8081cabf2e5536633d857ffaa4b0ce693006b05c1fc86a217612588ba2a99b26d6706269868c18f9828f0cf25da091dfa921ce779ef071f663e293110b2197c123d9916a634007ac9fb2221658c0c069be4a48e383cafbd85bdc635bc0548e896974ff5b5a061920cb4b1e88c55a6c087f45733bf30258209057064045e9c32b9685a57cc042760a4fe5a7ee486aec0359b4aba40c2b07d499f32d7caa17469a59d57f3896d1e9df8e47d678b455973b254a13a34fd2e7232469ad3b2d2cdc6ee684c7ea668fba8577374bd98ab8a620a8adf9e2a220012d8dc83430c78c35f70b1c32506e1f167e6735bbc7217d272ff63333fa0c7669d35b88c59f6103568c2dd60d266dd5dcfbade2a8314f99895c8dd376ec097d72aed572b1553eb00dedcd1070f74c1b1b6d391f337221f16e998f37a933652a06daec6ba83bcfafb7c7f6280059f8807f261c58d00da2e5c8a58165ececdebf526d19859360adeac581d4b7b2d68a73ad2d34b8189312b670c20a5b84cf16d22352bcbf6c0719573f70b4cf13684e195b373c5309ba19c60da5367c195b393f5ca043240ef956201ab8d45a399425a2b67d645bfe176a98aa953396eb04ccb3e13e8150626b17bc40102c146405874362b82b198572216e7761062b1e1e71ab03a2e937549d6d6840d23eb0800c49287beb24fca66f7891403b3fb4d21277253a6b03c8440390c85afb40031448236440ad512f5fb6c8f430a42196c131138302805e0c6d3bf90e6154cdd17bbbfe15a15ad07efde8f00e8cba85824b83f01852c7e4a346da75fd7cd8be7022d3e406fd95c0d5ddd30c90aa474b26b7496fe90ac061e74b5aa320786d2ec85ffcbfe72baa1bfd373bb30a0a2d395ae7ba00693b94f77fc89725c43c1b01f85e94bd63abeddd620bb31594c2ab067130d0a2a7d1ecda4712537c5bddf74f712e4f1e668a2f61c5d8ae12908be8f07a987f64b47c28b7601f66c200bc120e5184310033ae29d493093510de4e88542cb4dc367c434444b89f80efb59a0236e9e0001b4204f3fcc42bafc65b7fd54e2458ef0784aef44d27fefe0131c45cf6248fa7544775f879b456d6fc6630375f553f426e7df2998e978f9f334d2492bb535988c8785fd389df90d6b5e54db591e62b6809408920cb6c8398488731c1989b7e75da59c26ea1754086c03318aae08ce113ad573c53ac2116249a7846c760e533ea8311b3467e9cde519c96ee3e2fb454ec7a38cc7f8c171276f1482b223986be9016023d158af0dfd22b7e2ba9cc8dc11d7b08903f727e71004412eb479842448452e6d646f3f3be60290e85f10b42364647f0641ca481ec8694f858c4a6142b1c709ad45cb9794308843ca4256d02a5fb52f282896cf4e76c15a1b3c694e88e267411e2472a0b15721f426dd87669c41e0df54463b4f1bb09037a72647534c3e191f42cb9052bd09052af3b3fbdbff37056736627119248e0346c76044c39fc7048db00c9fee16e1a97d150d1a7017b0e419523411f3a53404bdac46c7669dec130bbeed3443b3d4c490b0713e0c5194fe442a7e30da81540e62bc0315638650ddec0196397e26a9cf6fca7d9729dcd85fa8e420085da48451290134b08bcefc6de5f81153ca156fe5d8b112a5847c1bd6cc742f8e204831b297671a82a1672e5a42ea8041e39aded3dd3d88562609f0911ad4caa9a6b6f5971317c612353a4355768d81632313a90767633c6bc06439c568c4451d31828e46826602c568c4161489b10c92ec00e43a91821ad0c5a07a292fc646209b8d049845004589aafc9e331149cbde7219d90175a023486d10315586d63877297c960d354d87610c0e44efd824da3cad489e19daa355fc2d081359b06eec2751e83ba7fe28c087e6804e0276281bac1e0e446eb9d4c9b6f94744d19aab33ceafc01502bf3465e5e8e056f93c6721a9a31d9fdbc48020100c79a42fab1c88cfb3fe5f38b540caed13c9c8dd36a4c947d5d0adeaecd2a5e4553f9dea8171879c46d4ba297ed5c293a6b1a0ec4b7068d2013efa29fefbd433640f62059f31d997f14f8ee0e8fd8f6f274c30bfbd054d791909568d7a4591c2316185366568394daf3e24463039f20902ae029a2d61011f6328b9268729cd01a606cf51273cf97150073d697614001cf13955e0cb1c2e8d754fef7cd5fba01c2a661098467019317990c088d87c6d5b2751f8ca253e2800f24ba50c8d4eca0b598c36dd0bcc2680e5748b78ade9a2989b871efc7adb518b18f9c8e01359a84689057a7b6c87a8d9b05fb16f4a57c7c23b429f5c4189ca9497a84670aacbc12bffe8922514b19c08e517f42407384ad1cd04dfe7789047d742bc47720447248b6e9c0a8d071ccf89144f1c0241458717e6d1b37880f87514395943d7b690a0808d5a07cb51239332ba096e9e1b156d5788750a190d175a201982e5a63dc0d02ccd7525ef43cfd260b3e57f19f993188e0164a43960c91beceb918f84046610eb3d28ca0575c93537634837889c6f2f0addb1f7705b88c8f953a0d2688c6edfcf1b05f221dc969cf5f2261b4a4a2bf204ed5adee21ccd357f4d87349b51a9c68be8a04b39fc15fac75008d28f8ee9ce47f5f3a4972fe3be9e737c804e6999f3b9f49db928a4859e0515e812b515aa669fa960277d8032596f44bd64f6b98948f639ad8d7126d32026a8450ad036144c9abed7eb60681bb6e5c7ef08aa1d905ab82fa0835c7a557cc3f066c2281d8f2ba289e421e86a647640e7a89d3c10182128674758b9a2c29780de279e4f3bd7962df503d6a97cb9c5ae6e40e5a80127adaba128fee561c56531d7a93eec25ed59e333807ae6f8f7dae78851723857d2c639f0f6d0baab1df0fb942d96321f408e9baf150ffba7ef0bc69ad3160260840272c7dc837715a85539c07e6a724a15d4069a0660512712e364c0e7e7bb39a544765ca5d4961f95e58c44ecc42d3e75139b1457d62368029b8243cd0da480ea34137bdc2da4bea190f07acea2a9569fa41486d036b0f7700bbe83e53a3a2524aeb2d64ca69a1669bc8bc829c99bb9ca3c61ea23e8ed9b15b59edcf48fde1a19d8592517ae68072ab91d5ebf32cacba875e6280a4b4d57fb019df16aeeb1935836e374cf2e08cefebb9f5b6418167e1d69a1e8ec7ab6357be79767d0319f2d79fb46e358b9b1726cf8ca7f4ceb6e63fa25d960a7d509c8b11ff8ebcd438e556d16d10ee43f533a758d9a0a6697b7df56218f0491eaa21da88d8fc83adb5a85b808c3a9a5b5fed596c416b2b6c1680aea404fee413c30e4f5cd3b87f0c2e9e9a1071fcda3e7dffed6231e1495c367feeab54d8b53015cb46185ae68a9bf6a98aa68d540d23efc3a1282298a78e779bf9b1dd4ebe34d67ceab9a624d9dbe7457f6bea823c99d29be18c05de66258b4d5ea12935b6f06f67d33272bd75ea77d070334b0451ca4b71df6d1e36bb81fb07bf4e2be42ee7d43dd7965f75833c988cc90803702fa196528538699ca28b34ccbcc49bff8b3807e4396027f2894e72d854b63cb4b4a04afeaa797313f564f473a780b380f413face4a8487c832a519e49abdbb22dda206347d7a29c4838f181c050abc4332ac9f4c3fb2c0c0972987165818c075ba5eb1fcd07b85524b63a448b14d2496803e802755fb6128fd4733c906dcc5da6959dbc30290674f68bb3bb603e33f32ee9e7f1740a72bb72882ad566da9a960185c519a6d347f1e49decf7c505873818ccb09e1b7c1da66779684ae10e940ee3d08a385f204ea8c35b185c12cea78e642714c102062c44abdb30ea6d0f8e12000a5d622d26eb31818cf681b2ba35ddabdb36c6ba043383561a37180b3a42d019932ef3bd025dc5045fcdcf4d77eadc2412bca602eefd7af00e25f7dc81cc95ab462b5ac73e3b4a8a30e020f88142d8859a70281b40667ae95334b62fc79ea90070673a3ea5ca8eeae08fb966e3b570e9e3cacda302d58120a292892ed227e21cf41bedb20d641640497102c72f5b7f25ebf6dd3a4c3f836406922a39e6e51c028377738691f698ab048309eef400a341eb6e3ec15524208bd9de5bfd7a3afdc95cea447fa2fd0b8c7ce0dff691ac8374923187375fef4d4a54d48ef3f8c74cabb2ea29859bb44812ceba8fcd000517369093691a7df3050b4b7ef99caece1461763ecb41897f67ac2909719f9351e785cc023866af1f56e6a69b7de01826642e8c2eb22531328c49fc5cfe0b30442b5fdb7bfe20d5e10a3de423e958315bd026cdc79e11cce34357c5aba50559b9047b7df7343e80b8e16e60583cdb5eae7765545fb0956b7bb118ab6f9b001ebafacdc854ef07634e1a6647fb2f11a801bca97b78b1ac1c1ee53c306e979906994b96f607b1ffab299485105a70b5998bbe93c9d5a936658776f95f16dfa3a42c1857ff14dfab1c090fed0f874842bbc115fe3c91d7236735e9684baba5cae44727358ede86ba5ae72f5b23a84c592474016c5745c81b578fb3cfaef2a90b1a137e16457123aee05c81e81420f9a7551790d865f58ff3a0febab16ee2871f15040427962aed92ea72d1ca97523e527b79063fa7c083b6b8a56085d1cb7271e5df68d9a5373e516e1b5ed45db6709fddcacf477bddd4e3651eff9858393257651d6fe88cb7adf4773655de061dcd71c7dac4147aec8ef5361eab74c8919a6001bc64eca3c574f55cb871f8093a6c02021205f2208e25e87d166a425dbda8d7e268637756a3479bb606eb9420888a1e5adc476f4589d63637665ac7b79a0347166940f178a163e30c8e025023192bdcf0b3c8aff690351755cda7f3ea40eb5545067c43336afe0845b907dc097767364d18861b16b8b41a9bb0c85a54237cd9223ecd7cae62d340a6bede95efb87b3a8fce306925ef140c36a48956d5943789e550c76d2c2b0a99c9ed301e20e7e5dbc9d016cbff86fece67bd0d13c4fbaccbce74499aacbb8840a4d91cd92a025f653b7fbeae904a91bc150ee0f320e34d5c16c9bb546171842cbb515f55e439b25b63143a673335dc316676bf9b800ca53cb58717ac343289df94574446392ea31a93d3d24ac1cd42ab1929b0eaef2d480a1f8a55f4d7684799175187c3db9d4a430e3025210ee809b505396f709804ee1fd8dc78d74c8209b38b3a05030c673f764de04c4662a19122e4de3aa8a89052a5ad83781e07eb8284d7664f4dbea0d8bfd755d9fb73c8d850a84beb71fd84183fae7c40d05c8c079d3f106a412feccc740a00802261d5c01af8fcc41b33ea6b755eae9f11a7fad726d7325d4f3c53df6ceecfa2b615139902abc8d809eef5c6f71e7fdbf4ed3d3647400d5d2472bc1223a5d25b4c3cc5b1e79f11b304cee64baf2f5f8ffbf6a5ca42992e92e4df215e81a5e05c7401a64d5264ff5bd49206edb9e89601e20e6760afa6ef85f65c3dd573a1405d09f72f6e7f7b12d0c3e0e1368aa2c482ccdf11bf3252722efd800b71e7694b9d73f979d3881291e4827070459a726a0960e1507262f4239b39631dc431d60d352332b8979a20bb645960355d857485878fed34449f201a2641e97b851e5317d244972758a7435e9197aa20ac551903348b107b4fbb783f6484f247ef02f4683e8d960b2d62d1cb76e284d880f3d031cf2278ba8b7ab230badfa700366a8dc46519dc45a5692f2a23622c8db54e692ee92f808175148d4229b44ff6ed9e48f626255e021c3aebc90cca7dbbf3600e67475d8cfcbe36c055c89d8d675efc1c6a901a8839ac8a862ae60412099722429c8b175bed4ea797986dbd97ceffb4cbe3cf53606e9e301aa12d729dec9f3c7e864187e8058b52dadb09c1d7047f20d3fce083e6d1deabb57d969d2add034a5f923c2a38e9df08cb4c138410887af118d89df10154fe0b0016c9345142cb3b522381ca36c00426a3237c783090680d87fa8ba51ce0be5534da2cacc47a8ae2b4b62f15ebc20547e3fa111437fa562e2fdad4716d969aee87c7f168558a5d44a2b48bfc2d5f61b9bbd62999d1cb218dc1ee5d60318d447e693c43600e5da8a7ece2b5b8c949bebe80b67c3a057863acdeb82f5befa8be2df53a307fd933caab00fb64a6f3b9fb7f09c4b59f44a32ffcfc2920150ceae1b37c1dc73b631cfe1c3b409de679a51ce2b75ee8f213a7b9b51dc74c8a6830e49cdfc14a266fdd734c361d7b711d635299bf63b5f098e23c0638d25f554c7b9e90ba76567f8f2c589fa90832186eb2a522b8280b3428d283b8db33589b8c6ff35eda4502799b8cb8bca9aee3f75fab174603e998f444fb58a8cc881cbec4038175b1b8e60dce5ccc77c2b5160df7e5ccd5a26fe90ef69b3505ac0f2decb2772e4fa251b668baa6fc82b93e7d7a763a5d1f2f3e90810db3bba976a8349cc5bdd9eab19e866fdc180bd1e1eb54520cc3b58d094b3f7051b2f4f93f3d66196777d310868a82aaf21bbc8b862d3bce13da254ad3d33e0e0f791cfa899096bdb484f753a711c20c6d6552c0b3c6e5fe6fabcd06a575a58f0b17b9e312b7717e627f4484e3c049eae578fc93e96211fb8a29c7e43e4b738bae132d6f528b86309bdc4052870c74de4f473b543fb54f19cd483f5fa8d5436113d70f9cd2426c372cefa300d821ee81bea2cacbdfe0062587a847a51a4897cf351b0c7298d7a7fb9edb7ad3c91f601d84e6753ed06770666f82f5070276101d4fdf127f069c25d9eddb91ddfbef1e22c89e664a98811b821c4ff9e4c566415a1c1c8c20bf60897dbec55be8fdade3cd3a964f83963e5480f996fe3ce20718c0162cf69c1c4548641ec94d26054aaa795718fdf5becac3de6287bd98ae461e491614c2ab39ec602d6b3e9726b01215ebdc2ae2546024d6f1d5dcd3fc8658d09a48ffd7f87ba147027f6a5841fd6db601be248915e4dc0bac05823c7d8b7b6055fdf388adf8e5b93ec43ebb8f5e33c45a310bbd84794da3f7d21f6a69c0afde5892b68d38c6a8b4bf74172b8cfc4c6c94bab25f83d239f2de633ec1ed9fb26805ebb05feba0ae361ef45163be068d3d46b73422075750a8ede62e0a9f30dec0165a2434cea422e8874dffec4aa337735f9c75223cc2b94bc89614a89a34e9e9c6e238ceb2f804ae3d1281b4e828ecc17ebedcd387a4d4e1dbf863eb058e5029d308f28d47937f27b5fab035ab8e8604071f5459a1b4a6abb0406569e0ef5008eb27da45fbb35d4662388c8e5db184310b8108edd52c8d4f0ee2ef89e8d95730a17d3dff41ca353e2b72f367ffc3f0e395a84e9a775381d4473edaf6cc81c190350aec6c639017487974fa637c67c49a4cf1bc8e3af14ab8f48a18698f04ac9ff13a209982843c09862ef1a52c4212d5e358af83f721eae756be3dec9e19d8ff869ad9505a377ab9e4825b2e713bf31b688366f33a7f88b1a7a73f527f954bb8554acb4ae08ec8a4783cf5dd9d9a77a2826b442355673c19b779826bf3ee7a37747505b85d7fb60b08f7bdd760da26c69bac8e3774933cac087777d9e95a784279a001ddfad387c384ae34d9fd190b3c85cd11fe9b98cf909e038b6d0e721113b017a9fe3579e2f045a0e46ad4a78c2fe57408167579a1414a4e97e0dffc426f97bd89c8619c9716825712d765417bb5bb361eeb6b9c85a97549a55a3c090e09fc7c2e55c1dd6e67b3318be4a2ba72e0ccd4b4e607e54aa6f7224681789b8fc7c57cd988d03137792e2928f83c716bb02bb5d26945fbefbcb1a08e701910b5c9c34c7d658d5c4d671b122ea2711793b34d8c0f6ff61f337ac06059e89ca246b8feaad6cf4a3f809d73e78167ccef9aaea7979de8fb436cc4626269fed92e0706d0bf15deb5dbfa03d812f3f74d56deda9fadb5457b171002ed095065d92c30628ea97146ef1f3bf05b14293c52da672d1568bab0b990ea332f366ae4706cd8273b917d1c90ba241a66edaffce7b7c78aa0fde4df68c0befea84d26bb34f77199de47e42d05a421d1216ff8b9c946d9fdaf96c8276569eaf81ede9e51f65fb141437db8c005161c7bb7746f7a2cd7d8a642755ea29c77c957a52132d9ada9434c33d9fdb225b33416d43653c1540399d03aab790c2e718bf798225520ccff10be6b046a03d1df4da415cc9640ad8386b80085c98db9c3abc1d71842a34273945d1b9c5b3caff1155a31324300d89e494e9abae887c218b61cbe306fab893939905d880a3c342b0f1ed3c50755ee3a27c24f651fd0b1b1bd71196a1fe8aaae32133d4869a40f7b4d976fa4593290d569d468466b8833c8bc96ab5ee6229fdc8566e7f7e48c9c206cfd29aaffff98d92b793255b28d210b973c899846b0c108aeb8289d511523ec92c138e3095ce6b8729edfc4c0e85c129b99359f8d73dd52b0072d349fbeae5f2323df39ca63a204845f83cf6572c949b547d8e8bfb892325e053c35f8b85884fa26dce0676cf02fdc1d264a63f83cc99f4d0e7467f2a482344abc1b7224d5c6641b0e9bbe539c2d7b1c74785acc163e2aa7c98dcf2784679e30b99765cf18e21ff58158dabacbbd3212c9baf7438a5a4f2165fc6fa6a8c2dea9f02b02db5ac51f15e48812fb193c7a838b15f4a33547b3cf606762a1ef773d3a3f62f15b39f51c70fb33bcdec96dbfa4b304dc0abb7a82b034e15577d0fbed3364558482e161892f9b0c27938290d8dd1c9e9de085ce530777bb28fa513031e4085ab3e9060aa23488bcd790c8fc511b516beeba0f38b54c882fe921c8f70410994a5ca030922494d5062e0c3c056a2ff1074fba19782abce90d1a7ddb9aeb08c983c096a9a784ea7d5122f9ac017f5caa7dba75e81b3bb449f22011a8d2650893ee8f239dc38964610b5b0860c42c5ce531365e13a632d4c6dbd89ee8c05ded3d7b002ebe5f5fa7da20be5302157e8e9d8f4be150896f22e3d7cee837c1ecdbe6f8705f0bad31734d2d2f364931f1b532cdf94ae9b2271176c66827f1a949292702a53b832a7add1f4e380e6b1088be719d6ef3f9ab038e8de7d32fdc0dec158f0a7c9441d79c6b7e7556254ecbf387d266863c99270b9816c78241a70720ea79b9ed29baa43da7733b959f3f1288352fcf30c9b78a38643ebf1a50beaf03842cd06e16306a6dc9b2c813b156eed0dfc72064f6328756aa3e09b8a5cbc222ba4124974ce72b6602bd5913fe68e2367aaa15c0f07e6b0dd80ee66260044772af3ace272bd50e7b775129ccdea798a05d071c4c20162b7ecaef015a8bf7c816e8f904aa589447756fcd9edd05095c7dc6df6fff2502d54b412150cbc8fb5aad08e3e755d2144b4391d8b6e47a0771ec4232a6554f11a04d7f35536f4ca7c9097bb6944a134c78b46fe7bc25ee220c0061b2b634d9ae79a7490982030e6057fc6baab40f97cb5b5a317fec477ce6b1461c0ff0bbbfab8018ec6ed34a4d39617a4102d5bcf850e23254a08c8129199a218a350c3dc0705b50b2704fe8bbc5946999cd10357a6819cb30c38c322c33d343fc597fc7202707cfb78600611551bc1e40b8b40d798acb766cd6bfc56c55d1983995fc3141a6cf1f087c5caf4c0861fc1644beaaf1eefe00342f1f71fcfeb65a9458b1a48f2a5b177c7fbf2e50ffc1183e41e119e3ff3afa8e541a764bd36035bf569ffae4f82d7673feb2f59b613ef2e8c2ceb664e10121562c86d60f8a6eb75fd2239a2285bd1fa31e7c965995844dba22e8f5c772a604ae862165a52b50e6382ab2b151b60c8798ccb7360ff329dcac68a37c1819edd6b9e71b75272bb15f16f6577c7eb4d27035285e282ba8e682ed716e8c328c261d2c556df6f3077ccd253dcbcb37c6dde18f980afdc072483be2d128b21bb921069beacb3d1ad3a753b6f729948adb41597e61a018f0e38dace49a77e450e0fb0d52e6433658539a97ae37066acfb12966853d7d067c943f2afb2f3563559cecf7f1dc4c7e828f32a1ee824a1dac8ddaa36448cdc2a1c5f50f5e669396e9f7a6986d813ba00d7c525fc9c6b5375b0ada6954fbe6c8e04ae05731077d98dcf6654a892995934c53a1194207c97bfc8bc24dbf395f84e6086375db62911b7f0f55ed28361340ed8c5c33c55fd0eecc26382ce01809c03ddae6370fc41ef7e3ae3ec478a8d5c84fc7b02f033e90bde62a7410ea2cb77d5e1f13c4605f78025d4d3bd6c3bb98ba0fcf1e12d6dc10ed8b0d34a1bb27592b42d32857c7bc4c8eaf62594fa13322f6c05419dfd36b737f3649d6642e60106835ed334db832a4bdaef826374a4372925a5dea318a955e9730934361b4c920f157f30352ebc6e44d56fb93f243aa204be10add995a50e712a962f974d562944e13e4d417fe0cf41968e17bb7a4d89476b511559ec12b92dadea779438b2b8a5d240dda9d9c57298525fb724fea30d5e961922c691d562780d1976813ebfece778c64e3ded03541f5877102107c3c060898b56e5979685b5d70eeff2667679bc9e1b1c8629b16027283df566f13bd84e0d634b1b32587f612805e010d8dd8469ff5624afd34e1831e3d718e1a3da005619b872d5cd2d53bc2016eb98da2f9c0fe8a5d05ea9637a750261d5a8b563ae75d0f20f6a3656eb6451e17de763624e2404370bc744c2500ea526d35c09f64337be1a2ed97cc5cc0d903173d3c99966c26ead111d27db195ce7ca137a16dabea5b6195a24b62038136a4103a366ff405c4510608232ec4015a244089332684fe11ba2db7f167f732bacf6004a7ce3eaa54424301cb72df418897358550f963af314abe1a05b99ec0a8270c510a581154d9e5b6f2c0904e5495eb099a98ee5a50fa7d0a3c75ed56ecad3978edab4d42521403f55b1d1f926b8c07c1d7bd703af31d35f5ca76e9ad27c25f4c7aa24e9846dc615605e19837e6ecfb4d33e8fb052ee5a16b14a1382a8179a3f4c9ce95fad5328ec6a542963530ca94a07a79f8b0191872e952a0132df06ab39593938eb3f85d1bdf5303694249f3b52d04330fd1316194ee2fed02aaf5850beda3c4de826d1e9e466e3f3008b4a76b10086234bf48da9c491e02edd9a3f476fa9d3c095835e6ec0bf8feded4e99cfd7d869c56d282c9066e0866bd3337ad9638bba09e77d290e4fd1d4a615f4634c05b0ba487f9ea372bfc0a997a03ba8db54e4a3ac72ecf897c3fe291e8c00544f030e251818ea2d872f7a25234b7e405a5c12358aba3c938cb8d179bf556213ba6d9c6874c819bb5af984e73fc69862e4088d28c2efd4c4febf0c9d49f679dbd657469e814945cea7be7f0ea55891ffe25e0687917aa1b159009e0a9fa9cbb729451dd1a00fb4210e6e28d0c8b20aa6a60595bc551d866437efa95df45ec632fb2eb9bead9c8aa67ab34222ed0a3fb3450a37f960873bc122251aad37e86510492e487a8e00081eec4a8eb7849714338f365b975e5152de2c8f6b0d4e2706eeb4388ca4ace8cd45b1d7de700547ff3ef669246e6e0d6e82d17de539522107fe1f28e0a6bff45244ceff923217f2d4121416fa4a7bfac8c650c8588c7d667079d5828a1332ce9c0dd8995fe66d646a6b5593c8870c072fff29971ab9cd64e7b105444691ecb636353f36889705685cd8099808e31c6dc706e52c2868206db79881a4c20b6e2315e4e02177afb827c34d1c7bdfaa8c506d2e3598f97d2d993a5f5cc71a7bd19491e2b8ff73f6bf5f9db6c3141eb0fc23e42e8e95e5a6e50ba6bd477b16915f93d758a3ed1a6be5ca96ce46e11af6dff02cf2b079732b04897e006afd0c8b42b22bc39504495cd32896ff4be839165cc773a0b6602a4f2a7784f66949c938848245c5fdb411915f56ee9c004c4fe0fc45928ce27b682ca13a45f58b716284309b22a98939a808852783236c79c7e2cb765350a646f04c043b98f56babdb72d4a1e9c685f1f38113b4381cc7a820cf8beab5d5a79a6110a137573dd3092df4adc0d1d12562e8b7b9716d581d2dbdce42459d07dc2ed944a0b62b05767c10bb70cb1fcc70a7179bba44595ed98c8f0ac01c66465f99491ed022b898ef20c19afcc091d48005a2bb98131d7dadbf7362389528dc39c25276950bc116c83a4eb2edc08cf2bf226747a00f87e082e654bc1d2702d64c1ef61303dde991ab3aa7421c5fb39f137ee158bab80acec60ae68b91c6dd3e7675e5bdc7ced73c9886804566b59509780c8ee1dbfc664b698e048b2c0306f68b15809e5e210f351201bfa2db3a74461708b389a5ae1f2833e5acf3374dbe6f20326741f0eb8e161ac0d14d9465e2e181f77351178087508fb8dfdafa1a64aeb8d0066d34562772a1977906f4b04b69e68267b4090ddb48cb004e5bcaee1e5ca59c2cc93853c70071bbfeb9fc50956bc1fbbdff488221f0075300400f6922acc76ad0d5c21c665fd22011e0b3051c53229f2d17cac3c4f1805da22bbefde04aeb2af52d6647f418520f03c5d4070ae985363b077f890e9e7b310c109dad7e57490a9026d5e4e33eb8718f85f1cc6f3d860723efb83885e7c9848e0b6b1219725bbbd22abd301f2724e7355a201a0a3db39cb605693f3ea6bac8cc5aac208db53bbf3a1e60a21cc87ed11d568f3c766dff5d6329fa9ea6f602e0385e4189e94bbb5e584329431799e60aa6517b3cf5c39f458c08f0d2f4b3681fc783e25ac0da8ad5aa36165bded82f01178c1808d7701b41740f04ef5f6d48991fe4fd80cf618898d9318222d5fee3410ac0aa10ea51752e65d0e6a8cd2ed6fcfc57bed8b81876a9512a52e4767805fbe06eaa2e80ea0b2c24e54ff81db06ba02b739ae6393f9f2230d2eef4a86e2c44ad3ed3d94698f6f5fcdf8ddaf5bc5e74ee0ebe60a65a050b782fc3e066450a69498e0b7408ebbe674945ef87fc5f27676eb0f1fe80833dc73b43069224e6406c993322f07585a86983af12f7a0acf2072a9905355dcefaf4b9f86a1082afe798dff118b96d30a5d63cc90c1cc329629a319659451866546384a7efff3134c2e729fbc99f7888a8f7bc6b0a5fa5bf9b61f233ec9dd98099a1015db1903e2130a83cb9a100f01af65e096a0b7cf6064049899946aba6af09b880efc6884295ca8c1cf44c6915c40a6c232d2764b9363a741314148c258c6218f1651570e0847ca8f3a052f05a149e2d75ab6b829d844c9a5c5dea45a6510ca84a56860828f21c173f199bd1a75a6f0263a804c57fea8c55e6002dc268cc187eeced50bd63597ab135ab6bacf0377f0551067258ff3f13f478b5bd5ba6f8445cf443033356009f8a9fb2bb0c56bfd9307ca0dfd60548bfda348f469a6bbd124887b25e987d022c7e0b54a3b4d721775dd1c7ef1f64f19a2034c69e5b698c32018ce56f3610ea1fc73ce275211fc11e82264673c48a40bc849f4fe997f1ed7910498434bb86799c6cd4c112806a40f0b37f5c68aa849a0ef974b83ba5c4328f50aa944e569c6bbc5124f7318f6be25f0a27eb69ce29ae1a3b03c216f9f1322297c46af9a0d781cb5d22e7a75333cc655066dfdccf135ad800e176fb153232df731005a6e4d64483a3e73ab0b8f4e2587e3d270895241f039d967363881f1f43f04e19e8eba27e9440854cb5a5fd4838ac9364a77059db2e33b79fbe6dca4f64dd5ed9bc99d1c9a440bdc9e62de1ad5792d1f8fb131da80ae364d4ee865a29ada7305031b9404dc87381e438790f25305fa800293c68029535b04926a75b6f6b1e1251f48f0789ec9f365ef067c4221cf797ce118aaddc6af5809c242214dacc515da4928bd75797c8b321428a7ddf7628c1e1b9799e01b9e5066b3b59164d2340372aea64bafd404c9f85eea047c606c5a206dde708aa1968038d9cdcfb36723455acd89c44767a295bfc13b13e740ba8d1350586ebc50deb2d1e843aadff7571f82717279fa3f443a25c18997a6f8102381b465d256ee9f70805ec06bccbb1ab935021937baafc0927059c9a46854c9160bb2595f0a596a1f1d2b9f8d0561a8316dd3e6beaafd0ae68df973a8a8c78440cfc1301b58e75290b87ab19fbe9a104bd68bf20c4cf7b6cfefd62bf158bcc718ed077f67021a09156d96f69a33bace4365e3da89aa94050541a6b7c8fb782a2a22979c3ca9ef2aeb91d5b4169efbb6417185ad8180568cb54802040a5112756da8291c10efb10c0214aecd17fe3e2624ad301ea03bab0cebd4440de83d4c56b686933fb275f9b58799d7cda6d7653eb951008703e3c2af509ee0c7c19d48cb3e8a2abc56baa73b8161add029e79d286f8af58532266785911343a401c2b02c29113c87e29488b0dde0c32cf3106c866ad62f2f1c98c3681be09d966068657e58f0b286275314c12390a4314bb7f6906a940690de23decde85d62839be1cc4867c65ca1bfc85c900ba10bfe718fdb65feb63fcd4f4e09ea08e2dd90ae1d935c64acc354f15ee4c84b22311edd07c30c5067d82208e88564958b8f2f0a60ace6ebb6a7925c6625d4025a0a4f800733eac0fc8359482bf461aa2d274beb21d71c6c6b0dd3fafa6e7f0fa2570e3a7a47342340518776e2ba584bc815b04d387c723679b56efb2b981cacae4203ab3a77853b052099015a6716d54f27dd3346901d62a4a73a78e2066c475abd2c9b18eeac52cc812c3548d1863b886b8004f089fa9021a5c4998230cbeaa9893ac897f4ef890e1bd470bb278b00d770c2f3b1bb3368922b0634634579cb389192ebac9c83144b158714c1344589e0bdcba5ce9946a640ca25f7e1d7d3c6bcf4090cd1e57f5618c19cffb6c424d8ff79ea262b68739a894da833c8344319325b660c36d8600b1ba1ec4f652328ce3f643a6fa9c42f5dafb96e0ca3c7eb6a673f49f1bace8fcaee750b4d1d6c8ec589759f6a8fad8a9c584c34976fd8cd4089213ff62cbb035ff473e26269aa7f1564c0ecd2f20cf69e6b5b59a6fd5d90397495c6827907d7abdf951a23e632f9ea72de4fbe5da132ea3ee5459025fefbc5dbfb939d46c12aad8496f60ecae5a25ea2b5c06792ece19aebc0419a761d2c62d378b362447a68d3272c069123ef6cec1c80487266925cc1cdabea1115052a7c1a2ab12830845150a9b05198d909ebc0f26703d3cb91c08e5724274fbdc30d7eceb2cd5d162f7f76eebb1166618f57a983983afb34c406b3ecae30ef49d71ef99284991aabf6a4bac08a8c99943b1cb4cb6069ab294c2401155298374605cc24642b14e1fada622e77fc5ee0630e87a0e6b5d35a74fb591f8def3044e3fb5d1b8a4f21c4cbada9d70973ec7c859b6adfe8e0fdff20fc6b804b1064e762b9b638d23ba3feb44642397c3496f259f6cc45ed006f91a7c2a75d45400c10e6c4fe977fe22ea7ca7c4047ae273c03635a3a4577ea4433fd84a8a36d6cfae39024abc29e9a264ec40e5c93fc706a5cf433c8f75836e9eaac1fa21bbb9e154af8de3908f1ef1205454de0973f16e929d645ab539ac4192995d678ece26ec10060c24a40b3d6c951448e6ae9dea569a4b53ac70a61c3f86d13d3a04d8be61cdb3698e697e6c11fa2579c59cd6e4e1f51363101c46830fe8b7cdfc8e30025b47fd28f94826d12cb6d073351f1287cd6e691f56b947fe7baf09fcfaea15b1b26cd8ebad44c370bde65908dbdd9eec9a1c06354907233ab76fd560bb78a67f4fb25c773c1d5e0c48655b6d46728430a3eee27a1c653227c967542ec23758c003b4733d8566f76b4625734bf9c962aa91dadbdc18d5fd78aa3f824aeda2e43ba16ab8f04d41b8733f7d8802fc26f32fc69563caa072304b875fcf6d8ff073253ba2cd420b27a7285c687f8b6e04af368befbc5bbc5c9ca376e00dc2c9e1711c06772109977b42213ec6f91102901b64dbaca4167e1c37cf8bf47a173d00caa9f07bc9d429bcba9c32fc1ad69dc3536a1a7ef4f9b815522df785dc9f3c9b54cf5e6f96729c656bf98a3838170905664af58521c10342c685ee081627f7148630b48e16a3c64f006100bf8aef464a9e2ea5049a6284d6bb492454c67dc4928b3e88f1f850fe8b849dcc7f7f8510c5c61d2cf4981ec6562b1da8ec846215f7b4437459b0edf58e1b1400a5997976e5484cfc644de6a8ad44e76f2eb46d49ba08ba18b7a0d580e2a0ae1852b8e5a29d57ce47547f27ac7eeb0b4639dc3d813f42ad7e453b055ae8dbdb7d69e2a5a3d70605186fa6e65d7036d18e5c76572a3f828adf639568268084dcc774df8acda73c35478b1755fddae8bd4769b80376156980fc3ee74737bd62941daf0276834e8674be437e0ca722464a43da674ca7875ac62e6a8f59422ca2fa3634cf53ba72d3b9141162fd66538527f169debdf00171972e8b37838e9652c52c038d6d44254aa33fefd51a57683ad08ee580b29f0033e93618957498d289b8858165fbd6899889094925e9ead247c448b862771dd9671d04d3644df8ab0342122eae3deb0c13f43db25d4d63227005003d0a7c416a94a666a256338a184df89f8fa397d5e50fb018e6e8e27df23fac6c0eebf31eab6ffd7a57e9a205c46f8424ec69ddbf2cfa9fc83480c110efee5f14550cdf6285d9cb70b89ecc6caedc2168da6d05e732d9e695153d223150cec236e0abe42d52cb26a7c49fa801c69abc7e368bcf133dec9045bcd33c794399d5595903a6db8a84aaba94d894e5778fde7010d8136a5c7b281bd43202afb8931cc4337036bc4d7d8e38fc439b6401e93c1fbf6c7491cba52ca408a5407736ffb223f2c2a7aceae6efed54855d53cd78f9af0869a36b629de88defd564d8b69df7e71d592f5fa1897da40a083081d4911710096a29dc8a632dee86805a38f2620213a1405af904fdaebe560f8ee1d04b367559c206cd85b348056536f3e7f5d1af982eac22e22faaf8424e617d8c8b1120cdccfb6b758ce42969ad676437e2578048dc99c44b28bdb2101519a025fc626ae86d9c81cd130786cdba806207ddda149180693db3fb9a19d2ad93794162160131e6976f2c4de53a83dcd67dcc3320607042930f625eaa3c0a20b8b8df23f66e264cba6f16f2801bca8d295d2dddd13c7bab256e3c3dd8a1d1b8a47d524faf187bfdfbfdd1ae387a671c7f9422aa66e16b6a4ed2573b8eaf503ed8fd0743f2911a8ea9435a50f0416a61810744425e33c0f124d2520ac626431958dee892b117cbe645706fe642c460f84ee3bd340bd37dd67437886c67cee84c2b4c62a532fc522100012c31bf1ca81d304ea04dc6e5630f00252ff795fa540b9414009d20d0f5b3a2e437e5b8759f9ceb4a167ea0260fc7dd4e27040d14ace1263d5000cf70d680986e93bbb9269752e8b5cb9b659a60ed54c119dd51274cd8d42263575727577421c52d02a3cb0b7a6ebf69bac1aa2632c472e03984155adc007813335d0d310542ac3705e245ee51cc308d1a04efb920f139b4964872fc7b260c93efbf9b3096484f4c1d453c070d5ef2a245f3631205f5e5f78758600509463fdc6c446f44b0560671c92c1021a68ddf6ebd52d9b7e8e840a7c62a6a74720280ea6ba75aa7465139b09695353d81a41787866a8424ecc16d09b2fdb480988e44dd9e6274382693d6fbd93bd3fac31163d82eaecf0a4461f446635cb8d9251642facc04b680b7ec8bf4d8d68a8f0259f6ed5f82f6cefe74ad3cdb89a05554b2c394d29cebdc4f74412d4ae20179ca41bdfe335051581445c08e7c370d6f11db6f885ed27a3b5385f5abdbfd4aeb987b67c2f51eaeb470db4f402b8a912298478d2852fd56fc032b177c476a143dff66f5eb34d4f44b1a4f77ad89b34615088400df5b8f9bda377dfcd31e049a31b2ed16254f5751dbb038456f37c6d2b98da51902148421b9a1885d535c7955670a8e95baa8af784cf10a8e7d0b3296aed374adaa298a2fd32831426f0be6f8f88f96f693f8a98aef82497f6f115960702a49c35edb676902eb1d71b51a6c2cd71b23c7cc95ee4924cece1b699df73a2a8b037e94250c99ab2bd8d995746df807b6f1f04356dc1689a12d2b02d695a671aab8391427ebfc939747570686446419d665e11ad9a7b745ea21ba299bd34e7079fcd5b833c8ee371b00d6d5dd54f9ed7fa6c65ee91b09f70bd8614a38ca324fea027490195905193641f262cf772872056208c69746c38cb9ab79f5f6002389e231402f912bcbfac2c4d2aba9b9d7a40ad580cf8376ac4e0e2bb11019840fff41f9de31cb97ffe8f63ba5c906da7bb37548f5072f11ccc5dd677a59ff40084eab7c718702f59c6fed678513d366f32d95e1e241d06ad6bfe7eb662c1185506571b95e84064fc687366860be79df177dff678d08255fe24877434ce35ff52bc01e1c9ce306093e05d2609d490ff3fe4132e71997cc9731471dfe913c8786091b4e5a4ca82e0d89aa6dc95435e7169796cc5928b0fe5cde4e000a0c706b11942864a870c29af4ab660b21a642ae15517cc369ccc9f8425150bc102d454b4601a2d86fbbf937abd38d64a1e7025b8f86634b5abca0956cff233e1055372e603357b062a7b74ca679d07ae8716450988da3a8cc6ce16b86e706161184c2425939b8998194c306f93082eee80663015a4b32f1e663081d509c2fbede70340a8c3a7cdc3517529f5c94a8767c329c49e347ef0e9a775e2270da6db3f71962ffbc8737fb190f93904b086c20bd2f9a0406b13a58b1d0ca8adea218b722035644200580368320bcc23f55a684ebb9f7dd3135946146c05a89d689ad9b19f75455c1e5757a83fd5cb71fbbc42fba36a5bc80c80ce119152096ed7310df44c72fe57f313ac07e360cd18e1d0624314b53958c8876e8563fb38324e88c814b1c619198408a47ead36a47fc509c0adcf871acb729b470faccfe09bb577c343b6299fc10443420394481b56de4f619cd2788a3ea758d99e8725b65022c1c68c6275a2eb27325022890ff2ecfa2446500e37afa83f45c3f77664204dc44b869476d97fb9726f6c3ea97cad8df28f83dc63815c1f9d45341a4d6b9c5e1f824322d5eca926d4fe4a4d295c5a0d5d8c16412d27c165eb39078edc86d94ba56b57d4fc6525b908bc2ed7a2cca4e69f132dd7b9b6672943d74ee0375b45370ef08f26e00b81128f37f36b64f1b5133b04bbcedc7b6117210a21d0645ad38c56ab7ecc6603eac8c29034ea5bcb6fb77f22082463cc5e03972044a1096016448351e7535a4a516e2581099f1552d5a58817f9ca69f79e07bafdca88bce349493c62208527734cc926cc7c9ada448a1377735b070d7fc32cf8bb4ccf4920597b07d42d4240e5fc0514ef00be3b49f5c6481db1bc2cef05c7b00ba92c17b7c7f96e978649d8853170b361d8c87cd9c644bbc0090c1c34eb844ab3b6a3e55d6951cf89336b6fb083d8016a44e21eb1fd6fd20b04bf577154f9fc9a1170e96e92ebff215edc8529614222b1b1b889931ba1e83a67bc4e9e139cd05bad774aac8bb7560737949f42b5988ca7c28cee6925bd06a456c1aa560b09ead0d35b635abe65084986d04e786ad0a6b743b0724f30224ab6f4f9cf4fa0a393ca753e922d192bafb1ec029d45320dc637208269b6f330e0415aa25613483d167a947c5ccf4d22be07e14ca6299f54f6614d95a7866bbdd6ac3760be8e4a64c8d452dea420d1af281288bb7700630e1b7db69abf8f7024ae1821ec810fa193e6587f4683cd0e45e53b894b60f5a67a26f2872a12d283da6f189d102b61662265d4c004a30c31308b8fdc92f37e366171b507b7919da88812f5a72d0155a2682caa1935254b07d1678c8ead16506fe101f2e95959550b77e6c08dbf73cf606b663495e532276f03574b90d5d7d0e4996ac5843c96e77a920f585ef698472be49c7531fd2985ce47cee105ab2e14a2cdcb7af738c85a8695c9bce942422ca629b160513e55e9b07bb761b87c3ba68b94580c4db890ea3939a4146f540bd65b232bcccf06355b08c394a1de5e3f6b4757fc68a06c4d8eadde012dc0af1138e470c58d139836c4568c83a2a6824f7f7668260253279061d993f8e00d513e0e4c413521d94208177d041207af24c4ced17c87552bc76820388002dd10a9fe23f9e01f087e41d7e4bc1bd526fb3c0f4a22b449b2ec211a8539a872b554f0dae47e8804592b63cce86b9ddf8241082402df5b2bd8602813f4734806e77fd65f5182140e1edc3097b6b9014d08410604792e66a76b5cad01f23cdbcaf786a808c923eb3bda6563f514b0dadc0297e807615d3dd6d586391e66a9294747b4d1f4c120c4bdfbbb5e87f21e813e2991208bb05b760e824d98a715fee7e2429935dfe6081f1efdedde4b9c98d3e81d00cc06647734ed1da15129705596791c06753611d80c8a009dda8a85102489788f6dc40a44649287fd1c3d76223eaa5b06b4c18f7df8eb5adf639abf46c19e916609a9548ca89cdac3e4b10278dacbaf67b3c9cebabe9d137cb741d8c36941f58d3d714512d473ddb22c112021368e81dbd19dfacef78f13b610c732005a7fa0c398de2071844c689be50d468ebf88bdcf1cd66284789d1293866ff62de6c7cdd45fe93785cee117d30711fc16527de7293c261d13a1566bffa39cdb0947b60a47cc7d00811ca4b53ebaa4d1c1d134c54e6b84928755ed1c417c1e4569d593a7e8d005b67987059bd4c7d9e54988b553cde194bd397d5c4792c3ae45282a55fea72abffe6e9039fad8ea7a879f9dc50509905a388c9b438e0af6b68245620c5bdac245828770746d19a25d9e28473b3ec7a815b2126dc03a6203c0618e69bd3a8499e6cd04dc85afad44808a9a030ac9723fd80d2e6ef14232e0ade3c273056809ed41c40cb186f61b85c19d9a5fba5b1d60d4dbe33615ea10e376857945335c811c0a17d93a9808282881c54941326a8803225fb0d10831dc986d0180e144e7d44e000bf15817f3c544317a7127f3685a1fcc53dfc23632af7828abc90f8b3dc148c48cb39eb00afea45bca9dd0f1589994636562a364b2f0c56df4012a664d3ff0fd10efbe4e0b58894440c014cb533284e5f892575e25ad2fb71d1bb9190a6cbac4cb2694ef65dd2301da3aada1b1d65f353f4671acc36844b3e9b6db48fcaaa8ae5773074308e720336d1fd84bb80378da4071bce22877d437fd9df1c9f03f7a0ade304498eb4e2d247de4772a80bae872bb49a27e5e58b13656c0f0479eef3290866934dc6b054ff3140f724c5ea66adc35971156c261dce7405d400ab9224a12a803455fea356e9d05f13457d5c2d252edd0f7a5c32b48c6525bc5b1f06d419dd74c3359c5edf0ced25745a0660f348f2049f9b2385010597294e6221d5d72cd4d431ecf0870e2dc7c5a80a9cc6ed34829e95d7b2d4b5d1d535cd74e4edd202c299f99457187e4829f145e950344c5ae73b2aa24c75582f947298d36b56e31657d1eb50d7a93b8683b8322c00c3c95c0c489caebbab9813e9a2966921ff5214a3a7ea6fc4592b164f2d2a835d83cd612b8e034d093ebe9dd578ddaeb6ef4a1b841e000ea39fcd205275d883409b2af41ce239de1dd5573c11cbcfe1c207819e45db4a39d0cec587d02c53f9ec161f3a226e46d997249fc5bfc5c483d77557653536d82d97f2983ac48203620802df85ac9ee524f653263dc96e321207f9e872068378ec1ac337dd0c8c506a94df1affa79087cb1743ab84d109dabbf8da67bdd2d1ef1084934a712f7fd160cd9e93ae40859e33667dee072e64bba447654e77c131171442275248c5b7040f7239eef3fc3be45cbc3b4782514ee5e573cd127480b5a05cfbbbc9b83cb1302a02c2b78f11b19a18ffa4b9a507b5aa14ccce30a9b65ba3a0ac645dc1c5d8a37c714b1712ddc1c2c6c1fce618b52a94dfb28f2d325671638aec0061a093d13e628eec71c82440119428e97be406513fef1a6bb11d299ed7d04a7a7cb4b9bc694838592f7012d659adc83607e54befc4939f4cd9766a6f2625af422f97bfd3de2d6f264659bad29cb4f4025e9e9f5ad7f452a06a958f91af1b7e9f47989f02f7f6fe4a8fd0d25577e43866fd219f1b9aa0a4e281e0d4d3248eb63fdf4e18486ce5ac9b935260aff954eaadab77226abec02a4b27a47ff7944b243b3f856878d0a85b393b4d40e717b27f301c3e652b95f92cd39fa621c843afe7752085989d4ed0b3e7acc77354481c2cd978352fe23305ff3879fe915c9ea69078e4815ce361226cea79f3054760b77c06ef0b8ee804d36c3b1e21b92961072e3d69b3d06e1ca8758c05fbe898d0ec98662fa55c4b43de142aa29da252e7a7978eba7f703e2cb7e61bb91a4070eab8bebb4787612c7973896b7b58b039a576986449318a1cf1cff7f108b26225a5c60c6cd0581618da1dc9cd1c90916b53b9ab045a71bed07b355ba1b6d3174f06ffd689b82c5851132aa803ed568955858ca9762e9999c6e80fe01e3dc01126b292c60429cf67f5048af7b6ffbe8ec875288c4ac235841fa70bc874784b3ae17072324d87349f2e67de4f1f366c05d9bc41b53fa88de5e83b63461f970a6c4c8db438d4facd1fbbf231af9ad05ba5485e0088b121ca83a08fb828f0191baf4e0bfe23065fbab2a9ebd2e27950f2c3bb75d0fc3715d9b86b032d67d302db7c760d096ff05e7767e92281fcaee66a810bd8cffe5deafe11bfdc525d25b12db75a7be55d59692f358c10f0f02f1e2ce893f2593cd264a202167409bb4e132662817fbe03b18000d35b19eab2218e71dfe108eaf84f6c271e461640f61bd7f8175e85ec330fa2b6bcd39d40368dde6c0a2942d82a5fcc216daa10fb778695b91026aba156b03c3f1da58fb73fb28d02e610170c7cbb64ee4ef6e84c41faf3eaaaee1b75305b468d27b2ad1b8421431e0da61df5b0e404aac4d353da47e8483a2bb0adda5f3a9b451b8ab3f41e976a9080e3891b99171c3fa6bb20647c31e740d31e6555e7865f16a56854c664d5ef6554cd3bf44e8351366594d60df8c774156406a5510f1028220dfb5c2ccb29b3714f40582650057db00d73edd6e22a83b48ec29ed88f56b70e2cfbbda06afa9890a87fe8c9aca47742044347b0e99e09e4b781bcfa92b2e6d17dcbf0989d509d577df85a532e75f4f2aaaea1b5f801ab47aabb368700221f1d0984bcb7f6091511eaf75dcaa694037a14bbf4249c9bea6425091a013acfae6636454fff966d97509fa3cfbe1d2e7411eff2ac39903256483cdde20c70fd28024b9ec7085df8003c0509f2d6b3830d8d5c12b88e6a768c4209cdb5ea85c62435350b9e023a0a651bfd943c12abdb8ebfd3df23302c4dda3c20a71dd5056cfa522306e330eb20ad16a5cc95f4395b0b48c2789b0cf29976ef036cb59b79a2290c746477b446cf512d1233c586f68963f8d9ea9e50bad53aaecdc604aa656b19d0da6923157546d45eab870b4e61106f70e7366c51b7a169fe1fdaba839caf3f6765ea2b3cf91ce8a19faa61de0fedb3a78950fd6b7f70a32b60562e09ec5d02e1c54012588eb232ef2734b148fd676e18b3f11a1a3f102343cc3a371ab49efbba8f71355f73d91d680b9d09b9d6e3e0e0d13b93bff63ea59f13190264761a785df317fd4783085e260c350c94b0856e0f0ec7b68f8b305ca20d49142443c26f291c828e00324c7f2a7e74bc7d6f5b68a00f001368df354b7c5e1b3ad9661194e65f973a79147b127a11505b8c6abfb80d3bddc410e88eba84cdda44182e26f1513fcb17e3b041750a8b31fb640d99d8dd9b679a1d72eddbb90ac2b8a68a6fc0dfa430a3adc5501de470d1cfbfa6fce41e49ca690f907ef0367883fce82d0042f7fde3ba2c38fe505078792529440bd8964d299036d47e0217769fee0a024f00bfe615449f38196b87ad27f991984e8db896403555ead7b7466ea7c1df6a66a9e0a168b4383c52834d25f52528ce3cdf9f227cb7625f12b0b64d9ccbb32e92b363e3a5ee66cde912ca02510462523c7719862aba56db247783ac0ff013d358abbb17497251d09b9b4b2561e92e60dc8b0e1f3ebade519546d7ccb1ca2e8bea637b3a20789df88d870ab89467499b64392c96cbd46637730662441b3d84fe05ca878149af86e55920dfa9676d00b5ea882561d6303ec0a52616107017786047517fcccac03c3675ed3fcba1bc8c5bfe4ccbb6e00c03ec3753f3f7c9ee1ff539eb11bb311e487800994daa734c496fe056f19c35841f90e150365614d0fa0e0a04eee27f6668bb2428dceb6cb9c2623b9595863cd88c5a71cdf52cfe7a91b5f09dfb2a9a48b4c60165304c07a410406db97a6af35363ef405b77498aec42a31acd34a565334c55805a8cf278b7d2876bbbf111d066f5621ed4144b3ca98194bc743f1051d8ca0d8adf55dd3f24286a32aa72e13340f84a82bc9453cfaf9010e0147d2b536395451923d5b15616ee3f61d92dded03012f10a1d98a95310cf8d199f91aded1f4bbb8e34083d704e5d96fa82cf1941c24b4f006c13cc68209de352951df9ace1f2dc2ab546bc05b0893b3c1a399fdd100a4bd2f868521e00aacaa0aac2364101f0d49664c3de70fc2ba76f54a8e9b73df3c62040ec64f550e74b22255aa60fe858d0dfc252e28f7e5c8e7f64830af634993fb38e79ec6dae823dbd0b0a5f98d3d18abd7f39ef310084843ca0c255fb85754be3d4752ba38c8d32924f929da887490de8e7ec62e0be135aa67df0c39179e6cd2faea90198aca2626d4c76b15584e3a3fb232d5c151517d77c257a7ff4b40dddc5ca4a5216098bc5908a097f43ca598f98f71a2c3cf51b77c1bf3b3e4569018f0f1adb50a954968a68f9dd20d6b99a755bb1cc400ac6b736adfe21cabf7c96e5b6f661cfeffe79c5753458e0978b37ac2d140799bcda70040d4a2dcb5fa602f5b731e8855497fedda65545eb9fb8d58957427bbdbe7c96f2e237cbe868f34e1664be413f3d665921c8446f5d2f84d940484e4b420333098f41cebb9cf397d5f857ade1727b8093bfba371887bd44fe0c6cbbb21191e3c6f9eabd1738e8e6903cb637067b217c037bdaf27e440033107ce04675cf8c5bf3526f0c3deaaae9b4708c1289e48341902db4a6f072b829b5daa555affa7a8ed313665e88036648cec19af8f64123e49345aa2214eb1c122d9de39a7d93a9a96d19dece84c7f8851ba62f81dc68544279b941480e4ae061641f7641fb64e767d5e51dc3149af76d50d6673a8a88ad1da8eaf51e4f825c5a15a8ddb146beb03336e9ea4d53120e5d733dabeb145ba6b784d42a37259f4c14f6523b89ec6c031d7ce24f912c448476dd6169533c0919eb96d3288de01ccc571be0d743bf78259043ce6aa0e2a2921863874200740ee068e9cabab72676130826b95c108dee5481d1eb37d72588865b3be5d4b00849ae8174c35670a1de92dc06cc82590a08ba40f15bbe4f7c29e65547c8f3a4f428d2bf55346fd6ec9bbc85371b93112fd0e6ccbfce194ba09b65328bef0f19a8b1fa99bebd26c421c802f137adaad734487bf3b7931998df3e8a0a0cd35832a6081011af6265a5e6d963bd02b7da49fdc411e60d03f123b3011243845f52a87989c8fa1d789eaf460eea69d33f3f9ef2a420918b0fb612b2df5823792b8b016d9cca86bdac275d69a3e2f94157a5c5b98b5a057866f006c26cd50dae7257754bad05a5c6f74be1ea3ca20c314fdb242d5e7433ed2ad23096be892fb1222c19761fa4f807c27627de098d127a47c015f748da45a100a399eda096b099bad7e4637813680af8cd6a237ab6bafbdecdcccda25ac54bb84a0c712c1e1dc2cde5e3faef8cf3d9bc9b71d2792af1c05dec63d0e4dbdb73fe5d4fbc7aef8bacdc1ef97ae0bcb407647815992b3e0db9e4bd51f89fd94edf025401299409839488b73390b7cc31d1713560cc27e324e42fc9010f174f767b17672ceb17715f9e888357ff976202476b3cb0d3cc776a350b0634774121eb2c29578aa0bb8ecc28fe7a0c4856604ae913f4a9666ece31e86d660598a97165afe5826b828faf87f67f15bf511ba50c3aa4d086a38105d6b2654ad390a9382f402e985059e3c37387472bf9682436ec546e67c6028f4e5c61234cb5172f8a48cea3f38229a1080cc3a2bfe57ef5a62c83851062bc635884a06446ea8bbbc9d042931f4de2ba3ca0d6b80f6d2e408710c98df32403a597c548288779b1a14bcb69984ed84ca9e3b3316288e44f001a5502d81be2c8015624dedf368f9bbe0701c7e245af453d93e26e0194a70aca1e7ef6a266013e29ab5128f72588a4324516d3168e325b3a6ae17490b58aa36efa00cf794ba8640b990c85ac8ed2b34948012148372fbf52d855ebf1600362ccc4fe478d0c4ad6bb5d31a77133d83bb5b6493f9b9c9599bc1e8a849bc9182340bf9819be9495a141f92430193587ed6c9029a17b7e9f8c99436b2355ec4a2b2398537c16051c7ca38088e62d1372e427469573f319517b7e820142e5719efa33c2b5b87a42625747bb04fcab1a69511477e8ebdb46d7421562f30a71f34efc839f2c9c0190c317701ed9622c7592178ab808a6c08e4c5c942f39ec5da2670131b2a040a7e61a3fe6d678243d7533b65d38241260e13332ebb4f5ab22d3c3ff6e45903eb354adc42dcc533ad1bb5ac1512ffa10f85abc424bb04b4d07b039b4e258aaa792d1e60d072c49711e236b837d7cf812fe9cc2fa82d686e9fbec93358339b3e3e37cff2f38674cb9e4e8b1b13428e84771ae5ae0896f78d5c296bf477a9f42eb1f5cc5624a498b206cb7c097ac4876cd299b810e9f86a6034c7b86480b4f63fb0ded45a8dd98d951efde94d2056d97c527c738a75c7d4a88010f6a18981a070a6860a8214f296bb80c9812fe6b7b59ecc637910c2f8aab11449f5f74e4c7def9397e1c1988995ef40f5023999e1e0550d1b29f5e455f2390a202f393ab9e503e932ccfc68aaf18c954ee5586f4098ad42d406379b062b3101314177a5e33079be8f116223e852642870d6dfd9c105968baf6d8f2c528d3052ab3a9be9e8252841b92c0bd8c21a0fef1b2e4ae8d86833b26b74b350da45ade9aa7ea7376f5d98e3da89c2e1baed8c9b641c1aed66d2029693f23f2d619debe9177b96103b42529a69e34eb07d90bc5299efa0e4114d1bb7fc880a9c6c0a916fa8e245da3645c18e75b877ec0cc2e0f81dd05af4c82a99061a8a36faa5fc0748d67824824e4d595c7e7dc807f608f094fe49b1f4595f0d739aa2aef8bf3371829d0746f91e1345501c96504e844dc71610ea97ff951e0d3c8fe99982fa289c564fbe159af5c7b46bfc8049675730b77aee79d263623c87a32d0818adef97b4a546852872fecb38d3b19057c2435a56bba007d28ae121a68dabcfb00e1ee2143780e441c8a462c0c1c70684176ed55e21c0ca52d79134a3e90480c0852d01261dc01cb9b5d6dea6f4bb595ddfc4944f7d3a1cb538d648a8cc776998439696e00ff9f85df8aa6fb71758222cd0f9c9ff45e5c659a77db28c2ce484b463ba4115259ac58b22db644c5ecce14fadd87175048ade608526b0c78dcbe1b3f3bce2f5dea34c2ba90ac9bcc0982f697d61e49aea8040c080c15b6f45c08cf62328047b7a576463f853f7757e537c70d0e6e08ad69df1a9c4b954af19ffc092f4f10d7319da7cc695c0557878c8591df7df32a8da19032768919cc5702cce5ef45ff0e8d9debf9b59f6ed2956d0fe87a9cc06a5bad22db73ced370274336532b38c32c83443996592694619ca44665e9ee461879810adb1a860fbc4ca093c9a5034e7307693b3a98c40caa8acc9cdffd81218600e5fcb0eec75d446b1b01166961d0e209ef801cbba904d486928b0a599b65187637b6d414568dc8fe1db863a0d134e57f24a9a166d53d43e83c20f1c74c0fc56bfc2c4382e5411d23bb66b65cd8b670a1b7a031a8e8d4c0e0224a0abe718f985db23046f013a6311435c801615251de9cd4a644ee22c3bc229eb8ae3c5bfe16153f42239c2191b022fceef574395a5dde72aff9856bed129bf11299496b7e46fe66fcb24f6fb093c9f459dc5607f68be35b437e7606c96b496b456f209697b932d496b724b12e20337042b043b8270648240418fda6d68503b7070841bd46e63a3f22f6b674a32358fa5a34a3e1e4bd730304b82ca343dfa47e5198b32cd1b71cdce70896b1ecbf402d3a851830c8a0349266f43f081ae6057b061c386d4a9dedddddda57a296aa95e6a29aaa9dedd6db8d4525453bdddd83be4ed795b6f91ea1a9cda7b76edbc3f6fd0bbbbab26f59bdd83a92a80408f1d11c9401f0f1672ed884806fa78b0902bc3b090108f47e47061d8f77e3e20d08848102a400a521405298a8214a4280a52100447a00884bbbbbbbb249b36225223c6069057632a400ca5bdac8e8c7b591d19e3ae65753a3138e2c65d1a35626cecc0c38d11fca063776bc4d8c84185191c3b70c8f810638c555555958a0c64518b231146aaaaf846155355d58648de9e37802db6bb1846a3c6622197d5918b855c5647625848c8ae65753a35626cecc0c30d1addafaaaaaa3a4452555555552455a8daaaaaaaaaaaaaaaaaaaea5555555555555515f7aaaaaaaa1310fa2656555555dd5c57155755d5abaaaaaaaaaaaa7a13ab6f2ada55df70afaaea31729373d18f8f5d555555555515bb8ab18a5dc52ac68e5d555515b92a563176ec2a46cf23f6f879bc1e47aa09cfcded7176b51e418fdccc1e638cb1aaaaaaaaaa6a4324ef9d6266e60d8739bc610ec99260c0eac8b53a723b1d291f8d1a313676e0e1860ebbbb104208218410420882235004c2dddd8dd9f76036480f1ebfc0102038024520dcdddddd25d9b41111203042fcf0b1222b2222b2223c7a80e0081481707777779764d346446a686a188237bcfbf7de7b9b2f8713999973e6c78f1f3f7edb8bef3ded510fbe91c78f1f3f7efc445ef640ef7d9ee7612fe45dcf7a9d271f6fcc6166fee3c7eff1beb7e9ed698f7af08d3c5e5eae9ec8ab5ef640ef7d9ee7612fe45dcf7a9d27df4e4dbb1a767639bc6fdebb39fb5ecac119f5c53cdeeeb76fdf7bfd7ce0c8f4eb6566666666e6deb7222b77762ab99feb7b8d8cc06f7fdb77765d6b41d9375b6d47162ef51edf782fe6717c92f97408a2cd116666de219b38f0d2e063736342e65e7377581ef606f399999999f912b86cae6a7c4f18e906e9aee8f2202d896266e60d8739bc61120d9436037d3c58c8b519e8e3c142ae0cc342423c9eddcf0704da1a313678ec767753dddddddd906a081b520d1b420a52dddd0d1b420a52dd7bed3d77bbbbbbbb6bc4d8204d81c37977777336adbbbb475aebad5ba4b7a9cebabbbb41fd694f37d6217db5d59d961dbbeaeeee6e0ea77bd3465aa4b7a9ce9ac321e134a849fad39e6eac43fa6aab3b2d3b76d51c4e37edba5b207d869cc3434e77777737e434840d390d1b420ee47437a761c3869003390d610521849d86d447de9382f250420821a4e076777777d7a54f0c7569c75d7ea3d31bede4a8bcae82bb8bcaaf4c2e9e98dc5a9313f954473e6272219f2a7639619ec9353ac03a32ce9d3294f8c8873762c6913265b470958fa60c132f8122e5e44ec5bc114f2d2b62c4553c28f3461cc40982a468b4dbaa9db74b6d76c9074cd36628f1a965ad19549e42bf332eb544bf62c01c1889772675639b2c6c9b267a2c9fcbcbab3c96ec940c8ac9c98f3ea32507587c47dd68112985e3c667f608644091d1f641865334cc46bb73b4dbae51320dc3235aaa41ac60472df95a2de6435f6be9096803bd4dba4d0d5dcad9a402444fcabb132a2befb66a05604ae1c2ad7817a6c984b20fc0fec400ea7ee500755f420775af0284ba4f2942dd8f9630b93749d34ed24ed26827ffe1a88aa775f233ea95813eb3e3acd89e553f7a6841057db23299812e41a0cb98b40c8b5aa6a3ef5099ca747aa35068b270cfec08502d5a32e98439b4b360e100d3cec23f9b74030c4604b4bf4e553b0b945beeda9ceaa8e3ae32b919542c80e22a9f5a3a933bd9dcd46d6eea8e2e31009b482288a9f2dd8c1a61477b9cda5eb4e3be8f93ad17d60beb1aed66d4f86b5a36c0e265d48efb7edbb6b958dcb2d95602a617cbbd90df2f9daab4ba14cf5d72b379ecc036ce4dad1cf795b3dbbaa996f5aa3c89eb71be3c2b07751f6fcd9d31d49d71a35a168968fdb22e5fc765e95af4e5d5853ade88610e4ba298a35338b66e6729a59492bbdc2685635223c800b6f18dab78423c96ebbd37bd78ab0698bc0c29905445c4e3ec7a88ca1f816204a5761031291b34c0ac77540c5bbf1e270c8b72cb2d65b115bb9a844dd3f437a29d25e3a91bd408281c8f65aa8bedcb8bbbd14281e2a38f505873238d7142654e2d28e43669385161c85b9752bb3e5db48bdf18e344a5e144ed62a830228bf82e86ba6d97d6ec4e408861db36bd8669181c33c0de49de759386782cdaf90da4833c16ee1062d8b671224abb78b9cd194a3ce5a3ab783265ae3c452586b241ed30d5a49ccf118253ac9ccf0142c150345a42da0cf660eab4cda99e984c7a28fc95c9330f859f3279c743e18f26eb78287ceb87126f26e6d4d2c2755996156322a1cca9c56359160786007bd5440c0c74300a5a3a0ef2c2566b0125cec9d0c2ca5bf88c96c99a41e59c0c291f7d44658c6e82e60079fc8004322d29a0fe4826d33001a6d12e86aafd9a9ca45a5ce7a80adebf91bce6e249aa33592df69a5d0cf5badc28e7423bc95b6854c46754b99dc9dabe4d0b5a2d3817dc5ea1426bfb6485be71ef366bb36877829ba48b648069ef0ee2ecdadc695953fe9a914b4cbe01d671496534dacd6869417469378d2827c3e8294f19cd683951ad4bf99df22b736a19cda9c5a25d0c2bf14b393e382029944b4151c1d6650b9ca3703835ea8ebaa531de1002e0928fddd57e80834b5c5a2096c4a59d992131122614be137048a1854b25f6a1ee72d7ad33e9a22c5ebd58084e01000e42478f1e3f18c863997040f3a3f2373a3c96295272670a19bd8329ef3095775b00de8d5c787702e51d0158e4f708782cdcb5ed7b94e942004426271fcde9a5e012097a42b9c4a547b9c425d830c6fcdca8fc11509db55a84423f79674aaa66eb759e48d5e45d8c89744daa86a2a14a254b0858277ad7a4995743db0e21866ddb3f1a3d0270e7e382e4f22adeb3c185a4fbf9b0f0fc06ae39d8344abbd07baaa139d59369326dd83ceb9dfb7376cd699f9a042115af7819e7621b3b517001082a45c598482f3a5170c1072a154593ca41e9b05a784e29a7ca86e99886e918f8028c2385382b08188c08c478ee7272019b482a18a2765c7a2cbc33adc363213957920a622af38fca2598b1e1c5a5abfcf68d7615e02a69f7b97cf6c97a419e8692f75c52ae79d8b099377005fd335dba8268935e2c206472769b2a77f3c2359edbd91d83b5d3d9401c64d4505fea5e6bc9658fecc2555217be42e8dc86de0bd7d09ff5620a6d6a0c71896980c0f652c28800f1524c2dbc333fc03a2e7189691e8bc8f9960fb0918b8c5c4e283342bbad23d77661462e722932618e1a6c64e450064683890dc35d52f9bd9c26182617bd2331227172a969f2da463b1975db4c80df4e2bfb6e02d3b4b2d245468d5ca50b93983d8c2e4fe6045ca669457b0f34de92427b48a17cc23fb8865178022e4c33adf0a7696529fb98288ff6f8d1a436d746e558c0f8f540dd0ed4c9dae540d56e438cf1a24fd60b91c2d8c32aba8a97dd648a6654d1a72aa7f61bb86ab45bead235bba884bb0eea87c7cfcbeb939d7d5c9fcf7566dec11c84468c8d4f76c10ece5034548fc7e2014d96cb0a92b3d80aeafc592e2bb2b3d8fab9e4744ae6562a46c479a2de554237d38a88ab78222e2a4246bd2e4ad9c84a4a98ad159dcf4b4a3e9dcf27cbaeb30f84d8514dd4c907426ca09238e083dc749e5572b9e17cb22cbbcee7945c723e979d95bc3f9d4fd485eb874ed34af68c96d08b5236b817d73fcffec22eae7fe80d5c33fa42d50c74ca5a11ba5c0b06d03f7fd68a0fed5c363be893e5b23530303035a35cf346a1c9a5370251a6f901eb5a4cd5a5ebf51bb85ebfae9743dd6725600303532f6ac315bf9389f88d3cd7cf0daf72a48b4dfd7c63bde07a5deee3e52bcba80bd78b4ed3ca8746dac38852233ab583e6f6d0143d9b26ffcc9377268997fc20bf873b600e1e8ba4bce38df8871e6025aef20ea6745b09ba9950b8ab508ee3de8823313b3f999f9bcceca219fa3641d726c9b991b975ce0e8e4019393715e6782c22e7431d8f65a188c8a7494404669ab8498b2bac19517540dd736953af33a7c5abe39a8e7d742c44b734e44dca4a6697aa26601eeedadc4ab7ca1d718f379a4cf350989530ad30236132c19f4eac3c1e60909714c40faadc01b65d9e9b53a59b1a53e524a7cecef8253d16eebcbb96a872bf2e371db93340bcd13517881260dcbb9de1be33a54ff6ed336ae7e6d69d792c403c96ab53af4c44bdae6f5e0a2e7dda98aae271d3ad1e980505eb09a3389ae151679c8089f847c073be79ffb35688f835b75a35d85e5a4db05e0805b1829a3a52a71b1881877a659a16e375c5eb8adb54936587d68a8ce3b8cfa8db2da0cabaf3e5550f7dc09ad82e67a75237d0b7f9f9354b40883c44bb374405358fcda5c584268df8093d9fd3b2cb6cb54b7a619e73a7fbdd67b38395a3dd0c15efe41e1e9b2abf0bc40235aa3cc7b266b08e4bd612b0fdfc84814426f784ee79f739899394c8c75ff452fe4d3e4a3e00827f648fdaec70a8da526efb7e3bf7c85149b54e3b767db76fbc8481bb767958af8dbae0e874c967b3d37ef239f7b9fcf599c9cbfe3c3ea31a10b0485f787eb260f85c52189f732f5c237d79a3ceaff7939790d0cbd7015d927cf34624a11742f73c34bb1caac7733d42a06a1ef948696701aae399af7a5e9074d26807f2ac89879a1c646242bbad1ed19776fb91f9b2a0afe7208f8786eb221d93e8dbec70a8dbd95a21d22105d9e732bba41cf646f2dcdcaecdd0630af850e4e54773f30620ff991d8441f413d12f11bd5ed017aa1a4573358d76d93b87f1c2b5f37729b377a29fbc06501a324a726d7658d524f7e9a5d8b6cf463bf99373281cedb49f5c056b53f4cc0a35d44f87662f5c5fbdbed60bfa6b7743bf4e8119751fe5d41e6787438de7a60b8dcac7797d13759f03e0dbec7270211fed4efea12f5caf9310ed66d4ab8a4458154d7ad004525f5ea500989d04eac9b1d9e1504fce968baccad32e9efe820290f4272be9777639e8a84b69b7a9f497011350f71d0e1978cbf450ba1c6aa8f22a98c693ffa75714405dda29a0c610c0c90baf18c19fdc7ed3491193db1193dbcf408861248b06ebb854d5a9075588421020500236e2949504cc420216f2eee4216761daf021f1123949ee38a08aea6a20ed2be415babe822b619dbfc200234e35d21bb8ca431d98a42c040fc13dd8c71bf143937f30108bc5ab47c0e4236d1e6f14e27e9d3be8dd75719cf62bf4eebab45f87413b8cab94fd5d9e2bcb66979a47935eb02063162189536094d22845e5a068dea864f22a9b599e4493979433727360940c0d49d430fcb0945b674f4df57cc2a4944faa8cdea4c7d279cd1b005f1a01b37ed10edb998d648a666732475c256586fc592b486ef1c04e660c51256998d6e18d98c61b00df2a02d6354cc3700a8cc663993620a0a99d3a9182d8400fa3194ed134d645693851615ccfba47a4925a3c76f630ba94dce56c1f34ded2a4d9345dd33dde8837b54b319bf2527231d26eaf71fbeddaecf6d7be4dc67353a54a3abd51a4dda8ca6c761bbda29c11550937dac55fb76a8065b4db360ea4cd1068be6b2e26afd077ca50e872afb9a91611300a07c96c1d2c984cf049cc76c1b4d23964a615e686806df5eca584a90048980c10a7027c281d3964d60091b20e0965362bc9be02741a8a75ac01284a091c83ca314a29634c24169386895461ece7038dc6a864091e099b9a3a3443182080006317000028100a040322711a853010cef61400139694506a2e9d053214832886821020c018008001800000880000013284891dc30d385ae5997d2299abb4610e738240ae63ef46db964cda312d541a8270305c22e6230f8835e6ce13e81c5276e6d1c17796fde3df6c72e9d238c62daaebb688980a0e120b81887a633b51fcc1b66532b222cde1f4a02c2854c53f7b8dc007fdf4f8b991599fc007b2da0fc8ac1127c250f4fdc3501a137c390a7d9d8632bf21a09e70d93145ed6a000b93288cd594cb17df07bcb57486f95fbb4f5dabc1f25f233ddbe483acda8a7017249b61f8a3475db833cb3a87235afec9cca14f2342ff5d2279789bf8e89bc293569141af44a10ca431e22368bc2bc7dacf707ccd2356db7e4ac26b2f262b03da954f34a25c54d842c00d5748c361e5d3b4e292d5712d53ddc93b4aa296538178044a0c0d301cee4aa7291b68791106c629883fc5b1c429e447efd069165310f155d0c2364ae19d3da3029515bfabd27e60ec586d221992ea21acc75927a02ac18ae6fd4f597b613da0df76f3b97d9263e810d643f5f1cc3e62af14a1f652449710ba5c46cc512560b6d24e5cc9779d91d4d0d4887297b5f004324de94c6c8d060d6af450531f4708431efcd87b4efb91d2818814ff648a81231c7e4291d02947cf1927c6fff938e3f8f9232edb39621f23cef8e89ccb762a265b8b7cf25adbf537d42d64d52cf51e501ca9db4807333754a0775dccd37bb815dcbedc5de1035a0bcb674a14c31a183a1a7231295990bcd570b763798ddb1e49b691a6998281b39de0fdecc5c229eeb93c5aa38dc6c360c9801b2be0b6877cab4c7f9512a567fa1cf023c39893d44e8bb1ff683be912f681e4bd413aea4ad29496b8eda1daf0c2e75ca1e9814c59cbbc40dc3c49d1af945923ca6f2ecd87a967fcea621b4bdf3aae8306a09756407542be5f5b8738a74a34adc16b45520992dcf231bf8d7b251d1d8d2ba2f1aa8b5499c1ef05c77d75d8c684fd38d52882fcece171e32104886abd3b8ee057da7d4907b94ad2675db8ee4f8cfa1b1065ba0a50c65496a3b99f9f3303b3ac22f687a19fe847d03bda40e4f6d73d341018a090cdffdc816fbd4ffc0f6d29d58d4e61ef3c0383c0ae8575b6973e32097c248f1c7d145758808f83b382598d36965051d88a7e0b551fba5cbf63900c6659e6f3310c818745bee4755b8136e9a353674a8670832bca049a29e2e2b1fb1a51076dcf2842ab024b412f70b46047adf67c344e4afa9a2bcaac95e8345485b0149c53ae62676d756cec8b25ec213a8bf869c5cba1242025e27e1849993367e12a29151f50f48cd771d300c714b18df218e27205338b9df755bf7269171fa472d29b41d78fb5f7c3fd02e010e339dcd8defc2a5b84566a11c612fb1b5b418b241fa71cb227cbda7f0324297908451d588c4f6ff41e916e2b5d3c8b32932fe7ff51aa8e53f14d3cea501a6296c9dfd5810bd5b28a230c9b1b561085cc592bdabdc1fc81d2af2f78394106d86177acd26215a7c8daf533b3f0d7d9c92562b6380160b8b5dff6261d578b2bfc703f4928e7480b0413ac454be0792cdc2978e02a7babbd23112b358efa118f4defe9c99901c6dad39c6e5a11e12fc8e695ca3f2d03749ccbbc0619d88d8a327909bf8fc55e035d841fa26e0a2d846e9746272215ca71cf896f9205f2bbd04e6cbd1f84c4ae326df84c522570e8d72dd60367e848e82b15ac8af44a6319030f10db5a89a1a736e5434ac70b2a8a62a92ad7ff4e6efef662f1829fbe46fb8a2a5aa1bb6334f3d0f403419df7d10639017a77f1b3454b74b18be348890dcddc60c17dbf513c0eea35099b4cab20b1aed491764a483f02c8d03a89a60be612207fae82c7f169746a048169d407429a97db290a3f92c6133f320ad3fcb6b015bd63f3b8401290ceaf3d25add9068aa213848eb530f64041667113633480833539412a4368b65a9fddf32cc05ebb084614cb943770a9029177d1f6850947f3d3b905c557e1d6d55973858da49575259e5155f275da6b8feb27cde2b42d326449c30ec9a9200896bdfb501a41045b786add609c3a2a74d1098153b06e894dba0d52a110a1a8caf3bd7f665855d9a00857186d2bd4223b6b55daadc36c3dedea16f158c280c3f5df98af27e5841cd9994d8d4280702b6bd7a8169a8bb2b9e0f76ed80df6eabb8a9048a2d0e0cc035dde16bdc21ff7d0a420b098dabd4717f8b7bab9c7b98177b2c9e67eeca0e189921ac969d59fd9da5bc2653d242e90bd493e096f87bb14e6eea91aef8730d659753a3bfb423cfc95bfd83cf0c139c1bfc20023868b127b32c5b67ebbdea6fc57a73b59756fab570d830cc67638353698614f126b1cb7cacdc9110d7a6fc61a956620492103454e81a86b679c49ea65e720a0af7063a81b60b9da4b3b12f0bd6949024b9be5c8ab207174f0c4997c961ddf54efd32c79bf769e631e93e9e7fd089b654240f6120acd090a0621c0b2cc3495c51ca996af4401d9fe7227c81b2947c885207e5ea9dbd51dd6256acdc06615fba3ef0b760da80ce3afd9a0a200e067f3226c63d1624768907b5523cff7ab6875f8dd4c571bb3810446793d0944ec9b8d2020886d2e211ef017efff8427723810c5b54862e73550e82f0c1ea05357880f8206de3f0bb8c449f212ed22ef00b15251cb383c941853dfa36636f963a1a145a7b916b85997718f9a556b84fc1fe813915522f96c2eb69ebd4df11099b12975f0731f0fa0805e8e454670b3630c0d3a758e1d4026d046853201839e61a4e40ffcf48669e2b6a5021e8c5e24b3014c4fe42db34445b5b35bf72f15ba5a144f94e9532be52758bfa19928204e873348b36b9d84123a039da2dd4691ff892918a10a0fa3234dda2492bcf05fa1a8c10dde98b1d528f66fbb3fd4477aa2aa8b64b22e24b1eb4ac7539866e083e8ed9307f4bc6ca48b576c5b9920e2228dbe3bf3106c12617aec13152674dd57c64d45da584ec5d5aa49be8214e2e8eabc01f2727054a92d02cf68d37c558014d6bca1bab69145bdf3e10363c299f1a4fdc68219c647cd598a8bbff403158efde4fac2fd4c99e2719204ea0d878127e89b620fb8dff012dbacbc727e963a8139518ff8afe8ee7d7131ce4ecaf9e39e58f1e7b63604b260391c380526a624d4686a808b806f0744598d8aae850a6e334b5aa9ef72b35a9152b72d3bb1c350d9813faf120dca35974aac33c3e6e2e52c045298c88ba204b4b4089d09bc35a15360fd671dce32de302035751926220407e01a01e49ddabc350984148106a3f839543572b70fe6b47cdd55ec536b7859735841417a0477b7d00119303ad6416e3cfcc0255447c6813e6f4cfa06140efa9775847cdd944f97acda24f63ff3774e904e43fd7ef502041de7a463bf0fd637f5f1b2f4674b7dfbc61591c5ceac86348a53dbc255a0ee18aa4128f86e552cf51854903057355c8d5d9961783d981d85bc79bf7b4527e8d3aafa8b27b05185ad449a36767a4a65c9325845e369c70a7b66bc46f80e2eab9106d2e9e860252b313b1d2156f851338a05a855f89978d13660fccbb2e31144407de6fadc706a060523462a54b4c13bbdb3451b7a520fd40756376ed413ea80d4f33315bf09b1d224ec7fe59498e7e7ff88704bb8ad94ad7cc17d50794cb22aeeabaceda1d69da1601fe1a29a2c57586580ee25d259cc23818c176e28897799b0a59e9889523df3753e11fa049688ad930ee62fdc27065c545c3e156391139d15b4e890069a8188c5c6ae19ed17c53670e0f5076e1812dd4e5483b40fc468647e3f86e54e0361ebce00112c59edc90256673ca0a3971c567ef3891fe1ad56b1bca95170c5f69627c85db7025d13d3fad3ef8945e113e6e7592f177cc21fae99298ea489dcca0091c0e6acd6bc3b823805ce4c3312e0537754c7184b6cef8161a1aea0455f800d9bacdd79d206fc5a546d55142556ef96f2914cb2c3d3e1089fe996cf8577a163fe431fb1e5f583c9517ab4cdb40d3bf2a03124897929441d9cfbfb0b723fe89c0a19c546e714743e4f4b9b697e9acc78e0a7e776ce9c1d1004cbdc916203d198ea260a3f2b0f5af89fe8f5ea2ff51177809a97968dd91f129bd050141e47aca8cfe593bb70644d515b2442f8753c509c253bb6a237dd3b95d3da5846c5b6e121cb6f7295b1fb7c0ff33b79cee5a46394984c7b63eb7e9c4e8070980c813b9d4382f8a6d3d98bb1581d534c61c251199b8316ee44e3fadc213c6f8583d9d667c0baeeda63e7ee973e9ac088d5eafab6cb122800741fa9ec1c936703c911f83f2c8ceaf88737499fa688b1ba88646e1856d762be91c665181825a645423fa0b144263d89fc8f039ac7e7712ac0ce7133507f537cd9bc568eea6ab430f5d7a355fc84a24f599a090df3600fba580cdf79a2a2f9c3485506a231725252d5021cab8581c54d0003f708a2817a161fc9402a8227afeb21f8950afea79f49299400f513f3682040ee4dcc0167cdc1300a844c65fc73b93a644e643968a4572ba5e8b057035fae9789835fea045f96eb1100bb70fdf09f5d7ba7d9f1c1de63fb91ecc6f4f58e0a53bb8cfcabcfa5cce319934e1884bb4f148d43ab2e2a8a3ef7eae5caf9b7c5f4b5ff61224c8f9ccedc109c0aec43d0df2b4b8823f505180b0db4045d6bda3edc5d4245c596c9857efee2f2f9f7dcd8ad4055e61a9805c7fda8fe9ddb6f2efdb769ffe830741baf5283a2d6b73083cee9805823b6e4da13d3c0235fb42eb604125dbc398a6ee4307084f07deeb76c5fa7d365382012882112101e82abe78b26176484dd2144f0613648247097c4788f07028547fe9c38cb92cc26695ba005d0c9379708856ea9e869a9c7f1125b5c14fcad8f044365e42dbeaa63e5d060b180cd0d399ecd8bf1e370eba53a4345336f0af1e90731a874897e3049ff0f68ca1ec8bf64893bc8952adfaf08ab95691c9c77fb2474c138599f4ed146e7cd498d3cda299e9be6045bc370f4e930d39b88ba9b51f4dbfdcd56e96bf221e05f149bf06d076ced00051cde280828bd8be0f5c476b0b77f448850051cf1071818fa7078de1c498a2bb69b2056af7c0b4b92a1354c30fe7137a97dcdc86e8056c009306d4d02f2e945b82bc5a7c93ed5673b884fb53fd505cad3f5cdc6def3ad38f725805c40461ca2931b3633b98918f6e5a01bec479b91e962f73c25f07ea72d198fc5c36504989bdcb9dd31dfc07684f92e1f19eb56a33990cd28f703b4f4e7185857b5db734c53abb42cda033c278b1579612b00796435413076db46662a40160eee5568631315be652ec32243669fdb23cd1c84fa0650af8ffb430b1d1dd2aeb93928613bb7d8fcc8ce08612b909e38fe2a4095a48e53c30fd1c2a2ebb5a1c556570e668b242799f65a85e3d521d0fe0044a1e3fd0195f0508ffd8d2d52bcba079d2f9d6e1e0fd1e89b11307f10fbd8714289d291ee34f3a7e0ab9c94123279dcb0ddf7f9493f70587464fac21c39029c62b1e9caec92ffc307adb31eebc55e27530e749bc4a779c1fda5adf90d937d349cf071c286f575be829597700e89846a9670c087cab4e94efba8d2eb65c5daab9966004729a9156fd9f1df7c5ab563a3209da6fa3987f429b1f20e25debdfd41ecb51236f0c21cb5b2cb242c28c2f607e36a90eee9a16157b8af8d5d7ffe7c7f5dd67d18402449ddd1e87965201f4faec014e55b6cef9190cbfe909e430200cf151f73495e3d6f124b761ff6c90c916db8c570f11670ec2d84c423bd9a30c978f324ceda72ac882fb123d57f5b7ee1f5dd4d0905040c98958034944abcc325a978dbe031eda18924eda3633c47adba3a77eae4b9b6dd43d2e385058eee6b077caa17619a03d4a671285464f843964498f5647b87a636db6720b86d977d13dd3959cd710adb66dd820de5254b4b553055e68582b40360a31b3691438193b1b87d85f0a05440929b028926e5c834daecb28205ffcaa453c7b314e0b4281b0d26c229be569572d966f0e39b2fff66f737cee0b456ae5044927ab7e10d7062e7ab2f9fe7248d62fcb0e691d361e490b93b4ca04ceeb33189193aa8e2652eb90109881b264ce248405b4084fac97c8343b992bc3d2de5850281b48da255817cc42986f7829023310ede1a60eb8b118b1e57996ddce48212685c60246da25d27f4109defc43f2101920185c1a8dbde69b7b413d32a8049b412f2c7bd9b37c8dfd2b4ab27206b7d3aaf5eaabf6e787235f06a6fc5b437406b4c39b091c85809e1a3b50f07f57f76b4d13f9be5e61de74541aebf225369af30dca16836813d1d0a3bb49f2086ccc9e98937401fd94a374617b4972a3528804e82b405ebc7056ba704c8438be2a6dc23cbeecb2de12d7f62a599eda1618e86201c114f262ca1c8047bd894b80fe53464b106c3b520786f81ec85c4770fd1eb0bef2fad1a6d513808a0b68ea7d1306cd35cbbe50af9cc1e15bc98a28e0747b1cb8ce4cdba445bce01d1440d237468fe5099e94cbf8f49657315143d17d9e590649c8114b6d3118db5f9f600b009a5278f90b9b7001f112d2196586b5da867cca4adb9ff0a386c1560617f1672c67a601707faf28aeb7d3e169b3b7a92e32f4f22b4e1c2c6300ba68216457be07e4e724aec9be8560e5f2ca484a7a03b52c2ec884562a901025fe805994c68ee6e4068987e75c22a59f0e6bde4ed86ba65f026d9a8f6e9cc787f7df779d25f988e5a1bd7c14685464e24fd8795fd91213940dacb9b1910db13b49a1481643c788e3d8522be7a5ff4f77ef4d9d5f5be25d805db4d09b8a8c4b6d03827a054fc8d4dbde12e02ccda080b608bf21270674bfb92c7d702e3b313b9183a8627a360d05a492afb5b586bad84e8d80e39c9982d5144299886339561f918f863774b6180b44b4618bdc3c3b1a06ad1b7a31c658904fb0501f27676076bb05bde30286cf5e3ebe52b990368d1ea556f08a83109a87bc1fe0dbe66d3b61634a52d69ddfc662f9631948a02a98d8fa2ff9202c46b7427184a5c68904268aa4054ba9d2fd802f93248d721d30cd2d094aabd010970319bcc25a5452848d8989a02107255392e3a3cdc52a8ff81c9e0a2b74d7990f9cf8d6c5a363f7b18691015249f6cf87a2e39551aa45511cbad8c4a83b485ab433f141328242c6fc3338182870c1b98a5f004341cea5ab6862fe045bd54cf02b32fc6c67ae94745d8e6e91d9d02f769f7d5f131cb801d49cc46527945805d9d0af4d713e17c9e0d6c7404b17c4b1d57ab8c095325a85d0f47f8db36eda8aaf0184e9a640506773a824e62772dae97e12a0bbcafab9057627ca6d30d03bf37d7cf44630ec582c2d71ac53ec9ce77b79c668379e390db2bcf56f225e358bf54b4e78d17c3223d9ea179c557b9f0e17a621fc058d903c206efa84740d6188670541ed23c1758018b2a4d90717366cdf733681b619d44c2eeec4545ab512400267032bf7796a7181cf18ec0cd8683ee995f1125eb2c1d838abd04f614bfefe176cdd8b817e46191d0c4aa2b3dc65be2320388279141452f38b09ad703bd72c662fda71e844f42376159cb1cd9cd8cfdab5ff0dbc75d66606173ee205e4e8909172dabf15270d2dec80985c4be7d182219137c6c1879680a81aef6b957aef630ac183b583e8286fe91d8009c6fdac1389da2bdf91d0aba36b40990328fce7e157c24d0af700812ccd723e1ab1f7d9d7e8557e6bdeb3814eb6b7c25266490eeead093c4391432cc24d35f6ca1590a193b8a8ba094780dc52ecf782b956c86e9b5b9a6a7cd45e9377445fb58fbb1c1bbfa71c8b1a8af6f2c4ae3ac1c71a65a731e6ce2a13772836a3aaae331fb8fa51f3872f42c4ead51fa990c2e5a83835a33d02f7603d4b57286b290ab39654e98f3811f985f6fe49bcfc82b9a011fb03ef94917f02ce04842076a65d34edc7584212e1d2312c6fe92f4d4c0210a443f0ead1c4b9cf6ec722c069f0549c8ed80e8376072165c6989cf973841a61826c749f1e2b0801b3a823391b4e4edbeb2aa1229f767b384db59cb68bcb5045c8e21b8758d2f041a88c35bf1b9b4778b9d2fa4ec5cc2402dc11b0459a958ec5cf03962b4f77b74c3477a8c75bd4758a93f6bb2afc9a82bc6642d59a403a0cfbca3358fd543072576ef16f7fb0b48eefdd2fb87db14a4026df5ff07147a96f04c30faa683013bbeaccf1f61e1de2febfd3364ee7ea9f3079dea07412c5517b3d4d827087abb3ac37aed1ae595940d36cb8e17fdb08076b0bbc588974af8837eccff1168afa322cf3edfeace67bfbc9ebfcc6b71f78623eb09b3549b28b8183307c3414208c44f248b934ebe206f92888b37120b5dac2182af3a1db29d88df169a85d3a89aa46bac3f091cc871823f5ea9eeee688ef82df2ef8f0a87000fb0589f9787b5bd61a540870fc30ebd6b138d7f7ecc39bf16af5974f4474b065a06f1db6c30de7916198290f075d19705895c112a53887f056905e444d329f028ff883d8815b1a4daab0a6115ec6e192db6a00b198420c6252d5974e830f7e425aabb3af83030043db15084ef0d731359a49054812f2c09412cfa23d38296ca955306f09203d6b889832cc790512cfe8925a0f336936207b1c9426422c17d681fa79e3bbbb8ad32f8213ab7a2c5021f9911b6f25d1f3822711e0a4f9364768aed682c65ce4a425514129e4af1eb43dc4c25862f3f477ef9195950bdd5cc98880827169dafbbec4a1703cc320f64b2c76619c04eea1aff811d25ac43d589e5b60ee4a3ab5f77847ec592d7d15410621aa84147334cb02426f5f2d477c0d4112417e267e24b614bd2058a53abcfe8869a1f45364013e20a358e4c9956c01face867bfacefcf90b9252bb04b27221ffa4ad215644aea30348206d14c675bef395d91a9c562e02f54e1c2f2a97b68731d1a482833c06ed93de50c19531bc34ec876f2949eaf0601b7355330380dec88d9184bb2274151f887a9492e79a82674867ba5d75bd2afd2ff53c88dbe3710a45bff61866c59c0e59982d196f846a1812dbc2cdb35720a32552f899a6d94ab897cd4777f08b25bbff4428b7cf28d7f64a2a869c211aa552a0710916571032649d1fec50312930b43cf30045fd7f8c0a081717851e4ae539492710f6129021d636bf934c8a5fd027a7fa0057a7eb9d5371f24a3f99b3eb491e158c6cbc8154ecbfe526cd07c365a450329dfad6880f5a844bd104a6919349de5dc0090530d146589866217b40c32f462dd9ff7bdd9119264eb46d73830e9ed501895f4afa9748a2e67e17811198c410564dcd2247bf5e7dd45c5af22d1c29a37a0ed90f6c2b1c194b008d7f741143e4d32e8104a373621744239d9863490c8ce38fa2b5a9bd5a1bba45b7af7c1ce62df460913949e0f54646b49bbc5ae3ca192f5e7b389271974915db5543263f1fd1590cb4c963c35eaafdcc5911dc40b2fa0dd1552c02b0345d8a2c363e5f3c9c586e71b7249d6054710a3bf72099cdb4e43b127f79213065fc60a3a16aabf4213e0377cfb2dab9130ffed981235b7667e6b7c7fd8fd42d406e19fce25083a32e2f56cbf3f1f5152e95d9cb0002cd202adb08ea1fd484865fd005f2ef3e7e78b5684edcf47c61e3fa58979f95ae5157d94f9f32ebb1aff9d71420f4d26040c21c931bd0a667fa527495719b74e17ff05fd95cbfb04fee8e5a07fdc67a4fe4acf8c2506acf7b53aa9e9ba4ab0306cf35b8cfe0a7d80ac4106484450f1d008898c237f7edcdbfe87a557db48fc562cafcce214c12c87049e7a0f9588fd2e21c6493ec0fbf25e3e38666a9a0eb7f6d293ec46cbb63867054a5e762e22f623aa4e1af8f3dbe6825768a9e30bb42aedb0d84028ae57e8cbfe9f6402b08aee88e53dd4952b803200a070688556bad61f6d1b6065b94298173f003830e9e97afded17ecfdebf3b85356902ef824e0898460949afbec0aa1ae863109c4ee32efaa0144907191a1758bb2bb9406dc90a2c75bfba29d77477f7dbe9bb102abe88596180f98ee132161c27a902760c886c37cac4b410030bbfef3195296e723f492de2f158210d763daf6fa10c5c0d287c80e42c6e0ff1f6789871ce669c0d4e3f0ac57f5fe2b821d6e1ebf386a0b7cc86cf897ceeac0118973693ccc249257cc42b72cef430285933060af63b31f7002f3d49500ecdc97c413ee231d14db457c5c55835dcb50d60d5ef244f00f2f90c846a850f0d3ffc8fd88145bd062e3e543d1886051e7b21029a0b540ebcecb01a221daa446422d607f7c91805f59ca71121157277f16038740888e6386b1b6a0ca33323f3e2c308cfc3c84342843be2cc42ac0e8ee803a7620425e6179be5997ef8f8b5a2f240ba366d4e1243f2662cfe0a6e0c5916285efd4879c74d6073c9e989f40c32c9178c5979c668a2a467b37b4a4061c717581c18c1a1d0d24c22d55372153933cfc0bb796388e408f35075f56783db0a5c33c0005ee1404d40c56209e15a703b7781fd7ff9c6c0be99c6c2b704450658f8aa1339033c331b59c1a39da215d2eababe42b47108c336a3253be8cff6e9683f0af817b160d5dca8d4f2bed924b1f6eb09f9a889090b6f7de5bee2da54c3205840c5f0ce40cefa8140681cc5aa9350ca4bfef0f813f43279243cb0182b8fbf45a83af85a304559cfb83e1188e447438de421dda0d0d77187a0b7638a2febe55ddf0efcfe138c7c4ede22804d5a7f7420fe3daf7a4d1f775fc91bd17850ee638e5ef2ffdd9d388fc23fb4a1ebde77e0b7dfb6f47cccc71d4e97b1f1e69fe1e7c0fc3efa3964848887f88fef4e87f73ba27bd39b17774f4e7a64c6d5a15a83b5d41c2c4555829b7a51c532a97c18457399dba039913ab5c241659e8b3b0000a2780aaf42878cdd2d227769c6a6ce2acb004c7d1697ff4e77ac8cc91544a2a6f4ef59cd699b98386fb826cc652aa69ef692d6ab426d3f749eb4bf9943ea5f2e7cc3eb8e81c4eb16844a05aa59a46b54a5ba75ef98c16fdfbedbcdf2ff42b907104597e7b3692a4f2dcd1e6cabdf7de9099b9eec121dcefad14d7fbbc7e9facc2f57eec19e8a0fbdb30199142e09f3e14024130040e314d8173243716724ff1829e3cc50b7632f70e020137d11561550eef458fc37bd1c523280a85a717097196e94b7f32859d85cc56c34027e11f236c0457c5fd7e6c21dc29fad055a9a010f27b18af600ef0bdd65ab321d05b79ab813640108bdde2425c74d04ee17e984ea089e7db700bc71ad989b8e84286582873da695f26f79a485105245840e9428e0fa4d11585c0cfeb38bb695574472452c932c1ab3fe7046d08e9d0ac01a1980113361021894ae27771bed8d83137051707c5ed1899c510c2e0031bbc5e314c40d0652a44075abe5cc8bdd991481d261d17bbda6bf83f22438448e1e2b05f9f889021360ad7c3f2670a07852b7f6eeed69d7b72479923e4fb69ed13973ac9f33d21b3256bf00322cc579e373267c33f5c9cd3fbcedd8ffafd586b7d1f3fa6b539f6b7397d18f1637a953f447cecf8c4f1c9db7429420e62676e38675699435bd6d76ad881faf7f57a654f6e333440b31e3bb639e7237151c7899c7ea0ce454be6cb488d7ef1da51dab1b0ec732fde83f7f68ad22863432101b99f876eb9ccee5b2693d16e86d296751e36758b3ce51148f6febabb5b94a6ec5f8da535f4abd12ffe6967a8e2568154777729e96f526e2eb1be8c0fd5615c2ec254ec832b45615d64584f5581d72ce37ce5f9def4252ece1d17a7f7022359669fb9cf0b6cf29c323baa845ed56f82560a577e14973e35c37599137cc58b056d501b26d47bdcc77998cfc9ba68d6bb4885ac5fea03a0c5f9a37b9117f0e3c2224f172bc04cb1d72c5ca0d59c2b36dbe7382936ece73ddee3acd1839cd8afd962d3f420fa1e04469e6f5d8afb5471e54c5ed1ddb265cb2d3416c9f23b26d32df31da40f000eb43873f46a2e20cf1fdd329f4e1fb753b8f2e77c5936b8f4c2c50a34850b966499477f39abb30b92e47a44ba15bdaadfb1cbe5de72c7ae8d5dcdc66efd6cec521beb3e0b5a298cd77de6aafee09ae18eeee33ef2b68ff4971bc9f53fede96b98a3c2b5d983658e8a2bbba3bf648e237196d4711cd7e997cef6ebfbcd6c715f9f9be28238c0bc61f7e996fa350b97c316ff5cd929eef8650dd4d12e8e2a4e8a2b5fda6479a3612eca95cf41b94dbaa53e17854eb754f771b1faccaf70b1be9d82fbe410eb4b242e56fb833bde1cbbaec3f338021bbb32b7741bd2dc59f25d3383e749504a29a5f4d91e5252bfe29a11c4b4e08926fe2dc5134f724bf14415796411e5521ec51ef2e8329b209d4e0a2323a79c72ca5046cae954b2b828ff8720a4fff576aae2625b45436be81789894ddf7442affdc6b3f56cb0d9f26659bba1ecfb2ef444df857e0620dcc4c81fe8404e9733a4a43e0d3b4614bacc95f6a1d035579af65f283357da6bef55f0064b767151fb8a45cec8ed988ea94f7fd48066a318a3693f9bad1db3acc5b2bc992b6daeb457719b8eb3460d286f3bb385619de304c9cc5acb6c20c5c916d3c6ad49a6021476b40993d9604a1e3728597b4e6a4039412f67693fd8c9a3a644d35efde265ed65ce6baff9e0cc567ded7f688ee7d4b4dfd1c387a6239128b1e5386b0ce2ceb2affd766443e2acedb32a38fdd2b1acfd06836e69bfe1f44b67ed07570735c8da7b3d04e6c160e0c17a0a1159de78f2f63408d77f8641361ebae16c392e6a78fbb2b8a3cc7112b8a6e32cedb597399ab556d39eaa00815954fae3fcfadaacf5bb729b56375bab56fd83084376843c5afaa2de54087f5aabac437cca2ceaa7beebac3cc4b1e0d9b0dd1136c0505f53bf0d93d0a7e0634a223c0ec922cf52f923d37d182785a38b53f88ac2205f9e7fdf9361ca744512ffd87fb1d72fb2de6f1aef8bee285c01c1ccf76588c4115bbef8082219c825dd17fdc54366be1d822098a192650286d645fa99522bcf228e9ca382d72ce305cad3e2f1ab013d7718a884dbd96b7c091a30018bf1dcb923581e70dc74c205b95bf3bdf777cb32b473d573256d17ed166afe8ee9059a401efd69c750aba958524ae9113579db36fb5e6bafe4e66338ac84c376aeb69003477cdd02cadf34b949185424e40f99d986c44700a16ff37cad560c8299e53f16531cd1e1820d177a5cdeba5c176cae305b43169b56c71a4a20546cdbc539a704832822479a1d4b2fe834b1c59878fc6a563ec67b2ba19c421541b098cf451b26a4b74eeee94b6f0a4fe128f349a37fcadae9f4273f85a62f85970bcb842bb3e9c7fbb3127a942952bc62aa14d77df2f69fb3509ee77940cec3f632de46b9a3cca71f4dd334ad86a3978b9b8cffef6d1af5b4fee9293d7d3dfde9ebc8c60bf7747a18f76a48bfd67795aa82553950aff23850af526b0d4f4fc31ebd9c45faed4736a31b2052787f2489e6d16b7473ba5cb8b8d9bca5f00c6ce32f1c4861057ff4aa56fefe380b855540d4d7bee2517e7d0d8fa8d77efb95f03a0fdbd3f0cbe29a302ab4dae94ddaa34220f43594caa3b02a477dd4e3a88fc2ed221e69e9f4a8f0449d65faed2f17ce2afd095f53685ddc3adf9fd9fa0be4aceecfc54d8447372e6e4fda7ec91db91fbdf246696737fa7d0da9b8f7a65f5a0a79cbdb7fcea2bf8df0984a5dfc7ddf28afc8da83da178ed60bc7af0b55e1fdc9dbcb08ad8ae2205fa61f23ec98110ec9c12254d9edb2065124578c04cdf43a13ecf6fe59ff3effacff30828b6ddb7c541f2ecaafff43c8f6630b8d98f910020404547d18f163036d6c9a262bee0182efe2f5ad8acfabf45abd4a9f4ee5df90d9b5ed6fc84ce3e28cf771a1ef172717ceec98dd536f91bec363902fdb0fd1c8aec531233329ece64124e2ba9f606797b34478ac991b41ee44364c46a4a7e07defca16b977713fdf874e24b35765bb1475d88769c3ce33343bac7d69b9971c55e500df3e88bf0e7cd90717e7c7715ed82d725d67391bced07058dcd145227d26917347d0f005d82b0cfab60bbb80edd4c82e3cc10a584cf71e27a51978a6888294233b94524a9f64fad5a50d7d69237390e904b5afe34229bb900bad0faeaafecd6ce5a0945e136843a65be8e77895d4ab14d77dae91af9d3b68c36b288d581e481c69c4f280524aa9284466b6a40a7a459fd2a71313e1600d042681e2380f5bc7c91ba712471ae1b2b8f2edce1de58dbca12f65e00abc1aea185b238bf04303584c3fe1d21f5d7eaab573478faad570fdd8df7e74d1344dd3b4dac387a4cee27ef37ef3de7a3f93c592f4f07e6c9f69c36d03b2bd832056e5e01e7c1cdc835bd77987b3beefdec3ae2f7f3b7c781dae315f23b2843ccad78f6dd336ce86c9c6853f5cac58fb2124146e219844fbb16d6fc344ebae75db8284de24b205a0fa3fa690c22cd71f52a7e0d13922755c50e9144bbc2a8f135f00caa34c92eb262798c3331161c03cfa8542952db078c5d870e996fa1ca855481017abe5c1adcfd90d77b77d35d2ad7e1021ce437d0ef62379445a78cd22e32cfafd49f2d85070cba4cf34414cbfe402f67ac5f414605cc079c5b42cf7cb98136f7db0d7eb9582987ef9644666896ce22d199304c9919851da8829a09f1a6f750ccc6c758ce7fe1d72263d96e54b29a594524a292bf598b3e4e80e45ba942c654e13f7614f9ce5f88794c39820421ead4c0bebb38d89b9696d5fdb5cf686af744d93762ee1b66dea39f044b9a960454fee183e288392574c5d71f19d87fa364a8a524a29adb0f6c17266206edd7d7a5b5883e3def3d0daa7ef2110eb3474ed71ccc7a37d10c82219c6b9f7907bfb7576e1f0bbd8d1ecb2c24d49cdd81cf0e4319561aaadd6b3d65aebb53e88845aeb8347b84abc968753d55afbb53ef7855bdf7efd156ffde0fee5f1fbfad66218b00968844e0696072e778b245ec062bcbed236b9fe224b117a885204584ccae4e211aecb9394046a4317d97621050f186e4a35c960885197031840faa4b50b5eb38c5696bd51ea0401c1ae03a594a04e10539632c9f5b2d7d91ddceaa00d1004b51d2f83b34bfaf1370d779e078260f75ec8f34010f440180753aaf764dbd757f41b680387547fb74429a1f86abe04bf70412f5c110e01a00eb08bbb8121ce9efd3cd07b300440f6c21b5b06dfe3e4e721efc130cc5e388a2083ef853edbc5d5449fede27eb68b0bd2f9d910108f53430643201e080241df7b1014a2fe0c6fc85cd85144e18aac815c0c6e7dfa1d3065ee27a883160196390c643e9763aac0effc49a0d9cc17d2c83a6e86a4292e5afb3d20cd803c8b63be6a470f172d10b7247b786409ca966566b9971972c732e35e66c939c7b564a4285078967c01ca177e62d227adda5673589ec2607e68c21dc53c451a2b296b53268a6385a02fa4188307deee173087a691e70c17396badb5e6beadc5502a27546892614fd3401b1a17aecaa71ef5d39e522ab385c2266b4fb834d217851a0cd49e447167460d9627cc45d9088f461ad6a4c8aa4b76992d2dc76a5ace1367897ebe16c3229198452e3f5ba717896467895da6b52eb3be9c658ae54b5c8363c21db51c2d6788cc3690e8384bf638cb088e8bdee94bbfe384779896704b6f9aefe222a239a2bfa137690dc7f7a185a35489e26a39a46f508a5eab9984e90ca40ea21f891e66de50bb71518435235a8eb5de87c754ee7266cb195272fa068bf09813eeb912e7aaebb6e7ead7b72a89352459d3d17280aeab864686eb9a116f758c4b7e39cb66bacc2ac5b5ebb7078acd15506cb8c80dc5e60c5d1ee5d14a8189b7bdc6d57051037f0ba9b669da734ab8ae1f1b4633edbec10fd7705113323528597b981f9cd5af69a6d75edb64dec24eb92d3d986ea959b827ec9f44e9e79b7012a8d74a5fc4fc122ec21f852dd7337a94981f8a0d940c7e33231de06f2e6781df67670bf5df8722893e3c06717960122e0e1717b59756a4fdf6e0df30882bdb0fe2d231ba3c30fcbe26876679e4ca20b893413c8e46611057fe422190d15f3c16c9171c05718d4220f447f02d3e628a4220e0dbd07f21e80a6b20e1bae8086120e06f2f04f82ecefa58de8358c645edb5b7f2a569ff7918e876586471517b4b866b9f6255ca45ed3b77a0816079c50bd8cc06b38d7440f7d2e0f5cf9ddf445a7e089a75532dca0f8121916e915f0ae1b1c17056085a942f6f2a25662c5c07c303327bddb4ba6d75d3aab50d269130323fb80873814725f7a9da8daf8b8e470da74cd482e1b64bb7c8b7e16f6275efc26b164dce491d0a5e4b77cf6271a7dbecdfc49d3329fd89399b57d6ca29e16adfa14a729e87aaaefec4639c12aeaab1aadfc21ce6fe2466b10cfd89c71cd65f254f9d54f2489e4975e694e2e2f4711efcc125ee386532d7f2c471d11d96254e1eaf86e58eb46ab814db33dc39d34c40a7c401ba5c53eac2c8d45aeb0fb0f9e3ad95ce39e7dbee67d8c1fc2093ba1346c655e3ba63d5fccef48be4d1857a767c63cb47c836c84cc3efbe78fd06c1b5a7d56ed5da6ab7aa61164943251c27991085cfac4eca052ef29c25c9734a9fb46a9be53aef03435b0b244f0f8e177080d9ff0ab12ead987750da75df390d1380ccfefa38faebc4a3dbee6bd871f63bec226766ab6134364c44c343ec92abca41bf668a55f673976c98e8e4fad72f6096efc99e5b682cd20fe3357b2d240977e6f18eef23fb24328455afe41bc0678a3b300d077b6d28f0fcdb95b7ecb2ba4b29a594524a29ab4b89bb5b6a6cef325b1b7eb965d9acef08b75f6742d1a4945fb8feda0f17148b3beb9c6507ebd3d0cb3efa45e6740b0c9a25a1e80b744bd6a0460d510cc3183146239953a9a5160cd75ba9b1af68299501fdc2fd7c18d983fdf931fd428de8160dcc664376f942ccf36b067c744b0ec8030da86641bd355d2e72df3f4397b9e29e86e25c71168bbb691b16d77f4491b9cedc6f1f7a19dc0bb837c259e0f7dc732fc459de733fc4ad16b7722f71e67398fb24e8933e89f9a30adab0da76815e71df1bf6d12d5cf749909e4a503504e9e9d3909e62d5f6a6a7d3fff4f3898b9c29c4359c9118480184d72bc6845373c53dc784a6f4a637e11a26df973093eec79474e222f7df6f61cd0e02217b5ca4199c81e1175a6fab1c16f7cbfd246f7e168bdb71dfcd66f6315be25c716fedbda9d4bf98b951dcd12ddc77dcc378c5c2fde122f71d36c245ce82e156160e0319c1acdb2b78fdcd32629d1f235cece1a26c0db4e1f5ad219adc7d77d885416868368449099b2dd2c360248c258e8c1251e08423ed8e133284480d9d9e76c496ed6dcd3a10b20d74140b4730d046ede7bab8de6bef03f7e8c21da1114057fbfe202087470dfff0bc37020721c368369238a26e04fbb4f04710b0f1f87904bbb1315c292e4a19278651fe48caef4492c7c3a395a7d1df1326593bc2bd3d28a3c413bdea5c0a659488a2579dbb70db315b23d85c492eeee8494c8927f287c72f5332dc71041bc11ad7ff7c35ad756121fdbddfa3301cfbfbedf7ecad1b0fa940e02059429146e8d22217950068945fb774edda759412878dfb0edbd73caeb9e7b0f529791cb2715cc7711d675fd3ac8e0db7d481e3c271e264cd06d51e66b6f61b25922be528ccac6311fa5b68b3f632d739714583d7ce7269e9d696e38a1cb1e56d2441ae9aa6798eb984d461ca5c69e8ee4b481dfca9a4c21570aad72d5dbed3f977e6c979644a2f72c4267b86e67b112babcf8aa8b1d0b9dd0b844f8260b54170b95ce0ce05b2fdf7dd7feffdfc1a79238d749ba4b8c70e1f3b9cc5f97096267d8040f8a83797903a7c781ea9e00fae0bdcb9328faeccd11fe612332757970c4c8f1f425c2ef9f3b384d4a17ab8a50ee3c4d97c969a0ffec5a315e1f1ce25640f128f45bc777d2eeae1d103782e2175a01a17f610cfda944c8b84e4a705af59be5a975c4301ec1e6cb8953e6ead5be93bc68e79d6becb863241b8d8c30a1f22f2ddf38c8b419c25259671f11584920b7eda7b0d769e89c55a7b7bc8b8e7d2a54b97f24b5724258b8bf20bc2d285ad7d5fd3f73da156be54bae16f88f1335e957a1c38fb3274edadfd1411210dc6fdeeb9f0ba48f4a1ef38cb59ce722a510faf4a91733a42ef3d37b28caf12e11c21ecb9fd1b8ede7f313e14e32d568962ba960b6f0cee2f56897239ac23c65b0c24c6873090d4db202cd9e2202cf986778c834a7b7b031e4f6ff13843a53a794946a94bdcdbae54e25ebed5be52e81d1e4f255f29e1953fad3c8c97c2153cca5c7af757297ddfd3fba9a4f22514f73644bd281c7b64d1cf1832543f3cbfef3644c38ed787ec4feecb88de0b533f66eb7ffebb0a8f56460c3cb264a7bebab851ff711808ea3b14eec68f4359cd7adf2bd95764c8c0f7638463ca945d25fd3fc6cb08dbc51878bcff3162e0d1fbefef7fd8beba780cfd178465ec912ff71c0662bf7bfbdd4b69ad4dbdec7eec386fec91e3c67d52ee704f1ebfbf38084bee82b0e4d47f292e7721ea6654a8fd293485f20661c9a52247f2f7a370ec913fedc31daf71a18feb22f7f0c8f5f0d9f1dd15fdc8cfddc37886f14e87152598c329cd3d7cf897bfee4753febeefa9b77e7cdf8f1f5710deea98ce2ef1f4c1c5a9b9fee7f78b9b66f8df785edf2041be2c7f8a0f1f9a76b19b308516c00086054cf74ee553df4fc3a586b354dfef72d6e9fb7d900962c659def7d3f4f7f061c48f20ce327dbf106791be5ff384384b729c7cb97f32347a53d7bdb59654b2df2934b588fa1da8f731efe984c7202619e12743061e85dc18a18d11038f43be8c7aff54485b44a5be0711d4b7887a07859859e57bd4e4d3fbef40e11d27dca344027b30ba21b082363eeb228769176e177e8bdcc892b9b187d6c3870fff1ddc8ef0470f1737d006c54624e18ead61252b1507b1825df407272e589c948525fb7fb3bac55977b3e4532a64bed820031f4eb20cff7cbc33dc2feee7f1bacc556a14777226e7c5057fdaa8018eaf3a6ba18d1ae4b8d8d94a29ce92f3c3a34b1ee58ebc62e7de702173b8ca0ce313b46187e4fa72fb3697efaae1e2d4c17d971e1d1ae451c276b4996e99725632dcb165343fc11b7474f1e2621a5fcd177191ea2920e6cc70eb8d3ae794b557524a5aa473cf8a9afb65b7ad19c68bb834a22506995c4a5db4ce43bf8d423fa65fa98b2ef65f1bcae262f7f784ad215fd992a599905ee7df186472a557c4d326fe4299bdc3e7c29148e642df3942fd2391dc789cdae770ed7384b86f30c7a7bde63f3f87e389738434cdfbcedb97bf19e36bb52fe3512aed7bf75749894f63be8f4432d858c57dbfabb80ffde4b0ea067dee73502e14c223913cbf432f7a0d8fa1f6ee019943af85b0ea06f8a1cf01865e0bbd671fb4ef58fb91879b7bb8d98987cc916320f6410c44e57dc81c2dd654de7bd5f72e03853af5e9e43f4fdacf90ff3cb916c223a9768c8a633c29460c3ccaeeeed2576aed3b2cfdb695ec0dfa39e6d39bfbdb31e79f63bee7e04e9abfdf980fe21c167be93d2d14fa6eaddf9b63ea81a8bc3b1e4bef695f8fd3c16f6f712b4fc75f09db57201ee77ba54f05436ec89c37a3dc2eec76accaa02720a75fe6dbd1c573a39427f6706ccc22dc0400758bfdd4ac5bec7327b8a38ba71424c52bdb97d193ed8fda4eb6dccbdc715886a75bec7744b876ae823470e3a26dee69f8b8689f0b695ce1a27df985db4fc8b024d7b1bd70d323039389396b74e5c0623c322e1e6775ee27643062ca94e7e3e9d8f71ab871e574347c685ce1ac8f872c89faf493081f7fc5a6d75cd9a718a4e11173d17e189682e64a73a28a204a9d9092d30297f500c809294ba0e1e372c59c35b61531268090833cbaa0084169f8cc78c4386d475b520a32bd781c99f1d0e191c303499813eacc160e4fb323c62ba6c56cce2751746c005b02cf932851e09c67d62383b99a5897936c5d4fbcc9a4a08d8ee3280cbce7c2201eec661c6258720341b3b5f66164666b7b6bed17511f876fb008faff30fe85ae1e17ed77a18bc745fb4afe3d5482c377ef6ac2718f431c3e0cff3d1c3d180d7e1c708d0c6caeece3779026fcc73532e13bcf5cd9ef98dcb11494ed73b9fbb06370e04a41ce02c23d176a3b3de2c9f6553230678da52099d86c7140f665787a9cd54f54c1899327f6656457c8fcd88e49c9b663b36c3bc645b6df715e0a72d6a8ed94c07096c4a9d95d3ceee2992d0ef364fbed0515efe1c4b6cde99c73b662971e3330d20554833cbe9d753cdd2fbb4bd2173bcc364b7effd6ac8f45371c5444dd9a99abd943972375983e335b3268ae72640f1d12f073f26c27c27024d370255b295c4fa74be22ceee7773bceb22dfa7fe1d63368b644dd21f1c721bb8ae3eeda30e14024b922c9f36b8eb3e85b97a1e74ec7c5f97db7d325e1a14d7a9cb8080be9131a73714e23797e2c8f0e0ba278de743a9dced4c993ca3a9e4d0aaf59c6159d28f5d52dfea1dccef2c245af412efa0dd99bdf0cbfec51af7a955d69dd4215c845176531f77750b89b141909cf327bea0c1b0dbd272e7a37ce3232c251c1fa2587ec9f83a31d59c11deb0cc85953ea8fb364764ae9df06cafeaa19fb16d7c8980dabb422315f7f72e1bd8295510aa341ae183631ddb207a3e1f5bceec9f5607945476b3281366ece973f67cf59ebfcda556f8a5d224b0d17615c6635c88c3399f807175dc6c5245c39332288b328f67e32d3b0ec3c98b3c5406110846ec90d42170423ee7983e25dd17d8f5e13dd8f9e94eebb66a904af59c67602e84e9ff306697addef49d975524a591fc67b027db2336723dfd3401b56d621ccc5ed399b4b6370fa8594375b6f9792ff62e68cdcfba311e3bc662b9cf56a7b7b5fb315ca5e79bb3e797b5650bfd81ff57440b83271fb9194c94229ceea7efbd0c759336f2b3eb95bb9a2c334c8dbcb6e619c5ec1640f1e84dc8d6cba3caa18c95deec61ac331e856080b6198090ccba3d16834ba5724f2a0c8527b499411b468168ae73df9558ebe925efeed54b74a2ffffb25f412abbcb2a769dba781df733657eb7e600a77c829eda093b7a7a08d991d70e66afb6ee78ee12c9c8553c21f67d1bc7931108d7838a20af228e264291ec9f247f126cbf76c40842c4701f0643906400559fe18809b2cc11c28b29c719325c699f13a4173c1c22f2db27c0ceb1730cb1f712c4bb9122405151d6409eb972ecb5779f54b29cb9851e546c674b73a6654c1c972071ae4edbbb5038efc1d62d0ad95978b3b3091b7a739378cb9b8fd87c3272e16e09531ce6ced80835fce5a79e113346be5041ade0167b6503a2b2f67a1787ce504cd4219a1c5cdb19210e6acefb7dfe1c80e39ce12fdf6a35000b3b9da503ab32500a0b9e2719600ac689411503a52c05bae58003eddb27de783bbf2ea172e6fbf72d32f356fff3ffde2e5ed5b3ef5676c01e5300b28cd0a672d2bf2d69ae5adfad4f7565eb399431166517fab3fb9feb87233ba35846bac5b2a56852a5006a2be0889d00fb1f91baf8f08e31c1737fc85480cb919c7a05bb6c730681db6c747f00e389b87e3aceb138366dd2cb4b8bd6703af8b9cd385df8361f7d767fef6370b734ec9d9dc0ef42a272537df9bdfcd97b18ea75fbcdfde5341b3c01cefa65fe46f4cb4b8fd589f8c548b3cd6d8caab09ee06a5841acb1b17ca07739c559b68d17f7b9089fa24fb6fb389d788524285750b2b0d79fb71d493a5923cf24045de7e5c79f120eb961d504ad801a75b48d9c3ac2019dc2764ee919098943d4c7fbac55f66aa850c8b0310d42d26b8e30e18276f3be0e4eddb09a095299a20834e17c0c8024a1625d2e88a42e0e7759cdd42a23b22954a264e522d28a63f1556c309eb96e75e337458a8183cc9fdb58966a170bcc2eab78e6e8d603df4029a018da35ba7ef1525b2ffd8cafd520565ef49b967ad3563fa65f7a0eab15e8e818c4e86431e553f339b8d7ef4a75f48b95f4a295138ceaa54b41803d48fe847b09fa9ea19fb0a7984030ea914c63d35eca49472ceeb33897047ef664e71bd1b0fa75f7ca494958a66d5998b6efafa2c0a6651a568e14f835e145aa05b9d6caec60643f607a259defbeb6856f7fe0fe808740bf53e1b5dbc6b8314b2ff8a57ca227cbb34845037ce52cd5c6441b354a21256a1706404cdd60a6c45b6335b2b4073d544f630e32575f08765ff512a45ba379e6ae6ac3b5365d1ac9b85afc066eb249b2b5735d12398ca8a1f2ab2ffb8325341915d2643b5ce9c85baa959340bc5029caac9664b46d05cb9ea66b6543b7365237b5035913af88b7ef44a90bd9b755d64d58eaa8967536bad32826404657fd5cd6c9966cb8467d8f48ae2f1e29b9c4af50c9b194cf40c1bd90c9b15a0192fd903ca46eae0bf029467bc4caa27de3acd5455645741390591fece9c35c3e666d1ac194ab4e8a81f2db27b3727d96ca97a4eb3d952fdcc958dec61452675703c926591e8343b05e5101e3d8f289b1aeb16f933949861e3ac0a458bf2691759fe1752a06e911447aa7a662b025ce86140e368205a948f0a75f44af5335b347a50a141f5935dc4c9336686a694afe4a37066eb5764b28766a172b2afc8724bd934a4e4f4307ec23549c4987073337448bed245b7caa59a76abc42b59fb15cdfbadc945ed6aefc94ff535b9296bdba6cd1cb8d4708529e7a13e0daf8bd5599d4dd4c5ba85add95ba5cb2fa6465f5eea1777b48634d377f9b57241a081a75b3a0781869d5e75aeb83d085cc29ee1746de84bda36dc7eb7b63fe7f39c97c5c5395bd634de54a6733ee10296a7cb64b0275c8861d36ae8922af821c47908f2595938432303636271da866b4aa552d6d2ca06efba045543685f9f46c3342e77ae3a8652217ab838e54b27587ec659b36ab25aab36b3637e3f4a15e4eeaefd1ce8bccd881ffda285c02b228d88cc6f7296e32cb5df9e17f2d022027064fa9e4b3007f5ecd10ed7e896fa230f40b074fd2dfc16ebdff036a594cec8643251e6cdcc16911924eba0279a60ef4da5fe4339b613459c90fd89cc96b5f7be86c36e9123ce15a0df2d72e61a8ea105b2af8033ce9af44be235cb489ae5ed8beb7d71bb2feef6c5e57283af8136bcdfa4c8dbfbcb6dfc660be38ea247a406ccb96ebfb836f77b5cedbccf7e714b9ffde2a2727f7145b971705f03e290200d6ebde135f4cc95e07e0fbeaa8a7ef434a21fe11a26f56be88bbe629ad1dfd1178991df3d38830bcae06a123c72fdb797dbe8b7973309e425e817d92d26902d6f7ff54be85f5e76d8610003c058860c52ae3f92b2ec72fdb1cba3bf6e5489d32d9be3b8b8fd28f4d75c6d0f6eff85eda2687b0bc695dffde82f076370b9191b3b575bcf7569c4c5cd8240481b17b7e7b02ab592dabcef7e037548d5b3b8b839cee6e1d173f2e6af0d6b458c70113fe66afbdbfd8ed9babf7d0555438c46237c71cd7c11de3157db8bfdc2fdf6446abce5527cb5fd15574c99c20517ed457bd1603418a3c81afd65a4a7c848c88c84cca1bfba657b0ade98d96297b9b86d3379858bdbf6f60cd78b27b210cb89994f9a7d5dc071d7c9f2e54b1d1ee4b7c42a51ae0d2c9594cacf148f94c5459f4f59269e92841b2cf9c2b4d6ce17b0c1670d50a4e099b47a0149a65ef022d30a851238efe33c8f73bf31229303f34310dd6e67cf15275f427eccec18d2b407a69989d93143f3b9e776055eb3b4cb36751cda8f44648cb452bebda6951a30228dfa727a8ccb66105ab26c5f95e5c759f4edb370c102345bda5b9619ce4d0accc1ed58b0e8950d9aa3cfe126db1c5ea3b1b5a304c4c12dbd9cd582429acd566bc7de1dd20cbcc11d5b50b27d9629ceb22d28ad9dd96addcc957d6b777686e818d2b76e666bf4f627776deab66eb27dee6f28bac8bded5168e78ae3b877992dedb91c6e6accfaa5a364fb2c336779b6cff2335ba7b7cf12345ba6b739e8649b434eb639e0649bc32bdb0791dcd19b5eb2cc4a380926f79328fde84f3889d39b5e364d49352fa6396195874517eddb3761d5c4456c3fd23e89d26f5f84a67dc7307159b3d6cb59fef65efba31066aeacdbf7b61f3dcdf623dc7345a3fd0c090fd13218bba4576e4b9acd9525bd6c7047d2ac6399cd957dd006b77bdb85ede2ce1e6364f025a863d60f0c475406df411c341f5193c1f7b40f0c4752067f823a6a1e93c8e07bdb07862398c1a7a00e2d8f24c8e07bf603c371cbe0d7ef4eb89f47d3cd9143d480067c02a05a0801017e9666e14a17077c7dfb1dd0b2d33145cb491b6e44680fa810284246a0bb657a04e40e1e23d06bc0d760addddd78eceea6fd39a40cc26bc007c427c4d7208efab3bbfbadb43695923d061183006df47b7707c4679d45db06f1cd2999745b7b459b10df74d15c736eda9c9b36a70c1d60d2519a210d3122e23e40244310008bf822e0ede8787012b013486d52ba340ad40a500b4c1f7e010c7cee847bb3fb6ba90c984a27aae3f319298998335f38803a04119f3be17e1efdbd077c4ec325a11c0faef42f420bf5005622014273cad8eb091abc9ea001ce946dd081fc4ac5ed9799e51be0f2f44b5321cb6f14b8f4162e2e6775142a76b27c1f7e989152b29cde29f95245b26409d331977651e9977e7a04ef5b76db5058f6c108978bf27ff4531c36fee1a3868bd29fa6e1fa98e9ee87e99e8e53a97f5174c96d81281964ed5ae70db31bf9b5ed671fd02d38c0ba80b9cbdbb2ab48ad1021251fe0793265ba2ebac440706f06e1fabb8b0e84ebb56b7d59173feeb5afe94e5088995d247d895d72b4fcc63554392a0d771717678d1cb248c6345c94357cfa47f70d3a51806479be1141a6d08323f306316383f10169a1446ed934545fe2c9633f1982cf0f07721a2e35445d90954a40424070849318bd3f38ea44a2f0617c04b608c8f3b80fefc800c08ff2755532c75b51dd20c3fb388e030ae2f430be8543cc1f7d0d85cc15a59f040eff0f86490020041f87a33064a21aa2f4e017017af8beaa0b01200c3d0e458f43c88486f43233a09006433bba2f7923c445ca94ecf04cc81352bfeb42a11b5ef53633fe7ec78442101cbd082741fa1109ab86207de8dd55dce8fd479f4409ab3a4c43faf924acaa1889238090a447c246f733a4577158550418c235425af08420c48cbe8493604233027f3ef8cd914221d2898bdc0d61ea67842a2f2334fd4a18e35521ea6f787a8b7a1b953ffd36b2aa8e89f13636a9b7413df83264628472074c993ac6540a3b665492b921919b1048295529c2b94905df6732adacb0d430c257f25d6eab7f80fdcc14fbd879cdc005ee3a51c8a3ad578802852993562d48f901ab0c63ce4927a519c89c5389a741c4f3d9adcd73c75cf9d8341f3b3b66cb637ec3736c1f2aa9b8422c2bb10fe3d6e21a12c45499c6a3cd60ca6e9cfbddb37b9129e5143cebac395d5c6c4d56fc2ef6d35aab74d1c54ea5aced39038f03d773539186236e9e38158b1dd982932dccd6607dd2aa6dd6725bf0e44b0d09207404a142e4f0973afc657d9beb77eeeb02425d6aa880f0ef6f0ce469ed6c816eca44e7bc1746e54c1254851a74a200c3070b23582c916a903e69d536cb040f0798e5378bf414f70407722f64dd3fb03db86edd65bc168f293937dfdcb9a741feb2e93eaeb08613dc08677576723bf76bd626e17a1e5359bba6d47cd52578f2fc5f71710ac9d2666e0b6e0bdf3eba73b76fe3beaf5792a97ce955b08c1255f49c3c947a967bf73894bbe7ce7134a33009508f42bd877a31a9b5864ab29294928f8b53baa57e050dddc7c529257fe722a752f74e1e899d1bb9fb153e778a879d0b320079512ac9365b92894422d168ca666be27053e63f2e92be2fa52529259fd294d28c0b67cdd3cf9166bb71b2b99ae1944d1f5bfa51e2e933a54c9cd98af1a907f16855fef380662b064e59ab726f8a3e29aca25759e855e75149b679494a4c892af2c5a34fc9d49d704b3fbf246b3cda3c45ea8ee8cbde42779c197aaf6e719ddbe2ca10769c6e992f0a65ae200e2b4b325bf2294971310cb7442514a3c4e1b4b8634391a78eeebff73c09fe68bdb0411ca0d4413e8c4ff0c6873dcfc52493889b5289e28699c3938a6e995490ab394517f2fc89853cbf5b7eee387964539667fbe4994d9c557fbcf34b3267694690c114ba90e797a4784b74295de1a529252ef22c7971670a068e3339e93860b8edfe62e1b99eda028a2459cc4d052af0e41047560f94d4ce4fc659333945fecc96e9bb5f7a21832418fe7296cd8d4c02c539d758c01ab97dc8fd9fb7bc2714763a5d926e67aee693c28ee70bbb265dcf0d3f32da24dc8d85d92736d6335b160a900f3f357c46c37d58642b3187e5ae0968a3e371b103f2efebf5caf20a57620ed643916c3c1d4f179bad8ea7ebe960dd1367755f553215149d3f059dc040d97813b4d1fd8ce26a4fa9e704141f99135078e8f4d04882acca117ef61424672e004322e09135e4387a0a5241715156f18ff539ac82e2e294d51f55b12ace5a863baa62a3d07b5015e351c554326775941acbbee32c0fcfaf3167c93c06a932ef0bef4e78935c9d1cdcd0fc19e5ca9875cb7c15acb3c8df8bc00e07301ca5f74adffdbe31fa9fec78940f7ee7d289141e21db904ba3100729df534eb74c5118a4ca3a1f9e3cffea382b8455b19bc459209e7f779cf56195c42a281e56c95cbcc11d4faa18ea46ba6c8b3ca2704e4153763e794a717136f103946b56c59c357652f2fc39aa622a28f34f41ce7a39ab9bf8e93192e77ca05ca584dad75cb967f1e2a25e27306e6e27abb22231a9b733362830bd8c47810927c1443504ea4d4f83ea98d3178931e11a2612d3a83e856b2eca76d97e85d558bf68d9aa7c8c0a9425ea5742d59b422652e5694cafa2f2266cfa18b826c69bb08c540af5a9979866e555d8f4354c6866bc09d730510d617ad4d730915f63c2d235e365d41a24810c34f0818914d3ae2e8310bc5842921b08a109308c1d931176cc8c95b0633a4615768c0c263429155c93c23ef9c75ca17c543ef5a63f0599708d0e5768a20d3129ac92a850d531a8d7090c17b71f4f41a6254bc474cc29c87988e990dcf1f4da7ba72067d53c9fce36b4e114e42cb90025a69aa926abed7130bc65fa59fb85fed4825e61f2640d7146beb2062fe8641b0029739871d13e8d8b2a1c23727a48756324bc318293ed872f17ed8311beb2e5429bfc04f75686c7aa745c74ce393cbbebb752c072cdb152964267098fd834dddc6fc37b1caab8c7df31e1778cf704f881ae264ec8c064dd7bce2119925fa9d8c1d32f33b295cd160d1f974ff7a36b96edbb520d0bd1eac50d6197ab898b4df088d93b65785c4cc395e9c1324d5ca45edcb163f40cee842b7385e50e8faa1ba42ce3a54ede7ab20c0f0c099a471a3ea1ef1e947922237c6524e677aa1c24d93e9824dbffba300a17b9aa7272b22948c593ed47794d21fc0089b94427db22fe314ec2f4ef6112b06c1f87ef9c70c3affef8515024a67e18aafce9a3a0484c385b2a7fcdd5a31a22fced69c2af61e298a6be866bf057ed6be88758e5df31db1789b1306ecaf0d8f0bbf7d08677ae6cc5e2be85d589c78ec5b295e1b121c5189b6ee6ca36e18ea52050278fda4e2c0cb3990ca6240c3df5073b4a7cc68a06847fc20f710dc5da4f91181c6e387365c370bb992b5b5ad23d576a62bb2ff5cc1961a9a7e4a404735667988ba552d8fd8c902b2df1962c357156979694784a4d5cb4fe26530ad528193fdaec6109c845fbda4f29a6fd684025990624e6928fb7020bc34b4a1b749c3359f13cefbd04149bad8e9121c325e3b39092c5935177c3ec6eb8a11b808e17528271c3ec960841b32ba78237c4ecca7151ca1d8ea3feb9411b5e4122c2d881c1f51831bebda5819bb9b21fe3bd60e35fb784db29e18e2e1e0ddc88d95f0337a9b79e4a3dd75eb8b9b1ca8e5d3c2ef6dc0700edec34e1880883870b8908a34912707cee3b1a1161347191e5bfa3c3794484a1e32cc799883078463bde92e1c9448491c40b2337b70c0760e429a18fc2e07aa5584f4c45133e7e1ce2926caeec1789b1df4c6e916c9f883096709c874484c1e3626722c2683293e838d8724444183d2e3611612421220c1da9e36267581e69f8f0d8e91799c55c0a7368f8f40bf7de13f22873b285c11dbb0e78b01bde831eae80e1e8bff2321c87c0b2e3209e8fb3c41e71b3e3e6e4729839a1748a2bb27d19294662665cd89f1da7ba41ca9fea3b07e1e484f4c4f4f65d509c2595c0cc192baa70dc62d9be8c70bc792cc5b2fd100d9f6c3f464eb69f0a91a059254482a2c251833236cc1496c271cbc97647ce937ed96e7a7e4a4b341d7712339678b617098f5ad0288e204eb6ff336e3bd97e69c7590d9bad077b9cd5f68af0989239946c419f6c4770464dafd92ac5e6ca7a8c2d996eb2fd23618e8ef70415747a9c3c41c50d19f90805e4ee16171217ed1355b07942ca1450021acf2ccf54d95ce9905d392e5a241506c406864c5d740fd6851c2c82b8d9d2768864f7d9a25fbf628d8786628d08115c297fdfa08eeeb92e7fb8bbc5c3d1f3c9dc77f6f552220ff1543e62011c56d5ec2e24ae9c59935cb30c0face789e9a614647acd8e94824a415e6fe0766c0b29d99f0bbde7e1ca712171d67cfbda8ec6f384478f066e9ce5c9e7debe068c386b6220f23de4e1c45920e6d104873466210d9f90c78e8b96c71217ed7b0de2f87090b2103947b86329a8023c5d939b00a07e01d2bd0a082e3b2c8f6d452cf470ba651ae172ef9d116e277dd2aa592ec4716ff30882ccbdb6d32f5cb6aff1f44bcdf63d9c0af0f48be7652b62d97a39640e8f413c589eef599b67d8d9431e49421e3b3c96c4b6e8b12289153b309926b12d72381e497834e178ecf05842c387c60cecbe2bc2b5d1c57a5a8a17157eb28d72e50d528ea293ed874247cc0fdc9003aad5a8646c35b649cf3a452302000000002314002028140c07850291583820d372c97b14000e95b84c78509aa6418e420819420c210480801400080082242000ed460c1557c01823b0274cfec8d6bb4210c10feba7c12133c615b1697697a1c29201d99010dd3f4e3ad71c975248459cc97d75efed2daea1cb2dae7d7d466dd6412caadeec13ec89a2963a80f529647bbcc329bec944c6747f5402bf8b859ecea591a4085f36250f89c3dec3392edbf0c3c64a642607e2568a6504f50af80e848d3854daadd8406f52c25302981f9fd0c7de7bf88f500157378265063ef95810587528b23ff0005c9a86a71c84bf012d02bb327dff905171637cba761c354758ca6d22ab3780935d3b958b9de8f912946e7e776ca878e7d6a951c3ecefcc13aa3440dc35f945d18329be9b77f64277ed9cf6bf2e65d927936c62bea924f7290273267c06d42b6a4c9439313c6470b11c88abf0c4353ecab9a540064ca099ecec1ba18ee52fc39bb76ac4ec1e42a62b7addd9c8adab28d162b525b4570e6e828c0203fba3b1897cb17978870f5c609896e28a030cb98a65387b9e47b82fbb9313c37841eca5d74afc05d5ae516bf96903667ba5698fc7e9adfc722242d523359a5b10e47710dbe1e889e8e681ef7ca565308398f1f5ca402b6d69241309c7dd85a8058b8d3a1a4a5d618809dc286f45d00ed9ad2e3ca9733d31c9d6cb4bd961362c09c25567438bbb0df92137cc1841713794b818521d302445731bb9df9f78cc61e7ade1c36746bbf06fe016bd8d049923101763684337939708afe0a6393142d2e18e3c3ccf421e44d090c2358c066715fc72f5b1cf81e1252eb076c4c684453bbc50ca3808282f7b15b7224f396cb72cb10cdbc4dd99292d838940a9997ba423286b43245a695540595a08930aa54bd79c20a91bf849dd907e1454f72fc70104d9aacac94e92f89b120e4418802dea23978385f11edd0aca405b22171d1a2ed0292909e7e117486ab7c5a024c0c354677ee50e95d0e0a7406e30885704d1fa4964ded229032fc01aa461b03aef06f297267b873e9db03a1efc9ecf6cf12bd245ca9fbee57f993e4b8e995571f450f7a03984b642758a4c6121a0eef9ac91aaa5e5c9ba71adb3766806c1667b01c853bcc2714c093ed127b461561823b5bc91fdf3f15fcfe99163f1eed76a3b72c4d37cca53b3a66ae0c7e2f3150568345fc796336a88a87b5fadc9cb9b6e855bce45f08adf27e0fbcb396d0d0d2744ba05367e7a3cdb371277971d5b93a4053bf248c626ac25cd81301843d53b788c923c39fd188f587aea00c0d0a235c1568e88a9d3811b22a2b3b709d39d07d3d69eaecbc3838c0e3c32ccdbbbb61a0bb89075ee9c798b34b98bedf1a134a8bc87151b3f1a3fa51e79b37007340e4a68397e264550dc7406d578da7c5a76bd4ac09a860fd0065d681ef832229649474b3eddceef6b3ec24c9eaa6426ae356cd4162d955c2add8eb648016941e6c8615cc4fa4dbb6dfe83313f252bd26c40fd545da38dd1c1d375049412b84371b96dab5c58572c894f12d78aa7ff9a8796e1fc1b5258c290816c4aed526c1c60491e5342cc9bb9e3dbaaf4342b584d0928b47e8b9be73862c92631ba2093cda469121ba0243d1134976e4a29ed09271f33fc0dfd3e9e9ab836f91deca64aec52b5758cc3f41a0a95bdbf966cfa83d8fbc24b1eb580d6d0d1c13c170bdbeaf1e40cce72b3e4214d8a86b2ba8d897c3e1b2b19084b5cbdaf02b8f014ed154d44c924ba8c5d7489883fda4d576d9210d47ab2790f3d93acc5100833a48419f4bcadce571ec461a4f623e267b27a8f66849ee7f105c3753f0e89d101a4840ada8a939cb2c770d8e7f71717918d11f99d67463fce251cbd6e54a2376b491503249a8e6eb255d77e87417e4d7be4220e8379f0f404fc368ffc8c65e77e3ca27ae603b7f87c6c80c7a970c04117a558e8bd203a2a6ae81a25b845b4c8b573aadc40a85ad60424667ad5351dd3216b6984ececbe3c6dd3d82710d56f5c925f6f03401f9db416b2c9ef646c3ff7e699581e091a077315eb2d27e78214409fb244b7b28762deddacd0558e175363f67bec1dda4988a3509305a947c7493a607871a9f7f737ae4dfbc056642de8e6b58148bf3e9a737c0a2843bd1fc905254470da00afb3fab05f54c7465582460bfee68b9dde8ffcd13d1681828da58643eb1f378a36a09f7e3f3f781aee05b22c353171de5f6178bf3f6681002497096cd7f90f8e2f0b094a09399cf86745d106d015a4397e0504da659246fb0d4bd2061d88c678d6808bfe3c60b4de79191e83e505cc2fd10340b947c712c027ed5fea27b2d2ca9db60ad188f1bce6c003275fee3f91302f5f1cdbf4fe7f7ce0fbf2bf47d806640848a63642f52e4daf762460401b0df3e37fc820eba24a0acae95c587e3f74201185d6466c1c3f7ec17620d07cfb7c0aba034b3f7e5bddd56982b305ba269029205abf27b1240dd820e848fd9f42d659717b12da43f4affe5476ec01e949ca152467aba3458c395ea076e81f3957d46e53e3b98cfe1dc041054a62f89f8b4998a80b01bb5d3685e558a205807f9b0d45ffb263e20fa3d56f82b2f96e96516f7eab81309dd9c7268f0b2ce33533401f794a25bf308a7a3acf2945a2b9f32efdcf59fa778f93bfec3f273dfb6fb72945ed2770026f80e834f50f855afa5f7763dcefba6b606967ed7adcff260c541797febca252c0e49c2070388cb1e161fed108976f6bc29876a75f194d038436325a54291802383e30924ff3f1e76b963637d0d767bec43c7168498b636a35915ac7a5b3f16b4dae51820f4023cae01d37f4fbea4131218d37e250cb2913f22f23bedef3d6c6e748ad8a086df2af4793441e93d0012c31f7fb32e849e303b012039b0ab2ff5a329756117d3650821a31fc8fd0562316393f06d058869d2f643e27bc4fe587da5052df12a643401ac4679f9376f7cd62ff43da33559e1595379ef9a9ec96eab84f7d5ec6a6a2f06ac8967b96e7985375112576c03c32954d87bc982738add02c15a16d0d1fd4fcecd2b2b2f4e912bfe1fa4fc0596b2479ce7af4de19632e951021f893f22cd7f1fda69c51796d2366192f44cc0eac8dbb55bd23d7683c2c89a929081b702b4d8066e8877a95ca3f7161e4cedcd3db5fe4929bdcd3be4cf908fa289c48ef80bcc32b5972510f309823b34ec98b4ecc22f49abfb49187aea2798da5d71c503f640e92501cf59d62f752934c65f3b2ceb42f7bbff3821e8e8ec9b9102b82385539adcc8c6ba8c668da6a1ae748944e2c02281ac0dc56d28c5f0a921307f5101d495c26bfb2e58c5618ce5b7ec3a9502cc554bca0649ce2811c875645624ec72eeb1932916f0568cd5894d9347f03f25e50a03ef6b72dc2ea81d03cde786bd529191df16971ce28418a115d952cec3e099d7a8e4e6f417b12a53907495c9436f825c697f35454436782b4332849b9381ee15eaafad9ea57a4a229983b6596580e031b70d241d90d6c14eb604a9e962ccc2d2be5bdf05b9632bc5c2eb4cf0996dbdde8459675caf51a2efd58570bc3b9a3a3d1ae43a158efddf4620529dcfaa312ac282e71c52cb106027e008080d2847e803b006a6383c71b5cf6e09c6e084469027f5dc04569d5b699b8efe651194ea89018e7bef75d21c72e242ba36bc1c38ea6c63dc25326508c2ccd950962dd5ce665dcc663d40c5ce9874426842e5c78f290aff0128eb25d0492c5854eead499b658f744326c99432010c84cefeeadd237d6e6bf944f90e312d0f74b0a1dc144a89dfdc27bc90c76f39d07eb05bae73f1a2c0bf66b8fcff05ee4edd31a03b9f47e1d037ad57ae2ecd50f96b642b18b23e6c59ae1e102fce1475a933d5cdd54911a9bec4040c9b89f0e7e3e28bf60898475e62e989fb334e6562d1a0428b06e018f24d37733382783f066053018a869f8409d387ac04054e7c02efc515e1e1e5766f241503a13c7b7acda68560035a7ed2c102a8c8a07cbe93d3600ad6619818b82b537f3ddec44b29f40ec3ee360ba40411f29ae0ec5a6d389803de0409105567430b204abdafc14fc1a3caa89786eabcade22252fc0a4fb5e358b7f72837d623a59b82159c3c79fec18a845bf73cf5930fafc1d835bbd0c96ee3ecd656bef9e505b85f9ff479d8b2cc0e08581a816a8a759018c0bf0ac0d5b715f8f2428f4cb720ebc2065300c88649d1106e2ee19131b59acfbc2fac6ee348a649824174ac9b499e819077f67ac9a1a5edd4ad70a5af5fa417eca9acd3e93798e44ee27a807e60b998bef8f18895c315dee690783105e3a57ff083a88e3bf982020c9d08f1a895ce6941ea4a7479e769ec34b7fa1276535d3b7a98fc9f6da8d440e59cff822874d0a261a54065e1532123995fbe8031a75d83d6c60bda2837ddbf591c8159b65b142a1b15d39d5db55dda0a27b7254dc407708e17e9a11b62301381239dc2226de08346d4ff1ad857f8d66156e307de6aa8d828ddcb63d89ca68358aa03c08440c507224f2bbace01dd5448c077717e4fe420fa6d14209bd8fb0b967f6656643779825d5c0c7416e14e0350c28e40a141d8d1e0fbad99746cc9d555eea4ce33f0889ffea99360be01ee4d39040285f4bc4c239c787af62ee0007abc11d26975b5d8cbe8d80f06956bb8a1a06b8341df49b88935a70e731ab1499f8d8cc5eae73591034002e4ea559251a91f77d9040e02fed6058d4a854c380704ba7a0a13056c288dc136ff916670b6843ca2848e7d0984d8546e5eb1d52db96a904bd0c2b20afb48206ef75a529e4bdac8cf52d7525e7276244de0a884a2427eeda2d4443d2687b780624e92d135ae66e5b3751e8b92673db0c201faae8bb5bb142b42e600e57ff760f02e043220726419b8a43a3fd29304c39524f38dfabeba02ec00320f1375212926ccc29817f8386cb6954ad9ae096695cd83ec8e8fb7e01ec6c23540134f7b82f901ea51b3b317adce3d23f32159992e149a08c5f604b3895a4ad758b35f2e1b6000bdcd9d7fece07fa86513bba048c941d66bf5aed5f9661e22c8f9c9733c69f9e0c610b37dadd9995ee02b444aa7d51f1c60b23e4b347dfd2e5c47d96e9155182a1e3a8609ede1a5a80d81e97b0b1cd942ea42f7936718bf91dafcdd58a8375ac53034a96c49505422c875eff38974ccfc424f5447e1fc854979ceb36256cd046c3588eb7078d7abc7071fc764fb151c29fbfd5a6794c207c61c5bea12cdab930ada768c8139331d94d52f6011e46ba2bd455c057e0c5327ba955a9b689f4b52000aa36b7478cb799fa0fd0937c85d80892e64c9f4ea57ca88cf24802cd8e1f0f7b05d89afd854e0ae382ec00901c6faf4b71009834decb65a76207583ebf0a099bd1469f43afb278df23c8d09502e816611ba486f6e8d3e5ead3b015382ab52bab6077a7372fce5302e4ada8d91e46692a194faeccd993a64dd9b19d4a6214ec2721419c63f80df295ebdb6989063b0a62c29a026312c62a1193c29bb03c18102858ad8951fb5476a01b889d3671c5a3c317091e064bf8d173c699b2ed842e1dd5041cfd80bd35d5198938efdd9444f6a834e94d2c5065cb975e93dd82d71b583fdac7cdfee0022647ee5023624e7a40c7ca2c9ce535f04c209bf9bf7a7e37996801aa32113bcda8a142ba4773e01469360277f061949d0a3fd46afe2b7d4c6b240e94e59bf324bf6160661db87bf8ed7ecbac521b0106d8dd812289addbaca5df5eded55f182827ceaf96707611b6898c198b3b8f3953678d75f1d8fa383f9a6f8c51b228aba84d382498879fd74454c4052eaabfd1cf717e0385f4f7797386776a5505a936370b87ece745e43966bb51d46fdffb5fa86c856bab625561813ae868d860652c04358be0613d831a958a7f4ee54d52beb67720d1255bb5ebb4046bd0494f51ceeac173e36a2e59666dc651e22fbea91c546b1a1a528d770fc63b5cb7d6f004a74f31c3d8021938ff56c8fea297a0db2a16b779b9474343f594f9eba7fbbc04484c1fd7b8974a5c235609131dbe4c89cd0e438dcd5e4d0bc355fa0f152ea4e281274d798bd059a6ef262e26fe5f628e09b60348c2c910833d036a6a9d026e85bec5e0ba35c9599482a24903a1b351961e4defa3048486957b365ae4a8f668c4971f653aed93f91036eb6eaf42fcb7a0886cbd6f6a92ac7c0a805289e62f7a1a6c9cf4a2936d85c1d48c7898d5a21a935bd1c7d0b628f505970fddcc5a0fe26b62af2423bd1340ab5af6df13ba74c7b962df4bef3299a4b4292faacf657c642c16b5ea6f8bdde4082749020e3844f5a0383e4cb27484e471a1ec0d7dff1360b7f860f4853ffc4a26a52e2b5672fb4da148b45a4987c61d490017c283e94ebc2a91b5b555a101de18509c4f09669d25a3bfd56c6a0e195fd2ef8bac45b3c7f2edc1187ce08da46795d4469e724f19351fd0edc907c7893f9f4f7f4d9842292e3e6aa994ecbe9f3e6072f91d2d37c6752954008bcac98a517f6ecb7d871acdc63156ca36c82a43e5c1f1bf4730c8740e4431fe89f62292c9e240ad7b0cf59e4265c10871ed4e9a1dfc0a2b3eb14a659157df93ad5739c582b36eaf37307e0a9e3de06ebbdc456b245c1eeccd4f6e6134c79a36d0bf5d66e71152829cfa17628ecda3a64347c7d1d54423f9d4f5a01aed9b2a1b06556746620a7ad149cef0e124121fcbed70dc64504e384fcc94195236862566c720a4cd87be421f2ff829adbde6b510f222e313482ba742451272d66207682d003818b568d6d239b4beb2510506dcf4c385f481d8b7047cace1b470a9156bfe9a562883dfce887e9b26d4c32763a1c737523e2e4ad4cc729d09efcdadd511c786b022c580117902f5225cc8bb2a84fed16ca19b7da6c56d71ea603818694b8a31468d227c1af44362f9c323400967df20a1adddac65e4273294cce44ea712dfbcabd1b6fb46cfa168149f40e6274ce69cd5eab5b7c301f30a243d2cfb33c5872e8f68b5c23c97e6de4942e76dfb9d5e81bf365a475ced7b4afa735cce12d0c1f9e7a69a4bf8d00fc7fc7aa83d56fe834ebb03a0a40ef54ceb07fb0a7a79dc924d42c6261b8c5822274367d29225739dbff839802775c05eaa60849cc6a14a2999a33f0d84e2231e68bf9258503795eeec2fbcf4fa5203effe04f8318135167fa229793b5a734bf82e7b561d989000348b1b1533bbce2551820d5f0efc1d00dbe24474e0c221ac1edc84dc0825fba9c53ffd0ceed03c8bf93ac2eb872c2996839f07c55ce1b9c17167e6795b620fbb91604438703fb413158952d09f4e578b3b19c3e5b0d2ec9735543a7c25cdc8da3a60eb31128afafff6486906e8d40311dcc7aad93421b7621d0c2be94ce560de844da5e08dc3cbd31950134c8f48c3afd41900e7171014532affe0f07e4c1999f9220c55d7b4fe78064c66d5e3a29ecfd3f639d6cf64d32a54e4ad9d8759aad96603520bdc96d694406ff20f2bdae88b407a520a9592cb4a452d50d4fee17ed90daa3e95d68df745deefc984cab610d98d0442066e6fdeb552d34a1a4798e6a32140bf0a4635d92f688b566d98d4681f9150e3ef3b2b2bc7c6a725d5caaa6c74465460574b606ad4d8357b43d1a1fe616be7c46f304fa373f66bfa1a07bd3e6a797cce7753cce1e92d4c4e957783449de2f142256940be30b55fb8ee31f848a1d861bc3685704f6eb00cdc36072c2dd67b5b1f44886db566736807ad177e38d2d6400335b549f4d34616e4e5852f2de0887d65f4d9fcffffcff2e3b30bec5924982c0df19ef3d5a02eaa377fe4602b7e9056c2d82851f367c95197c24996f15d705b0ace6387a29aac096176492f492d6af3b002c8ac54b0a16d98dfe669ff51c61dbc094ddaa7210fa8a6f6bb264db414af437bdb8b95e7d83aec4908f144275f8f807531c3c59025dc936038a08f91d8f3b34a004eb3edeb37f1d1fab7e985dc067473dc10dc456549e67b8ceaab8555458b7a41008198030a58b2b2d111a75a52e03e1722a8e9a8cb59756827bf236d8e10ee2aaab7bbc1f3fa8d46af0b105f631666511ad1d01668a27a80569e3113fd9dce704461f7142c6f44dec9e2b3af8e3ecca03eafaaa92ca545136cea4f4f6612da3830635b5927535f6d2fbdac359189c7016801f83fec05898d44abdeb364bdbb2c63e3a17c1a36603d5009319c429eb653c519f0eb4d53d9d01459ced4e3cb967f489653e26ddee72de0a6013a2ed9be95a23a4e1e41f0ea1fbb566aa282e6eab66b30aead1d68f4192d53662364c4e121104778dfca5da50ceef771fe8f468b4114c304ec5be87ac9e7822cc408eb0188eeb87f5ee821e01c6d60ef1bf46eb896a8774ae15ecb80de434f0be1b74c10050d66b9bad7031d0bbb1fef3ddf429ed9fe6332bca5166497a914baefbe97c3de99c2298600ba7607c82af23451f4f46d4ce107d443f29f5f746301fd97fa90fab87db6fb2f2a3d1339f12fa49f3b9d035fef1849da61b2fa945c7a3b3528c8dd3e5b33d33ec9f90ffb031b65252fa1242d9d7200dd1600cc50d13840b02b9a7a44947631229fd211992d8b83c665d463801ee8e3139de6f6cb3bd704bd7d1cc04744b12aff5591e3ed2fbb39dd302a1718341e60868e1e20068afbe0d676e62a090fe5459e1242c144e5fad78dc5cafb95b8fed08d81a06cd3abdce9901f62d243d1a220ea8b7dc805d693c1e1df341515f1276f48e8382f209b935301a4effac233dbce1f620833f8afd354c3da203d988983ce2676808e36daa13dbc5d5b4198b28d5f357219fec323e1f104c3f66e821a057067a10263df1ad76e2b1cd0eef471ac3873fadaee3c95f89aa27a33e623d29350dccb3a00777de608973eb84569c26637df5c495d9faa04482c02f1f12c7e340e5e683c2f6e8e139710db85ec46e5b503edeb0890686b104ea00957663d81d9204799ec0deb4d2e36f04d351f6375fcb8e90679e77766d0a069f4dea50dd9314cd3bb175adc213fdb6ca039d517ad2b4184eed28eca321e760a5692046376dc18807389034989c349f381ee0f986bdf55636a7506b108142afaf9bc2f629a120229e0c7b98f95d0410f46c6c63b14c8de172d0441cd1bb68ebb226f22c57afea6458a1d5cc05e56a0b2a066313a7b3740c969ee51ce5d4ffac581a63c282b4dc7a558c7eb0f2fd10387074b2b93cf69224aa28f4a7ff9036558577e7a605f1456df51641f71911879fc3c1d0f15560ac5585a2a6e09c9e43e2bd9aa3a035225f9ec147ef20ab91abff3a30a39d1a96096f1aa9571b71e036b4f20167e6d7407b6cbf5690630eed6335e53cc2e235e2654bb62e8cadeec90a1e348e6292a5a1107582c86f9819619231e115d55014db8ebb71f7303d5c27943164590406b460983598aa4318235e2bedef92636f63fd6d99a5af3bce75fe7eac5c825f9f7bbb3e473ae1c331242caa62da81d851d3727a14d326ac0d9ecac123a33b769b3ef8b76ed3a676e24f91a70cb0df9d024d92f739643ba03e38587f6c69bd9dbacb26c1f1fea01f04368c6a409896e52389c12f2349d5cfccb551e3c9c83cbadb7e7e2acc9359880b5bca87c2010c23ca4ccfb5851028c38da63d8a863c521c995f6bba7150c993cb7754c9fa753e35d3254cdf1b9abe52bbb4e9fb9a47e6530ecf0a14a356e9d6901fb89103b9d7ab817f72335ffa9915f76a221ad6f787ac9b519e4e129ba2efc434356ec49b0804427215a623b7dc8b8da3f1ed3d661bee62a0ed930c68d43faacfc482690b05bf87d932b38611b6788e28e42247a1101278be0beb1a63c726f85f6f0ea016b7f9cc4d459e69e3631dca0fc596fc528afb5f147f249ee3a8cf39081c1df336c958f3eb2375b9eb709151f1e10de6ca2afb2b67912d50b7b7855d44fa6df86ae1a562872576ef2056b813d993ca7ff20d4649a40c298cf34e248d4fcd3566f418949182019971660a98c8770a1ee4c68bc5c69fc97adecbf8f49e2bb218fe2db8d80b2b6dd0be327b8438dda147d5bcc9a2118cbe4312743694a8f06b8325f4c40d253734b4cc560b3563703c9c6a505534eb1902ff29d2349614d4c9f8f56ce0075e6ee5202ca8bc85d968255d215f5a30991d0e93bdc89ebbc1f86b4f18ba36b53be2b631a2994535d2419a966ada47bc33d71f2c1197e466380d124c9cd35869112a732222ded64e1ee6f43d21d87096c484aa24d727824e09bb873b463f7e543b1e43fcf41e67731167943c0530df45c072d57fe85f1dc39a6cad2c74cce248dd3add28d473f41a6d2e57f5ba0fbd6957ce78db70bc89c3abc1390e95050e7e242f8e25e399b2a48c141d0c80d4a740f2733e1c1c9c6d28eb3b3ff4c7cdfd7e15ede4379c6ab8f06276b6f170f68cfeaffde3023cf4c3d8d091a21f3dfa85d815fa346554abe3907c35aa08f7ef60f027fb7c6c508496f4aa66501b5990107cb4dab0d0dc4383e4c607cb2dbf425004612008d569880d62d53b8f7ed118c79a8a0f69629de131a8a6dc76c8d3903d833be151bbac5b731178fbf0f4f050a5824f98ebaaf834b4aade44682ec1e2696a1265c21bfffc69f64c6bf04d7c8c5cdefcbbea433a152f585a2d75943bf5262324b56206bcaddfcababac166d25dc12da261fd78b12d37f5b0f13c279ed84e1469593da0b82f01bc81e0ac5461723bd974f482f668f97284c5aa7db6425add3118f24ad13b1124357639a4b1b675c120934862c89e051fb9db8e3d6d1d3c6e23d79f9fba0d6fcd2235610d5078180be51f2e60c1da4016107ba12262454c08b5418ab6562fe0669f5ede59d7c36358ba3d683898bbdd7e233d89af60a294c0d3211615abf9dd3e659122414cd9d97748f56c9e7efc26ee22cf7ce1a3091b0f743eea1c820a8854a279a55865d9475ed4044f51301a96f57f88d62fe34e1891fd75ea0dcf8be3e10c53e1322c105bd316c9827675a511762f5ebbb006ba6161f2672708c2a692a10c2203413eba5fea8a5da22d5277935602e5d0046c78e47db2cbc3955c657652ddf61b83d6e1b6cb3b71e84c22d8517914d72260fd205f975683a6256bf19cd90868d4842a5efdc64cef019961ac79e85fae69374dd7c03d5820f3b7b62bf7f7bac57b8a79948fb41ec0442b925f298fa7a20d578864f69721125bb39fb3f3b0fed1d3c1faa2a499122f9aed297caa4809e2c66ef66c187b6fa8f940ec9bec3e1554ca2aef2bd6930f000315770c695a85454704e5f8efd155468bc02a19566ab2ec9a823a3b7caed38da1b522c66f95e2c7f66ea0d2d8df06f9b83fc3483d666b2a9a6c96385f475294e4aa72dd8009f667d34391cc4520281e1b164def2d0e88cdc6dd9e041329c6ee6e9eaaa714098ad2738eb45de231ad8f3a1c65084216a9903ae6bb6e5839e98af2e5bb32dcef0b17ef22300c619016cf3faa209783acaa755d0da80c5d31b124bd4140734f7cf4bea7fb07c9068c28e2c81ad94a909ebd270e98c7621a5922aca6a6bcd979cb54e5bfacbf5029585f05e3a56005acef42c59f506b62229e0bc6214acee6e0310ece9b3c9b8142056bde0737a88d0af6c5c17787b70456191ad312e4be8fe8b52fab9277edab27238a93c68d5e8747e8e2d310551722f4367536e89fab646057e5183054188811618f992d85147a6f169654da99fd0ea010b14f8e22c928478764732c869cbb695d5b502a49bbea25bd27e07d92be09b44d84853c3a37506386150103243c35807d9dfb03515ad2cd7b381d7457533473859268bc0794939e3bf945715066da873c428fc286dff5e3aef4920f0de312d38cc82ae6b76c75cc1437d71356daee2233e88ae4c1ab8cb4d952f07ace30890946cbc4c6282d66f41874aa86bb813ed5e64127222f7062a0408e8936dca8eb8805cc4b6f0fc800a7ab395b3b3d774242755676d76615a6d919b91155f625091f48d68b6ce99e479fd1d5bd1356e61c5040b435a827604e08701f42bf0722df74a883e6f5a51bf97b893fe1f732dd08faa908b8f47a2c24fe5cf96fd1f4ff9a7c9bce873d253e100c8da8d764f78a04378f1d4b9b8fb2bdb6737ab004fe2036b47285f653095b3b41cd99811da5083744e849b81a42fb69890dd107a175e5f9efa8c5804b6b4ee6c8c8fee5ca2b38863d95a34e5e4f7910fcedb64d8ef30933c5dff878e47c2149637a7381e6a303bd38910ea639db4f78cbe7c5acbe8434c4eea53a2a6ef3f98e0c436dc85a45e399270d622411f18f60d10179a8b43432867ceea7a41b2bebd1fa608e6bbf8deb3aacac083b7c9cb5499aa2f8a0e9aa31987aae36f1abe4b7601ff640a49925945364754a6b2cbee4867af37439b08a70e82e200619c3b6d34c1620b9d01213fefb245423af422484f3b517130d82825e836da6f7f6e7bc541a0141813a01c3535f418bfd682fb1b4d1773f53bd78865ab031aaaf463794c575867bd5663f969ff27137a20b71be552a8bec917dd8960a1993182a89ac75ac8ffb002759c1d20f2283d13645dfb3e06d5acc3bd272ae9d408829a52cf227a99da8f0aba9c97ec1223e4b40ed2b6b13a9ad101ee2bdfc82ba7a64fabcfc0a907d6cf78986cb7aab9c75245f3af14be5d0207f6df22e1a5c4c78fb392aaf6781843fb8d60b5191ab82c9f2824108e761d1c2949ba310d324b2e9db0ac4c32abf7388423db3f546942e1fc81d62e288b74ab4241c438d55c5799a3adc5eebd45e8ad299c66555c584faa208ca6f9a1f02d78a96532f1ddd1eabc46f6f41e96703f5ddaaafc5e80b183e009f8ca771261924d0ad5dc1da753b15fab43ba0eb2a6f37671f5a256c17b16e577b67858b812c830563ab2af593aa6a1204a132400acaaebf4fea7a2a654b532d224e5132679f9f1f41fecf9a20cc911e6807905ba34a934071342154782b7b69e9e4dad31a846539a5475b071df0b4c768e5b044406b85ac80a95442a573ed04f8a9c3e2900c00f9b784e758dba1cd06f47ff4a570ec5c0e2cbd9f5f15658fde6410b550690647528d3c4bf93dec5c44e5109349e59b12cda0ebbb32aaeafbf198af71179f20787d99602dee522d3b631638394e77b5a9e8168946d9227b348121cba66e0f7fb0653007e823d49a7c9eb953ae21ca4a271ef50c486c2f48a54ced2ad852f1d2bd184d044c9e72e32a98f356313e79a21fcd60103c03d001653868f8c6f71a68f52584939d9e98f8fc835605d94fbf105316a768ed77c0f900688ab19aa6d12e0cdaecd75f513963a4bbde3ee0bfb44fdaa5c06ef92560b0bfc70373655e04b8d6ea16edcea6f69d75efb940079242e7fc2436f48fa12a5942ec325f34d2cdc24bc27e3879b907ae8410bf81bb13341b01cecca683de2d76e524e7e00ce8342cc02f301bbffa13d93fee7dfa34f997cc20557e0601ef9d3bdef636e8f8eeb527a75efc1cae217933862154bace21647fce22c3602346efc58a99589590c88d5890f0f8a39213688ef88d2d72cf0402c54f539ffbf4bec29d75f5f87d45b17039fab3cb018a2e8629ad0e71b51f479a12241e9d1c6b29948c0155e63eec5a3cd19a550c7456e38b858e31237d527149d29118bfa86d41e9f8a51eb9167f3909696440b15ddd5aaae625af9e2e2946a045852b9e1fa18bc0cfaf3942c5cab85b54754950e67f63de2078c5b5926630a347db0585099b8aafa59600e8aeffdfdcec7aed2af3e33b45a1ca20a619da2420a636b49b190d79d6699706ea6e8667bfd51cfe490a915e725f47d80c91972ba36e6715dbf68e766236c5d21b83aecce15b5025753e88d5bd75b2a8fc76d4fc74d717222fe4f6ab02ede19df7b4a9f7e24aca42c97504cbbf844f35eae9705e2cc5014f9f2c5305e88dc54be701eff61d790986b770370e69172479a54ccd6961b3542a40e65288002c5d016404f5cba8716da855a9001eba948082b187f267558870f73bdef541892014539313efa1b6b34c1d1bfaf968b4493cd2918a460109c54535562b4779833a43078803743bf651611a24373f85787b4516ef6ffe4f221aa7001dcf3e4b6493df7265cf86d975df4284580837c961b192b27a0f1f25c36609b57720210082bd27ebebc00f2ffe7a4f422040346ab2e99514bb66f0383df7ac42f50ddc02df899ac5c9b90944278ec01fd7189c3c5cb23da73e0d1413a1f1103360d48624edb633184f93a962645659a2fd0e75030168894601eaeab3e4f078c8011e372e9dfad97ca64b77252f48a436fd60a1332fca08183c77825c0ec4281eaccf6733635ab1dc17696a44a30da6f0ce8c45a3bf6a8e9eba235e374fb330ebb9b97368115ad8f9af95207518cd81e0d2ac17b20119a4b743568acd963863a65fb275f49b954f2e453a26bfa6b4097331c6202856407b4679bd6ac5ec354512265ac28d1f22b7c51944dec41c77ccd03b76879b8e5a2810631e102c5d5971ff69e155b98011bc18a5fa1eca2636e0bf0e070c40ba823a15c0c95ef97eda6c3271bd3306fd7ef416d675c6ac049d465f71fd361b4919ed4b4b63afa7ee2ebf1b61db411fa212847b253a09fc8718607e8b5a35b5db947f78f48fcc5a49b5eaaa08abcf8e6a3a24c1513f3a82a5f21103fa5be532a9774c5dee711ba5be4ba9cde5bfb5fda542c8c42a4035c9ffadb9d209471e826fa460b3c78fd33ce20c706794692668686fbc50e0ab05ba7a2b2193a848024ce4cc5f7ea33a2790cc27f7c047427234628461bfe9a62b289d2212d2bb53b9ab806d35a24ee20a281af15cbf65165c20b649c67d81b03d5b45e36182976e87032c7f4a5203a10c1622b971c15cba41cce09e80cd9e102d79203233f5467d76b306610ab0f2e4aac3b8162ffa1c40b803f059d4c8e46b50c577d714c756c23c5f62480cd08a9735b93667430242dae3fc536f8310ae71cb975253af93987bf2feb9b58e95b0de23be1460a58856705b0528560bf5a3c175f70e5b622cdb0404fa33910527f81bb129de2c0fd35994aff539e2de2a2725a10bbdfd8abd5b995a1d516e5b14126bfee6a4526bfbd889b2d73b31ee9be452791f6fdaeacdf8e719780dec3842f2a8268e9d2dc63d71426a1af7c392b0a0ad03bac72877d31bec2cf5a18c560020c5570e9101603459ee2fa7def922167d7c10f5ba97bf64a645cb0f6ae446c7feb038059690086638c1cbf3e00139aa66cb2c016540a5332805155460397a6a4f452308f6a11f0f90fd6f4db254c2a07de7a53865815063ff565664bca2e0d21f944233ed7ca5b037969e08014732d97104c428b089182c0bf137ad0c6f08f0034bd39bfd0ff133ae333462e8252feb624215dccf2a2f107d368f809cbe386dacc04f039536e7d40f40f446c93943ba53a9dac9b684e30f36ffcf05f5b7bd58bfb273ef4f6b451cbb721697d99a798f3bcbbd8dc7286abbe85f6cd618a11837a3a5e2b83338aaec8654d07067f16565a7ddf2068aa410a939df64595d7fcdedb9a4fd4042693c05357c9b1fa8d301ed0326b277b5eabd90ac46cd88c43425b76d79af9beb5db8ee91b45c4b90bf354d8cf2b484e9d87524b84a65e1438893a0b473bc39043d5d02ee5e750d3a09a922e98cae97074cb03b199434ea5b111492991df98e92dcc0123a16ac7970e7fdd1fb7be4637484bd0341da7a939622ab6c0f7c1c150e8085fbfc2c47c287aafe81237e613306f92e9e8c4fb28b31763682f30f284b9647f7015a9ed21d3c8b4f08130a4ffa15bfc51b3beef5337f0f4f2b09dc59de4e32458f85d181766ad867492f06070bde8cc60b4c372984ed6479ed008ed37a6887e815042709dadb196c5f4cac26bfbb7147ad2044a76efd324f778c07359b8cbac4db9b5d03e0080591a5143181594525fef117332650bda2b3c12714bf7fa56e2899cb3d6b9226c7a0045141a3d346bc8437d30c04531b7e2aeaf3d2fe27fad268379a944aa3c40dda6b7e58d4c612f1fd6d4442c9aaca907a2bbbdb26dcc9e4fcc2768e01cc03178740818b8af7d6095803d6a287e045e864114d24dd6e4ad7675965e96e7ae81b89e993c7d9ebbb7ff52ad2ddf7bf6c0c462f0a881f523dbd1a46838725520955825b91f7ac7f1d1cba4a0e5bd0b3077e90fcf662dc7d12a36de80c855ecb6e219339a0b9b39d14663dc1d7abdbc1d8e74b618ab939c96a0af6876fe7fcf427bec69084bd90a944dcc63ee18556d61808a531276bab1cfeb4c949d896dbc8fadea848105b2fe4c4e176c51f8ecf26e13cfaa6efe934a5eb21421a2f3e78d64a3001372a1044bc2805d5308c8f4c4d1feaa3fbf31858b4957b5ee6884afbad58e4f8d989f6c387c34f56209cc692bd05d01eaf107b21a3fb5cbd5673ec5f9751d3057cd2c6d8890eebae97755ade174e62ba9aa5d7bb1fa33ca68f86cf05fbd3030cc1a88d5d00c44b0078a97d2b156ebb24185607a5e99b7a683b738506ee50067f54485988eb6ab176bae265fc544e51cdf8af2fa4a1ad09e6a3cfe95d71a6c69dd5708c9bf9a33bcd1494a160609aa68821711d2891aa05f7af20fd99e39763cb52448b28e20e6f59412b6316c7865f36801461894e50151841dcf3dcfc7336cbe9412ccb2c3d3743b92694a2a3f9e241374acb5f717002759f397eba3663769a8e3071be302ba2de917273da97ccceeb8e949ecf8daa967ca049170b3001b56cdc2a5c638f6a922136fffc366c62549919b691679f711cfae3feb6ff925a627559deb5b727c4e75a04a1fcde8526dbade82018fa21d69c1cd9c49f875271be647214b3984301cca1966d6c73e0440fb056ca75bcef0b2a268a4054e5679edf633b7fca509afa9ef9c95648306adde1aaeac2168f05e38028df4a0fd268070cc84daa62e351bad03bdd58a3feefc24b64655fe766fd4db76bf08cae84b75fed14be0abd60699502bc7a474cc8ba78c488fb44c9648289b0c604aa042d4a35da205bb748372979cb8151b4735b1bedf9021dd360cfc60fe157a383a83de24c3a00f1e89eb9d793d879f74edaa242a274478d2534b07a47d72c541b0cdd015fd4302724cf3d6030a20281309692998f9dcd8f0bd940db217ee8815420b47825babb6b4f5b6dd433683a1dc33b6ee6fd5794c9c7d680907cb9a3e5c00b4d4fb5b7c8042816b6df12ad1a4a1eb8c7f0b9b7673496cb766a89e2df435d8598c1cb66284c4619381eada128f2cb6717c9490fe25db3fdaeebd7291e25bab9ce62ed7a49291c8c830ff34cd4ab7d8efb2a232f12dbcee9d18682ba09e714bd407a860800af2de63924afe1cbed521f4119fa4dba7a45fb8d0dfa126b0f8d6c0df722d853081785c0942d5176533090ef4ecf1ad07d996b8a1585f8b6f7deaf2802a0a34b30a003c505581bcd011079537d5a17c1176e67b28a3859d75bc4c7df1f3263d08b57e14e743850c068797cc3151c16f0c9edf71ba3b7028242b36c944f3fb2107d2dca21dd2d32a7f7cddfa0665104c9a88744f81738e720fe41c48aa6aa65570e59a3e4fda8859c105cedd0f4d562eca9be45ee2778e987e476fd29b90796d19d072e95d60fb2149ec6c3e1feb10e4de9643a461f11c7d245cc5d8c43f71d2283491835f8d1047f6b4c404de9d0166ae9e57ba5fde471937d0877949f26893c86d0f56fe6cab893b62ba304c943bd58960b405fb131af9da940383462c34bc9297bd1312527e29d69571630dd867983ddaa190d30304a9368bb6ddbdc96ba9ca22f40466416bb37cdb93a3598d5fa1be60a281b10a024677bd667be918b4b75d55b2cf09279e30d9e693bc4489dc563236b890d18bbb03f8c91ce0f60ee482ed9f874d4610184a5ff7a38ffedc1c9873b480a00460827340996a2f0ecf50e88a94002441f5a2ac7141781eff55336a58715be03aea6293fa6e71b89cf8c26a154b5dd02a2e4897ffb22249ed66f9d73a349a2e35b1479c7b323c9a9484b844cf593e4ac385b0aace375dc83d81af796d93da67fd892ff0766cd7328427d06c6968f7dcf29b80d503fd5b296f9465e41e0bd43a77fda53dd019b008d50018b668ecc90ae27bb92c5d8a0f85f14b1386cbbad6db57ca9ed1595ab48f021ee23cda110c6b9a1bfc77ea6de1004c480910b4dbc4465221ed9cc128bfabce32d4ae1c549c572be02d1898913e03bc3c7980dcf652a30815faf642ff867ebb1b58eedce8a46a3f7bf9012f434987a43ba499380d3182ca3ed03c37639284c04e2aa83a1957e3d39f81709018d689b086d665e3f122f1a1efdd9f2bc76f173d05279ab825d98c8b88afc3f6cbed599402823482c2543c95aa7c11f174c2d5fc877de5f3e3f20edd8dc1f10e54768cb6a3bca7ac0398207bab5c0a5ba32a35e01c1274d5a69e6f41ea070c5283a743d3d713eb459ba1ecf54f97b60af1898158f96a16408005b8da4892ef0e6500d232ae502fd3c781fd978b1fa20fd58b4c244619d935c972a826f66f9ea63b3745afc3a6dbcd70514583999daeda9047c66e280d68c3a02dc2e1e20b35516f207054942fabcdfc817406a98fb01d1622ab9e030c44ce3926eea6116d17a2df613e4c62a1435487b0391e5a02440b244dd7dc409109bb51dab6796971ae0ec6c833816f7f0d70ac36c091a5119253061a30311e7b71ceacae0d82bedd8488da9564118c9f2ab012c07a10dd8e6152e808b774f56875b020a6858aa70f88484cc510863e40b35a6557ba6f5ae646b3b80903700dd6df83516df26934e0f0403d70e063d3bfcc08958ad7d783347a564b1d15780c055cb20747edb31d089c4cf76411068ae804bb15b1ece71a686fcbab4adc03bc63d558ffc923fa4c432fb3b4c74402605a05a8eca91e867597c92e25db30ae3dfbc9406fa663141da7aa0cf93dbd6e2875278f3d815ee35e5a3c027e12d8af63a09aede60ce7c7b2d51cf6657965b01d3bf179f38222a8020d645bc4cafc9cfae0468ad6bba5116805bf2b93a6bd12800bd678f37aa748e3fb6e854d8a214089c22fb8fbd55cd9f5726c5229213651653bf0ad6c62990d46371d40ef0199d32cbc4910719704fe883f298eb4ba5d5ccf148c6a90db6db15cfbb63010743cbdaf658c951f23abeff127f872928f2fe91eb8674d8fbd11302395d0736858d883c3aa658c886793b78288f26e255f81bb6fbf18ce2ed908af2bd71e580b4bdccf1445860f626eb1cd84698d8af42d40ef23a2b0771cacccce3f9719eb513bd70cbf4cb399f089f4a00281a45ec722b5e2232085b6e8f786134992193060c91b409cc00825b9839890b4580cac1dba5b3126f7df33ca77dbb38e646cfac2f353c65bf3fac4e5a7e415fdc563e39d144f8f23ee454e098102887c45771c05fb5c4205468dc3af8ce0450037955b2a74f0484d97030e8261824b8f10629898e0f594d2b0fb491467bf1a350c17cc548163eb9d8bd664629bfec73a897bd77110ce735bc507125b1dcf1822fe864a4bfe58a81eae543a47bc33df30f40a1bf536819cebda26fd035543434c766317c25243bf0b0414e257400ec8ff7526821d437e5086aa5feca42eab0ae00d5767012a4ebfc14807ec8c73990c9e100279d3bd1ff110a92859c09c8ad79389c485734bc33e73a60c4b56c30112829576c14d6e7fa9d940f389be9587ee9f26d40aaec693d0fcd12dd8b17cfe98eaf29ef4c10e3c492b0a7b426f17d3a6ee5f2a5a273ca1355d0718853d6eb127c41bf1e2a5ffc19bcbe2cd277ca92c12323be9148927d1363b7fbb13967f6fdc87347b23c5a0bb7f05bf55e86b306479aa3c57f1fd76026a62c08665f7941177d76c1e3a7d52ac981b0cb2175a25c33eee684e841173dc9992fd1249fb3b112a54df9ace4588baf4c54ef0e262850d09e14828aeef005d4e12add34b81954ac277da8be2124172835048799496f7463dfe69110fd901979aea6794f7ce9154d58177137c2e696ee77091a9c84e3a0a6864bcc34ed47c9d10490d12b14f1cd86137ea6eff81ee806a948787a8221fd0b1d0b4cdad27d2ebcd9b46acd3b947f3317e007439511487427a0c46c19aedd7fccd985c78203009304eea257f6cff0765c989f8537e895ac928cdfe05db6e1d80df6fe844e4090c8cc2c2efa981028543d6b84ac7ce0b84546ba69bf1f884f7c001442b42acb199b758a59819ab1c16089b44959faa9e273d9807d86b1a5765e4b048f6d42c6c993841679e11d43116ad59b15118ba16386f816d3e37fb1c48f591fea8e9a874a8ae4ef4c33696add78f355b56ab71b59831419680b25999decb9f27649eb5f776c9daca93cd81296e6daffc2daadbd49a0f12ebf6058c8e3f0d3223c15ab57703826deeff9fe6762037bd6aa9c91c5bcc939b6a55e66dec94577634d69a32d28c9dbafaf5c9cfdb126536a8fb33947a8a44ed10b799219fb5c05f4ba4ff0faae92d11da665522463bc3adddc82d58139f17afcd984b12ddc1ae83788ed484f762d48cb1f686cce7a9ceca86bc07dae666f80c65df96473dbc929bcd6ca92177a5ded8577d4057366055c652ddf4e2f831f34485ad2c9fea2c0a7d2988be3615bf2f6d686afae0757ff94cbd42e79a5132bfb4193d3b72531f88d8ef2dc40c4eed44b00976a0305f63307763fc81d69061951e1e82da0c50afeefd934c5d05e93dedf8e19f1dff7a32db77fb4a71629d51994c23afd42a3a8664cd6e7e7d71103b2069c0fbf2ebbe5545c3b60c7bfe4a21c5b768b2e402b4156870cbb1d66038ed591394c84294e3a761449156cb4cc919e4b94c79bd28ae1b281971d5b13306539e714ba0871adac573cfec5a119fbe50d7da638ebe0467554af9d433552a7db257c1e54d4259869eb157c13c0b6f87a66f0960c62fb9e083dcc36755850e355829938c2d9bf49c111fc1fb92d0ee7b4ba9f6ac5cb726fb3411d416749738ee7c5e39fbbc9066c9ab44db6756cd19e0b1ea5676aabfae37a30a20c8ea9915683aea6d2c533af92ee44647cc0b9295e4e64eb6a14aaada27d5d224aa82dd05d9bd78fc906076bde4c95a9e1b2cad2188d7f53ffe23b4f0d2380256d022c4bf6646d06cdac1f34ea25486b756cac7c8f4148999d25dd2ac4331ce09da9c03b2a78a9a04d2844dc2495ad5b6bc3a6bb0ca00ed4de2903dd69016caa18f7fff219fdc6cca26141958c6ecc669fd3654ebac37e269e09bbc17a396d2bc37566c534600316968c7a79ea0763c1ca9799fefcd4881773c864bd19b094ddfc1edd4903d545846ac9d54c2dc2d45de4b1aea92b1f85f73a0350acf909b2364ee38630b276dee59109b526a6cec068af7ad3b82f2d582f883aa69ca593c18ac0cab8a60c1a174d57ad5274a5e8138e2144b8c621647ece28847b121caf82aad28eba8e4a3e446d0e6b3296a1e63ee766d789ee1e17df6ddc8bc9e356a2bbf568c3be1173ee2d2c56ad9101496d123e1a71c37856995e54f67eae32569e27ee31ac392a069766c4bcb322dbb5b41938134d9356dded9b6e28533747857eaf1cb726419f263ffb25603996992f93c643985f5c7f51d7140f2dae4f4ed88a1c58b8a6ac2833a8610a4a124049d8c5392cbc1358d98b087208dc6780d11accfccf7d928f146dc35c3d06c9061642b4edb157f9c83d54520a217057a513f0ae64c1d2889483c0fb1face15b4d39dc006deb28111372e4762ac5682acab92e904b1abc4ed1833d61511a3c61f496ae1262da8c5079773d25f8fd981e0443cddf65ca942e131ca82b8d1533706a26e616c789cc9864a34b88a934d347da2a759c4ad4c49cef44b5a66421861f67407d4c359a3043d12cd1ab8773b7762d68b231d4ed940f2935dabb112afe6ecb60df715895af22339c1b8fed05f1ab60435ca6f4cf73d44c8c84a10d9eed44842e866d8dea1e1178b224d83acf78f4d1b1b06a5960c519c5bb38392ec0b2a7d4e574d9f9ac1ecfacec30801ff49050820943bf1f6938fb38fd4a01182f9b59dfd2f0aa5f67c49d79e82f8911706437e915a599049315d382c6fd884d5f5f5040d77496594a0e05d087cfc5b36bf69cab09bd6d8e2e1eb6a7625ce48bd40058ed5d6544b56b52baa3646030cc99ff12a93479f1269c5763eff93c7071e8e4fad4896695644eac16b0e034b7a5afc17726ad13e949aa889500c7e82d03cab72ec2a9101abb14d205e6cb7dfaf21cc08ee2c01121539e7fcef1524a468af0a8bc3a1fdcf695ade5e57d8ddbf6c54204a1e8e78da3f2fce2c6d7ed40dbc3ebc67185df2a836b18d8ad5b9d454603eba9bc77915da207bcdb9ada4a32a04dcac4100c90db17192087d6d788cff831d4896ce565b5612ab1b6ae110053ae2c0fcade86ace63a31b12a9b7b2c87584a544838f3109f720dc9ca28bdfb478da8faf122a9eb9ac9ba67cba6fcea8b2c38df91f12c8b9c1dc1051eced7d3d4bbaf84fb5073edda39e94c6a95cf9349239034902ae0dd6574c781126a5fcf08449a6020f74aff448e185c19e0a1564bb48e256240eacba5c597d585fd1fbd969b2c9581cbdd23dfc9632ec046b388f7533f4a68c75a40f049becffb923dba34d2dd358fee0ab157ebd2e6e69f5e2e5fc60f77cccbd44b1cf6b02a00125784a5d270d66f5180d45deff3bcdedffbc36c00b2a580f667737942f5728e3897e2d137ce75a9768a106a2e39078ad950f00ad2fd64d60e7d979e4ae0d21fc7df13d0854651519d100b4294f0dda9b3f009cf4f9bd7d5719cfbf60b8abeeb644cf339177393f56db52eb75566b0e27eba4ac8411850c121d711e0843a3435ea102c277e21b2563237b7dbe8ff9042e091ac2827798df8fa8cb3eb5299a80435e3f4f86c6521f9d3f0bc135e989902c104572a58da9e6efdda2dafefbcdfd883a6ee586b7225f7a4f041b5a2baa7d5a0660ecf5f8341995f6705c4fe808bbe500ba5eda6f4c547f94bcb73b133b2627253f13c7440d24b8b807e47ec2e26c0514b89c49804c70a6470923ffa60c12ab8db2a497c3da15dbdc8ac780f4d05de480d6e426f289e66d13ea4e47710cdaeeecd72a5d95e6a9271b147fe10d5e35574d2781dfdc173eecf71d0fa808b0dc3eb7ea67812966e92794ba29907cadc1c38b6af2437f94dafccbce661e1c7cefc57fcf8d33ee1f0ad2e6a913d3f97e6bc5efe986638f5c320953a8856c6b91d348168a7c51bcf5ff1ca3b12332b15a9d2aff7f08d47e1b9995132c5cc01ace9bd286ab3ccb545a00143a955830d51796cc0c70dd9758b3941e474f2013e950485d4d25cf54c63ebc1c835fe2b32bee0c87332d05c4e48ef862c8d011472735e87a72d1751948a60233c8a2fea0cde6384b04d1cb6e2f29cc77071a66c9cff1320bc95188ade6ea4fc198d2e35da9793f07f13271898bd16b0eb266f4ac45d215674be97a6426b3529d831d04a95935d2a22eaa9b02a8240f87c30116355fd7cd0596b30bdca502684e13e81d77b4f1a81fce9a867a849ffe3d0fee2d7b58562225e1387da09da7d7559fa994bc68843518284dc8b87160e6daf0b5d820d1009b17e3c419784a2175585ef14c6bf5d029fe7f8df6647d6472b02374fe4c78db8cb5db9f709ea91636156ab0c9c9feb94ed04836042263b6b11d60f903a5fbcc89f64bcf8c35c68144d9624e78401b24e53306a6ef2cdea84ab86be7c01c5c8cb5b424548e2a1d22cc81c0ff974b5455ace0acbc6ad6920c36a77bc6ff0fef405d540bfd23409288230ad082901a61e1e25f5d2aa1ae4b3bd45dd5cbf37308af996320c32c512e80a1e340317606d98afd0b052d456b39d8fe539756aebf52278936887ff9121c087ac073c8458f7513e9a3015a8e2649cc5534938fb2306fb5e5a2044dbc679ae6d9aed0e077551191d6d3f899b2a7fa7f4c6936e772afa5bb59b6708c5eced84f483f270e7ab3e05df3bf95af5addbcb61fda0dec0d5eab3a5b502bc30c8090239f55d7f83961af1da1a1c42dc40d055a3a8d8419d9a67b512b6dbf5dca7eefc00e7b8097a69d55e04f873aa41e095d32b7e2988933f6ae85f8b1262c84bc10a4fbdd94a4428684e00df2cc1cf5bc02c963dad099d5a4b3625ba119fd79bf153965b04e9564ce7d41e43a42fb4b030938a2f53b3abe903e8eb3bfdb259749d96e64eb26da8d68e306eaf149be90c1e2de17ddc351d5b24babf2578b7f6ae8bfffc2499b70448cff8a7c4d06c4c3ae9466102a66158873beb26437dff71926ad5e63641d46c028dc84f9e053644e3d1ded2784268e954e9f2f00971beb368ad6d88cfc151b16f2bcb39e6a750afa3d83c5c9f07d960d62150c37c5f7d02298d5c3a5a274028b834cdea08021df4524a833da45b83977f11c874cbbd842078be3f641026c53a9f5caa846c83f22175d4666a2806461c2e79869cc4797b4cb73aa195432ee59b4aa4cfcc5da9bb85b9029ba571cdd988025f3b7208237b6e38bbb2119a3817e79063f5601bfa7f6f42ad83f7499c1458845842c4efaf719ffc2c5dfd41f445f71207c48ed883e396b35f734241bc897e20b70702c7cc5417678acdfa07141ee5d2898cedf1a56fbf0571c1cb347e41701547cb143106c540347005f717a9c8f138049c5f9afb20093ffedebde50a050b478911f3ff98a63753e9c5b522eb2da5cc5c6143c287da51274305793dd1fce652a14b772bc9891393903c4ccacac6d019ff72b23dcaf2d8e3dcfc208dff48be8597a1668d52f1e34044479f2eef46f463861d166e6e0a3de907fe03a78f703dfd4ddfc02f6f713b87a8d388af548c014dd49475a81042efc6a83510bd19e68b8348786c20b20bf4977ab4857be3645a253107822dd7ea86d230939f486457189e893ea289a03d749f7ae06a722a305b801d51d7bd305d38d69124c1509a91a34b390f1cbc5f1984f06653e0a0d69ad0618a723bdc4fc11c47515f8d070969b637ed1f7e458cceb710e3e723ddba28ecb4b7f70d13e6f34737ef8bc6906069bdf49a54f272f174b1ea057a8093df194f89b1c89cf3ab5a145834822a5f370bfa323beebebec181fb7b1947108e87d02a188628c51a57a1f4535e7b7bcb5ad85255a2fae4a1a8d6861e2a437d56ff0b08122a47cadc0213c2609d03db632e3c800e5366ff147bc523a6a347f9379641d8d136e1c7df1869c8654a280633ba916321b9ca81b7909c1758f2df5c56c63f0ef870fca98c0e43e36ed1c9aa90ec595d15ea98a92a5a94e548ee2a2e5dcd42d488672e09e789ca29c153626056b640c9478c1d10daa156cddcb06d95c8bf1a03ea5625801c85f344e45d867f877e1bfa6cf4092c8fa89498e7d9a86b0ff045affd70e9e84cbe8fd9d09175f02376424165df0d03b1c4ce74024a403cba4ef3b5a11fc33bc45e5ca77382524c469facfd4748b6aac620e795386df3b3b6e6f6f6ddb436c50f364f87ba3e7cc2b5161e1683c132cd3e84a6228625ce76bf0bc1bedb7b7f645ec3cdd3765aecfb97c1ed121188e03d5464ec8de9a078687e19181881b5d34cb1756dfa2ab092efb48529aee508b5137797c3e8a5f280dad5cc860f8ce3d4c95aed178458989d453eadea5544f772c03344dd70e68968ba3024d994d73b0e3a10ef3132769341d1fa06235eafa11af598cf9b674e772e1d51953fc2ace44fc830a6b1bf009028cea78f4ca20a20106e24308e16c5b8269514431f8cc7e32617a4431095fbe2ada8ba45de92a6aabdbfe9b832773a1161431e798991dcac56d3f912ad20e518b95a31826332d3bb53faf9b033217e9ddb8fe54d9315a58bebe71cf4f6c05cc53fba1ec7d9870e8dd921be611fc5fa8a6dda915c181ef72a1f5bda719e83582b6625c7186467d32006ee62da0aec82860cdbc42daa8a7c98d2f362cf3852e7e5ed4247b73f574ad83cb05c863cdf3373acf1fdc9ef43eb822f04e5a05d8a1798e7af8397be99176f8cc48e7b4e0b403ade2ff4846a4a10e392737877e32975cf9f2984f1b52eddb47899ac822efde1e87ead4f17a82ccd6cb4a93e997d6fdd196cdd52f2fba44b156fbdd194bfd1baa477d2db1f7e035f9d2e76a038d4709e194072ea3edd8823be3aa1f4a9f4041707c11cdf2b8ac450f2bfab4fd20218450c5e5fa4369a1da5e05e6aaa22277f186ebc169488e21c37408e71167aa69d18c6460463759705aab9966608460f060295874567f65cabc73878e0f3ee392a95024190db680c092772b6c07b354fc5f694446ec1fa469222430958cd08b04aa2a250c61beafd14435612af8701a11179156db8b48b3443ea01997cf9419f0c4c182d7bcdcfde17deaf3619a1cd3572681c8f43f83d0556f26c6311b660b3cb8427fa03f57db3dcb4cb364fe446ec0c8df3b3bf896cc0b859809931bd29eb61a92e2e39b886ca7d332999d672c427028f133555b712d5f778c22d7a94de06903be491774bd6ebbda428f02d1e9f1614bdeac8cb85fe94609a5ee9eb87cdff82d485b5ecc8ad4d89b15a123c49be7000d71c58b713a31c3d31f8bf869260ac1c122627545d2d891b322ec3128f92a322c5ac4e06b9600b6063e5e52debe5f31a79246c0166655d4463402514bf563e5767ef20251f1338e7b159845207e8f23eaccc5d4e6800df6c9d3fa01a1933956b3e9748e0de221e87a98fb95cc31a266cf4c7b8ca245febacca6f77d2fc558468a9ab18fa6490f4c92ba2c5d638128bb857a6443a60eddac99c7bd4510063a36584f815f4092f7a80f2308c22c9a4b446e9ff5739128e6398fb44eec9d5adc077f59778f901a61f7a2d165352a3e2071f5986e60e113fd5f155a0fafcd70d7af174aa4666f9bab9015b503efb4ace9241be7ac983f8d914ac46490f1341e6c5b8d598b263430ac80b479dae5cf6132b8e29f684f50c8d50464144c12c4c3f428e36be978f2729bb6b8979c3abd04d0d34b8dd687c83cf062596d1485e977142b0add90173d8a773be09b0ff43a452eca1bbcd847edd4878fd688806c7f371a0434a82ea570e5a36de7f2f6cdfff0813db8d760bd632517e7df575f82cad5b76cf95d3a881e3757bef73a56dcfaf9bdf224de13ef313ddfcb600349ddd45bd9d9b3891b76630830a9b98fc24493904d0bf2f9b73c7bc36e1f0aef7d47439ff3420bb5b5efe9187e4177e3416984387acfddb0e94689600a6cbefa32dba91af2f521f2a362cb60c4ae5651734623c8abe5d97e79edea2aa5ece53fae6feb7888054cc74128bd7787a69a1a444182b2a29234a5b479ca852b7f4b3be0db7865235e70273abbc1fea9971c4ca8fbcd95bc21c06aafc25065516256dfc78ff9964109ac03aa892a02eb13e0fa99fd8962d9da767a50a837f5c49092d623479dc44b3312529ed82e973b2de0e1bf24bfd0048aff17a29da4b4efe017f5cdc4cd1a7e9fa9581307fcf12b89b052842de49bc7ef1fd20b54890ed188f9468bd19359920469b35f6a467b0a8828ff62a2debc12d53af666c1d820e02c1a83c864f4d325284b3d85507b6859193de9094e2cad587c89b8c3d9347dd8f8039cb5684caec0ee685b48df3bd712f2f931b0c7ddb48de5305196c593bb84c854384a17a0cb5aa67c8fbb2f9ac12936c2acf4656b781fa7c11ae5949905e4d57a26b354ee097782b91f084aa543a23a9893ecd88b9fa03a34d6e6bfc58d591b10fd27b3f80d7642238b61990d114f6eb1fed543742ade30ac435ca635f5900eedc72c4cba04c544f099108576d7f0594256e82983291e5d5cf0d89a3668de57f900dd30269fda11cc628c3c0d4a17e91c0090bb99957845f8211c396417b65546daf7f238527f9f9144d160021750e46d7adb9a4e11a058da43c4f24977cdd4e5d32a11712a4fee1a1d5b4a5470ea4d7f610a49445298871b0f458fd45eb65f3b4b36e65f335b47a8bacd5d689b07c4a0131faf7e75a058fc564de74b180faecd2d0d03182209cb97690e21284d8926dbb86609542ca0601aabdd73d476e8c44380bf51e8c0fa49ef00bfb5a424e79039d6507886666345b087c662fc8d4c1e60faed139568adc2e5d3e84dc4915d4e9214e867747913fd53a14c4d68798a7a7669dba7875173f67843459c98d18a078804a9a64d8fe6689c7a0c03cf84cd269f742a15166181a2311098b32a1962fd06aeba4cd19981a1252050e706b12d91ac0343d931dff673929dfb0fcc155df4564dd64340a80d014f880b98f8fb2f0942eb42bd8d8da8037b88b985ea38e3bd96ca9f5b0806ec5738c05c3b552859d800020cbbe6b902aa606ec088839b117f1045d3bff60b41a2fc8c4263530311581301666617bbca44c2a3077d4a9e6d4ebae66db5c680baf76d12a9fbb8a0b4c0c27294f11ae6ee56c58576f55ce039e10a9021f25c9f9b072165b6b3286295603c2774967ea6d6dc0b797bd67e21440354f92fc975364b5a3c27d44a04f6dad03ea3f0f68b267592aaeb2facf1fe4f5575f82728cf04016f17d4ab732924d0498c94df730434e6b1260ab33ed8870910ee3f61e3e8812f48f47ee4eba1772fdbc1bf94970d216044da8e0f9eaefeb66928cc3356392fd2ec8a187a22a8cd2f0d85ca5216f9ee245b710e7000f126483cdf50ee294b86af8d144ef775f5825a624a25acffc37769d33b4ffba8ea80c429613a642bbbe3162e2930271065939cba9a01e3761548342440bd6858bdb0e06a814b925bbd78fc9a586a195f8ee0224f1664935800610aa1fc74379c0bcdf04a2ac68b2932c5c4e9d0d44d5d3654335ec6f43fca1a0d0f550fcbda9cca4fc8c84ad1c0ff8e175820598e1aea7684ec7d158fb023dca49b98db8548fb358d55dcde4642838555aa4b274012740dbd9caddee1c451e840e74f179e11cf4e411f3037c2679fa277b3743c1e348da1a8af4aa9b4f5caf4171c300577f7618a67568382e2e55d49afc09cdad0bafb9e727d7f12e68827a6f6e0bb65477835b07798f7bb12a78220156080829b7345b42aba22c5f3932e3c97cd50fbc471219de4a6197311779e41a7faafa7b02035ba6d2c18a20268bbbc77505df4f9937f97209909f52eb91cb0e39d0f9bcc35899d9c50ff54f59456bfc051ad06c63f112507b9d121bd98b4111d2854ac56786eec2875d58241f3e739ce2b8ec4ca645ad934aae7b0c528198636192f1730f5a2f1c708c21114c37b4cd4bca0a90159e46e435b986564ea6d0ca53a0e7cf209fd280f10694a4129bd54c51e35ef298e923e82e800a3af2eb36ace39cfff6d675614d9a45c893b90389294e735777424c070a4f2d6d2fc7f454ebe3a221976284ed3e956c9ef9b5133202c7bb9d0a04a53da9b753addaeada7c9b2b8b227a8767fce96f0e985a19c9f3a44e6031c46df16cc1ee0e96f8787a171b8d01c55f5b23e97526dc29dd2b52fc6f158c9d734c7a94f9f3d8cf5712297a0c5cf006b287e3bd90db881550053dd997659ea759d6af0f1e393e93e2108117820cc71f7d7b4663370a0e291ef09359ee9bfb1779ee295294462cc2db2e5fc71519f70752f39c72923388c36eff4d6556a08a292940860b0c2d63ed52f9ff4abe73d005c2f76e60d8a1575b162988ac4157cbae8404f6767b647548bf0bbc34bb91d24aaf62241c5ef755da76f914f42db09842400c48dd16c9dde0963dd0071af59ccf21e7b13438bdf519260d992fd192fc18aa063b76ab76bf3a0995e233fa3f0a6004a02e8799ab69b2649f4c63861314f7e4f69b92dd14cde91b6e2229e4234216c30fa133d0cddb8900b09bc1aed0598869a4df05568ff658edc912865cc9479f2cdee5ab16968f5a7794be7b7a6346ae7bfd45a32cf8251db24cb50061238197a347c23dfc132986d0e1fa517e6aebb55675478f689ff107b95273bee022aca076bf2f61bab501f91bbf123ba973dc9a619de2338906980b95d8cda9c26eea257c66bbc57fe15725ea872d08a9fbc51e53d1c4507f3f433d62af16ccd9d0ef90bb4dd4a0ae480ecb6117c160555b2f5ee0b93c9cfa57bce787893ebd3d0edd95c590a6ef2820454fd832557928f5f9e6b19ed320be51369cca84b3add1179eeeb30c45d12f0b31f603f0a1bd2f8d8f1c43a078cc51065143d6a0c8e240b195f7b8557f0c0227db403cf120f7615cf1e66571268c7fa02493aec6e7f1169d08e712ab66cba530d1375b487240d33d73471bb63d60b49cae6aeb60398be20799b1d306131f3494f83f4f79de788554026102d704378737e10bac7d7b34677773a40ea4cd6f6952939c5a678b57f64a4ec601e68390fff3aabf18aa8fcb714a0fdebe39c52e992a75b760b7be3d5e7e4d416a0fb1ae990edb79e1ae861e9d43671c89bec1b3a2e39c3ccd11660042c9353ebf9bf96a3d13a1677feb7d987bf49bd30c187ffc7a9a62e551300d1f14d16d7f623411cf07d5de5b982631d30f3d1e73a93debb7a5ab538e216bf586211537ce28a5d2c62170b05c6b8f14325ac52b18fdef06988c3a29bf30a6ad1cf532b4e8f80ed657bb067ba44440ca83479b963d475819a6889747d8eb4d79e08226cc365dcb769854695f8d081ab2f6b4b442c94d019193db09d8f2b8c5d617b9d196d1774b17fbbd2d265c54ef6f0cf17cc2c344132cec093200dfd62289c508053f1e41a90f16567ee34ccb67fda726668323a3ac3e22343e23adcf52dece1b97b4b94a4b311573e41da76b18dc83c753ec188d0b744aaf3545d7a5304cc2f463e5911bbd1240c4ff96cb8b2bbf0e2b25f918e705775e6f11a108087852845cfd11541f78eb1f998afbe2a39df2d7bce7fa4c2761bca72a696f559428a07e6c7eccc878d4c09fcd2dc3771fe43610aa4f076aa9890b8c8a9678f6fdd0f3bf01a9f5f6888dda0196101643078f0b345e0194722ad43238602ab13a18408347c274954dc1181d1767181d398ad79f2238eca2d0c28c5a6d00cee45ead3971c8ed4617be608cfe9532d708fa16faa9765af1cf9bfced6b851989e580491b48b44038eddf03cefff148361cff3eb70f0d5cce778e70415902b2ddc6373c53aa9431ba572664b1cdaf4bc6afe45284d1f090560e9045b88a35c70b23b5df19884fff2fedf4cb8bfd98d167f79d6a4630064915aee877864335c9f1446681cb79853f64fa36049bb1a142c11e02111372427144eb31c466163b915c6dea16fdbff96c491ff817df75f8cd3da9f1c7c08d033dc79f05263d68ad8c21e8a7065babf79dc14413c7e7cc93bb8c9dcf676a8d6b249dafd3ed6a25a0a479bc5cd17eb267b9a8b70976c2de1d48510362e87a9113a6e69041f20148be88b2ca75714d161bec0fae0267faecac52811e135b4c92265cec508d51f1e78a8b5704d5c8ef7b251f4d5161eef1741cbb0a2cf59450c6d2c419bc74034c399cb3bf526cb29c42422986f1d00bafdcaba71797b220b93d0c6def08377f9cb62f15efc224bb3bde0fd60144b87e26167b1e769e9c7175846bddf9f8fc67680512cf2a187b9165d2d72d7c5a0252186d39819ec87b88e02b752e7c6a0cdae3bc07a33a545d882e873a89222225a9d3c425cc8e9f1b86ef6bd90f2619d1e38e7abebdd0b18b49497a26857705b90de086ac062c42aa7a134ebc41d5793009aef07d6590746668f1152742a9101bac83102d624c71ec843fe0fada2b076ebcd78b78dea4cf289e5c89a4748b4008d406d5b259b44e66b14652d8daf401b2f47015308bd347652b5fbdff111b45300683a1f60d5d1d61d82f11fdf46986129c6b80c2477022dad0b70773915d0ffc1fbc628936a38cb54377ec4bc2d204cb5da55d2ca20783d1594993ed8567c106f27866366aa3d53acb9fbdbeeb1cbfe10643b88051d9a784b4ee4c1d72d33c481a37be0aaf993d785e3d8e282eb867649cc8f0b17f36e6727abc6c423e08c18a4517c3378647380402bed37ae7d0a563957c084456ab4bb253fc0ab6f9523cdaf9d994ad750fbe4e45bb64464ca3ffc38aef1958c68f93f22c4a1c63040ab9cc21172a153a1e70eed992f28309e8c958b58f6149149906671f82b99a1b511ce72c9bf7d7b1a2f88c20d33396e267fe2ae52fd21465202ad6de12584bb4b1325abcbda2a20a65cd883d56185e2bafb16b17ee1c14d12b17c9e8b44975c3603d1a23942c82c8b67ba6a8e2bb928a89e2c9c943dbbd0a79d994918c7e816f9d7f5873629d2cf69da0c6d42778db20fb4d67ebf4a923c5c8ade4ead5cd750d6dbb77b91e49354c180b51764dcea5ecd1f36c508ce93403ec033dbb22959737b415012b99be96b6410b399db545a305bdad27dca42fdd7447d0fb6d356b8910857bf4fb75a0356f33aff5749711f27bc75536f36ace41d86852fb20200ee307ce885ad6e2efe0516d83a16f12fdcf9a285406c2681175b2e3ba7692b9e8500774899c81b33d05856484e8bf74d016268d32fd01190be8e89fa6db5b8dc2630083bc3d13469bd61328bb59b5bb9ba907ae30b08f5289d35b2c13ded812fed1663df6b3106a231a806213d492f1df6734aca7174ea3305c6aca675f7a284b4cfe90dabdae89a81dcf7444f2c4066d68538fcad7aa90f53b341ddf087676b17b34e2a7eedfb572b9b8bc75ed7814be3e0d8f910d8ec03940aaecb332b0cb0cee3fbb64073196d8a4461a39b807eea106c8a369c1325474599a4c0d2a396711ead6977a56fc67d8b1c7f9723ee5f2cd1dfe520ae3de6600713631c8018bab585b12120700ad1a4d1b181b8bb7ee161ad021e67c6ac784a90efef79177e4ae4f015a06d898a084304799f0c977c120638fd0d3d5b5ef63f1240ab0d65ffb6de53e156b781d5fdca3792915631949dd866f4a6318264eb42a15c4c9d7622aa09c3034738895d7522b93a9ce4a329dc892c2a1377ddc089ad2c39f24783a86dc4ddd908b10a34d5fd1fce7123f6e1911c56559871105e9759be03bff618abb0ec960ba0aee83f60a98f1bc13a20fd5e712c78625071b0a5163e18f8f14342e8e172ebe80fdfce902ad95add56e210ed6b4bb24d6ac98910fa96c50eadb7d71b4a2e55ba62cb353238d8a96b24813a0043bd1b865ba34781af5347ce27024f0cb072a330e024aa2a950e7fa98e063443eb57402deb674512d2147c1eb671be8f6b0d5a14494e3449dac70d4ab2ce8ef6098045f26d4a48d4854e6ae58160db58edfd12ce1ae6c4cd8c29e2c4c4debcc29391a741c5fa834e5908b1881bbcea222242a95f38c45749a432c27ab955347010e57fa4fb1a9aa813ff9fdf8c121cb1309ed8f7e88c5b468799a36e375b65fcc4275d9e7333dc06fbe659db9a813565af7f4b0e8030301d6af4f17515571ae7a7d98459939cf22a8096a4c4923eb1c32272d746b60600d40c5b23b5df243cb914567f77fe4ea5c77f2b4c22213206815934c24c67f0c84dc12c035d0f001bd53bcfaa8723796c83dcf48ebf73d5b89c2b3b13f48cdc2ee7aa22491d45a424ab486c96243fc0968d52d3f4c8a7706e8d6f85fc39b61352dfd9945b25215f4f6a774556094132b92eca7fc94fdea903ec034ac7aacccb15cb7032d007b298aa5e748c7112aa76e014788a694b2a372ea5c37df151beea88f5ba1776024b2865cbff0924c77ff586be37a8f990b4aec8095cf8bfb898b2d6fd3673a98f613b4cf9a09b8365b11522a25ec24c4ccf68af3d0b9c5f28d6d7320111a1b0b39f08dd72bd5e7c46d44b731e0d5eddd2a30fc819c865d6119a839d0d934b94a4e304a8f59893167e379979c6f89890638cd38e5b31095b33e6cd0e31f6c2d5299dc626384ae6ca444646561d35512dcf3077883231bc5078a679ff72ef4f82aa8f53789c7f9db6854345178e4c1380ecd5a6c217928a2e4cf5dac2ebeb133f1de23bc764e1759d8429d5f3db150e6afa2554819b4e5683ffab8ce96779bba2c6c592497556db4548dc26fd53188477fb5028de74903701c8611ff2a34184e611ee81f85afe67c8bf3b683c7283a162a6b483f945998c10e410f366f5ab2f69b24aefdfdc7cf8823214a536a9f5a74d01960c7cab55139da655df06b21ade9aad82ae3a762dffa0f05b813cd9a0995141f861e57a94d771c1a29952465314183044cad26b4228937642a474036c737c980a94336e7624214f92e1f40399c751ef9c2b0913697eb772c4695208e21ecfd20915a33db1bcc408acac4d53865e15d90c223d38bc6b4c15b386c769db452839b86769a7dd3d5cdc81d734fd8a0d5be110e4ed790ce44b5a03d231777234747e7a185e2e7cbc1803e8ea527b32c6c82dd1188ba747fcf01dababa9254f818f2f2f8fd59173f30f74ca17bb9b90bd993ad1d66f63b8f8865f47b666772f5e419453235540f049e5172c674d6c7f5284693461bec2ef4850f8163615bb86fc6d34f223ac7f841e78c3934d669c1431d40f08c72937117fc7bd555fad545be49e175ba3992d6c11de60b82f34dfc3ffc2016ceb5d507bbde74deecf704aea050d3e4e7c2d3ed162b3d69392ba3bb37263cfb1102c5e8203e7ad3f536f6cab221b4428e53fa78d83f11ca60f829ef83f3b5f51efc3662d32da1929806b912ace29cf4cdc9ede0a62a3e3f1da54ea1794032e35b3d6d0fa6d890669f48f8c0e45a5c8a1a46793532004970d46e412d22814b55e5168099594fe2c14ba2ea4b14b4d46461d47e910f8a3b6581f3529881268067cf9b2c695af65038f94114b501d5c0575371cd2743d6b526e0965cc34158218d17fdbb813de9a324d89a85d7d9276c6888802d96a05b1d9391de61d11b5c9aa632a165b8bb1da3f18d14fd39c4808d49a843adc8c1175b4fe2d4b67c9ca2240ab5951d12c5503f111ed1ce43ef4c133e4a2cdb38b1b21d1aa7ed82e9f5e909ae7072a3b82dbca6ba57288165ba28e943200a83682439d53bbef4dbf1c53f47b2c1d3cf4bfce80decd7cd5467e93f387c7a6255cc918e63fa7bf8792366c629f4567d673fed428ae660bc4b7040ebf12aa0e5974816175996ea131e1a330b013e2df41329fc6f142b7cd1c4084ec60ca50fca4ace77473b6d1ce87cf3bfe9acdd6e87c5f1697cdaafae98b5622f26d5b27cd2773fec9d4d7e72762be6592f0e1c33df829d2b6e1758a238734865b580b168892294a986a6ad3a13feebbba849c2cc77ff8fb84e1be1657a7fb53d773c18d588c1bc0d891af67a8b75350e512614e2d59960e6ec9ee23376ffec86fc4a793a861201bcdec214f21cde85806d2b0a539a75dc0d002e66434d891a05e589932b3eaed0e0c827317526e7792169dfef690f9ff2c05f9afd7f288495f3b1d995cbd20e9f81bea4c80b291ed4a2b452830ab76ffd1f94f47a76b6f281e7872cf8b521896f522dbe563575ac5fd2c314673c46717a9fda26cd82ab84a812b8d0891571f5e35fd02490b4eef1e19caae06553df44713b874f129c237cda56e972fbe434ac6ef057611cef7d0eeb7b8b98382f2d6deb2e27a075ffc9f46ad0d34ed513ed55eb1d173e838eebb92244a387369f4958185a5c674cea38e75c075737d690752239b884eaa977a54191c091c5b030feeac0c7db80594a49c0d643bad80450e2e195841daf71ca4b6b961537a3b9f8971cb7f1ceb507b2c98b742057daee20b14b1442ec8f5c5682ff41fbc5f8b26b6ab09b93e0050df865e9d3a44a221cbaf532adf9f5213b94c3d3b937547fab1298a60ef188f9be3ceb9f90e73afeb215fbe798935deb50fc6e2c222e30497110aece02b470e806861410e635997fc72bf4b145a78b192a290609bc59d12fe26faa5e36f62cd59fb83ed6ac316b0acd24c67a0535d68d091c6e4d3eef67aaf71ebaf077785300ce70ffd39d317eafd2e6d0e229dd3d84265f0cec75c7461b5f539e01d295fc6deffc9cb1d07e0cafc4ff700cd1c128f0c1d280d91b5f7b74b0e06dbc9624dfc4336a21b774883479ee86716c7220990d2082d43875d7540cdcc74e9a2fc8332896de234178d9c6a057def1a91c2764bd5ff958e5e70db3f5a7b242056a5a5426fb9dd74b4b9447179f164db3f4187af59a97d70cdca8ee6022b699ad59ef2112c83918c530406b73ac051ec1eab34ab328f575ce8ece03c5c0f34137309a1fb230618e1e780d933f75d28be28c28f5dd09c38f730c244569e0c31cefb9067c4a7611c45d5b182d347009c26d0bd2520522396ca43d7f4f5afa11e4bde154694f54bb9a0e792cc35746b6fae02fc7529c06147200c23c8c0c7916c12964439f80b99c57d0234db7b6478a1de99e9b9b007f2f785ec7407a68460f53a4010f639fa268291038e623317aa9e330dd224b7896589624359afc4a5c39e7493ecb6e73bfffb430ea8851831a63b8f3649abac5f3efdbd85ffdd6f990c128e4f7efe30b265c242c01db60f1a55d59c2d93e3dae737ac473a8a31baebeefea3dde41b7da2a9b5f00de7b274ddea795302860ed0f11e5684939a230efbf1ffe6f09ee0131031f685ed3f1c04bbcf53d90449af5869b693818282c9a77ba501539513345c57d331875ec3a92bdcac468130443f06e75e1ad96958e18b460127067e10f42466b3ac89898129ec2b03141bd41acb9187bc05fc30fc7b9b306b46dc561c65b19788471a4640906d761f2e29e25acc7bdada06f299afba7d5abdaded321f0b148f63c57548b4de70c8b35abd1856632a137bc78a49cc7cd38b46bd4cc0e8b1339db4e12ec3707b40b2a663a03ba43fdebc2f91f302e005f75c836a298bba7344887edef3836d47054f6f57e0e518cb49a24bb8986402bbd7671433d8fb8f44926a2d3f4f364de95d6f948911b54d0152e765632dc2a21d47cfb1fd3e006ceda4724b19c97805605312668e11d79c31be1f2ce7daab32696de44929450761a9f3a048163c01dcbef693450affb36567840416e1f21428e3c6c919bcc6869da1483b08d99513f2b0579a10995664fbfe5b8b85572cc1806c904774949676febd111da38f458a65129a938af91c240dfa7ba598650d9c5168002183f179b9e27cfd3d4d0ecf6ad1d432e6082c2adb0e6b67cb2fdbc7aac1c01c6cecac876c961c800ed3023b1d7d40aa3f34b62a196b693cb406625e3673a1d1ba9d72a6cdbd88d1178e37366754540ef3acb49bcba2233034b491b41ab8732bab7ae2e6eac66508c6586656513331b5f25bc61adce36ebba88dcbb57c41e6df25cd9036eaea082434b8af767a5aaac9a906c714cad1e0f37416c0594e51b2c89eb33eea992e1f9b1f37cd97ee584bbd448022167348488e9e15fc0d9a2f7d413af9db4348e24437f5d670c9d288d807e69139ff82264685055424ef5c18e958bf74434a478305e2e9f8a1a92d620957673e0d52a1c46a1be9591113f00abd5b1dccc9300b1f6fd3c02a93b9d1911d32ac98dfeb2b13b907dad092d1ae26b3bf2d94422ad9b60229b1aa288fc46695382d1ee82bba713b45fc9c8c09cd6d65ed611d1769ba3159f46cc9b48f07bc6501c8d501532ca588a9d43d34d1474913191e7e2b8d864d57401def63796fb80b8379f04e22b4ef7f38c414b8731cb68392fd2b1d121b8bf4f9d4cd1a7358e9a00db36580b6a5f4618d3c6f8d2456dfb4f24a2a83656d17f0d80ec59e49a9abd20d2d0e0bd1d6e58b270433e41a50a1bb9f5593a4fa1e93cc48ecd0f3d36ba0a7e64a5164a9339720058cfb2523bc81837c9dca82f2874971ef8878faabd9b2e2ab3631a22e2df9f3054fb4a93b06f8c124f0cd5ddb6f3a766bdd6270bc1a0d9be55addbbf460a02163a77cc08c3bc63a0f7c696bf5e9c8b02e3710245df4c6c3d57d81f6c781f11af083d75f03da515ac5db894245155668a2592a68359163cb35888e495a3e666a6b6ff5b6db9e570d8601f3a9c2992a71e51327e3c21cea330fc0a9be7265fea018679fc5d6c666bd032245e5d5a5d43ca4a8d69078a152b9d1b54e309972230eda6546fdfee599693d20c5a120c8ede7719892d2054c3c1d901d03392a90fa56fe84b094baf080e55699e17add37b3e987527fe7c5dcaa9b376b89cd5bf6acbd48aaadbc550428045df4c65bd0ff41a73cb06ad479cb87b94723ac26775eb2c82f22d00cd7d32bb61ecc7ecb10b74582206fc22e91334b7880e4bf98fe1659c499364b701eb406bb70e45729bb55f8bf3bc1a8a07e24b44aff3231da859e91f6d7c0e548384c72591638e72733a518681a228b483a23e660909a1e815e8232a58839a3e619bbd84e87cfc76e02076e313267c19b7bec671a7da22eb61e156ec726a84a84ddcfd7309ac0bd97e8ccaf28eb452f43388bfa96ccdfd314fb32701498d9356d01052d59aa252ea0a6b755b3252e2f37ada3e0c973dc7a4903772234d5c5083ebf322d0d54f8fb2d79e69d1013d9f6da1cac6234509d2ac40e97d8c1f87c5eb518527a114c54c9df7b04f2dbbcae6131aa61690045139ea4a5cdd4bf031eb9ed3b856d2771309c92e2801e7c609154ef114409840f6cd11041d8e8a941ccf6174bac35c19d320be0acd6b8771131edb85e3fa0c6ad16db2ccb3ccf1d383a7933ae20a1a088694c0b492727d5b2c4ace434b9ed5b359865148ca0b03de34b1a4171fa15e409fe56b0c36947f11b426ef2ad628c19dfa5ddb7be59b385833a58d19bf9ef471fc639225cff9e76b68878c9e85bea5ae38bed296e6c52bc98ef8e009341f53d1ac1e40537a47ddfd74c4f6d60f172de9e62500edaa7d265335e062d3ebcc83f06caf3ad8fbf26771383ec0202c823aa46fee8c60798e3abeb8913db1c1d0a0364a685b068909ac6751a430a163903ead212ec284090cca7a03f47bcd454b04b6370db2eb5507c5f23279a86629ae4256d19fa10629d0de7757d57fc546b658ba24e9565cf82a5ebdaacebcf3be7b3577c5c8cc5da50d83ef91a00ba1f7bc8f019c73b009164e503f898787d7491fd419887d8060c27026838e6250944ebe633db549de9f7cfc52f2dc3b83f3fc5d0f6575b5e4f0477e9cd4bd5d3579f40a59fa75425a444ec3eb5b4de4dd7cb899e8d644c59fa9ba54cdf3781f522272abda4c723c08b5b0e9884862da5d77d50fa158a050a957c84162a8c7891f5acc63e3035da8f09731fc0c0341865c4ca6da7451720635b8bc9f88a01d4d198c106e63834826f0e7ef2da53476a0638b3619ef044d8590903fb457093bb00a8fa685290b75bd930c56cc69af4b38359afb83f1300d2dc66263af962e909e542a126e90fe3af502067e0e3fa9634303a7573ad4feb1fe055343b98ba4f81294f62d49304b450c98d738d4e38f2355d0b69044c1f4a4a5032a07f10543f05e841996b8a459d11a379196a8f613ca44d4028ce0753b3ca87396d52ee47dd05901cf51962439f4174c6acdf47b22ddf14e33a695fec2dbd1cbcd05d93132441dfb50f098affa3cc79ff8abeb74d80b602cc69047a4a9fa357305c19a703994de5b582c281f8d697fa6310dfdab5aed65771d3642a7f3ed79fa4dc6a1e0bd92a2524b6100a072beb862ca16524cc0c0274a9453e0a61230002a080c8cb0dfedbffe2a7899090b6f7de7bef2d534a4906310abe09f2093de2dbc06a8fcda2461a4b5dfc2b262ba08beb392823b28aabbfe41a633af9a0638d55ed64f2ef1480ce1a167b2139fdd83ef74f2cff3ef631477b2139db6d5d37a4e9be921cdf87b6cfb1bf6d190d927d7f28149a3af83db07b0ed4fcf973f833cde17d4783f07bbbd8bf30ba44cb484dfbfd1cda2f5dc93448d320b1657669101c6ef6d2907262ceca7d9cf6981373b40fa224873f7f102539fafd8328c9a17dbffca54194e4d8df68906d35d3204a72f02f0db23d2d239f6990e5a1ccc31f735ceec71ce64c095a543223bb46031b3ffc47c472594a96cbdd2ddb6bf08a6963358660248668bf81cfc1c14074f31781d8fd5e1a23d64ef2bb0b91451659500f88fb0f34cd4d5818e6c618b9193f4e97587fb6fda6f16afb8c9757dba6695473fe95eb03f92d2b8e35c5babb9b03ae22d4f0b58662b95d6299b6719df7854473442a9954564e2c2da894cb0bcc83f4861800e090834a46871dbc1a6088305ac4171cae1802f03dbc4dcdc7c719a24611bc42dd0000d69104af782cf1c3021c643484c816e1558b8f2a1f7f8dec0e4beae523ccc7fff8dbc32bf0e3ef125ed18f2e4d789503af6474f8f83b7c74f171e6e32f145ea93efefef0eac5c7df28bca2f15e2be24dcc471e70f8fdc187d503f1343cbc0c0d0f3438fcfe0b1e5438e4f0cde01a43a3cc7d9b1a1c4e38a8c013009498014d313c5c80f3862576003dfa430750032d2083c3bf0a0755ccefe780030040878979b98146d09bc1b544b72aa09270014fa993121434a14c3c4070b6cc251ef458bc1f30a076b2c00bea575c502ea5df4fa15ac0a77efa64344d5121c6102ca08dc9a6c609fca1f443112b200d8906870ae822aafc472e72b4005551e5bf024f51c61f08707e365c85c40fa00fa0e8b3314f4ad4b63135d3572a9102d083e732709ca6a08db8d16886c04dfb4e3f33266c00067ef63a3e3085a592a8fdf2a444079adcc48303674f8fbdd5da75f020f20597b0480308585586fefb287aefa37664f673cce93c7083700522ac1c1d9cdca4265daa787815db2155d28c886b62efde638fc33ab4293d9a515ec1078ab07230a9f5cced795667bb5110af306c93dd0634b73f05993798feb16e4569e1ecec35f03130e6b18c8e5eac92db6d96ed264757d86086a35795aff96086abb3728df00a95fd6f0f26996c5898feebd52ecedd61955c1d172a9e262841ea60d28a38e39994afe160f21783553598bbb346944c7ee984b93b231d29abc45ece1346627d4f702b280b6e6215871ee46153b1971b0fb4b9391e084699fe4ea6f6e3b4beb39f557bd7b88d866b23019beaac5a8d2592d88ead64ef76968bd1d3c679da74c001dff1285cc7a3701ddff19d9697ef53e7471a5177f6bd7f610a25331a6ee8bbc155f97d344eef7de4954eac58acfbbeb3cbea9aff151592a4db4ab9d28fec98cf44952c52ee6fd96fabb1d01d5cf638ec512c0ced57b6bc0cb9ce6f097da7ae945df8c3c31f2ee72f8d969d90204c540b54d9657ea4869289ba60d855be7b95afb91435ecb28feee0fe3b4266df69bf4b43dfa9ddffe0caad6b292763745feeb76eebb6225524491a31f7b99760b814355ffb4e87e863873ef6e8a5fc3d42ba9185b19f6dbf812b54cc1f5cf7b3ef3ef4f9d168f9a5a216ad85e963975a3499695a4be8a3217f47a6fdf71de1b988866836a252f37c6ac74d8ee3386e6e747f5f846ea476cf60ea1b443d0bf83d4e9f4e60741d5675be42559e44c353c5e99a17aaa365fc273d9d98c69631511a5ba644a728344574879c512c8ccebd7a1ffe70ecd7a33be47fbfbbb28b71b5adb45566c4687e88a2424ffaee75f89f4edf8522125da162fe90758e50dbcddf31daf9a3d168443b9f34a48090ba2ffadebfcf3e199f94358449297f41afa1efbdf52816c6d6fda9b3cbbe53bbfdbaef386d59da27a46620bbeaf6751e8d20f629d61070755054a3ac8e2f4b6a30d3504aa94999c54c6659e4615379728c9665353810f51b883280f7dca330aa00ef399402b4ed3b0df440143627d669ddbd07c61cada3b165c21a95878d5c3abb468b32feaf62ed39302a8073341a51fba02f75568941b2bb809b7b9999b99fb9b7e94ac18674240924b0e99dc262e1d3bdd19b1707dd7e8ca902082ca89155af6217107c767d735019082e9a3d4207eee61a136cd0e3ac3a84253c35dedca00975d7b0ae23ae53bc5902129c55914bb0dddddb7379923c8986bb53a760d5119ed569190ef9ac310789de96bba08b35ba14353e163db24a01af31ceac62ecee6eeede41e76584bbbbbb9bdfdf6384d41856c595e91487552b33ca0fce7677191d17431407b799b12e4d8cf24cac46205ca9b169152db0428d9f8d95ca74b928baf83126d69667d3363b6d785df6d8e088a1a7ee0f510412492c115d2ef9f7c3f9430c0e6ae8a2c6da6ca7e2957ca7aafa48b0c762b0caa37c9ea6651bde449514c7268e564a1c5dc3438f0d4e114824b1c4c62875257fa4220c585497da26661aa30973346dde419664ad8a95a2c6d6075450b7361867d8fba1c6ef60b049e1355211861e13886a74058148508d2e204c0967a4020c595407cce802c24f8ddf3552118621d5fba80843086a04390a1da6bdf421e3fbed7fe095260a7f68dcd779af72c1abf931aa441fa3c802138c5125fa902844c320d5fff39c9d7ae40e71dcb6516e75d0e7c9d4efacdaa1a62ba7a2f521741fbf197146f46f469cc158fc7542d731c6185beaa87cbb5b3439861a8ba0dd8a7de2c51863642ec65e8f9bb3dcb82251bcd1b05028de6498e679f1466e5de51bef8e3908f366b32c763716c6186326358f71f3345e79ddddeddfdd1c7731c6e8c5d80175daf228cec4df65e6776621bd6c858e833071c841a59291c922076f4322b33aecd00619950e3258c8785daf41871c545cecd062c685898799d20b1e5ca41734ddcefc19d14c3288a44ee803e2874f469450a40fab3cbf62eebb7c55077be82257b305f172e9546dd362761361685146254130f7bf593e31bb9dd81139c3dc8fad2d06733fae8c6affa88612d842efbaf0380873ae36c383f642c35e489a0ec0697f0022092e3c6c463a0dfbe033e361180d0f1e12ba5f784bd3c3115e784cd3036f009a7708c00068bce93d34ef94317a909effc9a130b7b718f06e841180cc076ca5afba866dbaa1b8f8077fc23efebdc16005c40f40ac6a6c82b881114300031002a7e610800043c89841a3868d192064cd696a36b383e09b8581c90c8795d7d4c43dd9d4e8625dc088a9f1f8c65536d29b0520c40d4104c137370b03860e31be76c3f0b6233386121c03280ee0f3519b2a1167e2c3c088e109200e618765fedd17318e83235f04200530001722a685c0e10d636ab4898c93e322002f15c38bf1460ec0858820833b040a47084db4a19c8f00ec0db1dc2db7db6a3c3122e4fa76018ec0d182b355ed9411001b42cae01a6b83884dcb308ea57a399ee311c06bdeed0876cae9ee0c33c9707a9b6affee6829a5a4617f779708a00d91c9c0663011454456916478de1c4732b0192749c36d1051843b0d3d5339cd8d22e60c1f68d4f0a1860d1f6cd8f08108227cb8e143113e1821a231bbbd6eac860db91d2122c6993e79bb134144dfb811978bd0768dd0dac54c01b2508d1a1bf263778ca17c1f3666a500fff6d9f6cce056b31fbb7d6f74c7f6fc19c8445d30829bf6f510550a7c8c33a1ff114d7d930e64818862dd4fa3281bd9f7ffd88a51dfc1ff63aba43db6f6d8cadcbabf7c6835cb6ad4b40f691f1289befb2ef39ea1742f8a5ed8fdee08bdf60e86214cd3b4973642af5931ff06bf68cef7306f9d5466ac72abeef07e7e3776ce97a0f7f35bf45c5d4daea8f245eedbf6d9f6991549ac60007f488a1a9240e83f9641912adf495906864e1a7d361c73cdf36afa666cab4a1a7ad5bb6747f6db776337d16723fb2d935c715a2219bdd6ad48af4b8245a76527ef77b5e3fbd087a6bac3b5e8df8d95c114958de00ffd67e3fbd0fb77835f7e772cde3ee155b7f3460cfb76eae387a67241b3402b8557a26fef7b7e8731eaf7a1efefe43703d4fe0916bda47b9a4937e9563bf199d53910e3687cdd3e738e861b456d8f751256b5b615480f51d5baa7890f14202b3a68888e144996b49efcb8145e8dc0ed3b09afb6ef86494e30d22afaa94d0e6cd917324efb028ac93514815cf73b82892a7a9111fc221a02e1bc6a502abf56850ba6547e763591523f4ffb8ce83a2ffb8ce8233474da49b66ea1ef06ff06aec8f34864869da4dbbcfd3cda637a4600d9fadde8bb21d27eb9ef087eadc7d60ddcc1d58e3dad333da03a0d98bad11e30553eb6fcb5e8515d5439da43b4b5a3316b8f7d55b94060b83bba8d260d8c986c81095139da43882a777b0e0c9968a272198d7186fb66c8e757f96ef0d7eae056ff68085137da4388ad58ec650f51802b10accac7244f1ff157885139e8ba65cdd06b8c31468edd43ba18134a56f5df656996efdf544c7160a6feebd46334a954ea31b06beffb2e769be75d27479355de37b7e20dd7ef7d363053ff09e9dc85d47d9cfe1ea7f909aba0d4f4e7df35ee73a2de7ac2fb2e4e69fd461915955751796e655e9497778e9a946945f5970ff90a0d4b619f0f1b604dbdcb639f0cee53a08c05b11f8134f6b1191b2ef61521a4ee0b18bf1942ea479d552a7137152fe5535bec8455fedc90e911e969a950effb5dc05879345915fa7e7601b77acf921d97226ecf2e5926db648934b9c1144d6aff4e2145eddf29a6a8fdab0a8a4a742dafc4c2f0de3fdc1157a98769914599fd169f023baaf63d30c6173bf3e03e0cc87577772bf68b7df71521a462dfe83b30ecdeebbcd6e7d372c2cccccc23668ee2fd1762669eb123b2cac549cb69a8b50e9f23d20bcccb88f7dbdda5406674eea554a9f7c0703f5ac50c766affe7eefe3cd57da765fc392766e8b917fd7c8702e42d27eee32e5e9ddedfa1f00a8857debbf713a5fa872ea5bae7ee5e7277f7a94e83eb884656a5503db6ee03f1fa7d0f51fdbeff2890ad4bc36f0712229f03f33fb62281f9a59c0666e83d2aa36db9bc2fe11a98f7f71e5ebdbcff83aed332fedd9cf13da78149777cff636bff0eef7f6c75297a22abba91a779f577928bda58a76a3b92eaefa658e33b51c6bfdf3d0531f41754776fb54b5e1942dde0eabdd73003d5fb17d061401fc2329ea4aa60204361d7135671ab65fc5d68a8d514edc9aa47bd481313fbfd966701c3ad2c1eab42cf3db7d887ddb4525a59f9185796c8f671ab6b9468197fadd56aa15b448e3c56897e7e12e24d8f7dd53da27fbfbf1bfd2d1ff9dde85f205b3b96584f60187d4286129efc5b803e32254c744a894ef1779c2178e571a19f2f7affef7ce49fffcecf59253f551803466edbb66902431752b3cf501895ac1c4cd0c5988e43c1c4e9ea343fd8c4e095f6feee7fea1ad2fb4712789a2de32fa23eb1c8aade1a5b976edea1ef42145523d6d0d38835443370a4863e9cd87fddbfb71f0d394add3e8242aa07fe90b5db1ea76974cdd5b18fc1b1a8692b1b416a3f263dd332c9318829535445feccd371114303c4b8d3b8e7674d8b23ed3749d74dd1b3c373844913aee134159151e525a2d3daee2c6bfbd3a9e368e4df21bcdae88f10e5ba4d906800af328a83555c04abfa25186a95c605ea382b81d3744be9eedfed4e9702919d02cd33dfe447567152460dc39c9d9dbbeeb1ef3a4c7e07c62a3f19586fe1521c4ac32a771183559e443f370db7c60c280e1a7d74d4e095c4b1bd6486aaaa83573e79c8f779924038d05c8ea00b5b483572353e479b198e32fc2d4c6bd75048e41086bd8f758ac29068df5105bae09a98d3efa0cd2221f2391a7531f9db081d8d0bd7912e1d6ccf3266e65048adfb1db8cfa0bb8e47b12ffc793f037dc7330962be0f822ec6f436da217a7d64c7b166e89867d92703278be938f8a38acad9bbee4b8790bf6521e56f6c982eeeb7a9f25531474a23a080480d639c09dec5d886197e8d16b969dccca88c9525cc6c6b86f94b2a362c660d56f1abc2ddddc7a9c135240e33e3d4e0130f087850c3e78941751d59664feb9a762596f0b1353e97021965e44781da2f3150fbb7bb76dede2f4829b1c7944c13afe2efd41808c9b27ad0bc414fe5c0d045e59699b9d7bc35ccf0e4a29e52bc726fd2394f27f9b565fab7a7e230b7d430fbbd97f09a8665d989a59492462965963db6856146d5f79257d007582b68ce76773762ddbc20e6b179296b1e2b3756b3ae819eea9357d9bfbbbbbbbbbbbbbb3bbbca934883bbbbbb7f11bc5a1a83babbbfaaf6fbc7f08aa97f83a6a018f78113223fb25d0b52b4f0f2176f2c325b68a0420d4fb1091f68a2f37750c622d1353dfc8035a4a93471060d33c648bb394489ec46c3ec8fff02b0869a0646d7b454c77c0d352f743146c628258661b29f419087a9faa95dbb1c84affbb33b848955aeda9c5a665fd3e6f6ec2ef669d48711aa7d19ccbf953f03514c77c99ec00439a8a14d45196073b68faf3a376ad3326498337c0650688008b527941fbbf230559fdd86196ad526da041165f6a34d9c79adcd2a4105506ab8db63a4f60099a0bbbb7d9973b08ab3777fc762654d5b9e12f0a4e1a7b14cdb58b610a494524aeffe6ec0ac6c23742e114ce15eec7d8c02e92a1d7bf9c9c056d2930948d77e16f84bb90e8506ae576dcfe0483da99e547ecd2583262cfad1756d6cbf462356205dc7a075d728c1ba1c0e448e8d6e94d92aa064df9989ca4b7dc8178e0411253d6cea8e1f5db357552139db773d368b21db6f40490f9b1a7b6806fda321a4f26fdd2a13a1df2855f95de6ed7744d77e0cdcaa040867ddadc95046817095d8a3a043cdd81a29d7b0c60fa7931b552e31b02f23734852de20225e6958cbdf78e375dfcbc6ae305bee771b06aaac1a08a4761c28773f903f1b5a9c911fb94a263670ab1a5881ca815d3ff0b3a17120fb67c3397025f6d9700eabb2415ec9969804e29a5c41ccd1bae64312ad30f78464b6cce66c5648a28b31caf620be13e85032e236dd5dd07422420ed80004ce42052f2ca068569014a253a712e3e0f7ec1e13bca086a7d86ce4b5384489768a74b2aa658ca069769c4bdb7b6f56d39490f90aba28bdba45612ea00b3cb29eaa8d803a30358d9d577e586a02db969e969e6d3f6bb5f4742d2f35e1d2aa614ba989ca5a2f616212e85a5df618fd68b8d4cd6c50b70f5b7aba168d545d9ab53e28f841a078b33368b6ac55f941206f8607043ca46b77f0c414eaf2770caa9c61ae0c4f924406b6b3d38954ce30e3679f0c95336cdc0102da249b24b4513943acf19bd194175b4117634295d728c98809afc20ea87bd464d41a2519f58c968c7c46508078f4a4f2e8a7f2484ae56fdf0ea89bc2ab100baa523a2bdc794857dd6ec619a246f6da472778c15fa33ca4abc6101c0b5a38d8092a63418e7d889d60fac4192ca8f2674dc50c3b201aa43a7de20cff2809d08c5255d139c2c4e9ed8056ce2b5d1a958074d57e6563e8ba2e7e34586235cb362fcbb20c0ce527f2e4ec485c5a5ee92ab1c98bbc7262f13496ab85b5dc8661db7998f6119929efe3808bf70223faf7187f4cfed78413aa10fb307b996119e87d1b98bcdf139f13310088c1010038e4f03521a383e7c2e3a498bb0ec6196f1e80b5df90269c984cc11b6e00400c0e3864600e8b65983664ee0e3ab870317ff6876fc8e40fa56b81f0b4e7954d0f4104217db8e91be60722f28a59db8a816196658e81915559f63559964d0d86878137df8dde8fc118e88e619f6518f632730c7bc7fc73626a03f03e27260be17d4d007d1a98fc5f13933fd4228e101527c7bb80cec79afccba37e32b02c7b2ca3cb35e7050f332e76a009d118b105001098a7728d21006a9ca9f187984a6f80f1a08ab58f46d61a44f410b424f430a1115522e2cd42e1d79eba48f3524cba66adb053d81fa7a1a986fb23e2af86fbb35588331c85ca3f269821b398d5cf622d61635331a7a1ea9b86a793e408248427b6aa4bca3cdb102a8698fc7d9c70a4025163152e2b64eb6c2ce5c4bc4b3d0aed3fd64c8211e51f9deae866eeb306bfceefbfd7bb93fe728dc823e00e6c775dc78db49c7447f7d8b793de3f7e478c9e4443aeddfb4eed7777e9edeede5ed38ceb5feadbbfce7d06ee90cf446d90b9cffc33daa3eb8eee8890ab7cf7e7b8e6fe07d78e54c3f2cddddccddd1fb2340d7f7877f792fb95ededcd46604b1da428ecb3e75e4749e4f9370d6df8b74effb6ecdfe732d247c3f43d32652b5485b6a0fddc0f534657a8982197653f3f1afe3b9686fe3a4a347ad4fb332ef4c9d8e87660acdd5dd73d0e37f738bcfe384d02bf67014f3f02433f41ee57d3e9edef71f8259522772943066ace7fdf35b3ef56b6a76946743ffa74a2d9b7c78540ee4fa0c6321cf5fab58f86fc1d1d0d37d3d1fd90327b6e7bd7c13e199b06ca8a61ee8ed9e89ca79c4eeda00b56b10abf38a1db5f908858b5df5e488d60f83a3afbd7328a81214791debddf5c83ce9bb973cf89883562ccbc4c576ea1108ce3406721953519a5cac7690c7c56c96e7e2e74dccee4e7ef62c464d0711ce856eed4f8314a23f5155b9155bbf137bef3b8145804fd4059d2d33a5dc48a293e4e8e300fb3b088f2c364c91a599d178ff8a446b731c6c499f8ce2aae04f3079a38e31c5d2a56c508863192be7b7b87f6bb5b2c366732be888914f50ba591ba2b87f815fe0a5bca4a293e272cc3ef58746b48fb14a9a1e66a5765694452b7a2faf01a6aae96b2ab61e1c745dd9854ccd15cae3d21d66855a85c9b7e2d56b958c50be4aabc400b4595136f3c5e714dccd9eed6bae3f6c7deafeedf0b5b42c7eedd4e774a97cc3aa8424950bda9b10a254d2a922475546315488c54172e7cecc73823a486fd92a21ad5f4065585d8cb284d62985be3479494afaafe184ad21baaea5455bdc66f179c8356e595acda99ffc854c96255ca7fbce54e5c4f7e6a034599c2abec9b6e3e5de3733a9df6745ae9ad5671988b62f68b57fef22bb8660b8a418e458d4172488d41456adcf1560d4fdb0e6b3c3349cf94cadb6b0b6a4df31f1a5fd77ffc27fb993d51fba28f555477a5dc7cb2974b7774cbc749dd5e5916f2ba8d93dff77dd987a790d771fdec21afe3dc9dfa8f47c1b490273ff49ffdcc7f4e31740c49f2645f46987014d6119fb6426749bce1709fd4fd64349dc11e53e5773b2dc35ebb6b875bbbb912cc100dc99daed9962c0c8ec9be602e88db5902f6cb6f46d7ecb7a0aed97c38260b836bb22f4e5bd01654994996712864a2f6e89ad106533e4dbca31ca54d2a3f67c4c7d6f0e43f8e058f1339a5480f142c488a562685c814ae787305cd0fee3f2dc3af69739e4effec3af9c419b6e1f8e29bc1b5e9c9c80c3d4eb23e0f478eeeda74858a195d2f8974cde6d3279eb9a369739e4efffe53f94fa7cd87c6d7de7c5ad33adb7c2a3f0966463faf416e04b3c3d311dea81b2b2936a37f6c75ea3531c75fdd749fb06a9f0bed8b932ec684fdaadbf7f6fddb6f9b6def76f6db6aebdb5658a1b2896bbaad10655836936ea058b3404c387b4e04730a56f14f509b3cb54f9b126fb2069a126fe2f6ad6da0d330b2ca5365d4fb85828ed399dbcb960698d4d8d240912a62a053631530585277a8b10a184051f90b1b5b36d41a114aa7d5bc3090fbc00cff637ce9ce1f6afc58fe47a7612874bdd140695be6f55823360a245220fbb2e98c7d6c51fd19aae90d559df1430393bb4c8bec328bd11d926a3fb6b214bae8c3dcf0f4a15a4513a63019a08b0b833f3e2f8cfdb8f48838231903c219bf588f411bfe1d11c4e57e363270437ebbe0a7f60ba9fdd11052fbf733826b3310ceb48f3dba1ffb3542526755b6cd81b0ab4c3d005db7de6963e47ec5b5fb2178d5df7d11df80eea5d474dd15b5dba8b9721054a31535ba725084b2f7d5a334a2852ea5eefb62ce8b454cd3b6fb888d4c2e1c0455f99df603afbab7e1157ff7382dadeb34ade300cfd5be7b8f57da771f633aba6359180dba2947a42f71ed39bfb3ac9b9b70cdc9093fa91886fd528ffb358d06db2671b4a39d996994699a898634272c9bfd1de671fb072f193d9635e8ac5aa26b541e7baf530137caf4b7006394318151c914b57b92e847d8771ca753b31f7d9765a3e944c5a7b894d6f76db649e83cb6347b0cfb24348de44dacf5733a8d98b00a7bee89997dfcc92fc642c540f3b16717e9b1d38a8b1f62a8b5384d7004ae5095d389627e45ed9d6ca7f667d248edca23a6a280789ddf435427fd12d5c12aec88fd49816c25d1309b31a256d4fe1dd97a1ee781c9756046970ea6d4e8d20150ed62f779f19b812a3d10afd9f710d5f74a600f234814c8caef08d18f2890ad9386fbdc7bdf8def331da8d1ef67ef81a811bda1aafbfdf33bcf5b30a3d1f346a04c5d57791f0d173b38aa04ab44348990d7ebd8f77617b95d6ec442a81b5b77a9730ff7f092cffbbaeffba50dd83ecdc346a18fae2544964994262f273a462af61826127d2016dba3ad03c37ed3703475b51412629732c42d32a30b07532ac76ddc3d73dc3e64a9bb7d38da8da66978b5cfeab67d8c22b8266e5b8cb239a9dbf61bc3aa6d7bf934dbb66d34be721cd7c9d8e6382d66932be81afb4c5641032b6a43204ae5df9e541a34a922edbb70b38fc616bf87a846fadd63df11d86714c8d68dcaef884b9a3141903f5d3344c98a04ea9a214abed1c7d4c797afee638b8f328b56d0eb061ee4af7853fa88f19c1af537cec94c23711c8691380ec330d1148542ac178b08ebc522e2ad8048623e05b6b0423145a43022a22d445eacd72be60b7d32b8f7ca7ab188601cc68d5efba205090fd01658564ea4d1fa966953143af9ec0b161d56b190a0bfa5f4aafc2c4990c49a9314a24ccd0a0d694e34549146eb291f12e8b44f4ceb24852da695c5b456625a5a4c8b14d31ac5b44cf4650aeb9ba290c86bb0ab1b882485eda46042230f0391a462503127174b12161a8ce4148538cc25a608a21067fa6240ad65f653e01c8598d0d4b9f2a44f86ca933e1a5ebb9fdfc8e5e462d1d917fc9f6c52599220e161395143a37a962425242516139624376049c2928425098925c91c51962418d8c2625589be4c0931e15ea3a08884cad110060a222d263c2e608b0e91962147586661b434115f2ca9fcdf144eb0e874b48585bd3012c775261333875c565ec585e5e4bd6dcbb39c54bdb385e5e4bdb9b438f122f462b578d5bd38acdb345f0965a08f45811bf89c988c4303f75af9b08646f52713ab1454c222a6c582f169192743882ff88b50f9b3a0291c1ab8d78a0c5aa0128598848a30104b5b587166092e4c246ad1a2c5c95b58fe747af71696933738eb8bf5e2b02f44fa42a415d007c9e5a5b4534a4189a7d4851250e9552a83f7b6b22a2ca520962492c34e3ea725b0982002955ebc62e16155a90c71c5f282d33b0d6b68361aaa5668f827159625f89c5c2c2660d17901cf898635353cb9fce4729d5c538548cb845c585d1330ac38d3c28403b1077e17b0e589e8033f0a6c692202d1d332fcdf4867478a298e90680bebc57a71d8375a0191b8fc062279f91006fac0fe87567dfc9895fbef8525c9139f569ce1120f4c12e28b2238a92d5ec10c61bb25040186f59a1267609a08410c7a190396022bea8b1798647183209fb085d5a203b638d1d2049122acc2680bebc57ab1247995824e2eacc4e385ca1fc6b42a7fcb4e0bebe4ea9a9621462a3f76721599f4650a8be492da564024e07f2012fa1888e4e5331089cb87c01fd1d75c3e050e49ddc0b32ff8798ee40c711f1603c2dc00c2242102c14f419856cbf083208c088471c12c01617ae24c926f42e587a1020a97781606cc0de20bfe2964105530522abf0613a5f2937250f947535e7e5c21265df3e205a0294071024fcd0968545c88c94b1a2a3f1662f2328610931485f12905b15e5c8610c18a74d8c68119b6b05e2c5e75438860453aac1484711b8824f5a8d4c9757a424cab5992300b0da22aaca151852f7d5a80304ce20cffe909304d2af30aa607f125087c017a75cd4b1aa20c12e2cb2ba6d5352f5e8832347891c29284572f5980e9a991014d0b5427a82c820a456598262abf5c359cb58508d8c26a19c22af6e84b8849e5b0145a6102c20481302f982b582f169152d0968148528f69298cc3380e63b16a8358c54024a997a90daa21cc8b6705336c61d51616f8d335a857500d5b582dacd5505c55b15878c7119c2514b3bb7910a1ebe2eeee013a292857f9ab083f526cf887c0c1312a43a9fcdeeb555e9dca1c8316eeeea4777756699d7c612ccc8910aaf4302f24c705449528ca002efff2395cfee54bff42832829d11c2f0f4383fcbf7c1098777921392e20ccbf80dfb93aa06e0b2bdd141a6e35c929b5f412a8249fd4d2cb24c4d5bf7475cdcb974af34bd4748669a211793ee6847cc1bccb3ff1fff2292f4495ea3b40ca0b51865f250d5186a77bd82743a42f7dc75fabbc0aa9e5c3510f8d14509ce157797da5e78f023348354524cef097e80c5255d989334c2ad11e9b456a4abc213d7fead5355ff23ec655d855f4318abe6f01595e2528decce75f6175cd4bea636a34923f9d0b680b2a34944faabf9c52fd575cfe301e3f1a4e4a05557e5398f242e8c2aafc2330544943e54f81e18a4ec73abb46023daf64126ec8a6485794c9de058c312351e9d3c2f4130c2fa053faae8b9f8717d0092fa033a344437f92e9fb5b4a254a431e42aae9b39e60ac24300c85706495163d4eef6bf118c6f2a75fd9517a5357024befe0ec2f95be65d43362c2a32695476ffa12387a91c8292af4fe25940824899e64fa92935efb397aa7a1cf2fd1d82c2a6982a17ca14274c6665149b4f4fea5f79f8fd325d267a9d497e8dcaf00995702471fbf026c4d85a61fd1152aa689a6be4477a43e4477b47cc9c1d0949a2d9f3daabfd4e27d898627cf31acf4a6ef4aa009c4486f9a1846fad29b54a8871951a2a449430ff316186df15e8b1634c4fc39f0c756ecb1f730eeb1d07f7334fa6e31f9ced1934091c9647aa7a17c5513fd3efb3e1a0aa93d8a383cff034b1fbfd2e370971c3499dec1152aa61cf598c0705402b275fefcd0cf289544dfb137c1d077ec954a3fbb687a07c30be8ac3831fd43f9da6f46e9498fd3f50b47bf3d090c99a84eccf0074f0db31f855ef459887e8fc3fd5e07eee4215f150838eb068612e8b9808e8d16b53b760d62a053fb71d805c5a81f489f7893bdeab261f22fc7048b29fb7d8aa4e16ca27ab75349fedc1ae6946ea7ba744d2031b066f7de64c2ab26b3359df02a722ffa8937fb11887bf1ea0a2e88c342f6a07b2139eb79def7de7b3488f75f976175391a8aa6d083fa5337cabdb82bb8200e0b5671629821f79a4cba55b97da6ab07e062ff6894614a9f2a3f7e422a0fe953251d0013f64547ef55f9bd4efa00491e74fc118b4a6892ae143c4a3269c55cd487ac83a36536c855658b13496322ac23b316abe467521ad9bcc7616a81deb980dea3c02e052af1fe09d65a7ce95118cba3c0964f0da03d308665e47fd734b551f51cc24878dfbd02fa996680bfa5cbb725b5a9b9767faa6c498c869a4dbcc95e7e10375bb35b4384ba3a4aa8f26548f9db237fa55c28552e8eae9172c723106764b832f2655443952fe5b3127146c629327aa0308a83a5e56de20df6f28388353b04d992eec31fa332b4dffe1836bccac12aee322aa6945dc8a8985d7dc82f6bf14356bef4fbb34395bf3e52abf2d5ca116ffce5272046f9e157c3e892544c6679d423d1f2a98f1f0e97770153e04e792de19487b77cfc5038bc8f15875b4016b03f077ff7f35740d19340ee55c0d1b700435f02bfd7429ed799463f6488e8877cdf0961e1589f9691ffc90d8a2d135a20d9c25ae416e6924c4224b7e842c742d27865811be20a0351c5ef4baad86718d88f51b5340ca2eeb37f28aaa1aadae0c499fdae23160a31507b887a6c165b5d99a8aaacd29a307dacb634c619d98a3365e8565c1063424fa7f6771aafb4ba9e5795f0871334d522d46e3d2994a4d4aebd2a8c3ca9b10a23515406514b5fd4559d5bb8626548edb08d58877af4a92e189d202505b5931e4b21254a6551a580660234540f8ada691e83a412d46ef316dc4182f237790c72212852bb8e41f99d8883c1f458dd7921ae704c8937fcfdddab6bb46f8f4845406745d805d566538d35184fcb208180b862405479a7613c48ecf73340634a4f72fb75748df6dc2b60fb8c6620fbedb9ec378adaed358ada07a306ca2c84180f96640595a56e21fe42d89138d38f81180ce24c3f835f5d3056b1f383ea200fcf91b9357bad050fc61acc052bd3df580f6c70d0d80c6a7f28c3bd60a678a4ab65f6331ccc5daef67740f1264a9f3843aa184f6d778c49d7b4e8604a38c391da8f4db184571c95608624b51f7bc2abd825c80931273bb2084ad0410db128b5dff9945a928253cad371f666782a63718b18d6b52af6fb994bab76fb1a771d0d03a8b5a844ad9685410b15cd08000000059314000028140c09c462a160349e88b2221f14000d8ea04a6e5098c8a31c076298420619820c11000080118091d99000e3243164b85a6ab514ce7976ec0853598da5107ac5cf835fa3ee00d3d7035cc6117c808906c57f01b9a76937559efc07d00f25cc1717b2c3608c762df81c25cd946349a30bafaf2a30fda4a89d816ed4490277013ec0d47dd1323d52fe8ada5efe76315a50f9ba7f8be0ac312a51f7da7147bf2784a173a8481298963c64d802ac459e06133088690809941e6e365d7278addd19645a13b3d9836a43ae09599684226902e118109ab8ccb093c43bae01d3e520d45cf2f137be45f3d73c088357dc8e8efb2d3b5dbfac7d90fcc53d806dc8aa0c8000af86195bc988f6b60b4c67a4803b8595874d126aa9a057dd04c8b87a6b55a314f2eafde5c9226d495783c90bb566dc1d6f7cc73cf753c5f6c5aad673d8ec36fdd68d5e140ec4723db3ddbae7d8c0447dc360317863d36a40fc59b4052fe8e3ca044c97808be3a1c4fee7d4c33949316dc7ee069b0f80a9684c10c2cb769d2ed3d0967a253993cbd2bb36c51befb09e252e92cc3101057645bf2815134c92976a31cb3ffd4d2890d52373c177d0af1f5309a6be32c821fe1b0531a41cecd61da29bca1d6170565abf9ef3a3ab689c75c7959eb53aeeebaacae5d22f260e448ee9d2a9fb9ca217da775ddd02b155915c1b9d7e71fc04b592e6d8bdab678fba620868b29a970fa826b58a154cc64a80ac2a38bc6c235a54c558589ad9afd8a552b3d7a05c497d601cf6e6779f998e7fe98608db7b94e1e43e62e7a170b1e0a6cca08e4a5e160855e75b9cde8d01b0a2deb57ab693c930908eb000fc721d5653968718c2c7838a4cbf54dde47606359834bbfcfbb3224660c82f1d063f06d743595d8f5466eee89772747ceb720377029f856dbb0685b4c2af684fc8976c329cf0c138a7e9cd1d92b9ca607709a79499d41da0ddc4f7ee8e65552e69c6759f248445b97f5e03ae7f226ab57f7c8d8aee46e289cce72d940a2a68a5203ca6f4c862ffa4ed561d53df75192af4f8c174fb7b9f6c81889cb1d97bce6aafb61b03b4170a96d0e97a86e446a8be00bd54d5240bf44c3198d459dd235e3ae924745307df09db3f758a12985d685a9846a266a5295a56ed9ff0f083e908f968353e5cb63107942197aca5b38cef8019923591724c04247a5f2b32ea6c7bc8c8e0746329ce1a1e77f9942f9a287318fcb5b52c81c3694baff251877aa9b21bc37b837ddcd9df6114d84d34f7fabdbac9a48ec4bf5302b2460356c96b44657d3508ccee178802e0725f7e3b67d72dfea03164845344100408fd1eff16391326f005814effcbf8f6289d1eee39b2ba8b0f4348ae368518fbb9a44e721c5e508bc8212c506dd8e491e46068b8f72c180fe1f94c88e60096f2e412e65a4f55a5de0089a21b46137a5fb6c64eee783c98d6b036988204a6523a3d054c91760102437e734530535590569a70e52770870c05493aa8c3df8486c631c23b461de405fc06047f14c16da2649a4d5773123de6d697f8e1c7c32454bc7661834d3d0854f94208a54124a62b91042fb09fb56f7e3ffa93c81dd56c12bdde89ef574676a00599da8d1b7bf69eeaf84657ad57fbac68af3bab6b8ae13b883a9f99863acabac930e587e1a0af04ed4a674322a5619d6885dc54ae2231d32342d181f28ac2d1042e796f44bd14a97db1e6a8ad217a56c1d03075f57b9f8f3f0dbec697d94a25a555683243e93ac461bb3b5526f82b11e0f83b06b6aac6c841bb5931914811e7230e2e4d991ff5aa0d78cb73eff71e07e94957bb64b79667898048a14a498713c059ee33f6612abd3eb835eb92d7dc085b7d9e32e5e9b9ec0888b43d4d2b3e9b1ee7a9d1b1de64cbf2af56394c07ba929898133c57c55cb8bdf4c4187acceb98986486390178699c843059c90d0c090c81da68822b8729b25765ef5840842113d5d3d4291333956332937ad5382f52987f2ac3d173e144f0e71e91837a4ede08053e0f8e631580013137f1a53b5eac18bea359af24305054d536855db9926815ce295c14e031c0c27ead1be657e0b05a875ce880d43f8b21e4033951bf030ed917713fa83a499645862b6e3c93cf7198bae7e00c710c3d0193ba1a4412e027f816bdbfc3a4f5a0b66171c660878c2c6e234c49ba5900ca8b601ff991c3ca923801c3266e8e3dca91c4bc13b70e47a6fa6950dbf9fa4515070f532fc20c255edfda20f22159559d44613949a0e32b0f96b6985dab06dbab7623abcf602b749614eb4f2fc3662748a13c45ed8f50553094dec3d4d712954af737f7a7dd53001281bc462ce12e03c37eb9d39e8b1871609a49bc1a8845f361d636601c5be78cb1e232c3f5708d9b785ed94c003e9fb251156a26c69fde70f5d9792ae12000af6ae4923d2e000409d9880114561305ba28dc6874d0518949b7a622cafc19eca9788a90455f0bad32829852f689500be524fd7fc0c43ce9427a4a83b025d4df5583a53c688d6d2abee6b8cfbaed4f3e0b1c495aa75261f48b39cb47573688abaf943d969adda1a8097a9ac512d22884e25804dfdd5bae24a28f8951e8edf21f25a4b406760cad98a18b714ceaacaa9361186b97672ceea2a7eec1ad0b0cb1a7888fc0d08ac30de9b2cea4e8cb1f3f010448cebd564d4253241d0a0705a32b4b1543300a6a4c2b926342c9ff951adc2c25ac8a9bbbde0ba33e55014591ebb1fc091a31aade671831bd1ac2086a9780f7a981d888455915e05d931b9af3ea74fec511c3d5f06da4709603713f06a3d18759ba43321021263a7cd5a7621979ba1270442e3254051dc0d42bbf8ac1f0479b7224bbd85625683108d842424da92ca148ffe21881230f5ec33488a75ea6019760640a2b27fe542cb34f5638c1b1548f40a62f362efb4a79d8fc57adb58b5550d8054b8965802be18bd05de52d22598ecd62496ebe03e3b204eb5174a41698d0acec83dc1b39352ba9c0666510361ed66eb392c19fbb09b7fb63900e3834291d2426d6f534c9af0f51904364d0fa27ddc7938449426d273c703da471c47f89d0d9f26345037776135ad08415bb987e4a136ca995eaa803f718f2c2f4a84ebe4f04d3b587603c7ae07b0092d08b1054e9326c28082695800b8fcd16cce3ff651e0040fc7f91df6f1e7d117a6c6570bf5cdaa874f085d94f04f822f45a4b22a2ca779d2278424a0d291ae6b975214497163e9cb9cff62ea7741c938607be4c65fc115bd018a26613edf43dae86cb24da00df74246da58949de68d9835d38b7d247d7232b2b1db183011806ed445bc64f5a8f9ee8782fdb32316a15755f3629a7031371e21d3710c29500378f0ba62ad81397324731ff559f54fca317a160acba6da167b3a031e7ede9a1096952bcc4c1143283887d237f6dd0b9f84990eb2f4776c17b2bf659d06391a03c7fb7450c4dfaf38b7dc649985905d063afb61f76f7d847e886aaad569fb05dd159f4b75a1c4f15fecdd551be33c69962fd8dd095997844f9ae29341168ad32645a20b5867f39b8d882ae2c3c8d7e6b71a1fa94b64b5dcea7640116a45c7dc69b565f5cbb6a44ecfe7d27152d3f973881a6829ab8255b84359ab199f3896c1d184f7cb289fa93e6c5e3c252a3022fde965b60ae8eb68b89810169d1008163319fc33ab720846944c4565c846f728af64a1f7833b0eaf8c68ded178059187278f25668970875b51c7d2e768916611883c58c6512dee7c8544cdde836c3cb3f460ad0a6b885a9bf8b33fe75d2d80465490759b473e5af5842f438d5433a05659112cfe1310b1f7191f07248210d6b13fd47ad797c9b58ee5f93e683a9003d2686e338852585b7e68c3aa21a8824719b675ca420437211f7dd4eaf90bfe78885b3c375870719c92513d58909c10b35c283d4fbfe9be0965c3188df2625c0b79c403e0144ad89b7f720c60b357a2967e7cdf3d17cc34f9d3ff0d9ac3a5b9b834dd936ab4b1fc350e2e2d1978e8373872e900d3c662b041e0d5f2323e0dca16734ee48b913ae82ed02fdd70d3b59f613e194a92d8ad3aa10719f3b94f0d96f9f8dfdb9430430a1b54bdb50440e2583b62c2106ddc0ce3acae016f3c23758635f1f4c32f3b44050d90a60e059c69db7450bd42b4300b8a02beeaf6380435267f93593b21ebac7a83b91293f84a2fc752693d29227905c16bc71975c87294242e0443027a71c20c8367af8e2c8343fb87bba6c2b308f1a8c4358ee9383477239b1528c8dc119d5bcf70f71079132c5f0e83a3ef3437bf31327714c0d560354963e06164a48715c4f0ced646bc04ee7ce854cea2a67e1f96bf894c6f9b59140bcefd4b6da87378794e1b43473e020a6b1a3eb88559f2eb389f5064da479d385d194b98ace1335a86bea2806661beacd25f501f0201b1115dc2b96b796db392e895e8aa148a4500207309a4a286a8be57c7bcc036dddd5491d3b424fb9057385291c7b60fc645f6dfc019aba011593b31254b300147df7fbe60432f628836a0d1b98090a64befdc063f8f1ba92a7d8cb5abec74c4b98993fbfd833499a70609f3c0cda681383cc3850404e9ae075c5e38ebfddb8316164d97e5a187c3d199f14d2d8aba0d3c1f9f214eaf53740b764449961228f3afcaa2d8e3a28456cdef40ca782a4eb9a247cb2923e484847a5dd3c1cd2c3630ce477fa7c5d25012933e1055e1c5b7a01448f7262ccbe908a4534f5cbecf860ceb5efc6d6b01fd747f59fb7b9f84c31d105b7d161f26b6f25f24840e3bcd2242cf9ddb726a75cfcd88c4370f7089f818766591bee4fb5a75aa682b5ed048b38c1787d042c813baf2fd2fce91182cea778d4fb29b1a64858149b4520f4b3a29d1b9144f3534f9fe41f2d1b9a76cd0b4a39d78b49721cac113ab9459e765b31e8905c2009a18b1508515638107d3cb0cc1579feb36a27e0be1527354d8bbec4bc5bfa46a04faa585e5e924d184e49e87b349fc190e6644a908842b42d362453f74ad56444993e747436229d670406c2519a34f951f7fd92fa752b73029917d9115d4a3a410b6e7d6a91776a32254d0bd7c0a14fafa404d7e26efe5dfde50fd68af9d0402330e5a31a5f73282f87de229d02c6bfcb9f0014ad1d7a36e350546d1dda3778e851cae7b5c7e384841e7739800c2d409537be7b65e1a678ea5d19f0067d5207eb99a9fecbe79bcfe630a59bb838ae1bc210d60d40858a7a77731cc3531eb24b8e868cf5d274fd1eea3d587fa0943aa54d0801be5d50619e9475bb46a7b3cc63a195c7891fe7417657cccaa9549f87a07477e74ee620df92fe748c87cf47e9b83b508eba5ee57c0c190d5efc35b201f6bbf3b2435304c87ca9b6942b95e55dbe99b2c64a1230475c9af95bff1a39669b983107829c41546468aba8898c6e518b29b3e8d227b7dfc2e213898cc8205771c814a537cbf3b5f13e0263866b4342824c99b89ba54134b2d89c1d8fcce04a52128773b36375d2f226a74986d5e333b2a597b68f1e360225f79e2cb7faaf0e287e4f9cde0cac02e29dac11a4adcb8441350e77364a0d46c55005c26156a87353dcb240d8ea22452ffaa3f9281bccf06c98c95cbb35aa24ab0cc2044bd0baf71a7566f93b8e0ab661f8cc258ae1a7530983a75a1dff2a34acb9d60e7be55f75c449fefc530f934193fb8d1a8ea7e9078f56a641d6086cc2a0806369118456a0b2c1f748e0e6bc769dd861c81a8c5e16fca782cb87f8ac56f662a432ac3c02bce192c9ef8bd4d9494a04359db9dd38381b87cfe426009ae8b804a7e79e2f4faa96c673a1aaaecc70f236276e6db42d73197944f96778c333ce8f7cf969d7fcdc9f4382a7d2382e523a062555edc572508860f56236be235ec7f3c983009803ecda04609aa3495dc69b582ee329e8f2e48f405ea9e6239f6ede607d857b8d95e05a2b6ca908af9454dab1b218d8c767a9a2b99e339a16b2eea72087e3cf259b67dd5243eb14d471be4c3f3cc08a719ab9da47f247796dd3cd28c6a12774fda1a7a3a64569a9134e4707ff7dad12cdb7198ac66d3a9b5f83d711d0ef047089c14a079a00ac69164decbc5eb910add204fc153354e6696ac55e3e657720270f26e532903488ca5c001843e2025cd03c6bd67c4d4942709ef95525d49dbf24227c9fcaa5238209b5ecd3fadae14bb54f25be114cafbdedc973c51f05f999279dc57844bcc4f1a5400f41e11fb7201c7f35838b691cd2b9a68d7c21ada487a181e5cde1179b8687daf59e607452a5c6a1223c04e80aa8a9cbd7e93fd3f9d0378dbcf7b229b614b4693769a8ec45906ced32acb5ba4980380743fdce6679c19ae0416031e6bd24d93f98a086ed00e02619b9730d4d6eca93b62e2179e053850cda946daaa6679ef53df0bf5e50ca478c3ad9c1b8fd6219581fe3a2b2acd1a02ff7d2b6a45af07e134328300c144ca9f6f977aa197be0c259a522b271870f82694328d894410f0ee0553d8373189411ef240ab11490fbfbea93b8bfa6e76157d121cbe7ecac52e16fac0faf989bb046fd9211760a987b3ef23c6e1b42d3cda36947afcae07c5c345b5b396de842391cb8439703fd72b2e78bc7fbfaa75b36430c5dc4bbdf8023309590580032c69bfa1a0747abde3c22bc9a18e418bad588537b0c2d197a7e7f086210dfe58becfa7f73f19c58809af15f3729a0323a6910ad34c0b54ea54131041fa0f8f52214df196d97602aefc5a34d4e3d4ed7e18c536a3cb9fc3f792ecc8739cb8281be52f6c26ef0aad48b7a036082cd5fcc8ec4b723bb8ecd18efacd85444c2f32ddc3c9c38235e68cd938284595ef6e51e32945c155be97d0e5d2da40fa79d8040d482c010f3baac584a1cabd4fd9eae5adf12e009b184c1f8fba1d21105af07098a582eb3bf6e3aa0cef06c2f29ac003af095eb0d851af5d314beddefa56ca48de121862798753bb1948605765e5f0af87106743f333c3b7e2116d33141ebb14e2389340dbee0756330375d80f0a234c40941e55b05e1f6937555105363516e487c84d876f9b79bdf06fea4308a4f7c7105cee45eaadaf818e808b8f80f1a72edb72488e61fd8f46e6317350c4d43e30c99032a98af23063a158b8e01070c96532f0f3f04bb5d5292ec4b8b8a9101a21ab82e7e36065986ef400698f5c67520eb03d7858596e6c17ae17c3c2d6768f565450fd08a8aba0ce98c282a4a2986fe7165077a176e1fb30ca9b227a4331e2b157e974792df03b8b6b5baaf8d0af182a81206dab182b99bed4e208e380966f13a78b363dea75cca30b48a494ba5700c6e64512875e3c439aaec9d0535d0b6db551cb3d2f2e4893679d15e7a269fe118a3178a60a3aa59493f20dbd7c5bb5709e5b212e6d0b2f4fde69db2ff84c0ca913759c1b2256829387084e052a5ee92de6f109d4692e1fec588d9c0acce1cfe0f1ac4e95c5e78aa23520bf7dd1f475d5a3de2a1c31163a3b9cf73231e3d23dd95e6edfc13075350b97c36bf70a164aa91274e8a84abbd7e53a3c4112e060b00793f379ea3a5fbc6944e5715e8d3284e34080fca99f69968b6f466239d0e4cf27b8652e944ef8f63320798e255dbc5838ff76e94cc7f1716a49e8dfa7bc69d8bd179da5daab7423e890bf852d2742bbc8de8095633ee31178a153e862fbeb62e5543cfe86c7781c778df8b45b60af030402979892388d93c26202a07d076fc22b57c4c64b9bdbcb989ec4748d3d04c2bb71847c289a563f92fe56353d01d5a69b77182b40ca47322f9927a911c5989a00ddedcc429453a9279e8290dd2a2e899a2bb45ddbf4a7e5a0dc6c97097add7de40d31104b8da8d73d3e881bc689a37b32e297506839c3d3667a528e72ff30a9fd176610ac29540809e7b443e29fe955431f6bd0ca6b6917bbaf7a22d43c4b237d881198dbff4b2c4d56ae3004070a24f56acecb916f1ad3c125a7db05abed53026d57827b186a8b76253e341e32e3b4ba248d2ccdf0da4e458d18e361221d98586a3d08fa9c2d734b0668566f334f42708e225ee243ecf8d9a4d1e47cf1e29dfbe5afcb9c75347f26c8fb175a9b5f1a3ac48716877e6e4343c2d89207799991ad0ff53112ddf6e3aa4f3a513c11a828107d382cc195fef21c7782dfc9574bd02c0610bd84d94eaefbbeca24fbdbd8876f6ea9d67ce56ce5303e539f70101c640889d1dba1580ccdeba1e3c3a7357f40a0594a54d1af2c555b9c1f7e4356ea130fcb4b1be9a530e71e9184cca392356416745a8e1f22f0d1c657bb3fba6c918dddc6271337bddff337981c9be259938913469fc4e7aaabd33db8af17c2a107bec02d6e43cd848372b822a51c0fe50e62965934e2f6282e63709263d68b6a1f1779cc0792f08a6a7d52d09d3540d8037f2897872160044c732c249accab0b1e2968f84678c41c4a2cf3e49f47e72ccb26d3ffae9db08d4f1411cabe7009071b671fd0a54855748d6411177ce57e3af56d009ebcc29fe44d170dfd7e5065555b2cefe49d60ab0d4bb3a829627c0f780a4ef8638e5212531be5b3c44d94e27943991d46f500e8d1617590eeb5e28e2ce20b91d6875bad26a47b42ebb8cee112689f564b121c77c9345eb745d060e2b85ebd0f9da416bc29a97d459c883ec12625a5e4fcd90511dacf86036ec0c05cc7f6894d13f6aa920487c9866d64474523cc5dc89069dd63833a46ccedab5e3fe240a94cb7bbcbdb0d3a5693dcffb3ff3a2251adcbebe8638f1780e3d7a4ee854e19e626676295f4d437c5638e7dd1f75706717c1f448a371d1e5491713160e76a08ce1d4c0438a5791b18d6d61bd0c48c2ef81426c85a518a095ee158667ef12fe4ca33ade1d75ef6bb4b8f1e86257f78ece39b05caa1d7106d5cd9bd438cd1ac195edf05a067cf13373ee6f9976100989c9e695751f186885a4e3ac9a026d75564087cc0789e8a7c7423d64669464a73748fe2bda0f330c345c93673c9b956d3dff818de2800bf3d51631892eb6b71d7dbddc27a714db499bf31f83eecbefa38ed53d7b346cb838e69b4d113a04b6ffdaf24f6d47fafab4a82eebf0b607617ee02a3afd048be959267df075a8d5ff5dcf397e1a8b3c5c30ddee29f626d5482a29426652c45e1d2fcef798e2da8ba2fe0a73cc3f63680c801f4b460cfec477d58bd3c88f4463e02065c959be25201bbd1afbc7490bd2af22cadc0266b06cdfec6194b86b9ae32daa47bbf256be89580734af9c71ddd7757a3196d23278f0b9552ce7ab33f9442fedd9740965dc8f6a8ebe9a78edf135054cdbd07b328ef66784c3f3f0a7e73fef18c7cbaa2c07b1be5624c792bc261ec67d9e611f16a9d46572b9e9483b9145006a583bb8a65e42410edaa8a1960190636cc0d0995e0b65f25068c5c40302bea891b5d7f6e0c287e4e9c6e6219fd2150d7f8d2367b1416f877152e3e38d2a04ff12ab5936d6ddcadb02560c66881bbaf9acfc6d732b2bbd84a95d9b970521cedb0065fc7f32ee83748658509ccf5a6c6690107698db12c74fe6d4802f81546f53998d384dbebec502fc9a6ce8f8e934d503209e0f08417a83279379adad4c94183d0ce2eea9e207e9292642f43d860252bad17f22ae5a53fbb8c48dbf34e85cddfcead95cb73ec5ca405f6520aafaa37f411b70022b56335ab833d5da78ee18b49cdd9344f47f3b44465eba0601988842730ea79e3754eb720b3cf8fb4156a5c40cd663e9bf05acf504654b6b9235a8d625806fa509af3e160a837747e25d09215cb04604bf3ebf344e930871517d305823603a9e262c253e9d9714bcff02b9c6cd5b98217864e77f282bbe05d0062f95b673512b7489cdfb67d1ef6a7f9d97b661fc8dfe93b064e3cd261cebc624a9879e7919888f4b8e68af49d9d8afe0ee9f87a51157d732f17e3610c540c6c7990d63c0e1582f5226ab540289c0b13e9a79afc3a54771c0a9e8168f1201b10f89588b9f30e2c2e78635eeb23b721a74f5c712b120e486d1e22a321b4d86ccd709cc6d06ce44d3b0a8b09bdc0b04c524957fc79498557a6f8095ec57ce825c2399ec4c158a3c9a02f3ea2aef3a1c39edca58d407e633b08318ce9b93d38ce0f7a0e2f2b9146891d94a81f571b1efb206e62d220ce30cefcdbb1bc3a666bf3a4f7418f230008640ef7811c4c03475f8806860fe0b2f6c02e97abc6270f278dc16faf8625734505f94887e605b38f2c03a40ebcef152144c03eb6fa2fd5b154aac4cb8f1d77e093e0acd633845e478e192261e39df9a3c1e62b1b219f3c4c6c513585482d4ba05dce26767b3d24a1c2e50d526bdc07af2feac3349ab5168493257321af3891ce949e6e85993bc7caed34fec5f29e237b170e7e5e745fac732f80b9a97ff6ee53366bc27747debaf44bef7aa53baf09d844890a63605b73d764330e8ad7d239056bcfbcf9c0988ce7e0294e897fcd88db38d909a64bd2c7473b4af23563fd50cf5581e172cabf88b377715a11070584eb80f252144f4081aac561e3a6cb51efc096e00ce63d1e22893d706e75890400b510d47517c4ec5827dbdcc6ef5f7aef965e600b9a1c77b06939b34ebc51259989f5e62b317efc57c075ad1111f10a883dbc0c06d5ceefef755c6a81b460c5b8a2266a765572755c2d90ff1069f98db6f8872253951075be7cbe6cbed49ac7977682143f24d31ade49b3bf6a231d1fb360b3ed6cb80234f53a7cccb2130101b8f905a80c873975ddb9ca812653a8055b5e16f8acfaf8d457281d688710dcc1ae483f18f672223016f9c31bcaaa53c5881a83db380c6e244d787e395818801ee92a18089fbc204f5c79353b0dbf3792382120beb8c80d08606438fc849f3393f02a4d587401b9720af5f21521170e40557aa14bf11386bcf646c3fe423f9e84d9cbce925219c3dcecc5200a6210dce68d0c99395428073cf495f05f039aee0d3143ca6b9d3689e833a0caf4634adb4158f5f70e7f1304840ba38f0be4d4f4a1e988e5159a47a3c3c3ad17059b15b3698e21573f0fc4ddb3c8e39958883ac49722c9f1b46cdafb502c958dd30369ed848429541711cac9d417c256646cfd7fa464c03b521fe13c3db92db7cf3ed6a775b865c15be65c4c362161f2d08b4e34dd628a6ebf0f8e63f0ae11c21d9dd8cb6d754fe2a4a758c69992edca3bb6646df1d97f35435617355c519b0d24147739bbeba1adb3570a71d3b53e37c77e2851b7bd968998959b078d566bd6b29cb9d5e912daf2181bbcea4b5031929d5c7a300ba7d6c8bcf33dcde7247cef8e978bb0f50eee20196b03071d119bd76f69636940d76ab77226e34131585aacafc5685c99c6c4ec582036091c25c1173e4cbe870439dd3d377267599ffd14e55cd39936e34c0a6a1ac20ca9b8460d074edb47a1fde1e02db586ba604cbadd2ab4f63452f9c1e7012d15305f013db669e6922b344c69549c4c553be34630262cf22229a3d5fcdaed7a78f1b82337ff6865c45c417cc21b62fbc2b2b9daee0d5d03ccbd55a789535d433c50b6ce51a0421dc7b7d4e3e25edc2fd86c5ac3093c4e8b1400b9e5768c91c23ac3747d64963f7a9917d68d41e0d84ea68947d35e6fe1ae87d1cdc7e1b691fd1b8bd8f1468e8756e10bfa31e87e8a996e1ed0d87d509721b175f13a715fb0329b6e5cc98bb7f098b2e7bfa93416b3a92b5f0a5e1fd7d60006131cf5ae6221e3c1454641a6f2aa311d3037a53d47a7ecebcc3ffe153822c8f066a5d8b0f7d1bcb168f27d6d70b15280bf67d4b488c661a9a2dd960914566bd40f30902641210ddad9461315a594daf388db42ba8adf4eb277945d08abd3d0a749e0ed7d330bcb351ace7045c0a592b10edc6633215dabca7d72fa6bc0238d509cc42acf2c56e2e8827746bec326d3469ca3f678e7e00002d2a9ded5ff47983d82a54f6faca56396ddec1bc9483fda40b436cabedee743f0e2abd15428754b3ec50456a7d1de561f65af5c667853ef73398ef479d5b6e043dba15e758024821c75cc9e66b6432f0c10a41b4594d7fb0785ead89e1e6754688e80284019e89d85d77caf965aaf3606e7cdbb0d41ad0446072c2821aca03b3c1560ccc3c80c991efdfe011d6756ea2257700542bd7317a49c5016607c1af2d45901a83feee0a7fdab706f372cc25e54f1bd64f5bffd431161970b5771b9656c1ba3f9a6cd5092da43a5306759821cebe8357c8215e7a6e2327d5b47e0bc0fc2a6a9fffd8250c93c8922f4c1fe5e05f918500f7e043c40c6ba04831aed1fbc0ac8ae19cdf05a1ccb81f4d56a77f0380d960fe48185e2d2767bde65ef80c99671d0c443929954cf714d87d62522b7a2027ec58ae4b61868b23c98ea76cc45700537a313fc481df5c1b7d8da12f4ddefd46e0701fded58398051b57b9ee262db8c83e9bf40ecf8bdb53a078a72fca8df9c1140a2adb36c3e9e45081bc0e0c0a09ad283ade9a0ae198d3498456e78a5c317425cd7b0c63af7992e258ca39f897a6dbe27dd0e287ce13ca2ec785d678a02fd445a8b7ffdb27a5c88ad93f99fe4951ae4812e1eead1e6c0c81e10883a7b0ae924f8025ef540cc29a1fdab30b2fc82847e3bb8a0f7a3286ef4e1547e0cef733391903f6a100a1f0cef5add1c1da4dbe3291c92b180fa31863fc7952a44eaeb3ccbeec5c7fafc6f0a1cf6a01675cd6ac3f77680cc53c057490fdfcce6da59d0cca4154636c60ca9dd01d6808f33878c5bdd474f83b4a6644219dc0091e1c1e4f3ddb24a0d38fbe5f7677c19b8834bb0ec9fefb61375d0693360b95fa397a879dd5723dd0b63c82eb28b812bcc960e8c306c35be05df86bc83e4a4ca07ee4eb523c5bdba715726a2e38ff938abf0a3a0232d332d4550ad6232c6218981dfc740d54ee770a3fec1fe0be2870214beeae3cfc9282d7790048bb8ce28ff08915e57940606b9ed0a3ca98d3a80b10cb6b5798fcaa474a101b197946b7017e57aee3c98a50ef692e2d7854120438ffe7fc5747e3726e89040fab4a199130ae6dbd223463c1dcb9457934a600bfeaf7f3b14fe5eec112b8eb467608af82336970ffde00ce02b1b2804606dd3355b37979da4a1b367d2083951ec47ebc29fc5b237bb4700a5975093fe65891ff2793564b1059276128dc8ddbdf96c3b19fc7eec2a460e34e730aa335f50e8bee4ee25bec7088cc50d58254560591b27b9a59990e7038ae2a77136b6db1de8f45fcb249bab3e35001b74561b8abf92ff8b6246afeb2b295bed456b06680a38d4a3edfd54040ff7d9f9c4f775ae5823f0b29c9f63c10dcece5dba96c753756def64960a65d2a37d81f2e88c517f51adc91a9ab23e78a7e1a774f07d63f2b14b7390f1172a1c30ce8b0e3966a2e5f4b5a1051fdacfe5930f4aa62d0148058f49b1fbf9883f01b2dbdb2bf06e813143ddbda6379980d0c050e33da57bc0bffc6b6ca7b32fc23ad5ab550b0eda0d3fbfcac71bc2f3b770f50d478065b93cdb277ad74495cf452a80a1cc0b1936dfb71f3ea65fb47599cf863d4909e2945b1b269e5a6b10a5fe17724d34881939b039eb3be881d40b0563d0347a4ef4ac293375a7e0b18e0e0d6a9bc1471645522ee0c4cbdae29f6c518ce2e1a3435fe4a9fbff607f18c81cf12a7a5bbcac1ba6abe0ed59e3e9fcfdf98944f24d6e1e8f301a064d7a8788ffda28e0029c638e84c4ee90e3df423dcae0ff549a39aa7ae12b652159b063280ba5400b9a4b258f525f122ec8d9f6c2ed9e36638fea207ede70cdda786e7ed6bda96ae7e57019c6b56010ffae68a68174e756e4c606d3f59e7b512b8740479073065b7ef4b31ee5e867696560ef693878cc068ccf236078342e26a65b4b1cfd8dfdd1bc5c213e06e08b878c52f0aaffd36c2ad6e8f9bd657feb7d69ffe706c4d76a566b6313e696a2bd7d72eac39c5cfa5a2fb2635d4e0b65bfe98a26f9494434151ee18ff4c07f072734733cca4435e49ac360949d9288fe606980e6ac2ef4927dc2baa609ccf043646547c50d563a47d179a698bb0350efaa61f8de1028415bd311fd50560448af833bab93f22638dc88cf253c0d6aab144be4222a82b77588d07690e63532fc83fc386d0047ff8cbe6c390b212db4bcf4044ef3b6388d3e7627ac8af53fc470350ec9834eb3434c806d085df910971208649f729a9e74e5e411015bb880a2fea2faece60522faf46fa325b055305eb77200efa9f29ade8149e095496045c41981d33c28adf5e34e603812446f678913f3a97c705a486705c3c1dcf21d6e03d816d29d7f566ad2d654443724a561f6867c9a6e6177b35bf273a4f7fa0f24a66794eebb88cbfba6705daf47a061439cb7087613937a2a5eeee5ef48e3236bf64b49a9650025f0b27c04096e30de1de7f959419b74878a36db121275c7b4b11c5d00907485a60bf826103b9f2205b40089be4ad2fdc2b1ebaa25bef76ee2ff202603a5ba86171d364a43736fe2bad57c3076119905ee351542eff0a40e5e653e3b2a39bfdca485ff7f3df9f27a2b3f5a5b5773195cc1f23f8121be6139d566b269800eedb23441b663c4a0d460a54b7a91ff3f253e93f34ba285b3a895da7a0417c4d5123aa03eb0e780fc355ef1b6041513c60e776ae36ec5fe13c128a13f2066b594cfb64e25eed03b8585308b89bb0046af291581befad6601720225aa2ae8b2778a899c767b6ad53869d447eb2078a5d0f2ec17c9b9e09651042b6712b9e73bee5c69b60cb378f0f355d925e3527dc23836e4396e47f600e89b0e0d9fc544405d23d2402a31583b339a00fae7fefc3d4f0cbf271690f24ace4f9659c7766c0f2e5f77a5323728bcc4bb040cb25e0a9b5208b12f38a7c6386095604e4614dc71657c53d071b27933e543cf3ddf43899969a44be167b8872fc45ff4c794f8f6acfa6ea2d316e0847e94270c58d9fe319f639878954809a20424fe6c434feb0ad6aa86dbd83484b1b6a974e2863a0b67a9ee82c02483109a426611eb6aa4f522aa02db1308409e3b63c5b4c8735cef998a179c1646a82c8df8082db241b4b2ef3c65ec30aaaf7a30b2da3c545b8b366174e68b1d3e45430dfbb987312064ec4a682b8c62fbb47be0cf631032cde574c5f71906aff937ec80c87797a70de0d60e9b4eaf2075316966ed236b1a3f1c7233e784802851b20b5c384046aa70925bdf8aba957a3ec38d5f14cd5916af83e2285821c597f9e02974a7cf67b3846eb63bbb4ab2d57b4b57ac4b1051adbd035a7e5f6c18dd97d3d5f3c7962d2434519a58b6e076656008b6ef9abb425ff029cd18377a9cf3155ab0be09ae67aa3f6c947d2344852acc7fc299d64ceb01f6b0c50af7abe830ce1ff96be9ccb8f7f93374cbb6b3807a36c9ef4495f35e8d92ff7e79827a218d5ad63f6c099005d212ffcfe517fcf76162d54c1c7091ab23b9f6d5bd394b1ad0cde54683e706a00e5f5a95a6bacda6ef4512e1d823233e9d56b9451f93c3fd87b4fff5419596ec163b2b2d6c8030e94c68783c3fe2b0e74d24934a34863d1d89ecb5b8766f055defad7edbd07b97d3e51de0abd06c2c175dc95db2cface8085885189ee5a2574a7dd19b62994ed51091bf83cb261459ae29a16d24b2fec89778dafbfcce04649030d9887d02c94ec9cba5cae869a8ca9f06515e043648d9e232fb084dee100da66248b87e905f24857cd39ad5c83482669b08538fb27d1b2e31d544d31b1c99c0f1895f767b52a87f1ceecb632b44ca30064c0ab8b0403a98b07d26b7aa1b2a72b0295c2c322680ce64eaa40c560f405016a6459d55c88bef8cf36cd416b7b06901abf3e0f49920570a48470598b294ad81da2d629c7d8087e4df808bd6e10aace2665cd4cf720441d393e87101327d928abe34fb9aa7f7671424dc977b2681751bee6da52fa86ba9feaab3e41600c8f8b8127d0f300252204c18570a1e96ef3607618f4ffccc0a225f9ae67466f34702299b906cf9004e0c9677f41cd2c098a1371aa9d05679fceed38623f99ad374d2b4b9e905fdb0100ab9b92612012b41e36c7dd451dc83d26d5c1c4719618a1004d86aabf9e2558ed4eddf0c5d80948bd2a9e02d37f75150aa6b69974f1fd4025b8d47051d91b386cad9df34b5be77e197726c87a7b453b0fbac1842e2848fd33da39495dd5e17f84142c0cad250277f1ab5d93f51b0fa064f6b1bb8a8ab863131479f626add1b0ff05409c44f8ba3937c289c418a5e5438a57628bcf082ed43209e16262751e25b6fa6ca4fa574028f4c0755f38f8a32c1d98d20ae327ecaac1892e27254883cb571933046fe24dc146f317e7d34ab387903ca7c83df0c06bfb2dade1dad954c9cea5115ff4e9f6864270d53f7eb115eb082f56a640b1b5d4f090a8c1039f915fde9aa0b84ee788395263e532f0d9b0cd93ae998217890b03416b0b90e12d3662703de978d534d307b988074fa49ab642f40f58b1f3cf84508e739b907034343a74cbab79c5d4c4e24166fb72fd62a2c621c904c76a25894286e574b51b874880941c44c7de1b703cc8d44118c22a0d4f88b78f36e4528302e18786bd80840c76022fbe2742ec5e8dba7e382cc340f33861c3e48cdf4b10c1645b11579f112e2e7e89ceab54e72c1dd041bb021d8327e7df54f7f0aacee4ee0b32c8bcb09f7e099af8a13a71bc3257755ff5dc2052d2fb7f8bf810fd2c53b95d3ee7f6d798d664f748b845f06b87d1ad144497e4637280eec11fc9dc3ff1afde9b8f9d0bb7ed7e850a91b4e137ada1451d509a81d0d1afb031bad534dc13532869fe83d9ca7f6e0c20166be764f38a19c209ac67c50cc56530b5ba9fce98816af0bb8489f120d9a5a46fd2988b6db20fd675bd1f1f0db45cc5e0a755d50718d1ce92c634eed2bfd7183c91f5229283718406df90376e03c2f9a017f6c83adb4f11e49b8ff43bdef32801861f39df22a4f94d224a6618355548db062c047294132d1b07ff36d6a5a0df6393054a908211a1e4000616a412d29d671ac072b04626f6b25027c8361b9b2d9a37cf8fd406d2a5fb3cf060a52c32947f91182b40c9127ad2546530c600359e669c883187d315040d3bf0c4000d7cb914ab56ea1f7d6935f9b11f1e46382cda7b2996363b03310fac56cee88524ca030a0f751431922bc27483e82340f801b3b1fd04e6eac6634fa7fb357533c81ada9e3e22946c68f0d413e40928245586d96dfc8e25023d00ca123ab2d11bb35fdfe2d928ff1f7486d11c84445e218757675962d08ffc82a7a5ed142a185c0006f2d19773350513e35032e12910bdc4a24a2109b06adfd80512f6980639f60ad73708b691098160b1d8f041136dd00e47e39fb86247b25f4d9dfadcb815e356f5c88e346a4efdbc62b7d7f4dfe0c28c49dc035d4981d3e4877d770690f3f43f8fcc2a70f2d10af6dfabce3c1821efd2ae6c6c79ab471d83c174494274acddb8282920e1e0cf91d7bb8e6ddd482f623552c336151870e5691936fcc305422669e2ea3957a83460472e377cd41bc1efabd70951592f3c5ef821adbfb00ed56575f48155acdb6c24e9b662bb53e0b288bc46325620bdbd5e6b2ab1b58e048f308132a3102d8cca30a473cc30f4524e4d4546c3027dbc0d9170e0bb93acee2a8d2ffa7759883f56ab4317a854f740c46a9da86aff34cab314f1f2832b08846dd24a69779720331abbb27964b5091b7e31c7a10ad88a6a6f7214cf0fc0eb203a7faf7a8f5fb179473963c49a9e0ebbdfd9d6cd6d0103dc89569bd418216523f37478d2ce88ef5ee3f6a5ea5aa66c1f327b0a28dd829afae363794b6bdb31c6c80b4e73922cbc2a1f8764edb356a837216fc75007727bedcb986aae95c1e93208d66960c5d276ce11c2fadb92574a2811bf79632a9164606d0761f28eaed493104addcb5424db502cfb375e891dfe2c67bcadd0ccb5106ca512f9af034be6b30a779c6251fb2c947b5b78627fdbf97b1ceb13b783aa5c6e7d8e50ee4c17d1eba2e5b9e32b5fa77680e1a947b145a31ecceca493632d912d27b6b2ff15fb9a8150a8cd1ea8ca314e8e99bdbc06465fc0468a386b1ba06e17552991c556e31aafc7c806d12190222079a2e357515ff891ec2b4180967e6ccb4f44222f5858985169433fed5892ffc5bf7dde5b032db39e12a8fca57464c3540cff6cff4b87a174d3d64df50553c434d9474feb812de20001f3e7a60349468d13aedeb67ea6d4044681ba6d9a8ade6538f3750a78674f08006b50d7c011464a592932e197d01b0af87097264b79b3ad5682092e733e11fde55174a34115821ac512f895164644ad1829f851289e902cb5f3801cc0a4c8ae6da9d639ec5b9ac6ab6f3d490387aa3020668e64dd074e4fe9b409e352a4b58b07209350fb5c333be0aa4f7738bf3a140800ff5fd23fa78c40edd16fa18ba7afd047d0ca3bdf0c96134638f6b8c535435050294ce6a23af9e5f2d25d370d14c8ef698d426e464c0672e0305c058cc0946b0001adf04c5f1bb99531f40c77e997e228e778712bdef5c2e596be389064ba83242612ccebcbd7807a603ba73f8ce13b6aa893c7fb991a1384334da06f6316b3adeea690561e7611bacb116275defdc40fa03a2325e39d045882cd684e15c229fb2420b89fd74fd2c3310ba505845e0490c609cf20ebee7f151f0ddbabeb5e6748a9b13098a0a929cfb1bc626f4af1931463f8b190769380131bd66fc39c181fe07306c889705d8f21340ea59213122599bb42d2a34468e28bd699d4b46419499918cb2b42642d3a4fa090bc2c43292f0633a4eedf0997461b6f8d5d4f4ba98dadd575bd543bd3b488b60e8b262db43a3ee87d781631bf18b5525e971faebec95f960d2b478f4d45a4352d4093686894405758a61847d3aca5054ea400a86d680c9223c54c83f28f6e6263af40275c288d04aedbf1f0d512028b01f3d5b76f122bf0337e22f075eab4a640c44f19fd7a84ab7b4632d81296611f0acdc23fc4c7132db0d1196693774f3483eafa5f3d67166f4ea714db4552b3ea33d2902dac6b36205375b3658c7f3006862ad4a9e0c8b700b045171e18301dbd50f71ad4dd23c2b8801da8ea6c2193841f9d1177f0e362437b7c44abcad06bb4bd59f35f3ba4143f866f4f8b93c3bbc7cffb52df2fbc2d768831621b1ee111dc8220c81471a41a46df38847255deef8f84a4e662f7e4b22ed6134bda0fe62b048024ed553e416b2e47d2a6cffd54de634ea9a37d68ce82f5e8541e59324737309e74d6b88815a24220bdf90ae401b476b8c6c98d9187fb0f7c1cfc79fb2a79f59575b55fb574eb1091115425902493d0b283cdd0ed51a247f501d24763373243998f19b3b03fe85cf8a8b39a631e3fa0b7d3d837566fdfd7a2c420723aa51fee62c80d618d0f79ef6baa5aade9fc0f5a4234108df1b039d38167ee58f1f9e2d49e09c06840fa6e44404d5364ef8379b4b884f9b8114f59994ab646a4fe54033c65afeaed0b31a717eb25c930bb51833b8eab4757afbd0078e08305f415744798a21cb245a2c0df3138a5139a055bd0b221665257850ca0380ded7aa2f1da493448b849e9ed0294887b9c5319985e634eae7652de49721144999d68d29431da3a492c6b13668c7eea1fd804945a26ab3716c441a4a04dfd500474556237b30716162c117c2937d5982f6c99af0d9af272a0dc8b01089b5468d044b761259ffccf40789246be3112b2304e419323b3ca813f88e0d1a36068531610879af748ae7491c3fb278e796c0eb9772ee1cb797d1061462b73503c8f0dec6429e59b58b509aa16b7e5f7a819a0252653564d960b3de08e3670169a1c506b12e0dd16087740ff77e7d6767c3604297edca0e66122011465e7799372028bb168c1bd0290fd7e2ab5f25cfaf46413ba711ce6bd84acdceae46f0f3ce56f5e2e5e9637e82f17390d35d04f0cfa20e81860e32410eb3c5ef009da2ba3969c79cad083291d1e4f447fbe6a83d0b11b1ae94557db9693b8bceb28ab74506583082d8b695eae864a83b9f5bdd0a3593fb40e82de1566b3662212ab08bfb95d18241cd3942c32eb99cea9c7c5c6231f87b6a4cb63972fb0369d3d668b6b01098201547930abd701030b2af9b13640a41b3dc8b5076fbdc34db4a423ab8fc7024c56caa38be860267ddf218f42ab76c79d0e64fd14ba2a808dff9b8bb5244fe96c84341b73649fdf2ce71cd7581fb34b298a78f11a7995ee9c7e88bdbc054e3fd5557604b4e1cea8a42c86d18406472434e0513a87c33f4f285cba2f752452e2431ac2f718dce779491a26be2914d4f36ecaba8adb389176fc24b3c47e9b6cc65c48f5a968e041fabd5b830903738de3b8276c669c7001fa3d53d35067cbec8b7298fa3170a1649ad2779750aaf5a8f01fd874be1929fa5c231385364f272a565e83c6dc00b7f4f61f579c2760df39020b05815328b5cf26eaf3dd6e98c6c9dd3a271e16a6046c5c80d869273859d33b3c1cc556228cc4ba3cfba4a57ae710d812ffc8bd80dc3451b582d98dab19c451dfd2aa529bb1fede98f80c04082db8f0a3734adbea864e892f6242331f9ce355e356f55056b9643208cf3d4fd2846fb015b1142a0b15dbaeb539d7ef5900069825b700e530a2dec4d51a2b8be5de8eac432153db966c984f35164c88b9c0a698e907ff82a9b185f4a0e345feae08727ad02892ea460ee30000bc818a2d330bcae5c4717f054be194693b733157e6a6c414e2e03fe4250e39697523040a8352e1dd4cb1b0f053a834c16b294e8ccaef9f3cb5191639a6bd54435943dbbb398f4b0f4c51293a678936b0cc4486953bea77645e0cd1e5e19b09bcd1755ff5f00a9e6f4ea089edcf246a8fbf3956a51324d3d6a1a023f8816f82086ed560b0ec9b5b898c49a19cdf56303a2529243a4ddd325dd9d0b76af492cecafa07f7bb1a6b1a4a9c37a85266c9b4703ba0db122bbb7b7ce27b0540e9bf4d50348b51f0ed50c62d0c0801dcd725941ecb9a9b518def1049216500362fa7d8c908b084ece5133d0f8a6a45b9ae0e0ff028f11a77bb749e57788657803333f1a1565153284d0acddcb7bc30b5de9f7b2a6417467256220a9b28686f31bd733aa0464702c7d7a77adfc4bbb4b89ed675bfa1418d7183c62dd8569b7cc36fc893718ffc6e857068cf5e388b6e319b2a2277bfcc64bc6d8c5a6e9ebbb9cf468f997cb26233625280f893d7806fc2e4d21d1a4485068b164fe06ce476afe17728a843ad5511a3002046a95da7f6f16a4840bfa3355f802836dd4bed426695b41244202c2e44c0120321e09b8c8430cc407c1222a98f92f47cbc24f5f8ba1e91bf3d2eed42f63f914505782e96c28a93db6a39308989ef4f08786f382cc5c347a9098a0b5ad8f4d8f8744f042a0b4816eb078c524efea8aa5989ada459990f76423044ff69c5d81f297a836d458404a6581da0219eb505f8e4ca098ad418c9db26cadd087388ede5844794710ddd4e2d84a3565d00ebc6eedc86d5155d0c6d058dc6888ab874e367ccb5a250fa5ea63cbaecc92554eb355abf71ac5e785b3c65a531e12e2eb4168c2f6af7c2d56a1b1b334b859aa34be2d4d946af384428f03e81dd1b8433eebd16ba737ebabf5399bb5ba58b2d295c5894307009b4e3d86825b8bbeba3d8d29ca3a0670b940fe03c9876ea3b8ba8f9ca36fcda244731de8ef9d63fd254ace177befa27fe3147ac4db03cb2b39ee0a9c444c65621125e0337034a989ce3c1a7fec6f8120a0d3a8901a321f6e32b1cbb36f12395b3e65da9d2a83931ede105dc84232c0198010ed7deb80297674e840781f1d2bc6c5cac35d3e19a04c753c371c59f3f50774c0dd8ed1104d537b0b93ce90e0db586312b084ad5a0987b39482dfc8ff2832df72d15ee7e8558c4bc85cc6f309b28c95287114f0f6d8f729e8839b4a0a767517bbb0724dcaa51ca752461408d3f43e26e7b03c9c0eebad43c23178ecbf01590571d2c369b33f21fd9312e9a22f19846183645816188ba2a998e902bd650607b96c1a25378bd828ca472652dd8a43a75fb75460f3a80544c205d6e1a9cef0936c993532ee047d6e22642a53e8d6b91f90d35f99828b7dfbc5f0f09df58ac9ecca005717a98b602180ad5ffa349bd87ee17374a505ca8897f2f5cdc64d226504b140d536bf1a061a1c44eb986ad265229291f73cb016a7afff6a50d94d42d42393ca6bea6e5dc8d7f808bd1ce30a44e05e65f091c06f5e59882fbfc9ac8a44631ed09b60e2113ffd3cae6074e3e7fee78850031ac14bd6be02ff68c2e8a05708d7f8c9d06ed8a2c44e81f06206e864e356c106f533496a113b4df01b8b2660d76e9a2dc95d9b03bda4d8c1d0184f5a9bdb8e00db2838059174e6084af297602547d0611a3412d27456d31e354041163645104be896d1c54e3eaa1124f5d6842fced8d43221d51131067a58f3b061d4e71b83e9d3686273f483bd2cb929513bd9389d4268c46213e3512e931d2e30ef1dc04ecec519e4c7557d18b07f75fd9105ebbdd32379a2774eb05c2664f6018281e715661222d26e8ce34d2f93c7856b9204492684f3c67780c722b517851191bd463debdbc0bb021537ac009239d87885b52cfcd596f6168745675e8aa216013c3d95b9627275a2cc8229d653cd7ec5836138c377d474c700bc918f781c76b720e6a450adb41721d3acbaaaa17790ff3592d37ff13d501501122fe5e86b0f037482c50a03944c8041cdc1bbbfcb7c715253467d6ad8777be71fce84bbee07b8b395ea496c26b7b9200410f5ab9702017d217acb6a16baf50d23477e2d66a633f5273873d7612952f520ddf068e6c371e6f84c3dd095c47ca6a6ab34861cab043bd54291e1fa43c7ee28cf1688b51aaff087b812a3a91efe0f10de38b695d91a715788614acfc5da5e59123bdc59fc00b5080f42ab61bcc4ce283768f2f76189b14f4f458293475e44c0b6a86dc9d93907d28dabf78c22175150a4b21870a6c7d5172eb396dbcc18741341586f6f23f2dc1d08717c05f3e6b3208637bcc43089561672228ec07554b6a70cb5f363605fb7f81fee121b581ac368381b0314bfa0b7ac8b7f1a223de52a766acd7118ec2c9eed47448ea37a14e9cdba691b966715fcecd950ed76f90dc170d21b05da9022370f9b8bd34479638922e214897f13094c6754292bc2a8bc5cafa4f10ef0881fe07404b7373deee45b33ce285ca2066320a6135100fdc52ebb70f20910e2eeb8c0ed5da681491805f4ff1d4141e540babbbe54b22d035d858f4fc20efdb038c0107d8d8df673d0e9340e7b2004dd15df4e8e0f256c7948981472d1016b634b24528c7fada18785f345424e34ed70fddce28afd15eba4bf7995d542702275db0538e552f4e8f26e757a732c578abfc5e4b925001c766bd1911d3a45ea0fe3dc3fb1bc125ac261b7162d92951d8694388ef093cc30e9a04a48bb0c47e436b18d8d78f0d8fa73029dee3971c1162e2588c7d5017275105d76df19457a1362ba5b2ff5ff7a83ca80ddb0375d7e79614a073226addbf21f792549935e0e587265c26d0370f40cda5692cef5f7abf51be49257cfa35f1819dfa8bf181fb412610074cbbe74dc10a179745783cf1081f3668f8ed5991dfa89522c29236149e8f9e3f83b0b11799d0e024cd2154867fa6a0908c4a94257bbcef3239bb49a6d906d32f749cb05ecf3412fd7d70d1339fc2054a5f268286e5add17c6149cf26b7f50adf7f9fb41bc5c61ad3a53c1e403ca75a3baa307a11a6bc452026263de26433146af52e195b41f146ec1134b29c09e8530f977f6d39540fffe4d43f9ba70e7dc68909beaf62452c2f991334cbf59633b77ce46313353843bd1921726657990d5997e3c0b14636a9471a992af59990530c2594851046c18e6b1a204431e218bf53de659824f632547bb3501d94411508d708cf9effeb03208d9d45a8e56366784cd31951f21acb9aa6110735358d511723d381a608cfa97dd0f30f13e280f152ada4402bb5e52fec028dc8856a78660e7ed8edc8270489b6a3f268d75692289a04407accd469d6a8718b284012537448a68d3d32bd35d56605cc02a3f0ada03b6e47a831acf10a44f2eacf5d4d5e0d4bf0506d83d2488b2802beb0e68235ddeb8e22935ab059adba6f804bc795e6bb4e81d07b34c0d8860a11def8a9a72ed562f0b3cd40ad769c9325b8ed6ca99de289b56cc7233de4ae2e206d826f6cac7f87fb76e327f5e6fd5f94a5aea2859d7da84168ea069fe5431a1b5c9c973ee55e65412d2989bd0fbdf0f565570932bdbb0adc86efc070e2bcb68e6263fdb1108c41ab82a81292fc5cfd8ce2ddacc4eb57d62ad4cc625dce069b668c4a3f3dc9c1c3b06c0eb514cf68068b29e726a0a93c7c8b3ab0f60283519695e26cd0511895379568103d0bbef948221860a59ee609ed4c07d6740e0582a1861f2d0136ce762687188029f83eb214b4349cfda2c3910c5f67ad957fc61d32a22d4b514c16bf59c2f51325c223b3df1cf6372fef5b43881ebf83dbd716f1c586909706a8abb9e78f0f504bef1ef6b61a1fbb6c0cbc411868d2e1c405813e74371e1eee2afdad28193bfb315e65a409c1b99c27c16a35b539a0ab328b16ae416472d69cb1edd3d3893dd9af887318275350027b601d9fcb6161a3d087517b9845fe06a89ea5183a21348e27b1b0089f0ee310f921793b115d0b9c91c8a6c760884d029d7eb261970401b81780c64713215cb56cf573025e1ba9fc46aff5f59fd511542cbc90a48f04571e613d1146b2ab924bf28ceeb35c05232d9aef2ce5cdfe1f6b3249e42e0c0fbc66d84e06baf0aa972e1afc4232dc2a28f74af23ea0813daefef4ab40c879dc2dd8d2658155cc3c61dc8032dd2286c4c6cb09ce2415c02dc90ab3b64e27a5e9d83925f1d8021e5cd633fb11222035bd16abf136f7a685d09c3fd7d5577b43887e294715d599daafacb10a3d39b9f50652fe400bcd46bc79ba99a113055e74618f55f4b689ec8a749d7f3441a6d25125e8c914ff55ef4c2b0555895c29737d861419001439ef57c79b3cbe60b111dc8ba9d2ac5309897ae28e3f2c91407c9aec9105c5d7931300f160ec6d8be8e8915d3ec3df47b30bbae60db6b6a2bb4d5215ba2e70d06eb8f795507ff4ac817bd902fe355115e6c54edcb5105c1be1b623d487786d5b14111a4fd362c5c0b6ee7ae495e1e3a201bdc28f685a632258e93d03ccb42ca00a5775567f44587c969ca953572d61d0dd41421b0b4e99874c2d4a25fdd9094366d54cafa10e30eab60b2f69a644a280236dde4740c145d9690a486b4d67a33e5a11354e1c412c448c49c0246a62e0eab3e1db9422c2e76e9a5b16d9901d304bcf96eae5871128b704492b2d457c14b4ba7a2058d56319e77fe2d0d4da305018fbd6baa9a96e68341a4658fcccd28b1354d5aba06406a7ffee99fe65442feb7a14cce72c8eaac90dc27fcbd3f7e3a460dc1ba60b9a64cd04b9e30e9b4cd1b413bef0941994e082faca72171cc3d99a0e0aaf650a59fc6dffb0292781982f24c50b2aff54f65e8d77296fd1935aff3a01bbbc5482fe9ff67846fa178d4a0dd1735f3951f3118d81f4cc0143b75bcece964ead264a30f8f10381d7a76718d1e571c19b0a399b0286125e099a6e3919a0c5ccd4405c2441b654c061152282e12599a99e84e17100e38c68208ee7d1a661dd4358cc89bb686b22890287304d490be04647cc724b8906d5f73f7ae27d91820b5c8ea67be1c13ffd8e0a02c4a871793920ff1a85a72e149cd1f4cb7d66f56c168045f07b2b183427907c94e1e39edbb177661275f4cf2e520ca0575e2964faba659368fba02f24574bbbfbe530aeb1c477d07912ba01e2d2dd3d33b898c9d1e2edc1522921a65184ad4ef0f4e5b1926b56641e664b333d44427dac9d2bddfa4da6c6e7781b88d7dc847cc6529d207e801c7868308ceb040b663440d050a8826dfd2a9382cc7e180f30a1ed81e9e87bb969fc92806391b7aa9a651026d8c02575bb2b05018f65e9aa0e096a1932ad5a18658ecd4848b32891d10520936f3231bc8ca6207060f7ea8a42287bde23d728b2fa79c165ace311d1f06d8cf84c102aeddcf8469f187b810af2a324535a0786d5931dd6671af3d0ca266d8eac63c7ba1288e261308ab4b5424191fcf523387a229a414ffd1a6eeebc1ca5a3ad8ddc1de7021489142f5632ef31f02fd63a5762f4ef3be929a076d68187c16eab730fb43eeee5e8d9434db1bb46171ceec0d599caaef01f39f5a93db1ebedd463a0afe505259ff8c5e158e65430ad0f44d0f6caf0f28db26f2559a5ca95b6df7cd6ff4aacf4c50232afe0cbf00e79c5c06d51ae2ffea1c2978258ce1988218e5da345a65f3b5f4844a9c52de57770f4e6112f4ba9e643808725fe865b2c04ca4a1c19d4ee40bc5194e2e3e6d56ee79c80a48273ed909eaf97cdda128b006b988866824c9cd5ae1ef98daaf4403251aaf70d54dc314ae2b3a150ef1199a7be7048677be9f3a830a543bdfea1489176cc112b3c17b71cd6a5a9ef281d4edfecba1a5ff1fed09359a622d1ff1e919b2835383ffec716f1a91d03013716722d1fa73f815a1e20e2e9d48f1b14ea21bd3c4149cfc8eda3b30055f1310f616cdaee60461877a7a20ad1dfb8b65e6821afb8cd986084725d0163c3497b1af9a7cb82f9fecd3aaedc4f5c8ffcad585fed18e0124a23604a4d496b7ef05305c1294b0705c8231bc3cf8c7b8ecfff9dfcbd547fda538261334e5fefd83bf73763b377993080c331f7c3d092f9976189a156b37329cf601725975cd1cc503a3e5032c9bbaae2ce664197d22982a6be5b52dfe77b9905942617bb7703cbec3a0b4865e7dc696afd0c54900990609904e4383e645de05590ec5dbafba1a97e00c2bb108372da63c0c6e7ce49bc87371b715a88d4c065a9a4c38ef595774e98321e0361e73acbe793b6872d65e98989b08c6378dc7e2d75e1a041274dc7a3efd436f5e018e12c8d0e44266ea2353546ca5e77bae8177ab5158b1d48a40bc7f88b59d845755fe39841c313197396785a8016cb5eb23183698139c8bc9ae4875461479387b0cb066a0e198966007b5642513a58adcf97de565573059597694fb2b2ffa9954c0fda4619d8179ca481ee50bd5cde0d21ae867a640de1318c5735860843548d1866a358f5ca10b5bd8a1640544d78aa93ab76c9907d99962a40a4cdbc660eb6e07a31dd27ae9f7364657771996947c04207734e9be061c0c925fb9469e1636f29e570d6fb7b28a01e947e403ff88bfde4bb8c34787f27dc83d5427fc32ce5f4da8213d5e3cb6c678bc8e76f0233ff20e3edcdf35dc2f8af4b912b68ba155ea0a95bfc6e9d962c01e17d5bfd0c2e6e8dd8c55489b997a1a61215e8ee9f5e112c091eeed6259c03473298736a1a3041a3f017aa0db11a572852c911b3e32733f063d13df5c309b81588cc488f492bc32035faa1601f9aab60e8c9b1c941bb25882f2550253b7f4d949933b7ec0affa1224de9f8b3d607e59fc53ce550c0a1524188c017c02f80c3a2e02052885914ce4b4e6113fb4820d2c0b93e9167faf1a7ec2bbf0b618a3ff2b5f6b1383baa6bda386d4a11894887dead6912961fa4e734644ea17fb03375073dcc083b2448eb0a5da91d3345ab77512fbee06d32186bbfea4d7b3954d8d33045b77b5a6d125ac8a3aeec24a44fbd90fb764b96d01d8707c7a6a4023e1a8552c86f9c4a83492c0df2cf66448301b41f90ef19a725d1de0b4170eab5255e698fe17cb9d4c084c98691d6efe1cf78695648733d5a275c18f5f5edda915bfdc65ea13565abb8caa7b2d7c48b968fafd7b16c5617c8d119cb9efd58c9f97b1c40695b98d7599fe102d2afdffc2da3f9de2523197d5b278d6c3d9765681ac47fd0042c9b65c8682330102ca0e108a5ecc25cf9e8321beb3ab748050469011006aae8e8ccad369922d30ffb42056d207b06941c7a9b4c502e801a8cfba07d771ec32983da162f58683100c5f20d083304a8d0184e0d8f873ba70acebeec02723431a569c749a6115f9518ccd4988571983bc5c57292f79068d2182f39ce108af3673a3e5815d5d239d731a6b3344a00a015ecb3301fd53b37d162a2b19cf532824fa12b16d5bbe83c3b0ff76d7761c4264b925881f749064080a52a3f2268d6e92416dcf159081539308c19fc78e64dcbbd3aa6a8d6dc831adfd8e5a168ba99e3afc63431ac277acc08a5f48e71fd1569778dfbf6b7cbed45c4f6fe19fdd518b689895d19e530a92847c65e871ef09bcb0a4b76f0f32000fcab5eb500dab9780f67d453d6833e9c84242f1bb1f8dd6541f0255d0b85443a24ee45d287dae4479ae7a8f12834d688d4b0432e0142483e079978b18823ecfd0c924357dfdb681dffc4be8d733b0a8ef73c7d8b020aaf1f701c1d4229f529d78671846ab8882ddced648fcef5c03054bcbf07beb798218e993ccc468dc85105100fdc3e99ef6e00e21180967d534c83f2e4265943e6f7e82da2e80e4859ed4aa92e4e4b7598e17f3e07b4bdd46125b1e0d2684072e985f7287577639fad96759e05182dc12fc327d23ea8728556422c306e4f1c7e44edcfac49abe07d99abe9550114586387910645c72090f5ce50f9b9620568024100bbf267fabbc9fc202509428147de0f087e0716f148c3d124131ba614f3b95a3f98eeab5791c4dc1d217232fed286db28f7ac7e672ad8e01461182de4e4119457cf985dc21ba5183a9433e89fab148be5931e41ec4b3a2932807be871b0ebdfa5b6d0cda40b24b9f4e749ac2c736fdd4b313219e485ffffcdb9f3efcd1df3ffa117f9a7b03bfe3fc6fdbff5ba95a772e7e8b79ab823c5292d6e46e9b9a9f422923ba6f879763d00df711007125819e30162b9182c2681d3c6e14f68690a64d452ff789fc136ba57521f2df1f12abcc84d1d4985889893a4df9900b5b35c4ca022c2ffaf3df3ec27cc579592655584004d166edbdae063c36683aee7ba3d459764ed0a92eab5485f2ef386f0b97cac56b0a231665b8cf8c80e1d6da206b61b624629c6f43a4f52d8d2abd0251c9de0db5915838cfa79810cb4bc9c50fbeb98e894e38876a46e05cb1a4fd9f029724e3d52c99679070420d5e7cc8c56861d647a924f789ebdeb21a8525926d839081e87fa71ff4a30547921243cf37e8433fdeb2f27e399a3121ebc763fcba0366be73011c1f9bd233f623f6d4e83f7200d95fea144bd95509f9b9722dab225fae36da6ae6f8b2501a3880fc80f9bc42b729e708d5ebc5b09af32bc570014aeed2cf654d517b55020d548a3971dcd30a957fe64068bbdb3dcb897121f4273c6190e63b4ad40f6d3ccc69255baf1a528cba2ad9638723f590430bccb6e2e9315d18f4eff43fe271750b54acfb9dbadd6f6a94d562f309ba98a0ea7413e15e3399f83bccd2107b6287a7bafb52ecc29301dc87e53a8f9e29c2d3a86c42dd710094eed0997d54586863c90b188bcab22d16411d7f1a8115f5bcd01b1a54fee0ef53581c323b31f2422bf5fee45b6132ba049ad6f07740150aa92b684acb67ea88a70a55746356065af33cc9ef0addef4b15564988ae0e57287a6ccf01d30b825a123fbf16cb757717610decbe47db71c5bbe108dd47d2f55b5affa10d28fdb3ace4c8ddf2d54655e2862f492b7187558f063ac0c27e507037941ca54ac7d8ac05dfd3b53fd622bce9ccd0924195b1c7508d4ca4692b0f30a5b81826fa68764c0adfe01800c9acdb487125c2f3bec0102f3cb4a1255c960268b569316563213bf15ff43fc5898ac43da1696040f60d6bf4ae3888604c7a4827fb4bf00973fe92c8ca3f1bc26fe5755c7eae32becae7703b0306889d4887786f3393a511a041aa00dbb2c140796e8d7233aa0da16cd6901cc65c47d80b1b3302426abbd339eb607cb837604d7b543877460ec2b3daa0160a3b4699c2e48b4ce3538af966209a5bedb4b47f9bb486c124aad0dcad5b6cacc3ec79c9b618465fefb43e4c7302e2d0f251411086ab94a1408e98a9440fef43555cebc5f6a3bee0aa888b0f928633bbfed3a1707534ba7fd51c331419a529b01ca6419c39a1d97675bd81da143d4d1a4fde29dc464ab1795edc2aab3d210beffbca5271ab44a2060811cc5f436c5a1136a3f09f4030e1823de4ebd7522d3c0562a882af68e1729725fa87fe8cc99d8a049e4c662bba2d8911afb0f5cc04e6df1b7d62520130d50eb74fef20601e6231bdfb3e4d31c0ccb6af4e629e8c11e9f89fda176637e2cd76a397dc510df92988fdccaef800d2c66c52b947329d3851d8be94a7da0e605b92c87e314d7a2b5273a85f060378858cb41267d9037e68ac3e0dd25a37caf6efe8ad72ecd885de37813f0f7144eea69a89a28e80823b3ae0499b1a67238c36ca32e6a5d63bcb8164169ca7a5232e8d96943c533e89a29174fad0b5c7ac1bf5c3a39252876c8b9005672531862c19396ef0492554b0b60f02e751c947a262fc4f0554c00fb5363548890420bb2b62291bacc0ab1d41468afd055d267dfebbdbaae5c6d9722d150c6119b71e3ceeaea7e3d5d3bdae44bdecc53811ea6d7b566fbff62c1431caedcf0ac8d3025da7f06b37ab96c799e8d5b216b0b8a5572f4f128096c301ac31bd161e69e0ef2351b793fecda07da65eaae4a6410f613dd5af980fee5384189c2944834dd7534972308695b98131ce3ae2355ca21ec079cdf26e9540569e8a17abbdff29d8e8767f1ed277fac975c53319f24bb45262270836ec3ced4da4413ef2ad5c8b34830cdc2210a02b1a38505d856151f65a80ae548a41c68599b46ea3595713455958ee9ff654f0adbd9b1859bbab113ea47a7fa130b295f7d14c4df0e6f54e7c0a668825bf0e2468536e37cefe4b73869f799a5bbadbb386b78c49db9c52dde3c48686a2c07695aa0fb8ee053c9f21813b90ce9eef839eba48b741709aad5379b8c347c1518d1ad0f017274aab7e0fc7739245cd122498ab221b29298b9c9d224581a7189383a6ea608ea8efc8c91dc7ed3fcf426fe9bb33c5720e5ed50cdd38e162f9140c0e0ce8920a5ff2e3a64d8fe20293cda6b1dc9f69302cc99dd0d3c4ed458716ac95ad00035fad542f81df05d11296e6a11e43ebd948f6b1d2eaf743732ebb12f317c2a4bb404ca71cfa58e9da57c782440df2568eae8db484c39cb3d1930eb2497e9fa615b430627dbff941700a4f86cd250a6ae0bca814faa921ef384aefa25acf2f5013862c9268fe4e596ce33fc6a38508b67542c877574f377358f1214e797e35f2030467a1a5573e2e8c6810b3c09fdac46f85cba7d0c929bf071ad9aabb141d2cb6de6cb74395284ac33162b709f460125ed077c769a2ef5e8bd971e778823b6a18acb609f9d685789a6b6cd7221d5df33b833cd0950457f63139ce621a45f744c20c542a23d610707036026a328780453330677add07614f4ac420f01b70393a1247a444a3a6b205f76bb15bba56839512d568bf7a8f440fe48a9909a4dab3957c6c570126ad0fa17579f0cdf51acdaad0b43a4b6594eed006842888ec8d68b260276ea0983d7549d6f6255625fe24df75497a6226d9118e4a228bd7c3280a9dfae00bfbc5f92a61c50ab95a117e7dd837786de922639686781e1827437e3cc5876c7487479dec2dfd04171ab2370ec95cba2c30da8d39001ec139feaa8dceb504f1b83281e9876ebe22d13e0961d9152947f25da42c9161cd4b60f820d4b12ebb3620a744ae6961d207151ab777d9886b3721b822d922840bd7e0d7a3a015d78dee3dc1e56dedbc9b265483809b692aa5c6817f64799f72d2db6560141ad6f9cae8cd4086058c9f438253f8d0d17b0d6acf4751dfeaf9f74ee4b8e7b1f1bfe325e40e9b4342efeb72a7b8f40e43e8a8e3943fc9d2ae5436e96570e3787e63f8a7f228cd809d5729aef532d62fa00facda0d6ad476b933d832b5bdfc69246101f6739f748661903f731c95a2e7d4299c58495ac6d8fb074fca98f8354148e51cdba3e7216af685787796aa4a593618bfa8eebca957311d2b4712eabb8b1642a7755f9247d3fecc718bd9a6d2bba3896d153a56ef76c6f4c447c8e3871177d4c8819b8a3a9b36cdebe89988a9ce7c4d8ee3d33cae917e93e190d917f88db43fc9542280fe91ca38e191fe224ff25ecef6f7c114db6e4d0ac23c4e36e8ca5b14ace224d7073deb907ea037159d49472ac82f00897db1cb6f86f78dd6c404e7af29c362329d0fdf822f4b2e70d6b61da7744f65343edcc3adcc418b6e0ec04351e6aac0d04803a4c11bf0f52a636133153777707617172b27b791d0c4f169936b5c12960b8eda13d3461c46f80c57c49b3dc8643709b276b067241340c9b253cb8149496b7ea2b0101450e1f2035a5d045d87a42f0da146f9486f868f62c6ffa9395a77d5f301110af90a56a2d8f5a2041a58ce9bf12f0154667369115bb3cb3a184715777f89e14fd46f08c257990b1b1fa3bcb3e1bf206a2e63c0beb013a22b465ee24661aebd9fab100e564ea69bf082adb9c797a8580fb6764bd0b991c314fa862f0fbf3c03312d72e4e72b9b2533586f460e98bb66810b3e346727ee89010c7ad1e95c3359b1aa5674a9a1978e5f93162e2db53948672ed6474a3b39eece6ed85b81716420a1600f95fd6d3570394f82662afac1bf4c97426cb0870cebd8c7168becee081b988213e85d119c0e51310505be8443a94eb647e4447f9cd0c44115678542858c80e6f44b6626268ee1a0b1c24e107d08f9babc70ff11a072e8ad089424d91158360ec1405af56ca57445be46174d7cd558d2576efa1986d0b473747f1af9095eb63c18bc7c30ed8c717828b9f102c67a144fa1430ade2091dad35bdb5a0f2306ecae8f7a0c4bc028dbf1888829c11abe7326be1143861acb69fa5b33582946b7665e106fb23af4e0f1f8ea387bff41f968d399d73fde04a9071c11d58e8984ca148a17e32290dacacb22f40c73fe40928f1ba14b64d09afbd4cd7537782b5d508339c0fa2956a707368f2e283cae014ec2c8245686e84f7a7496ed5ebe9332d2ef6e416f802080ccf58b4b0f01b38a34c8a21e627f1ecd1f737fbd018608c3007a0fbbb3d1f4d316fcfad59dca6dd1b78fe80a23890bf2615682eb26a62f549403a28af1de8c954c50e726effd1be845439fa866fd34096ea0268d674ef128be4d36980f9a3821feaf85b9424518bfa9f4073edb3335a7bd66a36c722674cf08f2040e1f84587482921a471d4e146a77486019d4bd22ed0395e8d5da7eeb0849172ab6b7dc59561ae0c67b97014a8cb37edc07eb50fa44701e0901467181b5585badc89a7d475e57fce099f24cd6bfee32d5982f6b555f8db799e9e7e6331a5366232c9710428c71bac468cc5f224308f4a9cad9d968030ae8ca5226654109804f2ca55cb3228e62b029be35e1ca2d0c1d3a1944a300f38f7b19e242c4328310d3c574bda888d63ff7bfcbd9747e199403ce8d1c74cf0f2fdd40c0934feea247351c7e3c4bd178ff7b928f52ade42862808cbcc38c7efa29101a7f0c8ba63224740444d0989f974441c31838ef05aaf8a84785565900e2562b0c4730cac51004c9409cb95647effe71c229b8761545a37184931fbc97f5341470a5ac0103069a6c5190e05696e6ea33a86b50e389240ee0f91841849b1fc75b8b7b125e0d88eb712a1d8af4ec2197556ee60a58c98fa8a3316fa2577a81ef95afe7b6fb26ea3802fde9769f672143f4bfc81963d694b24c5158a93510f54727b311722546cbcc6c7458c910c5a8ca21710d45e703b2549e013c545a6e01225b2483eb35673a1585d958e0e3f37393d4f9a779ed5f3a5d6a3fa48f37b872f6536679e9c25b7a5d4c94b259aba898cf3af7030daef46b2dbe91a2ee441384c5c6aff11ef0e7d2e4ee08b3c0077f8d8e49d9c63549cc0d59045d44922c594a1da0dd0db79252f592560ba01c163fba2ea4b24bdf719bacbeb903ecdadec231f88d537d46d43a622754af26b991344ced1128a0a5cef1e007facb1e83421222937df52b00c77a84d687aeb465880ea3dcd6df5fcf61dc9aa8a9c2a2752296faeca2675019e687f3f46bf3e8220c8d3eb97b6c7b521ba126675d1b25bb2ed90395127469ef7386f2ddf371af7be7eb7f255b95e0af85ec9af0abc6ac1aa61b1fe0805bc4cb9c49a3c9e14462929e63d366352d9b21494e292c9d72cc00eef3a7100e21b988d8c5bdf35ebc370d89d469c0421435cb44914fbcf83d18938955cd674e11895c45f56b30f4a86ae3ebbf7795a14de7ae5f94e988200949e18314340a15023f29ecc5098a835b57cf43011aa1cf0f621db51e0c3b7b2fa70f94f99ec04985d5693e2d24a625985e3d40414c4af40d647ceaf2de3fc3d97f525d264fb2f62f57510011f52e8ead7c09eb05cabea931753a2c8e2569ca024490f1bfa95174b199b926ff413d74c99d9b0174cc2a4bd2dafb06522aa27814a389337255460d6ab04b741520f81e576052e19f3f8cfe786e3c37c7adeb76af34e8e5ef897d63fdb12f9617ebc47e635e16a1f7c57a62dfd877fae7c69b1b6c9b67a29e588756b223d6c1e88d619a9dc528260f45e38a6f998d1e3833e890488cb39c27462e264dceede18a70f6b193b9b4e50624b61cbbf3da87aa8ab379eacf580d322e95f67f31625cc4b368998ac4580184084c6d5f84d887a47bd53ab2a26bae438ca59d81860b280e50da50e257e4cd905002cd7f2814a0896bc28daae04ed6dc393ed0bd01ce663b50f18865002b14d77fb0b6eb7511c3de50349ff5e5d88d65ad8d7f7b652bc8498d4cad234d34b6c4464b1f7afd128a53e97bb9c25ac4e047ba8eab3b8272a600914997280d94f82cc54b682515f5955a1ba82198891421d199ffa8d1ed044ff8c8c595886335e29801e8b0c81bc63ed3f1378a7e2d2ef5853ba588d777c54d1759ba5372b9f10a94275f4c1c36530503d117c7dde778d0eed0c5da0b40975fec041344b8a6aad261697bf7fe554b89c94bb66437656ee2ebab7e160c79ae7143ed29ed97cb4cf5ac4fbb954274aa029adfdfad3af501d196ad0616488cc8aaf5fb510b5c45a65ac4d121f93e14d1fb68218400fe0e0f058e1fb3a630b3528aee2dd7c9c5e31ce84195243810061d1654b800f4493088ee7d4c362702c66bd9374cd4c9fe277e0bd43c9cd9958ec5cc8b75ffc68d3f1affcc8796e621ee83ff354a9fe4130253f97ff292c6610c1aec85841564d35320b254523898bf8d573eed2e114ca0e2d278fc370ebdb00ce58a6b5c53023109523516397353065a33d6bffd519d969837fa125164566f967c48a87ebe18d44d8fdb208a1305b6dff10c719612cd1a0a84a8de3cde36703a4c87a30d4aea91f9d3606018d93809b19ff37e5879227b45e94d0a473c1383e02b83b8c58c41fbfcd0670a58479d32ef092a782343243dabfaab70bcf9e706269f1b251cf86574f1e36f37105965d1d1cd0f1559d56caae9d51e5778f891474e61022017bc2555bee22b47da8c9573b9eed6816bcc60e9e00e7afb3b617d7fb116c3a64438a55c5eea544218d13857c1ead6af3d6bd48dd773bf9a27f5f89d6d57e6fa3a5bd4ee55a288584fb4ab0ccf859fac99597efcfbfef894c5fc7fc1fc2e0dc77731d10275f8b190f266ffa2e4733d7504a89523e384d376f0a8c9e05a215a774460fb451408e63c19cd890dc8d42b684bb1bfc2f472da99aa6208ce7cbaae4c5495d89e13c67a5d355751b9de4f691ada688a956aed31b8a9e8edc0b15d9993050cd9e2c945b51bbe592f36e35e9a7d75a29e66c0241470dc22773c4886c6e4ad2e6d5d4ab3454d3283c32640de2a3262fcb2b9a2d333fa4d3937d60a8208650164dcb90c8329c3dea860109db1ca6059f214ee03af390e9eab341a91e04cb159a1a5c5f96691a1f6dfeb29286d4591c05109622564954f75b55d39aee8873e02c54116d966d215ce2b4b3adc1d3f95bfc2ccb3ee4bd2e647d8b28177304859b6246656da57780349a3a08f401871192f437c42aca21e1f2086480f072446ac871ac5a0338f32743a00a3177223df53e869f864bf8a71f34c5a83c03160b92bf0ef3072639e0b8810333aa8ff232d31bbb20df57a5db336e7cd2effb0f7d7da86ce4e5028c76e33ec59990af64630f2d0607a474c646d3bb12796cb11880c99500d88ed58230a732ddc617868ff4c937854f1111c734a4b719053c666b07b9f7e79f81b35eccb3d7bf280a09b42afa2ad8575361207144b05de4c44b60d5a309a15a903b9316aaccedcfb4cadec88a0902340fec8c20323575fdc9cb04ddc5cf2dcb4dc4a62c99b16b04510223f3b6fbf001c789c791b20f07d43e4245cc075e90d00e8244c4af04f46900d23a958b2b7dc7b6f29a54c5206e00dcf0dc10d35bb5293f9bfd049bd70e41525a7cac2aa95c566be906651c6b283e58685074b0f96168b8be547a5aeb3c2c54a17306c48a0e3ab9b4a550f0f9c1b510ff6fcf8227245910ee20b104f785dc01153a7eeee797980787e785c2d57790157ead5a95ec2e44b946ca596564af512a4f7fcf0f8d0f1dc504a638c1b885d98240986ccf0e269798e785dc07187a68bdffb7be2a1f4a43fd14779d39f72a0bce951b4496f3fed3e519da3f4a427e93837ee06384cd53c200fc803f2785698e0d08b380ec7b97d39acd9df0467acdd6ab59ffaf9c0777006dc361d7ab8227b6601979ec4d9e7b8196fab31ec1fcdf7bb9a6d3310fbea1b554819dcc66df6bb5ee76d017f39e4b6b59bb5968b22baccd8de3e2139a9d84a138e65c716fdd802fb6f3f5cf5f2e8046152c3fe5bcb559209adcecb410b1cf33e4e0bceb8f6b480436ecba129acb1d0530406cb574e9dfacbf3db8f2d7fcbdd7bae39ac5900f7a12776240ba4f0076bbfd6efef0d99ab66e89743106c5abb77ff08d2ee46155246b5eff94691ed169ca9fa46ec4615528673e086ccde90d12ae3f4dc9f5b6b08b9675cfbd8617d0f1019a967b4529b2f1e180c36df41b9effc461c37244629a967b4479a837986b84706ab3ade10b0dc26b0c391d831019a7faa260310f3c5f452e492f23d267008de6c299f44519e944da547d13a44390ee620bd49eb10bd56289541c95166a51697dcaa7d2604898d28c827bf05d4ed3f83cd176e9eec78853875afd553b2090c168c1d525251909a4d3171d56422beacd462cbdcf60a17e20bfdc2b0e7df0bce50d2ce027f2075c2448b2ef3673b04f28043a5da95a6ce94a6903f83820c6000e9a3a5565a6bada33ce106f612246d693857d1aab112483b461ad73dc21a9a2548ef5ae49a2f244d3f37a4e7603f3858aae6e131672a955a99adcc5696d04c78c7d332bd7f9d6dd23b076b49b2a76ed1892e58c02297cb8be887b74c20fb0a38554b318962d3ba755fed6153d58d1888ff41b56997b9215c8c2bc2c966cbdc34076b7962eeee9e2140307d0fcc55a926aec291aa51d54ed5e6cb8ac74a6dadc9bec8355b646bc7385e69e2aab9520be26181c3151616cb0e5fad30f1d58eafc21f4c2b2ad18f97ab5c2926cfcdc5189ce1b6158ac9847202ce703a0421bbd81ac01bff87063fc8f397c6f3f4bff7fef36fe4aa1dff731d9a70606912b97ed01cc57d9fe9379cedc655608f0823559dddc27e614b9422b60c2d1696b6e5892d59018325138a090525e5f4c539a7a9444271a65a74a9828e4c480cb2276c06286680cd10dbd3230416a3ca757895d8fef7b5fd2bcdb7a564655f79fdce4b27754923dd3c9f5d732802c251a136bd2538f499b5892e2f74f2f6a670441232f9a21f3eb6041264cf1fa99d08535bae927673b0f942bfd89eb08b5ad99ec03a2a2b1ea77998b0e70c007b3e7d010eb79b227785c593027677cf27caf2f9f3aec0a42fbde9e96f395bbe2973343b5b7e7d9b3396a914d5a1076e6efd7c8c91488c715aed7f72c8129a3eed75b5993ac3f52d676b4ed5524c5ca76a51c0789bb4e84769b443916be69e62e22f269d6a42d230764001cb959df982f2292939559b2d283ae579f1455f8976111c579e807f87aba90cf00b70c60364e3970c60c00067bef794e030ca20033873ff62ef55e0cc6d69a1a1067086fe75f922aeef02ced08f00d836585d0000007046f457860c7046f44e83df415fadad75ab5bad9e219eedf3783c9b6713fd98a257160511b96880ebf53a8ed6eb755ce83fa0eb755cf883bb2894c4b5a391296802d8d188ce16762782897244afd9e2ab0004009ce1b64f8234dfbb16a56a0b18426e90855f8a255be6ccf7b87c158548f1c3572a2a8f7a4f8be471991ee55134113bc841fa1211a537993ecaa098265e79d4afcce6cba9ce5fa1a1fce91d90f2267d327d8a3ed59447d1a7faf9a7c715678ba7e52a1f587a6040c4688aa4faa55aabad9e9b0ab21e580581aa48c6c50dc8560fcc57e18a9298af42cfcd104f115f492020259e1bd00c3911c6862c1ccc5622b1257aaed8fe37c9f6f7acc039dc806cf99f1c6eae2d3fe460a1298738cf00c5d6dae12bb33d1f95775091cb3dad3d5f52bc7da58338c0cdc1a2cbe44e3ca43ce97b4079d33bb843a9944d5924ab54c09e9887f426d2979e126122620754e7303dca1341fa124a3ed117bd644af944f50e22974ca502e662dc1057d525384cd54e3f53a1699f50f48c02c72868365b46e99b6e4c34fa5f040254eb020e0be6779e56840110baeb7b5a40cc4889852b6cb41d2998f0d8756bc1094cf54acd0938554b3199dfa21361ee9e3fc32bc2481b72cf37e144182f725dd7d159cb5d0a2e14d1992f2a3f5f345bd2a59a4cff95da6cfb9b55f20eda1ac246e51d960b51d85f0ead3733a35ca6b3081640135238429bd64fd5e69c9566ba892e5567a5365f2aadaecc95dafdbe385f48251836b39461b0523bb3e5fba8a5365583c18271038395aaa56a2926a91d183b60d8a498a49aa47660ec806193aa895c9e3ff50cc0ade05aecc962c3c59e7f572bb5e89204cf170f6cb64ccac1529e0eaeefae1fae87008203305f398dabeffdb9b8f26014f498207245982ec2d43d6ff7fe4244314a2db52b4c8a8043914b94e3abeda528c755b526726ddf16fd788982887e8880888288602217121ca66afe97c3dee23ffda9b7041c7a60a712caa3bc89a463668bcc717a92038838b95e22e5495f3ae91a19d7618c6591cb0730eb4907c9daa50f371e5be620b71ea9524ed57ce03055dbb5d48eafe29e2e2c725195ca67a1cf3b82fda3af4222d0b7dd784ac0e176e3341fc07c538eb385012ee333233814b94c3ba626beaaae174f6bb6cc9f2fa6a74382d44a4fd2a217e800d2a3c4d70e9d09cc646ad29a2f3e6bb5ea109316b9acc0f5c3546da5f6c2404418a72f4bd574f84baa068385c49ea99d3dbfb664872220348b5e712562220e1157a21f51e592e1d0033bb9c90393dc36dd4497f974ab764c51aa7184b6cd962f5f8c2fa68fcf2121be98f4cace6c995fc249d02b3526ecf9237066a596041c8a5ca995d9cf16f92a6e06be35be187a609e21de323d7330ed815581c395d003dbf34db508b303840de6cad3f299e926c2d44fd52ecd76bfb647a9d836f5924c676683f7b436f784e0ee43918b5b028b30574d9046b4abc6d99e0e7fa8b14db5e8e5aa29fae1aa22cccf21b764cfe7442ed316619ded50e4f221beaa315f5199affcc8cc57f2e7734b7cb5d1b2f015135f6d7a08b96776b826dd0e5f9d5cc3606d183b5c35534d524c7672aa06d26c7b06af08963b14b9766d8755b69dabedf997005f686d5430366ef83e32c450b5cc40034b0d2e00903123003456540480b26100ab97530d02c0d8b881563b5d46fc992172edf9272bcaf15598b256049b2f30b2f99a0109228ad1f67cd111d10c47261415d953a4b3e7475b69aae62bfff92926be923e98612672390517a6308525b166be6acf1cd6189bf3554dcd8cbe6ad931fa6bd239b9d9229920e1944e3aa7cbf8fa31849be8104ef5498738f51072bb8ef209b3c8daf32f126c843eac46d81e6328c72823a4368a2dfd694fcaa53fc9a41fe59317e5d187b2e84139f4f27b8830a5972f5f1186f4f2dd26c29cfce8e5cf9c08237a197af954d68debbcfb79be1b48911d65ad2501d8d1c8133b5b08b94f5c11c6fe7cd0f62148067b3e88fb10d4853dbffb305464cfff781f8a6cb0e77bf6dc0f4560d8f3c1efc391157b3e073e122eb79190428b2e9fa739e526ba9cb83c2218ff973229f7105d5e6ee3b399135de48332bd892ef2f109b6e77f4e5c618d628727ae3d3f49289bd8f2bd1cfa115b7e9743bf624f28b64c62cff0eaec69b91d52fa328a3d2bacea9062b1654a3e919f0f40347a2331bd9939fe9939b3e999b90d05dd861661be2d5f5ba65c1d75f65661b41ae7d4b4e6728322eac8978dcf664e486f4e39783bee90d2a47bc20eac841e60b95ec7514ff88107e18f07ac9e5047b69e9008bd794210bcd09c949ad252f26ba4a4b17ba38c6195ede8e56cd4a376fc18cfb54937f0a30d4e3f4481dba3481404e9a35028140a8542a1502870a324d2959148596c97e19ce8e24570c8d560c9be2faae8365f50aed9e2ff6f32b1509605e620493319311cded8ac0287a82034a81d5d056e940bf59a2fe195c54833948b8672b16c120d0938bcb10d045b4617fb753bc5a20b69c6dabe371d71887625dd09ea30b7f717cc420cc16d8f2ef7c19ffb12b139195deecbd805c1e6debb7f3d3fc5224cf720254e4448b39c044809d04ea737d1beb11b7395577066d3b788abfc51f9c65c1bd5456a6ecc57562f51c45755d7e02a97796ecdcdce04f9936014317e4a0d8e321920b1c36f7bca875461be442e87e7dd1c656ebc6e04268ab8c00af302295c3096b471c8175e395e0631a10a1c991b2f37822b90a0453b2a7001059bca7d5eae4c9cf092b91d1740a8c95c8f074eb864eef77999c3d1086248b2231356cecba64fd2c48dc9f3795935435e01451397aac6ec018e327e039913663261d5f1b29c89e1092f998b8770858dcc051dc1053832371464072f992bda81c9dcd1e7654984255e32f7e4f3b2018a00024be6923e2fcb2048a125734b9f97bd072c09990c0dd68e4be6c67b729818764ae04cd517f545d0bd76cae1e938c9974b88d0646a64bcaf91b9f944c40ea4168226ee185dead37835ae5d63665861bbbe099ca9f7f479595ea10a3a3217f50428d064ae8a184660237357bad0029acc65f9bc2c8ff840042e99fb31d891b9f9f3b29c020a5c32577f5e9657ecd091b92f3e2fcb2884a02673539f97e5106a3a32574719a44f194a329850524e5106196440a9acb07cd6333cf46b646eae91b9997b2f5f30c77dee3e08e6f07ed33a76982df3bd1d60ff5a39fb8139581da50c27a5479027f4c0a65a2635b50f71461de4e20373d3b5d5f268409f46ecdd000b41370b8bb892379616616af3057cea740551453fb4596c6a77244be2b86a057125611055f46528c58101f8d9e02a8a2f6ad3ff4dbb4d3f5e14e050b6e8cb96af7cf8cbf7547edbb5296d4901c7fd3df81e23b8c30428309bcd6e8889309206d1853efd1d5f640d640b7dda32551d4a2740528732079bb66ab80afcac0d7d3ba3d50657d197afe8b6c99cf982ba914b7e008115913a540ed954b6a9924d7fb3d5860bdcb0e94b2054fa7cce3d4eb897ca00c75a4b8c31d6485981eb31ba2ada80e3fdc4546d010ea5a4d4622968bb46b965956d3247c18da930466bbe5899538da24a3694a26ce68ba976aa9d7680ecf9a726a81da81b5fc521b5217b3eaa07cab5029910c5634f161376886addd4b8d821eac79e4fa5dbf8aa74e3ab702b2151e211e388b8c2335745985ac46578c5b0c153888104136468020423126d907c481953b8af482e920e308de443da3865e1241f2ed7819f764e59b89fb2d82e1d6ca4174c78f7298b18383ce8c075cae2a4851dc3dddd3e937cd2c2a9cc394ea97b2f2d1ca1d2734e86f92a3c699183e42117e7c260bbadbb838a9d98c415764254cd15d671d53c6971717c45725d18c415490713dbb8135c5607360bc15a970ebc6413434ccb42f85639c7555607ae30c7b2107c95ad88aaf92fa428c4162ef6246971c59e242b807698637bb3a4d7c633120acb063924d28c44b255569550755e3bdbe511615c0971457ac2f29036304dca98bf5d1e7bfe25bde6939ed86a251bdab6d12a91b822bd6677d3484f905ed886f80af3a5cad88f42c8df2a91786b84d9a8af7cc5d12d76e4624f29ecf8a0f88269b39b317ac4c071d56c451799f3ebeee097167adc9d8fe5abf0b66e936f877f6e22ae3857dd0ce47542d417e24b7dcd166f9eb81061e29fb688366a1129e3c4c44f3ba75a84a911c66fcb5571756d002bd9ecfa9a2f98568b481b78e6d5fa9a15d9d3cadc9739c64d9863319208734c861cd50e732ce758d6c9b2e832bd9c245bf11f9499041c03c757b209f285f49a2d4b88394984d97e7e36226d905c52462ccbb215198b3d3fca2c857c644fdafc7c687bb673146ecbfbf9d7069e0e73133b44c592f01294a4d77cb93b93e49236728e94313f9c26bd28e9ee5019a29a40318172a17ea05ed165e6970d3290ddf2556ee293ec391f75b327a6cd97d31762cb4cda386d11654c1b2e8ac0b51317a4b0e7df29258ddcf3eecc971ccb39d206b609736ceee49c4e87a72fec896db89fa75a886dac0fa26d22ba4c971c0b02b69136ac135286259299608bb0e78759b62790e8323fc425d8f3b92460fbdaf3ab8eaf6c7e4597f9bfe5d34e74393139d540ac135d726ccfd0be6acdb3f9525b3996655ad8ecf9f9485692693688edf999896685398b1914769877f6b42c296cd064877ac79ef2e5ab10ebecf9831dda20b53d1feb4418fff95b8489d19241843a2ba6c859a2024b2d1c3b2bba2081e78eaf42ae365f246b32d9f259328b1b53e16a16c19e92a22fe5a8e71d9cf97c8c73ce09ca8f57059b7e38b70c38b3e5a38d7b2365d01f9df8cb80736fa48dcf8e94415f069c79b2099de39080458f23430f19e8e71bb7a89a2ff38caaf9899f1d492b28741a2e5f9d3c7d1a3f7c357afa345ef305e5e9c72201b8f1d5117f3981cd88cd283243e62b19c62137d850430ab5c319311fedcff6ec5b069cf972b2993aac3143f5e9f04b3ac4249d6539a3e4ac335be88b729e85725e9269aea28f73cec255f43f39d75c45df933313575196dac966beb034f116fa230e65513b55c3dba0ea743863480d97ae3f6766969aab98b0ecb88a4a3a7fb8b093d8c910579d009fc04e869cd0c08a93c3f3eb6cd31997ec394f1973b38506568dc5255e13b7dad1155e139f9d4d6fe6cb09cc5be8531c9ec036fd9b4d6d38ba6287279b13d8f6610a13299de842976c21e80e4f362c3531e08ada57060d061403784518f932e06001038a4d67c880b3e9005ed1858601c7e8c2daf3431a589b7e3823b6e9d3409f069b0853377d19b40873e9a774586a9b0d4dab9b130fd917caee767cdab2aefaf673d4b7bf691d767b1d559fecd7c85c60d21e2a87b90bc8d843dd6c7d5b23c2408000f12502718b2bec39a510450f36c036b8cad6a8536116475e495d522a4daf26eed4a50d1b080c5e760c37a684e058041c5f3ee0c65468626dfa7703dfd3e1f56e40eda65f9acd97d353d40e3b507ffa7b65f37b307dcaf7507a94276207394e8ff244a0f4a97eca9b3ee5fda44f53f390f2a63f559d23a5547a942fcdbf17638c4b43c09fbfae08f3f2fe64365bbc1f791ffae8bdc8743d1e4fd775a173dfd7ecf971fa46159e2babd13da107b67b5ff2dee4d927e5906ef92739e4f64887173677488797894df127879fbd259dd26cd3973bd185fe2d0196e08c1034604927c2784fbbea01d1660bfd0a0ac18526106dbe5422987a0e82711d881696926cfa206808280692818e8074403393907b24747365a19b56e8556395487c2925892df4adb02249922b683a74437549270b5cfd4b1f1f97f2e72d5288a7050e4337251d1616930963ffda79f7f2764288ec3074137e9bfe97c36fcbea5eddabfc0ebcf1466afad2f7de7d1a72a6576895d8a27d6ba74338211eaea23774b3e9c7cc18f7e85fd9115fe9f86ae6ab6e49ad7bfaf2ab1009981f769cac21175d3af54c195fa20c35899cc464fbe89b26a223229a5e35e3735f2333a38e51772ff529ea90effa14e70ed3fad78fdb9c7a7a3dc51f42ee53fd1cdcfbdb97fb149f881dd027c29f7b227660758eed14f5a96a1efcb91939e46f4fc4a667785ce0dac58d29f93532329fa696ef691da7f93dcc16effebe100c8832f8191065b6bf5a870ecec4e97009d64b0d821ab3c56b644a456ad07c00feaa98963ab3c5b94dcb2c44178f32d7cb35325dae91d1614a9bee3dad43c705749c2dee1f0403a20cf70c88325e290998f3a674491cdb72e1b8b673df65f9b1e6a9351084cb1828840eeeb9d942254c7a2873e4fea40ccd57a71d76f83b6cb6f8e9b483cef68f3bc7129cf62c7c4b1d39fbc480a3ccb462083868c944191b304801122378f860c9386ccbd43629403712fb677a6c2818632a8c352aa59433ffa0da957ad55700708fd98275d9f13f3cb2e08cbd80af6a9dfff9f9df9c60ca579fbd3bb87e1c37c2186532c5380e33d7a6fe63707015a70f00ea30634f5d836a0367ccd816b880abf6fc9f1a03aa4d5da5c30d356a74356c19b0688ac1610b4fc605cdb0413a06363b4016385fb570be92b1590fb705963a7f654716e73e3c5f369a51b6699728699fec2d6fb1a57e760d02cc81db368ff6b51fcda27db78fe6d0bedc473368dfeea319efeb7d347ff6fd3cfb7e1fcde0bee047f397efbe9f8f666f5fd0b775fb823e9ab96d5fd147b3dd75d37d495fe9337da794140fd536bad4df3ab0a7c701d4ea0199b2e9e86543eda8a51ed1b0f4d569c7bff5e37cc5b2e35f5aa74beaf92ed02a2cead01572dacc79447c9947c416ff24925042091ad08009269a984dc85df5b4c1024b195daa6856d87502b768fc5b513091c0f5291069fdbe42296128a552ea0bc4553787567a734220f4c3fba25e74892e52577d5f5477d1c57f0b38bc2f7973e4cb555bc039fae6007195dfd7bcaf9be3abeb235f970970fcf0b6702eac7b6de1082ae842270649841d8991c5208991c5e8c4e834e14615378adc88dd88b5b8f082b7048ef7f096dc41b6e413f36945801138dc7a70607bd9a3878c83ab9c9b19011907db634a2a65eb09d99ad2ea70550fbe9a3d38e5a6de6c5ce55b0fae8a4db6ef3af34d047263d55895cd17efa58462fe2637296b955fb3a53ee5200fe02ac731ff8463eefa764b69a5102c3f741c9a99b9ed3d1cc74251dfabdfd5ef4104ac5ab50f4f482aca6975285d8eab0dfe2353fda8aaa1c60d72e496bb01b570e36719021c8dc480ecbaa391d88f1d8d3c116bed682476b343ba3d66b3bd1d8d20610c7195f20c504aa30cb7bd9755dd8ce7366f0a02c4167f772be0b0c69e4de00238c81ab1060e525623d6a84258dbffda9b536c4912573458115734a24a471661662f766850b2fd238ded4e80edde8ebcd96147f7f6e3864f3c70bfbd03b8ed89e8a676c0f6dc739a08fb9bc60ee07e935df6a4c0579f72786fdfd371b648cee6ba63ed4dcb57a1b5d91375636f622c0b37dbdff6f0f10a12036261b6c8f6696d7c15d69d8d84d79df962b7f7dfc1ea93033822bae7640eab63d327071061edd7c8f4601dd0e91d74cc6cd93e9625824bb9a308541821a5747ff1f01d8b4085085473c895eff4b3467cdc60474e081176eca0608267048a2bcc3929152283628b2f08220085cc3c42b4b085ece06e07c83b41c8ba40e489c1e8eae064f40392488ad290279886608132848bd168343a39716287b6803b7d2f407970a08281ac7886b07c46820085954f45454565652508344ddaf1e2e405a9500f6044b1630a9ca941ea532830601809021321c8767455140215b210b610a488931d8d1881043418a1470d283e7031550100b00a32be205cb851e5c12488353bc6930e3ac6a7119c71f7f831c6e831fa8c594f8f317a4cc93ac32c9582e12b330ec6c1b821dec2c1aac0d4815859b2425b0162084f4bb6566a9e160c06f342a5eeb6d24a8f14190283c1669e3b0e26856cb0cd5ecf5770e68b968309817175eef099cfecf51997e78e3ddfdba42f719ad79c89afea64cd1dbeda6c90983c7cb54d9cd9c357be7d9e126ba752306a2a653d315f859e580c307df798aa6d162bc1de0ef6c860b3583b6955ea40acccb60e25335af1c9dff43525ad6307ae7394dea4759454def43a48295f727729a54aae31a3d68a4f2a5ff3f553525e45eb48617995d781b2f22991a2bc5da94dd2fb5796951c8b59bd6114bb529ba40994de14672a2415bd129cbe3a266dd22cfb137d2967bea8b866884b39a5598d66ba027b1e07eade9be1bdb7bde779da07efc10f7f003de941207dfa7ef4f2493a942aaef9f271273ae430fe601557690696a8c02f023d07d2e0f721a443b97d2c106d0657e024b9d90e72907cacc3cffd98ebc9a52560aefbb3fb03c14cf7777516db1ff48038eceef47d4597db446c71590c22516cbf50e4ec199556b3a835af4c4ab320389666db2b4d45b6e38b1a947c209f93afe6dce6a456da2ab3ffcc52c7c8a4fcfa99d6d8a239ce181dea2e6394faefcda6f3fdb276d82041bd16fd9a53835458bd5df6be664e871e0d36fd507aade842af9ed59c1aa4c2ea105751e9795f696ab84dc74c9b6bad39f7a69393085714d2b350be378755166fce7c01c9643a3ab3da9ddd99630ce2b03b46179ace6362676c034f3c883ef439443ace1cf8bfdfc099effb1ecce00c0802811e6ffcdfa766e30cc4f67cde7f99fb9b3d3a47375b3d6e8fd030db3e7e95cd974d5f1cb75a06ee19e39c50ec89433f6280022bf988c1155de6094cc9094c0cd861e4c88073027bd9e9081a58148b23f6a4ed4903eb657bce7f5984e960e49cc0429b86d974ba84eb534a29a594fef19a29a51377f4e1d1fd8c4c11a37cc5fd065efbd9f71c9ac0afe0e73fe2006cee2fb7e54f02666c70fb64b9b94f91fb93e5beddb7811f317e077308c006b9f7bcdc1bf73897a8c0e06fffd11283dc831f8d5286b7fdbb4bc3e9215619bbea1bd56049714cfb7e628c3af4480b6a2c16cb04371c21140696198bc582818d1f5c018609708a29765e2c160b05045002ebb0d448820a3625c4565a2c16ebe6250927a8436c7cac20b14ac20e2a7c2f168b55820184a12bc285eb86c5621d6103173858c762b1583602d04215428dc5621941830add0f6ec662b15210001d256a33a600953082198bc55a818c201f2d642c16cb0500c8a133171f1879d5e0c41cb2d150c512d7080fb61b168bd58219b6a832d8582c16eba6e505a09112d4582c160f150abe2d662c164b89185514013e41c662b178c8e0855b04c662b19280810508e4c562b1705249b00d6c8bc56225f1820a21a42ad3b0a9042d419e8225840a99018dc2582c96097e0a2328019c22892754168bc562018b146040e2085860d1152a72b8d81148a44065054870020c5052ec84a10e618112903851d1032262d022c5b5c9ac30010a50a85822d68211a4c024c5cc0839e0a2348326f38644058e16e689144d7a608b80a4052f998f91912170c1c59260036fb158ac1488a83042f4841b168b9544a80bb8081858e02c168ba544ddf2415308d5b01229701085198bc54ae2a3848e0a198bc5baf144117a02c662b15e0012810947e40a47bc582cd6cd1784214c90b4ee131b0c7c48168bc54281f79a4cacdcb058ac127438f0ac405b2c164b059c0cb817c41a8bc54ac1568487273b62cbff92b0454210a2220845e80d8bc57a41050307862dff4b01e5c296c50c168b858279854e960425375e055a84da922dff33818c58624c4d9bde1160fa71b6a51412852c6cf99fbf7c3232a4a65d43a502785cfa9766fa11f420a66b1ca19a297168d69ea8fdb14bb2e37b31ce5c50ec199d50c294043e62c7aa025bc417e24b55416c8943e2d72de2aa461155b1562baeb031ac4c360d624597092a22b64c9a156eced5b732d939ae9ad26b8299d8f3e9e7568491211baac34c03101332b7a2cbccd9f34935d2ce4927c25cdc8a2e399a5595dc18e3f4172913bfc6a5042695f1a91730f5029e2fb79c744381c4da33c4c518611cc554229d6c2f9f7af7033d9f0f44df73cadb1c82bcb0e7dfc82d4405c84f7ce0491285e1b369696464ef6a3a6102dc298ff281dec3715ff3dd2928a612e964d30f3dcd5727ba4cd187f2b2a28b0764d4fdf71a892cce4db2e783f0c7037ed76382a45d1d4a98fc5e1b841361b89f1f8dcbdbf7aab0e8227dd26a395ba9876a92495e2b6e4c1de053adb5d6d25a3ffbcacf66d5be115b1bac29096270982ff4ebef5023cc22616f52bb7e7e5755db950066430d6b43dbce2aadd67c55c3beb0bd632a0940add8cdad919dd37dce39a70ee3b6f4ba15f8611146b5a92ad636fd9818e98e1d3c97673e80ab24f731c13878514c8ec3f871cc5514c7366b7fc3b24d8b60fa544a0f4d9409a6541fc0551446a90a708885a03bc4786442c949dfe61857d103b88afe1138c4308c87e098ff74296bad307fc1b089296cd3a73818c372eb93410cd99e42ac6787ea3855e22bfcc19f8f473e7d984e8cc206cc28a51824604691c51cd12175a86ed489baae8b41221aa1483a64d931b29823313aa5528c2c06c9f572e86d46f9ed87af423a943b84f2e0c71c414141f9181d5f818ff2129c41d112c7286c50321883048533abeb920cd7d846e1cc170e45a370503848626431486cfeee0e0ff434d8813148a40cd0e66f834e38a983e27526922bee98e24ece7c9938238dd224cf217dc973e60e8af6b467d221cb9e38221d72231d62140e09c7e341d121f67473e7b97caa45184e7f4ac8ed14bc534c3be5637cc91fb2ec14bb515ee79c636cf9ccb282f2db5f52f6e772f728374aea9eee2f4a5e7923f23fcbaf7c0e96951c59e7d7a79dd93229f57dbd7216a3649ab84b25ed79afeedb95de5f8234a5f7dec11c4aef3d0a29db1d415dd2dd2cba783c1e8fa7eb4e3a169309cf682c6eb708e3b5d65addbdf471a27c9c9ce72412a8fba9431616141d9ab48e7176b97b3ceb682c579892606db767bb3d21f8040ce5b84f44886c9ecc6312562b7648ad774b68b5cedbf1d5b7c3579ecd45e2f2f0d5e9cedf7e802f3f46168344da8811a6f3637ade5e5b7eeff9e86d6bb94a25539dd932b5e967c419f4eb72b5d9f5e963dcdaf7bcb9bd0e7cff1bb2aeeb5028940e7fb0a00e1d5cc0dd5d97dddd3d6676d91fcc27f7ebe594b7b9a6c807d5effe46116923e6ab2a6ec87c6500d6ee72b87bfb545e86296ddb1b3157d977fb386f4ba86d941d8d2ce14817d807fb755325bef21e9c4b401dde90edcebb5b23e8a24b23753cd97326ce9e78f639b3e4385b481f4e9c957caacd965922b934d5e962de831fba60e648ae28437acfa2edc9fe5e56c9520685e399155d482ef7b87b46277710f422e8271f925c2a79165659664518770741179d6aa5ffd34d84f1fcf43ec4b317f8de87da664f154d59b389aba6687b166daf0878f4e1dcd95367beb84cf72ad9655272dc289b2bacb21d9250382457e8e5849e923d3f94c38ec89eefe5f8ca0b02f362bef2bc229ecc573a9e125f81b325becac25760cd63e235f15505fdd6ba11bb5185b4116fc8b61608a43dcd09a1d45d7f16d583eaa07068beb23bee4a7c9585af74e8cc579672f973d55c80ef916b2cbbd8de8b00dbf75ff91a198fe7a9684faf681d5f23d3d97730a34c51f62913e05035012076c8a1e7efd0c305ba9f8fc397bf8c5de57bd757d530e386181d42abc3aa750c598adf30abf6f1bbffd49f9f3f3167e23e3af0e7c36fc66ca99fac9a2d95f3d568c71742ada574a3dbd7df81da1faeaa356266fd1e7cc5d5b8210601beba5f7f075f755f7fcb35e419aeaaf55d55bfcb2957d51abbd6a7fe9f37623e7e6ebef87f9ecec7cf83ffe773f87f749c58c72b3fcfbe57c3e65086f43db0666f19080fe85dbdc4e7bddce994abead75684f176fdba635936f3657eb5371f1dbd857ecd9ee3f4a4c07ee270e0389b32ab359685ceae7f0004f450df0240d4a864d7fadc66b1fd51dfbe626881ec8a4df3657e2ccf3b25e27b4be008ce1e1a70674a53e0bf7f3f128c1fc10ce008e9ef8241c82edc528f7f8ccb1a4dfcb9c30e23be37c23e1106783ec6165c896cef9efbcb9d78f8fef339beffe81ce0c7c95d1ddb92c6fbfbdb5f8d23b4e347588de108d196f0e8185baa0e2b911f6a6d3b08688de7b40a4260dbcebf28fbb465803f346af385be7d1a3b026009c046004794a889061611a6236dfb2a37b3a50538a4310b5d6c40adab022ce30007d0ff681ab3d96269d0668b05b592c052ebcc689d1b1ce61d6d9377342bc2786f5f171161bae7348e6e6d1a4b68d0261705c01280cd4d0116006bbec813179bd9629f73b10969cc4c9b2a81c39b235d582e45b8eca881896dbf06170d456cfb3d89065222aa403db67d8ba3f828914138d1c5fef61ef50727bad470f96a7b161a335759f92e36beda68d07c00f667a6b1c406873160d733020e69cc68cca40d2f42b5ad13780b4276b1ef160a7d29355e4ee0189f46ec4621005b6cfb01a84518ff1944b6fd192e36930adcc1a28bfdab69cc48b402ecd4786d5413db7ef862c5b6ff22db6942e566db998bcdcd3bdbfed4a10d6ab9d8805adb565874215d11572a37aeb26f9f348b30dbdb154495fd90b4646b9d23b67d92fdd12cc27c6f63805a19fc2f6faf72e358a8ac206651939858c4f070ddfc5904dbaf566099598419c50f69d0b67d1ab3f9223f00b50833df3e8d5884e1debad8d0b649a2d1b6756ebe10d9d6ae68b0ed87a4552bba8431708436a75f62d1c53e65010e69ccb6fd3e74b1d9f6b9df322d546dfb1e10876873fa66dbbf79dbf7f4b6dfbdd836bc3adbfecde1388ce7cde1e4ae612ff1d1c5da69bd26f04721b05213587bfe8deeeeeef5d2974e79b067cc6c99b45efa43ca98fe31f345eafc9036ba2652c67ca903a33f76f5083b80af405856aad335f940ef9aecf9f6c6f2f0d5e8e75b1cc72942776890170592e32b3ae4061b6aa02f296173c69ebfa73749fa24cf9d2694355be68b32b5c91409574dcae393290eede1aae9385267beb80f6f99ef3819b55335d830c3a58e9452ca4a5d4aed8ee33dbc25e59c82be8cd33d16c96fce0da7d31860fbfe110317b6abf6816a1fbca6ca0fdcfadb03375b7e8c76f30d17b18142aced6a572d205bf215a50fd77dfa32477a3ebc856e9dbd52578103a511e8d0d5d0545da34ff5ed5b9d81aa372a2e0ef99172bf7d0efb95d35b7c23acaed1e9e4289e2fa3f4a799bac6e2746f42ad5649ad3dffde1bf6b9f9127a7b6b200856f90175f03c200d57ff8260ceb47ee04cd5de5f9abdaf44723db2d5e800c10dd0de50927df8acbd11b3bf51f083df7e8c3fddfeaba0c73af4fd554e8394d65a41edc3f6df831e7debd1b7379480b356ef6fbd7164b337aab875fb5baff6617bf0e98797d3de53aa69cdf44efc557ffa46151ad4a78fd2a7f46fc46e14b120984b54e00b3e08743f77a07b753804c5568751f0e81004cad16106bc6ddb364a391c7acfa2ff64efed8dd89435fbd94ffb50bffa9ca63ed4b79f00fbe09600f03f8d93ec59b321fdee534a54dcffded3e1109403752837b8806f5fd003823afca1c6e42b677b9de5728d6db5d6bad9a7f235436bae475cd5fab8e9081d9d3f846f99630eb1ef8f9b3e04a16387740fe1a1d471be2c888c076d0b6047235600d9467426e8465a3bc68e46ac0067fc25e8aec3ed3ffcbec3cf3d08f4dc873cfff73f1f1d5da541997bfbf33fedbd284813d66cf99bf6c1d31bfda1ebe6dfa882d33ec8df7290bf591deeaedae3f6043a408cb04267b65d7b4070685bdbaddc70783b084adbb4f704a6b6e5c30c42ce3b93b41b234ee8ecf0ce84903bbc331a5c4e92c6808f28e5f893669bdf2340ade8622b88067bbe1542cef772b02f39502bba4c1c8b2e73b6d19f3173dbd9f37d7651c4558c62c896d2593bb47fd2818b5b9f74d87ce0f4a6e3766abad1e2c654f8e2061661e402eaa743b93f22ad4ae4538b2ed4a6b5e9187048029faaecf92a32d44e7429e56caa52ca6182ce51916d2ae9df27d9805adefe72c482be27437d410849ffda6c5a5fdcd01134a1879126b06047234c803501891d8d2469b2eb8e46927421092d8698c60d5c2131c6cfa30d334c2ac9c9f74fcbe7b0affc1d05f1e3453175292931e5642bdd68cd02cb984e424e2a89462739ca7848e6cce7748daa6d9851eb90cff471f9db41ca4770d3423020caece87ee69428633a492aa5d6617ad781f2539f648d8cccfcaecfaf9a4cf305071c623366747a87534ad7e919ff362a30356d7a3aa5d4d1977e87e8497f4f59e55332ea51f27c53f6dffc46e5737cafa275eca0be8ef9df579de33e4aebf053fe3e25df47b9a71de63f57024f32e84719bf287f7608992ef8017d9e1610b3853eca34aab10eb2a9fb96649cacb1fa81f36b0501ad74da1a2393324cedd495b55610ec2af39cbfc97ca3c89634c6e946e90d99ad73524ae9bb8aead3d438e68e356fc88d3776de88fb68b565091c865ea197fdcdc57d58f868aea2af371f46e053fd9a1da67ed49cb2e13ef5238584abe86fad2d6f3eb6561702e23d87059aed5248bca0f96a7a1b28038bb88afe0b9aab689842a2f582369b2f2f68534415ad60ac7e953da569892b57e7d4271d76d5277dcaa1fe642273d5c9643ad265bbebd73abf3aef0469b6dd7d8a9d39bea04d01c67c3ea5d53a1dd6232f5f4dd311d3cb5554da0e7faea21f9a5ea697af2acc5715488eaf4c434c3193cc74c4579d8e125f2df15547f395cad337656162e2abd3e7ed973e1c6d1521305fc55de5d439beaa1a9772dc71062ec1c01c561d958aaab8de6a6f42269be892e32ab94b9fcce950c7fcccc97193fbe4d047909b273fe709f63cf740cff3bc13cf031d854fb497e77ccf7b9d0aceccf927390609a7f2368742fff99823a1d0e743a10fc7a9eccc9698fea1becace7cd95ab385fe89ca8eca0eeabdc94d7a75c85d10a54316959d78bdbbe3c62091f555bee6cf73e08cca76238c30bdf03d411ca623a24ab5e5b929c883e94514b185fea515d70fbcdbf47eea5065c7135d2fa37ecef9dc9c13b5694e7ebe80c5660bfd0eeb08ea1077ddccf2c118fd44230f18f33eef45a3f7e99dbca783905d7c5e25ee2d6f1b94c317b24dff0363a61118c339f47a11c5a62ba093d3834c361166dbf4f3b9a9dd10d44e21a8d540a7f772083ee84f7fad0567564c1ff107a5f227a13fc18f4b0ffee9de74b3f697eb7e72a2e7445aeb096ceb747214d31002bb7e08816d45b5876d3b9d32aad56ab5ee76271ef2ffe778f1fa8d78a1b596208d74ea208d4f6e524c411abab7afd915a4a97bfb6bb98e7b9a8d1b813c1e93a766f2786eadb63d9e06bd83a78b3f25100cfde72474727272123af9cfc9c9495539d12aff5151895587f793eba3e421e43ea927ff3941f993ee519f13513f1ad56e5853f315c1d76fe28f9bfb237d78a1f0fdfde53e0b9e78f8d79fe35febfa39f2ffed367dcae17bd1d37c5a747376187ae9f9a3e772e83db994b38915d652feb5fcfc8a00cf9f54c4d1cc2dc216a4a116c421eef9204ddda2bf9cdd44bf3d8d68fea66bf6fcaa75f820d477286d4f1eca9ebeebdece590bb74ff99a41cf799ef6c17ef712d4e1f45d376f08acb5a1ef3eecbc999b1b829a8762792f8720b82100fda63b500885fa988992f13e39fdc7747a120be85372e8819b0d3a3d48089ea15c8f14814fa59d91e56c67c1997afa2a739585a9e89005656fb00ef1bd11498f478a3e469793cfc23a8f1b9de490d2b6482f91ffcb1fb8c4d34a4a64fdd970d324fa6c3e9aaa5a58927ac5e8ab0e495c82ed18a78d74c862d22f683422d1875b8b7e1fad3ee562b74dfa795ff8d9ecd2174a4a6cfa1f12dfcd67f3f1f870be1e9f8fcff5fdf8807c7374f2a3f7bc4a93d0cb659e1cf728c73ddb37b24a3ba52626966987af446f7a8127efd9d1e7efb2f71227ba801faaec845e2120a19c50105761fcd6c657204de7bc5ece255774a1f51be5afcb55c7ccaeaba3fc8d7e8ebe7b1b0a8574f84337d2dd4f6bf3fc1bb11b456c066f5471a243b94fbecbdff7a3d1f78d7ed475f5391d0e41eda79464f2d5755babeb7ee6fc02365be8ffd652d9097d119c1f127d129c1e023267bd210bc142b19ad0105fd593af79f42070e624c8cb55b4e6f952ce2fb9c098cd295a586b455bcf224c7dfa5f9e2fe266c6e17dd52120aea2a33fc9717b46fb93c317b110acc4c4a62a3ba4a71f02e2ab1c5f79a02f3dfd50105f959e7ec91561469bfe68e48139e7f4de666ece59fab06683bef4a0bf5d07ce90fef4119f5cfc22cf8b1e7cd47f547c986fdf9ba1d02b443f444343360d05d9346f3f1a7dd527ee47b9fbf9a3efeccfdabde9bd1f6acddea439711a87ec6277f3ab374bdcf7537b7f9a799b336f5f68fff4115cc0f753fbf03da77d08fdec72d5d99ff6425f7a151d403984f4c94f1da23e1f4ff578acc7ceb79e592bc61873f553aa28e5453991fb99ef6fdbcf145b654a4a187a559d6df5fdd2bddbfc084ed07bdecf4e873536dbaf757bd3d71cfe50fa6ebef712d401f49e3747ef85de67e0861e70795cc0f5c3aa331fe53b1cb28b3d846c87a5dff40fe10f55678fbef431eec97d2fe84f4e59e21faaced680dca017e5b85332de2839c4c0ce2ebd29871e70edd24b3087930dfa12295b96dd31060cfad0b2406f6db575eb46b98233a3bf1b4823bbd8b576279e77a26f543112fdad74036744577ef5abdbf6b19e59bbcf7576b656cee2b88aca8d2d8f25feb91cda1e9bbe27c49fbd992fafab6cb6d0e7388c4da6ff2ab3379bbe65d91dbeb2a9ff35a56a2d3169b6c1edce9f59258b2ef4fae76501e7ff9f2f68a1227a165d68e805eda3957022cc7cd3eba36dfa2aa9ec74f4b34a36758eb3255a2fc7553404a47ecc0cab924d9f7b41dbf4b7d06b531ad622b2aac45776b6c432a94decd35ac45793ab9bde9617ca85c0b93471cf59b3e3d5b57bf1836fc4e73def600edc3df8393eba7bcf5f39a9536e564c13f77d5b89eccefe77b5c705dc79b9fbb8a7acbac6888080d6783e7f70e95fbaefe7ce09d27c94d280b5561a8fb5d6d27cb66ddbb60da4c11cc7711cc78134201aad034b3b3a50878ec675b7254863df6a8d23341f4768d32ef6ac7203038dd2e61338a43771e6cc9cd9cc6de46b3e31539a02bf04717c3240693842dbb5c5e266cfe8c5209132e4ddb2dc313224320689e7fdf7355f8fe73b8f062b4803befd5b59d6da4457b1ee87b8c62091323c461683648bd1f195fc4dda4ab7c0313a74be04a5fd648da2e296ce0f8e7e3edebbbfb5524afbe10f5f2883f2062ee06e19ca17072e800bc1907e1f7ef9dde7b9f9424db11b55c8fd79fa16d4c1db1ffa15a4f9fcf657c65de5f7c975e6aa5997b86a565a74559d81f2f4073376957c85f275e3c8be21dbf43970e6461552060de58d98a471dfd8f2497e0ddf90b9aa664b09d25ae3818a94527e0c1229a594523ef87d20cd66adf57ecb3e8c386b37cf7223eeebf6dea85adfa397d9bb5cd06adb2f6d1b8d3c2f01dd8f3ec66bbef2bbf6afec82b673456d7b2dd1b6d7d2ac8abe6acfd339a59c2fff2bcde6cbd54999916627b390f7dbdbec79993d502c8574129aa018a743ceea104b0d8a555ac77131b298235c842d013d08b6ac235b1fa66487430431f7e891481bdcdb217cabfc48abd84aab49aa152f5767b6a83ca87b10c8ea13e8b7f7be760fe2ef1373c472252af0068234f2adf6c1fee83fb99d504af6bddf2af71ea743e9a9b8e2e7938fe583d2be57ed6fdeccedea06d90db27483463a068994e17d476363a64a163d2a8fdeba54625c8193dc97f2863f542f6e09561d23d3992fa51c2eaebea8b40c34b7518f32443300000008003314002030140e090543c16040a6eaa28a0f14800b96b4547250996749905308216210010200000000000000000800081770dd6657414439e5b47a62fec163048ec868cdbee666f4c1ae83eb54f27baeda43e9dca789a1ff260a4503728e117a7fe84a83e4a6d628e857b399e57c3f891973c44e82a523ddb5daf096916ee57d4d8fd15195db7384fb7c146eb356c51331b7dd4215fc6c0b60dbd97924354615a91efde02e7f1ed5f699201836a1b00452f6ad4969d036ccf4e765ad2536d06d6383fcf96d628de2b437615f65156caa0672af620a5e3b178ad0f85f6cceca2aa4bb2cb04c28a2add4d20db58d375c0659e3160740200ab33e02d0876ec708f1ec91f38143ecbf1c51ebcd023dc5ad0517f320688ff0066ac294909c33fbc6487c51dee974654c1dd7140fe15b6d0b5811ff057bff564a04ec218587239156aef0bd0512bdb8e131b47674553841d7473f39af62a0944ce9d8febdedaae55eb9a681ac015569a05769dedb75849d6a2a64f456da34bcb52e7f85d40a30ed57ee5afe080a4de10febc9cfbc824d46f776bdb63d282fc37d8a24616be01e93466ccfe29531f7763b83f2e431ff787c9217ce2d0903d3e8709c2866fd633ebaaed3d3d6a90aa95c5802b05b5e67532a6c4ec1179ef0fc62874686f0fedfcbcc0aa6645c44731795b3fa2ebbe7aa1bc973cf0d3efb51142d3d62f77d8e1e282a446c43400decce80156479eeb14e7e722cefc13bf7ecbcf5dd738f0b5a2f2b1e1dfb0cc84b1b050821f001310d409b4416cdc41795c84d809fac75c08b4f9102f0cc8eeb895e0b0cecedb594d841e14f9c7bdae5ca748431b86f55d41a0451a6a20e338811185ddf5dc9bd8f007c500d92415162f417d4dd504043a32ee756eb5771917366e3fab6c0144e986a1e7e21016528fc055f2641ed99ef55d489d6b804c773370e78aab2ee8306a34ef43bc75fca7d6e076308dc234b069fd0aa058d5db9ebd291b46340b136abf198e0622987fba560b880d4dacd274b9bc1f879e8f52e661ae77d2e6f9b993f8c8bc7a828fc34de0c0952578a5afa6b12073ae449d258358c74e913e0dcd607544852275becfd6bb925ac2729fc38f1dbd0cad501686568c7dc413e538fb6220f5248c8210834259829298ca25a7d1dc2426735292b5b87d8b181c41db100cf566631901b0b9e55ea92e95304858d8202a276779ee15682c1e06bb0e21489bb32aa933c26daa09127522faf6f9500e0ecff8ae7372054aea74422ab291753cb69205e6e9c3ee5a5d0eeb5df464a8baa5bf2d18fe0a12f76fa0d51446d955657f813726ea2d858a6d4818421efa470d64e1a3b42a2357b00acbd341c078a75ef0fae5e20858f8c7e42f74cc4264ab6edc860c023d0f3178a302c8b3258aa97b00edfdf3ad5a9d93b77bfd4b937e42964052c516d5146f9216d730e71ba59c22fe3be95d0246bff716fb5a3df316c5f73faab2a41e5d05ba29699a89034c0ba32a60610cd5ca109c78a6a7eb1891e628db4b4503f27fde95f5fdd689b74a3d05f27b9588a8b37da309378be1203a82ac6101bb88f45f9c93336f552ddca3a78a39358274800a70d2b01ecec1c0511520148be85734bc96fe6ef0a14fa3cca46190be3554def725a299459e780e7dc108ad93454f19ea4582ded452c9025aa0ee2f4a47f83c2c9d406b1442028d7d1e821791046c287777745bf8a0a70660ae6c0800c42abb46e3bb886c53e416b8ffd101383e5890681c907329f4ae067eda29d7780428e85ae19e7da443fdc84f2f93502e28d0544ee43f9956df3e8eddb45d1fcee20b0d5c3b9407dcc5f3117149d014bc74f0fd40bf8815d325d73aefc7ba7031e87f29cbdc43ae727677713bc81d07f6c97079ecbae9e6b8d855248b432322c65a43d49afb673128c1f74ca92bd4f005cda71f5811beb22127b4e616973d29baa07a67a65762eba8b9ddd553b5a4806642ae9dfac1b81864becda304b90e42a09e6c8ad42ac4b6c5e1d6b2aaafcb966af28135313e8e16024de16294eae8e8a61b9dea6318e3932caf2da287824cb9f3fa699acdab34f3c321ceab152baedc3b506ea6ee07d8a410c511414b06a8c508f99df907429b5a10e0d9300d9910032f5ac6a7e5a6fddbfeafe0524e46551958a44c8be95add495742f82d3fef59a8ec55a1167a85a5089c6c741507a2fab59d156c7739e4c3c003cc51edc375e2a2ad22ac27e18e66538828f0350af8f45931adcc03704bb9632c2c7da74913cba0e026d011c9a1b9a87c4c6e886b9078e152a3c984438bc514e76911f4541c5d92800f1254e890a95372ac6f62391b327274a26d3c09c8ce117065239424580c4f548786fa250c6229a4ff035b23bbce10ef3a5d38e4a3f72d26bb813a34ef4e7cd6480dd89106a57c39804f366d64bad384ac1e86de512cfa97e8e4ea8044e43f6eaddd399109ec42cd4926a054feb21849717d6d3457111253d0bab36ff62f7cf797be1a0119e014088939724abe6c954b22ebd13e6e84bf3d5752b4e62c0f0a35ff82b5a62c69bb625779539743b53590ea44a690f8c0be8931745f4830dbb56aa34303123d2361c179c2c79d3735a2afbc55797b33a7ad035ab151e69989201e28a7e69d93a0fecfa244460aa788884787dd31d2d214ad5e5d9fce61ce4f5fd9584c312964c238224f043559998343fa678970d3badc014b4b5d94a0628ce3970a6e78f92a3a275c18406e3e959f0ea41469035fad15ead6890595b29c0c7e24caac2aa9f70edd0973ec0ad2f894126eed9eefe5549ce154a38190e6b296386e7453dae9f8c6dc56d2efb15a8b7ad5d424814e22be55f4dc94aad03e409550f0f20f66bafba1a75d706913c75add5679b254f5e170acc2e2d26a0100c8511cadc906d392b8f583f07767b98408eac298a2a35039f06878671c3ccde242cf172d103c6d7a0fc117a22aa4bfec85ed44288f88ed0c2c1cba5c64524e8cc381f10d651bce4438647044511d203884f442a8781cfab3f485c981b317d2e423a982e29756ba1299fbffdfefbfef6f90726c0e6a97a1fd0127cb3fb5dd0299b6c887d6e267dcfa5f42342d67d4052a1358941efa9306eb2ba1a674a9580548dd784d05800aaf06473c388ae2c8cbee21fbde2ec0fbf197eed03a6a694f522bd7073fd2876440a1161712641602737df7d8dd8d1e2fc610ec20b4b42b822ce2f901302558c44005446bc5590adfca87d002cfb9fed81517a0d3d5c8b4de08950d6e3118cb84f52d7360fa0750b60786b2704824a01480c94a26cef3563506053389ea618b7040114cb83028b5a621c4424bbd9820b954384b0613081d251a51ec6b5b0b272187f7218ee647dc0fc0193f4302636914263189598f4301c5846f149d9434089f5006664430435c20e017e92a1113c6e670cf6a4552d035b2a77fee4ea41d8ac22242c3b0ce08f5886f04f358785b448128ee76875530e098f58a4db3ba9853a55643fe888135ff87c4e58b4d0a2c65aaa7cb4692191e8009c8fb29c8c2c032a66d8646538a7f9e8f87d709e42b2a1924bd2f7cc976df7e0111d8f108008c74272b9e5c805e150df2f23e4d272871b9d715c879c89efe474ec558ce9738fcb2a56520b397ca1da1ff179c3363ad2b690d36e22853a7691a75ea4836b3cf30838cf5ce6239a5b088cc28ecca242c95047dd445ef6e539956d120ba714ccdfcc1fb67b3b7c766717cbd5346340d13999cf9b9a8f24cbe87fde78ea1a09026d17f10d9a3c29a85e87eb22076ea736c1bbac45a279dbfc83b70b850b35cb4a9c4573977da570128c71bd4e8d749c0156a12af46a76ccfdd080e8d192474bb49901552aef159a885f585c33331254ee06704a1e73fc1e8417375a6d6f464659ff574d034d1d19cca1ddf132790b49c4d81a8250a88039f2f10a81e4a6c4f23bc304ba93acde85b82d6157bc56ab0932883eb9a4d02deab60db0517dd46c8fc5926ea975fdf82c56c835e5eb7602081543af45394f1a2ce9e9216d8a8c1e766e03c3996e6d6682950b6943d9f1cfad743114b53cb6683adc41315113d64006b11be1783766cecf94580d5fbb2263edfbd847388bbeb1fe17b595266388d18175a735994b34348e01dd62fef168845d64a942472599bc1a2c4173581419f920f2b42a2d675fbea7fe6aa4f24f211d5ca3c90423a625d322a64f60d4b4276a08ea49d85ade43330c07e40210d54b8c8a63e1d651546d8422795d6f0520d836348cfb431c39d35bcf5fa111dbd792cc14198a9481b05875b2deab1b40ac4203d3eb91b32aa5b9fa48ed5ffc8890312a95c7d3985d54f1d295e6ddb610ff9ee3aef46bf25111771dc55d6aeb8d974df1fcd08625f2f049c168dc797764f3f702ce9010cbb35e0a9fd3ff3c4c96865ce19d8fe7618e11ee0f550839391b8f80e26ba8b9acfd31943f21871e9b54f72ec67c8397317e9e90c04c51eda175726a22526b999177302abec3e489bcb70e6b718d90a6b234792bdde47150daa44b086219602e608890214ed6dba9c5fe6cb15590c3be1c3402553f4232c0495d81b2308303b69d841f0f1f0ed08dfccaf5ce42b3b56f7711ec88b0a79c91208b14b04a338b7150ae035432f2ff0143abce002fa91a35e476e62cc16fd18e3bf78a5e915ac75806323ea89f412caac00d8b4376c2ebe50c14acfda93b4b778e18ece9af8073c635dff7135355ce845b5b0700e329a656e40f60aa949ed7c59d6ffd260bbaae475ad5bab34c1ecad1e8de08b4d6800e980bbab39bd59f134373f6e54153a49f46d57b8e2a7f3cd1164ca52544542aa851efb51b8d2025c64b71cc95611b82e12e7f4962ed83fda40514b5f05f6eec7525de3b9835778308ed79667224c490bb384a02f0d337cd4d438895fb97a9f4205d968883a6bfa62d37ca1f90ebb4ee5e8873b716d298a062b395bd16064f4bd6eca1168b515e1ebedbe6a9317e947c23d37b8bc22955bec1e2dc41c6c0e085db6dbcc2330c5f6ab6610e9bd1cc69c8706d87f3b8a9ed5b4059ee0cd1b15aa22d6b29bbc059fa7b1501f6a24bb6d3afc0a8eb4fa05fce207f9edce17ba9d1875523a29726edccd20057e2bb339f0d412cf032f9318d9e33c294ac51ae6efa829d9d73b8482f3e3c1a3a3fb1794e99b23d3da713e30b60be65ecfe0b2b84f49606be1a4956c6c8bb171cde5498f26863075278b079191869315a8cdae104413ae0fe5ff629682f43dbc48cf6ccf010aeaf7b35ec75ca238694c333bfc277c8ab619d5423eab024d1c4d249ef5a14cb9c632cad658d20e84ebecbd82500877024afae031ae4c1f495374b009d90383664cb9d45ffe0cee2e95c67c30a4426f3bd02ed76f18e6a4f116d36fdbb70884f4f333b0740427ccc86b2b641af711734b8b9509e0d695bdecf3ac72474b604f118ad30ea09d58414461b0007a5618ba58f78e96f208421b1674c4cd35ffa41131070432e5f7f9aa1611a966e9627c755dcc53011e0815423a81bb821f13b320235fc38a862af917e18266108eb0bfb75490cb6a2757ad588a04bbba12d088fbdce0d32bda7953dc79713dbac0c7a4c8a9b9d21e578ed8493f413c59ceac2d2b778e9b9d0350512055b58e94d46967c4dff22de606499c7f1c3c19dbbd7673bbf446b6625a1b5357d0327941495b8d324588487d51671683b7c3a098fa05fe72f38318f0fe128b192f734d0ca2791b9cac16d0bf1cc23d150882fa424de9a687a94d0c6d1786af0f0c43c299894a5e1f546272e043b519debc744fd23d3d40082f32db9ed86ed0ad39df0f57d403455b65053ac62f7b50cb0c5c138212333f815ac50fb042783da0ef01e23371f407c01488bf2afa21ebe5e0a8212ea39d197635a781d1b99830683c83da5e94b73b9105c80f70d526ad4db9ac6779facf3bb9844d28f4dab88eb185e928fe65057fe75a69e7379263821611e9f4a68294217604df832f869f63efcec473bce28fd1c5de18b2909c7f5e4a280925d805e0390bff5aa6e2268c6552e10f2cb593848c8817220c4f3357703efbbcff363ebe911c5a9fb9d60e7accd4b222518bfb92b18fac4c4e69bbdbe89d04bd634484a7c5bf6f4fde118eedf19bf8ede6924001267ec68fd15df754039f5a131f6dbd2656061a8a806ea3cea4f18eb6b699fe568add06d5c132840bfa3b8db9c5209c7dc01ea4b9fa4acf427555c07f90f07e13dc9d16d27a8e32cd137e91236a76d784f985c94563e3adaf7e4b170dadcc485e4ed7ff6159f1c73bbcc39bea76459a62bcf616543046fff261582aa7b7af1fd208f8ecc3ee85e3edcff44d5bc4e74b4960bf7f4a0afd9fe133b6421abfa2d06b5a6ec4663f8bf31e1596eef50b91e3fe2a8f0b03b115ed3a90f02fc976adb736d8de2fd97275089266b1f716c71f87e76a507810a53d8a0b1b988ff000f8a5da3c374e064f353d92b629bf2e6a110187ea4125beca318d7ed68f60848c294195d08bba77d87912ab1e4e0f5550cbed4c8dbab41f112d0182071c14be18a3feb637c0731748168380054f255283ba032914ad3cde07cf30cdf87c8b5552663e26beab0792dedeea05895f3e228295595945112c8d10c2b5a66ebc5695d61c2ad8b01f3825403072b99f9c5908a309933d722f049811b83653af17d0fd5551aa0300ea68dbe01503f2c0692e1e64d66e8a26ffd63d3e411d346bb0bff02786120ed679e5fb7ca9fcdc9a395fa495924dc45768b2627fe73bb257e8b76c6c118cbf4acbddae061292dd9d06f6c533e29692042a5c85bbed06389d73412d4fa8ad20aacc77f6a478eac37d24e4e7ffef7ded3624be998f8040f0f4058f52bd0636d7a60f2458070f345693f49b276b9859ad04367026b84ad8ee1ce900348ba713bb0a146142026efc22034abdc5496e4e8485fb4ea75e78a796e455c56df965c59ff054ebcb054136711b68011691cd200a99af5b61211b5a46354655b2ea4b7aeed2939d6160856b3b0ad044d94bf696154693fa23c217d670ffed5b3340794d214de6748384fb5327903bcafdb5cf189335a938e284f1a2901ea625f7fb1b5c35ae87f38b5bf6221a9c5a36e21f4697dc8f2e58ff086e0a563d0442fa2eecada1d7ce23ad39e7ec9aba33d4116153af91b0060d96c46ab1ee8de75f6e4475e459f96d42d046841cf20f61fb8222523e4737654f9b909deee4467f1014511a0034d35e612ce6ae8ff69b08751643c61af89f23665dee93145ca748f49b17bd2ae412c3f7bf9957ebe319cd8ef63fb02757477a201fe44f8e2eb4e20848e3ee5c5e1f58036dd09ba2c21efc39e602d78917709d766d39a3d814e31f53a48312d8f88c9ae881c70a8b8a457e9af20bc049c48f4b15be2deb5ac5693360bc2197cf1d9ed5ff644f3c1137d2a608015f691ed127041a7ccc3b9dd8c9c046d27342cb00aa86d18ce8c7d145d078f3e1678fa4fe1a03f87e8ba5958708cd0b7d04887bd49c77762954e80358a105486cece805ccaa943adbeea23457bbbe29feee2197e58d8b5a01cae06e547e76217173ae6f02e8607e2e5609aa0f8ff7772867986b952053ac62d273d8fae30452153c1f9467427d113fc019a812b0e05bcc7d1f974be207cb1ab4238ca1d08e061d3dd79e64cc927f5107310c2fc76a98a4f536d68c4ae856a45983f35ce36e0890787d22ebb6db10e230deb7f0a99a27dae22ff23dcf471f098c78a11b904efa5228222794f14540b5f2233220e18bba5506d4ac46a1e5a1bd8be07dbae5432af8b0b4ecfd7c5ba3d754626853f9538e43d63f85ef7eb7561042a35730ad8384547c24d3da8f6d4790d04271e21dd5daa3df572443e4faf2f04c465684694f1204c70d4613d403ceb93f3f9cdd167d52dcf82c91362ee7345b7e7a8ef18fd9f94061cc0b352392a2ac268a4df4d36ffafae0ffb57861473cef861544ea53775db5cd87ce2fb3d75afc4080892d0b02647baa75e1470525c8fe1e061dbec4d5bf968c1115d76bade384e3c0d22c972dd92a3fd099e586316080f37776b632f314c7de5a3d88ba9d17fb9a5a69ffaa1fabfa6ff48cf6ac98b46a7bdaf7cb2de8bf35c34957ee5537d8622e335a8203b25b4467e7265f61fb0a7fe6517d3dad950a2e39a95a2eda9e7aaf85367100fef036fd36a6d21996c36346269f833c498a39082992e5ef68d16c76b01574f0b7385aab8aa907fe272489f8bb306c079fb517bca0840646098f3eec73f71b200cd499bf7d417359ad5f5378980057385bb244fa0e766fdf1040d73425741a0d025cc26a8759d83c316289e495f7df7d43144a62ee4b3237bd747754b080ee74fd6d87fb1ad99e72fad680b2ef24a2e781e11871921d38a17cb28e4887e6cef39c4c8fb9c34a8eb5392fb05e34ae59591aee90c906fbe5ca7b4d1fb8e90086c0523df1b9ca7be4bda61bba5e4fb42f963f9117e7cf2235436263a1056d23d03ee6c93e5c60f8e7d1a8c917a145dee0620272675f1d86e9db137fa6828f17ab1d3d08aae74af02aae86293aea9e9d38123ca815ed8334d100d7a3cb7a45ba92f1633b561aaedc767a5d84ddb6aa45dd9f50498d996062d86a4da4315c0a1c264521879165a0c398fe5e4523addd6d499f410fa8292e1d1c7ae40e5b33c2fc7fe77dc908ab2ca2cf589d6b80d281fcd4f161cc8ec82c6fd2c63cbe9ca7953a388cf2b92be48df04a8a9a140a1dc2e726b02c6f00f4c01d6031073d984e20df0cea2de5bbdcf348065516c6a455419ab53889ca427bedb38664a4a001ee1e818d24803b4573a2a6c4cfb9d48ec2593dddc878c26a8e88c09a7c7250b33888820fee8f1828524c3127cd5436c5082e3b76efa63ce402424b005c894c9b8afca180943571b86fb5be1be5a68774fb35e60932ee55f5834caf73a5dac9650dbd2c3adbd93554ae5b546380e7fed01756c699480f90e64713f9e3708dfd72225d6e3a1ccab79d1869d593c93f564295ed3f713b1d0481be6fe892bb8c578cde647aaa7e2d35428b5e521c9f6916108025792a00cf64ff76c017002942e836519bf025a23d879d04e1407b6f393042cf1535bb7637ca8b9b745b09906fedf8bf2a1528a7cd69c5b331a04a986b1b63dee9c65f32dc9aad08b0a9d446e8f98af579f13b9a7b907188f526888e986f80dab1446f850299b7f5b93be12c1ffdc11c5d2c490c572c0e20e7fc51f092bef9d45c6cc809b562c7e50297266419158108ccc5857be382930374330d801cc7ad9e47788e306cab388159bab65db69d12e7e20e15c0be0e65b1012a9f00bfe4bb7e1839b3c05d9eb633268236ba8ce23d2160c219a70a5ee37ee49b45ea161091dddbb6e80857318822eb3ee5e893bd7a9d0f1412657c85d2b756f564c5b9aeeb40db6aaa7c5193b755d88a7700fcc1fae724180cb5c5cbbcafd3dc02d5be5fae14d985879a7d4cb0a12c13efe28829245446b8ce61c462106a293d2f87a528202e37b544770f69f803e5a23a3f208960cf5757a6e37b0c4a9250ebeea4da18579b306fec6a671518e50516f404ddfa16c141b76f513cbb2ce5feed5b07aa7f3dfd1f75333f549cfdf46f87794290a58c257d904816aaa7fd090ef936afd1f53743ebddb9f04af0d6221238eda7b3bc010c22e35e41f3b890ee712a444fb609a8510f31d8304b5ee02946e40fd13030232fb727a5bcd270b88cd85fbb31d720c9f3be5f8ba0ed7f2eb72c7ea86bda67cc249c0ca7c4a3387d6dd78321198918eaeee316d230aeba4a655bfada9440813e4fc83ca4430a46b47f32e09c00895ff7ebe3302fa9e5e1873179fbb7565a7ffd0490e658809f06a05d6a50c1e6fc6a0a2c9484c521f46f10f47252831e35205277ca2363acc63fd77948383888b8cc414036072010a6385307223ed5c224610d7b287dd510c3caa4cf22b309dc82596ed41c2460eed5abea0d44b87e9cddd2645482051cc10d4a9bbeaf2990ca1f9512b867317948c66600bcef8eae9a996fcc2f7a07e4bf72d0057c75249923b02cc5e9757ed62965734542d62b2cfaa1b65be46813c8c16b8a2a5cbf04629a7db8a442296d8d57999a565bc339a845946697ad6e26cc3db0c88a84c66464c68ddc2c423ee6da6172018d0ad48351d1721da0af7c686b7a16b2ed0f81d90e17823c0fbdf078f07c96bda06ab902d51041d560b51177a8e6892ca1374436b57239d53bffff74ca53c8edf7137b5d2e646a11938cd58901f2d96b994683701d85d8b493ddacc80acc52d43859222ffcd753182a084bd8624cd9408e3a47256c9e69b41d034f96e7dc5c20df03ace238a38474b0791ff93fa7dd132feba0d6780ac8b608a02e7f5528c2ba2631053d90f8a74e077a44965f2616472b056b4280e62449344eadfe9b408f6d3ce78bd5ea312c2c85c16fdc82484e3efc98173fd2a7f6b38401f7010eab6a4558b12c72d20263aa8a7dc5dbee5a07a04da7012c62846d9dbfaf2cb3b18e6dbb7862a643543ce6a46e8f819b81623a8e392e59c456133f0de83c52334e21aca879a53b83ab3bd36b7a44c9dd5f6ef5e0c6010ebf0d5e9b92168be0089f6a583e2c45ecd259834e7895b6441dcf241f7ea3608b69cc89a6520a92270f666f07aa7f550af8c9fb334b6ea69554761fc304c396e5784012117dceddd571fc7f04ee632f23a77a60a21fc5b53681615b7a52291f1cbf42bdc6a7f71db7313a245844f91882bfc1db449f281cf3f21bc4c8a85dbe85e79fa5e0ade8c10fffd1a99416e1244383a62d94314af1f1299d9e32c9ce68f293e2a0d5258c427428ef80483bdd6c774889cb40dd28bad36eac0a36dd05c050a730c926b5e3fc1d852f0877420aee2a148d686dfaf5d7b0600a591daee1fd081cd0a7445f26592ef94b89986057e525b00525a7fb50dc6b5ce0a5d08bb5edfa65ea87e23828bca55fa5f5b0740fa5d643eb8038c2194b6e9c5ff8cd011a378ab0284c312b6832987e9127cd0c25a4eed2d0439599a6a413daaa572c69d36c74569c300bc14ca8de676f054dc11b4c6b31ce276b0868ade8b3307eeb84093f21482fb2b98874d9d94e2c0724bfb47be8b12c0350f7520beb20f0a1eddaaff86d64b691c00460c4c50561cfa1c984059cab711ab5c3097de83cb22bdcba3b1c8c50fe00483b5fce5583850fbb9b3d078fd2762d828dac8298e9041c36df8596fe32acf6a6a7cf5cc22c051e3b978c112e312d90a77224a74b975e8ae23fa70054277c7e8c215c5552c334c96fd49b88e3b8d9e2403c4c95ec8cd1494b6a93c9304c08787f2c3d5be29564b470c0c94388ddac1ea207d093fec6d5378d8ab03e75267dcc567940d75f3331c3537b76eca5138692f298063d3118810f3ec64f27587a23c40ab1adb33fbf5cc9a2ab36e42cb314fd314becb02cfb9f5e9af7e224438c6b522c02b2682f910f0ae6adde730884350871b8b15269539b56e1686a7f8166170b452d2806e6ee2c7c5283ceab7318800dbeaf0e536771274d2bd12e9eb2dda2c4d6e57406eac35e711bbcdef1f6979a9091165cd56a2f1cd6103338eade386104acbd8996a42d1ea4d71aa70f095a6a525e20e67745b9b9788626e84265b947b734e7cb81e47b7d4172da13c0d119ebfe9b3fb3cc6c9f7ba68016542bd41b181453f2b6d05461d494d8fdfd9a4e072159d5ab1b5b3fa45734b3b5d839e48bcfa74414f9e17ec0d4312fd957b782cf07a84c1706c8965a2d5ab460162c3f8633a37dd089a2ae14e527f14d14b7a52615f39865b484f7c91beff89b618161fa509b98b5a5b2512ddad0633602ff4a511fc31175493da7c7349c5a51c724547bd14d32428e0140e43578528ae1b3f717d5368ad9897bc1c171a326229600511aa07820dbb11e1402d0f9a592b5e1ea8ca419c086981f7e0a03e4e4660e9cb5d623ae4d6fe5491293c3d0f98d70d82d2588e681c670769577c7588f5838d2d7d2112b3daed83cb0e61a9d0ffb23e823a6cee28b6f0c8507b6c1395d820a9513fcfbe60a10e339be635de8bdabd0eb6182fc3084e9e6e1ede1edf1c75720362e954414de9acb591665853a434d1be9743825efc66aeba9d74b004bce8dc7b06139debc21f144bf98ce34311277c02c4f83f8356be55c6400394c555a4554ba96e6bad3b46d446a2ee9439bfce47cce50da82db364eb036d659ce76c5c571cd7473d1661928d1c8f7e18fb7ac425955fdbf61d7c6eaf91792d8fe4a1f72c43bd3fa042ae0b63819c8750658b3c4c68dcf647a1156c0042a68210bea15568f0745750c2492539fdac32899ed724149030203eabe6e4dd4c58d2adb6f5da3be7f8a451204ff2e0f902d9fc60d227683a70ace86d729044c13183edc91821ae1d0d63ecdaeb2f938585a8dd7309fec37a00c3f83ae439b63a4541995d7dd34272bb02f50974a0daf5168ca2b50c0f9086109f5bfb2f353812c152451c5d8ef8cfbaa57b12548d89110f3db6c3816830063212344916e3e6545e5bb1190661e0e4af5c0298fc82d07dc7a6f4e5ae7292a481a49099905ced6aa221bb49c6a8966a47d2540b87d043c443f0dfcd5ae8cde2cc9ce4784b4f7a9c02394962f228f1c215b691aa0a4320c3581db8ae4d9678ba3a725266bf33342f024a42cb7b550464a0b51b26b88997f6c32bdd397e4c7044ab0a56fd173031d5957d3641b96571fd36ac5567085530a1e34a3741826611c00d1aadfc522386345a33551b568cd73031bede4098e613cada04396b35d174120d245f382dcf04e2128df9fc69b301fb7354f6e8a8c0062a0d657d1775f4191eda886e783ab7dbdfecdeaf3cd348df632a04046ffac40ffc295aee51c8354b33b9eb62987b611f9194579111b202fdcc0b784b4a216c66bd5ecb5819d1eb6762d041eb6c3791896a68bcde6abd265dc1842b1c59f59b34f8153c2ee709a904858d135c1c2868ede5ca69509fa09ce04ee7b328743de3b7abcd5132d7feaa343317f361e9d157da39afce2e3d79b0766e44c57dfc2d54e12efbd23b0a1d9a26023a24196b99db8192f90d9202463758a259007d615c3481e9734e7eb8eff7e7b45a25eb08758ae36cc15fe26836d000278d33a61d0e06767228280bb6630e3d4762b17d5e8f60634ac5e334594c0d966d6273014c47337e578a2f3967bece64658ee8941b3d7fdc9478d685434796af449ba6e890a28718c84d079c4f4c4143d14b6b54a4a65e8f37d620851479433b6b419e350352720b527db65254e7fb4cc7808e9c39c5cfb228bb44dd93cb88e2bca1190f8d5c955e495dec7627a95e2d4fd1a1ab4655378aae46ce1b7cbc6b7049af853eec178e83f2462496e9c7dfc60eae5753be59f27675e679ae45f0bafb79a2f79d039a31db05a55276ca2aabc503e57a5fb1df97108eee56c9ceee9dd390bb69a6c8260497e272e0d69c954ca325c1c7395699ab8c23b2ccd42af641dc52587794de9f09ae4d7bfd148541e71e6aa539faa6d03248a5dbb5ce1e3f756f5dcdde3e00c8d43f5bc25dae6031a1c2fe9151b6bd4e8144c5f235ba1d86c99f4d4116d74181a943c70f03565399a1ba1c2c35d3d5f801e3fcb716ca5f1e2a725c7c9186e47783799e0b95e02eedc2794df2d2c15a47bce85aff6d9a877437caa66b6373f701424e56a77648d13b2c11ced9119faec1ebf52f68aea72a7c2ae7ee21dacae95d8e9ce8279704ce78c98dd627837348b59db9052a626471aad23bae556d666bf5fd0d85c019c37e6ded8fdc2430d29dce54f96cce1fa4e005c7fba4697aba23f327554080ac66b98e172f73aad7923012f3374c3cd60a63cd41bb6bec2d23116e11833a2cad7e0fa9cda215ade52c708f8c5b9459f84bde370b9a370a8105c8e9a4e62df855eca165faf60771e91f6736038ac821c3d9ab8e8585f3478d87cf2f29232488805c0e5be2369ce222ac5aa61b078087674335c1a7139f056a6d9e6cdab0ec79667bc7c7ca75c58a781d407944251f3f122da13f99c1d02705d926f5db19f51678a080f51d3d47b9a24493afc5f7bcf471a88a00c2ec70ceda390c44126f15c5bf2c3ac2292ae30efc10f6d8d66b04d1e53b0dbff362f87f687394dfe804aae7b0e4bf1633b926b02ef36aa360fc9aab684c0f5edf9ce76079bf5fbb0c4458be3b7d1e96ec6721870c0ad6f7ce24f814de0edbc98eead77038405171783dbb6b999f22ce7795d2e349e79eab3db58887e88c111de977100cc5c2b66c598dec0c06aeccaa2b812316e56622e9d2c75eb13020fe0851651d8cef09ba003a4fc55e8e68a93b4fba92452c3eb134df1f6647eeab1fb6726d78a9be01348389528fdb1162f249f7d094dfa579ae665bb0b7e2a0d622dd28d3f3723cb524a8bd5fb1d895eb2829f6a0bb7d86cbb348b5b90f3e660ac493329128a05974dab1ed222e257d8a3d38fc1e2a0ea7ab8306c90180e260c0d2b416191c1c910f8b3d3b4c623ea0237b8b54ee9c31c87be5350e07f24dc66b4d88017a55411d1a049dbd53e4bc9da4e7ef5c510b2f4a560235a572b2951024956965d5b6853f9a15b0956083ba751ca7ad0e7cdf67134ab2e219da96d73f7ee1addd061024ba2f92d5c7291f8f0eae112c362a6ffdeec71281b8c56ff661ab35bdf49fd0597d518d55603656615c7e54a2219b7a04a3736e7161b8cc56cc1d60453eb5a8b2ed8f1cd15572ac83dfc60c52d392c3c75c25ea1a7a9d9a5fdcb9b06769fd3d468ae50d482917a35212aa7d2aeb6b86e5b910239232eb02583c7dfeeb3c9abbc57585c70095161f527046926823cebc54344ae09b96d8d0e159ad2f0988e5fe6dcc39b5e0c39271a350a8883e27563f945526a7c9d97ea55b197534d711ae598a29249842c07ef3daffae4e91660f751a9c60d820e534391016146a602eabb382b2e910ac2a7164865282f654188df0eedc1bdb80b7babed00035b82abc20cfc524828e36a1d7249789b24b35000d9db09f20d2e418e51551011da8bdad150f4540650d3268cd23696aa7de110526629038736d30ce26150eea9d51e2386cc46a1441cc4cafabf5b763443071e5730eed54e61035b195e4e23a367c8bdc434e6400036754caedb6d1e3dfa8e46ae4d536d99980b04291c89328b6d9889533ffe9bb817d42c184c481be21430a71cc7d5f9fffdae2ccfab94ad3f49c401768af5408ae736641721c82a9a09fb9ac006d1012d88423d43474595385b7aff602dc0f96c0911b892481d38121710e6e79d7fa09eeca26fffb05a68ed73625a6b080636e4f9d265926dc1c55352c83f6ac48c826eb922842511d1e12f6b842c23cae7a6ea0d821d38b52786d79d882c885a67e21db514627e3076ada56f4100fb444411ff24c9ce94c5180e4493f35f6f7aecd5dcba5abbb0decc97020fd0067cc6b5d170a6b657306d2c7edaf9dc04317c423abf0039c4b8bb43d943b66ad43343bc8e1391b7f4b858aa438fdc6b81c386a29e61b3e9cc8370fcb18c703f58da4d8c19fa7c0cf409c77ba199ea20f3f733fbabed58e27cefe6fcca54825b470787c4b054a1f33eefb6d6d97f6279669d9837fc69740d5da52d6bdf81ad017187ba206d77e58445a1b6f1786106baf719f16c8c586b66a4c279b7fc93634da06ad907c92784a3d20f28a172b94382293dc3a462d490558ec0bf182fbcd2eb7ed31a6617fe848d4fb3abc6b54d9f51a0e13dd3ecf792e8b8716835c10050e90a78ada61bbee24ffea8d6911f0d9fad26f2bf7a01bd4db543a477412b65968dca7edd7de752ac5ee2fbe4ad010a507df7f472dfb930cee6eee5ff68d59738c0d6efb0bd1ac9c3e052a29fb4ba05d7ac3d793d6283a61ababfa5d008e94ad82d45f95e32d6eefa8afd694b731fd5890d0548b6a3617b856b994b8855f98e35cc0bfe855f4ecb2f43da88fc2338f16bbfe85212dbfd92361d774529d5547944b775d812694e72c456fb029e47bbdece491cb4acfdb0dfa47d9a4abe1e6884a2f56c91c556b6d7c71670f5502c3d72eb9bc80596b3279b1293fbdabdc831fc00145a77af901285854f8427bdaf8467d6724a15bdb79908fd2147a4adfaa6b4c46a74cc0c4b7dd282405418e2aceaa9eddf1aa22902c3bcbe4c5ee6e0c2ab1d6a6db3c173415d4bae7bef7e3204bcc45464737caed9c7020b015024c0abe8c1b20c3b92235a3281b9cd40aaa2791cf337bc06454e2d9ec42689016cc0bf01030cb2a09057f1ea097a53aea6edf51728e370e609c5b632e891bf0e4e32e2ae1921a34ae17cb65b1490ed45b999d9b6124dfd584d27efeb503fc19d7f24df9170ab9165fdd86065b8599abba2c9777ae6d5f15833e37cc36280419f6c8fd3ac93ef9578ed0f62565a68eecc3d6df54c4dddd61826bf4d8917bb115ef8ce17c32cf187617d2db5994fe05ed177e5df094987d0d95128d6be4ad78ae711cacd744599f5a89cb1a73a29c41fbf541a120b1b34e80f0ed52f302975c2da4b018205e6cdf4eb5c1a30de4b67ba4f850de94313dff029b3066553c740f62da25bc59cd55a8afc6a4bf42aad332601ce370dbdb5777107225d6b74aca64f0e94cd9afb596e27983c9c2a013a687e0685910732bb89871de6db907b63ab05efbc4196c6de1d12a7ddc80e590f7d295724f0a18824200faf18ed86832e83476151f128b231234ca08380d2037828901c08e0480fb4753afbfb71f47756d6016b68c170880330d107010d079c8ae3fe51eea652414a0d4b1c594e49dfa9f0fdc20000f25a31771ac1857b0c3882a188db25837938cb51c980a593544a628e7a23f46ebe371c0ee3319bd88752c5d78ca58e2a5d4c681fa93d57e8adf410b94ae476d855e74d72f661206b73839fa50a65285b63927b9c0b9fa396d776ea743cc8b2602e2a3b9c9387f524ba722e3e5fc31ee45d040d8d161322a4c11aa6bb86a8d4a6f654f08a46a8620850a5883674f1d234664d8d8c4058c80cd98084af9a92c35b36258353f60825544f374d99cf8e35cd14dac08294a3a9abb105973480154e0744c3ff7eaf4edeca91b4a9c481537b2d5a5e70cdd3aa7b75596ec17b328cbe0fc015b0aba368eccd44821e8028365076d49bfe63ba4eb8b7cab5b0dfc3bc84fb034eb569a5006c3a982ebedb178b988841d1e94e0fce079458bdfbc002f17713cc24aa1e098e9d5e0862304f018f32804abeba09d743f855d4f077efc32e8d10bfd86c0213002b24c47ef211baa90c5d1063b0050e068e6f8c01279cc7bed2317c44361862ed95ad74af6d707bcd3447948f1e10c67c3763a1efd60862ef6e6f1ec03d9917730c29ebf2193744ee65839b22738d241e3bbd984f0cb4623f2ef5cc1104f388ef065aef11661c8f00b17ae59759ec9401fadc40ee3c131644050e95c0715bfc567945c6ab3a86ad10ad36e472d1e613c7545de3cc9393224e6a91f6f4bde4235764420fb7fc1e9912c9873909c9b4272e1038eaf2a86f902cb164338cb896962c4ae4bec4c7dc462c33fecfa5323dfd43b64b95dde43a3a00a963e91bf4dbee1fbb3768804194fcff7dd508395179ae96788d9978a352a4da83719fce6e4978848d626489053281b0c6aeceeab693ddee3c17529df0d0926e67a7ae12b9e2609b2a705a3e6e0279009ab183dc81a8c800642326abb9e719e874196d9a457a52bd0876378deaba73dfcf82716298f4d670ac883b348ec9a7b8edd804aba980a4a056f26add2131e5ebedb7b3ed5a5dfd0cb346ccc445db5d9b864c5e27af5d2ae4a687aece667cb4ae7122be071745b6d570d5b47d453bec9cc16b4406b3044632ad7ec190de5d22f0deabcc71f10d8fb383fbe73149810170ffb1526462315b2b74677c82e68412eb36a63c2366ee35c296df723dc5ef0071a8d2ed072c704e667a676a92aee25a3384a23c52b521082a2f20432d34ea79f197b4cca8ab89103a9ce6d367860e418d8b0c363d33df6f901bea81addf31c5122e729cfa92f119ad30fe931d8408b5c03809f43d63aaf663400897379c5b00075d5de9b42835fe03d554432f91c7cc18e29c824da476eb0214ef5b3c3d5a31bfaf2f512227a762d449d283660417dde22ef41f2bd6185f0ec070017d6264607d1497277d449d0a3016a490ab21bfa364977f6f77de0f6ce5df18c253e3a6f5f6a2b9ac85f46f1bcd7a84d8fe59387bcaba030c25ba501ae22d9af8195163d585a03761e7877ce2ae13cc40486a670fe0bd0850f38d36a5c563070b1fbe9f4c24b4dbbcd3e5edee94a8d6c62782c803af53f662827fc203e28a8f9ead71c87edadfd6bcbdd879a15d3e7f11caa3e943dc9c2e519ac6aa06546985898b7b0e24da2921c3f94a1d478203f1bbcec9b7bee203cbec106336fe0f01907e5003d6221f303abb7dc5615bc1284bb10c95669eb0167141ed3bf03aa9f5b61d1f5233f0b602f7648d1effc0bd80afc0e01d9996e423d3b88bad6f4b0b4e9fbdcbbdb8e2d91caff6a8ba374214896da820a69bb99670247aad840d24d82d3bdf3526e97061b8ad9bf0c26f855281e531edc6b373aca5207b15cc4aff05bfb83511f5043b6ea831a442943da93bdb6fb76946dc7e5be8ae608d4c532452784ff71ad992ea223665a53cd80fa36d3c5c7f28dd311b7e7e0da3abda71de4fc35fb10b808abbda6bd22b5d053a626abe42ee127f17f125bb8b51b1ae286eeb7293045922af8fb31d5323ddf9dd91a74c2f1418cd30b0ffd016f929bb119c0b90531f18211a098681d7b1a0664213671fd2e674bf88f284f6819640b637b34193ddfc17fc965b6be59ee1ad28caf5084a5d532f8873c0a23cd89df6213bbb07a268bc9ab2400d0e886e071e335279fb44bda3244270149ce100f55f68b27f899ceb1bf187e162cae13b5b5f7f91d66414afb8d6967a5bdce752c55f629d2ccb9cb572fab301c17b359ae8af51b68552b6f27dd58c72484a36ea19fa76a1757183b8eba871c1d24a27dfa22d789dff234f2d3b2c629fb4262d9bd6c81fc4e520ef60bfa4309f8feb55e884f1fe473aa13ef25ebcf69a78a16b35b797a486f87a22ad9cc1ad6a9937f9bc8a21b115140a1f416541ec6a8c0db6815a16c3dfd05df42ab76f59452b99eec1e22c40e1b66777b946871769806fc14546cb966e6f52eddf0e6fe6090ec924d41748a47f239dc4975fab63f65ff7622ec87453597a272febeb5a2ef8176d44ccbb8061cab3abbbbea82fa4625552bb0b6d58954e4bf51dfe021cadfb16a017143cdf86ef369a89ec7e0933f0d089bb6e52d4af5d4f8be4b56bd0b1357b3c22606c494b59995bdca6eedde40b9dea5f5b7bb281688bdfd27bf4093582a1e1c5d295a3710b8abaf47bd72670855f365e6ad8b08ecf7ac65da04aeb2cb857909ca7e61218a8740bd4f13a99c2ea49a7c978d864ec179963b77c4d7139b34c12c41d17420615d875b33a2e5a0a0c2d68dcbb8b8628a13d533fc69f592cae70267a2bd44f17fcf82bd276cf56c80a2b031de3968e0b65005521863dd54433ede699c6d986b9d6ea0660df78f02528ab9995de3d0363b997760cce45bd502322e4d233a404b7b27cf8507b853a673907bda33b1dae81aa18f01ae59f19dad8fa5847e20ddae9c6586047cab13eca8b7501c34b86e8a843ba7d059e201248b266ce6e6061c91e9098b1aab6db4013fcaa10184956a164adc19a0af7421c6e52a4eb3c2df52dc150d8ceb3a4686940d99767ad06f1d932e21938ec3149d91987e301a692ff96d9378c47f1848b1a0071a3a2078f30904ba1bbad37932234715a94e42d78296bb7d640d005650801221f68c3eeaf64d9acf62ea0a22a16f7efd770e7144ebe56f99fab7c32b94b5ad0328f34623a926d6c1eb381045a202c8a3dafdbfe32849dcc8dc5dfe55fd207cb915e040033af23c228e367389b595542327a4da3f5f0537c286c3747e491858972c66c018a36017a3d4b5b1d07f68967bfc472854bbd79970dd4a08e3712ea8a6260c39839ac4c76c355b12233cdd362a5b37b384390f105205866f02e35ccca25090fb5511919833ee59bd69fdbfc2b2c262f5afbf8ac7ac36656fe4ee0098794bc5b6e135dcbc507d147c7fcb1cf44f2afda555cc342e2287f0027aebf800e1b5b99157eeb86c6ba3a1cd7acc32dd71a410ee22ad1d7e0c29b680fc41a68c57b5167b1c1ffa2240eafed28878d4dbe8f2fd30f14957d92e66b81de2cac2b220a13cc6dae13518aacef0a6b2244bbfad69e576675eb3cc13667269b6f80305ac7a6ca6be6461aa55c52496a4e456cc8085dae2afa9447d350af55d0adde140c1b6c290d7b4bafb83decd0036753feaacd3c38f99e70af2d443ac7cb01c862a976cfd204626fa94f81b3c80276253faa1483dedf7b63cdf16c51a2d3e122d32db16e6582182311562583958c9304bc10b8736893f244d9a7c6e79c2f26f2d3600943f0041b68c8208a9707ec928411578bd34940b2655c38a75aaf0c7c974e44a40f91b6c15a4da5499b34ddf509b168d1c91c557f5e8231b5db4799920229d9682503e29ea4d9e80049eb01873a6e07ce3d4a976b1e4ea45bed1f6938ca8812c49d36ffdef5f089302b5ba39c1b3f4ea12cdd5f8944e2dee3600905bf4f652cc7575305e3b584ba79fc76f8906af38cc4623df6044dc802c8c16e7534c35af05944ec5410472c75fa174eabf1400ba12988acb9dbf356ba08a14369941d2a91cb6ffe21ca2c908f7186a1457501d04111cd83feb9d668a45b8e6969c3648329d1a2f0d3e889268d4d13360677ab82163dab0f33a715314733eaff6d262793e78b8638a16813ec81898f74b81326069c6a14b198b7a7204886d92079febde7f5329fc0e20db361ac053faf169e4cec0509921417bf24040ebd1e2591b857f3b03a5d38dc1711bc967662102993eac05079097fc9a163cc6e7cbb9afc4bdbe46aa662215640fb1343d971ea7bab7a93464a7dd00874b28d854d631ad85d6068367d80a5dd5c85431595f13d4506ef9734a588a949b011d75424041413b2c9d6077ba42e232f21fa5bbed9f48a8d22e420363cf30a6c5a90870b4ebfc92a5349b675802f239832ef1ca7519404a5c22552a80db881704e5d311e0e5272c99efba4004e281594ef62e792f761e1eeccdb1f411f3dcd9ec531a7c4586220fab4cac3c710f7d42be4079ef3d7e0496ec67c2be09c0153f79e81064b8601a8ccda0b2e3cd9b8940006c6331dc3a395b0f60a41d4f2424ce616e7b75fd675c04e89fe91b42ed0693a0b9f03c0f779ff8056c9e16078deb3305f6c462ad8627b3372251f8e7fc6f0352bbafb8a5673685da284a793e3a051a361fa99d5a5113873f4b8285e189be0d84fd967029e2b2741056b1b0243edfb486d1021e1cb15b04b3cf8a7851f7a6fb5c4e9307928924068fac500874d6f3207888d35aa8ea7d72c89aa2df72ef4bb413b7625e85376d11afe64988ba64170e657ccfca52da956684bc6db34fb062a73f36873f6e987f6477f725ca5921aed170eff2b367b03ad0bd51374c299068b0b0a78319ca666a3cca8a2f42651205beeb86c42f4f536a3698d598705ee80637c7473fb93c409dc1b579872983839b972509ba56525f717d3f224f49707083623405f2df1455abce5ff2bc144d80351ee778bed1e9f40fe5e3e1b6c5b43d19c56b40e38eb996a0883d027e4fbc19bd42b8e71ddef225cabd598f147577c882dbed792674bb9da34e55c1a6f455c51799ea069cf2c853f6d06e11c3b4313315a56ea2c4d2de2f6eea5c0336db48f941e50600c2e1d0a5b1197f1cd450d2f4e24193229d0ee19b9e65034fe22e021640aaec7b35072a027dc69b5ec959a81622cd01b6261e81d106c316fd5642338b7fcb978f839e19342e3f20ba887c98e8d9facd48b8a7fcaee0c768b54bcf2838fb1d967ebea2b885da0ea434f32b0dc36611a940136bb1a8ed2514a962ffbe602a0e5a2ef7399b474aaf5b18b380c2be993368a931339b16b6c5af61807ade14b7909ed04b63fb8876edc201af2ee17d59d10cb92ac217be07fd4d963c7ce71c0c13be8da859b84eca135a06057c8bb204d7fc885b29695911ce1782e61f3751c6346229defd5755d8bb05877a940b9e67c76947f4ced53a28e1615677f8e242815806ace340571c8dcf9c69c45f725f5b8f774a994d458725928688b1f299a7d42a7b80785010864dfe5270e99728170cdfe07a860986d4cca7940d14b6873e58527f9b652b0f1f782a496931dfffc35786d2608f07b447695ddffa38b75958f1e28ab24df1bbd81c2e6354a741688e1f0c14f5fdb7e165f2add7560dc3a6609b6853384e86a76c1ed73dc3b107501c5605f85474bb905f1c708bd3368865a5be81f6559395368e6dce0e7b911365aed22c9aaef2aad6382b8ef258f9059781aadcfa44e7998d3c46b3ecd9ed52f243817514c02524ba4ad4cf1a7a5486c2da7079d16086f75613718fa10929c9c9fcc314a8b769158cc225025dea98b11b83940ae1a1500c2fc414f3b4ff438d305acfba70fe46797c24bba0bfd71f62115c1317e1c2744b7718122f03244bfc4730cb23b19511d3dbd9e90e2cfa41dcb88cfaeb54e602d7ac20f51c8146e8c4e099d21bf3aeabfc6034ad85c5a2ec04cc0e368500e8b5acdbc9e7a70e2f507ce393bbe7bc7d024ca6ced61d8c71772cd58cb3145557b0bdf57935596fb4e6e1b3967d74e9f5ffb66b9dedd8ed43ee7d5a2d2404d01488594c78ead46db44364006fecf8dc78864494980bbf37e5f2a68b7c90accd5d55a01d2c12cc5f2edb493841145180ff72c0d909c4a404a51d11068af52d18bba1a41617876acd37d6212a6afdd4d34e199f636e3fbcbca16715da7531cd2d1600f9c1d3ae07c55bf2e379ce0d6ef29eaa49e740bef6b3a39746295997f140ce1359d0ff02fcbe365fcf95a11fef7bb14b60c53a0ddc80e64eab6a3fa975f52392c6486ca4c046fe860a1bfe1277a3ea703c669368e99c340db31afaac4448596f3ab3a080941e29564aad0fe6f80cfcc47eda2fdf3bb328eda75e113e93b8244d5f4899d7a4f7a38356cdaa6f38ce0a325f0d1bb61cad998090efba6ba6f6eb257173db2ca28744f70ab2393f94ede8a10dfa9a10ea3f839b5aa1c2d48d3911a7ab6434f46deb5b7f91c12d2bf32f5ec089948e92ff90e086d600b1dc6941a5556cb6af9eea1d12d44e02bf51d218152ec6a4473d77477118f6256148fba073a9d015288b85877288977c0b820ee2b8d23496720485ef2faf66939a004d272c079208e63c414ea05ef7440c7578555925a1f6472344e144733fc23b84b610b2bcd844ab41729f7317443bfe12cc44b59b84dd5e065794def1635d2398188533320c608b1e650bdad1a4bd160461d363f22b0674fdaf83c9c48548d5eb0970dd7501c74fb5c3c1257ba3dcf7a1d8117945243f5ac53421c0accb141f8d5f44bf49f573424eca44a250ac8d26f39ec4015da43cbb11ffac42b1484741bc9d197fda8e55002755e3677428d9043bc536895e02f8d958e9734501e52fcba999fb978bf4033969e7d8983378d2e279c2d906223b9c914b31e78de12198e1ee853fe27ffe8f426dce50979eb2293080def6145d86329bdcfe6bec35a425eb1d16f0408bf82ebe4ba2910f8c4f1a3a8e357337be1022cb350c5c5f1e978067b25ce3045dcae2bb4bfc8ed13c3c7e398636b7aa25ffacd30c3d9d79797c60a726d15eb0de63e83a54972002323cf8ceb3ae31f9b2cc58814794b27000eb2907d78629553c91cf895cea3388b9fcfb331a217cb5531dbc5926ecf5c87b7615cf9efea31a78b7dcfbf4e0240a9b34e78d713ef2c385959f2567bd14c50b2919055461e4e3e0f8c492b7a0f8a64372d00e59e1344bc0bac6b4330cce8c9f637694db584d28703ff0da3208399c98e5b36a0ce166a15ceda81e733546111a83bd8fed94a93f1be38a659ef25befc183a2e02b13e28884764ebd625e65cb22b0b96417acd4b7848509f008c8386e32dad9b570e5ad94dce6eab606f3b0da19b16845138a1a24385d2cf6117b940d28f0aefa2454aa2197050637758b1603c0079254cfa38f283863c3249a1826f1c3f057ef8d03e65452e02911ca1b378ea77bd227ed397e08a64c7b32bff63c7904952b0c70caaae01ac1d9efe59ac5066dc263052e9b5697255a1234fe35bf6d8e9cf13180ea305730d7bf29f83779ea9df9533155da3eb482111fa2b363adb6247d3fb6d0622d35379f242fa0db65c736067399a28a2c3d0afe6282101836e251ae9233e1a066c2039536e6574e8156b0d3f997990f14174abde6921fe6cc53598d9db4f428d443b730e766f5f0bad32dc12c0ada800c06d867741646b8d69c592827305559f8f16698cdb2c8819e398e3ea46e15983c8f2c69a5a401950d1c77cc619cc16770fd085353be493a0ec60839c4d4be2d0bdd1c3a317f2437926c6c5f5ccc66ae554718dab570df96569881aad8cf5c7fb96ef5862001ad068b1a7ec4ac1ad097dc1168d341fab16b22dacc1f40a8a10ca2b9f02a215089dc51ef56f71f3cee3f9771b637615f8fa4d51205ad308195f1474b8fb51bce375d5c2e50f780c5b6e2cb36c20350026a95a0d423d67fae4fefaa6e620e2aab207e9dec47c352f6ed439c8bf3077cfc7e9fef03a28bce2a6293e58838c46a534cfc0191433379aacbfb36298a752be9324b6fdfc413c4353099e4bae7ae97127a85a6dfe158e67903cea6582c3251f8172c6e79b2ea7efb25d8a11b3025c2130b56bd6f9f59d237fc5346ac72e1581897038bbee855687fa9e28e8179f3819a8722d0362dc24416b368f2c20d3599371c52688a453455fe5ee6e78b077c801d10a9eca01598fc61752ea0ccee92a5f919b30d176de69aa7acc8824b3dc260a44e88b4739b48ad18e61234b858aad09913d0e7780d5c9c49578c1488d1a360266f71a3e122bc858cb8c5f2e2bcb87c81398a2575aedeb411d081d0c464352323c1342f3673ebea89ee341dbcd62886d0b758fd7e8bcedf42b63c37e7b840315eec82a762f5650f05c6e45e2c7a011b55fadb41ff059010858b8309fec9883e2159c61b260d56169d8e66cc531e941d0458825a05c68ec9f3dfaae4da04564192b0ac92edc4ee03fcbfcb558b2050027f0a53282e62e019acdfeec8c03c57f4010437f6d612228c5e870cff4a2fd8362d3994a3ed41775cffbf1fd12a7f574562545c9e1571ec39de7a2846b73075553cfbe126b9f048b93dcc8f9a6fb0a401efa8cf78a0419f41c44a67d93b7593e2ca55c358fd9f6996999f1a23f0b2369cd23f341ee04ecadb117ee50ece0e227880e3f0ed7ce2056c329a9b9dc113416d10892aacf9fdd482620a34e0c9484e81909caac7fa602cb434a8fb04d89ddc49d5679fc1b2ebd870137f70f1cb52838781606ceed366c440531431d0580902adc09dfb86190b5e2f6bdd871468e5ea2771c472d04df030c72834476bd785b5a77205b186554961c14fbebcfea2040175f93be66e4306ff7607d0ebd5d43371045e452e937e38f7ca6326c3d4217c8e825f9413c1dba19846c2e213978bc51676c0e18d69147b3ea9d7f10a7c54ac84cd793e4d1689d01d168c4b822afd9b1d1713ab6af4bcc6e6a383fc461e617ac2295e58d7a11b4d16788cbe4df76f57f90dbf28f98b36ad3dba7836a817a69a0253bbc4d22e9588d2da429bfd56e47f68e58017cb657faa8b490d0ec97da6dc9f95f603581e330bf643aed2edd3e3da1f95fb6dab48ad8844926e35588a4544829e0c8a29956506f8c7cd44aee9dfa6fc61bc361e1849e6304596c57bdedbc85294122039d8e02ab85f04db13f4217d7e60e65d854617ab9f6a0a47be17517d37bab3ec409a340544a0a26ead48ac4ce540c0041027878c86065abe6a83b2624165e37cc28434a156ebe783477c53a5efb2981fa36c20427cad65c8814abb2b41480648d57fa0326cd86eda1c142e4f746bfeeeabdd4c42c8dec4ec6478aca2ac4976416f845f7a41c7c63c1db8611d7b69fa094212fa636b2075e0b47a83eda80faa43d898aa3a87f88f2545889dae64730a6312c63d24b6a3ca383972e7ad813cda910873e06928e9f48008c6421893455877216151f10c6ba35aa05f79906094ce2d2935aad54da09913f089b3dc794bd0ddb3d7c9733d589790c53d3bac29c46680f28fa5bb42f8cc3383b35fe3e555e6e3b17b0b1db4d34a45dfffc29160f3ee87a04d51af7b5a379cf6dbf77dc837e6a04c2593012db0bd2868662c03f8d0790eb72a275999c9280e023732d1dd714a06e0a38313ef87aaa0e211c2fd36c181bb23b9f146d0a2f632b6a0435739016bb9df46304c7337adc9b03eda169893d4edb0639a8e4f1da04b998da5e644c5f827639663a41fb43299b3a7d840b36f44ac7e83c818ffa537fdf48aa5da199ce009abc71897f717579bdc0854ed51c7262f450d0898b8586eede0d2d307d7b1e07d727498ac5a65a0a45ab91e15c1333f055e9b795c50c76388825b4d72dd69bd5b37091a2f10350517c5b09242d8cea965a7239d421909ca4f0bbb1bb48540d7bb3f06aedb02092ec8afa13748a137e0b7a02b85d84c955c744d204b9753d9b87c25f7345ec1bb5aff7116e006aab3b215d0c1b64cb632c0f989ade41ba3404c236821603b9b427b841bb66895de0adb68e1d33553f51a169ac9579169ea0aac0878c1c46de6630abfacbcdb4dadb5efa3ff8a264ae130c426e916e74b98dde97b2c44352e049783487256538dfb5619413d2c67787e42322993c2cd107c4235b8dce71bdabd2aca9169a9257d9e7743dd3a2efa6bd87e532299600135fa5a27943c48296c60cb3e2bec379a7cafcc8328af18ba7288aa6e963a9dc7d2159c05843936c59756eb57ad63483e26265e224fc3e90c937d0f719c26bf53c2a9bbf6a77b94d51ca73a6556724b3815afa8002ba986e304d4e33fd50927d6f89640f0b4e538515173c2e9bb6595d0e6b71ca77b4c9d4e269c6669a0f7bfe1347a8e53f101cbe54b38dddf7092cf7cc0ca45c2a941516e38a1077f9602278ce7a1f5d677ba78c2029d6ac21f441ac8bfc22ae9a2606a83e4a74ca079156bd6f29437d5b540832b7a5b88df574634f52fe818f33d5c7a9ca4154f44584bb3cf2a0238ced1792848c2349685c0d51687572410c77f1035b47dbbb80a40e14c7352a6ab4b937ba70c47337e0b97fd6a64b1d9a0ca5297a76948b62a0497b3e7b10f4671e9c3b1dec4ac5453e41fa097f482703a85715dea9b06523f1787a2082948aa96cd6f37427f2c451f77197edae433872d336a00f7425346a3b143fbe2fd0a0b1087d0b4958d8bec10ffb644e241f51438e2e352721adc6a719dfa349a7992904b2d133b5dc49c70a6798392dc41351ff5f972c88c1878632d5c26f28f8b514173a80aff47d17500aa0549710856105522776c84dc189b4bc4126771341e91d10f18191741846348bdaf8306d409add0ddaaf0e69ca6f61828393dae6e6368f539427c17be922ef95e822d4ef06ab95dd69f33318c8a0ffd73aeb2844f33bf75e9a9566b236afcffae6a5a7ea6a00b4e0b09ad3e55ac62f177190efa75d4567dd7578e3f7f4ad39f13c9a6241b14d09951bf88b72825d55d46103c25993310fbd11abdf503b6ffc5b9d23f828c48d00463970e2ae8671ea5e4091c1ccfa39c59241f2bc22771acaf819988607f4e5dbf2cfc23e82cff8f282c19e0f127c9a8472f84818e56c09213dfe5a09214d7947d308ddf6b6a8912e872cb3049bf3a71239041c137b76056f6ac95532ce28f4ad06c364f68c2927c9e8d1086d75545f59185e22437a8423271a6b0f8b19123f1bc8b4482849cb9545609bc690cfe8003bf12c417dfe714593008973cf128ca89513eb72108276bf271a8c994684f8a7082367edf4f2ec5785dcddef59a5e46887da2491acf2bf1a41ed8169ad75c253484bdc7ecccd2af1492684569385643ac768c65e769235a94c551a0eed878aae4b36f4a067ac441d8b3d11103020435390aff44ee39c6ce13c6fb147db1dd43e508e93fce27e1a0ea6e25c9fbcc0fa5b3c043337af76560a03ace247e36e8c25b6051cab9d9163e619698137eb891195470322f21efaf42a2a1e5e75385f9bc5837ddab4367a3c6457886ac1ca9b79bd8de68e44b940db61c0b4333bc3fb045eec561448b7217cf770cb8e6d525d3e2c8ab1afb746665476c53a25b1f219aead8bb651f24b9f28b5409d33aa3d6598c9eb3dca24a735735e76175c6ec9721da59a90302d183db39dd35c4cc7d1c239c4a2f6593d08493e1bae192402a197f81e7cd636b70c5ee82689c77c1ada2c053a3a56f704e942113695b43fe0a37879b4c2eb4fe5713d57dec5ef73511ea1df72d30e588d00e766f1721ece23727bedb0f51142211a372e375fe7ffe57fee16eb387ddff7e1ca03ac2408b770a0fdda3bebfc3663e1267fb28b9022462556e3c3ddc3d64ffc6c09bc703ece35a1b0e7a97a2b37eef30e3bcd9c9c64c2c78df71092e72b8dbe7ee8f31536151a4b170ac68e38f302f8825bef49311413d8f3668c6f72e23b615ba88de8ada2f3493d89c4430eadd5f6368a2e403ea78cb762f78db3029f9190b9f0c5fc340c461db9732d0585647b41e99a567b4e513da868f4864db08c5ed64d0f6d7f30a1ccecb7c11ebf281622deaed307116280322f8236f04aa974f48dd673ee7cc6c400abefc2583dcdbce5962033dd31d81337d262e11214dbccb546d06a5825e13081369f7d05465aa6af361769360a13471f116afdd20eb5ff4ab0016d7b6e7922d11d5b4907b8ef1e363bf52ad21bc8b1ab43cbed26340b20bbf2473fe809bca8936bcff444d05df0a04486d5ebd148c64ee7246ed7772f2d97b6d38c943867574b12834e94a7ed1bb0ce4831d5cc431408678c5ff7e0313013741562de927ed987f0f02682831a1ea36f8c581af918a8828c71b4f886066f1b2abc178094137ecf2feb7653bc329fc91240dfc79fdb0d6937e521b84b4cdb2165050b7cfe8c6512bebce2d3322905c4fbe46bd92da275696b24247c674817de1071606d528ba8ce183c340d5d2af07715327682051266a08ddaf1fd3f9dc6ad280cf001a26d7a70d1b6599977ab8fb2255c0fd50786490b4ca5098cd321daffa547deb8186666e6e91ef203bffc22be1df813c87509e915a199fef4fe357b39c3f09f2abe43b40a07ab1a060cc9c3591d648a2fb87c6d6bee746e56e1cfd65389cca5844f97f13ca5e374aa763c4e842a1f5bfa9abacb6b90dcf9565c4e0260d59e7f1669e780001077ce9eebdbff6658e5fbaa8abdf0d7c6cfd2ea19465532b3507e7582b52b5070c797ff96ced61d8203b1e1ac3dc9898c316132abb4d503e65ce2cb29145e6e8602532ffe8e16648ba9fa3f60a4d5c4121cc5cbdf9430e636bb177c81d1477e5662c33971a506a17b55ab8f117fd36cef66720414622266a263ff5ba01f348e1e5d5bf1153abbbe76cce8bf8a652bd3b5ff77800afd49150d9dce6023dd99a84ad9cc93d360b35a9e08c3ec2aca8d74f0735aef02b4a9b6a153427613a27a231bf23bb7d5c767790304efeb00e47c141b874aad81ec0e08f9580c343bc60705aa894d66fe1f6dbbbe107758e506a6689d00e1a3cd1b6a9173e4ca527fa8d3e21bf86ce3c9a2cda824e8aa1ec2662c4cb34194730820202562e4a749170b054db4304d8ffbb555dafc77e15cbc34fef36c106421d07199e771dce077037b6e14214747dcabb2f97aae09763eb338d19ffd10d4f84c700232f8e6e848cf98f551438e5beb469c4d6583734edd4b6f3ef108a26476cdbce5384aa28ea421459330eff097c353f16519319b031345eed2dfd9a986f4bff59a85843988c182a94cd2c23aafcfb6af43d28e40b323b536a330f98ac583d88c0ba5e09ae637fd6f9e1b9da10a272ae068a1c2e82d0262297f580f246fc5fe1d9e5bb655d4a1f0aee6d4b87bdfb45b4052ec0e8dabc9432d7826e4e0e95845b5a7f00d1fabbf247a9ac7c89395877319dcb85b540b0ee19bbed9e7966de857213512266d58276b69e44b44e78ee1f9afa13b988f6bee457fd8677ebf616f3e6d43ce10bb97e41bf5885e524fafd857baf075414730a7b4b12dc6c2e44b4c3a6d58560f5f74fecc0d87ffd2a185fbf138f59b803b4f30319b6f0449d0294a86bfa69cb19b10507070540ce88ff6b7c9b3c777cf7b9787487d04b06bf8dd61339f99b7ebf91f5c9f942dd9e6dd53671a346957fd228cb1a92ae8946ef77650cb6088ee2bff514f7a7db6158f0ae161822687475656e6b54513589bd83c28f7248901cd56ea46d60d459a434a9d1025ed3fe23fa513ca29705168762f7369503ef9fb943723c0ae34efcbf03884865be57e1eddbbcf9caf9b8d2f9b0a976084a1a95d76ae98f474ffe3e8cf43f37a5b29febaaaa4a8b1ed48beef436f9bd8f1ac414ca50d6beac86c7b82c2162e200d6ce3fa3920d78351e1ccf09fc84057cad9b526152d82dfef4fc63f8d7a893597ac890acdc150903b738a6f20f67a8aae648f3cd16fe6744abaafd570f41cc4d9041aa253812d362d13feafbe4af9c7fcd92963cf24438657e3ed85e1537982e72fc3c78efa1fab950fba207ea7b4f8b837c4839c076ac8e3c7e7920a2665c5ceddcfd12e51c411d1a8a12be4f869499aac65ce6a89325c922350213ca81b467909f52824b148f51afa5fb4d82fe88c79101810aa94280005571c5d9c16e56aefca2b1f5e56cd9c0944469f743c58deb376f858ee4b14d4ecdeaefa88ccb54dc60319c0c1f45c50d6437785fa0670b15674f788715a9a0e2c8db2851a4b8b7e344df9735d6e85e9d9e954a891611aa80d2005ff664455ed41c626cf66079aac8e7fb2109d5d8f20ab2a697888490b9631639ab94024f3debe0463483cdcd85508b8ec2fc5a283e75c5c4d4d37a657975b95031f0597837253c66334ece0e5887c2dc9787d98be804b41e014c715fe1166e5f1a6aed183c569e4d681f32ec7fded6a2d9dcecd42d7e23578526b048a41ad6feca4c1a68c70eac3eb68616713ff861edabf813a4bf6adfc287374cba29f2dd4884c3d582a745a5f2e77b1de85b98a950d74bc30604de7352e7e9c29d41abc8a68a4b30e3fb6b3984b81d86a0cc5efa102c973c550487c9c947f6530cc11838dafbf048c8845814662d73c1a9873b53a1587d40577d20de5c3abe47c37efc83cb56a844dbdc708eebf822dff41687fd1bb0a2da72a952e2a5fb252f2dd00dc7883984bd6a787d9b51d2f0254ebd68af16630a4b74573e92a448fe18723aff918dd0049ad5e56f23680c2824322b8cf8db40ecc2dfc4cfbbc7525539c8001b6bb0db170c320436ffec96e8f90208cd901e962050c52f834e5870ab228d16ae9714d84dfdce284f39dc0d58bbf134b346703408f0ab66a700d0884353f83ffb9538fc033dd34a0dca709628d7545f5751bd76e57989e30efe7dea3e5f651b714f561287540ff2d6ad4d750aadb100f6836b4137f65fe2f0541bc94914b5732b1ba641ce6e978ff91a600a418d90c8d38bf36af0401aae396b83831a8ff06a6026db761aece2bba2dd42849b4ea82ca55cd2983453646df4e5e398348be505fd90ce18fbc1313cfae85406ebda2a8589ac0c697491d99601a0dc9922cdb2f410ff9b1993015d3aa69783569da8dc1b9831ccd2f883a7940a95ef6fa85a6558b5710932b139f1cd53c3d8e4b757270bc57461c55e7606476c2532965e0ae97b2079bd478a97e420f1215be514a457f21ee070e0f12fa203b449d04d921ece2d2567d39dbdbf75db9214cb69d1a391f0189b5dedb2caee093d533cc219269af15d98c5d890259e12de1688f2434cc449b56a93090141070123dfff6ae969b47a4c5b5837424309997aa7cd528a1da773c2abbb3f950e66e414121a3cf80df562e809e2fc16e55dd849d57ecba05e371ff50906b5c6fde2df6071e91c597f89b7f38c93b6044160478834a1f6ab97af268b290e9cbbc9f0c3c3113ba945fb138fc181b70b8795a8d5f22d7c5cd58e5ee91c9e5fd61d27ee671278048ed9ed41afcfe1f21cb430da0a851a22a4b442aaec5c232cf5b572773ab5dd42c34bb4261337a2e040eb1dbe5b9b7b79e26f180cd2d44831d77f585e4d407080fecb6d64a40b6f7543657bff81f42d4301e6c8be151f5cd720627167c3036b5c825a49c5c679673fe053146ea2869f2dadf3da1b62fed4ba35f146b1233c7768c3df6cfc4212dff427f33229a240a66f40357fbb625e668b00f0dc62d183d1a872af6a4bec2ed9d865e5101bc7e642ed7290a9dfaee64b579b106478f6d1ef629ef6b85d3a18b110bdc6f08ee27c8d97f198fc230eda994405a9e321864afad6367268d80864f4a7c180e5ddbc7b757c1866291d8e0e82305465d7d0f840377ebdca9223e9bb37acfe2496bce2a0dacdb60be2206abbf3cf548152b2a8b4c7ac201215801240647a3ea82986bfedf0bf364c361ef2622185044eff2aa8b1741bb41e344eaa9baa7808c9a3c17a7afc4ca6c8c81567e989da3cf2c86ba8c204e27e70ce070d6cf5a2b3c38761c0235ea34e833a0a640109b084102908dd1ee224f89a335d59eae014c78cd1201675fd633ea8ee1e7d6ae87b8d464e016784793a921aac78c4027f20c8ccffad56c11c5410499b222d92554afc91f74052ca33926f3e47be806687cdd18837f2cbd61b40177d5b5a08adb14ad911e8b1ea8678128ca8b986a99af370fc7f847e7c08abe7c837307809a9d02bfd30d9ddddea16315f3f7638ffbfde767cda3d0dcb24fd9d2c726732e070c7e4c9acb6e78a010cd866cfa78cfbc21fe80636fc6dd3889a0f312894845d2b5bc5cdc5029d3547cc824ed269691f49f94d3b458c3dc397e8e30e1471a31d03ee7f5033450121b23176252a7720e8c42c8d72a158aa892519774333cadda0f8cba650f6e5963a46d7c5031a98b78ea7639112ba7eb4851202bc87765a50e0476493695039d4f6d15269ca06838ae98b7b0e80191399cf766de9bd4aaed5f9897e0fb6cfaa432cba019d11ba056bb10f3f26e2acef791b228160e4ff4dd3039645f8fc15aaa57f7264ba5e6646cdff4a91caa63dcab6fe9ac41765ce72c7dafffd55e98616eeada3fc9a1a6f7bed1b180029ae747514f17c9979e6a74c22bd03206d8a78944bdc2a017b7383656b675bd36dea7315a9e60933f9a36a9e7003f16e2fbe67837892d34aab81aaf3b75aee2d002dd80eb7111c77eb976b68e56c4ef10b2b688bc3533c32b8c9479eadcc8e18520ae62d3632f856261ce6e7f0ae83249a39dcf65492445c41cf02ca25c55ed77e6a793ffad317c5d9b4763125efeee46a3a54e76fd907198b1f434994e7a4db53eae4e2a07ff6b6a18c0328896729708ef018e40a9ad914f15f2e8cf56ac21dfb2fb7666df918625d150d22218d24fedc6ea082317244de65c0062746f7b008c4b352b24e4eaab8949a7df647f4dd1b4983b80512ed8bbcc8fa75c519e5e7cbec23f2c7c21ed90c71727bc7074f177ad6ebcee6031681061fe2330673a815a66456d5b1d4ce16333bd060f0de52410a129dd42551968c62ec2db0f98edcf949d0a1bda01c3289714790cf0ef6ae3a773db4fcd493895ed34177a43df2f7076842b353c1a3d44c155bc90089a212289232390d1760bbe82ad9d1cc5b717b3d1a080d9b878692d6faea19beca8bddee5fffa3644ffa612144e8f980fe339455c1ca328c3087742a87e2f21b80432406ee49cccc769a93813237af641e178dc6abd4b834bee549c1ce1b780d49b2c64b9348c7b3172d0b97e122bd6362554f522280d46e5197d562af75ed90671d58653560108a982f3666b7aa33473bfdbb2d72cdaa80fdacb559a3ad463da813cb92862c9c257aea2b44379bdd69cb81aaec6b8ed73d542406962e5ef38d44a6e63373ed34348e3652b0ebf72a247d656abe6b5a48bc08e913373a91f11d2219f402ae6f02e0c97f14ee344f119166a373cbf6ce23d3b5061c2fce6fe19cc11347cca901d236ea7cd9bdf068b7ad4e9aa7c954fa729ec7a20d9263937e683a0310fab60745a8eb9155f020d8ef44623622ae674e8bf5cf0d92d006ba50b1fb9c94e1209ba0ba9cee8307d670ee4a99faeca1237f5e2f74b723b51d145283a42d6e5502eb9aca1fe4d5bfb6274235b763d7ac7ec034181d780edf65f096458260e6b18658032d34e87ea0478312f88dc3aaa053c880e01873feec661d97fffd089e7165c8d366575d1a6ce2bef257e8d7047da733aaf31a9bda1342d7d6d945e1c995bbb56039d12b70803652d226bef010d70110b4c0b9a9a0adedc2baa57eb6266d0d436db6a60f81fd2f1f2390aa1d462a3b9a7c5147c5b879bde6d89b5bd311f5a01b84e43b9dd17ca1e0418f9782794bb34616fe73ff9aafcda525c19236a549c2e2a05663cf32c95b3d6ca012fce588634bc6751f8ec095107c0fd70d28d39888ab3b0e4ba8b5dc4fb52b9be9ee07064e58e3b58719f3a98fc6356ff2dcaaaa23b2869ef20ef9357089e9574737559c158167efa51c0a6bdaddeb4cfa00eb67277376c44598783bb213a2e94d255036a6aac3464f866b4f6bec63518046f640261e300e0662924a7f6a1d73f7a8cc47bc2f03f09f5ab91f8743a857c6e96366289145f3cd0ba7748ad425aa5c6a222439a8c76a529049c768c6eadedac6f06c6f0a3559235eaf9369e64ca2b23d1a7482a6c245531f5a324551603cde47fe19a2e42805b735a8448705c090490380ef639435aad62ae7ae4ce5afae20cfe036e3029a723707f668da552949478fc70734397d6d3f8d5955bdeadc47e402cd9925be0abf3a020b19c22a695fd88cc40684fd075e58707b73b7b16f18b41ec4dd21d97b75442bef700627cac64c94d18dd90613b927e125adda1706ede28786401e848b565dfbc6405d42ba4e80ab7017c6dfa8bf61aa26223e849a185d1d0ba195439fdf0f6fddc473bac4c41c62db0d1a10580ea4c8f9841becf58fbb9edfc87568293cc0f37760e7dda5c8a92ff62797ca37f9c000dbfe719aeaac97f36472c05d44664349a55708bcc4a92a386a841de4af4ce6524c313dcf0a0e6985da1570fc4fc1cf8d748321a502389e5d64534eb71bcb892cdff8e3db276d5841423d57eca599d202f7697d840940208a806efe5a56158b3eacc3f2a4241e67ccf099f115492ddae6e311d7bd98bcbe8834ed47ec0f843327cd8fc7ac9bd6363ea7f9d1832cac67d73696248cd6c8a908ff012fc66bbb708ecec30fce1df32731853175530747e9362ad07af2cb524c894b63e6f0cb6cda7c116139f10e82e3cdb79bf668ac7d1917df34667f272770321f325a4c10f265787526940b98479ccce9cdc5bd5621102ff8588acd0f826d3e364e1e71515f14f921c7205c32408c602095520986283a9064a92492b780347370d6b25a0ba4bfe09dca5a68791be164c329d400f40cef5858094179e4cee6851d1254b5b98fc5afffbe917cc266fb089bcfbce1867ea76e55062c59558ebf9cab03dfb563da84a573a292c655ef6c32f0a5ca32c1dfb8ba5d14d93f85c6161eae4dd0190573a9c9e2fa1798e6e98661fdd46af83e5c2559b6d0818b6d8053c946e4dda4ab00a998236371021d8b27434697e1d441cc7889169d1dd83a2c559123907a66a958874d80c6e158f51b2d71839698cfccaa592ced12ba3599840ebeee31f852041015798addb6d1bec90093b1ac1b6e364bb178bfca0c8c55124d29953e0b4707c04c0335123ec5c726ec09c8eb6eea303560712c26cbd56d6162cc0a8b9136b0c960f1348d0c978a3648a6500b534c5e5b506898cb0915539228e426d697467931b594ac7a99236393feba4aa5b0421446746a6cccf98ca74e4d74015ea17e4a7d4755b9b5c284447a37dd20c3e8f4ba99a5bd01b58417fe8d46c6876886a60199612a82bf5944c1db120ab7fb5cf599eebb1496612c871f97dfa404902d44aee2d0d5c3cea60de15288e93ca784c708ad65fa7aed1341c0a5108b769679e0fd207d94983827a5dcbc9e8721d395aa2ddf7f110fc148d006a3bab79cc02d563491d9e833d37e11c6d78078378c18f11d959c602624621fe548d33ed5abdd67451eecc95942b0269590acfe8b5d67def2695860b899eb80b89c3ca996bee868c4a1361539d4195fdf5f5afe919b505ac6fb9737cb98dc86e5d7f250f80fa222ae94f84e66330c2c4476e1539eac0f565b22a4aee749ebaafa0689285bb2a960f389a19e68d0226695998fa6af799d50dde14de43fdca3a1ef6de9d1097f87f8a3ff68b630848f49a7ded4901392eefae01bf1626685c9ffd8bec53803813084a5f9201689412c08e33974bad7d340408d499f0f1d32567c14fdb004bf9c69438d8a1e9d0462017338fbafd492f859f0e308dc52210c69ea47b00a8c2b4aaa16d84f4e16c5d17568ca967f71d3ec247c034efc223cc10935ae95006991b92798bfb91b4b3a18f1ee61e064405d4c0d7dbb5ae418e4a7f38a7439657ace12ebf0702df5870faa24f6c8b13139f16959e133024e4ba38238973df61ec9cefcebbb379ecc652ec001ee31cc0be24868e56bb939c2ea6cc85e849b14ff7dd2f0bafb6cf3fb4d3731b9c6a9153012943c29f10434745e857e391be206bc82813a2530dd7f4bf026a2cd6499b32d17ce2a11bb9daa2f80dbbb2583f61b11cccd53f054e0893a9a1b7537897cab4d72b121f1c1171230048c55918a4dc93803e9d002157a7f42184d480377151b0b680885c5f6d01629ff8710236620ebb8e72028e955a454906326047ac2062216dd1cc323fa251d70722b975b282cb9b20b89dc0c0376ed5922e83c0e477495495bc09ae803defd8afc648f21358b31c3473c68649b32ba59ca4f941922ab3b1783e41653da7a2bce6f3046e326dc6ae5c5dcbe61997075ea8f6980270a6b25e46efbbf39054c27c0ca25b86081f55f7f3eafe72668adad33420f2af6a47a306cc15233765ae205901e0d13e7495e0a9eb482fb742f0d4eb39267d0552f5cd5207a81951dc7474c44af74f8228b5dc992fd48cbd8df8e35750c6cd5833d1ba6c2fd54b295498780f46424080a402bd9f95a71ce91a7a7c876716902f84cb060010f00f4e2812b115b7024068e68796cd506dc23abf936247362475eb5a2344c0786e0504adca99a642d7a6e51aa96dc20eb7fe4cd6fcf1379eca012a53740a6395c2ebdb0914eed641ea332b1c2774acc9ee67d761dada62a446ec830679f531906e726302b13789601c051718c3471f1402f5f3b34e1ff899ee6e1043ff9216952cae7e243c35a3b573538812db56ceb7112495a4bd833598ac5c231a1fc2a73c181a41c7b1c53a9e3489c6c37379ea8947d4953e59af394d406bb677c828c26efd19646e0face3b94ea81d2178baeef03e53b44e99bd96b4a5f6f929372bb46fe0cadaa4a8e65224591c773577400ed214d1487a7b075c164f999608dcce4bcdf383f60d44120ad307627b45f609022ffd89a68eaa06c418a21356cdb5474a031ec182ed13cb772b5007f2138e7d08d934968431dd4d528898a006da8d80de9cf5618e3dbe06eca064ffe4c93dc809b13da03bc0d7db817ceffe470a9e874918ef5a00651d46807874de805a6010378066a777e7903ca1b56cedf54e98542aefe3d9d75982086bf957704e0c52aa28aead0c2e083058b4f9d0f98e5c7660ae14e69d7042d0f8d0c1e1ad84e5ec8c349043802aa48bf5931dbde9aa18c5d185467155f7fbfa614495bf17a968ceff49d57c50824676f4b7acd546a29e4f173ee08b3727bd441432e73c0913032c46f8208116d18f5a07a5b79e54221f4eac144fe6902c9a9ab2c271f71e1bfea33f7bca49512027ef7d21160cdccb0f7da490f2bfb83e26a2895d0a7555c348ab13b1a1c5506348448d374f2205d053ff6e889dd8200f14fa828e18b6bf20d7a5651756581fb1691b6fff8d01ad9a3151520e0db5c570a1b5e1e71b830509a18838f3b4049ed77f9aca5535c941aad80b3e5fa3ab6d1efa7a03eb4701085ef1fcb5695162b4bb081b54632d4e509a3db394ecb90667b5314aace8ffce41f828936183486f91a2641a1197aa596f3f029fa14f55c8b6f8504bafb7b8a65f2225f12c78dd02db65b76326132a24add480beabdb7302c3c63cdfedab75f9a2af35eacfdbff2b40207dac76104b953e3248ec63f535303dfc6523934aa2ce2bc35bbd3c7425655a054c3d64b701b7ed49f222d4e0208d6225130c93ddd7aa16e40b3d7aa8b7a53a4b758ec630a2a0a694fc507ae79aa2ae56a474b7af8cc4e872d52ba3d2b98a2c5591cbe52af43954443ec7199252fd1dce322eef4db53a1b678552d5a2ca39c68b86055444335fb867ccda4573b8f517ae2b3fdb5a705b73e4a917babd2c7d3daa88428a1e71b7de92a4796eaf0631079c881ba9e2c6f234b3ff8146f9b9b357e4d46e051dbe284359db8401f4b1dae5a4eaf3288ab7f6c967ac320a1e2b727c42730dac527760128376b84309912b889bad4d99a5c6a02af8b04d6f37e4c5e376fdbf1ab57ebfc993f0da2bb00646f21ee10157d959f2eaa63f35bd6c54b427c6faa7d58d10148be49610dc52d50ff6173e0ac37cc4edd9beb5e713b9d5478ed3139aa0def60db50ff3ad6961830f38b5a2958f70e709efd1908bcef254a93a10fd222f78164a0d102a83d46b62b2b1bae3d8600200690c64639a04978a9f713097521cee71389541ffea34966da3a374a62295c42579d7b418dc0817c9338c334046651f57cb43045d274768dc8d048a2bcaa19c65dc5e97a811b94e656e1d09ff0db2f90bbb2d164eabf9bb97506cb9ed6ab38cf26efbb5f084284ccc485f6dcc890c496302b2fe04e87726b99010c0008241c2dc05e5200effd5df836136ed33e104548a7578e3ae1f68c8c70d831878cc49d4de2e809d83b6b2cb21d0cb71a6641adff6ed1d260065db5f575b19f3d9187cdcc830fb9087e20578cc8e39ad5d6f1395d22f04e1d3e1fcd6aec4c73c8109951ecfff5d4dfaaad78269d2dd0b1213589c5fe7379ff9d24c7ca241fd0c961579de57ab31242539a57746a1284b5cda4bc9f524af67de1e31c6a38a70ca54d521c9b77832cb209ce4102326b2f402a42f4416a5968e82f3f61abeec4ba52088657ad4eca71598105b1951a7f283dd5bdc261e570de6180a3b560cb3230935ae924f89a49310150f1a12ac54c275925b4b14c6a619574c42aad290177f287cd5c9a8a16ed89242165934296f19747bb528aa4585e245e9cde6a1b9215da9706ae0469316426c799a05d8942e20adf91e5b439cd7b251cf89534da505a69f5f5cb401068a3857810c07f30ba242a55bb133b4e690b60971cee46bb229008f47f22fbcc2a7770bc6ae172b0450ede525a95b4e6ae9629d280ba3be28debbbd81d936562ba0679d3ba26b39b59a7dd802d6bcd682c681bbfd4149fa0a54b950512916d00dab8ba2ee9888da8dc4636f4f7af4f3b201db8c34f30b7fabef10f45fdc173b7507d04ad521093845f5d9ba1042a884b7c90aa8388c95b59ed92efd9b8efd01c51e4bfd2632a45f9034e0c9abab1834f6ba6808698a8b2d0d1267776cf709d4bca7230e88db26747967196955dee99cee542506e54477f2cef6c07b2c330c5f14616368a63f6c2d1f48182c28713867b9be438fa5bdcbaba1ed4314a900f7c148a803bbe1bd76f055cbee4b9d5284a2c72cab29e88510516672c6f81abb0d324fe244c60c10121d1711a243aeee140a2e382bf1d338061011dde5b7566945bfa150fdee167d9aa103f37c74dbc2cf0d4db79428f28b1672670868599414a0b622ce5eed6630f24c5829b31bd5098f6dd85347b4c1cb4f3f0e6116f085a35ba19d248a0e6141a37737bfb8871bcc825adf0ad959d535b51cb256134da59df6afeae4a45e1835a4d22aa7292a2c4684f0cf55154e55363910e354c4295ba1248a8c78cd0acf4a3b69aa14d618245639ce5b300232529171cfe58b6dcc217cb75276f77e83f73a9d9444833ed1596e10684396e8fa15cf35715c9035a524db3de6f1ecd9ab29952638cf2fd5efc9ccff587c39599e01d674856f08c9c962e141223a1162f642d18bd5883d1e320fda14412421444c749204d4ec164be395e2841857a122dec1a3cc6f71b3edabf734b9476245dc66273931441642711178d526a4e44c24cab75975e0f5240982d720248cad49635ee38b9fa0809f3b3c04a955ce2c0c0ac9f30ab38cf398407a6acd4d5a2651ef7f1b7d6ab391a80997d5b8f38009fac865cd6cae6d95a017f79b9faf2c3b393d1028d1b8544a9cd03e485e68148f4f32d23ef9f47abe03448dfd18450515f93d8e028c50493ceef974ba58a2ddb45680fdbac18181bb863414ccbd75596d7707f51e438687dcb361d3809e87d6a0d723d5037c5bef9795303e99b07821800c3eae3add9295fb57dfd1c3d19c66be30cdb39bd5651352617c557cf5c8f863c94a318c048b613699df215c0e3422a2e211d55dc16dc105eee5092598da68232b9fd5f1c2937e92ec69584ef8924a35e7374671f91757014c855894dd83081c178f80d99bd9b0302874ba4412c75fca2eb43cd2786379b3c00483c78ce8dfe4028f865fcc3579bedf4186e78dc8a4380a97b641f92f7953c09203f2a2b255e2f2846b94a412168050b1005820cdd7c8def6450fb3a343a37d950813f7c32b0c634677655ecb10f7a7fa6ade00f551700482f19c2eb0929cfbc2a897bf721f54639a6371fc8d1383bf951d9ac723f2428e90345f47f194db7db6d14b9b8aa1ab7130a412673412e2b58bbd90d1c95230e172a222de1eca01a350ed2532dece36824ddcbc76174bac9cefcfc67bbc3885a017a67ecd87b95c9691b56b8ccfad37951c9d3eedb8ed6feb5fa3ab54d7730f1fe5e64a69d6b499b6194a267aa50be30abe01335a502b5ab9ed950e610a202d8a79077ef79110c49d12121966918dc6f75db857508bdbf4a5e9f97cd545049e7df2cac96a57dd7b6b778756eeaf6dd6ea950fbbdd547cda5db507945261e7c079882dc115386a40e2cb8ad36d9f0161d42eed2b1cc14de79e285407c20564a52e7faa91c338b2bf7eb1eb6751244c30d3cdb0a749109710c254ea53f1b53cdd7f63a4c4a3bb465787d57ed77cd8afb1c5e0fb089ff7f8024a569ec971a0c6f52664a2c61896ee88c5b5c60eb1e043d42f81ee82378016e4dcefe2dadfb8b749579a061101d75eb7df9f18f420cf0f5f59349081047155975a3daed0f9398ead556904714f143a358df762cb91267cdf8d1d986e71e57bc7a779cdd2d88bb3338842fb03cf407046ac03a8e58209e514d076d682a4a9a83948eecddb3a32b8e2e02e86e4e4daad70ecf165df7d8d8318ae1e24ab23cc88a018002d0964c9b5b0f79ca312830d001d79ee38864e0e062427f4b1638d6d68f7624216defbdb7dc524a99a40cc308a6087d082d70ceb67ff3c5450a8639db35f4971299549a9c5765c996dc969ee75096e30d7c69fe72d77b7bc0b6cf6956fa8b88ffcd9a36b25f7dbe14cce961397485a65d8af66e60d39f3ed469e9088753aaec88845672c3c5d23cad78929513aeea638c372e9ffc4ad8c691b81ff5749ef775d756b0470c9aa64d25e4f9390e246739231227e3a248da4afab377eafec690a27d4f77faa610a0b514ed93be1e35c6020240b77e00e9ebf1255a89e99a4e5c88af51242c47a63c87f4cf02b845cf15b347ce3a2bba93493539a11904ff73a42a0925947d148832ed2862edf60c517bf0d4c4d972c6bdc72787544931d030c70af054e29946b0942452524a75644e4aeea5a623c76b360d5b8ede6f447a1b9bd54a14ff41d0f35e4a23bb2342d2588a1d4c7aa4702c62a4ab14bba7b233625729c56efb77d1b710dea61f0f747b9d178e475cfb227e9de76dfa1ca75f64ff7936fec545ae52fb953b793be795cdca0ab41cd02131153ae935568a9456eb4820e213c4c26495cc949f268bce688d74d17f5e81ce9cceb6bb10e7719e2af2fcd12b9dee49706d77775a379f9e9e5aedc59367eecc1d2299f29f5d4c2fb61f394266842cbaf76af8a6b6ad47de9bf61ac59b9db366ced983edd307c7186f5c95bd7e0c05f1aa8fbf1d7cdfef3c2a6f6eb5dd4b591197dd88711b9e9238d3c89cf17fc57cc47e78d82a33229319d9fef3be6236a431ce6d24ecd39ee7fd80dae6674553b18cbffb5ada773794b2bad5a86df959b2a6cc4a9cf99a33584b9afa89e5397311898cb266124fbd827cb1fd6dd8459daf4934f146dd851d9ca29b37f371bd5eab54699a667fde4a2badf56bc92ac5ed65cb952dbbbd9d9cf53267b6958c8b363c8563a4eac56e1a8a52d51dc1de5ba94f1b836a1feb2776905b5221cf772abfa9235fdc9d886e3a9d61895459d30438992aa1c0a62f5396c3c0a63f6bb5ee93e9df79ea8a7455e4f9ddf5be7aede9e48bac9eec8187b4f5e9b67327888e1c09c3b73342be61e30308af82fb7654641a04c7d9a7f4ed0f2efaf7f23f84112e7a1132a2487dfc00c4b51f0fb9692804c8c38c27e4e009db5a1b2105c05db56fb5717505043b7aca99b2a64cd9975b06b6f4beb913448aecb9e84f8790a7c49b942ac95d0163ad9ba22b4247843c3b29ba214c8cb54e085164cd8aff20ae8be982d0795acc800142d6b4ee07f5ced911c9537b695ae7833c67d7833c3b2872f7baf56a1a0ff2098a0b184328506b61e5bc83fc044aca8a13292a2a3ac89f9283dce1a003cae28a2a706c88d9b0f603e3d770525474836c031d62718ac59ac85d0d344deb68c0449e590b1d36acf9e46e069af62f0331f5a5667831c833623a0d6f1cb7616d89dcc1a07b41e782dcf588575e21abc0b12146eb5a9035ad6341d6b46e059aa67543ecacdb8b8e6291e75b592867ce7b87e9d3e7fccd04f265e6c0eda94496d3a2208f187bdcf6f79b4daae60db75bd0a94c973fe5cff972b6a0935e73da9d53cfabab3895aa99b7a3b6e329311d4da99adb358fa2e18b4ddfbf9062d389378f6a6f3be7aeb9cfc3eaf9e7399523f98dbeed407cba16d230853420d9322cc2579d7c192b6cfb77d3c6b661214ca756d850a4087d4541eb4ca609aaf2a6c67e9a0a42a63fbebd3abc0b8e0d3145a40a08579bf941d6340a0d2cacd08135b3892211bc59412524e4838dd325992d1f06fff780eb62a0c8b4f3b4982193bd525bbe4b8c0d3cc8dfc89323d24c86b161079992b2040292b1e5531e4896486910a67842c6d8f2a95ef9402732fd112c9580e105890b926d579754e9a0c4345be0525d2ee6209b4e4e4d4e1e07f904c5058ca12115a0c0969c814014961f9494951ba4a8a8d8406545874749f96f6285450b14198c4c0b2ed680a5250b50e622db34c82d303cd496ef92c51555fc8be26ac54486f16b38298229da3eafb13031e26264cf20eb108b138c0c421730986062e0f25292f39c59e22546194a5bba0b0652dec8d166cbf1652ad370e3fe4571b57a810c982b48b11ddea6465c0023a28cacf8ef11535f6a864759af16e4193156c058416ab17d94585801a341dd3f278adbca6563c38218992e38221722242b905179e0364445c3932a259ec68cc7c51edf5d2ac8332b6f4ad65be17285ac628338d9061c43dd258a49e4550dac33a62957ae41f3350475c8ac9d021a1b3cf0ffb77c18c9a24033db47d6c614c8b51dc843419e3f52201b6ad0ac6668d0a86864686266a4441a181934315e685c421afd305a6868686868586868686852685668545068684a4a9986868686066b34978686c656ead37746f7693eb9a554d950c2aeeb78a1c5cea53f2bc6d6efadef9a7ea5f7beae7c17a736ab0e826cbda513b018da4b1892bb1087ccc52ddcc2aeb585f3358c3ba03ca32cd2536f1bfdf6a4cd6e5c28e70cf79dc66164771bedbe54e2d979a673d1a6db08847e381e117a7f0120bbfb90fb4dd37de9eeec08847bd41479d480b6ec9e6af2466e6aaa97d2afe5799ba6816c4ee330b2b75b4b9c6b5074f2654c99d1ae7b8efb3c278934e79c3b6b2d2709b6e7e3fc7488b2ee4b59739530b2f3d324c89aeb2af93c52a19dbbcfe128049d6d5bcf90edbba4df0ebcbbbf3b94b50dd194cb6bb6998b4ac89acd0b29fa7fe156b4c336db61db86282be5455333af4981b9e885ac49a9226f432fca4a89d114cc6b52845cac42d6a46c21c594174aa6642a9b9af85a261f174b3b7f8ec7282b6588a65284bc267bca16b2c624c52f4c19a2ac0fe6a50ced6cba51fa91b433659d64aff1507964016d7727445ef3c9bc0b59f3652145304856c9fb8f5edb0f246ff2639c3308fe8fe2e6483fae36c7daa41f599be371940f0579ccb6647ee983c9be2c3e216d77738f3411e98468a424d841badcd32448d6eda14da051d81cbdc2e628d1e69ec6e44d7e2e34cd4c82ed1cbf38bc3d27443edb33ad78931ebf7f3b6c3bff564431ce9c648d30f6b8157d423be09dc3924f0af227246ff2e8a5fca4ec3eef4c7a0aeeeebd70b449d86389094ce59ee51ed4edfe54832e3e016f9aa708022ce60570c613720005704aaf9993524a299d5ec46fa1596ab7507b6a679ba31bfd31070a3950c881c2179dfd393bf7e85747d65a9b4bbb3e11513f7ea4f4f88e8b51782931618032e5af2259392e5bc7268529b3e2297fb909e55963aa9d616fea6aa28661f02663e36270dd4be7b9785f58bf911e919e9461d45c6a2995b06855ab359798564c279593498abd285bd34f53204d45e10405a24014887282926292a272525931adb094b0b4945a6064184f7a3d3a65fc7978db2274f15c5eba97185c0c199b0c180c236a62eaa666d81931354686caa85ce5d1b096864c8c4a3503ca605e18adf5070fe8e070cad4bd7e752e101b2eaeecf5173550a3f8b1d31f0d36fd5e7bf1fff07e10117577a355de5cceb4e5af7849e24000f4b21e82076515018189130139e3bfc92fa44c025af851ede6949b3596ce8a5e94443f7e10fd18420822cec5b56048dbda1097eb1eb1ed50d8293665414152e56f711133ae32a00342080241743d50cffb5adb7bdf0ebeedd3ea75e2ec9944c4ee7fc25c946216213271661472c67f1e9946867089d87006d54d07ec1b4df0372c480a17b3c85363fd234758db7c0bc39c76039a41beb963af868b1862be8080808080a4ca1f02410c710c10e27c749df755cd4e1e6ebe5ce4a1ac49c467131367e2204ba183703601843f1e2efa7b5f065f404e006970fbb629db8a4cfd80fa94a294a6adb624256bb56a5198cf8ed36aaf66e38608c4be1b963594dee3a2af8020de9eb248a3e76a3c174df9f5f15d3882d88577f793d3736fdae4b6b0e33e7bcaf5ebe132c8d7a32cd2886aa28cf7f87017f6b4dd3007f69d52c43f1fab7adc553f8c2bcdb7527be347a1bb5cecf121f286d7dcbae3f9d7a34d4edee03b03dab80ab4619f6af83f4e284fcde6da2ce0080e81a8a00d2d1c6512d046adf66ed6daab6199efd57e2561528336365aa85dcc7d3e892f1ffc4eb40333f63bccbd36afbd2f5f3e36e26a1e00cac3ddf6abaa6e9562ee6a9de7799d63ee6a20075af73f6ee3b75cb555bb5e7d5949b101e78cbf9c610785cf076d73ef53aa34fcda56d90a2e0004a2fbba8db332050b79b5ee6e587bab69186fda37aaf4da13962b392f7ebac377a7458c05e89b5d5b9287bda68af5efcd936bcdb083429e2feffd5a7744c4a69cadf64ab1be36b2770356aa2c076657bab04fc8cc7adedebfd6fd5aef105e33599f17843b5177e3c10eb3441df8a573aee3b0a7bde3f276451da2a8853c7cf4f0430f39e3e128b5805fe8e791602f45fcd29fc39834d23c7bb58f1e7ef0d4c4e9c18354f9631e3c629addc1f4cdad66efb5f75e0d5b50c3ce840753387ff560b272e68fee043025974cd8e8afb747f0ae7629deed2b9e38da4b2466aeb66d5b572dce0135bcca363bc6f2d71172402320377166b5e069cef8774fc839f266be7fca6b7a1048592ec569e238147ef257c76d233b4b9254eb515a6d47bb23b5dacbbd88783b81f84d505bca648131c6d58e3234bccdb9e7b67d2dfb1b273b3b317ed951ad8643aeeba8bddce6bd940f62199ece3285bfd3b86edef77d78885d8b789fdb942d5560d39f9f47aac2f5a99a766987e577576aeeb3bd8634228d4824522e7d5fcb7ef6b67c5166256da462b6375dd54e5751a9a43b82cb6bb86d635e254343e86d9113b65b190fc9922bbdfd8ca6a13f089596d1f54f30f616d601683a31e11034e5847c871451d65c42367166124e1435a18495b9847c938727e663741027209a20c40f2213ecf2e9f2e99a2eeff321d36c5627ab550f3c6227284959313f6619191da35b3f19b4526cfa471821ca22db5a295c9cae1c6461386c9adaf4b564d918968cea5fde704f5fa565748cccdf596d6152683db0413648e6c2a451f8c9ea6bb6a33874b9a81705790dcdef6f61255f2b974a1f0fa4115471854d332db2a78b04923567fce849a4507e3a0fcb5c992a3365fa4b9c730a7bfe2c02522171dc88912af6fc099b40ce7218d3cf9f4dcc60067196cf84ec971fe7903de77c0d481c2a64ce0841c39e6f84bc217df8a39cb97c10ce72428b3ddf0012873af173be68ca7f90371eee7e5223307e6c19497b1a59c91b8e45e7277168f5d9b3199e0a47927f0d3271ea09e409b6ff585f9465c570c46e64e2582173c67f74af45b5a8d29975c1c86484634632716a9239e39fc4916c7f9f51960df2d98bcf844c9c3a9b09d95e652eaed0e5c4c4a9489038b1bdea70c46f64e254235e5d94229938d5890c231c73cbc812ae388f8af3fc3631f95aa612106502a2645688ec24b442b6bf34a945b8a888ba041f25816d7282124aa942a14e4c4e269b6488cf15d253c9b0fd4f25a56c836636e84d48a34f86a424cb3224dbffc4ebf0cbc8eb6564fba3ee8efdc245776b0639e37f87b870385e218e06a9727f3044a9bacaaa90f72fceb2f4c6a63236362da127960da229c7a9b9ca58159255998bfe41d8066dcff58571b645d6b5ddae7cad2a9311a5aacad8b65fabae475cf46e166151648f5821175d86459e3fda29d4778d44eba52105646c5717274a45f9e44a8f0fd06bbaa66b859447a4eb93f21b5c53b6bb2a038baffe8d0a3f224d51418c4d1ccd9ee4c4993875e2cc8f5ad91ec0d5d1c2eba22967c246bdcd71ecc7666b5ed775d10ecc54df77e27497053e59d73571ae0a268b47ab876e09b9c6268ec450cc169dc90267ca53266bba422aa628643344b4a7cf9448c0b1e5d78433b6cc5bfef6988ba5743cbce22d4ccdd8f60029046cdae364228113c682070f9225e66f36e10382d5451fab1c1993b284074d19c9f33b4f4f9daa7748d12a010859d790706cfb1b12b615c2a6323e1adbd60020effb1d27a78f624895953a32b65580894c59967d171000d2aecfc344025f8fd3aedf719e0e564276c228a5b025151b0bdbca60534f3fe03b8bfd5301b53a726c5dd9fc88a2bdf4e57f05d4b0b8927942a7a115221e3c7ee4b5f50cdd8bbce99c72b46ef545dee02d4519e958bb9af42695b1e1b117ac6511d7ab5dcd8aa27804f145de781abe163f31afcb9bf9f7630f036d7e9833fed7ee206b100c701102fec3c449809cf14fb21dc902a4caff08104295faa6736e1b4ea9f24bede71a4bb1630c44100c789142580b41275fc6eab3bdde0e7b9f98573bf6d2c66ac583a6b28f9c1b3636f27ad0f697bf26d5325fedf10144d4941e6791a84737038c1ea90764e891461103a547931e4db3ed1fead1d36f828d948a1652d168222262aae8d114dbfe29fe287a34115167d1c9887a9df6887a394f127b448d2843b67fc904ab7b2415a1f88c294c6cff4f8f6e863da25e295718bd9d917a00a35edb5f33c1b63b8f0b711775ed354b80440aec41b4d7f61d159f1bbec3112f105149ddfd059d7c39e7e4e2bff5c2852ca994aa18e08e8a6dbf0a22482aa6b578af56a268847d8bb0ab84d15d8974b8f428a2c67b74d9b7017a6af8d69f9abd965eaaeb765d4db092346c7da0b3f7c7e675fb4a7f7bd9b325996d2772249b4ea1e6206f8f3d1f2eeed5ee86f01a7bb59d19640a99aef00a8de0cef42d72d16f12173d11cc68c9a37ef678cde644ce9a3e3e856fbe6806e9cc936cee713887b8e83d21c8dcbba60f65555238d69e99ff286b5fabfb14961f6b8fc62344597793e1d069c8b33d0779bcb3fdbddcb4e7f27a7cc35aa26c5adaf628888aae6aafc71b1224d71f3dd72888b262bcbfd795c211cce1f8e18f4641381c57bf85a34d8c171b1b97d52a0c37d9ca4bca8211aa84292ff1147bfbe90d71d173cdcf8711a678343d977b43bce67b7fafa7d6aff5592a78200d4de181bdfd0c3d4985c6c3023bfd26a3fe776662f22ae1985336194a38627024038137b14f7ef45ca3a00fe4f9e32828c7515aee134d44dde328685c39e971658f9b6c5cf9e9eaf124bbfefc78f0212742804b9e7e8927d93dd5c76b346f81f15a7479d1d1c38b76d1a1d6fa350cdd320bc7eab38407b2f663edd96156bab33bbbb36e467f8a5ced71d181bc46299b541ad955b6356d0917dd5aa0b5fd8eb9ad846d8e6e321785b623f3c74da6d51eaf59c26bae46a75c916d7068c5c11f7418ef8e8435207566c04ad2cb39db73267f1c3aa2432d214ff97da7d2836ef99476540af99aced5b13a1df5acae3a54a7b39ed5aed35dcfeaa9a3e95baa80ed349d098402a13e8dd0c9270e30d7a05343e93af2f3016f2f406cb444901864aca586db56e60cbdbb525b356d37a7abc452b4f63165e595bcb29dd378e2af3fefd703a36219bfc573f7d05beb269631d2428d065d9dc55c4e0e0776861c9054597b35cfead80d540dd77aebbd15e36dbb320b03428af6ab8551d60744ca12b69bc4843060b52d9c52c5d5b7d66e92656134e52098b3856d0f1d30e9a88653e3f0b53ec2320b34fb721dc7719ce7d10d773c1750245cdb67dbb51073b66b9558ded8c7e128c49c9520d797da8f251b7aa7442662d297154f1e2a0d92e0c173b6e92c0dddfc6e6abae7defe92447727a7fb967403a9f388eeda0dc4ce99834ea587b6e56b1a4e571da4b556207318d0f67df92514d8feb3befc1b156dd3276d4b430bc835ec1b4ea9aa4878e5a2932f4f689c363d4e5e9bed9681ee87ca8553de60354fd3407861f740c84729410245d08d5f126d203a4074bcde709c41b8cf41bab7a824640bc8a25d04ddf7a58e94354620dbee00b2a9d419c1ed54577d3f1e6ca84f60c02fb594d2fa8d708801b754bc96628ce9944e3ae5532a29650285edf93b1b465952ca39db72166df9538ab984b37266135b4e27c64964cb6780b382905a4049996406d992ca937c20c6a725369365c25a76b6a4b38663ae5f388a7b8ec271b5670e479b3d7d481365c2c070c4a870cce09f4cd19e86e88e4938e25238661f1f87954ce17c957004e905615773d88afa8e0f68b273da0129f5d9730e8dc2d1e60bc795178ee2d770047368062446b05bf4d461ce39e76cd152a7d3f3075294330a2be60faed856804417db0720c5faaebd944fd8f5a5943ca8e1038bdebe1ea55d5f56c04758aa32b0828da0300a44c53313ac8904ea69baa594daead3ca6b63e079b57a944aede477959d677724f9f33bdfa12cedeb0ce2355748287976100a82d37a380a51a9a4554a29dfbed45a88d3f6242e7ee1e2d442d108b2fcb1ba5ea62a0f08e64c79f6a476670d94d65a6bd55ef52983e0d5a75a3f7c71913e95224f4af309acd5560a782ab02f228e39e30f53e27114c141831c26c19ca9b878a3e25241eb55c3fc8868d5bf78e38d76dce62b94d66da35a46bc52a3235bb5296db7856ceb8ab3820882ba11c45ae9e6512cba2853af57e967f057361bd026457bb70c7ca3ad5d29721810ed942a6b2bf69aed7a4c4c3f7919cf4c4dd04979e3a41e77bedfb81856e48de679cdad52ac2bf50680ca4db5f9699656fb516a6fa57765654e2c412d5c4bef8abcd1f076ea13c87a16f23ce25f6b1379bc71833ccaa7ee04d559fb8e229554b8528a8dcc8b6fac9b6d6c971980eb5c1e2c88374c54728a0a56599173f4b5a89c2b2cb68ab5b2586b61f2c63ed5e2d3a2a4bbc2e86bdd9f3cfef6c794c57560f658393445296bfa8c86a60f655d9ed6156285ec9fca8aa62cbac5ab37c8986af7bb2ad80f3f3b6f6d556e569bc821153e8c6d1e9eed71339eae5301834fa7d55e0d6f5ce7913622af97866ba9e4c282a400227df44b4c977484114541a6cbfb7e268f8f8bfed3c774b242fc30199212cf20f0ce204d9fa074f09019618f33680a3934e5b11f9b1f5020bd30584c2654b708faaa773beefba19bef7c3498f45eafa0b5b552ef30a65374b4de6963e36d78b8eb95146df4f03275efca470048dbff8370207474d3aabcd457996a9b9d78feb494523abbaf75ffbd5ed66a65237dc87e70510a321f407c2d1afeb0ddc7f43b5a438af76fe0a1c6be3e74abd54a3f80a4e17025b32185f96dd73d2b3a696453d6370a83f8868684a02b9bad4923fb29ebf424eeb750d63f8526d0a6245c954231832029e75138ca701b43aaacad9a57dbf93542671d1b51a578ab566db55ffdaeda23eea7fdbd7e65adfe987a9d3ebda64af15e23a6bc477c6e69e87843c3bdf8ca8d0a9aad3e619df41a6add3500811f4e5774455774055299b3ab0c29de9f9286e38c036c1a4af1de2ac37d1d60c3e9d56a9aa6dd1ff206ff90375746fcf143bb1ab62ffff487bcd98eb0d546ab2b1afd8da3a79cb98e6a1b1b1d15ef9d3fe4cd76ada78257328327afc14e9772e5ef38114dddeb4334755f4ea27dc39b8ba8db5a221ac4bf7071fa8c8674274b3a82b7d525fd4984e9b4daabe18debbc6f44caa512d3c9e40405a2a4a8aca4f45818914a0a0a883ab12c2d304a3dd5756272329594607c1ef2b9331a54caa4d1f79ae43c3e5a6ce8f33a2db6fd391d8e527c9c87c33edb1f872edfa7cc0f8bb6bfe32297974d26739c03d238200ea8dbdc965ee4f926413af932a65e5726e443b31c3fda98cbff688f6c8af33487a76f89284b0767e647db84991f6d161666a3a0f1a385c2e2c032615d60937851129441ee6c3aa32997f447cbb3e9ff58679b6e3c3da91f7dc8a6dd9008237cfa3e7164f48e1b4f1fa4acd6ebe8604784c6209309edc02f5c866d6703c14d38b2562b9146388aaf0ac70741fcf2c12f53d1c6d3695a074ba283091d7151e6e5d792375c7e7eadd0481e41188e0ec0e7a005f02dede36fe801fc8bb6791dda879fa171f815eb67b4dc54ff1080003538d8b00830001f3e3812d5865387a100b4bf8080b67f00b4c37e3ca8b32e2d2ef45659a3e5ab26a35dceb4bcd6558a2d7f4367996af9960665aae575e897355ab04cb5b4b0fcfeefb077c3bb699ac6618cbb6ddb3c59f8f6394e165a17ed02932a1c194d09719f0c5b4188a80bd64a7c8a3ac979e6bbafc585d8849828138f8842e29048a4b3d8fe2c319025c60353043343b1428a504a172a442a28df12a2bc4c88f26188f23644791aa2a0ac0c71d18fa0ec94ec1608f33c7007976474225bad44f19f9a9cc8a8c9898cdb5e90be1b3ac813a1cbb774109c97d7a1833c1163b50771d163fefb5a2fbeb3e3429ce745c7fb5a31433e17ccc59720798f37e13e24528997834eca0372a6a54392a64b11af91bba8846e1dbac0c46082d1546abbc4c2d0d200f81b9a877fd1365e87eef133f40d9fd2363cd53f3df4f0393408e61a749ea0895d7183166136b4f85211b2a1071e00d0c3d4c2e252d5f2a653c9a62526262f9c9cbe164e4b4f592c36878484e6cce4fb994493089cb093ef670605a150283121ea6bd130051c5241196a691e7f43ef00622cb485ccb7f0d0d3a767073d5f3f1308484e1f514d756a4726058451109c81c5164229df0e6da77866f46d2c450239e36088c5684ae50b2b2b2b306c0e3a2b2c2c2c6f73d0616161d15e4b07d1f9d8152d3f13feb3b07c2d1a7a21e581a29d203c1a04629054015d114bdd90d169f976d80d03c6d782f111a0ea8060ae4107e7bb30071de4891c4098d016cfd222b30a5176548458663966c480b00f41184b08c25a4099105c85202c0c6988b2a32214d2907a3fb2cc6c0e3ada45f6edb0fbff6badfebf1dea76d9b1e3717058663bf4872f63627268296bc458fbda263fb2cc5caa902aff50bbacb44b1197988b11bfc13f071dbb5d42173050fda3f339746a27c5931292ca41a77a684ae76774ca04db3f450239032455ae23a4615f98a1459854bda4ca4b4c26d356525252525252723262821393098531313cab67909d1d217388cb37b53ee233c245ff0ec6b331680c1da3f583e3026399955866a597f1b55892dce091030382a6dc070f74872d2c53aa5a5ec6d7faef6060402b4058ec0a1a3fb256e28332a1dfe03fa3892822ef99aff1f26b7151438b619033fe39b428aeb498c4457f1c2d167921f6c468d1055aa1812c576c4f231c59aa705c7dc812b684326118926210c9b0192e355c6044f16be9ef6678261f1317261f938fe9464b878c91aa9850bb845f8b862dadc3dfd039efa263bc0e8de36334cccfd0e2e7d0fb535ac653fd73e3753408a3a91bffc92895c9b68a100b162c311621962da4e8acd54a14ff4130679f9105e5646b51d4228c167d548458b088b16cc122c4b158ab155611521152115211521112dadd8f2cb31845bc1f5176b67f8e4bcc05e6251481680c3da58a3eccd772f94e94d347e1eb92ed12e6a073cb621c19208cb25c30ce39e512bba153df8f28cacc50c5d0c079ad5d70421799afe552c40b2eb0943803236366067562327332cdccc0f8960fe7c3686159d1638c1e9830c0984124c128ceb63fea449672b90cc510a110a988e1e3028b11242621bac0051623263221e2408c02b6dd654784a67f3cc828842066a483c53c967a6de982040804079f4184a8f81821ab3ac85408edb5a9cb7ad7e535d47b78760e3fd2d9112bf3266cfa7587b270bc8edf3fd2a1adf32315daf47fa4b21b3f5218ce8f340a1b7ea450ac7ea438a8f12365c20ad114a5436a2e8f8b2c1cdee64717b2a9e6bab9b191e3e967cad2e1e9835e7383f672212eba0b49b6cfe3ae1cdacb211cf1cec2bd200fc6e3359e09648de78514fd4638c23c4e383e6843388279158eb946688546afe82b72755d47f50f0e1df4241a1a9a4534359bf9fcbe9f299bb211ecca9ad1255941cb5640955042b67f897e8986281ea93215814dd8490ceb68940bd583dae1912a8f91918939919dc4545e944a2a954aa5a2615264c60433c54c321d7aeae080b17468a9c39ae19d52d445a9a4c424a7690b3201bda44a860c9592a292198c28c2c0c0c0c0a44a4866908a26d0f42999764c412db805b7e016dc825b704b490e3d834a4abe9ff99a26d3e96422a789673a9d4c4c4ee43cf962c478f0e6c78c4390cf76211a8ae9bcbc7c51e422ab0687f026b4210d59352793919313949ca80fc5735284da8101e32476022bfd974aa552499b48119a622822444c4e5028504e90942307d06619a22921184da9a8908af28edf40faa2a5a5a5a5a5a5855464da21152dd173922347cf46f971dbd9fe3ab4098736cd68ca1433c94c30a021acfccad314a0ed394c465a282a27b2ed940959ce143aa29fe33434c1a42a474b59c3869e434c30ba51af2ee80c119db080b6efdbb66ddb50e0cb4523860071e8c9037e3f7387a5536052e5c12836994c26d38988098e20180e5633208821213e1b2a2b74c5c68a0e5aeaa05e529a60252f25cb042b7996af652ac2b262f97e44968f07ba6f6adce82955359ee56bd9f05d0b8908f5d2d93a654685528682bc21b07cbed1e8fbbeef232d81648fa8c7a149363489c84513ac888b5c084a99c91b56e971e94b3fce6c4cc3939809c6a2242212d1f66f3931c14c453ce59fa35370d0299ee7c56c8381f907c19c3dd8cee67ef48ab6bf8d4671c2c5bf41a38258614a500d65421e4d467658d9a698c90dda04fbafe82b721d3496261865a1307e7d3b606c541067058e07354a48f50f8eb7a151af1f9ed7c111a25cbe168a08519e3fa25e2ba813939593696565c32b239aaf61c3eae7d3d458cde8f144438fcea3d2234d42468f28128c289fed3f4307a84ba8144d39053dcad08c00000008005315000020100a068582d1804c13e4c8bd0114800f6e9842766e421387610ca330869031c40060080000181018126d1b001c2bc52398f1fb9fd7d5bba891f949bb39d53d263b97eb1833faebf3d450c9d708562932fba5c0d9449252522e741b5d8c4395c8ccf550c92934d9f6240f171e99a38132d3e7fb9e30e4cf91728e76d4912c8e52cf569d5ad2358adafb2d4e250bfdfa2871657fe83dcd16721caa24698f922ade42bd867c4206a02c3785259b255abd18c7f6e56c388c33bb3adb3e3b3bb1c2e0d5ae59f7d4576b0ec95e74125cfcc22792a30860c8be344c3b0002bcc1f442cc98322d2cf17557fbf33718ff8a5234083c8dc31f0b22f17d45a5e83fd602e20223a42349642a954aa5492804194da35289742a49412188466acf73902614b4bc3ee8014763bf3ca4da2a14f7b40715bf78b3cbad58e8862ed00ba03f0e7a3950c4addacc49d88711aa90e22726805ef0bcc6c6746d7fbba3dec486aed0b7d0cd097acb5582f82adc7d38fdcd95b5ca2c570b49f3fa4f6ce833e882850ee8d6d9f1bfd7a04cff469479eecdae6e450a7d92a0892af17d4790fbc1c0e143d12b13ae51fa9968a19b8432728e7295ec5d337f86423f6b063ac8de97b274836746b62ef9f453a52f599259fea0121fef2f0012007c71ad0010fceb1d617e1e2b030391430e56900c9e062202842dd84b22aaf8a8df8f5052a97ba79ded030d74e879c6b3dbb00ce408d40da908c40e05ed3b552a11b34ae37543c315ed8b75e3203a39eba9296355c309fc72c3154b0d9dd37a7d5668ab9ce050a9fde015a990d535a286c06e0dca72994fe8171f025faee2d0eeaa383047f7cb0caa01f763f382050a8c9e27db420a661ba378c4b3c50b6043da061c09a1f02b831bcddf7912a2ad719b2110a833ab5d2cfb8040dd0200a314a7592a18bcaefcc9fb6650a526554ddddca484bbab76d7865e48096906cb2f09b1a22901ced26160f6f6894800da062e1312eea3a09190f9b457156c67255716aac01446c080b2c90d5720934c2f09974c8b518010bfff9a9526e8fe87a195239db9c101d1f3d0cd42a6cb443dd53692d472af263c25563f658b8b4600d1ed76e819f223b4d4a3e712a11c80f7d0a8e16c9e1f195512d2c4acd30ffbc43040a78e92a0390e97f400980f1639ac1f18ac824281d9b2be741245e90046a080f1be3935a3ceef538129a2f674345280429f33d2e11e34c6a6b5681d8985b9bef38c26b3f2f3a986361573a316a784adfa3a7110c50eb68e58d8d5a623a8174268b312c80f77cb20967153a0538681a283d423eccbc434f4bdefa8fd4c4c47dff78fb48fc56ed1d597fb3c1cfcd23eb59527a2a0a0016d84d8f95244fd10e17754098c0778f11126645ae9537afaec99cf8bbb9d70be370cb7fb6f609296caa55103e9aaf1fb2bfe273ef39060b463c8da0bfeea4abf2d7df04ab7618be753ed1fc02c38a17b6503507e591ca3a2415818b55a5607771018b06a1ed22829c9b4197140a81c63cfbd957539d2ab1b7e577d7f69ea58f0461dbf1fcb65027efae81817d582f4b7c433af45d0ba073a37cf67cb3efa2bc5f8164f1bac72f0fd7abcf288e93ebf7a72f35f19a17a95a4fef1fdab1af753f7600fc8706f614a93a549a68ad1263f4b5bdf34790e29e57656cbbeccd6e89ddb8caad5a63e5452acd75ca1adf7255d102160b18e86ca00328a6e33e7103da049e594297b5b805521e7c1462c17b9268d68ef5ffaf59d29e71acbfa2615661c57b311060bb7a739d39ee95516689735e264bb64576aa9299c73eab683a83f082d9c47b812c3216d87f2f29a88c4d076fbfc8328c5caba88caf66643f4b1beb7c8bb8b3f3fa2bc0a4467a1dbf29703b67cd0182e21a0c397ecbd04d3ff29b9b214c7f02e43d8a7484a9ac37c4bda34e97440f502f53e6430b688673f305e7041fb998a757c0059633c98f5fab0680d91a0d65867ca208fd151c7bd3a18aa287aadb4aae491330caf2d1f567823ae2a05ecd279ee5ac091a3d62d3ee40fcea82c22f64862aec3095b5ff604c20ced145ef87fa681e6d5ff2d2d3110b3f4da8ba18bc0a48dc8a1565f1e6b4ea69311639611d0ce4de594c0c7ff249202803e2ffaa316252bdc7379e382cfcb35040c222cd83280375f76df04257181317c0efce76bc7b04203930c5e78bf7e22c692aadc2bcb8e8469dd64e36611173ebd7851be14e21bce589fb0523051804d01b8ed776dee7abc7f25249f18601f47395cbd9a32fe6cb1f630e451244254c76a9cc54a9e018443dbae89b61a166dbb1b6d357eb4ed8ab4d53069db252a6d91266e4723fcdf0a82c20122a02e07570e7215f421229d99f77902624d62ddfb3ad9fdfc0c2d917e09272f10d79a6f252f7861c17dcb9d0c022f4dc509cea97fd7874c9a558eb1685a9eb24f79c8a296557d1cec5f313dd76e651f9989f68a67c3131e5a42c66f35556f9681c0d84843ee601cc54fcd9cda1d9b2f0842804f8d9a0c487f0fe2d6b5848f2bbc07951b62e8f56c813fe6e8df0d49551f6728707965242aa86ee8efd96340305e6577578ce38fff6a92f02624694e5245c83f8683514d9efb44dcfa755384886370dd776ce80be7806b35986091bb01064ae8b10b322b5b3ae3e7b59c4775b5b8a782a48f0bad0e962d8c86977cd60ec0315c97b4dd7f74295e8b224fcbe4a9b02ca2986921429521f2904d0c511938817546430001cc7cca9267f7fb392540b546690397b5545e071d606b9e1207c554f04284449d995e38e44dfe621e1f35dfbc1eca0556e708f457e5fbd4bd4b192c699529dfa05beb513fbcea23e099a11bc46d555094faf96fb5eb5cf5c895752ae49612cea94af16c41276db3ab472917a44b2aaa390a6ebc3690298430c83f03c5f9dbdda5148bab351e942e23f01345de95cb3a8f92b2631a9a68c59e12d181a553939660b14e2ae818bb8a5130df1f38f601ec8b05485a96c017ceff9389f147db436794c3a4c0f5d0c5b87bf0a0027b2d525856c429bf034f0c4292f9eeb7b2b10100f919828ea9b6495040c2384e3637b99e4057b97863f9cc97474212975b2c8cd220f6cb2899983dc889fa14cf75623e14c37d8260feb93318c78243982ec4596f50e3a71db029f796c3b51a10aa8d59217d3d94f6e716bedbde027910ddcac720203ba2b935455825b7798afe8c80b9e2817e5ca5fdf70ea73f79831d4e5b3db0cf0ef7138fdadbe178b443627738a8e938961d2ef9be93428aec26c778d6298eba21cfa47ba4fc07e36f5607eb0b46ee1d015ecfc562851b0f8a0abd838cb8772d40b8f7c043a0707034e49d0ba7bf75814d6944c54eeaf661c1070566433fc0ec49fab43b442b7da85e073334ad1c373369ac1104d15798a14a88859a12a605cdc949fb5fc872bfc8bfd2c674996814a7fb3a25a1fb3d4e8440f3159f421478525b6eef489bc2e1a754e685c08de00ddae1bedfd84afd7503c6bdc0c765315506910c21dbb31f4b15d9111f2a4fea06c26953e311fcf644e9398b7754c9f24f0b4a7ca40b7c45c44df0beec087106a33b0622a1472d72f42ab5cad78fd92b02bb2348bde2cf7e83b0a51c09188a542d35f094f2d1d4f0b05e24cbc0e1a6a4e8060496a3d92d482160c7a71581587c2a3260de04261a60f44dcb24c795c662afb15904262241fb02eb11512d05c268804eb4bc96e0a05267e4715ddec3b8a481a15706b750e457bf7f8c8b8426fae33488df0e8c5faa32afb8cc18a4f0f23ae21cd27d76ccc088b2eb0eba64a2d40c8547f206d7eb1ba7431a8ff023b600eaf1a05379f0ef3c682a3d3cd6c38a2b8c21bd220bbddd1f6c3fee63c66d55a56b8f6ad57e9cd3ec68b7a29dd97ba7aa6c0a5f9afc623ebd98f9333e59f559ec4214221804acfd96e57a1518b4d04766506cea163d810e899cd94f5c153a0e3bcbce33c48f9790a71dcafad9e46fc83ff9bc430bdbe90200c433ff1762c0f43aea465067fda9186dafd876e66a345551290e7de7473d6b66f7504815aa8838584b0e39302e93a55fa821c34ee90c18899f9fdcd8c988d13bfc79771c7f252d8338938e7fb9f00705f1a2b8f92b95cf4eb1420258e23fa7eeec70e6edfefad1347f844b6d0cf7a58bfb7b9d13ce20ba85cddcdf472dcb0b9a2742c15476a018aa3000048f5d9b29e31f85aceb8f2030a666346e11b09235bb692aa92e9a130deecf6dd2e1aed62c7adc762dc3cb4fb85bab68876de51c590c580b452c633dd033acb6940b59fe8b9323ff0c9f18df37f9e855a69382620944a1b6047a457015cc39a30e428f71c67c415702193aa84a7491d495d8b864e72b22a358b01d17252f4d63af3f4f72e06e8ec7cca366d3ef8bd4318ffa242860549f120ae0b233893e90a24b902e3304f2be8a094645a3987354f1a01d063926f2eda9bdfe652035998526105fa15e2717af2e9cb88bd10a7c91fc14ca936c9c65afb2c9ad3131037b5b7b34c82aa1cc052f96b918f38c602fe854621d6144dcc652da239535ffdbe64c6dcda7c0495414cd33217703c1ab4ff51caa435adaa3c41268134ae9ab08f75434172d7c1d595c6529110408d396ef8ef5cd619b80aeb1df3ff7198f9a4bd4eeaea6b419c9aebb2cc62b5af992099b3f565ff2e1eaf5cae7170d15e0c2bcfdb1a563250405eee879e20788160299db8dd3a84d561edf8a3849018cda078fa0ae4eb2b88ce487f8c8aabd91c9d4965ce40a5117b6d4c975b625318ed3082262fe583df60eaf85104a265d1681a9c6f683ee464309a7a832c1d0d46864cc0c69b661c686bb669cc1cf4fcc666833f0ec9140bf1c84d6f7eff440ab2927ff76953fae320b4453e611e73e63cdc2f932694add5eafcf81ca2849a01aa8f3b8e9efc655b16ea29638a3686150c284063f73b76c92cc519990d5865642b884458c92fea07facca66de1a2ef2d725818484d666614b53b7cfe14d658cec1864c1def067a6e199afc24b2ad5a4d1a280204ab2bbf1aa968ec28f3779bbd8c02f8100d2291c91b1e293b4122cb149aea0f5e6561077ec9d50cb90dc34da44cb34e123e4031158419cf2750018603ff9aec9b74758a9a75d1df0750a1c4445d14657815779be5edcb939880acb04a0e3f9e5de19f8c6e9e58ce5cd646d5d4c855a07c9fc0cf95d879d433f936af0e97cf3e88d579b1883721695720e9baa34b99c2f347ea01b3ab7392b13fc9d612e37a76629d510f5b804e097c7fad923518fb9a269995e89d8c521b5a7039d3e86f713503559c5138ba28610ba00bbf1b7752c755f35fc77c4e891d3099d2ccf1369ea4e5a9d9bb1dba3978a7567e659764564b8cad820a12eddc14a77792597238a89ac39dd23d0605aabca90a80265a21e927ff1dee13dd1a1e42cfa1cba3c3424b1c1d95bf9f108a73998fd443e4b9d019784fb28502cd9a157dbd62221a755b51330c75bfb5bf5828b12bb0ea66e63b04373b0e66153eb09335e071b2cdadde7865a2b715e237e1d4f7b88e09e34b2803b3468dc09caf474957511a3865b33844dbb88082463ca3d3eaa4f54bf4f1285e7d6342ba5b24450f45863b5fa5fbd8706577c829a974918e0922ae9b860d5ae1d2af78239740b4a3cbe0e37d30b6a9a78d63a4cfe3f46cd296b75e4226763af29633455feef2c3a59790a4eb65d53c6219a53df6be9ad1a0e80378788153cacb100f8c217feea17b9a77c5a19e1784059b65e6c461620505d5ea25a9417a03e3d2525cac5ca180f656456faecb9281a01fabf4a9c21ddff65f057fe54080fc6aa700e98a165589481f9fb0fd5f14adfa18dfaca77c8bd95fb468bbd10475a48b45644d23b6e5f520fdc5fe4cd60d87bd3c4ba1046bc4d5105dccc04047bc19b446b5dc6bf5efa142108ba6870c6b25b609d2441c08ececfc0641abb7d4e1d46bdf9042f0503d488120dc79b03f887da9388e5ba56c0407bfaeb1ea20cc0a5c83f4841ec3fe3599fea457010f0669687022c8fba947dc6af9ef135bb8a55878b784c2ceadd29f2473dbde4c38d7d972a5bbc7c2231180105c78abd5d140b6e7f7405e37f156f0e95722c0dba96934aaba3daa09354f68ab6e396273473a87639241921ca921c4b52a90b6e47860952b76adf5f97a0f83f62b50578b362972e9f70615a9d5a14d3bc5d20427eced22383bfa9c050f9149ebf0b0e638c7902d152cb2d99e366b20163018145826c8966d6cb8d22604609367ef80bebf1da729333a530f5a7400616e285815eeac48b2248222c43b99f40e28e9a9352b90a81a73516dce89d20617bf422622328b7dcc51a659f56fb3cbfc48bfaad67b974411a5a1dce08795e7cc87916cb54a8031f88c0f63d07614019f94728a3f50db067b64453c3f41a76e1131530bf935c3dbe84cb7276ad9867ed4ccabc58602769ef38569e30f72f70a7c97172ec345fa01226289e03c10989a2a512ebb8903b1236862e0d7594a7ad3047d140d81cb4af97067a119ad54b587e85a87cd92b90fa08726893e7727f0afeff5441f083ed2bf5b003691e562d033888933af19d1899e1ebb071ab39f83a0b8c0c4d3dd171cdce24c19cd1969e91a8e577b6eaee91335f9e08c552b9f0e7c5c113e56dc5b42010e1b9ef6e25d2b5abc1d4a40e3391ed04cda4295db7661fce4acb207da82d8face14a2a075f53a5e485be8f6d899fccbb07ab992c86fbf3cf2b9b05b5e2292fd51048f80a369438edfc2f82bc8cfea19fb35a0980dfe5128d5cc550a917f65229e487d6dba0a6a2ddd4168e66e26a940b8932740a32e2e64c3ac73d663fe26601cef93770a8fafb0a2b753865efb6e95591f172e45034879a3f576a491eb46da16c467e95d18b26101cce5e30c4647ea4c8cc0252533a269ac735755dbadc43ebf1098a4a1638d212da3551ad4607816407e70869323dda923bc1150b0dc1d43752181ff7427db8e40a5d527337cba002798f00ce9e7d591e212b45887750fc7e6b8f6de710b0b159f897e3d6dbb01393b2ad275f4acb66380f5dab9946887beb4cd62a2e0e2e516807bbf6ea9311abb0f898446a0d106cd29352c0ff1690db16b89fdec9bddf5aa1c75974b3aff92ccaa5c00ad768df624906f02ff816575fbe42091a617233e60dfc9dfaca80081a31e89e2860ff94c7902c628ba1130e61902ca4ed870e109be6cc34e1e5153a21496dacaa2405855b2d0b0b0e5672e75ab91f417e4062595a48b6498d46a8629e0f8f5d294e3d1fc22114a66a912927325fb1b7bc9955448a5916ff6df7583d782d9893e286ee92ac1c0a59a0443e00c5a0da399368070afaba826e7c71a6c6ab50296a8b3fccf7bc492a4019205c0fd0ce8c546cf3ce8302bc3f93b7633f28d786ac2d8e597fd1e4a05227b6ca4ab3e8e7ba33ad6cf2d5718de43f1471c72121c29bcba5d47fee563faceadb66894aa3dc412bd3822cb27ee9a50a3ca8aa35bdc5c0389b7738160766bfee7e69fd4b8d711800baaa86ca6643dba2dab796214849ac0836babe6eee9aae788d0f9eb4fe6618087b44e0a597c8a4abc4ec4dbf7c218d5d8ce5f91a3aad670e5732050ac72882bd8a84544e617787b329444e81ccb0edc2ded15ef8ab319b485d2ed5288a5e8d134f7f024c8017c033e94e2374641639cd57be06a4e30919795e03d48e275e8a66150ba3c7d4fc098d9c1f91829e118af6aecc33e8933a834718782ac05ad37781eb39b4f299db11683b144b8671e24d1280119a494d50673b9274f78eb0a34ba92b13b0da075cab04bcb8dcafac91e2590291a99be19a5e9093fa80a7f53f71c8b9c5091ee2a313d2299ba18dec8559d5f26e139b01c47762cfd793adbf488cabd7dbc376052024464d3969e7a29815854f7fffd4dc0f041abcf7a0526aed427f307c3ddac539a851e9918ba575930a644cef8a3745cc98b72e8ecc18b900011dba7995ea91e7441b21b6a9025b3480b51ee9ec019060abbc1d4dd54e5658f518b3528c2f3a7c34e9d22cbefa2833057c924d3bf98b40d4017baabf416f69f1c3b818f6446f468b379035683bf9b90d1d0dd1be00d804720843b10a8f0803d96f63c9dce88aa12bfd1d0594c9ef72f6097cea52f506e98ee5240d8cd25806ae1bc3198f9dad9c41614ff00abb2bb53b8597d998c077068b1dc43111bf72e7ddd541b76048b57a8486de2d82e4753f514048dba6368416e8a4763d95d3634d1c00be6205e3599306c4084767ff98b12fced244ada70eba3fcc976e9f88c106637603d23f4554416f4ef066844d0508a1e9030777a5194a1e35459d6ee25545f144b169f5f33b376c8c98969ee85ceaae8597e662183aa1a82a6d34952d3e511c402edff209c0b98df637887bd717013ba81a35ab2cc706af39493161dafdcf78b137bb5cf41b0e3fe03736c3c35fc5fda533e9f236af18a2b974c5df948c6aa8605a5ba595058e0e8e05cc5fe1b2c5bbf02faf1f592a4ecf8cb736e4b105f1e548bf12a72e2d506c9709610f92584041247e8d87f25da8260a223404acf003c05fe087ccf179fac6fcc3846aab9adb1be03c557efc0c6c51dabb2f0ada1ed7bc735671e807fa642d034105a1ffef01ee16de8b5423f2d571a8e8d297c904fd8fd034a511b7322edb4e510d231c66509bb9b1fd3fda9f694989225015a85c7fd8a248be8c29245664404c129f6945eecb99dc14aebb53c74af602feb596a241f2e6dbc7631179ac753abf880fc52b455abee246a4fd6a69fa1de7c29ee385c89c2887692d92cac63757999e4439f7151850979fb04b65c6b9ac1e2d94492a7be725777ca832ca90c57d5fce7a6f9fb9b7183b81e395d27044aabf07cb7a7cea9cd7f522995bda37abc48a9e9d500c26508379a0f4326a8ba068252316a9051064819019d8efc04217f2b2a8a4c24cd6f9a360eaa16a14f5c0890cdd414d44cde0d3c8c9e7aae135fe6cd3b14a94cfb9857525b62acbd49182213128333b00943826087e38aa84a80be46368dd5d8ddc6ddcbe4722eef6da744929697785e442d49332a22d6060f2e8a304699f40e38ad725d94f1c4ee30e704aa9b12bce8481690d448a48a36215ca5169a8afa1af3007bd1d7a85542034413db107ebe63439123dfcd3ae1bb648e085d3f50b992493c820d32a12046bd76eb4a490da5ac2042c0605dedf99573a465952f453c82859fb9ae0c7709fe68a45f84e24d53d515d00935011b4914ed18a70988d19481f89067f2d0e843bbadb61f365eb9ee54de604674ee969c2aed108a0da3032b36fe2efaca76e051e19798c93713440353bad93624c5e449edec17d92b868219f67ee1fd4ee28e81fd11948dbd12d0d30b0025d610d63d37f9ba0228e222e605e452368d0f8c3433f5189221281a94a17d5ce582c5fffd29ffb8612b864947e7520071de7f2ba7bd2460d9e4669b16287c6863b24724505c2f2e3c2753bcaf297cc75d0e155fbd5eee5cc87a1b0e2e59d27be7593796953a69a6732bcb7edd65fa57098510fe8cc4ee80a0c4979e0a1763845013f82808cee9829c82d8a8d90639355b8bd78027d604845f54796a6f465795c8761b7b8170a866c17e2b2f960ffb252425f98ff1769545431aa2864fb69eaeaf29a374f879059380f16a27de0291a7c289568942ea05ea14812f4149d121f82628410500aa9b4359cd617acef71e24c8a4d57c0e420eb2fb3df0a0d654deccb0f1026f3c9abf6cdd0a854e4388426c1da3065449362c6be5a77b905d3a67c1df5f94a2f99c25302ea7db990f4c8cf35983e78dcb52cce6de0651b947b077c1b4ff9a30257b848f107b94526eb824f211712973c6ee606cf97dea54d7ce31c338057bd4c6ce0dbb51da77b68c31094b7ae86da56f407984857a43543fa1f647612fcb87637606f566c19cfd2bb0fb0daa8142175f1818f68b25d15b992e7a0b74ac1c5781665e02c258668c40f53d9cd5824b039d977099277ed04738fa3a35e9db670d9cd5225581b0d433b6aa08050ad42a8b50c7b6d7f883f2cf9a52eb85fed299923a2c3a7bd955b109a7cf42969062ac93357808635ad534694b635fd24fcb327d5185782497bdf5d9491596caa9281b69a3942c389b3f7e55868a2548a4809c86c431cfd8f8ba5082b75af35661a6bd7cd683ad9899be8d586dcf5c5cbbcf852dad8febfd09dcf4135a97d4cfdf35d6909e07a09c40d2316ee2e12e6e13569e81d98841ea5aa859ff970e8f0de0b54ee7bbca943e0f2253f5fdc9dcdec17770b73576cc410ec6909e8f62cb874667e28a4f1b700cdcbf127566644525081984a0c852cd7348ec62ce587b17c1ac1275d6d2f53ad2667ce5c3db3f82c1fdfbbe306da7cbd9fb0647ead39dd012d542c49971694fae5e6d19ccabb8042d339e8f5139bb468267f38c2b2cc399692715163675ab5791c042594914f89ef2db431e71c78713a4d7600fa07faf44f7f083f847d63940c2f8c0f3a4f4d474310a550c51dd84b9a2d74c2469df90429d85b3a48d4f586c9d318073888677e3dd40fb53d18f8fb4707a5fb5a883a417616f5e15d8ab8b5050eaa1b6b43caf73aaa950e73e90c0bac57baae2ed3dea2a34e8b5fbbb535a04614501e8811690a3cfc6846574eb4826078dbe37fdd66e6865bba0e012c3192d7038ea8608b81459c79ab8dbf4b6dff9d314f31fe8f9529dc592c769c433b58bef7a43d3eedb1b4184e6387f36ec989f82c1b786014d005b73670676965dfaa697af403ce8d9ec00fed157874afe9928f0f61fe7bbed734966986dfe65e6804cffd10cb81682ec10ae7094c8a32fdc1502dab01308e5703e82f6fa0e3c0f50feeb5b217d4860fb34137baa21a55cdfc10cb02438303f88002beb02fe682f21c6d1176886abdea609c906f84ebfe72c843993343071e4f8e2445d6fd09559fdd14f399dd14bbd19c3c9c22795905e5593651b20b42c2b31a536c0c3021e363200caec5d36c2a7dc7f0ee236b31684fa4f0ef6e243512d2c731e9fa8cd45a5a789c5193c9879e8351b8d6db1e8d055da45a3a821e1adc75236aec35a39ba7507ab43f1811a4132e5527c6e164d78e198fd8785c1ed5142f1a66e020d7ed8587c7c5e59c2c9e6e61fcbce5276b8fd05973ad81aee7b61d8fa29fcc51d07ae1062dc1e85fb98d7518b9a56f925ee48f47e35398905686ca673d9046fce93fd0e47c3bd13fb0bdd876a16e3726e7b1b59d4caefcf37955d72fe275a46df47634cc932a882e475e75aeca3f5bd6e32ba830ff561aa654c63fa20fb58dd7aa932da7008f468b4b9b497fc5174643eb12549f030bbbfa738e8c6b8c061c4b34a1870e86676c25a47d2498bd611e3ed25ae6aec5f80b3d6d1562bd10b68cae990ee188e6d1ab1a948c21100c94fceae9b6207366b40ca254249ba5fd0149347b2456cd8673205030c044022fa3c14a9157e58bcac9a58d15757429d615912972d00474ca8bf6b46cb71e8811fe940c2cfaa71e1db1f24b9582ea33bb02468f54f54d046ddcdd122895b9a1a0847c4fc3e7eb4b390997cdb79048d071b7b4852665a1f3a26d0306e8d4af4a2e70911b11fe7967d2fabe38ce3cfc790357bea48d810d4d9e6a0caa7a3c582114463c8a5a0281cda3266c3fea8b91115d8399843f74a4ddefffd2803fc9a01411c877db699300f4e3e1164f9a31989b4827c94e8792ac2e550e44f3f0e3ca0cc43e5f9f6613598290e0ba2921e872ca38a8bb7912e662a7c0a6a77aca9ea4faf47bed6eff393e29d3706bcb3c42506f61038d770745d1cb6383aa58352e4047127ad4dd5809e2e861fc295a9613aec5a758e58be03939de750c6e881c635d10047c3fae090f836b1666556d4380ce9cdd2750740d32ab2cdf962ea5fa6b096d233fe705a79cf24c133c23c49a8206932f5ee1c004ad65ea71e77909494ec0aee207d820ee85a241f4184c2b617453a923075c56d843b828500406ed1c5f2f4678724313365e5a8257f25af9a78154c2753f8e8950a62e24a0695154b42393ac2f6a019fbb67615707df86476d575db07883ba170cd6c3ff8c60484acdcc2205b3f915dafb15e3352b2cacc810f67bd404568aca3350fb57895abdf91cc331189e2c2756302dcb798cd85387fc38fb20f73114e1f6096bce7d441c32f1f9a4e82b5652d08825b511cc8966b044108b2aaeae5c4b0ad1934486204a50fa983c466c6cc3ef18a1ee5793006d2b06b750ee71713b5643c5851e2f841264168e2d72e8bd27680ea80bef76d77cbfda9c2a1fd2a1b669e872aa83bffe02526a5036d1cd554dffc5da5dff53d2153d3e20c8e19d4cbed9fc9368b9646950ed455e882dc8be2128ae3b2ecd639ad1345339587fe81d6f3a105b1aa0878d70b8f7056aed08bb2a2b0e232503271e9b4634547741d0b1744620b60ee7d71d7b0a8d2f17978a01952f5800455fbde69f2165fbaed65d75a6ddb120cfc4ce08efc4fc402574c00f61a625847eca9ace6b8bf9465a0307f8509f628f19ceb6f98a0f6610cb268ce275e805b0604f692ca567fc0edae299d60a4e53c6a983a9f6cf3835584e0e5bc5f915b6bdfbf98a61b83c7e34ccf3d9efc5a6a1f40c66c3dfbf1aa77dd4b6c36aedca4e4d52222de39184d7f26d3179bfb545f209141f908e8eb01e1216564c322b49f53c9382193eece94ca6b77dd11e2e03a60e2caf864acc6b53448737a8fc8a3ec274b14dc87e5a7b35296f02993df78c7afd76fc862bb39541504ac2f675e493ddd48902d0320ede265eb906ade01f917afc3b4bf0c33f3269ab795cc2f549725ac7573936207397cc1bcd99f183a5bf295e8ed13e2fae4eed78ba66f1cf260c195e785f7601b6777c7c1dd224677ea59b57529691a438fdea70f649205848ca2031601271c6283100670d6fbb414f954443b02d791d2543eee4791b75fb5832a8c16e745bbb5bcb89b02e73851f79240145af6cae283f68772dc893aecac772a0c25fc165d8b8fbb41c20843080b506984112d93735c267ec9f69b2446022d46b40ca10b32aadc2dc0e001cfb3536975cd8ba976ced2593b591aa440b075713b74788e147bdaab4b1164f01e6198fde991355f12bb088a289582abf946c3439156d222525535d22ecb1aa08d73433fb07439f15fb254db1ba4e4a6b14f216efa1a5b9551b13db6003326af141d8d546086fa64cfc1e6b636ea054550f4a5cdab293b04fdebcc86310e6513e07d88194cd7fe621db7dce6e7c1c26956c2c10d746d9334ddc30376a1e255d47006f76bb2fdcc78918efc0dd6d418c4b87fbf787f3b44446c99f55e20f6362d8ad769f3a29092500434c1bcfc64657a7720ceba3a2ff29365ed6e16072d1a8dd95fea50d3d8a1cf65d31344f13c9baefa8671cb7cb2f5e67068ef07aca725280eefdb899b9ad74f927b7c4cf9a404608f21f06e68a05c3a0e3eb54327dad89c6e5982537a6e9982a468d390dc57f0e95f890f47baa0c90b43c44c07e4201b7c12d22db2c3d31213733351c040bd73893015da53598b7e989e982f60746d923b8e2d38c446c071fef287fd367c8458cb44ba823aab8392b08b79dd3cfc2b567746e0c40e988e04fd621016acdfa973395eeed944992b59a2f16c8b6c407002f055c5e18b0a3adc1d8a39de6b67fbf3b2a55a0b7ceb0a1bc64d0bea4ce1bb6edf4283fcef195113c8bd5f8e2247df689ec109686027a02b81ee61d73af29a0cc1b056aa0a8a399d522a5d35a729c0cab1046e542107a056f3e48b14a76065f9d5e07a2b641d4f573412c87705fe482a39b29029176f7f5c00f61ba8e6116219e61239eabb3c09d6510ad16907ad4e11841a11c6182b2822d9989b5dd79d7ef4ca52295031fd58157d23c569985e4b3465a402b819bf2a6ba03a9fe90a990b5b7c6c1d76db86997007be0881c606ea46b8c119941346132efa46311dfc48d35b35bc87a0b8bce2178b3c6b4f130d5d7f8959fb2bab59e2e4c7fb90adbc090b60506d80fc9669c8cc7048d7eb8442404c7fedfcc98c2b427ca2937f968eba6f8030f362680d033786cebb40de98790120382c6788370ce6c0dc6ec6a7173f7784169641bcf6864a46cc5b20120cb5ee48a600b4c1d6d80a440c0123d80e7f4fc2bd016e5a294e9bc687430919c2e9ed66255d43c4f0690ee2e449bc37a9ce41fd11d827bae2d602b8a10eaf8db1c95da1609e08fb34412b9b0b05d8362304bbd6da7f6b22ace716addc6cd2ec7a92d03c1102fdae422f6a893b74d7aee4cb275c0b9f26041b6b5df23dc2aa0871c720d804f45581d678254e90c9124214a0fb8d75d6ea61ae5f08c0a815b978991855552608d5cc3aa1509685dda5ea0be9b1de3647e899bf2cf88b6453e0b4f0d2bc2be0556bd50e4bb9fd39cfc150ea3711cf4ece717153ba170699aedd721d7f4d9b5d14398d21c011b72407551218352c0fd1aa3525c74c31852232d2e1dad2e797026652fca305109f724adfdc21e4444f51b2dbc25e660b443949673c12e6ae44d30823b5901c119ca096c951c9551cea314a2a0b62d1c04d9ce453f87505b5cb38a228aed73d0d8694eab1bd506981e242ed526be546b051254945e8ae660cc3393bdbb8de9f31e5d1d153eda7c88c71be426a8f9e4bf2b81c143550cf990902a8e38e8374e62eeb7a29c96f7d1745574cdbb919829899daaa199185dab85013d46fe09141066033c832dcd0c9632f43298099d11dd4baf7b8ec94fbcc8dcfd49c0bb2276eddfd3d71d3d2a024aac1a8dee883d602708432149faa1e24b8e57e033c0c125fac811d9f0215f5311fca2a55af83c659c92910ecb2d6096bc14fb90637eb54b2b29f9c517d2754bf2e003cc5510a56e017748ba96af8e866717b1207fbf196a9cb7264daebb501f1626758368fa7de97f2e2193593501a43df489d13162acaa80c5c19623d7a24161ea66c79e891554018e7e0918b391b3c022a047bdcb0681459d828614fd8dd76e4ea40044f908d1649be59e0b8aa18fa0bb34996ae40a947166d30edfabf5040f398689e0c087ce2320ecc68101ddaa8a46ed5ef142fff16f097e223055a20cf6bae28f161dea1a580f34aba30029f7975b46640234736dd6937753d2befa1ab7263b3e6c53f96139426ffb5ee484efb25555199825c7a3d50f63b7bf08c0e1f1c749565875fae6758005d156ef180053f3711e885e9a6875c7ba379440b90b803fd0f1ce2f8556491f7a2711a656934c6f59db9fde357633f0c6f1837c355c18902b128af6aa8fd0f4462443da02b1476e91cf9b5380c5e3e19817e3b2f21ba163acc6417d34c618ce2380871377bebdb5b6a2ceba1eaeaae062a54fb458be720f5a5f21727c87f55b425ec13302ede327f2d3bd83683e9f6e564ed2698439c397b47759da5186cdc5f566b8e33a113c3347b959af4cea0dac86b7e7485c2830b22077fac7f258f2b511dcc8d22807aec9ae3f0564b0dab6244c56b27a2e2d4a66da2a9b886669108644eed0a9c6f925616337e9fba7a3261ba13d7fcb2f4689937f87f00a1ad21f2c19e4dccbd332e6d7bc9795aa7d6df9bd1c8776c315d8f5e701d24e7bace3df0b81ebb1df8e4185f5e61bda09931eff5da3693adb99e680823403201e30eb9ed2299df5e43384d3fe5f7652e00c8e52cba4a735bc4c3d75df9a7135a67b6e5af12768a2fb46248559efe51ea73efa1c4e1aad276454689e1d0b468ee394c1ae028073fb738c445adc85d22383a24ecb71862c28348c94eeddbe3ffb93f11baca56f7d41679932acf1dd44fce7457dbc7f21892cf4541dc1e4b8b92885e41ff2ed6ffb59903bbe4749e902ef419100ed5f1f89b56972a4ade52e2234a81bf0d75e1d2fdf193ed58e1c4c777c471dadf993373ac90cb352fb8f901d8362c684269fac5a5a9aa834e2d20d16b13480895fd71da07ea071b104ae7170243d1bdf8f7c733e26bb3377ab361bc7db95597aa887b2f1d03f268647273b092d3f9981eb503271665355bcc08928f75cacf58eb02d8947819f2ba3ae69df7b7c21273a25ea250f8762f1fd0a05eb9dc3196f6680f78b2c654dbf3877713e3d67c8c086cca0e8321701e66cae0cee53ca76b539210603a9e8623e1697c88191898aeee2c0d4f18ea80acf749139b890eab56b7205b41592029b5cce1d13caaf91b998b7b180c84516c331db651a958de1694abb220dbcfc4e470ab110841a367faeffbe436561eafc232e5a84aff53293205220a4c5e89b2e330b444e525c140ee302a5302047674ce6af9f3d718853ec1ef3c368d21a12595d82ded1d6d23193bd9d0776285aa76a9829182992e222f82d9721012125252f86af791973007220a245799917300933e422e41a878f526098b83dfd48946c3539bf48d52dfa61ce69d4c5ca7610f09e09d1de18ac54ae0227fccffe4ac588f72c0353d738a599e116bd8a9a16f4a3359257a65ec2352d7138d97e7f9e6c23241c6a3317b8a6e8bb90ffc17e705fc89c8b55d0499f5f9b73873d402417a3bb4bda11241cf70257065e4dc0203a5014b0908f4c108607df373d96a34486e6ed39f70034d14fbc84a932a9d04ca90107553be8b61baa46c49ce45b85d5674170fddd3824759c488476684ca949bd6d405eee93fd5a8bb41da3ca999dc0fe198aacfad3f13dc03ae0e738040caf8a5df96b249f68207f0cf90be4b6fa652841ca8d9f323af7958a7d5327e1694365e90f370292a09af357b8bf6196c67921bf23d5d75d577a837581eabcee9ac4a438a79813863bf557baea5226d28fd2896d6815614deb323927a916654820d42305e9958d546d89a8f1ebc657c4da9c7a08574946a5df928d4199b24658d75159cb30be748fedc2e16ec9d951eb98cc232a9bf1532b875b4d6cac55954af875b7ed67b4d6154e9c6845c70c476f34c2b3e0ef298496f332385374180ff1d3cce093466bdbac2cd620ffd16beeec34c80ce166c8d0e6fc4a46228f8c4fd58779cb576b75675bc89b6cd1a3d73e397ba8b490f85a317187e2a71bb5cf93a545a51ded50b64ec6945686823d760bd331b5398c5b28d11c1c84316276e2446f53f956b3c4555f068e97fe0e4288e9cb24dae14df222b5a112f4dbaa22b422578fa108be51561ca1b0638cf99be994d327607842febaee42941e6b1ac29d4a4380094ef435846cce45a466cb56b47ccbdf7d4b1765b658d2bfbf1fa42b925f9504c803781f77a0ad207357ad03fb7d6ecddcac66fe255c72d16de5b95f30a43c4388a5b402929f10df8a7f350727e5ef855e46db61112891c3a9a5fecfe662f28b7f2925c7bb792b1809c00d1d5749b878da0449d4ef990729d11000600dbe5c562e05af706eba676ecb36aebc8d7e4d4a119b9d64a2eeed03b11dffd0a5f361ebe69890430dbd7746aa743c41316992b1a4b74ae5be90a48f04ca7999a3ac26b0903480604f1b25c9b9b7d79ac2ce9dcb14b7c0c78ae3e0f9d17a9e91c5f26a96bf8bde7426178674d3719451fb7c3ddcba3dc39cb1fc511596ae98bd3d57139f05b76918bb92147e2b91a0fd84c316a0d69c4961fa90fa84cc255053aa0bf5477863ee9771ba6a242b9f846b06d370771f87c43ccb5bfc1edb418f21bf296362759393b45ac40bfea38efffd2a4dd8ec9570b0d7695f29d7d27e08f1e8080431708b369b95d1476e445ebd92d9fde7e75e357c235e99059b3d00c3b9b708bb7133dddaada6c725b1a3a4ff4c44be6d2e37647ca26935a22d4ef35c8647bd76468b9f8e49ed5d17d3678a624a2c81f23ba74d241684bca2546dbf2d0afe9b4b445bc290abc11762782c60739ba9bd8e955660863e55107683adf8df57d7598be2655b2e1a894e35c123ae9188ed1793eea2418e2b34f31321ef6c1c1a9d24641427f921084fac38150f6a2cb958b50eeae7896386f20097ec8c204192a802cd56b49a804b7c6bb46f3d8e34d201e4961a427acf6b27da3b797c2dc97db70074c56b7fdb1020fb22c22754af4569460798a09f5b56da934f8e8d236293a84ba9b276c572ef14bbce6333f72c3e44ace757f3d7b9069eab5f7305dfab6fe7b228b857b3789bdfc4fc763842baa8502ac3f0eb09e7249e85fc55f5561bb4864d6107242e72f58b2cf79eb0c0fa6870e3c2a33ee07fe61e332731d7269f330b411052c04d58cf823f15862468f0d659ef63e9e28abd1697bff6d3ea7723170b6329db145c58ba93575287946a80feb95d3323976d35c7826fa44f989cd4865825a8c6320006524937735ce0495b26e3a18d5db0e0cc3bb13c6dd4604f3e29f515a94e4b314d8614a1e8c4e4f1cab4cd22dca828346bc1889dc6533b4daaa79355c0c2ec13eea73654ce03c5096fc71ccf396377ea6f95f74b5204863524d697add0ca0c9ccd4975b81079878b42d1d3239dd800a81d6069b193d7520acfaa65920a3dd95498b47529a9bfa7b4efed62561646ec834c574dd027d2c1639345c60d58c4f0de82aaa99f871e80e1066425f15ae1c78943ccb0840e83bbae1fc6eb80304154d2c685a52685b3a9735209c71dd8d4228658c85ca13efd24a5729334d2f380f4fcc5a94e5be5b8195375ea18c13bba1f1ad2b726a6cd6ea16e7e013b194e0b4eafcac83398a352c0c337995fb8865a6a01edb91acf48f31e64aeac7f109226d72816d2c842f2859f42d84198f0bb883115d03ea84769b7222bb4562f29d3aa1f813fe6b90a046ba0574cbd3c631d82d3541c91296e5a3345550e9b141c11b9b5be1c2eb46aef96f80c9eed62203fd2b4d2b32ebf29d0c5048342499cce9a85920d4fcc6d030a383a8648fb4a98c8a1cbc156705af2df2b4e0c53a049fb7ee737c10aa353335cd15fb46f1480251964818d94edb0a136da194f03a5e1372cc145273fc4a651772d147f24e82cc9868b36279f5e161d92f376da22439485cf14bd45cf821f5e13459f3125c649d242285fa53dc4f1239daee7ab6047cabb490bedbc9116fab6697728c142a1e85ca0631e11c6f658d68dd1cd8b8542c018652bb467bc8a17a6df266a3fd1548cacbde2cc31e37a17697946719d2ca520ab3c5a832bcb42ef1d48f18e39c95f7224ffba0da5373f5e063ee0da9dd91abaaf607729cbfab509a6f817246c01f2dd0a580690b0769834f43a698c154556f37fe6367a0b0eaed3662c67ad917d2cde362a8c0a7d17fbfcf447e78c2bfdae6f0a0b342e21efa8d1d7a1b0a58a66ececfd056d3ab42d0ef3844e48e66e62a8ca4ab26d29be1f82db3dd5f3cb4f4dcb68610e77307f5050526a74d71ea488fe5915a1a65ac2929f257a3edfdfda0c8c575e3366a633fc18dd661b30595b0749e59fd67bf14f5f92d35bcf48135db2cff6df1afa3a144b290b974f1fa348a3cedb28a329a16b5c9cdc3e8dd821f4ddb190f7f6b30398e7028c187be5fbcf04e7c628028acb4ff45852ad00cf6af5460e9a4a9fb0f7fd84e7bac26e07a5f42fbf13d2dc1f94955c3ffcdcf4315a4f5a1ff2e4389b3f1a5b0a0744c728dcabbea69e587d287b57e99a18a258974e0c0ce72aa17cd6a652ca53ec9eecd14ce4b377d8b17e0d8b65a0221005079424d712156d24e190e9d5ae4fae44b9092314cbe64829fb2044a2805370cae09c3a67448484989fe78c7154f4e083da38602804ba8fdc279daf6b6c851ed6a375a1e9333c36feebc8a8600cb687775fa56798864838cbe6ec4647bfff5844c50319523ac13ad58253c09e3ba094390d67466f00012f6c1d1f4953689534faa2a711f69a03787122e4f23a95d8065fced5b49a72df334f5dea7b2b88b3d57445b9f465319b7cdf2a8f9018c3173765a83acf0ebc591e2feeabb8d70b15f2c63c44427df503665034f29ec023d4c8e43902fc8eabf65ddf1a86978f3161cc51e3f6d48c48ad258b3394df43e87b93cc82215b37e7663287ad99c5862651f11a1905b4f3d9b35b86cb1cddebdc9d17e33a252ba67c3714bed43d9a1741b6af9b8fc50b19506a9111949e4d5705cbe7ebdca51b22b8ac9698f63e01a797650e8d2ae7589b279856827b5a5e8b859c78e4cac0c021af7f27b17fc2ec9f23682873070b138db0119b2df05809098183e646239c8d1415d5d3ec4708231c57ca839ed88f19fe588e35003d201f317a644101ae3751848a54775bdc074e4e461a6f0cf6e8e07e4f426d0d130496da4a16092346d63fa78a1b1eb0f4e355335c72b01916078e772eb1635624eacb2f0b3960c44b1aaf52dd3ef2b8f47d8de417ba69840998da8d45ffbe5c226d6c1b070ac2faac1b3e78e533f584bd762884b20b0518224f14b0cc2dabd65dd08ec7981258dc022879eafdb2e73f30ed1484a19ba164312bba03b57739e9f420f93a0c6a408310e0a57e12376332cc2878871fbcbca3b0c25935c45911650b09793e9dee448bc54cec9b401a4398413c99ec0223fecec9d28e796215f02f92f08ac35460b5df8e7effac51d99277350ba18d878340cbee38d22a5aac0a605547dd7e9728ae9e77a841d46ae0939b2b06cd14b3c73421a5d887165092a3c0b4a758e5d327e5e4b496e2df03898640471882d2b86c264abae2ce264bf4d9405c7d128015be03c3cba81617b32972980ce8908d218e4832ec42fbb1bea53a7c8ef9f8c77a782e9183d72264103c46bb05bb8befb094122c066314e7ad31c7f9a66bdb39733f0ac5642dee4abe28b8a919d9f6c27e7fbfbc5614c57dfa80af5a22e1f3551a50fe6b052c340245fd9476b61dc503c4b405ec8e460ddb2bbe84a9236c5dd96aea0e1de69981e69265b089eab5a70f5a9e301d69dc397a2eb8122f1ac29acdcf8fbda78eb2fb37566f55ffc5c8f1c9d2cad3016f55a3e344f6ef84cbe2014d18cb838192a16f51d38e3494fbf2d75f42b1cfc6ee9c86964834a86a39c65bc87990efaf92a09881f7a92ec87538424e74f5cdae124b04be4fbea8c67c3fe4d9a045d63d7fc9c13f554e2f42d3e91f784034894d0685d7e9d0ed70fc1c14a5766389599e84e5c72d2524d86918db8f3bfb79985a2b0712d9fd885127848bf9246ce6c2abe2e7a4877a564477e3a2427ecee37e1dc3bee0c92d77fd24ffbbb9f3ff815bec4af4bce9d1e4b9f69712dc290214404d3c3bdbf9addd0bd890287f6707d2f5873b93bca64ba82973dba30fc03fedf72308065271d8cecfbfcb747110016f8369bd095fd37790699db38a0ce457a074976dc953fb895eddb5a6aa9f32bc8016eb54e8c33338e83e03b591f093b1e148d56833137f141e1b1ac6c092079f2d92e9223feb5ab9cdea3c841a357191a383f69b3b85c00120d2e4563d6fb8c0929eadc550cf5e30ed23a63264a8eaa31e05cf0e08c3e0310168deb63d9cbdb913a921069c0bcc696a06913386e62dd5448c8274780485a9cd228038156b4ed9fe10d48a2cec138e89bbf4da6f7e6b63faf9329a5e61c2a9506387128b03ccc167c1eea93d948ee1b5d30cead2a5a4cd38076ace4df3b809ac2f7481a0e6e90a67192caaf9120a922c89937ec971ce0c9dab76f66ee5a06d3424a30e4b3177cfba51bb5f39186a330a14304f4c4043d95f93cf27ab054bd630773ee6a130caa9207879b503cd8042e3ac38d86811b2a735f3ee51ab01721ab2a61490b2eeb83d9bd6b1e61a277867681c564d8aa1156ba640391b6330b7cbac9ecca73c2e4446f612a95f33736a1b62df0da5b83c9aa768aba6f44e9de73cfb796c7e0679a9d9f8fd91c25b6f522bc85ad76565031cdff9d33e0c942f561e2a0759336461f51b7f2a411326865c6e41e86c548a4728492a8174ce7288e9a2b7db544734833f7862f7e618934f0a0e95172dffe3689e13ee67f50e9bfa8e654b52627745b65ad63cfb542d1ec62ee36174f3dfefdcec7c71019c13f4423a3da36738110abebc5ba4e1e3cd9e444e7302167c4c5fd3b30f54093cb1aa5f481576a2fab74bd4a565509915f42c7535dfd70f518c065c65fc6a7e2b3340f121c07c05444dc3a80f6170238a314fb27d6aca7297229f57a1fcf1ceedaef8a80eb33660aee5de47b53635f7b71a2f08585771e0d1cbbf7c3196ff881b04092fb6cdb5414e62615441ca507b4365b412504af0afb50d313401ec37d02596e8f12b85f22ad79a208e7aec7fea70d26b0135461589b03475d36995dd95dc20639f5a17983cf5240560a29b56c31e65663cc52f89d6361122e1c3a314b255b47625ab6326d61332ca246b938ad5deece8e560a2ccf5a6e8a13cd38e88b8150273bd29b792bc5f21e64d3a684388a2b6931a781eccd7ddc873497989c93469c1452c6bea58f22d30abd91f1303f7e23a440228a6d9a9f5c3473d61ee69af3f11267888c2d225cc22df966253e83747e0b69e2a057181988d786efc81660cd25331e9c15534be8de87544bbe6fe255ab1bba6900475a7443721efb2f20fcc4d0a6b0f6b17adc10c863021dbc093e0e3b2e1aaba9b025619b54dd6f380d3a2871d02d7493d51bdba888156411ff21ba0b83b05215588e497e369a6db456b9abbcddfd0fe29c91475945572f8f570a23b2466003dafebd7594b8912fa7f9f22a34a2d27ef9fe620ef027084bf8d2b4875a12eb28093a07dddec03bccca8d187493ae50d94508834a7ae7fb5e355f684ace9ee749ed45fe67293817a487e66f61934ff52f4e9fba22b5bd58207bc413b794684b31f013e445c86ac09228efa525b3c8fb1f71c18f24d37dfa3623e1f9cd5208525e5f108d7b18e0ac8d3671a608ae5fbdee9936acec9e03ffaededfab1bf7986e1f85026c63e638b9f4e6d904f7216c6fb52f8003f2f06555051348b4c78c52606d60abc2777917ff1b596c4b3065dde80730cf00c444a4b772396a2886abc2a5f487fac52aba5a6b2803e371604f697cb391906545c998b9db8bdfab72b24f611546760cb32a04b101a88f1f1196b9c31bd67cae9e7f630a4334f187b8f290972a35d6fdb0af5d2a6f3cf877216e88eff7e4b5394cdbb763bbd1b70396b09d427fa885ecb62a7211cd43b7527496dc1cb9437ffbd15e85b37e70c204481c3af1df8d7149c114ce0c24287fe6094e87d324bad7f385bff59a18cb5871bd296c2f22ba7dd4f9ef68786962a0703016b9bfc147d031895cf5bb6d73646e5d1793d9eb3f71a1a804121fe58bd4070ada73336b802de4fc965ac7c65dbbec176d5e2b22ab4ccc216b842ad56ded5814ea60f8e907db1d7c6814335edc141aeaba4d467e077f6418d96219227b32c235d7e13c8b4b53a3a8bf2917ccd2fa26ddacb89c25fbcc484ce04e114ba09c99615787fd46f0b59258f9872d5b3b50d099313eb446d083c12678d4f1f0f492e458061fb2144d2e7fdb861b7957faad2eec8facc3b28be4577e87f062dcaffea061498b405ad05b9a20d6b86582f9c56ab1a33e3eb216619bc65ca2667db40cef21116443064ed26ecd8d66b651cb5248ace2d2624ad21cc159f026ceaba613f4945547d98d5d9166fa860a45c6aa8a34ff4c2d8636859f2179c346bf658c729464850e42ab4598dbc540350db50e0dfc6ed1158ae415dd5d825fe592ae756a959fbf9c906a46e636ce1d011c3abda4db9692191fabc03281c7de8599a57951297b0964a184cb88d9ff13a080e02830f0d2a8049c63cfbdf39314c83ccc3f5aa61d6fe9fd1f29a7a5b534bf145a19e2341428bd53b82f7e97325a9bc233243042de11ae5562922b0f64571a263c02e1c32d90ef261716f449374ee6d16cec909ec5fee44691a8a9eb570a51850879645d473a152806ac1a098cf17c65345a78bd7386f2f4cb31b03e53935b1d9729c6e2f4bf7b76582aa70fbe5f27d81f7212eff3850e50a78dd421ac6322f8349665044d92d38d5caa18e0f9786c8a3d9cfa392615deb360575f20c2c10121f2a227a0b489260ad84234d1930acafe262da5ebc642081ebc4a7041cd79d648c61a031ac8e940065a69cf404416b3b50027018b2c2d4925b53d4a3c613e7761a78abfc31e7ad508e86145ceed42641baf8aa411cb75ad0db40dd30b8f15331e15fc9ca86de1e9be3162046752c67a32dd0e90fe44ce490064cd50822c89037068077c353ab0ab86e285762b799101c1d6010bb60cef443708b23c4eddd18f91b738621459460ccf97209da3e8c124051a08b661d914f5fe70564951d4e5ad15272f6176534bec04349107ceb94094a9181a7f7a919302249589aeb32c57b9881f17902265cce2406a44aa9c7328c7ee24dbbeaf4e6418bccd08d5a644f5e72e6f313fa9c7f9730d10e3b0566d91117f8ac3601aa526cc12bba9353e377170db8533d0c6c32d94adc79f233163aa9275e44b811d456110f4b7ec835724267e0b507dfa100bc11d8580143324dad504072d1953209377b97b92c01f75222503ed0a65ba7fb4326df7d072905c167f94b16255af973b9ca5bec5359b24d822e6e1e3064543f22704b8031c442e051e2a96a6579aa7693503e091eb85c45c7bb57acf93789f8dcaa70b1844ccfd622738df6599a3b67405c6f114d51cdb1f60d38408a05902c88b743f0233552c634120cac4c860b5c97c1587f118134b2fbd152caa9346a6f95710175c1200a68877b01fd95919748a17bc2e76443d62f58cb52668c4f2e02897f8a03d46be272b2e1e1a79ca3eb2da2b30c420ce1959ea44170727770438ecf1bddbcb1879be3dd32dc6f887346da5e7df5d46e295bdfaa75cbc184ada3d746bfdf91e7606bc25f301cbf39ae52e9a1751cb8cde70745724bbfb3fa1a682a4ccb3ab9f60ebff95a803aac4ee63082cf71970e6e6063e27f50fc4e4331fedccca58abdb303b67274f4112038573a2c73094ac8631231b09a0f2c3f75f460236adf1d8032bf6d3cd053bbfd17a0654a723500cca4542493ca996d1251d64131b62967fa60b5c42c42ed61b8c30428cd4e8f8cccdb85d5fe72c1cd5298757e59d465eeb137e3a87ace076ac8dfe4f36b6a5666f1afde801ca752bbd4d583546918cbfc271b83661bae4af0c0aa7c21478f19dcdc7deb618ecfa513c450d3029423541fd602d0d890049354cb45f2b4b464c134f20659dc42fa2aa62e06005b8715a9ada30c91d4ed99cf10a8cd2083fe042b4b6738f05d9a7dbd2c019cd9214282937731d33ef6abc8a503576aa99ee9c3d177ab35f7726375db0d7c99381a3b3fc39a36465206b53bc4864f0327d63e7135da5a2f58fb0c90f4b6e26ba2c527d475d73f23e7afab447b835f2274d85649bbac0d44d09ddaff7c4a306600135697c92eeeffbbf6580cd37ec7303e1a451ef4a646b1ca76d258380e76fb124d90b6bbb57c4dd00f5ddeb79c2a6fa918ec9f457a953a0b50d5788ae6bfda151e24cd83d1302f7cd53e8a2ae0dc8d2a361fc23addf210617b2a6347cc6988edc63be14ac146da905d77b87db82a05fdc32ee626462b892ce777067e1b08e4fa3ecfaf76deabe7c19475eb89a55a717c9170544d22352df2bfbdd41ca0c689183c2a02294d44c04ddb233e42bfe047c673327989a6a7f15780b89b8af3fa43cd601700f1a27960209e8966e6a2b19b91dd74680e95e535096aabc14e312a6b7844144f9aa5c163b85b6273c1daee1a272e9bbbcd51e3a220aedadce6c73dd11ad60a6f723782dd3eb4955824c705b77fcb955946457ebe2d4996406568cf3ec20722d95514fcf998df47b2af2d53217bbc6d2dc917630ab1a4850e467c973459e7a8c46b3b8b32cd3d280fe61a5252a88ae3e85155f13a6a55d2f6c0a385bd770e483626110467f530c29efe2d7559b0757703e03a9f0ac7553412eece17108dc6096b421e17097ed26cb7f2e98775fc2e97cad3b272d8328f2573534d42d8015119584d39d24a8e36e1a1a69804caeb7f615a1331a9062d8aa8a3c588c289cfed56f0e660c5dd58c24f45e893903848d95a0567765e129bd0f2a4825b6f5fac4580f72ce572bb1081a2204eaa4495ee1ada0a17806e6b732166e0334a3c2f20a5f2c4aed53a068bbda6a69977b04a30f8ad777b4ab1e0792080e6829763b8577604eb7be4a216eacc6a5f006d00324629d2d1f8c82d85688d480461df213697811c31197a28a536e6d95e1b11c9719dc0205fc5f7e5c90c4c3ad9a10df069c07cb74f60a34afe0014ee0009aef316c45a069247d932eac2ea745ee57f897956a6523f7c6f0828535b09db8a9d91aaa174ea5d617443235458f77ef24073a9322a45181546d9e70c3e20a2388d806f3771c89aba33609d1f8754ad274cdeabda2c034d64159dc9be865f114585d80a64346eda1b5582fc3fa0de5c7ae39d76a1b11f69800b89274c78e938a58cb78236771c56346d5d21789adf3a345cf57dfd674971351b75718fabbe109a1b9403b9903fd9094ae987e36072ae0f56d09f924a0abd19794aa6ea3d52928308d8e9ea0dde4a040358823f9441dda26c70cda68e8a4f14c41bdb0c6f925d901691927a94804a537780ff4fe439cde90970ae0e7e067dc46a46b6e8fb849886b42aa17c156beee13f8e0369214f19a8a41f5aa9e789112a818bf20aa568b4e3d8dd6bf8e48ce97f43a341772925f000411d388672feb8a4492f4adbea434acaac85686db284950b61b1086cdac6e0253c205e5f5163e905945c5d7907ad941ac1402539c9545a1200cfd4ce0060ba453e8f9f43d106f3e6318886cbe5c9bed820684525dacb01eec7e3a9ff809d4dd0a40267e316491bb9e8c11f45d73e7c2a3e7ab2f5818e8fe18597fb8712d2b08dea9bd00ca09838ec34269bcab06f83dd87aef48f80ec2d6ef4991723ba196da3ea141a716f889f136ddc26a1923ad1466c482a38d4196a876e0c46a2f2f7df5ff3ad4788a54f71374411ae7c9505c994aab74f4c661ba48a4d82f90be6a6971f1b08e7088b09964fc2047491d39d421bd2ee9fd96ab9654b0620b201c3f81f7c998d3dcd03479c5b2714633b1a70acb81342a3584aabcf420a284f015c7fa29aeb4a6cc584188c0f6d5063789d3618406054b4777092684516a57fd162859e1286b9da81c870c0951962b783f6348c9d50c69636c221a06b47044d9d0941366c3558020f9ec62d0cc20bd248fbb3cc676d17ee9607b2e302f6602348b7c11ee96c95e2d956f2705c109d7a390748eeddea4f4af359a69c442f4d2a913ae1ba9e2543f6822fb904bc0a64fc8a41c48d15ace9837688d2a923d6d05a9b57ad5032f8c9045085c25a12406597a0d9309c6ca58968419b44ff70936c0027898fd1de683031ddcbd03f2711146897f8b02ae07a9d6f6f71e7d716477bd14a527874e78ebdfe21cb6d73d417218d4b1e0d563b7092a99569de4bc295773ac3295c22674076298658bb12aacb59708332557e9476d231e5ba0c35ac3ca088e543645ffe0675c0379d47dae1e7cc5b9191a29e9a294258e1939b9ec20291c01469c81021311b15f4ef9531f50b9057228e37a7676feb1268de62bfcb8dd4749bdc5fe26bbcb0b65f507be54ef9892e524dd48ddd824294e919d5440f3e596e14be77109ddde4d28096a0511b1eaa078c83c9b9feaecef9f400ebd7143fdc1c7fae4cdcc8d552065ca008ca6ac3f7c90adecbc7e371a0ac3092d7baeee9acb682cd015f193205f050eaa5e97d29b258b6dd0eb5d59e637c8d2b87fca91322998d8f3de34b5afca771ba584a57a13cec4ac91b034e71047c538f2fbda96c1eedfdea4c4ac2886a239222363e16d8939d448d6710390ce0eee18d1a0c9b8fbde40978bca99e088f83143e08ee78b688c54301ee7622b772ed29837e86594a9e9d056429d440255e265df1e66f448def64dd242756c738e64bbf84744db169074955265e80253811e05424cb8f836f68b9745461746bf21aba5536fd83c396132c517ca315ba6335faec7eb933d1c0084f5a70bb7241242a2ab146ef3a3901df35388c7e3077524268385c99ad957f05fb0f804cff1e65db3f039f1c0916312441060b6418d99fb07f5bf8816a6f5a7f8a297bd58fd8612bd42f052ab9e4798d92ca09c004d458dc5ed8f982438b79626782794d6275b3f34f847b9c577b470e350a172360f0411ad49ddd311b20113b433423d5d580139388864a0e5d7b07dc197aa03472871df903234c3f1725c69203d0caa69a00cec709a274b9001cfd549708c8573f9650b577f48b8e667c7131b7d0a56d66b0d5efe89139dc4aed84cb703df9807b82538da4f99906386410057769491882d9209219bbe69bc94c9e45b802cfc4869c8540b5cd87e8a951d24ddd820b49a46ff15844abebb12f9d7200a9d54f1ccebb784117ab3e3690662f0e2afa5f8cac12afdbb9da12ad6081c0326d3866b3cbf31fba5b424157b81e8a0b48f0ccca03f6546239b2a8b7e6c9aad6f7ea0e03af806d42bee8e1f9628323e2b4cf0cf24a33af1a90dc0870a2542dce9e95e2804631265ad2224493c87d703e0d6ae7eccb3dd4052dffc73c5131d17e1fd0b5cdd0ea2191103981d1f281d0144050bc4ff6209a238827a39c584d8c32760e613bcafb50eace78257586344a8f5887899d9d5fdd9dcc2332d97ea88175e996ab1d880c3530fdc4713e721a6a485c3a63e9f2764a6523a1d61abe9ba4008dbdec626e1be31304d2bdae2fca74a181579d1392309dd42af06deb4c7d65474947962f9147c1b7b96cb1b1062d9e12e3e811f222024651aa9c0207925afc76bab82fc1d88f0a0a5d9a332153d698b2bfbc3adac115c9414c80ca20ac007a43ee60ddf9448b1ab6cbababa526d3a2740e4e77be91559f7856783693a158e82f453d610b296f3c77dec6d10e0af3655a08f32cfe0fd175486d18cb8652c16c457ad606b47c8e799c6bc206978ce725aacb5141198bfc07888f94bdf198765dfc758c7d6bd27a35cb4e3cd49bad4a12b6956ca9fe43d20207bd6922205048c4d88ba1680be43acca40f16acfe7d38535c6dc570ebe2a8d638e6c01fc73ae2faea51946f19ae85d12631656adc9094e817d91a49757cc1e5fc0161ca7d27dcf0bbbbfa90e625460c427f8db2264a7eb3796fffb8dfdecf97eb4a1e0adbdd0ccf17bbca59449a87c57236f820a691e1197fd1ea946de70a3e0a0bcd404cf59505484986173467c7f22949065872f1d1fbec5fef7022aa8b1a77548a65dae0044fe66e3ca430f3616650639d7a4186d312fdf394b22f81ce3fb452802f3276086f355a02a0266ee46b28645283aee4885976747e4bf2d49cf18d55a5abea2ac220173ebd4fada6480c94baace0f12654a97e8d675d9e9edf2f9511caffb69f703d8053124d474029216aa49863020a53053d2ff5df47e3159f8f736dc308936ef0e1a426faee537d77f1af81e346633722eefaea2d16bd1103fbc627521a98d1bdefa77f8e0888c09dcb78161870094d64d0478f67f8e9948e4e8d7fe2227583d09e868e95e69a6e5276a36495b65acacd9c12a6c01d1357ad3f8b70b81d9c7274b7697c2bd0b519f1b8257d574616e98119656f51f313e222e82f523ab649558c701bcd5184a409ed00faead026117d00e41ecc6864237fe437dec8c8618f181e2858d10201e0109be4eee590ca91f2d7271da41bb1120b6532ad65eab5d809b94bcd2426e36a6f7ba94843f22118b8a92808227718435de05a01ad9ffb4702ef458bcadd6edb0d8a91b0ba6c75da4ab88cde727d151821b57d98df9f71b2c093fdd179d7a223ec332509ab7300cde0396b7056bb6f8adb7de22e332d7d8a490cede028b0f9f7242ddb62f04dec3aad7f13a322339a15303e4081a77053fcb2dffc0cc9a23d999bcadcb08f404ae429e76f9bd68525d7c5fb830826d34a339ec97821d63bd74c7655751564697de203fcaf619d644ac0d5586081dead8476e9277593d94db3e41547d4f11bb47292c66b27b5e57d9f9da3466ddd6851ca58393a0e8070e5e4124294b9c49640d7be8c61a6e957f1fe4bcaf2184b0b0b7d45a34ac402aba3da0c76784c2e1773966e9330e0dcd8ca2d301fdf1dc12811a6c69f631ad71b3faba850d2b4106afbae93fb20db22db13c21086ef22f4908fcd3e985292ba05f7cc59f27c86f3e8bb6a04ffdcf43bf4e372610ff6489699434f264dc6bbecc167910f8e2a284f36f596a8675a88abce87c78d22193b29e285a426fad2a6041aeb7c7870fa619a1dbcd54b75118e66239a1c6fd570e3daaf84738e9b3484e7b8375bb0131d3769265dc976e5b290c0688da104ca4deaf75dead35e6c993db9499bec9ac17ddae4ff3629d7bbf1eedb2401919bb4557b33f051678f6e925b3f925140647a4d0506d802df67d0ddb56fa195e64008f1353d9f9bb2e969dc2d83bf9b3855260186956dcfab3840c22acb3a498a62ca511e7116d70ea2d357ce05691451939817dd6528cccab776cce524530e8e8c2a2aa482f90e4060af7ae80b72b50990931bda42b082f0f6ea360aab56047a46fc2e25d4ee53829685cb86b78008f2d4b3274d49f6912f5c2c46e6f8de50e53907786af3207b42ad0ce85cb7cc3b7f22a39cff2731f3cd5de85af2450cffdf3e17de6825ce33c8ea12b19b9802491ea84c32f0b02a40e1b3ab056f8988de0d5b9b10c3926f9c1130f731b846b109a3209be368d706f43a37a09120441a6185b8c618938bd5b32b43e7c4379314afc387db0d581327b35ba78c0c69bcef7f50e0d080b91ddcda5108ac04351771374e2bd34b33bbf9952efdb73c3e53aecfb77ab98eeb06f434b9e35a506d2c13f2f40ad618934b2dfee053cc89e7b3e6b1fced96fc4614fdea3e74791f930929ffd7dac55bb497d2ab347471f79b6bae213189593806b16c8d63245ecb8288d548f5a82bc84a2480557b2f26d5bd941081f8b1d759e464fb351752d2c555a96a3ca2b4a9d42dd7d72d34ad2174fe1cc4d152b0df8d5dafe79f645cd1a49da7ce7b144053d5da64787ac62126bb9974a662270efcce1955f4561f462d1a13ec9a54f3c79eec880038c23404bcb7042a5c76adac936ed6ff224f4b248f1fb413fdedea864d029ca0f17ece5c386c9909c4527f6f467098bd00a8bfcfad82830ea1833e8971f96f858f2bf66f52a64a93d54da5712f383acd457a8121938d52638dd0a17cee3a9caac1bab93eb8a3d450e4dc1175d9acb439474be9cd4a65ad6e195a470b05485e4cfd9312465e221012a7421696afe40fc8dd3e8561873f54c69459a64105429f90e10d0711a7d48a0cfb6ee4a2ee68f8732b97b82f47513513f6824899c82067b4cb22ad3ad08c05cc67ef7a73e2709cb2f9ea1f4f98236b18a069c4e2420c024ff2fe538d167dc9fdad2da7cae549a409699a9964f241bc68de6e4dedee9dcf04a6a7306dc628839af1e53c5df514ea83913995007d165fa7e81c840fe99c9716097abdc3052d912a890f3c22a93024cafdf497cc7c923ec8a937f9eef3a89153a43a67ef612ea9c1968944a3da190d7a0acc9c647dfeb2103bcf5517d024598b446276cd961b0f5e6db2c960a56f66aa00c162946d36cabc61c19aa19f36bb94acc2df19bf941e2802b42d87790164493fdabd924f604820b1d20ce3e156650f98323009576ba8520aff34711376d125426313fe640d476b00c4bc2267b518bb97e036ce5f8fefa081878cab2425d6f03531badc00a57af7b2ff439c4843ed0f914e1ed2acf87f737579f898316b68a7487aeae7751d1fb1e3c362d890f0b66386ddf4fb4e86972c6e50d5fbe8d73af4d91c73d576a8c2a48f156c26cf8448ac8cf2e82c1852530b8c09fdd8da343a4d566824990d250c40217c51efb5016309739c442cf572f107b7ebb1af3e40e0262125aa9ba45078c373e9e6e4f8684a475516a26d2acd2601419a3e368205fe8b0f6222f25e1ab4023db6abd288b06b5af75f068b1ae2fed15f42c4ecaec512009ba700f4f50529637abac2084372d4bca283370c5dff94617033417cb63366099eeb0f2af46f5a5db5bc5f3a0791832b601bab01671d3bcd05eb1bef004abee53f671e6dd6aeb40399cdbada74d1f29819987815fc28c0ce9d547c85c4d7dd80e9ae7d40693b78e9d9bca24ec9d6a95f6373c77770daa6455ddcd44915a87f083497c3139d891befa779ac801c8656a8ef5f139fb073cedea461bb2a7228d1779b542715692054fb220b801a6ffec330d294976a0fb669a3cb1701d1ed0b7d30531f1dd44e667f6455942a1c227aae8cc8440d43db4d4479a1421a20171edc4c2e0e9ed679b3e64fb7043bfebe51bf9c91c124cc8ad0080320cc55df269d66fcc9ea4b9d0914d596c82a58d86633cfedb2a5b306cdf8b068ce4006bc1c50cfa450dd646fffc0e23374172db681f0bd69315399a64e62a5ee407feff745eafe0b34fccecba74647ea0390223c10d9ee0043184241415216c28c9f12c8932cf9e1e24e37b851d13471d307af24f9c32cc7c3a14a3d12896ff526c5dcb0a764482db00e2334c2c67ffd7b74505f398fb28b596a02be815686c60eef804c552d5d212810cc303568428fe393aa49aa20117bb65809110b0c288ceb55791dcea52c9d102b67f2f7250b033e171782081add8d0c4cd3fb8eb431bbc0daad0f71faf117ec67eddfdb0d7a6fed7e88d0f701c34b4affc02c77035dd3eb4335d22d2b6d530db33c706702fde8f7a34ffb98f5826854aefcfa58b98fdb8eebf7453b34ea8839f861bc8eafb483372ec1f04d4e207117b978d35543bb7c8d016820ee12918e049dc49147ab5737a1ece54e04f747e78308c3648cd721b642fe36fadba12d12b874f5dfef511dae052053c0b818c8172d3e0e2e3f2a7340cfb720ea0271b2e761a056eeba8e005e1964487f8028786e0f91ab097e53198a4c57a4f12eb1608d25384522dee6ae4fa2c4c6ab086e4f04ec68ecd40d6fe5049af425455a0b2b4d4c02fec3cd23634968dfc13f97deb885dbabc40369ff53af1ae5c13c0101fe6d4f439fc32aaa741e5aaac1a743f76af035528f590c98a94e60610413304246d42c953e60d39661837b1ec07df35b90f254d02a5f0720df74227f976fe385597451521a58f41532633971f15f6d67acb572fdfa9594600acb5fb4eb8334d3e12a05acc1895a27fd6565247123e30309a17947bc897bec4e24ea7791b0a79f110c35f800bfddff85c1167c4b217fa270a19826eef07ca38095b11926910817895df9a2b0a9aa244d9eb4d62e76fbe567308c3ba8009d4e484d54d4417606fc69d2a92127214eae75375b233fc632a0dad2b1c62f435fc35d0d2440054cef7c361f666d1a7e7f711adc3aabb498b07e89deb96b3848fe01d2c75abbb2468b76780bd92208555e088d373e270cdd47dc84dab21f25a187a65287435708e3063095dcd4ec601ba89345aac718c665f146f08f0e5c2c7b27b2810b4cdcfa84d487775af3caa076fb660310570deebabe6ce249838c7a01bd087c6297a5b3375ff894bb0e183bb31a086cc896dd39adcc4245c0a88ae6c54242382d3cd7d3853c6b14fa5802c15967611613416f4bb907d0eae1188c94f833417b208a07a54c7dad73118d8eaa71cb33cd9173e936f472ed98cb2ff12b3738ea3799365d70a643e42649a19b6941ac090765268d2bd7f3c0849f7e13007b0119f719a267f4c1797f55c8caa1ea20aa2aed7c4d294be414c1cc73405f54635ba01087c481d481f2cda00221c6ebf7aad392fb44b6a39c6e2cf9b699f581cec7a180feff684d6841922aafd3d0695e8721a57f3fa213a5a139db8b4eacbefbfd2fce617cc100ba3bee211e8d507fa95495c5ab3d58a6af819a06dc98a8803586e52c9960a621296ea814644a77259cc4f957ab6a509bf3a90c744e03fa2e366f57401c516d0e09ff02058398f10ad946f6904bf807ade087620a1006232d47cd3cfdcafde9b266fb7f14a9e732ef206bf127e9548201b8b2c129c085d5f7d56e5c6085ed844f960f5bd5e6ebdf6c6dafecde524a999294327007da069e0699e78586b4d65a6badd50d57c4a0f6b25a9d3cc001ab66ffc26da5000d4610670d79d3388d8323655c738237475e171412e6ead0907eb70a7902915298db43c33048981b0719d27755e12c107d25552051787481887fe031e6ee34ca69206f4f1222dd919f8fbc3da10b74f9f6348ae2db4361a8ad42a2303e41d82b6f2fe7e0bc22f675d8c3abcbc2adcbdd1f77bc232837146843414cf51444fa947ecfec6eaf39ec60a1a7d05248946c2e70ad6662d26ef75aadbd7e6fd379dbabb5f7628c3986359d98bd18635896695af69c9bce9c69396f1bc77d3e5dd77476dd77b3f74f7bd0862394e9863f04927bbbef1ff6201b8e29866c3458c445449a4e11ccf5d8392cc7914397aaaa1151bbcddcc953578e28698f8fb1c6e686c562b1582c56e78ce3388e3dae562b2466d0acf6d163d7744b7eafae65b1582c166becb1c71e7b5c21b15acd40e3ba504837d21adaa236f486e2c81d954aa562b1582c168b9593d339e3d8e32a053974e7d5d32a513e75d9aa52a9542c168bc562b13aa7733aa773c6d538a60034e27de6ceab47b5c2adcec6bb791cc761b1582c96b3723aa7c7b6011d690db5a137f2a98f0aea542a55a7fa50168bc562b1585a8675ced8393618b119956858c6e1d6bc993841e01e954aa5721c168bd5399d859eafd943557445593a8ec110d0062404829d49b5a9b24aa552a91c27c334168bd559d0e4d09594be62d6b35e49994d94524a29a50cbf55f22585a21cc75913067d6fc1b46949674db70d576da854751f30e5791f62a2942df44921dd9753286bce982f2c2d6850ca96528eb9c191ae1c95d451e1b4c91486ff9ed7758e83654fa7f256cf7a95aaaac21ad47130061dc73a4e751c779c761c4d0e9d26aa624c6153e96a1d596dc014eebcaf2a4cac3654740f12a5c4a8e8e6f72a641a400dd876761a872ef5d544438aefb5fd12ad29a6bfd058682824aa46afe0c89d98170d0e2653d6324cde786b0783d75b3675df209a284cdb0ac4c4fd121dd735cc305939bdc808431d5ab05851e28d504e52b015494985b4830b0d991d7468c1624589379a8192a2e2e262523a7d36fee5a3791a1f8e77f972fcc907e3573e29ca7c371ee5337dc8030f2f4c3078c881e346ca0b52298554a2b161323269eb4243664a1d46efb7a4327ad2e85d464f63f432a3d368e495942c76efcd30c61a8661d975023282b0c185864c584a499991022a99ac9c5e64ecb0c348a5e43b90407a7ac27086c9cae945062964c5a2e725e285919133887644223f522955d9a08888b74a2f171a329aa6b9d0903199400f02e90181f4b0e1e3424306c5e5e3b18392c9d3f8789c4e5ee6e3b183141929272732524a2713126986c9cae94546484386347b4e24171a32271a9ff82edfcc9f7c2c2fd3f2fd252180192e70a268f9c21b962f6c7dbaeef3f97c3e9f8f0066c41a292317a3945187444e345c4ea79348344a2991ca702a038d2f00eff20120470b2a3f0a00004825d20c9395d38b8c914a29140a8550b49013ce305971a121a39d5e64a88144229d9cea8b0c52a954fad21a4a9fcaf7f819198f3299c2f0dff3ba2e1c7d582a29f148e10c9395d308a526250a1c15193227a7d7c09797126fa4b252da81340325a5c41ba9ac945c68c89c944c4adae945c68ac90e3bfce9d442d9c185864c48fa524aca8c1410a9b4727a916122e36798ac9c5e647c28c385860c0acac9a7eb3e9f0fe853202e3464524824527883f284cba9342a8d4a48afb5c829d47734c2f05bb49861b2720a431fac9ca3d8703616e00ab004f4c011a80262ee06c5e4c5a44422b9d090394931492991687c30eff2a152beef677c312ff3c578940f7479192e3d52a14ca630fcd762c06fa41aa946aa916aa41aa9462a0d26c6c99b944e4c4a2f279713e944322af17e3ec9c8138d888480f4acb05074421f844d6c30305111fc6021b1d3d2e1141303e6c58509068b141596965ff12244b9b440e96082c1224525db93cbe9746ad9d1c5d8fa4186f1071946d50815233d4bb45a36a85e59bd7a640bfd40f0bbb141414141414109b1b9a1e11331df9c39b1c4b08cad9d91099b7bd36a9d6a407c8cb2a554baa19d908ec9c98989898989c97f763e6870195b63e8552365584422914824128d3b35230b2aefb8185be3c884cdbd69b546d48b969293cb06868484c5450bf84224128976c6d06bc7c5d81a47266cee4dab35d233b233f2f2bc119b9116371a711cc771249fca3d204cd0f0075da13fc6b1358e1f146ac41573ef67e7f342c38e4824128944a29d31f4da6109c7d638a250209fc2542039203a36bd425d841441e4a9c8873c0b8a099b7bd36a8d2fe1d81ac711c69503028db2c5079633866118161a7fb8701cc7711cd71a6d5a2c27968fa475fa7c3e9fcfa7138dbd52d35aa20524a919c3305c39897e9c5ea8bc506131c27c2439243a8d43e23a692c1f890fd9c2cadb9673cef91482b4406c9668d5b0701cc7711cd71a6d5a2c23202d10929c968f64a42f974f348a6a444ab0802435a38bb1f56364c2a6c507d23a7deee9ec221ac7d6d8aa39fd184f1f7ea2f1048a7efc1857a8b048f9f92b545250405a236f48895827a41144670724070404d4223142a49f4712298ce308d26299a88d216872029e94c121c5ef2ee43d294331f6bece063f0abde8033d0e3d0f900775dd87e49333231a2bf23c78843c8fd077cf03e47980fef3f503abe943e49b355d28a495c930dfc583f9721b188182f93299e48edcd9b163c78e1d120da8ee070a537feadcecdcbc6ebef372469cf9ed29d0f13c497d8ee3387a9eeae76b0aad7a3e886d323d09081a52ebdd2929ee44fc291486c2708f9f4592baef51d075ef810d027f033fe0dd68b8d7fadb11846c83d8fd2e65403b9afd820062d5d94fc99d1d61105333a70d229d39372190904f7962ada1584dde27fa44be0f778fbbeb7efee7a65114634a75a80ed5a16004c4cfcf0df4b9a86d34732b00cddbc6c38bdd6b9ccbe9ce81c01e224f49e76ceee90761397076d6b66fdfbfc91df165d89da3b11feecdf148737a882a67814e417594e841a7a04d00219be0e1a38304124c2b3826650702496cbd628f7b7b01694f3d8fc26cef6d3a5aec1ed4812921442e07578386d446c8c4bafbdb808bed9493b2e5defb12830a3d8661606a03de5fcc8bc9a47d3978ec40fb1e3f5383c6c8401bd86b589649f125a6b18d066fc045ec1beb983572d8e86fb0a3d80af38738ce9d9cf2b44f85daa762a62b35c7a9fae1ce9ad9ea6eb9736ba8a4e7a3e96a145d87aa44dfc0d410aad7b1e3103a53a5c2c0117b8d1fc65be3ca6400420ca4cb640ea2fc104c1892e94929b17cdbdaa764a841bc2d10ebcfee5ac48b00b1ba5cb99f7dceaeb5d60691ea7cd371c569bf0fed636f8c099de32f8647fe1eddcc06f228415751c5ccf63dba19138d41b3942e76085addda121ec0101aba580479737f6072ea3d439619e26087b38b72522b4818c815fa4618010318d4a00639c8810fc45497ea529d0f33d0500fa847bbbf54a6711a7a5393d6ad6d3aadfc1984fefb1227b4f1cc622076eccc8c62948ad9d7438eb641c39beaee18868958d46eaedf15359ceb67450dcbf5aba296695aae5fbb88573e56938584488fe0818a0798c38d143138597355c407a6fc646f12e54ab2a6108230670e85914988426545cacd1b0a23a318c18d486905a78d0da6e5ac619a060a0182f42936e78c1ba5759d47b8c79232bbc2cc2368688b98ac1b2e36a855817da8d0648a7f30ce19638c3f1f10fd122f986aec0d5d0a374bca84bc62ae7391238014ef101a0a1c55e43602dc27aa706fb00d8715b9d7b25c374d5a0e477eeee5c6437ece00210ff20908017144fc20608e883f0137227e97f638ee6b5cdd3e3fb71b38640e297ec092ec2be0fff9ccfff3fee1a13c3ccdd33c3ccee33ccec353792a4fe5a93c3c96c7f2581ecb6379782ecfe5b93c97e7f25c1e1ecc8379300fe6c13c9807f3749fc701facff7c603a873ff4ff7f9bbe1083de87be32104026d1ab80112fd41e00d90d88172c301125db664f9bbe2e7c371450e7f365b0e2996f857e0f3f91d1445d17d40fc3d05dd706422f7b3371c9ac8bd46f3e7a3d4371c59e45eebfcf9ba5be4dedddd6e383891fb5a6bad77c3f111b9d76cfe7cd65a6badc88dc4a1db3ebb71d915f5e1d2a93e668d8e98f21a117f2a46c41f70240edde6d9411d58e4b8cf20f680a83d11220f9fcf8fe3034ad992baad9b0f58f279ff92fc44880e6ae003de00891c2865cb96c11ba05e89b85f220653f70ac11281e8ee7681e8c8144d573530417bd277aaef7c813e1186dac7a5bc6145daf6e976237fda4feda3547bad73feba5b7377ff88da6b35e7afd65aabf69acdf9b3d65a6bf327ead1657f331556835d3a3d774c591c510f6cdb3256b2813a3051d31e03e59631ad7583bddcb62fc19e0871033590c11ba10c4c6539374260ca7752f5d522cd1333c28c0286fdd69b31c5c2ef5616906199a635cfa49dd50fa464cf4a4f4f4f0f1112357526989a494c1a782fe85880e709c270eac89629328bbbe299eca5e8b65aff12e083eb010ca08e2b9e62cd9a4ee9956bb0f6f0667660a98c51e99434e32cf89724e4d2da0c879f4d2933654ba543640f93a1c3ca0c01621452331d40f85a6f9166527ecab47241b2e56c356a6270eacc96ce6c892cc4d4d419c10e0a5e468894d239d21338f8012d13ab6b9fec1446668c3f19156935a5b49b52da4d04cc033ff63247f38f85b8425411533eb3984511c1ef4f4c4aa2a665ff482524a2c6e54f97fd13891a080463a0e532200212223222f24699a4845432c9278f92fdb322f6c9190d4449515991fd9ba2d66225e41cacb2a57e0862842bb369e501b1702a4e8cda848439c9f00664552d0acd060a09a3e1d030fbec15a417445a7b5c5a1412c65241b3d1ca605d6be8919f8fe66a57875c8dca3a8045ecc25790a8cc7ae193f03c7c414ae3030f0dc4626f9286775e4186fd42a275795ed7b93e097443b016ec6c34da20166ea27b916873ceae3a1deb0dddfc5aabd603ad46ae504d0712558120d23474b30e4153499990685552c6751881289f6475ad0c1f0bb4beb29cfaea962851e818d75a5badbd8e2daef53a8dbc51ebee36bb419329292b31f6eeeeeef9d5ec5a2d6fd8f514714e20e413f7ab4cd0903ef65a0824444444446444e43f3245def47aab5f91e7f9ac2d0fe35f7c4ade9c5e87930ea617239279bb254ba1eb5ac43657a3d9d242925d5d93944c168b9580cd07d78d49c2891e6898038754aaf3965ae68b172d26b34d4efc8a6c34f762bc39e71fefdc318c7f18df8b1690df6bb30cd4719b88e7ccfb07910ccc904d87d3d086c278bdb1a16ea3b99fcfc54f886cf867374bbbe8ee9336e95293ba5b34497bdf25dfdda2ef9f351445672bec1ef9ee0ef96e16bda241dfa1efee4e6995ee6eb0519a01dd37f79dbfbbbffeeedebebb906efbfd201b4db3b8684142d22b218b152a2928e0f7272625d2c87b1b8dc87b21259ea8c4231195949478dfa26f128f044c1131f2443d22628b60894242a0d7bf07d27d42a0119733c906d69eec6630658b6095f49c5018ecdecd9df3ce3f0ee221774fb5e8efd831b61948a8eb7afee464a3c97f22a3d075d64ca2d0b5cd4a9b0efbd8e30f86effbc905fd6493279b0e0b8213ec3e2e288c0c3499921ab911e9f631bd926fba3cd2ae24cfeb1ad45d4a095380ee8186f5a514a2bf2a49ccc0f74b66946e2eb1070a635320436a5720d2a7d6082985dd5142a42d5083c21a91c76ea7dbd9e9fa9a41a49fd2a078424c817e8c2015880768b5d328501174853e123d22e80891d2771128742d449dc1be0e60d17eb5b6affdeb1763cc6e34b73b9c7140f4b72010fdbb3a9d92ce68ad468154bd4241aa4d4c815437c3248cfa20156805a01508816cca8931569d72f6a9086c63599665b31ba256af1d92e70c2a4ad1a5f2288e24a03c6e0d8254a016010c3a675c500f0c5281483051799c794c81487f3c218fe2cd72ce1811fd987306d3c78cc1447d60da40a4261fa4ceb47209d4878f1626aa994c75b650c08a6cf1ae767e7df810a98095576294c945a2ba1922ed70c63eb329a9c96b776f77bbdb59af76b359fb70a0973137a6bc7d73c66fc8d01fe4dff9f5fbf1e7fcfaad57ce7855912dfef913f1ebb7bec9eb8c44997a85ca2664c17a77d87ab515a3dc4d36e57c6d8e1cd7d6398724549fd32bbeb63abe764e1c34f527421b3e65b5414d393ce57fd26adbb1ece57b6732870f3d607be945813bedd935a3cdf81fb3994c51742ce1388e17638c2f06a6d8b3661cc76e42d718c618d72d634d8ace24657a3489b6765cde68a4a9473a1631e2ea98bdefb94dd3d4283a8ea6d164e9d828cfebbafbdd590d0da905e98f9c04d6172ace50dcc7d756a730d666af19e756bf6eab6b5eab63d9c7e626bc6e79cbd53313aa87a3edcb9fd6d9105751b19f6d00f7ca1baf36e7ac042962f31272aeee75cb5bae9e9550e20498cab376f706bafd27ceb00c63cee56ddbb66ddbb69b456d03e2c51fc80368711342bc3f430d94d3d6efb57bb9cd9ddb6cca94eba6c335a7d46d88c1977a371eb06ce333b11b683225d52fcc035586b5e74beb4ddb7df688dd930a1ab6cfcdfbebe6ab57e80c0667cf139df7abe2683225552babb2686fb488bcaab488fc854655c72d9bbe7935ebd53e5ef4e94ea3dc85436b5ad5e37a793ab44571e8aa775aa773dae5795d0706d1673080caaaac2690f07abd5eb3065e70b5e775dd0886a8a2e5792df9051a38cb59b20924f4ab5f12a8ded25ed527a5d5f1ad3ea7577c6d12acb517db767cabcf3bbd3e76c7186399bb5a41643b3b1c5f3bafc5d32bb6b785c380247c90f65a9c9be8bafab5737a0dbffafcaf464caf38d1b5579f539ae44baf4b023b511d5f0bce9db63f99981663f5de8aadcb16ecb7bd5669b5acfab5b9896ecada037bafbde9e6d36fce741df08931100b885f48b6842e207a363b20faf74ab5ddb4db278baee81148e8261154cc1538b7a6425cd1b9123b1fa19b3a5a3acbea4c960f5efd12606f0f9da3ebfa3d7daa9c47639935424763c67c3e4c6b35cf6ad5b28d26e391e21986b1e422740e86f84b619a4d87bf0f14c6ef57f7ea9b49cb4ef2bcad433a8c79e0729fdc5d7fec6754db81465f34faddeaa68342c0e90289e2d1236626ff0acf905678268733396626cff7b624489336ed124e8ed18889c82329198de4c8e1ae2779af2770ba1c41f40aeebef47db67e5a92d5a0265f7f49cef0c8be079e6900f058c5ccf4f7c0db0e2b6f86c62a9ca19f0209d15ebe5679d0ef4af05318c7181c83a0304250184a5948d41c21535309d11f4f89d3440972444e7489869add8e36cd2e8f1e3f23a74b4ace41f49733464ac2e1c6266a60263b885af2def32079d16bfd754f674abe8290321be915909f049654056c5f5249af80ee499f17413fe949a09ca9416b500de4473e2eb3a32a31444c511555a95eac4c866e3bbb091a9d2bbf218b48b5bc7d2428a43d0d659913659e5da560750a8aea2c0f5ca930009d99ab31a4e66409fd8a8ce011914e27f2ee7c6f646d9da6d1dceacb3462216979e3b15453af70a699c5b06a547dd1d7146178699b8e11d1a8d4231292099d60e8e6cf1529fb8f2e555fa5fc8597a6d3cdd74af65b204c98b4bdda8b31ccc66402cdc06482487fd29517ba9e93896dda649b8add8242ac6e2ed1caad1088fde4c963aa5473b5f2c16229510312523710c4abf35614c87455576e334cec429723891a0f6040cef16a338c457dd091d6d0155dc9162e7476cba410333d8d981c435d3d72ce39674f82d6d4ce59658c3489d8bec810ffbff420da9721feec7bdcb86df7d6ffa9c07b15f7da9ab3b558b515e369abf50cab6ef316dcc6d0a1830c3dfb30af15638cbd5aac5a2c6fc1e66c319d1cc5a4e00f1f500788b971f56a5866e746ff4530651253afe3c55cf0b65080e82becaf6880ca1cc77174c0c5a4953794888d5e2d38b59756cd566bdf6bf55b6fadb569d75beffbed7abb36ad2ece8c05f7e29b9b994ae713549b998ae0d57e316badb5268b598d9a5ee7a2d657e0c7e0005ac43fe7747904a8a51b8db55eb7c3f16509f18e8a318b61597bc5d8e69c6956cb1567bc036f5208b96675e904fbd85dd3f211996bef5fbe0e8449b4d94161e6f703110485c135d3f2e6e0dd020de96f349b7f267873b4d0cd4fd9d727d4a2e13cf90ff41446f4fd29210bab41ef606809d017b201d11618b2a1214501531825945953fc1e6f34d8077a75dbe63edc43efdaf6817a40536cfffa1ad4beeccbf362fe9eaecb7db9312ecc455d8f41f9c37c2f9fcb77faa45c49c99b1a187342889f6f4ec35c8d9a18ff6cb97f7fbaefffd0e7e27f3e9fd0d321421fce8910bbefe7bc03750f7a81a600f550982972987fbe3fefa0f70781be83653f40f43dd74ae15a28600b7cbc817c9f1441be144efdc95fee43add012211b0eec6df30d2ce1e1e4fb4fc08c37bcd1689a48cebe153f41de24e72ecbfab393cf9e8a21e3b24fb67d96e5d772ce1d6762f2a18d665bd97206bed69d7c08c302cdc949cef77e3a5008dbb8d6df3f79ed9e5caed528194f9ffbedb10f3de8bbffc88841c1c4784971413981d9bbf6fefd7ff681fe9fc5ae4f568027b71f77fefe0c86342182b64e05c47028ccc9d35f6142e43157a324b5af1410735114107351104ce1904568a36990c3c942373fc56596484322aed528d08be35a1898f2422d10d7fa0f988a71792ade0a8f85873d71c47a29bbee25654989e7955eca52e9a524759b4475ae7e1fc089983fd4d221d432855a30422daa1a42057a01a66234163015ba0053dfe2b5f20a5f3aa3bc71b170ad70a9b8443a840ea89582026a81205581581feb41acec31104bea1031e6ef5e5af70281ddab7b89f4a5acd1b93c57e7c21f0af59f7c5286522c7d299a9237628a6b498e6b7d5e3a628a1309017950a6e50c5aed41409216da3c1a3b5b3d6d284cad2797971830a8181b397a88093d0ae68bf1bd7c2ed6dacc25eaa7666bb66a08d47d38d74646369aec47360cd0687f638a58dee477cf9ffbf87c1441020b9d83ee030bc14f6d2afe8a534476845c267a7a42ceb942d7eec26b8b6a57eaadf7b67fdf7a31ce51745d6f483767679caeebadd73e11ee299173b698e38b5d9be987d74b79d72b866127b04fc1adadd6eb756bafd76b330cdb0cc33bbce66cddafdf6cb39541ce39bbe79c73ce5e7ddad49cf314f26d43ce39e79c73adf8da8aafcd39e789a34deff67bef756b22bd98fc87e69edbabbd189b73ce9c55d7ae4f2c5d88ac7db3c7332cd3b8ead8468e39a3312c5ff335e7b4b5f3f6a98e3bcbdb9d3d54355f13dbb00cfbce1a9b1a98cd9e5b6f73b66a5274f4e9cf57cf14ad6344f5f66ab18b6d757cb15c052b74fd038eb9310ea8020632c056ecbdb8578bd55aedc5b34a2e6fdc96bb63a636db6ba543c0d0312f86b13b6badb7b59cb34631e6f59244db978a1417e08a18635a7bbdb77a83b90a1a6ef9aed8f67a310ef01c64c026c980dd7b31c66ebd18637cafeddade52a8384036a65ffdd0ae9b38c456a1ebc6deda6f8a5c06b42fcb3a90d56bdfca965ab1bdd98e78556b2ff68a6fa6bd0c35db61370c753c91a3fab5b7d68bad87d65a6cb15b8b2d76bfb5126152acde6aadb5f6e23a1e611cc7d1061365ea4f51273c92d1844d26af2ee78ceedb35f64e131ec7711cc7ea266cc2a3ad5dbd14dc3e61f89cee354ad03983d640c2a0cfc40d640b7d1fed0471c2559d66af5a53c1ddabcd1c5feb354f21b4d51bb3d52bbe767ef54c73eb01a4c9a8e4ec9cd894d108000080800043170000180c080603224112c561a44d3d1400115d8a4c6e603a158864590ea3389252c620620001841830234043b36d00dd0ea8bd0c64a36ac24bc258935227f89b6e8c605d951e1a7804a72086d1188857bbd0b3d86a16288cf412bc42e72405b94aec9658bbe137dee0f44d9a69fe8cbdb0fd9f9e47c498a57411186ef7af626b875eaf9cb29c89ea7803c0882eba529d6957e4bce6e9f470d5b2dd1ed8bbcfb42aac447532daf4c76f6c6fee35208e662291107894708205d11a0c3be5b40ae17cb9ed91c94cb5a1af21525ad21621554ea02f9301b94ae08bd9e74c055b47b3910d27d512d0d76022856816472373434a1bcb689a46cd7d69c7e0182e4d6ea718a8fa973a36a0084aaa628cfb155ac869f14488950a9bc297f7c3e962c98b972ad32ae3264c5f96559af8279d8acca2b214f695209574eea83cc87e4df688cdb740a01401ab57984e30169ba0584c0dd695b34e2e59be62a70a453cbd16242fc65e05b38b450eae2d7bc13d6e0b6f958b04d7ffa22d8c1761b277bcdf3b150171104c5d4e92d7d66008b8146eb5974e0e28cafe8547c81042f6af1f3093c37a8745b8941e6e84a516867f2a4bd351ff289f0286a3f5b2619799cccbc8efbf44014b34745136da181358db558aca0818707a238d1eddc4ade32f7784c8cd116c15701e486044258c007ced35510f629c817bfe59141056c86bae58a028c3ef7deae28785ad224e449ba009f9a8bfa044b969f3859e0d2684d5810b36613e1d84196513c76c50b876b0ed98dac23deca6b88391f2243e3a6f86afc1ee88cbd9415935df67e05c4a923f6c3505abd349ea341542879a7c3c70a849a938c884c8ae113e492effa58696a8667a1a49e8fb941dc4fe00c38832336acd610a0603fcbe5921bab71d1bdded20aaa06cec8bc5875fdd35fd9e510b188c79a35fb22045861d820cefb5fb0483e189d1b03c2d46107ec62271f1369bc14a3a80057d73a1527ba6c464d976638202976ecf418574d007bb822203681719063058986bee0e44ddc21e63abb38877a9d42125305f16077a252c8e9d898a448396a900257c729adf480439ea102b7f047bb00e45682e8893496a2debd3b68cd96c2354ed4f67bf9badd46352a137c72632293fa13686450b3098e2be5d47adfa8ececb902833a5f624e39c488518639897736ee74208e5bafa5c223a3f0479d46bf90b06dc33f9d2d8bd695e567919ab59c590ecb098ed3e90b5e73de2cec2637b542db7b333de02b7d6ca17ec71b1aa88c94170059241cff51d080e0d61dc5016aee67c1917d101072867a935f182896421162a9c8225d098b65174c11427e87365175d0948ae33999e70120529a99d3a8cc7e85b37f695b81b9b55d33ffbf0aecaf086175f0bba45ebf9d972595143c34adee456b08483ef23a4417c26bd8405b7f860790fca138bbad5860bf6dcd44c3d3f97c53da5bcdd4baab05c96876de805001dc0e0c45d81d10d26e9ba881c9344f609e5336987dc7f63f0daf8e04488428f6d26bb0e93568688c9d8a0049d272bc10e1b3d83de27ddfa434827a34b1b201107bd12ec9f2887cf0117a701b184ac5251f17544919f0fdabe152272ae075ab68c6882f29d67e4821d72cdac04e3950610e746aa37a69db296374fb07a56b7ed2463a7de816d361588873f289930699d62c4c928e1078113dfba1eef380a578241593d3184ff8d9b7bd4f6f8629d867082c984516012970b6582a0539437f5e6d3823372327fa4e6721fef59074b97350927d32a0026d491d2ce7918583d0fd89024c2fc5a72078531c1d2c39b4e4200eb1a126c34bb325bffd4ce8ad10e456f20fede977a6f1e30af5ab945b483e144833cbe0827930747875f26e8d3f5472f21d83fdd9ef6cd09ea89eb4a48df5fc7bbbdb319b0c612b39e0c6a9d1b1c56d615930da4a4b23d3a287bb391c076785e6efc8135c331da0baccc5d170729515c5e54519902dbc28d4cb6f3e0f8bda57a65de344b8529b9e55f3e168fe2f6c2b83b4077bbe529ed821e1d519405f810a7d33c29e3ed4cb23e1ee57085528c140d4f0172042663e2f15712b6ecd2428c91e242447629268b4a84d0899df78b8929ca41002a096c8212e41ca74adb32d3173c0706edcad47f504c3a005b18b497716832d3f80c40e01f4c00bc6e3463f71d0198dd789bb84717a9e32afd0b55016f75f5d5d9b5ace9f72eda2c333ba47a6c6b08acf6ffed3e2f79bae32f2efb90a530e755eee3705880d1013f6083d1aab2d94a2f3ef3eb0eea11265098a3e9a367ad46768fa87ba6e92e2f4950b81133e6ae070cd9758ea1d89836baa1e693afb079a94107e43484892ca5d8e4035c509c8d5e2fdd24852dd5d60c4a8612010baf8e185241a25b129a9e5e1c54dc5aa140de4aa859fd8049c19b9e1cc493af2c851c30fc65f282bc8011d6d847dc3ca27ee47aadc502169c8ceab76b4850ff3500643403960aee3c4f8465e00a4933e6217a4123d45c48647a3b658e466b606a740bc0eaae5c2f8a7647f4287eee507817c879f90476007cb79c939a118110ea4df0eff511c592287a7b4ec9003a9843860f95b6e330cf49baef62e19dce5f28410f5d5db019a72d94db61ec5c0e817823bf12e15f3b151a81376534c08e7a866d45a9a720abf3adbf034886876280c9daf84080411a378869619d74bce42360b818447426a10ffd373e1d7922abc55cb685944a845618982ea404c5f1ffff8b41b3fbd741b2b3f757b47c5b170aa9992aeae1e09133c065771e6dc4ce2bfdf77f5e3ffba30717b37e22f79764da79fd566aa151d1d075d5368481498f94a102ce25a1bc616bbd31addb685b51fe47f831b3ccd6bf6f7ce9761002ba46f0c99910698082bb0bb0efe51694b3495f0a9d67843b45a30f85d6e8c59e9dd59ce2fa918a4371e577f94ac5fc5add26eb8e490abfb1789317c10376aea1e7d1503d363f26b838df804c1680f8c9035a340c790af678356e6382bd0a2b64dbaa651623749cb212ba79634665c5096e560041de91308f01d52ef5712e01fb4a0639151b4369a5c0d6cae4da7a78dc68a39f50b5909870a9e03fcb4c65a8303d5ce867328fc324a464eeb570e2fbb784bd53c6ff8c3b81ebc1096084370d882f8e74b0e999d9c15cd980c9387908eb3be72998e80b4da00dc107dba5b4554f468777d97f59b8cf375e059184c82237a8bf6463cd54abd27bf6d241760d8e5d83beeb5a2f4affd4b5d1f3a0e753189f0c74257104a6fd2d5b2e8faf1456b60c03723ad52e1fd72d63b6328547bc2f07a0ba418f9585863b478156ce98c1ff90eb7e4da4e49c13721d2f31fcc96a697ce1745cbb42684a2404b460b645c667ddc9befe99deec25f760969bab4f372479a155c180b4ac9f4bdcb214d3545bdf7b411f34bc71bdbc4296f93a721ed4c6f59d028a6cce3233ed743c37fb54faf3f1c73582d1b921865ac0c2214146a5ce5f7c71ae080634a0a98fd8dc70c86190b114b152280f059041edb51db450e5022697a06ca7a554e612a07545cc7a82bc1f37aebf9423c918cdf512d71da1d2c053ddc72318aee6706de861509d1f265dd3e807281408318f873d5bb74285e62568ec2051895c54f2c349c7c1162f033bbea90aa959d76a5fb7f594646dc98dbb0892021fcc1e5c9f07ced4503723f39e4ffcdb69177ed03490b6e2a1979ff0679c9d275e732b6cf7745a8b53479df66bb3b2b3591645378e5b8fcebfc419bae7c2631b574a8855a2ba9677f698f8ae391d13c700066c3c787c534d6bf05a4275d312f316641505769f0409e322bb8d98a078919ab467774a082803e91c10962c7e8b07691761090e6b89d6a164154573c457c84e31d8d02ed41e884430f58c42a37aa7f3d3af6861318afa40f858080e60c608df7444bbc82f81255c5e759058b7bd8b7de185ef1942b458b5bbb0cf4e5dea2faa630cc994790b50140b807511a5c74dc9cddda27648570bbaed2e7984fe511177d944997dbbec58d48dd29e9e74c0484121bb06db5215d40c46023ba8c32aa4250cf35a358110e2dc752dc7106186798cd37cf6af75c7a712bfe75f246dc758e7d5a26028d68ae244930fbb427c11fa2d5e79c0301d6019f6661fe4e090f9a97733f728d68b448f17a1df6d3b2797645b6167d10533f7a3fab779953b9aef8fad69d13c9f985b86e6d59a93466bce9e11c9d2454f8e597d918fee116400cf6eb04fac6166c1837781197a7e4fbd38a2e02f9f5aae18ed85d4a742623dc3d14832c5667ba6dcf8e4daf63482f6a9f5b93236060954f355830d577ed5e534fa03b3cc911b1ba7198f24d3af04882e025a665bef2aceadcae9d6aa10ef7c5bb5706f0dfcb652d06dd7ece546cb074d890c2ed3849610f28ed5d2b4958499863ef426c84fa86fdeb813ad16cefd7887ce34c9408acc4a30324fe34e3b043d2f54ac922380a38d44fd0387c5a992b62436bda887a0e0c8399ffeddfba6501b1ba3c6c8bd7c0e8c6110e5e96346f637edbe3c3b0fb8d9200f76bdf2c2efcaab5603d3afbf7c5529acbfde2755bf2e505c02eccf27fbaf4b3ca380d6bd6a4468342e17377b8165340d7c1b6693149d37d78f49ebd5c7c472bb5d09efa81a8123a4dbaf8053cefc0a30275ccc6936d8cd8695d1ec46f4cae52b66d9671dca12b1a804e8a900e8e7ea48a5a36b2180563688ebb9233ad5e924927990cff40b91bb2fdf05e5f436208399292f4b9df30df17d1899d21d61d373d11114a4c92d7a2fb6e1c96b76274f3bf63d34bb418537dfcb85179c738f7b51e3f56f613a120620a49f87bc230120927920af7f1e8b3910754c1076a63adeefff58cfd54ce210ad0060f1fd1f0cd3a735f4d4b1abad9c45c8e1169e8380a7cd8ef058c59bcd0d226d48d3a431083e84c3ee2ae2fde3b9b50ac25c49a896b2afa1e4f384a5807f617f65137f6261bf2be7b4d242948c8dd5e500b30fc28c1a34d233fad345baf0e1cb9f1faef4fe511cfabdba5dd5bffdfbb75cf2a72dfd67889afdc1743218fa29e8de4a6e10c7ec96b75f9a81e366332f758f7ce2689db8b3837af6376e45fb80b6358c8fa02605832e87979c8083af3fab3420dff95f306d1dabd1cd57807cb775a9053b01848771aaa6f2b83c1f41350ff9ff71972b3cbcd80ffedaaefa997fe01d959bf24d01d32f5dd89dee29e377c60e2ffe48221c3b0bc88d749ac858a599253d0305bba90857bd617586fb668d73a0329c6c9c0174ded1f0b300bd44e55368304b48e55daf6f54ac4f8df4c79b3715f18a72bc3980f7b072e6c443390b9b482f6342b0f16c42bbf7be7e51b1c797c3c64545c32c427b47733380f0168d3384e81d8d6602c23b1a6f563a3da15213c844ed139790f9a04edd0833eb804a70d06c86d0dea1d10ca07943e32c427a43b3d980f08ec66756e1232afa69c0d03f58513b6faa5870d2d6d2062b494c786a722ff35ae552c9043dc5ba2930c2ab250f625f381113059f6e0a6b54016aad414b6340c37d9a7253ff0ac574866baa03c90346580f6c30de631b714b0ed24cfd5ee2dda6f04e3b1ecc5dd5118f21e25e634182a83e9aac913dda1d8a7929ecbc2f76d15c77ec12f84902f49e186b0435b584d97bc2d140cd426a17087e60c40852ce078149ed93a502e4b293ae68221733b24d7170a32109b520c1f45d80fe2e599c72cefc0a551f7264da2ddb5417df90ac1d8240b6bcf9b9a12ed8b1fc7d9ed9471e69821b7d23ff13fdfdffa079cf88eedfe9b510cbbf14fb7fd22e24914e6b9ffe95aa4d753a84b89316b371640ea3dd2e3f515bf7ad36456b35a7392e36b34e2a9dbd8152e3b8443305aa3a5a32e4a0dc32fb547cac06c67475d35f58f937ba5ca6f9b863aaa372876e52aa3e79df2dda54a8a5cb4434fad6be04a3ba9b6653a17c21c124e797c20b4f6108dd6633f2ba6a29ee32eba6961d0b6c6a2f15033035fe1333463b959a4df912dcb72d093a30df367df3195ae9cc40d628b68999199b7b106fc8572520be34d3c9512cb796b435f34decf3c85461bb5f53091efdf5327c8a754d05a27803f2f186415d36d69456d52c1801cdab8b1bd5c7d2afd5373ab3b00ae0532a1d5afe3869cde3d5afa9ea03af11544df598ce4ea43879b357d823e76a093cae292de7c746df39ce089292934163a41662c10662c7ed33fd0d10b6e33e5426574c309ec5f3dcfe39da92a229d580f44efba299d7374fb8dffed7ef0c4bf4d4bda6ca3499d420cba42ef33ba199a31e81befda9ce424a95b29bbfb2cee4e95f0c6240492990fb934aa524f46b5b44f83ed4795f27d9cb6f53bac97e2951ac3e3152be5f3868310f1da3dc42db22c80ce5b891749a2e33efc33555ce937e765123c8a370c37b8e94cf48474ab089868dd8a34e64c013cd331385f0de511f0ab3f30ef9e5669edbca142aca44f4ed5d52f20c962590078c5568a4f557b22c946591de699bbcd55ca04dd5705e656348ee3f18da14326cbc09d7c1ab28dcb949d4ccc9d0a6e241aa2274757aac9cc3f5e87752914d850411be520319c91199a7f7b25a6776e8ecbb2e604d19846f6fa5155d9848b55177662aa12cc5369a20cbf8b75235156817ecb8e2f844f8a8d461c843c5e743c141894a6a2ac857a0f39751cac08ae6c08281b998545789eae5e0c0f2de3309ded48e354d2d2e8df7336503a3d5ce0d07fd3ebc209d5c8e0441b9c4d7e6d5fa73f4f5a003c92662d54c570c9a52c6adf9b7f88b1410c0318724170529f9e021d6ae573ec5fa544ea722f04c2127ca54691c68b14a4f5a9e22404453910be252883ab7fac30c0ac04f4db447b2d5c8fe615cdb6a2ab9a090de038aaa7c71ff17ce974cb538ca3a350f26a5ed3f72fa60ba93ed1a17a7830953fd726e8047f54c463191475b8439e26622db976ececf8826c088a5bbb9f6276a558545c0821f70aac1a4ad700fafb66b7e03a3dfacffb511e1d6393aa8396dedf3019df4b4fc7fcaf6c291c167d982b354b0338bb18cc21fba99eec774d3a0383e39724ce1a1548c7fe147dac8ab6b3a4df353dcffd46755cc311570ba59c63a401ed62df81868a902223cd6284ebcbe671d1c818d94ace7122d378bf4e0e77530364fc5ce73efbe74ec7be9c375a9e5879625434c32ed20b80a4b9234f831c794d09ce3310a17756e3e52feeb27744b8938d906e171b9f011181bf058031f173f40ba9616f8f48d53e8f1b5840ec3331f5c43c4e5c1af8830a4fc0be158fe6028b96b98ee6add26b50e14f8ea511bc9be76f327794d3195c0158ca993d480212877c8472f403690584d3195367f851eb583b7c169d9f210a22e759168ad890f072bf3efe2d07a53da43b4bb8090622ac48231b501c1dc785b178a519ab6e0e7f26b1fc5f4b0357fad0b465fcefcfd96498aa98274101bb077892941f7098f6c25449c261b370c89f4909812ea93da2d865fe7e3c91d9bc1a78acae835d16742727ad1f62a73e957c38c612aa27258faae5f6ade31d3870b3b86ebbf618a67b6a428b41d116c4f4f0ae9478af4fc617a43a08e025772dae8a1cd7a627893309539b25b9d1a66f7fb5c4554927c2f514adb7e0553388d0cdb914314eeef13058285a9359d9ca4b773ea5358e25333913664fd32482b178530256ea51b22eb33aecaefeb2ff711794cbc9120ab866b374ed45d94ca886d70c1184c4579f31f8a37a09a7c0a9e33766591440ea38c944cd4b04c28adcb30fdf208772764fadba206410378fd6b3a838b00e51ba0593b92a8cb7708b7b23bf6c46dfd9d9af2c4d4b7b887d8c0c24c6579a985e94973d94c27a05aba849c21b6ef2544aad1ffa28b9775ded3a3380c9df416136f30d6123b30aa2f9ac500cf7992b3206f900c1caa4c5e4c345c9e8d4b490e0d86e69a9a6ce3d0706bab30d62edfc5885398570d971411f2543de85202bd1152d69bb3b12f50e57c4ea04bc18aa75d297cac70a648869b2a4f45296ac46d05e2fb41d502a42773c27f99d1532b1abc8ac96c3c3a77b914112192f107533cf5fbbbd80c3a5885b9feceafb1a959c9c6d09f6fa263cb335e49331bc383e3525ab931a6f72281d7a440774df59f55f637e2d07898a3f3ab84e15284c0ab85d712fa9d1ddc596ff35b4ac7ad587b18d0d4e32d3c2f568dfaf1d25d8ef72e839cc6362c929fb491aad7e351b74253585d19deaede503118dd387cd14832d5bdb6693245ae55c64917b1397b9af26b5067166629d8a44cf9549f5b868dce88b9f1291a954cb104243ca9832983adc6df0c19c2cc2e3047c5eb8f853ba8787dbb87f6ee877ebf3ec0edefd5c883461578355f1c6fafb6429a54fc51f28ce18d5460298b7e9aa4aea4d4a5493d75c268e730384853649e548d24a9bd9a3bedbc40820ac2f84a9e17cb137c53665e5a69748d889ccd0bb7717367317c4038f6e71b591a5ca4493dc7dbcd3a3ff5d701b87606f104c24e2609d7deeeed86bc33e768b912806fa5494db485cdc23293a6591c9a8757a0065e589b56121a457cfe9be9d6f4ad4eb604635c8c463b099eb2579f0b8319959910bf39167c0bfe0391a4ba330efe67622b5551e69d2c3903156752dcc553aa8fc7d4a3094172981af1b448a713fb2f41ebdc7aad29d591546aebeb7271d4f8b0658896496d014a0a056068f8ab671620288c367f95f2f4c1f00967738aad3a110269811ea261ae2945be3709b2a4eb737f4a594ff0750a53c16b4a158fa18b480642facdf4fd1c21d5619d0334ef8ee861fa4f89bbd28ececfb2555e07a2b5aca03d2443ada64f542c3e4729c1e49def8fe7566270a0d52911014ab1dcb3f3af47a92ffb73fdc69f0faf33fd885ccd422e01a8ce56e17371a428a5d72c385a77eb50483b36f2b1628d3b1bd1c511a8380fc41978085bccfb7a73f0a328a55522502376b57c3908d38cab14a51e2e9c92d559473bbf2bcbebef82e0d2bc768a520fdfb8ac8f37bfda18294addf5e2d89c1cc4e6dd8a920872e733e8894e17fe1948c5eecaaca88b59a18b59b1ab77578326d44583b27c1e941bc3619817148879263c54b18c5068d142d52a9174d4284af16561e9eb35b070e3f1c441987e882ca4ae2c7a3c12a5d2e4545f0ab5073e949ab400d5e5a1543f59b957a2b79b1e11abbaf6162314bb82c1ee8b4aa25ee6a194266af7060a97cc1e4a796a6b5615b5ae3e94229ef1743c479312045afad743d573835a8ff0bd1b8bba63d39d67d24822a19e4f42abf793daa809f98ac25624d4ff19fcca52723a5911626b4f2ae1ed7005dc106cb4d40c05bfa7630a225571e421525ff1037cdace5f27ec499d6df3ef17bb3b86836f6e521fc4fb3a4ce686245d3a5fce80af4f0e87ceb7c7b7fdd92f63597aa5a8ec51aa7f2bf14a5159c2e9ca3d5fa964ffd0d30575a5d657307d703b86a4ad9370d3ea8347b2fa75492b7506179ff5445a1b2cc70089dcca5fe8caf9fcf33e272300a1f1eff9ac9a518d67cd7163cc961b26d555c48bd748f560d1d3c4fe1ca1d1941a632a98fe4e770b20e3eec8978de336a9d85da628042282f2897ce38ebea6543b82c5b2eda06fc61ba39c096907cda9c230148b4aa96d53bc7cfa6450372775c302cf7e036312be241705b16e999da0c287153adf480b4a3153ae6d3d90de4fdfea847b064059ac31b2187bbe8cbe630ab9e9bd16ba804e4abb7f84f3ba11968ef7c2b2322bcc48f814d93f60055777aa02358df86a3473844bda6ec8463e51878c4b98eccdeed6d68e5d3156bbd2ab812792688e1cc89f9e1f9543461c7e3684ae824d5450c18c02b5940e58edcfe5c892e435c6ed8f472dae60a26e0d5c249182076baeb5c4785dd0af45a783d9b41ba0a4e41bc41877b761f74bcf0f3a7b018efca9a13072a7eaee13e996d3b9b78f4528e7aaa7e253007dbd078b9e35a0b0a0676ffb7b8561901e9beec7595cdcea044b23310fe4230624f8d741268519da41e1146e8e35b2625e1d63658604e94582eb2f405cd7a26b7a733aeb1308c2a1021dc80aee90c8dba1f7fd3024a9189c9501eeb20827aa2e9a30caffa8a49f3e1dafa041bd2adf10b14c052b47f83140a84aef130b0c0ffbbaf0b5ed37ea425a10046208b0dda658fff85879a99a4410e65f43afff640da304be9baa09930f320cad44834ca73a509a2951f549c9febb6898d504542ab231e3e74dfabb7782d7304c29cad6422d9ff9c6c8e1b3f7c231addfc22059c4ab4800be92724dfbfb18da9c2d484c5ba6a459067cf728fabeddff83b76b4b1f90bc39886d1717730e83bdf911433e51d340738c46e6f768e177a339c8919992c9cc95cdac85453e76280ca12bf40ec8f4208dd1b81b67513102a92bee3fdc3820af9f368e9dc19b540ff685ed82f3e36410613507ed1d8851d0125638b8d3ceda440e4000eee4848294bf9dce2650edd191517ba5471c5d6fd4bb577b76a67dbc68478506e8f91d6a0ec392f57d1c00e1cfa25ec3229f3ac0e0974e88ef0751d3dae96760afc21afcb79c69718389d99da0ca460224ed647eab8e9bed344a21f8d2e104050432f941e5694a27cb089032bc7a753f1dc7c2c715bdf9f9665d34540260ea1a51d40b0257434485bdde463fba0a083da95ed8a934e2eaa0fbc817e756608751dd1369e8bf2c32c4ecb0a2e3309736eb5a7b9e74dca0276997fc4bca10d61bbfabb4c1cce94b2f5375eaee6112f9212b3cbde4ead419cda5d16765170408c79af9b356589d9e28600edac46841690914b23aa92bdc9a4afb94f57574635eb126d008ce7090d509626a76d3e0f8d500a0833ec10f728f414e56a8aad3b96a514e4ff5a133c1429a69bdea44bcd8ea2109aa0028377c808b8e205975faf32c8512db165827fc6f3be27a0ebba86b5d90a9b0cca2bbd6b8f9712552f67d0255fb832374d1c9a0eeb0530fae0ca5447410331be80d84638d670d91d0677243ddff273a65c16a3e493c9aeae591e7d9e606ff945193d8cce1212c97a187d1209f29cd2e86ca72ebc090e00d78e8a4ecdc9b6e3576fe926a0e938cdca204443a7e1fe4ec3e3f765b8766f0c6fd7fecf08a74f299ea62cd2dcdd00a791131e6be169dd4e58dc76b31f2c540738354669fd673a0998e0b02a2825826938344b2d1fce07c0c12df39172e5865b9d43a5de331dfd0093ce9809d975869376e1baa27ecc8fc5c3c6bc1fe053d34739329ad6a22b796711f9f81f8b7ee1bb6474327f17c190edabbec5905c8f18abb0165e11b3a6d615eb8d4251acb3bca75a0aa16d01dffa388890d50228bb7d029a1f68bc12c684bf720f09e14eb4aef3259c903b998110211b9dc69ebfa4b967f6725054ee9b6afb606c871556213277730f7ef611c06b57fe40c3e0c62d4c2cb17621a6cb255795c1602d2217da94527a04b8dcacce1ef825b0fb8843f8e9d8374d169d096840ac0095c20587c2c0df4e73b00dd2ea166e044beab6d93d1eae6705fbb764a500ad1897489cd2ceb68e81491dd130fc9aac787dd9912ab17068f4a6e63576ace738d7f32dcbd47c50608e5846fba664111649968547452809ecc1bba376c7260b13ac247081a0d99689a218c34f6e98ecce8f5a7808a46e34169098b3872a569a4fae42e486d828e50900a3eb19249d45ae8c5ee3789bfda1b2b9c9609c88ec28c6db5578fe4b261214f373a4036dc7fe80061274192ea49c19cc07d246ea400c44515406d06a505e0e524d3d3baa9e0574e3abc3a44b56588ccf9c83c46534f84db9373293bc5ab38e5e5ee1995e22baf46f5a5714f378e83deda48aa0d528a30eb48f64109d8c88de4fd2737c04b89de02dbb5f5d27dd92179a24e935d40e65474e4d4640028ada2aab1476e15638bad0cb24330c1591c3f00e6c48b0d45c5efd231c9b6ef167bb87367ca8f4aa798958c9238390a548f8d3621182602c6d44a5d38e4ca9c822f27e2562b34042d170ecd70b65b8f3aebed2829fd833f6a1349b092abe57d9fd917ba9cb0ad5a262fd1e2b8a104456c4eb74b73293dfb35676c378456051fb332739d4930b4b3d6a5f130d7a626527cf10141ee3832cfcb44b91259d238101544414f56123add2caf0ec474694a8451fe497a7a38f28b0f4cb1767e35cc900c7b9803ca469351e9e9df3b8bd702df909e253450d3e97b370a9cde3ee1cd895e66a578d7e3340429b0b92db3262f4ee9bb9963722c1896aac58b0dcd42d99326179ae965c74970c78a2de735d614eb9d83eb95e384c409e9f351c6cfa6c3d9f515ccd509cfc935a5ef7aa2515a39bccce9c9450024842afc2530b0b9e96acc056935e5113ac2ee948a89c630e9b513b4a3e628706a9d3575780c4ec2f402c1fe60fffdda31ea36d97ed31a20a8def139affd4d157d9c04d86802b73c959f838e53127ee0d6ef90f9e0b55fbee2a16703af7fc4b115cc74bd7ea697e7a78d5d9c04cf33e3425e34a48f842b14675679c75603434ee1f066483ee14fa48b7b7a36251d277b14a82498bcd31dc3a95d95cd02f28ebc0ea7d11cc46a1c0ede9f3b94003f0ec2b7758fe2604e834159bf41a37ee071df20035210d073b4c7b2847d4e75fc18acd2318424d1f421784d8f8058fe2f27ff4a385fca89c999fb372e96699f87c50309936eb39abdcf827c934c07f5b997243a5251baa1f773b5667a1a65b77e0b485eb8991109cce4e42586664f4e4ef6fe3f18004c5dde5a81608172b957917c79cea61572c22e8785a23d90ac5a2c4c2d91959b92af1b77470e9012d9a3e86f0ec795637a9b67ccba37011a1f3f8ad37d81d976d6c99cb8d2076853949e3d7b3cf4ad9a6271c86e7aa7fd3b7b56257c24ef1ee5109d6f01871cd479821a046d0aa0572c98eed0c700490310ee508107020494f11405e0b749324570680a377c8f8909334b0c33b8a7c6c2eda90b054e64ccc875300a4d06b4bf30d49da85e825315829716dad0ffba0714ba5710d5ede360bc183eea4eb58a197a67e9a7aaa9e42d68825bb8fcb4d2f6f178fd64e19e891e154e9fe9cbce636306e3245131b3ec99dfb0406754fa69ac2db8960d42c3d4996fe5b18a026b138f973a7262c6f3bad3f626f60458728de55de9248aa1df143656c23a35a4e1ae9a82cbac5e11180a7a7747c31e55bb596a881246c7b6c7cb806791464fc5227984405ea10a625fb3505dcca08bce12f7454394eea78d924d952c68f6cfddac43683ad4b3fa80f7f25e0d175d3ab73448acd1d8fa3d720a1d5d8ff446b98d8d1ed3ff0d32fbbaebe2c6c7593246d84a9a2b1d1122ffad11d6912f15f9e1f1a01e7c4bed0398aae9910665d23eac8f101206e7c7ea3b14d15241053fe4b1fa36d8580351390305813dd2ced9abba1b5aa2519c63fc737604e703456e1d7363fcf8417759a28a4f801c671e0c9861411901fc5bdf874fcc1c09ae414e50ee63684937d42f8ff811c4b41f7ef000c51e3c433c1041b01c4cf7cf9c125f865b8fe09bb08c45f78b4d67d0d052ac5f83812b9375cedce1828076ae6138284af690151aa770b9524f5f911bbca1258fc43da8287752d3b960b0ab7aae538401b822412533ec0d2bb7ec30f07c2309f9f791b5ba0ed860e12219292d6ce9398d604e026849ebe85fb45a1b5c656672f87ca0b314a812d1d1dfa9bbbcbff3735bebfc046709477abcc3ee1b6ba7051f72abf04ef42cadf06aaf7683fa0d6503912b1769304758321b49db15464b0d197612943b90dc5240f098436b9dfbf8a34fbf2dd67630ced26220e909d7912864f088ed08906dd18d9a25fce3dcfbda38e797b6cf98d7cc1c280f7e9ded2ac0a3c6aae26e9156ba557ab440ed26a02ed6a7bb2a6f7b3b12b3c4849fd47b9a0a29fd5aef7a593294ec89c85a77982c99a2c7dd2ccfc659da53797da099e03de0bbb01a9c3f2cc774d859fa4efaa54a225bde754d88c5241bb4be59a2c47a94d1d5ac252853eaafd3831ca84c46b89aaa078f1e1263a4b892a13d7c0750a43255160f7963089c5b87588be14a428a7c8cdbef6f21d9128ada688686ff5ed87e041a94fb3a660a8b2388f29117b3ce0d50d4c059d4ab70a7bfac7b4ef6c158ec79a4a042c461965221172179a526230a82418fd9ed49f0c52f6241ce7223891c3dfd65aaa03e02465146eaf4ce8774582881f29d2f58f056a65b304dec470b90105697de9c39836140e2659590a5f4f4845f8bb7a442faff3eea33bbfceb12c3c45d4cc5163ab04a31f448b45d54e00d0bd9eb3a6f6d47b62ba5137a4606b33fd61679a05bc8ba52c2913509a804fe81a13eacae2cd5ab1949e8bf7c259b8e1ecdf085c61e0a5ddc2b54e9f6a21f536344f65e9837d3ca0e775232caca5ee9f94a6f7218e5e49d9438774301661fb6951860c1c51269dab218839fe61d50a99abfe3ef1127254442d54c39d948886bf7afe64c9ae6731dcbfd69a7fb4ea9f1eab0d17486ac7e6526920f9d881b704af96779000102382552ce03d11cec235dca672a2be96fa7ed126703402deaa17b66c7ed40771586f1a9a6c2408e60b51f2683e3b5b2b0769c0be6054bb2486e4a05d71d6d822faff9c007015780a76d07a4bfd0c440d93f041d021ed5774451f98b17b0f7f77019f9a6f3ce5f5ffc19301c07f2bbdb2eeef8553c076e331f5e2bcccb804e80dd7e9eedb96cd0aad58d1087e2b751c5aa7fd32531dc7fc3d5e4490c1c327094adb2e66ffd51d1c17c2e65c353518d5255ced46f282d8c9c8d3cd930594215f379c453a3905499f964c3dff90439bcf40f4fdd08d42e2fb2a12dbe4d6af074b40498c8cf396a5852468e61016901613cc307b284b7ac8ce7927ee68cdbd17f6ca82dcc33771399b0f922be2af6588d43979534e88d0fd556ab020f3ae218c228f8e8a059d0f99183e29ee41a70767a270e100ca642012c788d8f82c17e2200cc81190add47aa2efdbbf32c7727c15d2e3ed5128b1c3355dd38c5a3a1c8983845ab7ef12162d9f3fa6302b41b6cd331fd17a3e90940340e2cea70f35f7e0588aa0e56dc136a9dfc975b67223044ef39d26f7754c525d65e72d7aee133f77ff356061a05e705f705b42eba535a9caea0988a3ed8a6054d1d6573b39e2c4020e389ca0d57ff51354658c10a28cd85cea9089a5ff2af14327dbbde1ecc2f7ac74863f4c4190a23b4f2eb5352a85a7113d7eefad4c4cac8a3fa28770929c36eabfe71ea6fa60e1e41733f3bf086a51345c07961b0be4b8b79ddf760fa559fb80f3f3371d73f1798e1228ff5a9e5d929cceb408b11439a6f485048dc18a4b913efa2526e48d2aa9f1aacdba5f36bf731fcc1574f894aa59adfa42fdb9126d963305aeb3587dd5a2e0ae9e28ea02c31e937f4d9c2a889a18540880c0cc9d8ebbaba8cedd78ee183230e4ca33db2f1d569de82b335b226615f26d42d8b1082bd8913024dbb95abcca8ffcd6f454db7a51531c7a16540bba3dfd6ef1af3bb2c28fed35bfc9d7dc78f6483c3647dc906f1ded859c8b870277c99d04215696042a7f7511155183244e180815a152c55591784615e487a8ca89f6568c8c77024ae81bc4009bbe4eba6d98777994fe24ffec4c6cd5ca6de4eb37fd136fcc3d9dfd9f998f1fdc01ad085125299c0d263fab8fccc2707807961a103982b15a83658c898689e726f7b034d773fa09186e6f59a8767dc0248cf88f6cd1dfb4d7d56fb57872f2355dfa137a25bb13fdc76dbda451cc74a420e04f37ca245d262a016515ac1d68d6907b7239ffd5dc15e88800b7f8c62bb92feca063a28c9f3b0c303c4dcce63b604b070f810ea050ab861f1cc9e49ef8016967274947e16f28ebcb31ff696d6dfbd82b1dca463c80c9bc081195fc120065399ec15dca699e0e66281e84ebd068ebbe9bef938a1e1f93bb76eb833a5a65282dbaea1feeeada0033e809b85c0f3944bcb2e4bfd0a4c02b719604e8c03e4514c2ef977e43203b982f267612aac5f0d08e5477c9c296e0bef7c68591343eaaa0b17f918ccbc32186aa4ec0ddc6583c3cb243e22d5030b877ccc819b8c60c435543c5a2e773e79de5c7128c48a2b98c84d2c149e1a38f571635d2f201431be99c4c8914a4e94070a8894addde1a400aca0123a70b6d1c179d0eb7c70a5e73fb90a24c1123f169d2994515cd3bc5e9d2b4c4d870dcbf570041f8e315979798aac2b3a129ce2307aa3efb54f19a81d275c39b3e37b1a4cd67bde18c357afafbd9efc69083e205e6a18ec0a21458893e3fd7949d005bfcc56c63e7bb5cab5f9e87a10c33c95ffc31394805bbf841b764e6d24f54e12ca88e050f5203a9c049bd08dc54e2d0c4e29a7c58e0564cce6c8bde94afab70e1bcc262ebbcf9d0341b8c9a59673841c53756be52147b99b23b433454b4e5802091247a1cdb19ad62e780a587a51028fd1cad20610321d9faec269998319d240dd6360716af7e84807b094475e318032699f7784c68f717083bcb342b244881abb299931dd657bcacaa4d1cbdafd206dbe82f2f86ec69db91b5d720f6104e0657b01fb8ac67033d2ebc5b0ad980909a8d37fb163e94e8ab92e9df1b6c72021023aaa2211cd4723ba74cd88894308e7ab31cea97902306b2c9773921055993bb35fb40b51182e24b16f318a1bacba7a1eea80ca08bd0afb4dbf28179ac5726f25f4f2daf462cb8b9554e41e6800b7fda288d0f272422fe53a5394607cde130eefc3b5bc913fbedd8a19288d186055a14f27ce9e2806156eeec0192fec0b1cc4679ebb8413768363161618f68abfcf41c2a0cfb752d2cfd58832e3c4fabd736e45477b5c0ad7e0adfebe8ddd66970963985e2b70273db3345111d26d25c42fa96dd14f25a70ac6d841f0a8661d272bcb2e56842459708a9c8cf356eecded67dc834cb975a7d88bda9fdfcea92c082d8042899a0678ea3400be6f3e1cbb4f56b9343b8c10e8e08084c7aeee6b85edba7c979519c285b84fcb6178fdc447ce6977fdb02f6d74fd7b901b9486683f4a4cb942ebbcc8450aa1e8a3e13e5ba21fb55307867a16e55cd8e9048dfbb2b88295f0248248b7127d7054c9641106f66cd5b57c8119e65fbf21e5610b89c4198d43b7a333d919077e40d2eeff1c114ac4ef5024fa4b2f66f40eab0e25c29c325ca088c09a2ac37020c91ed2567a329c87aa89e2643dc1babc6c6288936e2e8a9d771ff2b32ec4c42f77ef5e56552f6cf42fa0f535afdc6d9bf5f9e988d5c33103d8fe01cfb72b75941f9ad03aa2b1bbe44d99b74e8020e3ede2e5595e9cf71c659150595694cf2302850de7b2dec7a388fac894b47afa3042c37ae889f3b96159694f3a26e118eb2e21d4a51d49a2d0d1acc2c66a9d021108040862c7dcb2703e6cb2fba336719035e6f77e4e6ee2713306e01f9f73d617289652751cbe96b5fda464e550d216b53cd56d6d281144732afeb065a8270eda0b5fc8b4314c7f10437b3da17146179b87281b48314105a4fed5a770b29a2fad0dc7339bfddae207c7d0127f7bda984580b2fbd85fa52a0934cb38e756ac59978d555871b203d2b615943af30d2fee7ad1cec85439fb463f7d77a92912f635443d1df5d5bab30a68903fe59901231ef3ff52e8b8664a0ac54f7cef7e824caa84e894358e1fa279568fdaadc96fda92c3b3a665252896a0775b533b2c8b3ccff1271db6382c5edb779bdf6d65e224090d7c82015481762083374f78d3c28be07d79144a2f2da238f78ce4cbd4b83ddcd2606cda8023a1698d3b67941392429a788288b454c930289a2a3d19478743164b5556164e742b59e3eed66f8349a8e106d3471867a2a09d93639eccdd06c6846e0364c56d900b8eb245b942b70d766c641f0ff419e38bb26982cf426340f5a55bea213fd2b7c01daed804971b4351d8f677f1d8268385e161c776f3ef74f03f80f3fb44ab9dc64b6350644ffe30971e1b72b03b1fae444df8f253f3466cea37537ecafafdeb7dadec3af379c0aef8d6184420599a91155cc2fd122f5ebda7606b920016ca0e577113da5cf15918bcd00d86be13d37d47938edbdcc0d29c03b9485eb1a6f354c11f7b1c59b2bbd7313e330cdaf7f9b580709b7e17bea2d03c01c63d21e3bbb293471a9736e0985697b494b27eda08f1262a10436f5a1d431bc24d74194e31efaaa171adca49fcf184b19cf1b07d73404d4688763ebabbc7ec492716a487ec286a6def090e05c43a4ce20e15604e82def29daef9dda04587e4f11becbf06562d7ecc2cd784c05afdb6ea61d6bd9f3ed4476bcb0e12f7e37f15d92491f57aab6dc1236101219bcfd11100dfd5b4a0cdca418b1c4e820c86f3f0525cc63a6c97309e8cc5fda5dd9d2b87575e841a6a6ece34078561d76944b7ebd322deeff1e42fe382609494c6b04eafb16cbd29e6db3843254b6327af4ff5b6c08cd8b04f78bd31b53395091a6832e90d64547918a6ef4714ef96e47801a33b3735eed60e23da5c077c91d8c526313c2c368080f76520e10d1ea1b7942b81de8fd49fe89a37b36fcbe0fd6a1090e7a911ab87812a8bb843e7132c017d4e024b738701e9b47224d9c907397d1c01a7be9715822a6e1ebb366084885f7b5387a4619bd36fae8bc3f4ec96e8a231cf2b14ca152c30095f70c33c8bc284aa42eee302251f54b6e8af11293b2529f4786deb686a684d3658e5f37547455aa5f47d87a8c5a316e872cbc8fa4f4ddbd0f9a06a551184f7a7c963f29cd602145fdd06f6320db63f3ea35f6ba7ae343a8ad37549bee0372e02af0c7a2b19eba80d895d8292589104c3038cf8d5a41e99fa0fc22e34fe4446fecd81d149191bd985ca3e093ed285ba1853cf2056c1a71074feade89f1328ecf6370a22dd1ee610b3ec4aeb0ee7a0742dc0bc1a90f7160825d6652bd41963896863ee7f01d8e49c1585b1f5751983081505a86571c8d446a4c1774e6dbe27fff10cd64eaf9cc7e7ad8c5c18ba95b555fce64e495666acd04d7e8d1189912c5247c8a80e1a2bf0915301ec79fb8aa696d0221dfd3b391e372a261f8f51535256464164ebe09ad83f5a61979c87d7500a38e03fe0f3aae20c0764f181b5cf87f45ef22fd724561a41d0c5264bb9da2f2b7ec69a3b089055556772509cfe8e6b0555b58199136c71ec8374a016d762c4a4db565f7a6219a96482f08bdde3bf48fd2d24df96de0f2135ec18cc32b4918a190cfaefff1b6410d38a7f5c3ca96a94320a77892c234654ed07046194bb946382052f20fe1f4a409a5eac48d1a29aef92cd9b536e191c7dc1511ac0fbcd65d79e9f724c81043a8c22f3fccf13ad6791d6be36352c6e799ec4d8b2eb696a0bc67b43374a64af642a20ce7a4058e1c2e6aef695d9b6d27b1b6ed3c9a1e77809f901250827be13e3cf37e83e57ba5f02843ca0e6d8846124dd309fd43dde8fd82c01220b75a744972216930fd20ebb11d2b06c4b33d9584bf6b0c2d58c02daf0729f5b024ab8a77b70dd59c7f58e35faa0a8f7aa901450cc0b19e1252b164c0a28c26d4aedf94d7930c8e5b14737f5aa4a11a3040de862a4f20e6263e07ead2ee06dfd40eea0fabdfa9fc32bd7d01739a0673e12ccf7ed29de9af256d7e7f1924db1858cd22c68ab408b402164f48474cb6f39201b4a5e90511a0596e8822710c838f030d13634458ce0a089b8d612a70c47a858d1a2b500ba14f83182f62b50b020c15dfccae5630c315c336c4e5a937d714b60e30fd9a536ec8f6a6e92f4104d7392c5477d698efc5094e1436641198cb02bdf1590516a504685f7e3de73b0cf2f7a385c638b16b7ac413e797d1628de95ff3ec4d667e405597707c4ca69e8a53ba3d6a08827d155a6d7d6d8225332687fe82923784e8eea59466f43db9382f5c24afcf6b07c6bfc0ee2a453441ef3b10ed625d104ac9688f435a45415f14b9287980de72b5cef83978e4929ac23ef6fdd6f088e18db2108b83bd4ede864100ecabe985161774fdd1679d63a70909b7b6f6391a53b53e6b273611d51ff2c0f6923911424a58b37749ebbab72f7d9810ce6c77ff41605b084d617a5d5fd444d9b966ce3d7b1b1ea358aa12c3fce09ee20c528f2081b2b035b7967636c9515b1cf6f3164f4c4169a66c57dff184d03e6cc311fc71b248e9eec1815a181f615a0847bc6a1cde22b5e08ce6a139c4ead581ffd460e0b585aa7ff125055a314056c95b3df62f8e0ee3a6fb46322c1c01f74b94077e55483bbcf4a30b4d0577639d296778a3319b1255ed05f2395a5932a9993253390a92fc14c0b5269759e098f73af9a770b5ea1696f2a12cb3820870958c66e8d37f7a4fc05c73e1238230cd79ecc8b8f10a5a83133faa49aba4e4943025db033cfcbb5768e4153fe4d5e3f9a046ae8baeda6c161ea2d0444c1894ee6667591d8019596df292a04b2b8a7e8180c1fd993ecbe97290e3572b1fe868ec1d80a1235ffb861d229a5bf06d9efad424ab4d76d6616a7fd18b023901cab040f0769294018bcfb7526f0733d644f921ba0672e870f47695892d314fbe14245be1e0b52927f08e22d5490dae16e1aac2a76092881ae5e1610e5f098ab4b6b370d7d1700123ffe7e001bb6f8dddb7c95708f542441473662dc10f7c6bb00f7a314734a43ce4c2970285c87a894d40ef79739ab002d5f3a9b0237f613d30a36125667b86734e269cee11c815a3162d67b32b2c9ffc1d7a406e1f3dea4ed49344a7f48b6a08d15aceeca747ff799670a670ae96afc2fce772e15d46a96272324b1671d8bf91b86258df8c6aeb51e0545edc576de46283872e61c7e2aee9a71d393857065193f33a95accc5a25a5171541b98e64481f63e6c79fa08a0f5cf96f7abaaae7354c4ec115667d4c4a6e8e874ee15399cbf8e621ac79a930b36ee818dea35ab8142a1c8c907abbcd733cb85eaeed8eec152f9acc6ac108ea179a627e665b8aafff828dd2beb63f442b70260d6762b9023ff3f0a25f4145b8fd020cd2739a55603b5324b37d5c169e049d56ab0d2775d1e662bef8c1df5ab698b81df54cb2f2e3f4f8c1e00e388703d240d10d7df6c9db77a480458bff23cb6a299bbf4fdf4d5fbbdfa5eb61e695f7defbd1dffea93cc5f58515ef18b82e909201bc343209b36d7ebd1146fa346bfd7debeab45737ab31f5cd25402574d15e73efa57ef278872b38b41ef6f3354d04e531964d45330721b06da74fed55efcabe6fb7363421086b37c7e40eba6e57636a920ad2f170d10b3ec3f490993942a23f80938932e2f0b790436c28df0c9e4e509e3dc3d1569a76ed6b6e7bdcfcfc89c2c3cc92eabbd65dd462c9445aff7498c19bb62b82a87dbe42f549571639713a08839660bc0b87c2ad965b7c06320c925f0bba3e60186a96a8cdd94ee84a7c21edc36ca3ea646423a427a83b69163518fb0ec8ac1e832661b3eba82f80ce2be5cf9bb98958766f7b99db1c40c219a98adae5132fa2e2c6de9ef7159a33867df4beaafe8b151813e1146c4066d3b47602ca48049252b9799216d5adf2c92619f238b6ea3bedf6fa277806e18f286c6df4250cedb81c7a5c1945d34423cd3929845fa48dcaba4de373cc090eb723892d86b278711f15bd74a45ff868c2676812473e6413a848a6ef671b6589d78d4557d26b30d5172f5235b31b197a04cc98e43913aaba891ea4cdaeceaa679e08328cd47e6bfd0fe6e3523dc77a0f46ea5ce99aafed9a5303e43ce0b8cf7020b7b508bb97a01107aa96752eb8e9827bf6f7760c04dde9d255288f3f1957bd9ddbec10fc01defbe2ee76496011f8892fb63504f2edd70e17449b6ea896a4a9fa20d470c49649d43fcc807877bd57d816d3e6040e2116606b9008f090443b411ef2640e8d80c867df2bdc4089ba31780590304d4a3def7b76bbec1d8d524711326ea18395b302c091273ca7aadfa435b7db386fbac1be45ca7f4561b9412ec12d9d1c2dc1fcfd570568a18f3f0cfa2a6c208c2732d0eab27c4af1681fed66ec8e41158c1bc3b62b3feab9c1612994ad0dbf49ac2df92eee856734756f6f555a7134a7fb384f884996a5aaadbbf818af3687d7c689014db131280933632779ba9beb5c575613a10e01f46e5f83e28142402b57e0f68a340e062f6dbc533ae6ccd5587078e416f9c4d163ad0d3686cb8fd3f345beea5e8bc9cebc95ecd551ad964abfd57697f1848244a289405240171513cb61d01f8f0070f6f4d4f2749aa11b640345f4a75dc54741be1240fdb13da1ae3c4bed9467c1fc48fcf74e1b5b639219ca9cc07e1ad9acc2b8793f9ca87370103018d04b9cf2a07b3bff828fa7783193634b46680d50c4d3887f4297b7443eb04e61bc76629a58a9a90fc9a7a16324ae3cafb7607d324477334a5f7439460dbfd831254fd55e3d7b7721ba46c09c1881a4ef46e06bf5f45ab09524c2cfc0b968c958b9ae8c4213a84578cfc11c9a8c17efbc27fc397ab1290eb5ac78d85b1cb9c15092feca45268c8724237620298d59853a698c233bfe874aaf31d41222cf37c257b175198084016109040d9744d97075d8b315548546ca2b103dd71554d95aac31c958c834fe27e210fb7a8c8cdd814b28b6390a55dd2ce64906efe41531586194daa1e38fcf8d58085efc8ba65645c9847cfd8616ca7c71afc2a9dcb02cf75c5176afca8da34478b7b43530c35d81567ea476fafdafbaf0f745a6047e4c03d028b24da1bc2635ff6d77c6c44c3024b7ede834761acda1ee1bfb017978856f4cc42349ebb0cb491672610cd26e177bab4ffad966ed44bcedce25979dd3e56df20eac31f3f10c4c796631a45f5871f5699fd0156f4eb4d20f2fd539fb24ff286534fe4f5de70c6596a2059dc8d5569110310f93ca8ad3944d6684a4e57fec1285667a580744472a03dc0d1fa76d2b858853e8c864920eae6ce48072914dbde088a3a60115c114ac6cdd9c9c9d9d337b1ea68f0b15b8054fdd21ec345943990a95a5535a9485035001634f01ccd1eabd9fbc564cab4292c372ed2314961ace783f65462e490bf28395d80090b8993db73a0f88e6f21aa5fecda02706b208209460f0219911ef847e2c800341af62684782fe5402d5aee078644f8e41e866e6b45abdbdd52df34ef903a98008bdccca8c8fcfc79bc4cfcb45aa15e74d220e8fc6e512493be095b67335c707d5cdcfd84f88f0499fd0aff8c3799b2e1b9b3f30c259411143b2112b4d2c59d08ba9c9e9e9f3ab7ccc09a22f7111e872b035a7399e66d6550906b73ea7924bdc0b1f86b37f5eaaefa10594014f17eaf29a1fb686aaf2173b4760d05f3a69a47306398ff6b30678eb949024a91e14ccf734cfbfb5a141c220e85640949d8deec737e7f5ef58a57bc6bf44f0db5cd75d3b852b1d963e25b0b732cc6df1ae387631cb722964531c743b4d84229e67a7133a9539c947748ca19be2b40a86e9f454ef53183ae61bedafd42b160fbf0faeb36979bc4f5b9118c8bec1da8b03061144a6e089cfe747012ff36c1b118c235d6660bd3b14d2d8c0317c1c496d34b69bc06f568b6bc4f3c7d620074749d67a6c54c4731b95c4b04bcfcd64499616f6abd751b38c41b2b8ecaa88f0bec6ac5499034dcffb46a61552fef3e2674001a67d12f3ba5e7fc61979d8749fa61787cf571b210da0bb653ecb4582a68d2dfbbb29713c7a55d3a0ff7b0966e7c23b7d2cf45de9d09ba8e414be38c840c462284aac69eb3093d6758734b6761821d7631406100c3c38785746fc7931964004329836987756d4931fee6ac90613d1cf39255c9a24ad75955fd164f7c08b28417c49f5c8340a33410c1af19fd622de1523b8842b0d9e3b7fbc11629d8e9c832d51697b6cf878d0decc78f8e2927a644b384e5520363fce660fac92dfe9d53ad7646a4573b9d5d20d3d3cd7dfd7ee7f6a830bf8f0fec94fed110521ed2d15c612a1e1c3ef40c078709c7c3c88dd1eb8a6569f6b136aaf5db7c54746d3b74e4766e10887463343261bb38444ec814edbf9d0e6cda9f73cf438e54843ce17f9030ab3483ffb2ca500a1fc78f4d67430a52f6f06ccd0725f7ca97c79140aa2682440f5bf8635ead482665ea2cf0805048d5d528a8f0da3309c993f1431090b6f0cf29bc54ea73e1143eaa44b06d9b42f479a4ea3da168a2d0e0dd2daab03219aebbd28053c6e140bc54eaca268e583b7ae53e8b0231748ab960d915307e228a3891ab49086eb2c177fe7150cf2c803d72e1190df013cc4f40cb8c4dfed0b10a8f8d067df10a7c5da4b1099f717725884ff79ec686a9845a9fbea3452a53c47a5a55f498f6b154430668a74a57f193d6c1bbbed4451c6bf93e242428817b8ec8afb654b94119de49abfac885e4b40e38e53af27e1361e2f3c407038f9fd100bac873dd33a7e1bbb7f1e6e13afbcc51edaa42781fc028e26998b9a8bfefe5cab4c884429d67027ea1072292f343cb139d8b65830c77002a3ea8961daf350f5de09cce82774c496ae1952f46157007ca691403078ace5516845df6b7da3033782f2190f56dc7201578ae0c55e1c5b8103792d2bb8ab1176e1983ee0247d85c846d47c0e0d750752629af65b72932f0b2b46f807b4bcd7b6b9f688e05678b4ca44225d3bba4a98e8b42bc2a814a4bf46be62fa397db3fe844a90af0a75e643d68606d82591bd246b301118fc003d26fa55b162ada0b5a15292d71d81f8697352dd534ec6fea340378c039722b9c6006077b86b403b6b3a3c599a692e9eb021e1d9f7850ac7605d8efe21a1961389d1c1d16a2ec9831ea5e19061e706c215736fb8ac931b11a65bf26a9acba0db26d02386bee3ea0c7d15833370561ead026cb1c6929767f2284c6091b002434561542177bdb48be1c676f066af4c7aee638ef9626fa256bd667d6caba5f69c5c7424d47ce8fbd4ef8a5b851dc5a0902a05df43aa09d71d6b46790e1cfa7594dc5742f1503769c672341d965cc83d084f9a39094cf01da387a9d2db2dc183dfb70d4a55212e68c9b4801a86c3349380a04515186e11658799a5561aca36c01e4fa00b8dbd47e77ce47d03f3938e2c088228ab666e9357229f925ebfad97b94ce4f162107b3ac08fd7f4f615175f936ad08fe8f93b44d640f024a1c589dabdf8bebbefe46c0e3193d9150e1f3cf3a2fd7a06cacbbdfbff910cecdb891065d34eaaa715f45977461bd51c53f84770787954cee5e8b9fd7b2f632c8a75220407b75ec71f3691725eaa48bcac654a28a3213ea4b992f47a6529f8d98eaa1e9116b3fa858605f8c8b8cb970c37588b905d444c6c3820568d499c2606ff4847de1f6055cc3ca91fccb0a73c3dccf1ffb4a8161eea70fdd0a02c1d84f1ffb6a2dbcfeb8c9076ed154ecba79158a0744195e42e8f80a9dced986baecdb5c7439d8865f8408a57dbdf4decbe47985384e89c200977ea3473dbcdd83600fc83de97faec4ea67cd8aff80cfb2c86dd081e2d57d0105514c1f70d0eb0d7ecedc2b5d4b00c305ac0c066a999c9d26e2d8667e9fbb8a54e47971618abb58f7b32e26d87b2cf89b8b7399c88501a1d32a1c364ec7134fba0dcc99e507f51f27b66ee710fa9ddd4198ace80da929fd7469b9ae951cd9594baf1899f23abd8ab8edba1b2a9d4c3262516a3670ca2afc62e8989df86100f79416ebc44000133ef7f1a44ab07dc8c17b09cb243235c180cee30fb124b11b1d17762d1a59fbf7c860feb3575f2829db3aebd90be16cc5f4012a2d75017270d33e8024a4d6d36207b7304d3b3835f29ee497ffb5c994692ab9fc22116e987ea704291e30493d3c662b506cab3cd6787c86d19fca2bc02d1a14565f85641f4d9404e343e35ee416749e90c18b69a689a82528fcd45598bed1ac56edf9efdfda8b36d0e50b54e3070363ac16b770f70647f343944caef8b4de234ad86b1631162aab1f2ef54418ae2ac3314618993a2937538e5c538efca61c29a71c69a71c594f39d24f39f2a0a2f1f05252fc39c198c2e11fea5cc04cee2c511349d71167c5c243ee17f85ef870cc15c5f2abcda103958ecaa59deb549d3c26d168908b354081603a519843a595e6ceab1bb73286340f860f11be55b7457b965b1c56d2b24337d7b2bcdcb6b3d212097d336c14584776fb8a1b7d2c664e8daf78d3fa488fabe79e1a1fdfdf30f03629bb580c498b5bd1f1c7664a9e603527912fb8443fc433b85d0c2ecea1fc81c356fd6dc72e7bf67bfa4f87c4582b3787bf6ae6ea85d7b57a44a0b12dbf3674b6c2d7f2e7f14e7f24a83f4db1e60be9a74e9c0215369a31c36d5292c06950960421794914a1f6e5f505731b177193b3da1866469f4f874b80b19c99ba8d1f4c748a877138c75fe24316bb4e37b756c5a04003d50bb9b6ea8eb7e2f02fcaddf8a555288c5abf79117954c6808009ad84b5fe4a79ec0b220e97610b8341a5a937380ff375a4b225a7311ef53587a8e95b2ec821c4b0c1f04dfda6ef82002ba0bc15a0ca9ba1cff170ba44258169834a231db0a4e4f2f1c0d604882a7992437b01034bf5ac456db10146ae0568d9437ead7067ad06f7c40e0427324cf1ef40f20fd3dcf8ce217c616ee26eb0fa5a6e7f6a201f941b3933841ec94d9c2bd91fe466bf250d36777c382d10d452fe655150d9e4409d1538007c7abfe7d5c8ecacc36024e4669c82f2b2a29049b6f42e18ac3904e78392b390d34e94688692ac605162a57cb3f0faa1725ece13709fbbe0d1b301efa3f0e15ce638f2268b7847b255a4bc04024c4075a090bd0dff854268b6d694a5720335c451db955552457562ab51abe9ffd17bec9c2bbcce5a805a63cf60f19502634ff715484f2e89a299a0ccff42746251540e4713219b6816a01661a0174cd39425cc388acb083b7330e5053951591d37a56d844c2ba68f2d4a3ceebcb6404c9898b59d60c751f9802af8e6955253e832db07e19ec6dd3554bf95b398c3bb86cab24d971554da48b6a02cdf56a74ae365d238c9a828601287f2ec5be6f6edf5619277c6d7e9d62c954715851eb895d972d1d67a116a822a0b0d12f2f32e07ceb24546f92a223542af85a0f550b5054bc53e85e694d1c17aa949b38270b369a49983a5544152846bf55a6974b9b2d46af16ec600b2e99f7bb3caebccab012f66a45740c645f92be745fd57c7e769e1ec2166c9071ff3ebe6404b75928f48be91c2f105dbe5d42acbcc321d2ada6d9c9ebcfbe3aae659d3eee524241fd275b52b316ab2562254c2b5d27aad9cc11c2a0f9bb5f45707e9253077b42319cc278752850c965c7f67d7bf2fb462d6e720d9ef0612c65be9805ef5fe2a2acf5f27cb3ad4f51c16cde2a1f8a5f1f47636b09e03a4a280b2f5a3c3d9b5625e7a03060c4bf43d874a66cf1e3149de230ee6e46334b37af565ad2a340e5889e64132071a7fe3188d22a0c4df2433fffc20c0ce769f7684de3159694d075a4a399ab34de86f3ac897878f34fbe0124c01e6d0d37066b6082ed6478f73165933eb2ee347a7d867c8ef66ddcf6866067ec76eef77131c799d66af66cfcf6d343f24e33ad57400967fafb0bddb318f02df69ea282ba9f7f04cec6ff9fd65ebfb6ca580bd9edefbea81d00c5701bdf5e2339b98384c65252a5d9728bb9da9e463cd48360645c6255b5d00bdd6e22665ca36b7ce9c798b4009f14fd733a5830162a2e6bda1920f984eda10e6a7c831f93264654da2fda189ac956073ce3cbd6927339989831a44721c32f23145593a997382b34ddd34e6480b49a4390d8faaa03f7598a27cb70242d35f23700cf9f64cd21e1073c1c6749162ade1e95614ee79ff57b1f9c20b6471f21927165973bb882a89515067ab5b6b14527407adffdc2e657cace7acda646a90cea8b3b29118586675910c0aa7af9419c4d7027ddfce5c9fc3bc220510d5b2dbba7cebbcf672239a17244794f8055cd6b732b15a00f461bcccf907bc5497323ad8e5af0ee3530c75aebd90e13923dbe91783e8829cf61490e8492f60f4ff020ca4ca821ebcc5e6df7fe6f3641226044db7789a49c0056555771a0f1d547f7e3a235424ad673a01d102dca0efdc56877b16375201747dcf16e8f77f50fdf6c73458d57e4193d021317fd0048c3b483819ba0069072942c5e76bfad00c5d83923a41353e7413a4acf52223536b7fc0bd6effb130754c351c2ccf29d69bc29a3efe82f5a07c1e25d4fd82a464b69de83be4c9eac8971c6ab6c90c1ef2018cd8bf24a298caa646fc930a7a3559e5107d49f40b037a2f6a725f505655510788c0cc32457c03f30ef9a192dbeee0fd00cf2f7bea7dc8ed4e10b86facbc5efb13adb708302914c467cf6d42391840c86456e81e4f346d13c6aa0881f5498061ad4a0eb43d1f91ad88cf6b6e19a0ed5ab2e5de7b4b29a5945206c1066f07d90629a440e102ea191a4e6f3b3d200eca3363b381193c42fe683d3384300cf1877885abb3340b150b8baa25d3321ab5b4b4b4b4ac624eb0a081a9e1d435436bd5f0e90ab712c2306412124d2ab21f8c599cd4ccac70759609499ab464ca9595b22ccbd2444c0a86261cbdf7de7befbdf7deb3e0342704e2a0339168340a9934648b40151d2aef7d9f87ad569172db5981422551cb164bc5a8473be2711462827167e919cebf7e4b66348ea3d168343ac5a0c0d0ccbcec2384889860cc8285cc07027ddff77da698119893991a9789090b9affffff1fc16c88b078cd82a46666858b5552a244494bc4f34444444444483125163430a5514d34b18934d3a426fbc1781cd164c6919ccee73cf14263b1196d9684153b373dd3c2f940a0effbbecf746364860109f0946638b5298138288cc23e2d912d2222222242daa19443136516a08006ecbc60021ff0c2630c40f3145a342fdc0517347cba664242be04ac19f530fa150eb24485cb63152e5f02d6a4f8cf44cfac7075d6a725030a43100804028562443ff34203b36fb8e58dbc9137f246dec81b79a45a4be3d96c87239428e9992ee37d9fe7799eb763c02fcd5ae3480e11985547b4931625fdc19e0eeca9600f37efc946827802e208eff3997fd133e33ec2a9e4c3bdcbe314281ebb8cb392284eac5a585226564a520585721af99f9894908c98c412492424148286e8b5347bd9186e8d55ad31e6ba0af505ec5a6beddd45d47d841cd86badb577ffd8b79a71bd95f6150e4037a4d16aa72fbba3db1cefdb36d8b7334c56854d19fc76bc36c833884eb950dce34bfc6f7cbd37bec897a6b5f457857da01f9dfe0bdba0d3cf8e4eff956df8603e738ad0e186c3ce0d3a36d82c8d1a05dd7a10daa9e25ed435cdb23e33cc923e8d9a0db61b7470d8b13adc3afde414d129fdfad944c03a7dabca5fc11a4e67fba15ec237a7ccdd41692b6675822c5ffc3eb5b6c390a9dda133e672ce39e79c319773ce39e78c65a073ce39632ee79c319773ce98d31db059671a7bf3845c4e2fadd5be76c716bf0db90f78c0031ae080a7ff4285b90358f588378ed33c5c0fb7c32ac385a96048bf8f7b2a09a447786b8555986a5365983055045c892872b50b09c32e566f6c3cb006b43d0e04b9ed550413e6e6ab61c179b7ad74ef3dbbcf773be7d1d8ee66ca4381f45c0edf8b6d487f1bb5e9d96c96aa64a5345629e80271453f73df5951efb0c2d87092a10e617bf3076a0c7ea2504486e3ace4078e2cc0a7171cbda75ece23306770c467e40071d7fd4bf4bafddd83dd783fda69ec97bdcf5eceaf3fe7a7a9f7d2b860a183b47539ec9a82106c2f581372fbf5d329f379f0f5739605fab0fdbcd77fbbe7fe7ec737d0bdde710bf46f73cc71b7837807bee0fafe0e8441fbe7f5a7036bbcae77fc027d73db41dc035f70ddab1fddb37f0f7e9f2ef7db71a3c5302e676b056ed7335a5fae8315eb7cf3cab8985e40f73939fb18dbba0364adb534501bf6edde3a7339e79c73e6d4c5716d2d76519a838b2ffe59de5a0f80efbdf7ea7b35be19df7bafbe57df8cefbd57dfab6fc6f7deabefd5dc7bd6c3e00beeafc638c776c2760215b1c977529e8b82f055ffbe40efc4385f8c330dcfe5ccf589625d40a9c5737a60d348eccf4ec242a7bdbaf8cc94b2e0d64ebbb51df8542a586badbdf6627badc5af3bcef85e7c3f097c521b729cb574ceb9adbdb6de12c8b80fe5810bc9157783b643abc68a0692cef824442021111c6d01ad0fa794524a29a5d3d5008e0b4351fc27c9958ce3c250467728a5edd068e6442204dfce4e0c74f0020dfba1d55aad48f2bfc2e8672d0c0683619a43b7048059580bbaa53b3b27fad5a10874db55cc4dd5e530305a990e683a7f62e77d15c0f8da1a84f83fdd594d53f5575d495e8cdb02b8f7d10699385fd5bdf7662fdf979b33c6f7ee7f85f7de9b31bef7e68cf1fb60e28aadcd16dfba29ce37e36b6f88715f6250ce56cbf11c97bbd65aee6770f7bb6aa7cbe28b317773a637f6d697ea1984d6de6a036a436d30a59ff35b3b27cfd3e69c337f71d4a6c2e4a7f9290d93e23c905a633d42b09c8d8d8d4d9e23ecfac8f81f675cf76585b6b43963ec753bdbad23cce3e4b87971ce77658500ba20fbd5cff4f3884bb5b0feecb656f045fd5bc94ba90abe4cb1e5ba720bd46badc5385ba05e1dd43def5d91bf420a7736c329a45067530cf3bddca6691a66c61973b09bf17314e7eed64efbe7d5b7b7f33a7b29c7536f29bd5a7757db9d19849bcb2164f8596baddd19d39cca9a1a810429d0ef7717c0186baabdcc71fa075ae7bc95d2db37a7cccd19d75b290c2a8d29ad3d251586629a27002cb699c3586bbb8708a9c6f9666db1d5946b31fbfea93f7398dbf7eb283786bcc22972215663fd24a095561c6b23c2aec5612e9ec2c770157e85a31e85ab7ce72b3c0d57f12527637e26a6c65aad48f2bfb602a922d6c49a58136b624dac8935b1a6420a2a525028a71494934c2ba635b69e9ffc490993129211d38846228338cd62a0a13284ca0f72074ca51ea0c56cdc50c43c86c12cfc8253f8045e6112a3b00ac618ab300b5e69295b294c68ad5b1ac589158952c92e295c5c5cc02c4bc966376eb27dc32c9897d40905e544cb494949494949218d6629683d5492ba5c54312ad9ec26e321a7a3cd662e38a31b998eee3655a29de7fcffffc77f6d22526095c96432994c26d90d47a66aed5b4a3693c978c8e968b399acd562a26363959494aa54cb38a788e796eaf04b4abb8ca858421292300cc3b064c5440a971b32598741ad9668b3650d07077403f1107133994c2693c9749389786eaa528748eb754be45f1d6ca433da19e58c66a56ff190d3d16633d94b299bc96432964dc765a4e3e6fb7cbeeffbbe10d98d146118866118ce643933958b2a140a85422111ce6c07967104475696e58a4be94649e652d2a2f218f5f85b54be04ac21ff3361c1bca4b40ba862f980409fcfe7f371295398c0aa300cc3300c67b29c994a26bb219b9546b3d10e556744f6a9a8fc6fdaa6ed37b10259aac4c9894b2577f8dd63770ad94c36c371b9212b7949e632966edc90a9902815540aca69e47f52c28464c42492444246a25008ead1ebab2493c94ed41a22ecee3ffc213ff86aaedbe0eca050f89f497e3ef633ce4adaaf03b7f5bceebf5a4331c4da4f482f0f30a521b695c692086995000f8d5532890ae321eb6be98e12f6d168586ba3f91706820a4d046da937cb72f178c5e3fef8e78479f91706e2c5bf70edc4cf60189c02bb601446c12958f36018e019e66e80391a5ee1155c62ae865bb08c7c8ce2b1ca63171ebb1ec378dcc26317744c134155887cd096fa34e3abd6d73c9625ba59184cd6a805736659a3514e256f3061463a265967c6176b0533be5624f92f8aa2db88ab916e3e14afc11aed229f036b60f002bc8b1be057b80adf0227c0aff80adfc253f897183154e070f1df0a2aa410c300052080a7c2fb46463a17b77b1e5863310a5e674bcaabf03bc99477f17096290f838bb34cf916f8cf1329dc2c5338033ef0c577d47f796f5000756b1004b9cfe7d3814020cf166aab43b0c6dafa097e8a4d55f899c46ed096588a490b4c707274a0f8176bf522df847413ca99e1dcb89199c44adc38796b123bf994d1e4868a4e8df62de05cc79833fea3f827c7d7eaff84e2a392a2aed2d383300c1db16fec6a4592ffa21886372c784e0047ae1ce4c3e033facab7c067e428352f7f83352b3a3a3e2ab9b3e2e2036b4a22f6ad923afa4bfd10b0860422c2c31302d21e119170bf70120817221f3c3191530d5ba8329e624d08c54a374060f000bcab050e805f71996fe1adb71cc70006f02f382b56830c2763244c444444444444a49462438cdd04809f6400e0271c53c9328d942adfc81432220283531c998ce6cc66b446a391e80dcdc4a42496f0613ad51801639625dae4d096fa5c0a987f8928150254970be32946ead8d2664b931c98f125a6185fa1cbf8e250634eafbf32410e382829285448cb82eea40e13486abc7663cb711c4df40a17e3e9742a712a2939d930f88c1c281e04ef72f1acd58a24ff4591442151524ac01a3b16a10344cd4642f23653d55343acc585c2050ac802ee2929604d4affefb79e91433f08deb542b4c1c9012505c50b69c51a892ce7c5aa146d50c6176bb54231bec897f1f5a46863473c8a351299b5346da3bec85262281458f3f2a813ff71175ebbf0bd8b35176e643825f982cf798234a1e19c64b6b4f1c24f356a2323cf02ee27c6536c091c878b7fe1a41095dcb1a54dc7c58b7c984c3d53555da8ac463266c48a93b1a9824d5515dd463a444444444444444aff1ad9a86415ff45ba39c56c7923c3214bcd656000466900a90dca56e1155801259062c28409f0013718fd1423dd9898a4c01a93142b9a566b00200e172912e32753600dea3f95ca07556182435beaa7781f2209449b5875f917eb453e8a1f9d93354bbee0648e2d6938a0afa04f6182a37253d9114920da84358462a1ef5dc6170b35be5664caf87a14638847d1bf4c52668c622b150b0b58a3f21fb945b7518b0b460bb3241fff093ea7aa1ce7e9a6929554e1a7184b8d22be161b18bce65d9c853fc14d7c0b9cc5975cf52bcef22f788b6fe1a977c1451bed7a30d675b12ed6eb8b6e9645226bc164999800c7b24c6226383a268c490e32d14d26bac9443799e82613dd64a29b4c74a389b55ebf169cac91362a1299678298490e26382cd66a4592ff1e898c444622ebb57efe25d66237b29551a5c79ae074aa4a72858bcaf105036957e81eda58d62916b389d9c45a6e785c2d2b2b132762a9fe2afc14d37d3cd54001d69c6aec22622e25a952a94a241155c848a5e23e05859232ce5a8372e22f949bca0e151f5482206f789134b1bf4837e40ed9a3d71f39c58238cd5264640c34504eb1141b9521547ec47a7d707f5e27daf48a69c5b01018662a9de10456cf72085ff8a9d5608da5396b8d57c018e399c7358f5d7805ee988555c029e014180576c118e31696c13806cb708f9f4e19152fcfe2f1879645f3f8c50a03f378b45a6b167a051502346c9b2a2136109dfe09d6a3d3af40e8f404db967796735df39bc2b65c77fda95001d6986ca858c1a49fe3384cef99fe3371d37f7d57b0c54ad7ff7ddc142bd1bf9efbedd65a131ffd1f37c54c36b849d64bbac74b5b59ab2437963c6608cb5a3755d38dabf588c3f424dd14b32c7c338d3cb2fe32e1d01739d6b125fd6f26fc42226f14429633d756d08a09aa626929f994bcde1213a91df0c117032d75f0d9ec203bc8e7a3d55e9cb7de3b48d8ed3ad210518c21a436210debb3e0d58e3b50fd09aa7809dfbfe65b3a6725ebdff8f2a74e52a5fc508a47f03dd5b8d79fb6d65a73af418204096267fa3c715086ca42b55f6ba5f82bc6fd5e6a7bf0812108e7cf0743404310d2a7dccde1034110d2a7f4e778efddd5da5a2b4a7fd57fd97e6b152f7fd5bfff555cfb0b64ff00080be9cfc9a7b55fed585f619fff8172c545f826caeb2f146254982b4f9770ee48810d71ee48418d92100864eeb269b9b0cdca85ff33b77dda90ae6bf32efc156401db882efca10bdb702e3c470bd83ebb0e43a5cf114706ae0d12a4ce20415cf81130e3c2e3b4e5bc30d86a85f08d22cf3e48c3d62b284348ebc35029fdc1ac24ad0098e993d2fedd1c8420fdffe9ca65e488b1bfaf1b637cf47f7e3ff8251ef76d2d3d29e44bff3272c410797d3f06fd4bbf1b6388e2388051468e18a4a7a38c952df593be3492461934a3fe903aca78118f7f3fe29f07f91e65e4e85e46c87bdf8d3146ff1965d0982df58f9e3e1d43461912b0df37cac811e3fb3acaa0b018fd3acad85fc706d852bf0cf0a72db90fad44b6b913fe7451fd251f84d305fae9a24f63418fe32f4ec4e9cc963ae43272c4f01e34caa02e6fa4325bead7c17bfa4b3cc2910332721460baf0e79f2e6fe400fee97ad159d75ffe0f5017f63408065bb311421aad2b702d4944c97ceb6e75fc96bebdafb5163bd0f87a510c3bfc963eefdef64afc1fdedf2781ae43ae02b76b1086be32384af37f5ad3cc0843a10741e812eb4b1e4bae385dba71729a850b6de9e5381d6c1a846dadb5d65a4b477ba3ad8ecb79b9bbba773b6fdbbb9d77b7f3a63d6fefbb9cb9cd719abb7b7fbe7777dfde5f9773a8e451425eb8317c2fbe38df7b2dcefa662874f82fb534bca1d9e27bcbb41ac7d58efc32015ee77d9fe7d920fb888bf1be1befbbf1befbee6b31de590375be5c5c33c6b8ea9c4d2f749ccef8de8c2fbeb6e6ce6690879fc7de7bd6492b0d30c618638c31c618638c31e6a54eea22b7bc18638c31c618638c31c618637c73900dc3dcaa06049aad8869ab301f1026cc878449d6d7b1ac4c82f9dd4ca0636fdf2dfc6ed8eeef96bf22268bfb8ec09f3b0eafbc9d9eb0067a31a614679cb1dd3da1a55f35fe4173d9624ee71ba555365b6e036849b74f53adbda417827a3721b49abb18e7dc81c290f6be0d7e6e0370094d25f3db3da2e84fbfd59d5de56c3139a6d0f2b4f76d20a1fdb615896c11658569b13cdd96a5380263ef7e775ff0deeeafb5e0febcd5f83121ccb3efe28d6de0bdc35014efe5be7a16282ffe9c31bdfb0939f2bd6fff52bb9f80f5cdd4f2406223b191d848e0fb8493f958dbfc656eea622f5d5217e9a08e27d0af9e25a639e79c73ce39737cba72ce39e79c737e9d01559e2f235a5b8eb322f826ca8b93d98ba170ed0ae37befbdd75a7aefbdf7def195b36da184ba4ad1cadade7bb7e5c927b03fb066645a2c7d05a64595e2275fa6a070b5938971458c8b66050ba64595e227df4b1413313127177ff131bc854fe1299e86bbf892bf3c0b0c182e3866fe7b4901a385172e505cc613ca78926991483337c64583d25b26fec7ff987fd73fcdb7fe4ff8066bf87f1a0441eef3f9742010c8b3c5b868507ac88c4c8b6585445ab1e24d9c682bc6116d449b9169b1f495119291d799aa1aadc4c44447899c12256fa2e44fe36b555232716dd6a6092dc6450382e076d1c468ab1549fe8b621882312e9a32e6f42e3ea395f2347c460e94199494941994d6691c595a3233292e9ab135c6b8685a2e5ef3319c854fe1279e06c55b8ea3458bef2bd66a4592ffa218861f0a18096c625f0d5f0b166a58a0acc613ca786abd2ba6d56a999894504ee38fd68f1529550bc7c9e1e44d8c27eb5a41ea9036962eb6a852bccc01e7e44d8c27bb62054b8c8b066cc9cc8ce368d2d23233e3e9742ae1a24939ad9cc096cccce8e23372989889d5703ac17f3af9b1c5d2574aa5b207a586588c89199a94d67f2f2373f226584e2bc65ea29cbc0996538c8b26e5b472025b32332c2b2b567cab55ae8871d1a09cfa296446a6c54222adb07052084eee90b715910f11914f41998971d194654a4b341a8944229148240a69c5b86850c67144c54e35625aa73f79fca7e7a32af52fd66bf5125d2d96bef2f9cfab4695dbce0702852c3e9e8c3f8ab5af46ebb15206e5348e312e9a1494d3e35f41398d0157e7e6e606bbdd605f144271a4a4c49892b25b96a55bad562f69f5962e01cbca1c1786a23879264e0da7868383f36ab91c17863a3b74e7c6b2ec2d14c5ff7a73636f6cdd07556157405b56e0c3c23858125485ad4193d03fc2f15fe26ce9f5b5bd9118a171784a78787878783e65d43828a751e38c1ae7354e89128d63a2717afd4c12cbb01c43cec930920ccbb00ccbb00c2bbb9e733ee7e49c9c9347a68cf8f5318dc942e118098ee1188ee1188efd09ae95302921c1357bc51dd3d7bf375c9d2b13afeccaaeeccaaeeceabc7875aea9dad8d994297d7dabc364a1bebebd59166ad443cc12f52faef22f13f9af506967e5c89125e32b14aa8c261135ce59928c2fde5f7ac78e8cafd234be486d6fbd7e2d914472c848140a6f56f0f5e70d05dd70309dc4e6ba4703d13c44dcb40f986571336a5983aad043cc961aa1a5a1d71fc254555b63d42423c21777b3d3eb8f7025ba4fd779502a067ad012ebb5f208eddd57887066aa39aea36107d67cff79de17d680ffeddde2766eaae8e7bfcff684083f604d28048135a0707b20f75f68db1f427ba70867cd759ee8a3a60fa7fdbb7c73da3f90d3fe7d9f6d7f0827f0d5602748afc07cda270843c4a901cfec479f6f8798f607207a4c185b1bf929fe7cab33edce94097fbeb54d99fdf3881acf0e5b0cec0e0e374c96b5d952061b7dbeb561c25c58254530c91a30d7a692327b3365c09f6f635306f4f3c656df9746af7128ca29db3f70674efb0639edde0677c8e7f7ed708f76e6f6ecdfde96e36ee22a98ca86a77a2a8c6a06eb02150dbd7e4d25914222554bd15239291f523da476a478e8a9184c32c5f301a57a84351e3620eae7e3384a3e242229d15a6bad4bca9ac90cb7e5535fcaa9166dcb2b4873b7878c6c2aecbe13acac89c60c247fca36657aa840e36704c70e89cc83c2c93cbaeb399d4e9bf4ddeb03a9a7881f43e808b1e30354fa388e910f711ce2c8dbda0985dab3ed02512824f54c5512b41c1f6689920105db2ee0a157520c2649e251098541f4e0239a2d6b3c6c40906a22a07126bcd33bda3dda41b46f3ebbe5a08d07eb99aa3ac32cab37c38b618643af9f25fb2bf368982d6bc468b011853290d70aacec29796c59ea94365bd6328859fa304b1e65ad1c628f65ed622fcc3ca0cc038e2f7b831d5f1687fe8d5f08fa80dd170a8135dc87c0163c0863de9429a125e105893933d1dbc1d3c183753d1d8f17c32c6b12480031c2c33962b4334feec93c1948b6a9a489098a2dec7b0758b331b63f84f7317fe1a37d1c07c96f5e829566946220d94835128dd46396f545f2a1937ae8a41d93ac7f84cdb613c48836aad992d6830d081d215e7b67eb6c1bdfb390ef9ca9da3cd42f2f6d65ad8e2358b37f045b5cfd3c085f99a7046c31a26d6f73facba110f401bb102a4481501f14888275df98b2f1844c15dd5da724445412df46233c4701a66b64667fb03391cc7392e10443a14246f6d365ad7463e2a5982d4b36ccb234c3244b34741c50e9068ea443b2916a53450a629624204828128f5e9fe44309a64242e28d20fd200d31ba91f0910ddfd168341aedf89863c9c6147b918738ed1fd5b65ca4658748fdf251ad9223daa8074f76f1eb05ac55b6ed4148967c1c8728ee992debc90d267942abe409564f32bc543e4ce9a46a33cb4a0531cb1ba48038a15598548f930c291e1d5661523e4cb2be0aa682c4a78ce8f5477bf6234c0df199c756d64a1ea58e10e54ee9634433c55033503615e6eab1e4716b49bff2dc31c721fe8853f18af86a5b4ed2bf13dbf2911ee238c417711c218a6db9a95b5eea5f8a96fd61f0030a43222b0a85a00f88411674625f1e212d04e24daa4d191f26eb04b3256cca8cbed2ba11ed1bd1f28836a2a160a7b276827527d80976829d42bc67a01d931582685326837a4046807eecd99ebdf66ccfb60e53c6c33c8430cb3a8185611886212c1c4f60e3096c3c818d27b0f104368e23cdb2ca194a1a6369c358de3096388ca50e631983b1a48d28186a4669c371e30b0741078fb4cb2681fa53ec70f6cb232481781cf5a079bc1826eb04f6f2727af574f070188d2fef06cf866f7c7934bc194e68d9880c24d7cf499cc02c6be4b850fc273fe309ec04763aa1d12c2be4b83014c57f925c8db4d709d66b48b33b7a7d1f6c3d7482d819e2667ff0f01c01eb28d89e5572874a722328c75482ef7e26a03bee315eda2a6959231bd072b4835e7bd0f7f812855345df0b75fa9ab73e8e83e44ddc9b9548defeb0825eab301e0e93ac5d4f07e29db5c900e4c22a4c67c4243b22fab5a930dd0f15957f519ce3ab43a2576bdbe9d9e37a86865532895cf294375eeed8b2f4a1ec616b607b3896b511d042ce64c354c3c9039dc654718251536ccacc76682c6d95ac65ed8234842f53cc1433d530dd743d530689c942c1ac379b32dd574bc3da606fb038e86073f60c05b3ac548f59d6a781b2296bb01b5037650d252b6b289c5ecb1aaa05bd82e188e6dcceefa92ebd619deca3d3ff3821821002e760cd7e0eb6b81dff09d822d4bd31651341f832c5b8d77ce3cffc03a10fa8446c1cca61c848040000200873170000200c080603425116455120ac751400125a806064523e190ac44112c3480821641431061102040444466846ab002837e60dda1c4f0f6140428b4c32f3f59d0fe95740ecd6368754eb5ba5c78d2bd6e4c87389615cda68eefa1f4c58c7aecc3b9ba2ffe1b3637ddf698814ec7b20698c8c5b46cc3b490c0df1631d5534dcf70ce4261cbcc8dcc52ada2e1438b95aeddc6d65f55105a1b94152f2368cb70c38bab96718488f89975247ddec2a5cb8c2fdd71a2113267bff68e10b1bb7e4c3693eaba085064de8d2a3e9925571e46dcb4713b7b641ddc045bda810673d29ccecb4968cd556f877a801d8b308da623e40527ac580ca58393d64c004d7a514eaef1815285fd77d417d1ed58b83c3945a3c5d37e4f774cf27f05d75af1cb5e0bf394e215cc1bebe9f4f41962c1fa4d4a80064a9928271fd64383b70299d955dd55b1d1a9ed166d2650f670ffe8a360ab254b8782834eb2572ecee82a07bd4b65615801340e8ff06d7cee18c18591bbf338711cf132ef1b226de8fc89b087646d54bd293c2e158da363e2e474df5f3cbc6b37586077550371e07f30712bfdb92c584babcf9e4c6a377a09727c9a8fd789cca02abf3794929c1e1a00eed1a16aa729159faadea3187939efeb8daf3cb8053db23025555138308400b0ba9420eeeb10c9abee401581bed73465c089b9054bf9adfc028a931b22e5f8f30aa2227ee6579f77c4ed0a38659eba5b8cf3e8bc93a4a018a0f9fa723b929d2608192294477c2f28888775b429927fce85def28c161062aea7b16673f356b20ff7684571eedfc39e0a3e57d099c786c573e863eb601610f70cdd977560e4c1952ce6f0e549c0d4afa8aa84f8615a27d73015fd8856e93e29b1339a00a18570259ab6d1fdf8b67d950d3eaa308cb674a0cce4b95b2f6206abbebb07e331607c612e0c262ace8c5a5f79c16feeec8167cc6ccef34a6eda8c53f57baf86756fc75f0921a5d9fa6aef957cc2e9c824205baca8d062e2eabefdf9db7f135892d2ec71f82d86477d54d6ef684f8b7a0cf608d860717d5e60759c7267f62c6740bb2d6f3eaf9ac74ddfbdf89069f61569baca5084f8cbb11c3451cfd8bdd2965bddc7887b5507e7299755b2c8401c3ea9e197029fcdf3e04dda30cd3170db304fa2ce1acd5ae0da22f96c50e85c69b41ba66f751bc54143cd0792170c81ae8ece05045ed3c4dd60fa891dad3160b22372ba3e3f420f411daa62449e04d4b3d9e327949ac44005585b06196ba42bd28fdd50e47e56f758ba550fb85494666d02370f96f85de9eb0e1b394c7d44eb04d120a6fcfd23e052e7439ddf04691db1b74255d51a33febd6fe1402213f2962ec2a3c725ed79bdf3692e928b46f657662550307a339d0577c5899367c30d03b4a5049c3857f504bd704f1fc9107430603b942e068fd3507b86ea65a8a266e161c754ffc13f068c7ba9dfb109780debca9bebba223b3abb435dff7f91aae23b2174d784c1c4f8694f31034c613357f59b93e0cf3e006f71a91e34842691109180c5522d45edd82485979b46e4501792871046b1f4d40f3fb9860c438ea4d87ad29b7e81e26e32a403d97756a5d8109f783e4634b52c356037c107194edb3753db2b2d6f8db5859d4edd7b50db135b1010ff24aedb156264b3b4a0e99ab323e710cac3eb86d775da7b04bbeac0c9d22fb12ed4ccf042bd077a6996199d8bb5966f074c4d285f4e06cd70e84fd5330f03053f0e17faaaaaca830ea5ff77734d873aeb8feaae253b249c36a48268a272e4cace218c548517ace6ba5a4bb238a7d99dc526f413f5a14ccb5ba443b4a597f732eb9b81f08c79174a44207c966f5ff3f1003a2e1c82f1313b12045ce8c81545f06ae47d4b007823848fd40f01eac3033e4430ae1e31d99f8c39a9414f1f5ca6f05765246a163fb9801ecaab0e1aaf0141a4a00eb91128ec4c8207610320302c0565200b1bd0c306eb00318cd189d1ea8d6e73f0e60f958dbad82f8579900bb6df1efb4e02f0bf558482b1b49f4a400571d9529f0c5208b6a2c326d5ba9aaa54e4ea4d884712e7e017be1a21adb87674cf2e941bf981e7c178dd43f9b6bf11ff773ba34a0059bd6a322f4405c21fc0b0afa313c778755b906aa6c8febda06d791206347925f283e646f170169f2550eab01c9166d64fb49137a58b51d4b0132bea274d41df77f0e5c877475cba4dca43bb2fdd07e3eb553c6a5018e40b6990b2fd7bd35844e25c9d080ece63cafd6d10d4a14f697de73a6226629cc1c0925d38f93ef7f517c07e4055fe5243902f0419daa5fa55b742e28cb5deb718f83b6ef55cb3cbd52e6defffa18c1a532bf714d8e6082544e2d6e573a789eb0a145d6a070213ec10329d9e7611dd11fd8fb65127f09bb10f8e712f6b46654336b3a47f4872a615d7fc6be3ff74631bf6878e2b71fe6987179acd79dc97018c6c2880af23ea084ef0fc74ef263df3adee2eb2eb79058f492353ee556d8fb3657ff967331b9c95966f01b366839ce4e0970ea2e0b209301b8878058bc0e97571a87f28bc08a2a143bd9d478fd270a7aa0033de820a8fd9736b07a51dea6c1aa1d0aee951e71fa08287e3763bd5faca5ddd1b5bb034b4ee6a44d046b41bd3310c2175202bcad859fad7a9e572fb71e7c5343f1f2d3be1f424b34ae175b164cfb40ccc1822b997fd2986324a31fe15a576b1f1fdf22ff7d1a6fcf6424be3128f56b901e87fc8462d04397da27e308655804f5f8c15c0a5b3f06356c20fb2c5d7527123a8c13840959a379c1ae2d74cdd06920eb6838b797e0337d82b9f43540df14fc403bd500eb4b1ac6c3c9f76f8600741f3efcc40d63a3bed3b8fc8651578f5cbb266f1d57cfb4fd8382f5be85646faea338de37625d0442bf17cfd042c012ec79d31423c552066bc9d7343d717141b6e22ae5eaed1d388ee47fdc833bb8d423f4dad6e19efbc30445a0ff66644e836e5ffa7dcda411d3b5d28271530cb98e4dd04d00dc042c3f1e172d505d4223f6da9759d8404a1005c8108a1df824f3226e930e0bdb99661b50738b65dfc52974ce661dd5aa41f4e875e128c042d0badd66bec4394570c1447e34bb256f93914c0957af54ab43a8035d437b972bfe71803f213857578b4fe85c0277eec23b3cf213ef5daa05f4efdfde9f424d6bea0a2eb719048b44650fb3a2c409969818719162a8ed5c2b5389cec64c083fea9c26eda23f9c47c720d36d1c9c5f2d18918d4246ef9e3f40235ec2161695d1633022738cd655ba1ad82dee1a98a9dcc57d8878d6e233ec5833c00d10d07334e1b41960a9dd28b1be88686b78781d9e086ad9f3c4dcfafd77d6714a9a4c2f1c848316d34f824d6c99bea4dacdeca70783b5641c4da6287f21ae6abcde6b885583a59129fce4daa233b0079bc2b758128be171ca2702c749581cdcc242a6eae632fd6b130a8e25ebec6805a21d1fe276b08ef10cecea78d31d7c47b4a21837596b5e4e096c6d42d378ecc6530ff53c4ffe1a253d6c6667bf5bc07cc60fd5f2c57a158b8004183369930b70d09020ed2bc9d6a3585aadfdb1bc4409fd5f245584cc9d5524660383d0f06c0ebbcc8b33e606af961916af8eae95c9438f7d7103405cde96d9daf42a55b0644de5068de1916a3810806b948d7e18f56fa5e06879532f904536d90909b1d2fef50be9445a59e674fdb97b263094cc1fa93ba43cfd09df2074939d8563114e1cd5a13d2bfe07ca6989f39f45062fae7e1aa49e23f46a46788f54910ad18ee898a9000d516fad8cfa5fd0491ba894ac32cd9a34d0ac4163cdbd7a4440e6d18099e51c0aafbfe4c7b09c3dfa531f59c0183e4e581a624a51a4f06e30da1638705abdc0eb74de7e27bd4dd102c683893e38c537c23726837fe30451f407f3d83fd623591edd9b4f8cbcb11e729f6603fd8fa61d3b756d435e33c439deedbcfcfc0b8e1dcb0d14e94129905f3ba320fabe36a0365ee502eed8a89be18c419427238e586676086524f3895ba922d4ccd1bb46440491d97a0ce10bb7e676f133447d00425e30074c1d2dd9b82ad4ee9f107ac897c0078a840f431a457d80635e5d853d83708b2e5d86b58232e8ee56e3addca8b6be73686599bd36a79d0805f481ac0cb5351922b8f783895d13316f273d77658e2bd71ebf161f79e89a4cda4f423384f38648cbac01ce10d8e496689c8d12f114f5c8c710168e5df7435e42516e8e2ef875f66a12ba8cd8b0c511f889933c9af9f8a290ecd5b3b4990d7089ce7680a528df0eb20649a1c9e414e49106b0ed0be0e29a96888f370ea2b0dd0f3eee7b70ea8418fdd4aa604a4a1770274d9c2d6355469695b51219843b70782812c086dc7a75868198a58be08a56d8c14a363bb20203640de1fe48cb7140f6946a928d50a733ed0fb03d1be1927479382c5aa42bd717f4a8f1300f05a88b69b29666442a9e2475e9a0b4a3a0c9b162f2c65921275f120d1eff963be85ab26325dfc3c07c4c999af7aea944f4636d1686f004711021ec62ac506bf45cefde8df8da6a0166a1bf081558e5e5da34ce9ceab66d75e5da4f0949f96596ad31a8970b35424e282594b2ee08d3479ab19a44e18b367b2783fff32b517131dbfca72a0238f47bfba7cbe7fc148a4a076aa951be720a639e6f85991135eedfe1e4d452e364f06944b0a4f4bed87408bcf426f2b97289f6906dc90129dcc49b68280d85f460af1e4f69eb1737ab1080ca5121266a48fb3e51c3cae8216019b8c7c4ca6c41af579c0fa12543a6e438088c4d84325f47c457e1b0c141b33ce1175ed5440687026d1211ea0c40c03a9fd9165c220af21671c7aac67443ee9a5d9c8effdbed60d1456857e30427354514cea504485151adcdcf4e7a7f953b620a98d85d802d4d8058c7cc046f5cb9059e195107f8097a03e6a74ac013dcbd80705edf1a490b4508bef3996a9f6aacdb8d28d2097a15a5076beb180aa8bbf005b71217d24da7cafc8c1d9ad920a4eb26021ad45a90ae980a68d02b4bd5c620730d27c4e4d751f658ad800565191ba61e8f57ae19b2ffa51d16aa238e4451863481492e3a4ab5e27a8d91a0a702d0893e5eff47811edf34bb7a5f6b767be14091c12921a2c361b462d82c1c82d7e1d4e2cd7b2347b451a853104825d4a59368ce961b3cb16e4dab1f5c450b394dcf3fc707aaeca5ae5904b0e188cda5d817ee02a7b80aabfb66c089bc62686784eb6312d2abb491715037c260d0eb4bc4cd571d84ebcbbfc2bf40aeabc35c44aeab931a275f08355e7d7c81ca07ff55a87ce2bb4954b2eba1c4792fd08fc1cc89d853cfe72f11990c76fb523f3f9ac6bb9fa97d00d59a84525ea7aa5c8479d1947c847c7b15c0176a09327e214ae455b3574fdf6b73b66717cd581822294a34f955a6c7c63b560193808e9ff4bf15329cf503b1825fe6b31061a910e7786ee169217a3dc95ec08f99ad54ce0bc5880bc7412987c4b58fc8bc71f0ae0565692496b46096137fd33678e360406983daca67150ca2b8148dc27c9c9a5734801e7a3b47ea4a05722cff8c5b9fa4b10b56ae10ef9efcb53fdd96140920272d959e728c7cd58e8bb9424ee1c18ed005564449d2d67f35de5a5caa575bc1afd6402c5b3e42c54b2e17d163d0959856a187841e1e1754e2d3311a08b2d7736e55f6a4bacc83c9d12d197e8b9b8f38504e3fe21480f04a45d44c0e606798942bce2605814bcc8dd5e35642b3879e0cc9b02a11488e4744089c4e07e0b743a72b144fa16462dff7116410a5c8af696791cb1e04b581a1eeadab632f371cb3fdc59b4ece8fd5db2ea059e413c7a9fd5f1c223e69f1d163cfc01f8c97d721c4a8b7fb65b4ac8806a52d72b503b46d24deddb61bba15c0aa2e930b119468c8397e40081dfa81b0329aecda7710407239e71d1d73719fa547bb9504d0ae8e9a12bb8fcf302abed08a543f915be7bb6f78da05f433ac54cb626671c7e1e46de49990b31d378ad625e41673884a37e446d91454a05993c40dbd6b826d827c4b00a06b6e74ae4e4d3600cec1e944cc2ee71c6f100eaa54dd3843135d2522a1d8faa7b5c0fe000f121111b4caefa155250dfe03aab8060d191fd1ef89c9fc1ca41992d2ad035c881cbc6848e500c1ceb583e305d4a76b9c001d2ddc50373581a8e8f3a6fb3a54d80e7d6be9077f7d2f83eae69ab80ba2bbea5516b8de84565ae0d50efa6a4b803e85f90a00d41d6eb28e5b0db9496349a368430766a4c181eaa159729ca297521d6e251243910416845931835d0fd2969b2bae06465dcdc3c007485b3a093c950c4a2d36e0c4edc11bbd788f0314f5fa97579ec635ca183b23dee68e715445ae9f43711de0f850015efaae06f58cad72104ceef4cdadf422c34497a211e62897c816ce66cdd95525748ed056d826a6465fa1397683ea542cf752cbbec27f7305f50655e44b11d3525faef8da70e638266aff96e8eb4ecc9261a9566a33b95d50d7a057f6058c28c04dd2d0a9ab00285ad9f151ecb89f8af25f62a934c27d52bfe4833088726873a42de1470457ff46321dedadf87fbe5c9d5066ef01ba298a78a111408bd31e98700b3ab78a14c25ca3c8e147d3e0c373705777046d0999582fe881cfabbefbace168afa830233ed10b9fcd4eec689bd3dd7631f3657cac4811ffa0c255a4308392970766ab481ccb2a03b207b8c4c08acbae28e5114374ad13d2dd6ba6ef68ed4f0c0d6e9e066d9373a3024eb8ec4c69826585bb8a18226d586ed11091d05dc7f11dee07645a0bca85693beddd410347c37b11629d75d5b0032da6ebd840a3da1dd156ee828a2d0d8616884a8ae04c34cd5172d343bfe31291156cfebc91771f2071e9d9fc952854b1d835e6fae22616f3f23e43d22602bf8ea0778190b77edb981490dfde1de434721180ab3c156dc1a307cf113db202f02d827e0dadb5f8e9864475d99e154dd622c48739df65fece4f3ec1735b71c7bb59c66dadd2c95007152ac78afc41a7f020a1d717f6a15137c9c1741c33cc863c74ffc4e1a9f8bde49f0a1bb33bce0544eea9f346ab646ff06fd22b47694a4ae8290c79c5c53408a801250be63213b015213db615b8a0748af5525b4482a7dfc9be67a90b85c22cd491c0a441546a0a1d8589e1ddc1a6e565d36e27b1f110e1241562e1b3be17d154af5e4f86031a3f8d05ca33711aebc9b4814e219a37b6f214a3c907cb6c99d1c90765989f69c33eb76ab80230ec36262bd57460b271a88a7bd42568edf339a6b75e3ed09eae8039552c17e4d42e104a04f793f80fc3154190f154ef8161b754773489a2fc4154f380f71e61ac3b5a81376fbe8447a4b2072e5e42619d8f12a00050da16344c6d680be3e96495b293085570401fe8ccfa18801a0111cc2144085374324947518c47e9e93853d8d9931b1539d6c1b097f689b7f6b0b0f1040a0b2292d3968e10a75d58561e88aa22f73aa7eaedcc3c53134a89238cc941e70ee881af159bcc20d9518cb5d6881c10b3a0f59ce67743ec77a05c234ac85b5550af15e2d264db834d5ef7f68b3065fe120f3909c08bd6fdcf4b0380bc7bc018820afbd064dc7294bb6e3053b52883179d3ab85aaa03775b1919d3c78d1f596b01d1a1c9628cca7ef33d8b03d8949e24ef62ad0e4780a962413f204f0ef2db85751530e15ef9291a363390a60af8e5d6843999946d1e2ae8d36517f5a12244bd9a5b08cb5474698e09de34082a290bd5bfccb92d9c01b44bde830d7928034c7a08facc1a4919bb6da2df8f186aa1b2af53ace2b8b3d21c9132f364c63da742b24b99b63fdf227066915dd9970ab94bf217d24a519d11c35154e4f8f69788055216ecc8942622d2f533259baf6d1240c6a7abc04d371469f4c26c2cf32823c6f07166ebdd0bd336910ecadb67cf7828e131c1a4d898f9a3ed320fb466180c3eb5a3a1f8abd014aae438fdca18e69f5303ad8d29f43d9746bf4472accf7881d622793333ccd78628996c9e5f25007d9933019a79dc6021405582bb01f71c87a68e382efa65a9fa1a6119e2923f179f32b28c89d837b08d5b085d06cecde2dc5a35b2c0ec57d9318f28c558730b5bc82a43ae85eb4ea2bcf42241e57706d6ba636196c145b40b600a73bb6590d657f297e39bf8f1f8d1cfd55c7afcee6db7c2c4b3d3765ab4d3c1b7dd5af27673cd5b37b570cd84602f39aaaded96d0a80d4b89270d6801908537b58ddb6d297b8595205b99446c49bad239666cc5762bcca202ce0a087002f1aededa4db8a3fe55ba74f68fd16ebf463f72f86be066d1d4c8332ccc502413bb77efd21b9ab0634a03ce9569952cee92093bc7f82d9af82c301acb1a7357404fed36e0c96e1668b1768b27cf679b0dd05f344bbb5130ef863861b35bdbeb36a4a4d9ade32a9476438d85f326733cae8c63583c5b318b63ef425268b7f0d38c79f16d43bc3ea7edd630e572d77087a5f0d95cdad9cdeb5d478844ebf98a4a904d6d3f16ab42707c617caee4cb2b3d072331b99d6b85c1581cab1cb358d6e33eb3db30cd7990bfaeedb9d97ecf6e182e8f940c01b246e9174fe4810f2dd7740346b9ec16d03b6737461703cafac326a76f41f305f558af5bcc855776bb007e26059de77fb4367a6437f80b01b4653c658c09d5820674b754805c04d7b783f78892e3df53b85a2f6948d1d782f03ec494d7e2a93ba1685e1cb84338065416297611482b7d0a765665d48c3f3a3d3fedd01734a636ae979f8b1c16a9a1d46f667f8ea898a283d1a9b227fdb2eaf7750744cd9b512ec8ddc620e5fc53b6a26adc6df748084871d65eb28001cc501d51413a85bb7568f110dc51cfbdda286ec91fb7711407f6eea9fef5e6e4940c735a7633141bd0aa5e52b26910eda8165178afb7ec18b527188f73d661af5d6fe1de8a46f4a6581474c87f41aeb7f279b300784bafd82fc528e55a18bd67f1292609d8327f04b93c9b308aefa2f9aeaddefa3e005c9b8d83c489d8b5fb63e700192c7948dbe98dda89b202ff0595e0160983f017bb49540df11e3102f463a29eed083809a51ae2f8582b04ab197033d161c91045545d6d3fad015eb10f3e1a110fc9029906207c4fd7559de01eb2ef23720dc169bf8fc8c15c9a2b73703d586507b546ded2f98d63eb3a9f8ea10be21609f66f37e8bef53de6d82e9963668438e093e93fb7cd69f56e04c3a10ecca2382db656088f7b7108d4d8ba6a0d9d152ab583bb88ec1c4a552ae42c95678faad8baba4e669dcf06e7448257ba43f4dbcd530c36a3a04f42a8a8b3baa6144625042f9789b2610e07a070ec95770b5bde082257558645e93d6595fc2f61e00288cb15467664bcea7aaaef5b895d40fdbf48582c9755d57e2cab5b34702684d812f3e3f7c3a96b0828a674d0d8aa7d27a23b6221bac20f7142d76fb8f4fd50d3465a69a83561e867d9ab33e8d9b468e4164604403b438357aa18793c53e2f17858398eb2371b5b2f6a95d2c069d64c6765b136bdf8a8d03089138b406f114c98670a3495d476f18a751121e5a80d23cd47b6858501e8bd1ee0cb088ada7077bfb46adc008e9d0cb8e0391da52107511b4288856679ee07c79e194915f718983928830abfdfb5e7658bf9b4c9a131324dd8cbb8161e8175afa78dafeb810ca76c00e0c008325b0f9eb6c063f88b8eb44dfd4c0d7952bfd838e21a1580efb773d8b50db649070481648823d6d8035a6f3919a588467bc4c957f7a9d4111a57c6a5c40de573683ff02187202b7910c75b6b4606a2b91eddf9ea3f9570840ec2382871b379b06a036fe240b01219e2082b7a40cb37eeb3d4513575e152fe9193e183397ce82148258fc4f161fdc870ac973c6e144b39c812209d9f382058e987f8c4a63d83242bd8e5c953d9ed9b26fde06655dd10e3609b4726ccc5f49088b0690b92cbd6048a1f43ab5f895e189ba1feca1bd20ea60d78214f1c966ef97a1a4afbf73966b66098289a1ef6a03baae0a95e4dca419585dc37b3a8386c2e65b48f5d8ca2be22cb095758bee5f962135360ec8457c38f59e850a31e6b98e89c8ffa1d45f5acb09de101322bf29e447a8f72a6ba894c4135f58400920351441200d3d41d108049e4f60abb2160a276ed165504319e09784541ee67ae40ecd9104030c25840c4b0f2fbe09cc407979a969f22704f44601e03f7443667303db9184cc7a913bfb8beb60a0ecee342e8005d5da8b6c39adb8e134b224d31a7d5e0d989198dd3b05c74ad4a05bb2687ae810a59b41e32da927e6159324a4f082790e34065976bf239d03485ac7693f2e0d6538970f359946b85b8869ff4801fa969b116e24c1c1ef58f880079fa50f1d50d54666a0aca5ab7b28925baeb575eb9f6da915fb4e4db44bf3840770d944fdf158d3c7d0925c16c7f64f1645aa9aca67f20dc1b4b4838eb3157b7b308f60d5605991beddf57e89b2fa0e7b28ea93149140e9c47ff37971452e042a7d14068f58c79d4f54e3d6c7057da7b9982151a53b2f73285ab3456d2fb99072b535bd096501727a8d5cefbd0403b463a07749d88e6f0e3561eb87e42e1665b1b9fc9a1a7347ac94a962379d239bedac087bf3b013254a39e5ff9a3454345d46203d4dc69072fc5d2ff2897fe37c524871a8cfdc5526ad546d5a611c1cb64594c90e0fa1edac5d2ff92fa5ec99ebd4dd6a7f6e6aaf6d6f66ad93fce2703bba2b1ce4b574806a9a44ef4f2fe5fa8d6c5759160d44dbdfa0ddda11d4222b832064f1bb5360391f2528b86d91968ca98c9cef525e8735cf20cbc17052287266ea51b62f2112c906994348fa432b83c24139a991e1e31d8a131e65fe781baf83728880322853343fc14df0d2bb4d3f487efbea88579951472bec2d2b0e5965ec198b5072bff91d992605df6f283bb0aeb1aff493cd065958df2c708596c068ccbf88af1d70932469f316394b8d1f8c9418d3b0d31fa9a8d59460f5b256b53ca4b18b88a9f630cc9c2bedc72320b8d156022891bb81d515a9d2259cad13b69fd1e4cbbf9bff2762ffb7109f81e889c660a3bb231d95396e85cb37ff3de1467d95999199d2df00cbcff9f7ebf2a3b629ed3fb1390334887446cc0241369b92e4e08ab8d9695d50fa10331c1a0abcf24e8dc9250d88f480cfa3fadb60d94c4356f35f6cdb66f76da270603fdcd090716eac797ddef6e3be05115adc5b2c7521da62254305b8150526e8baa043b6ee5f774c3a705273cf8fbaf7190501de6a018343aaa0d11046b08012dfd14a8fe7286c33f10333312d0ddee12f0eab38609526f9b06c913d3304c4045a92e3fddecc97b4ad5059d42a1fd7bd892b85a5505771432b07c52ae764707948a89898a927e3cac57d56ac4bb5c13685e82fd33ed9b0d958a82ca576ddc8cb6475735d0c0900672b6ad404f57ab0b3431fb6e83da56cc399302eefbd36382c3810a3631e9c35b35629988527cdd274476d59d57f9df8a3087c08c650ca71ea45d5acdb55bfcfd5c5f2a071333af3ec91f5a0d45736cd2511f2015ea005fcf9a48b60fac62b22b5fbde121a1c24342a7b475caa940df13abff8ca1d358c7c6c940598401e15e29ed11e38b15220f6717cdc45e8f4a08460f6845c52515ef086239c1e6d1c9fc509369fcf06e1122944f3c03fe548f808fecb34235fd40bcfbf0cb2c2d88bd4d26edafaaab630446fdd4ba966312dce1744e9bbebcafc47a7e45be6731d670756bd096bb27d5c26f3a8b0450fd2a44fe53abdb29f81bfb29320a4b676aa5f6046d12faa789a3d4380cf4cce5e6c27b2093ebc69913e81e95b18b21068c69f329a9adbd976863004d34b01522b8c0b5da9565d3c2757d6b87f4a43ae80a5408ac20fcdac39ab07f2e2ea138053c8252df0860bbc11be9f6ebc3a049006e69306c7c893c980c18f53f9db461ae24c48d895fb71311fe538808e87f6f66f25540e4781001c702edef0065af2bb2e304edc70be3edfa37767da839e3dbf553e09ad17334355bb4c796ceeb09dda466425ca8cc4bd5c8dbac081c50a3cd6e77bd8a63c7f9270e8e26f9fc54b8c972673ff92e6471fd48308183d48c1679d6d6a043e4d6574e135d8b84123a02dd6bd7af703148ad7dd07f2da1ba8e8bbb224ffcd7afd702bc962f633750d833dd6e22f8aea356916c998a383016b5133b61dd2515a791a45f93b38115714fe7edd38f23d6518b7f5fe4a1cbb074d0be3f92f012f2003df6968d1b1b4c50f5e878f349b4fdbe55191958d99340c4d871a3f2a03e6ed98171b0ad57d4d5c720553ff7b8707121c707260af6182d992b34f8741754a516f1ce1eb55247ad508fca43abb160c5103601a8ed69c29bd1a865d4eeaa5f53c9061a51a366336b4a11a405e2594c622557f500a838ad25a6256685cda036b0f45fba498b48c5edda55f1bb64a383e8b03ff4a367735e1004674e087fa52e3aec773dde23eb7cd09358cc2a4112a1690bb6fa8639e8a276fd8c45498fe28c474fd76f82c24493b077648d9121e1a89f1c25bbd814d98befa6e17ad986ab4e37a17485496c541912ce7f0d3474d3ac0e26c14d1c5c05263616567d4829038b5abc5fabb90208c5464a0d7998d9d854512cd6b38aa7cc1c5245ee3779191b267b3a679a22654bf93ac893b9381593c1776332847fe3d0f3192b22de203519104c5580b4c4827781eeb4fa8c9d316103849970b08d8985a216da655e8dfa888a60d649231ed5260a918047fbc206a3e470ffbfa4b11f10630489155299789c9b54b137ad33461de49828a29bdeb4ac651dcf8355de8ea57303a1a655c7cc49595675a171f3c72cebd8518b27c203deb4b9b139dc2fd66626cf75ae6680c833cf07cd124c2aa2a943f90aeb17b2d13831db43ed265d79a52abac2f121a544eb616e6e6d6d088d8c4df788b5e86ca6c4720b3712d0a3641fc401476a4d182ff5b663e6d596155ca620e24378811b2d8828efa446bdfa28d1c7a6d19bc576919d9e9e39bd72690f46503ea84dfffb2c114d2885763015c732f503fc61e466fbc679821cfde6687d924628399b2a617d3aa83356f59e8e611e89493e0fe50a8aa63100feac3aa41c47f95cb59d825be662489e47fca0450da8590227cc56932f1a2b0526729289443ca09654bee9c7a2ac1fc96b33e3096787d1a387edc004d44ecb073af674d67c95fbce616c396fea683329f57285822faacc98f6d2fe9efd6350d21efe25f653514e0f5e5050cf0b17a50e7a747b048ef69fb68dead340cdbb323799a81bde227c8c5c2b627f47a881ef6942391ca0a7bd25920cf7266258401efa9710e4e1bc1b31b59f97f1d989e9c7830034bef488163d70fc258c1ec39ebd78cfa0b1cad2277855309351e7e3a54261f905b8a098d7c5f78ee44ce5e3e19212626df2f110556db83b69f1a16b70b7ec10d1831457a5870ac8a770f302c499c4de327eb6859b7f65725c46dce3c161e0622a7d4202d1b5240a14d2800e188e0dc96b247c67ed7cee2502703bfedb3b92a90b6cc9365639b61d399ec6bc6291cec83fb2fe9683074092c438986b7838249780e4b9fde8425635d7aa0a7638f00c19396417b98f2f9bf5f54829e3919356597a5d876a92ec18acf56280206b9d8076d9c2fbf2fad4299e99267854c92a5f375f60f012800c1c18844bc6a6f987ec05eb1f748c72bf004c189b068dc69874654d5e873113dff8e2a4b911cfef6f0c5538070425f8c0ff7834635a2234415b7771c7e7e26003a12a4129a89965fb8f6010590d5f6dfa2cac96113a34a0ba9e64e0aeef7513d2578cfeb188b1b78f3e2ea8c3c31dfa016b674d99cf3ead7c4ef3ba9c90109d51f00041436289a05527301b4e9b3e1a3e5a8b47a458df60b73871e28f04f3fd52cfda10dc2d19931e64ddbdf145a5978c612894f67191f327ee79411961d283476cc235d58f477c622b0e521dadc3fc9d87cd47ddef1d76611d5cc04af7c1e965af08790d38b3ff5877645737a9f3d992e03ac3a5d421dc3285014eb9c178671d9be37b207b93f8fccc6088ec3bee9b62e90f81d743fb0ecc19689fbcec1ace639b72b15d3754eb383bfa36f0c5575b6e4b7196b7b7dd58f74289d97fd256e64f9294544470627d48d1f47ff3dfe257a07e5709db7333052b681cb6e73287ab340edbeb2b5310e14a68b2d409b5c95e7ccdd5223672b889c59d6bd19047d2b6df22466ca86bd137eb9342f5d97c7abfbfdc2e2a70caa4f65a186ce24ace7d297bb0b6f49ebeb769f883f13e1235585891a7626143c14e2f87e7b5e1b56d492a67d719c6e02524088eb2831ab52efaacacd54931dc95a38f4d512a0e2759e7c2cac3286c3148fcb4a0727f6e3f5235ea56636b2c9c857312dce8b3c54558fd092405fffd70a659bd9c48ab10818c26bfb86fad65d4356a9bb50d84ad1017aea22c4e5e117606789525f629142e07307b251d187d13676d95eba226dcd2626e00917253e9cfc2511a9a81192a4082954f9e336defe7d996462d0357980c2df664e2b46fe73b4b3b3565305943e8adb7446e406447d5c9588b2ecfb7167e79f9f2d28ba5b9ef016878752c6e6305c893a4adb71c77f88b99a9e667918b3c1ac30565c06d4fee35830402b404044c77a51d3232cff8c09d6e6d01735d7d6e6219a75f037f44d3069f4b3ded0074c55b1db7cf8bb49b9eae817f25207a34e375d1b83bd4ab46f3d113a83e31e48ddbc38098ae4fdb66a8dc6d8aaa49c26e3034f52925e6280d97c2411c550b3d6b80421a370ab396c9b2481882163e4833d627374915691cb208dc17711eb0945080e8aa1153b64c08191bbcd08900c75d18839f42ed86879787174f5e826aa32d121f32324f9e317cd0db700b4c84821ccadda1ca4e56472114d61842991ee6f8f5b080cbd383865f334c39a6de301a85c385413ac7626d1c8284ffa68561ce825a6428b7509afbee0eeaf7ca10e19e6289ae7076ab98aedbe393a5e46a0701d3a9d23ae306cecf40e155f8b13356fdbfdd28bf849092882c270e1e011ad91bf17253731d24c396a17b48184c386548692ed8a1b2f96e64c3d6d380d80d8f4336bb87d55e050377b49f0b43f5e42ad35e9fe8c7e8b521a5d82be48206f862a0ddf0a35f8bdba1cc3512cce35b8ca0ef1f1cb3ed996dcf9a7560d79ad81bf725dae90846af0d67071a60d715c0803b30ee0c81a709fb5d18fb14ee802f792e18ed6d8fb61659d80528c860a321e808769a00e04d5a14288b6800af5a0273288469f2f57a9c115e8a4bc96fd47e2cded41794d3f3702f00d7f4ba1d5603d437115d3a10fb15f3889d74de9610bbdb991264767c356e25b7016e97a804f11ea9e71851c7c698cdc6f3c7a8c9851bed8010a667e50f109a1112483b0437fe0121f70f6ed790d7418afa3fee0e0f73d7d35ccdffd02d43c67a8f079af3a79d6565ca92d5ecde4ce73d59a3169c0056182676932aee1026f1e90fd580237894fb98001d3e2b5d5d53dfb41f19cf30b7b49d3596e2a16a27f80b26f6fd44f037e1e0cd713167e933a36b6be46131201f123330cc01dc4582511c3810c801c0db5a41d60aceb86aafb4a888e246eff4a9dc20f041a4c2374ba768d1ae2bbbfdb92ffd0b9f4b26e3cea2bf51c0579278f6d49cf10e97e9215fcb3bcc321c31954362192a201d90c3584f05a9828023bf5dbfae159edb35247ecfa87ae1e65dcf32e4f990219671468bd22d31b34d6e4a7d58cc7fbedebaeecdbce1d60549531de44db20c11c3e550bb17129c0db3a6ced644c98e7865d2c78993b1d290a7372f6f0fe8a8fb58f77061ef2e933285bacb178156658e09eca46eec2927536d267ab8386699fc684fc391cf93854312bce969ada8c59a52bebb126122712c2cbbab48d206e37fce9626e0c96df8fddbca53e64259c50756d3cb45777880886d41595414c0c829054e8d5f14ae9e49a56da1fbe2d711a12c07d331edc88248a5a7ea69a48301399211a3aa951cf367a5b16279bdd854739af5e7b8438aa54f15613b42ee1c4e439ecfe3e1709a25cd099f7668b7e5c871a4fbf21311aeb70a29ffc7db862c32080b00a5843b70c856890ed84bec82e221df3899a845d92325044d3fcc7026432a5befd6d3b75613aef9ac265857f16149bd959722cd334d2daffec34abdbc37043b577da22fae68f874455656c791bcb54e701eb5d4ee102fcaebf19dd810e8795de4e7a4ffbb7fe50addd97f4ea09ff1277f67c70212db18f8b1a820f1e38b1922e0a0ba4b426011b6038ad980fba253f1278a4a2a5f8ab9bc21083e9020751506d11d75be34e2dec26bc65296fff814c2612ffe0119389918ddf15e7f380ad1c0d6117dedb680d9aa31fd44dee1c4bfe27c554c8138212a424156dc5ec802cae7ac999086d4018c9677707ec0d43e647d293770d497101580b771ab295418d4a1e68d0ab5802db458e8d00ce4a096599db16a4ba897aa161f9349648aa3f32cb6aa006de0ba36b1cc5cd5b13d82b5f879fef5f48daa900efb6a6a057e42e746285bbd84ccdf5a3ac90939632c1a4da88ebb4784baad4d6e74bad20eb54eed00e758c34d275556810204fe0fe708c3b69725b52cdda6c598f61fa58854e70ee011040d81dca10762456321f5035c2d52bd7bbc086656fc43b5e6f3d9e8f93cbbb0e8add9b677df9d3eb95042287a768d17a5f318cd4ae66d138d0d125d5bf85cd9463d5bf312c64428b62d742612992cda36e6b6eb701192606248488a6f2be06a5b722e5bd73281907400e5b0857f1e2e36c9ba757b6bdb762735e97f7e72f0cdfedb31ef383164059b686cae6d0884dac12e4475d4cf5ed2ecf15192224f4d2adcfd94492b72a7f9934d4ac696f2b34a3c6da38f4ca1eadbb1334c245b1c06f98db4cbc57c2a0ce84474d7af5dc3b5a76d9e8eb3bd574434a596471e907026ce42867936c684c3feb2e09aebd6703ee0d921695b88008b71770e764437159fee9c570178dd38f16e64eade876d8930541a29b253ee2797fc63cc4867ed8eb0d4330daa9c6a159555d5e14ca8844480056d0b03a95e1fe634b6787d4c9a790f3f5a250f8a5b13f5ccdf7c509c095f62049774eaa77b86f87b9d346c1b063606767d6e6c1472b6c526d5b0c1b561b4ca66dbf723f7eb7df10cb7c5d6b80b4001968012ac04da6c1be836967f4cf11ec5488d99866a88aeaef0aa8a5b5634efd083b5f25b1c380e67f8bc4c341f86200279ecadcc88984088109c64ba630f470332d807cd8d09ebebbb26685829566294c081fc0b34bc67503a4985bb3c83003a268f06ab313ce528c3843bb4a439a7e4732149ce9d7201923c9db39ffc835c373796788561435e0b757a9d1afb6d7e381b398855d8581858a5f9d9a96886138e88c3577a7ae46e6bd990ab1cfe58fbb461fd3c78580516566c2c7a76f5ed2093090c6a78926d4f6e54486ffd2c114e2ba1a36b5289d39ad62f2c9df350c52c6f3652fdd806aa5e0c1f1f3cc323133ad33bb7555cf40bbcb7ddb8b1bdb581dbf49053706c1b66cc0c67ef505cdce944c1f4cb25779f690eedef304b53c1763a7a0cc87c45fb4a4448dd4579e4566c19a32740e2e27c234fd34ae91cf8bfa12194c0c20b6348b18d6e11a2d210723252a447e7f4721a54975fced0aca681bac838416b58bae1351d075e63a248c2672cbaa1294d67aedd53b0e809d93bffdbe63a2f54a67399dc6f6c6ed954093ade6df3b3f65c14bd0c7d8e3f293b6f672bc560db305fa63efec5b217db0bb04d82ac360a2e76bd5f9b7a30aea1afeda32f18968ef909b0a96a5ba97e5b5c9e59e10c44865e5b109fb7c75fec26c68e0726f6c35b35bd83a3149b894f06a39bbe58a0bc09d1584ca06ab668069b8f83c04bd436266410eac21209e4933210f05a3d4b484a9546da3718eac27d2959d746df6155bc3613f04ab717e37653a5c7dae8f541b741236d3438df3a63429d60a361b198a0a033ac28198fa525bca31958fbed2fe90080637d02939f9d79723240b5b505bebc170bd8dbfa8a10098991023f07b432cfb3d955c6af3cce409d79d81058c207424e274f24a12d5bfb6ab72d03c1caa6b5255d30dd3ab27c890e1aa16887f1b09eea6808789e35f8013c47026e61cc60db3c633fb43608a7bf6d25bd6c04bbce5c5b5f9285d060b1aafb6f21108cd8d0accdfbb0a6ed43531fda608731be770b2d4c311748495c884a79eadb8d2c02be0f7855a8a77a56b69dc53ec5c4f163961b9aacdc21293f204e400b0b2a6bcba06cb595b03bd3bcd556ed479546ee2d83c1b36bb146565b0986331cd4655746197204d6a6b138f94b2923351de43485596dac33cac8618d73b5856ccd5a8d494ce97f5ebdd874a3c7c6556dbf8c37d10e6ec9b03aad0348666113de16ff0a0a22624f4bdc96a49ca6134689f1894bfcf0b4215d7686278678c8c904598f9ed0d316f56bb3864e02c536de1a75b0ae0d8f3e0608c4ee87765ec0be7f0a86d94648de49185dfc83c7a2c536d413aee30f4c32d6860cc006495b1f7e007c774d22a9d69ed4ee20bd76a019d39659d77884f4b4e4d27f8dc75d7ad8bb13b5c2634875d5c6c7314f1b8d2b0fc25605ff0b9ddd9a11bcca4390b80d0a089a7cc45004ca8861e6e76d252cc33f0a036dfddac84cf7b1b6255040934dbd00247dfbff97958054c630e1c7b0a72cfd1a9cd5ac07df14d83497364dc682bc069ad9340a04c8c5446e2b5d2c7ae2edf588d8dc91582fb943f2080e5639dcae61c242439d5034a55282994b12c110a98d59ad4880a381a9ce0b9f1cb86a9ac46a50fa4acba581ee2e4c0733caca857a7a429fb73184a30c8b2bd58a6c42310ff57961f6a385866bc42bd3ee6b81262f1a4e902d9040b2ce9885d9ba940c8cbd2b4bc61bd247a4654dd501ba609417101a1d9db21d9d8f9260e6b11666fabbf69185ec2df37ec03c9d4b6fe241ccc62718280ace783690c978c2410cba06a5a6c97921261fd95ab00c36fa73f82b251a4f3408f1d09a6034c9b27c7293d108823e4d6a9a016a6cecb47a8ed8b80fc6587d9cfdd869399a5ea0ced26ea2096db0d76da54349496da8ab60a6b307a0f1d0c5a93ca0a02225c98d58201bdfcedc1d07f782534f582a45b02ad5e11ebf21b68fe81db4bc40704fb91ea284c34ff8dd64e35fa5a2488808c52700339a61bc5897e1199def402dd0d6c802f04e7dc04dd90c0000008014a84900065d906229f51a04d110c91d904bc842d1976424dbebce7c528ff62263c1f34e853f47b7febf00eacd0609b1f7e4d7b6e5eb1e2cffe915867c01d79e713328d6a1f8ff47f4260c20dd055bb18043794e4384a03c16e5489348b76d5f90b1142855d02cb4cc3b929a730ddd1fb162c076e109d61b70fb4c407194ddc396273d0492de9037161cc1ae3571bbe0721e5f479c228054690e8a86e2ded9880deb812b04f934374b64215a1c4dbdb73a254eb22e5ec531ca152d454fa2a9d0813d2f3ab985f3660b6f3bb2a4d132ff691cdcf22054aed7a4b97288504317d5a686634ed83a6895d7dcc73ddfaf734d2e3419af1605875aaa489bf71e302e231f959ec5f526a2e759855ec4d93f50de27d820a322a5ce076c0f426f372e491844cab22dc6eb4124da87e3120691011ea2c30266573ef05d0953204d93acbb821ee4dff5814d328d9d75c30d289ad655947fc855febc6c7eeaa5d13f4d82f9042427c328818ac3ed8150201dc17ced7220da055c53628c876ca7cd7469cf8cd5a5a242487437410828d017a64677eae9eee1481c4c7ef3f60ac0cf1dac792d8c0d2b5ceb47ca6e9cbbce3c674795e3e5f62b90271ca87eeeb067399a25ba43abac419002b7e2dc2950b0efc5f56acca3ccfcf8b98b4ffbdbe12f444427f25c54f4167edf126eee69d9dc351482dfb89dec9f88b4f14ba68048f1dd2d969a05d901674139aa6c96d6ae6267a8bbcb3d9c0ec867a90fe04a7017661c4484063dee0c50936c6f320d6dff73808e25f52f9695c3977d002a84ddb13f1a4598473a527703d9fa1f4980ba034c67333e6774eb581f2c2b24e79334226cebab7477f835e533f06116fe09a3ce7ce7cfa33716bc234f1d987d0c43ab854dc093c175c2829f649d90e17942538610c1899ba39888b46ababe77b49645e64731cba2f42446da7d151f6cf6537c987abfa90aeb7a06d3d4f57a7ab6d95d05f908ade27a223e6def2a556a32b563588911df7c0083c57a0efe2192649520f458c095e9612734d05f0bb0059315100165dbd4792c87de3f54bc4a195c2f80ec604f283cdd2d193b84d0231501345f37487ec3e785460a3dfdedc5a384690241eb4151230a98c7031750607b8e55553d3af78dad0f691b020605b63916fc445a5396f7ff551e738a2527e9a45881a0c7e4a3878e26feba8b70fc58f545e61a26a9daa59de5e35bbe1d2e5e5eb02c86a15bc1d82a29465dd0f759766cb6a5032eab0dd6c01e5a65f8a5d8a92f3d34c045b94953a755213e3cb4f58d7052563434dbb4839f70a606007c8085c731c7ccc25a6c7135ac478e0ecd5991d81ad49521e20fe2bd55d54d6be7714313354d4f47b5ca730733f40d8dac81030ae5d0ca289f9404b45843105e53a4fba695185a0916f5d42487c6eeba6be9032d243e850ddd2cbecd102a0e6d25740eb6204f7168c98269b77a1e1673fccb80b65ebba5bd6bf1f586b65b29e825e8d06a0eab2c7df02648b9a11128ac18f47b64ac0c275aef1ac6fba89bc6383b6c46fce81a5d2d46c995202d262092eb2e7b1bc2cc6db475f077db6bbce28d1610048064275d2cde1f65a361c4f664d7a4361b4e7f9d6b346d46ce29134892a11434658da69170afe738a612379f55aa4a94b9f5ad6aa6622570b9ed366ba5e3cc44fed6a3aa6a12c86f912fb68a6b3ca13a563db0833cabaa904ce256f3b2d5b8860785bdae921cf05a454d425c666e4cd414d1c8724333b652722fb1b738c542d45ad1a824b45418c9a91bb0965a2aec16242e38f389118a1e5534b169ef45f4a2018c18e9f604141fb8a7d975b7e43231ce0ae7130aed98bdcb3c85cfaa8e5c2704fa099ec8c46fdd908bace9cb6363d71b1d3069a6e7e3bdf3ae74459a8d778ce224240f9bda829262146df26fd3d709cddc802ec7cce4b8bd87668841b97fea4de6a7e44063ec552b51dcf03186668cde1524c34f0d0a9a3940687621d91c8cb201cd16accd88d8a7e7dbd549409923747768ca1e03eb0f17028b59172e3ade635a93f226b7c68e05fc8007ae714aa539db44f6a9988976dd8da51da226b3f52aa61b7204d1ed35046651bf11dc7244870836439f52251a9e1130df104b6ab4d18e3353b4c3c42e5a9035c3c51cb61207480404590828849a49e4d019fc2d5daac12d541da0ab9a5e4614f64bed3dc49dfdc6bbe86566a573a935906c2393663e9b973d4c6635e66afd8afc9626f0ffbfc2ec791c414990e42633c6c233fcfd25eac743d1c6cfb2c6a5630d394215a0535b7f3ac742c2db5167a1816120896efc6b1a2c71c298672c9b1128684bb0398aee00c811004b985846a42e8d0f456b8ee5488e54ac764cbcc43a8f1be3b5dd10940f90df66f8ef45cd901038a42bfc0029aa70b712ed9d45976689e860ac0118c5ebf07e3d40c60c6743935e7428e5c4abf4e87b4cee23984e415638233c005ea111bd99f717fdfcb7e3f9122ccc2ade5aae093a678a95c91ea21cd636cf72028b8280bf0f0449d26965f068551f892b8233e186ed774491086153e349373e448270377c272d400436c2cdcd14df3d983979e0a758815a99d3fbaf1456082b150a32c66f50c2b2b3c0e98d5601915b7eacfca7cf162339b8150fa01549a7cec882cb79466c73fd21d8824b32dadfa342127c09bf3cc0c46a7401af12a3038fc8561ed04de88ceae712c191d86e074af2b5fecda62e6f59fe7d85fac47421aaca61267efcaa55fb17871d3caf53210f98ab2218ff89fa9aaaff0bac71e31c803881f4678ed466f974f634d4373b455965f1663399163b52591790df42ee8eb8e58b8d4854c4b50bbdf2218854b30c455d10a585efbcf04ec2f55f1d43480cddc01a2a745ca3a93a5532f9c4ca41cf604b96c930ec26f31bb969336b130a7b914e7ed80c711c1189c3764a217b617e88845aed54347b4895247aa0a3257b6aa604f7c958b246769738cd4cd2ae48f9e56363ecbec42f854840151ac904a4ea4e8836e8243e995902d9e407e7f8e1579f91ab932a8b7f6e6560ffe8699129036876d91e1c955b332c6319d3b7d6c8d64971d3d42b8d4a85e170c3dd26ead393d19223000f19ab792d876f791eed22add9f32ddffa5fd1383462b17b01ce9352b512bbbf730ddefe494ca6f96ea49787df0ac9a2a1af0de94a4f6d3f9e2daf450cb6e8270380fa1371282b201ea802c26b66ff11033f18606ad731ff76d1e51cceb97ef6fa702fa30ecc387513448f21144e480b8e4a6299c8ad6fdf48d81ece1e468751844045cb9f0a2c5635462ddf6e06a725f0a2087f3d9771b9c055570a42f0455ad469370c9ee7faebdf82b1e9ac3c97ec74be1dbe7b3b79ecf1506756478ee7d2a2007e493f4818969c0b05057ad617a96240c0a2e206684223fd9dcb6d13ebb25bd1eb69f4330978ae23c106fe95cfee5cbd4fffb00d5aec01704e76f2759970cbe83c1a3cea09e29d078669fa513c97e4fa062670d3a2527c4ade2060308520e084b7e63fcb21a9922780eba005a9c0dc3b1afcaca637d152b9c776d4555ce01280b42c3c4609b6b3e9edd705993f51bd3201753fa62076f5dbddb5a6dd30c362a0987906c030605affb56f2a79bfd6f114d6f1edef1fdd1a9141dd11d5ca07988d19d434a81e47541bd1d7a18ca227365197bbf15623f564975a3d1c51cdf12c85f2e7bbd8b782a43890e66e043da2ba3533f4cd13eec7199ccd50fbd879ef826182ef812a24cb24a9acc46b320e3068a783a1a8577ac5231c1aaba2bd0c43cf31261e7e1c6c73a9e65252ecb5174504be9d0c8d4689f7267c35c034701e4aaa67466018431f0c6fa166354ce001ac738f1466ca02c03cf4e534fd59e0227cad06659fe4819ec1fbd627d23732c710210c1a48d681a9163214882e6a4e93a546b127f36e72b9f1aaddce250977d3df72ec54aa05aee3c1e7cb275f64d5473f3f71ec4d13f10444bb9e8045af21c87036e4c1d41c24636e79f5fad6216e19b5e1e57de7c19ec63d67d5eecc25f31c6617ee31b17dd5c30c8ffaf031b39f78f937f3ae830131a6d19d79b5838555b24d2bdff6b41784d531bc180f7777b08d6628ff0e76fa2f45aa9d8c9ef90651f0921a8b4fc87c1d32871d07a58ec4fb971aa50038d85bb944cae85700fe855aa7510495ef0d124b8525703027558b1193050b552c2c99eebfd59dd8d4bd57a2c1fe4fa975fd6b033c132f83a5e6fa513fa02ac124fd203cc7cb9eaada9e4bfa51b154aef9735f842cabafd4bb5e2d095f41d27b530a902805b004afb562a0ce1a446c8081662ba8dabc3ee9519a04f80851f9db6c4cc65b5e67b8ac22ac78c05199ececdc299d4c5f066d5315b5e47a39517ba61c755f931ae29aa6441d51f0ff4f92138f0bd3e7cf36e041aa02b232d3a5662ba00c4e0557dbc37a842bdcfb5581dac5cf88b0a46dcbbe90c057df1b4d9b8fa6629e2bfaa3308ea9f93cbe4e51d042c12b3648879acaa9f828bd5122a1431b1307a906cc03c3955567c0aebb7681ae30192ad27c0c18c9b12780eff7d3d1482c8239da2d210f3b1830518542d82b2d602896cb897ddfe2320f8f4e4ce0ab9c3685300d9a3d6e2746fa15409e2fea58754db5a38d43f9731290d0bc7793ec2f08805f9cb25da2553ee40030a11cd03130f918ccdc6c92dbc9846f8f21edcfd9ff952ae2bd8afc1c26118c22222a99039e86d8f1fe2f82318ecd4b331e3045facc51cdff65361abed0e74b4032ff97ee851c8fd6b3842ee1f7c7fc5f9cccd0d89d820af600ddff62b57b21966aadf6a1d72c85792a44a6d89901e77f6d135404616bbd0a7e5773a929422707c1c8fcaf5b5a4640d77f7d25eed9f27839204023b6580c8e9d2d4d2196cfb2dec4b30ebcb8442a328a80b3c7cd014db1b3a9babd8c0fcb495a7deda59d60d09fff222c90d67ccc266c39c49ef6fd2b569bf86eda094647587ec2aa667efffd6b58eefcd75a522601ec74165cdc2b225e03d3bfa28ef34d15e33972c4f72ff6c0810474759e1df6b25e500c7f2193c73a477faa1a22da8a32ad8a1d76a5f7e5beddbfaaaa4f0bf14fa48e7d9969d1bf069d2191d476544c9518fc64e66f26b656b9f84026f8969a7816de4f33f053041b223c4d5508a69611299b7de4a6d6508c4928f1a1d269d305fd2f7fc2c71e2aa2c8ff92ec4ab6ec844277534123e1b76d16380a2f5d3ba06b3d2182967ee330168e6423d44c6635ef273bc8096a720b9214292396236046cd89b7eb4279cc0d8b0bf9af8446d12bf743bc6b057eafbf083f7e6cf767f57eeee3d039a60b663eadbb3bc46eac7752fc96cc44390831b72c562ec57f2532c6e18b458c3f1665f98a274f628b06fb6c58636a5589f8af8457922a323508bcbe00ae07faf37c4df9376071cd737d0aa4c07ea9e1d7d7f8ea40bcf61e1fa137b13ee34c87cb4898380844bab9e7a00af86be488ca1edc925346663239385ba2eca0b0cd1d75fa9ef866e11538d8b90771a18b36ab2a9091df3cf86e0a184b1e5be6576a070fbeea165ca109c0534e93f572116dda8ebbfeaa33527f2ce766de0278e90593c88016e086e689a6e407d87a9068b392f2328353e0b9fc9b8407aacabb566e820fd2c35be94cb1e1a36bd72602dc5794cbca440baa24d5d9341a8854a072adec749bd5872986020cb405eee6c4050f53201e59493ae93918fa9363add0d493fdc9693f07283decd055cf96c91658aee5dfec64f2651dc96ab49ecaa89ea3d9fb0ebc4c7bf515a4067ada2beda168e47bf33c1a471b636baded463621841042c8de72ef1d0fe50eb50effecafbb4458363381b9ebd172d8a3c671d8afc78d7b73dc85693737e703777d78fbe0037795da5a6fc11dd6e6de5c8b73f1a5120739697b58d7ac3cec55a665da35efd26e87d76ed69fa65dda3c7fd0d19dfd69b7f4d375694a4d674a37dfc4c88dc531cb72487d984a16cdd9696cfaa763d86d7cddf418657704df63daafcd8ed92caf7a531e1167b748c4d7a975d3e3219dc1569637c777e0065f19c98c766dfce8986df9c86626b077331338fe74ca37a592e9ede20a6c13b1a985adb8c5661b7cbacae623f874169b273e9d85cd48f0e990cea860938cfe4e475997958c0b351fab9cecc964ebc90d3537a4353258f6a462bf4e6de4e180c42a1fd6b56b8798b6a1d26bc76e5c129db0a25a4ba8109ed7ee7c52ad29f0fcd5940dbd2305e726c2d9ad8bd9785d9c768dd21c1d202240c010ce2522adaecfebdae8afbea98c248233e6bba808d31f35220dfad18591c6e8d77548e9e8c627ae1b79ae9b496f467265ffe678d58834ae5f78b4d1c7b4ec7c5daea1664904b194445cde3ea9cce8aa7c681fbd87f6d1e837f8b279e2ebbae42e9bc6ddad1169902e6dfdd656343d84396a8c3031fae8ba59fbe85ca44438c1d3df9450f0cc728a24ea55b422469e199be01965945ec95b44caa15e41e995267bfa9b1f59d9a4bfc634a699dc43aad952cd36568e137aa515b2a86fcce717d8ba2cea55e6dee7386bb9739744fdd5117767aa723793ae2cea6fbeafb4a2bf592f84a3d1682489a41572b6a0093c4dc0a3472a33bab166989bb1bf30055b145bdeb92bb617aa5c129f440173403cbb67cfd1e84e38e3aa78c0195aaa57f3d739edd252fdcdeb22722d1171490e65ab97600d12cd737d1bc71ac019f3540d55d563aa661ae71b158f89e56c0cf1e8b989e839cca64e4d2a364f67b28f629adaa95d94a85ecf720a9e728aac9f24ec231eef937e769fdcf6199d7802cf570bfb4b438db75a492f69a2b6a28bfad3c650b3e7deb9b44d3b85b48647c4f432de54f9a0e95f8778149d884fc49e26fdf9d808457cd2df8c4b20beb426ea6f76d16d2bfa9ba753a8f116ccaaa81676f558718995aa1206fe4c1e176d4308fd83fb59964a91220c7caef003289dd32bf8042856c0dc9a102ac93084f0b266e3c822994acd253295fdce9b5335a6e6532923a213fd451e79234f23a11e1f3bf144ca89aa04c280b8881f2481302096392204a7084d2165fd4528fd75ce24246138bdca7108c33aa77562d194de6927baa795344f37b9641cea558e4f2251af723f8951a21547b2acd6294537df5c26d963d0cf14fd758e4ba2e8d57b9a0638479f254bfa67448363197bc6640cbb856133bebba5ec56220938d4492821a790be42f4271faf8dfe641241b90e017265ccb25a9f44d0905e09919740e04fcc7160d0055c83c690e12cac2067ee00f7616fe064d123c88e2eb8ac6959dd04155278820a1f9eb67c9c8086226b1e015b6e0e453f311b820e2b0ce16707076b843f5ddf37fad1b6644548f5d7d25f116a0f3df1e34477775b96d556cfbeec9652c64f582d6be2e84fc6398388993f48986680dbf37c06a1a66952ce39e79c9093dad4344d7b863dcf6fdccc6076e5cc3672de2ab1705dd725a798b1af2c883c2763b7771dc70d42c6b2643716253622081a8280c4235f0ca257d8951dadb6105b4240dc77c67855337d8b481c84a6f1e0e1670f2cc87a052196cab0cbcab02986fa625d28a33f18e3d71fbc66942efd4dd93d724a999aed53051c212ce5ccd9900938e872cba5bfaf6fc4cc0a555608a18c54a842b690fe2491fea43cd237e4739cf4106a864544e48f28d137e4db2621458d871287065c27b52e93dbfc76fddaa6a581b031ec3dfad835b74fbb6d9a9459a7853ab3cbca719269cfa2a8f0d7f3973b7083bb771cbc75ccd2c05be7a0c5e6e57bcccb9b6d1a6337c3178937d8e20eb9fbf2f517a70c0bb13442d56ed4b931e7eb43488550e7fbf91b43a51f65d21a43f55e332a2ac4a97664714818f15eb4b07b049c11af1b75628e1415e6881377babe885a5a362d74514b93b14fec96d559efe4ac5866bab46f92be765dedbafa18596d963c345cf5baeeb5d27ababd467af41cf75af29e49db655db6ca297e6b953edd5ce9b7365debb1746d1a773777e066e4d16eb3b20591c6764ffdf9e0eeed30b68518639665d9e54e36b34c2ae1b62ccb32d4cddee57377fa4b987a6c6623956c4525fbc994bd8eb2126a662c6ccaae5c276975e45d8eda349e5c141aceb2b6ab3d6bb33b3526052930101866610b4bb00e8e2cc0300b5a903233b4e81ddd2061229ae84d3c344c606ab3c99427a618d54eb1db34ce4cd16a5b9e78e5967623eb4d266aa2266aa2a6c7481335bd5a1acf4432994cafb48e1ed3249b99c034f5dee991da58f8baa51d8bd85946a65399ba39c313756569e5da34be2ced317bc454ae4de351bdf77cba368d4d37c7f892255d9bc6f58ee8764fd50787b79baf6bb79f619775b325f2ba4de351773b197687301a88219d91351263d967fc287e34badc891f491e9ce5a7a5b10e25a6230c939fd8a75c326f8dc471de7a4c8f0e0f47175e5a7002d7c0300b5920d242949116aad04213cc7517e9c85e367bfce823cfc2d865fde893f6a0c16e8e9485450a352f6de45f2271da6905f59b5318bba69b627112cbb5694c3fbab9a3e0ebdc592c8b14ea66ef7277bb5a7669e25b205bd0c91f95d6a4904ab01498e3e2cd4870e9d4d6d71b23a985fdd197ac9476e590961ed3f57227ea90af592a91a79ee77924d2a9a42492adf52452ada4d75f54a6c64892ad97b5bea94ce5a85d79c972370fc99d95954b25bda2322b375629c58a95a5123785d45a6fb6b1703d8d82e98548986b1976d982a8a364236e2a436f0ff5475fe963fa122646c5349295faa0d2d05b3f2c9c84f7be10256e708d520991233736b2059146959cf7487b8ceebdb311c3d3c82a916ebddd3d3bba904c88769861f770271f7b9bb20552095e895d095c5a9ec0218a4bec827cb12c6b7677a76a9547484d2a7349797536903879088315f484f504ca79d823615c2b287b476bc7b445b2cccecccada2d6f667b87d5236120ced6b41477773338430581b82363925d78ad81bb36edbaaecd429961d867965918663d83514a2963949089bec15a4a415ed835a7b42c4b66593c2633293119afd8f208218290ab18d39f3c0e793b95b26e4c10d10738e661073803c229e1e0861d3b76d31cd45c719770709770704cc34979baa30cacc7cae4ba998431e5ed8e27e0201e45fcfeac0824a62506e0e5e527b4130717e0a08b8c971619ea17af0bc54191173bbd0387e65284fb40248cfcc1c1c16962471f47af20c4029429705f01462441a461f7312dbab84871b902370e59f2a1a42938979e505bf291307a9470f0bcf938c618f30b8e38702ef94818d3752965d9a856efbab8f8e026d95a8960ed2e4112c62573d95c5c82706b1c66e1f78202383eda6c3176ed660be0483797a2cca5c8b356c6cb843eda4fc2d018795e709dd9804bf188b854b3ac56792232cb2004c213cfcf3701031dce985a1dea9c32eec880832e2b3507fe60481b2706515a07f1870a3290c20e1e62b2dfece80b811d3ec8e145e2645e24372fcf6aead94be32c1102b66ec681fb8dc99ec275d84d0ba55586aa7a8c5167046f592a839a2b7e8572ee182161b89fb38fd9e55f244c762384d14fd5ad65f7218470ce39318965369b1876f375b37b3cf1f1c4abda1f3c8e3858097ac58113911396875618c20f969746d21f3e54e049435face60cbfc4397059af60129665855877c26e39678cd3ba3dbb6315524af9989ed288eeeecbdb234c33ef2daa11c2ee77df2c0bc1cb1535a7eef2c95001d10e7190c6d9b1f5339a6c87f6cce69000c70eed62d7c9766c37e32e1d1c3bb26f368704d98eec3a387668dfa1d9eb99c56a5258e6a009fe2ec30577608427b43518969766560ca90f98060c2f13953c12f8b3c303d73d80cd4340ee610f7df9eb51052f10ecf23600eec02e94302080801dd78b24433774c9147231c332c8f30308832de9e1b0251206f3c17e7e0057d813e0b704530161b4943d7c240cdd9130ba5718507fbdc2aa003f8ceec46c0dc154e17d0ca85730082009238330a05ec9208c0a0cc8aac1f0bc16609632487601c264ef20487b44b9235900612e16b0400632c0010e7ad0032108010939934139bb84e08cc66450a43c21e0e04b75c9ddcf1321f4000732f89987f1fab4a44923ff6379b3ccbcc4707013211041ce084850021d139c00054952a08215ecb0a0052e50f20218c460890c66400327b24cbc580da455c58bd900ce688add00cec0706496d58a837b0a10461f0bd50b29325c0d171cae2957e02ca7903f520a09d4f35e40180e8663fd743f991c54865e9af021e14248551c649205f0e7e2a084d1b2acd654eaffbe176d47db9130232f40187d35f0c0616407cda736a13da926d07eea8e26852e28a80baa02bb23a1ba244846415a95a7bf25f15627e48fcad0d544cc62c70b9fa4c8041006421cc01e40213416204c7b019301871a70c001871d7004c11caac3b70c200c91c641f7a0a885d048e826c01c2c648030b1a7470d3d70e8b1434f37d1d326e8491d3ef600c2c4a1a128042434610a43588039581cbe06c27406ed509b489920b220ca8008cc810a0a3a02c27414f802401d1d2508b8aa704582ab128440e0ea3202ae56728c601341a22b1acbb46dc5bda39e8ebea2a59cd3bab04cd3b68de3ba8e4e4a6547da51cf1b8d6a25914ab354921d4b95542a994ca7938acaca5c59911d572e9c938acaca0a0a954ab1982c58c88e2c32cffa6549322abfecca256548bf6ce9f3dcecac91ca0a9541751195ea9a724fb16061514d954a7654659ef5da9d436db889fa0a3d448ab1e89ad277d63b0bda23e2ee1c4b27297716553769f6ce6a57d11e116354867b0bed11f1760eb6982d5ac88e2d32cf3a0b164d24612e9c5ce78aca75329548b5833aca55849329b98a2e148ebc8aa62a48c2609813d813419794fea65c81939304dbe90fe70a019c31797ac9e4c94ea4111c708aaea2a2a2a222159c9513c974d538f268c76d5a86f128d949327360b5582261ae1de9e3c383f5441a0d330d163aa8a25451515151d185f3915cb4b8705a2e1c55eac261b970ac1d1fe93379b09e4ce3a80fd6cecececececee4e1e1e1e1e1f1b99e5840b18745515151515191b563ed583b2c74503c3c3e3e3ed7930cc802eae8c864638f849953280a1111212a2a82c3e4292a2a2a2a2a02c0e5f9483c3fb0983c2e5adcc93379260f0b163aa84c680a59404444a4d289050044248cf4f1f1f1c17a7a7a7aa69090d09225444444383870e0801bb343aa09dc26d8c15d0407e9535454545454d4227da48ff4913e291629c94207d501b606b3917874ceeb3c2f6a9e8d2cc0d423c2bb34da33ccbd07c4a65b83e1f8d22d2231776b30bc7d645533c7f1df1e4936c334e42212c725b26fbfec1235188e3767c75e7304d36cd746b25ce73b5844262c57e73b580ee10cee1c13169ea7592dc76fa72329bb33cc11733cfd085219edaa66386d46f79a0edc60ed9176671959247147c270028394de234a0cd149b2e18b145980e3cd3de08bc834e0f90c89b25b83a96632ac811829a4bf89bb0bf34524beee10372248a5eb1a38e81263533d540b2708c28e45431062effb83061f5c000c7f86867043d15ffc910288e6a1c67a5ab2a47de2bb4909769bed26dcb543daa39f88bd22029f23a6b7799ee8ef8a9a9b073ec298eb2dd5d123ac9dd33acfa2a8dc4727916e22d1c05269a6fbf61edd375369c459d2374b22ddd6b18d331addcee19e1b077a17ab2b37a77f4a80b30e52b9f4e6ac83bffa505e6b9e8a4f3677d0e535050a75f6a07691a93b24d47323cb39219d564ca14c7675f7363b22d99a88e98433ba43fa633bb491361359e9beb2d26d6f7b9d524145ddb66e7bfc26314deadb31968bea3a1b9975de0d3ec76d96f3386f6362a69e72f73ace23d21d360ccb111cbdcb79b6a3dd29d79d728f2a1e1ea5db27cca1729b63b4912c2825917a24635e82080eb6912c6a2256b1912a76c219929ef3e83bcff38ebcdef33ccff33ccf7b8cf484789ed7754fd5aebb5df718c9bdb3b4eb4ebdee54561d8eb3296fe5a99bbdee2b2b47562c5d5959a1b6e3248c08e20e27a48efe92ddbd5f96deae9eebbacc939d3723cb47300ce4ba2ef36ece50b626e2096764ef582c6c181c8787dc811bcc3dde7becee590867745d67617fd946e25824e2c88da81cd9ebf4a292a32a3a922b1c47da3693f43a4f7a2fadd8d355ace9949ace9d4c92e479dde129f5461eee2025620038fe0e765869162470f13668075504ed200c734e2a63593b20ca30a4020cba0067cedb4681b7879a28da2682b706c353a626469cf58d15e793cd07f5497f52f2c82cab3595fabf6f0a31a55e37d55f1daa2743a70c7c4c4b1e999359996447895c326ba74387da5dd973e513740ed5dbaeb5859b94492e9d0ba7bf2ba73f695d6149e9cf9a62d126d5ba356db6694ec3aecb3a473dabd110d39d8de76c5b81b36f49a4d45c31c44d65fad90bae3c3be42f03e680585ad3b2a6f5126359ed7345117eb1ac26f07c91cd3559d2447809e62692f8787fc88e6a8f9665599676736cfa83c3d6e538cbba1563a465e3b518b9ce6237c76d43c3f626dab6255bd7351a624cc558158b862ecbe2a9776566a7ecac2be61429a58b22ce6e8c1067b789b6bc65f15d0ab5327a4cdd0c45bacaa9749a1db56dd9e9a64baad7c2168df589e3a5f12c3cdf68883ab64bc33d5ed3b47397c6ba85ad26c259a321d2c83a196d774b46e5399b2a9d2624cb366b7e469c8b63ddc774d63d84869836754d4211f08647088b66d1c4fc4b8c31ced948c8320e6a70fe9b96eb8c1747dfcfc54650901f203f461c1173797f6cc4bce0f89c82970cb8f81ff05a8d4ca49987f292b1e2b3ab002182c0012f2f6fbe8937067fd8083a05996532c68edddddddddd1dfb3682c01de36c1977a8209fbb18a53f39d49fecbe9570ee520e220c792a735d53ba4d6b1e0943722e523e4a219b475e665536c5dd6d9ec6019c214fe3d038398b3f435ea294382542171f2d4fe06006dcb1284e91df8135afa8735d97d551a757f9dbe9557c4c1295cc19fb5f77879590436460eb734a251c1675244c96d51ab7d80324482ad5d340660e31905e5d375f413e80af19617bd98d4062bf31905ee588c51b7184106b5e325039900204dcdd97033270900ea6bb2f12467c0cc2891acca088eb2d092f2f26ae7492c73d5299d2cd139790e0ee66f64463aab574273c598849d714b94837d4318cc561ea2a2c5775a5739d35bd64b9f85acf52df5924970feea53b527577e6f4eedeebe9dd4fdecda7972ce7bd744be7b0ae64b9c3d34d1ce9ce9c6efaa9b3a67b369f0ee949f4d5e62eeb4834d77a6d3a335d1a7ad2a56179b569dc5d4ea5125f595894aebdde9c525159b9565a39b68295ded919893b13c6bd4abc72330830764d663b564d376b5809855dd43514aa54ba99d36ce997b589182b61d7308cfbd6bd64b79fbc1538ba249b3353e99074337bbac952483aa43f607769b673a5157bea4aa69f4ea7afac7c74ba4ac7712f916eb239cb4770cbabe92d16360c15d2caabcddee7ca2d122156b1b0bb34a573f15ce91cc4f49de532f70edce0d23bae5ad33b9b91e0ee273b63aa3c4a27952cc49b77eba47bb7b3f15a165fb165b38d64698f0eddaf3cf30d1e71165e96b374a3d58ece59c8c4631a42fa8374e976bb18797140e5a6201e293077952a386e1261baca2dcb457bbded76ea849a65a74ea8f2db8b48d5ccf5f82b3ebbd9f4228d6950dfcec1d318bf9de34143bd775df63cfacd7af0147a908999faaede3b9c94f398c0f4080f1aee10d7119211a45e3cb51c4d77eeb60337b87b772a53bac7bd3b54f1a08787389eeb6c8ef5763637ee0edf24528f6e8e312f710407db34eec00dde1e6b98c0f52bb626e2ca2376e0066f379ef493775533f5dbeba581a7df2e4d770e09a548703d94b329bd7986d2888333919b234eb42cbd39e2606b8e489ced64d64bdcfce3e2e6b71a24587bbeb1dd9ddf34eece43aaf5e0ded16877538d6e7dbb6655a36fd71ed34bccd0c38fee0cf7eedbf30d0ede6e91c6db4c9683b74be35914ee2cb410d38883238de92a47dd4caff2a633a6ab5caf9b8aed54ae6291e0ec9d55cd70379dbb89070a98810a836e2005c75f3f5470bc34578c90c4753723a13f2af778d93cf1e8e69bf8cdb319098616c2095418748328dcec4c96335d8bfeb80efba3984d67bf2ee90fecb4e98fedd22f9e6694c2a1c6eb5adc5e69ba5f178cf5e6c6f5dc377b5da95fd7b7a72c6c181b7c3d82bb17a9f939e24ea63bb5aaeba499d155d7ebbd997aaf3b47f228fdc8a35c67737d1ebdfb6655f5ceac5c357a3de9aad19da927a1a855d18f4efa6555a6977e9d435995afd8d3bb6eb32a47d9ed2b2a17feb47536d33ba372157d7df74cef7d6455f4ced4958f5eb2aaeea5d37324cba9d8d3e92b96bb0ae9e69bd385fdc125a2e9ce90aeeadedd99fa11bc77ae644727d9ee5eb55dc95e27d57bf34d477d0c00c70f91f8ba451ad3a21a0fadd337d45873dd7a66e1317b451cdf38a766b941500e9260161806e1e009cc8d9840e032118143e0fdc68910b0b06f649bc6dd236190cc1d461c1ece7af86c74f8ce3b7c0d72f893030e9f6ac0e15b187018c4e7b301be1d1ee03223c0fec6e16fe3f0380870f8206a1c3ea6747805980e2fc4e9f043a81c1e0890c307f97178238a38fc11441cc67c1ee26f873b2e0f1370edf0e5033814c0691cfec88cc3239181b39283d2492561b13384121d4b721c66ee0538cc0af8cc32df0e795c1ee61ed70e33108f7198bfc378f243140138cc2c87aac396c3c7297a955b1cd2e3387cac02e6305b5f1d3e4211e2f3f0314aaff2ccb7c3055c1e661fd70e1f8b7a955dfee2f0514aaff23d000e1fa7f870f878858bc3374e036c10212fc20241e239ec10477c65715823d81d605707b8d901af81809b81fc460348ab9a630807dc5ce30da815201551010b9c01421c10c4cd406e43880108208400a39b1b700708f1843080004284e468c0cd1e56e3a36b24ab275d231969e4bd011668c0cd41ce000b348001cf7152e3e6039c64817a33023eb200016a3cc78977f3e80d0872b37706dc01405e44058a08520107542088039ee304c8cd41bc880a18a002376c901ea4de01ff4101191448c0cd3f3e000a0029e2394e4a14305160881d0742811f37cb781114184069080a54e04420f123e666d36920816f1ee233ae910c8922fe0309248898814445224711379fb01d37d3b8ca3592c9f800ae914ca50245dc0ce44454a008229ee384c6cd3b3ea302326e4ec0552a704790e364868ce73839dd7c7a11406e563911ff61ca86c84a388050e007901fcf7162ba39e625fc1c1418008dd28198fee33a563c6e7ec003708d643d625c23d9739caca024a023478cf318e21aa93c74e4a0c00b70840e051c217333ea3f5c23d9112b39aee388230aa0809b61fc87235047ace4b83985c5388b6b240bc0795c23198b6ba4cb71f3102f0005721480c77fa0c0cd3dce82027704394e7e08c0739ca46e4e3dc71037b37801ae03c6cd3150198c151c1f62751dd74837848ee7388971b3020ee31aa9a89b65be728dd418309ee304c7cd2b1fe266d4751cc6c22ce0e607dcc53592f958c00b1898af56cf71f2809b7d7c012f16f0806b04c337e3f84a028fd60886994c0006001398b91900f761022f7c581d6602f1c5040070f38bfb708dd409006075730be6e3e699b790808b2fe01ac95a486075b3eaf11ae9563337fb20812fc0c5cd2d24704790e3c4871c272d37b77cd5e2f13e0e738d6098894a883fe01ac9301308bc3800ae916c46758d74980904705c231d0e98e73811e2e619085c889b01708d543c821c272f729cb0dccc721caa9b5587f9cc6364104bef00dbbd01d63a032c772096fe87ed5e84b54e84e53e84a5f761b52fc0cacfd8ed42d8f91e563b0f2b2f63b72bc0ce27c06adf61e5b1dd1e63e71160b51fc0ca1bc06e0fc2ceebb0dd7358eb05b0dc71587a18db7d65ad47cbfd86b5b7617f02d8eb352cf601d8171a56007187119f61afcbb0d863582060d8af7718f11fecf50058ec2faccb65028103c0de7b91c81d46dc1c27f6764f7ff0b79bf407ef83bdeec2626fd1a262619142ada89c4ca5cc6e98642f1434a1e80cb85a29832680dc804716ab82ce1786803d7b79a1092a48c13002d6493cb5ad633b497ff09c6d25ed443fd118047e592610b83e18de9a4b30bcb43c18da6820ca703741dad6416866de639cf316b6ac89ad5718862d402be068001cafe1f802c218d97a28eb9d7046bec11e0ecee62fa730762c3bc69667803155bee794cf435e3eab4a6b4a39a51df282a7a4e9cbbe31d6eec37e2b81832e79f2d4957fd7016a2acb6a4db9f40af595a70e0f1b4626f57c8353bf86acbc2911a9df2cc179e54320114eddb298e9ea112fee1a3da62f6bf1d06e3e3dd63031b235115b1866bf191d8eec152f4717766ab58f6c363abc97c6ba89fefae8ba37dfdce0ece6d32d938bc3da251fce914efa3b1b7f3d62a65ff5a55736f09431faf56891441f8f77863e5efe3a7d3ccdf42c8ec9e6b01ff4dae355a33b43af9d62f427ed627731d2a21d7923eb2eb44be37d7469eaafdb34bed8cda75b9ba70fd3af473a43b202366eee218c3a012cecafc669182aea39fbf1f172d85f8d9b3b0a463da33d5e5e44e226ea0ff501d8138654868606d4dfc4b05fd7900e6334585056a8d7639cc6312a43e31c0d1beb45a35f0ee975baae4de3979fa88ff872ae3b1ce31343fa7263d88e869d18bb9a368508047033123ce3dcc6e1e9833a34a50e5d87f3bc62084f962642bdca9f50af34202da857908a2b823428b9933e789e9b5d4f7fb36b82bb27f0ec9c90b96ec7d3df9c2d344fe7507f38ea39089e31049e71738c671958c67f3866b30d8cbdc843e0ebdc762d9b9d0e559abd9071738c63bf288feb319e59eb31128b6187d8c02abfec101bf83a1036e3c0a8c340ddc5e6885d8ed119956b63a8df7d7f73fe079487828abacbb3061404a4014d53006eaea7113d4b935eb91c62170bb10a04805d225e9b6d3625b7143ed8bce9e07917366f3d78be85cd11a7c5e6c8a3b239feb0d81c8758d8dc3829eba815ac62ad295348ce4f298433214c0302c24c3723dd9cd5d1e4c99ec87ab03be484adf7dcbe6d9204496480adebb2269e51f44a9bd8556113029daa5635214c1bd280b44fc268538030e6b1e00532e0f94fc2c01d1f0e3cf38781e08c9935a021ac83269619a1d2a1bac1cc1d915e87d407cb8f8e1e620d549cc18a3440210aba71b34c3eb1721eb981189c7008db6c7f2001a14024840891017ce1628c242141293d22eaf0e0d0d6759dd77deb3adbfd88a80309215426deb3a4e79bc86d76740a8f188db8d88d6c5324228dedb2f1669b4622ead8e8b64553b4f864739c747d239e1bf566a3256516492b9a287efb1142b86d7be6bedd0c87b28f3e5ff0a6bd747992bc597ed3e6b377ebe697914559a166377b25da8326fbc4a44b635deff3997bac77f4cc5d9bced3c2f148441ddaa599f74edfd48777918834e8bd368df3cdbc345976918834e276918834b6969666e7b31e9389c96461c388d94df6f4181923fb9ac5184422ea18c2a4e69270d0255b38456d4d29734adfe85fd77650f32cc25d34a7e4acb9307bc6ffe800f5ce92e621ca1d943b0847c3d899522484e38b748824ced014a1209cbaf593b31d219da0c6c143b18728fa14c527414f62505cd2b9837ca6f414f110ed08e904451c1cb38583516105c970f9972151ebec28e981e2a7c9932885124486348efe1a47cc27e3a557db63841142c2e89b87d808c233010e1c424818252804ba7a7b23c158892cab90286e8f3a2f2ff0d67d491bbdca567213c6f62eadb3f87eb92ffdc578a5356d9884ae50061ce39d1cb0816dd47a6b4b90d79bf4c19dd4c95179a43231ede9481c79af04a406ca36542d568a050eecd906b22d854782ea3d774a662d2a8e858db897ac3ccb6a6d96265c772cb6837806ed4481a118300c5ac11438d23a821899d40b6a863f3d4b1cd3e1298f142604dc203c59190796e76ce04c33fa7c77a8699fda5b8a9753e78b7a4a1ebdd68df2687cddd99f24bde2c0de2795f11ea5e82f6549af16e248eb0cfcd75fbd55af77f2f6a856c583be83d4d2a4c56e9681e5b539ba7c8ccc360d6dbeb926f648ef3eb279880cdc442ab7a3d098ae6a1e72b67f20d69e59d5fc54cdc35a21ac877648f7feda1341cd29dcd2ea4897646117f57b8a13ada5da09db4b9ac7089f76e1a550a857f407717274fa465fe2d8d6e96f09eeee91dd4be825a5bf963cf209d9e3a22f131f1ed35d24617ac887db9dfad73f32be0d3e8bd244e4d0a3e8afffd3f2a7eb6d17ddbf79dee823cfd2c8aad5fa1ef3f516f90d86d6bb66bd03f5f7d35f77dd6d29fa6b28712076b17a4ce2b40f2ef3d7e5953afdc99c10d4ccbab012a757d3099e5ef53491eff7935ea96427691ddca9cca7a5555c80439dd31f6c9ffe6043d11f7cd237e0717c7872f7ec484a2f938a030f2fbc751b585ed12b4a29fdd7abd1293cdd1ea7f407afe80f5e2aa9db3129fdc1a25e11e9e7884737167937474aaf96c9a7644409dbcbec101b8d537326ce4ee7502835370e8f8c53c8031a70ee1e0c77a0bca2e658149f883dfd833d81d4d2e2f0f0858b969d9fd7aa91386bb1a943fa1275ac7c5e2bd7cab5aecb5ed76362e465e7576cfc9c9c6553cf2ce9e68849a9b7fc25957a4caf5a9e7aa432a91b2b2cc25cec52b6e591ce70b846a461b5b039e21636709ed9a66b441d99356f8d48c37a760c7573d6c7b46eb3aa9841728a068a789bdffe7263bcdcfdfab63d7bdfa8a57d85b38173fc969d4bdd3c71a6df8eb23975ee661bf83aea2b166585aaa56edd15ecd2a4b4a39e6de0b9f2ecdd955ba346d491dd5b23d2b86876ac46a431b75b23d2d85ace691d89c482b2da1b47da43fb7c66b76c3e33816be21e70dbeb629f16f5a32ccb372b31c942dcc242acb5bc46d40171cb8d15fee0abe7392e9bcf47f0bc79ab8d5d273d667db3feac8be5d9d5c242dcc2022b8bc39a2a755f5939dd6e719bdd3e6d6fdb29ceb623bfe96c4ab624585adfac06a98ffebcaaecf39b2a3b766bbbf275d5396bde69fb1b16d3ddd99dc17abb66f37516d431d4b78bb2028b7357a44560dd66b5dfba366771487fa0be5d1ad4b14b43bfdd46e2edda488ca267790bdb944b7dbbb92546efa9156f65bbb5d2b7ae95fe76eb66105cddcaca76e1caec566ef7d48aede6cd5ccace9b560e6bea73e5a995af5c2ffd09eccf7c04671aeadc8c66dd7c037bbb98f6dadf6659e9358ceddb8ceda8acbf8da52f9991faf3ba3e31ccb2b4a350374f2dcb5699eadb3ccb315be4d24c1fa45fbf3e67fc95af77e086db6cdfb2f9c84c6ff35949fbe95966b9766d243e4b2c952a2e59d2532c562cc4279b95c02c2ca46bbb24249dcd916c089eb7b624b01293e56db9c97d92ce62dd1a8929a52eb84fb2f32416cc728ec5c63a5954a6ca5bc54ecc01976b629466a556ce23628bded36653db9cd37e2e32ce19d2553e585e7ae9d294ce72216efa8374b3feb22132beae64bba0fee4b727fa93df70566c2794b2dd5017c57628db59d19f7ccd9e6595f4cbfae94fceab497f1e0ba435322de711318683e56872cbb0cdecc19ee84fc394cc39b579e804162a0b8e6c71d975e9d8930da7575ca82a3f1dc39128396f4ee1c8292df66aa2b217142cf67a7245d19f3c0b7b45ea1dda4b7ee539657d56605945dd5c53a9ffdbee8633974c6cfb0b26845d3924a1f4b7592a36cb2bb0fcc9e6634d9698788a3cb277e94f12f527a3f407addb4139e1ec9c9d580a6d92485a11a56cdbb66d3812869cd3ba73bbf55f94feb8a197da82b9eee41096af59963debd57cf6ae572d18d21f2a1ff3db896057f9b0683218d3429c0f07457f5c13a21d1bac400a49a1b9e17439dbd9e4dc705854710067c0b94215aaf93fccd158def8ca0373402ae0f8acab7d233ecb42858f3867f89308f81a106048a5505fae3ba375fb9e84d367e0a00be712b929e794524a29a594524e292fa59cf0a7a7e4d178de18ef04596aee9800bab8a1c65b9f3743209aa9d416a91778ce396fa6d1c86be7e6339965d7eeccb26c66fd0d81969cd6b51d58717e4aa9078e83157637bc19043eb9831a080bb11b46f60f170f84536569597de95c3b9792abe782e2fab99a5c4fac297f7a957148a029520a39058e3082a0bb7b0e21d25f1541fdc59f496540e083adcf991b08cb5b764807e17925e94870694af4a79d48af668fde40bdaa1fcd8f2e1cd24143faf39aa85b0f252e1109a7e09851991a94093da13f610e5315caaa08aa33d39130aa9f7b77eae52fbf641caa7bc3042ccf8203078b9797d4f7a1fe95540a6edc56baa98bd4070270e9a62ea6bb74f38dbcd61772852481e4c7c4f26641bdaaa25742bdaa16900fcf892770a8b7834052e07ce9e42c08eb0849627bec6eae42fa8bc7db4da2bf983d6741385ea3db942e04db140d67db141d1c9518424476106e12245922efa9837012fdc55738742149cccbe4f47883dc984887e82f1e4710bdfa37032838a752fda3024cb31b53571d04ed4c8147e7384834c445e9cf3a94fe2cac3b664718e7c33d9c9aaf1df9a46f58c7b82afa13f241cd4d670bc64e18eb30f6d930d7ce3388dd3cc405b35c758e45656794a2b2b03ca6af1d0993350ceb2ce8614a4aba87ca05ddcc155d2e41b5385724a17040fd59973ed64ba9d3ff7d566a0f3eb871be762e9e8b8a3df4e04844e464c7598d87cef79425a692c984dd21eb26acc847c258974b24ccb5236158b76ae976d6e2e6cc85756ed25f3dfd59f472533829571d2a8b67ae0863d85dd23758ccb47c74a15e41e995752e4aafb45be7887a959d1bc5d1cd2d058fae711cc771dccda36b1c682938832009a6e14e23af7295739c15dba332a3ae02e70c6323ecdd86d1cb5d1e62c982b242cdb69137ba4cf7985e4206629864730fd5eca262f390866fb134d855570901317787a8ecc458974ea3d1310cc3543ec2546e3aa642851e7470bcc641ec66d55b1c5222542f227187d11fb1690fd35558e466d51c271b5cad3c73c7eee862d7747ac55d8bbb96d39ff591cd1a4e7f96f48133ac537a4ca3c7ba5b838d4eaf2ac3f41691188339e0c866c7acd4749cd4ace1489f6b389ace867d74ab7b1e8d461f5d4b7a35bad6a88eb45f4bfa5362b15fd62f197a63e5b89d6b8985dd0845bd9458a95bbf96f40a75eb76f5e196ea2c829cc02c70b04a47e7469dcd2da526e2223518e6e82f2a33bab988c41d0fef35710f3db6638fe9ec5a11cf66eeb6dc2212cbab80feb0ab6c4c7fd859ec10fd61b7a84c768550798c54b1a5b3d070328cb279621f6c0efc19c2d657ac0af64765b0abd8d24fd6646fe9ce1d8ca4e160d72cac5e4e86148c5d4be81cea88d2e78839e9e3edf46779ef2811dc47f75ad29f758e7623ef5e4afa3342bd052156ff4cc391d6c5aa0fcf99158fc0decdda3b22b8cb27fd4928fab34ea1603d4672d76f73220f0de0807db09b0bce6cd676b0f58861f158fc64e96721085266c4090a8215785e092230ea40a20ef7c8d32b5579eddabbe778effe877669e296e40d35479da853e38f30420370c63cc76db76c2e999e9d746e74ed351db89981715df7d83d768f9dd5eed9ec9dbeeb347a48bb5b8361cff38a401cb9aebb4d0d86b95b24c3dd8d49a21336ee442535dab5d168ec8e9d3e9eb4d92554ee3db33547f076ae8b5d87d12ed61ca1e996d8b6ed5954f9ca3d4b73e234bb44911a0c77af897bc035d1463573ec1d62efd214c970bc3109d638cd7bbc19098e29cd2e01e18c18d9e5eede5336dfd4442570c68c3b5d911a0cc714c019f33531099c310fa977e312948d3a5ea712368dad29d6c4f3f694fee4149897830a0523b2a28b7a35c507734eeb33eb25304a18258c4fe20fe6b2ccf3bc29fd59b149373171d4115327c8709c374a8133e4af380516a5e84f4681e513d89fec2c2cd438441818558a600e48050b0e30470722f63e9faf1358cf5708b07cf66cddc1eb41bd2ccb8314a33ade0e24e59165375e289ed741432e43bd920dc5f6d03f39bd9e9a2dab88cb7232557688bdcb16c252a8a10461794ba343dc601b4b5661a550df88bf3c6b1559527850b1d3c79efe6ce4e1bc8e488a287eb0fc131f28ae6829fdc97390ca2a64d085d3ab6915f5aab11c6a21283c4b9cc052894c2277b0bcb783cac4e51ca40d803f2ed72a9230e4126c1d8b704acf2a8233249e03f62cc3ee8433a665634f9175234f7f725299398b708c822576aa610ec22c7b52b363dfac3585bedf7472f79e5dabc80a2e1261792f5a81e5bc50e485291baad0a444753ecb201c24ab9042f2569125c59ad2abbe70ae9c4be74ad2ab1dcb96ac25c55e81e5ab95a769b08ae64791273e117b5aa8a1f437d45f0b61126baed3def3d6ad4b833529d6bae2c2b1974e7f49b46b15f5276fb5d0258f4dc1d22af27650fbbab78aee62155d38d32a9a2b41b66308d4c08d78c4c76ece70d7b6f818b9cdc00c63f55c56058edfacfce1d5239826f3ceddac25de5e2dfde1697766af77db6eeed5c5dd83f7e885368fda46bbcb233e7bd4ec4c3c9dd13abbc43a26fad618456b0613c6cf38634bf9eb36145f725eebd2a866e2b1756bb05b4403f906c7db58d8ba1db05e8484addb81781b0a6fdf60b1d96059973978c4c1093c81e3a7121c6f45fac3baaecd848d5df7c775454967200769cf4c4bde1ff1f392fe88aa992967e79b2b4a31c87081e72007e1bd1c04c1c39f2b70ef437b6b30554ddc035ee27a4df7f81a23f24ce0f825ba6b232fbc6cec22a5371791d9e3cd1dae8953b075e5e373916f3617919d666bb08b5d1f31decc044e08ea125613d57adf6aa25e87bfae251a07d760f50cbdc232f62ceb30366dcd760867689a16b5a8ddfa6430e1be71f712c675edd6b15fd87569566401be96d034ed33c3d37ad6550ccb56ff45da8106c9814eafae231d91f42a7b76712e2ba25c439710ac41608e9a0edc6079eb304ea0d9f23229a5dd1a7c68b75d5b8dcadd08abe3b6aebbba2c33628b95eb38c8c10d571b447a755d1cb77557ccc16949f9a466d094da75dd11fdf58de8af3f3b58330c0a02858c100263885ee52a04ac99589e83a4537faaedba6abb3c1a6fe71e75240c44030f4e4ef4e915cc99545801c80a403bd891a313160f18d6b0715766617623ae6f4182a8b6dfe00c487f56467ff18884518208481023b66cebbeaecac7c4d7afdfe0eb495522a32f444a1069181976fdc50f13c1ec10ab447fddd959b22715c9975d096e8b38888ec3312527e22312068812438860184bf6a406e9af656a209c7125fa8bd7cdd92356407f5c4c5f11c704a102913026f80eef106f37c3289e9556a761358de56b3c20d479f34704ce885dab2cc93a0873c4ed5cbca75a85d0451b58064515426619373b49bd21e0fce1cd824443b06ebb35228df81869699776c57b42e8267722d44bd3ac21689a5523d288568d971f56bc33de1a77ba482e6e451c74b90e2b8e472ca3a65c6ac4a47b75d7abeb1691b87e3eabb6a5bf78523d84332ae9b3bf7a488920a9ac63314a1014dc61fa1a0593eeb5d78d482412c9a66948da6844e988447a1dd1e7cd06bda45fcfdbbd48239b23f66af71275903eca13478ffad870a5b447e9dc65a3a332d775f3ac36577c8384d2bf5ca7f0077b57bdf1fe1275d4a34ea2deb5fa98ae1175d0954a5df9715ab9b949a8eb5dbb48af37a6afabd23e7a4744fd75f34cfdf55fa4bf441dd74977e5ddb30d3ca2b407fd753b7a6b441aa3bc4239daa39e66e5e6b8d54ab52898f334ec799ee769a47bddb330d250b1a39faca946d4d169da6be9ba35eae9b34d539255d18fdebd46d471bdb3694c2a5d3359ed1aed413a4de9e698d11f1d26bd46d441ba3e9219554a2dc4b5d6d72b62ef79c21a51870dcc45da9de36249b37962ee42bb6d1eed6457258974553efaa4f7e893483d7ab537235b23d2e81e2369ed2295e1be9dbb5a7ff6a7b23a0be6680c8b483cd318fe601b381efea840c14197da3031290b5a918a52a15481e1876818d810ce161820da8d5d9086813b3c1e54edd8330c8aa92fbfe0ebd9857a3d35a7f04cb55cc60b8e5ea9b48b33cc6a63a85de601a1c643973987c04197fe24941987105816312c62594c1de1e56088e8f9a0664864a3847679fa845aaf2b3b915e9dd3ec90fe6494b2b1ee6dcbecc4d7c47848af341bb1a66531198902fa8bf8c7ba4cb8cb2ba057f35ecae84f76aaf6273b26d1278302c7c19a44f7639c71c6186344429f763084db265bd040d86363961caaca47d35817d6020dc688bac7822abf3d3790d4e91bf09a95393b159bf79404f7b7b5cd1dec70bf2f17e976eb9014c66e07f5077b0a6f0555faf4aa7bd52da5e85ea9fa7614b87f246ca0be3d4550dfc8a2a8d8b3067aa6a966b09b6f70532298e4380bcbff00491c0903be3bca72b09a361b0475172a2e2c126e0e453f3b50394e544e82ef70617ad6ee5d0985e6b35d7b963edb69b47ba54f7f5036c1f0b2897ce2ddfbe99c67e513287db64b1f0945af4ebfa8cc69fa48f944b3f209d9a384dae2564df54aa572884f56e564a7147b852d24c15107185e410b4498eb2e52998c09b5c5adaa3a0b92b8a3c5559d7e72617501420fab2d6e4e2c72e20c9aa699ecec2f2bc1cec242954212069a7c600e0884e11309d3e2f0f2470249181f0e7f38271c5a620623c22dfdc1cba4fa3322e2dc88234f6ddbc5aabd39fd73832f6cdb76db53240c781f6c4b9c393fa232db0eed9b9ddeb35ee5ac3feddb67afb6479445d24112063cea2d16490b4918f02d40d912aa8bb738ec6fdbb6eba9a0cae77e82618bef2eacaa0170070e09031e0746d9f122852e8c60054038810da0ec7081a2a2c21d30ca0eb8a30508506f711716042d77714881e4b41c756e76b36609e433b34d6a44cb5d5c201206fca446a0dee20a2161c0feb5a3c5c21d9dcd15ab6c4ec4398b65719da450d749963c51581af9ed9cdcb45fefa1f5cdf27ab659a8b23e55565606f8d32d79cc8065504fd11f507ff03e403f1d9bc0f2e694f4812f45c0119e76ba9b956e21c1acb0c618638c355e9eeaa1768fbf9452bef48d7ee93af1525069628c31c6296d96d5fae11824de3c6408bc5d8ede3526d51f235965770eda3c63534873102cedc4d27e880d9a78edf1469b6de0f8154421bb68738c18764bbccbd7b1bb2ae5119c113806c1b13bc7598eb32c84975606cea286a3bf5661365ea0d45abbdbe17a0279f986bcd8c0ed32311942ac2494e81bfd2dd40c878400a9d8633026da250cd4eee1d4b2ec188661588661a78933aa85da67f9c9dab22eebb22ecbb2acec18cc5a6ef3ba6e5996656dbfec900ee28e59486556600e6cb6f437bb49cfd4f19c61d8ad1ce6784c0fb9accb22e970cb313be4845b2e000e9c304dcb05700ed6200ea98c011ed32f5e582fac17d68b172f5e3c465e2f6ee396e5404bc1342f6e230f51e0eb2a968eb6d3ab9c4dc144bdca9a4e925ec521cb0a4be80757e0160c837e308439d8a3c2201f1061d80428088061900fa0c0d7314eeb22ed61e32f98c41cd29aec3c22563da67ffa9b4ffa9b51f4e7d39fd5e4b2842c28d6d06c43cd969025640d693ed9cf8d1a33fec3a1a4813de1048b4f7fb327b33c9c8a00cbf2a46fcc5b96058afe264b4faf62132d460064344c3645c298f7e100d7887a05e353d371d1e2879b5353e6ed65dc294fc4b0fd4447c2683df7d9cdd5ba332cb7aeca87f5ecd9a5f9e1568feb3517cbb167b926ee215e43d8b375155a138770702c28fd4d6c3d5b423d2ca1c790710867c478a43231ce452c86658280cbb04cf02da15e655805c21cd655629a4380853bb81a26980902ce75675d16b6d69084812ddc71d91aec10ceb02c224ba83f28d8afff70ebaa7398855d3f60d612d7759de5343f3cc32c38fe70cbdefc03cb597c248c0524614c7b673f6b3d1226cb52f7ebb9717356e3e69a9a7173ea3037fffb9e85a15a5880719920e033009789ce77c4581d0ba059806b4098c5aea282d1216e54e6254e7f2c06f0e6427db9cb8bcb8bcbcb730abbacbead9e33bcad9eebca12c281e3e5e5fbfe54aa4d9dc9743a3d51ea8dbc91f7512a956bce70671910da18ea2daba7bfe3780761cfeeaf18db358ceb08b05c963dd17ca0c0b3074fd5cdfabbde228043da4300d7668c9b5bb07502582ad7458b167ba55e58f7c52fdb1204016c6ec1d141383090249a3a78fe64f3ec9940787e65f324c2f32f365b3ab900768979009b352b3a27f03c10365f4bae27780a5d53f05c823dc1f32e366342d87a8be5fec2067103581b99fb6551d771ccda34ce50c77e59cb7aeef0655996e57e591d47d5c48bfb8f20b0f51a893970c2434e323a6eacd6b5e94e879d18b592c3663cdc1058e5998d0cc332ebc359c5d25c77880d7c3de3913a8ca32c8cbfa8341ed3594faf56ae16e3d8cd436ef644d633b190f1643c594f0c9b7537471c747d6ba026ea35a7d62361cc5febb914367886754a65b41d4fd3e96f6a49b41fa00ca85799c527fb61f16181a257f6f399141a10157968827dc0908a3c24c1d70fa888b1efd76d7cb3931271bdc6b32b7a55e3f3d9140ba85740dc1c31109f500af8ba0cd491fd401af317ccb301f075035f335ee0ab05be5428be8024017e7d02f1ee1c1056f3d19a0455209eb59e1e5a4f7f5303da3eb79bb607e050c26c3fadb673db57b6c3c890716ce6e52f7e511e37be9de3b21f50d286d592f4370f8485b886fd34d48d18dfce5d94c70fbffec3f618d6da7973a1a29e3b08f59f0c884507a18e822888d28080f804e23037e300e22b37bf0071eee60f03f1d5cd07e227201e00206eda49e95414445d857acb500b51cb850a02fa69817a0b9f1e1e172e76523e64d8874388ba0fd77a34cda757b0eb2e4aafec496d2bfa43bdd278a4322f1fc0f3b4261ce90fd54ce397377e39cc21ed0103736487874278662b03155271c515f8baca3995eb796a259c27c42c8ccd11c3fc86cdb009f886d6a3f5e438b9aed644f3e91b918b9d97a4660da807cf6b56f42a5b4259566bf60380430893fd4818f300b8f1200983804ffc113db6311601b600d7e88f4fc6354ac48bbf9cd33a184b80df784c73dcd645da63f51891f6f8e1d92f1b4386cd13cbf80b9b237e711823c6332a93c5b8197b8c94f1e2340a605bfa9b3fd85c44e2b079086c0226c06f9ccb288fd5afc3f8c030d457b606c3d9cdd7adc1f075c3c2fe02b11da8346cf5e5a11c754cd108000000095314000028140e880442a150382c54034dfa14000e95b45270561947499062cc18600c000000000000000000008000df370a09b2023debdca7c44c0d7882d0cc7e89a41dfb72976bc3f68a1d601a164de6d2dbeab2f521e1fbd26d85e8698268ff61aa0442cb11481b5041cd87ebe4c35d8410a00a0ef045f62db05c555dcd7c3fea169de45e9dcaca595673589a4a450b3e3fd3e7f0b00780960c01849593a33d668a8567a9ff37d97035f9b18821ddf91272d806dfe34196a3901adc886aa4f73ed83bbb0d6bc81dd1e4ecd9e6eba6a29dbd5343ac8d304f62a871f7d9d0e3165d93c5ae4698b856105287af6c32618769a022fd55ce2a8b392afb68256d998425075b6c883110e320eb700d93941608de80efe677b9728d8fc3f072c592f27d44ec5d1126c42d52915a395ea6e510838e5e580489b389301e7a484e0ac0d5e68a049e7afbda0e74325fa06fa58aa635d9fafa386f7e0d553b958ad49099911841e3435710c6934d64dfb71c8d930caa79103a8a946ce596288cc84c4e8b9fc58953801db28413a258452dc72f0376b98dc7e6046b0769c7ddc4da8c170b13655c8200238105fa99f35fc0f965a65e475d74bb05c72dfa1d4bcad19f7a12196418b72548493cb11d5d9494872aca33d146cc45a2ecbb6f5d5ba02e09328e41b021a68c495f9f82518ffe3f2ff2a84bbb34b01b19edecf68d8c3484280b4216509493e93b8d45ceb53b8f49d455ef79b342dcddf171af0b61e7eb9c6b0f91cc730ae7039a3766d21bdef11ff1f847b0b17a3423765a33c8e9456ddd6c4477114ad5fe9e0a3799f3186e3e826c334c86dc7366b337b1365a9d8487611dd3d91b6257b8cb2758241f7ba3a46b58d26c5c90c11a0046a712c782cbf136aee943213c0151f9a17f5a1169713dd5227879197ffc4d2b48621cf034ab558258c30ab140b18fa677573e1efd9169ef7411c906ddc046592b4515449daf0026bf3bdacbb1584bbf2311e3e15a02ddc5154a4085cb8dc51f40915419d52870970a0bc17f13d48e6eae7e4273106162809794a54d726410e33c76492509b76940c04bb86758a6315429416bb7165ccac151a78ac2be4b3140a429059f4afaf59b76b7ae50ecc699d0509f3273a57b37d1f0d05a89be37b977f050e80eb8ae00d429816dd93707aba0a24b2549c7312d033c9d7bcfde2ebab7fa666f0d0929c8abba070c42918750a19b7918beeb54ca14e3eeb98e1977ff5f286964d1e9edc43a07ecaad4c5316109a929de4eabdb884b041375b8fc72ef17a4e9c82d17735d215d3c7946991d518d41dccacf8380a76ba4adb070ee22c6f425786d72f63da9a2fc0ab8303998755e4a06442a80c51b9787eec30aa0e1bacac71e0e418cdf44a3e940e9eba6b512f7adc454a43e565d254aa2ec5d9a97d1e95c8e499438aecb297e7e7f106fea6dded3569da0a5438a8e20c596d597828bc98c2bfcc10133106fd44a67383f10f7df7368d2848d87cc84f8e30711839f4122e029658519f2f2ac0f85ca1274d30b58750c5a02128c0cb37a157deac56ab6595f24e62ecd041e9c3a0208560b19abd4867aa123607bc646ec7de564701a89660c278c07786bb093930b46b85bf849f457277aee7378048b6b2eabee5222002a24094ce25c01e16097a27cfa6bd5c2c697c481b9daf480fb519e65d692bc1c3cfcb0a8c83733fc919a3152df7a1cbeb6d3cba1d005cfc7123b6a8196eee13a5d42b7b1ec57fcafd5ef78cf2d5aa635fa0922a90218f06185b8bc6bd765053d9de2e287bf4880c99505ff1d21d3f7c3a7652de30ee01c43608e0ba1edc048bccac92250e81b0accb35f94f455ec4d08c91bcd863dfc7b4d99eee29fc22c416181b79c61f56d6edaef76005f27d380ce8699eff5d87dcec3b720aed2ebe1a083164f5e48b4a125f3ba2f7b2d4fb2f37afb42fd717c7279b61e9ace316ecc6ab26895e428fb7d26bc73d4f1b86498504a90aa0e975b9fc57a74dbccc8e00c6f86be4344ed0001288729b07d5253aca9de589f0bd48988d25858b6bfeb0e63c4462c3473d519adb6ff7254fb825571c7821755ffb95cff412ce2926a3efca6b71264fc0461e0975a261cbfb37412351822a0c4a2f0bf3954a735c96b8eb170e8a29e8c290eda2d06620052b516410addb1cc187bec42ec1bea00ee0fe30afe467549a90f81b4c80093d4d099ea2941c697da9d6db7730998d14f2dce21533ab88597dd026daf5a8e1665c6f6932fea4e409c5c38baa20ce8e3f3a4369b22c71df6032b3c8dd5822c37a6bae6498d21d65903b4a1876f79002421ff6747c1f6c295b050fe3e20986ec43787c04f770a65aa5be4f600b80c17034cc9b86b8b56ce7c07af161338adbb4026ab7435d2ac69fddb993128944d9cae87d0d33dbf5066976d48a21abd94e3339192b9e572269a18d003800c55f6400b933363d66c316e383cb15753ab290fef2265545db012e625e98b137cc08dc74ea79f92f5e6e908882c4dd2fd32ac34c7cb816d48c7b628867f89ac7b30c8a7b1b882c43ce66e2f7e30b502410fac3a2b9be3507da144548c96e1f355ccdc988313f0994cd2a20eb3242b96e0a146e20072e1058910c0684183e72752e66d2993537f4e4dca2d5db732e049bb967b071f41d161824f36d6ac1aa348c2b4bd88fa37e9aaf8402c3a74d766834e2db8d4ed4f9e345bbe73831f0df19c3e0ecad15cf92d63c85765ebd57c6cc3180128b80ff0de26c927afd64a96c95aee90703847b9970558804a8aa0c9a82f7602ea8a9f5647773dba08e3767d0f5de1d95380819b20355e14ec0e6c9464f0ce99d9dd26de5b26c8ca12386c805a663151c41c2d0709feb42900bad049e1173e225b34535a82f3b2189e1d6fd5d0bc34f047bb02bdf217516c4412e48bb0530732c2d0bb5a7fe3252e4657b1b6141851acdd9570e1d4859bc39fac958224e7222c731fee4ffde038a830fa69af4410063b5ba1f632603f542918f8fa73825cd10f39173ea561c3864b7b53d975ca291cd8b480a0016684c15dff1085ae905d41e91e049c01ef970695ef40b88c0c0219d240bedf56de8f4ca6dfb0adf1a9a1c3f21f748dccc275d354bc0dc984a942b8c340e58373deda7badfa5efa793d9157fe2262d187380435428791153bd580effc482e8d22988c9186398fc9fa5e1405442a51d4d111bb0e685d2b13adc948d61fdef5ea1c2a6c74611b98de186cede6b70f514e209f27b108ff0ac5f0292dda998e5fbf753ff56510ea164cf3d7d1d4755833ed821befceb7b2535849cd1a54a911e6121f10c9a2e8c0cd6e3ee93c98bf6f5145e5264403aa6b8f2756e86fe9bd3f8d358149f72ff9199021b6a4206811e6524aa19a00eca45497a93d0137a852e678abfdc0a5c3205020630a5b894f7c035808da06f2abc94f0be1509553b8ba93fdba32c04f32fb920a82edaafc5e5b1c0cfe0ec08f31e3fcdac7a7d9ef85e9222dd66c66c377919206ea801a05287aa8b708e28b387997d421b56c324ae2e3dfc4e380aa7062ed8e7100304b118b31262a05031ad406d64383dc811369ed155b7b383ad9baaac2b3c757a05c3c52809b94bcd055b842e80c061438f9adcb65cad2149251457be3dccd9723b36fd5a4da89f4dae7f933fbc6750d35befd10692eaee79a3695e19d6a27aaeb811b14b8064663be60ceec68493bd1c3d9cbed211951e5a373f531d349dc43f39d695bfc5d833e60a156da40ac0ff421e879898f204bfb331808b8ff88c12028e7ba529a5bc5e42284ec8e1d1fa5038fd12caa35e9a3eca22e70f7ea33a0f200d355c5440ff218378343e5a3f5454838c26238e175f5578f5828d57ea7ac05bd1edbc3d673ffa7b03c885603fbc15104ce312130d1ef1ef79dd9adf3066d1ec02561152221698248b5fb45694612d2cd8ad64979e5d2038416bd1183265faeebfbfc432e72d623597062a365727591f9e8540a12ea108379eceb5ff70019bf2035fbe474eecbec42b173dd45f45fc6f9b0d330b2a2b69a9a8f4aa27551a3f63f66ff4197fe07f800e9d87f307956e403a4cf703e6af39c8fa24d4a2a06085d0bc331952b581da192f64a41321822c43f2a70ca86c279b586545a30b01b1dfe3d3148ab11066c7ae78800e7a4d32596215a62b7401b03a60b61ef2b66dfe84e194bea5dde18666b509e9e32e78f60cc988fce97581cd04b27532d416bc83a6573e3874db6eaa9009ff66018701d515e740f5e78780a8013d3498aa9c512867fb38c927d91df387f941262ef4098b8dfd613a0e241061c945de42fb45bc3ded9715925a7a3814d24cbc678644d8a410aed85c1e95867788c46e76a242dc1849060e8dfd3f91e526ae7075b5b324fb5df6d891112074d8a8a1809d02a15201750bcdd67f027ca21ea40d4183de12de10c19fce259394319949418cd5a48ae272ddfab835de1b7cdf9fde7d0e448f349f76b7196a33064ba2a5294739afa8ca9d3087461772933fa077220644161cd40786f83423d3fce0f006db7f94321cec362d3acf20ef2a764666a733aa9d6cc0bd1529b78636a022ac8805c88debffc74255f9b6a0b0575e9292d921e6a0a653d94e0ebba621c61af2756a31c78b3f13a46bcbaf7be82122a058be15ea284658e24362854169f214db428613fa45aad248af22be23f9b789ca229ddfa94eaf45b03717e2ec3266d0538fb043a93d5ca2ad041637ac593c608af19326025f0e11ad8e57af20ad9f34a0b0e22dfa8f3d18d2f8c495bd303d28be32d4f513a51bebe971820317597bede5400e0032c0ca6d681c9a2ee8d6c09d6ddc3e763999ad32631bf4120a8d614f7f55c48c8aef9b81e0b909263275158ee15239e4abed4757b2af78435ca20deab8faee0c539d6a484ca0b7c98f856c10c86220901daff0120b376d23b4c089a7358e8756247bd26d7925b346079e80f516e480cb19f4f427becf6d9172c6206aa22119b2e95484038f0864afa82fceaa03f5039ad9adc15a34741d9c5f80291684d69cc17668d24665f7195a2d414ee39401afcaf967c274bf8c7307720bfdcf40961a9a3f5b3e7aad7ddb856c1196bdf979b0a748347312b646b4c8012146e80c7e674e18388f27d306997acb377baa28743f73a9ad88f3e96d62016bb3459014f0ebd57275f9351e12ba9afe7da89a3e7ac98e60eeed49504d5a97cbf696aa3b12e906a71617260749369518f732f5051154b5af6aaee4653527a483c3aab2402db0a9af88746203a65542afec2ae033408fbca8140c784b3b3ad975e2e5c0d99da2cb2bbc5b781fc4769eacddc3b8e189bcefdde4a4cca1c64c974cba5e8568535b3d57cc612f67b612822bb77d678707576022cf974afacccc10107bd381203c2e5a96bf23fc649a37714b6ffd1f1ed9f1168ae81590e123a5738a7bad3d13f5be1033dc9015dd4b3dd24d43835f1da20d0fa9d8909060f29add572a4748d701e0bd0691a85e773d1007ed31d00797be60da30c1280ac947e100ff88dda9cef1052b7f04157d8d3df273b7caae11deca4ad7916a36546208bfa13d2936ab89698ae25b1f9083c3f38540a9768569f9e62ba3d40a674f4fd900fd3b38f6c39d19a120f9816b4f56467259af435a5148107630136b6dba15c5bb3c06061144de10648a9c7619cc30afc697631884e10ed07af08da0c517d5781104da9d4354191618606c0af8afca725d7ddaf60baef5d48bb1a09c994bfd84d84d4495d0417cdb84677d18efdbaa7c40171de7673846ceccaf6a8818f7917f345f9b86fafdd83da6e204ffdd8e094bb9b0131fd1dbbe96b6b8075f3a4213fd7bc263954f4d4ded3c3be4fe3d64070d2582d69b34465128388ebdf75123bf7fcd7e42637181f1597200b3d94e4adf0f87db77a6e75f46596bf1517512fce6019b6951a8c0a6222baae1636d6757123b72e641ff59f0880d509730611afde4d02ebe7438ac15d5e17a3e414bdd7a30fdc976df57f5fb7a656040661bfbaeb54fc1b1a49add14046781c234e0d5155303e0a98980e81f036c317b6cd7acff6e8915569eac9d3cd09d2f976b76a065da4e2b8d14927ad134bcff6993cf69995f3751ce801561ea05ce0181c5e84690e4da54771b826856634431ae2418c8698320d101f4ae25525bbe6441d7b3a9b6bb5caa1e1c7ad449fb83734df0a36c00162b40d9a96c3e3840eb8d4f5d2fbf3ea5e77b50e64ba618bcbdfbe7ecbe0453085cfc50007f7b7a66b7d10ff07c3546b2e1bea83e822159f947c60b776d7240f0f18bae2142c09e9d070e7944c3d196b756dbed55110cb47b9fd252c636666c6e2f70a0bb839211fd1769353e031ca1da615dd834ea8b2b6bd142c0a52c2981217bd036c4d4c2a15479a6e7920e94fc45652eb45ef63e8ed8db83f549faf99140ddf2f39ece75fb08c410c450b4bf241f0f6363c45090470e7328ab6c22c38cf891319ad620043188ecac326e6a54a185cbc2f157f8e82a4124442094f36bb01430a05e98411aebe2b926b019aa419788788d7d5f3895b6f877b14184c124eda6a67d4919670b8d8d9dbb5fc58d76ff00901ee7b2d55b8843be2abda7880a18e1cc374d25a416f03ab188e21f3cbeb4170be0f28cbab2dc74d0e5f285fadf7d9bd6d2490a07b5fd2f4bf8462210092fb5dd83c061901f2209177891b6386aee8e574cec33a9abe7703f1fb81d324988d73de058dbb710fdce990cf5bc23329f84138481ce76375482a71b1a2694e511c695f1c256a36f324820bd58e47436a741a8098ae2bf461f1703a2f02ba192c86a6cba3024291629c45682ec511bd49a8d3f113885cb08f89d57eafaceea9139cc638dc276b8900fe78c375fe4ecbd8e13c79de08a8da076285a630c45ce299cc0534adc87350784bc047d7200f7174c38d6193337ec4850eec9617da91a375b7577ea190c14ee3e1b86165b2a4dd7a828abed16b2ff7d5e226c2e2c7609909885fc7e3f06fe2703587633eb420069c173988b26401322e2a84d91cf073b0f75f301243f8bb587edbc774cf27931ac8a1da621ff9c154b5c1cf2d2e9669543d26a3f1155e300ebcd1218c937bcbf37098e248213a8be33c9beecf89e94be8783bb50d77d38701c3a5fdd335c3157474b3239c7fa885c6d08d92480e8132dbcca2318830ee8d4e26c291072082168da24103f9fc4680a8511890434916b0cec216aa148e65370f488d04e79cd7d40a34680ff4194e727caa4275ba02f5b9ad9299deaecd311335481a1a2ff6ac60120080ab020d86582f2c43b74720e8e8036fc0f28890feeb2b41d081aa3993ac9f754d850d5e89195eaf6bc00f6e53f64499ccf901c6f157a159b971aa98088273d0b3dc425da23a8b06d824c14e79a72d3f7f1b5a63dc7ab02a964cc64736a7b198e4323173bb4a3249fac567481ad4fb057c46281ef2e882398030211f8e6c0458a4c13ad8a8b489c83214f5061049d5e1d1b7d7a1407b125eef180ead72c2188ee50d780a9001c61b3c1eb6491737be982521b00939fda3a44945faac8b12a8432140c6a64f1a05996ca49d944c70f03dfd35578d4ac8276fdd0d00813c9d0ece57fe71966cc067a48b9ed101267fc5e7bae40f58b8a73913f1c830ddafdebc25c308b4f041262db00206904414e9337f9a15f3948a99da9097f9a65586b2fe07357d95efd1e8d6199cdc2b018226b2f4134cc5636afa7d904450612b8ed89a5d51e4fd0d6b91ae98b5058079990e21fc6c92a3458df1e30fa0e048eedf7206eac99c80509bd288d92581d73805493605efdbc23a39fd3cf141c387b026bb065cc2366d8524083b835d2a4ffdb460df768d1dc10efe66e9396a6063cf2018d1e126ab7b741ed4c1ce3c13c759e881912c1a69bf30a62c471a44bd41eff2ca57b9adeb60931a467c710f95a9d8f09e1f4aaf96cbd6a128de7ac77549ec8aae4f7892e0b83db363b71a8a05a9a2b966762adc978168e1d1edb6e3eb5006b3f17fa33e7627ea5de35ce5e97d285c5b1bd43de2716879856374b342bd6401baaf70e930c726f589fa5e9b4a094f9772cf9654ddf86bc238a27fa7a0b073cd087a39e66900f00c2a3f8b7d8c0bbbdc775b675721fafd284e76cf441edb2c558aab6b0681aff47d288f73a76ca14ddbc0700297a77b4b327c60c6bdf54bd57a380d86122512882a211aeca75d519c01adbb3eb155a3d11085e1025c02972c4bd65daf83c411e79fdca0c0d8d96de43a9abd742dc2a5f696a8e82ad507fc48bc37522b59046797cdb54a4d602c01ca3228d1e3f6a85578c3c20cf48c9b76e51fdc9eafc03434a9ea2adf393cc0c8fb7787bcfa5ad7f39e30a7fa7cb064cf32402d526def96c854801ade29097986e47cb8612502c3f83b22570b0bff1da73d432296d47c0b2a0a2021c2e58e1fdf47b0e20e33ba660e3bcb6f7d3ac32df72057027bd88a9d9e6e7d5efabebaaa12385f7f8534c7e84d207f5fa9c1dbd2af33b2362471090037114617389404f6e7d3af3470a276f27625cf10c3e5b1e91f29f0321ff3e5dd3960bc68134b637e028ab2540d57b2bf2d08dfa74e17b97f626e52ed5a8f810304e8505a1dc819d518b4451fc1beaece8707f1a63a205c5e7db0093d05817b059c856d6b630b02deb356010a282fb43fc3cb5c6df0ea46b571888a5bd3db4593c7861019aed09516dbd07f4f25ae0f8679d5299fb94e5fe5a67b1bc92c3f28db4e92adb105f61ac7bc3e473aff0142d258004d02bf0a71cb0c2e077fbc493826aef19eaca3c10b830de8490aca31e04a619596651e5c21d5a97e5e05a2cf9f4fd3102d180f348f0812368f407f98ec47d186e3da13a0382e771e37714ac59a670c35f7ab1de66317bc3f00be318191b803434f67802ce875272675c3030003f7a4aa58dc78ba21567d0f2d8d068980ac4d76683c1b6fcdb4285f71ff029abf510a634c3d2f0d0580552f4850b2cd6bea1ade1b0a5eaf5281328271bcb19e1c7cff63e1cafea1adcb278477e7ece4fe91d4512769804136538ae8247680483e053e8b7e8db8560751b020f22ab90d444a82d4a85da782bdbdb3775d005942ac701dad46ffddf02cb46023de7f1383145d48f2030846c343ef08393e783915fd6c28b1d379cdda7e9d497f18dd70f62426b74610067844ce2ae6f8b06dcdc5fd694f169100c5b8df67daf9d1c23e3dc4c078960ac092a040b84433a8d5f8bd7186f15df513fb10d5ec9cdd76da3cdcd4cd6c9f4f28828b65058b772c5fb3558cb5c41973c8de01dc7613354758c96c7e10d51c406581062a15744c2424e3bffc4c9202ae4ee5a76c77058405b430ed1208d4548cafe356371f17f540fceaada40f7999ce307b5e42ba47d9301e708f01b7a993d1fbaab0eca61441064a3f020b5d7bffbc6e4fd7925a5fbf3111e5b189209266a78a8420141dc1c149d3a0eb99620fa349420e95340357dcdaa3083c6102010a8c8a9f91510d2d1e3f63d2f6625288e10ab50e71815d80f897defc05825686d80a9bef59fc54a37d5621a6bd64f4cc80b192f8dc2786fbf88442834ef51888dcdbfc1624a37df30ddbe49d71e83bfceb02f8b3bebf43edd2211a8ef62da44bbb81047a0b6c92da23e7dd2439af37d06377fd6dd002e96aff45831b3410d890d0353fc3ecc1c731ddfe37d243e85d6c80d56b8513cb09991bb27c82f6fdac132de3f60e0d3146c6422a1b9e10a8cac35a2ba186c22e2bf3683adb10ba860f83210a14c9d991e3f665ad8db8812b139d46f8775739e61481fe2e9209333abdfa016b290d1915c7101b533ef9f019a6fdcb9a8a2b696c120da15053c60749cab3339ed133b665f13027a1df6030ee875e62b8f98a92f88b0b01a22189915acee3956e510412c4875d6ede5b38c86a442f42802fbefea3965f9a1468a864980d57fde3e9a272161d1dbc20812b5c562048c0a42fd8c023360cd2850ba386f37d43a81a2f47c96f0f8f1f23c2010e8e6306d93b06a41fe9c7990876e02ce2cdd9ecce056e5c1aec82b7f8da10a753bc6a250621c9e8d9daa7d75a1428f65f2e34dc6a5bad0b57df4cec35e1fdb3200605dc5638ad2e4fa99b0cd840904f03e0c5d472eed8da74d21c40d6922e86a6ecb321d36c01e0243aef95eb7c98071bce0ea1e97d7bd76096bb810c20dddc037c2e8722d0d3d94ca9f65e1c9d2f6654120930948a4a906d36ef304e4fdbd6e69cd68dd84d4a9b8bc9b7bea74b35b076a1dc0914296de9a4a869b58201db302d64a74221edcbb4b0cdb29dfa0eb8534039777244385c160c8009936b627cedaaaaccdffea984861e362b3ada1d3bdb89b3f1751e4991043a024fe862d61ed4cab269fc552efb2f20216e96ab3322550fb83fd53b62e889da81618e802a917366323d2b269ed18dc874453337527419b426dd3d9b5b012cfae63829498bbeb178ed75d28aeff828f39bb83d026941e94ee224b52401a150e549af93495e38433c491187c1447d1e137ec0eb51a635a7b4f41e54e900709a40875e221a8d0acececb92b72b04e23dd5230645ddb505e7aad5474c3faa6422600a22a157d84ffb7e8a08878c521e4db71f95d4441abdd65d9d86edd0f1c4997eb93d7584c7f20f1aa54968cd2d0f0f7ffd0072520072a65077deee81506b063bb6350045933fc4818694b1a285ea45ca80546513577238d149859d23192ffa2b980d6b5223b7e592fbcf71c92841928a76be6b51beaff1ac66c8ff50130243be68a648f75ff38acaec36712c60fb444789fdd3c1c495ef6490328d1a2eb570f3de8f690d5570ad222065bd9b3a0c0109431b2dc85331a2685ff5bde71f58a9ee2d0f7a378e25e93ae535eddf9311f40be72607c7664a6e84c9df45f192794c692cdbfc2d2ae3a0e59086b80906348c90a4eeeacc8ccb6660eb750a61649d00fafb64a782ad9c1de09d3ad1d2919277bb23b6c58296a20a2a9843333f9008b33747b366613c6724afb0664b1e49bd1e0b1abdd3ddee569e39606721a7f6cd8d0f63b2731f80568b0a6ec6bdfae3a3dc21ba67a6f22b73b52fbc71f4e55a83ab313835e15a41d9ba1a10f6bd2e2eae2ca65f2f2a21ef6b3ee5bd61d96afe69381aa8ab7e9cf124e9cbd72464b0c1893ac7084d0116af37e25ba36d516f49d32adbbf9fcf24f76c912a900be8c6cacb9dfd94f12befd971312c25bb5b8d556955e4ec41786c99257a5c4711d58929a2eab288d21c3194c496693cda88c20dce8b46459a8d9fde10fa791878f91db5027eb824b269c9046b58b95ea65cdb93d13602172d42f66fee6fa04d3e3e09af9842c3f2b391f4d6078fb2fd0be28a68d19f6f8f8559e6d0f314e0bb1ad23e245a184e583704de93507c23fdfcae47d163bb2e1a0749cf3d185e04de770430c99fa2ad516e0248847cba61c5e261f2a5ebf7c33ea5b35faee5a81da6b0356e46320c17c6215b292b718ccdd395fbcfcd6b5f5981eb9734b8db36df9e40c670bf88131da5a2bfb4f84629febf918928f30a073d463391d1db60cf67409761e1502ce900828bfb0250b2935fee98a6486700c62eafbfe42b45bfbfaf5568933c14883fbd8bf5beb0bd345ea6a07a66ab9414bd5622251b5d26265e3c3c07763ef9617f457d931f95e46c5bc27f3e996f2fdbbabcf1aadb0ee601782513937acfaa69554e2405dd06686e1a10048e2b3a347ac95cc4b3463d9fe6c1d5c1df2a42909525e0e2805af1b27510ddf867b2d64fd7ddf278449d7dbcd001d5f5189411000c6ab90cac2c35e96c269a12da5c5b5c0e4ab22058f293471db8693802938f5e989962e6d8b40926557f6cb0347dc246221166c0b3fba86ac66107743ac3bd9614880f35685e8f632620e6dd2dd41ab886a8d11d80cbb886c1f19b2db7145f2bc77aa23ab936a20bbcaedafb6a79cbf0c3ff095707793302110d9f9b6ca738e44be81582f9467fdbd9e0f69a356e47dee7d3236f9ffd5e6fe7d3825f6f03e4b0e8ccaffb96158771fdf3aec768abca9bc1918075b77b971d583c3081a5ffcd2defa812df40f03f2630299da511e1911a317a8ab23f0b4dc01250d24348379d1722d6d7dd004989abe880851439d01143f6b5ef540501be1520e7d22490b21a8b61e70205a7152db95e5675d635b4bdb256c036806d88daa8ebd3c3b1efbaa66f0d7063d32eab099135c939a83bcd0a6e400f6938a23d11806b51264f698098baa16df7daeb0f07a467c3dade7b6d128fe7117e92d3c2218900651fb25f37e60524d6883c1bd885d85c88077699a4893d6d52f0cdb43604689917e0f14b1d1202f20307bce583f740d3a6146ca9a1aae54099f6857de4b5d2c3feeccdbb4e1e57ff20c7ad186da312013f1bc13d0be82671bf8b07c045678081c602301157eca5e3554507466bb47ebc45fdb1afc0505458f9716049a484949350c0b7aeb30662df67b24a4e9b126c5bda6e1293c782c10528e7df74495421e0b89180a073ab58958dbb260edb19cd0e11d03eb89eecc48604afe3ff487636c964bef64b9574a684871fd273db1f01413d120428cc8ca45c036c0fafe328899ca12c86e41929274d5f31d82d6cd6cb51eab4a03c887b4a0d209f95105e6374a93f03c41c799b1264e2b7d26a34e41377f05ab1f7f22112fe518076dad5cc182fa382165ea41b80e8fcd36ed7a2ab75a75410c01dfecc1cd579cd2e10439d1bc0159ca698ac2040bd7daed6ebb26812de1de19b0e91334ae5ac265530947150d4af2fca8edfe6fe2128c3c7c360f543ce64664a43840022ecc960a4cad79ccdc1777ba13e8710ac19a765920e7a9c10fdb36fd6d75b606e664df2720591afdbd1b15f77f209d48de118b810c95c1f0676534a2b4d54e7bb6cb96c2e8447894cc3b35fe54dc3f3b4fdf3cf09ab94d47003ed6008c761cc8c2bfe23e78f79cc5c59b273b176ad891ea0771fb990fa8724a76068b412b9f1ae828626a504a22857e03a20a12c6055c2c7b00ac26f520a3f6ea77acd85badc3f6e0aee55cac93db60508447cb7ec9f6e9d51772edc836ec5a27fc0ad4c1574f8496d2d6e3b4ba87c82038582c755c2b0262ee59b2f3bb57b9232302b9864f068865c4076a9723d921aba8af5d3b8c509e35e9d025b6ac0adabaa205bb414bd7ab5a356cecd7b1ceecc0ee8b6727027be3306212582df5ab91649e5bf9c8211334ec9a520df8d58d684de5eb763f8c064252f849f280b47f2ccd150eb9418092d9d7083449a0a218a27a804085801a69c80291eebfae42bf99ce53637b110cd332a5eed75fa83421d303b9ee51bea80e3961aa50e0525162f1d408928eb2d800aa0c5e3c102a8f016d39daa482fe0b0e89f98aea91b942a5842071fc6bbe52fc6d4286385b6bc2aecfa3aa2a4b97c8d22070d682dc9d18f14d2d21ff4b7c65930149b556a23c9a7092ce35826c74835dca3fb1924e74e8875e80740b1440b6e53b27cfb5607f5d540144172d8c88c1e6eaa0e05e55748cbf73d027c2c63c80c4eb3a750298ee938c685cf45b204bb007ea7b0411e4f6c6446c890c6fcbc3778bd29d91ae8eb6eeb401a3d0dc5e5330fd5fc08db6d1d4f6853379da3f73250e53324aec51b8bb4359a9e1d91919c2ead4f517d72decdfa8e0976096d5dbe5400aa87c3fbeb82f9aa8a670fe9421dc38611ece2f22634ad2d37fed4e0e8de68219a653765f089210ec4a65ba9c56b70242cf78546d04b6d4185abbfccdbab9308200bfe7e598c933bf8a2a45a473f551beb13b246b9a7809db26a8f56f1920dafd6b06e094fc3bada76de275e9de29d702c4ca972957150581783ceb14245fadc157bd78ec692ae176191fdee5609281a076dda5e4e7b08b082e4687c83d9486b958439355c1d6441009a957e20e3ad09249f39889b265d09314720d93e7bb00eadef9af073e48bc36d52c26958b5b1e73d1b1829e6052154bd03e4c82eac0a588cbe8ebb07bd9f518f03a125d4d195ec3799aaa2ed38987232ee84f64bda477a6af1fd1861807c71463f99ee2545859e51328950263fcf78762fe43c14f420c202ce8f183ef705ff6788a5adddacf1fcf46cd9b7956e96e3ff474376567697658176e35448b561151e4711ec79413576fe7bb261aa965de0760a5c15cd6bb14e3f3dcace968217a1a6bf2084834180ccbaacb6ea49c6d835dd0ba988ef1709e4088992c8ba9e284567671a7abe60c23aaddac5c91e7ae064323808b480dbc3f203e793638800711180ce1813e3664dc27de0b0469fd26246e74bfb9e729dc47872de50ef17fb894144050d2e1fc8f350059e68410b6f2b4952f98b99d9ac9d6843282f39c934a725e684d20561f9ef61afea5a07b6629afaea078bb1b5d4e186076d90657eef3ab8ed3c12080e1c935cca439639f02c9bd17e17a8d4b54e0d2fa0053b51e17c61019baea2f9d40b76aa70b6aea9f797dbef5d388d8278b113be647afe2a4c32aba8e77c7bfdfa1bc6268d2200866e0dad289eda08437354dbd8cb36c541538371d2352bfe70ae7fa0a6b1bd88a3e87c422483fcd821827d085f78c74001d1d9ce729c171df15427c04cb2e6f08593a5b15450e9c88e9a2ebb1b4c9a636060e1115f9b4f85ef01eec8bd32c1856321f80a527f588d08648fd438b23ce4c229af531927cdbe70668b9468684ce73663730bce1a03d1853c2496faf03ffc680871e400479880e32fca6d231c8b55549be3386117dc228329d0eb13ef40afd1d1a3e7f380c1e40d606b38d455d868b0dc5af99d5006b7e02d7a78e3717aded25766a3a7a212ebdab462cdd178702c9d2fdbf00ce291f48a0d6d048ed1c6822368445f1bcf20e9cfbbe02b47ce6ed5e7d355cd370835038562e1ff841332f23db2e4613a71afc818c59439ad1172839cebfe2e625e2ec447c4bfacc303eaf63a6c2d0dc5929201aee6daca304530290056b35b3f6c7ef0d3b1795a0c8d45961ea273f7f7b1d1726649a5f3f9a84a6408e886279bf89c993888b081d0e1ad9a5096d8997fc0fe6b49fe6ef0571674452d8a9604d08aa98b07ae53a7f63ba7c6b43e27aeaebdd92d42144919d1e2c72869c2b415a35b9014c0b10740028442a5a2a5afe9f1f4d5a5932caf912a0c7b8cffffa9ec9281401f1d4c4264ef25f270ca6133ef2f5568aa27d34734500f81d4292b3f678cd94ea9c4547674173b136df34c36a49e0829dc64c5ccc82fe90340c13a4b6448fb1a70198490ad8c5d00f7df090f2e297798b45e39348de9bda4a492111c7d3f387f0e387d54578a8862de6602c93429ff891f407de6aafd8e93549d1e5b7cd1f308e02987880caf29094ca9c228de2f0fa1fe064af0a0b20b308e852b313646b7b6aa6adfcd1eeb16dffce9e05f32dec12176f98f945dba449134136afea441d0e66afbc50c7ff50edb01094b44a94118b4d5076d47db496f7efb55837d54a1a0f795045093d2fd2f861d6824c7770b32cf8c7de4db0579eb2ac3580a248d6cca094042865a2d574a895b02ba32fd86da3f811fb739ea8900a680326789640a5728a79541667f80e72017247059e8899722ccd36fa89fe4ae2fb71eecfa509feb4533927ea69a65602fbade1b89f81a9572f06aade7435a5c5fd8f1bacfa4d17bd42e45351611bf7b8de49b2b21c7e66553992268aa065844f6cd13ef6a3b1e121818eea1e4a7384cbf377c0bb72895267480657c884f73312ac5be7baa18ff54ce4cebb36883d84b35b2a8fac6a9b7d162bacac3e49db8e6c2eebf393a241bb62787353d0f2c56267f53285d1185cff2e47684df78439908af513218edc46f5f2f9106eb2e98f9dc1986ac896052f5c97c53814e4cfd24de79ef75c5a99ac15a9c3cae0904a97443e54655064333c6f90a1f0c897d4f1b3e0e44e1b58af80b893d4a88747b48ec7533a4fb7f2bd42ee2619bba419a1c5459243ef1d12b5885f8eac4a031cd187b955affe91cad74da7a5ade8934e99629f6ad4bfed482ca7fa751385005b3b23b636400cf045665f40678122e21336f33792a412ee33fa7eca01f27137baf47ccbe0cf70e791d54588b40847ff9dd59c456c95354d5089d0aa9b2ffe8fe7fc2a8485c65a5238b09d1eecccbf0abbea5d67533d6ca233b721ee4fe7442eebaa16e1b0711a3062b74e43e7cab23ac747f70fb1707e0d488dcfd2bce4d78886b6b2dae1fcd726ab01a7428232ef80e282025c02b7abdca2ae12b78df8ffc7826c2fb24ef1ff4934a20787fd74a572f0c5669740e733d6fbf23d12a264c524d86c67613ec5a6c076bc76757509476bfb492a81420fcf002d343e25c780e3d31a1b8309c8d4745c56ee64d86f70956270ddbd14c38acde1507a7399de7fe337fd592d56b043eb1cbd023f98b8d3b76996c38629871cda20b47caa42bb0f7651ea0f5bc8c6488d62b94feb470f32762b658a48ffc703de18de81d19ce93e604273cd83ae6546918c06b33a5d76a2c9af27f4d9f93507b87461f6d961cac339c9b604b71ec3b58f57d13d8bdfc50e09182a1fa8300488350d327e86bebaec54d93784efc4305abdefdce39a256d7d6cd48045e691a4f0166c13da68cfc24c040029faeddb6a6e40b3638d2bfe09fed02f98710b779c8d6460c98c6ccf401b262228da6e67ee89208f61ca4dbe56fd5f2709f0a0e8c5ca82bcd4c418b256dffeb38d6336beadadc29b3f8e63c96ab6c6bd311cfad68b0efa3a65bb39ca82ee6343755a3660b763b1e33ca3c5a1e5f5debb74f903a45cf9252449407622ee108104f13d029874df8ec4429c976c577d5003017503e843c64ad2754588ccf7ddf8919003fd0dd8e7069afe24069201a68b4e5cd788dbf815c3464f89a32660be9c92e69f1686039919e41da26c8bccda4a07949ad0ba0c33f14d612f81f45042964b22852e9e45a559216c47e66501d87cd4e0c543945b7716e5919ba6806b8e4d37c3b81edc7b99be067685f251f81089ffb47094bdf15b4dcf93a6697f7f725c28a6d4898a2ef1a605d5c3cffb0c5ce12c0bf82ec898e9bafdadce8d1116fb5a1a9c0ab5f9b45eae812b6640f06a04e9cc954b76469455ffa3b6381d3229794c961de714801fdf6d83812fe959bc78da5431eb277c6c427b7645bcce101498f1b85f075d80def0c00688777b49a39fa1cb4360fa13559ed0edda0b5d39ee58c586f7550a24cf8ca63825c407a7c101f9373d8bf5ba6dd43409e25274ac3c99910a8bb4c75e2b6eccf9b4ba72f676c8c8e9690986885663cf9cb1cc967716df6248e4fb54bcb8c7602399364dd49e4cd0cfb85100a448562c05a6c8224865672ff4e91113877ea3c282803c957acdba4c124acee7a0be49f144d77cc641613c82a866ca46283047233adb0e807e426de7004d1f2ae106bd256f9dbd71e97b262b0c942ac5bb3285f4bc142b815393eaaeef4e16b12bf881cb981da37545a7c7ccf608a0ddd5643499e3a53dfa02ccaf8ece18ca012a4f73e5a6a4712737b2f6beb4bb577472082e08f24dc09a08f6690b1ee3ff2351fe4db4cc97a9aaa1f501456a0777781a2ae5419ce6cc15a2716a89b2bbea6206575bd87f86c990447a305a44f48942ca8a84d9e04d138a360f130f02864d751540a6a1ddbdec9a01117759eb544e19f4218a3cc07204bc1f31f64620fdddad4e64181345e92487c910e097110a204130f07f91b26be0256c18387cbea0ea870aacb25260a39968ec0bab453b3ce31ac3fc4a24962f7b7e99fd7e7f7af8545a899bb075f7666883a2f1c601fbcb28873d6e8e7e9be277333826c569f7b4c8ad6e7b6b8aead73379a8c689605f27e76bcb7b5a4309b4b1c0b13e1219097cb470348bd2da5f06285c6b6da40cfde42b8a7da230c8dcdcf3900793757197595665d361680be0b27d4ba6e83addbd7788f5d0a6f1d96d3b604e8c9cca7b0d19c050c1f0bac717f1b1e97ea7df0c3f8272990e9575855a456ea661fe6b86edfb25d7df4e7118e20c874bfc11ac655e492bb3014eefef38e7d0ce6785ccb3e4c22b68db595dd1dc17a42b98372434921cc0af24349265c2fe88fdee47de415333942f6d8a73fde21631d4086c3ac7f61d3cad6bb88d4f181953e6815e87dddd7e4f8401499776afbc3672dec931071f80ed3d8874d68b8be13200c017e1425831f42bee84aa2ac2e4ff98ce457e865aca19b6de3a93f07ab5229af3e57922b1f455b6315c3ce7e20e9623d8f9f96423b2f22f51c876317362e8e29e5c2e260185e0f65dc862fe93a96814f303df803551f6166d61406f5ee8b67f78e843b3c1c833ca21563f9808e3b19cc4301658749fc13083bea4b52292c31d6dee6d65a536105184947dbca749a7c7cf4865a45fd1522c10342ff20f63d695704065367e27e1cef44dfd5a4e2fecd288c7f48d861215f41603a5efb8455270394caeb7443a62447ec4108c634b619c1aa1df515f0933292e3549d429ad5b2cd7ff9c7775c5cd9b789268e0b8a676bfab9171d3709a718d83f81ed284c7d6ddd3069be1b7b87febb845a42cbb0e595f40af5c6da32d0242507039a1b6bea5ee69182f330cf3b042ade513771fff812cc42dcd5475d493a139a6cab2581d05c899325ab9e23c987226a7aba5a1236e14ab66366762ed8a504d3ed7e1ae5c6eb0de617d019d0df260482df2d2f0e57af06b17b4122cf520bbf0ab614679e2fb091147954c930754e2c0e377f695181f6341d42e89633e4c9a0e677058eccae46f888fea125739a1bc7f52f9a8488b87a82dd611bde49ae936ea4e7f8fb9d6d1c85dadccf5be076ccd0c33ba65f2a279e966aa6cdb824a307402c2b115517a8c19bed20f64e2506d4cdda3f434aa3dee5ec6a5002a3c05e108ef0daf006cbaf20a89ebda5e2985a105f8548403f48703c00a469f8b53408ba89fce3329258462750606395130693e293cbaa410bf857d3afdb5e87a6f42c9a3cd117cd5f51af93f5e99167ca8ed565fab085ec86967c3f49e16e91426aa2f980a6a7a0e10b80e21d981877d2c89b0f69c8a65035145dc3e4d9683621d996a14e5b1779dab3c5f364bd8a5dc2697409251dab3f74ea8e8ef80822819c94779eed34576a85708d759fd9e7a92170d750644f896e2c8bc7545b55dacf96119c5c782001681585bc27740051c90c2d6b5d1c2e73699a3da73605c2708e15748acfe010b0f84be53548c2ed6b3f5e8e64de4fc913522a64c1e3a59ef1fa054eeab7f6fbabf9e9f33022732f54b7ceeb0763d74a4f971d4f01fd3cefedc4953a8547f6d0f6db762d135b586c164e599da5066ad58bea5a1db317ec8464c9d5472d8826d2e64ed8b12e92e5dbc191c93dbf2a89204f56c80aaadfffc619e0ddec6ec810174e6e999063ba8462465a0696591a4a229a0f556af08be065dc3dfba4810d05687810c3e36e1e0e7220142485bfdfc66104fa69401249748568da8e095a55837e7983af48f330bd3234d4f6bc0e2c006aed4d3945bb95ca9ee02d70272882ff4bb0e4b33860385a224e24f7c3e694f924387084e1916bf71ce4a68126c45649772667369584c046dddd1aaafd484340dc950a993b4526380d1f1119b29e3187675f35c3bfc5eb82cd71669be895a6ea178065807d0213f89d73462765bd081482988407966adfcc7b5cd14c90738b43efac73f85bc9fb83b8573b8eecea31f4bca2e2cb25f458278b0017d562a6473a2b971641ece0a7dd1fef01b78d65c7ab59b2e98d5775bc9a534d95e69e1544a8c5a65df219659b6de3032a06d24c1ee27b94ca6efd6ef537237877691aab2d5a10898aea84bc5df2daea4d30a7040a51305aebfedadf3711115f25ea144dc4bbdd90577c4bf548aaf291126d412d3d0ec0ad1ca821026129e1a60285dd051f5e80bbc6440c90076d05b079eb4437bcc32f79c6cc9d80b9a0a2b4d96b5058f8ea90a4cbe6a5f6dea106653a77b39da22d7827ad74fa1fc37766c391742c3fc85a408cd9787628a6e6cae56163dc962eda5018f8f2eb86c51ddd149974e5994f43f546e8d1e39f850c4584adadd0e87b14873928d4fc32d6a84b801273d70e5b5b5a7d5de91caea475a5fc0e3ca960c9da2f61b6cfb81befa09ca33eda53bebd90ed793f02db7c967488355dc8ba732d1c50a378aedd7394586eac7dad21bbf5eee154c68b2f8c4d2ea68dcf90951062b199bcd42c78b42a613fd0a9d81497acd1b8a762c8b61dbeb9835866e43e4c6d5058d1105f8a203110c41e11d1fcfb3b816e3b96ca96cd5115fa843c84ed2885ce1afaf8550dba857ed388e993b16a72dada4fda8378e4687848330714817d242b2e365aa455278de584a3672e28a2d5e0f10e6b8a78cb785a1d6fad823c948dca8fac827ee7b6dc2e2694cb189ff17b6933a85a0f283ebe82b4dc19ed5b6b5f55588af4a6be2de02da199a903ba143beff8b0f656a82e2199d84ad3e6387e6d9d3054dd927d622e2757984a618b8c7575e25e83b5f352d94e02f8b75fc2f752c13b7208ba407a5637ba0b48220279033210a4430201de45d0e8f1a427fd2ccee5030fadb3802d8143de85e2f2092c679c01fbe80596d61d3542fcac866259cead2774dd1695e53e2e18f8dca68514e0d2f679af97b0f1e87bcbb0ffdeadb1e1e798b06d8d6f3eeab6c6e0fc933b17f2d2dfd442c681a1057207ca53109cdd541dd3d7ade73a56e3b1c94ffac3d97e0a40d9c890946f0cac7c7b5571fab42620b751310ce4a34f21b8357c2098a266ac29779a1c28ccb008e86b0a0db3f80816a13ddd7ef69df4bef3609ffd0ddc26fc21acb51bce1c3a0a5b97f27c5102f54ac23430bdfcbaf384cda772026037f029f70571672732ed4129bc4b851d184195769fa269c636aa00ebdbc94ca91892fd3e7d2354af3663360118ed331d9be7c2853cbb14cd9cdcfcb53daf3fc9166d0256dc29b585236058ca489cb7e654c35e841317941cc62c0a9d0799ebe335909293818b49a1b8c8fea948fe598f334c682cb67b61171a928cc711a11feeea57d5cd1cc2d67bcacb3af110237b6395140c7e2727348e6a8b98f6cd8750523f7036be21ae6722a72861895607eb10bfd5aa9426a396f3ab7b6a533cdcb58b52d7d120e96516b42c0ac610d7a455cfa29c5afab1df24190c354eb920f5f3ca67e5ec2522751dc9cf7ccf4c7d769554d41ddb82fc8bf19f77004d793f40c79054a1b8ffb74031ddacde94205eda94c81af42ae8a5d6b9b875b06d76e94fe0bd50e3086cb269709cb072e5b0de382cf7b56b0d1e0b0f176a8320545bec93fa504109e858423b1f5678ec318c7f4d98f55c6689ba498cb9d91edbab960b55f167958644a917da2fb53267255b9748cdc215f5bdfd5f71c055bcc0faa0e289de3f891e2511c5e4afcd28b0d3f78efe203de5d7e2ed370eccc8e46df98c1590b0649140db0d8105e143e5ae1bca9e2481b8272a21ae8380a41768d28ee584752d05c723a6822920096c2c12ac47f7cfc1fdd12150a8919d63c6cc2346f262598fbed659ae2a715f39317d175158a97405ac2bfd0f2ef74f31cacbcf7d2389480b8634921794bc16704cf10c2437acb18821eb301866b0e0a2871d24875a4202957f1d4708995c50581764ea0d58946248604a8935e3289c84da68bfc7bd771afb2c90ad983585d9634fa8605f75c0ccb048b6623b992a3ae691f4f84bcd1e328e353668e0d3ee828a3f44c05411b9f5608dbd090591c8803cfba5d4045559029b78380fe13779a6068cebe0d34c456e667fb846838495c8ed8576f14c750aa650551d36086a5a0e7bf2ce6075ddcbb854afbe56762f3a492b6f6e86134a04432695dc30f74862e54dd9ee84187a0c16321516a01b9b45576a3b1831c59dfa26896521c6621b36f80ead22ce5f8dec147e4d719b61beac162eae9f3a4e602b01f08e56007814fc702e0e39f3d203475f046e6d478cb1a640b9c8bc6a1c43ca4c697942a952e014a9f877c01ba2be0329ae880ec1889d90ee13c28309746549ec97799befde0a82bd8a93872790b814254ca34148d346e8f208915a01ee3d98dc79940e0d934014205d958dc02db48aa0c703e6314d5a60c9b40f1bfcc28df0fa895e4435f136fd0db725f4b48bcfec9278a095dd09462d109a550ae83b3b1f1d2c1a85daf02239c13635f427ce691142fdce6cd1062a3de16398cbb09ba15a51b570bb85ab9d20cdc967f061cdd179ff69194fc73a83294ddf04bc9588480427cf27a14256622389509b403864e17800c2af6fa0049b4e70cd6df773ee98b98a5344703902ed75509a2eb4c2ed43d13924e4415f5ddf64b4e6abb6113920287243a3b9d4412967428f4eb657970cbbffd717dc7cf581b3bb1be8db5f5fca8973a4854ac231d6eae7bfca3122327412021d3b65b3b9e37f8744f316bc9af8196bdc92cea2f63d87badd710e1f85f52ba22b49c62edcc96b22a85bcc2afa7aafc247affafd38a1fd8c99d579f8d64526d590c983d229ab321eb93eb0133b5d586cf920a8084c3f972bfd20eaa847d7060fd49f82c225425a417718a88a64d80cb273a6aa6dbfaae853e1802a663324250d504d5b0b50405271451958b1caaaa62a1a5be46933aaa834c5255e176d14752a7a3a99a0b3c7ef46f4ddd54d02716966b9d9f0e237f40ad9f4a8fe56ea364992d508cf89af0934c9ca7702e39f6738c491c0e6a6a55097683d0ed88fb589d2c73c9edd6c1df1012c021e4d0c4e4cab0de326fa65c522bf8d20b56c6f9ae61222cd4e1a97b1760881a268c32f0c96678be07441de3f0a7a84b014de0fce0d5aaa93ac18c2470aa88228447dc646a80c4edd377a5f0f1e80eec81b2721c3c8326c8d6bd75f690d44aabfdc3594c138a10a0a8be4a1fe95482bc673ee3509dc9821843be913e93c31b5ac05156408bf5addeb7f31033204d09cda88507c57df0f82c3f5cf9202ec4140acc6c86893a8a7962b928696fd20848968da5e171b3cc856f7a5adfef42f026f0b0fdde6d37b10c6111409553bbda9d771c5f012d508e56adb0bcd8d804d02ee82c6853ac0cf610ab0e9c25718f320d8f0fb10f9a06eb34ff9b280326939277003d2fde7c31e049b58cf3f08c2e3843ae914e08310d54bfa5d1a08dd7fc1c4c6a066f8f5af010d4f0341ae943f617819b0c28381d03eb0c07e1acc01a8150682cc17aa5611ec2244ed7f20ffeb22163b402dd0fe84c74a108109ee1af1830920380f21dcafc8d4e0c74c6d60a1d620e94cccf19ce00fee50bc36fcc0637b00a9ee5f310460c8dadb0b98c13cf0252f60803d504ea80f9e3f3a2c197e5a0466d1ec03563da74fb4050a7e7037bc490196368c85cfa80ff3198697fbb1811fd42c39cd6613d87cf80113f62566cbed41696c2f1f6b7409705249153d88a3b89926975580f986b9eaef057a902609d61874f9f00008ef3ee94406843588732243627cdf441cff984971d33b1852073edb1808ead5d356d8868fa7a80337b723d4ce506e1db4098b98f6379519330487943a15d4b992ed152873acc0f93b57ee1c94751fbcde7ec07a26d01ee2d1375bb31a1404cbf69e4a98788c66a802a0c915840ca5d0bb89a1dd77299e69378fa80893789693a482c00629144c3a68dca8235210e81acfbafb4089b10b7899a9765cc002f285ef2ab6dc8e892b938260de2a5cb2aa439ca8316dc56d30872aa9706d7e5e69cd84c00a5ed31f36f2d02aa02a9091cefc85c4bf3c4f60ad0fe5a618b92490deedfee968db8f6a1d49369d10dc993ef41db627bacdc94227c2ef3e7cbc5e63f7f7ebe00319c28e850b648f2ab31917a1a0308c448aa4254879057316d23438ec9089348c20eb79a177d6b2e3763d67e2e8cdde1fba2b1ed7457f1e15cc0e8b04b31cfa78c737538bfc971ded27ae4ec166ac5ce4698ce7778ef83e40495ab772385c1deacaedda7cba901b28ef0520a1f813e621b62946488365a65f56f8462c142e5c0628b176ed3bc585a495898c1abbdb8b92648ff1de66e5105b50b80f144c771510f9a85f324c9374696c1ac332861603b2be99dc62343ca612d7515f3018b7e0e0519c1a3e34e8a5be604f358e5b5b9c6140dc70ae99ebef62f98fc8aed6f5efda54eed7e0962b021beb94070cf1a5bdc538c6e4ac6fde62114a4983ed49e1b33b09f3f92be5c6d3fccc02a509b4fada76d6e9d24408212bb1bfca2e3331fc84340a40a1d6f10726dde1004a85f40e0219621f058882d4f706ff0066c6782935d9dbfd4558f2d5270b1db36aae4c29d2f5804858c1a922a0f084be0f247fe173e9d4da7b7d5923ebc5a36e82a3af0602c1a1a8092c8d2327d15d8a038b099b8b7d4a70faa6dde11d21e25803fe256e72af77b06170a350ab5597571a3158cf330313a4498af9b777856cf0ba60ce5c1f915651aa16c5b81fd19ffd409d987b786a4d4987d812cb126c392cd96c2c1b6a0a02f5a043200eee986c555c8fee9a91e3af95c34008d60119e81acf5011f364cf7c8a28de10fe2ce07027ffb33b39a74c2400bb4736eb7812a6fc3dbfbd42ea416378f351b4f54223e29ba372047cba0821afda7d49a85a8d233205a8b1d5c6c98ac06256e43b5de8d496fcb71a4e091d2115ced9460de3d4ba554238d9a3458fc198ade45740baa5984bf852113ed4d7f88b43ae415a55742535cffa90977ed81d3be08d1c61231372e759d30a9a919fc6e0d90ec36399bc94d490250e7bcc0f3e8c9c2f19d15461bef1f8e24ead734a9b8f30511ec3284d488038911d88a39ee8100173d4625b7aff810b558a43ee111c6547257e74265953fed9eb991e99373aee18c71b5c4f55b64960253864b7bb815f3ddee91824b7b47812e7476f640ea7f7e62bae50f33033c13bcc939073b4bcb2a3d77146a9798d1dff66c8eb84c826b544072ae17af5b758943ab844fd30ae5497bb5c2393618c0a9ab703e416e7971acd30788105f48581d935d342fec5c8b21a05dbb8d1d06934ecc182725597cbfe76ceab87dba6f9857c5976d65ade8b3452efa31a9cb665c6d4fe02be4146d46199c716881fdb48e3d68e97884db9352d38a7148e6c3eda59b4fa6ad9ac2de09fa8ce246e091bf856311fba8017e3711f711679e4f8294456892e3d202ea30d8e29344b3be25c251ed9677fec365b216dd357d1da63604fe2e479256364acf2bb183878658b2df08bfa9666534954f083abd6b42aaa00da58c4f7d6d7e26a5764e32e0819ebcb9114366c3bdd15dddfafb683a80f4694e5dcda1048c52500376eee4b4472aec0a7cfc237c54340310a3260f0c04e0ac304064daeed417e876b4347b9a290572e23683d0530323b11174ae8a2d76a49f05a6ca8395778b6b81318235ea26aa23c4cc8975a41c69a44c52b84eaa8b9d91f918d398f0f5e33f0051f51f600b3e50c5908b9c625685552643b9241b1483b8abc9b95f4a0378c64a55b84c8dc3beaa2a11ea5e74e7a767fa57f720bc1d5f287026a7b59c69d95d871241095c3730d0e0b077dd42c2a918fb534c445edc8a06a2d421ff1af7c82263223adea3fd1542cf62d5a3c0a0a20f3772db7e3699570eaffc14652c08914b87d008760eae0f4260a9d5335cd5ca4d8cccd7472cd17cc59d340111087774f578a34258bb1b41ce912c4166e383e236bd3d8520cbcde4f2d0dcc351bd3b23ee5b409719a653f5cfc0d1f17755bc927dd33db9c5b095d068fa444e3cbd25e86018db4bfcb97e3fae3665b7f21a2762454d96c34f8f7436974cdb43fe0b95148b93868d362a33c7422dc584560e31c91a0e2088f3733555e4c952b7291c31fe10063acada0ca348edda8337c61a962c7f9e3d13176ef9a30c6e41b7ebd4c77d8dbb20537d803b71695f3133d41798ee52f5daba7785946f4d0f3e270e1190b58ae6f86bcce58c1d05a93bb6969fb3d4ccc157bc404c707fa6822ebb081857a1a27e3df2ed30eb7ea3b90d3ce807d6cdb10924caa43c74ae4620b578b50607e73484350a86ce7045f42ffc01d1710298ed8b33e2850e62dbde3ce049f182396820701423ec4fca40b43a010b23ebe15a36198b013fdf1b699e39af004e16099cfe42ad49db4bc543e8002333af9010d3e0e813a2c33728379414ac0a5b48d9c66aa578c3abc9c49dfc5e42e0488cf9ad57147d852c5c388a35542f3af832ccba884c7187f3cdac866cd5223fc5504da08334c90ecfbeaf0dc2181f4ac740a856c2fe899efac6ae5cafce679ca30392bf58864d85941afa53caec00719fcf4b2e7189ceee86ba9514af6378a2ed344b024425a27c306bac7ea00d26c210b24361524f3c80c70ae4f61b85dbc8fcf68cadc225f7d2d79ce6cf8804997d3e686131efafd72a6b72e8778f7da78322b2fc4213ce6af25f94fe6c6ae128176cd782815f4b9ac8f9910cffde8a7ccaa05706abe97e1a2f61bfe538c3874a93f2f4e87af68d31559d6c7eee5e893b2851df21cb9352be91b180722cd2a18152408a77dc5daa759f703b8222bbec96325575a5bebbf4d2a385567f6196e74c89148daec0502738123bbb1bbb745449cca793fd27cba302ed8d5ecb60e1a47d6ad5b25068ad6b424e99790457498a30db60ece46c2482a779faa7556d5aae5500ae1b2eca2a916b6d1e96cf8836db37388ab9e0237c1f9c00fda03130af9b4e987f768fac75ebe1fa8c0a12e577573b91f2dca9d92f23733518f69348f4591830a2a218fee616122a8fb79a2903b8cba0b9a8d63282a4e1aa5a16c5b9e4bc7cbdd82b4ac7ee2eff952cf41112ba9308000fd5479b4dc20638395ad96b99d258a88ad2f97432d5c07ce06820ac59b5acfed4a382ad879240fc1251817ba3c97fc3ccb9133d0bb03b59924dc52c2e47780f8e805e92aa456c2181aa09cfb5d2e476c32fc6e71e1bc9ae18ed2666f09eb6baa61e90ddb0b15f72c043c80c9b842bc46af664ae20822daba8435bec8cbb34a187745088378a1c6f15192e0a80f8e48443247e28da48056c2fcc2baf5923952e6a13c39e56afae2a253afce0b4540800b883fa2a83773f8fdf353e3aa8cfa842e5bc266f16bd0337f858569a5ff6346d288c1d09225ecd812b845401895053895f13d779536589c15932fe7e69398e4f3dbf46c831d104644147ef3862c7aabc955d89fa942b42eb3bec2194a5285dc7806a37615e90af92367b073a869a03ab40070cf56c18de8a90d547c58fe501dfd7a3a6828bb37c19601ea95b310c3a723290382cd70ea96719f1495506f6db615a413f6003462f7434c1169af758bd10ddb9d7da9372515a60a6290cf342952afe9e7be50190be0a3570c60acc33c61e01e0b27f732598751fd1961b406bb22918c85bfe481905b185b81be1096cfbeb42e612d6c93194eff39f76af228675cba0f3be4c8a6edba96fb2942cc59d6fdd8d017194ac9df7489c764130be35e86ba76631f5ad93dce56ee8e9c89e35648616cacaa5ee36acb2a464cab5fd8ea5061c50b0fe3064ca05f9c91c6e68c2824787b40ffd5c025940d8beb6fd5efdf4cea2e7ffd7d88cc923b820e719927d1d5b7520c10c6590980962a9a4ee3196e0f23af81e61552f9fa5502492f3b2961925f78bc21b124f010c478b93cf88707f0bd922d83d3d84126225b530c76c3387ec47cfd8ba50f0fa8892e5588ea2317bfd4e206d9badbb1343c5880447083a2ec5c1270fdc6fe910f3707eb8e1d2f6c7c32521ce5eb72149089ee9c5de8c5caffccf3658170040d10d231cc08b6462fd5ec925b2faf96e578f92e48efa1899b7bdbe52ed265a32ed5b4919b2f798d04fd41132e00a46ceea5bb720f9bedcab144e753391616e3afc1bd2eb3819495fcc4d2dc9b5842f21dd711b80a4147ee7b4e12b70938170b93deb4fb5cd068b67c005301081cf90cad42f29a1795f56673b52cfa0e8d4e4f790014be7a9009e874fe2d187e51fc4736e142b831059f813a7323e664a2c0803ae122294f6559ed98b0b75338d12aaf7f5597b10fb7f159959a30cbcecd08c2ee9784e2c184f68559f619c28e460c49f3cb63c4d0f627087bdeb58c889fc800fd05b77dd2dcf50cd65a59d7d83783233e04e0025a347ce273c8e10a62994c8bf9e362e0870dbc32d0430fb21e1710e6c39efdbd3d1b185110e57ab305fc1db0793f252a381b273c7154c541d6c1a38bde072a8b9c58f1dee9afbd08f99534ae32c7c84db144faf80b01a54114bf454c912d200a17c405d989c35e134dc36c29d60890a2aaa36c601a9dcff054195bdad2a05aa81c5f230c1158696919e01da10576fc8d7222520833171a4afd366cc1a0083ef8c3866e2ed1c9215cc54af4790d0d648958b87314211a5041b13593c0f12aa5096830e00681a6f2053dc03d6fdc86ed27534ac9fb6fc889737d104aa293f618a219d5c789b1641f471306af0fb62b417526f3c6dd584a76ccac8116c06883b53e1ba3156de1dbc629cdeabd2e6cb04052f0da1888b29fdb4a20e8cba0a400de4789cc3b063de7a870043c6bbe27cabc56e87ad89c07d3f07c9aa0db3e9f1b18a0b5e1e7c3b18891ba6b44867499466baf9bd1f89ce2e8e98d948ce8911b6cb80530faaee0f1a9cac1829c6866a103a27bb0f6b586424047dbbfb37e57b3b43cc7ba2e1088880f51df04ca440bc79be2825a02e434499ebc4643f6d0c758bd8f7856ac7fa577b5fa12a13ed31cf11fe6c4e0338688cb877748dcb5ca59dbe4447e05c9f5f0dcd1d1e0376dbd61d59bf0f11d4d9cd2e76646610718339a6eebfc0923033319674b582df42151f50dca19b4cf48bbc2cd4150f1338e53b8e552cfe7b71a681f9227af90c5de48f940b55b37ea79a9e9f22547563228117a615a453951544b853e488f65c0198292caeaae4df8f5a2d1f61fb094172bb5facd0875a56df1b333375f1e6e3c77ebaecaa51359f6540ae6a1179cbed494a22b26fc6f2c7523c195868edf5fb3aa8aca1f1b4f81ef0b4d64da94e32545191c2618ccf2654e63d06906eb74163bbd71a707f174254f337468b0fbc9da15a8d5c5751abaf1b7bf67217cfe19d5b2588204b564e85bef4415f41c1ea88da677980599aaaf317156b95184c2b1065d34aadc28aaef9d32e4fbe0f51eb2f0fefb156c316a9469addc6eaefc9f2e453babc556e301ffa98fdff84e07fe773dd78c3c17883cf216b274f92134d21d0e943d0da1584b7a8d484c2bfdff07d07eb13b41c1beef6c256f8f3d93d27e8b72f5de3e1913aff5a85ad60b19ed0dc655f946e22d0aeade72f22dd6548ded847d609684bf8714d870b6545967e8569bc57008438b54db0919c0e1a3bac79723e00ad0b864a4390607010ade342190e56ae6f83fd351b42ff64292d7490d02db92039ef0d11ac72f450ffd55999b7fe9f86e3a98351b02c5de617e547bab107b513d74a986022d34733c3822735594cff29ce60a60117a1466620853bec23a581763f8c5c82b44218176e3ba81f93613feea6a952691d2ed8cd91cfd95badcdb27db80c1479c96f91312671283c450cc6b1fa935d2f85e8ff71009e0675e58f51144617751de57130169da4aaa0d0de1af7108f4effbc897aa195671f7d9ba2aa039fe810a989aef093847bd3c74a8c65a39351bda0f55ea756405f7843bba49eef9b8a406045551079b73e56c2f36dadf124f18b351d3aa7c22d119924c9eefacdaec620abb365fb30d55caec17d4bffff655d8afd6d42b62f7a05ee6b4fe23d4c0da2a87eb9fae24905b39b01b3e95888a7323e2adfbb159cc11feb6c0f1b79b32aa2a56e06286249a8d390200b13ff8fc65e1b48d301c3abf27f8458b8e8339dd131035e16a2a7ec141e41aa0b4372fd1ea75b61b4399691ddc03aefca62c91eda8e4aef8f1f0f32655d976989d7614de526126267afc56d53450bf84c680cd3fc7fa57890f37f039ea68f678ecd7dfe7dbe9339da3decf592df272fcba72412d88ee4882f3c588f214198a1165a010b3691fb8068518193e35f6b1d68b82701ccef5bd71bccbd118099c2fae0c5133eee9a266accb6f88eafcea93a66cd21515a7b1e18f63cd2c03772abc1640d1f041e0ed008e37c0ab8e8559af1f018f9dfee674815cf3a1d41523762e8f375ad5b7e12a2356417f97757403125ab33e64318e8341cd863879f0e539ad72a4b564c049b8eb102ffa2cc85e9b47e56a66b5c0c2ae8519aff21490bc41613313a3b19f9d5cb4707ac4e969d6589da5b77474de383aeeed47593c28eb620ecd107f0b5767de3169e3a19b1ea5b2f74360fa20f5602611fc63f18584593b415544a7c0000323cfdbe17fb6011429be60ede3dc00ba0c28ead516f9f8b2c77268403a8dcc7a5f0fb5d5aa84c81a16daffa0629efddf17b6c2e4f7318fd2dccc4ef35ef9a2c31119792feb14fa3afda65d220dac663650e969b3c8a707d4cdfcbca6c2e92f32fb1f32c035ff41741b5e26fa227c3078514bab072cd2abb75fefbfecd73476e10b2a5d78fe740b3313d7afa1a0c07720876812c106eed1d6392ecb08fce2e87b3bdca766ce41cf927b038042cdbe7b0aadd6c2dde036bb0f88889c01006c457ea070052e9e6ebf744a507f9d04e5a9553184bcc78213845dd9b3148572aff50b3317135fd4485d8c7eddd0b2966e37a4275f00da34b88683f1ff0c495da739cd333da53e0e4717aa68522c9bdf6bbddfcbdcbe88b63e421580559037754c8dfbc3d7fc84dfb628bb49d54c062ae628d1f00cb0c6ca70e4f1acb73cf25ad6e46bdd5ac4207da425d207cf16f2609769c8619a60e4b126f8e3b2a7f02bd6007bb4a43f1fa71261a80003bda2b64c2a4558b29b00a171f343a2dcbf315f00fcfe3b4886c1a73bcb719d99f2e144c60e834735e6d1e06b7e183c468790984f44725793a85054a5579043365d7a04798a0f0b12cdd0daebe66e26db2f17e8cfc71caa9312c9c4cb9045e610fc2eb20cf632d5f0513d5479d2092594162195da842f65b66961e268d18171a1da274fd776c32272f517830b6e04e31a0662ddfecf66017d103455cf20bea8fb66f95cfe5f1f67cf89b5b99d890fcc76824c31b96130dda478b4dc0d33023e7d512430209d8571792495d3e847c2d3711a0a3e1c845be7b5281b32ef66345c600cb17c99858d5f1c6f1ecebccd32efb2eb5f08b586ccbbeb535fb1c9e3023031fde82d6c9e802cce15c09c134ebd9511d9761b88c59c53491478fbf81d3e0914c158f2eb60e6482aef9df095f4ef721121c6934016dc85c7e1daad30d8f97dbb70df947ee2ddb01631cab97076557d24b29debae03f372f52047bd3bdb5d8f371ab721ebc4a4f982ef21efff3a818606f8c7352a020b23ea4ef3964bb5d558460069480757d06109cff3554b2448469c5a02693b2885c981936f41df4c9a5a1b15fa4b0712688b122ef7f4c8ebbba731b95e80798ff803ba4e707b2624fc14b28da53df9952782183b18c544829361850c46b5ddcd4974b2485105ca381f3dbc8e3d6aa6f3fb0b23db07c1152061af8bf3aa25ebc3ddd061d9311538d4dc01f4ead8d89ca8308067906f9bee197910d3f954a8dc8a0c41bbd6b07ad819f7cce4b8415db1ff0ade9764f15db1250ee5031d34848da1f3bc6d533b9275a0b50f7687f5c0b68588b0661f87c53f535d7bcc4b924fe4d4e490f6fb43fb8add23f85350157a73efed3e39c4465fb56cd24d5b42d63d8f5c5928000fe9834b94319b2decd5c6258b2bc342a81f51489c0e91ae46016bcdbb2b257ee635499b63bd48e0c1bdb2465a97c7bd37621c595536ee64308316741945f90a55c4bd8f3e518ab6aca572341c3462a0c59462e87e903999d0754b6618473011441e343128736162daefeebe48533891d314770aed5bbd38d4404b1163890e7229f52fd26cc65186bb5bb8c2e64929122308b57e400b23ed7ad142dcd2a005454ee5e3e9b82fa0dac74a9c83f9f948c49e28e47e6d1ac5e8dff1f036db8edeb9ddca7a240873b3073f4cc26b83f61deb29c90d052f123393e62621630380c59799742d97e2c5c34c29b41d904223b957925c98add7e903191fa3c6f88b377e67ddd7affd83af5cc20ebc7496e8d3f0150c33c885296e988e1a072bcd047fb186c9de9a2dbc23e35b9b7bbeaf9a32b04203e9aaa96f85b4ffa671b7a705a176c2348d565c4e8531c60071abcce50056e76de162028ea04640f4565fe79c648bb119afc2f4452132b38ad282ef86323de18c4787fba594e9429e2b94307cb42d3df0c235697a5e9067890950793ce33250ca577dc61abfd02fd99e64dd95e1ab3220e95fdc00a33ec587c31d92e8f4d0c34b6ebff204c08840898867953aca83d2e61250bb96baced01a1990fd2e7bbcc6a78c42ff6b777fa3a67398f00f7b4b50f0635ed9799d0b7e71a85ac8fbfbff8f0e853a7ac74d92156398be562cc72e759897c8f57f7f12ea7e1e515798dd384a6f58317db4d1f7242dd672b901e07edf62da4a260f814514211e602285709d1411e3dd5941216816ad63136b4ab23310f47f07d22d513561700e6c043f063d1249864a097c87a59454d6ee2e106f6d03510f86379e5db29b0b77d57a7e1833422aee5b38d26044e929dc7a6a4e5495d9c7b4a4b5a4a93b76c629f5025ead632fefc4440fc010e1cf54cc9deebc56c37403421d2ab9b6e3ed1023c74dd3138d6548729ce61293a020031083b781bdbf57f23b621a00c445e89a32afc956cd4561138965f24f60441c6fe79dffac2da82c229934fce668435027fb88b7a23bbde830ca6c3f79b4ae88acd87dd7c399d9c8fe09f1b89bedf385a4da2d4af0e4a930a75d8d2a6172815f7a8b09c2ba52620cc01a1162a2ff7f655a702a14fe0e4f72737c04e8b4f9ce59830c475abaa18e2707609bc4dddbfc9a311e542a078c651b970172aa7e240932490292d8d03cb9fe38d469169c38206bb4388b508a711755ef7547292d66d92b83a91d5f79bcf048653c21c354a745088afaf10fc92b6357661de1063655aa94e004b4a43a18dc1380c718747b842460c204b0775f4165bc6a82bdf75680c7e1792ed08eb2a08d76b16c574d997b0ba9e06cfd0c0615845ddffe38bf23989b8af2690bee3bb33df50a7d5596db69b242837aa0e8050ea8db58a5a331222828a505471d35fd6bb61c2522285b317b9b8a4801344e626009d2d46b2f9fcaed3ab9478d84966d06b78014025f8fe3485f920a750d6ae5863b4f046e608926beaf32a88a2c7d884ef7b4afb99265e328007248a1d4ba2486f402098032389aadc982542b70adb7c490d20d32a23e8a0c44981ba04502f32881aaffaac6446c84e41c023f7f292aaf2021ef04064f760df4ccae1a0ba3007da91890c38aa5f042539c8f9d31fa806817e9831bb4baa6cc9de0cf7c65c7845fbaa89e53a4cc95ca55590fe07fff9b126634cd428d92e1c281ba0dede788e29cb0f4aadd6d3e6a3bd65289b292bf48e9f827403258e204a1ee1bbb2dc33696d18c22584b820d6eaf0e6a5d1cff97757c4825e38329cb6004e2c3ee5850d1c3c7b80b1fee5ac60d358e1be8f63314e0c3953fce1bf4df83c783121a40aa78695f8490246583fd811eb4e09b6c6a3bc5877e91637bd03ebf42cea8d1304a13667ea6269c94f4c64817ac17f9cc94887ec8bcecc43234ddc19309d556478ea690391a70e01e146c74b6442177d1a82a4fc32d77b35684b505b5733bbd67a39213053fa0e442253a811657cc6853c86fcc2a5bb8457744a14cbc640b8b6b58d602188d1b0acf89af82b86c1ea0fffe793c43b73875065ab8545a8b4828c0ecf42abc03e4a38ddfe76eda26e02692db3d57d76b24c23331942ab71265a4e314874605c5ffd1661ab1b39bc868bce7de59b23c9bea1b28a7bdebce431384c06d8085e0bb8b3bcd5c654f29ead878bd48f1e1e995bbcf2a245c82db6b59386ffc63c46fffe75ec079a59685316f6b18a1d2e2dd365b7d43cd7ee5bc8d3370a96ee5e53105c82f960c92670a2ce5f653472ce8d6fc01db7800ab320a854071f25ea2b5648c2d5b11f5969dd60d170a55d0dba1851f384e5e91c73cf09a9fae03cd4be3df1b6688e428c19fbcaa177d0ce0c1805a8753290833e6a826c71fd47cfefebae398e81768d9a4202f272d25a08284cda2e1a33b13c1ea05aa550ed929cd03f5624c65699785b462c641b25ab32a5d8cb07e6c1a25ba181f0be4d8d85233c7c6feb8b9352edba58b01ddc8fa667c319187225c410e52ef4be0ed5c8a03a8159c6ebf3e42e650343f04ffabb33865a126293197f8b0f93b435c8774e2b536aa4eaf06ab1ce322d5ab96c8ce1547d4a0075d36afa81616553cdc860275be46af824ddaa7505c4e6bf202d112771be78cfc6e52e155a75529dcb86cc003a87e41f16fe5962a9c68b7872cf8cfb4351fe192d447686db08c3dafe0b761b7d012e9a33fadc7b1ce7b4efce963165c17feb0832dd7f045dc925c5748a8383476c261e098a64b2e961700039b54b1cb93e75040e2dd5893134d4151357fba4a23af12e565f1247b30dc5eee09a1d6984df2e0220c9df5a5e4009128a767cace6a710938e43ee92cac9cd0c3465d4148c8090baef45123e80c5cec82e73fe8fe54fcb715282869394f663f6e750072693375c50c1ecea089c18952deadc081cb0c873cd0ab125a54867e0c72c4dc2164c025993b0368aab18a7f32da7f433648aa0bff81180cb3f0f9594f60e30f0417920c755ee6d931b1fcb2ca626a2f8abb1d2a4685cb6bd5c5e8f0c3ce46a5f1d6490fe096419b0afd4909329a178c802c226c9778d838322ce71010ce8b5cf1dd8e83c94d00d455ececc86724bc43ccf4e718dcb011309b9ad4903ce1a670bfa771766c8be118ea6bb66d42eb10c17dafb7a0b6011ad36ac0d3ce8e6fb58bf8cf01ad32df6bdcbfb220703c4ebd4c8be9a1334991a0d3dc2c95e4cf4c6eb851d4e126029c97f84186f004c5d03c96a3278c989d9dfa8231ff6f51b5cc327fc06db446820e8c6a62ee90cceb3982e1d9a390a088213a436937cdef0c27ab84ce24f8a6d9a18056ec313cd4eb2f28bed88e3c2aed0799fb5c0f7afd3ca86032a984ac314271d236ba87ebe75a95357a70114b86e14fffd4ab0db510c237aa53cb7ebade43e5701f82f56fa0197801a75ec910c94b5569b2f8000c9a01b4dd640cbb724a714b22d4f471950af5d10de0f7f2f1cbe9fc34e57df534e73e5f62975fdc83a5d72144665aedd155104746b6e0c3e72ce1308cdfc43cf862755825e58160668693a760f32da2abfcc2ac41ae501dbc988b6a418f717ecd56e3d0cc923d8f80cd9579683a0954ec0c3255dc7150216e7aa996d5d53bcdd67d8cf0f65d531bd141f3900fd2e84ff9b9dddca638d19afb4378d9338b3a7ea74ce646b1c7a8f782a4ba3cad17738af03dae6cc4864b8e3bb22936b33874db53efb5d690382ea89d5652ff856063294f10c1db65cffcd8287542d2b8176d39ba21f6990530c772eb060b15183c1be1801d6869bcec06af0e1d11c8621d628eb184287802ae10dd03833d76fbf849389c4893a06365f643d0290b244e1920afa97c3fe589c383065725c1be0e160a22dbe2a0d10b4896ad75f70f01a9f5244212d56a182ffc5d8a1a281c4e99493b98d0fdd79fa517c50a84a183fb7901df07341947353e141fc0ea528a2b24e2b6945d5f37ba8755fd2ca60c9d087c6b56eaf07742053a307e2ee45e3f86e9dc2433238f59a315dd11f402f9bdfd172169f9c899757c588d3c0826c9fd4cf94097c72288051e350bb12bc12c0a651d39bbcd2686a50ae3c8325b3e80a56a2da2a8de7cf09479d5aa79242d5138b3cd336ca1b483c9034fb023a99627b121ff009a9c60a5e569563ec2851f307dec7d5057dbd9606880b4fc4156ccf9eed6fc3f2ac3ce3345794f2e0754ad4a768aec24fc9f2be7b551fb1469fc88f7a800b089f8bc39557b79d8cb3353d196e44af802c2ba5c6ba0871dbaca2e50e6a129231d670e220390c8393a3961cb0581d56a46047a47598d12e90cba641be18a0507a641102ff0dd7c11118f7a90e296cd8808148d67d089d6869b1ed929026df4658eaf2d1b3314314659035c1214898c5b801c135f8eb120b019621541771a74992ea952c127815cdbe66b67827998725ac98b0e2836392a94a2d60a0e1910f2909e9f4348491fce844c7366d8d59c60f292d1e1eea2008592f62035041baf3c620128393488062d517af1a604ce8cabccf1b2a65ba57b58bb5701caf618121c3cbee4e3c08c12e05d01ba3439151f8169ae071e3cbc0d417f656fbf8e43ecc194ac4e925e9a0a23b55b10169e5302aa2b903b4ee1715ccf4ad0371f7928d5ead4684a2367ce200f9b6f77f6707a3409473770d06df414fc4f62af82a63611c95f303ec50a9d2de3681616a1930cf4c69c74a983abe34307386302b8ead3bdba37cb93c0627cd3656e37097a41530a4460edc4b3dbab8c57f50ba246e289758795f39329e7ac137b66365915adb90ae2ef22cb898e6cdfdc08fd7a55656b608be691057c600ffe0ca6cdd1f01e7528c1af89233f44d55bae0de7a2ae1d95adedcd8bb43707e5f0d07207be0de8ed5e69ece70cc0901f28d56c8859b05586536ccdacd2bee279f89c0930b9f62ce0d9dcfc62736a3034b528544a6413a1847af7ff826a192e8af96fb6f2e2c29ce3915836f1c343550a784b461a4a6f991200a0a40f4b822a2e798e71b9cfd6984786a8c3f911441f61e50e36343554a40de1d9fa9bff7bb192de11602ac6d03297718d7359037902be28d202a00e12a2fcfb4c46bf65f1958e78544a525c4cea4dce73c6a5cf9d0d963d4a58798e49a470c428eb4ae5a9fbcdd9e43cc9c0576e47ab370ab18d6267e30710d5a1c0a59ebc93138d5d925d99c9ec8af0748a212492fe2bffa86edb4eaef41deeee0962f0c4a70efc7766e7da3e9d942155e93bb104767045bb32a5188f51cd03699e1839e7fdf3f42c91879e02d9c11e411a211cf2340e840e5e3d621b924d51ffdc6aa9fd55be598e9cd1c62410f4ecd59004149e111eea90d0ec28887e417083d0455cf27991fd7bed08178ca97137fe1609bf0e21f4dec6a5a648444324a5aca042393e9c994160a7c88837c45eaa210d5eb8765687ac1d597a0a2a2f5230c80e603941b26543f5443ed6cbfa7c3df740cf657caad775ef414ce0de36eeee84dbc01b78f6e8d499afd0e88a8d3fd2850585672d6708b0215927ef65e7f12a8dc5dfa3068e07314f835e2d73f5e8b74149d4386add9fb88325b7da06b2eec40c864ad0ee7970b82bba920c1c283139136ca6fc54efdc7f7a90283dab9a75e0d5117197bf455f29084c9cc9dc3c333ff2b65c106148f710277bf4d5502da62df2845080b3ee00d8635a7fe1865d302973a901cddadf425903bba0bc1fa4cdd322ecf1a731916972784b805b593d1a87887c8e36efa786359e7f924a855aa914bcfc02d192e0e676d72695411fbca75f69077c77f4425566f2feb8e36b901c3674a63b44948915249310dea2cbddb05b9e3fa0f8d88f339379cd0b5527dadd961b969c74816df9d73603ce4fcda16f05579b93467a74231caf69e9b5cefcda184e14065a2a98cb1f69c6389a1c7d3f0743c2601100f8abb0c7b553dcebb7d319ff551853698178231d884593900f6b101d0417e8f8603a69145b2645f30bec471ebaf7f905fdee842c64bd0e16a140bc7729635d6e484c0408a93259043b6e6829bb31119e15103783aa1388c45dcf250ff65241aeb63aaa50567ca78b76ea15434290020c04127776fc2349a84f5338fdaf0cab3d68d61bd2acc3b2310f9160c4d21e265d288cef249d6d8840724e553ce8b1aa62fd379bd0c23930715743706b262828319ae3c985470c82b7c559244377c8f40a1e27238a28e1cea3932d6b808997f8aa4948181e66fa86d81f0b987881f3394c21d48cb97248a2398d076a037f0108dcbcc7eb009e27ed3ddc31b96eeda39e78bad00ddba14340bd5b35cbf74a8fb8c66e33fc8f6e618c3901cc339c7e702ed29ad09b907e0d30161489ff7cf098651b6e17a1e614ca17252e20af5486b8c2434e0afa3c522a618d1a54afcc4c31964abc6b91a012510556bf2c03d21080ba282dc20515cc347753c1e1b9d5087fd740f144e5aa947fd5d41eb2985a8a8f94b471fd1142fc9e4bf874479233067b392ff09b30899f56d188a8617999d9f0ee2b2065fa1a8210d4fa894cdddd66a450a42106b82c1ee8f8ae016af9852ff20272f9fbb232fe6387dd7b5fe82a21a4549ee74666e622d0a6eecf1c49af33186043a25cfa08d3525309ac5ee048d66c01a16609db9d95c7b19b18d041e135252a8ac7ce85888e6ec2897a62d3544d1205b6e1f1e6698f2d4a723c5702b17fef98b5c4c80278f105839191610c3bf80e24148b1126a6a408c0b49dac825879f6ae4873795e21a7e351f396797f344b471f22494c0e3ed874540f503be20cd09d7ef492437c2704c158ea97e4ebde11c3f9433d632d62f52ae08e3258d238735139f0bb59d9eb68075be3c55dc1e8fbabbd6ed76462a62807f859e99d22a897bcc591a777f2ff1f230fa37621833d7060fdc8814cd978706e596429de8bf2db5b4611fa7419a235b317bef476ded57b5bc82e62e5802f47c771919eae6600f71cb246ab600b19a6ee3c1a01d4a1da3da5ff77aac9c734082fa2cf64b6f9bb6071863f9991305d6f61e9811c48f8692d0388162412aae7dd28df2b0267e8e0c87ad3cc773e4bd7df9e0e0eb87c1611cc0949ddac4271553485c53163771037b05d70c2bafe7d6e60d884cd22d064a97e601b86c15abdd4af8915db9f1ee06ebd4ffb2ad2c5d8352af6b074133b30e26b785da487500d2965630b813e33b8324430bbd6bf05831bf871214dece90824568259ca48602e0fc170f5faa6540e1a24fa3f0f31a98efaf8efee4da3dc23ecc4476c2e387174bafc500924618989c40ca942666ebd95e0154902add4f3081236f105b786a1e635ea5b868cc722da0af7c09269f927f523bd7db717e8a51b36f63110ffc9870f78f9cad9d48187f77122f9a02e13ffcd20afe1e837183ab4cd21607bbd4822131101ef1e67ef3c269080d84141cb620b48510f469f8f666b4f7f3b4ad148830930654cb4cd25a440980804b1622210bcdba57c00d19c46994bddd5a6ba62b81a43fb6041908a9cb5e5d93b3732b50e0b82d177dad705418b103283999956a579a79b5d7542a37a7010ce4955c78067ac4ab47c812837d134c81f4e9734084d6317d1246d4bb034d0aa791fd60c2092f942c36cd402570dc2dc0cf4bf8f862ca53f5643dfffed6c3a309b8c04f5ed8c1543a8c4f7ed12620f949c49367a72302cfd346a19fe826fac9f6abc4394481fbe545db6b2edc6d155dfeab96fd4e590abeb7dd0fd5a232098cc87c2f112fa8af917037109ddb15b374a686320a8394ea3b241c3e5768a8f8792180819a616ffad318d912d1d029cb4564a8b2f77229f74f6992d1c38074072093051286904c8f33606ed52f4a075e1998d0794436c2c1873d50dbcc823c2e1c706d8086d9cabd1670739c3f7ccf9d913f0e39bf098623a63955db4be7a8b11e946d43a8ddf8e9fe4c8eb242b2a8457a33d809a71b701f76913d57cd5388738b602b15944967c9bd0cb0c65817b08da1d406eb93d96196afa2f252533416d2fcc33842c159e0a67438bd85f85a2ebbba9116e071d688ce3826f0324f81102f3eeaaf84cbd840d3340a045e911b5ed600980f654509c378a018e13ae08e0e4464ad940a860b08c3864b89abee1e63b495fb6fb0a016de1290819efea9d6316a5462962099ee97872cbd017f1947be5430bb41a59870df0040e43cb675f4190b247044e55849a654e26676ed6f8c0314be32382af9c20f7bca216cb9aa40684a9fc9c0352fda8d8bdee59e1995deed4f562ea877e7b397d3d8739f077a40bafe48d3c7bc9db9162489822896cf98e0a6509c19d29825c3f328c05cbd038026c94fde577675362ca740165293c9a128efd85a58c9653fb039e949cd189d559825dd1225d28c0a0dd390989dc4da617d24a9fd8c72dbae9bda7a74516186c37282b201a27c636e99c5cf2074989e5bb60315ea3efcdc12782c0f2c36a65567d25ffcbebb37bdf8de5344b9f17aba7bc8095e4dfbddfd81e3ece33dc0a00550d675c58a9f2852678cd90f90d4e4a0986e5a42fdb0b066cc847aa9bc20440b4802437b2848a45b4ad8a80fe6c7765add90296bdc4787aa3736e7c91907a76610c439612a31a8c388489c38c4c45315d543a0d07ecc2677faf382b3c1f7eab7bb4b77ca902fd8140260ee4f9de234a53ab96d1dbc295f49e172a3be1870e2149e55e749b4105f549a4adf27cc43120f2d7bfc943a3055c27ea25c177cdc067b71a314399ff38b44e3ceae7dfbd7e9e3024a5df4799559c01d799115e8a3241a14dc0a1cc827713746cb8f30c3c7bc0109f1870bc9825660bcb14c069fc3c861e74bb99b91c1dd4897ca153ad612eac9790dadc72beaa09ea1795a7858147c77003f07a7fc133f769dc5e675fddd304947fa99ffb323533ffcc0cc5a342fada9f9793edb8cfd170ca466adcda4880a169716ef937a3126b9e086f46dbf6e4a871b288496bd1c7dc2be5d203e2ae007b925c5eb9125d01c19864ccc92fe0312ba1e5070fcc5f831d828a5b14819a3c9650ad75dc9b819961fee8e748c70233c98b7410bb2e354b1cd0d26e0cf8fd2ce94f123026188fe4e1444fd9c684a831244a12b88575995e3dd51b083a6de6c3c8d4b4fbd54bc5e41029206945562f532511154b5aa00fcd4d19f46d3069b8ef2f5cab8dac61529263e042c12c90ee027ff9dc14f13481516e0ab674cf4157ef48369d3ec96bb7af3a4eb2c0efd0a9888eebe64f7575d0baa6119bbbb4edd3ae690877abeae2cbccfe567a4f690e63d0c0d4c1f89964ea997ffcff4bbbf46039ba180e7569c6cd7e552a44b519e510ac3b90e9a68496f521e1f75998e6c7c917487b91e59ada1cc69c51afa74efaf117fd2c1cd54763cecb1583371f3020efc219ca9f3a90452ac5ae18451d13a3289e5f499a95cd57eb0b1706de90363597342a142dc749f6d08b41091c5afad684cbcaa74aa75dcd46a0724901c823c375c9e7271647352dd7837618ed5b7eb6453d12ad36272c8a3b6e94fcc30abf5ddfc3a4d1d43cf7493c3f1e6d244a955038c0e63f4eef1629fc603b3e52d250d44828448096857707aa091aee090e7f834da7ef192ff081ec1a2d1a98acd5bf4edc76346191910af6f284941836d7e4c3874b4eb59b3c31fecae346b4913a74e56387b4c530d35c7d27968599e5fe0b719667c4b5efc4b430636e7c88d9aa8cb8f7518cd667625c540574fe007b170273dffc9802df6c7f465340d9a8b591e3b6f94ddfdee5575516c6093b77fd60fa2d8841dd752ca96ba739420c024f2768a86ed4562bc564a494e7b3af80893698b339430b12aceb6badb59cb7e858338d2344a17e629c9f51ebeef128f65c444f2bf8f486ef4510a3fe7ac2e1677284dd15709b800ec12e42072204fea962dabd0e9a3086ea75590464b527e3daaf1fd46a7d1658fd3b8d272506ddbb170e814ec72c2a5b0c8647f31ef3baa905f3bad00efd8daa5ec11a3fbc3648a959a4fb4598e634b82dbad860670b52962364dfcac3efccec74a2c49255240d8e9ea78c6cef1845e6e0c9e36fbbc28027c30e1c9d385d131773e6fcccf226ec71fbd15875976f5d001f00d81f0368ac902bae6b27cfb7f0f5843e3b43d819006e046849ae483ce98356f48b74202e9c57c3010a84ec42f48e7e80fa11ecefd3cd78d47d8eb8405fb9b51faf08500a332f13ef162f35d7f396229128362875203aed930d32223a6dec96e546de67a4bc63a0643a55ee2a5fe44308a08c306024a14073c2ee596bb4326784e30b72d71c57037a006f7e90312501ae7b90797fb30be7a4777ec761a4daa075381c1dec1c738c21a3c90fb062b5261b034ab255b670038d51af80e7017a7d233d803d38951f665455f97155348af08aaff72cd3f728036a2d070b9f05cda27402439736d8c3f617af24cc79a8beb03b34ef03b0b8c9b492bb99f6035d27c94ea02ed57603fcc460077562ff6b8b61e07a31b6332540afe8c570fdf532fe4ccdbfbc6fe90a65d81db8856811ede2d5102bc8351d83661110a277bd861ac9b14426f896113816e36586f138bfbda127d5e1150cc6da76217bbf5949c3131c504f8d9591b7ecaf0f2ea408d53bd4eb0d51abd958e35b5edcd5f397e1accb1a0f47fc4c71d3119bfacd4bb9c680fd05453323fae76a9ebf9e6a12de56bcaa3505df206e5185e188d1294118eb817f1e59d1e044d9a5207e8d11c3b69195fb18e8fbf497fd36654de34cbf37baa73d359887ee90f6eccd1bb08c0ec8ee2325d6e398a3d76102ecaaeba0e210556e13679dc495b8897bad1592ba14831ea93c740f3a04877258a5821fb1fc7bf4a6030311573c1d455944c2a8641570bb2cac671823638838ceeb3219ce164a5f2d7136e979d3052730e0e4bc5ab04f7ca2863222e946a44ce4e1280a13c4f836239757979add166e9b79ac212c8fb1efa05ce5d517bc70d13c76061df7828d1a814846adf91b34ef675760e42e6b5d3b308f61b3a6028c4289085ad48fcc3c6ac86f5a9d5862ce45f39c7f0d66e44e5e687ceb8765ed5f62b8beaab085db170f1300396d1b0685660e2074ac3c71258207f4f1cc70d4e4494eca80af7e354577e071c97c92edc081d34eda9c70103d30f423a072498b6991d80a5828602268d2ce7d4ae6d8dcb72e189d0b499f6b41bbdde9c2b49ac74098961b591cd746ff04502ebe5da875a2dfb15140140f2a78968c77bb78543ebaf6e1c878e13ab928f2a007809886a301eeb646b091b797a38c893bbf67b786cbef2df8a508fa6214fb980d598bd34230d21a83b6d81ea36355b8362e4889cd74d34a39a58836477281fa1501db65d369818a4fd6dadd4b267edb181a94e3b069ee0cedff91eefc66f8bec5fd4973e498b377d09be7776cadca3d3c50ff52374081dd5f9d1e64e043afab768c83be42363112d7629193f161341b02894b0b4ae78d5f347567f623e5e4103c205b1ed9a5540c7237e5d0246034f6c66f6c2f854ee659972de8adda1247961b8c38a3aabd5dd2aacd4b9b5e8cf4c5ef68d48b7fb44dfc7c870a4483d330aedaeae4e9ad954855abcca535234a6246f1e33926e020841bf74d7ac9f0436d5e9be6f1def9247784dd0da3c8bb1b90a2e2866efaf1d137c4514b6df38631b6e590ba61607039d2dc306a2e8759a0e29b5d5ab70f6ce19bf99f5883268d35644c1b0672ffb0b5e80a5df845053405478e72b9e2ca76f009ec393b38b2ba7b2a8a86bfda645e3eeb73fbc32c96fb46aaadf4fc8bb41d39522a28ca62029dda8f89b5469bdf033c6a340fb22ea1e9b70b6dc6ea0b236554d848f4a80265389e84dda8665cb089b07e61b8566e0c5e881a961951ed6c0c69238798cd653a8258fbef3a68f982fd4a5682a4c7a9990471ca9853476e567f21c45cdd3e995262923c8255f592505e55f746061fa887562b32a85d0cda7a574d561a7a502feddd181690546f48a4f84a06a7240d51760c3147d2f9b3c0a422e925170375c96e5ef463f8ec000c0a84f8a973849fc9b569a4a95a9a2adb056776f299dcab3f66fe4834243854a01244b2b57f7f7f9efa9d9d630357b74f8a122bad0a5c1bdc04001eafc3f26712a897de9e2ae07d4a470ca9179e5f75363f3d1bbc3afb5104f9e23a51f2f9430b77d3a2a1412917c20bec4a5bb601900e70545f5982ae738e48f84acb4aef8996acf7d5e864b828422e5f9e5a29801b54e963e1cf77fa91c19f8c840431fc2a60410156a7ceea38dadaf170c1996c36f83cf110559c80e743a5886c6992be4d449cb8df2e21643a4eb6d09cc35854a748e12cb18af4f9e3d648ecaa6a4f58b3ea1b21fcd7ad4d226f956b21b8547b87fd784cdcd64c9024ad07a03b9aaa1ef3a5d8566746bfa90cdeb5d83a64cb7dd76777de17bc5b0b7644aa8013ef09db4d39caa7d0a40b6b411a6c5dc8264ac895caf17c9ba691562df51b9cc3c864c930555b8b35333f57e3433efc8d9def1cb13ae05814f6d0097709e95c0d28eaa4f7aa7e526d105907adc487bd7d79d66135b6a148e2eb15706edc40ca2f540dea4372a686752c782adb3fce3aafc6f628428eb98e907cdea1c2b961716821ea0be139aed4e9efd2077c2d059e4b043d0d5a3058196d3ae93d7276bd6fb2b7eddfe3423921a488f25eafafc670814679f57b5c7ef4ccb1c82a5780d1eaf345c98bc302e876b85f0fce35514f73365199a5c0a6886f1689ffc4b317aa7ea31183defefba9898c9a90bdb7dc3b470d230d0f0d79e52f7854e18257607c719657ae02b3b410bf91076259103e13c68e6046c4a3b04d7e2d3cafc54b782cddf4ab74f0a3e91e36956edaa1741c132ee192e963e91813a58b2929e9f0bd743125453e2217919e097f953e4f6f712f28270c44cd18cbc57c3eeb07a4c8493c2abc4db7f0dabbc974e322e58e29c788f44c885dfc04fe74c2e3f72dfc422c3ca9623db2e9b4b351fad8237ba7914a68c4d8237bc77c7ae6f411297ddf9d9ff779d5ab2ad710235a258188a45c3e9e0b3e11853125cfde4b1f994c2693e9270c3d167ca69f4617f3c188f48c095f5936996eca263ce6d413ea23e683fae960cddbe4729aeb99d137d3c588604774497ca78f358f5a35fa098fbe8ba7cb3cf6a8f984f9f40c0a8ba3cb8cfdb4ea88d14f581c61cc88096347bc137c3fe16742fdb4ea4adda6533e204544eca30329825a5179621c5dc41813a37b31a018a4300684f9f88c7e7d1c61cc48ab8e748ceb5d0dbef0e0f56e06dfc14b49e31a3257d7576a3800542c5e2e65cab1273d03f3ebd8100645ce982a28d26db98a5f4194c60ea5f018b6f852e235262e229850cf7c280d081f76d359be5d4428cd15346644288d6c65df456434ce0cf3ed5e432e00e0b1f3ca6b1892af6f1783b9d893a0945f181085b99e92f254d00b162f173c662bf0f8613c8678fcf178157854b50ccdaec6e9238c41912f4e170917271737c85b2e9e05e1b3164ac6c41762245c60f018ed6a984a25ee2c77c4a0c89818b21188dfa9555789bb85f2059d3020a0930a065dfc1a72714f77c8679fb4ea7a774aa52e1035afdc1113838572325929825c4588a6cb3c7a783a9d4ede4bd8e9e4b1e0c3eea55c0c283c5d761eb650ece85ea67b41f930a052ca4da1a7e3f9946e4ee79292eb3472f9747aed19ef273caa7cc3542e067400d2a9b6ea74ba51c2e3b7c9cf74d9d530e1b1f4928f1e397ced6c989e72d981386b13363de58ea77f0fefd8239f4e57995f49a5543aad5c0ce8d67c4169d97dde093e6b828901c91935632abf8e39a102246748255e4a948e716548bed1bd14d3e9a39b46364e1f7d643addbb5246a75d8def36464ff9b6990edeed14fe024d3704b188033bf81bd8c1108f27f09ee98e0eded129e5d7af11bea2a4b4b5a76b28e8f49d8e019d7e9d4e271b866f2c5d042f33a644e522883120993126b0177ca6931702f9a5a8dc9093e0e964329d0e865776e028fce8230fee74c1ebade0f37e3acee9a6a10b4acf80bf6e026fcdd710a59140571413b87223c0e5312787f744f0a9606bbd9e2d873b992e0f2e8f3b47e4d385c826a17c7ae98ea524f2e905c8e1c30e1b5af2414b3f8d3e7a492ec9a7db34964b5c3ee13127879807a71dd12acd0709597892af218ca767ae2c28c9d72545be4a431f901eca259398c3c54504c8968b8b3a5efcfa1585d2b8f875226c78cc89b001ff2822f260c35dfcc686bbb0e1277c23f3175827a430d7656c5a65089f6cad1e80d3635cd65f5c1b0ee3cadcc52d72c2abbbc092c25c3f0500ab28ccf598ab53e4c6c5592f5ed8f0173fe11b1897c13a32877117d7297213c386dfb8b80d58a7c8a946890cd6a9c981c25c8ff118a0239460090da4e0e151916a7640d0833314b1852444e16302253157b6625cd97a71650b0667c3952d992b5b3157b658456e5e14117970f1d56f5c7c85758a9cae23298c8b13be71f100609d1e28cc751758080a73fd053ec22799b890f4ba644b3ce119a455d7678f8c92af5b2a7c266c4bd842b9ae35f1615778fac7c3c393b7c99d7006740db5ea3a99de5d0df05b8ff1cba7d3a974c2804e1863025392a229f9c29b3e624077e50d5ed457ae29a7e613eae1e9366dfa573a7843d4c11bde146e60a984c7d34da711c43935976efaca377b5a092fbbd3290cbf4dee74736a0ebf72a3f4d32f4ee927f0b32b3dbca86fa53b3ff0dbe44aa8cb0e0451cf50df2c17ded365872a957ec29892565da88b01b5eabacc268c31d1aaeb326b42f854f015a555d753f005a5559716840ffb780dc5e01b69940bfc758c09d3af9146c9d7c12b6f35dd8c74bfd3f56eea2e2a17ac56cdd9402bcd848f5eede3a4890cf54f14204a53738d27ca252f3994af4bcaa04b2ab994f4300912d43c4a84886052fa64526240a10f8b2e8015ea4db6f3dbdcea753dcbb08761bd3c865dd731ecbade59ed96ddd5c7e6e522b79452f270f15dd3bac0ca9b7c7dacb7b45a2b2d9694ca5ab56aadb594878b5ced47cfb049178edbe6ecea6f5a359f43aba694317a68d5b497bdaecbce3967ff0706ecc0320ad383c2cc1d0c10ca3f4855bf470fd767288772fbe092dd871f2e730f3df8d08d7df881013b6837e743d603a5e1b8adb50e6cd725ba7645178776ccc6f5f9ced91d3f0d6797c86e5977b3631f85d02ece95add2384cbb76ec56f9427b87551706544c31c51453b446e7be71973c4097653be376806e47d6b2d7ee001d466284a3b377edb2353c6e3887e67b5996e14e846dcc5f9fd8c5317f6533e3985488e6dae6404a4a290ce54253da9476775fa7d79ddd0e9452fa24cbbe2f0c7f950d85e981c380ac4b502133ccc0858a49cf484aa40039b06a6ec8e1c30e4a9f64facb56223d43477a24096a24d391fa501f7a04933e506d9a84210b501edad333630f691a90167202900f506e39061e99c4093f3d23a467681247906c9c467b2805b9df52f40c69245d9a501e173d23f30d9a28e3e91920b58891f2586c066137d8a4cb68bb4937e99926168965225b7ba45525f8ecbc9954cdebe43e49a474280aa5f17a9cf4939e815204a53423ed11416ba440a811d99ed6beb5972e16e3d8208a834dba8c29414cf832267c720e3979d2aad9640ab5ca4667ad63f255e9159950e40b3b64a1d8285e12a6db211ba585ba0911b6a10a740449901227643edcdd99c02e04bb0a077404099320254e541f233f423dc3c27265a64134a8a5eb3a4b975026357b82cbad443a067dbd2def6c1339e3a7b75190346a12339882a47179a978fc21b3b852c28cfe725dee36b7eed66e1bd43d361495d4e920caf6eb6ea0def216a23d2d2473ad7568db86288ded01532bb3ce8b239a13bf66a22ab2f7768a7e6d9679d8d0f52e7a66330cdbb0ed470ef5c1995e0bd19e9a7dc366ca472a04e33e8a5eebf6ec6d399ce37dbe7e1461f05ba9439b0edee7ac77cc7ae88a307b478c33d1b36f9794a667aef8f6910ac9d951d784533f5fea76e06c96adc098f4e1ac374fe4799ee78926aea73d797bcaeddf4bba0d45a1b6214ad3e2f465287fa5f6509a16d8feb0c0211ec3172c52154cebc8da3ae6d8fa2dcb2cb618273bf7991ac3d2b7e66c10a5a93fdf883b5645e2ed0fa5b19c0a3c7ea5db39393d3614b945f6d66ea5d31088fa2dd4d5e8cc5e5996fdb2f3b88761377377963bb3943435e82dd4bde5ca7c5121225157c3c79458d4611efb8d79ec3bd9deb17a253c3614797b767772e5300dc15c6d35480665da527f68d6239c6357f0184e3b24da2c75b2c4095f100dea99ce2df39256fdca7c4c9b04253169d028c8153d9d42a6f45913be4aa4552afaa6b607ebe6a45fe98f1896559facfa542295483da2fa60af3e3d73442552a39eaa4f256287e01aa555f456213307f5cff50675a8084170c22488d2f49021414382c25b7b5a5585d421487c230daa3d29074fa75ded2aaa357b1d5d3296659f0fd8b7ec3960d79b3f555b6db5d58a3a9bb9b46a629087cbbc271148472ba2ef2296934a5791d9db5b4fc7b09782828498f42d16bbdb7befbe7d6658ecbc6f78f421fb60b9ee3673c9b2f1ab6287716cf6157bdfd13bc87de38ee19addc6b2dbdcb337e6e182c2304ee9d879b86498874b6e79c5a4d3b11246c2552492a22912d9639fe823919c781c89aa08a73e12dd14aef5e2cd9959544722f1a215ecaebcbb9cfd2cc9dacdded1254f6c83b1f573b8ddbd5b7239ad95c32eb7364c756955055756f0042f57564e9f73bba34bdebc4b9cca35cc5786e38954bf5c3f17efe0fb2e773bc8c365f421880ce360a7639fd61ec330ac748b655bbd3ee0c870bdb5f6db4a3ffc362bf876c9a5832b2bb7a1e2fdf2ca3d7d843a5db423248357b9a30f193ca58093679e306d4f644f76c9e9741b84611866c78a1d093d8dd546cd35cfcce50c6b1a44455ee6bd85348d6ce9e4fa63122853267c2b1914be9106d1265b10c293e9294f055283c81992a6fff384be7d9ae4cb894c47b38491b00ff396087da2db20ac44c2b073ff2c9e9d837aa6de93d2a34124ea0589b09db9eae0e1ac7e63429940d124d339a455f4a36b7b5a45ad908b059f3d628d7490e82386d9631fed4fc6c16e7f68967d210d92deb36fdeb5478cb48a5acc089d06d8e1ec110c5bbbc4065fcdf6a767aed3cf1f7c5b964d98210a799465901190d46fdc0ee8cf65a469a8110d05ca93275040d1a4c912b9443ad178944ed4d4b0582ad5ff05f5c027cfd1fe647aea31a1148a4c59827e7a461ea149934c6f8df44c0d74c892efba7409d561663b24da8f940661f7d42a2a83cf662772cd6696d59b6a5528838f724deaf42ef36c29284fcf60417aa6a9103a4484619fdeedcfdbfd08260aa2668b3ba8815a454f39d11d71b7370cd7e774b6399db32944ac65e6ca07cd23deaecc5c61b7bbec368b61980df58161dd3f2594ab31c2de4557f42eb3e88ad9edddaa77ec4e2a048c56d9ed36bd03a362de6b1f41c27147a8b54c32ac9d508261f6583d862d6915cdbe93af9ea056513b44693acbbe8f3693a0254cb23a0615df6c58d2be7823faebe7319c23546160b8b02f08c921136c59cfc8d98449abe4fbf235ac25414eb44a5e091340485a25bf84d21c944e4a733862e42789561169d5113e5af8a0306288909e56ddaa248d7de36f740501d22a1e9d56c977ad2d444e0f1e3b18f043e31e5a253f44efd05669028f334a9ef778f0cd91c78c32a324c108440885a3f99194651e336a4396462062e803434829653da5d4435244949e241bc8737e42610914c0904510d02649a8c8324913276a1434d0640b36cc324914701085125c52888100b24c128527309edc7f9649a4c0811bb24c22052664c6d9006502ad946592293469e9c19c73ce4969c75d057c324913244241e414ba90e5263482549649848ee8c42c930801792b59261182c2c8fb7ea694cf21ad9573ce39e79c73da2ae7fc9cb3c3d15962295fb820715df3734e991d8127134a43ebe57c2267b0b8fc287be6e5f8a35c4263692e1aacc5a576f94984d2fc509aed721e69d5bdda6d71e7925639d193898641d230f32f97c59d4fe48bf97a597732c14be6a54ae5f2393d7a06b5225e9e013ff8d0332d97a7cbebf40c78799b92e9ba9c423df3cb4f237aa69b42660fe9f23df48c8acbffe5f88e5fc69772460d1f676651338b4b39a3c5597c6b71ede45adc9a6bb8aa37d7e2d29c5dcab5b85db916775aaec59519e6aabe49156e71afcce28ef8f72f777636f05d7edc5d8dfbeddef9e11cfacb0e5fb66ae27ffe5ec56db92c37751970775c1ea8db23a755f32a578856cda75c9b56cd835767fe32dd096492e6bf3b7ba6903b874c233e0a436124137347c510a2ce7adafae4f96a2dc536807ac08412fa738422e9194a9b5027740915a24ff23cad3d84e899f99c29459ef6872182e41a653ec9360a035a65eb73d49ccd28b9ada783afe7114af2487f9a46f9c19755ec438fd289f91dd3f2985172ed491224d73aa38844ac9ef95b08037954cd27a2c8d647eb6c09aed6ba9d75619eed4cfb46b98feef8e51d9d39da6ce8483b77714497798eba79394edb48b7e94e34daba731fbf777884913ddc1b96c0cef8e1d9dde3362c23ba3273a565181ef3ce37ad149bc7711c7779176708cb719e57aac1b89b1d46be383a7ac9f34a9e57ba0d2d8d2e4e577aa9342a7dc4f9a038f35de9366de2483867cce99a4fdd4713cee95c22dd5178bdbb3273c56d220dc348f3f2c1d66ddfdd58bbb2fec5ea5f336b575f18b6a32359f39a04c2a9a7936af455d3344dfbc85db85e542b57af1b6cd65618796c7bc7afb9ac278e8f5c6db51a8cdcd7b97b559ef82e3c8af058b3bd300ec51aceeafb32930686712a9699ab6dd61fc8ae46a6693b5934bbaefb0dec5df79d6bdf6ed33b79e674deb04c9dd87d6079be5e0c7333a3949bf40b5b9dadf90c03c207962b1d274073c5e39ccf668d7a3dbbd71d7760bf4e453ee614383ee614790710cd932bf671616e7e389d7cd1df81bdbb1ab8b32cbb80c8b22ca3f6d8adb58e601371ccd70381451c13e3c8cff781e84c4fb10e12cfcb4b2c73f629e56b60473e9b1df9e4b5abe3c2a7e10f9fb0941887f8c94731872794d9f59bdd3161011bf68d4e2b6ded28a5945a4b29b5612a5ff6bad65ed765b9cf56e132cf6f75d6f6b01bd8e511f9447854e539738dfb2ccbb06fbf817ddbc6eb2dda11c9ea11f928f6887c8dc79aa768d2116c73626c235d76dcb66d9b8737cff3eedd867a777e7431acb74b3a77b56367912e43faec6a90308edb64b60d4b0dcb36af061f8e77ebd5af3fdcffbcf74f1e96d9306d741b1de6ee77efce7967b6d6e3e6f5bacb8dba1bde15611866d397ad341bb2d998f9fb6aab6e6334d63c4a4a3118568655a595750786a460882237189e87c7392f49bd9a65b6eddde813d7dbee8677ec9b9481f185f2e3970db0d58c306ac8ccd5a964491918d88501c366e0084f0c45c144144e06b04939239b585fd4d66a29968d3b360a401d08ca93e7fdad6737127acbe60dada2dfc4dab536a594524a29a5f4b529a5dddd3776da733d83d51e6e8272ecf8810154897d0e06b0d8006de7bc0c30e90e288cbb84a71afc6034d82486c1800103460ee6c5e6e52fbb03cc39bb5f5bf5c9da4299281b6ddb9c136762db469f65149322199a7dbcb06738a7f385391186733a5b965645222c73bdbecf82a16ddb8ece102ced99689440f6e2601f226b224e634d1aa2dbaf45d9a786c1c873fc70a64d11fb762a1289aeb1260ded136ba3d38f30f2bc9171199699ab6d1ce16ceb6e888e33c2e3148944d9b6615863edde6de87561d77e75263357dab10c8bf6dbe965260d8dbbd6ddc88ec3651bd6d5d8f0fc60586bb16b526a9aa6515a77f2a89d62cf64e68afeba63cdf4f6688ea6a093cea694524ab93c4fa75c420c9620031e1c7dc2362f5d362a04e5ee5a8748d674b2c92c04f9cc8250e6e427fbc214576916054fe6c2b5aa066d7326a1021297c993a40a4d38971decc085926093af02946905250dc5914aeb97e0b24a79280d39977a05263daf00be5195bb46d54058189269bef5cab097e024c64c406f72f065d977b27d314103068e7060a6210ad011cce7aacfb43755327b4933b91a8a76b292fbfd937d3f55aab84caa382e733959c4bdbb5b6d264d3b1d389108d70c8b6279342a0051f358a370178892fbfdd33f3ffd2333cd151bc3c6d58b638293244c704290244c88526bb596883704c3b02c4bd28425a82c9334e188689465922640b125694218b8244c3490654604b7d97969598af0f8d17967b636331ba0555c2dc09823078c9bb76fe40bee362d44abb89931f1d1f7767d275f77d24d34b319ecdb27a5b4769fb7b3778b68b5d2ace6ccd62a5221448a755ac55de60b7b27c84c20b56e87cb592859368452061ca06617e7c2b92e734eceea75c05e77f0e07276da75223d2744abb87757873bf682efc25e0872c51d8d07a4c845dfdd0ed7e96577d96f35be5671dca364ee42e8f48c882373e7b820993b378bc89c4babb873d7927c5c0fad9a5af89ac338b36763f2f1fabc2eadfab60bbb2e6ae7bcbf8e613be90f3618d5d64a9dc872dc24f9b89aaeba8841080d68b8aebeb5d6dadbd0c995210d2960e16003bdc4910ed24b7410248de40920dbb13fc9d7256b745dba8c32cb340c8f3cba080d63dd8d948bae751099b53712aeaba189b0482f6bc870e4619b26dab48b4438dc87c8d81d69de2eebf6896d2886ba26b24b4c1aa26bf61c36edd848ba6e0c8baea61de38e7d14695854b56f75fc91b56f183bcefc1059abd9b675903ed2409bc5c646b2918ec74692ebb38b3012b623874555bb63d62ac738141671179d553a61d7f088e3da3b481f9934b46f9aa68d2baf1f1b49163de58e33a77cd4ddd8e6bd6e076e664c049a44d886eaba1bd87136cc615b8737124661a2ed49de2c67adb596c3da91ec2af7931da45595e51fddc3e3c782591466092d75a230265cd2bc6bddc411dd5b62d2a898479849a29084af93b467a44b7b87af3be66858ec58547bfd75559ef878f008b36b94e190f038b16e072e5fcfa14978e41166ed45e4fa5e62d2b8705623db349148a45d91766beeb45944cfcc5fef203d53b9af67b85f3ff5128d24cbae6aaf59fb7645ed52d46c0e17f6822c045fb360d488e0cb618056793d48acb5e28df9ed3b19bb63cdd818deecb2d3b276733a67b89798ab5ac48e4c6f51bd0204c32da5949b2813896a187edfb36bda682ffa66a5ad556a6d2fd2a48661bce46d54bdf0c9bb641d98fb52b2e4be952f597eeb5ae58c997b091d9020497e79c94f5c13892019a0ad1924032eb0c011201578a0b5cdecca5caf10946b1ec39e194f44aee94387cc23ae2b1c711a391f1de4f194835cbf86ae1e23f8ecadbd3dd72a2bdf4352b99ff864ab323cc2508dacda05d12be61c72c664817c71fd3a0f9266b660c25cbf74e0c40654c8d78c41be7ce48b8be2eef1ec59469f3dfb0cd2f32c7a9665d9ecb9b44beb2032c342b42ac7c837ca227a4648cf8c544890910ec9d72f3a04bb2aa4a56f9c43b23d906ffa80b96e78ec23d91ea8082542f27539b611f9fa8482c964a2817a26fb90144ea0f493d9a4e792e944ae35b33764aef4a670f49268946ce7916c3f4e9f8b7efa50edf2847c397ab85e73834d01c230bcaeab8dc8717b68d575ed8e3b59bb69d5a5830f7b06834fcb6e06e5fb98fdd46aa9cf6868ab7366e72457b32cba56aab64dfbf470952f365b811a22dae1a819767ddd6c2cc09872ce7768f8e647d6a54ace0c0bf5a3f73af0d54f86727eeea0a6740411445063c4918cca320832189a93f6b0bfae391f01ec38f51389eddb405a452dee2018f86af3744f0fe9fa651f7a0418262646b0028c1e3d337384f861070f9e2286cc597b2072d364761533a07b010a4c509968f64a02138402f0350e99af5ba6d69e9e995276355a089b6933d3f8adcaa63dd24199be83aceda056c9d3392f3a317b5dd6dad135cafd51914ce86a28ea482fecf6c2e48b3e7683a099be5e20c6ec187dad39346358c491290e82e63e76054173c5f5c9373fba64d7bcf0687f599b55acd6573a2736832cf4c95777766ad2aa4c06df49a49d4441444588ae8b848886f44c26042680a879e6eba7abfd74c2d3003b393b71a5206ac629ddbb7704e6d385dfe4570a6ad5f5254c3ac6f5ce06df777ad23338227695cbacc2393de532c39cfe721697d2e552e25fca951628f0a70ba322b2c2028f2a021f2b8f587b2e5b31e2c7ea932b0b9fc28897ad15b6a93fb97ec2b0618e92490673b40abc4df3904cc4eed2c9e026f3269c3cc9326805457c5906a9408abc4d6e25735586f0c57cf59dd64e6bac403badad3999bbd38ab93b2dd69dad550c5e05b58442efcbc1cb721b4af2eec8430ae5ee171671b0c8f62cb2fd27248ae1c12b3308ce0982586adc91b9c5ad2f28be2ff8394510b79098ea4b854c70dc01c13b339356d5a0baa455d5c9cbad00b855a855f542ee3cf82899679447562e6be40b5ff7d1fe64d7fe48d1aa6a87a0446955b51d144336b413ca76a83ecbec8f3572f5489e6cd3dbe8b34d3eaebb41adba72c8b37b74c1a326839f11a8c9388ded9256d54f28bca16fac41b98e5528d7571b7469d5c9b691442219842c2f17291f5d72777f3cd15c3d0d536947c9a7ced495bafaee1bf89049cf7cb87e1bddfeca0ddf2ce2593ef60a15d003af3ed6dd60f1155c5f479dfdbc5cc5b33f2f2e2abe6d295114c5d4c569912851049f4ac188a8d44330698807516f69f1141e3bb7bc051e1b6c018347f0e206b65c0cfb20d807c58b93fa10b9ef4871d0ccb2d3e14511d321204bea53053e143fb2bc3b7ccb459cd3597ce3b105f7471611e3a09e7a7f0c5b5c07d45361eaf3763d400bf8d917c462cbc587bf7a288d1dba8a978263bedf601fc4299527be1a1e8a6771bdee0698fa08bce3cc53ec8735e09ccee061c409c2cce3807df1a4098220d8138ba5ae060b9e289b5baedc726546a15028d4734b2ac48d0aafba2c6f7157dc86b260d1e17f288dcc0b1e33d65dae028f61bd0da23432d80ec5e03164e18fdf986597ab50c1e245050b9797ab08c1a4113614b831c6996739eae2714ed9e160790bea9fa4b13d14a6cea48e7a9533e251cfe40c78d43939d3077051f1178cba2ab0a8e22e0f6f8728cdd5f38aebada88717ff1f1b8aec822f7e7896a3fef0a4eec63d0ec6bfbf7af02bf630eae1532eea6761b9a9abc162b30ad4bdb28a2bf39cf313756b5651839654263d33451f8dfedd99bfa6b13e6fa1d147a373a4aec6287c0b0ec3a35028f19b288ae277725f5064497dde9d0cde16ca9d63334bc8591f4ac3f2c9f5a97b89f712d2aa7af05e432a0bafb06c98d151a35f3d2a3d4f31555c92f9ebae9e5c5f852a14d5c99863bd599774d70bdc0140cf2aace0fa2e2baf3afb94669452da45b69d2339f80214b8b0031ff01869c96e74556bedf5d9e1b82a4a3e7b992b9dddf43ee814534ca0eeeeadd651fda8bb6c76c76f4767d47d8e3e8d8c98c0115d765cd775dfb86eb475473e4a26df2e7bf46efaf6d3dd6ed2700ecda4e69ae65187cffd7437ed5389a9c4542297fa129a3d67edd9b3675f75721faf8fd7b5eed83d4c847517e76ca2f7a8d97776d1c7ec22dc9513b55d01874b3b3adfc7fdbb4adcb4f35e5c86e49bf5e33c329550e22b95e6cf34325f9a4c7cdd659ea3ef9b4646df77643cddfb487acabdab5cd930291c8873e809e7d09ca97c1c99700ecd257a95ebe11cca7d2a3195984a4c2586983ba6c65c508f889acbe6cf3422ca767444a24f23a2c944765d33fb3432695ccf261291487444343b29fa5509fab673dfec470eb776bda964221be6ba444cb29d4a4c25a612dc5462ae1a0f4177b6c650b0b50d103768cee66afe46294bf962059bcdf2a92b6958b9eacf643485933dbb9665bf3eb38a61a9e4a3979966f5bab9d27c01205bc81552b592a949e33dfe2a56ea2bc6c2abf8f57286d4b4b0e5201a47cd244033fd45f32567d8bad14e8739459ef89aabfe4669c50ec4cce3951bdfb077e64bcec0dc8a8a920f87bee9319aafcb8bcecb625baf1bb2da32d48a65558565e037acdf70e4b56f9a0d79ed1a8f6fdae9c93773a653e4a67b5f875e36d6e97738a330d937d1251671cc73bf21aa1a56b5aabe5575f2843de3d2aa7a0cc877e1ac55b51ec3c0277990adaa750dd214fb21dbcbabbaaeebad9aedf2ece22eaa79599c63bf5aeb50127a30546bcd6435d204121be899f1c3b0abb16b5ef5e1bc2e1aedf399ec3b66b3290cad37a8926b0a1700196a42a889298ce458a06d54fa3dfc637415f74657f11fde5f235a52a61f1de31f2a7e14b951f1d17ffcde654bb4d7f17bd7a1e2a3cb4eb49807efbf8ed1556cd8c4303b89e0c1c112cccece36341a7cd2c6ec8a74cfc05b62769b9ed38ee18cd59e499a7bed864fbb4de37b25bda15554b358cdb4210de9993ee9278a4f7ed69ea2e941e19333c7fd6691f0e5f88ec819009033645e914254241941f2b1a42179b6e86d28cd4b1012110a433f4e9e4c3fca28a3648247d972658bc595ad179710234269264f901f12114afaa12a175b6fb0e91835456825d437f9cd9a3b81e858dcd25f2ec9e5a61cdfd92140b6569cc515ff7257ee72bde33b3a7665be620ef15ed95a7181b03cf5ad46bea0b74e3ef9b1e635448fc23bcb818c9e9a789440b6866555f636b49f3df7611c97f990d9310c9b3c77749d0849251e16b5e3111679c0f72e6a5807c6f7a38b3aee47bf58de8662d787d4bed91d28f681c3e8d7e54db98aef2d57e52cf7f4d4355dbca5af5cd245dd1573944aa2968a2b5b2d57b658ae6ca5ba1c28fc9548445a45af4d0e0a430fde1f680f0a435f3aa53889f2d550184afa2125412292a9cc28e908238690aca6594a290d494792a02423995e170c568facdd6674ce3b77d9dc2085cf7a77b25a456b6eb0a1d786451c41d4ac61183acc2cc2d43b3d6908a5f1ae2cb3d968312ccbbe9ec128a535f4cb328d6694e6fb4844869c64843404d30f481d627390434d904109790c6ba618b271224f2904234b40d0434992a085ed073d521035d2104d2b400e4a93d2436f80321cc994d2f3f0f068800625c1063cb4fbb140908659d2909e194924223d2385700327323d29899e01333dc90869436e8cd268d8b15fcfb1f3b3ef39494059ae1802b5b335cc1668b738a5742284cee4c90922c4a7882147e43e66e90fdd534a201481e7f2727f87144d6dc8f4f6ee989807a5d75172a607a96aeddb4339c3e6e93de1a36d51d9be1db0e5d033bd2363061022078b739876d64e0715d66603740e9d651850f85c3a2b812acb2aac2fb58f2461b04b9aa603901d63548598115f5f180abaace14fbec08e9d601620871e4098ddaf55d81b3bc54c80dda666253b0bc6fcae1caa55950e2827b070832bcbb6697d86471eaaaa794df8b26399f85118ec1866c467bb893dcb4e43bef9f1cb01c41e089541760394524a3fa9d52208319105263d4fd0a07ece396795126bc1576f63f87cf23db97011992d40c1172e22f46ac9192a0168a4d26d18be2cec18f4da3d1df18d7f966978bc328029e11b7f4a2345a5cb5b27f6891d8a426e214b12e972b448c824128944225ddea6b39ea1dd47db246b9e768b044943ca9577ed7649cfd86bf5daada66978cc5ac59dbbe8dd21e06a959e5d110598e4ecdadde4a72dc99a0dcadaa5b63dd3f07811d1be658dc745248b44cfba7fa2469f9d428c051fe643840db24b2c1312cf07b62a5fcc8e36a53ee6143668ad96da49e7ccc2464f71f04dae6937472ded6cd4295fd06f95d671882cda08c77a23cc14d39d3a9b09dbd64d8cb356c94992ade2543bbabbe79cd3d69eaccf861e08c806773dfd9cb3a70842d800cf10a02002212be9a5bd729eceefadfafa63cd245b96619db901117c61082d9d21b4265a45e887a84f5042ab487fa7252f63a0a055f12725859910d82e9ba96a4d9598c42486dd6053335f737d5e9b1b6691cf071b39e79cf2def01a1536b5de605353436d6ee89a99c672760cfaecba78e2aba135352c9b1bec55f442b2d1237cf2aaac353db049ef896ffcdef323629394e2d4fa31c7e64ec124a1b2fc9c60d8ae571d367b5d3488b9936ddaa6fbf6f3045b26a5b476bc2e7b5dd99665f8bab2cc5a5bffecb2f5ba2e7b5d6d47d7352ffb8decb1392f8cb30b00e51a09946518522a3f3aa719d240798ee4313b8d4158c31262c084d05a6bad4dab68df5a9b656198fdfa965dd92786596b339aceb0deb14374532c48cd5e6ef5f280f055d1ad12c65ebbd99eb2e5f1e5cc6297350bb3ad6109315842b6978d40986bab668701d32c0b43fac9a03368208fa1a43c453083128666b294332f72d69d68683382f8b2f611dbde5d24c06f17893e075eebfe568b88a2eb187de53abe8b9fa69335e5ec4a21dc8004f9ba2ff2367b88907a668f9c31a4d6af3d24e86d9a629d9d16bd4d5ff59eded7f40d83f28d59fe8500d99a3d3d9466b64cafe0ebe7114a13be7e2aa9b57420296247c46c91deea0ba488d781f702a1073519c4e349299acb33477dada9d1b2ee5e16066b08c06fba7d8010ada2630083877768efaebd9345c8f207375842dec1a347cf70afefce5e7bca818407f3c65deddd6dd76ed4cc9df3be7977ecf0a8bdfbf61515259f8671b87796d9cbdad87dfbd6dd1e6ebc6b3b7818873bcd38da7368cfd1c31c39dc03be91392abde9f6b7db65d9d510459887d157dec3e82b58d4be72d9eae1bb88456de53a4e5f31fd075df98ae92240b68000416120219e47f0244261729c2e298c8e171f1a0c618a9609abdca984c2d4568d1ca4d943c221f6856f7e051bfae6bf3b0ac39479a8dbd9da93c266d666a7d7a151ed3f5ae32786cf1e01b3750a63431f7c1437fed1d73ee9b3df502cd66fa7378d451e0232abb24fd28f750a437f6117ada235a79cb56a862d224114481af0492458018a288ab88672258dacbd35672ee1bd7c685525e11ec4f0891f25938c137e74d2fb8e6eea5b8ac70e911178106666d92ad447a910f760820aaf740249b685d90ad3f772d9d50040fbd0c9a34ec6118fdae4d6a887cf538e58b78e5460d633a00df0990571d62af12fe195795ed15317d5391406599bacbc11c95a96c397ab983f2e72572f3b0bbbdf8dc7ee2b60f0e822c3fc23a96a9fe472f9a58e6f3e1e1e11470631122bdc35775783b485f24bf996ca21778fef87dc39724a9c295701e5d7f8979f0ad7c2b2f295fbd2f189056a44412c8e308e14ea3fad1cc4b8745a51b9a512cb55585858545854545a5aaed2d2c26d2ab7df4245a505c77128d437d45b550a431456711cc7712b2bdce9a9d4492416161616522a75b9d3ca0a577aeaf38607efd823834f5d1ce18823bd06118f292761d9aa1257e2fe5de55faee18e3972ca59f4e81dc2cb567d35c0f06f95f8bea4cf3b4afd7b8b21fe5a25a6a4f2f724f2f798abb3d38a59e9ecb456b855705f51878cb32ef65b7cdcc9fd06bfc5dc1fabebc85c060b46e4efacfba3bb91f90a832d2ee36614262500cf11838522a4c8b1c23ab39551989923e636dd430509577892596489842b30913799804f22e10a46f2f77e26731938a33020dee17b5fe537338ec37966bcb84d874fddb1474e7d237d2335d8584c7d4a3aea10a7804f390abc4d8ff32e4f7d93acd46d7a4bddf9cdd4e411752295efe5a6ae06005e0eaaf856dce4cec58ad79654088a1be4afca8fa5e5968ebff28bdf8a157b5ca0487aea224a24e19b141e7b64f133ace19be5fa82a90e87f89980504ce11b568329a9291e3c8b297e24e29ccac2f356449c53b307ae3ce53f7d9f138f18d7569d584a2596120bcbbd67b9f78dc78de5f62dcb9b4524bee5886c39e98e3d6ab47c1b7df4ed66762a01ab931eded3e8a9a312b0c259d8f2948318a7e5620b1e532e1b7c369fbab2551985094709ece08c29198599a38f2d4f01bf8be2e9ca493775c71f722af476ac50f76ee95e0f941039c463ea29477d75494f6959e1de7844fbe267a7c377f1e24f1fc54b6075593d582b316c49ddc5c33b0e71b3da91c794a7704ecd624ecda7a7e4136e398ba12cfab28b3bf690535ec31d7be494d32e0018c72983dfc03beee42fcbf37edf533e10c46305c1b1471e85c8e30f3b72bb1cbc338717c7079d9739c5e59f38a7ec6aa43c45a55379a77299cb33e3383ce65e60062ea2721cf00f160f2c2cbec0372b2cea68b18ec76c7559efaeeff2d5573bf3d2ac729716571c85c833467fec218a2e2a3e6816b10feae272e7876376b3eb7490d5e5393d0494dc20d8937be47cc8734748eea7de779c4564ec491631972ce2d187acc23c5c7263170606e6ae5821c550afb8d6c8193ed3477b6368e6eebac87628cb56a45674d37cc565cfa85479c58af9cd9f6caab906dd20bd1fde54873228cb56a5dea15c92c3db50928c8014ca38611bf1c690fd720927385328d49ce15f408c1362d2cb733a6f9b766e651b8d46a4f753a4cf83a8a71e1e439170cb88b443ea2109e348a51ee2d10b371a8db8976d25f57da4ed24520a7c83a9de61d475e04b8a2453a2f8ae035552df22302fe2b1f3ed6e1054b9d8771c1d9f0631734ae5258571e649ef4e87eda49376da4912a454185e1ca2f89e544c5dd29ca35fd26987a35f3ec212bfdca66ba4cc6cdaee7141ccfce57bc79cfc727c4721f2cb5beea8935f2e3b1c7249d6827811f1584531a773109d71faa9bfdc49938d725f88c71ab68a3bd6ace22a3ebb1ab567eae265915fdef7e5a99bd3d9e27071ec86d3bc07019c86cb579ce68a7d9ac7388d2bf240f318171beba0790c51078dcf9cc667bea5c2db72c79a5b2ef05bb9ed6ad4f0edf2c4f0e11a6ed35c08f224ca13275c18922707b26c620b4df2169c00c5ff4069449005ae1e83775a168b29504c89a91fd2494a14f35938c3e12bac3204196fbd5e5d8dab75c5becc654bc65d3de63a5897c13f64ce52fd380264eb14a68655ec1b195fbd1bdfd49c857556afb90eeb32422c5b3834cc0edc61bec15c2444b15fa3af63c6631e8375763610b7bc59579c9f5fad1e83755a5f5d279ff59d96ec441e64e8a8b938578ff90fd665b0382ff39d968e98e3701cf08fd563b0383110373108902d1b0a539f0385a9df69c9964d5fb65a5852a964062ed297ad8c1bfcca6d282bafae6c6d9bec5227dd5127935007c15b239c7386200886a48b77f439270a14716d15b8f20e314e0a8f3b39752e7547a3e82b5b40b2c9ce74ba48f4d2b7b3d4cc8233b9cf7995eb885c8dc8e0e726d2417c6331f53e494c7d1e1c7d75337a786c8473b4ea4ae1f0f762a7b8bee2270e9f00d6574f80cc6352580c71eaab1b99d42ffe4ad9b0bff22cf56c62f11f0ad58de05158e5898971baa7308eca674e83225e9925ec7de291e5b5552cf81e163d054cf1c483a1f87930c50bf1e8f5e9744f744fb84defbe0aefeda918dd643aea8e3a19f54d6cdbd908f1b89343f17d795602624ec1149635574e0c6fca65ed12b06225200614435c574e1aad701f994807c1a75247bd2f36f88ec47d34fa3c88c7cee0c3f715c5d545f1dd5d983aed6ccc9cc241cc4cea70e8c0e1981f854fcddba9b053de47c6d1492d8a0f0f7e7563ceba2b9d9b15663dbce2e52106af4e378c23dd5183573d75c721441e568ff9cd0adfb0308c101985c7958338e52b329352b0e9a6cbddfb3815f7cbaa3be6e495df3beae415ee2d6fc916188a58e481c5fac1c292c28458c7ea47cc0a4b118f52687e25c69db99b9665254c6e780d999fd8882c9365135148919bd84212999565135138c105222cb84ee4e186c778026e780c2c2640009f61b1c0eb88f3abcb160b8bfd98cb16886f64ce3a0bebc8f8ea3a647c857f14b961bde63f569781afa3e6322e03ff60bd06db50187cd992c16263910799c7e01f456e643ce63f248591c13a622e7319fc43068ec1b2b5d3eaae06287345f1622a25d6a4c4948a94022f9240192c8e2e82f866c68d8ccb88231932a41416f1c8927165b098ba48126f644ec237331e035e514ce990917110bc2c2ee3ca5cbc3e684e892c587c747d4891058bcb4eac11aa40dda3fe7dbb28962e8a2c275de5291745efe0bb8baa197dacd34845329d858475cc88c122f8192a2958068b5ea7a27b8b4b92087ec6631e5e51441d0c2f734514e661c6632e8258c78c98cbb8ccc511d621e3329781656e43c3dbe2a316979d0f9ac79ddcc9dc98dbe29eec5a84b7c5b7ae4677ed7a50beee46673f6f8865933e3f6a91519a98b76851a3059e9f04ca323157823980480a0303cef995d7cec67ccb6da8ec423ceae4f0f3c65c3047ab2438efcafbb278785bbe934997c56d7a6371e7d72c388fbbd7e9c07da7dad050e75b5d2e13cfc222f898efb474441004f1ea3b2d1b3aaf0f6c9c299895afae6cb1ae6c91ae0f9ac7cabd3e460d77e51202f471577783fbd5d3aa3adf4f5d3d2db7e64bc835249c19776a10c9f313c42b30e6219964fcc678c56de88a7b9de6ca168d2b5b36141bb32c807bc39514d3289268220a23c22c83566044de28d71d0fb3b5711ce9661fbd883a1be1fbe06d7c56aff0289df4ea2bacd38d6d280cd8b4cb5a351bbc0dd8df69c538eb8a8d730061c95c860ca1fe410a754f9fc9337ba6cfe4e9317bbaa7d0049a41136806cd9ff9238766cfe4993ef367064da029d43c3c73680e354f03f54ffb3450f7b44ff7744ffbe0feb13985010fc3066cd3b2b5bab285c2dbc685a2cb45dcbf8be9a5936ee9590a91d44f69622e8a67511af131a38ba8cfb86cb14431175158e4617519d7c1fa0cfc23e6accbc03f8adcc49cf51f325fa964482579cab8ac98bbba35aaf0cd433201532e4eb91e4e39b4b393bb13bf8937f56e9cbae29471673ce68af33197390b87afae38b18d197ef59c527f441ce151bf11a27632ea8ee0450fef08ca2c8aee98223e14318ef8d35118073cea5987033cea2bdf56ee9c228bbe32f3c43d0a47388337bc4e16679732b30f2ade6d72e0955984c2354acaadf6e7e06ac5627d3e0b0a5ac2444666c68ccf6b5e183e1b05cad53324627068084a949c71c0e1f3220f0cdf688366cc00623e9ff50082bc25e3f35c0f40c6e7b77c1c4222641e7322665cc66727f220f398dfccb88c6fcd85357200599d95f1ea44e080593364b2564dd65d5d19372675479ddc52d4ed808958d22e896278f059cf4891b58ac5a234abf7b7d5155317e7657ca71573d6155338071099c7b8383fcfc23a45268e711d9915ebeeb45677a725bb8d75758adccc7c25e332bf91711919358f8175bae633a791798cb35acf38bcf5eb14b9b139ebf5abd5657eb3ba8ccc579ff886008f8175629c0098f6609d2237f92bacd3f9ad8c75280faec701eb480a53cfc23a2d8479647cc6ad39cd9d89b98cdfc4ccebe0f0984f7c33e3355887cef8ea2b8c03d6a197711958a7c88d8cb3b00e95818328d0cc5998ead05c002d34001e01f4d0007a7c581f29d00d3f3468d0002e15c0bd8106d699ad184c85284cfd101e5361dc86cbb0e1307ed870d91a67c8b8b25573658be6cad60cebabdb348c13315b36dca663dcfa7365b04ef5a130f5abc7c4609d2237313198759d2237abb356d72972c3fa0aeb541e0a53cfc2f501ad18a8840cb6e54d2d999a19110000001314002028140e880462c16040a26b8bea1d14000d9cb25870501767398e520819630c0122220200000380a04102cdd10f06d545cb7015d910a8fd1081452cf0a3d21a2f2ad188bc425925d32f55f4abf094a51cfd2f08454c2a1282a3bae9c82d179058c908bad435c5998ca121401d96bbcce49f5add80a3e650659c44cd8a7c4f3333cfb77fb807c59880d216533f6e48ac4f4cb80066a05d051c8987b146f4307bc1588adc75cb25769b4bea38b8a5b78d6a9da3ccf6a9eb24c2bc00aebb0f31d22bdc5ee0a662c486c347ad06cf68d6282191795291acfa1f862e3d4db04b3762fc5f9e0bb73af5cf737ca098ed8d5a28fa145ad74477c3bc32b824f01f9d79c741a34f4e8b0383669485232fc538aa4a45be856a736790c1fd77f9a41a2c4556dc809e272457e0045f9c17abb54b3859ef88b0f405cadab359c045f126c0a69ef86d50fab38f8e5cb32a962f5ff12a0e88a2e96feacc15a0a2188cf2b4ebe8502a6547215331254aa13cc82f488e0a0e234a9fef6245437fb068718a5130ef60a0b1db03afb279d8b0bd054cbe17f75a4a56712cfcbdfcb761bd4101f2ec01936a1517d857290c3a358cdc64d8b85ef0d609b2f8001e209a3e3fd489751a2add4ab84116c94009f3eed739bdc219bca96aed8c9ec2e0f4d0f80dc9943c8ac2d5628d2c4cf9d5ae42ea555410d7da3a85ba59b9c943f7984f05a3667b70be4fb21cb0cd6b0ec39a3cff012526045a57113a3221a754fd44e60cc0f09597a225189e80556ee4885f8fb40f4cc96f2bb1ad611b14a7daffbc240d03dca503007136a01f56daf61daed3c5497c972ddee6c0371787b2c0fec4d6cd99784b8b4fd1f39ee0a0563747134a1d5d914be4629c94dc32237e2c246abc3cc35119b7e400b4fce0dd0cb18ef810d5c1389a40c3470f7ca3dba64f22125c93cc6b47ec3bc67ec9240b52de73da6352cb5ee7729ed6179a492d4c582c2ff821a996d33c74a397593f6b4745d827cbcb8b3e0c0d3eff406506897004a6112e1c30253f221a01ee33312d5fd28e31eb984026009ffca57f49df2d785ce093005fa53f654328f2499eb476847b51720929443cc7bc758c08afd6742d61c03bf31c490fd700d006997f88c5a38ddfd12f19149952100c4733826f7c9f46fe8b299771249ce3a6dcccf3d2d894e5023aef1c021e56ac68d0f50f0dc29696f15547fe2afea9945596f628310e05a17aa91c2b132da93e11c599b5004196453ea0c14247d2db7a895858376a7524412d483e9b1020f8a2b61dcb9bbb6639db4fbe48060dad00a6b80fa912e382c4a669b59144b040309265b37dcfe46477524b25a574810b9160e21710dc087dd8b8a2b7d6593462f94937e240138ad0fd61b1241bea8375054122af9f2c667b419316124286b1cb4fa50fb1453e2c57c9704dc3c1a2f95589d0c8e969d7c735fd0662d7f8d6d380f9b1e375047c0581398c83afbd0930df868e7d355ce7c9b2bb63f3e2c5912de24e7cb9bc430ce229be64c9831cf810468caf50852f60090a64730aa71813fe422e3b71f2823d1996ca9d8a237d03e6ed68dd55121cf9acfc6cf822e685be7ba3576b19ecadee6e6b2d028eb6682fd5023b1dd29e34f192ba44ffae525b6a47c86d78bf3ec21b7a267312d92f07c26d6fc314301ad07f982086ae17efb5246da4513a98cada60ecf6185e193d00c42e9908383069aeec742604dc19a59744bbefb75641ca7f94c35e23f49b0c6fb0e5c44273c00576ffa8be3445c4ebc55accba44750810fdd5a3d9be5b90fd24955ba0ade97bc03e315145491710e7bcd7f08ba44ace1a64a71706f0f320478087b2896444263c58644cacfe4ea534690e14b2af306172525f41986274ecd45b1e4d81243b43905cc13e33b75701be8b19802eecc62ecc8c688854f6515386e1d9aa9c3fd3040389188c20e844c356d3889a1932a964a92e28d84c43beb1514ca0ab12b115c3175290906c86bf49a299a37c2b5c5a604e3e6434308c86bfc646d4f2b8e440e0b7741edf87da3c1ad2500020a51c7df038d12a6e421d8c55bac4a48f68e3b16669ef86fa3773358393e48191ffe7b43efd24e1711d9fd4e9eb088124b55f7520afeb1d3a9c603d3b3205d26a41f0b5ec020057af29cd19881bd00da89098b2add0b6dcd2e7f4d03d2d7d161279948c014f803129ce1b854025818fc994e0adc14283ba1ec364ae35aea3fe4c92948c6740208f123074dbb85bd0a8012661226df201aa639a0550b129d88ed34326ddb19d855539ec56b45aaf99d46e0976af2fee3c7b787fa863d92cda073ca0cdb5eb3e10c41ad123c4ba41a8019057e6cc6fb873773757a49ec467f05e4f40b54187b8b6ff035aa306bb3614c905bbcada18ab94e3746a9a8890de26d0a607d6ce6966a42f5e362e85c78dd596a0aaf40d0531f728e32124b885e8a2a1525e4c69d21bc62d644c06cd3e3402e39fd92d295d8e50d2712258c246f275743db14676c5c5078daf2114b187e3d388c2cdb7b255467eff917faa1683436061a634ccdfb15883fc7c8e73e7572bb2cfaa30b1d881d146257104135314f4b76b0a13d560df597127f6e4a5f4020ac8ff777a19a2d23ad3ad61bebded43e8e30c911636cdfbb267d9b70e1c0c58d3f4bcc28b76914a8ad6833cac04fc10ab03fff221c81c7bc713ea7473f280c9e03efa129a3a5aaf50222becc98ca324e1f05be59a12608cb9991943b5ffe6b6c10d04527773497bfe78227ef80b00dd4c5d9f1a000d2d2375d0f1a7207f1ddcacbe3bfdb124c64a921d52d980114f92bf6bbe5ae179264b0edcc4154602d3659f67f437726f119b8cd2f1b30e146d50d40f0e8d5d0ffe230e8ae12047a78d45081882ec9a21a856e10ff207f1dc71df5bd8981f93f1d92c838b34dbb0537f19c70546fa535738be15e70abad5df0de46ac0f7a9f163462d43d90a63d6d07939c77ba68917fb5a05eba4c028fdf60ad49fc2aafd4e411e823ddfe8f22f77853d9dd6278f40d8854ff096164bcc0adfa86ebfa6f98535e98635e9c77af6b0aa2b89608a30b18fda691c6e6c1c8489028274f592afe589c68893426cf5996a016a842f0cb34cd094d028f26fb537778af792f879305ff4f5ef60709de935d8c2bef9a58bb923211c38e0fd703538841b8dab4d79942582812cf2c449469e2b3be06fcc7fb507f83a16207791a40faf83270c9f6dd57c18a42b910366647abf58603d199c2a105f8d9eb4eaa71a505abe156f66e1bd51d7bd39b9c025423e7d4455e486fcb851c76df959f10912ef896363d097414f05e67ce82b36c460f20a2eb301582ed93a04baf9fb2c8469331eebd4137242193883f76153a947b8ed128605f7e6e4b5a0ed0cd8025b6300403917f6a9990b450a7c74915388f024fff1431fac801f6539c3205e2c132efa10031141861720bb88f8f41c3768a06e626756035f84ef2081c7d25eba96556a44c145739a811f06a6af2e401439b27696c59cec86663e537e68aebe0691b90608cb4775d4552ca37c5241a14b0b3fccc8c409c08c139f6d415ccb0fc355649c1f5808af09081df2e5cc91f9feb165ae23f04539b4acc1e640a1d2dec70863237eebb92b1d99c70812012594e742493297db99b133f3123ca84fb6676d8807cdb79dbe7f7a27266da58842927000d53954e12991e46d576ce37d5c58b0b48105d78dbe4e7543174199efc526c7bdd2ade5a4364489059e12328e5993f769acd40277c2a4fadd941a53c4d6cbb8720e87813675665ad21e6b5b52a2c0ecde283ea479e759cf9c1c6a1329b5206d270c1eb81d76926e4f5362671a7320ba363081a13b8325b4f531a8aa420a954d616436c5a592d9ccefe8b4c8f612cff3d37c042dd1935be6f53be0074842fdf805759c313902fd8075aff5674a95a3ece0317420ef23890ddc8bee507d7552b234c2349c3c8cba47a1588e91193b5fa1c66e0af66f3a70361e0a3a814c99d93b6c5ceca24c573134ed1948158f2c9f577083bca5a09fbab63fbbf3dd4252aeba4c358973d6e20c9598848c57cf63d910a135f4f72cc19c995ab49b2cf548fc023f8b6bae2c542ca23cbb10c44a4d3eeb048d4e1ec4f73c19f51c6a71009c12a0254414ec72180bc74396c5d127c7477e1b8732fd347c420cb7915a4a65f64c8e395ab32c926518928367faf80fcb13f408cdf0639de8b0139a64fe0b0f7d69c036360f60a6340d7fb85797831c3f3d342d090716771719b9ff8a2ed0e42c9e2fea347e7326158a4e28c084d943f6049404b7a18a75db7025fdf7a66dddcdb05b7efc3f96a147f713c3550a3a1b2d425baa88fecda6a68583453c284330468815ba4477b2c6f7a909c13a8901edd2378270cbb6707c1ae04e5c27307719bb74ea84ce799134cd8269bf91969deb8c3590b9bff935de4307a766bb9c1fae1d303704c0947fe06c5321cb3b5f6dbcc052515c336c6599a9204cf4790c2316f926be29ea46d3a18ed822a302f50b5661bcdf8537855d1fc48d3620cffdd568835eb71152da105e8e63642617dc796d71006f230c5283d39836b108e48871b3997df73a26095de6a19d0e8b9bab58183ca788480c58732da57829149faddb0bd8509400e3a3d8cd13ef872dc02ea6f666542ce53af08a48058907d19f1c937d513c82ddf419a965982b53345e8ed44021da2a7b36f48594eb8807d8ed1f532118836271a94b8780260499fd32a786ed263e62fd421bf4e98a11ac3abc3bfba24a4a54655d7a38edadb6903282cd774b1441a70aafe4027c23d8842ecb2640e44e105ef70626909f126e65b73080066f048b8caa6719527e5936e5b353405ac2ec7a8711d2116aed085c23d5c770e2fe8ab3ee443dac493c8ef4161568a83fe40bf1b07c537cf02521f95b770fd15b67396ff4bebbfed0704bc3a45fa338fe0292cede1359ded05d3a3c180f34d2fce8b595add513e88d8cc1f7b686f96bb937507802ab0e65885b30025bdd187f20f68849e0e2e220d1798f53166c5cd93ff1d75e759f190311557632eaf610e716c9b264ef9284735a495d6290835cdb6f1051a68fd2af3d0c65f206338db1dbd6ed37a562d88b9319cc7fc6e2d516cd0464c479facdc78a9cde85f53150f91af1faa52a13f3c0a6ab7f2958a0d8ec3f94a6d020796be908e92155a3141a6299e90c2c03ca4029977d385bfdd6654f47ca8ad037858a38a139b7b9565261ebb1bb4e8d8e9103ea7c2722c6bc78bc58be5172114ae1d0a48b0365154db7445f1685ae35d07650faf45e883861545992c3873d8772b73a005911a01d0932b01b795cdec00dc3614b23a31b703b7bdc8364fee62f17f8d19d6921ca652f2d32b652eba2a7326e37547e1b01f9f0f7f143604522f1811e114ff48deeb735b1aca9a7d06cfe95165686ad2026ad400718e3106a507a9fc4ac07757279240ffd62b1a0d316ba99331ebf614f617f7544c58f1cffd2d0044733e535b2c916e624317a7aea3e568285e630b584ad9f1180b7a2c00a70e3520c6320e33781f529e158ea8de144419dc4038de8c87f72c418673e7acf20095f59212de517a002d32109fb1a79a45126addce2f76cffd9b095617d4b96d3776bd129afbf00ad6bae7f21b7d1d2879ec3fc73ddacb11b76c592812241d00090b41e6891264dc261088cb18e57b1a71e55974b485f50e35cae4a7e76aff76a486c479e8bed0930c755056e0615e9ff5e5071fa23f1a6be9a35a87f68eeb1b03be8d7a26a4e9b6f1e72db19b3110887d04b253c26db89a4a5bf592e6a0dc4797b3c11084674356f2a3a55b7b6782ca8d56709f6a11ed45598d18ae6d3dd71d1f80dd25403f2b5d5657e517839a3173d7c1b26cf2421af2166bea1fdef6e661838aeabe9553df7db30478c2b2461a2a1280cbf01ede6843ff517c55b12af2da360b7bad434bceab54566d495759bf105150cb6d1a8ba5ef394ec1d070763dedbdc886b20d586a7c83c26c496339791330ab188553cf65844e9390df6d435522aca0e3c30ece132f2db6066054fea7661bace2954b47ffdfc6799065a24b55d0d3255c9f84a05859874195b8865de14ad0de8b2776b10aded637cc8dd0081497ca476f24f59e8d8dabd539e0ee13c0c8bb9629fd305799127d3af0a4e0b1d8840c4b8830a0780ea11d2b4c263336ab7c4f4fbca2ae7396e24d612be8f9e729f2399da9db4f9d7f298970a9063146a945bc2de02978363a08891e589c63f6dc23ae13f9f91870573a514b9aab29072367d0232fcb3b06a08b43407070f6641f7ea00786acad6efd9dda429c6fa9314aa21a2c7d999cb584bcf02fad40a615051e8c82da4062fca0cd2cca77d1fb83da05bbd5723d82072390d818e0e65e26c06a06063ba5883150de9a605fbd0399e7c639110d7b032145b96e16fc901754064c3817445d7e98a6ed3155da31bba1ae1d3543670bfa4347ab3296dfeb76295d2c61239d1727b0a0dbf32b29d4427565b836f62217485c5dd60911d3de556179df54401d0aafec43a3d25ede78e457878c864dc7c1d0b46a2988350706eba9a43704bf946e665b289f6b1074e50621bfa39b79fef8fd25b7344283ab18e3b80a4974823bd08640fd39bb7038b335834789f48f53404dca23874f3c2b6f80c70288187b12513b79f3800158180be5a6cbd6196cccd4f4b69696f556f9fa792c8a6f1e4577954bfe040b8e30d89eb5250aa640e410591804f8c73a650631ceddc40253e370fcfedee2c905055a2dd516a47d2bde44d21b1813b8cd5ac78413e0af46added4499f02d36f611e8c827ebfedd75cde41fb48d27198fe6d6609a43b38c221e2106982460509c79b74a35359631878eb49432deff566a76a16f4edeed978809d4a414efe1bec332e7767a6b18cde95e85f2a51e00e76735e23043b88b183cc518f0876e053fdcd9bffd185433a436a72a01f15bc7ff3e9412a6c6143518331fb0577c7987ce9088303670097e4caae62110c68fe467b4401f4e6e55ecbddfd954194220b4041d1c20d24fde7e06f06b35cb1fd8101c08145b40da43347e3e026699ae92f508ac2a6296a6f24e58c225ba304e8a392e6e48a5c8030aff005095fb3d7ca58b59557ba427942ac7dca7b5e2b0e7008f88172b974a4457e06f69c69554c6ab57c500b74bf5e54e0340d13713b0a911d859a1e1b575775db584ddcad6eb748646737543d33e75e7149cc6d910f90ed50545112c58722f31b3e859f7391cd4452f6fe5f48a6130076928267eb55606e326ef57fc5a0c8cd11f04cc742a427cb14bc25880ccca03fc79de21fb0c04dbedb98337b02913d23f90f0f00f13570539aca437cdf7e4747eeb3ce2a5b6487f07b3944f90e072e68ba7800f5eda512006a302dab7157b1bb4bd0fd6fd033de78acc36782664c50913c46b39a330e2ab56d36cd81748b60d0b323254523025430c11b185e3b7ee90b9744ef918d2f6c0daf2acf1b06cc51c8c684feac50801260fd8127a6ef51ab43cfca6f37ec4601d2a87599d241c92903496ee5fbccf29035d326a453caa1440c842acc984f538d3545ae89a6a58c68904466cb89421fab7595ee0a34fac66323a98cf50f7571e9611a44bd016179c1ff5c7ed58626fc5a73fd116fe54c41fa157ecf84ed1ec6b4e0d13ac170e573966efbf047855eb930e5cbf7aab333468dde053d56b633dc54fbff34738b86b51e9939cc549282a32ff3b304033f6120ef60859301993d4e90c9b305fb45b6061391ad3a4b31a89f49f04cef8521661225f8b85c501036200ace7163c15ef20670ed5adc656995cf9cfd96ba91b3e49ced8ec47b7c9200865401051d90576951b5dc1341fc079220a7c96edadd670dcd1d71d769112a5173f046267f830216719a38d3d9382b7d4ac96107edf20a0c5f4df9fafa233d810807de663d969444fd206d48a5d391c47843295841092be1a6de2d258c5f23d77c958ee8a1c4985522f7816aa638515a76e8298cdce409fb6da68bff8cabe4f76c28ca940a45da7c3c2c7508184c39fa801a66614895c9570fb790efb542cc0b5e113231ddf5e89e4324fb55f02c5b7729284efcd23b3bb817d45eeaae857a5ab2caf7c3264f01a0308da7e9aa17e599ff344006b41ff90a10c2f8a98e9c07f9de11d6c503e242951f3d148bbd0bd2221ffa179016038b7897341372194029ed12b571e7c228a609cbf80f625cbfdc3ed96b4c06b4266f24d32d0ff405db6bfd3a4f66328a0c75128c436d0ec3f180522b9885c37fdb3d9969aec438ed0d7dfe14280692f804e963747bb0a8e25a6c70999af52e03e35ebd2b7378cb1c5a55984d555c1fb2154f187f6028b3ea38e49b980e563425ccf4bbab445ef371f1995411688b5db5b345f426d084004c035133a2340d65aca54898d1cc68ac42e2f7407791668b49b89341500e8ed5d2105f7c25078fbbf7df163d6d91a5c25d98d68424092bf9a69d461e9cee21e3b3ce76f5af0aa0da87b31ff800234d95b642cb180762953ba610c004774392bf0117aa4ec937c51e63c1317588da4ea57f8540de536d159183caf47f4f3098dd9e76d43b48a3105c0d5fea3c3371dfbf96ddd030c01de13c4751b491061972f117a7902d4ff7113a0ffc8464e34a6b0020b4e03bc1b6a40c4317ce214963109f1b0d00512dcae7eb44131c9e4c5045aff247a9ca44968648029564c7698c32647f2b0ba04b425bbad075c765f6906f3191def5c22c333ea119155a0ebd3200d82af90f1c2b947f26615d2145bf80668752e3a17433140a8e2efda1b8b32032c4146087467797470d2164ed98258f1413c6803f2b83e21a098764e71bc4e26edae124c72fdbffe93287af7c9c479d628fea546cb1a74c677bcd5fa50d6413cf5e3561c1dca97e2fa867d0baf6566ddb506df4e0970d0273770ebe8db2793b06a7ab058d3fccef8a2541254479024424aef8f27ecabaf2d72bc6c31eb826f650181b0f42ff378ec27a42cc7e727ca3bd94ab0178ec22d818ba6d6bb7f4427e4f0eacb7502019171594c85c7028107971f8db6654ca2231497e494b49d87d4e22cb45c19e9d41ac72c9a6e617667f1388fc526b65dd712e203cb036b63391e7411c18801515c6b5e44cf07327a4e6089a250a2be8fd60b2337d1a0f36b8e971a00e1ba55c6f0ea4998fcee504c21df2c2cfb24f7b22c2c867b5b44595870beb02946825ebcb7c83a090d412fca1f72841a1c814384d718c3bcf641e4f04d53f07bc2e823d3e0af91a3812bcd791846497141358c6dec18870c508c773d8ca70c7780c1f3d6577311c237e74a670e643882c1775558fd4ea6acddc936a2395eae65890da712466cb109765bc1a0560b044fa337fea30434852a8d17ee52e7e6f3aa5f1136b90d1971a03ee1fe2e8bef3140c78deb7006d3cc462de2e73324fe74b73a9b0e26506bc5d9583e43264176ae59d3b1fce71bd3a659794d2335636b8f121f1b6b6319bc626986dd967ed1da706849614b8e255fd2fcbcc091b760225542a8b4c6a63bb18a94145be7407a4cf88abd6c9935b556664146dbb48e1d78707fd7e5527ba73f8a347e27a752d31faa4374b0f37ea7f3cb3416e8339cad45fa5ce6209a43b00037e065f7aa622b2217649e30919361ea02cb1bccb6d9fe7c192ec0f29830246dfa47367af0d233bdbc5a5b0ae1feea8887b4171eb5add23245a1cb7a37f7c93fda9aaa3f34b6402422aab8d3c01ca12034d28180cda152f2063ae7753983216c2b821fdbcd9803a46c02308642027b92ee90e5a02c6a57f681225804f7195b2b49c917cd6b465e00e03dedd14e9077bc6eb0c233815f13cb352ec26dff7ca91858df2faba4603778e54e52672a1dda5072bb08f2020671e1444dbea669a419ea4a552351a75158e5e43645a83b801ead64a91f2837243733161c23cee309e89d27abe8d343c0c0c097f79a078ce0520bf34008dac5d2e58192d350e09176906d63222feae8e27b1ae631e1a03c8c0b5c56858db6e24a32797c9bb473421b171ce9a9eab50e46207431a69de98efb31f2b87ae3b9f8ea8c8b8483df128bf493f8129055e29402e022e228f91343a235c298d6f2bd82478e873fdc0672200aa2773b2032921aa9c694ea22185bdac5b3e10e71e4e00e66df8eb5a9ddf954dd3e93ac90540528b01e9ca0f45461a09baa7e8c6745105224399e1394b359934d35b2a4715481e80f3b83089386eae1255bbf8f7ee90c9453a8b292942c0b9aebf6bfebea901e807d93209d6cfc122340d04362b5821b43264daf59d2fa4754c18907952a49589191f1d36651a83055290ca54fca1782eb7d7e507d903a0c3d9f0375cebe2efa8a043b8cd77614c567d98b632f63daf72cf50538b3cde6253769ab17bffadb9e030076d03ba2cf304262cbbbfe30fd8ab17bdb257228c6a399697e0044d204180637564388ef0065561875d3f6290c1c36b0b83e249e9e7f2923fa6637f5921056bd7abc968a5e5a4ebd760c61d47e88bad8d69f96452355b1ae2d198770d19e8b1d4b25b33d187d81c810bf47aef36034c6471c011585b6df86f545fa0fa30182d9ea70901a17827c574b243b85c42f90bb305f74dc80b5d6b461a96fa5b897dfb90a17f6e29411415ca97688bdbb093dc822a6cbbdf8d8bdbd583b6a2f5a54b31768ea7ad10e4298b8668cba973140e7d40b2f3aa610cf402fe472e33aab0551013740cf451a3b609dcc8bd08d69bcf7d99761871f192fc2604e11a508648817ec40045c118ea39c2145db0bd057d9522e14fd26f73582175c4f7950bf8b7188c50ec17804cf3ee0ca8c719981fb4c155a40645eb1b48528818b02098d4d92295f124d1e01ab852153e4b9f8c0cf2e4c96ca94f090bdd7e8606b5673cbb1661f287471ed2775811c722746fa53a7b326c970258b45d5dc673bf324bc35209d6e31995bdc65db387ac656dbf8b6165366dfcf18a303a3b9292daa15ddbdbc6445696ab8796bb1630d6e5e5c3d40ebd56c36228b9558cf0348ae0d5cef110297aa0509d4a521dba0b2ac3346c72815cb729a45c98b1893636cd61ceab431fb1ec8f6e3093dbdb4187dccaca4184c4546c0aace0d12fa910d58693be85a7ff905666d7b47326fbb132fc9f4dd87e4ed2f667a67f28a5891796e41cb0b0357bb60cd36258023a974d2480103086272f6e83fda8404225cc475e9ca821b7af5c933e14bcf983c975489b6052153e2a3b46b2fcf355ee61bb311883f65c1c36d7e16206d0e4848a3d8ec636862226d5d8b7b96f95572c80f2985206a4dd0bd3d6243e6420d86bf58a85a4e770cabd574f9bd12ee344fc21a9dc6f370fb9574c0502a868d5398f1518919a0d26cd941e1670d7e3d5844bcbfe49fb6028229648bd06a9627bf8385c90b0cf852b6e39e05210583383191e221b6358a15fee9e9b1cfbf21f627f9059fb3dc9287108e675a53869990d0c9d47c4b84ced901f62c31d525c1e67c7c00911c493476ee5cb80e30ff3984f82abb7214d774c626d2efe75e0e289ebb0e814c5601c781f280e8aa3eda0811b4de9902028fffe1aa41b75bb78e1021e671629c27d3e8d21032b51edb6cda4d7dfb3c44a0465e801910439fb1c5dd7db78ee09a31bc973793469b6491c4c37844f99949d537cc4a802a9b89db1e70e405d617c7cfaa96b52167f35608586f121a2d30272a5a123fb805be43c24f26a93a2c1539bcd8258e7afd721f6db6cce26a99f4512b6901ef7c8361bbbe9910bb734dc045783a3248a0e09262f11d1e77e4d5383a8220dec69eb5482633a56c8fe2e3c55aa2d76aebac524820debe2428196475b935025100ab5ddb7aa5b2ede203cc4542adc157a981607cec38b6ca022f5da4ca383a3f793cdd823f9740559ceb28b95adda5d2dfd7d5fd0c752001a33f2611a270d45eaa3139b6964a12ba7c24e100f87ad3d327a25a26927fa9c487ae74d8ee2162416fdf85216ab0c08918083105ac3eb02f0b45aeb9144e9208b679220fe81eb7b89d822e3fb2c762946f8a7dac2d488508a0ae8ae8e1f244e56dbe7543f6951fb6b5dc830ebe545be867b852fc074bfb6a8458834390ce62d89b6593e261c2c743dbef9332256a0a76520847b4fda0fe50f7d993e8786062d20099c2d13baa4f23921422d68fd3f1daf5ba58eff4b1568207bd2495a13b2817a101e38d3440f94047507d237a757572fe056c27e6492c494dde8209ee7997133557789ec7ddde36aa13f7ccbfc1bc628524916910de64536b13970327e68a317892073378ea9ea18d673575343439f575bf9f511d26bc5000cc303e80ee4c4c9886765434dae609440a9c6521cdb4efca8f87e4fce244261dd7b891be6709332f9321946c71e44a698612d5c68a053af5b6a9dc94231b5259e21d7c03bd30dae71b0cbbd22080c76f7e7d6139f0c105277fe8c45033f9540f19452b396b1563f13092ad198df4e27316ffacf508e048dad7c49ec8a8607b200b9ed2a7db5ea8219804a4144adab59ada469c84b7b8e10f346adf4a5fd0b4f5dea28ff6da2693660fec7b83d5ccb620dda69be0f0bf9f3282f68922dc9c9fec8b75c96f220939f4c05019fec667025864d8b02b424bc6fe22def2853da047a2cced285f4793d23c79562b9c8c2034c0656c76237d28624e142c7811de69c40941e6b32286cb90a42c97c5120d3c34adcb4c2c25a39f6371655f645be7c00204b18688f3172c5cfcbd3867c9b35d3044d330834593be16ccc2196858488612cff0c0b553713293c9946158677b72c7a63be1d09c612afd71b1daf5e744e1e72b3f80b8bc53bb685a07a85a956f0937538222b4b5902f7350fe4ba979bef5044e36383093420b8d0cf770125079308912a20924405def8ebba4df3ae34244e198619ed2a68462841850af494f25dd20bcd8ae25547ee1e0a01dfbf14bae96e8a2173fcfa516597d471729ce032b8738a695fe2e890eb2f69975224f4bead43bfb292ace74a3ac401003c29b1122e58885c31bc6b10e85e266d695c09db35e88684c5d443e2eed085809b35c6f47001cd027abcb6a084d4b76c277ebabc6fc55074bd77129e66f4465c063f6ae8f3db331c69018edc2198bc858896ba9d6bd51574ec01c1866f1190eeefbf1de8ed1a52075d9e21fad975f2b96331d33dd35c051abeb6b7b827831ca2b5f8e4f1df812966f3d65429c6771644c5645cfcb3cc8348593c8e97545165963f29bc4bfcbf71cd963d1646b8a91f8800a7130ed7bb04e98eae430e1f0f6355d43201f6049b15ee639974038a86caf5b349fc139cec64f5be8d170dc71d28f34c2cb498629cb3fc0b0cb2f87c6a992cfd2e63d6e0f42f9114e060ede530e3de78108cd465f8495fc14f09df64ed7a814b39611c1b03c3b6086bf7d0b064ae6d62503fa721546fdf70f73fc8ffd1fa8fd5e6008dfc0ecd7e30ac009d51feb0b1b19eca203124b790c9e5c3eb199f9ab4f273727ff579e352e24529b007ca08d0b37fb8ecf4c507b902d7f2be21d51436be5d1934b22970d875f38ba31c5317cd1910f2941abbd8647c514d1f0ccbd2ee6ac85dc8b58b1da2b42be375e5305935c61b024412d8b462465e3f323785c49d2b3c1bd68353422f44d675f58a7a83ec0756aa656ab99c62fc2cec615fcdcd5999ca3c9906f292795bbf727c638c82f495bf06e9b29c14e737a4e92492301033733bd99b04fc01da5110acc17721ece94f7bf0215c6996e19db9aff7439cdb2c69c45ba708bc186ea6bbf49f0662708dedd852d4b40f5368083d90e448b2d1696d5f99b9550833976c7c96cc6e8e05b94d2684c0cdf29a341f25c3191128947e41483320691f7a06736b90b5d035ad84c967fe7faa8ac3aff4024a442d73d6cd26e138feda117a8df9a0081c94c794e6927e44fce286a81b38a9995a2c07394de234e9f6002ab2d8d30af2f866418a437ff8798523a5b3b50657d0f56e5dfc08a4f8e83df8ac71938454ddf0cf1259d3a917df9eb8741926f09db4f75f9424d604061f3d1d031ba6b67dd124b46f9a1195623a4ca8a4d25fc2e0030916ecffa749f3878b87901ee3f164509af2b39c8972d3e412d940efb52441fa6d43eee74583ddd12e53e464a6e14d97077367e6884ff9b430aea2aaa61fb98f40f7ada86cad0fbfe185a5bf4d985d7fb95e8e5a8dc5a71e29a98e865a810452f1d44fcb5e8657a323117d69f209db28741378106e14e8220a2e29c774a24f33b1e053037f13baed672eaeb129a81f8e5f28162709a7717b8bcd72d2183d47c23b83a6a19784aa7f32c70c4680fd4b62d517e899f265376b17bd9de027708b2b4bd72368d78fa7d86abc45003fa48be590c864863106273082f68597083e72eab1b58830fb8c9dc5c8bb76baee75fe46f8f526feaaf16f13239b9585e47a2945d514af4a6a79d9cbd880b15bf775d69262c7c00d2e95c656ac2dc0efc74515f03890b532ef0f8002dc648a28a58772d6177fd98a81a29844069a4e468985a9ef66fd78e90359ef8a911c9adb46a4f09bc695463cd6f1613051e8004ccece36e34257d99b20e9cb2475bce421ace67fabda9940c390b7c9536ceca715f45fea1d66f1e6b3c40978a83653c94371b5d24b4783bf4a3089a6a6403fa5cf7a63a327f18d2bf6954ea726546b0716a102b3bf37466dda78a6ef33698497407ed008b688d0cf0b352c0b62b828d3ec74b0050f08cc22d5ea19830bf658e87c6dc507f66a9aff7c70562c9fc4f8cb15b850daa4b0491be1c72e381b4fa529b6c29b3385138fbd3c5ed0642b260da32049d2653977f90906172db70afebf0eb7c8cf9f0250bcd63c3ceec566d17a043de64a0ec057e0045b3f6322d5f52c85bee5c613427c9340eee252d0381edbefe1d8d3c3143b95a38063e0d29c2473de71a9dc7bc2f8e6fcd73b8b230e07465c388ee755318e01163934b3e65879ae353acce8e0572828b6139063ff03e27d66f9875258b461ef26245c6353533b6f49909131f024c7c446acc1a678c017b9483cb15fb3f28b47ee45b45deb1b0172770962b405193cfeeeb3388f151d13ea890553e8375d332e0ff03f1e3b25ecc611da8d48a88d9b7b9685370ce12be09f2cfbed6abd2ed12c6a23e7aa80ed4b30f3984e292f610cdd37fcd633fa47e1bc82a16fe105cb64fbf4d830dd943ea00d18918945945f0d41753c2703778c5eebe4b0e9b1f64884596e80be33fe4b146d4425c2cadc807a9e45f1bdb2334d526ced0b1c775a1ccedbff951c2e7989656ec2f00a65808e65695e5b37a0438a5183b7441c043fdc96eca2faecef3682b4eccdcd645ee46ab3373465b72a023666711f9958d588ed9416468bcfe1fc509869973ece99ded5404f685522841272f77efa874e023438b623b04f49da5a2cb5202542431f9a885fee0d8561f38b8527e8eb92905f9263469557307d76c45bc02ab38a7432a9cabd11ba1f532573bf687b8a78afd87e9dd971be83476e85d21b8cef345cb7d3991a7a085cd38c697df31ecdc9951ee2187f830c2a6b97a9887597b1bbc25d1f11f2245edb919cc989bdbd52478279984eb75f8ba93c13a55529d1f2c4a2150745485668cb3f48018bd22d1f2d4eae24f793ef36223bfa366fb5c3e633715fde9aaf33e25e0b457548f90a25ad660935258cf3a8f3cdedc1105d678fc5d76169059219a356bf6eceb25bc47f62ea5d77f77bad716d79db05c2f529150034ce05b5e62855f7c44958abc65380bfacfcf7d04f0caca6089dd164129ab2a74902c980f864924b6eb5bf131670178ae947dc79506334bcc52d8d417c638a6271fc0266ca88d42f153608a6069769e863890f647e522b64602f3af288efbed360b8bab2c261297d64868843af1262b8a1c239eea10bb0158939f3b2765e5f522b6a86bb956068b8a5954f3742da72a662d2db075ea38ca60cedf9b2948c29abe06415d932fcd9957fa3b21457be87d9e4f15ba54f07a75a04ded45341769ccd74735847e27377bc93debd575596339ef4fe018191c993557efdcae5b96bc90526c27057e7ad8c0a281db23ae2ab46c230e3aeeb6acbbf18ee7427e72383f1d2d363ba7b2be34e7243d359af5bb39a16f82add0e1d072f2222b09f33675e183b30c02caa23657139f912286fbf7d382bb71249f0037f15423987068b9deaebc0fe6cf03e4a45e5c0a383c473be6e058b526cdb03c3e92da008de547db751605459c264b7b5172e0e0bcddf129085c8206c10cbdb002597883a2db87463a08289131ddc89e15a31efb41be3014709252f198a46417c07c769d34dfccd02048040ab9eaf0596d380464214bf9595981f0bfc3b01a13f695ea7201ec264b89fd5a5a164a1633aa6ee8b1a2f3256d465654a62265184d073395801ac1463ddfbd2a13ac0777d45f34813035c38ca784a3b621904bf04b2baa7e0efc9e221c490d3315d88332f161a6f0e19d0a58bde34b544b136193eb6dddbf40cad7dec711f73585c507c3b7ea1a27a8a8d8c1374049dcb45edbe3e273d5c5516f916bf4e0c7c2e61f2c317c0d8dd6d3cb4ed6e282768d71a5e2fe4471864329e4d2c739735df5bd27d6958eb6a556e9a5c11443069b43469ef3e8d9eb9aebddeb2f887b216f3e0cc320c353fcc3dacc7627f9daa14e577860669f7e2057ca1484af3d7a69387d172ec31d2ea0067a2ee88f686bdba99ea2401b3f12f0a7672c5101675484d197b91f908662cd2e187184167feeb5fa682b11431192ef7abd7e2fac6d46c50ec8182fb22a7fc4e20922e7c5241b8a719702165dc82f65df9f360380c226e8f09e133d5330bb9793998d8008a6db5ab7a6bb09e3cf84b56210fc50f28c5713969a64a62a2bce62a0f157416e636988e0625cf3d8c45f7d0e276982a128bd579d6302e7889cc9ab8f83601f8238484b24a3d6759f7d76d81b7ff5437fc3b4476529852043ed8ab9f6fe110e38b0dcf49c554e34e00f4cd64db3657398f4840f4622eb75ade5a011b1ec4a6c4b7b833e8a807da479451e8ebb10afdf43b959da24a38652d0602f11ccf31376c3719b5bab1e7e156e20082bf1ec807e0354760d38bac6fd4f913f8e72b61511530698935e001f975c17521b62023c97db206b47b5bd38f7751ad7d4b94abcae5809c48cd1ffc4a36639a63644a9ded37143d43c1e4d8df8c859b912a1c63ee9cae6eba146733eab84c797c6b90d549a3477d06b9cfb9743a25841a089b4838980dac299c1ca068d7dfadf7778bf01d904dddfd11df553b7afc1e5bef87ace6c0e4b4a8a86fa3dd626ef781e2fc9cacd215894f680a0d9b6211e2c10f6e37746adc93c7d38b9c48150af14805e80bd6f64e91cd161c53115ee0d41a9a6c3af786db4c08e836635e2b793c748aa37475dd55593c36bd83447b0014f7c7f5f24bd265c2abc960626582174597b644c8f0da317cdc8294fa8ecc975f690eaf2fb9416fdb518cdbbe4d02b362007b2f239ea52fc448256abd6bf9d61866642e74a10e7bf683722d6d890b41a4df2b0bd4decd29776ba32a5af3b4626046de0c6fa7e3d6093db0fc2c3b184a1da3aa8774bc0d74ef9d069f4e4f8ff541c610c60f982748ca14676ac23783ea77cafeca749428e9171f8260f214564410eada148ef6c4585716964c94d6389222aeefe3aa9f2f32cc5a7502dc1c5233dd6f744e3c9b84a7aa8510ee1e030b5eb760d90fd76c23ae13f4abc002640a62d35ae1853c5ef3e07aca4a5820f340e4c08e3288b4b42f5278dc7cadeeaefe565102d67dded81698956bbd79c2bde5c6b74b151fce6d0d345d9979e15a18cc3447837b3d2ad8bae96d2cc7ad1150ae93e92be418dd4b056a2990b21705d98ab30827a7068e06c0e05a38e175f0ad6c1736236073d6a9ba316b305aafbaa25ca790ee8c60a3fbf5f5a1faac8f18efed05f9d914302689c894bbf5077dbe8eeca8f542c15ce76119f3afe09b1094723eb7c42cc4581bce60829fe820de8ce5a0bb13427d1aa034cf0a6c8cd41cbb2598d72a4800e92966a692196a04f43b56dac644094d68be58cadf09dbb726e1bfdad65fdd0ec89b0084391b911cab4ed3763e652a4c2940273f404f71fb8ba091c2a7b7e957f372720b506967d46b1cd82bcc62f7873b14ddc60ea6b3e0906a902d541c5f6ec36a4ea7edfbd0004f45a3578f23fab56f538cd42673c93f6ab019aea3e5d672b55af3c8c3e11d9128fc7cfbef6eb04b62dcd00ea8ab980b94616af838a500b31f286be8a839b0c45592d56b26d840739a674cb1501f4e56b549bfdf2631880a624a01a317a80ccad8a6ed562f67ba2f80dc1564cbb3c00be6188b4b4fe42f6f2e514b56bf4afa590ae2299f5331944e766b447ff76c7f2fd5074baa9fa5bc2aecfb5c7978856a688968e2e270027739279db6a24124f81090939fa168ac8dd672a3780a3afae96b5d8d11be4b81cb49539a3d3238261d0fd5d55c2cb9f6bae74d0006f509aeeacf616536994488f0451a3c1d42245e4351b40ef524b5d9a7ba3eb71d21a5bf53bfdda89afd472fa6db8da82256eb6781a9eb948940a17876ca9d836065ad6e5754ef32321238bb59b9ef5e09bc2cd7e43e30dea9f6f64792f3fdc3d61d6b03fe1e2c75cbe0037a9793e4a56c331106ac46e40e115aed2ead7fb45f3369cfdc3eaeb5fc60a392b9634a02c03fdf546d70d975037c4322d56c54c966f744520c671c09c4d6e07fe80d48473eed9071589add36b74e325cecd515b7866706e7901cf9d62d5cec8071a7105696ba6a129a0cf3a89e004ade10abb91e861d132df9990841f968d7f3a667769ba1e97dbe9c4b980659eedb42cc5060dd11aa57877e19560d30058d0e2547660a35808fae80d7e13bd416e2037f96e18767b65f7ae1c8f02cdfefa4354a701ee88eed1450554c2f825a8977e6cae95d04f8e12dedc7af77ac60926adc9981066b82c63b81db40c77f43e466f24a789583476c4df61b29c1591d1498ae9ce42d276871bf3866a939d0f716c8528245878abf6696e50df169e5897a6c6f8a33765c081493d0d5b44007c64ae49e3c10090e2fe261e0d280d421814a063e85643d80f3d40677e266640b3a2a4afd747b34edbab232b3168f8735733c2ecb327aac36bf661d7c0a1c4f3cead464a8525f41fdfff64f6b50c5810aa462659e5908744cd19c41123a5d29695fb59af777578af1014f5bb2f6c90bcc4367dc0977f98406110c33aae469db8ce2886cdf669cc3578fe91397c7a1d1cdca5a1583056ef52fc140684c2a0bb5165ddfdb860af52f5c5b091ac5bdd8ef9081047b1e0e891ab4af4b1896ab87ea3b303a238b2cb11e02548bc63ad6c2c1906e9f219b195702bb727124aa4f3a03de1eae2c5c136d9bc1b08e21d417613ce7dcc84b3d2bec98cae487b82c09882218dcbf8884326664424667fb579699f652966284b76f8633980790eb78936f3aed231583b1c658a79f3406676b3724d515877d60e4085a7c19174dc689579e087f271fa46d305708d46f0e927aa43f7b5d2a3cd413d7a31d5a39172fd473943012b12087d118d0ec1c7507f44983b83a2e38a5bfac0ceb5bdea55262beea3184e22142c046a6de75ceffe4d02bebed1bcdd8e68143919f1c3a0dfecec132e44578a28426a5e23a3baff3ef9b8ec00f38e1df3592304cdc45cb751222ca25a869ecb8ea27f4783a1a8fe24f9d28e04a0fae3609eb8513ec6c54c5c3e948e046f7a485d81d5c17dfed5866a26f5d6dcf3ad60e135a0d224a77065331ab099c87af23d70f6d9ccb7ed70ae0078f1f8fb592fbc7a8c435a76077d1f13f58fbad362bb937a6d0af350ee0a07ef1618e341e22006f7e3236afacb0465f380c855cdb9878ff51857740a23a78789ad9794c511b4648367265394d7ca13ea37da3376636ad7aac7a18ee85a70fa00ec6a05198fef32a2a71adf5eae4c8fd0928bbe18c9e09075df91d47a526a0d2a9fbc0db57bdb3fb3facf2fa7369f4d84916c7cd01a5ebec54e5846670b6219613d7704bca657aa8e407e0a35fe19d899a4c68e463dff2ba91d93c6d173664f076a004b0436fa8760be054ac6b042663ca064d48dda7a4b60b23cedd98022095f2a45a2dfd68f301ae72f813f27dcca21f7f803531798de5e611044ed89f79268dd7f037a94ec8e5984c9ccb94fb0fab7da54f65158702b35d905b05e612891ca0ec05eedff46ceb3b4ee3e60af332bb650ce52f7b366c09dc79b66b58b4b7c32d72f8cec9313a7b7d585834cb91a0d65b5f3a4852d92ac767984655293865acdd76812578dd828ecb7405bd6356fb3ab462a5a48f622a923002660a5d96e51c97e08a4bf8eb428f8095c22c4ca860496143b6ba423bfff169e6985384a18aa21f818ae1a444255441e934c474b11308ff258c24f84aa2095b0cf76270d0c5efe5f18f5314f4bd9239d8c7894f7418c32a3d3c81550cc12be57e8979d70c730e6ee6af548395c48539362a4ce24cd702bdf37bfbeea893b357e8492e48c4e3938b67323294c09d0f60b57124a7520a640a6971665afe49c564a4b185e60a764efdb5edc4aa21431814c7cca21c29fd774e61c2f9887a82885f5ae9db4cfc2ca5fc938866d914ce0228d34e794b36ec8619e0f0b3965031a73c2a0bf6d16585d03dc914eba26295e5edb4379a897b460b16612dffa8c1892fd6175547b4ed87dff392946b9c1d2cf3316d674dfb81c3eb2bc7ffae20ce641755e47055f1e536674c8198800005687890c686d2b32baabae194945c7b23f6463587566626b1d0135c7c654034ec858700d7248d0246d740e1005972d9be4ebe2003ba8532c84dda55b7325e4d4924bfe21a2097cb806190caa4dae85ccefbc3a64f228b7838e52a161f13c1ea5c294bd301ace88f3d2def8897d3a8c7eaca6e4651d463ffecbade3f64b6036a87f536e71a6e6fe53a756db03b338731eb4c9bb084e1082b3dfbbd49379c0a79d155b96afc31913184df3070114197516117261944f9ba22186b4188b91a61e9b144b2c46b414e73de6059bc94798a863665266a353d4c902ceeaa3c969f3a16e4010f0f9baa8bc7276a4d0dc73e0e4e3610552e1884e701096beca4d557c75c470c1ee18a3944e067cd2a48849cd0563943112c8cc8734f3078544b060400564c8bc2663269d444604b0d014d892634edcd48dc07dd31d73d1426ede3dcb724df8e0fa0b12384ff9d748d104940e239cd5e53723d5b752a90994a8e2ae7891d70ec346c309b40015c2c3797cc30c80d986aba8b6cc0f2d2778c0ce2f413ac8c98f0d8d898854530ace82b259feb8883fd1befaabd614511b87d2bd28121488a8a7624d09c4455401f814a573dae35cf1b2051c94e4d3d5e664b6d780bb27e7e5d98e4e003a9ffc330779490cd3b829049b415ce60642a309388023a82002cbb6403e2c0bc9c89ac21e0d8bbe40602b4215c3126171e19de17f5a01085271c3018c4e4fb22162a7ab1b827e8707ce5add7633e30eeff982964bbb34063cb98ac0a0ee9158a445c218a42446a5195cba3f15f3c995e238c7c0a47da47274c8277883db371ceb322405a1191d93223a6c2211f110961a3090642ef1280c188bfe83d8eb526acf20a297fc6697cac3983c9848f2af241f940355ba2a545c136cd063669d7c6a4b8242e8c36e36fbb0916cd89ef2d20c97164c11b02815da1a35178bfba4aa6a4b0a41d0fa70fb9873aed758295f1867630f450985a052a515c63aac91eeec0157f2f571bed53b892fcc36d271977265bbda205a21654835b3e113cde6c8ca16189a6c0c957ee6343302235b10fd0a891fab36cb02d0cc48b95a1037193250d30566b43ab8e90e5fc5dcfcb610379080a7b7f10639db298a70647cf3cce1be3c95740071a799ee238a7e09a1010217b6c413ce767f6f961135f6df5745840d213b9812d2d8a6015651f7afa82222f37901905a8ce2f6f65398d5c4a25c7e721cc5e7c933121b4bbc2ae4b0885480e1921035136184e93502cd9c4a6f41bebbec6c990029ff1a3676832c35206da25e858f60bbea60e76463dc56df84e69da51f557e184c183d2fafac22c281cdefb686a15389635030f9b2e712e71f6375ea6f856841e65e9d32ade96f148e8cce6603d2ff74e263d251a6dd6f653087406550deeff39a22d7a3707ed3d91cab72d1d862a27104dc9a6ffdbf74e580ac88c14cab5c2d417540ac46c133a5a9c2da742238d7a4459312675b1b836405643d2fcee7f307a82a30919f9249fcea87142b15c241d869630f04960d5a17a079f427d207d87eb2ba35c6714411b35b5a742a839ec8421b8969e496f6d1458219fb9c83a3cd255d0c8a0c496f46861b40c4aff853aac323ce3b3102d8be60398c026e041ff64782709b570c5e420b56eacd47e9bf7b053864a126968ed858da78a3a13c6a7eb702180dcd12941109912ef52818f8c6409bf0b110e30059460f374479d37fce9dff2212197f7b6183f8938cadf98d207ebe6a861010d483f36d1635d5fb18cdd7ab2bf33be0e6a9e17983aaae1f9148e5f10c16be20b240ca4c7b844d431aece820f736d098b3913f2339cd5b9091cc0df2771242baf0636ada1f940a3b459a3e2cccc007966b4ae636cf4e0b54873d9307d6cedbbf86dc8dc005ed211724d499dde61eb42e8330823354934cb4743de246330cb4a0e469452468e5017b20607341c83a17f45abbc419a72dd38e56beddc4353ab5135cf8b7d5510e315c28c1299429b0779d2c13a709cd87fa8a55eae0449c41882d8b444617c40cf11a6d5053ea7ee3321026bf66a8a66f4cf52c0e9d6184790c4d21b68b60cfab706c34b5c7e1937ce4841e7634bf0ff0e4b2ebeb48ba687802d3204b815e549454a28c801636ac7679918394bb17531e9d688a9a5b877d6df7a9693cac6819751ddd631187dc15fb7b2cc5f85269db309644b5e424c06ff0b11cbcf8586ad1c7fb181f8bb051c74d77954ab674dc1762994a09d103a89e3cb5aae563fbc7c12c16fb5838d72f0ff2daae7d2c6c80362fc653fe84b226ff68c992ce81b5f95e2ada385b2be6394271a74507b614fac8d0ca1df500a8e8448a665d60f98a07f90d81b4fcfa9175877ae9a74c789cbe5d11f8733bb167ab40d9d86c6576a44293e560685dc55124b86921fc954b31ba9c29521c4bca815485539ad42bc13a4a5638e0ae2804a74fb4572e52dcc249c3cb26b8ba3115166378711183a85cc5bf48a1231029f8422f73be296815ef013895f80c0960279dfe892af4eb490b785d1a6b8077455cc8cdf50e84fda6b33e352fecdf2fa537fca5f03319147ac5fbd6e2a2080f9fe45f0a0f70d3c244e6ec38b666f670751fcfaa463ba697eb197762451183d5ef337fd0072e06bb84cd3852324f2cd3efba3a51f297ec6a8a0d92738f7e86b6664b3e9664e1911c1ec960b0e491f08c3cc6d27feb835abf04999812fede61ae1429525cffdf0a044b9702fc829b358a9a59524212d6657b5c0aacb7fc8fd6dba743a195c34a6fa32f59e2973cf2afb5fb358589309e7c583786686f9b9e9796c15d6ec9c186138c7b5a9eef2a32d4c0423c620f5a8f22da424bd66eaab6432c6774110ad1290400124c0843a5c3b24c2cd0c10015fd5d73481300a1af705a744fbfc57d424926dd46f17d7eaae0812c6e6cb4d1bbad16307435a1b8ffc9cded254299708acc0682b5f48cc4daca92924f7670f3c4b78bd4452a34ee6340b530b9720040fb50fee4900aede85d1b09830b8e7b48280645ac8898272b6b3e8772a0e17c44830685ec871e57e2f9e02ad4c6fd296ad81b8654a8741bffede199739777642039fc15ca6ef3468c30ad1cce3f0682bbe0ac813011e2d281f9c68b18c1aed10598067c01356bea8d78244c2749ba06a00c651e5102b74994c6beabe8eb7bbfe436e1232b79d61b7f531f39b7fc91a11ec1ac141fec0101409cef073e6d41db65a9272498506d3e7001025e3e50e414a5097e33cb9c93b791af054b52f378840ab3c201f647068b8ea759fe770262fc483bef78eb9807f8108ebbd1fe6d870fbd437ef41a3f0299f0ef6029cdc0cc1cc2d6452a10a84b8fc512348ee56d91e989817eb397e810020204db7702a88ccf40220153258b00b1942d9699a70c6d22a1daf137c047959c60f9d3d6ef51e44727ab185e1e5c5a995634a6ed34796b88710235874fa7c3753f1d3099077d954ad1248bdf52dcae688a1733a91dd7a620bd81194b729b80644d0135c66fffff86461faf9f43b058ba1e21ba0a48666819da785d5e4cb0cc1e4a520e4dce70ad5db7b12691770ae1ce3ee97d187af344f6200c7f0bb7d856675b11e18c0f9461936e3586bf4127995ad279ea6e0b2412f7fd78729d191787768d01bd96af3d1d4d71884061a817b07ab67da1c36fd236c9235005382b3dcb7c2ac4b484fc7bc74c028927d82ce82dac7b7cf7b2a923a41b11cf2467a6a5f4560a3cda91c2ae2d05a9cbeb2ff04f3e6d30bd9941ac63d4c764e4bb16bfcf6edf2d7a54165678b3cc22f9b1d79e7addcafad4e5dff596b37c79449feb6c180fb0764a69c158d6ba85accb8736020d2deab5e7442647c206428cb3f52ecb5d83e1dcb1f0c0fa312dc6721c66c9815db6bd6ae2073ecddb6cf82292920a3cddbed898d2a6305a031b74393f22b9a5e099385b2ad6e55ffd69bed6d73059626648aece9109889d83563d0a1015ed36c16d9159a8b201abb14cbbbc85442242a5592ca221407457c5ca316e91edc9b724e7d128c258c981d9c45aac6731037bfb085dc46995031edc7e31c8c6be2ed4cf934888759e2357d6f4ac548c563334224277bb9f563eb32e1de3d5c00f18c26e8bb28a70c9880c5503183e9c207a98c7d976a093f0d9045806ee7fa07a1befacdebdce0d405e51c50b76b53288aa3889dab5ce377bfe2328277a1f3ed50f55b28c8b1e09ad6e7f27cdca2344bdff5f5881ae06ed8ae972bae38c17866fb02e83b3a3e09ab1da25dc64e74b05928a4b0c78e39b7fddf265a110c9bea37d8cf7a4f35f40d4cda724d9ff058f9f1cf6e6d5fc6ee1d266de223e95fb11d58b7dc92aa7dadbed0d62ee4c9467eec20a491456d6f57ab0123cd9c0aee32e867034d10489fe2712d4538b8236a15aef84cc838d990d89c41a9bd8bd70bac2186d3d431e4907612e47518367021dee5246a6df874956676b17d8acc8afeed906904c66b9540db8178f005c2432db1bbab32849348d4957e4c988bda23f788f54e78e076e82a495e0c43e8b87d956c2ea0aaaa9e79c06907914c1180b5a116cc2ffa430f86b54e4248d2e802739055aaac04510e8d7bce15e8791a5f0cb3c06bf90e0436abf3b0c865aa7d4d1f367088e178d1af181eb233d7b5879cbac76962f1ec9c736c72f4fb44481f14f682aa0b261bfce16e33dce7383d2eec27b57acc8bcc33d24bfd2386bbd233bcb3320a7e067337e609acb1646b3372c1d809589b583876b433f91a7a3284d551628b404c98cdf48dbc361fc70e61eee6d9e55285e35888105d1a3f99a1ed22c0dd12baa112a3f6988d228bffd219179e1c48cbbf2d17a8f7cf9776fa30f86d8e13809088bf904594962936df14609fb066903c208a2c392344ed5b3a941cbd068c87d7f1db7114e067c331f4ad2297fd8c3689a5981fbb9730407a525fd8050a928c88723d8d7a495d33b94088d0dead67d7aefdc00af8138094f24e0ef38124567f9df882a4e197a5c79c80f6c7ee6731af8e743236aef55b140e4d068a80611c59589a4ded7b482579e482274d867ea44a9c5d0031e8d63e53898e1cd0c923a23eb1174805b23530a5c372b4af1cbd7b450c78794ab5ce33ee40a7d318cc91cb904fda62a2b8558343b00e8e728a9fca28653f68488785387a2af72dd8df1039d8c18b5790ac6deff154855a89812ea64702da4c6bf3ea9be7644e4b195ec6f553f2f4124e86be489471e015ba0ec79eb251e33dde023cde46344bd8eaed448e0c3f7a26299ce5ad798104c3f66ab13282b732411c18a9a40dbca53a6ad495d32e85f5bd0835f73c88f6b16c116c2caf66adfb657dc0e1e27b7c31549e72324d6d76e455fe79f9bf6c0ab741cc722db13595368914a556d6b330a026186767ffc1b44ca743b6fd8f234d94758fb2bb75dd99e623f7d518f97be7621fef66d42cc1a666354b176ca145a48fc6e9a878392da05adc2ef11cb206f05c64218b8b649c2c5704153fc384c2225c61d8958b28c438f258d246efd5b91e4853aac2d6681f33fa8f529f20ec4be5f412a8beb9b4b05e3ed95a7e2b8975a55d5a81ecc1f118031b4b07d03f7c6efddb37a8b4df72f6fde37664fee665cfe6a55c3854760fa5235fe129b5bea670630910219faabc3aa8a1bda6572208a3233e962e6e602e8d1f189f8b0b1b334b18212fece3e57b99c574f47617389f5312f891c6d62c6731cc341da66b6f0e5b0e5d34114b19fc7ea093540730813d4e6782955b9b0f8dba5a9a29095da0aa9a4d835503194a8ebcd31921eb11a8aa1d3e4cbf57de56034d06fbeb2603660fedc1ddf364be5c2d4f0001ea3c668ced2e2ab4765d5da23226956b14b9c01e1a4f8d114748f5b997106806dd65a79b4bdf26356aeeaf3f2b20802670a333380827951d9343e97c1eccd542b4a11fc5a8e4ef6504a7f3f29f82d4037e80e5c70e8420361c67115e22eed04c0f2daca31ba75a7b91de09b1d71f56383b8c21c9e749f1aabbede7c20bd101b54e602659426aa8601cfd774c53767f6561c3108894ee78233d8bea19a82a4cb48c516f0eb7e0d72319a4419983192bd8bd0ec57c566dc068d1192b0eb41cd560108f50ca9e0266d1f246c02d42fdaa3a0fab5dcf84fc0c7681a0a3774bbb612ba3dccddf7a26ef6a9103cc496c9609a7feea91a9b698f5ac537b27f2010cf2336975f07bea96f7209e096c6ed513fee581749a3a97b992ed69722c74d97e6a7f59e48086728778a64e452beae4dc4faf9eada54b91dd59a5c029b3f8485653c290844b24cffa5046702ad88000e10e2b2bb2c82d3913bf4bd8dae3c221c5869a6b1c8a22fe33cde5a584dca92c5871ac4e055a22ce70ab20505f3b6067a33ff1e50b9f6aae45cf10bbf4f2da0ab84a583fec053bbf468ce3a07e59c0b4700b1d8ebe948d8eb61adc4f178f45a417ad37ee48f391152fc2d2afaf1519d8d75195c751d960007ef47ad02dc54a9ed1dd837858a1f8a1631ef102c90652c5720dce80595943cf977086e8a876d9d71daf86bdbc3ffd6d25bb0213525703a2a3836eb15bc9206648402565762df24af08314706b9d8c47b6ca0b15d858ba88b5cd082518f985f9cae8ca71bd08e1c391bca1135ac9c545ac7b1dd45c784c56e167ce25a43501570777c29d135127dd280e7336778973b27eed0f1b12bd72d79e68c4635a4a58a16a290912d7c28a2024b4ec00a2b4bd697b6d72179d412f9b09acf96f4bfebb0472337b7ccaec7dd70377229b37fa123dfd5c96fa22cc4c04063dea548248b9eb5c7e5753c61c48964c6d30d96b00e500991f2f33ddcc0bbd426a76d9e370bd5d328880472ccf73cbbbfe8967edad40d0a89d4b9875d6e995dda4cb385380e8cf6198d9ee89b59646ceb4c363dbaaa72a62530e9fded1dd8a45f08d47dd266622a700c77fd3264f43a1e7830bc7035f09b04790387f68f49c343522b1157996424c966c0be6eff22912ee0f4fa9a2c1a559100a2a5a3056005d2c810bc9c5b821504d420d588a8a902f18c57682c6373e3c8d367fb10dff1df8a58e9a6a74521c0c34e166f1a8bc1acfbf671edcff98e85359ec727a4db1b7ffb113873520773f46a99eddcf55120122467e86b2cee87f011e4d62361592e01ece0019ee9844dfd2dbb54a2a7b26d84545b7c31956a0b77d1ae9cbf5829945e2dc14fe30d485d06f330b08be834080a284bac257db59d477030abe94b50eba1b46fc71a9783a4d625ecc88081e5a4d5c50e512faef9045cbb0d3e047c6235e95adf915dae18e8d1c82e2b7dec82f3952f302aa91c8dc38bf32b6dc02e0a65062a479f47412c4b4c57fbce6856793bf6205e5aedeb0cadf2254d5ad39adf700da2eec3733d834a247ed2df87993b04db71721a7c719a7f7458a21f4239c0f7a4af5ee6495d6451a3b6b532f7f90f21be13d923054f836465b18a8501fbd8b20fc31f57e1abfea0d2e0c0eceb13bf299bb0e7cb486db68d11709a102285d179809469706351f00fa1a95fce1139df6c9e9b8030e32cc060450d337cd42ce78c1ba7ece10ad0025d4cb5e3349ac05c11b1ae90158a70261d7e0de0f9d143b3c301fa3d4003778d682ad2e3d0c009bfaaf24b2100aaeb449405891c59b927948112a1668dbb5ab7e6ba87f78bba45151b7f430e6b3b1d20c103ca0b4a9e41b0c9806f11fbfa65a0cd0a47ef44f34ebaa578042dde0740e6b03b9f28e26894638902f6a57e1fd802b8feb94160368b84f60344540872f61b180634e25c17200103248e12146fb20e42440e0d2c2e4804fa8469ccd73c3b7d491c70953beb5b01cdc166ce7929d1e988deb4740f41b19661b4f9a9f810b4382b45de6a418d2d57903888d6cb440013ff974664237f34d55934f4734879ee339210f1b91ab17e843cd1b4c479e4a46f2bcf633a4723e52145fb1ad7305bf01e558e578b3260ae71f69db9334b0ec3fef418da249702fcdb64356df3cbae8de458579ebd0afd6aa2c29890042130535597e5fe82606041eb362d3c3c956447aa468640cdeca1559aa2c9bd67613772d8ddfa3089784b65bb90f682870a9a8ac7c9da0b6564bc013cbd7b964be6c0cf30e454fefc3062360a46ca1182aae9f40b554cf6eedc991aaf595ea43df1f4fd314afbf649bce2ad13dc5cc650c4fcf9dbb893842a47af24e04972732bce8254603d8d88b1511938ab836d99d25174a21262eec31a5a529e714afde0115281d7332e373d942ddf5f7ea23c31b6c3ff8b9bb1328186bb41767a550199787b4c2fdbc396b3c54c017530aceb8002133ceebda6458a647a5f0021ead7ce61a47fb9b7bbd2c09324bbdc312002bd18268ffe382d67f2f46480d4aca5032f4651f96a8ac5cc465a450c7904584d2649285a47396f409f411f8e1acaffd783629efa4d2f62a38ca9bb8f3ba7feba762991ba4fe227ddda6580374970a52888baead6a24f367ecbec2d3bd3118dd589af37cc5b73292b9c30833db8fe4e76d924dee7c76658fc8e4da272757ed3c8dc9a1d3da6e5d23cc9919fcf105c247b33e14c18488e3b0e2ac2999fd841c8eb0de1f9265a3945d0cb37fdc588907c75d203019ca38f03cdab0a8fd0242ecf30a164d8a92e65750d4ca3a4a3c6779eb89a55b9f5caafd56a3491d7d1f5fdb9c3f561f5e346b3f2aa96edc8c4f402df78f0616109ac7dececa67b249309414efcb299d191b76b0f41289c3f8a600eec81979797e8c45c450051d78ae86a15c87e76e2fb8faf0249d32c696d996b8471ebf8fef877f0a1540e8f0fe13f6e748f15772ae6bbfda235056ceffc01202ed4cdba83f1bafd3497f0609c9f0135d612aacae41b1ea1f6f6e7a9088854b039cc61ff542db6a2911a5a4dfb870faabb96546900212b4b426b83801680b77059475efc18120f21bf791ba8a419c2fbf6bfc154ec331e54146a0c8a225cedda9e0c4572c98a92f05e81e17e1804a8399c87c7cba8a94f46b60928cb689c6099083e1b76d6256124a560671b09b7660044895f2aeba1304242e2816313aec2cad8f7cfa6d6e215c623cbcb8090df2840198cfd4749adc7d08b95c61a4be0551f84ada4e383ca717b72cccb4cd1850931782395f433f115298f22c8e03c5297e72020d75b5bf65ead66e7184a71cbc126617a6222496c561bf8d28cb5b0bf05e24b7892af69a90fbc62e894fb0ee24af430c6405eccd09f490111e6d882971ada606aac989026382c93f2a3c3f9a479bed9a8065b3ab4662926e98994bd5d2f82b367b3842521a6eeae02bac22853828d5f41e066020591603a2c353ec362be7d37200999ded1f93df977f886f1a88b75c65ed3196d84d798981dcc224e1f24048f29b9a463d021881008342853e1785739599c639a162e60e12c8fcf8b525bbf7b29af1707d996bb1a1c95d3f18ac8c3b0021de8f3c15c8f8199814ef7b984f0f3330ab8c95640fe472e97074e3b4708ed1006a9eeda76ae2335767ef020d886fccb9cdbbb45194b4cea13442224e89ec1beebbe1004da38a3ea5b41937b30dc01ed5101e33cb2809f6f8855d8b98dfdf82f589f99f836d54e16b8766989c0d03e90786e39986b1421d1ded497efc55443b43e3c1d952330dcbf1e6a5bf47014d298ee27911d95fb84c956de70c028af78284ee4896dbc9c9596774fa638082d555a5338068395f78e9e3fe88c422fbd36a642a97d7ae530b307eefd2efa19764ecd7cedd9f3c108fba8d826c40dc33fd87a6ec21be9961556103c15feae354f94296ea90c02d8a1a8e7e8330335568424ca00ccc68868bc2764f62bd3c642028910b1453d9f9083a069631445c04dffcd80a399628344348d26cd55cc49618d32a4bdc9289dc361b15688fcf5ae78cfa61053eeb69f9c064d82ef11f2d7629d3f6a209c1a3b7ff29371044113a76ff4df767a3a1056c7aa48625071832512ac9e6a6f6db706d90bfdca2fe7718f67dc228a9a0e915ab89b0d7bd64638a1ffe3c944eac9267c00869d80e687b60587b0a14e5a1e488be6a38f0896c9a607222690eb4a79e6f5204ed8e32b4e928e83b092cb422034b320d66fc9347176d0d5dace8dda7f7f15a75e50dad7f0a8298a5ca15ddd64b3a29404e5e775392ddd8a63e52d6b0e5beba135ac0b80744f7dd8e063031f4fcf06436ead2bae7851c07020308b6e096d7cf5573cc77cbe6f1a1958843751879c936fdd38ca0bec5482c04e0a4a8ee0fc3c31e24f775c85ceaf808c4cb4fab902cbb335b4b0e3a2f620c94bc55c59f1899f3b6b3a260366c0f49166057f84a4b1b4613c5029fd0da433ab4ab779402c9d02447086e4c8076c7d2f5d4e4683cc85e41c4057412865bb48bd4fe4f414c9bd21ad303a70f779e7dfcbff5c2fe6bafa028ee16ce6aa5e092bc39dec7b74f7909d7f40271f772a43ec47587add77c06c8a9c604b45d2da3ac42fafc88556b719c58543db90a3425595f3a1804bb1d0c6c9d30560400bd6df388df759b8bdceecbb2d04e47ade97273d6b98a906af5adcc2fa9a17b3cf0bf82ce578b015ca4c3e0a9fd06b5610ee0195378282e57b8dce1196698ba4eb7cf64ad2b928e55d300776cbe3c3e36b2996c0f5a9a19e918469f27238bd98164267d94cb751c259063ed1b85a33383c3aaf1db680012eb6ff8f5df2e63347e8e25f7cfd90a030285b95894d37cfc95ab707a5fc97292c949613542e72e002c9020ab8c424fd86e94db7107c28ea537f192ba2db779a569c67d9acf437380da3a84ab5a5bb953bcbd9b3942cff18a02966c10a641706595d2780db534b37bc80cfb4dcda88da07c5107563d2922459242fec40343cf651288820de146dd2a36c31a2bfcd85fa3e60b55b13af5d29f69a3099c28e9edcd13a88df65ac6288c39ec8ba65931e05c0b06bcb3b7a316263d1dc641f78b0d34822883d870bd744965b9117260d6dd844564c294427b405f7c5ce15c46554c627d3067955d851017a85ad9b4e7857f5a723a652f7d9dc3381502e5e1421a7528db08a4d3155fee0e851aff1d4218d7065fbccae7179b36d1cb1b4df4ed00de51f0b8566953bfd230e992bf003effa9fef28f98d9c034f89fc165f619140e91c663397e238dc6c6696cdef091293c85c3f95f5920c0d1eb56f26e4a1e87bc9f14655e9ec33e2e1906f09e787ba2132263838bf6b00ba3d0096e34d1c406776e148062f21a0a43600b365bf96a614388fc6ceb0568a1c82b416546012739a800cffb964a450f4ed634b96bf6356d43084036d4ac2acfcabedac6eae2d7bb4c6874371730e34ebb6d3e2397539d293ee276590551f93e8cb49e0b2599e5a73619cb438c28e4f309a08603480e65445db91887eddaea5b251eb8c60d71f09828f689915f3214bb8e0ece1dba746102a6a0c9abe164f4ff542c6fd7809d21cac2835a3e9c8847189e26c983f9de57a5266dd7afb40a251b5f335999b596e7aaeb18f15d35133c32ad2d372ae64e4fff7e41dee06b3669b1b898b49b2c2cfa85d8c14fd87c121e1eb1839bb66e396aebb03186c324ade587bcd514d431a8c2525f13bb9987bb65226332b4f70d0d85126f5e47d4f9f970ab5bf2903b21af28eac4f813246dac5728fcbc24e1fecf60c02bf4c274b4436295e85410559d6e47a9e464f3238bbfcac77c71eaeddaaf01bc480f0220bc8eacc0d276a825acdd787b1a491b05d27689a54e465778683fc77d23cd32af481e4014f7268879e1a273d513d4e3f9215fbc71dd4081b91a1e05dba0ec8dfd53adb50b4174e65180cdc8904931460069b7e0f7aab16d41a0a3efa9de4c6bc549bdc1342aed6028978a6769349cdcead61c0ae3319f29860188d57abe356062be7e04367e2adb3ea0b9445502fc40288c6bff964953288ec2b97a72ffc51d33427818b0df14f93534bd2378b9ca1823c9eeaeaf36bb53085b5972d3154960afe3b70070309a7fa55101b0033c5c3ce37611a27028995fb71ae0efeb49e8a2a5d4af9d1c2046afcd4a57c69cfe5332f8f6716c618e852a974984165784ab598e9d168ae8b58709cbecee265bad7344b2d9f2fa91c238179ca61ee9ec96f6515f4021d741b84b716366b99e3818d3fd9385100b3e4425ca0fb73d253e527b9624fd81e05f929bd0674300726f8abeca06d8db19238575651255ceec2eee53bd8725f34c6f6f57388ce2d889de414856cf7c97f951e2feebe4d39bd1c3be889e92bcdaf2fab09f5d2306e5a17faa26186fbb8ea174b69e0b91e96106beb6bf855c65a5f11c250dd135d935ef7eb5ad89e78ce3d0dfe8d042c4892c6199074073f7b9d48014212f8523f5043741fa7ba62f691def3135e647da1f7ae8a69fc4a69890d75b029cd80bf1675a723b6dc500d1586a6ec22e63b6b0636a3e940edba22792b86406d14b2de352b5c098373e8b44454e330201d7822f922bd0285b7f29b1159db77a6978369296f39d8279429ee4d2cf92077d0a0e27e70e0320befa8078293aaaf4b0bed96f923a6c0775f70b1dbe1166f4cca5923849b01b161dec076af7f2899bf66ae1d075d9e663c30e065144cb0655e1defc2f1858c26703be3c245572755c95e9fc1a9b71cc8ff3c3b16544126ba299d52d1a1235fb11c8f538b87b695b73224ca602f0547c7db781cf746cca43182aa6b8843f3560d0823e0b4ad314ec5fd58bc8db6290ab7dd1306e32f7fd190dc956394da32569da5a5cde8dc251277c5d487750ad84a7b0980547882a5c989a0fcdb6578c81618247fe81660809fe4de54966b1e8e2057f9c2a1da89fd58f3d6ddb83d5e5762095faf54793680853c10d9ae45f40c1d6a4ec10345a194a181e75e80ba0605634ca9495d3484b136b779d8f9487be545c355732424773f5cdf5728fb4a3b7b20882338b4d6ad1ff646c088e1d5e0fa0014f5d9102d585071396fe3e20ca79dfd79447b91d44e6d0b6b24dd62ec881fe7b1cb970b4be410cae6f6ffad1086ddff3d0162d495d9db98dfdddbafe5311978ae003ebaa988cdfb85da18963d9a093965aeb9d1ba29ff85693831061643f595da620962040a345f52058eec3d8d6c00f420cbdd23a5462b61211cf6b05cc5ddfff18d5b38c10fcacbd493852c5e302dc3c7e6386d21a1d396884639195a8995d34a386d2a8fc56fb8779004380c867b0406023d0c3c282918c8e7239cd6ac2a4a4a53aeb788b94821753884989a22f1c46807b2e69e40357976a8df14f94f4694280acde41a4269841c5bbce71ccd208f3c9ecf49f7fd161328be27b6725ca26395f8d9ef069d158072c9442c4865c258bbdc8631e69944d61fa6a1d24416df15fce2ce8a2d4480ec9656da3c08398e58efe1ab83359614a96d9c3a4ccc788ec7775a0e909d1fecdba4474dc4cca607134cc3f45901597fdcfde422ce7ed41109b024fcd33f059183add2d051b5a4d7501d048b86a0af09d5d40f85aeb29c8685d798c1a88495b3d30c29b8903d028fa1cdf57d2bcd39e37aa0e6701f95708c0b0cfa67cf94317f4e1eece05105962ba46fee0e5d00da206ac3119fca02d4f279b167dccf8012a5088747c022f7d74ed1246a5ae18647c53cca0059d2006e44da8ac1b1d16ca88b3a3f8a0ae1814a1f687c3e6a6015fa05c1dea4574554c15e2afa2fcb170074aac80646c667aa788758af353004722c007456e298484ef309deb3c2f48450d181bc120c6c6f35151030e2db86a77cb53c7a870182affc07d1331d7597cf14e77b5dd0797fd85018b5de4d7838eb466c4a0c445f3daf6102e24a0c6ef33aece0c5c2d36007ce3a873d2db35a76d5db45e0de41f2c568a1498d819bdc11bf76137ff25f25e54bad511a1cac825efc88f248937fc019ace8056a62690f3eebd39c3d121529fe05f454ec4b97a670d005584fe75d55fd51be52db13993ce6f0cd80920482fc2c74ec4f780d343b0f37df8a6c8099660d8b7f4167c565dcf403b53048b486038016d82e46b23be38c4a28b97f729631d0e695b25f436adf25f832847419d54756da8211c8e3beb2c070a185d157b3970685532b56982ae22ace63c93ea8ac58745025f4028d40e06855670ddc36ead1f19772788e8b08789dc206bbb24a01d47c7226456327df0a55607528aa590270af8b62a7b169d1a9235d54a715c0eae4b04d4de25dd570339843d30c252bd74fa3ff4af2e5fb018f4c0f2be6addd165f80b82582acdf602f605502ae8b088a5b1ca5627f7ac7f511deb319e46b99e65464b9a4144078a77e1eddf41baa20d4fa9823bb194dbd4fa1b3fe24a61960e79f30933597b9c2c8cb40fed4b4dfc6015fb95818b309fe9c2e7ab37af4e7e1a7a2fa9843138bcafe1281f0ca4fb98e96b123bafa9465c7f3b5325b1b289084b2b3d1bee4a86fe12888c772fc3c9da2a7e28d0eb328ca0fd348241acbf45418f5c92f3601b4136daa518325d4ca823a80b7e53607ee54cb0f4574257c2c941efc0afff4a7b07e7bcb164d7dda2f1d941e1071c04379c803fea8778b4eee33447c2f55b98012fd997530c167ae91bf7d2619f1f8b86982f736315b60e5073a47ba11cd99f202046297030349ac8c031de249b2228c687f115f340f944eb9eafe0ffab699340749651814899cd3c01433ff81d75377f9358666e9c06557a397b28bbab249f79751e882aaab73ecb7d5acc8857a4cc6c279520f5aff5fd426f00f91cf65da4005ed6311b72a85bf799752a211499c1ecbb9fa7f21b4cc2c2940c10d35cb5bc22b036434f95465380dc12e87207b7a396f9425359033010fc7eee52aae22f772ca066ae6ab20e2d6151bd4c4f5c928c1a105fe146b4816db294bfaca758141f23f82d34c43b92ecf1e58ab61b477965e41b0a46803bf90228f92ae7a708b946b1652ce3bd1da7fb4217f254515090af53771189d1f742fd0fc0c35239d624a0aca41a95b8214aa838985521228638d1a815752baa95f7a6824cd2c8f7be52a0267a48467cefc007b15348da0d4d6470d3654168937c558f72eab22c4047647d2dc75581cc7d2a38c4e80a41ab3cc120e78458024f2b27b45436c06e7e5d4c21b88891f96bc4156d79ee25ca6e295e97eea0e147d4b34752996ea52a93d696f9261cf18ac9f9102c69c7baf7140d63cd8ebbdc50061906780ed8c937245845351683823451f0d124e5dea6b0c36c27d1df7fc380362a0f224a3814891cc92e824052699c0182a53135f7378afb8f26a2c008944fab910613dc3baf95f417ead99aace350357812bfcc11796124ca7abf9860d11ed6a040789eae6503f83890f515f2d588cf509515da50d6ccd5f6d39cf8eb13998252cfc5b7fdaba143306d8fb635e1cbafa8dc007108549971b8d7f273243f275e333bafacc18f046076b5a2ae53ef0127d3cbd2dd1fc2cd510b19e2f5565fdae61062ced5426ae986f2bf27a43e3ef54616c9e1bf6b1e7bfc24d8eafc20d92188f57bff284d8d7a910bc25f947f19bd53df606c4cf4ff3c0fc8cb4cea937372726ad6dcbf460865c828cbcbd9ef974cb73b561a71ee72dfe6005c413f00d765cf1c92f207bb419fadcfa6355fbe829a340aa6e8702ffd321507ce3eb15bcd6992c83b269e497aa5278da75f64a4749e507ca67525300947625a8b93cc258090096c3fa388ba6899b9bf7b4c14f9321a35a091b024ac8c0fe04f7281d847ee7b5d6bed05f39c9c34e16a5a0a67737d85825a58f28c0fc8bbcb3e082fa62d19d9207a0d8cd2da0968047a08e269485690c2e062874c4a0ebbe6739a79bf049e0c376cb68a4a2b230f08e18b836d965f9d2b71cf527c060e23eaf971ef92dcada63444be28a98f1b1f81b57001bdf48c0ee10cdc83c5ba8f430ec363458cfd0e287b69f0c08f17e6986bb720cf042d7c3c077f7ff66e3e5a6dc3f605fbaa079ae52e30d282c24ab0231fea73b5924d372a2959cfe3bd6e84dc30250172e61da5690569aff37d5078a21b4a3f9db88eea86b24082cd0588b78319ebe4979087768c9316d0dd1247872143038ec163b21dc4c9f87238fd98b3fbb7da6de0a2e0cf3bba4db59328e9802435c4e19802ced5487f5388785fa26b782ee72533bc30fa81c261521104b1d064c700e773acf85c96e64d5340705a4a0df9b88b8cedb3839553d0ef03d141cb763f6f98280e5f920a723fc80225801290b225a4118fbe094bec29bcf8f25733014ee34aa420e1417ca5c33d9f0c43b90fea1f0a562470c74118c79402d36e2a16daffdee3f06abb510086111f6084b1aefc8505052f77ba7f431bb795516b0bf9bf919449cf59ec5efb1ee16d9520ee8edd99bcd2a522bf0edf6d801403578f7d9530b315e967083894f86a13f46c01e4ca5b5ce66fbb8292081b4683ac602fca5e60014b9c28032c1b250d6b04dbb9c4674dc817906779dc8b82aa9fd2071e5580df1650b823a07c77bbefaeebb0ecc6c2cb0724d4a0591a44a64f508a7f7822a0bf5513fca257075a1c3c32bc2e9dc0acef46e1d4adc09eba67952efee33e11dc3c1c3e50661fb60cada731ba1e4d434312ddb402219ffd6eadfbef72cf1073486e5d6d96decc56a63dbb488f88e27cdb63bf6528cb0f7aa944f843412845b6b9c4132ef9013c5deba6f358c169906cec66cac97c9612f2555d50dbcba6954d6eee64e7772a54250c80254f2356ee5d3aef5b12d89aa6160539eaec7887a575282f1c9f43c5fc0ed503b240449a9ff0375b38e571ccb2b931d2074d8830d308e0cc04e52c71daa6bd46d0b68e2a441e8aa52506769ea6af483ba11ce7799e662e0e79a326a674877bfd54caf10ddd8106303f33a5c1794120797ce1366bed7c7392a4ecf87e3b51affa52dd4399d0b2fa80c50102d9ea1951a6b5b67b2b3d2166035e294059625ce4cf03e4f62ddb68d5639df5872a01c92b6abe2ffb91e9e829f9e488d3437d255c6d389e63369c78d045add220120b50d4c134508344a10f0621e6cbdc831c92a4799106974357483a7ec1678e376e6b69fa87782332e71168ce4f1c288030f8774497e1e5fb19742111a9297f3ad44a39b612ed19d0693bdc42036c3ba3d98d0f73095942e0a085c816c21f5f0fefd239bba435186e1224b4d962e6612b50f0ac6fedb6985f9d462766c8d520943d9557d717742509a09fee730a3671f89fbcdfff34874838cade916e7437f8e1a6d551a5c422bec6a6f2811651836fa21c9484cd08307ffe8b0e36485624e943a90f1fadfa69955cd2071450ae151bc0a69d05cbea5327cfe0abe22c61aa484e0a7055de128b7d19b8711da87cbf6b08c77fd60ffe931b0ad05a01563f5bb85700f73e95205ffeb27c655e07a77f8c262057300812351f081b88d06b9a35c1679e4f389cb83a3245641f9d4775e290b19325734c7055428b95b530105033d1aa54100b77adbb6ec9d3733dba2974e50f33c6221034c38e0acc55aa1fe8f3acf3b6c43972a1ac20c65132f325e3c4f877b452d024d6f9eb7f1ccaa10757db62ac041cf11075f159823dd34c83d08da10970d89cc3fd922b5cfb458dec7ea9ca57486c8245fe6e71dd2a406a57845940690e4be83f15960865cf1fe66858e092b07770fd571d84cb9baad4032d8a67e6ebbfe94b237cffbb20724595d6d3996679e5778e37114b18230728bf518bef114c7ac30130cf25392cec700a4378aae18693ba1b13a30e30f44d8bcc3b88e1047aae36f5603e98182a0242a97111c60d680800401e80d6cb008db22a90d3879909f7595d18a07acf9273f14f6c623779e466fb3a12e39c6c4c212330ee66f565d2dec3e6126b8eb979667e689ce09682ffb2961d829c2df8ea8dc59949fe0fc1e6e8bb6613e9f12ec4f60163a2a2815e482c851ad5de5f1ed08552b562185e1d4ea1f2826a6c09ffcadbdaf69c0aa8287124e4c3d6bbc10b5c2b538d7033c76f09f3b7f1021308f3e24b323655f6838a6b2d7742cf3698970e795c9c4ebd66c96956ba15daed47975cfa4cc1e0295ef09e0c6f8d7f32c743de565c3fe4133f6a8c234a17933212463ec0e05c10112c89ad7134c50aa79038864cab4ec01b837e3a9767827aad9f01751505ae9e2c1377691a0682d8bcc9039c69e7c6a44c80381995db5ca998aa249fd7d9fad683ddf33e9be66df852dbbfa3d20fb31eb98ba9a5fdddc0a4d90e1a72df0b0b55bb24bc2dd262d66692382307b7b1da454e88e75d91e08055ecc48e0dc404a6112173fc54ccaa9406c0b5cb85404fcbaecd1b378c2892b8c59fbd16fe3372b93124ee196af79b6ee2fb9526c07d8af5c805052f09b554fd3210f6820c2da978eca22681eefeb020026b6366336dfe0104503a11f6a0b1e865a08cc4743b8be5965676b1750ce9244d0475f9b957f28adc5ce7d32755d8d232d8d68bcf5db3bdb1cb38846bf52e8c60e8b21e43f7050fe710c8614e4ca8a41bfc25793c1cac2f0fc56e291367825318fcee1c94378730142a28f971bde6e12f6f1ce7d0423dc1d5ca15e83ae9d9fb96a5180a1319074f2072ddbac9a2d5e235a4209342865988167aba27f2bbe7a146a73d182d09ad082f56893bdc553f6023ccef5c7053c0a9c0d1ed9961074ca6e354aacf0b45f1eb1bead0fc71873f27fd31de897bc5b07865a6c418df5c3f49d5b262ef74fa8c125ae42875d02aabad32bc416b3968cc8300b1dab59044fcb55880a3d4d8e57a0a4379b7ee6b8b1bbdcaa3b90b86b234eafab6b7a647346ac52d55e4f797d883c73084f5b7baad92ba7593f0a833605d31b7485f8465672bc681e9ea1bd7d1b5c84090896005da72f898dbc0c04201eeac052b8194fb4d8ccbb084e42a5d750d455aafb43446ef06b287de41fc078c50fc0759f28d0e36df1b9ed06bf7a20eca85511cc50e460e7a71b09c7b20fc2aa77c2c4d122277e82b03bd78e995190ec030f90e067d30991b92c580785a87b4961263014938235c2a609b20782af4597502607b0f3e991a3d6d2bdceb24123f7a527771eb1d8412273d37ab90b49c3fc55cedfcb5fa011dffc161c042bf1226843924c6ad112d0b7e7ca288e08538c857335791f7d2a01c0ba45d87c10e1e2ba08fbe0f3d63de5d7e6735b8214848359992d4113114a77a70b3d005503ace96f24dfde7057176935403333061c3dbe5f1bfbb3fbaae6830030328ef3454110feb3ed5de6dc7fe23948c49c06c5d4a7b6163446f943361455af1b47b2046a2483d5a10237c6def09c51ed05c85c47896163abf12420faaf388ff9c8ad92814a4a680e985e096cdb91220b2d8079384140fb029b18a8f53bffc8cdb2c42dcf43c1a579c93fb10020f96584df1dae5710555c1c27aede50e2af538d74fdc6e485f9d8dfaabae45571b8f7f7797904a0036679896fc3ea1614c665d75da7068bbfd517288cebb2f6cf68da70634a9a626e0459e4e1c61e08df7d16964c24aecef3b8aa3b97a46835b889a9d6917293691a0a6cad1961d66a028c4460e0fb743272b591f0a17946be50ea248f337e6485e99b1a495309d03eeaadcb5a9cde86a24fedcbe56d84a8479ee7a94335c2214f32a9b8b6294fb9a2bbe32139512b0d22eea1486cbe3b3b1117683f92a0c4aafe3a4223cdfd44556560475529b6a9b1952338adb4a4c5a38643667537259d3aedf1df5f4aa89cb0320b79d6a5403436ad0feaba7b877ab68e2238d0164c802d72486da5e8748622968a0a056d5a332ab93c576b6ed7ea83c4cc28823d24322e1e44d4c4010eb23911afa89a57238407a1efca03673f6a290c7ab236549767c0aa6a299631be9e8d18c4538122a8d2afbff9179c730984ba04866af3175892a3437ea117302dba092d8e2b86f40cf11ee2636e36921ff2b7c2f22f76edad328d43d5b3cdd7d3f3719d6549a62da209c56081db60803c0ead68489630f5612110b3a711d4e6214d34e9a7662fd983db378effd603af83df2c70093db7e86ba65b3a7bce3f6886522e033f49813dcd107f4eb2b2da7b06228b8d35394725443032499ee09699517b8e4bb3bb8baca7f3117cc29d760b06f5d5167220427f81eecc8caa466cef034a69cfbb511040d46c3ad03cd64d346fdc2db466f1b2b7538c81d99c11c76c98362d813174f1eef7fb3caaee1c9373cb764bb9ddfe7318aa29603be766b56affcc27d2b6df13f6b23612413e6bdb4dc89652ca24e50e120bf20bf30bd8ecc00a2cccc056eaa3d80f22585bdedcb951bfdd442cfaa2a720fa091910bd032b884e824289672f8ad752132ad3905679b18650832236dd8e89652942951f2b2b2fca6c49119678624246c44c18135d96086955d8ad5d24017d8bb1edee763357d28a42bb09d55a30a2a350c5af4700b5f52e0077c905d460cdb6ba44e26ebfea55012f8e56acf406597fb1898a4a220956a71b0eb5b87b2b9689725e34bb359bdd44600b6b5eae80fb4a2915da1fc53d158af921897ba5eaf667c736552a0dc9bf5e5ff0988ac1f18736785ca94826c016617142eb45b1ed482b8e8add6ab7b6f48ced39b2072b051ba6b7da6e5b872d7c99f2c3f1ab894b9ea238848dc661b9d44d4c57774bd4d55f0786105199c42d3c4f7f1d012794f0c54cce0fc52f326a4b549491e2ebb4c75fd3575217bd5a9bc7a1e8d8b435385e73bc95c9f6afc4e1f2bde315772fe2a3a1cf8e663529ad380ba8bc8ecdb106eff55b5317c9f019976f27ab88c9e162e63abedd3d8e591ccd61ceb82b0ede25f70e9880845a35e570e997aa6ad8296928aedd6969f7528cb1ed5c33c5dd7bc77c47b1bbbbbb292ead660bc2593aa3a4389cb516687d1977ef3dbae588732abafd59711cb6597158b79b5899c6cff7467134eac5eeb6b67adb6bcdca83deafb9856cbe42388f35db0d470609954339dd8e47d4f315fd86f945bf19894641eddd460ed850024bed935b572c46a86975136a57b32dfedbfd4dab98d00ba11766d211100844f2e0c1837ff890640281be3837a128a8175d74d14517cd5e74a128d16d909b589948504512aaad569569385e55a6618d72a43a59123d681fd65a5b24a1d75485e11283500baa175da885d8000fa5cfc7617b15456fb17ff5cbaef5501755a7b4d20ae4d666dd556c91d2a6b42d909b588ea3cfe722594170132bd3afbd296d1654f85bc71aac7d76b4e276f6660e8d18408d18609d9c9cb85edc7a51abec6b141b33a1961d5c12619d3af5f0401385df8b657b7777db3333b1320dc19c913d0bf561e07b167c2ffa2f282d288d039a9570993e750022040ed310384c7319028e44313e5d11507865c291289a448030c2082308800412481061000310d134c2085157845e7c1e5e9cd00b8c31c61977b354e885d08b219d908be611e18202f57041816e3e5c91756ab45682b1e166c3e1c682709814c2614c5d8cd95f69ed709451621dc63c1cc63e3222ecc3512119a5bbf0912646fac309b930938e80402092070f1efcc387243303711988cb15ea83070e38107241a28560741027e4022be1846294d587be0e4084e80e3c20d142303a8407a5d05150beca5745726ef78a24a2846094d4bdfabdf56b8a1b89a2a4422e4aeaa218e256dbe96f88b396d2fb1bdada8ff8fbc88dceb7d7156c7e6cfb712cd8a77478df3605bbd9a86e42422f5a74ebb4d65aa229b5ba79e5d1a616db6e014d7bd1a7c66e5fa6488d55b2af3d8e9549fc7b6b1257c78d71027a8efb0d818fdbd06454c522e7f033dae043e18bcc21ce578ee6d0d7bec16b17f9cee73917db3487e218b5c2fdc42d4a560e3e1c8f7c583621f97c74a49fd84a417ef4e3f013ab9013f98de8478390434a211fd22a21a75535aa3471e6c5910a20bdcd201c0e87ab51bb9ccf57b1ea559193308b442fdd27d64d62976653b16ef76050c4d1cf040ee609f44ba7640282bc87735a459f2847e49549c889a272668dca41414343433e3434248ebf1588639f8276d26f41418ebb8965ce1cdadc58afaa909049e4888353401472302f20746452b25652dae0467ee41d1cc90824e7e01c381c9924900c3989111cbc8349628903928925b6c4c18547bec139f805363807f302467e648aad2492a579c2d30637724a9ea3390cc28d8edb290327d460bbd1cf840dd4b46625e3bd10437a9186a82b4ff212c29bcdec2480669267738492031d6892007a09e1485d5412cd16908c08ba92b700e2024a0ec241982d04954c51389a43910c58c971c8736d73acc1dc2ab06087c61791b33964412c4b5fa1f6c32cd8fc1b96b8fa1ae936cfbfa5cf223c987389285fb38d62a59377f47d3687297ccd842a3ac006696969655f3355f0fd90cdc7b1368ee3581bc7b12c47a29a11ae364a80faadd5702603e8353d7b6d74a3d1ec8591e3383a398e636d1c753a23a3a51a3c2a81463e8ed9f4d520d1918f45f967bb3f06d8ccb16878c2d1918e1c9688f2297c7981b58c6bbe1af6a51ab479c65d1fcab6249b69f3d5a0ada49752520249fec1ef83a42460d28824073ad0245142a8947f46461300e14a7e010e3ce846d947cfb59adf967e2d00fd837ff0fbe02d24f907930408bee42400e01f78f067843de8a250e967844da30924b9925f00e841d36c21e84a431efcb50082035de9d742d0952600004ff20d80e0c0e00fc908101ce84abf160060bbd1736ca5d241fcc41e7f439e2dae6f1f98244a084920a9f9079ee44bbf24affd462c799249a28470290f194d40c981be010e3cc9c76e0226196d008427f988a0034d1248460f8ee608109e6492a04210439e9f3ef02537a1ae40ba9227f9063818bb296934f2249304129b93008003cd11490ec22401822799632bd5ccd29b94c0503672007dd2e993215cfc111e78072ef6bc3cf807af423ec283077dc407e7c06dbf14fe5223a73573388eb51f8fe246231c1d6bb8b4fd727e735efa900d37f4233b6792741aaa885c2c7bbe0dcef323efe0483f37c75acd7f4b22aab8458d1cff86293c1649078c9e4d23ead96bd4afdb7018877123ae394ce153f8ac1bfd26920cc079a69e6d5e33babe01a027f90640b892d786be1f7b348da86974cd09003dc9470041d43cfb88bd3cf23bb411d57e46b59fd191dbdcc874a29a998223bf660a7e5e53c1673355f0bdfbf8f3d2cd4a3a60c86ba6ad413787bd1a4432bde743ba8157fb8d3f9ecd47cce36d30872d3ccf7bf56ba6ad977bd9e739e79e2f85a7494a8ef35bcee675a0e9d4c7df06dc6fe8fb6c747d4740df4012d0dcc0759f973633053ec73e5a7391acd5ee30851f8d70c09fd899e621ce759e7f43157cb7e6d8a94896a86df09acdaf8f9ef45372e00f84d77ebffb1ba1e4496efb4d40c91c7f234098d487f39dd104925cc9472499622b2999236ae630033f2c1d67aae07bec1bbcc4f47dbef27dbf21effde88f962af8de842f5df71ba6c080dde7fc96fb0dd546157c23cd8d3e348e976c58fd6bd987c1601ea690343ce16b496e1b3330a6a005544c13bfbcf910253309c26fe957fe16207e362de93d2ea528f4c04378073e2c3d3091901ec26c01c908a027790b205cc93b305b007a520a10a651cd8346d983eec153006be6881149a691903981a07b70a36c5e20e81e8c2ec0817f700efc8327fd820efc711084cb3f913c8d2690e4411f91e441b193bc668e003a07d981374ffa8942a007f2273ee94b35785b7ad281d993b267716cccd9ac392e974248f2dbcdfb06fc25fdc4b112569f9d26208f2a94b07aebf767c77e7500612c5811cbdec452dc8ac1c963bfe469cd610912777416bc66f39b580b20e412c02e0edb718ecd610928170a1540c824215611442721e43710ab08a48b55842a01ecd7efafe6e2cfe642b821891e96787c5abae1e62b5e71d87eab36aaba98a7d73af54a9eb4acf47aa569660adadb6f5defa5a4d87f4432db98226444b2132a53ee2624a48beea22f896277fe318935486f4df670fce1e8fbf2010ba8c17a6fa5dfc4376627608958faa0d111073f41d86d0e859cc3efe867f4135b49e737f27782d0ef017b4a9254c002dc84bafb51f26c1a9c7eb72b6ad36803467ee4233838924902493b07536ca5a2ec6d8e30f2233f32496c7023b384b0cd9c472d6fc83efbaec7232222daf96d671a2d40fc9d2b40fc9d97f8dcbf210adfdefb15ed7eb9a87389ef1f0bf77d668f5783b5dad8ce4de8a17fe93bd23350ea4c71c82c7fd7857ee3937701d54fa84c628fc1cebaf224f11248e891a5c615dfa0943154e8b80984020f0d464d828cd022e4790380a7069eb117acad5db3d88719a2d2da34b101c3d39b2d5c59396badcd555694480d21e505ec0e0d436cdb262c28349a74cd914a33831e7baf284308426ef9d683ceb787906910f2ec1a5808103f0ca1042c7211c5c0e00536e74f0a303a5da6c0eab47101666606cc4e90c74e818c7d75132dfb7a5fe9c0b22c4b17a54aa21297a50fc5345fba58fa58998cbef4b2f45d650afad2c5da94adca12a7258cdc9271e6b155d4d98c2b345c3c76fa63895a09b1531f5b7ea4bedb69157936c64e7b501ee4595a04d8da2ab7fbda3db8e78cb5d6ee20cfbce1e84b095b1ffc50e4c227cbd5560b2d5b2ea6726cbdb0b20503c6569f1a1e3ba5b25debd40c386bad9d1a41a052668b0f0d1db6ad9814a06c0a6da1e1786b9de610b1ac8c6e84d9ca00f0d6a9140f2f5d49d6dcc121e38acaf04347370e2820bc757aa369082f7851537505650a9b186e7c5da12cabad3d35802e44691ac566f196b09ad223cb081a1e67dc08b19bc7ee5700ed18b30d5a833c6f154a434c21e4071a355c75ac6ab49983671c6764a751b4ca050e644895f00214902669d638a9226cb26f29b0ef1e3bc7f0e2a5e887401e577c0d12ae1e7f1e3b85d1b8e2367e9a3c11d2e6080c363fca48bdb0227640f1c243c5b75317585467a4b5d6524a5b9027566aae1d31be9db230ca410567ed0fa4b74e57649a860918212d84c0b891620d0e9bb596aae0a242d1e1db690a6ad54db4ccea6d5b317bf5b171ad5d43a99eb2954882f8d4b35314e499b700e08747df2e52f9763b9668beb39a0cf9767ac2b6cd3acaa89c4c4d64319111e2ad53271e5846939a652de1f3dd5e823a39f9ad256ee091c1e789c68a33546a52b0c8c382cb899b1ac0d26ce96242541b6f30005b8abfde428582e1ad5beb24f0989da727282e5a7805a283060d461ecd8a766d5003f2b45f2b62f876db4e831586635bf1ca0e31f8da19502d42c68abe5d06289490c2e4c79519343c788e088b5ec8cb232fe4bbcae47b21070a7988cac47b212121dcee88003f048a0995493c510e083f14cfc43f4fd4060d5285ca63b7d8c7198fa9c2acd439127625cdcb9a302c74660c09c3aa612a2cab4e98565758161e8f3d0656946287010be429244ad58edcc15a32864c8ac7191c694135ea147730e58e8c36497ef8d122c466721419ea179cd04db6a8a0a0a0a0a0a02a58415d5c5e82a8980f0a0a0aba41414ea3ea040595059505d5a00eaa41415b3c826e4141410e0c86a84ce307f95290880f0a13340655055505050579f9f4411fe4e69e1f5d409e630bb65ef8ec36fb0ae4992d0bb2a05981b5ae82262d3604c842f5ed2a7400be3d05e4d9bbe1519258c20f4bc072440ccb9f2e2c305945b49cbab4803cf6a1d01dac312848813c83ccde763d400625c62606335e5cc6f684c96727a032415b4aaf08e6c7981e5a0235d11356c6cf8ab104e479bbae98786b9d0456ac818c1934a7a91a41609041b33176778f803cb39531a5b72e823ad65cc2c60a2a534cecb0f2c7cd983427d7da317b08c83383b5f9eeb222e3db51f0f9ba5bab8acc8c941c33f870216c31dfed215c7314bbe6a398aff2112b335b651fc5dba5383a08e8ee081882aaf8610825885b5c4431691e8b328872c81f8a67e29fc71c70e31f521b948a0641f3437a843a11c30e25c863ec63e9f3605794171ebb081316708294278f3d0328bc79ec29ac60f6d867000590931f2825df25854995d463b16b8a9cc7621715afc7625795198ffd0358b66d965a52667398ab3ce0a603d4529a74830759961ce87a5265032648e00c862f26e2c4e0a325247dac4c494f7a59e5c9271d48929424b954cce8e0b16ba02c9fc23045cb8910fb98010c902799af68c36878f39484cc89a7a8306952c60b58803c2d578a3a239670382d324c3c0ee7409c87a84cf671eeab381c6eb83b7a3116460b0c2327b4c430f3d82be0bd2842ec14980079e24c5a2e3d2d6b9bcf769cd52a5a3debce2750231ebc750990a76d20509dcd8a664640cb8b15c06f8780d39bbddd6eb77bc3b77bbbdd60e4b8dd6e3707de3c4465eabff99288bfbdb90ddd6eeebbf9786bf1c2dfc8bfbdd8f3d6fa03c8d35a0ca3eaad3bc05a59e1b4823f04b6789295a5c51e17545cfc7971e5b137e00333217606747dfd70074536001653df2cda7cfb027ce388a41dbb02fa2794a34c0079deaad93836049c8c5579414fd4182fc20643e4fbb6391c8fb884fd10186218420929a8b4a478a3e2848a2e2ba6b2ac809305aac9633fc913efb0124200094f38b6b8f9f603d42ad2a006131760409d31ebf1858713610dc593b1a718dffee5bd5259a3095c5b214c6c613a61e244178a168fdd00b86f5fab124364209942a30348c595d8941f3ca578c1902113c8cee3325f5a69614e3d9cf23cf602584bb1406d85c9a295c309192f55533a0274b583f9e111201b5c80cc7c7b19a8c7b7978056ab68244c9c1743cacea0fa74998a3100f2c45e7f607c63fd09fb76124adb3c353ae600c142074d17210ee353c3501e813caf9f2f11b59a54777bf9c3c937eebb9b761ec40168895b7c4e74e0e3438b0f9b3e3d1e7b70a9cfd66317d127edb19be027ebb1337ded9841e8d6f0edfb7611c8b3db628cf10e28dd8d31c6b843d0420bd37beb02204f4b45290094f13231870da02b38948b0e3d01f0f3ed16045bb6b100070d5ad460a182438ab0bdec2f74b6befb5aff6cfacae1787fd56cc96f5905f86108ae1f96f0d8c5a1b805c3e318e828d1ca338789969e3d5a7ba23c76005434bae3cc0767551ed85aa9d5d4991331312e9c516de9f167fc31c408bc52803fdfde41452b009c175ffebce171228b6a8171ab67158d56342b02f9fe761015ed0ad3f03053b503899c2921f6922262ab68f56cb44ae489b5f0c40856b36ea24e15adec269b9313bdb62af5c34af536176bb44ccedb52d8e1c4690637629c641082fd90a2eda9c1569fdee6a2cd36a451aabc4dcc0e9a0b311a6c2cb121fcfa210583c5848dda9ede66f3372dbcd8a9f1c7cb0c3642af1f52a936b6210d42a3d06c69dee62818fd502ccb33c3f643f1cc56d54ad416e5409bcd97ba49294f0bad2856d850b910daba7e28e26d4b7ef84371eb6d3772a8e0e395278d4717a18deb6d5efa799bef2a13ee6d5eebc2e5484f8bc759f438d973624f97c7ce41b0d6018078ec1fea57b33c707efcfde81ec8731c228a7171c95656797a7cce0e24cf3c3601a08c969370883de7318f8ff348a3a89f55f97b3d893caf3b3d76d356d54dd9caaaea6c0588b7fecb5795a96279beca47acaea89993d30fb199aff2911aa4b6a86eca52b6283c5e217cbba38d554f5d48c8175694a7ad5576a8556f73ea265ae6262a0e1b2b19dccc00688b4a868b40c2238443ad38b8f88ec813e77e88fbbe53e5bbcc379e1adf6e544a95c831a44fa01b73b05cb1223c73810f8fd20d70beddb61735a658044b11e508d40c272a1459b4f4c092a3a289dd479ed88e8def31dfdeb3655b3996edbe664012327aeab4d001688fb0b5bed3547c771391675fe77910c57c19e187211e9710e687e216961c378fc18ccc110b4227cf635f125127c96337c1c4e32c66621efb4e4c0b55165baed2c97192c39dbbf3774b75b7c04496951898f899c186b0b3beb5fc08f4ddb787c8b3715e3fdc85f0c323e063ff610803fc3084c72eae78fcd8c752c9e32c35e879ec1e2c92254e9ec75e8ac85756bda73f7d86c4b1b3050a1618a931d85aeca3147f98adf295d09612be3d488a4a953a8ed8e02839fa76f252292d2f5ab0fd6be2cae6687dfbed0540660022c50415254e5be29056623e5299b05bdbd7ca7878f9f6f11adde08dd317af2d2960c2c431404e6a425517edc3b763db378c9434585ddbb49a8970c2186163a38e1f17ce502c676ed65a9bc7da987298a5ac5eead6cc618e92b19e0ef397358759ec290d2acc6fb766d64ab46a253a76d30dc2d0c90293468632648446535682daac69d908a6a42efed87ff0d6ac3235a61801278824d0c752ad441d3baeec2614ccf023c6159622545284d87d95895e79ecde4d4234202fb898425bb246883d5899a895c75af67079ec2154a6fcd8bc2635935383d483f694e25f39e5305b493df55c66453d8f759328b48a82f535cc644fff0d8f27e19b9651a76695497c0ac2d7dbae40a83617cedc44b189fa38be388ebf749ddaf1ebb5f792400e0b2bac30038cef6f0675054b6d076690811aa4e30756a65c40b3aa2eb2b59736960e6b94f8ae6d0193295d76b8407da9a92d72be491a49570d16df476c55564f73112eca454545b5a8081775112e721a95f48349915051912d2a72148a8c8abe70b029b215151539b0a8a8a8e84491ae8816d1a2a2222fad7c519167a9302dc01021f450827be8795c95e5b10f188f7d94f941e4b1b7912e62d6595aabb97a870bdf59768cf198fae2a1e6abc78f6fef1770edb1b7559990b556ec32e678eba5cfeaed17959fb7de448258871a1f3a86601d5dd9ca91e26baac65f6f2105701184cb53076920e45954cdbaf315343fd75a6bfb47fbe81c69be74387d7b5759dbd69af1620347c89c2c696b2a8bae1f65f7681e95ab0330df527272ec70262f2628d42431b373046aceada97aea4b2aaa75d4c8a49ed29d6f4777bbddaea2fd6eb7db715579dae576bbdd6eb7f32a4665caae6c57b6db8dbb9dd7aa3d3ba1dd6eb7cb3bb32958bbdd6e5777bdab3ba7583b3bbbdb6eb7abbb5dddeda450ed6cbbddce6c67b6dbdddd6e1745c62eb77371e7e36eb72bf2ddcefa6eb7dbf5d90db31412d8fb7cde39c8d3e7f3794b91a7af9a5151f1bd9e370ef2ecf57ade37c8b3c735a5cbeb74de2e90a7cea4e5a88381cae975de36c853f7a76b90e7388ede34c873346969b9a40ce9197909ab6c4b9328ef28f2cc1c44f121862b4a9e6f6f19dd31c8b397a0b4788ca1b079ec0da3ec17540cf0d7db45b7e07ae2e3ed86b7de2cc8d3167943916751af20cfddd5d7c8ba8996b17011d632a9b03534a540732249e827da28c8f382e913a3bd5268c6db26b860f0f1ddde4ed4ca6f55814ad68fb426705a68a92b64a86345b50610978d2e1544585c4a6b5aa03ae71b10a525bd4286e98fbd7e9c3c69ea43a91503c4784cad21abba31268553e663d162d8932f95386dc6703141430d9b274079463d799a1419e10cc893c56346c21d9a29bd7eb49476cc9880a973d7643a5c4c907ccf19edc5b294ca214f8ce73b4e73f5ad014885d379843b356081b9ba52e40c45a033ba321ab8969ca86f984c0122c7888c292fc011e27ae2b14db4335c39a932f4b9d7d618946ce1baeaf1edd50d571229949250db502e2552bc923514ad4496a812111155a2269263f6238b88242222221a89889c62111179d93042a42322226a224cd44444554a888888888888881c05a21e6888868888881c48444444244684238a228a222222f292cf1311b9ae4397b76eed8f1f6fbdb229edeeadd735e46945545931e3e3869a34e4d93de4fce876f48a863cc76eaf67c8b371bb1d69cc78f180c1ab470c33be1af23c958d5555ed48f1d96df65a863c73871460869c20e345b525c25faf63c8f38a7f6e8049418909439e44d65aa17823c66989963842985413726c205a879c305358bebda6e080b1f6f655c1028a112979820871529dd0f01956fd7204ccb14787906ff7b958d0d62acae93a63b3c747971c7ed2b8646badf552bb906796da32e695034898edce6d39acf0b10286253aae94d1405eb6914bdd429e76c90b4798ef2f2fa9292d3e0e1cbcecf31c74cf8103070e1c387005127b8cbd8289638a7c799127874a76e4e39154933ff25d65c27fe4c0da246285e8707454d5cbd1276861212a61ef80d4210977257de522cfa3eba7acb695a5ecad9638228b063731a4d8d22406407c727716c68ab2f4d62b166bdb4a651aac506c9195e5c9c2e78f55b6d6da7aa55a21cf3c82005c8883c4e206171c29aad8b639c2dceeb2aca2627b562d6ab1b9baa1c38f15b32f42eae7b17bd21f25b84c19003c85da9c7898c723e2f1783c51cc0f0c286d7cc440e3499f1f8a3ca7a7e7bd789e8bc31af53c1d8fc7e379a129c2e3f178bccce339c54213938567793c1eeff2784ea37867bc1b8fc7e3591ecf51e826176c19c381224d11386e843c3e58783a1e0fc8abcfe3f15c3cc2d3f1783c2b529078f1b3e40814210fed795e563d8fd723da3dfe12e3f5f86bcc0b293e1cc5c6eb745ea190a76ee7f549da8f6e47af3090e72824f6d8ab13f2c45f61c07c6e325e204e4c58fcbd5e85ca94a2506c63e2cb8d3755422aacc25d77e4bc057335a221a17115a5a404b3620c9824b8558821a947c8932756cdda524a83843901688ac50b7ce6ec99b2aa7d017b6bbd1a690ac4c5adc8d717186fadd717ec98c5345243a680919142474b4fad5a5522e499c5e8bcb55e87e4b6a415f225c6a514040beb7305429e984c95faa327d464890c322f84c1a29527f7c8b408c0b7571f35319bbb399bebe5fa0a4baecce57238877338e7ede48246ae96cbe53a97732dd662462e4773344794f35ab5024e0e97abcae572b44c8e990a1db932678bcae572bb5cce2956ce884e2e97cbd99ccdd99cd3a8145ab93297cbe572395d2ee728243d99e554880385cd9f34183dc084b9cf654d39f339dfd526ea7454997c9ecbe572be944bfaa188cf6de5b63ed733efbd612ea6fede7babfc967fbdf620cf5b068ba9058fef027c7787b548f3ed95477789faf6ba833cbbac6c77f4181862459ec7380c2a098b14612cb8a8ea5454fe229f73988a409f578cf9ec55870f9b61e5a8aafaf344445ea5c893080779e2b014609ec7f37a833c79d8ab0be4899f02fdceedceab8d00d041e254c3c3170f7ac29eb6bcf54a83f2a151a745d40cf2c4612850bc4ee7358a3c75558697107ef41a43147d5e6190a7ef45937d4dac9baad9783bd8daf2434ed615285dce70cee338e62318fb88b14e670eb1e7cc6c65e6ab6c5583b4ba00c1ec83b0133c5ad8fba34d50ae2caa2a14c6b48a55102b5ac2acf081014f8e1a7a057976081d42a4ed09730a7b1c66c204f6aa62c9da3b3dbed4acb5620a325f7e77b8a47d7d7b7db2dd562248591247863576b8dcc939a3d8a9e0c02510906faf277c5546464646464646554646d54475224fa3b44080fef8e9c3076d8f9e3c0238cbd4526a82169b313f7830d1ea53c7472d633c512574c08961480d71a69eae0837f8589976bfe10893dfe0bbca34f41b1cb86103dde0bebac1e1d03bd52c472181e40202701237a07460d0e2247472282a148079827a35eba692da21cf0d6d452fb79b52336a24ca4c9db623982b66b9fb08a5a3f5d6ad753aa76d0f20a49cab5c1c51e473a34f8f30b33035a4d8e1836b80439eb9080a5ad6762cc104adc68e2930e4acc962d6278cadbb9b8637e4995f1013c00cd447a90ca850c439a1e48a91b43a397cb8af48cb0b47b09893af45a9f2356bf5b5a1bd7afa9a85b22fbee636ca4ac990faa1adb241bed668353135b2b2323f6cb3aff5d9d76a41daaa8f7ccdfbaaa3c478fa6163f5d6d76a5d75b6f36145ab793bf597595aad6d54957d6d4be7c3fa55b9888dbd8851ab327ccdc55ac5fa5ad76ead52552b173e6ad5c9d76c4eb55aae56736a5613cf5a8cd5826ab5b64fb16a49796a41b51a19596da45135281cb5a15a4dac2656a3b55ca3b55a951aae065503d6eed76ab513b51a5aade6e594aff9ae32097dcd7d6ebed7731a0379f67a3da76ec8b31723ea89dc12396d439e4444444ec9c893080c46d6f3784ed98c3c9ed335e4c9a322bc38655f78bd7df1e7ad5335a20c6f9da6214febe2c9efdcee9ca221cf9d3d13d5e2cdeb744ecd90a72e08eaadd331f2b43627dcdfdd5f175180b118fbdbe2eaafd3323e4bc9d4cccca0ac3ee736e7740c79e6acf551a4626a64644fdd8c8a2fa00a39602bb8c280a989513015317e1c9d7e21cf512c4341a500fb113e3bf5429eb96b7421cfc66818ede9111045131250cc017b9202960246587e72e2b2c5623d16eb265a86f1fd18a484f899e287ec0ba513a8862d6ba160e479cf98a29a1f024398886102ecdb4b20dfee3bc1f50d86e2c7b7d3af25dbd4522a9ea56d21bbbbbdba9cb62897ad63cd34e0a1e74f16375bf044cdf173a666b7b290672621ed891830a7165ab6ad4d21c90a2ca7316d8094c9e1510797b3c8138f51da00e88b4c201e5f81f0a45161555de161c1fd2923f305e8ca156a66dbda4c831aaa2572769cf1eaa271f85c8d31c4ba4914662bb2b1a3dd0fb315ce0a79e632477e9cbefc94f9fa93a44a8f9dc97ad0f8e212860c459d1af6549554a688bb3e333ce873458acfdeda55c70cf2de7ba3f09901f6c5e70c147ae98f3a42fd048debafdbeb1406f2bcb73b9360c6471b2a326b9ce004baaadd7baf93265464fae16e0f9ddf179a0c26be7b657002c7051caaa9212fd0b21f4e376bbff620f9ebf63a5d429ef74a4d6d11ba16e7ab2f3d6654c9181df271c8cb283f54fed0d0d0d0d0d0ce831f1e9db5084fe4390edd7ba4c385311d73fe7ae943419eb73b4f9a9d9c732e53dc1323e450f237479abf7e4df8462b3fd2c84112658a0810eab4c7ebe6aaeb9496634530d01d7d7b58f0f863034a180a237fbe824c40a3db3fe4394a8dfdf5d34d64ca8ead0f095fae17291e7fddf221cf4bafa8950c2c1a4efe94a1e942a7088ea721342f389ef6a05d2be6155e6062b881a2614d8f3c3ecaf4f07a3265c8942a2fec79538e7af2dcd4b8d0e7efed0206c5cb0d226718971072864b941b6baeaa7e08af1518a037b58b274c9a0f460e185f62049101e44e36efbd97878c9caf69edecc898116321064e0b2b2e6888b9a841ec0596d995b5d6c5d0a93263c80f384884b612796b776feb590d52b49c6d1df2b41eb0597167fcfa0b95870e02b858dd9b02891e25337c5d1942b563684e00c48a98462841ece98a861438c45280e550c1444c4599d80a1f72b2b5b6c415156331d640f97163a70a919212220159a1c93546ec84d8df1b6228d0fc751b2767935aa920c516dad58a335ed408af88e7ef548ebf375f5b03795e3436c8927179ebd68a391179ebe589b7516226cce044457d1e01d69c1b48e26c79225683e84883bbb7ac4b931f9fb35b1ac8335f7bf1bdf75eb33e3a74d88892b24778bdbc51e6ef35a9f8e60c00ac0db1e4c500967831f1c1446c86a5eb74af13cd549c92268dcf1d3d35f88802a44f12241962f8faece6e624b3ca1faf405c4f326aa8105af7d903b8e881a68c8f19235484f6c71f33ddbdf726b5214f6bba25234fd34b9ca9cf6c922e35a958c2881521308c81e3e54a8cd096bd6d41912e4e507c744d29135a1f6fa978496bac1a2f3568fd4d53cdcc442c17f8499203888b2f3432eae478d2e59c645ad3445382191917b133d7565bad44b3283b3362a8b921230c1c1d4fac191be2c4963134ebe50d366fad39da32220d4664ecb5d6b45e5a1a6fed98b369c780fd757bbbb0f0f1d7ad18f2bc39df7cefbd56f776f0468637515b6ee088096fd55f1d28fe5e73a80235a37272be61c8f3921933c092b75d5488bd75df90b7ee5d563079db05aac55bb760c8d352b3ca94cd4b33b5b6b453e4c48e245a73a084b6c7d4129c6952b3173548a1b25973ea267772723a21a45eb3219220be162c36514e42eaa3990cb5098735caa94c686662c634b5890a87d90aeda98f416a93281cab46a71a1497ad2a757452c723625f58525123f52e29d2fe06e0afdb2fe47971c16030e8e29a0ffa0816e8835e7ad1d2e28341b762e419b45ff6abcdee4eea1ebbbbbbbb3b77777777f7edeeee5b37b0bbbbbbbbbb7d9764bd90a7699a6ebb90a7398e6ec3c8731c47b75cc873cc6eb3db2d590b79e67bef750b469ef77e91e7b5d65a6badb5d65a6bad75eb459ed67691a7b55ce4d9f96c8bcacc72a9493397157150d05002c68588b07b34ad6d2df2ccf7bacd22cfdbb7bbcdee2ef162091b174cd27c15e121ec1eadb5168b3cc78be5da6a5633cfd90f367764a8b9127677df6bda2be439dad10a79da7bdbdad15a6bade9d65a6badb5d9bcf77a0927a14d4a3287395be5eca399cd6c4bd36d15f234bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbdd5221cfbef6768fdddddddd9d73d9e514f26c2d29b6bbbbbbfb068f31f78d429e0d254a3765a8284f7110633425dcb8c73a4d37958041c7151960f0d8113247c8e30ec6618c31c6de5778c735030b61295c3107b8629c650bc6618c316e8c718927185b5d60940139f224dcf1c33aa6b5e287950c6349d5aaa42c2018631c85e5985d9183f1186e4cb1aca8c1385cc3358c2b8d828331c6e2071f8a631405a32a2cb00d638c8f2a13d0b13bf6e0b8448a1a572d001541025645882bd50f45504981b39492c955f5c1a0db27e419fc61d095fc16540a063d68d22a2e60e8d245062727e130a83406ddc2409e4129a971f76396323f8e595b477ee442f1a35b27e4398e5617ce0a28554e425ac4e54d931c5cde34c991ab2a936896c1cd789ba555969505cb5bb74d2c13dc73e0e20bcf01073e067a0edc2e296d3dcb8246cc4968dd5ed9aac68ccc84b8a2270bcb15ac1b59584bb2b25a2859225ab304051c27a72451b84f7211ce27255d91f2496e91941b941cc91ce4b36ce5c967b746c833d33e456a1b6afccdaae2e5afdb179a0c4745c69b6e4d1fa9bc2152763df2ed76c81437ffe13fb815429e1f5a01edf7c30fdb8307b741c8d3834751cdb961c7ca1d3321d02d10f204fe88fa0c95c5eb7c90dc1132c3132a2f4cf5d133661fb68a3caf942ddbe3031850aaa021491205061d3bbef2edcea5d078c4c7319b62ce639614a9b73cb29d2c45e870add8d1a24fcde10710b63bc844bc754b65de2b15033e52aafa7cbd4161a34af9d0722bc7261520a2eadbb401707bef95b51240fe753dd2fb7a6ca72a939b261a530433ebc9d89be3d59b661614b137b3a21879d3ad8ea0d5487dd9e7f3f9a8effaa8cfe7c7b7f3f97c3eebf309cd30d1e24e10296e68087d388848f1913e9f8ffa7cd4e71b42e6c3f97c3e07fa7c3e9f2fe7f3f97c3e2f7d3ecf525988747dce6e739067ce56aa9473dde2b8bb1bb42ccb1019d6056b833cadad419e4d03638c31763b833c318e92419ebe3ad6dbb5a44eb6d65a1bc3c2f831070c102cdf6e5f94b66f8fb0a60b9e2f527b881cb991c5e66b5dd816e469bdb80f21597c04fa11f6ed968595b252bfdfcf977e49bf2d377afc7abf5fff7ebfdfefe7a50cfff35d652afadfef0708aaab953b3082d8155b5cd861558c36857d22cf5f5b4aaf1a5dcea34551da136ade9ab0a3d4dd73d523c13ad14e83f2215037b5b48493922e58585839a2e64b75210cd93d02fa439e798b0d1a6fadb79f51ea0f0c3a6badb596a98fe523a24692eff6f18cf54155da3d5b6ac4703d16aa9b6a62ad6b5deb74493a9da9d3e968e8743a9d4ef7d38925e900e9723a9d4ee7d3e9bc5625c5d1e5743a9d6ed499e1b9a21bd2e9743aacd339c5d2dd41a31bd2e9743a9dce69944ed765c78ecea7d3e9a8eeeaa84ef74497d3d574359d03753a9d0e85cea7d3d5c8743a5d1daad7e93c4b2599bb2038beb3049192a79d9cc8b3850879d3ade98d873c4d939663df21cfeec2e3e57f3f6f3be4f9336939b61979b6cfe75d873c7d94071f1560aac6d19b0e798e51268e67f6f5b82b46979d348fbde76024adaac7de729ccca63e67ef38e499b1171835d83a48ae371c2da7c7de65e489e9b8796bbd69204ffb6606f2d489e538131289c8402db5fa7101d3848c16133438682cc9e118ae9b2e3a2bda9c053232c30a193f556cf47931de3b92b121cf3c074eafb154ea07d62d5b355d73a42ca5411ba998bb0355b6647949994a7b536b7cb12115038e29394f54340271619bd1f4193c76b677c4aa78f13243d417177546a09a193cf6d5a2cc58d64d342aaa0c09090909a9911aa99190d2202121213910093f1212920d241209090909c9cb388ff448d7ab8d8fb7d69b8c1db363a3e7db8b6c8b986e1f3bcc0f8b8bff30c41aa8356b1ee7f05a93e6c566cb636f307ca4988863f6458c3c91e8a5a2db5a4299405a697e04c102a8469948e3a39524850b5b3258d4da8b4df1d6bb0b797aa989216c6cccf66ecff67a3ddbb33d6b5615d62beaf57abd5ecf29560fa85eafd7ebf572afd7db31d6b3f57abd1eeef57a807ab65eafe7c05eafd753d2cbf57abd5ecfcb18dfeb9149ead143ccdfaa227fbdb9f82dc3c3a54c78aff716f2bcb58219ade591e46d0fa7b7de5ac8d3da06a3653b56fc387a7f91e7e8b54595f5b984cfde5de499ed5b6fae311d3c1e6fe9089bd2b13575672b04296f9c64214fdc52595b5c5a52e6f8b9eaacc622cf9ea594de2c5e67eefc0812e5cc8518685d64ce4d1acb96d48db7d6fb4a95aa52d6831d5473ae9e30f19105e34bbe59498ed24da2d0ca0d405f7074f9f6aef2f5f53e77a0bbbb8b6d7ce78edddd4f9c7877770c3c21e304192d27d2684171f5d89b0ac6de53c81357b328df6edb5b0a79f675128079830aa84a9493903cdddab6d987dda9d8160d63d65a0b853c33992327a902687122a3c5c491276da95591102946ca62ec58f2e20f0adc309067064be37a6bbd9d8822aaee08f58d423b74e8d0a1838b793a7470b143870e59aa43870e5ecaf01d3a74e870d4a4cb469166b2e48a3c3bf4529b3a8102a52ea8848a5b2a8bd639653300000004f316003020080c85844269a2e9696c5907140015628e5a724ca48882698e0339883206296408320680c88cc80ccd3400bbf826629374775f2c58a7cf577c115b0b8ea404c267f22ac7a59ac94280428c769a4de08f99a0dd4dba1c5adf8e2904daff43fca3cf006d4791fbbb3abc0a74d87466edbc10f8b97258df10a1c88fa03b873e4e83c4620fc882c6dbe70c635095f54ddba1be517669cc2e108fe827eee1084a22fe3c50ef79de28a4e22da0c77ce39b6f4b816ff1780b0c74a8ee1cb6a845a4327fe070986b2c6ad70e1b7b262e11a44008a85fa0a4d5b0b57e1200a9c166bd01278bc84dca1d2300632c6efcfa73a3ef52367480e0cf8060949e662546a3a19d3583474bba1a87b7b9e17641beaf147dcfc9b22c058186f90a2af190afabe500ed566941ce26a0b90b4d42ee5ec09b9a0eb9b19ed5c031a4b9d631d89c8e2f8478bae3516977a71ad8f94b92a96e58b1bbdb8135b79522fd633f78422000e3f1621366e55e95971e20677e18b001c5cb6e48a896936c90f41cfea579705b25ebe191182b0b4caced4fb3b464331211386ddf188e67c4d8aefe0f19e77f6e97fc037f1a651f0b0a6441be64823d05b83051319d837d00ce46dc1e46d8d369dea8a6783e0d6b9ce80dda093058cfff2606cf6637091ce0738c4cc166042c9648d756c3f0c86feab5d6657b83ab8134c53229f320061c8535adeab85ce0b54a56605e981c769a5aa38c6d6389432740ad6a0f921098ea563dbcf8139400ed3d3a76d1eaa5184a8ad15775dbe62426afb15e78e55c946d7b951df9cfb8b866083546563e66eaaeaa1a25aac949ed03a0eb37201022708b2c9ab28cdce8301646d0b117b90b5e66aeacdb677c07d1adc9063aafbdfdd9c3a050a424a0d691485cd058cfa69cb6d4134b1aca085d1ad96ab588fdb82406774b8b513a455039e4717e3800c28b94700609d7818bb973e98489ade303fa7b4c4a2f0551ddcda892dedbad618604d9d99fbf32e5861f1c9da81e8bc234d8f67b77d51bc3d17489cf86d4f39038f58c36661fba2734923e84b78809e560660f065d4879e5a86327a48cc14b1bd8a62616bb0905dd7881573ff798bc1be75be42cda1086c81f0e8511131b2f93ae0a72a8acfe29fe54f48df1132d7350e5f7781c2205f3fdbaae2ff3619401986730b4ecf531ed2e723306a871186480cc577a8f07161e5abb94aa392da625045ed92961e40e65bfad8c45eb1e98443191632fc40ae48f123e61bce5bd836d1c543879e2cffb555b90f3b159a39cb9df85d46b74ceb0c4092392624b5f84117ef5165331bf550fd131185a3d06a8824c2107a5f09d1b2fe06e5f3e964ec691e433abc46fc2e03e327129e3d624cbeec95f83467d874732fa4d17a62efb6eff879b1cfec8f4a0ce737d5d24074be6bd00feb03ffdb09f928b27608081d19cea29685c5e3b12c931980ddcbc19686e7896010d59446bf721f8aa8eb07b1e337ce4e600c5c1ed8279200744ec6ae088cb73fd8a3247ada6fd89136d45bd7cb89b9e5dd0e9e03fee10399c63bb3d984127cb5d755f03f6e2b89e4b6c57fb705fd4b8e0b21f1840f3026dcc1fac259c8184f14145a6dadb7431dcc762cef2d3d843c6028df47d598711cdb4d6b73eea410368ea9b8a8c2755aa373db26383026e14fd98f61df4b11f3eab5aeecdd1bdf12f0cb75007f21cc977464c19688e8077587a8b573614ebc586a4ba1f507987de483eb78dd61bb316e1a9b670a523ccc2d696951670a6be162b08ab394fbf7b68fa5348e079ce827d7ca65d433ea01ed70e9e66f9915191c526e6789ad4c133b0bfc616ad603cf2164f4669fb12ea09726bc9056dfc1ffa9647205c13fec856b4b70026aa3faec2e9b977111f43b7f16b04ef27af69e3104418b6e1f845b3d735dc495859a1a98d1f7da39138de5319bdd5eeaef02869fc34c5d2e23a4a8af2e5ff934ec807b53f9011cbf8f10dd0c2dac95dfaa4f7578e9ac681639181b6090fc661fc1fbef8d15d98c2e5db6c1f667d712cd49aa30f06d757fc6dbe5931c9c5af129e84496700cda946d4bfda9e00f1b81781aad8fc28297eee4c9d4034516c6b3d6953e5511df5e1d475be17c5afc02ecb67b4329529e4af21e10df0972679a0affcc44f99f9e80d73ddb5aa5f4cfc62a99225c95ae573be96171a7a2dfed31f13ff015f6bd1121325b8616935d662a97158c969342812a0fd95123ff5a00e50b8fcdda3f39f0fd9f81d4452d20b1c82ae555c247e1eb0c103306524023d9488820cb10f374f3b5dc156141db4f57238e2775e7f68b252f5f71b676380253275fa51500cc615362945e00ab0b27ecb81aee98e706ab48bbc88e1c50a97efcbf419ce748081b4a9ec5f8f97cf67069d8307b3cec0234367c091c2b8e09884e546fc4b161c1bb88591f86d8421e27f451cfb700370a76083d779b277d5107f3630e0b93e33133ef9fbd48d0d268c342a983fe841fe693950dc80a3fcdadfd0d9fdd0875fcbbec39d5dcdd51b87fc3953df9051922f14bc4b396450e3c549bd5f79c570b08d923ea910286d8c34825de9db1b9bf2a2e1a4bc84fb311d7194c494976a1f4b26f31179ee8406657cfaab8b4e3a27949d684af014b08c34f4d9ddfa44929e19801329662f7097c3416465c1909fb8f9987db39ec9f3230c2f2069abf9aacfafb956d7eaa7cd6751a2af615874e3fa66d1bc86af1f224fe4c1d65d22653425d2d0b5babea42010da1e00e28af260b47f8c715f342ed13efc63045cd0d70880f517684fef51a7cac6a8cfc0e091cd3ab596c238af954451c404aa76b4cc32fd483eb56f9a5feb9ab135c7c0c8957829a1d885ca8f9f815ea6f1785d301c79b77cae27d8a97e6e1c63955f0096cdb5a94462327132622dd54c26be9cc57879fcf4f63c7f41a400322392d5c1e44e4a25419b737dae74a66ed0767826ce4d180c323afcf657666aced00d09026e33c9c7ecd7479770071ed83af25240e9662dc8abf246bf0f0b1c8ae424a5b4402a216f129639f768124b9ea959314aec02194a342c52a3514ef99367d2046d2b67161064018a983c32f1cfc5dc7d941c1051f260324d7e9ae411ec6b726700d4e51a6e5a41f28afd335e77711de480f9642ed4699efd457d513a70f4c71f3bb2f5eb12d044a95ce6aacdc5024705d156ad452dd374864ca9f2904c86417576dea52c99f80d02ab550cb510f95361960ec6a6e3cb4e6ef08be41e9c4226063888cae2fe157fbb0afe9ed22969f7eae0b0f9a2567cf8c04f64952c7e62d4d2519ad48406b242ed1ce642a15ecc0b7f5f2a8a58b1016aff0fa4a0d254c8e498862f1edd786b2d4fd1bce803a163d20ae0a7200c26ce844272bde239a59894276dc14b72532a5da620fc5eb1f49afcbbea76572fd8ca47dcbbd08604926fffe8ceafed29447780c4ac8fbef2f98d7fb4e3e0ad9aeedc6dfcc9628d847c39f8c93408b628d4d33b952ce32196d000948a2868a414af745039ffbba63422791688e1e232d411a6c85e913f96257050adb80eebacfc56eb4c8a8412834704174501da38ec91e82ede25bee06408c68a4bac6cfa5119d53b4656897e7caa613a89c1545e9896abf1e210504e3f77e89e1012c09409ac9e2926f83b95291607119cf1f9817184adcf76de9a6cd02e1686e98fd2b05f6f40582cfc7638d134bb6a503d1994c0c3b0b483688c82983b3c5bdde4216f8a445feb1f787606aa9392a00050b300cc96bb2e62aaa9ac130644354803431cc96c567385ce06a3314cbfc4f494853bf44a11a154e42705d7cee65e47f18f9d32c7206dafc01593d116aa8c27fbc3a932948e09aa47c5abfd70139e59925fc83f807ea109f72713231ea851fbdd1e1b6eade591236ff713b20274ebb3d319febb13076b0a7e8611d1e71767ba70418c2546bb99fe035755fb067c735b3dbdf5ea61f75b9dc9b26cb418a35da104975f265deb4baf51451ede97b723a79a7adc3200428bc6af4991f80d8ac09609fa0a3cb2493e841686f953794d10556b87b1c4ac646cc49f123b91016353ca978202812e81f78fba6ee1488e8b716124cebf1e5f8443c0d23f0117508b08c430f5e909e0652c7c45300e11a8524b6b8f9be5a19e881fc4758859f11e328b7881538b902aafb53263c53d50c9fe8d2787932a4bfab40a5ee71ebf76b6c3b00e0b1886068a9bdd49c5543a459b1105f2267dd9b3343bc4509333d81c117d7714cbaa1d4ad8b0f5dfa2da7e57f3cca0b84a9425dabc82d6055117a7ae4ac1e6abc031b58e2d5ee8053a1c3603e72f4a5caf2126e0c19a642d63e3c1d8d50136f756eb271882e90be5df4ab1e92e6b1d008e75128cf1afef51a2ec64e59f3ccb0e466a84aa6a7d801b8fa32b0642ff911fae75cebce2446a112857d41aaa78cd4651e3614257a24440dbf7c1f44322c43a4af204d844f10ac8d4e2f4b1d41a554346e3d067abf73dee455ef58b8ec7de9361e33ffa5386c3577533b15bcfb8ebfdaca3e63f61a11146ba0826402dee498a41b94f52eea5dd96dd47226d697b84d4b430763e80f8de7be5eda26bdc8222856a37355df65cd32a67968fc0aa55ea3ea4019837f892f57c64a4007fca8be38e2ff0f21615a62c8f1b29c86ffde386468506696acb0dd907a94a39a6fb71112a6c164176710fa389ff144efd4c39f1e4474aaa0dac43eeae6d627a1d86ec204da1eb89e07d0cdb53e79614c0715505cbd1c7cda5f087723a21f0c324e9e23ed35423d544d299b079c3716548e9fc0fa65dc1d2e96d5de6d080591655b190bff226816cddc02f7dea60567acbbbb42f7879d27eb3cfbabf784d72990ecde7b867ec9a9a0caffdcd283688a8f2f6cdc66103868e258da6166b9c04494d72073bcc05069bb00e30a43047e35377620a02ffd497c3653c5e01731fecf3d680e09451cf9a82eced0c5cb05cf0be5ff6caab6854e831eb5e8e0c7ab823dae63815398f74126cb99981bd7a48b8dd3c2a8015b8980fefb7596df36e78c3edd2fe113b58f13cbb34a6566d33e9c282a5a1019d344ee2344f5cc5124928ce80647ab77e32df45e47046d49254f34b9733aa3613fcd3ef765b0d1b1e67d3c14486a7d157e61d8ebc8923ee587b36ff3977e3a37ec5df20609ce8e2542c45f5de2a801a8dcdc798051f103cfd6fd04d951213da0e384005e87f7e04c15daa5dba963bf3b1d205baf5ce7ed6b2328ad6d1800237edb87d2bb6b3cb78897cf20f8132450800d9c18da1251f632843f0f297de2205b1c4e327cb3133da8c4076fd23eae6b0822630c6182a5adc6e279e0e27bc878fec7bddbb40e4ec4eebc3778b71caa395cefb1db639a84f46b5b455633412c5227f81ec1c9d8c302115ccbf5de63563573f8f9c181357aedac57d132f8c8a7a5e35ba9097b0fb98901bd72ffc16049e3cc8c50da33d9b4f5d3821b8a85bcb80ca191c660aa44893242ecd12a1dcb2f05bcff2f8b114c4c30219c20602916a1e81d81da1ac946f86e449484c65573ecdaf076880eb7e7cb854d299fc36b95b2dfc28740e5cdfb8f41efa29093d84ffe92b2a1105235df36b4cc5be8ea368dbb9a8f878b86888d88527cb10773899c03cbc43288da30d31cb30f82519235f08c0c456508081c9916480c7f938d8cd089b14ba928b4ab532087cff7cd68c3a05666f219ead0e83f527d0b83c1f51070f02ed8531babc76cc2e6999a870a49cbd60c796ae0485b93b200d0e480a4242b6be70913f60c38ce24a5dc9b6293fd96d6a3cdb05940126bddc4be7782142d6679b0830c94dad7ce64966c1775312424aa334da312564f3216c77d5736f2067d3724b5c57a1b37fad6e9f25dd9897dc9bbcb15e79fa37ba0598fe9d3b11a258b12deec2a5834e41dc0f3ff939e3de07f9b41d4802f7bd905b82b9935ad2439ba576a2a7c060a295f74710489a9b94cddbced15259af7c8ae53b8b5e429e30262e6af2fd934750aa1d1eb47c81580c24e3e1991ec22659980b2592f473785b485e49e49d8c1a174d2a85a98207229a00fad7cbfa6cb50b1560da024a65c081b11fc07ebfca2f8796e477984f744797fb8e7793b7e219b7c7d7ed6fdf775a4a53e137186e72bcbb52f035db30f78bfe142b552e669887c7a0f2c676ad89591b43b61cfcde4d2abeee9e778227615a53a03f8c399ffb013079fce042564dd9342872abeca4d6abd858409310e600aca631d14ee4d677f6465f69130b2c052877591a27a7a39e8ce259e22f2d4fa975d9495a502ca125ce3e4306b5bc04689d85ea2c57db064c9f00678dd9dd0b64b788fa801a67e94f6c38cff363799e7669682343631bd04d554d8cf3529cc3406b9dae902ee15498952c809b36199307b1a206cd3634123e96e87882bc61ae83206801abb8187de138b481822c5605f933d2a4ee2e055c1ab14459e6b6501b6490d24ac004a9ecb617923049eb9d9084ef3661779d3f47781bf394c09ddd88bfea78635d04a1af750e5d12e124fd88750ae6fd71fa1ca67feb15ab460da85b769ca4b14ab4f5aa59e71d60cba2099e66f4344d2f5638c624e1bfc6263382c81b18a04148335f463e9fff00b6c3c31cd61ebe85c919bec3a5d4627fe5e7663d6435ca32abfe82550120a1c802cf2672a029fcd3f56a36a4859e7eacdf8d3d0406afb4babb187fee0736d494504ee8a079aa688bfe1ed3a6f34eb633c39f421aa227e6d7f50efb11cd52efd9c83eb819542d0fb2874ce0071dd05fdc0d59a5a2ec4227db74db930ac8a8ebea814e59746bc568902b99d6f731d38b94743ddf623774bc5b7045637071bf57c178470eaf3785b13a3d5f32bd6a896512fd75f20968de23cb06c01ef95fef3f0d405fe1d69b4b5a981c9395ed11b31b111e0c9b4d55f78bc0d5994c9147e00a4a6c7c4025a0923df3cd52f1a05188c554f8456fec968bb2b817bd2b49870e3bc3093a751533add62ea0bcbd2821ef055d0c2905afe095200678e67321fdae575208a1c63e054f57da366d9018fa8638db19d9ec6c5be4cdfc6d0c7e8038d003d136acf760c14f34ab7542db7e81a4272d1148b01c349e099040dda672a39693e5519603133e36d0228de122ade434a32ea73715b0942a554042b85d9f76754e101132c0d28582c15a9a8b5bb41fe8f9c6b4add8cc5a0557bfdc9427cf11f18b8354a6c107e2c2116ff996797870952d4213d1f4d6bc27c9721aa508e5e2d64271521e058686b8b8f8f021e744f2f90d46661303bdc5f7c6f982c07b6e452b4af191db66b4a53809398f2ba6809cf58882f6a076c9d6d1a40b68e605e9053a9a55a73bdeaba82e107405bbb5fdfda05d8f9e2b9f0e9df87402c7b6ba2b639fa00bb5bd9b7a835ff83b2a70f898339f16cc1994e7afee976d3dd648d03a4a41d0e11247627b25cea0fd5867671874c9da88e1c5809e995a2e0aadcf683f0a9c52a97892768e188d01cd79c48acea1cc3ae0d0e2946fddcf21e167c42a9e51da073488862f57af4987684fe8012921cba7fbe9aba12ab6e49231aead4f4fdf4276a5a7311750482f9fc768bfe9fb6e5f7fdfb1af3b2636314cc6116bf12655249accac8bd731d1ec10c81e69a71c2dd341d4487b94321d44f001c1b204d92a5708245fcf0b98640aaed0ccd74095ee26a1fd34502cd1264bad630a0325d9f21cb5ccd2dec39af1f7329d67a7b79f38511993acd6eb818909610b68437a7a61ef7552badba8a17b6363d09ff3a562425a12440c9ee20bbade53a91aa29498980524283c64a00baab0b1ffefb14fd6c797e439e791379582bafc81d22c5815619efcc40ab14ba1d1d4f4c6986104e1e912d660e2cb6ba24465fc0377dff9c134602ce523071334a4737f99718a9a89c41160ec5f142ff0314d904aba7ff33bd3508f6afa3c1205dd3e6e58fea4275ea56a39f92e4d0e1d079362f39bfd425a9fdd353b79dc8d1bd7d141cc66b5a20df7979822276e41e7f4804133a3265519c0f613a419c7a1ba44cb9a0456682a15d96d582b0a7851f8f0a3631589125b6d9786ea978eb3800d2bb330d935bb4325ff06414179b7016eed9ba63300c7f535f7ca41eb2b653bcc8746c4857e59b8264aad1e2f90677eac19a2da207c5fb6b1e9e30ca22a0cbab993fe665b71fd50c0776923abeb5f482624436320151ad1f17929b54c447ba408c03d18ab151ac525b89cc20736483fc0296f521cf2a99bb4ccc3fd87e975494b1040e28ea49bb908c91356f7b2830186034ee6fa5062920f575a07bf8563498d5d5e64c222e8f31597ae0ca0d20e5edec11bb64b58c1fbbf10f6f873c5b97ebf62a47c8ffe4287bf415e5f35f22c4e67238f1bf931218014453d8dad2188cf9d1e7f8ff36e68e7fc654fca2cdea4b7f2cb3770a27bcf324100a98539ae1e2ed1477294de70cdfa7957b1d9717017eac3907e8108fcf823eac2fd87314e0d3ffc484c9f38122c6c40fae10b4344110779d8a9225c34efec73e209bd498b9e7efc868ec5006f7b43b6472d9fbd990df25ea44308dcdae302d8704ab1200738015a8700fac609a609717598648642bef15bd8202e4c1494d7c77c137cc0942f122745ad131cfef08c25b6be31fe98bfdb035ef9d4c02e3f15e08232972c78fd08e84cc51c78c6e694e38a8542b4976c986351c935d496037f3b4ad18229414e31ade74003e4db696508fa28bb30618780a76154f9db603f2e534832192e430aaee9869f76c0fdb1e33c3a20a5d1bbed511b898a91e9bd5881672f78798b5e5cd3bee9d52ce3f60a0d9eb17a45d0dfe6f662290d4cf7ebebd9a327dd19ca0bd517feb8936d547c3afceaa2f161085062d7e91e57cc225794363534d67c58db9fe6183f2070559c9c9ebe90924d2da3088f76c8cfa13f30ab107780d16119aa33d01fff9913820ba5149197996628ae0dc40d1d1c614573d53a4aa55e66b6b14ae93998cacc334aec0e8778dad9f56dd5633c677946ce0f75777326a8a353b25fadca28dede75bd63bf1bbfca0e62ea3ce928006e15c62116e5c7074554e393c618d8ebfbcb1994c0c5e9d6771bc18433317bbb8b12f73546187df5f176918a560dcea958c27595c4f435e92968697459e39c83d34dec2673149723406b25c5efc84f512da829ada02e48b88fc616b76cfc26830e1f30107ecb17c2180a3918f382160dee4a47cb969aa5b171d5a76741b270ea9054372cd306910d8a9a7cf402728d7fe6ca77d83b689a0a63b67147c9a9d0aaaff798b40ad07d4238486a60809ea85bfbd9eb1d6df9b7664f35750fb428c402b1aabf23c3f586e0ae135403d7471c2587b7d88b2ff891dd5d2e67d96bf1b6aeb538002f8b3b65a289d185fce3845a69b8463ca29f691e0c8b5e633ff652523c0135d5af6a750d5aa02ff01bd143ebc2c93dc26d21b4875413ee68cea8de79c32b36e2e0d32232884b8bc17d072c8c75f72b09255519098bdfc45904b51106ea623085631abea4c0c4801576263364ccc2efe1cf5a0936d49f792fc9f317a80e6c845ed9a428ef31837b8c6b0a6af8ad79482730c0c52ee7d84eab38e4096bcf1c47c7ec75eab4dbc0722502c7f6351c1b978aa9ef49dd2c0c637c8c7a78912f4cad56884e4ded0718577039f27cc742dc27267c716a70aa6eee2cfd2a087bd0a6f2d80f70f360096e7bdc4ca46395e69aab27dcd39e1a641780f7d428fb0cf1c4c0ee14e9061718c4a0d1600d163ec59e0621f7544dd85728250b15b0a7d54270edfe2beb8b1473050297085bce51d23000cdbe3fd5bc92761ed7749eecc5a690a675a11d5f23d4d78604c7d34aac591ac49ca77e1e0a8795ab19e953e91edf663b09ad0e25b90d07bf5103b3101ddfd510bb8cb5ab99b0b6f681da8d1376f0200ded8da171316b412f1ee22c9c9f301c5f49ce6381b9ae33171ff569af99901c020175d98e4408052a8e8027400e32062f75d1f5227ee1f59ddb9bc248ba170783cde78c1b3a7c597164ef857dec403fc87b93b2b1e38d07c1844ee9d51da2ac5d81a882a0346a40aadac1ad03cf5b04a07aa0cc3ec16cee83ec311199a644c24076bd427bc71f59daceabdc012cb51ee67e9cae01fbc31b9b17cbcce016059df1231b520e6979de3b4ca41013e0cb695c0a256adc8036110a8ec1d9f638810808678ff0e3e1d0b4284e33c3f745810282bcdd907a708c45f19fcec33c7c148b626c5b141ecc0c423e1fcee901c9f961f2ac537df7ed4307203dc1a2e863f2095e5e8abd17c52a85deb3e57b3dc6d8980b887f118027166c3df7450fac5184566677fae7d431648c007404a59d1b3ecf68141ab676175a99e1f2e8eca0421ac55f8ae77cdeb1d22830be4641f266e0048dc1cf7f481e2e186f87ee70316d16641231909740d3d9c2c049442dbfd8cb1eca1d2a04525147107dc13a4c6e21e1f4ee02a312d09e12723ef00f3e80645b89d279a3c606a7e0c94b82908a35164e1ed2683d667f85f4946370a99f668936c4bf044596d36cb1a9b4b77f6e4ba99b3cb614163992989dd67f2693a6654c9449b60cdd8acb687f0c19bf7746e052bb49c8115550f018f73965b4e1a9d31d5d324b01471301ad8525be32c96247b195d104149c9a70a5c816def17c756356508d05b0c7991fe655b4c52d58bfb24a6351c3e2ea9b00f3b5642c888e760970676aa0759c5cd5b96ee51699821b320fb750fa17c88182bc3f499918ee7efa1a17ddbbebe81e87f7250a3b6f7b22f7b77d31d4d84abf47773be4a7b3e9668b92b7361e0c31024139f1b0b6ec733270cc0197694963386518d4ac3bdce6fbab54efdc17039a0a7b5473fda69882ffcab09fc571768189918d1013e7ecd9d0fcce2f2a9d41a091fb56d420cab2e646ea3202cded12881f4680e43658625a6faec5ece0f4aeeec8741d219b130abb84409a63b0aaf3d09921b5369075841fd2a8d175413d64ae11fdf3582e51c708f938bfd887719fb193b106cfc1dd1be0ba624b1f77d11acce6e4a3c511338aed21d90da75bc94fbe76ccfd731cc82668f75807bb50b69b062bd851f67f82ef9109d32443c36cf3e27b0bc356542a5607db49a668b3350c3bd55a27b190fe71db4f7e46e75ee782e8747febde083c41179c31ba6d6c688061052b616ad6c14cadaf6b425d173a5d53075641b7f12110686c9f657240264302e87102744481126a3b81c5f7cfc408f9c3c4f0fe4177c0f75ac671c87f6b4598d38d25e779a6cf0fd3ac5cd9a2d4fc9a812a40cfdebace782dc6b03c6e5299ec0ce2104ba0cad2af9dc11833f384d5fd94b179c2209d3f6698380fa9c176ea60447dd2e904505887bbd6c4d54e602ee4316a93c17e70ed86eaa7f552f0807a29670355d687bd9f7f12e81a98e9d36d4122e79d3c9da5ece38234219ca7d420f8fcef1e3c04bd2b4da1a18341e25ecbc8385da1599dfc5916a6cbacd26ebac1d67d76e26ba364f0d43a57ab9c6274499d001b113426b310665746355b864b7fc7830d5aabc574e8b90b4667ea8152a42e1421286ab9a9e7fe41763449cf822267eebea29984da495aa8bba32fb22896d09ec7ae0a9be843f8a20a62c618ebf8defbd9a7b0fa4a552b4e73ebb78034224f5bfc23f4ec80fbbb43851bfcdb17279e12480baedf99fcb879033a8fef80405b833abb027f15809e26288bab7eb19526c5b20f145da7729f162b628f2f77ab792356906dcb433de34c309bd36a5c02d6854ad1c844ed14e19c9e07c13a9076f11293342786fa5c78e159823c097ac9767ae5dc88fadec8019376b0901d3fb5bed6b3744cafd148af931734383ab6e929667951dd317fbcc3d81ef6f426beaa077dab2abf7909c3caf43e13dbd97bc6cbf1dae1aae8c8f674ecf8c347f8af28d6b56464a136276144c2550ed5a145d7229f5fe45cca28440747e229ec7dc1b46ad84ea9896d79e3e635b65ce27829f5672b36b5762a6b3287b8be9bbc41144f3c7fc7d53089b24b97b398305ea6c43bdf237c09d4dee8a605ff9d4cf21876ad6f7fc8ecf74e9119c915d2b10e0a53ddc082ce3cea33874850bb3817338c8a126776b2b5b489fb8f506629cedd8504e8c3aff98107b5453d036c9c67efdc6baa7b52c5dd66f9be1c78a9d638835ea8607a39cb391692774458419c9c8a6c98171ab23d43984564fe16051993b7afbbd3beda6da5baa016374ca3a56b5ddfa59d5e968c0aa0e9a99695510c9494c3100932ad1ecaa11b64760efe59e3d6615cbc46344ac853d9ee6d62718d3472ec2f226d745f64ccd4bb9380fb032b9ad3b6afe32d6abf09e8bc096bc4f249446aad60061fca24a09ab53d9adc645e8cfbc263780b3c53ed7a40e89f75df22d8f2c350bb667a1a346843878f44dc450f18e9057b65bb2f256427ab9d3cbc2ec279583ab3cb514db4f749a74f50b82dcc65ce06a16cd877646b11a638a0f4d92457773aa6a68d51aaf2461bd9aad37b2ef54578fa13bf959fb53ad4a3c80a32fa8e760804cf6394a9f9c5099c853bc1e7265ad11c7482d071c6c37f34ac375e6b149c6e1cf8c293192ec782aa7ec08cf094599ffe3831fa94ebba9641d59746c52335c08bb246ca012757a07ab07695f1f4e36b191a1c8205826c22ee2e436b07fea48ba0b0a5a70192331f3d7da05ca8cfc92088549ff4b8cf49abd8da4aeb633a1d261ec6493eacc70bbc965d2a5a6d6da0e50b3783654064cd21200f6bac8acb61068083ae1edea7c78710f37ff80842c26d26d2b338f4c0e22752d5ccaca1adcf611f66ef4c4a2b0339bb52d00975345e862513c7c018225b791c5b36458fa61fe462a50d478277e3c0d5d0550d17dd9d0c6ff8ae0de57511a5c0253d9b8084450f11b36637352ca6c35a52878a4885426b21136a4cd41bebaf946ec5243eabe0a10a7099b60b97039fc1c1b70c077f37f6d3828b2e1285f62a1d8a47be58582637e24bbb7845975de02720b00deabe000ba5de6499084d26ca42ab381e17a7c30291237e399917c310fb8272067549751d3d76fd6104bb82ef120bf3ba82ce28c3b6a5f69c0d30def8d819e8aaf7fa610de8c5f82ab44f36596a4b1089e119a52a446fb2da51cfdc51cfac23e5b642097c2b2d98ae933a21a1c83b723b4295b9db45aa86d9245840eb40505bcef5a8e6968c21efd3c14ecbef7d06bacbad8a9e28e34760cf1cf60ed8774839fa7a739fa8da5f08732ab775357fd353fb8c4f7bc7f1b31ecca879081f1bc880b454a7461f8a43d16d36d7882e6f903aa531265b7a2692a1bfb25ddce0e3585bced69a15209d4499f9a87a6d9c14b053ae51888c342293b4abeb6291d8ef52d948a24c42a3866ee4db68db0854b0747c63b1834c23b3164930859f1a1381bc5bfcacd0f021aea9205f1891af294fea0b0eb991f6d4885297cdff1b9191c257947662ccd831df423efa777b13decb7ec2da3c58cadc1966d67e603efd696d9462b99580407fa02fd4f448392b00c96cfac0be11bf73c6a376cfe3e0f483b6a60a192a32f0389e66758c4a0d07802d65c41808f3e273c22b7b1105553c7315e4b0330b033c402bf595d451a135e377ae3b4a987528cc019c1fb7ff894d06ec713e963624befa38d3deb7e1bca17387f07a3ecb4bdcf88929b4f24fa6372d39497746c75e0bd7de2f912c390820e159860754b676a44277b06f05d7342cf56d09dea0a348372f944a5a86ee18620ea176d912814180d15772cf004aebfe9704a171ac0333ff6c3358d81ce5be8a9af28496e6fa8f2892b99b948b476b4d1ac31ec0afe588f15ed6cdf1e405769f7b812731e331313f9869a9e71f6fcf00b28e7101525f4cf1b166092b2f403bda3b97556c8fd5f126637b8dbf103a8bb3d86a28e18caf7057d9aec30699f11fd6df5620b2129d883cee306b270dcdab3aad27c840658556bb4e4c81dbe9ea05025b322ada0efde3c211b616b4dc397469ca06531fd80ef14e64e8ef47536e5241c1d8ad313b4868c24760597504e0575efae62e671d8f6c3b231941cc63176253a2d1af038175e03303443e62a6d564c17e95fb6a4e61274b2891a4cc0c5928fe9d7e504c47c902144cbd5d53b7d5958b479e58d30941dd55a18aacccaafcd8c3d6bfe858b639c9261d676d1eed3d684293b908df48c2952953fb05fcb4d30aa63bdd80d0782cd2931a94aeb378dfb4f60bf253dbb11283a28e687eadcd74cbc43e63a77b0d2df072abb9b6d369291a774653aa24fb4f578ba124bc3549f75c04b452d8b41a88857f4c8cf96b228e302bcd119d551d119e3b4699666458e632d3dce25d54856657a0ff6882f4dcd9f7243719ad5eee3af1be7618e322c77f0d204bb4b77528350c67d2389dffbf5ca61c7acc04dc0be53ce4b848a2b60f3320b927a870151a46b1eb8c2508100b885254d4fbd1a20ea1b7a5fe13bc71a43165dc11f9c7c62de5be8f1d48364e6456898c68536430a30064d11f3970795dd107fa67d51ef534198f6b74a51207a61ed61cee4c15129034185040fcded43af5b0b99f460c9b6080e6715f427efca145c5b9a0106779ec740fd618a2c3cdfc6c46420d86271837076482b08a0ca4be2d70009eef2f5c530315a46ce7e98477213ca372d9ec41ed585477acea5b4af2203afccf966b68204b703ccb846b108073041a5de18274abf3b614e779c207a1cc0eb6629c22270454fd8af793ee503395937066d859c1a6debdd0b48ce26789a3143e55c859f80749dd1a156e2df30e85b03afe7affb6a0b41816419aff7ad10e457b6bf53c0c5b996266fe49f3caa5d1511a21efbfcb7c269c98b2fb904bff8902d23cb9286f37d8b9d9c3c519fcf89b8ccce76a2ef79cbceee16ef7ebcb0b4737ea59ad50aa558fabaac645a8eb802ee6e3b3513543ec182e0dc13bd55d398a6f24050238b7a852299e57221a34d607ad17422b97d0bcb53409d212db10cc290866a15424183969166ecdff083e5f3351ff5a1f70d1cde7ac808ef34b2d88daa486fc2179d23255cbaad43de1aa29cb2252a25683943731e1a3e3d35fa06901b81aaca6f28d2f240a4e8bd281f03af2fcb6b628c8ffbd687f0143bba2aa715871e74812002538a8b5940c7062ee63c446e60b1bf26a687bb7989664860fac3d78b5d6ea063bdacc147dfe85d6a90052c5021c0b7fb19ad3b2cc445c9b6ce133756848328a8218a34e3d7e0da35ce5d1d0259b70f1cbd1e8b89052e135b6f4d1d1100d569fd8f1a30bc301433eba38fa93005765d953be477aa2d8a61ffa132599fc90bb12912eaaa44e7378b43ca416095c1584142102e8c842af70a912a71d5647a44409fb92812325b7c6c7bbaa09ecc3d8979ae6d9199b712c2ce4926ecd4c5a66bf8abe8634a9223188143b549507a62bb1b50e30f9bb04719786b5b6ab03a6f79f7b9f3eb1c9fe1e0715b130801ef8b7b065710afa03833d816f97b77d9c758004cd11c666f66afecc6bff693ce0790a65d14fa2668a0314ec1003e7eec83c017864692e15aa98476186b380ed541b82a5c49c89491b2035960e50316b3191d53daf95b8931a5714cb6fcf3a4a1ee4ff50eb390abb2e3938c57a7b9ecab52a92bd65b97f60fa2d1f283feca9445aeada4b989bc8f2d2c28d4aee038695919d4be75b5c446aabdef14e52f1f5f0e613bcfec8bdfcb9a003090f1077f7e0d489b4a6b34f7d5624ed6c7709f86c5465dd3c90aa2a8321485558dc3ce07b960ca84518d85c5c36d9a5394b026a70bc781473b3e9f67571cdbac851acd9c9e70a7562c165e504c840bb141a30da7f60f2f1ef873e95aa5f2f6e621573cc44618894b53ac6fca02bf5a7db930c1d600ee8f46a77e3162febed98f2711ae881724a652b810fd8f4ca6e0ffcfe11f676b2d4a2c515e6e50e9e8edf31ca268b55ed8a1f36900481c9f0210abad249a82e9708414da5a37cc066149c63d3682eea9da7e8ecb5ebdb0a2770d5bdfc47c434cf6f0f26e5a9102a6b071318fae618fed86a1866356dba2dc195cccf6279b52029199ddb43dca8d5d749c227f63e8fcad14c1ba343f908f04980a0546388ee3f6adbfbcb637ebf531fe7bad437e5e6249debdc2496ff7129132b5dcc776a857d81776aa55cfb2a4fbfe57287e2f59e1278c2d475060591cae36c011dc80edf7bb2ec434f152e9fb1030536768e642936a5f333a34f547287aeffaafa9dc22becb12e15b8072459e5037d46f6b2a407a201a3d8dc2dc85eb2cc22c769b00145d7ea77775023811449058a88e30db6c3ea7fae1e1114fc3071cc98870b5535a4927cec81c3a9e7ae632529199c5ec3a1acd92a1ba4dc39b6c87d575a39eb034fa7a54538008e14b919e280300f414ae716af644c13561741dad42849cd210f23cef44dc963adaeb6d158e73c9f3ec302f44902860f41ce7940213e0e77de004ebfe624cfe65c74c7a5ed4c6d32e80006b165b8a3dea210268dc23bbd0036973ca6408e73c90c7f1c3b976cc5a84f32714cf5a63273d544bc2e100125d5b41643baaa6d4aa91d00b4c214df029c3080989ad0939774198e27f7348f6ccfb6ced52146c3dac7cacd3a92224ee616ced909b511f9a08f52f1b7ca4b776eb429f93fc43b9229aef068296175c45a2bf1459a883865b843204281792841716948bca5090b5dd3903f5a10ee05b2996ac70b910f0f268cbb1bcdf853f07d62309c9d4caeabf0f932ae0c381d720613bc9c97a6e622d844269b91bd519ae65cad0a4875c21acf46612f34a60a0d42df8e56c173161c062d68e531f952b34d8234f65f81d31a35518722204581eb827b4694b2631873651b53031ca66fdb895ca27811c80cca414039d2bc06426f7a03e09ab5513402a973b81d54436a79b474b9d6993ca09fd2d1fc59c712a3c93f1e033d9e9821b4eceb0b81fd41634abbfb61cd170cd2b81f4bb265d82a247b8571663514d704efd66cdd39c732ba346696bbd6cc0d5c9507b4c94542436040984488f0725a7640af6f1c1065a55a9791a98f1a9f551d394fc70474ba1658b71d41d5b7e5342dc2852079be1ad7944531b420762178421e37df47b02b83037405dc89725a29c99c1ab10921085188f7b89050398b4a09a3c49c0ba3dc7f16da85fb1a46911a1a7e381130235924b903a25e4736de2d68b5da9e9b2628e21300207683509e7979106f222ed11b6b15ce3c38e3e0baf6712fe8959b800dc4ffc97ecf9de0d42ac1e7b24321ded5d6a751e35cf4ec8e3c091a2f3eb4dd31a3c3f450f1d0fc918552e1be40c94f1824d2c296a150c2de43aac4e269ddd2864858ceec78b2eca1efd07f641fb0789455cf3df438a761537b13b275514fdd1257baf316cec12a703edb0a710ea634fc302b9b54710d16ccccfd0159d84e4b11786e540433fcf9a1264490eb1721650dae4afd4052b82e7414b9d7d24e35ec02732e1610e0d128e42582a148234800c4343ce94d6d7e44c4ea29f3b36b2145818d0ca4feafc36f52eab738de6e08410c59cbe58e8440a07abbe3113c8e73159999bbf11315cb692941278b07e864fbe8c7ea57409fb55624e83672de12fe9258da4428daa2bd1da46023c48a62cd596046c185881c9e39f5cbed9556058d416ab959568c233a875418e2d89450079e85e6b886eec5456059fc2960929e15cd65fe202ea19040911baa65dc3fbb1ac41c6fb782739326a8e6ec4df36677627914157c4413142515bf7726e533a14c4f7bd456fd1e7636a8a4214b0f7a751868db04e6b25c52456def67ec9520408a2639886604dfb96fffe2b60c924e41a2869537fb474e103ccef8e265f18187790e587e397a4baeaf2420e21dfb72bf3ebf80cecdc962460a0112a810ca4b1ade7fe8130063ce21391b44c03f02571c04b4a3d6979c5bdd66dfc36d594e8e02a67dbff3513a720f1cce36a14cac1ccee42bfd2d4ed59ac8dd8b3bbd78d9b1089a16098e5d6f7a6fdbfeb3592b6b89b232fdf61c145b862265b674140ee1a5041b15d63ce79d5ca25e909958c46034423c8f9afa175dc7c4e657b22b1310eb2550365f39f70e58cdf06abf5651af9359ff25d296132f791d2757a56b75033921d8c2f47ac021f86c24e84b14345ff3ce8fa22e340e1f5ffe0b1ae928f6c3c5c75cba07b6ba63822f93a17b619dd89e94ee87661307eb50b1a65b9a3b225c8b5a5f62818063505d1fb4f9c217f94c9f49e6a124c93cc1ebc89a71091ff409cfc0f0711753584b39b76ed5e307971a93f51975e5b52535475c8ecdc99e42a503afc773c6a0e058d340f53f2b03d551d4c01881a01e0da21c47a8bf1ec99e1f87bf812666e7fceb876713fe85691c8b070f9f8d41ea8ec2d9110b880e864fc8b56d351b52f64d455a6df8768e00bf49d88f330a0ef43df547d8fcd2093bbc8fa3ae1a5f014f35b9d6a93a8bdf723946058d9e9818e2466376d8c3853d4af5dc4ba8e8a096edd2390ae27c09f720070ebbc77de26c58b2e39a346e9ca8fa25c1f92af02e959208b6caa797d71635e31eb5d5f5d1368a0aa995c1a3c742424ed4f964264ce391c2e0576433b774dae7358c20d5a205eefb182905b1a567b03e6466d0e9b4c8a3a305ee60b9bd25963e5bb4cb745560b76a009be3e22107a8ce2ac670309684def696de0560577d215c2437f84f9bb4fe863ddfbc4db29329c026a41c360144c45d3f0d743398822cccf0120af6e8298188f96c6f54b4073965127411d0bf0ea5ece9ae5de8e41646a37d1e7565843434569ecab11dac0114b39de1d77825d418434dee3139bb97dd0d9a999091da9cc135d6cd769517f73ffaaf9873318fa3941a4d47813a25d0308b93f80b10087fcb14558aa1565d78c38b09755dba9f5ab31720e3b0722045dac963d273618d6f4d3914d115d13e29fbc88c2ca4c52217463ed2359ef2b769abb7877817dd19a77ceeded98079cb51923c005119755460c3528e7c72d5bd2d6d204916938af46b42fcca240e5fbb08eed74a8292e2176f5319c9712bcf252ddd9990918b0d5fe25d858b8ce8a9a66b4fe48c0ad8a92f58195adf8b91e2ffe36442db0ab5fa965de52b516201a4bbae9fce6f96ab7a828bb622a0d381c15a052cc7ef268639b460e1e5cf315ab41d61783a220a250a5d4abec7d356367529b655f0c9da07aa2f2a7805f2934bc9c272b974b971555bd5c87ad49dabfdea989690963da0ea13178e3eaede7f29073b7d035285e34542dc035a1988354325447532b81c84ed1c1f2b12b7893aeaf2c67208e1c7481d4d720344ede0fc40d35357c70233d622f8e28c5b3051bc6790fdb201d11cdeefab664d5fcf1d93a6c698580113b51c6e5990231ff39887433651f684c35e23be4fe2454c0e9d2ebc612c72e6f12162c280fde11f884606363ed9d078f791baa64f500aa3d70d6032739c5b4cd4968a26f227c2eb61dff12dc9cdbae8fb6a05186948b4d2a31c1f9238d45d421508eb0265ef3a253c6518e00c64f4b77224a842c72af12f0a1ee986848748eaea390fe08144f2b123e68d6ee1b8fda0f39eced921894b220fa3b14671ac14766bc11f1bfc3c157692bd52b8594849711524182efd8ee40d44e1e6ef9b57c03531686b4b43e0784401eb1323931fb98cd3e944809ddc8ba63b9d1a5d55559881ddd9ca255760771ec1d26db91ccfb0caa1807f516e5eb664e3992d505742ee48e4457bc91d638a231766a49e327fc3214aca6592bf736d13286eae445a3424888203b72bbd4f86dc0fd8be9ab1c1c1a0db4176b6ac690a719581109d3693c2b9c254f0e2b0b1c0e6a2cf2fbc781b59b3a85a0312c683351703296b10adef5cbc1652730891a3eeb854ccf6265be3cea134671e8385cb72a2f943c94fbe6c058f925699b5a23b3b37118b195314e917e1ee6c289c6ed958ce5a7fcda41df038f6779b2147af7e7dc392626c2231aa447031c51d2581b95cdad62feec5a72ac8a3ebb37ed08839cdb606d0ed9841aafbb986d81318323b183b31f0aac1e1d7321be0ca3717ed0eaa5df2080ba03b18b9c959fca85dad513ed539bd198f3f6b7574c4ca1998147dd269553650a82103757626f9882878b37265026bf8785c247c09888833368b20d40204f48add46e7b27efca93b7579094c83bcf52b9a76c2b6142b031ffa1f38db8415719251a18582fb5b1cb3e535253d2c9ccb7137b8f203c32387e5124a12907ffc2bc6703402997e408d35601f4a4633c847d83ad82211e7d9f8291672d83d0616623e400c68c048c575ac82c9a03de85441a78a4e6779165aa1e042502aca07b0a27e92f8c1221331533f7eb41be33bd5e3bb40d4eb22fe716d98b8ec95e09061acc03e8b3b8eb9f742d6d2e38e1493a3c455a08f78808922a460315fd6356c23dcc4889b53a0d63b262ceb5b3ba31c7d00772db4ed63ea0829e4a35c2809be3c6a59c81f61941c225078d433dbf5c101dec8aafa17cf1e00d88daee7eafec2d5ce9198203524eec1caed0ec5832f112bc15cffdcd70cf641bfb737b4ceff1e0cbd2dc60d2aee534c50d23e93795c89230769c425e52bd81e872c5e995f82ff7103e385a366e7adda78ab9323b87d50216f3649a8b114eff0a5daba6c926335230c9f63959171202ec42613c2168af5b763a2124e0f8a0b2a28f6f93b216efc062a5f12ab6dd44dad289887385765b73d92de1b592121d60cec67c270917afce414eea803f893aabd627e85f8dbd0178850073deea7ee1a9747ca5c5b632349bd28a64c13fede4bb585a2827794b24a0a8c94c1eed600966e36bccd9e507990098198d7d4430318ead329417f53715b5f58708244da978fe7535c071a60f0940bec100c38b93bbbb83429ca40997671443acc9aea953fe95caa30b5dfc1633f0e77a9a91106ea86defef946159abdc4d2557b526700063a1e06c3205349b5aef122170e0fe85b0e8f1c8bc84c7d367180f548b9f36683f395aab86aec8849993800ee3176dc740d8569613bfbd7742e77254a7219e7ab8d8aac3cdb12b13f76f14cb4e3f88dc8d01b56d63e9c56a309c770bd89892de833bd9cd00fc8daefcfa096f1e8d21a083b1186689caed8a0362307d5f3bfda415124d6e34ce79b4521f2698373cd9cef37c3d68e95cd57244cc5398a7bb3371fbd61775ecf588217d1bf285409c49d2a6e7a5eab15679ee29491ac6f1527faa201aaa3daf62ab06656455d4b88139851f3d8dfd09f93917700536079c21665effe276f81cfd622a21bb3686da61514f240a0a1da8a4ecd3007519d3b7db9202226546ad092da09bf351525fdc5438ea7c96caf9e5fcf7792906d45da395d1dd5a26aa9f53d9c0e10f998b8c712e0e83296a0c8bbc3a2ab7acd5f5ce23d6e9418c39d4d41be3a5974b88a66139556faba0a1247ea404d164945465d953a45e60b5486fe2c76e1d7b374e8ee0f486d5ab48b34590a543cd612cdf4dbeea552b7de434c01842f2d366c32c518ce77a12cd4baa735197427e8ac1e07954c3599624a00add8ee4ead199d6ddbebcbe61c5456ad011f20a839aaa04a6ad0d24316b4db457e232e521821164e8b57969002c740aa388624a61030dcd15f5c809aa064f03b1768f1792c33faf2a8a71cf5745bdc001589542402c8dc0e8e039d9fb813d66101935b24f54478237a2cbcd13d165e910e0b6fe8cadb9d464583368d612b88eb0d908b59a6550bc3e5925e1637cc615befd8dada75936074a58c41f5ce19e1dc96e11613cc94ab42bff4b3792fa23104a10b66b881cc60a67aa703b51db234728394cd7efa9a2d9431ccbd0b3102d72c4c2f896c3385e901a6c84ea60b5b49790a7d838cb89b6d16d00c45229911db6b33225c151af57a57e32bc5583b2da8584c04e9b2cc21b30143960768aab6f3f0018fe2c328cc44f6b7c98d35af2dfbfb31494c2af084fe7e58453a6136689113ed10ac5b447c834f48806d6535a2f8a1a6a7a18f9b988e7c38cc034269960ec29a40615f17fcd00b11ce19f349ee353d50449975391f1ab9a234475a292db9c2731ddf5de30aba8918b03ef043169f4d897991fb9df32dfcd434b027f239cb48dc209840c1982b2ea209e19d514126ccb808fd82b66fbc90f5b5cb10030ae60470b7bfc28e252ff14ab608a2175350aaa4b14db4b81c190adcd522fca9f5aa99305c8379e63cf41775d6220e549437689e178fc7858958db9da3aa48556ccb907b738cb087f5544cea0a098ad3fb0b20546f59a175a2f0fe2e094b85c12b82d9b7019e72a47cc022ad0742d3e0b8e6819954b04f8c453694caf510b44a2c28d88f48d15595026886f624c3c72cf19e9dc34d4f0978213fbe145577787eab3b7ffc7aa503b2b034812904616236e306f804cda9043ddd765d423ae374b1e88af4e1599709f82a35525505f92fcd5233782e5f6ed666082855870e8a1446d4801d8e738b30db829ecc4749557306d4f0719256cc99089fcac993d16eafdbfb8860e465c255f7b19e23a5f07c487ef41f97736b61358d1d5e85727a9a6666aba7501f4a5ff6664250b8beaea1185ec1c53f18c76df101391e8c6f2458fe1ec375fb5728c5b4ce32560447031d2df815004c9facbaf908768f4fd9003d46d0d82543bada364cab773b734e869cb7220f416091e93b6c256be045612ddb8d284999f87409fd2a38854343b81f95758caae8f0a03d49b6c2df6dcd43dccf78c7020b139976910f20419e8f54be29ac25afae9af9500e244bfaf597a537d0d0f04b9aad9e1388ba0ba4e9dffe7259b2e21514d8684760c0a8757d3c3078d709fc3c2533bf9aa39e5adedafed8488b6d43867deaf57273f42c132ebb8e13fce0cdbd3d417c72676bb822993718a488896e38562bd2574ae04a187e49f7b71d9a58e9d90d876bb8c5ffcc6ab1210cbd3a2129f78c9266a107cb5929fc828ed55ad3c5281d8225e898cb7b6e593e0be6c731b98e4f8889c7853f9b6fca5db4cea16c1a9821f749cbea7b219264becaab1b5d9557a09c1158d38db1f09785e0e5af1cbf59f6fd5747f80d6d8da5a3f138566ecf50ab89b939b4e5ae3987ad4e89ad2705fd6532e08cc510da06aaafa9e14d29328e56b00320d81819596f692781d06fe1d854c25d00bc58a6e6970daf612e9c0f352cf92e61a0924a84aaec23ada1c10092ab9bc5c88ccbdb6ce37f50c2039dd9435a101e8548ae90f78b8048989e4854803816977a5a76612056c86ad8d95d0fda3268d397ab2ec71286cb9c1fd66ac0ea3b440db328fe42f49520e9258fdcf713c4263bec872f92a919838b981c7d3296a691072ad99fd195117006e129b02afa1a29b1be68b5e0fd9cb1743fd426140ffbffa904eb01f61bf0404b7c9c465889a4b06e11ab874e539e99149ebca99ed85b6f1848f630b82f7e82c631d481c7d2e5226249507865f74be8b041616a30f011865f57d5f0906574786d046223910f3404f315ceba93ef40f69ccbdcd3d352818ef3d311d1aad8b33e2d74b0bf93e472c70746537b7d3aa0c8bf8039b4897e26a2dc176f157dab1811abec7007cd966c2c70bc08ac1b167b610bab2392f62345a7f69a420fc7f260c1b9d2bf26032ca82e22971549a8e3268cfe4298636e9b077658b36e21bc28ca9f44ee3764090ff3859627aabe75d709614cd401914f7606dd8579d093b7d7b5ee16b930f1056e6471f51cb0842804a098ca7e80bf1ee48a25759001fe9cb796f3c4f83dbc76a8872d3eadd2f1de44d0eebdb0c82b66dac553ff0500184213c1bd3e17233a2685cfda3d838b1d8001eba0a46be31646ac3cf6a6908cebab4ab17bd5e90e309c12a0f9410a299645a4909caa12205b34c36e001fca9573c4fdfd97949fc0acd7e9e5005cd2f4fa6109a979d834ea33ab6ce43d8888df643920c0ac65ebbb6a1dd608c83c74e8789b4d7381fe35b914ecb67db36b5935470f6c1cdcccc7d1bb27e909229bb7636df9426136ab4f623a8d4ad177a076162113f1fd99256f06314daf1afec9e5050847e8b591a4693a27364438bc1442e0330ab09d096968c5ff3814ffb8322246d7164aea80b770f5205db38117de66d141c19faf0c520f907322054233daba06c98f7218893f2e2e0b19d0c8c8610bfbc5c43332d0be2fe390c4a5f34812efc89a31314cce1d56fffa75043bed30dd51af71a8b64af1b37b328f5533db431645b9e1a5038cfff7a2539802833716de0a217e96a9242f5553693c53b6f3894ba7013be6f6380c90346f90bad57bd2a5e5545041a5d0965bfa7df84c36065c836d6e30c44162943a047a7294723ae4f30a022a6119432687dd380502ac6107287dc9e5d5ed6d9a46e4117d933a3cecb4d30e94578df02031e0a2df8d8bd1f0ed6d9c6c1e27a7919347076c0bf95d43e80aeacf248ef9e70bbe08a302183d1f41771add951d44ea451867bbe35891db47946611ca9e90b0870974d3f12c789731b6285423b9f355a65ec1b3dbb25109bc90964f2cb244ece81bb981b8b3a345c863f1f03713734cdfda3c45ac224b35ed631f2dfeedccefd4ced85b9d94cb868fe2542f2aad8ebd9fb1534926a58864a5f903b8bf8cc20b643f00080177c0163c7ce1655e38765fc927300c3b0ef5c792beaf9639908f469826f8706ff90059a87a52ad9411f9a59007064395afd3cc650b7a76f8571084d5b8222680b9f384e850f6654441742e8c620ea7f83956461befcfc25892b5a5b4d6cdd502986abb400d04a25d73fb44527b005b90191c51d839ce3011d946a9a099deb153f9697f97f759b48cc0cef50a8bfbcfdc860db77248e59def8e2e3f2aa4d24b77f36e7cdc994c84e811b1bac4e882db412303724fadf4cf51c612bdd0dd8bbdfe7a7927be4817984fb836422ad6837c72631a32fe2931631261abf69b001c605c3bd0563bf56cb4da23b14763cfc24197f211479a148696f0217e0838b77cfffc8f4b3c63e6d9b4a7f1e42d82428de819b08bc834d3bf0b25d288892d1e763f3abba42ed2f1d0d91563302fcadb1223cb35b4d81c3e7748d7e4913b84b1211b51297790aea41f2a37194b1275df236ffc8c1044dfc6f20d76820748ed19d49eee9b87c3f64f402be873b4a2f5df5e3b5962cf54ab03c151080ef2a9f3ef158a2f9119ccb31a4a447eb1f4e4aad3f190df8ade4e59a79cd0449872611e42a226ebbdc8a3e0dc450ca5d59c61c95154d51e6c4d7276c746aee7bd2eb9c83479ba96a0d7e3d8a1e27e9fe81e87533387ebe2d3b488422bd8a69403cae6a5bc9a9355da1e8a91b4d4b96546f3e555a4475f24186b64d1e29c37e0c352e7acf52dbbae6e936c3f2d230ca8113bf4652869bcac35d2284228e1730dcbb5664152b0cc9c6bc5cce254f4e7e6214622ce5c7bc77637446a0049597e6ed1a8b43d5c3f0cd12f9e97b8c74552af6bb0b63436bee97e110366fda227174395ed05a5d058280dfc7872205304fea6bfd1af094d123fe111990c498d6d1f060bafc290907a5c8afe6064a0a05acf32b1a562e21927b7a2ed455da23cb2bc2b0860a0fd0059d4d700f7eb271df7d4bfc6109667adde0bbd2d599e7edb098c9bfa052cdd8eb57618047886fba00d7da5dbc4a86bdf0cb9f8ae691349c53065f10a336407d942d6f045475dcb386446582ac24cbb5451c0c71cb4c86a42c491594dc97c9ed7fb66cd838c9d900488993567fab7b1d01831e1cb40b1b150d30438bbb67e0df7db78f62eb4104a1b6eb2f4428707adc733b0a24153cec2e45fb97cc3d944096ad7b41dfbbe4c35d408ed8413eb8a0e2ba9d576e31c1d003bb19d2f8eb1f90ab87037033e3abb452cc3340e87990511cc144a78902f115b1a2fcd67e3d0cae0c0447bd2c67a2c82e6d734ba4c8c668976287c1d5972f2c2466076dcb319c528f4df67dbac26f856482a5924c976ddb55cace3efd404a44cca9411ecf8a1e15362050b3ce1afbc526bb221277d69ebf7e23beb42ea7b583c0a503e6439612a70c97d1c38d9515da46af512d2a701ea127344b081c5fe11ab69ac5db46a28a0016422dfb5a95c8eb4c3ce0d9f237d2d6c5f2ef8d17fb87d0f8ddac525c715e01e00008ba142e2d45cea3267c2a1aff5f9b4a874785a20f74fd744d0af2d16ad3c822e5bcd948fb50ade323e68c8f715ca14a9f24217b1a8b8152a9462df43e351753eb37b0f2a8d65937c6da497d5bb2f6191ba8bfdc2c1652c40b8c6c01ac2d6032b40ccb8c3312b0eed86e486eddc228c20cb709c100bbe2568284a942261874541764fac7babb939f6f8681155b9a1d9b531d7080974f203442d35d56531ce2b8d554b227341e1c7968a10e5676675450f1b8975f863450d6d5932bad1a2812da0c8bac3388a7721981d12a51e3ee50a01cc81820673ae7a0babb36a9e714dc3d4a56a62c0988b9fa24632bdd344bd8ebd99dff77295581774fda228e5a3515d07d1dd4722d4539f79e4bbf37f160ac842538a11cdcb08f8582742b19113c460c42efbc3578d4840e4c8876251536ab010fa968d5208d217b073bd187fef2ca0308244eeddff3d9d9862fc71b043dd5c9c3a1238d9717ab0e4af137781412e1354e40d67c6ed728ee78211ec44815c77e75e12bdb3b9f00c2b57c93a4733a5727c11c8e57957eb59453799d12883561bfc937da11836308e6f61674d3e5c0643117be2335172e2e3d871efbeb719df9498f484d705c4f0230c614edf1c39e427cf4c2cdaa8c94b6c84df05d72c2c188e2254852d0b2f260a19d17679902a262cb58d9c1bfdf22e6234d7856e34d6a797968f73551e29a0f41ba63974c2843af00ed7dc668ebe548a96d2954c7f870b2cb22856d46c4b0cdb0840c488e8cdc7b6dfaa8156ddba1f80b80217350c7cd2c11375aa7233c4af3cc0b3128e05196b3a1644011e6daea862a4d2d997b720e3bda24bc9957e2c00e4ce69f58bb8d7f8fcfed12e57fb08af3276f00b2da37a3c933e10218df84423209458df92bf3339d0c469b81c4a462427e810155597a3354ffd617d3d0daf87d3b7028aaeedb8be13140354be352cc56f8b82ca1dab11cc18609633f4ff2d927860b5e7f4ce5051481e4e32bde4f1f5a720cbfe1ac689a26b416f9a80b6be7358ad6170725005549f821bba38f3f0280790b3b1a07d535f0116738ef7f8beb2637304d432ba6dc587320595d84745f8ea47f1301fcdf5014d0716b23333846951616709913b4e9a81629478dd915c7e1a70340d59d73bcc3b9ce08e91c247f20a674bd4410e7624850daa7e96e4e5269e58a6fdec6957f899e4a03f7c6a92fe10fa0c02fda5f4d23c6b1a637f2c291697afc2dcb36b9a37d3ec38683e66670fba934a721be6c1bf72a545accd8985ff5ffcc34c7c1b51cfb9c0b7eec8bd5f3dba38573618245b4f8381283f5c43f02525db84628a66ecba409f4d49da6f5017e4efe7e0ed2b19ddc6cc2117bcb07495df15d1aa494c79ca9d51a139905b2da039bdf7c50a215ca498ee209d228bbe5edb702de419d252959bcf4ac6259154a3ebebcf226087c9e8c9338c5b15c5f28bba23379c226563b39a97886c3aa2e890af47a2df29b4d63fe62965d7384143932d5411da10320f222ab4e40b344939cb7d783a2c6c4c1645282792e4021934401e29768d65ccd83ef49aba0ebfdcb760a8fe5a259fe8b7613ab52ba5e57483c7fb0b6a8113fd607d531a562790ce829ff4d3582e0c896c5b972e883e6df626d4dab802802efe7513047f5200a7705cf899ed5ca448cd973d241f1dc3af578fbe1cc43c3e4031a30308c00bb93927184cb8ba5d0524b698af48b7c30a976a9de912d72e5d719e105e02b6c285bd1d9cb61c34c3d1f8c01d21a0e3ffb4e8ad25cb6d29370fc48275a529288c029d7050db7541fd47743dfe4552f53e41d802e0d257608b34c96ba07c92a90ab59d95db2158b0c859874e87f6575e3ea0838f3584951d39294166abc8774f5d1719dc17005c80f86984d2fdb539004606219e6c31979cec4897e43ff15721276dd62b7e98c7a39259909f047bfed70262dc6c5f83cbbedf367c5e42a55ea03bd58fc54e1bb459c012a53d0ceda892f7acf5bda31463a4101ffad10780cceeba96edddfb64cd55f05c5ec26e584bc201711ac149397a65ac0adf8a5aec8cc9e1bffe9f3486a6ee3adfcc209cc9725552e13e5928bb88eadb62a9851c03b6fec8111dcac363f1e5002250a651811af9740b6745368ab3366c4889b47001416d0943b44a951996c8d3049d46d293da7dde47b32f6741616b5c14aab41ddc4c5c2eede4115930057bf5eaff642ec9e7215410a90a55b6b56850fb915bc0955413bac6d0fbeded854c10aecc337e79d2b5891afbf7b32d040a05b63bb9fadc599c4bdf1e4ec7e55e96647c0cea0b67f0c6f4e21a0657f59aa927599d61899d5830c8ae23aabb988ef89e11b13b80d91baac1ee8b6c81d5a0a47c5208ddbb2b50dea05be277d60e1a15956b26aca3c93e79ec5362c54c0f4c2954220be1aab2418854cf24fdaf96b91cdb65fe45b2b60bab73924c1c9ed66fb465d6e636ed39a12ea33587d51217f9ae3c6bf752662d99936077a0b7408ad2e78162557cc903bae2a3dc54209024a50e9f2705136880fd759e7727158c464f42020130fc2faffbf17a6959c1c08c8c2644374c3547b3d5f24609d329b7b45b7128d50d14b5b28c430887128a6e2529d256fcf362b67b1b244dee2de5de7b079f0d260e8f0ddfdb9ed68705fa6b2d49d74ebf6a29ddfcb56baf176825dd94e376343259e4a3913eb06646e557af5f73582ecb6833dfb39a0832f3e9ecc901139111254d2a301471cfc867f23d27b3d2fa5b79cfcb5fb39404b2ceaf59267e65d55a7867a33aeeac1bddaf3c6702ec13fa2a0812024d6e495dcdc567df59e5cf0e8e11b31b5b4d5a716795fef99d6d3a00529484ddda979788b8b3cb25df59a6d36b6e2d33002b64007688cd79796777581ed6e7d7a004c4ad4dec8d0a5ac418e194044c8a52ace4fbba34c11189b524308c040112f79569268018257c808e2879a2c47d0dfbb2efeb13aa566575f3b0327908f2ebcafb5ab4b2353720d64c7005c11af26c92ad6b1c4e4e94efebceaf2bcfaf18d4acc7b0f5abdac4c65d75fabcaacde76b8a860445d34fd891acb878ec7b1a1d2372e247ca975412a458ecbbdab3066513acfc8592aa6defa68d73bcf212985862b2e116fd3ad213af61bf7298bd61658011b92bc2c952c66b925f4338692d77f804a9aa9114af60bf72e3baf25e92bd59a31bb80e0ab5aed15a6bada3ec98d80dc1742dda046bda39350ac60cb9f72854877caf20c438ef7ef8432e1cf20ec3a15e6aad7508afa5d22b9d96a169ae3fd000d020b48f1aa416598179b82271c5e335e757545ef322d6d46b6e0401f43aabf9e4c6ebacace86b2e02a8d71c055a4c5e731b8cc001f27a0bfa9aab3dcee46ba78fd7bc8d7b8f3ae3c05931aa50213b647162d8282103894487f22b0be881e905c28ae74d3864b5d65a87e8713666a5ec7aa2ac126bafd7413aafb590d7709fb046c813b0f26244f9e17098c51cfa216fdddee3506833cc42adf50e6c341933222369a529d6485e03ad78ad6d6a725fe3de0de242ad35af09ba416b5175932e32e8265d64969363b237e97038a4bafaa1cb0f87544a7e58c554850b3710a518ceac71abdb069bb6f7a89d4ba4170a79cbf61e8543e1506b55d51cd64275afb5b0c646187d8fda7964c90f791ef296ca7b1c46b34dce7943ce3539e78cb5f523cbe42ccc99ab3d6639e7ace6615673d6f2c912724feec939e79c6524cbe4bc61269fb98b8bdc30e56d6c783be53ddad8d8f076ed3dda68197d4d0d6fd5de634d4d0d6fa5bcc71a28b4ec8542de46798f42a190b769ef519885f3c3216fa1ef71380401ca7b1c62358b5e6bde3ed16baf79eba4457b8f59d34802ac6912870026406dbf33af1f0e79fb7c8fc3a10defe9b2264db24306180c3531a2a5ae38242d364b6a78abe43dd65c0df9e190b766ef7138ac8911f6130a73d9d5891f0e794bf61e87355c1dce255b6a8463ef7188650525c663d92412171bee1bda0cb50b15a7d7fa2c6c38ac3900139b9c5953b9638c2bb9031edaa8354138e921d87787608739043b906f70954c2a3e6d129e93c88144229148241289c44c2412894422919873ce39e79c73cebc057b8f397fb130f27a8f1a49d77b24b22c11d6e7cc7d442191a85588ddf4acf0e20212893da59ed65a6badb5d6422271c85be77b1ce69cf356ce52cd136539e79c62cae74cf499b75bef3113b54a5423084fd4782291b75aef91a8892a8c9f96e150186cb3a44ee43c91c8dbe67b240a55a25aa64624f4e36845d05a9c57e767df9028b5037dad798bf51ef50e71f883c6415c3dc9213dd18a98738663f1e37467761764eb0a9108352db34a7503415583340ed914396972c9b4bab3245a9f5f3859dd6d8da928cba282a42014d6b45343bea60458a5d8a610a2f410b98024595b328cb0cacad66653a8aa504f712d884f9ac8b2e91299bcc204888f1f683b806049a1200c7616172b42c4e05cbce630dc942590a8d7b5033046fcf8727115656ebd62baf021f71167d6b899d58d483c6284e5e9adc98a4f1198484452b98087412722704f24f276c87b240e53a5302947d388e619518b382b1bb0d6425637222134e955af295c63450b7138dcaae213f654452dc87098752ec259e90d3991fb86c4e1b0a60522e42dd37b149a5d6003b3c0167d6acb7acddba5a11ed62085550860ba38b3ebc1f34308732e86ab75cd8ff79885bcf5f11e856c4f3f1cf2b68716aa43305886c1f6896d28c8238ebd51a19bb8b770efbdeebcd7bdc17684bdf7de43be372f76d87bc516069b5f424f24f276c72612799bf41e894aa5178ca657db67de22bdc70cc34ca40e98489be33dea216f71bcc761abdc4420226f261e3591b4f8bde1376f6fbcc7bd9131aa5888c43c34eaaafabd795bf41ef75e5718689bc87d7b666675dbbbb5c1c295f4d535e2356f89e02d1ceeb7c7055d8c1f664f685575615a48ccc31aef31b749ae1716869cec4d2fb9f46eeaba2e4f5d1e247782ebbaacebb2ae4bc36d715da1cb3b1863dc66930b97c5755d9eba7cc33fefbadc451283fb376f69bcc7bd85bf792bf41eb70acd416a8410c4ec336f8380ed0c205aaf79d6bc95f11e75f61103f91e5dcd12d9b8283959502a215370a8e4705c228c16489b3599985e0331f19ab73fc05449fcc01387d9dbda13b8a9a9cfb9ce4849e4adcf7b24b62c91683697b65ef3f645d65a6bad75128a4f2a0b7bf830d1f411d6fc81f499b72e5ca2ce6a5655640da41662765b347bdc78ad79dbb314166978076e8ca169f208d1f86868686868686868aa964f434343036d59e876456ea6e8f139f35645cbd3a6788f343459c31a56bae9968fa62545603dcab6a4de5ef30f728ba23df11edd2721e4b0dc21a74dafb42c454bd5523a13534d9da68f6689299fb991ea73d344db557307ae7902eb3347818dcffc054d14739f79bbf31eb38b646f549c5689bd51a14aaf726130180c06834135180c06831ca6fb603018e45866265e6bde9a788f5ab725b644609525f1785e68e5c06973de636e49bcc7a0eaaaca9cb30c1a2db91d4196f6aecb5b11dad539a7411a241111d68285d84ed41c9ba66971eed0e09eb0c69ab0c882ec5c371d936bf2ed3a3a154b4c49852b499d7455e5d24f6bade79428df75b996d3db4d80d1d3082a646d4d2b28284d30c7b95cc3bd4757498e95ddf6b43d5999952a7003720676a6947514e7a7ae24b20d06b3a02e7421bddeea8a222982e4eecd5d957b078305c83a6e2b97ce6b2eb02aeb9a5659a15624d4c24a0fa9659c84363627112793a8ab5d9546e5c135840ba9b6a2241e2725ce2325e07a127901f5e07125ce463e3fb5d69aca7bcc41aea7ac5b736b6baa14122161cb68b9e5440d6e71522405968aac50a9d2c34656c40485d54d4a94f7b8b3ec7ad25c9aad64cecc17d49a0050154a56ddd2bb2ed74f34329802a5e813164f35aa984e753f7bbb6ea671f21e73906bb4f718ccba724687822e4913a01bb4830293ac2b35de3d0b22c59c6f3945d2ec8aacc4598d467207734e95cff798c93864c9b5ed19afe7ac2c014675de280892234d475b53a989481d899f12b3f7b807b08100641da0b041b15e7338e73507ee78cd791af4352f46892a33baeeba2a836e8b675052f389912543c25c976cec3d069facbdd67c43418ac16ecef9e84e486bad735812fdbe3a2ec8755d57837de90b298b974cb3ec738ac664a9494f931fad26666845684a394e889cbc7de61b78f2e23317c113245e50d7d599cd3968838e478c6847d991382157d858b6ebaaaa46d2657696c3c359122e56396617e7f42979d278fd6c6eb934ae5cd85a3a6b37a8d3ae2b3c7bd364bd47dd7c8fc17c41d841c95c99d612302cba1319aeacc8becaa694995dbde6b0122326706f56b3637545dcbd334db0bb4910aa3215981eb313d3224ba25596f49aeba934a74da290b44579253d4936d9f8cc3f70b5ce5259b76d8adc6919db53902173229a6a6b901fa51ed0185c56435120459ff90734aeaa12204ad550daa885af3b8839c5ee5e73201fe3f1647c3e5fe735afc82027aeebaae992454b674c4b6bc96bae8f0c8db918c16a51e35d97eb22ae6691551220ca11e76206514f14939db3e7baaeab9d34119dc5e2492bcb39c475b3d61a096b0baf85bc472dc1178555b68448b3d9a4b5d6ba86883788ef82f0eac5868157629f39c7ba01a498b54ffb94baaeee852904104a3ec8b9997a4d41a16ad2a272ab4262a2d062423ff3043420f30940a5616debbe404922ca13e58c478e253ba1093f7c68251a83ee10f5a4ecb596827a3d957cada78abce6bac77bd44ea79bd59c836362725724c059d54a3cde63502b6ac4bb2ed73b5c570d6a5ebc0b7b5de1b54e52853204600a60b9fcfc74e22949eb090b4a470b2a0bc95555a5ab4415a4f97397220dc5fa238a266b1d59e7d05af27c8063a99759bbba4acec60a2ad12958347cd4f87ad1ca9ce4fde06d096605c8ca9a95b9cfdc08e77504c2dd1b8691961b79899210b2d8e298596dcb1359559a64b94165bd253f736da4a44183060d1a34a81ab686cc7591b6f11e35b8486516621187434e4ad3892ae2eea9a712b5359a17768c0977d8f148725555916f579ae49c4118ca2d8d1d3d5a48e79c736a02143a6e8439a9d1e2488fb83317554506bdc73c438b69a42045a425af3930a949065795b232e7233b9618592375b4bde659730d23671a554004a0c9c1044c47d34fce39d71892697048799de3c80b6258d8d89a13b39e3ba53a33a08b1619c0c8401c9df8ccf3d65193cfca11ca301c3f7a78419ed65a6b0d0134b61a563f3584ce62cde3b5d65ab35861b644ec458a48cd8657510fa31ea3b4cfdcb86574f779eb46d867ae55bcc72cb7a285678b68eab5e61b4e01545266b9b0cf1945b2ecaac68d1a77afb93e9175ab27307442acc759142062eb8e2125bdf32c005ad75710744b0808d0160daead21a6dfd2265410d89c2e74243179b558935ab0bc4ce95297e872b1eb9ae17ccde120221d60de1130a233a56cc695b7ae15c94e08cb1a71b7e1fa6eb34c81130a671064174e8cb8db38bfdb38c36ccab6707cb779daa0a5d918a5d91cd9f0d8f8d804fd6a53a4f4406793f32bf7b0646f5a50e307d9561dd20d2ddefaee81099306a539e58992e55cdc3d687df700dd8af1dd43d483db130f459e7838e2a1c8039287a5b6ef1e9c7ef580ec1e92cfa8079c1d1e17df3df478f069d2e1ab4987241d9c7ee51d961da43a34a3df3b78fdda41e9d70e4dbf720e51f6268d5e81010764c6758723ceface216e47e8c74f0e2442e08ee2dea1f9bd033259a4e27b076507a42787b527072a1cbc389471406bf29d83daaf1c98bf3a7fe51c76d89bb5a829ce0aeb04130eacef1c9e5a543098537ec4883b07e45f7de790d4d9d1e4126a72c4622cee1cacbe73506ae2e0b495f39dc392839419071db35779e760e2d70d6abf6e886e70a3b3facea16f78feba01fa2bdf90646f2c40e3476a87058a660f96f97d8332c4092c1a76502b2daa1971dfa0c4567ddfd0a4d60576046cf9222aee1ba8be6f603a37786d08db5096b541286b68434edfb0c3b3c1a76f0872c6fdba01e7575ed3c4dea44f6ad080631b027222c553df6b96364757a24077d40df98a7b0df3a5bed738616044ad8e3963c9d732ee3551df6b9ed01a35ad2adf6ba2356e456a988ad404a909aa49d614d5f49aa57659d3d36b90bff2a293bd615124bb925d558c2063a8efc5b0ab215c35cc9238a0c0887bf1f94fdf8baa942833e6a8c8d8f123eec5e5f7621c4eceafbcd7ecd4f0b449c5ac36a9b8555cfab5d854742a4afdcad35e6c8b6d51e9574e84b23720300ac2d38206598ab3983df29d1805e2c2892ec9d2dc32ee4423df8b3800a04b128243869d0da3b8178b7c2ff620839c7c2f268b452dd1494b84426c12bd886508f84e446b89cb96c8fc951371d81b15ccc50945b9a36222c54edf893b44640986e0989c84a0fc84c59d48e43b51a9445c2236119d5a1575ad8a3b0d686a6ebf6aa0ebd110d6f3fc956b40b2372e33ecc076e8c268e088877cd790fc6d41d901b6c32dcb2bee1a9442be6b5002ce280143c89619ce57dc35347dd7b0646a68627dd7e0d4e055a7e1a74e038c219d861c0d3c06f8aec1a7c519465b9c61dcb069c81c863dd17e1d427f1daaad0d93d6863c863ec3a0615108df8748d1e14e1ff6fcca854cf62695cb6a3274b6e543220ef25de8fc508743896487ae845bdc85610fe4bb1086149f1b4ae694d8e2e22e64fa2e8c0ae384744ddf8738c31c33e19499b04a88245c123a15e0bb50ea294c0a95bf729a277b1382e76c280e0994c7522a5efa4e03a5c153101b9d92ae2332e24e13fdf19d26ae01657177443c4f4ad4e22ef4f15db8d323f461fa2e440a83b268ccb26896d048d13469bc08f09da6cc49d38443d3439354d22069f9f84ea344b35424f8562408172c0ba2a90de07bd06d19742ec37ee5c11ef626659ba17cd24545841b55dce37b10a90c362da58ebe0799c166525045d2abbc0759fc3ae3f6eb4cdc0c5d30e7d7208fd20c54696646c9dec080476eab0b8dc60c2ea5ef332ce811b4240245460917719fe1f17d2665d349c31ac1c3c34922ee333bbecf38c3facc73064d0bcd1869a199a3199e199f99a09bef33453a3983d3677698611c1ae56e3c8ed36915bc8856c18ff0228ec49740f8ce9d7a38b227f92bcf10c6de70406808902a493b7434e3a4ef199e19a2bfe67871d5f4f1c3a42dee1990be739c1d9e15df790ff7a9cbf0953324c9e094412a435300df3378e90c4a3a43d3af5c26cade84d061244a5d130869c22866757c978983fb3a23726745168d7b069ccff13dc30e13aa1d28b882105d99887b061cdf332093198a32283320adadad5191f192299341fbe0bb8c5a54861975feca6576d89b102d4a503939a38060b8507e97e949ca2835397599a58c543693d1c966322630a86170c3401780ef32394f0ccf27f4578e21c9de50a0a2239aaa7245457cf41d831243130a8c38695392319539e38e6179e33b06a6d32bed3b86300c65631884f21886210c39a91303cfaf187c302001f01d43908bbce056c3fb05baa5f3c253ecfb05e80d1cf70b6a531798a62e04b910f4eb85e485a20b481ebe5f58625ee859798c93bdf941f972a2bdbd91788b097b71e4966465c98ce28a7bcc33063ac16bc96dc9a7e82e47dc63a231713839bff27e61e7d70b3c4c31594c5bbfc62cfd1ad3e48b7b8c538cd4af31cddc14a3ec314abf720b50f626448a1ea09c2a3c51a00c31fa6e21bae168ee499527c8a9b7b85b882bfa1e83d364d75642672dcc088cb8c7ecd8f81ed3838c09ca5a7e8f49c6141959706204c542f3570b4e0b5e16ca84df2da0650bcb6c8149c38259e40a90ae1f6344df2dec40730ca9eb91c3cbc849dc2df4d4f86e0119820412890e9194312124e26e2199fc6e41a9d42d345970ca3f15eaf24f85bb0a6833bc57805650732b7eaf4087ac10867cfeca2b20d99b103fa858213205c98cac23f1d0f70a74388ca03aae4a98d1c5bd8292c6f70a4a6f5871d1276344b0a2e25ea1e985be5758327b05e7af15bc7eadf093756000e97ead805321a7020fcdf70a3e790718cd3b4aec0d0d943776441189e6e88883be039b7e5d6bd3724e89b0411577e0f2677c0732532f1952804431d276c32bee40a78cefc0b02710ad03a14035f60d98c4be0179007d8041c0a25f814871c09d0eecf995c330d91b0b14e14a6a9b52dafa89637c877112492942ba1091838451dc61c290df619e37885272b6f374538ec51d06fa30bec34461e2e89abe037180394e60a69cc054c120c9f00ea304b304e394e13b8c141426c9c2287fe52f4ff646c25318129411d75251cc027d7fd99281c5e4c5d65c9267dc5fa2fff3fd25c4511b138d222e9453717187f1f90eb3d303e303838409fa7a31fb7a59f222f5eb0bf3a5f9e225f3fda52ceca589421c7bd380280ba1b327413884c42fbebf5841cb19733a13f3318afbcbcebbf8fe328020ada437183372f0c4fda5c5f797a412e9579ef617a597a5a9b729380a659c770a4f0a6814d4307ca7e0c6a4e06486fdca29f4b037216c34e958e6a8d3e159f67ca780b4c11534850a203a888ee24e21c9e23b05650a562662c5db32aa2828ee1494567ca7d0b494e2f19d0293429365a2a08265a2c0c2c52d03ef2e712e7414722e7ca7c0d3e4027589b2373a4863e2a20459108cab58c57717250f539c388d1883d1e4197797a6e7f9eeb2dc0155e48755092b19397177617e8aef2ece3097b2eef27441337231323a72e1f99577971e1f97a098ef2e45ac0b0eebb2f32b9fb0646f288cf140bb7a02b2e2448ce2fb04e6cf1042a7e624874856dc2738c348c0c40946960b183d4c719fb0f37d02343ac1ede8fb84b809743f138afc1c9950f4eb04252fee1390262c59f83ec189454e40feca4e48feca7f61ec4deaf505a3884aea8d4846cc9af8fe7b3a3d7786a243383c70c4fd07fd12df7fd1a8dd11940a2b51263ee2fe8bd3f93e016787e727f44cf061757e5fac4e929fd3afbf651bf79fd4af59e1fbcf8bddf929f55fd3af5c4294bd09d102ee696528c896ce539cf35d429c180eb6145052a488e2fec321f1fdb7a3031a4484be56d05d19c5fdd7f323beff90c95fd14ff9435a5b5ba322c1eb57096112ca24a001bf4b505ba312a46cb8841df6266532f9e84072ad1161c622be4be8f975ce4e286d4ce94689b84b403e8bf35d42325dc264068e13514e28b2e22e4179f75d8212f2bb8426094eab99049dd54c820958edd70e476137ba09df25e43ce1279c646f62462cc1e13564c9d623b6fb0eff109a42e56a6a06122aee70dd77d86955865c438a1104177798ee3bcc747afdca53b82c0b16ca1a8273e01d37ee300fecf3fb0e0739e3609c5f798426f6266da275640d49da0f27a3f8caf70870528020cd7d55a97211f70873df23e040489b95ae1d534a92718f20f73dc2131a41adab08dcf708d1086e6b91084c6b910841220445288a8024e17b84a565849e1e01f92b6f71b237a916108ce472ad0af447dcf796b01aa42da5512912a4458eb8b73ce1beb740a1624d7e849db539e1897b8b95ef2d713839bff21e61e7d7083c492d59495b2d4bbfb634b538b548c1df5b9aab528bb2b728fdca5f287b4303b133263548f4b0e28cdfbebfd1a611d1afa715d34adcdf38b7ef2d38ed9153d5db5559588ab8b754f9ded2830c7afbde92fcb5a548e87522f442799b31bcbfced7eb2d8bf0fd454bbecbe4cbfc95bf38ec4d9a66430551db931f712fde9da19ddd1b141e4a4149717f7b5ea403aa603da77e642487e2fe265fa5d2d2fb3aad2a58ea561577bfa2fdca026551736bf9ce42d7c312d6c3f2fc95b320d99b946943445490ac3817686ddf59924eaa9e675d6e3d521c893b8b92ed3b8b52881a5b45a2577eecf0008b3b4b53f43bcb92c9d22cfbcee264f1aa63f9a97b95771618bffae87867c161893b4b0e0bcffb9dc5e7579eaa2b8e127b1342a9870da616289e48bc51f9ee6b82222249465b89a710acb8fb9653befb987663497420d9b1669722ee3ee7da775fd8d387d644f2dd07f5a939f125a94e7c3c7c3ebe205f11cb771f1274adf1f1389fbde8afbcf7e23eee3dbaafded4d7abbcf7aa7a48bda7d45bea39fdca7b4f2aac974c9f00bd51318272f5e416ab7de7412908bd612179bae9b88b3b2f2ae53b2feed76454d4468e2039b5b8f7703ecaf7de4e4fcfc788dbf71eb21734c5339b5ac293fa95c75ce3ce6bf2bc7ee595fdcae435ed38f6660750749e424a5f3f6871da779e958da01d4facb00111c59d07fdce93c224c7634e8ccbc85bdc79c887f29d9754f290784abc25a6fdc6b4e176d946db6afbfb766bdacea61ef6268411273e6f6c5d4378e0889ffc138b2947ee58e8b8c57d27dfc9f78d24c24a0f265542aceee2be95d0beefa6e596daccdd34da2a54a3cdc27573e976ceaf6cdf378fd2852a957e5d9d61654adfdda78ba6aa708d5415ee91cbe3fab841c1ef6e51cf5aa3f2ded2e530c3a037beb7d19b5edc5b371db445eada236d518bd42efdca5b95abed0ac3aec9b433058b29ee1afa4dbeeb688bb3d3f2346904cb679f6b11525f959e659d9ee5eb1269f42c4ffb2af56c73753ebb963dcba660d59e6559d8cee63ccbf2b03dcfb2483639e3d9ce163dcb22293dbb843e9b82659bacf359ceb29c8694b02edd3042501e060606867318186e8459b9606820c100616060666084e67e6686bb74ef714648c9bdf21ef9dc7b8491c14e10271012698491f8f7220805cc1aff7891bdc9f18f1bd99b0e3cbda83c39fd3051945d7c0781d6e2b7c63d758a20e8edf74be97076b884767ec15f1c0c3e293f18e4aedc7b0ccecc748dfdfc4c1ce79c73ce39d0857b8f9c4391c2c20425611f86035d2bef11e6ed3dfe827afe05f12f77dddee31b44e261ee02f30b2b083f0e730e83e46160b85be53dc2a846a44af8b86deff1c7f61ee119429e8585bbd1fd2263e95f7ee21798bf445f5edc7f61029563e5028d8d0894f8a505d78c1b2ffc05868571791819560f032383cac37097ca7b84e17c73678bb2e753a02274f80069642a06891853ff8be1f53f5e34cac059034125096ec8d37976642586f98691431e86b9abf61e6129e9d3ebc2cbf054c5cbc8c87038c7cb70c1b07b19ee46798f32216640670811c96246a3b12f95f2be293beff3c53e9fefc77d3e5ef53f9e7fdc4d7b8f3fa811c8c5176dbec85d28efb1f82b428496c2c74e139338f7b490f239c359c5ca2e70e40999bb58cb6f9ec96aae10855215d13939a311e7cc22bfe0cabdbccae435a76d2acac268e818427424ce2bf2cfa74673ce79e5f99cf3cefce5e5e5e5e5e5e5e5e5e5e5e5e5e5e585bb4fdee38b0a9fcfb701850f2b22e2962889c43e9ef7f97c3db42d3bb819564e8e621f779dbc475f54941454d40feaf7c1eff723fbdfeff7e3451afffbfd7c9efffb09fadf8f92ff7117ed3dfe52c0f00dc3a506f430303e331ebb3434194839310c779bbc47181817732f23f3620813d885d3cfcc70f7ec3dcec43de7dc7dbe47de82f930ccdd25ef1156628cea357b03e8f552a91523962ba056b4b108c262ee7bdc48f53d0ea2e7ee7bdc357b8f3df626022e9624731c893e7dc5bce77198ee7913621e8f0b793c6ee4f15e78a9f3b73360c5c6d5c404d2018b533c2f8807c353ca3e1e77538b9ea7223d8fe7e3f1b80a2d0d65522a5890a18081818181818109f13385094e1429a626576218ee8ebd4798dfeff7fbfd7ebfdfeff7fbfd7e3fee8abdc71f8a082140b2a20a8fa0116e5df14b3ef12f3f1bb2265a40a6a01451c52fdc0d33f67ac2ef754021e37b3d1469dfe33050e97b5c29eabec7c5d3fc1e7793bcc71ed87be455f90c19b8fbf51e3388558143ee88e18347ac775e73f8e83577d13e6e646f6492aabc86c288100131f11d040933dda2b596d11a073c6a518a8e86ccb012eb123a43f40addd31a46f7ecd8d03cfa45eb9fd60c40a144438c46d0cf8f58e70490e6e9ae3e5f67ed6a047cf8608707d70e15ae133b3277bd328956f3f8e65db5853d8fc7813c6ee47117c97be4fd5cfe77e17f3cedc2fff154eb7f06f8df8fc329fec75502caffb84c40fd8fbb5dc59cf3c25585e845bf986047170e09331240a6e2974ce25fb87498fff272b3a3a335058a16988bf885bb5ceff1e53bcbc3f094c5c3f0cc9593f630dc75be4798cebfc7d3b8efc5ef75f81e4f7b52bed7e3c01e77b78c3c5e4686bb5aef5126a8c29b8b44cefb7cdccd7a8fbe66f4cb9ec89fc85dacf748dc7c6f0eeffc7ee3bd7b28d87272a2e4c999905abcf3881d17b5dfbdf7cbde33524feee4b09c4819c53b8bd874643b69f3b6de7b8770c454c4cad10a287731cee6e97207eddf56da79fb76be20fc2084a8ba1da8baab137657772a9c775c3f5c384964708958c23582e83377af54155673732c3fbe7f582bacfef72342040a179d0f1648f18fbb56c60320403fe90e21c4397d5e7358aeeb3507b678cdf95cd76b5e84f1da7945ecb5934ec66bee32dfa366efa25ed04548a376be8ce8b0c8f9f183b58bf299f14b9b24c6823c65ac788256c5fdfccb0b77a9dee30b5cd5d3942bf51e371c89a7a1e16ed47ba469f96eafd87c7cdb8bdb76c50e5306109da6ad1971dd7710684cbea7a954eb6bd99667e208ae4e2ecea92a6e59baf6c98af6d712dbb50dd193020512e455159a53dc5e69a13dda18ad6edbdcead617058859d191288a9fb9ef6a94b6ef2a57bdbe2d9369d9b695f2f57dc541b6bc7644aba16d5b35b3efab124cdcd7a5d5e9db166e5bbe3ad7b037af7645fbadd15e4e9d68407c9cd25aece0c87d6777a6a47d677b5a36884d16d79826a11d26ab261c497154ba5a568a6daa366a67a1d11edfd9284bf72d4f37b4ec8d5187ce1c931135197170df33926dc8f79ca411f75cf46d46e24adff2766d795eb2373b20c16694c488738a8a95ef99c976f73d3bb357cf65f9d981f70c6dd32d288e2537a86c40dd60dfbee7b83626adced13c3e1e78d7481df42d5107495372278b0ecaedbb565659fbae9578e2ae97bed54e46bdfc56339bdf72ed6c75989b90effa2923ee1aed5bada6a3dfea384df72d6f715a9ef676e72dc7f7b68742dc5b9fa06fd9b655b62350238a3a428464c95095ef6dd3d1f776c97b2bf56ddbfcd6d83adbb0b62c95e3696b3382a56247595b8b65e2d9eeb6a5cb31f2eeeef07ccbdd1ef6e6046043538894526d3f71cbf6dd45aa7d77933770778bbe7591be759578779b5ca76fb991f7c003ee42bd470f822abc6362aca4847d4c0c779fde634c5085814e2bc9371ab9bb7c8fc6a00a6f1a9ab7234f73f6343434dc3d028481818181818181e1ae91f70813546163d0e9862418e46e11e0cc0caf22f733333333dc7502a62f706cdf8bffd2e15fb4aaa43545ed962fe297e8bf1881fecb0b07b237e9d20997960924766449e217ee12798f2f9cb7459fdf3ce7558e9e7377c87be4162c58b0c05d21efd182b30de83d78e06ed37bf410f61d3a7037c87bec20816f0951742f81bbb840dea304968f102df21122b0017d04ee32bdc708411586dff77db9bbf41e5f26bf81e70ddcfdf11e37b0f0cdd21c81f32c2cdcf5f11e59a898781b9e6db8dbe33dda04557817b973cdea8b3c17a724bfc85da5f758cc90214306eef2788f197abd0bdf5373db3d0ef738b0c7dd1dfcf7fbfd7ebfdf8fbb49eff107c37ced611856c3f1307791de232ca5e73568e0ae8ebddae04939c173793c1e8fc7813ceee6788f3c969771791928dbcbc8a461bd4c14e5cb7017c77b9409dbd0ab4ddc7befcd819bbb4a23085c1abe0b9fe4188392e38432c4094df199bb54bef327c9efc5d77a0cab841c7f6a0a35d7669c88116beede788f7a0baded8944a793234fe4aed17b24fa5cdec7ebdec7b3cfd904ec7d683bdec7dda2f7e86372f6c321776db844ee924990e7c081bb35de23870a7c5760a2fc0a15f88515849657e0bc42850adccae7f798dbb66db93bf41e5b1aefb1c2998aafe1b986bb42efb1a60223c498fc0ce9616124064e792087e51ec85dd61b230e0e8e4f0ce4175610320772cedea83d3838382462de03c5b89064686bbea7526616cc9a7ccb814a9cbee55cc5b7bcf8fcd6b9c4f9747ecbdda0b473b3aaae65566fc84733cd4e065cf3c61ad511113073a33bc395f11e81654b5ec8b390bb31dea330040f8db81647aa4cec9c885db577393cf62e77596f60975f58babcd8811ba57c0741226eaa3c35c49011a61376519cb425895d368a4b06755fb8db757fae9b01b0a7d90e2a2c9858c46e9ab3ccc9225691de1d11f3ae36a957bed7e32ef23df63a7fdaf1bd9873ce9903337761bcc79cc6f81fcf3fee026d1628c58076e4704597c41bfa9bacc5effd9bbb3fef718fa53d8fc75d9ff7c89b20a624464c6eacea85037ea604993241846248aca1887dbdd6dc75e1b6788fae988abfc0f305eef6bcc70b665fc91c2248211a35620a4f9e02879f9e0277a140c1e51428cc81f91015d1e0d28a8a29b04e2884f5507841415358b6f9497723218e7b4ac7660a3ce7301b9f7358f3337759bcc7fcd482597ddbb6606ddf26f9f12d77576ccd5d5c15ef513bc168bceb7297e73dba29de2385aec78081bb28de230617be5d38fce45db8cb7ae3c62efcc27ab363170d22858ab8a752efd24c9dae0b14ca85ee5dba8ab355e717d23df11ef70a8af078d148a203499038a37dde6af199bbb83bef31b7bdeb72d7c47b74d91b0534d9001236c48887abc9b71c5efbb6e56e09a71794abf31eb59bf31e5d5c12ef91f54d9861f906bef87b2d4e68e16d2f76f5730b4fe1f6c38cabfc1044f1a3cb8c6df92386c464073822065247a8349b9688b8ceb47c224204119be17334f493a2c8b34b4bccc521800b152c80e4b002855ca2769746d5450df1d458ab1a53a2e583c5ce035456712e7e08958930cb9a6ba9eb33b96d92a911594a8ef82a33f2305d0ab7dc55ca2c0fba4a128ce09425fb9dbac10eeb60076a253f073b8f40a50475854854494fdc72e10ac2ef5bde5e798f6dfa6f1e4cbd7950e50192074b1e38fdea41f720f9ab07ca5fb9f1c9dea456d6c098c8d47c7888c4ecd87723548d0a5709e8908a2671378a7d3722e98692be9440c81271f720ecbb073b3d3e61df3d407a10d4b619cdda36e312a3d4af46a6b169f4b2fb6e2cfbd5d8f4ab318ebd49d5c4a67cdc68d1a4089438c977230e061823a474356dcc008bbb9105fb6eaccac249529634a2361477e3d77763526944daa2fa6e54322e51f9f046e503dc87b20f681fd4e8be7f70fbf583f3d70f61bff20f3dec4d88176735b2bc7640ed4c89bdbe7fc0918296ed18e3827222ee1f907cffa0fcd0b49402f2fd03f34353ed830ab55779ffc0c2c6cd26ce86ee43ce95ef1f78a236d05fa3bf721b257b93c219f932f2f161273514777db741b2a44a520c2a40c819014f5522749c493b969ca4169fab4384980bab2487059c0a3e2c9d38a06f448c1f3b05eb10a1e05b8b9050462011a485c417069c27210e0d1a364a0c89b60aac88b517b76e827b67341413b23c17123dc0222c5a9e1d5d059e0f1696f7410e263e4b48701d39b1a5a3e312e30765c604dc8af1f172520445f0084740c1e09ca0a03582c40b0bb5a4ec5d97857aeeb01b3ecdb2eb7a099f66d93d7d6011a3b2607d48ac86bba1274d7e7a38698a5dad243e5e6017a0844fb992d4f819567c565f17f6a6fbddfbcd7d205c5e15d30b06ecf2b8553f7caeabab8e5884aa8444e08222f97c4f266efcfbe91395db12b8a2225b612274a2b2907c9a8e10e1718735d4945b75f253855527750392d52a3839a782509bb431c12573a3924f2d8f8d65c2db736d0e83da729635c0f7eea75143673d1cbe2b34bc7860fd44f9c062510323c20d5663b918f156a158e351f814ab85d9fb3ec56a01e73e2b6084045c551191b11a5752d25a2954842f328c08ee0d96cce5b920a478545270befd944a0ad986c6a85bbbab6f6d7b276e3c8fc7e3f15cd7755d1eef040fdede7bc33d8fbbf078bcbdf73ec189322463543c66acb07abac09be1db7befedba9c3f171637dfdb3d31c405e8f24ef0fcfb2973e78ec74ca79e39cfa086985c569216725f644078644768c898f078eee66d14acb0d2d3246352b1c5249392c9a8bc80e0953dabc866fcfeb48aecc51d93b32a415064d5508255ad2b02a404012201c5e4ac2a56a9b48d211c215369cbb02956468b36ab3531a52d29b80d7429c3b492f88031224765a9b823a217d1273928b820f727ae8b655d2b9ed414927d03b2e1baae0bd4e47399403f26e8b9927b2af9217105540228c71832841195261b45567432709ef29206035b4d39293c3e68d0a55380b2e6cc4e88c91872e4c7930b1b4c5654d18266230780c216c4c8dbd3d2552eb2ae583e5b6d755132a27664a7efc0753dae69d1c5801146e40c09f3d2dd4aa8a2d5b65454e7e22e7689f818c950336e08163180a85668452511cb439af4d610c069bc205eeb2a1765cff269958f0ba622cbaa46238f0c2486e582f2bcfb2917d4284bf894f75aaf5cebac733066022a97f0ea27600db1aa31d856a8d45e64d7858a41c69bd28143bb9b4aca198fb965e3f7a7ccad1937d4a8a12a6e736e876ee16e85d79f36e77a86522cb519774a8e9025bbb290103c8404b1b30af2a3c324376d80b75dd7757d452d3c5eba5da65b325f1dad68a9a25bbbba61e7db5b33cf96bcdcc704787563c9eb4faf8e4eb83c8c5a6d7dbcb0dcbbfbed6b5bdec7c09ad25a97ea6797e4eb090e085deae5d5c4f15ee94232d6160356e7d2ad2e276f3a0a67715d69926271a998728567c5740e4da9b299e9d4968fb529ba8a85d26246e151a547b2c6a6842100766a42dbde030cc1b2d2d694430882a5228d892dc0d2951174003dac98348854898915850584a4aa313601e8a082fa3e8059e5545c34ed0d40ca1e4d95687bf12095e20aab21358ab201cd4222a821696f311d7a62b6d1c0414bb2b5cd631c99b29601063a22624dcba42f8cc088c28387a1a7088e291752154e458e626014449c164c0c41db1560364708dc9a0b4c59114252a8b51360bba6a494fd4baf04f9b13641421c1022716f309cbe3151bd35f9458097b6e0ca5ad2b61f4d5e988a8fb729dba7e66367cdeda5f50852dbe91325a5b99dcf7844ad5571d9bc53253b92a845e1edad83b0264b9bf224ab79efb1249c34b7ddeede7c6fbe5dd6dd0bf2f6e642fa49a5c47bbbad16169d5441def7a9b30595efdca79e40472d4bc3de72901e34c84a13120206d66c32f2b22fbb3d3615bdadf27833db27e50bf2786ddbb6edd2966fcc45438927116b504a9acf0c84486faab75500dbb6e5f1f6de2d67469fb8bb6d79265ad775735c513ab15021c7956482a18332706191057037b464a039a9018ddda52ddf984b51c8f97361b14411d48997d512cf54bc7f4c61b255f96d80786fb7553b67c28bf1e92733bafcf6536654ee95326e967579c9e7f1f8e6f1f6dedba7f43c1e07f278bca2702db6bcf3960b8bed0c8795cfeb1292ca451eaf4a8ce7f1bc793c1e0fe66b516d71a2080fba25233a629e8fe7719859e5c7f38c318f5714aa2a8eda83b9358346eba72a11af75145ae6fc713b5ae124d6dcc8854566dbdab77ccaac92e23b37b2a8ee9905a2c8969271403cc262f58d86488adb91dd13211f4a3d56a44591f291f5e5c543351203a7bc76ab199c52b076a6acbd59f1df7b6f55825bd69b0ea8259db61d4f249e4596c2a0cc505b2117a347122b49c2223a489ee09624bf541edea75c4d6fd4ace694a76c30660da6cf7b17ac4f6e515ab728efc713d34e8e95dd8ad8457ad381df7e625c57dd7b6fd5cd899ef0a9945b540bc45db5c7b27d5c2ffb6db0b304f3ee49f582aecfddee765d7763b56b51edfb81fbe8656fde207ce45b966fd51d6c817c74ebf2609503dde458d420d00508b7add41b916fdbb66db94b0bbba1bde669cba7526e60effb54ea4da997c2c7a6419df255e7b4b3c11d8ca0a65c249cf828816347958c58d51123cd408c9cdd1d93134b72a2e41ce905ae4cac0971828307900060a44677e5adaa12abdf5dbff76e793caebabc74f3bd9f7eef8ce33b770ad91acad96383e04964c4875d4ecf8dd838e15328278d6ff914cad923232843713eef532e28742f42e46c31c5087a8289482aa54c19d2d504a70ad190a30e4337a2d81571d51db98153c573e52c0cec0e8ad19d9228774628944409520434c744a51984ac45958df8e8aecba7c5cff38e280592e493b915403e6c35e4a02c7f3095435c47b19b5ceaa9de90d6755d0efb7897bbb82dafe5b9344f254a64d7a579a2227bf994aa47909c8ea329b2acaa7258e5dc68f47185088b1448a11d5b2786d434498a3aaa1eb4262b9299c62ac7d293f029d79a927ff9948b8a8b1855e5b0aaaa40994d0300a75c674edf815c3d437a5555b90dbcf2083c1656cd30d6679e55cd7b3cad816b51cd997fe61758d2aa9b1c67eec233bfb01655de81af02591e95867c4242164d8b59a16759beaaef514502b7bfc2cb578d3d553791b8e1541457c5855490e69f76f5107bde53792cef76b8c5bb2edf2e2ee72901d4777baa149c7e07272ba6381962629964068d57070bd005eef00357105af5915b36e894755f4e6257c6bb1c7ef12ed79a4f0fe802036117a0854fb9a484bdcba75c6a75df61a52a162c15f897f3f9532e361c1ff701cb2c640aa936a753bc63fc9e6b7ba821927a9e8c9c603c259ac41aa9fef0d32e1f384ac8354e2dc0d6f9ed56907b81c858f793095f51683e829838744ac430c8b28d25ee56144b8c8f6f5ba62bdfba6d8be3dbb66ddbcd35f76dedba5ce5dbddae0b96743ae662b429a333365ef06c04bd364e7ccba75d44577848768e665bddeab6758d7058b0bd4fbb8aa07c844fbb8ad858a52f157698e53d73dd2620f510421bec2cdfb2699aa6bc1996bbc1bc16f576751b8c7179cbf5cc4e8253bec6b8415d2cf60eaf661099eb344d3f588bbc4ddba0aa8254c21258b33ce53ab73cfd74af33ea4b5802ab7ce5c235a80298c997bf605f849ea6699abe2907612cfa38abb2a8eb0a875855164aba015fbadea4c675e86c119554c3d982284e81bec86ac027a447a72e6c849457fe419221974488f994eb0ad8b79f7621bf92be340541e57de53aa720e4ccae3f83f50bb0ae2a8881fa33585fe55de57966abea0cd6cfeafae64b3bb00dee1ca9ce2a1c42ab2a11a0badb353bd5959a624275915a8b6b55d5a507d503613e955a3b7bf853a935ae5cc5d7a6ae76d3d7ed0262c26d75844fb9d89aba98b480ba7a28bd844fbb94987007e3a7217cda7e9aba5ed997e3335261bceb72208b775d97c75beee3b5bc0d420b022fb877d433f97b73e0e617d61b1d6f2e5c6f72bc837d05c677837b2daa6a159cbeca53d62b6a899c2f48f2357701ea749dd95130cbfb3e8d5ac2047677ecbd8146201004902fc38cf0362e37886898d1b8977b6f231068046ee006c24023701b81c6a211e82ef7061a99c66ddcc025dfc00d2c168bc5a21108e439e79d77de1b68dc40d5b9f7565576abeaaaae7bdd7056b90ac33bef9c6155cdc0bc97c062de39e3c070de5cddaaba39acae1bdeaa0acc3b038d705633540502b30a029855d5985560b118965523ac6e10209646956735ab3b7395a902b35105aa2a5055b7aaeeadaadc68e43c1bd56d54d5adaa3bc379ab207611de19c8e16d84e10ccc70de3daaba934578e70d03a3ea86e1bd339c37108637df39c35b55b7aa6e55dd1b68ec51570e733817f9868b79ab3bc3401584b108f3a50a545755dd7bc3708695b6ba6675ab3b6f356f75c35b555538c37967200cc3bc08dcd94863545595abc0bdf38661e786b7aaeebdb931ef0c7378c3ec1368cc3c03b751cd3b6f55dddba8aaea56d5bd73de7c03372fe6a56a54b70a7355e5c00ce7adaac09d3737e67585c38c7b3fe1bdd5bd5575abeacec50cab70de5955f9de7955aa4678e79d778697d1ad6e55859730bc61a3aa6ebe8d7bef0dec59c2b95854b90aab3b3337dfeae67bc3bbb8eead6e58cda933ef0c22efbcb3bad5ad6e0f98df5372737cca31a4057095e90795a76ceaf3bdf8a9550a243aac3bb6284b317005a105c557410b9fc0d30f3c4d796a804fa338383845623019cff2bcde1859ce02b31c78818b651985cf762001424d0091542a4d9d42f5f92c4f53b5681aa7aa38ce16accad3c38177151934e4d925ac2ad18ca0db6155e7b36a98faf4795627ee6af459354ea57b96af382d8ca06073d81e1b14a2a6a864a81caf7aa873c4140d0d101000b3182410437128c9c230cb62e96c0014801060b0605a5c9c49a36910c3288831c6184408228018008c014086a6c80cc9883141f3f1b3c2731648dc77f7dbf08795b7d7a63c4c636e900f1f16655598d1e287e90b4517449281c344ab2bb87a97a85b6158024bf8883251d8811104ab7002ac64820004b7ce5067c51d7a6117554414562ee930545b6cfe03ae8a82ce51e077dc4aae222c9374df24a85eb13ab42726649b899851f7a0464a4bf0cc9d0077d79b2897ec21bfd18709a9e141ecc0ebbc1fe094f1c115690704b79004ccc2121745aeb85b958117c87d58eab0cd8a1b786113056953150557047815002b775ae5b1e7e5893c8706a96fb40cae3f236c0a44193f619f06a1c959e088f17a0a26e02e8a86a515ba37621b35a70eb027430446c46dee427350c7430c33ed8c8eea2daf8638cd997425b4aaeb95a9953814e2acf8cbbe179a81aed04d24b4ec462f87c089735f7ae0e41c3d5fb773b123f36baed464fa6671fd1b3d40e1e67ab3884912e4f60d6ef3392c34354749cdaa84480098a20a95cd32fc9eac030203036d09f06f673b7fc9e1f10134b85ee42a76a3b312a088987084b1a0ce47f520922731943e685c7156ac366958466ce167e2c47281943821e749e37ee92e6478281945a09727e9f920e1f7113da040c50bb924f18ebfae8ae275040320c3b1508b6840570c24c8543113ad2defe53906a5d26ee4e24e283d828562ac96ee8f8eb86fcf1ac9125b8f6695a3cb0f5a557f34004fef1ea3cff62800e30f0f8cd1a500020ca19ca14ae1b0ad8b48dd15775a02d912e79f489fe0e6ae9dc430be675507611023321c6aa04eae176d05c6b30cba90c76c1e42beeea55fe60da1e51d75525fce1c4eaded9fed2c6435f50f9462778dfe730052c046934e1129c99903f8cc3557ade00480620546be289a8f8e97cfe57566ac040f078a2f25165b6963095ae19a3cdbb3a773f32edbc1b090bde69a3280100c6be6e15c148ad94afe5463a2ea326502cc117419ae0087bc28f1e1e13443e6ebba50b83c4cc1ad2f30bb4cb3d35778a4bab193a45731693293af85a52bd9838b6a1936006740f4d64eace430da95e58e4c4c940bb1de00e0e99e95a338aa49a6dfa89aaca2a792c7d9686b287f61160d28bd66cd41a88de0b0961d99fad4082e111c84dfeedb1fce84b3ace61415777f59d34b20922f50f15ce2fe64be2187cc87ffcb611e77c7585770de19479c56b639da0c71f7051eca0a0ded4e78a274e7f03c156b415d38d2409bdf6ea7d8a6dd174cee06c7f2b144d972e537a8a307472aa873c8d330e2f3c15a0bd2e16de29e81623976a66daaa2a42fcb6fee3f03a070eb0175972fa6608b79359bcc77a362d5c728a0b84e14f53eedaca67c919920f4229a1e06710fe501f4c8f049b71322087fba78829e0252415a33ace0793d4296e1f1fb63580a9a3f9297f5317c5ae77a8e280f4bf85b08913f49b595080fa014e29f9e735c12b122402ddc02b01e5f82614e2981624e0a55823518e46ba4ec5c99d4c02b19b8562f98ead9fa7f65fa5528bace666744896a1411b22b63c83e6b9d7aea050f3a3bc8af9e7f2467067908a3883437616a572a0340554e4867a9410b4844a35d6a52622923d14f67f385a1f9a1db685a75eb327fc10a6f78de8db62bde5069d0c46959cbff64bd25bf8d4fe105625ddf755949416b4c94670e49ad2990deaab1309eae81a127c44fe479737fa563dab47c1f6f33c18fc1ce17f8121a0a5549cd66ab9e8cb4ecafe0a75c38f3b5431c09aaad10528dabbeca0c49245cb99c58c1d33f5ba6687d3b84bc3a11493235dc77c3a47f15389506770939a72a34141919dc5176871c0d18c4db25b7f6e6062a00f9f2a6d04bb5549a4bdd9d964d8b809c4c835b1d23e0ba7e697ea1e9ddc3d70dbed4a41df870313aacf3eb7707460332905862ef9860744fd24022394a8352889961dbdf964121b528b4e946098c819107785fa3e259604f4678b8b7d06c94d764bb6fac640cfb067d0494b29709094a9850cda226f910bae849463f9b6455758172104482588e57bfbdcdc5574d008935e1c19e891253c0d851e7121d07a0e7a2b79747d2bf078aef3926fcc4950058ad1747b06860bc1a4292dc5cceee100fe0f24506611175e24b11ddcc9801c126e5cd63b3af96a43e29f7552a120dd3f1b22f6405c8bdaca177ddd0375e69dfc9749be027d5bc3b83dd1032cee092f0b4dd7ff5a6c1452c813d73a6cf32668fd7c127eb0764b76d0ec5151c20f0ed8db20c7fccb6ee2b2c44630efd4cf02bed0720ad755440832409a4289ff258a2a429ca0133684a4fa93feefa2776aaeb5c35b3506c68557a8e02a16516a0999d8b40c6ed3513dfbfded659afdc6d01e01f9c5dc0313bebaed7636e7f26e8c1fefa4059930946e9f57287156544711df0d8b1de5f06c6134928e7653a08650fc2d0cf7a5d16d1b8461968cc6030e00ec61e2feb58110f1b90609a5a5f3b59fd22189c406631e0b3d5c8810d8e1d88e0baa3efcb2ae29ab4621d73b33e7d2b68af0281bdb98e7560d9e004d3c4fada493fa8b41a6ca4c9ec2074ccd2f6f56d2fea29509112db00b5f48661143890caac273bb6c391030fa2eeecfbb0425e9346be8d0dc43581d2a60e3435ed2b3ff30337967cc01649511e76ab6f0dfdaf208117c48cb223e04eebf594a4289731f04bc019a4f0556d6536ecf8716c39f2601c01d46510bae1a84217b30263061d0c7d34d8b1865f6b2ccc893db2223cec9fe112e25f59efb2133fee586e0e6318833ccab2d49338a904c5edd0dc0108aee918fef7f72893e0951153c194a60c067d16d6e5309f6a7cfec534c7121e7c0bf142387c01f6aa998030b6915c7119d83908416b7a886d62bff2c60d62ec8620e4913711f7b5df4ff6fe1ae33aa797490130fb1086f68bd826f62b6b5c42c68eb3712e80b8f720ea71c41f0be9950692c2f8475a8cc9ae232ea1fa9479a6d8ac38651d270561ee3dd07a21b167217aa5b14433f648ae980cec1c74a0f54b62cf127e4d38458a71d9a7c41fe6e6136f16ca3fc737c60a40ee3d88ba2df1c32a071b1b8c93412c7b0f867e4cec58c25d465c35aeaa296e8b9ad8c7ec6a59b46b7c4082e53688f33e426bcc89effa7995b4b5a2b13f6c1197c1e626119a46276e6b4d52d2769ac6646ebbdc0ae0dd77e0da31f1cb2a72a553b41abb48bfa80dae1d80e0da6ce23b899fd2ce8e35f68622e2cd74134f9dd5a0842b8e8bcb60e2a083a8b3137f2cd32bc215bbc536300c160d3ff1219b5f41a0fff15a10f95e84a1552836897d2b83cc1b2791a6f5f0ce41085ac3516c12f42a6b5c67c86e08021ed94ae3b1f30ab2b7b443be911767b2448dcb103d4a3a9b0fd9713e5e0680ed41304daab19df417c3505fcac3393b87ee1508aa1668a4658fbdee60405421150948da7a613b2b4a694ab07d8106f17f4016887c60b55ecfc172db737fd0e04467f64002f9fff5db391dd00c700156ab1c2440eff10be7e6d705c780ee90022685d4ad916165eebc0bca10847fe8a8b3b8eb2c70203b8ff9b903c1c107ccd9872d718ffa1c42696a16132349f8f10b8d180abcd43a1461f6e33c01559e73e28d193d2bb6e9a52e27f183a983061c8c49edda178ccf4b89279b2ffe426133a941ec882b7ef51757343a5f99ca92573c82cf6f49130c2a28a971b1f475993029133d8268d24a63455487debcff8ce913f82f0c7d8622640068af0e826c6df2c0867e99c12d94a19865647c55c02b4e2f6416e913fc732cebdeffd9a5d5bd8d5f246963a958e1ffbcab1e21970bab969a648dbeee36fbd2c2619819a55cec74c2b9d3fc2452f2a89a2a02281115ff1c4a4243228583998e14c2576b2b0777338743b6de5a502525ca542d80c794391ac025a22e5114eec420f00529e50556101285ab0a90a414ed9dffa206d6b3d918061361356c222ac8ca1004877b2510b0196019b696bbcb1689567d6a5d727f8c335c8a306eda3947be26909aec225f2868cc7bd5bb287122235b206355bfb36ceb9df497a615e47e7be029899aa53b0ee342b4758ffc7bef04015462d55bd6b92f5da487ffc038728bb87754de983dbef7db410fcade3bfe711aea7fb04e0fcd754f52163ad3b661ad9826a48294dab86fe7bd87e3c5405a4a752d35dbf573b48b1488348c7ec9204b04f9cade1f6d0a86ae2f398dd256901c8d8f4e98aca88cc27e74c8727d51304a41e03b692bd25ce35ba83859502515b57fe59befaadae78dc0d86a204f3544a09222be203951df65c4628667dd028e9441736c923df12c6d5f7876853afdd983d323090b04a8c5036041e43098889396f08d61da26e7ca60f702aa0bd2f4efb7d160f130f96d1874f5521dc4d3e333ee4d76410d8245f37aa61e5cd5db7654238453453e37c8d1f06258452c438d34d762ebe27c8627fd08305e6a2428aac93063259914a33d2f96ffbe409a1f2110a45732111ae9409a87f570371b28c8350ec60be3c60d60c70dc88edd51885f03391cea17cc05e38900c3f0c5cfc209b4f614585c778ac7480ecc65bc929fdc0a66a41cb19fa1a9e5e50a30e004611a24cab1d9a45a265c81b8645ff5fd054964ad3a88b88e7021de8ce47028f036226c7fa4746840e64b05ace3c07eab1f540481943e6745843456dc01de380a422ba22fa7a7e20b6ad79b8eb0a916d0a546a988c2d470181185065a6230680ca82829fa5407865a57f423df54798e2a21c4be3e965dfc49c7d76abcce0811026a03db16ef7af86b723e6b4ede5210c58735a5b07469452fbb5dc2f5f7e923b871a69e34685a2fb6cb02d584b710f56890c56a298aac4cf88870025d719b6f7cbdb4fdc31cbffba11b134efc47ee342e94a64cd9ec4ddde38b231d522a7bcbde6676cdf2aaf9847684fb128c7060c28857b98ea05dd786d478fbca51ebb53ad9080c197e1e8b4eecce7d6ac85d1f36532ae6b01c0aba7c12a2ab14ca8b7b46d5515ddb3834d6153aba00a46de1f5c32f1946550d480d7cee4ea97fe0348425e2e7b983ed3ab3ccb21b4f3b41750c8c67dfa2b9a4a92faf94d2fb1e94fdc01427a594d53bdadf2df316ea7a8d9612f89565c7a6eb65883b90d55ef4d5551ca45e4d1e1fbb3c100925894116aa321ce6f4cd3c82ddcf6e19ed4a0d8d581d450e8f943aeb93cb3a24d352949014c14380270dabda7cac3088d4f0f3420ba144a0c61aec760e7190b87411dac7d229146251f48ee70cd5c9d48aef406a89ed35061ffce6446107de317a6ce82561e76301a1c204e47841d96f5b67a39dd7d46d17148a33b819b883267c522c4154806bd6907235a0dfe0219810206e7cce74334c5db387819864e36a327529b7a88906841c10e331c2cde5ce146030561ccd43a64d7b80967119a754e8576e3f717aba444a94e2484665963c451e3ea671889057a4afdb38ef1e97475112cb3387f47240d1888ee91db5fd9cbe937460de40a1cae1ee59146bc5c1484e8f5eaf96789fe783544336fc8382b2ebd8056da0d08002be3f1e064d9c02c0f5fd63e007ecb32a6726a7ed6a6f653e23b624550c44e3ecae655c18e6312b44a9fcefb3ee0e7414641e1851178ce967f55699a681198d163a33cbe9ce6818e2c2a802070746f45ef467ffbe221491af452f7c545998ab013b38867bd29ca0b0380ebaab070ef1c2dd8565f011cdf2c9b9248b0d8076073a014d35c0cf8ae048c9d3589796bcdb20b1c36e80f5803581131ca1453c65eacdb2e088e38d4eb70f33d94e73a1df813d0f30bbaa8234dd4a690afe2e0b78d23eac7e79608fb7362e2e5fd6260a37ae52376896e639fdf02501019289c00d54317c1bcb485a925f25832bb84d4e01a34a55984e009a70da2d952743643776e875a1e07a2e19c8548a5a3e28289663110805bfadd7894556455785e757c4068f030650a0938fd79bb9c88e9f69848a0bb783c33f3c4b7f41500c0810f365b4fa491163c444e5d580e0ac18c01aa6be9e4c96193e9b62306809035e0e6a3c9996b5561f2c24e6c65bab057831bc53b35c7efcedaebe803a616c2a86c2a2b08b2936ec530ee26b984a5e8f7011391e6ba4b794715b3a6d0e42fbcd9e39b97800f79fe08ed929beb02a3a3faec97a0632c404aea51f33da8a4af922a67ec4824db0166d376fd34f2851468fb50ccec9f942c2537d20bca7bda9906e46c69227732cb61bacd34e397048d18c42567f02077760c23b4bfbd5b85fdd3987e4ce04dc0a8f60a31c0e42d52bd108d6bc1e767ffb433b3a7618d870844526a8fde2e6c03a2f59d70af19e49859e88c9b85bce9d5e8c74b90f56c1de8ac0d2d5836265dc213d99424a414b6b86ac7dcdb4655d69351049085c5fb3ab91b015ba7b876bf7656d4bad7ccf7eb2da4a4492496ac1bc4cf41b0676a03a67f179899efb3db0de9aa57ceb39675bcc03ef0b64d9fbc8696ec3b8e545a5b3ea05af74463ee0b9fc2cfd52ad156b0708e255200c8b25a6fcd9182b1d9c088afaa0b44b1d4948351afa34bc159190cb2b8f8dbe36d6db4da700c714f9b80f862301799063816a10db5d85cdbd451544c921bd73396ba4a38224f91c471cb05be84bd94264636e36018a4f81582602462852ce614bfcbcc0699b0257ef0a07f416a00676beb0b5acfb0c65c3ea2de2a4067163831058c047c59876e72f70c19b1e487a8e2850b80798783cb4db32c5d509651e1d84d26267700112f7a1a7e22661eaf97136bb78dcda67f6cf28027fc01a2cb23c9ce35da9af3467005b20741f3778e12a4e23abcf281dbecc90269061066d98dfb21721534f941075e564833b5afe6924582cb070540afe3432ccf17e9b97d15b3660dab8a795bce22fd56d5e520f6bdb3cd87efe9beab68dfd9060312ee7edb14596e590b6c984838d6c4dac37e1b811d9f60b3ce3347e8473244f2ea1029ceb2925ac6b7e429afb562c71e16de00a6f2f729b563842d7ad881261770624232744bad795ccafed99c3f74a5c39992d6a46eda90b711d662d0a3f9f2900cb58062b8711e3960d50d7d0bfc8c6cedc7a7fa6a9ae30cb710dc643ef25f9d64c88e34c78de601aa335ae3aa71a684aee6d66c57dafdce5ff28667f817e3ca35b3f4f1a96996da781deda7658b646fe7c11a168aa1df80596581cc5a5abb968f05db6cbe59105d1ba6c4b92af0b1748661784598249422be3be1e9c0bc2f808219ad3812c582a6af89527a03c16454b64c977b1af6b4117e3fe2417ec4873c86f91ece2a03c81fef9ec1c648d502351a81364d8d6ada96202bc332d95135ae9e232c5599b8cebaa5c213c0e6505a73e53d6216208c01b2b77c9993c035661af75a0a05fa065c55bd3ca21d94e04ffa87a36dba0ca809f655e9965dbd75aef7eb73ad15cdf49bf0c2414e3e4d3d904765ab96ca1781e6056cc02eb9ec88437ee4d2e40ff920e1fa0e29eca9315e0b6d3882c21841d080459e77c59220fdfee59b11a0e35022e5f291fd0795d89b806f8ce2ec6998af092663eb6a9b02c313bca896f50ef97b2013cd4b9e55b98e61e7a7d51a0882508d2e6fef6ec2d4297a11ca3c6282dc77d9e0d56f6373423440f455080c633ce8d591ecd3bd917f51938b40b95f56775ca62b6fc0a05ec88ae6e041dd993d89ab42ef36df702c08b8a83b1b7ae4cf56b0d8083367841c3278e93ae617cc87ce2d203fd4787e1d4559a10abc82ac1c67f4a57db87ac6199c698ab46006256e1dbd431d3bd82084b312ee4371516f516ae95263ca39e31712f42fec39939e1f51310315eb7fbcd5a8b35073c2308aa5c73a24b188c0b0ab4e9c4e0fd967d7f7e92e0587e7f57a2449c32769aeb1bd3718963e7e22de97eab988b620e42ad9ebea90bee0d4b0c7e92124c803c72736ab80f911ea0fba8b9760f5e0f2da7bc9bf96f3325e8436bf5ce4b5c740b1ee6768e7aafbf8cede76cbfc081d7b79869392a215cb05a090d1867aa499af2b62a8c873cc26c0631df11a8e303dafb71dc95a2be12e89cf4e6033231bd26fcd3c2af5989a5622e6eb72fc05c2a3c9e02ce84a3bd87a95fc3404c71d61b68851a06235b28e7d6b52a1500d942f99de5c650bc150e484aed468704ebebf203b1218e299fde19377768650f768b790808440fb89e81570b2ab83268ab13abfe2b4296cc46bbf3b5e8de808daf81f73b59144d5894198f1a9927d48b0cbb37ffaddb6d121f5d5658af7a2040826b46a4e99f48549e29cdef3a3c8d9d73943ee94a8a54e5813085fbedab8de4da6df4d706c5277a12792d6cb30f4bd8cc94789c20af94dacc860275eb605274dbcd51a52b2935cbb655bc4c1499d3fd4b6a2bcb976f605283cd495038b9e91502d0cbd44cac13d3b99778e274e3a1aba856105a27779f6bd3d33c88cda461d33e2b589f5b724d5f4f729c53a141e2132f1b559635650e941cc844210eeef2402fd566d1776600a2d4259c43bfe9ef02ece8d4477f1a6f81c735efea0d75a4b8435a06ff9e584f72ed9471686dbbd8a41be6fb89084832c1b4d5db9fbb95d399c7310744e3c56b9f7d2b9eb79c7c3e2fdfb839541721e93f3d0071d4fa11bc3003ab24917227fea3df52d20f7555413dab1fe73f243b593bd2d7cbb98cc9e20d3c89e2ad63183b4e6303d67010d0b2e31b0257b3a4606583f72357e2680b3b299e4f7c0498318f4979d75fc8f0bde9707e25276c201d81a52c30946e80649e7438a55996891ff8e50c5319c234317d256f5423469416fb12dca265384343e1da395ae8407e43abd221171129207cb61a2077a0aca80a889163bce691c29788b74b04d7023322cf4cc9ac56b997817b4594c86c4da5e50cce43bf66f2918cf316ad5a4f132a2f24706a82471852e6b3cf0018c78c92a767a275694e9894b652cbc6cae1af45e78dca9e4ffc8303654b3b2193c27e0ccec78883b54710ce07ac3a336560d40db4d2d1cd59a8bf4c88608e816123ba8b3434474457794256d4b4fb73d8e0741ca9924e23fcbad389367379eacc99472fe871ceebe3068f16d9705884266a460b90c3f5bf81989e1be024b4ac74a579fb11c578da53bf5c116c7f0d7274b7a15096b1503512a7c317206211023dd069a6d0eb3752e470726d221e0f7806947be13147dac2db8b023c2643fe2653f3ff0c84444e5b89f774ce6d952fb307b1c3903355ee7c9631fb61b81801879a310cb8ff08d8f8f8dba451c0f3d70bd041d664f29b0db85fd5946cc8896f1860118c7cb2c79c4ff25543dfc0cd72b0d5496bcc85afc7d00b1e537b45acc301291866a06adfa3b7f16d27eaec8031382301a62eb0a89c58d4689b83c06581d6d7814c4cfb856b303e46e8e960f8b03825a32989056b6349068b1810f520d87fe2f4e734c676412a76f4609c1ff26a16fbd496df35f18128631aa3b22e63f66bf8ad5f6134144f707d16b9b9af6c42c3fe0642d43e164d6467a5e0a064680653179fcae24cc7b079923e4a08e617622ef7ddaa8bce0deb687aeb7bd7f888bd0bb74b99788decbd198655e5a62155e70d76c2447c8f0ad98fb6ff4c03a0e603ba23148569752e988070f3adcf319dafcd691e300009b5f90587f3c0ab22ff15c9279e811dec67882fb05ad2a0b06e37aae5c043ae8322a6c843da6ef043d0b4fa8562a7d840daa8d8d534eab83162282135ec066d88944dcd97f45ea491f59b68b41dae74cb7a24f7d0862bb0eb1e071368bfb7d8b3a85126611b5d234b8e31517d69f618930386bb722347c9e954d7d7c9adfc77180fe2e42cbdd99153c8992aa9ea401c90e59c1b2930fed53453133707b21169df01ae8701e61cd626e7480986caf9e929b3b5225b31eecda966b49695d4928adc41fce96661de1ca6edeed46555e734bc8f4760ba1e4cebb1220c330bb751fe563b5fd8b57315c40d523f45d8a2887c28654858773674226c3951b240aa4071867f8202d143752c1dd9d53176b7c0186bd99efddd5bee5892a496292ae9d4b5a457521f8013423d8016d991cd34cfe52ef7e8ad526ebc6174c127c5d82427f6774b550c65472633d351499e15e5ef5eb8ace7e28c886c41314faed8852d82c82d741b57054eae39c169e2d07a5465b07601199d0353c13a6df5691ef62c1642ff7e8e164e1b73b22cc335ae34757be15d2730ed634b644a34f554761a02cf9abd3a9445b81ff76ba901e4edb90953712b06ec209f011a1d7deac6b6a0e7f01359eb544d09419fff874ffcea17d6c6cc44955793974814a956a51e5a388e785c3a28e0c2b234f5627e4abebb010ac113812e24ed709294fa4211c0c22aab6d979385f71fe23e57c8e5bddacdd8d64dfda9b1f6b9b255324b740b348de418d5d542b1e183d698e338cef86a92102a62d70590ddbda816d0104f25fa687aafc64038cc4281de2a83b855615f910522c895e3800528b9a60684b072ea917e3212a4e32023f4f16b476f73ea4369b91d978f0151d950aa01b3e30e19f54ebd390a191d782d40ccc265117afb090334506d945dcfd1d9d7e6d60ea5cf30bd4e84a39f696a4aff758d871471957bedd8266e473a92a1ec44de804b90ff82ffe43a117f59be16fb45feca829012c7d24100b4808057e75d31b7c17f11508b62ba968fd8165246542036aaa5911a8559d887bac34098947bd7a17513cda2ba5d29fe37d4ba9c70b5237e14c1b9d93d84ff1444c74662b7b85f75e04547e13585c58ab28798ab15e0582acbe9d12c7c20250d6419b22799b8bd64ba8cd185c98de90e88be1049c83291f164059c84359c75cc676247cc92207a0ed970846db2879f709c6d1296bfb795a9fd1a447bdc9ac7e864af5c72a20609b2f9cc81bf70f1f503dbc8826e3e1384ab1ba45e29ca58e18592aa94a5db1279b00e5fd8f5547feecf1ba0f7d3c4702b6ab965c0b57a97bb31e5cc4c2cdebebe7931a34f8eb8ef1b2d93425e0c9a06b356ff2d692599925b51838283caa65d6676eedfdf4f7bc04d81adfa3e22454563233d28349c82a23f7a7ff4ab98263bd0ccbdcf986591d1386a936d089e492da1230522afdb7a8074740371744195f466607c4404ee0f4816b15d3777f18f30515370fac847407bcf31308468b06fbf4fe6682f90734fbc832d3e634c8f45b12bce3e3708347f607c274a54fe13804b9e1d79c98ac271b84cc62d9a6c315ae0051d19942bb417855c2137ab6f4597edf269a55a38d909cd8b04e91b7a648abc4bbfa1de688f2c87b3c43ca197cf86decd077bc35d384128711544948fd8546ebb5509d93b0135e61e41e24a4ed1d45dcfbe8823fe7f033cc3154681c28ab4e38dd5cf4d8852b1f08ed4cbb5ade6a3fe215a3d3763a5500edddfcd9cb1545a674428902ebb32acdb5cfd9397d9ac5dbfa7669e25d46b24ee59e76abc3dc30a78e3ce9177950066f16ef570364729c9c184d0da3b3ad9fff9f97e3859d3b0bc590fffe461167977e23333c8093c649516ac688459d224d6fe1485f6bbedacd07b08db6c9c95800dfdb2cc192a9b5cc4a010070b75f09f9631517e428a4b860e85334b819bf61217c239b3533f985e05d93ba676d2d6b5038121c85406bc2724a7207d1c01ad1eab65bb01a1fd8a3de5626b939544b16b076dc9c2d097882572baa202fe83ece36fa502b7a6aecab1b6381f6f2407a287b1a856ead5e3c3fd7656b9f20c3a3cff90f7f9e3698ffd7ba7c875866cc84d04cb5921ea5abb895636c271edd1a80e041ad32bd429d2fc7d9ba42adf999e6d0073746c45493e4d2db6f363dcda5cd134c26a2de37d532620d89820b64a0da946878985fc2cb631f790215301b019864b931ff1ca493930dc0d8f1cf208d984aa072f631d119fb219b02babb5c4fc32184b01b40f4ba74d268ec238648a46e328f3167aa7e2f52304af632bb644ade3871a0f25a4ba47b65c7464a952979c9458c5b3ac4e453ddbe81b8c1aee1fb69785ec22b4ebf7e05abd790ba5f8e452447fb081046e3d36ba2b90c2b77dfb27ca80bada79cf6c65207a7af51c9e3e4573cbc7e482c7fffa524dca3ae6dbabb3c0a14b47a78c58d532f78bb63ec20f3c7701b7cf94559037acbc0a6b690d715afe4bd61bc6ab73b4d7ec0154e488e2dc6c6e745c9ad58db7eff1b07d30a9ffa410e12971df103acefd11c33f444c32c0f5598bd4f25fcf5926ed010dae1d2ea21386a5f5e6c06fcff769012fdfb35fa0411741994fad9901f1a70290f9d5e1cf7e98b0646506ca36379ef168a0def511fcd4444d2847c182ed040b7cf9b834436eaf03064b72a4a1d12558fc636aac0281e62e6191dee68647c48ba4334a542b19fc75703a1fb7a4cc460ce2801df5063e84c49bf635d769a4944fc19c72e80e2a942343e573b4378925dc9b5af6d7a7852f97e1f1b8f5bd5e9e706152aa854dce9643f487052c25e9294aa2d725dfddcfa197560acd9c94f28e80cc45b7c9f1d416acf53feb4b9fc21a29299d139c83fdd1519304f770f2092b452bab44db8a55f1a71166f9e63ceaa71a6920aa3640834c505595286a4ae18b072cd367d940e2ceda97f4cab4e8b11cfe4598199ea0277d7d7afc10e903512f4e2bc565c2e509c479e135765f0952599950c707a1d3681f58df23060ff8e4e3e0b4adac80e608de5c100c7deaaec98f4f26f040c5e64b9b90eeaea65524884fe1eda0062a9b9edc3ef06a0f898d4ab363992173f120e66eb72a216aaed42764c2b3643342b039965900be0fe64d8d3ff4efea7afdcbeae90fd2602aca746125c03f072ed5fcaa99cc2d045d33bea50a8b73ccc4159a33a164fd7804e82945126fad544139342541a0ac8a1fdce983608fb9e8448f489bea96a5941aede3e7502f10d04c144b90375d94e656058d7b3ca26f0f0ba20844ac2b3fba0decaafb15377c8282b0c8282f1fd98d344d9ebbd30f3a1a03e39645ce582ee15d5944c2f3f420352039d2c60b0f600f05f8751cb0e0e94534f406575d41edbcb9ce5d867f23330a76f7369d2b12a06457a384e41ea51ad5f33b55331b28582d7acfce4d2a21535a69b39a5e272064f2bef5535c80fc33dabc8ac66c1b14ee31209ac4f5305746c9c945e752f1f4b2d065b9a674196b3d1e1c59f1559a5030ab2d518526bdc413e74fc0573a4817119ceba8f1f13ee466ac17e79ea8905b6c494d5e41bbc845902b0155dfa0e472cefa534b5efb78293809c683899b505a9d5541a0816b1df0d403e46384f5a164e258df2f6ed3c177c7bfe20204bef668e0c887a580d01aede0276eb9edb863a503040ed41f740b912e9e21130f88788fec759964227c60ff89b2c03dfa7a15eee4f6f3368b9f6ebe8056de46651f9ec21a82aeb5e8d589e1e29af57a092bdc7a9e35dd536e3bd59424f805c969ed82374942c063c575f41c4cef68b6d0837eb758a0c921258292ecd00dcc2edd42b6c09b787822377debf06ea7c46e5508fdd1e48cb5f59d21030982e6238a1a8c86c4fe93fca417435287dfddb49bd113573cbede94d8064472603a4060d60fc213f5d62c6b62d9ada01f735faec73467d303b83819d4b660158c7b0e3217cf24c62b41e3ec61341f0acf4f2513977cf109f661a0f9f18807d60b3799312b35581cb76c022e34074905147c50f7a64eaa418f64315fdb1f7ee0d638d814e8bf0c8d2abc1efc5718a7d24a88e82a7228bc22b87765a5815f9ae9faa041f9e222eb410bcf45d33313e2c3c1113c10c36ccb3ed4355a2522ae2d69bf2414760209847ebf34d2df3639136d013a2d643ca2b6763a695f25c0e47a07dfdf44ab0a1b999a731d96a5a820910b1e121037fb15a7a6746b5142f552bddf6059546d654df794bba6da92043f4508f0ace3316d18848f72333c1457600a63179b064190b6dbf751b3081dde07d06fb61c6426510d3fb5794a104d9d109c1f84900c5316c4080162422ab40948ec960153def8d49fa53132c48f450c91ce8cdc9d379d4c76e8a2c089a0c3892a98094bc6a0efecf0f0b67b6b771e545e8abb60bcbc3251a9368e134810c84a02792e0a028510bb7f670d2074809bb14bf1582a7a7c7560d7c45d9b03bdfb5d97afde9dfb1413401b12b45db5796a775bd73ee46ba8a38f956bb5b65cefb1043909b69141b426345310093cef82dda824f5b3b75f79a2a983a3ac1c5654d333430b11e138e36cda32daf648180e58edbfdc2d4a70271a1c520b4beb51ce99d9cdeda9b22677065d0cb447ddfe5cfbe36658a04ba6aec5b05d1e2e7dfef68b01a9c2db5bd1dda8a9ddab0777779f3f7d6670f412876a5f2b06e487cf6666a98a059e8ea77c3092076e731af727994a3b1c34ff83806548756f888f2b69bef898cd257f73bf1c74f211c8c2bafe3be4d09c0fe4055f9afc82abfb75d5a14ce3d0c9c55e58e5c57c4a0df60dc331ef7f262bfe496751afe8d11ee965172626f9de1497036c756cbfe9162570a33e262214bcaa4413d0057ae4f93cb20b260bd3cd8cddfb5bdddc4059f842055c2be0e919f054b6420e6a4617ae8d25b999445a43f0c30b1d30bef52f0fb6c7a3fabec361415151f191ee485d084bdd2de99fde9510cc7d8f3b67bcebf9ea9b8a847f3bd7f41db6504ef1815dd6d379ac976f6907a646685612b3c02ca63e1704287f59241c4e397c03ed2d40f357d48b47593a1c0e5ba25d6533073b6e5a3cf061608c252b9263f49ade559e7ae1ebe0c6c5f571c01857a9ba17430a981b438078cf127105244e6aafd4347760f733f328b92006123ac86bb533a31ecc7172400c44ad6ae00a31f8590d83683c10da3da897862dea11c16152d771576f9c3ac5502817c9d8d0504b68f2d15e043b5c64b21c56d70cf381108ebbe92a7b4dde9aa7d990cd1f38a2f75d9bba989049c9cd7278883be87444e460794ed7ae778c9c960879ba1138a74456fe4ef64c31a42e78c46390da6d14aabab40bcaa7f12264c65f2757c82833c3017076b072eaaf9e811e05dd2600fb40994cf48733dad60b55aee4b08550f8d97c18138486c13bd7a897de9c687778ad0efa1d9fc98670d0941f07c119b54f39bd8e5a3d3605678f4cd320ec2cefcb771f29e2d3ef6d0ac517091b2bb42a3ea72d2e33a07a77d05f823afb2b14320a4a433816fde5c0decb8282415358d1b902e44db4f42d9ba685e233440913d3cd116a4ad6de1d36b6ba16c4a408211c6f0eec0e6ab5a788a8f9e2de83790238d0d6606d494a0c1beaaf39d7d958d80e93188672bb52a9ea12d788b706b247b990ce50e7ef3ea820cf4e8e823e6cf8330778553b87e11e4c14704006d4959b197d1bba146c50afd99c5fdb8b469abc0540b7ab9eeaeb80b05e33a7950cf8ae761edcaa7611c37b30718cbe8712e876489c02060ca8b194b6f43efd2e32e8d2af8c8b3389633e86c5fb1298c2c82956136188debd69615bfd5efdfa762fcb9246fd5ac1ece559e71085d21b12dd284e10ade4755c2a8c04cea07d2c8538a9f8c9857ff3cf80250427298859c6f981384c9f03d7e12f9475ac8d4c13f4227d2d5124bdb04a88e57e775a1710afe3453ccfd3e15b23dd42f4ae6c44bc7079b8d3e98d87fae87a4c53c6e9ad9a6b539330299499884f57ee6e0ca006b847086d1e4c75a879a8b94cdd4aff47710a4e33bc07b6a417e033dd8f828b8ff810ccaf9a9ff0e27ffdde64c5619b6ec7a7045cda5c0841d19c2aabedcf510fecd21c6e9859d7c5334af8e8cb3b54dd4a2f60aa0f373ce00d05c174d64e0e942dcafa33d5f64b9d03af12fbca9e10a5541648a8a35e9fd175f6f1e523d383eec84116bdf70544987b636cebb3e95d813e80c10b3502a2b778896284b52db90f81c7034dcc434aa4fd3ab9c6b36dfe5ca0e75e92ee8d34d306c40fa7d9efbe28ea7c0f17318033524181755759353f11e3dead102e5e7ba76ae1420cac2da1cb43582e7927ceb3f19e3437e7a3d21057dcf1ec4347c126b69041d1d472c33a09025bc811691c0c35bc82672368f8a3fabf517829eac83030fb548d10585c0755d7bddf0d13b3207ce8a61c40a2692a56ee5a32183cc4c2cb9690f8b67be80196e57009953626f751a668382d1a7df77246d7419124260fa0163b48b2c75fa8e865ea4b432d62d3b5987e11c1f39e391074630a4b9d1bed1c532a09a33fa6cb3b74f37171c4e1234c1a14bde4615c2a8c308b90b114322a15aa339bda56d7a9718e0bc6d604539c4158cf051848e8747f42b725ed83b5cfa9bbe27ff89c185c21916388a81c9459f44ab794a32c4897031342ba8a81fd96ff106ddddeeadd1c0607c13c069f944a4d0ad34e1bb262304d3a790c535ba4348455d4f350379da72e490180db939382aa95b520af2e4b3488856877dbca8847657de1eee920bbda4b82c8de3689655d04114407ee106e3779823332628a5d09cbb1e66a577e350a23dfeaa47b4b1a04c60e3bc0aced7b1bbf2722ab03a83dda99f53338887321cb3646db33f8a22fce2bb4cb828e3f666b932d70f870b89060d779b9f145349507083b86475eedfc66bc066d534cd2fba95e3dce8c42afeae8145d2fe8b74dc84a022fd1748dc1385a023c7d82c190c6559265c8300225a49b053802aea1519d1cd901bbc1e42cb8f0d09368b90527bb9a6fc27b0b3ab23a9517eac0b35bd07aa5ad3351e582138fd1eaa9019d50794214a2cb310f2f820f2fe6438951a4acce679c8d58008a2242df031e70c35341cab74c0e3bdb4cbc56a47c1739e37b907d98f6907c0122e64579d8f5ffa9221f122dc62ef1727421c8d414c25221651a4c1edf85e257039a5dc879f9e59c50e25edf30445ce502b33da9d752a48a64fbd300067904025802b14d3eebbf348ae42fdec74ab4c5a9efc83c167f6974ac8bc8db5a869c33191e691bfd8eb93a95d3023fb4ed8b51ec89134da8f116a7a2612e47ee582431b215b6c44644fba7f199333da70dbb7653164d7acff0c3e3c492a636d86ce2db72ec88e366998940d3f1874984cc3f682599404715423c1a0bbc68a7e6bb54301bc2685612e35c349d43fe9e32154be41fd0593dc9aa3e41084c96b1e62cabc967be0035b3b701d3a3b32f5ad0c1c46a6e5859d6a9ae902a8938d30046c1336656303638bde8554cdc812e73beec070c889562e43086ca28f1eeb43bf16f13649547cd19a3b813bba1947936b7819191225932a4206d72400a6ddd7bb8155d52ebca384b4203593f8484c53dbeee8d0f7d5a64eae947c262fc8e3e56557c43259284b5ffdd37f4ecf140e242a06fa8eaded0bb40ff9fa6f11982918fb91a1e4fa2974d33382df54df16c70ba3f2ad80777cd46b786ad125ec2b612debd77651aab187acc40ca3bc55f3ad2aab307ac8af551847aed2b5263230d1689d9920a011b809f18bd2756920b44eb187152311a0617af90f76a0ee306906afe6de81b1a9b45644b606029c18a3e288e020f7a0626066e3888cf9d35c4c4ab2ab3efa0c7d1aa5a3a976233402308963a4040e4c6338e9b15f97b9457e4ea5991aefb6520cf842b44a120556568beedd3112c448c0419fe2e92d746e049e0ecc463abb667b1f57b544285f4ed43119a1ab6415e331483a32265a714a8593f8191377450bbfcf0d9a7fd02622fb9f280d73f2b3a89ed7a726ee84a84355ec5854421dc83a41051b78c5a2240a9e4ee9df2fd591dc0b247d4ddbacaee3155a8f6fe0af22973f48018b970f4801a59f9ac122b7d963b524bb0a7d7dee1c37461a14ae5879b8841785c75e11ca26620d1b0fbae0934062251eb188689c3db6b0410918c268560381f600db477ebe81e15db9695a33adee19cc9c2105b66116cbc7a3cfe12826000af191060d8c31f3b754dcf2b7dfc29c89dc0a8f452bd6a0595ffda7307a837b82880fa431b2095c04c236b64a6bb8826f94bf65e1bde558b5141e8f9a49a56a0727c480cc48a102aa122fe2c6ed3b13d09418e49c581c9693a0d114c79fbb627d7f73d9ab7d11dafbf04a44dc14ef67c2fa20d653db96917eb04b7048f2c7cb220335ae0b7b773f29f5b0b3f41e9576ea8566161b7f7a090ff8cfd15b0cbbf488a47e937fa9e0cefb7af0209a8aa06070663aeab09c66ebf85d2601ca298ca9c5da85fe7a60621656c3cd89327dc597497a96f7902059c7c561f0ea82c0f106c82c5f43a5ef100674c94e17874e1162aee59238911df29e9cd2da27723cf7482b652491c2cefb68a2839329d25282a5f261dff24d0d6f7ccafae415041d8eb2790a460017dc3d57e8e5428d621014452a6341698009d85b0b509ba5a370e0111c210c00a0dbbaca63762112451df5eb67a774513cbca03ce83f21302ad25073524af3fd9e9f75976a6395ffcdedf221fc4e38eb9816b3f321392e7b1ee886be1492ca0b04bb1e455e890e37c368145219343a3e6c177d005ea9c6f0a6d5c968ca562393c946df434b98138d8bb08b0376594fa5d2afb9739aa4870a3c400a4bda23c6d1a2391c4c021d7998faab8f5a3392f682deb0490094c8c2240b0a87ac859c3da08110262a57ae8a0b8132b7679f2903b93e10821ad2017a866cc2e72d8471f7d58da078cacbfb23d471b0e6675ef0d5815ae5fff46ce735736364c5f9a457a01dc3b4b57dc4147e5fcd0b015497ec3cfe6a820fa24d39d40569b38109e969e03c0714cbaaae3b8897b2a0037fd6a291c90ca6b67483f6c0a45a8a981a040b230c81042f0795a3b15e65c241a0d044d4fec06cc377c6e88818af5b4cd04bdbf570c7a203cd0acdd805ecaf04ae8726da8f8e4b32d73d8a14e0025985ee4e8c424c41c8d7810ff1b63a519fa2a4656432509495ba112a33188109cc03d5eb2c27cadd17a6f3e51fc6de2a1704e521bc4e26e8c70ec26481394ad472571a675ea079be2104d7db5b041398f1dba34fde6c1e23ef59c081802cd40fc93ffa1c7fd8b01065ee70a56c9ea71354127bb38aaa1cbc5af60f3792ac8e76bc70002e7a8447c489132f88846aea3547cd25a23ecb9f48e7b462e1143d022530e2558eb518aff0b2c6c5b4ab016dce6ba8478511528c42dc307016b73702bf4420c2e850d8b1575eb25bcebc5937cd965b31f6e2a7761a9721749006e40ff6447670b72400f13bea33eed5bd4865300aad7b80fde74d8e065c91579815da08a1bfdc7ab21c176f1ad1779870e8d04db51e9253ceec0148cf5a15e337fef96ee76eef6fc6b167464f3ecef893d546c77a86354cba301dda1833c7e90714ce9521cf831a25a3e713d00fa54dcde23d826494b8da51fbb9f37f8f8a686b9ba9612dc38554ebee4dd4a0b78bea197f97761e5ddc60a8859fd1966128e49000837023c7ffd9e44c9e36440e6c292d801c9bbf7e0b143e1535b4c6d485ce9033ae629686b1ce2b7941cf00e139bdf4d32079a816c4f7de894780237bc13c985d91a48f73f0c49cae33a7c01eff1df7ce931c49de2a084c7ccdfaac751cf712a44ae17924a9a3e9cd5534c96f4c1bd4052c15cece6375d653e2ad5cdf927fe5cf8649939ba59a744ec0856b0166c612b020077a539005fd6bd3990cf09a0541768f4883a76a2ffb3b0dd62299c6c2bd5d8bfe2b3b06cd48902178a3dcbdd00585c92dd08ea33ad88b2ee539b6243ea741184a579c2064a9ddbf0fba9e6df84f604a60a08478c0ccca2b795471131bff4f7d2700668ebbad38160218a28afa92bc541857239207e82ed11de182e8742727d82f885a5c7540efb847f8875ecfe74112157ae505c2003884ef9618c18ab4ea0788a20f97cfce7031e98b983f5dddc509811f5f50ac0991113dedb492f27702ce940dc0ffaf8167aa6c35981b50c0c41c8a5e6849efd152313ff18654092f61682e999d013e0f5641559b5fa82c8f9baf3478001163ac17c2b0e5ba0fed261d9ccc09683bfda54d52fefb85073f9b90de991cc37a4c70b339e1f33af71a14f80850b6db284a7f1ab15a1b33c884ee14b8fff40e1d12130f45ca9a019eb23084b74e47d7824893436fb7d2d87427b362f7bae42a7d1615b4846d03a9c5a5eebbbf58686293cd81d564613507bd099140091a932187066ff4f4aaeded7ded653af09ad6a160d1441d8337c9c45013cace1e668fa5453f5184cd672a20b0d5a1064d1c0c85271d84f4a574e161334898177c618d8688aff409e470a1d360ece4775ef23a62c3b48231d14b50abb2ca15d4b81ce7e08992012e3b99381be1b30d8289239e90cec3f8517d4e7cfe535e5c3b95bfcb53c66e84112dc236e3896552291f7d50a22deb29376568b4f372bf715e4a05264c616f58dd5c49c005b80a54c02b655465ac8015fbeab2580073c516b455101f428d7b5e6744a73293d8949ac894528a78d728f853325acab99f3d1cd213ff5fbc92ea9c574414ebae4062b3cdcf6b85c41c2264dee5a21e600a0c6d549e734aa86acf29392f7e26b69e6d45db99f90843e8d4ca6437f8fc8adfb1c78fe0a7df120ef3cacac068fef789d49993f96392302d6d2d3d1545ff81deda2d8ca66ba591f1b0f57b2bfff278339ba78922933771c2f4e23dbf799fb8c0de5c6b8c795b3eb61e82f89d5ee2fabfac2a5fbcdad367f0d616e754a9ecfc9f3e7d1ee5c967c67bc329b77c8da71acce3769783704452bd9883a8f60f20b868e36376cb217fa0b687d7f382ba5f76c5d6d65ab0f1ab97c63a4f122878dd80b13884f6ac7edd5f7f86a329a8369ee6f1e4aa1513a55880a80688488cd4b9ccef1577c8e1e4dc640f14128a3381271c8cc764ffb98d87ec9fcb986e4a5596fa16934de870751cd4c449e6814171295b8cfa8e1bf3847973a4161c1ad7e2acd02498b07c0cb774659109eadfe06f62cdb997096a2d3e0fb28d817f704492b72250103525a1b102b6fc83cf8f35a2e5c13fd4a19aba434bb4c4cc19c24526bd243d62561ba1abda115b278bec448e5cfaf12143eecd88bbd0452de4eb9faec7f61d5b7ae7d25e53e6a7855ae946bfc11904103f93d65dd4fb16b19abbc3c87d55bc5d95c9dce4e81ee7dfbc784a89c032c20feea9285ab5c5ab5d57a060449613aaa4c8c98becc86646083137170aa40c4d4f8df1802c4867e5ad97981131118816bc12e7e5088824e56a8e4e0f0e0ec01dc74c9cb256230908f5019a0425de66148512a9fa0fc14dbe98f7ad37845736f9213121f72f2781387babb24c52541e5151c8d2ee63a77ddc1e4c02c0d53b3846378ebfb0922ab09476905c9bded13f3011a62442dd59acddd61051f37b8a50eb2eac64625dc1f401b1647e91ff3a57ae2947dc69bf708b9e1258e135030008e24932c588b8817ffb111c99017f27149ea3858858a5f646aa8ae05801e70f78e0be1558a004cd105ec16a239642507a993f42c350a405c34bfc50823b137b835aa3e580cf582c14846ccb6af8f87a25fb3af89d9652ae8071d75912e00ae9a514aea98e782630a51218156b33a0ad6fac81e303b66ea9df1f90a68f4567276d3340ce99ea2d372c8775d8a390eb172c290621798a78670d8534b48a54c6ea8ec4de2bb6a05878ebbb45441328a83b023b4f1b6385a4c90e4ee0ecd32da4994a4027da953b101e1567c8aad4607a8b0f4541608eccff8e05040bf935b0e6a0fec2380a5e7db73016bdd47f95530445099d056613e94980636d29c64b04c3eccc15e2cc6f688b2d80b8e786781dafbb680877cd33065aba84d9a0947ebd6c1dd20b79fafbb9f9a776e2f9e7eb3484277d8b8f16a6c16102d7899334d9a46ab46d9e560085bc52aa094634c956c976d058f0f477f51e1583f4f6d7b40f0508321c135b439fcf0d7112c99ba1bdac3049cb6ceb5ca6397dbe9a97a145015f5d49ef6f21c5b9312204d1a2a254d69d0aa0941a4f2e03176470e6de5f010792092c6a61c2bfbeaa8e595a67b05849099ac92365619e48a60d22cc55940f731e90b790bacb1a642068ffe1cc5fd99e58cfff5a6b45a230667898e5319a02b9d6d5a25a6c9a59e8b7525b409968adaf48ee48490329767e939bf88a8581d087faa920c11ca51148221763c85ab0dda68aca2cc060cacce18419a209bf9b664dc9a561b5d63d37c402ae8039c874e571e701a820bc8180d4733cd2d5ceac132d7f1a24adb5cfc8fa1af19a594c305cff9e72ff478f875ea733500f1e1ecdfe966d368c4f259f832d02c8401f08c7451d54ae7ebcd4f5bded2b862a6e06769f41c9ae3a13f44591c4738f9cc24c682d05e71681a634141ec20be8da55c9c98d90a710a7c30e1f41b1874605823f5e8876967c2ffe5218c021e92dfde99c28450b929f690dd20a34b8de86136ecf1850778916300c9b0344f4b3347afa822348095534b42c6b88d43e6c2712df74d973c523cb2a90282481967fd3bd676d466d8d2dc5c49f669fbfa2016149f6285c55e8729c9c563359d0334983901337ae401c598b777ee1e144694452b03c6eb2064a2c71af8e7d7199fe00c5720edae2669585a9b2c5d5cd38389566d665081182d502c9b282794e48b0fd48c9fec62e9325819d92a48950c732b2620dd3b18ea6f723d3810de91644305c46667fa6ffc73d5d7a71aa77f0f130b3e426869720aa79984d655ba0fb13102130741ff20c8e7efe38743fc6c596f7efb436be37ae4f3c4a62779526ad4404eb1dbf1d456e97ce1d8f35d244ea6f0c5d6182887731d5d42a17c667ca28d81d768e6429f52a0cd66545cf2dd4947680562afa5841fc01d525d3c97938a9ba6584178595ea023199917aa2abdae7230068ff172a3e4cc94b1e0c7d104a1176494711f87cc7c7d9d8daa1ca060d656f529e56868d2cccf2c66d3f99d587dea8c2a90afb2d356514f046ac311de8d523ea5054a1c0266d9f7323bc224c737b944eac43b5c27cc0965b2613c63075d610004b195d3f5d2e73519557bbf6337d5b46530d4d95ac21c533f14fad8b6c509e301366a20b48ed3ff97bb5bc0c084cd90320dfd2b4834e3a8c19d95a7172ea7a14b4b396f820e49cbbc76220ae714c00cadba039da0d55448c2c6c5e35fde641778fd1f78898d7ab73ca2b0b574ba0a7dd254ecc53c28dcaadc4459c8dd6acf2f7b6437b10abe022b3d47cbee923695a3ac80256474502b05e481afdcce2ba6f87ac7ed054d5b6afe960a208bb5f4b1062f246aa795c1937ed71706f1ea53c4b006227d44f4b66b711c4c6417853e2ba0c13f8d2828b43cceef66fd8d28e022cbc2caa80e0ee504ff3d6525f01b245811a47c6debd6c8e5efb9e4d761514293cc217e7462d9e6e4f01171e7638cd2e1a0b1caed72c68b32099e014702efe5cd3742bcd4bcb592e7d14f23ff6e863306227b5500070bbff9870a80c36b654be6560d0fca256c74fd6d6974a6f61e0c91f9382ec11c46fc4c47d1cb28e2596be6b2031b5f19b95012896cb94bc9c04cd882ecfae4f60f13926dd2c765c3a1b8a18fa20a01fdcb7aa8391cc27235c7c2557603368e29fdce3d6155c4942a652887058576c59485562ffa36c3c7921072233d93c251d0069304444ae52397f8ec0b90218713bd1dfc11325d39501406f94150f72bbd88a5a52702cf62dd82998fbe2eb88249f7d47306f393e4db08c03683c7f6e753c19324043d55730621d981dda5673b9845371e20e3dfd94a386683b67b91ec8dd982934a9eeabc561344a0b034d8fb4b9413eb09f3ac12845855ef8474fe1637f80c8d64855b04ff2f31cd0041b860d1ecb4edb8b8878022f3a80f72bed4491df066076a0ea04ec4e95c8abaf42f569920028d5eae56af6eb77ee9feddeabbb10b29dd09bb8dfe7509e874f571573af0a97032247cdcfb2afebdc9f1df03da42eaa0baa2d86783941dd3601f1d72a93877b57402ef1495068e411774e801da8569535d60cc606e0ecab139ef6bb21f0a9e29e51fa2ff3928ff8ba77ec75d96e1d3fab98fdc75c494fc0dc5769f4bf29156b525e2a3a3a3a3d799c14767461f3a0d2f51fb93ddb195829d18f155656d17823775a71c572f19d952a64c222222245f0504050405310b6605cf16b24e763f4533765c941b0d230adb85f5c2a27c577abb17dca681de28b3f7d2d36c458f526b5268c824f25f36d916cc8766a04b44d809225096b0309348c139a5e4a85b124ad1a378450993122345e66c531706e6260966038603db01fb316dccfe101b4577c03058fe919419a589febf0c49136d70d9014f765afcba2837f4290757bf3c9ff98a4f2b9848d871f71657632956e1f99c912cac6a01c450dae6d1aed6355446354d171dc40f7def980fb87cffffff63746fd3455bc0f776f317869c81bcc0b2ecdca1e996181a07df77cdff77ff3f0658d2c417bb5ea14c73ce39f78cd8f5eca4c8c289bd10311c9eda8e3b981ffbff0fe256d2c437bb24aee0faf8a8f911b463868dc8441282c5fbefb63cefff7bfb8ab06ab151d6c259b717c01b7176295f273d5fcfdded80293cefb6eaf23fabc9b6303ca88f3b56c6d257d2c4b7dd537569b6f40180929cb1edcbcecbcf8b1049135f537569b6c4200e3942c168ba7bcda6862b5b1204863583bbd7489af8800f369226922d060748099634f145dd919db5b3572c5a01f69eaff84404e5dd00eb3e14b394d20123e3be4949ceeca6212f2a869b122a27a81848304792d2262e285500af6814e47ad5576c527242c813914b67c2522b5e99292998e6fe02bc2253928a37c22b3225c1b0a2a3dd262e4b7f121a4232b182c0c4c712932526319888ec298aa2696103a6699ae7799e27ca82c1bd5d7404234946894a494b940c5d045d14758d263e782024242a488e2e23475f35a6509d48f2818da059e4dd004b596e216941248b848a9ecd8dab293b592194802012a553c3c175bbf1881a321b47971d5db70654cb98530c76a2b336efd8d65de775f2f5ccd284458da7ac17135b26d79329ce7b22fbee3fb2a2a3bfa770b702ef4651146df4896743233c577777df3ad758829a49c2f30248cd16548ac5ba175836a8c500cd18ca81e44a0becc50ad88db70390a1fbdfdddf9b1c651074b534a3444f842a0213f14f4a42115a135c6f7ec5a227544649f8c7e7b7a5f92790e483346504cc548eaca62a59d31100f028bbccbda6a2ee0652aae1259524ebc34f8606fab0f19e0fdc8abbfb4fc8bda65aaf0987ca81e83a898104303b60482aa4607a5c605db84095a9d483e6663613afd6dd2d2cafc8f41b7afd15997eb953a7c4c13acb6b00b6bd5081889a255a814545232f5ab29ca618f45734ea79b9d73bba697943dc7aefdb97c09d63091714984ad88831c1fca090be2253891828429c9e6a506a78d472e695087a3c0101b1819061972984cca142bc759002670706e3c1d0ca020d18314343e3fbfde404a900f9d3f6f823cd8b2cfcef27c10e11542e929e7cb1706156d100a9343ad857749a11964746771d5f568e2e298ee34b8eef506cd29244839defc9c59792495583850ea15003e79aa0d4bb6d62deeed66b76b4165e09afe85493a23f88514edc6a3698a62c7d993fb1ea888c10486e766cb0780162819712e87a37593f1d404d399388600b02ad0d6a823442448191aab9369db79374bed2d9ca2b328968f21225f01e131bddc88472ac29fd93974e46e8d88890430321456086bc58e2c38c62b241591981810a570f244e5a0ca9605041318da85a8d80e0c45aa60f45ded92b32d98a7809f64547377401fd083bc0200711931a2a881c7e1eece8cd44e237da74aba513a6185ad28123478676bd59a838d524b524f850e3bbd1204a09a8a30cfd1473c32b22f87a83bb1d0dc9b2c265e8adb74da69825b5c50aa61e2124825a193cc6890bc8649211fa095c3f9e12a7b6a5825774da1a2ef5fbbc5b144d97004e09080c152f432719fc87953b6d71cd08f08a4e5b335e0a5ed169eb66c4ca05958c124c09e14487ef9d840b25dd3133b5264097da1bb6368402103e6c6d8a5abee46862322059ece76379a858b5f5e96898a657b9581327cf5439b509105cc54b9b68bd553037f94075213e5cc37de57b1219b51af21bd9a9d331564c0e5341940359293ab097d6203aaad58508bb794e821ee4f68242184bf6f3cfaf1c4913875cc7f25a0e5f3eb7c4b0b200c2a16bf16302cc09d801da19cbb2b336022f648248b820381e6693a29c0ffeeb37411277f7547a52cb24184eda81aa2e1e3b9d1723944caf5f83614dc8b87df2fec8e189ae1c958641d9c801cc27932a4109116b4577fb0b6765d4f96077e730049634d17598476e3e6552ef6ef505f7be9b36d24bd884186edcfd7f168989e1fe0afcc7ffdfd584bd5f1ea0f18a69b32369622fea0136561fa8207d48710096f48a653f02eaaacbb7274f9b6cdbc18e112e1949b6053154d244df39094b61845c6088765fb6ecee31b97689196281780a0f77365597d2530c708631e3c68d5d46d4fb6ef945361c7f240d74efbbe4d96316128f50a35b2c76337e2c9ad019506a4f0d28a127c7e22bedf1b9f0fc7642b064d3d14e85dc79d8f5c82215304a0134eda270d114306d672ccbce5ab6159d9db546436a5025ddb0856db120675cc6a89179e939e7164a088a086a97622f67d81bc80f081048f033f61d47ab64489a6883dbf91122d250b5f3fe1229ca07322f85d6f264da61fa6112ca153630623497788d7194aee67f8f1f5cef0fbbb069bad30a2e977e7c49c897887c69e74b3d5f8af2d374dc64ecffffa788a676dd2c365dece6c68dbb678d331a432b82a3a3940e4913793cc70eb53a92264af1489a585ea539e75c35e51863f7b2bd28c6f0757777de8da489383a3cb9210d3cdd079ea082e06079f9ac98bc7fe29c73365a81c39c0d60c8b21272d09973f1d2082b438210802254823833e00b2a131dc8b3920e9f65dba00a2e02a64057a1ecff1f0b3d36fbf7b14115085c699cf8740b18d34273174fb54271562ad54f24979bbc0b077717c179147737d93bde764db7bbbbb576489aa841cb5d75c925060c346979e0c46bb7e3f2a0cb4aa54b4963fcff8fbbbbbb1be3ff7fdcdddddd18ff3f366b603c9e5c3cdd636edd50b46c814bd189fc4e138f2946b635c2433157904c8b8ad4ccb4c91398fcffff213a0d43786c8f2368a73db06cadc1088f007a74f9d21e553ddc1d8adcbde543fa137b9e92a6babc8ed485e01e6b5ffd5e2aa3417e0e94708a1e84a75597eeb1c1976ab2ad95ad6354345ce9a058d18055eb8130e411d3603574c473c200464f5d312a60b0c563385599a0f963deea09a1f7ddb4425e1b3b56410c63ad964832425f04828939c31ec224d9d686f73e5ebd4978a7ffff3f02e7fd72c5255c5c5d6d60f35245c214e6d8288f7270ccb0a72168ce14f88a483339975f652bce8c953189e34bd3154be13cbaa8b0799957a4143cf5ff1fc746fe9f48373cabbb7b9962097306eedebe371b370a5e49a3caa5adbb6849ee74b9f915dd80e12e29745cd90585ade885130d86aefae9bb946b510655e5aaa6b982b8640314872faec06610a4c4870738203c5f126e7e65906f4567676dfb8a453e5dace9a3735b70c7b2ea2664a8a42689718596c56d01d758d570d520a9f152b1a763efc7122434ca0c67cffeee8ee275f7d114fdc645d24424eec5dec2da185786c586a43d8ea489f9dddd2b64df606566c7677e7c46c867889c023b3d8ac8b0da01c959b29678ff3f678c33ce164c252a3640155222ee8e0acd4a9b212f02896258d2c42bbff1956dc4c449ebee28784a9ae8efaf5674c2ab5f5cd7dd96ec31acba9458ed9c2cedec063e2a30b884a593b5865ec8291516231b0be71f47bd92a282c1c99daa9f6286dfd5a61cef7d376da05c4e08814b6fb688068ccab26d538f0dd5718b35711086cd72e63df351f199e84d4356a77b200a0f0f5eb8d8a1710536847518e1b50376fdcf4d40c2f77564f0968df1e3131b4935bdf81c2f60cc820392343128f4801b7ac8a9b1ac982b23ce2b36692033e2a4e70cc665595a7f191b3fc9b2bb075367d1941d9b466c9be7afe8ad885a61b582cb45d3ec23073f9a6c7b2b6922ea49683c01fa49a014932e3a0a2f14613fd0a6154808e0adf3fe48b62cdb7a509123533c39e2c4e0c8b86713cdedff6f88489ab8eb45650f37561fe42616340a58416abca2ba948f531933665b0f323a15d5e58364b612b0412795df77b8fa6551f0eb854189f946a41e686c37b25a8c150f18f070e0c184ce6ead01f1091dd4cc43896191d4c30cce07ede1c6d38b02967a3831acf08a46414c4848210a752d1f3299b62d108fb37577b5c8f7767777e94b4c482034c6ffffb8bb5bedc61868059fbe575ce240c61bb7bf89bf1492391f29c90ed3553d1623d956f88a4b399f292c29e49feaff251c51efbb3a69f9c47b2f14da222021b95d5afa79df257b3f9f49804b72d4a513042c0a620e6fb4309a2df57464d9042167f1ab2e6511da28c61da07eeeffffffefdeddedffd946acc753f41fc0ce3e6deaa00c2072e4252a4c48842ec3ef7a38d0a71ec2586377dce3924f27e7b114fd47adbd53f8ffff7790eaffffc6eed8c9737c1276781a064960f9d897a4b6cc4e1d3be96454872877f7fc18bbfbff7fcc31c68f3b0d0092955b0956dc89073fb1ed247c2d479b6c2ea34be5f4e1b48c30d5f4d14b3c23b08fe0ea937568cad180f11d7ce48ca2a40c873f0b58742ca8e95a1c42af2ca0e055c5dd5d5dd17bdf4d671898113193838189c1439cb28593cc546f11abac07a747a787a727d733d4a3ebe1ade0c7ed2b0ec5e395655b1d3995dc2a550209a6775e712d64785d45576ad2bdbfa2339f90cb1362a2520cf677ae8d77a0aa4dd84dcc8dcc8dcd0dee66e7e66745fb2c7af199b26d073f6050388ca92e8f532038cd588986eb7d576567593ec333b65552c2bdffff8dddffffc959e38cc8fa5bd1713edc0f07c4057142dc30a796dd5df1e3c0d477b655d2d5b09bed6c8e088cd956820abeff52536accf49e6951b6dd20e8b873cf049ecfdf2b2a1509ddbfd8c6466c464db6cdc5e4647236395c6e27f783b2fef4628c31c6d845270a2369628c8c0d6ee787430742a7638c31761de3d9ce6787a4893f2ec412b53bb7c7c2c127aac5b4600277c58e1241d151f41b3b244dfc1122da71b8d173cf15dcf77f24fdff4a405eefbbe499babbbf97477db12f1420a4206905b3a68b437ce904ad89a104a5200e0eea220cad2bdb720521b8d99db9d85d01ca315fce6611a14c662d7008de64effa9f2fefbb15bc7b8165b5c021f863710e9b55b6dd02ae0fbcf15474ad580efe9a036f6766db5a0f508ca61d2b62e4f8fad23295a63098608dd24bbddbf1a8040491f3886fa93905fd22c1ac64c476c66eaa11d390e9ee5ea65ed98bd4b04d1f615b0e5c3aff69aa858abe5573aa936d8b34863245e74064085d7b5d72c8129e6fe678ff03554ac42b450557cc23c661080ec659096b08c55bba9226bef791133e6afd3a65b9e0bab879c15a4c494ac6b3bc18014982189900186729d0b112aa6a13a82eef8b30a56b51386908553c12b0d619d52f82979275e52784307a45f151052b57ce1c844c66a5b342a2c024abc2eaa86bd530acea816da58153253c310e3a33c15175261602d35dfe25d969f525377cb5b630f7414962288f0741f15309af6152170f78275c84351c55e7c20418e4eeeeb20468f414d5fef059e05a60fbf1086518d3d8388ee5dea1f3becbba8ec358758f901c791d85ed6276323b9b1d6ec5de660c333dc2913471e767c39150cccd39e759e3fc4d93ebee6e21199226dae0767e84360811a9effad7bc98dddde5ac314d0e55052715fdfeff67de329a9dccdddd9386765e77b13bd1bcfd184f312265ca2b07078c0c7ec2bcee7b1f3724b8cfdc4c2385b3b32d11101be0451898938ee9868b0f493552509b9818566ed345e711f3fecf62d81dd324e94e0adabd5fba54674e0c3b8d57ec441af684987f86f041d6104cb64de2117aff83521f361fc3fe35efc7ca0b2caecbd235bcde774f3656e3c263e42c496947acb215f9bc8832d1f5f2e2a3c99309d69ef4ff939a70efff597bdfecd170cd0d1527f944bdef923ddba081aee50020d8949c52c9e4fb1470c35430cdacd44ec5d9b60a6321368f4d35f43df539e77cc2dcf2e1934ac510c662e7cfd7a814cdcc04f24363523595720355d0cf09416a6b928f9c189318db560dcdb4f1d69ac77103101e9ca66352d42fffff6ff895e9004a304bbaf18a2073faada82e4f0200ec934e4586af5136190d3406646fc4d41fb6f5489646f962516acea928b2549ca6ff54cb2894b0fe04c428a4c4fa07f06556d487e32c4ea85ac33087501ab8fcc13b39d051e250bf324591bbfb06a721db16f1b4365a822d598da5318e9eaa5af39134f1070c0a35d486b9e51fcd39670a27b279bba1143a778915d9cb293a9226f27c3f60bb4c09760b859c730e41ae050d24389f09285366703d66604080f12a063a14d420b5d531f70061f3fe939b996343e1bfc4ae5262c7f9ff3d646430078c7cb470d8a8b81d49b90d7bdca250a8621f3bee1149ca0ee3770d333fd145d361985061f3e9545434a2043fc66a8af1cc8b31c6f8ff1f638c31c6dd8d7b3f2d56dcb86543d465a5e8620f173c475b376ea7c0c88894145340fa5eb1f742f8fee8fbc618637335ea2281d7d1ecc5b07abb2734114a62624689d08828b51f7abb1be3ff7fdcc18d132670356e435b984f13eb2304019e966be3b3d7a3d380968f212d78dc380961fae0a8cc88b15c705df7028b6bb6440072cf23d311b04708d0d041d376c6b2ecac85d2a3c1c3f67c46ac44ee6ee3fc312b59b4750a33c886ca48cb2021048286a70db6fdf1f5117b03d542002877e414e27d042d68696955ed51b2aaa6bbcaab1abe8f66b5bd27cae9a267d9903411b7f32344b4bb20ab77babba3abf78c0f3d152469a2f082a961cd76bb00084eab4eb3a2a3958e158f55ce6ac84a67c573b3a2b2da383b5a34c3858a0a092369628ccbb0362dcebde06a8725cf72cef95c5586eeee26562f324cb12ff3c85c35b545e7e27d46d54687e8fc1c9ea2db3a885d3f382f2832a4415e8f78c98a3e04e7546accd5996d7369ce396370aeaaf7c8dbb2f2f1ffff89d84a9a28801af6b68e3e5ec005fc570180846df940caac00c916af9beebed5eb0bb6a2589eef063b34936e38614b9253c10619de055a37281c5fdbb2b82c6ddb8e9b4af4028bebba2c553c55b9aa21b10cfa7d799aa25305a98454c3597b16c6e6d5ed0ae74ae78ae72a8767de66d011d5fcffff203f922602831d8208af76b4ccf11934cc7d926c5b2369a2ed86a3630ecd96ae8cd0eca58acbf137a4aa51d96625fe7f2b1d491379dec1cac7ce6650dcbde503f9743650e7ff28831c8c35ec9196c3732846b26d164f079834a8844ab659a906208000431a0000040018088224ca5a0a3900140006200a7194a068342218c6c160281410842110c3401085300c0050108681184e6b781e28f77ae83bf3c26c4f964f6c326b70260cc4e58abbfc1c38b37b87d5071ee9dc822a4de911ff85b698201befc3219be418421763ddd1d29a4e280eed523b2148f1c0d37a72bf01f54ba9fa8daec07480f4bd49c7035bebe50604d946d25684966fe1f21c9203b08854acf2518b9020ee518746839d961da51438fb0c60f74a191931495bda1a899b26549bee3da34dc723867f735e2fe12c845a58fb2cb0789e58dc65ed14f39b3b04adf7ae0fe13321796a12e0312434ab64ce8257cc091fa340e6a503f149a31ac859f446e78c15964800687616a2eb8289bdc5ce494099d72a2dd71d1cd9ad64a36e310e8be2aa104e02392f4cd17593b468f4be6dfdcae1a073038ee85216ad7879d552f2b54d809cae5aafdfa2a355b4a468c38b183111d632d0c648073f5b19ce1c843c702c7869e89a265682e3b2789ce830541182fbb5333b76383019bbe0f86ce3cf71a4843fd2f30677768f74275a6453f858ddb82fdcc1009ca75eecbdec762db14fd626b97ff237c5aeaed50a7eb7101eabfc7f22a5161ef911df3a3aeb686d6e6bd0018db81d88a31a533f7ebca5804296a259f57de3b9b17411e67688c974a16dea3e28cd1f9b152e8656d1c32d89b9759019d086514992afb72a9395247becc136a20d493dcb8ecdd1b2d3b41036617965ce5f5ed9bc833e95645bfe8c6442da261afc1be68b2bee4ad25b6d948719e14cb9dab6de210bd2b4b470a5ec0d959566745ed0c578561c54c0f7a6f95749e14a5fcfd375e041a9ed814b1433ae234aa18eed565dbd3c58ec7866605283f251acf0bf4866d080a75f5bc8f026b7f0d0ba34e05de40cb41a8cb4cf4b1bbc4c17eb34cb5288845b49f87bc832d6fc832612da93469d13e8f794042e6f38a1a2a5350ccc30b929f068dc674b3884aaec5c748628511f99327f84c452a191f770ca8fb3701079acf670969336ae99ffb0a22fb1f94e93c7d1731b8c235e4c1940ee799ce29f0582a852a95252c0a163ef0b57fe304a55597031c54cff8082990eaef28cd1a1ffc23f791d9a567c00d9f96ac1c3ef98f27965271a09f1d7fa118d121dbf615169a85e25a9937346138f15300cc4cf8c7490240f0bebe5dd6e9538f05c36a40f7249ef22fc9bece9e8ff4b20d4b042c55f41e31bec2265bcad08412e668f3a5a4564fbd1d51dfe0848a66051167d8301cea9962a01b8c20da40514722e0807b20076f6ecedefddad2d3a1e8c42a64a590479009bc48a06df8b6e71f5ed7e4f7e608a5908ccd94f8c12399cd16700aae17107e0050aaf4ea5854341a65c64cb9e294dd5e826b71ee87806670f994cde92280c04d83bdb1dacbef1e9b4812e435ce4bd603f0a93c0c13bb33dd9e0f6651e76e18b94132c057c1176bd404ec079145100cedd99f9d1e685af9d849b1acd4b8b40d084ca1aaf8b5db1b598036d7a5373b8c988a17afc7c7a221a003b5e21c665b5d8e738bc442a6b6d0eec71cb663641f10775852099f08816bc6d75e499aa13c034920f8aa5a9cc5bceeb9a8ca942b118e91bdafe9f89f0db5ce407802be911c91ca5fc8825da2350129cb8d6fe8d817c30aa422d78feb6a5300603d7f3af6c21b2b4f2ce1b838ae40a44b93548e7eda5d3a98b33a0d4253f738fadad259223315c88e084f82bfda87311586bb3624b6f33175651862f816c32ab83d71f25415d0766b1e08d4ea394f3d5504a5170b84d6677403bbc7c0068e95b71c4c5c9028f961f747e1d1b75d14bb48e4175839516fb3ac4770babf900d17414d82bc3f73e7fbe18eafd2ec3bfa8c19e56757bbd17d9654b938e1b512fafb7a6da8d9e8eea7d04225ca7bbbd6a297c094240e6d32096f6157ac6fbcdbbb09954c2994186442c44daf1bdef27a5108783c329db6c6be4cc4c0052c6f5e4960f187e5802fe4c22e6bb067018c73631c13590d8209a80c638ce615b5029e2d470e564f713bd057f63b1afa9c1946d76a5b0c3d90164478f08790d312a205b394e115ac4ab69d4866361d800e9187da105e329f64244f649184f41213027c9992993a41906a4b9601817b83424dcbce5fb52ec55988728418792e1dea342e3adb7c77a028e88e27be4e77e2c53c28b77debb938fa6d930df6a03bff988c65d001136a71e17856bd5602cc9012b78af4a746e6895ec8d3783e5077c140a97d18d8048d72e7cf805b29908e9804158b48d32334fdd85b93e5f95e26e893200db19fa83ce3d8f174bc1678873564b736113e97c85cf05fa9299b82ce2acd5f5cc91455218b72587e7ec27f1957bbf49edfe5ac0171cc58763835a04e94d56d0ca2b981ed721706ed82d2cc20a52724e4de2d34a3409302e6bb9a96143e7c112e65561184c6f36178f42376b0aed4b9e9369d58d9182f49e663557112be74d06d0765152b96a8d2b1f3cbf95cfcf6423032c2257cce567ad90cae47032a42205b971ecffc76c243c3978d801026879d2f307a281c68c73d573d7616229150a975ab07faaa97d029831be1a7488087f86250ddee76b246f4afffae8b5d8d8c2d48b9faff936f59c7b577b10bbc0aea42e9181c6fe2e674bbe69deafbf506694f337353c04ee2b4143c3c395c319914419d24aa17f33c2d2c79cd7e89a393e3f6f20e9ea117a100fe9a9889e5478f2e2a725385149613f89e8dfdaf41805784443d33805b489324b3239cde6ae36b5672db9bea0ec21de9a414a209b08d923cb8f41765a76fdbde51af45812b9eb84ec2703b66bddf074e925142a3eddf19ed2206c815bea59087d8661829d30622f31873742698adfabcd02d336383c828f99d422972e829bc6a8276ed07a130ee96b8a6c38c786efb641e1713b0ccc886c1b422b97a82badcfdb27c0d36dea8fb7d1a5de612f7e0a0acbb151dd838f3e5869c4a7a5f6edd763abd03b1fa9af0722276eab4f570190c7e05267455d9b15f0934a0bb0c0dc6dc8e5c59a39151bc005f4ae4bc0585d99b0567ef7f621ed6bf4de138b9ede32939d47c64667099aee0ac14b7bb2f4f30dd638841218d5683ee365080d9655e7801c406109cb402571cae44fb1417c636bb0f28fbb04cd3153d237b94b2091071f388d282942cd9d8223cbf434f3782789082587a95e8e2b343711262b25c77cfd2ff639b19569c5c91ee8a25d091788d6b8bca8903d40a9aa08b1d8d922191b4b5e889491a3a2995d81ad1f082b48882dda4e46acf4dc7cf503388b8a1d81d0acdb810befa2937e505265ab58fc0b44be66034a65c730cba900d480b18410810ee309a51c9ca3096e96e963e198c64699e2ec21b1cdb65af9ed3cc4123bca50934fe02633415f861be6b1e8ba124d1be713633a1c0037385342e46d1bc727ed46fe50fafb29ef039436c9c59128068cbbd4862c0b01e4064b6803ab77939b06bd35901b679792341294b19cc5f769655d01f873bed3b0e18c1de22d0acdca081f3800b7f1f744b8ed0eee81000f5b70e53eb81870d3b14c6168a544de105cf2e2bb2c917c93634d8a9f9e20594900da2af971b0470fba2cef31ddd08022712786ecc39666712764f1e9099f883c611829ae96c8f8c06fcf2f02ed53038b94bb3eac38597900f7ee594136c7d895129013b83785fc9de3bea57bc44358df1459d618106d9f293a63cef4928732d44a01bb0172574a4cf77d09916271ed13b5d1abf667996316954af20c72764e8ef7e0288edbbd299b6df804f49ff12b632d080618962006efa144144a8f6115bbf51de4c653e7d57cb9a8df6a860bd0d65cb90b7e4afb1a9f9d5079ae51bb1a2fc815d728a0c09b5fb8435ca6d8a8ad39eb8ef044da5d6e5d1dba3b502c03e0260087b29be4af1838c4968a3f86d7daf174ca1e1a1112c0b4a044ed75e9188d8c31d7a32d1707803f3c9b9ac1f30c2485c0d481d039e9a1028fd8f026b022fec2c08e0c2cf94a3088edd25cda97f308abd4af86840a004a8e68c6c7ecad912d05319984637b96779f3ccae52b056f2ad31a1238c1636f62948662648f640423735c3069e5eb6f832c8124dbcaa58422beccbed55a969ab84bfb0a06e286d67da566bc8d5c9e60f2ad003a89a65522587dc8f1f82524f06648d40ab3586631f01cd7655df2d11e3fdb884a28f55c722e0abb25c96b79973efa484afa8c57ac158454bfc420132bf778f50b9abe2250817ead28925ab529d7a4573427c4179a3b6d7368382c917d557521fe17f86ec83d66ff5d80ee05fd43374004c3e2007e090cf605450339922fe53c3a64e32c48e4673c9628c78d840d6f1fdb24963168353219e03c063ce2e4567b1bf6868370bc1624c1d7a5d90760bfe70918441cccd6899d01793bda050dd7259a1b3473bf47b8273b165c62351fe200e52c5355518b43593e54860082ffd71f4acf556d40deec4782491464d7fbcac802c3b730b122ec7fa8ea231f8c2e9213584549f22457f18dee641f2492b0323a90aab176ea1aecd2c7823b93bc979ea40944c08046c4d45e9ce3728df408ab2d70b114dc32d926c982a373f0d266009e113dd546d0be68ec27e945fb0e312c7b24b931ca562736710a01aa84b82679d102826b6df2071a747d519459200ed6d2e49cec90aaac487da9543914f1a2ad6fd641e6efc3460fe224625028c176cdd7d867679fce30b072554f1cd4d6e8dd10bcbda63859b3c5d332ae43095acc298f4801dae19b866bc1c24dfe444d150c609041005941027ce9cb246ab6389c4536a891dd509c46132651b38273d6d9b046cc43a399c5a43abd4cd3ba7b196289986ca721ec31a889fd0c9719aa41cfb1692f51b305e5cc80c4b4e998ee4a2be0041642f7663f26122462d9605fac4dff54d3711cb6e46ea824383b9c53862ee2570dc6c0b5a03f8a82ac2b1d688fc3c0cdd29a1093894b94b387b8015fd685b02ee2dbde3d90c266320f63a5aafae49a189221ffdb9495e7ed187bc3c1c850508542abd8362938d84a11141cd91d7cc0585b910c1f931687e148ced7a639193a0538c84d6408485075c301812ef08256adf1cd829e2c402c847ec2a56f4a2a6290c7421d3ef441c7ddfad2885ec35037ce13840b654d181a653bbca5a02754354a902463188f2c46e228cb106fa02501510d729c31c1371c2d75c38f6294736455ca7d472b6a8d9bed2dcab4aba06a4546da34f1950aacd4653acf89116200e14be0a6c576637112074ed03bb4d5698e4057a66b0f26354bf4c7cc92de6c7af5413864a9604b3d8cc5c7e43167a3c97c1a77cc07bae80bd32ce36fc7a6e22ea113d99756398ffc51b1c851b87a38d3416b7ea679b51a1a95c0c43112381be1903a15da408f444736647a816196bf0f54c2806a85a48f776921b0edc095e5e0bed058c2a60fa122741b1db1cdb28ec601b6a7ccafa09a275819c3a825602f971b481b59f51585225e7ca58f3c807e0f93fdc8a2a666356f14de6b0ee53877f5054f4e713a2963ef908707c910adcf71c7f572139accce2c0cee93216b5a648ccc069a0c38543d9342ba4f8e8458422b761c920d46a43e63ea53052028b1ea6d1fea16d3284623f7b60f675c33e68540ff05360b3e2acbc8a25e7e37b1808e66de11c438c77dc04e86107a8146c01e2bae025fb6b6a2351943ab99d34cea12ac433b1280a9b8d022fe9e238387efc4629bfdc0a306ea7806b7675898d0a66c954475023f81e5b52e239e3a103ad026267c310872a5e7a734a1ff736064ce4a689a817a0dc48b60af5f4b8066ead8b3ec7c0a89e149eee863b1cca7b5ed353e178b48780e225e219a29966f0b634bfdc4e2311c4332110b256704347ae69029e19fb2301d3e5e31b56ba14d7aa28f1f9f4f354d2a9e35f94a30700d825e20fb405ffd8c860b48fe8720e1ea8c1d684988b6c5e71e5ca0b112c0b4de5b63ee9dc961dabc28c883ca5e26105faaac7f84c2753e60b83512b8fcedc012bfb441805970acbc0dc769e6ecf21ce7e495e4108f1329e35118b8694f51b0a63dcf2b5a7ca9d3c9a34967b6cd05abf2111c4932f401e03c22b22a37c7b06096024c046e239bfb12f96813a09a146fe95b81d8b48f55499c8276e83ceb63e1a095818a5c3792ab5420283c3def743f11943761c3eae09b2929dfe8a5153f26819a34b02608f0723d68acb0067e113a973ffd69e634354aec420ee0d75fb81a8019c2b4396ca1f507d53580b09100f73273747c555ce96dda7d8d135167d9fbec41784e06f6534af5168b6cd8075d6b209f7274c0167f92471cd67d873f6a97f81ec48375ccca39c614922715156eab3014da9d08d3eae1dde8450d2b7bfb5c9c7f40ec8d067f8259849cf87dd06057133d58f530ffa88c530ef03521cc2684b3fddd9c372b49ed7af821e01269c3c3e03f9769c9f9ecd94b5473d3e92b729236da4223e481172bb25cd1248ae9be174f8dac534b284ace184f4b17857d60c0513284941917ea0d488da7cd76920a010386a1d3a25b868fd463afa2b1fa8d22b0e31202f154c5fe5102f046c7f3914de57ef0fa8b6fdc43f656a6c5733ae7b87018247216e4272479aae2930a9f9ce8b405879c8220812458b27a41834b844c36b700303a69cdf98401924f7cd7917886e213877f81bc7acbb96cb1a6edb30124102ebafa51cde9f7fc1757d2026faa7e2e671c05f4a3f6b3824a495679e62445fa5560a8166ad24c830da27d27f431fb036b81acbe01b525fff80b225c5de4cc40fc6d412b4447257023be895cc253123d5df9094adc2d273cac77900623a05d9fa9925fb06ab1ce3f764f0c67daa6f7904c5ea602a0881349314d7f9abebf677da0c28fafd390c491b66978bf5ff228e32e8c74a021f309137cac943b61eade02ca946080884c3eb9a1d7a9c364a6318a3e3daccd7f88d3d608468528537db89442bf595a4894894361349264a7cb8e6ec62c64bca26f47eefda4aa7e1a9de92fddcd5345c1dff8499ffa8f023e74ee61d08def806787dca02eb06c839421e6b4136b32b2d978930102b3646cb3bfad04eda6180d7a019d5fd3bf7d05086e0e5c10cd151bd0417baf7268e6415a4adf99342689fd1e080d01898b3f2b00c1b0369c36ba7f0e2dd6839c568a41a829fdf0d0712a023c6e18d243b34a1e196024cc5b344ec53ef8aac783f4e05796cbf35652c21c719bc42d23bfc136a634753c78b519c988134ffbfa42ddead5bbaf486295a88193f47776ecb616d4acd1ac3de66ef8dad523e7be29c46379fdd072a1684f943da30ebcfede9e37a2e62fc4cd2351ce10453c9e1f948d9cf0c7682361ecae39f863e183542ab9fe554f12a9c0e56658c329d7ae69b770ccf10541502dae9327e1cd576a8b23c228fce917e466f3b0c4b627a430d4e522396945177a26469ea46ca8253a989f8068d9db508300bb112c0ba34c6064e503d501552136e9045a02faa0dc8b0312839b398ea4e0d85469ac123b8feae52c2b5a7a72cb4fa0ffa73d879c2a6ac79d8b60b9c2f76c7205709580b22ce267e54955e76034c871e0c71877c6a03dcf2a2507489ac1049c73b66abeab620d8a04333ebcc6377b6ba6fb394caa5871210903a042fe8a77dc3fd7cd6f52cf0ee6637839c9b675bdfeda4fea3bd2c3b75ada1a29d35d99d9387ff5e3f8d08307653bdc72c7d2624f1b4da3dd7b4199694dfa28624406d4517df1a1142c2600f4228426a060d078843ad5036fac8cf1b667f6e6e74c8058e8cb8ade69f05c27352f4e1eca87fbfc86d425fed006e282176baf69fc2e6344c0e00be8b1ca9ad78b755b7b434d4ad08a9307cfd5478e5bb5c6d64356233c260fd5e43ef7e1f3939b861ff0653e2aca156c01c842d2aa2bc7d5254c429e018cbb791693dce0f1e33abffc5d0e499052ac6217788390b5d261bd364b7420faad7c221c55b3958ee89e3b9eaa35c3ef2463067ef5b2795850cfae34b0b3f96f3516814f6c8a7d1824cc45284cf6f4b3442658a52c111265ce5b1545c2cc577a579ef070b5742b0b1ccde38f34b03c8394e70088e6ef63ea339269f0707c327a0bc8ca86e4ee4110965902e9e3dee7f3215691129b134991fc11dc3f0c1515b0d8dd5b5396ae38b2fcb65266dca63330b216a513f0fe57d712dcf9b2a38afd6a1ff7990898b2f6b053e75eb5f85641a0444e3e9ce580f7d28a825d6eb10d30cb0b05dcfb1017e9e9d33d8bb3f5358ca3043e8d08d969202d2047370a5f81bf8faa2e3d058324979fbac83b6431817852069c904057795513fbe9e9f8d04e43be3d2b1c6639939f2b249fabd3159a416c402c9963930136805c9cd7dcdd7eae9e516037ddc0f9aa0789759811f8e20dd98429be5e4c8d6b8f1b9961c305f4ec56676bf26cb1a1b495e908f1b2690c000b05df3d49abaa63d89b6d89a9d5236915d782fbb946ed6c5c7a9266b3d7052f4d7423387c3b1aed1ec2d9a0c96445fac033095f04c671dba7c3171e80aa8b00e79f4c4a72845c6d6618cd19b7458253d41cc8c74c18658e470e4da9ba3a712c73141f380d96a47db354d2d1a90c278a8271cc9b91aaea68fb8ffd5d7b52ad78cc757832e8b013ae9eb862ed82bbc4f73ec51dee2be9b7645665b79bb21996db7e9d0520bcbaf4e5f2714190aa44d49d24da6dda400a05405cdf246c2381364d4335536467f50d6a6a77c339bd741acf346c1a8f2a4d6d2e4865759332f945aa8674bddf27b2d19f990caae0878ddaa119cd565cfd1ee4825dae0e545cf041268562a9fe4f9c6e7e5a3977e2315bba6e6ab02914d6e77e9a55484ce1530fbf96b9ce529a7eea2c26b8119543a346a58257313a8aa0a0ac2d71ffb6109b744a0f6593644988848425fbcb7f5fb7482c0eefd1fa4e98cfc3b6e3d6137779e246590f8ea78f29b8409c10dd8514a1f09ef12b3d4ef157b0283762596395324ae2e8a58d4be24ae3891b718c804f4b94285a5e6cef259b95acd4174bb3807bfeeac1fafa96368aad77b124a6a17f8d784454b7b5721eb97819b5551c8bd8e786d0c8aae62a2c8dbab9fb60646943b0aff934931af9dfada8a4222ffee2f82933797bb91819b9c025aee62fbe6e15cf8a4343f15a37ad766bb8832646009b9d9eb871ecc193accb0f5c6c5c1e7aa12caabeec7b6891f11e9224c3e6102d3adeddb790b013a601408aecb73b9e9b992267287ae43e31c54f3436afd524a77658a152bbb6449ef2ecf372a19da342372fe756ce81dac61dbb7689eb0d29cbef18743f2867dac685e54b2d406a63029750ecf453c1821f0198b331535517cf190ecb36a074f197b2b87dff18fd14de373864bd008ae586e54f40728a8213959c94587b06bcd0fcbdd20571cb2d77e094b61aed6cc9a32af0243b901509ff58cabdb8081a7ff09164dca59847474f4513e96954ca90fbe5709442f264afd72dab852e41895581859f26853d9a42d3e477c2b97bc60d14407d7b1a69b1d33c3d297caa193c8a5ecf5c9c536a125e4a43abf1cbeb92bd8818ee9658ebe90517d7cd31c8349d8050989832d280194365405d350eb38aeac9d2bac6015c56fc3fd1b3fe9bd66cc413cfced72adb252d30cc87b05342e80d37e0bf821733f7349a3f0d8b6a19fc3d8bf2decf941e8d0ecf3fa32a297c3dbda838a9190e5f5ccae3f4ed7f0ec8cf64317037fceb65d6f94d67780d535bfe44248ab3adedf7863467e3c94a5e2afc9642611eb7506ceaeb315a764f614870120b9f37ebe9c995d16f4097f9bc3adf8020e9e0665ea7fedb88e012bca53c9bf0e89e73aff3e8554fb160a8e4dfc7baabbb23f4a4e4b4d024eca560846c45248500d8470f58f2a550c3340a7334869ebca2d34e5d76b9f9c62d6e1a11707ed218157f3b0a92440f2e25276cdeb1cec6662289a7979c0781a3547e994acf83864782633cb22c7ec4793a980c6155dfcfe004073ec52e9eab9c994eaf17ac4a6a21408b62278444beffa832319cda127b7c7391276042fbf61a00b8cbaf3add3473b47d3345a8695683ec75a47c09c18762def3a711a8cfedbe8d27d68d61a091d635d52199752fe0be7314b4ab847eae231aee3108622ada6a2343b3867ba3aea269b8623648a87f5e6d647ed2de9a78829bf093355508c6620c6bc43629660895c1044fad906e081945338914a51a85ace099f07c29d879ace27f860acd525fc14a4198e3e6738bf8446981a2bc35cbe5d0b7c03e744c61670e86946ce7cddefc3d718ad93374bdbf00192deadd24bbcb2568d3d317894b32c601298c37d52f20a06abb4f5afbd16a4ea43ec51833fc6fac75c42f6722252d3ff07de3decf0034acf46072bc04d1eb5ad1d00a09e541b815126a69ed24e9c4c1a2cffecb63e136dd5e51051bc9a231a470d4433e955535d27a5aaaa0ce7a1a573e5a751e8afe612277df0d12106b12043f1558ac82635afe313900cad0a518e94de60e0a1b00c3dbdae91294ce80a34d28e9bb82075b88fb69ccf027738169b2d36d240f61560c31fb8eaa834633cc5a734254c32a4be5bea18e994150513a36d0ead29f2ccb23d40e709a67d2144a3d4815a9933458f38acdde2b495edc30d4014214b197a1673ad4e8d422a1f564ee3ded330f48204b090a2b7c48222abd7c80559e707a1e81bb018859d3468d443527b78c13534e018ac432db19134e59071d6e8cc8c4c536c4c8b0d56519cb89e339c51582833a9ab3ba5ddf419c0347b8c16f9716f8fa2ab487f12374e0b4472c2450014f269721626d463695a87782cc1792ca5c78ae5dd83e98b0be4b62ada97589557175ea2e30bc7003dd3173606f8b75cb465911d6e699d7b55d642ba6ddabaccfd674ad959a9db7cbb960339c115fe847db33f60a14bcaa69e2c37d2d96a565855f0bbbea352f01d81c684191ec3ca0aee036eb6c6d771733b1a6a79f829a8b5780aac02d220a706c9882ca11e29e0315a34ccaed1a42c3234ca4f95efe020c463eca07801f6b28e940473930db09bfbdac6f0b328f39830fdc3374d9949fb36fdf2863eb6b2842388d46459ba48f0c0f9fadd58a9cc9cdf5d89db224cb2ebfd52dea376c698e91418e86ea2cdc5529f4b9965ebad68b5c7a203c337e1a4687e5e9c1cd37ef86a7bbf3178c29ea552c07202366df44a9cdde9d8d9838454af65d54d79a7923c194171c4bd2421db5c6a1a9c44afff14036202ae0fe80e0b23fbb6598968fa73df80b3e4e321f43894c8f0c83518ef12815d2a6d0520a96df70b63de3e94d800f21d760f8ff04307de1cea57d0ec75ee728a5d091ffd47b3fc25691750240e86371898a7ec95cc5e2d49912e3c70b71d52e22bcae6e09b3eeba778806fbc4702bf34a0df93438ffbc341db691e496d00eedf45697590ce1837515fb7341bd158c63da952a69eb14dc11e82d69288b9262490948112474ab7c9a4c202646094b4b8db0f63fa04881d0043d7145dba5f42af208f657ba05e6394869c97a424b69f76aa44c535980730a25cfc2a7fa85ba9255892fac20f3c263db0b867621cbe1dfa06ccb3ed345319a68922b41ff95f17729641da615717ca2bedbc5162a3dba1b24907fd1b84077dff801b46d5b3cdc4f623078ed9be3b718eef7e293c85bd9098c1addacf3296afedd93c93a228a0d05658545b8c1a8b001295f5a69201f82f3027f24481502a84b22c1c901649222d95829e168d60a073c95d41c12400b192b4d3d8f00a24ed2ad1d9c4ba269fab602991f64c34336984c922b190e5e9dfd0425c8c5cc91a8fbe401a995546197a420a1a871a816899b96840f439170bbff96043cb23b0b7822f9d0a2de7eacdd1f362ac831c5ac9f3078e150443a8d0f391e514ac7c910605073cd775f08ea342b1f33b87fc0a629512cd0f8f93bd014e8044b6f5b803667a4df29d94b01bc16768605f68d4afdab28d1f0cd8d2db579fd4ebe5151f79e413d0bfb452e848b12a6513704056da7d1b6cf74937cabd2d68136b47a5d7e58ae4cd8fb271abb0d200f7b2325992b31045efdb5ba3d3561979d3c2c2aaa7e802edd8762681f61837d725473b7d9b366b496debe2d629744a1674f2534c662f2ef459bc65abbea0adb641b52bfe6bd4a2c6d84c177f94a60352d3f857511d36a671962c2bda3aa097efc3fbae89e4e233f6f28fd89cc84420b4b3c48c4ae3688830b0e1c94c2864150d367f350126b4cbd5d00be4d3136ef87ef1d22a9d92e1b12f8d52ee1169af6fc2680921d310f97c7912419ad5e52908932dc979b83cfa5118ebb35249c5dcb2ba086d1a190836792916621e39bc39fcffdf142ecd81c459bd31e7743c2c8b1f4d8efab9d3063a1eea3b8cc1da8468362b9250092df2a9e70053de37717daac1dd619d4e664dac216a6773f4532571564ddc2a553c1606e68154df8d4a9ff2a90e62ae8b96ea5ecbd6986f1a7cf005f76ef030b79a40ede243d3f075c158bb87b4f513c0b9bf0f1dc5565a925142bdaf1c5f2169dac128ddd8cb7d56d85d4b0e97af3946cc9842382d9ea283ad94995b864823e0cff735c0dceaba44749c6b355578620e5b78aa41783b26a758f3563d5bf4eeabdab3588d41474f21083549b83832fbe8c933cc58138450ff355454fde8dd9d6b775b8ade2370650b4986568321686dc579a9b9e91794b7fe968ca75cf1181efe33246637960c209dc9a858b16c1b74593e24f74177b410f6ca7287c95cd505a6d27df18dc707735cb30062a3164b2c906fe7dd68af0b290ab0ddbb3fd67887783c9658cc2020345030e7c7557cb25bf6b0679c406c1c6c73dad7ac4198da77d3511c019a6c9b0e7dd470e68c1939f334ef8ff54089f82eb24d99b2c4b432a2af1da35b16c04e1cf61bb530bb15c77445085c22338dd68b6bedb70e51384e4999b6769f46db00a4aa4794e87796f84104226848afa814e520f7bc9e113369369adde122b8887b13bb1b42818d2e764bc759f28b22b1ad0cbb84163193527b0fb754e489b6ecc13907387cb5c4f0e027b0f55049dc4edc8bb3e69a0b852f845242d4fa30d06502177eae9460d94defa27622adbed476399b05adf24488ae51e0ef447b43d0dcf2ce6061d8294598ae2ffcd30664e05f30f60529825c5d8750a5517a38eca800b1a119151ef320d1feab9bd2373813a24348ac3e1d8394fedd27e3237c7dadb900863051bd0ddb471a2b78c27b45471d8a6d5ab7a62c8341b54acecfeae14bb4c8bf6b90d1acc2eccb6a4188d1f4119692d906a508c80aeadf671a99b3842f0307211bfe6d3041e304bff9f37fdf73ea5a400d008ee1a4cec772ca2732c6009e40ad077083f08c2ea9e660ce05fd70bb0756956362150305a90536f4c6a7e9a0eaae705b7f968a473017e95cf1663174d17e4bc23ee81ba37c1da531c9fa583dcef028d1468e3fad505f010ad80b3c06a0960d621b8b211a64e6c4df05876db29cc161322071ba4e29067ceacdb8c264695197465b2414ff464c8cb0515933767a485ba3f8babc68f6c59cc3742a0e5fcdd40d7153eba5b5a0d2c54fc371271111c0b4040c63658d3b5b2a94ff0c8ae33a965ea677b6a4f84b6825e916ebc3341fed29626f57dad0add60e80f92dd13790174b9e7bcfe3e80628ce1249f4cbc3228d98e88e38c522e1a7e05a0820d206e70c98d6f096cda51cc1a7040020577253b49eec1a9afb2feec0c5719c50dc8541dc9df4cc3ba019f5813006ec92db4919a89387431b4a132c531f7943877ccc2ec1a40eec64bf108ea8a1baee9e9dd4e0b3aa45adf97aa5bc1b660788cf50cef8deba331a63b804cb6b651f71c604a6f0bbb3532e7fa30f9e81b771792c44f23a189b5babb1477fd4baf30086abb9cfccc21d062e68445f881d1a242feda593fc9922764f600c2e46f345bd9e2a2a4066759e5df753d68ca6bc01ddea9513e28e75a8178660e4e30139af38670c6fa0a54830334bbb304d969265ad6a0a051cc23916a254bc6d3b0512e25f8a3228c52ede0ec43d5b0ab22a98c8c944333ef8f0d195d6afdbd33fec00a43458f7c6d3712193982d1eca0e04aeaf828111b138aa9b34114c33baaa3ba00a3ca0a47d8bec67511e71d107f2bd9c54b392232f62887c94445a2f52602730d696ff6a56fb8a073f0c188abf28ea6203f6575dfa356e9efb6e2b8c85129f29490238aaae86348b3148c6c12e7f0aad0678c6722a6eef998820582bf0d3c2483303e3f86a45776a2acf23c509634ee8038440943769af9cfab93f7a26801b429f3e63caa002f9833e756b10e5a56ef5159995328372b735f0cc925e5a0f675e5c9c0e5b965d16cb0795ff7400867b89aca69383226856437bcc88030ace64e9d440766ab826a1a6618f1b8c83adf4560f9cdfc3b198e3aa0bd7c3342fb9d50556c173462ed65dfafa593fa8ed15060cd4249b233956b805152236a8bc92c92e2242d6691e04d8d95133126ac8c3ccdc83b828923f23e2cd7c4e8d609a7f98e833720ed5a2141a00214130a3b8f5594ff02c48a014a29a93e5f7048a1710e9ae96206747f07ce3d796ee748b319fbe83ab24655f5b52feff3f7c91145908373c5e7914ad77fd14fadd642e36242e38a9ee4488ee4488ee408e1be2d46586dc80696b17b6454af13e9c581f5a67efba9891099522611912c09c203a503bc03ff69a7babb1b02995a777733bbbb731fe1f880b0c2de0c0c90764f4f2c729432425068298f19177f7fdd7a49caa7caaee19d5c8454571240f348d5def69fe697ba6c78bd5e1b5c3c65c4bac844edee4ef16a7a248f1a25161eb25ca7522404246a376d4eb9bb3b0435b2b1bb9b4c2bf81ac7929269ee331604329c8b0ac08660042e8a072a0433bca35f87bfe989a6e4f85e142847c6f2ebe414a3bfffefb0a37f6a94d2e9c8cc402b6e2c33bb7777bbeb853fbaa46a548c11b5c3c55103c958627fddf7f767f71a276606620164f9e5ceccccde5ef384e517b9a1815af0587eb9a84fde07a8a9ffff0768d4f8af0834c3e6ee3c4a0ff02c01d1b075d2ff3f3fbdfe7a4f0a33cfa8b9a3105a776a288ab806ad88a20431d51900f9810c822a8a28bfd33ea0d373ad4f38e8f572cf17651544ccbcd323c2429f1d1192d2cbce127a72df5662fdf286f6a065fde5bdab24e56bbaa86b0c5fdbf85b4593b46c73c8b8e51523d216023b1fc9df7f6ff88e61b73bda925ddfea0a192ab5ad313b531f79c5ef01aac1d38b065131331b9c9c97193c36b6e1eaee6e753aa4abb95bc78a1ddd0d0292080b9596989e5e40888a79f1998919eebd975d185674c75095648761cbf7876e54525d896ee6f9edd088f48e61d7caa0eaa644752d0a92e639539db1f36ce64fb2baa9d48b08b271a63a8d622d8f9eea65e8c7270f5e8a8e85d42adc0afde02a94cef4c52ff57751209b4a85939f41b55445547a753e94e67ebb73deb8ef6ad7c5b7ba06f57e87db9fdb6099ea7a2af0f2536bd3171eb4247ff9e911799f04d417a19d764513f40588d7d666fe6597c12ee509f88ba59f83a3fafb63544379c6915f65c60aab7cd83f4141d65fffe1980004d070783a94fcc87800033c86759f4010777db772762a2dff59b2b12e448eaece8900cbdd1b70003fe008c664b49aed43083b9febcf295232ff10b53a25e3dc915d6a0e1253359368acbffac584962ebd2526519251525d85dc58ff31e937a709dff1a707b0ec8dcdfd6b8c58c9abf8a34489f5d1bb99995be58a2153a67e74e446dca8c6a019d59f1182acbf44d5ac5b55fb76eb1947aade56d70f28b0d00f7c3e51d2abfbac7a225ba97adc76f94907455308aa78c6b1c579aaab93942c9f56904f3f92242acfa712ffc1df6942517914ed9a4cac4ea17d475af9c3139cc798e4e844d4661017cc35149a5f3d51e21f4e9564931b3be54875757233fd03ffd418f6871462a5cf9029457585f281da9146dac87972bf08d41baf9862d223c2c20f4c7c5a0552aa72e78fd38d3f44b53bf8002f3a482006194823caab26c458245ee5b44a71a64eea050908476aafc6a019dcfd669304d59b621027c2c25ccbeb3d10f4751855f7deab04c9d5fdffdf7fb959a72965f2ff653b11161221292d3181903dbd029c66e93eeb4449819cf8b0fe1269829755198e04d16652b3d6f783691936905f097a4975a5054d67bef75e36553f028aa23c8958ea7ae236c2c2fb21a43795727710b476245537c8c42d75773fc11b6161973413b82a4f54d4077db6b90bb95adbcf4150d01395f4a062092211491df23b494e1025824c4ee9ec2742ad01ea3060713ab0cb895069d60e6c8e1db0c69199d984928925134ce8c94fdefca8a4a8ae339e59cfcc67b66b367fa84c7777a7e026c2425caee5dd170a7a1d481d374b2879c24784853ba2fb7202e9d59e50e2e01316db93ef73fba7527e03e4e6d62658bedcd8d86b561129df7973d266c7641ac3b6018eb0b09fd0143d11e70b8a1f4d09f325458d460ea088bb688a05aa947bd1a71fcbbd82810783ba060173640ad83ef23360e3d30c842de2d83028851c965fdd228e8f723499ccccccfcefeefe3a4070358041a05a1c95b29a2ae8898e0666e695f39f363bd719b4b4e47377cf10a5b45afd40d36f656a56ed593679272a333333bfc8042f3373fa7f6394a8a9991f333333ffbbbb3f33ffbbbb3f474145455971fe18df9dd9f9f11113f4889a76e6ff7f6e67807eae36541b8a32882740771a2a113e2d097046a908e090ebbedbfd3201ed9bc3bef1af650b5272921273a3b1782f4044a975b00201c5b753bdc47a41437ca82f31bd9cd607bc0e1dfaa67fa23f54cef7a23b0e6e2c738f999999ffdddd9f99d9c5ece25f6a19c1e7b5eb735198b49ec3dee1e8719e8aa655a6baee76b1464957f35f3586c2d57277bbb1fc6afec931be6e8898fcefeefefcefeefecc3f3bdbdb6538d6e292bb1b3ed6c7fffff4645306fbe6b8417579bd5c72f44458e8fb013de4087ac8c53a34c77a4e66d1f5faef2112612192d212d393879e28ee7fd777cedddddd337862dddd3d75ffd9d92e2f1dc653ebccffffdc014e8c27b4251098a1a21cf1d342fd99e1eaee763500a45121a7ed349d6faa476a8c959cd2f099f36d5df4c0c3471ef1dd2e88de7baf8e985079de7befdddd98701fc71553e4509407a298918885ab36debedd4f24e810f93132c44386013ca382e667e7bd773472ef25ba2179277443dddd3d0cad28f1b9ccb81116065d3308d867f9e32327d5d5c742ae07201a92f620b4e3a1adb187a09b0551f7c99f34178ada4e2e9b734899a0e9c2cfdf333b297370de512637c2c2dbdf21a44097eeeed4c5191add9c724164a65231bcaf12edcbc7100b19c246214341cba0b20f261530b06831382351b072e184ed02928e4b0b06b41624231696da8f65442aa1c5c20a9b0537672eacd8ecacfc80b1b2de00d71f3e162aa8682b8c3f925a54d4f546a6f2e38414176dca0c06170b57528eab157689606b1493702b9165c1c561a949420da82858a54950acb406a89e40642c346c183855052c1fc244ecfa05e2c17a6d3914880818be82db0944c905c7c1ddb4276be90b7e9fe6f08b9fdf70992f76ba48a59c05b9b7a492383173ec3dadc6b069b6729459115dc8c8d445cba752215ae4d2d42ec88d0ca91016889f3a20471542c6cd006cb823825bdf2fa7842af094f9ff9fd4e3f3ef092fd5b5476d8485dc6773bf2914835e93f49123c2429e1e9f1deb83e86cee36c823afe7fb01d91f413629d652e3841ab80d6424555092486252a35aafef1f99581fc50dbc9b080b712c2fb7866d919b227b8826c2c29a6de786638772e7f7d5d1f6dcddaf8e2226d65fe278aa446570df34723b59cefcffcfeeeee4c3306f79eb5509a7491a91a9bcd4c432c7fcbbbbff119bea174b6de8cc48f034532333fb82ccccb3259c3333d720093633f3ec483bc24c66fe77777f36496bbacff8d9255f897f752581479ecd224eb608f0d44124e8ac911e8ed13cfdec908a1c4c683597a64372232c2c52a123045543fc1c819622f11bc486f62c7921c0b327aa5de9c6a0ad74fb13cf3d9fb778b3b7d331ba0c3b48cb347022082e862da48759213eea8e1d817794b211a0f9547648cdf5fbedd462cf7da29fc2ef97e1a3ba0f68acbfcebfcc02c7753a9be64f8931a684adebc1953bae62163baccb41b41be1fffffccc6283db291094586f92f959dc48753362a3cbe5d41d24104f1cef9e3b4d366b9c42b41d17d5f546ba9bce7cefbd3cb28b7f77776f63dcac0baa990eb4be176a9b5b4258343a48207aae89fc9929f8e8c00fad9ce05b5d1d08a27189d30120e09981909b4ca4d56a2a3c41968a890edd78acbfcebea9342cb51cba20a83673df150d1cd68a1cd220c7babb33ffffb3caadc091fa0a8c618b34361ccaf12b459adaadf45b2d62acbbbbbbdaac523133f3504f0799d9bf9bd9f5da2153a9fc2d1a0f505b43327aae33fffff3f91ad211542f86a0b3dd1b58de664ed19899d964fe77777fe6cb7ff95311ecee3dcb3b74e28432829fdafdff674111b9445dcfddb712c10e1e8a262911e86417d870075291f2489b93f9ee759d99ebbd5b5d81a23cbdc9cf6e3bdb396c201490fcf273ebf09cdda6bad2e488b090a7c7674784048246a971670904e5c6fab5e1bacd3abbb4ffff1f976b79bd0798f85e01ff7c570120c286c281ca81e281ea81f281dab13914ac60924db86fca7d53dbc45b9b7aaf269f8bd981696c2632a18e2a141b1116e2e4f0f4f88480b27b053cb97b37337313f1485ec022d575098f080b7bda470db164b7922fb4997facb1ded199b4222ce48560d21b4df37544422a5fe424c6fa4b2c82e283751f6d29eea6060e545565121ba888344f345166f30b34359261d7e0465858b6f9dd7f5346244cb43825aa2b0c89a0697ef747b558f419d24c49fca028ca0ceaeea66824fbb9babb4609a666691cdb34993a85e764c55ce807c76558c57aad1f402ca8333bac1f4d1a54323b2b1419521139b5060b2af3a992885ace98364dfa61b8b11116ce681021d31991d3b5c462443248e02b0202a545865701870970390c13fc8a7a232c2022288245021b4e06d92d080829b2188c0d75474e2b3fcea119d659d40368749a65d1114fb5ae619736762a1f379d8f56081f3a9ece3aea8218a163139e080b7bb7014d7c6b931f7b3bb0e16e48946e7d518845641f26189f270f9338052958eea451084cabe652842596d2ece91161a1cf8ee8617a90da254461848e6b0408ac675427421496464ba31b8ca44af97fac807547525d439089b09056bb3cadb1c6afec1c2ca2bad6a891ad94f9ff9f5333022a301cdc62b93675454015981044a0d0d44328184963f0c8211f2498af0d2e2d2f545679cae6b64a9dccbcc38db050877a73f86072fc549b1e2a3a6e364958ba984d135df0e684861fdc0d07157e6237422a3a7e342a1d6e488805baa3764324cdfd6e2680e67043417aa03b5a1d520b96062fd44f1f1254baa367889edc025a20d04c8f23298e943564514fab4186ba8a4801535ad106500040aa6b8e61b0427c20f36025840745ad6e1b37b681538b6e455642e062076043dd90115ff60cc68ac5ff8f9deeeeeeddccccedeebef28d62955abb3bb7d23c9b40d5dd0de324d8efdf5d028deea7078c22a0208d51546c4575b2aaed1978343a12c532b6b8bb09381116e6604c6831ac229215aac812f61311cc13d2051589ce8a85a0af0549aeb5d2646341e2635d27d05a40a224a5c212df4aeca5d204b8da2ca49c20ab7063e502ca5486d216539b922408eb049c2b09d36ac5146c2579c2a23af1584b2a15d4ce0a88932b65f25377f446a828944ff5abb5cea636fdcd402f10fde15e9f427bfe7a2e6752bb3fa6b581be2feaadf08eb7983028b44d2d6198e4f8b6226182365347ca1836946c8485490bc034b91949a0090718a7d8050bc02ca111800d77418270c0a5c29c00d850076484fa6ab5d5ee2e80ac458096009edee7b5680045ae016789bc0e5ac401a86b6d56b319804a923ca30da400c2ce098ab03026a309e0c5730a408a6000ce1e322b2c6c133e98933d2cb8e092a2e662f6b8c1818119033d7c300eea8a0190c3110917005c0080a31a1a36d0e4361c1db92c1003b8c0510a0c28506353c007061934b4a069f091bb109514a8044b773aa7a0000ad31a00000500140672204921940600148004170e5d909864301c9905c260281c1404c38030008a811808611088e14094429260c21b939a9f7a45745e0b3ac776058cf4a9017a4b1b144e54cb51710137e2049832a18f883cd7bb3a57a4c31688e2c0294ba1054363ff278af4661270d4825ea297684f0bb115e76951ccc4893e40fb273d903ab659634c9d4311572c7c6bb5dd8abe051308c6d7e1017f79040e762e4edafb5a3a3d4b97538948414f5607408970815621d5e7ce1aa47938adb88cdba23b0eef03896c75b21d2b093b58fc5413ed1cf2b328bb80683d27a21fa2827c34225e588bf8af44a78c944c440e8e0f5f10f09c70a9c0368448ff0209634b089732311df760a0a1ba3d1c464c5773b4e90ee2be91b56e2204c9624f28c07e39c0c7ede765c305df9d050eaed6bfcbbda813f3bae5d90737789a9e21c05e238d48f80e86de6c00f16ca81f1f401606c83c4bb38375b5f1c80945b0371e9c5ef463589891291e0071e3612a9e7f5ccc00d6ec3e074329a827333ecd3eace2173218771120c5ec07fca67fc5eb4eb926cdbd1e1a6d667afe7341a3320080303dce0871885555380d0367ba4d30996f56a68f3d70bc5d16b1195f1889a2c97b1f15e9151f88a4977bb812d08a6ac0014ae03633566cee218c105339ddc1cbefbe41055f62a2206d7ab0b609aab34d1a818384a25ba49442d1dff65f568d6680318b39c42606af721c9d2b5ca6ef3c9d2cfe12662dded51a9368c730caeeef0659d6486617622899b99897d428842aaefbbe56aa5911adfe346bfc76038208ecb8aa430def350d4fa0c6739a7aa4db4ead0835e9ba5d7d8e1adcdadab78045d2d237a4a12e0cf8e606b42e88a0171e20462a8b822a8044953271ed9f41dc03944e3c306e96631adb69df0b2e1763a3da78d80572eff7e639486c42373d1e41df67c4d501392a30c748fa255690171c2dc68309f415345daa693de3e8d5e1ae6fbf747cc512fb0a9fec0703c9ae9853e0bafc21764d969f69fe085345827cdda9a498b9086900e37d2ea59c28d2bb97e2df890ff47a9b4e503a143537bc39fc25f901063811029badaec4fc51e3441309e6e578d11c9acf8e5b04790c7f0e598498df4b5acbf129ececfe67238955c35bee88de825e938c45a8e6a332ae27cda6f8afa714dd36f69c802c028e1a431ede5b87f9e86d4125960df13992b949a2d53a771608441d8a872a8ebb2bdc6a9e7cb21db7a6491282c4012baaee68e22edcb07d95c76227da57f8c619d25119f0f516c27fb3b92a57f4a1a5152d8403595f2e6bddfd348a45f0479ad89d45856af1db446dd51aa5848beb9ddf3c27e58dac577b0c0b2cf9cd18b8fb84e81cf299b1925aaf1f3492efc43e3bdcf648da4213d9acd7632b2192dda2f3a9c5b389ba93e47213f7c7c4b88f92a0b907f092169d6fc0ffd6fc3830e14baf69c9c8f8eabd70569bd2a08298a5e58068ac44cb28280d4821ca6fa372832141bfd3843737ec6cc291cd22f821efe08a6d18acd44c462bdad4f6d5c48eae1da4a2698d2bb48690b2a60b5af56ceee6d03d86388cdc41aea363203a5d8c7d490021db70f30b1174d82d255314cc7301b27d65c4210041ef6c9e6b41135566c4a33bb28e19071ebb80d17b9a5a8b2cd3bf8e9b1e81dcd6af64e6a24216dbac8b5018747d7388b11f7bbb1883bc8633609436a8c69f66263f622ab353d7d8db2e98410f3f9f29266ba41047578a4213f6ee1300eecb2c0c0b8ba50fc1e530e727202ece94822b21658ad55877473cba56202e52d8230121ca307116ec954d9e28723dcbe530aaa6072d8a0760db93425183a328ece023408e14e926f41284e558d958649a6460c3988065081699ee41d32f43bc9524216baa757370d5265ce3106e0a0b6b2d95cb3eaa9bdc188db4ae0bdc2847fa02040e3516fad3d3fa147bba05454761d80de1cc404797c83eec0b07dadcf764b5d830a38a79e5d5a0c48fc3f0afd58a43c2dca5bff582274e49cf78dc23b216141d3f95a5af5ec5f4f2e0dca1ea8302ceae1d1c576286be8dbb22ec5717d073d1315f60a9a3c2b383f6ba28f76ae8ad50becbbc3c8abba8af4db94476100cfacb0baeaad734157912fa909a15d6fed66550934e892f4bad260f122af2d7af93b2f77ac249b51a4ec46f021592342f567c56cb1a9daf20911eef6aa112d1232ccb24e1ab38798bbeb02793e89f408ade7ea1711093bdc75e53287f57c30bbe9e5e69a9f124a85bac206b5e5cab1084c3e188d030c3e58ba9a1cc19e5207718c584c9ca56f435761824321049e2fa97b351cb3daa9e4832fc9f6972e7aa60d27b34f32f3155f0c743a2e51af4edccf51ad3012f894771281f97a11789efe26ffabb000452c82268d1c42de1370346d39068ba19a94966fe9b75e5b964cdc4a72b5a4ac875b643fef088e09c9e1a695c5f023b95d1c7090bd955640cc764e23a9e8bd3b0bff56cb2908bb2781af0646a8c76cc53918fb510174483604a54a156fa32aaaef83f9d7e35b777350b49698a8bdba804705125948a9ed33afdefa83400a07a1dbb2d00296b8cfb9d0cd7585731c794b00f133504252d03d02fb98a7175da2d9c620465e723ca31af649f85839841367ea03ad615c9b3b93d0eec065581e19ee62517f5dcfc17b99da4e7c61d01ffeb368964c49e52e255e54b2b9cffa775191b6fd6615ec616f9fda4ea45498b6e14f7f7e8d61157900b4bfc44db709d2641bd593b968782133f1c030cdaab7ad724ac24406760f4d40da09856b0557cbc4a62262a3648c3c5b153dcaf16bc11f66d8aef2f44c1dba24a15a11b9ca13c5d1d868f22eb24b6658f4c23c7d59a9ebc8d793a3c90d5edaedf084071c54e438079f5f8da4c1e086da32bd059cb40e51a947fc0ccf226ff1697540803a92587f3dc3b60f3c6d4c31ec61cf9ef128813f53649844b39543f9d4c9fc63be52ef8af6d19c6f914f0e5a66cfcbc83bc3287f87244c7d879a7c545eda54e6645438047bfc485b8a6f691d126360503350c6c17889f6d0b9db3ae1376fba3ac42c7f8acb70f8b5e83e94246150813041a1d32912a1340bbd857d089b164ed08999059d920b200ad416efa4c7604ff63c4d038522dec59fc2810a3b5f8c0fbb367eb7a8a77b4843ef5eebda158b20dcc9f85e8d381d135837c900e392022233c6b309a36284d86911135acc5025d4a0fa40b8d1a9813e7be667264877c5d4805c37ed4d24589092c0d2d2287723136623d258eb938d3075d60447fc3a110f12b94f82e115497ab7101d0603e757961dc4478228e9720ef8ba5a1e7350746e2884d77223f2cf39c7f870200e2741ecde4422224f4c23d16dbe0ac030757ef9d8507b387951876279d5b66422187a495e5172a14c4a49b53fc37c74ba766e5af9bb3b4b0fa492d40062941467128c95494185bf19e8a63f1982b713249378d3be514a972397efa6e67e060bdb9ebf607f565db6041baa23ccdaa0d9c00d3225e905d631b9e4804e723cca53af0c5db2053417317e6e3a6143223d997e93f8fa8194110e1efcf7be5ac8a18d30a684c3c39d2cb8cd22f327f3cbb62799e62398cda8180b758a971295e49413f941371ab333d6d0aecc5132729302b6975818c08c0c9aac6d0608ff3da44d5dc4b591d2aa0ed1f33b150fa4bba81b2a747eed5da982664c6eb1efd810d64831b868e36f154dd630821e38e433b92f4bc18a23dd05ad93772847e020082eb2f538d5687430fbc38a0d84ba6dc92d2f8791741536b42e511b61197bc85082f60e66acf2ab285baad7570c1bba3e4722b7df2a45b10a7400873dc133d6cb5b1e58d992a65bd081f4b5ac9039d2e750ffd2510a1d91e0eac01f8bb32f9d1b2aa6a23f1df1a2402baa2904b6641abc3e30e808e012c3af34f8ba71c13b206d7bb2b4c942a7812b53fa9a8b0be00bba4c6585cdb936bb74ff9f97d3ff3b91221b6619653aa014af236929b5c501a25faa49595f07f838f8e4f923440877f53e86637ee79dd4e884f9bc8a557528387cb147bc43076919854adfb2ea36fdce6594ab353bf0fd0fa5a62f2013dfbdfb411824ee2a889bf581409fa879d5ee38f4883feeb0e6d5a465fb77e6b3f1cd3bef27213c336d4c8c9d97fef074e5fe732680d28f50d9f789241f452664f2363ae5910a6580dbb921c6a782bd67803a18c55beee2df51082e88a43bafbf07caa6f687eaaebaca52e54bfdb84797520704ff27837608e241bf48a27058d248ce1366819eb9c8b1a21c99ab0bef27d908a1d56ddc8e6353903ea511390bc72b03eabb0d6370e97c54da3bab4e13b13dd8b409813fd931ff6a8b793dfbe6e361a865e4869337693f7a653dcde6209ec17f1c8125d9665368c43f6f8311b6fba09e7e000ee7f6612430ae11842102fb274ed7f848ff99934ea133c16f43ab1b6b0f30861d303f0fb7dd0a4cc53152284e4b0879b7a7659cc6ba46fd7100f34f181cb24c4ab74c9f080465258c8935cb0b4417e23675b149696ef06bf3d9cce8bbfa99bcbab8c7a3af3466ca8c3f9882a36c2c498ac8eb708d14df6702d86a6122331a23d1a65cb1a0a0f2bcc8c4df8f86f2c132316cbf5aed878e092204dcb4239b363d62b39c4986c87444f1c1ad45c8c857ba82c060298058f597082b1555e5d6b21fc63c476a601fdc32dd8250d364c49be7a02c7b8a401e97462e6595f0038f058b4542e76b755ad19f88518c14d58e8bd5579bf03352a3d927b41dfdc72dd7ef7a6edc654649af379ba9e83cccdf2fee642cef7c1f27933081817313da2725b3b41b058b59f2b3bb26eb8f6be08dae1bde95e827ea7f597c0497f60b4cf6c37dc0b9690f3f5d55ecd18026503e945f41e9e31ccc4bbd9dbe6e2068d2ad35510f3b45f6148d42f78886845b88f9e538bc03715fbf6873477192678f55985fd6c83ed0e849a55b1765ec92a942a94a26dbe6e956f6a1ac13cd76b56adf1a86f388d2aa8d934b1043015c90887a4c6843e8fedff768bd4d8534f3a944c4e35afdde62d765b66d4f40de6424ca0bc478b7c71799d633ac343f8166da8ff85db198ac4028ec3015eb46a232ba4347f83520096ae085ac8f6b2a41790aaa067e47747849401bdf7d304faf01dcb5bc002204c646ee1db0cb624125c16d2d79125f96ba49242bd503c5076eab77fc242b7752825da8b2999d2d6fc9216ecae19c1db6fe8d1a6f9852c5011871cc56fb661fa3c68fc30b106fc0a7a23c457fc324722d1bdc012b8b91b74187ded0659f6feb9c4732a83cf07e274304786b34571ba2ec77720aaf7b8d9c381b211e541259e564466a68ae27da527b02448f14dd04f266e0ccb5e1adce1f0f9e9447e7089c365f8499292a69c2d7a791509deeb9a4018ba3042bc7f1de7153fb4bb0422fd0b16478ed861eaa1ba8b1c8bae5d735a1a9bb1d99a9129c9623ab77f800e9bd72c1a98475ee39933055ff4e879b32377e7476300684f3a953bf51756af326dc518dfb1a54936f85331acf609fa2468307a83e419eb865abc2c12c8eb1250c7b3b84bb20814fc945a2acb47eda811fa1d10cc5cfeb455e53b46a6523230bdb39bc248438df37f8a6257218b524120fcd678abb38536700356e52a4a1c73f15e92c44ac0b3329858874a17b4dbfa92b473a69ac7018546a7554a26d9406a6803f19259d7ff594c6e38f08092caca08ea22a61ce779bebc9300b52141ea98aadb661aba2c57f9927888f78220ce227cbfb0d45bd2c955906cfc8128e965af28391c26f25b6e1f49a894a3249afa310591e5e03f2b382063e7dc82050f32e6a37c51efc9c641d04b89676ccaf9888e75558f4e22f1eff7a063fe6aa9073d6acce1c8369cc2aa27442328308a453fb9d1413a57fc46ca785d9167c4c19d85de416a64bf3bad3fb9bd4886b2223116f092742c4207bef26c857361d7f033682454813a8a9c7989264dc517058588eff41b36910e190dbcb63428619565cc06ae9bc2100508dec2c25f96fce56174ee896b9f102db82859cd11bcdd17832afba7afaaa4afff23d740ae5ac0270d9b3f72ccb5e79e50249a0127ca18f221b9a1cee606bd4674cfe1698e3a2857c9479acc4334bacbc96c4f2051ee40d1b26d7b5da6ad3ccc0504adb50b38e9c97caa8a87e61c7573a387d8a9e6bb8a80ac27602497df8f1692d0c6099af11a9f61ae31b145b5761569331e49ecb98065b254d256eabebcb1b5ca628ab362a977322f5b855371b014403994fe08302174cb6a41153e480561b5ef0b6ef0425ca43c71e529809f6784ee07183bace2f5b318217dc01f1f86f0f8f9768ec4838273eecd8fc3404b18a7fe09ee9c7d12d267791d8e9d03ce127e5c9cc13bee68c0955f0b246d41d6911aa241340c2edf5b35bf8c8d7c7e61111a357a3b83bc633c77e056d7ba67da5dafbf992112a0662373072b97e8bf2263ef3cc4d0cb7e53502e047ba4cbf7f8a95816d670c90bda6e972e25b4d99ec501325b1dc304665b9732d5badc5433bfa80f99e480e62215e9784fd664ab566c09db66fd4fd51fe7885dd3182bd43de4d67d18d43381945782609c443d15bd0bb935ba7a9ac8793eec27f14bea646215ceab9156f9896d4946d70a1d9bc5ef8f5af6ada690ae21493bb619f8e7493fe173bed2e7dc499a897c18bed643115accf9de39110a75131284a38ccbea0013c2b3e43227845bad216502cbc73b8b5f7d8352ddae6276561edd15cd791ac22ffed132978fea1c852f137a9d18b34a2b18e51b119b7313276e2fcb6989e897a1597061761a8f8201b87ad76db366a0a3f1fd44c2e068dc8b6c8a83c1b04d5cd2209902359c11a336629468c425876356c23c34bff680e17f2431c321e5643aa7d16b2411535dd664d3c5c97d65459a81c2ae9ef014bd40b1783f5997dc04e285abb8b1174f33696d914947d1df74700fd7f22134f21f468f4c688d37403cd0dc5743dff3b8557c248bfeca7397363e045b1a7859af2524a2708b8a0cdee9b571f19609db651c1b0b7ee8b2b179f19a9f44a3127e551b0edef5934942a560021bbc17d087482d47e9e2d8ee3432e496e754ff9c766c43da5272f0aaf11e9425b1926616728be84c93c32e38792b16a6bb9ef507b31d7752330b653e3bec480f0c3b4270578302c8677f822fdf3276ff6c2fec6d0e6ec9d41396a1ef2d149b45a842dbd720f90f1910cc8b4a3ff3816b817b91cead4ffa9b10eeb451c3c6f6c59128c10919525564fa2c4c9781a1dbb328e55b5314bf63b35616c28d7191f0cd9ba5a0651a21fcad0b4a757292f6d0d249e3258b2b18639148d93d2f84a0d08f3c10c84c4086360ba1fb171ac88cda757f0bbb6c00ec7897897d42b1c135003888b5a5844ae75a7355d905af125f6e9ab120b1b70fd86217a841e3957b166ca0ca1bf268ef13b5762a8b0dca5436bf0f5e8d7d9d97a4544d357a3790a75ca3770de23dd4e04e137accbf3083c82faf3b681abd970a594176d087e7d8ec6c5267bdd35081cd31dbeb0a58025483fb14ad3dca21efa7ec5fb2dab198f006ed35c004928ab12bea51c31b314d4fa0c6f364fa08675ddb52270080dc3ef5df3dcae63631b158e4b4a4c9833e0b858d2f70f389fe537803075539b5ba02ddb98763ee6bd60e679a66ddc181fd894220cc04003e8f6bf0213abcb5f3575c850fdec03e8f184a907d3dc07417601688d5f69651f60d5f27020e03405e3564b45e922475e8e0c8f2826106d0d82bfac1d539158601e67546b02d39064f4a43c3ab72e081c63d1f61f760f659d52c2f5cb77c93e0faa11022c408a1aa644763fd9c82086a32b09db758b0066c8998690d15de6bc1f183be550f241993e9b1a231df1ea9563476a3e1376fa9a0b5ad3528400342afe2eec305852000b840ecfb487a468b8af55152542501a35812e6aca08614841100cc03b1c5607cfb130ea1f5e43a93e93d001182d2c32c304a306acc3aec805d8f2fbc20ff4df6a4819fe50becee1f4add357d83cfeb3c650c77e96b5cbc6507f815f6904ff84c436ff61a8a7aa9e6212e8c8db8a7c5fdc7e40db9b5d3d44b2da1d30d81a27b7f07e58368a1e4443e5f1412d146a67004d1de97c551909792b8083e7a0bc989eff2be6abdb9c5c08161cc89866c8895711c4ffc6e065f69249516daa614e36bc925e270aeb1de8ec159f047f2a10b87297cbcb1f653249d29e4c1b1664c8bf81a45d42701d9c4bf3764e1fb015c7382de03b3683657f7999d67d99a3e446961928820281d26e64604d3f39d467de1333c3dbd87017d1e76fdd2c353f1e44d90bbebef97ed602ea365928e8bf08625523c5871cbd4dc1e01ca39ebfd0677bf6cac42b35ae9125073cc40a0793e23489bc92a59b4f795135059a90525dfdf3f24cc812256df5f24cd8b560ba5f7d9579d74ca50b4004865ddd750aa562ad3ed413d0d301adfea176ef4fb4d23248d45ec19a43c40dc4a2f777da4207fc42db7a9d5037aaa92f479b72b2b77f30250b0e7196966b8220f94ea1e9cfc914cf44d596c26889c586717857bb21db4eb8b52388ad01df6f71e5d38c51e3992e947d24a9c12269fcc88f164b186db1e92a63c37190d56fbcbffc796800e193be945103069a5253d0a8d4d9c806fbf70575b7bcde01ea63854717efc30b6df989d08fab5d197f83ab11a6e68bf0b1702a24e82eb0e5fa8758835b8082c6bd3612ec0ffa57b352b00ab794db0a25cc54039e20a1acc53565b5e858540347887ca01702f8ecb161e602435507e57ed2e304686740a27fad4ee1c399b385309083a7a76c0b9989aded2739dc6253e17f75b4c1ce7a9d09989bdfa501b24d0712d8c646bb26ca1ee5b640385722a2fa273e49e94cb1de9d960b10644411ced1519c4a07c55f51d7e31089f14baa9890e34de5d1139a7d85794e352e390b4b18399dc911f02d71b02fb0f2095d6f5e008ddb8c853afd1e8a2d9a769f35cda617321c6cb186e980d2ed229c4a41f7fba5e890a99b8330745c42c1033d1b1ad41519dbd949811ecb3d00f5784bf328d37b95eda68e52a7076bb252b2c918fcf59b054228975480ed729a596888c580cef73f477df2b1fd70ba60cab38a515e06742f7ea8165753912cd95c30913e40a74568bf3efd2abf50a71e39c554f4df3140d1eb8ab0df6f1eb99d8b193635d280f1081bce3f774ef7a3440779797b648cf7a98048dd0e480b519163e065a54fb1602c092135500ea8c1d2960d4e138d6df058ab18491f789a0d0b0740e3bdd7d311eeb3960e26743e0743aaac5cf31ccdf82fa40da948a39589654852afac084cfa7ec7c13858a3dbe8413a00e6da515bdb4c594a1806c613f687eb4738c62b33337021474b4ca8b9b747b363e3a517ec160594c8ea15d65359e03a35fb8982f27c66be6788aa4188c5928506b4ec93e5e0e156b80992e4fd17626efb4db4911b09a2bcbb7159d36066acbc95b5454321a1cf8a3f15f5a6e13ee569508204023b4a6ad0d9f3e65cd39ca6795be0c700eeec57852a8290382fd91489c06351299aa4673740928f71565ffa1d41e3edacd8ecd55a8d93a88a6c0ccc2b7cc6ebe22cb7db59b7548abf926616d882589b6c8c01fd04d94be762974c04584faed9813c3696a70ff15ff496fe4165a67361d4aea7f3e21d067ee618b0b1f42035304f7e4597c8f1a4b8127f660b1fc412213311b6e2b462198b26203060f460059e63d0931bb6f092b6eb0a56a983f0497d3a41160ed1c25c609aacfa38c4e344ec99d41aac402545eb48b5fc9cf03dc7b0b4be3c3d88f21fc1f9936ff658d2e6b30577051f95daf90949fa03d33595bd852f492dcb54913cdd0eb602b5f8b6ef78baf5af601fcc13653e705f3b182de103202f2120a94713adbd9109465bdfb8415612021d52a4558f7f876e10454c906a14103821b8c56e1e8f8bb4008ef86f46378dbde99c34835d4e31182c99d9979d20e763872f00bd52df041565dd511498b4d796cd97cadfcf8730e91f1ad2d2cf8eeaafc0566215774c5a8896713d29725a34dfd4c35befe9c92c45a6a3c8ad0f113fac771854c9838fa64e292c93c01ce6292ff5ab2d6c14f860c36746cc0fd0e03273832fd49e7d3e113f404170000e4cb038a67c7a8551e2ba11e93c759b4a7225824693d42ea0f9efde155fbe45990d187fe83c52cf0ab090355dbc4d0978137fcc4f32c64adcc5bf98ea425aac76b1818388ca8829f0e606bd0d98f33d08171eafef12110a78213b85704c41234637054661b5d3b8b9175494dea21396923718555a0f41f18cdd70e5592083fa8799c20bbfa71e0a58f1556f4a0f934cb67873f982bc212864b815042b6e600bdbf8dfe2a9397e3d4e844ba78593e07e6c993e14a073060134bf0cba63f7b28811b8bae19ca831bf14e684484259a3d4980d26090a660619c447b128ba328b0b79a70cf19408b17726b31a0e224655c8366e7437ce1b50852b650b6279738af857aad11f56366385e09b2e2a95c307ec21e968f8300f8a810377a31dd331bc1d8a17922ace00c8093dbf88d1e2f3a0bfc61a19f1a27587786384ba07ec80a05136afada2546d6543013ff9d323a8f03381f09b33c367a8ea8e8a500d8cc874874dcaa740763518ca51acce17556c46eb91f24ca9246f82f616f6d0751ef6efd63b303456ef5323ec049c240b060d89709da11f990383f2b3b5cb6214af9fefb573cc7598104364f7b18e91b11b49f3f4b767b8f2cf80cea2d0fb7c15be96d448d46435633a6613a00d625f47bab7faeb0dec179ede5f96fec67cfc54e5768aeb511e3f21810ef1522c62d3f37dc61ffc5e8bdf50a1addbe9f795240e996e5a9acf9efb6845b12efbf4fd87db84368da465f67f5d61ddd21c7f63eeda51223a6360a42e360e846d067ae6e2ea19c93d78a56c83825acca90b2528d8bc6ea4da3c62f63a0cfa18637536a35d4a959437732b0016130dc006116f9d030f5310131503f7877286097c7a514d7acbefefb1122be55191b77035aafa11547341daf00b37021ad6ff7c352add35846257a17647b41c74eb1a6e27b55fb05b1417c2fc636720fa7f1474734580ba061fd6d6018968c7ddc51786ea14ad4152c643e0365dd5860f9e86782418325911b47fe9626ea2f050dd6b5015941b8d6392052c175cc1ccf302e3089e63f93422bf45eb86820507ca514a205c5112c29b0568b491d2ea09a1dd0e51262bebc3be90a14c64d9427a2780b92782be22dba5eef3537da6458304f46a43bbfa97ef0d004bd8d3e900d57ddd24068574a337dcbb982c7172f6fa3718e2f60e74c1518774c005e8d1b925fb2de6055fdc1c5fe6ac14f269468f7368a44535dd8f92ee159a2148d26142d1892ac0bae885bab659aedb5031cd1f0a8fcd56050aa8f2bbaa84ad999b5121e17e308864a64df8ad4be6bd1aaae67043d48bb9e2ab7e54ca2a15995b58a8af57bd20745b32e0e3ed698229221cec49b26d408009de0f1db632d8648b0af4a94d14bf7bcec94be4902ecb61260b705102bf2cb334bbc330536a719011621881107f668467e31437f306937f49a4372fbbe6ccf2624f4c28d66d5acc316931acbf2c97da6b9471f0c43b3ecd85edbf60d9c220064a8d52ac99a3e48b687ee827a7f57982ca131668b85fa7378156212fe2403651a3267b902a21ea5115f7d31ff8e9663d22611ed0dab61e0a53865172f53f29514f9e57249d1a3b4cbdaf9114226b755d2f6daecb61fb37e64b5f04381ddb5ef2b6492d231804ab13d67a4c9a7de3b370e2aac8b72ddafde8b2f80ede4a96669ea8b827f9361bed76b777bdd8958b42387eccdafa1fcb45fc3cbe4d9a07ecd0c7f6842044b875712b4b7487ef052757c9c1bb825c1b1bf3576fb989103d38644dca58432f2e496a719bb215e651c1f672c34611d619accec5ef2785186ef71639978d89315b787e73fedd0ae69ed9ce9f529b0a4ca36486ba0ef607c20e9e1633257d9c004a8e2c916bec4d13d28bed31a58c14a48becb66f659ef42d5efbc91c2b62fb2d047c0a6570a6b989f2cfc5df52bcffc0c95f5091b404798f200adb7d0285056680f06942dc83b155dcf639415b376d5c0e582f65b6fe5752cf4cbd53d2d23ee22f3eaafdbf8d963e0339fb0394facd503a4bf01da4441465c70caa04e073a0b143bef2088ccec36bb539976c74d77dc33073b0e526eb358095d8ed9670ea3fe136921149023b04c4d28b2b5b1246a0346c1ba1ce0e1a095e1cad35556ccc3f1ecd136c4c7baebf817d3ad6d7b4b2953927befbd651c0433045404b8078251ba02b3a61764a71315dd032c9394aedcca531145f98251514fb686293427265e379411256a10e1c90ab4e43e57d164863ab309d1a94ce97daf6049bba8ed8beca80894c24cad146f4236d90faa486a0bc223930223b50b7b5b17d083896d88fb29b171f962acb621c027161b98ef070c02c146e4899231b11571f022888269d1becb9c52420bcb6a1e19120cd2cd5caf97591d4dadf5ef48d76a0da335aab5d65ae79cb3d65a6b1602fdfe9e8b44604071f3038cc5cfa921ff89629f443e92768141a18d68c8a668d5bdf7667f36d3f0eaa7234f3ae2ff5fbabd94d1113a4347a50edbdddddd6dbf9b23d170fdfa9f05a9a7bace3967edee8eb5d6ae7f4a144ecca65ed30fab55d95d6bad3de79cb363adcbfbb61b3a8c924f2e91f96072ce396bff9cd19c7f366dcea8bf1edb63ce4cc2f27d93bfa4e12ce7ccc46363c2fd7e1eda9cddb5d6da73ced95d6bad1dc9264512814a80f5bf5371b91f7a0a3da84d21cefd30296d3ddf990b33216d4843d3c58cc99854ba18937425edfece47052bfb7aa7d9b7944a50ffb7c1216977c727686867b3e9e1fddacb2d2a75979987a45d5c6e63fddae46d696db36647d26eef67ab9922c5deb76ffd3f6cffffdf3de79c1d75ed5affffa3e6ec4a9b1b829b18b8d4a94e35ce1049bb3b1b4eafd481a29bdd7aebad717e33544c7d57f7de1b742dbaf776dfbf1bdcec87b385fe36d8508388dab6a1f89b1933b1ddf02039992806f726aabafcbdf7de2a236977c65fb8683c1b3d2e9182652aa59bf78924ed8a95f9ecf76f37fd373cfe1e64583058372c9b37f1fb4c67764ad04d5d9e83679b2d5f2f5fd8dc2acc5d366dc1b499fd3772e216092ccb4a682973b4d02559f4216937e8a53864ee1c336678741f3424ede2ecf804bdf818dadbddddb3deee4fbad639e7acddf5ebf7125d6a1203b69925b3bbd65abb0f7d1247b840e6fb257ed70e84fe88b23be7cf19bb6e2ae3d12968840839a37aa766b2a8c99c73e620f8c281b0a429c84146d57583dc8cc2def7c94adacda073525d4931477d214391be94e5e0d0172341f59663082dfe18cec8e4e5482e7d1903fe50945874df9e0f2108d0adae29aaaaa6ac6a8e1a195455387163459133430fa614aa4795898dbac68c193c008a584d1f309884a1429658418e35a4de4811da8c503c7aa08c58c39276d70a088d18d0dede8f21f5b35f2429adf7fbd77c7203f5fd77aacd6010a3e6ec5f8790a4dd615157400799763df3eda44fd5e4b843b86338e6d3f52248d64ea9c6284da1823af54af74b3daf1e19401e689c34574e255a6bad81a42af613ccc9bb152ee71b142a9e13255443275643a5932add53994a052198037b302584ba05a0aa6880f622eda891927061815bebc72e1e789a8ae548dad519f98014100ba216d472efbd49b8bbce3967ed8e71936f55572f2392767dc0a07058a4801759120e69aa5fb86e7c0646adfb00603401e964603a14d53c44eb68d18e1dc3748d7db0d8efe79491b43b43a383b3eaecb03a3e2deff25b2cfe265204dbc41cca48da9da1a9e1e038cfb3bc9f4780209cf7910049da0d0a872d9222d60932d1a9f1be353ea263e2d854570fc59a0732989b4ded434e0810adde7bef1304cf439de8ed7a9779f33010db9c33be3db0667a561491a8e2a123c4453d22f34025d595b72158b2b8e6208c87b34382c0cdca1c1031188405085a6b67d15ab3b8e66088a92308958d0c5d2d683e48e5207110442affffa7079d2d1617ab7565d996d5c7b6b0eb0ac13f27dde54ad155515611115dcd77209b57499a4aba4aca7a40b6a6a8ab504e482764b4f2fab5bb97297eac9428f78d7a24edfe6a46532afbf5eb4ff19472a2ae4765bc191e0d0f2765ef4f613433a941ac2156a3ccc68c0d1a1457d15a6b4ff37e77f7bd77ea3b850a15555d59fc4e52dc4028f19531cd30d130e198f8c6b1b21f49ca4c5d7338927673b9cfe9d49cd1aab24a3a20af1ea51b2dc8460bc0771cd783f4fe501649bb44b1da505989de2fa582d6bef6b526dcda9463672d1350d091454288848661071dd1e68538a1df7149e9062a0291a980493100644183861551594d270e1331bbefbdb7a741f377a94b75a9690c378de2a641e6af33aee741ce9a4794d566f6376e83faeaaadbe97aba9f6e6ad55db1ba25e9430d241e516e6cc7014b257d3f939ce49c73f6d1f8707c3baacf67f505b1b9e59d88828b688a708a768a7cdef59f3f57ead9eb91b4fb9bbaaaf5b2b4d63a05bbbbef9df7bb3bb9f7f6ed6f4ea96b0c1c49bb395d2d86d19399349752b3bc3fa348d2ee0cb2278251896eebc9965840497c9840a29475def4bc3f8c13275fd45e2c151df19deef7ff716166a62049bbc21ad3509790daf16876c1734330efbd771a011147b0a70311c3854b25a59349df37ef079775ce59c987a4dda09ad25086272a9b15bd0b491432d8a564c0ebd557d59513e57eed874725bd20c3408152bd1ae111cad450d744dc7e8810341d712b6977cc445d7d74330bb3cd034c8b1dfeff1f85110a9fcaa36b3bb99a8f50463aeccd6a3d38a9b376e266b5d648e0869cd442c43c59e3c93135d8a34fcd44500986b3ffdfa65622476519716353126be6e46badb568b47050bda2dfcb74ac2156118b2cebd7fb4b302ff196cf56d0d6d06b77d7dbf1ebf267c42ccfe00c49bb34b620ce5a56bdfbf8eb608fa6bafeb0296917ff89fdac80f75902213a10310752e659339e45b34f130cef26a4baf6a06933aaff3507ed3e70361f39ad636e58f8a8d182c847e1b4c95bbb157fadf3e924025be5ac74564656beff7f94bdf79ed16cd5b5ebffd2b5eb3f693875a31aab24efbdf746b79eda4fa67f5b52a6fb7ec2da614adacd5f5482d5d5b6018fce39e7d918238fe77d31a39276fdb78aadcdb16049bbf83709c2842c73ce61c31d5654fde64775cd9925110bbb48b00b5765f7bdf7768d4bf49d088c8fe172ce39d789020981e9c4962d3882cb198182169f1603b62dd92b5396296bc9000d18c150fd186e18aaa8b9e0325c56867158fed18807bc80a970b14407ea50531827d959e89f265a0c58f30656408c0917396519321ce141b568717b79503225d73b7e218562fc637a54111366110de68b5f8ec3d80b27e1d359224a4c08017ab4687ba3c4a47a4cf38b52208898674f1418319f3c2d061758d4a03dcf5e51e63c9291a4e38a035489a3dac94ea064c07dd2a18093f5b40288ab3744477bd2dede10df58937b7ba3c276b4b3f646853999a5090cf5b2d74b21501f3454cfec5f06975c50b75c7641c960ded3b03ddbcb7b02823a11fddab5bdbca71b130fae76b797f7f484c403eb57241e44bca71cbe751c87889420b243ca51d641ed4f12ed4b65282a6943c41b13d4b4687b794f2f7af06867ede5397140818556b571de11e69a8f8425d49eb497f7c4a3eea8c0c845a357beb5d63bc11de1ce70a7b843260246c40d95e0dda9dacd9a7befbdd535040d49bb383b3e41433bbd535cefbc7f1bb57befbdf7de7beb58a06301088cf7de5b82fd1f76a6ce3987e891b4fbfb29f56acd622d08416c71c939670954a27d6affd123b9f7de252c3adbda45e89c73ce3993c8e974cafb889c53e79c2d18112451b5671903d2079b6dc1081b0b440c7352e056fd69be9dec7cfea74e408a6d66518f99a5fefe9f9752102aa6ba0a7325ef8e5ba4e0d2fcfb38a648dabdca228a4dc051a60543971af4fbbbbbde4827e4aaaaeb948fa45d6070c294d0cc2a8296523d38e87e4da5ee513bf1b82a491c5a3aa8d689bdf7d6b51946499525c4595b25254f87d64a89352469b738018b8c9cd22a42b59a1e7cfdabfab1ea49181dcbffdc59521939bf2cbcde7accb59994d0c2b22d13bc84a5c9ba1e479338dc1ba34e5db827fa4c20067520a6032da110177e80e708afa17b0dc9ee5a6bed5e49cef26ba62d2774f1a43b2a586346a7243114080361c2564e47e34cccb860de955cb4eeeeeeee23691718140e8b3f4108d95740630217705d7d974532544a7777a42149bb450b209195a897453f949247246957ac6c759da30b2b16e0dd50c6522c70043c02a2008d9c569f072f5139146b2f6900a01c5f825e700ccdc234ac185371b39a718ac0b13b794ad9da1fa98a0a004032ad65984e2aa3950d8ab76eaad2a9bc58f97460ccf4ff6c76eda3f3cf66f3be35dc73849fcd7a84ecab3a798f90cb795832f46d8042252c210fd0dede0e0d9a44ad58f6cdde0e212ce6b9638424ed0ebfa8da62c8566731d6bf2b3c702434487090ec20f1c1455fa58a08f4ef0860dfe7396bb0a4babe24019aa4e601803dc2f090b877b541005e90144917321ac8d894687f4dae98504b5eaa6e3af8f6e879f3d47c99c2e118b3d226533c49291a205448525d67766e9be9a9653d1b052093500915aea4ddef0981288d8bef199a42f0d9dd3d454b75efbdcf9d1e4e569b81e49fff9334d7105c3717960c2d93a1ea55556b7424ed1af96a35c0ed239bdb84e741e66550a66f2c314c96a3b21809dcdd9da7219985d0978ecf082a1d5fa7cf5762a5229d17ccafb282b9e3c0657e7e0f84a5004a1db14054e15ce2904173c89170976e88dc0037cecc8c1b2d789411c9114389e7488c059baf0dbd2414a0b1d84107e6583600f7acdbfbe34068c42e81324b9771a3b8c7f90fa4c48eddab7cc7b858f5ffff18e31f5e23ba2c14159f6a7ff6da37cd9595d05284f13578002e24c9b2737b7dc518cf61337efa6eaf8fc88f6189a018d506af9d135b2712d2af669724c7d310869397dfc8d00f1a233b353e1be7d14dac66e6bedd7358eafe5f6eb5bdbe3020ae358e414cbeba96a6141ecd6df3badae0cb4b27e881bce1ea9172fdb036ff5c7b5c41adb7b7c775e2d6626d29cb17f9b5ca2e2225613998a2178cf753422a8bb7635173a3d69b52221d4efe776e2f53172f44cc0e520ca4193c8a8a9adadfa0fd2699a31b274254d05194557b1b5144742e0438011bb47279b7c72444a73dd5f63209d1a085d05ea620c51e72a4318992808d8c1780a929d1d58248ecaa9d453a88c0912188e70490ae00329e1c6c69f42165e3840b4962ff274972878afcf62ab918d371c1a3a3f93a01c928c6786bbf002c030c1019706bd7801b7f1db9346fd25b95644a0415e79cfde6d1c4796f08d2c9b09501d0948b5aaed16694dc116ce477cc84b2125a784e2e9c4ea022f0927a597a784a7a5acc1ef75c40dd511e2f9e1e2cb6c9d4880f190cd527561bf0a2c38a9c051f335b3b1b2ad881ccc822631544e86680d5d020fe3c88225ef91801a2db508685d58c1e27515497af7d56420b1187ff5c3367696431c6f77467df64d9722c3fbd00db3eb0000e90ed3e513ca14c92e444b17a1fc081b125c976bc0ee800d962018ced2900db07463c9a471b2881b463e1b3754336c385246778d1398e3d61af7d21d3a9e4811d52501a5e10c9c0e7d4095998d82ef74784a1c8ed1b1a122b94667a3576a8ec469c4e3b13e9ff3fc6a0850294f63aed3078feff779b5b91103982469a84a70c1a42a9130da300ac4e346e5add5e271ab752882901a91aa730133cc4df1903638cd1dbe63001c6a3178ef62a434baf21a993eff1909b154ca47b1ae3fdc56182c7b8c443845acca60cc195677ba3863439538d59a3730ff93b481d0cbb83c198188e9ec440ca0099e6055d0ad1330258d08862b1e1c708d109630a159efc67803a59b22818538839c1326c69496848e85683d7612ae607cfcc9090949094aa818a425850580e2fbb9f4472fe81a583640d92d88051a535a2f62f7e24b57fe347d46c8d3222f5c3a848065270c0d9e109f169b9309b72085de4844c653873e69532cb24fea0bd51452acf3842f65c9295e2458d1b6165bfdab718a2e19c8950e34445b2c04e34513b6e3bbe3ae07c4520b030a87345188941c5950fa8dc872e1b218ac282a47e401067900ada10840d2298189511153aa0ad0a54287e6ee078dd388188cca516503731965c389d29588264adf02063f364857361c90fe81851d8e9c18148881be70f493444c7974b54d8d61610b3f4f1d9edccb205cc040eb225291fa7138559fa8bb20b307e3c8832ce1345d8d1f7e77fbe482df69c23ecec1c9f6aca0a426a4785cb0a418b0b04127066b324f1572835aab6e7e9f3389549a8f46b9f09c9042a8016c319041400701cc771244942076d031480061ef870a4ac583c241406425118181085621886813008601800a0200ee3289ce414ae01c01f28667066f54065adea83dcd9dffb627ada62943ffae90500f1caa097b0b198a617202688dd36637b9a5a7ff1150cc4017838ab03f5af8deca678b5c76c262ed2d47d07630b5a68846ef72c2ed46801672270095c2f42ed34e1a819a372e8e580309786224536f0085d7c18ed41b57f84bdb16851241359a0a4f6039ea8dbe6896c22fdcdb2c8d151fe093992fbe0ea057050708e071859759266455d4d3e94d0a6a0e4568ee45add22d6bf066ece889e4daff8bbe6abeaa12a9ef6864e60c3b66c0e68c0138b65ab2cdc803cdc2f839aef70110e3d85173672a9697cc8cd352a1daa48d11db7fb2be12ca38b0a5ebf7832b2821c7c91797c811070e5381952970cd584065b84e670b472ffc8f7d765c17a3a24caaabb0917865b04d20b40dd605ab512b923364377711636b0936358988255b4b2344803aabf3449f21f17640f4769ee3523b41f302be903cb4988a402252515811253455912b148a139a97dc865c4ac6a0dc8ae96d8070a25cff6ac182bc165894d08ae32cf20438d571821346f29ddb4ba03ad82021d58f6f49b552b96d061bf02eb46dd1a950c473d505430e7178bfbad74a29ef8a20866a407daf6c02a688b8c77ef95383198e8e711a401d75bd59ef665f302ef528a22a6ed4fd63ec5d737127df72698840438b5598a8e9f6fce53fa5414e494cd8dcbf4777adeceecbb22b2698c729e2d50f33378a904451615700028ffbc2292d8f3484a8a141bdb676746b4f44031164d37a449e16c059fa957491c98834a0ea0f15bf719305ffb2cacbd42dcd704a419f0a16dd18e97a35a4a3f08efdd2ad5b37c38d9afb6da77ae993c270a9ee5d971a3541d9a8ceade68b3c78d43335f6269e91a8172531225237078bea72bbc4434427ed99bee63482030dd0a6304320e26b3a2a5764164af78017ca0c325fce659cb65e4646bfd5e992dc9ebee790a70fba4bcc23515398463b926b4660142283ec02e71d80f08506a6c8c328618d801ad4f1da38cf1cea7741683af28d51013086c980e68f80c0b88ee5a806ad3d78b66f8cd10b0a9c6a460661d6f4a491d5f977b2c9b1ae872f9d48d70089501bda810d7450bc010924be0aeb2b090ee09dcd6466712b16553380b471b5e6f399d76aa8b10014707eda9f14b87e853acc82a88e681755c2babe4d4df6346be82fc01146df96f3cedb2bff6b4fbfd7a9c21d89893b7a15cb460b2a603316570da40a67c144f4a999511c40942a4bfecd2185b4b252475c21f94fc25406816f64491a9ef6f388f10b22bda6a4470c301bbbf5e02d26886bdc220628dd42bc921525e282c51a9cce25ff51ec296801fc205734103850dfc84ac31f3afba31ba178f4d8abda6090a4cf21bce9a4add211b0ba8002bf7b136d8d89115bba0867fe4924c3215a8f68d2442a8a1517d048aab68c53b301ab1a873007b07230619cf4f1170fc89e8776e504df52e52f47f2860b7f7b72d7802e99194a97eb458a65712cb74290a9c11eed35e983d5714ba825c92a09c8be34637c630b1c6b9300039f11b0d299a0017676e1bbb556afb24598bfeb8c1a97017b4b4d66566cc887c70d15633287a8c0eb72bc094a13a8667b2fd284af30b78261f2440ab7d616594b6923e8ea28ccf089c7e1b9f646a4f131f3bd3da0c56e0ec41f13da53d3962533314388cf3112735d98b491c709d9184ee61b8ee0a31e72b02352bfd02a5e95e214a9ed9286a1c588713b5e0ffad10fd3f34ff2f24ddac2040caf2374e94f315db34d57e81e1dd10b81914f938ae6c52f837274a6b029917a92528cef076c2c89310ac73864adf89f2929d7266d182164c67816971b0dbd8ade721a377d5555d15b9599a6033ea5f50bdbfe0193c83db0319be06732233904d0ebd7c56ed26e204a9951c4b39153822bac8336420d92c04cc093e5327c3ebbb4633ad7d76be2204c14b0952259f672a02a0227237f836993920e896772ac79eaa55675fb55eb7fe81ea926553cf065835454b0282baccf594e6f894726fde889fe39eb1742d851376f53f4bdc616da5e83c1ab60f625b8f2efc85930e664f73e9a96180dfceae79cc21d6151705263aca4580b9e322d3a629a52e27ade972d47ee8d744dbfa797e347d757139d328790e56c4c998299a26d3510ea706dd72c44868b899eaaaef4b6fcd3015b7a88cae13ccb076bbe5655f2f2933ddf0709a948f0e78d7e61aedb6408ff38a1c771c82e5bea344a4fb09a9333c8bf46a3b8bbf10cd62f59740b610845f9e020d35048ec5199a81ec7948618b25fd1da47c1d5084bbf584a6c741e8f78d2a4fa9e33d4ed9ace5f31bdf56e06f07ba3ce518325536952d20827d84c15617839515ed72a1d382a9b90bf2303d6932534ed382a5468192298547b098be0bc6740d102b4ab35938b743e2c1983281f82dfa96c1caf2363e25558a9cbdda538726b212f367095bc393d8cf84695fc41880f23f3867e7d48a5570feee7e7d0f5a8d586ecc7409caa0f7feac41564eab95c328f1a462922068fa523e01bdb51c1645323c05d9529cbf74ffd7c114ed05b5186ef1c6ac8e515d747da11a9b04839012e4e816eb057c15a7f327ebe67c1acefa7ac0d39ee7358d440b94bb682f27f5cdb8ef3801760e331f364d600c44edeec3a3e3941650e632dd7fdcccc15b44be55fa82f1f420cfb8e0b4de87eb93a2a4e622f75925317fd1e96e0a74d0b834a89f66ddf01f6c7a61532b2393a34c74e240c79bfe4d26474ae6d0002b06c513dda3e6f654dc6d296c6b1ec29fbc448df2d1cb198070c04f51d0aacc05064584309a0aa179661f301e4b21f8f7c597d2bf08784a757843162106baf8ee29783c4733514951435641297266de7567768372cd79839552973769668fb87d503589df930a038458a41fd6bf2987e7cdf9b5971ff2ae508691a4e9b2a837caf0a4417975d6ca2fc8a873fc5005b609b1b1e8174841f8ba9325e7428bbeb103609f5f4519dfeacfeb596b38c176a6483ffa79d518a3582f2a6828ad847806598278aca080357a64dc697b711878dd4f07bdc53fd803e24f4b1c86701594b0bee7773778c2f4e0cf3136d15100ebc30de6fd02025e3ccd5ab7de53d6fd4a41b0c93941ee4f03a4d106fb8a33783e435f21a02207f5fa7520ce047ec9235824ea4fac30cc911418dc09571f5430610238bde80c8b6be252155dbcc7909e0c77647ebd16e94925b06fafdd3452fb30ef6f8d73358e138008af70eab919fd5abdf3e09751608de823ef9f7fbd3e911543617489bc7019e991d12f846741501509dbea7bc4be338cb47b50d1272aa6e32644266f1ee998b051b91443cc4a4eec148d68963ab3fe1bea0c89908474683976f88178cef055ae575e82f927a578302c2454cb3564c4f5863a997af53fc4452257313de50d95a832ccd78545bf8ba5e0503449ebe97750a76c2a465dad6abb1dfbc85577b7447e30d1ba604b58c2121792ba3c4b2059fb2f482896326ad40b76f41e71b163bdee41e1c3e8eaee27e303917fe58f2033a3b78b7de72f3226e827c7996388001095068449dc829da02f4a53515511ac567a735d68a258f25bcc845c87109c721c456b16112565ab102033dace4ca88235aa9f4e5f045b84f2123dbe6a343d221b66b4abe0fbae15bd721b319a9e240b0bcaf1668dd789e8721bd57ddf7bfeba38a3ced418719427db36c2cb7c338dde10f5c92f34a1b5d173133a2c9689f6a00c7f5394b96e4c3645646ad3854162c966bd66f26f86164ebe63aadaa05bdfdaf669425269ba13eeee7e66774986d7db20e45484d824383fd95476229f1e903a3b081f33fe3489d9c1764a9ff899315f970388ab2864379699f294b434ef6e8d1a26ee93384250a7e4a5ee8c2748ae3bb79aa2a989842b0897a268324a4d0cdaa2a077a5df41f56f06575503c06f443f60c197d33e9178ae097b09f529a32f611f7ff756d3c78a385674075b53be41ff8261960f354f93f26f683ca3687cdb4c11607b592ad2c4ec2f58eca0472f303d50462b52d469d1c4ecd454e327efb51f865a849587c392c2ebf5444b1a942d38a7a6464a990fbee7cc7beddce9748ecb2f9ed1d405320cd7b040a22a4f2d91abc0c4967235977cf3cf8480854a7a9a302f36bf9ff5f922875ac46fbafc17dc45618c8ac3c591b94c00e917e0eb7ea33314dd4a05805146dc70ae8a8e0ca4fe75fec4fe0cd8613acfee372a7e7ab7a271931893ebfcf18cda1391cd5fa8aff55560f0334fb3763ed1490a629ceee7dc5fc955c32dfa81a40c519814641a321bef382d2e177dcc7f7645f3c2b0e06aa8db7f58c6a48e2299bd954196fca43bb77b444ffe6e62b02219067da1a0a374b4234cea426b4408735ff7d86c4e089d040833cbd162542dd86ed5df9d783ec8ec39e4b136e26a98d52618bfee4796d6fb20fabd5aee7318cdacea8745d6b695a42ee3292da4a026344ff1f8afa2e6f78e993515d45d708952b4952e62381887c6ef2e2753dcec96a9ea532211538a9cdc2e6b7ea9f12aa31b0b7b27184d587750b5910c5d84580b984e02141caafcb75b010b58b66f043ab8424fa2abab9eeacceb43a1c5e75f1b88fad6a1f27644e639d54b6001f9ea6185e206d998c3a42f0eb14724a8286071b4cb5ac382372e617e4f61c51d9aa45b60f8a1782c7b929b47f1cdfa8ad032f406c044b990a563ab5af1d8d45f8bf013d10151d74298e6d8f5be8710312bafb828963116bfc6548882aff23a359831e5faa80cac7e3a1abdec461780cd4e8b06e45650d4220d238991ef36414b6573addadfe60f0f5f0646c734aa817b1dfeb44177ed26e520de0bb9c06b87e466e387b63da82b084c0af2675bbd83cb7c04cba5536f41bcec07cc07a10e9a57534538b9a0790cbe187e688ce73e0c059fd4a5748ec35bb460a883951e7a32cbe0119ebfe902232162f0af1725fb78e483be15c19c002c086327821571e2f2ec4dee44f4b497924bc6feb3e254a2138630f5f4dccc380bc80ddbe6509d6cde5a9c218877851fe1f664d2de222ffbe8ffe72698099f9ad6582b2f4e2835614846b1d819a1062424a83735386bc5f2a9d48d11bf1a1320a113bb6dc180ca9f2862eb92d8faf491ae0083d21eba9ab942ab5c152d3cafa1f9ec45f775b59dd2ee840b315c3ab2dc09cf86a4ad42245c14799cab7925da857d0cb381ccc45a0bfcbcf527f097c88793925662bf94674facf68eb1387e427a642a798c445590edb96264ca4435ecc4401285afcf2aa7db15b57024a4fd160ac44caf27a6d2c49baa3e9f1edd54112670080a5a43e7267c7a24a3b046952a70d4db09770f794502885a1f8214a96215ecefe7d6d7861a8da735b7d6ba9771d5924c6c74e63264655d8d75c4aaeb65185098581fff4cfd8240ab42f823f169951825e36dc05e4e02a2eb6b8e22e2336be99d36026a8f11163565ee3db4d31e47d48631faa157fb51fcfe003e50f901912b869e06a211913e2282930ace6e47b4142f8456802e228884614e147382b12894de960dd878a3835b53f38416c0996c699097c8e328f264049459fbb054a0a55e7e3a2cf140517e2e165a955fec97fdae99f51c6835e0de3614ba15053759080d5c2cf03c2d2f744a0f878626041f19d090c85206f04eb15cd1df5f887d9b0412e47b69edc3d8a755f2fbd1d3ce96b9273050ce6e9603ce62f8170052d5e0493c83c8d893a3dd444d57230eb2092fd5b20078161646b526d1bc24cdc9b3432f21eaa99e02c5f6427235fbcb3c39bde74b87edd293066e8700560f637a9a4c5b7abfe87c59cf6387d18497f67a3b785cf6ca03ed344d6ca3628cd024691dc40023d204c5dcfd8cd638bb1e04579c7533ac1ad22ce7c56ec01489e613846c452c0464012bb954c6ae2e9293bbc0616ac0abc2b9d7a4028690f1d77ad43a478d6a743442a01af064d3ed89d2b366428ecceae218590d3465bf0d71b7647bafc7d91107ee4895f837a9348ab2655913c7c1ea043532b9428391cdbd46b0abfcad40a39b8cd4a33fe21717b131801fab917da1b1c300d6d0b48c1506a809d3045643845cb378b559fa358c5b040808f030c1917cb55019926f9074f1e7d35cf530733a625666b6d76144a1fcb2ff13c92b48115fa429e21a28d076360569c05e484d593427a8c8ae7d65bd790a503824f469b5a1e49b57090daf358144f9d03c433604d0f5dc22e163ab000001907535d74e956f90ff3f84ddb688d2482c96a404b69430950aac97ca7374dae2ee5f905f083742a7ebdc4f67c4d8c1f1f5f7aff91a4cb8928c9bfad775c1b93eaa8c4cdc756a27004f7af9101608bc3aea042219a90ef147a45f32175e297988dc47ffe74dc4a23ec16fb5e78dec3ea57293221311465a4ff45f99aad734a50918f2ecb45bdb9d619bb86a66e0345de662604bbb4379c6172029de08297ee1776f75862980cc34ea9ed3e33a4d8223ba70d1318e65585ac0f21b6b83ca7595ca466b604ab274b225ab77d1d5d8dbbb4414e76732fc969b1037a044d620b5fceefc54cd907516433a0fe20ffc550c4e4c0833efdde78906aed48369cc9e436fec559578afd99e2b5462463837eb6ba6c4be877e2927c5cb626a3c1306d2b22fc212ae1b617a5786356848092353a54c83519c21c12ef5bfa1261b8c74901334c0d3c4692443e4052d7b682325d2f0c3775dab1860d919524f55e88051bed801875d8275f16eef6df56713d42832fe5fc70545d08d30d4d06f4d4fc1b59ffcafbb12a0e04a27c41970cc56813e53ab78c90b4c3d9cdad5d97bd8adeb785c689fae478ff8ec30328d8f2855c14f95c64dbe0d3c7a8f4aeea70b6079cedff047449b28674604b094864c824cfd5dad48b6604350c9e7b0eb14cc3b28a6e21fb2f53f8e535cb59317154bb5b0f0170696b3b317bc040ca23ec2ebd543ffc0154b8183db5d3bbd7987d07dcedf8baee4bc4c54be64e3f90658452919358eda940a841523ad4668b77ea1bbee4b8678ec3a5eb3f113449c8e0999d20b31e98cc4296b0e595617dcf84744ed36a3bacc13000c90d39cd995a5309fd99f7c5f2423e8948991c2a7955b78f7985dd220bbfed82bd754c63b28b0078292eb9f90e9fac92d6f56448400d5f6463e88235b212604809c10663b5981d22ba0e9a94641c0d8ee84a01770bb27716fce9e2ae61ff416dc39212cad83115518c4e1473017799ec3f8d610bb19dd43112261723042501c6500debf8fe3fa3fb3e00a7498315a5d2f67ffa14d385282659d2b72116f8aa81068649f5e9c9eec57081d2ca5ef2f059ae66fd7086515772a6493758ccca240c002ec88b1c793a740ec980800b0038def5fcc9f7ad3eeab9215ae0d02884810c684ddf403debf9e0de34ca44dec1616ae0713369c1553d3c2a4864086438afa760b62226b8b4507188cb71067c8268153c6f135439c6b6642e1d10f9960d8b11418b65e430a2518019cfe0940a104dfde0af1cb20fe554eb7d03712ff1415bdce3957975e3b7b0fc7d42460a0c359f2c525d6b1d7c200c7cebaace4b332bada00a08379603f247e0b92a2312984020f9634939c4be67d921c0025963917b2002647a0aa93c286030b354e44e3045a4b2b2527121fd3e656fc7beace8a0e16ac4dfd9e3c3f0a1ea0408064c4ae898084188536272aaad61148c97a63f45df10fe0833cc9775b9ed5e150fe1ae6777340f9e811b0fac7fd18e244dcd7d4a02b5902cdaf361532e13a11754fb01a4f474ddbff2a7e64fd12195e96a5b65b694790e7d64049b74277a2ca34fce77e990ea48f5482cd5ef7ca1d5b007499d23b0a7be07018b27070d66545a6c8597dc261a025ab12473f7e0bfcc0277b5cc4df5b21c9de4265527b36154b0b59abfdab89a47589196d0b9c2d2c2e7c4cf810e62a65d18cd00b8f76869240051c3d590e0850056f8ae9fc4bf044c069626429abf68385df573a11f877f53eca2b2d071d938312d8fc90d42f7c83ef3f2e3f5f6edfa7448701d7982551a0aa1ab4aa8057f67bcea3b5d4ebebed58815eff0fd09c292fb73cb0ebc6e1ce82147619fb3298ebaec8dd57ccccb9365f36d57bf52f23486cc3079171ab631cc985c582d785635b8edba2dfc3f53c67c93173e2f6e31bc1497fb51f0931911b18dd12c829dc55963611d8a5b56400b9f60c91ee664b8137a85b2e18c12c313a49404bc1b9ed33496be738220550254eeddcb728c334a344d9951be3f671786db6f5d0d15f8ee6023b6971483d6a21c28a47de68cbd192544b33751521025bf5a334f637577618fc344fe4ee21911d917fb64892780c3425070856c1d4087c72a5109c23aac64ee60aa499f6a4c6a686034de4180eba9a0fb0ea205af2ad6e8394eca28500c27245821a26ec4e576c736344bad18d730b60a9b9429a58ce20fa8a6adf5e07097c16e2aa6916a41866ad2656942d6fd20306ccc5bdf3a53e713f5465bedb48fe1cdfd8daefd02a76199bc016e3b1393ae2c0044186c59f6f3b97545b48b8e6d1f62be6993ac790ed74a38f78f4352c732334e9a77125d545030ac6ec56c2567fe5b7fd4158781af6ef521ce96c1630f0759b2d2d73da3006a02ea4e9d5c8f1d41b8b0f05e42bb8a257c3e51cc0de4e05bb59ae0980e461a05c84d1ea7f38ece10fa694d1357451bcbd7e734093bd3a25369391cf46078605b042408dd34fdcb1789eca952c270b33f08b2353bfca65b6af5c84c72bf4c530240233b11716be1cd9956b66130fb5f08a27b8dab65a35f4261c399bc1248427598e3b5fe5767ead1ff12666047a33ab63f0ddc50d3268e144892f302c78efd2fa392134e0ad4d082925b2a0aec91483783084279a847323e42602ec56f3439adcb401afcc800591aa56cbbbe62026ec80c3ccfcbdc75907c1d1def7713e1970330536a8c8b6d467b66b3ab8ca77fb58ba16e85bc4c339afeec708bd65892b2940f7f045638ef259afc477cbb4065cc2db4595859a0cab82456445f1e15ed553d509056d7ae0bb351a071f9c905d862ac2714002638bbae1f958cfaa6084f49c95686b9142396604f21c2ea80ed95a6986a8f7756689a32c54e1fb01eaf626460b8e108645138ee451999a201aa130af18a3aea38d38bcbc93106b12f07c1fab8acd550b2c40ef631ad200caf4563610c747de89eefabc174c2c20c6cbf3e3de1dd1d3e7d69c04d937d65b63bc1122e4eb5b8b79e86f800a1d6852f0294590ab51a6b5e2bfbebcee6e0833302aa7b937a6086805230b42d253d4c9664099aab1b0f8b6285361c1cf7288be8c5361a3e65702e90531a725d71477d8cbb79e7d15b006a62330c822fe6d0dcdc05861c09a3425b3980035302de331b501d886b3a2e7705748cf1a1661c3be01e029602a1e82782244523a878808f0f38b9b9c82f266f427735aa2217d09a921dc80b04e4a84182612a600a7c6729451eaff4ddc071f064f49841d4340253a7385e54886cbfc48eddaf09bb0754422b7203bdd926cc888c9552f11aa502dc151da83ea8e9167c230bf18e8364a65f721094d1fa42ff61ac9bb86d5afe014b972b488bb7c5a94c2488a356271b0c53e328961c984b3443876d986ac24d9190f903fa2282b7f08305aa8c642fbbe15539bc4899c8b7f9b048aad8c277680821811544e81696f9c0da12ffc0be7a5446711c90455209ac41694d930aed0d04fd43b2ba2af46a1d3fc68fcb0bb2ed07adcb083a18b470b1d741c991005d1d564011adc6a9e6640bc6a21e801e60d9fe4a75ceae7348670585f276a9c9093a42b6d7ad365668169729ae119b15b98750b4d388deef777a559ad7092b9bedc4a14a94a350df5502f7531c59c987da817cb477ebd65c31cceb38c819927dcd2fd2422226cc0464d5e6c31da10fcaad2c8c5c20544447d8e94d653d4c74ae1b82334f203a64a0004b388c165b0ffa704e1711050f19a24972361a0e375032d1a7e6919367cecbaabcea7d464a3b5361ce42d0e1e81143e97fbb06b3922ce14e2b52fb2d09db6b4848791041513ae22f85589fb3473fca662640ced1d76b74379afb01dbfced1aa5e150ff23ba92d64e327c72aa56a9888a12ea7e8959eda9523ec2466b1693510a8464d09837a3ab1cb3d3bb13427f94f4c607a8807ff074fb1e657ba4f0e52027aa4a630a5e0b2051d350916e5bd448f4ffacdb66586135b080f6d05324550d2523e23f146e7b47de25ae88d50cc9a83a6d2e6f1c151e2ff8c400afb376702ed70cbf8202dac0f91f1e10ec40fdd8790e3b70134464988dac9fcb690c0d853bfd10e22d495fdb6d4e315fe73a272cd4f564d92b2c4e47b0a0a93167c27135cf01cda0342ab170fc9f8e6b58003b43a4ab5fec10f13c3459fb91b7bcfcea5343e1e09a70cf6af857a6db8306fba130e10be73c84d964a34af0ea6e5b7d59f3a14f1f9926d4b34430c8aa09ced7edb1a1c72ebdf018991a330037bcdf275ba1a3d1743ec71836061be546806b82166a90f5803b3c0da6372fa3735308fc0905024c82b30afdf8be9608eab66634113320dfdb6066762ac03801a9a96b160c09a343db334016a602ac63698822c3d17798ae9d896393531b6089e7fb0fe0f5472f1f027126a0a7b7fdbf184675327d58859c5bee20e8e240bece92c889d62d81833c54064d7f7b33bfd0b321d47ec641188f502c513ecb5bc4805de114d18af0e4b195fbf66cb62a26834a749d05764c03d93984a132739f7081f10de28b8d141e51382eaf47406310e05b0d2ced5ead26e4e994ab244f5ccd5687a5d888e466715ad8f9e89a7369b58d1cd1c54ec2d42b6f87bd482312a8621910e36b2f32f8b288fa56d003e8e1c099cd25e2c407622f2858ddf15d046293862cb683c731ec306237eea6e243fe5903773cffff324444cff0d5a4ad20393cef01231bf7e9b8dce9f377482d283fca4483220046a7eb4e545401df28c21b8f8a1817c89d5c9900d77dbeacb501e7d9cea78b66842ec00adc1c5125e2f6855c61089dea751b8015e301bf7a7a637aa1feece550310d2e8c47d3a48b02d78a6c6730a5ebbf7d1ccccc7b4d16fd330240f7cdf4e8e6a6f6845b2aff4cc1f18c7cb1dff5f708ca455d7ddbeea2d6be7859367a4126812ea427bab80ade40aeea464addc3ff9d9978830a9473291c6ff792290774ce3915992805dc1fc67afd4bc74fa345575edb0b0e52632d765f420a056eb50560d20a093c8fd03cbf2485a977338626a5d3d8f17ce6cfcb5ec49135f33b58936f0ebb660305d792dd157181c422ae0a8c848029a244a6802146a6cc1d421659f7acc4b27fdc5c59d326626ea421ebca09b937332dde91bc0d3ab4a883af847befeb1715a767ee141826a117605d9b2896851cf2f9d5294a166714f5e36a7984747e5886394c3cd1f23372cbe79b3e9f5095ff0142a6b60ca2f6e352187284b0a7b467961d6d617aa99505d633307c551d4799d900d70c2222b0211c1b5c6edf82e24e0173aafa5c198c6ac5a6191388d9733f788664e36225d131ee8c992377b68b1b6b2401385362fda54310d14d8f7555062a92dee13c68e605f583ae89a12b988a95d751e0e215a5026520d86f57393f86d68cf21da448377cf4b7a07d78023f5f2ffd3023e7ca530615eb4a3684549128978bb51048be7c162d69134885438008eba862d6fb6d55d5048296a462a5cef4714c0de2c203aa5dc88719839d864439bb1e2d0a68937c102262477d8c192725d6c15b2a9d8a5217e8ca788fc04330967940646943cadbdee384fde639ce1f720a1e727e33fd400193a814100f1af2215868392ec9aa34032cfd99f9c063cf5e6555cde7bb468ef449584c973422ee26ed413ea942c777b22917fb7348351acf5f0b92249067e2ec4ca38666e4f01afd057416bf9f1dc7cf97ee025c555cbfe58a1d40bbea47a220aa156fd92002542d004f296d893f41184047e494c2effc5006070b5b21d76e6c4ccb2f14dedff5d83754e33ce05ddb658146875b85c0a818fa83562adb6a66c8c62467706d035a320a384fb156fb29991925bd2857977ab79b6fe1c24480a53b4a823bd05ad640792ef8ff8dd837b6ca4a1e64c00eba3ee8fbc830bb3bf9aa212c51ad80208633851121724a3cca8fb4fe3ddad817ab1e4ec74152fdde1e88112817b0f071dadaeea93b30abc51035d9d6b47b48f939d340ce319dbf921954f6f435e6c2b413732b4adb9f4af4c7bb47aede2ee05ae8ea685c06394bc7bed0dcc85c990ef4de289c14b67f5d1044ad6fac39ac4b2c8dc132b7c6d191705e9556997790b93a3a98499e93487adec4f95d08b4f52081bf120e1accc7cf07a846f293070f188184be673d8c5b010d7428af961c1c448af076a33247547778b342eb6b9a28d17882e1bfcee9436195a30a520b55a2b167fc82f98a3819638e854ff14d532e14e69af7bf28b35194626e02a22b77cc3a9148e43318ae9b075aed335d9074622fa5d75d2cf4fce156687ac72a26812490a7d39eff5d20a7edccac7531efa0d01c908cc0687e162e333b9d7c433271ac029faa09b2ac772e1b0bf39629257cea0dd0d43a4f4f8375befa79c7fb7d6bf85928f41657c8e14db7fcd12041183dad761788151aecd8bb2a5eafee9dbdad7f9454cda5c0dc224e94035a192eb3e914dcf16f7940cb087697ed8c2064ff4751bd170087a2135bb5464e73b099120f207f26e8c5860994a54db761d558accaa59774a46973f7bd7593a8d2ebe5a16c60b57d8446823a90c55a7dc1430ecd0c46b8420b3e5dc38fe96f774a91ce8e423ca484cb56a12dc2636e241c8d9b44962ab3988b8283668e87527c4e8b68f43f618699bbba06835391b6ec2234fef240719c5240e81a7203af8324520567cb8451af862fed662ea13ffa2da79f7c5e21d6a178323c9a64b07811d2f0316e4c127d3039b341c1e805df056cdb2d7486137a1ba303f0bd6e572a3502fc13665cc100b42d21771e6ac48a0fffa983944caceb5ff8e17b98b6c7c505851a3ce086da9251c5faf1bd99813a30ebd579517ee2291415e5692bf75d138cdec79f2c3a374d0856296afe4817ee2af8a441a8a4e760dd81e9d8f13bdc25e3214f2e0c60285b8deb302294a61a435951b1943933d736da702ccdffb3504fe2302870c8fd74f1ef10361eb5d8ee7fb043c56130797538e433ab361f1eb57d033404e409efff856d48433bec6aa627ed94fea71cbfb617ba732fbe021d50ef6d63e2ed0e00e0473e96b5674c98fc2bc4b2b3a85b1d0b647867515ae4670400ef75567f7811669920069031cf38f5634ebc800cc6b4f4be0e17351b1932b13b2becd7d99d04ba44f60623f7acadbedc8755d1abeb7550398fb147df58da69eb7e44c476dc80976c10b204ea7eb3d3ca296c8efd91210610addd57b7e4e6002f6e9d39d10d25a960252fb7156c34d887ca3a8176626bac05d138c6ca74957237c8be06135c9783b98f491855b8f1237834426a7cee68658416161db7432ca73b06b564f7214c5d87ffe46474189161e3a5206727e24796f2185226cf51660094dad042214d5a5cc5168a5fa438ea3769b79186f343dd0b9a29474601359289e2d8031311810c44a4886b3661a16ab0fdd4b338d3cf84640b1351e9a49c21a2789705ff831f8a32c5f5c5e965ca014a4a358cdce4d9c058ab51963c98b36a46e64df88ae557e61fda14750f82ce02ba227f87059b2d8428d13dd3881260a372f6ada74cf02ee7d861b9a5ed1885c1fba62f3a83779356fea54182314af8958185409011ac2e02b5360502d752bc05200a611ef86006f0049facfadd33b4043189165817c6f37302b2f0510331a349987bfe4c3d92c455f5748f85ac527e50dbf594016a5f27f60a8ffe0eee68cddf775d6c0e06e3225b9f7de7b0793028902f60238bceefefafe7d2da4d914b1c90993e996a3612da8b8a18b4c8a498614965b1766de9470e6e6e6885cb0638de3ddb1e52b2d9ae307f7e63c570419d2c919ca814d25070f25a7793bb72b486420128daef6f69e78dc2f31eda4b6037f8b65c6b47f3b7552cb7291422d5d187064a74c3a37d7753f6c5d8a1066dd0867d22577879d32eb5cd434c02a11c315a5d3c6f4da776a38247ee8ca84dc2eae66548b3c3724361a33974b66e5a3c9063f1cc14d19198d37dedcad98a7480c8e027e39f48c50e8346bd45c2d99127a2973c204d8cc633acdddc031c22852b191ca199978da9159bb41c87db26831230ce788e985132de929b4b3e3a5234756ddbb74fadddd47b48fd635aebe5ca02983c6a228dedcae9144ca7e5eadca6e9d5a43c91479ce1f1db1a967c1f2b1ecf8a9ff2b0b90d0fab35382eb2a04cd60feab0be4dab588eb2232dccb4151b48a9983069559adb85869dee639f805229503d65bcbb64cd8539d59330dcd601e6b30d7d1ef596badb5bbfb9b5fffcfafb317e51c4cb3fe9c73ce2a307661ced9b5ce39e79cb37e93fc9ae9a1c84e9735ccd7e94b3f72cec1fcf4fafbeeee45f9dbaa37e79cb3670dff84b04077ffec9e757658c71da8637737c9f11b9b9cfc762ab5c663a7c4439066dbce685938d5997df54ea7c28a2d2b63c8e8890944c325e72a8dabc17662cbc884666365e2e9ad6b08080c8d5932e4c423eb065a44bacba6da546a9325b4249c95f1bc29c9c545b9556d8de1ba9a7849b883f9003b95aa81ee77a75235643d06acabebdaf5bbef346ac82dc79d5e5aa2190174ec5143749bdde9935457ec6ad65e3a63f95c29dda64c9e7f42a3fd2ef48bfda75bbcdabec3bef7e9e07fd07ebdd3a81d5ebaaac7084bcb4445546586b495238413e45229c13afdbce4da26cf6d8501477b5d5593b815ae6b06315cd7f524042ba420c4705db3f45aec755dd735a6605d637615b6357343579fc6ce09ececcee02241e064c69a1f90ce781b3169d3cc9457480c00fe3f141988d0dfdd1d2aea03f1feffff8bfddddd93445dc0fbffbfef83bfbb7b522713f0feff9f3c820ce0efee9e247a0578ffff4f220103f077774f56917878ffff4f8a05fddddd936a2000bcffff27e9e00efeeeeeb089b604e8b176b3fb3c3fa00b55901cc123491011e70f561af38528a5691062870f9e92df8b91f729c4d72cd148b48f47c285f892089da34894b8513dbf36860776e92a6812bf4f082fe5f800fa7cc2f84d62931367d48a7881a410627694f94c4565b0d292a242da773edd2529693787c6f5558d5f14c9bc8559957889d151a51202dca9938a8d459b6a0dfd41ded855b71827a3168e970b8a9b43aac97faac4dbb641b7d8b626e6a6423c01459b5a424084b34c202d216bfbe9063a3d4b49414b7b72389a586cd7755f67bb71ab66a1ebbaefbe27c7d624fe9d3a9b50fc64c45044931b1b4a8122cb3d6b9ac8ebd0b23b753215c1a9ce4495fd31b0fdffef008477ba5c71636b59c49ae967677f7fcf503be79c53d8850f910b1a796050941c7fb46ae79cf5e7e8d2ce39e79cf5efd42a7ae476bd2252aa4c9cdf5d6ed7fd87df755db7c9b95dd78d63d7cdc2947785ce28b8fdeed4d904b6e25d953e103cb06eace1f528eb61b602555b189a8a883c6519d83b7215545f75fdb16fcef957537307ccbfae292f3b8e4412644938289aac6933037c6bda7e3b6dd69cb961ef9a4c5b59159cc7e2560e0df4c7bda1dc7ae19d3a955268cf1d5fd2e7be36267eae2bcbd6d5832e399f1262348ac6b1971fbb5367535469e7ae68f19c6c2d466c656470ae58cba2403174f5a77d0164233d474f21386beb41eb39118506e5711a09eed4d9538cba2b0c0da2295a228b68b86b3ab00e57513022528bf15597222fa572fa14478e64e9096bcb213c1b4ed894a9398f7123b1c9c971eba80cf9ad16ccd0ee16e2a72105164630613d69e335fe0f8421b424d490e3f22c7a1ee9c968416985c3f40304766c7fb0ae2052866129216eec945449b6d3943425addbaa1abf1ac36a1cabf1076a3c821aa7a0c630b06b6bf6b2abdbe60c62188202e74c8dcdee94e1763392f7d82b1b3fdbb2ad90f5ccb2ee8c8b3de049909e31cf066fc6e56e46c58eae2e4a87361726f7e45115f70497f4f6c24d45db318ab34306864d6604d46ecd4d4d47da980ead1c4c34281c4a673998ad28fb2133712346662c862886170607a6f645e6c5d575c515b5b5a4656463e889c2b9930543d38461c1d2bbe26105659a2dbdaa9a54534a1a5331a45a44012579a05e6a6abcb43cf5709a6bda41030713d8921349a5e434434652918c1b907a62dc1cb9bc18b988805197431b0e395e8815d970b16c518368c6100e2c8456f808e5a86889b9a16525e80ee82d451a8a1b366cfd58f9248fc81e1846163c369cd0d92131a343a268222f270e67eda6cca6ab06ab84140dd3cc910c514c0a98132f2c255c5848b4ec919063612b9e11bf56b2462855114daa0a520f177b417ac63c1bbca2cb5d51c58eae2e4a87361726f7e45115f70497f4f6c24d45db318ab38308c3461c01b55b7353d39136a6432b07130d4ae3409e199911950191196fdc8cadc088adac84e181c57d41bdcebac0b89e5b4b2d281bc8a79193280ba869c4bab91a016335628589b78cab82529d29c1a69e52cb28a82412caa806d113d03b193db8e940040c07225636c0d3202e0328066721c02e785ab0ac008a02e404461210450034344270f3008c034e959506f018885b00aac0d90958024f0496074099200d30121281008a8d05dc7ce80143408f9501f004880b00eae12c0806c0b3c3b2040a8824311a211201828d2137207b301f7b2b3fbc37ee7d6c1aedc79c2b375daab6060b2357601c84e110ec1afeff9fc33db37580f3cb55f2daf7da547de837d8b46952596ed610483d259f1727da865cbdec8c46f51761809ab8f451fcf111b97e05e49d955cbd5eaa08cf2063d3c799174579376f7f51693f71ee3d0f8938f8944a4f1e3dc923a8a4a70c5e1bdc87ac36aeed3bcd6a6bbe113788fbeff7fac97886e25e34dd5adce1ec6f6b3a70bb6e753bf861a7556e5fdbb7d32ab7265c5d344d474e9ddb6a0cbb6eaada759798ea3b5546937cc4c3925d53d10c5c574f8c289c5d5d0d23768a52307814c760727ea7a02ea6b5a0161b2b284eb7dd6d73c9eebf7e546fffb3ee9c2ab75342a8ea4bbaa632a44645155d6184d28194951c0d253d16365094d1a6b396485563587f1d891b807c73b5f7df4ead9062ed08d41ad1ca6b256dc7e591de80326948dc69adb9716afc6a0c0fd7354dabf9e74b9f7ac2645400ad5129e1689c9aaf8c26f906cd1134314b4dce1a14edbe6d0db7f55503eaf0b75365f4cd4854d5188e9325ee47f00389b8ce2fdfd5b877c48f762fb3ef309daf716d96dd190c03833e28c94eb3ec9a5610184bb0d06fa7556f46cd3e5ba4d974dabeafdfa69f47384ec945d568dd30dddeb87c6f6523ef4eabde985e0ebb9560cb394b3961d917b458d65894c169d1b86daa2a9273ce39e7ecee39e79cb3bbe7cf9e6d445477273971387577ffacb5bb7bfefffc314c2441909d2e61e442ec82ae6a75057a217a5b7400df33d0c34e972f363b523915d6e967f605ea4125f9e58bd57b0660a7cb1724a16156fd9d5b7f8e7f71fe0975acdf0ff1e28bc58dedf8d216ddfa7098aa4f6d78aa4d11a998137361ce7403aadee912e669473fabbeca5262ffab451d6df0a78ed4ad8f16021e4d90e0ed7c5c99ea21eb49f3eca6edf7349f9c3c453c40ae5a8971e1e0e821c485c4660c8bbca8c42af8b7682a909b2000231a040080601406611c0972de62071480071ac268789c342c28243020100585016130100886416150100c1a22a0200e832010e35892dd00bf1c82e5297e43dd4a6a1273e9089680ad343a5e2e0f5f118d1671378a790a58ac884c200a82ae8c347bba93e195a1f1ea343fd5eb5a34201282781fb2128fab0f5069658c442be21b00eaeec43a5d2b803b0eb357c63e6ac6ef9b171433978cafbebbca9e364436f37ebdb648d94d439289c4eaf10a6077106c35cc00568ef7e7b3d5347a23feae67fbd745a3faef7b88405ee1bfe6146176f4f99c0ff9fbf69df6a4aa75b0e7d5b231ca71a998ea9b550dcf96031983a42758fd77035d169401ea79be5ed97a7df49f2954019d3e2f85f0061ed9b39088672c325187f8a515b467a58f395c63ecd0338ff90551b98912a6418181b2a056b4de3afceff41669ea39b2020bc9d4431a658fb42a2e9ecc5568b39ab13ef44148a68d0d7a1e5462bfec0614801650aee6ceccf7c9c34f7698ca42c837d411aeb3290af505438d7957ef277ff12c7c4e449a0c8bd4ab5f1883e49703bc150aeb02d910ca7099836ef8df36a835042942178aabd67124117c5e4bdc3aaf2c045e524ae534ac0d97ca95d5e1c48af0054b73666ad2d42c97e9c548aa5f09635e34d887dcc80e85e2fafa9945a7901770085957aa27cb7a7744724bf25cc9f1678eedaaf936f98d1e69129e0108d4e6409e0480d5ef089681bf80ea190e368b593ce7393d1f4737551b3b68431118b540f64c024321ce2870ac996687cfd083f00426934088c95fdcefca9c51546781fafc271a760e2a7d1834aafcb4ab5fa6a46470b49b2f459905b3b86a686f3bbc8a6aafe100eef9a31f7454c3274c5a0159c2de5e287ae8fccb07836dbacee7a59754b1b72c629dd5687a2cc3c31de1de10d1a9ff9a53d182233d4ac55712984a0026402f18689a88fc575a3611e257858e8caed7a2b0a13680aeb5088cbfc0381b093d561fd34969b2890a8b8ed81aededd6cb381e779d08bc5a75f72a8e9fd4203763f781ceb37550641bd61173ff67446fc0215cb2eb355241e080d39e543479880687ac2fe611c95ba481f524235dadfa65af4545540cdf10d0903ac0d32e545fa66c516773cf1ed557bf7910851b9137a4575ad66dc0c1da09e13fb51fede83c9876e8e46534844184b190879d1f211f372e38eada4f7f59c741f637c8f513e0d66d672b5a27f46e0e7762fa2682e09d37f55e54d7d1caad79b3a491fa5d01c246341b816cd259671e945bafdc2f5778e426c70b589e52ba117195670dbd2b138d935cbb5ad98dd09c476ec41f6df111845e0af0bbb33fca0f724049be482a40dd853b040699beff5b595cf458928b050749ae2821cf6d844f97a91a5f01c4a19017b940bd2a517b23e6d45d5e7854c200bfad88637d721e0586e7df23163cdb139178953136323a7eecf37679dc64c13ca375bae84ea2fa86d33cdcea82e7c435c59ba51d92ecf139a8690f24491139ab0f6191f56c24c6b3c0626a68819677d7c57f89acfd1c479cc73e04adfe8946c00fbfcfe2e638152cbe44630ce876d88d312573520e9e6e27cb1ad35b308e232fd60124db49d3e4ff81f84d0ef96b2538a160b7908ae4a3a09087a08e01483abf33167c399be1141fd5871eebddc97ea2a2d3186aec370fb7781f19c8151eb078d69bd2bda35f530e0ca5fb9c44232142770b0ed543b27409eaf5fb15a478e724da13de91f19cc1618ac0ea81a77361f500f950ca523f79b105e436f4e0d6bb2d1decf126a1001e99e6f15c7c88942f01c4c7e1fe7b04cdc7704d17f21064463dcecd416a771dbc5dc18c1b1d6f573a2475a3c4316169c32551e172859aefe0a2a9218419fdc54ef68f371cef362568bb764dde8763001cf2a4173bfb5348b2c69fccb2f5314a79ebae171091fb626f2ef07de6dec3a0efc4996c5fd693f0fc36c36f893d14141e1833e48555056f37eb26d3395c6de32ec65bd598838a72614a19b1d4a75fef81615449dcf4e2d14b381c9366202ca8067eb958dc6b58c931d725a134fef194fb991bdc0038ca96908d768666b5ab2b5223cd07e7bafa26e64135b80e993a0d5443401290d48802867358ac15fd092832e8a53968d31ec78ca0022d525f86c5e69baaa724442cd8a7c7859947d26035d8c0fe9a5396763aea7fd2e8efc80a83a79a45a5eec6b593b9bc88e94b85f4910e417136ef4627b8090ea4a3ca3b620a66b90e9871ed0c82201a5895de984584481b9f1578614f5c93d6d152913bc60e24c54a9195495f4071cb0a7b6e3028b1eb57aa2c75b82e5caea9e7b43506e1f2366f13e08a1203b4b62da973cb5619383939f2d480285a9419528808e70858f719fada3c3a6e80b29158f7fb61398aab724970c600c5c95ebd36b32bb2338391d458802256a40b4477f6bc626007ce253b678082126af840bc7b9be8f40ef598b2008dca2711290ce597361bc90a0048b7ef069d1e6e5359bf8c0117c9953dacc76e7c718f4e9708de9098724a9b7c3dece8f47841d60e652f2a10e46c4335ddb47dd6a0a6fe3e269c8965267e9c6c235bded7e20594a13b8e4858a275126414c1966b6735c6bfd7af8f24d04c7617e6d17c08e1e4041983a9fe08537791fe45eb69705ed338a8325e17f16f1307e6702ffc0f91cf391dc9dfa00de32a51b640f786bbd02f39a895e7c811816ced38dc202d0e3a7f0870f291d01e0ec73c4238681f8c8023f2769f6f38779637e853a85b1cc8631222884517f5f045bca402ee23ac485ab91841e230f2ed2eba254841be7d68e1176d6fc2d998e3de82161b0c27491734c28ea231c0084aa6a884c055e0148e30aacb0283a44c0bb491c071e971b3215ea7c4b38ddf31eee178ff78a0636d8ea91f0f32dec498bcb140c75b8cc98758a413ef624cdf58a0f126c7f48d0532de654cdf58a4e34d8ee98f0532dea4c4e4552cd0f12e63fac6221def624c7f2cd2f126c7e48d051a6f724cdf5820166fb262f2c7828e3739267f2cd2f11663f2c602196f724c6f2cd0f12ec7f4492cd288b71c933716c9789363fa63918c3731a67f2ce8789363f2c7221d6f3126ef62914ebc8b317d6381c69b1cd33716c87897317d63918e3739a63f16c87893129357b140c7bb8ce91b8b74bc8b31fdb148c79b1c93371668bcc9317d638158bcc98ac91f0b3adee498fcb148c75b8cc91b0b64bcc931bdb140c7bb1cd327b14823de724cde5824e34d8ee98f4532dec498f63cc6838d3f19f331367dfc1a631f2cb6dfe2818cfb1ca33f1ed071cf31f2e31119f719a3371e90711f63f4e311b1b8cf8a911f0fe8b8cd31faf1808cdb9043af9e87c698118dc139e6717cb97124633dc6a9bb38a412eb314e7d1c92b19ee3d48d431a6b394efc38a4633de3c48f6332d6729cfa3824106b7971e2c63119eb394e6e1cd3b116e3c48f231d6b394ec1cb55885d1d06dce54ae9ba7519b0e7e8bf7e95a39f9a1fc08707418d51799c67163b7ac5a2383ef238878f8f3e2ec6b1318d396cfcb071111c8f698ce3e3271f8b636c48e33c2e871d2f74de8769638c42c69f8d8b617c9cc63c3e7e6c4c1cc7c334c6f3f1c3c6a23836a4710e8fcf563131447c94c75c3676d8b818c6c334c6f3f1938fc53036e4711e1f1f6d4c84f1511af3d9d8e91717838ac739879fb605c659aec7a93836e6388f8dcf3626c6f1518eb99ee1263cec7c053416b6d016585a5e17422d7f6fcbfdd481fff8234e2968c4038b45ae0968c64e30bc33d3abf9e7954106104d21f6ce72fb4d1788e6105665bede36f0416f75e6c6020e4cbec87973c86187a8f81fd06f978a43341dc643759943c50f1ce849125be4f6012bdd44878edb9e726f543e5995d5c48f4d6821f54e6bd704acff791666f544426ae446ead8c1362d16289bf4c2291c38d88ac241ad97973dccaa24e6e5f8232e9d3c7507fc203d8b39eb1466ee5d51d7ed6e9e943fb39eb9e3cbd3f2c7d073b7f94f43824fdda98facb36eb87944fe3265de2df9bdcb7fda4e7d243d778fcfa1f29f29e6dd79f944fe31f48c9b3f8f883f869c73c7cf51f9c79033eefc39227f1872ce0d17559e07fcd421c37dc8c3809f3e44b80dd810f452fd8452b110e6a8abb22fad70a37f9f4969fdbc88f734b54f20f4a7a4291f0e7cca7eedc46ba7f2d60aa70a62fa1f1caad6e3ddfe79bb7bbed9c5f9763f87fbfde976ff78b77fbeed1e6f768f377b38df76eabcd9d7f96e57e79b3d9ceff6cf37b8b3ff78531321aabb8150cda204b1e713c06a292fe846b7ca56f88bcabe62c1893e1475488c91d8bb23d989308c07fb00ed29850f53103a0a3b292dbb947d8227e93111be84abd229b564bc416d5c94163b8e01e77979ef32e6fc541bce36bd2ea69b2489afc84a2d4a5ada5f6e8ad8db9bb4c4832ed6b900bed920a2640a794b7db55d2d861645551373d745b482edc85b886cd8dba291de6ebdfa6e6483ed6b9f0bc8a47e56d3100e381729fb04a1a2078c46e5c0e557cbb15550daf2f17ddb86c8924d0c5c4255074cdf49f867437f80dbc07eb757b5e725a0bfd51a81a2a867537d20497adc32294620cb4a157866037f1f43be01fc24f08282c93662260d7c226f5839f9322991668ac355eb06c231cbda692b26aeaaee1169b6ab00fcdc115af75124031e2e5d33f2f717aba10ede1c19686184ce127e881c82979514742fa36af8f964ed6228876ec04164bd122f7d84ab0fa9b616359010d4132639237c8f0c3c57f1e15314accb87f96a495872632e460a3d4ed41a750cd74558b8fafcb1b92536dd148dc7b2db0eed52140a7fca71660cb0b92b46ac95bc5d6b46a21fa6e10caa206eb4db114faa91d5ab6dda7ab36c6d24b0e2e52f97a5586c64e7bf72794296f5cafbe48bc788465c04f7dc8972d9ad5950c57a3082fe490e1a58160203e072edb285cc495af9fd753a06f030c4c8e107079bb8adc32e3d8786ce42da36ee3df04156c7c0b34347a9274f914a2699887233874db1bf895f2b69525acf9e268b160c2ecfac513dcf902f127b9074434516f740b6bd3206d6ac80c525c61159c1604bcd0ae3d1907a348b4f9ab078218dd836877d1599b59c7319af5b5f0f411c3a5cda25531ea497e687ecf5863483441aa0f37948f52bd0c9d5d57532c6e9a69715ecffea7ab25d920aa8ab91d4ba7a5ece4147a524f229c5623503c2721efe006fdc200b7eba14609e74644fc5c45b0feeb2365845ebefa25bfdd3396ea73f37d55eb8e9706eee706779f5ef2013ca28ce03cd7dd698f3de2a6b81cae70030e977762a116d56934653c5735c72ceca071ab4b2f12228f78e109191b22a86341d0aded34cf87711de789289fed1044f5d818ab0eb074c47b5b2fab146fb8da753bdee4ece1bdb32efdcc672b809b3a6bd20f4249dcf1caf6f4baa6f638284541560d882ef12c71321a33ac8f6a192c79d92f855c968aff6bef9eef86667468fa0b4581b9df71e7ec3ce0e53a8547d8630ee4fc21eb37d347ec97aba7dacc78354cd25bbbbc13209311e2ac0ea678391d63c61ba7f0a69e237d23f5072f7db2dc7c2aacc0cacff74d9cdd0a2ede2f34b7e3f2e00e63fb585866b0ec938bb8019d282d1ff9a1b5dbd7aa2d4713bf285c54dd5c61e23f9292bb86eb447a527e6580ae90a7c9bea0f431d776710a673a1e125b81d264eac620cfec478e21dc272cbd68c73e3d0d77f1d87edd9e21da373d4a0903a1a433d9f2c588038c6804a117a4bd94da955fa49091cf8ccaa12c0e18b6e471041071841d530080ea1856b98aad0df4a068ec0a19f0485976d2996fa6314a82e783d773978eb40a877d14b771edb94523463894b388e61d9c6f292bcc307f596538191e014c6366a3c0145cbd9b551d4d9b75451f248548b8908a9430b60aa65e95e624149a718357510ad45ca8b630e9a266400f6f0320596958c7589e7d811a0a8647208de22d3dc3c7622d2ddafe4632b464952f5b58a7602c6212f384bb119eabcb994d51c383d671e8b190bfe96ea054ae091f070d5fe3cfaff5a5b3d4c4f0c8e9d9cc687014abeb0f9de72e16ad2dd660e22c7088a2906e23409d09f40709b8820d175360d74e56a7be1a58141510dfc17113baa9b72352476719edff49ef602ebdc9c333a9d70f4b3781e5cd0ed927da709e048743c8c7abe94f75cd589247a6159219c1e0287db8b56d0282e3fa287ab6ef515caa17b6eeac2e57eaf7bb894217a9bc176ea84747e89f518a7ca4defd042cccfb8ab8b6ee8881f06b19a0f2177e5fa36a9e511c6f4ea9deeec0f0fa308c737dcc53509e34364f5a0e5a7fb8cfec9c3a99ac41781c371085ed8da43091486572acdb3da5e043d6fd7b659ccc5568c69a71c2be150a0b7ac11674526cacafc9fe475d8071d02f985e6a528d6cbebff971149af8518938e46bda9fb16acd7db8f8e058b2bc1f848a852ee6c85e68e26dafd20a4716846f80a1983806aaed98744fa256a83809c13828ec835dd3ee52f18c9834c934806b9c76d6fe7f4e65b4bb0e6b407b51775771af1c3347daa06e4e9772b75dd90c27560d5b93b57d08d232d42afcb92e8fe532782ed74bf8fd9d0bcc0f3a4c884b9eea246f482bbef647b7bd12a9ffa7d9db0c62131e82b40d0a50851e4132ccaca51c66142abab37ffe3547ff1403bfe199c3501798530822f21577b4d322c0d94043164e06b31be5e8f0cfe4ddd98c9af82964cbe152a579768cab524a9b472cdd932688ecea4a9576bf6b28700e80f522f4637af848f40e81759b547979e6624180031681a0b7d099123883fdb93fa20e220d6efd481524e1079ed31bdf9b03b04b17d4cae007d1d155f2c8564e94c046f8c0489e11ce6625496864d33b675c2ef60a0cf5ad9fca86153dc8b7e6937b3ba2554d21c579f65c659811d4e530c71cf614754f1f6f34098ffc12774a11a673c0794c18aa9d59685d37cee734812245ee88531bc33b113ae6c4972468873e623c3c6969a042e40993bcd6fa1011f597c0f7229d1fc3bed0e7d498603a9ff678c8b1f1360db2f68e1a582082f7468e4846f20a1cd5ec99786c456087d6db18d1693cbbba3dafa0a3fd141251fdd4c0147dde5a809ba9c00ad7e9d52ea25e168296e74b3bc97bf6e1fb972694f88b17933ba4da4575f446536b2ec5bb0b5d41f92840432170d1149311c4d6cca3a4709888b2f59cb3826bdb2b7e49f6dfa1091ea616ceaaf25b099f6a02ba7ed2f26d748affa5efce6061ce19567056d5b30f0f0ebc1968fc6c07b782513dadc59e4f2d09dfd2194cedd42cbe862dbddb755bf0088c952a486fa8321599114bb4349f765a9d12d613d9d6376a01136fcd00a4f666b84b8ddfd8a56bcd8b852c14cf835605d9ac3e94f95473449d88be8adecee3a39320a5150d560f7f79f57ae1df056a0d24591c7e65af363361717c1df9e4f96f6a2e647b1ed36d7e0fc3008da725a5ceaf2133961b31780bb61dea81677cd4d4a98909774b322b005b7d69cddf863f9e26fb43678e2b68148cf4bf259e88a9bc3c096bdf59e54453dce7f40c523b14fdd2c2555f12ccdd12eb4fc4a1636cc9af03a4f4fc209820661e97243e354e84d5d28c33cb4244111758343dcbc3d96018f355f58b3412e9916e2e6c80b69f7a39c4604c607de561de59cf91adfab146fe562b175a170640f03ecdf30c8fd392b98e00036e064104b3efd94e1e377c72e4489055f581b6cca40bd1f6309da95f236583e18a01e9fdeb881dc855027e6efe61cca9ef100b6e1431ac0f4eb552a4946816f1cebb07cf9e0bd300a4352356876051bd00364a6ec385d615398b90a6544ab8d5b149cd972de044f4579dae4be0dd5c3d288a119152e6f01be28ba932ee3304d94107907bfde192f65d233f00636b59385b785eaa531f2dd2a02cfebcedc163d8c5457517c924b7163466faff59dc910b6b628ac00646bc0a4e6d2a77a0ae4cfa687a63f4475b802442f02dad4c55f5b300cda4a07b61019f13fb60a72d255f7ab24923115bd8885bb860bf9331b0b5b26e902d2fa58e1d24701c35d45f6c1c387dbe9a500c0703e5efda1b0ee5bd50b68e3b8002fe755bfdd4a262612328c6adaff9b6c92a44c524ab96531062006a105329e1e66dc4869bd69e7b6bbb5d6e65cbf76cc096cba6a8372fc720298ac93e39713b2c0904495a5ab301f80ba02d50023715468e226891434a1400518c711b19d771390965ffb7939f250040570bee89dc6c525c11521439bf3f3078c404c0884a84a92250837c4cab31c8dd77df800938f2a38545aa8daa2a3819429122451024b952338214a42a0a3c4c98a15430ce132a78e879d1f6bed6d69f93ac66379b2b4bb8fc0c9f3621a77bf374d98295cbc1c01c2c3900fa0508122d25071210437128aa410021f3eae7038d2054a109d24e8cb0a5364d8189155a49f7a808e00c17292850a0a4590f850994c65b450e1e1d48409643852bb76b361d202d30a566068a7274e881872c4d38f32261859f3a4a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a969ca952a54a65cb5f9b1a6e98bb79e6005ea5ab9c1ad384932569864af87949ddddd72ab23613e908832e6881b0e52ba48afb9527870234416094dc20069a151a8720549ed5e7088f6dfd2f275cc87ca6c35eccad774d7eaa11d3f1d153c688e6cf95c2e57bf78acbbb7a66e6c7268a28a9922609a48a7c2992843385145c5ca6ac89b96bd48b8acb5d65a6badb5b6db5a6b6d775b6badb5b6bbadb57dd5ddddddd6da2b21eeeebe84bda113725fd65a6badb5d65adbddf6afb5b6bbadb5d65adbdd56886d97f7c13aef87981ab84283171e940809c2494877aed7bcf2dcdd6d7b5d571cdc005912c50b41ccf4092ed79114623e54e691225a0dc553d1b4b5eeeef6aaddddd7b8bb7b09da00298108225496c0baf2eef6f0e6edb6d67610b9bbbbdb5adb3d2df9f51a155cecd678ad351f84b191058909440431c289153a8805dc3ce90145143fcc406910145902c495d0d5de7a746e3f27adefdb09ddad5d6bad5fdba7eb96a77e35ea4ea96ef03643bd4db1f41be2dedab5d61ad7dcdb15ecdb95e668bcf7deee6ed76c7bebe1da004767aa56b97632b7373ad76b57af57db76ca19aff783290589920228dcb80024053f7c600ded726d5bebc50988a5272b3af86813a8dcae6d36defdf99436addaffc1bce9dbefdab6edbeb26ded29705cf646285afb033996f2dc7bedbd57767d9a9f0c1b629845ee2d47de5b87cc2be65a7b6fadb532c97232430d50a250907499f2dd4295c2b60d3ef8fc211a991b9a7c73f8b5980a4964c7304258a0a81c8f03cefc0001969123584a926a9730425da6ec77d1d23350274a9c6882690728584a74097d9fc8c10b10355faa80e08424db40b29daa92ed92aede28ab406123bd5332c03085021a01214c34c4c9d20585139a043639d54e4571efbdd7f60fd1ac90f0455bbbbbbbdbdaae915e1dd2d028b5eb5d2b87dbdd7bb9d80f767590b5e3f5226bfd60d5b6952fb2526badb5b6bbadb5d6daeeb6d65a6bbbdb56db61649d5d6badddddddb5d67adb0a0fb26fbd56c6c85a6badd74a19aa27b3052b7b8e64acdc608111308ebbd77256287841014b9919e694e2377c3b74163259acea90dae55aae2ec9101d18aedb5551d175921f9d05d67ba2f5e28989eba24bb86ddb3eade96e00be364a68093c771e6072886abdf6694b478bb75bd74e795790e4c9f5ecb5f7260941bd4f3178ddd6dad6a109152024710342cb09aa941992f4c30626d96d80e36dfb094aa7c5c2f240c3d49404d3102c74f161439adb4f26647f3ae486a713fad8291a89112e6b77d09945cc2b9de552c576b79d1d44875370b9622f921d785aeff7babb6be9dcddbde5eeee8ea40697bbbbb79a5448754034764858709953c7c3ce8f93962fc6a32d5d41bf389d6c68350c34e2dec530d4ddd15ea7a8aed5433bba130a3a2a92bc71a71f1e8fb5d6dadb7ae3ea178f7577efaebdd65ab044cd0c6590608284373dded029195af62229d2eef17e497cc89ee29ef95234179fcf7e46a63c9d243958da2914b9a1cb423f232fbc723e23495c9ed1136ad4dc9065881858681e6d8584ef5a23423a17758f3d01450990156ef8c1a597744893c2ca080fcfdddd5bf72a4565f550829a263ffca025f670648c5feb44839e07b6d4ecf8b796bc7b1e999267db31af7b3fbf6e7b6a85a5ad1baf6b7677b7bdf6f68c72bd79fa83c51fae8a707ac2298d550f495de3e44ee1c8abdbca894dee9edccd440487a719be643901c72a8512b258795b7b9ba072777777dfeee7696bfb6f77bbbb7bd7b66988d7d473bfd7aaa987e7d35a2551e17dad6db736df4ff1c5a1833b6ab90518254de8edd077cf028734e3971e8ed6f773de8d21904a9ad0fd9e6f3004c12869f8a9a4611001ffb0ee71e7df5d1c61df712eebe108edfb53983f188a705d30d86d0a863d0fc2cc30490b0283bee7a57743e6a087e12030a4b0fe15b08f5fcf37ec7b60b047929d4f2b47be6f5fb7cfa777a33f7c7d63c7d9bff55276d315d6b27d7a5de4fb2e68b4a1a1cff773cb72cbf29dcd6a0543184fee9f7bbf7b86a3a4c9c08a8b5e260343faddd72fc251125530b4dfe5c816efa871e086cfb76ef8bc74f960ee63b3a1998cf36cf8ffbcf46eb8ec65f8c3f78a6933ece207f40f6931e75c3e5887bf7cf93e36c21cb93f4ec600375d9c97801f1b32b0487a3566de063fdcc77e7a37b88fc9be5693e1231a3190fbf0a8dfc62a9981be71b8a3d64d978fdc808ba38152aeb1b7514103bc52e6bc1ab3b621fbfad2bb21fbfa9c37fbe8fdcc3012100e3fb7ecc3787b6a65f877d4b2fcee7f700c7370e5a3a0dfbc0343a52c9fcb3e3866897d62f6c1adefc12a30f7eda8650ee07084acdcfd0b873972f79c7743456e7d4b495bbce559f4f37b6a1ac5f8f97d9b46b69fdf55d3c8e8e7b7559bc9f3633e559f5cca311be1794612cdb7e1792589e6c7c0138c249a5f842795249aef61f926559ef2cd753a3589e6cf9f533f71f82e952f9c51794291b449a5a0a48d52a9fc93237f0ea9149dba32ca1121723b185ecfe7cbf77ea352b12fe8545e2563cc27f3f9cdab3af9661a4959b292e7d32d79fe9b69149396f29c4c6ffc66d5fef5fbad7f767f487924ad4bd40d53e6f41b5595b48513cbada46dbe7c72aa8945256ddf83f12b04cccb1444daeefb0d2b8754ea96fda9d4349a4770444ce4f9d5c813ae509236ffc355075726554ad2aa0bd728754a9d92b4f9f38838e3fefcc9261a1509911d0ca994224c61884452f14548a5e8d4348a5cac9696967824cda752d216a3485b1463252bcfa753a48dc352359f5e495bccf3291a698b2a2485144c9e358a9818d4e4909ac9b36f39f480430ea99a3cdf6f73136b1ad5aaa410840a08bce0909504763e7ca18dcaf3432a95e7dba81942a63f25b62f9fe338777f1b31fb2be58bc39bef370e3b80ef4731566ef5a337b17c8b9572631066ae20978683219f62a419bd1af25d17c80d604d262986061f93c90718ce4412c020250054be147c656020823d28c63031732276301383c2bde8a0654513b7eaa372926fdc2255e4134113415f0810ad58e54b6950712205831a9c40a9a8471f0d4e48f0f162c4f964889e174d9a60305bc4c9644c9320f9d2a1af8525f2f568712a79010c0ba14f05193e3ebd2024e89b4e4cea2c162923a3c181be3984490db218848993939fcf042762710271c1cc8a6ffa70c10a2cce251798f4eb8bc2052177e7092582c290f04a71822551dc7c5f9b25251011b1a3f3559dc9894bb4604201cab8f72561c4edd84479f91b5a1fd6147ba30958504193444499d0b3836b1a210070bf8ae696ef9440b0b064267b6001884cc9130db8f24504416476a852c5890f4b50d031d49a94bd020c224c1715b0e2b060e4c9971d2078e2171e4faa0c39a10423f092641b866cad1617134ef24e8e639870fa3cde96b2d65ebfb4e658d546051ce809b8541f525a9b33edbd368dd75a7fb05e8e3a342dd14eb070dc7f3264b8dc3c998047561622535a2a1493a649aa06a813dab4139ae39826d2d4da3a71adb7b737c9eaeefa6dbdf534eeb6eb1fa27d07e37e88f6b54bc25baefd5ed8f7b1d0691c76a99250e15e9e8f07e6395225512487df5735b5da4da4a1311ec0872828f438c2829408ba490c63a878be1b4144a9e0468816bcc47941cb8eed4f00d1ca1521719228c11a11846112439315668830bde1c2850a4ad393226e3941b4b172c41236b82963e542937c6f4f7cb44f132e3fd04005cd0f2592ee92314f4c001aa2c17002af8637b5b650c5d43e3cb73647090b4aadb576a7bdddde1cbeb868b700c7c7998815b3da441127d7e781d587c09b289488a2883be60b038e18a99db7fc5620544778b80e132408636d678652a7b532d9952395930e57750c8f5b97af1cc19c408a128efb2f852b48965000450f6ce0a0896a16385c8412584dac902c612d5122091f7898a9420246898f5b8aa06b00362b4c497531228725bd828f1472bef89082b5b7db7bef971e700232627c7881ed4322a30ff1d1872b647c9862c6878ec1875cbef62551ff0cdc2f03f71fadc8fd4638f7db625cd0b3cbddd041a3a507f7fead1d714b9e7dcbc3a183460b8f3cfbe8d5988151f9c32e4973b7512fec13e6ab7fbfbf7ecbe340291735976bb1ef07bfb3b1ef62600c74505a4a2918da977dc5f46bbfcbe340297783f76a607ff64853e21f2ac3dc370341fe7cf466de0631cf5a1e8e02c4891327ff7cf47e40cfe1a3f90339900339907f055e817f94512a78bf4da3a3ac231e34b41d2b7f8739ec4df68799c9fe2dd0b4c06a91d5e27ddc7bbcc77b7afcfdfdfd9f088ce9e396307e07ef07e11efa8bbbef5a0efd8626cf1f000e2d919062c9f30580c3a38c71181f87b107875c0b580540ce7d9d62e8a3d7d7c321d14021210fa5a0f985c327f4449c57238789a4cdd931e9a22ec077a986ef0f18f80691b4f916e00ad4f20b50078b77f1b1d9b9c0f4bbeeca63ae402d8739588439b27d2419d6324863e1028716dc51cb3fcfc20566f1deee370281460c16a929894556f96daf01323e7a1f1c3d929440426fbfb39ce7b403a1b7a02b7eb117c23a662ff4dd4c8883ca21d1ef88564242b2d7317b7f22d977b2658f245bc6f9133dd29c09fdec46301ac42a22a11917e368063eb0fdd12b25214d7a8463d2c521e55c324cb37c9a2e44a7d78150074242dff4419059e839aed512a25906f58343e8fb853ee64ec8aff775a147921ca699521af391d0108ed9d6187a24f9b5becf24548c211dfa1b2ae56be502914cdfbf8b0ef8a2982729c8437f8bb02d4a3e55a3186fb3bded7ed7b7e5eabc1ab31fc23a643ff447475ff44a499d0cebb03ff4b24def08452052d5c836e1d06b40295b07633e613ed92673af43f6feddb74cc675d6dfbe0d7f6b5f22c9da2ec3dcd0cb3097fd8ca481f63b0bca70cc38baa617d377f0e7867d7f1bf61d0c5bd6479af209874fc704ea7f8e968b39f71ca594d600b2217bf9453826551cb30c8c035bf78ba5d7417dffe97550df82a192b7e5bb5fbf6bed9fcd66b57a38b8a1a7b9717fc770cc94e618e6b084e26e0c3d47a9a51ffb2e46e593ffc5210d2177cf9ec31c97671804d9c1d0738f2463b19806feb45f5a0ee4b8d0c6c0221cbd0de8657870f4b68fb936a62fa34090b93e109650f539cf467df9142a35a6fdfd5cce51b273dc60287148f3c5a10841f27da4d93de55c47b8e8a3e7818c37fae8795004fe7870f4455f048650f447e008f7eacb0b519264107aa524db1be19ffb461f93ba0e0c2b16f8e34117f97732704cea22fce34f3b70594ae250e8b185cc9ba4ee6b608073301421880c1c938a861e4936b843b6b1e19f0f8a3ec6c7004588f145e08c3289e6c7a48b3fb0bd112842d1dbc0393589e6779c962f7a38383839e7eb3897f745af468e893589e6cc6a93e70f01806829cf17fa91e7d398f27c1641f2fc1f22797e8c3889421a95e7bfb67cf2498d94b485542acafc7042595d495b68a3a0a4cdf51d9329d2a6f33972beac92605c9fbf949251a6d10e9118f58389b47150a8a495b4c5504e495ba46213e485a45062f1a8d848c9a1bccaf3addff8c9709b8225cb2735d2d62d5d18be16f6efb822be28e6ca994cafa2a7817feb3b97c778db1bfdd13dc246d88663e022dc3454cab40b72d9d672f7b17bddbe0b86ddefa8e556eb77a2dcbe21a478c73ba255febe1c9deedbb76f77778ef739dd23c9eeeeee5a2d26499bf787fbbdd6dadbf832f1e40ea2c395a7db08e0b28c9fcfcbef0e7ad83f4ca8c5838f59e8a0ef4fb1ec1d739d745d6c632f1bd3efa8eb624bc3dabddf0783fd87b46cedd3fb1487b5dc3f6f83823c3f9c67433ee53e7a33f9e127ab3fc330194cc6ddfe180e29072d5e7e0cfd1bf409a3a235e437b7f2aa8843f6fed465b469d3a6ddf21d779c770025a941a5df4917c51e29f873837e056f8382b482e9a23580a2941ffbf833fb2a41207c256d7e05d815ded8cf0ca40e86393217d27f758b97813b6a2a7e7a1db4f80675b47809ea180a79e78376c0b692b40e021bcceb3930f3ebf5e2e20b19f41d27bd0d5e60065efd5c84d14f4390de8d9983be93ae17e680ccafefa8ab861ea0de0d9a839e7a38667e7dc7c9c9cd9c9dbc036260e61718e38b0e0265834e66bcfc8692b60bd63692267f06d89c6b054ef14118e86758f62f1cfb1ddcfdc4f6613d85c3f25d29ff2bd578f9c2b92497c0f066cfeb014358f6e692832f695e58cb1ed87aa4b9e28170d0cbf0ec63f8f51dde798be7234d152d15366a7903c981b4f1bcfc1cd2c65d9ee7a99a44f279c0eb421ac524f9d3f3aabe8e31c6fa14c3c20bd6f96332499a97e7527c21bf8b31857fd8dd66a42dac59ee62ace477555b5d5d9d91364e7eb7b14bfd264bf9ed354bdae4d736722ecd8e73c9bf385320bef0ba7c395f3f8c58d8eb2702e098e4b4acf317efa8d97e3a03cbf8b692afef3cdc56503e0f031a2f23c52b2551f05e89a59a2fc5bbf0062a3e87b4b582be9fe642da5e5fb338f8e99ff14a2faa8f3ee7d9a060109e4c3cc8e0054e289226e7520b0c7fc67760087b0f0c3f0b66c90067803049c32dc3de6df43808346bcdbea56234aff8771c46acaa9d1a8d0f699f6f013efcf2cd7fe967cc2212f923bdc8fe058891fd099041f6c7804bf6a721030381bbe845cf03c3fea00f6159039a3b90c617617f2bdbd72c088735fbcf576bf6b40d627e813b22569e7de7e170249c48c9b31908845f4acac0f0fa7c4cfe0accf33b383cca1794586a244d7e0f0e793cef795e05f6bce7011b8ca4751ef30c1c932c0e419034f0cf073444c8e0697c4ceaa48b003826755dac7dfe1d75b9f0069226ab6b07d3aeb2fd5dcbe53dc59e05bbe9e1b86f5f7a38ee7b20f6b67cf45bfddebdffeb85b98fbea8bb833f38fafd3d5b751d6e30b7cfbf4ad2e4945d256d34cb6f30d2d6491b9765ec1004894317d93ec517874a235065ff8efacd91fd46e53b4256f6bf29e8c592ad578b17745062499a946a32c0333e47777737187adfe5782e13be9c9c479258d266a59497029348cbe7d1f340061aaff314878d44965fcc1fd851922675704389e0bb1e8eabe3823ffef743ce410db8fc92269f7ebf77e5fbf0638ccf012ed3afd4fb8b63f630f7b9e7d56b0619fc8c9f9141f56e1000c7a40c1adc51cb3919d8a839f52fa55d58bbf7fb60b05f9a44f2af9725ecaaae7af98d4467f5bddf1776559575e17eda51fb00031a3fe39124062dcc230363f01d3803833f1ecc08c1b738011125298419afa49464bf7ef46ed468e0aed6ef380c704c9a51cb170c7364da504fd3884a22aea33c2a47a1113a2523c98da04b0ef5e8d3efe287f7fbf0b31fd2327d0a8639e28e8e4ed479f939a6d17bae1d295380e1bd20078630f91469eac4f88dc311b8d7cbe9758239a0e70243987760f8136c81212dbf709444f13bce4b40b46f63823caf94a52bdaf09fcf7937fce74bafd6f8b1ebc749dff1c3bc2b5ff859d622d18c5f3fcbf859f7a98b43a18b022c9ef36ad09ec5dfe8fd2049f78f88480132a9e821206d177cbf04a4adf6fd14d8216d30beff02207440daecf787206df45b7e3ff743dab8efe798643ffb06bf9bd16c69a653d6fe64e570460df7750e4094607d8ac3226d5c54ee175c8dcd5a2ef71600e716b3dfeefd3e18ec6935976b862d781966f115d39ec3432f03f0160bbd63a2bf18000b904945a08d9a442d7c5c0ea9547d9a46f269126159f0f32b13691bfaf93588b4c1b859f44d0643ee69c9820feb549d926758a1e4f96195caf3c36a2413994651562669bbe0670326d14413d6e21b9ad2bdf97e9ffd17d517f6e73c85f1ed760049c0acc93078328cbf1e8e012401534486616158b0b1d70f3fa47d1c95f277795a5ce4fed973607825187e140c61f965167c6316ef38e61996e11db56c01c87d2ffe0e915f7cf47e400d58bc8b4792419fe2ed92b4f9fcb04cd2267fbe0d226db39f02785a0546da6456d2f6736546da5e67a4ad4acda751e8143ac5b5de43c2df7f007f3d288c5bc2b825dba20f0394c3a8148c9a2972d42963330000000000a3170020180c060644b2288b6214c852ee0714800953da94a8a84c1a898523711446511885301c053110003008600052ce38049d34010057347ba815023f10ae6e8b87a07f4a9868966e5a70903c493e80d7c7d59db728457a9a3be9335a4e49152614f64c03bb874dd022d470e98683a6e0ab54f78cfc7df654b74e243769ac2bf0849582ca47c352b3e4e8d3576f0531b7b62d2eaf3a8936c38da08c796cb3fe947c60276891b1c45f88129bc71bf170a0fd8f4bf6fe7928adc34f64549905d18d463bd30b80b2ebfa57c65b8a1653ee99cc55951e77ee41956875554b975e3ef49ee6ac071c82698386df0ce2005827417e20a27b8c9bc5bc23048a5b757aa2489874129c03d625748c4be36eff9b9980cd6dce8183e6b79ef4da8a95d7867ae6dd5e804a024d06dce647002041a6ebf14ef63d26e19c43d56de0ce1515dcdfa5b5b02445049ebda045baa3199d5847dc69aa55417cc700e3a7e504911a4e996ea7daba07f1189cc2596f89efa88858073aef801bed376dc79ef4189a9808e0bf5c3ad72cc20f8fec15f6d26a795ed8223629feccd7f324fe46452d8bf1cd00a969891131a0b7555db20c6e3fa8b984384d4e5fd3a8f4ab4cfe2a8678f6658ebb553977b422ac50005ce2bc9a4bdcb07207ef55a65b5ae62ed2c33b2a72b9752835f5192f36d1753257d9c20e3608dc860a21846aa3b78c0d930e7a7e6e964c94afe3bafe38b511e8cc36ad77821245f4ffaaca68547d703c8d78fc43489d290ff58a8db6f7548ff1331dec24e8adceaf0690c8c9fa88cfdfe71e3daaaa4e1914d3a59f23cb8a7fa4afd423a82db6240d7ec93edfd946d7a2e4ec3bb6e22f6bd452d12558962bf37c7b96e3ef865c3bfd368dceda75bdd6e48e688abc5d445d4a99d8587d9205cfac631ec72580d4f476e54e8e791908754a36bab29464067b980a23cb40e3293ca9cb4a850b34af970224fece4301a790e771b15c20c66dfcef6795ee97b86ed51a34c5d35a62e5a1ae3c8a6f146a34c0168ba79ec1f1713b009e71fabb8e1ac7d3f647a6cf26de5f5e9d5b9888ebaf6369bf67b817bc255d82263fd16b9f0cbdfe4c3aa01956607c5dae3cd34d95b21f6e4a1617146ebb87909084bdd002d54e935d6a18b882eff71c349afc89bbd8c22bb60c3f03023b30c66acdac1dc0269fc44c9a20f0ccec54e8aa813ee93eca33478190fc614d0d3217952dbc4d54f1ae5c6ed424f811ed249eac452137d8d503e1aaa49d566f5ef15bc95d14540f992868e55eae06ba241eff62eeb5b0e680baaf085c7c4458060e9e494912952f0c9c14fdedc503433190464688f0e8c2a97de7de781fbd864b9d953a2d76a486ab1ebf740abf8e2b85edc711ddd4af52be3a039817140674e708586cfccadb4a9e2594b36f90ad8c441ae461e4268202fa6f174d9582649f7bbb094244e8d1e2c5ccb490e8ec30c79992a4db96fe765a45f530885d916bd10ec0e23710f6caed69d782f3424d56f5d9235695a587940f5d0cb4e13e13462addd6e32f2089c4f187320e16c0c629643256cb07e36be40e0f727ca708eb017558a56bb9c9bd4ec769ca21a5bd0f06012c0977d6967ca89bbb95ed07fb9a024bc2ea6fbfbd15f81b3b707b2643a1e69b0b696667441c753e1713fd313451d787c572457291a22058b93145351f7d0562ee03669a6fc6ac1930033de1f98eb1834727ee2d4ef7649379f7f03167261daf3ca6c112adf38a58a9b277a9eb07e40c456b9fc1d95e955ce37035d69040095c3366a8033bfa54dc270bb781b20e9960f0fe173e3f7ccd3a871384938991e66eec1a168576a4b50fb7f6d6169f66cf5469b223a03eda9e4ab90bad04f6c7167f302d63c9068f52f75e59ea1939fcdc88b83f397198c18c25e415899fa9f1ef4bbb7abf675b4d14c28982d89eee3401cf95cbe13f545e71c328070492019e4c752f3d1765f5c52f88cd784dd7d3f4e17bedf8889296db3ffd4abdd1eb215cdfe355422aac404efe8ca81f81b0b032e1c8e603f811553b35893f8775368e74ae08d6c02486fd3ccbeac94088cf3c3826701da01b62a31276bdbc8a25164a16177225891d320e3d5ee3f21ac6024013534e384f8e51e582c01fa2637513ca922aaf81d862dc19c710c070faa63b355f84d43699fbc4cb6aca9c6534ca3fc611fbbee4dcf430ea8c9b21fcb6c8d370dfcf87c8bc88b0c12f4d51bf7f577004a8315ab5ce227e456fe208e48802d49abdf1465472ea407824c33a8f7c6f3ee8e596254885372fc787fd5a2f896fe32cd66f3d561812bfd8c60bf4d73f66839da5d57b4e0ad2c7c1448d1396a2c3f4b4e6bb46d4445b89d60fd26f0a5a5313bdadd0fe0ead3aa9f06b666adf79166fa1cfe2ea17afb8f5572d80865a0bb70d46de6aa7dffe04efce3ca098adaf7e0f23b23bdf56b96c68857e6b0aa715f7f5929a7c8832d09dbfeef30a86fee21bd1a20d50ee34679ffff2ed4f0d465c68d02f224a56f5ce7fc12cb4fefa90ee85b02d21d055103eba581421217a86a0306f3d2c8ec8025b800556e34d16ce13fce85f63917e5fbbabd1b93807e48ecb5d85eb757786017081fa0a5f6a6afbaf263fd0a6160fabb8ea0df5493945e71620719dfaa412e07c83acb0b6c3e2645430d62dcf9ad25d6c456575d0ff1b853eb5a3d0dd1a736319a9ab2f6a5b884c6bc39e8f9580d12574b717ba1f3b582ceec433e284494ffa99b7856d7c2d74b4afd84053c5aa6b19d5c6df09c984927739aa1f463bc6bb02579ead2df57c6b923fdd15b968ee35cfdbdea1e3d569be3e1d6d35c363610cdb75c7a0ec102c1c968ff57ceec3f3e5e33065d0279bf8af10f710e0bb3565893b4d328022cc919fe9c4df34e07165330d7cd5b669a306f1b4242079ff144dd03eb0a06a24467df04f41ddf2c3e4315e447e1cb972118eb48a68252001b85ec9cb97458ab53acabbc9354b2c483a79a4ae875611c42b25811d75084d1cceda18b7c198c1a1fbcf8a7e42b9557b9d5c3fb77a145b4fa864f7a7e2536a376a19b75bd6bf9ddb6b435e37615f8167c5fb4c0f7b20693f0f791c6398f57229edcf8dd23176e1c22d80824b4d154faf94d7ab7102fc848995e61441df825ddf8ae3b400abf82b439138f8d0e3f6a481ba0d0feba4a943eaf6ef82b78397e8ed5dba8300096abe62e1e6dfcd050f8a69851775fe54635caf6992c9a408bcc34dab705b16d6494d59723883de063a1bae5af1d91dbc70d7bc1617914108fdd34dc15f8dd7e166a239e077be066cb1c45db1e2b34c87fed6821cac16636d1fa4d6541675d9a430c8130cfbe7de443c92fb6b63b65066f2c64a37398fab0ed2fd6716e37f48845e2157ef90f12ce81f27399a8bf7d88181ca8b9085f35e7044a5fe749f15d850ed659cd1a8413a62dd44beeb01c67f3bae4f824103905b9082ca2895f77f539f5ee6d9e69a92a615f2e62c81feb213ea83be99551c2c13e56cebe53722f7689c2572473abd7f54a563dc06ab3dd52f6b20958c376e9b61ec8883971f717e2ec29fdbb4b8a69bdd7cb07d6646d0f6e1e3216ff09a28b11a8dc957b76b24e4bb6cfef239d25f9f3ada575c6b2ce3bfe0624c231c131d14e09a8a522514da31baa27a08d7f2380a33f56784b667e74cd4ba9353bbc76514780e946645dbb712004806192f197158ed75e06c4a2746252f511a58acc39186a30a8c601bc3bae14540859b9eccfd4b74ac528dd1ba97ea167e240401cecfaa008da6aa2855c6126dec0c62223d4edd03e43dac7eb8b8af3949933762da998f9008558631515a2ff15507e8f2d1d4eabb0ed4aca0131177c88062d6d7e61e1ac6e4c1a88ddc0363631581eb1ac4b3cd08a5e2d0d2d511bc4db47174ad3160eccb0c175a2770175d2e74732ed78abe9cb32e1f5984052d5f43a1450a414aaa08e887176087ab5e908e2e9bd90e638e10e22199dd3f3edcf8642bc515ba74a7e7b1500cf1c45311e4fbf8fdf10045cb009b71fe4646242fa1afc4deff24a2c079a257ae1356982ea66e3a4f3576d892e8dcd54d0404e75586f6e59c4d707a5125ecb789200b70c6a7063fdbaeaeb75bc977070b2be2070fac378a6ab93b80fe7702aad24ee88af065dfab112cfbd97e5fc3f13622023d0f63c0f2383cd971f4b6d5cbb829bb278b11eb14dcb2445fdd26abfb51fc9c2e533171aa3277accc6e21e9e6c03cb3eee5cfc756b0e508b9e41331f6c5a1f450a62bb737fd397e556f515af3c10fd8a1405b6c0c00a867cfd78438dd42c3d7823f2f3cb54835f4152dc9a30d2a9464d2645aab85b76ef9271d9efee234a1fb3a2569b26472139f4181fd3034fd9c24cff7c356b31c97ac40938592b535f45522b653b6b38be25323a387d552d4e754a828e3c46a90e67b6a03018afe987f0cf5d1eb03902d955c0ff82f5d2cb2975db153d76288bad080b666d2b48b42d37048452fecf534c6fd377d8c1591c9007dfca8765de7b0daad8f40c8cd0f77641a9fc9c0cc54087b0e2ecce5f20c112d01940a7df474f003bc630fcf302bd4555041ab748c8a0e9ffb626892af3921328a72450cd2dfcb7d69255d77e37bb0d390309a48c9d942bb1dd6c6c543fcbdcd2dd5fa90648a54f0c60504cbff47a47acf65d180ad3a530d7db50feecc4f015c0b5a04af971bb56e4778e5ff14003fbe7c75accc934e2cd93aac93ae1844b80b708764c17638e8cd2c05e43e843dd34c790bcde5e1afe572c01cf1518b222c0dde4b31ae81068eec2f786d9f7c7b424410174e8cc661489768886c28244bb50411e0f34f8f8e50c19382f3ea36bff9b4b21273007ee51f337f143c5aa715845a98bd0b231107f298fda827f46314c8f58f5a0402069711feb0558c390715d3f99a575c090c26f9d2b88d86e7061a986ae8a847b780703290f18153c4912a68e3333c8b7cb5bd3c753f063ad84d34c0dae6dafa3f6e18cb0b182c295107c3bf745a8e8fe1eb51a6c4625f4376602cb465e753486981cd9f2d6f9b552c1cbc4af619bd61baf1d8a5bb1cf80575ff5b4b0f4d9c7f0c2855bdc2d6aba048467a1117379e2283de0cae78fb7d777ac0a7e2006e840dea5869e670b8f1303ad2350c103a02845209557ab9d005be33b0428667fcec246960215457fbff5c542c55b9b123778fe0a6ea6ba10af34e131a1fba843c70631fae7b62a99db047f8f250cf648725420af9f5b7affb7504ff7bf5c4a7d53891c3bdb70b970470a1227ce08846bae20013984b35d8c51a57c84d920f2f4c1359fa133a755789f10a0c070bb85f11d3f6f7e563f8376f67417df19431f73fa228b3e964ae76d0de0c52c8cb3ea5b7fccc691045e13f6ba5ce820710452f8e05afb859d9f98c2ba4f1ea354b3cbeb9697a28f4881cc116f4048433f29504a2ae8849d1a02984fcbe41462dd70cd71e4b2151e36797a1f7fb4f0a3e0678b483e94fde373fb2120d5fe55b25ba25f8c3dfd09d015950a8e7dd45832b4d6561703dab5152915dfb1f7fb3bb43b56b8f2989d9e0bb1d906fa5b35b50be15d4d92c1cbf40cc97aad55a44cfc24a608e2c3c878def0c9c33a5e1a8e5de49075f182da1dff3ec9ac137e9e00b0561254c58d7bf0db8eb4e6fd0103a465209c897abbbe2390da9e4991d1def4bdc33c2ee7cb5f8896f9576015692d90294028f25de7e8ce2c1f7f87a6f4a3d76a9df5ad8cb9f8cb8b972a4a24bcbcf3ed217cbeedc80e2cb3a3df75699582bf3f5d897b23e978e1855bf8798e7add54227f841bf675433fb4ed691b6adcb3cac4fd49c8da872d9ce1b5f6ef85c898812bba9f1650a22ef17104874fbdad7ec3643e11f6ba8bbf56c3efb0be7dca5f455ccdd8b2471b688ef394c97ac76be7d958bf1b970c800bdb3855fb81ef9a28c6166ffe51ceec01709708b3c92d906e2e3c8b94b82a14e5526ab836216d85129e2e241d9192f62bef2149b7f29f0058c01c734f04e5ec88252aa6e41e1eb7941e15330288c862889531bbb6c0615f489393c6ab7240ab1ce5028e1c0ef1eebf61e03e58e43aae614de3a317d2b05a80d430b8c324f3ad2f472bee61101546a68ed2ed1f1539db7d5f0b1ed74877ad68e8eb7ab3cc7d9d146a9bbeb790de0b5afbf00ba4cfde8e966afdf06a71b7d1024cd523ae69d56ffabc1e4af612e55c0ea139c61578f596788bb3954aeacacc9de69fe0922cb861a01d4794d7ee872ae614098be49202e93600685a8633c09e4a16f95e91cbb53597864feb53f2d05cc0f7dd7ab6c73129a38087d795a2e5e96a9d6862f41cf29b543e5e75cfa95641c9a91a25b622d868973a05a7e8e78470ed0d4df895773214a9c957f06e04515f1805782305ad8576d2c1c368935b4f36c2135770115918a4e17964edcdc3213ea15fa73adf67078ffd95438f917a4128fb901e522fdc3f8faf03e700aff48ed6d165f8549e977f09d10bc3cf1a06f9b15011a68df34aa6e3bf5751219262ddb1a6d90cc54bb1eceb181f24e0a32cf0d19811feb396c75d4952dea8f43fa5adc55dcf2b7f57325437c8b18fa2eebc1c77f4c9ce66b30abd931b86813a9f38b8483048ea8d05d5df1577b18e4edfa62c616e68b171410281d0ece3b11e063fcee2aadfc410b5f3eb541fa7006a7f72b7f61ecc69e7f9bebec316b3177cc0bdfa76caa75a999a113e8dce4c240799edbef7e04faa02be1d78b2d4d134d8bb016dc6153afc1218524324f5bc6f2bbb20b06f2917e36526920d194025b34cdf0476f27a416fa50dfd85bf6aff9c84ff0e5fed72dbf9f6b404268fdd84983c451cd26dc943712e4ab2c71bdfa3578986b43875662dd3778ab933bcc365927e7f52655795aa8df4ec303bae772210e953cb29ac6f07c97a80ee36b575f4e63304fb869fd7c68dabc8e176bf1731b620906a7d063f002487d6a4c82db2a946f5396da4d596705d863b5e1cff86e0c40fbe0546db54f954b335cd1c9599634c8fa795584a33615655ef7a2a61f36fc7ab2d4a688123273fdbec8910740adcc8a58dda464ce71d6df3fc2f261adb1004a1773852245b148d28d079d21f51f6e3524a0334cd1283abf43fdd3269d99a8df32ee472dbe18f7f05b4a9822d164045de6217b04579fdf769e1853fdfc7686d80968b32d2f2a45daec91eb67c15fd750f25f2ae8170a6824a8da0f25c8913b2dd052a892dbebb505fd0014cdea60b579bc0472802b50c40cdf04f6dc85ced10307d40cfd751a23f81889a2666ac8d4526148f688261207c0322daca9adda49b7b781ce350cac2fd93a784e4d7b7667a7b9f5161dae8a02e2763a7c560fcf33039f5e4e8fb44401e1975f5f9e5a53b7a891fa1c99f063c549e82e3b52166945e432f033e02e676c3adb5fcf57e7004d8402fda49cf5eb52c72324eeca93d9d0b8af49c85396e74e684de8fae03d9a06a13da888cee8dd31ea4d52bbf6692eb07b166ce5f3f9fddb3b90f71d467e5d36eaee9ad8ae375b9cbd6373b616f90fa7c8f9e78cafc530ea55c9106e60660feda5580a8b72fe21c2a52aa5357e082838fca1ee701afbca52abcff6e3d8f51f267dcdf3ee2ba895b864a5340190e588c7b5959f08bb8e23b08423438ba508e75a803a1c7108a69393f9de6280b482582616efb904ac873db35ceae5d2d897e50bc7bd373f5fbba28f88a41d752fb5d251f0681fb5c64bc7a8e4094ceb2c4420f8cbee887522a7376dd09d8cdf2c7c157ba31ac64b0409a961753dc10050e5caa445ca9da633de10af422d518db1cefca967998fcb9db77857ed09576c31a6ea9805d8c62df91011210d9d71693e9fd692ff851d661e7f7e568d9a280adc961e3593cd91a0280a28e3f661b5bb421eb3ce158ca323c2c9983a1e02255775178f987644b30e32189874fc910b2ef7aa5a7ba38516861cb7af35037f48df95efe7d443517f8ebc94c49b106d24b19667778088e3b216614431bbd02c5ed33c736ec2d2daa0a34090d7a0120c3a4d925e68e83e3b4e4ed9bdd17f872f562d3891044fc9ce0d7f3d5dd346f72b7db99a4733e9a958b582f3e784911fd53465c0535fe957feca19c561a16572593940ed96a8dd7e0f01b4c8e70627a29e2fd2aacd815c8129101132fba8eb30f458e62a14f8228d78c70fdded49720e85375c9f348251416992cdcc55eb9b3dc2a98da4aac084984ed5e1317d42bc59c418f9d2d0f10fab6ded3bd0b4ddfd1c9457feb380f20ab1351db59466bd7103699de9eeff85b55cbdcc20140269a7b34ac50d1403eb614aed83dcd896cb17b968d2b441d1802069b4c06c5604d175cbe54c5f3669692937d076581c033fd2d55fcb550658574969c42348baaad7cb43a10ba6b147642a49abacb3d0c584db5e89f70be8323092e541a8317461f6dd081e59a8987145880c3da5f408ca7e1958022bc2e83574bda403611141f74a8fa00e2804196b1fec660e5d55896621b9c18d0f0080ac6396aed159d3e0856167274b7e8280ca2ffd9b465d9cac01f440538b7e825ab551c8e3a80ba61d7d24a611b020cd2d5c852004ed06bba9afeb131168456d2c060c4ae1674d0555641b9cbeda2ea45477b009342ae50b84833abf0fcdcb075e0c5fba65274663aebdc61bbc7215a0d46a90fb11bc2cb676bf045379483055241c84860d2b1754594241c1ebb1293a08fecc717e45c241640097a900b4d683dfb4e04547eb0a94b151261c845bbb554148c00d4a37062f81c57cb942e1208f1588bb0000b6d60c5eea378073b0ac42e1a095087c718122f0ad1bbcb8342047229b42e120b93c51aa6032c283dddcc1ab28956c24859515131021db60744078056a06b30bcb2f160e2ad66133c1084283df26c2cb17f1a1d5cad95641d4c006d2938497c82aa9bc6038c8c7b6e10220003b98be09af1957c19881f34a86838a0ecf5a05a52c53a5f0b28ced7887f8291a0e5a5a6e8b61d44006d73d859768af159344dac2e1a0e3b7be944024a103df2ee1b52afba889e253381ce4ea16d74ba1f0ba75adeb8cc9614dbb278597c8f1f98a54f8aa5e5be115527637481a06562a207496c1695b78e15a1e41967e1b258802b08369bff05abd6e5148652c28552002c1c1ee92e1559582cce0f232e220e7f757f3328c5757a6b8a59a3e4ad52f21d892f020f78ef1224a513228b952e220e77fdfdd0f82d03792f1f24cd4a005c84e26a4ab2e20795a2ffcb22b98775ed5f6ca09bd95de817961ea3631faf38c5edfe0945fffd51265421e94739d57a1fe58c0564b0883e4648d73fadbde0446ed7b87da51fc4f043aafcf06d76f5a412ebf84306869b911383ff9d679c56c5ce7be44a3150711139ff9ea351b529584b68ff39f749e849609ff3da7c4bbef7c57ca1e7aa3722f90fa8ba3eb5e7dca9105a64ffbf0795c189a9cbed0ae1107d87236b982d347db95513ab0dc31dfd55ab4063abd46e4109c56be92fb2c4ee6553ad8a1db04752c08687c53e9371563f4f5d104ed6208db9f9f53993e40a313c3dcc12a66330cfeb357483927b6d8338bce9c8669493a26d5b77101eab50d8bce5eaa46430719c60cc0ec346973459637b64d9c351b38dc50db730e9564bd78483ff4d248253b4fbedb8d37bcf8b66c39d7ce63edda161c2270b82022ae9bc925cc1e873dec925b2032b9b9aa94dcc32ba79f17d33590fe567d6a2af272e23d9762f6dc28b933fc23091f10b387f6b4b5007668475c4e949cc47bf8f0475b404a8825407d3defa1eb032674c31ec8385ba3a52faff6bf216e2d409d12c549214e170cdeeba57838a9997c78b9888feef9d81051b5a0a4fcd385bc31b1547172f3951a9375c09823ac8a5a50eec4fe4d24c21286f3a1937e1c15561ec9e31861ef4754e921c8f308283b77be69c9c31d02d0839296f7f5d8a5570466825b4d458eb940f09ce269d1480ad91825491fcc0c4c180849e8de4d79a69ecc711ceb2a88388a5dd403451c113d9a741882ab0e003e046282d24d166167d72064a1dace355c0bf6fcc23887da7b367046b04a744737b1c1438b6027d5e1f0f26c87268f80cf18efb3c3f013eb99e9683e68f599273734bb138eed9caa64f6666f2f8022eb213dfc7a4614d134179afedf8e0e9335f442e2cc319f27c59e66169c7e502609f90272ac2c9f2886df9c0e892035914b7495d038164fdc763bcdd35092812fe63be88be87e75b5b6621307e585809bccf5421fc0bd18140d10123e3f3e08e6107d480c0046bc7f25c23c4aabdb737c4e5a2efe662c6798e69b7fcec98512e8f22dce33e8d30bb9d1005e4bb51335a473f5a3385adf731777f5b8c4be8ffa6f21ba3d9122898a5d67fc10380c497357d61421bd8da05effedab10181eb509c3f627d910ad27b7c343ea868145c48e418316644687ed5eb24eae6319b905701479f9700dbd0f41340f90e12a88a5e5298c0ffd0b244f07c1c12a990b6bc7c9acfc5fdf52e8215adb1d146e3ede0cf74678d520e2258389a43e3f31f197020bbfbe5e15e3a960bed6b333e90409f44b03cc7726323443c51eb1ecb2a12769a5f18ac25689956cbbd5eef12b839aeb7e66d7dc73822696279b5b5bf9ce411bcbcc55812d373a8274d1e6e134707d7615ee41db7bd54099b57321982f15a23e8c95650bce540b575a37c6502db6cb809c22341632abb17c3f474e6605e6f075a6f45c1d9e2983fc1850dc43d6da2c43fc974e620b998010e75a0a06f3cf59a7f8cf86688692a021da4f627458ace22d9091c8b869fb2af200bda765a5825beecb4540184d6830b204c9f81ad9b9a33ef51f7a484b9d9c97712f3dc94c83c4df184f6e3369570ec38603f0fa0840ef7cc2ff63cd2d0ac460a1da933084c5c3dd56e062874af6fae60680e804a31eb00e95ff14231a8f9e547c339149591def3b84aa69635ea69c30397edaa5063c0e015ee571dc0fb71ffb6278a299300dc41004ac870081d0b73685fc193f5176bcf4adc6fb4770a6219d0799af0ad48d28234fb6ad9741d888289b7687938b8f3d2789e87c212053801c71e3e51fd428657118d3970df10f44a7a7546bafb2509648a047e745ef204b2e74b41a363663ae5dda7ecf8b2b0f8c13349272955eb0a33f228d8e062144e4c257659d559a6953bf99ec9a7a8eee54d39b96822508e0d44d0a46801ec211d7b1c33e38021a7d75d8a583242dc8654a2282ad55f52ed4ec901a272aa91ba925bd00cd8c64d6bfd995080354116b4f09ec2f2fff586551156dce1ee7523e727d7f26aac1e8d1e814d0c829ba94cfe79d03d7395bc6bd0494b20b4310763fdb2403754173fe8f1c44e6f9a05acbc544e6523272d8689264108a4ab1f5d46ba3acd4389c8398c30d97be0c6acbeba451292671373500fecf83145cfd78056931f27b9968d598fb3f5566fa56859b85c84f94dbf47d8217cfe4b2906c84f1a2c197a60f71437a29c657bb247fd91c36e5ee358831149de89b25a3687958c1990c77258a22343e8ce307f2a3675c14551e8a8123fa4eab2295e4298a2eb7b43ddc12171821c60579bd0dbd9f4f949e9d7df80b4dad2acfca9e7cf04db7da0878fae8a449b2a8b64505868c25c5b7f16888363dc8ea0d5eaf7b4eb8c9a2f21d52d851370990eeac28ae035f73b8460317ef68e5e03325c43eeea12bb6b0b2d444c68e00a335a4838e223399c122ac7ca25b2ea0b046b1b586a1ccd532618df72dd0d36eae4bda669ef93108ab46d00464eadead523ffaf7720bdb7484ad0cb1c6731f832a4be2741403c89c5bd0a723d7c218d4bef609545ffafaf44616f6d3085b18c2dae73e04a896c5891e0f056d0a95168cb1f6e18fbe7ae95bd26f145e6e84510c230f74c5feba84b8a10ad90f84d70cfe1f74cbfdfafbb7b918cf2988ed82ff80e07e70a1297ad81da3d30a6ef707e0ae9022242160b0f002f894be92597e0596f4e81bdb1acff8df097a1f309b258a6190f4101248ece557f0a107913dd682b7f0c8d99692c030f9ffeab75f21cba6dc7c8a77360b51eef92b920b4758c31d0e2f1bdc0b8fba86d8d3183ef82b1a7e5e0d176c09a0debc3a3da7047dc8c48f5e36187a997eaf1e8403a6cd61aff6e95c6366e3b0f5bc3234b151847331a95e395cd6fec9d0f21de2133e0a41e3e7fe2297f566f6a8fd8d9ec5e28430044fc8cc63331e9587117f12f1a17363aa26842ebd7786401aea5cd200b3a21a44a22e2704a7b3ec2dfafd624aa28023f806a16fd89588694521f89284fa1b3f681c920fe608ff49c75a033a8c47da8f3d1fc11838638136545c568b0b963840b11092f3f2ebacded4b365ddf54f95dd81d431e1e4a0c5688f60eefbe43b9b0337079dbf985ef5cf96d9be8f7c260adce8e96b3631d362f4a3b2be480487b6fa40bfa5470261d30121790867cf9d11a8f6a3b935c10e68e96130daf8f8e47c24656e47c50e5b694394a44439e22b7173186e4a8c1565629d6e198135071c6384681c47c8f32c2ab798b22748f371fdd119ed56aa95690e6e6629d2dafc74fae839535380d3d3bc59a810c353397b7cc23548e8acb617d91f122106aac5b7428e41d431acb42f89ce426281ac4821e9288798e539c6a858407e738529685cf945b8f9a21fe8bb5828a8ac65ab6a0b17734cb153b5bf61c6f90387eb2c61c306bb19c489e5667cf1340f268f76168008bf8ef620a640ee60845e0f6baa12418a13307bead58f416341ee6a01451e2a31b0ad797766e7b03019566b01b30b56eba9a1101cc382a5e5d7cd2579a75a0050cb659c2d04a5e05b5fdc7933dcbf983a2e55a505f20ba1110092f449ef16c4d102805300d2b0e1837dae6f694f9a5717579c50154dce64282110ae45b697f9b1d8a2d8647613194edb1389ee6ddf6e1b0cef672066469e41c3c1691650e9e7032cf7a39dd0466c96360481c5fdffe7bc2e1fa00c4e9445afcbdaa02c5b304e2d9df73de542407c80a6d099853a62bc8fed3335534c8372afd5dac10746862e0e5e3e349f8f0facfa4545e88b2708a8550606611e339dbbc7f9c73138c9234ec03d42d9aaaf23120ecc2242d5fba5754744f44f5c174060d050e291dc1c205818b9fd35496505b5cc9d26eaa16b582d1eea277c400d7f9aeb6107013f030fc42c199051c54cdc98c01f525179112fcd31325771fb012ef78d39d52b2a9847501ae6d5afed00e37226cd6b87d06eca9fba81089fb97569730935db8f83dc7b60efd0d0f36d9d7447b98d0b7b79b916871c6b19d9e157c712a1cbb29ca269d2d0d0e6f7cace3e211994035e318651d2c58cc2ada5bece886d0494c843aa03b011aba0743e4f1f48bf0310c508c7d1c922a92c892a310c014fc60735b2e11d2ccb243970e667ecd2a44d2887016a32210c4aee1d03c0444a48c021a4a8503b964b6b83d33cf3468561ff1415168e934e84aaf593f8de4e43865705a3093b558280e9829c282d8506a351437043b46c70ffaa8eda03be9d3ea49152abd1aa970e80c689dc7235a0e0d9f23d1adedcbe2e8072006f80d000e4ac5c3413e23e9fb10b7807b2b771996b32db4120c0186362265db41bac46c139c7a87cfd334620fe603f9dda1d13ed01d48c2725b0cbea004730064430b10ff85698113c44122c8db6779b969d8a71998d894f510b80022f0317087f72f0b7c6734b2289f19430f920ac9880ce754fcd069626896297739cb9be17d159be9f73104c924b165e81c27329658ccaad1958b110ca4c2aa127168703a75a0affec2510b174ab4f5e1c6fa87b115689bbe7f3f4d5ec747b261bf2f01ea2c886281c8d2b6a86d9b837d631e0e09386f414454a04a632928e73b324036ea4e205c178dc973ae4004a42d3612868e879b021f1844ec05b12ee8dab5c13ba0689ff016f1ee76dd5d56ac7a191f806000be6a8b7f50c5939b6388d9b422cb057e1c7276568ff6fbd3c1403c748cfe33db74432d71706f31642faf3e9979dc0a24ee07ba2d68a36b7d6d5435d7a28d9a9bd966434eb1a4577ae60cc9d410edabcc8a74afb218c0b11e29b420f6954cde70a78e51542fe96b1a3ab895a14a6f8e4ddccb2dc1d6eba8865654f2825af26c5c681fa531d21dd4576d1e5eb096392427dbd1e19583415bf7fe5029596aafa14f88d99ff54f143ee5a0d48bda498cd351c25254a6226228d1220d198830c0d813b27c605965a0ae4c6038c872aa48c5bdbaa94de6aef1d29f4a1d944052492fce478ca0f1f0367636e40171ac6852baec909f3b67b8ea18cd8f8ec0879aa2b1019e817b8fc23588a91f65f2c345fcc5590cf0e50a7b4fbd9d68c9df2252f2af55cb7165be5135b3c7e2394fbf3ad1b9aeadb2eb49e40e07a7f3e79a170eaad8b680162ecf18bdcb48e721fc84982743a78fd5925e628cc65382d52d5bd60a95eec9c935220a9200d2f18c27582c722a30d136ad437eaa3a67e2e6b1ab01b56d8eacd2d98c23227b1181008852302570006e52a798cd026494b890a2b1bc5c99ec63096c112a3513e4f3486ccea0ffbf2ada0af36686ba09318759aad3e3a2c83df309b24c2335b93f6484fe23a9a6f49ef9cfe50cdafddac5e4066843a0916a7d757239d6db4be4ff0a380b74eba3368397f20c481097c202d5abf8babb7b9dfe2185dd7f5e72ddfda463b202d3d6a010e9ade4a3f14d78de338f4252c0ede5a196d8c1ad8e47481ffe808ca68bd30cd0c8dc2fc6b84d179092949a0b4a84717e4d589e438b46f81ac481071bce136f413e30853edf01136f7f747ff6a2a62e350a0add002d531a50cc595fd851bd894f5dd6d12dba394b55e4717730ef0fdb8b978ef9b89fae77aac370a78c8c56aec1ae3939d444cf7dc89d99547622966d44fbb17e32d9f95b37218b8ac2d9fde5a5e4c05c19278b3c74dbb0114255e1577dacff04692ca753960cb64125058029d63cca2e26d7390f2083367fc35d0d2802724bb33162107f9201f85be9858136daa4eeafe2e4166f83620027cb5db97f00a1c2aa542f1633ea61927510005793e7e8994ecb31e1c0093d94dfcb9b2183e1da951a547254bbbeea61e24774af4833318b7f8837f16e0bafc30e79a9e7c0369be2860c325004c0d2cb8840110fecfb1c808d5ba8fce59f51ad219d7bd343dd37f16563af6a0439526c6d08e602c518e7999f7a626fd8768aee6be805095bf16984814e6f00cb33443b10d6fa0a2f68df5ac799b671e94af641e5589ec55641de48b14a2ee6a19416bfd060741e0095b322e5a1f5067a7a6ea80e9e52cc8f1efdf70eaebf31fdd55f1d560427fd0128eed97132ebce491f0dc78f4231f0d5e36e536681445b9b00923bf86793c85266329b7afe27adfc0a017f1a542514d7d4e7393414a5fb00a09120c021b7c6f5f3014d5d4736365dc3d9e6e94f16aa13a6bb4687f7f5a08d40ecf44cbc6f800064835e88c0c8d435674e6b85745646c4f4b42a7cf8c321456fcefd15cef19405bc5e910c955706b6666690c815a865f44a2196b06d12f36f6909d4478164bfb059e8a131193270a4fcbfd1561c064c83a2c6264a2cc3001d4bb85960aaba8d1d90f7b84aad6eb685018f67f76676e490e4ec1609df86563c0ea50fc861a2926a2175c26037ba4216a8e21829a3dd031cd073db343e2b056b46f8eb502a805794ce95dc45435fde56b699f66762d0ebd38abab0f5d77a9bccdae8b391558e8ccbd04062ffd5c159f35bec995cf23f20fbd4126a2845cb775e65efe4a59a124fd855b43b2f9217d46611735c89a21eaf87bb8c164924aaf07aabba2e29865f49667f655d6493b2071162344f4de0ac3b31e4bb28167ac4b88a0a56b87d8aac420d7f8fcf8aba6fdfede5c51a31d1999859f7f860aeceea1c2a605c3d75aad5a607515e1181b1b87355fa1be32013486f3fd95ae8de93f2dab8d271577bdb6556c6b2b8751509bab1a4e8eb8178d7a8c5187b0c290f106f54a7994d3b2a301e93848d8500f2a5be5acce6fccec85d478c30876ea90b84323858d85406e2c51b606fc36faa733f0bc9cfb8c038af4157f124580883319212fc6155a6ad5d4f96e96e7e2654a0f4270ea3e752407b3c13f876aadb634e54b50a4f96d80b7ec77f076d0dd48426fe4e1c62908f913ac522462c4d6bea5258e235a6e9af4f6d0c94942a844740305684336901ec0101a1a53d2f63ec0efa6c960a4b01d978b14308646019ec437388536b493c8a5e178fda771119fe64dd0b0a7a810eca409161953fe2a6efd94a8a69632bd9bf66d19012602bf93a3c682e06a61394ed4d5b1ffd53678f6d8853ec308a5f8aaf8d5d767e8b2fdfe88508b10d23d7ef5710aaec2dbe36a465f93e96b0449f6d4cf163fd484eb475f3a2213774b1d58f224480192b8e3aaac82e5537e8a57c3e0d288df012ca533dc27830d20e1da8e4287693144953408f1794d2d5c18daca8caa4ea64489c2e2418e26a11f3a31444a15101ae72db12f7c5683a910fde4bb31ed01341f0da9ce8943fca9e7510792e18a1b1e50c66810ccb498904370ebda07c3dcbf6d4895ddfe8d41b58f99c9fb519811f6985f0eea70a0a1a6546dae1bf43a2a29ca1a3797e2cb1bea302573ee39924b05efe056652affc81b168a16646f051ee004820f5a2098594d3a6d37739ab9ee5f57ef11a9418901e655946def56806537666d6e899ce3ba7e32130a95d43cdad71a141632e63d60ff7730ede6f5359f095e5a984115632e9ba465a57b79fe8656879aed879e98684208217b4bb903cf0eb10f600f54d0cf84e4136bd1b22b8fe2016dd1491c99f763b0111f3112ab57ad526a6e8285c0331366e2f6ac67bb34d75daff4d7a6d6de613cba3266ceae87a7dc44bbe4676a2ba4777579e5ba2f368c2163128785228d3c4320d230132b1656d2711132d8488c2a57beb3e1a9ac5ca695a99d66b43ad990a26ccad216b1635756d3044db2fed0dd205c166188ddb6a8296808d3b39e491a292fa3fcac3c8d38ca6d175596980a2b351bdd549f8b5cfadcd3defbccc3b27eb53871ecd3686a31930d572b46ab154dcda42e2663734a2969ca05e5523d5a99366d94ad72a3946f617994f2e035a326f1685362b95dc634a3368a4b51294e895122523c8a216327757b4e2d76d986fd164739a1611ff5508bd9e8a7bac69baa5cb738f5e9f408d6a0755e79a617b49a91c91a693389c35d48671d9334f23d932ce54c935d190f823a7d593496c922599a59585858a20dad1c7de7b51b16b9d3f68d2fd8fed0e64eab673ef07d5f04e3b9c6581930e315370462cae900d0b86dcc750771fb1cab5643aecc4c601895328c9093d832a05df1cc0486113f9b2f6563291d9b3fab7605d36adb368edb368edbdeab7e0999b76b1c9ef156857457d3348e6dcc5498b81dab2801cfedbfb0e1f6360b8a6e0ff1c5c98fa92f3ebe0839761b87c11d2cc48d36e4d87cac3fd41c2de14e38dfc2b172a70dd272e323116e8c1bc62c6e28dff1c61a2b055ad12a60e7c61761121f6144d1c67615e1e3c717df154d0461de58050ca088dd3e2d924d371a8d80891bdb15ed0d4dab3944feacfc588370571e668746a4239edcf0ef5710be3fc458336b70d46a38bf3d6ef1dc6fe4a0232231598194524aa95d56be3a624de7106bfa9b0b8cdcf0468046295e5074c3bb40c62ddd5006952b2f23ce88008d4843526e441a4aba613c7acd1ce20cf9be8e38a30a204429000da36440bfc2df461a32bafd1e10e897bc2b578c7e0945b9fd04bc9061c3ed9bdb5f19b97d17fd9261aa9543fed02e6d645282db37d52865e4c25745119adcc8eae8813ae0bbc7da3d7a35087739ae423c967f0dd668cf69961afbd5728eb126deab4382f0fdb6ba7253832c36646dc574cdb6f8b2e3bcefde0f37d5f00769fabc95ed0779e7bdaae9e82062d7bbd6011a4413421382728fe71edfd5794e8bc94905cb3b3b9394dd5dcbe6d913cc61e74ef992e76b600e3b97a38bdf31d6f0ef8e644965d6d034e46a93334929b5f7b50ac4747bc67e4ce2f6d7d228f87622521474a728a75d2c43468c182ed7bf5a49100b2a39a4961a3715bcd9ed8351d0d0755b93d22ecbb078d52bbab87fc1f2d055808731ae010e2a81ba886198190b534fa7d386ea5acf91332d188ec9e91377da38eef4087adba9ab322eaebaac3f5cd85f5bbafd98eaa2b2ecc6e487794c7da42dfe7d291815120d7db8435ade7297d34b677efacc57562aeb3dfdade0387d664797d3accde2e86c9cf9ca593232524666c57bcc81bf3d82373ccb7a7dcf5f647efa4c95f9c7add896f795cf9677eea79667719c3e572e250a85dab66dfb3ede369ed3eb50309fa773b5022d18cf3453654e35ec2e635551d0ce02692af513dcc1f7ec0ffe667fbcdcbbac2b2d67bd5cf506731cc78b9ded6ab1e110e9d9d0c5c676d1cf7651db62b572e1c2858b958bb770e1a2850bcf854dbd858b9ab2215f17f76ce85d06178fb4858bb7707117cfe91f66e5c6fc7b795fd1389ad2bc6779262c62e4ce9c5128146ac6b2583824d7960d51bfa269502fb6b1b8a8af6cb8c56e6fdc9cdbc6711bc76ddbb6759be775da938bfa4459697fc44c1047cc374d0cee8881398c8cf961601e6363e59f0d19044dd78be03b10e635acd41ff8ca4bcb608ee38839cc71b4e947cc61fe45700737e338aff3bcae676edb9cdb9c1bb77363aefa374db2c23c26c6a29ed3b15ddbec63ae3d6f4e8e9b1c374f52bca0e7bedcf8c410842ecb9ddb813564c0dd661ec1ae9bd96a68c3fd64ac87b2611017e6aa10c889616a8c0c95de98fab7a85c9902692af707bebf8b1a6f0daa471087cbbdfd71facc7fa03ee3799ee7793fe843d45beea9beb272facae9f41d5559ca48192b0186f1bdab39127c0457aefa89b5f2999f2a5f140aa53aea54e39d49ba608e6fdfb9de8a9500c30041b0b2ce9dde71e99e6c0844f51c89620db5abe5f433f547cbe93f300934dc8e1ef3d5fb20b7f26fc5e36c78763e47eee04e51ff017a5fe1401beec41c55c39dcbe4e58b60ebdfe7e22899a3600e733a9fd562fb5cbdeb2eab00c293b841595999f76cebbbf71dfc061eb41ef7d43fedfb3edf7d160768df4d3087d3c14ff00633b8008ee002f89e9ed32b561505ddec5f3afbe374d0fe90ef86c8937ccc5bb056efe4cc3b1bb29ded62d999a32e83da2a6a7ee350f3dd376bc3229b0985e26c3883f250d6c5675c44cf86df4cf5ee32736f06859a6fad3e5bb3f5af8640dcef12acd1e2215af91087cdf8e9dfa97ed4eb2c18c11d2ba7edea0ed6ef5c95e9de7d469d8d43f7530dbb15dbaeaef598cdfe687db66c38448239565b8b0b87c895c3fcc71079612edf7561eb31dbea73c5867d57ceea40f0fb8c930dbbc71cfc8c1a9b06b421f79816ab3bc1acd4785b9e9763f5e9799ecc796e205871d4d90a4fafff6a18c49d56da30e6f3b15d8f09775a2d7a5b75f59997d55135de5ac31e6ecc533504e2c6dcee5f57c3edabd9dd84315ef56a184493bbb2e1bcab9fc88deb7da788eb3d04e27661103eac6abcdb1673746968be12bade27066eae67c31c2e909bfbc79fa6b600f07901d06171bb9b72a3a0a1176b01e0f1c2fc43a1c096a3aef2400f7c4e7b200882ff38ae805f61fd743a9d78e5fbbe99994f06440205512b97329593ddfea986a75f79e7f1edaae7a1fead54faaf7a47a1ce9dd7a1aaea5f8d977ee55f5d798341f8d258d367110145fdfb8ca6a4297d1beaba9e9e2b2b3b779e76ae3744bba795cafaac32079140513604a27abcaceac5dad51ecfed991a46a31a7ea5c6ebf51cdd9917cad8ce4b576b227164c830bafd182aadaada49ab15683ba9eb28e14ee7027a43e2bc39ef28070600b6cad876b445f1bcb91d6d1b2379078f403bdbf96c75a551a151a6dd8e3a2679a011285804ea7d8ad5a454413bd4137486bb086003e333d448438dd755e70d408c51f319aacd035057efd56b5c9bc25268a81a52001ec11a309ed3db76cff33ce96d2d5eef550c44a4fba3c5eb6fa02a17d56bd0e7f4a7b5380e355e193eccf57045b4ab97a072bb070b2d4abf6c6cc8d7e64d80d3f8019ef3fbd075bd3f94f192e1debddfe897eade73e897cb3dcf1e0115566fcda907a8346a0c31aa06e5e6368f61352836558b2204b5b1794e37b81d514105f0505332ea970c6fd5fbf2094e8c1bca980c509b22d6f4b94a0f9194296309de66a00df60212914ff746746ff85caf935eefea8d1c3a497621c6e48a0e75fb12c4a15d30182dd1444a2c8206f0ced3a688473d37bc99305fed86cbf0066b04e12b04870c97711c7ea35f32c4a46a48bdc616b62ef3997f55880b21ac7fffb639a475b9b96ddcca36e73cf79539b76d6e11e4c0ede0ccc3ed2808104180b8dcbfcddb367065f3e6bf73f5c75685801f226f0dd006e1ee8fd3518fa08e93fdb1728f75f95987c87bfa56877455c8837016378837a485e34efbe387ee7a767b72bbe8f2fe79362472bd971d2131d60ce96ef71cf9b12982dbdcb6201b14cffb210877b728624d1fe6119c7683d95acc7b3297acfacd39bd09d670e5a87f5e15e279a7951a84fb41eac4ebc206e17e90d73bd9d6af677f903156088eee72975f6db94c4d7da66a52dad519e0ac965443ed29a81ed0703b4a7d3bc2b15d52ea5f1dc482d2ab2e43cd699777647f9097da04b8d41c6aa8ec8d76796f51c31ec2ceda90d260c3d5c3bb6ce88a11e37ab6c50110a7b4a801380e95afcd8c7a7334a3704189499348e7d68135a6a9450dc06d6aac01f8d6d3afd975946ef762bcaf4589f12f46651ac3e327c8e0e77ada9136459c116f10808d51e7dd865087516db8b97c8e814848dd5fdcf33c8fa5047344700afac302dbf6171fb81df52bec2429dba2f03df576c5edaeb32bee39bd31e9e63bef2f800899ff4a0dc2dd1fac9f34ad6aaa0fb50794cd69eeae375f7cbf9ec9343b2088f870bd21d7fbce79de67e7d9e0b10d7388bc367c8239a20d75de6da53ea136b4abef6a575b02c8b03686db18be552d298618bad96d9da6d4c570fbcf564d4a0cd792945c349f36a434683af5de63fcf172d55be8b70b6c442ef8ae4ebb755dd77d3b588310b9b39bdb6ca1b4c63bb7ae9b30dfe6ec364ec89cf3aa697f74efaeeaebfea2fafcb4f16edd77d5c7758dc5e7ff8ffbc06d88fb3eee03b9a2a38dc9c6442ba645abc11aab370c5f0d09ac81b333d680cfe959836d0d0a08c2c0c0802b988f5bfd9bda0782a0a67dff387075ee8381f940d06a48edea556b502ac871ff40b015d3faf7816f81312d0d89e3b66f0ae1667fffa689ab3ff4d590e6f78d03c179a4cf6e1a9496d249126786bdf17f9ba9457579aba61e430f535fbeaaaa73dbbb87f1a8fb26d4d13837bfbdeb41e2d0b03226096069a0b1ae6da8bb8c35373b980ff1af6b3d5c51f03b8cdd98b4ab8bbe87dbd067b7a2a1ae850dbb181bd2161614fc362463459eac5fddfbe08bf710565656565028144ac61152f8190020c3cccccccce9743a7d46ed58acc7c69971164b464666469552cad65b6acc69fdfeb27a8e8ca1f29da18672289445b72f430d6593db7f51bb5bc3c8929939a1644cc69a4a0c4de576499a947ed9f7b5299c9dd63e469c1eaced21c629364e214011232d6391a6bf1d4402f55cd41a76d6e3ed41706d4ff5412050bef1b10efd72b1215f9773dee675de10ed4b7949d4c5e537dad55bf7957f9f047774f7fec5f8c3c5611eb69811f3ee172072bf7901d91c6bbc871788b12608112fdc0922efb664c6bf987a812031d6705f223b6c0076c900ec7614b35db121499abe4090ed49ace9c758e3d92d8af7eea7ceeb3c9477171503f2b672c0c03cdeceb330f607795177e56955dad5aa7fa899539c829a9941f56d6924372c7a60db124f7fe684eaa15fa196a40d89338f416ab06e83efcca9c1203550b7c1f7c477f379fdc7716b96959db1e6cfe973e0ae5e5f6d48e4aede2bbb09a1fed5ed0ff2aeec90edae4ea7ffa795dde4499e4ea80341c9e8c2b811084a24b8d3d4e0ff4d4d9e4e27edff34f98f3ba1dee77e4eae563688bcd2c65873fa5176136ae5409df5d319c4813acbfe20efc90ed9eee9df668a74e61bb863e6ac375883954556cc6e79cca4edf916a203c1ed796382db365d88345d63dad8ed87110aa3dbb73cfd32d22f1be396ac154a6e734b6dc58cc7ac5f2d6e4e6dceca4de1b068178d4de9993336a58d5d9ba558d3f7a040439ba5db4fa1801261003bac82dea440d268519011883e29eb0b57e3308f72020d776ed4da76778c9eb393ff36b577767eb2721254bbdca1d955bbe67f489bf2020da3d197006e69ba214d0990a9dbd5d9ae399ff331d5c27981a4aebca66955f808e115cf6dffae5da33cd1e83c1d4b92e29e034d9668a5e6b4cbb337baca3767c6e03eb9a412dccd86323e3ffb62062177b85e41c1175f8433a906dbea51c36ff80d9648cd6bf80e6c07d6e3861bbe038b2c493e2e70c2a78929a2783d26a527a240c4143e38c919925114483b90d1807a464a4728816674041db800944a5b919324a42de664091ef8a15f4f124b1825e18313705c5210148cc0d0832946903a01ed18d09393d1089c4c391b819439822d740c0a14a6c1b7634ca3ef647bc10dfb49aa0434a43d53f0e868afe889a2279e10f405af8925b2d0753d33298a244a4f0c210655d0909e1049e1041c629b9213263011057ccd908e90036d7604290401dc927a8a901402299a6889e9d17a78504516669210d292296620c1222d3685112612520762203fa52d86842a484960b2e48b4e2869331e4009ba82863232020d8aa400999236a327a42081e925494b2a42119c1881889e2dc4a21cd9c24700a36de644094d94acc0220aa056c4832158418b011581f2e005953423a2052b49443431922c33171ce1e7a84549224159424f8f15a06a264491096cd0adc4945c405494822b743436a4a48828a699134654f9624ec4a458fa829652a20a23215af002ef940406278c08310483e402272b90624917809e27aa80e205ce543402143c1105125e8c052398b12049143e5c2aa6c4832986984642c0c20bb616312b7c8090e082108a70440ad48b51cf11464034450bb4092797d81350c2e0c4ec0a5770303d488cb0c29b4de079a2092d78e2c40900484adcc0c8280c5dd00195ae4b4292e4c4077c6ec0d51825291962269bc98063e9591223602cc91145928b493162427a42ca124f5ab0b2cd9470f015393154c511dd44eae9c087e40493a022565e14cd991350604a7ac2093378d281130bc90b9d569484640bb321569005ae2526634a48c1a8031df040a4a212505951ea2142a85f93873018f970d84d5649327682881e7602c80b9f13412498dda45fe1f4e926fac57279faf48b3f85be4ee9c9135030814c7a020a4e303d31c503b206468db008ab81f123ba0918b58f1a073e6d165c292d0c3b29cfb5cb77dd5023ac861a048d28626004abe11f0ae90a4f62ccee5b435db1cc808654333d29092a5a0cdfc01a347cce7777770c9f349c5ab13441691ec35d39fdd9d3d4902fcdd2d56a78d8ddf090c2a879188de251440ac0c308c58687f10a013c8c52623c8c58d87011321eb210ce004e839b28c04376628087fce43643b9cd57b094db1c9ba224432360da507b0c7f511150a384d5286f8d52861a630d006a6c57ce010c508026ee3c0168cc1880d09d975163d3e05423b16970a8b1696c6a6c1a01d4d83436d4d83401a8b1696a6a94343064d4c0aee7489a1aafb6c55099f61079717039e042129cb8b6972e0d6f300797032e24c1e85adb5d1a1a6ab800e0aaf172ad3df4ed5c8d061b9fccf07909e5320d4fb934dcf58f86da45cdc4049486873dd443344c1f0945e8caf0aea374b57ad34b5b468336face6075e8a161cf686a8cae70d62e6e2534d47865a86174d243cda48b6870f1945b2fc11c93892f04e1ba6a7723586d0bc794db4adac55dcf5a89046b00000075da2535bc5bb6ec264ec26ed2d3b14f46490a1720d10d490a1744612aed62a51c7cfb6d1940fbf23fd992d6465f297152332758a872395e27578072f904e857bcbfb9ccf55c410a5c0f1692dc303eb97c39fbaba17e5a503282dd5023ac7da6d09c350e7c9e196b3267359cbf9238375c0031ce303e0320d02f8d86f32bd02f9af37b98e10c80b30ce717e718cef65ccf3fcf9c63ce679f7eb9389f85fad53ac39ccf4afac53a9f87fab53aabce2fe733a7cee726fa853a9f8dfa753a9f9df4abc5f9cce727fd6ae917cbf90ca55fe0f91c85afe8d7773e27f56be57c96d22fefddf98c05739538633bff1207c603f09a872e1b1ecab0d157d67083006268b547bbf834d0b8660040eda15d7c19ea8beac3102088b48bffca3332312e5a30955995579567aaca4a5e2a0f3193a27631d1a409232747480c85a3f015fcaeb2149e52198b58c3875103506baa0dd5ea90eaa1e1f499fc066b4ccd2ea9e11c98c3ceed540d76fa48254dd087d3e7a8c35593263355024afbef467202851e4a6bb03c8c14451466120dcd2c90e28b2f4299a449b9cd4dce39e79c2829345e5413280ec3f8373a4aefba2bb6d5c3fbca572c9115dbeab1f2ef9f25f27de53b30f03b30efd7b67ab0bc7b678974b6d5a323e2bdfb0eccf41d188beba298005653bd2169381a79b55b024da2d3cab869979d40a59286df55941268488bdac54cdac54332d62e9e973eb3c2481e29b372d62efe8f69a52c265b2881b28cc926714a26fd8a484e6277bb1c7ff0e4f24a8db08e6ed7d9eef688e464bbf1074f6effe6d41bed92462edfa1f4e9dee494d9a5102bd96c029aa02f64cfe5dbe09238a0a1ec61699774e7696567abb48b7f4319caa18b45bfde64ce466207375c5d3934a7954c8c28df0f5d7ea473cea22c86903993ae589e19b3446134d2010848c270a50d5739dcd969815cf9c9d852b7afc9a837938a184ee8fc4cc51812271a25714d9be09aeb77cd72ce6f1a4f2bedcec65dc5f7451a5da456b1ab1bd062ec7ef1028972724a29fb3f34dbb58b884a02f46b9b536a9a6d9cd8618ccb2e5e5c694378732512a87c5ff9d9c5309a2ff8fa5f579d7885c4381f6408dfb6217fda940e69bbbe3b9235f0c517e1169946e4d66ab732bf79c119a88b39237377cf9797395f6617499a7a433a5f66bdb387d6fbc27545bfba76cd4bd72ad24c22ae6871724284d18925049f96d1171717fbc28c8242e7c11a3c5956ccdd1d7b8bb58be7e5a156e5656a45ad03eaf22217b9f5b46bde050456c8bcfde2a4878ceebcb4e1325631687472e54ddb56bfc545b5fa710a266471e3144cc0e246ac99e714337714463d54e473e5bb7b0a26ccae7cb711b0b095a660420e6ed8454828e2f2ec148c8ba9c55b5479bf9629527e0bac31a7b8cc5057d0502b8a31a4376a499da491ae183162e83a4b7f1bba2eea0834d46415689a96e1776046f8c295ef2b666c8e92653ea75b541bf24e9411e87c91ec3a4a5daeef45d54cb44b7e094aada95d1d117d39d17088c643e4623725db50e3201ff611e88b0da393db0f37152b1d8b76cd292c600efe3c08e260db8a53ca9c611bcd69026b1891b54b16116b648339f8c658f3c1985055501415d4452bd1435a52bfa0458bf88d678b6d3c5a925665e369a42b99ed56c4d633036f200067b83dd4af95cb7097d376ae93c14a1b5da894a6b4c536d9d65374e5b722fa85baf25a52cb0995960c928f8c7eae977f612771ece763489c6ad4385a92cc6c3163a68bb99a2b1366ce7c6ad39baa39f432a954b9d3c89d45b03e91a69126d392244e0c97a8999adf2c9aa91c436d61431ae35ad192606c288355a3b01004569ec63cc4b6762d1bc6b0482b132a5504d698b1ae5f5a13a24b6a497fbcabd61e9234f21a14925c5ce2fb89ac8fdaf50489f24317d7b6937ed23aa09a6cd53aa02fef3311dd66fd7ab17d45bb3a4abb34235a4f0d9b8a20566044fd0facf1a225f52bec28da1489f3e2acc33c4a9c3fbcec858d31d88e5d458d244e844d987c23c5197c657c028b22f9f2ae2d3ff48b79028b226edfb08786fa159f98024f3771a57c0ca883674c1c69fc70066d0cdd6e68f610936ef1a199cf8b6d318fbe699ae07c9579a6c27daecc6ea2e69cf2325d666ace39e71c3a9adb0cc686ab1555d970b56ab121a5a8394536a373fb04e9b664dab624be64e622c9cc5f392799f9dba54ce2684992668a94124793491a79399334f22f8ffdf262c3398f92737e739aa689b524d962c38e25094c327d928b34996466590f499cb8a23c74e53d963145a6d142dcc8c52dc618b538a3ec1863e4fe16d30728023f884ebc3c81ae65f430277f7bc81ccfe74fa0877e314e3373b5870ac4fe042a20e7047ae06975b03939b4ab02510e8401f2abc8cc040d63920c2013e8a15f37a2cccb2419dc7075c3d58a48aea4a6051a3f6d8ba6dab56a2963b40cc177177fc1fcee6eeebada6966a32f062a0a0d8768b36bd7dc8ed0df905efeec67054d63207d42e2b51ef98fe7b54dd3341dbe9da66d9a1623333333f30d2b8ed03d8c5fe15aa7bce7a22b67f06c62ee00cb6a8401da182233dfe3c83c85fab06219a400084c907123c7e04389a676a5d8480f17d1ae0865b6448963a229276e3880cb0f0750a3a459459c55a4e1473a3ba6b172efd3c01adffca665189ab6f5bc4da79cddb2575a2af984c4f39999fb10685777189518206f10c1834813831069e29d56a0e1cf3e08619ceddac3e8850edcae1146dbdc7e894a47f33ea078403b87fe8d7e6d22f8c1134ab73b8c473d37c63057f0c538e3077af9fcb862ba9f34c17660f17415ffc8efb4c7a8bd48a1ee0f766d37d2800d0128c288f1051b820aa22b5ece865c5dfd4dbb3fd8ba8eb4adf08a2a08b4fb7c4b3e1a250106371a5d4185cba04ef7963c4371d9c965b00638cfd54482d88da04e5fa9831228037a348186bf0c12c4aee4ee6f50a0a18cdb32e28cedfd01cc609c4ec627b8871108b7cf952576bbbe6719467c222d1725698a0ed3f445caafb1a6af551b6bfa32244e0c918669c40823b4a9e1f63724d078d9867c43407f6503a1abc208b0e68e9225dcb94bdd443fbc62882e9af8eadef243676840b48f2169fa3d3a20a6cb560724fa79c388c5ec2e1375f4f65fc026accf8038836f7f02fd18126707d6b00ae8f0e518272a6d4b7bbce1108d8788ebcf22d030c66d7e8c28593ace58d96237dec534ba986671683a52565ba021bdddea6e8c9cc9463f38b8613c9a332aa18640a5dd68f00989ef77eceaf08d07a25d4c89702c2231cba8408b0042e2dc2042069126360e224dbc0fe37590345cab0eede253cb0fa36580ed11af0e4c439ecf4818479b0f39098e01d71d220ccdf28834fc235c7e132ebf6d8c42f4c1e5d7f07926713ac6339c79cec207a440e1f2432ee272c8462e3f649e18f19cebdb579a9db693ad4111122fdfc56eacf1ced916bb734687f08dadc357bb94f3b202315d19855ed1498d03dfab4294788f0ab4a9f44be2dc20020591265ebe414450a48937ca4b16631adbf9b2038cd39d7b2843204f7039360c7a244e675b0691b338681e5cbec68ffc836ec1e558d359c1ccdcf9281e50f979456f4a80e00926aca8c496499af859c48d972d93332dca27e4435e74ec765f76bf4e08ddb2dba55d4c5615056df9905150685f76e75941573acfab829a64ed2311067f05b4d16d7b166bf8dff78135e85de66cf108d6480d69f1ae404c37be9ba46ab7a8cd4413ede2bbd436e23e4205e010e58341f8cecf1a504d6ba4990e388e734125f251010b224565a8128941c8420e6800231204ff3c086e41184ab0591f361418e5607d6b718fadcdc889d1b459e2ea76b43da1b21d2199e04eeeb162490b2a0bea8d922a9fa02fcfe9d4733ab5847a4f1d75f032d7a8a07f006e5fa33cb47ece13ddfe69c3d6344dab373a428a321b2a6a9234456989e3388ee378b6bedc62db76cd9ebed513e5917952f33a1ef92ed62f4d9b9a4bcb650d8b641167ec73c6398fe6b926770e75f3e1f4f15853e6128b7f5453a58aa292b19a5f9d7fbaaec69b234f5fd5308c4661f4429e1925d508d6389d4e15870c831031a971555a40b59f2a33a8dd5616682dc41257a593b5e3b939cdd7f2f5f8d6ca328b354658a0b9ccbe8df2cf3bcab3f500a8e8f24f6dcdb3cc5a1e2b9b5c952ec6d954699a3e8fcc48cfed9b22846636b39523b5051adef858aee321da524a686863db4f129a925d078384846edf0fda0d2770b52013b89afdb13dd4bed921da8e6bd272ffac8c6aded7556b793a9df94d7b8ed46c96fe90aa2ccb7ab6e5ab16961656422282967f5676ef1f0b68064d0eaa9ddda49c679d756f75d66a3b620418e69c1d9b820673eb2c95b56bcb51e4cecb6b59a0a1bc52865d4d71c80229651115a66cf29a9025621f4bf41bd9b66d3a643f7d7e036bd0189d96f2a0b2d03f90b141e675fa4e96a78c6842dc199edbdef1dc19b4840225114cd93c90d401a3101c9d0069024511e2207099e0ce9f3ba5bc04bfd5202d596451e5ca7facedd83c70a76c21eeb461912c2e8f190f25281e33d45daa4be5fbc283c9570fa3153d725223200882b397ca3204a485b8a883ff5095658845c9118a62990971b925ae5bc265d9180f1e4ee06ab2b33a9234ab434abb585508f7eb8565c804d6004f2dc47df909cc21c310cbe2be9c6f045f6c0bc706a585b83aa46c512421f56b6597e890d22f95e5a1a45d3b6aec28a25dd74122c20d231451748c3caed53d5e958b9b984d159b256bb374138371c3696f6222a0a71bda2c9d4e346a007121c28837a4568834f1d6008242a489f77427206daf565d27cfc9e4bdcb211ae509b57bb6d59d6f67831ca0a7aad21530879dabb5ba1695ad72ba870d2feeeab202b1e1b21ea9ea3597c66e90b4599234f2533d7a3e0c0182c895720b02c465a9aed520dc655d8235549faa661d641d047330cb455b6d26559d5703595792e27694878d8ee48033c9ba2416442dc2410cf6f14f8c08f52088509f16c83c6b07cbdec430b0625365f3ae40e559d739d2aa8e91a74459ffa703e5521a63599d698a5407a95d3a3a4e74a0c8836f5047e7890e142bd0d0e6c6e766d6af28595507094acb234d7d823ade356b53e526d638f4bd2a7854a03745d82c499c1b44248934f1ce9e7e4d25224dbc9b94396d5756655931d2cc997a4b4d5dc748e2d87858c42322925cd086118a27fd9a739b8f399df2bc14aaf218a2828636556e6e10b01467c4b8ad69de39a80255fea99cea73887655f607edaeded516f878518fabe7748b959577a92d281944b9224a9cd6a3314a65fdd23a2aab9487c6348dca348f52289cfc58a296e7c4ddb47b754bdaa46c499b6643d50d7fa5ece8ea4ad65396c5fa666334868a42a74d959bd89cb759e2baf08687456343349747ceb65cced7a5a56e47a215b30d55372cda35e52c95a50634b459d2340d49880ab771dc4d8fc48952241961ee4150113d9cd4832025dca64521434da1c98d5eb8910a29347173ccdbda94b64d09c84e1b763d885a7e68cbc7f9c71669711106d45ac2418f30fe3903d96d49d270314943d4f213610cf4700baa9c4cd2703db23967111255389f7671334d9bf92cb992abdc505194a1ab491bdef44839990535c258498db0140ae8179384c58c6dec8a2857dc6e36a2b67cf0cfd988f38fe5000b9d8d38037594dec8a6cd9266ed8d4cd3b41f292818228ee5d78c410a42f0c46d4bc4ed5b0f441cce8ae0f653336ad38588c33e0fbacf3b7bce6e56874ce2b08fb58992864e1b85109653724bb1a6852a0f4792069c1503abfb037cfd274d768235ac2665134fbac0e4ca1b9f7461e87efd041a812045c9bda1364ba66f035ffe692606e5bd96a7716cf4481ae9039fdb363613ae34cd86f3abb9ba1858dd9747d006f8fa9cb6d123717c24354d7f0849a9938cebd24bb0460cffd48645aac588c34097ef222e57b9376843469632a73f364590010de31fca479c91388dfdda4986e5d2b25025f20186d92c4501f459e83e945894b0cc5cf8a0e283e56ba5be9a4296b23e1247951465322345d859bfa21345b3dbb74a5400eb5b26b6c836b14da4563b64fd0a39a5db3b7cfab5c9e0f67714b143a85f6cc4ed141234b4b1872c331d23ba6ae1d411348c4350ba55e294240e03751da52b9ba558d3b02fd2d5bcc643b4fa1087b14fd7cd55d57192328232d06d4ce2d058a4e9db87dd57673b5756c789ce9186a472924770074e72064a52f92e619f7392ca48fe499f1a610ceab0deb10fea364b7c3a4b0d4fff78cc50ef3a1e1dfda7b561f74570074662833e2bc73aff5486b10feb4195f360ec5319c6482a833658b37b8e7c57e95bd5c6622a8d795636445e4a2d85893da12c25a31f30d1af18dca63c28039d634418e81ee09f479007067a110eb0906d714d609c91a4b94daeea88dd6656b33cede238ae250a275398858c481ab0c48aa4b87d0e06b763dadce69c97d56649b25867b0068d79b759d2368f65290f95350efd701544e54fefea10eea65243b49bba0cc4dd08a6ec12feb154d2acdeb56bf509d6385953bb56076bb8ba2bb0ce1cb5c93312d5e688cac3b18375e62b954a0b6475e76ac6724b5c17e20c2f308dae8b753c9dac5f7349c768d3318a33ba2fb769675027b25836086771511faaca2bc11a3e94dae543a95da1cd524718da67a5d1543b5927c71aeda8eae3fbe66567a3c77ba91e9aeeead3c7920f2af2611c82920f25d9b252b13c1b3d9c0f7a361f17d046dfc99b0d87703e9682b8338bdb9897c50d7784b8db4eec6e36d43e440a61aeaf8fa57e4d1fdab9aae3e4a85d4fda25ad8e91ec362a75439b25afda7421d6f4bb6ae30586d197dc362fcaae804658d2edc7aeac73724c5e530244e73553578dc46c70ecd298c4b13c94f08cddce1ae966f74343db93648be06caadcc46c7850fe59c23ffc731f49471da52b204b44c7a787d59d535620ab3b5d2851e1183bc2f280b6e76d2cb6989a9cf38619109a206b23fdeaa32954b93742b77b9ae073c31b266e5f93d3c68a6e488d704bd345e2f0cf9bf250d2ae1aaccdf962fd3c34dd39b5a3fe69b55a31e3316b577ba7e9b33a9bf2a12d1b1d6b8556158b333a999f5e6a15472d8f91060f470ca3dff24f9ac06f9a4e2fff4e36555caacc67e5fb6d26a6c1327bd8f7e524a36299cdaeafaaeb88ecc086609f378c7f9ed3361667b05c6c4fbf58de9f36eca6c192fac734748cc29ea08dc6e2ae1ed27a23ab373c37319b2a46db3d69532ba0fcf3789955c321dc9d472d29c241e79f6b8f600f0e3ad087601f4b14e400977b10b09ccee96962a1aaa333eb17d03b5a3174fb5de3f098057dda10c8ea4aab33135201b51938c005aa4418c640f39f7509073e20eb920df08f25c230224314d900fffc00b01d18ff2cd900ff7cda251c28c2402f028ba00efc6389348c810e5439e8291b4bddd0d61aa6b6d4d08925a3942349d3b24a2bc7bc76cdb64c8ff77bbc618c82e412434712f87086191c1b33d5a73d6c79cd87281a31c2083b8e383b6491a63f84bb27cb63c8f25092021a790ced2841a4a11363187d9d0e783a3d1287836c1136e243304c47267158c8da90ae6ccc248e8dc598868e914e073ccb32bb7d1d49368e240e8f99cbf5af567465431aa3485ab16cb8a23e38bad96eb3e4daba191dba45502965cfacb81d8d49b9599699a469a6e1438961f46d2c6653a55d373cb75966365d88306e7c6e7abe106bfa95abb2247196a4eda411dd24edd1662c5eaa7135b2cc244e844596a2db2c43b73f042cdce684cccbc921dadd2c07e638404b7ee74a6ea95f555866126787cc8712d3d091310c3a05cbecf200a55d47edea6de3e189e5018925cfaa9a8cf559a911998e4cbebf432671688fa4e9d3998fcf143db7fb86110ad9e5aa0e998e1efea26a656392a623dd6e6372655536a4d27e947feed9707557ab1853e796b8251da3ae8b71b3dabf5975f4e8d8019d0f63143a6acc207c692cd6481dd030567124694c08dfd0e6a7f274b1161b762e36a4297b578c50c665b1ce46540eb0906dad3cc2d8e70cd660e990f5cb48bf7afa155b3ce10109cac71a0e184dbbd2fec05703731c8059dcb973377d33f4e1861294d387aba9706ce7b673dd0fd661ce71298ed3542a6ddb581dcc290ccc631e298af580dfc5e5e5af076f7f70d7ee5dab9d7c7f71d6eeb272db238843dbb67f524ec9e2cee2de594e76363a1be53dfa08e6d0f2ee31a7a58d39cca5fcc966e9467663e486c7bb76ae7aefaab6b16665fde3d56a75956a65431f545cd556579dab2bab0ab9b76e70a869f63197e08e964bfba3459eab43a66687ccfbf2cdd25b10e6f2f482bab461054194cb73da454a97ed9acb76d9995c5ce486729977b13fcaa5de86d3861faacecfd42114f5e97294cb5dbe22e35d7e76f252013bb795fa0feeaaa7b8abce5d355557d9d8aed5bbcaf2d8761eacb35d0ad869b12db533edf03c1b2d6dd7a432673da725884386f51cb992890f60b1ae9dfa7025d03dd99d81f8a7e648d9faac21ddde5a0e98b3ce9275336995fbc7de7f7497efb6edc776d6656abcaccbea43f71fdce53bab0a02952e401c36341b37173235de8d6b6dffa17d7eb3aa20d096d6df34ce86415cd6e9594ec39dcb9291a1d705e6a8181735d4e1d2b76ae8c3a53076474fbbfa3b643b8cb48ba5e5dc77f4f4ebc5867c5ffef3f96ebeecc8017d7918a790ddfe0e1e2215eb5c6dd9a63572adc66bb3c4ba91f52ba42c6ba32febc6c84d8fcdd24dec86e7c6e746e846c9cdd04dd10d13ac5718ab38a24350ba7d06c16d716d966caa6c0f5966bc751057be59ffe4047548219b2659db6639bab4b3cc246beb3a9619cb36cbac5f9a5dc23f6f692d4fbb240eff586ea9e3919f3c1cf1f064561d27ed62cd6bac879aa6e91cf54beb346d49d2e81ce938d131d231d271a27374d231d239b23256b53c4c50cad3af905b32d2af30426114a3b27ea118e87d1da37ea990bca0afaceaa5f2e5a05ae765a0ca49d0c6bcf23b643bbea347fbf9e9a79bfac5fd74e29f6ab3d438f4b97a132fad73d6793516b0c1cdda54b101d52c8b65a1b2f9d99a96f2d098a4018d21f198c9d58ad28fc6a4d46232529ba558d34a364b3320263755ee887b7234b51fcb21f9542e0a11e86f68b38474234b9a72359ba56bb3d4318a6c8c8768d258bf5a5c92b456662d0f97745bc7885b0ab7edddb6b5f7504a791bb3b27ec92ec6a8b432cb6363f236d62ff9d9f3b3312b7b4c47c749e5aab48b5b8a01a976b55e5e562ba52e3421a2c80349fd97d4ea159df04094cb0234ab45f8c839c90e0ea84556e72356478e7c45b43ae2884d627760abf3ac765dad455828091e200318c042d73162713987e42f36ec924c71c472492a23a93cab51d2fc47fee4002d0a44d46026c40d6a2ba846180bc916546de1689d3b67c3d612d961fcf325fc63838079c1ce6d7de7d29a819d6bdfed5c4b573a64fd3ad916f7ee729d6d7196ab226d176b9711e84d2cc5049d11b439c109661194e726b5259b9c6fe0a3893c0112306ef21d988f9f1e7c83f34f01b2a0820cc637f80e8c6f00732768707439feb68aa35b39ae94120cc29a8e9176c56b6f8aaeaa86ae566db1beb095b83fba735f11894977ce7844ef92618474e7a38c12614188dc2d2c12452a712398a393b85d086475b9eb1869974e0f1674be7b18a190fde8de4cee8fee3ab24e89db599d1e2657abcde47253a061844246d4837f8830514b07063a0f11c640d6c7b6a482291861c4512c06e38e491ad9b173d0c39e41c1483356baad34058d43e4f5f1d33d4aad2869642c9d499a3ec704ca40b73156ed22af68ce396367933a630730be41e51fa2221cc13e062db704aa719bc6711ab769600f5089680837c0414f4c0818ff586b7996f04f0dcad188139d102579a20538e801135188383b457041092d08c24c0a1896b8e10635c23e29a594725a1dfc98afd4568e95cf4f1b2fc7d498b76aab7beb2d1c316f3de6ad7f2c56d0d086757a4b2fe5e79c73d2cb3a15106930a8fdfcd01e235823823b78de4fdd60336ac877c63f0679686d070ec63fb3dbf219a2cc0065caf02ac32fc3656478cba30c7fa152d51956760624550580eba18d6d30ca12aab6217069f5e66ddb7078fddbb48f5b4257ab8ac3eb129cf16f1e617ac57c2b00839f660295fa152fdf950597402aed6ad463feda5e801b23e20c9637f8905e9a47ee2ecd0daf36fc7d71c36fc3d57d71c3656c48ef8b1bfee2850d9a47d006cb959191f959e856880dee8383e2f569c9d8258ce4368e4e2012958f7c5517c052172044aca1815e1a1e76482a039d91a83a5615bc48ac8e241d537428a98086364b34a624a7a04856c8ea43ba3bf33e65a9b7c1061d1bc077a6237a8f20b1011f615b482c114e626d966c6b87863150cb06df95bd810c8a60dcc41043b01d18fbd0304e21ab395de68771f1b06f001e6300fe315025e241c985f1d0c63a4a81aa069ba93f747765bb584f2969f73431506d988e0cbcb5abb593f19da94286d01b63cd00de091161c47808ded026c6c3ee726cc9d2c56e18c45dc23fab33d0ca0a69ad1e61446278602d9633d06d6bf56a7524cddc85651a3b640ca357ccdcf70761c0e25a934b4a47d234ad2a4bae1fef8b33ad6a7401a15002bc036bb878b7aa7cafb8027848633732997ac303ee90bd78f1b0616cb462e62e4e806a5b3304b037373217f52626039a3a5f1c1eb9258beaab150b14da220867018221ce58c97878dae2917178687150a95fa8f7c1272012781467a8fe87ddb5b179b8ba37378f8da3e3e6f51869f8486218fdd75b8e70ce2d451fa04a24c60d9020c11848a8a5b0c414d8d7265e5d88234d288205e19500c640313c3006b244a97f1c9b258bea395d001ea3cbc391c4d986601a79ad4ad3c86b57b48f24a6a1511161c8875b0baebc8c23ee4a05571ea60aa60937125cf96ac3ee1a952b2f63c315169a94fe4caaaa21c51af9943caa6a4bed925fd5ed03b146fefb4013833a7c350bf2b0c1806c43773b3d833bac09b4c1bd743b97ab36a8ad698518200c3c4bc088b0cf838891050c6044d50667d5d6f7785d0071bbb9cd1088eb6ddd2388a36adab669da4b575f6b650af37da7ab5cae6af90f79ed15a599b4cb0ac4e56ccbbbd6d939f34f639debce6d9b6771747ff9047358bd5b1d8625cf5ab1ac2a0a7a697facded91fa84b4eb27c43d54b3bdbc56253973694d131557751a934950d8b6c26952aa59a27953d3da5aa2795067ea93a6f523dd214d32153c7b41dd480b8200349693b56ca3b5759e465e320598fe00e9695a62bc1bf68f607f80d7c799cdaec2eefd51867cc58c3fae9f4f0e5b146b21ecafc45abdfb64f16ebe03d2fce589d6be16c38c4745b6ce8c3e5beba4b877a8c335cdef2d82ff9558ded6ab12191bf7c75971a63cdca86de5f64ce0ac349a60e91775eda1f33477de39873b2fc636d873c070457837016dbc1ee04b8276d8c35e1901bbebcb343644d38efcb6501c15a9f82a957d5784d955e02d410c87df94c0d81b82ff534aacd924d959b18df7aee33ce90e7fef2efa5da547102add7a997d2720db7a1abbdbc7cc619dc5f5e369e5b6bbc34e6fd3610e56abcf1b0c1a2a491f453b340b6a16b4fffbdbb1f8db5be2374ce68cc67a00f1b74109a80b10dce600f22b18a1238c1083663e70ea0869d076e5f460d8f53c3ee55438d0a1c6aa845b9a92108e5f66d6a0852b9fd1bb825300cb72f801835b4e186dc9210aea961ca861a6a68030d358c5274e0e688db77d5196aa845b9a18d6954dcd0c6b60fdcd0c684303fc6b6f876936ea29b60e186373d51bc40938f30b6416d492b44b33d3e2a603ceb61805892241807d913893d0674f351018b306e52234c3e71ae411d8269508760180f47eda2a20b71e5c604db2d67435727351b06715397456eeae7a7c58d3d2062820484a5d89c53090832a57324759ce818ddf4c4802a40872cda968dbe9a4c3b8b56bbb3ae5dde6ea5ea56ab6ea5ea8e749ce83cb14bf8c79337823b8a989b65196251d2012aef62797892d2a142449a3e08964c20fbe9b99ad2116a4cf9a425df923265a90c4cc552b01a4bc16c8fa471a15daafb97aa6c7deec64324e30d399624eab1bed555eaabaaaa61ea0dd6589d2312ba2e6eec0151ec6e56f290ba96aa4c672773cc649145169ff587ce217fb4b86f8ff707be9cc5b1d950b3dde76f8eec860491b919d8b91690e73be796055d9d35e7e4780cf150c2639604aafa80ecf8c0806a3fe4e3e52930a0de6d966e8cf04d6ae1e8e657aa33d8752e5d8caba2aadcd217647757dd6599e5906f27f1b6511bf5600910702cf4e948ea2c91f6d141c630fe69f53803599e210e00e31f2b6318510f9ff0a607e8e746a673a4e3a4074c946e24c28d3d60f2733f366dda4ce6733919a54268b3e4d939270f4f7840da5e409fb03829255787681d9346495394e46c49fac81e298b473d2529cafc7515f54c4aa93425c968024d7296a2d20f50d0ecca735065a0ca711c27e79cddb71aafb7d4c9eefcaa06e1ee26e34e1bdeb8f2713ea72798a3481659647174a50522e36a524a1ddc65dc69c3b93d4702917135f609aa9fcf19e820f701dadae13eee837dce41b688cd528c560cd91e84a1883b2f9940e365a03390dd219334dc072813689434619ca2c7d53be6a54d15511d52744ca1991cf7db734e2520f440892b925886a4b4e10ba8f69065c6326b57c7c3326398cd12b7a4c9b8b386dd52d751ba5a9deb68b7a25fb96eb324a38b7192d6dd256818a13042d281a213258a249d2b749274a45831d39902c536432071cad53edfd7e9d121eb57d4314547d6af903b106f07b11c51ca0d6d965871c60f6931202f8740ba51ca8c28e5e84928a95c1e90fa48ca7f9b1154fb7cf7635a1eb8a5c855d9be4097a49433295cd95d9ffa53ac7f3af5c893cf69d63f0df5a9e8f6acdef4dcdcc4248dcd528cd21b7bc004041de50709e96adc7c22e3362024710d6a84310dec1334b4311e90341e33490314f4f323e413e433131af2f109a23cde1431b81ffb743f404488ecc89894c918b7c42d75b1fb28c2403eb608518fd6143affd8a09ed24a3e3da5a704cd299ba53539e8fc22adc93f3f2f42346d8f1729e263ad4cd23468634a68bc96894a8451a0032833a84468980263a17ff34646935c4ab915b54b3641228d8ae69cb36dce09d43263b61204ea048d4e60220a15b8f033ab1fd88131923350fdc00eb8c30ecc038ce47c645639e8e73a463cfb0eac77e8c149ce40960891b43df888d60e3fdcf9e744829ee47c446b9e93f80eac07233927f93c27b14488a6ed7104c9ce9c531e49a423474757d334242c4fdb983dc21eb90f9e9d8fb045f8e7882d42c4d91e458092209149b32aa7489abe4ce231933845f8e745887af08f6dedd092ad1e3c3b03bd0807d996b43d9004854b62920a8c67f721f3c40cd68102f018c182684182f1cc4e1f49235b9060532697a098b2db05e03182ed90c51aa11a846b0830fee91f106189113006ba4661346b793c2ec1103e8811f9a6fc8f69adccc6b6f783687185182051838861095418c1f887a89b441d373f2f47b4ddab4a3f548c705b11e80feddf0f30c584c676c9faa3935f9bb48dc11a29269493d766c9a60ae7d5d6b496c7c6a2503b7b866e943b647106f398b5e4d9e751e2481f4d4a99e683962436831a615f775fb77f1393380ce493e4483e7f0489ef08f1cc1221d26c0f9ef1cf7996c48920f19da176cd2224aaa6699aa6513ec2f274ec7cc4b6b473128f12a7a5d9d60ef7c1479c93b0458a1cf122b6a53dc2f8c8236cdba4d0343aa2cea323354a9abeb68469349342763e7e807dec8c72fb1c645bda3fc040b6b5d9196526499a96665b3e5ab0600405c63ff7810523213ce81c6489f830821d2801cb696662464962a54562676bfea635ad0e3630cd09d45a4d8a7482c6a04e2519d4b94141c3a91483f5212ab10c6a84710c6a84c1a0484ab9b1264b5ef99ba21b26ed1a8a352d37202ab70fd0f91dac4fdbd2623c5a6cceb9d9398deeb6ddca94cec5ecf4dca814630d90a8743110956eb8fd8777eeb3fe6dfa22a8e3fddb11d4a64a9c316f86be8ef26c475828ba3c665c121ad2d8015ad286ad1c7c5bfe9d53ecd329cfea2cb536ac7f138b336472a925d784a22b9ed0e00b3300821498e9763c1127c21a867eba5c82355297a00edf95d609e0b67648e2acc47d309333d17da21cb15a949fa0ca423e41498eb4a39fa328b7df3e67a1f7e099f61e2ce4336566b52549d33f49965ef988cf73e4d7260de4c1c76a3e49540e3a33a90c24743e52f9e7ac44659f3351e5238fe0b43af0b090cc6a32d593beea89cfed4bb035df837f36b035ed0e3c9bd9f76024561b92342a28e8598933d1434da86a4d244d931d228c87832c079d812c27b90a0aca499c993cd49aa0ae030ffb9c8f20a945822a11a2244149ce4704cd848490ccde8385ce48ce470859229c24681624932df1826f809790052d717e414bbbac61fc33840160fc7359c318e85ad5818708f321610c7416aa457c2a11a2239608cf100780b1cf650ce32367246c0b4644c630f6796bd622443df808db9ae7231e612cf422ad695b3b20710e7a0f3e02094b84a807039d8fb044f8c819e844d8e7fcf31c0954371f49d3aa1fd020310c37033b77498b8708e3a0138946b00db0d037000b371f1f0e3a0b1da911c62f803112bb152d515bd36e433cb39ca44698b604ba0da954098834f30388302628f3626974351220e644d77c4bad4074cda36a0f44b563525742d5d534f3ac44e524aa8c7a981a7646c2ae887055391b6bd7762ea5049d361693884a97c63a1ba39bd3374549d0983c8b5d508930094470051aac60c6829f25aed5be403f1eaabce4ec82ca2d480d71ca05944f637146ad4fa8040c54b7c11e854cd18c000100f313003030140c8784e22199542a6989413f14800c93ac5e7c4c17a7490c53c8186308000000000000000008906c0040c8b2a3ce812d9d96f4b2e3ac2fc30508e6006600f1870a7f4524ce961329c694aec06441751e77781d39cb57af968e7eaaed93be212e577ef8ce34e6562d22e4724029eb82ea42b85e3fffa5a4e3058d9702480aef3980f29571ffe691b36c19d09ee52259a1ce52d7851cda86c3c1ba348599c7c9c50c28a7fa99ebd83f934bbd345e0fce5907754c19fcbc6635a6b40a3de49e21011dc6607a30ef5b30da3c4a24d0719c8714828ca88a317593b738f8080a8876aa7a34914719a4e24e85c55b83bac8fbdb6616fb5657a661be2e8a418305e8b292c0a25b2da0b268c45514d824bc382a03893bb4c1086c87ca21c2227dcd929f7e1e848730fa8bfc11fa083a666521fd6543ce22a7d1e87f44519a37275541738ef0b782ca6acac3ff55ae4fe39f87b164638448a6126e782e6a1ddeeb338c0486cc611973b103a6c4a48ca9d850a5f1fac4fd0acfe22f4d05f1b8fce1114e17fc8a7e57431e04932b11c7852c920fc7f7a9d861b1156f92bb163097761831add1450850710ea90cfc24b214f1bbef98767b8aef0a034d3b341212752973f6e700dd954aaed94b75cff26c597b4839d6015f99533158fce8c377002654e12a1ae31ef14b222c378937b9399e7b315e5a0560abe03e2ba3ca10f1f54462058aa34746778c980e6a4bd44d1d57f0e8c7854a3d205876b2014756fb07d62f95673e0269299862b8d25b8e25d767eb3c2877a2963b03ac6d459f81428b783b2b33f2054e4f3e8e75d29cda6ead9f43cce411e4114df92798c116820779a97010c9cc4e5f102a809f60ff1e5ce4818ed9698aa6226e25caac16449007fa2b295024bf2abca8e0ffdd78e3e7ee5d3a0796d4b31d4de12625a97eecaf3423d49df12c97a4443dc396f4242aa45405ec1dc76a30b086d2f6c2d1d491ed27a5006b2b885915255535a955f7be4aa49118f63073d1a8b550868acf3996537d07b17a2130d483c1c0f28ca230cc47c065576b6cab06bccc08113e00ff42b1da0f875728fff342e2e2704f74613f0b97f510a70d25499a77f6f850b5995ec569357a7e83f4ac8a7e6a62093413a06eb8999fe6feeb368df91fcc76b00e76c9572c1e4ef4d3fa89b194a18fd637dde2651735345eb388a987ae8b2cb65c045fe473754fba915628b1656a8d38a484588c9691e9483b07ca496a9e0d5a6ea532c58a2f5f33cae70ce42dd3c0237ba1ba699b13dddd9079d98206d0a6b75380e048f80ac498fc60e4a8abfe2a8c02efb914b68c9b4eaf60350f8a757a8b9e3c01be32888f0424792a72907db6ce0a240b062d41aa3fac66bd27a7f5a7cf46a67023d1df70f07936d1fa7fdaf2f93ec39622d4f5396639570230536d9fc525c499101e80ba33a2dc591ff6fddfc32f76fc72a27041d28719d1d14501ed335b7f17dafc4dad9c280b28c5e14e9a25f6b7aa3600c0a3dc4a0dd68f80cd0540b7b9e5d2468bf06c5ed12ccdb4c95433d9ae1d8f63863309d338a4e5115f623ae253dffd48df5987e2257bb2e9460982f508cd249837fd70fd3d5344b691de42ad3b3a2cb08746b4c031cf3015cfe673542b8feca4eb0ac529384bd967559dbac1ae9f3881f97655c96997993a9aaed4109bd086beb2b0ece04ff98be5b037fe2871247ca3bcdb23b875a0b74c2461a2ec955bc94186ccafb1841e5f159902a5789602177bb313e6d49b1f924ffebf0b8dbd279ff21790c375b6bd464f313ed8600a84840dfc8d9be0e414e5186f43e236739d6090cdd71b06138d55ac78073e41fa60531cba2c6f8df52fdbb8a2d38c348ece352f543f048ed0a783ca2053e578f8e71b00cba43744971d410eab33345e57d10ea4f3e906fe27075dce27c77849baee5b0ef5b6d861297c0262476250db1a736ac9758e96acc5fbd739afc2bc879d6a4c53928323a8c818856e4938cd2454ab789c1206626d0de1f346eed57ca8423cfc325cd54679c0f8856efbc9bb0fdc00cef0d7fc933c4a9780ada1e3f004f4d45b7bf520784218d91a15c404d6cf772b579af79eb91b8ecfb6f6afd4bed6c9987281dd8d37a11905109a23274ee85b2a9cdec238bc5885a74512f2245027c5941bd9039110a556049bc9a9534cd3d4475f9c6905cb8e6e97ce8c2d2d323633760e50c3dcfeb0df30e9caeee40ac8d325d9ed7f525cdee220522d0840aa8ba673cbf0f9f0272d873f69fe6b6d9647b2461961740960bb2b61bb50ab02f3d8871294d6cbd84bfaa7a3e616b23093faa16d1ee689b11035974812172afbc6765c7f9496825203295092c6de5cf53f2e9d082d138f0f7f3995381e0bcf89bd5aa986b5d9161b4032dbcf0f142c51a84283a88d8bec47bd4c734ba55b09a13dc7b7a330d5f0d560a1a63420b3687dac6f26508dce300713ac000b1458ac742b7f98771b8a86003ddf3936adca4375218b51a9b9f70146688e73619b679b9c34f25febc0384d109c4ae9f3ed175e28703151d0d526a5e9a7002839b9ba48c37635b6294dfa62befa88c36cb173c11a6b1d25e7c0d60b1d19ffafab397520660eda42af2f6230676db71dedf85e427b7dc8025c5c68dc26dd1e96802b7e8ccc615fd7c489ce1ef6e08d7cee810d89f9738367072e640aa8d7944f51dbf00979e1ac9533aad0747bb88d6a3eb47d0bb4a28dc8725aae5fc77a70485e070196a30138a543094381dd46fdfb337757afd5722adb6299c54a67ae22b80c934c93d851ec5143e23fa3771cc124b43749a448fb31d59040e4b001d6b6de21f50e2d5690065914806ef13c7efd901362e40aa672ea08250082751351c427aeac05e6675746809ce344995747a0692f7e22e991bdbfe693ea921ba5ff9f89a719e8a783169c5010f900eadc473a291ff2289e9fe604bf3ae8ef3541aa2e09e5231b80d6abc96b2ff335ad6160d335832f192fd1891e80cce471ad62ae5344da540dadd6f43a4d53881ada5f720afab888743402f48a9f22d2d658a38c42e7aa0f86aabf4f3d692222d1dacef45ae182d2dc87ca60553fa4d9696e4856b2ddcbd1ea3404c3255f83f57eb90a7f8e50f6cb47bf864394c4fe8ba96f00f72bf21eb424ba0125115e4a6604f99da663b458523705c0e4f058476524a095e706ae699c82e1b82fdf4f7196a801d720eeb9654082ca1f52f1908b2e188a161adaa73402df5aff1cf820234e22c251925bafc5c6f86193adf10f90c3559bf4e2f9beff7a7fa615c262fda0b8abf2c4a2f221e583dd2853b73185efba3f3f453c16992ed66b6041bf9cc8acf8511a523461753a3ce70f4a0333e27e87691752484ae98aef0e4fbd0fed219936bf03846da7f82ba581ce0599e5a097f443cb009563410a957b1975e3e23bace715d0d39d09f90b41cad6b2e9fbaef3fcd80451ea24be909739897cf288b860d3e448f8eb26fcccdf8d28248d72bcdcf72bed7adb28058691701e4d296e2c9b6e070facf9c19294ccd036dc5675dbc1f1c2d6ae6917f328e2295e6647b7c38cb50e8a617ae129bd544ebcecae84ea589b9b53d9a7dd4f3b281d14ef271dd2f13fc9d38c456eae8e5022878331c3ce9a795dcb3c8ada7991839e567261b20a0f6eb294eb35ae1b37beda0970fc4bbfa5b4d751a7874257a09aa85531915fb08c790d961a7313e7999c59ca78bf71a0473de54ef1ef25f2bdc23b7fdbe8df827914dadbe1eeeb2ba9c3629237eb1392475bc45f3204dc5355e5b87c21d76f51849d0aa285dbc34410ef0b651ee1819c98398da5b358fdde5f729b084f7b722da9c8525e1450edd3f733449234550cfab2a40886198fe7504705ffea9c6ad8e577fbbdd754a337a5822265fa918ecd8d8316b9af7dccf25989f76afd27207580616fd1a28fd0112893e8995533b42cd52c9c53f38c45e0f92eb4ca43b7bf242fd1980c7a6daa20c8fd9439c0f2432ab3992ca170c1cfbebbfbf5cde38ead814c9b25a1b9a7ebebf821a46fd7343f776af566bed2183cb5c49eb22317bc491a6e782c3f108a72c54ac94e56bbb04a2a812a50df1343c706e29ce2b123d5f23c338422d71e800609de7d1c6abc209293e6357720f1826995c85b213defdf6254e75fbd25b20c4067e5d22f3dd83ab594247197371461b03bdac19cb1a46643bc1f815b925a10b096214743173ddbd05b1dafade7b8fc04108d4d1b027c667e88ff6734599c7b38070c4cb74b156d8a855e9a136596663db5deaa2df774966eececf36c1d744d61954abe371dcf323e40b7bed31088d7f80db738f9df5d2288ee0006fcf8f266a150044663ee07c6db2c72abdf93268824ec73522435348a52893cfb7ef562cab219a45832e08e136ce54e60779e5a9f5d0f9479e5bbb576e60a4bf5cc66a7684a2ff486157be0b92ac58658ace1cc05e1b48962ee05c68ac4b65d24b269d1d8330e3a137a710831d42961f84c30ae376659876599da552ec8e33e59754c04ff32e57436b9e848ad9ae399125b5392fb1cb881c21be339622dd730041d5b5176599aabe82abe66d25f49185fc253b95636af204e683f7b916e317854af07ba792d00f59e2f303138529e6eb5fadc2eb0fac3b90510909a91b65077f579e14fc05276f06586ae87f49466b096d794be6ad48eae45333164c91162e12c3d25e87bcde0fa9264e0ae8dc0dfcd43dad1307cc602f66abd40e324291761f51a7486e4e4bd75d79f9d6e9351e0f4176b752c0b732de39ce588dd31a621ee8afa3333ab91f0f44ba1d9fe1469c8c0b5944955a0ba2849755ab6b291f0341e9724f6088d3e6ac0d42d16fa3ae19cc318b09aea73bd555dde7aa34e619e1619539442ae3369207088f5a019d6a2e821c4aec80c753697eb0ffba096d657384a6bfdb8d29290a25199cbe5297e08fb4a5e7cfc42783a08ef8bee38786bcec0d4ad11b026053fe06e7d214c7410f1bc7e6c389d9387fc37e2428ace2235114805225615ee6f17763d470c5a183bd68c9ba5e1b6dabc7b47d8293f4295c50ad8ada026b969ce2666ff7101ed0815be9b0f72ac76d85bd69fbe1bb74459939fb0ee2fa80ca3244dc4f3cfa4be2b0533e7aff5674513212a1428420a456c01da017df95bade20c10da1e248dba3fe1c6e783cb2b87a1065a7e047048d7022fda1545f0e4543c35373d217a38f1c325eeea543a50c3c2c5e5081748ff896e6dbb06061277ea63ad4637015d8da4556ffdca82f693433e059cca70b8d8014348b3b63a3422ea3cf439e84ad34a746eb255d5d3364b95554840a04c4060437310da2b2480daa0cceef2cdbbfc8f93330965f22382ebcf2d0fe38a02059ec51237e420d773e563131d22d06989715451f770cd990736edf51a282df7553accf54c3cd8118968ffc00afcb1c39d580cc9c3d8ad723377132cca661e26d830459d48921612ec41b297898f917ea24946fcf012dad5c733e2dd60d6e9e77ed257277d0b460f64820d1e223ff74a4f568a3529b2030e9617137dcc221ddd023c7eaa92a380eadd7dd15863d712999459324f1c9aee1ba1d0966cdc36ba133f1fd7378e9385a303c1ffe47718630dbaf41ebc82ca73ae7f7c5ee7aa2b040d8cca0035da17d9cd35135a25446ae4268221ab5fb6dfe7e436ca8cd593fc1524724f4246ceed07d6ddbaae591de6a2a4ad452d43e5d2456f53d5c6ad370b3fc6d802190c887aca85f69a0a7a4c4b3af5226071c0b44729ee848290ddbc5e798d2aae7c18a07a83299eb1e921c1c738587f9f9043c106c16a87c457c1efd461739829cf723044e06ba58163ef9ab00459b99d338f06cd97ac962399a3faf4b5d082ee60cce750500cf31ca413a36df1d34afcf29302957280c1ac4e47278f8ef6ee218ca0f68c16e3a7a8a1971663c9f8b9a8cfc07fea813512f1e6f83ce7d08d3bdb77b87b73c4e2fd740fa003d9df081e207bd96fc5b86ec2fe7517078528e3e9c1d51d59038469e7a395564016a465ce6cdb80068b2c256bfc0c7976512eae68cb61f38327cbb3f127b29f0a7d81faabaee9818a63ff5860df046eb6557f7788040521ecc0960e4bce20fa09698460baaec877896212bb718e60c310426708c0422ca1d424f3b1ede4f82e4c6a5887b8dcc0d910627ae09866bc0969d8b668dd608ec883c6d566bde210173b63798679d82badb451fff360b37816f608f404fa1fe41bac76b8d5422300122adbcafa67f87f6cb974bd62491fb8e4fc00d670bed73057812ce1f12aedad6bad18c03df697138be95934a16182c37c1f51b8a4495372ca27cacac0ccc710a729258c808642181b7993f22fe445185cf158375a2a19c73c2ddea3ef6d789e4dd7af18650d316c6ff88f0411822c5818696ec18983186249d66fed72e0e492d980f38f13b5e25f0d1b3adef5fe7bc6f434509fde585170499ef0861faced05572f89d8cc7b45989c3578773dde218cf91a39d6710dfde9bbedc1482e760a91a8f0fe3f3c806dfbfc6f81a859045d374bb0ac60077aa97a58cb499b7a7e600da6c08ee7850a8b9b76de761434d8709ab92c05360ca130772b206eb388cbc082ed160a8aba487628dc410116adfe626f179388229a623b3bbaeae9270b10b6b4328f154a08340fcc0275096bbcdf0d081c5f617228d18330f6693a04d68f8616949f85d2914f3f34fb7e81fc2fc192ad2722ad359e23447258bfe0c1158d8e28779c21414f6008e122237db6830b134498134d3d92bf52ded2b7b9becc88157c9db697fba1347a7af91331629871b0d8746acaa6119a135a1a5b9c807b97658851a298fad3a9680fce101e576dc134fc4fcafb2aac2baff3d41a5b22ddc477843721f4c2114e48c89aed60f60746d4d4f727c844448be068e619840627d688b5bf02ecaf37e12e47bf813d967b570220eaf80f9b932093c301b9c2904c17dbf9edb7dcd54c988ed02eb3ee96ee74e4ea36625992fc3358f9931c34f1785e67814ff448439789f78bb81fd161d044cdde09f6a7cc662e7ad1c6e1503d629452834d06184a478eafab26b5f95d1789d3779b974447bf53c53bc879cdac5991cd2c1e402493467c8cec06f7f9c79519daaaa3e5681d12e0626b1fd433f3f7b95bd2e29eb2a7f76ed182e7083e7d567e3810d1faaf10ad57aca562a55eb84912ffcaa909971a127b1e7e1a4769c4c7ae739672fd4f20931658b49dcd40be773db5eb429560648d84e674cc5773d61d2bd7876f4e3bb485d7980af49f3a4c17115397a393e1c941b4d80a147fac8465773f41364151828e499016b9f49d3b0e60d56f6bcbdca324f7d50a698c4c42d3aa7ea3f1c1e945569d6740b09f1a09d1c850f378bd41eceec29efabda28d9ef4ac2baf39a58071ea9c3ac29493b67d6566fe174030ae6509b641d74f8b6b543fbf8805658dbba8a9ce6d361c011f2f78a975b3565af9ac1e61370d776b81bdae2a6258d54e91dc73661261b97c846dc89c60de9fb74bd1aa3e5b61c7f1b35398355df4bdd97a84c60f1c6314e6b0f627598e2cefe03d793abe64466f6af950c8aa1562fa551270b4be9efa4ede9fc1f644e1f0fb8501df40bdee88f850c4ad0e51f13f1a5992ec5a4f1b5c809d089a782113594d506cee3b29f1e2a6021de677d45071700c81d2a76933b841e15e19beae41820e72a6af5e872b48fee6c4cbf26a0ceec4fab8d3241612361602658d34565e1d1a02e9a707e142cceb14e2e01209a3c65327104eeb2b5cd721dd7f0606109a435abbf06e767ca409a9d8b9e782aa5fe0ff33213e4e9ce802b8d385fcedf1bf81d11989c79e8015081d1ee2aa19cc047c2e68ac81a4b2cff3b8d067520318d9fc7866d9eb6e641abf2f23bbab04eee7e192fca01b5e0d121b32d2296a8e93b509cefce74e56905cfd222a3d4bbec2174a3ee021e6449c3a59204b4dbd05c8d6265a955cfa2f703d0905905e2f6007a0e325f6193b88c33053ca7e9987ccb92de60936bcb945cf0cf82e80bc5b5dc9632a754833743eb4d2da165b7270bc404096c6135e32035c6d16a1ff82907f4dbaae3c38c6b719a294bdc08ab1943fa7aed911bcf005f2d3ff4f0e063d53cd83f6b140965b3478ff5ba3babe8123acd65c07b60993820e13b7a3428255c269f69080da35a163252d8fa82f9c776fe00726264e3dd7f183e3cc765cecfb29a696270b5ca98490f16aa09442b98404bda2cd5cec88fae42a739e38b3c08785c1dbc832e19993da42a3300f2ee4a0a08f802be55c7708b6a5abaeb405f32285e964deacc5d319a8999ab01e9f6e61a951993810f1b8d48f00bf9b66973d21f42d5847b03313be30e7662d5be1e597a3983e557af5975477a5e99bdaf2c2cee9ef68e1c21b3fad4a993d76fa03ab75464301bb00002eaa5f5707366c1fbb9c52e20c560d112a8c6cb231f9bbe9271b8270ce2796506367a19e42583b6cb4925cec2ac2d31ce7be33c44a36df530a24b6a2b9fc2834010c517dad905548f38b441850f94a7ed0bdc9e9552c8d9853c30649e208fe7375d7bd4ae27f98eb3b3511cfb0e70cba329b12a4480ed24c1aad955b4a6bd3b4593879142a6908984d327f74f7cb06df2cb49359a9c0e0c4d57d744da330e5a2db7e3056a7e111061d638290252e687495c9be3c5acb6d193b3856d5fd56356c11a9187500e9a8baacf7284e83cb86d6f973a310f3e7319cb2f92ec5b079bd80a4968bdeb93fa252731141168ea2c651be59e87007ce6799e2431e9aa4d7ec958b49ae95b46fdc9c33d894bb965dc93fa2b6829390070c0594bdec7ead5f2b2caddf4e4e6496b780c6d30139fa37884b859571e58cbae26a3cc06a7bed15ee2b3cdffb1e86de821bed6f309c0e8d2b256e794c5a2275341727fd5c57ca573f8d0c89d98ca3c37241519d282b28eb2012a4093877a3f15a6b3e0eb0f6e0a92c4a5be65d5fe5990669c57fb1cd4bd104ad973a31ea005569c5390c399904eb6fc435a0d6b7e6ea8cdd95fc3f54e4e0ba63e0ccae4e1f51ce4c35ee552cb6769ee833dcbd965fa56a5c72e39e8be62f7b830cd38d72d8591db7cd1280c89471926167bd38310186300e15bb8893ea188cbd834c4ae8898cb20bf60fd300a2f76b9356cf4e1b69b70ab039ace7a98a67121f871cac68250c0a86db4f08aab8f2c6663f978148a52af7d1e7d56a09a7b4823e21371192188f47a81a3764d2574674883813c396974b1f6d0df4c7264c2633ed69cd7b2164f6dd8f885c503a1fa6b765750abc49ca8ca320a512eb84f48b5e5fb9d6c9509368c7b8538d8b7fe74202e4abcd38ea7f5aed4f3c6dae8c0ce76c23e04d5282d23803135368499b75b503be359c04d6326023730a913ee1cfc8987af6c86dd25b985a66657e3fe4b13bd3a7d66b982691e47a0a8d03cd80056bf6eab8b393ee1bca6fee58a95da4e1c137ebc6c0972aa2f4c9573d6212058d086830d966dc1f63658b882f121c05e6f277b78ee8f15318d3259e7e5139c023740325222200cc3c8c208b03fb5736f1dacc65abe8f849443872a92f249ae4ba4b8c3830d9d50994004f74a11766c74375531bb74e5de376c109fe4fd479fb90adebe29276cfd24d4a3ac675c91b0ac1a0b920a5ebad5ddd2e1d605bdf0a3e3db7046922ba9aeac86c52b156458dedea5a2a3b2907b3e23459adc85bf034e7fc7b9a658a75c35fe6b2b8bf39fabe7f7f276547067ae12a4bc81862d7409616f212b6bd117a8592951478f7d367a0a8f731dad701951d9caf9b98d59f0894d23c836971691ac743da8b0fe3d2c36e51c0e1cfeb8631fca55a1cdf6184755d0acf9a2d8b1e3246e92bbcf18c2d888fcffd0e09777939b513520cace7276a781c9933b08cf6f3c1cd7b7209c40cf0e75b52a2fd12322829ef27d563bab533c75ec4366def312ea6a0dba0240ea64d01de8b585cb6812e38a0dc205d0cb0696d62055a45c72db4a566359288b6c73fcf74544490461044b416644aa1644d74b037eb6f5ee8cc0ea190375ab0c630377d6afba083950298e45e5a99f080ac07610e4ea305db8020950dfa4633a8cd67bff1eab99f84ff65a90d772b8c8778ae9a25dcb92bcabec91cbd2663af56a14cd885383610a0aef1f51d51a15b081d3bbeb6b14a99ab46e75bbf05f9f9eeba5965fdf35bc3686bde74a53918c2c757f894532aee5ffb99c5b34e803858d2f539ddd0cd237650af83a125f65a2902de226384117e902e6127854a9b720d088bce20f3628cbae86b08ddfae08a73fbe92ba5f712f004aa58ae71d82b0804aa66158660a311166267aa7b89e652e1bc7e725f39a851fc960ed4680d930ddd2af7c86449088ac76de749ecfaf3c18d81c8c6711c5babc2126becf5f41231444a5b957700c516b44c324886bc1f156ec1703e5f8fab35d1e35c341cb7955db2b6957aaf8c0d8ca91952353f74a4eeba59f7ff6091d10bbd9bfc32366341fd5fe68bce2e55067a8ef9a629bcac1a480383740baba92345e3ca939a920f81d765a469340527c9abb24a4fd490bd2a0ef7bf16f46a10a4d1e9b138be128d8818e4200fd440ed797eaed81856fb1c4822fd8b1e1d8d4a99bfe4318060e551330d5ca43b54c347fbdd74222f08795cdc024587da0da1208f91e98c4fbf81dc2480d2730952aaffb11cd2b887fb4b8393b8750729d6f4a4d16708df423189bd4cee530b95f45f2a3eb524f2239b721b6b7f6d05a4c164f906696848f6fc87083d60f30a53e01d9829b8c5361b66fda9c424e124e0d0691b19345b907295ec9f047f3e4a63d8e715f15abae031cdc20c72cfb94b0dd5e3274a70620595403611b6ea79054ed7cc191175f4fb1d068f8beb7f06f82949c12175ee0b0fb2c3701d015f063f8bd49358eec8d141ff473fdad586a8f6692a3fae6893f258382c49d6f51a8d2b573db5ec4a0d1f73e3ebafd60cb376e773855bfcb23937ca5950343c1e19ed47f5fdf7244d7c7252c89be4ff6e6eecad0810d047309588a2a109986d1da6001aa43333829ba13b658216608f8f7db91426674ca1b25e11a5ec834b885d9b36811ade3ce8fe7aec3fe2aca6f8e66f24408f22892cc01463fb793740198394787c75f6f4f742a220c05df78febd2cec8e400e31c2a164086dfe424aeaf92a1fbf1838fd593b914d0fd46b1156a492550ca85bb3df08c934bd84ea0d50f307d974bced043f398d516d838f6f18e73bc274eb20aa0347a37d1da2716e1c28f46fb115ca0af57d964dc9027087fa52a43ad0b36cd793cc668d7997c19a9d23406f4d25d43d3f29679579e768fe3504d1b1e0d96523c83748891613023ef335411a944206b5fad478a892d51e0106f8fa4994155a8b77c03c7ae1b3d7c486b8367f54b2147c0dbfb5c9e0ab894eb36d0ac850c01dddc2d86b6d7ef0fdd8327dee1f380fbfe98e9fd5e2f688d81468177702c09c1210ba0e378d1ff094b1e20b547204a623849cf64686f91e8792731c0c80abd19cb7027be79bca06201560ab5df22e86b1743d5201e67e3044b140d9eb79fe815c94aa8ce5b3ccd2a564cd3cb429bf0d29b93aa975e7b4e568b92b0ea3e38f50221dd753f1b987b78b05bca2c851d7469d5f6698aa01780126536e38529fb28b44385f2855a340cab6fe9730aae4ed54a914337a5c9df2bdbbb6609e431ea59d5d2e946207fe38882c38c3e9d7d6313ab8bb2d351cc4d97121e667b6d40fe182e1d533d09b90a96944adfe0388847ac3dc2e688ac0221915a6002afd56912989236bd8019a384761edcccaf562832811003db3652c19d65490425c0e46279b8d5ac256a9be5a0d85f8dc3e5949f9062b8ef4fc649f7f6abdc6dd95abed7e4555ea39897d868c3e0a2fe2bcadec808e0a19182fe26c7fe43203a2c128e0b3bcf775d2aba0a02c19ad57bfed936840a0ae96cd284eaefdaa2e25a3cd0417b691ded86e4ede4b2308a4a6d0757bc8f24a69e002a1c36a471534368b4a7ef4a9e2356e0153a88d8ff401f22d758f18aa8b36e231fbf83c2ce6ba88d3b3018539911155ee1677d6aee28c01d65912e57d65bbb18162f0d948204a5256603239a97ca2cee6e7af641045d6ac0dc397144c0b1e13ca1d9d5c31c6ef843ee9944fef0cf789860522e5b84e3ac49e00ca853b5c9e521464d5597df22530c24b1cfe86bb5f53eb94f1161ef147ac915bd0ad54f2acefdddebf0c972ddfc8952f699b2bfd1e3359e3b29c79c73ff3756d075d51561bee3b6c29e03871160a3b3d631d46223cc236cd28396aca6dd24da35003c141ce3347551913aa952f17e65b149c95c311420c50c04296279283089c13b886332496abd6e70461f400ed122abb5a53bbeb424516c98a276973529e82b880ad75c4d93cd14115ca553ac59ef2414e527df374885e8989f8283d36a9a42e3c3ce62a511e132922905ffc6ae699cdd7a9c217bb1cacadd65bf555cea1734d8e7362b8a47d7aa78e9004089c4c381c35920e08fa9e69affef8422caccfb6d163e4d41082a65bedc788dbb29f63eaf823cf45d584aae62627beb6968d2848bed8fbae320437d4137f9ea4548be152e7e3f8627319ffc5a3606c446b49b3c486c34aa78de099f7c353b530fcd5acaed47b12c2a80f76075b711f2c71053ea154fb1f6de2db7bf946badd81b8af4358812fbfbe0f8458d4d39185456145b9f38994707577b8b4eff07e3a59b36692ba0856d9a7dad5870b4ca0e1fa7680a1602767bd4c4c57058950beb714553d36ff1841dd3efb86e455ed101003e1ab622e52cf2192f2f3a136d46e6e52eebc8b475568b7dcebe295d7e951ed117ec7705dbd611edda7ef6f3a08ff95ae3d87f10cd3dda31930bb9402e8e217bb614762360d11fdda75255a651029c09a634c6c2bf02e4cde91d8022e307b8198157b226fccaf8be28ad2a967cf7798deaa41a3e59f82fa7280c2667add2141600752f6d203ef24925c6747f51086f401b2bb4b1b4ade721f65a36b8adc6e13ecbfa792c566d9e5403eeccbad3ee49e5b4044a5b354739a8562c974160a3c3687884087050fbf476ce280965b6a48aa60445200945385df5d4e639f81f05469104476572f3117184e9f368be2a88894484732c19a749b01369e45e20f4176022361c412e7a9404be22028636bd20a81feb00eddf0aa756ec875e7b4ea6fc68d0962e5d10fd1428305e6cf42323081a1fb698b0879a002c2ea765583e3e59161c40660410ac62096734efc1c97884d368efed648be47f18d4348ab1221b5637339aa925d9d696f8206c54aa3d844b94b3447732d6402f150ab1ef415a6d0b1d0999530b4c111fe119f76ee76295f9b88481688f6522272874e8796855d91ed29d28485c18c0a16a9fe0810e0a1ad43e4d2d128fa3c3bbf45b1b9cd619b270195742a642ed36c429fa99a6dac2bc834d5c7ffcd5a4a5a91d18674c9e343b576980d04d985eebbb6ddea0b0acab1946e4060907e6c47f0c900a8af63a3fbbcda38172c9898d80c0f8df7e40f4ba33e04f5820333f354e074874bdd13d440984291f846ecea999c2912dc692d652e7723887a531fdc4efbd2b9eaf96ef66dd92887a897b4ab71c08992fcb119b7435cb948ef473613807f067d595774f0b58293aff6a341029c146b1973d47cc0c47c5025df6c5255c04dacdde73f9a5fdee8f1d7d1dd473bfc36285166888e5370d669779210904aef81c3cb5a236dd8b9f001c0f1ff4e93430af0fe1164d5abdac2bce509ac289de25781bcab6a33545a2facf9d41cdaba5cc1d18de5d2b95c7583fa6c9cf16d7f5fefc184f3fb66179c3f1b7acc6d53fa37233c2e4117116c35a41aa7ffa85a3860188c07aaaeb98d6d64cc799941385b674aef5e9cedcd503cea9acee6e1461f7cc062120bf6514696d3defbf4eb2ee233814f1645546b3a3ab4fa0932463584d5aa74e318ec7a36395117d69ce115f8508406004584744a3e9821e51aa0d612a4868906348e14d0a0b31e664b56248b893a233982c83e392a9462c5897f8566f2909bf5c9020017cd195316193939a771e3bcdefc8cb0eb0d007c5e204b4cc7f5828980867b4ab4f304c76c48566582489d01a73e04265c82d79e4c728985728103f673bc76f9760869271f75d1463dd19bd30de06c0a52637255ebe1ad2154f298b09d629bf3e726697bbd38ad3007a551364305c8b77c979bfd65b43e87d6f2663531c10ed0647b34a5dbbbbfb93d20937c0fe6d423992197b9fff0c9284ec5e8d6a5c3255c950f3234923bd056307a15a6fbef9b255c91a0895f910f842d1a3d113cead803c241a0c10e20c8efc08b782409efd1a6d32f6c97b5ff34da639fdbcc6188b245765d06f52092349ed4ed0320ef0fb4b5208d81118bd3cd15f50601a93bd917b500b60056242188199219fe10d91297578229f70d9ac4926f0c879c1375239173e80b0252fdb6986829fd049cb01dd3a12a0a1c49fd4146b77cfa05c378d47aa99de654a9a89840215896e12ea050016cce66d37a6c3eda31237602cc2d98b1d58720184977a8ebf4bd53f8beaca69d547d9b0fd9d9765b78be24049b3baa247439117a511beba612035eb8a49cab81bf7da91e4be9dd6bf5078bb4d6acbffa8355935de7bbe872144278fc0d82d0714b66cd99b9f083db8a9646af9d1cb8292a545fc3ff66c38b2c443e5065d220e8e6382f90c7b0f8d3070ed2ac465e511098999d849703cbcf019ba0ede5619509a93e8cb9ff0ec5db55f21415534ed88408b0a6c825042d666596d9342ada7e90d16ae41026b3180a9e248dc265d6b394ae70dcbe40e22c69f5439f18f59de9537a928732b467801dd4493897a8b99cfab63b135a7063e822c34b7baa28989926c4d32a9b5282b333825360a6cd37cd8b71d15939cdd8e964c6710069d044b112083418dd775468e4beaa41060d3dcfc78bbc636b1dbaa5de1dc2c4e1973bb26c97d48fa00c6fd96ee6891a1189eef8ed1de6b2ea42269e20f37c7ca3180786f3705512fa50d6628d98c6c119ce14ec2a91dc14baab358ff956ffee4ccda016dddb0b55e2761f4ca0c20b5c1e7e92079646a311fc85db9d928f1919f03ba200ff7229a26b2859d8d3b79274da1eba206688b751d9a69611cbb35b4ba75e9f1718a4e65ff2ab00f48f2a416ab81a4548dce95c39a09387af3c00a0254b7cde646ba147c9749d725f48ea799f134d80a6f16eba8f8f9c0c3cd08cb3563292792e90c292cef5169cc734d8fca41be46055bcc586538041c6927552df89c72de84f613f621551caf3ef7d5cb64bbbda73182ff36f8bc0d07f4527085e2d886819a320e179ea670612d13f0e1c4343f387d288653e49bae6bccf0d04403f68eaa19a3a20eca960a859b03be9ec153f6b375fba884169723716d11d5f81fc6e01df8bfa604e39323a4cae365e032086fbd2b3e64c8598d2873d3b2e5cd74dcab745e23c3e07fbb3a0cc7e5867915d04b2ce993498bfd2046174ef32a38b8ed608d7a693da65989a28f6170e30f78cca041fabea3ba637923e2bda37a679706112db658cc9e623f45a17b2ab71d0a109134d639e9ecaad836f44635313d60297bf4959f8fa78eb2179a3849c66a644c4381237af44200ac1b5e1919a3c67ef51c2e5df86fe880e51d9cdda92f07d5f2fe1cf840e68319eea9ef08b9c38b5a94b5a89711ba515088f7d898d3d265b05a171e2a084c5c11bd6a0f8a5a633ab42cfc1778d825dc9d96ad040b87d805a39df76875ce833faf2ff4c0b30ff123f610f17f18572fe389237b8cbc104ed405517a9f23a932cae36ccd0fc1cf071b2681e2ae6b207dfd09748abf8d2254806b1e086f3887d91fc864bd9821788a2f5b5d1b28653501c630257e95f75e1ea6327fdc7b76cb628bfba703f8f37e969f720053188c436c86efeab8a6d50e3d67ec4a15ae9251c3200a30472d8aa8db7de082f809b18d9fa54ec8ed6099d3e2d61a3c85f23b6ff110b31c60be4d844c8e62a86a70be87bfbf14064d5bb474cf4eb2c57458d8c441927383ef688e7f0ee01dd2de1b8e68f4aa772a6c65856e172fff45adcb31292b605d2b01e558753577179f7079da2e1d2048db156803af522f3a0d342d46c4bb6cff5828f8df47aef85085124e4a968ab5fe1ea9afed650b370c1753d058ce19a2a8d202c54a6153f9ca0174447a0ed6af3351dac2173a4208987a716884426c08aa0d108908b6a27875ce7748a73774d7306daee790f11746d325474106c5e3665dcfdd340cbebada84b7b35de0f026bde8af14d953b2ade954163730b0df3c7e4ddbe3093667c995c5847811b00a736e5764d1b5f6c0278ea952865c247ef76d146925cdafb69781824668bde8b6145ac04dc04f0344f776a0e0cce0918063e2e0ca459ccda40646b2a1a4a93219b6ed0e30ba8672cd351b08562cf92d693805d0efdebdff2fc78101e9dbc6eebb2a88590d1c1389b3d96b692790072df5895ee2639403bff46bf7da74e31afded299c04bf924320aff19198cce5f9932fbc990d0d504bcdb63a56d575a5af41510423343fdd50f42143b99a564c7d53da6de6866da3230e9db006570881f57dcffe2b51886e6961bea2c7fe651ca03ef4a4dfee64fe46d4f85924e954603460e4f7920e826d29279f0db3c1ccc0a97f697b765ec8bd917a7a55ab60c9033fda5df6d654ccf16db03634ea1870c257647f227ac4b7720096cd6c444c2039f4848f8a2f6e0eef2c10a72844d4b484a2f423e8665002bd95d82400bb127c27bc60418fe01fca4e464a14dfeefd59c9a92509e1f2d0d7a27c86d348db6b74cd59b99f68036c9a746ec3e08d9c34181aff29bac10e136235d3bd60709d54e230f508817c1a1f34577208784455d0814154b39e59b449d60b2df33e0b8524be44d8ce07a1064b497853e0233d79c1492b6e09e3026d04ee73d7c789d9150a9dcba317401e770dfb9ff8ea6a9d4109e10cb2efe50161fefb58029b1516ad2c897bafbcf936a31d35fb662f0c494d4fa932e97a36644fa8496b28fdac6b5dc06a17ccac23df34a1329f0a051039b02a02080d126761ce5a4e7d3a95f761376a236a056d46d1c3c40e0d46ad515ea14c6c1390b78b55600c60a01b51405fadf35b0d0a44acda65ce187b8046abb0f4c6892008cef78c25b941c3bbd3e86af153d7620d2bdc135d7039007765317a0d49803940c9e8b68f255cdb60c58db4050cb411611fea2e57abcf9edf081ccf3e62fa597ca58185c970c25094e886a88984b90ecd29a60191ba646101200c6f5ab5e3e125b95c0e58fb6aa18acf07157320a9f21674c10c206171a2a79b4ce27bbffc02e0454af17d0963f9515058bb4a612ab331d5aa56c1a127ec5eef20b5453269fbf53bc7aadaad27c47cfb147ebe6b15638e3fd3628eccbccce3ce728e97591349b95bf26d666fc8d2a46ec491204afa19ad8f5e1e5f493aa84b944b06bdfb5b5727520ee220add950135a082f46056facfc5db180d4e9b0e570c8071432dfc272253968a600716908ff4538e47aa9606bd451940983cff244cd9219b2c9bc477526d931e10fd91bac7e8b6735add60fbfe8d8c98f30f902ac88849a9d8b4e86abae689b8402e1541aa1de94bf34cdbe491845c11cdd26707f80ff73251acc44aa63eaacc6db5947125a0b42714efbc3e2ac983ad6355164c2cebf7c8db8d0288cf3e540274612796458910835bd40a5de7002e28a9980d80832eda05866f60c5f057c294282f3c11b267729843ba9a6360779704b491bc1603f9ac73481ed95e51234b8c18713b6b8992244f7834e8303278ea41b9ec0e84fc381c5a9e4050fb2c03e4960ac412e6207fe541e8898e5500e5b9a78f9dde2e327a0a9720295108e40a73e38c0158834d576ae5cf9ce8a49a77a1914cb37d3466cf914fd169d477d88b92803145971e82ff8cf891360c43148fbf90379ae4a60a9e19891a1d8d9f5a61b276b81326e21cd046442614428cc45e2879e8f22eb2ea965216a13dafbc876fd8f747fe03d22b90474216306ae50702cd09bb43107785fed20c45b825402497da69bfa243df8568bcd822f055a5924c510f7e7418b5fd1c258b95dd057b84a1b6267464e5fcd6d52196b61b7641e4176a39ac9d5ddb6e79fb6bcf36a3d0154b0e7b06ca090cc45d92ac6e9065579b7d54229ae10a4164193bff04c41b2708e261f1c0360061ab230cacaab9a76c9b07a9a8d2b603dc3f0abc68d4e3c8f78487dc8cbe6ee04592012279eca3524c20c379f3df949532b343e30b3ad16fd512dd65d2aea42eca507abf12982f04542188daf190100e61fa0b780fbc6ed28785751bf0bdae9e3ec461e2fd657108bc7d795c088dbb750a7e9b484c05b29716fbc94ed934641fd11dc3dee8025104087da60db7a14f4b51374aaedb562ba6c714ed70a55fa7b6d8eff356ca8c8e748c68e3f18ce3edc80e363443210eb52864f5b25be488fea00408c6309fbd76706f8a678aad7e177d40f2786e6c9d81331226d83b41c87c8ce877aab7ed2e718855fe72fbce0d0ab595389b815594ead64abc46afd818e24871062374f41004d0012614530800c48bfbd8405c5f6c195926012e0b7fd8872c3fb053891191a877774c6fb595026bf044095946a61005370fe2a94986abe72a51cc1af8b66949d376caeeef8e3f3c39e521561461f86edf20fa5f620f2f977cf0dbdb10ea0fe3ddf4427cec5602fa4ebce1259421785eb1cdd535f276d9d03523a58625fe2262fe806b0a9c185bcad732ca66d5b2ae8166b55e33c17b5e16ce5fa4bdc10d0dd6a60c1264811b705db4d3e9dc868a9b7a17a6e57bff339d961c356c7b064cff57dd6e0dbcfbc0a18a90d73186e4969239ed3e7aa6bcd64e1b66fa8114584b6d17573de02d131138f9986c2c4eb6176a0e96740e2520df3ab79f143ad80d4ac5c4d99facde8723eaef649bce3def92a587c43d162687272bb81523834e06988efe6ffb9e22cc397bd8d45c5bc98b10911ed06b6e0dbc5d8a0dfe7f561d7578bc0b8d3055955d9ce91e16c9f650f8d4530dd8e1daca473af75f2e796f525094c3dc8676184ca9dbca9e2ba6cfeb0e21c5d9fdc61cab265068ed606ec950829e2647590322d2c4d71bc6368dc6802d9b348a349a3479a33c785bf96e91cb2be76a76f9b4974ea55bdfb7a835dfc30a3defb1acc9ad43b55de1adfdfece8b8570d4c2aa2ccfc0cd195be9faa7a83fd78263caa037dd401f784a136f174c0f040a111caf1de04e176098957a034857dcdc99005ba072abcd6be2c629bb8839aa57b28ff48fae72ce0bb7546af274eba5552b4078089f47c21432eb8c6a65e71334fdb05f070e35f7e3976f655c4104eee3095f46500b5c786e8f497d2a0a1162dc3952023022189af30ffdcd428ddf9fc2dc78c8c0cad0e6566e209883908e5202fcd1d135124842189d8d3bc473ae23df9644864ef39d8011545d0731e99988f72a38e685513a4f21b316b8a838b771e0ef15391dcba28f07064748165658c18daef71e3ed2a33c2f6c22370eebd1902683ff9c18a88bdfeee28a73dab77f7c6e5d0ad54bf7d0433226b9d4b6dec11925af52e8f18411e34b17b74912dc4ab2bc082784b778a94e191c5f5dbcacbffd0c73febfdef592ccac143f245314623006000c6905b306271647a27200f4bd80e7b07ccea9d53a0772039417fdea1a771b5c892f31873d839c2015f05a67ec34a50bd2ae1648e7f552291ae50c0c7cdb110ef87237f5121a1afbc7ca877f17904041c03c9fe32fcae9e2f5e35fa42fd733fd4a5a9fab87f916685730edd82a4aa1a38598b5db6ea16eda398b576a5889e3d65122694df4c8a60f203a4a5f8e46a2c59ba6d385ca98b32ff259d1a8d7b86f292fa1697eed94442d0c086247e40ca734504eef28f2064d8f437ddd48c3cf672683c0a007d2d90614c5c52a2e1ca02000593c26cf28883db4ce989a6415bfa4d291b15f921f16030a5b1447b87ec4065832165183c3988b3932ceb84bd27c1d6b272876977e1c8cb1788ab4c20f4d1977780894440c9c624784254e4d185f1d240668d24c3c9d4d4136da72d706843f3e00b82da79c93210eb1e16438ccb42ceb8374d70689535580c6ff1eda4a0d5a8c0b7257930cf490cfdfcec0fdebdac0a7aa2243c00d5d51c661439c64aa885340f54f96fb9fb850bca7b5dd6365c58ee50528cf2c277d88f243236de7fe9459b799422a6d0fd860f1a3e231ad49b102d071c842790bf67b305a6c40435da36443cdac016fd00c08a00f5d10d4c76f06181bd9a4835e3f26992e5937d1f8bed2d85b917427f317859a7d33744c9d83e00822248072dc99af8a1c3285fa1aa40a91860c7202983e3848eeffa50eb3df1990437d644481541164266c0da34f5859362e5279688021bc205367ca4629a1ea822ee08d0c63f320cee640c765bae924a931574997ac70c6e10d82c691d278461adac2b0423da031d1561644444a3fa6e7fc3ba9671640c1112fad31c70f2f7c160527b2e99b1a2da8df0f27ae02407113c134271f93da198eb10fa5a486292410f0190cd09163113b8fdc760c991b91a4e4f855c2f426187a29ff8290a072223673865d925051b947af8c6b0badea767456e875c6b44587cf33729b5abd7f900cf52ad27024620633c3c09ebb91ad8424664e35b05182124cf3fc99a4f8ff8c97faa60e33d1faab5c7fd7e26db3e67b7f5a6017b5af0f8e982b55ea7fd15e430a1c927b5f9181f590017d15cb7e4d67d373381d81f45b7607a55e6ee345a7892a932c91b5104489ce4d1170f83d984d96c3e9c4fd4d8271f2629c445572e97e638fcac89178a5de98db512d9729038bafa8f9e4c084f6a873e5cbbf4992e8f2790768e8a4b67dc5086d93111f62affc1452bb6ef793da21c7d3a86814aaa42dc52bdc8132c94dc027006973757ded21d284804da8c8ae4f46971a0dc3ee9377a7892ceaa9bd17465072f115d6af2c7ac020be2921e6f441c30bd3aa1d86291a7c510f4a023b6f76b2fb9942770b87596427bbfa7df6e50ce74df2e795cfdeecc3efdb8f708a81f83038d51afcafc0dcad0ad83788d1fc633e60133ee4d709903bb055d1fbbd81174333a805ea601837b3d626edce895b487a9f5f049b5e8522a50f91eedfbce28c08a0b8e2e7613ff50cdfb54c844b83debffabbfe4ca25d7161e48b5e4563a74facd36ef81ff7f3a78c1f2530ac47e25b7dd6bc136b532d5a70853514fc374cae18fa69c87597ee40ea5aef7e1ef7783d1ca1146dd641baca533521badd3ab838c81764d3496085f3bd0b9cdcaf02b0b1de34d56359efb1bdbbb8fa4e26cc1ac5d2000f9d0019abdb639e75e7e343eecb24221b3d1c9d56de8509fd00d3f29fc7e752712ac340fbd2a0ca24bd11bf90082baf7e6d12ea35fe9ce5d124ae3d9fbd08b42dfd7b7472426632cb4e8a7d85fe0ae0b2da719ac0c25fc8a59ec89eb59962d094b90f7791a89d46b390a1615dd08f4724026426dd12ddd7d356a6223eacccafdea4e25dafa832e52cb534009ce6d214a706de2fb70661e14fe3f80f6fdfe456fe4a24da5cba768b816d0951e49c74e8daf04efcea86b3071985a3183ef06168056441ad407a06e56ee47eeaa5555b18e073c2a2c4b211a2e41b3b92004e16b4ac483c316ddfa73db8e0721b1ec967a0f8d4dd5185792338bef0368efddf2071f52138919f5c576cc38ecf89121f06996db39bf770e8e62f265e854f033790daf9423f97c7e53c44afda64d8594f751ac57b24e8ac2ab7113dcfd552ccc2daa2f2b51badfc76fd67e948e1d576eeb0a3846b3d4b3544e600f137885174d4f0f3d98dedd445c803debf723ef7b75d3336790e015f9889f0fb2de66fd4a45eff9115e4697952b202f220b5ea9ef9a7aa6c4278978880c907f1f8bf52aeba4085e9fd8f8f96e43ea79f820f3d80dbc82bff953fa1d33d39487c5b8c8d601ed108205af745cf44ff29257089965afd48cbd2c30234a67f94a3da33f82e6bf7e1159f62c0d565489fd19093abf0aba1f41d93b78f25794d4b25beafd342a39881ab3ba9fdf59a2721aa3910b5dc5c043454d6a6036a731cb779f3f41580a2c616d031710bed04dfc4f207bba64823c60240bbc12bc23f3c2b3fadad5fa4a64b7ed00427efb7bf1dc810a72f5f9890c10dffa877a3fa0a6538a7f685491c179303ef16b1aed6784bed867ef242811fd82bf7f90e4d964b49cedfbda927f3570d2590fd3f3761ffd8e3223ec430bfbb864c10d3a75cd67de8172995594a909f074e52ed8722e5d1c969f4c9fe1de6265e5bbb658d3dec76f82c42a0e3af3a47d13299f94cf7ca70bae5b089b0827cbe93c41531950bc3828757ba49b638f214411a76710a29f087e91bbf1a3c6e2301a11f0794bb09b29af9f0c03f425f7ee755d28232096fa6d40d1d5feffe8a1420dcb66ff598e0696912b61d89f27b97d9af79216181374aa1c037dde32208406ffe0ba9439b9b00f5cdeb15212b7079574db949f865fda521e5d434cc53cb2d596f182387f78f21c0a3fa7b0295f6937911c7141033afbeac88a35d2af2179df4af777f01f69c0251b9bd3eb363abcc0dd07cbd8b608039a326b0920840a352eb71aafa5c7ded9c36d1d69158d11e4c86143d537350438481fb8c27b1bec15afeb526057f30bf48f968e7ab9aadfa165447089fc6b5938dda0e5963544379088cb003b376846b157cefe43a2060244d818d636467138c85c693859981a04b06910cc3f5f30b5b43e1def87e4c348ab9c93dd84e03a3171bba1a014de70cade979afc8db6450f59709044784aedbf41e894c85a4e2e5cb2e9a82a3319bd002662370dfce9bf793c051a29278741e6ea51e5adef702857a2ac1794259f22841600999d4c6d7fa1245bc99d7f9ad4d7bf1297e2ad44b62971c4ea1670c14211071e79bc427761771c92814b5ea1c66e4e94164f1cdd1c2d1958f7652f475ad5b416bfeb09de8f2341d63ddedd9f85e7e8403031782384130664e7a5d47200e7641c3ed4707f501f1d37d0220876bc8dbe0a2163d29c5bab1c6be9431669cbd6b4b9d8e4483e2ee2041434303a101dc1d875e67216a861b34b8e5f08f16b7b2c1f67275fa939fb38190fa979e90b81c077d77f636d669ce63791bfe4eb5f20e1973c7f5f28781e3b0f3d108e0b686a58232bbb933df3485959cd06eb1d3dc4e9dcf048c044be319f4b2252cda97c1c84b28cef9cccb5a38e53c5bc416d70a47a93c478cf302bbf20a9f075ce17eca63276d9342a03e10b2764ca1e318babb0904f12905f95bd9e816fefe42d344cfcdd1158719d679eb64709f84014c574c37e58d4999334b46e1cdc6db7b18943db33ee47ddd0225f01362014fba1a07f21ba661f719d41f679d4ab614f49781003bd4b41039f376205c4acf9c631eb7f47fc5249850870cafe3b5bae97d30826fe4e41ec94dfc4dabb547739d25057a574bf6fc1fb4dcd7b131ca443e06e654d92f5911ef6ff97ed2f36f2da9093edea21e1937249f5d3e205563578b311decb55c8771a71ff593b8cba8e7ec87ab7bdf297934e64db5e2e0f4118ed00f729ee65fa27a2fb621081f6bb24f1d1254bb9d4870d886c1b3bf1f1a8b380325bad317a19a9f4383118f54b474bbf27f8be028e1b42cc1020933f17679b0efa2c3cb958b0df03f946725a2a32186656349a94f7bd3301b60a95c8007ebf8d0c3fe899c7c28a5863024a2a113442cfbc41f497247a7a75304915772c0da8fb938e229354a76b36542f1e550a85c2046df6f3f151aef9396098a2668d133dc77527abc0038f5cde6232ef67b33190acf80bf6c80afbff4b59f07c1a9e471a89773a6755e518b2ef201aa8ac26206d6dd30cea1909111533f869b1ab393020dac5f296ab78cffc3d171bb35dc66f9c4d9c98ce85cca146e23c68d5aeac81ed10386d4399c0d130c455e5ebb73e9293192aa5d6a3187185f4e4ec8090cbd2b9a50bf6067028dde0b37cebdf97478bbeae82316f8343c2655319e3f3d693f046249673d0bad8dcf30e3b59c5fdb8978cba2fb2478a3a84aecd849a015179f159234d48e83e072cd6acf5d7101f3623d9180f7b456870848374b3f2170b640bec86caf5e755a7cec0e50762326ee6af6938cfd290239d8d3043fb3c8f62152409807d44387c2c0068ad9b8b3d1fe0750a873de7f1117527761050f49910113e01c49f8ad95c8d0babfde8e73095d76aca4e6a5f4fee1e309ab2f6d7800fa77b4ecde24341f037004d17ef2bb422a15849eda6dfd697d5ab5f0ea17d59d57e15c80201c85246389892093e6176d5bf1a40670f8395caeb4f8bb8ffcfd9e322025aa0dfdd52f3eafb2463e8a4adea83638be6eccd8a0f7a340b112de390650f030320194b27aded16a06923e87f003d320ad7757bc53203ffb72f64a827848a73986031f06bfe784399231d78e1d052648444178e35ac52d4122d8db5af58b66705dad666c1d2cf46b4a9f45413f3fcc32be55d295588ade748c92b4549b1276609253a8120bcb344ef5bdfd1c182450f179000603ddb80e6b8a86679e8ae2553903b3e45c10fd3239ae2797b26324dde1b0cee88018a6b424f30e5d45d8aa5278df1a181e68d0819a310607546101753a39cd2574aff630062d39a289237c5d73347ebdc4a0a6262c9a1f693b3cc62339dc0698bf242f29ed814db39b346235a3a6dcba46ce088d86023c1ab6cf334027df6896c04d106d6c876efe1342b568f283e1940d08a91003aa174b62de40d221eb2e93fb1ff9b888c7d8676429c5b39b98ce2a90d9d1fd51d9dc4d4ba98cb8ddf804c4e7506b4b0e41f43830a46f00983ebf8daa3836ddffdd70fd5c93fac12bfdcf27368065b4ef0ff9b937c3ad61fb54b9f533762defb2bbac299cf73e6694c939f9b8016309f3911fea008bd4e24294def013a1d16fb70a5204589db716729efbe87056d449dc26e246b17ba0b71b60c6061cfa95254d1bbf238e2197ea60b261b9b804b7f5ac5e3c30d8f1a11859742aee86cd8bf9d3d78426333c95b926f215da51d567a028f8c9600368557ae055b4676a579bb7e60a9c8f84ec87233b118227cab6b4428e8a73131dc334cd5580f5abc8b232f3568028e3dd91d87fc4014443a550a97475cc3ebb626ef6b783fceb34ccfc03a777af9f8f417d4a0d70ad579f48df83de5cdfdb0ea8657a24d26451aa5d8a445947bc2813e83697aa643df251af9759030e6203750f4cfcd6ebeb0c43930c0a01f378dc7ea4e442a5fc27c1811a87e4bd4de80ee8cf2100c104983da29e287bd44d3040331ca82c7f08fe6791a6012e66369f0d19a460f1cf4eca30e674006babdbd852dc41450ffef1153635948e94fd4f114c0118a25ead722512513659214000c482f123921f2612178704a20f0873c9456bdef656fdb7e1b7428216c1b4eef728f917a6c1ae241d127feb231a8739e38141f812d81b13635f9aaa1694a9cc63898f470e4153b2054da2d7e3e8e1505102a448cad5a211fb8ad15f08229664c2efaf753ba7bbe0278a2068658421385d5359a2308e82c46b5b738764ae4cf85699ed403206b450b982e1e4cbe6c8c2350caa3200e3cd58ad3d05b0bca2cf2ed93b32a9cc35fafb4090c0c0cd6e8bf2517d9ec85ef0389e0fe170c986cae5d0ae6b36ab9dd09dca7e855089d21627d47a603727c0351db937fa9cbcfded8638a4b9525516dafe8b03191c5d325da7b1985a05207c3a151b3891a670d1fca81a8b9810a451f61d528ba85293296a59b8434863e082905c1739ca6fdb9b6c8a9423114cb285f10ec19ddac6f1c05d184f799e6328e173f4323ea68731aef43ef453f9520d7c8c6ed616c2b18bd5a92185d9792989b3b6e34adff1eacb67c8589998453b6cad365ea7d4810079a6891000cffe112d89eefb77f17e8cff6187fc1fc3b2524f1d7631eb1457e6f4eb641216636ceb9a8acd48f33ab54b437675e80a62d891a11b06f6ada546a02e6e4fef9a7611ec621052294291f5e874378c01c8952e46f957067ed768a6ed0141ef5028d68a1c67ad9ebf98198015bd002f8decafeb40250d69aa4ce2e752ab7f45c93dca6d11248739f6ce431796e1c4468c60a91d8f647833247f51e325ef2f13213bb5acb989cadf759640cac8994c655800d6a871ffb7aad09c3335e0cd9f2f7908c6120f5cdca1b68e172b373d82af680ce27170d880f87999ef0a8d46f2b8c774c300fd2ae0399f861bf5103a6ee58f49d4072a5237597377c997496011ff726d2eff3363973eb4e67ef38d93438106d9f68af057d51e4336ff4106af38d3aa8b94307590c6a4e6325cb47e90d9eea758bfe579d9d5469cd77f53fa806dfe289269928979cfb4a259afcfc52d68f835cb9a58512ab4ddcc21dc06dc6035acb404b9deea01a6fd97fb1a8fc67d57cc7127b055b573492884b68f548f8e2a59258dd2e8a9bd25b55374602c609781e533877b92db0e874f9761efba135847fc1f1040e759387da8bff169dea796ec39e46df89f0450a545cd46d0c0a92a5b6384812c724fa749714ca9758b1f22de951a04f6b544dbc47c24dd43a6091d09d146c2fd64160c4f1018440cf538dc543f8aa9c4950be4e8b5bba796b43b849c76d7a935fdd046a31b449adc9fbaa2a845aac49ab83753e6eb33c480447f4715baa5d9c8ae9910d6eeb516216335c11b7d56a73c146f1701b956a81c1a81ca5a3d4560274e336bcaa85c423c479c7e091702487cfe5462f40995ce7a8527cfc925e2c0ea4fa2823ab920a9ca14b5daa5a4bbfa98f42f20b72ed14ff4f076069aa28992be3189abb25a2664f3ea954ce605fdac008fd2885d5a4bfa0e94e6c4c653fe92c5a8870553727be5078e07c3d10b2913d8082c92e1e26720d53c65bfd2bdcc99d04c5f341dc50a42af6c6300e3575b1a4bd0290fd41f9e475b7d7d07389a1778957a9dea747989f73561b30297631f0915fc12d46e2d37fe2a06445b430e58ddcb492b6d0eac05ae79dc20c20d53aa7716e7e5404d2dd6c30bcba6912644a63115f8560f5f44a2e0bceb8c5e713803d7ebfed7ce039e34a85eee96191c5f0abc0b1984d677686a18d02e6fe4b0c88e92221d36b5be8033ba09e490aaea91370e1a106b259a49aac5f6cf5b9ad59d5052a2f31b0e458e75c2f80d5e41b60a2006b2bacd20ba4cd00dc6c7b6691509cbfbfca5b98fce155bfe2d05a6dd86594a89b34147ea56de15a7ab2ed88f9d52b884918bfaaa7d23740406a2a81965f9d8ca8f9be4c2eb25a2f8b9c6c1af6750effe257fb9bc08e87a362ca9cb5007a7e0a9f905a756af3187f901868d6629aa3caf2bcacd6f74ccf69e4f1ff0d508c87f2b7e0673b8517146f9b49808f202ca1787ca35a106a6a87ce4dd0e9c99416ca40049a80d1c50ae2565df0a395f3c571f5c35a0ea9838c71a951f5efe36afdeaade9630db104ca6532b64f3b32101807e6fc390398390ee0603871857cd6594eea774e9f791a52912405c9827441a48b402d9cc4484c8ec6ea4317ae626b213843e2bd4fcda576c5c30b65253a48b85a4d466d4801ebb29932dea8dd1064c6e4704586ca1c92fa96693296703d10d8753936d9f4da7324c2546a65b584e7ed86e35f389058762090f6ecb7b78bd4caba62245a94d5dc1f07ee879f4e9c4e761ad41a23512bb730b7fc51a0f96dc8ae28a63e84f3f7480db55af0652dcf2f8bfdcc62ad842c56a3e8deb9d905248dc2316f4f1415ecee5d35d8affd87dfd62a102a2e9c17244b2cf5216ce88d5ff6c2b86ecde2da117b663de4e994fca380e7f841be0bcccf0d26696acce37812fe7f7c005e62c27fb23f423efe4671116f6874c5c8835260354b4c767aab93be847f36eafde5068477964e3520120ed7ab416fb4fe571c218369ad477016203a043e11931f857400fa83704fa83a04a6c624694466cc2687995fb705f7b292089c6f0847d3cc0207a88affbd63c23abbadea1a7b8919334e91a6b2d053579fcd75a65e8466c04d0886a24781695e094662fc187b2229cb0e667a8e644e53aa894f3f2f0d86f1656a019cabef0dcf0c7a6e6689695cb6453f1a1d44c249e6703540f0c08bfb2cb9a05cf55ef00b9dc3fc9b037fe9fb8be9bc01c8fe73629413c6a58414cbbb4e27806d0f421a0a0dbcc730ec004ce351cc73225be78a2b8799dac49ae98cf623f4cbeda5b8c84033e13306ceade5639138bf2bb36f18dc4bc0a99b1d88fe13b6cdaab6948fe6945a006ec0082a9a2cbe3d6066c262ed0afc365551021bafd09cb89b3cb8e82f57827ffd185fa7783942309f20319606f07c31e463a7b000e799d052c9085c31ea2dcd2dddb623fced9c457814597151b29f598e8d570cfebc9d6ffc2a6b387b1be0cd4f071e6481ca29da4c5da577f1ed07ba3a0262baa0e289f935c6b2c2662788ee0235589d9f7849604552e48b7167f6eacfb8349cd7a3a5227a3512410a043e40686180d1e92ff086ad3b3770c855c31d059be6eefb86aa830f9c5e1e79c8c201edc40ac07a58230304b64410cfc060f8f54b40f9e5ee0253b67270178fda47d5dfe7efce7776b9c5f4208e793994691496ca81fef69838b25af3aa932812e0effef1828f4dd4b08b281daee7003670e99a171eb83a12d7ef327baecded2dbf857dc6946c60ace0b088c7da8bae7416ea089d7071385e801c5cd08059edf89af514d8970ce52140235f22b18c6710461e1895e9823b6bd21df33cc1b3d1466ca6195dda69d702995122dc424f8799a7f26d480469ee4bcd32012b27af34cb5d5f9c615ebb8133a97325c45df34fd89bc0f1cfca3cd90e1eebf1602df41fe9a43cf240338d29dff024c3ac4822d8baab33828e947485f88016461045e4086df4bfb07863b47b0056d846cafd3fb08b8c61e9b41433ddaf79fe4d2cba2d5f0f2bf83a6e61bb91b078ea145b7777d1aaed0a8392a66084ad72a3fc349a6e5afa7fede6accd601a542e883ac3cb6e81814efeaff361e1192e9ccaa55b37b4b7569bbb09b60c82c922b30a650f82896de5c1fda166fe1e22514adc33c00aa41b8c5e56b3a90ed276d33a8d074cb9702ee098608349937582052a102df9195988a6ac2fc974a6503b5ccd0604108b31b8b0524992eb6ecfb0bd822dc54f443f6535823e80e007abb87e532ca4ec235c71f1da9f4fb4d7c7d9d6d327afb1e13fa780127bf8071619e5e5c0b73653c8d941c2436ba0b14dc940822a53592adb39e2ab528d897d3273b4332e6e562e619dbd2b6ed7408c989be51c12201fc2a2fe3e46aa3c3460979916aeffe1f855cbff147eea03e9f39f854879a5ece8cb3695ae8fec0102283e47b04c2de45f38101f959acf89448134c67108c36d32915f4028b3bc5ce8698fc8c7dbd63da7ab9fdf63c690325f4b42a3a63048357b13351a24a869db9f69ca65b9a56a9e1cad93a2bdf0fabb3f7e63c77eda79b4f12a943519655a9deebbbe48b6fc917783dcb4acfd850ff0a323719e20ea1ba6c4bd4aa1944ada90b5c72f2f85b9cc996cd8567f682694ee3f6dd582124a02585e6c869ea10271aadb409017cb3bf2ca79ada3b6772beb97d86de4c57814554c1b711bd5ce255c4b71bee3f99e572eaebef56fff930d122d0c93138534c0fd2173a142f1dece7816f22a737e337787cb4d9cfb583f79df2c7161cd2bdec4356d0126ccd45f2fe8775ef464e2c82c595ebb66910af566b7a953bbac8ef47cf7a11f10ca9bbc26918f5aa172f1e1be82c6a4683979f24457b3e3c864e790428c9e0536292c50c5a818357f9dc1f0629bf69f56956daeda2a32141106c4bac46d76ba8221fda6175b4a6411b58f24d8c3baa61c90d91c3b4409e82473a2b64a75efb9708fa425dce8ec7f4b0e437586c4cbb61f7229c7ae6c24b75cfe74e87152dc31477b054a0c057bec83c6e25328cdf9000887a797c8085cf393979b0c37e12cff4a1233ebf8162cf320acf5d123e117264161bb052b42eed979ff294997d5deeaccc12530b8875099e094f219baad6123028ca833ad782a8075887e9f9913da4aa4435bbdcbb1384cd8873fc719d851ede1c0fcccddfcce8f158f19479137a1e922112dc9926566fdd9f2249f71a918675ff30197fcee2e5a8b5016837c18fee08c94141e12803620e4020c2613a0585d19223e06bdef925094ff922893c05cb00367e587e6f107e80df4d00818e24a36eb5ab84bbbe9b7014e3a5c01696d4f34407643939b3c4c533a8b3cbb275c9c5d9f7aa39fdd5844a1921539251e91ae7724b45d739768a030c81950c2342707282c387703ae8506bf1f7a5f5017d0d40095c396c51021247104c4962b00ff3a97002f4f2b40b6964b10f8624dc012e8b25b47f8a2c77983987ebaf3290883f1fb07be91a2cd986d825d2135ad40fd69eb6b9e746d517b96fdb74bcf0dda2b26712efb3c7a82ecedc8f3c2a92564a68f14c7e422f18daad2ef366f0e2242267abd84d11772ddba2f259f59bee8fd22a4265a6fadf83785e9e42f68500c3714765b6b2810b05a51782fb7ba66f6eb02d67a037c556f804b5fe2a50d6bc175c396d2c0742f5e983793261b06536ece539837778a8d41b6ed474ed572c6e7dac914e6f66ec515ef07ad1dda04141f2ca0c64ad280ec6950a4b2bf7e4cf2c7f095051d1f733304ef3dc43bcd05a6309681fbda0bd3eb32b4b8ec41a6eef8d9738ba69d247b15b61e3857e99cad5304a68cb3d2784b78de0a4cb978b3f1ab545461fac5b520d86a74063410059c75953a57ac7886a5922e1008ef7b144ea9d3c36c4a7b203196aedbf116bb0b263407e3a399a634fc6a89c1ec0a43fbe54f14bee59154369d34a1fd9fbec4dc97d5d5d252c666f7942d79825bd405716094c898c83fd67b18fabd0239b6ecd7e59043631b84104404cf7d8df3ddfad7e0de850f40dfeae97c0207321d0b4b236ae448125431cd0fccc34d70aa21537931fb8d6fa9488f64436175a453b0e8202fb11164d699e1052be6314a4319b14be3c911c4f85690cfeea072a33a60d89f3603b4cdf7f15a8d8b90587a712ef1def2bce194e0e2bb7d6048af05797f19f70e9a9ac9b752d4a44cdb64e8a0ed7abaa70da8ccfbf78ef0847ffbeb510264db7ee790177674ab81e5184761f1af4d7330310845695c7b6df2d27c83e49045cd8bdf2b0659bd7b0685c0443cf918b2f7ee16f883a2697595c3ebf4dad9f9900b994e8d86ea0a19c84de906b0c02f5a9044ca8a121a1b0baa9b85914a08f712cb896adf105f98004fafefd3d11c824a456054ccfe373a3c2cfbb0d67e16cabeacef7460db850689b79470592031d9e67b925d7cfb4a8bce4ce00f5f7368f84c59b401c3013b9e218912bbcb9525c3077530d5f07dc6af3dc1a331ffca49e98da73b94dc809c5875cfda62aba249f7bb5b7e6620ba8b48e4ed761fbf15e5ccfad3364b56ef4a8b76103bad4438c510d27fac820c52358610093f77a99ba05aa6f69768b110ed260bd13399a0eb8e76d5f3cbb1a4119ba0c22f43a5bbd4ebe24de447976acb08a0a7aaac32c7d340a8d371d087d2470f7ae9e5f26308ed6ef6e3265fe47a06908cd9a2508d1555e29fcc02619c0d6a220a318bae1bb170eec005eda487d834241f442dae003a8a24ab7f100bf76e09ae8824bd5bb059920e9dbdb03fef47d9c7c1a654292faf3009ad8191ad7eaa73d4ea36a1c884ce92cd816f6b0b56540c42e3ce2bd92e16b6647b5ff16777f379819d2f33b54aa7178ee56ac4e0b5ccd317c4b6e3b40824ac6991007f115c6c97c9a6b4cf6048b04d6b3aee6807226ce20facf73e7edb235b5c1a9f58d6e3ad05e1953afec019dacdda68aa4adf462440938bcc0f30fbe61046e44bab2085a1e9ae92246312b9e7a106ff6ac82de4b169ca17938609dc8033d8cc674046197b68b720b5d36c934b523fb3893a6f1b773a6188065e4040d3636a889cd4f06e0f3d2d463c782919eb03cfc396fdcd016ebb3ba829024680198529f52ad81327e15a6374ce1ef84c6c589ede0d7d9c4701b53d5db560b34b4e0cd068ed3b3c80e225e39b19d6f1b712bb3ca6cfa0c9422a6529e55f7ddead2a371f1ec0a9cfaa5e8fc770a878968088e86b33621948461f4f9cb17501ce30fb593b3838bf3218c31c694ea2dc7316734bcb7dcaaaa1dd7272e8d531d10f403a2c4ec89e2240edf437e0aba7225e401b3c22b9948851c64d26143c289287d531d634c2742a5e3a1c117dc26111313f1703b20907f37cef8abb5474e1cfe79d881bfdf5405c78e20bfd7c35c2b0bb01197ed996fd1c92e238500ea5cb0b8917a5e4394eb2acbc1aef0356aa2d12b24c231c6f021326dbcabc5c7605ae5a1c1ada50ebf22503c20ebc05f212e6e982a701fadff4ea30800c6b08114afdee86fcd0596e10fe70017ac203d3f9392aa6f3d540d63abe46b4f705b8f0b4b64d7a959c2ca69fff7a0928b877600da27fe1a3e5aaab2d2b712867e18241fc14df15c0d7dc906cb297fbc3f95e947b31a2f88c43a4016a6fa0447ad3c065f8ec46b7b4a57b236aeb7af9ab49f85227858aaf95b2bdc697fbc08d6917527fdc1e73dec2b4135d0fd2414eb554b058afa06df2fd3845d35d90dcd1aca4da82e000c397db94a280fd5fa4b7c7c311367abce1d3ddfa8d01f2405beb0acec6487bbe6c6a37cb6247b54e412810fb17a6410de948c63f04e3812deef0cf5b4067561a654b1738cb502030202fbd68df44a5db340800ed5595543a3a71f52001aa84de2bbe5082438486540d6b165fdb51c5b55e292c0ed6964430d246ae50c0488aaf2eb47ddca4355df9b6f609aff3813884568303608ed866c6fdc6112eab59356ef3e8b0c87a246d72c2ff218578322c2af6998ca35baa254d15a492745d1974d6ceb5f2b204c3c73ab96ee77cdeccad7a91864362f9e1208724bd9b4e6ede114b42f54a5504c184f452d79c56bfa086df4aad39c1c549e0f36534d56da19ca3bcad7934b6c8595db3eac6fedc0920d9087f299250fbbb649d902b2d660a1c8915cb43e22f3ebc52bc4b6e6303adba979c02e54adc89eb8c72ed5b98d9021efdc681af2c2ff3f1629e29d42642d96f82416cef7c2800b6260934a060e2b5b7eb0d7087593f1e0005638c30f4447421f20242feb176a881fb97fe78251030279d8c83c08587496623d36d7b03b09fc7ddc7061aab0b9cc938704dff1275da6e10543a080dc0edd834f3300eb8e19b6dba5d311967e01568f559aec9e9e2a018ad2b0c91d334b25bbf544cb2b905b87ee85924b2ce8b0f151277661f4e913799a6c8bde02a2a4e5569d20da8f9fc611798feca8a92a9f1a2904777592a8244b2b047c53a5ff52bfb12bcec8cc67d05266b7b525b44861e164e940826f128c124d2c8821fe9c26b3049bcae703764779dffb383ccd11d7ad8ef30df0174308489d36730713eba4d965e3fe09cfc1c8df47e4b1c5cc6a743960385c0ad79f975ae5c7711aa85bc971ca9340c07f3c95026c179dfa4b8a9b00559405931572bb9e86a9f3dc06d103c3ed2d1cb96c82f255005aefce63e36f7bacc9e1118a1d642b14fbfc624ca47c54ddd28c1dbadec30b336dff7566f477bfea5c03ce927dd06da57d940be3d1d869359abe7c4d1eaf3b385938319e326f6c9f0eee4336e984386f0cdaa6b6c09420831c07c959cc47009efb888825d1052b18a52f7d21700e2cf20d7ca1485874944728399e471dcefa7ea1ca893fcf8298d73aaa23af81eecc143e8b55b4e97dc55e1df10438bcc1978a21b6199b95df8d46c95148a7abdd484a78e9d08c0afda6f983565dd1ac046dd69dc52e56e42f62e689e25890d69dfc07e938f04badaa9dac77748b9d9bfe45ef226861f57d11a1a3a3897d021ad8e49f45b4a5c152c9ab2ea816e2cf934062346ecd1ba1d703020fda1e9023078434c47005ca8172cfa34aa89696443d57e4b65291ce730d15d24a60d8d9323d9fe9425c3f226fc203f40da11ba949db878ce79b8c781e24666d7c1b2425b0812bf1460aaaee768da5777a71ae0810b7ba88a3a95c5613828c6e5a1eb56f1bdba33c4433131e1a7f1d532525f3ab6b8173af969ae2c99d3323c88faac10cdfca499e9a868c494e28e8af9f6403f111818538018390e07b849ec2246c4b09823d0149a987c9d07726869b0d7f29076d7c66b50e2c8351c8a710dd1466ff32fa7d03a0726192e137ead2fa179a2cfee85abebffdcae2af7b9d3d834d5e407fc79bdcdda3b8bd8a2cb31eba856c850ce0f96c7ff1760898279be23cc128e9de868b08abcac6ea26f7fd964c8d7448e3960800643743c5463c1cf07b63a10ca0892611f270692cb5d141a0bebcb0a1452ce7e0839f964af0a2219e51a44f9b3971585fad572aaa2c72b651165a61449108c86e9a3bd5d0baf2c095bae5540dedc47f43549d3e6263c2df9bb5e85c201db015d47ed45e8b2399bbc44d95f62956fa807c4144d75ae343439ec217b041e8b4a0c324ea6bfe044b3ad7ae79c006b204139855197027e403fcab4dabc7a99ba0573d9a5fc71fdc130d4217aeda7c2572f7c5d5aa0e3131c3e4e56f4b64a1b8028c92db015743d83d0dfe9c04d8d15b47b82fbc78d0d9fe2d8478d63c82670d8cdfea0c026e7df9bb6bf5f01f2b6a6d53cea01210feedb0c18180d8d3eb17a1bc90c637f7ddfd4a2bbb0ca841ba2a97b83c182aa747bf88edf8e1b1b77e9b84d778ccd482c1026b2f8e03601fb1004cd240e36695a111ba78980a88c66d37ee4afcb28fc9488508ecf3aeafc8a5c7e8aa4842334387e47ff9b0d958ce8b2725c4c97105ad5d461e2b910298f00a9015211585999620245cfc5f688871aa44e4bc4bf0e1c1197b43bec56c6297431d71d6478bb7040d24c411e596a0473bd9709f8abfcf8f8daf2723fb1563c8b003e0206c3cdc150d37ba1e2c73f87658ab85b52c7c5dd2c9e88aa2c7aacde5fd9f2f0d0df8e23d5006fa599f113fec8fe214224a70769d505b4ffb2ca19bffbd1737fd8b202f33d1a91b6d8a3df38d9dc3cb44d827f0b1a9f1c7ca6b53a166f4499aa484c67a6908f0ac5715631fb179b369bfdfea809a1b2cca7a1b9793f24f671cd95e797dd80349dd0088ad57340955e8a92ef20d2001832fb144945c5723a01c9bd214f6c71dc635b937ddc28318ade770565c482870096a32a4438a615be876d473c0fb3583ccfbe9e6a618e700fc8fcf5850d25633e42c6ba67107ce5a9c946805b027e326aa5e11e4a0c1da3958f2563c230e30e6e7ffdfa721aa6c963233278c0a72f54462bc7114d36514cb2e7f9747a8f26a9bc3860699e2590611714ab81aafe2c049cad3e60f43b488001e98e04bde21085ff68841dd5c43df4267bf7187928b5c63194b3188ea6a1e523c37a7a28dbd6ada112478096da024e8cefe429f6c4f5b89d26d05af3a81dc24e3b6f5e7bf946037fcb0eaf4606041edff0b010f7a186f3a168b49b477da65e8c7362d316f3a7f78fdbf76e382213dfd9409caa990f1597b3a19c42315aaf5f779f0450f01237c054e4f10f0e7042b7053d10984ffc1269596688b1e98fb24c1a29312b0ec50038273e63fa1368d01cc7f427edcfa6896f27a63fcb7a61b9105e89e4cef208d4135d7f893019a18c5640f51deb1962acd84d709bb145facf39930f4a7d583633ce8989b9644ef5d27dfeb3eeea9c16b68fd4e5f83f063560dccb6a0adfee81db6b18b53927f853a459b049a67088b57ce2016dfef3e68c5e0e2b8d873a030f521e937bec51e2837d18a6292741a0368b0ae39a8e914c1281e9f8406a91f29aef644dfc2e5863bb6e7c0c08b46f946f8baebe3eb41d5f690e6d90c4b866da0aa29522a78b4cbd5bcfa303366a5f8b78889fdeff3d1a6b731b1a6f52463eed781d6e7ad4ad2ac34827eba972757490a775d3838d36a9e4ca5a6335ff3b3a0fc7c53bde3265fe9ea8b4b5da5c7c90436b161ec6ea40c936694bf0e413ee891573fb1b803e17c87082df0d228750b055cd83f39fbba5ef80092dbabacf3d2266a0faa6b15116d6c954b39dc8dcd8b54e991655615eb9da28360c239fd519c28c066c77944bdb9621551e1f6832b4fe33d7565a4b019181106eb4d013f378538dd2fb4586ac671b9c1630cd175e7f9e784c5e5f2d51fbeba1c3d693867cd52b4cc958686e6dd044e77b71df1195cba763a3439d7ab3d295e435cb716ee361da0d37494a55a9812bc8d7f2d5bae90140cd76523e5983f6fbf9da232a781e51936d157fd61c4de07d3458384fa3a6fc03e5474e57196ad37894f21700e88b3edc47749740b98c3f491e7a391d9f0a8215e82165624dd73b6aec1de823d5bc4c61645a3b12aeeb8707897471a16b5e4029b6370bf9ff9635ad7f7722b03f3cadaede87e1385f9e9eb2dceaf5e3f943d450ddef0baabc12f9a8f484377b3e43b084a6c306fb1b3f71716a110305ba53e7d34cf8637f05f8f149f298e12e03fb3c1a250fd7bcc58fe6332693a6a2133c716711e9a44f23e069837ef97dc4e0dfe9e4832ee12d6ff82601aaaff2a53dbf782e6da6f46b0065a91aca9e9843aca6288b4985e4e856f2d677515eaf9b19bef503365ebb2baf73e94b4cac93ab9000126d5357c2e4ab42aa1c84e39e1200efbf7f38f6c33f67d18dcf5692fa245f7730ade2040e3299ca03fe9c09059d9d911e462a39dc86880fdaff52eb0b0ece0a6076ef0b7b4576df10ad24f85f8eef0dd9c6d8d9cbf2c4a835d75ca8cdbedcfc8aeb5f3a4e4a2a0ad75d0877c023d387b18b2515a7cecf825ca71fdd84f21164e9ca402d574372b13887cba492566d8f91e55573ee1ca29e9e3f25ba87ebaedbca0bccbf80e1e79df40d0cdfe71c0f57d3a6073736b2e381bf48f1314bac2a083afbe0ee6810b27a316b63701f3b0dd9fff115549ebb06b4097c6700795e1bb58dda6ae4ede98b3f97dfe7a09838edaadbd87d33029fdc262450f11a166f4738f0e1ce220edf8809aca498230f7ce1222c97190be0187f6da44cd666692ffeeb07cb9ebacee5c48a137156bb9f8a5909b73871235c9cf86c2e4e7cf4ba38f105be29a4c3774362d469150478efbddd987dcb874a422b06850c140148a7a78b1a36fd167e905f7d490f2ca59d30d489d2a62cc2f666ebc684881e2eddc4b2476527284d691e18eeba107bbb7cdacbb7927c2a9093b0cf8a163c04bf9ae4c2edc65926277c194a3a99c5c0b4f1f1d590106ff043f1083982a98a2320b4ba53881e4622a13b856341ad95368582bb5f00500d89d85653f7485edea1d2b82ee74b47304d7309e16b108518d011f3c3f4c833d4561e2f947b91c9962e93b4b2dfaa9089187e74bab2661ab47c9762cd8d9d2b5327768f954d87e870e2289750451f2c005e9802b13ec6952d6696fdc885f87f9e5f0ef0595716b291d3fe691200196784b7638181fd7222925d9079f990316844683bb3e55afd5e4837f4857b1040c61dedfd1263a3fdc06a3647c5eff34c19d257ebcb93c612e41286c788fdb0742a38101d5ff958760575674284b1aef51cc84dd7484349c0d624d3d6f185caa03012188fc53c031558fbc18a2b5a7ad4fef8104a813c1930338ee6b5706145116903f5580e53d8f9a0c1a139274b6ae30fead32a2e5dbb96a22b794527ccfe3ab36e5975407b46df3d9fd46b3c88042b62ec1a3d2ed68ffc957a982f28794380fd559a9f412aaab235b1a0655f25b70acc5d0c09268b9f01c8468878591d0f57933760aad95e048a18d40e4a424b62505ac8713aed59ed4dd005d5d3c37b1d69e562a91f8f0a9d467a0d1a29d6d697bef3f4c1615d42e6295e6c51cdd39898d49555a3f105871a1bc18605ff3963ba41183068c0d44d9c55a28a7148d22c929cbfd9c7075375db7e83a291ac185a67c0014f82ab186d5ba88a0e8557a8f4606af10a1140f7e2a3226d425b7c1189d29001f381e056a8c967df8aad47cef17540a7145c2901aaf07b557f752f2f7aa2518efed070f88ac9e101c2539aa88bd5e32e974747f0aa54c62ab45aa9680ce4c608542e8902a6b5bfb8d34aadfdc4fdf0988643b9786e71cf9da47e2da9cc47a9ea6bf868313d0586ccb9607d5441802f95abe3c05b0ad1f471951269189337a9737de93302799d7feea27bdc95cebae9fcb207e0861c97af5ad259af99b3dfc36458326f8be9200df87a939c4a5460a6ff93e24eaa4fdd286452c398f08d87865b05819306911b01473e39dfb5f3d18db0309b522682726c1f0e7308ce19e1429ba9021ea3ae4fb4dc9e8fac1385e37fabc28f5d1769bfd3e9255e1783e6babefbc95287c2b0812ba99b35aea74c04cabc3de96726217c6c19f66697540503d27e8514e4721905f32727b4e0c6e9408715153a64c5135cb4a52da102dde36c7178f35c7981e91b54a6c50c497895391dbb682ce3ea39498f5a18bf9749c425e15c9912a18aefbb94f13c86264525e04b2ff128e480fc9d9cda4fac8b13bda0fa44b2c14029a69ffeeedb6b29c12411eb6c6ebc7dca856676f3775a608c174757d54b0a316fdfd22840e69bc75509cd348b84c0d4e2be3122c64d289f48f576ef1b6b21f02a9f585d7a4f1b809c331dfe9f1eb97dae765f76dd3b330c272831803261977ba73d980d5f2be2861920d11965ffeb64f4d6ead47a4929dec8035c2fa344d50098a72f1b8c2e56eac0c2c107405e8f772f0a432ba2e41a26dad3505865f772fb1e116db4c0ed5ee9100e81a15d404fe04bbb37d0f6cebc8d1250efbe9f77723ad241dac9c168b4fb67a02051bf3a8875ffaef5140e04fe812d1934c5e36b16f1bb1fa60cac06df3dcfdf9a8895009e66f758fb864bd5d51694f461b12f08f02a0b61d1b37b93e168e57ea1eb0582b11ff00ce5d63f7d94d6cc7d3dce3a4f5a8e44ae374eacc60b575432ccfd0d2df5d5f52b2211c6d47fbc9e2e4e6bababc25b2e010488f746d9de3246ba1e8a41bee2e3692b414ed4250293575cd59c00f50c18edfa422ffa126e45e3cc49cf0b6803232b545242fba5c7270eb2ba8e163580104585058825fa201d8d7fb05cea5751ee397f506632a73155a89c98767dec522f15107f872c40b804c4f0c1277868a92fead6b59daa65e040eecf351e2d9c8ffdce559e7d9f3faf795ba3c019f13a3b98af4cd8401a35b9846e35c44832def4d516c694b5bac8e1b8c055e21cc81bb04286b0530b642e9af527083d75bf5a8f228b16feadbe61a9f5094a0c7409ec35288e5f228d70466b0e016c7104d92b42782c2d092cebf959efdef934850ecdd40f5676b6624816ab717074593dc120ecd0fdbf7b3c813dc156727ef7680bf8243340c3613b0f43598ef0ce6524ba29c40648a28aeafee3c783f2199f9f243c37046d975d488682c28371f34c21195caa18548fed4c31f1326ad566cac1ff8e788a9c2bda8774a1d6fac601b905c9c1b475f2c651be9335996af0cb54b632732b4332a970fd3365bb304b9911f103e876e55670f76a9ed530acc8dfcbd40032354e58c33ac0cbc1e45941e69d81450cc46c69275b1eae6c14526e4278196230640e04578a83bda630ed54f0a1589bdb937de1ad18b388bd0feec403e9da33667ca0709fb1ce426ca270fffca9871e166462d31523a3d7239571ff68377e32e3b824136b96cedc7b36f7a11bf8d48d52a36f421adfec19a3a22d87c359b6c5b4b9f71f8c8d2e59b58d5b1736dfbf56c4562ca2d57a17d0fd2a90f022a57f6af584d016bb350fd4cde500ce1677c65b14489a30ad9a078242e02686772a31d47ce03ef022f1d70e628bc03ef827ed1928a0a1d30c103183483f6d3171977b8105b70d5a8fd51735c9b53cacaa6ad19c147654e39793642fa2e47f177fe1618227b56eb88e6e43adaa261d3399c8bb9dae912dcc4e2163087c991fd03adcef8ad36bf64bd2f3028f0e4c76ffcbc32561946c65c17d7413093cda366b662e3aad6d8b82237b402bb954d7d2b54cd8af0c54f02486907655b64335bcdf837c9d9507500050c975132361547b9f493d2663f72befe25616c4543c8a2ea0be07a4c8506887bc1f606e26d7da20bb1d1293c246094bbed7ec78d101bc51bc77303028e8eca18f9340a7fc3b181443c4e32f6119a7df06834c2231a159c6631bccb99880a95ee9e03cbcbb42c3fed2d67496b6fc29fa0d0dbf9154d3bac6245e12f369a562dda7036f7556e0d5b9b5aeefacab241df18e5a5744a383ab7f53f7a58a90b0e65a7e29842eb2ce46e9aa8e4b56403120785e88ac5c4faaea3d455da46e4239ac9877545884eb435ab732717c7171e46b70d87a117d074e0e59ba4d127a5a4fd6da7a07b7484e9fdf184ea6125ea713eb389430961e0d61503da2dac5449bbc2df6b9cdde7e2d8e5f93e39c650153ea86a1765f157c91103dc04c64a3952308131b7a0749df52911be5052244bc050e68055a115210687544e980f1671e8052cc97b929b28183571253a62f2f01184090b1a1510107c0a1419a21f954d05ee56170413e1133771f4c19bf76ca5b51c0de7cf5360eddeb02547ff9d6fedfb64f62496b09d972ef131204114911350ee3ceb80e3776d885f1185787ffb8b0cbb8311ee4fe38902be3436e900bb9400ec41d722257c8e90a2e100fe212394dc1a52b3865c2a54b3855c10de2140597a6e0b4c9a52a385de252149c9ee0d226a726b87489d39a4b4f70cae452139c2a7169cd6912973239a5b9548953125c9ac469092ea5f9924b49705abbb4045772971c894b6b1fc15572da844b99f0998bc44370477011dc997fe086e020b8227807ee07ee810b8273e076e049ae076ec4e5c08fb849ae816bc437708f3806ae069e81bb811fb91838929b815fe01e39ad7269135e5e24afc0bdc02d70cb532a2ead720adc0a5c886b8153175c0a9cb6e00af121ee33c55d1a4a0585c1a993fb843ee1f405f70955c2434ac56d41c515a9b8245a58451a836b6b6050a2855ded9a76b313956cad61545c138d2ae1d69c469ff070da1f7ec045728ae874cc0bae8f5327b7c7a9132e7dc26915973ae1f4c9a5559cdee0d227a73cb8f406a73bb89407a749b8b4e704b835d32897ee200a9417b90478012eb539cdc1a53ab8016e91cbdc029cd2e0d21cfc00d7003772654e6770290d8e807b8013718d9cd6e0d2195c0117014fc025a20667c055c017701370075c06bc017701a7b64b9ff803ae035ec46dc029cea5b647e03ee010b845e07c02370297c085c029152eb812386dc19dc087b82d7238ed1040fc6020b014c19630413dfd223bfd223c3f5c6bc35d9bd3b1ce39812d67146cf4071c37387470ece0e0c171c3d18303872387c307c70f0e201c4131b5989a189b989b185b8c4ecc4e0c4fcc94985b0c95989e982a31b8182b31b9982b313e3158627e62b2c400c56889098ad942d6481ab2866c42da904ec81b1287b49139a40e0985dc21a5903ce414f24652217bc82a248eb442e6c82ba40f8985fc21b39040a4163288dcd2640e198dac46d64466237322bb91e1c86cb21c998e0c8a6c472645c6d36410efcba6344957f0beecd62455c1fb322a4dd214bc2feb699236795f56a5498a82f765b826e909de975969922ef1be2cd724ad795f76a5496a82f7653e4d5225de9761699232795ff6d324a5795f96a5499ac4fb32a0266909de9769699292e07d595093b4f6be6c4b934bde9fd59a44e2fd194d934ade9fd53439f3feac499323787f66d3a408de9f39693204efcf6e9a04c1fb339c263ff0feccd6a407de9fe534d981f7673a4d26797f06a5490ebc3fdb69f288f767529a34e2fd194f931b787f36a5490dbc3fbb359981f767549ac4c0fbb39e2691bc3fabd2e491f767b826cbf767569abcc0fbb35c9316787f76a5c90abc3ff36952087c84104ff2e521de9f61699202efcf7e9a9cc0fbb32c4d4ae0fd19509311787fa6a54908bc3f0b6af201efcfb63459c4fb396a4d3ae0fd1c344d36e0fd1c354d32e0fd1c4d9a5cc0fb396c9a54c0fb399c349980f773dc348980f773e03449c4fb396c4d1ee0fd1c394d1a793f874e9306783f07942665decfb1d36491f7734869b200efe7e0699200f80823e81599002c783fc79426a9cdbbe61f92f01fde054d1da8fc0355c27fb8e75365948aff70efa7c99a7fd821ff704aeaf103a636bce5b07b55dac4125a58abb0755299f2031fda14834efff090b2e07ae0cb04c040d486d00ca919d26488cd1027436e86e00cb10dc919a23304ca909d215286f00c9932e43684ca909e215586e0865819921b726588cf102c437e866419023444cb90a0215b88d488d010a921d284880d1127446e88e010b111c9210285c80e11294478884c2172234285480f912a447044ac10c911b942c4870816223f44b2100122a2854810912d3617089a3110c1c1ac21e359c1954d51c195dd527065549a5c590f0aaeacca09ae0cb7c49559a9b9b29c09aeec8a1257e6c3e4cab0d05cd94f125796a504570644822bd352bbb22557b605893bab29b9339a993bab19c19d3511c19dd984e0ce9c80e0ce6e3e7067381eb8335b07ee2c27c99de970e0cea01c71673b46dc99940ddc198f06ee6c4a06eeec86813ba382e4ce7a8edc5995f2ce7017b8332b16b8b35c05eeec0a05ee6c027726813b8bc09d41e0ce1e706745dc99036e8e06dc1c0cb83916707328e0e648c0cd81809b83889be3003787919bc3003787cccd51e4e628c0cd31c4003edb82103d4b3865c2bb09a755deb73a3b96c7defab6a7ca2cae6f73554667f0bef5b13f7d0b54655407efdba02aa350de3fd5aa8c4639ddc1fb279b2aa33c78ff745365f406ef9f6c55469fbc7fd2a9325ac5fba79d2aa34e78ffc45365f409ef9f6e4df678ff44a5491fef9f7a4e554eb8939553ee74e5e473c272fa396539019db49c824e5b50281a540daa49932c9493268fc241f551394dbe9a74f13eaa8fda414941f1a0a634f9f23eead6e48ef751549ac4f13eaaa749f27d5495267b781f8543596912e67d540e75a5491defa37c9a94bd8fc282fa691200efa3b23479e37d14509336de47696932e67d54509334de476d697287f753b5266bbc9fa26932c7fba99a2663efa79a3439e3fd944d933abc9f7292ba6932c6fb299c2661efa76c4dca783f95d3e48f2681406932c8fba99d2685bc9f92d2e41022efa7a63409c4fb21016e104260223a93c68fdb8f9e1fb81fb91f3e3f7e7e00fd080252035203c406c80d105b8d01d101b2038407c80d480f101c90dc930bc407c80f10a01a03d2e306a905a1095213a449109b204e82dc04c109620b921344270894203b41a404e1093225c82d0895203d41aa04c105b1122417e44a109f205882fc04c9120448bc41b404090ab245484d088d901a214d84d8087122e446088e109b901c213a42a008d9112245088f9029426e42a808e9115245084e88152139215784f808c122e4474816214042b4080912728710e0ca80b832225736e4ca845c994e902bcb017265b62bc3917165373227321857a6c395d5c8625796e392352eb9c325b5903197cc42deb824002ec9c3256597d471492b248e9c5db2e79254c84bde2e39a561fd1d97e46958ffe59252c89d869150489d4be690af4be29037a413f2976c42d69064cc9698a0182da61b03149325e627064b8c4fc362aec4e462acc4e062aac4f4c45089b9dd98293d6e0ccf136ecc8e136e8c4e1537c65663313731363cb8313531b528174710948b03480717c74f8de1f0c191bb38703586a3a7c670dc6a0cc78e4e8de1b055b9386e9ac08425f45c98a01aebcec990daa4414447099774a3e2927a9270493f5c52ae61a5485411c19625db006ed98d21d36e99c327f7f32de7146dc87d1eb7cc6125f7c391e8baf449cd4e1a2ccc0b1db2598e9949f4e1ce2c84d1888a16c874bc80a125284d0ae0fdb2b41380972529194ac3786c75c207912443a74800a572ea047ec95027680c6c30831a8d3af1253419dac49c821968b4892fa1d11acc9e538545e5998f8b111f97ebf8a5e7b95ca17b9ee715d1f9bbfcbcd787bf45748ae414b1752f5264e60e355dd84890911f976b048b11a017a5f7ae64ab18081bf21d1aec9c824f1128a48e922db7788bbf70f9e5e0e9e173923f6a339fa9c37b896b321e592d0d13d62f6b6601e17811472ffc39653f6a6c998717b189d2506bd208d08f242669240db30a1f203edbba0b2e0fab5123e31a8c11a0267ddc1a968649fa9862c2fa50e8a961bb63eb86410d63af64eb80a8c1f1b2c6cb4bd84ff281ea5e90aa993a5cdff1b24626c1489f93444265efb39be37673f04c31c939613de0b2fab83539270cf53e15f23deb57c623f3d18303973572e93b7059a3f4132e61222e9f4b0f71f992cda5bb947e1fa9ece1998f0f1e1f3b303e747c48f1b1f3f99872027d40f1b123a5927ed43cfad8f101c5478e0f9b8f1c1f3a3e76423e9af8e069321484dcf73165eaa03e727ce8783e9ad01d3041b3864d93dcdd784bda5597ab3608d64260485c3df1750d8aaeeb44e751337562520125371546c8fdd6fd6c0de68aba846c08b25bceb690630856c72dbb27a0b834f3d69352b9b5110d47cd14b736a27d345f0d638c45d7ad39aca2002e4c002e8e9a0f1866cbd77589fa50c4d6642e92d364edba920bcf49a3882d54c44699e8b0684bc3aadca6eba2b8333396a021c1b291e2ce748d12ac90a3eda8c2072f3cc0e5b01e4edbe2e35de33d27e40e81b7ab7f68b099f459651f1b2c8e2b0d6b2b38720dc3a18322f518338e9e867d6eb0dd5b6577af8531aee1fa853e8cbf5a0d33715094cb22558ba36e8963a7b433394967d62913f72d6a58f22b749abd979687bbee0d3955ef0654b9ebbe4b71a3b8f376e7ed8a92b00515d02812ee0ca9e707c706391a45c2eb2f3c2d581cb347247638f4aca88dd6bb82cd62cb36ece4249d8d1040e6c073bdea9fb5d1b04e44f2f122578c63d2f86a68bc65abf510a9c7f8d5b5356b6b4a59ae8f993b4441b346bf529c56b5d1af7596c7bb4e9fb8b66b43d7b534a3ad95df37eb588adc90fb5df77289adb95c9fd5751b4db6ee3a8ea9c3bbebff785dad0b6b988d1aab0f45b449059834ca84e7e345f6f09c343e5c76178121528fd0b1f850b9e5d84e34a71a161f2ab71c1b4d889e4e58be3c6b139509511016e1cfa943f4f2fb41e573e1f1aeffb8fda0f2ddf47daf2188a04ec8ccc06aacdf893e1b5fe8b3a1d05885cb65452e5125023c650213f18944b714e55aa58a953cab54c1c9a5a84a15284da0c20d19ac7404b996ac1f5d3642744589aa0f43a2e896a42042b94402e730247e241fa21c7228a260974a11dc1c7e7486bcae8a4425efad7b7766307bf4de69137716a5b2c0d6779f2509050161f1c9e1a8dc787672cec9e674a239d58280b0f8e4ce51c98dbbe5a69536c746ebd3624b51108ea0afa649936f92ce20f73f27de3dafc3b8eb3a2038d8205bcff33c4c834f4139f4d2d626ed14d4048609223561431be87c70cbb38a05cc9c4f0da08486e050d5ac9867952a587209d3753eb8e50e8b829070a712a680a2460ba7ed484fd812a36a14b43594886a1aa9091b44954547c21dc7b0851aadabb6f36a0d85bcea853cef0371065459d475dd6c43adf30112b2081fe94e9180843b49b626b2817dee3ad3eae1a4809d5270414b0eddeb817a8d477bae90e772796bb05561a7db15f2401954d4c31f3d4d8efd32498ff747cf0f2ae38f492a000d3d2d5825514257a2e435046da2091cc23214076fa0c6faa1833cb684092a2790e8a4df8a43a1260e0ec136f199c1b2469c2d816424b3ecddf3be1af3b0f7665d519068cb47f3e19bfa23deb18d136c53633a386eb4ec4861859a68cbc520f7bdda8115e34c1a340dab15241159923b0ab3c5ba6c938679af9ff67b47ea913a3dc29d5935c10877096de5051a6de248a4b2203333535d20833604d16690a84105296a3348783c2ed8321e09fa040b545a0fc3ce7bf75c7d80e34377fcaebae5574774f2e8249dc799faaf0b36f47ac13c493f3a7b3749e7d65d0fbf2dd8d1b7052bfac660bd53d287c57ade90ae7b7dd8dd92fea0578842a1fff070d9dd037449765d1778d5d8a3459ac28eb76958e326786c02c6386a3041305b9e604f76ec32784bdce4d946ebfedcc7374d868090fb1867acae7a5fdebbecbd95ba5fed302e5b1826c8470dd95486bcbad1d44c199840b74c67951ccea3e911eea45123dc49f36c94181c219b56d80b1d04b9d69027b2d565abb0a157f0ab2291e82c4843b074e6f1961eae0f2b8b8b4421ef2c58d02a12b110b958dc995d9da509b512328899f87011eea4d12977660689a9051ed0d4423500ddf0a9ebbaaf0aebe22ee2c3872ecee2a3bbc01f4db94588b9d2b08ec98d8e591cf5f0d5be8577121042f70b593d6aad43b0a69a59f8c8eaacbf7cacce7ae8d21c760897aa57ebed4d95d1274fa0624ba64e9aa42ab03da105b5bec8ab2129241e6a931bfc1c3fab0a0751d3b0c61db620b69de8b6f67db6d6d3d7b01f55ee3d755b1b5de3689dd81b5bb335d666732c14bb6379ec94d125a24b9c40fc83ca93541128a2d77a51104d826067c34c2f4bf8fbbddd139cd864d62b0e8aa0ccfaea9414c42a08d62b8feeb112fd5badea14b16e6d2c4d8b2e4bb1169774702987f4038b425d97771f8bbb3cec447c0407c1c7d7abc7b7a4199f9286905e7677c177e6ee8a2baec83749cda3932a1e9d2eaed5d39dd9c5c5c59d191471696f6a21ae380607f647cd176c89c96045ff1e865474c1f715042fc9e1b4400051d3305119ec0f3ba308024f9e510441279730794611845a8609c271f3597b132e71ee4b74dac44be4048e12ca4408844d0e5ec2280d2efaa450b42a8a2ac1561118442d20b000f123b2bd24852d67153e05c0758c480c56741c3c3041b43e0e1d97cbe5ba9f5444a953db5c8d3fb689281450dc275ec2043d815f2516ace3a829b1605162c12a01e153a2503c616bd80ab7f0ad757f35ca84cde64207ff8ceda6033c436d35466f33d879c28d09269ab061fa04b6b6effb1ed227eeab756abbaf167e0d01c58d602830adf5122688a56addf83597d0badb3b6987519b49a3bb27065228aac28af2115d16c2c5f54a7acdcf6c1f7a60b0e52c7742b8b8b8c01760d2c0dbf368cf0a7bb2993a74c8dda98ecdd421ca5deb96015307cdddc1bb5c06bc0b09bfe6498d65ec5d78a6259e7423e24958491499d34b5762ba7823a593bd10344c46d657573df5dbcf2e75a94e8d755f5dca03da58f706a26c3c2fd822265e8087c5c5eb82355d3c1127dac9744db759420b4d97747b5e13f79af83504e9a6cb906efabc09cf449958c6748b67669d9975096d09b5d558f72cd64e1af43f663ea23569f44f9306fdc8f4fa9268125fc2f3bb247136fb3e6b5b2310dba8b1d9a8255eaf9210ce17a5a896bf7f55e6fdf3a1ed93c079f17e567c5fec1b866ed9d5f2f7d12b5a35f6af775ea12fa1811fdd57080b41c3a46fcfa4b19228af2148efcb9026cdf425342c733a88676024159416d0262d0a1d956027adf4f0250cc48f22937ae932fd5209ac99d5d4d8f714265d348d4ebacce824f0a3139e215d7ca3de7df0327df0a33735f61d3cea3351644847e19928af2150efcba0429ff98ec23c4460ca53631f09cfe88078e67b379e311dc416a8b1ef33f63fb31e8f092198210637b0a9d56893d628daa4dde47e66108aa633d1b0032d44c891c10ea200036dd29a471ddd4913ef24d93b6926104791199df4992832e04707df93bf379e8922d32fe119fa7312c633345763df497884677e66684f8d7dff4e836aac2757d29ffc8df02bf4dde6bbb705fbb26b7e6c72f075b9fa85aa9420d7b63b62827dc980ef83b8fba9b1ef5f2e7f2f3e7c4454a31dde203c42ace5eef34519f2c99d41d020f53a29d81904024a6f95ee8c284f95d91aeb7fd356dcf1e4aeb5767884270647f6961d0f908ef5e7cbafbeb4f4650b48cbbaf01f2e77c0e58b4c71f992cb490593f04b3983ca1d4846c4244c575c71c5153422668d515cc25a3644743a352653ea6e705753633c3aa42423d3c8ac3171deaf922e92f0349db484269e92f00ce926fc91644c37e159635d5776359416d24a185663f33c6a6c9e745f32e0fc129a78c3309cb70cd5e4b6c9de8ec713de2e77cb2e57c272d9f1e01178bf9a2aab5d4dcd75353557733a1d4f8eeee4647aafeb78ba1e1de4b2c5d3751dcfdc21546ac2b369d21daa9a8b162c5e5e2eaed6c85aa952a8933595486238023f51c8eb6a4f1a93c6935a71d714e09a501b0338aae5d9cdc096219b1c7a5527776d4adf3755f681a7d84658756c7fab557ab6164f4d7fda306413b2a9df37293d8989772d7b18bc3fdeb4b4fbb634ac83bcd71058fb8228586bb249c36857433554b0e51704d69aa49452f09406822f4a6fca14a499fedb52a3602dc8bbe996b05f50935b483da8775365a3f7433555d6b85a6d095568fdaa437784deaf39983a44f7802786dcf77ee80eda5365dfcd8e67ab329d2a0b4b0f676f351e32e4236a3ea2e6b2ea845a10ba219b9b2afb786a6c0cb3d5e19bca7393c910aad937e4fe7269c8fd7d6d9835fa5b9a0c4d401a9f997df20f19bc5090fdb680b58ea12fbfa027e227c9888867c42b29017811bf8c88279d849584177114ef93169e4e1af8491262f4ec69b1a734e80bfa78aaec6bb5ace5c914fc7255f691e05b22c782dccf55d9a47d5feecb7da00e98f379c1ce5c82b6dc3e5fad16544f40d3905d3065740b3dc3ac8182595730c9faa6344e7433b0b46daaacd2f26c2972d94e6e1968d2d042474d0377f2cc01096f89a85964a035fd3559d653faae6143b0ff6817c54e3abbb29ed69ac52629feba5bc27654b0fd92f6bfb0ebdc3d1f392249979fd45e46282d744a0be11a9116faacafee34bf82987277537e2282109ef55d77dd16a8b17a06dbefa660fb35f49202cdda24adb526f3682b8570be285d70594709bc2237a8c3c34d1a9e1533d6f7b9a2f47680bc9d1a23e514164bef59fcfa3e17d0d411cb34a1d328f1d192a057d0a288ae84a5a55090bd1f7bd4e9fdd1cd8889a9c3236bcd84fdec8ca80f35a7955e8e6690fba32668004aef1cba4f4c475db163f556749fd47c34d353b7c6d24caf2800715370e14af6b217d464596bc09a9f390517aaa4bc2df4a6d6545bcbd3c30dd9c9257ad43ddd5ed3cc47cc49e315c2a5d7535f3276c67e09ed745f32a69f7ec233269ad2516578cb5d8e7e8ca82090e9fe2a71daa430a5b783dca73db0a7975e7a3b5e0e684c3f743d1cd094a7b3e3f17843983b4016cc1a0dda1461ca4017cc58df860d1d74c82187d72b97de4e2a97602a97de4eee1dde6948f2817a1f4cc3947d3de019e60ef06ddf1fe95499ea8d859a5c12b93fdc1b7297a39bbc622919cf6a9d751656c27acbbb122523250d31b25e1ac79f3eb2582f9dc51a29196c7d09e246b630d5055b7e99dad6619fe9f6162bb137e1cf08eaa69bb012d3519856561defe73524d71c76b5bb5af24e6f59b960cb5ae3e95c25a6976eaf12fbd3c3106908fbd327a900a697cea3437b5f32a7db9f6e31e8f392c160aec64ad8de13f642a402340d353f117e0dd1b414085463bab561ca405c8d352e5b2cc87dbb446e8c23416e4ae9c1b07ae0cb1d3e2289cda3839f0ef542ff7aaaecfba9b1befd74aa8cf5d4455cda561e5df00493461fbce0f75365200a26aeca5818aca9b12ebdc3e5ca09eb82efa7d44a610f0762dca534d55ddd1af8f25e1e9e89e27d46f5d23d2c733aea283c93a2295d85678dd19c9ec2205078baa5abf3a24f7d096da7f4d3654a3f9dfe747a0acfdccc1a9b29619bdcb49310a31aea4e5a2a8bf574703069f44db7f76c372508447b3cfc41f976a897c5ea7c553e5cc78c7646525a06d69a91adca4ae568caf759db6a9d5e8e7442a79f4ec37ac433d2a9b1d14eeed1948ef5c11195dcb740b5a6d680401fd996d46ab5daadde996bcd8d2df7ab4edd01816aecdbf9a08040608d4e6e2be080935d795af1069b3c490598b4d3274988d279b4a7c57e54a37454931b04a2b49ec4697b20f598356c9ece1dde67cdf3b586eef0b0f7436b9c60eaa0d813c3a4d147dda679b7b3136c8a0ab60481c0a0516d5433b219dd4c1d941a911a83ade019668dbe07024d1aa41ee03fd1c8f34e29a5dda8e68e6a239a519391cd1d3969d8e866d210832dc19adc3fd5ec8d2df7c19a2a13e56aacef63f373934540a0ad69253c6bece645c1fe7c22fad2bd97f4220c6ab960100884c120100804aa354d023549df07b58041222f8b07d431fd5418eccb068e86f5ef2c5765a5d79a9e2afb6c361d1defa79c3da5f7537a3f3543545a098b523fb60481bc1f108807182c7d39730997880dbbc2060e526a778277b9fbc25ef461b8e2170da3366c606f592958db9a4da91bc2f922043fdfaab251f8f979f18654fc6cebb449731a466988e29aa4a110b54273f4f4d643ab3459f3b4e24a96204ab1644ae9964c1ff23abad364d93599523a25d31e4f66cbd28f2eec9fd9b001e446448d51216a8c96544747d498e28830ad293f27d487d234f94c3740675011dd36a10e4911ce17e5a4422d3765a28927a440821192b091c28d3643841b2148f1c1691358c7064c6e5ad8a151197c864ef90c1251eca3b0384e13d40999286e472802cf108200841f9c42815f323487e2e034e721b5e18034b0254cd0f759db6a1d96652f4ea051284e6d7726004750a246a3b0a38cca13f7042ae88eaec9a8ed50c8d65663b6d6b0198a736a63820da4e49a4bd1ec98909325f7b1cdc97d11e3d0286c2887324c502331e2a15128b0d5e99828d6e6e410b4d91958ef211cebcdaf8631c67848975ab4050787da70985091676b1cc7f1e3776852f5f1369a043f8ee338cbb33c8edd2a23d8ee4586919e52e52a665ceac69212b61bf20a02825f92435f92434fec6ec906848bbf8284c0491ae2e221300482e08f9e4f06d5131b17d119e2c27b68a5d81d0b45a7e632ad3c6c733e9bafa6615fed6bf2d57c4ebe8e32713d27b6105443a34e5cda821e1aae4d1da4dc2feb4daf33a0020e07a526e49ca49a90a369d089759df4bdbb2aaf4dd77ae04d9325c581030707a914fa1cdf3ae9d61d7c74b36124ece23041ae5b334c0983a911b72aea632935964a6329350ea9797c38deb248fec649c3f5f200301f2ff2f3888d98c9df87f113ca04ca7b290a0aa289574791687cf98944f75c6f2c72fd7be8fa3cef7b6dcf1b7f27ee1dc4e5f7fb16a7a41ea58a65c2b9f716c9b14a763292592ed99c687191cc32f8d62d81e4d6c3975c5f34f9dd8523a4b547d7d557dc9540f22c03c9ddf84afae1baeb15c36aeb6bdda576b5eb4cb55ba96ad7d5aeab5dd77decbacef57a69aedd57ffd5cfd5d5175ded304be472d6c1695729f0299e09b678cbf4d651aa79c4bbe85fe8d6ea95b31cbaa17bf7fbbeefc7f7bd03cf52a9bc7778ace2d575278544f744de90ea795ee781a07745f71efefd786f049243f780e40ffca853fd43327bbd928250bdc34754fff011129259ee1e9a6555259d75daa1f0ea1d2ef157a6560b1c89ad9609974a46abae458bafba166fdd16a977ddc3d5bb554bf4d04ddd754b20d9753abb7c4175fda249d5bbc39a34bdfb0e2dc3d135290895ea23fe83944ca65cc751e5fa777f186c878ed5cf16285c5a126eb56c2fb363a52ad7faae63f5a56b32bdab3d54dd55aa20ba17b09aa259848fa43c5290148864267acae5ddaf761f2f0e1b3676d801067bf1e2b9bee4ee2557d378d59d0d1b4d4fe1d2aa7069ab6aecd888cb8f052423992199e5d05da24f11f87a447410043b74cf0b853c0fd7f3a839d51948eebc877496bb6e8a4e3bd17974052f9e0611368585483fbe632af27089448723878e732a6573eaba7cf5bad42299650fd0ecf25689442eb33eba251097b36e919c223a0dcb157f345b445bbeda27e65254bb104f6ddd5a71501470f5365de470eac49d341737a4f5da1a4d17ea70e9e1ba3e84b1ade9d0604b5b13ddefacefbbaa775d474941a617f2878f883e73489f70820d4d78a116faa0595461d9d696280245ab886dfc5c456c1d451128ba771786dcd52872f752746fb9fbc05b77a81fd679d49a475c7a51d428ba3020f170393ccd93d4e3d2279cd851850f54571479a0578a60a77aaed77b1edde1b256b07ab5e2102e978440f02e570d55d7fd701011ec8860874775b9d48b30087a1849e7e1eaebe5795e7d7749ffbe57afc7abd264eb1d7e0882202e4558f4934d17ad2a88435e95868570e8e18d87ab9e87c4c379d5f3de79b81cba2874450f1de7ba0bebdff540f53c6f75ef617bb54728f40f24b9eee260902a029d5cb2eec2483c5cf670797516e9ceec61d279f4185e75f1a5168987cb1ea0f9fe756d7671cb24b9ccbacb2d45b093599f39c4b64664ddd14732b0254c10ae0663f872e8c329a987004e493f3abbae6a812d6dcde5c303f09b1f330c838ca0572440f49934fa25439d30c1961ddcac200351f744fded993e716928ce4557c64d06151c1c9cd42da2532407a7888956e25acdf5b6c8b7cc3aaed558bd35ac0895225468a619d7ba7fb5bb97ebbaae3b580aaae899c20c03089a3a6e9ee28a9b1b4213d812d7706a6c9aacdf6b165dc66deae88c904680568ff13375d4c3b84d1daddba0289154365589f4b2640b79260dd4cb59458d27e39934eacd5682a28a82429e8ac555cf0ab7cad5d8ca6785a5619da5e9ba892ae08f9b1f4e7ea4b2ea67d2e8ffa8f9e81318c6d66ae150f158f033b33e9248e4c1047561b8658da2ecc2904b5cf3a2c8250e40780bc05db6b4d3b02e4109c0bbfbe003a636001705c08700e092949d9e82869d1d9829f210a7bdc7cb2ff34802154ce0d89e80a20633a0410e740025ca0e787083275538813aa12fa02da02e98800422008107d434b171728363cbd181b2238567caad4902bc9f834a933fbc9fa3a7ca28eefd1cb826690cb430ba29404ff7c0e5e7e3ddedf1d0adf76ef7ef865ca2b7aeeb63ebaa3b3e7557375dd54937f5d2359d754947ddd27f596f7151c7f7bfb7c55f17dfe5de8feeeb2eaecbc53b7a28fe74c3e3b82fdf714fefe1e23879771ce6f6f0d925afe3c2fc874b6dfee2cecec3d571d97df11b978703e0ca1e736fdcc605c077b831a74bb8b4e734ae8de7b83bbcc6a511bb0163adc91197ac87a69709fbe86cfaea75a749ea84adda749a9c4ed0f1c9526ef5b54a9339186431adc6b90a71c29b500f952c8ae23b5765b3d0e7def08aadca6698eed45893e3b1e4152ec78b6765800665d327a987c95ec4250dcaa2e95f93ab5449b3c8661fc7afcbe3272e91d0a0cc7ac7ba5fc3560fc35c980b7dc25c690896f592eed01d4c791a5677f2bcca89f8b2daaae4b2cbe2cb8f27d7ab6eead29f8689475d9aa561e2679702d59878c242946e6f29be74d32d91a8c9a278ba43797255466ba14fe986380dab27ddf0a66135b4d5978060cbf026575bcda93a154adda9dead3cb74e6958bdaa66bd3cab680319449f3c7340e25b12d3140c57a095d64a2be5d1b0a69452ea5d242fd9fba161d4a3970710d1862f397585f55abc3473c68c4678d6b09eb9444cfbe511eea1612dc4474358860bf607204d5f5e2ca10539dd4b1645d112483dbad2d9253197ad37f9d230cf0996c59481333675d04cef9a64678521e45091e98b4c2fced0ab1df889be1aab2705f1bdbbb47be9bcc621f1487d0bf6f255f0f4fb5aad975615e156a8de9687e7297dc368cbeb2a9d5ea971eb4dceafc315846eaa0e43a15a6b855d55e8a5b5a1fa83fff045b3139d7eb588c69d6d55ab0bbdd65a6711e6ad23418bb445b145da95d4e33bbd73f6254564d181344971ada25863f522fdf7dd1f906079344c88b0e22a5845cde38726bfd71a529cc4cbddf81524d4d8035e16e11e1a16c262c3481d89da4251a0308f7edf9c457ca26f92a88d1da4d872deca598923f767331caf6d10c3ed0b1fd0d441e79c7427cf9e37794e1b35d67306e5f98913a28ea814fd53635d6d6aac3b5cbe15c2f9c3a08dba93cb7e41cbc62637aefe7cb6d5fa742ebaad75b353f37dd6b6ca0f975b9413ede0aa6cd2723edfcfa7b313f2e980443555c6048914cdc55de860928e8d846d37673243baa9319b960baca4450b2c12d58872553613e35dadc56beb9d0bfcd572e7f37363c3935b14c2a5ad38d712edd0497bcbbbb580bcdb8e17d4c353c3dd6aac732dcf0727caed64a086424516bcd0840a9840eb7f3b55565fe0862d4f72f0841434aa040aaa7045d01553a0f50d2530c1852b94a042a34268830b6ad4d0829a77239ba1349288df2e0e54ea774125ac8484bb1e385841aa91b012117738b146c44a30ee72ef7b36182b71813b9f1aeb6325adeeaed655516ed2e8e77277bf11dde98df531278d979dcecc94095b76b5ce065f24954c27dbd95029d58a35b6b88bf7bb9a96cbe5c5e2e530deef6e680b17bf2f72387ec7c03070c8eb660c5da95863cb356fd0b3b8dfbc41ff7245e0289c37e85b579c37e8c7eb326fd0b3ee6bdea05fdd9779835e7559cc1bf4a9dbe2ba9837e84fb7346fd0db4b9a37e84dd7346fd097ae9d37e849f7346fd08b17356fd00f68d4e317a80dac93218207102245200141b78d26cb6f5683a3073ae7acf8c51351f7cb27da6c219c2faae759a0876e8088222400021a9b2d354e2890792362a592eacc0109e5fe0f441431b3781e908655212eb6f2e8f4a42b228165218850c10299317a22663d34387375f650c48ce210eea1c9faea514adf613103b0dcc35765a351fefa634271d8e8bc50a8ebeeeeeeeef6bafe6156e9cb94c660c559ee22cc7a689262dc6ac15e58951ac2f9e2457d0993427928147aa35572dd7dc5eb604df6cd0e3866487586a83411a63634d89252db9c342a8dded07753fcd2ea68d7e473bf6d4f3041cb0f13b4f8e850b39f04b2f7524a202379c9defba6b6a87055368262c36ed7b21deb8bee6cd8c41f92975cd229d96c29e70d3eed2385dc75fc5785f55ee9c3f2eb545654b98ea127e5d821f3b36165bf76259d528ea7c2f9b870ab04e5c9f87ee9b3d94a1f948f0ab9e252f5e30415d0a9c2e5364561cbcf966914d6cba2dcb9a10b43e2904af2315f3f61debda6def4ba128f1e7144b12797259e9d86d17b9d25e5c984279a20821513545d79819b3a6ad4ea795ed787ba2f3a8c5a2fe4816ff02bf1745ddfd640258761e312f68d2f55563cd1f7b55a9d0a17c222efeda9705f89a76125290da3b9fc3edbd441fbde3d1e3df1115e4602cb259e1ff3a51560c85292528252069dec932b834d85c5b392bbe223127d390c892937d826a9952647175de593290c96bd97cfdd2df02e77ded7587dcbfbe72181656a1bec3e58eefe9186b8aa7ce107b9fbf224f508cfa3c39118ea3e5b28a4c272a5c91aeaaaadc932062e7f5032fdfcc426f9980f85fe8d4e5f82d2a4e8529aac2728e549e7d21c5e9a47774e1849b43549c2a1ad61540c73e6e97b8557893eaa2baa9f2690008b0a885eb56555a3d292e9aa96e9aa49a60f479fe863fb72442ca114d420775885b3d2065b86dd8479b40441e8cefab03f9e3ecc69b2f129a76123f63c1b0f2714c2d2e433c5350154850876f4b1922baea993ecfd25c438fe65a435be62d797b42e33bef56e6ced9297cbf5e2f2ba0b1def78d78db4ee8295b8bc7517561245c6054f0a2ec18e6ffdd5afc6af215c77b911d75db0922832afbb5cc9cb5d37e27216678195bcf0efebfee5b0c7cadbb0d1ba2fef2f215efc5580497bf19711da032b78c0248b4ead4683f1f1be78937a0841c364bc8b33195d7f5dc6f597eb8d6558fc05cff0a0fde57305285ad6606b41ff72ffba2c3ede288d5f438ca3cbc4b5f88885b8ebad3796799d059e61f1d7c7cf449179715d66bc0b88059e29620377915ac20b49b0620bb65a0d07ce1c3120820c5aa0022ad8d230815cdc497bb993d6ba93f6ba9336692c26ed51645a1f3f8e77b9cc7897d136be059ea1354c6de34b5a1bb14dd7a86dd24e4a60e142197c6ab4b26bb96d668d814bb0321ee332f0abbf841603db4a221ceca4bd8c50da784a1beffaeb51645cde7aab75d7655a77e19928ddc23899d65f7886ee505ceb25dd51124546890bbf647edfc22f23f8f718cf447909d17a0126ad45676a9ad63a12b55ffc9219effa7817fe6c35065463b4854b30be66c3cad54da6b779e25ac7b6059b4fb732ae8da0e369abbadb464bae3662c8de3b3be21c70945285f369ece18fe3ed6c785c3b2730f769636a3dfc129de69b6d4e80b6f528a5dbd088264a684ef1a525791f5659b92a5cd761552e54c225cd73da6e6b18fdaec4696311aa5cabd5ed8560d72a2b399267d3649f5e852be594743aa6e9f79d6c275b8d559cc4cb5f4ec3e8676bb2e257dbbe9c2641fcead34fa7490feba482ac2aa7b2d2b0141b6c875fcdd3b0290d6b9edb13526867536354147a3677e65085abb2920d4a53294a498a29f784614a13954f932955aec9d91306285832bd926977b2b54eb6ef6453e1e8186c49678787de443378284f29aab8c9a93c7bc25025cf0ce62945152bc8a56aacc2d6dae7528636920f3a032bfa94684fc6956c259b4fa639dbf8646b526a0db68c818b81abb22e06aeb38981eb80328d81ebc95e577be6d096c31797bbbc58906a412c5e414055c6c475164c5cfd4963e282459f1aa358890b8b3f5db22961328e7789f11c943079bd5cb092d1e52fee72fca284c9cbcb5f87f1978bdfdf98b47812ae3369e1022b797939ec2f327eac84098b27e19a34262c3e530343938195b4705dc65d31b01216984912e399b0788cb3b88bcfa861f2d85b9cc600ea183f5e0c1fd18c193846ee2dee8cd88d8183dd193f33806604c1c801c900daa13070208c9eef4c5a6018b71aab32262d9ec488952441afa045a99f34262d300c9ed74b6fac11348b94095b966cf539b8c9658c077603944b19403376aa2cf67da2193bde8c9d98cfcbd84fcce7964b9f0dc5b1258c1df14724c5c0d1262ccd25eca7940104fb81dd327dc9d662d471b9aa566374e775cce279f955b5c04a5c3f56c2e22e280b3cc78b76be7c75d1077673acaabdcc9caa4ced883ea932258a3e285c4ea05ca660375596b2f1cd4ad8cded26b5737a194055f67dd6a6401940a2cf0c7aad58147d1a8b3eb99716a7175d4e2ffe8ce35d4017835e989e547be5f0172e3a7cc6e9493b5536f322d554d98c6bbeb8fc8595a03418af97249fd7eb315e5e927e64b078490262c1e2b016b197a4a01831fe7a39733264fce5e5f4816125280d76162fe74f0c2b4169b1bbf85fdab8c72f6739fc850e78c60c3c43a7c6e88b3b23873ba3e7ceb8a9b119b7193633786a0c3723a8c67a6600d5d86dc64f8df1ccf0a9b13b237767d4dc193b35562a61eca44a183b319f9d72464da68ff98c2fa78ffd8cafc3c8d518057229c5825ce28cda387ed6d8e82f2fa72f18066e66c4307a665c18c62d74c1305c273d8661ec50170c23575dd80629c6339bb75cc2d889f1cc9e1ce3c9f4a59e2a9b412245ab81a1e12a9b79398bd39774aa6c667c8bd39776aa6cc67517a72ff154d9ccebf7f4a55b95cdb8fc87038ea684c55f6cb4f8387371570e2fe76da6068696c3fdeb18cf080088a6e47779397b9cb0f386839e5cce20109733e8de183fbf315cdc182d6e8cdc8df1726304d518fdebbab8666309a8ca640001fdfcf8f8cc5ac698b9984d0c5ca68fd97662373a319b140c522f48399937e867c77c36c881e2064f70908a418a8954132927523839d00194283be0416a062919a4685083271aaca732b025ec27d3973076323d2c28f47a0b172fc7f7ae1a9146a3c48c96c35fc0882103e6f2f1f430a0ea8acdd081c50eb11aad86ba8c344ea3448b0680d3286169364ea3c4470ffba9b224ea15575c41a3840dda0d8c5a038c8652c3bc414fa3c469282df3063d0ae8366e8ac9bc415fe3a668e60dfad74d25316fd003e0a6949837e869dc9409e60d7a979b5a62dea0dfe1a2d8306fd0eb70516d9837e8675c941be60dfad845bd61dea0775dd49679831e7653279837e865dc140ae60dfa1837d564dea0877153299837e85fdc940ae60dfa1c6e6a05f3063dbea838cc1bf4f7a2e0306fd0ffa2ae9837e85ddc1409e60dfa163755827963de189dc59df38678233c1d839db75ca2f294a28a1a9488cb2fc4a51de1b27558c5a58d5ca2801a0574b23d97219f4c0fe68983c2964d3f26314c1df53db9f46c42569834e8fb8672b406bd4bfd115d97cbcfe6d3b035d8f264cb27dbf7593b4f369c67f379a3976e6169470cb6a493d330180d83edf2b4220c4ce452853bd95a5e49a7c952f4c9f4743c7dc926834cc31d9d4c5fba3539ad08031032bde853652ff093e63a09972528998ab854e5b264c365698acd235c967059aad2b7eea9317aa3a2c6752e67a9ca878ab00a47475cb1adca5456cc187d156c5bc8f4aa30647adb4ea69f4d859b34e8d5502281e5face664519a8bca443ead1ff5e8d4b39b964d3b29382ef43fa48e775dd7fd48770d9a2920e15897029a7613995065baa70369f2e553f2a5c7b4d9aac7836acb3f52dbd5aa61f7e3256db783a1e2877b685a394255b471bb10a5763f468b065c986dbe9924d8553e5aaac64ab31facfda926d54e15eae6ae3cc58b2b5f04bc635d3baab64a3fd9219c72fa1b5ee4ba6d53f5f429be06936ccfbcb88ab75d727ed65c445c978974fdaf4b0e449fa31a5808295724a81f3e97ba4e257101f72df87dc437cc04744ef50c8039d8fd4fb985240c1ca24f579b40fb9de2905ce27b7eea48d77d2fa6ec0873cef725f46c6b7dec24a5c3e7ed25cf7654489eb2d22eacd4bc6f5d75f78c6853ba8a5c211e162f39269dd75179ea9ad11ab54b84c1b4887d71256d39a2b84f3856745ef6ba36114cf1a363f6dcc3aef55846dd0bff33142f67009cb738672d8d949fa4173cf17131f99b73850d18326b994e927a59709e7bb36dcb4a1494ed25da110242527e9dc81564e6233fd92a6488447742d7b9f2fca13509eb9248a253c539a012f8ebe84d6d948f7a84d27be3fef6747adcf46c234143783ec616ad389e20e36a72a0b69383a827d4df032227e4df032af214607ff9a586674f02513bef4b0f425b4109cb470563a6be935eb65689e57625faa7808515412656299d2ed9588275d4994c632f6a52b215d7c686feba3d985763c7a030deb68ad611da5a9692f8b05df752f696e7c497ba82da5623d1c417b5d0e5ed74322ba773e3e4454d9a475210c82c649a84dc3bac6d449c3ba9b8ea136dd976269581722853e49428046f4277843ddfb1660d2682e0796e48a8f787d584422a2ca5ef32e45541978d265c0933e4f22dd05cfb44e72f90ce96065f710fe91eead978685ddbd6c89f091ee21ecdd0375fe48d76ad2c3df0bc53f669eef8c10e57a1a0a838d8aa3619f48f1a435e8e7b511f2406b50bca4e7c5df39b0248721bef3f3b4e61089fc4d1bb99c1789c196a6f7612651d8a41e9f3864499e37bc25cd33fc313f3a8f5e92a74874bbab4860a100e5e709852a724cf5f3a2e8ce1c86176fb9248befeeafbbbbfba65b6bf7f7d52aaa221ee88e32cc8d79a035c2f0a5cd94149654b6d58735f94244ea51c23cd01afdbd6ffdbcce1e2cbbee11d87734baa193ae78f036052f5ed279d4f0d68fae77f076fe6a99a42b8e4c9ac2f63d23ea15af7e97f1ac4178c3ba61270a02f59b7cf10072910d6eb05ab672abce395b2d6b7974a7f56b5867f1c7a3ca5c33565f6faeefea0d1eb53569d4ea23844c713973b5daee9fd864f7da4d9f4abd9a8e44f292eb5f2ca1053678a13ed8b2951b96a353ed0f72a9cafdc9640a2fd4f28c620558f20e794e81c54adec9f41268d99725cf17d164f756cbda3c3f65e0adf298b2d0d763719382b727a7ff49cd6927fcb23437a5b4fb8dcb226ab9ebbbfb7b0d7d66efe1b44f4ed7c12e7666f0d6302a1da32095122e93e4d21b97fdeeb41fbeec6ec220957741803db7c613bcd5d24522de54032b026f2015b087e62e8b3a7bd0c6ce5cea42f1a48f1e96eecca597a0351d0ce9580b8220088220167a300b103db8a565a8d35b5389b60f9426e912a74ced056f17ecc12015d10b22e127a7d37b5b9a14319582c31f1abef36e21066f1a46412761b0f5256853bfa3eee882a26e51fe2ab62a5be360cb2f67536560143346bf844c6f057db5016f93060de9dc423c219d934ea66f7567513885a394e08dd657f7a0ae136b55469f843f6117b264fa504b93a44cc54ce7145bc07122ae8056bec865f843a7d002197229dea820fcc9f45d6d273c37379c9e1ae09ec83559361499beec9c4ccbd602d094d26343adc9f2b3d2354d96e00a323d3db882a9a35399d21d4aa5ca8b5cd29d2b587ac825dda15ae896501172d9346537c9b7711b214f78036fe00e6893e93f2b4d965fd097cbf41e1b78dc6e38518f0817d209d5784199961eced3c2e9939480aed14eb8881aa3a86fa0c6e8c4429bb413c908ea28fc9a0d5b42f3c9b4da649f1af3c9b475a0a8d1d49ef06a7deb5b4d939a0673b7aec1d431b13c417d9212507d6ab51aed74d4ad51a05a8d76c2484c2cb42814a856cb8d5fd4c6890d88431de7060787c2f5767abf6f6c394e9aa414c4d1aee212cc650adee80937a659dcb17d69c083ed19e17aaa8cac3479eac42e0716f5260dab219a508d18aa7941e228b2be9aa7d5a9eeac4ea7551576ba4fac55cd24031a7a7a5d8d2c1d209f2ca3eaab87a6f9a2147d5e58e4f0c2e5d57285a6348ca76156d86f09d68707e0f4a9ac95825804fb0ae265d6bdccc2f5e18d986b4ed501a36067c34e387b3a8fbaba25890756e5c303002ba9424f0b76f61d7fc2ea3c5adc716737447d9252b8de268d265814668255b154afa5d59bb46367e1956ab30d93ba09b55afda836b1f4d52d9354fb85dc8fd5552bcc1a7f3aebaa6ed730f1a66beadbdbe5d215dfabd761ee4bfcccacd7aa336fe1959c4f155b77a0c865e5e1c91493eecce2ed151f7a5600dff130b7e32c4ca461f5401a56b930e77bb55aad2c8ab4e3df14bb3aea2f3d5cc1c0bcec72ea299887ab956965c2af20ac9bfe8375530a0573d585097d72a4a6a208845cb236a516d8d930fb53dd11c0c5a1db4c4e8928f12cd44b168bf5954f932c93655df5d07425975bddc7b43a6b95f359d9429c52d0ecab9f6caec8e5930d1f643b8aa214b6ec7239ea114791aac48faa97e3570fc795f851fc91b17edfc8faea212bc41157acd56a1c45d5a8a7ed4f2e43a071a4695845bd87a73ead288ae111435017cfbaeae2593708d4c59b82a02e76875a14a4ba61b1ae22b170c9ba8975d24b9369089675d38f98aeb25f994653ca64c2a5fde9a1bda10de726bc61a97eba3db154372a5c3edfd11629552c8d7a6adb1daf1771f38d59238b854576f695955cbfe38ab88cba885f3e6816a261f31c5822d3b07adc4f0f98a66d4890c3dc0cd3505c13f20a975f10f325cd22ee5cf0701e2dabd23305bb628922ab13c3789309533b9e47b3467c4497937459bc6a14e4d51ae6d5d0e43a8e5144550aec2ca65e9c22959689b81ab369927cbdd8a4c998d78b354dea70fc7ab1d6648c2d4deec0d3a428e2aa885344282d0b126d4d96c24f140ab5884e9abc52c49c5c459d5c6fb28d97224eaea6d1645a9956a3ea4e964aa53aab1345964ac50349c562b1583c9cc522c1fc4678e3863698df0802e6476e1c00e7d1a10d009ff19f26c7d59db93b87351a311a8f3dc61a59acd56763c10f6b3586376129627b581e6de471a6c2e5c76a59f1c2fc803db4350903a362adc21cccfff037c481912143860c924a942103dbf3a83097e626895d3ebdcd9f3f8c0ae62c981eb187302edea41ea26a493e51d643167e0d19cffa8ff12cccfa924cc31657979a9698300fb4868ac65537767bcb679877241fb0c360171f6378b48506ec962e6e00e0ce7c83ae6edc18c771bcf1199e08801be61a36e3c60d179dba3163c68c192e3e63c6388e2b312ce5c096614ebc0d517c3d690aeb81ce221eabb0233e827aeaa88ba7a38914848d2d3d4936cea34555133b6fa3b3a1d88363994cabd56a65baaaa7cac2dc1519589a4d26d62a6552ad542bd50a9749bcbc3a8cab2eaa5658bcab5b8a47b19eba250b75d97dad3ef36b85431c5b0ca68ed5c7af2ede51145160c71358f1e3a85a625ce1d79079a4c6bf294c11bf885840ee0787b3835c864039f276400dab8fb91d161d6ef7531fe376a18f88bb36ae0d5415828d0ec70d733e0d1b592947b85c57678d82562ad5aaaba862ad4641b59086c403c88551c4a32a0dab220ec79d3c5c69587d0e756eb65c863bb93ebc1151e7d12e7c543189975d5c6a5ddc206f14ea75facc2c1cda54f984431cd40d6f6a6c19e66e315883ad4a142dbe9b1b9c8f146a11ad6e563f2db610af125595d4a3f41697e61ab7a3f9c3819d1d5ef1f9c11222829651c4d5707eb0785bb4dce787f26811c5152994225adb6afd6578339b658fd423d4123a85360dabe5ea6119e682ac70586b028a739ec4d528ae2a6e6ad991c20a352af5ab5134d583a19349a35628577dbc631556fc0a3f99893527cce1f1e2eae36b6858173fdad230160e6bb8dac29a1aab2f439a5c8fbaf9465beac39a26a14d93a121e4fad0c9f7adc49528be493dc4954d1c2f001ce5c55289e2ca268e575d0914d1b0e9b31a5faab1b9d17483634bdd04f330ccc96ce01f3fc28e20d921d323d921dbdb2659f808bd7d7d18a2b038b65830d878841e75d6533f8d678d2c152bc8eaaaff585d7562b16ee2d1a9b36e6a1c572f58b87c16516f7bd48f15b6289ac3d4ed2ea38e52dd23a2eaa43ae15790f1a7ff187f52e152bce94b72ea2cd6f8fa0265432cb99e47df1729b4e5aa6c565947ab7f91de651286b9e14d106e3613b48a892dab8d94ba28fe1b6f8a762bf12b988c2349c1dc230121d94fd290d2e9c73b5387dd20d5a60e93ba8c8bc41ee67d49f735248bf808cc29cc510f6df6e3f8af49f1a3eaa487aa1bda703c5c7813de88e5a9b4b4ebef889ac597ab8baf46d46cbfba48ec51afb0874840a60cb1cb3c2aeaceac325d2366b2bd8c6b0fb3ef9ba4b3c51ba0579534a77006e84b0f6f98946e706ca43858d63ba8611547063c2f3b59acef5a566d1dab4f9d964b72c9baea20689f2c8a399a1d7aa5268b2d9e475d5d23409057b94422ab8c10e5152e39b024a74e5525921db28ac6aa9efa91d44741a9d3875526af2ede72072c630b05db21b31efab06e88c58965dd7e927e8457b0549b78f1a88b3f8937bdc8e255ddba4876c8a9db7b44977158eb3bda92045b8e825e43c43f146f06ee4bb81cff87d3ae26698b8d1d7bba0d9b18d0f0340ce663f598ea07364fe8f9a937a9c6514bc36a9865bc2150c3c29f86d5d0671c028d571a373d6c71746bf284eb9747d5e9361e9eeee8369a727a39e2c995e73cda24fe23824954d17819e66e246165bcc5554f661f733f658b94f1d9b2514f8dd58faa9e9f2aab36f11497add4a8e7335528262ce65458b412c50a60c7492fc39b2a1300eee1fb76608ccbd5612f5b79e615ebd2b832ee8d5b8659727dec26f1b228daf879f418e474144f6d5c9a61770465c61de9f08c6ea73b473b1f0fec142b7ef532cced8ce3388eaf95555cddd196511069b4a508f6c5fa92ccba95a3a0515068c3218ed8e5f0fbac6de582465b9a64bd3eacb15897da9135ae6ed519718bf835a4cbe2bb2ce297f825590c6a589d7975bb1c4ed224ad70cd1171129a7b88a34f16a026c5bf443cc28dac8c775465d4d3a637fde9a1c964b237a554b7aa9f6e69b3eaa1c96432a5542a7c3a8f9aa2b74db7eb3ad53fdd4ef5272945eaba4930624ef4e9987f55580f9c4eeaa7a8e9f4ce86a56e69b3e9743a5d4cddd4258527d249a148eb59f774bb86914817efe4d1a74bb2d744fa249970e80373bb0c73672691707805c46243531a56619c66d88921a94798d3b09b94a5f674f13451523feaa5788b6b8e78abceada78b3f22e24a71b5555bb5d59caa633f7bfaec863e21ea863837b4d9c08a399b3aec5f8ed5e135f77a3a9df0c8863a35568fa271e3a76be3e0147bea7c6b5215ba356c8aaaf2dc20f6d8c597b4266753a3a0dc2d4ee1d2e648241cd6465ba0b0e243128fade18d0c989736c37ec37a65590c834bdbcaac9370d9caa71e285c6d93464d9dc09b058190431202d8052bfe846bad44b02238c5d22c5e55022bbe1cf5e43ac576165fb259f12a12d872d45349281e6cbcd6787da813426992c6ebc39da903957ad979c6e7dc31faa135ea679c70a31fba23ccd11ab5739453ea3cdcb835a7ea542895c6ad527274c79c357678dde1658739a737a148a932cca1aeaa61a857294d76bdd5fa4a0557afd49352a872548e74723d5de2942b0a579e49a396a39f3cfa6992e227b3d78fb234694741265448d3b09afa896734a5c91416730daba2952358f1a5880bd5da34149a5f49c430ae62dd23e80ed5f6e970cb3027d7cfb8a52b97e14decbee8cc14ca386fa19b08c3b66c9381473d4dce1c4e2b7e927a545bd5695815671eefcc3060e011873e38bcd2b00f8a9d7f71bf1cee872f58bb17fc05afb8b8608b3bb269583d8b3b7ab9a300dcd04f8dd5fb1002caf5af3bbb86a56e2aa9546311232e9fc7d756abb42a1ce28ce3c79b3eded096c4cb25d5582a89f8882e9fbec3040d0b8bb77c1657abd50a97e24defe1eeb873c666b714df3a25f910af3a8fcaba25d5a5a41ea687a64bed29c84b9fa4d30977a4212eaeb8829a4a3f994ca20e9164bd146fc2e30d6fc48fa7950d158e8272fd28a849d4ebc39b26c5d78738a2388ab8ec7292cea8f0c7a78920e432040a732bf165985badc6873fe14e98f3b192eb432c4d66096a723ec1e60a8d68f3704baedd136ccc904bb126d727b0c02697a2935cbf1a451fa872491e555fb52ecde25d3df469b2f43a7bf9e5d1e6711c71eb3ddc39633bae188644d70daff8d852e9612ef52605a1fa78f1ae70d9f9305d3c8fa639cc3579a5c9d6eb439f71643df5162908d5595f5d119777bc94d46334dd72c4350dab17ff0a325efcf8d343f1aace9a5925e9bcfae9e24d434c67e1d5254561c7ab2e9e9ea4b34a342dc9e3bb2c8a3f8db75442fa517329e2f21b6f79251b2893e41204799cc9e3a7f8f1532cabc8a38ab766d63d620408b2ea338ff7618ba328974bb2eaab6b8428aba8154f6227aadea93c9ba7d364f87a0f0a786b924a93ddebbd9eeae9c05172e02865b53539bf238a95477cb589e2bcdd4777784a41b065a8673ed4c33a123579bc784551bc25cd92591fef8ae66422d8b2da464ca534acf2744c2d19c1da9db1f2e45a6db58e39204dae07eb5d7202ae1fa8a4cb52d8c11e854ca1110018000000000314002030180c0705a3018148284b92420f14800c8fbe5880541847494e29650c210488000000000000000d0001eeca73000074b226b10a76da5696f1a6847f414268f96c5b45dbe27df3c6fe8f9733f0568925615347c77567d043d29df1c737267b6ac836b2ba37424be6f7877ddb3a0c47e904ac215bc402ab38dc9d1199e8ab30902179f21502f64cd36ccc2051e134f6207873f19a78b64af87ec4e8c0c0c0b7509ff868cc6e54c744824dbf1f22b38f9149e0806c9d71d76942c08b83f8c83b556700c247ad79e58930aa684cade3dbd44ed1c0661702440765e2277e3b19ba1713e9307dcf7be70005c3c9f53b8025f976487f403c1b31072f0ea59075cbb9815ac1800f00575a175081a4931f8b4018f4b19435c09aa180f9861e41fceb0836b0720df3353d3d9fc03cf17a4483fe50e8cfc2d7175fde6c19fec8c854572fbb2d767f1fa4dbb2156341581b83de63fa0608c936ea790554432465724e6c4bd4a41c4c1c6e2b3f466b32f12793781fc36b7d391de27a33d105d44c561bbce9a6d7150a6ecd84266550acd17ced23756b2999c16f42564c546e085a6b52cadadd6f2cf3f4dde5e60fd04f539e8aaf56a2323a5930835df17cf3cb47ba59eb29c14ee00ff051d723917c4b535a49481cf96e26b20264c570ad9e2bba844be79162166f6d69232871107818550c4a9fca4982e3428ceb812bc65455b5d35f857b5fc7184b5b315c62fb98f6667fdcdf116dc564c11534319c2c7a8c535fb048fa43e141a1834ae9e80d3387be210b5cb66258be0323b212334f2abc5c640458a539021b7e269859b662281502b9e0cdc5ba01303162a231f76603ce6c50163ac4d72716115326c6522c6365b88b8808dcbac3d01d1df6a951bc50129b6b6ef54841fd963955a548ec21b6aa3d63a140b4009fdb6eb8468556d7984188b4c917825080c805743a3abbc19b0becee7b62dcc2ab34e20a7902e5cb17afdb9bf7b403b9fea3707b51d176f0e90baa33a1155d5c70c200976ca8c0f9b04f4deec7c1a0cb5912c2764b59668ba02e6d391996e4d1d786c1a01b5a85e5f82426ad37303ef227b22d21e8122e40934a2d6094baa31caa25078be210861172cec963e1611651549b28f9f86cfd6a7be42056677df66d530c9821e1ac3aad3e21a0d09818d36149bb5385c48452d1fd724b8c4b728f2135fd435ad25c3b86b3ff2e14fb4f343cd901fdf78b6cdb50bea2a71d879161d3386bd254731aeb07ca4e721503f967a5f87a40e04f763d8a3088f1d65256f3446e2cd9d3d14375f1922453967d3ca099c8e465847d111daac2798f78f933640e685d07c57c80e3a60971f40c0b4c0f0d9c4fc3860a4e741ea6dbc74fc6d475bff63f018f4a451eec7734e5d0965915f358fc3e344ad128436e0be139ecd5f50ad190f0f0893282dc4df02d83e9c12797608d4c4c191f70c6450e84463abd7fb12841285e764ba82f7c5c939a4a4469ed94131abb46b448bcad27b6b1bf21b281ac3ba804c2942847ec3db446851594a5bd2eda6116a6f42bb4cad442a8c7913b8be1a6c3fd809b3470fc3924ffa6780b39258f4dd90816422ac23e77424ceb30b86e0125ca0821945595fec15d0cec26f01645ce30297a6359800ef9e24cc147fddab49ceeafc0f312dc3d488dd9bfe4da469cffea88ac7fd331effc5cbd9141f98bb342ba863c027d79075f98cbc745e9589c1e107bdb2bc23eba62bc96e763702ab3aa08939523543436433faf75ea61714330bf5c124838c2450975a2a28aeeadd3e2f92bd97d260413dd2aed171ed6acc9639cd2df5ea1468187fba0ed64ec7047bc38ee0e565f4978ccab1335712fb647f0caf1c02657a1969916eb52a35c847975d0eb0f957b61e42813d7b7f1dd06113620580d30b167760a8b79244f12c8df6f6d2f546f6113c39dc6c2ff3e5e1537c36e49c05a9af70640122abec97849334f660bef62bde2267fb31c7ab31c462f190a4f5efc2a2b17a85fd6ee90eec4fed57b6a26539efe7d40f1a3a75960748fa3ac4c305ac6118773a9fc7f7224d124a305eb386ac7c338e56c7614b9c13866931fcb3b58ee256d5aa76b54050576fdb4b4296cb4bb076992b6310035ce4216e2d27e14523c34cb5fa6e680901bb3d227a78fcfbe5f037a529220aedd2e03ef4567096ed382928f73eb2931faed5e43d417eccaca2d4a1be80d46f2ca12892f47f68473fe2156efe03a92d7f69d685bd63e771876230a318ec9068ec0559cb4b446564647a1745f9b5ca60ae60ef2a3a9b4780a2508a5b2e150d477ec3afedd1e5599745598f1bc2cafcecc2caa66fa9415d40b41bc1a14beb3542e52dbfe56dda22632b838c6e47aebdc3442a7522d25d72c85f35d5bf10d6a004cdb83886e942b4b3d4e72972a33bcf59d2ac76c820c3ea6b1e2510b5ba3f9ad336a9857a89ad6c6549ef15787b3f209bd227f78175c30f0979d7b5347a6d585a078774cde506fe800276fe825b557df0c6dab14748f197d001f38438062bdb4766b81ab92976fb93aeb5cd530e7ad8fbf9e07d6f5ed0a3040524d294cf4875eb9db4a9b5f7018b726045b096257c4e8d814ce72598741a16a8530f788cab07bd17813f5407059a16be415b5c963b942e81a93d9802d2d3773c15e86498c30aa10d434a7eb5e66914ac3ad54f4e553748ff9587fc4e8808375cfbbdc7e06a731cc8e42f85cf45fc35a547e2d5f233dc50a7a2fb8117e2f00d24e48c0b8b1c10e24bff3b2b7d646f7297a177faf1d9ceb3e33c015793f9701893f315c65cfcddafbce2555f5b80064678f2185a4dc964374383292076dcf1e21836adb1f6254d271202ddcb991523dc746d4854b64a52e31c6d2a923c287da61e42d9e80af9450badfd04ecc22a386a982a5e0943ea67719d70286a53c2621bb65b0dc201632e07756ab0c4620a96f78ddc781a3b997f71cdebb171e33d9d5e84f793bf8ccd2e88632e6c5b2d7b4b612a47f65e7d6dedf5c7e6199f69d52a3fda00e96223a7d839a51f810535d12b13c4eb46c9e1d6f2b2c0e21dd766a8f40c268538dfc563a7f7d8fbf1f8aa90e4c422b82ae440aa5bd6c3b5f4d5e769ae148831436ae3e02c2414f88a3541a4220790191d9cbe11314abd858c7a040516da6d593a743f896c82473e21d5d9dcada54570934ca33727232a07b6f924d3b404404ddcbf51cb7869d4d15e33119d281487a5db97a0ee4ffe5509dac33fc531998a36aef72df2733e5a236f1d4b975092593dedfdda2f5d698a6de862ed38ed97001599eebd30d8490b6422834edc1bb8151dd0a8a9a721de7e2674bc7282bc07cf22524c2c8765028eb9e58c983013734a492a78f89424ae08dc7aff683f16e568d7da9559883aa8374d660f71206e8b420d2544e1c4c02aff95855b3df3fc0ab108e2067647a09b9ee62b9fbe4aa1d2836e16b6fc947547f9b12a1674105271376e86f6d1aff44d91a98cf43fca55839b9489930ea844b25b7e2d64c6fee100d0906d710015b67e68731d7f47efbec6cb23df8130854478090a858fdcfc173ea8a2937241e14a5dea842c16835b190f5e63c584dd423aef708d72fbc47835f03738bc91c337ad827a09f7d8e216ebd5ddf1e06a5f2c363c5171f46445c0a16e5d8a62179fbe0a317c7542b8c8967358b5e72dce71b57485b4b2120a78f40e0a3cb8ca11c93912b193872d615bf4685c0280a993030d12024404d770b4e5e60a6f4cf278cd8136a3b932bdcc17d351246d067843c5e846c483dc928fb4b14f0703d7ae13c7be453faac5ae58e91be6b956b41c15c78ad47484360f5fc30b621bc14bddfdb8658fa67d27dfee5fd453526a2b9438dfa7ce026f0a9ddabbfd621583a505614596a3b5536eb9de2472b4b555943c42a52c2f658ea0a96a926f7c5c071c065fdf3108c5b5decc20f9fbfecdc7d421aabc18d1236a594327257ccb81ee419babad0b9bb1ab25ce504b945e7d3895c32cc09c7af66f413b7d75de4895a0648d5e3c3c8287dc2c08f6fe502cff7c53de40e367a2389c83778bc3b114f9687deba4b994429eaf2a0b49e18ecfd99811aeb1003fb163773d7771150d1fa51be2f276abc49046dc9ee0c1b203b2c2fd9d86801586b5fb741526f0fdede126741003eda0fe4a9fcecea2582cf55fba2858117aaec890cd473da48959e59603f9e65f2aefc2aea2df07285e25044af291b8afd48d01f2c3e707690b0ae635d564c347d92ec50d002c2a4b10d303ec6a4379fb9dfb98a123cac66842f27da0ef4d6064fe18aeca8a4dbd57bdc0f4d7bcd47fb4ad1fcfe2c74990686565205ee60aa59084cf0c3695c0524966e0a82c90ed56d882a7098311b38bec4434adcd82d16f1f65b0d271bba0f4eb91b18817c17840b07c5335778282cb673abb00daa016190bd260e7ef8d0a98b547753e9b02010ce7f6c1ad70115af4ea1822042816cab31ca862537f235540a2fcd434417fcdba7b61b53a8802c872c99f4bf48d186ac299e8f02276edfc4c89ce42c4a8388e9ce626239730b69532259072011359e7174ef5553d8b05d52de813a1b3a1771f1cae1bf7f35f1a9448b0870b994b5a9356b37a3603a70373a4fc668c84777c91cf9e9fd6be3088d905081a419921d1b72e3449b1d58fbf0a19cccb32344e9b56d7537ee8ab4607b4dd3321ddb98914b0187149929fbf43730e946a9b1619a29f7c583667330543addfa0d63b1885473e96b19a6a2eba5189b4e3e1b3aa427e25c916372574c054fc00737c4063738001726b6f00d786fc3d7692dfc0cf4d6ca31e0ede17720ac3ad964304fd277745ea8112824edffe8f4c942a2c7cc5495fbe06ac384ed62468542d0b5840cdaa7119c0ae599cfcf05d67b11c1f8182877c854b60ddb81863e542d64fa1fb90f023e2a3735d46f1720019f749e840a30c0d1a2c65273238d4c5ef4e44027882411bd8f2bbcdfa05df0b7be69077f30ef78ae18b33b560e8eac744cea2d1ab3e7d525c1cbf122098afff274909dfac936fdc3fe1570ac7fc7b4b0430d4fd5910885ddaa7e0ffd05aad5370db9090654964fc41c2639c90e779487e23d8974df244f122adcfb3941746fe352e3b332ae5e610ef34a543df8e61721c178a28cc71522d2dceee454cc819c74a0419776fb9c1fc84fe6349759802ce833f8b2983fbdd5cc3319d7f88e7a98644b00cb202db6fae4d081197f3d1d4e1afdc6c6ab6e3b26445c6214c003447ad12903779a1e668166fbadbb23e9f6b74749626d48b8ed6ddc957ae33816d9d173b6a381d1704ad656dfdc773c3c3ffea54b51a911c62a8e232eedb2910f1f111b5c400d08e70d87b36091decd3de88063616364f54495be337e19a08838f7d10cd3d2d69058dbeefcae77c6939a3d1dc252075b0e76a2379238e3f023b8b78ebf0e4a228ce85f1c725fc71cd46669c0338326570f0c674370f7d80ba87606168957137ca03edd1e7e7dec6edf0cc6c08bf36b9b884db38fcb14a764c143e81ebc6bbbca2c5e3c036cb639d9412c70d5a1baa9394c536068e27d1bad345e958dc74fa07a2079aa80b04c7465303e940c6f76adaae47f382a1410ef00f59e3f39e05a52c9d4b978c7010816ab268cd1b676c593084381c24c7afcef83b977c7ff99d24917545a90b413eb05e3c51cd36ecea39cde8900e4cf8481adb903e1e3c135cc09b496bdcacddbd633c94aed2d0bcf452616a2fd30e859de105bf627d9eb1c28c4c9e29fe2b701eefca7539e462371c9c5373634ebf6ae3737095b30365010df0a28659dd2b2f07d76d693b46dce8333b3869fd22e9597e2ba24208fb058177d1b6eb7984c71ea37f68553bdcb5f3f706702e64c804edf165a3126c57349896e8e08a39a9d305efd80175d7873c8f0f63bbe8b29b529f25ec20a1841278c5e51bf5b350532b67eb85b02e7045f901f2f9790728412ca0585cc429f8a701409516aa20033d7fca543e87c4f48989c6f9217405848686dc30b3b39389155a02862339747e902fac73e98ef1cce5dff9fe9617b8555e80d17ec8f311e4e95629dca0adf970f4fed6bf44df865277dc33f286a1f39b73f4b201f3653a8be38a364b6da633579186c27693bfd1ef0858627d701dbdba831ec45c5a012d326a397d78509b47ee3f2becd24a833f2424a66fecaeeb7f3c26060cc55234480d6ec6fc7a37b28e36df635943ce7d4895f383197ce4fdca545c590f70b5f368518728a8561887d4d5c2c03bbec8b0fb74f8719270892162b98033d3dc82ce0818115c49b96f036d8b6db966476725f6f9373f905bfa3470dc5c5a84f45208d000a2f329d0cb47ad10a24f946cfc5d64ed59c25f4289debc7c838c7c4768828c429c9900326d71d51ef6abe12ff33977ddf9d5aeb711e6941b730a0c6ead89ea07b2b1d0c03361b0d54538dfc62210fd76f46cf6e1d56b33b4e6b8e716afe547f9ba376ba562d279aa45912d16b692ec12e14424dd30cc10c6e0d8a5ffaed33e8e0db5890e7c41f8ba8ec63a0860b4fb66ce438c4a81646839c6c95810729637ebf944682026b13595e4a63f446c53d06a191f56e9c9446f7903f83299c435a27ca3656e35c36b0bef189d89a2b94ca719b67b1680f85a4759cfff5b420bfa880f5e3ae0c9910d6649a4f2b7390eb7202232848a06f0080dfd1fee1458cbb8f4a6e7af76059bf451204294773cfeebd94e12cfe7edb368ca1cd940fd5bbfdae6abdd7aa06f9efa966c8a388101c308b382d683ee4bad6fd080c53571310c51542729026ef50881446ae70e8e429daa2f9eca65a48ef719fc2e5d2f976dfb60b8b06ba954efc792dd7da9c4ebdd414bdbde88acfb373f8d6f79349e9ac1376e1a832bcefd5a13ed34439be0928497241333edc03c22c213c50845fa97b24930f9c15b272af193dd03fd0c4b166f6dd4347985ca35dbd0f096021e344c49abe1d95e2a5d81cc47747f1a713ee129d0798fc76a2443f7c0f60472cb0d77a8323997e8c0b5a3c26bb201028072fc74a604c4fa21d04a39bf12b39101a2f98a41d44eabc15705caad295f71d032be99166821eca6e514413542f642281d98f319a94978412039faad60e0d0ecaa929dc48f6ad1827243bccbea94e20246564ce607c06311047273a64a4eb08d0228314835f9063abe1b8b3ab0991709af0019969eed6f35028aced99830fa4a185c126f1f9500321f807ddd678d8cc398abbd1f6d52edd98a20c741da8fb0c0bfea16fba5588347294c7e07f31c1d9e34d2cd37380a40ea209704e04ede00ace30d420cd51dcb49d27983f8891a8ff5d5c2671db73c3e43268c98f37c7bfa4fef129955eb2f2e1bf5ac88322c20087798e2db264dccd05e4c24d961192c47eb520ef72249251f34974a4632c1dca639b1244191ffaa31dacba381cb15e63bad2f945b9a8c2dc5058a72dc5e5c0432646e72409bcea2307faa7939a79e560b6d13f1a1c822cf14e4c07b24eacd502cd8624860f1e1d9ac7388599f5b04361b365ba7a82b80d80339fd15c63e4ce4e33db3bdf0813cea31a949c3f48c37ec00ad41e57b0701d9663390f99c3f68f8c49055e17c8b96efe87c08295f28ce2cbf365c5d08342535bc2c0f30521bc9e2abbeb95db70892f77c6460c76411f441ea0e085baed21c576443bce4c221851b25c4c299a30ef820e6cba7c699023e6eb2433247bcf5cab8835cc8a984c26c5d837c4397f721c1bf2ec32def1e468a41b0a530256d2d96203b297048abb86022cf0d20abb2cd20a46d2840b500763449ee6e6f09248d17dbd27fdf63707b614bbf2889115575352239001437a9625fb5a802907cee48b93c8ea7c201a91078c9a443e27876afbc28e37218a1f2ae16904c435a060d14c9bd7985bee264f7f9307b78a63160d82f23f096e3db19603eb00264d201ab864448311e2bb086e968f3f42012eb510ec1cc207b96d00fe9208cb7a7e93d8094a435ea61137ddb7f17d082c4cf58d612f101bf87a174c7ebbce81ffadc50a6436c04640522ce940e825010390c890870245a890d0d8438dd8c2f986ecbaab4c7ea9fba253e8ef254a87f02c831a1cd02788d0c161883fd09ff8aba76b445af226bd871c16802c012d437807ca85d9bfb1e12f9e5e00349bd92f86e408144fca5b1c9e7a04173d0c05e1a2871b5ee0ea24df41264f2c22091ec5e7024929ca99dfad85b68258bd21ec9eafbda2dc3b58b48d0dceaf0c7b154abe86b6735559eee85eec160922e688fdd0a3074cde0d6937811e506474cef3437381c08dc102b8563d4c71a8b62d0343a7fb1cb1b6c0a9fbc2341f7f2aa4138c4ce698699f693d8ee423307a787140aae8c1a4dd4958490235aa4a9577ac1433924a28caf334050bdc5c1c2184b064000177462a2a96667539ee065649c4ba34ae4f117cc1010be0af556edcfdb101ae409880a70ec8f51bab76e5881a91a56da8d9de5395859dc246347f74719292bad8a4fd8d82a4d58d4127252181f4784b1eb27e44c34ebd17a985e1d90d83dba74f79556944b6711903916beef2e3bbb97745382cf90a272649a6a4e7bf8f2dbca91d9b9283ff3eaf2021401daf77cacde2b9d9f507d19ba604bc2f080e9d568a7be6232495e138ff301b0d208192cee1e52e86ecc4f4c04d749fbec4e32018751196d2bac703845858184aae23d32e1e6a6c2324c73d1dda045c62d976739abdb0a63be1ef964bb5c193b40bad0cfcecff7a79ca036fad6efd83a5020a9ddf0d893a84abf91b4ebc147197f71263a272b80eb8217568b8908ae10d2a058e635bb913356213d62f858b14b0a9f6db8cf13a42b3e74aa0a83fbe71aa5e09dd44df7952df1a5f3e7cd94f64caf935889e48a08b24440a3ece447d511ca930eb69e0c2acc796d5c1840673a5b5af9a5c3a702926f8688c58c197d2be3ab68280830f194fd217e341bc60f2a51dfa16b8af5ccb4bd90a307c5f6ee80ee120beec094f7d36d51f9d3a59c8f7b6a39adc95cec44e3748d2400a24bb48af8acd92bcf833e07e08eb20a83a42c31aa33f1ea186abd476eba80cdff55549faea428162b462962b4ed73bb6cb973f06db040a0b4ed9b063f04cbd51cc7bb01945184a967f4a7c375649a9e9e17e031c30598d591bc0fa832513eefecd259e6abe780804685009bb8dd0b0019b2a39b6ba4e785faf35b7c49cb4710f0eec6724b2874de8b8c8ebf38c28f6398efc5f255cd9786d8c6c1eecb83ac402609493508ec866abcf15754dcc854b5cb998e49f1183b5d883c64c53e16c0b74278f67058ba3612abad87f2af5c7612fa02e120b1572d875e6cd9e1dc1147c8c4970c9021b29c1f0dc7f37ead8470e1f1c5e0bda04b2c473289422e745fc49137cf58104e6232ea1d8367c987748fbeb520cc67c5f2c5e73df79520b90f26aad75ed5c7d26393ecb6e73865c71f164f62c6de1526322c6b510406019159277378931a81cf2ef51b1d6ee587924822a4063b6fee58c1b041a56b41e03dab1c3a229fc8da110b10e25cfd9dc2fc86f151ce621b51cb235092e9490f1a2b0c6f5b5bd69bf96f409ace960fd3bd73d29c64698edb7f4d789c09bdf8eecfaf912bd9ce38727c66762861bd6e7a4a7f296f946deec23ccd812c749efad9e5fdc3046a7151a4ffd30e4d0bcd5632a878bd9a51fb4d6ff7db16cc7d93e67cbb3995f731e77003cc5a914774ebf856bdf51cf5bd74b1eda9b66b5a61dcf6a89231a50d943f9cb41fc5205f1ee1d0974f048dde3da37db5ddf61ef03d19b52b27350a5d117ed750bd726acbfaf4b9e5dd926d0416558f4d6cd28060edc4737a64fe00ed80eeee517d1cd6ba0bbc4783b7b70e8dd869b8eac4ebf54b7af7bd45e4141754278cd0440f9eecfdd92a72ef9a9579bb54b87534e95f1fc4237c64080d689deca017ba23b44a389c66feabf9d3efce9cdbe49491d8a69500f03c36c51bcc68a0f68c2979d498ed19a33e7061b9eb5205401f8569ac12754947abb3989dc45531c25f2fa68c53948798dc8ca677c7fc65ca88e836a535f680246c3bdcfe738b601e72d00ae7f96643f27a35dac0236e0d938d9df780923b5f68139022d24f9c4ec0d736b00cc8226a81827be9a1a93daf67caf7b456ee18baa29554a621c2076933384f20de233384539c39bbffb82210216d4db9633bf364072ebbc2405631e8e2730232176638a7897d4cba38388002ed2e704d8199a8b3a6f62af9d2cc3d60d037761fa97b288b3fb9622e092aa34855834477a7e7acad2a53f1561c65eec173c25aa980aa4774231ec96948875ef8d7c903cee5f0e3b7eb045f8641f3aa36c8ed48fb676458423eb8f5561231243f00c3465421e6743cea7c47f102e3e98a5cfff0b18f15a5fedca5a9bd16dba513635bac8ee2765e9ddac653c0cfd796ef6644ebb037264b5a1533bb67d5fa5a4f17b0715919ec8dfbe4f9eb5bb89ea4c6b0a92599b778dfccc1b8dc318dd59eadcf405a5b7fc29ed6a403f0205438649254fd3ffee6e4a2b1ab9a4af45d18e3a79ed91c90e50de4c5017cc7be5500744979f86a7e7a968530cf1e6c46877420ad12c1ef48f70e842e376ec920e0320c952bec830ddd15349ac47e2ec1e344204880eee6d9265f0e7bda981430baae7e3cc622f3337581fb04f309768b7596c4799316812629324d1191bbc9d0635494caaba4a7a9994e429d6c4f952e0b2b1b583a66d1066b4b24bbb8a646a04506f4d1ed778c3b288c48d41c2efaa71b2b7d30b44c53c10ba59053b669617d8c7c0fc4292550dc8bae2f5c608356d85cd85b8c6e00533c9ca476d29d4362d80ab9e48cd5bdc3edd69ea38330ca75eeb54cd0622c469a0a671be79bac63f5bd939bfb1c2e8a9e415ac808b41a7e67510b780e4ee79cbd4f3f0b97438a5971a7f8d2eb6d992a1378360b56e0f7330fb27492019e632292edfcf048e6ef6d97c4df7745933b126553e6ec7f49399730b532ce72b8f9666ca5f41cc41e67dc66e2d40bb22fec003e01f03ad9f3944fe0cc43877726b2fb5c049c946d3f69967e05361fc7db6409185eb1e1ac69235e08a5d332a44ccde4dcf13660fb6e53b133b2ffe09055e4bb90336f106827212a5a8b20e9d5bd89c9b5ea96c6c722adc19bfa4748c5c739ab05a2f0d75583b919dad7ab333b44450e73b1b0b0760ab35b44000c2d5ae9d9ff6ef8a793c339f0ef5e545039f6c0790f4d2fd92bf7252580f0b641b779d9c73dc5a61d541bd780d0e4ed9f1a386dba1af486bc6352c8c9e2eedec88446e9a6e278cb8ad1f4a3e50d9cd34f3d37814e62b5242b2594906dc67767d95f3a8d4eec8d746586865e5dc94a00c531136ac152be7a9ff5e15ed21e94f2144eedd7c00853138923196cc7e1f35544b670baa5cb1ef261772fa90fadb60a6b714f3a4ee3f9565b152d4324e8150c05c90a93520d9b8fd9d22c02fde84836e6ce5bbc381952dfe12e24c7e0e108da4ba6889ae9758f226730277e81cf6a1525ae4718208927bd07c6b717e663255052cbea51cc082c740e643a3bd7b9bbb8e838152e87c2adb78cb02e5c2b47b84e32c3a7f7a0705d531eb11d307be7b46cbcbc17f7045ccabe2ee9f6c6469d85380b8ebe118209b3dad7d0a4489dc4b4691629acea84f7f4614f44e52b7b425bc338b032473a965b6c1afd6747d5bb296954663194924465729abb1846e053cf19bc1f58edad1d387a0a6b440582cbf36813e8f02e81d570dd52c98206afd9406b593096db972b106b323658421b60e6ae2f8120dd87ee3796c130d3435d48ea2681bec055901deda1b61092b152fed315608548f6a756557cff0682b57f4dfe7cadc1d3318ac2eb03d83062419f62cc8eeeff2ecff1b7669a5fc32e5a003ace9068aced3ba2cacc8163ad264b3489cdacd06980437022cdbe828bc77eaaf3c5251e27e2e4ddf387a68a39c5df19da97d2bbbb2a94922fa86fb202d633744b10e06f49e5d9907a5a40f3af60b369f0ba40c748f134ab2f3094309a2be74f0dd9e1072409e345a0f9393d598d765b883eaa5b86c9258e1713c176e5117748cc8ef2250ca75a17c7127023ab584a59500fd02e7efa7352fd8ecb00f827a086f2d2bd1d48713311ba7b722a749006a311f2fb709d68d01d46c47735fac2b974321ffe6e78c4db4d2c30d121911cc8f4eab01d193640e21b5a270e33c100db5290d45558c46ca71ca0b5dc3d106469e1bdcc34cebe104291ef0484eec8e7f1bd1a5131563d09c603926994f7f05fb3a8d3e78f3344f1bb2c89f8cd2a06f8ac5a21d25bd5b44047f87228fed2689f84932342e1201c11eee5e3eec15c532d412af663eacb0cf8760c250cdacb87b919816b3db17be1c8ebe6c6023da39316252d650a96d75cf50c6ed03d3759aff4881938d6ce2b4965f54232905faa144a2111f5106c72b016d6fb3a1816c13079dd3d7c3226c304fd95fee3edbf6e5da6bdbe1cc308bddb89e984a91935481c638bef79e75d06f3864645c116edaac7157ba7979001db9e6402e3cafdac41378e55190e61071426e8d9514ec07395befe42807638867bd775b14d966120f9014729138be7892bcca5265a47db17634599858dfe6f6ad952986afc36af8b7fd6fd57f392f7d77bcb2329420d1e9ab86b31850a6a702a7ac2667162b59643737b5b0600c05e29003c9c52ab9a6bee06bb239cdeae15a199554816969c0227675df7836ad41e24025dba2f43ddd66360d228e66fd9bfd4a5a7450cad75eb8e6c0378b2d405ae38d8834ef10d75bf236d41920a627f1722ecf56a1cd88edbafbb1718977b97d14e427f6d91fb1dbbfdbf5aa4d1c946dad8b0a9e31a5a2f5bb4fe06575981c304d711eabb73515d76f498b8c5d717a0bbca9b5c82b2d7e155dc57d094b52b58687c6949d19d15bee0a866bf46f3f57b0b5d184f415969a6e647f58742f42af957957e02e2555c726fb9b0a43fb2ec99e5b92556a8f92aa1cb1af40cf5d0ed3d1371b88ea6649350fa565d1538af6b3acfb874817858d3b1458cc08ba52bac71ffbe79a47d612b48b589ed3ba5ba9695e4d6ba0c9dc5ea67fc56ffa746ebabd4273683c721cbf8d6fb5fa0f871656c325a904b32f529cd1658506937f03a91ee48d67e8a22ddd606ef1846666f8f6d1cc919f48fb72f8f9e54083fda050dde5d972c02632bcf3de8d279c36c884bb41c5c4de8cdeb3245ff82f37bc46bb58247b97c8af37b26a5e6afae2195d2f475c19a4ebdac58f651a7ce2adc78b0061858cf96e0998759b201c3c07cf8ee8c2e568920523181cc9ecf80e07d5db4b8ddf10f81b1fb817ba7071f50d78f2d85467cb71bd450fdbb0d68199e9e3ee95399003d3e45ff83c48bca28310acf9e114efd77e91b66131cee0a3a8614f15c17c7fd4d852b7e7b01a593c8b369e157109bff84b3de7a80cb7dba3a4b1b286bd298f360252c2d7c074c6df2301a2dcf09ffd5a9145b8608a7cffd3b9174e93041381a9ae73e97102c7f22cb7017c1dba0ef95ec06183456cfda945d228a3fa1db9e6531b83ba0df568479d216a83a57f3aa441608dc36048d06a2b508a19715d494302416d4dac163006da677cbe5ff7d1c9167b0a006a724758aba74140882dad250a8af84d37f590efaa2d4c3946fcd59967498b14fdca2914e4d7f635ae49a109071a5605502df77f22dd808216c80cbca0a2b55dd1b8a7398095773252e5199791ce1c1a71ddd4a93a6762d169352cd784cb599de64de9a2408594705c0c49e4efc456e6c85de1b16112aabe5eb548cc8ad5b6b019256002cee048e22e06573f843683e2b3ed1e72d6a2317d1ddf755e27374a60f5a11048c02dfe7a8d04bbb63e531649bf4f1448683d8e7e752e6c1998a29354605bfbea2d32e9aa19c287787e2c0ebb1c05c342910e71a308fd5c4b7135b1b28dba1a920cad92f3c9a2d3d83a9c87072a0ff3c404f788fe954593488b23d9194870e4335b180f26f3a7c2dc68bdc66c30097603548cb0d0c7604fd1230df59c1240ec871a925beb6206ac0d430e6fb1fc36e79e660833de0f81d649b05b08fb9087552d0fa431167f6a2dabf46ce95d04fb907b681a630404c9121062687680b358567cb7fa70b43e609c0fa4a60f1a3c8226a74de8e226b8a711576a843a4ea01297138a8a831beb000bb7f841b47fb4a161f3732c738e1143fe696dfe3a860bfb61bbad45f394791abd3606e525814f6033fa8311d6cf21a596344eae2c4381403ff689efa9dedb0ec3171b1be510e47c2559e99c503a225b8b97b22853a339ef24968ae39c8da7155ece57e6c1cc641794f271b212a047c5b9b411d4aeac72b220c02b5cbfd6df8a9c46a35dbfdd9a34873ef636b528acdd4e67e2117dd7f1c21ad1caad2c505648af941389e1d114db7524752aeb2ec57b6af01ee53f44b314cf2e1798d9e6325dc070d7e86cd2b4c21099d65574b4b4d1e1b6859589f29b9f56380729a78ebaffc82ad67d2e7091d473d075eeaf9ae409023afb945e8c8d0e562fd515bf011eea9908c83c9477da55004dba060bcf124ef3a685f622abf8d7a6ca2ac24be376052289a1600e8ef25ebd96ac22585f8a27c3ffb704cdf01c844efef4ce2ab42af43445415ee80390b154c09e57556a58cfdab01e6f147aec73c77011088690a192b61159dca5884846398adc5338e5e9b2f2ef96a438efe054ef2f88a47268ac1963ae25c619fabe301b7e20570b6fab41d5ced58f4c8e235b6b555daa2e2a6a4ce65656b51b1004f556ccc4a9922f6c11ae7feca27f7349d81d89dd002ba2b507ad9c9df59d05afcb5599b010b1cb6ac395dd643a40728e0963eb997b6482e84ef5ac24eb310150a04484569c48e3268a8ad761248b09d5f22b165919e73c4c17b45c094e7afd61c1d71c11976d01b1785872e4b346d0238f59d1a39bdffe239fc7994db6988e061fb922a0ff94b0432c2a4d49f035a594153b071a42249fd0af1188d2b5dd2f440a07db2ca33e02e318841de0bc830a4fe7fe429bddbce493d8127cb3bb9d6c10288af1bd927b2929af9004192dfe2f3ab458884f7f0850d7a575542a5205eefe2ddcad359e73ef404ed1e281c5bf01ac2dcc5cab634e2c2739f3e3e142528bf6217ebaf67cb775e0bee6cc0a8c764801ba9a5e9f7396d7d83cf9363b6ffcc27de1971eec68d08768307ec12811e52accbf85d4a046922de47af9e22f2c422527da2d591db9f0f54f11767c271dd9b116716d7af30e334c5b72f6b1e897e6a467bd1159528f81a6d54fc38e42a4c8ec1442eeccbad0128a27d39fde54d8a821c0fa9b5efdbe05a28a171d9ebba831c9ff5b06e5ec635f421a7c990e1d2d615c5e5a5cc3bd3843b7fa678dc4bde78a034ba95ecef0a5283c9331f20a1c961e445945c69c1af42b67225a1dc2c3fddf388f94c0808daeca8b9613989a0ba4b0897c8fd5f03e3729dc9a6082e86804f2855a12174c4ab2341731623673da847daa015ce244b130aa57de94dd3c5c0e0700b3348fd0fb9fcf96776a1be756bca181f331305ce848f33ee53738b7e14c1a96c06c372cf05f53d24579049b6c9404cfa095dfb06abe6df9cbb5574d987a40216211a2bc6c889aae2c3a54d8db89dc0465e8a4fe008567b9484288c8b5cc885d6b334b079c70e4baec3da98668e289b6f6edd27c015a2155a258f651e922e5d3d1455126f98600cb2b4b0d252b5fb549573290a7173845753d5f345fcbba4ad8317c4c082c5487c8c47adf238b355877a97c4271247879991e2c301b69285dcc06c24c552780673065d2dbd90a72a48d669020091a81863d5129cbd687f8807a5e88fcffa10ecc235685d010e092286a5a6564f03b9543a27d56b36740d6e120862bedac0c1b01702a0b200bfb663b29c219f161c088fa879cbf8fb7fafae1787e9a06a8cc4b7ce09122017a4766fa5da98a183d82a5870ec588b244d46ae2a180140a83bfe3f4cc51b33f749f07ecdc07674586a4fbf15705d361126f63cc0fd8dece5e4b600e031f8afcb71f2f2eb9f8c47052e0224f93c8164074aacbbbca7cb642e57a3baa80019b4de2f1350b3516db4419ab9ba811a8f649272bc4ec80d689a7412230819154f647864aacb0001ce138eb7cee9e17455f182007cbf2d94d812c9d1b134302ca2e443e3db2c087c8863a2f0b5c190a34714ec641d4ed3a2d3daa0ae689a376984fb8ce8a45d71e12361ed271ae2345fd762cf299c94edce388881008249856ae3700cefd884da2759384a13f6c15e97f9e55761779b7f9baab59bbff7114e0d88af4d66d1a29cffff149860340585e5c36443ec48e85fda667a85cb68e468e1aa1349e04a03c879cae965c8d8180044bc58d0968b2686b77d0a3fdd1cfeab6b58510d7399851c66401b5a16490224786dc38d01949984735c6ccc39910198f4ca928bcd3cbded2a0646df4a6a827742c3ab184633c144c8f79788f45453eee34f16760485b98cf8f8dc66696f24247cd40b15a0e450705db0c79e6ee3318c25bacb36a1c0f15a69cbbcc0c6e75425557c8688182db3fbb43541cb21769b98705024d5389e8b200f4df297f9c0c271b83526c533bdc1d5cf1d3354faf60cbd78e683b8eadfdc71daaba9c789d7f9d6ff8dac6883ddd117fdbf0283c36778ecd69d74af7e203b03e83a9f1dece237c063e95a568c667441b4deff6ed1d5f3d22c223611d30b4c9ec7bdf0f01eb1116b315f7450409374aa21f512d9c9ad5204b1c000c1ab79bbbd0ba28a2d68effb0f50edcd296d214e7ed4984e6d92c61096f0a512c02788e2cbba145da689ad3f4a1811858c348753b98d4306ffcf319e7ffe5d713ee7934d70989e9dbef77d5bcf253aa5a28abf68e662bca685cb204fed290b86fd951d913dd9175fe0994a8aef3cc96895fb0c34a7df57970f69a13fa64438bc84000edfa89695a25ea4b12856b6b41c60c39917dc5bbcf27e86350ff6d94a0fbc6546ecea7900523f7551a1aa243df0a1156c29be61a2f353c7ebe55d83dfab991b51d11a423f472f1efe0548cc5179dbdd7c08f28747df388c866c07e7e3d6d78a15b6cc258492c027bad80c956b22161d87379c4af53dc5117aae3c19bc8d942ba550f05bce048d0e5b0eb5f543d5a6ce6aaa4a3700673eb4afeeb966c69a4a1a848930dcfb2a4053d2143a9c42289bd852131d927d7d6ab9dc7a400f3ee389d189a74fa8faa7c6365028cf2e8f6f744164a29e407fb8f477fe1678a640d098885835632394dd420d07570333b792688b9a3bb3a9d7054e1f963f5d4be5a8a8a57d1255d4558c304141ab0c3f4d9c6fbae1e03285c0d6ec13af0b59852327b8cf8727d8293ecc835170735d676d35624ed0afbaa69427a364891fa251ba9c790a8b7001f3285234b791878176ef427520e5a59020c0a94328e06d80a4f263b0f95bb5e00b7f4e5d1e4fc9f1f1bc70baa52eb4473f46bdafde6d635736c5adb45cb50838a346af335b83273657ed244d33561e458a2d5f35b5a1afadf307a367fdc10fa0a4ad132c87920fdea8beaa22c8815bf334c1c11d7f3d0353f980ecb0f2bcaf2c60d827881f024d0c99266c757b38cae97c73056cf207bdf1fe92e61bcb64565781b7c28303093824ba8f185425cd7800e43830facfda690bb924cb08a8e46fb16d0e3a448c9e7694f78f7c0394b5753614e8bc8241bae40cff4bf40ee9199b7a5c244ff6856ae84a8c6e0c3f9a423e98b4cebfb2a7c280c29abe8a560c92bc19d8e25ff0d98ca1b6c7d0bd7af52472c0af7365d52e9cee4db7b06351ccb8aaf13ca1c8ec98486d3bee7b025da6247b966c766265fad8a3907fa0166fc2101cf161df01963d4eb29c7b4acc5226836c7fb0a5cfce69b7d7d5c31594bc3407c063d5844c0d0b0bf7fd0652707ec1e94611da6c5189fa3013cf971be3788f703271869750ba9e0f93555f428432fc0c421ded1e42514786e3ab066f5866e21111b7e041bb4d63c64bc5e1f0df6c7522bdd83f5b0c130975ef00c5e0fa3ca0e2d685b4399991e9013aa0d331f67492b9db1faf4b236ad241075c3f06eacd3d93e12430199085ce4ee720b3f9ac0b8b91bf9acf920baaa31156c0e3245f78c763c541783acd4587676e92531fe19eba0582722d61cd000f8930e16c74106c91e37c3249c9ffcf3e9176cf36a7262e1cba2762df5c26669ccc868fafd886e9a6566c67541ae00268347723b95ec3660a5eb9062aebe59195c0020719ac75208db1d89948aaf3ad4a1a00ad782fc129f3f7b3691a2535769d0159e3994865a8cd6b743de740c00dfe8fdd8e0a41214116abc8d6b74029dee033f43279273dd8a637b69e19e25b570bcbf0660414ea568ca1d7ee8ca19c604d03b907d540940189544147e79de4c222dfe63345839fc9c2e18dac35aa0709d297af41fbda3fe5ddfe520872a885f944714cb807f3c4eabcba6a2fbcd2ba8cfaaeb60dbdb9008e676100613e8d802cdd67334bc0913298a7ee45c8a60124a35367529c275e8336a56fd5cdbeba676990cba23f06fca4484e28160ddb452cf8f0b5ef4c9adcfaffd04bd5e8659fdb12a6985b33bc64b591e5f0ddd2bcf834ade6d2df001043d1f4394d263cd8260cc7d365bf89f0b9091cc6461f74234eb39a5d96b454f2f7fc31f84f36111ad7972a75569010fff7a530ef6b4314e72d2378abf30ed8513768298bcc5ff2801854c4af1dc022a2bc42bd1178efb30c20a678304ab4d14e95046225ea51668ce7a08ea6679632f787eab366b4c3cb448fe954abc5ce4b4eaf5d28ed52d0031f838c1cc87d92fe6d1404012faa07b40a74994102a8185083dd757e1c566651c36f5f2f6f17e0c2046184e92e00e8ad4023519da4d5865065221b57cb6e56db8a793e427640d5054d2d5f60617564157b625143f20a6b930f759e31e8b9d1e2a8459690976329b8a3235aec23463d71d58b2b15afb2e0ea3d6774eb9f5a4237afa05531f3e5a3487718e59939de563ec40438cf8d3049cbfd919ef1fd369111cf6bb805c4b116929d74b904a8da77bea510a4ed698c398ddc6f09f10c79dc65959cf295a11895db8163e617ba30be87e37059c7eb2e7e39b3653210f58a9a6e35e9b04db5049fcc312c3bacc943bdb05787967d6dcceeedeb300e941f9bc78f6ded25de44eddef386227d47f8cd4b9ed9f7ee87cf9872f73dafd39735eca20deb6d000b0bfddb8f2ef376d4c954530cc0430db051b8df0076406a7a7deab093897aaa3ad1b66a93f43e2fab2a93a7da5d5d67005c8bc2389a1fe03a8a45a8a7bccf1d65c488a624844548a841b2d4e4f95e05d79aa792254b855637fcb826679907f4da2f0fe086e311ed46cce947af9838f46f7d7df0857744e2b153f03c39c28d829706d2cd33d1a250f8c0a7eadc70574e07d60ac4cf6547c5444d6639c9583a919907d40ff67ee1cd20d93a63505df05abe2a8e4fd44a43c088d404435101a3f07c06f6531d875c1f0e480c26d53b65ad29eadd3ec8bf528096d461b881233215c90097f125ed52bd593991323bf32e466f1a0894c5634369198c144c412302828241c0fb165ff217a0afa52dab27cedf2d4eeb6a22c6a68bd955d0d720e8e8ff651dccb29b02a4bf5f7380fa7f791294a3a6ce081156df6bfe67f94796970859beb6c7251e751c34d8a5a315cbbb0f08f8eb5c338f85aabc54144ea6628c9d9a9f0fce76e44f9b2a6225023dc980c804f33f34775a1fe666650ba98476c03f7dfd1a5c8d34334b9de4cdbcb25bf7af29ecb69928a3743add23af2ea8b5c76293218b9e0d350ffb21e6067f011434ad56795a427a85e800bce0ff2e61b5c1a5810c7c19ef2aa9b24242b5ff3b65cdc3a66e3d5754f1e200e6ed863d3ed2ef24a18f0e70810386f40809a90f29aec2558b64faeb5ce39bb3af97fabbb7b419e6b499e6725897ec37a8ae7793550bb0acc90af8d393298b9745aa9579d9a7a72a20cc846d4f1dd0a28970eb481a7ee25b7fd3524bb4781db970bba497635c4b3b4feb8877d24102df1904bcd4479079f0226e99d4ea06020aaf40311c908be57e09f3ced993e384d64336b3314f1ad408f616af6025951f0dceb266430dd656a69eb1b52e7fd23013db520328528dce191a9838e1121a5f8ecde70f1803f1205aaa2a8211d23094203d30b958c414ad1fd1d44ef6a338f9b71149ede8f2bd362adf573a4ad68c4c8a4424da16f9493369777c7943165fbb0fe79ffae94a824194c0427068f625891610308da11ee6882c0d95c47956d6cd10bcfdc94793eb6144259c4d5a9b98d6004915bda1635e0b816f180df9abd4b456cda3ea75e40493ea843ce3771073c3b332998d0b580267db5af7467dd4aa7d07116ec18a6d0eb4fb4e5373f366fb23844a0bf1a4ebce57a12710dfad56888680532a22e5d74ec1743cc210a83c32e533d1c1dcc0e403b7c64b372c6426c6651d72a1f8a6e8a4aaf68909b5fd62ab5940a170ff2ed0a2edb614677401620ccc51a7ad97418c5a3ea14233a722cecca4db392726949659b56272684a840b0e040c770349e92a4016a49bb2f4c9455616af0d28af79b84254ecebad1c4b134c755ea770d21c197365693104e0a316c7bba0fa19792707c231c0508919fcfdd8b8092205ab94ffbb54569c6f4f3cc394d32691ca4789ca70472c42838f8ec0776be38cfb645c72c4a8ba85cd617baa2f08ea2ca2258825857992e3344ebdfc58ee856b7b80d9a2069306acd8c8f2d778dcf151127e87aff04626e505ed4278f9e40f9f42734efe77399b58aa08ca014d1ac971b1be343f42aec40caaabc8cfc048c2a1e57668a7bd33f83ff35e9d371c57ffd22e147f3470311e56acd2830fe04dcd14923ff91ddcce73db2caef1fe7e26a91b02aa4d9ba57ae00f938c8a713052581a9482dd3a3f21773ac89461c403012b98c3bb4a5b120942148a75e4e390e5e264b19fdfb66ab5099def0f3a32393c6f7197a7ba66f877bffbab60af4e8b98932ad8657639cd20afe34f5f030140875e3a0dc921a5da8c566d50280103f0d0489f30dfdcd3d3a728ce1f2a27d304c87373b167f0c31dce2ae8d7c6e7ed173407c931dfa480e116766ac17de0b72c4057842d941548a2cf9fc1d6c40bb45c20e2e5a95e10a908b54ada8802463c3b09f72a2e28422df44737ba79c917ccbd4cfe9b02b181e876d6511f0bc0684fcecdbc799cb839e4f4efefe62a6017effc98bd4fd7f83209c5b10a9b60433a916748a2aca3f4b4cbd3f217a880c3234e4094acd2fa3172c238a2bf1ee9f5b039101972d3b4f942332a0dd9bbfdca141cabc1313c6ab0a5469c790b1ad288cf5e3c9ca08f4b2ac2113ac0801695c8eb2d29421bad69ce029b7ece09f1f2a78260e28f732e6c263a510df17161b53774d60b2ecac5893926ccc38cf616ab40eb79b5ebec0a1016cf7f99b141d213d9027c01f14d0764146319a2a937b81787931e63c76df75b7108c8230bd3fff707c17818f689b8c73af3936008ba90f4d9773bb24866363315fbdad70c1b9e8dcad927a284276a02f3e76b84800ec13abcb2b391d44700d2d8e9b89e91924de37566f2183f5f4ca8c342aa5d9d3b1c319016172213eee1aec71e179375cb41d22cf0c394f2afab665868c4067403b7b8b62736237fa21ba61e1f414e6e7f7e581718bb8fbebc4b569cda7b9886d1a4236b4561b81581bd91dafae3d032ba3f3d5f2e71edddaacf967541bbdaef259c0b9c375864842a46ce762adc625b8caafdabdc97f42b2ca1ef2fd93f659f31539dcee023e5fa94d7696508d9f6c6362fcf1073c1a6df0caaf18ac55f3d611eefaa49d0d75004b13b39e8b93107b2873654ad9d2a483996b5c0d7a5480c2473f162e0a693e7408bc902c74c5b8d2c6a9048bb2234859736bc5efea845bca6c71dd213bd29861a5600d7b23ab044f5facca954497024e2861dcdd59cd3786eb8a2be4f33afe1e191c5f6eca2566dd7967d7882507d9c298387069bacb4be9081f512c7181ca238c4c3dc6510576428b0d915367967bf312c9b5474fbb3b7a78fefc6c1a6f3f269ecb499ee91ce5e18647bc2d2a7c5a32da5c18d02a799f4785a710518eecac4c50e93793be03cda9c57c520e98f9ecb2409dbbbc6d75418f9b79c5e546ed489814c88db8e0d1b61f016d1951d7683eb775947dd917915349d5ddb689531e927dab2fd093c180e0a24310b36ee791adc0dae5ce1d6a619fbb1765f64fba00181a3c36d2a4a57e3242cb47a7b5129e99e923d83003372a01690ed84b8060a265e8b9153d64a80e9d1a859d7a52c591658a3c6fd0a50151ff15422da7a35e990a7d5bac17e763357777d4cb701c991658a6f9d95a7fd590c76a5da7c6a4f8120aace428a86e4b82c947ebc9dbc56749bf609f2ace28d1e7c9e023b86d251832bc4428ca37b23a69940dca9771ae8ffe6c5f429e51b2d6beb994028c08c70e384016a5e024014568466f529f1ced83b7579e94bbc5ae164580206b2b3ba5754eedc3cd3957ac33436ad24026aec80eceb2aaa4581f9125a51da0a3223feba860fb0a33ddaf031816368ecfcf8b1b4cb5307349b9912991e011ce78effa6c49a1ecbc435d1313e60f10fbb7568d75127e61ff2c3aa9b636b69dff824aa5800fd841606f04cb74b5d54044e8aae703bd38da77aaec380c254cf7faa8cfa27864a5b89f8b1dc241d950d8e80d6a104266057258368d1ea56ea129ca97c8b6132d319634551410133f9d41c29883062263beaca678503b5ca03a7af4e8cd44da1538202258d8a8c2375d87ef5c2058ea93ca568b7297e129d2018517744106257ffab70843dcfc9768336ea68b4e3aada7ee78ec4ab6e605cd6bc3274102745fbc92c445edb12fee694a3fd720852fe302a7bbf1b355cc74b0d9b41fda0b9eeb17edca1a33d436a0b7931cb643d5e143a7281647f2e16538c53f0dab3186dfd1da22adf744777c3dac47c6800738250d7f24f308dbedf43836ca976c75907ac83f4e5006684e36f57fc21a983ee6c664a7a32156b992386f6b218eda84ac999a80fd96c7899298e8a72e5402b2f42f57331e1b5e8d2e0d6c8a2ca77d290d68bddefe5f667822d7b0f7637451664009806200b61209ab7014122e8aea4ad1d65dbfaaebb6d63b75a576d5be572a65c6a40e92596a5fa51cbfe204781bd75a8d5efd884bd74ec3001a80701cc6348b862699025cf873ddb1223e4920725304260be5f0aaff4f11904819221574975d372acbae9b766c67bc9a386beb9929667ba0fee18e84dee82b9185bd198b7ccb16e0b946021874e21b98cd64926f46bf12e2f294318be3db141b8ec7a2a7350f84d4a23419cb65943a6c190e0795485137df0001c872f9cdf0d25d10ed9283aefb7f10b12f8cb8545372d02616ff2ce9d12106573bf9f0a798e995cd2d31025b087dc7b976962873c4380811b715dc7216cf0884d95fb02396df428ea3ec758f6ada42c0e08d89d1aade2c6e79078debdc033c2bc797a40e05320e35c0141f56a9785ca84dd66625a6d44b656d4ca2a58e55b2e3a7c72d4afeec2ea7434bf96a4a3b5355f08e5734568a33875e4965d8e5ca74cea300fec5ec1cc88e1fe7d501fb1cbb1a662f0b79882fc2ac7be831c8ccf6a9c491afcf0b604534afc8cfc451866daa9f24fba2c7963acddf465929addf22e99d23233488e500d037997d0e247c0e7a3e56d00f2751aa9e5b979ca9253a963ded2a8a303923fb5d1eb614e210c7085a889e27b1dacf91711ed1f8c9660ce277a3896ef0c8012296233bd38772863690464b83c72cf27b615aa50f7fb2690321f25719ad5e2512485c9fa3ed8c34f9b0f2675170f2b2e5921b8d0b0ed65d14541d579eb1aa5805baa0cd88c670251d9085065ab76568e334e2d705031c921b0b50b54dd7deb07aa702cef8432291b1e4fabf1e41ebbaec469ab83a96d3c3b8f119af4217f44212d36a0f5f7c4ad35cd793385361ca2bf133854cc5563a33f20dc611794eeaf6486ec01a19a96d227c53fcb73d3069dcadece4f32b89a13019ec7d4209c7412bd3c89c35db602c61d6f9bb2221bca658e273313a80f8392ef818a9969490fbdffe96a0474b633d14440a34df892c667d486c091d51884e30bb12aaeb8cf51690dc86db2db029db5c429d060be5766c2fd5f8e4b1bdc1df1a34187a7cf1881903b592429ab9d67922ecedf350d5aff0c048a1e88822529f56bb2680d82c942e81187cf83d2ac1d4170967ebb8ea334b283442d0422720b75eb01a263add628f4dbda01dab7e74c402e29b5966ee4dd92a16a8ab8c4dce73b65f2c0e8b5731db58aaa49d5c1d3c49690728817a466959867e3afb8a9fa93a26eb5f18eea164204bedc25238b72905e6dfab05d2d0993cf29cb8b0dd0fa39ca3d3e529bc6eeb373b05bc7d9d2503c8ed76c6ca85987ec238f6b72aff296064cc68e3bde7d23330cf5753f0438ec3db92de20896f0d623b145cf6a853ddae1ed1af94328dd3f107336053ff3b059c60c915c7d9d2f5179c48987b2f4bc504d432f9300c1c8f95e1e173bb6ed1149338aa7bf509d0ecf1312a519b8faf4e123938e910b101f15912dc0fb3ed555d6ace8218331d9a63f2e95b05d9ac8e8c88b674242d8a2651107c9d88ec1455c048f09a6fd8c61181ed099e9743839c100c1f6569b78a07e7720ae7f69b1f04e15c2ce3cde8ae7093f358c45f180828a68144d8d96e8685ec81c422daef3c2afaffd5bce37a9a6653bbb680cabaf5cd6c78dab2c77f250b78a84cd9e594399f6937b133d0f2106133c41aaf91ae3e67f0c1c81d9c7bb5be052dbcdc29dfc1abf4fa33e180503d5b771b7ad0640147b6d57c983aa90920ae53dced41c6e51a3016cd05d358948bb24e3842d587e9c48769dca923c46453ff47dfb88c84414186ed89f62e8dd14483319bc9c290ba07435a3bd66f566443acb8d0aad8cc6d5b641e3ad39bca498e27233d30269c3a0beca6d89b82ee3f4299498830466fa87256e79933ba24ba7ab1b5f92c9455d965f00904528b8129019eb2cbf8ea0716b228817a71687cfb3d4bae70a51c52b2c6623f4b292ba805b4be8ee9c5c567e5233e6e61d578a2ad148ede1a3ef6ac7eb7b4c8be4334b50839a95c47f52956b5cdb50e49c2ff92b52354bb9aad86eae0725f0eb54d74f803601d8e255c82932bb7fda7ffd7ff4ccc8d4964f2accc1136d16c65070548fcd33bbbcdb48b2eaade13bdefd6d0192045c59ff42b11b4467d7177b453c99e13bea138c6456e7e1d1b9b99a792a1446af200582e10b693f22bef4b519c8d0a4de65022eaf05126394e39c11688cc1257eeecd612e7417188bd6931c898170464f74f6fa863f34acedeaf0ccab97d46c78109bf4f7a316fad1bc55ecca36c6a35c2c607ee4682873b123fcd10fb2651190aba60d0461b863c4066227ea4c035b84c50ab6f89c292d86712243eb28dc5d45ee0cbf0d41803f28e874b28d037420cfd630e2a79d25c0b84cba15eeb2623caf8a4e02eead568448d1dfa32c8debc4e4b11b377341edc65f1a52a427f78b586c71df0ea6b4e46b8c7d987ddd57b2c1cb4146682886afe9c46b48f64b75cf5cd18ac195a39f8d20ad64f09f10cf631be9fb9d21b0210f48c5ece0396813fb74683635a13efe5dfdcd246b188ad1d0b62649a263506200984170f0a901b9600195de41cd64bba539e1792f4dfd44cce0a2d07d0ffd0e71948d25a2cab76999951e76bb0552b0c540c24731e3de2870eee4a2a7042cbb077f662f30c19663729665d4393a106647626f9e94c0974e90a4acea584fcdd09629d8734ddf68c81a9c48a5332c81655ffd6441403d4ea01240518438fd4981eeca72348dc7eca60cae1fbfec274997670aeebca0e272b1216cad61c7c338c67f072d41d757140a41a3ef9fed2ba63913b92379c8100f6aec3c1353d2601ab67ae2606bcf22d32f84198310770c7b5069668d403f787e0e9c003dd0dc4d74e7696d13086b532a043cfff4ae7c626acf88eadae45b7c962655faa457fd8445603000a7a2c99239e496ff03ff37425b60b5f9f36d1b2ef9dc9535071be8c678534d6c5955dd7f72d4ee6bc097d004309b1f4a2930b5586371ebe0f23d821507f23cfa11b89b7f895eb9f7f26f95beecbf8916500dbb456047ca3b04d401456d852f82b70f96888fbbef2eb282ab04a04642f812bff00d9682f4ef27942116315c71084d4b92ba711fcb118578618e020f7941a7f99d908f78dcb67c797e37c6b2676a76a436529ae329aee02b6a7e8aeb5b1ea5ab04b0590af3ee56edb3ec2d40efd1a20997a64a9776187638a41e2c14e2ce3c799a4e8a6108a5531fc514266367c057f8615a366601ce4f28899abe7948d96decd4e5668d4866b356920665ceb71f27eb9fd9c5e026d0756d3ca0f41cb1f47064bc9ce7d1fb553f288e71298b69043b3112d8ef444e08ce45948c18df5b4180609566d8ad42319270a030474892c340a2b346962b55f5aa3daab63728a2fda20e070c78254a60d76ff373421bb5948a1486b72c1c4d940884a0507c753576cec3971689c4f582770ff4d80a032010cae2320311cad1511df88994282a3d4f1952de001302124b541422935499ecff97a3fa7298f4095365c69fcd749822d08dda4b20c7117f89c331610a2bb5f351acaa9efe3a8b52538f7c74793bb116057c52e4bc95b96166d2e20158518c20f15641cf198a56959dd2713a218e0502a57c972836ef57ea0c5de50cee03ff510a8287132c6469b58f41be0f5017f7271f1f0d8e8873fe8a7a55c361d0028369327afafe4700fd07db6cd092aca44c60c7e50df1b98e60d350d0286cba811a0e08d6c28bbc0bd5d0a495209925e849f563c7fb438cce03606a05b5d5148ac9605e64ef80811e56f87b25640b631bd4fd1c314cc5fd652b84225f4a7ed2abeedd687b076a0e9302eee67e79f864679457935d6f190cf0b0f079803b5ac6e51290e8e3e00d041aba0584d429dc1084d53621293f009384d4acd71b0cf93e97442e8271402d83840c60fe977fd9059c5a4c6359b47466a9396e8feb1bbe5fa5a1b695cc31ad558831a57a979d49dc000703a4a8b1c5086fd364595587fe163da46223973b21937e79d36230fb059b399c0bd62304bafa115afb8d9c0857f8ef3d335d3aba7800802bbcbd8a3f7cf79ef881160d25f4c649710aa6ac3044979225b3a37e057e33f2061b0c693412bbe9708d2a6471f7eb858b1cdc98a54933298c8bb73d89f05280a29f356535d42876634a45731ba35911357f0f69651902a8c7624fd0e538893e80dffa15f6d761c1d427de2caf2079003d74a04693e2c63a2b06ee561453fd01eb17452985d49062151f893016dc374efbf5072d167476e5318fe20750eea48d542d1f18afdabd1a7219dfad1d55bb1961a171898032df46f4aab5d0db9f740d11eb67881b0c6ee7001a075c6d38f08150b7aebec80889a0ca73161258e3de7024c30b271983a9cc0a90b5e30077c3c1c270e7f50ab7cec38d47acd32f889cdb373591744c61346706aa858e176e2a25e60327c377e19c747a5fb19f769d8d0019865d1c3e244f6848f792ac9a930633fd403e543a032dd46e717e7ccee8316d7898adb5310c9b8f7e5572714771879af1d2dec9542a575eeb24659e7dbf9c5a4c78141a15e8a53a3b02f8f20bc00e3b88297bd63ef6ec964977148d56a2492b1157919ed3158ad32ccf196c8cf22dc1ead0b2883c07e594f9f4a479d0075018e1e91a421d4c402449d66a94a284533ddaa6089677e3a0cf74387893b566780a6a797c08d5bb85e33a763f04527656e12a41ff84370c3e291c6c09a3a29d1c32b6e764597ffa4344854b897633742bd51e5da77e8ae7a18df11f414a5de2e4fec4282a1c4785795a65731dc2590b808283e308026a7bddf05cd19c27a862beba419f8b4ae0da78c277568da949782bf1318bab4db706bd337f9db93045148d7ca98ce658c1ea67601f3691709fcaacfe15e67992e8ccfdd281893925002e1160f088fc8861120f360cc2ce1c274769e1f4c08c794c7a6b088db41c7eb76f0be9a88acae4e357d72a36415236ea288b94b1953c342339edbb2a0b78cede7454037a6b61e1bf46ed62be5725eda776ac8a9f8349d7a3560f8113081c70de399eec7aaf78e23e45d420aee5d19e7576890468d311729e66935c0d9c055e140a04930520322ea4070ade7d0bdf09640b82e978bcd45e211af712f17c346121566554b6a51189ba662177b27d29d1365151158484f4d55a3bcc2f706341341a672b10f715c261e554e74cf300198035543be72b142b75185f58daa6b1a0b4c8ce1e91465c3e4a3af1ec06fb2b8788816e29819623982e0936c1dafb552997b90a5bdb90c929822aede46fcf9334c809cc916aacaff608b5c4341ca0f7420824ff56404fea39559349751ab6fa0d175d3d75b941b1ec279050f0c2ad0812fa7ece3d3f99315fafb3bba64fef581ab02f847aa5f818f6ddfd581dcb9d46b222da96d499ed62dff3bd46a65bb0d10b208f0bea1130262945552d4bd3e4101d0525d9b8cccaf7b003bef162456023608dd332d269c09309190005247bd4f16ae860632a36b1010e1bd990a75505f26774a83d6e0445f995bdf8f744757cc137567be726c6f0332346705f55f41fb7d8093a021046d580449f015515be17923f0c8578a63d8abdad36918a8af0979c64bca2d8d16229ad20d077ec61318900a7a24dac1d4a165e58dd44f1947d444b01d0f8ddf29f1f17025aa28ee09c677d668d7b99a990b7e58219398520a6bf186bf942b041c9c571205f609fe10752e80bde5993b46086cc5dfb3c4a96dd645c51d19a40c06bd4546a6d4b14514c4b6042e12a188e522c17b41d90d5d26fb7911deb63dcfc3a70b2af584a74b2c7b300314e9e3096f117188f419139ac54911377e07918614e3f1ac7c3dd93ca24c5eb1c3dc0cb95f8ef5fd7b14bcea67300e3c4ccfa81ed5410bd2334d03c5a3874af805a35e5ec4df84e16337da1b1810d6860b4eed3fcee93a0c705e098f57fb0ad1df3d7c8a9dcaeeb52cd223b2c1d9c558fce01daba9067a905c5b082f1d18f9d2f9699d7b118fb904ba254345ccd393f4c6158de627272c8ec4021d10de4948555c6a203398d9310a586efbfb78ec0201721704144368b4ad5299507db75bebcf52b0e138f5409520e1ddbe42fba543f7e5684c43282f57df2d6e9242371e58c609001221d883690b28a52d48ee09a782ceda285546aa072505e1b273390878c0119b95b7738264f85cc066711234e638f39843594a4dea39ae4f134b5695ca3368100fe1c8b78bb7478ef98414c37971ef571f9ec89b0939e9e53d38065bf1c67cfe1c96f12f81611901f46ad839599ad54f23e3067a4894d580b785074b0aabd6e1e2b88039c079320c2bdbcc6cb8eb8a5576fe2353a69e329cb2ce04a32c3fb2ba04d6c2de341329e4756e8c531bec6a6fdef7a42df82c18878a767ff0491412aa56eaf15d3fb602b2df15ec8b84245781b9c70f444660865e18c5b4b38fd047dc76bb049774ed4913e1e56d2dce598248659b232616f44a9b5b34afc177fcf94aef602caf40637ed370de013a2b9aadfa334288feb7268e09e104a277db6ce984017102f5d9813f77e0ef0efdb1c37c56fa38db1cdb973d642e1d92b6cf0b58534b4763564ec46cc933dc16353a526b483741eef9c2beda456d1b6e9856b76007a859deed8697f38597281f4c7d25b38476eb0941d6a8c431aeccc1e6fe9cc2231cfcd15b5596abb833b9d78320b49dab563d8be39719c4fe6d5705b3eedf181a7894a5e450018b44569e0d677c6a1f045e737ee68228d3f148a938b468c7444d50fa3f173c5f451cf3e75d72c20d98141bc4c488d35227073d49429f8a3bb08d0e9c2a20e4ec5dd011a0044eb1ffde4db09c473f6c3671f910f5777a2a3b1c0723440aae533808c622d1182ca9ffc3e8fe9f9649eb0a9b2e4947d4b892a453bcdddd9c9a73db642ee62d4a139e7d70283b6e6a343b1bb31c7c0877fe53f63a26ae1e27a0b650c093362be0a2f9d224d3dd54b0bf8da84dd26e36f5ce200100e8d2b6443a5994b9c627196ca239a2eed0a7cfc74bf386748bf5ff675bfd0538c10bb6f21a2921acb8fc8fd777f95e003ff74521a199e8e69582172748044dd9179401707fc9a96bcf0dfe359d1b3fa24f7b13e1b0361028094c8cf93d854263a22cd22bcf673480aa64c83d1d5e112af05c5168491cec53767759398e4fe005967780107304cfd32267fdda87629da6babf2dc29e4c861c6b987f5bd6a66d18e9ac205b8007aede2f3faccb0e8864b0a586ef9dc21cbcb6b902c2a601448c1c26ae889a93daaf9a3f9ca2d4ab785e5c726217de90a280851a73e7124c456c4d8c4a299a7d3250b74374086665659d1fbbc17a33e8ff982d9f6f3aa412646c7b5a8802519ac7a6acc9d231a90f29bba71894b0e6622424485bcded4571383dc45728eca83e5426c7bcae31eadcd23e2e336080ba48ea683bc0717f711f5f1c6a27fb2cf48f6943ab405f2d5c460c3484d644b18f64763663276d326e0a106a1ab2dcbaf8c7049cba7d6978b39c19c560f403ef247282a687ed77f624b80e42f3c259a5a599970b8e4b3c57bec37d6fe9cc1c5815bf113a335a26acd84c71979484035fe5dcafa5a1599bb08ad5e56a36e4f59fc050c2da3c2ef30ab6cba4169eb27566a20c9a2cfb2049f70424fa2c2f27bddca8de5e79e9ab834ae52569c970ca0b5b88293748e535aaf899152f363f4f18a2bcecf75189cec9281f6d0a3c79b98b8349a665edb4e415c04c997ec09eff2f7ed9a67ad5495ee930851850e3a6c9dac9ab097442fba8070ca9eabc6e85dd89f00886120b3c20441eebf4f7d8208e88f395c9f4c8ca5dc1be4fbb779385287c927547a1d87a110db694a0f416fed6ff035edad763ba21edb502787dae01af17de584ea0f821af9c5bcca94dbb49aa7543c24d38789e13c18ec60a81afc68fc1656b5e43769a6f63fd3a848dc7b68aeae6d9af207597e1ee47a601e9577465afc5ba6634a740cda081aa1f4a506ac6965e0b2147339f1c9e04bcb9c4a666858eaaf9ed118fd673c3caf732d5e91e50bef52bb53d5b74d95666fc3670c7bbf5bb06b661224cf99f24fd0242c07a5bfa70a5b0c8762fe58e6b64ce8a66130b68da9e2db5c3ceac4dad813f23800b556ee6c83c4a3991f1893158cc0c03ff16f4295482c8687d7e6e3eb97dd6faf7083b8974ac777411f3a25e60e0e09f8bf31c3a4acc46e1f30f2f71f6161e974ff1966079920daab79a516a99bc32a7515d0941a1b938d776a8f751db425bec9d3b247ee18de19ce11c5627e84b9c8153edafa327e16253f33864ec1248b430d5cdec9fd8aca591e50bcc184717d56181c09e8b4af8886fde208104a4a880dfae6a518175ae2014a877c8975d86379fed54a8027b96b9c035082ec8cd6042bdfc4b37ff4fca6aba17240586494c1c4b2320db1429d5701132194ceec91fbf2139d59c90210baa7bf47b02571ab30489707f97e837f73aef613b3f234d9360c1232367cf2746fe2a05e3bf9bea26f5368d688b050bf03dc83bb50649f3e9637bea52ca03a1de182208b840c67c93858cfd188ddb71ccab0af47833898a5a7c3935b691cbea49a3e778db67ca16d4cbae7438253291956d67ebc9335fe6330b2e84e1484f248c7da3a712fdeb981655549f3b538f9e5e603e3546b198ff2460dec97282e0b568900906753586e01d0b5b294c82f7bd9a09f86670cbe5664269760a26cad75763e1c7193a243e9c4586f032d3431e2fb6d8b809375112fe6693e29bccf5bb43f8f2bbec70d14d4e8be0ae2a8f3d55f52cda3f38f275bb5b0f4a7a38c6c81f5568cb976713dffed50aeec5cfb3b61d6724f8ac9a3ebeb6eb78843ba136da1407928d3d100f64a117091e0cce29bb053b301a47849a20d4b5d2f7dc46c455aa5b326d9ed8f5203998979f06f24af5f83c9088809572c2daed191cbb82a1d37b108eb4e2db555b8835095045e550dfeff6fa4ebfd3f7bafd5ed7a99b3954bb9ce5a1aa72641de9282e3a097a620a18113ab0099b9be545a52340840c4c0418b2c0f9405417d27887e2763caa1b95c8fc83488facbacdf1c7fa7092a133210e54284bf610950e6a4064fad8e51e913e0cee7069f958d3d142c3ba43780254b62c5ccf720cf6d61b01ebf574b6b307d5f3c17cadb52ff0bc39fc4d9045d6ff6fb7dbb2ab30bc3de997b4b19b1591acfbfc5af726cc16bce4a55f5fb35eb0ace234ab00f5e2f7e4109dd034d6c347fb8f4f95789905d3a5f9018413f660d7b629737825b81f4cecbc7248a669ab61f3390c3d9b154f07431795f30477b07a9dda2a9535e0ae5db186117b21f27e5c5998981c362e3fcbcae6b4f5f999adcd6e6bb7b7c5dee2b7f1fb982c2c2e0b8f97cd66f2597afd6cd666b7b5dbdb332cbd54485f1b141c448223c2f2f0c868ac41122c05e3f3c249ae51d410be18bdb2e572ed73b252bd9f06f30d07d53783589c20c770d96c06eb707960b56f90a71448af05eb98f3415060874919d10f465e904a4f76b99d8fee164e1e7cdcbe7cfff8fde0899ffdcbfc67b478395d7cbe66dbd3edf2fb375b3f9fafdfdfe3cdfbe5fef33f593d5cae1e3fa3ddeb747733217239fc1220b231068a254663b7a2b44d55b4bf9005c7af276c755eab0590dac9a6b49274af446502549b3b03703389321fc1258829afa7a423419680637b2fd288893b3a140f856a593056c0a4f57b2c1f80ea1d14cf71ed0a4ad7a872140bb75837816553a85a80a225d4ec41c9002a76b8600ef52a50aec66a5154ac855a09944a51a5020a95b04e8f650250a5832239ae5141891a5588628116eb23b03c0ad509509c84da3c280d40650e17c6a12e05cad258158a8ab25013819228aa48404112d6e3b11c00aa71500cc7b5282845a34a502cc4621d049641a10a018a905083072500a8c0c5f4b772d4d45d31aa54555456a8ae52510114bbf2cbac5a7a88405b72b410ed3229bfe44a2c4d29cb579612945e6e2594ad4ce52b79894a2ba5fa8bdaa868fa399b589e91ccba6c3595ceba683525c970310e76f1bb7e1d670efb0a7f445dd2d9175aade74b399f555c20cb05e32cf41a3b4884c718259c37375357191254c9e5c07efbbca0effccd6d7287569cca463685dac13824181b7716a4dbc550bdbd62bf3ad93aa7c0a2f011306f9330ef21b8b0f495106a597f4a5dfdd19372f274652ccd13b7bb5c9441a94b40ba30c5802a22bbe704243528261c32c499edf791ee86cb26c55fb31952a59f668f8aaf960bbcc37f5f235309f42a905d6f9aaf76f1cc787f5882eb6ac458f91cb5eafea7685ab2f98db449e842f770623921ceb6a10d06d85776a093dc1769f63c427c8600c28750a9311c1f708c1769f91fdafd9fc11bddb93cbe8dee3a8de7ce3b0ec9d2f4e41608afac3845cae7182edff1a893c377feb4a11f5b7983ce1983bed075359aa7778e74ede7b51b5d7b79ec446316bb78e841530edef3ffd13d46ef453a17e97bb92bf29ee23bd2ddcf75b7a7bda2705ac4a7f02ef778e0ee20147fa3dc99f036e2cc285f1bae6cf1b4e4c8389f34f7204fe51c3f3db63aa99d69431ec28c285f7d683d03137252919f36e14b52de10cf5143c49e81036c3726e4664f34f0d71c495103212c39bee4d79f9633b08e8b2b304065120cc043bfdb2ca9cbbe6ffc2a0a43b44b8d90c06be7e8a261f07b56efc9de6e562ff856113be55a803c6018b7af2339aa831bf63759c0e002782c24b9ff7eca0fbf1a0024b526d9faa24d552306aa8cfc48bff641498ec6c1ac2223567ab5b44238380d09961045125be2498a990279b771db9e103242690b31a61fc481aff08ff24fcb437912140ecdc34cf5695b94456a11ea58c709324032d973ee15757661eb85831b20a6eaa23c595e46ce9dddcd3d2bfe553a327e65a08bfbc3b3506850067a7abe37627b0c751c89782c2f108c83bdd9f687ea55ab5e10f54228d8ebd2187af27525314b54d1ac578ba17dd081d23fba57217a7510fbddaad783e11b76f8d5dfc537195906bf0784e04f88fc0a750d4b5401f9651c9c866b8c27eb23319b7ccc40242e96b204cde88cd25059c4df680e303c18db521d64d25c875c1d6cd74f8ff3e9ccaa5cffcc887846a783699bd83711e31b736aa3f43abd1d62df19529567a641208718396704550cd0a5ea59f1f6fe58389beda73c078b2820bd7cece8f2350254d6b9bfe15f040729c9406062e18c8625ec12ce88e8f177f5147b71298fa31ce28ee42a082a9a8042a985f67dcdd4b4b0310aced0459c7b88920bc4209c7a060cb5ac01dc9bcc25782216b32af500a3d9768906f3a20c3ecef1df678f106ee06cc1bc7d1f306cad19b454629297e040d9009da0a025da5203e91d362c142a662f8743105c83d0c17dcd77a497a22f9f830c9cf90a7a3f480fa0e001e21a07b299058dede2c1da61972b6b1804931cc9c2ca5e0ef867fe382d5d193bec2b476ede2d8fa6464c11c44107a0155121b60c7659c5d070792184efc643fd8b84950804185ce550746f49437f04c9cd8e46a2d8b275c894c0be9b64babc0afc058e0b149d6447c54d1d36d2711e54888103a273e89591c46b0d65526cdeab7a6fa301eb2a948e07570ec4a351746e2af72e5a9235260f890cd248436a00626161ef7f68cd486acbcff8c50e4ae093cd2faecf377d7ea3aa82f71be59c7fa1aba01d8022be2918dfd90c0be06b39d594b6d69087f2f3d044721aa54207ec5115c7d72dc0d2434db7d7de1a45ff3416f9f9f6d8cdc42f401dd41eb666b25a8258925ce35e85223642d9e3e85282f40319b9bf1f15e466c4c9632528951441c1e64cec0fee626c150402835f1b957386383a96070fa794fda2156bcb03bfdb9fae6424945ad023989391938268946145cebe9189e1aca53ea46c490ae4ca23915c45b0a9c30b794b1e876c796baf3a161e69ef940338c171569016664cda83b22197dedf85f4238f298e8e30f9dd848270e4f024683f1e4a93b104eaa09f59adc36bd5e7c1dcf214c63c5a0160dd13b6250fe7d5cc55bf460d943f130a754640b77603ed5d56eb8f9148a61585c2dbde5bafd62fa537f327eb12e2d7cf7ff2d9bd2b5c933595e4848a5ca40d836f1fbd5dae91c18c3c5e81396608fb422dc8ac4a9059f342166f6ee9ce42777d0ee1d8e939265c2835923a8e5583a7ba68f56aa631b45cc08006cd0845b7bec681742e71a088b303c92499e9ae0ed2eaecc97df737b9116a7434521236b109abc535cb987e5cdb6a6943d1bf33765c4cee20b3156e5f8d93c9fa8b696cfcc613ed758cc18fe7eb2dfaf74124ef42b56df2083b1c20b1424785ba94e70b1cda8ccb9b871704e4aa7558f49acd71210fd9174bad3f298b106d1a288f33b4f29f6f66e33bc045e8695533f8c600ce625058d9604b207930d2448d7904426ef1b7e8f41f2d083e818176f39329e7a7bfc6410be45f92373a5937435f7486028f9f0405ab14aa597c49921e132a6b356b737a3d5b5992a19df28138565daa4945a41fc8d1d85ed8370c8ff7f86a3e4c5b1c995347434467885132ef2eb1c20e5fb9f3ecd42773454f632ad5eacdb2daecf801351f2e33299c348328ced70394e3d48ea314a6659237be49a22067ab0678a0d4e9662934c7e06c1a19d9b6fc3e0f90bb879f849e3f6132e0051ac77f50bdd3cd2440f7f132cc88594ad6f563d47a495685670010599cb90242effda082a4771a4a7420fdd452cefc839a70012646ddeffb04fbdf4c28cb78a12276242e15d96af60f3fd61a73dec424c62724de2f065ec699c9ef22a78755685fe321f18f8f08ecaba9b60d45fcb1f0a9a608dc362f3524d7c5ecdf1dcccd00cc1e165f6524eaf205086cc5f630feecc80b00e71168888001a69507cd16eeed22c68b363d0cf16244c11b7ffb569e36860d53382ee1a0e4d821e39d0e0a8699c5203032c8781f9f2fa9ce8a8ccf9031ffa8b4d5472fe6ad7ec8d090b113e87badabc1d5a7d91dcfac8aa95b3b7470fc879751783f183f42801788c3ffa199b8fd0cd8089a3045465834b468088d224339726095b53111bd81e5d1e2584809d4c0292d17b74bb2c495ba08416e25316d44865c07531d529656c57d7e443fb1fd6f41fb59cb3efdb6238306766427a172ec38dbb4701066a603b00760b200f8fe3bccf22da1170370ff0de17cff79e15608e01c93fc4ca0f86eaecb9e8a3151f66112d145dedc85892a3e7a3e4c13258827faa66eab07f9e2dac0e2acb7f54e688a20ef768047a6df761dd020857d406c0b411594af728140509abed80ab5c4513a40f5aed1e070f335285509bbb6ecd1a06db3e02447097d71a3879ce5c4570e961ac15672dad5719f6193aa86da820f58f7007205380dd7690e7badf9620c9163f7602b9029001b45d5a237e2c37991d64ef155bda615801e6a6917f71ab82875c5c23673efd6c22bca7162d8d4e23148d2752d5b6b7a46e6818e4145b4ee48b92d2027fc4f4befad861997901ac250d3f2d22456ac781ad08c85945b03e25521a2fd12a03945d7e204a43ff193ba820c479e4ac0b6f672719887a1489e8df1e31cb3e8d181a5cde6e4011c9bd870d72f9d2128f75108c8c74a619dfee9fc842481f43636206c88ba2d6748a134dfc67e4e29922800eed5da3ffd5d88bdcbc20eb8bb81302852edbbcd99450860ce1549420ca6de8232b60155599436c7e3133ce914b542c19dee418cadd10c8109ce94c9229cb6b2e5ca2623412d0a3ccea2bc4304f33ca83fdb62fddc2a5c7b467eb8b42463e3bd16fc8e223de7f38f1050c79203f016582656c3d515ca8a7345a3f334ab08191b82963a85ad753c5c21128c518f6a95ce772304ae2c54aa29924197caae441d7d8db25b29d413de2c6f81e173519b8c9f6e151929af9a03c6f3173da73776ea54cf9ec5b4172bad0cf9afd6ed839bc80d688e31548f34484c3077254e14162b5d00d446e3b2dc0e23aa15c0edca77cebd210e9ae38632131b6b4749c2ea90f87c8c3301569a076753aff7c6865e92c5d3cd8395f0e4b07ee9d24ed3d20d76b8658c225cda06ab0d3686641274a6310d7eb1728c59fd075dcfec6a1a1be928cfe159bd4b9526be3bcc6f1eb44ea171830031523d4ee13d1b8bb634bea1eefbae3bcf93a909c6ce1c50f122c866fded90e6e32dfa3c418292a3efb0f3edeada586a3e302c378770cd8761bffe8796001bc1215e2325de2b98b0580c352705c0e9518865810c58688a01a85c49d1535120a6d7934ff9a461fe17e8ee0fcc6c21daea42610f61936e01b99101abed42644600b942f3a250740d63443cd530236c8fa60c65cdb3140b6aea2e7e459b16062101fb536bbe15f105404b95ee450a3032951a9ec8677efbda625928ad79656a8ea8bef72ec80677a04cd7a051678e4a2dd3da46a6c58e883a0811bb592806ed11b16822c5beadf56d552693b23295b3c3b978221e400bcc8af3d3f9c250572619f8dd57f8c1972fae07905e191f985a4e342037a3b6a219b6edca0283796508b5bd12fe090571eb3ec3883f906acd223a8db386975abcc2b75a3fae4c56ca82116dee37eb1749ca5297ac45fd2ac5d95aded39644e491174287941fe902f5b75fe9b75af9683beee650c023988e1cecdc785a98349729decdbba009eb1b1687a126bc5a57a9a7934024e389450016282d56783d49b55149f44924f498cad3154efc2741721923d8eb2ee423587ecf3196479fcdd004887e48cfd3de1b1f9397b275256c7fcb64d0e9a50e69fd3102d4e7bab90405665ac9349d245bb803ce55005e4b031cee098d56ff4914e70f1a4881a78101b626c250edbae314a797c94942250c708e49fe4768faaaa25fa37eb1966c7acc5284f564d5c46aa11188d8ea140dacf781e53310e9343d49c6e91cd6343d824f1ddc0355eb9279996877e6ea65ad4df90c53815accb75b55d77b2aacc626b0618a1dcf5ba374b4881620e447152e077829f23c09356a94343a8f10b4cafbedff3c2f5f8bd2e5abe81648531de33061027fe687292ba2e2dad67be9c5a37499612e4074b64be79a76a67b9f83d11fabe942489de6e431e82e8c65ca06dbbf9c0ae93eeb497f596921ccce74adf2fec312995d6c3bd042c72048f27b7222f8b48de29350d788737a921d17896240ead1e6915a298c73ff0c50075b5d2b955404919e6d9001513e2deb974da021447a54754632033200403be81b940d97e003f181ce2fe8f72754c3faf9fa78804c8c3075335fd0fa09582102486a120314ddfa2fa2810441c54b9dc128212ad0184429aa40954431cb188959e33903686925c9907025892b2c61d345d8cbf6fa88ee4bc88ba9ded8758f8e6bc8c9ca0c04e335c0099698533d568bbdea05394294ce3ae8848a5f5d04e59ca3e0bdb8e70d226fe5345478f17c96103b8ed8b9158a288295b0f0dd8b6e0401463f9023243b8501662a5a0f4f6072e7a032ea1797026d487e222d9c0a3d3e4dcfc1230dde6b16c67ffa6ee89a74ecef45b4622b47671093485eea12ff2a64703ebe00d6fcd914ef0b267e73259ebce2b8b11ab160f7273adb90372b22198f16679caa1b94d2d946d1366bffa2533c5ba0fcec3cac0229715304eece1b132e76ea231077205da0b968abb9b08a2c075652beb6a048271e791947a840c356a08977b4ac64fd146199270312f06f8d224521c022f2bfe9fbafab1920ed28aa03a84506065cee71be4855591b19400c7a00b32625599a08140aea4ea55dd753aef9fa52a42f7704e187861177afb5276c4415fcdd2a014cbc7a7b10cc2e42ee99e962a506518f89b0aebd4410788ceb1a5288609dfeb20d268f2f83934e81718401d57446d8ad5ba9697bf1d94705cc965e5a63da7f4582293ff1bf0c22af81e9b4df14e5b2902f4726b59fe932e7536b0b1ff9ccc71a382b07ea79018f9b477ad93c79a3357801cd8a6047c6122e26cd789e903bcf844fda6383ddbca8ee7f2c161a4e8deffac03282ac74ceb0617b5df1997fe0c5629455be791d8b7a985797207098348347ecc1e158e90b48208b3ba0c46d1cdfb6c3116d52ee76f543cc14fec689e00c42e747e9ad635f5298184c59660929a0f3d9f1b46504aae2f04c88efef1a2163f98a50290b4cf12e571508a3878ee9600f266c10edace59d2ab4177009037db24ee545c68cb96a640caba984852bb6b635ea0d18b6b6923cc01574c77185f3d97fa00cbb1588402ab66642149a8888bff025f5316f448e0481b257c584eb19e47738374083e87e155c15920529540711672e47a16e6090f9cfc80a4541290f80ef98f4413f18e84316fbe22318e71a3a39479318dd4f749490e2934721af32fdabd1a1db25750c5f0f206209cc38dda536fe29a509c11d270366ff0172e4ea9c81a04414cd6ff93223bd80f95674b01c8b6d06712cca24d221066816177da2c8a610a9a34190916527da094d18ac2e2e0ee8005cd5662f1ff09b4d307fde450234f7a1fa4247bc03747621bcfc23527e56e7f7b97680425185c48d1d47f6351441e8e6b0d3df405b887eaf55586e5142f33c83167a686d11e9bf4208ee8ecda5a4fe41b8596c44759ceaa4bf96b8f80f988b724e0d9bc7baece3dda5983ca2d149184480c44fcb619566d08156d99e351dc0781d80adf2b553d47136f96b9b64d839513a9236e30481781d61d83cb2936131dc37b3f825b9ec962d8cfa1d8495222432cb3fb33dc47243df6e4c6b59b08f1635bb172d89a08fca80e8e51a8e883fd54d9982ba081039a40371c5951796626161397b50bc6546097c66b405ceb92b33a903ceb4810a91d0890f9607e0bc267c6531d27ccc45615602e9dea58cdc8bd64720f020c88912366984ad8c43b33c88aa3a52cbb1406548c19f4e86287a1762c5397eaef00187245afce1faeef804f89524ee24faa7c52d44ca867543c61c3e4730028a2c4a8437710f9b4cf7a3d231b85a8fc6e2e063db9d90165341816dc2d4ec137ab6ac4db9d2edbaf87e170960fd8385aee17f5d7c8356eef7dda8160a5253238e14052ee5865457b7dfca29f725e4b2595f04f14523dbefcd9b3fe2e064ca7c4bf3c34871b791c90ae65de80edeb2ad0add547aaf493dbb3469a6eb97f42470de4edade78694ba7897061465076fbf20dfb8a43a9abb7be1727889a5d28c5e30633b883f2e3eb6073101642f90bc30e06ec62bb011c1308457b396c57cc380962bb87264c6f57160804443fdace41bd77a32915088fccae23ed73e0ca9ef04ec140ea4fd381100724d8df56f77c3073109c7159a0a65f6e3f64442f77d4a8eb2ab1b8de6b94abefbbdaf06ea59d0c7e8c2e5b1d4e768d15297fc3c18a8fa4d0a732c5829f5890e8a186dbb8131384bc74ba9e2abcac4f004d816753c95189289a316eb18bc500322655868699b7f8f941655585576ff73640d9092490229ad3a727c44fdaa4d6d91a8206084f0700314fb2a26fb6344eae14f67dc58d6e5e4eed8337f811fedccee2ded92cba9d9c4bb60827785a6796d8afdf300dd3ae66991f1f93e219ead00e9fef67ae1010b128f7a3eb0712cd091e9e31f597cfe315032ef1c371d2759507c85b834034a2ddc41d3634e3c40b67c21943a5ea0393e5204364ae0140fa8b4cb603ac990921eb34aeae0fa3b886de692db029350fb90b18a1f13797fcd9d2ed6b89180233622e803ef3102d47748dbe45f18889ec4913d43cde4a1403e3054629e2d908191157febd4f12a38ae9df63202ee2fea0b4afc3ca73db69eb66e72769f9407619d6c64645bdc330e209a7f0073a5e7d613838c0779d9e3d56b2a49a841d372886e1c17e089b42acdfb0d99b86c846c64e2510814c3faf421fe38268bbd0b48e29a5ac4a36a9dffac68db34c509da80ef154d2deaea1f721fb385bd3adae453ccfc2399aa8733da699f1e99701f286e6c135b9d2a3ad44b023df26f208d747422789ecc2881a8d907b99ab1f0306fa271fd974758729f641bee536add31af479389770ca8ec9ec492c699863bb7e3cca47d424a8c1546d41ef06d0772796a419bb7d6154082f8dc2dc5df41b8f836a34a420e1533e0a4229770a983829fa8117add35ba4c50edd26ab49e920344490e12d78c2aaf58eeaceeb6696d0780ce409055e7184fd0d55205a594d3a4de344ece59a380198bd6512eb6f1789f6c794e3f672d1ae31c8c4bfa995619081b43ba2f5158596aec98d023ef7df86a2699cb0a8a7655ff065e5343436f18884fc7b7fb335b39610b209d97bcbbd037c0d2e0ea80d25d476ee53729b9765509e11cab156b8c462d55a617f2719acfae911dbed9989471411672b948b6fb7edaadf6e2edd1e196c7f7a67bd3eb16c6153a95b7b9aea209b3add86f2b36d572cae2e68cccb216679f3d5e7644f53cacb5bf993ac1ce420dc209497af1c5c7910bb8818daeeb25b797d175e1ba5b69be2cf29d54d29058e8f37c5dbf853e762e545cc51cea76379342fdef7d5cc54aa4030ea9bc762d55ada7e6a3579736bae721c5747d0144ac104b8db480a0cc5161855f2248c9eeca134d55a6f2e19d95ab9b3587bcce50ccc01f7b414ed85ce02c79f3a0d38def61b325cb32c93305ab9775ac9e4410c73a93812b1e94667c0dc566ff2502cb025cfe6c606b6d51b5bfe70af5b3369a08e411993af98d3f710cce14edfaa87f1226cd568a53f1a9130e54aa818572a7172a884e2625398d06e82297753b0a63a81372730303716c9163d8d58f447db4749bbde82366c2b2936c723080328b852d94f564ab0b127b8de95116c9630885f6d245bf455895d62c484be50d4dd8e6b8dd99e3919efb2b53dc683f14c2fdfbcec9c2c79d16ea5178e7b297915776dd44814ee1c256d422d047dcce91a6ccc2906f5530f2dc771db4f1e4e8d1faec2b897b41a58eef287e3eaadb56e31576e5ef6f22c225996aaf4a845673dfb1c8fec8d48fd7db4aa6eea3614a17e79410a03e6a290b67197daed31b7d620db41d57463abb5d61bb5e88f22b510f499b51de5e5ed9c6732c1a44f7f746e9b4cc29264b7a3aea5a8db6714aa8560b7a37a6c17827a359da62c9626af8fb0a8dbdba82136996e9452461b6d26506c8e455ab42bb78f114b2c926d614edf3e1042784a5dd5b73615817a55adce7d65f22067bd224ccfe27949e0900fa61fa68f47510b16cb5aa197ccb743fa6dbb453e6cc48463b6478137d471c9b341c4909402b6e84180e94d80e959205f70a7c629985ec2600d95b01eda3a28096910c2d009182601090d189a6ef0c85c2471c70555b75b6b3daa6a42b55acb1d751b4ac9abf5a56b62bd636d3ffd458c0b6365eec9e4f2cceb624ac5715bd7dd86325ba85ddb8579decedd8622b47d3bea76507f5ea9a64c5e0a9ab6edf41d44df42ed82b5d65aabcaf326d10c9ca42ee55edbd5586c5e1f5d61b7363a6a170403a6df3c0806a0ac34b973970c536401c31d57e26a10c72d695753214ac3154c255783da956352d3673ec0d4a4a3b712672a0282014330602aea656ea3512db01d6b57bd254efe402704d124205981294c4219948c20062501090bae964c46c4ee548aa624646e4c922d7a981bc303f3981c3cb2451fc50ec5c2b5a798245f302ab6c71c20e63297b950c4388971b803e33137c689cce14ecce10e7d9b6e6c17c5021bc3fb01c303521444b6e863bc2145161e21f19ee88fc2a48dbbf5be6481b4ba8b6cb572b1ca5eb22ccbb26c95ad562b96576350e7280ad5d88584f9d0cb2512885e4e2185289551303d8adbdaa85dd40c50e81b0b5a5da8698a0b24e09a055cabc0b5d667f31b8b4395622dd5a3aa8b7a677f59cbbcfc6ab57a71a9808941d1c3781bcc515ee4bc98c40aec679331d806ed46374a8f4a8145a281a29d981f9a94884f76626ea3db48be626e0cea7107e622893b327ffc912d7a94cf4fcc8d01c53aa85b25c1d2430c7112ecf6885197309944faa0bc86d29f507ff433a83f5a830eea3a4b5112464fa6eda59b5b0abc3d3bb4d17d74996716e6582e13e3c178909ebb190866b919f5ee5d47bf79b3bfeca91a58eeb98d30ed206a6f10a6700a9e58c26480e3690b810738ded437c0f1a5b9011c9f4ddc58f451ed3ad9ed7487f22561b2451f81b084c9d7a3ddb27315439bc5c427fdd1c39d188405fb641b0a03e65e6f2dec679303e66e96314c256cd32cccad17d6593643af1049d4d211082ae8a60793df3e52b68f87731c32021a8a3020a308337abb724b8123ec4fd36e36af0f34dd681f58337f666c49fbf4f3847836394ad3324d7b7ff1b2ce5ab5ec534e0cdf5168b1570044822050b141f67399c462599b3483b636d8fe0a09b6c6f9f8291fef64d2a7f929679491d239f1bc31ce0cd65fcf9bf9dc2c09a4252d60303c4fc7c16c9eb8c47dc0c64f589c40fd451ce3bd93499669f31dcc62ad70c6d9f424aff4d772356427ce99121ccf326f96a4bfcc2783cd0c36331f979bc1329812dc7366496491cce34e9f9ee9d3cbbc52374d45646b288216b258c30bc4e0051c9ffbe76be8001663c8a060023278610d2f108311ead3f330351591f920054ff8422602272401890019144c4006231c2f845fa6900a4f28b2219bc04416afaeed4d26a99ea267b0945e8a457fd40c3622c957cc736511c957cc85b0a53a8cbcb9aa1e6fb6ac0b616b5e22cd4aa22024dc44f9db8d79aba7794120d111603fe21430474953f183222c01370ba2e01c93c42538348d1b3667593789f5e902ce2c19b18dce7e5c742a04b4a588b8a7a5c0f1f30af2d239ab8c724a0a276d4a298c4c640f4b29abe7617a48b110dae3e149257d02aa6bd7ecfd2e8315f6a4701e6a980749b006e2dc3a98076d803420ce24ce32287176888564b75e28b1c4282c670035292b8450de0ce1e1e7a390196384b7462984af7e5f85365482dad0cdcf096bfa1d109c8f61149c4bf07052af09134a48618c31d20ba305b2f0f992e668456bd17d39214f7f31cf5b2734026be2a709e04c96309b253c9cb891441a48b131a59cf4b877b364f23aed79461892a813af441afddc78f647a98948240236121f712ca27f657b6f2fdddcdd49b206b0bc0d8335fdeeddcd0dc35cc34af14ad810de90c5ba755e4e99b5fca49d75ff2e16cb46d9b2d112c7186dfa93565a2ce394f22b17501918e1f9ee45ce09a57c1181adf9063ce77c0f813573d6be73f5022b5f6485488b2958f8804860ce76f81cf025218c907ce590ad7ead9605a7c026e022716222f01561abbf6da9d40beee7971cf21585ba355fabb5ac29424fc817f7da1de99f0dceb597bb1012c19a18a508074f1b9cddfce11993ac40aa7244254ac1b36fcc0e9c8d68387e47bc4ea0e02eff431e09157d313d803c17df3707c17d1bb267665e21d128eb4d8a2ec2961d638c31b6fcf47a5858de981df0510946b40a83c18c683d83a1cc0a4757855f3c7c85af126c652358ca5a0241076148935a08f824b39b52ca52d5e68c3efdc1f73c829daf5a179326f52252524cbad14a74129d983ebd24b9d321452b3129466c3a7c3492afd39f90af8eda2451d53f3d44cc01a088918f3b48e2ce0e8c3e743e015155b6e0a1a594ce3967bc4946780249bf22524cd24a9630c14d6a4492affe89483f3122fdc8d705600b1e4a81e12908303cbcfc81b481303c343d016b60ff004579733fe99f38bd2caa9e5fedbc2c9eca7a913bd7f1c6681df36ee6b15889149e16d9941783236227dd4f2ff9d84bef1310751b09b9d3bd7ffa83744e19e58c31c6f7a3474f5e348a47b2054b5e84c916ec599992903bdd7d42b620120e40b0812460fa880473c4b13fbd9e1596973bd0246fc77a497fb07f92983b4fc816fc317c8649361107c60ec2508606b628ba6ed9a2833330be93d9a5ec1a33486bcf8eb7b6348a47134a1ca8c4a3d872d24cab1bd7954c27944da958562d2e5c582f3031322f60c4b87765cce8b0030f5fab64a35d334a910b50a7c5a50bd8071bf9ba393c8e7c0571781b44e468178cc3f368d70fcfe3e347bbea76eef04db4ab2b1dbea75da6c30f69d7e9f046da853afc1348da6561d1a75dabc34725ed6a397c842e878fb176b10e5f0e1fe12394397c71983abc8733873a1cee70c8c3e177f848a55dad43193d1cd21c3e5a0173621cbee627ac7cd9d078666120fe038d37e13783e6367ac6e3cd487a98f1dd69c2d138c666858dbf0962876720323c191d649a6879ac195690cf5bc958f5f0e0d96b87ece095bc92111dbcfafa048ef1f8196fc2cf7b0c938e89651c7a8f3723c1313eefde8cf102c685a5ba055bf424e5f988a932c50b8f07862848c6e3f142054a8c9783354508c623c2454a14515e3c1b2e6cb0bc1a2d358870f1705638395c78372c373c5a3c1bf8cdab5233b5f268e0379fa26101c263fd604d3ae6f703cb0a5bf3343c54ea64d261712aa532a552d6879a9249c7c4a61b3c2c160d9e3eb0fcb8ef07ca9bd966963879af0762f2643499264a1e2b6305c17245573d58da69876c5e49962afcb2d71e9a25061df4629e3f1c4fb58c6a1ad5321a238634608fc67d673c27b542ad65940e56dbc1199c1b1b9a4c7efdc199fea076cd93dab539ad684847585831fb8bc742a8112a6f53c170ced3098f2784f231e6e7a19c3136ec121554c07be073de9c4938b39969edc1fe6036db081f088203176cec0cfe9cc133184a29673084aef8392d2c0538b330946ef899c159426674e2b4cba6c6849bcdb6f900d2cfc1b3441023b0865ae0ee6f55c3c1a971d3d9e5c971797cc1e6efe3dea7e1260d039cfd4a02a110b03f7a0ffc30be548af238226efae8d9fe6869f382a51d5997afd30ff42296b9b1f1d14439e124923ce890307d272323d3ae3e2cd55bf9aaf7932d7a6a050e855420c5d4be88e816bd8dfee86d74890336574c9fbf0f531b9fcd4d0d1f40da057b7005675884e97350c134c8072590b34d3776681429b69c03b4995956c2f2ba66fa8bde674342584fd32e58fbf2317b07212c6179082184d0660332cad8514a29a594d1650656764093851c10e1ccc23868d2f10654f03bca778718c21c22168802370dee4719567f1f3cbd7c7cf6cc8a1052188b40a81d1e9a8c2012b7c035ce4ba4881138b56b5788fc24323f0fe332c56a8738da95398b85b3cbea2ff69434fd75dfac033858be676666bad335b158f4a6e16d68be6e6bc1afa600786ef7cbbcf6320266e0e127678820c1f331cbb298c5ac2714649c47bffc7618972864092185a552e9e6ceab50d2ce8358f606e7c5f966faebaf09226844cf935d49448e3964d433798624b62c78822ca35996655996655996d18c525ae9119e48598ac55dc8761d5be976b3c254ce70be57bb92a1b9b1414496ad4a35cb32a8bdd4410bbbf47a68d251ba1bec158eb366449a14f9da5a555e2112bd6c64458832d1738942cc41447f393adae8c75873109183f673f4d094f89384764098beb398f6e711cc61c1704abbfa2e51b074ca4c82397dfa99c5cc621ee1bedc10c704fa12bd45a245d48862418fdae569f193f9607a9a44af644b307dd53268b2432cee7740b24a85ed9aae22f4163380872fb0a6bd557f10c208040526aff09bb90d8d0d38641407394461c88461bb34978d2525cfdec5d4b76bd63a33ffcd5bd6bc8ccd7c8d1cf306cfaac958bbe68c20e8d29cab28b63f6130dcb7d4df9cdbe78d49b63b046922e96ff66390ee69575f20fd794b44b1f2517a3cfdcd12eeba346dec3e39d9be5d241ad861c9562c63818d40fdcdcf2c66e30ca2454055583b04737230f7bcc19cad8a498416020b1f63122ab8b3604eccd142c4b747447ff1191c2c7c1126dc65576c87a317ac0d2272449a9dd6775dcaaed8128ef33b84b4672a226e812f7cbd9d5d6a1e7dd3b3b22bb671949141c32224211489b848c4998559b026de4663089d8023ac02c72ce0788a0479e210ce2c1b9d02aa4a3af9ae6a99a95432552d3b75068b30844439e40bda1c47be3a784f56584aa5c7aad78b3b97af1861c904614d76bb8ea61b3cd22b99629030bdf403984a3f00942d6a321d4977d345c2bd74e1b53c49bafb1eb03f5c5bc362093830420db1b90f37c7e88387d3ae3ce31dd47a43e92f3bfcac257978ebe3f0ab021c9e95c4e1659038008e73f89976659de71c9ea65d5900363487bf695776790f5addb8207ea05183935363081efee9f01d66647425d3e9e5120227a7c610de6f8c1fc60b944da96e7e3810346e53731f70726a0c7198632e73d87217878f57da9559be3a44327710700871129e0f267e84c7b380bb3c1e0ab88d77e339a1bd009e4d006e2ec05b02b899e734496436d4c5a30037b79e04fd114b6447f05882014782890200e0669ef7c084ce0c26664c26241333987031e19ab2f5799da8f4d975a26653328001ad9b03f08c0174326046eb49a890374fb9c4124bf858620900fc88257496a0e921bb0faa840c253e258e78122a3425aa124af4b859c68f50e2d37828b1c402ea7758c0cc75a22ec075c47b2cc0889905d805b88eb879d3766edee1dc75a2caf8779da8dc1137f3dc88eb44e9881d6edef9cc75c2cab87900e7ae137646c69350b1ddbcfd089e9bb91bf11ef59a123cee524273f128a144d5947029f1eda09da7bec75f9e0d8e9b0df01745dcfce297c79350d1d9945c2fd73d0e1ed7098be3e552e24228e04544bda180cef597028420e2e61f865540e7bad9a4dd9fae13f5c5715c27ea4909d7cd3c2e84122e21701c86122f6e2ee2a7eb84550286e966d35d3c6e3e5d88bf7ef3bd01ae13b554dfdd9c87cd5f3f5e4f42c5fd8f52f7e3fe49a8b8b9b9b3b9b9f4d781006225030410b7b9b191218001ae131abef9e6363fee83e784869d00e1038c8e9b61eee23a511320e3c2e6402440e543027cc87199eb84c54e120073b3cc5d5c276c02606c6e4e693b6ed671d575a262273f5627c075a2aaae1325ece4878d0f3f6c7c78122a74dcece2c709b0ba59f5c3c5ea49a848dd9cba8dea3e7cc781b03287b1373740c8dc0c2303f32454a06e46fd0688ebb80de9c30be205f07e78121e8d23e1d59cc70be23dbc1f7e8447e3467835e7e105f11dde10278057e33abc9ce7f0705e8437c47178357ec3cb39111ece07e00df11dafc6b197731b1ece05e00d71bb497ff001f06a5cd89f8e97739b497ff000f070eecbfbe12e8fc685f06a7ee305711b08ef87db4afa83b7f1685cd89f0f5e0d8dc77a0f9ecb67782d6f792cff3c1e76f074883b08f88cd772191ecbafe7dd8bd13b08380caf2506c67b41c04d4205eb3ec1f0f614fdc1bbf05aae93037ce5b11ce042d952a52cea642a75dc56b5f6389c79d4932c9062ca19f0f43428f868a107587a5916a4788295db300d7051f8684f0a3d383d3816ab8270773a787107b64bb6be679c0a5f879a120bfb83fd7d6f3d9f87c79fa11f9616961695fdecafdac35bfb932a17962b67bc8723f98ea4f51977f5d48d9d032bee39adca47c504c8fed4059b553155ac5d164bf8fa5a97d6532951fdbcc1aa7c707f6f1edeadf7872b8bc23cd1ae979bbab5f7e5f2a943f94242858f9afb709a4331e350b6a40f1749cd85a287cb5ce6ddaa07966bd9e149a868893f1d0bc7609df5976bef62bc8011e3c58b182f60c480313c08bf1795121a9a21464260e53d34ddf064c4582c2a64dc03dff1e15d776bfef20a5f347fb9d9e52c8bbafde2f2f853e3d1782db7215b5e7e0f4d385e0ee3363ae6c97ae7e2c5d8121c63ed8a11b3eeb2841c50c130fef26e4ad30e495b5c8c346ed92100dc1297c4980c4fc5a43fa099dbc3c22d57c8cb61a862b861ccf0e04e0f1edce9e1358762c669ded2c36bde72190fd2e265166e790f1e1435efe1333c28a8601d0a9acf7834c52041f319f74173a19c71d6f551737bb80d09b10c2f470ce331bcec727b5818c6ef5bbc5cf17d174b3d782c32b021c9d1ce0c18d78b79f18a5fb4c0f0625e1ce2bf63bdf0e00b8c182f3060bcc088f112636cc909092f2fad01ec424d45b878ea42c9d2652fb087fdb1dc46c71f59258c77b2c80beb11d2982e305e5e5e6e841febd405c64b8cc7b84424667d08eb307a48bb58d7c98cf78da89464a5171e6c6971b9310907acbc6af6973a35e180398b8c8b97c35ce5c5c45c1c8d65c48da1a9c7cb6a9662603c2361b02fcf10e90547ca1bd25fc6d138f5d559bc0c04cb169696a75c9e6a6961b96861b15a582e5a5a522ea9140b8bea2c9eea294f0e31f2c44b0ecb616ec058c9721c8d596ebd8ee5292f03c1a94bdb9ecb678bcb593c89552ece72ed9d8b2771fc79893197d8e4494cc6287108b25c54b176e51412eeac7a825bd5c4e54258c3a27232e32a1ff99a71534949aa24fd75cbed732a09db1b7dfaf36212232b9fefa92e3d154bca5e5e7bad7ce14c8143d5087ff834ef6eae3dcca8b93417ca1eee8cfbd6e7f1706d642baa7c320bcf187f70c09d202e0a19bd8351a7a986fa6b9596049b5543900ad84330d9067746914a4a21e706cbc3049b55434590095adc00372e6a1fdc374ab598ab047779706438fec09a86589362b3fbdd190d0916089d7c4cf62a6c0a09e6b862906c2159e91ea7d8d820c9f8039f1b567a143bb57be93eba973a1f5d3de7060b650bde1c8b5a3f7576c11ec9966c2ae6a128bd8382fb76534c769128bdbb12dcb7fb28dda2e9f9e06e24ba50b6ea0fb482ed2bd8f81c9154445acf2188b49da0c91320520fe1c01cd3e16bb46bc5d2f28244542a10089d5a7ac9cc601869306c180600d4b18934fa1571608ec4104a138e9620ddeadb9c9e3fd4f3332b158954372243d13ef27573737373d337f9a67de210132f0259568cc19abe0dc7d9d4daddbdf9fb70d7f58fe9b6127854baec6e220b6213ed68626fc255dc36600487b0f31af788a38eec22ac889e5a610473e0777a3f0a451e409d1c9146df54c55279820f701f66259b6406a92fd14b0f4e5529c2b8f753b0e8931d77a75de8b653cf08c54e56b7d13d904a1c6c8792a622724c1bcc8b2a2ffe7431497f5b587a87dc9e3807cb51dad9681aa4bfd6b40f69d7767ba3cf6e4ff7aee40d293dc3a3d21dd25f4f2dd80c8f86b4ab7bba20a50f775a8f37a43f78f423c8909f2018de22ecd663e5883a41be4a6421155c6f8ee29cf7f5d71de5d59367f220ace94a1d24ea4448a37bd75deb4e7177730fa482b52323b44f8e7a2bed876c19138384eaa91f607596d7db05912f96c725eda2d7622c0a28b80752f9215f2ad58db0d4bd7135c5ca43992536b38c506dd9d0c1999c0ac2fd8ec6c176f0590c6c87848f7675cf606033140ce1f828706b49603067bb95add6a4803a349106ac4933894be873e480b49c3dea36dd8d31dde4d59257ea389ed3e569159607e610c19c1fb0b517756d604ec40da4ebb8cbd3a72b899ed03c1ffd2dd1ada88384152db0c0058035ddcd7979604d086cb6b12187d0806d5241a5d68e704984e99168a0e8c90e4c0c7718b391c1c2dc18549630382b8c676b6acb9d6464148ba215d1e8269916c8e65854d4481b4c07b88d9a6073c784e40b49effc3475fa28254e491d9a4eb203f0158f608b5e0a8a8632d03560fa1510cc81312e7f5830cec5c870376f325e8c07e3b940a16e3f6997e934c6fbf44dbb54e2ece9748a32312e92b8f31b833adc89f173dc7694c7ea8f3e86f71f183749344a01aeb56e97bbcc3d7931aa33e1e1ed9d3dccbdd65aebcd1cc71d0be15c9cebf1b049e5e93041a2298cc047497ff40788a029109e6effc4e8c84600e4d395228b2a55ea56f6642ad9d3cdd6548a2caa54b7cab22ccbb22cb6cf4f11ab2ea93f7a175ebcd21f4d82db06498acf124ca19060488a4f932421a36c044038ca0d23b2110061ed362c26c9571b19c10ea2bcec61d4b7d376532af651ac351fb55a82ad958b2caa7b98f35a7a614a71f9863460eea62c30f71257572bd4ea78b57a8c49b08449eef41cc7bd664930ee5dd7c1f056aaa693a95432a14aa69f6a8635d45ab72c904c3f9dce954a198b6ac3b1711d8ae352f6549248c0556601d767b20a5ccf229d80eb5593436d1b0a8542c162b4918bdbc9b459d3adf7546b856df59d8419c91fa32ce4124c951871b7a7128eba6ddb7633b76db574b29c775cbde6b85bee27ee256ea2b6ac665996c1b6eddcf67a5c371b7d039a4c26140a55b94f8cba4628de7eaa8cc1ea4ddb76bbfdd4510638de00c728041cdb946d599665198d42386ea75abf6ddbb60d91c19b9757f8a442a162bdddd9df8f445c6f3dea6b5a9e4914d6348b2e7c8cf8623465efe056ba34dd30e1e0d81511278e28b0763312d883e33bbe0707c3e71cd8ab000ed68ed22aa429db1fcb391ffd5a9d9e07e66ca71185e3b309c7d9baf166f9526e6c6f910889720e8cba3d38f8c4b2fdd11cab2369178f151636063e7e06de1d1f8e37c7bf8e455936119e271e3ebee278730f0e8677e5010b71b61eb0dd6514af5e11f110c78d02c7293dce8b91af8fb163e4ddf1e5787fddddd946b382b54bba046b97520ad63e2716581beaaf33e968e177a61bd06ab1fbd3a49c27086bb467b26336b3ec14b323e2f87827527fda2f5fb35bb3b4a21927539adfc82e8e88ad7cc12156965af5270f898460389f88f2d40aa537f3317c6d57cb084375a98ae8a329c10b69883e1d2ab6842868abc83a3f1afb34610d84137ad45444c47dd89706c3773093d5dae80eca8e739e3aca2f7410089bc52888a0b009d6c4532f7b313b5a887c1fe2ec9da3102ca49e90c39ad855764b216bd4892b335858aa30a7f13c8d021f89b82fe3d041259ec47047051d08e1eef2da3b2d6cfce435293b42085f5665b0d9e35764b0f9c35a8c29c674777cdcebcdb55eed6ab5ebe9e7f6ce06e6c41c2211094358937fc03766c787a9c908f92e1e6ab78139106befeed75fe4b84bf35d585759d8ecf4331a15c1bc44cd76092999600e3da41e1114a6975e6884fcccf25087fc94b5bfc8830ece74b2e79c8285b8dfd3b6000943a2201ce1e36ee68eb026d68a677f5c082c240a02130c8982b004772d63cb53e67054e10883637c8439b066832d7a4a9fd1cf68aab0867e25054b0f71db609b1f3007e6ccd4c0f4d935922be8e0b3912b89ae903b85d04b21f296deb79aa6b0f1c6d8904d2592af4dbeb4f7a99107e1d747b27955b626ac1e3439b15cb0f99a774aef4c2cc926c9c6e8c3f4a3c93429cb7e923258e63333254d829e60fa2c96318182e9b328e7fccc50f794439757583bac3cf2c54282c160529420c910696146e7274fd3ae1396d58b9967695eccbc457c68af4f02eed88ba44a285b51ecb84cc1eed44fc1c29d4dc391ad1afd49697369fa93740ef683cd9664e881900f6f16f8af5d50f055751e69f49ff880fd592460cd77f5a4bf29faebcb7273e549b52bb68be5adfaeabd4275aa15bcb8af622932278b0e162314a7ee91b823de98f828b00af5d53b223deaccd4994ca65229afa78453b402252c249e762c1f7deac6db78f32c5ec41d2db17ca647a49968f34c2b953a0abe70204e5d4217eaa96bd0b57aea1d74a9ae731369b07ce5694fb152d7b3a16179fef067739b2d8601e310c61cc2974318a3bd634d0617cab572a9a2ce4d8be3381e5689953a4fc3c874b085c82b9cba2d452fb370d0dbbfc3912f1ed9b148a3cf7aab05e6b971be918957791dd4a0845f3c8f7ca13a161f03c7b3ae4bbc5d6d215287b9b95336da7ab984b3b73c37e0be8dc9cbbef266cccdf5e5660be3e67f366dba61fa5439b3291d748b2db6c8221553b131ead1b4836eb1c51647b8bed36ef6b0f6e8e5a75edbd553c2a867f761855d10b2a4585880703c434998d2c490be913e927641dc491a568529b81f95f459525e127380e16852dd6857785bc12fc63a266d4e85380461231213d1b005264e755ceac627b0a69180a3973bd744130e38842da03a91d42da0ba10d6d09b23cbcdf1b96331c6ec0e877199622112309cb82f4500b33a814c0a622d19839619d01ab0a440001302986b44c96a04ab12c8fcc89840e6f6a000c6121837880a5a2b68dd2658205b2099bc00062d77092029037a7fd0403661b141ca498a0430677587b800e6a82e10f904e6a4b26091815506964a0b9519546780392a34ac90566958a961b5062bcd069636b8a193e81b60ce110b079873a4e300735aaec09c232a39c09c23dc1c60ce91c6adf77b0b9853c448865b2722007c6475a42405cc3932318cf7e506604e112313c33811143ee2820330e7c82909cc39926199f76507604e11238d654e44e2232c0fc09c23f60330e748c530ef4b1d66645cef315ec4fce53c3e7e2c01a489203d433c235cb01d63318101926902e3496b8a96200a85e54d24f5d5fb1da55d44525748ea5046538b671f4d3862ccee702d10311121a91b9b600b441c591e8f0fef87b7049016af89203d438c3c8124c26292e81395c49fb824c62293feec63139813b3445a1eaf8239b0880560c06030cc3a1198139139111827d23a117a222c27b23a110b684438de027008a77ea308eb6622ac1f81c13027520446e6425e9c87179181712131febd088cd685fc335ea4452fc47b0f2f42592ee49ebe08cbea42649ce545565ba42e64e6ab17894fc9e14abc196eb185179480738f56054e5d880e8fcf46329cba475c60d6cdda165b5cc1427638cd85b878cd61b338ee1dabd966568de7c333c2f363891ebc2682f40ce90f09e62c7145efc26b261d4507af63335e03c9f0bac9f5fa89d7537450bff05ae80a9be393f884f578b35d1d4afa488545ca0e5166a0784fbef7e3143cdcc5636ebe0e7f7922e3acfba425759fdc4abcc24a12a3e4c5fbbd24f597c3dc5c612e73b3bdcc611089570891b805561d62186fdd7cdcf2f1e062071d66645c8f85a5bbcab3401438c66c1122f9080cce5a15f837c6f58183088c3be4c5ed91b941626e133017487f7d222ff7c75de23be2165b6c8153d78817eca391b577e1511c8d6c8c5948149b54c17028ca139c21518cd9885d6ed8b729dec529a59066277b1b9d0d4589613814c5076788e11011e480797cc09c965b1d13670d9401ba54ef371a604eea259c05d4899086f67e1fc11c6bca3c60d304e00beeb4c9c4c291079c219147838d10d1f0911e89edbb11c070c42a4fc24f7bcad3608df6681f002d426ce35151249efae848c6207b38f7510f95706e2ff778585e7b566f4f69e21965504d07b10526bc297a3ccf8bc101a42354e962c7a84d0b6bfa39bb96cdec50b6642b8aa981ee7642bcb43047ded4a887b730c7abf35a5823717c02c7284b1d056d69443bcdcb136b33c62c66dae395d134eff9aba6e7f86e4fa66a50b61ea196c9b0e2eb65691ef7e8bde78bf6ed6a4f63f5a75daadd5f99fe28eb311b4ebba88b1a55bc41085281455bd558ac2b5c500c987e15e18cd24215d869e49b6947f689a30145016ff7a3a62fc654884b9aa669d98771b47a331cd2fe69a75a764b40e86005e6514df071f70e05ad10271a80443b54c839b739e55d3c58b90b6f2c11fd410d24ad88ecbc0dd9137dfaa7a119f08461c0137201cffb8039d10a78fec56379ac3ba960733f6ba25839abfd5f2c821be4b98dcdcd2c2dde5c2f4f7f596aa6bfedf2f614a21b2cf8e91b2c88f50771bdb9cecd9b77426b9a3e133693cc273836c171ce26fdc53b61b046a78811d46d1196607afab9030a8cfaf4b2c5f5e658247bc4f2f38fdfba6debbef5e82e64cb4c3d3cdc4de9e23906de5cf086c29b065f93484257572a3d5219e13ccd2458b35d218a9f56fad1c5cdac964bb4baf5319514b300732accd91e0f5573763f7577c787bb77575e29ea2f6e3824de5e927380e1cc7495976360ed16a159cfa429dbe923a51e7deea1f710bd3db47d9eb694aca7447bbb7b480416d543a8db53aad77835051b8d1075a614228df8a22cfba4420eaee0ed739e0a388861f98c480847a56dbb9347bbb66759967d66dd5c5561e7b3ecce20f03544b6e26112122c694564b3b99d33f5d862aee19adb10f9827965bdc0dc20b0359f5d9efeb63b216cb97848ab29d8592aada6603ba8bb765a04588a7d12d2371285cc67dd0ccaba1994f5e7d09432a74c287da7509c43a5e9099937e2e5ee757b574d4664dfa8308512bc3dcbbec1234313066b82b29fee84d2aeedc664dbb729d4ae7925d1844dd8844dd895244a96306982631429384f18d1fc21aa029b3e71c23a98e4c4e536dae5d66aed9c4445483214e4d3ae3c87703ca442ed824451a2e0f829a55d59bb60ed825498c2143468b592829d873853205c0473207699ceba6511f52a0a365320272e43b0ceba8dd4ad7898cf4f0c5582565631e9686179a5bf285464e208a53f5a3427add2271a046be2a95821d98d4c987c4da2499484e3679276c54fd8f4994a60ce08600e77ed9c470485b3762f05da4c46cc6fb0029974cc6f745eba8282cd4d813050bb62a6acd2a45d31535ec1f1f1f449bb24517f503a9e06d12a38522a385229348a7c7552b7e26138fad81f22220984a32df594a196d2ae89e7b5b8412b908c0c118a459bc79dc0c6108978fec8c4d989a0707621acc9d9b96baf3de467cc0ebc5d21f3dd35afc87c9edfd65d2311cb1b93dd1d1f9e9f5ff522a6c139c6588e403d239cf434a4bff809f1c402e789e7d663c4b60989d1519f65376735b00d1bfdcd576ff5049b6f70bd37db9c77c6e8a8b8dfa3e12312cff7696f8169f717a14cd1f4577a8de1ee8e0f73df5e8a5e803942709fd7ddd99f248a34e235ed35fe06e670afd5dada44f235a45bf1b512459d1a69c46ebb3c8ba7f504de2ecb6bd30dc971c0e548a2d871b97c8d3a46401adbe314f0f6aef280359b9023123bc180cb219e3c2ed7e59b975d172f03303c0f4df4484270200ad810d08f4f920d4801dbe940143b19dca1463719f4bc2213affacbb277bce92f8bf15a58937d7e36cb0eef03e6c026604d06a4bfecab2ad86c63f6f8d3ae7e269f3d661702ad18225f36642b7bf69e09409d25228decd983c09cfaec9695651aec2f91a11530cc89f19d6101c76778052ef2016ba2574281a59f16e6481c815e0059fff76d51488d10b23e9b1b2d1cc297afc3160e6ef87d18c2a9514dd36ed68eb56b10d23baf1ca24a3a085f51dd717c37abd85ce5bbbb5b76f7dbc562d54a35cd93a95afd9c01f9f6f42224db07cd03148b46a9b577908cc921f98a40ddd23e65c888256356bb8c414c367901445dbb6402734ad7a25828da2350bf6eef9eb79fb4b34c3ab69bfb9b90eda637b7012d53936724e2ee7463ea8bcc26fad3eaddf1e1faaadd89aa5ddb75c272ed2594c7723fd5b541c25a6b44dd0f25686b51acd25ff472b482350835086f24fa2112c11aedd38b55fa2b42d26215aa8034a215ddd21eb58858682f2617a6eedcbb9b52f424d09378037959a61eddbb9b3c7131ede8bada5f7750248a44ae928d9c5d77ddd6759ce9ca1eddb97b24e22e1245a248d40151821608938e168e54fa5b81c166da59b4d3e935e1018135dadb2b62c4e207c01aed0d8034b45b1cf9eae92b587b378b4947775113f5500b7590943208f5aca160ed2ad4b38bfaf6ee66f324aee7def1982d63dd72086badb576edda738d978c754b2bddb66c31f568995d3e9352c6ba9631557733eadbfb2b538f0e0a0a0a6275d0bf604dcf90289bbeddc67d3ab76ddba5fc8c5ec422828dd3f2069f86252fbf22b27962b9f5909becb61a78db6672f4fc40298a5780a4f49192a02a32a931f793e906e74158634d3dba4bee9168bb7cf72c5f8a443ae43d12f176334a082bb5ff76e505ed59ac7432f5e0de3fed5a1263306707272f6f365dbe83e409650f65eaf32a9c5e5bd19f7695d755baa53d12c95707693fcb5ea2d3bbe7d34b9c49c7e91e899bb732b240640ce64088259376cd6bf4a57ec11e5a75c1669c78b84926b046bbf464ac0ada9b07f015616bbbf60e8239a66bcf1db475d0f6bce1dc41db4d5ecf0c8e2112f1e94726de4e0485b77bf81a71ae3d5077bb47223edd6c7aed4f33bd8b261c426a7fda8d446c12c2dd48e4366033ccb57463b61799b1898f48056bda7fb48bbb11a83fedda81c857ed56df56963deb5a0492af1b29960aabcaf3a7bd03a2b4a9bc2ef288c4231537946e698f22056b4d056b5d056bcf3642faf259eb201d7def8c2d27a4276dc2ba6ee20d1d9cc9a51f4c4fa85415db72d24cab1bd7954c27944da958562d2e5c582f30302ab1100925a882b3773225686394fee865221698762f5e94acd74919923f47df0e3326da9da6c6079b1e5a337498000f413c094400026f42c6031cd0800be405130c5880cc123114a0440260fc7841c0010cc0f2115380249080e169e97184112b1e2e3b08a0c3450ead081c3724112c03d8c12a1b5100430480ab91e9e40000e7e51262da9b1f800882466fa9193ae8f0090491400420d0c4031cd000204c3060014b28408904fc40c0010ce0a3004920c1d3e3082378ec20808e1c45e0b841c40076b00d010c11801a3a3900c079b984b80902881f6c68dc879b5935a7e921b678f874d861c60cea8577c5bdcbc8b8e27a8f797185cc0b19981857c07821f3f27205eb85c58ab902e685e5d272c5aa65e5c2e50a172dab16ed0aa9a1e48ae50a9586922cf18aa273de953f433f3f2b2ed8dc2175489d957e51e0b42bdd349bf44b26cd2926149be71905a33e81da05c4519f2f803a7349cdf38c0146d11cf509ebd78c4d9ff92304d5c351976f803a134a9671c0a86b45bfa6d0049e2516419ea516127896568adae55901eacc2a11789658c0a819a17ecd22083ccba1269ee59407a064f000ea4c2b0e78963ec02818475d2ee9d74c6ac0b36402e459366102f5e2a8cb11401dba8401cfb2041875a47ed1d8029e3b698967095300eaad45bb621c45a128f1dc65c028182afda2420978ee2a3f9edb0a043c371653daf5b204a843ab1ce0b99b8051324ffa458b0cf0dc413e9e5ba800a877939601d4a15692786e1a60948ba3de49fa45935a09cf732fe9816a9103d4c9961cf11cb7c0289651bfb2583ce2f11c9176a05cb20075322804788e5bc0a83e2a138a52723c472a45a0e20fa04e5605c7730c0246ad8e7a8cf52b2b8a40443cc72703403d2e8926803a99959de788028c9a47dd48bfb22478c5c6734c2200d487b48be5a85300ea684b220dfa219e211a30ea3d302775d479faa5c560518d6768a493f30ca18051d70175342834fdd28464eb06e7b9067ea1ce03f51c30273bcaf5cc03465d07a8a35589346810cfbf796659fac3b3c4a847a8a3598934e8519f8139f62814ea6e54b013cf213c63f2d521c916bd0e6fc55a1712831275ba28a8e79b9b76b10908051192805095a8d30945a00aa65c12048a9a287a8095a8d32d71c0cd4db922d9a26fc00532939898494ba20e6785014b30bdd002624bc41410831275b82a4a4011922f2e9600a11f420810aa1275382807b8b9e9966480221f4505b899454fad441d6e4912d48a7c6d4548dc5c796e0f9ab424ea6c568e581293af4dc8889b2b8fd88e1894a8b35521c0cdbdc57408e5102a42a84ad4d9a0e0a852245f35e94611114503b899459f59893adb929dcc0aa6cf92e4ab16e19b2509204b5a1275aa952196c4e4ab0a05205623a6138312756a951c2842f255630010c2117a09617aad4ad4a950a2ab0aa6f5e6661b043d105e27c54ad4a94b228da4b9e407cd0abe8d4c3a0d99741f6452cdcd8df35c4273575658540f485166dcfcd6fd78b83b5c1d2e12ea7651303dcb3d795dac13ea8430bd6ac62423a95b7293bca4a46e09a64fc128bd28b202a3e8455191154c6fdfc5e084aac0e0845e70429c50154c8f82e15eb8180705868bbd70312ec641c1f427992d26895b0293f49294c42dc1f42617b5a5c88a8ba296225491154c5f62692e9b5015179b50cb265405d3779dc52d06658b6db12d0605d3732baad5a46d4967c462d95b93b625124f2becc4591ed5222b5a11aaa88be83b161d62aa1bb7d08d5977aaa2ba6db39a865315a525cd25aaca35053ce923238b395a81a9b442a88a66af50959e5246a2e935ae312899a55d2097eed39ba314ad2e893a5c51a441cf62d94b9760fa4ef3a2944eca14d92a8a3a1d12200d7ada19b1baa14e09b086724598de4537b4053b656d578e4218a95db9e435965a486f7b14ea691925f9e4233ad1f71ad34c38ba1beaa47454ba456f85edaad06e68b5055bea8fd2e76e0853edf4dc15a40ea943ea9030fd4c49fec857372483248b65ed50fd199a42f415610abfbef53458246223151731627137245f5d17054cfb43453ce5c1093187029bbd4f857a089feff49c7e8505eba4e7f545e60ea5d9ae89218b666605650ce8f38667842ff9035b3b4cd971077a3add981d8de527ce5074d2154fc2f076ab177bbc18a55bf49a17a5f4372552e98f7e4a14b840c3f24a4e0a2bdfb3f4238186a2071d8c4030c290080845b8eb128b6668661b922d39ab1aba5ac34a615139ac624545bad9862a5264b1866215a9c65a6c6cb392e710a699694117612cd2905d95afed28168fb6231993da917c75b035278b0dd3c423de982905c739ef1c9a2f802f9c023ccf1a24f13ca940e279fe80e79309cc79037c01e9f13ca538e27982c088e769021ecf3396047358ac005fd167c7b3e402019e6518743c4b33e4789656aac01ccb03f88a41453c4b21e0789648b8f12c9d40c4b324c27d19047352af5834806799829d67f902fc2c6b60e3f46a98009e3b0d433cf71b02f02ca5a8f12c7d504b80af7ed251c8796e2b00e0b9b980f3dc58488139a5f75b06f0d5447d03d773f34088e716c2cd1b08e698e4005f9dd41d00e2b947f0c373a7c0e6b999e07ebc0273b8f763169ac673f402ee9805ee98064cf31c93604ef73dc72aadb8841ee20fe04b4e912d39f31c8372bcc10ecf510639b200f7a309e04b22c9968439f5bdc9881df09ea11c704336e03e05e06bc6644bca3cc3a317cfd00b1066a1af03bee6906ce58039da631e002c04ee1adcfd823b855b07f89a33700e611c590b70734de24a2470786e8e8181c8d736d4e3e67ac4cdd60868c4031af9c8d716db717325c0cd5687cf16c3f2397c2a521137571c37db1b4148589e889b63e03a650037d79d9b2dbe9955a760791bb108265f15480037d7216eb60180c9d78061a925e9dc5c736eb600b8f23837c7d0885e3757d7cd56887b730cf94e922fed896cc957206eb63f74d2132c6fd3491a8cc6cdd5879b6d0d9006c3f23437c7c05911927c6541b225dfc3cd75c6cdb67533ab08cb7f532a0f3757bbc3cd961584e5676e8e21339f39245fd448c6cd3158f766968d61198b318760cca11773c808cbcbdc1c03e73984a9906c1dc9c7dc1c83c5b242589e35abcbcdd5bab8d9b262e04c7f62742a1eceb293c964026be250178a88a62425c19a7895d7b8b35b6c0bc216b43dd9806415592585b49560f3d96049413228e535b6a73a650c464544528954026b62053a8250d093a3235813f1a9a425d515d49fead3525a8a4923d2d0a01d69465a5103c19a884b5ee38e7bd28421a1a02b57604dd4605a0cb498f6a3f9141579ddd52237201d194181b26541d914b229d95026147f604d7c97653e99930c288b653f5af468465b24211dc12939604d7c268405a2294333b0266e47b066cb02faec8093e2c91bb094698861f995166c3f4eaff16b3b2aad66b6216d888885c59cac5515366e472b22dbd5d463c61a6315db8f387adbd10f385e1271b0295b129643380868b28135b2ca865b12b48a63875853dedb119650671b8a34e433c5f1b51dc9960c02bee0a7b30d451d1b4823e6162c95806357a2719585a339e339242210a00ece6c9fdb677db74b6eedca514a794aa5ec31a5ac416ff0bc35fa8b9f9753c6a3a36ef3209647734abf1a896816610d6684b547ecb32ab2f57942c1dafc01d6bec2829de79ea70f912199a9c7f6796adab17d6ef3dddd46d22748d59292b0760867edafdee8b8ba82cd3e8f8ebad67e7cb77937ab2714b1dde09be150e4113d1e55d87eadb783f44b2221499884eb8461ed75abdda37684190e1d59d6142221084d3105aeef2998e0fa9e224aa795b80f6813e640eef1286a21374f6ad19f86eb9547fd59a11f44ca6a210b6eddb39447f21577b4cb2b5dad24994ae692e965db8dd96c90feb4576f487f5a7ec92918bb5a5a55b1f906c7570dc254a9bfeddc65d55eed11ced3676aa63ebcb6bf7883a329b6a96f4f7fda214dc9c823ac952e8fa416edea6b97483087bb76990698d35d7b29d60b678ad59ff65a392243f037538ffaac14a8842bd72baba2658a660000008000e314002030140c884442d160388f75cd9c0714800e8d9e4a785e9aa8499272cc18830c410600000000600000029204c8b9f83559839c30281351bfe6715eb7b5e1571165dbc2d9503d11a9b2a666aba525527057c34a2535666ecd4d2ec3e69c48743c49064071f652434b7895f0cd0e0f1e99a71f63e154e13f96f54a210a7db3c5a07dd8faf84fad796c17d0cc2c3d40e1e79be2b3f4f02d049040d49a187092f9bd593174dd333cf64b98e7f17247947c5b42c0c272b1f0f947189e57acb1510296bd8ff9b38fdad284af566c3526481eff0d436b8956e88f14c3c7af3a8eeb6c74b7d074ca13bf07bce6dea332126b4c7c54c49b7d214431894fd64f0cfb3fd74edf95b34d65b7528726c1d6c38068479890901180d765a6ea824cf31efacd143a45584f7d6706cc3da4b08e0720889a30cc80027602ca702f95a237e40eac0ce8f7544eb70f7f080075da697d5cfb70dfb4c211ab7498dc08c5989efec01d2357d697c6ac0061379aedfd707fad877584c6bb62a1b8530a7294311562a36437da73465bd6007514f9baddb61a449cf7337222f788995362fda231eb9e54878103b168650c32ce1411cd67298614694fd99cb08cf11404661c6ae2d453f6d899645ffb396d7e72cd0aaa91c03c03b8b2e582957063f882f5e27620ee60db64b10d11dca3d7a57d3b10e2de997cf817c06a17a7ffac09f3ad4997ac355025f8a98f02a5bef2f005c41fcd57b61030651acbd75b44873fb79402b3bae6676165103994094015cf8d16a74d222b84d84494db725b639fe471b134f0cd879550e56a97a76c2404ac47ca8c28336d5acd205036af41696cf6997ee7c79361529ae0f944b8e7046c944938fad804b77dfc6a0c7b05138ca178cfb5747cd5091706ceab6636c5c7d1184333215f11d01e0a8f019ca50273ecebb60b87b88a19046c364aa143cc687361e1c333c0c8a1fcb08519cf77d4467a9a581d693b2109fb6395d43d743ccca656bc3ab797897cac2cdf2ef4d163650b66105ff258a1d414d8e38baa0d939a87caf5a6ae36eb52e7096abb5473e0bfa96e5eb227ac8bf84a2dfa06806caa4b1441b1c762a9becdd4ed4fb7c6ce43263675f84accf904995b64c6ae045fe498de3dc1ff0251f828f82b922c213fdb76a6c0d9099fb0ad2276f72a30296b1d5f36b259e474e81bb264f053e81f729d406d9fdebd528883d78b333cbc8f0e0e49b302a33f54f9f70b4f9de8ffc270678ca5157a6fe31cf6b06e68440d7fe49e745f9f365bba5fc314a481ee4e7018ffe4799682ffb0d8411ca45f004f8afa07575348991c87036912ee6c06c93f17f126ac81ae35edbc5344d93b90ec32e66d2cb763c15ca674029f2b8b1cd40886093cfd4ed52be813e1d6829e599e13e09fb45e2187e3e7cb9ec7cd4ac73755c201b4eeeb1a292486e6834cb5478898f5a75aee78b8246575df2249dd152b8d94eb105e7dcf975a932d948c9628ff4e07087696c1e4898aa0c32d1a949de94f8f7e1574391aeb297e6a0cc81f2f877599b158706bd32cb65d610020c26720719d12c6b861cfd26dee5d8659d381b6d22c8ce5a56e085dc99ff22704c1c358e8f62435e2dc4fc31faf134d5cb7f969b766d02175de26844e2857d8930cce62aa4e6ddc5f1a47ec929127b6565ad33937d43a00aa6a207ac00a3dca545e60045f80324f73bb246eb755921fac1710581b0fa0fb5b1819092f00d718b749c886aacb0e4de6e26bd310ea3e7eb0da6f24c60f8f9144d6143fb3787e4d412dc42fa70a987c98d940d3058ff52a2ca6f260ceeb745edd374c6a4058baa869ab6b89f7e70310c02be008157bb77ca3aaaec175815b7fef29d7ed5d0e91e5cb7432255aa5894015dcc8ca409c709fd1cb3eb1c0e4f5cff5cf9294f8ab2dbc95be0215e302a54d5f3f7dae2a5f89d0066d1bfa0d4e90714f2251bc1448983294424c0002cf3f58e34fbb570578ee210768e1d92eae04b8193294bc5747e44dce610068e632c956c7a4de43517fb37855e0676bd1f72fa080d269ceee648a96c0bba9e0efbfaed90e885dd296c0743240a2c0c3fddcad577bbc40fe5ff59cb4c215eaa863ec08e22a66a5a04369f42e15fda5a3af24f497043da5a2bb84e8961a5da5a1bb14e891523674e7e1eb8a91957d473e124ecab94ce4dbdbcdeba15ab1a5ea7fbc6a6308bc4b630faf25cea83045ce500a17fa8b2cd39e104e10a56da74f1e2a0ce556a6991c3e208ad6a79a083d0465acd39f1a361c852cd39e104a18c576a74e1c2e0cc556a698183a248ad6a79b083f0005ecd39f183a18852cd39e104a18c576a76c78dbcec94a46d070f3969b68fb1816fe6010fefaeff2c3f564454c461f9bbce82929d3fc1689165f89ddde06fddde4d6f4823e6e74637a49af9bdd147de8df0d6e83bef4ed5637a467fa72c34dd3073ddceec6f4907eb777237aa1b71bb8017dd2db4ddd4acff4e7861ba60ffa71d34dd3233dddec96e841ef6e71fcfb15702b1c3a469de59ae069d0e0e0c6ad02ed4e067610441efa7880a875cb33256a351032ca8169004d6661af3a94dedc66c7b915ca410b5a9f04bd7648f470935f8ed6299946d03d1ff2ca81e9811b72bd5b4a59daa0b709d81b87412f37f9f16c9932d180bc4b3a70af1d20fddcef46247a89096fa92873366ec8f4ce613eaf1ce53316e104c6dada7a322cc15b651c518ea0ae21057000d02eb85b90340d3bf24a0ccd9b2ac64544759d990c183789db9cda5177138bdf5725002557f6bf85214afcb84e14754e235200323eb7849561ab54478c56941c2d08897cfd680ad3030b70cb19f73b9d91413322387ad6a0673e2f8fa8af0fdaa171576d29e3da0aa1036f35e4197116bd3ca49a35c23d16d1f3ac87ba2c540e411181be7894115b755c00e7a6453df8f6239f1fa4d18c11cc1c6cb6279fd78f186bf36e1bbf21d4518e951b97e70352a73315de8865cccbd9ee7c1b66397aa43c7f8df580e9ec8b3f2ecb725fe915b965bb8ec884e48da5bc192a93e6d31d23321aaf036dea8fb7f4887203f350427074a944885b56932223912f13e0c0d5041a075dbc4493eef9e78b14c433e9d7382dc25a85ee1b505c3f15141e4f35e9f4b7da7327b4308b39dc33110e40dddd8b03e0307503f02196a60718a77440c1672642953edcbf1e149ad53b3da2bfbe900b21c99a1ac100ac85d8563502ba3a1c06f50a5f6a99549cef542381aa55bd13797deaf54a89c0cd29ddf94d50df07e078a63902248e7326d92af86ab910949bf4645f7d709783f098052c106ceabcdbc808f3e44def5918a6d3aa6d10d9a7b82a11eacc80e86a9c037ca768d5f8e6a0d842fce0e7270f455f90f754ec52152dfec51f344a9054384cc3e3c1a98be1dde04c74924c91ae2ac6c7e1160990ae8161758122dd3361b06b7d6063f00a1551340df0b174339d066327ee531f619fba1c429485d60c884aaa24be1c28dfb645c36e7b808c016083136ce2e5771afa2808bbf9e660d4f877a1d88440e2c3071e453d21f75eec2a200dce4533b45606944226b899f56e17958b46f4e5c131f9f10a912cd21940733fbfba4d51e036a0ea2c1afa6453cca32aa91d82ecbcc0e4cbdb4b1522fb0b1d9cf4e5cca9ca0bc3625f4254d8421ca8378317f88fc6a7c6c02b9c3ac3441b8715371158b42bd056e166d08ce2039bb1944c063fa2322d033ba847e34ad0202014ef20300b94b15b2511df3a252bf40c3ff5a77b2ee5555e29a93ef716ca60b49c3fcb7fcf71fde393c687f246249813f403b41a2bf4f823b9481dd16e2aaec2d0c71256a2200dca311e1addbdc61b14c17ad4ac0ee6f39f723f44a64ec6d281d8b1e9fb0f4dd31a462d452b1e33abd4fdbd357ea438e270b4d23effa76c664b4f3663077553f5a93df59529123f82bae9c7a953e2e7fd7823d27687e42a20f91103e9e0b0d5147dbed3310360c50cdb522b9aae23afbe540f771f7441aeaaee24e410e51bcbb442cfc92061723aa8cec25fc83715f776f25399cbf5370056de405599471282940dc8bcbfa95badb2aaef8a23d1267f3d59e1cb384938773737e102b13134b6076434410bfe5a785f8783cedce2313710b27737e9db8afeb80d817b87b03e7ca9a3419738ad9a4f8ab91faf0287653597b61dd3a12bb0953cd374f809dd722f7d7bf70933e130aa50e2580748e5fec9e6475b38260a333ca583880508f3d33129ba34786ba1322334afc2b38756dc1b0b6bd04ca40ebf1fac4936b8f48cbfcfc0d3a5ee2f0dfa14e669c2629bd03e99f014cbad73fa80341a6e22a617e3198531d3a9651ed8ba48664bcad2f49bbf620df53af7d44d0a69eebfa2f60019b5cab63337109236020cbadd8296b628148623a0f9f22c0a32db369a604c4b40a2c71500c1003d1f705a081c24a68cf1e62ab0cf339621d76e7d0cf3226cfdc33e8bc045a554d9f5f157f118712f1a70471840e428cfe05b517bf6943e6742eb0224afd0cdfbe9a002dd141584baa30aa2fa765210bebc42e0dc340b6657cceebfc8a0ccef28b36ac092e1308d73170a60092138afd689690026f1bad78871b79b70f1b38afe8e463c7e6e5d8aa4cb6d63792e6095693c7b38b9f3a2d3001e6f26b007dac2b043f1fcb2a609b47a38cdd4405469fe7a2b321af6dd64b0cc488a0521e99fc89343b71928d08817b80897f870d42523bfb6d6581548766b3fdfe6ef614a811a4563d53c4ce554499287a1b49692e1bb3154a0ab0f3206a409a817f3a1ca14fb448cf313b87de01c293857321453a9a52b9d9ee0079732b9e2afa783f51ff2f79411706956ee66d3bdab8eaa6f6f665a0a40f9cd0a3921cdc5c127b629238629b4376a2c94dceaec002814d811794d549c26cfec12db60323cdaa936c99109b97780eb4532ca9c81c60bff64ebd91236e3a447426d94bca04c3089f1281d48ee2162640ce9a366a8dfbfe51ac8a7a928380b0652b662c5771d8d7482d079406bde15b76a3e4379512debadc02b80d6391d367f1245ce56be7427a38a100d1a6cb056b15d0d6ef0e7ec6da71687f8f957b94aebee3f362f8b2b9ef26561579e4555006eedcd6d97b12a22c0538560a761ad6c3bbe1a1557695e2c7336369bc9caf34e94b5d62a6b07eea2e2e2589666b345a9d3cb612835b994e7b0aea04b83e68acf4808c07e8a19d651b16664411d32ce1fe530be31ab8ce28e1c7e0ed73e50a6703e6fbc93f76c18e9ca90a1210c093b43e40be00617cad3b57b41039a5a70bd6040f793323d352efc10ee8caa7a8d8b93e93cdbce68f583c39205560bd07599379af257d65ed432ac92d4d7084809a6def7778293fe8bd9e1f2fbc4ca7ecf5197b3a3d9f5b9aae9a46ed83562227abb0b97aa3303e9ff1f62fd520c614c749a84276752d96430236cb3b729983393c961e2c17a5762141d1bec280f18e101f545241bbca2997de1a557d91c241b6011db66a87bcf77878f699cb9e035f4a5c67579eed9263ba4ca9a30bd1a5851a6fc943c5b27cccbdf842d67ae607f780abbac0e356c10031df670400288eb86a3b2eaf4341d48265ecf8f31becfc509d5b6e089a13dce25157a6fd80f236a040c008929c66a23c70fe8b045fd78aaf013f1a76112194bcafc140d33259be63ec7a9041417b108bd1fce82b39fda8c1fb3a849e946b7365cf849ecc7a086856f11cd002580658b0987f64f8126f0cd16492d63a1846e0e491b245fb3e9fb539d27d403bc7773060b1de73a9774c11b6a224972e4caa409f50a42e9b50e681fa28c884f96d3bfced1a1a921b4d63e2285d9644173b85cfb0dcd8ecc24b9b7d62508039d88f22c6b1fbdb2beb7d278e2f431fe6598ecb0e29607992d9b6b3a32447ed7148670b0af6511796c36476e34d20aeed884e9177faa9cc94383cd743e579b6a95a0cec5bec85d4edbb8ce6593357519a69535db66f888f3ccf7940698567a412f6969e1eebdd8a456bc9855d4b1b95039348c53ff60a8738a93ebe4baa41a99cedc4dfa5278688a41af2dcad6ebf72b550f6b4b5f9aa2c22b5e61db16aebe2e07f66019b7d7e7da20b7b245fab6271dc4eeead3e61f9f2fc9771090d08e1b5e01ba9c75ece47b6e9e0e7fb61ef4c937074c1dc9b6a6e1dab9f9c024fd9098089c75126deb40a03630f09beb74312f72596731406db52ddf527147d502b0ad9f76d1d7cfdd19f308747ffb7bf47f13d64caf81c63ef5635b6b0dd728928753c2159f182d28d7edb365bcf669fd37a303aab7015e02ece63729baf7724d80e889793edc230409904e2c8b75e048eb0dad72e6cfcb414a3f309220f916a1532416cbd7b6f89e514170ddd6b998bcfe9137047edcd468ed5f13bfb5ca5f5545a30a737eeeb8a0df643c03a51aac11a885fc55bc2cebc672ed3ecbe288fbfd910245bf5c554556002ab2a10253f5c24865fff0484038bb5e9c59fc134ea1b9777d421400b609b621c68d20249fbb2c6616b527f01e379cce475e3b263a3225a6c62e1fd81bfbce8b28072f5599c4772c3da72a140a1e0542f17f4f005a0d3c88184bf857a187f7b3b716d735dbce6d301351848397b098d9f67718847db3ee98640cbb4374a04c53d31060dcfce5c7be2d1d05e78c192c1f2c9328d43aa1a6d9864502f9fb486d23a8fb3ebdf0bbbfce72ab0e3e31c4b093c29c58329b701a0ead5d745625c804a83ea0b5204b6864c1b23001b11e93e2255c78db0fcc94bf272d9b2380f1edee89e59a8861415ba780f97b3a3fdd1b401a7846c1c3ea59367b2c5284f8cb35ef3592248fb2bef5185caa3e937ea28923a5fdaabbd7d15234f1a2c5181c1890f2565c3dc0d39bf27033247c89cbc463b4f10561013b1febde93291b01800bb63197a442320e2d7dbca4af8a70dc48875c2febd0fe3945f62cefe595b11381ddb531fe1a701a8f87c3b3a6d202e6c46a596383423341ab1543573377131ccc9a71337805c48e266a9c0c46fc7b5ff1f5f8e791ca12c30281fe7ba726032a0d2b22aace052e9f52344cf67fdda5ace70a6385c52d1e4d42e475ee8c89f1971c028cf09279dc58b2b49117271c1468e8e92bc1079c26724722ff5fde9c4c4af830afb7a09653df14fee61127fa256e25282bb804361d3ce83e629289a1313d2ecaf1cb806340e06a90d3c0ff3034bc19a1db7f966a0aa1711e3161c72cf954c4986f3db7b608fd0fa2892b914d6410c497e73351894d7432b232f44bf0efbff386d75a26c9c94a69a25ceb6d5e867d430b38504500a79a3afb80ff24879add9d2a7ab0bf42158f19a970077f9c9070f01923b3a3b1f346c9d6d1a8edece99358b74aa62174530a7661cd0942bf3bdef36d364096b95406bc232d36b6b4664426bf1a7bb05ba8370d44ef6af8083e138003f77b088e3267f172061ca2a3b879bf98df314b0c112870a236f42782bd679c452587f710465ffcc22cad2828c0f17f195a1097981c2896e86207ef74ef0d50adb8160bb41b786416c16a0ad118364d278d0f199fb7e692cc4aad2d64a5105981a900744e2e49af11e9b1657022ef37bae8f6cb94c6a002a426416e804a4744409a6399444b5202e234017b6fe341deb27eeb5b31db9811a2a89e7b6869043fcc5287c582e02dd41cfa0fb0f5f4315112af12963cf1e056cfff171a335ee4c66b27b17435b6b118e88daaf43409eb196f6f2396354b2c0e9e08533c6d89952ca71e70ee04a9ad25dd63c77d54bafe360d15a142706926563c6859a24da4cdc9c132872d7d3712400e6ef0b71871283ed13889514d465d1fa44e1747560521c267a0c3591dd444cb2edd717f233b45a9b2c713cadc97e84a4c85bc69c2bf89d90d9e8b436478512dca857555332a31d8341c527277318f7a5d626f51cd020790dc813e250c2b9bae95b9edba584511dc86d5c449c8b603444d77269078a83aca5efb88ce81be98e55686295697a7371ed653c3edf3bea17b5db5c0303a9f87618fa251a173a909e206d36bb6986dca864cf7e14a75a4b730466848c17c9fbfda8c4e5a07f2998cda1e868618f5b5b66ba545155e3d15ddb6d34951f788b58b86462680f82b931d5d04668a8db106de506cd5d41f83d6c5fc019996653647f7d9a720b4ca96c76226822947d0463d26511e30c7ae8f577538410b950825e5d4745d83bff057086a37b7ce5dbff26e952f7228e631c5f1fad01c831adebe16fde8b3d9da5ff0567ef5e3f3c814cfd97c3c1dd82f1edd31c6b3b14d9eb5fd23cf3293862b7e658d441fa6764827598d38da752af7842f9556c2d7d635b4282cdf6942c59622eda4aa70c92a0ad55524e5416703d9809e654d1ed063d543015bc08498ecc07f4c92469931e664fbd071b06eadb746053415471ee9b019c0481fc198fabd32c66f6772a6408b320361cc69ccceca1c530ef34ca6e64d5b6853d7c4e7dc8d0aa7bd0de025f0d07434c4e4986d6930f936278d8f3c42124f8c61a8458f09a83ceeea8e1e4bca6075359681af46965ddf145329394972814ae8bac464b42e3a43d0018f6f81f953244694e48c9c87fa607a6162125cc3540ef138b7bb0eb9bbd9fa64c4d8d26cd74ade2b4e9c8f5315b19dadc7593341d7307177682f6349f21f315198c862cc0f88061493258c4f529d28dc49823c31acc70515050497551d9cb43156b09f57cd12d762a1d0d84907048ed069a13a70c342d90551b9719164f82fb1c236bb5205f85eb9c9c2707a48a9eac4eca7b4040122090e77310f37b2d9abebfbf11c389665ff46cf278fef5d82ce5c0b8967e987af00217e6e651e9034164794cfe4ebc7a428b97c42cd7b75f2ac44e7938ac9459c7ad83aa91444bded9025015407a2cc616dae049fb21c73613d0c7351d315ac0cd46d1343df705ffe5a9ebbaaa1b2d467c50877ff14ed1c698cee93d748e3314f34d1be5542e3b840c9588947f8673e67d069b1f60fa1495fc20f25a56dea6466436846bb4bcea001db350dc14de998317c12ecc205d9748e0b490d6912ade9c578dfd5c51a04570c8078b28db2c3e4d195764c519afc0a0123d87e9b94bf25170d11116a164c79e6198d5b48995f243b490d38a22d1d6ee37f4e3ee34a69df80ff014b87555d46470a07285552c47e7a9845beaa522ea0962b622e7d4932a6e5b5b59452af2ac48f9072dedc87825b3cb8c41a76b7cad73244783cc01365b81770433b4b0acbded3486d773168803aaa230aeeff7c29be082f7157007f0d2c53e6aacd3fff7b046cacd1f2ef28e7d843def8da20c7637d3c4df3363f57a5d2930368f633a51d0a97858e11d3e8daa4de7bfd40f276272b4908cd5d19fb81724bbad7f4a489ba15f4b05974af48134bdc0be2f30599bce800a7f46a2d350975c17a1a7685258d760ca3d769d90dc84282d5a026771a57d4e844162708c416d220eeef2a0cc28d94743eb07e807faafe9f14130b4615fe82226b47b4b2b86a2cb543c54fba81ba3f5c12fa47c050a68571c17f70613508e878f8f555e557748214d7abee47843ca28e5785dda9bdad2597a7559590041114912996e78432863e89691393d58ea70a381a8d93dbf4e27fa2ca07cc99544d2ad93b467e617b287396692a3b7c2d81e7cbc52735b0a8d7559ea341397b23a8e6427411ec1f3ebb44deb6098803ed2e39107b30d61675961e0664a11850a8f04886a41a9287a6634ddac0190a29296e613fe645973ecc1f6b581b588d0c3952ddaee09850d5ba56386ad96290017f9d4b4c623f83b69ed023127feea4d94e4906daa694f9ba420c3bbeaa64727e474f0a892df5397644f05846a09c43da1d1aeb66c0bfb74a6932241feb1192099416b393c93a3be681ac8b4f78bcbbb75708bd8dcf23f84ba47656eb398f95c2d7f8ac84ccfc6a85247d20e722d74fc9c6fd315a2d9cd4be6969721e11f0c64e85a574d7fcc1095931239699e1542334a2765939f635b152e41bb5efc6089a32d73e6db3baa202674c79b2fca72ea19617497d21211b6aa335e00f985739bfcee47b1a62b48811974b87682885827d8a4a625668c8f1f94ed2c90df54ad618fd789b1fbfbc7211eede82891f21de87e65fb2b6f2ca965425d3f039094f4702f7a1909a9905fd63c93235bb71666acf00b236a9cbd5ba740b20f1cb59e46237346bde5ed98965440f4a542c3d35bbd3d0aba86b9b593a7edfff9a078664bb1595abbf0b28bac34ace9080d41b3ab164953c3008c8b34a5f56dd2a5c5e4ba359253b16b6a5eb685b728c9d2f34c06202d4652581fe671aba732ba851df561770c64a935b058dce41126fc734ba06f052ab43397e6f5f0964ccf50b38821fe1f94e4271fc3b604dbd4becf88e7aa100d56a3ef0e63f5c5f8a213dcbdd2fb46b9acff9883eaac7b09a01ccc7dc6b4301f038dcb5204f9fa2e464c1e6199d72e0e95c4462ce8c0de0dabc3f54e8f065d102a458586aff34de0ae8b38a641a5c0669665010c574b46baa0b14e71826e726b63af1510eb8bd04d8f543c11f0b8cb9bd3308fd076a8c42b8227a3422b7680265b25b3411f7f126ab5e905de98e8168acd05087f69383bc09eb4f92e3024b6d71f0160477a1309eb15b49ade12c3ce50f14b2229c40b7a20eddd9211d73518e528293c3cde00f3831d73db318a9cb86d9d82c347375a3f207c670e22ea3ade20b337f4473d2c523ced5ef33b2197169755a43f00743512aa9b96e33a92c17348df00c31258691ec39e83d34787505c815486f01cfc94689d93e9c333471206171a75d9e56797fa046e7039c072c8f7312b0966f63fba14b070e7290c5d31b89374a392a57910fbbd7508058f7b92ecdec4a3dc7726ffa47420a315fba1e509982372bbc1c4d76f053cb4dc1feda1216fffdfcfe4f8234adc03fb5aa2c604c0629b87e04573003022cb9d2f5530606630c5a6c0d052f8d2c0424ec9fe4be32f43546f633f981e99be8340d67037a229dd9e241f5477df06d0a607a965b7be90d581d00a63ed23cbb48253b9706b918f338636faef1df8cf630ea844452528c6d4136d9616d5ae49ca21e8cd6254fe48234e1813eb39aa9fca045fe2ea453fa6bfa1e3abfa6e9191c0708dd00cf08e063dc7fdcb329eeaf02d45b1e7be085d5fe0aeb114a21a1144652baf5213044f911100593c3a22a5855f3bed4b4a53ab84ba81d51e50e7752d8d8b63ec72c3b6cd6e738abb8877d8eb7260668e8dbcc5dff27b13e747e7c886f8c116ec68c5d4f1e0ad43ac6aa5d7c5cc4ee8733a62bb668e6c78de79a5b812dcd04bee8fe6df8aa68c4d64fdae8a5a5e517217a61f01654c214c7d03a7808585af39bca227310c89e502f44012c8a2592dfc69a63199ce823410477cf03b5f2ee48e3625665c21526992b067e02e255f08b3d76907c2041fadbf9621048678b1689e66cc6067333b4e783f505c158c437df079034895e4013ea34664d5857871e28fb6d0f2986dde943f9b10817f82a31e456ce7da6eb93d222663014c9b90a006cfa3cc69dea93230cf27f1e6ffee3aa79dadf1d6160dfa4f9d8350d0da11910e147864efc64152fe104f952f6232853f0b7d48c9f641adc0a443b924f6b918b685bb2266d247b701913002966247182d73001960a420062f6ece5e735f67b28b49575219205434473d380dcd37409a3498d6803a2d8c57f0cab113fd4b0dbea44d2dabf3a747057eac68d7f26b31b5e21a9ebf5bb5ac33df913ebf38c9009d779f8132e9482d232173cacd8217ee269dfab53dd4ea0cc74557a30204ffb7f83a89f60d0a608a10d9bd844b88e28e2422d362ab80a03fddb9e5623c8cf57752ec1fa2e482f2085cd220b3dde2894c49d5fe254233a1e0b6c58896cc67de1ce51062808b4b360a43296992ade9ceecbc1b370506fe9b729cf3da032d7a882e846cfd43c4025d750f36647c7553b0164f812a9b65b8fc2450af6906ec1e1d965ef8b4bedbb9f2f5acf43c97c01532a87adb7d2784beaae9c42feac8b2cd13ade040a64fa06800b0c02881b73d11f92f9fb28629461a417553e785f78bb09932f865d143d0df16ff0247966fb2ea75ade3bbcf4dc772ffc78329738b1536e22a82f5bf065ea4c9c9936cbe4ce26a774a4abc3923d582240d43ab09ab0717af1353a90a7fa438288f8b754915fe6223f7c456682a1019d9d7e4f192f78c33eb13337c90ad55df40aba0f596a5780a191f433d522d889c99342e34cb7095c01083fcd8853c0381dcca7165e6861a986adef94e5a30124581e500a66656328e2e2f1d880d2e4c2ae7140db41b02fb32c402870886b688eb896086c6deb116bd587dadc1d69aadf35166847af8420490f5d56f2b0d25a159952e1b1e725811869f7bbaf9a99571de1aa83b6b586953d0897da616ca9c8a1cf655fd78ad19fd9bd8a64b946f284452f91faedafb15bc8998f04a4a8866093c574f0a9e95ff8724ca3edba3a303792ef811e7e7fa7dacbd3cee96facfaf0f9911eaf37659622156c9c53ffafab789fc3df968d69a9791482df9008485f63708608e9a8a6762f9d30e1f7a93cbe39663bdfe5b5b6b36ae661c21b453577bebd627bb2e9118268993ea1baa1de26baad0b13fe0071d16636293cb15e631ec980fac99fdd615fcd58d8c04f5edfd03aecff5ce1273dfa807bcdbf62bb31a1a8bc0136965badb3ea471c55ba065209802f9f224ba157caddd763453767f468796502760f0ebc764c4d1181531e06d4a4f7a8566ddd669703731670fa9097501608c97817cd415483145800585f24ad0226388a429ac914311d93a958af87b4ff612ebf99d9e81cee7b291b10c7b8ee41b5b5476994e28f0ab8a28b6e65e45e456fcf906f130a138ebd1a19138d484115d22b787daf66da628e951b7b269305940a673ac0b2e8e5fd418bd7fb545dea9316afe7281ab5f8fa61c9b34b2cf26c8481f20d1b8ca13b5cfd54e902b20285570309bcff38aa65d57483c74acfba99f94ef2e308154800b94a4076022f44cd3901c495f8ff948720828ed818212db98b5ba8e9b8bb6c6ac770731c539ea0d1c0e10b3aaaaa7e3fccaf7c2063e07eccb2aa67ee9333e5a2f03a0f5b5d6e169d821c71946bc9916c68e4a006de1eb0e5c7d7fb216535d17dd3098aae5405363fef649e273246605df510065b42f09112cfa7ccec7b669d3355948c140011e48acc02edf7309aea70920b4bea44203b6f466e6ab1769d262427387a13697b9a0e2580388a530b5a2ee39d82bafcbf9ff0d98a21f40697044367ecb5b56e39205afb79c1a70ef6bca9af72a00c826d4e0980220641524785271aad9d964c579177224bb8713d3f8d7aa49b5b799e03de44574430948c26ba0cd0df50102467fbbd12d0b33ef8b54f0b8ff4497e4b51180ae59247c503f4cbba7e2de8a18fa1472e7a37104576ea884d251b49f44215448115bfed0291340bf74f4c77be12e07bc9e59965b14f1badda40f5eb40bc6fbe0db2d2dfe0808cedfabcd5c54c22db81e6573001cc7d1f482c4a1c5ef8360335b3f609b837c789844bcad8a9f91d9f2a0c8697d5b3d84dad4da719214bfd7120b219197caf31799784bdbdb46d2f52ab5f31b0177aea266191b702e5733b0804e06ba0fa02919134725c3316f11f2522919e3db78ee9678d765e31409a6bcbe40b16aa39ffc01426b40b0d85ad4024f6f9f161644bfaf2eff04f2ff26e4515650902425355b1c02351563ad405ec38e590c579dd1a606d8a88c5b60c49ebea818b8d7301474f679aa42236afc5903962b97f999afccb123ac9672ed91e88dca66a6ccd705b9f0c615847c2b42c03a4e2f6cbd9834f3b6f4ba5e7a116bc1c0c0845de4d3d49961e57d15bf71caef2af40a298aec203579ca596ed0472f8e8841cc3fce3a8c3a08793c8f36acc195766d5ee0bf3e8593fe4d2c1310e636a27b04cc01e12d48a28aebe30d94091492d477a73d553f4c7c5f54800c70c52d0989bf31a20a30be043bb7719cd16fcc3e3098e1b05e1f356d310ff9735ed62961d8ba4354139a6a908ce3d35d81c5ace414ea855f95adfb5fc9c43ab3eb2a495345b0c8363a398ee1e84ee0fade81ff6b1f0215e991a0152d35d3dbfba4cb9c664142d94aa59bb02c319dc82b05722562bc4875cb9f0dc9091774743d76080fdcd8834a95fc3d0ecfc19bb6cba76a213c94551ecbe34bfca7bd559193a098dd6113c7d9c78c86fce0c111565b37752307a64b5e0337ae8d61ccacf721b4a809e3715039568ba9ec6d41c30948f2a23267dce761e0d43e6699a1eef151be621f48692cfe3808c49eb091ac5be1d1fc95f39196991874d1691546079f91ad4ac0b01a6b277b92764c64873392018cd97a1e81591ec15bdd17ae35d6c01b9884600a68f3acfa9248f334bcb9f5824df0139c92199c2ec7008f0010cacf96ffc6e0b1a6e06bf567ee1beee238b39b7a820e61346c372a051d30131aec68f2841c8b24787c25ca23dc82e6a1549db17d755cbc72be6abc1b293f8f8a8795f04494755ad3eab672fc9172b370b9a110f8a7175928827d4f41da0dbdeddb298d89c96a6e5e344c3b2ec9729f6829fe7bfaacf0676f5db740cc4ed7421355f515325344e6829c2cf6c7398d43e00f59c8877b819dd033c0f853e827ea3d7f62989b068a6a6751daa0f456262ca084a763ed47f9599606a1214cfc649d258db7a30331bc73299a0ee4889636745143948ba40a8acf62c2a2b591b63b8f1a3d76c040bab9f3101841040a8341c3668c05505232b1a9af71c2bb50f99836e4dfd38bc4ab944700dd8e420b561e8e16cba497f49b759ec76c1cd211ee96a6619074e9d8b508dbc8178d8c1836aad447835d14f752f21b0210632a833a9d01e06dfa86927db5d49293dcee1681fca999f88b6cf0758cc208b8a41f315599ae84d4193e26ceb7d02d91f19f0dc00eb7d7197fe80033990655104b58f1e560ad957669ac233ded514f1830539a1d9151a44d3f7f47bb7da221632ec2f03004d94017c0cfdbbf13b9834d4ab71e24f57ccfeec74909d24daf1f8e7f6de1e3a1774afae450742583726205ab29b833a22e31d421e9b1638558bc7430000d8c2a227b5a776e1dc35db2fa990dcf32bdbdccbe8399dcda5599c4c69fb18f1d9ae76693e704fa36abe2b0f127bf9ce873038d3e693ff85e88fa1340acb35966601ca3384e70c0be3784b17c00cca05d50c85f48393143c457767b443a8704ef878abdddf498a4978cf138c73d097838c701398696e0338c99417b31f17ac19f82dd0cf83bcfd09236e8419969ba4f678d45d07da770424eedd3032f7ade648d8db88d48fae886043b62d51423bb580677805f8128583dafe5413481db64a54848962f094f285023b0a41b8aef696ba1aa3916e6851779dfc45780df0643e3be54fcabfaa48545b66c84cb74bb4a2932317180faea7dd45c1890ba278766c91a5740a529170c516245146eb6d524fe8109057c168d18b21b5f9a49b10e2dbe05d7a52d6fa429f0b4edd5c5fe60450f51c19334d6eb7733f8421038b7e14e4b113acdfe7fe97e3877ac375ecc1daaf11c2161f5c09b55b4c610e3281c47ded834e3de1b01c8f22409b89373b413c8ccaf63fb609b63ecc01f78929c047977301e7816a3d6684392622a6b6962cf525976710d22eb0b4f39a353100a712cc496bcfde4d1fc28f21f926ab5700a9652e9881d19b696f25bdcd3a273a15a717f319b03ae012293d2d8c3de13c290ed84f59aedb22aa9187073df32aa09d3cea479dfdd407516260c6d13109c019b696a57b520aa880160afcb4077542da2ec796add2c855e411c9a41c1a3d02e2dd47e1290b9e8ccf14d92c10c145313dd236db575827df15a251c605ca428e46d3b04f9473c50b1c4d894c32faa10ef787d864b57e62ba8beff540388a29ffd8b0513f583117a79a0b67dcb87370bf47c05c03c38efeb800f8d4999e1ca329a01f0036511950d1cd3e5fd0ca52cc7f1f4f4db60195a088ec731e678f03043918cd9cd0ac13f61b99593d9b88920d571422072ff72f19dad6df0f6c2a9e6728a5b3b851104cfb9c0a06150b70cc91bbd878e014aa12f7fd96bb368032c625ac5b1f542efd49b04cae1ec293154cc289d14e21582919f9cb804dbc0427a3a8f047412661c9eb7ce03f05bde1482fe9ea1108d5ffbb96e814c1dda42dcd8233e0e705c4ecae687428c73ffd478f518fe8f3c548ad156b8299fd64651b827d42dfd7fc7347dd8d476dbf4215b18e4ab23d46d0ef3f5cc3d1453c6761404348b82b6dc8e28005eca3b8aa19bfac000d38b617f152b84c1e6cece43fec373a347af3fcab591d2619cf5666561716a7008b8bb3a714605443fbabe023bf0a3a1a8fff0b6793634a16c76a999f6e047b15d59fed67c5b54ebd217e55cc393197ca21eb6d6269bec786fae1d44b898871a2c38e00dc06a3b1514156486ca6be8b2f0234d24e8e99c4c822049ad0cc7acedffd93d017b8d314296a3f237524e81a58b3d92c3312acca48a4d4cb141de7db292f6de671ade18c65c171c908dcc05601dcfd25d68b539510c2b6bfae987955eee20ef505620d02f8682c2a0b15ea0ed04ce53708ac16c96580d106a5cdb734a3c49d2b4f57a2964329e9310672650d30e291a2f83cf28b844f202476e5af77acd9d71fcf7a60000ad83354012c7a391618b09168afa27ea6d5b0e78972afaf5b015f3c5b634d37213e870515d0b87f97779c012e97cc282340b4f932a216c04274b7db4de01cafa9b20f112359ea827129ba328800ec1c384dbe6949db7e94eac0baab0eb07f1acedfa91bbe28809d4749bfd964803c5e1c4fba75fe8cf0e761812e78b2f81871d2ed6bc127853321a57c5adc9c189fcbe34e631c31b4a2d60bd64cd97b2ce2d68141a1b9e64a25957fd0070c0f4966b214a52f6c7651b88edd922a775e556dbb313135d52d15f93775deff6eef4bae9a934981fa59a6c7b48b5fbb6483627d0b990e559fa695a97dbf22e4a3e1503a4b87802cf0adf9a4b5e20e9ee817142c030cc6497a2cb24eec35139093bc3d7e2eb1b7785bd1e9ac83a25f2ae9c24263c8412fc164fca9c93c2eaa4efa8972c7805faaebc8e664616d9c7e1a5b531209541e5fae436748959ae059e86d1411d4a4749079a2e6730c7421e713840269140cda6ad515aeecefd6435df65bfc2f0ff9249252dfaa18626e524fb3cf5ee8903caa68ef25f669734e5694ae2b9ab4995e132bd38b77e7189eea1fc1863ed849cbaf06f56562b49ef09049822a0f343fa1fe128697aa61019b0ad52eca89eb02f36bb8c7d602738a2665786c04bf9fabd5116bd6f94b9013eddf1c11c63e6933c1c31f0e49efa4b928cf52ed59fca12f2722d2c06995fffa5bafafb2bcf5fa91e3921ee8008ba0937b0d5118fbfb6446457c4f7546bb02b57c65b3ca0cd401974f138b996d981abb6193859df2713368e67c0fe6d8439d1f05025efc5e7a77177efc542e8efd9c5e549e148b3c91f8d41c7c87c5d77e778539e8ab99829f3c614f28d7e07bf50b319c4b9f0030433d6ec00c3d8fce1159855331d967604b945d39cb5ef890cb5ea04530234440ce24d414cb5e87bc57602bcdebd978a07201e5a2c96bbfa352aa503094719619c63ec8965c0480e8eaa1781a5285a976be23e4ffd4850ee90b43345c49e54f435d7e4b3c9e69bdf8f1d2e40ba4687342e4d536a943169fc0a7335fa1c4bb0c830c11d59df19f61c09312ac4305d63434a530c7a342159bf1051849fe0b78866fee923f0001787c36d697f1a733f8619e78a6a559b507e3cca91e7ab987970a383b28c62d4a8e482ad4597d34659cd7c2663a92fdc94b2f0b13f869354ab3ef48e6665f41a09bf4ee0a9c7988c6bb3c4447c2c66a1d8138454f334c49d88f074529a19b69aaa99c56eb24eba47e5f88472d05a181569e1222ce14d2bbfc6ef24cbb0a339c38ca0f3e66eacf82328ebdbedc0234f0a321c583ed40ec24cc44d8a95c2d35095dadf75b9ac010e88acfdf2485bfa79633ad11598bbf456856e71125a8accbe64d2522a3d4625a9c63ec8647a83c1ea5bbb3c6197a5d129a71aaa085305396d0ef70e62a4eb8b6ac31c17a78fb2776386f34d7c38cc5ad341d20819eeccc772284345d7a659792879bbf445393d5e20d683efc67fe5373a90cbedb253284f07c1bc08f53ff1422b206cc7c5f02a5af19673a0e222abc988d82de11f779b81025ca9a38e13e0140d5afa22c09e682fadddbf76db3115a8944be5c3b9b9bc288b70e546051df0f3dadeb20e6eafa40c60f4a52c5166e6bef55969a86008a9c8fa40626fbc996969412ca39d0f5cf6ff19e30f43d4d5ab1baa2f17b45e10fcf4f687c1ffa99c80388befb567a9d28c74ae1abc25153d3e98491eeea107bcc0baf93890ff623af69f8ae5c477709f1338754c689a64c1aea70c6d74511cd26ec0779692c69d71629f5b2342261a94af126cc268819fd255513cfad0cf2b88455f35739850818378119f4c1be3ed3ababac2627065ad5b8a284ac03e45cf93ae2c2bdc96061becbd11d279c28f606e619c79cdc6dec75cad7e79dbfab84134464dbe4a8ba95b68d0d944986e0d7a426981c1465b188053fcb4c0e1fb83107a8702bc2fb4e684b361f46476c1c79689abcef5c460cc3d65bb2150cdb235bcec41f61995401c698428de04cdce66bc069ffea780e353768dc0ec74aded55a40b89737b9a83a6c1e5c78a7b0a02c373f3effc83e2a382a402c9495f56c59009c09089036021e72cfc341ab890e9f21b27d445a51123e823562d3b780e06c207f2d07116be8bef1faded7cf57a5d359faf7ddf0a6aff7fb7c5308947e3e7a772136b38b12a5728f68f702994cb2685f84b46f5c300e1ce7c3733b66e639a7ae4d78d5c2385aeaf354f1c71b805ef0cc239229cb2639402810bd9015f24d6223e4ac37397c50f048f7c10ae2819025d6794a3ddc9b69a5fcabf8d7696f7303750a176f270144a40d71d05eb22ac2250785d8e1372076d7cb3a0e896e60323cc59fdcda798a9ed58cdd500350d0e410667eb105ac539dc90703d3b77a4829c4b4c6a4c0531a0968715cc19fe95abdc6beb5a24e910e6f014a41debf255bbce41dabc8c747e27a7f53693400a60d0d408e728a7dae76235e08b092c8547743d312e1a45e44d88615cc4f8f66f815ddc08b324fa34f0d152b13aa4ee92abdae66951f31153d5e4ab6fd1ccb4f457b5aa808b0275881905633a6b682bcf0c8c382bf78a0d81934ea07ccac46b37b2ba5dedaca5f4283d458aad3e8c0e95112e74873f81ebb51fcd7d52b0c63cbe2cce7d11fa57fc378498c33cdfff210a2ac9119644de6523d6cc784f19488d4db0af995f384a27de507792c15036c9957f2890e593609ce65f1456058a47692210be16fd15fd1c4dc3329623635564dea736753d2244e3eaac3962785ca39f1836cf983897e880127824d842f34c2d969d5eaec9404f7d06497dbb3ea3e46d246f3ab2382fc128ea43d010a62215103cec1c9c583109b56873908d9e7201d5802df4e31617926905900a3682d51832b6be93506279035e2e42e45b706a5f53d467826502b13fefecc804d969e606960585abab6fb1cd4690b794edeada3219fd98613239ce1b9e1c20b0b0d8adc0198bf0ee3de7c22a165ed90d7a2bcf83317ab607801870fe0708ed72a5a3c5bc81e9a6ec3ebe69b3b77c3af262559b76fea2c214830895505711d6de07b3282e97a5be7cd7b6713d1d40129d358e950f736f63f9ce953bb15c87cf0cee2571fe74c72fd16be87f4fe5127badb433579e35a21d0882bb449580505555d0ec89785d31ccea1f3901f2ab8ad4d4731c918b99466dd6efacd147f3028f2f257a4732ada16697ad88b3f1bb8c85c75c93b9d58c072f3cdefd596c42a1fc9140c91552316c1bc8f66e8c7a735872eae00a276e79d6d76abad324ceb62654b62e4daf93e3c5783b282303b451262d827815059d8c611aa50e1ee8cfe57d8d695798262106e62e28c384b8898aa3a6265658daa89e964498b1efacef6bca40fdd4ea97c42e9b59b22ae46d7d22a8b6f4b62e0f4234db40bde730d6ad497aa1beed5f3c98695bc3fb625b15b241438875774ed889cb89aa21727932da98261ff03eb81d98cf2a334186a420e15a58afb2cdabc25c8249384d8ea21b492a2dbf95e0df8eb04f940d1aa294eabac9ca9c59f99d62bf10dc5a6378e9c9823108a8185d5f65623be53f92bb2e1eccb4c3a2ddbcaf3f798863f79c4f57cdec737fc4002c17e70e5c9675b12cbc373b8f6caa42242db864b1f11b0a91de91f725789092db0f68f8fb041c4e83ee98711d9c402d39770dc0d55faf4a304a77da64b81076884feb689f90aea066b906f5a751fdd48e82791227722437509c2ccb4dfb425b11b405930d05b0936ac9fef4ccbe8bf178d637f1e586d3bbbaea29ad826dd455d9ca828fc0aa96af58ee27d24e648ae85e6503b6c87afc3fb5b4f178c26c1b7503c04fd33ea65f49326ffe2a31b8589e01755698ae22a6438aa27d9f12e223717725375544f5f128723a841b54ffdc530f1e3930e2dff77314391ab6b399145e08dd2fa07adec266393816fae65d5f213c4bd9874424a72538644ca9aef9a8105c1cadf49c9780c2a8ab39c9a40b27e2da28f710ae40e3ccaef427b99f909e2d80a148aaaf5fd1f46bdd47c0fc7fe6129f9d98c0764cc28f9971d87c7082922a3173ba87317e6c68a1a2f1f5efeebd22005f061e1cac77f4c7aaa12b1e60a4aa4bb12712670bb1875bbff5d55dac245cc314a84d9b7f6bd593f9534808916c928730b6848f09edc7a931e7b3af815c24805b3ce9b446b3b2bf67428ae7e32eabb3faf257e2ec2ebd4a554044ab61365a98429e8a7ae1b873cb080f42414c6d56e80e22f20c41d0454618cffb0c5968f6633656171141e9f41cbf45050b8ede0d6e240322c8f19a446fd5b47442b93138e22649253ea8c5c6d416350f4190b727ed7febf10ce194adf352f74949dac49917d31063f2e492a37218992b39f966c5754d27b2ce5c31b3ab436765171513fb7aab908efb2f69ee2c6f7d4ff0bbd47ff12a5f2d4d0b1704516b39f93a21708cf9622533a423f0ba78e98be15a54e44d644b2b1ae055f5e31a0cbf928cdeb954ab16b3a154a9e35e289c04b7391a1fcbc3897b30e2128f1357a8f3174fffea5d219513bfb8a184f178745b5b2c8de8d5deeb7d168189c2b8f8b13016d9d59226f0fec426f1d50d17765b51cd265dec736c886d29747bca9036bf1367475d72bc2a9dc003660a15f8e45f230c49a10989333b9939e445fd4dd6300ae8045e9e8deb6f19b8560ff59273c004a54f939951cd891760bfef41c41db162cda8a8f029d965d3adad2e2a2bd77beb08630bdb4fc7543fd6cbae8b9585b9e9b654e9baaa3d1e3b6cf67da996c681ae2668fc96b2069d6e89b3b77f43bdf2d2ece0f0b65c71c6e028a1390b1da489e79dbf86680734cf32f12d1874f62ff809d0ecbe68950d843bb9b8f3140ff2527681016d82b7b98a648175b3f588dfc8ebc3c21ae07695717883a26b3d517806e5b14ebf4adc8f6cf4d38d8f31e619a32d15957c8a56d4340b063446c9c3c76a36108db53a9481f14c2463b6ad04ffe63efe2540e615f64f7d61c9564bae89cafe4354c14ae6b8c882b505a075813d41f4124571ea55dcc9028460806295c26e0b2c01d4a7fc146fc0275d2a3cd041360ed6d2503599cdd302f2eaeb711be3fed1d31624f8e86274a323a17753a946e0ae1786a591e8132c7c65336969559f29b13a9ae10d2edd10ad6672eca1b613b9f72fc09d2782f7fbf07a1813e6b9d1ebed1043510336e0a8324eabd188fb0e70423c4fbb12ccdf8f00cdabafe619a312e7a861ca4aecc2454d24a8718bd7e3aa1300d2d4d4091ef52765fbe13474f17449c0bd9a0c18d18a2c712d8acf51490a05c6969eb87d3389fdd2749640054ab0b1765a9376a10bc770ab42001c45eb1666deb93c304ba064060a2809574ac91ee405960a43a5b5f11b8e6d32194b9d293c93640cdff1c4351a8858a6fea1fc1389d2b7368270329330795155c33fda2b3410c5dc39c7e9091b91009eeff325b7a1dc5d8a6ec64696ddcd75593b90d7dde899300b4cc1194eb9d1b66cb520758a1fb426a31fd231df8bcf31c2df48f50b1fb3cee794e358783ea6d04dc7d8d69349c7315476d3981a56d99d0bf2a42604742498e8fe2b0deef0aa2cf7417f8a809ced47f3d229bbbc7150f3ec210db6256b0c899572410de088d99ee86e897d82acea2b59b03ba2bd9e764ac7faf803f8e87c12582eacf88113d3139e2de5c29eda8e4be4310c7e84ce611ea7b3764da86f108a767be2efb53fd21f9b2d84fac55b1ad779d90b2c8c50e9010d20734e5cbe493d06a9bee62e19031b803265d61f4a2930fc0f16012f84628370a99e268cb82e1c481a3ed32d8c68437500ff5d9084937f2e4babcf84435c3c0b09761a01010a66411c9167d044a0fa05929ea80ecf11bc16a1419978d80090910a46f427079539310e69365157e11fa31de43869df9ff74ea874f96fd8fee9bb50badf00e2f0105219cd90d219815d152d0a354110ab7c5b3f6f19414aafeda8c00ac904f805dc8b2b333c5b05ca45ed64e98b12b2a2e4af141bdf068dd33b13f54e7dd1dfba19fa201123341d957f9922ecc734cb66283ab6aa08bc66be846530ff9bb082cab6d8fff00d1bcabb9ab63786621c2d4e64441b9561a5da4ac3f3575c2b22dee039fc98d60dd8fee1a38fa247ec02420962a181f95207ebf17d315648425ce1997fab36b8e06636a2e22dd70fb4e29ca52b8f8125d5c2f8dbd6cc336bb139f442fe5d1cd0418f2fce690bd173a6a361a6116ef469c797bc1fb378a69b46ada2fe53516317ab84cc399498de8a6901d8ca737fa13996e5959ee03bce0463780a6c4e62bd939e89041ca8f3530c72ded3e45b7ed7bce6337249cbcbfb78fd70db17978e8a9f9926445c97c599b6d589b48ac0a9b384fe119cf653329dd9e0c06d1ebe06474975dafe8718108c8b8072b69e5925aeec0da48a06037cd5b287557bd5a6fd12aae0a8abd45a9b56aaaf8164d1d8bcdf4d4db3f987831f563470de5c9cc6f69b863abeaf8e84015c458e954c694055cbb3fa860ea1d9e6436bb48753074349aa2b2376979a833fd2c2113652730edf7950645a5851e83b93fa82c3f3972fe226545cbbcf4d69a106643e66c407d2c1bab138a88fe19b5342e51cde83421b56bd89af9a03f6a7446e977c0e3b73e4e513503bf34013024fa018ee0b0c71dd882129f16f8fb4feb753c0d74c4a8a67e304591c4e1d85186f4a0bde0c242ef5376c3e1370bffc3e7af56cdc83928a927462676b9d7aa51cf8ed9bf08d21afa8e1c84a052ae16015d1432eea9472799849d69b816c6520aa29c3780cc1c37c7fcea339af0538cbc6c3c33a2b218848ad031077a65aef1ac06217bd05e101880cb05b94c4de32686ca7a388e718bf879fcc40eeadf707910a62c723d0e8de7e838c89df9d26c330895dc58fd422659e7d16896ee9ae3f8814094457dff40f4698784c2c5edae8abdc9e80eaaec3b84dece0ca4dbc9d078bcab1bcd30a1aa49502a885b59608148f18c6e39687f9c65e73e4fcaab6bb3bb3cfbcd82e9827c0664d0b5e66b8fde623eba384f2257d6ed65d4b674a2f2317be76c160fed1f2e4f41306fd2788b24b2a970c408aab0858c482fb9b2c22e18c70a9261c25819a27b245caf3f6983b6c09a95a12a9861f1722b2453f353dfd7a9078ac9110cd827cceee6028acae30436dd8deac884d9726701ce1fa53807010eb8cdd881cbee679e0329bcd1099acfcb4ca5f1a3fd7c552109d79ac97c2f0a0d2f30fd978d486e473b5959f1887179e93db086fcb89da2dbd62c853354259bdf2609c3e80d0bd0a2b3566c681eb9e4cc0f180a441633c7ab37321ededfd2fbb7c8c1b075a429157d120a3bb2cefa038a47df944b852677cfa39b0a8d29a9d780c4f5e6c9cd1ecf9b1971c184705c6cbade0478b6ad793166b7b4158e8c1f44388cfdced60098cb4045744ba8e930009eb679b631550116c1a76d00c1d35e6a6ac6f37f810eef0b48f070e6ada9817cd0e0d489086aa5dbb9165947a728e44cc661fe974d838e259e506c040422b69a4aca55a42f748225ca877b3f3fda8a98f6e7f4d53f06aad843892dbe9ec2f5edf8256478a5e0d53a5386141c7ad275f9c573eb72e5519a5390423b6c236e152f011edc3fe018144c4f9a2fd0981c602010c4493156887ffadbf0208ccca3f1ed283489c8385dd3b6d849e881fd18ab2139897dc4ee027d1ecc79d16c0f4b0191b7de5cd736c951b69b027296fe24c69b5ebc4e522a13c687ff2a5bc8277e8b23f946cbbdc12fdecfdbf0163507724b4f83bd2198543caa822a221d4e571a114e7a483a2a6ffe10f2fe33f602ff01aed6bf9ec77201bbd9209f2fae70844fdd8100ff7c0ca72e098cd76d67d552ec7ce41a5ad66c567dea20d5dcc04bc206fe5231111fc819d20fa26a370910a76208c23dac25c6b26e32cbf25aa14b10fe7d00e2ccda1c8ab2871bd111f3a7d8b4f1520c3efb5aab7201d01c6f463cc84030abe0cb9653fc746af1e1d6fa4f8b2816f45087fb337d25682c93343772aa0d66266c8d601fcaccd4d9d3766b3829cae3f8c1905b7bcf2da012e66f33192c59c54fe4183774d6e05807d95b4626bf23db2af5307765bb851cf62a4d97fb02fa651a40baaa8ffdc8af6688f15cdbdec79971a18cb3028c51698e1229e91d88af3eb58b57b174a0eca4245120b2f6d15985b916b3bc576f6cde6a9759854eaeb8e2ce9204c631a1fb24fa3eb9f1c35d1b408294082e09f51c1df28a39e29bcab943b20b88c88343686896da3589ea7a73e747e4f7917c0013a6ec650ff39e8844ae7ea5ecd9a49f9286d8185c03aa27ef80bdcad477ac5e78e3bcb63e4b0cd11f660fcbb2b1f50a9195c3311fb2a201c9c53310f02dce7c4b7e8bf9a25c46de66cdc57d1b148c1075615fddf79331ec4df7ffeaea45a54fd5e5c8b17f36c7326b12077a8dde372cab3c355643e5f350ec1d6d6154fb90eb9a3ddb66ff95e9a698586d9087dacb299804f9e3e693084859d6071a3467c838eb68966c2228eee752a85a86a647647aa52ce7bb8720df280b1ce380437377b42691d43ff4942c138edee5964fb7333c958af5c3cef88d69b5ca7d09e8022ed5e178759b2ac51a9f9684b2dc9cdb056f32d50f28ca708d12a2cb925e0e4e9764df5c30a449d7e4c9ebedbd17e40d808c5aedbb6e95024d56f2e3d75b7bb500e33160a32a1bc9933999cc84dd33d0c8cc9c6099cd826e16efe7e9f5d8a6b8848de2d98265503f993e161c466a42f93e26d1d81568eca36f639fadd431578f54070148e7cc042bc82ab2cce8ca5c0e5b1d6679b3e0ee7dc61ab70eb90af285d19efb5a6583ec7620c8c93d520efc39bfcb46fbd198dba1276a9a81b3e6794b4991047b378b40909934ca2442bb45b5f6137924547e6e4a64e0457770302d66c818c177d2607e1b46652c994a0e101a0c7f884fb5b388dc4f54bea81067a0886bb03b4deabe829b44266f7715577c8cdf7e2bc0736ab3f173b1d4f4dba66a8fb64b9f69375045d27852a87a5f449e955ba469449706b1b8a65e8b2610205b14289c487fabe7d081472e5e446926483bd41d5d417e24e440ab16dee8200478a5d59c0a3c58f39690c14ccb87ddaf4aaa9c1a69f3f483df251c87a7f47919b37a7537137ecbcf0083dc3f18ed895049389ccbb2a7df08d7939e8e2c2f3ec5d70a38056e91487d27addae456952843e6d898537b1b601d18723c891a90770b6adfb2c5f3d80148ba8048a20c70af46d6d93afd06efa80670a9cab7b31dfae70fa7f792079423e202f481a79a9dd618825d3063716343a6b212694920256bdd79a65b62ee7c18ee3537d1fbc1740dcde8b14a59e98ecad492eb5bc011834ba05e049363fc6f354faa4cd8237c850e6ccbdb66985e957826a9cb3c82b5bc1fc0ae7d02b7fd1d5b3d26c46fec878e3df1d8d3470cae81766e640c79349d3fad24d8eaac304f6ce00d6ef70342a625931baf8dbb68af596cbe1868802de8fcedb72304c736b511071eaf4f8a4d9d930c6ef8057ee9cb21e0a7355cc1020a14a07b10aefb1b10ad5e169b9d6179b6a27a372ca3b51b17a836e3d8415e121ef99afd5998c7b3defee0f3eb55cb90edaa9b0b5d2d68d0897e428e67ad52294b1fc36329716376dc1e9fe51a315659ff3de3cb381927b461a6441ca475eb75fc4f9e7e8c30e0da30b972d23555553df8613430d3a1a1db1169d36c2983d927a32b5c5be70803819ffc9f3e8c5dc2e40a1abdfe59bed2bc1d8e9f07514763297fc1479b0f12c2242feec119ee886b2bfa4f66ec27e5a1e9635429f0baee64dd453c855ca2d0de0d3785cc8fd96042ce0a839383252bb6799235a7472998b45140a13c6abc86482926553a8759386cf9a370a9a1c69d8e6b233ecab7e3a8280056830a068390a3fdeafd0ab02e33c875f1d47791906735c74237cfc4e982d88d631f55438c17e229ed175d39b4aa2e626857a24bfb932cbe68e27e653ebe6b5fa7a65c997f4864aa09b486e4b2ae1492860a48e48ad94bd082e8ba99645ea18e39e68f07baee0dfd3a7964dc5a430afb9b846d79539cec5640315a8ee85ad23fb839906a5a94d35ad280bba538bce57124fe516ab750ff4ccdabdb71cc1ebd41256d1e1d7f78a2217aaf22f0da9c1764057613aa12419f60fe938860d1a533d0d532c16d5e463478268eab3c19f82c315bb1840aced1a47ed62c3ac26d5988806048df1030327a318a616497170c9bbf74e6672a4828bbbb0419e013e489015decb38d277ebb5beacffdbe78fd93d17c1ec329b50648057bcc4bda52e35a96918626619812fbd3a5ac6dd913fe91b9cb809ff53c9590112184edc9091d2fcb3e8347c8ff0ee36d5d96741fdc82a83ee95a15668c29d923bcfaf1d074859de959fd0af724685b6fca0a8745a1575d2b36ca4e292b3d80f50926abdf1d3e7ed0a440172be471c762db2719dfef4f3588f3114490c45157ea54b28f51f8e3f9c6e5f2dbc27faec93948bfea8d910cebfa74a4e8a55a0a412e5bfe03c761317a63dcd695bcfd41c1da335907af5ec7c89eecf4e9c6bcc515a676561a5558c7dda2fc929a477ffc4aa2b6f5c61ca865135d6a7023807f69e34c28133f15df714652c3becea97f009b8384f8cad492496b7fe27aa56fcbade2a28b6da5f6d18f104002114ccc0daf35392424db8350573e7860875c5950501da5065d3b69bc6120259fb1c8144f366b107426bcf280a156dae6bde4bd02ff07965c890228b94154db179c0152a5d38ed6959cc2f672bcdd5801fc5707ab76c75a06f85c8d81049d42ffaa5d4e07162ffb9ae90d98179da43c952c1260c6e323c295f866fca1f57140a958597d034106d2f8f43d16bd77618d6598478155258ce014fb41d7e63e7846b85cb7d837615a4e1d10fb4a80c2aef6771cd077ff6c7c6511486e312cc1f3840cbc439d8e435c0bcbb458c8215290f0b38eda469bb8b5a472e3652e89fb08ad1f39315742c39c4ff9a34fbda293bd656c0cdd4ecf1959fad5814e4dd8e97a7bf392e3dc9033f79b15ed644ee600eee52f6c82c5a8e1c259177668d60c3e70d4580fcfacc103a2c416dbf3255f65c8a5dd68460b80269f8bc5da29b682c8aef74ed0b1712f6db9c3918713b89398e0a86236005066dbcb8e7712e46ec40ca02c0e2333109479b9216d10612586eed66afdb3d9b49b8c4247cbbddc2e1d05041c9a41e41aae4c0b2977d5cd133f5203b6f1b3ce07904573b206c0fd1443d83423a62e0e75d7f0a1dc9df22d7d34068b55467132cf97f45be754fabbf7c87e581fe08f619e68637cb12f6730b54ed89055fd0f23a44ed3a526fcce5131451ea3ff041ea4b1c7ac918c5754ed714cfc4b51d3ea0ffd29516bd444022c1c1a665e792edeb0b0fd61d20823853598084d03187bf5cb68f355550d91f07f43e63bf4e316662851c65afe52a14340337d5824a2c8677a3316de65ecf001c0f77960a3e729be73bf4ba42a04347e474c693fe97b5008adb71e2ed4f6d523a0f5fccd6beb8801fdacb8abb438c7fb0fdb169c89143aed15992fdb306fb0b44418f15d283d2ea4e613ca17a7b2e98ed03d358645ca21413040704e9bcb6840cd05b99c3adc47bbfabcf23fe933bd870da75aa306a4edb6212dbafe39f4f39617a7d969dd6a093c8fd51d38600a0a42efda8b19d85e63e9af737f62de3779bdc38f48b583c0e8865fa3615ac49996b4b2514aae1d61c584eb23e243f84b485c2e4ec40fc29ec4e4cbf1f215b9ae235e0241d57dffc83fe3b0c749ad869376a09978a98de329d374cb502a427f5e3e1c7d9f0f014f6240ba95fb3e13edd6bf090111ad91291c03a1e05bf0806d72db8a67dd34d9f2785523b9e7da277d8fba7839c7b562e21500c09c0a259183deee7f2b0d81e7dfe6161ab588127e3b031a867c216403b1843ba03ce58df4525b184d11e6b08457991dc0e86413d67cb5243e5bcd54b9e7b89f4df1345540182ee1763870f27b5be12bf64e19a428fa19f24f8a4c77825ba90bec500729aab2488559feba37534a44c940e2a5a2c841460428f9a9c4e9c1e55398d61c6afca68b8fd3614e74e624553d84e4b996474b4e7ab211fd9bd56ed2eac38939cd1f6526d971da965d35ad893adf14440ef0ae923d696c0de494157b072a2549d51debdbac696a68b9e2bb6dd604502d0e151c069efe19a80aa543d8452f3827ae3c31513d56b1a51f9a2f29a542981dde930dc23ba00ca7eb99974657c012f2a582547db034618504aeff5ac53b0f3f2398c6acebe117e0d70dfe4bd85f01e2f6eac86f4f747f80255d23c38a8088f0d64acdbb7073d60e13ff54575264dfb571c8b04fb55930793e208f46ed7e7eff87aca76880cd1ff8e058fd71fbdac13412c23d4e103eb955eddbedc8dee5c26a4b41430c8aab4367ca82f15396da5403dab5c82c49e38cc3d17f03044b341205f5941af839ea81e15410df4d69e20243a1623028ff830fef898cacdb188f5c5842773110745e2a7b5b00161a64b4ee94d967b0fdb20dd51ee032e5f17b02039299648a2554a13311c030d11aa7a7f64ba9c3b3b268d4d9050b8d29b5642d76cdb5d079b0f889cae4d3087e0afead300ee96bfae61cd6ccd2a3e38e4e08636faedfccc3015245095ae61336e1c5e50f9a88c9c512922426ffaea594653d2f6f9eb516d241c00ef410d28cbd85981bbc582b5111c1238303c443c91c4ace7e0f533f02fca4c568631d7e45412e85a92de35165049ea5ac7938e29183f9f7c1b4dc096b097816cda3340c462adb80c010ea0ee784a83d93f772f4f5573695aaccbaac6802a3a4b914f03d99d781042cba5ee40affe4cb851aab31d9263b304b42639c369f7ca0da807ce8c2a01bc9287bfd89360e5c294675eea0a53c96a2ea12602546d3277ccd4c07bd77bf8a560049e2184c8e6e7c03997b8824c2a2e1aec5316478bfd4d11d0b60766ff8a66a3dc3a1228e01780b3d912e2321ed707c1bd4f9c6c157bfa06e66207e71ac01ffd487f77b78d91ab906c1ebb8c9a7c1e4d27a6e215417d377d617b0f532e989bbf69f0fc10408ac0e2ad636292789926ce9b582fdbbff4eac48b68863744fa053e7ff770e52fd3b17ccd36372c715736a4f48429f76ba538b39983d1f70584db330522ccc337bb76ed43e8b59efcdcf5d2c1453d64086f9bbe45ff69472bcb9c5f231f88e4dedf44a0c2def1a97b365a7671099aae0b419023442ee282b2fd6e919b1241a4312bed411a59affd393db517ce54c08d336c6047e9c92fe18c0d8736a8885a5bc4182c2fa46fe70aec7990a23939be3c2b59dfb3876862861abf0c68cdaf26a96ff1fd2c5ed734aaa12863237285f9de434714055e895bc5adf3be6b09ab485d45f32cf8a28d01739e355a4e47993768a51fdafb98067d66bf34fdd6c9e25b78a35c2783b1de4dbcd8add4f19f879538744b96ce67896ed616c1cb7c9b64853f77607d0854a0435c030fa5409a5296db224c6d718acd49771071d88ba84ddc364984e47ed799325c1bc872081cd67e12739fa5694739538ff31715aaaf69326ba66a3a91fdf1dcc321e4fceeb516012ce0ac86b035ae55794249dfe2b099929aa74ffbdb5eb4b3124923a6523f774f2687ba62655fc1fb1920b65fea6d8c00ad9d1498d43508bc9469280283a1739f3f28fb667fe5991fbffd1047e8ef633abf05588987784a9f02f9c3f30bc190c5fe91912a6a49d22395d0ec11e0d1add9c63c1f264618803bfe5029491b900dff1af47cb4d07358c64266d8f79ce57da3d71868bf8964369c4ab5cb95064f08d2114c6cfc16a3d86acb7fbebf2405c5d99b08fac23d9a19856780ce31199c103ab9a74796f69467dbe52db05f8dcddff61268dc46151eab5c6f7a3653a4939d4f7002569aee34d0affab67a8e0e9046679a433b5de919bd83b444cd4ab52af1699cf05857dc8e014d6fd8932c2c19c594ef8134a78e14c13227dc2cfc9bb6e2a5e6003045ded4809c14ab9e20750112a111464cb547a2394a19ed180c01834f239b628a5dabe5c8369dbe1ea8994d12a97acad6ffd567e8ca400df996ab58671d4ab31d7c3012b94983186157eb19aceb2b729efd58a56f5b7de97cb8a500567f10cf3b67eff8429ebfddb9a4955596b9d2242b4a953257ccb9bbb6872c165c9ce82fa3f0946f5a121972d97e499cee7cd82c1f012b193490cc97d545e6d1bf37555ba80d879d78126db7033ef95c03906379434cca3fa3b0c562d81abf836e143cd9656621f283a170577136c080215c91a0b3352c359791252869041be4905f285cbb4e578e142b8808e82d8e16711513388a5cbd7e80e591f76af484905a5f2099da14b1c62963dd897f6684aac4a0c764df801c63eebceb39e824efa512cc257b9697560fadae9f579397171ec93b00d9da51e103019ed1e155a9dfdc060898bddcb57fb245168e262463d1fc813640d57c8373003dcbfb979131e01c7515a267d71eabf39e5db4582dbdc92ff13cf58e8eb2cfc8b720914bf6a53aec20a73d0eb091939b1e01da082ff1c0a1ae2800a4a8e5e1a0e2d09447e548e1558f1f4e986892b5eedd37e24fc7618f09fc142ceaa0e0d90dbe6a28915a17d32d71a39440a02a5961e50d3083df909989f9c3f23614d59888e28858815af877922eec173d7d180c5b5e1458bfe00b4e2a176748c40747b3e2780c06d24cb67e2cf03344070e789bb48879c3475800299bb492591211b0e289cad04f9fcf89d6c03bd780a3177cfef39847e5207ba374ad02101c4d71061066ff235a67933af9565d8561726595298d2f0f47e4af8cf2af6e1d0b923f1531dcde94e2694c53845fd215eb94a3dad2646fd06089c8a9f360fb0bfcadbe941e2509d3d99ccfdbd2ca78a02c9e86c22f6deaf5bd8ad631d405e63c639aab605c4591febf3c359d4d7da4ffdfb5577016b0e8296c607058a027f045c644cb3528944f4509b43ba22c1d899cd56f8df4b3d9690b0e2b0842b6f9a22bfa2a8daa26070cebf393b1cc1a6c4986b699d92250879bd36edb9c1f49c07b0e797a94ada219d693180121daf22f81ebc3b49e6adfd145317c3f664227706b674ab73d4bc953890a8a7641d39aca186f9f0d180987d65f9b3a1e1f666a4b931e21eaa0415eb5bffed1a170d23307f43b708e6c3d07c2fa2e03536251a32013c3dc836ad366514a5cc9da8b412035b458d56538e0ae63174a5389dbbe080ad8c65c8240d34111a30d5eefd8761ad8719e567e9decb5f0a443932291ccbce15019ae2c11874b85408400c3a1d207d5f355a82151a53d606e04311066fd76ba4ed6fa91c773ca5dc83609d1b1a7ccafe487decb85075f577957a00abbf0bdfd901b7043ade1eff75abbe095a0a0180d9a83252f59e4d7c673f7fac83662f2bb9695f3c09cb7e11c595a7d78de048cfdcd4a276764406c44e93cce4167ab4440ff9e6db25cc6e7753aff98d2999c43916ce4ec679e2e6c5c3b201005c1d07db4290d2a3beec894e5119ecbfc060d9d69867312cb6550be18348b52f98b9833057c5a2ad12efae41f9efce552a5ec651ee14c499616112e28c5a7b7e31fef090a37aebf8f591ffd0ccd4acfc85d3927601a5803d0b7ab32c6f07f167b4378fbc71c2a5ff8e2606ec7c167c69ceb7bb20fd928ab0765fd4056c2dc509e886a3cc829aa736bc65bdb693644dbe593a3809fd26d47b3fc22a9ac1ff41b31159a9bfd5e72c693c23d588f56da889476090f39d81a60bade4ce995023ac0c9bb5ed8dff92d4a1df109c9424d4ad5b5c16ad586295ab56bb0b9dfa345f13a7e7194568491b3a19c0d0b2e7078a2ef592fe96c368f41f79fe3fd82d70948a1c435eb5d952de2bc3d135110dc6d5fe3754bb3814b439e73206558f33ee5e35ccd1e8deb9954961aff23827b88fbcd8bdda8b2c25a374657094fd51ddf31af3b7c9f37af6fd3749633f188dca79efbbdf4df21c4d1f72c0b3c30eb2cabe6c229ae2b3f4d4dd2c36d0fc360930baa71bddf1548c5fef48b76268c138e314f20cf400305d04c9fd7d898f02bc339aaed5d728aaccc0a90be058b837829a144224a7742866ca7eed3658d0643cf1d3b3eae3cd5c38d7ae82ad2b3a9882063f1d27ad72682ff62fcd43cd7044f0da7dea60468cbb981bb9560042725f9aba3d9c22b6447e3375e0042580a1a3b33b8cfa328d6f33131771865fab3280128097a83b5044ee6df9f1abe11392c36f8a11f3e4d85b1d52926d7bf8bb26822f5394c35c5562d72028d78fd386a86971de09adc692b938cd759fab904a5fc3ee28fc4e58c6a81e687432dc1a46f5c26c37cbc61edec75d2be792bde96a41a350cff6e190eb9c76839f229bcc3827b2f549a29107399f31a214f8a1be9f145155d195a2b289de531b29c853344b7a6bcbb4cc87bbc49109f6ccccb123bc6352a9c58c713689b005dab759d3d197d7460063d118cf9edfd229299e2f45843df248c563a771b63233b8deabae2ff99d63cf945a3c10fdbe183e570694eb518ee32f2dadcc9df703572cd831873f11df97b5fe6a1c69c80124f1e9c27ebaf747f961d93d383e9d5cf70e9e861a8311a6c8347cacd1b431538d7d76af8ebd76ca64c9448f11481f2cd413bf1040d2bc665d5016bec5bc896bece4a5f3b5721b2e9dd12807ee2138b751c75333698de27ee5c7c212c4381d75a28be6dda6126b18b98e8d4145bb9c31fe99994035b0a95cc939d35b5c68c8e44753bbba6c4f7466defa970e84de8a1b082dddac9efbfb4d0e813d05dd73de84e9a4ad41bea5a4b2b62d96abbb41ed1ebb3d8878be3786dfe000f8790a01cc362bf586c6357bdba958d05c30f49b1b39393082a6bce59904577b0d78918ca2f6c42c77fe03a970e97cb97147b007a19d8ba9743118310d5674097597ec3353e543ad4761edc549ecd1f382107dc672476c629b2dc413c9010e8ac3adf28d44d803334a2e66b3abfb86066570375cccf66930d0fdaddc603be9e40c24d01031c0969cece98f6dec7295cc22e4bec52be6a924d9aea1796c0764d98cb4c6c8adc07775dfdc4e85137648abacd4c756da97d82ec530a7bbb7778d5a41f2ef1b634d793ff14cbde1eb92883ee672fc68d4594062f1dbcd752fc68af0f965894523e0ef1d8057858aaab0742dda94e189863f3bc31691d2296bbe47ddd90b68e758c0ca781052a2595b14aa58fb2a35849df07ccaa6daa377ed358a03c58242149601b64303f893520a5b08f50a522fca4f117899d5cf400dd349d6029bf78a7270b8f88a05afa17ff976a754c3426d48895f55e8cb4063cc943b81e28073d601873b3ae5b549070322cdc2d2f60555fa3104424557d63038f828c022d4f532f2da7415a546d15d81fb9eef7fa3199b776eeb136c55735f641239fab7de3c55d8df304c71ceaf7128504328923f51706a7188f5f4252a66ac0a6387eaf944d12c6c14ad997a04415fe6bffa1be9a5ab2c22bd330e88ee29d65c394915909c498c39b39e30dd53c8204209881395043344acc30e9bd2512f658143054edd2025af73998c0e6b4173d5b9ddc4d23d75e01be8c6e3a84172c06f1c50305b070b89df7e328c5ca6b1630130aa05236ba05056c811398d5b6d051f3f2a5ff5c6f2f70133f5f76e142ceb9513af7e75b5e052db6c02606f50e41ad0252af255f301cb370437a0a9b28d6625925ea258c0c8c839887ce6f569a697e1190214ae7c1dfcf6eb2667242a3d7fad0b5498ec71e117e3de7d4a75fde47011def515f671d393710d08ad6bf5a56827d4e29866c3ace6d4a04c225636117bab7a09ee757076bab53541f31c4a0d8001455de02f147d60ea93398e78633e0dc28bd08bcacb0e7baf67e5761edeefc80034bc25cc7c95b885cb0500a7e08640a9f04d517518fb5a5213723ac8721165c8072396860b2848ccfe253c601307a46ca77467dc6c07ad08b43895f6359d773cb9b33f6d83159a63744f54826f165fd04265b696fbff648922c55ed91a21a99e094d2406905f2c488f55dfe34987879d2d82675c88128a3d807a54f592dc52f8d4fbcebd0befd2eff626acb01484c58830bd4e36f043fac91c2da13520c702d84e01ee637c0f1242b662864d15cb2661bd894320daaa0a2c3db9cc93587150bf341e397b8033fdcb6cdb9bcf3937057dec5d44f1855b0454ae206a1f5c913df71d7c208443904c4dd6290c73feb636c5406d022e76d1e938c6ebbb67fa6898da9510184e36a164aa812a84e287c2f2db0a3563538bf263f953213a8023e4477a4382f503ecad3a219e0b76eb8459016e4919a558f195e8222f1f905db8c46915830234ed723e8f015e82ddf5a1b0302def7415a425b6486ed4a22d5ae2fbb81ff5d3542c7c128bad8432e7718445ffcba6ce4f665e9071d7b4ab6fe9c0060cd9e3a8a36a4c5caf53981924829b699b2394ecb1f7da6fa15c4cf1423a871bc6920d478299f3dcbfb770bb9c3f996402b2cc0dc1319d5912b15fa21ca3fc25a5881c991203544ac8cd5fd8a47f15a8705f440ef836999cc366255124867056f1580674b45f770e42c7a4b67d602fa553583e546e1ef203c3999a460c3c8321e2b7a80c411ee2736e7e055014cc54ee07b9167ed52e8d859bc159b96b6ffe296295731e89d7e0d74cc72e8c65ec7e411eda5a63e6a61af2187391be5a753e774911c2d360e68e0841119431f8398f95a58b09f96518e8607c5b8b26997303baf4cdbfcd0b4baf0ebd25443304dbccd392c41b9017f93447bdd867db57a15a6689c6e53295df3a691d9ca194e27ce7194cd252264422650f9f356cab62be98c37fd4c1e1488401e150f12bc878ad738b570072ff40c6b997b0c912a19d0a52c4341565f28d0317d536d93bc302a9deed7437adef8ef34901cebb44eb9809f651ccb96b3eaf20313082e9c13a6e859c058be89ede7d4880cf0012d99ea817dc27b7a34286ea4255ee0a5f2d4f26ad60141245bcc276319c7a22450d59614cc7f8af71b628d6838ef16e2fd10bd18a0f1de3fd10817f5bbc767ddd6a5c57c9e522445eb0e5193c72745bbcb21660364468635a45e5d55f4925e85856266ab2e955ca7a0ab5e8359ff176beaf8a637cfd1c533470bffccc71303d32afda329b8331307e72bd1f63dedf4f6df433b2dc1e2a3323a59c5b6cbcc797fbe12636fca6a54f364b4ea74851391fe5adf4bad6666a4e98144c450043b51a45d4b0df5d78fce6071ed6286f9affdd3b28344ecbc70e1335d1a735e049d0693dc79235afdc99784e8e68b734942f9ea9ac6de9fc377d5f4729fe4891168f4edb27a478fd7805f9682c5ef577b47e496b91f30a8bc75528fc2a455709e6d608a4630ee90e195234bb31394a904ba7f8b79003a4585651c3d5b085cd185aa1fc55fbff1ee6986485391c9a366e33641fe757dd7a7b2b232f2bfbdf11732c81a5c5beee64c83d2d6caf4d0c5ec46f8686675b00ad577c5f68bffb4c2de7d33a08ae496c477096a0e83e0cc41a0c339564afc6cdee4dbcd818bb00837d7be86974245bd5a35c7d5f5262ec3c7d8c1af834e34cab5fd01ff1c6dda7b995818ed3b5a29b65cc13667f7e127334551530ea31c092f32ec673a7f8908177d53e98ef21723a22a6c0edf0e9100e3d167400e4583fdec734650fea7788e9148fcfe05cfb2e134e58494c85348b08d575fa737d13633018946a4264ed20b878053f3d868fa859a29bbcd0aae08fa2d171775ae9c8f34940a0023c6d4d010be73101e3e2dff950e52734822825a51897abd3a14ed73926ab5ef6e6fd44e221fd6d45b142197e9d522c5bc12847ae9d1a00c5088226a74ce3aed25116c1a800e6e93bcc6f37a1708b8926fd573b4817651a642a1addac0b7969425d27c52970ea9446fafa983b4be8745f4f03a56e78b04e2e035dc750e8fabf201b0514a58554509cb051c24f1a5574212f916e194b22ab37fbbb59e688835dc19e15523c0b911ed704a27595e33985a1509a9254761c3242c7290bd8472165c46f8ca00e188a718e27adb4d4acb530c8c8e70009e740a953a6c1fcb873a7a28820fb60abe65c1745835aaa470c40ed5bd161574d0ad7332420684003edae03bb62db2348131257509d45d3edde541d3230fef2cc9ec25cdec08865d2f41619a7646d5dd6ede01fac416b0ba4b45bbc4607361ff7f63cdac7eb7e8539c6ba63b98fe7e9d0cd3b9fb80f614d9dd27ce7df721bb6ca2d6c15d85a337f8496b400300cb3bbdcc62c741b0b0286cead0d97094d95d7ac0c65d4b51ef556667934ae6c56c8c5ecc564e09b900d7a2b8e71a125b2dea107c0cb41c79efa651d96b2fc432b497092ff38c6a8074c607ba170cd66f2ffbbeec37b6f1a1d34e179cfc7acfb58e0311d9817c00882b166a801385d6a1db8c568f98fcb3afddeaeea8653387db742d995a586af2ba5441214f1b4262843b3c227f1e3f26d82bcdd28729c2b1f91c783d0d423f509cc24e7104cac534a388f92f7264ed300c2c71e88067cd31ddf1a647b02ac129c33080a8403e6fa2bea2fcb6b6f4f4610c076ace5ead880f31bcf3c7ecb01ca2d4071e543b745bc1cffe9aa0d3d0720b1e91a4ce4fabfafeebb002a6e0b68c8b24794079944f6f6b98bc1b299a139a6a3804d6c6116d3a377e1558101641d0ca7fe4878d323c159a5951cef2c23c836988cab478e577b6503ec0b63cf15f27c3e9e6e0563969e6645c9eb74fb1b9a7ae848dbfe38376c3c889fa54787db325a7a2e2403095ca5a31516ce065461e8989ac2584b0f7d084084d355fbf9f941b6dfc32b73408ffef95f40398b1ef15173876384874171f88277431910dedb5bdc53f03572e39d8350200b00fb918b5116e99b19c7d510158e64488ab6a425e8d755b3db74ae78fa4b8176a078f86dd6d2c18ded6d4bb7316e2c2ccd4826fd30bb9d0bdb154ba41498c48d69099a9b7bb3a5ed240efc169e615e3c8b8192bd384eabcd3d592fa4d08dc8819641aafbd7bde3a25f1414d674454f1c8f5d32c1f906ad75c72fe7c97ec880c1aba170d3cd36d499296dee1bd97083fbfd985a19c887ad403b54b9c57eb9edc19c2def6dcd3cd3cde20856b4d39b4c76e3f203dc317e208bc4c20f8b3a428852be6db6fda63886f67989d90e242216e96f9df83c5c018bc7d5b48b5654a068a87369be3b5bf357012575573e6543a9ac5c5b4d819b5364d37ea50a93262b203d9e6e606df2b7b88cb566946fb24f9cc0a7ca388169cef777d782252fdffedec3e9bcdb3fd2bf2fc43a7a7f5754b4111dfb3b4fba7497754c2036a2a4ed38a66f820bfae6061bccbba833ab8e72a353bf17221cf74f9aa31015e78d7a30b9733392b5396f4b441fec24043a5367ab5b301895710e79e47cf378e43cf2c15826df725abadc7d5cc5064eef4e9956f3bb67abdf75eba2eb56f97db5fefd0780bee98307f0c0df1fc794775b16f45baa43af68b1ae2307e750bf35a900ab11dc52ccc868b9b6bb7b4b99a40c520a240ac10a29686fc05bc45fc20e04638c31c6d80816ccf4da767a6d970615c73ed1c62fdad46edbf95bfb75dbc73975750c6d876c23fe02b5cc7d7fd7e8e844ee5e3dfdd806de5608685b4f4d19feb7450bfba2d336bec2a7c70841c45a94f1570acf006893f86f4e397e19b739b6fdefabf1bdf518a8ad91a613e0b1a8ad61f17dd732a0bd36881b30cd0efcaf38bebd5ff90bbff73deeba5cffe6175dd7652ce36ee3395e4901f87cb67ead9ffefe72daf5d8b57e57c5efbafdea57ab574474b4d3d3fbd35fdd7bff20689a5ecda90ffffdeacadbc1f79ec97e4904e6fd1adddfb0fbfb13164cfc15277cfcd8fb2fb4392d6919de7fd57e5e876d16c4ba4acd0e3562e867d72220423b6657235c50c306fdf5d51ad0fe5d8d183adae21d71a7694cffef574ccf5f8767d42d838ff72942985e3776fe3150cfee140cdffe381c90faec16cee3ef9130fc6b783aa5531eba3b8d661bc0db72937961e76d79f7f8eb6de1fa1daedfd5b7d6eaf0ef57dfc3f7437dde160882200882e0a7c1dbf21db5b64a3a95c076db655c63d8de1ff67d6c8ecf452344f79ec438bbe85e7c517c320cbfa7046a1c2adbf429fe302c85d88442a15028140a85fa93366fcb4f4d30fdc5ea0ffa9bfe95dca9bb5699547cf25b7849ea6a9130c56a8b98e08b7804b7f926d363fcb8c4e4cbb402dbfcaee4c550e35bba1bf40d62ef4bf84bb95697e95b5c32a710f0b185d9c7b62be9c226d961a9fc9eeed30a6cac71a8ecd2831fe6b2a7fb09d408df7c119758f7749f82a72f41ddd33df8658b0be6f0f129fc32d43d253d54c3e97740e00a2ac8010b8cf0e0043a887d8e2ac48722b31a2451abc10862a7ef5e3ca14ea7d3e9743a9d502814ea743aa1c63f7d256740f9167ecaa8d3e9743a9d4ea7f33c51b40cf5c4f8e78b1538730884a32240b1d3e9743a9d4ea7d3e974fa1f0f81d1087cc4502814eaf4228a13a94f4d811f25d79a22a501fc1812389d4ea7d3e9746a71cf7cd6b0b6429d4a60a7f84b3678d2b59ec0ef28b9c64e316c0c708327ff8e8e7f661ace3fa15028140a85429dfa07a85378c7d1f1578e8e7f42a15028140a8542f91d34a052cef33ccff37c1e37b153efb840103c30810e96300515d86229270a8542a1502894e92d140a8542a150cfe32686d2397650e008081daaa0821fbc200b31145dfd743a9d4e271e37b193de51bd357e8b8bff24a7336caccdafbb7c933c019f6d7e39dbb5ba4a746a6afce5b770532eb1cfeec4959422d3fbf2537097a9f7250d3ff50b4962a7d701f4c576f8c44eba7c118319bf933aa186e1fd2579607c78ac4f7a3fe61af75330c05dfad427056796de26d9a2933c5f922449b60043a7e0d0e99d1c02fad849e7a845b11ff8459c53e0c6e180d46747e0db3e1b932ff0a762808f1fe3b01bd42918e0eefed310f8360e7cc13771971f44f3c284d8f5bd6fe13777f7de7befbdf7de1d9eaef5445a879c9e60da073ff57dfae88e1cae1f9a00831e50a1881c72319dc367a8081ae0820c5210830c1811fb01ead4f7fd57ebedbaaeebbaee79dcc4badf4103fe1a52623b7278eeeeeefe3c6e62fe3b6828b100071b9c80043f088116a301ebf3b6ece7a8b99a1776103132842ffc8899b76531c618638c5defc03b4cf73ccff33ccfebf40ef0b6ecbdf7de7b9fc74decea1dbafa788ece450f1c1d5974d7d5ae2b47ab8fb5f647ac2bdcaebb6e1b50d2d1eedefa6c05e0ff6ed8df7b55013802663542063a6cf03d5c5353535353d375a918e85e80a3b7e2e048b989d449b9ee6e1c8d61b7354da40c4fa73edbf5026ededab88ec59f82381503dd9624657cdf89362fc0ead46afb297ffc36a40cfbdd93a48c4ea77c01f64ba5baef7bfbdd6bd7f76dee0db5e881a0f721a9e375f5e3f9746a8e254ccf35361776739ea2c958fdd503c3355ef9acaee13df838a7dec7c00f7e47c2f01ec4e1dfbd9771d8ddd5e86e58a3710718f44e4f41cfbe72af189f1b8ba79c89bffe5fd80c17575c5a6fe78d59b3f1c988896feab6babad467779d9de121447fd1a4b3add5a9ab15595dd6a493220413932fb493d77abd65adaefa3e6ead1162f5570f7eff14ef8adde7da9d1b0061b1c46966fbe858c6d2f8dffa89326e7da7322f7e63ebf65e5d6b80d820699b7b74d41dac2e24ccea28e8a8fd7bcff3bef0bf8eebc45aabe30ab3f1a7777b18b534f84331f64cdbfbea7dead8be78c7fbdfdf7befdb74fceef50775ddee8ebfdce16b9130bea467affbdd758f3dc8cbc20d4b542c927341ac6037823ce07f30bcb1f45d7e52a7f354e7e554f7a10bb1c76e177becf6de7b2fa3a5cf618a756a6bc5497529e619bd1d6a7bfc54fc2edbe8316d1c78dfc07b5f52c68803ef5a5da9ee2d1e75aad3316a840f3e7e27753a9dea1eddde83a94ec740b7a777363e1df5aeeef4f1a908296e6dac5147afeeb1bb8808d2bee0f7f8d718714cbaa726d943279ffa8b2f7a36994c269349f7742b272798153b5a7bec1eb5f855d72a93baf6c419740ffef1c5f77e57920035566b2bf52c49801aeb4cb9077f5a9ade499d1978d858c99798681d264f834fcce4458f7441963e65bea963a0db7cb3e4ba077f6a7a1c770f59c0e4eaa02147921f9240052d74c10b496226bfc32766a2779cbec4f4a2f765ae9bcc3d36c91662888f6d8b7a4c799853ae63a03bfdcf61633a6a92d88906528999bc977b3a3d64a26b30f91d3976f8c44a4c4c4c4c4c4c4c3e878966c06dddfff9f901ba8995bc8efb85590c08fd90cc6631a03356f23a4c49b3d92c0604c64afee747470b12182b791d31189db192ffd15193dc66331e68ace479dcc44af4036eeb9e9a60a6b5e8c27c7cfc0cf193c310244c288add47c0858126e0c1111f58820f46a821b662c1118a00fa6143088e88dd7fc0859dd8b0041f18a50008270889892bc09f9672a93a7a43bbebdf54f8e554f8dea7c252585dd8753a54db25bb1a31d4638b3e82a51753fb852fb6b82d1c67fb5ff617ad4ee14fe14737de3585750c747fdad3b502b3d92c031b9fa860fad747cd1b44ac2b71010e33f94cff9b0f76f2f56dce0abbb9adefc3b1e2dc5325eb0ac7bb01d706476be9c5fa7d1e7e197e29fc521886226d08beb847cfbfe3352286b688d45a871a0cc9af34968638cc1679eb7b8c26f1474e236691fd5d22e283e0f838f02ebfc7b4cb775b2a953e0c4be17f7886666813d6ec303cc3300c4b20c9139642f24b4f967458fab0149a4a1f7e5a7af2d3b27cf23b12c6c813fea853f14b8fc552eec26cc17c857a20324408108b7e9fb23a06baaf1edffa70f4238b72a935c2c6244ff85e6489e42a4e8d118aef204a82a2f824e9453ed436ccae45444876288aa27beffe9efff5bf9f001d6e28bd8b5fcac086cd3296205db8933a05fea8c3d4d2403c9e4aac646ac01bae282713339ae46bc3ede146bc48f61e9cc881f8cd85f80ffb7bdfc191e36eebbb40489eb3559bd0bdc15f5e71eefefe0441a10d3ee8e4836feb8a2b6469be1f1f34bfc7b4cdf717c75cb72883bfec8be3ae350d49927c512451223fe4ac42cc9c2d7eb5d9e2cb88e89b2e8a5bfcd05fa6ff072bcef8a248b6903c2229964f7e498ae48ba458f21ff9e5a7de038c129d9ade6d57c89e608df04977777777777777f7573173adae153f491731a3cdee6e54f1ca6d09a67f6a83bc87997166047d8759c7fe4976db778178112268a9cd01b93df2d7491047869cc693130f768a6f1071be5bac66874b7688bfee76328633c05fe35febe3011734cd33972bb2437276852562698e5071766a876c27a21e515fa6777bbb6e8740a2c21cc90eb12b6e4d05a8ebf82e9c5730a580c484ed8e7461f8fef8d485ee505de9ad6dffbb83dfdb8fbae22241f9129dbad04fa70fea4e639d82fbde2eec0bba48ec8a6f88cb85a2ffe7699ab7eddf10df66c98b1fae6045ef7f411736d6d690ab6207364432b6558db63dfd86d840c0a8b79dfa54eba58991c997f357aa3475aafc8a3e2263aebbe42b22f215f9de4c01f2d725f214fe61be3d18c14caf0db7fdafed12fdfce89ec73bce87f8abf4fe5ee444688cef0bd895c436a038b545704477500edca6c3f0ccc79cb7fccf93a376144d7f7d6796eecd51c758bc96d4e96eb7e441f3c18bbb42f0a7f7766f25a60997200e77187c1004750a46f9f84b3d4660dc3530ca06c02f287f428efa87c22348ac5e96dfc283ee63207fa5f0dbb0fbbe0df5f63364d7db4f6e3b9ea5fcfdd248961e9b0c18c72fa718dba0c3f6c74e5e3d04f4b114dd625af285c53b1c4af971d44d983f3f4af8539dc6338d81505f37ca0ef30121ced9e6ac91bfb435d2b688a3ee314a1a5754fc5a51bc7b68d8a5927e40031cf5673151fae70759678ed6b4a43110dea99de20e03cdfc95da8e5f308e8ca0a275a72936d456dd308efcd456dd30a480a4b65220114c9086bfc0f747c002fcd5bda35dcd85a97c8d8a2651da7cd1e51af753fbc226d9e357f20539eaf43e0eebb3c3cfe17b19cf3c6fe6cdae061ded3a9dba1fd2c9730cc4ba5ae1edfa68b52bc699930670d200a7b5b9db033305f7ed02d2769daadb67b7f0b3033b6cddf6817bf1bd5d67f1be785b21621212a02169fbe315a417685b9b9484a31669001eabd7ea0b810b94e47e2fc6f85adb03f386e4a73ad0f65a6367625d892514982d762e4c02b3d96c16abbb7e477ef9f7cf0b33fdc56fcae7356feb56474bef79ff7de24edde2bfa85bd42942f0d936a79fd39cdaf732f861f6d9a5ec4576087adfe27e9e5714faf581685f007557d16221b0d69c7eca0030a7f6823edbe61bddfe342e81a5c1efe516b7c320689af67d06f5ebc9796e40acb5d65f7dbbd6209eb260bf9618df8e6fc7236675d4abd623c752e7a54af0c54749cf1b3d4f7b68c655ac494f6cb42365d81fdd45ef6560d81f452b962e3e41c1ecba1988d565f0bdf776f862fcf8628c31c6187718771a5f1208edfbf77700dadf8349bbeedc36b1ab1143445be6beccf8e9f78527336553d67e760c6fe05dfa74fceebffa7de999fabcefbe4737f889d685fdf0e2c05b06f89f4e590dbe8e451dad200882fafbf408ca385a752aa75804668f69bb1705b18a75bcf7dedbe5faa29b6c92ed39cd9181edb38dbfe609f8be6177d7e3bbc5ed522fd57ddd353c9dea348cea1a47cf57dfe75a5b841b362691b6bfd8a3fb01ed254aaf91ee867d892e8c14726f3f170716dd22b0e8e6b6e32360d135622d98849c955995d8f64f0eab31b0a8b62c784445029337b0c8a828b753d0adb5d674588dd59a52efdd5f6dddd7ade8ad8fdfc32ede92489e10c4ba4a4bb7edf6fbaea806b37df17fb999a3e28773b76edfc7428af0907d7398c8be4645f67d6cc45ffa16e270b8f30ccf73b4e01d4b2530d3b382a127d5a4fa5d8f4ee8160a3948336b38db11d1f65b98744110e73048bef86d712ea74be667dff475933ad6daae0b71df771a87dda918dbe26c6fb8fd09d948f7fbca510c4bf7bb8e2449f2fbf42c47b184cb512c618c35cee1221e588e62f729ce81b933a7e2549c9f8ae3b58ae315c77b107991990fdc3d12d443c5713bc4856ffb02df76a7d3d5ee846ecbf7bdfbf66069fcbfbfe597486096da567bcbf27bee2e75ad2ea10b0b937ab02b4a446152925049f770bffb30a94464579480581afff434fdbffa7999e6d83d777ffa2c812b01c11ac8b69f9ef582f6710e23a17542ba231b6c1e112fe986eff61901d2a1e2781215671c6b6c9040d034cff3df9e2914bbfecd89ba42a5d2e8f30a663a96ba1939cee0afeeefd3d8577f077461210ee72eeca4e18240d034cff33fb7fdc52ed77d9e2f7e5f1de2425c88bb158fc0fc4647edbd38f0febec7b43f5dab2bfd429207ffa771d87d533176f7e00dbbb1c6b01ac348da0e71d47ea9b426848875958216f4e12d7f8c0423f9f9b1c1f6b03a45081323edf41611e576edc1ae45443db6589a99d706babb9beeeefa82342b98f6f18fbb9bdd960fd9db6a8c75b515b95f1a88a72a98e9b851235e40138f36caa3cc2087dbe28fefa268c79fe1c2feb6ee83a0699ef753b4567477bfbbd3eebe760f8e250f0d9e9e2cbfcbe397e3f823495e9194c167eb533ec9a9eec92f5f14c572867ba6a0d46c93b7b5689b98fc68d2998c265d67329a746e6b773baf7c19fc959ebc0ce3979f926306ef4d75e393dd58e64f394f7f036ff11c4b9c7b1c75da7dca87a48bee514e9dfa6c141b3d1609478a4e894f7ed5e9f8a912957bec4e4fbeeb4819a3a853a58e81eef1c7d3a725f8637e90d419c7d4f89f1a3f7c707c74935f8ee4add5a5659071947c91cc29be6d6f97dfc2c99ed62ef58d519b882511982532f86bfc2e356a37c9a9eec737f9929ceab40d9df1756a75998f03dca62f79d2247e6a7c2f35ea1e9bc486ef4efb68ca367cf7e4986dd3f8a66cc3922f96abdd7d69539f6df2c717bfc5256f80db4b470d8195985331ccedbdb93dfc2dfc6e30db58c0ae2f7a9ed6f49cfb46f776ef4af6a8f68d4e779dc648bb85af2eca9a4e1067dbed6dfbdd8fb7b94f4998f67dd7dbc68ed6aee441acabb4a36dfc6559fe7dfb27e18bdd782a32458fd4311dc5e28b6448b4efbb113ff2d96de1d2e399d1f926924e4110c9acc14efa0d03b13f52c6fd92c81d88df2a0e09e37ee9328e92ee1aac3027ba39d14a0dfbbf5327721d1cb5da6d621defd135ba4630d0c63f1bbfff388adde4d3933fa1bc45797bf2f6e44513bf3ab536fc3b92fcc7e1775d177e870b1f23ada4504c52dd4aa7d29d1deddefa0a57602196c6c4c4c404e3aa0be3213421258f53b45afe0a4d45a7e029e4bedd288cbbb413549cfba669da4fe9ded4dd22448ee234c70e4dea255bb6a96d745e8213511e9b7c8a8282f2a9d7de6b35506a18a97b9453761deedbfee4b6ecb50e9827da6b8ee23f39d16efb825d81576069f08be32da9c06de1af229289939078a1e290a2ad51f237ecbe5fe61a76a8c47b1e02fa580913075d1307f57014c951fc25324ec25b5808071989a5d1da37736a7ef765ae61be7d9134f37d6bffdefbd6fd1a555790bf3a9dba6fd2b8c7bdaeafcd517c61464646464646924082f135ba34ece31adda36b74da82997271874a7c090d82a6799e97f6ea6649dec6357c4ac2290eea8492c09d8f837090d0490b26c6e17247b372ace6edc151fc2509a3b56f1147b1c54936f04ec2519c76421bbfc5ef5d0f473146aa2e5ce37e7a8d6a1bd368387fd538ba47a65071c82f9f24bfcb69a9537b698ee2b0cba9fd1b9230ecf5e128fe5bcb82995e215a8a691bffb5361ffe4ad95bf3d7b5e1241c23f96bfcef71dab0f1cfc6483676236fe13f02914c4f3a6da3db74b0165b1db414a8dcd66b62652c73f5c106b38d3067abb5ab5497a552ad6460582bcccad9e57bf950146cb5421898524c8c282333b2542a970c0ccb458e39cb3c8ba552cdc8c0b0664a4d43f2f8a659d1d0986a6acc13274a6080c164448102c5898dcd69b54a61da14afd389498989d2921acb5c85ec55b6b1d910f5dc2fcc36fe9c6d787c2cbff803f4b155d6ac1717edd9b447c4c2b9db601e62a954ab15986d601b9b0d118f6f6f85cd15685bfdea7b9cefb6b15dd5dbb7a99935c62213b0d2321aa862bdb8b058d85d5c5cba979717300fad3e67a08fad4c1335d1c75f622c730db2552a95af3cff2aabb4e9bdb8b4509657637936ec92339a59c632d71e80af5f54a93ed57739e715b8fa7c641d787c8cc5ba3506ba606d42d5b2fa988c591fa359668d95afcb7f2e2f2a8d9a1f0ac46e6155cb58e67a0b9f655d5edcd6bbfab1cc316c14b60bb3a9a1b0a12871717171013fcfc5664a4d3bb5a9e100836d3fad4440b0eda3624bcce47e79015fc09797cfeb5e40cff4b613d1514451f0f36a17fc9cb398cbed9265b41a8cad458e60f7b1c632b3d825507cf1e5e5e5e5a593792f9339eb57659588a224cfb75197ee9321478d769f8f2db055daa1f2309a72cedffa95ea4b5974bba2f27c1b84e9c161405396e960ebc18180624c1783b58b1ecb0c80bd52e59f1f25d3abc4bf0113d36ab56c8c0c0c4c0833c462b1645c31a59818531e72f997fcb37a55d6210197174b59e64356735407b711fe0d70876126b74cae81456760519a0b0f5ca08c96e95cae2f7f269a17d5a8735050ab7e955739ad9687616c45576399576c181b13e33232d7f5312f0313bae49f95ec05f5847d990f8bc2be8ce6295cab1c2393aba7f05c2ef275d6efe5f1bb2c7ece59a59ae94072e46186a8f35aacb1cc381bfc1b604c76cde40c43434353cb19a626a67a1e26faad5fe51f1e664c5513d6ccc0b66e60796051d8576519ad26ec6ac2eec407038822d471932489fd28d9903cbe436d03e6606f607960695e606dcbe66d254fe603053e60b2ac765b35f135c2c8318337e59833ccaf56bf5201935598c69c5f5e3e2fafc8298171094d2f26e645c6046564d0cf853d958bc8db33301da68951515323734fc86cab98132e87018699986c3d141ef6f2504c4c9955a4084b312f63996f5c33341a9a1ab7f7deea9539d7980c3a7ab9e4bb6c7ecef9cb0cdbab2ca3b93c857dd7c92b315d2ed255e657ce34663480441a40175663d6f88913271c868b027b2952b0c017edf57a2f0fc1c2b1abfb262cb19e29738a4d43f2789b26662cb3cd2ee59c1f061864b5dba2b90f143629768e7690bc33ff0beb5fb24d6da512c392058219b2b28cf679d6fc3eef13c14f044b288aef51803244a0e645ee541cae9119cb8cc2cba6efb2f730c060f260b0362950a0f0142f1b9b142f180c06f3606f4d356ff4b2f7373737372a4eb8c632c3b05bf947e9750e6f803d36c9fefe06b8c117455566d9d8b0fc054b9142d682eab20f235d90fbd337d53ab95f2fefc2f0388a64a86f3c153cbe45152a4a2a4ae0378e5946c301eeef55f9470582ac17172038a18f5a0fdeb28f0343e7c381780a1dbc65bf95d6203d6cfb28724afae62600285ad45bcbc6c6a64684195519c8b69f42063d81593f4565664655ae3195ea61a40a16e621f4bd3c848aab4c63267b9d69ccb297b32c878a83e3dbdd5b190e152705e3dbde7f382611a018def63a8d63ab973466d565ff86c6eca66623baf95a8d8a131f8e8af5e2f2d1348ed7b1f24a97644315c5e8e521fd611e6abdfe52ab9413e250694a2d9d73c20e850da913430b92e76e50b76871b3b78a300fe552cc8cc94a50d08c65aed93fc4d7f9e74789d4297d78537a18a96353b3b1f92bd4261ab3d0e636f70733fcd4a6665373d49a480b9a3b3d3b9b9a8d0e36361752a704c3f7309031beeebdeff44ae3e8762a86f779ffa52c1baa32195414cc37c0fd7a98759bd75853903a3b478ed26cd07b1146ea742f7e79e7c8d3acbfb0fcdfafb22ab372bd2d534da7104037d2ce11476dc51ded9d23476dce343e93ae6dfb17a431bb3019adf411996dfbf7c51657cc29989ede8efd9d233b48fe7a09df26fcdee6fbefd31140772ac6978ad17d8dea28ae1b469e3736459967b67ebd5e65766d2fcb685ef3141646ea745a862264aa90f93051446056980983955966b3b28c76c1dc9363b6f1dfd0c21bd3621f8ed66c3ddc3c7843de9c50a102061c1c142b56d8e4e4a4c81900af9c5988b0d1cb43ac07b38c565d3fd4132cbdc30d73cb70a834f66368d142c5de38b1d80a992c27000100808e0e0b172e62f817248f6ff0054c7ef1e2458b9d9d0d03464c000290c1c06893766b688cb75e8c4e0740061974c670e8e5bb175d6fcbfc9c65341991f7323e6f068a8a32c3ac58617330d16dd958b8ad178795653bd496fd17972cfbe107e826c67a1e60ec87c7c77e7898b12033d8f6ab4591d6203aa4486b90da8f0e9b24f6437c1e608ca5c91f9fccb21cb28c66695a5087ea0e95878a83dab22f66d90fd5657f450d520bb59822e73582b21caacbbe8c6669ec03e02facc66adb0621da31f166cc5946bb2d592d886ddb6721d359e6c375b0396a9f05e982dc329a09548c3acb68595693e52c8b8174e15b4683eab28f5202b3bed8025fc7b1d52bb15e51615a39e84b8e4b0e6ba5d23939e75b72724ce4e4b0e494c8c9c9c951c949e5ac9c393727272727e7f3723a9c93e33627a7faac94d55d83d064be4f82f04990eb93a0ea4a4f3ea8e2d46a0493cf3b26419193eb381fe2450e2b7d7dcfd5eb75e611f3c8d1eeee1b04d3713ea4e87aced10ed71f6c135c75b969b471cafe7bce5fd6a61439ce831c218808deb588224692f057753fb27fb0cdb6534f2269418e70c44eefcff6b75e77fa2b3d19b7e9ee283d4cfba9ccb6328eda3fb1e1255c1c2ec326d9587b96c67a17fb68af2532efb661375871f01d478bff627bcb7b75575d44a6dd9dd7007b1df63cec75f85e04789767d03446ab873effb0dfa4fa69cd3da0d61e33227e30dbb6122182d9f61c626945726d9dc1fb61fb579410d4c04c6bdc1f3b03ac065b60fae0fef565de6deeee650f33759bbbdf0fdfff2facbadfe03e9830f0209d9a1af420ff21c6c04cebdf4fc7a0f4d668dbfe1874615e5011afe882a0699ee73f8a7a45dbde21db7efa5d5c87d425d920f7801cb5efd9b0adf7b36d87c4515bbd99d7c3618e745bf6bd1b3c1fdb6a4f876dbd1eb6f5807842b6fd950a9ae7df1a9227995eb510da1cf523db7a16ccab43221df650dbf6492c98d5fec782217e4032b3eb103f0cb171857da712bb821604419dc2a7a70fba1381edfdefb4bf0fd756f83a5df9e0fbc27004d15f9967e5815857a7cab22b0ab9eb77b5e2f8a6b16536f8d7fb0f023235ee5b1289999af6af061de37b83bfd7bc353988f67b58205ee4e60009a615e9c088eb605b204168add8515cc4f47d5da57f3bcf5657ca7b1b9d4e79d5fe50083aacc6ec9fce50bbcc9f1fb7becba0b46b1058c0813502178b9ffdaf56179871380c6cc3fb1be0a6b13a83f8bb37fd75635ca0c336060d1bffcd2109c3fdef5f5286ff7d8f74e1b3bd922ff00892e3fdaedb5b7e5f4d7f61fb9eda5b05f04ddc79a2b992228447c6b80f7ed7a5e0cceeebf66e446ed8b7cb75dff760747a74d4b4ef1c102faeb7852b1e417f5defb1f63cef3deffebda48efd7b53f6ed76247c48db7f67f3e787a8c55a5f75a762c640f847fc14cfc4c7330ce42fb1346afc836733a08d576076493b09473ba4ea722f775b2835984f7029d8a838a5ed475e841680ec5a841674d8e977b4fd67762d220b489c60d6208e1cd97707cf822b5f54662e2a3396ca6ca532d33a6bd3ade575c265e5c5d678423b79c209ed8476423ba19dd000c022a77e55bd903a578be8788798e97963916f1e0059c57f2ef15d66f91419e75bb289cfc9b0bf7928c5afc8e72dc593452078c9a2edaf326321a2b2e06e0bc95f2cb9932bd4170b121575584d0d8afe9fa7ca096d3b0bd24952d26df99bc8285175f9b36494360bdf9f85886fe3589060c9f9ab565484c16a6a50f45f65565566b83d7eca82b4fd5564950a965545e80a4a64d52d954d5e36280a2d058aa28298960c8ccbe657b04d0c4a0e322d7466a6c5044b89d48aca3993824299399dccccd4942a5a75ab2e7fd54d754b5faaf0b28514ad0145dafea7939cb6825295d1f62fc9294a031488ed6f52dd54371487ed30f0e1bc6d0f7bee620cfa90088837d21dd7b2adf8c0e018d8e1d6068249aa71871fe9a2b44bb5eaf2477181693f2dad4c76157709c50526abe4520acb2ace4e5710ebeac77defebbbd5a05d5163dc24491000f4a3e766d7b8717d6238ff78cfe347cfcd06eb09ff6b2b4ebdb19b69d8d96c36bbe0cd34b0063d853f7652c6c9be2f7ee3fd71adb5de959dc6e1de77f7d56075f983a06944f4477d67a7053528dae2b66e307861f7f1e32b5eecf6963b3b15a75abf3310eb2a0d6f2ee4868db01136c246b70b038d6ecb1fc46da322236c746120689ae73f8ad6d460a30b03c19a673b3da2cfc8c80332f2828c3c21a30bfb6eb7a31bd2ed76611f8d86a315e52eecf38c4e22d3f67535f0c8443abd24d00834028d40231034cff36b405abd79ddadf9c21938036746464646b7dbed46bbb070167e349a7b33cf3bfffcb4e12c9c85337f85a622b09177faa9c59b4f2f9fee973cbc759e77efdf6b4560da172d0ef26bc73b626bebbde5d55f75b91512abbfdc74ebb6769b30f6c73a0567fad79b8a716bd4edc3b82b8eb82b4ea90b4d2653e7815697655971eafe34496eff8a5377ad38deae15271c4b63ad38647d599bf1f7d58a532b8e2dc772144b64e95597ffdd825882bf9a2515c7eeab69aacb9f86a6e280b7a502d37e8d0dbc882719c18317f9ba4aab116e41309376379a46a611f3c85fde7f6f1ef117f9df9b48fec2ff693369a72741db92e477def7613c8a251193188f62d8851dfe3c92d421adf55230bec7ffe911e3f7def3fefbcfc3a00a0af5a5427234c85f273d4e842e4cbf7d5550c529dfbeeaa8e2bcea0aaa235bc58510ac4c9ca0be5a3713b48ad3f2f64d08559c9556101337ec160b10f50523c482ab3826de3ecbade2a46052c02264c3a864a0be66728e1e5dd88cd16d9d45d4d74c92cf2a0ecbdb3f8d2e4ce6ed9f45cedc5954714c3f8384cacf4dba48335da844b6fd1306154633bbad0c54184d2d650bf5455354ab382a6fff9ca524559c94c7cd8098f930a3c1a69d27304350c3a6495390d0e48e6cfb2839942228462846508efc65f2278cd8b0ed9f6ca1c250d84e4e7cf8ab767282bbb097b77f5274612e6fff247761adb77f627461e8db3f39ba3098b77f827492c44952c511dffe89edc256287e00aa284e19d827b9b563ee58e613a2ac54e63a040f30a65f14c17128e651b20dd4ebfc03fe8ffe925765145385e42f1441a8a8ea0a2884d8f62d8a22b6fd54c5052aecd4a6b62a62db6fddfca542a815a4be54a440050ead20b67d18217fa9408249417da9b8820a18dab63f83447db1e0a1e6fcc5c2e6e88cd185b1209a49f2178ba2992ed4178b232a6a9f68c668c668dba7995d188bdc6dd1d42e2c86194d91bf62a039a2be6298cd66b3dd42538b81a646538bc146930302880c08683ca2f4374c93936a4dc01be02ebd78b25e9e88a7af5e2f4bfae4b6de9232572336cea38e5dd2b175783a36d6b1c515aff4b48ce63af66964e59757655636692f35140fe7ffb2f738df20797ca3720ac75a462bc7224e4c459c506c3d3115a1a052526cf50f4541516141c928e00b0a850a5d5252524aacb3da5a5c3433e729ae64744a68998f1c5c34332a2926151445ecb0ad8c221947cc9831c33683871944443c369e5c018e8e582b1e19d4786c365b6ea55905383a420b471c6dfba9540995c95e19a2a8fc151947c82812223763c68c204444265a56489d4aa558ae10665a83d05e98ecf345938c8cebcb9c4be41d238eea1d2347ed112c30c6d198053141a531db01aa38e7dbdf31aa38dedb5a841c14581070b40216937d712e4af6017c98d5b6d45ba63ebb84e96535b4052cb49a8d85c55c49b1b4b49cd8c326722d459c4100516d2d656ed9602733e33261a2c444666556660195f0e12d3900e18e8648424b8aa9c58486f5656659e5555e651644361e2a8ac2c3f3e54a8a4646ee6938ecdcf20e10df21c25d1e703dd8fcb54383dc36cffcc2e845ae86174a00c20b237cb9929a01610b40a80210a0308408c84d082ec8115acd4674c31511f19ccc08418e8228e15558dec57a2da395c8e229a5b55e71bd978766be64e65daf42c85f336c2a52505f3378e0a9f1c8c0c682872222886610cdd08146c943d9cc059042018e8a8200c2871a0e2708816b46b36644b70c04adaaf512e5338a96d14c542b33789861ab6126039e1aee565db4197408d932206aa6ca844a6505ae625629278bc53a6d52cabb90431609c9816633170af2da90d34c171417958bca9719a55f5e625e565428601eca2e68b6ac4613533232aecf79e6cb7cdaa85c5914f98b27e747d4170f1215b54f00a1198064e4642051d1da729a2d9fb6c42003fa5aa6bc93ab2efb3c45b6bf768c5051fb297987004217b64303a00bdba9a1b66420f12323e7af9d0c54d47ed1b6299d9a3e80bb96b698d0e9990491999191a323488ef690c9b29a0d5794333a429225c990ccaa2b072003b515b44db5757e339f33cd97f924b3322ba38c5081c3b6af02c95f0538527185fa2a80142aca8287fa9aa1838ab2b0f96b06110ba20be3c9b12022daf659e42e4c46eec630bbb0194537869abf6698790c32a8af197454d43e8b1c8bdcb62d2de719c32c86591a83ad08080820db7e4b96d1802e8cc766b3832908d0b60fc30222765a7121304268db375180a302480113edb4062962c9325c75d9c733741064c826f2972c88ca93bb3099edd4b9d44ade21aa2efb67de9191bbb01d1f66145dd84e086a6be6af9d1aea0c3aea0b67c3b69f2b22082084c8555b0b0c4e1c4cdc098628b261a7d50748b63dc93a4759e7880e924e123a498e16016dfb31321bcd4c9615e58c6ecb1e5da4db4abaad59007e0200545d3cb60b0b400db545c40f44d85c98ec14bd03b4025396792f0fc9e8db6d115d93a1fc26eb4bf210100864c6585a070db3592c6b592d0685723a31294929514a283185d4b1478eecd19922922a5e37e4828a22857d15d205b941bd524b2f491595959134a5cc122652c76eb18485acbbe21216132d2c5ffe402030f6a2ad893f3daacc55882d9ea78cc8da545468cc54545e320da12095a0956ea55ba131a33163e52cab5d184d66da142b67594d76bb30d6db97d164b60ba3310b42b4ca3466254ccba20144238886d01311fa58bcb72ff3e12f8fc6cc51fb26b0bf6a4bca498ccbf5acccaa0d79d78963ced67992a79d876c95155bfd2c7315c2ca4aca4b9428c1a2823296b906217c31654b9428b1e81b842c26dcd6bb821acb5c83d8254a942861595858fc47f7264c5cb06bc929badca552c632575c688b2e0e678d866c2e9bc8d9da74cdd66e4396a8057ca1b5b4fcdf3167fd2cd6afb2046ecb3ee0c8ce2a608380802c6dc80aa9c0ac9fdaec62c3dd96260770516e3051eda9be525eb1be12e758e60a04d68b2d6fc27e6e19523d2beb90809849b2ee07b1ee54deea63792f7a329a75015954c632d71f6c70c80923dbaa48cae3bf8f27f2499db1010c30fab4d7e595ea65342bb3922e6ce7e84845928a249b1780805c265fdf536765b4baab4996d5481d92c60cb60ab961db076f4b176dfb2fb96ddfc568db6f1d6dfb28d2b60f93b4ed87b39f6d5fac4280b6bde1b6fd9da31ab67d2142382d6c2121c01dc902a57da8f48c3685418d32453322000000d314000028140c880583f18848ce73c5c40114800c838e566e4c9a8883510e842808830c52c6106380012023002355a509c6b5091883e808433be56abdf69e4039ebaa9d4e09a89fb4a60f19214f7947c176ec0863a1f1a8a45974f7d9ee137398689ddfed50fe3da34a5cd99556392b86c11908fa350447de7e67a29aed00c92a04974e516d3ef96947a0521d3c1ec757da9c22ccca1a2480bddfbeb2e470a825660df2799ae627f979779a3d54042960602986d4c39443ea1c2e9902a099703c427806fd51270ad27c62cd9d0fb23048abedef36b1697af5303d8cbd6979f4e402156388160f936f828aa58601b67e46f47c105ccfc2b6195c768275361e95d23c4b96b67c256ca2229ae5001c282b97a28d64ced6c9ec20611c3dbb9362150b0cff9bd6156b810b90421dde544a62b4536723054fff2c8ead12d3b61e2984b71190a968e427c9e4e6d33139a73bd1a737e5780dfb4f3f2f2d0abf65f355c4abe4464daa32aaab8826a89ec29117805af2a6e5c4dc8a97a486ec1a79847497101bc50b3ca417a68f6bc580e83dc371a2b600a64819eb672843b9912f661d4a8eb6b6b16df6919e8eb3f308a894ffc40bf64f262bca56d69453f6477e3da59530080ffd71b0e85dab72a8f3a26579d47cd1e29458d4da6b5b2d58ad8793cd4950e3554b25a8f14aeb2eb1a86d9aa777395a6f303691a0c66b2d4a508bbcd95a52270f5d5bdd90ac18496abe68794a2c6a4d33e55dd4f41e91960435f09dad25752c942e0df4bbb33a4a4d65befba067a83705c5558efacb68bada1158e3f6aba37de437da2059324e2899715facab132c9d2938a4affe29db2b04771411635f9520c0379f6eeb71a3a8e6f20d43e33be707dfe7c70f7e564043cd607d998338a057a8379981668e2caf52ee8ba5298411039a1fc2a1294b9a37fd201a2c371ee84500a286e4871bb431014d1c0bd7f7835d61caa85c06f9945a5458074664b9ca71a4954e28eb4388ca1bf9d6cc6b23bb1cd8ee56c0713000629ac76b3270920af5bcaf6727df15f81f77a031c4ddc87627769e2fcca217b59db7dfbc4748ca06641d041f193d5ed4634677099ff9cacc2e1d9a6bd0f41044a89cc14e0c27a7b2e78e5c5b2e2df81d4740cbe21c467586088e74d8ce12d95ae56d7712e23824299eee9c8ceb8b57b272bee861f29a92642fcac065f0c7864100547151a1f83915bb4023b5c3d4814a7b3c2066105df6ada65013423d6191f79af18c1523bc42976f3dc319bacf93339c30179a73119adfe3843cce689d1cf46ed6d6fc28d24cd1b0feb41d8263c3d9c211d45fd8877701fe38d726acb429f9279f678c323e860bc56639aceebb898754c7c8a5f42a68213c2cad9a270b85e002cef50cdcf94b8b423053f12868eaa0d443c0cc4aa904d8fd610a2fdc0a42a065f539d8dd88f990708439fdbf19f95bd7fe0c0bfb36ce912d3066fd3a5c78e873a10c62bc2f09e7733406c1b03e5fa111dbffa6235cdf0074619276d5ef00091cc17adc174d343c6a438fee96d7eb723eb296113174c4c064925e509235d6cf1d8d2d40c68bbb246b44ba2122ba570982b2a64b13251ad99f1aa1713486b8293d3ffcc812d1202f9e599b0825eec8d1b82fa991338393d4095394d8299853df180e5d0e4ea02c34785fc810514e7a4bfef4488ce33c017af1b973dd4a9ca6457d4a5b588d80591d7bf8296ae69ce869ac471680dc0ca394d3e451c6009b59aad6d1917c8e92f44668b93276de23d368f41ed279d8b5bc673ecd34e601ce02e4b598058837083b4c8b98872a839066553a33b73548ad4d905fa7767b725075908551485718009c0bce2394abf1d75ea029b6acd478e362946218dc0411c6d8576b66a23b09ceb1c4910f32dfa31b9bc4bd80b922d5638720a234347726e9deb6e90ed23a43ee0272525002ed278c2b01512cd8ac5335bc5f1aaa6dc86e957882254e42bb55c24b8126d989f7dbfe8498bbf092d8064045371a7917a686094bf8562adc03f53b21e9f6fb54e4518064ba978881a90e661b3ec64ce023547973ae46ee7f1cb9ff1421895e6dc8dbd13af4394a458c80cfa553acb7a3786380146f89af3ae211e7fae2d6f23130b7c7d1a5b73caf57a3095141c57a750ee4fa9f229b98f1e069176556baaf0a3f4091136b5378ba19bd259426b08b826902c5ed35d6b6df64b5c17d4283eb474ed363dcdd27fff8b229b3fbb3c5ef641e20a64840587e40889833ee8a60d7f6615e59798c487ceb86c59a286723ec4789a82e193683fd50bd3b1c2eb413198a433dc06deae7bec7278525d51aaced8af4e130bfb13bcbab1b2b29c75bb32b3b15db4a879d0c977f3fea482e288e75b0d46c9cf8311d47695260529ae321e6d8fc586772b2eb9640a6e8627af0eef837ef9dd1ec8c0dd342658bc36404976ed9f82433f460f48794c483cac50b70e8ee29ad2d98fd8c85dcefed2cf88f9184d482c1936d6139408b1d14eb43fb194b6da275ab5394829329cf5ab66ec4f700927f8b572957279738ef92336ab65898adddcc6b68269882974c8d064b59bbcdb50c730511ce915b6ff7c2e35d6bf76ad63ac71d6458b5696117c43261a89e013017f2c35d96f9511e299b2eb186c34bb09f8f5a7aae8178e1107557bf5959ea5e3fa435aec6982be19becacd97b3b08adbb50e389d51cf87eabd8e6fdac5834ef451773e7813a24c45c029796ecb778ba42b8f53d1b1c46ef011ca00c61ddad70edae6f5c70f1ac80a4b33fb8f7fd3c6c838386f0402f7b21e1f0f73bbcc14ffd83bce9e5f45114a35a10c5a891473162a5e332c3e6b7fd4fdc3d3f7b34ff9ce502893e1175568bd80358231bf6cb5429620b715ff8ddc2554a7d3a5fb9da886b0636ce6472dd1d0df66664fd59cb699d7011ae071e47a8c670c5882efed4b4db230eece78b6f8ed2c4dd357bb12849d97825714f881e0c1c080d3a76b8f8c28f0540b29d592fd0e3c7e17d9bbf1d40acf1bef1f1cb78205d46f9fdf192b4829efe5ea3fdf7f7518e7f2b9e2c0d712fdc4bdf97cde4ae3e64e6988c8999e20b17cca453849808d48dcc55eefeeaa60d02261caccbedd1ee0214c1ce39190383a17f7b3970ff8d11bf5ca8b683cd2beb25f7e53d00d6849ce6bbdcd98c77cf35902931a3023ebd7f79b79067853940b2d382ba292371f31abb961d1ee41588ff276053abdff8f417f5d85eb6d49ebb26e38d500046eb9a44a86bc08972d6ad305b4b23ab1eac79ff11256f47f19a72542fcc2ca1c717a00474753623da681fc0f4299e7a3ab85c553bc58d1d93df095a379dbb2550ae3808d792b536b6fe54c2849e6972f809d8db7bca50f2de093990a362c0e3dbc6bfadb6b11b09aab8d3a6a8e91f187bb880ae838d1a7de5edc264b1e70260dbf6987ddac91df83b88bc205c01ad1ded4baf06f168056b4b1f0a8466ded8d3812b8481305684714a8a910966cea9c2a7ff2432ea63ca136646002b8b955bbc4518523a05ef0da4e91e3e7870c4e3d36753e73f4dcaf5b167ea1fc7ef956f880fe8eba7b56ac5a0e10fb0e58223739ebc8f51ea6f85fcf6f7f50213a57e2bc83f7eae7f6051557ff34a46a9583765414b5ed5fde3e3167bc53fd75be093b53bb6a9945b1e004e379aae9f7a0a166ec498857a32a6a97201c373e21605e6e9a4a279f9630b73d30f29590e9ed422391afbf437a4ee3f746d97a066ece0a05c8908e0dc889d81f833fb84da2fd261227de20351ff1d44872487ec6e62d799f5ea36f0e5f3264635a0c061eb7318890793eb7f4c447af13bcc581597bfb8b612b71b09f99e498ac2813faf7d5c02ad045dbcf6e41ec8c94063d6f20d7cd6cc83d825deac77895661fba346f7a7ecf2e484087274ae02793567c21fdcccd70bee87ad95d7bf864f79a2d0858cee5ee5a43f5c3f9060e20582b66a06c514a99a4d06b20d332aa23a3cba697aeba4ae09bed113e5ef674068bebc219911c03afc2954e731d80dbcb5b71df90c63c3311161d1792ca2d71ad82ef44362f915cbfa3535d4d22fa800ca6dfb73d9b9a445fdcb7e3eaaae7d314807cc1d4db8a5f2a5f67ec0b64069637c24a630a15a1c36ea4056dcd2c6d965d5561b896196066c73fe596ede361a83ed444748064c50c88d680633ec18bb77e125e85b225d57ef06b9599e201a677bdcd3dd2ad52d3a402ce687d5f830383dec0e0f33b3c3d43a4a3725a353977870652864b4abb6feaff8bbf4990cb7b6d134364b25ef05cd2d5cbbf4f52da459d54c873f1c4cc31560ad74878624ac4ab6b13fb4c6feb1f57a57f3436c711bbabd0e2ce16d80f6fe0c05c8300b235f662297dc64c190aed5e75df8908c06f29d762f37b0a960af6629a74f34bc0241b05142018fdf2067d0c22cc32027155c29c6b811d9299ea46496a7ff80b3a8d1c59b3da012c248644f0404ba113a4d6f00d6464b6e6a750fd59c997406f219c034a3f1fde0dcae27d3bb4fc7df40d3dfd9e25311bf10bbc6ff0b8ba146cdb481dc423e30944640e753379d3c961c265cb170bff558df71199c0be9c1b00314a8867ad673756d455ced5ca0d43435ece554b6aa2159f0a64fcf4606028890ab97e830035ffc08f9a11cc96be9d3cd06b83ea50e7dad4ab579d303f180d33ea209c9ed4c99b243de615fd44079b10d871b883436fee4141c90293044657ec9ee8261515931f15d47f1a28afe2766a321814038b130992b486a2779c970d12dd3bdfdd84e5a20c9917d0aa4cf14437810fb2b9097b438ccbc66276fd93723f7993e65cf0a1e5f9dcc07a8cf03535c6c8e5a860f6e2881875a2d9b82dd300ddc472cef82a1b4df29a8657c56b4d09f790200315a9a8a43e2904df5c207690ad76c50b441188f4c923c92fa0401aa5a835c0f1f9f58b139a2e79c41680815f00f6a913a86f90b6f40633aa4c08f4e92df40b942281ac916e7eba072fbe2231b23ba98bc3087b4a2c121e27fdd469e630e11ff165db288afe89d2d210347c63e6e3491636796e8e4ebe7410731f1651df68af2d96e356f39437cecf9f3174141f1aac1394ad7b3b2dd6a5020cb9088517a9c40549e8ec1a9276650b69a4e60bbd60f89e4efa8e99f4a54b2ba114d19115cbbd4921adf6c85df873ff9d762f14f55035e6c7f9daae73a58fdbe5175a0ff93c4eea0859cd8c7991509e92a5fa9ef67ca4ed94ae40f02e334e092a05310f77e32bc74a4ba868f7b857d29889e0403139be1024d6801ad2f48f5568bdff8fd377ff31bbffd86c61e0eb226161665d2011b10e99cf54cae5dbcef38a4b5c18097109a4368526406c05e4f26ba5299affcf98048c7b2dbab79ed26c40db68d8a76822a8d9b7a17a853ee46d7f3b193304fb30dc53e9aa11464a8b990d01c51a2c9710a37dd9455c584cb5d25dc16b86bbcdf5f780f220658ece930fb1870137242db940fb414ec17247fd49f53e04072f2d30f5c5f39cad389febdd3b164b552fedf5717f1d62763eddeb7dde8bb7f593aca8f131126992277d79107d4299cc438226b8278af105dd2e11940c9931841e09d4b606d93912120b28aaa1c14ebdafc5cd110946d623df0337b2cb05ba7784bd7c9f336100d428b271f2a55f857837afafdab715a1659cf6610425115cff7976546f28e682069603f972068829b6609887edcd17ec14898c3a59db4e2c0f90f9d75fcd128785e82d8e975f1407bbefad9dc8ebb6aaa6c75a81e83c5d92d323cfcc34f0c6b0255f8d4e2fd120acccdfd37f0fa4b4025275a30ea9ad97087b404a4515f750392760bf031d8fdef71393b775e59cdeb64d241699d564ce53e2f0afbdefedb9d18036cb9134fe0bd39a56b0ba2aed26494a7f514572fe112977b41e9c3a224d79e3db20a044af557471d602cb97cfb074a6d22822d5de5755c20d066c65d1a15cc28f3dc4864caa32342ae5bba60a08d4b08342e1347927f16ddb6fd19547445cc2b1a7771c15e11948b53d787f3fb96f2da480b52281015df001f4079fea6928e6a7b7232271636cd5618ab342b1787efb324cb9a52a6af388f4a7d060803c61b7033ca2d7f8b7702096348aa2e9f9c37c11f131790307e34d1c34b9cccbcbc32c982dc7957e1a0da009463441f06ad259461c07a62f4b328f9c218ea7ecbddbc88a5f4c485928a4bd49d7add7c62f0f32d48c3eb97f5e61e398574a8704b0ccc835eff3e161989bcef9a6b19bdbdaa9043fabdfdf52e6c547bfd5442562fdf03085f952ecff61d345ce54278416328a8d4ef93fa81fe6284402d539502f45d80ebfc6d00d185b0a4d23aef1575d3d1af41bb9b3d9c8c4e160ed17042ede1264b8d4ca42249f8fc8c32a89662a47d2ffa25dec85daa27a8f65dd18d28b22971f1b1f1fab3df661e1b5ca2cf1c4664a39565d6683070c7d7eb951c36aae325e438f44fa77aac69f52354d8d9074b3858c5f621d5d2a485f674e419b2e13a6ef9addf1af5196c0e3d6d466bf73d4615a45c095780bcc1f78b2365f914064f31c9a4a3c6314dde8673fc32d0c4577d09d140cba7d17c551a550b7b3688e9b148e40741352dbbc9186c43f3466afc13c3cc093680557773160427c9a12f01d3439fd9389df1918936eea872845169b7e21ab294fe7540dd7a2c02cd499c3d9e80e97f54e4d2591567ba47d286f11ad7e6d5f2072aa3ae05fd31fa3c029d8553b21dbbd6469278955aaeee949d1a7a5b101bd188d491164f0fffc66052e309d0dcbbaac840c1849122e9728f0c3aa24d3fefce1a6593748451a39229aaf011d8cb04bac454838f6d3fe6fa1b9309a0d3e0c508de8e532511a07bca08081471ffc8506bd46525e8d971503c87785e64a4ce599dbf9df5afc41c15bf7099f88962814fdb15505cd25d8aa465d311c2eced24cbd5d189c5570f9241644619e71c65a79e7f9f1f27c3bacac573ba57378885654962e07f648a4d541f5875c2655eb10a548561d8b728e831e7f1702e1e2a0d770233281d73f1bf841fbd23fcc18d80903da434ec423859af293f2d5f4b49d0283fd54dab98a666b2ed7aa860293f6ee4764a9a1ca8577940862275d9f80740d707b8b8f7c883bc14f6644a8af262d30b719dc1bd498aa87405f8c1727488f92f4c1d91c96fd71e937dc008b296a6eecd0076d84a00c4bccb2459c241cb3cb73073b22d09bbc7f7e630a2768e827b59b7d901ee6006aace6093c2d87402143b00297d8cd8e78a2e1ccdeb32cd67ae65b927d33993a586502084efcfb094b5cc41ad23f72f48931dd982dbb7b36b99ec18c28ad77ffedcca962b23ee55d622d95be951d23b63e0a6e0986b3860b71b26ba0d9e1421a0d893034c4298bd4778846b176210aaa8e1e550dda396c164c80426b40eadc37c4c300c50417059c4675b194290acec667e29829038606003f3cfc89c51028f4782d142b8c6a72d00ee673c0bd424a6bd64a157307450a51c7d8e3159f242ef9f6f244d8effe192b107537d47ac45efa545421733be2d49133f6798acc3e69540fe4ee98ca6e69b2ae84d1381e8e62a70617044be3031fc2596cb69023efc11a02b14acea3b391a9392ebc37067a646c1eab16dff6d9598bb43d0bd28e2bd2dba4dd21bbc67ef3f55988503dfbfd91d3ae8850174d761a342ef31b46c723b12ecca0e3a0fe010d96cef893dfe8a6a173594213e6741d56a4e17a00c7a862f341fbdde83b7168e59910899c77440954ad3ca1c7f09616f0f42fa5a8e346984b887e230b02dc04d7e918da40743a0a6f634984ba4750b1a8d3311a6ddd3676b96e9a04f1595a83869ac8fb8eae58302e16c04990069be398cebbf2233f93e816a5dd7e13edecadaf64ae9032a26dc8a616854a66fc4accdc8f68d081f80e86f1c6d75f6750baf7aedebbaecfe63c7e0805ef9b25b35cae4c8faf802c2cb4493fb23daba0498fccb0e4c553b9cd92fa3a1eeb0c4d1c8f60ae62f88fe946a82ad9b485e0bc78245091b33daadea01cfc2370f3f744d55d63c6944cc81942a72b3485834d450e7678d3187899a16d6f409352a8993f206f4aa63dd2fc14042a1b61f5a7feec19b982378c131bb07a3bed08449171e657868fe577557602ee38dec8fafd571363f2394eb21aba0c823bfc4acf0c426fc85446af0861897208c66deee4626f191a704da503dc3343e201668acc539683549516047c96c9deb4ca58c6ceee39af0e2eee0088e37989a1caa3141b2977f4115d3b5f463a62624a1749b7072a1c2ffc600a0ce2974f4005e658107d4cdc2e44943bd2e20b31203620668110bc726a8521c20ae7587bc8dbfeb7e21ca488800804d7301924fdc2ab26c412d38234bf213b2b2377cea36be867d210a707aad4e0e040ec1ac80fd002d12ade423ec96adca27e82e58894fc03d5b539fa0bbb0d69fe0bb8e6b8ed8bd35fb402b9e9087ffbbdf26ee8aca0fa4bc09c68f8764d17c2a03e4faa296d22989cabe5271b5e486e8ee1d7185110db25242f7bd0cbe8fa68ad068204ae1cab341ac54a02656c22f09bc79845568b1c7d7b026d51b65f352f0eff6af00bb2952cbe10fb77569bcb36f09074423437cecf94fda7a1fa4b1f490c33470ba4eabd4ac6c7302024f2fd4a3a29f6b3ffa3a8d4cd8a3f319a3a3a24ac1a8eb3a4fcadef9a61b7f3d7359a9d6443ddbc72c5ac7fe34e4b77f79336db05e8a3513a358c273539e9e5f09397f1c2b6716f971344aa8b56bcd4c7eedb858df8f32afa8d9558404b41b3ce59f50209286da7568bc4807d028cc247cc441f75e20d4c482c8bf98f08f29ac4f84b03efc19157d350fd610ee1836b12b440d77454b5b30258b8be0a855a5163400fd6019c15bbdb63c08b05717f71069d069832ae6d850dd32fb0fcae5cb37aed9db1c8caca342156b1df0e4190e90db3ff0443fb2d748d1be88b887cabb9847df018ab4cc04fd6ab858504a663abd7f7251427a0c742c7c068e242674500b2b3a1462c3dfe40d12744a13ac0f38ab3c4e4ccc0d7a7423d835f1b9ac984834d36222b178928f7efdcbbec09270a00f3b477a9f16c417ec44a4154cb17f0cd3b4d61d3cf86db045d96121d421aefdc58651111374005c69548a629ceb0a2dd0ac1dd0498444648e852d4496b35f7226504fee37c10c784a26583e6a94fac084d25bd334a76bcedee91eae26e29a8064ad99015721d9120bf05f4e59e2ca5b7c5d0b8ec385c83e6095c998f8c685234452a430c94e92e1d9f2ab502547e91e9261c11289310c24f5366a39adc9e3b6c27b58973388f818932d552f9b7474131ced441a4f3336ba62910e9f1517d8c05d24118d341a803255356182b9a84ba65b7bb9185cc03ca9942717b144c5b669d72a56ed67561ff39ab8e2fa87ddeaae46f063bef663143a8367d4b555d2e3b157f030ad4b67e558e313555bc38dae83d37e8d5e46f77a897516d4c1d3dfea26a3baccba491e0df0415fa3ab2b4d768bea945589ea92ad8eb2062957963a68393a24a35baf50feb7cc9df8045c714b1941ccafc0acdb9cd1e9ab2500988f97186683cd98080204f034645618df47f609cc4d1c744324b1a9b0c9fd012fd1dd04339a1d3f03880d2ebc8c924a0273f88e3553f56e766c7c7f823afe0be4e47f590c6e90e4bffba0e806fd83ab72cf0c1694766645fdef3d8f893311590614142bb7f7241f68a5a1144c4937efd1cbdd20acc6d262070b6ca3c2c09777f2ef8594ed18fc586ffc14ac245a067f4e2bb058b128d38412e08e5b0933a8b54cdfda9373749279d180f93a24b4e4108a8e46d99d2147311dab7aeeeee27c8fe2b59cc0ba8fa2420a5952d9e7f08304cc3de6f6caf6d6fd3550a2b43130e38eb906171d84081ebcf513d6d991419d99cce6997ab6cf28ba62229f2fbd0da8e3a4d873c455eb2fc46e70d2b61f76d0fb9c8695c662e22a29b8da250212216c2be263fa8f25adb2970af49d0d3053f46c0bd73beea4e957814cd3134dcbe8fd7330890dc3336c113c2bad9576f71c97941a944a2e5b6d294c211ac1d266dbadcdc2f26f9d46d1549e9ebdb42adfb19f147d75a11b884ef331f36eb38591a77a2e8c556422d42556dae8acdc855333f3f6ebaaf5f3386e3f61b056fdcd9c0695327c892e354984179d8114484315704896b8677690218582d8c821f2e499f26a5cc9b41901230d314e5be9d7c614e182dbd47fa7845dd518b27a373b3a57ee33789db44fe4e15a4ef7481a740dfc50fe2b5519cc6556ac147b96ebaaafc3e12e7c0c7cde10030392efb7bd65f783a969e24031761fd15caab6e409027d43fb0e2ad0c1ba345a3e1a430916b9ec8e9a3b23699ad96d5fe658606f9d924412b6f26638921a3551cdd561db88a9d8418efb295ca50700d809af427f785f2e86dda1ac929d924c9cbef34726ef5615a919eea9ee7a9882f50ebeb347db0149c8185ca0f989061dbc46dd354f0dbe637e2a88e3682f8e528bc23aac11fd812877443366c700b558a46c7c7e7d949b15a98f773a4da65bdeda7a521d8f452c423a26cda31476b1e7c05a3d51a3b60a18ae95ae9eb6cbe883de96a45e82d4e3a837ad4f3c969437f5805a90bc25e6a697651a7967d53371551e3a4d0747cf33272ee15a7416aad60a3f0cbffe079057ae411a9c19a157a18583614bc9e9f27d25bc31ce3cd1bcfd33254ea2c97878752442465ae2ff800008d7e5d860c90f22a7bb347d06e01c9f6130f1a95a87a7af30f1f52f04f7b3160e1d89e5e023445167c108f044a0372746c05b9b6244fb1c0350807af37e8a407b4606014204e33f8998ac0a2e571ab73671642b283c26874d6875a8986cadb0948f69a9856330e7c9032a8d3d6c8fcb7b741477fa1457ffe262aefb7c16e01e7b01d140262ac8428386cb1052786511be6d8f94982db13929a1eb2547f9c35f8d9afac85ce05b3869ad3be2bc6b2527ec08eea080b29617a04f23390320156eb911d8980a5098c7822ece3a61f54ae156b8da351c8375b7b6219f7e4d77b2d77d7ab4b8c612ae6eeb4f4e4e5456d546048781e4ad2eb5f408899b202a7d4457df918e8e2b1ca675166bf7c61df9e1f178f4069eeb26f0c302067e214b18dee76d44e314a16a65e52ab9d2369adb396bc9207d29dfa94527aa86b9a5d5e10b05e02b2e28247eefff51e143461ec370d18538139c1530ba3ee73cecbfd8e158504537ee481ed5f0dff1e7c47d76e4640b2d100c88f401841d059737789b950140281ccedc2d9a81715d1c8005f63534eeddd86abf9e70d398c648e83e986a042dffd1d9d6081448e5ce5cd19aa415ff18ed47fcc1cb349eb1a0741e29ba10497c2b5aacf043405f029abed7d423e7f17b709e5d436971b9ba2e604ab8ffcb386c069c2600e07e615f06b6ebf5dd1fdc051376855dd0a4a715c4413abcde0bd392e1c745d8a06e10dd356a4cd6c2e1fe4fa2383862a82419875f24ef36f16836810727754cc395ac8715af0a81b938e7ab947a477316701fc85e0e04009343d0cb65309eec19a91f60d9f68c3fc56110fccdd69dd1499f1cadb2f2f9efe5018c70501c75f2643aff0260430dbb30f3ec8a548885e006a095d1038a25680f50404f5804e2a75ed6259878b85fb8eaa06a3fdce0468698994aeaa84e696d4c2e91a915df33e659815ec4d0b6699b9796993c399ec0f0e25efd35bbf3da9fe96a099bb5fa5cf1e02fcffc1e94aa6d9f36d8544a42981ba05e777327bedb3dc2db517fe20e13e7f0e517b8269cfa9bcbe35f7540af61b76d8ee3dad4f22bdefb9dbcc8ba06e37b9588a396c800b59443efdcbda358b0294ca9dd7cbc7016c29be8162b34a5161c48b60927e667a261e1e1902f86a1f1d6e21ae169da84f840b5ffdde99891db84827ae5565cbf21130da01ec327e8bb03b32651c0fdc3b685d8988751b5ac3c63babfb3b37e130490979ac5a086de199b2b609a572b8932d91ae559ebb826021ce987b9a95c2c7695c2b83ecb4d3e00502062300015a0200e95672e59d3fa9edbed4e7c8e594847645771238cddc4a5cabcc10d58b611a9ee21921d1a51f6417128dc98116a2da94284a36e5c55d463dd2c929977792e88e17e9a282a8012c9e5542efde55b8091457e58e9a2ab875114398029fc05a8abd6b5b6d924a38c5d776bc6b3b97917181e35e10f293e9936de4d0d5d23244913a684df9d6d1a32c828c510a9b7aa0f9b1116afe47f624b973c716f9f851660e7fea1a70ca807815b4755654dd4d7a3ab7aa38e53f71deb0c3c7e471de0886fd12e15a7d5f84498b57618a84ddc2cbbaebcadc93fcee8b37820a39e1b5311dd93f26e5262540c34bc88506109fdc6935ae67aac148645fa349e33bf744d80a9c82812ef57ecf9fd40a258a0d5f2d1472151d87482d7eac3c4a1d8082d5bcc4d6588ce5aa7cf1c4f46ffda70338ee179ecb7b4f5e949a098ef505ab54f9dca2a102ffcdda4ab65c9904fbedc49038dc6a556271abcac910f84230b58e31fdcc9f17d21494c4ee395808e202854475584ff8e4068ffada7e1250fc09e13f9402364426ecec708d8f81808ee2673340caa1a5c30b207e5e3a360b0ff4f6cffc8f708213503fd8c1d968218e78c0c91c24a63da829b0d3972ff6cadb0970ddc100c7a4a86c749aefb01be5aa7897cb8417f2362ff388330fd40b7dd010edb12b1996291b38a13dba5cf686fe5d9a8c9c4141c321e67c8d0b36c76d4abf2986aea0e229e1fed62f5db8e17ed7435046ce3eb30d5e0404008838d15d5d11f3fc1a0665f39bc15d963e415e8d8c54a1b4120433b89326d1fc56656f9501a066edba17e4e0d94468ac04687ba6bedffe9f4bd0b5fae36c58c59a420ea6460163e4bd9df6814387c4c8bd75c2b593e0992dacf978d54c3976c5a0ef73e88c3b1b47776459375e7a60d51933b14129aafc14af73de38c7e52fa9cccae415bea72e11fe5f46a86152fc4508c815a3f999a111ddbb1c636609527a5beb70b4ca505a0ef2e0f3e7a04502671c34130f10b9f8fdaf5876b1d31c6a7a62b1927f38f924cb233bb91bc0b87d1b8199b37e3412f9dde224ed5c8ca8d4eccf4511b93c8565b2c4f15d61693848047c8eafc5ac8e6d223b89c144ad3837e7ab1544382029519a17d8e11b45a4df453ef2b68c4ff51894303ec177c47bc721d308643102d72b533525a122b965f90c23dbec6dea4782e6ab2249ccbec88626960e4b211e53735cf7e9c66ee619dede62dc3ba5fdac84c75c2740e7fe014fe5407debfa294d8a5ac09da31be907d6f44b3a267acb6f73dc4d33a88c0c6fea4b35eec8cc534db228bf17831e80093299638b89eb68d85b53f59b577d0c0944962516a4c43e0a9a3e887ce5d5aee32ab67e5cde32ec095d8920aad1688729286c5686b96717833e74c2d503dc3e8a426541332de94ce5440df925793829b3be5a6971aa4fa304be9328b33864396efb658d06163216e0b924415c3e654eff28f8a590dea8ddca24a6fce4bab3fc1a76ba75e6286f78f8ba50659725d884ff5dd2c1b2954940b647de9d8555abb04686482319815dc1e55124ef32c95ec1f72ba9073c7d51972a50b5eda8ec1affd63b45a6a8d066fd9f2cdd2207f9883296b6860fa5fb06c37a67250cdfc2510372f779d0e44bd238f3b26dd786c21318ff00851acf32ec14b4d3620e9d1df4c0ccfeedbf7c0275ac9cb24ccb49b9ff7c86ad15148fd72535cb75cdc9cbd016f59c40966da55ce4273e6bf804c49a8fc48536f8c67341f4a6d01b14fafb60fe84db6ceb405470debc56cee0673cc4855b01dbc32b9e7303dc35de689aef2e8eac8dda7d296f7326808e3cc944ed4e62e1554e1a6b811350b91ad9de0e7001be05254e871803ac74563bc8c9b7b02673e0b13586e89a11d596b376102f5c8f98798f532d28611314ea886c76948a264afea9449fa3d44dd6af72df901327c84cc477d006eef5b7d826ee7ab3fc34edb66c50fc34538d5bb8a5ef0c1737032c227fd6a270a9af19d01f3b6b48c7c74e69928ec6ec4577f046eef53ff03510f42eb233f01b7f7a5ff80187c08dd977c826ec4477c066eef5b7d82f814c9378e30afa2acdc452f835ca0c41814dd8979202d0e6269809878b48bfcb8c5497ce4336c55fb4f509594f46ca6d0a35bc4184cb42ba371d712eb614b96a01cbd0aae783d29fe203d145c4583f6e6ac1b202eaea07265264eb85550d4cfce344809ca0df8f3757bf2697f4cc458ce9d524959bd471935e55bba38d017d3d3242edc63275f646d5f62fc6b9e7231265ad300aeb15a23eb5c142ce1504cd07f3c4d599d7806e38363df96c7083e81b3548d59093d16449e05bcc0cd587cee1f94b0f435104d04f44ed443040d59345ce21b61612d5e7719161cb7bc4a3b30e68164ec6b61b1a7f889279562e1d9ed9e83d74a43e860e380ae5be3c7fb5029d0fe4df97728401bff1ca050d4108075bbe5f9d85537d05f98e832c3c683f4952a3b2abda717b8aa8a1fb362595997663f74f2fecc1861e4b1ac8d4694a834d1db70190c37f8f37b67122d2d027fd18940caf3d8ebff7fe564435cd9748cb713fde09c33a1ee04179eb3164bce1ab3426e518afbc9fcd89caf6b083080cc54b48f9687d74234c7503bfee3cbefa415c43aa38893a30ce40acbc4f5782c63f747727e9a277cdb6d40c8c3828c3457cb8019845baae6548e3193391f8b12e4358b3c3447f7786266d9132145ecb2fb357ac39e6cb94fa0020ea54b57bda28230407f8dadd2e87d9752da61eb8f6d51deb188d2c0a91a63507e7c14260ce088f94d4c239a721242cbd5198713298a3595435d592a20b8f04211f9937644ffc5c88ab1a9fe32c7c5e3f3cdfc44fdc0662c54d3aaa799facfd823d14c981bba1820b27873dc4f08b73d8f566e48728f7fd8181d17f25f288be31c78c4e66eb18f745dbc011d1e41c1b6aa624c7065624d116ac3a4f128e8fe56fec1ed52928654edd5aeaa22f2cacb534df39dc5de000909de7293ef1aa1f6fb1b97c8763830cff2acaf09e2109dd546ddb8c6578eae49af51326d1293526bd65c5b90173f873191cdd07eb77f324db795bf5845ee0f2e9ada0f594e74b46b5f4128d5a94842f50c2486ce8de0b470afc5cc7b2602b3755b37ceefd1e02cd986725dc8d788f56a3c6f4ff90a5861d2019641031388534113d96fe6880fc4c92bfddccd100973088bbccb22eebcc9b73161ee9ef059e7a64a28a3e56b456e4626ab202a4a3991d31dccea6e23bb8b4f79e9819dddf35257de44a9b1c5d2547459507ab64bb1df6bbe48fb58dc1089abe687f04ccc950c69018bef8d19232af224201f6f75345bd7471ef44bc37cfca5be57c2e0563841a68d1cdccb017bdbd4964e81a77b911b305fd5e51e718dca0cfa63ab6077a487c7350079617c5551c24e2f1e75b5326b1899f960a86a6d398b92ccc119f326c2164103afa92af44da78aa436add1920cd900ea14e995a9f23fb4807c0a547b1f8db9b878563438deeaddedc0c48f96f2f3635254d29fe17cd000668384dab7d345222255600873eb3f33c881bdab8c1ba82880426568c1f781f500d98cdf90b838ef2d8ad02de5ae895b112f817930e22556b97365d3d281a4d9b6b00a394f558c60d567faf1f42a9bbd57fd759c4110c73c68eabed3c8bc5804ae7d87907bc072f9dd4bbf006c9f376803531141d30666e74fd7affbf7cb7d0f51627efde8939976f6f56077338c8fb3c8d7c32651e70b6d43793afa78f34ed3f6b2adbbede52d9e543bece4c241cd709bac3abb231ab905443b770928c2bfcc7352d60135268a198ebd361edf092c2337d23d9e332644abd44048b3728598ecae0a94e0dfb6891f515d5abdacd24d9c907ffeccf5872594ad205293e2077b64fbc001ded2797d69e7277c3f88896a4cd6fd53c363969cc0199cbd109bd19c52bed6e0c4967388bccbc122f51a7816ada448be253615afe8a0b3dac712bff3835721c8bd525def8db0370bf8f18de998ed04fd6bd1e81ef00245c164b519b37cd506895df32c151cd914299b67c9f93b896ca5c17ad4352cbac98e7dc6e66eb8f723de159a19333e978d9fc0b9cbca3c6dc586f09e4c5e2ea38da3bb17726a5ddace23493d178807441a75fb9d6ae749de88f1d611ed36b39688ce95e9665ee9fea244ba6801fc1e15ff7349ccd3987e3e3c33dcb6b0fc911a8acdf8054273e1d0532321242695e469a52f1719baf571bbe65330aefc320d2a82dfcc4287caedddb1e95aabc746452faa3bb9e31db2e9d0664e639b2a1eb31add7872f5ea057a64c36aa2c1a9969b25817cb00655c134519fc06900b4c0e243bf72dca5798e46a41d4e56b6ff0524be913bb298f4514bc624cf5358771e5bb2cebc365a1cb9242a3618c79d6293773dd74fc590caaecb23503d420523cd79dcefa789b33f62e28afd70d07f787f98184b5ea2b2eefcc9d7292de6ac9b3ab227b1f553752d33534528e5c618adcd1e40c8d5160a96ee22f61875753aa53c4b7448840ed94700cf4a9caac8e6350028faaa896e081918cdebd1c690cf22932b57066c20820777947e9f0ae764502cbc8b79f62b236e0159c014e817c1155c0e85bc49a9f7b7be3ba3c497062b2ea49d158e7eb1be4896e03b17d0da367332a860e21db0c063a719b340d60f9b173612a5d186f3be1a39f5da73c9268ff49d3c46eb8e6a7a835f03965c587f35bd74aa11be9eebcb247a2904841472cd0f162b6b19c0354b9138839a97bd82eaec42ec4abb52a907304dd98ac6a260749c1cd730f57d25047dd84614cf6cbbe6f7815a762041ad682d33a15ac6c6c61e6be52a31e436ed32ff2e4f9da1f86d4a1fbd2fe00b2ada0205c6c6a0208e5122f05aa5041debf99bd11d76815025abdec39eb78d39a3e20630f00a7a5439048bcf9fcb307715c424ab4909bf9569ca749bce16d616a7bb63646de35f0dd8659a86ed55d60c795860805b5b6d54bae135a4eb58bca62aa9ef62cbeced59bcd040d8f7039dc49baa85c1ba8e426e265f05eedcbb9a7d5637f01fb4cb657794b0a88bd42a40d29d2da4ab41ff71221e25de87c354c2d265b3b70ce8d90ea60b4d637c6272d28ed2fbdf6d8e24750c53e6f0169bdbb0234f73e49b8a611788e43aa0bc8375a3f36d67f65cbe0418baab6e734bcf07c8347a043fe430a51a69e1e0e66995ea5261378343282e898fe6b1c28103cc80e8c23436b2cc20e90a7aed5bb05e116b654e43bd548496ef29bb3c80eee6a253180f42c0f59fabad3759cee2d4d58e5fa72d57679a5b9162955b8d616877da10ffe46038417cae2a2cbdca4406a384f449c76cca9a8efda786f697d57a7aeac8c2d2f304caf34ca218a9bcd6e36b14150e484ce372ec09126d88473b6f8ec3d688c348faeb8b2e1df045524b0a4334f14cbc8588b9c6b82c5edc37e6d8bd29c9429b70fdd5c9ffee136582902179fd4c8d85dc601acb3885bbd661a38013b53cda538665da02b9b3dc05647c5544ed375eae3e921f2f5719b13c4a64b361cfea1a28d11171e144112f3d98759abcdbb213952319323e2934300f95f530e01b4d797a58056f2893f0b76ded543d44a7dd0aba339f63afee2a8ba062530462c0b411cd50f2fef97d18c2154415e69eff2af0a75d078632736e3fba96d6d314131252b5bce055e6aea25f1d01976b643289fa94f1752d035673308a336a0749c663631b7520e9c228c5f28004da3a0777a0984f6b90fed5be4a7c50078610740c61b4de949df8f612ff7f81f4250a45fafdb46fe95a41996fc99a53425fe975c7691f72573a6566f7124034b351e60ae062377dbaf3def1b80322d153013e72bc75763ebe0a3509563e55f7f47a3731b6075c38da603ac59815ea4149f7593410e38b8289e2572773bc2f9a9b42f489af70eb9e638b616d7b878586b2267166f925e5a00920f3a4e209dbeb1d42ffa866af429aaf871d710569c20915e9f58922bacb8a5c2df72d512f4b93375e6f6aebc2c236f838cc978943e99a1ac7bcb3cb21f7ee55084b4aada5b326e429b380271fe2cc3a40578fbe12e1eca3065d0b8baa5db1460c1b3940ec9f9039cbd4812a278dac73b95d14a2ef2c2db32161a6db0e5d2a5f8aa1ee255772c99e5c3c0864e79275b0047514cb38520f7b85c25b739206e08674c40dc5ee3811a5d7d194f2456e638c4742b492661c106eb01d88f207ff0461e1a6d92621c14558ac086c3ae3ed6fd4c562d95aa9234acf3a1775089efded37988bb627b4ea46e9f73f6132a5b14bddec6c8a00410ea0d9d2ac2728f7729e6b143b63331bad12c86d424cb73e09d800188be90ad6c90bcd6d0f368adce73853536bcc6a0476b6b9817279c190a97b446f6350fead3b0b50f0821fdce3630f5ecc1b3fa5152cb3f3e9af287b1262a54a7d24749b30f120af13f6e054166290eaa80de7a4cac1c0db4525a27fea44493cc1e8f6e11e92d41031bd9e4ca8c659be5072d6d12a018ad558d8285319b3df13f939bf30a1811db2fc6e17441d80c72e0446202ffa1e08e1d0a11696854fe505f52ab143c89721accbd68db1f07714106e52b7e09b9390c89aaf878739fb53aa38a1671d008ec9cfbce42a3e93a834424b8a0edf3348a2aa9ca7a18c8b3839a5862eb9ae2a064fc95cf5ef184f2bb727f6cacd37e95676ba17ce0a9b0dfb7e1c563927459db8a84ae696295cf5ea3c28ad2b578cf0322deccddd1f91848454952e4d5cc5e75d470cf1f0fb256251779d7e25b46ee5f2c435cd8579678663aaa51b226964f7e56fbe47d50f008fe6726e47ee7ae7a18803fe05e22ab55d40c933b81a105a7283b79dd2d69b23425a928496b746b2212f3cd68947912d8c9ad5c90552681f16b946f93ff49d22ea459579b8641d9283025b5d16b97c750da9088bd3ff5bbcb653955f476509d89b9e3b6e759916a037bb3f296f2238bb04cec829858e220e1e50cbb67676cf3e93aea31aa5ff732f29338c42c958e0ec64aa6e686030d6788963a1df443288a68076028645baa3a2609e3b1846a3ed23863ec5cd0c831ab188c3d24d644b548527a03be57287acf5a85abdf62264cd43ab22473cb7d0284b6f637974bb9fd5692b1ac9437bf9ab5299b8498a8ec871ecae4462b9b023118aae0f6de24021db0b22c32879f70a381b858c3b5a4be8ad2580e38e9afbbb98e23ee7bb221b4bc860925ca7ab905efa22db645c5ac4236ca1f81a8ce71dc484784090059f1cfdaa1ba0be1470fa366d9336f90b19c60b7a783ce40e28759200f5c570982225fc660345df63d78509ac0912b16fe360ad52c17e859ff102d088d205eea201b8adf8f1471cfd768e6cd85b7afa63451c7fe959f7a2d126e7f132149459cfc6e07b6132394bd9ac3d3af6efd0cb9c95f653b8a99eb30c271440f3d2f5a8005fc8adf021c18aed3d7b044a5336623f5b24d04ab3b1a769c5f610e4f706b290ce45c6186a9a1272001380498b92b19987ddefaecd3da19dac10e2e4e46163070c6b4d6be70e15f36cbf995093a669363def9da42584220fab19f0036f61417790e0bc3f1471e44f0a825f7ccebd0ea3b0b93686bfd0ec2394db1d20cb0066b806c46a502ffd9e0bca02e49346f28b8b685813d06653091c9c43af03ea484af619ace4b8e1ca1b8ea0cb73bc1ea5b301520783a782123476d1d988ade45facce0e2d5f8b736e75f7e41be7455a9d24445a0f21663118531ff9f83d131c595ba8d0e189aa52a17045b75899dfbb056eb9224e29f9bb5267f8dba62290b278e246aa290f8efa034ab7ca1c3ed9939bfb9ca5d792caca6eb5a5b5b2749e595d7a90cdef08bc1f289d11b3bca364433faae74dfe558c86c49b57d9c081492dab171cc50c5b88b5101a7a907c9f50655795f0a55f7291461f5077ca0080153637e7bd5558474e9752b7f482bd4172fc7ce3bed897f974d92e5d84c0dcce4954c63fdc4e2617929ca71c8c49a1a520ac80be83604725e176c8d7c8cd5c01295447494768a3ef7c5ceec643ef5151e97d68b3a771ecf5f755adb0915b4d5dbe210fe2829a053daca06715d546dc466fd2df5adb891b16d43d18645cdbf12c3c697ae8a0451003dd7bb32b7641a6164a0373758d7ab64c1db16ec1b0904cb290f78067c9e51e34a02f4fc4024beaca7714b5400e13098fb976e51a7aa8e9ca6359cb26e86efffaa9691bd977f53e0f4b682c11a7314c6f6e228dc8f378a8d1f77940dc8920e70bdacf433d98d6d4763ea7b31172be4294c6ba89221c7bae12e9fae6cc9f05fd8cada86c750e928c3347f3f973696d08d24814c20c84778b91f68f3e71ba78810faa3402d766c6a03ad284871515e7823d22d67322c672bd4b7c99b65beb3d39578498c5f0ce0094d01ee34719652cb6b73fe62702ec0121251e06cd4ede35b2e7af26dd5dbf0f7ba715a92223f5e613a20e6f81a8a2c1c74ed7bd5c7ccfd049621cc0666ac61fbc003a35943342c45bbf6de1f0c97087a7c46bdb1edd51b4d6fdd6c3f201eb269d933a6b3d7f2fea1f889179846bb57b4479b470a47b7684e6f2d90a69ee5f20a881d84a936ef2e0868ea882ae7e5cd69d38d603ed5640bc9489a88b7811bebb7be408de7048a032dd8ddb94954d1170202dc82fbedff85aef25c49baf8e6b0789e234ab0926a97d68f2a56054a2036057d717a973d9b23b4ea8fcf32432177777a1aebbd9f17502376c87cc042a565971dfbcc12aaacf9349081831885c1d83a5a3d6476da5b27b1b167b5345b551c5994f4508c4ae394b498e046e45604912b9f1adf8553996fc0f642382b83c6e173567cb3ff05fc06d35810c6a155a96fafe02a29d31aa6803a79615df0353ab90cd94d0ee8654e5483ba66d91950208af068d20a17a130847783da02775a96f2666b805296c83ca2ae39bae333ef014074a333d88e9d03a31911ba23acc4c889dbc09e82fc4de4281da310ded9443e437514413718287863408032a27eca60e8aa77e6d1e55c36aa706879b168414b513a06951f49ccd068e8380efbf24d3536c035f95b8f50b090d425cf2525e79d4ab247e2352af52ab35ca984a37aa7be3b26812f514d0300b00b85884a300ecc7279925259409239e8db8254cddd8449fb21eebb2434b9f745a480922918b61dbeac8ad6a65aeeb72c468d3080d259cdd6a2250a620b339585c722906379680d1e70af7cabd38c6ac221de88cc7e6de51dec0679b52f00fd0ede4d8490495595498b057f4347c01578c9fe34c61019b652ee3876034011f24b774d18c26b61b1739ce5ab2696896bfca65c237172e9c42a82c873038491a70cdf639a39b6a00d8b64d8c0b8cee2e3dc5e0a62926b8f9f95237df07fe9ede5cbc17d2642ce3de8d3e4f177149578c863d7ef9c01b54f986a07f7103645da3ff8701ed1979cb22e3ebc9b88fb96d7d5446268d33478dd17e85f9d26e558b02a588ce0e47ad7b07c4a41847037748667441f4363482dd0adbc2ffbe9fa6e9b4f294e1dc7afa872278fb794d29930bb9130ed29e1f0e22e9488dd81213d140ce8ee920dcab2e1ff8c84f5b925189d1ffbaf3a56ca12e598d1c49913f7813b61b23375a6fe3c5240d81e906570d46136a2eacbbf0560bc3b4dc2d0b7cf85f95a33f43ee40bbd8957698d81516806ad08f1180c4fc7f5cea0f6846e35a71b37ab8990a793e32aa8006f069d2ef7e31fcfac1bf2a25e66ef7344506badb7070b6aff3625eefbea706f699193444e1fdaa1f85138d31ea1652c6e679797428543a77b9ae39fe43a9d59766f41e33625400889c6273764e857a3477eb177b80f3140920e8ae4da3ffd049b0f481055b18c319b7a7b145aebd6c4e655670bbc3753dd4e6c8ab9faed723eec6f2d0ee4c1757da5028d50d3ebf9b254b6cb0c8e7e7a12eabf2c7835d5abf1c0e97f16cde4c013d8dabb5fad98cb4a6062561a8ff0a0b7a410c8db14bc4f63fc8b2fc0a65dc832f29a1f26d6aee2ed877c427d942226f6f6486c59e6dff632af20069bfcf32102a6bff7af03c7a0a94aad4fedb4a6cd3d57f28cc19f79c92d471481da513a7e1870ce69cc4e02fc83709fd3b38ab73e1a0b2109e6323950a5ef1b63c40552c1c61b41b92ea3c92b9f42b23995f5196efa0d2c05d968a81ba34c336694b9f8b35dd0ea1c886e9358efdf74fc1705f284e09b4c2a31f20b0acf09c78498fb30bb8a55df76795162b6659c2809374f65407ec278c7ca39b26c3c01ab242549fc1041fe5da8ae39d66a93953247e9323840a779d48be7a5fe18a61bcb85b03c0ba5c55b6d032aebdb6c6e178da4135aa77c0e69d93ea3087c94a7efb893ab1a41de0bd7d0cb82ef0adfc05689fd26e3fbcdc22d0e00fe69fdfa0931f5ec276d96906c805fe0a80d2e49e702e977b3ea238bfc2e79d5adfe4928fda0554da83a80555d110e9f3cf39b2e3c87b6cf36a8243ba16e7693459986fd9cf0a7d7c672441bb5595b96497d6f536db5d3995eb4ba03b60ed9888be3f63acf25f67c73b1ee07f7c171176f16206223d88730dcf44f1ff60c522472e1f309d0f39d75148132e08d09aa273fde42fe36b5b3aba6bac007205fa614a6319824a013c23639e23faaf303a34c222965a61d08c5b428cf72d2e388375491f7d502810eea9b7f9a3ecab88a135854e0ab82020f188eb686d001d8ab4607540d83fc3c8b8775a118d4cd8f70517786656b28594755a57d6041fd017661fcc875e5d9fb6f6ce2c200a38c678ee111e890d5b6c9939421d7145e4708f57e1d6f8c6da4a1ca23a566614a98468a65ab7192423179d6dd03cfd20d541c81b054963a269168f425f83eea9f9329cc40aa4d29ebed8c6410c3765f3a1c2cc5b808638fc2eaf3da4b019f03327ce934b2f346fb2732e9834617977dbd9a369f34729a85a7955d1b53e940fa003b2d7498dbef5c6ee184babc358bfd44ca49d3a00fb25cbe2fbe5414c7cc9263faf87acf3b8efd71b4a4f69031d75d808db7ccd9764b5a81700e2b5f89568d85f1841f25cbbf47f1a3b385572ed7a454e8029bb98f19034b16201c6257c47d9ceab865502792c5102b3cb620f7db0da5b6ab1875fa8f7a2eaabc05883bb8867da1b35b9b4268aa24ea402c1688ebb11c7e5ea9389c297faf9eaab68775cc90c4b7fd51994471d311280a30fc9c53299e5cf10955365e9b6e16f10f37ad7849058c7d1fd8bb753c51b516c3a528083fda50f85d2b863f6f9ee072cc19438e5987ed68bf324443738f2b6a987667353622907773cf9fb9c9e0584f6b1828945542d3e54b4472c577e1681b4f7578fe95ee3e1647fb855a7d9d2e1b49ca85c889cabe12c517e3eeca674bcbf9c06b32cc8ebaa8476dfd258db2fb2c4bf4d1c0db8941fb94da9ad7d0ac58e11362cfddf451a90e9a486b64ea3a3835483aba9d837a5898ff34fc855092d58d344eb2f86b16e0ff994db2807e50f2367fefa377e8eb22532b4a47e686db896a2e129a0508eafa7c518643b25a6a18e16822415ad5290d1ff8dad1141cddea3f47d91ecdc5a1013740258b00faaa17d868f4a6da2594c78d09f8df8ba458ae82333c221711c4cbd781df24e04ede7a0a60272b8444ab448bba3ad7e3da8ea0483aa385b29572c98badd30b1c13a0d24957e56b18170dba44d9eda02fc832fae431ce90236336d584065663aeb7ed804d97c707e4b2573aba6f4d54b7087139cdc349047acc09f266cbdaa64ea6c9586ff4a0ddd0b8d2664c80126c68410b4e0f092406c9bf50fd7050559507e384a7177d59a2f8f623fa841156d1d079a13221a3f922709af825ec38acc88be02447e6a516fb10aaff25a3ac255939095d8a20a6fc5719447d96e05a114828c6ea2113436173a6b817eba4e807a24858350b23881c34244b5248d74cd09c06b9456b0adcb48395ec6dfda86239068b659ad19f9dfd61448b844b7a3f590c8b1634e20e4d881fc707c08a58f31fbf657d337b2b52b630170d07ba3692ff702255f6d3b34e4ebb2df7a4816e7a06768fc6834ec33c5bf995994304996928f580fc5ad09c1692d40dc4882a46e0ac9c71c54eed238e600da91d281b82e72e05dce7a48bac2daa9757be998410e6201acb618b3b71eaa9d7812d6723c44e84418ed6c6eb5c1a95d2f60be1cd614d4ceb21fe71e986f32daff27e1fac9493b99f7b86902f5115619570fc4b216655e5eb63e97e7102dcd69357aca3068ae04b984f28984672217b7186ac3871c7e88d8302e32d67f50932681dd8b91a8b7fdd25e8013e82e7ef8d024972ef7169148d04b51aeee21574815a00929742952f25e47a2c60424e55d290b6abbfc840fed1b868f342d0072f850903533bf7f09d348b0c00595046703362a8875275246b2d195616040e78215ba38e88c5d7da472f0010509c218387c48d34dea6df13f0357c05684ba0342d24bb821f8f763c4459d711f8ad86860d6b73828263d51bb29810e4b1d645cfb2c9b80834d000b5843ec24c078dd075bbd8ca6c4647ac91a60be451806301b69788350848ec2cd72390d582084d063ff1175bf6748e2c6d63b3cf7977e87c69477686b86df1b7ed1bf30bfd6bf0c3565a607eba598cd69fa6599704f4ce475a222665034cca10b9e2fdb5ab97c8bf82b26063bdb76023bfcdd01263e0fa80ad0362e62ea8a69bed2f809fb426ea27deeb857b359286010995c8887287dca6042f927757f559ddfb45beea62e2c42f282ecb0a8112ec6605c34c6360e179366eb41383eecd90e2e4cc09ac341220b89c4814249103c8241e05a1818d7f5bcfe1ef4024be0ee85322e9c0a77d14c2b17313a64422a5393c74f641bf7cca83c2dee22fefb074e4c430fdfadcc0cdc93aa19ba68253c2189bb281b31472876d674be408d343d69c3229c7aa20b3289d4edc4bacd6c20f9395df38e6549477ff33d8fd1e0b42f6aca35803ceb5f5fbe287f92d1f131a394bf7c21dfd0ff8a304f821e586f35d58e68ad67610049423c812e1c2d86764b7f1f230c44d01d8c4ea7722c789d11524d4fd224891aa4f5b14a150ffad97e13360e262e72880da17468a49adaae9137d24a154e5cb48e0e641b5f7fa56b2962b34c911df3b2e8626d83d06ab1b0244b5fe452e325b059f00286e79abcb2c128c0f7377995975969f44076aae5ded06fa9869a5cf44f401cf0caa3b5c9cb39e584b59d120a86563ba63250960ad327b234d1f83545a2e14485a2d7d9d8254eca9f7d3edadcfc09a7c678780830747ef7a31ab11c6048ed12c436260bfef9101ca279a889553dba5672d12d6e001ddcdb8a236eba255c06abad803f9c8fe49d61385c39739326d2b91a659ad0ac53d1ee16882e0b06b10ccca2f555ec5c1a64df8887301a845722ac101a847f7f5cc847a51542437572f8f76ee4e3043f5aca3ff23d6d7aac3837bfd6267828c380b881d30ca1b655b97bc84f4e7e17ef3f18ca96b0de8202ae4fb3a61a3daefb9924927376d5594dd87145e39e17a2f03f2aba2503a38e5845773f93fcc948c95ab6904d91229766b9f51391b1f42efe9b9c4eaff8fcf7a6d7d04149561b66902714398118b839bba8bde16d4c90b069e6bcb36aeb3ecb91ddee123f1ff46c45ccc67a23679ef7cdf3b3e2ed5904bbf2acd9acb5bb486b26195ab3af2f4bf7b8e7b2a6d1892f42c54cd24475045ff9ccaa96eefa4fca811289c7f6239e57b7af015effaac7077604c4aaffb7cc00acc8814af823c02be6fbe2027739f666e052223a8e89028d2ec04b51d8d4eff883cbcb88b118bfd0819245552e096e179c8d1e1a31dbfbee5277ef392e8cbbd7ea4ce5ef61d582636983cd2605ef12595bf9e2a208e505d16111880459c8b3940bd1089d4bd507f10fcd46d11e40a2b891c0977161a0d68bfe23363379f77efbc9c244e9b1542dfec0aabe4643162c2f067ed62ae0147d5b9791f8bb1672f1f049a8039bbf7a4d963fc1e2f97c807d2d620f5678d0ecf920b5101a723e7fa1e8221859ecf33971c6504406864489fd82bb4139ce1038e596f01df243cbb26f0b5a3e1b7cdb40824d070aca2bac0c7411c799dedf62198bf7bdf431c20accf56b30794c6d4e775618689074e0a3981e852b1202fae815ba07748a4053d2d2c3fdbc059ba6ce2b3566764ec8f23280fc65985a5ba5a6c360f0dceca548b05a36f34291b00cfa289722d859efa301a09d5079134654350792f087aa5f5145d331be4d07e266e371467e6292c81dd8a56fd51c0d61e5740e7e6ed687b9b73559c120d5171774d747ced3bb5c8b2e9c0d3ebd42bb46649d28acc8ce7567b06965268226126c84820100fdc9ad76460f803db87a3da2f2f5efed98248761a75e99f3fbcbde2296a9600ccbed4f0bec46c6d271336d2b46f614cb7e59dc97366c61411f2523fec624d15020e4adff23e125db04bb2e75f267a2d0555c13743e635b58187325248c3ad86bd0cae4c3361429706911488347f0fe5d4c08202eee3ac7c334293d9abf459d6af74ccc9da27048ca7d3b3d83a30d6710153c180ac05338335682d6e60f57c9771e0442161cc996bd085a4dd8c048f2515911c41955e1ea914c3677076b3a196f4402bc488b9b158efb66016e3022c6f35995aa8cd1511c36dc5263e4b4f085f12bc985286f10497cda606154bf5352b098126ceaaebed91fdee17313cd0cf72a0922a350e42f71c96f026c70e54b25c0fd6d8036fcc2bd0259d7499093589146703d0cd80d64ad6adc413699849073637ace001435d9402e818edf47bba8188f76e67e5f3e76da12e0e02cbbc708d979ab812ac8b29d0026dbe557ddb70bbbfff5c34c33061c016ce8901d3ee9b1491ec6e8ad777ea2600c6d78d91cafa76ad8eedca23c7531df62a2844ef02184ecfb4bc47f381f3b51b5764cf359bfc40cf23a58f8469e67cb0a4fe063614f73e05320dee47ac4f6e81a479d183d2983b375ccf0773adfb6f97d42d5053b29e05766e62c5ccca4231674549a532c156b4bbf497f2aaffc36c8653b7ba067659db9ed86e0168fe1085afd14312b4ecaa0757b20fad4fe0b209a850a74b3746ee01b9ea8a7f50d3b1b8fa49c0371bce6572f5f48f7d63829d6e7b69c18f4dccc4034eceef2af4727cc30fd3fd6160237371ed0829f6845d536a9fc3d57d594b2d66665c464ba5bf0881d481e20ae9d6c566c95a58cc58410e1780f3ef55304367c74789f92270fb34d99e43fc01b01dc23e619deeb1225e5aa9e143e14282fc52dee3fc226926c1b745e049a48d0fbb23ee3c6a724cd34981942b263b48123af22e4a58686e5a6eab2ed766881ddf17ab0108506e27ce7d17f556433c15f9fa621625a2feb2ddcb89067645757c93ac2c421b65d4e7c8f811356281d3c11be32d546c1811f7e00618f44c0785116b74245228751cb1c79080607e12d8067d8e11d3f35d3cc7cfe90f3367558998122fbbb36ae049a68ffb49d7de5d73e8d9775b29b40c4350deb4039acde8211e752e07db6aa9a0e02303f4e7121518db4650e7efb8fbb11a02c2160d01fb2b6e7e50c9309813d9812f5b485ec8f9b37b3f4202c5b51533cd12af8bd98eb136698548fcbfba445ede813db5250fb3ffe97755234287e5b9dc03bb5c1203be66951248784c11c0b1abae6c1a093c05ecf4e07e84e7ac68122b77a4dfd898bbb3c77dd36e219ce3d1fd4c4b96c52ae840e5092d18dbc13f4f47f2c3b81355520d7d52f0108a87c8212de0aa83d1792d60695dde3ee55385d9b42f32a00a8293717140870002f2c73daca32e62e54b90cf57f6db146e871a54112e9dd37a5d7d7564ac42662af454fbf97c8b530e9d2ebe84dc2dcfcc32a23d832959d0e1373c8764ee0b7ba083b5c715c1605024f70c3df14541b06012210d1a7f0097d078ad5b5d4e3e9b94c169e2f4b2b6d5c304c81114fbdbfbcfe364fffe62005c542d41eec1986f2ded8c115302e4a0751a97c3fe716ad85e0c1fe0cf48c0bc9b6b7dc16e941a3a9e0696aeefe03772804d42727b9c312401fb42855d918d50068407b2ab4559a21841be3eca25bcce9f008468f04fff145ff25b70e23205459487c9b486e1960211b808ceaa321ef65b79b4a315f8c9c5d3725390d69766154270a51fc18e856a2a660afa40baceb2a11534afbbe4807d1588f0be2730ffe949062bf792d7bab536f9048751369dca90d519f70c04aba49abd2cfface7ea0c266644bd6663b32237c9687f4e5a8ae8dd354715775505ba26fbb793dcd02858537df0f94ca6385f396d1f40c8805453b289c3f3604504287e6769850b971999f4a8ebe82654ca60019d1ad6eff789d9f4da9e22082047ed35ed3e2c7ecf62270013c9b8a9315826203dcf1b6b5c90c60bc48981c18bce4dcc733b64ada4ad9473651b391dc92035cbb37147352b95f28178bb410d610daad45576bdb88e9fc4527c51a741e615aadc4210c49242b61692a6ac149fd1ba892a4137f54f7b1e4e333dbce288b53e7fa6efcc499da8ac7b507a400e8d6b3a62cc9971297beb0e37e57a784faeb0a7e9196ed884ad3af81785a0dab261fff1dddf925a27cc293b6db661123fa5b1b4e0b4d8a9c99d8157edf967673bf1da5b3a6a9b8aa964854591ed30172cc65531646ff2d00d31e8e4ac75ac29ba4d11fb97a66e29c6e79596d291c200d494b66ee93e697f52dc2c2e01ebfa916e11192ff9f024211129f602b4b7b6b642d0c89ed2e288da8ca2e3e316a4e641a3447c3d3ea9b5bbe859885ea31687ec5dbecf2af3e9f60172680b4d7b6c4c7f8251f675741e0cb3876265bc4551c21c65a62a16a3e95318c19a598b3bd120c51ff97dba32194314966bc309c38e30e691b2d4e66354089ddb56e6d6dca474ef400c0bd219e613bb471d28b7ce9716ac35b7308d33d699a953fe6347499937b0e5ce35522dcc15a526ad38d6eff2784a978cd6f14a21f0ba3d828b742203b89f417c9943192d6a60416cc6e7a0365221ebdf0b3c8b5f7c8a23e414889b024ebbefc035fd48544d8d6ac6275cf96b9ed5b6e56bca167e7a3e0b9d7bd01fa640901a7b249a9aab3cb4fdd7ea8eec8fa45586723bb089e6ce6bbb88dc1a22f123f031c4ae144668a871f82267df68ae336cc6c3eaaded4f0989cc57009521e24819d576534b604284c5a7866765cdbe60d90983e0500e3498b1709f033b69ff82b518d760ba4096a5a1387ff0bd08e328ab429f861ef87ad8d4b8adb51211bc885647b827508d78a6f1be964e276b79430f7ecf9897fc6aecc692d6a0ba6243a27d2599c567a4a9ba04c74d4025a97f5871fa8bccc95e48e9b8368df8d78541b914ecddaef30e1aa96561b5bad669f4a401b9443773e1f58ddf227ecd87f9642d0ebb7606fa8d95902cdab0403c8f530bfea03cb719762cca8b434a14eec227e1bea54a1a6353d94501f4e0bbd367112383f925f119d79921f1055c401d7a5eda8ffdaac52fa80086e07cbf051148bda9996e1411c800c53b8b6f7c22021ce96b1d239f1ea9f486b51e75ecb175f079002427c1256a736adc1bce2902939b6d2be254b166510ad5768c7164fb1232cee7f9977c55663865fd5c60af2a7923d28f9906e8b93b0db58c70a78d8ad6ada223c9a00b4e5db56366bc05d431208f736756865d52f990c4e03b3317cdfc8c1944ed3f866cfe81256a062a307fbd488b0f5a70c989ba62707a93f377e21a0bc2de5fb501d791bf381dd452105aeae3ba11d09aec0bbf8fb0023c60757861484255230312bfc354ccb2e9b57f7534398f08c2c31f1fbbb18037558a59086ca87b4bb1f929751bbe9a41c60431974d2d516ca8e2135c56745cb1294564db6f0999f4923b8ea6721ac81ed25690d48040788ec237124cd5aeeeba44029f5d40b5a6203432f8917521ef55b8ef9c6f48e90ef014067211a3a9b698c0cfdb3c86b2b409f6aae197af7d85f4962503fb3eee39e39da15ab3fef4e8d911d21daba6161593210fb4b81dc64d31e40f1fb5f7c46648f13032b66cfde57c72764ad6a81e13b9bc562b7ae43d683e8c6a546acdd6c56c9cf843b1f8f9d0ef04218e8ee6a2512cda3017264f22c75b4d528d9e383b254e36ab00d5eb09e19f2bab193fec74019e0e6da7d1fce63d33b40ee41a60d26f0e198cff09b0762e1721929bccdded58808821e51db6bc72c0eed42124f2f882f7b7ac36d4d51faf7193ce6332e96b828cb7e4c8eb450459a5e971c52bfc41ed0ec0722110961e94028e9c5f34fb97a2ee808a60d0b34975faea9bd065638457286993b209a4fde7b4bb4020164d3d30fc260934616690f8e434355ec601f7ee975b37928c76374a715df331c7ca1b156863ec30ba4ef08e9ba9abd2a7dbd063fe25c88b4712d933d5be126f7fbb177d6b897a80bc2e8bc69588593e7cd55104a8e95b44fe15728e9c5451e80cb6373574779111bbac73655bad41488bd5de2d47b1d9500ba39e709464f821b3962115939a9a541bb65623cbd8fcf573cf5af97d9248c9dc5cc3c0d05b1536694e8e4a9a4c658f255058c9e7f0ed035944881f73a2f26a28b9097ebfa2ade41dc41c79975c0853e766fc66515de179b4953d5a76a226f2de812e4bfb92e212ec9f3e61e03395176c12a63f3fac713f3417a825a7a5801f66f3fa9aec09476ce81bf27c82552d2eafd207be0119ab88ad9176c242fb7945c8e7ae7f7d8dc71cf999ea9bad90c0defd00dad40b1e4c3e51588fb4028d16eb9544c7f26d9a0898b8996da52993505bc76016107567b3b985571b773487284a95ae3cf8743b8e6f77bf76dd984a35c421a3f1baebdc115d0831da08e497a4623a4fc16d4c9dbedf34f502d576b815e65421282ac1430bf5c1bbd698f47046334328217394e43434c4c6240664d74e25b0c9c0a9da2290a1bad37b5e677bf237c9945c64c40bf0553156c32a090403bb58ed4eee0b6159bd9d1b295999f9cd73a7ebb2e3e8082aa6181a7ab0da5a3c61050cfb082639f709f2c742a3e93c22723bf03b2d8a530ca86d3c34f87007d88f1206f0521ba0984f65d05aa1a16fbc7616fe44e37222a40421e8e29d8a676032527c70d6fceb38a2e1ec9eaffa525eeefe2f59991df4ed284b890feaea95737bc9276830be85566dfbebd20eb5d90c67e2286bfc3bbf56299c754a12828ce6ca6d8114bd47d370f2e2da5ab88e80ec8edc2bba214847a38bcf572c297e18a9934a9e4f4ba128203d4c783f073e7044fa24d074050f96a859c8ff61fe091039e2d0b937e0d97738dc63a06ecb1e5f3e90d56d73e6878b09eaa4c0dd8a272001369be2a57575699b1bf4787fb597b611b38027af4360c0b522688cdd7ee2ed3dd132a496d1eb2fba7d1dec09d2947e4a341de608ceaf6f4dfe0010c89c7b4985991f75b2df978dc295d27afeca94e44cf691db29a835ce0a1485a03975c882b6fe1cf4b0adb6dc58bdbe63a2c608a38b645633cfbeb8a1231116f63dd541ebc5b3875b53381104f1ebfe3dadc056502cb201143889be15f2ca30b4536f3a8874173c45a77f44e412d1d1c34245d310fd6fcbf6d1a91e890f881eee40b3292856b788fee1eaf105d5865bcd122f17029c173ecf6585a6977045cfea345b3a364ade36cbac324cbc08e80b48103852f03f6810c3ff81f7004c47b2751596f14cbc59a11cb856a1e963bc983a7b4be73658349d1100c969104679870334d3086c542cfbb28aed027bb5a9673e36effea050bd233a88ce3f1ba47c7eb0808dcc4345d6c505636b014af0010e336910064d22c62b46a77aaabc0fc6a397fad2aba25e814ce95a21fc04d2a006a871aba61a4506e1f10ceeaaf602c46e0b02da0772b24f30d936e53eb1df90bb5824e1bb821aef43e68665f24556b709e8685c04e8c21a6b46b987343f1ce61d9d4a93fcfcce036a488de36ef3c7589fc76b3b19257687caac8b1023e02102bd7551e2d22562e503b72fd2ad7505d401546b6e0bc70bcdb47316decba63d30010d744afa1a8c2ed53308844e31a71046708d36ba8c26e74354750fc157a86b90e41e083846dfe5e131bd3b584ef7ca3bc54a0c89b676ad3b5dd0b1f8a9816f16c0562ab70866952db822023f6ed0fca31002ebb31919333edf4b04819bbb050772ef167ec95f39f5e41ca434ccb81720222b40a29044204adb9d6c0f329166946d9bd4491250f51e7d5a8e458788bf1d86d18150357493af57efdbd53f67221c540583131e1dadda219048bbd21fb429485157f8a0259dd91e3dd0ccc4395d324e2f5d4d89c1997a15004528ddcbf709b3abd76f959fdb1edb7efc7bc9c31ffa7107f9741c579d53e4047018c75429f71d6b3687690e9fd034b460208cf17785de4c52e100d7dbb7d5b540df2da01c6b49489034a15152f999d41562d5144141495bb5c3bbf912c78ff0e7854928734248d3dd02010d198112d149a855b6bf9c49c0c70c917da4818ee0e4d266c49f514e5f0397455056eaa048a0e57205c554d3ac998a219d278638a6e7ce194272fd4f2e4f925d41c5374e30b5be2f83d41f29a6435083e2200020a8010021af2b4fdc79d2696c05d7e983dcc4054deec8af45ece8f557eb546b6b7594288b44d08d95bee1d190f630e0f0e3f649ef8a5410c933d262a76b02dbba79c734e8953dfa820f907567697b7d10a67eadd1191d8b0953fb35dbed5ae29657cbb2847310cc3b22ccbb895a692652635b9dd393d9cecaabbd46a2dc58e61a37bd204abbd1e85655725e312291fd8790dcb7786017137e0b868431f396787e69944762dcb4e699675c70c7b165196477ec9415cb26c2394523cb0d8b928df0fc2a17ca6f3928f78c9218f9c43cff1e01a6729b30c87f4753b7dc9a3b7c43a5d1e9debaedb2ecdd493a1543558e51c72f46e12de49cff92189f28ecc452ce0fd06e1b9f13eaf87bdcb4b314f4fcea8e7753853c773f69d06b1a64564119c346791b1df1d1c8c5289771ac47c8ce6608dc00f18c5c162df71cca65d39c07645899d891cdac8d81154f0aa1d86d51e7520268949a2d07d489f22580128b2c1089d1d292466ae1bf5d8c16301f2484cd2f9a5c128b4d5221e50844e14c2e411285c3a54c9610b7391e99a55494af4ad1194e1032c51096ec297294a39dc91b3e7a493624830a0dcd5c66a336d89fb910e0d459a0f0302424d22341a8d28f52280933dab34c3ba768f3a3b8f288f1db362d986a57c71f48e3a7ab5cc519a67e76c7b1179499fde3c1d376b58fa6457be8234d8ef2ab7912896af4cab99ac4222a1e2e60c4ba00691c828bc99993a1a715dc78d469b7c45181969e2b66ddc5da28b5e43650d879208c77175ca7019c665ef3c1c72e4c999a964978c8a32f275f99a32f146fa4822f2470e913e72891bd05b47f2255f253870d165c69b3a65e8cd1fd0d2b8eea67c82023d80f9f9550146afef31c23de23c5982fd118be250e6b9e1b969ed0ad16eaf90fa1325d81fb128de3ccef8e38d761eb2e269eb94b9f126de68f85da38ffd3ce479ae761af5b4fa1f6b9a86d668ab35768665b3b7cddab6aaacc691bd3dc8511070b2bbda73caa9b2a89edcd95a2726966199122ea85ddc102785e8e2c8a044c994c94410331428c94d39ac34ffca998fa4b687a60c563459581d6a1756d419edb833706dc8455435234ddc19365336289258115694c201a68629a5945d7bb59b9c111c58f9903322e3a4a489390ce370c0198936883218c6ed005b8209c926714638239c11130c51bc29c18830228c28f7e591c933bb4dd0795e97aa41d69d662cbb336354c90f42d898c148d9e580eae6890c48d7e86bb45db165ec8d3471bcc146d9fc764ac9f17de90324c27457bd0bde6f1b4781702a9478593300d0e048a2b6ae7b44c99735239abaabb2a328238f9832cacd9395632bc7992220aa5aadd09442478460e4506e796220451c902d8f80003990f6d93a65848b2ee194dd73528a619916354df6d426a51896659a56477134923d4799a6d53a1a6d1bd775b267b7715cd7791e8954b2d15ad9d396ac35994ea7ef43a5622a257ba6529d8987b3dde444d5b5b75d85d24d94948ed2555cad64cf5525619c3c9d98d8afd4e232a5c54a89d4c2ba74c1025b4cb875f9d28ac1b746cd65d77c529ac52c933db34a72398d732dbaf98a34a61c5da7717bf06e4ee30680463ed6c3695c1f9e793864769dcb3acdc3c9d73c1c32db9c8b95d63a5bd64ae2e1dd9422ba46110c4753645477ef3ba1528fcf2144bb4e1ebf8347bb5428912665a5b2d2a2c4f278e96372e2081448a26817ebb1e531c6a30ca1487397c03c5e5ed12e1d625a8f9745edc2331e77787c1389342e8f328f338fef26da0580479ac7b713edaa79acf1f886a25d361e6f3cf2f0f8aea25daec71e1e7d78b479cc8f341e6f1e033081a607a28c8d760431052f98348833073e60d13239926491640a8142ac59801552c8f11d45cb1431455391e33b05b16627ae204720453d2416f5125c883572c810e953854fbca441ac914d3461831c2f97302299f8116b64146ac8f10aa02555482534945cb180969140008832525e2163724c99d98303c417206be6123f14b164c9101f2aa8f8f9f981020a26644c9f09222132a63f5310597d2157bca076ff20fa90fb9206e08646b6f1a107171018e7078cf170c3468d1a1a00ccc80cc90cd518ca5c7698815b313ac0bc04c9d408d2ae8c182d2c10c60b17482e921624d57496528b159555cacffd69f919bd9878bd98c8fd4d120921ea5fe635eecc3952e779365ee3de38c9c321738d73a58ee4d5bc64bb9237f31a1700b71e0e9965ced9cee4e1d4d09c8b277a3acd96a74a72b94d1721b4236b24510864caf4d05c222828a8b3408204492ff9a1e205c5cf0f15af171401b8a1916d7ce8e1ce9fc9c4026c4e62050f376cd4a8a101c08ccc3d971d66e0568c0e302f43324335864841414125244890d81f2a7e7ea8c87dd30b8ad70b8adcbf9ff7727c61cea53a9437e3f8eef0948743667ccea44b79ad9b9c74261eccf1d5e1272fe74e3a9587d3ba2ae65c44a12828b3254a25dd520642c3f5d0f68b87213e92282828682e81a4b3f8e925489074163f3f4b6ed8a851430380199922761e858422162e3bccc0ad181d605e5ed8856b601a98078cba434141412648b24082e4e467c9cf4f2fc97d8ce2b978cb7d716ed5a57831de72657ce5e190b9e59c4ab7f2585779f1960be32b1e0e995d9c5be95a7838acb7f070c80c9e8b2c948565b664a92493f4f1e99f268c749024423297904448902cb1c30cdc8ad101e605c890585434e4ca88d1c20261bc70f1f3a798ce526ab1a2b24a19ba432d43ab20491414a482040992b944eeb7b4f0525ebaab73ef583c9697ee7f0f87cca573b7bbd7e21777d75bbd74558e53cee1aec5c369f1969573d185bab8cc962e9544f2b2b451f4d04fd0eb2748891219315a58208c172e7c9a70e1d3e2d384e92ca5162b2aab14242e5c5af0c52ca49f07bd82825c5a3aec9d6e2fea9c4bd7e2a96e2fca5dceb9e85cbc93bbf070c86c82babda9d3b9171d0c0fe7e4303c1c12a420385b8295f4dda6b38ede2e4ba00e923d8444c6f47b808086ce526ab1a2b24a311285112351905054f6c424853a05bda5e3b651d5b21e6a24389c540cb970e1752f3c1c3273e760742fbced30c00e86a79dbbf5a08743e6ec1cd8b13c9ced2c0f478ce1c588315bc6a824ec5cee993d24632ce98adc4751d9139314ea24816415124802ad405631ca1f9e3d3305389c54581cce2972bfd4d3f9c596bd3b914c28da8906bb89f9339968308a9657c89a9982d8738a1544987e28cd90fb303c204619c393c81393c88834894498fe28b79844702404d000e3858b1c415b27cb89961cdb85db75738ced3acbd6825be954bc1529a5846255a69393c987caf1b5c676a162bb3e93d3894965514a29a4d82e2fb6ab8bede262bbb6d8ae516c578dedd262bbb218db05e6780e64b1b458511981a45aab6ccc0a8c6a533b47b52c9b93524a299dd7ce4d6d4e0cc3302c3b12726e68b56b46c38882903798814f8761b4fbc14250c2dad5d4dee2ee3524f60e1e7008a2af18e6e1f868b083261559e62cffd032869350296384c121d5994479664b841a6cda5e3d47af0f20ed9ad8a710264b807d2a21baa48fe9d85492b1cf249186740c873a93685e203b6fb0f36124f2217ba60c47d4f5c81244579704516ed3ad6788ace6ce11d5a1ee9288ae4a8608f6fb0cef47fbed31bab09782a68cc5a5925029a8b4a42494fbd43bf6b625acd5a17675af06693d4394b1f68245fe4c2391f0d4b2e9dac9eadb5ba4da006b6d28d260b15aab52fd2098698bd6212153ae4353a67b4d5677af219c6e888d915aad8d59351256234672f650a67b79409832864b3e4d742f199bd4bd66f7ea6ed889a094c3da51a1ee039d0b72ef00a9731205d1af1708a9424ca2bc0a8266cf304abd1c497ab6ecbad7abd43ca43625c1454b7be409fab80e98316a4716abedd221f7a081cdb4aeb60b26a37254926d97f6d1e755edda3eafd22eef73665c51572bca5a1595d7dd2270b8cce5b78806477801f3b3b65ac33a20a519164404ca14dba8a3175adb153383546c6c965c217bf4e81a7d497b6c9c34e11e5209d002523050c2753da2921e9126e6d11bb8e812b28e686fa11a0fb124ff278d4fd7e7b1a1295353033ec4a09027f8109302f6833cb11ce489d1204fec05580ab0111c991e6843c47a642ad164b9218988856bd443d1c0321fd222ec34289f9791e67ebe654dbb523e5fa78c0f377ab0c10175150db69235d8201f68e8051d9932dfcf6c4394f9c2102bd194f98426aba75d1f51834944d7a78608360f389469c5c0610b848143f02f7078950b1caaac0b0e6d0bae47b81a9ca679381dd460ef00714cb0935e5e1d0ea89574150dde78bcf14b0f87c6cd71d7d5f11e6e10bf7185f8eace38ebc6cc7277b88d2b808337e6798b0c6000ad1d660c40882004305b93b68edb478c18c9fd1cb7818a741f373667766f0b1006fb09b10a710b71461222ab4f9f24682ac98dd52ccb469aa66db5562e681444e7c80b9a322b750b4a86c820d3a2a8afc85af01b08852460105805a80414028752a490fb2b49522b495e308a6010996ce144c9091954432a93b76093636cf28b2936f9c426264772d8b24274ca5db7d5c0fb8ae6a9689e8ae6a9e8f4159d8a6440ea6efc3d5c21346c5c214face8b5ab771e0eebfd62d5ac96e87c7c5a801af43c9c3713a426d24df40f8964ea6a9c86aba6071b91e4e14c2cb36899a2a84112c822d38d16201a9cba1e2e8ecfabc36d5c206edc987331b7650a206e4b90070498276e018a410b106dd7695e30dbae871b80dfb83f7c755fce72616ee3de7cde223838af71655c10e8e58247707e08c0cd49c63d61f7944da8130c529f8763d2c3954149924821254a2411ca2b2287864eb004f28a482412898989cac4c3991806282729aa1e6efe8d6bf3a029a302528205fa94e72b7f881091478a4823d2c82aca264ddc0284c2ea61bda80ae8fbf7ef4622cc13bc241e16484a48281e105a66bd8cccd324294592240167b05aad5af4b03a0c8de9aa59a9a8a8b0a87840605945e55d0f57c81335aa24a8809230a1e5174f0c8396cbca4011ab872584f5622591fb2c469890e406aeb1b1d2a28587d3c22382de2421e77043e3dc75b954404ab0e0c2a5055f1645e941c282a9805c6015900b5601a9807e55402cac02a218a567751824b9039a2c57cd6d09f280c0320b8b87c33a8b8783e69fc33e9cc615f2040d1f524eb11a338ee4d3c3152223441829624c9f755ba670d5b0784060f9b805a80887bb798bd4bcc665f5b05eac212cd7651199ac9a83ac0fe43ecb0331e648cd8166d0c27241a0087324c2589369b3d65a6bed89c68d202517bb52484fcf90d74b624ffa489f9c7283b47840ee038a10d231e2ee783e481089600025e91a7741c4ce9020874d0f175e911d2ebc2066bed8c58b172e5c5af0bdd143ca05352e383459fd5f9075411a172c02d590fbab0b12c12ee8a34a82f7be0ac86302e91d0dd67f578806eb4f774783f5a6cba3c17a7b7b34585fba0b68b09e741f1061eaa587e3e15683f5dd9dd77888644abd20804ca1065378e58a75e290e661332d39d32d3d9c90273279ecd145fe343fc881f4c8107b16b62214ac2024f7690ca1394657047aca1e20b2a7b12c48bbb26753e2191a2d1a641f80c212ca90fb415a26369054176c185b252624901344511a61c403da855dde081dbc843658c5d0898e208b8686ae58a25287288d11c3a294b2a2e6a7051bd61c8b841a14b24dbb676e808b2eb13b2789241659e9f23d349ba88ba60ce912bf64a144bc4443ac91af16d85510f4f212e7d006ff8a34f55dd4951b62e5aff0428ba68c0c2a2a821c320aea22e470164d0c8b211c0199436c284f966d2552f3708ac422d8fafea65225a0740f23b14280bcf12e6f3cfcea6e4a7fd11b21de39506f48efaebc911e0f7a53c21c48a274e3bd6f3a44228f649cb15d7a385ce7d53aa3cea26e0bb63e9c45d8150d1235d813634311460a5bfb267a42f068a7f947cc224c86af4b83b3954c9979f3cca78281dbb66bda4723a9c991a669dabf5d1d9411b4696744bbe203da957dbb11ed9adfaed32eecdb7db44bfbf69d76d16f07d2aed137bc449ed3ae54b2dd28855a6ba2acf550d6deadc4e79547560cc18e3eba4dcba1a1a16ee839a4431a0ee78bb6c08e46128b3c1a8d70a89d6e235ac21ad06469810e8d422d496eaa5d288e465867be826827e04003141f315f997a310818a302ab22d321220c0b563ef45ab302100e906481032c4af226ba84d99126ea2b9aa8b1985634d83a39a2a8ec9e1323e9a0a650833d977411173faa5688143a418e383c7ef51c31328708f9ce60c32efacc6023b06373f68108d3cf3c10631aebb111093700ca429eb022b76482e2a02787d92b22e106454c644bc48883d33dbbf943cb72022b7967254b794d46f69cd9c80a7942e22c33f2061b662f39a45dd8eca65997f964436cd7a398d1c6483fb46abb739b94529ee328a538a4e69d30c1ca6b3862044330c4d1f2cebc79274cb0d8370fc78cb22725c9e3185de21861228d82089ac8f50e653fed92198e834583e5fe11592edaaa9db6c052ac274f9a459eb4284f4c884e1c4eed88f9ca6190a29c134f1f0629ca140852ce5e60b01da6a4a8c3af336c219df9ba3dd460136d4838924586842358c857bb1e6f90a2fccaeee1c08068c93f7cc8231c230c115466792b9659f04c0cbf5e53a6dd10898c20fbfc74e6930de99027cb212dd850be72bc9d785af96a2c5ca4a225b98bf0ca809597994b8a62174da154166cd8af7e4d99f7a4b060b3232922e0a20b1172006a97bc58a699eb4eca4e5e99d970458e5058c31599468e50580392cc659d8c190c6b3339d911218728321171c8226622e41082a11c33117288a25dab98a34b9454e0e6a30b8f19d8b0562828a922aba8a85050124556e91416ac4c01d7c3cad3d49c534e8b001b8360c0440e552a2a5367a3b0042549b45a2d9d964e4b26a1856576b62816382edad0e6e8b4b4cb2cfb9c73eab4f24a87f6799fa3d3cad8755a99ae82d0704e76f90ce76078357b08f6e8451ceec8b165731862cf91e72e31bd3aad7c442be760f75ab91e93c75a59bec370ea05f5d025757ad865fb90ab317d24132c71887dbbe9c6186339f99294248943ec34f36eb82363ef5a9972a1651b9381f4d142c0c40fa48f8ef4c9988ef4494981055da57ce5fa5047be421deda3df3ae3b98712d32d9491bbdb4633305f1bb447c817a63df309269b9a44382691c94e227b0e077de9a952eada5367923de7fc21e7e05912e9266b3def768f14d6a4b38834df9451fd2a15cdc2d9d33d916622993233491224499024419292849e5135d92db2e6b773b24b3265289266f56bb556459198bc46d6bc86726272106cb5b2367b348c524d20d52c3a916ac886358f265e0571ba3dddf4019c70110c9cdce4f6363d7b983cc813f6e49cfd34b9f470ece7d551658b4d7aae25a251e449d455e4a642a8f652c0c9e893841c238e2ce00e60e523c7b936578c32964833389c29611206231639da7c89868c8920cf4bee314221e3002682589c3144775d441646610c90e76575a1803c1f41964c8f65ec02d9d6d40ba6cb01db9752888f2963234b48267ba4104abb085e07e47949cf619d9492063ea411a21df2d5048bfd45c29e6149691432320fb039f1b22787f10d87316499a5cc408e3c39beea4dd673933dde108970a543fe640c4f1c2291e74d16625fe9d832867f9432c545b2287b644ff67e3cdb3cb1e004fd91b18fff4094b17836d1251c9bf553829e3f31cb2ac41b65ee32ca3411c75194092cbde4ee35d17cddc3a51cce5787e78fec913d197d26b937f770fee4ded132f70ccb91ec993f3f180e29c5ed356605a594d291165252d8f9a825e18090afe74a40c84beea66bb9cbc3742b3d206a1c9d734115597e7427f5126047a6d047de6e4e3dfdf412606fc276b2b8cf731f512f01169b709d2c8e748e741360b1e99b8fd088ccdd34b2169baa3d37278f38591cde64fd0d91d89940f20e181331ce39eb6c22cba09f25b8e80d81f5ecd973b2b4046898479cace6a13d8548bf61ed64c7a37b8744024cb0e904ef845202f96eb77ff61fe95d6a8ad414a44ebebee2d09e0233e7a45ecf494b227159d7dde46e5e16234cc7ddbb89274f92dea3a7839421a1637bbc89f76ecbb2cd84bb9424ef9c24ddae93004fee1eefe50b04e9f231e7608ff986128544f7e9d4a6c7b9336518011f3d79676609f0e4ecdc0f24f276d4fd21f3e6d9f48625c093331c7f3a6d78a5637bf60de7c8939ee19cf80e0889749bb9ddeda43b6b934838e441da388943d9c349c9934d35339dbeddeeaaa6ed4ee6ec1d0e1370f2aebbcd3c853c1153538c39a3cc34ba2bd3b38f361c011da4cb9bb08eeef1d93105662e611df695339ce39d4b7d74654f8e24d993b91cfbef29fbee7b7b3aecbf049cdc24bb09c9fefbbeab3dbb21901cee4cd25de9d86ebfdd0e910a77746c26aa873593545cf4789c1c8740f2a5374447da30e9d90d2b0f9321487833f1b278931b6767ef86790938f9cc6e87ed7613e04d96974a82774309f064eff2dcd6999efda4ebce65d94fee463ab971b236d329dc99241eaa939bf03821ddccf3480f4defbedd15c984799ca04c3f3dbb2b7bd4fdba6edbbe6d2379dd4feedd74571de671f2ddf4d25d915e7af7ef9ebecb9d22f7180169310fd557a49fdce42109f33889a4abaec9bd2bb3c9b34b7ae96657dd93478fc7098e93c5631273974242ea0832474f472acbf7a953825054a78001098a70c42cdb8b1187944dcc0d48192f2a5ebe653c02456c5046982721a35d94bba85db35d92a8c1fe5083f28a05646e0a4a677aa40c7218b390428a5493c5cd4c19e986c8ea7b6004333d237de8c82fd8958ef9d5797291fa8979f0e42223bcc226ce3c398c58f49cb268d69706c139e408c82c8b220c1576c86646c84bd7e899dcb2e8d5ae16927d04224286b46b36116346a711ed0a553e4230db81142cc861cc2297724b3e6cbd34d839b335350dbf4c7066994330e4c9b435bb52eebfb4ba943f65ea5ff2a666d16090eee91afd7a03d88a3130bafc086fc0879b51bcd9aeada7b7c80536c073533f6f9111ae40100e60a002f53edcf0dcd4db4c4e7a401419e10ad417b90006e491b889de8e8a83c81bf9d79c61fb14cd5994674f690aa1dc8f1ced21b95f19b790ee89307d6707224c385ff2c824f2d319c99c2268463193cc2a721f9bd215ce0ee4ce80723897903729510e39ecdc61cd72d81d88345996658f14364e169d1d1071665328c9ce943d53091763ae53e6892f44d143ee4b1a7a5924900fdec4a1cc39b848fd0acb81613c04d9fc204416b9a315d80c595a218ddc44c80168094be67083875dc59b5a851c18a516359303cf74d6232e70366787e6ba434d2693e9fbbeeffbbeef33994c2693c9643a12a6effbbeeffbbe30d8cf6432994ca6effb3efaee8a73acbda18faea3946e1da9548a34a5128914694824cf8b349ed77591a6eb22cce85ca4a9341cb76d9166db46a348331a459a4853230cfd0866742dd2781f1d7b16694a1f9d461aeef4a3db1b23387a166bb218333a7de9661186debb5aaca131867e74eed208337abd5884199ddb36cf7b3db771ef9ec36da66fa68d3371df38fcc3c3453c7032994c2693c9643a9d4ea7d3e9743a1d3b77327ddff77ddff7a14edff77ddff77d2893c96432994ca6d36732994ca893c96432994c2613eafbbecf74ce8432a14ea6effbbeeffb3ed4e9fbbeeffbbe0f6532994c2693c974327ddff77ddff7a14edff77ddff77d28ce6432994c269389435d13eac61bd3e9f4cf6432994ca6effbbe137e42023cd90d7de49c8d84c30ed36fdfb66d3399b66d8766fa8e2c4be8ccaa324c2d4b474cf60ab84c6218960db1cab0cc083623b0531f230c05b44b6f00996cec8796e90f2dd706255ecddb0823afe1ced2c7cbeddbed220cc6e124b807e1b9e1fa7dac3e8ce7ae71dc37c073c3e10d74df30fe518f3df391b322dc3b0e7b80dbb66ddbb66ddb388ee3388ee38e04b76ddbb66ddbb6711cc771dcb66d5bd70663d6032e767dec7aaa9d9ed60c5300a5d239679513ffc88ed19410ec7ce4b48a718c2f12abf5da0debb59aa5867f64b8883c4679303985c04517cebb52e547f67084b5c7ee1daabcb9c8c5aebd07e1b9f168e8236f386787e61fd943ed1498f5d87778de37c073e3e10d94dee1d7d20be58674edfe2842c21ef0baaeebbaaeebba7b9e770eccdc7847c2c35dd77557c530d8ee42785e5f00f23ccfbb902436ef49803f5e358211393471d375dd393073d3e10d3c817dce39b51874a7a5e8126bb2875b7b4174a797dbe61281bb2333768e25d3934c4b51069cace82ad5f89031f41cedfbb88d44e0943531c668243c9b0605e58028a7e41894832964ae3b2d85ca1a584d0bd24e3feaee43d6081163e8e9c3a63b54276c7dec98d4e2125669f7f08e868134d875d4a57c60353c9fc57675d7345a1f76efb077d873b8d1358e8bbfcce207ecf6b8bdbbd16d49e79c6f50ca8cdde754102ca55864b5738611c938f4dafd217386af08c168ebcb8e1e92071b838420c447113db2dc604e4561c35696ff4c05c1ce560e674c05c1c63c4f230d9605c76ef6db83d23a6796cd994d24728661a1cc749e8bde105209193327ee219590311810e93347e7309e1fdaa8669262945e9b988ec3aa8f0b648c276398a31d766dd8d88135a2c199199bdd1bd59be8c0d2976e64d28d00666d129bc426b133366c7018430384c9da5d644db532c2a14d650d6bc7a28c8f4cda9dc6ae3313c4a90925902063781544c6f00a3b4f6ed1cc492722cc13d10a174c8148137c8ef012020f72df4407b66bb0366892031b5aec2ea0aac177a62569420337bffde4d163abeb4ca0b061adb9c6584799ca033b890189c32079c321ad238c52c9db86c397bc85331bf6b27b9b8c50cb0add755d5d7948f3c356eeb6cc6def3c1ca6afae5a3de5f40a591373ca63cc5bcab7ad566b55aa1f8cc92e7622759471ddd6442a26228964980847a42372fa86c3981c4a22a32ccbb21abf2c1b8d54e7b20fe78c5e51d40cb226fb46af29540a879d479428736114b2510a59b967280ca359e4103bd1cc3bbd826291432c1b22ec7c7a4789a819304ad4625d1422d3761965b68f5012ef74f670cee827ec45970884ac90b743a1480952e40d0045cc48e110fbe9f4ee66de9429a24a5baa989a41857756f5de311493162dce72f29f701813e915d9c685272f7938b6733887fbe9a4cd2bfd388cb167c12db00946c1a1c5dcb12e3bca09dee99c5de56527efba92d548144585439ab18efb09c679381e9616fbc9dc08cb46a3d16844733d61237a45eaaa1c7557fe5daf74c3981c56adda5804d73159e53208873120d8fdea4a0f7568843a345ab92be11ceea36f2533c89aac1fee90b787ad7cf270465cd2e11ceea56fe7246732ea2e71284b38a4b9c3abd2bd67ef574c4c05eb67adb67b761a79f4508746966ff1b095bda78c1e7a57b9d5c3317a8e54b9e60dd1e5d1eb949191b5c96c0f5bdb4330f7b6e1508746eede025b931156f1bc671e8ec76159e6b8ee72dc4ba5933a1adac399bcd52db5a1b66fdb6250de3625798b5698b68d5233c89a56a4517dfb8c4873f2ed3bc89a06c8983e25ca28919492ced9dd90d2c89b2cd1cc5d9eac4323973035838cc96e72439ab315563540d66432a65372509171d9c669363791334df3704cb86f1bed6af6ee6aaf3b34d30def34cd956a74892d448d3a9add67f380b81b17b9aefbb66d2e3936e8bdbb3aadbcbdcbdc5d3c20b86fef509e3d270b5df276848b4be68e3f7aec1eeeeb63b4f1facd0d8a5ba9fbe95d77c2254cf1bdb15915e38bca1bf7ec1c45b93a2e4aaa08ea810d755a2659f60ceb54771461fa26b7b3285588ca6195b47621cd5bedf2b6e5ac5faf2973df6f1fcfc3b5c1aeb30d76b795748ba5ddbe61493366234a536d50d206b98d87ddbe7156e42e73ef2e8182a8c85ce61e5ba46e72cfce913a127712a9243b2f882d779c87c3742d6edb69cc346edcc8f33c2fc7c6ea79dc472314fe31734eedee9dcba9b7df10231c76b6ffb0f4c9dc5198b35ce44e5db8619b79826c1d176220e7ee36b3bba1642287d9773a677424f276c399bb9b3c1d33530e873cd9bdee1e0ee5121cfe31738ec91bc2e75976d2370f6f3824e19dce15ef74ee5aaa1cddae6500967b8743b93357f603e8bee15047f7ed9b77eef2256bb673730b53cf3c928783fb8673b68fee715e98c228afe3509d87a37b0e87b9aef336a0cc556b6fccb5d65a2dde644c285f397bcbc5ff6ee9a74bbacd34ddb8e11e0d66db56bf05d99ceede479d5442d68432d7cd8a6d660fe774dca537006ffb08731b5e8d6e9f6de14ee39326d8eca4e39bbd84c36845ceae7938b8e7783873dc7612e9988743eab02c8fc20ac86e527881dce5ee36cde5fad2b67d0179bb5442d6c8bcf9644e7ad9a54fc7c351ef1e5e21e01e9f887b8c797277bd1b6eddc693b91b95e46d67e68aa5123226d370bcf436104be77001d72376777708669d56ee2a62777777b74e2769d941c8d1ae7e18816c8664d28b0919853c21dbe7d9534e9a905d6239a4c1ec19963e2f99659637c7fdc146be92c496514c28a613b389c9c45c22977236a304f38b998bdf78e5af7e28792082dcfde2e502a3bc5c0f2514358ee1f02930d81eb2432bb7758e93e781071e78e081071e78f80a0f6f5d1e5aa7ed5279abf5ae5d33deba6d178cb78e6a57ca5badabb40bf5d69c314e98470f08f03bec70f0f28287714399611c264687e802e5f22895ca617cc6e38b65c4ecb0005c4b29f6e23aaaece2250f07c505cdd3458c0eac76bd701143c6cb5d5a5e4097ab34a83a8c1b33cc0d7784f2aa731ece0c2c6d8ca9d4393923856d832d954b1b6c7dd57aca4535d86a1d75551a6c5d75bb065b971ece8779b8e173ab75eb5b6e58b3cb0a05b09c53cff27a96faab24f7c86028f31f339ac9a1b738353259999cf2d3c594a41fe5625707cc357668ae714e762d2ecdbf319b90de5f8935720a31a6efc3bb54e37d952af4965d3e75e5adc8a9d46d5aa65252a69e92524a29a59472c6d46d7aa652329739a9cbc83c757953038835f2f5041b0f5db2fcc3972c030340a5b5430c0ac68577f91f848834f7129fdc75b312575e628c31c6170f77641d74c86ee892b3bf78bc612b47952c637459ca2963831b83302491c90ac03b067604e530de8facc766dde6468ab9481878fee5c50d77641dfe02b349d4371db04e0b0635e3cabc834dca536ed3336ecc2a57e6565ead622e8daae6734e39e59c72c6eca14a4a17ff9e651cbbe18c0b179f97e618d6dc651d68a8ca312dd78c1d5a2f1ed2c8f1e778487dc10620521980dc225f14e52defbbdc1dee8cd68db93adc169818f7050eb3ab64dc985ddcf8bc71d5ab87734eb63877a3c539d9b5c0391a94352a1a3c131373beab5bafbdb9bfe0a521c40e1edeedb18006e54fb7887e408491387562facca571d3a787e3c2d2ca6b4199c60e524085913ce39cec5c384c3f5dd132f146f66471d2427ae0582e0cf9183162c49831a64dc7887196db740c1d8e6a99001c068cd661c41c068c5b19070f03cb9787f5ce735c1554e030a320767adfae23543927bb7c711747b9ac1b91a39411eba8727cf60cab3438ffe2bab828f705c3988cd31bee082596611b84719b06af0cdc3508e3ad4b1b84f1985b1b84816a160c1d70a89261fce5d2c381c1b141188f8163c4b8f52f2cda2bcbadaf418aef91e54dae348960f64ef248a7718f88437906ce3161e7b8883d7ea9ef0f88342cc74edee3e62d8edd4e99bc627395636fb5cbe4d869b46b75ec33edfab1db6817fe3df61fdad572ec39daf5e2d8856857cab1ef6817cab1f368d711ad9c837217a84bece2d24b29a59c3bb2cf781489721737ccb04e2bab8ef2e8e1a850cebd68f9392ecbb22ccb5c6ed331bb8bcbb3cb9b7d073a5d335a8f09800e3097a7d1ae97cbcfb44bc6e56dd8fc90438876bdb8fc8e48e3e232f3f018233d0f379ca754d60e1580fb066f8bc69d615d9bfb4383f2306e8e2bc40e1c5b5aee12710bfea141ecf8da6810fbbd360d623f9e61b90f8830d86f6eac0d62cfd74e16f6151b950b5e1a4234881de5ee6810bbeaf268b047b3b0131ca24cb0a7309c0a6bfee44f379458c704a4c136e11d9b1cbd8008d3efe11661848f20b28794e56b76960669b0e79553ce6c4a2925d865ec5229c4f26870870f1e22a92556cec7ab13878a646c4b62c26669a3678ebc64a341f9f27a1916d5a08c6719e7a28d326ed32b36bd72c32ecbb8cd94714f7fa93f9d68b8be87a85cf1238b4b2b05061b46a122a68c509d719bee914faf3794f9e5a31bda3c5a6957ea0bf65fc1e1e82c6f217b266be5321eeb653cb6ebcaf88d1b276b05d70663fea2ca3270d8e547211d30f3c0b243330fa7f925e61603f16040acc162cc94e9e1fd1c3bda358387f71710695ada167267d8caeb55b70a5155a3abd3cab556a152d55a6badb556193254aa951beaa81e3d2054aff1fa1a35ae7abdaa7f3794f98b46c8d5255730d7f025bb788e3545c4987e4599263160545eaf52f9eb676cd8449ad214f93b0d211bef1b71f262341a8d461508190f776450060e5b59c6c1b3dc506696afdcd025affcaa5c557245d1c8dc78ad19c66da60c0d6e8c7f814c991b7769d7cbbbc5ef1bd5f2d8729a16f5a7975bef72197f719bb912f36fb823831fbd78f57060682e9974cd0bc20253a8c1147c32c8c15c995568506f989839932b730ca11a8e75654c33e148868c199b2c83278a2ca3ca08571e9aae1395e45aef11514966b98b1bcaece22f379cc92f5fb92c9721e321cda32e8feca9854a1e3d8f42973c027578f8924734607c84c39773e73a21a0297363f4becd0f3dba376e4d7d41954f6ff1be11d11be9706383ab5b616e6c30c68d0d9e2eebd6b7b8b141183736e8527f6ffdefca4d31bfdcc872431e2319009761ba774300707526a7bc7a41045102099a3892018075a2121737662e47833666aecd0f32ac5c93a241d93899db1562078f1e110605ab6e188572fd97dd75c30e3b7cc3d169d02982b8800ca230249447f8f70830e7c4dc5ee58546ff460f37de7aed55b17774ae878cf9e88615eb80b93e46d5a08cc1a806a58ca796d8b07e846da64e1cca47c4a1dc7ddbdebdde2ee5a18d5cebc338054badf576cad498d0a43c94ea7bfd8e769d5ecfa35d9186f48a439d2894b567a5d1e92fa3d16badb5ca78f480183ddcd192f17ac3567ec1e1e8a7cbb8e18ebcf27a5bdc7005ebb4b2e9a7db748b7b3ac7b2facab9955b57701895e495af4c9157561e3d9c95dbf4caca0a102b57b94d8f56aea2f295d7bb02f3f2faae5d325e6fdb15e3f5a876b15eaf6a17f8fa4f991baf07db05e3f5ad76bd783d8d76b978fd4cbb5c5e6fa35d2d2efcfa1fda755f9fa35d7fbd10ed6279fd8e48d3e2f5326ece8b0ee7a22703873c598696638419bd5c871bcaf8cbcba3276304736983f52f326ed7607d8c6b5917d5603d78e3be59f5305e5c179786cb9d69b936f0b5b9f787df1c2c57881677c7ca0da3925c575fb9abab8c708e06eb57f88706eb53ae8d06eb51ae4d83330d561bf7e4d606eb6bae9dac7a93ab6ab09ee67eb2ea53176cb01e75690437e6d846fa086e27363710a1494a38d931fb954c1a0e79724e76cf6aa8d3e9439534d3b437662cc321cff47474f632ab42f954fe3dac99e52c8fed0a4fffcd8e65d1bba6bd450b355163d157a050d10b225ee255e9d85d956e8f9934cd6a584ade286d276f7c86c31fcf1448c91e559acd2e1fb59b6e68df9d6e3a5dc3274d38c92e4acb2eeaf4ec287cd2049be1214ed770cee9269cd3e2da0e76c2b14196b778f77bdb0bc2bb76e9e9688169832caa6b38fcca8aca5552e59fca173f0dfbbeecf19aca77d5f76138547df2c3ababbebb8aed42b9c421a7baf229aa4bd597f2cf1e45bb2828e7625491f2f1ca0b45d3b3bb7a8c598c2b2b580587f5845138b4258cf20ec33928b728d862d10bc2d31e3dcdbbb5d74c377c36652c39862c2d5aacaca8a8ac56292928282ad5c98989492a85427ddfe96432595b2a91489ed7751cb76da31c4759aaa07eba31c2a070584f0fb51c51b02c57507098e5f816302d7098c9c7157c3a61940bf5187198bdbb3c2a34bddbc1c222b2e9a5b7766b1f3d1d5ad4344d5b5dded0845d1bda4b80271671c204fb2ce3331413123639ec6ec23b58b60f77b0bc7a17f2649b51506e3353aecd9f77d5c995f687368739cc4128efd0ecdda47bea8645e4ce3b27a396b9e0b0863ba7731f50b628fc920985c31917b795c1bbb8bc8b4ccbad8b77c9845d6e8c2cd97df70712d9fbe9fe90d9f33a623b98bc9ef79e06bb854c423a9e359c8cd4795dc7962b1d59c414c0b276244ac7329924f7143e449ac88af01cbb9516d29edcb963117e6492320c99444870e3861c4e26725f8b424a9e0e8cebbaccd3ce559a4bd7ae97e108648f29ddf374ccac9d1b755988e50be4f8923780d24bda4b1956c28ae0db7448ea483766ec62c3ee36725131afb02cb1ca73d8b19dc84d243521799713490d875d2424a31784f421b1e4b9318212b7588e939e7679292057085801810c96f8e9b9c12fe2e27231460207f11b42807a6e0801ba4102e327e29fd0def83e11e5e3b37b84fc0d214039bb378400e592a72303c14f6e89610e39e222f8d143400974799cac19f009f1063f9c41800b7e421e23c0e5f8186300dfa5e5f1a694026bd3d4e3e1728c83ac8ab878bcc177c1398888372e6e8fc9eae35b843c928511d7871051146a0cc46a6f22edad1db9428eb8851a636bd32da45d15cbf8c270add6862a797b48fb748d3e518c51fe2d645ba87d7a48bfe4b5c77e453c2716504ca23cafe8203987e650bbb01309093551839890116b04c3bd64a86bf423ee28d879fa90a8856647fb4d614379ecf3524ad9724e9a45eeb7509206fba17c0d097ae32851c28006faf241245e210003f3f2f12648c7476f47e3ca9578e26449223815dbddbb878370efce731379787fe8a2d232f1e288198c30114656974dbb8b8b0a7d768965cfaeca05b63e1b42c33999c542cb5d3b83f03dba84273db9df8410d4bfedf189f9ef72e037dfb968474fd0c738af4e97352deb57bc4d7ff6eb114b9fc9f2e9eebb3da459fd94186cd82f89b7faeac46624fbf49006dbe73571fb3408b68663839289efa1c4ed3344be264bca9612e3a226006188055964951c83587082ccd1acd33a0c08181219d324a053cf5705db4af4ab436900d52363be2a5894119406228d9435f18dfb255b8908e37539882e93202944b07f7abfa68ca967b28e7023edebb6faf8193191020e1b8adc267c6b7a095b9586c3e39656b0212928d2c8f73f231f14a20b45834f09aae733f219f98cc4cf08aae733f229f994f47c4a5028231106d59361346a3262997cc9571f893019462388d188d188d158ad2a1ef9aa6043d34b2a21573bbebe1096040bc29470292957f2473d88c9898837aa20f63c376fa57e7222e2cd090e127168570f5bd84dbc491d7557f23b26abcf73f3dd95c4112022dee4c0416c70d051412678c5e3fbc93fdc63f2ef27f88923e4e7e3cd8ae255024e8e3a3dcac9513888bc39b9ea3c72152f897a7a7203f5f4ec30c1ab1d265ff1f86ef2ef269737d52b40bcf970132982c5ac90ee11427b56f31fea3565528e00d48731f061e0091edf51f06a620025dea01e6f8a30e2042dc835c72026bc2187fd6a946bbd7ea5be7a7dd82f21425047b990ef29abf9d5796e5217f5d479a09efa7ceafb0a0749f91e0405fbf0dc70df455d145ecda7ce73936435f1aa00df51e7f11df579140ef2c4c43c504fe120fd2046729fe786e786931daa894c56c77f2f88307d5551ee9f60a2dcff4cf0671264628299048d50a89e2983c2e155f627262914aa27f7b7512a092b1f7e3e263f93d5afd5aa4c7e4c7e4c7ef2cd0d068425a1a25d14ab02538259d12e29531ab0f4540376dec3c132cf2468b5a35f41d817ac8912932a96d8fad0242845a4a95244a69e141151ee1502bea38ec21840fd7bbcf96e0a0d16859f58618f3d9a4f0e4940a61e2041fa0504040404040494f249f9a47c523e299f944fca4748484848a85f42edd344faa78df491482333ea489d36431d015344167524d2685c88aece41043fdcaf0c8747bd841812935a53d6a2b0cac424a8b386fbc8186cc5a13d627a997c4c444c3f26239146daa0c9fa7e228c146c4802f29932dfad9229a3052121012121012121018524201f538fd6af21b77d428ec8276463a62bd92385f41079917eaaaaef154d1909e4114d99ef242293e4939bf422f59086b621208aa30422016148a64c1c8d20b79661147bfdb42bac3e4d84231245ee734cc466a25f1c917ed19e99c52cfa8ef9449af9ef7d6c0491044483f8022c053d143691d62f1250bf30241fde48405366239aac0eab4f918a28ac3e24a0ea63ea91339a7094afdbb6f54498de86723f4b6ca284ab1e91166c68c2119958228951982831099a32ef697cd263ea001421e24a2e31bee54c7cd88a98ceb48b4683cd493cd360eb74190b29f5a4fca1658a44963c796a0f650c7dbc5328c789cdcf39ef0f6d1ebbda6d1af4ce78d915ad0c37d18cfc9dc13398c6d704dbb2bb6683ac99729031190b59d33d59ca2cbf80965206f528dd5e3e8c5806512193047d4db0720e58eeaedd70be2e024a12f3283d881cc3911bd3ed5dd506db4ed6d068c88455c1c4d09018b0ccf3bc39e72465a7a4a8c4bb5be9d6c9d2b0dc75d22342bbf480905114b11f5d23454a9748a68cc5c754769664b25ae2a1daad212b4091fb7d45bb4879264ed1eaa10cd8b0a5d2e06715cdea700e95c256a6ad7945b3faa14c3294011bcaa13974850d2592a12c72d8434112890a894aa5c7ebd3065032b23c5e057e4db02f2d2e122de925f2cafcc4b20b2b3dbc4fb92487183da5947a3894ed0dc1658a2f9dd3c3993693de79ef660f79729d975de0b0bbf27a51389419b5f2ec52686525fb8ab4bd44e664b772331d5c9ed10ad5c4d89cf3f704a57496fba6b7f479496f0f67cef9946bc393cf9b72d54579e9a68860f90fb68b5e2c0a51f8c930728c02148a668715512c26515f21339d42582e6970968e42f34e8725bcd3b9743a49aaef0f4f3ef18e149afa0e4adf7149a638d4e95438ac2c57fd3746960a87f43353a5527de5293854ddfbea9e34c17e58a7cb1fca57f0533eefceccdf3d1c39f5347f3807058732ab3e531eea74b9f414ec58e958c65438a7f479efed0531bd140e794a38a71ecbd31b02c33c1cca2599a24e6f86f28e5d1d54f67ef2798f40e51cef27f3a54bdb43c15d839ef7d4ad0d7a4fb9b64154f6ced18e744f5e5fba27f770b8efda06492791fe1b9b45ba7743141027273df55f967f37e595846d9f273d641764cd924c529542ccc368a82344f5de91a88a963c1cf2c45cbb6fdd101d944f9ccc29274136f49177522b2957f9e82d72e8ebe9a59f17eb4ee9b399255011a998020b02fbc4ab52e9a457954a8557259c23924eef853a797ab7e7306e928e510ab06409f06492e791f009136ca52f5dea09917252cae9b19fce65d22380ccf4288f1e01644ea947c1274db015fff4e80d91728a73524ec239d9a937513905b7b821cda30cd30657f0778a43157af22f759b3eb921129e0eecf4a49e7ae7b2930cc3d1c3e1979aab145efd5bdda6533735270e6f927ab4df67ea5fcae429d251dd492812eaa51beae4d267cd2accc3214ff6304fc7c44e3e336558e2c428d853e1d06202e041650ca306803a098549a10e2adbf4004694443a55bd7443542e4d8c1dc5660cfb9c292938ac194339cb8dcd42c1a56f3aa850277b57d1932ebd20ba934e7a8e78f24b3aeac69ca333650eeb690dbd9b4e6f0ee99da35773d82387db3dac83caa4873aa87cf2ed84742dea76ffeee94aab83ca1490b9bbe9863fe4edf6863aa91d3c1aa4f4dd9daf3744cdd0470692b12019c370b85d1e65b0dd71ecb84d97ee8c0d9df73ce99267a7c91e3bda4569e6d1aeed2cefec4c1785ed62fd0492b1cfb3dc1859b5664cbb324794b52bed7285c8d16aaf9027324d8bf136cd5d0efce609f96deba2067b2497c82b87f0ec911fddcea2c1edf5f46a9757ca25cd92422d1fbfc9882340b3869b605552a8254779552814e4b08b92c021f7918f086194ddb9132437414e90dc74e72efb46e20dab503187b60af6f3d5ad18bc72387dba488695b563a3144a6091c11ca550c20929945892a3144a0cc930394ae1012b7217451a99655a4888dc20092be04114b0b8d1726c50a372499665dbb61d47ccdb793290b0cbda47274cb05278a08a5c479727cb2e5c0c17e14eefb4b3c129c3e11c604c2224640527960835c1e2b834d859344b48ea8abb509f2d89b5421356a51d4883bd836159966152c8ab6bb4ecb1f6d24af911d9e8cd21aeb6ec39a5dc7a346b7cd5e2cd324ca3758e7a93346e23928c30f1734e596b064adba34b38fac99868569f4b89c186199151133f5ea699bc058294299e9d65b6e90f0c36cc88f84c193bb738313bc2d35aa2e933896446dac5042973222332a7cf4b48cf769bc686a6ccf6ae453d14ce2622eaa270facc9e70fa64447c365c89c2199bd14f26845cfbaa25725f25a29a5a495bd5e5ee726c191fb2e616925d0c9bd89c7374cc040a1bb672a84323d3635572b5d6239127863d7aa35146e7c470a466c85ecf43891acc307a370cf3326ca30cae05a8846bd78b9b98650ccd88000000009314000020100c088482c1683424a8e16c1d14000e8fb45a704c1589511083ca20638c010000000000000000040209821712711b0db3698c72f0dee37e86a01bd182a5c1ed2b1e5219fd6cd9a4d2490213f63145823eccec0f91d0aa84f658b2c32d6ea9aade94cd0ecbd102494d4d759b2e48ca22c61b19f1410021108524a005bca2defd99c6b096a3cb61c619a66c84423d786bc60d8568800828b26ab6b9570c43a141d1600747ff9ed05a3bef14b72c9dd0be9a7913ef8be4f169633cdabdc57797532c5c472b0ba29f95ce3a53a41a21da260e8dc9fe004cb336f4ad2cca1bc4effb6902afc19b3b3c97dfbfc83888b7d48c2ed08b1964aa03bf70fbce33b7da07f641bd8cab69642bbcc6f35bffc8f541eb1ac3f218150277e6791f442280586d320e5b8f06ffc7b3f1a67ed2a647d44ef37056228046fdcec1e5c6a05615cb364f1f44da62ecd44ce2ef636f719ca551f6078033570bcce196dc5a5fcb8de6033bdd0749fa8cca2afa2527c8bce7a129381d3dc844ec57c56f1bd181457a21bae8041bd181a5524b7d5c59baa30336b97aa87e73738708809108f6756ffe06611c30a0614eea6afe0baac2f80edda79406317340944ecf3453e12216aeb6248067ef79eba304eaafaf771b995792eee63da9edfa9d5550515e2584a05807c2a60305d7a08a1d1d4a5274209443e0c29440b55b14594f62eee3a003b9de106ef409c3e87daa0375f01ef28cd16bb8e87844f359ee84999afb3c42a5a8a8fa8e988f88fa41cc37447e21ee03d13e11e983087f88fd85c80f447d44dc0f62be21f20b711f88f689481f44f843ec2f447e206a9f5e2f81f72400ade3cb44174ad2f180812cebfb6975ad7042c1871ea49f50e1796e81dd91c555c5d0ebab73c7e94fd89754c8d2bdf97beab854c8654cdc4f52b5dda8cdaa18d30c14c2b2fea9a4026c44f4dabe8c96615ce92bce24224888065d08799ab1e51a31ea5dff99aee46613c1fe4c6528a49e28b4343885145f005645adc0400cca068a08a43c44093fe758a861344ba9cd15c4d56ba50cf136c3d20784d112bf66407f3d05c8765019dc580a31046a4a3c0d8629c40642c7f32786d1b225c766ebe98fb85aaf100ea08b821c56f61523b11d4fc8255ca82aa297210a911f7c2f55d0d6b91a4a08788d345738044302442a8ec09b715a7e2da081725bd434de8e5441d7531145eeca26417ee9735b5598f78c0eb3300457fb86f0496757b7c56feedda0bffdd0f7942809435bc574a83d318fdae75eed0a8067532ab9f1d6959b65d5ab2d57131df9b107d781e589251584b14cab745153dac080746bd5ac6bc7c48ac0c4c4fbae001b4ec16208f111914f3de9000bc45f3dd7f34a27f824483fabd95f4896cd7d159b8f253603809e845257dd147d6f34e45c7ee1bb47375df461c58326a534f8cc40def35b8cb785bf6d918e9a0336eb9900c287a96a88d604384f354ee9462406b6379a80e2000dff6715905d6ff3e4e490d8606d1d5ff988a855304b8f18ef798ce846683fb34d6841b203d528f23a6e1daf5e46d4d137db322911d901bc581e16f29037735f46503113db3ceedc9e32521815ba34b3d18d3d294cf15bc9f58a881be0800259c9e6797a490e383ac8305bb4194fd073683ac2b2e7914c119b41fe5802ab3a0953dd52718ee0cc33bd961dbe229026048507872296c3c61887a6140acbacd9817625864cc018c561a35f3a4bce720b7da2e8347754607b9dc10e6607851ee997fa9deef577d59e74fd2f27d3c3a2f2466e24aa448c96c613dd71089296e249180ab6ebca7e5a25a3132f4206cd1b65d1095e913c1e1bf5701cd6538d5b00c30f759b0d216c8440c95f27c2091032ef09843eddcb52556431b647835d08e69a9ea17b316f624ccd99769e514996568d6e617b92b05e33bc2b33a8d716cec5a2488bdb137529c9925d091018d2212823a20ba591a91facc422f381486079afc00862ef0850cd50591db8c7bc2d27a2e1bcf5ca904112342cbe8e711778841eea5f4f0cccda9e75ed09c546f2ce57d7c2551020a8cb972f5c63807118283a82758bda18491c5a2921df478448610cb110531fca1fabc453e9858164c2a585ee96e47b3bc302dcc9c031943b6cd82f9bdc8a0021f3626e3f4305cab9579490233870cc09b92e9c477176f87de25a66b1df3a8f3da7276aab9c4486f2141810f50c6e6fba3f50169e43f66a819b63cd5a22a6e94bebbbd0545883737e0740df52adcb0626265aee5034522a6b9b0353400a59852bf7e4d3ce4563303ff3131318dba181ddc1297609736b886e074e6030d8372bfaf7c827c7ac6dce8bbf7e76e6a9f88d8f34f3328b7e87121266b5e6d51b1cce2a9b3cc9e42159b175b2fd801a368bb34de2eaa0c819e774ac3ce63857173737100bc46c411bdd45aae00d641e05f722ba454c5929b96f16ecb9060861f366601edda5a8892a45423d07b2881cd7eeaaac8b103e2f3c5a7a952cdd02a5ec1d1193a24a547b7148ec41a97ea66ccb125e6a323d1ed6baf80fa318251f648e3dd9564cace2d426dc07455be4df84e825a752ca517cb1a7a9fea58426844dda50c4aac82fceb014be23f6b37e1858a1f39e56a3c878c7111c668533214481fafd02f4145b2225c3d387be387b3ff3222da71d25d30db32c9ba5561b8619c1d85efe7b06ccf077af486d1c9e1031fa488d67993ba26bdb972f0d6524f279800ffb54f50941dcf486ac522220a7c2e195693e140016bac481e9c8be4ec899096f284b1e5559698c385c7cef0e93ee10d059656972b1417d010d9fb9dc067ba2ca8c3bdf046b9b3453c51120b0ff182f518d371bce72b8c91875e4dd4b69248e69d866cf8bdc8093ef51f969724409793c6873be1f6e273687f629d68de2b220a1ecc6af59c7f221231b6cb7eb11da18ee73557642a4b2a01a27836260e901ab1d1820678152a54ccd7694fd94150fbe5702f5ebbe4137c62f5e4820617aca0a452e2f873750db5d386b1f406b9e6bd78e2f10f365178bd8dc70b3db926b8fc12f1ae75aa4fc50937d412e273e8ef80088c52efe82565510338d8427961806f37b31279f89b7e2dd0133ee9bc40b5138e2c1ff44c248ae61316defd4a2243adb6e617291d965e737e005ae1601d41b4a44781f45d25b9f5a11778d9562e2aa2c6d3f9fc7838901ca7cd893a4d12165442fd0ca46ff32ae5bdd1425a38b4acb0afa3ef7ee5c2a8df135f920402b515b02524101c20bb2cc4fdac5555a2904dfb61bba088623363490e7b1549bbb50a76756a0633257088dfa774454f950e9f476732e2b2f97825217bb066c53163483093bd2d34055f23aef7df1d943f31cc55ddf4a51b6996fa7ba42b8ae46322798462952eed71d4e511a233764224edc55ada5e02cfadcdab21970315d1c13879ee75f5444feb9edd7c3a7b8cba1b2f8a7de3d4d8ad59bd385e67cc1fe35726fdbaa1619047b9fcfd6606a80e52910b8137ad56b67d8ef602865e79b5fa387435c8f4ed00e7026433c66695574a2f63da0c82342df885933d2bb02f5f2322dbae5179bd788e595b58edbf9689f21edca8f9fb70229825146097aace3ee9167a320b3cce1d3c48f817bf8e95f6d8290a9a35e057da43401d404a38e42b25921502d48c3073ff27f5fa0a0d5381b86d052dcd8780c65fd285b4505e1f539222829fc522affa352fc6f25fa7f2cf131a868e963e463ee1efea42f61528398f46eb156108ffd0fc46df79092e0ea779dcdda9f9a84cbd4acfda897703223b76b93af3ef5e2400affbbb5de5024a65ce14d1877ced1951b2492c9d1cf9e58df5277a8c44a8599187085ab6ae1f63942eda8766ceb58735e69994aec8b6dcf060d9ad0b778bd971f70e9b057ee6a778da35327ae0b380668e6c226860ced0a217158415f0fb0bacc1c6a294b9246c34dcc1a12a3d5b921e544fcf1b7999a3e7cdb541c0d1352c5938730173310c864627977b0e8ce0617757ac7443d01d795035823ecb7239e97493a2a4b64cc0cf552c029814f031ab9b18618ccef5aa3ef7865224b62e57c9bf688a50ce2292fc58ea423c647e1db23e673ccb2243c27cd80ec6d77f799108e720122b61deeaab71373a462bc6f915014787a9c8a399203172b39207eb100d65faa5cff1b138e3d640345ae76caf3e044270c7c89fe7b059f1071e43108e066065e4c47ee5d4c1986665ce9b4eefeb5445ced63c2b88948c9cdc0e02c5f69f277802fea706ab24837c5ec26a839ae4aa1d433a7944aa70fb2b982dbbe6e4c3ea28ccd5a6432a7af814990cb88e07720656d90c65b7acd37510054bf6637288002d1536ecd6791759408d1a409a15fc4c38aba7b1742f64f5027e9c0eeaf50ba8abb1c4c3a308da54489fe6600045a48e3efcf812fb420be1c4406edbe383e0200f6fb5640cc017f0e7f6020366f47b05edd58c068eefc1b5f53914f20dcc5757fee48a49fa06a467396e96e8f21336076f2afbb0642a10c1de8b42e9b6fa8e5f8039babc194c7cf6bc635665268803f4981d00b1188471e9ec2739ea26d25ab6647348814762080057c448b951a24bd9476dfd9c4902ae36dd01023b826c4751351a98055ac733571e5906900138a0ff5889459ec88f6f0a1f46441e6a401e8ab76a1e6570f105cf000044737c4f4fd6f2b3d0c028a54eeb37e3b721d25e83592ec25343769f25f629320d92254ade6a1c4d31728db773e15186802d5e78687eb937164579eb6c5e0bfde4ff0652d3658bb05daca846162b8cee0522776b561765de6d052cbb08f2951ab9abaa5dbadd297f5aaf25c023df37382177bf0927725ff8948f40d5fc84ef45f1caaf9ee7ed191d4e8204939f13a775b382bd12005b7e9298cc2d3dedd94063b209d8b12b809ccb4a2979f43633ce27bd579f53081419b27dbad912a41df7ac4f1e704a4a8b95903865c5542a525848aeec2157d6bf2916464afe1a3d1507f4188949c9932a32250465ecb22c663775eb49dea5eeaa7e46b219c040c3589a64623359e1b1fd7cfa285bdddea30a1c03968f81ea1ecb5b74ab48666bc1451d87cb75e51d3b4db6f0806e4ab0a96e262b3fd303b7243328a1dfcb8602bace78a4c2b673d1548900ac7a2d7fa4869b260084be195870d60b5467c0789d219a3c28c0e2f2ad374bd6bf1ad817b358d59bd029002d058ef2c0040f88c51df029079668c12ed0497c6b5cd58cb6cd3d50c272574e560587080a23c5ad7f461fd789c2d59a9ad6f3ee4065a2b9e4845634c78f0cff6e9a1c79d6a77fbe4cf5fcb7e080696072400f3de05515c30b14334baaec3134d18bb5725910baf4455478889861d7407456c86cef0ed44f6ad998ed087d8f7bfdc2a72d68ab936856891715eec2fb023430d5046c7147c65a6b218de76a40af0470ae58ceff56aeb39d29b7416b7c8c966feba092ca31c8a295bb4351c0dfe60d7c6394ef1b25b8ffd49244ae1da7c516a6d3818e528ae8654b5a31b6d47f750c2cf7c6531f396f19d03083c0510e690ba1eca244ea4281ca41ca05648bf626d2632438583e79922c5000a656b0c4f62100de2241557ae266d268c5838ba78450e3fccb11274bf6fe7d1f300fee7c1c3341475312db01075460d50d2508e29457d779bd30fd56d7afd5570db589ed9218a0c5f5e45634a88132bddaf084eb416f8064341fb07cd0cb513fa639700426899528cf30e0a1f0cf3d389460fca30f9fc47a0070a0c899d157140d928f53f9b725e2157117b6a6705c156701be4599e8f2fde7bc56065af6b67656deea9babe62e9a503efe10dcb183fc39c80c4c2d30e01870cb689e1fc698dc9c61d90f6aeca811db76cc57bad2f2a7d8ecbcb163b954bf6614d2d7ceae0d6743a834955987534597f23e5cd7fd22d32dd03022df103bdec1c8dfa10d92da679c9bd7717524241fd01a57691c2b3276342acbf8ccaa29fcce89e7fa93cd10387ee9286e1a817086ee6bafd41c0344152772532fda989e3452d0c4bc7b53f8797cdee4a73e6844e904ff85231bfeae6e69b1eb2cf8dc43a15247e0211e1402ddc585a8fb7ec957d92f3c5ff86679fc9e773da8986949393e04e007c7847106ce43122bada82d76482183ab0586df1144c80f7169fe634e1a527260ac890f856d09ad190a585e35ccc23265a67239ce3a35235d41de089625742f71cb7d47d961fff3eacb23e030be1f347b57bf3f4e4d598862b78c1a50e44a5747047e54c9098db0061710d646bf92e3a7eda64681aa8d81b561ea0936bd583af21e4d8445659620dd2854bed41ac21831d2a1e3051156c7455547ec14676ce18b01735fdbcc6957d59d8ef19a6d4569c69754c03bfced6dad8126111561a1e138b00aa1b4463a3de0ddb917a4ba0470e6b59f56735ffc0d74f81f2c6b52f9d084f3bc3bbaa161e23ad336288cf0ba216004970864391b672af08eb479c90f0580d69a8c530e06e452e3b82228919e8091a31279cc33c255114411c1ef9397133951460fd4b021d0639a58e8e7fc1b2e345d976709eab21e2a1a6c5d89039b8c92f460fd062c79dcdfb6e201590176b07dcd87b635dc8d20e0b53d813c156fdb82241885a8d56c61c12099963a3d79e78c347eda861794ab629bdf868fb3c20f6482562cd0288a2301b5fa2885a9d7400eaef13377576c857063b4508d26e197ed76743feefe7f36c0954a9be1f3432519be82331019794fe79e0cc5c41f95aecb382a37dcc6808d5c0c2b15819c38a7832489997cfd49c5bfb2fea538b2cb477eba982ea92832f517ea5b1205410be2e64bf4f344eedb3c4e9da8acc7e0d14073aca044d1481ab33c8f6eb9488d8f8f84c692f5c38efa5c55926147d35849a07b536cd3a9671520973f93af2df361006a3f0e872e73400953d637c50418ab007daa5ba6c542214d31ae560912c8221fc9982f4c5780e18d7876c331d96768f57b532360b170b0bbde9757dff7b107731b93502c6215b688a5c9b3879094c9d25aa12a167336c261f838805cb87d1e029dcf875607bff9b40092d103c3cfb1efea6b1cf5b9a23471c821c2ee36f0c94aeafd705e960d9dda0dd0645e3e7fe2d241f77507bc4822f0adb35e9cbdabf6631324947ee7c95e3c2411982a2a106c3a8852f789c4fc24c04381f32476e1de6ff81e40c67bd7fd4ebd31d19aacdf3b0b32d75cbc3e02e12bb98671898b61a9ff28deb0ed0824c07da8eafdca88f9bc0eebfdf404f156b8cdb01ce594e8aacd863f915652efc3a531faeaf4c01ce0809d3713402c61f44be73907a2ede699da85c14642e47c6599a2f85dd16fa118e24a99dfc2cf1ea8a0a0d18533a020a64865e555294a1557f72376058f4e9316552a84d194546c4de9a4b9dfc43f3196dc250a6bbb950a93f1acb0fcaecfa36e69635ae14123456a1f4de871796ff6c2f835063cbe5a9f9689bd7b0d2947f9c884750570471f0e5b40de49de69ce2f78841bef25dcb31430a8d33acb06b4a8271002f45cb3b8589160c62e596701792602cd73bba7ed1caa3d9dcadbf6f74cbe6b1fa7ca3e5353293e8be62b1879780e78325aea55e57f57225da05ecca12d88f42a875629eb8c5ab1575240116eb5373119827d32d21ac2127080ff8680d08b1aa308f7763b0467887e7972fc68d5e963a4e8c2499f763ebdaa6bbd018560a8a7182265ed0e63de9a767da84bdb4b9a5f40ec5795b4f82b9202bc2bafc0db78fd01b70da30370d979869daecae6ffe9284500942c7cbbc329cc2222e917ec9bc02a1c977677980d8960f22bd87a3c4506ec984b011e7ea4c1965761d133ca78047c2911ecf3883cb63cd87486e6351c0fecf0b9f12f2bb4363d9a1aacd1ce290baff1a717be093dc6f16b9da5b3076305b3dae16f7133d2b4d4a095c9a3f17741628c4e00e03f6c5b5dc2218dfea61b1b8967d10e64f6906e5ac8d76e78cd3baa410e4e5725900064539db4f97d97a54eab26e3094432c8392e163aa00dde417205b0716950509f3ca5fbe30b749358a8d81376784d212be939d58f0eaecc1fc72e4e8e106c518377377b1480c18ae080a57278b109740c6cabc0867d727fd4421f55674cacc374534db8a0a9aab28dc5d97cf74d668aeb05e6854756901ed5f67eef8666ad56e62be56000cfe1fcc154cbdff2412332e95d6e49a29d65e536c1783c2f8fd9b8408651dcf82976e4cc43989876c7e68a5181892e43533f9798cb66a89f5610f8d6b353068c8ee63034cc4d2781efc4c32bb5147962a438c3c6a2ef6162d69507ae21febbf6ff642810d75f166172286acc3efcad1ccc5ea12b9b92ac1f9dbff80e295c569145fee9cfd21ff45eb0507d01418003f1d9ec68d3023d550b86c09b26f080852317c6627d20593a54d69c404265364bdf9c236bcee1d50d2f7bb8a5b768420a022bed90624bdbcd632b4ba40fa33e1c45977f984b1e2eb129bd1dbbe08f3f28c9ce9aec246a07c6d087c7f43b84bb3f7aeca02359a0045df9a57e9b49392401341237d21f328d2a47394d81dfc6176125dfd1a7c7c2746d8630a357b70004820442dff579aa79a0aa7a9eb3d4cc8b4d11db98cda7ae643ba4adb71c144cb9e414ba56d94db1409aa5243bd458f020709e641283de35c756b5986cbeaa334a300af04992240cbe6b63cc69938dd624a8daa979f58ef1d8569f533d9b4206d89badd64a267295050504f5d594f9360fab37e5b6041a65547e5631d4b7c05a6e9eb8b1e77d24bd756f3c87d0a1642f74f9911d0e794dbc5172b2276b4744ca15d7a7a79036bf4eabd97450bee066c27030a11e23099a85418932d6008e2b45ff530d1e86fbeab618551614d06962ab095122ec89197f44f4358a7c7ecd7d4670ff363211eca6b000cffbff2a9ccc8991c5e50d63349c376ffd2239ccb187a2348c61c606f5f562246c165dab76950c10f42e7ab5a53c92bfb10d7f1e7b7fff2ff3bcbdf6b52b1fbf481131605b9b27989050cad0bf70d9faf1cb754c3698cb36d666f9de335f99c435d4631eabf49c59059352820d5e1d5de5f3b7e2008a958fcb121d5125ffec968b201a25fa8129ed975e813079e084e7dd59d3d882025cd956b175d22c8ade3d07ab4683dbe49219184fe0defffc64b93c5bd34ed702358406d1a562aa98df6148965611220d97dced6e0604a87c89d8244fb44bbfbca002415f7bae9215b0cbcb11218ac14ec0aac270012090c6b24f1bc32dcb4a6dbd6231e3f8c9c03f6a14e6e15b17d4672808024c24602504804582433a42101a5fe302e683d0e6bc69da35aedb3ec849685bee54c0052f5af737fc02c8e16eb70cbc85b410293bae808ef1e48b69e02ee26ea7f1e3a00907329156662c21f50ef38ab1963e404119cd383e07fa1a89aa2cd644ca03ed935798e22d69716859f45f3e390145e137eb9739933ee4735a679dcff82a88aa15b1584230b9bc0ab67e6738408ce522418dcd9ea62f11b3359a1f3c92b414d0b1abb3c49e068555c94a85eb6f6c55b610499a91980b474c54c6024a1fff93ef36f56068459f153139f20aac1da9695962f97eff551c4525e5ef8c24fede9f5378b9410c6b9a431b874fd4bd6dea50bce2c12bfbf2ca5a702e763188617ba8a75ff18f3a4d1403032143415d7dd9bd175404dcbc50e46fbad50459e50235077857c47e4fbed7d4b4b8670ec5fcc46d72e3196a9de442ac6b87a3eec51a68392cd1deb9bb6868410797f3e0154b79343e04ac9effa459270355e517b9271610c48c23563b945c9db2539e8e74a2c07fa968e1a9626c1a5ee598f574fd8834ae84124dbda7a949caba590bf6eb51789967f8c860fb66d5d82423dd23bde1825433cd91794a55516f3f4847af24842f58307bd74f8b4d80f0aac6c8e87399305c8356d2b6bfc73e84cfdef379891c354355086279fd2309b25d2267bcd68c28479551fb4eb4e739dc62d4636f3ffbd5365916044d97367170e5d477d4606608f7991e8e692c37d55e243e6ed963f95195f0fa4c9dff146935871cb122c8cbe6c895810ea2d100f872a9d23f85524684e39d255229ae13e1991390c80faa968cd5b00fd03540839407a86339e58a8c222ddca17440ddd76420c92ffbf8f21d192aa8cd1e27fdcd5c5d3f560a30b276f8c319761e3ee303ca509f2fd9a4ed250445efe4779e1a5ec2ba090604f6403d68d09bb11f3d6c663046ad5b69e1aceb720b13763dcca2b0da01be045ebab71f06bb574b4022531b65c4366c90b5665fbdd9348ea4a3ed846a9b4c83bf1ea7db09f76abb5bb8d1196a1655bb0653bcb87aa30670b56b662db626a298d223058fd6e615e44b99535e15fce84282efa1586c018471f9579e6da02f032da669502b76cb6aa149cee7ea402ea284dee6c14fcb670f4cc52b3e8746fd9fe02bfce3f7a7682b142c298e10f724d8d10605f40bed1e282075e073907f7ca69c07eb69dd4a3463de07a31341f4e4c589d26cb80819bbf1b48603831c4a9726b7ababccd3c7e00d2d7ef49ab56ec9cd9624ccd1111acf3e199b3060b676853560ba4b54e8ed6ec6289b0750ba8cc67340662a0945fbdcfd4b94fbb1b5447d9423b420dc21c4ab8d820cb3ecb2f187984ce12b9dda983d2f5465a288dc43dada225736a0a31e3baa3af80d52ed5c4fd52b6b5bf891e647515e5fface58d8090f828842c32ac986dcf49978e74b822eee28c5eecfa31a4741821346cbf39ad84810684f3a452fcf2c6fa21d37c9ed7acc071590c9561f8633237f91a740ee0852c82fbc0e47b879c6009f06a66948d48ce9cd366a256783cdf5d05129c8ccbc071b731db5687dc34a50b28980e0dd7fd44f23f3485c4f04a7c03c1f01a9585654db1603257dd4a6dcc7a9302492d54a76fc6feb1aec8a1fce22eb1bab1f16d2bab10a8d52497555ca028c6ca294057df1387ea38039f4682980325cc9e7caa43182c0a0ec79352177c72089c53ecf089deb1f74be9209ec75454dc5d799cf52e2f52b3cb270bc889ccd4c2b253035a4e616291ad6394a385718adb8855488d3a61aa0d8f6280e321986994360e7664e6f99ee6a35ec2b28216080fca7155149a9c761abdeeeb0a9cb926d502a58b9b6cffa94cffb125a523536f3b35c9c023bd29ee0bde168d3aa061a2b1038febb9f7880bf11c9f7e40418e70b6ce0a5cba7d8649bbcec9d2a033496bd815be88fd3e14b98a2e9e617218ea40a4ca39bc5f176beedd4a2a99c64b5feff82a1809e2c2024c38624f0c680b40ce2cf5ff4015ec7aa764a86439c91843f6a2a9ba8e2c7ca2e02a78547d547eeb1267b34d656f62b3c779a6a261e8bfb1761349313b6457f969069b2d6e3f1b39e439e20a58cc7c46d557b4acc81ace989c1ca68fb78787c4d4aa6fbfd2f657cd2a49cc291466756ef18353a7da4b6c5c34b1dc34bee7105fdcfbe1173335b58ff2fe10fe28c26def338774407a08b2295e545a8005347742804d724a6945035279472071734cba38bb29ba1390e658ce94e522be0dc1a755faaff42dc03049dfff8e52bd190a2c9c859a04fc4e5beb6b855597bac226da87e322edcd08001b585192bc1c4fc5777ba3e9dc491527cb9bcf5d899b6fd70ea9ca1418e640f654431cfada30813c45a643920ceeea6d7a94531f78864b3056e6e2461259cae612d6cf461904afd030b2834112053e559fd3d1d24f4a6a4e074249d6c689026c0edcd0cdc77467639d9eb2f31b77aae1773252448f58c4b46aefb474744f69e7b13d85d90b902b6093da0429d73c7bdd573bcf3fa13b6817ce3d3b41ea6ce046939bd71dc67897367cd4b8d92255645081c0e887bb10b9aa3cc69e1ba66de69a31bf4d2497f4aa50148103d6d270fa8b611d32c310c4582f4b6939fb8065c56f0d2f50cf82315f7cd2225645665311a3f04becdd1b0f9392d55334974f4269a8ab86b524ba179a142127d8d5b4611456d1b4b4b7c30da566ba1d0618f0b946118898d3a12280fa1326a526c57bc175104b538c94ee124307d02d68aa271d1cf8e22f793a5f6a130e946db2cfc8a9b6b8b76e5f030bbce055dd306ff9fc99740be41a9310b0bd2c003c1daaf0686bc793e759f5546ec6c1b69d622b697a52ae9db464de22b1f35784900bbe276859292fb1e8582c10b587c3c38b31162af12c25ab54bec07b806524c3c0dfe264f79ec5505bb16d58a86c7f34c9407bf8c2cd476445fdede1199d98274baa51a4fed59c8897a9d1186f7a4ca10d16300388c901d6d9253967c4451f102060fe3feee86dfe42da4d9fcb9e0e7e0d1314291551006cbb4001d773519ea30a1ef95fc25fb968b4a96c9b140cf2e634ccd1033acf0fae9b40d2d42b33dd9d12158a41b03d6813d7efd1e668b487f6dcd2be95c59cb10c4c2a296d2e784675e0d91e4e827ba75d8aacd3d47934ac479ccfd48318f93dc7f7cd97021c5dacbfcb5e2c606928c258009066a13fb0ad7cd07d8cbba5087d3f23713223cf1187b4e8ab0db566a8bfa401050eb6ec94bad53b5634481944eb0cba11ae06e5dc2e40d89cb679a57abb9c601b50aa71dc9232a4e19f75d63e23f74fa3e8be785e39a51f068d860e78d1c09155ccfee8c19657a55a9020b66541c3f2d27bb604323788c00390cbfef2a22e455d66b80479e2992d856f510b6460cebfd8abf0dfc25a6c1974206678f571a322aca7b2436ece480949866d88ca413614a545e20ed7cdedb54ea8dd4dbb641f1b51cb8e730c6dc791bd51098ef89169f01bff783f21660f492f6b002f7661e550a56998bb9c5e60a80999862356c417f636808597456c129fa586a3d06197f42e6951b60ea07095e8a969308ff7f8800761d489ec4c1dea26e30deb924b27c0c812eb5fb47029963d90825f48215534c3768484de828572ed81f5e921264dddf79ba5db4d358e384d8e53353d58ba67b1fb2b924a81fd954d914276076694597b1476ccd7da54da65b334118521ee1c1412b9fced0bef37f3f9ed7d54717623d569bec80d0e440176ebef00212756a0587a6fba58287c6a453ea81f97536d0e429c3283dd620e013192e6f711ae5324d1d30bcaa5f4e1f97e62705b709dd87b78e2eb45eed79367fde8dca71770e48e276af473bdca499e53587eb33d8dd17d8b98e4f7c94f42f2dd4c4f983afb96ca53f43e7127532a1860a38d2a7a92cf3de69479f30b36048c8d37150dc7b705589665bf2440aa9dc00e867161f0cb9f1ed5b4dbe0491481b07926b089264ca3ed267f70fa10511b046ddfb23bfa5b0ed7f8bc00914b92e62183e6489201f07d42a7dee1116eecf81e8d98ffda8104589efd801534d8105f9f2e5a9139817700bbdc4ea1b455097bf486207e4e7842c0cb0b601efc012444837047c70adbe253976f2f45fc309e358f1dd71cee95d8a62cebd4f5371884277505579a1019a46141a20e6e62e837f40ce500ada119da0c62f78d3121c8f0b7bb3a3c864ff93533db7b1cda7d0d3388ecec53fb8af055c04201c6af3bb1bac4fb95aee72da3a5e4e219dc7e370c6ec65c5050c1b9b4739b55289f16103f06b57dee09abfc8e9a2a3730b1e5964b7aef76ddf7d51e2fa7a75a300bb369b857823289d0b35e1ac89b2aafd3396f15061a1d3c4d1358ba71f7804b3d65bf5a49a08ac535ce80d8800d3402dbab614a129b89c546671a98d812e1852fca22e1ea8761b9270764ce01ca3e9bb0e9c716a2d0e696dc42133732fb83072b5c40d560051f0e3b76e233a47e73544207ad0bc72a416db19e553f667e4e89dc5076a68d06a83970ed8541521685b244908877d2d3c733be1726e06029c4492001f921d5fe2370ec2e4b388ff1fa8935a3bbff1bc9d457f1a04ff206064af872a22765d67f49da880a3ee939c08ae26e03cd95bf47573bfb14dce1782f3289812d9e953609122174a24ee6e900f6705480698d5a8c5bec5a93d1b2b5f4900b618a15fde667a54c1324c942e1747dbed25fd2633058098b5c852c7455362ed32aee8b67764a49e69e68d74672b5444c5a9c1c475f5c36e74a16bcae0dbd03b4ff43c3fd3faa164f80266a4899ab0fa9c7d1eb2f97daa25e70e80937c3a644b14dc3c3735b0b8d15c514eb322daac159e3f042c16fa0c47f0ac1c34ddd742f9f6dec6cd51b6011ab4e9c284da635e4a3f8d7aa8afd2d759fa8623e25b812f5982466e1eaa071582e310bb76837f7b9dd92a2a8c6293e35423bf30c3975a4ec0c23a7f1108fec47052f43abf8c5d90e3688e0161a3420df27ca64aa3800501a4d3e42dccb5524dc4f31a72a5292a9ab61bc0854d48d924e61b5e610458c66dbdea49304a4ac474937cc4d01dcf5774a49d0bbe4c16bd6d0f915c8cd076671c518b844cf8a03de7365d5cf3c847ffda5bb259365ca0633d0d96325a6d06f408764078e7cd717c30431f189b0158705f528008cf998d81b3dd3afa080528ba7fdb55080087628c6337553531ed15ff24fef1797a99fa3c9ebf3e6092624819765c0dc8b252ac46237eb318f3765968ab9b503075925bffd810dfe727337ba0a3d42bc3819ef70be76338e07ca93bb9a1c14333036fe699ca26e23b5a3e3371e0a839f4c969dd9f8472ce3d84c37baf6010c27d03cfbd41bb1aa3130487554dbe98ec88a1c6f34166bf5ec9cfa5822a42f026c51cbffb51b976be441f95360929a54e55151727dd58a6921b1add6a1cc9e4e6a998998a798869495a08019346e628449257e9851cf6cf043314c32144f801c13fc1ec83e775c652ea2012298e762965791a011d8d8381f52d4047c28c5ca718b3145cbb20d2bfd22616064c01ce3ee0b07b4a9d9f7b9381cc9f521d4e46538123fb9d383a9983d21800990458760d083902641c1c1346d700c07e9f1a2ed1aa9829f71b31113e6bf9fd9a96a61375de8123d3bf070cf1fc615b0ab4c166552722f0c6d3686528834c148bd667f66f9a9d2c351492a0f4c65e005d1f18ccd41446eb40efcab4eea623990cd14738f151977246df3cde180f9823a879193613637da85f9b068089f633ba6c254328db5848a12e79c03c292b49820d999101f35ae2f0a33f88536169a5b696b9b632168350a95937c2dbf361c66b9545bed407ea86b167ab3a3aac284401af5ec16ce9231661f051d2137f10af40e3b8cb3ca0f590bfe2d78f02eb124b10effb9c71e0640a062f547d54015d1f64ce1d8f812abad555f6a7fe04ab7be6353ab85da1782de0c568a41b47abfb71feb2735527580b15b09aa46148cd5aac9fa925fac6249566ed58bcda1edc9224474e6ad59a1bbd685b67252e7b3804eb8f27f1c83b908824f907c865705e2c4065fa235c411925d0b0905efc8ef975ec2e7778ae90388d0e8d984cfcf0aa80910301feedbbc17b69c7f84a81c4808a68fe3da429b8fd488f35df24c04546d52aefac7b6114c7736907207e9b4015a99df0630b18d9db064febe0263e911140fdb9ac9cc60622e4abe5d374d0d9d664ec183e3235055d863d7a0ae742807991bd1670f714653bb984dd482d5a16c4b22d5020c64b52401bef191fdff216bf81dfc9f2ede97d54e0531cc84531b745ae905643c3da2c88129b025354a73c056818d4d89765c923bfde193b1f93c506581a1242e8315642c6a7b6297374e16e3425490dfb4c6df2078c4c1c97d38f008af31f69f6811761881ee5f1885f5d77182be07e15e0325998c1322bc4dfad88d293d4a9b2227a3413b046b8191d40e289a87fb92328464db97844fbb3f3b439c91eef980509154a81faf7bfc143e4b0815501e6722b04c31dd3c929ade0615268c47811896af0bc57764b7d75c80ed92af50bcc3d92933e49605586a02012f0bdec0344c1d60dc85921e0db45617a4b2b7b706f4eed273092e7b872fdc92940a63d1f53d0d04b775a7142f7389c5ae91d617dd1dcf4fb81afef5027845ff00eb288ecf47bc74afb0d7728adc68160fd892f517bb7c79ebaf602e7e2a19953ec65d4aa6d678276e89eff17bdf35fd7a9d9f31c95716137469a2271fbc955cbc7d2c95170e761d26d288a0440d55002de3e2a8a337aa73829126524d4c2b9d20e20a404b64bf5ab7dc00d957c90f56fe6008d51202eb699a7be50782887ba1afc2bd715adcf8ee3c2ebe0d412bc8916bd92030d16f3f7a8f316f2c11de518f91c05bfeb1f0d7a785d221113f3d4480fd21e27cc90d610a482a88bad141ed925d632390ff94824e588ed33721bab1fa82333dd3afa0ed028fe26ae27bf2c26568eb0d59233dc8270318d40e458d60c148e781774d087b3828b68c613b208c3a5bf86201b11188cb4a9fb9a050c1418f36c3bc721e71bd6963b4e1440704a821cd2c07c9333f11675bde8c7613a93b079737575bf94e1fdca6342a1fbff2539675f666a9487b74eb784738858da46cd9eaef03b1943827d72d36e91ca0162ab68aa3c6d3443e053d3466aa3778fe424056cd3b3a7a8b153a244ebd4408148cd045ebf3a4ea098915f15aec228b6e20324e464eb498e9602a5ebf373de7e4323e25c545c0c96821f9bde8a2a42483a3f4bee955ad0731168a7e1e1cbb8da88b11a5663678c259784a4bccc0b0099cac12b5686d76379794d1882f7d17b6ec0a955b2e8b38fd93abf7a22697befb8505e9960500d01199b45302b164727bb611234851378d3e7e651160131db8c45fd9c77001f128f6158adb22f539ea50f610762bc1301fa0d8e33e91f48fefce621f3628637d8a7d424e5633212883cce3ef06936bb2777690ca2059ee46c7a9807cbd8619fa2f9492507c51f2b5ae37d1c65533917861c3e50d1bfeb143d956b5e871261a9b6b73933e2ce9ff56e96ff6094ebe65e2026c1fbd815b405b0d871867934a2a8d5eb59d2b763c302e48951ec696352928a2f45b74cd64b17ff5a0a4fb8056fe52da40e6253e9d17d21df2a862642ce9dd1476ee481c3816b48780f10b0ca6b0d35386a5147e92422f408c499b3351df92216e70e0c25f9bc181272a0cbcdf1784e29fbc6b74c8e8b12b4e0414062ff420b7aac8d6682ed2c30011b8184665e3edfdd1c09e469f0dd7c99f719864cd390b70fe5173d646b31388d9807cd56c4e1734f992bdce2537eafad224fa6608e40baeded287d40177e65f1fc206b47bdde239439738cbfbf2a272e8bb1e94f46682bf64a5a29c49a86342dc735a1d5febd67b70815711c62c1604048cd85afde70797b218459f1800fe36b84545863df2a88155a33c14c4af006c7ea4adccb04cc75a301a5499530f059e19124ee9a70fa3908a3d097ff094a0c913be7d363c14325d21fb2657932f9cffb6d3fc6b1017685404c7977610b1f2be33788eff2a5c2870d604350fc23d67d5a094a7095e62de7c4e39158be7c3531b0d3aef47a767905bdb22bfa75a4a1c8f7c6fddc41a4c7761371908848afbe02af8b6e94a434f8f8d7bf82a85d6a73636dcfcc3f6fcbdd3d68243aa6d138969770d53d4ebdff70b82ea9e8d54003d8cc9f4a2eb0e5b2533d5255153ef5c542c59154e3839b4932902e86c23407f020236f0f3cdcf0460b77943ce0ecde5f7880a1ee077682a6a6f5935b68df223cf36e106f621624a7faafaa33dd2a4a02b1e64e4efc0d8721b26b2143da9fa69d5c9426eb7f13902282a9c9c8a8106177f4103fcaaac7db2b33e97934ecf71eb7362824048724e622f09639adcc922182d32c5a6a1352a23a8b74d74958cd598c99603e17e19160a41be92329841d67574ceb67695bb5c3cb5d5d084c7a952de0c08b5d95425330b2b954ec0380bafcc6a63f1499f6d96753c61c0c889b6bd5a496340900404364352865b48b99956d4a2da9d924804c9fd6a4cea182a51905bca7d0d0d9f88cd9b899677d42e5bf11c8126d19b7ff8b32a1e3192b439e643e0136758ce463255f5073b8ad8ca30d26583c408fc79851e4ee30751a91df327be8540126b833ad6438eea507360f8db16b2bddf844c537e70ff951229531557ae4c4945f637dc6797c418201a1a75cb66b713a01b1b9fecc193309fdcdf49346dd3021433e0e94eb5e0617b301949979a5d6c6f3aa8a3906410de5ca1bb1c6f527078fb24bbac40c306119dfdb194eb245432456db035e84b7cafa61c2b6a730bc8063d0ff34e85e0ff28a68589c4d95cd319581306b6cafccc8e7f317da836db24140d8611d8210299716bd80db1f6529635467941f57cffde2a19c90216c4ea1415056640575e63d9039782538cf4e7804e05183915c71b39b2523edaf1c9b1952b0da0c12dc272c00a2e1d5c3ce36ad10f96c5885731de483220a448c34a279ae35baa6dfd021db2f99ec011c003cff309918b83db88b98501d3e63de5a46d9df044b0d0cd40a8853c2333ca2f6f6fb4576f4f1c89a8ec5fa31b4735b3e9f503c0abefbd75eee0150ad2ffbdaaef4cf6de9486f01451f071f1569693c02a266d847e16ac962716a8391cdd62538627a2d1f148cbce2c6a3a69b74545357e68fc6956faf790a24f346296229df9314030410618c76ee4e321703c9cbc68cef6db3b00a485d11d1573dda91a1fbb81a0caa011e7e06432acda2c0ad414220f88a9977e560ff657b0e504e7f795a46f3b2e5a173b9c7d04746b9610c1c11499dc20b65cc23b7f2e707d2b10a74484ce72060844528507bbcafdf491608fd548faf6c369ee73baf234e51be2b1ce707446d7b6e0f7594c431187df7c375074f82e32cae2b66d6209bbd81d949c3324af5a0cf550aa395eea523ef198edc598af10d45e6a1018e739b21842dc7c4c019fd09a4e14e422b815c2a6812fe250db26ad0ec565490fdf4b7bd74e79f344970c7b5358af19475eecd612d5f5423775fffa210dc23650e4b4a2056426da90a3570149fc988983c09a259dc8d9e6ac7dae62878beff94a33a09f25509b38175223bb673b50310359fe7c6b1a5461a0231da9b51a34a72c42bca2251cc045bc96176f9e43bcf2563c0b55244496685acd0e106f67027915054d7031091ae9b8f5c85a04d02d421fe42b70a5a0d8adf29a59d11deca19298f40029cb8f14f53b401a5436219e3b94c60fbc07133cf39e6473ea0dc04f41c171262f9508332e8739af308987debed14ce6994bcb1a327875220fef07c71a6a970f608b0e0e064d0f0fe51c93856fb6bd81037ab853eda998d8309206108a8a80889f6eeb1d25e412419e20bd8dd25e19bdbe0ab220d461823e21ea518f7bdb797e88874b62b7ca737dac6c0b5499ac3965df32c385f3dce287ba958c3c2bd1fc8415a2db2d613eaf881a622ab2af77bb98967c9625ccbdfc3850ff573d94bee216017a762a4b3638d2376389705ee3a4e863e45db804d13ef8c61d41a089e7aae2d6f77dc856a1b9558c66bbca744645ad2e0204ae3f72d7c86b18405cafc02026b84e41a24fbb100c3392ca4ee302ee542061b95d80bb09ea0bbb9bbd6590cbb1bf14afc250c2d5c44004a986d7a1f257364bc3e5826a16794e81c461c256879a97505bbf718e5ffd2c0fb709d9907548459ce1000ccc991d314b9a7062952b166343539630bb02c7ecb396aa82225a5231ed9e2d2feb6c290638ac58972e0a77cac97ddb4c970343d5471542cacf91b3999097bfa958d5a70ccac23dff4f48192c65ab6995d95239ca256150059f46c7c62e4b590f0b5bd5cd4929689fcc01d769326c587ad76ad48754c749c5b0ac1757f877206fefaf961fb64e78578b1711a6618338c61a593ae2989480d280dc1f78e39b03c1e1ac12dbe8d6e733fc0bd06feda803e9de3e2e28518b7bbb00801058f76877172b73bc7320024a2d09dd92a8637482993e9a9cefb1f1e4ac168dbbbd5b7e1c7739259deaf5bc215dc171d985fefae17cfed8192f0de2a6e857ab43383b76888efa5fa8b1b7f73afe793a1ef4c8fc2069f1851f91785a95dd47acc5e2297aba46ce20fd8558500d2f515ae66e9a3091edea43913709b7bcf7a961e267ec18ccfba6488b1eb4c4e959578706f9a58fd8ee09999829c2444dc8644e0526d91b15cc1535ddaa6ded9a80021619070197fa9f6c08b3fbcd375df1b185ea358b6da935104646c739e0ff835427f85b9f5253c8cb7103b98a5b08cf897cd6062445e844ac02492a3aa371e3d3cba45d5cdc9843ca59d11a65897ca3fbc1cf97ae88df8f5215b58cdfa45ae1992aca6985d3ea712e92c89ce110ba19637f3a364a2863ea39fda748380d9b6afc7f4a0b549fe331d152228e436b671af40aff1eab7f055fd6ceeaa8904842ce1830e0a5e5cd999c094530e8eae52796e9717839fce6b58f1f45f1070baca94bc73e538b80634f028baed2a5ca56a7b11d80f31e1ca3b6860492a20b204fdeafe8b7118cf7558156b93b5fb0e093dad16dec812a9125c1ccf254feb76afbbbaf167c3268104ccd30f424c40914488a7ae9f4181f877c048805a9bb5f96474a24122122b61c1066e89d8afa1995a30760306d764ba8d74bd1041c163db24562d6ae963e93365d64da2e6bf1ef7bd0217a08a56577a0b122b887916e82e6c869280b095461218ea3ce9a04dfe6103ee5ccf3a1b2c8405808fd80c20b2351636862e43c25ae32d5d9c83b551ed902034138705e653c3d2cd6444b3a55a0368ad71d3dbe349161ec9f3653233957cccfbcd17f714a4a4cb11177b23b789fe4281820ce4b4aef651bed69e93116c744a8c242837ffb09f6a271997f3f8f54cbfa1310cb85f343d58b407359228351eb47ae8e4f6f8e0ec58040cbc7299c3cb7aa5086e4dc4108ce3139ae89c2702ccd5ba294c19113a0e076d8555a1abfee8b9c0b41bceedbabb5dd0be0131f34b7ecd2c692bf82a8f24a2c492cd480f0d186f63c5aa83cff68bf84151a091e3a8f07df20b0cb65f06e28ce6c8c118c6254006a986e71d17265c3268b710fd6e485a885eb840c02e451e3985e3ec148e9bc67e831e1042d81a9b48e6b84340e5127c7e2079953565d80bb2f40078b11f41ac47c538d3d77ede56ab34c5bb2e8e52617b5c813130320a5881470307ba80e085468ea2717d10ff20fcf69973a8c518385d3ecc51f7d2f603b60a1a3b261608c125ad1f61f723e0d17191e5ae38e3a31200288c72f3fe327bf22837a2a5f5991398f2cad318fb66a871dd793d6efde59471f284d45775707a2addd421f2253f87c494b891e714ec6c891c547ea8339621c082525993555abbfc534860c63496e1ac2aa7fec9c304462988a983d771b673cecfa0745ee5e21278a7ea1223a6c0d9b54123c8ce2635bb8417b04e022ded0ebfb391e3add7f8104e6777af59c2a544465d8f673f661b19d3c9975a8301b23b8b02f34ab8d2c12d4dab22c49385056c5ba9c456967878fe6a3fd2d42abcb061395425d6aecfd83beae2cca850da5f222872b62529c727d13ce20d108bce9a022303ecb2543721915511a0175ecd05f24e3718ae05e498d4d3b5685da68d23030d75a60f8db481cf5c909810c1492f53a85261a041d95e3e98cea7d50546610aa7d10b0c039a20ec9305f50b8d7c4aa46a008da8a241633995a29f115335fa8b224d2465352e7f34ebeea5c84ccd5ec608ba2973b719c00d0cc6a29fb95b757a05decf1afa4a35d46c0ade1a25fc3df2522254493e27d57b479b75babe1f6447ee87549a5e6f501e017295a692a780de8f16cf76b3c58521bd666288a58e7c5029c4f9db37474df5ff87a82243149c26e8ec330b581106a6a18814b15bee4d17a6a1e9b515a47bac084f88ccf27ccd9170b7f2e9f6380446f25e17642ede1f39a15664ccf332b0f15d84af6633b70a46586ea51de408cbc0242aa32cd4865624c3afe6c1f79f42ce4b40242d3fb12e065f5b03ecec6966aed9f61b7571b3671c69290e7e7b84fe2e98669713ca1392f5ed53417bdbd34d2ca437ac2b4b189e2841687ac313e77bc3ec5a7df639f313a80a296a9bfb9164b97ea13f74b00fe8dedebbf24c0698066c1aeecbfc975f8a493003879e5a7354a822b66711e58ab9b12e3e7f5617aa61b237e27e1d07444e0af303381edda70775dde22020072e90546ee56bfac224320acff1e94a647a327dd40913788db0725b917fbd18d923ca59a2ff6ed74d50de2d6d80c5fac4b364caca6bd351a7f09c784cffa9f8f429291d8b017920491d7314f1636e641b5372800b3ce3968a984c8c883698c038fce8a15ecbb22bba587b5760b1267e042436beb068642ac6dda7564bbdfaea96fdac725c5cb14be356156adc1c94c5e3098f5a75cd8d489d87986a78bb35163d6760ef868c0b1730ab1d85e54ab3c7590ecf315fbd683f827f08b4cb79ea69cc8973598846c7d40f76b24c04ef7727630de9116183dd0724ff3f763e8f11b330398f49283f781320782d132ad4ce10b6c577b3d48e970355eb4ccb3ac7749108df3f7ab48903890d322be6a6f03a14a34d3715abe7a62e4299316efba5be1a0dc809fa88d63ff05816dc58c31f70152e70b4275095cde2d52a443fd28493736da6e7f20f943fa69c827aa4d749780838425394c018d1fac4f5f69a91db067988fdc2a02a57c84a42e414ec1597683431b43efadb77369e31992ec6bc736377bcbc2460e53f2b5a4a01f0097cb1ee916a84b771a22128347688bf7f37fb50f87ed34b385d2d7e2784b837ac47d996393eb9908f82e400458fd45b7d35ca8e3d8b65bb6eb22910fe2b45aec34534c892e749326f460663e1888d30b4688260f6331e4628328116f182b033688f3b70b6515707afb691e3bcaf4f092fae638c8c93b7247beb9c045cbc577756218b1483c5cd014d2ce30ec854d0d33d03080306edff8b1283cc6d7d9081db5a2ba9584a60b8aad7f0e713276def27b65dc05ca9328e23a45be21537f12afccf1a5b942616b4428b8339f8e7c887dbb389574534881fee7a67981334af69c205484bc01677ad64f71e4fb69d3ce3013482c95c10977e4350b039e5e1f1f079976a2565ef0c4a4e03da3113c522b2910484d056f9b1f85098dd6b90ec7988c203e49e0780b1a7a8d7d656a9e9b5df36399a63cf616440e507fd03d098d278353e6b53fc1afe2513b1b21215944973d8471a7b1aa04dff848f2fc96cad1c79574f2a5241d928bd9a9633b9e432b2beed48b65cd05d1aab120e4ec7ea62268a750a7535816812f805381debac066d83f1c861d4d8547667a6608c6ee4fe5d181e30678b0da1343d3662a2493089a256a0fbe431f9f0d32211bf8401fe6e7a3f60e863c58a894ac90325e11ab926481505132a54ff73c069b179be8b6236bc6c3ea978416bc06348e53ac22d56d48d85b4d0140e93b7b024423d95e5a9bcf72004a5a5eea02fb4080d5e14c6ae7487006a7eb2736fd5f7ea6eaa0e94adf99ff6fb9da51454ae83c07fbae72567771108763aa4c37a5940e6b17fceab02bc4ff60b766a4a8587fed24f9b893a9c15fc7cd011bce38c439a2360037af81c79d0ed68184ca2faedd49f34a13c1a45c3deb20c1d5b2ae4aab48d38d4a03349ad13e06f7ad2186180974304105402128711dea068e1dbc0fd544c694082b31c8c0e04988af02fed1dde6645b064efe91d446466c3c8db1149512e88f867c7676c2c66c1caa7d93faf38874f0b4aed845bdd5704ff4c823fcee31cc92dba7c0c28e6b909991722812c6f0554aea33673618178fe8201ec729d44e85c1b951b4aaa769a126b2f61ece8a3b6664adc7c28517858e7fcc9396d30e64439aa482c164ccc88b6d5c2d57eec578dc659b5e8e31faf092cda3e6710bc0387a9b53ec9374a243d19d9316891545e46de6fb86adc101733b978968ce3e64cb4a05db89041ae12d51425193b77bebee2becf55bf20fcc902e0374d0478a3c9679e0e590d9f9edc7f03543e0484310990e1c068d47ffb8b24c61f756b1b104c90d451ca258779a6ce3ad1e3c2337e56421ba707c517da876c9eb32108574e7188a97aa395c9b497d97b397b2f1e5461a13c0f8af7edc174c1d897224de98914b20a3916457894b3a5a5ffdf99cc3250969722c36c08f2f41728b99053cf6972f5bfeabb50af145b555ce58028b7ae3f2f1ac21a14300a4ceee6b9042599b490cabae92bb8062401ae5a7a957ce22e0b92a74f7952f7d24caea4cc14ab0fe689e133812b2f281b1c561195973318eb37e8b8f263b15e534a298253f6c8873b01a42c7b9c82139cc3cf90b4acd82f8bed666f7ceea2f6db3b20368dacd983126350671c77867f75c82c30aa5f7efb9e58b748b1dd0998cafa92112da099d0155acd75c7aefd7acd7528cb86c0d88d596c99601731c1759f9531f6f487b6abf59653bb334e6721323d745c8d1b32e0dacdc3a8623b4a640e6a57566efa57879f49542bb9c4fac678f70bbb0ea044c023b286d35cf53f6e5ae78caa19051ae01cc8ee8d13860d0795782ea893841352fc89cdfc12b1bae0921d443c16c25c93b723148760ae4919e07c7da105a10604a78eacaa190bac33ca45a53f0f4bb3e0db18bb450010b2b8a55e384c5e150c828cda05022c54f0416db9a43213f528f3143ba979cf0d05d8d197d6c2bcba1905a9a1e35ea14f4b4098ac08487f2b009bcb7a0b7c49170ca7f96af4cdf55caea57870f85387a360403771e118310f9a8d94b58f446668db9eab69f3dfb488886426a0960924c8129a0174332314f482df6f56028a42e0458ab6c2d9547c497b9d64254195b2e358e0ac05945f36e6464c6d7492d46810143217d9de953d98a6c1e9e8ee622e24cec0914494d337346e9230269d4528b9421fad0b09bad502a7f26ca1eece3904795750cd7f3ff6e789e05faaf34ecc0e0bd534302159845af059abb906988c1d4fc7388905928825718262db775368dac171c58de7b6dd5c23e149e89a6bb0cc8f000f1d7fcd8d1da2b2abfe0ce6b804b773e52bfa0964107db6e9a9dbc342509c35dd48fd56d8fbf6c31f4f2ceff7865e90e9748c734802ed1b3175b064e77de92bfca694720d02817dc8725494df71dc9adc603f613f2c870ed7fa1f964e4327a39ec53f0db7f9d77871a4e6863d0adbe9b1cbdc778fc72500363edb5394bc63cf2d4710dcf86d39d07576d3ed2dd2a1b9181cd9eb649334b29e0d7f2d0f34f4af83d6db3fa0a8bf1d90394a3c1e512f06cc46ce84284f05d795824d06aa11fcda5a82db4ff2c6cda808e62fc52ca61c12ae596e1c5d4e490fb9373207b0ec6d12606ee9df5f766dfc4f1e427cae6bf87137c3544d3c0442aef9777c4b631fcda00ef16c2cdcaf4f9e8d6216258ef5f03445d2a3471df84072930d097a1810a00718713342fc2d8ba98188e2411ae0eec27492a581a602e3e75a711effda37a6472ffd49d2e55b4f3b33e4d3ac11cc69c9f7d7ea1aae1c02ed758d05acba9e8c603d5f5ce16c55db22cdb9d1df637b5080e394cf4a1addb47558a93a3e53fbff28a84b0969ebad34d69c9dbbf6fb1fb66e66626b366e07019bc795bef7e6450b8b2bffdf43fc6485061cbd16ac6a8085e4383d479320adc64c90d52133b52244fa377c719387885e8a11b107de80d4749f8879bf33cd20be3023ced67a9c47905965c4160a9d59d76da92e4290b004c1d7ba4e50e10f30c416680ac924fa5d35ec7c3482cab2822b9f9cfa40802144e83173bc9b39c88e0fe70638417874ac74218ed899a756703bc918f0c6cb4b4eed4f79909b8a0cfafe5168623a2e464287d6740a6ba119d8c189fa5b2cb555600aee9aab929011d5523fad06e0009784f90fef1dab8eed4a32b2c138030301388bb7a6f28aa25cf9fe8435daa062f497b689132398c4e8d009998d88495b7ab2536e691012fad8a622b6d4483355180bf20dbd3029d3a8c79ba0180281fea6e0123a07ca86bc0e8b49c555f46eec8d213cd513eb4bfc141e6bb5cc4c1f99303e5431574ead9f28e3732693323b5dd523bb189eb18a492605bf26d316e2ccc2007d158478925b7b3a31e0747c296a7e15a6e17787042e041f01b2815de9800171dcac686488f0d7953c56689c88232c15783edf4f0722f51d24df9c86e67a187f2a16e157c8a86bcf4ab36bd0be4741ede879cbce9c0601a5b66a4adee73401a0992658405e8fac686a3a440b85eff6148cff57fa508a9c5cf0a372c24f2561ff48aca315fd448af7765efac9ee089dac8c061c8ad4be927e4425474df56be80b4fa8f86d9fb2ef691b07dc39472e6379d2e1844b154750265f2b973c608f73c2dc8821d03c39a4e0707cc3a17332dd3e0a1678dae9857d891ace681501a5dc481e362c3b502341e9eeddd273c98b3cc26db599e031239cf805e9b691ae1988c8678f10158dc1fb1f1785f9fe1e4c9ffa70398ebbc8ade24cfb498cbc4231a67d22f1c48c26ceedc13bb3cbba0c059fbfd2a39011ad08c42438595afde459a9aa553677411d37df7eeb675bf6f6cb01ccda0f90c445db20e0eb46c61a99963428dc4cdc5d246b01a6f485ba3165e80f01489c44eb362da34bb054e891c1d98ee4a60dfb28f4f4debb4cf5e3032f69ca1c17de22feafeac06df49c8f66e7c68bb6fb682b478a308af9195c23af463277895942552f644037fa143586d3ed3caf4efe5b25ab1f893cf4f7e719250075a3e905e866fc39a60db46af3da8ac9a83c441291e84bb0bf9b4a9e57ee8f25d2ae57b3091e667debc6a5bfc16b27371be30d5223fafc5b9ba39f17c525ef014f36952cacdd0f1f2cb5081961f6fb49296bbc05ebcf3fcba2cd54a0629184b18f0a693a96bc80baacc1fcd3f7f11af368136e415ce8c114e117ee63037ae26f2fbb6f9a336d1155eb2313b6e9d3d165c9c028700d2f0b443eb2fb1a00454081ffb6e5893bc1a7b6cd60d2614f495b7ce5f1f89c153d3169d5eb01cf956b4ff47587e64e74dfeb7d12c36e915fda3c80c5d85aa6c645114888046a10a73eecfb93df8fe5597a7eb6630ad1e995bf34b257eaaccaf79b82070ba424afc6a80d62751fc87e79a7f8f18607338c099fc401ce2e8c0b8043c886e70b1707d6acf9a6fcb9e27cdcb32e6ec182b59901d03c502ef8c176f93a5f851ad826685c8ebd503b0c00eac56445722fd8a6cd615b719ee22ca883fd597302823f2b09a39f705aea87be3074ceaee4ab0f46b8987b7274c5086e219ee8764dcdf01603da48ee560e274163bbf4e1c184927a63d92bb2c602eace7d5bac8842e4ca6fbae24904996a099d0e6ad445b0f8efec9f151096d93084bbd421007b3143e1da808a082ea6c94a5034c84ef388a65204789770e1e881ba48665c0216c41af3a9e445470828271d10951bf96ae4a46f006bd85b03dc686979f773714b26479216b6380a7a25ec46758c110b1625caa0267fde8950f14891d7f8ff851fbf685e511b8bcab2af0ff7d0766c0eea038446eb040cdab07f3cae82762f51b704c328b5ad6129e6e04434298cfffe9b1f1802fb306006745a2a27c126f839cf8d1f8eba21652425b744f47abc4aeac2d094d77254f1cc79ec3397358251399a267a858616dacd053018477b54c624b853fb3cabad7a63b34fcd28f819c0792b8a9ca1fd78fa91136532c21798856bfcc976ad09cd02525f41c8fe2357502b619210aeef3656eb27d710d2e2e50a812d271e9d25aa1d535367f6846130a411428a1d1ac5c4604ea21740990d0acd8051317564204c538187c90bd3f0f5e55c19d6ef359d891c40721768e0fda29af0faa0b20348fe6a74812da73f4d56def620370990f0a99a4d7f32f472258e10dde116d65a9db89014706b6c3cd3bec6207dfcf6249c4878366f58610e39f7db2e87665a5e2c2df5d8ef06c1032b9d15bc77f3019b4334a46f506a5fa8b94d4fde7f592ba476d5ee98ab6c0838e87631001a216e447c9a75a83da8b85d0e555940a20f2ced0135c1417598c0f21efd998564c2d7743c8c790e321d69ab33a9ba427b82a2c62110f54feb35935c772064be802382a0cb0987ca21f215048a4ea0cc82366664df336f30acc4ba2c0b1ebb6b26a447d251905879d5bd4aad4446fa218ca758dc8cd40195f8815b8d019019f917d3263cf4552e894fc3f63123a197473ef58b47256e6d57a2dbfd5362cace1f7057aed7a77d9a6fcea6bb5e0f600f31a83ac140411ee920153edc7f30010e73d114fb65e9204910ebed95a8588b5627fbca88c20facaa13c05f886a8083865a1367f277b7aa469c3b0644db41d8751c5cb2d329f00df6680fc65cde1962bd8331d540caa663ffa3aa4aa94d26e468572c8032b58465c83440ef5ab3eaa38522b4497cd4777113e9940ccd201f4621d63fee188bac658d1368e77a44d8242a1602af5fc0fbfc3748fa8bcf35c6f8b4c11641bee3f35405cd216b8f70b55cb773c173b9ffd24402d6ca58386d4f93948e0a67797c81a1a94dd30528f264e71d82e1e876e8a8a46361c50d5959faac019503ca5b9936123ce0fa18f322fda5e0626e5cfa5550a185050ba6ef44eec3a6d2b2e0f1a6e039f7899e306994ca12961348959b7ecab591624f0cd7eb768d1933ccd0828bdb4c8b41defbeb4b096aa0f25b83fa4a052eac990dd8c5d538088b92dd00552f5ed2b2e72c90182eec20b3cd417598c0f617967424e6e5e0c836d68357d50a48fb63e325996d66dfa0d1b70e16203b1c2e251c3580607cfc28cc56343a21c8d55e3265841e7b10eaf086ae46ff6b36f30427e38498c25d7168f799c87f0034fed71ac90857ec0dd691516f64380511ea8f1aadb67d547650c707ba3a60355e2b86b9a58fae30a2595143815670f66600c0555d932f6b89ff5ac8d007f4a1ca415d645500fc7c65e6f3fc115fc5739462449b7ec72a7bdeadc5dd1ced91f44ffa034af4f3795f386536797d79575e7fbc8912e7af731d562ae21ed186ca55a92e52f538927225e9008aac2972ac102627bf6201a40c2721b28271f94aa8a983f14effde20f8edaaeceaa50c410a59f50a21014f410b0f9a67d371ecc0bce26adff0d34712a5a9494af115c4fdb2915b31c124118ea29703f98abe92a69147e41e150ce7519d44fd5094e9acc5e0040f19cd8c135b5075c63572086d6c483299d05aadd8aa09a830e1fab37341a02c7735446701762730176e34b2052ec997763565b2fa8e0ae4df344d7dc4af2014a2c5c2a003f4eb0a7f49368647843be1f64e7897a2b6741db79a2f7ef141903c49978c4742f7ae2e874ab7ad15a98f21bc6f37d87cd879ab52e9ffaaf5d0af8732bba559481f4dd102a61e5941d348d3b9ffbea406d440b6f60809be705832ab15d77016910886b6cbf869b405daf68df4509efd9bebd713541f4a00e7c0d8900baa1f669fbf333118a9ea709dd42420580e8c8e13576041eb61a12d58d428369d2ff73924a7f7a6c2a21cee3724a5f1dd4b6f63fdfb37048ec8f3e9cf78b438344052e9783956ac3239a6c46a93d19511c7d7ae7c86958229142b37016fb712c0e6437715654c4507cadd4dc00eaebb87f1216efdb186422e0b7ec10e44688c62cf97a9b8f326d4809a8b45173ca9ccc81ed2e0244defe75209c36ab0ce48fbe902488b57f73ecdfe2f09ea49e6def608247e3d82f88321bdcdf6f48c77740ac91460a376fbc653a15aa9d1c9a82ceed9031de4dd0620dbb309909594a4af804ae36feb1608905b1c0e2fa5c230376c660cb58edc4a0e052c21aae4b4aac76d380f525689d49a51cff5dffefe28ab45d7d71d24929138d2dbc27dca23324779319b29a4faafd334c19fc240cad297447b2e07662a268fca141143dc8ff9ad52704a2a45926bf5c216c5b26fac5ae898e2d038814c84ff5372d7b6cc9a61a26a01a5acd58de0628538f741bb34cc11a500c6bf25c18de8e0ad6df1d4e2288a7438eaa9ec971eb2bd716f23cd5d97d732f50a4137c9748102e55526bce55233cbc714a10d0de36e41fb5987debf164c814fb10dcc40fa0067eabeac6f23993ef6a14e6d28621ca706e2093ed53de8928b892622db3694f762124f6f246768a298c87171379c1f3a69a8b43c2e52425aa5eb97c721ff2ebac5dfc826243ff994b556bda97b216ffe5bd3d6a4c03775e434777fe3da7b6ae9fd13e67f40ff46788b0c404c7ae72c189c61dde35a836880943466f9fe5b369fbbeae7d04e143d10faa1537e08e4ddac747bd50d4836f13fd27fc5437d94db84e9548fa02c2ca0208a03c11b7138f710a4f7730dee2d7c615caa22bfe6a49053755abbc61ee8af5880c0d8270d5de40a218b17285f54e234b5ec9ca19836d15ea0fba200dc4f14a86d9c2771b0afb3bf0f175d935ac604e4ec7ae792740523c5fe941bd812610077e3a7e853d09184b5b40e1421788cedafd4b2d85456032488385945a26f574406c20ff59f9732e236826120831ce0e309de3ef42b2a4f6df7363dd467a4af83591c22a2891b435d96a38c1f40ad659f931d4a09101714e91ddfc7c8ea0c32699de3e87683e9617f3a3021e5dd9b21cb6064cc28d798e0cede66a257a07cb4bea84987e658ea917b0e7ce461f6877dc1b6fe972e73e96db4a6c445c91bdecb92280b3aec871106cb47189980a45c0fb31344dd988f656464643822ca0de350c4c3a614828625043af381fb0c32806b301216a3f3aa50617d004d5ec51527e55446ddd0b553bd78d69467d11a2aea64323a7ead19b01bf2350e2fc892630e0a5138003bd0ab5a1e0fd763c307b3bd7d1e9a3e8eaef7313bf41ab5696a3c7f1effe18d20d7c478b95f5aa5700fadc9b3db372afe90ec20b249f9e3c2d159cd4c7e7f6850290289e19e19b7d7285736ae48043604fcf20865236ba7909ed697918acc2d4bca5035dfdd2e0881b75e0d68bc2c1f1971ca832784b255ce8cf9a72a670019663c57c9a3d173a3b80e445fe75632ae1b549f8287b33c9819fdf63062117e0402482c54c305899accca720f894c1a5bd243af5741dc8b94cb85e6f8bc4894f80032d17e6f6354fc1c85d022afa633f1b704a126f91945c003ce2ec44e700e6d4fd0734b0f60db460f6cead3069a0be84ea4cc746d6e8cdf0852511a61134816824fb9f5496b4970ca7d55ab15d4bf671ce78d6712e7113e2b0c327536c7edd227156c29eb57983e0e9c060af807e444beb2ad72438b682f2b43b0f033b51850043c9fbdebf7ec6f91b25b43c7b5e58d6939589d356346fc76fe64e93b07c3a4b2ae139e0887bfc36aefd07ba430010f9a3196bf0764d047ca19032cbcd82d0045780bede7d6cbd0350a9ff5a04f4a0203d03fdac86712ca72b6bf5aaecfa39f32132bb0c176512eda521678c3721b1d044ead9613330fb21e7f7dfda6763ea981cf2c493db30d9248dc58e22e75b9676878c9ce5b9a2ba67e726acebf0c8b795c3c8953e25c50a2858b59cfc4a532624e75076c1be1cc919d691bcc7f9dffe4f238f505b0633c9b9ad608d92af53f4b7789d5f6e96aea1efff7a73edb38ffaf57158b45b724e842cfa0253325581b14742e54476aa3a47d780cccd5b290a507a5b1f10a97eefae8319e2216514915d328b6d2c49fd806cd642dda9af5c513de434062fcb3ca55ac2532cf9f70ccb2d6042f7db829f702d61588b491942565b69dd04b69840acd60fd25127048e50ae84df3be74a32fa03c464e5626b13f663e82c0512c73381b617d14fb9255a441b0bbde8043652df63f4daf97d6bdd6328ad84791b62b0e0d3414407f92c3c55a7755086e653b70357021d756a30a3395df4fae3e2cb1aafa1dd798e73a5d9f05d36ebccbe1d7d33b064a763dbc1bac64da68a261ece80383b86354ba87e88dec5a82e2f1dfe578df742e97a259941aa9b002aaa0855d3e2bf9c476a82a50963a806bdffa61a8ebcd4dfb56be5e04715a24250ea3cca5a90dc6e6ba3feb528ae666a254e4161586bf61669ba8e143cad9a0151cb9a131c84f444a91cab3d0b85719a51f0d218bf6533a2c87224b1e3cc48accd3a5f72cb2192113227f23579865035cff88f5b788ae53d8d4624b83410d7f6b80c4ec7064093cdd523ee6a5c591fe49445df2bfee2553417c41d10a347c887486bb35e047bee4b21488586ca0899c1f2cbfb8b14e95b79c350093988fd57f3050463434713458a6f68c954b51c434ceddbcaf5b84be21ba25688fc599a061a1bdd8fa511baec0d45ce0c8850d61a8c332d06df5289e3661603aa76813b77424d479160641bacfc419fb18619206f3a863764af1362ad0894c60d964bbc3824d838910ff0c27448117ea5d8875539420c00de01184c3aaeca8b12a9908ae21357d82bab6e5f755df7c5d12be13f4eb7f562e1de08053b2d5744c0ba3515099d3b5e3884c0f03d5bc56ccdcb8511a19e70da6c312023ac8456517f1c06411f29580a0cd502329ecd1a7308a316cff52fc920b1f50c2fcea82a21aa271a5dea8befbb6416ba3376ca2fa12bbe34136d9335b4e15cd26b78a61f2cf2292c3f6b8a2f0331705537f16723f4b4e2e83b1ea594a5032177926932d346a09dc6b32b5a91e919102e0d18f75b8a6b799a680c0e02d712099a2b4d624f4b935f364027678ab2de4dced236476961ac352fdec986e67018fc4de69c5ee363f35d25f7bf83b9ace77943c35bd5d6b0e32f552547452f1bbd4e29b69421dbc75159a57cc16a34902a1d53ead827a24a5c20c130c6b222b91e42b223b3541a310709da563183c3dcfc9c8f840cae29e4a155b18f7f48371d1bb3b5b768f6338f378f6c663b347d1137234f33b4a04502a43fe56f3664d6d86f8eeba156c0b9f6fd987baff62f305f783f4d05c5a626a72960973b11d420d7acc2ce491f0f7d50bc48fff50c386fd953ab1017a679e4ed0da5974e6c15addae85530bec2de92690c728515be9746edc82dbb92a7fe438e2f50c688525ca7520270b17d6951417e8a3a1765f51df93f4562eed022ad36618ea314926bd10832839b46f959c4de808f4316ef0c655cee518f5b2a665ce53e4f858a218c08a6e3e6e6be8e188f6cfff560480eaae6b143451ebb122a6dfa98bd438858a4a32a07f340bc42324fb5e9c87b650fd2e19f9fb8ecd92653a6ca0bf272d8b3cc4577314936dd3c5feece140e52655899428581d1235a3bcfb67cb93e447d5e6917b1faf00cbab18b44d385aeeca2192047fa463b8cd82c125d21e599c4c70764cedfc8b2400f8e3b9b64afa9dfbfbf8001977776c7b5ec116f6ae81a1bb2e05b03e1f75c79313d412e9e79a862f4cdea7ac2c855395eb334e5a00a02bce94fdd2a4f39211c924c051efe72a6151b6fb2ae52594dcea3c90d0c0f9a733bf1c4634ea9898c947c0ba6fc7481250c9dc1b71f90f89ca56a12eaea4bca1d046435d83133205504c036233468206467927b7967e8a57f33fdfa6e0dbfb6619e9702dfb20d6c41382b392963c53d1cd07ae3e3f5ec56414e105557248edc64ee785f658f5d3152fd7f8f589748c480bdc52b915ddf1eb2825980d213ac8bbab3dbd3abb52f78f4609286c0230f1a449a1712077558f3815f7a2854a211bbed700f3465666e1689f5f1d8793fcad02d26fcff82582624a9619a1b61c8a3cedaa317559075ae13596ae51ea1db25c3fd1e1a45bb4c0b6318ff928bb57c091e26faed108c235d8542c47fc13f8745a7a4ca1ef2798e4db3f78f8b449300b8bee186b977e723033b023dee63a0f858e685595df29e69f37c2de27b7fed69f67855a506584d2ccad613f3c7de1b649ecc3eda4af98927afc1f3d4b791e9e136c0e27565af161a21476dd38c06ac569fdd346e19f5680e03f7d9bf3c87ca6cce4bb5e4a9616b3551937e6af51b4f93061f43244877d03ed3113f7e4249c0e1a3778a76a916328f24ec4cbbf98488e369178e86a1d162c6b35e3b0c77107e7a761d147dfdd4877f13c2840b10a0ac6c496a6cfaf23f1ceb44de84d951a078c35e8ccf0c73de4a77fcdfd97de4d733c792866cd7710a750ec7586b57d3e86cb4310f7cd548237ed577d6241ce2817bf7bfe50e33a14b0b3c1c168dca4143e5fae1117a354d06c21b07d2e439207f191ac9ffcb218d83bcbbf70c876c54d9a18ddc2bf61e30ca04113321c9f3304d54913e093909474bf2914792b8b55224d290db0b31a0a5d7b3bf702c1626114e794e34f59a2c988a5debc8f4e8540cae869bf1e7fca4fafbc690e4711ff7e5b82eedf282700f60cd00891a9ae4024eb4b0f1ee4be18373efcaca07fabf3bb7e2c3ef6ace9fe80ab7c56b58b940bfead14e79f1515af00b942307866d82e89748deb01bf84dab9f237cc3a2829635b3fef1bf8735164915f9be45ad0a1ed657c904073c74cc0da1733b682b0994fb44f7b018f990cb497410ec95b83858f05f3ba7907c217e49f2eebe8b86493296d0765a76198590cd78a71664c9fff26a732b9455bb5d3b520091421f8f4a517d9b14ff7485eb8696fe820491d09014ec7114472ad4c1198ac4fa16a5208942f8504b668c641ad19e14b895b22f449ee19f8acfb011091a964ce0a8e880227f4774b3b1e0ba512a23ce44d55534bede3846515f91454761520c5c8062500da6d511b986b3a3178c4e9160d155924f9998b2b8f3aac3844b9c1f38fbb1cde4841075381f7369fe74fcbf2a71fbf4f080d93531cb33c52d30a0c498e47d6e2fa348e118a9f10d379525a5e231c0313894630f6ba6f7fc76756aed2e4fb92838ed78e8c3cd136aac03fe9a359024d299e58c1085b7210e747e170e4484f9283aa029d839ee46ef29881981d5601cf2fc5faf5a1db8b170b912531a159539d9218a8c938797218ee20fa6ec79b154206d940e0f6f81b2bfb7ed6f584494b4687e8c89a03910821d20ec5615c149292198060146f163e4cb89c677db8629337b96eade50046b8308596964c30d6bec96c3ed4096b863ec8ad6154001077ced372a5d460bb8068cc19ebe4d8901764c0c90c4ac6ae037a58c152c00396db2c34d17f3275bd03508c5dc9e37eb4c3acf454b72d61fd6f28323e4cc2cb16038cd9f180773e8d345479ab7c922bfe59237698e616d01b69a06920cc9ecddfe07db12de3ee32bd90007a4650414d39aa64be35b24a4194924163ba18c206e6901d148a68d2a86481095612149d65adc2a5f2190c24ae430cc196902b11d62993f720ad0ab19ba865e96a674045b57c75b2a5ed963d4e1a82bef834482b7b7164a7bd1bb0f21cb2f4cbb23395740c61f7b006268d79399be29ff8b6864149874b414777fbe368a36495e85c7f6cfc5e4bb5c573bdebd830e9df4494098771c3df400ee5b5f857434a1869c145723dcf0c66fb8b95de41edc10b5e8c4856997cc49fec25aeeb4f74b9ae7dcc887c199d26795dc940d1fde95324961ebd38e2b5619fd5ad392ad37e89a8655d54638202923e088d6b64790b5471d0ffda61aa2ae2747691c77259d1a4a5d74a18fa9e3acbc6072651a599a520553d7d7270634e83a9eba6b96a8724fc2f4c10d7fea381d3d62b223319b65efb540a4ce03df0ee8087bf04af25710c38e4aa1340570c146962e0f3ca8bb2a5081154dd5543228c10fba99dc72b37f434eee6ef8d0bb8a62bac06d9f500cf553523bde3666671e3688aac3ce38b33230f9c1f54df4bf502542f10f1113df84b117b9eb13afbf9568b23dd06d702975a880f2b870f12192dec6c8d56841d4492f24985eca4a5bed8313c693762824523a92a3d7a8c5b024aea16fcc013e0e05e9903f403989028bd993590681e10068fe52dcf60fd5b01a63307854d54cc57bc6f5b27d1c1b9701c8125c028e54333c11ca04dec042c16ac85a04ddb1a9b506c819b0679920c8f13fda042c1ad4c78a1e77fb8c98063815379286a485ed18c1221e14fa20f7599c4d9f3be9f5631cd94615559c00daa7759573b8551e30a64045b22d23a09827ca0262fb8af2f4a82fd1533184b0d153587e8160206c96bcd6b7b042a24f8c073eac86ac4b84a1f49ea4f4f10d5fa630df2a8fd5191941c5c506b55379137b1ea2937f973ec8aa3b67694f2642eaea0b929889ed9c0999841bbdff5f239326962d4b27f5b8d06959ccac29d367153a2abe3841b5bb0c564353e612e5565d15fd5da2fe09410455787c459d9fec92e3f302f0fca0802fdcd2cae81af41be336ebc1094cc1acebb75dfdffb6ac20fb5ff111e0af335236b81e5621ed45b1f065f66905ca8c077d635d1a3a7654f08fa7204fff6f9dc79903acdcf1d7c262ef34ae08aaabbeaaa5741f1f8860929e2bfb70a0de7a297782e19fb811acd54c9d72daa74f0c78210cb632264a07202100ef5900c352f2de4c03bb4c7e70f53689b0bedb29cb8440d2139bd880ea15d0752282696f15d9a3092d78b57f08c3df2ca4a6a05ac65a866b7ca41b23f21ae8508c2e693098a6049e383df2578916b21431b969614a30d82d08c71bab9e507bb779d45ce1451a04f8981ca0bc033f0bba2f6dd45cb8bab630b2702e839d05504c272d9ca3904118c00214696f47a98588b71a517b99787c3b253b46f08ca7da10a0bf092bb724c095107c15ca772e6d3a9c5f77e31d48584909218a1b1e80021d724f21ace72f911df9722c3c2294748b4345fd0b0c1798d980429014afef563c07c953570b14a8c1fdae0865ace4fdfae1cd666978ef243ea186e0a4907600e0eae91f1d18b374880de57c6e5d97af899b81d8b06070adab07da1923dc880558dbb60028cfd252e4e6cb12031835bfb1f457d3fbe207b7a74ab487fded86f11bbd0f729d62c2b7c5500aa0bdb30a406d4fc3d4659499bb8d61427923aa1ee0469c07962e3680af083484b06ba1fd1c96896bd0a6e13dfdc0848adb695ca77cb0c67e1ad26864546f8d9eb9c6dd4d6a4466ffa98c46fe4a5664f812eb57aa649ae411be1abec23b3aeee3a936ccdbd083cea2e7dd6b4759185f0a5c8c2a3634e987f44052230f2d4b2c601847ef47a4eaaf918d673b553360a00c205f8c1313b280ea76ee9690f0ef7edc5674ed8f821844fcf368e601836dc995726208b48c08d2a83b6c0dbca1445cc7a9e09cf2f46005e556a8aa02d12034a966407a7f07ee3fff087f07d518434208ac3d045d64ed568cd678c9d9781e72cef6d3d7b96e127e399e10e0d854f6d098429e3f5b774ecc4436a515b4ef4b386705888e862945d540919ab42cbc95cd4f00069233e3946b344e1f6acd929cd00a131267d4522ab315c26930f8a01c534203de3d416bb0100afcc30a1249785dbb2d0444b628aee20961f0fc3f4d8502f913b1799b1a4e6056f81478e1d5050e9579c2e56ab964f68d3a21238091e2a58d30cbedfc1edc744cf5e9de36ae6fe7f0e032fb9ecb4ba1a0218e7b963f178dec91e2d023b9522bf0d5bede8c87ff11dc3ec8baba3924be4141f891ddc7f6a11796a56892a37e2fdfbbe1bb7a05c40751f2a4696774d212e637de1c65bc142b4e82601c5de3c44cd65acfb15f7e9a2e993e560db8cde9a6185926b808f36a7341286e6d5393ae509c8e7609b9ffbee244af804ef71fcb66c53fdf6dd9eb59cf1a2cadc394e855443622bc0927475cbd7e2fbf6ba17c2712da1e6f9918575cc69816148e5c0cd4683d3ffed26eb98dc5036057422057004c0800de554d1d215e23abd22a5257829918ef7e8972ec265a00f78580ef6655db6e1da8743b9743632b8aebc483ed8ec0c109ca13b05263f151d5eceb6d2283bbd783f8f597a562262e70bc0bcc17d8d1c6a55c56de223b02d84736db8790b144a0471be800d2039a12df95de8bdf2402757ff70db91d74dbf8a5845a8bb13b50eb3eee017793fc2ba808ab9fb0aae42665bdc3c1172350d19004915eaa9045387c87967682ed04c4cc81b158ae0efc688453db34ce04e0101eee7d96fcb05e897ceab9966a11544f8d88e90e0992881b8ce7995175953b46fb33944ab8ad2ce04b7250014f247c641b78f819ac3c9312a21c186b23bf0d93b19c040518eefa41dc7279183826d1f6d16eae03f403a6760b68ddff2dc859b3bd84f6c4dba8d9155c3da9e9d5193bbc2456c1da58fab2ab36bc7b008213466e34cecae6371ee02fcdf498c1a57d62d82d82bc3b606085c5f86ef0e747185f41f5a1fe6057995b3d3139d0bc68d8cf8064ad09d0415ecc1ccd5224d2c564c79f896ca0eb051816bd0bb9589db9ad1247986978dd6818141763f40964b71a154ba7e3f1644684357f816d186a3e539dfac9b3404918220841831ddf22a9797d94fa497441b3e9f96602ee90d4c2f282b3a32bcdb438dbd3d4e3775917014bee14ccef425d0d0317074b26cb606d241d78dadc963907d9f51d0ff39ca6a073dbaa72f9fc8e34b1336d6e45d6eff64f67227916c6652ec75610b069d667f5bc646c3a8d6bc4d12ad69b1796417e7d91db88f4ee390eaad11cda231f6806af643224c60ab2334d51cf848af6acd59aa349196eee6d1a56308047fc6851971306ac3aef58a5e23d67e517e171b740c2490ea4637256b4d4df846bf0a09280d9e9c81ee772c147530d90f354985e4ef5feafa9ca0907ce2c158da9d9acaa50a6361665de31ca6e346efe6b69e48638535e6bc21a2a70c0f880ed23d6214da0a79e905a7fc52abcd86394543951c21d3cf3f652f85349df0e579d8d8b1b54840134df416d26bc306728f61a6d6a63e9923baeca7e031a70ef1c6265a562f24b9ed2b8b3e2f0127ff2ea8baf19c8f630cf3bedad4eb01a291d7af7678b0548a06755478884393c8eaa15543ce9d09d74462f358b8c828631ffe8252dcfef60e5adaee242d0c84243c4382c19cce3e4ed17e6e55ad906a6fc5e29123d9e4a2bd82a3ed221df2f5867eb0bdb526fd4e072b1bf4762e04b918708e1186b3a223723625bf837f7c41f6c7cbdaad844a0deaaa33fef2c74a3befb6566031da42b8ee5d63716f5336adedc53967809c385e07a9234751bb8000cea819fc2aed8c2a87ef853ec880d4cea7bfc19734c48adab738818c1987c38a6dd17c1c1934539620d562368c2c5f285e020588726348256f0a9c3cf2b84b1debae955a45d50af0b18ead1be91d228fade73180670887aeb66260d09ae9670902c4066f31b916b40cfaa52bd5d9274f77cf40d394ba7755befc586bb05aaba596447edf4e58ca99b54338484fa6e1761be09e19a4490c62c8885dd4095aa622372741d8767fe2b7b53e8018b09b49e4cc93b6c07faa8acdc27284a90ba7b2bb1162e7440190928d8248c23015e16b7600d56de7d3074a0cc2f2b4265faa91ba5d8eb0785914e8ab1e0b4b9c1c91e10d0426b2080e4628a2466ebe2b3890e14a6d0ecd9bb14c647bb6f70a09a1864c916a6e862b3f759267afb6f6a9639c1cb5981eb7770a646bd34d1c10616ecd6b1dd3420bdf2e5e07a05d7c15609488013a0335017669ef433b8f7ba556b9127cdf7e5ccae2b1ca8316f3e64d3c2116dfa649578080a51a7e915ff2aa06efa77fd0f4f00ec22cf8860c76a454bc16177a28fda735b3d3b9290beeba32fd663d043deae32c5ba8195c1c884d1f8700ddb1062e3d912a3d2ac8267d66c181c7e6fe665760b5142babf6c66026aa0592146022a21e1803a11b993541d74e98cf92cee85166946e5de2f4d8788da62094f881ba0d0721a9531988958557550529d979a5d3041a53d37a0d734a805532f7bd7ee190dff9cf361798e166a52cd1632fd06f2fb99369a96caa7d87e80d5917f36b9bde66ff458ae4bd7017fabdcf497aab457e9d9adfadd6140f518ee5e22ca634d597823a7547377f836356045886d0873834da805ba406a04706344b97ab5f5d4429e8e8a9ba8e101d8b2d1212447342badec09c8d12282daafcbef32b14c34af472158f96b35ddc60aa0e9e4436521b1bbcd6a4e9157cfc4aa9e32ca007224c8a8306a320b37c74e8e71babf156b5aa7145c438af1942ef4c1ecef4991dc78cc14a93b295a75abbbe4d394be4fa1543f71f9a7f0e2d4d98a036a4a0f54284541d96f28412151722207df04694d777dce93256b231d91de95e3ff562fc1cb8f0cae7af586a3e53dd1398aa8d51ad385d8900a684d4501aaf12ae3696b94100513cc46a5229f84a3f34b2e22fa2f7bdf51a8aa292b86a4dd1d91148baceefe7a9c02b7696052832b2e23912d8ff7457f9eeff6e5d17fc5c9df154ca0d2bc801e5a69573ccf61653c2fa111a07118ac14e0caa707cdb7416d944e59844d1c41199e4d46b02e09930dd5c0d9a7cb7b6488c816a8af1ac4076e11a9ebf82fc9e5d8fc1be1f723887f081c56aa508d996daa61c066f3465ae64130572b1ee9a7faa091b6b2ec2600c95a3a8c0c55b3892f1ef567d9fd8bce9cf753e35af6b64c9ffa12e9edb80af921cb56047087c7d61c19ccf1b7c763801cdbf9cac29c0bd6413f1189c446de317695b89f637ad13f6c8e369eac181099b3850afa2f07c854ede60df4a393c22833b9f1e34c094a6b8eeaba3a109fda7525632c3fda713fcf9d8e0e853e9d33b48e8fe64bb888a3d7f20c7c13019f5997f5f80be74e84f83538504570e7a78e74aa5f9f423eb8d70c93dcced447dc64eeb3d74ea94838ed384b6d37df5be9c5f3a58e8dc2f7e8a2bcbca9fbbd8ad9cb422d6f22194a3c928b0ae8fb2893b47848bf5e9330a037efb72109c65a08e65e8eea1962a2971f00d00fb41b1d185749f67f9548735797f9d5844101afe7960019414643dbd2ed946649de44f3d40c496fa9a5e2b57caf47442694b4cdf73df2a75b43bd4ce862eb7c39a48ee11b6d2b2c0675d1bd5444bdd8ad09b455052e2d840c0d52201e594d077568dab518de80654bf9d29b55e281e45a0ccbaea68caa4c97e90950cc6de5fc1458fa600c0dfb64be5bdef45dbaea1d72ad7317f90b3c323ebf6e851b10eea732504bb2f7eeb6e5de5bca9452d10ce60cce0cad4804f76ef17c8109911369224c25575dd4228ac20a3dd6798c780d5f2fe22cc92d8bac3f134d1487a6103aada089e42bda788ebf878169c8f6c1a18cc10cf6f64e13bd08d9db442db0fe4d7443734322eec75d54708cffe4be7b127843d26fa0a54da389d80737b9caf38d686302411063fc25830d12b9ac9482bd4dd454c4146d215cef010eac5f9f81f50ebcde024f81f5be038ef9db042b633d70183301dbb707cb2fc15b01db37037788eda883adb839f43f90f57f59d25489cfc974588c46084dca314c3e567f7890f597d00be0ef6d81decfe4bf84ed694107374b48a9d314fa2ef308f4a652ae2570449c30bd129fe3e2f9e5e9fcaeacd113df3473538ee37a87689691b0b4f6b3471fc751cc271c273a29382753fa384e4ff34f15d516f374e69baa8b4abd00cedc09bc944d7f99721ded276b64741a3e8868cb8f7a8e2bf590bf064f7f42797872d353afe1bffd9d87ce75a5d44337d54b632f9f4ea6d3e97491b05c3b0814c8ed03f75c959c404e028a3b71dc09c53daa8ee8739a4683c80cfbd30f59fe1f1bde7f25d6ff655297f99f5763fb539f409a8aaa2795d3ab5c69398e034192976364f9f36cb43c9d763edbeef73c9df6e73813c771dce94dd547895538eef426138b3fe138f7a71b84e54bcf72fbc79efef41cf7270ef461fad2f7cb06bf214290e0afff04066920aefae81e09cba813c7cfdd5e622ff7df2976cf414eff3df7b7f40ddefeb1df73aa4f7da3fefe6041813e4cb704a29e6bd58d6df07bee9e2b87e2bc747a06eb650106716b3a81aad2a3fec3c1dfcfa83f7d2b691afd27b0c54fdb9657f16c9cba2f9d502c5a80dc95f6e3388e053d714fe2be21cb994aa5cad66432994ca5ced44aec077eef52bd5755d2a7eacaab54d4b3909ab9559effb20ae8e3f4a6e76277dbaedcdc1f6c83f747c7a08fd3af7cff952b8fc335c0d45f026f5501591ef5df7f6c7ad40de22baa57492b757ad89f022f8dfdde8709bcbd7941749619bc2514eaa7a7833a619625b32c95ede974c2ec495a9695ff39bf93d034da4e1ab7f9f9fd63b9f6beff7eecf7241289e378749fea8ae9717c88ed206e57c04e42fbf0bd4a2dd52b735fecd77da5ffd9d07c3da0f139f0d264daf4fa31f025f430099b1668fc3b6d100b0f7fc2542a89f577496541a4e502f86f2fca1fb15855fdb24117fb292ad029b727687c7635bcd81b3dbe7084995df33ddbc1630db4a7edd7b18307b37cec390ed27a681a0740a08387058610b223a5575a5673e98d9e15e8e0b1e30bf4de4c09cabcb07cb1fecf35a914d5f1629999f6f7e8e6211d444b2ceb0ad40823d65f084f13c7c905eadf554834b98076c431c26b7a3aa1de3cce04e7b1bcda40449cc0de3be2888def4e3c9deb41defeb187405589cfe99743b1f2e77392eb6ddbb86de39c0479774d3713ae815eb6b9cb7d07369087fd6a17f7b75df17d7060bfc0088e6affe6037adbf5f27e35d8af2be5c4be9da0d877bfdaf58522ed84ae2c91ed8722c4defe2cf316208406148bfd5a35c24396d730c243af31031726647b674e178dace91191c5716935697518d0ae19509c12d83b94d4a99d5407b9fa8933d05011e79ea2891a8b37bce672511701a2e58aae6c3f05593991ae6c04595e94ae2cdbf84f57edeaa096edea66718e4a01d6e335572b5a02dbf11a1ecc08b6339f5fee28c83ab6a34d99ab3644a1572beaa915794ddbc68eb8cdf41a1e199171655eb422257627b44becc57666112d89db68453273ce24f6623baec4b23c0627b6e3a1633cd8121e7a74a01c4e61a71127f6623b5ad5a0685368431e46d1883421ad68aeb429d88e5644447fe45190c6c489f8b4ca8fa00c82b7bb47da0d050e7b7ee9d394134f2afc02914f790dc7d59449bb54ec4e3c317aec829d53ac7fc72e1a6965656f5da1066368ea0222b4796a6896bf651028f5281e72f1353f3ef19a1b5bdd4f845e51e0a1c809477106796314660882bdb1880846a4027be5ec96d7f412ec8d4b7aa24d9c31f630185734a03f76fced1de63a670f73ef30dba464b88cbd1cf4d2af659f8a124cfda57f5f1dc81ec329c9813c02d9b318145f2f29af2050e61aa7709bf88a31fe2ff6c65788812f300a7d815e0e8ad2fb52d0c4339d8b4107b17a7aa218e9a07ed25374500fbbac7fd4b4679025c15ea248f49848c463be22f4764fb3d735ccd814ec575e13d4414d2c0104ef2258f7eee119ff0e9a3d086a9e1ed1a67b7a7a847a7a80e8608fe33adad7e8235526912d0f95fc78e8355c42fa740f1070c0c36f200f4318d0cb41e10e0b449b8632a708a7bf8d57085bc9f1cc29ec67590a0bc5d8950320f0908540107b700004cddd91a3120f7f26ed58a8dbdd650079e8a1d7f437141c17ede612a87c0195ef537ab8805e1612d25f37281cdf6963639633ce324fbe16fd330c6430ebe8046e02cf2f9723424da0f6042a1127ba9fc00b7162e377cb969dc3854cb13d81aac4e74c1f2f808f457dac5c123b9ff3e9e3359e4a51da1deb9db1b37bb23cbc32d3c76b1a0c5b46a1d327de49637c17ccb3036fca4e1f39594678389fe3a64ffc79c4c3eee57331fe6475b588480410cd76e0f59e3e1023ac8feefb251b28111ed8bdfc0e0c122d055538a6ed7eda0e2c22da6e70bebf3c12c4c3f9d3a7fbdb2fc1c992d367b286f070fe690e74fa1c993e2c6f8e2f3c3351cfd52b1ff5eee96cdf4e5056fc98c46e7dc4437716d27311bb7d5cf906af8c29d878001b0b60e3cfb00dd67ae119d1c60f598667741f7d6c7caef4ecb14af5888d2f3f62121b1fb561ad89b53cacd5b18c3c6ca5c7f4f71c573c471bd5c71aca30cbafa877baee64b1c41e96aa22bdb42470f4bdf400e33b5a6f4c62298f0fc713593afa794ab7b7fa05f51cc733230f14f662ad9f6893cd49699091d710c714a09c05271cb130bf3d27254b51555510af62400e06bc4e031ec783a8381ef0fdaaaadaf154f5ece938e0d90352a3adea7582781ce7847eb81f8efb69c539299d3eb116c7c315e119673dfb021c87df70b1537b9a2c8f01788e3202f8907593094d6a5d52d665352d0b6a5978cab6a0b6c5b42db41629eb825a17d3feb3dffcb3a7eccfd54cb68aab07541f0f7808fc8e9a4388efe724b0e3ef940058c3ad0422f0b3f5136db82c3c618af59f49a61297d77016a040c4fa4f20b7f9d56ac5448eff64e235cce3fde713286e3381f797400476d407e461f5803cb82050afca7bff803a44fdf085a83e86a81fe363defb2f092abfffce205ef59713b2fea725e8f697fb69a2faa716d0ed75d4d114a3282307d4d1146ec511e176582b0b60e160adfc8d4c5bb1bc0d570d978e0b08f04ed22b00bc94f439422c6f572c8f03b27c02349726141f01ac038097fec0a201de94015c2d7f03ded9f23660cbd78042d3d59aab6833595e006fd1d010e06d8ba6e583b70200de3903de290300f05bb1872b607ecb82138aec002c67c1094a6c7b2a7054d423077a230fbfed17bf81cfa312c978a090033b81ba048ae5eac5b44004662fc7635fec9df56e44ee766403b2fe2cf56e538c88dcd1911190d0dd567763dded6e42a3d5a8aa72c4f4c78057e5ebb30dab2a878a8f065552e5d9d2dbfd8b8741a1580d3c78e204db35f82326b13d7c7b39580d3c78b2c476e00f19db03eaa6d2c850652f6d361ad5ba4d1635d16eaec8ca87fd78e898120f9d85c743ff76b056eb3f1550eea70585a79299c47fae0c8d0cdb2fbfb9b0b859a14409bae2afb7262bdac4391f74d136f2f0b448e2e2a1cb209e2596c5603908064c6c7b9f0455f9adced764d180def8a7bf58ebe37b355caaeabbed0d9751b9d81591f57c7dcc97574602a8fc58b9251f112aff723fd67f3897877ee7d39fac0d05b27a345992dee9537fdce8acf854f556253da5cf71a18794feedff5e05daa0555563f4de7bcf75df9503af8cedef643f4e8c3891a5a54a4b84b4a37a3d19cbf5805c917a85d8953f551f2670f46cbdf5d3fdcafcb6fda5ca4d1605a70fadf388873e5958eb875be235de93c0d8e3a125713fd1865d9ccb0363110fca6c75c7c9eaba5884ab9167f4913581eff7a6402fc763fdbd207a278be57d816e55269432b2a4ec9f40e0293259b3c5038ce09d3f76b22600f69c024714016f8092bf943ab1fea60f65c89024e562e43ed61f9ded5e3cfcfeca273d27a594db7f55957ddbef8504be44195ffb8458f921e96fff8b87de4fc289dd7d3bfb3d8ddfe3c4afcae73afa2f61fcd1d90e4c7968a21e7a330102bdcf92c6797400032b3be80674764fd3cda39d8189f59758cab3f81a68f2d0b128d35e2548848c3309d469220cb8cee1972b836c4bd1b42ccbc02efa619aa2699ac65ccafeca9524caa2c0235772a765fde5125e238b780d8b5dfe3289bffc914bdc336591a8c86b6e1c8a52e214afc9a4d080285e63ca9ce8c425d1884f296a9fc28984ba6824452351f439e2a189271ae9e8df2581244253ef71c8439597ab15273dc712c586ac0b751e7a0612a1fc52c1ba52855c0aebc625d63f32711bdf71e1f1155dd6a38f11eed7dea7c455f6ceddd823572e14893cc6df57b46001faa45cc09b52012f5d018302401ec617c7178cda1fc387a931ef432dc0c71831a674b95c8e19691ffc69c2f053726808a35fd6b5173f53b26a8c359330e83dbfe939ae9992ccc7c3561229e8cd7c3e92f63393348de9d33ef8e935f06247301fcedbe311e3654055bf10999ff900647fb51f2c89c71c993ef34e9f0872a61e7a67cbd44399d4a1a7007516c5986db525e1197fe9021f74812e702ef1f9e3a192a197f7c78c348dec877df07f7939f422875ee4d0cbcba197bff4e5efcc4edcd6e2196dfd25263189c9c75a3c23c98fc7f84f15d77e54b6a2680380f71fadbc6624e31d63a15028d4df9445fda5f639dac8005104a07300604a002073cc0800decacacaca4ad7751d17bbdf5a3ce314d4279079269ebc184f5da3754fc763f9aed152ce71cf06cbcb5ec598d3e94d2f4435f347cc7ce7c8cc54d27b4ed71ca47f000dc0b327448c9779163f656a936aef78333c59cb6b4ea00f158eef6d830cc6cf7cb224a36f90e38af40c5e8f044e9e19bd096ccacf5e0c7a794d04694817fbe02d5d55d8e629380a4b612800689e325bad16bb0c50d906001f5303f397837cf8cbaf2c00537302c7f8df15da4f8c7139d43ef8c3303d176b7c45a0f837ba705cee340d39b4235dc02b6054e6f0ca974be4b7666bb6666bb65cde65de5f7302db4817708cbf0c28e774c97e582f5ebc78f1dfa26a51b5a8541c57f93dd426c233a3f7a1ea8831a387a93c3c1c3d176154168a361698f2525251e848c8e431a3d173ed3c1c7dd7c9332317b9a4696cecc3e847e1c88e46a3d12fb1b2b238894142d1666b798c3feaefa434251477a24d4c613be1953b51caff407fb112a6c6e8784a96654273c8ca969616e619f952eb4c75daccebe71ff1e4d0aaf0021cb82c7fcd63b71a833cf41d21627c74c2eedf07c6e626f4624147301f2c894ff4e1dae2b9c6232daa8b97b5c462b688e88ab576aef4ef30163b01eb65272d5bcb642fc6c29c78175ffa1a5b4a5c5ed3a6d731bd49b6ecef69214001f037b67ca4fc213d2fc61df0ca3791ba3f1ef179cf7bae85ff225114bfe71373efa8b09527678ad1ee51f3519f8d7e45fb16f5f4ccaf612cac8529c192c8e76a7a12e91b547def7de00e4f3ef7931e27b6c4efdbc3219f2920f3315ee58191ff5319b160e6d14b093e8bd133e863a43df78e6510d45ee584630535515256547ce9a15072a21e43a12286ea0e05768f7528f0be4b0dd216d5a8c7502e8fa2ffc3fc7d1f3d1dfa1c479b186f7ace64da11e3c1eb811e0562bcf3c498d17bf53381b7776c5c79148801f24e8c89207d15067dd097f4631ce7c7f17ef6faf4527ed7ebedc41d1b4ddff271bf3cbdec97a4e79cf34e0443625499a21d32608c6f8f5ed3abdeab1789184710d9abf226d2ab90dad2d3633f7ac716d1f6f4286a55f50a19b22adf522f124556e5f45cd76d5ef7b4b6e54c2695bf186bf28ccae3b88e49e5f400781cf76af613638c1b29fbe119eeb65b5ec36d423d76848b1123468c18316464bc1af1e5af68f5cfe95554586ad7fe5d049e6184a6c126d4fb64208efb0af4f6c86b992dc95c199087d98f8fc592587f54650f6794d9aae16d31254d548c07ed83fff4c192602d0f7c51ceb9f1d051dd15a6d8b1d2a23c1c9208450880cad3f9b616cf48290910944409e6620c080bc2b8b796d7dc56b22de916cfc0ac9d2dafe12814e109379a6bc5af2db901edbfdacfa86a3fdb92ada5fd78c8da6aafecd68a36ddea56ab5bda12af69ccc346cce2995310bded2deb4abca6ff76bf861dc17c30568cbf184b6efe2189f11c030c634c2bcc3614788db0a83755afded3ce8eed180f0ae99c18182b46ed68aad99f48df55e547f56248ac3fa36a9068558244ae776cf79c9743930219886c37eda97b19808f5f32b98def2b7635131d835ec1096caf421a8ef17785ccdf92edbb05e07ba6cad418558b6c6aaedac7ca4012c095b8d1889b368c3600008f30418c57a273627c8cf7e74b73b3c309150e6e888df1ecf110322427c6d318335baceeefd923919ebd1a23ebbdf7dff799abe87b12a9664be4dfecc7facf97b29f8875ec1eca745a791594a99a466dbfca4576a55ecce766f6ce5610cbd2e5354d22b594400adecc5e8c65efd69a9699b962b6bd6f623e49d081b162cc090bf46e3fbd2a3d8c3646c55831c62bb6c4c36efbf19a3b5b5b6b6b1db1fe9b128c85f9604a30d6d6b23eb3b855cca7624afc31104be2e10ce89dadadb5fd6c4a6440efdc5ab3d5b2fc02896e48e845b021c888f57726af2028afcf5c960906037afb15242553edd4a7e766e2040d7a618205694c5e2ff6d1600765d9c53e081c792f7f798d877dbfd8fba4737a569dbeedc5ec8fce7a74c796beb68e1f8d788c7678d82fecafbf4eeffde022db75d27addc77df169d589db7b55e31ec749ff7d4f557ec70e0f1db38df3c2aebf06c00a82d2432d65d551ba08e37e6549dc49e6e9989e56d2ca62efd2f5fe9c94be562f66ee57bf883831029d499017c09fbdefcae25d826896056659d4b62e2dafe33dcf50b121a2f24acc9c1468555451458e13fcfe3a4c5f7aae3dee5ba6e54a558687de83f4b837551a19487ac0a12ddfc241a627bc9a128332babf9f20d9f99c17209217e08b491d846cc932933a30b1edd9708b3514eb25afadc00d05cf5c815e76790dc65f7aec6f10cdcab8a1186326acf4a6522643661986d22cf6282f8756451555d0b494bee571bcc5961ec75bea8d879685e5b91631adf72bf5f4a6eaf23652af7a2e7a36b4cf5850efe40294655986c3c2a5f693da4e3c0c6a26a57a8a0285f912101e3af65d4bcf31c06bb0d29f9e3e77aa0cc0a156a0272e76a65a7fa5feab5417dfb5997818e4a193d3bbb703e65f8042542cfec5770e8ce7ba4b7efa1bafb96d398a09fc1b6d0b175fbfbf9946bbda07ffd62cbf890694696e5eaea6d14060bbb0154f9c74508bda4c805ade5bbec1eb364681867ffb2584b4a5d2d30f85a85880395c5e0409b0fd4286e4bcf8235e804a38012401d6e53da77360c0f8233c07c61402e661d02f813e2c33c06b4e3840303d959e4fdf953ed614eb4aa769ddeb2fd5d3b7489b7d0b1d6c576a4bb53d21609ebd1c9aedb64544db9f651f245a6f04c48853cb1df23e9a0230cf3503efecd19f4e2edee3b86784855155d49788687bfbf5427dc852ffc5c31504680fdda313f659dfb61e8377f42f8cb08f13812071aa40da72dbf0dcab6d4f40d4c707b27fcb25af46026c3fd62fbe5f3c57242478f1e205095e7c83484c7004cc2391c39e0e18b086f7985dd1c19e8d6edbc3e33866d9cbbeb6e548956d376d7b36a2d00dafe9c08ff4d2ab31b214fcef2405daf5033ac75ffdea8aacbfa28d8e18e38f03c40d06bfe72864db45df03fd773ccf184dbbb59d93ab9c75f5f66befd76df69e902486e494e0c51f618217af44e7bc0085740e783bf32a9058451555e4c1f6771548dbd69e3bc2042faf44e7bc3c0789764e2f88cee309debe7c82029d7ffdb5793adb47afc6c836d856e01926eeaf7ff1bafd9a1693d63a13b79af6a276bf9e40ffa5aa74bcf817416d059ee917cf3c81627ffbf57ad2dd42af6eea65cf95baf674f831db1c767caebd1c91a37f58a7fe33067da44a1e8e7e0c746179d17eb672ce28e3e760d0c5c308245671532997980da93e0022701febdca6e562e75ad661d2725a97695b37b951b77935a203f1245830348f0a897cce899b9575d6efbe79c7412a823432d8ecd06b5a472a88d3116d6204609da370a3030c4b58ff1d21cd0f3274446f2fe499efd12b2858097613dde14e1a1a3010b1fe3276687a6acf53fb39b59d25786e3cec06657868997f7496a516e8a5e9349a6d0ef472d09006f6144a68b59746686a33ee43e101bd2da46257312803087395266b82f27ced479279821ea8710c4f0c8cb1fd44130ebeda78ac7f6f9b2645d0b659477c982672b6ba72c5fc594fb431b53808073fb6a6595992ec273b12594fd89bb53a1e2025a0d89b2db1fe5864a993adb4224d8a46349fc855b69a4fb0257cc5337cb07eb322b647dfdb4f29292dcaf795ed9d6823c18cc7c36ce56160b6040794ad6c0df6726544b46922ad475b42e3d18a78e8594f56245b225bc92f4cc956d94eb67ae9436fb68adc1dc55e93c9de8c87e50af4a15e83bd04f7ca5eb9923c1e7a878614dd783c27f048b1fe2fab9d224b6cafc47fcf65c0ceef7aabeddeb66d0389ecc4efd58f6abb573b5b6fab4dd35448660e8d31f17b7afb4dd1ed7bb571603589e62cd2b38aac243f7da4b5f51046bc824c8971080fb55987c84083dd57db1fe3e908b4b7ae570d829ff119037f543b27a8c20186a05a2d7301cb66200f8180f4fe3f2cc023da90e28eb74fd3df419d774ee0a2145436c85e1568bb7800050745e18228d6bfeb296d81a8bdf7dcf6838c68811ef507bfbcf95f127af949f7f09ad1065e597b58809f74a91e5e2363fc0db4400f7e02f6989ac64f6e78dc9b29acff0fced2341923502d04221472a331137b136de6bc91344f9ca56134e5a1494811e89dacfe8c67b0f58e4f788040824f780441e135e7a3353014eb2f439a1f42ecf9e5c62ae331fe3409eaccb3b30491293c65d82111a5917f439694416a4e27d6bf4bbdbb8c2e013f7a55e97ba9b24282b7a554d2302c46cccb30ccfb88bd8661d1bb1a96c2c0d46ba954c6d2d86b18cb635d05ba67d49348a8b971dd133fc618238e182be9bd9ae2672e815cf7445406fa407d87ea82605ff628d9c9fb96e445175b8b162c58b8b8a8542d2d2b56a4522c2c28d4e96432adaca8a8944a949248dfe7795dc771a3d166e3667b6e1a6a9b5f42c557f9152ab404de59996728b8c5c81c7610ac47116db3cf401f39beefba1853dfd5398f9f4529df4379dde8496010cc76a91fa150d462df6ba7ef4da35fa9b7873dd9985ca0f1bf20981d3df7d51aff0bc2c7f7547ed6a97c8f0f18a6e861253922535ef381b7f42a4f6a3065ca012dfdf7975a92574bdfaea282a98041305b7acccbe1227a3a2530dcbeabaaeddb6ee08b4f77ab5bc5e178aab6781716e06d16d5a57e47fa9e9a469d75c6de077a605855dcb7e5c097dfa1b77bda27f6c8fea9f9482989b2b0a4f3b07da46cf560610e71488bc3a0c1ce16245954baa40c5a09b14b06957898f0136c8892156553f030616f46b47a820d46b0379b62fde5ab8db8e6cf54325b5b4ff7b8ecd69341f11a0e8a2e9e21ddc68f31f38936ddd3994f16e461e68a319e31c97eb21f7eef4975f6b77b3297f4f19a9a2f7b654e32976451ede5352faf6112e43512036f2f61af745996873d1eb2e8f51e235dcffcb963af64613e4fa03745535b10e702d6136f78597e83e527dce0851b0be506e7f9e5facafae6dd0cf1bd7f8f685372027bee2717dd5ea2a7a727daf49c5a11cff80f99a4d022ca81cf2bda18200a415678d244e815f444e8e6464809fd1a8da847da7e8592bc4e629ecef6dcb671927bc98dc00e9ab699bc6eba89ce7073a372436282bab7837e89f49ce33d05a7d38fe4dddcf8f8ed09c1395f7873c3c11bcebb3870d374c3ec1fdd357f9f3395f2d740e9fefe19c8f2a3d7e9840469a616c6981823381d941f63f8994a333c41d4b2fcb2fcc41b9ed876b99c58ff06baa1038a93ef3b540ee8e5976a7bbe415fe5fd8d88364e68efdf3d5ed3b1767ce40fcff0ab7d78dc78b9a20d0e8ef16ff2f202199e585707f5931bafa0cfb2d247e24aa46fc47131d6694755b5fdb49bcbc5835f3756484cd0f676905ea5f49cf33d8954fa5e3c32d28b877fbcf1dde0f0f0085e16b25fbf5a880bc3cd0d13ebff4367dfefededd03e9bcf39d96be06cfa2959439a6e095e7e82938144d805051a5c4c8064dbee0e5535a2c5f1a673ca1865c2128d17861c188eda8997a1519121bd0c2558fadb1f9f7ee7705d696442f0364823c3367422fb586b448be988369cc34321cf788fd611432befdb1841d38a4ac97b9cd8757b1947230f73ac6082862370aaf9d34e70870e293792c404c56a0f9ed1c1430a41372dc32f1275fea980eef018d921bd8c3eab2dfd577b067b091e4dcbb26c9469d9f66c27a7655af6542431451aa8d446dc489b9dd6652095200d671630977409b1b32ee623a5ff441b95a0240c4405112057117bbd6b0151d1b2d76564ccc759b24716913c45988fb3309fa2255e237d739feb4a32cc77a20de613633c7acb59988f27f19efe67a5582e2c1f25acd8d262b5b0241303dda703a2975213e6dab23097ac78d2dc9b2762020d68c0a0c4facbc0b9e11f31f0c6e86f7c0d088e31375a027103e7d9e502c4b91810373c64577f749008696f489b4dfb227b6a3d674fad3107a20ef4861fcac4a9633259069a031003cd01c8c4a3818183797e81a9a82294f4cd2eaf71a029e8d8c183c83aa98e2c57206d494c57ac505179399003b93c4cd280c8f57b2378064644bbbce67b7d6c0410245696f4b1fbaaf69148aaa7cf1eda20629db3219ec1868f3e0d7711b11e49b53ffbea3e6e87fcd81f2f5693e245ee537a1dd1c6c431a5a6c17ff949e94b4f6bc761292c5d7fc26de9715cfb34161c07b98b6ae6df6ee52fb53289fbf8ac542ff2d0a5cc1dcee3fea4b54c514a29fd996aa52af34c831709ab7d29fe7561bfef35144662a916b0b7f43f5eac76a775f179d7a768efd65b5ea37d128ed56d5af1a17de44b956ada119a7622ca52f48791282d3d7b35481ce7d7fea4e8efc33e6e97872d1f5f4035da66f15faa48625ee3668d5a51cf55d263fd7a6119c6f357a6e12e86f1c245ed4baf06d2b08fb52ddb978a64e761be85ce00139b28c6ef8ff4bf8fd4b1b63809a2b4d496a5b66547d5fbd2f21155e3c32081014d1ef33d4bd5f99e622d44f4fdd742df77cf3105f2d0c5334e7978e833ee1c56165fb26de10cd433bf46bf54bdc8573da50bd40656877c49d370965e62fd431e3a3b3a0a498a9bbe3dd47f3c603c0c2844c56faa4e14c567a505e83e23f6219ef11317e8d0890bf472908eeff374e67f1ecbf7cbdbc031fe9ddbc4bcbc4947fbe0f4811a88f6dfee06fb9b2fde06b6e933b4508c691a4dc496fbef6bd1341049cc16e8ed226722b44917de7358172b6a476f2df1bed8f81cd6d18aa2f42fb55eb5f45d3cbfe018fade3b45757bb45cf4744a319573a267a3c51342888a5fc8901c983f02e63b2784c1de73b8e6c05e0409b01cfe119e130a01e3c307f29ae92e9ec1f2feeca9674f9d52cf4cc38fb40ffea7c7aa8ce7479a06057da8b4674bc1d2bb4cf95d37f6819f63fef0c8e419a635be67791418021aebe37b96f7ef291adbd23333bd3a2c46434bdf5e8d694be0edff34ecbfa7f5eab018f883c61302c6b793e696fe35d89c4bf1ef86f15c4f4ee8f5a166d9fb837ecddc2ed585827d847b9ce852597cac2b5ebb2eacf72eea4d590f0c3a55970f992ce82e162b9ebdee562bf1904baf6925fe1f0cb6b410a031da870a893630305231df43586154181d9687b09a56029bdba754af0e5b8a24540abc345663666606aff6dfe344ad969e3d1c1ac6c2791e97624161242d52138ed1c8d391ff91aa113ce3ef439a17715cf994b853242e117be211ebafed60284658773990d704c07a8b679a9a1bf7a83fb17cf6def3f7f4bfd75e5bf9ee97434345443e85fe57310d54915efb928af4f1e9d75f7ffdf5f737b40daa48e00e8e313aac0eabb9f0731a787fd0705aa755fa1f05603ccc7f34dc0daa4ae00e18200cf8da574b6f62f9c8f2fdfc2db0fe2ac6f2384eebfd1e0359b0403ff0074d8b672f08966fd007cb47d087fcfe1f341ff883c6b2802cdff4236fe504a63c8f6314876a2ef5bd46bfefd7b8140a45c19be26dfbd4b67da9e75295df05a75c3c6af2f7dad561491f23333f07f3421a4f177d596630c27c8f18d3a53a1a8a3630bec41e479bed61c4d0360560401ad307fa9893b432bfb932d4278f85c4278f8504de394fe0a5a99b62c1865c9eeb357de9fb569aebd5b1030608337afe3e980ae3bb5e1d3040fee2b3f88fc20c61d96bfa08fea0b1d474877cd445a576d6954fb55861617a977a75e038d995e7ba4ef3b827d5b6ef4425ed4ba5976e03e361fe9a6cc2bf2eb6f49ddbc480268f317de9b5bab10fa60fabe961aae961d4ce634c5cca4c2b311ec73f8e837986f9ae484800030303f30c030686f6bdf6a65771d10f1abbf226534b6d961124601beadf2bb0de313802c6c38c605413f4f0305589cee9e139959867f0fe78b12abf4205d49eeb010a30d3837d096960feae80f1b76479b38989a9cc2b5e0508f37f3c7a155eb16245a7752a9d272d60f9995f9a5f25abf18db0a4955aaaf7c50256fbaf5e1afbc9bcb0e8681aa587c1d912cc1f61029857a2736050df9bbe549b7d68b03f48724c771cd3cd32342d7d188a6a955aca7ec5fb53bd71f5bd58efb54aaa1d245a1ca7206c41089663ee35eebd37d56957b857e1defbef696828d59e3d1d0dbcfca3b321e8ec0d627d684ffa1bc492bcb3da6da6a5cfd369ca9e6f21085bf0812565f2332f876f21085b386249e08fee8bf9f0efbc142606745708c28001539188170dc59824d67fc710d194a1a0d136bbb8f2294ee4a1bfbb2675599742d32b2132a0f7238e9baef5c235e086977e140c683fb7c7517b833e680bb84ca65cb4acf336ea6187691a877d8cd94c1a8e3ff61d7829076211c3f11603a5363f7a39b4df469ba7b3cda9594cfb344cfbed231837f04535cdd3c9a6267f4e2bb1ce3325321adad9ec3b7b0cab92a5d730775623383fcb6208bec40ccc21b1db59fc8885a0b372c6295c8c16aa08f5b26eae5449dfbdecba5b09cbd0a149c9f891e2f8062cd6e973d2d3994aa612223bac5a1ebad780885925f3672ef19ae8d5c0563c114dab4eea2fe61386410f80c250ba85793630cf466f513025580f9ab69a601a71a349b096f623dfc4a1e9b9761c9a9ed6c9a1c9f4d188c9f437eac0fa33f38ce93b8ebd1caeec277ea49a13b59a4b5ba2fd683f134b82f96047bc084a1063f5d0295f7355f1b3a50d3981e51eb2b20c5ed3e3c49137e36b2eaf89da926fcf8616599c0a2bba8cc05b8b99993d7659ff9997f59709ca9e588f510589b1a24d730ce683b5d8663fd166ce49e96348d8666b29c13a0605ac0ad61f8bc23ad6853158ffad156dbe1853894f27d62713eb13c8fa121478ff04de3092b696ebc6bb68ffa98b774fe79f2b129a8f349857a37e8be7e2eba5a4a24c91320015406794269ac0181c73a3cbb5842514a108400042134d30c184bd93fb4e8f3b3cd3aff8c3c9e7482c2547ea26b9db681ce0946dd98f70f13954911d62d9d3c1214113a553e5efa39fdffbf91b9cfe00ce219284f6d927b1a984d03efb1d1ab8639bd1b381c9e699e699ceb297977f0c7b80f6d967de0e0de434cf01f27d441628684669e6d970950db60d0eb1dcf454d8fb90ef8f812c5050150ef9b26df4f34f0f478355d8e9f9739bb6f977152012728874cd095c0d693279d7512a49427031957271b1e1267bbbe5ff4b2ae5a167235ae7197ee9d9903a882491c4f46c6036f36c78b4914525f44a3b3d1628a87fcadbab31c45207a9e6d9983cdba3c4326dfb3c3288e1c0450b162eaa96152916d4c9a4296145a544499fd771a36d6a192665155218e1555d1cb368efc4fc4bc3f8ed4d63b3f1feb35f25e2040b16a87466e296c3baacba95dcc4aa8ca38f7b8eeb9ce89eeba23777d8273146c0ceccf1be3d2e36c7f8cd7b849da007d21853a7e5eaf49adb5438deca7f2b9d63fa472995169e8915d3bc9f158907728c8936abd172a36cc4588a679a677cb86ef90b35936d8fe34979c6ed57e7a893355aaee33a1e6ddf45c24e79e3f218eb65244c6acc3355b39c676650d5a00251c08048085520c31ba0d024453ba8032860831437d8a1831cd29005a5a26529785014a5e041513c02c728a02c05133b56cb83e526774862efe4267690228517e4302538024ec5df59cdaa18649e09c0b736316c072b8bf5cc76a0020cc3326c0733884dd08c678c9e3ae8200c2fa6649653d39cb32c458f1bec20650c196f19866118866513c3e260b14c03b39aca90749f7d073e1379e81a07421892c74117b691294529d0ca36b539e7fce9a636c114a54c8d9069dab6c2664f5399e7641906a62668a2291c34519aa3110e784aa3110e76e66884831460a3d10df0908d46379883361ac9b72cc50da4b02aaecd3b381079730778a09a0bb8ac27c37420290721da8cd22464137ca29382454796a5c881143760c126050f457ea64cb1fc78d8b10c0671cb3cc304e078d0fe54933b2cb9010ff110f98008393082eb0b5148ebee1be0d8b677f38c76ebb245645eb41e112d648be83e693b220b44b345a878dd574466fbfd493c83885e592009b0fdab360211e4bbd714e1c2769c0eaa72f883411abcfe6da7d75c7f9418a88f082ee00f40efb4de1ee03c8ca19dc7f8bfc7f4df21b6e500f4864dec002525050c7e4865c1fa4f22706d59d260d98ecd8a9c97100342c27db4e140299ab0026647af696c353959db326d4e2122a7a6fda6d1d41d3609c4dcdf9dd59adc010ea3b0c18642095368d8fc97d0c3fe18539a28852f1f53ff12de810b7664b9c91d98d8fb1e128e5f4e30c5b2eb044eec9dae13b02c7b3a07a0aed5ca5e494d5e335fbe946c5d06d675d7fe6deb6ddb5e621e8ed6de63b7d5fef6b0edbdb65f20acbfd7db3774f0e80102ebef3f2afaa183d0ac03d16c839d873133bd143896e074955b5987c4ce00c75f95581b6577ed6161c80ab4000625ae108510125e395c2af101e80da575b5004adb8c899d0d76965d2d606225c81e461a7031d46baa0137f8810bdce083852bbc008a09d0bcd7800c3a20021260e0441cb22b442dd069d96b26a3c14e217e9b667b57964945482b41e6c89cb3005c0a2e469ed1324c46af432837a18248ca5805ae7bd5449a4861d9cf72132932b0fd94bbddb3d1a6e626525a2a969b48710991e030840932a803152948831239608215e200850c2cc1083c6879a1880a2a92e470c500c796e5159ac4c1055b141b4c418a24a880e2c166413538031298a4400648b61005db410e5b948c8a2b3051833284a10d5096c85e709862368103176c66b9091c82b4761b40b18027c610851c90c0032f0c21a76dc0fd2073580c54f8a10191265268c24f4e56051e7450cdd95f60d1c40d59e880a829d5062184b10ab69f9e2c3789f2044dd3346d6693c5729328487cb2c950c8800d4d24610518fce0085f810a1e60544c61526124a362c976b2dc840a24b6b3dc840a9e0884199d354cb65e96bdb823084d30e101169c34014346852837f09a50c1d345a981ccb88969da37cbd9a426514e7062c3134b2d3761c34bb694f02da16236199ac2e6596e3294054bb22cc50d8ad026654872645a6e520623d47293322c91be020211ccb2cb070f4d2cc1821b5a2e1f3a044dcb2e22bcec0528bb88f063fda5e529088105ccfce2544801851344cf721332c8c17266b949195060638c51ca266558425a6e52861dcb1eaa72c4e8ce061212124df6cff9901f67e92f076cf6c366418cb0991004d0cf5ea5a6eae90cd43fea1df7a5ca34dc68a2e5408c046635eb1b6c37300896c3045554514590c53a8f69094e1acf651138a6a1a427cdb7991c45ea1249757ec44892f4bdfcd8fb984a3bc2deb11a39fab3d7b1071cc7943d94a66c66dce3be9094f5e9523663dfbb70d6710537375a36ca48fccd3348ef75a1964dece5a655faf1392d665996695486e34655c32ca972588bf6dd735ce7759ea3bd4eda518dd6abd2abd243ae7a1f35cdc56acf3c63859aa8065eee3b90aad05165c1021dbdca6b9e8ef6a3d19762569f67b257a959650f35ee3fefb9aeeb3c92f7246feb46b49a5248a05a8651abfdcc5ebea94e8fc97eb4bd67529376fbcccbb1659f695e9665d8675826ad49c5473620f2eca394534ac732af318af5e8efd2a7145d6039bbbb0fa95e7387f80fd15a0a81ebe717ee02949b88c147b3dc840c63b0777a3ca364b90919b260d9c396b60919d0609972ab80729331fc905cbc4695233ef6d39ff43149c6aac221a58d963d1c7465e5e3e8550d065aadac7c27020813ad5636888a1d7d0cd2b117c4105612012401d67906fb2099cd88c83e48663360e5e3f8a8027161e5671548026cf30c06a4abb052068b1e03864081db6215c732cb5c6fcf86bffcf8513ee7a04a75ae63dd5cbc6693afca01deec4d2f5f67e5bdb2fde2b7ffe839f9d73f931f6797793a2b5ee9bb780d4973f9937ba931c4c56b36efb1aa5a799567afa63f55558ef9a69f6f02552b608d21b6f4aa1c2aefbdca7befa132955a9a3ee2671f87d8f99c7c07ef94af551aaf8604b31afef225286944d036820cf667fb4d3e9fe0f8e552ee84fa13aae268940fd4cfc741551ce9a1ec5cbc66fbc6a13d57aad8bf780df6f45dbc66eed8ed5fe5effc8e79e674aaa87a83d87cecf6a86f32861e9b3df63af4b1fabd8bf7f39b79e6a25efe8fdebd20b620b2c7b8af7bf11ab6fd9f57638825bdcb89fb5355d12f3d5bf66c60bff238aef2a6ba525539b257f9ec5540157d558ed2735f7a4e470a3a67875900177b59aa31c492c0197d781c6847f5c6c39e1a182587814c04daad838367fa5ffce41815ba89187a9809495c5ac07e60e1d0989a7f03e588f5ef26471a7b5384de996a09ce2864309b706f4223d65f26b4618982728e29890c7298bb3b0cd48b5c16a788f507c2e5abb8b2f1bbbf651c5d81aa76c427e80f2917bd37484217fd618584a01e50a6e0a05586094179e233c69b304aeca51094f8e409189f708c116a300a41894f849e043179ad44a159511db221a62d0e7af244a8758301da4a5bc29f8b313611cfc498c391c7c6e727d166fbf871c76bb28f9127c678e3930d9c4531665b65ac9bb16ef489ac9e8c651d0b33d6ec994526cf2c02b39ecda75b653cddcac19dd9901d22728373930d5d6ab516db681f8128c9958ab19b5fd1155f720bf446d7166674613f9812acc53342a4a28df3674319d1909cfb5a9553f3b1fe9af6f277682fbf5fca9f200fc71821da8e96158199101972382703b327601614633c7b1263784626c4339e9345d74d74c59bece561ccc97a620c127a69ac6b2df799040858a80718a6587f0ed4a87464b2ea38036d9f23dc2c70b6cf9166f1479d289bd53ebdd3443c54426fb3c038b9478a0e4cec4dd939a9d0b7b41d70b4725c37041d425ee6ea3d45248ff4223cf2bdc7792a5683c8c933bbade3d436d06489c06c1069e7acb61b0d46f0421339fd640a0d117d9056314c0d46c841122cfeb85eb19569da11a044d1302cf64456f4893c98a69161093d435869142b5ac51d22e9062580c1091eed89d05050cc30ec0c45e849c2c2c0dba6eca9b7a2a7a40dbba10585095186f556855072d3d0e4356ca314e88d45d1796e1882418af597e1e939c2f3c2e34578eecf15e90b5c94da73a4cece0e8654d5e004698c899f8a31f19404c53e93cd84ff89623fb64fa6a0fcd94ff61a8d3da654a6e138113af2b16a35e6fb5ab59aa66973cea97590a6695aa6695af6ddcab22c6b1e4dd334229767dbb681b7c6250cc69f3bc114ddc0e88a4be24f6c459bd8d33faed8e3453d45ac227ff264f5c47fd87f5868c87b38c6bf27f6f4449b2e8a315e4433a2d410158a42692ac520cc105151147a7f2ecb322862b00632d81b7b9899b31ca0810cf67ad1f527d77f640fe88d3ffeb3c46bb2978c15459b58f4d323231ec69f9ff803f640551a187b222bc6c42441fb336fc9b2ac6b1b3b7ee6e9c897a68cdb3fe6996e70957241ec7a582f959a3303db08ab7bbaa733d2f375573d7008175b7c8bee61237847df2fb9c3381277650f8f015ef65f27374ab18d93a42cfb3454ea316cc5afa0dff225950fef33ce8b9f4af774923e92bd777b58c97dbfa7e2befb8c4422a938f00677ef792b91d4c5ecbd2e461965945176200b14f4bd6fafa34fa29fd5eb9d36af6ef4bddf40162c50cf0b82be047dd027813e545e76bd1ea812af59a894ac95b6492d99a21100000000e313000020100c074442d1784828d9f6ec1d14000c91ae4e7c5699c7499053c820630c8001000000000140100401000caf37e79be3edfdd6104017d7d66fee0f3b2619c0ff1e3cc263f0c6b155b950579e0bfda669ac320f708874c40e04102b036da75c6ca3e5e4c909eb3701c4d604fc4fa05b387eb311242710afcfa7e5fe5acb226df7267c41938722b83dc4a924db51882b3507f1580c5df0250145796e16b8c71138ff81e18f3704327abb59987f75c0d0d32636a950adabfcfd552056c0c26821e311690c050fcb317fce2836583d3aaba610d037e4eac9f5c6a4721c9a790079aea2bf188dbb817f987c6f47b1e5a5dd1dc46523bfa73b0ce23e712c212874b39dc51108ac4737e9e4b142c713142943fd55a3e2b07ee71af89aca368878310044f6bb1f54df60068c9ae41dbf82e1707a1ad38a76800ec624f196ed18938bc6719dbc9db9dc9efda99e9bb395b3e88824e4e15645ce52a0fece8e47b08e134ae6b08671ec4454d5892c7b24b954851448419360a2b7b731589fd79897087731e094ae91f310d301ebc32fa2efc39831891b883403ab59f0d94decc839bc4b2221eb4f1c79e824b3d4034b0369c6413823f50bf1c755b72572791389846d8c32498615dce6e895235829714d83746f3035f2bd485b660b5cc1a0465bc37339f74677cb9271f6141fec121a2081d8576e5f3e5720a8573aef23b8e02aefb39161b7883383dac441f814a70ff604b0d477d1c5207721a6c3165f7067e3dd6d13b592155bf14aafc4ca577a852ba6950fe4d9fd2886762384287bc6556f9a8815accc0aac604556b0222b588195accc4aac602556e4c9234fe4da1c997cdda9c4bbd3b75582e126c07b51900f0821d819d6745c3ec6f238411bc7e7bee6eb06277da04d4e94a70613471ab6168a5e91020b614f630665d26a46c88a6e1462b95668d487ca080f4bbada91ca24bb3c4c13553376deb7611b4214473d182e6932da34f14ce759110db7bdf80821d0001ee2f487e61159508ae7a5e796697d490a87c451985263438e71f7b31cda4906c4eeba5afbe682831ec8d98acde1605fcec4c338c7126281abc047a1b00a83b46bc89c30c81712bf73aa49d6bd2ad377892344ec74c626fec87fd6a0c6ff330f3464c491504c68921123d1aeeb2c917ff6645900c86222d14e896449d38d4ee8aa72ed29091288c5574920f9b1ae5802cf1b7f095a2d05633e57bb7bbc200e3acfbca2f89344bed445dcb891b8b84b9354f40017a9e37b3e9b29a8a74e32e6d00e234c5ceab6e9623b8267023f3d36ce6b9496b47cfec75d38a8ed2bd9bdff33fff43f44dc61463d8f0b401284b5668c1b0b22e0254f056e381a07f407cd570646a9a83a76a8636921eb11a4dab3a0a198e30208ac3113733a8ea209862088a5e1f1629acfe54e7279a65b4d8929d3697210a2d415f828612d44f6503ddbee19d3f49f47595c3cb9d4bc2917040ae5bd568ba1e584eac8fd7c4f7b122484f16466f1d1aaadc1e2cf606d5a11e7e8946a6a326fbe1209b82909aa2d8f524fe23dd7cbeb1d38f7f1c723228800a2456cf62f5911d5d31bf0f526c05b3068bfbefc75e7efab4a42c72d2268c2b2239f0acfaab603fa16235a5cc4bca60e0613d42c407f3532fbeaa9c975574f54970155184fb34bca4140a7df76749a080ef0e9b5a4771e72d88a8066c5d4276eddb77d632c114db96967b7dfe7f94329d96058b1d99bdb83377deb0f43479a12caa9cdb600074ee9e9a8d626e568060dd84c1dcae68c893e0f6174a513eb432e2fffcd10dc13c4f851b49ed16a6513b77ea127c59d4e35e1b15f0158ba2c1bc309fa065757c4ce48bbe2f6fced299a789fa7cae5c3183e05e4cda46e5d4e0f88bfdc59ac799bcb9dd59ab3bd9c59aff9dbcb99f59abfbd9c0effe060da81e403187ef451f8e6b3d276e9655e832e353a5699de9ab8e246f26f6f378abfbdbb51fe9db9b2f769f66dc85730f7239033523f3bc6a2ad37ef2725b7af6fbefa7df3a5c0ec51f5e41aa88049396298e40e04ba3b97fbb9b3099486a0b6e335844fc8cdf6f0880b10215b88650f37074def7b5fc18afdbc58546a506498fb86c86cbf19dfd0474c1db1024757cca076eeebd7559048bb501e5251dd54837e95a5d776a79569ec09953a2504840d24a4159b1de0c9adc7813773618a9c3bebdce88224779693e55d783c75d68563a1731883d0757a2aa9780073f3ba4bf403487da3e8d18b556526e5765c4397aa48a93a2532f4aca5a1296a73d0f09847199a59308072b24ed3176ec43c21d4badace3a42e87e0976732e73c1c6074a56cfca68997676fb6b65165568392bf07d94b36ff026242eee743ccc82012146733b191a105c22b15cb19d74dd1fb640027ad5fcd6448919b66836f0ca255abd807bb94d96402dcca633060da20e9bd5cea0f358790a580279b5be37eb605fee790faa68b27c31d4e899cf49a964a39293dc902e0fca333b0a99134302c9779c7280a9e8b6a13aa98eecd77785653ecdcc0553d58808c2c7dc05c607b031ca56746670ca37a6f5da3ae88f73ccf0f5a10f611f283363c72cd5a5f4419522e83e5a299545c4f97398580121df04cb83998eeea86cfa79df2fcd1ba7bfe52147b0c564bab67d1e405f182e85be7f90f84105503e008e6c3367e5979406f11cfb76e45973a79163839a5a509e8ea6a182e837a757131bab47eaf998c63d2e4b789c61a1ee56c0b01f8680100f25f2a2d39a26db14d03855ca475a293d7e35eef7633b9c396382f362c6bf43f3eb630c5482a2cfa83b4f7f68c6382568dff134a365a6bcff38a7f3f7ecae6df397440023c2a4ecc9b651d91b8b082b69bd492aae22bf6ca9ca6c5f225697640526c2c500073b686ec9ee9b42bd023319d83d1169dbdf32d319113dec2e022a9851b278253311e609067b4c042b4587a8659102d480cd56a6305bf7040e1aca20824924b6f9a8b2f716be866f0dd292a2447d6c4f2dd1f544df25d4ed94acae0a51d88161150a4aeac9e612f10fc5cdd737391d1e47339d98a3f4c7461f1f5e4cfeca977166abc006492771c9a25f92b4fa269297b686af6499c42960b80d38a0a881973e6a23099be6663ec79e9d6647cccfcc5997e93f1883eceb1a66dd2b890bf361e4b94a2f62d9af91d8566580343e6e541101d1b7d862bc18761b13e12d9bd426aca256e0b70de52cdfa2c68ad8217e4fad277f3688f465582dc32f90545fab350ac1109883d322eed505854bc2e6e6b941f9c77e3a22270226e6725293958514bc93586231c55ea575ee0fd95bb3c204e77d2fc2cf4652dde3e425accbedac3db6776bd9fa4ef7ec5f51ff7428a0aee19cc36db648700ff13f5668f52bf960159fa48fd004279cd49b9f12afebd5f3822ea3b3f8c8f497e9c487cad6a2d004776dac5a435d4dd0e559555a64b610d2a3361dfec349ac098c1e7ee67a0d84e802ccaf117c8ca61c96b6fac2ebfbf9eba4f76b1fee7ee9f07ea54e861da8774482050c08e543260c7089c346688f21c88df0dba09e5e18fc8b669c213635a38b85103a8cc70b5c93fad6e27417d46a6ee856b7754b74ebbba99f62438d01742c0641ecafa6b21db714e36fb07a440356fa9520a416d229568f3819ad1e9f9f5ee6ed2cdbab65a7077c30a4f9b1cb2bca03eba164bba4886554bca4310ba4aa58b6d979386f89d6a6cbb4cd05f78778465229b81683b4d23b27b6ad6928bee41af94b33d725d5ac29d7fd125ec49e649beec055972728349bfaf7b5cf408b1884b7f0fd0335260a73a4944364f623e238b294d55b5a17767dd21d66fafea669f562f8148bfaa8e68f6d479d7da37575a45acc6858467e61bbb071eb43655982cb6558dca7afb0c161c076709214f4314800b7c3494427bac438edd9d2a09d92c7aca70b93f9b8622bd4c3a073dd4bad27bd455e5d8588d7308f609c739cddbe231a0ae5e2d2b9cd4e654fc8cacffb59de8bbcdea14b380a8e3c77d6503f2dc29ddcc49e495cc4ddbd5c9e8b94606876ade8c3082be71523a44e0552eb40246c80fea70846e054a1ef37bb8ebe68745ff7d3f89ca6af45d7b5799468add8ff780739f821fe2f0c99bd621fc0d26783a11c479312af397ffcc793b56c80df6ddc3b30e986e65c5db1c848842ec7376c38d5f9d46ba28e9763c6f7e7095677ebbd0652b7b97e588fcc02a15a280c1c354f8e7676e698aabe385a83ac9cb69dd9cfec4a322b007443be9501d3824faadab9174baf2acd4ee38ef5e4b669999b5d74b4a22a205571d30f06078ec6b85f9ddaa7ab275e344e6318c62a9b7a695746579546023cb713c47843af55475003b7773980550ba074db86ff7b16f89f9f7f8f07a93bedfcaaff98e2c9a4ee01a8b2a7a1cf614140787f20c1e68b1f101035d612e77e0db3991ceb7ae5fd8a471b6c4e915379579453bae9e4fe1302064fa36f3241e760e4ef2c5e073fe8eaf88b31d95e29fe7e084793920f850203718ca343e578a058d5e07c12ca26300d18dcd3a12c410eee1d1e1a727aa62cf1b5f71ce5e1ccbda4a1c06489ada2ebe748eff84de204fa7da2d6882aa43bd4b91f69d4c0b7ba610657c1aeff48e4825d6661d8dd597076e676e442bb53a54f4013446b56fda8cbf432017ea97624ba1180fd1874682de08f6147c6730c8a333d88983f620ef9044347190a13145deb860119e6113f6a8530e828327f87318262a889d348b6346adeed10f2028a4306159fd6d6589d10de724276480554814ece9d7249ebb97ce1f6d148186fc39e243c8c01067146b7f728d0a87d63257ef59ba6511ee033efeda223365b3183be6398a4f2dd6f2003062dc9909ac9916c51ffea1d7fa58c6bab1a5eae73115fce7c61569d1294161294e6567aa77f152f2048dd1fded3720cc7610b3d3cd150a83d901f0e488f1868f8e2f0f623103acb9724d8cfddd5ef3e96372f53fe2e1130421427dda5b9fcf614fb7d394a3ee483f4c7f139aa46e68bd122999461a12b84674c033d5a8ccf5eb990bcfe6920a6abced944b184b8326f1a7dd54f34e140ef3f8aa4f65e9aac2e2bc8b21da80aa09482fb9621a603632efb102027ed7afc96c4ab7c621c17e77488affe00333cb73986b10fd43f5a78588760cdf4355f4d00407ad2763e040dd83be55770c71867b57c56b302606a4a2a075a8861751af131b4c078717557d06deda9569dd0c91e1289c44fd27453519e4462dd77e2def20cce97b1c94026b021ed2f9373069f11b6df72f32de0bb34cc74c08a578120a02b04748552564142e70a5506118ba025da9a873fdf7f02891cc2fdbf0e9dd4bc562da8ebbde7a899d95f781c6f1f4f01f69fea8c699020fee2ad3b41fab55ff4511321c3d22705daf4da74c3151b926202f96d74bb35cef29fbde0bca4631d222dd156943816c179fe363c55ae9f43a85600ed4b54721060abe4980d82bfed33ee5c01f2a7cb3c016a3412846804026159fd1720f49f0f43cdce30e84f282313858e052a61bb44bbe5852170756af98390ee8bf86b776521db47d2b81ea0a00f3d33a89039399bfe1a4da03807189ed8d305731b455ae4406b530f1858267c5c81e19702e83664b73347ffb293bc0151052155da24432e185b26de5f1153d20fd7d8dd6c96fde8fd86e35693a30e3a73942626f7a4f52b1b350619d19af09c4f52321938e6dfb22e30e7216c248b3990e2c4427928fd17b1a4ed14b85ab6255098fa9129ee75553e5d19e98d430749b89ea958f8aab49815e5edc6d841f47d977ab49fd8b91b705814847594fa0bf4fe06f17e55c676b4dbf4cc8d90a415a7cffba53994163b19ac11aeba81a5f4cd6c735a7696456f1bcee683ea9ee5c8d5dbbe8ff28d1ad926817940e1cbc4155393bd06a0cfeea56215c561834654211a3f086c6dbc30c4e248d2822e055e14d947e2fea44089f07636c6cd2ab8147f8b932b9e649eb2fb5202159579de778b4a4191f9110a1cddca435856a4bed71bb51d4e43b8cb0c53ee37abc5d340642716ababa14887e548234f7867517a0b39c4876abc5ef92cea85d2f233037e9a2ada5564e8ae91dbe951a0041626850b2f9c37b0e55454e142b6b791b926426da4d196df26ffb214bb2cfb075d2490a9121246b7a87ab4c87cca24a192513b5910022bdbbfaf20e838ee170fe2077a90504b8b5d36cfcefb3c2ebbf25b14fce526e33ac11a22f80e868ce1750b62fbe1ad5931208af95192877b63e497086a4d84e9f6a8d1cc9fd5a4ec0a2136cb39f1bc831434e18788a3709ec5517c8e8c79294475ce7805715c977037971c77665448174206c73693710ce26e829e8528716f0f947d20fc98dc34fb84caae8984d63a94fc2f543a1a5b50be78e1fafdc1d3bddd8883958bb66e6b6ddfda0aadb672c946102cefa946211f916a4899fe357aaf2290c243e1385c250122a1d918aed02e2617c7e79956da7b13d949b1ec925519603001af19488d11cdf6fb2e4f240533146302447d8168c2ad44e19da1d202e219a7906e74dd301a9b71d496e1f0fde7466242d41ff4589e7d0e27725e84563b3ebae79d7e5e6671614241154a226a8a0505809d08bc28fdd335492b1bb4d0fccbe7cdf7e1574d5c604f5d13e9c1ba52c64ae79bba6be0a543762b067288afa93d33230e10bd43132ec0483935380aaa700548cc24da2b5fa33842c94a51abe14ec16dd14d238647b38cb997d35e69bcd3db03acd4eb2a19a1980933715c474cd379deaf3fb416e2e44db3857d4da055118753913de5f5216eb6f40a7249aae276ebdfb62bc27bed21510675def24f435fc6423c24eab58336ba1638bd2b1a47119529777890bf85718acad9187e639457436bbae69ace31e50067d2e28840723ebdc1b2f7b38f3eed3d16b224c0d4a793c94df7307bdb1d0adc3f43258867c4d16d8ac02d27a6812894c4d8a354f89d482226c458d8739d655dcba19925e7732a5c00d6798025a40b928158098e3abb907619f77effa54a88b9f7b565208552a3a6158c5e7e9165465790f0d4376bbe35b7fd2c9b21ed6e3bfb2b24d4c8fc1c8ef0178724dd9ef771450490e7cb86ca5c026e430166daf316348ab1cf9da21e4c29a08ba084d48947f40c7ca6e7deac41ee194f799b0eb490bc9ead1fd2f9cbe4ce16342dc2c65698e856d817a963d6a34fa29896b8055481172b38f369a93dc5796a0988fda5d0d7a0969be56af40530a6dfa2112aa2b90bd465041465a5d7a59bfd722e5cc04e28483d64c09f6ef488b20683b32bb5eaba24060222912df231a7ab8d0c8f23d8326e565c30371716145aeef47629699d9220219d084f35b7db10c5f8347dffcb3e8d0482d1a9112bb8058dd1406788244980bcae304ae4ca84e89ddc8c6e1272be84078190f5c23647b1d615377e26700dcb3645c8fc4a30ea73cbadf26c4fe420e44e43a96c97204b5cedbcc1ee8589a434a1b259646d620997937ee8355e116df6987a06a838888e4bb278500b53b0e45acd55304c012f97d9cba896d02bc0dc5912a1b039615b7d5f869041466d63d7a8f50c658407d81854cd57e8584a651041d0637c98209885ff5f115b72414a7d8e7ac7128e11f7c390ed77dd110e5929641677f98ffde19710a8a6096eff61436079af8181068161caea8ff7327d39f94336c3f0e347f43779d14d019aadd811f1852ba41122f20ba54048d6c11742ea4206cb3792a3bc57e3e1136f784f79e65bc3aab4c2a0194285f914e81dec356eb867150534794bb3c98f8a11b72702ddb6dce4906c07ca37f2b7671ba4857aaaf75b81bc15d258e2c6679d24f44d3459dd7f1ba05bb007f6a243d98e740a2eac3c3136d71d18c29f78d5095f32c41e146874b432a5ac602bece6c4446aac0f64c2a057528e865334ac32360628b0a965416bdf1285c51933d7b8570366b9e1d2aeccec9ecc2b01bef86bb96ef23dea5f574c1b4d4358fda8c5a229d4adf6a5f881b52802af9f593b3ed03a6b9734fee2ca047ad7630f394153107af6446244e2365a4c86227404ca60bc61e9b5a448531668c375c729f09ac6293cca052d1bd6ba408e2a4368c77ceb571f7c78eabeb102b6a6663eb35949d3d8c4b1fe6c4692d98add74238234a970d360f393f8f872736f1f254998ece2f251b82e02d1120cd9baf87428d1ad232c8b9d326c0b0d7e2b20fe467336b7d3702299e3c721e8df34a2ebcd543fd126ca1bcb8a2b037954e98959374eceb08b6c642f6fee46a3996ceeef577f66d85a5355830c3a364107dc000816669f708f74f086774189eda5fe097cbb2902274f3be794cb03a6fd895e4adbcbf1a2853816ff130d84555a23417f700fc1faf0d84e2feba3040146b436df871d69900a245c851cc9347f7d236a0c9ce0862aa7c7c1153ab3d879e00ceba3ca4426ea15d581f72d632ac65f12b68f91081008123a4f78a7b9389dd62ee03570ec774828b9089d151b18ca4da8f89654d023c4901993e7d4843b4cc503c47e4347a3217144f39e4e09f45fe590d6e36590cde9e14cee8ffd39865c48b24eb6f8b47a3c3c98bb4c8636afba3830a1d92225e8035456262085269e9f8a7b1a507c4476a7b121bd75cda79c09aea885dcff0470a8f60cca3fa9727c10cbd0f55f785ed42dfa101d24d0f3f2096b3d94921aff8bef13f28620a371d2da1f25f97d0be3259f6f5f2d73ee944ccaf5bd81673b144ddc98b11a99e7c689229d601c9124cd97176b60d35cecc1b64308cc29454fcd124d8fcfa484c22ae7837737ab0fc0f6236282598f83892b8fc3324914ae639428ce17152526e6357a076951d257a16920c96097be0ffa78e8355c62b722f8ee7f4b1b8cc38e4dc562a9e1e3c7ab863d5e8ce45acf66a36ef4bfe3ed4704d27ae569e4244050730a165fd4b9394d55581e832bc74972640af9c22020f580a0e36b9b50d31fceab7e170ba078c338aefbfabd1d4ae1de011aaa67898bd33da47de1d8b84bd3547ca8fefe9860ac82f620331b3ff285fecb099ad447580ff4a32616927f927cf18c923d2efc48729d5596f9a8911b5ab141c7f8beb9f868956c1479306061ab91399ed5379ce1ea075b639fd732dcf78f879d3c4f580b411f7953ea1d804a322f1040ecef9c6cbc84e17d952995d4841419c85d35b20ef605d13b6a01d25d291bf4f96e84f2b23fa018ed08681d794e1700a9d6a32ee0b7188ac5e97c34fa7f62be37a0c4006cb3bfb6190c0110cf164a37629eac3b82693d02b3f597c1036f3b272325b8a2d83debacbb0185d6f91aac90b5b07763e486d539d8d6ce81469c36a5423abb6c459c90bb5d42449e52b0763d4f0daed8b7cf17a809366f81977b13991f0c0671e3cbc419345451088a17e9d2da6e8c6eccfd76a59a9b29e8edc85aea58d5cb4fcd3efdf2767c41dff9ff9c9c799961aeec9feb55ffff4354ace6bbfffd8cf7905e707d4d1dbddad71188f44a3c6f4e56b6014c08a8608e44b64e5bad8c6782da23a30c1214cda080d4e03e5d03666310b21b2d0f04fa0448b68d6fdd666c59d1d25c54cbfc2f75731556f1b024e1d3d1a9d205149922ff4990ab0fe9bf23a796c3031b44697ea28e9744b17747a26540043cb81b5977ba6da4d41cb8b34da1bde04014ecde8f1d60a119df84c4e8e6d07ce0d5f4fc0e1b2a604b29dbcf8e936c11ddaf7882d48cc202895142ad1f2a9596d22ead1f8b2fc99d30e53dac83c7a79a2aaa4866d7438263065e7c2388c8c5befcc3e1d38a52812c12b1679dc52a968628e4975a482224c40c5bb290fdbdf7fa840aab954bcd029950cc0e686354a9c6431f652b071de6e82d2df44e7af2473fdc27a5f42171b3c74c12caaef3c0eed357a27d65cc7f1d25948a599539ea30bef40241152ad10877754bbd1240ce909d304e93a47e9d935b8756a5c533c6543c76f0cc64cfd004461bd3dc2ac4d293e6a341e36014d825d8c36ae8de1337f6bccfd05e0406c2300631436c5c660d3041b098be4b0f615acd7546c30b54695735642aaa433e1bdb86611e100b8a42a2155b11612958df49172b2dc41adc5f1e05b9cacc5661cdbffc9591d4591ec8e5096c2c682d7088ed5f70a6556cfb1c363ce2bc7726310d9ef272c360cf2d1597e5278639ebe429301f0e5df667a8e0217346da8087bdf4941cc4730c0a8f1950036c87a9b970324d58bc79a06168b7c25dafa679ee3b68c3d03faaeb7bc7c7af528cdf5d8edf6bac3fa0caf6bf32c625664b89a633a8afd18d59412554d25a7623699e7857b6dd207652fd33ffd3f8c21c58bf2ae05e856bf52bcfa5e0b7e450e4ead221f48b01b4fce8de6337675a79b3e1a51d18b36c9cf350750e63a6dc4a001e990d9acbd9c77204e2c337e695ac229ee53ed80b4e12cfcd3ebb7e428e403ec6a56a859efb6d2a0dc7cc0b6b695fa31f6f8ee757906d4dd785877805192bed3d496c608e2670a123e9ac42b4d219b918042acd58cb24bb5b54f902963fa81c07006546397efa1674b3bb7a4ec1145a1b57cc8d488e23677774b8c45b6c7b40fba4ac551ab74b4e833b7a63669967c8a838e7ce4877f84faa16febdacf6ee9d3bdc6d780366eaa01b4fb5e6ec3cabd866ebe01d1f3a5f4da0e6ec2f6d46f3797d3ac53a7bbd158753314d41ff86bdde8a3005b02938f5a65606c5d4c613c3f49458337b2bf2589a86797403a722c452a9db91e88b6638cabff21d95a3386ebad35998cda583fdface86002514a0e588443e3383cb486d3ae9189bf3ddf87c4ebe37c700739f5a9bef0cb1a6739a086f674497a6e82dd0171fa79f81566afedfadfc3fbcceee625d870f1b01076ace36490af2af98a16630b8c4a28fb0c909902c70df6856be2dd34876ea2c0f11084dd0062ab8d8235649bffe5e9e596ce6b9d1d532165159cd9920d12c074b28c502628f9eedf695540fc1a892cac46aaedbfb3fef36e3f375bb91e8bdcc13d0cb4cd1a35312258c7e9ce20c615ff15d73d6a110fcba65fe4e922396f93c79ceade77bf29c5bcdffc9396c9ddf9373d832bf27ceb9c5fc4f9f63ebf93c39872df3797a8e5bcfffd439b5d541ca043419e4eea6696aa48499a2625a20759f7c16aa9bc508f655b1e6ec0ca46f6a2c626ccd1969303749e49f075ac15c081da58e82f6432108e1d4b0de621b256ce388606bce8e4c0cb3c2a4a09520537831de860b2d74e95a72bc5f5e7376511a08a23df948162be23d6e651323537366579a9300267ce288e09524b5e3cc5ce759b88f33b6246a7552dad49c891bd829ed386fc3da586e6c1cd252d124057bd327736746b0740d97509f6c16c6f34ecf91547a846a74d073f821228c21cd89bc8715ac12fb73dc4fc2d618f6ec2520e2d5400690f1595bd5afe49594267e4a31dcbdda358ec3beee7cfe827338b347361bb48665c914632162757210dee03b9669c074377f8e7328cb2cdd1e1fb1abd7bedd6534f2e5a1efbf78a46067edd39bd9dfbe158a941d0c65e2c7e9640faeaf0e83219e884892117a96da1ab15765b55207cc25912150e77bb00e443a1a1d96c0c031f8ebdf8fec7e3150605c6233fa29a66d5506d80f0db9195834dfa3bdeaec88cb72fd2b6853174a9c710f3c6478269e1195f8f7e846d373de987664a034b6b6e5756dcff223e601d227377fc0c936fa39361529cdf691fc696e3d890c2053325798a87874be20faa38651d88810bf753c55753b498bef68b16a57fef67996638165f433ab99da25a06baa0f1e5c886d1a1d1a671e2441501ab4b0828f47f23237202a789e982ace87cabb24a090f40ef38b5bf030fadc0f866130983ef900b666d69264683db865a7ac4a103ab0a36cdad20dfe2b8e419ed2082167344f3cf165d1e3710b2a7b43ea2ec1f9a05f07a81aa8e17f548c14133318060a5f8d1f0118f62a2cb6a862665d8c59f87fa0e2e6b80c961d9e86f314f6e4062f0dc6dd9be3629cc98cbf5416d004e0889de9315441e77aaf958ecacce3667e2cb2da42c365ee94c8d2ccdc2b2c7195e428cc1e409b4577724ce195600e4ca43e689783faa13d85381b9518531e214b3eb2ad9819bd8d106f48033fa98196f86b27666850be0d9a269a1ccd84c47a3415786d06475060850772f7d83c8bc187bc3cd00d98acbf202976f88cb6a20fbd43200a09ec896dad028032fe825983922201f80278df0e21be3204a6dca8bcbfbb8c329d10443bb28619b32b7e3247a40c12a30a36cdf12337add02b039c578ecb8c46a8998a1490b38139b8e0d132c98d1909765146d0226013c6fde440777cf09e46d0e1cdf5de1a41f84a6493294d27b3201152971f714fe5155ccc117c687cc78795260916ea82c558d4c7039ca738455da99a7fafab5fc486704e5703ac4c20deaa32a6b24f3d36b65253f208beae779d44b05dc68351172e79160da7c1e9ec33b02174a3ff32a5c1d2a0bdf46033dafe16f09a7f60c38a5765af73fd335cb773c568877a86c7e45e4b617caaa0581c91d68e9c88e6a2316e24d9f4b8a7c2e3f1690a96d7213ac424741873644fe8d21610f4c2b32a5d1fc8c3a46e2c6ff260745baf23fff14f203289a8a5efcf69b25a9f256e8a3c7d62fe981a0afa1f44bca7f41022eb75344bc274e49111a4fe1108837ce41a876cc64fbcc89737793897299575cc20f33f697f86701767cd8bd86aa62fc41e39fccf2e02fea329017a72051c7b84bb4ca7312078230a3f60a24fb097cd3648fc782722b04142097a10a248c04e23882b9b54d185f86e308e445f9b6a78c877ef2cc2cd4fc19b43ea640701606a2980f91e15eb347d7de3850eabafdf8fb43cd1d08136230192197dac655e4dff0af79276c3d99423a31d40a2aa20d6b23fbfe0cd25682e49be6eebbeb2b3a22c331e34162d63af3d66e7ae6e3569153816f1ad60c8b96fbff2da105e043e1a56e56779ab4e602c2db3b91865205fbc14683ee5534825d22890be346a1a07f183169114f31e16e33fef1626c897881a659056a6e6c14bd956670a7030c8d259348e722c158542aa324e037dd47a414517a475a5a62bd3b4c631451a7c4031587e733684e93b43f734de44b34d437ac1b3a7638ee691d560fd55f35fed1f694c4fcaf31e27f5cc0a5082935a59c0a1cf5d28c34db6b36baf5cf37e89a0c4c7796450405e432f5da34102da980e24aa00b78cd17942ddc5a979abf2d60a8ab1ff724aa99831d0fc520e89a3e612c8784e49810ab65eb77ac164910df2c01143f5576d09a3ab56f3138ccaa6815417e34ada20aa1f13ebce0411e45ad815c15cf49a50dea0d6a5759219454e09229561d96e45599197172e071683c5abed18298367579aba57d4175bcc473af12d378dfc8ac24dc13dc9b4f023b5a0b0a8e9a30a71ba9daf2ccd89610312798026559e7a181f01097f0049c67745934543c08e1b668c2e0049ead3a500ba9eb008ff76112805ce527a1164411ad686965fa77d2d99e0d8ecc6cc40d5db2e8ef1a44e049f16a392f0cbc0bcd0564e99c0802ccc81d3255148f1180e3380f2379e8c9179bb6e7c1c40f5d6d81d196f800f1b970301b52faa78519f1511b05e27118b1cd7a0a376189024010eacc3e806c29913bd8e9452cf16347960d356fa40b5b7afd46dc89dd46afb81fc5bb28ebc0545ffa7d4aa1a8d44d8368c8f93fa0f866888a03c251e00b92c348d5910b7e095b5b23bc391a436fc71b5f5d92a0860b4eded0813b5f5989a01a57805f0aee10484b570ebb42320a5258e58544845ba96b61aa804260b490aeab72aa07b64a0ce23d7a10517e06b066f30834b5ef5182df31d5636ed15ab1bd72ccdcbb33decbbf0b270a4be2588070daa74ee29ff3a45999b1c04f90b1eb78418aeb4e02f82a8bbeb9f3364bbb0db851836074d3967803688ca7ec9dc5109d7296c744016d40a9f69f671ddcd26c7c1b6d8f4ac20b8a1f2f22a5fd83d5668b92f665b8eeaf87eed9df8689541d9b3f573012965c24a903bf65ce5bcd4f8070944baad1cb132454f98e13bd78d2f04580f61159d53536e6a3b83b975fbcd30236f0351783f47394c4237393c08dcaf58e2f4a99cb65c7ac8cae86693979e1f366ba713d617f51f448a9ec84da8d38377ca2cf01b9b1e4b2fbb52182452014687db6d2fc2fa5df4a8f4627acef6b6397485ba0caa56ae76e157b9c4f788bf7e60dc20d495b9040ae6ab5e7d78117840b06bf580ed302d9454c17d3e31f624320bcd6e0e5fc189f3560a455aefa5a7b56f44fa326fb4cf27d40fed177fa7d45fcc8d4d3412b4e2f3094945a299826a91b81d90b66e161788f1a5fba2e9f369a3ea98c8847ddf9353542424365b0c5ec5e743ae6d1980d6dcf2656e7e7f3ab40351465dadf5050a8eed3c1e4be3ed125bab4ebfda5e34ddd2220b8e8c7000500bd4f338c70f565a44b63b3201a62bca9008abf65b005855dcf2a0424aed57dab2c343497740c6f1d3f28577193776942cdae3d4c92f54c4c88c7c51b1865a9875f19b5bc0394eb61b20f07a8f8b83518958c6c9bf1971e5ea1a3b7cd25d89bd4d025dc2504440a14a944461c8019fccdeea2fc007ea7f3d3d399d632c98ee8b7a9a15786e0a1322beb415280e051b7f7c0b3d742438315e47dca325747ba1e506293b536effb375e423153c21827453f3eec0b8fe7b5bcabcce4719868935fe3ad807ccd0353f8c6ced4f310520283c479fbdb36aa59e5224b105fc335d2fb7f0afee63757e2ed5ab7b9a400f20d8344efd9bd131073999ef7940cd70ad3a433ffe016e10fc3106162114b33e01f57cd50b4b5899b84e021efe6f9dbb23ec770b7bf841aecde351ae694fa82861e1ff12725bb8d5b25bddcef143f53cf65bc12d90594ea2b9dec8d1df5e595c548f5fcbd51bd56d5c17c705dbef341bdedde05fb993829094d495434a13fe3b2e0ac1b2656ae2d6884198fdc6e3706bb165bb2de2f2123498c75826c15016ca12cbf8fa43b8e7212930fb71e6766227c8b02fe61d34ccbab1c0196efbf9d5fe133fbfce4fa81e51bade4ab9d526a8f06a30ff57bd89ab5758cf78ea8208040224a5eb9bea9bab294f33053ea9f1c38eedbc796aad15237f2a57c4719e43de0f6977ff1e02bc7d43397ce8d680436e2c54bd79096d71873355fcf82acac8e2fad4caa011a67e23859f9a90831524289f772dc55b60e7266420b0e5c60dc4fa3c81816468471b9bcd0ca111d60902815ca2714c3c0660aa372dc6be00c7f6baca9a6cd82505c311cefb247ebb616e151aab403d20693de28dfac51562513f7287863276d903ce8f87fae119b8a3aaea32c4eb52577ace6d109b3c1bc3662c8699f6465b29228720faddeb1293222f3a61d2116d1910e0e1a509373f7781c062773d2547f10936215b8dd907e5a077f70d838b2e8fc3719ce2d56896f2cd2e7863a2266ae928ae579798587e592e27c62ef2b1e69457ba413a6e2618ac01bded21357de117c87a9324786c7bc1e87f81956d2a1cdb711667cc2e0667163b2cc92b1d3b27670bb33a26b37df31110abc44640c4cfa5a08da0e4fdff16bc1a10da6abd36ba0e5592b44af31e5d2250fd766530165987e5f7074bcb0036e6e117126e7dfd15ac2c6f3df275284ce248e0bec6f926111266b27d21c90d05fb5a39e85a5f17db0449c19dca825d0183936afc5856fe7049a949a293d915d31f548ee56f1e4397b29aab9a4393d1dc97cb78c6db3df1dcc77e76d771800ae87a70aabdf8a517a1413567e47ebf3f4d24b5bcbe0f169b5bf51b72f77c9df6663739227adddadac12bc22324094037c5e20e944a46ee214f428b941c5ff45627d4f20545bddd04a37d84cc188b8db70d4905d6686f7602226b4ea308945c209efff86e4520b731a0ad7aa9643be463971578b7e8c7fba26aec26ee0722a5336a91c862300bc56efb03521cfa8192d3a80b5ff68d68df6aa7b5a7a12dc3ba513453197aab4b6f3b39368a3c648f7fed203629720219a43f17d4687151d2a1d9a3d6149a0044cfc639e1f9672a9a1974ccec2864735b1070808923681ecbb7b55a274c309db2d47fcce8ead8b5de281702bcde2decb732b03582fa04a853335727b2154e4135519b2032a1b2f59517069bd4c78a6171be2a01ea715fa34d149e3e6eba5d1fa2d758e66b3eb1be6779f8b1b58d41d7a4fa159df1ddcb048197f6514891025b5ead44e9967389d3e7a8744a2ffeb433c89945f79d78145ae410b447554f966e4cf859ed29f8541991d00be530e5dc767e2062933f89ec52e3c1cee770d208a961f9f5859312f32c897e85d443a881d4760691a319b8419d657aca9448d0378b9b50851d035f8a4a6f765d0bbb35dbb9c85ec07b776261abe34c986c45ae8130028cf92577ed5b23f4a13fb54c8f4e7b3c432bec52137e89c3c62642fb4caeb42affe42b654885d506767b052f908999273d042e56c0a238c4b82b5cbec1ff6da522a9b0f17d565524b7b85ddaf8665cb3cb653d840c7a8eb5b3b3ba4e5e3568cabbf35d433a225971977b82bd061d0e6d101de66b5d3a0290bab961b191cbc48880781008cb1e248155d868e6e56b6f4f4e4da316bfebf8e2857a32365a3c4b6ad38d8dc669ba75ee5fdfa566806518d97483f580c9abdf613eb4c68ee96858eff655b9b063745a83599a55481fcf4aa3f62ee58d83966b7b1f98b3e4d52d6eeb967797568341634f8789f236679b3b90620e7663421a38738da19e4299438a47a9413d4a55808e8d5f62e61737541cb6b74726b2566a8b60cde91b6d46e07d7dcb2d255531b4e14868124fe4508cc91f5c788911172c06742c6a7c49cd9bfeac187c38bbb7e273462c6d8d337de5e28ff4a3d68fafbdff36c953a80f4e038182deaae4090104711d153807c55485c031f52fe732c2a88b9d8cb95a1fd0278342938c4df2af149068f5ccc0aa3b9d05003d0b65e46d73907c14fd353116384a963a5986c58b12a1f1d7790e1c136c9a0ca24f4fadcd08b3cf966004af350f498aa377264c6016151d31d4ff610b48d65b4b87f5fd2a2f04b3d9c761eba5224a5050f6de7e5e4c1ca6abc52f26f84e74af87385c54913a4ee88adb3cef6db214919b078250e10b1cffe44f4a41e102f4fe0f33030b8c78ce3154eea4055393b074fa4405272723086030c66b85c05e0d346c3f6f2e8de191bf97c56740d06cd7986282eda1d5e07ee8ec28a46e1c2b69d11604e90bc9573b345ad325c8e49acfd13b3239882aa6ce56da6ea64446d5fb83fb84a49a4be566ea2c66a6f86412ca00c804cc4ceb26aebfee31cdfe2678ebc0f4bd1b03f07c6bfe599661c0f8f194742fdc14eeda5b7365f66761d6797109f52fa622d5772cc0f034f47a1edc6c5795b2568c162907a4da88768fd5735c648e3cff89b6d2bc77e4398549893acdd667cfa14b62b620d32946de938e2022a3d450fef1ed61e0b8203d40f9af74a00fb395bf097f924c66f42ab65e723ca949b95080cd9b9995d97de630d185e27f548ee438b47e42090beb092595fbeb1f8760d34e92a9a1adb952ae53f71a1d0b017b6b8e1fd9d9f3e201e8ac544a25e5bcf5b3b99a0b8f06c84fa0b5ed56ba341c4ff82d1c283c2b44700513561d808b6a8cb6c82e917dd500484c909cc405a71609cf641d62908a0f857b7a0e2032546494792cfa81cabec9791f35fd89f5ed3406e86c130cc6976e89916c5133f4efbfc31b1817f4ac2530cf0e3faea93746ff5cb379e00f02289c7ab18f7bdd2dbaab70a84cd057838850c16485672e15c9d87865e419ac2d14c9e6e6fc2d7d80706ca1ee551962f1e21beb2e447b78653897e7d5736106325ba0273604262096471f922be1eea9292ae47c08130994f98e80354178102f34c405aed4c63af785b4643fee72b5f259a298702ed58b1faf1c06f749cc02fee77fdd57c2c11efcf8400a908d5c414e422b13e5c0b563085f0923b1cf299a39031e032504ad6db77a1e47a68d02d9f0b1423c8b1937b2671d24d2df821cb1631c6d8f191755064b2941836cc9e794caf380450565e26fac1a44c769a97817a8bc32df8a26067fd4ff20e735966f6442fb24214b5e7d26c5816fd61b465b89982e07baf2c037d5dfc500d683b2074491f57730b0b8962483582b8eec7ead2e88b938e8014f00a9e849c296da5e6e42f924e1ff7bcf907542568b5a6684adfc27f22d8d0838fb9eec9815b44e7b5203407c4c26df9e26a1b38745165860ae2ce5002709d7e45b53cd01b0072c81e43b6676319f608a7f0db90f4fa142af444cd373c9c7bdb9e110af0a1cdf17789f59cf4d89ab13fc27ed762320914ba7ab1fd69946d3c0d49f9e971130de3ee50f67cdac746b3551a1ed4db5ed61daaee4390b2368dd2a366d2a03ef8c53f7c132c6a4c2d6508c5772e2ac0e38c366a7ca45025210863a97b20fe3c3a80a26c8a8e6b7a537fd0b085adc6d891473193f7bd57ba0b3c72ef509c0559b8ff68a702831638d76eecd1abf22dcb780101733d5f76b335f784c69a23b877c249ef9082ed65b2e0c1bb122064d24fe8bbf99d180aa570c28c580d80a9731d6aebb79d30699a702dfab2cd0839820fc15164a084c67e645be2a68111be16c904b6bdbc342032d12a41bd25fa705f07e7d9c3d390077751e0cd75f0bb410562d3c1d9e816dc816807c2fd523a7d5822c57eeb3b7560b7b09f17e547b6292c0b9f3582db8a1053c41e3525e32d4baf16c7c7d560a456c1402f466e1b10f1c456054f403faa007977604279e01fddfd25c1f840f379f21a2a6b77e96dd45dd56fb24475a836867dd656187fbda17f622022a1a675aef0b931b8344b68089321bf59360741e9579251f032cb1132047c0ebc28bf838dac11b5b34c3cc557793ab878e055042ef230f24abcc3f7e1e9f7e89e5f452238e2a8adb0a213b9260b053f4cd61da0a3e3aa65ecedc2121d9bc3053ca979f9ecd3cfbc53d6221ca154a5600d423215f0ac4c8e4c36b782eb66682663237c1ee3924f2537be674ca4bfef52ebeb0b023cb5d135d83be3c396cc9c7852068a5112af9dfe15c4b51ba66bd962eb0d203239b31797420cd5d3e4e1b049032f835eade6aec530e9ab43d3fd70559df462a5a701f21c276197e8e81e53d226b66081d50078ece3845f85bbcf4054a78518000f436b8663b48f50bd3fde7cb4650b093a35d05de72317d0836369da82ac563dac47ca1e81702da9cce0282aae631eb593bd30f4f34f4dbbc84f78dd58cff6ccc7654444594ff496f93473c8540dc289088f43f35055690f2e85c162ac716596f907093e9f510ad2b043c1a7ba4aae92b9fc2a35282221d2516cdcdea2ea4df1f4095b8c17d4b6e54e34f7981f565d66e7683c12d0c8fe034d2be8d9147b58ffe5972ab09c2651120fe6afea82542e4c22b973bbee40e52cb1cd9fbc67e84610b9a318c9f83d9cdc6041138966569fe25e253d4586948b97c26cd967832cf08affdff19c6fb84fa3a33fc4864ef5f99f67cf2dbca378bd9f4708a7201f0b2ccd7bec592e1bc89fc5461c3462c8291114c2e54f2e569ad4ee553f77dd3deaa06327dc5c77c724c5f093651101d42ec646e81296c8c8cb34351037fcb330f0cf4903f09e5812dda00215db5c94db0ae767505de5e465ae56ba84c67a0a51dfed967cb48b05453feb6018cd27a78bab901866ae0b9bf880d86d359a664404afb59e0bd93c05d26650fd8661f6001165417d47ba9b260fe823058402bf5d49452484a8b05b87009c34f5ffae2ecab5e8f40bfb34b77df81ec1c9f055e85322a808944674d6cb5846e3e2f81188e7b0ecf05416c4b870aafe22a8db6287b25a914bf5525b3c7921dc07f3ac4af593214acef8aafe70004ee8b31da9806d6be1a39458f806afb1abc34694f0aaa970bd22289f91b1a35aa7fa2edb828ad245fb21817294d42341fbc26117e4544be295fb62a26dd24e570eb57ea4229e7e4635a3162f736e9e84fa970562334d63a409975e2f46e2fb6d79b2c2eca8f922b0352d9f77ac10c9e27514e60a772ec8263ab6b7d47bd2fe97057efd8db5cbfbf30f0e2287f61846c462bf53e7f7c45f3ffdaf32d51e979f260638df1d6e3ee3ffbc30cba0bf4258806b1ec8c98e9fb246fbaadb0a9ca1cd79bc69c4338532e6117e65bdcde8c528ac295e261c570d46a8ea7d9dae0bf1067407b999dd631f03e6fd34f23a7505eb20c22e03304847fbf0204620fc089fcc716cabed3a8cb33c3e949d30eb84b82ceca697c4b52213d79907543ab95ad45a058a1ed9b714b6e2d2fae114ad18e542edb501df6bbf5786f8a37673a2da5ec0c58c0cc61f01578342274d14f6408e115c12f815d24fb42262e900951b73e3c391ff645ad8d6dda24ec226b1dffce569ab98fb0c8e39e0e3bc012eb3b1c1bb40ab0e85e93481c0d492b3e6b4bc5a622820f4fb5d599d51d6e6ba0c34a7b9c65e852728285a1643cd6cdde8bee4cc0d11ef47703a87637445df1686b3d91a4c0e649ebe4826d3cf120fd2f55ea1e65f3aacc592aaa923f132c59109ca0f0537ad90e54b3598a2408f3f2c3c71de1958061c427d06c3f5a1aaf57cdedd32c74eda7905756ee91d3921bb8eece10056ae8e3cb1b5a649e7bbc8046d7b2645c7bb026a87fbb150b26d5897668055b0de02709ae8977ae628cc65901ee9af4c6780a8a0166232ff779d2e698b94cfb1613af28808d3eec0da193306cf3b601afe507bf27644a0e007da8f03e19f7a86c4a3f51817e7599e6c46b7e57d551fd758d83f9cfa60c81829eda3c373ce33c889bbfeed33e74ad2db065203cd900cac17b2b285fa220f3273589256a6884a69536a83691826adad2fb27e251aa34bd9a551a0d1a09bb6d9c71f5d34d42b106ffbf3ebf4b246ed402a13b7f9d11690c1fa9e4a26ee36a2e11155a07af66fb037cae25e37ee3ec21f12649f6ac36944b62d30fd5f32bc599b0840429c5142f9a269dba0ce4b75bb95d2ef5b9b764fcdd3e4f272ab80fde4efe2175b9fce3408c932134c8ab6618503baf7ab702a0095df89d469141fdcaf0ba15251b519a959960f383827afb318ba2eb75c86abd149241af43a2e8b120fd09d95051f035985457776d20853fdcbc2e68ebabd4dc1c3688762b3678a67a81c90856ecf51a5916deaa933340ccfff5af84b1d7b62f92f73c0aa08d43a02c67ba9090706082046dbf3001f2de3f7f6c9b757fdae0886636287d30d820964ab6ae80f63695d54093428b5cb030badd66220447c81b223b993348658b6552627b2b1691100fee5272c00a3aff2e6a575f7fdc30865ae1d193886a8555d9ad747dd1a6dcb18fc6cce4ca48984b4422f9448c346c0a584802b6db8cb88786c79662a781e20b316dc6cb9bc9a710ffaa96579bd49969941d5f53a3aaa97a1777aa4836f7f5d1010e2b9efb24c02d9f3651e1494f9fc8c4a5223710774328aa7a1c2dc434b8969db5071f062eeaf10db875819ad8824d1056585de53ac9039af6897ea514d02e2d99833eac7fc35581ea10a45a6ed73f89b7cdb6a93ef3706ea34f13bdf9e8882af8a2f74c468e575687a0c2edfd7ae4eb9dc96d6584b1887d9c70cad7f80ac94dee38c039c584ed86943dc9ad467f400d8b281fa3f648e8669bf8e2b32b624335a949a0e1453ac35b7b3b879e676118265e7d920bcc90500126ec3563941d260b8ce43a1b9314f034cfb3a60cb6d5e8593163de399355723c8af278d31bf11f5a2f5f26070e6024d9eef284534c4e0a92fd81027369ebb8d7a4dcee58aca2d405d1cb3ba82754b3d43e36034586bc80cdde153236fcb9313eaef200ce6314a7961264916069956071d2b57e68a97ad963d265fc6686db992f2dc00ffdd4713dc66cc90d6eaa498b56502d1c4559178787aab3a374a172de0b17656374c0b0523c3f9724cfc2308f20c94c57709c465fd2e8f755e555882715e958c8f043521d8b662644da2a2ec1039fb332d6efa3d0fa988460acaa9de1db45de82b34eb77a4156e12640b60d0d51dae7aad644d09a652f76786bf87bfef38f5be9ce3e902c0a261385ac912ad6a1c3024379c8eece18be70ab3f3cae04aadada61643ef97439b5cac8e63b7810eba20cb6b594db640f6d8aab6200be2ea6626e3d865be6a671e2485149babf07888bc6cbaa63e5cd8236f9057a99096d821937753e1635cc52c96cd8544be0d6e1c2af9d9b77e79219fc7b84597504887cefa6b0425657360d54b0d94f22c2fa006a3ebc13bebca97e6cd1323c270518090a1660f193ad5083fd037919aca9e536e7056d54a7cc1d4cbc676e88e531daecdc1f2fa191aa7e1a3dc0c6f48db5c6a86762339b9c09244003185da2d4a29413542ca67d1b6140c79fc5a26efaeab20faa16888fb33d095bea921e058731c55c204bb819f5978d7cf96fa0255a3cc816586dc5f22e152cf6a36018050b5a1de13e15d2561bc1dbd72cf4e08463481f23c2c835d2a9e9a3fb6bddabe54c60fc6cfa346214307a1944b6c6d93a5956b9efba786a8c3eba33abda97951ee78a520ee0471a75f7a20c704c30b56307a0518eaaa54b4502dae3cb5deec5eb435b334825cd6dfbef4080cba8c4a905d8d6356b391bf9ebc177c5c4efd8d56063a178d9271c17f4eb40e2cbc4356e0d2a0fc02d0e2f2a03842acc110319e5eaff2584080d4f6edace9f5c4bc2c08e0d563c411103b4e9b3da53291ecafe20a80bbee5c1c01618c517639608720748429d64468b54e79a154e9fd00ea7d1158fde25912a226311a5097b0aed609ba0e1d12d163af422ba20c94e80025e9a4a314a7be1c6b858fb07ee965224dee7eed506ac51db9caa6d8f3f36a99b1225542e0840f1144c3abf05284d39a87db5eabb1e4e4a82a95505b82be26389ce82526f3890c448e731b07414921a40d0c3d5b47271365f12b1a7052c14d9a0057561179b5e678a5d83af07ecaeba369efab47403f5396bd3d1edf1ecff8e9840af7ab9a8b0f2daadd17e1d87b64e61ca226a1da6bf27ce26eb3468bed9d99882aabb9b0112276b742320890ad1ac8902685df39a7ccff49f2a0df2f1606fcae428330b12a7afce03c9901eb0440eb603029cd77d6f0edf488616212e7f0449c17e754a87aa1333e9f0c654792ce3b9e80a27e6aae3a0d04a7ec74685fc30158236e9853c4608087db8b9516fec0f7eec703a4136702b9d9509fc6aca243f6c63c6318b643790fbef10c31cd7ab2c0f3765c944d2c8be8a4858d26e6a0cf13bada9fa85c0a94c5e76184ce9300d3de06b1746d9c80ea6d670a89872a004b99366b9372b490aa3e640f3e605f206ea4a876f4343903f55eb729361e8181e290d83be9e2f080ab5af82b0fdc45430c647ba4c238c1cfa3c8319da15a0c2e0667efd5f438c359c0484c1711d9490cc93cc533bea9fbd28f3d292fb83d51263084a95d13c49cd968415aadf38045210c14a2e20061435eb9f5b8ea1cd5fb30e60930ccc56196a744eebc2627197b2648db8bc41c7d121a3a9a7a42b9dbdc552ed0e3ca418c560aa30c07b9b6c0e41bfd3e6d843633423778659a79663bec749ec27da1025d4b8cb6fb81088c038620b799c492d5a107ebbce934586b6c230c0429ea8818f0564cd16045bb2270a243652599ead17b11d11ba7df8e28111e8347273e169211d25cbabe38bbc25f1361ea632e321f976525f2291f39d2d122a5b875daeb7de5decb1782b6bdc1cde8e654b090f89d741136bbd2d0e5d875e1af76546b6463cf53387f674ff01e7b534dbe9652c72b1791d1b84c7789e56902f02fb5b0408c1760f0cb18155e2d15e06319646d1935a43f15a8f69ba2c422ef61542f9c365c84abba2ce860c45ce9c867226e10b765cca77b1a13ef6aac068688850af3372667074599d02bd35521cb1c1e44cdf6e9fbcd2b0bef1d6d73de9fbc1f2f819375b354c908048d6e66dae9abd533c32d23e2768078db5c7687a9d54baa486376feb2d1e5765e66e7eaf5ca124424371fd4d8d7be28e6f585a63b3408b260799fb7177a5a66b971345a9f9fbc88aa848fec31d869a0cad92cbcc9da73829cd813b6c2250b9ec5e3a7ed4adfb3d0e70070405a39ca12ece8280f51835cffd7804bd359f4f235264f9dca018cf8c9a16b5f024445ef71709c01d22057672826e28f252f4fb91fe0251b6959784579c701dd8413a8aca82a322ea4f8c9aa6ebb15dfe70245c6628a6413c8cb27b31eeecea3a7d898a2304169a4d0f5a1b30ea5aef58f7b40d0cbf0429178386c16fbaa6462897ed21ea77b2d11a1711e83c6fa2b3ae40d58fa93c248861e7146bde743c8e8a900cac376ffe6fe40d58d93815fb0288c05e2a88dec044f8c60e2fe7a7d58c1f90d3ee4a7083a02e49fead2866e5f1f12e726eb403336544e9ef2fe21b72bd7bfcda1d24714afa127d4e897685f5d361701868906231be2f8446928039a38524c25e6c215b8d93ff465b9e23183876b8cd4a2e3aa7d998d6e676cc7b3af986e1eb128626dc98f8a6ef3ff230163de48ce2a8bd83e2c97ca0b0241baa3fd70b692d8c9b1bf92244c8004d489beb6c6163d48a87404ed541f7dbadf30f6e93f06915499b1bb9015b4dd32e01fca1ba7f5a5fdae62668f91a237eb0af9139c99faaf7da1baf3c903a80f89ed262ed576464af8f9dd9f7ff03afd4a1d0654a0680e9813509580120d800dca34f8fd92bf5493e171f418954eb55aa5a934c057e387405d47b8666488c6c301a25bca11ff72fea84405f25ec9e15a5f2ffa8527b9053f1dee2e6a5dcf6381794cecdcd79658d4afd3cf73c61dd63b3130c127b3b3599903644aae3659dc8c0ee816026c19aabe21f9ceea4723c531f07cf4946ab518fd34193ace648aadf0b5abcdb7839804043779206f7a6f4456c9e69b383658ca0474b2d419aaeb8f1c8b037c6254836e13aaa78bf131bbc529523d72c44b90287f6414f0f896878119d2ee1031182e613ab3f3e69c333ac15ac79fd318890cd8173e298a4783563736e5927c53ac3b42ce8633af0072ad31318ac8de9a2c1e66a49e46955fbee7cc1349c43391a58c10c9f97b8ed8771d106327eb9a9aa722e8e38558d0cdafcfe54799ae62420611c3a0718e2cbce4a16e10ff89f08344de1c0261f06c005dda3c06c5e197147f829ee470d86256442c6e7859c1d2ad69d366c3d23cf5f8f8e5501328be2ffa6d8306e4112868402404cb5ef40a1c51892a74f7be7c256c6e4d0ecdef9de665deb5826c2746a00b8cde7c565a57dfc5a9f9790ffcd271e5d9f7a56a4568c582783f16994f850c95644187f7a49d29a3ed430d580df74a017fafedc3e1580e340c0412a72f1aa606fe4e2ab1bb2ddd7318222601f506ee53348f3484ac9f9d6a261fad75a851907c8500aea94042cdfd664582fefc6c250b830633d0126f586244941cc86cb31a91ca2ec22e6c686011f1d5642f0d6eb62a2440b9903acc27c1fbf895fed3190b082d15ffc2a447cc14cd667def15eac8b9f8ed8d4782cb121b45920618591487ac4ef3f24ce5aba6e90011f2f418a2485522072bf7f1127342620590d9c4d9d031257b5f78b9efde08b04d1bbd99f4a6d0c4e1d0cc1b6161b123ef3b0d077b143a2a582bd0f90b3c3d571d0041ca5818f50e3e4dc330f883a72f618bb49aae585e43a42f70af10ee5ec50a78259a44d8c5de72340c47937a21f954acd3cde429901018327c0018a54a0f16596f88ceb9de2dd03dfd60af7e820e1e6c2c9fb2a2089d7f5b8ff0c7b7da18741e90b670cd39347b1abc9753c54a70da447a437006a12fcab9a03cd6a10e0b09a72c8d55e834eed1d1aa67faf77470f6536dde5346f355646dca66855c75c42321409518863eb981212c3e0f679477cec752c7a3fb318fab1f93620afd328aab95f09b63c98db4c82466152ed4eabe340843af95d967728abcae0ea4199e2b140f76330ddfd9383459a0367b0d2f691c0efb1ad1c89d0144065ca98662c3c70e20ea5e72ebf40b205140112e0dc581b01554054eea16c9de6b4a131633004689b75fe4a8a11906641b500a4e4992798ac1a7e5a2d0c21c933b6ac4adc797405bb4958f2ad0b7d8b4a7cf71813f4bd254dca1364abf66770b1977e2c5cb32ca9534e7f544c632a686cb135e521f8978cc2232803da9dc02c16a36f150a682239b9999fa1980183a1a64ba438e2dae2b119c6ffd492f4c273a8405e93173ba114ebe7bc7bbd42f687c7285a0e80b402203f0e5cafa85ae7321a4b231c29368413f39569432e60e8ac3612291c547a76ccb25d3db60683032280b6590071cb22fb5ff41374dbf8c9a2d6a85622a3c73080d1f2ac8177cb66166ae31f1e366076e7b5ac2a006fc0a9e8047dc8ed5a55230c6a7d8977c441c0f98c81cda835f98a17e877e8d1ccad5281919409c47c4a51d7b9023a348ff6a6822cb5f058813c29f97e5128240bb0e7bf9683f9717fed0f6cd8510283d53043d0a2cc3510755a14dbff854b38a35447f2e849a5e9496e0506d61e08e84cdb372b7abb2dbc1863e937081027069e029403440b9a074c14e2576695c9a7c5af482576f74d28fd60c9c220af449ce91b7be089962192da3c5a7aa4174d925d922fb247ccc2af05ee0cea8916c164fa6de82d89c490d4473e781d159751901e5d92e59df91e89d7eb49fa113408141a8e921da5e514fb180a7dd371baf4f4cf58649938eb7a8010de298f0260e58e54592dea718aa5c63616178cb44c93eba460dacd173281fa87f11a6fe9ab31b2e0e0cb40b624c3e51e1fc75ee79099439b591e00666d00e13f27ffa2a388da700dde1b5a10af3bde8b17641a6b4de6d754e53caa1073049ad3a9b825ce6e9d97ced4825f2d362c0d66eac60a556df4c0f5e988b61c154d83432f77b29ddbafdd2dc7c294f264da9519876f781936083e68c4f8016c03d754ad3a9c62f92a4a3cfea3c99d13d7fef94b9ccecf6c1f6812d2dbc902e9d4669d51efdb1b7e213be7028a511ab6717bdabb5c182e62a1c03247c5de92b1257530243a45983a2d4eb0afff5bccb215d08eb80a07f2a2ee8ec2a5aaabc26a957c12624eb4d851fad26042b9db8afad80ba8fb0c8bbad910150e9baed32b83676b470c55847378579d6035e2bebe4a07c05e359e9971c94d832c7ea42744b4787abcf412a4d5da69742cb469182efc7fc33c80ab2161f3920ee8049dc0ed8379b26ab554cc75d5fd7c183e573ff0247a4074422bbc2bbf599145fb46d1bb32a83fe80e10554b7cb86ffb7e9bff8c9d1f94aa8082991455629615e1b6122b5684d209f0aebc8f2ff2d0e939a96068377ecd5d7190a208b78585861266eaae875ca08371ab1d7bd70f63e0447b9cfe54418e80c5c7688372fce22d9f8392d09ffb79d6080cc480065a364b42d3ae2119c18ad4a588ec7e9df5177644146e952815cb60c1087f3838c3ea160eb87e0ada160715c41aec5c1c18e0d693ed50f74c01bf92e80708cea4885583aeac74713f00da1b256549907135a3f0bac6cd79baf10c29516a11f342a4392d267e51733d70551ec2829063f1a82154dacd79864e04edbe14206e805be516169bf63b16bb2e258673041a95179ea5ec58e361cd6f7451a4c575a70cd7b6746f8edcfb4f5bb4efe9ce1027be63bb9f73612e3d58ed1b193080462c00aee428a5020cea8db975fad7038f947fabe57a8188d27f3289b43dd4ca0769add751f167da02b96c01066851a96805c05f4f90acff12f64386ccd1cfd022db9cb065340e5093b5eb193391e1229bd1c75d2ab5cc9a470d1cacb943409a970d8aeb2230234386e0a4620350994562f400e8abc611277346616f18cb8d6ef8b364918069511b8660ada0f638d10cf013d0940391dea6f959d66b12ce1a95e230eff7f4a7c0553edb4235bfca7926d16a768e0c19ad897b409bcc4d53ff7f692b13fa21a8a7c7b25dcc8b0465210e066d94d1307c0daab7344becbb1943cf78a5b28fb3eb4546f8a2c4e60bb1e84445a4d301ac37fb59ede5f1bb06b4c2590604365676e7e1902a907d1465e9052c0c166893a3c3e03bcff0084b74e87939a57e9e8b127aaedb0a7b8d587729b21c0271ad415d1650636fa1f461900eda705a912225782efefefbf2d9cdb6bd38320c989659085dc0482a1bc916514a8efa4a16b310664eba701c1f6c5982c8027484fe597a177d37e06b6e7404f01dd7a3ca6e3ed570e6e320ceaac27c69dfac8c44724764f521a3ef89f05becc7bbcf1a41492055e3acbe04f1e3a26cb0f1e3cf94255ff5fa1991579d9351a95843c2e5f89534567cd47c8782b41bff74e436f46c4670c7c378f9868079aa0d2b6cef0e23dfcb4cd8058c1c77c87408006272dd26778a1fa65afb1b4551fd41b5fb7c846147df4f7b9cbbdee1618c98dccc6c1088179528f4e21c491b76393beee6d688aa7e8ba9e479034fee2854b8211ca4e63fb1d655b2f885851423d30873b5da11ed1ec30cd7b6091e3140a1fe5a4ff13083f78b662048614298510f5d22b42a08086a76614f9064907ae987bf8b4f15fca004fd36d7f06023feb2b83e3de7a637d3932cd3cce71101ba60aa3f4aa786213f328fea53e8209396322c19cfb21ad24e19e3b38658f895a632971614d040bf7ef0c8ac6f8b158b3d7013a6e6801cd0097051c199db5863754448dcc663bbb774a6cbd46dab0d0704fafd1e0bda4f2b4a9b90502555415a984fde2e9d43f1fb2b6ca8f852cf722be1bcf17396664bd725207e34f506a24e809a9d4ac94075b6ec4c96d7d3f93503008955675f5c6e6e8a79fbfb9e74cee73b3ba300b13bbb15c60541483cc3b54f0a1769ff2fa97fe3de9143d5c0404ff7b99348daabe45ae5ab34dd91a65b40c5b2a7becca65fa953e064d781814b3757324e95a79ce2e557ae1cd27ae34beaf7a55e35c437c56d2bc199f4a1b461b358eefd27a18fd77f9f67e84b86c70480f0115b257d480c542d2e3c66bbb59193dd482f0055f85825383f77a9758679ba6dcb961c82de7d8b1ff780ad98944e93057267c524473f14154164b50d18a552a42fb4fb4d073fd2acd85022367cbd5758498bc11e9dbf7b693d51a196323b181aa7f6a7be428f9df8667722a01a8ff4e7583595d725607f07ef348c5cc160f9b5dcaa551ac111e68cb22764f23cab84f3fb322b1e34fe9231eca3e6bf531ef9f93ebc8fab168224ddbe9b06d34bbed7a541f1db5d8aea014d6ddd75c18effa3fae061352e3101d54f2fbb34dab77d5a5024af18875084768d26e17e227761f1160cee36d7430be0cbdd2734952169b161794d91e195e1c5d2f5642a95884b16e9240c015a4a0b0dcac2c2f189425f9d2b0c64dc4b6a058c00272cd72853b8a429121922dafccbc66d5f7d1d223307fdc8b5c4511aa2e64723e4b0580d45689e73f6f9e05e24499c5107844696ecb94cdd1da2826a9e661ef8686cedd6a42741c4d4ffb79d6a95b068681c95ce69b55864bbfeb6b5996e8fea3d6570b0ee722a959143ed5dfe9e2a9257cf533e811c9049a924bacc906754a8c46377904dab6c4bdd22db7680cd2f8d5abe5f790e9982102e8fd51ddeaf28e1c0f2fcf8bca05c8228f1f58ea78f1b35ead2d22328fc3b69fee3224c931ec1d4dd62006a874f36eca873d4a6eed5f277ec5089de10ba361a50d8a880c9b0172da3a6fa05560623ad6ebebac5ffcaa82b6e44f7b97029786d26230261cdfd60604f35b8874e296e68fc89849124ff78dc69dfcb3f6cb8e3422f0715f19927dbc4d5bb6f7c10a8cf4bec1d210f23848a6679e43d6ca612e2ca1e4d43b5281405a5d5ac8a53a196300462df3dce4fbc7c425431826e1dd36d299dd44ee3aa4b1d37de1f4e1b6d14ff9469e1bcff24c88aa67efcb39fb646295a6342f427d5c85da0cd8600394d6a8761405207e739e2a782d29ec2fec0e2883c5888868bcc81db75d7680273ccd52e4887ba51a0f07f2132d134d2d951901ff821aafeb1bf1c672e4aec3d6697919e14c7e4bb7bbfb5f78cde1390ee4d755bc644d5993ecc763fddef64d2a248eff413a85d5eba280387e2d2de6027f0b108f714e2523b7dcec2284ce204bea7938848b1ca71c7b5ec3d56d4cde0dc4b3aed8d8e5922e3db255b8a92cc08c1547313eac037c6211bf9beb1a76b2bbca0d05abe9c5c1be867495257ac4ef3bab55d766477b96ed8b955682da131e05ef23179f1dfa33ec951bd2d2268c06fbee3556f2bcc9deaa54f6380d826535aed6355031b7424a2a10fc13120c76f864f45ad74c24e5997135b396b7e15b36c16ccdff4c91586b655c87982a3bd38604b8c1187a258e8249f529c0d30b20939939a34cfaf839ea90ddbe7dcb3942396ad1c263d37ecd1f4a3aea4d344b3abc071138e85ea706c20e3081fee55812a722588cf62f27e5ffd959992bf2b80583b3b4666e4fe4d0d3ddfa32f954c7265ec794463b6b99c0dfe338c188af65970ca620a284c9fc8f4f40fdaf812679b86d2e2566baf4eae5da34e1511c025a92a250ee028e5588cd3676d5544b67193822ee9a9c561cf76a78f3be0ba55aba9c8982c625448dea74b2d2af7ae5f7e1a4b94e84d47f67b2a1ac320cb81575562f417277c4bd3f28a0adafe38ce4a01a21691a1f5a9d4612896fb5a4c95cc6bd39acde920c2e2dc3fa1e559d83d64d58e046fd0aeb6b5d4ee8a741c91722444ed2d518401f05c21253bb36b1ce5533f43ce4c6ba3e44a9459b4329bc4e61328791cbbc95e7c9277acafef89f34a12ec6faa337cfb2e100f541fc12c5b25a2488712b9bc5b04828a4ad61d4b3bdb7a92b3159ab8d2ff67d481d506bb93d29bac6958c1d52872fdb36e6515c328cf3b943717e465877e252c756d56cddf412aa9b8a14d084c7012a46da6c6f04eeb1af807d7f18218796c43323becc433e0c99e38911cbd2eedbebc3778eb606eeb8de3da902117333511a4b5067f83c4942bf3a1c14e48e8d79cebc6c6a52a8012ed7534550f881b837f4921566049e6b9b4cf681fa74f7817960593fccb28a480f43962c603a5e1026aa98865c1a241000160d6e3284a3641fb6c3ec0445e79dd35821a5238c180c4f2fdb9f3318b7938f8542135ac80e01ef800d32cdfec4ebe35c4557887957f57a06be0e93b1eb62ea6100af220583177990031d0d2f57638ec2914ef23eefcc0804e5027ade12947cae22cbef83e3a1862b8919d02aef4ddf8efada17197a264c04a2d82fababd626e3e2e304c43153a00b5acead3179346267e40570d5dec50a3532fd8e844b2a81a97257b08baf5b6e3d1cfc1239c56babfdebfea6b120d6b0dc0b59114788f60d2f584fb30dddc7913577f13b413ba4b8186ef37a3f848d58c8599ea013353de3f77e9de9d240da355aceb3a3f5431b8c82b74315f7857e12d8955217a031df62a9be321a56d27dec6d37621da721ea5193f74a7392d3b15862f55128e04d1961924914a51cac241a28ed4392e122b66249698249e6a0444dc5356468c17d6011d7de2e786337cbe3c6e9f864c7372a19c2e65ca793631395e27b8bc2c99c6b3f88995912be0c0534a79fe2ae9c05b21a2e7001886e3a3f35838270804621d0dc7ad444e84682750d6b86b16a16d858f72678fde00df783967d8df3e972b30972be1dfee438659d157affe10585f419de95c5e23072e8be7c3ba98a2269f3acf5191bd55f0738842ce85da327bdc3677e2e4e157716493f2e06e1e460544e78fe1b3a7de4ec77a70ec98f89aa653a962b7f501f48922a029331590fbdad8abd9d1d702d76e8ff2c39dad4d594fcdd58a63c7d58698344b9d6ba8db4d239b631c019c4b7b6692ff3bbaafe5c3f46b1c418c17b6f9ab8be5f6bc5ddba4f1888f7a97263a588cb0b58d73abe16624c18a5abb33328400b7e1f28e0334601518e1d5fe2691e18019517830ebf16b1c0c7ef2b5cf2e5504990d4b6731603f2c56bbae6d4e9531509b90c6d8d2329546d41d0a88281d61c0608d3d2df38a1b323a8804a64e5981fce12e5215e4fd3f0cb536d9beab41ae347993a7a49a74d16210b04e8fe373b46e9e32233754a294ba236bdc7f393e421e099af86fd1bde2c67008dc3b55cdd14cf6cdee405445616c32a6399b1840b635575d5b0cf765d4f003096d1b1a1f3bfa41321d4247ebfa084b7251418d384ca95c54aa8a7d1690f2c98529413df6db4e607d5b13185cc1286198c6a6ccdbc54c8d8bec0607ed93a359adf0004f2c29ea24504733e2a7300273ce96a02dc8c3f062d200e687b4ee43ddbc247c5a6dfe1ac6bad316b204cc03aded9c5df8b54a201a66f940baa1029f5dee6d80d651c2125eeb229af7c762f610e3f714b5fef6033fbcc6f3de1878b88e28ff1183d29457355de7b81ff22bdd7277b945ceac73ce525876b9879bb9aa13c57bc9b098ed31ca5162e46de64a72ad1c66559b59e19b9e861f14b8bad6ed6090ebfdb885c3d39f98827e6c8bb2612de0b8094ebf01b299ab46f6016bae84c000db209bb61a110bdd75d58da03a7ca476947a3d7eefeae847c0e52a694217774fe6417721391816970bf6ad2e223cb02232f7c199b6d13d6482e65179bd6f0e2763f5c07af029d2ea1101316bb0fffed542d93414e64ee133e017dc4159c899bcdfcbe5c70499fd4f87c247d73d4e354ed316ef298ef31d5ee53b5caa00e869799cd3eeed50bb0796f4a35b245d932bf274ec701b2b19e0873958dd9b5b4b0de92fd89918630a8ac8d3ddddc3492869b158a5d2e54ce431dca2f125ec0e8154441282d3dda057de1df131bab8467b617e5ea4650d0749a616233c657440bd1b567897e0e427bc85984f3497c6691a399ea7fb834f3cde81e3490c341b40f3f68e66282447360f821abf12fef0a235a821938d41821c56538f4d147ddba480171edd8a86d52160902a732d1ab0aa5427677b906b0020abf45405bdd430cb49854648f9b678dc95bd487f4a514ab4b896544552fee0a2e239984de6a4e1851394f9626b1b070ceb5c49be16a80cf6f0861c059d4072db65992bdae58e933b4b179cfe18cfe886daefeec614e889f4a16535f4503ef4ea9d0291483769eee36cc34127e819c55093445032efe2b79375377b82456c99665718e9a6947ba8a101cbd57986beb7c0befecff51bca04dda19f0121cba444ee64adec1096a3f2ffbe484d27cbb736ccc841f34ed8a0931571d8fddfb1271ca2a8c679f8a8b3ad641e1ab4c81066c1338bf1022d50a7ac711dafc3232dbc93ebd0e8113657c247b4dcc5bc9bfd3faecf3e5e2b269f1f451baf4c205d75010ef647fce7ef486fc4783cb09e232ae27d58a180d70ad4874a308a779577925a5cc80d0b98d3a512c6290d0ca87a26012b467589facdba6d8780177b42816d541bd6443f5dc67684737d395dd410db8d4932bab0189f63c5373edb6feb15b23fb25696b81d2c50e2c54a3dda43d8e93eef90a9e2dc9142f0f6f10eb385b0486fe02d2bfe8d9aa030d0a6c8403b732e0fe33213bd42205a7449f147426b13784213ecd7c742a9fa1d6c6c2f32c3dbab27f1c471fb0dade088f67cb153df2d47350eda2da185d03ccf52dc39203bfabdffe14864c783aa619e70f4ebb394bb6d6782602c97fa7b5feecdaf70000bec5541886ba95668297d5976743ec65d4d596cfae5f49c111052effdd3bdc53aeed01885ac30904d5bb495050d1bb9d8a8480dcb4cd68b983e45af73fd148a412bb14ae13ebc0bd04e4c355ac77eab2cf30b01f3bf02292e0eea5828548bb130a28c4e91b768fcf6cd2bbb1112e8a31e101a2c4fa3e100ecff29bf1c92ba5add8a79a4bc9b886535cd9ac76be2d66ada81d2c929812edca9accda0d7bf11f69671f428699fa38f46ec577ad29796971416359bd464a3e644cfaf51a0439b4681a79835878dad6e891d871cb7afa04a9a73e48e89b2c753ff7389a9aefbd1de4dd39086b061dcb17069bd795df0309845e4bb7fa8a9fb8e307bdc8acfa8296ec92740101f32b4ef7a2774c21d240332fe05f53a57d4dfc1bb3ec2fb6b19ea54f16591ef44d471c307b12acbfd52c1ae3d99d240a6ee9d61dde92fab36bf17bcb601209b5b9eb3cded7baabf5296793344170abfc7c2b758944b5acc8c46f0ba10a2b9ce831ad0000baf861f2d4f5a6107997d85a3a8a1a73c01529ea88797f798ed5eaee9c8e5c40d215a106ff21170f60861ecb2527217ea8d0c8ee108e1cca4043c6861ff85903196c23853f7af43bf3647a5c75543a1a5d375c4b26c9c3ab032ede9512fca8ec29b60e79fa7e4ed103f8d8ae392ddf99f0dfc14759e6fd7e46dad3d5425121585c3bd3315a3177a824cfe93668e65080c8c3396822e05413828f2121d1263b4f0b1d6f84884f529f0a1cab6bd17350bb22b8ea145b78d163c0a3d6cb707a44a50c2dec00451896583ac7911808c199b04117d54aa59034a8f234113b317d8df9f37d31a041dc42d7ba03a2d9f1385b2ec73cc87ba39b8c08ff5285a7b4228dd491712148802888a91c3a2432566fed1543db4af5006bebaaf87cca93f56e63cfdfdf4993229040a161b103e5a38b2928b03a7bb8141eb599c7b7e25ea0eaa16ce387915acd7e96d5f99fd0dab5a5c01c8cc111baa9b25d33aa0b63c2700746456d6595c333ce50cf71e2f8c8c96cf0bb1a2ce7b1694cb30e838e4be8f6dfceda47c06f6c519d3d79d2c8a88f1631a3b87f1c289c2589e695c83a7b054b51ca683611e5f18eb122fd483a270dbf9776cae72204c8ca193e0b350b4482b61eb533d3a33e5abf0a401d0f613c169bca310bae1f9240b9bc7786c7c35d92e71b508f99fcf541b196e66ba75ad906fa2be9b1027c70ab54cab14b9addeb9f42b54ba02080965b7055e2cda15aed067ee32f09adfa1c7da86999c70030c67a84468d9e0249ebbe64fd69c9431bc273c49d01f43bb2ce7a28b7f5d787dc7fc54845b7b288a7f4ccd893c07c39d0e384f4efe44cb80ecf4f7c8e8d0a815181252787250a2806802c31b0501403b23712bbccfbb5bdd68a6ed64e289700b87f44dbd3320216d830447ab23e8288a29104dba9b84924488817325f726f254b18c5c6b831ceb07b631a27b45c738ed6d712ac03f27c0bcba083705525725a2b0eee2d971b0261ebadd3b06f0de7c2d3654d834d442fc9fdcb0adefacc5cba34fc6cbcbb15bf07e187e2bbbbdbb758ee066ed0f565c15b80aca416629635828d3c425f2c3eec15669962032152d919610a60acfb5a2af66bd212d23b214a50ccce084c68977e94b700a08b249851676955d029eac99df648cb8378c826236f7efee73ca55cc81a82dd4653c1c98dc8fbc45001105b50c04621878c9bf7527a19593ee82f48e071fc3d2b7883c9708292534e6a5e831b756045fe63e9b461866ca7a52766468a04b2948516cd55200bb3ad7b3216ccb90930c3e6725c7e1148ef15d788a9a89ff40c4cdc365bc22256f9ce3ffb1a19128c989614ece92441444d0385b2a683c537812840676654f3ea9966c66a66b0e33a0b6634d83b92eb14ae48a79c9db6bc82651cadbda74741dca06622dbc808bae112b1abec665cc2b391e6a46eecc8a63d1d1398f501020994ce5e8575acb81d3a759720188c44efdcc0dd8b5b0f8ec5b9bde233d2fa03269bdc41c66dc5537fbc56ae01dcae590a299aa037cb34633b63ee014ac79d06334ed6582583b9c1796e1b39e353671cc815b1b1b464c8c3822a34cf4c3a83b5c8a92408080ac22da3f37d68233bba7d1da80c1252aee945b61a68219fb199f0f8aaa5d2c29bd302511801de2b2e5716a6ebe0fc7c708c01525729048c3a23150d9834a41f6ac57559564c1da2a73084eb9fc546507ff9a9f994c4743583e4a510765e3ea7ece69018922316c2de42042e31011babe13f984165f58900286e22441f134d58a096b1f1939df6dd1340d2d61baf71fd9fae7bc3101e3b5759fe7f6d167c84a01828f5b22941cb577bd944c7ce4fa07daa0e385514d8a162cd3dc3d888b7d763d87d2e8d7a9811d9a144da530542cca36b13f9f22f8e07746fa808b2fc1614c8a0b25a0af80b39e86cd335310f294dfb4cbb1af0b8f7eb3c57d35592b98a441f40c1bb399b51f589ce1f5b62f5d2c7c41c9e1c239ff219bf64f324e2bf343adc3e1533be523eb0d7d7937d520b44be5b695bd6b86c11f42fdb8b32021bcefc9dba0147f3befe0bb4ea334eb71ae5464d119c1689b269a3bcbef66c96dbea31f713644b9d93210f3611196c0d82a56b8097fbfa2a493e1a728e878785d228ffdf03926d2864b69ea75e614421e18924a6650a3f056bc91702927a89c465084653da04ee8123c34f109d804fb3e1f6cc88aef2db977db25b82b7ddbc53ca2dd6dbf2e44100ac6d04836b330e43e1c6b6a72df938d7ef12109dc927707c08f83bede6866f78383ac541ae9a6401891d6c414c9b73d913d01ff7cfaec2b7ad91716b72bfb2ee3df39775c56006ea64575f2a3683d1ee04ad465a0f057f5522de8e0761174c534b90b33dc6dfa0358ebc1728dd96684b43778772a566fafbe9dd0cd752481a798668a6a2bd1321d00a6c949b11d92ed1971e82846d4b3d21243736818ea0acb915f0e62005c567bcd8dcfd931684580013f19e1f9d745f42341e024b728c172ed76eb7a33ca66d124362fd7136588872e307d839bf83358c186d629f4a4033b3501e969fa6ff5bf625a915acb7198ff795a4b0df5512cc1d63a118e0e79fbc0efb27f8a7efc450b7f2995364f151aa6d16be0f28c5e885bb79b3d3443835a3351868766e228864b1cf213c841b75e645d12c47b8620eb8ac28e4d9e616ec6312918154218565fdf9e1a7fdd03b3fd910c3373d994b1a6e23754cdeba552fb8abbabd237ab534377b75da5b0f3c35754071b2e9658dca35bff8fc623054127762e483cb4c24738de817c1f40f18a154cb6756eb56b4cac9c7b213366729e11a68dc062c92f5991a51a8fa5431b64b3573c525265fca8359b27d4b96b6612e56ee822a9f5098322710a9b03e6e779980aa4352bb6f41ea46d5c20c60899ad372288614400d2f2fd4ecd8e807e8adf85d83d6bd020390d66a4023149f13764e5c9fcbbcda52f26203e694070f6a0c3a53da7da654557b6ad158b1d82116c3f7948159c56583f3295356d3b05979e1adae79b14695ae29da5a570017de0fd49b774df2665d1d50e1c4f045d570d4c0fc9405d4403369b1d6ce2d96465210a6842af5a0cf32a36cf4f7007efec832a411401df65b01807a201109312ab37c3bd6a241cf8819a56a092ea2ce1c5c62b7288f973a9888005875184049d02e044809064a8cb7ac8319f5f8ff5d4d93354f289ec8ee781cf513d6c0f191fddc5c39e13d36c39c94c8d0b692b613ba0c5d70e37b87e33f9d0b6235042fa7823f1225eafa1b21a6696f13c3e9ecca171f66c8df9ada840d30a4b1c9825cc2cee39d12f81e5ac2d2c3665590a113f3490454a980411c03398a2b3aea823bdb9310727c5c66a68d8adb0b9daff1440824384040b3062fa83933f7afbcd77c4f7f17419bb7653338b2c3a6d192f2b9d7d46282c62b433ba05ac09ae6e702d604ae6f03ac7c6a514add6f2cc2f202a6daa7fe788cc74203273bf8f145befd8b9a08d83b69f3f3c6ba9a9fdab1829bdb4f0b7a04e80e928a019834ed0d14ea4799df8b1728fe63fd5c7b298b6a053df9b71900a02f3039fd108d5f63e4d4b90bff24c07a0178eca9d94e35f2b975f3db14837557517add5d8d48f03e3d468f621b1ff248d240f2b8f7936d08d8f396713a6d24e5d0d2c902143e38834ea6c92c023f382d5641bb632b4b85866cfbc155059b77f43062a06e94515ea919571340182b05ac3cfe9b47abfba399ef6801ea08832d20f3e276d694329597d52519a348b235cce764e217d465f1862647d17c0b302e0f4c6d04a1e88d7fb829fe8da8200e7f4e680aa49cfdaafe457bb2630cab8f7c64432c5a8b1929e341f309938e7ec05f16465631da31f9808650958b1681afdfcfa2db66014293044b49c7125a0ac8d95194e5d78899964cc99ee08d6c4a9261126e9ad253c6ba2ed12b5acd7992676aba4c29ced0753c437f338b763678ec52937eaa7fa7931b11ac79bb0dc36f9274d0ac01ce0a9af6e9e5b04ab3ed314b7d7ea93f35651f6f04977360cbb008ccf2991489c3adb9c69c73cf8935df4dd44edb4a18e870438acf53d1c2f278f21718cb4f40f1115477ecb8583d79f46a4555167b6a10dc93cbe402d884a08a1855e9830a2c1ea1968e17b74fafb4b6bc7e0092bb0dc09c4c1c7688bb8cadb717b7fbae2888202dbb03e02f09747a0cccd884f52d0965b95eb218c043b86151fc86d43a54b94470a61c36c6cd5ffa04de8e3bbeb81b67f2446c317a4b135ae67391e9e97cea032f8de2dc5be845e8ca1ae2950b0ce06bbb356dab2a06b66917b5c05b3b8a1606b36f718644263e298b6097c0ae42f44667bfcaa502ce0da0b202246c4cc52484923da6197dfa8c732c74237cc886c5c2e9f58e5b1397e460bb9d2337831354f5a64f71850b22d80e3de454a7c639e0e14a7b6aa0ff289a29509efdc604c85884b4a604102d234050419ecdd4610f9f9b32fa04b4f3922038d260b6de6fdd6e051a753b20ea140339e546df18f93eb4d485c2b1e9b6ee057fd46a2bcc1e2d481444b512026dd33258b3dcbeaf033c4e3cb7bae7bcf5745535244e6a1fb03cbc94ce5d617a7a8a996b28f05c11f51fca8a2eaa2307a0d8c1d7893c474e69b69758c77765ffe491f57f5b85c5e53f5b637ec291090c2b08d86317fc0b8ec1bda77369fcd8fd40c8d689499916fdc0033c6c56fa2335fa14ea0421fcf23fdf00a3143b1524e1e3b2745d81a002b222dfcefa29db95f0f829ab749da1a20d889902bec205ecdac8c6f214529d33761d6a8ec24a04dafc3d25ed89de4fdf351ad01c6e0e91ecee00b433be5bf823c163f31d91760e80b8d19902ffe5da031cdaafd025e91a4394cb750986be45c526263548e08eb926d1b5b638e5277327a788caebf07c8782b42f5eca0bc45014db0618ba0d8eab955e2d4d0cb7a5215b206c868bd438e947e7fb7221e37755da8d751caa04f220db54131e5cd76403b00a94c999779651b43bbc01c0c0e23a74a27551fb7c96f45a7cbbe994eea8bc2c9a0ae81ef3879360056fb5a43085355cb4b832c8abdf263f857049192c98cf3e1318270da30c5d9225d10c8761107801e68d3d9aa9e35877b8a5d76a06b341c81338b4f15ccfb0fcce01f37dd1e3747f4895c4a6ca2e89be3796ea4c2b00a9900a94ba50e4610073a2ab9b68463bd8763af7aee2671ffdef538eeb9c8b4746427f19a8a2365aee2028072bcf9daed0753a9240ae3bd2f4a09cd53b3e95fe6152d402bf285a8459cd86ccbca2e04914768615890d93368eb763cb935046e12c36125b0ba6e6ba2d3656562575a624d0b98eae0cd6fc4f7bc2c925ea4895551f6ab6090863788574306d47f28fecce88161721ac2fc133f29e7842d8268c2569f40f32107353eb68053ce5f3da75eef930a54ce09ae09e6f1879e4f7fb7fb87211a1a5fc93b5905d01fa6e8086d90980aa99e24bacdc314000ce595c820c567ef75540114a4ee0a53bcdee95048d156c37af05537d34a43d6358fc4dacb490a246bcc0ef4143ea7b5e5cec3bf1a4b4c4c3199e8e6e4d43ecbd6d90918ae69b34aa50ac157b3d1266f69d70904db86be994c4322fa6905d3b6c72458b99053566792b09379d25d46bde2569917429033668fa4bdecbefd1ae20adf245aaf28efa65fea5d1c43107d62459badc13848d86414104472b5aa0961d2c80a4e3eb2821c0e88a695096913fe209149372bf8b9372b18d9b1218c4620c48323103ad667851ced6a12af147dd2f476eff94c53e4b2c053bc15041eb12324691c6b94261c69132f26ae6245d276f32b2562875fc723ff8b5210ef9b48b653660fcb6f371747c0d09a480dd86217086376923e7f69de6bc1c2876e1a612408d1b47bd40f8ebb832468d13407f88732aacabdf5b7ebf047b5c47f51fd4135611906040579f176fff7d9b0c3beee700d3dccb398e3ae56ca264a5ac3b891f0588043ad514dae8ce75012fa3fb67eb4c781eea21a15acec5ccbf0d8bf1e8ba0cccc459218037d41e46614ef66ff904ffa6521c7d04b8e736646e1371ce0466d484308d475f021b68ba19cc8b79c318b66e7fcf4176a390133a248b157171f0d3dd6ae9397f86a6a7b9268b2a4d5dee465a968afa91ffa60327f8cc5419af97a1b529adb4bc51c0ef6595b974a732443129f34f4e8213ca024d63735ceb51eb92620b65a36b1282569cd90ef506f1853123efc9dcdf78125be37f8783bd70985f2df8b4f0fdfe83c8246d01253571925f4798c777e9a2e95a58e668be2a6567d6eca79f253f528f2e85a06902edbc60e75da4fdc633ea5000fa4c3b6798106bf99a464623b162bc5a16a9a6b9924a65296704b7a4fc24f14dcc4a485a81026db5b1ed7d1b6e9cfe2a1246a0d2a3db62cb90192481d1e2c6ec03f4def60a2937124100a59decd24ceac6f14f07c4eebd992689d765af5a5c8bc483be4bc435df2f70d52152d5ccf52497a51eeeddbc05cb12c0899fcb9149dcee730ed125bdb32b86a6978709f62489e99195c11235455d82c286f898fbdfc0e6481aac1d5ff17274a02a0f447c08cdf8c4e77ba4dcc87938f2f52592ec606e8a5ded05b96439d004d1eb26a74a053adff03a2d26b9f9fa8a20818e2fe5b1e861e32736d0e59ed7a353b3d9d0ecd48d5fa2f2fb78180c24e42d0624265e71a5cc3091774880baab5b90c19f79895235dc45176da570106e80cb24329f3d8aa136f4ab6ce3d5f1b38a085a973af59d3523ba86184ea9ca4843f3bddd16022ba0aa3bc4218ed8519713c8295470e0d4ed6a865e69e65b3fe51d4ca1c5a42513fdb9ad9c60b82a39eb5ba7e1834ca147bfe391ea24ad36eb00d4c01d374e20517fc1931b83f9caf4fc047656bdf44cf584f0f46601b43c72bb56d92b6385b1116555aca22ef86548483682011a7f9d9e8004453bcf6a01322810f68e710dfa560ce55fd8eb23f84223ac182939f0aeaf3643253b2ed8171e54d0ab621d6080ab52b045f71629a6dee8afbc25165aaba9e1626839a25c804531a276373e46bce0aca2d05da8670ca73fa49e79c499486e82b050c9a5aa62b66ee99d2d62ddc539a95b70d95d9b7c87f0cf56bfafb02e04d3c3f617bca5c90144e80082a9376fde6db44a037b7e1f9687352386b6f202c28dda95fb0dac78bd09af0a34ab26e533a4da7b819f511e9625a0df3ad6adb2c9026e2255bae17bd671f17128a4640bdf8498c99b886af32ee0fc6097100cb7b2d0e12024cf740b58bd6346f4e9969335c319b646141a77576bd8566d13c188744d5eb8415718a7150aaa18e0a202c6dced26450a82a409c9aadc90938e629e4d2f737cb1d257271e189c0b033216b3729d2d872f5b622c23055e0838f807542e95a97d9dfd6b9d616a07ab5672279d84a08de686352adc0a145888f28a95904a5284497be8575ab8add712e55e1a651285a9226cc7e3f2d5a53a510dcb4b320c09f72a55c4fd3ef13ca1a7c52ac6ab1d74f1fff99837a3a8e30cf522cb3f9f98e7f1e9d8eb3ed3b8d0f48fabe7d1ca1c5b0dd7038056b66ea1d4ba5b1afa449930398e241af8296cb3e570fa60184dbf267862f4b1d853727307d899d541688294a3df1c4da947012c099eb55966f659450c64524b507d4618aa78a450343cedb6e771aebc3b60fb6330295fe4281344028a53cf4ba86a73f5f60140bab24dc9790058ae2b1cb8388da58c51d5ec704d14f321212275e2748d886f13e580029a866f6680bb2d032c4989a86449d07c25c14057b06552221f447005f3c06b68085c7bc4a48a6eca9e92fc4472e771801010d3fce4f7092feabbd38560b6c8f36644e3aaa5a576a93a886057c78d49874c45f954ea076d33f61c8c2add4a81f5fa5292348c5262471bedb2054ad8760593228c3bfdb2d86f8009aede865a6c68b0ec6c9e0335112c9546e3a2624f792f08e05153c55e680bf02e70b0c121a21c10cb9f6e1092bd6ada39428508273ea86dde5a6e64a188d8b51ac02221f2a9222039a331c00fe92c332e0ef0918c0df77536599743bad0392137d9d8620942fb16db349a29b453d671eec323b93655ec6f5eb42125a74c59a55ad34935cb47658827d09ce65fec95daaaaf16d41517d191489da6cf65046cfbf8a825d4edf75fb0ab18f03a905f66b7375e517f44f0e437775ec0432bab09cf9b714e9054b141cf03b40612c9e4d4ebf58dc3de3d199e9e0eab1be37dc95be7e3a42801fd68434244a6bc543b9346588639bd429d387e9b0eb531e7d8a5750df0b8a516e684122d3fa9e85b14c34d7f0abf40fcf438c613b9c38bb80f01525b8b3371abead18bf858770a63261184c671b3aa63a6186bbec8ca2f684de22c7db34be8413fc44d3c614ee7a8f6b3d357c87108dddc66754fb69500cc3c8bc56df15cae4cfcd8c51c3836378ca408b625f9a13cb43c774c57ea5c7011822495e3714be70f53d8016fac465efa9ceb02721b8c9b7efb489e1f55c6f69bc48b21daeadd8ec5299ff427651e48217a01718189464f4b4878755b8b83815febd76dee6432489150e332168249df966d0ce3b38fff248130f248eed1f1618bccb8452e465c89d29921e6fae4848ed851d5705c6d186e781a72a2eb893350e6af1d892c8ff44c64963b5aa12c83d320829f90ce93db71f5ad44b135d1338005942925b1a966998d0d449b94f339cf710e42ad5b72c0c052e34456f1155106058b539e81214b4b16dc3e530acf13f436e7f7b1601240f3d6390853cfcbffd40d91b1d8994d495f5f48b59cb2526da5a7ddb40a05e4a209396749fd3144ff379edcb1de1ba81fcffffa73adecccccc7677ef14a1125d12ad0f3639363e6c706c7ad8f0b0d961736363635363f3a326a7c6470d4e4d8f1a1e353b6a6e6a6c6a6a6a6235dddfdd399a554a01be61ed2c69724df6d78a3f747b392503938211c285f003784a2675007777eff670b777bb3d27ddfdb5f7436980528fee5e35ab1453ba016ec15b3098b752323098b7b2ec49f7142c26d366f5ba67d99330306f619a430edd9ee9350be4c1182e83030e9ea98f6f24d6929aa015ed42b3c006b0c05a3baef98cb9e3fab4ec2d3c96a78db9cc7a3e6d3e7f6cf65ebbd3dd5db34023dd61686a1638001b1c60d2dd1e2488dbc0b878a9785db3ba632d91785d3937368fe9cef8597c138927d7592582c5eba2cd4e5bf2640b942d915959c94a2f5177b38015e50a2dcdfaaae86e98fb555673f9a34f16bf2886a4bb53dd5d45771335eb23d25df3ec69fcdab53292d69c880f121f34dd1da4bb9334cb7b028b97de843fc29a99b1da998c4b2b767b65dfb259e32991646b85f217c9e5675c7169c5d2e7da3c347e36cf7bed90f1f3b5a6790e650b847fb440f88fe81f192b498f4a9f6b7b64d6dea0f28b747b359e9fddffe96e547750b33a0ec42a5913f2086d666876dce488ff2336fef87183238a6f3353b362183b69b9ce6e37e33afb4b6367978a3424152d4973f14993af8dd16e8fecf68cbabda2eef6e9fe5a3eafbb859a1513a5767bb46e6fd6edc9babdeff6c66e4f3ce974abeece9534b1c3328581e046b3382fbadb46b3b8289dc37d5c56d0088e01f886a3add1887f64a3891b80e86e189ac519299ff420fe311fc9d3d2b0c738ae308ef46359fd8f6cedefcba436dcdd37dd9c92ee8ea159dc0cdd8d6f2896371cebf6ee6eec6e1ccd6a23e01be69a8c7637e7fdd0d7defb5e521fbfbc67fe9bcbaf3d69d6aae74a6ff6595973a6b56b654e9bcb4077cbd0ac26d2dd2bcd6adcdd2f34ab81189fac54e6f8f32de62eb35eda9aa9dfaead7d0ddfb0c1eeaed4dd3334ab71e01b8a7ff4b2d14b235e4c235a92a434b74b6fac92dd1eacdb7b757b40f4d7edfde08216d050f5164949aef65cd88210542a23d0bf22e00b4f4784c7e9a0ea0f244f4f8c28a2f3ee6b7129f8beef73313ab9c9898700d48780a3cec1ec390240cf95329d8cc017a393770e12e12aea9c333a21c0f57d9ee77ddef77d9fe7b573de0e7a40d51cc7795e747294772e4ec0066ffe8e3e1727385c465dbb522f4e10e0e25c27e74e2f4e10e052b9f7bd38e9eefcc47559a86e5041000286e8dcf32138ff1c0122203279c911f0048aef804428077d8893a7bc5f108084ef802f0818a2e4a91728bee339ea6588d30b14dfe11c74d3cb10a517f0c5f3f6214a5cb9e2ad542edcce8a1043747e7a4972e99dd5ca51a6d4e7a9eec92704cab90eb5e23b2b17225c9028c08ee729972750b81dcf9128c0cee7bd926387cf579cc85bb9caa5775c56563ca57228dc4eeac9ca5528ef272b5f71ce45889473a8172144409472ce855079e7b292a3c7e42523d30b15b7ce4b2f54dc3c2f40116b757a49f2fca47279a27228be93f253cab9959724cf39e75e8418c2f3d44b92e7294fbd3c81e23b2beeadf4e0f98a8b104378ae7a49f27c65078fc8f3ce050ab79372940b146e07e52a972748146027e550b81d95abba957b2b3c3976f87cc57bf09ea09610b1b3f22284088854ceb91029771142a542959cdbb9410396934ec3557a31a2e2d63915b7a0cec1951c3b7cde3991e73b2a6e25e8f35e09f25c48e72515a86ee00007eb4618bdc3b94081f2040a1227cf47e73b9d0b1222705200ce0589ef091411382980cbc891f85e44e0a4002ecf7b0b97e7dc12d58d1cb03a577ddea71b5f746e0318a4f33ccf5b013d67019dc5545a6161d191a2e3058bce0f5656ab9595afb0b0b0acaca44c2b2dbec2e22f45dc8ab7ac386b25652a81beea3e5f792caa95149d2f74bed0f942e78b8ea5333d31a5a5468d1aaee3450d9d1fb4d4a8615a7129d209a306a73345e70b9d2f582d2d3a5274bc6861b918b1d470a1a5c56bd45871560d67b5b4b4b09cb5e226969f4c2d5e943f1600a4d428aa616aa9e12cd64b116785149d2f74bed0f942e78b29353a93109870ad74a6e848d1f142478a8e173a3fd091a2e3854e183a535c252fd2995294bf9329b3b889e5dd4b9127450a6785ca592e2ad58ae5c54d255f597929e2ac70ad5e5e5e8a523a5fe87ca1f3858a89d3028a4cfe81be02c10ef46e653a994aa894a7565d27644a977216172395b78babe1aad52ae52c2b674975aa55c7b2624999bc04bab7d2a95629479d5e8a5c1d0b57c24207505cdc035c4d2507537081555cacf66681dfca8ac957564a2b2b1fca576a147d2ef08773a95c4827440c5ff15abcc6f7d5f8be156f713162a9e12eb8aa468d156fa9e12d2b2eb8140de132e290b0780d17d27d2d9e8bb81512ac52449a585e64fa5e8a586a780d67b9d47859f12fe526677111220647b3f26263a572a55e8a4a8ecad1f9c9f452025fc02a252ca8be315445de8ba95b9d3cefa67846ed72e2b9bad357c472118180214c454208f13a23748eea844ce970c2e08074fe15799e3bd7f715995e7257f2a2de628cce0854ac70a9bc1593e7208c1c84c0a5ea56a5931791609592cb50f222d2eb502e83eaa5c84bbd90601593a93bbd18b910313820a07ba6d20a7c519151ca4295299c5145f544c5c580555482b282b2825282b2825282b2825282f282159415940ea7c495564eac9e584571f25515ab2a562138a9844c1122869029689cb14a3a038d551297d4e114714f5220cac5e068522f28140c4a50ce78018b73412931a0c48413a5273a9c971fa8cef0dc539d512a39d1e194a094a094a0aca0aca0081103d55b84711232058a1031aab8c02a2eae4a9512142162acac50a1a16a1b8a546374381ff80350ca0af782c3e5b93ad58b0d162b95868a53b9ac4edccbead405ab08244315c58bf1fc7462f50d19b08c500eba8a5451541ea505aa2d5432e870545ea8a6b89c7c8c317e7052954edce742bde808f14adc8b2a041d8ce79f8baa0a9515aa2a542150a9ace8704c9c151dcec93d4fa5a10253ae9ae27ab9c105cbe4adaa42062cce059261840e07f4af091d0ee7e0143a9c335c459cab48e70b8e86d309c355722a604c2902c95049e9708a5455806480553a1cb08c1074382597e7aa281dce161e48860d55149d2f389a920be9389a221d2f5ce0a723a58301918020192e4fe70b0e08f75244c4e7427951fe5c27169715179004a5b8502f45980897c94b9c9f5c8aebf4f2524482525ca69793178164e87cc1d1802f9c8a8c54b77a010fc6e0c10c8a945c2e240999d22f42c668223c17d5185ea568c5045772cfa5b708c3e50999d2c17848a0b8c02a2eaf8888ce5fda13220647c379ae2d58453530e1ea7cc5c42a021d8e1335746b75a3052cce3fe77121099442d5aa5e7563b88aba56f58af3d58ba350dee22c7e04cb6b78b7926387166771a2961722968af3beee3b7920ab48bb56be529d4a2ed0573e2b2f525c2f2929b0522f4528ef4c7e4ab9108f04abb84c2f42c4e068ba22225ca0e7355cda8b6171a181cbf3213e22529d7703d509008d01557b9e8b0dcff3da0735acee54f2a070011492c8810a1830832dfc400a1b3c91802914e80114c4d8017de002bf530978e0eaaee0441251605ca70ea6bbbb9beb9f9ee98ec04c711b74c182a213152eb0608201468efc744d118f9c200ef305c9f1151763b88a6ccc60c309a04cf1a8c004a60a9819a8be66e2ea604c8711628b1394c1ca421715e8ba2eaae8228a0b092e290bac9e72b281572a71d185ab54f258a0725351131d580016927c60020cec94ba265c252a5c5cc14d26afbf131751e0a20c930c58a8ef6445941a971555b850dfa9046060419562c16a8b15704de08c60ad5c9cb34e1cc7751d0c9af079dc0b367ee02a5a159d6cbc0016e154c66705184c5979a6d3e9048220783a9d4ea7d309044110ecb0309d4a306842ca04b24a251378e26ca05e4c3190c1118ab0042a492461891e80a7d3e97412a9407184181258820919008500e3b9ea0827972a8a058c0882091757250a186330e10452b090421935e8380e064c445982e3b8ae8b6201cf0b1858e12afa7e6035151844e1eabc733515141c814a14118052a0703aa1744025064e5051c113ae1f3a1548804a1423c02da64094010d5c91851514b10221f0a08ad3ca6bee046350e138aef3c830f1e0fb3eb074c519575439ad4c2693e984a2820514d52a954aa5542a13948105074a2817d4944c272aa0eac5060e16ab9442994c27d3f7e140f90bb0e05a19c12a054f9e78d73085093680f2042750c1bd2dcce058a62dc8b040698c2324c105578491812b388004df0cdf4b4e099a40e30c26821085123bde0ea2ec0000319c4e2a950a9660c2c15281192ea46e9c58a5d24ea9640271ac20010080e1f4a252ad6002df0b2b1b1d00000a582ec880a585ca8a95aab18232502c4f6058b1c00b2b12b8a07a418dd49417502c38c2ca890551a8612a02554a4206708a962f869309c74ea9543a994ea713ab054828954ea6530d5753c922c93503146e4a9550518a009e4cbd45133d80028616be8872841851b0006bec80e00c38130b2c49c0058259004d25108c52860b6c960d1c2caea6128509ae229667a10241b00446096389284ba85051748106190ae0a2014680a0a48311ac44b1c0e98ba2012c9870e2c0125802c1d3e974024d5848e1740ac3753a4531c2755ad9399d4c2596290ba007aef8e22b954023984e544c20eb045ec103d3d73d7e70baa28a678385850e4c504aacd681c517a6d309bce2890f0b0ea0565c4d058b11b044a9c1b2b252a550275309fc3e0a9c50a6941659b850fa4ea7d40e5a3c168e324ea5ee03a980a016554c204b0b2bb8400f0df0d4c54a959a2cac7042d9d0c1709e451a2ca706984c1138954010b4c104e3cea202046d9440500b2b5c200882262ca2e83e3f35e881364a200bf4d309044110044f262d54f081ee36c05cb185abc86b562ee060e93484d209e45ea85039a83299b24882cb6432995427541650e0b83695582894c96432994c281c54b29882b76342b98a585eaa408d09a54aa1e007a8d349c532a15e5244b8e00665587182164849a289521849f8ba38028217a4000b63a011832a3930b94e4538401718d08b1c44c11452a912eb646ae203209800155198620c215c1185836009055b58994094d7c4690b96d3e9c4c271bae13a814b78a8d3e9f4f5e974844e0127181b403739e81d0c0bcc88220431b8820a1e5049c11650decee9642ab1a8a46009ae93aba9a48008378e50799ee7792fa6cf3b27c2f5e5f09c0857e905832f4552aeefc57b299272715af88a7cdd10dff77ddf0b98c3e4f29c83c1f7715cd77d9f0d6f012cef03bfef7b81018d1b504e371480e25029ef0aaacf3bffba8ec5e2b8af5b21fabacf6bcff33ccf3bf7709194cbf322a9afeb2ea04209951ce44c5f7fdff77d5c7762e99c3b9d7aa61dd5e2e2becf06c7b17aa6fdd4751cd733a592837ec4c94dfeade4d8a1e4a013954010e4b892275472d04d2b4425d0d4715c4ece69e5c6112cce8542ad74eea54ea654e742ba24557f278ff57583200d5c0db21411e1fafc5bb9ca8f4839ca39a215e7aa315ced44a929aef622454aaeafa7e472c2a551e4860d582a57c9bb222b57c9f3564097effb585c251004c11aae52a9542a954c2b4558ae929b4c2693c954a4c555f2325c1f135e142f0a19647056705614f518ae971b4f502baa549f587abc1753a9e42f397440b93c073997c9e7f4026ef1026ed133eda00b97860bf7b8e02a7911175c7095cae899064b60c9f5bd80527aa61d94d2332b0d705d45f70c14dfc90a208baba9649146c9d400d3290227d513282a5254b4b0c26432994e272ca270750793ea4eb5a752aa1547050b26b6308373a1a2850a5c20125cc8826bd941d79ed7545c9d7baea6a2051854b428a3bd6ecfe50756533901142daca045152dd070b5290bd516dd4a712ecf6bf7dabd76cf5302e7f2562b2a5719e016e00b9460f2a28f0932a0a8da57bee22997132e8d5e715674508a3a325c5e948f09d7a78407b838ef5c3e267aa67369e1bc7361795e5a752e3538cf4dabce85c5f315176ad5b9ac5c3230e1f23c57994e2ca8a22357f7f2cd805ba438a0529d76560ed2c0d52f70f50f57db14c5740cfd991c47b74ede7e52a9542e4f56ba951ed05502bbc7c9519e4bc905ba50b1e22617211c4de725971d4e894b0f17d3adbc341753d45fb896084106d4e7ee4ab98bebfbbcceb5724102c78e083e57994c3d9f6b06944b555a9956a08bc9a5e4025daad40a5c81a655ca468f1e452b17074239eda8be958b08b8cee592727da692ca6b71f50a08ba742ed58aeb6ef5b1b03a182ea57239793135340eae8ec6d5f9f076ba1def637149ed802a5309d59db4e04ea7efa53b9dbe178f09d5e7dc8a0dcf63b156abefe3844edf37c30c3870b058def781a00d36b873387014f18a742fdcf7c2812b45be1c397638b9c9894a0efae9a5bdd2cbe985085769a508e8f23e2ff299568a945c1e0c68a0568ab4eb73540ecf8d3affbcfbb8229e8fd711e1f25c856a5411ef850897d79952e055e9a048718457c59bc2599707e506aca2d3c773c3062cce61b8140658de1652704f4b4f8beb7326baf579501ed03ebc05740ce71d42dd1e1405d428c18fe9932f04e304a63627492a1269168c91ee22cdc2e10c4a73ea65ad7daefee4acacd85ddd3dd32c1cb6e8ee109f31160e4f6c39e2f0c221d5dd2149be0d5397999535e35b652eb33e1ede48f294b938d6d1f1e832ebd8357eedb34fedb30fa6e5bae449b366877c2e7d6862a63bb9fc2a962e1b25ddcd82dae76af3e91abf2ce9ceacac34f1b44ac61a7ba12c7ed10b89359b6f34348001743750b36e18a3bbc38c7f363bb167daacd6fccd5ba65efad3b2ccd372ed9c5d4acbfe6e7ba021db03654b0e9d4ea889642cab0edd0d8066dd804477ff34eb861f361ca1bbc31f9a644b6299b1ac463e3409f1d33025b17fa66225cd731cffc75cfed13bae34220fb325b1c7885556c537f1cc58562398b1a40e7b95b662fc18f6a649690e1bcb6a04f3f28fea4c66fdaf5b2fa9e3ea7f9f46f462f93219926cd6175f28cb806c6841777beb7e96511ba6e8f6d65f2bfbd80b1bd137bb3d05bc4c93b65a3f6c7af4b8b9b8d5fab292a57dd5eafd9cab8de867b4e6737f56d61e731644565ae3c9b60ac57e0949677fe4464913572223f9b5e796f18c923db9eee0f4b8f9bf34224a1bc2e971634445f175c0e971436943373b6c54c866878d0ad5ecb051a11f37362a947363a3423e6e6c5408e7c646857adcd8a8108f1b1b15da7163a3423737362a547363a3423f6c6c5428c7c646857cd8d8a8108e8d8d0af5b0b151211e36362ab4c3c646856e6c6c54c8c6c646857ed8a8508e8d0af9b051211c1b15ea61a3423c6c5468878d0addd8a8908d8d0ad5d8a8906aa8bb8fb48d160f740361bd54e9cff8cbd7fd5c5f357b652ff14d4c23fe114dcdf7f821d2f16b280f190f1ee34d4d8d8d8f188f9cd8cde843fcf1b1fff132ba23f63f68c48ccf4b6303021160bd44e9f0be24118e8f4f6ae6f2ef3d87645c8fdcf2e357770ba0592f3bdd1d8e5f49d3a45efec71c539ae7c77ea36e7ba0f16b277e21fc35d76b69f974d91ee8331deb58d2216692fb65790a0d655c563afb237b4dd375cbf5da22fa73df3c8746d2d2f05f5a7e7db647b5732cffbeec8590707af0d871836433be91688fd4a3d28aadd64da457b4b51f5ff949929aad4cfd66c7e9a277b74db35c6068178cff8e237523443c6eb3df5e07b192b133c879e8e1e1d9f17cff48c4f5e7bfc77c3c53b3e303749ae556747bc6a1c46f475c69d96962a5d95c86687c7c42f9fc877bbbcd8e679494f9f8b392d244d3fa9f65cda515dd661fbfdeeca7e5a111d0b41710352075df8435a1cd11cf0e1221a22118d75c151cbee1c7eccdb826bc99292b79bf8644b77744b7f7a4593508493a7149494524a592ba9392ba4b6a2fa91790d44a28d19d6a547743e94e22a95149494524252991d49d9494442719d15cf716ddbd43b36808c18c66aff886b9acd6b4097d84353336e2e31eba9b8766d120a4db46ef0e9bb066a6b4d91ba3614aa32186ee3eb27ecb55a42615dd69981a69b55e26ce22356b7648ab25fe68452b2b7d7ea477662611ca981ea9b9963e41549296b587e7469aa64b0753527cdd379168cd48b4648ca4d9e61712ade904296dcd2612245a132b2eebcd48ff7a4c63f78396e8dcec3883604cc921343153135722f7835a2d0e05398264f1efb5a2675be24c9bd5b7f9d76a2ecfebb2ea8eab3f8dc881c05ed7be46b29e31d8f8345ccb2af3fb2359cf1d7c439c6bad92b5cff826d39c970011d75aab85cb37b2b9d5c2f8cc340fbd585292eefccb5ef846cddbb5998e25fd21e97d1309496bd702e11b0d62c980a4c330c4213f2993e9df99670be421769252f214492a3a2d579bcfca6ab3a4ecfe589efe97fa2f69917ff4e4abb4358b1497f4e656730968ee86b361e1c0ee2e6a961386baf10d6998d268687edcd01c2ac6686c6e688d8f1d228f71c70e1e3935ef63e633bd19c74e4c83f3698dc4a78934b9ce6898d25a2dfcfa1abdb2187e3a5f4bc36e6da6614af3d6e3fb477f1d3f0f16a8db3382470c4cf96428231f7b0e417cacb56eaf64414ff9e4ab7cf2f5b99655f663e97384a4622d6d49c5d202fd8c1549b757c458ed5891ccca7a7fbc48f20fdd3f42727fa42ff4a3fd9951a28fd54ea0192522e99945daed25fde75bacb4d9d2a84c32a344b3b29695d6fe8e3f5af1479aa947448e2c27f993a44ababd214a5b73c5d6ecf684f85a25fa4c89cc686eefeebadb4669e4c6916ea41a9819250272f11c4182644788a7080f11908fcf4e11201f21a22127e2211a82e4c8912440423c3e3d3e44403c447c9c68088f0176901c71f10811e1217209f1fc2401e2c9e9214ac233048827c90e3c43443c4362bd5f3b81829e7c22a4cff6c71e2e9faf55a2214449be5689c60fa292f47ef9459e8c555c95ccca7af350d0cf0e0c4dbadb070742e243e41ae2732428c805434db70f3ec4a7c767084fd0d00c11131e2220244360780186d5f8593cef1fd55c6bf59a2f98c17aa10c18ffc107e7217229f1110aeaf6107000ef080239a21085477f4a4c18186274a24d3b2852052d8e729a4b804d51800454da5485287c0e10e66870024af820810c06cd7907ca4a010f745703420203dc601a9c8017831d03e8d1600f1f20e2841fef8e31e95082003add465ed420c91384d05c0c8860c204a5276d8a01045d48810692fe502f88c0eb05476d42420a134db09046977650d11ca4a4d16da25d6e0193ee9860245c92831fdd5af840d20f4296d05d941b231f1a34b4e908097420e90806da0405209ec86205ebd60107d0580207145dca81830158a2b0a23b213528b8a8a5d125cc801908b9d9da0383c8165e92507b4141473a801044972e10810198c00c1e1a749c2f8870451a6dfad185184510163498040dc0b82d629aab0206c80b6516edfdd400003c206da0db0ba29c5592e6d3dee891ae92046b53cdd45f7f39706d8a821bc116ced4353810068e853bdd7c3eda8bc0170053773a819fc7717da30bbb6b6e87af005c9b80805da3c435c77120c8a35375cd719cd719e13813d7719c570aa2e33aced4c120c47125ced41db7127a5da9049372eeebba8f09eee3b82ec551a1e3500d725fe73dc715751cd79d9274393aae2b7d1dc7848ee34a1db7037783e3bcee1403d033b17030701cc7753fba174e1e0705d771a58ee33aefc5755f0ac5a35b713a270eb4c1cb813375dd67e3a5ba8e8ba981c31de0b351f578415d7fdd7180fb3c980fec38af41097044e0ba6b168bd55c731fd7714fe04e9d0e8eebc0aef3386e0747c39db855d7755d69088743d77d1d57e385aa184e03e0565c90a1a300077631701fe771dd05759ee2beee6aa91dc635c06b9718702da48bcee34adc67e25638cf89ae3bb53c2ec7e3baeef36e8582e1408e33d57c3635d4705daa74ea388ee34c1cd7e2bace075e8943759f77c4bd7427c779331c4ad5712713d709e902d005a0a3c16bafb91a5ca9ebb8958fe57d5d0c5dd77125ee9371281b3815d87120c7e283e3388ecbd1f99854a88e8b9d56a68edb813b719cd7711f6784a3a1fbd1cdd0a93a5307721ed7711dd7e268e8549de9e33cd0e3381f9cc7c170286ec5711c102e005dca3371a78feb38aec57125183a1bdcd771e0c7fde8549cd70580f3bcaefbba8ffbd1759c0c5d8a4371a7afe338aec5d1d0a54c1ef79d3e8ee37c388743c72988470090f33814f7e1e050a896ca871c01e004f0715d57ea4ccfb15ea85119e1b88eeb388e9b69539bdd03115c151e9ed0ce8314654ce1c1c5084d5842893082244320a3895c7ad04352e0e08728182d24450ba01072b1487690a2a84a10e521e48814019082113a43cd0f2970d0fca02c20f03184151b7cb8a4389c21705ac081a581011cdf4287b02c046006564527434607ac8cd7e82040143250a801e6ab1afc860b1d05007e6818f880f62f01dd5e779386e98669162b02dddead7cf265f3cb3c5f39b29ca4db43c237a4998eafd293d40d364832a14ca88fe58463427934ac888a007a39c19452a79c6f5583fb56a5d767f356bc966f8c045820a9c4d299509fcc0a0d3923484a29598d9f0c4b111d8f1c60928f2b058141520e4788b424a0fb52df91182b2421c1081d538ae0c0564b0d428ae83e19bc199373d10109a083a452a986a0272fd4d839c22b5284029262402d59d958d908a2e705f3845355480a925145604db04c286f0534fa16c080224e1f4b8906aec68e2292a001940e319e9ccea0004ba70285b4987e7c3abc0f561801001026d5931a40a9c9a7c3f4c308154851c4880f2c0103abe6c98a7824091924a94ed90512b072538353328307c414034e1129d38f52eac4e2f9f029e2d190eaa94252cae4b33274329283a7278532b21a1a83a820e9c62783932ab500b0524aa9785e80e84052ea642400312592408f0572a51d4a2910484987ce8eea44e17032524a9962582182b2e10342ddb031c300648041c789003a080da088d42934ed58d9e1c327c8b4fa4c32802d0f07b5fa707021269429f5d1803a7c3942383087e702c250833a89de0f1e20384e2918503e8a1802a4e27182f96cf86c287d204907cb470424001800940ddf0c356c3c1a8c480a69384fe6cd7c1e7880172020a0852d493082295b5841820f4c91041142206123d98b30209af4c0444992a1a0230630d2cad90133801b04e05f175ca401852624a1003a37bcc81083298a1b7841450776e029408b861756aa920c5ab002115441c5141b90220a2892c0e040135ec002444369a03185580f5078820b5eb6a58925aa4c0748ca54c50398f081e2c1181ea8a2f503e7860d55ea649a2107165734f9110990017c7a7830e0800528c005327a644182117c8088254a7ce0e0b0f1e1608a1494e8e4808332954a80c40a4ca081094040890364000318580209900e101c565c163c2c74677c55fc095d195f12ba218064703de876d08981d2c12a8c0e071d185d0bba127824e88cbe22ce06ae86130de00c2b317437ba17381b2d00005de85a38d6c7d2a9c054873a9d3a9309ec3ecee3b852afd4f072785a247d0d48fa8e94743867a24211ac0e2481e0ca34801e14f14961f3dd584d0182521249df11140ca91970242009c5c3d7831700552ead4e3da79c52ca03822305da20e91425c9469322503e3c28a2b0124212984612b892418ca4557ed122098583a533010169c0084079411503058cf8189054c3a5868b37d34273c2d192861120014e39a6205e0d2fc8698a24efc786a6942a8520c9539564f86454361ef7ad3e99540f4800130f25194aa952d1cac6ca060a070a06130f9e168c28c9e05961042825e986a2afe6af1b68f85aab1aa5968ff366bc215fd0ea46a9332d31e53001812fb0702595077e2bcff33acfe49d3c546a86cf332531b9502328d5622a9938cff4f1f8683eee148397a308540d200892584250444be9cb712262c42704235e5ede696c21093c180307536820e59c0d3d80099e9d02e4e0c3965078020d0eac1a27930f3d20014ae38b30a8d4b0448d131410620121ec008c19b8000b125041130e6002675e025f2a9851e5073a08838b14103104104d7a608204a8484f0d01b801430b58400409463084102f1a66b0650d2c420882935a521a5bb042159af8700386961dcca08b17b8008b2b4ab0840316f00282872548807cc0f8a28b1b64e184111ff4008c1970e1022d3a3085124724c08c2a3bd0810bb46881099e24fde8c3d3b252e5084610020db860c10a50e0810734e0c717104d7c58e2c303a415d3b202c6173480e2020f78f2231006f0e9e101d26259f9fa084600e38b1a74c18215a0a0041e68c2014f7e30804f0e405a3e78d8c4b8d0f2751a473042106a40832eb860c10a4ae081261ee080063c21c2eb872605a009d1c8c2111d6ab00061062618a0049325351a688012372411a0d2f0b6d06901cc4287851308be0f741ee8a8e06e3a1baf860b55331e013c87a1866e062e8749062f060ec7778383010500175cf0585f8d150b6b4586550caa19522d28d3a964ea4a2510f4b8ee9661861b9a959af2648ce6b25e93e6472bd6f2a4a19b33a5a628352b75c44a95dd3d8066a58cc4388cfb8f1597d571f55c1dc8edd24b69a2d3ea291858315374374bb352a76e98cfcafa349bc7c0e410c4cb3afb186a8cee56350b75836e98cbace3eaf916fb210c431fc62e8935dda0920677babb8666a1688d6f58decf999a343713a059a81b50acb266fca3d3c44c6b9e6de9f8ede831302fded3e253144e3fe8b1fc4c1db39a756ac158fe4bb34e499c909c9667e5932eb3eed7ca2ecdd87f56d2dbdd387437ed6404dff0d2c4dad7685eac246e141201e8461161aad2dd8f492afbf3e6eef64eb66eefa8db3bb92374ffb0711dbff71475fcf891f3c3c70f9c1f3d7ef0f8b1e3c7cd0f9b1f353f7ee4e4e4f8c8c1c9e991c3236747ce4d8e4d4e4dce0f1f393e7cf8c0f1d1c3070f1f3b7cdcf8b0f151e3e3074e0e8e0f1c1c9c1e383c7076e0dce0d8e0d4e0fce891d3c3470f9c1e3d7af0e8b1a3c74d0f9b1e353d7ef0c8e1e183070e8f1e3c78f0d8c1e386870d8f1a1e3f76e4ecf0b10367478f1d3c76ecd871b3c36647cd8e1f3739373e6e706e7adcf0b8d971737363735373f323483c0be8c0029884d866af6eb38f25bdf569d9677f1d9f7e93559b8db00b4a155082a8976f443349ca8c5f9e27fe9729a0040a085200019018a3c79314cb5aaf952151041244ba3b84b9cc685b3098cfccfc69e5e9d77afea123ae38c287237a9e54e96e1f9af54402ac274a3cc979f27577a8e36b16ebf04c8194b6dec89b8e6c4b1d2e6ff11021012a6d2d6d7e5aaeb6acb01712ad0185d7fa8d9ce11aec69b6d215cab80c494bea098849c04b770f35cb08308c2041771b35cb08224610a0081a1481bb5b6c5611acee3640b392ba48d222298945440b8840ea0e1f539a784ff367081399997f99fb8d9a36977526fcf1f05fe64fcb36dfc45cfb5c6760373b605e52975977790b76bbb4fc18cc67c21b25ffc2d83089890943189920981b2630b19ab7ec245997789891be05cbf84798cfccca3a96d446ef28b326158d70bd9e29495699928effa5e3ea32ebb05786dda8699e2e03ab7daeaf7f194c6661183696f6464dffef09cb4a69363b49454bd62c7622b8216a3004144314695c47b7d9af75192b960ff399b0acb5d1e55ec6d0ea3f4398641819fda1d7f8351109bfc8cf63f9582726e774999cf3a6e4451333ad65fac235df1f1f97d6c47f6f237da1dbfd7387d07f86307192c62c59c43fdb9ab5a487b792baacbacccf68c68e710802531f1f9f63f9d8a9670abbd971c2887868b3a59151256d1ecaacd7dee638638ba9cbe07bdabfb466afac24499787d8f1696db634f2b7e123f7c7fa97e2a76599fd19c28488873124493d53c7b9baacba0d3e61e8cdb77a782b353d06563379fec07c7c19189759c7e971e3376f44c9dbebe02136e9cd9e1f63fa7556563b2b2dd28f7f3ac998465426e919cb4cd69e2763b44cf264acfa640b44e45a9a58d2171a82e9ce9191ee58a0a1c7d865b347b091688fdc4afa632dd150b6406379da9e6c817092d247022014b6dcdd3511e935968f6d4a6c4132decaf8c754a9a6a70af9b3907eb132cb5b3f4398d0c49a88447333f1945cc7bf220b37d14dd46a11d5ec956198be53bac35b4c26fb5b45775f2487fd7933cc653e365f217dcbb7bbc35c633ffadfb7b19c34a13b246ab5889c44e90e9d30e198da5c2c274c626e24496bbed484295de619dd1dcad08c63279629e949c58f391dcd281dc68cff3118c7f845f1c466d2486b62cdb466f349bd74993cba3b246b2e4f1faf2d5de35fa2f16d944634fe89b1cf2532d69d71ac3b2c7bc42d8642a152ef3ef8d3885028542a977fc4639984164787b994924b2a565939ab9896afb5597f1a51194587d4716595b42f6d99d3dd2135c9a7f95f9ad3acda19a1bd7dcc71f513cb34ab268390d26c7eadec2fad315113d23d2b2bfdebb4d9692f2d97d56649b736e3ea1887b1c66a38ba4f724a778738e3ea638d915574371049cb6ea334b2a6bbb475ac31f2d4dd1d7ea6a37ba69effe6d9eeb08c96e8ee46a150a9b0a250a8540c0d9ec13458b4e34c59698dc6d630c4a21d617ec03e78cd667c0e41a150291d92acb9aca793fb41b11bade910059121313a352eef19f3b1a45314fd14e9a8618424494b0b047397f97808fb9a1d82b9ccc75b3098cf84b792ba63eadd6d43b3ea1095d6dd4c9a5559342bd0a2e80e69b9c2dce6b2ca5ceb2f9ee30bd18c7478adccbc2ff3a3fa46f487d633197477081bcbb307d6825998cf84d8496acd6b65a7ec6d3c3321b31d0568966c0a320dc82c4b260024cdfa305e4a87314634c338ec071ff04c0b2984c16c69e337d2f6a5bf63d8e83234b2faf869d9818c3556567f9192410ffb1e2f43772f69d6188371033d138e35d69a09613018cc6576ac319f21c99ab1531f65c62f677568f41b693a75a10fa2de6455345f364acbb98a55f6e36b2c4fd95863638dbd5863a9c35bcc45d37349eba547fea51da213e33230f74b9b7d9b7dd15ea57dbd32a6a49168c91d4bb38d3eaeb1ee74770cdd5d92b0bb43121ed918f56ccb2aabf78f7eb0511a51586d3124fa13e2b19233a7fe31fc648c92951e51c725fd5ab5d952b1c68c682e7dc29c7fe636dfb759123bc5b9d2eedb5e96c913ff757988c7928efe47359fe2e3d28a5efedbf2c71c67b3ac3f2175b2fc5cd6ba53d69f90acb2996bdd48a43953af5113636bba2def89cbf7598d79c6f449cf34fb78689e2f9615bbf9f746e23ad698539192a68c96b5f698ee84a5354f1f6b2c07313e4952c7d85e91fa97b686abe98f69cc9f466465b52784c16c89a4c7a7c7e9acac7f6562f5f28f20d19fd0de0fe2c7c3fc3324bcc5fc4f921ee19a1f9715c88546d21a094b8be95f1f494baba34f5048c4c7737996b3faf78f2c769cabcfcaead7ca1ce350dafae3b55614a90cce26cd389fd66fe4ccffe87669ad760e79180383c71a83d5c03ef6a5755cd62faddf62ee321836da7a3f08e665f5318b7f14e2f18d446afa8d7c7ca989311547fad7924e873ca489f4f1c78ae9fe905051f34e3c7c919af82f7699f14dd39a9ef159d41d711221495a1bb296c865b347ac251aebcefdd286245ba0f16f359178b2051aeb8e0d929549c61fcbb387ccd95e1a51c62711fc4667ad66877c5077d7e8e660d0dd4a9a35244a774391c4075131494f27ef1f0ba2e2bf8eab873b44908c7f6dc6e579cd98b1a430f7cbb2ca602b96d6711d6d69c4c3181817faf9f19066ad900bfdfc78c69fe911bfb55a886b9faf75fc4794d2f00d6f8d09b7640a4b84d0edb73772cfe55f6aba636b7a2b3ff6d8289359b246b18c3ee9615965d6de91dedb1bbd6af5965f9bd14b336770691fd7717c551abeb5da0c49cd9a5fe5796da6f7145fb49a48ffbabdc6f233d2d332fdf1357ea6e25ff3c7d71f5592becc7f2392a4af5b9eaffc3857b2e6f335d6d85863e5599ea3599ee38fe59bf8c4af17129d292bcde5696b334f1add5babbd9248805969f87eacf6b527493b339295260281244a377e72a44fbacd8e738d7995c94eece36759a5616e4977d36615b981e4871edf8903a9d901c40d7ef25652c75fbb149fb61efd0dca8fef67192d5ff463f9d2a73dfe6c8f5e37b1fc5a264f2afbf1f54622bdf995319521fdcbe63ffa4c674ffe589ed834122d599e9fed51b6472f5c492391923192626bda6bd24c479abff6ca8f6fb27f7cc3d889e95fb3e6af59fc366ad6fcca22bdf9afedcb9759b359f3cb8e27b6e3895f988e9f1fd3c4d31ed52ac596146f7f64cbf367b456ff9ae559b1cd8bbe30bdf4358ef4f1a54f8af745be5852f17fac2f918ee457d92b3f9e8d67d1eb966becc4af71a4b1b38c9df895ebe9a4e6f2b41fa3b18fd158cbac0852e7b316f37113d6ccc4c699af37ef989979928a7846449aa1a9894834b82622f56ca0bb5dcdea89b17a7ce86e988b8e8f1c06f399128987313a74c0382669793f97d5f15f4a8a3fba2f11050a51588008b3235ab6af23fcfad9fdda51bd3fbe302549fac2f44513338d1dc10859187fac47199f352cb8ba6e6f01a8f71b49331d9f565627aa3169c6b59a6ff9ab68f3e39fddd3ac650bd772668893ee9adbd28f788208ff57765ff67af15ad907f17f65d41c4b7a67e39324cdf8f5d996dd9c0bdd1d6b962b0b2e326c20200aae351a11d71a52b35c4074e33f31ae3434f1f32dd74b4d9a6c3a90f1efcf66f5e67bfe51c5e5cb7e746ad6681e477aab48f69a9fe95ff1ef69e6f26be38be569cb92be6e48f69a33b57a93fdc7caf375544f27ffc23fa3e6cba44f7be5c7f8954f4bcbd596afcd18a9cafe9a2f92ac462f5aaeb697d1a5b5bf3a367407928880dfbce5570e4b40aa29ebac5e243950c1ca41033904f50f4d7c6852b357a6a35941a410e406419084342b484e37ccc7f7a7e5276314665f189f7e23497a96b4e6f73325fd635e523124e939d6a33a96d5cbfcb3f18c05610132a5bb7f6822e3323e34093fe624596d3e96d46fcd0e75370dcd02a281ee6e350b08ad7f68e2e3df7a3af9eb32e3d344fad731b58d25a5398d08481120387e68e23263751f9a845fb3623e6d8b072db37ee4a70f14416849d1e1cf10268ec57a747fa8e4b97f8464fc23fc834f4a43e249323e2e93f4208df5659ef6ce5e19e94b9d20e22bc98f6532fbfa6bc5dbcd25cfdde1870d37078d9c28dd1d7eb6473e2bebcc5ff369d931b5e53420270746c394f6fad18a300f7fb46269abf72809721aab57c4b113fbb53e7ef6fbb45c9f88e5a34a773776d3df6d767aa9e92e1f51b22d6d5fba8be503a9f1e9f29133d2a7e1680136569887f4d220a7a7bbf2a5794876b4836bfc6c8146fa46c8737c9a3834d237f2998e66921fed90b1ac3a94d5e8452f352fb531990c4969b34466657d52bc892fab47e8a541a3ce78bfb65a78c8f8f765b27327975fcd2afed5a1616a843eed253aa9e5f2b4e26b866b66ed1af9202a7ebdee8fe5e39fd1d7f8b59bf19f4e5e6848f92612b3768d98f4e7ff12ede00f1ab325f1eb6b358f65d56156561aa6e41066f108e2a1da7146df9f5d4aba238d75bcd4669e3ba2a87dae3dcdda210489d6fc69b9b4d93bf33fa2b43fff74e266edf4a7e5ee9f9699f1a68cee86f159959556f45b2cd7da7dd34b4acbd7d67268d68d13dd8d6b79c23866dd1ce0864977ebcc20bd97b6745a3e765c6f3a964d1930b5b3569168cdcebedcd12c9b087c1015bb1558b0d9b1f18671f2cbf133adb9ceec972f22bd8dba07fd0819f1a78de5e3eec669560d19dd358eeb2d9bb5dfe187480d16ac9a0af88d2c5f4e6aa3e7e0f86714e3afbdc64b6da5cd8eaff1317ed15ed3de0fc265d6afc5f5a88e4eef8f6fb367b3f639d33fba8f5f687c4cffc8f863c9731be95fd29565744808d72a25c556abb4b59a155f635975c8480f742979cefede8070643b62ae118787088d88a78819946449129a587bb84984ea27b9318196fcd8318443e484072636620c59cbb430cb28a631bad696bf0c431a9a163673a679eb885092f2b432ff98df680dc6c3208c441e80848a14595a912b239dafe47bf0e1a3f628e9a132312a12da41144490018cd06434fa63c4c3a4b683e35a3379d61ca7c7cd8ccbc8903fb6349be3da7d9bfdffcea8df627f9fe63ee593afdbcdf8c592bec6b75992a4b46cfef8125f48b4362beb8c66ac53fb1abd34e8da7c8a8fc4837f468390e80f49c53ab34790e8cf1fd54c818c449a8790e8cfacac3f46e4b99391786a982e111f8947761494cbafe51ff91b74daaf5522f36f90ec28e8c4d97c51a4f8af155fa58e8e79da5b4467f4d1197d88dcdee875bb7f64455c479dd167fcc7af9a1d4b7a755eac63595f7f54b348adacf4d15112447c25e22b19bfe6833f67d72d579d98bf67a6e5ac0e2971199820e22bc138ffd0d3869074fcb1b4e20fcdca6a24d29d5cc54a9a483c635975a82455924f135722f9da986ba44f73d922e5e3bf4137e317ca2792f16b95a87662ecfa6b87e88c3e43c6afe6298a48feda21f8ebcd7f6b95924346fa9796e9a541a6495fb9fc5a39ab1853d3a4af6b3325492bb65a3c8e5a2ddc6a9595d2447aa9f9ca76a446a435c51fed90276c1cc08bee069766c524c07308e2de82c13c636afa8b253d1a4b2aeae8e49c41c457329248c6d285f3cf2e25ba610bf4ff339a8766f5a7b415df5782efe373bc567ca1276375569e3d9f6ded03012803100bc08a862af7ccdf42c3005a68e8195a6678a2bb9774cb0c3c66b4e4c8418ea4961c322d395a5a64a022c3930ecb2a2383ebe333e3b3e8b437ff8bc3696f493c8c817d8d8e32ae8af4a4ec8f2ac698225999a5e1bf32a75edaa839d412431662300194c6659296183c1c311826975fc341b4dcb842086ebc5a6ebc00430f18d002834e0b0c31b4bc10839617ae6879616c7921c87d58900582f5d457467a98cf604a83f90cac0616e421a6e639abb11ac575b499a4947669f99e268c3a2e6b594797ebd0e1d2a1c35b45807c80845c4bc21b923d4d1fbfb4511363b05b6c40c1c613367eb011430b00a4d05abb21d91aecfe0dc95e6bf30bb500a00700a81617b67081d6e24290ee0e5fd4e6b718180c06df5ada9811a6a5258b96966f69796969b9d1d2a26a61cd84b88e25cd2245fa216fc1603e13caaccb484a7b4ad2bf41210c0623492ac29aabc0d7ec90e3592dfaeb406a5cc769f834400e0e0ce632b03006c706c6c78739252d8d96335fab390889fe8432eb31304e00bfd90173230abb368bb4a7fc7306067399cd2769facd8ef186f46638dede080623b31f44c530c7958e233dba328b636e6f04e323adc9fca523ed71b6404fc66899642c93c8c81fb2401d8c10a0ee7ebd5e3437931c6dedcd5b7ebd79232a6d257243b23788a47f49928a34978e8c8ecc50aba513649a2ec734154466f469b5885c468728c8b53d282674b74eb7a044d0823251e1d3b2dfcff688270626d3d85f93d61c66f3d79bcb1fe97d9aed4b18119f1711cfd08b07221f2124468892b85e433e433c403c45606e73ab25237f0826e3e3b8242d6cf4c93f34d62763f5becd71ae3a7410f1f1fcd8e5637eac850e1738bae5ab195bbc2db4784ee8f2bcd9f1d79bec7fa7bbafd0e235f1765a3c1e6d65a58f9595f5da7bff4546c3602ddd1626fdebea9ce8ee2e91b474b4263b23ed6ae95c30b58d2ff4245975001a6ae1ac68e198d8fb41b470ac0ec599923656b19e432ddd821a6de9574bdbd0dd21ecaf1d02a3224f4b771a56846998ddb43474d0b9bd0eb7d741e7f63a04115fc98f56dcc2175b80d2dd46e2d346cfa7dd42132d2c410b4f68e1ef298a6ff3db1bc54e7cbacd7e2375e8d0a123c4245975d0028feef048b3d0e0028d1074370c0936f4a315870c39017c88edd130bb433460ba43933ecd310ef6d6a358ed3176c57ec95016a6d0dd61aeb537ba4855f63728a7c7d050e8b9da18f5507c13df7fc9b4766d4f4e0f8c5fdc737a0c0df9f83fe290bf88c788846f648f449ae96869981ac9f847d2c2b8f96f5473dc1a807be8a5ad34182e5d563d06c61f93b4c74398673a9e97e86bb484fdb579c8f149cb6e4bb7b9acc262646060f8afcc7e7e99cce2eab3b2d6fb6425c5994c9b5552aca62bc85318774a7f3cccb8920ed3210a1296b6ac323b934feb76e6d9964876c7c30fa2e299b23aa54a6c10ae36fab7a4b5cf1e5a4c5297f95925027bd890c7601cb0496b308e3dc46fd29f7c9a31b8ac446ed2a7b5be4681c437877c2c111eff8190782c51cd0e292d1049d221570085a0614ab3404b30238c1970618609cce08019183043026624993184194298d6636e80f196d378cc0d5e73991bbc655a97b9c14b18f7960cf61f7cf8d18aadee528e1f0740c109559e30a3c70c1918da84ae0282a63f7a1520cef1af97d59378abceec91d6634a0b7a4c692616ab6933bef87eedc4a515652f8469a644acac7cd9fb41bc4a5b22e55aab45f46269cb570bcf94b6e227d8e8f696788ef69a7e736cef886f38d2bf19b75a4ee09a7046136c943c622c8cfbb7603f9ad4868d444b1a89967c8d231de9d39ae0f348b507df70fc4b69f855bb6f9ab5cfdd8d6409445802184b9041e31b2e218a6e6f612b2b7d9674733f1f687de0860fe058028fb7ca3aab3dd86649d2756997d66a75774e194c28630665a000df90e6551391fe5546ee6e39c6d43c4fb3368eadd60d31bdd41cad986d5fde3c5a717c7c96e7eb8dac293b325f3f96a7ecef1f9116e33ae63abe7d236b92247d7d3e63b596f54dfbd89298fcd2ac5ddaab7cd3dabeecee218ed0e30838f00def67938ef46584297d6dbdb956cbfa2aa908336b368213dd46a05d23e458239c8a3083ee0e5de31701c9cd9a8b60a4696c6ed64c849a2b119cb89597667c2218694a44841ac2598d39ae3a3e2e43c3943684da106e90b10519072063ec6ef94ce88f2d3944081010821142f011043282e044109a344c48665beeee61cb899c002e644b0762fbb208103600840b000109082e4060f981163f30fa010f1fc068981a69b58888f88c3b2cc6268c81655b9a358f323ee1acaca65945186cc6ac2c1f903ea0f101d80332ba7b28634b6257cdde1bfd19857ac0f1e0033c28e2818d168c61c5184c7a346b0c01ec60ca0e62b003720736c438438c29c440b299f9b03a499e3292baac56f75c61302fab59b3cdd23ee6720f5b2d2298cbac87b0b13ced0ecc6fb1f14df39c5d4a13654437129fe6f93e8c0806232212657656566cc9216625fa92d6f16bfe477566d6fc326b86f94c48c4c7ddac99344f3fa2614a7bec3022189d553c43440739d0810874c0044b074a7420240c2584b182306461b01a071c5c664b3ae31eca2c4c08068b11824102f399d0ac44b6078239ceb5c6139a355b9a0de633e111a1243339333d44499c7a0562d64cbb563613961506f356f82f738cc3fdb1fca35aa5241e6130219fc774c7ac4461bed694fdf760b3128566cdf8ed8ca46569b3a35989427cdf346bf6a3af34917a7dd3d2cfb79dfb414468a644c25bb666cdfeb45cda27abec9e326ffee8d8e8d21a4d2c7f07cb78887120dd3da49f4b7ae93993918f73f5db1bddaf9de5fbc3622ccde63230b01fff66d21f6c56222f6db6d4c1ac4463597bb2052adf444292350fd5a05b86eeae8694be3a8f2d29c2983563b39a95a87c1389ce485a3060dde158c93a92d67d7c9a98ab0dffd0e4be1d4fec431307c3a6db87261ebe91b5d9f5a525825d763c876eafc358c773e88b2afd450dccd3c8da23b62f91ec0e4952f18b22379842873750c00d6a3abcbd91edcb1898ed4b188c7b91042f7ac0f2820a2f0ed0dd3a34cb8b1a1b14a13b8cb18141e23337178000c2d7eb864f1992a4222c5b2b04cbe5d3f2e9c2f4f646aff1cbf365c713dbf1c4e1ed8ddc8e2786d9f11c321d0962839aee1ea30649d45503a03ca4a3d36a1105098264775a2da2d7ebf64634e08206960639a4c8e0e6e5531a693e26492afe84a585bd606e7369fd5ad14b4a064961220500ddcdd3ac197ca1c40c889841902eb2d0dd3bcdea4205dd1d569a78e218d8f8491e866f64693349561b2ddb98233d2da9a5e5bfb61e51dac770add1dc5eaf9292a60b89fee0af328b447ffc6b95288c81893ee3363018878930bf9fbf462f3571b624a6b1af47f566b1665cc98a3fc6b3e3da99d1fb47d4c3d148ac3766b1dbd1edac1c92312565be563bbcbd91cd2e835fac339bfd6bb65d3b737b23a7a5cb67654d8d4d8d794c45fa3098db184952d9696f3032e5c7863cbce5d3e21a96d64b4a71c5b95e5a6dd68887d83cfdcb4ae26a7463d66df6f191aaccb43797a4b526cdb62cabff120f614030b7990182f98d34719581fdabb4b0987c9af9b4de23a4c4330ea51dc72763b4c465bdf41cc9d3b4a67f6c24bfcaae95dd375d563d46e630b74baf356b4fe4e18d1ad9d9e7b2d21236049b6182640991ccfaacac25ac0676cffca5f5b7b90c120f6146888a00f11c791101f1fc14e1197a0121f1211a924488680808c99097100f11a024b05c7e6d36b3c4c38c2be92395c9eccc8ff4e69aff1221200fcb775c91de432cb3b3f1499b2d8d66aa1567a8d3c4133b7e6ccd7b9a97e2fb4723f5b27c6c6922b53d69d628d2fbb53d1ec6587f4c7ebedd3f7a18c7f52ff55969c9fb476fb33497c1a4156db6d774b1d24c7a67369bb72b969507d7cffdecf95a1a162b798b9da4acac7556563256a333bf5616732224404e3494e4e796eb3dc51f720178a84307fe32e35be3b88666a5e1dbeb8064487ba03d31ca0fa248e90e1de9bb2ba296272d531e3840dc384da42459a30809dd96339f2e8b4e8c5c1d4692d508f6360732a389d6e4e94e06e12dbf8c621aa657b4f1c0395d561dc897f68a65bd511b4979e0d0446bfe98f15934d299abc494d69a95b5bc7489970023a62b84342c5b72086649ccf3312add0d6b560a4c90820aa48001311a4b414d3853569aeab3b206fd10c965adbde8ccccd79b8f5aadd2d6da092ed0dd364a2cd1b75a2f7aa9f922495ada57492d39daec15675e2415ebb51957daccebe58d6048b34a80a333a6e4688517dded3a0ee333374a52c7d58a055871763775d2330ea5ed26963d56c83ced2d62eff760eff760eff780b325876c96366481ecfd1e3e888a7fb44346fa3424fa7364cd5a3d325e6ae4c80621d1b252da10facaae91fea51195944684f11ff9b951f2c717f6b951f2897c696ba64154fc41d42192e6d20651af3582447fba9b05b5b37cd54ea0f17970e963d6ae1124fa836f884ffa7a7db64afe06c98e825e369ff445da9b4b2bbe4c9bc5d763245a7be1bf337bcd108861747ba31030a0bb3d538ff9f3f64630fd1911821b345322237d23b5bf413fbbf488b5443fda21b607eaf6962012d4ed39c06b80d1a5b5fb992e316bd748b7c700b3768de41309ce96c4b737badd5cbedb12df10d3e45a8b9df826fec53fbe4afaa47834531391eebf6a2212be5fefa5310f20c1036378408a0748d0de7ac9780b97b65697f1d610a2f694689d20e2fd5186e4be50ab855f26c664a5f989e09fd5319f260d5323d9dafba2616a44e769f747fa465a2db1de2f7ff6e21223f1c5378770c55f7e91217bbf87d2020511fdec2211dd722569bef6a7e6e666878d0a8d3e483f96d4954f3b23bb47659d91dda31e2125344c8df40829b997c708098f50fea16e13ab0339dd6dd26b03d22c0e4ca1bd65d26b739b756a221324ad164e8f1b231c70c2811f5354c9e419f3e5b53118cf15dbb0744d7182299e90c9e5bba6a053f068db9736fb0690b001263610a443588ccb8c3e304a695e9eb273040223493a04e674033068a0092db33c1a88a201b27f6822332beb2d065613998ce50fc13ecb2c0cfeef91420b3f9a25850ca4c852ccd03f347119994c9e2379da284c1045139c6bed69d915e6d2d24e5a06a680c7f23310820cd40cd8687a3100020c2cc140ffd0c465a008018582f5840f9e60c113639324156df97a239a6146348ff409960b5c0003173022f3598cd92c2373e9053e0bf4c0024f30a579492dd06301182a20a5e6256d564799ad001315c8f9a189676c4597f1a14988f1e9d8b419fb1227a4e004069c30327ead665abed665687599fb475fdea887d46962a6b51d9c405160091488c00f4d5c86888f8cfbd0c466ea23a551a086023113c8c10492265023012048004a777519bf91311ab3d7745cfda8bc7f6467fee3e10d9ff6feaca4634c3eedcd66bfb65e73a47f61fc0cc7bf5f1b6fe4fdea37090cb12470838c0f4dc272687c4c83f07fcff849846e3b9095f610956f44891e0b7dbd8df4b1502e7fc80581a0eed048b4a4e7f171340b02304d8c11c65c13e96b380b1fa60926ba69a6ef6a8276e9c79a10d21d3ea0ca49cbf50128a0b407203dc0bb6332d2293629ed7e90875e568f093fac30fe98da1e6062c28aee9e95359ff6529bdbd2a90ca63616134cba3bc4941467fe0e61c23b7c1187662d51a543d91256dc97dd4a5a736b8996a055ff180cb604eb56960e2823740013ddfdb56bc74a4d07e484a51d71b5f92d8624298c97366ba4590d28231c3fff35c9188ca80124286bed7efe11e340a4a343927488ce107c1b724c9d28481024bba3a3130313a42632c9f8471d24bba353139930600706744a444189283afc5bf18fe3cf10267e2be9acb4a4db524809022441055612484822021de29f214c603e133e254f9192a4cd01a55aa824cf8c06ba9e844c2944233202000000f31200304020180c476452b96c1a34e3001480057ace5e7e4c9548c32488410a198408328400013200020202333509004f93c99bfdef05ff1b6fc5949293fe60656e69192fa18b52159308d8a42961e5d28be29c68ca03cdd3552ba7ffec9398182ab8dc959551f0ec827726ff78c454d23985dd3bf4329b9e3186348f01ba5e0207ede35aa9f38c95096b8d4ed0d5a1aad384b64dd458c9be5d3e3492058dd8b6469c49786408fc2fcf6e165591795e25bf9c9f262df81e48e1ea04fa1bd7da5738299423ed2fe53e3b94ab158439898a8af92a11c4c79b641e52a78b0200a187a6d28cf678a348a46609185adb9456a200c2f812b3565b71bdf3782c1b420bebe828d6e79a1506f8337677d2c461d5d957dd15d0af17026483b639ae4c278d296cb89186c78d2ac8a46c9718f93437b3775a09baaea229ad1afb9de7b543b1e99426fc4516b18e742587ecfb9760ecdcd9320ec02adb4e5a8aebc90d4d105dd50395d08060da1f85aa7e6dce12d1b8ca75e56c13a28b33dd9809cca7a7ee0a9361b58be6cf136d04516f6f34ed047e2967e2c514f7b1bf34fbe0119e9c8bc3baad1ead327cdfda9a721bad5d32cd67fde015afa80f4383cf156c3f41dc1f495e2fd7a76a31ff1e3cf398d944c6e5a022a210f4fd94bc23e21a654c813f666a711777a907a6877224c0eed034bab2b3a9146d0d7a0be4536db1d220814fef3042f236e85a393beb030f8f2cc339281fb21ca38038b9fb9368624f7944fc4e33ada172e8eaa225a285db028c8cd478b16c64878a1aa060298a37def82976befc51c87f40fd6ee0a0eece000eaca36673f578cc23b24634fef60aa0c3948624f03ca06d940e1f30d76354dbd748160536a5ad588316145d1aeb5204081abff894e124c49bedae89dd3eaa1ce8e3ce3bd7e3f88328fa4c655c717fdb61df9bcf8f25c25b98eeac2fe84804b05764048f6e189d86559622e36b73903d88cd1c4331034145bd567614bcc0628f44dc1ed773b9eff89ccad5e54bea21412afddf12550718e008a180672ee207754802891294fb974ca31dfe369ffde5f11b70c37d49010f6559777a77de3cd4e1dac1084b9996f24185dcdd1a247fe446c3c1c927c1a6d92dac25afc72178221ec6c3de8fa327eb70c13b5476d7781914a2a688b48cf66d32b94065f0a573be30c3ee8ed9950c3ab902b0e308904262ffbaf9fcddbca30982bc2090690d8eea6737687f5a5e5d1278e7e04a600b01486ed53c8fbbd26851598063c5e26f3e57c40a7c3eb03d21f0ccd5776e9514102d3cec4896f575c700ae266b012affca53c10c2cddfc0c2de64f0b58d4c17c94fdb87ba188956739c46f21feac34994e16868f1d18fecab1b34092ebb2de8e6b21c9b06ce202ef644bab0d237a4d6452a289c8927df8da4c9624236b0c873d52abc30d83a2b554924e75527f92943b2044877b88113256c8691c69fa9cac5801255c781086d289d208ff06f1cab3c2ea1ce297d48e22f21e5eeb606b11a16f2587836768527106124db24c2a991b2b673a805f15ab01bb127db82b9b8f81c93fbd1663e1e3bc88900d9d6c2afaa1b535fe85d3e74b91c989d140e4f14ed48d7544bbd1d150a3d8e52e0d162020e8f1a8ba0e83cfb73ab921093f1b6add3d33b22a1a4196daa88715ec9a458b561adbb5876a92123905b5ac132d743aa7e3be67649806dc9064737bb9f6e4086a83c84a04ede81b54d3990ad66ce1c967bacd18c2e1fdbc0a7d34db7e51a5e744af4f32eedfe06e4dac6d7a2b9ed9eabc87700b2b773ea8fa73d60b031dd0481e0c20f38474e2c2cfc9b8eaa18b629edfa884dea65bd029d667cb24c9608df995ed0e42133ddc0960516e007635484e0a2d4d1a313189af2d9093804f5cd80a3c75caef2223ff6788d11c84dadabbf08f5989c6e6a6326dbcb10f22c69aab5fb70e9ed21dd10108ab658d4703efb928cd01d57eb912b314b034313e1e71f54627d44ec63c32a43a93b33cb581ac8ac9b3a9ed58bde221ccee51aca21bd49af0b004c558795de140df74dabb3aa22c3e820a50a06af9c33e5e9979bd9d1ca02f41a9337346555c05151d64e0b568a0b4ff57b33c8555b8ca2d57478cea43858b4e094b12ab93ee682ce6c7cb31f73f47e553aa9d70fd1ce583cc53ea50c4d86d5731f3530319cc891826d84847d0cd94386d214caa64cb8ba50e250fc856998f3f2e01ad3dc480f7ace45dd13e08609fb49d1cbc095f718ed105dd48c519098a292bc96f49707a8e3ffb5a12d20dbead10369dec848263bd0dcbe15bbf3f4347ec36b372160d8ec7f0abecf1b4f90fee89cc47b42c4d53b319cd41b9666709febe4a188d0a54986fcb014bfea76180c25e0a53cdbdb7a145af3326daa8b2826f7a441e42dfeca8d9d032771206501ae730bd8366366be8865661d1e981c5e8daa81766a34944836230c73770cdab0614ae10645b25b42972cd79558502116506377a3204df38a5fc44c85f70c516856feae5e1397dc6bda3ac79dddf393c50bb507544ec18b3a22111b7645673a3140d2ab638f295c2048f45f31144d8723be6f19fc1ec6dafc24da55270979a6ed52d93d05a1e46317390b78ddde7982b028826e2ba4ed6841b88f90e4093bd51685b98b4359915a235fd88077fa7a5985e1261c725ee10432eadeb671d7c0892283cc0de1d05863aa560e0df19cc614f2203a0a3f2b24945fd020a815645fd328501677d7da7997cf6ccc296facb50c72184700febaa3f29379000ee74daae97835bb1704cc7c7aebd731f068c1302bdabd958d20587d08ddf2e3370891331cf349b13a12fe243bfea603c6d2130bee8f39f497aa4d0e9014832589a55b2606eafd64e74c45d63ac211c328c5544082d941aadb6a4e14408f3d210bec024d966db802e6b1a6e92a31711e8659025bfa861e91c47431eba1679a1b0c667bf5bbcc8eb94924f68a610258bdec139bb7194f5ef71847e5fb6fbfca391838cfdaee388456423c5fcfa0a0b48ad39c036391d15ad6053115e60313341209a595230dd024a01f88f03a67b086d59a4e66a1025d6e73574aa2a665d93f382b332d73f708fd3b786421a1f1c2130432dce54d7266c91bea10d82486b81fddcd81704b15b2c8caf66da6543e4e706e10f0a5bde1ad69c6d25cad03accafab0c01f5fa11428c5437ecfc8c2491813b5d415135f220f447eac78aede51b1760eef1e8ea1d225d77e0ca99952f4685ea5555441b7fe8cf1bc7a16717768451e021c9fb4103e5fad38a4e8f2305ca4e2f42210c24e40d199f418414de7c357e30900a6e03d083c570f386f65ce56c8c664da65534557ab08bc4dcd091f88ffb188430d84ab2dac5f6a26d4716b9a85f230b173034b6412f4caeaec08751061abb50e6598e8224dc006d5e33e7d6303974458437b54b317668eb8ae6ed9374530e48f91a7ddcd9d352d0084d2a751f75c83b17fc3df58cca4ab26eb0a6d87d4916329996fa1768d62ab8ec535a33a157147bf509b885a9492786f91d25e568943c0b5eec4b5be70a0e32844a508ef3ae862d5a877d0984c4f403ba0cd74aaf32f4087b56abf5b67befdcda921bddd5fe86bda1e95f361dd586e0408d777a151ef74941b8a22c282e8fe3d2bb825df0f4918ade91db90fef004830a1f11cc14a31d5ce3fcc20dc25ad56973d65bf37b0ad3b1b5e1f5825f2f2aadcd3380cac56b7a0c36cadab64c4cebe98f56d697865bf525314da7d3f859b8b2a03181ff4ae0c63ae98ad07608038dd6119cd7c68db84b581edeaaa1ee9a14aca5bd937fa01de9b64ed297a0583f96e266991305482a8795edfbed07934afbc9a6d21ac8c1827e2a099c6611a2d8e426a7ae4d63b05106014bd3b7cda41a5847ceeae8a228df082b689a4eecf2859c3660ea57994ea0222507aaa6654327da233671ba37b342473f626d5f80ad10da3f5632f725cc8eb60ece30ab6e663f0d0a333aba9e544ce7135c46a6ead89c57f28e6997bb0d8b15ec60d471bac4f0cb885bc4383f1e54b166bd940342ae71abdab6876480c835c83f40c6b34738fa29083ef0ba9d15c65b0a9de488e508e10869e09a5bae7a2fd6943bae4a757d9253ae6c1567ef9a780c4a916332df5b2904c68657c9064871717ba4a1172dc4b63b09e35b5885e4408fcf1649a37aec887a51a75e5d644197daa952f82bff34f6e2bc1d485872b953078a8b094c74d913c7d9e059ce192f40a3abb35573c53014efa2351598f9e45f5b57b903467478b6739d8b1e9e78f22d3746fe1c84e7d66681c6338e4dce5f5297a579d740495d90af11514854dcca137aa5d57f1a3f6ea66cffa1f679b9e709c06452a41ff488c1ea5a001413b2981029580691dd271c2fc2083947926a3869ce73b1171e1652f841d49ce1e8927b38ccf33d983762ad071b0d94354625dc0cc25718a1cf7e15ce18c16301883a25d8267922cb01140da25e9d922928f7936bf9dd4279653a26c3d356a9492c27e6cd0c119c555ae7e6865381012e6dd82009f19f5ba9ffc4f2673399a1d0e21432c6e4ae1be5e7377a5d338e6bc3ad972fde900f2e832f76f7e61de4a2fc00135087b18701b95e9af266516e6f9406587d6a3f81ae8af41a160925dccd01e42745ca21515b169e1754e96bbd76eb31199e62611fb6aa4b024a4958ea7206a62032577f55d7e2c43a581b3a2012a99381f2f91d4c365b2bd4cd8f0dc0047f909515fb5e980fc1c99415f4d7c8553107bcdd4c92e181ff609701ebc0e4f3e5ff4730b21f7a85e013c8c6b2352728aa559794bb223dbfb79f3365616115f09d7e0c8d8f6e4463a0bc02943aada8851655500acb6d30e10b15bd092c5945b34f1f90ab452cbcb0f98864690e7f0e5157ad9843cd2974349ad2a05a88c458e81959359da0d5158f1ae967423e5c75cc3a8f9b9053c3a36580b37eba0960ba1887ab6b365eed7312e4466407d0536fba8957fd5708e619de1688e2d37b7a6311deec91e5e23db2828943c5eb0ff4c03391516b8be19c01c969378add7c1b1188bd3d0fc3a3305fbeb467864c17f19974c24cc284c5e8cd02b1555a91834dd6fbb7489dadf6ba1fb94cc80f7b505f39a0301b787009a6acb447acfee1f7a0f44d8c06bc207dbe45524c3206963699dea3a5af4c00f7babf6c21657ac91d433f9e20a4352ec7c8a0ead9e45077b0e426df1c0243ba9c2a7bc8f94d05cabed5d1a0968bc322aeb58b1c65c5a894858180cd6f138edc281cc071625707b394bdee4581e9794b7f0d9191a3f753a4a5bdc6f9d663a4c5861925caca09504fd668c00e5a098d9399489966ecc3147dbc5f4b786a5e38e260b3e9c0948d718237daea837e95f0a51a649198efdfcdbfb90bd6024124bed7409663e41505eac67a9a89b89267b13706a1de8490ad112d5553685c02fff6eff162367058d3b46a83ba1a14a2cedd85fb1da5131d8c4fc842d49cff0c8cea0988a1f7a69a6b8bac70818ad0d2ac96f4333c64b836017f4cd1af59d4287307a2e5c78068b68106da9871db30d561c40e9457039f2a975183eeed2f11f4e4af2d653a6b5fbe11438490ff993337f73cfabe5975acce1e1cf8c7c8e4663ae72f6f5dd6574385734d00f33b00d5801a03fe2a4ec05c12b053fe390a8a73edfeaadcdf13ecf1e3cec30363ccff57bf38b2fdafc6d149c383b4a8d7810cd41fe7645c76b5fcbc371476546de25c4788df537d83bc1ec93e7b39abe949bed45bddf37a1b31271b383bc5e5fdfa5e1d87ca6c572c797801f8beab981a37382762be920f830900aea4f4db8e258c5740fbcf830ff1efecdbd397dfa5b6be53c07737ece9b1f69d4969e8cb8927916ad3b33e7ebdf9af0e4bcaccee2b4e28230006b6573de87035d0226ba8ff70532607212224f8360887f11e72c18b02fc4ee09e2cb255cea06cdf9666429fb8039b337594b3929208e001442a2c3c954905a6d6c4f35d780934333ec25e97951e8967232f0546aa38007473cf1a8fe77a7f11a5a7f6a906f087739fbbebd778ca78cff35ddce7bbabedac5eb3cf35e3eda45117b0ad1acd837dc18cff4202f420269369a555456862041976c9ce0357ebce91715fa04a5867c1682731c32030309780dc97998f67280237428a26d8daa1f90ffc8f66825b33e0f89d125a908f95527489b805ad598b898948357950e827c3eca2ef89c158d717073ac0777f4102e72f0f9d82ea8bdb863d0a3abb923849f2599dd63a587048d59c49009097930b753aca27b148aabf5174f40a008342ef31e2772f356312eb2e2669b674bf424994fb780899210a94e63a3c043bfa365dd2983a89bf9a6285cba0fdc07289ffc7eea048c131705ba94125c36cc18c9985727911010e3cb584054096f9de5dd21804fe1eb08414035c41e5424170e001ac9e5798963abe1485fa4a7e56767db4dc1a0c3da4f9c203e50841192c0da9870675a008eb39ae0957f63bd5bbf606ed5fe8f05a4cae73413e440079baa35d3bda33051c4d8ebf7fa52b0186b3c175e599ccd850984fa24f8dcb5f428ddcb1a24fc1eaa2603444fd866cbac1e33d70b228beeb8da8a73f652d842036c4be8f8e78f4b0ab0625a90e32cfee18432a9f497a26a326b0ad1acf960fd4dd39f50198755dd556f9fad330cc7598b69b563808f4465899f52ccc5b20480185f5bd3e8321cccd44974dd3c183152537aebef6d3180de715a01a175cd7782de5c6eaf94ab59ad7db032aff6a149dc01125cea49637a813a4923155ecd9fb2591f013a11759ab43cd4e7e20a0af53b70951cc970e67d8f907db00ab8e421713d3b7d4af15e02fbb44f4f3aa4ca9f421a13f9db6651781b51aa68f712d91dd38fd92d95d53f77f1f194f75a9e339c833b22c248b49e7c003d8f7e5983c247132e3472c3ff66893b4dae8b7bab99606db1a8d1264e2adba8a117477b8d9268f07f4bc5acb0ace9a8c788b30137eace00a9bde7ada13228e283c2705cc008a3f08521a5aba316c9fcc056181c4bc1ec65e12949fd552f36ef71a9fa60802a7d7cc73c5d41f66bb0cac0abc85a13fe0bf39d2f084152235d5d04c5fc07d37c57d6900676a068367cfd85121d7da39317728c41ee4c9aef1f1c8849b5b980f2097f99fd5d46a5315a869536e55c89ac6a8b055b542507be03fb92cb28b5cc06a79139bfef8d8bb07ebeb588f837e3c55ef4f2767244e99672995aa27109988d2b1c7b6231df4817f86713d756673127645b7e18ad80d83fe587595b1a49cd7888b09f6e5f870f68c543a023e4b811950a86a6e5a236c54c51429eb0856094800913c0fe13b88fb60d18ff3853402a43bc78265d93aa5c06c0ddbdffe3a1e814ff26b2873e9724870363c7d0f368617fe172636e412200542df07b002e8864150615e6b220f277f0cb8dce2d8e9ce53a86d2cf1006d2d3162c746990c5e4533a041828b664de24e3e93b11f6d7c6852f97c506c8817669e2ea87a5fe7852502b101c8ed996edaa032e9fbc7a56fabf7b234a1b20fa64842c827160b756dc976125ce80d508899de8bac1af92f84c75cf25e97baf33fc7f884ec94c2ced56fdf203ecd5dca8969f5a0356038fe2460b662dff0537467ff0fc813d987b3cb882ddd4620463a622b0fd739765edbbe5693da9a08ee1ce33b58ef287fcab110d7bb85f50561d200241080152a15f6b035b2a687d573c5c31899d8053a035b04c3aaa042f20cad4ca90572921106634824db9dfe8d2e505b8881089d49ad40624c26af536d4892be51045ad64d84a002ef271cdc55b1ae24998fae6eda01d61cd37b0a0190ab8b35686699d9d5a148314cfb274b045a1b0ed54418da8dfb49c612580218034a4b85e8a4fa1a29a82abc7e593dc6426ce612cd7c6da990499d24222d73ae3da7e017ba48b1b0c9a410202988c9af0480a6e4e4b44a304f8bc3d197e615352fcfc5f0f82f14f1d507aaf4dc612d38ee50bc478eae3f42249c52fd9aabde319325530b4025dad3302ad13af4f175f78aa86b3a83a8c82a75decc716971a0637c9b8415a76b80f7a3eea0af87c3d74843dd0c6bfbaa7b6636d748361d5bcc5371184267c9ecc2aa3cab23361a7950b147de8b2299c8f8634c1afd297bbe77fad3f0f976fdd53bb7f0b92b295a4a5fb946a441de0359a39293328044272e51906e1f9c8f52d566e1b6eef6c9d2f0f61aaa155145de0993161af92c0b700dee77351e2cbbffe9636789bc8fe81478b886a34154cffc79fb2f135ee702dc5c231fad6a06ae4f46eb637939dff9f7741c2c50ef3c8e7e53e494f68838395d15455f522b35d103c2fa475395602b9c3352f40c19f0a03c92faaff380546b0bcb112bc566e5e152796a095bff7e06f04f75788a31d076a71d0ab4b090d453816a4ea2a3dcc31319279f275f692c33cbaef159e20436141166bea8688be058d02ceb8aeac09bdd08ee29f95fac0d52796f1379f4bd1cf97533a942f4a57cf50e3944ffc32bab93fc9f43fcd93ddb0af939c9bea16e3e29a73381df825ff2987550a36e8a6004081ef9bbf75840c79fe08f412c98a525a9b547db48c0a79450add041ba2713458ec9f83a60a8550cb45ee9b11bcb414835ac0838634cad2e7d531eccf389199862710da73615345f811f7d62d93c07822289164b9106d1323df1ead542d0385305f1c81892806a8c91faf24bf359b2be7383df69ce99ce3f945d41d0c5c5101f9c04f2d629240e8ec1293ea5035c4a5223e777db34cabc70fa026457700ef2b454c8a696677c19001e7b584ad3f60b05ee0194e255c9a565d5fd1300361fb772e81bef49e3d73b055dd8fee1ba75cc2a31a05f34fafdabd5672bce705437a89bfc7c7aaaf1137df3e0e26ba4949bb3202e7932d24e9f230c8c39a958b7f327ee8c316d94da27496360b3b40b595f215c85836ad640b124ce50724a8717632930dbe6f0a0ae87ab1b034c76381d6d7c198a1b599a7520959556c79fbca0cc96ac9a9a2e232579307d36e32e4bac05a2871a4214fcad3d70f0f5dc6ac4a457bba4224db1d8d0141560d5b3378e80c51bf5b55a5874d811330a9be4061230aad87c11054d1ba15b4d8e63c7863222e231d45c370146d58c899e25a180279d812c2aa0fc70e3b548ab83bb09377eca5f46e01176edd9065dba19669a852074260412b974b295cb8ad34719fadef1ee475457b154d16e596fa7cfd242935e443bff8832f39608dc13dc53cb30f0350b92c4809423a8daec189b7a0d0b0b381f08d2fca74c006dd700e70f96ec986fd0813eccb12aee6b8753fbb8912a569577d125166902004ea7aacac1622e2efd743b667224fed70a625b1c5acdd141bb37510c32df95eb40f4f14302854f792208467a312566c90d87d987bd42b6047b2a2188bac7898f7e535e878196c9f7c0a0e4ec30442bf02a621d4212bb1d0c930092ea5c4200e8546463f77373d315968dfd5a1ffe3b1a4e1a033be808a9d4df32e8aecad0d8198d3f4f67df15794ab950c4d604fecab007ec3a37b8c9cbb93a367ed3f6b0a89ea130d8d404b440b010143472a98c970833b7daacdaed34241198041d6809eaf902b2adabd8b84854d620da434b9e08295df89c6702c541c2d2f17e0886afadc5552f97ace8021bba09c64c38e2e26abb0163fd583c40c8cee701a3670ca8875729a74cb153c788defcba6828b88845101aeea695fd13421f172b91fb4db0cab58dd89215ce8f406dedf580fcbb4bde8b2204368ad7889f8c533e28ad5eda066b2372e75e9bb48110b0d71dc486237da9182ad185f7bffc36dc0c1b51050f5844995a6f7205e734bdaebe550e1629e99e81022e23a3b8ecc35cd328406cf47b0cb71b313e13df8bf87c95f7611d46bcd9c2a77b43601110d7bd79fe6820ec8df78fa930b763d845d906430fec1cb7116d8d34fb434a146c1a3f8c61aa5628265d227a1c082ba7d7e162a9b20877435ebd602680febb1026ac913a62a23592ccf77e3ed50978f13b3edf1780ed233af1975c554d22ec9597457c46ae1e24fbc7e6413e384d2edef600c8bc5e4c73aca4bd5f8775da76e56258c5ff7fd9fac69e9cdfcb2dde67a7d605cd32788febaec34610e1557c6fbfc79bd3448df74bfbca9f449ef990145a7cf52e4425529274c4e384aa605d894e61ce59603a2ed82508f048fbb603f97b050b924febf2d92a389411941d32c0e8aa1e979fdba2f6358ee8a7a63cc4e191e5ed977bacd1e159e0b49ff4f6ad79a9f91f38abee9efcb3898a4aa39222f093f23e67f8f84648cc40cf7cbfb8959f59f12375999203c1a2ab3896ce8c9546eb9e309b99d3c0ad3f1423672a7c24568066337e7670cd472bf9b31998d02e74a1f1434aba638fcb849f93e18e44a6d48631833316f91da65f961c3e5a303c4fbc9a45fac61d9d130ae80fb5a68a7912a69ce8bbea39f207e0f6b9b6eb19b2a7ecf66daca34c13c7bde4366ccc51db4d1358e40bcdd9e1c632b8e1310a69fdad256daa9cc6d5edcd97251dc1b4f3f6c43567c37086464139448d79e3c3f492aa083eae93746bf0a438148950f3b4cbdc29a28f2be934e753de23111d8dd3376e74cde8f8e2f9acbbc97648fe6bb9bd8961005b9ed8f1748aea8552d4b89d942af6a85c7fe0387eaa44a6118922189a062da99dac01fa43d5424ed22fea9ae037baff5b544afd6125b706ca02e82aa18b16989c56d2c77d7ecde09a0648c8f30c670393883c166293ce382278b6155ad123a01af353ab023e5e2b62ca4b41886ef27be6c2cbdc8d8b26cccb57ab8c44c73ba576ae736bacc4cbcb8a2916e21eb0b3cf76a559db24ff5d0184f3913661c0ad50a710ce57e4a70f0ab16c3194afdd344e66b0fd909913fb516963cdebb86d2e6f6130373f8b0f383b2a494694e8943ba89ce521d4e74b0e667365394b73f7667b281096f1b19cf906f9e6768f5c9892aa9b6244beaf60d4f50e39d8571abb2af6a212596c7d87cbe5e77540e92aaafcbedb35e0b8ecc318367238554a82363c85011c2e8d2b722d956dd10b1e8afcec38f37f7212d54114d440cc40468b60ed2b7668635237eaf9f2c37deec4d5e963ba110ea77c4f625fd14b6321260307e2d6b3a6b3867a846bec0af289fd10aeda5db9023a48c48884d9d50cdfafeb7c7e2ffc75f6bd6e5c03ef39ce0b0debe1a6897c37d6281478c491d6ad26a5bb94b816d8a173d2d0e4f8a6f798bbc743831694eadb15dfb6c5fb828c5ee2156d2839c8ae5db532a3d8c4afe84adaf2a10d2c8ab05f0112951fcb6e2150f03191279e64b608bd14173e606c2dc412aa7c2a55ebe4099c5c605f5069e8101ce32d5f679858fe2d4fe78d8dd0cf901357cfbdce5d5f3c889f33886a78e3fa1aa7c51470984f3c98a911fdb20b5a9a04eab95b978ace541fc724b06ecdfdfd2a7f93979acbc746cd4c5b2383997c45819fe1a67a05ff4b2972d68078155745fa41ef082d37d0766a787e4df238b25d3a0a9cd5924924febf4552dee2276111591dcb1714f6df2e144cf839af6b9403bfedb42ef6ef9278c6c6f3619a22c649e0509d6e2740d219374d379cf058cc13566b6aee0f21fbcb0f3ed609b276d71b9fa2ed78a7606dce0bb83705142a5eec445566a8a53d02ec596c467575ac719ddfdc034f6d2b5e6a295f404e0a0e17602486334e296fcb8993141d36952d45c6609d002d8cb0781a7abbf46190d54928379f5bfded3fc04aac8287ebe861bb386a39ccac1b2091f0bc2928cb106e9d7acf967d3087aa73a011dd92cad1ab65dea35bcfe22cf05bc96d9e30cf40fd2afa2261aeca803fa0af69999fdf431c7aec6d63d5cfde04a2c69b2942232a45ad8780b24c313d7ff95ea7e3a17b654fa424221ca11053a953bdab8f26dde4015c069294743fe1117df1c5b9bfac446ca876a6e9b8bbc23ad1a91cbb6163f9b3aeeb92d62a864d40474d051102639bc5f275de769a8882d10ee98f9ddc8f902c92c46e4dd3f817a15785f644ba0224891583ba827fbc647309ef3745fe31f0ebfc3b3473eea6232cd26d695c587f3d42da0c635eb953be08cf1124c45b3c86ca0fa4acfabb58752ece2463e577c53941e19c9f8f6ff75f2a376ebcc74905e331669a36d77bf841677973c7d6c941f70452204b63c047b22f437211ee612f04b383bd985578999549d1bfda5e93755e3618bf29b7e8c6abb674c029aa964d0d12208a27ae1fde35743820972237794ce5a2c448b539334b237d3d941decbbd0070ec670453be23851ed0a95b201e41308456f5607725adcc4bc31132b42440f8cf5ef103923054b99f47d0797084e8ad7f88cdd7d5628e8dad1233b3e6da9bc4ac3ac52c499097de903fac785e07118238360cc64bbc38ba70da3cbd5dbf74dc07e8df5af639d10785d5a3d389c9a5e0c82e85c3bdbcba6378e683a8029ce329636da5106e09b6204471bbc674b0f459f157f4f2d664e15629a0646553dee3bc20b92a74103ea12a9eeff5cbcbbc5e168b7b859b5e2e3d0380a147d14d8bb649b60da12b96e9596444205c57d4aed6b27e08ff82532935332c9882d87b04123fe40d2cbed4d8b9a6b9f526fb33461f51b068fc17b7910908cff91741134ee9f7a13f4342ffca4293ceadab093d3c2ac793e103bab6c2007a43fa88bf307f8a9f41a03cd21c609a584d4b3b0bcc14f26c2af75da32443e95becefdb7e2a142997b7b05087666c3ea1efa609595f3031e9dba40c9ae49d307a190f30e40252649bf8622b7c9d486696d6a3fe3ac1f1921e6f9617aad6342c52da8ad23c30b54444b26b8eb6c77c90f76c87b554bf3e41585022b9ba7d138b0c981a6fcca2615b556a8355d65602cec65ef36080683c140f29a338aab3d7561519048dc9b77fb1defb46bfd298cc27bba7e6ca0eade695c5e6acef54498bf09fc6d296e8186103bebdb1d641c7e39da69a019c87ab0478e1927d00af0715cdc3a99e338c7638e7b09f2ac7770ba8508f65685ebcb104873eba598b7f9417581d8967fdf6ba0d3bdbaf9a2a6439cdc3520bc705ed7fe183a507593abdc3d16f1039879f0cdf338e609ada005ac5e32ded3719c40f22cd575b215ca5149042385f0c99ed937d2096125d0d31a11b3095cf64b1150b5b051ce92986342fa316d644bd7b61a7bc7092cba4dc3ade3ed861d7957abe008b439207af0f22410dc0f6205f5dd80405c549cce4c3233ded9d31944f1f8a5ac4c7d7f882538626424f3f2d70a102bf276ef3fc65bf9f577ae6c7afa753deaf4a1c8993846b116038be8845a4cc6bf5eb043c32061713b9b927ac93f7e9828673d50d446a0cf1355b2a9960cb6946f85467ac97b84c8986c7ad0fa136246b5be7ff4e8c41b937b94c2b28c1adad0fedc576e8a14fa151bf9cda70df18fe2faa3aadf1bfb7278cdcc65cc4451524717eca7b435c1d0fd2a2c594da746de102f8a9b87e3efbd42e8efe151b0285b60c853c9e585f4d583c3b48db24e922c5b77308430f904a4bf91c4b6c5827ee28decd638787c9d0a928ed016d0a7c6b58b4349773d341fb26b27134e020bb30bd2c6fc68f2f8e0ae0daf097acb0f6a22c6ce96b534cfedc69ebd28f26a36b4c7af50ef0ffd1dd2837f0cb2a115ed37c96a9851addef8ccce64a3f7c37d345bf059c1264e6c42d0928c3f917809154e64d1c46be943e41ecb9114f19e20831c37456468978c0a2e9670aeaf04c529e9f4b1144964513ae5a24d3311cb9cf71184db916db9b7ab575282d763fb1b88393ae5260f158a1ee8e78b0ee70171f8b1cbf22899b6c8307f19eaaf2362cc0632966215b7656fe01206f03463ba0573849eaaa9a573b8474dca3db9538d0a585cf470b6b9764b5c936aee4d2c9e97c23ad3ddc61b597d08cea78077bed5e3ba443c3d71ebedf49eefae4ec076dfc8dde592e7a4563e91f831e856d9b667e3f0addf65d9c008c257ee60791e8d39ceb8973e5dd910f5058447efbd4d4ce002449a05398e97a8834e05b373f314e8ce7de25ac5e24f331c3a0361657482eace3b834d5100cfb395835fb51fc020af323843e3f1c95c070ef1c17ab77d5f327fef00912d55e05b33cea4cb773de035cb5831d27af451f2124bab5f39206d0cebf958b3a70f623ca50dc693d7f083fecf23384d8c6745d8d5f5cf30d0f579a430dd1881c0f9c21dc73e114c30e9354dd4d808108ce79eb744af56b49b1e700cd2ca3fb5247ae845a5cd8b891ad23e705024cb5d1fa3e0da87e6ba1aedd097d014cefc3688ada702f9c26204057214120104a7586acfdfafd5b26aebcf1107bf685adaaac04b618dc3e266ea8d9f64bd507542390f980de3898e59b35dd48dc06663d63a4a75edbeccbdb4e8eddb307e39b97f182c7f590a744783bea2122052245a4cec699403e33d03bab856229e28852f528891030556c15a983b8fd423029815f1ee28e1913226aa72fa26f6a6b1723a9b9c4aeb9b0562526f21abc7794db6124e9df0e895873446abdc28a2010f84fd60c99e1cb89321f543d660164ccb4e4f7a906c9b7138405943b5fc6e2b6014f4bf4ca97823589f9ce07658443e80a36cd8324d4cd3366b35c4d5ae03bc8b3a3b0ddb6997c26359d52d40087173da0efabbac4918c9d0856b3d42f4d63c081b588cd533c018489b9cbe62ba1cf528ccbde4890f5774aada5085d80ffbdcbc07430ddde428414fddfe1362e8e2e7c75100b81f626bd196a9df1afd7a95643caf1c352dce1e2840176293a13f31e6b2b8473bf7645f39cb6c27ebe7ef7eda6da2bdf5099d1bfa33bd41f612e6a3d474f1c1f3f5a20a43556a4138087b75a15b900f2158cd15458376f92fd78bfd00e79f14094bd36985de40dbcc4104860882ea5268266c505239633bcec48469f6e1f20e26ac2b3bb2c1833b926ac1544dae5aa385b1b47663ac4be51e5d7bbeb0b9a3695962a7156234111fa064f8a8bf23815e36f3097cee3b2afd40f93dd0c27d7a86216534518b5c785b3a3b52e61a17468ae4a2607afaf89b351d85331320b029951a6f8dd8212f21f466e9ef7b1a41b7156c0679386138c2d6af9675a66bb87491b566584d542f2db9f86ae549a3f2fd4fbe1a9f4754e3558c4edf7ba7cf37a97932536233bb4052d100c9949e0094bdaf54b35ddf544bd305eb309bb44dcf6d7afbe5fbeb7bf7da05da030ecd70091abf1da322fd22c4811dcae65c2673f3d13abf20763f6ce0afb69ca0c78b02c1bc1c75a323d8d13acdce1f880070baa79100193bba0690ffe6953cd867dddcff9b9b871a0981ffee60e11a85a9011486ebf688227f7f0489298eefbae698cd6deae20c2e7ad8d9447c031ba1b7ab888e02748ff246425303466bb2958103b3715dabf70fc865283f241d46480cae90d129a1914a32729864189998d4b745efc28811ce21598ce26b2a4459a0ab1e8414649316166f0ad98ce56bb7660f4aa1d4e1065b711fcaf7ab00d9f8d8e88df7870e53fa3aa139a405fbafecee3fd6c336464f7cd7c7e8e5c70393727c4810738e764aadd6ac7751c17da7a73c67dd066745ec288e88a02eaf94cc6b1a3c9e977b2c1be9adf1fdd88dc1a3232eacee2608d6c6d32546439d6c8362c368f2d6a30156dacab458571747c3c37ab8ca6ca47df0579ff1062a6c288ef03cccc9feaa980a1fdc676b62d49cd0d493b9c0d2b60fe22481248a0e6e9af23371e8e863e44c4044b5d378e24590b11b9d5c6835481fd791c53ec88d6a8cd17206222a785f614b8ed158f6a12da1ce2e3e5e2ea1527678d9c2520907a158bdf9c603c8d1ecd36cb6dd4fbe96b8013eccc27d7262710924bd0749964f82a02d9e6b7ab586686733afdc4464d927f40e944f399cf51018c04a1ffdab3a9d056af7540b05f6c2c0c8b22f7cfe0eb593811db3f8863177ad72f57de23286599fbfdce9843a783cab87e4992aeca9428025713ff394f6bc1c7e906abcc15ba34bdece0a0a5aa09cd6ac18e2687d174106e21afffc01026054a825783db8b8dd6fbb371b1b17ec6948366dc004d8e818662a765574ac13afbcc4e242cede1bc9bcb19834c7eaf9d404301d0a0e927c9af1704d75d1221fe02ffd3c2d4ae7c74163490dbf2f17eb991db3f715bf74ec3badfdf1a703f06154a00c7a3519a14922ea7a65850bd9c45b085158190ba46ab55edc7e0f70e8f403256e3b7d3aae555e08ba6336611ff7ff24f422800aab05fc1247f7ed22789007c5fc120087902c9f978ed914a50dfa08b2f3df46b726ec561c00e15bb960847f0805989b84e6fe2a42e8d7b5a42bd40ffedbbbf1f0d58a236eb40d99982c85540bbb7fc5575ab568b5b2560dc5411cb4b6e00ca212a3587e28a25d53d2c738f19b1d3383c3ce106ca58396c81f56018b110188f8dbeef9b514642659fba30c59c365f10bd9d5b35ded85314c332c665e0f09db38a2598ed244b0fe369cb869bf48a911184c15e5fbbb0b509069762386ae603147f4af3d122f581f8714948720bdb1686a8881cd6c670c44c8d37352d48dec7e412b95800f0a488ff95f5d969079e01cbf79e632fc8648951172815a921f66a885e26df115ef2c24ea132238f900dab2391681921177846d9ceed42213b07f77fb9a842ae168e3bc71e1c50845ded410761388586ba0ab27f9f07cec354b118240ccc19b15dbd81e008820fa03cd500bce81c0042bc8e2bdea2d7cf160537722a889778cd00894c041a71cd338fdf2e46c32493a0cae8a19517e45b3b08d6f89d734abe268b313248e5facb539fa80822bd111dc79f681c313de3075f1d5f62be5193e4c9357a05b4026741ab240c593d608ad53546138eddcff3c9b6e8b30a364e51b4835c104cb9339e0f6cc34ad7f422260d78616b1bdb22bd97f74740cde56792589b69ca469cc62323d02c4aa03de9b73308e0e239d8d902e9b962c0c0de94a9c3acfcf88b5027c2b4cd46af420ee809cabb6e0565fbe59c801dc3dcd8159f923baa1827b5637a0a2b12eaa453410e99fe2846ba76aa8ab6e6e88cf3eb5d75a419e19cfdbf384fbe5a6126634871fd0d7e2a62c4f8a053dc753ed72ec5ea4929ef49a32bf3d91f5ab20d0ff845ca31dbdb9d3d4f4b27d741747d79a2e644e52c471b15dcd312ccf94ad419fd71ca9c6a8e15691610d2f7661a576864ac067584ff11676efcb80b6e351d6de62a631b4b093c780099ee06a18a921300fc25477b92031e7a9c4388e7c188ba2c805fac80d35fb90b973a1fa5ae016ac9b6ceab45e0012cc3e585ef8563602342837c96289b4db90c680022d24f2d9007e8abea95207ff9f5dbada28743145c12e57ef64abc4d2fe15642cfcf2dd4c5de187f7653d301218d354e5fcdaf6285cff647241f2d9617a2705a4575771c8a21ea3211b2a07f70c96246fb9ce34b6e10d5eaf578f84ef06027baf423aa49a3cd74d8c45c1f8f23b2d0031c9c4ab3f157c75a2c94582770f899f07085c8d6c31e85c9f58d6a46e7b3c5f0fb81d5a96b416dc1566616f3658eb5699bef2802d7eb065c40c8b7adb04b20de45c9cbdaaa70e5160b2782e15976e74bb1d32f52bd1ef7fdaf940bc56692228f4ec24b8a5ec8f86d6ac1a50698c68c60b78ba0209292d53a849eafea4a11ccdfc1e24dd4ab3773b29024c29ed944560d6514d8b6808e9e01619edee8cf474ef91862a048c61d27ca6196ba371c29b5c5ad9707ff210fa77b04a7882ac82daced188b1507689d763caa47fcd4ff239562c9b70e4f01405b7059a55b3abf6da8bc358e09c346ead91a18204c1273e148de6cd1715198eb8fdf43cb2fd1ebc333a9d15abe556dac82b2bb9223263caf36b7f8a8fcd5466fdd4a7f6fb04a91c76c812f2425ad6037e21c8d9829b43bc1386a89e18578a8e39326d28700d72a0c85d58080a780672ea160d4b71394c08e016e22c382bc618bdd9098b066570205ee344574a3f2a76fb8761a25d51ad6cd90570b49233e70b751ba127e351d1285f9e6a7d230dcf2f843bb40aadd3c7807ef74ecec4fa106cd55d0cf46c1ba873a97226817eb0c5a1e0882509e00256007600bcfc777888b36407df941814ece5cfa3c41a9a491a5014ddcfd22cd041edd875e7172e157516a8c8d5b3bc111a6964b919b085a2e8b5b439fb1ee9cd659df5fbc8a699597c204d1379ca91dcea3dd4dd8d89aba6d6c8dec1434db195c13986e98315916deba39629dd14e7c2a2d9713a0c1e590c0d9ca3caacf186e3a234e4b5655b448a71ba34630030cbf448d7eb35592076cbd4831cca600d861d47233b6331c3068b62d07f5bf1fbe68b59c0f5b54fe82ad9d35cb5ae751186a17217d31075079c3cadbe3d6ec1f526bf9006c0389d62e46f1cea2b5c498cd588053eb85ced3d0381394e5a30a4d2f8ebe551aa989491a1269dd15d6c338801ea8ee21c07a689454e60dafa8c6cc3fc5b44936f9095a19f43b4edb575d879d04dc1bdc20253074e4a8a61032831397b0d8f47b603321060451d958616b3d0a32a9d2b1582b0d8ba5f3a9240d4286912694055d75e075256d7f58c6be9fd5dd19e5bb32b67e8832ad5ffb6148a9ea0671331f9cd15ee28b7ca7d263d69015a522db205615e1024a8159dc2ca6c17d04ea01fd49b858b1385dbd23ad02da87d88f32d17d4a62b048867b8189072031cfc0642a8489a0968f35b84e20ba0a6925f2cfa8f95e252b3b550d8c2e927053803fad9c629ed17ff5565129e1bbb9ab0203241ed0802b131446aee9d5a0ab79bd49e037f3a49cae3c9b10e9c508f89452129069890922b5b8f30629db9afeaa33f52adfa664abab9d002228a8af49d22f1edf940b1bc4448c38337e95cd6a7711a370970a8b104057609e7780f4a8cc02eef0af3a7a540742f87829dde7c58fa8f5cf14a301df57c43592ec5a7f31bea3314a77bbb586237506b78afc0a9f0a56ebd193a2fb95941e3d9ae095985a266fecb576ea7d62d0e28a625e0618a40b65034b794600bc1ac530765c4861b2583eaaab3f4ad9ee18645289547d8511beec2371fdf3e5c9b10bcc2993d1987b8204afffaef58c3698f47812608d7381a05afc45ed645c95bb17e307ab4f898632c8e460846a7ddce3a31fed7d24e81f297ae939d5fbb632c741476cbd25764df20da120b2e0b4886d845421510a190fbee307cbc942eaa8b455488bbdbe0612b211c6b8140eb01be5ef7665700a1a24a59529c02e705fcaa28eb97e4a70476e1cad2c5b9284104ec2456be056cda7fa039f712c46b5122d236a5d3d3464cafbee5caac2861a93419dc3a859068bc47d05c141ea21d0403fb9b1c9feea955d2dca1b384f35f028a4f0da49708a68b12f3c754f9731f6bd776926c62138a1fa8daf9403f975d675504eacbab2c60bf1df5e9a15518e7ba0d472a8e4e9717198a4a8fb83a9993bc5cffce344e71c6cce821b51609c68b60dbf7950827b8ea2c1af2c53531d483c36bba16fc5e88799d09c25bc2abefcccf8fc287e0231b1644047df968ec5c24bb8115ed85968395e65b9a9b60a49edf34e8807743e2b55ccaae223f48a4d940a70f6d661a76a86afc3b483b3e8cdb16286280f769b6c5dae4979bfc110876754a8260a6668b36b597eb0b2effd001dcfc31ec3c15c712f83eb56b34db417289c25ab7c2d322c1a59906a7f64d483276cab2eb7f2ab2ee680b72c4e0dc7e4e592d51c777ee0510ad2a67a5ff725cf895cce86081639ec6c42eb8508cf97c2423ce11d1ddc68745e6e385ed4381c7829502bdc76490455d0148e823f3f4b421c53ef17085505d7a00922f173c43a730fd16890630027d2e9c60e1959251a0abbed86ef3dbc22e2c6b0e215d8264071050d3b10dafc7c83fb42a9797ec1cf6d12f63cc0b755d4c6854b271345f9b3525b49dd0f34dd0a962c50b7c324e3e649db670572b83bba1842951f8bf3560cb920f7cfda64d7b3d89cd1867eaad48ff08a46d0b3f8bd2f0ef183effc31c275f89eee564d50911dfd2dd8b9e4ab177450d47542322970eaa9e8b95ee3cb1776e809f6124568e68bb2809eb358157fe446d176141081d373f084882f2825f1071912d420747512b6fd4af84ecf14fecd2554022f7355f2466605463591a7573fd8d033563cad807fab358be7aa395e65931584cff3b3a069f88fbbb2bdcb93e5065b4fca4caed5ef12ae6893726ccf453d85eebd4e04bbd9ad44f97504c1ebcccbde4aa51f0e34905822ac9746a8c98b47cbeb0864bf14df0409dae999aac4c444c2dd04911baecd8789b66edfb0f4f7a72236d5b2ca079da1845caa67a0729690f33c62c91e333f134980b8486156e31fb8e57336d46d867e56817246d303e05a8229f147535c25f8113faebae882745544615d5d781cf1d57133989a299fd746cef678d41fd4dc13034e0f12125aca3e81b3aa0e59695012d3421eaff5716e6bf6745f63f84be785423c03ab8b23839eb0fc4cf187c0f9d31e2959eb7e5a83d686e0d64b980e0d20b6073488246083ac25476818fd8b37a72819fb399788b6eec17a6b7406472dd9175d513a86c2f454f58cc682f24590e48ec26437c3e63910d14feba6fcb03a222c03d36d89ad7f52876a2e10647d7d10c7c9a3a1453d7d1145080be39d7f0d83b03078159c8f8c595f26abf2d84b792746c1262031f2a6d64ecffb268ece86456fac857622f76db0edae5259bd7359ab0e1c15bd9ad8ddb7dd6965bd53b59c3b88d44eb570be7a9d3ceff7fdca5426a6f3382d16a4b64acd11b2eff1f6cfb939fb57645443f31a26c4806a749fc63265f49994775ec4b9d6d0038fda96429d425517f25f8257ef952f9c97cfdd81d5eb5626fa13424f1740b23de007f28e717f7644e13f834146288f913b9283d4f058d35ae86bc7f69b5ac685fe1a75d7482b99fd9788591f500afadf3d125c371511519a1da636bf71a5a70261bcfaef58c85f6a13e10c012cf4f65a35e6694635279378069f2d7b8d43d941d3313c37e92ff51ba529ff8053970cd561c88d6d94e7b6963f3a3c1c0be974a83c9f0a4abe69bb38eb961851482341824f4c16a73d3730ed43c825f881cde02a24274f103eb1fcab322bb83de5c0a9ae9827df2bab7bc320cc9d36883d204629ac4ffed5fa32c64b730d7464d33c853491fda0efcd9879f2d103442792172296a6cc15325ddfb028148b06a01555a6af9d84254ad574655bd4659f472d6c077370831015cd169e4ffeefd2e9eeee9585993dbfa0e25c9f28a81422fe9ec5f994d6185dbd1a312febc42aa1e05c9d482844963dc116e607f6210b1cf10da94442b20400a75bfbc8866bd8e72e2f915b8599ea11f718d8aa9c758f1240ddec00d325ca5d081693477aaffca638469de9cd860c889d110cb14cfdbc2b5c508d8d0d8852fea706f336ea669775e680f70579694e6fa1815a12806764968f432e1a5963d196cc25b263c7a82b59c026e4c91ee955a6c7c89873bd7ee285f63d84da4cd93a4fa21c33ce6794202390c53b0fed1f6fc25d1c00fa5fba40ce481808edabbd40f786211a99db5bea781389be5fe3a0fc0eb3e21999ea0a2aff760bd974a37b9dfc38f3863bc0861736f04e88d78339b7f58d5f86be5e34fb07a593724f71d8c2df76152d3ae9111f3942c38dd7f111657405c77297c6da4fe39bc60cdc755ed7093f92eeb178254addf09972707390b0397be7c4e1f1cb57a11e89b20dd02d51f0ad6d7850c527eec2372ada19cf7dfcc8d741a0c793b59ba8df6de0045ea6db20676bfca461ca928e5b9057bf94c3215a619abec1b1a8d5c36cb97d1c5614619c460fbcbe68f3d081a1f5f278c012dba051bf2064cd251a73393ffd0611d3c2dc3a04737621e8153d27b59405a5678ac2e7284d5194da01761268cfb68163cecd01bb497f7c2f65d46af7cedeebf27fedf2092a5e43979aa78cf3ddf19a863857ab1dd74ac81867544399129b6248490e32c9d1eb43625e7f91fba74e1b1f8648151a391b4b25d6f49706add2428affb8f8478464a2fc3ff6cc9d5a5bf4664daa7699fdad5a50753d0c42d84dc982bac60ecfeefeffaf32bbdbe3f0e3b063d39b449a5f19f7fb0f98b24b35e27e429f6fc3edc631f721d372c7fe1c4da58343fafb3d296b507190ae194e390710dce6553c1ac3fb2dd1aeb7195481b1fe99d0b2f75f57538f0d4c4820c1261247413e77f0693b17679e13f559f7fcc3c2f22325a3560cfddfcfe78f90293d1709eb913a36e25a7b42bd0f315ba330c07709268f3f7be8ae8eda17fbbfb2ade23221dd75ac1db9536cee4df370fc81b0c3c5eb4373f2033d4b94c967f7887c415a67e6cd61a27ed24866b0ecc6f0e36abc6557d9e282d574b962ba5f893a76ef88206809a198a7b30b6708436dae6721ddf13f72cb9015cf5441a414d2d931446eb707a51a74daab0993601f39b345415b48957dcebdca4a4137c5f577f2a8163b12980dda91722b10d7ccb8193e7d5e62150c0f0301613a3d6527bf4d3cdb4d2819f49af611d639202b3494ea2aa4190c2b78986f8c37d760a6c819520e80851518fe603301940c02de3904084c84c7230329d3de0d164f4791aae9de4c4a4dbe52ecb5952ab988f54e99b91c6a48cd8e779ad15bdd67867911e43b8ee2c245d6c9ce1f91131530f0117133f70df4c80d452115b96c419612e12b9d141de0b224d29cd2542e5c12c109ea0a35ffcb0c8a586989915cd3134de5fb34cf5e4bcf40888206468ba2e0910f577b1653fccecd56845e80117d29e68fd45cf682bd7313bed3e8ad108ba972473b3061fed5f56a2235bc56781a20859220c83264480f13d9aecd9a0e19271dca2361e0f17d2c4d36508fb097b890845e412fe4d3dc0ec051f4a8f39b0248eb67818e913a31884e374fd67075170d5491133399f9a04acf8d32074911f3a3178e9e620d8ef563fca74aabb574d5841549b8862b9802b972feda95643c3b23a07898d8310973e4f7861741cc636f6395da834f14daf03ab3b2d114b236bc58a21b4b38edb562ac83af8112dd09a6877e9e6659878c91711b40f07ddd250603f7ef38bc9c546619797fe8be28cbe65aa536787062b867865ce82df74dcd42f96fbea65c811b8fa9dbde9edfa3c56bf9c1bc990bd57dcb3585b9e860c7d6eaa8eb36e8899d1a82ba85c52f2f4ba2a57e92ad3d78a7ba88ba959871839b0bab15fe91924846dc12384fae2a274a13881ddc045600e50933660261064e7ad712f620f82460a8c0f6c869f74715c26f11e6c80614ee3e3ea8d347e783cc929cf610c628634556a548a47ba7586444ecefa78af902ecd249de402f3eea035ac9fd415b08cf2493ef9e472aaf17e797a8275b89b1cea7a4eab8ed9bf03580eec3c49928bca00dcfa5d9e2e2b0b8edc5250c8b21e71f203e1ee99d7b26108938a60f603534a650112d0e4633328bbd5f0f844f8c608182540f7416e1840c9b39d054e7ade4f908014535be6468f51e055409dab717ca7b25ac9779ee2320627cfc027da0e9583e0127ff8ad5b4dcc6ea2189695311c780c2c3b0e382dabee694d7d49310a2e8ab0a18994a1b1bad065f9b79a3d85eed7ec4dc8569fbb445bbcf4644bb301c036dd65df0bf4cc40ff943122d7dcbeb1b0a3adff4af05cfb4f50f8c022bed061d0fa9a85076971b31430eb3127964c832c2677910c8beecb078d2bd604819a286cc89b69b6c36a8bd337f3922e6dca2c5f79fc32fe850921875440672de64b28b1c20af2f1b4c55a8b19cbfe8ba6d1ba66065998e7368a4d59b58747d25ca5a336805aedac1b9c0feb0f2d205c2fd5874e8d2353b82ba1984781b4f19d81da4a1e65efdb8dbcc5a3c23cf796de305863679cd0741b9ee6b06bd644c5b5458ccc57b7557ddb0d8539eb5d0936318c0289c88554b86265b3ec516072f7ff73403275611a2fff46f139a3ca4380a1e82d9ea1a6f148611b2504bac182abe928154812acb00bdfc90df98eff59d830232fabcc7a070be38796020e0d9328a69ec5694876aa32ae23be37cf23596e8670214d96d86891d11ae90be6c9b26918e573e1136a29b62086a214969b9796d153bed58bc80603fda2a81487a18b744aef577f2bceb97ab04c9ec5953359e898769eb0494e1bb3e3fa82c91231f78199a4ad25db0374c926df6d16435064f03b574c77e0b9728d6dd95cc7785e360538b1bbfffa5522b5dcb5d69bd1d7bd9e52dbf7675e76fe69d2b3403839be81c02b2e6db468b35a1d23336cfff33ffc93c4561495472d7788d2e162527af8b8e2c14c9cbc68178e7e26bdaca396fb5719904d4f58f41e46aac22540ea795273d16a5802e00af5325adcb7724e95413edfed942169e5f8a730df79d45174245f383cc22b1523dc8691812a9f8f188a0badbfc40952ea7793f91c78fde204a92320c6d01933265d1828cbf740aab6e2ecd78ba3f3dc15e52931c941be1a0f1ed50c2b655864381b24901deb181d00e7e5dadce48dace8cc419cc66fdec75409f122d78de6dee1a4ded7f391532cbf4cdb59c5c9d46960934703364f935eb656adad4acf1c8e1388d6efef2fb5fb028144e865083effcbf32988f18dcbad15fda44a549671948a859d2bdb09ad1fb471e716544234f01a17f6701a7cf729dc765df49b4bb8b89f228cf40ae1dd8bbd0d7fa6cfe3cea3b8ea0a178004e583abdf0357cd1088784274273beda1a6d1350f013e0c28b806e2620295f906b0f4d05d6af3f6036b2cd713b4efaccf1588c5a6034414439bb7cc4a82b178ae533f126054b6dcb3e786a1e166faa1a8eac8759f01ef52b128879c5a9deb6e1b49a6e4fe899dd7f7bc355ca87500598429a8d4f1003ffeb3c98040ac04b9d0c037d2c6023116328908a2c5e167ad59c1dbeefbb90e6b2425f3d0eb6377d2168ed9d48184086f0de3006733e9ac06c67705d8c70c6e46d3147fc39210cc9c15f319147e2f780bcf34ab6043730446f7aa6e49942a8ddd0923140d2227ccc933f7e80e23f7e842fb1eedded264138232c9bac378efd1094942c58933971796093eaac9a8ca23451896eed9f34e6154823b4b3f1c21b876b809c94b344edd0a8a66f406f1e2bc06c159257d6b90961391eda14100a30dcb052a7ba086c57c022ed9e85651add1142251583d73620cbaae6514a21b7a9b6bea0c15c04e30157ccc428c4100fa4843985ed01c945c6fb198d8248b2d0f835c4d08f61455dc365c70a0781c858f5d974ae0fc61e877642253ec3cbcbdc5fb0bacddfa0299e3a10d3a8a1d62179afe4c81ada2439ebb7b7b3fd0fbd43c85ccbaa66e9b7f30d260a65f41aed223bc430987b5f7aac5e95e18a6b6e12d75ca447a4704ab9490f52ff89ba12b96dc29317c11d7d0a786b4544c8c0906121f09fbc4ffcb1cbeac91f08d5f63161291419619a5768ee0ca8598db4b6da39e36232d9609a97ccf25bfcb374ab0a4103d945567db431e5f60cec1e7ec44042ee0f5e70e246212b8b4aa8f80dcc15838e077b2e9fe1d42262546211ed964963afac1441b6971a532ba8b27d8bdff4f74ac2b8da240d40c5c58c53a6e185b5613eee5e6f5e334d949ab4453d5fa1e8c6311bf4640994957fb4a2095609ca6e2b3c0396cc68ee5516478fad0cd1e80c7b77d0990abac788b2983a3b0db2dec6d32e853b7f4e3f21071fb3265b4c26d672e66c58c2eb33494e8af75c4d42cad70417852d53408993b164d6f650b071dbdb096540ad0bdabf099388f3ec0c254a9d6557e5ad1628993258d8e4ad1d147c0e26b6a4b6d2a74afdd032acb74ec918fc0d7855a2815b42d0222c52266f3c6f732832ddab51c40fca745f7ffd8c58fd946a17503aaad4840a271f8b4a7140efa4af2ee9a6a39a2ce1a1eb03d87cf88bb5faa8cb9e42ce9087a2173edc101d2c09580fccdbb89dc8a98e4d5e82910aa2af24e13ee750598d7ebb38161da987df588585554e366695bb6e4c99a193131925f8e95cde1d6b190ba1e9b49483c1faf3009e96285a2da0780c70c6bc7c1154440e7b9efe33d55ecddfd5692b8bb57455eea17e4a465628694221b029d1ceb0ee0ca12a5623404b366fa4986d44fff3b44cce1a445f59ba9061f6a72d18d9c921e0e880dd37df93af42b8b0587e17765ab867152b306f1cca01bab7b1a18da85ff31cbfe1ddd070a17295e04d7b34b6e32cfd23fcc98def626831d8ba9b62a0c54c1e522f6040677fa1bb72b2e2232fc248ffe1173eba204d08e758962e1eecca5045172e06abd830bb74f57d69259749a6b69f222d5d8dc031cfffa0aba8ed7ee0f20e21f25a18c332e5b09a7475092e49c6030873469e0ffef8600637aa111d522a32ab4a9ea162223cdb1f50fa9ca1d6e209d0ad3449e9d20474c7f64cdae661bc9c8817dd01367d730725f4de8c6404f7050a447cb2166928a2d3e9d6c77d215464f43a31b3930e4717348e989907bb64ed68f4dfef801a0d2a82db3f1dd05a993fb84f14f8c7463456ed3dae8c30081fe45f6d2ca9a9cd70f07071226918108d52833b2b35282042406c56b3b7524e6339a5ada45f6285a31c615a679448f9120015c59072f52941be93799d35d2f6e7cfe2c2907c09c98d00367166e375292a90cb4429e6bcf2ea710b665153047818d48c5af3f5b80d8fa0f46a7603f706646d5ff643a002368f894b809a1540af05b91b492eeef00fa0da811a605ba8a2b59cc70275c45368e29a0d59fd3eb1ee1c0ef77086338d3b510dab209a6dd2cac8a067ea1ba0061eafbef52b8cd3e60c65b1ed1a42c1c560c3cb508c29cfc9e6342232ed009af379d885e777aab7b6cbaf7279e0744c8e5c635b2f6eb848177447c387b1797e58d1d2363f6befa51be104b43508cfaa818ad0aaa3e6507c8efbc171ca06f4e5ee798a004911b202188ffa6379c46494e9c1037b377411913327ff872282c29e320362668069be43e8a8cd15ea4182fbaa5c7fd7afb0fff7f08bd63b18a193849628d4807c446b4619f1c2a7408b0f5100be9ca21fc38e60f1cdc697a7a7ee1df9cb3a824e50a2ece6df2e3d8dbbc6fa16f421bddd7ddd9355cfa9f7e6d05b4f3a7d13029f656ed7192b563ad7230dc9302164f33fdd80cab0164ea93034b239b64ce725b1c669e8c0c8f5e14a46c79612b6124c090fc711436793512fcd1874b3ecbfc41626ee916f8934a2e70d603f4e787291f0ea9d2a4157cb73dcce356297186bd3d686afeda3623e58af7a410192c3a61df6d11132591e6ae8d5690a73a60a5851442e32b28bf2e2448604f5090edca999722fd87247fdae367b4d149666fd258da7c82f618bc5f92401098191a6b651fe99a9512504405ad21ee42bcb8b5e69a221287278a5106ba9a00d4e9b5506848f2ff2d6b4fc5bc524e155c03af07de9755db17f38d119d3d6c8aab952fce1a63353cf14d71d8033d61536d0cef3f565f168ee4dc2e4e3c44fe77af644af24f61e5683faaf490a3f270f6789fcf50287c0c18b1f772cc4e943fba0159e9e32f39d0693b650a4e389c15ee3b3ec2370c16dc50dea986374bde29043bb23af02cf13f466cce815cb2d6eb3fbcef8c9e28e8708c970a03a1dd18540e4b2fb9b033734a13a189fba0b3cb0b690fbab4997bc9df019adc8e8b5efc8c798f3b6e4680d61d2dfc7f0bea657681917227e3a69b31ad32c1260f6ea197f7f3826dc79499b61a9b911215784aa5b54b87b5516cc32fda2f82b967f60c4f7f9558ad9b1efd40ddf13beacd99c893fbe8f91430febe9770fbb7011525f0931e95b8b8c23f069b9b0888daa661dcf9caf4a414f88b354a8db44ded6918fbe8a094c3c38f7fcd88b3f2d330e49c6918efdb3dee55b2159e3de035d8a04212368af0dbd71a0e5a61c756a352b2d441033b1fa7746dc44846fc1e41382787ab3d7ddb6c9dfcf4abb77c7d397b0459f95a052105b8032bd433ddef6832c1aa0ff6ffcdb03ac9cf74a6d32b05cd5ae8231dc89fdf77784f57299b6fa9efb1844fac74e55adbf7fa95a22957b521d2e07f5d51df41990fd326d686b72c91dc5d3648883e40791495c46a3ee2ceea0f7700fb5c8038acb2ebafd9b7f8d2c1c10f804ff227d020a63798275605d74af70d55f83b617ab31fe00fba1fabb0c218fabc58c6c8e2f447d0ff4d77d24656f158453948ef2c671fee94f43a45ecccee0cbe607b3435bd652a0d8734714cebddaa46ccf5e2142f70583a04de7a299510a5c9cefd979d089856a5a04b7ed0bccac56ff009e11723304d321b81ffae87ffc2b1c8727e7f51187059ec9da8ad09520ba9c2006e6039ef86f4a06604832cbb0c3c7ff330eb05247c4a2ffb7a6b276b1babd44bf417bfcef2953b7ef602c5e50382e20e506d26cc79eb7ed5bd3c4e29b2539b04ab22cfc12d77bafe779c21f07331df47bf703916c71715f37584a959907cd1448980556c3901f25bf4f0ca306d1c7b747d806ed947e14b916b7eb581c8b2a2005c44f4de07ef3382e573bf912e9f7d1a6979e24b0d6c7ea5015dc6e5661ccbe67ee35d36fb34deb2199ff197cd7d8d73d9dcc378cbbe4f8db97ccbc91896cffd46ba2cf669bc65333ee3bf8c7778a9a5cd57f381d48081dec409a5084ec0b330fe077305b5f94ddb978297864381f3c2d0e4dc898b806583656909f69db3a5272ce1041d1731131f9da1512b2503ad69d4fced5ac575cf2521d42ad3fe63ba3bf78325fd6b1a9d3bacb3c4ef82c06b5878b10fb521f049c49605a9ce70af64908d6c4e58b4e152414313013bdebf0b6f0a3fba2e6b7d85e080e260860c0d07895d126325a4dfe44323dbeccbd02205a2d55fb27629dee6bfcbafec543e3034011406d11dcfa14aabb69209ed0452f8be7a7545b80fe303c5982ced80c3e0530eb58e00a0a34c983d568a8dd52b583db09b681bba187cf03bd0ccfad78cab6816af21727bb50bf80286f4402bd258a074bd44a2e183f65367caeb9a69b916696f2abfc2cf6e33b8cb874622ea6e3c0624fd74c5886e738a4a331d243b4a72bfb3eb924ab57dd10a54701fa853650fb593e1c499a0fc9fe19e17e84c316bb18ffa8b4575f8c154867a40655f001d17a2ebb970ee2302238a55685fd27844c1844a8adf54cd5053a6f48107cc28ae603530ac6f768bef4b1721402c597f8120e4ce4a52f18f02a740950ee02781b4b6c9ca6f120bcb1cb9d3018fa13c5467d900b16625191e439ac363f7a1129bf747661f0fb1e1affe4d98761b0da5a089d6e754d8964c676cfada775d2901578276b6bc7172c5c1159f6b5c8e31711873168e1348b09b63737c3ea5f6619fea137da64ff9043ee7d33ea9cffa4465aa47490b0a1ea0311ea21b32bd3e309c3475ab0893e8bcc28b66c25acc19191f056141f89b5406c0fff4a37f446056d2aefbc28c5e2dc7b342b5862329caefd27910fb7defae143420643f912703c146a7edd94e3d211b988a696d67854419688a642015a7b627118a99cacc3f206d8238bc63172afe3473d70ffa6dcc5c1d627aaa1b4206c9a157105de3c2ea25c4cd9ab9facac7f9014d99983d8e457e0fe35bf6ff1a2fcbde4f291aaf884f7217fa6e58666d2f756262126c5e84835e2ce6bd1590986ffd2000a498dccfdf214a8e7417fc843145bc11f169182062fb7569177288c255fe79fd822a290ddffc632da249ad80e8b92c20a865835d40f2109bff644db32eb8ef7a7e4eb520656bd22a8136df2c9e1c860cb405f81f487e6f88270e496107a7a513cfbe839066e75b482c7d99eed80c8b7dd92314be04e20c2d14cd2a54c1b7aec353f278e695a2cdc6d2dfc5bfcb0c74f00972766e5910f9be848b6c6885efb096f4a62d1d75ff8469dd4df3216aad6ed615e8005d1f97bd08211df8749110b4f245913f2ac234eff7a67d04d87dfdd8a9f8580703ed5373e17762b0f6174b6824670fa483afae75dba2af3e8f08ac087f2a6cd56f6d2ba7d493241b1187ca6975427c1eca8d6300ca89a43126e67292c462fd189f045e7ff043ddfa0e24442310a3b007dcfa9621666abc64f8380e0d52a152334e3c2ba66ae4e5ba91513c259a3f71db40a0b4331b1765908d066efd142e3610416629cc02f73f0184a60d13ca38bcd11cf58814619380eb85d64a1a82dbab43a4aba5f4caf68895a27fc8649cd329a5c909294173356adc6064298c1fa75b0ed13f435433f2d22484a5d1b7967b08aecab85dd9573950639ba234a15ce1a96f104cf23ba4c16de26a6c37e0e0e5d6e0365cd97d5fc0bdc53dbe07734508beec860d89415aae53093a260b61cc12bbd5a4e304d6b93999d9c110c1ad97728b98a9c771993026befae8eacae65923d1b2087ef7229201f91f3607e909f9d036964fdb53fc4e1ca7ca1ea2a7ec8e909818312515d81b69aa18d6a1054d909005704027fb7417b5061e688aafd02535a83404828ab5bc495b024eecb86a8b029b6f52b0d9af490a4b130eacf5c93506cfc4228a84836994a602e0bf04c0ce04bdef26572326600ef11b85c7b313cb5b6971564f18077b5ab9624f02aa8d9952c21eb457ddac806e334c4e26396748d31c45d2a01c503c04d26f80219c005fd92278ed9636e0a6ba97c66c48c5b15501e1848bf100cce698ea198282e733233ac329a6a59a0c743a4beacfacbd562ddaa36f09e5c3cd14cf955c0ecaaf6cd8d66fe05c9140c448610c24ca6cc7d66bdd882cd02edba61c26c03f12f869f294f5ad4f6dbae8d05049c006f3aeb44183fa4a382d027025dbea1abe76000461f1cd1485eb60710fe2477c611bbd1468850e752d4972a3459ffe1bc3795b63a5df9d9c56a5eb1fa2c3d328756afec6061b27be21cd93861b334e1718206531bac991368ea324e76f46ffe00c8ff5a40b76c048796947ea13c0d385196df061b86c631cddae4f85231b2f48f61f08467d8ccf8b0b3064519d55015a0e2081bfb6a03ba86328fe5efc11a8e80f024df30f75313be96ffbe85e86d19a96d03f123876952343bf81472c7da0c1fcecb33fc7f0721b8fc7b2843858e738dc020786ee4e246c09db51dc418825614a43b10fb71941c7cb7711c12fae5f033077164ff2825911511e65f39559c3b314d22736b19a8eb3fad77cb6a2d942cefcd787ed89546b826befdf2ab0124b0b56df0a6a2aae2f30a5a002655fedb819bd6bb25849ac42e292d5ad2166efd15b6653eaee84dd2e3ec19c84ecdd1836e5e460141be86d7a8559d5b4cc576c3062469b0e6193b35cd3898e12834156886d2180e9589ca66aaea0524912ff46a66153639969b84ddbaefefa0bdab89172ef74279847b7c83598951eda374219c07f292912ab2a02a2b2ab7103fc0497a34234552bba8b87cc30890ad66ff3c7f7ee51d45010c422944da7e2876a00083603730d9512b759576363c0e4b34539351310a584251fdbd0421d13dc7b5239e0fa17d9fbce749a2098bbeb72fbddaeac1a629ed616ac89d056d9cdd883dcb6fa9bd904aad35dde03b0e8383f448ee9075759c6c5e19da1447931e08a3b33a111390eced59c493e724ca3eb23ae2b5d80bae346953346be183851c0f1871cea4654059991dd225650d7bd199fdf44470027e05dff784fd71fdce7fe5f3e3ef81b3e1f2452f15453f3302e8f536f609341c85c243c2cf4954ba11a4148b87d42726196e483881e1cd653852aaee855405187c3cc7918c9738cef5983a7dfe19e9093be0b4b01a5bda19584c1a0da3068c0e8656f44b05271e2f7dd2f93e89613a2f55e94675f015c62f5d817008108f793f62df5954319d23e2e9e404e11c74fb22d4ed3381af632bdac59c11b238cf11fff038c967aeb54a5d11af76a47d55c6431a2cf18463428594e0536587a8b7e45f8e106f321d35b28824383997cb98d940c6cff770bf53341da8f197644a8beda0a5140048ac6859d0ad4c19bf88fe19a8b1adf29c40c7123b6e91db3d6a75edd72a10b853e8f1866f2af62b70cc1218681d67d3c6235a574e6513a35d8d0d9b49f092583fd4de139ef76c4bb75f31cfb92d38b74384bb1c4fb2b59451720663c0060599d5d67d1175f68b739a55060518beb388944305a9ae84d750812f2e247759b2c8d63b85258190ef03007ee01a077ca6c7320b96d487a50ab36d3d8511a657bc8b37fdcf161ae4efef3216e713d0d9399db386141a2a512ee4e598046a07a1c9ccd5e4a81b8be8200753988700b008443976ba388733af86454d87fbde1d2606198ac3b67319174f5b7bcb3a08471b1efff8a3ceab93bfbb236bd465138ea8e3b3677cef60aab63dd2ccad6c3978da2953a320f024d9579390c2010ea0f1b560aa6ae60cff3436ef8e4c9c5f29a619ccda13cfd698fecfe8265aa5e5d173b0cf7263c1b7b844e424f5bf8d498e17ace98ad93ffb4ac600b89818214366b7abbc588d74a58b9e820be2a66d77753a5c43ded03d4a65cddd067b65984bc014e2143031d8195a403c4b558f10163102adbbaf09d3748ef6f984b3c23e51eb60b57785b2d740d0ee52b8391025ddd44621f5fe2639f4a6434c6b59a9406b15c0f74bd2494b403bbdb6645a368fc290fe14394a7933aa128686f9113aca8166c01422bf9846951c2916f86e1eb4694074012360797b331c423df3453fa47142baf359ae25e27ec38cab499642fe052c49f1a9362fa1091d7062fa811bdbdbd8805c4a8246aeaa80c06d117bcea061d4fd193824c0efc066d02d99d3f847e4c55d59567c5dd4381ab2cbdae0c00c07c7733660fbb7da06a7d0111d07f1fbd848be98a4c5e6a2e4247ba372747bb87cceb6e3526613f5faa04d8f67e70e7d636e3eeaeaea275335d135f5e6fb900d7f24a766e275e635105515224d66ad83316f9c8a4d8d238b1f5c228c33b8ca09fb5bcaa868d62091301a05dedd90519859e510eaa91be526b8b448ae0641c638dd413d700ae1d7b29a72043421bfc7d264eb44acba21b3b2c139ef89dc28398d96555ce0bb734a54080da1101325c471a6d3e9b1f345bc3e254a80ee0b97e37bfd1460489a6b04396f04666365773e01068564c961cc8439142df451a6149547ff5196e79adb072e9823d847cdf077932bd3aa9eab49f7633d6bab7954bd58204da5e27a49d20b624cc943a4fa05ad493bd7646bb171ddfb7b2a2dba6766ddae9fa476857f604276dc282ed0ef2ed2353c1859aa5b3eeb7660322d994a722b144869d4501f4ab30083bb59a8e892e515b08a45605aa0eaba1521040ae461dbf887cb39883f91416f7b7292485a04555ff3b968c9b529aee67b33658e7ad91bfa564dc226924696467db2dd34d3ccc3ef2fb94fc3f3ed6aca8bdce7da8d0deca672c4606744cc1d0dde04801c9092c0ac809757069820b105c3a2e22240146125992c0924401224046046c045070f236dc121fe5f99227ce09e9e544da8caca47c383f7179ba8f5727ed4b1fab34767fe6448a14b7f9544f3fead959154b9ed3be664cbff9431306c52b595af68fddf781c0100478bafb0161881e30c503560ff0961c08d24cc50158440ed0c1010740020e24bc20b1457232ee7a1f54a98fe438e9f93aed572e5baef26c57b8367d728a667bf0f793c51f4c84668748acd2fb61acdaafaa62415bc0e846e1d3c915a5666ff0847dd01120101db18586b94a85016e30200aaf4e7b412ba3cd5e9667364f236c60841546e0608407458029224b112922f610115101226c20c20084488e73107c6fce4a1cf7a549abd34b2e977826c22e8539084ea11fce7148388fe7cde9743a39be937e2a49f291739c9fb2ad20587bdc8986a8221ae2c90260b080072c00ca0246d0f2012d5a24d789b8e4c4e60567719c934c9d887dac130cc379ddc336bb6847539df553b905e75f391babf5c4c7a17bff2d2d4814c0474b0540a0a5375f2ff916a7a300a2627622ee400318e579f42504979410ac996d09814277cb20f8e8ee20c27477105a8260757eccc395da9ced70258851771046ba3b4b1852967066c76ec49385004090d1dd97d6c86019082a80e8e96effe1901fbe744bef5259fe3eebd5e9392ac7359d7bb4fb21ec1fa674aa3eb6321cdcf29e8a0dcaf96c833c9547bb4ac5ee8c5c46d9c8337aed4cd7c6cc97d5c0645b6b5c24d8aad59e74cd4877e895aecc886861c24aeb4263d19ad815ed3195213ae4fd6bc3da9c894e883ba28c23674094833211dc05be828ddc302df3c4620e7ee2429a453b5a192df45269ec7c4633a8aa368b9dcdb6ca0f9cb21f3bb73e547b49106181038b115872c05280f004a113e18d3dd34dc28eb3c9b91f9ab2f14bb14a3d11847975c6ea04c319c5d43f951459cef6d85275a346517f2a0a21c42c88e34bfc26c539f668772d376b6266846816ce56005b008ad1248c83e34bbc5af76807068152c80fa12e84b83489341a8d13cf07aded3c554af9c0870f21f0010b1fbaf8e012f98000ca0735d385f27493582c59be14046dc6de7f95385397e121b3802c48e62466a64937a31f12a60f0a5d4b2b4dc7314e147be133e40b236b73e6faf9017ad9784865b5e953e9fd42f8325ecb9f3c403c30bc2fddfda078393749d0f47debfec3aa8589d793e5fc1786a95746044301ac03302360413010ba3a3a087437cc40261cb308d17cd24df2f125ee13b3a02f719f6b4dce999cb332da0dad978df9cca35de74f7321d8ec3ce6258f764ead0f7eedf779d21bda1b863ef326f79c632aab7bcf55c149a0bb456811778488bb11711cbcc810bdaa78bde8d5a4bb4923b7823dda3d38f21b37b993acf812bfb1329a7bb4f3e88d9f386cc3fb58fc3c7aad8f168f371fb4a8873c443dd4d143047a78d28309b25aff6a3d309cd1f93c1c77bf1b41b1d6546dfa481c89a78fc4cea42543eabaefe5b8ac0fab14bf10bd923496ae1df9ac96e6bc475bb16a6f15394e9ac7aabdb46c87b04fefbdbff8a9f43ed277e3f41939ca14e428933fd88936c771162d94ceef08baf4a8d795b0f73e82f4867854e355d15e4c459b7229dff368e75030ccbffb75e2b80ca9ec61d5c21c4cb96479f326db950fcbae3ccb52ddf7e84d77dfae3ad0810b9a34b1e9f0c7ea83e094c13c804138fb8fd6de0311788fc5a1cc3e677c2dcda148916223dfdeffe103052ce9fea0bdf76c2b2a8a57a9900c26daa04aa778f4a63be8c00f548e74cb19755c938728987f8a8b4caf5c61a46b8b5db9381714d9e2a2f56a9d8062009404d0490464e4b395ba0ccf8c9d7a7ead93ec9d3ec2359ea3f2ef5a3884c1a113e120452c43badb8616b13ec0128234c21e7d8d2f743a614e72249bd1cfccc2becb5872787c210e8f5a727ca125ce79aa0f47d7f8533821ee552de7387f4c06bbf3b18f7756dad1f085c617c235ffb88a4b8fcaae5505a5ec6afc291e1e7f8a5d71e0428e77fb8cddd24de3cdee9f8b58a0bb4805babb8322527453e0e9cddd45a0e82ef24477912edd459ce82ed2448b7abe887aa228c2447791253ae82213e8ee16f55869491a7dcf911cd5943c5aa6eece144c4553580d4e589da229479878fff7bba1cc0d1f70d5deab37b0a09a43f500950caa23ddfd5f53a1e8221e2c229e134f09dd2db9da7b221bb8d8f036dcb0f38768678f9d28ba772afd1fecfd4cd5d6f912e9cca11346e708918e8f28c7e2927fd44f1ce72692e9efe895ad05c257ec6674ac1ef8b21d51ce037264a21c118e19221c287070ba5b621a5a93ad7e729334fd1d414c6d8e94b952d9aeb25de5fa75ceeeb33a109c134437b56e59bea9a1adc56ef18d072932ba25c9fb210aa69048ed744bd21005472914aa86224435b46a685102b248409504348a0b54901443445234d02db3b5d7c7aefe481094c5a8c44efbfaf232fe8eb34efb8aad95c1ea77b14a63b1097e9ed79b346962634d3f13412b8b51997ff793e3beb33e633ee6c7a2575a9b3e2956ce2a056483bc36497e9c840452189dd96a610f7a75563a921fab3449f21238f2d3e7c73eb6dcb6ac759170e4a60b7efa589cac1fa23da82879be3cd46a6543770b22a2010c0d4bd05044e32b69b8c24486275fba5b067c25936a297e427a1200af52212f5918956e223608a0b8d26c9dd2d95a20da0402e795a21954f04af195e03c11e1a1453180931bc13afdb3a27f9e319af10f552adaf18a76f410420841049bb91042084184fbe3041d9c221866501ffc4ac1aa1a6133f63dd8fbd3ebb5fa51b58074825e3a36a4807e5cadd7ebd45d44025cbadb02222783889cc8f172e2019193251a09f56b339eb04ab31e0add3d52d227f4d022271d8c2ff40227cc76165628d111b011ea18a48db43181f374224202a9454d5410562a20be92a6aa6911933cbadba39305fed0f784d6f5dd2b63953209c5f766b0daccf8f1952fef69a5590fb41656eddfd7f7baaffcf8951f0b590bbe62955a7c6d6dce1e56a785bd32b6e18b6665f8656b7de5c7b2ec51daeb653059ce8ff1cb82a26767afef0ebdc609d6e6ec15cec4d7ab366795fe0f1463fb0a5fafda9cbdc299f8ca8f5f60ceaf58a5d90ee5c723ec85f10cc7ae7bc1ea88e72c3fae31d37e02fa0102d271244890d45021aa99a2668ba8464bbfeebf98f8c97b265804c32be257495473c5a54891d24d44881a23f73e91dadd4a5ae442095c00c3052faf4a5f3358ed749ac16a22174017a60b51fa054e3f95fc54e9bffe8ae1b52db8d182979699d2be5e51d482ace5086698a885510b46442cdcd13da63ccf4b791ece5f91256221ec160b1e7b900ed13b61f8278e48c919571226d787fd2d81a012991429a941a4c4c311253103d7548a9ac1463c9d5c323c794070e220e9800889456212391eeec5552237d22d39f0f1bce1a6ac364fcc855486aba514662748b9efaf98c5cfdf845758c00a36a2153a68f9511f3b0b82a2544c10611b8017fe5dffce453b72afcfbe94f80bce71bec4390ebfd0004a5b09876c25a4b195d0c55602d82d93244992c4821674d7cf0f904e6f347b6c341ca0b1344fba5b7ed664aa2e9c4d8a6debb6249bc80e51053691119b282545189e53848d1c571a6f4698bda183d255c55f70972f71d87495db0c9beecdcee78b2348a51c276d04a7b492f2399d66b011efcfc7f571a633d8888ee96c362587f1d31d973edeb7ab56b6ab6c57decf1b222f4c49e3c35e7d7a77803611c6fc26c297ba8950448bd0a465fed133dd422833532178e99ecd97b94208b7109e74b38ccc61abeb3322da40f8a34bde8390c40602d72d39aea5e3a372b90ed08f8faf7e3c47a7a72785e33a372d15cf08cade40e060fb6004db07446c1ff4c8cf3e786dbe1fce97c15c06ab0f72fea9360fe4d83c3862f30001d582f6e6179a7486e39ce1b14e6f5a3094fdb0ca7695a58f6e12ca090ce2cfe61572ec5d0ba3b9d24ac1efb3a758a5b14ab722bf15e9166335bd7130a6370ea2e8ee4ee1d07eb571f0a4e5b5ee04a7372266e846a48b5d11a961eb33537a6b2f9396da9adb7ad48790e93cd75428ee3ac48be81019edbf439eb4c4a4bf7636f2b14e43ce1862869c79a2a2140202212120240b4232212b0c728241881824ca2047ba256792f541534d071dea0f084e5fe2add10fc771b464a9d0cf8f4bce86f311a45e52dda0e7064b6e40820d3c6003236cd044da113455eb25416e20c815825040101e041905628340be049243202e0402c81840a400440648097f8cf107157fb46a60480dfaa8c11435a8520302f84186bfb0e43f0afac924cedcc6c64f3f4c546e92a456cc82a31f6ee49f75c1c119861326bd552ad51f374913959668c791535b55272ebfa89b38cc9538cec64ddccce347fd50a10f1af491823e20d0074ac4471e2d7174d061f4231f9c43144882736886f492468e5f2615ceb48aa4d1e8b34b3c06cee574ecb22bdaef58ebc24fafad2abba2d91e6b5d556ad3c76b10dc60a51b952bb5e1cb68d7a2706dfac428ae74ce6450c31e7cf41e6284f0dca3d6dd7b5849ed319a578f32dd9daf1e60baf508bb537ac83cccd039b3430fd489ad3cc63a5de251a6f11083c797ff1d3cb6c8ba1b0f9e6e3c8c786ec64c9b1923cd8431c3a55d96325383193773479996774021affd4418cca2469d8851a828357b83ea441c032f062ac460043bf2b0c3047670c08e1eec28810302f2255e63c597b895fcad8ff6352ce56fc14008062f18c05087993a26504768f240eb1c8b35fa21d1be8e1cd7e04ab9dafd8dc5a68f15d391023ab2d081a2830597989a438c39642dc13265c43254ca74f0022d5e70e5747271336eccb6de0f72c9715ee55c70870bc2b4cc51b9a0002de0a3bbe510f87886e76dc19516004024072172a8400e2d46d0542d16b3245d3b720914072158c461250e2870c4008e0ac071e1c8e96eca0367bfaadae1e4a128cb3973d2bef1c71b3178238937bc6ece3fdb89587622f6ff38cec74ec464c420a30519069009824c0b6ee4e1461426ef4e19d7e25abec4bdbf7f670a9cb8e6ce0771dca0c10d16dab8a38d10b4e1431b2c74cbeeff63c11616c05840031b3760438e6ece4d775ecf4bad408f15845941162b1842b40205ac008715e8acc1c71a195883893578d6b85143066a98d192f49e8599382b24efbd91896485e338eeff93a451382fad8a9234ca1f93a4113e996c167d98e1ff17fbf951ff2fa7a6abe1850817a793ab137177112f1eabb4549ad5a68fcb31e7bfe1b4f987896ae53247e5753abe1fca9ba3f21ad8fc3a114b18c5f3660280e3dc6669670e5258152d0c9cdfe1e931dae18b4b94a6bce29a9fcd9aa4137112d0743f143165420b1d3ee5a7d27c3f4c75622bdb95f7bfb31a856034b7ea0f511b3e763b2f7f34e7da9d464335826e2cdaaff65e1d11079aedf93c733c6b6d78b09b1e9dacff1d9497485ec2a828f6ab2afb559aaa4d1f5c9b3ed5d28ced575540ddd33c140f4d9c389427e20edf2b8c85209db3cf282f91669e395e9a797a9f2dbde08c3d38f3cc019fee9cc08c336690e97e583523ccca0c2dddb23383d59d9b5102949f4dd8df98804bf77f26b02b1374778b4a20477797c0012508bb5b7ac6a24ba64ac06a598251b7c435659ce996658c916510e1d4557baf8c26e3036464e996938643c60924c82997233033022e23a041047b888009114811d38798294462761013050bc16808ab1fa320f5fc452f4912af76ac730449ddc474ce32add1ec2c147d04639576d607af8a34973f44f3b59852a712823442904508b474b73c713a63dc314619636819e38e914277cf14089000410a042331f210430d31821043d65dfaff706c5619e7265952b9182398399d5cdcf4301c10462a8c145a56f14bd9ebd7e62902030c18428031e58b425a9e388fbe3837c1fea3f687702af5f1dabc92ab74fa7c681d4fd97fb1e995663a695266b1f331747c81de03a90c074f1e41bee8dcfd7f5eb5ddcdb52f7aaf3c5f59b4e3b579b26eb0f8fabf5f07bc65e7c5182fc0bc17b56ee9857777efbd77a639e0a59b031c079e7477e354177c48521763641716e882852d78b3684b59ecba68b20133366fa0cb68035624c91bf90662e8ee06a307982ee198a59d8191cdc034693002683969de7b95c21ee8c6fb5ca94f152fcff081b0edc958ccf19e66bdaaa301ae6f3430ea961c1765b800d3dd5c68e9961c17353817475a5a9bb760b205989b2d72ca03edfffd5eb4afa7934b0b3fb498420b1f2d485a8c90051ff58a321848413a1ff4af3272dbc40604e77f74d2b2e892458fc4b25cedcc61a85531dd3a2998ca6284c598ee96250ec3664d078b2b5820c9001addf231154792a3e34ae1e800b17472f0c4d462104a068ec8c095965cb6f6728ee9fd02c617ef8be88a30ae98c01530d115ad2b38b0220b2b5a1828040362b478f368bacd4e1a95f0943908729e4d2d2961f9bdf4b139d619fe0d4b423e6fe7a53c65f9f56037fdd25c1f035b3070a5a5ebe707483eac9b54aae0a30a0f5451812a78a412e9a79fd1dc020d344899100f3bfc6cb6a838830a0b50b103150198e20d792dc795a6ec3bc7b4e6de1d8eab4d1f59412bab4d9f5a2dc5ef15c9572b34343f9f37c77d6673b6372ec5fcb171ceb08b7654b96cd91cf7faa13d09617abdd26c9ea21d795c7affe2fc3f7bff07fac20882f3ef0b487e807474f0558ac7e5403aae940e900dae7323eb8736fc172a320712cf92c5bd772928cf92c549234ce5fffd5ce2d95cb914fa5b9a2d508e60b59c8bd8e65c39fcf8fbec7bf3feecc6392e07e738ce837047a1669e392c2fa1a2449951592b9c3e52dcdd8170f7076938b3305b398ed371259ef37b12675a451751a04604851cdd2d6b6afce4d157097f7fbdbb6d8ba078f9dfc462776bc9de5ca9e88939badb6f80c64c3d2a62a13f4eaf7e58d3d1999f833dd0f2e0b14e1f1d787ae89e79e6782a8c8560b64708667be6cd359dd3e90f226c74a981081a5d4660e5e0c418e9d1ae8a135c38c0c109568e4ad4040c9a6802e4e1ca0e57bca69ad89818434896bd173195a0c8048b32d1b0259e5882d5dd3256e9b5381ee6444bf804ca4c5a6a0236a8284a9c40093052022990c004441290c205102e01b89bfed9fbd9e2107cd9d8e16e22165842688926233ce44e848923580831819efe6c8346f04e1d6b5d78acd3a787a7bb79e8232c2ca899cd75ca58afa16d024e26d081127d48d2c84923cff2bbd9cd3bc3ee224d8e787184179e124b74b71230256c50228a12a56ee9253cbe908736bb7b4d5461013e9c077ce54b024de0941318726876853d7a83b10e1e7f8a87bdf7bc9475618c73ffbfd9c2deffaaaaec5755a9ef06650bb6aeddb94f05c72aade265e1c9ba3fbb3c21156b81fe9bb852c1e34ff94bf3035917c64f6b3fa397952d2bd77e956bbf82e1dcb0329e3d9e97ab686bd327e3a7e09d3af8afc549619bc5149e197f3f3ff86578f278aa7927ebff52e9c1189c58e71fe3f1a7b4649956a9a205cab55fe11c8cbf7e9e3d301beab0f053fca00884c79f821fd30944fbd58321bd2eeb52e1c99331edc119d39ecf36e81b62650bb654b55fd5ef01c1948ae504062ad6a5338359c9f567d6e77472d16c456284040a0d10d380dc80043480c9962d586ca1b2a586ee965c7efcba0f7aa5a713cde1fcb32397b091574bbd3a6ddc44aa3f78a4e2fc3b6eecba29c353167a691c41a61ba3a2a07144041a7bfe5d695e31e5d7ee38d8515c5fe85a1a0d5b99c46238fd851726ed6f1210a284f07409e1998de0d2dd75c28c08db0856771167bafb22bcf4f4eac7685fff7a1145542a449ce9ee861121a6674889e8d2445831552b122143f75c09e1e9420d61c6105e86a8756a082bdd728851778f2016ed6cac0b00a4f1cceedd677126aef39a5c7fc94c9cd107bb19c390e9a68a310c39cae4300c09e139678fcb6a5de5194f5655e1d855095da48f1aace86ed4cfe68aa24e2718fdd95c7de8d1170ae58af26028baa2c03e2808979ca71ab92c66647140a6b3d9ff586b0308a6b2f0c8f185565948dd2a208a00a20362861fcafcb046733a4c74a64c19fd702fc9b94e7df035720e8f3f859ba2e34b7cca0975338e32668ac150966b9f72c9a15c513c15878a723f0ce7adc271fed9e9f7f397e25ab9f62b0ea4f39b13e3877df539a5e7d1d9083a08ceef692921ebb8c63d21389863144310339480a115864ee8f6d3c8fde43cf86907262626b22ca6ea832ffce24189e02594979e88282f3d1185e657c1afe3a9ee3f6b057ee6babb57992727e9d7d0df101382c574f7165c2d3672c974775f2fd96fea8ebab198e90d8b19d2fb98a7b06ce9ce292c1c9651876760bf85645261975087fc2defbd6c57764bd7afd65ab1ab7ac66e954c6ff54b0dfb6b0d5deb084fd9cc4c63bacdcce8eef7e66cd6a5bb61332ddd3d63cd9a7477c72ac5332360990d0cb38135d00a78a4a577edf74d9750194261cb92f7140bf174bf504d7777100a85b29705821367a36dd02fd4b551106476c82220c341a642ac8e9803624fba2537e71077ed4e0832049bdd730cd2f999467004bf2f1f958fc9c3f1497c942128b4e4fddff78ef074f038807501e30136c2d6ddd149a0cb9d0a538fd9c436793ccfb6565a835f9673155fe1fccbb93319f998a9ad26f7d35f3ccae1bcd83829389e963093bfc67869e0e5bde4abbb9bc3970b22058d826cfe20ef837a1043e23b1fc4e961d6030d3c0cc2c317c9916c707e36318cd2b2f350802b28d8ae88b962afd8ec10c8b6831c5b768861dba1051dd8e896a4eb6eaa73caf2c83952f85d4d8d205792e129c33456a957eda792de0f3d3875c0b2e960ca410639886959c2adee0e406f3954d972b0b1f2022b18b062849518ba9b23d978a6bfa1ad927626d30fd52a68545162ab724495203aa408926d413c41456a7aa322474bce237123c7f531950550b9814a0aae31ddd25a110b9412471afd385f98da20570fae17b6561e2d32cdbd773aa15c514e2797e2211772402600ba40326c4034388800872d383861c9c1da8235c482c212fd0cf253c5f643c4cfea47002b3dd05861b1adaed8565bba5be2299baeafc6e8b59fa5bdf0c20f8176a8521fe7ac66c8de1fb226d3c9abf353556e82554a5c53332862935feb25d3e95349516f2b29dbca880f191f928d2bf9fef69ce939a347899e1e2553d69892659b024e51e1863cb61bbc9072d2efc4716ecadc73ee92f3e16ee8b9e1007ba8c868f9592097655aadbbbcbf34ccae6ab2f1ccc193828d270c4f8ca7890d6f6c3658d12dabb83f063a55919c17ab9e05ede72e49e57360f41fcf07bd4e18787fc87a9d9fc5947f9f05adc591a66be9dc91a68ce7e7b3ce58a55e925fe54cb44112a433d777fcf9e6affe5dacd2cf4afcd9f6486f82933482cdaa2367b5d77abdb876e07cd2c839ee63b3bb33e613a45f6b87a5f26b3d9c899eaf7e5a3738e65c3a258d26cdbd6b6138b49705e3dce4d73a141d3cabb8329e3d9c9bfc947f469b2f9b238873385e58c90e81600a3fa1858efb42757aed3d9d9d54ad5335391d9742b3aba2d7f9340bce2934ff9bd84bffcd16b6988a4bfff9b9c54e1ad16c4fac528ca9cfdfd8950c4f1ebbf2dee60f8a559ae9acf2d5aeae5d61af8a3b76a5aa76e57d1852f15e069b0f44b33d19530e3e48800a9d455baf98f1382bfe718e20385d2308cefcd90679f577ea8ffdc0996938611e930e4765c34f0feab30d1aa170b5b85a8a838a559a93617f690efe6c836ad3275669b6414230dbf3e31c67cd140c5bde9d5eb543927bbd38b719366192d4f252d028d3d9ccc2feb26478ca783edba1bf2c3033fcd1db0c6bc86d862e2ed49a41d633f46c338cda4f251fc5ee74c2b97e8d558aa9cc00e4e37367b34d0618b4f7322c860ee4e39346163264e9cf62a655ba9b059b0c2fc86044fac991544bff2686337ec2c9e24f55ed00057d376f887431845b0c3bf4bdaf170c62361836189edc1fb2d7f3944181e1484b2766743bf1d2727322eb6e127a73b2729282cabb3f6441d002e57ac558a59bcd173632f9b26c53436f362834d9a355f4d5644b1304302984c9164c74605292b37fef5fc8e4dd1d8eab5edd640c3609856475cba73e45d6662ae3bd09c9564ac15612bb1b84de4ab5845332c0b6448f255e5a8e935602a7ffcc03c5927c494b292e35fa7153e75ac26d4b6478e105d241e97dd4592fcbb85ef146d62b769825b1ff10f5daf4aabd9142b0d9a5fcbd5a73775c8e309b71b6ab92cf0a63e7b95efbcda83f986baa89f5aa7117c6b8c0c58527dd021f3d2d78d12dbdad851a7a48a70514ba657d217b3bc77463c14cb6950530b5396321ecee66a18992322f7329f1925262a5fb679b9291bdff439232ed3db65b122f8d3feb38894cf4fc491c89993a6148b2e851ccd8821b920178199b7771968bb0ad304692fcbbff96cb4eb5ad30c4b6c292ed00650e00c57600d6014a90a21dddc7cefb12fe6bbd3f8da095d192a8b0840a3d9b0a2cf496c217296049c10006b8c300670c6100ba190077330b4b92c4e756002e5b015c5b01986c04b86323801504e808308224914612a4f3abd639ce813614ac6c2878b09d30c809569cc0da4e706133818dcd042bba1b87de4c081e258d63f7e1ccc24a392a532762efaf7f873d7ae392f443e014b3380a27787fc8ced914edd799417146b105c3f7464e93421f297ca149c1459342025a7a6f39ff8e8e60b5ae6cc1d67d16ce166ce1cfba1229ce31718e7399e5b437738e2994268e69d8f256939ab0890dc9d48978e4349d9cc4ab496234574b4bf62fcbaec41f29b6e0a25b040274f7d6cd4102da4b0950562768e916cd09329a138ecc11aca2ad31a1ccd39810c6042e3426d098902447e5a00d4928afd229137b309d570946d0947085a60404d0d0044243c346d3d06c34db984d8a6dd26c354cdb5589556ac2ae9f9c5c298d88494dd3888cd01c2983e64812475e344748a011400b680440021a015421001d680440a209001fddeeeef5f59c9be4ec4ecf504823d28814ab23479ddc439d3eebbd38f9fa6a572fecfac9b13401b84213809d00884043c219249080041f4830d18c5007cd082a18618866041aba1b1545725ead9bfe86126731acd42b758c8a22b389f3799ff3d4a95acae970f8f3c42a97a51afdfeb2a4cd39aa1236fd655198e8dfb9cf44bbc2938766c12f5b5610167e74bf5ef3e6dad388f041081da00941d62d71cdbc5962b1d24ca309218ae46107cea3fd8ac6c8194b63240d4963a4a72506a7632f792a10c4a101e1053420904103c2100d082dd07c2047b7ac13068a9f8be68321683e18d90cd60f432e8bf6c565d8d76ab178c38f1c3bb7d98274d25adf0b4ddf61fa42fef1057fd8fcbcc7a4318723c777eeb8c414c4a47184eb4fb6ab79270b0922e3912c9c74b791a6e1c0868608cdf1140d112e4d43a4266988a866302ba7938d52b33763a6b019e2d84dcd3b59340d029a96d1f4d8d98fe3e1bc4e3f84cc215f0ea975f721a536e48eeecea13743226088ac5b7292fb1ffe8672de696a424477cf3b59a158e78338b97aef7d2167ba9030dddd93cb5688acbb0b79424899eec671d09910224612a2a509a92147b511e2ddf3ce709030dd128bd586b4ce99cfec1d64102b3d88ad2f73ddc0109563fa9e857916e7750302d8a08ecd0642d8408633809cc1e2cc0f67a2744bce6bca9938e726c9b94990320429424a102c09d2d3dd32903f02b92210afe5064813804000101d4064d8fe70e38f33b63f84b63f46a8c11735582247c5b9122512ffef30c14a94c81c15931b9738e54a94c81615971c13dad71a58f1230e3f18e00702fa28d307127d38e1c30f3ec4a0b412a9667c594e92c4c159edec7e36c5aa05bd4e18f6f1da3c4be19c39ee7229678a39d9e203870685d0400534e872678eca9b34696263ea44ec778e2a9f77b2aef44683146670831984a1d6028593e6b9cdd33feb0a5d2ec31656c5eb367b1c4996522397ded754b1f33c0b9bd8fbcfc9b65abb7acfe28493d6cab6d64ee28e2dec57bb39a0a9e3093d6ca0c718cf16ecd2ad47a7c71189f330930798ee967984328f267dade771a4f178b9f0f8c04c986ec97123783a99d172ad9926324f2236dca14677fbbc339c7e9f753f9438e3391d67312561c7996e3b5860c707a6bb7bd28259922ec53eef64ad1e6cd5a6cf054c6374df4a63dfbd50b3c3b95a1cfcb4fee0fb42b059a960dca2a3b6d1c1a203853b52decfc1859bc34af71c27486fba7dc1152fa02fa871010c5c00021700e182d3e682520bcc58d102af054a5a600039c8c8e1841c9c1c328e3de2d0228e1a0702e000048e312dbf5a771d4c65385f262f75afce2a0e470a6fd0e00d2e84de18bdf19121c10d3cdcd8c20d1fdce87143006e74d086196d7820b7b16a63041698d1dd5e6947bae0250ed312c7dd894dd7b2c0002c38c2061a6c20c1c68c0db9023e5680c689f36bd728640d35d610625b63688d19d638a2460cd4a0428d2d6aeca8e1c19834c62431a6966b1f942489cd3c70dc0e930edd49057c2f5d173615c4a1822854b0830a6648c38f3458b0441a39a48142b7bb80298ed7b72baf521c9982560a5c48810968b08186043ce80d8d07a0c1838608679839638bed0c2f67c0ce98a15b8e9c9b4c1214bf2449dc665a53feb29c2489d0b534d67f7447cadaf4b1d77ea0381b715c7ab62bfc148a23ac23dd1d6c0ce7cc7b338e74bb7bf3062542c94ba76a796aef8d37432c703ed0e9d4dd47a1807278a244817d500794c3732dceca4b3c51fe5a9cffbb732dceb5df0b63cf9b3ff3cc61618c7acfe2bc6761b4af18cb4420a1485ec2f95bde87f3c25a9ec50992e1297b554be7cb669edefdf0666befebaf88e7fd211b7aaa97fdaaea65f37c65d13e88fa6b7144fb7a85a20c4f1e184f946bafc5a8261dee399d4e27d80f65da657a831a3345f144c9310c9d4e42b00d74b7506f62c694f044b7f742f36932481bd9c484ab15c3851824a4f7fea18561afd4b33fb8135b33cf1c9ca7351c5217c63af97d5c40df0ffe7efe07da1a27f84018e3fa17e7fae1ecf2a430fe1e488627cf78f39ec5c1d7ee00e1bf2c3cfef7f3fd604cff77c6fb4314fc1c9cfb5ea582c349fb7ec49d16ad32d6ec65613cef6461fc2dfc18a7c2e983bdf93c38e7fbb15f558591a5bbc3d8610ba315460c337bbf3046e86e30fe00a34cfb090c1064d1be3630200046adbbfd54ea36811e2300a34976e18b177c01822fc034beb2d299bf68e20b24fce4273c71ee7f9e1796adbdd95a209f3b9b7d6b44953c95975051b20d42792a4f357ecb9b161c67e85117ec15e25c7f86a3b37d608bee961245743cf195b01f7a65da7dc0eb9e49835a1f287960906e3cfe94589d402dd47da52380e50263746145acce0bc5c64d2f284ebc7f79df4c74036a1d00b0b70ec8ee4a3fd321da54b409c0682b9acb02da0a0d1debaee916ea8d03621a5f4904895237912188408083194e1cd874f7d75b173730611b56f9431dfea1f9e0ec3b224a109162db40972c6bc84008de00107ee201f641efd915ea9bdf1305f6411b6809060ccd1b98d0d25c604656469b50bc0d8c06dca8f91967333107d35a588b06b89406569e37b938011710e0c28acde30b7161c2b6c5192fb58506b660628b1a24871fc839c738bf6fa14508b4e032b598a2c5a8bb679f8518592c91c5b7cc75e6da0fd9192b9cb496e43c6f725ec3496b495c827d907bef6a0aa4d16d2bfe118b2f58b8b0709281324d1a6520c4995a9c01d21733dd92c4e1897f1cb9cf073b920c4fd9e8cb966e285f6cf0bc2bce20a15780690e7ff68a70bbc2ca0c539f2b9e747b7f6d8d5d81425b41c6ad08d35670692b74ba5b8ee09d8f42a15451420c748046154b54a165aba24a151c50c10615425091372a4a539099828a299298828629885c00cc05b8702cda57e7569ccfca9738cb67f453e74c96290d56479c3f068adfdf09e3c69a923c703b38f81d6772251273391c959707ce28adfe372e6b4865359b972abc5c2f54362f46c06c16b8c2023f5b05ce54c0cb56812a15f0408a36a428629382c916851cddcd5d918bc1a54871d2e9f4d917e7cdbfdca4438ee35296634ba4d7795d024e11574bbb79ad57c79217c5dca2280005ce6c14f0830251e0da9cb158a31fe9bd20652987021400010a35a0006383820b14aee63816e7a613c73d71820e7a7ba28c27b03cb1c2d685902e62da677a27b65c7e639d3397ade3f4da45004eace1c4059cf0c109274e80d0841f4d4cd1c4029ac0e926714e5c0aca890d0bfbfc6792e5d80de78464c3f225eee34bfce65a12e7c4a3f8c8b1ac35b203a8a49496eb20756866000020005310000028405834209009c5a2019dde011400005eb048b46844972892d029848c31320220000000000400f24dae78414e04e71dbce5e52e05b8cb627250b3aff40a2224cba7eb1cefdbd7dad20307558912e05b413acd74c85d3158992d1fba2f01b7f28ac145c72c9f7b8120fd43e48f80e93b9b51a3138e97d1c40827c1db069af9c4e38351d19754798f0187f4450ded53ca0465ad003d8dae25b42223d5e041dfff4db0df531959001290a709a73d082bbd1ce628d8057b13a2d5c0b9eda6af915f8da7f4285809d5053ed11016d45bb155d2818c982233f2451bbd2a2947ab2efadc1c1294c549c932067e89c8e0a564517a391536e6ec6d45bba3c1fdd5389948d99b12842d91f562a3aaa228feaad1da624733f7b6d8f8ae300ac70174e2fbd85224564fc9022499d831bd457f95bb0e00288296974fab280285379f0819d9d374d59c2efb54b901bcff433e4e898707f8455dda0f1b76f7659a3271fbb5a06b534ecad4e2284961964082d22998faee1f526b80508707376d263fd634c4ce65cdc8cde40e75e22d772ea9480059fadfc607e4d6dac6c53722a3a6f4d0e64612b13dec58963b04ece72f7f1eb3163fc0ca05edd9a3c1185fa66603b7c16eeb66ff5ca042b79549c0614d5b23f4882f66eb3b045241f5c8e1bec0440e2e3d082c5fe79b84011ae4ca38ab4cfde3f7dcd80d9483247451377f4a76b71dc5816002109d19ac6a9e7004ba6210df718c0cd7a7ba343880d9870fdc838a73af14ce266c57a02b1a3d081097ad1f2ab6f73848274ff813e192e763017fb55c478d346c6ece4b4b778e81cb714edde03de3014d12b4c41ec53c6dc26ae72b69a817a96b5363236b7217feecbdc9c428be746333c57047b30d5bb972278828c9761c17a4794019c2f22feeb55f6411abedc985b29c61ea1e5fb7df71059ecc5c8ec5a609cc23f5cfec9a92876a89d94aba7364a05614b622de41197d9874b211f83154f4972860fcd54a7563285bcd20e16fc9621a475bd4704026117f83cb6bd2758d041723b4817e0c422d9ae42668d9885ccbf3f6aa5431f7c123baa3f8df763e9d2c03fa4b8daf237ef69a9a8b2768c29b26f280a9a57ea8884895bdac139b9fec5f298abe2e5c6f09a49f5d5a317ea7cb27aa104ecebe2d46e7088e99e75ffe5c1a3db7ac3e5f7d3d3c76c61f7e2d7903471b11a8f07222624685c007ca2cf76280f3ee3ab32669a1e8142b01d3524f4c5ae86bb676d027d20611e31f6554a1973beb118509f2fcc11ef81ba334f69dc12b344aac04f08e5938ae7e1bf574aee4817185aa30984afbd8d5f349fcd94973eee03d9e43b686c54d1c58db519f472716bed5fdbe8c19ef092b97941f90b52c91727aa23407e0aa4b8021ad29c45d6a792e383c8798e497001f0697d4edc37f36421bb12f03c72d147c99e83a820b9fa056c1470eeb18a2913403181af912bd6969794a29226cd845b8e31191c6772c3e0374259a9798731895ec522eec5ae43d77fc28a5a27213e317c2a95b8876fd0bf371e8d99d5e749767fb6d5c360130c03430828f9a6e08b2bc666f5c32a9e7bb2fcc7143c9546e33b69cd4738b0fac6af3260e085f1f75f36a5b3383d5ba991ce8818b076bfef8856fe03e369af3917df7eebfaff38481fae15635ab2369632314be98b9dea452af47c57f5a9e2e4ed6644400815323f51a8876a8496d7cde939f08ec54615ca32e154350683249a8857a5f110483e33ba93b784348f253674d46574fa49649f84f9531f079fc7873b730fb8e64878b943202cb01a07d043314f6e58d3c5bd40c48aefdc4bff2f1404c777b2d94860449fe3bbc93af1715ff9b23aae3622f478e278ddaeb441a770bc23aae0ca4c918adda712cad62a3acfdea7e65584886543088ca0d3ee43a89c69f534a645d1910fa8fdcc3129443f4b38f9aeea58b674a77d05a3909da743d3066ef94c278a149fc48e7698a1cc0c0e7384ce2d45c52c318177a25c1e16ecb6bf6fac49b370309d49fdadbac77b1abacfecd35e1656048ac10192c8a6bcd23214a341c01e5c491e47093c47884c12c502be2df4660dabba038e3886a4f21c22d695fc2c0be318a6f27111b90da01c85c010c6106d61dd7face4e9fb14367c7d9d4c99763e5500e786b8d4232bc00d1cb89b697fac5042bfbf3fe1c248e4296cab41cb7d65ed75c8deca6c25eb4c28e5954ab2e610b011ebef8ef47ae2bb4d7021bd82f0063764b5955f7ba20daec54492ed103f2463e9cabb177dad58ebe7d1058807e1f17d3a74487352fcd5ab23012006038827d74779358ada4125413fa0ee1abf94d97291eeb01f60dbedd54973d78a4d70fcc2374c3853c4899549b7c0f0037f29b3636efa4a23965d3265d3f823a516cc54b12a5516e6f0164a512bce1e676de685c08d328c8d65e520e46fce9c4ce62ae9422172fb13deb0a74b0757aa0afe9e6dbafb14cbbcca18c39858d4f1af65c7212ff9e8dff8a75650aa6232bc5a007fd0a08a8f6d6f0f8d7ca8cb1a5e637574db856f7ea2e59e678eaa595a7e77d8263e913707e9540d2eac97967c6892a8a531e0b75672cdb802aa7477f137faa00506e3441ac2abdcf4758718e88018315789ce7f485396842524a55385cd5576b723abe8cc67f2bd62580d055ed5ed63b02856b46c5f9fb4489fb48b8e48d9aec9a337c519d8a130dfec101cc0294845b4f890c4eb7f91944270c34d575c138cb53adb9ce1471ae07461555cef715fb7b768d61f18d360fc1fc3c78211595e1db86db7470a81adc4f79ca7c5db0618b38f0d100ce4aab54d6c432155ab7e4f03c7d59de3f641e95d77e7509b2a5fcec529ecd3642e0298298c4f356bae0fa0505ac8f08f2ce5bd9cd4ce9a643dec080763e1f8e58f4d95e4fc1daea988b86b62e7052f36e77d73d77af5b32f276d7761473c46f44ac93aea50d433af145e6059d065016b8c9523cda6156a39aeaaa2ce0015386c2f2f33bb7dd207fe4c5591e97091de81d1fca43c027e40b36f693ea4e7c003efa1eb9553df8115868d61e599aaa08f68fc12de18fc040bf116dd11fbd76345da250db11fae4f97fa967787cac2d5170688e23efb61140c16340e79676af54a236914725302b4ab51ff85f9d2e6c31aa412c35d0fc4b67018c2b9bd016a19286ef712774bf85085c1c66bce6277673078c8546774a325008e1b999ef485a534d8bb5e92d570147fc82ae74d5fad0e0f252d915c2ebdfe9c369e7eed479bca622e41d9876c040ecba8674842f44ae44c6c8f2669aae8de55ced3108a1f129f8e751ae7f35adee68d4d43f0f0fbd9433414ac266354a46055c4c8cfaca10df44d08a294c753a221ba7992525658eee5fbe1e852bdb0fc879e358c1a7507731087511164fa57a5865ae65a6d8f03790c60e15ee2d31075380fcf83c5fcc2de13be8de6e384c786563e24328e263821564569684817326084de8bb0f9def88d22ba40a8a979ff85ee3d7ea5238281f06452f9fe04b2c836693caf5fcad50dcd9ce32c71f927f498fa608a256f785a5a664a9d6c6ed7adc849411f05899cc3ced6a1dbfe7425964c6586e40edd00a1cd0ffdc609629e43b31c8f7324d51c6fb4395684799d408b6c463176b7a20b1798b49149afc011fdd7ffb0e20d7fb8fdf32df19432c03b50691aec6fca00dd2020441b95bb1ffb77700bf9a57725964a72163cac329b704d8eee7932686a63cc5181ccfd3a5f44e2b0908e003779896cd3881c0ea327e41484767cbf13ccd15c23f97315a7bc8e6246437e67e083c4f66f0818851e57a4f37f58f22a47a6c02f92bca4868e7f16af6699d78baddf4d13990b0b290ecad10c2123291b8e93c483306623032aea774f6f42f297b209d9d1998446d87ceb1cd41dd0c1e80b7a71813581d846fb70a9096ad01bf421c958319668c5922d3ea351dfdc916964c15cd43a7feb80a56d776f20a7abca0f312632b66523d03e386646d05ba94015a8ed7e35208b262060638fb111149d458c0edbba5ab6c3ef2e940b475f93d411cf3c98b9b77b5cf7965fcaba2c66516c0f1031bbb788b12c74801c7554938f24078e26bc98890dd85dd6b0487692871b2d7fc281e3dc6c52eaac22f43477d2ed1eafd1f4478c8f7d7e5e8f91f8e687e19ed94709d077b8ae3cda429c91b1d91310713c3d2c83460afa0e8df52f1420188e0e8606498fa61e5b329bcc95285afbcdab3614b3dd8e35bd9f5c89b87be427fc1c6598820d09b349fa26839821310133f96eff397138df029dc021fca09caf11543c7978b1fed2d19a73a022542aed5c755b46da0512e0c1bbe1b8728e49d65815d5cb938c73b6295bf361c6f470282afb70d602e5308103b3fa1e0bacafd876c938551bc6bdf1631e47ff13fb6a748bd069dd7bb5b960dd1d6067eae183ce58add9beae9c43a643dca66cd23f27949ab29372735eb4167bf57832bca23c38975797e2af6fa26347dc79236df1abba8d41f2b82363672121636a4365625b4ec528e6af1292c6e9e8bc2b26caa3ba3b9506a2ed85971a82662711162dc46bb1787451d16b08a317352460bc84b5b6f39133253c579332f72fb277be6772b539e781b0c137d3eac782d3abe08757cc829fb2103fa743c456f2853fec365fce5bd85ccfb7dc745b3fdda53d2f885f57da953622dfc9646dbfa90af78707e1d324bf86500be47482e3fd89f56f3bacbe6f12874487fa14e424b6cccc882da0eb286891ced309436629fb0dcb31c785a349fbcd0276207e9b97be9e7bca91507611ff305438dfdd622a46454f599a703956187d376ec6268e9fa2463604485ab37200d9404eb223e245aaccbbb4cea05f8045c5b3afe0cacc75e3503ae633404b2cdcaa922b4b74a338a5c573c091638e456513e0ea5f264f8060fa0790ab606ed40c5d0bafb6f92bf9c36d3241985c8665528687bc94bae9978512e457dae9f3cf0ae91c7afb354406af7cce73c8d8de38dc229c92abdecd2070c2b0ef5da2139791aa3eaa7ba250ab5a71daf6e3ed2c50fb7a287b9bb2a01fe7f4f041005be2a9537c19a1662f1cf191959522362486214b08cf3105f519ec80dfc927ee22fc92d5418456bf2082454223490d3ac1414200e1ae8bbc5c85eb4259ce03c2777f140ebe9fc21be8f08f6adf74ca0286a1905edb17fab0dc0d7ef22fd49360ae90df95f099c5e873293a599942c1ce79fbdffd126ffb3acf5bdc85574b593fb64b56e163db0fcc4fbf7d42cca42953786dc6de73c117231d14a47c4cf6b276932269806c861041edfb468bba531a0c6b92c6ec448d45310ecbb4f53d0f7bd3e9f8b278f0722302a31835c703ef729c3a2155dad9beee8897c598b59e1c0f88d614370b64b12914afc72f3d94e4c6b5469ca78c18cf6f9f0bfd01ba4f4866044da1c7ee7ce3231132c407d4af03040d78b8cec935a12da4d49298ff678bfc0d12a59f1c149f428a08a9fc7082d144f395df8933ff67d49b8d9febaddcf29fa5c93daf668a23360af40cbf1fc393e4077f881c47e188c4f8b546d94954eaccaa595eb103bf847cf0aadb904fc9feb46ad3541d64b7529316e8bd30706f889ac409b06b1a96888c58000507af10c08aca202d264180789b13dbfd2f79e7080251eba04a376b1c03c739060c036dce9bd08f000e4fd4c738be993fc3dfbce6ba08994de697349a26526d21e4bd34ea118f67fc12deb333f6b56e8a1969539478f2308269035ec85eb10636675edb42a43c66b639f0daa9bf833da0b68a534944d9c6f87420f2e5074f7c458a74286f8e1df4a295cc58554f272cc155b0f4e11a0ea221aef16439bd028514e35220403aba2f8c9c80984938d83c873c16d6dbf6d2ebfa4a7a313f23cf76683771ec870ecbfc2bb16070e4f089000884b3a1dbec1b6c4b98c1f8cb3a2d0fc86e75c9e1819ddaf107df5a1ed546be376530f42ede45e195330bf6b70de2d22dc2dd8dcdfb9948a140a041f2cc95ef8565741b089e6abd5ef1320b757f196663ea1ba028a43bb548b09da4882a17b14a8ce9832e11b9bb2e582592d8659bca67b1fd8a1a9b38143af8beffd706142eaad0b02029a413edbf06887be950c554829f43210f06aead842f2b3dbe66486c4812545f7d027325c0fbbd574dbb6a59ceaac72b5ee03c2e62ad4954a1b2dd4ce98a5c7f7edec623b2b9a5b59a6246bc35f13aecac069b05f06190d48d69e57169b0d42796599c9595fad4efb43337955969ba12d1f1678dd52e2e83376f62f7237da576450543500b318f1f4c282f4a958049cd40187e99df3126b1ce4261cc73ef0c61115a9b38e17bc318e36318ea1650a6d3db689376c5b3703c2895092f006b084d4ff3d5059c07176ac5136f879041cd4b2810d58018705fc515fe7bc65a5010e1561a905ff8682d31eaefd8d692f38c4d3c13ce86f6801812faf58b1dfd8b1df56d337b208af530d6d0cff52ab6f447d92e5231ea4fe147c6aec9c3b6d790dde90c6c71821cfdf8eb9a2796dccbdee52de2f630e84d41fefc24368ba3dcd130da66317ad2404dd56cfdda84b83865d1fff9b0f1c30f3bbf92cce665d72ce9d82fd8be51eae641a1f98537b41e1ba835e7b7bf94b0d0886557e22066f38829f5965f9a3818c57f230b8969c04111a3c7c68964a9243178ba275c203ef392eb8137d349efe415d40e8e85a3a152ac5019693bd16441ee2a58c9cbe6595d3f40a38e1fd72b5323136c3e364802baecbd39faa6831ddf7f19f1a7a4d9d36b1479a37b196aeff35cf5bcb17d750593689778d159dc25003225c4991614b6dee9a3e0d1b22fa87569dd0f919c24f1b40a547e4d0c1c3924e1dcc84da32cc9363b4b01f449b17c642a85a87d4bd5a4944684d65de55314e43df05dd7a800e03bd1230b1e1308209659392a29f64337f43eaa8ee798e94e177c34a64a8ed25e061cac2f681297a1f8239bd5154a96d38f1f15de1f7bef2aa17b132c12ff6294b89fde39e7828f08b92ae8eb44be5f8c30327178f73aa06c9b18ffc9ee3a44c52b0cd1925f8e3d0af749cb1c9cf5dfc5d22240197e76b2723ae72c190e3b15ae79462ef4ebd45bbff13e5085ba15601052614769f02f5ae0a47b982eb21f43b81ff2bef73c9b57f68052f5aa84ed9e8ff66e2cbceec45a7bb30b96893e9c4f77b48f523cf61d0d048326dd8985d85ac4b665b4d0eb33736594185eedbef358521bd6ba090762b0910f34ddba0aa55c3a27797ec575a8c68e6ac0772ce916d82e7f16987e3d0e0896f9483928afa18365ac11efe2ce856ad640633cc12ad174b4cf515b1c8091d32d5bdbf3aeba36535a19c1310615dc6315cd651764468feca8b43f0ed8a2f094a572aab43d65ae8af7b876f85c2d9cd84ea2ac29f80977a9da9c37a269238fab03197ea1091b83194d0149589a1c998359c1d57f5787ee0ed8f1bb5849bd695f6f9a9c6fa2327ee6cc723f660cb5a0d6790f166f3e6dec4326b624c75702d41c452470e82ee548f7851b14dd7e148139242a624ef3db4a6f44375c3704e6e10de2faa8d009626201f77d62e6a5a856603cd485790708a22ff29e2c54a1324aeb2f19f0927fec45516f6ac0de29fceb59603802fb33a5ecc7e9cabf33d443866f2f567aaf58fd379e20e2528aec81f49af833587a7124ccd44488e0aeacc48e98ab22365948d8dc2a6a6e8905f1407261995562d5fd7128792448e010eaed7aaaf0e17ef2e87bc68ba3a4b41a4b13559fde40e89bdf3609621615788e52ef89c2141e950344384be06779e30ede2670dadf6139468a5a6d2cc988340d26236feabac162b8ce09c4eba08293b124f13109f5fff68c3c8e6c370ad3cc50e086a9e88417d0e8b5a2426a2a08c98d032147852485f093606e3f7e87fd903e7739244fcb2b04bcc4db372153d08ac09e042910d499e40f7f338756642d3ce9bb449c7c562ea6e4225cf409e104a29545e4d75a026d414b4a8ab3788b40fbc085d2e5348cdda9bd7ae503c45f321f824d16c1dec8e2f38e552e01f1c5126d025eb90c1af25d5ffa70589e3a84f99f13f0f2ca5220217a552803f414f01da4fddc826323aab9f16a7e9c8bb02d2297b64f0b5377f3e73f725bab84e38d384698aa7a963aedcc8161ca98e661056ce4c838c874923372bd489f0f010104de0fce1374c785bc19d6dafb0f7e53c59813745da183d3ccac129599c3be017cfbd4cca851903d092aeb3948f4a70fe4fed28da9add99130354a13a8c0fc6b0737ffc31b481aabf75a6f93c36b98ff7b1ceeb2d3ba333481d08225bb1e0c5d5a57321b94e53e780862407aa09390d0eb9eda0e9e5684ed30c6818c895e332edf206067587d8511dee1cca99abe672ffbdbc9e7782e408e7eda2693676d93adc55334a5121eeda61523adf2ff008c1daf1a02864e19cd21cbd170b6a64961e7ad03637986e4697ba7eebf3fd3654bb404aa80f0675e6f49271bd37656101534ce74a2040adce9ecd505edec5f593f24e0d5f4ee45f019a9ddca4d76950b915dd23945049186126bd06a4cc941bd3ab44c3933079314ce17a223217993d273f78ecbc5b2a7e51c29d303de1ca5a4bdfc887f301d32072b612f1c410544044d7880b9b9480e8ea490f3f9ec19022454e905a82d654b98752301638973adf31dfd84dbecdf4d297251410b008fa29264623a63c420d692372396525ba842a057ae042ba8e121d6c38234f50948d2b0010b108fcc3532b0be23d99b06d6f1f1426c6da85f37574fb163be866636e1287af5be58dfaae0e025827925957af73e35a84450014b11a9aefa3b260728895b2b1200f6e35ba8042118d48fc41631014f7a36875a3b18f14ae6bfe1194fa6ed8258a4621f180f15f6a980cf71cbea1ed9213c660a82ead6d5755cfd9ade79b0e50783bcb23c0273727d5bdbd6ba6650ce35b4ff67d983cde7356aa77e81e4b5e154048480aebf1a45684a03ef32c0eac4c8811dc92efbcd757923ec5896f0f3aa9a7d2c8a20abf5258e5ae40b7f8a81b965c11a2ef8cccfa8ec6c74d1f4a0f4c1d295d735e395445934d6c1ae15f7a88c8b09bb11076d62ddf829ad2750964e851b8e6fc3a702710c67ebe44c9156f4de1a9b8b55b7cb0ba0df28dd1bcf19e2eb0074b7062ab50e8603bd7f5bc22f9a6e4f3ffff9f593663db9c7ecb58ac2082c37c0f918cd1d42e6aa92dd259be02acd65d9b103c64b45e33ee8a7f85918e66b2e6763410f9acb2bfe5c04bfafd165b382ed6a36688077a2139385b6658bd17e5c181437d5b4db8b26e198c16968dc86938c46f093a23fb257ab1f06914fb105036081a98a85aef1a77058e6d09fc4be4d6932b80b1a10c45c5ad6139b536e6a103087f3120dc438968a630843a97a2b0c67690348b786d7e375d71154ec862f0afeaeb3813348146c454629d044e05aad5ec6db9930eeb06b7f8b372f3c73fa1a92ab754043da9e262e0c23d4c16e434c24d3a991ea2c7a02496f9a9b8855bc8cd41326b40416c3e78de02773f68d4370fbe1f120e148d04edd0174031491a858a5268494636a45f3b73a30ebee03e726cc7e0793262b4e38ded0bef93858104872b9bb284b59b660189c00023478be707a7548ec943111cca2f7782d8b8068528a4961b698b15ebb9adb411b0c81cada23a8af130e2480e3cc142e338c53486563a138ece1f38702efc5b479dd75f13fbb1587033a15f19ffbba0e8ccd8d1929f656856d2ee6b0ffa16d188a2b467a5b337307459214ba4298a1970a4ae5d2d827fbbf5269a1cf3a56b670130b72babe7995ef729aa7f6ccf947c5ed2fa8881b894207531715324bf2f9220f58c79cabd9dca6d30a7a7329e3717e379b7a0a1e2dbdcb993a202cb1d002bce920f0b14a339cdc267186a6d984944c342df888c81aa2ad780fcc38d7367fa4757c5ca92a6239ef707d69730a4d5b324477ab1eada0500f02f9896df1d9c0191c96634e994d1d93be6f50c4688f839903a9d4baf2529aff0484406ac7cfd060e7e186df864255d46faf7ea0a02d07996de02d541031384dd02271bb44cfe1fd1e5293e58dbd2ba4d031855eef457f96a69d7fce1d826d00abd881bb7d7bd2501985c59e2819283c3e5e70c3d20f38c71c3c8f5571ef59c1ec88fc5656f4965b99d3ea77dfc5623e11d217c3c1a16280460e91aee3d7ade3199e0dc2ec23b753823b3704563703b5b715285e165335bf318b3d1e0e1ce6c7bf2f92ca9c61bc0bbfed172f2cc9c8fceef2129a214a177aeb81a79dc754588f9ee43bcd0489a76fa8ddfb1585ce60a99908165e4e6ed084e455420ad31b2b2cde3888c9682b6cc997700a69379810efdb420c733c83376974d75621114991bbbd53515b1acf9e14718ccab1d9b9a6d2de0fb35a01c13524649ddc9b33e4f48bf26168a75f7220eee4090d25608cd201e7703fb2d95fa131da35ef33bb52b12f95977c42361ce5f05b6a7dff05df36fd8af3361844471be78402bf4b547ff9d827647a34528820328bb8504c59c4770e8a41dc546e7bbc053d8dbc9d6c68ccd6320329111aa0c04d00e95a74fb831b8e8dc1e38fc84245a993ce78c03edc2a82a73214dd6da850d8ba8876f69743e4686c09680460a7e8a30dd83e5e84b908d11d04257a3fd30fcee39d5c6913284c2294c651ea34997a143dec28486a2714a0e95f0cb9f95ab2973bdf3c7af38f176b8ce2168696280ea9b15a24080f60218e40a4ac8c826993d7180e20989d19624dd157c612246a34ad765c2e641ebf04259807c736cea52feadb631de3460bebdd03aa97861b18a0849e8baa1dcd7979c798b55ed236b6037dce9bcf9bbe683b2ed577a41fd3cfd15298d00134a742ff3b04ce4a682cd786b9f13a76e66d79ea5b992fe73d2a12b2f6fc5fd089abefe60d9a102548404829495367989cec749dccb75fa4afd54f41d6b47188824f1e2f62a8f0234b28d34969e5b5e5f4316148cc4812c32304f4b068ae015d6c81f9a08eb27069ec1db007b47daf3f4686e82f08cb12217166de651d8f06cb574f590cfbee3cb83dce0877f504edbeedc7914195a0f96d6e073dee90a2d730905331be9a6f58475c743af8b3e0a8fdb7da547351927897c795af5793b7b2acb9c7f844ebfb0e69e69061640e66546b123b7234656c4a7b3e8003b92e5f745616dd366e4d6a56cf67a39c05d98882fe7000205094cd86d68a082c68a7814e0cdaf3a9cf83ae66c71101d70d7573b55f7a65cdc86dcbc3d4975974e89eb17a20f9e61684d289abc72802ce795870443ab5ec73ae7c1856f1813aeff9f0242fb77c15960849f111d8ae59be47769e95906da04580e5f82fc57f35c28cc726bb1738b7bdf5ddf16c5208441c9e3e428192bf62160575b7c7dd82345ba0f8a5ac8596be699379f14c7066384f6b9eeb2c6b8d46cb9831f21cd8f7b1b646a7d198f14b722f3f07b2afc7246fac21a64f1253400e9a3a5f4a8038c5250f339c66a6a0040783b328726252b47451208000ae04a5fc384a157d47ad91c4a2914cd380514e42cf99f0660c7b03b4803446ca43ae9fba2e0ee073c9e08ae62ee5fd0bc7115b53cdebf41bdbb0ef03b46369c90799307d243a9c58534d099078d8a1fd4951f57d7ee6991dc772252b4ebb9336af4f022ae95ce5dd4c6db46a7b7bedf2ca2a2da1c5e48d06a5b3ed35600c72c33bfb712b08ffac8703c3669cf9806faaf8a00a94489b104580aca5d6824ab8cc048351410184a4c4665951b9d14789e54e1326fc3e935e96b75a5718f534bda060d543013dc82432e27baa8759f3667f9cddf4bc6260cd3ef93a48c1903dfa1fabc9c8b27708cd1a0191a8ea42f33f58153a770edac0d665f214768bfbe8f065a4c57fcd49da42535eea85405033f32752564be8156973ae58e43308d05c0e6a0455e5b91b47c0754b111baa72ce493f84e3ca38f421c894de8a43bc648a6554b12838d5fadbde721162432788b7e014dd065fd895af9a93a2052fb810091169405940071d1155a4ccc2c2470ca98deab1030f5055c53c2c4354484cc8e61d6bb48732d10a19962b967b959013934b8d0b8a2ce155ee3833ecb52279607a32fa36049500b88a6e41e22d4addf119b457a75978dfef9f2fe23fbb484fcf91a606f7733024fdef001c35a59a4f422336bd0cf3cfb73f91c58a9c06fa0376d25b5063e56b079717f765174e670ce484217f66b9735b580314a95629262fa26b97113a17152c2754a1da7038f8a71fc047ed0b3bd97005a707c0be8b7d071e7ffecc7e32d9b79cf2cd1079ac3bfd9b6ce50d5a0fad72f0da1f86c710ca61bc917b3acbd53dea7948e0ef009a4b0f2cbfaffc93c0203b134bb81439d104b1bc9536d3a29dcf4a0b257d8695d24ee05131921cbd52e792bd11b516e081e1add9dad68c4af9f84d0c586b8902a869c5de89967de3b87a47facbd9f9c7b1f0eb744dafbcf27d42d1655499ebe87f34401295a637f369df80d84d2a06134d8830c73ef766b76c348eb8d33cd7edac3fccd380f005493b6b43338a01720f0c041606a91b2969ea8229d16e8c87058dc5574f387218e64cb81a9ab758735390962c36320f6d2357babb29540b4332c7b53ec99a35d34b6f7472ed683a9a042ac64fbc15956b21da4b5b0241e1dc32ed198c560374626618b5cc35e779b95a37a823414dfed814466cba0023e737b35dbc0d818fa3d768f3aa082303c1548c83faad482291dc18344a7434811aaf435d4556c771b6c4694a79c126d9a1248532a1104cec3a632dd95c221303b42fcd8edabbc0f2121246c64f2329c80e222762c67ab10a426ebbe7f6e125b19d8022d046656adc6ea970c3118930148ea43936874a4bb6a51c9aa6764a4b8e87c45481574fd13662cb4323d5a141f977dffa299ef70de8c30377154c91b9f878802855e39ce4367bb104cd1089e271d6617a86e02bb19bbf6479206b7bee5cdccd847b1a9bbb4cfd2371a11eb7d17c1222823dd1821c5e55295a2d6c1afc5602d336e40acb35cf21f1deddc4ee03ffe2338fbb47922c1ddbf8d275109a6350843392962278cf0517a7656dc469bd3cc4f55f1535f5a672713b6de4c34badb7cbd557d263fde1fa81176f97a3183a04a090260f3591e85f2b074b76432fdf95c160f82749c328859316e2c900cea4b9c96c69335458f80c3ac0ccf174ac2ad36f83169ae299869b3c1a77bfa34b528b21ab57ed8101a1d7a3e9c8e25a928cbea491e90d874e28550494d61d03ed6a0833b6a70d2d2832c6474ad9fb98428d9d2f92f4d96c5cc8f69de0dd2f78918ffa44dda4f247801cf89f06085d843e4b8c8bc9632ed0210092943229a2aa185b4c126a6a45c1d631371a8fc2a323ad5718389e37b097e8d2012b7cd9daa5f97d32b992cba0bb7821130ff04eb9bfbb5445a6c7ebdaa0e08e6cab8ea9e3a5561166d613ebba72093b358d1421537d128437de7d071565c79d2dc1b9b4b8d340d3cd92973355cadf0d51d693d230396f53caba2a1654347219d4801659aeb93ab62c63daccb300c6413a1ad9d0d5273d99aa004885e6b7a17e9cec95d396f30126fdccf00fd4dc4d7c8f94456c527d9e4cb2a07db0f2499c3807ef262975137408153d0e57c291c2c43165f8bdaa368c45a75680969fc6e3b245ca57cc4c8a880da528ed42d6fbc1c90073f680198b5f44a3514d6f009a861c0843ccd970d16dcf4a4be0f2d2b41b2af8d6aa743825187fc454b321c2b807837412d679515a371d22109eabfdf92270f986104d152826359f16ab4e6bfb466df976492a26923bb3729e4e0964dbeb711e03caef160cd8a1614aa285a878837ffdf389de7acb9a488ccfde9d19eddd451d35e8b7b64e253917022a436b0a9fa00af5dc01556cfba9eb3d704c3c8c3b03d7c8750ad60621c1de35dda21a681c645455c6e88c84af91050f65860c4581a34e75ccf33a0a87e4ca646687b55b89111049b91375cc9155ef94205e976e07f5559bea3198f03fed29d49d434bbd324b4ec896b1990a311117c41ec4844c961b0603c066a65d24b3a0c9b3402dc6d499c8f6846c1e49a1b96ee674ec21b48280c1d859005802ae29215c17369ed5973866d3a5220b79dad3dfd1401391864c0224e19c82b3fcfcdc6f85eb27c1e518024e90b50b251100cf542fcbd728674914c93163ac9ea458fc3fb0e98e6a61182e0369e00006c1463c45a620d9a371a018a1e85bece496851481550ecab3a21974a930fc37b26538eba58975634d51acef2ceb26a8c0245386c4087db8be082fd32572852e5470879536d44aefd4754fbff26175c228e951150960002a96ad5ec3478ec6bf13470550e87cb7d1b5f787926a11805baf2fb24b04487678463f8d9f2ac2022614f659e8d60188d346b2c52bef2ea4584427e8f7e434f8d4d1d689ca04a841840c79b0adb0440f7f50c8589d1887b04a93c1f3ac7cc3b96b3e2ba710b5792340a73218b191ca824c54b0c43841b85a054c1380c97a5b38688b9cf77aca8345718f43c7e3567ef72f421bf77a1d102b73ebc2b2a13de71aab382cf1b81887bda7c8b1de5b927f9ec99d29ee0424df41f0174af53da22e83d68206d870239dc0e209a447c04d4debb794b7e936f905bd4abd322fca18aaef4605a95d1ed29965de8c41facdb400e0f582db1062cab69fdfd1dc23b089922b8ffe18eea1b3f9741637c682e0b54edf3226edb237620b8cdb9af955fb445541637959a54cd46df7493d2fc58486c4ff2a3b529fc05dc9162e2fd91e789989fbce6bfbe9cfb8658761d651f01c691070ae59cc3e6df447c6eed8e0d7cb2051b08917ed4b0087aaa501aff22eecb492d1a5979317b81a6ad26105710e518cfd2d36ee5ceeb9caeadb73b3a6db6986d386f3986035458d21db727dae441012db9530022f10bcf1ffea4f184ed802fcff538d62a18e3fdacddecf71b8b3b27620be3930af1bd9c02cfe481163029d8c19453110c0c534e60fa73638728767907def17361ea521a978294f674cd21fdd4e14fc2f2a8c2ff51ea76a9bd88ecf7064030c12badfcab339211ab3ad641d92b7c75b4ffb3ece6f1215d7a3f0579526cd6f5f0a7ded51510a5ae68db9191261d040df1d2d9094383a765a7db4575eea558b1d7cac0af9e1fda0e372873a4cd32448978bc717549680c19fadaf2727531f1d886128fef12eb6421ae0b15fef4a9420439470b9abefe6c5f5a56643191c9b9e619a6fe741591d3b89c971647497eadc8f9a4558cd00103cbc7a951c9c2e8bc270b4ca4143806f2c3785a81ef76453dea181bcd1739b55d37baa2015e54635288fd68e30ba06356c8dedd4c7265040910135cca931865cc92a6ac538625a7c55133bec900c341ff6f576c87ab773ce865031c2db16725e9e4dc163a7a16b8e0c5a56c343815645528cb28e4cca78a90b2440927f2067bd5883c96b1c7f5dae0ee6de97f69c5985755fea4b1488d09f7d86f250e43bad18930dc95cdb206592b16ab9161c1f0329b0b47be95d4cfd809ae2c147e8041a83f912d5781fac244bb9cdfaf2b80c0963404d3972183d9ce9ab2a5446aaa0414ee8a9f699e7a27068763386a5ae54ba356384be7b77c2842e7f2c184610f6a6f60a6a3b31221044dc4783ccf5ad6cfc2d815c91ba0daed5dc80b920adfe17f8382f70fdaee2167fa1aa4c68d2bc3b57a4da0145b1374895fe6a57a6e1275f9ef824841a60dd5f800b431851cbabf82e369fd9696592429519fef4f9ca8b00d1e748b6b8f17002898b518a3c2a386dfb9dfd73c982fec102d01bb5c1a72a15c0a730cbcbe2ba26dbb6dd31df36d7ddffdb3e692e62a00f0792826134d32d56f3fe490e19fe0b230dc0ec07cf8d6f0a6be1bd65eb648f597742bb771ccc8286542cf0ff4a6d967703bda859ff0b053d7802acabd1181eabdd4b15e6cab79b40a22efd94f9cfb093119fcfb44e170db17cc35f7f8143c7fb6df27bcb4d4ff7905f66c7c6f5b6fdfb43d9fc8d505ad1d7197c33f822dc6be841c16e2acaf4f42f271a819c8363cad44025185c9359d8c8cdbeee40ff5b03f3f8ace12409d0cf2aef2164a7df8e67286185e449fce93139fa65e55b5c6f4875e41f8be59d19eaddccbf33432a702f19f9941f98e155204a857451f43aa9ce61830328960bed57536155366ecb079cfff58db1549daed679f6a9be9f0b06ef5270733db983782365dd6687225fb5583db9a59d2d59e69b98cec2e0fb66c86cad5f69f8ef2a99710801d65117833bb5b675beb32d44f2ccf0c4f07b3977bdd7d5e15708fc6e8da3128cf18469b28f45428173bebb88081fa7226bfe7150799e2290670112c329b596cfe6edcc1e474361afd9166f81ef900afb8b26c98b1405cc5eaafeb7716668f7786f8e00665a128e0f158528e99465ff7dbd844432b0cdb5f8a19a8eae786f2fd73ab238756d8bd8ddd5b6586362e77f19f489212640708c64314767ed0251f5178fcc7e7f8b34b5e742770970e23246b2f5f0a1a6f58c4cf2392e7af63a18fc20454470e0bd8e252ad03992ec2bbee7c1c5771c9b72a10a4e4fcb0611ff706a86db38ac99c12c1c198fada2ae958a70077a6106a01b38c781decfb72de18d82a2be11b3dd5135aa80e377600156de90d85c3326eef75cb81ddcca244148221759087a2d1827e90c9d016eae0854c99f85f2b79ca5ffb9015fd12430bcebb23f09a65b22bdbbccda5cfb75e6409039816c384b149fbf794b26e254bb42279733013e384bc31e10f1a25e700a31f2fb2e8494f52d3c07e3f6d673675d4a7f45ff0f41214ea8bba603c48a1b7f8cf4297e9d20f0121498b249ea4ad98667a1cb23b64824aeac6f490a900aa3ae755017d1c767e0973f4e203201984377f887b9ff6830f5f904ca213031c6d8286d52b800819348800165de4f3dbf3bd9f135075249e0339d003870eb9f7e803b71cacdbd62881bd5d4d4fd8d457acca93e321814a4801fbcf98989b6552b8a4093f071b66517ca821ae98a3f419165955f6da2d6c116803e4d9b7ff308a82d3fd9bac374247329830748335214fdc9e83d41e667356ceb2c681e6131ffa33883e8c892db67d6cfa5560999f601787f4d63cd34f469518b41a7f356d20ea9cad56f660ff9d04759c29c64b4a1578f4a4c09db22d2e0605f9e48225f229cd51777cee39b74a243cabbd51634b1116a9a8c9e70035776bcbfcb87910ae9bb8be66d028e708f361066fdb0d40fabbee746374bcbb03298c3a233cca248a52a71132de97a68f33d002b03e0050ff8311000f5151c13e7b8f1296c78e0deb91c9187e91bddee81c48589191df22be1d85afb58166fae2ae39550a6e6d2726421ca2d84128d32dc9bcc26c6c90fe6baedc297fe2770df5b67745bb567005d80e8f6d91b0029a94b58b1b81d7d4b8d7622e50c320b8a1c31acce5320da0eba0f8d38cce0143aff9d009a009850be8aa33b6055423f16ae246cdf1401e3c8c2065a3dcb9543578b6601542c94a26b4f3d0a10ed0a593b4dfb70008e0cbaefa20880a70ae69776fb37f08b4784d9d3ff7b1b313b1e07fbba4bf0e923e45c90437cb5f80c3bebffecdd8d50543e59a3329661bbe3e30a20eb4214925747d174f6149fc285946ffe90bbcf1a38e815a5ffc7d7d1a2050987a759d0e8120c9224f524d85d60f96629b3ead670afa0ba7a4772e61674c5676d13333eefdd2980b7bda6a9b2622b9c758648e146948b7b8472dc87165d4efb00fe6c46dac7fd1c5ab459ccac805f0ab386ddcfb5f2be1d87ce2c2ab7203d75508452962a259e2326f9ee5f872afd55ba59bb23e6706060d795bf7bd990f812944c8e9a4f27c44809b70724f8797fc3d2caaa9b1b5d5743532da05d091d4f68c6d87cb82d4a244bcf303761116404304db6b56629ad1d48d8b27bf83a64763c642f5cf2b856f4011263ca124d5c712b87cb5dec319e1dc28ae13d58e7d26b50764e1b1789bbad28dcf0964cd9b3d178678f5b30deea991829bf14b7ed0a0609f01b9a5789bdbb0c707bb8817765224d1ae71faf8098e5954c41efbc1f245c056f7c1ae8b09f0904940cdfe32f93d5f7b076fde73b96eb7f793105d8b31586eb69499050650fb628d201aedeec5038ac5d4799e01d8296803ead834527c573a53a7f09dd1eee175a389e3ad37ce53ca1b8de927c4b97dfcd2adfda3df72f8d6c2cd26296e9729379cea3a0465274e410aa307cf10ecf19476d56ee5afc0526ee56eb1a3d7914787518d269f99b47a1ccae14911103c3ebf49dfb5a1413844da3e32f084297b6b548d08aad8833bdaed04521a07afed27f3b9e3bb18cbb739d267dcbc60b3e199b7e4002aff89558437d4a8e349a8a9990a108391e434239ee244963d57d6bff41de2c65af4f90bb4e78a3dec0083c4895e778cfcf0c14df1933f9bfd6439fe9aed8d3cb174200c4866c688af4f80e0e24d0f365c7bf0b765803556379638ced02cf1adf791c21eeeab5aa14c1a6c1cd01fc0c3804b6fd40567bf7c2634ffbdb7d12df405bfe65afc6c99f988ccf47cd73033b3e15800429c5cbc62f10bce545e7bc0654dab56341da9e30ff616dcfc96fa8da05911bff39bb6d8a202c588b4284be1657223ceb4d9bfdf2fef04cdd68e8a9c1783fe48e6914810389faf41a5b07df6ecd231e6fbc424638635f088e0fa825a15bdc10d72443bf13e44a12f447293d12d9a6f34d7207dfee92fec28a3029ceb21ea41dcc370115f327c394311bf366b63153dbe3275e052e4de59daa53694bab934d19a3f22807a6eb2c2de81e9f12106e5806d6d74cb0f8f38e2edfeb1b8cb88fd52952f0e9a19b34dac3ca3e6b0b7264f8f44d1ac214c5d5d09a7e86dc8e44b04ba84721dd6021569ea63598da6e338267bc1c8352e84a8ea599bf267459afd53363272be7330b49880a37183962dc9eab5378bedb057265074ef36a9c3f9e2bb6024fadb526822bd047a6a46aa45813046739505ee446a17f2e6d0c26ffdb45d80102fc2409ef5a81f7dc0344f0e0cf38c16eef3fad6571b74fa78bcf153d7b931d0b1d032ce13f0c4d38ccf7161bc67b8f3ed58cb8f761fd1a8ccb52b6e761ae420f3038f91dc19bbd2b91e39535d4add580ed258760aa2899a190119672e47b947ec5708441382d63e0b119c9febfa3b436eadc455ae024e7765fcee963650536dd95e08e33ab46cd01ae4c38efc4ea56042bcaa064308f582c4098cf95a764e99f6b0b08ad5686df758ccadeb88efac1488e2ed0f3a56ed6277e6d7a838ac56e421ec4a764cae27426b6f5a251214eb9d42d52013b21a0ee2a2affea57b8080c4f9f5357dcd6f88ca589c48bce6083412752298ff92150614d0a1cad8552fedd83b8ba74930c0ea9f908923d8e1177b150d8814126a7511349493d8ac166483efe7f3edd6fba698186dbd71a75999bf00d02ac0da08f5a87d6543a897bbbec809fe366cd6c5c348ce0bf0f084dd1d127361ed38d19f0aaf52a99a462d5ecb1f81a98969f37d31096f77f508ef51d89b3661027d4ce5b871d00baf647d8946cd3eb26d62cc34bb5c6ca79e42c813dfc30ce15e73237e7fa027d6f9a95e3bd517187f39af01d40cdbd3777c8c54ecee2603e0287f967be9eb5e18ec3bd9c04e8cc6fc29b5f3ebaacc9c657d7c99e00c28f7bf45e05a22f0507082c8445354b90a1d94e9e47980d1802c7aa178d2f10467bcaa38ee715505205b86f6e911901399dacb264bc1f8076a7c9a0d3a451c7031c04842a6c629233ffa508ab64ddabbbf8938ab1fac60297a68caa70ca16ff870fde4a3eb4f882d8d8dfcd9699a257a045419da89726a36ca0063b990bfb8121cfef073c46b9e51e22d28f4c5dc358db2e7bc47fe1bba962945e4defe3ab7038825f7b523d29df7371971a58a6511780e59c9fa069cb9eacac8b291607c9b8a8823b200c3a7c14b15ed36558a5e21879616e31f8e2519316a7f484f9b1fdcc20381ad5570cb6facd9d03893b7cbe7eacb3aca3a3d73887b0834c6a4b9184e5bc65d0125a3de04f0a47064db3146dac639912918cd5e108df4f873244cae757fc7bd90844d390550a368112a91b7f6d308f916b320c7de412068b6e0844f90b449fcbd598422c36f31417b43eedbb12b4971008652f96ce1387b99f6e7e50b20273d0c0bae2b31595458256281000d60db05e10c604e9253ec4ee290e83222ed7104ebe28f1fd836a44a81b8d019382ef8fef1421bb597739b89c2b7e716d055e3b7ef90967c02876dba5132003d2cac555edbe9b147862cbd19412b409ae6c4626e8b866ce7c3b3547db00b7d743787a6081116163518061a27a40331a7e5443e4934173f2bb7b516eb2d04920ee474a175df302df04a34a85cf4c76da3cbb3a190ba96b017e240e7055035a59deae3110fdd8f80a1d97743eb8d829a5d44c499bea6404e50cf48337e43e046aa1f9ab40280157d5304e42932dbb2ae69d73c10e374bac19ef1d073d8eba1d9f044916532aadc1710811e8660513e5f553f34d8fe6746ec69bf46ddd0a4cc246a2612e7acef569aa60fc93a9350a10e0816d24eaca58846c8e728a379c764a719c3abe0a6f98dad1001165d3c2cb8e4d9f38da066f028dd31ac0a9a06d414205880c3b2ec8b28ba238e0904dbb5b0849a5149803832cc42e59e9cb3fa146107f9f014bcc0fdbf423cd4029dcd1a803e01dedbe191be492c5c6f565b36a5a2a30c394bf94683f26ff8b8c603c1ff0214830048e4f858a21ff680425015f2c10556c5dde595ad9ead571996a8b2c7ca5ab3167b106e4f38a550640993d59c9755c12b93cc3e0895a84130d61c8cf1d3581c362cd526327371c39c24a992c087be0a08a7b9cb405cfa047833fc1445f047226da8f187644bff8526987031c13b1462f7f8e370bcda577f105fcd38f939852bec4b6fa7c1e8f27046c6cc597a8588939bee48eea121bb153085a68b2fc3e8c67a21e9b72b48eecd8fdf68f3d2336266e76bccab7fa8bfb0b5fc22ce9525fb462745e48dbf2f8f2f106da08560c46dfe55ab2e6984637a636f9c3f9c0a53039431692d07d828b6d58f20bd0209b19d04991b45cded773f457493c8e6885a88f84aadd6a2d60a5cd0d70d669f7efc7eb3a014be90413ebf268781cdffc0d7859a64358c283255e2a04251d71c69a17fc96fe4aabaa05d418d01999a3824524afb356af3ce30c054b589b745f63f6eb8c2ac823b6364965179b0248cfb16536e5c514e2332b0b429efd946e349c832fd9ae94aa3185038ab2828969a609c69bc01d659b80d3a398a87a74f172a74ace2947b208a19f6e6eb5ce1e367b8d121fceedf90c43903ef7d038cccdfc03edeec2b6e877b29f3d48dccd5940e12dca458ae0042abaecd3129761300d5bf66d73502b55e408e7d0a83f18801aff075f5173c37da9f4e30c30d193a04af110daef91e0a86696c0848eeabbed8f98c6766a44478064d02b1bfad24ba8fae36d4ae962d4109364a8451d7f81d0c12ab2dc37ecbbdcfe18ddc5d5b3832ca22f4bc013551dab2f23c5e095202de9041a7dee2b5885b3e43153ca800a6a08fb102ce81aa171c5a384269060a844f7a5162e0e9e4dc6e5344f2d5cee83e4919874bdc12c413a30ba66e96e67caec6aa516540f4528973b73e00cf050ffccc0fab687ed3c26deda6084bd4b5b0b9178184d53668d00c15cf65ab78a2f7349a5b81a79f7dc8259acc11e7a850353d5b0ff0f65bb7b33327cd5d60065da6a8b5eb7e907de2a085a67132087c44d713d5f536c16cb7829ebe60a174ee0ecf78349197efd101fcf4162d548ee3133b171fdfa98072e87b3ff6ffebf3c8dc02167b220c97c1766c4fa5ba29b3e2984c3ea8302105e60062883dc786d37af812736220c91db67f903b32d64674631af231a543bd0abc10e96b43d0eebcaff55e802faeaf56379e7c55716e07b67b171edd434b1fb107bf0ba71512d76f9e570e56a0d781538e3888c30e89346238440d35a839e867177698241dcab668ee78c5dd1599b616512e66c615d9bfdee09386a3c468ceeb918ad9dccbf333ec79cebcf1f8175e216ee10a0a62f611212593e5db54d160c72a67ee47631c6ddccd2f0694fbfc9163f45f4a2fde973494472e1f71058dce769233bd8671850748a15feaf07c6eefa872621d2c4101dba4a783a9a49f74472dc17cb2f98b0d66c7605ae2b600fce3cb3ee44b3f04fd8d151261a2f2d53e66e3075cfd3ccd5fbfcbcfa35a83fbdad35608de1e4758fd649ec569ff5a72236320602cef494a5334df1bf99082a054d993a781867bae0307ac0c24832c3b3df0a815ad6a19f2d572f03cd3803f96903ac7c767a0ca0953510f1b5041e0d03d5aa0c542d83ba053e6547af571c61399f5dcde9ee8818a6d7a61cce431b0864705b58a2f179ede66c345b6b5fe495f1528c7ff42b48850617b5e25056391f1f00c713a58db4c1c9ffe6fc747709bdf4eedc71fad1e995c3f2f1b7606fa25082ba4c8e229be17e9f8ae83c2c4b599c436bb13f3a2ad7372f5349b111b9db8b623f3b88f452df48824b400afb531b979be379581522fe52f86168ada22b7a37da0342bdb755cff21b50f35522629f0168675ed0b772c47d75747b7107b0f4b6dbdc34e72394a76556ad822799a6497435db031c5d313ca1c9bbce6c8177273e6dffd3c1b203d2995e01e38f7fbcf368f2d37e95de21ed9ecedda050b00caf0b43339057f1f635b1f66a673ba9c81a0403f37d4fc0cedf65df1f8fdf9a828be5ce43b5db31518f6fb0c533eae01d1c1e2862d9b99d85f9a89ac60eb3fe00b1c08c092a8124d30c90f33b468b203931e8ffbf6b3a63ce29a6466662ee87ab8baa1ab1fdc0428047ee3cacb8b6fa636d81363b6fdadb23ed160a1041c0d6ab818b2aa91441576c99feaa7648f15142c0a8f5bb155a0807172c06ac89b2934d46838868d50ee9f05640e21169f9c10988faac7a4b00ae6b58b6679a78d45cdd0850184a66f8e0413e3b171a6bd5c15395310ab702be0c9a77894667ad6746fe6fb3a119e1a3c2a6548b17abb961cc97ea355845949a87909229d6125d0cb3255bbee43998b41708799558e9a4e85f4aaabed7d41012663b053f4e7f649231c834f2b7e0a6a478e0e13e35b2dbaf626eafecba6834a7b14e1356bcfb9419a615071d36925168630abea2493e05a32c2cf788248ea5f950cae87a31ea62ce9355ee7c62142d65f97f334a63d4f9f1032c6af4a2c1362ef251bf11c7d616dbc0925d3552d5e5a8014909fed5ce55a1d0501b00a3a88efc218229ef2424f7169ec322ae3b692e4294bd04d8fdb23bef6a36106c8a9f425124d07bf68a2ee5fa1b4e926f54613ec06db27dda9c0bb4e54b48cb2d30347488a176aabfa498000f68634f33889ee5f8c94cbd0e74dba7911aacdae32fbb166df46585bca38b030b242acbefc17a740b54d47b0e5c41263e09f2a7fa156f8a1151a8052c0caa8fe61942e45790bd7e2bc1895a235b5545e7f7994f1e938eb422379d0e28e58d24ab60324ad376f06e9cad03f5d1ec4e132760b38537ee2e76d1f46f6ebb942cede85716a07a6996fe0bf5515f08b266901716276da039e80598c52502c295c2a37b08541f8a47f38247680be20d82f1454305e590067f8d3779df2504e9d947c03119ba84ff0505cc41e7e507909bb5c9e0dfb81043858dc83bb2e3217707e6625b8dc4215547560e0cc6f68dc66eafa3c218e8c93e90f4aa169ee1568204f208fdd87c42f21eca5fad3925879029a83a6db80fc2ab067a7ea33f8bf60699b204ea284fea4e6def08375842f08543ee1026e481ce890eed94df83da584404ba75515018865461c659e8ff76cabe717a56f7620f16bacdd93f38097f85ef980911e411992c05167b3509a667ccf9b3ca9f49db2cf971afacbee7a8e7f0698ce14d6b39a6d86cf0267d5bcce981cbd805db8841fb6c3b2a465e3b06813a7b0b7080344b6f9df2141390422584867d276ce86c0f898d6beebc7eec3ccc40142be45c4718f506a25469b1186e3b457fbe20b57f948b9d70abb56305f04f0a41a27171272be376dba7844578c1b9be6e82c7bc03adf342dc1caefd7b82de0a3057c708001ca182d861d095311ea1ec7e7387cae6147a38cf78c6b4c91dea1c75ba55172282f99cc72c4c153fa879de0584003e4aa34f694f3e4583dcb13d2f563f8fe91155863edbab24f398fce3f36fb9b70ee29df78153e170c290ee9de1cda4b3e56bec830fd5e07a77f7d7e605e9362555eb7d30544f71d48da498bd7d556057966446d58310f3d180b95c2ad7b36243760b2a26f048622112f3c74ff46aeac8eff399f0700dd910799a50f8cf1bbc5fb8f835e2a31fc40c11e8e7ff455904132255b8cae0485cc8bc874a1a6ed2f548ce86409ad2ed6474cc8e8e04d3ff3517a8529064aa7129fb424bc92954cb3b20c71a66f5b142b89a53ee8dc5e1815e66e9ebd65dc0242f47384a11a5edd5652d56c83a70daed9159db8bec93f02736ede4cfae1acf1f49968fd7876ef0583fab7ffca83012b74ba7b4eea2f00ac8bbb3891252be9b238fd667ffc6e3e4d0adb003c93dc69edbc08098406c3825b9f4ca95c5164c9c8c33726f31f2f909de934983c1a122b0a22a9d2d8a1707a1a1e597ccda1342ce4d7b3b764eb42ca9a3b02c882a3dbf450a02ad073992fdcdba32bddbf64a214059219ef2d94402a3f8fda32bc5daafa0298a5a4a831c9a17511f01c940724552f02384b7d590666fa0f4055ebfc357a759c540b44de58984a231877b03e7895e00fadaa30d721f48301d9ed32cf7563a842fdd84b5ab277b8991b4a8379599d3d8a20e42c51d85b4f744922652b8175b32e6fed48b4958913437a8331d884604d45ca8836404b7c3730f606a8e52218b13f0aff50df912237e1b21fa7ff197c8283bedc531ef0faade805472fc99e7943dfd6b7c49a1f060f9d4042f05fe1913014a7c7123b720a85d0e2df8af9b0c5784b9dfb679aa2e406c24044f646527ca1930d8f091f9002360283fe539a8e4708a316ad0459bd5f2b56b83e31ea2332cb308a5c74022324310db406dc02e803a5d301103482acffa2a6e752bd6a05a732d58be8d29183d5f9401829e8e83e4444f451c49e922b708e2bcca2abb29672eec8b76f85dea6323f95a60f7915c732ad0a70227b41133767ea6392b91b56c9d06a5357fe5678fca1cf5c41f06d2fc0d202919d8aac1458d277b6b4ba347693b7789f3f81bd62a6c5e12c216e3a6130ab9a9513c189d56a13bae5395734e9541edf32d7a3211cf7190d528e3eeb19f10bde54e8205b9f8efb9285eefe5ffec1522b09575cc0674323fd98ff4af290e49ebfa08406b665d6b10181b78bc72bdbd66b6817517f4a8c9e7cea79852bef301ce96cfad131b7ccd69f6f2cc633f87dcfd5327b12f2fe0c0029148b0cd62fa081e05de8614271f7de78ee4fff948b01c86f5646af15d691b8828fd3c2ed47b9f127522989e899e38b889d9fa3ded932d15ecf1c9d2d8c54ed856a01d3c2db0728aca32aeaf63e900a1cafe35f716fc90f75e599a65b9dffaceeb0206aa0cc241a73ea068032cb12d7d28d4c7da3d05f4e544e8773f446df01fd50ec00d35045b81972a4d85bb65dc9fd068ed017a91ba8922d8ee02b03b86cd1acb86a27c59e6c97d68609351d7537116068ae3ee984677d1ddea27947c44ef74c55d2d94defa47a99a2810379c1bce08b03e01b512bb2b56b633b1d192a6eb5130342ff668567d7d8a97629d2405d67c78e2216adfcc898513b6879a641672e9ecf54d038149f71e04ac294293dae107297b09648fb67355d2b5844a455c2703e3bb91c923d619cd3cbc06231d1ffbe443494f8c2cb9c54a7f385704d7bae0652ae4e79a21534d46c4b9ac32a03bc9e5a12a34999f44a9e408f12cd9545345b62797ab6bdcccd3a86287bc029381616ac8faee8793a29e4fe3a0b5f0ee4b1b9d54e2fc4145cb9c78b443f7a22c3689adb4f9731d13c2df8b2e2d8cbb8efdfae9dadd5ed347c251b3551b8876acdd4525f66596fa30e33e86de04f9fedff154e9fd2f41e2a0296d94ab063d42bd945eba0c12ed61e3365ea574c8a9f0214942b81b39b8866c8f8c9fc723eda643daf4f7892ff6f6327c4be5073eadeb6d6ba1edefe6e7fb8bb9e28bf0141f54db8219161abad124695eef6b32e331380576b4545ba2aa9047b9ccc986d0ce13bc808e0cc57823d3742a5f36bae3350331ff04c851e1b61121918d5541f6c342681230885053cb034fca69713575b2a6d6085865d7fd0c146d016332937ebe6996adbad80f451232a667134e7592240f6f6526ec8399807005c1628f9e7e0b0052fc59c94d32da45ca99e06749b86127e78f0f233e5e57b9a20347dff131b682e4c67c88075c09b5bc5bae30f82026b39b1416ae67ae33bd2ca25a40a0774d449f77afc416f08f118b8ca003cc307ae93ead2749071a3a57cd8f63269da376571783b841152e85886cd53d108e38fd32987ba4e081ecece6af96ab14b77f3f8d232ad5279acdb129b6a33c9f693b3ade9e54e435f4948b5af577bfec153cc3cd06d439ef853b582f5119557f8aa4d484331376a0aed10d054aa1c6e30b0588a5f345339a73e96dce9f09c2da5d791bb20813f5acd496921375cb42ab3f1b790e7d5afbe972840b191e9e60ec39a342198e4c1ec4c271235d1060e1b9f7db0f6d316926e249b761552738eb7e33b14cedcc9822d35322a797848c32ca6c6a9bd8659f32017a9c6edcc44fef817a986bd77cff79c0c2b4f5d3c4a554931409f6bb142d59267fb37846dbe9f643a358f7f876bfcbdcd7c44b0998415753dea341207b8ccb427818d36fad50e09369237b6e53df55f44fc648e2abc8707b696b570a199620fbc281e3793657398744f2d61888796e7ffed48edac73ab9e710464c0f258120f0922df4bbbbcd62f9cd4703a5ce5c3faa2e4253fa776d7ec0cdd448041f3c2ae9d6d63b06fdf73c72dfc537d4e83698c2b994d40a376846631ee9c7791a2e5d4ac604ab38342e9d77f03476c24577188ba656c36e668b7f7c46eaa2236511ae2b18a294fa19d8f515a5bad16dc090e62615ca15a8deb459bc15fed4e1ba9f7feff6d7b99cf9521143f7e72ca2a61bcad5851f271b62fff2393b5662e576b6fe85bcf7bb4cd21d1334bfd0d257edee5cba0f8ed9af47198b3f9931bf0fc9b2c78456af682d3cebae1314e6cc09879541e7bc47cca4fbf1ead130ca74bb4d74d01a4f88795ffc1d7d4dcfe46f77b6edbabb7450526dfef4a1ab8c0e1e2ead50fb67c9777802082173134748dfac309fae6c3fff1d414d8b99c6cebf29f0a968bb02651ce730f347062d02f55727c1c85d389f848bb73f9a4f5bfec1e55165b1fd8941130e6df7d7fce2f1eaa849741dffe1882029e5f909691be7f58f13df20b13d55c3f252b60e48ed7fee9354bc0ce39bb31fb7f695adb72e3fe64696412eb323f2404b18290d39dfe46ddc00aa07af352e019f723a77722280ae021d1af78e4c2f77c489374478f4701849840d0905e669cf011edc2606be36ab3ec44cc1dab88a8afad1fe6e03095cfa21e370e8b1485b226546d3bbcfd6f1afe41470db55a607ac04edb9214a2001cc165707d16db67a1fab30c538026c2ca980dc9e582fc1c25735d4fef3493589052b7467577957b1e3ceb89cead8dfc447fcea6c0b7d153aec8653a8d27972a6098bc4099d6b9c95fb35c59422e20efff76604de17b1500c8c79dc9e624436e6e5fd33118a35771c86c5bdf5f11d4909de9318df3ad7cd44392ca4f27a18c89a587e36596bc61815a53451d56a6538025a9976e15e483e6ae41a61e37e532c47bfc5a7bfbec3d9f57e5f12fc600358472a316bd4ecc64afe58b62bd57d69b90e3a404df80472335199d77c94ddf9e69dbd57ae679fcebc5705f3e680b3d3b0a7f7dce9737ebd9bd568b149c27546950ede172547a633161a7201bd336a0cdf1942424ed19545919ea5abe23d2564886a5afc9496a6e05d11d24ba98e7b48775747c9b430a6d0630bf226e04b507ed1576dfc2e5847949bda9846c6a2b73e5cc24208960c3ff1f824bce0b1ae4320a1ea7622195e6d23ed324e5eb2759fbf40b3429040bf43c4bd17e144c189f29dd9e631916e76441740b178bfe80f12eb42ad5ba55336efe61f44f73404e5a60b02ceb03314e381f3b8cef396c73dbe2f3ab62918ea9e7cfa4622e87f3012e4c3b2fb60c67adbcf48ef3b3dc139779aa9e5d0a7889c78c13e1f0cc9ae531a75e2fc08865c3c1e9f826a3498eaab77d01b3610e83fc535ae416acc5e1d15032bbe58e2b56946ceceb5043121404c6f0bd6f46fcc1e2237a8e4faecef78b575e45c1311bc8ded8688facbbea8cbc67e05435a6e21e540b019b662b0a8b85fcb9a4c9ddba62827850b5858796c25ca293898c3eb9888ecd724e303526f9a1c8fe75d338b881c6d21dfadcebb063e9592f6de4be00fb9a49ccb488c1f7ced2f4db368f256b92677008c13ba612fd1c99bc0e0b13086ef012f45cba33c137bc40c43c60ffc6be8dff46382b8e5bfb4b4990b914a68d920e4e4276624eca106f6c9c283b84f5f3278390bfc5fcc1ff3e28d22c6fc9775ba6b327d1891a4695eb42e1b68a5b43dfe1f62a9be26de60abfa0323ac8e26e918f990f43f89f02ca587ef00caaa4bec567877783541eb3a3c9ceb22d8ca275c0e32857f2c890a38eca6024f44e2ffbaa33834ed22afb72d2cb3f413ee9c9b369f4809dbd9be8fa0a769e65ce20867761368e0a947f24a7188c6845179be563b13ca8e933bb4179a5dadb2df42e6fe11f67bff9c125e22ab4777e418ca7a40033fd9bf32c6ef68cfcf9ca50383274d8f300ae2e4687344a3f66ec2ff54a4f59d447bc96b9e0be248e632380bea687d80fbdd2d6c14bad4deb07625a22c297ee18bdc90017b6a7b7cdeb41f56978e52bb55024768bf9b3b0135841192c69683e3907782c6f4f534467e8dfc318a743ce4b44b4d1173b9289ee579e92918d327594c80ddbb01feee9af7e7c5252ed6e84c868e0951916d847523725daf7977eae34db6458c1628eedb7c8964869de5223029b6ac761158a8b1b15e5411ac3129f28aa4533ceea3431fbd468aa39981b49d8752e957b6988165aba00f184c33216e9370027632074d080f11b94af544da494a196b811b77477eddfb59de66011b8ae82c9dd958c1c33ec19a6fa8c320773ce2cdb1d911d539d6766737baed8648b34408bae19b1d415d588343e6873a640e4a60ff23fbd02aeda62f52b21a827b111f8cf9f3f0d2e0cabd7b92dd5550e8b2876b96129c79e3058171c5bfc80c96f22cf8fb37ffffa23072c603dfa32620478bb0988d369257db9638e94559bc1a2173e66d571310e3d6bcf0bc73945794da3a227cac9029c7a2ca121af82a6b3f19f27506719eb0c063077b69081ed9e886befe23c6f1c36173f060a101030980155971f3968d801063fb70c9678107a8ce469ce15807f13a7dcca837fd54e753172bdc9c260dcb7c68458846d9b62db5378acf4ff915cee8e6a593b55490c58092817823d1a7811c5025de46891a2b1ca66601ac67b3943e1b263acaedebd8d256ffddcc6f09e62f4764cf00162c4e2b79563c875c1da5e838c1a0fe28f1a106fc10efa50aec85e76427e6e71ed987cb6c6097405cea5d7ed7fe8f627ff2ef8664d2f071f1b7f10b1be01fe330186a9c55e191e44108d748513762dcaec9b4eb65e2e874797fefd3cece14c65d1f8c5961445ccc77ba697c1f5b0c34125a514a51439cd0b0cd3fd9835c552c51131b0eb5503950008eeffa217ac6dad9f8ada1671f38f57403023db52fdf975a5a5d80505b43a84a08f82008ed48ce9973ef6ec4d5dd29ec3eaa6a6a137c0b87dde5c1dc66f1cfeeeca2115de002260b20f48232121f75bfbc82a1950f8f8814993282094cc11bb3cd5ff3b72004027ef818109c6e5d1ad6f2c5aa4d4dcee55e5915cf4d6512be1d7093b9879b01249b0e9a40108d10190de52f4833fa6cb096c7f06e60537dbebdc1fa84677d6a7b01939e2778dda2ed67f43bfcebb3a2593b16fd20f2087e2c39cf779544548e366d18054f41c148f954e17e20c152762df888a84a31c951679735477043803c5bb40f883046b7532a8bf1afaf898fbaa70d20613d2ec80c81319a686204d460df92d78279f9ce4afe1d59bfcfaa82265f22ea864dfe40f976adacce3c966c95fdcaf2d29bed5dddfc6c43b683f1a838bef7818eb00b2f58d2d3831490382658877cbf05c7576f3c622d5866555f6b600dbf9e11f03f8efa7594c3867584d00406a6d4266c608806e163ecc8b17d000740e2ebb9befa42d61f89fbbf980700726de2471d3ae135de79cb92da6fa755804c4e9055a0d0b9d27a39d4a3d9e24861e37603bf241ed060780c2300a0d83f2a2495676682f910e60b47390316503a92edad4f27ade959411cf8d67ea97c0e4907836d00f630a88dd91179969ee1fdc375b4d3a26317989c85be0e5aebe61f5a2ae3fdb2613a73d5b017434e28bab5b3b4611e58e8168b80a1bc8868783fc82f3e885c58e3c9be04744efff2dea81d212bba63e16e9ff7d553672e8ff12231d60bbecab8be65724d4fdf01d23c0908a15dab9e29848fa5ccea51d8af7587807df28e10dbc4acb0469284653e244e047596abf0cce6ac24d7042569fc61a960739e17053458c11d5cf6f662475fcaeac4ab113b7ebb0fadd7175e81892a0948cfb7db670f3b45fc56c1e7dd03b56562c5c1a34906d0159c7ab9cbdde6ea1323f3205cc01c57b478cdd564bec7372b36e8411ff965e6de83b122c26546082e8753a27c00e6d63d27b7bd44215ebb2c78c6f49a69364667655f1a9a177acab3d45d3c7bf17209486e373c5526c3fcc3df2e672dad2720e4a407d1375b6dc3de66fd4dc108d36517a0b8237e13d4cf87ed10e41e5b05ee80cbeac39af4e5771c4439a53245b4b6749676b4b5dc61f932c1901fb3feb26bb3f859c85cb013870d023942a4fff45f39106065e7a259bcb80a0e8f1e717b299dcea8cbf0c83a97a89964527ff6e12d2824db7984a2eda31b09b07e29889c66350d779ac27c2ceeb7d2b2c0d38f5293b5a6a9f12520ed9941c5e23820460d405ebd234ef875803d84dbadaea2bf4a54ade418353a5c8bed62743ebe0983cb525371ca0578973737f89535ba12d8eb3c9b21a803e9518fa275a61abeb73eec0f0a7f65a4c50366733ba110ae66f94fbe0fd673dda27cfafb7f607cdb84cfb8c65cea1bd2bf39ce1377a6f3112209295c32921b6277b323225ee8fa81497e6063a64a6da24ecc9e73703b898b3d347c5059b9a930702a65738fcae2ee9cff56a42029430fb35b146487daa1d806c1ae79041df7d9d810ae1a681bb896bb240f2b7d50444e8e53664467d39967ef1919ece055d4b4d1499e398260eb6f06dbb75e6c193a0965eacae9693414ce74c05a20f631c3dbe20683cb2cfc3de0a8e0a78aa89d8a5842dcd7e391543f44a55b54a1f78146e17ee0c40c032dfdbdc7ffd746dce80350cbbca82910e289a9496da6c3c4ee2c8613d9ab4b5a8cc32878e08b7f6b5f312cb08c9a273605ed1cd6efe8666bb18e2ea632e9e44032fd0227ea6a208cdffa6fb87945d13a32f68cac387093bdc337290ea1f194ed2285a6e024f1cfc332d6e3a8637021abf627bc447dc082c0f8878dd15d1721887c27b0cf40602d7c679422a464e785c8e16da5a6f000f0f5f98cfa6ff68874111e9a2a83cee27270430c8a48323831dfdb16e419ec9f0be1b8fa05f553d7e9fcec13648908dc0dfdaeb793d938c0ee7b7ac6745bf78186930d3764ee9c30b3df24902f4a5eefb599d1e0c4eb392d8875f4c047fa0bda3e0ddde8be8ec12b33c7906f5c7d798b1b37b9ee750ffae4231e7eca88d186075fcbb43fd9c3c9a8d70ba582a5eec2c4d93e33e2fe3355a01fd7489e398f35f3812c59f4a784d00f8987da82c4a746c719c6ab40673dfdcfbb38e9b6c77e0f0015c807903aaffddf62bcef26955123a12b41d2a42c23121c7f6793ad50980503a9136670445bd7f39573852c5293ba1f979ed2ae28143a4fc5bd7f23ae46de4bc0ada9d8eb9418f58bca83681968e4490f2a5cffebc529fbe140620c186fe986853075e4271114d8a020f2dd8d21928e9a6c0291bcd5967c7e556f5b811472182274174f80d902610e5631d6d39f03f5ac5f5c7318bd4476f2f4211e225600e2c2ada290901e1eed3a3361737af2eb04a075d6badd0ceb6a963d52b7633d71d1810ec9d805f0b1fed80a65437c071a58991c110542671e5954ea569ee952e1b25d50a65af958b5db7e4bf6005db141e0808cd60483294c75058a6158d83a0c0f72332dcb3b8cb9d64a1ad111958799076b1232338e4208112c08828e81e9f501328b581393000e6306456f6e8c398041780483384c2eb77b4a3a709dbd9c616bf72a41e37aaf26778376481b84cf30ecd3c516057751688624769d71de389c5955a13204f1334e6fb35ca364e661e33f120c8721d03e7f1f53798755e04b43c4b409c08d030544ddcca84f4b44868631783d273d056b88692883e6cd780b84a905bbc6c1ec1dfa90aa17363a6429be288cb565cad16fe726f86468e9835b138621f7c26e62be9e325b7798568f100c7e7ce8615d3be7e2e03cd00f9254530f4b942a8fc683f94a589506bdfe203e909077781ad34e446f7884b87d98fc113e8681e63266fbc5e84b33347cd57f2e8e94982b5036c0cd7dea1b52e4d0c2992542c006d40189f87fc21617142c2997760988cd4d68756cdb50b54ffa6f9100621c8693485d4466928859c605e9f7bd409e4a92f7833517c6aa471900b89602413d141ad40442d922105b5c2aa33d9b6f2be5902550a7fb03556ddbf121dc2258bc065ae855e76b3af901319a5dcef315d1b38531cbd7a42666b6a8e9abaa041da69df04fd3977ebc8a271704d7f634ce8cbd3b76afaa56a75f53a022621c8a9e1d7f06b62152d0de54d39431d790a19b6c0dde500a13990401a68d322b267b8a8cf2a7aada4c81fb3f23441c3d91b8b675c5a41008e5522a07d16c4564f659328569ce9246d17f1274444284f799878ef456ca70ef19519c970a1b61fcd987130be6302e5521c4fb2df79f5c3f1022339be086a09358fb44e41936d5953dc437109b325c8821a27062c8ac3590fe2be6d41d580d8014e11483e652d83954e93eb210205cb9d8ae5cd9f6374d756a3fcd532f1436d9396eced49312505bbafc302f3ebb324be042b0cee2b0bc2ba3c38f5600c2cb3dc9665675f7d6614186d028984808254ce56d5d50c94149aa0d438bc3745f46271d9eb355b9323ff56361c357c3dd16a6888d3efafa6fb364b73d2ae6589ed33fed134ab3450bc3e22e13084e5611935df0e97fe35babbc5d7ed7e5d4f54d9523ffe79e21a7cb38c0003fc2f73f84ee6bdbc4fe22c90ceb52bde9493bd8bd0d048dfa3e2abe194f1a41527ccdcd34769339fba9a73dd8d9b7f9d43e8aec45194986aac6ba0630e5f317f25eb8e8df10f9e5ac0244894bb20e41b8075b8aa828947045630ee18732d62c763d518266974f35898dca6663545da334dcf85668102fd5f7d6f02360d6a4d364b4e4e54952c6be290feefca53627d70f06fd2e1e24bb7bd535153a258b628dac61a49cf86c1f2a6958adee468b9a5dd8eb99cac2ea6d7c93c22a68970d818305fc8809d7870e4f939711218ab0543f58f9af659853eebd844fa9c2f4bbd7f6840fcb3622645cb9f3afc688baf614d75f2900760d93f390e0a67ccc0ce20f372420f2925ee52e9ab391adec22266667e2b7d812473e7baf94b841f9ff6f15d1f58cd5a1ad25e40ec4d7ac5ec18cadfdd3a968a6c124f111b4c2bb010bad6ee2c943c3026de622633829fabdd8c6c6d22c5e2a335a2a255a36b49432cfc78e4927b2142a7d9ffa75de3a93e084ae3b01890b7ce63b319351ff28a2b46fd63da7bea1b61edcf044b25d23698845005009a2febf21d095da9743f725dbab98ba173a92084b8868a706f720f2a6b457ba23a2da06987b6e6cc7e5ff97c27542095c6c51f44a08f5a9d09dab3b29df7d3a877240725a261b60fe5bc79b1abef6362ceda008d31293f0e2c18fa9cb933a601b334a87c3b0ab89144c1f33c30e6d9e75ce18ac925ff7efa04cf234f63e8a6668759d8354f30ef575f3cea84540c8f30baa1457149cf5d6602259dbcb67ee37a41f486ac5c8593fd6bb04b0a7a215a38caa1ff23b0087bb1aad519552c1e0320d07bf62fdc2674b248b81788568433a745e892a086382e5471263dbd6b86f68797990d0e967cdf8c7ea0074f4fecd63fec5350a635d6054f9bb42267dda37d3d48f53f8f6b5faaf1e3f02b985b7edc36409ff02ad3ff0219e2cf6bf398661136076ce9237356b9b0145e20a90f624e7df414f39e21b6c8122ab02bc0012c616f058c37b2b31f2da9e3339f5d29917a01fd463ccf733e8916ef63f922523589e6093451e5aa80ec91a94f8a71590cac13ef6733bd300dd1e57b5b2aa85b8d8210f5ed86bb6ba75af8583b1957c23bf36e040902d3215feb313f05bd4ef8e3f2ff6beac3c98bae556e7dc7a2e6fb3d087d01fa2f36774b9ce8ad96de94597e6e44dd5a84cbe5e6dc30a6ad59cfe8a4af28bcd8f3ce835b701430282e8b6544c4267347546ee7b49f6fd30246ceb92196c504aeedd3fbe383e38d7db3b103141229bc2b80f19c381e009c5640f9fbf862a92c7ed1fff3d6831c2119d3d16bf9f64f27b2cf49c64063ed92a3164c86c10b88bf10ff32742121d41573897928937a4515236e4f3a2d28c725388a4a20320829aa9346e28a74116cfe8a357ce03d144f2f22a8a463b2d7e0d14bb74ade3d33d5d90bcc09c000fbddb723720f4263574b9d48512a4c151d8f0a541eb01425a8c2e84d24babb124cd9676462f9124c2049aa236c70662322135e6abf7d356177ee465f418380b0e19c47187c0cad09820914e821cbacc4cd1931dcc2c7218709e55538bfe6686e6d943aa3d018deb21753c88653cc283e1f83a8cedd91e93b1939f512968c8d147fcbb29f14a2cc73e413cb0085551a51d7a1922fd227e8dd0e500b0cc114caef86cd627f1127cd933dcfd35cc4b22d3e884e35584381c980fa3d8267d090917b30f41f5fdd53746c5963f606dd4e1f0d2c285106ecbc75798d140c5100e7088b3acf693ecd5be0a7c5bafc5531969065fd8afbbe88869247d88732f5f75785d7e8f93d8b78662ee2f002a6c0db2732735a0111c4a8bc6b549dc28847f3421c319071ecf549225f44ad1787ab86725b86a800f2c74540ab540abfb23844560b50a2e374a8fbd56e3746bd19fee11918fa4baf9c2f17b1c8e31299daffbcc06398962d5f62502c40428fe748586c289952d1fed921cdc50067c7ec255bdb630d9b74eadc52ec2094c449190e11a05e3c2a78825788926af99f73d5356d1b295759a10dfdc6409bb42fa0f305c102194096b7626a60dc0feef70dd9096efe7ac6e3ca89c2beb6a74c9b17d6d8c7bfb6418f61405bf87454628bac2922318b9eaa8bc01643049565b835bb3da106fbbe3f9538b2759d720f8ed3365d11a1ef71c6cd177df512299a74fbc402d3d8bcfdfbe8e47c80b2882b4d22085a94a11bc0bc9c543fba06706ca713a81fc3f02670b9310e1a23c47929cb51a66640cefac68d62785cc5d208a705d16262769b03a9d20c08f21b53ae305890f70cdc9c012b573d8c802385c4c7746e8670c1ddfb13242ce00e18967edc1d9a452f04d27d4651e781ccd7984d6832cc80ccd005f9f7daab041e8ca2f8cf8923875c7be325416237f1b3c09d0bee860da25952b94d280463785f8bb8758b60f245aec503b587b396e8f825998aea49fb499d735f8e5ff4deae86e30da0d72b30027d6370c5a2102bb0c848678b6564612069a3b46f73407834a61b0a83f39fcfd651f0f78d13cabf7672ed5e676e45c2aa9a7d31930fc9e9805de7ba14e00f2490b0e7ce3be29c6ff2a4384ae6fb4fb9036fe6774c54fe25e9a0dc2b1d664ce04b8518786c2ccc4dcee0717d8d85ea9569f069118888c9b3cdcb4719b33bc349221f256bf68e6001b300af50ccce09207cee7efe8b3294d9942eb81d02db77627e9aa92951e2b853f3ba44f6aa1ed2aeae68b6d90fc9ebf086829ef619ca04b104504a07eec33b2919849062bf2938353ddbf839023becfbcf9ef66ee9ffb34ca08143c7a1c22348cca9c8e2c04e437cd677c68d171d8304eca8b8c252e3ef182e5feb03620573bb153ec5f0970f4c07ac27eba140a0dcf035dd322374aa062863c30ed24384075328fa4d9b54977c48eb8c9e3288dca507eef371fbe8baff62f0edddcc81c909664f0f696ee40c8ed246f23df0d438009730f73984ae51068a51772b9f497c2b598fdf08c0e04c5b0a6d74d5943e65a35f8f134989fc23f287c6329e13d6333744234a85a78297483eb15db7078dbc0e74044b8c4573b15195ba3cf6a1bf325ce35123e713024836f66004a9750935036bc788a51e3ae8c9aa4223b576d6bf7149d26fd155b23ec9d7d783040cff7be1809dfa860cf6543829469aab2b6a2221634d3d01863771e410cc6b408c14f7c9741248181764aca57369d8b764924b66aedb334e232ba341ea173b819d1e511885a29765a571132107120d8e7b31f8fbdf9612450221363e01f520ea224b9297b198e287da113d9ae14b0af18387e705b0a1bcb9c9650fc823bf88b1e061e95a17073d6d24ee455e93537bb5b2d4c705e929e2c36b643c7c6d673cb115675772d81397b2dc4f58aac7c55c21301f540102b725a900b563214b3e93e3110b3850eed177134ff61579dc982f4780e09bed18760c1fcade920def678f9fa0b2401baa92b24ec6960ab35d7f474eb7a7f68bb13582a233bcbafbede6a2928b1d8ae072435190a560aa3e06380d4efc65f9dcd206c8c2129d04abe129232b12ccf11f109920705b4891b3f49d5a46a312d6d24ca011d54269afdfc588040ad9c80c43aac237b06aeb7f056db6974e3f19706ef2e8d7025a5ea371b897c1397eb413aebdf3ff64bc9fcadad2f75b7060acc70e3aee29e8b894f301cd5da54d2487325f2107b7974be3c3b754d11d8c5daa3492d41121d53b110692283695763b14e53857972c9fd1441370791cd47882abcd02ac48e7b1f23c80d03952c5d0e54105f52211c0ac8ace1ec600782986d7d4adead414186698f29ae8ff40dd064eb8a377612059d216ccc75513218fddc277424994648a471b3aa2f9818fde537a208ab7f9723617e34bd5404b85f15f993cf899a14be32fc2dc0509301c4eda856cc39219ec2a160a06cfd0d44e71873e55139ab86e1e9ca7c5318f38aa4a53f6541fa726c3e9ad03899d2c08edc9cc92e01a364ac75086bbd207507ab5a8c36cfce8cafec8c347ea83440874c41b92dfd26461b31866947037fe692094234aca448a6974837e4a20ef7638b57db246b83594d96b8ee543412bec5611d12950f2175671ac25929c615f24d4bf0736f87e2b7176d7b75572099681128073bb2cb057ab0e0947259281a134921dc55fafff29657ac12b68cd90b1e85792f954bba3bf92392e438096249a78e122a064f13559a793ae068b8b6825d010019170e8b451750b68e59754ad601b05c5e1b3e75cd24e30263bf6e5cea56ab3357ca062952e6f4a6c9fa95febf1d48afc8bcf72bfda0a752dcc6f772a86afd0d11ffa051fbc37de7d0d1b1350793a7366ab677df39d402231b8608de795fc81b2ac6127fab16f69ed3085d1db3680ca7be0c7297728bc3393704825fff4c0af6d1eedc176f89feee93d7f4e9decac2e3050c0f2a54233c6e89509b8ca28a696363008a92f65aea84d401b88ba66c8e247e79654a6b8dd2c019b84d42b0d8adfbd07863fed735811fcbe560c3f9104ca9df987b66806c8b9d04f54cd30cefd72c5c6bbeeb887c57d8a91d51a4a542b931a9e13cd33a0f2d97f539014978eb847aee9af51f644bb9005f7467620ad2a99641f01a8b9397e85ac9439a3cd7a035cece962040c34afd9315ad686350d727be987cc4f02140b020e1a7583b68146e91832d831d34b4ff6f098c373670b02326d861404833e26d941a729cfd2ccac12e525359edf6b6dfd915ecdc96e4e4c7aaabe649cc62604dbd678a713abe14d8e8b8f21552330c91e22a199008833a9ecf5815e0123a78fc3fc1bcd38bb0b178eeb2819c46f6ee46f5c75047603638ea6963a25808e12ce0adaca65a8d5b5007d9890ad33b5f7cc36bd222ef32d47822a13763ab2fb6945eb5dd8129a4f70b70d766203379c97c778a183dca33ba01f04f2fe25ab1ef6a003708cac8f4ac17290a587151af02975ec01e52a22900e81028082b6b21e97a105e136a7c684d585ec04168e20e82adba856fcdd2fd6bec05d094fa0b38ad1f27eaecdb0f88045accea0ef9be0eeacc62b01cb1d09648e0912e65d5c3bccbff1626b8d7ab67ba07ffa620eb81937abea693824c7154eabcb394d42e15856649c772158a3674e1c3a87182d6674a01d02e705496a44dbfaa5a839fbf7b718137259e566d5c7e20dedfce52065db565acefa1e165b199d5d110344b6f8b87ca5120e7de80322063d3160a48123c6870e6131a0a459b17aae1a0e9e37ab71809c8bd5d54e784e6506321e8ff0e235e102f85c69d51c3300a05078c2d70dd796d125776ef9f058e2c222b38765491d84f0cdcc9dcd79b81a8fc2a6c9f68839adc9185efcd066b67fd47178411712f1fd91957e968e7d54c1e088906742da23dd7e4660c2350217dab10433c5755d1a985c9d9ad64cfdaf643797be08ff20ab2e3141143f58a8981fc30818d79203feb50a60b03c7a516e18dca50c56335699ec55ebff3b73edf663e89c1e891bed75bae1762fe9d0b9ba5694c7d0767d26668767e6697f98063d1752b286884e92b5a87d1faf152d709e7f05b2ab33fd85cad1f5dbf1a763434f154f0e90e6c8618b3e9564219ed538ba73d6a12bb7a9ee93c024a3b9ffaa88d759d08a7d969a266496ab6a3843324312c729628606b53238cde37331a07912de257b370aa2f7922880ddf493a39a9ae34cc6cf823516c56cb300c576bab9feab485aa9c2c1820c0dfa88ad30b177e265df15d678022c09fd42bf046d11dc5fc3e6c858d9aff356dd9e987fa0c0da45bae76e550551906cf7aba007044daa7de1e78c6d4613a8b201bb84590fdba30b151c57b956a45777a24c2820b867df812fefc1d8e1bdda49ea7d48bf444e17e1c4e8869c7a61fa426d24e687309e8db7f29ea132c61cbe31ca82f45872f4e0c95eb6af687b5bdbc6b48b8f7b94cb2f671f6b8ef5c9878828fc0f86d6a04642f01a884e29d73b3e15a937d4c50fc4fb17c86a9e7f40f53c03b486bd2c3dbef36737ff0696cf3198cf12ae9ed72c0203df6be2c713dcccc38228f480928e6ac151068b9dfd99c07b6a7c5b6003d7160abae2efa342b275805ec21fe2f50fde0145184b517006609d4de7cfe3644608904266303cf051200f21f8e00ae698d6561f7e808d202b080d0ad0775a345ee32640251fdd79409b6516441c9314ef46ced8042452a2e062073bcbb56c1b2b81deaad5183c02a2727f18ba74d99d67c02b32685ed66a99cbef11a04fcd7c42018542baa16db51adb8e768aab9a58240888337a10f3317c0a0a8d4f9a8d39dd41ffcea1071f5ad85772b13f671424c8d13e6882d7c2ec28e495bd522893ee6df1f00997729dea790dc29c39b5f6b46103e1b75c95dcbce3e6f0b47642a0d083512302763755590955bb85640fb3cba4618e76c045b26d100c5c574bc3ab7ae063e4bc8074d19aea4e1983e73baf5040118ccc3fbb21731ec029ace746918ac581bc81a89e31050c461946f953d233d74d09b5b1ebbc7dd76c525646b4d80363c05a58042da678a707625739d3dacaa21dca20e4d334a738ece20f3b03b787ee2ace038f2f13a7ca6e7e57a78d18bdbb42fb9662ec1a865ecb03ffbadf853b0104879fcd621e5253309d2f480efb438cae7743e37948061772dd5949caf1195e482b9beac71071423a9a6fe96f8c7b955c6c75b93395b4120a3d7bab218646151877f4a3ef54b8d682d870d22af2c45f5254169b7c335fc76cb3e80e5c5c59dcf119f31d5b32ba04a3a7a2f3cad0dd2c84d03a4d35ed64328ff91a2259cd14cce032e69e876135f23faf86c704c839672c12a92f56c39f51993f1c39a3fedf97ab3e1c2d7ed717ff9a786b794730a3dc49f94466b06214a06dd674d1d69d427648c9467e2d369d2e310c6119a2ddebfa5dafddecdc7890bf3e5563dcf4eba69fa913711aa629e62980e6b286df06593c4f7c4ae2a620de84dedce1133ffcccfdbcc7f7104023ce3005f015ef4d80c859c4c4c839c0e36808eef48d2da465f40d99aab271613640e7bb68e1f41f847f2fcae703da25ecb0cd1e498125301beca1cbaf85e8fa1a9d5f82d011130c54977dd7c72897e12328b4de38ea55f76626b31c26385b5b31c1a55dc35676b9826bd07556569ad0d7fa3f211832be04e615a08bf2329d99e15a493d0b5d00d631943ca89c4ed08fe2685079904507fabca750ec903f33becc19e52d724d188600d78e3dda625aa150bd622843d22e308305ce0d6077375f7946ffe66012a2c18b1bcf72ff4afdde6ea323a386b44860c28be72b1c62b7a1fe269d5b91116e3543bc6daba8ede674adec9602052921f7ca07197b2f7514207287b8496b9e39af4ec463f39974d5cb96795277072ad8302dd799a0745db0f31ea42d0c9290c2c9c6c8385f908aca77cb939db2c629fe1280706b8d89aa3946c2cb25ddfbe9bdb692e297d2e834804c80e1decf1c1cf1baf16f6367ade547e5e9f10b8dadeeedd0c253bbe2c4d86cbaf001b1ff2ac85ec87a390946b057e6fab9ebc6fa005acad33aa6e987d599f2414800d61ff4b7df6080daef5bf0964b687f78d893de3e03caff2ffa5690a66a12d8e39eadade922e78f5de866cde41c4553577431279702e1c6942a6399db156496313c1c97615658818ccbe9607719d678ebc549f37163276e8f2b28001408dce261348653963ca36bbbe14aa845940cb7aebea51de290bb178af9e34b8b61699776b47b482a77a1b1b3c114c50ef6ce15b0a67aae1ddf0c9ebf396a5d74c6070fe654eb4f0808670978ece7d13e6a5cfdf4734780670cb92dd37d6de1767be83536c01e43069fd6f1e9c764a6d6a928e24181ff06f46089ac9b0de828f55e60dca0ee2f3a71d030ed3421e5965e93987373668c7e390a39322878f60f476e626f242de7ef2b8ee034b085fae664ca81b0a6aa06688ae6f7393005ff3313064160841d32e11dcac4fc4dae6a9c4b42fbef70dbb79ccf07fb729747dc8bc9b1d025f8b7600612118a47e689f050bd097bddeee947bf8819b6c6ce404d1dc348e4e43021e272b9dc46677932df34ca88a32f802f0df72cf03183e3baaff9dbe3334845472030e405be59b4b1bb644867daf85f3a7b5b576f007863e94db95398e9f49d0e77b28c4f21221061978cd1db2bbf59dbaed686dc3b2c550ab16138bf2807bef746abf027f816200c7a8cbfd1de262a966c0a684726ae911031f121daedb2e4a6e006946be26ed4c90fb92a01550a75abc51c66f314149837bd88fbf649ffff674fffa3d3ccdc50cc68f8640e95b294866c79f76a4630e5b6b84f64a1492f811691932f85fc8ea38ed6115325cc7d19171a907f2e62c52e2d1da3ae152b056a8caa186855ea731be1dfc7d2f0642c0ec18eb2fc207600593c479a2478088d29b8a656b740893d6307cf06d08e36ed21cb46b49e15adae45b264888d6495eadc83d5ee510febae65a3b6bd00bcf04ff7960f40b5dffecccb7d22ddb2272d72374926f78bfb52c94b5be0244f02396ec5701d10f9ebdb0d2c3222e72e10c6d7a10d80514e5811b7dc06d66947a0d1685c999d18100a7fe54f56e3527d1d1a829712826f3fe32bb19ef95a4694c8e60248a81baf8ccbb3a7295e549ed4816b6629394e06cc1252109a7204e4c6d329ec01c218caa6634525f0b808ca630e42a98f896df3fbd51ae909043a053d48a701317ae3a7515e2b4e900fdd36f40da0a5b41c559574f69fb81efd8a41c3342efd5194151095c5340a2a3d4aef3bb551f40e79353fd130492a82a004fcbaa729a8f9a07a9aa8d02db838291fca05c61948e926b7edf0ad4b5df83a7774d0c4c9a8ae52f685c96c4475e1191bdb23902b6a3546167f2449b3cb6c88fe11639240ff0b1620b5784e3a6be8a9c36a1ba823b7480105bf1d1ada953d339635ecba3f968ac27ed95b4f329cadf027b0664048c1304316fc7422bac4c38e09ab2ded02cadc00127c5d843726d7526ebf10c52e3f87240fe4d4ad87e32b23cbc05ecaa7b88ee7dd6c4027372807c44c124affb35cc122cf7451f52709c1828e985050ee96c267d7529c524ebca1afefe2ce56bc4d20d62918c2cac6b1364f593050fb371a8b83f382468e83be33369fe6ddc72453eabdd7ec4dde185ebf17a07e15688eec4eef1e00e498d4d0ff5bceb76cce825b861b52e84d847a88e8806ccf30b4ad424b0314f57caac24972d98f17b63688e22cc674ff4539cb860ac62b98bc6284829dfb8adfa7437f88bb0c3ff495a689129e1fa857c8f5870410f2658ef4f245d1d6a9f57e595ae13e167e7b3ad46779bee93376ca8307f00afb69b8fd7faf8ce15b30e11c427c01267e585e575d2c15101d97a55debebf7697dd42dae55b86424dd6ba02450607a11536f275d8dca6050bfb1a8d9fb55100945cc4a15593e58d91b79f1923ebba2bd3b5b6a2f42b4424f628c39a366b3d79db39e0989995f2042b23fdaa3d8aaee58e44036dc48b10f4b43275a354f7878c08f985581c2be504a56280e47d067017bcc31648b1cba3f72bec1de05ae79eba0b0668b06cd724f658f06492983d9de519fdb311506de798e14f1a0b2b39f960714535c36c564b4176e0e0c469e176941ba697da3f68c7ea49c6ce01681617b49612c0a5e76adc7e33316491e54057922894bd22ca0e8e8763f52d0154cb0f581dd4291bc1feb0ce0b4fbf2883808569d9d8d7b55118c1fbf332648f57bc39d55a1af1678bda7e05ec06b40b234e0d83d6a0db1c63b81479ffe54d8870ae69d2381bf1fa4e1dfaccf3317408008ee4ab238e9707744ff1cfe72cda6952a0c6c16a1d552c5855ca1b08769b0e0d3d7052b21e1174dc9f9f3c748bedb1e94a9c9bf04aa5b1fd4e021d7179e8527b49d4f07ff9bba9d89343d4263419dfa848d319c071b87a94e732434f0d1a58a50e056b049387db0255028307a033d79b7d966509a5b74ac8f25fc850709fe21d2acf4ec0a8c43e2ba5f5ca283f3377e4cfb85e89dd71b946b32f2703d7ef1bca5baf42159284e7157e49fdfe7b032e14e5b5764b309a187ff4f1ba727000389b8a3d23508bb7cc305960c3ffd9c94aff1bc847760f72255a311c6f65ae58ddd56046022085d45250a0f0e000fd5d7ac513cc79e95eb2fa48feb993d0488081def1fd8819ae4e3615c89fc31d4fd61b05b0aecf852e3cf07b26c10057529e8944312255c491c2554a8e40daccbb482b6c417539cbb4aa57e2982070050040e4d44bfa6ad5e59246a44ff1c4e081bc78c62e0583b003b9a0ba8afd68193725adc2b26b44fe8272cf05a3df3ffb55eeb9c3ae60fb295c454e1c28b0562dcd6644d3cd057eaa7d7e3b6647d76fe5563a2554e2a5ff58088d57e8ffa0409474d765e990b556be71f66a4adcbf889fc2021dada0f492f1c38a18e95d6ed16cd797c3aff47bca8d77ee5a726ff73a28a65c224332fc1ef3ae9e84d63c8a19271ff512a9ff233353c9e56feff00b68381dc2d4fd55d257ebd4ca96dff25ce803a3ef458803087a5cf21f2a9689f7c3f8896571e155de920e5b52e14da9de829bb4257441762dd2a30820807f230941ccd302cb8610100a44c1fb601e296a787448a17b3bab516d36d2481dc48c44f75629a17233161d02f3be0d5f84c6b736cdf2098d9395f50ed0bcf84ff00375dda667bddafedcb8bbff045f9f4caef6f28fe3e030e6a191140bc3c3fbe4c0080edd2d6c0fdc7e4cd1fffb4090d80d00d09378f15c05142f4f640d2434c5dee84dc3f468d5a9dbc67f9625ecb90fa4c94b35a40a912eab676d0b3bbfbf076a7f2f9d1ee64e41be759f15fd8bc75737fe8dbcc836d8f171ec99e98aca94a942e331ec495b32ae3ae024e495aa95033de6c0b3a02f887aa73d62e7fca6144eb8934fbc279968e4b057ca35e48bf761da4db7c049ce2f7b6006ecee604315bad257f6a3e6499ab02ec066529b848c4c4ad88be071d58f90006c9d786f23a46835ba83f5a084023df73e7d456b080e957e19dbbfeecfe50e4af8c5abd4f8a1beaf295f1d03bb9557f0d6afe6d1add80352c6f6ccd602f4fe8f2a2f2323700707b851fad1c69e8b35eff2f8e9e0850e2d43ecf31d5cfb9b99ecab328a36626e362519968ab016e5abf68b938be4df3a1a504be20677f9c35846ddd65cbf281b95800205ebbdc8389a853d92f8337535cfd8a239b21cb452f664dd08ef82bf66f5223aaaa6970a36bf4eab3a956e2a11f7abb61e19ede3313a2281851691edcff173833f47eb19683631442f1f6e5df175576a203bdc35b30947629b35de0fc4a71d2efaff9f0aa80454128e6ec05cc29f3834e42ee9bb6b08ca0e86e87589c10da8590bd0893d51850f1af73c50ff7835105f1071c14a3ff22a915beed7cb16c15788405462a118c737f1dd3f57ab45447b611768bd26e023fa1dbbb8a5f8a8b99f53f15b462832e59165353f7e0d66c9a6b5b12cf3856a3dbc6dd38905178d820c61bb4580abae24cddf93a0ba3a4e24cd21b55f5507948fba0f65fa92385983524141fe50b21335ad960e895dc590a456e8a7f42ce455fe92ab42109f7679cc0569083c69dee5896e225f0d220245e13671a2150f3190a44a17648804dd12c1289a96e2854951417c884bd06a8cb285869b8d8493f59b6ef84f726e7fc4d643aad264e1b4ced3195497e3c15f82e7e239738164a81890a40a48b4f4117461a6a2400cb9ff1ad508f497f4e64bb8be464850530cb0b6cd6d92e6719fb6cd19970938f5c7351db50bd327630cc6ac6a9ec42285fb64d9808eb7113a7e1dac3e5a23c919ccea8d99156119ea4405a46c4bfddf433312810908fd243758c6dd6077b2ead3b990984124c7c3c17b5957e1b5d16735b78fbbc462dcc53c12525223bae7b89e90031bd721097a52f9c6e5430a0abc05fd0ede0d0e4c90744c561a955e6443447298d12f17405649be6c1a23aacf7583686cff57e73e350827140b6cfd5d52253b048ede3f543049442f15a98dd2edefea4d863dcddfb6215ddc9ffa9f9cd9d93c0a71a72793247da337f081ad55954cf09dcaa7b7c9dcf0f751be4696efcb5dd39f8e887fbe38a4cd8fcb5aac22c576acd49b8ccf52ca2cca10cf0debe0c56609c21beabf7a38272f415920e0a350f2e76c3e6c38ca391598dd6e4d46ecdc2f1f6ef0fdd431747f4d261b6400c5ba069b3c7845a4c1a91edc52cc4544214d96279619751630f29853541f0d3acb8ea0b3694ccf49bbc55167d4c373e609083100838b2bf46b5d3648322b402ca7e21be477ab67377a01eecea858cb0631b6bc13b2941229503fcadb9101fd264fa54b8bb95bbdf0042fac45e942e3cf850fa59302e3ad7c437763841811e2270f55fa911200e42afef1a560c05a5e6fb840b4a225d50feb4e71956aef20dff7f07beef6a16549481ca2831057c89393ede21b9fc86c996c7efdce636e096ed6001a07dbea211caee62c7eed86d8f5b568e0f36771bc054f95b235ddff665a5d408db4d89d5556016322251a1aa0692410daf902970cee99c73d401106bb6ff366ae00bf2836c71cac4fb62b3270bd6cca657ec7676886f44f2f5907c07c3b542e3edf56ca6bddcf378cf708eab7c27be16405f9449ce476fb6cbed2f0d322208abfc4be997bb8e4774b0a381c39756ec12e3b99cf8cf7c8a52378876e1d107853010087cfb82ac6869a907b289d1da82e0a23d2c94f7d134c2d4a54fab5e1443289afa4e5490a273e1a04e6c60a7f32bfa8e5cae475383eac09453eba2f178410f564dc2996d0b90a129c17e15cd1924fad87c1d88bc79e2c67d1c47f915ff3d4c6192f9117e058a617703e2e30bb4083476d2320c785d7bae1868590e52f3065cfde2b491060807439ed3a7b8199e7e3f08aa56309b93c1de8fd49177cf1c6c12fbbef2f044bb4490ed9b0756e700135ba1262346ebc17785b5aa814afbaed5f6b7831c92dfb2451fa1e265614826f28c5116a2a6797b373eebaa7405314c94feb9c3f1e7671bf0b198e695c68d1dca9d6d03a64d3cf3839b404da222d8b1f2175e41a344fd7346687040813330518a1816afa97bd0c1e98469df5fa72c14694739bc8b90e6ad71aa1f924026e6c764d94dddbf1bdae6f5cb86c908126002b62361a53358a2047138eff76d5bb77b6c0c3de885868b3c2e16da3cbbe44f2d14cc2d3ba6d06cdf1b5a0742b5549a19ce68b4f21b7eceb1d08d1aab991dd392c281162de97174c04069fb47b1ca599700a19bd4d61a61f26df0fed058c7b1044090d0a24c1d6fc0b683ee66c444cc4fa8c1cc573e4e01edff670e8e1264e1b05d87a7823d1fd608053da3cf0c6c725300bbf4c9d98431abdd7dc4dbd577f2ef3274041bf60ef4a721f8fb13e5f7318b8b7e5903c6d39cbbd9ee611860d23b419b8a8f27f89718cbcd70f6528724b46bb2152ec33b02c4e6323b324c320d9f8d96c63d7c3070295b7042b8e0c1d122f27fc561f0d7a1dcfb2c44c2e9e017ddbd72ff1e72d10126d9ed9d9720487e5f0d5f2847ebe9a7c70fcd7fb8f116bb5f7250ee56c798d938e21c56098b595f56257544ab08fc98f8afac26a514573b254c83e4fd9b9283d0631e1565a88bcc3d83fde42c191a5900d81ff1670624272e4991d610426706c59b3619108129ff8bd79c7592f0475c5e058e3fc4120e541050aba83ac42f719c87ec126b8127867f60a81175b4c01dd0025e8215b7b3f9c768d80de82ded59490b660d11299288749e54a580f900eb69951580f9f4acdc723711290162eec45ad68d752b7e16d30311b329580e5a0e790e42fc7fad155d99aa1f20ccf08331febf166d129571d726be68b0ce0f64f0810f7ef0c14b0f54d083b107303ce0010f88b078e0c3ffd7121dc2e8c5d3d3d989f02e754ff710baeaa889f9d4ad793657e5a56f783064073ad8010376e0a5e6d65ad5b7e639dd22e6048d392a1a547c4dd1d8c146b885081c3458685cff5d073e781ab252394db968a89c501d37493b8aac26b9c2465867170da1b89357c528d9719f91c1a96d7473d50e06f9f46c15cda5750d1fbaf065aa52a71487a70b89cda54447675c44e28ba69f9944a19cbc5052fcb95215a741612aa71cb446e38d52a27399658957544e7dca557dae7a3a5d3cbdb9eaeefbe62a710ab4530e05a8074892e1b42171521cea9d0ee1dd553827c5618a431b9b9e237da7c8a010a3f8a70c2dfe6b2dc9545592a9aa8c98df41907d1371fe2d35a47b8889730b0d3eec7041937f1f5fb4200e14725a00821650f19f42512dd043429369480b3832e2a8ab14c5271960543288d06448b312c9d8810c1ab2c8e8660c32fe4f5468a69caeeaa3f718ded7317e5c6294c1c5a8220626c68faf160bd0f87f1664f1ff9b053fbf12af9c304c2b0c302a668581faff1e86ccff3fb6c2f8af9d04a38c1a04c695af609cfec1f8f12b3841d73a9a0c2d1590c052c1142a38800a62480196bf6acab91354c5573d574d81510a74f8228d2f96f8c2e68bcc0b3552680d5a7bcd75ea5e54f162077701832e8c387d17297041028b8b27b848b2c51b55733e7475b2f7212b5ceed3a9bcb94ea70b9f2e7cfa6c416ec1a1c00e14c060778e3b0a1060a1e0090afeeb1e2a3169aa2e2d4aa005154b8b1d3bac1388e004526ac7d7cc29ede44eef64e73cd70bdda98a73a3f4b23992379453c7a82897c9e4a45137318979ae5a637233ef6a924326d6e045f303d6d3cccf45a32373ba4e3aa7d34fcd65ead78c2873d57ecd6099abeeaa73d5ad4954ef2255a69326535f8d9d4c7127d2bbab70cd55b1aa73f2dae8cd49ef144a13ca9ca49c4e33e1452345e674758c3af59ec9a24b9b644a9af84ca53dc8490e47b7505f6123f389b94f9f2193a33310e1bfc700c4d3e9ea2a546a64c808d1dee7a9a7c29307b6f04068050cac20c38a20acc8a9028f2a58504512550c7df5b94ca7b4ab4e578de974ba6aea0aa7f6a9ce9c46bed17e9ac1283e656ad28ea67b680741029d3a2aadab131e796aaa52cccbb4a798f372a7174f4d2b14932579a4cd53dfa88c73aacf129d25681daae055f1137417f9c0f086cfd795a879ba6778649a9cae9a9aba4d945f28d3e9dae869668647a6c9458373d168bc5132a7cb942232c9f242650c5e3906e0e97d8b73d5646badc86432997a788b4c26f2c435e95b17f881f26c258551ff3fbc15d6143e684545ca334586e489a7c02e5397e28ece7ffe7bf44841c593384d77bfa4d87929844471c7ff35258a321e33a320e2df00517051c444f1e32f9acb84e4a2124eb1401916b8d22d0b24790b08a002586a11eeba024ffcd754755a1520ff6f708a954091e5eb6582b5eb5d545eb8ebfcdc0c19794f49a36eee9c8efaf4d4dc290b54e05170b1de47eaa3fb7826da7091a374e2e7df09eb840f2436d765ea5613693461c5914b46c8654a3b2ecd26524dc56a224a13492e2442a8340180ff9e92628844c8156a139327384c60f1ff4499973835bd46efdd6b4c16132e989cb49640fdd7ade8e269d94d8c2e11e4ff52620cbd77d625576288cba484f7ff427092b8238927922092040c1400c324319a561353e0a400f65fafdcf1e89527ae3441628eff9aaace94bc6890b8ae1a249070f93a012cd704365027a0800958a309fc904019507c7eae239c92c0139704bcff97408f0096bfae2b0267046a308f68c21156e0fea4a6e9063ae2e7bff6917723ee30e28a360243f775e2a54a739e254ea09cb8368244b315cb4a93d44a1093a3282b5fc58aa1ab4a37f7c9abc8fc4ef7956ea022def8da4db2882abadca5ea028b48928bb8ae2bed1c0258be5e1018e2ebce16047e8e70ea0177880fb042758e34d7039a100147aa3a8798354539c63b95d374776dea17671a31774c629a8eabd1eec9428438feb3b9ea373d8551fcd3555b05444eda7993ebaa45e426572724b59e2ed3c4465c9ba4114781ae4aee534f4d72c83679cd4aac19473e84a3e7a5f373234407847022840fb1972516c98cf2911c32f755fb367711cab12a677eadf01ed29ba7a7bca19cae9ba0ab5f1b9592279b1999d36892246a74a5d23d743acdc8a4bb9ffa0e824c91e9892e21d114d54bcec5d385531ba8933dca7584e5e88923d490499e75a3f8a8c9514c376ac3c888880bc9b5da44e1c9d390c628ff571eb483207b78f294a8e3209ba023274f738ab620ea5855747e4d2fd2fe3fe543404533a8cef87a3a199d66684e9eca9c5443e8a8724869905a49755214ac8ec67fa5725a6d1ed28e774c269217e18bdc4ea89c4e53b036f145e5749a52cd9b9ec511e6e91ae37429ddab3a6fa16b00d9d8041d21ea3888a8e3740741f67ef23404c209204c206238c3387fb04eef5f4566933c5595f755791eed93e9da624a5e2749442392e24ed3a3dd7136f9062c4ec4572aa7927393046668bea46290324a9534288728a7942b1095802813c9fc40831f9af801f5694aa2fb7475bd2a4f9dcac9e4e40ec34dd471d0357255e61a0795539cc23498dca8b4dc62bf6830cacf72a3d0343c851b3d9d883a0e4a71effb32f71eaf9a53ef55294393925b2c6f2e8d62a30a0442d109ea01737a74ae1e9cdc04813d3e3c974f4f3fa5393ff8f82797200960a1f0406df17548255e2b33f7192aa7d314990bddf57453b7c953e4b512795055765a9a7b67b57938c23c3645f289d660b2a8a6a666c824533c5732081215716a1a6154af4646467c34c925dca77197c944e55473997646ed7675f22ad2f8a219326bd05dc4576989cd7d5e25de68aa5f9ca769899b9cd212a36caec6595be4c865323789a69b48ce8f13224f5625c9338a14d113f3f4004d19c25db5da4420cf8d932557dd4579e45789b16856bd2f6eea6d5e3d7d17719e9a1cd54f6c767267b579e8da54611c8cf3030559d05c28f1087108f1fc8bc624eaebff55784b3c404fed725b220dcec1d79548b3f778a1324973baf61e6f6aef6779a6f03e9d2995780d71a0ab9e64ca7b896e12b58d2e23333b5c462e22d70e17273b92eb24d330dda59199934c6572897388e45aa5bb2c52e4a249bb0a3d9d4e579d39c954e6aa5995bd2635713e9d2e9cea5ca9498ea7d3a973ae4a51b228872b639f5379a664a94add5c7b8f61893b2ef71ec35dee3d86bb63d166ef253a7b0cf75ea283ef910317129ce03f4ca9cc94caf4e1880fd714224c19c19493350548c809421c10fae9a1093da0d1c3103d289142871436a45cf99ff1b94c333226d355735dbbe4e8b5512992ec3332544ea72925992281aeab6e94a75626be5440609aab93178de9ca2e293151dab0a2701105f57546a69326dea58951412b99ab4321038a032c283539b09e68e0c9ce931f61ce4c8e8c8c4f35ba3aae989f7d87ca69954da6b2c439a729a76a04698a6c54d0599637f5e6020a022d203b805c60016d012402e5c8e1040a27413889f9af33325ccb84dad43534bb97e0a542d38b733144f5b293178da942377a4a5523df06080dc082f5f3849f19fc24c0faf97cdab07c6ce003864fca27861e20f4544151920891209f1e22447474d041877a5d57da475e793af20b4a8f108b270b0f1a260f53bcbbcd8ccc91bca1d8f0b8f0a4b0d3cb92a3fcc23815f9c5d39df375764a3f8a2b1175c303161e88f8afa71447c719de63f180e2214845f9752a401b2879758cb20a208202081560051d13e8e4ff8a4a49237e3a5d692f37ba4d941c3acd50f1618a0f32297407dd5c151f6d7363a36d6abd8932c9430add4146bba7891a4da868d204b39a3029a3a298546172faaf2967c2e447dde912349658f14bae54b4c9d7d3e9c24bfe6b2751526ff4079cc1a33f1dad46bc24c99311475dab7277d2e8baea65aa50f2eae45553e80eaa5bf3143e2f93e4a60e3e37d1eee7de44a192ca536d729c19192e6a93e3643235f11039b4baf22af721dbe46793abe2938a446f66421a7e3eb9ea4cdab7887223998bc8c4e8a9aae99abcb94c3a57edbc67857f78d0131427ed2a1e1e9ce2948c92f2219374d2a3a825890b943790c080e408091835e836f9ee16922b902831e54282e45fefcb54a1e8d6256f92e20d147228a4292ef07f838e422ff1f1bf78eab78ed84753a9ad62353522511eeaa91487a9b9bb8dc9a4d31e9e7da33c1b39fd7fb58c605f8dfc5b2635b8653255f98a7253937fcc4b535f627d77dc7c5c7ce67f4d47aecf6e62ce83784a6a302d55bd892ecb1bbd9dfc186ded61f1aaec78522ccfead0f8ef86c8ac2ec97f0db2ba1fffbfc409941e4e8daf7b08c53cb52dee0af773556b4323dbb6f8af5b9537496b4b72ba6852bcf396f60639445e9a15965645c35637d91df5cab0d4a0ecdc560685a776cae6eac0ba51fc574ea676caba25fb84657f6c90ffd36947c1291a23251de537d816ff5f7110f625ee97556404569125aaa9023a9d3611ffb1ea18b58a5519500760d5f4e0ff8bbc5583855573819a9d1a0158346e583442ecd0d4f05fcdab0fa9a73e449baa9336b791f0daa8f41a798d91215c8e34444c9208462f1a93a3dcda014bd5a0b54313d60e04202284d73467cacb21129f299caf21935c6d1ef67922718aee8c4f3339685335e622ab33079188cc0d4a9a1be518856382a60e8a97701ea44df0c439e82ef2f1d1248ede5a9baa259df728e1412b8d796af38c28141a4a40c3dba0e4ee24464fac4dd5928dfea0bb68f77072c7017a0361af1dc8ebc8f5c3e9327202faf9d9b98e5ce4e9ff6d20057083ff6a448a9600a4f87f2a6f0920c95712c7bcf14f8566ca495b3159fc576dc508c5fcf8aa7779aa508d5540a029f973554b873574b8f25f35292eb174a8a9274e5da7531f3589d3f5ce018cff1cae04e5800ab272f8f99a03f62f648ed7961019fcff1f6d2d048a25c4ab35267999f7adeb015766e1c0060e18c0c10787ed8635ac1b5a60dd008475430e960d30b06c60810de7d74e8a1b95625c93aa4ade45bc51297932394f031a0f6d8551b409de0aa32813387bb31546d11bf167a5398ed659698e636373b323377be25dabf2541aa7a27233add37333d50f26d32d2ac0cdb4c6b52c61b589b0bbda3c94a5e993a2f8d424aa2a7f4844a50acc74b402f5f8e804e5f43c294028e58627fc6fb94309ff2d4968b1a38e0fb45431b3d06103947791c9d44dbe531c689bbc27288cd2133d74b4a61809ffff4f802270fe15f0551690c7ff05a6f88fa288ff07fc03509b34fb7f12c7c8bd047099bbc42e24422e73975ba9899da23a90bc081e0438505c41e2e7a110800999afe15fe84b4b7c518a224932821c3c207df1a4142c11a4a3756b6e7e0b11e62e2f2436d7897368b44d14c478d2465aa20486d96a6bf22e2a4b9cc2e2a307a524c6681151143c5da6c9b4531235d278a3b7283c7b12322491c2ffcc651af9651a372a9337944e9e379d3cf190599e29f2ec463ce799bc8de62689a62693c9e748de50c24da2295078f65569fa18f172e3984f74c99be4a4731ca1c4a0c9c915dee13d5440211da05009a8c427a7070c9df838710286e0ce13253e3ca1941b1e14ddb8eb0c02819c8b3bc543f8e4e8b953643384837e4a9cf98e0e10ef4137c6d11827a783a81425716e34c6294b9c1372dbe546414e7a8b1c24110ffa6f31c2cd7f4b1c3643bc44774ab5af9e9eaaed644927af1d044777efe82675dac9a319238e4f5387bc50294a8a17becc8e5157dd222eaf8e8df44eb1116d629c22fcb7c0f1a5227cc0e8c628b86ddbb66d9ba6699aa6699aa665599665599665d9bdf7de7befbdd65a6badb5d66217bbd8c52e76b18b5dec6217bbdff77ddff77ddfe7799ee7799ee7795dd7755dd7755dc7711cc7711cc771dbb66ddbb66ddba6699aa6699aa6695996655996655976efbdf7de7bafb5d65a6b2d86611886611886d9effbbeeffbbeeff33ccff33ccff3bcaeebbaaeebbaaee3388ee3388ee3b86ddbb66ddbb66dd3344dd3344dd3b42ccbb22ccbb22cbbf7de7befbdd75a6badb5d662f6f33a6ed3b26b79523a3d28e03e4677111db0c41b68a33fa99deab410e18d16d38dff9621fcb70801c734e2260f69df23de3ba8aefa397d3289ee94aa074da5c2b38f78efec52c42d6dfcb7b0f1dfb2c6ff8cccff0cfe9fe84b42ecd0cb33456a9e49ff42b2a214041e2f665c030589a654e6eea98e8d2e9e9638c5e30a13f1b4b439d2cf8e53ace4bf25086a0c99a4de284751b0c4a909858713f3689243195128230a65448b4ca6118562c34386e8de2715edb3db7635958da3926597114f3505779df746cf13679b191b4fa575648ee4fd83cafc04519c8a1867891328dabc49796933b34519324c79d9b78871ce13cf689ceaa2d138954cb650d2a3ddb3c40994254ea098242e7f8046b428e5653fdadaec1bfd59fd90cc4f91a9114ec900716e70ce139b4c67e7e8165ae1942519a2fbf4ae7df2438a523ff26f328567ef1df8ff50ef237224cd406a410975c0f13573ed460935c09f824e9769dedc886411a98404842a8a282a01b1939aa46a88143399eed47f4b1a258a82b90508d6ec373c3d57684e6a92fca7eb803e116704c6d279e1b3c82addeaade1a349fec0c9854a6f30b1eff8e8843c0a257814aae09e173e4ae612253335f577b49aaad3653af9d0b851a547d5a37b847a5a783ac0a319fdd0a1814e4a67a6491196d4b14408253f50a2034e17373f28dd547193a4643325e7c80f31d410a38a92e903a6ef13bd27785d78d64859fa8cd0d5a0239970038eca8683d28696349bbd70c52d4860654ad8aafed4bc51aa71408d108d10342ea51d6e88b080c81129d4ff17f2252242888cffef7da96cf97f1abe44f4c6d7547572d374f15475e2e824e1351a35844d62707a434991287c8a56e08408e670424d904eb771208e3080f8c289c9c4b50a6df204257b4e3288ec405bc43836344750bea42c71ce2e455c9638c7646241931c8ac91486e6d69a449ddd641acbdd73429b4b9a4364b7fdda5d64439e37f5d2f9b929921e6db3ee3d863c0df71ed3231579deec6cf29e1999cac913d77daed21d8c7007776e7280ae9337a6aad326127747a57aef4e9e37a79a22a9b9c9329fc8131fedd51631ce49a2c4941f6db3cee81d5610e706a7aeca71e4dac42893d428e7b9f7ddb9d97bca6d2ab7e6b5668b5593d766b2aab66665e2d45a2f9abb03ce456377c091b9b036370e36316a4c533c35639ef6becb700fe1159529a793498e6257413999a70b5f4e78784e33a60c9253ef4e7878d0548a3c6f7845b72e69545725af8d767c9d3419a66947711f3949a2ca5395fa5c75866b949c91b94e1255623ece9c4e12d5c3930c36d3ddc3ddafce9bd454e7e726ecd719f6b1e8ace9ee7d09949f6be457dfb5e4fcec171f6fda39ea1ac93034795d8961d86b8a9b570d8148e9cd240cc37a3aebe94484975c281fc3d30e73708a755d5ddac4e1497772a37d55929c4cc39ada1b5d7255945f1517edb287abd79311374f26bf8c362ae5e70aa5332f8bc8f3268a4f254f7c6d22941b85281fc73aa23b35f51e1ac2417b24c5d309dd45268a77c9f9c951e93e4a7baf45690d6bcacd0be557aaaa3ca7d329c5e175f554c5a99cfa69cab5fb13f25437ca732a1079e2ebb4519e53af5dafeae4e25a85a652e16adcbba7bceca4ea4c69b49326aa77ad02da241ac4c3b56ac47b074df1a4b2949c8e9f9c292518c53f284601758ce29f4ef674b2075d3de1f9d9a8bc83ca1c25688aa7df6c11e3fcb7f880073ef86fe9c17f0b0f76f0df82860efe5b7260031cfcb7dcc006bf3a6262f21e93931c1f27d70aff1c517204f311dd4190e5912322c639c2834c3157c747fa6af330ee2d925a85cda18e318a4f93a7c82d62d1c4e8100c3130c821480e29e4403a4df13d5992c40188fcbf0f2b32e0811fcb8b32baff27112089293e57ac48f1c5ff938e28020e33280a47aef87f120b5a16608302dc2008d4fff7284287d205d810801967fc7f8b1d46380009b020030a23fc7f0f2933a8411641d2c00105febf47162d1811448308e04092b2c980133d6844f0ff3d76400208e188214728e1ff5b6040028b1c4e3cf1450dfe3f850a307107e906a63c92fc7f8f36eca080107838c146f7ff3e2c7052010ad4193fa481d55b545312a2819210224a42aa907bed60ee7ec3464db78dd6b9a830da3dbd92694779472b1af2cc33479ff0ffef93d2f9ff1bb8e07f08e64abf65aef47f4b0dfedfc7b7d08007dd10c65fa6b4e31d1f242038080208297c50ba5247e90699afb99b2d584a36d451579c0799f1ff01f8920d59fcd72857bd527c956c9840c90622ae920dba648392ff8c6da8e1ff4b35dcd1c3c437c0f8c83223137652c80cfe5b64f043059f95a9f97f4b0cfe5b60804589062cb8898d76cf054a349c26597651a22148bdf161867f121aff2fc6970250c3af4c6cee8bac78255eff2d67fcb79851fa94364d26bd4d239fad71fe6f79c17f4b196492195cca22fe5ffe83beb44490dfa536cd6b9b6469921af3928eff2ca52041ffb9c5052d20638c55498625b8a6e93da0a46065b84a31e4f1ff297c29863bec9762f8e2ff7baf49497175f2fc420c52bea3b514034d29061c6290a114439037794a8a357943b1016905ffffe44b301c91272e92c629a854c2927791adc1e1094f7842298a1a317a4a8aff2d2c682135dea8ff963050adb14de948c948a9e4bdcd4573242571fe5bc058810a52f0c55ff1a20b2eb6684181165f81961398c0042d2520c108b238029ffc3fe9ff1f054fbc05441082161060714509e6c77f55e10644674dcaac19d1a29ed2cb112076ff80071e022e2940bd8ad56813a32d558a782facf8ff1fdf427e0f1b6020d9218397411affdff32d2effdff32d2dfc7fcf7f06febfa7a7a58a5495ea80f8dfc20173032d1af80b640003b9f40209ce543ec2a99477adea480f1fd21b2517def8944471917ef2920b60fc7fc9852bff9789041dadbd485694ca47a1cb975c98f9bf4c2636d2264994ca5250fe03dedd2453616892a912a7bb778c8629f943c7647993c9936fa0ad394fdf7b49ba81f04e794fba7752949f47a0f9c4448fec719fab34444d9d5d440ea59b289369ef3c15a6b81fe194f904e8e8bcd940402b154e9323702bd9654e8eb94f9f1ca3dd73a6d0267b17915b898dce91bca1dc229b23a92cc564ca8a74a8f790d20f1fbea35595e2d906b132fa1e38599e34841e458ae8fcdc6071ab4c628d118dc8f31e47152ae8aa3369c6a68cb88932c626e6d7554ff57411b9aecbd4478e53b3519e87ac4a524431785554c61bc3b60bc9856d17918b3c699363f64ab1a9f334e3f14a4d6c9229ae31cc5e34ab235293bb8baa9f53edff242bd613823c013a4d36577d051672b4894da73c60f0df4301df637f8f213d62c8e3481e33fcffa504cacf15e484329c50c5093f7fa272d19c2e3cee48c9b36f7de1b1051e28191c3c649a30c73faa09657c79e634818ada9b80525956135c7c98b005137ce02b9109364b40e3bfa2fc745a4216750955fe6b3fda4b48b204971a939b32d71d58ac3bee403d2ae88e26ff77b8584a80c27f94f0c4577ca3841f142b610049b8230958fe39cd4d1286f87f5227e1e7ab9984157ea6e6745f3434a20ccdcee40e8204eae58df904f501329fec8d2ec128fed1e91150ca7b501d37c129563264926936757a2779f06e82f21c345a9aa002123e40c717ff7454800e23e8e8e92619ea8df21cf6148773a0314795553947933982fcff11e6288ff00547e1ad23547184a16a53af53ed2867a32ef1ffa88e9b681d5d7212ef546519618e9fe2c3558d5002230c71a2d1e4141f4ea811ae38d488438a380ef0d524372a457549aac40be5a408737c11b2f8221c1521491152d509071a0f87155f513850b5f31e3890a43463795d3857ed654779bf094acd4d66539340403c7da7dc7ce2c30870fcff1022f0432ab19eface24c61c15af13475d2327c752355e3cbdfa90894f2679b571fe5fa6b1a80d9a17927672279bab6eb1f1c6ff8b37574d6136b0f8534544d73c870d1ffe473630141b3ffeff42f9b80618ff17aa8f6b54592389b586150430be07a14a107e3e08d71c5fd5d8e24b9c763eaa915a02e5478d243f8e69ccf1ffa88aa761833412f0352895f634ae7f202801085d0021e3366a63376a7ae7efbb494c506f99b8b538626eb31ba66ff86d3d42a1941488336eec72d6e3b839ec6e51d329c1fb69a3e6ba4e1cbf6dfb3411f87119ceb67c37f113b7c518d5d9cffe007258a76d5a968998e3b8ee5a5467353eb34a82d7db386ed49b78314fdbdd75200ae476f6ba0d133dbc8d79eb3654675334fc980c815ad69cf66d9df5440cb357e4948ca06833366eb1eb440e6bb1f3509d0def920d62f8669c1ef3b61a13edb8519d2d313aa4f1792dbad3255f9a1a3d0d7e1af661ace96dc4b651b322aab31aa70ad3d4d86550c336ecf3c62ed323c6619b519dd564b8cf55ba326f6a5d9938eb110a4111e4bceecb18b31a7f9cf6e98dea6c4c1093184f1513b41383ee54a7d68de6d4aa3779f25c6baf15dd2919ea8b59343d3392151cbe9c403d66ced3b66dc377c376974d1e9625cedfcea68fb984f3fac94d21a8e92de332c6711bbe16dfabe91c00c4d977efa6b5aedb3a0e6b9b66159a02d9235440cef3468ddb30ab33afbb78e37a84c21e7c00f7f6ac277219bb9ae7651e4675d6dc65b843ed6e3b9365df70a68058c65ba7617bb76f13b1eca13adb8540dbe12fbbdcb662b6c7bd31aab368eaf58cde683da358d3240fbf1ea150eb01d4dbe6b66f6f1d763d6ec31c9a76500a68b1bcb1f1e3460c6359773be86a3d4221932820d66519c75d51fb3666b7fd509ddd7679aa8230dbd1eda5a931330205dcb8adcbdc96b371e3bcbb65432a712ba9b556aeeb110ac927e0a7b711671ab6e971df0ff382c04d6356eb320dd3b09dc52da23adb89f03ec3740f7d394020be57dc1bd6f98abbe3c611d5d9bdd13434c930ecfcf42cb7874c8c862689c35024cadbed110a799c809fa6dd0f6fdccd442ed3acc50c00e2ec6519dbf6e37637ee8cb3fb036eaed356ec46317b59d6f6cdd75a1ff06a8d3151133591dbf91befe7f5801cb6b7de361167e3266a7b519dd5dcc403da116f3bebb80ebb1a7359d47c07c4aeb696cb63bedff6462eb3180f20b7b5f6b086c7ac472ddb3e5467b35b0010c376e689577f57d4f2feb86bad0ea8b99c69bdd96dccc42d6a1baab31b4d13f06ee3d51dced6cba2be5fce2c77998019bbdea8752397ed9c7587a13a7b725463df12f0b31ebefa72db1d452b661daab37aa318d53ddb8160b68d9bdbb6718bf8b3daa6797aaf112560b7e1ef661ab6655a67ef67519dd5210714b76e14b36c6fe2a87ddcd7a13a9b775188ea9de570402c63df1ebb4ef36e67edfd509ddd262f73588a38e5298e9ef69a6e404f7779cc9a976d5a1671f78d230fbf9d24e0a7613d6aa398e92b66ec759c0e01c0aec376d49dbd5ad77d9e1d519d0d336b2d67f32eca7c6c404ee70febcf6a6cb3163f0fd5d92d4d8dd90090809fe87197cb1ede466ce33cef0898470dbbdad3dc87b7a67d1caab3284665cc46310266baebc69c7dd9ce444f5b8cea2c9af6f08b096212b353128dd2719454958a59e224067b6202350cc39a97656edcdf15515d757276e703b14de38c61bc7d9c673dac519d35e2e85088eaa4498ef67ae0a87916dbe2b62dd6699e87a13a5b846e7bbb98202631373139314131413b31794331c24ebe1e3ad0e64dfcc6efd3da7a3b8f9936492353c5cdd0b3260edc98d630bb8d1afeacdebc2c268849cccd54281f57b8ac696aac31d855c594678a8c09da8909ef76a6c82ca532b3343566e2068a5ed78dd7e6ec76dca8651bd559cf761a98793b6fcc765b37ea0f6b23aab3696a0c874c92e8db28cf5a8f508865a0dda3b66d87f598bf31db465467c3ce765b8f50e8dd14e761a9d1305cc18601c0d0225b876957a161f8429da9b9678ae78e26003b0c11b1212f679891b1e12eda252f711882bbce3a0c4000029089d9bb8739e8c053ac430e3242ac90cbc6e0a04d1c6e54bb01675ecad8105e35048086cb391aea4d240037b444dc76cfbc67b03a04192283ae2186191886869468ac1bea00b3da4437bcf41a5c6c0e0020f2828c0b361cd202d10584dbeec582dda81a56185355989a247a86b993291b7ea8704372dc39a460c3dd674001c5bbcc210d3ebc6b43f16ad1b8f0881ba521ca861ea91b48364c8f760d2f030e6488811aa49dc2a60f1964d0c40f205f833cbeb84902879d2f71404a12205f0327e071f32524e6f812124ef8d21517be7425c897aedcf0a52b44be7485fbd2159c2f5de9f97f175a28a5dd97a6e85f4ac1152e147cb4f4f89b9215d597ac2cf1252b38f87f19dec80064f84a456cf1a52266f0a52a307ca9cacf97aaf02f5581e24b5556f0a52a40f852153bbe64a5862f5979f2ff25ed5db868e2c24511901f3858fe056707ef6294054e1b29bcf08cf12f3c31f8171e1bb8f06204f52f46b88b0a2f3f5e4c491ec6f403630a1fc6643e8c29010f637ac0c3989a781813150f6302c1c3985400639ac1c39874f030a6351ec694e5618cfcc31861e1618cc0f03046060063a400a89cffc779520e6ffd70e10546092c1e4689153c8c1235781825d6781825e0781825f0789825567818233d3c8c91ef5fa2704005d20a28905e5678e105484905cba6be654380b76c7c2c1bfc960d02deb2b1f2960d136fd974e02d1b2edeb219c3b2b1c15b366ebc6593e52d1b26fcff0b301fc0e30917171688788b0527de62a18ab75828c15b2c88f1160b36b0218517165ecca8e35fce60e15fce18f22f6714f99733b67f3923e75fce08fa9733f019e6bf9ca1807f392302ff728605fee50c0efccb1922f89733b838238cff5781051580ac00e58e7f81f2847f89b2c2bf44b1fe250a0eff12a5c8bf44f9fe254a927f89a2e45fa2f8fc4b9403fc4b94d4bf4441c0bf4471c0bf4441e25fa23cf12f5138f02f5142d0c20a302cb80024e86180f8f03040500f03a43f0c10211e0688110f038489870132c5c300b1e2618068f13040ca78182039781820693c0c10223c0c90253c4c0b290481c18af62f5674fec50afe172b3ffc8b9505fc8059c014300b38c1ff0359e105c8917f01c2e44b18b8e35f8038f9172053fe05c808a4e8851f16cc8b1c35ff22c7917f91c3e75fe4a0f202c4fc173950ff220702fe458e2bff224706fe458e12fc8b1c63fc8b1c36f8ff167ef850e3617c74e0617cc4f1303eea781814480f83820bff6fb9c0c8b4f03032383c8ccc36c30b761ee605a78779c1ca85172d8efc8b163a2f2730c1bf6841e55fb418fa172dfabf68c180172d28f02f5a48f1ff2b6041bd0b1620de054b10ef82c501ef824502ef82050a00acf083851f2bbc2094e45d847ade4588cabb088def22c4df454888771122e25d8428f02e4216701102c1bb0879f12e4263bc8b500dde45488dff878191c18d7fcb0d98b7dc10c05b6e686fb9b1e4ad2142b801c45b6e547109c00b005c5c28cde002c300e8c0e3ad2c32bc9565c85b5992bc9505e8ad2c446f6519e2ad2c54bc95a58bb7b29cf156961dbc95258eb7b238e15dae68e35daec862d511e4ad3a7678ab0eefad3aa4bc5547f9961b52deaa8388b7eaa0e2ad3ab278ab8e30deaa23076fd5b184b7ecc0e1612c27f278eb091dde7a627beb899eb79ec0ff2f030c961c10784b0e29de92e3046fc961c65b7200c125c891b782ecbc1544ca5b41c4b782f4b78210f15610265e0000c40520a520330ce1796b48f8d690f3ad2142bc3524026f0d99e2ad2120786b08176f0d79c1c3c4618535e4066f0d81e3ad2176bc25d3e34b53f4b76462784b66c85b32dc5b323d6fc9906fc934e04b4674e04b46f8e04b47b47ce9081bbe7404922f1d01e54b4748e088107cc90804fc3f17809f41080c3bb4d0420b2fa00003248b77313ac19732e0c2bb1885f12e463778172335dec5088e77314ac2bb1ca9f02e4730bccbd1f52e4744dee5a87b972325ef72e4e45d8ea2bccb117f972306bccb919577395a22880b174dde858ba277e1e2008f83101a6ea8018701e880c307b078eb035bbcf5011dbcf50124bc7505cc5b57d8b7aed879eb0ad45b5740e0ad2baa78eb0a31deba228db7aec8e32d2c02f0161649dec2e2006f61c180b7b088e22d2cbcf87f00c0008038acc883fb92141578983c940071c182e2c9bf4071fa17288cfe050a22fe058a26fe050a0ffc3f0b405c70f9165ee2381f268e201e260e073c4c1c13789836a088e38938ac78172c547898384cf02e421c789838c078983868e002232486172c33b0b7ccb879cb0c03bc65c6d05b66acde3283026f994182b7cc788165461a6f99618487898306ff0f038036621ea60d240fd30694876903f5306d183d4c1b463c4c1b503c4c1b1d7898364a0080162cb10e1658c8ff569ee1adacc35bd9be958d7849fe6bb8fe5f70f957e10789052d5801a0838a77a1038b77a1c38b77a14306ef424711de250b0a5f9a22045f9a62045f9aa28b2f4d61c6ffb7b80c49f22e98e95db025ef8201b5e0c28f4fe17df4b880172630a53a363a423a028b9db0c41dadfd86255c81e5031860a28b981e2cf4d8b9a20893b6b9cb178cb689c29404983ed0d020b14172cd1c6952261df78ec909ea938e7be7baaecbf40101d79126c3d4125e50060a5c1881c466dc250a56901cd9e13277d922822862f8f7e1430a3c48bbbe9020b932da7fb0cbc6071a5598e02a5531c4ff65324dc0087bd58ce5ae7b48ef1e092875608cef214827e7e6e726e73a721d69b207a6ea800edfd15ae4c4a9227ba3a958e4dfc70b3de6f0e1c6fb58e37dece00c94f7e740f7af9393f5cc64ba45766c20ff6726d32dba504ca6ac48eb6450fe7db890c993a7a88e51ff3e5a4865297c34756cfe7d0061818fa64e5fc1c6dc3b4798e7dfc78f201b73efec14eec13c7c34757ca8b053d82c4bd5929dc23dbb2c553c4a89b712de936e9e94f7f4bd971065bea337be404aa6c813a4e003051f3e3e5a7a907cfc7f8b1636475a9e8053ac5bf270021374139126e7c93ad9718850be6485a3cd9df61d85679e79144d861be5a88e734c92e794c4d13aa97ca449f389de363334372b4b554f2f553d931c4a7a93e2e6d6296e9a1815b451ce9392e613701791437ba7c46426b5aa00bb9b9b248356e60d4ee1aee2e11699240f7a9b4fca52b504e3f0a052c44d82208152949f1c359ff020bd4b12f31e90f3a013a341e6937da636ba9b5829574a264593b249e1a474523c29bd6f5d925174494629cb9bd1a72c6f744946b13155a3c97b744e9a6fa870d6a3a269f3c9d10e17edb57ea1b5b603410f0c805b779c3762a3e669fc5d0deb4105d8edac61d1d3d9f634cb79d85ba2c705c04fdc99f6468dcb324d13b1acf70885688f29c08b357cb96eefcc4a016e3adb30b7b51db9f1dabba300330ddf4cd430cc6537db30cf022077c79cc5bc3d9ce9eecb2a008a7b13bd0e6b9cc7fb699c8502dc1773e397339db72c7a1b7e02f42e1e3571db302ec3b04ddc4e80db3662e3b869df98719bf735016e77cbbc31e36ce4f4a7651e13e0dd5d676fd679da8a9cc5b82540fb598c456f1339eecb3adc29018af6f3eed572368ed966fb26018adc78f71dbf2cd3b4d6444b0150bcdd27ee8c615d8771fa8e57408d715c87655eb7477cf5b79100bdacfbb86fccbcec759ea7f50440cc8a1a8b1a87e5eee3b2cf4a00fc2ebed65a716b796b5f170150dc2287f3cd3026defb89fa0850d4585b6de3b80ee3ac683123400e1b37f665f7e2adfb382e5b01334dc374de2366adc759d15601b16e674f7f9887ad8879f82b02c45ae65d2c67e3c5ba6b3f08801bd76d57143b4eeb72e789d803c0cddb306cb39edd7afbecb64480dc8745dc8dd8f52ee665de760078b7763d4ecc324cfc34c7650d00359ce16deb3a6b77a6715b6600683d31cb448ec37ad438775d8f21c06ce33c5114396cf5c88ddbf60450ebb6e6b6cc66f66ebc6d9607b8610ddbae1e394e146dc69c13c04e771897618cedecbb22c6788059e6b2edf3f4a76f367e1c4eb192f43601dc5e763127e68d1335718fd8d6310114b30f5b6cb41be6b4b6e1b1d6ba04f08a765f0edbe2f5f4a78977d3ec15d21de078adc77d571cc58dd3aec66addee1324258099c7e171d4d613b1fce10d7fa1d56c12404f7f19c7ddab3f4ccb79cba691cfc7d9017e9ede30ad73f7693bdeddd5fa8516b3a4294875801d96e94f6f9be6b00ddb31a33a9be2f066aad0de24a42ca01eb5d65fb779581433a78dd90f243a406fc3348b3b2eebc611e72e4b39945a77ca8b6a459190007a98e5aec6f29669d9375ebc95a43940cc665914f7a82fde3e4cb34700efd563866d6fdc6cc6f4dd360a90e4003dafdbd91377de32ed719d566bad5e68b7be1901c4b2abed2b7ed867b911fbec8f9398989f9d18ae6f768b360e101bb56839ad356ef3f467b1ad08a0d661b7ebec376a160e507f57f4b8b1d39cc8619ca70561363d493463d6442202288ee2b72fce5bdc23b6a34675f60d306ff9629aee3e2ebba2b679deb540df16399a768eeb110a3d921ba0c689d96edbc5f6b8338d1bc3b04728aca421801af6c40edfec1bb5eddb6e568e9b10408ceb446e634c6759e78d1743757688975913521b60966de3c7d9adcb2e1ebb3dc4778686f8cec97b6a1de2a5c606e87999f865d8c398a6bb8d33aab318c6d971e37a84c218d21a20f672b669d9de4411672cf3509d0d0288899ea7bdab75a238da6ed3509dd59805da4a6aad6126d3932ccb7d53eb36c971c4b5d6ca6d97c84a415203bc99f5462ecbf0d623e7891bd5d98d6215109d5b727348698058de78d4f0366e3adb8c392080d6db3eabedd1bb19d5d91d04f97596bb47980dadc52cb75d22ed0720f6f697799bd5442cefcb89a8ce7e3e00b12dda0ddfdbe111c35d86cb122fb1d608a3d9d70330d35896f7988dde96efed2c50ad970720c6e1f1e6ab711ef77d9fa671df0ec04dfcc64db35b1cf588653c769e112434c0bbe96db3cd36e671f87ab90bed8aa4033073fb665c763bbcc50f7f370760c75d6c6f567b62b6c54dd41b12241c805a5f8b8d3b13c7318f76b43700f7bd98e6b44c671c1eb3e6509d253be9d95e92a90a09c906e0e65d0e8bdede5dc6ddd88db59a9c4c6b9077c6dc97bbed6e2f09120dc00deb8d7dd9d319d769e2276a1b11090b988dbad37a13c56d73a2edb20648330033317f9bdbe2e5b4a67ddaadb57aa1e5523bedab2b03d0fbb2ce469b7d1b13f786d91e31eb362c06e0e761fce53d5e7cb7e6b0a7b52eb40a20c100ecb4b7dd9cddbc35eeeaef03827406e8691ab77d1cb6f3367ea3d79901daadbd0fdb4d679c88ddfda9529c02d59a3b99aab556cc86367732a5711c08482f0047bc715b86c54e8bf766dfaeb57ed811a432c0cc13c711c376f6ba9d619d0b404d5b6cc332bc619be5b09cf1d1d4f19820b500ccf4a6bb2edb36517f4d90c800f1277e3bdbe2febc2e6f1b461a03bcdee636eed372b6d8c55029fed150293eb5557ac500bd9b8956fbba4ee4c6d1e3a3d957f8a7d65acf5590175a9204482c0073367e1fb775b8db3e6fdbcfda90c200b18fb35f67bb3d66ec13b30cd5d96b3d30402bdeec7e5af6655b96bd8f3b39aaa4d693a35aa358c56408d20ac00c1b31bc69dbc5c6bcb9bda900dc3713b34fc4326de3fd69390560d6bc2ee7717f59b76d98dd43d90ce90bf08ef87e633676f9eb36c76da8ce0ed95be22c88e4057837edc3d7769c68519d1d22c5cc5e6b6d17a0cdf9b3a3b875198f1ca7711d27c3b36f3d4221111217e0d87977e7cc6ae3b558bedd46b5982026a7a953eb16e0e879d9d31adbd88e7acb32cefd7a84c2204828003b8e13477c3b6f13bb6d314c0b50dcf9e6b1137797655a77c5138058db5a5b2fd3f2d69b134554673f9d989c98a0144797e47d02d51af4f50885a407904c006698b7e54de3b29b89d96e3647e38eb85190e7f5088545a412805e863fcd7979d470fe38ed61941613c42406adb57a3d42214a2201983b8bf1f86558db70a63d8bea6c68af97d911805fc6e5cb7d167319c66d8ba56c3d42a110290b10fbc64dfcacb839dd6d2b8a241180d713edfdf2bd23b6ed2dd3301b5a0f03a41080da9875d9e765dcb5196fbb1bb79334e38a45800402507b9fc5701ef368bdad7f6a45f9596bf86d687a52216101669e88b371b459ec3c2d8a17d5599e865bf36c82b5d630dcbe7009d215a0c87538d336ce6676e4446c247d00c462e7d9fb699dfe70cec48cea6c8aa3a3566bde457affd41a13b41393e2e8925aaf0d770aa3a3e6019207408ed3b277f586650fe372d6d55aeb104e6b45b7e6ac00bbed7dbacbf0f7615a632cab02dcbc8ed33c71c49d15eda6454d87d401d0e3c6edeb324ddf3de22e7b1c00c5ebdd3b627a7f7ae3bc9d6d00ecb2cfd332c7ed6c452d7a9e06c04f14bf9bc531e346cf5a4dcc00a86d1bd6c48be96dbb9df76d0c805ae674663b316b59db5987a900eda65dec6a797fdbcbece52e006a19b7b7c76d9c16f715ad87ea2c103b4cf31613c424060810d75a6bad5e8f50a8224d016a9ea7452cb3f6db468bf2225c8ee11059969bbb4e34cbd314fda40047bdbd2ebb168b1a1b39320c5314887e6d4c10938e34015214e0c6692d5b9ced311bf5ce2eaab3a52a95952a9e5a6bad55e354b5d65aab677b8442520d481600f5a8c7afb336636cfb3286519d25ba46fcdca4902a006e3a6b9a98e9dc7976fbf4c753cf6ea0a671aaacc424ba3ba7cd6e0a090a505fac8d19c39add57771a4675f6888b2151c6a5f8ed3215559deb110a65484f80f7c3ecf76d9dddb066f3b6a13a8b5d200ec525ce9d23da25d6bb085565cef608853c242740acd3c4adbbee6e6fb39ff6d55a2ba909b0cb3c4fdb32c6306cfb6cde9800bff1cbf2fe366cd344ac775e02cc59c656ef0dbbdc68b36ceb110a9d909400b576f1b765a3eeaeb6eddce1f8404a02c4aeceb22f8f16dbc47b450a801b6b4fe43c71eb9bb12c9347bb09ba8df8ce014857403c6edfb61b87e12cdbdabe1a4742021cc7b1cbf6ebb4b77dddd65954678db699a11b084d81acedd0b47fa40980e3d77d58b656bc9bdef4385a4c9200c8d96dfc3aef5e6dd45be761a9d0dc65675727cf9bd59b2a262846dc5431dfdda4088099bba3bd63b6a2c61bb73d8c3a02c4f2b55bec2eb66d18cb1a1613c424e648eb0c99d849adb5f693dbae4728d42423c0cbe9ceb356f334bd656c7f9b15f0669ccdd8a7b9aebb5967fc91aa801ad6a3cd189739dc65fa5a8ba69d540478bfeccbbe4ed3b48ccbb096a1bab093d77e240880ded8899c873f3d6217eb380dd5592edca98d3a313ab4d96bbb8df25c00d203400f735df76d1dbe18d6d9ebdded928800b34edbb0ac5d9d759bc657233900d4dcd865d8f8755a976f8737aab3611686432a716bee921a006e6bef883fac751eb7332da33acb53930c354e156a56233100cc1a8f1a877998b559b63beb5d9b9186003511639b77f1d6f076add6a13abba51bc8f316006a4fdc5da7699d368adb873f0580dbf8692b5e716b1d76bd0c4b00a87959be566f98dbb277b52804988d632766a3b7e9ad69b7c30800b5ad317cb54c7b3a7b9bdb518200b59779a3b7e18d6dddf669df8dc63fb57a5c8f5038b40247bcd92b6eccea2f7f59ee8e40ce6a4c77d9e33e6c14b1678d402d8aa3deb0b1d3aee8755944757685cb6c2b02bd2d8b7b6bb613c5ed6d91fb3015b85d6ecb9a1eb1cdb40e1bbdcca6a0e86119fb3a9c75cee266bf8ceb110a7de8e0eeb2cc66ddb6a3b8652b76b596e5ceb56e14b5b7829f1eb9eecb1bfe384fd4ee4ea9cc2c0402fc6eb7bd4ebc223676d9a7e91d04d99fd4cad11d84c9cd5a532a93eb110ac513b4e29761bbb9acb3df77f1b7e570d0cb63abcaa8b453a9853dc9143222000060d30000f31000303024188cc6e311995834a1c60f1400025b9a5eb6704497a85994530819430c01100000000000009360427b483ab5f902c31879a24f61bd0c72c9c9e09789d8ea29b55ec7c0eb9834a663388ea7e35d1803170bfd03ad702e4958c304abb68cab920e64b0bf638c9663c578f063d5a9520ce82e863df4d9f7f69af55698f74a58f5dc64d3db6bb2b7c2a057c2b0e762df4363d65b61de2b61d573b1e9a131d95b99416faf616f857daf8459cfc5bc87c6aab7329bde5e93bd1506bd12863d17fb1e1ab3de0af35ee9aa3d1723b087c6a8aa7a75b12eb184292097ad6b285092a274837eb9315757742034f0a8c1dd4c9f689b485dc61a587e27c0ff81ed321023dcb50113bfde780ee2a70279614c727342fc422c81072437e8d1025785fb7ed18bde1cf5c72971d85c22937d6286b469a4dc08224a1a7cc48f63b5983ef21f85077a110e9cee20aa02c0d89067ccb3c6ba0dfba46a241cbaf4be5d89996dce8576408ef0ffb216516bdbdbdc674e2f94df1ce7e3350d345a5999300a5a3f145fa4322f2144123358c2040dd60dd109e587177cc04849a38bb9525a076153e25d6e27b0bbf898ba362398badac386777f4afebbc0dfdc55ac7b3c4056070882f820f498cc749a05767b612b245b4263f2d82bed41228a1dc9130074cd30bcc0f791e9da3f9f94615fb169108f1f95c5b9f570e98cc3a0d1c57f9aafc63e05a03c86bc3f7114a5e3fc056890ef11e6f24a556219ac7a3afc1a6632e10b0fa560d4922c7af45dda3ae0a7005d6603deb42d6d7f22a877e316513bda4ca6381d2755155dc072990ca72e858d23aaf14cbcc53905f094ac7e690a874ebbbfa3cf64669d5362886593f626757ca2b3b5eabc9d9736e0364a023f1c93ee51167a1b026620996f912b57da7914fe700761c6497cd45de9eab057bddeb5d66f3d203d031886b541ed95800bf5c3b5fd024a3932c5cc488ea2a6531a00a66057ca0b9bf418e19bddffcc9b992472622dcba5bdf4502f1963cd1cc3451f58ecd539c39ae1d265f408d91d8999ededc5cba754380a8032c7ba98f565dfb0601de8c684b16b6229d5c540fbb969c2d77c03759291975af6839ae892d26b042e3ec342d85ffa91396cd5dbc6ef93c20d40038c3933c4b91baa42ca327243bd62442b4da4213a09557b37ed7ebf0dbdb48cd8c558b99f7e93317246f12bc969bf59812e20e5b3964af086de529d2e84794ada6e6082cfc25077bad2f5c66eda41a462bf5175bd1896eca61c8c7864bd3ce1c98614fca2614602ddb47b91c1995f7a17b35f2e837660a17a2aff715232493557327058f9c55c4d5c01b90f220b0dfe96174fb4832c61c8f7ff51b2958c9764ffe15f8287e06d9867bb4e3cf50f92710bc844f60469b060774969e27ce4c8d233c450d70943b31ffe8fe94c197d5d6a6b4c78c0cd1e61ca629b55ce6600cfb72002ac44ae98de7f4b4f1085c90b84a768614901096892195db45258acba971ad70a9d1be5449d9ac556765681752b7a2430af5c67423b2ac5627bd1a87e7a034bc2fbc9270af4393c7116b8134c4703c0267d686413ea5455d136fcc87612cef23326df42225e1d6c7121dec15f4a5d31122ef2f78fef5906eb14acc2ec30192e52f90193140444612d57f62698386944925af8e671098bb440d3bde4628a345c89fc5f745802314478777f31bca41537774b4575324908744f452ae90dfd55d2e93650b4aba76a8ae81683c9de3b0c4ab05303d2fae59eeb4936fc0b6525b8f44d6d0338701c60bdd700feab178e04ebf805aca3534d741dde16170f7fdba63d623dfb6ecf1b24840168cf6b52369a89c2450d5519d51257bc138acd4d9a4ce629f51af6fca11302f16307e1726f98bc0279924fdc2134c6de16fb041f09b1a5f68b206b47101a65cc117788cd2c55ab62e1d9fdbd5df5e413a4e984eb91120d7aedc7dc987f53174ed71b22ab797d37da94f0ec04ad8facc978e67e7c70bcc1677fc060c7841a43516d0ed24a346d22c21a00249cd9d3125e453e6bd3a05354b5f47eaf5e363ae2e72f835b56e5148e748bc3c0579388ce2e4a47989895a8f0e696cd054fabdf61702bb11b72d0206bc913e02f0afdb187dfa68c41341a557810fe595b8495ad02a72c40de20bffc3b8092374ac2a16316e6a2fdf6842383011a7dcaa649c58c1680bd9ee8faf32b2c123255f7c50680ae72c55540472ba2aff4d14b6ae8ae36151d7d8ac2111a8e8884147477f66a4523eb44c69d5097f04729d3b3a0055182ab20fdcf5f22ada6c5965ceb4fa536b8c1effacc6ca54591b47a73091e0a286f49a9b9a1192d843ea962fe4def275a7fc9cfd211561ee6c97040d22524b076fe9a74f32dec8e192be897ac0914ddbeec62f89cac5de80a3e267bc3b9a1c95c25c62f5d78abdfdf858e3d44c053a56a46315eb818b97addcd5bcab8da1c3afa0d70f4354b48dcc4790217992d2b162f5d44db9cad41a1bc540ff1e80a72d3a923609d8e9218ed2e70c821b5532188d8d12b3e66bd8bab698a526ff0e4e04542bfae0e728ab4b3e3faf1214ea4d82e4d9d095ac5b38fa25079a2deba11c84055fbaa0e3a88bd357ebb1c89ac4bfdd3e73729c9a71e05edeb62ca01e6988f1206968f5af4edb3c98678b82e98a2ab47a123e3f947d3841810742eb2b6e4605fe7283c4e337baa2f972f73345d1eb4ad182872e2b35864fa0bbd06727225727c7c7c48b7a22e2a41f519fa5e90539fff384f021265280f4da1c047216d64f477270c7bfde8392338fd2d1d3f2a2a918fed228bb6888c2aec05b919702da2f55b40f5496a11280d0340f9cf27598385cd9c2974913b8e4df500397d60547a7614bd142b2dda117e778861e601948558bd976cf1707a0446aa73ec37a5bf0108acee0a35aa48d3a9c73235049a402fd5a11d4d23ee3af263c8f78e26baf2d3e4c0d91011cdb52d93e02eac8ac737ee9f7c2e67ebfdcccdc216a6f45afa5d601258eca5c2aa9b3a44bbe48207deec4996c7fc808d597dec588c067e486c8d2aeade98e0591a2685565d465d654b9a6651741272c5375f1c53ad14fcbdc94d0313282294a58d5c06b4e059fe29870bfc27daad52dfeadd64d968039165e5c17efe7bea248dbfbec6de31419a42d892e9f5af5cddb70b7928bd4df1bf685fcab217cd52df403e767806d77bec8f0a727578050890ec86d16affc0acb441a9f18e28c082dd8b3b56e24f9351706452b8c03f9a470079376794f8d449017ba1ea9052a03cd79f66ed5deef8912269ec2698d4fe413a38791460bf27297103b0c450c635db5e37eed6efc01cb695e6900824c78f004ef57e11e74314b341ddce4944a3d19fc19a35990e17a25f52555f5a927d916134e5f154c0d7f5864d5fdee26c4b2729cbe2f4ef16bcdd120b45ed7112b400ffffe705abf5dab50e22c692d9a415ef9793b99f0eea86535f9fa112d868d37cca12ac0d845f160db3643e2fc51a4c10e5e49ac3a5d53fb05e34bdc83f78969ecabb1e8051d94aa9a73830455bb541cab808df4a37b20be70c15939cfc42bfb064a6a8fb078430d9012ee24d574f6db8ba3e8755aeaddc2e86aa8eb9065003a82ae290518240f02613e0ee3e58cd10239cd76f9c4177d38679a9fdf476580af84fafd34e4c95f326b086997b6e0d1e01d904ae916ce809bae2de19a71b47856d6da08dfc7e7ce7f8b64024a4bf2437aee6aead52f5ce59ed06293fd74c8a868fe0af118e23543fb79693a8df54bf06bbf01dacb713f8424b570919cbc07262ccfd894763889e39458eff31d2a41bde693a4071c6188ee13e8e12f01dc4cb5cb98fd11337ff60b4c25394014b64c49195979e33b5cc1470c81b96cd860b8468468bff47be850fe707804082163eae47dc481c4c0d3c12219a106f33366ea9ceccb23740017aa74957ca1fdcde196cf2845917582b6612d067a0d55066ec26346a43220ddbe7eb3591c41339e0c72416ea83b6b8120397b82a5388e652822d01504333cb4414b901093c6494511a33ac603d955c374301ca3a1701ff690f43da3aa76e717db08032ce97f129ff0d9788c93317a3c53104b211d7e02219cd7c0097f01c46c90404584f6044f27d88e840d63157eff3148b3a512124651a063bb08572e424610ca4afadb8bffb5a8083adfe3aa0aa3200bc8a289dbcdad406b92784635ad672c4c704f18e3d89154091648052ca7a39b909e0e60b97d61ba73311a8d8bcca26c2a90ffcab06e901d0a2b8d00978a3a1b7e728089dfccf210b401ebcda67185fd417fd602d95c2e22d1c43a605303466b290dfe015a5317de41d5d4f5b4bc5715122ed619cfb34d8fced23a3c005d1ff9340783809dc6feee2a164aeda0f39a37d7cf53e95a829206d7f7bc394e3482ad4bbb222bd88fdff8d717b53c769f4b76fd1bdc5355e8dd5bac33d018e9b5227cf12708c9fdc110323d3ca857614bffb15f8adf2771e69ec0f5820aedbf8aae73758261e81b784fb6e30fc291513deb32a96eae5f80d8e188c338cc067d257d7f077b4eaf05ddcb4dc98ea3c44a3ff058af592a01feea7e7096186f77e1962c2bacba52e57b6f430e0c4760f1d9effc4ab13c1cd1498ff65035a630648c245053e064dbd75f6597d62fc27cdcb14fff1f1ed5d7dc11fb83195f095bcde2f83c36017fff2c016ea8ce4255dff94b7fabbb6df5a32593c50ea3bc7a19fccb3939d64907f83fda9ff235e181ea5f5d8f2c6181875f74b696feafd624c03b6310c19a496f46b25e93f1a9dad7c2f5669beb52807747c8283f753bf7afca1303e89fadb4e8f4d37d887d127ba4ff1e0cd79f0df9fe0fc49abbdcebeebc7f64c052f9b3877fb26e337af1f762f43b92b79b2b464ac3da4e32f8add45b73a1a91cc0d71222f0c4e2a57d7e215e07f356c6be72d4caa4efff8f27fa9b9aca4b737b7895b3e78a1f73554f3b36e3d58c2c43d452a9be26506cec4bae3e78b221c3d8e7c8e3385562b727efa5fa3efcf05dbfda689d90601e4fba6f1e90533a2ae9ac3697644732d6ffe0fc01bac26b3b0fabfc6d92749c7f5e1726a3d6ecac3e4f75dd6f3260dcc7fbce425b7ff5fee8ae3dadefdcb74387aeaf72c79ff05ded1f954dbdd083c153d15d4973baee95d45014af3a5c3dd1fb59b9adf24f8a7298cf75771b8b00794a4b5f9c0b17843d9a10f83ef5c7ae82c8e7e3fc8a5cfc7587e37703955c10dbdbd04d1ce1d7ba201be8f20927ef11db87a2b126af8b34b2c8a0fd18bccb1fb157a619daf7a80337793af7f99185f95fa9f540f7639d6dec1cdd196f05cee81b5fcb2bbc4bec0fcbdbbe25bdee38bee9a977e8352a450b16f6c4c05842272983aa696ad8bae93de045c723bdd69cb15bb1a4f415c078637815e1bfab3ac35d2ad06023d6489c2671dd5ee3ac002efdad67e311ceea7951cf2f865d6c84c32ddfd44e0277149e0d7f8eee21413abdd3fc549119f0afe70f063f0f86fdf32efe1dbc498c8b6390182d107c412dfefa2285f48a8a1dec6519011d97091d957d42ea24c34a746f4191139352e6c65e5f290196777b7b380bf0d4db5937bfaf632b04b0f62d0dfda27c2a3408e648616975d8b437e30f825f28e0482fdef8c77c5a8b77743f0e7ac1c646007de5dbe4e790a004a6f2596fdc19ab84fe811f82487c3796de511fe24f886f9953858f7bbfaf82cb95f98d97ca359e4070f68cb2cebbc344677d11cb2307a8fcc8c93e32181261671ec6945699fb57d04ec0e91b0891045f655991f01fd2013ddf636834eccd4fdb50d114d2c443f3e935faf201266ff7864cfdc4611ff0cca17eef577c1cd175e9f3266abf96c8102153f1dabd59ed8f55f3f69fccd609e04dcbd184e92cdebe3d2b0a8cdc1b8ad4451c3413afc08ccb8ff49fa84fa5b1c897f7fea24915ec08a175f6cd6a020ca29d69f362537c84db285a7edfc79f4091073057045c8390e0f24c8ab8a45ef27f9a14e5a7865c43272e53e23d455eb615cac26384ce92c0e908c67e9088ffb55d6d4a46c38b5e2a33d0d3cb46f3b0460f80d392b6c6dd4db413dc2c1d7cd362780d9863e992f3efbf51e38b9ec319ef62a3f236b928ae4d8d692ba38358a2d24a3765d20117c0fbf42f382ac3aa0e794c51a4758fe16dbe2784ba1b5226591da39d89a04e8ce51c7e74e13e28abddb167de5a670051814cbcbab0210f52b627785eb222c86fca957f03fc3e8108e3dbc2cf4bec7440839465af06a02e8a4b2c0b22e2cb3bd45291b38a8d2db50cb17961fb0fce4380fce3a057d87fcb2438a0b3f4d411709a670355fd40e2565a35b80013a9a4e601d6f353e9c0a6796c2c764f8b990e98202cfefcf119857e1e31b38b4f5bfc9a8df376faf422dd919e15b78cdb3cf4387e7011249277d79568fc361157911074ca4dd9b68a05a5e503dbeb3775da0708a49599ef7c7d8c5dd165d0a880757b0044249e135ec8fc22264d341ce464da2f35e4356e4857e53debe5dbe4d225486052da4d51287a8fc63273b5a6bad8a878dd9d9561c0f6106c359083b8e64ccfc01c28d28072c0f4b857152ac3721683c3780f04fc2666c33edcb663deba4b00c1192fe8cfa1720aa95750e933baf158ebfb8db3bb4f17f8d2dad54c07d3f753b2fd3c619970c17d740f992271ac9ba274f1b3af474daaeb825286ec189ff491e0d100cead2e052a88add83e4f731129be6261afb467282ec3d5eaf574a6c4ef51594786f856da86be3ec3e599e272ea8cd8c001e0ed8c14ec84feb19987173aec2ab2519c21865c48ea857b8f73118ff15d3d05cfbedf4e567d8851a5c93949d2bb568b60b749c66c3192a722ddab737ba774efbc4c804e126d48ce483aa889d767e3764d25242330bc38da7b6817e707c56881cf40c619bbea781e1a56001c30e28f55f7015f28b91a92b93848c732b2f2c53c6820af94db83d38969743093053f2a576a30d837ae40dd6ca2edfb5b0ae6fa211d83a2f1d767608e49048486d620f21f2f922e68b000762654bd6a3b774597cbad79b62a3d69903c269b569ae138d8fe8cb0eaf650e53d546f73f070b4a3e8090198c0bb035c926e35bda4181af9ddabb9676f339802da57c2de70c0144a22e126082dfef1e91420373d261207f6f7414fcb5316a55cab1161c0482c6dd00f07a2d2b430c81f6ff912ffd9db81dc607a893c583c8ca2170b92a43e95a5f2e9771df8236fe820f3f48a5889923fec09b10c398079c98f8ab043bb8fc8d274761bd3c2c616089a7bb6cee20436deeb48d66c1cb06d813cc6efa8921b6c32f2910faa50cbd7a9808efe3e9238deab9653766ad29b9c7f89e8811259b56d2e7589d5a5cbbaa04ab8313a91293074f8dc23b58f46b2a6d6a576673ef3bf2e2445286f0b8fd36008e4ce724d1b90d647506c7ca249d4fe26f0f0aa3866f699b74e19558bce8e2f7c07640d1d34f3a91db72573790d2f37d08277ffb17b621c44acc63cf386059fd18e4e33d0ff48436ff0d8a4f68fca2b317c2cfa49efd48ae0f5e75494153cb816307fff847107bb197ad985deabe6b531292def44d0c3a977ee7537b44e31f4db31dc9df232058fb3741d6a7017b8ec643439e2229bf364d2402a1846fa3e6e5358da6805aee00f7659d3b4d43322dfe671ff81d51f11fa4a783b9b39889821815f15a2d3b2f512798e3be51eeecb7275b25137fcecdadeaa02d2c6c3349472d8e19560a25e7aa01107693c3748013fe94245dcb2e87572c02d5f608cb18b83213054353f6ffc1a8831f8236511107d4ade54e74de32f24a39a82d80c2991d7a7b9dc24266a41bdaee54a4316aa4208a01175e980e1f6b8e8274d67a2d10024ae1317cd0d97fbd214ab395d4aecae81028eacf9edd72bc374f24695d1c452319cfc3ffc232a9051f9e65d77b8952857b6abc6df29445f3797301131637fb0ac240bccda4778c7ed9aea8866a45847b387c292e9b1acdbb4bd8a16a4fa158a0183dfe6c4e6160b400ed493d428af089014686b46383615a529dd487676ef450d80ec3580e5c4a59985a4d697f0b7e18ed045b5843184a20698f1b90c432b9301a89d9885f2fc7b516ac21873292242d8131e788b8203856611b2fe3ed697fd2f4f25821eb9d889dcfe7a97e4ed024ecbd5e93416e81f7770bc7b3ce9d419bf1406388ea6dd5c9df5102823ba7c3539a24737a8f53f67616082c51dfd611a4588d3603455d84001661e6d027a4690173125e24bdca8ce12b081ec61c2bc9d4b2f5c0903cc0fe4ee63b97dbc332fbe662d77c3d19851e930a11607d41738e375770b543657b1a5bdc0bcb3bf0089d1c5dd7ec432f1e2cbddfd4c6c809e11ae64568f61895dfdcb8a74f692ea3adce6274d26173bdfbba0d0db8302f41890db0f7e4d2c633292c23d9c19947f7725c759dd90365e17855a1c22d4b14db3e71710c94d9fd5eaaed71d12d4dea8e5645144b000eef869c63e7cb4f4c2be34efa3b3a5f15b521140de6cf624a8c7b66dba89ff7b710fe99483dcfb5b8f1d21f452a884d4d93098b7f54a742d117f59209f7d73af983faacca7cdaf88e71f0f9374c8f0dfb43adb907b4ebce8bf0bdebf47e5561353020fad2898eb8ad0b91188db0244bd3e2148eed13ca18490de40691ed41bd4ce1c7388a4eb7e2c80828c23a7fd92e05ba2bcf8b519902477e51671a284d6707c249001f1d12a17b240618e03d3d0c380b6458be2d566ea295f39bacbb33c0dbf1d3dc75720cb733672399ab672c342ed00913af8b0f342efe9d9dd91199fe96920b240804e1a3061c1419505200101e31e8688101920088f40103470a0e2a0100240f1a75a06010090145f0c088834507900008c2478de41d058e810ca18fb23fd8ceef1ae7cb0704d1c7063b173850a200103c31d0690103120188e803034e0a1c2a0100441e1aeaa0c010090245e0c11087850e900008824f0d702864a04401207862a0d30206240210d107069c1438540200883c34d441812112048ac083210e0b1d200110049f1ae0740cbbecaa65056e73b689d116c06c66b13970adc4da20d544a21670c8b0faa2f9be95332309c21cd3770c7263e5d3a4042e5cfe6f9327d51a50da2161f3223b7d5f6f26328226e26f59e25509e7971b3c38fad0fa8eca32912c418eef3776f9b0f2e92402260cbf37c99f5acd29e790b0f390193daf361279c112ff9f2cf15681639769ca46aaa2284fa8ee9f7c4e9d341931b5b9241f2a0a34f6df2d7852e55469200d638f6b763d46d5e80638797d3060a0719d634efbe694042e74eef03041004c223e091ea1dfc6b44291ce461eb06a3d3d31003a1aff452dfe999b889611a62f3b7a12950d8910c7d1a62f8b630130bc8df04e5f1e502f3f023749ac7c561efc302915e98da3233f5f38898ba8ffcbe30283283c15826eee0f1079aa4e575efd0f8392ef5c11d8cb6cac58888693a18a103fff3c7f665e61c3f3c50960d2f65f310419bb3ef19da33423fdf427f7c759962d3f1726ae90d44899ba150ab9869bca363a7b9d8dcb718d8ef7aa68d04fe565003cd7b982859e9af3d643f6ffc2f7a19a77341d7a77ab0c0beda44a40f13bc8e0921305f2f3d03a5937c7cad41d27252b5832fc87b29875e472f72fb3b302c3f5986629553a8691eaa6fbbc5b879a8eaf0b07437159dfcba908561de40ec6569d48401527ee813c50add2033cc2265b7fbf1f229b1ef72f9925025dba36de48b9210408ff9bcf9560a212d1115405a2ac8a9486528ca0a91b5b2f6174f13ae72582200111b6b3c3b2d321df77199c0b3974ff62045287952b9bb792e17c0156cd94d0b396af46939ad3fae501fec238e29760a809dd0e9cb913195670adbb5ed15b86ee88dcd28267826f629f496f5c1f860cdf471001d7795514a5a58475c26bcdb5cd087b87544fd6e33ed28d1431e9fcb4bbe2b9c481a718a22e6282f0d70630f21b9e0b174bc1fd4ba1da9d1c96c16682f074764c5342ddce8502082625880f2626b835bf0687d3e1f946787b0b7a93f20af7d12d1694a361eaf7308f6d40e37b13eabcadf114e22f24e6b3b6ea10b5ebb5d49af79e5da6b945a70db2cfaf75ddd329f91d3c922d02ca1891ef6d8711509094386dba43f1d94c65d223660446b5278c24297256b37807cfb42e239d4d56046a84dba6753358d91f47042511dbc3bc6d5e1547d57b50984b8fae7bb1901b56bae4b91d85155c588f58ab683dd3dd80391d0777d6004d3b3d9866b03bde98a5967b8cb377320d58b6dfe87ffb9fad155375c3f79f503bb0d174c8304d2542f18332bec2a188c81607e3215f98bc7c45f74bd3be8b1217f1c0a83988b13c1d6ea577ee68324341e0869399a9e6372a90c7ab2048d5b751ed6fcdc4f8aeda35a828e72ab1810724314de9e4c29441ea0f15988bbcaff07e835c27e61a66f7592f2862e7f08619de797630cfa2231199ca89228ad173500b695bc21d8e44d3acc136ba2b4841c740e75ee97e5fa32d4128611926545be8f6c30d2dd9a232e78cc15d7872e2eb3e973cd739acc7123fd3fdf31eca8019a5a4980a31f6fb596b1e88f66d66ddf8b26d22d7b39da3394eee154215eac32f53c51d56436e1118742061a45b26cb4f7975bfefe009b7f5f8fd04f644bc005caec6613ba91ae1a9f158d2de426e55f57a62d3f2e5d5e30fa48903073be196f203b705244c41dff6fb6d2d9bb4fff2ee99da8fd5804d35fbf86ff67663b27438a5f45c7bb43fdad7f2dd2aa781dacae574cabf416674e16d57985cc6abbd07cc5105d9dd47fbfe13076f5f4e66cbd1d8b89540fb5ac7b8346aa1f535b179a87b7fcab9cfc1e1e7cca7eac5f2ff196a2d80c1f915e4766115998fecf51e83a7f611f58ad0e430e4002c69432bd1e4be5345c252a39169ce3180d9c4810b5b8bc56a72e8bfcd1af0bec0d1d30b294dd4a11e85682470e955846c225abdfb7c47089f053c2ee2a64050e30236ea045e53b477fd9f0e111b4dff1d8bb3dbf71aa7ce4df8550a84851e488e7befa2cbd6d3f1395a811e43a7e6b53aa11aae98f7c1ccd7c1f8b08bda74fb7b99e2296e4db7126fd6eeb5b111ec1135fa949fdf4136a1a4731918c2a7ccfc29e093355fd18816d317751d220ed36f1d172fc8eb944b10703ebcf543bc40c57027047cb7b5f3295ea328bb890ab7971c55a7808d3e9b4f1cfb5d8a3a799f4381abff4a4fbad043255a8b4201b678a5e5f37d89580f38cf41c0c96aad5c228a07ca17bcd9d870fc14b008158f8678f3c2b1f6450cd5157b43057be901dd81110fa5751212dfbcacb67b30d7ac9f565ddded36764a9294366c2d2b815af6616cd0a22001d230240960e9a7239086713000b442d5302e3ed363c8c2b0b3d5ff0eb7f68e436ecf6db74540e772252657ed2b714d284855295d98f5625b843485dc63edbf132a673531e2e58dd4d47b40484b1d0441e6c2965c30f084628ce1e85fd48650089bad0da1b0cc23787c7a5e27cfee50e90399a9f5710fcf17602dadf9b058c402d80cff7e12b4de394e90fbe5802d1feb8fcdf947602451fb7f8fad08f237f62849bd09f79664b055d0bc5550ee0a81ef1075ad773530293922899c7478d3914f8baa10e060481d8cdf2247430c4163ada350ee81f279ddce7042a520fcd837504c0a91162f927254750dc52664e063403f60583064b3512cca0e01f543cc52cc2d3c5332985111963f4766e396f2c882cb2d1435031c962f442ffe034c39a38ed0d02085cc8ad367515e3dfd8191bc0fb81231588ba0f78e6aef6dc3150e17ca91728874815fd29a6d349a37fecd774935029eed42ca814aee63b7b3dec989be1438268bb525eb6d682ae04c634aa20fbbaa70a2386e966c0b0ba25865ff6c4cce114ec4fa51aeeddd16410a6273cf2e0b3e6486782f15db75ce7016ee369cd0702165b61e6efb799e8970c994101701b94c9b1285c09d8f2ac061e09d963ba7e06bc5a0530929b71f78a00e7cf6a96b0d6d342b75deb87236c4de501c504ba1e73ef5eb957e88763029927d301bad6a4928d643cca44b6bbc2e179fcdbfd4fa774f0e1f203f92965b7ee03ae3494bad7e68a586eaf6f55e3212d57901fbb0d9d8fbcc18b3afa14bbc9e46c17f7778ba945871806c4011073f19463a88b74d2e7a62f8be8b66c852c7454f944b0e41402c563ad2838b1eaf73d3c494511d1f3e33c5b8e4830dc979214efab7ab5834509ae9814111c62a8ab8c84501eab79e0e322b751379b60b20b7c3b45a50fee36d7c244995a7a401bbcef67dec2f9929451247816c71ac0a4e982b3631b914036270bddda77135b53b690c30fad1ad1c8acac6a08188d719b217ad6cec94a1dbad2fb43f0ad9d5831511b4fa7eaf66f14af99d44b9d76bc66a05cbcd9e72db0fcb0b6e1a850532ebda5a4d1d2250bc4206b55d55b74f8220f55485d60c2e4327ec19ce9313263c250c8d3ae611aca00172a0fabbe126d80bcaedae168d5256f31683a17fe1932d278b5151c22381a35b748095b5947f6ffbf7e499b58ce6b620cca61de8a0fbd17d7df8fccc62c83ecd0f39d7516761e65b135496684838a6b6ca33a509d1ece2270c3a50ffdccf1995b522fb7d4542c1ec0cf12f10727e60c699959740f9bc772b63ab0823f51b86221f72c878b61c47cfd20260f84402441e0123e913d3c487a9cc69da83826b53b1ce0472b465f3f619303eb5d603594cf28e54c8bc362c6d6bd9386b32a5f915b622d20b514ed9c19e3c278c40441f84d8adb022eab7268e3518a5a167e792977256b296db38839339576d41e6899c49132414dfbc659019ad644a7effc371317c8233c987f4566170de0b83047c8be98c50afbebbedfdc1258ace437a7d1048b274cce308151a398be7b0c3ab8577262a841407283f63be73d8243d32c72cbd0b01fba3f77f65a535882d4ad8e202ddbacdb10fa4592aacefb6a6aae8f92ba1dcdd6e2988f43587b8bac1576fcf899034fba1a047133d0a7bf4069aba0e4a144ecdfa9dbcc6145b2d11480253f09b08686910885308a992831acf761eefed701fd11158878dae22570ea97d400eb3160f7047f92cddc92d13ea826001bc1bc72aaed57d8f1d0fe8e2daee8a1429d16167f97efbbdd21dd514e74120caab2a5b5a4c028b2052c3c6e0db24e548dc9bcf612b8e8f6eafd77065e5f2ba028f750307bfc95e169fcf50ae46532749eddd632817b1cff99535c3f56ecf9d395a0ca677f63ff5ea13c79550ff70ce508cbd94e41b58cc15d9c7b8a1c23c95fddb2d4239f9299f2d9a80b44a8fa376ed9cc3153658e9aef1dcea0bad8cb50927242d796439922ff6148f4b7b57cd826220b446efbb5fca84e270c3b79d3227ae7bf0848b71b3b1b96e06eaaca6987b34b39f671f747b6a3122e3dd5a20dd260f9991307dfe2fefd9ff88256065e3e8910284726570664f6e4a1a9c2c941e1d0831fd57ec48d700340b344229dbb06f9720c2f7bed6843f9f66a67610d93e8729c57f8d40e80ba921333d7af1469d0122ebb1029bed8d4cd4e76a1bc40975b3ce42668a4ebf25bce7a398a407dc6d192fdb44983f1c46ba6dd2e52fd7fff6dd3cd30e6be1cd10aac41d40726745b52e3a6d8a3910c6f382c5928e2b3e76c3e54fc3eb6a3aac0c562d8d386997b90e75234253aa23658d50be328f470c273f4d5fbfc570cf4ab379f50e2f724218039fd7e1f2680e0e9ca9bf4cd77c93598f66eafa302c7a5ca2ce2d1d4fb3928e0e9e0664b17d5c2e60db74d3a1c5971f644d3368d7e6af6c9cf8e28b067a01c78f7ade22f940e0638a7b507a282e2ba56f860a73b040ac595e05c94d0d383add515718bb7b7763d5b8ddc010a4fe706cb24f6b2f58148844b476e62ad9f4b7c369bcc78365c9bbb2f2eade525c8dfbe107ded95c8c48cd70fb2d7e2458d363994fa56f8648206ea8254109ee3e058b0a141346502fcfa0b436874e194b8b07de96ad8c11e7ab4017d9ad7536c188ed942e0ffbe11742c7792e7c0eb11fcc9a4efb7be91a08b9ea19bafbffe43b9e03777bb1bb6f5db99f24e97649907ee6ae033ec661b28ab1922d87bb80dbaf2c35ab198ad4ad9a994ce6b6338f1a2308bd0b4c71236624ee28e095bccb5a03af49fb8f494e788706c7e7844ac5d6ec1a15321e35efecc73c899d6b7919cee2cf922db0d682477217780c80911c129a4536861c076a315bbe2760bffb7488d9cd9800f3d1859c4f56fd9f221064bffeb774c0539a0ab56f2aa5662b6b85da74d26559501fdb8643f075e032e2a696df8fe7b62b6518b2c364cdb74767866de49cdae5ffcacf5dbf42a32cd1eb040a964b300293460dba895face4eb93e4fdf12328cb599e009ac0225677ad88273f8ac53f7e2735b4fad825f5bdb5bae4f016fa201c6869e1c85f878859f69fbc097e56352471b233364fe8549cbef3884959bc652c2a2390219bbc592a468e946053a8a9bb1dab642c0e81d774f21af95678b5b3811be8a69981a58c38ff4115188f6237022b9e35d6048ba01e934709a7782f351d8a68953a97dd880d62f0255af03449d5be8de5d85f0512944599002ca7c379049f40b5f547294378501be0c1393ea17499db8c353b4c1c3db917930e22f671de502df607e664a68950249cad3fdf1a33a762fe2ec8897ac8a25b864fa99507951ab6f8ec19728eda6aaf8ac7e28026aec6211625619d4f09f66c46a3998221a59f5b281581dc7566a789ebc87c4fa4834ac688b9b03bec21190c52e0bc433634a5b86ec383c1f972203902dfaef153d214768c65ca4c1d249dde5ea949067059c11f83952917b0f20d5f2f6a5d28182e8987062f8424c8bd38b4ff0357197bb915a3e17d357d9a407fbf567831a764a1295270ae9c37ea1204d8f6f9cf055be3d2a323ad8b3014ddfc5d6e2e6abed884a3b4ec7e730179055fee633fdce21e8846f12bf992a38101b7d20c185334793339165334bc370477620d46bf4f415d6ba6bf93b451383e90c34e3e8fe19e5a29f49f1b6ed0882a846cb217512d816a8b51ac2639add7725ae3d5c2b466d9988c69874949d9dd138825eb1845696acb095a894f163cef46f8f40425d13a598c7c2499c2180bc3ae131057f0067bc3630a077832e765dbc566f1fab0ba41f1f67bb0c17272125ff18abdd44ce305d5b36ddb841b05d60c0427302c608d00470063071da25eea5f5274bfc22ddd0862b889d3556267f0114e1b5f7f5856f232422052f2e29126ab467d0879b506558a197e633135911825590b12949251f409ac9595f6bef2a13c6e31d7dd94d207a32dacade45915e801b1128af4f9738a39d8cb4c7a4df8685bc13dd3667fb035372adbae80be173f875c5c3043c6298599269e930a0c1506360789da4e39465ef3e3cea2dbb827af7f472a758b7867b1c75c20c17e2067dab02b0c458d1be4282918d94ff53487eb91869d62c7a921b76dcdbab8875511253df3ebd5a7275fdc6846b50124f7ea690e6150e6673efd44a1d31354bccd8c0ad0178b145beb4766929122a5d04c8054f80c0bc3681ede5f12d2339f981f28a8c993ee8def9ebc8c6012a0827c1a76c508354440c1a8f49d62628ebc3ac16cd45bd3b83b817ad7b105ed9f8765cfe5ac06ebd611ed166194a23e392bf3ac63503ba54cef0924c330653dc0b60207ad3548d8bf38a163c763544d2470d16373230edce1874b18360b1c93b56c34c6069414510aa6aabee6439f47b13452f92475501002f8330afce1cb629bcc76e9d365d5b54393efc0a886dffd955550703c3d678ab27f0ea87774d7212a968fca2efdd1e5aeb061edb5016d7e1465ff26e0dc60d3e1250fed84e4bd22d06cf1a47d5e75ef177d9f170d22473180a39f38df9cad667ec7bbaece46383db1791d7f7eae3ffc4367ff7dbb7fe4cbdd992d54003613087ba221d8ea60f3c9508ad83429b90acc1425610696fce14bfa5aed5aabcbbeeb5599922156e7cac1975bdebf2663725acc3125d9778539633cee264a4b930649c1b17fa81698562273be3999290589c81cde2729eebb4e91f77dd7ac9d4dd36a6e6cbdd55ad5cea484120dd26d940ad47edab6c792c64e07e95b0b4068d05d1dc27e32b1200ec0226a696ccbd85e43a42508282dc05ad71e4657501c4a3789671739cf5cbbe509e9e22c51a6ccfb67a9ed23ad15b4e4f760a7a56a040ac6444d5b57f987982eda30d4e05b82fd93ec07a965826c3c3e14062b6f07e9c143b13bfcaa0d7aad6fba1d073339160339031a6d221f3d04131032e30d7778a77a6f70737dba6f0f80bb05242b08e55dc57258e5e302834fba76d2f3e189e441eac071857bc3ced5cd0bd92a85b830fa0efabdfc5e6e50775f02e58944b9caff1dbfede6956a3fff59eeecf32ea0c88967eaa7181f524d2cb6b7ea8f4b27ec1f431adea91cd9fdd7a934f4cf079d26a66a0058de0d33c26d02db694227c53b05eebff2716878ab4e8836efaa33abf91bebce9cc9e97255203bd099d96209f38491ef52c912e4a2ba8e6d261897cfdef676fab3045a6a573dfee7ead2230a8957461801fd755570fa6226d9af70ff7538af3b313ea3a025319d6a4ff873697685c9204bdc05794aebdf5621180c873851b13be1bc13b5edd2312fd23fea8c179b2986bb3640cf2a3e26e9185b5909a9ed03edd725dde28590c764bf310150c2575de6f0de2ba0ff9fc0409c2b607b0a662db8aa5b3c91b5ba261be0fc3c3823504deeca140b1ff737fe505f068d3e23a94c2b98b6f2089672e56b41dc1b1bbe6f8196f0553e278ef27e3b1d2f765ef84dbc994ecffe01502f4fa63735e6a7eac902f80ff5c5a27a3138883079934b318693748c6a131bbbc4669889065babee5edfdb17316ea037202e9d84b7080dc824cc5256bd10e8e1260736137e7414cb6cb7685d69ccc6520748870f33b0589e21d040514d90ba67642dde98ce791cf33d18d0ffd96060024dad62badc1d653629f4a7e8861e3f07186f1ed83f2c4f21c141b9fbdcf7d6c5e4f14921f2648a0c1c3cf10dddff6f846d806f53e61eec410b83fb7fffa3cbbb7ac4dc98c5a1eb25bac5635c25ba64a27ff86d0c4556136372f36f83cda5a22375954a2cd5e56d728ce38ce71a19cf3c894b4f9aa7c1ebc8db3b07ee91e290e8f502058422e6f1f2960d444d6403aa0417c876d8b3a039f8880f23a63b8e2ffec89487b18bfb24e13b8303c6b2b8850c78717517303c553197266fc53ada7a76f057537657893e7fb97b843897e870dcde5831f46946e1e336fc62e0ac0f97061a205931afb6ead36aad5b720b067ec79a74a905f50e987ac292147aeb26f873ee70d07fb7f01b2466c28fb9047cea01c15daea05f9c3464111d053fff93d6e00b8a628a4847908fcb3e09e3311091475db3534c3a6ef4b7546ea5a2432649960b2f69f23ed2d2fef6ab13045dd924a5df60d71d41a91feab29cf48d4317462fb1c86bc2a67bee5f59a479dd57cb6ef571339937fe43745246d9b30a723d3a8e1f5dc0b1137c310648ddd64930fc89e19e0c1aa644373f836c0687cf31764e57c99058e1768f3fd3c7a9ecf32d53e78ed9968f0f21e383f2fb249b7e2bfe7000460f57d2ba36f3e19ab6dd6360b9b7d48bc4cb2b07d2ae036a67b45b624681d6678900b465a7a41a8e3003414be663fdba9f3d62956e69cfa735f8562137432794005db389c0c363069eed29f897940fadc91ab86109f8634212d900f0ce23560704ecd289fe0c2b06a8aceeab2f08fbdd7464517543a3f283b3bc331c9411418c248987aaa8fa75b55abb1d9099716a5c1353659cf5decba933beb0bb898badd158d126578bff6452b718ece76e48c22d4136b8f820e202d3bb30bd20d58532849090aef3839d80b32c5e4db2dd56573e5f68e9783b533cca985450363e5412188e2b4061e11f7d484cf88791d10ef2aa6d8201c262e49c9b1abc95f099248a3a2158c86044e36b84a6d0e6d74d45452bc48650293b54dfef1b2f228e340312242ba47d8fced895157e0d60f0c808b5e3ebc97c1d70981472088abf48806250cf6216c8745ff4e9e002add36f0874d245bf14fb0583827eb6e2401c50cfa55428c1b57030da2f2e9f151dee1b9fe212722bda4b3a740535c45b13fc2f8b7e0b5e2fe02daec4f163a765526f15819f0d2f7c338df7bc25436c5e54107052745d7b73f94f43fb7ec213620f56fc3394d942429a2134ba0bf54f5c421f47a4862078bd2b73e6ab691cd3b56aceefa982739832c9b8bc2bc6bb6c6f41d50344242d0e0c0a7781a0741eb09093d0507ea4ce01e8245c9fbbc985c164d6bb303dbfcb7b90dd03e8bff439f76f0025ae641ef02af7d095c25d78ec4a43d8ed6f5107a780e4d5e6b7607ba4ce5699a74cd704dbd646a06345fb255568589bcf2a34ad515eea826a1d3f9fcf772a108c5bd7b604b96447781a5ae1b81a95d7618bc18d8099eb8b874c19ed59f29b5aaf6f7c013e23d9e8e17aae699b9d907c7925e983d286d46290b575c6360a58ddaa0a85b24d17e818e40a14013928b978ae1fa5e65e32f98d5d6cc24fab3353185ebe26ae1f907e6aba397c328f60efdc4f174f231e5a48e143d69bcc4f4f714c18b118f7c5752cd1b1d7aef7d37166da4ecdc7aa7e12c38bd9ca75582a63a09ecc9dd21a8e97cca6541e65a7b8c29cf34aa7e0c35a132b677d1f084dc6db398f5122cd855537b4c43842ec82ffad4b8e8141fb56c50d40e1fe34d9adbd33e01097f01052a574fb23060b38554eac4074d850105163bc39a223b668f7f03fa0d6d686a146142d81675eadcd6d656dd379d050d1d902c350a4e5b8ef74617f9730f0f474e7447c675808181ed4e19d9fbed9d3022323a7208f7c55d9284b1d30a21e223a501b5575b13f50eaa82cf1c7697543e6d71f26c98462a881c5b0bea7f4d6647d280e3911eac8e5558991faa1a513681dc29a9ceca16882f2a678ee206f2a43d545f9c98f5c8df930c79f216fa7b4ba4a42881a505f3cfc824e0ac68cbe3ed60b63c83ef1bc165a01019f270c1d8baebb0385200db231502af73b22f0e877a0b191538bb98757ff976230cde9550872f36d0eb6242e3551bbcd5d5d7a9936ebc51336684ed83d3707265d0e1a52552efba7b54794323131eda0e9ec64cb497134ed0b4b1d8823741edd9401ce8a3929e53daf4532f029ca389a88d33914782962112a9d066f85df0ff8c96f2e2363de5a0b358103fe95cc5dee35ded408ec2765e9ab7ce23ec69a0c8c29309099fd3c0ce1ef6dc3dbfb6b96109ea49f63b18643dd2b018829e1e4a26e3f1c31e1b4bf76267d8756c3d5af5bc26c22d06fcd9b8df10df082531355f9198c3b97d0e1db6d8cf07c54fc96ef64173bd25eeaf55d71d691eb4f2db2413761336e4e553335151cf12a2ee46b63b3a268f04573b2e1e24a87f857968131cde2f3451b3c6cae9c743fbb30331750d28e0ae090d5cdc024ecf3110df9a9b0147ffc4a13e2008c0778eb475e5363a69fa86f494ac4fadea5431e94d10321551b26106ee5aca388237c7edfd3328d2c57771092bbed6d25e8bf8789d7590ed0d1662070ab9ccdd16b02405f1d6aa406bf79e9a8d7f1f7b21f6541d708fc03d0c549b7b420b9582986818a6ec82f89f73945c73ab61c127836f4d9f7d114f7080e22249de4aaf24ab07b58a567d8e2bb071a015f29b0de34f07fa57c16351a8e5d56fe2cb06b256ab59ed744bb5b2f86abfba1ea49100e44846c5c7bbc381010743aa111cc48ebc20aaec8f46009eaa94aef1d1b0c1ae4eeff2c7ceefc42cfada83ed7eaaeb7b1142b289d7819a9db9441c3871741d5cefce4ea13c546927385038cd5839210aaf6abfc15c65723ada7185b12e822f72c40519e2c4d82c53535188064c0b976ecbbf02c55f8c19da6c7fccde517a84785fb8e77e70d38409230a28ce8db3da7f73deb6a559941c2a259076cc96cdcb2041257e3abf6b1adf3dfc5dc9927eeb9f576f2b52848c5ef159dd14300ee93737b1c594fcd726df78dd0dde2220c0632ef6f71e5aacb589ee8a62c95816f326e54f7fb61f053582d206d6441e8b9639ac79168501521492a85759808909d093a004e268c1fff958871291ecf41846945ff13a1a2172627bd5828b058e2cbd5052e109a317d427ac79557de33979dc295c2c49241b49c408593da2e3fd6149547e4faeef09fbf8d1a7ec7b2f50109b4d9e9115e2bd8ebf211e96b81d66c4c2727a3c47e85523b2708a10b2352e67ca427b2d63144034fd12608f22f84da8f36e1c395e0cc62a9aed48bc20ca403ae9e1a7eb1fae503f6cfa3ec7ac184a96701499e17103b4310f3ead3bd6208508d624211642c66af769ab95b633705401d71304b08427d5d85e6d27111b55bc9c65fe641d1678efc82ea58f29ec164dea632f676dbbd6027d4b1c4970ff4e6d47cc89cc65c36a7f51c2f3ccdd0e4214bc899e5bd7a7d92bac893bb80bcf06d7b455e89fe6a68b992f7d11493d6e61853c627388b66aae595e7b8398b524b39a6fcd0b8cccea5871cc8c4d3724839b3a792507e562c79a6ea12db7781bf0217d30524dcc5c0f6956e9c794b2e9637a20a7da550404b0a849e77ff62bcd9cda56fb8b8dc49866fda6f74919f06585bdd09e9b5564eee1e4ac9623f50a7c7c7f23bf0b1836680a9013d23ef69336513215cb2f96b5720fa36b908436d4898fcd8a6b8f227f62ef9996b403e229ef7399906dcc3802cc8c0e8ba70fcfdf93d6c535edc78fb31c650ee93ba78a2e70cc75d672b3c61b31593352ab35982d0594afa8d8ff547deee41beccfe9a931b6f1ca0cb2def0cda7aaa6e1185f3437fec13ee1d1801fbb4da074a48f8d05f98075b0cd6d17640fcc072bd1622eab9a1929a14ca7323dda8537b6aa2fd253be1368e30b819289f3eef535d718f1e2a1aa48a5212288010e8bdfcbcea01a3cfaad1a3474f08ffc6728593b96e7412121912f584d8b4848a771643d4e6ec76c167830436c49eda88db60c8a85052429a1d340c6cdd1aab25ae9c065e160fb650e61a8b3601d7036943aa717e703db6ce211d717a74cc3e5c5339ed9b3c28e59358a892251ef1c72002b91b098b2dabb747416503258ac1c1254af095a150b23912e0c3a2fa9f476a869cb952e74e3263243a3395d6aa493ef9dab75a489d597c9aff16ca5d51c25c97bac7237603ece25c437069e301bd8847bbb7ec217c2d95824e2b4fe7e9cb40823695d5154f9f4b926f1be3d6f723dfe2948dd654ea09f945c0941fda8d8efe4290995e2abe12c800fb2a4088be33fb8c1a833876cac17665de2b2197cf4a1a8fa4e37e3bdcd28a2069a5f7c9709879b54a612e62a4e7d7e3f09949395c0687ce28cac9644bbd70a4f6cab1349a7dbc9d167fc4372a83f41797344590804decb9825f4f1bbe5d3cfc7dc238773349c314bd5cefd9f9209b92d910acf3646ee07b3d2359541c4d0af2a4b0e29c0f50d54176cc9edaab81a5876ca44f365c2d8cec4287e5e7b46c97f02c194a0888da47cf21d39120b915f635424e10a215f82495661acbda7f8f96f3ad3f1c1e5eda6c2c95b24b069959cd2170512f0b4b805cd2c491505a744034d0a00205ce14be2def80c2a22b112829305cb8836d17a3117d0fd3135ede0cab78df857952d065190b47e510e8148f25a66e776b6eae02c31c4dd6d39ceb768d2d4e548307d05e8e9ba74434c10d82407aae6a67c060914e76e46b89e3c3465d18aec3e353c866a6d0d0d9d0776e61818d9f4e84b5edf5da95b7dcc7f6500c62ed1ab7e6ae2596d7ba33e174b848a48674402496691b63a4e3d820637dabe3e3ea621b0b0cb0b8c242d0adaf2d1b976d8bd8ed0bee7453acc84f78c05a5145c218f1b21d060ea4083918671c4070cef22a1132498e149f67261e5b5befae7f2daaa95c99d6b453800e03fa6b81e78b748a4829b7ce859131ddd0397780c9e74456b90e0545839d78546480878c8af74e9e529d9be50630d588a388be4955eba3eba2415a85b0e84f00f2f3e18fc3ad3d82c995e039dbbfa8f2d02c3e85c35df594fc185dd467f96ab830ea73a134a03a76bd29e1f20cbed4059af4345f995a93062553c7fa1e410ec9b95fd4d598af33222b2189cd00ed3e5b81613101a61b2a57943b348548bd07f6963bfbe7e260365589745c55674c7afc3fb3f1265dc9859248f14c79235d3d9261ff043df37354553f483db3dbdbd7df17849a19d7eec4af3a1eb64b985bd218437505612f4a12f48c5023ad955bb599b15b319c8ba30c40fead992859aa90f341f92f950a53adc65291614da44841c5521699fdccfdcd0eb142737089cfb7cbc6e14eac2b90bc27d9b477ab6437743c06aafd35c0f83fed69baab97c4b62fbeb8e51863650b380c127ac67b1f6bb6e16bdd017686c87e0769c52ebdddb1c62025a0cdff25504a8407f542a145e0106ebc08d00bc44c5affa21dc40a35c0daf1091729f04197c01596ff1386d16f6462016a79c07ed75ff26329d9796ab680630e86e38eda4b6af6dba7dcc71a0d4d3d0575d8104c6b1b54dc450081b64fab26053933b3dc3b4fbd4a3a5d005d57a3d9c7df02ab008a57fe873c1890016dabe8117850a46f9548e3821d376cdeee96232905bcb300fded9366c4eb99581b733017278b63f65a3cb44ad70e3626d59a95bca3e6cc592f1ab37fdf4a617b93baf46aa2ba51eb4b1499cfdf29f57ec460259c2bcaff0468b827fa33bb73c02335421a67549f7effcf997e5fd8e04b3f6b21ed32fea7a7f5b64fda298e81f390ee0f82b91b308beb278bc921759164876330239d0acffc4253397b6bbbe55ab070409d12d2eb09c5b300721e6417c81fda1eb2e6cf6e693bac8b54a09d6267b01b4c7bd9dd90350526b70a67c10fe3b0d7bbdcce2ae72b9ff81169f11708ef28ab1d246bc34139d65084019e11804464dc83c37416eaf22f1fd46444aecb013b47ab16129654e6dc4660b0b0ac466a012b4786522eec1f673fd04c24a9274c786e5b3eee410f73d5ec60497f03110067b3a6e101893522a5643ea33361301e42f99532eef8e071785d299d9b3dd61ad80d463fdc712122ed178e4f7f1dd83084918f0525c9648f8d6427230e734175083e8ac03f3e21ee49c40bb275e8b549f19045b0bfa1aaec7898888b7a89a1cab923e198d19f182eba428e9835aa732a8ec88b6dd0d73f310471474b7df4f614556e264365fe0f900348f9eeed2102863b8f7eb3b23ac036fe93bceb2ebee6e5840c7f7771de0c13bf87d47b332d19f342f43ceef983992dc5fd98808d5dc3aa90fff0990078e6b49a128fc59f95601c0e165e6853471cb976c6e478a0bb8c047b0a1fb69a90641819ca8cb24cbd4b77687158cbb914b51a243cb139e8cc7a47818d057576551825509234403d4a99b0d8b044cf45122ac367889825b4ec76fee0990cc71cf62aec07a46ae99144a31f8ff7e253f4f80a511c82a77786ecfa2d26ea0701b540b8c7239973a9c873a44752f5033003c709ac46bfaa7055ff82bb2dc1b1caed629245f0c0620bb35239a0db488ebe44c2270bb2e0cb7d1bd82222213a661d07787d5ccffc36d10a69c2cddf02e2f6529591ea039fe58abe8e42c0374a5dd75001952fc065ba432f78a19b1aad1fb67c4cb82387b6a9eaad57543f84f4ca399b8817315da6ae3e6387a044824714a062a50db8ae3bc8dbcc9905891c8dedeaf42ccce8b900a15f5956d36945a4d739243497587e15688adc4565e25d6bd37c8971db6b1d4eda3d4c47aff938a8281d7ebee9890598bc7ba146f275e26efb35324b7303c2316fa98483eaf08497eba5d8e1d1141981b89acc5f32f7c2b2fc277e74bb20b173f0353bf780cf09b882509728a7a6aaea2de58cf2aa7b4867719c44ef9712a731dac24c04f5b8aff48a0266c7e0704752a4432a87c3915aa363593a8e9b927bbff0933aae0d5a761620dac43afb018e2d3e99ce9c638d5fe73bdb29563582c1e246435a89f8d205e268885b2281c3dc4d4fdadc2eb880e6cd8ba732ab5a87250c74fe1dd78795b37930bf7096705b63c9529a8007d18122bc88022fb151ccfee6997988ba598091325cec019eb442a7956d966caafa0d3385fa4e04da98ecad30b23ec40f63d7b07477ac2eec10f3458913b6924e8c3f31dd31e5d10ebd7e1a36d9aaa2e483fd1a414a1465722cc15c5ad783008a24838cc88f7b311a2b3a6222694847091ee9c4958274eae89be4405282d73a16d4656ee7f67a206c9ae00b8037ee6b8ee78bc2ba4f13945c264ab2a2096c1d9d206b409b9fa4faeb58c6536e17ba260d0c54209677d489a84838a6528386a75b3e5185b0294aba8c63adbf09c9638547002404d832da5a87098df837fe2b14145a7b2441a87cd3955e7c42001a83438be93204664f06550d7e79a0cb9b876e4a18054f02a981581fa7c264e556bcd8265bf9fa39fb7798e242c209e26f2fed015dd413a7ad1df7c312e58f492a1d334ee4f6fad80c043cc1ffcaea33b9dfc21d0a0457c35ee3d62fc1edd1757ba41ca124b3b2a446a9884057731d22822a083371a089b580302200966526e28b8757c82a6ce030f6804f41adf42fc78a86bb4c8db5fdd520c64559c02bb398befea2a033b89a71e15be3923fb05f15bb5afe01b48f1c9aa39fd8bf0a67fb8cf786cf5248ae278f34c3110257c9a815a35aec9bbbb73fc863715d07a91ef4320347e5529d9b6153c84e5f0d857c374bc83af3f39d55a8bcac3f9da51b45fdabd1e5aa357e65c8e5130036163021289d4c0718290239613d13ce5ed3afd8f6931c46f4015f4ffd2d5e37ebc9c7ef7cdde19c8cd742f113a2bec830ead21227394e6244a76d43ee2f1af37d80f39dfadfb0cda37b63c68cb3881e7196533accf6cf3ddd72b760f66f8660c3f9bf92e0f56caaeefd20f9a12dc48933a395d33cbe9c0e0c9001f43e11367690ee22219b04ecaa946265894d9b0f4744e35bbb96732fa5e09533fc6b87f0cf5009ba9cbb4b817613e4312710f1d7ff215387401a0c439eaa398158d1ba341b1a9cc5543dc39f7fc7c0f2e0b26c8f2c5d174b1a16ffe314fb02f85cb1818b77695b968e60593052591783e918cd2f2f2c8f497aeecc31d5b8d2789ad013d46a0ceda0501db8467c0f29ce31490d1db0ab039762a0fa8018ef7b69cb8ea6b6a0bd7b33cd384a5d14a18664b0a52ab69be6def9bc9c0ee07f4547098c5f50daa62bd982c295be4b8eaaf0eca779bf7ccf35c4fc80f8b09328c123f6732c02d96bad0f90cd8b813963eb22c5e9625c7351efbd443674b3b243fad4bf3e6ef01039801dc764951a58e374c7bffa6aeda42db2137994923d850baba7c5179b0a75532cf11d4d7b2bd3309a060a435b5f4991392635c34d2e07ba0203db32b5e020836da3fefca6870c6a5107a2e849a35560f8f1ae2580ccec98df043ffb6e798504ee6364e1537ff2372902dd143244dc7fbcaa2800efd7bc50adcddf498ef432057b16c522c2559b9544f17d1d43d34857a197fc39a90be62d4862b24b34f970e105e996e33c8f69ee4239f8ef5c6c05a136fa57a95b04f4e6cc10bbf486ddd3d7878569c4c96733c981713c43588fcd0d6f937b9e2083ef25ecf89003cbe44fe23365a20cac84800592535e88c761ed7afea29eaf3e148110c687dca9a00ad878cda110ca67c452091c195402e8968470576fbb59063387bf3ac73bbecb0525e76f08e75d8ec49ee62032524345fe8b04d9dcc977e558e31c11fcaa4f77b8126152b1ad7be83aefc17e92fd803b77639ca0cd87013b5779967bd2a33bf11cd57f610a9b02cacde1bf5f7164b24418109b51412168744cd68e87bf6993baa3b30074add2a6f693fd92070b6a333a3d4ae5a4259487efe8e6da7124439cfcca127d4392275730be5a334d131225d08b1f676b636864fb2cdc75bb3096640cc54341f1c049decb977c32fa3d2aea1ac972abcf26659be373e9ef51ae38b3e8e9635652391fc75ebf77c3216ae68d67ea8151c90c93972a1764bec43b2a44789869e318c3ed3e55ac4475ef04157fadaa4b18ff1d9dab1bc09efe5d5d0c7e0ae0e99caea6453bd7db3bfeeb8a8b0ec9c9d33ca2ea82dcd1b1078beb044421e346def02f2d719978694e472239b870204a653bb5d5c6b87a0a5f66de9929c743e1dc3d0a694cd60d34ce0d00c57ef38c31659471397cc20e8ae7a8f1b910847fe1c47b4551dc2ebbeeb1f91624f0c09b521accb526707ad02b4e29022d6286d476c6453baa5b200027eb8993cda0628fdca0849747ed635b6bab3867fde33c83ff7e01534665cc0987edf506f332ffe05f542a12e8808689a219a5e4aa17b425821916bef6f42877173601f3ddee55827594911f3ed2bcd6d805ed99959d96293fc8d5c026b1422ac3816cf06df80248c483b3de0be162550568a3c04b0355847df1ee015e12e853a9d17583caf90a88c78ed175f751d8b5c3f65e6e17f09f7609c7946a23f4c6c43102c3c117877a7698bf2dfa9d33fcf163e126a9bd058b7b7748447d34cdac5f108dfbcd4b6f92265f77886f9315a8ceb83d5e6d105a049c2e43f12969d1d79d40f76b6eab8e414240b964234dc536d619f2b3503eea4e2a3a19afa1aaa857de12eca94af139b3da664b57620c435ffd8c95514f3c633ba5d494fd7181f0a169ac6745e1652b5a158b41d44b0b30891a9f4d153fe521361013e578347f52b5373262628c850004f22e7370c19203daba224032226b6b8022e1517d9f52079391e043bb49c36d853010d1a3dfffb95b51dff52454d1ec9bea6cfd9eb7eeb2ecf4a41fadf23887e192bdf44851021abb71018a69dfb29b47d6f952549450f01b23a6736c73a029840a6e7c8df00786155e04c83ef83ccb20881e9ae6eb794e9ad9e60aa3d2fd49510876ab9fe31d14b3c6a88f6634b2fb0822f232050ae9f7510ae1e87a903be24fe38fd6e676e3d115f4e5e0b1f43541a3b551bdd579bea5e822aacc980ae9239753bbe530acdc95c8da2014b67ca8ac08d8c4bc661bfe13403f6c566db236a05b0d9c063168a6f8d5b7c396186b3f1f50c581e82caaac7a1c44513ccc6f29fe013150165ed69066fff000bcf91874d509c10c25831f67d68727d807e8cb1be6cb30e2648b7b90cf55abc4439470ec48f00a659ced794a88743306840b1124209cb69ca0f106bfa8bc19bca6914047f59222da5271379e6f6587f4fe6db0cda83b8df120804789547d7a7fd8ec4c8dd911c86d08fb53f186458ac555f1e4b66dc4fdb2ffc8b60df356a0baa6d77029636016d46f3284d888b67bba249c24de7791a1a8243e5a1f9c33e27490a6d03ca2be5e709baad1b0dcb4054e63af40be0fbf552999f63fe80c9c511128751a88f971ce43c1f5e47b96de0949a94da7668844d99c6baaa3e929c4c19971f5123d79042212043d82576120f4762b74460f3bcb520d933126534401eb0601df78d2995a9b5eec56ebe85f2294cc71c1ca36c0a83b1d2e7625c3ae95c73208a4b69bef678248e1994a0997618e3f1adcef31173d57b78e9b0667a1b048632f1ad418af28186879833a5e1f993b6637e52f346b62eed1fcd9b6bfa02ec6610b9ad05a9bbcb2261853256e67e8aa97d7090a4d718271082faff3daff881edb135c5f953243f06beb118f380aa9566f970eb9155b84a5c5179297c0b2cb197d2445d5342cb2c26ba19d58a25f22d4b64545cccdb39d6588a46cb8670e895fad936005885a9ad9b8dde588103923c6920c57fa171782eb80dc87980f287fa8bed0438fd72b7f36349bbdd234f9a9020d9d3f9aad1671d0c19660a4c132e9210188503c5740bdeb541a3dc6a08bf19b8ee3866526f0fa699c9138898751531cf77f59b640df4f900fb59390b9883af7c6f14f5a75fb4ed57f095808e3f0865d7599a886ee6a77e286bfb3c26bc6079bc456755521d05a9940c0dc2845259444e18f15704e91c9a955861e4f38a1b3949aa21116a970ee11b951c628287553d62f91f050c94ce91f1d0fd390f406fa3f08da841f4b25d2d091915e561039e8f045ef9573e70158a26f3b63de0ad6a88faf06f8748738c7327f4f25239560129fed02d0dc24823e9da63eaf267fd2a63366d4d98115859cfcc31a7b9a98f5ea05ce5f0b082b02258b2c992268012055a573a2d54428bec8e89561fc194e3cc9e9e4da538b071b6052aae0e60053db1f823979ef24edbe27fd656dfdeae15866cc9f67722213578d1f8c0272f2c741e12f5ec5e50945ed19257945a58ac888246efa9ba352c1835dc04afbc14b500fd064d17ac14f153e5895c5a9a4255e902fb8ab057a297e943c3860a5c31aca6ee41de29a4a0a7490278fed3a0ea5a85226083b0008e784ff406e84980074a2c4f358101ea0eaac2ecd25fd888593811aceead44ab3467b87a73b76c361177cda5a2f7f2657c950f004b76971902ec81420b611f53bd22f351b3aa6200d02b03cf2ccfabc87eca4415fb82622d0314609684da16edd64758272f9148a47e80993d645325007059811f6ac0535f1844c767e9305a8e742c79d9c137cc367e4c73f54f7baac2388f5a2ac881a53f89ee213ff37c031c16bf4d335e33ef9efab8991066c1a6920ced2c141761088920730b6eb810790642743d925036247e18596f74b4a188a8bce8dc9b3068fda613837ae20b6a2943dd1314fef1c8e55d89a1aa23e7f1079fb6b9ab063e4abd3d927cac076087730367a524da08f8753df303a74dcd8846d13807a2fa8d4d8823d560c07d007bb389e307bff0f4b23af8e3c6574403285dcbe16eabcd74cff92d60d6b442ba7bf2e23622291d4548b06604d159b789b2a0bb0a6095dc7444aabcf165d63865e5bf015ae279f1f81d629b946203338ca4c1b124c928e5b2c275940ddeb201c6e9b09f44b6af858c19bee0661e905fb328e58291a58a5dfb59b042f1510532b32c88264611d2c2eef38d1f572933f6452c456cae6222b8c9b0b07bc17b1f33f68597c3bac32dc98855e25c7974d966d192cab6424ec0ed09b9c7de2be24a9d94d6c0ad64e890c9b364b63d77a63d3530ec138c16600237d9ecb381659a87056fe730c4315e8e27f4875f53d18166f8f937c1323ec2eaa0aaa2bc279c375e01b35ff98942b94a4b3c8f4a5962373648b876204bd89818a6c2a368edf796a94f8a390f0095c8c3db97ecc276077b5c8de39fc3fa0f1c8a0fb3a47b30ac277bba706fb44a4ec110b65d0a78fbaae22f67cef9f5204bb706b3c3c1e0ebc4a50e499143b7d8dda58caf25f9537bb9ab6b37b7c0d9541b13b848887a805471882ff1e4f8e2486c5a3506e2428d7a1e79edf54cad7be5ead59440e271278f141203763f8e6d6f9678a468a4d6e37d59b14ff3cc1cd111c064cb2f953d57e972f7142491e5ee4e8dc51cfa8530f8e052973c193dc709658e9cc0f57574220c0eb209c225a9c4e5cc3fba42215b63cadaf3d75909ac1cf0a1eedc8c65dbaa02d8cbc67f4e57fd0fecd05c03a8acaa187f81e0fb501f9bb0a2d8b117ce778793cf9803b8a0e91b6dfa7b91308ee7ca8efbfab83dd3c895dc0f9c3b744079664c99a1be4f61eb73bacbaba833fc5e8949f59ba3dfff875e7ea5d77179362c5b28017261e2648b6fc8b0d904f5dd7c01460a7d6fbc3f3bc05606db5ad3c9d53b791a56541688a66b187f65db9e62371986ee95879b12dea26fca693a22e88653209aa776c94c78995955bbbdd185f6abde064771d6de0b3f2cf2ff0e8298c907e7ca3325cffa16fddfc92aec9d53c08920c34403950da0a2126b2bc1309de6017f8c7c18acc267ff5f7dcf46ba32f9335fed858b782a750b7783f7bead0551d9a6495643a33416bae8de0fbd0d8b6afbadb98daef49f5f5df4e349ae8f9c024dec19ceb13de6aff10e664d6f7d17fec3a71379c2b6687f6807b1440564eb5fb774ae2bf533f990347f9feb667f2c334f978dd6c0ce647ec946ee8931493e143ba9d7289081566b12dcc5b142622361ca6faea32287d342750b10b6144911ccba3c3d208a6d24057acbdc6da72b54a7510f8a13707364eeaef36c707fd1070b08b0799f5907414431949d228d9909e9c462ea7e633932bdd4622d3fdb3a4f94ff39cdcf124e089d467eb864fec36bbffd032d8a36aa308dbd8c4b3a68ec8e284823e8547a40a9101aceb84ebe3a0fc753a33e6d7cc89142c701e8dbda37303836cf8bd8061506c3ef1bf956c711aa9bbf2115b989b733d70c106cb63df700f8bac68d4f69b3eaacfbf850dc64ac6766330bdd2cc191e8c1df1c17d82729cd719fbaa3bbb6024564a94a3acc0b5e378c15b9a38f4a56ed14ab7bb8cf5ba4a2140e0ca70a17a3866c8001fdfb03bc4de9f52727b2faf386e8847170819946ad9af9b9d8fc8da2cecefbf7a7515b53eae19b7f9e411d944d26af77079c68c35ebff79830ae4836ae7c9da7183054e73d6c174dfe3805c04e3bca9daf4c0c87a7224284b94bd54dae4d24f7d6bee5d23f3646d4ac7dce4fc389910d3769464e16dcc57899ec63b341f75053e5af5076fc04e6fafd34e1283ff7eaf1bb2c1a6c1dd48313a18c891e9dee2ed4dd15d3a2173960169157388cf841f4b40824e56203caa2a394dd7d030e68e504b2f9750c75adaa5acdd2c8e0c0ce366e467d7e216f5dad16789c154e0a3f3ba2435f1653593d194e180d1ba7e684364b8b10d9291b3ad295bb81f9b8239803c8b6d80ff050a563677d81b23d214fac13b29025b72a2e9f5b8b93e27e868ec9a91998ec1ab7d7c63eccd9f28e96f9c56bea7933395bfd5a4f64d4e3abb26443b815956715a79f0eed277737ddb286ffb4ec48da23f8afd86e26a4bc59055ce58a4f2df4805490853e65f6f80d4cb5fa679862b0b3d5c95fa6a81f5dcbe680157f8f3b3c210910063593934b2e6a901241056272d8c7d6be078474e73098ee651746e469ad1ca5ba73b00a565b6c23142f134e8a7e93cbd15a8fd37e28c829c01f1296958120c22976acd2f1aff4899ef16d62dddf90f7f27a4e943414eb707c67f00ec2e667feb0a114a6e934dd93ad9fb0e62319195c9d7b0fb7994ddb881a9f15ef96d3c6b387183075199f275f9107cd120aa883353ef2e38fa7ec9eaea50d9cf555318f956247bda9251d0e771ecd58af5cf74c8575e032cb581f6e9fd4b427e4d0516dfd1c2f5f7551fb35e3d411492da42546ae8ee3f9e0402bc313dbff0a8f6ed4e3f6f34626d9886fa9c4469a8ad658181bd010533a240123cf44fede58588d85c9d0fe0c6fd87d5b2594aa7318cf8e361795e3dfc7ad170becb63c25aedf3a3d34bc88effb62c180d214bce12dbfc146142050c76f6884529251c23f2ca286324227b7dfa090fce34ccf09ea1598bf6f907def0f62609b0410dd2ed009a0ae520b2e72189732b569613b15a59f0ebc909a138c306f098abcdd46ffec3bd7572be2ccb11e2adb16265f86936bc3237cdb63a55c9244d0bc0e4efd51e4c5925a1b0a980428fbbda2cd528482bfc8aaf32941a1b83854f015846b124f33da52a565954f1daa66aff9925a22ab94271e195f5e3c9272c85cb27538e58384256c1e5a2556ade35ce4d1dbc8f81ba39b832a9fe5fbd5847aa905a399aa15995cf267913aa49ab35d8cba80a2bf0aa82fedcad346ef2306a2510310e7cee9655c9e9e195f221bab2ffcf53a9184e2bf3ff3f44dd4a0fa25490162440ff6b46bc558377331e39d4015671d4f9facc962f02d7c0a304c50e0c7e03a18d734161ec1f95a24645e999d075ea40d836c31080c65ea21ba2309c70680348bca1bbf5160d083a562e06cf7e5e7133dd916641cb38184280b99ccbdadb22fafff66897eeb5e8b5d60f51e64e56f9219b4dfad20e990f5b148d24b55a67f7047bf07958e13f26efbd277f7b69da37440b1d1138a93be52876315aac127937272fa600a7fd280fe210251d99f773d804c6a5964ac2cc301875032a1f17ead66d36f83740b015d006ba8e94ffbd7a3e131453e8b700d968966a559bf7ba9bc0e2215877c19fc07b17170e3ccb64f612324020cb7b091b6e3b8acea7595a22345bd2d757091ce0a156cd9523e7984c55aa0df88535bfefccff58d6ce02871b62f5b723fd3eea1466fd4e7312d9823cf4770a9851b9f8aedafbad25eaa13448a4ed6c79f0233c0efd7e76012655b11bd34a039cbe5cab3dbd8546b6f07e6a336fba66d26285bd609ff178414936dc96d55f530d6a307ed57b5aceab339666013a5b05e00cf77e30b2e12ce12abb2f0f5760dad1a9bca6c5bc06e842227812ff496bdc77a53ee446563b3acd43fc32904966253a52d5196d520f9ed8fa67b49463f9c6cd598a81fb69f2b1e913e5dc52b238638fc7cbdd6bec744512a7e0307668b69e4cae0d342db93eb2bc81b33e3da7c9f82f96472d6ab73933071d0b3ae91ecf77be482d49b59bc38f0dcc70d7eaf6e9551b45ad02917556bdf4469b0a5974310d01ec307f7eff957ceb603845bb45cc91d7c70a328eefbc7c27d06a0e7385512e3926701c0cb8653b1faf15a417c772b492a5f1c479dedd0f9c179bf2a0489fe51fe9a84cdec49f9fb37f16b47fafcd99ead95586b4a9e34d69e5d8cb0f70aec0418aa29d027b754b72f55c33d61c1b89376de38238e2a1803a8acb25b7ed29d0aa52d13b07c8afb5e13efff3f58f44364fc507def0df6d7b64f4caf9dabf00193904aea742af23a9f6a90760e97bcd681bc1f15d77067b483484f235ceec89c773c33556bfd1e7179b7f31203ac85102fe04e1494b04993c75cbc6da2d06faa5d7c416ee7d16592e8606f96937caec6e3036d09affef6398cba7abfe1c63420cc8786bee2ce68dc31b4614ac2274090a06bd2aedaba44ff0777fd64322bdebae1659186c10007538d4f4fde546f9e261f725858a3bc1b94cbd9a090458d7f1a38d09d9d36c45f1c6e011373bc16fc748961c8850117b49f1b0cea4ccae274ecc5cc6de80424873c2cbd0695c9fe32bf578cd9b00e30a7b3b528ea6d682d5d14ababcf26885725ec2f1d82613245bc5099de4a80ec46a87f824df50c09c4042c6bd3560fd257f9c0f5364e7989340920525e83e029f4baea1d30a6de9aef3ed5cce271cf2537c641ca5ff8ad47faebff32faa5264f964a0c3db5b9165f663fd324b97232788aa4e2fa054aeb9b5bb2d22b345389e152eb18d5646c3862c75d3742460559471e22ed58aa0e57f2eb94ea507224a145bc1d1c10fb2e5fd2563abd2823d3b2bb78f9e949bd27b087aa7dade38f3133c6015831a6129de08a035050d33885477df6eae6026edc32a033b8b30422ee4ae5a20746833b2494bb3bc04a2b0cc53ac5e03a52f759602989d9d50d202cb1a5a253c2f68213a017fbbe239fbdfbd0e3029ead46a575fb7ca1b796123e1aff27685ce88d42370a7dd7d44377f6bbde367f8339de0dad4372234b7c5dcb6f1ef9c18be88b9277b7fa215362b0adc46c2bd68746d93fd1fd5bfbca1c59b05d834e98a16b3e3705856c3d6d9652a1d18e0c4ce3cee319b395bbf3e770128a90b03d25df1d204abab525d3720949ecdb7214e1c6bcecf2452c0e0d052e3cd8ccbc9dadaf2e634dd388ebfc65d22dda800c890a5391c9d56d8afd0b2d3ed3a7cce1c3f2bf6d03d95113cf9e6dafe25f57603a9c89be020f54c6ba97ced3c4a024dfc90199bcf08f7c757628423a82bba98344ab7ff43463d23eb346c704162f9d62e0ce056810a80012611032aeb9664addc6b00dede4cf6b4245586115382ae08444bf09a3a3e3a6d8bab43b9ab5085ece51d732371ee29208d800dabd1a3c45d7db9181497e9d870ad28c39915781b52cf792872a1365f81be8e719108c7d3ba8e271fcea542c80e299badbb7d0c720a4dae91080a6128861e22056b00a9bf5427d08ce92c34f1632d1c9015fc5ac4987bfd9a5f43f5ba431497ff54eb44b1c00df9e55cf68890a6c086c7b88b5618b3bb18c9fe1cff17d57cd147697c9d01c3ad15d5ddc47a5f2ff993b6ff16d858fdc1bf870fb47349f1d93f17a024802dcf4bfa262ad08c80e57b0e7839cebbccd0f8221f09838b9adcf23118c746b82a8c6fe6e37fe01d0da7dd3cc3feb6b3552c48dc098721aec87b1ce8bde0f817fb245667cbfaf019fe430ab2e3089562facd68bc189c91db8a528b553814acb57b6cf6973535774c160be1879174723489c6781ef6db3b9e51f8d47b3bb44169b3a2317f6412b9de6b13f865d34cd9e41f0bbdb657970da773c4d0299299efb32020c54c965986c33810872005a973b70d739e800f211aa929fcf5872c7b9940490db60f8ad539a58cca0ae394e7cf5b753661981ed7dfcc24832c81495ca80f9e89a4d089a872c898c0348adc522cd702031a06640fc1165ccc464c57b36a390d6a5b0d21f430bb0a6ef8a98cc2ea74011b07b78b06b2f2389abf3ae8c9b2459c08d884f0f715a3cb913312906b86b5ceb87a079a4d109368ccd12948316fda6d0d80c038a04037713853c19213bc5b8a9ef433a69a1b6cbe456344a2737c3e8861c2da45390c650e5af6db72c15462c7513a499c5b41de5f12dfd0ff1407361b762ddc6be0733eb51ed68afa519fda6d89f83e12d88e55b82bce1b4b6bb4c90ec6970d749720e2caa61220bfd94e4a8d9fcc82c49b41a2ca6a28174737ff38c84404f2cfadbfa2a0a68af2fa2f61e2a2a84589055c596b05462152e4f2b72d08fe55519d0175989eab0e9309d01085674b5d4dbe62cd80a6db6dd2198146e20bf1defbf7cbe124ba03f92135f272023f81f7f7b74fd0a89e9db40cbadcc6596151a5527291427f3ab37db8ddba0ad09ecdfa5e8dacc004c761a15a8a715f15def448eb321ae35759b91a4cdee26b5eb5d2b2c9a5212a72605e8b4167c0a51e515a296b06cb4f8f9701e29b71c3abbce67228c99d4911830a123cd781e80de1e6481195358c75a1db39847a5077a76b41db55bcf42202b3496f6edfb1b14e2900ff4abf60ff1939eee0f643101dd34ce92f5cecf46feb28eadc90f28d6d159a5a3b74990f9a15f4dd8cf4e3aa2cd0b34b1d99285d004a76b5b1850c91900701ee94533b5059a20c09778705e9f4451743f1d73755f59401cb4a247a6f4fc9bb2b16d7654e52b82279c9e744c6d528abf5f7884f42cbd0b492f6c71fd43611583cd23455931d83c22ac3a335b40ec96a1b2c3932be6dc1504b7223fb8afcc0a3a0c664c2743bf969710552cf4ac941126f403c1f54eca04dd6d895273e60112036d4487a5a39e5aab22363ce817824f91c044421327a5f10fc4494a8dc44bef925718c32e0f796105d50b978559935e4d8806c52ac28fd4a2ce863485b38bc15e8c068b2523233bcbb32e285d0f8cebabe380d3b4bda1f37f2f138dd5bcd0cbcb9723faf0e5072513cb4cf6e31a922f9b90466a53f1053774b3e76bcc93698d3547fcbf412ff44d55e1e6d5f5710f9bfca1827394657011e1079be9cf33c3c38481c6ac62197382522a1666404c2ba31b0001f775126f0df0f95092c8c03a7439777f8ff7e530d0072a9b946fa8c17199cf6e82d13fce979eb993a2fd91d2614cd403432c68532477433869502e7c7034970bf5eb4d1cb2396a52abbd8b4f55c6f6f82fdd764befd5687e55da1ef8b0d8798fb6c685a61f9a004186f4badc84242c82ede5352fdd8da5dda76a825fff213fd568a417b73850401e3633502dd9de17594dcbaf07f0f6c682a58732dc1b38ee0eec2cd23aea9f0ce1a81cdbc49df13423790d66d19ebfc4a646f0e93c1cb701f5539c65fe95b3f5456b6f28867c6f66524ce7cbeda80be6c9e6f375d6e43804abcab0d02402ae167e142d9571a6c168937bc6543bd1bf70bc0d697bd60eff77356710a980537f279baed9225db062cc7709eb175eb06e9b51dba4f72de4e1b6cfb0a5afe08483baa126145671d4e87b2e43968b5836119badd33e74a967bccfb5c87bdd9cb64eefc0769fb3598d725f977b9275d5ba89059b07fc291b92f342d3f2025cbbea42f44b013e618f525393083259c000e663ba3babf134ed0c1be1332d1f13a25a8a811a940476cb206c40523d70aa34baaa628abdbac35ac06fa16db6d2171614a8c08140e785ea0d015c08e970155243abe320baff9b301045f70bcefd769ef58b37336e9f7b951aa81e4d7ed23e0695eb082fff869f89fa9ec1f8c0b8184cf6dff3a9fe4808c73e17e8e8adc8f822f12e80c5924054c08ec4546a257053c650aea5cdae7d92b6289948977a03d268ebfb0b86b195f7becccc7bb26e0135100b0bbe8da1c8a6c2b3d6722a77877069fb647bcc5af6dbdcd4656493b580a68a1c3fe672f308fae5ee1eec66a5409e02c53e1079ac5c193fe486b348162b23aaf7612e542637167e493a7f4ef4d450806f5f75d0724137e788bd6748437127c6f21c50bcdd9d25beef2c2fdd700cfd69fe1d9b8ebba3082af2e413f7a3c3e24cece4bd770c3b3fdc2be210ed4b2b7760228c30b68ee37d8235e17d2cfb41c10525189f8b2abe601debe8a77ad68643ce2f4070670cdda58e941ad7bb5e365b9f7cf15714beb587b147bc039e5c225015ed3b991a6fb934289d169b30a39264bed63d4c7964aad45b0899e27a0906b79010b39a2d16b407808ac19f5047fae6dc5405024f36aa4386ba90f1e6f3d85dcc81950751523b943866a262799acc0fd81a3fe4e0f978704341b4f8bbfebeda8e492933ac7dadf5a20f03efb3fe29d8b0026c252dd9e5644a7b8c02ded053a04138d505feef8c8ed2aabb5dfae0e210c6d8a19ec6f2e6c538f55651f5cffcfd421948eebcec6bd18153017c8d026a654ee2d9878452cd8f7328968efc4b6cb0eb3b68f7dd229673c6cab0f3301d5ac7a4970a35d9785e7fb5aac5d552e9811b7581807b055f4bf6aba596d972c65a4f8ff70c33985428465e3ae64b808d8ed6ce5d0f2b5dc706be5f84daf755dedb3246b226a95b0e2646de79993a18d4bb47af34ffb301a895437f2e77625cec6835627f8df08905a1b8ad3c8af878371f5c52b2274b13cabdb448a732b0d8edd2fa9c77b3674ef73a445a95de0bb2923cdca5d5b8edc176b8a8c3d02fcd227a51920ba9aa57f8a34ef26bc98c8e64bf9a4d73a21e49f46535329267da1c74f98d2778f0532cf3c2af82144264d623664904069a785309f15f791f640729b5bedbdb1839934052e4390653cc984d8d1e8b6d1b2547e4e3638d78346d508b5cf0667b25315518a7984d255b8d25e01728b332e07967e0caf2fb1b04588ce2bc0078096c7b87b252555d704a86d6619616e316f797b012d464f71c404b7a7399e116ab78e110d1c9f65762242779799ea7b60dc2c33834e5d03943388b03c8272580ad83bfcddb3f0dd76885fda3f7c669ac88aae4bf234ada00a9b82b4568e7e5319e70b6be1f548b13da2412fe73715562c6733f2ca0b334b98dd01b420e526732d4c4fb957b042d41f789715734cd49316838ea784b213e1baf23ddd22474d375bcb282f4f17ccf13b6786fd94fe45bd5935254ea7e4647c8f84876c3ccd8cfbb997e0ed9d418aff5fce756a5d94c1f30bee8c8994b4f5e53e70eb42aa5f7d499dc78414cb0094c798a9b8ad8d82f716bfa89bbfb3e41688ebf203f9d335e34f9ababea081b2e0c13c46288e37eac3811a379dc2b959f5ab9c62a80d58ee98004afb8a725755b67ef0c56aab5e9c40c1783d5caf5ba4561d51016175b36d1650469e91ab01c22a688ccc0026fa7a32516f24a61cdc7f10aca59b13f93b2310e7aa8ceb13fc140fbbe73c07b32c7723c67bad16195ff9088b608e90e6e7042d5408432cd4e051ef5da64c77843604c9280fa4a8178eb2956c62fa234625ddad46f36b6a7151720044a9101cda30dbd6eac518f6a29cf9255b4151763a82a463c06e33eed902f4b044dc674cd7e502e12821d47e88d9cf0475989001cbc5130b3f9c9475c492da7f1626b18766b216c08ee33c8add723fab92a76667f58524aab2a343d938a049c47db6aa4684d824c402bbba2617c048fc47a6cbe1028001ceea632f526318d2f1f1c95f941a79f34f56a8d9c622523ca187c3d8049d47a5c079e4b636a502228a1650ea3ed94bbd024f436128ac9c4839d0a68403d39720a86e93f60dc8d0646ef5e5f2e268bb28d28d4ffba3a15845dc1714f482ac3c3be2cb117e08cebc00b25bd254e092687c40c79b40f6743ff55f7fa9589559b47fdd10abffcf1833271c3f1b9457ea88fb7c797b0e2801b0cbf066b0dba052477fcd0d9c53f6389513b7f1ad7602e1008f8da1e87387c7d98f88f597c2dbc4dacc96badef7e880a5d30af095e90b0a8537d1c09494946c3e67bcf10788c3ed3f2f03ea3189b27f30aa5d89b51bf0a187e79683815a6d69cc51c2a689ccc3e49ed668e1bff4df1719a191c8caa6a0b81004be52c94a5fbf18fa3bc7aa1a3bc0aa5b6f6fb5a0ff58a8e015826edc7b5556485c1977a9f3fc6daadf032e10c3918a43678971048ccce619fc1e09ea8e2e64984d3813f1ceed43423e200aa16a080c748ed05ecc3a2197e8bdac0dc8cd08a987ce2c1f286a0a0a3abe0e24a19964faad3bfd0bd69d8aba5d905f6074c7334b2a73ac72e245f545e74d16195cccb71bc09c4ceaafbf5524783d6242a29e4e3c1f905f95d44ee80277a2a612876e68e689edc937d6b89087fd141f669b3afff98b472efe3685d3fe51acf437d8d9c0c772d046852606a36073fe19c45f39bac383e2610bc110188e580c1d4145d0adb34c977b7c2ed617982d48951e607f6a7088c3d22a6035f8f79300656b5c424b533133c0247742952e8eee02f3db556de97d0f88278733b183c188a7100ed46f6ee54d5fb9ce9d91575ba6a5117743d83c206f6ee4f9cc6cd11e68ec90ecdec856c16321e0c9b625b71345ddd9d703626cddccd7a398d126a7905d6453f75d016e830d19996216cc75759e818d94cb49481fd7c3b1932d0aa9fd7e5331abb38bf880cddb0a5878c2fd4a9e9a991d763a907f9f89fa28d97f88d768345c49ad5ed9e849d2929112cba5573d1cc29011543ab357d235ed856e79f0f5ab1d4b27a6ee9d35db5faa5835895c8fbddceba2243166153f2adb413f0e96520bee756ff5b87cec372c25ed43b3dbace670f67837883503d559338236357b079033cbd4e565c7fb7ca79d5f59a7ddc9a0fb78f236d18863344cbd136d6fdc3313b2768aeb1b7f0c52a3b7c81347dad75922fe589943eed07bc042c9f1021e26fd3d91cea2b1bcda7c0cfd846241987676ae0953b34ea54add84ce450280cd7add28896c93cf10b45dd79938465db2a1709b90b130a108b032e0d1dac97e174fdffa009b18ffd0ce66752598a424eff7b439441e226c41a0bc6a38d57aeb2fa37dea5e229cd25a11c2452e6f3ccd2a82d0bc712928326d7b7b257ddf17c92f047766f6b9b01462fbc62351715422cb804566112dcc67a93e26a43edd9831aac4c554c38ba76c8f6e8c379218c9276860d87019deeacc1bd290ab91df5b911c47fe20ddb35a259672de1fa1d5e62a29187c662da05a2d8929e615d7021fd3e3965c01afdb235b9e729e9776857d95d93d1d0dc9ba4a493cdcea702d634b0f98cd76329f21af1eac91ffb6d7527c8c6cdb18464057062f418ac60c4aa4ac864a9817a0d1fb9a4505e090a6110d5813bd8f3e1fe4ce79fae619ef0ed9caeedff14febab644c39ae5813a8e1c5486d0d681702cd333df9df570177707193470efae77be3aa2af6667964997fd80c5b549f408810b66099ae53f15e42fc31af46f3f44819aee9c3e06ad52c3625a8ef292e9f80500a30ccf7ed451f6e015370e9f4ae804184205cda00084a62b8e5602a9bdf24537425ce00fa2b1db853efd438e5a45766aad89b6b3cae63132431550c84f34b52bad2a94fef8485ea5876837e90db3424b3e230efed1f057e6d141fc9fdca142fd74a9651f8bc3f8c4f1431d6b75cfd1cd786fccd454bc1107ab1f49a7c73dfd088eb0087f019f43dcec734e2e7d9fe83db114f0e3b6a0ebc080834de6e420610ffa7272e0b441870f598fe24d7483f4a25457e8624b959ec6c23df55e24adacdb4a7d69107edaac227f14224957d64dd7ecba21ef2bc46c997374d9ba98c8b6d4d995d761d8738e3601ba358839b01d7a85d080300a07cd2b4ecc63568cb140845de59e2be2312807df99c89dfb88f1abcb9b12f19cabcda45929ebe91383d9e12aedbc86ed2dc3a8e52dbb937feb09601531988e2b3c84765474b4d42830a8a3c83d3de1a5c095fc2eb403bcae21ac66f1349f4d47a3ae5de38bcb1ab9452af415f3086239be58e9fb1e1586a3b02f5afe24bf1713c4aeefc07b52cacf6aac3167c1ec98abbee4ed5d70b332de279cec4784f60959fb4e0b1f6a1251eb16e2b3fe366a53bfb9cd9e90b7117eaf62757921fe3164b662859f039c281cc78d9fbac7e444750ed274fd382ab70535d2466ada88ed2394c7b6c923a4370f33776b8875fee0606a1fd2d498116d0c11a7f87816cb18e624f0c4a50867be683feb08abc35a379ff31b1a87800f6131e21196697ea0936827612bd698cfce88c7c398ba5e8af193306c609a1322937998754971e2cc08f7197419e607b6e41a78c3888ea4e0084c5fcfdb9c642ba2f9afd6ef7192f49e6b9a71875324928f92f5222358ec59f8769bc518958a3fe3f74600817c15e6738597fff6b7d1138fdc043bcf96f01109627f55203abd9025520461db4b69956b217256ec63fd2b7eaeefd18d32a3b6a56f5a81fd734409b53890ede48c4f48d6597a4040631f03465796355be88324710375f0d2e870874d6006d8f76b8a1e14ddcf1bae2e48de132867909fa7ccdcc2a220ea795275d57a22260484fdd609467c92760facf4f408a4472546ebee2fb5002fc8a3a61ae5128382b3898c7727bdfec56cddf92ff5819b6f087094916fd1face8e28a295586c138b63de1b1ae5fb0f103d926c33a660471368a4ba79032ad08c8db261fe94e572bbb9b7ace4d6dc35ac028ca6d07976446cf59a84f9c54f0cecf5cf068c8860838915efc55abd212980dd74d560d08a7887b4df80e55b941c60807e8e9028bf9c4e61b7f6efd858dacdf1b42508e9a3335263ae7d41599e48cfd02578807a4012e9658dde87e838ae8072fd1a729c5e714e233aac760a92efd6261dd4dcab52bb0118efb3b91d35cafb3f49df6ba406f82603199efc4094c39ded7966ee9a5d1060402b19e7e2030d9e01c7d60b69f1daf9530ce72f3cd1907cb6cca2a86d05aa3a61887f2b3fd5db4aa2c586b282ebf07dd65737eb68a619c3a392bf6958e52267bcceed7b1df1e96a60e3a29f9e7da08da443d2027f7b230dbe445cc8ff006751eb3f577c908eede3ed3e4a4829a464f5db255dbd31981f7464490664b8d2ef19d3d52ea48c02ebeeaf2712180ba627d9977e43412294cc98832c563e337e3626e6e7abe1ef166f6778dd8fdf593a96463d9b3854d7d73109bc2f95695d7eab9d9717bdeba5f58feae34378f4cb8448dcd80b86f451e769f266b59e14db6c9fa6119529373e2b1135c23f255225cddaa28400cd6b6a50dc38fc9e2f03fa0ef9d1a0cc7aa49673daf268ba8a0b390488b74d22ee6cff8832399246ded8f6465960ec6a3155af9ac83bf7705e12d1dca673116e817c650b9fa4bc4731d200a232d4d51afebe97912289408037ee184b70c3b60b0a6d00130333333333333333333d3d051bff576b7272643269924d1489d20bf817ea794524a299227131f7e9136fc45daf017d9ad6d23d40c02e90cb10c6c0c332eb080ab0f1898c74d0e3d76973cd5191758404888c81e163e5e60100db358fbd0d5100e3e5c60f8522684a89304f5d9741a35dac61608ab15a6942cd8f76a0b782db2e8fc81072b4cf294f89c2532747a15e6cd92e4d26fa1ff2946c382872a4c22f7a13aa9136f6611394b85394ca6b5b68610e6175418d3cd24e9f96264ae50f03885b9d2941246e77ad29d34b22592a630496e23764d0e7af5ab529844b3944e494a429ae08f6c91c2142675a9fb4a427f49d928cc419838e2f47d9ef804250af3781e5f13d4c9febe1b9045167d45284c92a0da53deb7202c3e235b070a537837932294a0d2ff32b2f50953be51a229d3b9b4351dd9f284715c4ec53725670fa31fd9da287874c21ce26fb4af68d12ae1c8163ac183136615d5174b1a5d42747813e6d02ff994a47d4b50c9e286888ea3850e4d98ca72ca6bdf69d294fcc896d509b83261d0769f47bdd6c988cb0313a6ca742fbd245e984df3128613df4e8592dfbab025cc7f9287b464974dcc4d834725cc257405d149877f101d4a982e47f5b6e5889fefdee03109839e5eeaefd988e9970d1e9230cc5e2815e74c322d710d1e9130889079b2884942c2b46f267d4a79f682c723cca372b2b2c851db9aff77eca0b1c311c62b49e68dff8fe570656984d9a29712a6e65a1b2a173c1861ce7325a51e0d9953dbd6224cb13ac754be729ea56069c14311a6ed924facb798cb97b34498e4ec8b6f8d9362fe8f6c891403830722cc492efd27aa8fae94b591ada4bee0718857e7bce4932b3cb2f5040f43184db57ead3aeb8a8746b67ea5e05108f3c5279dc6830ac2846e64ab2a0b1afe26380f4218bd9496f24d2d1b4b8e6c69516a10e63495fed72fa795501ad9e213141384e94e5c8b274a3c69942682ad1dbf0096814720cca3525b35d5ba2ce9226c80305bd2d6f32b5f2acb39b23503ad16336ad018d11162821967b5985190031e7f309ada08ef20623cd65ad4e01d5a40c08602d2c30fa674422c6f9d9ad0347d0e2b1a9de3027d305a7df57fe814c5cb1fd9cae583515dbd93bc20ab32cc3d9882aa78628a58fd56c5c7000f3d18456ce866e7871a5d19d9cd0e78e4c1ac37aa924a351d1542235b9863078eb380071e4cd2899da1835810264cf8028f3b98539e3699bd7dbb201412a25ba47fae2178d8c170979e237fbd5e3aac6645f0a883517bb4cb35edeae4e44f9ffad367e960b67072acb83c0b42be621e7330adc916f9747363e02107b3a71b1dfbb407e5a2fc070060071e7130e78910cb6cd10b37ad120f3898c5c25552792267cd6487c88d1d36689c251bf07883f904792dbe7adac92d914f018d2c9e0439bec61d0178b8c160b6595beb41ab746b83f9ae83ed585eed09a21c3776f40d05ccb86246038c0de6397df59d24d1162eedb1065397ef7fe5a0f5f24845fc4d2092542ac0430d664bb256fccd6d27573dd260166925dc92547b56ba91ad2d9e04225974d7282b85a36b5c8e1b3b3a11f14083d9a493c372beecf2588f6c25e9018f3398356f54967c825f6def6106739968b9841023bfa337b2c51e65307afc10a15427bfac0ec0830ca61c3ae50b324bd43d68644b43d43cc6605e4f9278ba829ce81b126219f01083c90439a7f5f4f9a9130b814718cc3967f7d26a9e7b725a47043820723cc060d0c9d4c75cbf8bab21cba269ecc051c3dbe30b26594f3b58ec328fa31cd9621d3668f48ed416080911a9e128b8f282f92dcde77abffce33db2d5225c44f0e882a92f7c9a97b4787d251e5c30971c5db7f2d789dfecb105934cebbbb7751d31b696c1430be6aa2469dd2ce9ad4f5930bc96a5b6d48e9e6486a38616386a6871583029730f7fa376e1f4e90a065bcf0b13ea57b334327858c168a632b5b68309624d5530a54f7a74a93dd526ee556af0a082b19357589276d29e4242cce03105c388d59b9c25e8ac769282a973b8927356bd5a74ad0b1e5130a9caa7c7d2e532cf1a1621b9050f28983d9c2c17267842426854c1c1e309e67393943e538b361f9e8187138c9546c853b1aaa0ea6c8229e393b589f6bdbe242121386ae4180909292552386ae41841317830c1e49a39278917256b8561f05882f1b3eb62c733395899446a0c1e4a306e257d2db1a96ae19104839d24c82ab7d32989ae07128ca1d47849bb72a12b191282a36b8484848430c1e308061db494b04aea4cfe0bd6c1c308e62cd244fb76c7cdf6123d7814c1d4f72587ca999af3322444474895483103e00e1e4430bd9a9cea4f8ef4304a46b66e90a0776cbd16af05058a253a44e03104738a954c895bdaa4af85608a919d4d287527c3458f20184796b44aa7fa52ac3c021c10a9e1010483eeb19cef2f9caed846b66c7c1697ecb891858e520ef0f88169cec3e9985b25eb430f1f18d48d924a981c65ee1a57c1a307e65c6622bfc554f40d1d20e181c172d259452869bc4c424242423c7660ac64bac4674f2d295921215522d5060f1d9893a4826e78f27e91158f1c18afba4a8ea2742e256b640b053f22428386eb68911b3bacf42c021c10311e383097589fa137c7a47c7948085bc1e3060695a469f769ba5790d9c0203f982ebdfdbaf8f1a2c1a306c68d5f3735b1a0732e758e9e4048482991d25123cfe04103d3660861d153925bee3403e3f7452fd55141751ce1f0908149da7e119ddd7a3e8559dcb871320b8f1818744e268996e4edf6381d123c6060aabd247956742fcdd1e30546331bade4f9e434d2f3708141d547ce7b96d5fd4f2b0c277bf62ceeb93f05392bcc39c8d6c58a268896ca2acc256f3b67a4bcbc75199871c58c07ccb8001633125598c49d5bd89e9e8931990e17a9305e4a69bb6647a8db8c0af3a91ca1f1af751e4b4e619284c512677492564ebc62c615331030e38a19079831012c66e8162e4c61ce71b55cbe29ea92d845298aee57f1214fec2da00417a43088ac570a6ee36241a59448a1092c198549ac53f951e293a0a4de068d0744c18528cc9fa4b67b07a5e3d467a1304982c7cb61335ef32a5098d229b945ce422f471d9324b8f884e142dd5798b728c27a6e820b4f184dc97956b89242e7aa13e6f2b426e5b4624204179c30d7690bf7bfa2fc4c65082e3661cef17dcbf6f5ef15b761346110ba3c2fc5c9497c6b6bd0e82caec884d9ca2f769252f84f79a298309bcd7cc659d295aa06828b4b182c8525dbf24f6977548e0e2c42422c6150fd4bc29fa416724f24c05b0983f7e838d93d577c1e97e0821206a5ab931872be914998bb3f9b7a6d969ccc04b89084e1a2bc868e10aba7c6a18323611e759f24d572d550823bac2470c50c08ccb80016331270a60a09f3bf88be9bcfdfa636c62eb8788449437865b113939fa41928820b4798949b49919791a1e4bd1126b932e4edb5ea96bbc70853fa1816bdf45c4f0c255c70b108534e6a7dd6db93907fe2c0d122568922cc7a96eb8436ed9295b316709108f38792e3dde29e37430b5ca15501178830694b2d26dcfe479327235b2259681c707108739da0826a313127aa212121214e034d101272058035b83084b1c5abee93a0e4b46b268530c9381f6152ca294d0a17431358528430ef9645133125c9594a3a05178330c75a90cb9295bc3fca487021087349d59f3ee713113fb1145c04c234fe56c2f65b7cdc2c0b2e0061b6d491176fa1b58274a9e0e20fa64eb2c923459724fba59de0c20fc6934fa3e26bc2494a385df4c19c25d59f20943e41cd0d090909495cf0c1dc61a17384ced61c8b759462e3620f6651d952187552e7d44dd3181012b222a523f5601e9fd792e617cdb632a2a31910129288145a1e4c325457fc86f79ec95de0c124269424e9d8695136740753f67c99201e4348d1e120b8b083493a99aeafb7a3a4d8edd6c1a0e77fe1ca443f592f177430e55bf83339c7c598d6ca1cccc15c6eb332943a2978021772308771732f25bcd5564a0d47c1115cc4c194f7290962527055cbc1c154e2dc688efce9f7ce025cbcc16852b024878cce61dee40693e92408fd109393bd77d1069314b675cd547496ca6961c3051b4caa94fc94c4bda92ca3dc818b3598e3d4aa4b478cbca95da8c164c27377c97d726e4acc451accdae77d9565c2dfca2121ec031768302859162f5f8e6b25eb2ece609a15ad9115767fa785849c09aece0456c351704f706106c3bce96dfb3fd94eca6251c351506ae0a20ca60abaccbf3b3f070b228371b5e3de4f90cd8bd98484e0180cf361f262279364d18e052ec4603eadfddbb15386d2e5163bc260b6f924d6f52d44c9302444cd082ec060fad1514cfa4b1f479e898b2f98554f8db2a48414cbb1f38249d895125a253a494a740d0c2eba60923de8cdc6498286ce98062eb860127dfac2765f8cb2595fe0620b06f5a14ae6efcc8be7ac48adc085168c95edfa771e3d5f12bac882e14c8dea64927cd2e771644b07164c3274304b71c652df45b3868b2b98e4f5b8e988fe4e82c9031756309a78f5ed0e9b911fbba882496e3e7afaab09974a3a68d8a81bb8a082e14d8e4f3153d225318e00074440e0620aa6524175dd9892e2c92fc7c085144c225d66c4c52d7bf7525f701105a3aaa6eeedef8fef282444645de0020a06ad2863b9bf2c7bdc21212121496506c6baf293774da578fc4461aeca1fbdf39968c82e1406dda243c552bd55923618010e887ce400041446b7b4bfbf8e25844a3f61be1c3d5a98ba91b9cb13e6d461fc4eb2ff8ee7e9845943c3d2bd7f85dac609d386a58c9d20edcb4c9b30b9e5891f22f3c8961a00441386534287bddcc10e8064c224967fe549f67ae16a4c98e64dc92609aad40993f2e81246ffd915a115e4b486235b963099d7853493927c8543c46dd0b8aa8429e777a97e15dff379642b8bb3b5c31f870d01841226aff20ba1737e9eb54cc2582659e8b1ba37199f244cb1b4f50593a5feac33b285b2924818d4c7fd31d9c4bba4f3912d86802e6300041246cf66f63957f808638948bd1ceb3ff68c4e00718449185527aa261ad94a9000d20853f83429c6b37530b916381881d0a5751fd9a29163474f016411864bd949e97a675d00518449acbd7992fbd4d615080909b12d5c240b1c35685cb9300248220c6ead7d2585ee587f883089fc20d45d093ab66422208730ea5e67695ed878fc0d617cfffab87c13443d095208e39e50a2844fd2e9abe415400861d02c2598eaaeb6745a1b8330c9e596ce2e9ca0227c44c3042fa243c7fb1533665c600133424242427488e0d081c58c2b664c60c615332a608190903f18010e88784c02441086d176f17cb10361caad4a22b3d9fb5d2108208cf295bb6517a774fe3b6cbc09deb400f98341c7bd93a6655397627e305568b5587d57962a35b2452325916a8002145043479f2024648bb33d00e983a94db84ad6a3a12201081fcca1c396b6ce266f4992ca40f660d2a2726cdbc70929ba7123c7971100440fc64ded70da923c481e4ceff9c42549733c98ab4eaca399989c57bc83e1ee4fa45d8a922abb3bec60faac234577ca497cdaeb6012ca4ce970928a696ea183715e4449e2ebedf1ff1c0cb7d92a1b6ef2e4570ee66439bed769933e5c320e869383677a4e2384f613381854f2a40415bd3ee9d71bcca2a48abb5e6b5992e30683c7fab8b934a21e40da603acb93938af2a2b5c46c302841c5d95792afc1589d3dc85b92f3ee7cca0102440da652e25a76f3eb1cbc240d26f1563e662b275daa6830c955929cd75225cf66d939809cc194b9b9326f4a96683a5b98e1a897a74556e7f706903298a49968f5affe975a2b0e206430e82463214eac397d6b0c863d39355d52ab5472c560d03dc16cb5e42fc8923018f472122d96a58adf0f0ca6394930f14dbdcfce647600f982499c30677129df275f3868ec28388078c1647a562c9d7cb43f932e9864890b1d1bb7d1b1111d40b8600a4a5c10e9514798cc1701b205839e4b3772b6b2625a46b652471f102d182b2895a6afd2ae86980553493934d7475830575fea8be8baf03202b982d9523c8b66724e3ff1b282d1357c545ac9956bdd1902a40a06ab3115bb7f94a834e350840408158c1de33e496acce54fca2502640aa6bc5d824ee27552e2bdfd01440a0693d34dfcb50fef518a8271d7825fae37b9418040c13c4a92963aba52e98a6b0079822978ba143f6365729ed506102798e7d2d29c104abb69c608902698a28bd241c50b6fb13e8c08102698e3a794239496f956d295204096608ed7493ead1e75da593e8028c16825d7cf5fe429d3e7c8968d2dd01533905e124c7eb2c9ad7d72f224bdbe81b400418261bf6dd75cff2bab8d05c811cc16cdd5b2b4d82759ce0288114c36324a8f8fd2f549bdc51131b38181032982594d3a491a95c54b49f6c87e16a7738010c194e4dd3c4ef2408660f2b793cb2f554427d10c4408e6d9cd9155af77c9350b82499f6a8af6951ce4cf4408204030e9b111b22ddc058b510c407e60ced9740a4b2f9ec28fee6e00e203638fc7eae9f1987d9dbb1e98e4eae0b6a76169c7bfe381b90495938e2835d9436302c80ecc9d2dfda55715ddbe8d05203a30e7dc915f2d49a99c6a901c9883ab25fd52717ea605c18169dbf47594e81b62f31b18b573b09247fe2c546703d32731b17e336bd793bb1a9852ba9c642b2bd7537ac7ebd0d1a508203430ee491f4f6ef229799719989224aeb296928416f1dcb02102220363872b2df75b7229f766025302480c4ca2acce96ea54533fb30d101898e4d0325339e4de491622a86f6411125203e40506f37882d62fbdd83283b8c0a4e7a93d09ed72493cc78d11748d56184da727f173ea46b63e58615a5ffbf3ae114aeb7f4548887eacc224054f2797dcd2a1df872a0ca3d643eb9e96bf14f4910a839ba7adeab4977e59fa0ab8e0031546bbbe24fd4d3c0f61dae1e314e624a889274cae9cb4a9d5f0610ac357792ec1b45d2a39e902212122e5a5e4f0510ae38965b1e464f359cba323391358103e4861ac9c61b12fbdc4b3751406a1464d691151920e221d30f81085312e2de8b0203c58be84c29ce252125f46c997f61a8e8203857994bc161fb32adef71c7c7cc27cc24ec9baa104f94c3d61d88f7157f2783c1fd34727cc29bb25df907bb14709274c399d9ffca5f0d9478dc08c0b603183c5f0b109937c390932af4e96361930e30258cca8d28431ffb48b70cbca49331a59e8d841e370bdd3c8c2023b6820a024f091099316a1a38a9ee51c26c684f9f4c4d1ea58a5628b4242121a3af212e6b0a7ebeac2a9d2a5620993c5eca0c49c244d3e5b098389ef51fb775414cd6d0b1f943099c72c612d2d6aa8bf2661b80a9aaa1eab3f4fc97ef02109539c37a5317ad9717124ccc13d099674592061ca3b292931cd82e8ec15011f8f305d985e122d5ac972a2234c824a1969a7d408c386b6f49e7d49fecf39021c1031c107234ceb5b7b821899ee39297c2cc29cee2a5744283542c9330f3e14611cf1a322373d97a8d7858f4498d278c5d77ccb9ff31da22351337c20c29c73f090a34ffacc139b71012c66548914153e0e6112948ffdef6da98a920f4398f3dbad8b8992dcc14721ccdba17ad7e4c24efe5c3163c605b09821525674f82084e1cfd676dc4497be944198a3e912bb42a9a85c6548c87ee14310c692c5b3524fbe0e262724e423102625a217748efd274c70c6152275860f409854927b82a69cdc92362c3efe604a1922b489d4caae99f5871f4c9227abf4d7261c010e889ce0a30f66f354e2aee74ae7c1ba620258cc483ef8602a35259de9cc05711906665c008b193776d868c016392e707b308972bd4ee9693d98b43da76cb25a63fe6379307ea59c67be46db848707d39958ee9377caa4687207f3b98b12d4ce29df92640793e956f9e471dd6b74ea600e1dc4f8a5a44f996c1fd2c1a8f1bf9dfcda3998e52b2c5f50e27f65cac1ac25a992eeecbfb792713085c9d5ee97c644ec040773e5acc5f093477869df60322527ba737f9eea246e3089a5d266d6f59287b50d26596d1f4494684be944d960aed15f2da2fbe46a750d26f14ef683c7a758a25783a9dc5225b1ef656254d2601e217227555abdeb3c1a0cead1dc77b497accf3983f14c1c612674a9b020640673ce272e6f059555b3ca600a5bfe5fa643d7559c0c26a5c69379ae9373f63806c37c3493c4cbb56fb205c56072cf7d5245dc9a7c5d18cc9ee411519aa12ac5ed030ce69c4d3ce932a7b2ef178caa57a597f733edf68241aac5b3f2fcff31e647178ca2976ac4bae654be70c1a833734af04fd926945b30e5f1ddbcf89db3e45c011598514a0ba60c3956629512d23ab72c98c5ff4f5d494a2fe7688e1d380e7d60c1606172c5b7bbe2feb882416a585af6544a92046d8bf48f35860f2b98dff7ad4a883c3d7322838f2a986e3e3d7bb2b8134f122a18ffff4fd64eda4f3e2529c1c714cc973ac479b8f664ca968249c9bb378fb31cf3a591adccb103c747144c26b8fe8be5a4525f4a0d3ea0605282aed150e3a326c845e3e309a670d10ba7bea3ae3f57ccb0d322242459427c38c1b8faee61d9e2aa44130a6e202024043d0a6e9c6b82c16a46e77422e7d9e9912daec007138ca9fda33cd587e9f71f4b3085a6b529b12431eb45f6a104b388ab9226b2feb3b7249843bc8918d9cc2f930e09398d0007443ef08104b3bac831418eea947fd48f23184dc5931055a2840bc25523988493521c4b4959971491e0a308268d71932efcca92c6443089164e94479f1371e195103e866076b7a4ff2cd411e08088083e846052325c3346bf5bc9b68e2d725c20eb230886b7f47bb293b09fe4d308704044e40308c6d3e2faa544e5a4547e4437c70e1c67e3e307e673f34ba167527c4aa3068d85c08c2b665c81a7e7c307c68e9d776d5ddc4d441f3d304853720825a875b4b08e6ce5070f8c562b63a6adba93abe33dc78e2acef13b68e07eecc0a4b3f78dbb8f985215107ce8c0f42655a7ac1f3cf49a69e34616578484bc8d1b59f8064242ec3f726012a1aa4d14bd1cfba9d3d88203b386b79b5c66a26649f9e0e30626712c9d92ac54d833d9c8960e94c5d328a5840f1b184f2abdaeabf031217b1d1f353057e52e936e233e9faf113e68600e234bf83f29ec774c46b63e6660f82a295534992175f5912d4cc3870c4cd1d37dda98d896b6c471e30c0d1f3130093a29e955693a090626d18b25c751f969a9b209d3a52bbbf895bc93d79a30080bbd35257464673032617aef3311e7c9dbf48909937c89a9e43b324449d9c8a1c5493200e31226414932cd9354a3e2522c6138b94c46e570d94cfc54c29ca4b693a328f5d5498c126615e5daa5946e4f1b6b7500c6244ca5e496532aa534eda1244cd193369552b3c3aa2912a660f527beceedc9be46b6685c390006248c3ffa4413f34a1e61320fee267cb33c7e3bb2b51480e10873fef44af3fb37ca745580d108c389d739e9a41f72df64642b49174580c108c3d5a55c4a49934fbd83b108e39bfc185e23b6b99672188a30a52b6142bfb7497939235b22288b1b2388b2b8311212523d809108e35f4ebebe768292cb4384613c8e50662a6c8e7c0e6152e1ebc2d4bfc6f52f1735806108e3fe49292fa83025c855087328d5d9db44ab7ed908613879a993b86bb12d8d8330cea947f3b60d078d1d5b80210863256942bf45ef94150a84413b09a6e2ff0510660fb284ae7e90ee73fec1f462bae477acf420a291ad7443644447330017861f4c96c4ce5daacaa936c2e883f9e349bf234c54bd4a59030c3e184b92e3862593a24f987b30a89067e51a2709e242226507187a306927b71731b5a3a5240f5f12316b49b8850773c50bdab5caf27a9cee606c3113edac1f6d9f1bd912d9a2988ea75106c30e66534b3965af549218ab0e063bb14f2f2b87ddfb8e163ad65800830ec6b2acfd2ada39983d8f6cdd9c189fd5e560d231db23364e8a76671c4ca1c29e682197af626787489501061c0c27afbf7bab4d95d76f309ee6cdf598185bf285e106f38cd0694c3fbe09bdda6074ef6fd11ddc32949c0dc60ebe175ec44bdcadd6608ebfb323744ea228b5abc1a4af44abaef792f9c11d376c94c201230d0699d70ba6229fc2f4912d3418aca2cd888eab69aa3b83317450de1e4d49b5df8d4d3398736564c4bff3a28dca600c5913e2f49d44b4920c06d161b292f8122bfb8e2d8031067398e9f920bdea7b2f30c46050f15494f9594e965b184caa56ced365cb2b4c186030a5c929e6e464a54248bf601275a7c4d117bd6052297aca278eeebf70170ce273a6954dd4ea9f430b1c96050c2e983ff754c3838d585eb7601ab19e4cf2e8a72696b4601a11d26327e984eaca6164c158b1de4d85cc071deb1b884500030ba614b253b47f0bcf231b345229bb82c9cfb6d4f9d6e9df11d97811b4080e2d6cc0b08239b7baf3eda36628530530aa60baa89b272761254e5c6050c1a4acefc7432c43e9680ac6f81c25dea84ea9752998945c556a72dfcac875640bad6e01230aa6f3dcf1925cbf772b43c1f823ee9521de7aed3ec124b7eb16fb4568f1d00906751e645fb6aa244f7a64ab74c06882499ce7e841273541491e16309860f88ebf24c7ad870d952518b5530e236d4cd25a1f184a30f9891d7a166639b49e0473aebc56519f54250faf4a000309a6bbf6248a7aeff8b446b644fc51f07503c6118caa9d45283988af6d1700c308a63071494e75916fe24213c0288231949ce22d6fc7d96ea0cd11c02082712fa8e09f2d097db9c11882493a31615674289db42304739c878f564ffbef6a104c82db7879fa1308e6d9cff693cb4e984afa81c9e49c3549923227057f070c1f9824a9ae72b4f6f4233b8c1e18540a157b6d43dacc9c5f80c10353fef792c4e4faa0e4db814186149963b11fd91211d9a27198b500860e4cf16b3e7eaf9d7d6e0a307260cab19275ec458f0d1d07a6d47dd9133c07b12609e306a6b74ef356a7ef637c60d8c01c2c7810b57fc249827f4ae5805103d3bd971c74c649764a0b8306e6125ba2e5536974fc1dd982310383be8cea78d1fe93fb0060c8c03c2a42bfc7ce9dad253130968eea9d3a134f8406030626f5b7a46754a809599a551531c078813968899e6149acaacfc3708159f3eb2dff4b0ea7a4b4c2d84992f288cb7311ff6185f94c4eb1e33acdbdc939223bb4c0b1ba0a93f47726dff689eb41a80ab3967f720f5d3f973f15660fa3c2d4585f99585061d475955352df44c6750ad3ad76099e6cce3d87a6307e57a8143d4f4a17d352986e4fbcb417ab249d2e529864a5b4b373d27fb27b1426f197d382ce969ced89c2687ea6935e8ffe775e288cfba26f6b29ed964982c214469689b1d37177e5270c2756503379b45ecee409930ebd930bdf36679f4e982e3f9cdbcbb8f9473961f6da6d7f2fd39d7b7de1c5260caf2608f314ac179a309bd8eabf96e4e8d87d260c4acaf92965c5be9ae705264c7ad94c36396dda9cec12e62f59dabf4a5d57ec9630667a9fe8b592a5c4b912c64eeaf304dde2259b23250ceb63c2cd877253ca330973d847114af070525a52124653a6ee654f9235e645c25872a22bc8ec216190ed953f4b2ad245787e78f108c305cbfc51268d955f46b6ce11a6339d537c2fc586898d309f523ade5b6cdd90214698c3528e77a955ba3bbe1661ae9cb2995efa105a9265e485224c4a055d9f4d0e8e6c99800422a91f33f080d48fc515337668018190901c4f821c5de3d18d0884843cba61c3f43fc78e93552ef6f02211e6ccf6175d2f7d63d2e005228cbabfed512e7492537508837bfe8b1c71726b9586309ee9a728eaaebe2de48217853065be5805bddf33f111c2d86249ae3521b5c3c70661bc0b2f1f3bd382692c087389ecdca617a274a53a861781309e9276d9ade424af42409884b889b5cc7c6a1311d018c1e7a8fd8341988afee59f6669133f98a39c7a9ee58e7529fb60f813bcfc242ff136e383c133af2a67c993a4f81e0c9fa2e4589d548d09a51e4c277b75b9a232d4b53c98a389b1ecb7ea9e1e7f8107e3bc8c74d3252c6bc7b2681b437871075336f1745bbcf2c20e86b934e184f7529eef34b2553583177530854a255cfcd265b2ab912d0bc20b3a184c693319134ad4f9650ea66c3a7e94294bd2544a0e26ad2f7a823a495e483d0e0693e7ffe64b29fdcb8f6ce9a091c0c1144d4af93c3e4bca217d83c1e6b773aada2dbbfc0d13e40b379854104aaf4b259b4b6d1bcc67e1a4688b9f446cc80673b0f7a02ab98fe53bdd1c5eacc17c526bd592bc4fe2a406c37609a7e37859cd0973bd4883492713d34b5227683056124b8e269a78c9a8cf600a55526991f35529a7cd60f60edbbbf2f776f295c1986d9fbc4e6ac9605251aba324fb0a22f2184cfba1cefa47094ace1e3118b49f1ce553f59d594a188ca2c2ee97245d7fc7cbeb008371f352ed4d2f652e60f0e20ba65259a3c43d3163a34d890612795fbbda7ee105e3655eea69a8fc79ee911529b523c70d1d782fba6014d197b3340bed9d840ba6ec2db23765f4620b46cf3c6d662fa754571dbfe3460644ca0b2fb460d2d949b332de91ad1b28a917bcc882f1a42ab14f5ba3e438221b9d56831758308d47bb24e95ce55f2a8b052fae607613eb76f3a7f27b6c05d3782953722c9c88bdaa60d2e9d7e42d37252fa950c16c52ef9334413905538da5182f6a41e8f7699c1c3f8190902ebc908269e7ce24294fcb58f8f845140ce226bacb45116bb9823e780105d349499e242e67bd7af80453ca9c4e6392f23d15748249fe8f8a934776c9fe8c6c130cdaa27f22ec3e9f8a32c1a0ed64dd07a52e785a5f2cc16c52466bf5a41b4f4a94609cd3419e54929c491baf9831e30a2c91dac38b2418b67b5b849b892eaa4782b93b986a976a99d68e6032ad93a436253d76e718c174b12bd5e414e66aae2298c28efb9a14333c9d9e08c6134aae97971cd3f434b218b021012b1b5a88d8b871958ce0c5104ca7dbd767ade42449ee8510cc57f6bb9dc4f198167a1104b307bd36f3b1224f7a376e54e005108c16732a871071d1158e6c896c916347d6095efcc0ecc16eb4b709214358235b55e5082f7c6032b18eebf99fd34c02bf9185c88ed7c1588484d88b1e988212533aec29d1accb173c3027593edf5d2ec78637b285430b915783c18b1d985cc32ab7ef2769e2d681399fbcab99967f55d11c1867b479ea7052cb9c3830dc85bf9b855dced36e60d219f912ee4ed6a4f8850d4c762da6dfbc4c5eb52d72ec2875012c6688ccb8624603761c2024e4450d4c9b6127d52d3d7c13bca081d14f978c4c117b2dff0ccc7ea34e97871959cf65604a714b0af39d24716779110353bd89a524cd0e512fbd808141e98ddae925499aa0f3e205c60fd15d49eeba933a1ad9d2a1450d2dd0162f5c6032dd9d43bde959ce9e5698dabc72e4524fa509b2c270491895d1df49696947b6340020ab307afa1be1ae9efb2a3eb240005185297df5633defe73d646100498531445c10bbf5fa20c43a50d0109871c516ff80195714e3e81a870ab376dc51b2a8e9774a8d14c829cc9d3d9e668fc84fc9a1850e1bc62c00620ab3e7285a4f2cdd4ce7700220a53085f7f79d944c5a13f58c2b665c31e38a198902105298f47ccae9a37217ef62d3c2d1354aed0019453232617e0b5d161727a5ef0513464febeffeadfa57e9c896ab5dc2784ad81315394bd9c46458c2f026aae986baaba524235bba322a614e353a7b98b8ac57324a982495f42d4c344dc224875d8efacada62ab244c295e504ae713542c391a09b3d688df7dda748f1d240cda16aaa246cee432c9788441057f2b0b168432f97584e1843049a8c516f524fa383e8726e56f822b808c46184cf49a136fcaef4246984743495f7a4e3a2137198b30769f8ad4947bdb3eddb871382043118693a25bc97b9ded3dab4346224c5ffd6649874f37a1d52107198830075529e99c254fbbb48c4398a4b812cde3ac72c4a7c020c31026713cf43b2c410d54aa1026312fa9a4190d1d4e268439efe747ab3e7e50fe204c2687ad2ea16287b92a08b3a9891ea74bca2ea305c2a04387d1a684e8baf24616059f280310a62b25e89e72f3dc50ffc1a0e49c95ecc29d901ef58339e9cc4ed162eef5751f4cd27b9c4d11e3c8960e1a574690c1077316259bed29297b305c8ea73c95284a8b4590a10773b81234b4a9dc9f4e97910783f692aa3a6fe67a5df06036398a30f9fb17410b84848484c8b883c953d07fb18d5f1bd30ee6249cd81a7961944a2a75308736b14da8bd94f7ce0064d0c124ebe424191d4b2c133407534ab5a32a693df174918341e5925389276e58c627230ea694224387ca3813bde160d47a132ce8917bcf6b480896483542c61b4ca27ec9962c7c5d44ea06a3aa8ada3da543988e8e6ca5744384044e830432da60925495fe587e6183414931e1d4a78ea773720d2651629478a65c3f8e0804196a30beb60891a783943329196930e74a82bcd3505e5f6f0664a0c12046296befd3234c4e9fc194975e2d9dfb779e59fc88e1408619cc4156759692a3bf7c4946194c59572d8d1e1df219924106c3a9f7a896a4094a70750ca6346154104ba12d6b7d068484a0e0475a86184c29cc84580b6da5c4fc14d0b0401206934a66b1657d5d3272e9810c30989228e24943f6bd7929e30ba6943d57e74ebe958bc9f082712f956ac966a2d789766871c3068d3515c8e882e14c892d4995bcb424c40573953e1fb153a53594b105635e891b2a89fca5490b195a3088934db4eb3b32b26010323aaae74f113ac71d555830c72b3995ce5a23efce0b4840c615cc29899fb19c847ff924709061059305d3fd5f26e813e6546b9051057354d37f3541e77d0f7320830a465593a25c3ef55327412fc89882e14e52715297280e6448c1e8a24db8b5245fec7492110593bc58a145fee57269060563c910da84f7ca9bec4f30e72ef99ec54e34e1c9a2479002329c602c4949fe2b2635b40505329a600ebd24c9ea6adf361a0974f405cc6ac860823988c92bd1796174ce46b6b25c206309e6e4e67eb79d84fea097a1046358b470e9c204fb376524c17c2ab88aa570e13f7890601ea5d5c4b4e4b01c2a19473099d279bda412943429dd840c2398c4ee89fdad6dd2e84e4611cc3196946af7f82405a10c2258292190310473aa9e3f6d92c9c817f11132846036419aa7dd5d172113c172a103194130ad59a6e83395be54809087095593579e1f18ebc365cb558c2d65715d42860f0ca72449ccd239a89ad02220a307a6ec755deae1c3bb2789d8b841638bf4af11e08008481064f0c07c3f1ac24ebc6c15b7912d9e718105d8780b8840c60e0ca7575ab58412224d3db25556c337f0a518204307664f7229f9f9ad2d05253272601a9977ab73627fe974648b4364e0c0f06a596dc9b2bce76464cb72c8b8816145a7649a27e851aec9b0813969b8279d4d5cfd2757460d8c26aa66fb2957f4a9a89940060d4cd71e54ee7bab939546b66e204e1b3266607ced58794abc1d1dd432646016a1a63ce6639509b5951464c4c0d4a54a8815254e8a15c980c173da4686cee84990f102839234e57f464b18bb64b8c09ce4e896a18368b4c2d4f53bdf6d82760e2bcce33989f4d22623db2c68906057610ce99f3c46af2e891e111b3768682521862a8ca3ecf64ddbec78c5908d17317b428c54989320547efe683ae824458549e52bc9939af8e117911be8ee14e6d3f59be15d4a633d53982e5c9824ce64540921b2a145ca2b8579b64f7a53a286ec5fa4302725fe293996787972a3306f8f30d1264a47a83186280c5752fc3397f712ee8d110ad3aa650d9956a3944e29158418a03088145def334a8ed57c9f30a84f5f42b3add39e30aa6c2765392c9d307f97fb9c144d5cad3cb2a51582189c309e367da257b21222bfe3438c4d18d4294b1a3a8fc5124a3744121dfd5854d22086268c673d627f497c92bf202246268ce54143dce84afb1a156260c278d2d2a8ad7e9f13a34b182fe54e65111dcf54c812c6b40e7efa29a7f47456c25879c44a2bf46da973244709734afad653ca39a8b8fcc8168e3e810e111b37b64f60011b12a82b6694cf028716179831012c66c020c624cc23943c9113dfe15b0ac490844178fea49784eacae10ac48884b1ac4a89eec12e574e818441ae46d5e9245d86923112311e61107af2bdef9ce71c3bc2682147c7709392a79264640b87160f88d108e37ddc9937bf6ad349311861aeebf03f962de524c70d911b39ec0b311661b091bdab8e1f732b2b0a3114614e399fafcea74eddf7c816968e0accb86206db2146224c777de264bebdb288ad440a11e637ed16bb53123a96480436686c814addd861a3016938bac6e5210c6752d72555155d738f610893a5527e7372cd6c940a617a6daf789d4aef9c78642b06214c29c9a96a6cef932027ee448c419872ca53f391dd97c5b3001c5de30461ca9775afaca434dedec85655484802665c31a34a9d224620cce964de975e0810a6d696bf4bb2a51c3df40773d6f70a15f5673e913428c4f08341f8594ef1c24a7d6863f4c17c3a9c94845a4bc249925a88c107932ae93f7a55773ea67b30679cf4eac1a4f35cf4f021f2cdc479309994f44591eb5f42e7f060d84e72b96a874f16e26521c61dcc79548a0a91214c9c5e0411c30e26d35017eb2979fe76cd5048088e1ae8ea6050f7d09d824e67972b3a98e3573a5d5649922df639984bc85549952407731e19398ba73a6d491ccce7263eb8e88e69b2386ae4184124c480832975f44b2b5f4987140231de60bc112a9f567fdc602eab1b513bcdaa0d461125a8bd70e9ae1499718105e0a881811c3748608386056af806bc10830d06614a102972ea1a4cf9498aab9e5b949bae06638e8696ddcd1117578c34186e4c747953b5d8214583c124b96c8474ef0c26fd26e78fedea7dcedbb821526298c124e9caa227881caf128484885106935ca7d37edab7781294a1cfd1233a740431c8605af519933a4a478463307e5092141b6331bb64c56050279c902bba248b9f0e83b1d3fd72798ea1762a18cc39c9d6a3d45f347dd7c896b78de725c4f882e947b4d25c790ebe5f0c2f989387d0a34dd698289f2e98a498d10d652aed252f06174a69f9f31aea6dc1d47749566929e141e768c1b01e2766e50f9fd47d46b6ae8c10230b5ff070c90495392106168ce695924ea11deec7fd418c2b184d90a24f92af424ce7ac60b84ea3a40f23dfe66b8c2a98ff74c9a293b24ad91d3a1a071e2106150cf7c1fd47c9f5182629c6144cf94477f7cf27b1d3e7d85a25c49082412975bb0b2e9726638c2898b54c2cfda4aa6d26b743c78d098ceca0a181087040840531a0603639425828797c3bce2abe428c2798aa3ee9d4a6738cfdc909a6bc27b694f8ab277add0483bae834aa838e09a634fae14284c6054b2ec174a183cba74ffee526251854ec539d29394962d524982bccd9f5cb9bb648305f7bfc8bbafc1e361fc124c926dd83e9b0546d1bc174a2448c5925299657114c5f259fe641999cee840826a53e5d9fead1d1466508c618393b397384cc84601227e5ac94eb6a55828260aa6cf2878fbbf6783d108c273a76343d968609fec09cc3cce8672d396c5e3e305d0cff3a0b9d25e4a807a6b7e87d3ae979b290f3c014c498701ec75ff5b61d98c4702ffd73614bbc5107a6a0e4d5ca269ae4395e0e4c4aabc4a8279d4a570a0e4cf2e52c49124268d933ddc0144faae0ed5d3955593630d5e5c597d2b5a452a9060659823cd57596bd17d3c0f45a2749262539eb783983b6aea451e79d97813974fcbfeebaa45298c4c0a0e3397ef4fe2941f4183030e92ecb95f97bed271ce305069d2afa09d318157d0c17984bd4cf69b135c6d36a85b162ffe8b8155961180f6ef1fd9be9d65985e14d9264f6c4434baaa8c21c73563ec609536112ee84bcd26a9d0b27a83087974b418a5c07f9e15398e44fca9fb2cd564cce1486cf1861f16cb772bc1406a1754789c95732cd1ad912b1902b18a430b6a79b74be21c52f34b2b543871648a40e083046611297b755a93f09a7a328cc27947bd27265493a1518a130adc75c2f55b2f898090c509847e7b368eaf695adc3f8842999e5f9d874d7d41f86278cefe1fde9c4fcfc27c4008c4e9853cdaf4bb4b62c7a7222904ea824d265a3501c0a8481188401000084779b0063120000001016900824129150b4eeea0114000442483c6236341c221a188cc74491381c0c07828150201408622086c12888256912cb280f46bd70488be999e92802ad52cb9e516cc9a78cd85a3a0a844e4ec04b0ac599c2d139c9598a0938c25c5281cc3ac4a9b51eb40da2572d6b9a22ee8bcd42bb69b01e808a9f365491aa1d040e5beabd54dbb5182168d03e6bda35a6dbd02c099673a33db32655240e7eae6bb58c9c6e581f12bda31ac51f8f84268038ebf75fbdce8f352d89020dc912ff67635aabb561d4318f126e70d523ea5e4fa5afdfda4ad1325ac7c29770d8bb923c1117ec9c646689a80c3e843ea59d29e0b40800f872b0fc4327aa5ffd2bd09418bc1660a114f17baa36e1e1245206625bc1583286e037929a0d1804e0faa898cdf233e7c9dce318f62260156d2ce03aa64e97ba44c17a941336401751ace25b00e729ccb2efdbd33d41605a8ea9847b3a81cc8b35008a62cf620f72c4b7badcb3414a2d0dd3772089610eef166a30e463eaadd0017577e924f8c03b502d147087c32ed5e6353fc157321a5445595688f13f4ebe2d10638bd7cc491fbba67580a7890789a8c941054db65cb2725fc13e7f41380dc9e3310655d22c177626493aeb16dcaecbf77ff84b8d34e47e70edb49fb05fc6dcb8cc6f5b683689cf28f0f2bd71380fd624731be02b160a6d29a91560d218ac8dc26a0f00bf61cca8caed903bbe2206014b862dc2d6503113dd2475513ba3aeeaf1ceb2e02ce42da7d4eff1c779658672b021306f1a430868403152a83159e9b12ad1074f2124c611eaba535803730191b23c53af7fb18f5eeebfbb41f75e7039c163081c6466919e79808dd319d0e1eba996284c30719ccbaca3130445d97af8a6c95a323c30b433a7f04d9cad03ecef9cfe32feeb48d349d2ed66805680c7baff86a4a3c896426178f2123251371b59af9c79fd12e3404d0c0ef9e7267c7b52861aa15117d70d138c109ad86fb829ea207bf88a08e48803c7bd174b34f4494e1362da51e6009eb9cf269b003cf5046c84a99cb0792190f6dca09804d3f3be1d9e320ddcbe5950a0dd29511130718804e2bc1d23bb084ca63dc0401443b14804bd618d06103a4d53ab65d943427db0388de95705cbfc178659605226a86695d23b56e52c74004f34c893a832d7c0cd5863217979b74b6e71ee5abbed249e9b9adacf549715988f0335c65ae4e884e21c98f35d29be30490ea6a939b0fe7ee90a03c5530d60c8a2a167f22c4b1013c3ec1fef2f67710e932c7e2bd261cc36e16d241f4a1527037d62391dce0a0c505bc7a5707aa661615e6ac33015efe7e69e4e9e51662b7b2bfabfa4cd7ca9d033713748287ee9091f04eaec6274e025b96caf018fd52b78e31f892f2fa7cde8c67c9b4e1230f20f3ab9c4b4885d68ab12ddc052489ac0aa92fd4599814799e86583f0fb7c7bf43b3f07cce80638a4c33e4f61dc3029f3af3f61a1eca42969b750a8fc8046c5a6bd648255ed47c61ab9dc720ee641bcfce843cfc38ecd45dc8c4f05378d142a1d040661cd26b1f02d1013e3c072f93845a9433250774b9877ba8b43827674a235c4fce7fd01d4414dae8634b026d0b5b59cd823beb116d0f61eb7c9c1fc04537dd343d829ce36b2673df4c7c5ee3810db7e13356a58d265b8cff630a09de1f20fe2456f8773f3fe26d79d3882a2969f391013525fab744f229a3d0e7f39995c60ea9a849849ab2e7b30beaedfe635f91665cf4000f6a90431ec662a791184ac80f6a905e5a2e2102fc8c08be2c95afc12c8067bd972217c7c9939d26486e6ee5cda5e346593f0e5cf8b982357a868902746c5a807fd4057e863a9566ec89cb34dce27cddfb4b5425d81a62efab57bec3fb85aff6d02d325ec4498e88725504dac2dbd3fa135d4772c52b1386a26d212885f8f1e2c8ec0bee9102d31659281a1dace9cce6abef74d81a192970094c047861cedcd614dee86abbd40f25ac9fcbe9ad9cf9aed8f7853d7167e4c3aa863b94af2a042d61e27b92195bb8c032dc2262242f4077b1a3e60d2fbf93a806d410ad772e0051dc0837c6f9112ef14dcc49cd2cf17f07ab7bdfa65073c092e129cccba97de286142803c01971694880d1096481663284f6ecc42cf9648e52472552746cad41c76b101bb641d2b01cb399521ae25035cd4fcabd54f932e2306787665927fe30063e79cb8b1b7be968fe56a1408d781961632c172276665c53e054b667b67af40219b96bfc9fa6ed831b0d1ae9739026c0278fb0ea32c09f9ad8fe92063f082a32c2b60fbaf2491379d7fb4adc04642795ddc67a0a581462bf4e40e96d3f36bb3fb42db42eca905b0dce084e202910f866e97b799ba214ea0f6fd81e954ecf466a4b3c3ad9f0c30d364d4ead855836335f041e684c96b1549a0ef4d1d94a326663bb0cda6344f19f8e7f560e7576d6316ff4f0edf8faaeef764e1a89fb84c5de1dd4634755a6e973c7c15aa69939162e80266ac56cdfd350600d56b810ba6620b1177999b62aefaa3cef681ddbbcfd93de6922a4e97eecb571340a582cc9f8ce873df57c578f61e76db813e13ee0c86125f78daa7f871f4393f9d2d2de601c5f61c037880d09ce39a6b973e08d36441bcdeb1a1881dbdf9748e40fac227b4be3171ba704c9d3187bfe4b0e8b5e0da6a07c55cd2a12dbf75017905b2d38880b1c147f92e9d8100ab805ee025bfee3401e6e712dc57bca05887929b0f3f885c28db84be3fd5588574406fba9252b63516bb5dc58c150ebac529708e3db322b84cf6e958d101268571f5373e6c4000603eadc797828fd43800f5b81bff4655eef3f827d04c7a64067120f94093cd58114003e9e96e1c5110f467b082fb6b27ec9344840c408ca3735b6efc4d849153b4eacdb6399a48fae1b5b84c114c78613d0f0e39784254a5151a0860ece9e5928d9fc7ef16a3824587c553fd57a53905f0128fd6e9dc3accd0391701b94d4a6fdde4801fb67c0a29a34f052b981a6ae918de8dda1731970ce7a783601edd2d73640e85e5ed94712b1b5ec0d0c0767d2b5f801be1cb20c5ec5acc02e66b16e67990a82207405ceb4a85b3a997e8516cd44c9a5c16c4daf99e8613af8088218b2500227e84caa405bca7e3e544bf03afc1a01c88fc8a883feb5b90a3c72c9440055ec0e5f4b4e206508a5e76ce605b27c5c97b91998926a297cd993ac1c5d5f0346ed423199d9e5e7757c5ac380e46b35d8ead6630e6afd0f00117b0fb3ca95702425a0ce610cd88c2566165ddb1018731b87eb5f391c4c9f5f23c23b7c8be5133b79e801fe212293c83839ccbae3790f954f866b354046f91b263584bc09db89f47d6835ce017e06c68da46f80b3711953aa8ea6dce8c468fa79b15a534e6c70609b9e9660852c2f011dd278162ec8308ba84cebd61a31306667f124274503cc0913acd2c016823cd4824323b466d4274e970763bed2499eadaa3e629c57a8abdc886d19439c9c26c8d81c45ccaacf91852d327112794f944395800b0e29a1ed96fac8320742091fa213a47a7c89955200656c0ed0545050dc943fb86cf1225278011ef8889ab80a37d35a63ce51f97bfb59f7de0e84dfdf9b791c9177536c04dbd145db8a94a1a2e797f6d93bc2b42e2729f14dbecd28f8514f5d2d2aff241fad19c087f24af50ce08fd89756cac2ebf85be0b4dbc903921149351484253117297500e42455868b3466e2d94af50ba42e312b2452848422908ad43c8f74289146a52688d42fe09454728f8854adc35600d18a1c1097d25c872a01c8628fe864ac8980267a9d09a84fa51a1c8a424b367b208c127348b90d13514ca8b72ab95459fc553e5466346d2ae996671a1f58a26473d717b3fb83da497ff0817e8a51e93d3cabec2d9770c39a7a5f6b360825b2eb1b961b578aaaa486a0d590ffc5778cae3145f2df7a1c7e68ee42c9865f59112507748d345da5f268b2f008f9c9bc645c5aace160fdf8865da268a350824c0ac8d609d980011ca434677dded130cce70f84acbbf82aba2312168ef599bf554df7100edd2851062be5dbbf8a0349ffe0f016bca68901d367edd9411934758a05487e5e2d1a65c3220d292593b133c5e2b88c7d8b509f6c8d60da052ec906c8973901a4d827fe286301e1dd5fb14d8b2f160d833d19fd73ea5f67651bd45251d69dadfd3127ad92568c8b6c13541511d87364a73f3c7619fa782ec2ed40f4a103d7218b7aafcabbcd9411c931911e4e489ff8b5374a86b6d9371f1a4fd5b4e885ecd2cd32ade62faee850c76ecb37c94d72fd4d9285f107882e39f40659200a17ca0082cd274e031a5ce46cd1d502796c63a975b7bca12b64da7dbce22aeffb367a6e9ddf1e55c130d6da92c4946aa094b2e3885f2a9d80319c021ee470404d2242b1efd21fbc0b122996939b0dd6a4ecc12f836010a5910e9536dbd8fbd29949592b982b8f5da5048840dd654dc792a885209332454d38c245c6aef546b6a54e566b4495159ec3fde2c43b759d8e278a820c3bccaaaea46dd24d6a8da4951fdeff09921b4cf4451f8f381175d2ec1b1206025e163180b0da3f3341eb5dfec8542bbd355d4649d265e663974e3aee00de0238623ab48b806718bc9a17f0c6a258527a76803b576622618b30d3ae6c7e075ce811cc10437eb17215deefb950800cf426b30b157de2cd08ac509fbab55b4d154be869e200eb653a0c970a36f27e4cf2200107cd25725a068ed52924d40bca32852ff3e94a0e22304ef91036bdea78c081cebea9ffd06794f78db6c70679471cb89d938df9e38e0c3b78740f630fa3b57262114f227acdbedba937d32397a08e0cb7c3e53583007aaad02b3f9e96e7315c84c2944d5ab60e6777e300f9c86352c59d1c454d3c3cf462422d7ee1f18e94d75ea42a012e5f81810ac1aec2968ac28992a6bf4dc2afb16fe4370fe34b911f164b753e9e0e6ce79260e7136dd90121df59d6c65d627e8a0622ed0e99302a0578e7b51455948355c1426cb93eea392c0d0bf4fbdb3ea4e8c01b2578fead52cd5578e713df545658c7eb88a21760daa9387551a9bf16b8d6dd15736e0e7985a9a066816b45ce1df385725e4802a9ab6c7e1e888b56803d5ea643aab063c09a73870eec2dbcef4af74dec00b8bac6d2740f3f0d4f7b4e006492270009d2405a25099bed29e4993b954947655fe09f4d3cc54a23101547d300938b5eaf32a3e7ea9b478bdefb5a325f62231190fa33084c1eda806916ccc055e936b6358a0d0f730fa89c3d7c31e586d6d612902fca0d7ac00cdf5a6d9cacd08329219c630119f2a4473d0ee0d145b513189ec147a12abfbb12b069484c19f5dcc9d62a5a823d9446657fb1de107d9a253c91d5137883e0c556edcdd892fc8b5a8a1023c7e03d1b59b84d134a75102d856b239e376fe9c41e9bee899dfe08406da33873779027b056d586ba802c4c53e824e973d91cf5c9fee13e96780079ada670c706c08b02c10e0d83bf015174cd81dc4c1c1df80eb0570ce51a236fcafcf888fb1464a7084ff552eba2ed9850b8b70b2da91e7f235ee02bb9b6290a06ecd46970bad9fda6c35973281fa7e9d19519640a0b3946e6c251a4933845eae47b948f6a81f1567770c1823564fd7c30543bc90e2064adcae2d7747705257d3531869fbb1aa074b3b4384d6029b0409c38d2e115a83d1cc774036f478d47d1bda1c70d11c6f476e6a8997ece30ebe59a09074a90dd44b2a1893ce760d8a98ab15a9e9b71010a613ea79bccb2adcf545c96f06c868b707ed0c0859a837c6cdd48df329a85b922019aa2d8958de8267ed0f3c5d705ed4e80f2beb1ccbfedf52d0e77cf700382edb8823402264a1c46445c4abffa00dabc4efddefea7cda0d4ab40817cfcc609a5893cb2d82e676931612b329f1d6214655c0556b6106c11905dd7f8abcc5bc885e95bfa9c3114651b6d4c704091adb509e3bc77fb21aee9586ec45f8b6cb2ee79d912593a1979292f613805167ad93a9e818a3346456b15e56544ed8eacb318f22d24c02d90a4a7a6bbc6e43b63147969e3afbd53e0bdb014894146aefded190d40c8401308a04d352a002d63d1a149ce24369c705a648d89b610bd7d0d2df4c62ff8bd77cf5806b6fea2af8a12483a421782bbda0c5885202f9984b0405fe717834b52eec15267cd476fa0d977fddd86bec5b679a90f4e4316aa8a2bf4c4d471762bb059b8f84312300e0b654c5ebded00af316420a0d624dca1b4b7a5f286289ec56b1d904c49cedd26d7d1d96e325861360f705c08dbad84aa7820b82cce7d10046886b1fc76acd73efb021dbc4c41e925b86d704bce317344ab6e02478bf1d8b306abb6e391c260038e1247e5e222a0c031d3e6c72dda33c764a11096b7615009e000bec5941a73882bd72d6f80ff037ced73d9d104a0638281f53d05c34bc77902061cd8196e7ded3890aaaa2f9ba24094818750a9d201b125adad6835243c35269f8658b124f104e409fedde0766373ee55f73ed8a69e37ebac7e9e5bec4168c16ac265ba99db6b7b3660d73ecbf3c38659908cbd19bce36acc4a88f04a50ab6cc091569fa0f780438af1764ad70a3c226e5f0d125745bad21813f4da08d62dbe023c0dd611d23b18ee7464aaa6bce3ee2e1e2fb8c846a4d9ee346eb0b6903e2e5da114c584837167a5b798c9b742e17d9e4589880a0cdc7ae13c109528e5aeafe5a646450105fbbc4189c70d46df5aaecb9bd1f39e1ed23a5109d6606089567e830d35243f68d629d709e770ad1e4d32f515f9b5efa5903b51dff507e66e4e248ab2ed1f66d26d9687f2d021426bf1d28b2033756f24e0fedb912892ac82ebacbe266fec0d715a992c28a631a7dc70343e76bab2f7e2f8dce61724c039fc4bc632dfa51778a055e6f23952e1883a07a31d157f2490fda1dd980f34e900bb930c75f4c39c901988a5221f7a6a00e01607156721aeb132489d3d61d1b383ec9f800279bf27e6a01c3d1e3449d4d314e6e6f95d300966a02d59f080fe293651c933bd830e2451c3a66496caa9700c646b9adf2b14def24730ea80f36173ac5a29c0957a3f3ca4e1567302c5244b38f32c4e9febad3425106133072d423d1d5b37178f16fd934ff20750295795881e689711005ff73b51a913440fab5e82f3c0717232c073152e3cf906f5d069aceeb5ac0e24d790f0ef6a4aec7f20774d9c2e26ed3665933f42fb952f464ec94caf0c0d4cab77b78b013407ce3559ab810169315fed426c2623513c905937612057b6f8a7d2d15aad19a89146ff7de736629a2192567d6b1345263310d8d2fdf5c627ff7c200e3b5123a2c02475e8f1fa223110a334fc1ba67a76dbea75b898349eeebff38a91e40d4db73a5c5bb72eb629f99ef37736144c3db90f1fecee1ab6cd36a90ef5940750369cb6f36e40c4c9e3740bc603c56b8dfd62dbe9f147d6ebd297dabb30333181bfd16b8499fcf78416ca84a4e81c03ae2330b02ed142718510c0ac29f8129c20e6c505b3074a0c807da0087468be79151731d27f70be00c528df02100508382e20373375d7c8163aa8ed551e951c22965da1ce067a23264633fa93ed351001b032dbcc1e18731a15c9160162b03bc58daf27c538af470f735eeec7db071b8d0cf74cd2419470d63554ea9dc9c1b31bf10e043a831f47a0c941a33fdbe27ecd3f9701083ed824c988ec3ef929cb62d1a930956277cae7a19d5f52be88dd4633d4849459631aee3b66b9b399439e203fa11ad550829adf6ab0aa2b4d6602585b2eb4279ac2e0f02d730a508725a158f2e26b74784ff7b02290363172feadda7fce7047eb9036a1fa2c750884101e7df35a187c9ae5e9a6064e39d0e77244cee68d6eda6927582c36aaaa603efe8aa8006e493a83918fd84615c5ef22c4e4b89b78c3bb45eb9835483857e91f97e9b2cc94a0db7fe2e84d6d03264b3a29436de0702615a8289d6fdc31369a4dd201ecbdf765d62462a88aff07b3c086446ed6dd693591572631ba66199878591c2b424a847e22c74ca53db4f484027b12c909f04cb64a6583e9277d9063b398d2cfd6e792ff761e81bff80b90767a3338eb6b7ad23131167563414f7a7aab43fe8cd47ea80578a6526043e7caa7b68aa85bf047b6cc6f61afa6180850044800cbeea891e5f4da399f6fa401fccaa1bd1480bf51d08e7bfa1a4c0d44f8d1b35fdb8e0f6ae29411291b0f974f59ea21e88135f39228e594735a308d1db8e6665673e369231904823720b3f3978b1bef51c51ef3dba059453419032380b44520621f0da04d8463e914363121fd6f8ec768232834f47e2056e2252ef29728fbcbda800d10ba066393e6a95c37a3d3e74384b1923dcd2f554b5580452e0f7cd147170109108b647601a72729352775578b331fe29252ada560e2749066859e4868c5f29e0b683cf3d22534fec16f4d68bca4e14abb20127a47c4d310fe4bb97be688adb738a05bd88e0e2f3b335dce26a006409935782e0f6438140349827c7822bec495de4866b5f7a61709256a1a8769f4a3ca9a449fe480ad0549c7e28b1156cc7a8c5808eb0922ef229dd91dc8730f08fe7ead6e0392017298eaf746ff6298cec1901fe05c0381fbc2a86ba239781529434fe37f94800cbc250624901c78ee288172095b8c2ce4c9b245580d819b7493481fa255fae30ca2f2dd7e43e5040b2d84cb4e82f842869098ae8da4527c76f22547d59292426901e1ff28a3ae7c71cb898a8443d3cbb1d887c5cb37065227e5d3d9cda843725c9a54c2a3cafd913f7daa0373f5791de857cf082ecadee94562c96c489b896c25d36069d789323a44100053df89224f6540bf784c4f0347e85f981e2280a29b45b256627885b59656a245bb279a9e16211051292ef2614b17424e99ed10750da855de5c4ee286696a5888d8313562dfd4895045b930f944581e1dad912a46c7b244ba8152a08109f39af71102be92497e7a8f10d115371d4b143dbf75894b3c22c8ab127c657cf691d81a92865a061f5524b5898d4690796243a491d3826d52c6e1be663a1c8506c61f405259d8b6534a62e9ae368fcf02b081f5a14acd2859dd7a46fa74ee919e1e04dde20e29dad62ff69418511db226e99eb571b4132cc0bcf45199e40c9a973501ae3513f6a44fc1582f496fd3197f00ae678adddb7aa6193c9adcb373f6208f14e2d5c3c82e47481edc85e0a6a67f9c68b7a6e04a6e129027c875f2852b3458871c04d9a299e49546479635743ed33b9d1249aeefb81ea69d494a25f89631a49b48a6f5989ac86c71a36fff1b0ccebf232fffcd2f75950b71ecb3301cff561a129908b31b542cbbc559a80fa2c28326f0b8eba369429f8c7184c76bf3747529745721b31b91027c74238ee6e26e45442ac205843833d00f36ca9e985728f9ae01811cdbb69a95338dea8bc6960c400e7c109712545c8963623049718a10e1e399f2e63c320d9000b265f803c472a369b41b4a23b3f7cf5962eff0e991143c1ba4e03bfb13cf63444eba49c2a32dbc21f0d1b75400dd14266e082957d9833d6f1338395daee07f33e645a180c454c1d862bf933d292bd4e560ef40a40bb37ba7354f2991b470aaa5f55c4403b79ffb6ccf7c2bd32e3b61606b32c9f09fa9a816332a38d066486ab9c6c48027d3097e70e91b23536838eee720ccfb3982955d81e48a283670338b079ed883414d39705ceab5aca7f160301fa18a4f46936b56e8e35b7d641c04d7c28bac6cd331110cec5d13b5f7ec425240c88bfc76d01859691942e06d3be086f1d4cb9c3ebfeace89c0a758b2eb8e9312486e903b72e7557b9e78f03526c8bbc1d301cf17fb129ee01cd6380044b35c27744e45a8c8ebf5d25ba04e5b3bef13712f0784ea54cf9e81659f92a3792ab9bbf2e9b8cef9fd0232885b568511650022624a431842d4737a258982141440f1905268ada52c26f3f446f4fcd90084e555e11d9e2652833e2a740be1671999ee7d5ac2574352019861fc2cfb5a3d12ab9d50b5dbac11117f8f68e5a8542cb68fb1f68b4b1b3d6799264f18979ece51bc9c6e6f32fcff6fa2178fc0e68569fcd7a6c13c2937cc214f11eef092b7a5781b7028945605e3c11525716ad6edad9374152153b02b31bc2c35bc4da06228d1a41124ec34c74f83b749e2321fbaf589989a33e921515c5632d5b52b7efa566de123484b29e6e3dc7967ece13b0aa53e0c34b5f92ae766524a872208e9aa6f5533789ea8064bb41d4900f5940278d97a1aaaf3e28c5a57cdece2013b6aa2a180fd0497cb05e0c04e9ab6c8a46627ab82a7987f5856679e43a05d152045562c43859c21b6639b492dfacdd456f5873387a1cc12ebe55db6ef0ae22d6a1bd36c5f3959a70c74af6216f2a4252d103299c4a767c0d08b4f00c4ebf19a3ef99b0948c72ecac72aac5a7b4e333e622d51631ea9cb39f0d1141311ed22134e4b407a753cda799ac168409969a7c1176d9380140a377c54a2f3f377a62f4b6d3bc54060135b1a647c05250508080328a7a471275848fa4e0e752f30bc90dae772a4502d713a31ff221018f4209f4d83cdf345262eb2364564da03f850b791b467ae0ce5e5b7428291f72be7b0158b0daeea77928985a2d0ebbbceec76d38e8273a2fbb3b5d9e78686e0cc6f646cf25bbb5259ca34cb946a84d922256436f98ae59fc98d44d00500021cd1a072d6b0baab17256e0490bac6a66cb9f22ae88032ffee7af189ab17e017e1604101abf6ceaf51e3dd430f735aa7d2d0aea83b6e54eff3bca3d24d3e888f894d662f9e504f4a2f90828df0b489a1b4d2b813491e6a0cef14d8dd50c43e53322e0cebdbb32982ba5f8b1a6bc225ee35239a87f53d7704d0d3875bdbf02a5b2e73700afa2af8d54f4540435b9d30647949df7f50b0ac044ed10778f0b507590d96cd75af1c0b08b59afc2842c05e213134de421b99bedc3b28afc7427bf4ca8f17f7cd7dfb8a7ff4a9ba1d4d66a7c1f37cb8f831eca3c02abc0ca0c984c38e9af16525065ffebeb8797a21abb4c0f5d54f490c96381f341a970212c2553a6bc356eaf4c41e208efed8a2d513ec69b38f10b570970b3b1743314e7bdf0ad9d3ad2afad64600d474618d21c3bc7ede818079b9433961f1d9c5ab923c0975ad5e2447eeb323a59b2f8f3abfd3b91b8503992351466cc19f32e1cf4bff11770d697ae56ed962fbec6b96e28cd8577e16c7f95baf8b64178df93ae42f36b0b088d952555f1d4710f84789266b174ba4bb1e8848447664b2af011f162475c71dbf0e48c74260fc33e470ccbdbf59630162c3c7fc6a2f2519c0b1ca36afbb8fdf242027beaf559c88914e5275a20e8053d2ccda9250d28ea32822341f5f3b4f51a5965a1db3ca5485ad113cd9c5486356d4885c943b91540d21b001250b78626630cc3d35b2b86f9a1cce01ae5ada34cc41784d4da5284ca892cdb6645bf8d881eafae33479dfc983e13cbec226af65d80bfccbb097efe5cab07bf836c4e8ac297cd41733932cf15cf1e8243ab44b21aac70bcd3db52651f45f5eb44d909fc4ea97d97ad2e63934bc5aefc844699a64a756fedc89cbd7cc9df723eac1ae03a711417093653b3dcdb5f976234d308a79357b73827570eafefc42d0d3cccb3a945f4cdf55350f48d56f9b49072173316837d8be12aedc7f3c315002c868da267a011b5d8c6ed1e32cdfe2a9a4ee15080571ddb7e0aca992912a493942aabea14d4097c94885da9cd99c7433fa8381933f619eff0411cdce927ab502e6375962f700d481ab9558ad4fb3a8478a1d2d5b4ce68a2d27ab6fb2d9cc5ea5bfd2e0499ed1dda157b936d51d1e052644ed4efd143ac44e6d9857c97bdefa30fb341d1021b8364f37c3eba5e203ddb6be0504555f08eeebcbec540bb8a8c118c555af0521fcb17d8392cf45ae8b8d30a6cd8b5d0eb33e571a43833869725f637ac327d049f8dd7c6d4417227947a29d7395b11291c1bfb173795e17da162092c853580c3d32890e100be9a2fb3a7c8beec28607b600dead8ddbc6c3dad857a0c5a19fa794ebc41424ff9883d1e25b772643b84f15906e633978a107fa81a0ce4c79d4efc2f7361884ed33b298ca47443ee148de0a14e2db04660609a3eeaa74899663e22aed68fcb2b0a69dd165e44869dbee6a129c7881e56d4562bb1390cb333a8d98cba5115d2912b8ea2d9e7803c0f1a5817826c78a3076875ae3291126254830ad6521fa3f2fe5d98129baab00df4f67a70b5fa0d1996ece436a18a386a5284245ad4b4e991885893669b0d9400e107b4cd9f19a802b6f59106511daeccc711f970003234f876d4cc1ae6eea455e13a3c4252e4b17f9ce8ebc0012aa4624bef848947d86bcbefb4c5e4e8125888d849eb3ed1aa1646c5df76c917ef2b73f450e2858052a51794509ef3d6632c4096f0cf1f2b6c4396ef7c2421dcde0acf8dcff0d7f6b471042deadf6e1aa76ee54817d2d79afc3428c3f16b8f8b3b377720c1616dc5ec65cf92c4fe91a3c84fa446ceb551e71217bcb8134f4203e5807c78613f8d5bc0a2102bc9d5a7c3bf323778dd7004c2793ba0dcae67beb0202764e123c1d7250ba446e16163bab69778e0f1098874dfe46403c4307f307b89111c8266d6a2bc60478c11313635c81fe0a9fd130528e9ada75c5c02b45b1322ac29c3b532ad6dce88924d81ae069cdb0358a22e5ac4550c069434d9385266bdcf11c6b0a26aaaf2fd6d80f1a15c7598e1f4465d1cd0a6fe10dc5f305ea025aa0369570ed2660e597f45293cd31398b8617f1c8d9f37d02af328d8f9679ce068ccf0a75864942f3d211651c8c7ffa38f35398ab65de7e6db93e3c49395896096e0cc6964c2df200a24adcd8562d838e6950e786bcb7e9877f701b826c14f52e285585f483732e3033fc6222ac1c21fd4532ae9a90cf6f5f8063383a7cd6f4d49764d99762688835c9c7ef198a8b720c2ac2044f0cb040ccb22f13777809564d672c718992a8455fc30199d9815f1cd637151bcf7e06b0e3625121601bd633a68a80ec9d43ac8b5ea2e6b5c50a8c8b10441ac63c6031b36dc68b6e4e9cbe3338c9e2b84689f10e8d2dc76f09b8df27bb74da08e7c104d61fc38daa5dc8651e4db80a0e799395cbe89dc9305b5176a02877a1a700dc0910528a4816748ecc30076f1c9012561c5d8b8089a67412c7b400b16e3f3ba94e31d43fcc41bf81db2ee4f82c80387b99c7c9fd510ef214f486c32eb281a7a1c29a8c047e850df91253c6f468a60e03bc1db96d581515ac4f595dce93f2da5faa83d9c93768db209569a4ee5c36713571857b60bc4011d2b0162ea179928629d2401a0cf22f123121dc57f2bdc3d5a0846d5f8dc70dba7850313b065e5c7fa7e3e3885b4b053a237d40fbc111e9b730f40f3bd87b6a46eb94f174548a023036d2c4c77263ddcae7e0dde6567c757dfc2d0acf02ed4fb75ba5a2c46a1be81a41d18f6568fd4ef8078ce0817e9548399090fe80afaf821dccda76672d84d798a108aed87b41659064a64c41e858600002dd2cf1e3f2eff53d0ea5b2002f8a12f9890ceb1256f140236c339d5c47996c35230909be1000d8c3a3c2d8494a8cb9bcef46f78b1645628338247918ec240a31021ec839d7061af92108a2d09d92d130857452765a5985115593b5a3cecbfcb9402b6b360184b1fba1c8c96c6ab454908d1addfdf16719f9f4b8f9a44d873b35edd48e70fc37401a76ac746dc3a45559351480814854dc2ff4451224a54d406890b45ed019bbe0e6e5d98815cd9f50407dd765e6f6b8d1faa81deccad6cb3cf71475619a0e77c9a0f09620fb3ead8437d44086776e3e09c090600ac2f80c9900a7603eb0f626c3a523860538581a57c98db8767c11600288883b0be1f98482f432f2c178720fbd3c47a87608823d9965369e4138f50c80fe96e77ba9004f4633b6abf7b39d1b644f9bf3e3962ba220e10a5324ab1fbfc88c806e3ef1c37040d6990b3180d5eb0896751a619a00d637d9a9ddea159c86eca6ae683daecaacdad448cd0a3e7dfc5c866259052f13b9f36df6f0fb74d645701a503fc1eb6012ee6e79510fb9ca15995f482e5cd2258274f8b27fed564b61b116df546929cd7c5dcb4105464e4c65cf08d0e983836870fd9703bbc2d5d053d95da245a40f723aab01226902ccce5904f31be140d874d29a769a9b95d7ea47e8dc7548ef4cc59ca6594856894c9e02da6ae0aeaa8a072be5d7246017ae23c14ad1c2d5b16ffdea2639c9198f0e1c212656d34bd70d1a9c5305362c7bbf7f32eb0101a63e26ab6516adf163b95d9370bb71d9f49444be1bbc4664a8b2428459db8b3ebf952dcf7ad66d059759cc3524816ec4c2e6626f9e5a7daf66aa0046bbfd0bee4697ef52f9e4bb2243426a39b85812711683093fc704f2b1a927e2eccf44af025b928739788856648e93b6bc9622195d09c34f550d26221cfb28d3059cf614b7e2d07f8748c97171a8b650e00ba9e3b20dda81f836f8b5e4f7779196b155603be566d709b0e8199cdaab8ae5584399d97e8588019f54f6e5777da468dc3be2875b9e1dbd13694628f5ee735e1b26d57d286b040c64c1f64fad3aa4169f4f3ddb52d40977c0ca850ac1d62c43038693c146d22b7ee9949f40799725836dd12c665f7b6947762c7be71acc6d4535daf28767cd57d80c76bd3f00ec2deabdad529a04ed679282692b0941de30219478b756b07ae80202b6e1b2c868a967bfc43f48889f3328639ec7cdd459319f564ff2254e62f1774469da42cb32e8f98ffa1f3d3105bb2ec7c02278bcad0e6f363e167b86fb1ae4ce42ab31f36fe43a10a8759c8a236dbd070409415866cc142d1e851d13176685a47f78a822617c9422d9706d8402a918a755e14e891dc52dba36739a3e61ced7c66a58899058ad06691730ca7807f994dc708d04570e85ea8c733ef13e0e713016ecb10b58375629d7336080906ba1be516d283d31529204810dad4c974ee19f5b7ad55c474fad34b290fe19b41eb1867084e33d1100c86425afda74ab0835b86b57a1f84d7985f064f2cfb8e132dda36a8c7cf66eb174248a39a5d32465794927a29fd5cb6c8b0cec83da4cf2218daba2a1a972833ead4c433c4eb6c54a0644869ccc93567ca79077315a6413afdd898974fb520f6302ada643922c5906646224954c486cb9844101e8bbf44a7102f85179b13e2519232102d55b823aa818574fa2a9c05ace3dfc0259ad2ba40cead4697611458a3621900d74a72c9b4bdb5f017b6d5902a207cac344c0136975066ccdae5f057bccaa4aa6ce9a2b52631be136d346e9d32298b484a4a9b84cd69b96a9a62a6a416a928112d52c68a5d416529837eda38f613186280ee86e2b5a91e9a04df24402cb8125a2cc74677e75e815ef830034c92824d8c12f2821591bd4a203b7e27618a44cccacdb6941e3aea9ba6ceb04825f5c66518ef0ca9c16d82aa5f5d43927cea8d98e3c945617199891d93d214c814db3aa46173ea4bc901f19ce0416116510018c8f83efbe0e224ad730e2488db8cbbcd1754e48d8169563c13f858836691b216fc92d65d2c5c0ff418d32e162c75f223efd7a65b26d50589fd949cb0afcd4d96172c129a99c7d4b4d640513712e69698ce4562432cb090ac8acc87afb28dc5c585f12dda6bc1845835f814861a85fe1eaaec415acb0d4e418111127edd024433924021885cec27e00e853a67ea4969308b4d8e524d6df1c41dd36cb0ebc81d3601d985215080f067ae96d05f2c316b81f9c3cc821334a31f5e95b81e563dcf3006066f4fc185f6101dfc7794016c48c402ac30c5ae8d18b96bac62f720920e2d4738b3b9a782cf37f1e28e4d1800a341aae13e86f1e14e842b7bc5de28085d569734874820660d1dec0269b0b4bb0804d6269e80e8d72ce53adea446e843967c789cc21810bd88e2c9acb2dc37b4096ac54f106048e41664f765f66b912147396fcdbd9942167eb2a2faab9888df28b8a2cf94eb302c05c3c3456fa8b79f3000c6f684f1569ec5c5fb9f47ad24e116d247181479ec537f24e0d45ca420f0f014de9a040769c0a2d2d7cf2382aa5d5aa1716900ccc117921498a412d85418e8fb2885890e20202b2d144154339878f32573c78e8d48a07e28748a585595d857cbb8adaa3750b8f24d88b9766350acee185ce7fa5d19af07e93f42147f3e483905387fb1b2810e80ff9461c99d3952c1b25aaf9bfbd9f963498da742d9a719532afb87a242bb61a9c0abaf693dec6f37894f8af2f526a0347bc2f10e8ed2b4f03a68ec248911508155284da31eb0c873c3b85ea1f3f9e7a9b63ee13802e41712998bab31cf87d34e77a1d58fe85cc343c3069a7afcd3461fa18f831e51d7fcbf9d4c31686a9094b768ff81cb25010de4b6a5584c8f2049ce463bd12ffb526862122527d51efc9aab78824348a5387d33a615467b412865f2d50b415548294fb860de9c20c9f2b8c94dcb07316d9189b0c9423952733e82c13f8ca73309cf1dc076c629b7099b34ddbca2ad8d942e23bdaa58128ced2affb3cb0af0b7d498fd4dc414a16b63d5403c7e2c1178397c4289895b59d10c988af3a0154d9a4b3a444dfbe342efca4364ab089f563addc0d066bef771368ecb342321f4d9022e7dc4980b3950b2a4d001c33f3f3f3f3f3f3f3f1fcbb66dc1b606425b48494a2553053e2534882d534a2925d9de2a141405000000000000db0821a4b50ebaeb0b3b0ba30b8dcee10844f0910746d79f586327fa74691f78e004cf4ae63953edf2fdb803a393a67b3b296d3cfdc191c2d06107be8275bc8a57a56df71b3eeac056124f8aa64b5ea25bd93d7cd08191a1c67472f7bf98f6213ee6c0496a4c3479fa16dff227074ee9f0cb9562da907f89039f74ce37a1c4e8267e0a0776843a6dbd81d1ef9a576f3a664c133770ea4e3c53b9993f734a830e1f6de057c3f3850af7d8c0e75c495bfc14acc4c71ad8f4e5f9f364d50e1ed3c3871af84c4b5a169476a650c2c3471ad894b3c97427897d416f12f181063ee4982869a448ddb2d0e0c3c7193829ba7f8e15e3c5dea0728ff830031f6f3bcd4bd4695257233ecac09ae80ada59269df5460636c9ed947941c6cca4a4a6f03106bec4e05fb2b559b6139a317c888173ed0b322ce6d2da6a18f8b3eddfdfd251f704c1c0c9274f66cb1adcba4fbec08595cc29d8f88d8bde0bac97ea53db7d29b9ab97a30b9cb6a80b993babe8e87381f3db6c651d354c556a0b9c722de94397bcd9d44ed402bbb6418a127b6c43edbcc24716f8924da76cef8b1b9e62814b72febf9cf3e7a4a5b6c3c71518dfbbb2ca149e836f56e0cbbbb7c2db24f5a62ab06a329750254b501b2c6bf8a002ff6759ef92693b71548cb7600a5cd492245363a6cb7329b0a6c5732949b4f8163451e0bf3a589af69126e242811ba13ff9758ee942554fe04fce8dee9621cadbc28713d893344535fea70a1f4de054bab6ed6a360b1f8f25a14bd6345171c2c712d8347effdb7feae727287c28819354cc9b2d6990d9a42f09ec78050f6ab43306ed3e90c08789b1ed937c1c815b2d49529572c9d16cf26104ae4a52f14c32d57379be08e3068d625ff8280267fdd13a6b47ff5b53021e90a1830f2270426878a7a0da6da3dbc710381916945613477f73d28710f85ce7a7303240848f20b06515acef0415e5316f75820f20706b8290255f5968ceebe3076ca533b9f35ecc26d3fff001bb25b775ff8f3e7ac0691dd366fa2b0fb87e3571d35bd4120fee80efcd26aabebe433fe71f3ae073e7d74fb2d585bcadca8b8f1c70173d649fb76aa6cd7de080eb9c04abafd34b62a87cdc80d18fa52b287da504a1fcb0015f9b337e09bd68dfa183c60abc08e36425e61eb5e0e4d8f6611d7d9330495a706e32a5abced57881c1db30b330977ddd7d6993e700c32ce0210b3e69f9982498249874518dad1d3662c1d568e6fe561e16fcd99d78fbe7e8c9dd5770f9c67f6c4708d1b982f354826bc7a4723615d71282472b387947b8a69c15c253c50a6edd244b5f52e67e4fad8213a14d76e65c4b829faae0aee4f57eda9d7f9d6a6c81f105ba1c1b381378a482353f29ad55dccd24731ea8e0b3854e2f2a34bf543b052743c71cc345b87d61e8a071898729181fb916dd73523af659b6c37578c0a314dc6ee87965ceb1a4acf88e1e7890825319d447695afd50268f51f06329b3e53799b517051b9a395addecb483634709056b3ac5e41d33aa5dcad7d8ca91c36980d15f6ce2010a2e678b1e75bcc5d2a41ed871238c1a1f403672f80d9fc027d87c2e326dbdf7fb05c7dfb09132ba98808c0714cdcccccccc4444444444bcbbbbbbbb3333333333abaaaaaaaac4ac260ec0141e9ee0e386924dae0bbae38e1c8c0f642738b94b8963729a499a638d2d2b4e70e28d09a5616295d4688d2dd74df03928ed24c6f8a1b9b58726f8ed387acf2bfe891253632b05346ed8a8b1c3860b2e137c0735222b3b674f63a2030d137c5d5051d9b5b3635cf0b804fbe769928a293573665fd8682f90e9d0828725b8abdd0aca2d0733d3568231d3fc7f9ef4ac0fe3944a9d830b1932b8500f4ab02eaa2af483661d194a82c72418d5747a2a8e92e460558d2d0f49b05b82b2d67693d5087844828fe659a295cc77c1aa1b1b9831e3060e2c78408213799bef339a6cba73c375207b3c821d1d2154ede7ac5fa51bbee305ace7e108ae246599d53ce349313aca011e8de0929d124346d1d7d8bac262047fd9c94a64d9077bb5c6d68c19c90c3c16c1c949f6136c9449d253abb155b20b0f45b0a726d888494928a9991a5ba8018f44709762256d72ba984a518d2de385175d63870d11d0400f44b0f5594c89da2c9ec9c1e310bc6a564c9e2ba54f72acccb0031e86e053452fb6b5e513cfb114f02804bbfa39355a4c679d245d283c08c1f9fa7efa4ca26ea898e382c68c195c7031634649013cc163107c5fe95839a5a95f5682e04beaa4a3216dcb14dcb0e12df00287311e81e0bec41cfdd625c9692935b6ae5c0238ba100120d8ab2b5326a894aea78ef6a214033cfec0d9fa7532b9ee2ce9cc9d1f18932415266a56fd7612038f3eb03148db2edfd04ecbdec0830f6c4ed2e79d98cc72e5ebb1072e73d2f1da2b543ce93cf4c065794e2797d0b20c257960c52e956c7e92f89faf071ed88e599ffb25a5b649e271074ecacefba7949e8d0ccd98a1638783c1c30e6cc6283a28adcae95327ebc046df0e26a7acd726571578d081f520434b99f66082d6bd002347183a6820073ce6c06e4e1763872e537265450e6c87793cb9b2443113e41107f6cff54a492925e99ad10506de233063460e7f4f4965c2030e6c124bec159d29c92432bac0401a083cdec0e75d3f192c45cf6218c87364b981d5cab163a6b724eba7dac0ab9ed09d9a57a4e50c1b38e549e86ad096e356d20dbf0a78ac81fba04a4966a1d469550df050031b93cab1448b4e3963d092f44803df5d9db962d09d6f678dd51c3bc0f04003773af98f697af493598f33b027a9ad899697977f1e666075f7af723b6560949449f60ff692815342d9e6202f8e7ed5699c89404617189071e53106c692e8fd317bb0cd39f710031bb4f869134b9f345d26133cc2c0e9f2ac71fd045d933be6071e60e04d0c328fa8f5bcd3e81738b9a184e68a7b4973a45c7878813dbd9704ad9e4dc999336346173825d236ebafb276656b6c798e5205021e5ce024cf2193ffb961e83861e8581daa436d0bec6693d24c9e92a6ddaeb1650290030f2d3056972b6bd0db5fe2bba372780b9ae091054edacc25756b700b964dc0030b7cd2db6672cc5b4a1c67ccd8815a06173276e4f01a68878c2e3040231185c71518a54a9fff4931b9dde561052edae7182c6dca3a757a54814b8270ebd349cede830a5c9e1c3fe851d7630afc6b5af4202d58caab794881534f29c8ef4b531fd419333e470b3e470bce230a8c7fc96ff92cc98e1b8d3a04c6609063c70d4f1a1e50e0d63d9652a234e5a07722038f27f0ed1ffdd2c81a1319d7e1e1043e8fa8990a2665b494770f34818d15f34bf3955da9556e0b1e4c60b38752f2da523dd349f21b2ed8c02e818bbb39ea5be3b72596e50987064a3dc04309fc77ed5b2cf5993024e001195e782481f3bfceab27279d4b57e82140de82047920a1143b895d71dbbe8163c795271c1a404f386ea0f138026f298d3a19aa448f414863ad051e46e03cc524ae6a924451314911f84c62a73852e4497a2b2bf02002bf974dc6249d8a6ad2fa0e1840603d86c0269d4498320f790881ad1cca7733ff444965eef00802e71e439eaa4ae5619a0710f8d7eb28aac40e8cfe62870d08a8dbc8b123f1f801fb7da24f939c4d4ac1e2e1036e543765cf6eff8de9019b356d148dfd27cd44bdd091e30156e8060c7420023c78c0bb95dfe6eb33a5c6e18566c06307dc8feae74e99aafa4e1a6084416305387078613a20830b191890d1050664245f78e8801b5393e458d09126f546784302561e39608489b949877d92abb62b64c38b0f6860c68c1933aa3487070e382b61e974e692f53909251c1a484a29c0e3069c2463ea90513f95144d8d751b3976d0004387870dd8cb6157222c892965cb468e2ef0a4d5400968148000b560e4bf861ad1517b01c617be2e20002db84a9e82261d44e6bcd52cd868b7a2363fdfdee6b2e03fa635ad0b6eab27b1e0bfc4be7cf9d3a8936b1ab0e094550c93b71a02bc82159d21d4da6a5cc125dff26f53c972e88f0ebc56b09fbf32059943e64d61e017a8a1a329c0c52a2008c00aeeb2a5aca27e2559d6c36041dac8d1450a6e145b05777fb207539537538cd7d0d114a8a1a36b7021430217804004609003c74934609003c717fe852a1895b152b66cc994e0a754b0d943275ddb1c4fcda182534b5516f46ad24a5103014ec1c74a15938850569a5308600a4654de24f9bfc7bdce4ac1de49679268450a5e4c3439073f7f9336aaa3e094ac5efa2c73060288824bf27574a8b8516fb71a5b0178a6cd4912370843d6c0eae8bbca54fd18be87a881f3d2ddb234e2ea694c03ab255ec9aebbfc178342d0c06a3ab56d329afcced13370728ddc934bff870cf60b42ccc0e5d85630415fbb83959c1942cac07b12a11945f9d6889a0c5c07ff0fa53dd7a4260a2163e0bca29be0b1ee3f96548818f84f2afa89792a9ab4bcc656ad20240c6c8f92ec2e9b944b881f0206de73bfb65226c9f42505c95370c346da17183377f5efbf3f957e8817f84ef95209d6daf0c2461867cd8b902e307642e524ed8fd8dbc80546ad29c124f5d58c267323640b9c498b157b4c6953add1021b2b7b2c6152dc4c9faab128240b5c3229d6766aed2d41d740173842b0c0667cf193928bbde6ca15b8cd7942b5c656d110865881757bf7b198c14e4dab0297fa544c7e6aaf2b5f41ef402ab097d1244bb13c546a8ec37011320556533211a1e3c5b86f41428814d814a5fe326d4dcc921305feac93d508251502055e7533a7979d12a6926a6cdd6aa004346c843c810f0b5adde7efc14c12198438813551fd39b606b31c643aaeb2439ac0a7b191b5a29398d3c9d4d84aa57810c204ae6ec34e4b67743764097ccaa74f7eee99a4aa33811025b0d92779102594655a0dba312124096c78dd874c299f20c3d5a251a2084102aff7d7a2a4d06c32b532849023b0a76d152ce3567f072dc408dc8beba6713b2da6de22b0ddea71db4676fa1286108193d33ce7c83239ef9f589a154286c0a9c90b227b733529e92e2e44086cca0ef155b14b52fc840481f3147553abaab7df932004089c586b6d3a5fa94cf2d742c80fb85c7293d434a549346d213ee0e26bc9b9c163fabb6784901eb09f4c8fe8adbb3a291ac203f6c4d1b93e6985b45b4376c09d5ea59c19b5438f4f85101df06aeed6295a76707d4372c0953631a5352184923d592138e042dfe99dd87f9bc52284901b707656e95337748e895e13426cc0f525514157ea8d9d2a4200a905aba173de3b15e2a904a105efa75ecfd426492a5b60235d04126395ecb0718c150d1d581a0099051fd54ae55ded881e9d2c18992fd789ea68e5ae0189056b23ea5fdb2b4d3e91192c3849ea6e922599e8925266afe0fb639d12d7bd3c7f1cc415bcbb284bb14a1026d309d28aa41c2d4a678b19082bb84b61317f106d92524a20abe04d88570c0b6d723e1144155c3e49d25c39345f281d9054f029f809d2cb564c2629082af8b8be9bc5d2db9af47200720a56531042539f9c93b43177a6e06ec44a7b69fd5365ba52f07ebb655d4944e42901210567dafa5397f66c4b519051b0a1b671cc6c7f028828183599ae5395989224e9808482ad8f7a52e58a3156b44140c16b4aade9730c99e43c7d820bdd26675dfe5608254fb0e6c9b4c9c9f74e304a66137443e8a86c2a342a0e209c604b99c7ae6c727eb51064139c9b5e937292a2c578d2209a603b9deca263486d137c904c7052c5d2e5bc26a893e298e04b49db49dd4a3493722ec1e69c9430556a4d973c5a824fea9b695944e9497d005209c62421eaad047dba6d024209f64dab89799350d2e6249049b0a25ed3785a7bcf251806104970eba573eabc22c1e658c942939fb2561b129ca08492d3833c0d3a63401ec19f28f78feb2657b909e20836e62949beb13e79f683348253faa7c1fbb45d7d1223b8a424a59464a74f96de16c19e164b3d661acf6366042902104530423fa44813b4e6e7072411dc755f95b85a9ba4772088603d29419976462b793ac821f8dcfcd7a53e97e835410cc158652ce1278ed02654cb0152082ef44a5ab3db3095b4460021041b42e67cf12d08216b1d04173d87b4d89fc3648b0a82134c34f7b42b3922d225800482515bf28daba81c53a84100c10571bdb1a0d7e4d60fc81f5813939c63292dbf6c27103ff0fb2726c6f22ba9e424903ef0961a4deda3c7cd4a1203081f580db6753a28b94383670fec683a93d3a8a0e3efa6072e4969c2d54e54a8dd79e0d73494b49499af19eb01081e6c4bf93f56bf83dc81cf2c4aedc9a7eb76723b701e43e7bccc2ab1540aa40eac95b855922d2a6500a103232f9fd04ff7b7963b7360fc83f61d536953d30e220776c7adca2c084f96199038f067e126097e7afffa82c0818f592d66c1e46cc24b206fe0fc3d09d636a2373c0fe206d6726af3d09f03d206fe93d2d9ee7d04c206467b92ba83529631ef0eb2067e549fa0d4d5e78a9940d4c06bad987cff761655049206c6368569e71a65a9251034b09e4ad2a6d1be34451be40c7c69cd5cb174cb64e541ccc0b77bd98a080da40c5ccc186e79796f97191032b062b27753ac1434d7053206c636e756e99a206260ddcbc6d653f20d250f12062e65b013f4a5808081f18a9d1d6292bcbf22c8171821d2a489255b1ae926205e60444f47484fbd9be40fa40b9c5417355e327592583e08173839c5b8eb9f2b732c71902d705f2ae83b3167fdef18102df023fccfb4778fac1202c9022754788af9d5faa4a403c102ff655e320559feb93d2057e0d69448eb4ad12ac904b1027f92ca9dcbb24e8e390b5205365f851e4df993492907a1022b6eed21eb4fda6c15c814588d1b74d2a96a494a2e8814d892599434d1b5e3a6048902573ac8764dc14c73080205c6f3a40e1aef74d097833c810bbd297b5bcaf74989823881cd22a694a8379e4acc9afd024813f873d571337163ee8d099c103298ec24ff82f6ec122ef7bc4b429418102530f6a5ab64d2a99485079204b6c4e46241c5478fe72048603563c6b895e4b43311c811f8cd39bf9320db739d108811b898a497b8313d4faa0f5204fef33265979c0242044658fa9aec23646b5852ea7205902170d163c9d0fcabcd260e2204eef48856fcbbc6ce3825800481b54fdeae65d24060a3c89482850c2fe5c11fb0276e66cb1ccdec2fe903564de70ba53da8fa4a6103480ff832716da345936f9f048407bc26514c4a62c58d1ba21d301a94a57aaae9533bea808be6a66d994597c620176700c9011f544a9642c4fb52c959101c70da6326a6cd3a9af208e406dc9694f3b8799d60270b6203aefd34267559da2ade32f8a805234a10e9a3f4f5b8c78c166c4ce7af16840e2ae71fb3e0cb77838c7b425334593359307a82e897d669cf5f2d166c2a4188972c76d2e4202c781d9dce3b9495247ae7081faf60c33359b0afb0e4a5c415aca6d226fee6a9c656f264acb482d3dad9a72ee6574997159c54e25ddba9a89d4475155cdef4498a625256bd912af878723c2b35799398742a18d11b119a726dd589b1c1072a180f2528d1abb9e4bee829d8cd1443e80a953b53304a67362173a5d332d15d29b8926d5a941437a8e7e48c19f7410afef24e3c6976a3e0d2dec9eba3df53852b0aae4d2aeff60c77d53e3f42c18f3e9354e82d0a1fa060cf3bc8ad94c4ed4fd19ef0f109ee7ee32779738b14d33f3cc17a9e246e54fdfed47827d87c3e2686dec9a3ece5049f97f637985fc85653f0b109be343c76dc98e4694c6a82d78c19f2d49deadea44c70a759a16a19330926731f98e03f9a0af24e560abee9e4e3126c55096a3cdc37d7afe6c3126c9ebdc6246f8d4ab93300f8e0a3128cda67d666d2d9d9194a7022afe48975aa94a7a04970414b84d2ba174970e926876793a2f4581d094e0c256576b88a8f36f10312dc9fe8901b43c96b2aee81085040461718f8780467975ccf3b8f52f94a4770954e6bbccf39faa5d408ae37e8d86b991ad25746f027a3065daedfa7ea5f04a39b3f47d80837f13741f8500427ebe907a5d76bdff21f89e093a4bdf29ba67ad613307c20824f263b3fe84a82a82466061f876035b5a45c929834049be4ee0b96ba2ba89f588e8f42f0a3b96282ee1c4bce694270c2b22731e4497e92ee0c821d9d97a4b8c91204d79759212c8752a28e3e02c15eb4586f929794fe621f80604fa969922bb3cdcf22868f3fb0f7bb2926334fd228f7c30f9cf45ea6534ce54d42eb03a3679b466fea09bad37ce057b475082bb3eaeff3f0b107365f4a95194ff2e825f7830f3d303a676e34491d59e034ea9a5ed96ad23167c2081678eb4c72b33689662ea171c3bd28a3c0c815d858b6a284874ce9ab336205ae944c417f28ef8a7b5f1646aac0c50bfffebcf42626b19483112a7039d5ec4b92743c491c4561640afcc76c2b5a2c68496dd0a85a058c4881f33f13eff247cf396876e0f0e20333668c4481fd3f9992cc2def2479471881021f4398b292db3ecf46372a50e65fd8d8813a76dce81da68112d0e8c0c813b8644a459da76c4267939f3e67c4099c32d78e9ec44ab469780e3068b4292ea030d20446a9182dc95e2ae764a6328c3081ab582e3adea97c7de112785b913189f294db74a6047eddfde4ce1d1f4902a3ea92748d23bcbbf448e053ecd0187a97fca37704c6af94d66e5bff3b15b31123f06756f2d334d569499b8d148193a477a592493d5e49623642042e8a65bbffeb85109ed9c810b83241bda37dd28810d82093f29ce44682c06d926fd953c68b07647021a3744006073020c30b30beb0a145851120bc193f25f3ec6f02467ec09a96a9682a949b94f9111ff0499552db1e1644e97a708dce99fe3f4d4678c0684dba6f7145efc9cc0ef8ffab35cbed5d4dc9111d70b2f2df67878a99e33f9203b6cdc41c3589a3846b3e8203b6f289655e9f3bdd5f6ec029efd8495bac4bfda4111b302e3228b52dbd5d79ad05279dda51c124c1db829616ec778c3925d939665dd32c780b4a94249ec9d1f28964c1e94e25c913a54d9d9c24049158706a26c89cc4d3ea3e4adc20020b366c3fe6242919755b1779057f1e739257b307197a177105239e2c053f17a159b95670399fbaa924e9ca9a31ace0aa634952cc1f2aa8a462384260b60af63a2df5070f5aebb92a1879c12bba25994907110122a9e04453eab65a524c5ab11a5b5ee88e1b364090021b10d85d80082af83f9946ab2965a5367d0a474365cc41bf6e0a63d075d2c9418958e03aac8c0e1d38c0b841030c1dfb00915270abb9d2e4a47237291952b05e4a926ba546fda3e0a3aaf8e549c9b3884c4414bc89414bb60d9d164d0f05276f4cd371ac4a6f06147cec4e27d8096d7f79ff04df7d6d172b2f837bef097fcfc5d3dbb49d60f3b64ee54eb69f640a27f8dc67222c6aec937fb309367657109d43c9346e8968822dd995635a89f34024139c2551547437ad389e0383304e950e114c304ac65cb982f094626897e0bb723a2966ed7a96204bb077fab1724c2957a8d10b2295605dad2d475357955d94e0436da63a419320e37593e08436b1e26fa693992b4970e6567ad29f88dad691e0c41dcdab2994f4316d20c19f0c4afa95942b8eed568f6083ffe8346eba9fd28670786101114730aa63671daf522aa5228de08452edd59131956a160021883082ffdb582feaf75412fd4570624934699274667551041fdcc5f54d4a892422c9436b92a4972022386169a48775b6c6d60a74f40e1a45450ec1277d16a49572edb7918821f858c1ba0465c104ad9e4821f81c9e49b79e3163c68c19332cc70e302e007d1021045ffe61b6394c859a69106c8a274f4ac54c4a6cacb195dc101104dbb9b4d6d4da8d12992f2e4502c1859b594aff5f7b2602820fd17e5d1e7344fec0e80a255b2c4b7b7937113ff02777ddb665c907ce90b7a00a05227d6064aa79501e9354a6e303d72eda7a474577e8f019227be0d6a44a4aa724738432f5c056e570cd373efa494a1e18ed29dc6ac5deea4e2278604cd4983cf6df49314f022277e063e886cc9f992144c60e9c9061639a63a8e84a8bd481fb1dfd983c290b2ac845e8c0650efd9f46ded76d09132273e04dae5cf7627d394329072e3c597b5f92fe42261189037b7a92aa4ca9749efae0c0976c17615ded1bb8f3f5984b08792525ff460544dcc06a8ef9796bb00d9ca083090fde962688b081d179e2174b8a5ae8510ad6c0696e4e62e5abb07a7705226a602fa81835694f5f9b89a48157d11a2c8729713df52268e0840951a24d1693f47244cec007bdcd6b51bc1d889881b36c32bc564c7beadc8d0de840a40cb7b706b59a31546acb0422646073ae5017844c494c25141903d7f153ee1ead8841440c6c9049ded41bcd7a33b981c30b14062e488f49d23415113030d626ad680b152ffde80b5c7bcc3993bc1acf93b48817383942070d99bbd39325d205f66d93943175fc4efa225ce0949f49e2094a42640bdcadadd96776cb9f440bac962625fe685f240b6cea606a3fbefdc7d86281add0e5e935bd5e67cc1538d1374dba059d73fe242256e034544e1d258b55e02eff7258342dbf0a15b8ab116afd938752fba7c0494f627a4d8ff6779f14f8152d7da75496509e178902bfe9aed9943414180be939987c9b4cac7f027f821e0b955a9e42893a81f71fa5e43c3d7ab9729110690227e9942cfb459a9b740e06c38d20c2046e2bdefa89ee7a495c02274ae5d3b95371105102ab3957f867708bbe9504882481f1ecf92aaf8790c0577ac96e3a05dfa4d923f0f1545d94e9746ea3891881ab1226d355a7cc5a2a022b768225e9447e951a79181e46074a81f14518f701112270eab3d9999d14bfe47c087cb6563549fe10d59d881038f112d7b276563c516b6cd138eba29c0b4482c05ad0bbebd6767dd25b80c05b4abff9dd627ec0ee2753563af24c4ecd077ca859981c6c349ad5223de0477e120b255e72eb9b079cd8214aca41acf49e3876d0480e46183872a4c0ec0b223b60ab3d9b742533a8285a111d70ea82cce9724c911cb02eba259eca5504076c52214c87e51c3dcf44e4065cf00a4f9a2ec4c4924403344ac4065c50594b49da64599d59b5e0e2e5787e4ed26a0c1a5a7095f25ed72ad96f36cd823bdd4c31495452c932b2e0ce6f37849041a9b42a167ca724e7d1793998e91c2cf8cda86dde39f50aae04e1a35d22a36b8b5cc1a6cd93326bf41293c55bc165662fb71cd4892e26ace04be5b8f665929c2ca956c16f7fc88cbb2721aae0939c52704f96cd4ae808084905a7641b6d265f2abbf62d04159c1cede4fd20333b05bf59a25547df6edb68aca03dc7c10a3105e3267f7d0efad101467b0d53424ac189417ada5495b43b57d090828f5a5d6932ea08951c3876d83856551b90c1850ccbb1811d36ce8c193a4a0718380e0081081905a7bc44b1584ac995044244c1081d3b593e31640e35148cf8dbc96b5e5935594240c1a8cff94af4d8269fd8d02f423ec1e924c5a01b3a595896e000e38b0a2417e209366d642c13935452592aa413ec9e0eb24b8f9a98e9ab513e08e1049f332741fe7afa1a5d7283904df01b326d8ceb2928995417461817a2094e93ac0e32291bbd67828fff25e6f7ee9c4a1d078cce8174d0d8e13aea30c1d79ffc529d523e3d992d845c82713d4b7207ed362b395222c4129c6fc892bbc6b47bcc1a05cb105209f7643cdd1b7ba504d7250669974f921d4f7823089904571654122aac24092e074be26e09ad26191209b6e44923543bab5d8304a7ec3decf4d5e61b132fbce8b39047b02bdefd416dc67fb110e2083ec52de5eba714b4e41ac1fb78b624e3a6d1f91623b85ce155c9a40ffa2f93869045b0fadef6e9b2e296e4d801c6d52044115c3a1d3fc90c4f2278d379fbde3e8392564cee397e71f1108208aea3f86de6fcedaacae042466a1c5ec0a03920a30b0cc8f800081035e410ac95a929ad7c31dbe79ee34b8821f84fd2ff3f29e5ef9a2904272839c54bdf63183820901082dff7114ace7a41c5d4d4d81dfe811dae2364109ca4e47b129ec55bd35a632b69c9e862023770d8d091642144108cdcd0ab6e4af6b38c699d2024107cd226c9ff26650f1d5f40f09992ca9f324f897ba5903fb0f79e732d6e83c6ca22c40fbc9a88906e2973db86fac049f2f2e4377925f7753492076008217ce0bf55d77facac935f7be0ea64e8c5248dd6beb81ed8ca5d62ab984e481ed833dd49ceddfd55f27b80103cf0a295fdd43d446b2d373c05090b5cc7a51b9d033550021a0608b9039b3aa2af4aaeec4a991d3861235dcd644e265836a40edcf6a9f1f134d19e736aec0242e8c08f4c9517ddb3aa2e3b3ad148681132074e2631d6e7dbe89f240103478e1d373c0b04217260c5cfcc4e575d7d65438785c481afa44997059587c0817135d1494e4942dec07d901de4e8896a27ee216e60f307f5516b4f4e367a1b78f1562da56971e4496203db39145360d3049d6e7fe4c7cbbb14d8246f650c32776ab4ae0f5b44815dabcaa75492448bbe50e02e699998fbf33ab7f5c3164fe0c4b49cd378eea6d37c0bb18513f86cb2880ed31a628b2670ba26e969af249a87568db00513f8cff1e4c64ff26ee479842d96c0c818edd449aac3a4786fa1043696f86b9524e675bcb748022747f5698c1b7a19d343d802099c586e9fca63660dc263e4b0c511d8d3eca79292227ccb320217164bb492bbd4af74c91cb6280223a6f249525afecfb62c11785125c51b132bc7b43304465b3229bf338b6606e3b08510b80df23ebb8a12c43e8b6ad822085c504f9ab13707042e8f08333fc93ca6ded6b0c50ff898395f7849abee2cfe610b1f707f3a57e83599bc2cd603aeec3e6765cd1e4b5e7580d882077c6be924f80893cb4ca816b1c50e38d5e26e62d6897943c66ca1032eba656df4a8a92d72c0b8970cf97fc2019774a6d9252553ec24c9c31637e05c94d8b5a5dfc4949585c3163660a4464b4aecf42765df6ac1a8be961c933689430c5af0319430257e4153854a67c19b5dc59c041d2ab4081559f059d4effe831c33497f88110bd6bc32fbae67e41003165cb6d560ffbfd104ddce21c62b38ebcc9c2429590e26c96c2162b882319364e6145bef24b1c410315ac18ecc57e2c760d2f7d9a68718ac6054ca669a7c2fffd7b40a4efaa66ac998737b88a10abe3c4b8c667a49deb4993183061d62a482cb30793e42094a5019d541c4400597e4a524b3aadc53f0296a9518c54778ee874288610a2e28254f34287d65b22d051f474bb6fe280b26f7328418a4e03c7385d95f0ead76828418a3e0c7a3075d976a9d9715056ba27abab455ba54ea9424c4080527da85f6f3b4271662808251692cf5a849e525f39fe092943c6f66a9df8ab966218627b8a0b256e3e70c427fd7093e9bf04ed1cce604afab293fa54f6d824b2dd252d4a0793ab99ae0649f7c9332fb67af2499603397ec214d664d65594c70d29df6d839eabfc7cc253899e41425c9e2b1045bea312561e9a904ab1b83be4cd2465fac94127c6cd512e3a68b08bd4d82d315ee6f7267d125a548820fd6495487c893566422c1e9cd9a66213d4870da6e2a3b43f30876f304f5e9638e88751cc1ddc6dcce964d95fc7723f8d77437d2366d5aaf8c605cb77b7cc562c9a32e82d5689ed55ff406933645309642a96ca3a43c425689603ce9e7fd0b1d84ec1822b8d2e41af4072145457308f66469af50698469480f0dc197580c6da1aa4d9b2c13621482bd7ca1253da5c89c3342706b5d82c5efb73421c62058dd60da74e976da540a82d35ef53bb6c94070fa549a97decbb04e4936c40004df63799954e9119eba3f70428849fe5f39e6585b1b62f881735bb12ba1929439e37de03296bc5ea3ff652a1f58d1b016f51d4f674eee813b7f8fa6fcec522a193d70fac1a4b2984e348fb13c70a362d0e08113799a4a4b2a4950a68321c61d386db173bd8f6707f6d34493f288a6eb3fc510a30eacc831254b9eb9c7934c3ab029ef828e1633f5353607368a7ea59c3669b60a6e1562c881f36c71bcf289a6a33671e083953e55925a4f1a647060347efaa44caca43aff0646b85572f34eb566273770824aef53624cf1cca936f025ad754ee949105531fa84186c6093124c99d826091f8d5903a3564b7b727dcf93636a60b5ccbecddc536a12a5811bcdfdb5269e986e3368e0b4592e491093a63b3d32c43803f71d3c86d624b5eb5ece0c6c66ff8ca1d9c460ea2a0317cf04b13c42979c479864146290811f25e8b4b4e0c924d1354a883106de4b9f4c31de7f974e1203a33cada8a5b3d232d125c408031b2fd3e6d0dfa91362808137d9632e257ddeaa9c4a22c4f802fb21349e5decf3f15811627881f114f72c8358dab6246a84185de0db2fe5a0cdd3ea24192e7029b306f59f24a562564788b105fe6209da048d61c9e2470b8cdfe95c92f0dd174be2861859e04cd649e9b3aee3a6c71231b0c0dde5ccce1494da57a56a0c31aec047dd3f0d55fab34a97e38b2ff08b2f0e0e31acc0e88d973b7ffe50a53655e0372be8ffa67c21c5840adc9e24a87eaece14d8ba34554bd9848f47d510430a5cce9b26a975780cba87418c28b09d53cb62c7ff24e9090a8cf0befc62aae79ee24fe062a52456b5c61dd7248daa440c277052eca4049d4b970e4d4283184d604bc6606352b794abca0446c9d1bc595967aee925f0a5b1322679b2c8d1eb112246b9a3c450524e6d8c24702226bb954e71bbed83420c24303a736495bc279fe57b04cebfa4dbc624c84ce749a810c3089cd295634edff00e4aa7085c89f4a0844c4a35ab85089c5d4e3329497286c07959e79c4dc874492b04fe73bd067f4b0d425882c09dce6c31d5de66ee381058b73ed1774d2aa54ff6077c5dfab53c328d92bbfa80cb0dc2c4c27fab37c4e8017b5baf2a96b2e358464b183178c0969e1c7aa6b6bd5bc6d8012726afd419639745fd74c0db474b77693d093e1a40c4c801bf3eb25294a6d7984d38e03c49a9a62e9398ed2737e0929c9ef2e653d9de7362d80037d59a0b23b5e05c3f586a06a54d76148c115a704a5c3c9e49df66ea2c5d1899056ffaa26b769eca417e881159b07ff95f3499e82daa0ec4482c58d7b81756253b9ee48105b76923ab5a372b4bbc6e1123afe062992064501d74969faee04fe992a2741ef1b73c69051fb6a1a3944ae2fe28fd6084159c7532d3493f29f525368cac82db5b935b34b3f472aea882bbe4669ed34c525abd54b0266d9e9f66aa744907155c7b1e9316f4ef2a37740a4e94ead74e29e8949a02868d2e6e38181b983143071836762460d8d8610a2ec78c253d9f880c25c94ac12731a5e4cff6586e168d1a2105276fd4992ea5e42035350ade2afba9cb9952faef44c125eda2ff73b69e983214dc6d0521ec4b52c15240c18e4553c1db7457924974c461e4136c6e2b8f9f6952cad73cc1b557b7e6d4563f49a613fcc55e939ddfddc4d872825553d1314df946fde026d8f4a949c66825ea32090c34c1afe71da593800c2e66cc30c34826f8ec3f3185062fddf46282d113f24285aa2fc1e7d1dfd3d48f9bf1b20427de6927515335c4de4a7016bdb47ed4bf28958412fc5b9e3a359a31774e27c146df1d5d258fa853b6241853f935e88c2a3a8aa8e3059d01195cfc6124128cce3eb937afc91d5f4cf986d4dc5c31f80836bd8999289ef729551b5fe4700ecc98516a09238e60354dd59790d65e4a4e2318eff426beaf6104e79ed3e4887f7cb7ce8c457049e4c7ef6c42c957952258514a146dfab92e5d4a2218957414db3f3944b015af83ca943e876093d2a7436bfe7bcd49de0243f07aa3d3a98ca1f3a95821f824a8b5fc4127594dbb846033dcc22d637bf0dd07c1c8d896a2998a82604495ec2bca3bfb89760a6ed8b80b04236fdfdc2f37e3e6b407ec300208fe74991cf252a9c56effc0a9cb3eebb65a6bf3fdc0a5e0255f34c5f481bfb49644a754cd988174d8f8820f5cdd58b8c8b4d5a4973d70b14e4e963fef4ef5a5074ef8254f59642e3d7193c1c51446f2c009d9797bd96212d3950f8ce081cf3e0f153f4c77e0ee738992ee52748dcc0e7c7d7cd5ace9972aa97560548549aa953bbf9748074e79ec243737556d4be6c0c82026789e6831e5adc881dfd823b408a5262599140755476e301d627a61a3777804b68461040e9c187409763228dd26fb35f2063e257d1e84ffe5067ee3973ef724a90931dbc0897b66525be6d0983336702abcec4368e54a9359035feb99a48c6742299d040b236ae0045161993e4a4893fb481a788b498aa8051b0d9cd0961f2ea6b5febc1933fcf451c2c819f820ac343be91adfa40a63c40c7cf4d01ebd2e78688d96811be19794d21bbaa6fe1132b07d2a25aff78e1a46c6c06aa5784a5a08add1332206ae33fee6d5a04ffab8eb60240c9c9c94c8e8a52333693f63c68c199ae061040c5c3cf1627cdf324175a635f2052ee55119338b4683112fb0612294ac558d8e1a8c7481efe039c514752e706523831ea1acd3e9d60a235be05fc78408213c2db0166347cf708d0d46028fe8a8e4b2459240180a05024110c50000c7cf1b00f312080018281e0d88e3e1785415a80d140005472822543e3a1e2820161e2a0ec4025130180c8482e150401406a4208c82408e6599ce7c008726e16c49711ca6e9e4ef7d22f56cb5cc4e1e622e6881893ae7cccce38d137e292bfbbc89cc53f5a42510de8119e21ea6d9ec397e1271ae97aa2e6588c39530a533bdab909690bb061e4e9192677f0ed0bb90fa13fd106a70b4c0b22c59a8c1305363e20f43eaafda672234a41258a3a30938a9a625b2ee84c35302af2af0ab8ff7accdb608018d420c6eb20314591244934596bd21c08483c81f8af581eb94acae043218ebe0bd58ff03c65f7403c1374cd97a560e4ac7105ee98cf0d64198367cb61c7324271902eab87e0b3240d42dcd63c2facd9108a937069eacf85775b5e8268cce6e35d53532bb648bca737bd9a47ad7096fde8a8131b789ca4faa1fe128f1b63e4749526cd062144c33052db6622d2ad39d567dce95dccac5690b00733a8245b8bec6c8d5011ede93b4e83597c477f2a6d9aef0ccb66be47fd9c9ea964c36b8ba4f400a4589e57af3868db651e3bd6d381d44fbc3619cfbc734d4b7675a3184aced6a10ea7ec2b4141e2dc278740acba7cbf30928d308dca655cc650bd904f8f376521463b6878445523a4c14097abe641c9828867200837add8d2404b0e2c5990e0497a1109a084b23fa1b50957fb1e641c85b0c27ed41d72df2aa0315c8bfc2a99a07cd9053684329d0947122b36a21bd58b1e9da5d1a9ed51dc874a322f9182c4c0ebe45667329c297dc3afe0091c68d21684be8d1b4158dbd6c2ea61f613f601a3e243a405b7cdedd4791182d534700a703544155e8bbfb1f6636761243d0aae061bf36c2816246459348a4a936803908cec49ab0c99539708370c4fced993945bbfe285ffce2a2127013b7551815651833f90cd5e191495dfec67986a69ca618a0116896a21a6f619c2f95dbacdd90f7b7a4da699afa33b706ab2500adf3792743553bf1b4975692a460bc5827fe02944b8143983b8d67cef717cfa2a29d5bd9fbf75ef8a7e18348c45459ce840327a711a460409a5336e25c2a068b92997b7eb08a01798931905aa7f209c29b5e2260eef233381238e0b8581213df01e0c4b0982ffac022db9bef159087fd18e8345379402fe3de7a47c81d6269c02fcf2a256bf1e2830c7186e432263043f4b97da00afeb5eb222eb81b711a61105a01cdb9fe99734d29d8b33594fb8eea33040522ab81cd91f8dca3ac81d6d27b1155e0724676b8e0976b42a9a155f8dce60c4744f1288d7e0be4954ec7a86a540c9ef6fbb6524f2d3cdb8921cf4edc9819ca5ce52f9c0827b743e4f99057af12b10ca434e150fdd3f4c380a4fe042e1b5dd7a50c23c193237897f11da1466cd389653f3d20981d93690ca504928464401ee6362382a379e65721839873e1132d2ae78300748c954362a83b7079071a3fd44b7c7bbe8d05650ba5c76c029357391967256e882910beb60af25c1e5c311ba980384bb1bc0a9c3a6a98b78c3705ff499f5c26a041f0d23ffbcce78c1702249ac6397e531898e6960e2eccbbd88e979fbd1f06f9e7cb9ef76832d302074a343dd6dd365174bee138d3e64c63337f56332c6679850f1123a4669935559eb145e9e85a968002faec42a5627ffc0df162ff0d2c663eb25d0116c29e52cbe7c49ebc8800e0be2729bc639849a1cc2675dbd59df20efb69bab0aa5112c8081d156694326463d7b11bbc6c4f5905dac31f8cc76d4ef8a3570835788c5c6013ae63e654691218f9dcec1428c980e3b2b19df4282d5ea2d2107fe7e23c981859403d69712c8e4b352e01153bd1127751d168ab1c87c873c2c18c57a08bfb4fbee9eb2f5c339b253c70cbae54985892b0eb41fdc3f7acf0f6d5ad68732d940220447b7b310b0428a995fb6aa926024824131b791b2f2f9fa1de460ae6c98de3a56462c6086e6320511ad3935b779b5ff1006338e6ab5ccc732c1bc01e492abc86754c8f9297d0f2dc94d171e2c74a1d1b979acc54e747a818ecdbb1fabf3008940087932ccfc0feafd6bcc20c6e0a44b0c5931dac767e4890e02c050090fa16c20163e49a56ed8fc0ac11a203a5a93a25180914e31c7a4f5996411049630b429680667a30ca62baa7f962c95bc81ae2b35212939b17a4bcff987a98ce633dc13af195a137f0c65c9c93d6e2fe67688f3f6a504ab21647d37800904f197b90526d04e0454859c8c28e90114c099b1368c56fa542c2e5d8aea1ae3d20e24025d354e0981bba564ac44966098d769be14737fa9c5bd3829c1b0af22930b1abfc50f59c49180b41639903f8e88890b7178e97382310803a6148f2895ab2851122fe56110708aed51f4dd9c25376c97a0c2cd7294e412c4dc63c6e83fa9171a0436779f41561cbc3b9a39cbd9c0d7ceff33cf8974ead6c49b9952be696b0130ff9d32b2f745738dc16e9cfc72fc0f6bf164c476ab4690a5a3c94e3321669ac7d9be65ae02c639ee59b6823d5481db277b62de78c68eb281f5dbd58e1d5b22e60aff7e8854524547f6f58e51da8f69bd6d0f80ef40d414a300f350ff6bc836483e7ffea38d6c172c983d8e8e1f203a21f1c21c6cecc2714a086c94a21b64de0516c7686f6b28fa00f8a40c4db76b28d7eb19bc8b7b90140c72212f40513b9dc18e303758c0b16ba4bb1de60790752daad1bed3d0d895d1c3a882d37b6aee4f9b920c2353a0124a3510d5b07138799c73b38987ed3d2319ca02b1dcf10a82055a723f3dd1373bc9823cee2db9751642c7b6ffd279633804ec85277fb025a458dded2d0eff7c94b00ddbc95fbd1a09dea4f097ef09f1f6126342eacc77d5e047efe184a801aa2afb027e66d79e8be068d1b38a28110c303a6dea3905064ea61bfa044ba885ffb22fb44eb252ba7b6c5e20175d56c53b7d58236cea73cdec9ce76b1812cbdf1ff1c7236f04251406012837204c7b99543f2e24c85ec265db065b4e31ea3f3518ac8cef203efdf12623cace28507bd782749fe70660eb079183db8db859ce0be42011951bd490addfb5488a9c31666eff88d6378e701be08df48d288945c940929ccb5176216d0400cc30c63334a4c74523828266a78f5f127fe436f0225f3721d7e61203a0565dd59ea793d4818227271826572670c31b8bc47a620b4e71316ba88a8c6fe4cc6d45c65b4b32ea30d90fe6de9869b704d46dc0d12799b0ea4701938add58514417b30c47ede9262f27a8c778a84a69130d52093d6c3c6e012165847837218ffd1035f2fd3bdfff319b7f6e4857e418c64630f634f7c631baea21db8c6b08b7188d9fc988bfbe3e4f86190e3e4d103f12e29c6dd67462710156c3e83cea041bf4fa5352e0ecb7a0fda8539a5a462e5492b16165c1ccab21a4d9330267d1b544a890d02844524d308caae56430faf1489ac5aacb32f83d750153a3845e5a98bb40a731046a4b5e8db17eb71070d91d57fcace5cc5c0a2923d132a3b9f6d18409517e4fcdfc1fb5cf4558687a8ba9fb5462e8cebe3b1c84812478787ec19bdd8d3aec78f979ac0d59a3108683f73a5424388aeb8956ca3d69cfac73e1a263a39d6288026bf60c09c2ac6a756591ca16cd21eaad5269125e307e3dd89e04248f7981594983201da66b62f1e462be1aa9e9f03a7c8691a58544af3a095c8f818e030238dc1e933667cbe8c6802c1ec33eafec0cbbb7e4d307cd56a6c7b39406cede58aa4021ee8e88ecee255368dd347261dda2a260f8c55765861876c69da6ee644fcb7019b4909cd0d55f5a4a597c3ceafaa2fab77f59aa4a21e7595e6de0fb5f76223647c6ef34e8df26fb70fa811985299df7ce3c08d3d767a07f0eafd2dd4581d655f70b1a5d55d049871443e3fbf9f4f5cd872d3ae8b996bbd2edc829ae80c97117ab1b9e93ec252d063b1dd08d242600cd02e482c2a9ead8d34860df802aed7c7c8d821457dca2e816034c5463ba26634ca85c55875740b598a857553c5509ff630408a05ca0c1b56fbc17d1ad9a262a5fc313b3ebb47220e691b75e3bf04c5397812f4fbe0f5371b90dfa0c4b0927f7e376576a3c47c8ee7a1cd6704ec5f14bb1065e426cc3f9216946c04a2477513dd7cb279b138418f9cf7222b25553c7a47193fb2361855d39b40c6019d8c925c3d51a131436a7d4706711122d6e0a751063990859b36ed3378e32b6de39db8d54f9ae9b997f4e6ac59dc4e3ef687483552f5b4d3e486aea9d6cd2a78f2364ff0150f33556107343f20504a75016d99a52a30825f9bc07326128f5f6724253ec0c9e1ac6e14b04f11a4ca6fad3f5abb66a1f09925fedcb0b8e713d89686437dd1dcce35c67fc5b54efe03ce1c71d8f30e31ab6656d7d5cd80f6fd792e5d66638457a15f74c501d62d7390ffcae5bdc14d5296c25ce7188e6a40a52598c38b47a838f4aef0d06b908718d60779eec23087274d90a313934e30544ac06f5fb39e19addd8ee08c2b00bea0e1c2252d22b1cf141d999cba0707234d161eea024505b26960662d5408fc9a703d0dcca9d09448e58c6f26ade7c6f4f910f6c647a2bd6a8c90638a6408be1a840cbd6bdb3a86d146552b69030ffd51068b416995d01fd38a93ed51c3776465f35922c78950cc6d07a62032dc3b69727681536bb15ee9ecba3584bbd11a6ee337924cde56054fa4ea2ce4d1da87d73fa5a083dc79d66f447b31dc0c4e1debd821e8ae32e827f27005310502451536e67e429a972010289ecc45af514e2b6549a4d3e558ef26fd657b9bfd15942702c461e9fecb5a4466e182f009d7a12874bad1ce04f713366bd2ff22c96122335d97bc58fff186ac97dfdcc74f5a8608b0739fffa89b3a985dfd3b4b95f028c53240033357a3323e7e74cd3f841e8a04e86a86cb27cc79c3e36369f34ab3dce0b1f5a3b29afa3e9eb9891306132c5f8114a5c2b583168522576763a497fd0200c219574f2407c2ee8dd9764d16b252139620c4f3b5eac9778a1b9f9c6a6547844fe3f1787728c81495bc67ba5afdd94190d5202bcd13a12466233562e2dc00a1606b6f4cdcd8db3ee4f321488f7bd1d9e3d36bd585b40557b08a36364704542031bcf2877c7eb5d5e9ab0c255ed440ec1f969470235fd1382ec5a21a2a18846858609bbd9fdf8343a41f26c5f50891c4cb697c7fe4a7e625fad16ae49cfa5f1a2d4623120dd10c3adce3bce82cdc28756f9350d6d1bb689a895c24971fb7e406cd577445d39131d847a98793c9793bd1a36838750091f6d0416bafaf99184bcf11030f705ec62c6dbca1fd534cefbebc5951280b6033cf60c82bfef0b6af8017cb6642dd47a405de8c34d3c3ffdb71d3b22769ca01528d18e984d0666043e41c98a33aa21d9bae15db88de0fb3a1bb80a10c893b5313bc321f8d4bde171d04386bdeadb956353e3e6ad2543304ce1f4c01761a1efb3425145d90a7f71bdf19df762f5289dfad57d9d8bbaf34d8c36e2ff36a3a8125807e71adfe9ceb299b53a77b92da7b9729806bc167aad61ee40058eb1c5324e221954f1a2fb16ba8b0516fe3eba85ebb4a29df0437e28751da21ad30eb1131a869e04192c258137cff295dcc36135324425669ba187a9ea2963a9c0f1bd0f36fa2b6e9a690b7b1933c3cbae1043d0b4745b78cdb9e2c23c2d4ad2767a784ca3f766ec76e367e9f035a2fa40066a4d5afd87e82a94955176a6c8aa4719827c7ea86d8c9406dee6f86de0639e309c63602a9f48711bc77a5739c4fd2b6c8408f9a7a5e586bae4d2f0fb0cab6a6e53c42989464c7a1924e289e1a2d50b2d6331809dd746b171591588cad8c2fa79d27aa1556d1197deb7062833c82fe6c7d401ed76281fdce6d584213cf3b45d2c997955218880ea2744939a1497e75b3c4500c986f32e1d9e1e3954ff1d231d104dcb280f33d2253ff25817051a5970436a500e3e87f844464e913701da3a8302bd739123f830ace163f5025965ae625301b7354475fa007c417a2862425160e3e9dcd0da49e8873446e4307fc9407e5e2e648b7c745f79ace413d6f634515f704b2787f7a827d5be12e06448bbda142f7edfa20f1e95418001934904700cad6c47539ef8169a5222985f6f7c8d17b7d0bcd9695394d90fbd03806a4171af08384b83e7a51326011be84af7236caabb35dbd791f8f39678dc27e1044667e049e551121f3c71a8e4976249910066104c264f0305b93de21545b100f90eba43bc92763f7ae2bf0d2529060d5d58e8c682550bd89b95c9f9821c708e5ec824aa0c386808c2fda5dd9d7cb3aecacc2221f504f265f047989424f02a6670f1899af67e82608a5815c27cb1b176b5b560666c95ef24952be6d6ad52637ad9b9e1f09d73439d2d3d836705cdabf68932290ea0da83a8a864dd948d1e51f68a889919c9453e006c3f81ae1fe6cab77e6e1bb3aab83b93b3b1eaef5eb7e209c31c190ba8fcc35be44c66bd99733dd0a5c7ddcc056aaa97889b11f237f2264c673bdc2c8080bac66f354f166300ddc3d864ebee3835a4ca84fc02b6d950a6ea44a40296351e4a090e28d9100c219472fbe804092ad006544fbc9b3650685f485b3187540bd1bc94c5808dc84ce1cf01aa6e18140e4b14aa0fe4daa899c29b724441cf495a4f04f48dec5f8164ac009f16f9ccee9e544a183d9cd656f30f1aef7830e14d0fb24966c8ee700d49ba7b4ffb46b06cc447589d874de3864c957b6f4546c6de0ad5471e84b083cdacc91adeaac266dec6f2957196f4bf2f8ec85d01a7c8497dd2a5cd92d79f290a9c8e6942ea01ac0f8c04dd554cf4b6e2fb877226f5a2a6bf548b1aab1ae163bf819231d96071eebd2f58305bc2bc1c8ec2f689c9684e008775f1664a51cb4d68c26f17356a58e7f751bcd425b63d5f073df764bdcb36ee7dae1b5caae95567f39dd7899c21e37a9dbcd2a582efa20da08c5f78098671234113c2083ceada726da35e4604f197186b05f4bbfe5f2cbe94008066e9af73c32c0590c7f255a11e622a22d2ea7926a16ca8405cc563dccf11a637d5c5990a39796187220e5db64f1360c32ac448a1a1998a72213393e8b21a4a9a915427c07eb9d3aae7d4f9fe6198f3a8c53d5b709642abbef5a93adaaf08f2b74f88510fa66b666f4316bd8457c3e310d34255ac0d996c52a643d20b1df7eb3912fc0dcfc4ca71afd26dcc32a1a7fd0952ed9a86816aa9d376a459253351857640aee737a09ec3ee9e68f98782bc800bab475106f63c29f195f5f112c9d180bc4f886d57f03fd67a977fa1ef6d3c0c6d54c4ae28bf2ce503292822bd1be6c4a66987bc64e29ad6ccaf31c88bd68518f800282efb18c4b7df9b8faa68e97d6e1ae4855857759d33135db681002cafbf6461649a49e1963da242c70fc022d535da6ec9483358af9aa60cea549fe09486d086bae4335aaadf17ea6a6a51e3b62f06ba42f305e58c2d4b9bc2b8684b7eadbac7c32af594a9cbd9faae1a4f16035448d382326766ad4ccfede1b48d8689bfee9e2c26d9810e9f10bb29c296d047a11217189478f999ca0185c3df5981b6c25407b0915b205f10fc6a3d1d28a89e7f5ea482e3d0b24f577c67f5b5d044912cff5261bf754d1c83006330c507a585c68cefdfc1df9f4773b1d71cfd41d129165674806d0480d53eebeca6414f5f3e46e56dac39af6925f1f3bcccc2263ddac140a8446bde09a3f8296a993a4feadb5555d9f5520affa95e5138aa71a74ed0f1bcc11fee97a17541c407237c300571fc5c74d755ab7d1806464049df9e58fe3178d7cf9aeceb143d48616e4e68f9f8a232664be87134e73edaa310e531bf1e90fe8ded3c70b7f111d486c5734a53861348049101fe3fdd0121a145418eb46d982b739207d7c9ad9ba17a47d677a2875ce704a633e43ea6b0e5621e3961ca1f4e837bed9237eec762320230f2f41ab33b1db144607f8fe62b00e8ef5fd9bc529fe6e9ae53da788fc52da31d0b38f8387cc8ce7108aa59ea51c32e0a5656d9a4a090ec23fcc9b3824dbc95359e6cfb5050d987fd23ceaa020145a704f0313cc2a3b0dd4a20eb5788477c4e230a3fd0b011b8bfc786c83019a2ea7c2e37223b3a50d9825c8beeb5a1eae5ca54b2ed2e5b58ae346e652b08c8f774529f587e1f3326405b14194799003c9bd233dfa93a03c2453ff2ba3f20f5da0cd00aae5d21e785665c8c8fa3c6a3d7444fb4b11c7ce2120e72db102b2d93ad80283081a2948eb300e6333b1207cec25e4ea2a6d75f75aab4a6a4a9850babe0e3cfd7386f471c79e68fae89dcba25306d7151247e9c6698b2e760bdb15776a915cdeaa4c61d9f5868c105c7988f98e10a819458f27496d846ffcf7a88e451d2f237fce3535db0a6b51ef39624cf70c795acb6e7eb23366b280a044f4be4993cf2bcd6e8b182168372941ebfdd2de99c019b35d9753cc9fc63c198139f3f2a7cbb7420f291cd293208a138bb196d102fcf909b27fc025f856e5be737493fbf40c5c251caa9fcf5b021b5e28bf5e9ee47d976869df50d2255e6ec4ceb740e757e3ad010a6837df74292a773d83b9f35ac897ce363f395eff8af35a3986cd69807346001b89ec54fdec5cd781cb4d8a695ecfb53f5984b3bb2e6b3ede4cccfceae3974d2a10cd3b88a1947771882a233c36f19c0848198c68eac934ec8b2d03a3e78b018fb992b61acd64486517846496ea90c012b81af06451fdfaf41629a4006c10b4450123686d7e3ed251c56ecee5d1584c67fd2a3ed57dcc7f277d36aa571e7d488c7d242c7e1f41b2b003bc70ce8f3fc94bba00a64e0c3b6c3e75b4a470d22128cfbfb4e2914300155d78b63a9dc729a815398e5275bacf28ea9fc5f5027a0fe39506b32210936db174162269f9c0f4e4bddcf4080791da252c4ebf3016e084d21d4e649893010c2af0fa0a4fdd6a8270954b2f5cd99c82bc5031be29dd474ff4210c13bae2075fe32484cc7ee8c31ab360b2f2e71722a1188955163161e1cb01a01b8a2221abe1a23d3c3894bc58bbfc3153c3f84c304b313982d2f6c3c80228bb9ad600098a8c58491d403ce117e01bc04309d110d1a05ee7ff2412746e64771a1ee087a0303dcc43ce3f448c0aafe7155808e6d926e26afdec8f70f1402118628af6b6c340d0619bc715715f0ebfa0582bff939d96675a59551481c4f6d18aa20303cde3be14c89820ee7dbb66fb4f96548bb3311c4eac2b763795ddc6a0100bbc9420376c4c85c7a045fd0b8b0933e5674c5b6a6477cde82be8be4ef830a60425c03eedc3781d0a7cf0c93001f3085ea00ac66eb9199da91c47838a7a7af79ff08f9298118ebbc86af25f70045ca4be2c1d77c0fa12f4501c176c56bd8b24df35b4514c2e356d540708bbfa95f93342b5e9695b2fa5c1bdb7f0027387a5ef41aac16fb9b69c556cd5ff073dac1bcbbb2a05d3b90082aee25e01837c7f599e52e98324965c5cc8655e9082c9ea4dc04558a4c700fb69ee912b450cf14fe0489bf36b64864c34fbad2138d38aa456e6393f6b87155841499683b87058888fff16dee0da0f52b7dc7a6144e865497cf5d5de48e92e27e464b08f4aa8a9a0aa80462f7128c1476af27b989077c8cde877160314fd2237aec10c35e32204df2770195e06524de63c7172660ec0179855069934016105340e312f9ec2af3a59abb61ae44a16ee632cdfc095ef773e08bf3453f7cd283effdd52dc9f1423c6b0b1c506931717b15d407436ad96fea3c82333ca6b2eee32253a71b201cd27445333c9a27fbedcca20fd491676f8c5c3228f748cb0338194698994014d566e36285984db67a9d0df9c5b59ba0a932c42abccdc1e078f5ed3240b0bd1babb23a9b5289a045e5ce47e83fe93e83f16ff28fa08ef47e8be51e70f508e24fa31da8dde72e99ac2ae97501d491649e065d5bd51cb1a96db00685ff9cd2944113cee436df7f8cbca1903aa0891deeef3ab4e110c79426a4d711236ceb5c1cac91936fa3f22fb65902caeea481c528b902cdc9b20ec1848d09cdc6d940322c1fda4bafd09cf0e6454171204912e36742f2c603d95c279ac4629730525558992319c735d1917598118a261ffc778d15e01eff6d4cbc2645a3adcd4c59df9416f25d080bf394f6d24f664eb3e5ef8f94236d186f4926a5108326b114dfca01ab0f8f10b07f9e5023f0481af32026d24c930dac51567e808be96980f9ea270066f828b1678139bc2e2c7d4bf7d795d99363669e105232247b033d7b5faf8c375fb82bacb805d62757b04f64660f7196a8a4376b12ce0c7d0445f63f2e3d7d63ea2122a6f9aecbd3699ca62ada5c45cff9cc4127f81bfa499e20fe62a0674947100161622f99b4e93dd4704c72e4867d57374dc93546eb18e1ba025b136988119146ddc65a4b26220a2e6c764c2d4eb60fa3595402f4b2c8489e10d2c84df8cbbf24ed2e82753ae560429183fce119e4144665650f64a17a42596e6d10a6445b9dc0d4c28e306ca511a9317b0f464b855b3ab72cc989ff281e0d7f5c8207e89bc9652754cfdb32c5704152f8fb93f81118f7a27d47a5c279faa8334dcfa3a8e0b30d0cbf7b59ed88e79c2b2690a6266e2435252df66fbf1345612c4f143c2e2542071f5f1b898f3b7e61253b094c68ec8c6e8711861fefd5c1bb0ce5dc07a1e166011af12744cbaa9573572b9001a234be6e7edbeb8c20356e3214faea589380dbd5735d0cac7316a373934624d36470972987f6a45a6df3a3212938b361305ac108c99230fc8f498ef60e563a2f03358f7d58c257f0614173b9515792cdc5fa0e56a997e3b48ac5625618713fdf698ea5ebd6a7276cb9e2e98428eecc2b5c3b2e5563141001e632462cda6631bbaf0a439f8695b1515c6de52ac04ddc046c63e007f5ecafe926d31522147b804795251252085729fd2f1a7b304f4eb014414fbe71e6de0c7d8dfc41189d534e9bcf48bd9e8ed3e61d6c5dc301b89e482ae35b3296ca7e5c8f107a20e0dbab3dcc08cc3c740d865a97ef184c2390478198e0ac7f340f5d8db8570285097d3ae8e94aa51a02a977a2e3750dd285401bab01645e5e595e109f786901d2ae40c0840f424619e694e5408840a7ddf5078b4f2df442ce120225c7c248dc5323b31d67caf8433f9812077e1eb110b1d4c62769076ae996f57a62f8b25dbcc37eda76f7bd2bdf877f167180e526c1aaf10a4b7e6a858e3cacda5cd1839c1e1bcdf101173207132c99ebd520d84f48546e1c5e14b75dbfa4b22e3acdf7e4ede1c4dc7cc4c6eb230480630493db6653698b9f201ef42186b09cf6654d0395885b96e1fe1352afbbe90717bba164a9dffab907ec610d669192bd72dcc7b965ad86ecfa588bd2c64482601c3b8da90b089e155d9a6d3326b9900d88daabc3e76711a68a65ad374d183bf8485c619185fa0386f48c9e043136e98d400fdb9bcfe03c5bfb8d685bbcc07e9af66e74e2f9db52a75a3bcd88f3ef7947417158e7a7a51f33413727ef6eec4d9613ed1455026df62b47209a8a5c2f5d2a4b0d3c5dea99838e1531c29f62e7d9ae2440a47479715182d540d45524f9b0a49601b93c396903fe6fcc480df50c759f1ba8d5dcee10c8c9ac8d02ed0baa832758f7ec449022a632bd0c7b3afd444702bd35363d91c54bf891b00ee1156d91fe34259e08a1f9308d7014beca62f60da7395a56629c96b6f7e7f218f473a074cc0db546d6c4045b54b3a054d09942a02cb93cce5a498aeb31ae60383c20673986652092abee10099897d9b336854b77122c280ebb3263e03b1ed7b7d0a22db912cce60f0f8e117199b417ac86b3a6dd38255fb6102effe71b2b911286837fc13f80b61a890b1a869381724c005828448211a59959676c4333db60764fd43a47655d3a9ed7ef0459816100fe842d8f2e26a2ed0927f810b5fe0522982b4affcad0b01769ed45c31899868c92332065b62733d2feae55ac9e54d59e22668147578c15b1d750c2d76e7189224cda40799179e25e24dd83cba8cd7a1dca4c8edabef025031b67b5b015bd44c75472a9a43e084041cc22491d27a18904004f8702a46082597b1d8892770451a84fe580f905c01a467ad9e78ca9c972ac511dde1925be8896844586d389b04d96735a7a9ee2fab40b8063e4877fbc417bd37d842a58b38db27be6070834d3cbba4dd3045c4f66ea5de3f930a10b142650973ed94c6ddd3fe81d28331f672d4bac618e5741f9d5983199b7cb2ebefcc0f6672ac166d3f5011bb784c9e0c5d5b165220ce630a2d5975064b671cc21bba9da110b1546912e14e66442be8346fb62dd18962cdb601203e72132fbbf7c7db3866c1ed5d0069c9d50b49ce23e3201986edece210f359fc7b7543a7c770aa44683d9ec95527187d0deb75e6fe7c3f0d8c692deba189ec381025fe3f059bd9c535a753e7d341172898d3265c1403c1dae8bea9691a202398215ad7730e599aa656439631dfacf5649d19982d5a039f3de41c294b842829a9b3e9a17bf9d8e173ce9ff13488f2f9725d3b1d37cb47a5313822c2b3bc451966c6ae972ccfb3087fdd116b442eae2b8078fdd95fa9cc45880ce4dae03a6fd3a64b4aff71d2e4403dd20e0e105963d12938c763b9d39a1c69949e7a10d5bb9d94047cc1a4446813409e375887fb60b08b3b55a7a397776b8cc023893d59acfa139508500837de317dcd9a6b9ab0328094a0da8a0e7f32cd9d2e57031601aad69668a06eb9478e26c48c5e9f0fc4e71091037c1bd076e7f838f884fbe8e28e591af36eb0a86fef4d819534749514b77d94a9dc1fbabacb38976bda1c5e1d6afbda209ff58cfdef3a728bf03951dd8650b1893c865dbd131216ad7f85cca1fa09959db64022f99415fa55427d294c8ab2dca77113040935b6cafcf8a122233f63e3a1ea0945a2735273e13e0c80e1fc3d71fa4063b9a5210d422678898c5ed1d788103dad3e48e82c4b6e9316eab43ef80bd217feb45a898cd08c4f6716c098c97edc5872a6dc563a9f9eb41e3085cb152df60b920098f7a68714695325549dc59a634109772aca6e5bda998ac2ee1198e8101a216aa705007bab0bdd4b3ace9a57f1778c91d847e81c5b68a3af737ce72d9339d6670c4c234702b4735c1fd578eba9dc563f25a501340ae2c912ec8316a8aee37722dddf57b20c1a2e1d63ab0fb5dab6f23519e066fec41db098f0e945bfa74b975553a66814f5415ea3cdbe536e7c182df9a1ad0a8cd6e8b2a47f751fab4c2245cca8313f495aabf151b55526ea45eb087c0e703e9eefb89c6fc1b4caf659cd50fea61b9a52c69e138e34b7f0b57aa89abff994262d16b476055dca473164b992579370edc9035238449397945d2557611c99d4e25d257aacb4269c61b7c82c834a9a97f327ac9d56d16251d5497d403c464966db097440a999118743c8eba25f4dcaebd68ea19bfd3fac220f287206a6f66bb6914805559a495418037ccfa418f1e574a1eb53b9252cdb1b4a3bb120b698ff170463eb851264b3e8fdb9f2a2ad8c236e53a29e0d942ef51bb1e9b232990608ec8dba3fece2d21a25aa3426b59ed8c551a5ff121227919ccbe05c22437465e4b5eca211d86c49f2060d52e4b3a715605f9f254a244cfe0e5f2772de418013f1bb73249c902325541afaace076403e2415f6cb5c12894e3b7139eb99c9f0ed4eed40ffd2f0f0408f2bcce6da4ad0dad5e42cdf1ea498d04a6c768914e17eeb54e113274e77216797b185a9c6c6913d6685d9b6d72f8bbed5050b3a7ee770d624c45e6ab2e31b9f2d18b2552f43b565935ca610c26e1093e450bb85483df24dceceb80270aabb94946b6545e0376a2b801b34d6e4bc562c29ac1b9082b5d2edc0f00cb5628f4d2fc9b86790ad559239bbeb61b50fc8c3d7ab698f3c924181dccfcbef1cc9155f536b3d23b907f52ab96160f4ff93b0c6fe9ad927d9f14808f0fd3a7f1bc35c123259276417aed76e6d17e49b38c0e6d94eac16a3efddebf444ca461dd0de1d2b94e5202c45ed169540b71ec8ede09ba9ac0dcbea97814fe478587f7d9cefcf4b7ff55882d96302ef141d5e1b6c6341c83f2d089b6ad905a8e94176de202a01619f48884f5d443d7f842f651a9fc55e0755a5c18a6eee76d6ad4f428721fbb9cba9373aedc328c7197c77d309221a8ddf538032b2e664c54d8c9500659d92d67a864a9fd143ae1490d599c9f2ed5692dc8787a0a3d86405b5208a0ec797b03c54adb17efbd76cf4728ab018a6671f453eca4b78c81225f113397d1c2a0170885af5ada9b0ec3d6a9c0ced81e8dae6c906191b75861918b6f904210f5e0ec41de0bd4b378c5d924d86c917133694e51e64ed3783a4dd0201847183a636d656a99954c74eafef9f8d01133ba2fd17ce10ccf6329c2a05983c95661923fc86d5f0d30488575b90e40eb87438d8cdb41cc50199302075f65d58047245307252cbbebf507cddad13facf476b0a7456325c6f6140f5213ecc1bfa0c6cf531fe499cceb3496febb669af70cc02fb7d4d4e0c57d32caf6f9b996f721738b12c171c0c795972805b78675433d9bd6541a5db32c31de8607f577f8c646ea8e709f92a1f4ad64a28726f6cb4f9cbf665defdf0d85f130157b34856cc8d36e3546de1ece439160a6c8dcf486ccaa78f8bcd0fc37d6d8b961f26698e0bac8e2b46fb23a5c618437a81e7fb65eb7aa20a6f67dc69aceb60c511be0fd37bae1ef88e4ee0b75f47d3aba494452fa4475f504705a6167b41e1155c1178930c651802932061043512391a4d961a3cca4f5a620abb2239fea3470d42489444411c8abf66f5c0039428a54063980e1649a6ad79b336187b79755158832e52c61a688456b0b24caa915a4661f0d8228f549e61c329c44a387fc5b83099ec1f4e292069821f563a2295e4deebbf0274f9272bece07238fd82abc2d00788fe30b3d1093ce90dff2b8060299aa33393c9585c6c5b094782369edb67f5b673b00617085eb775c81ff0bd1ee640b44e687b259d2accf8f8e17b5f4f52cbd23c54facd6ec21f0fb2a3c79142393a351b5cb915eeac32873e83431921015b9ef33f709d5c36405b47f60d47798a789208f3d2f40590913829024bf3fc2931235a7b3ec4199dbaa0efa06f6135928e235da1648239a139206fa101b683d4a5fbdc23567f911300e4db338dd6a3011f005494c846d6d2ddf6ac1846311ba0dc3d4f7f80716fca6fb274380dc68e25b6a45bbb0ae112601b0273d5484b600516d106fc915f66134e4b058aff2dc7ffc53346189477c578390340f6d5bcfa1642eb72b887855bfe4f6a7f6fe4057d7c4d9a42307e4fedbb983a91180a6d9e731d742cc492d38076c68ba3065ff48aa71671e743c6692adb81bf0ff60ae25b834c6f988a8697d2f2df8ad672a72f49cbb6637d26d8d270f38d6969270a8ab11309e5e68a797e8460dd08bc623790231834c717208f1822d4cc4261bbe4655be41027b032684fb55b9c3949ee15197cd6b9da48727e4d64fdf1af653fa34f68ac0d0b7f3cce348546eeb51854c7a337f6059ef423d6d5f8dff6d9c8b753a1fd0747e46e78387e66ced14f68459e77cd723f5358cee3bc344e8996d061913fd48d52d1e5ae4d91564108a3a57d2bc34e31c3bd62c5b17d452c9c2ba8c98db829c5b424d115b0953e3152d53e1b26e9614515e67c2694ee7c878f05619c3673388bb98bfd0e00e290f36260496f49512aa7a9772668d0fa33e60b247b5b8b453e31d0db0601709051d07f1c89de7685a79d5d930a282b439cb4e4f94990ceda16c808731b1dcd6777a1bb84a19be6b3ef53e4005e84f62ebda976a9af62d7bbc1335e9489610841d098bf2be31098815f2fab344a35df2d062459a6359615a7ab06062cfb898b288f800acc042ffd40e7041fdc1435c78d4015b3b962e036416c39cb61841daecb842bb52464ab1263780c49b060b47e1aabf106cd6a3b223b2aeb1ddca5f3fe34959e9e2dd8dbd2cba6e5c2ecf352080cb1d1f107650d82ccd5ff953e94c45b6255ccaff7a4542f56ee17a236d00e4ab6eb041728d2a092a594bbc2314dc6f34ddf304c59a4b4a727455781f94a79236ae3fa5991cde818888da5c922cdad6376e300c6cac6288713a334d1837c61f9794569102d20653aa9824acaf404c0ca1507ec3ca4bf9f75e7b3059b4fb8325c70c530f263b399bd375fc6330f5aafed75025aa8f39b3430b024e900000000008013500cee57ffffd6bc6dd6fac6da2f939413baca50910f6f684a32c99452261fc507b48db4d6e0c76da053099a09bc09bacb4aa5506f10061059a0a55575d3cafc65c52716489ddf34d9cb592e4ef38f8215fc0104166839fe638e3b732a4dcb2bd061b59637baceaaf737ae40cb623cb56a33e9ff20b7021d7e9fb4ffe7bfcd9cc900c20a748c9c472f1dcfd7fe55a0b43656345d45b36c9400a20aa48cda262d34882a4f4a05ba3b69d86a314cb71c6201041568496376b77ea93db3740ae4c9df0b5aba8d038829d0aa63d8ba3cd18fd9c25f0029057a93b99c053d6d761e8390021de5aed2e9640baffe1f05f264dad46d3a538f8755200ac4fab897529afd3499e400120a743cf94feab7856d170705326bbd2d2bbbbc5b5f3200f9043aa67fe1c49709c413284ddb9452e90c7602a9aef339eca86e0e209c406d785b31f936c82650f231eeea702ab59c57ef014413a8b15702c9043aad9b7cb2172e2b575570638c1b29b83106ba31c68d138cc15400c104f2dec3ec4795abbc3d4124247ef239402e8116b64c4d672f251a4400b104bac4e5cebaafd356e7402a81cef07c1bd58a9440e7872957fb8e8d9b49a0e5ff8f73d9cde5aab0078824d0a55f65830b2f49d51a9048a085532ff132c9d200020994cebcead5158fdae511c8e8f905f9dca55ff0a8408038021d3b2edeaad3ca56dd8d40a68f31a3a997a3bfa46504529e3299c55cadb49d9728208b4087f9929e4fc6dad4a21481d6dab550fde29450cd2702f561774b6b197fb3ad10813c7395fda9f4e616b31c02b9ab43c3cf46dbc7630884cad62eacf0ba10e85c6a5abcec714ccf4508d49d744f4da7c5b0974220800c02a522abaf7369b8dea82090a7638da872d14020f325295bcb2ce6a8563a0101c4abbf512bd9f3df1f506a32698df97338d34a7e404aa97d5d4b2dc9d6fde9035ab97229ccfd4efce74480f001ad4dcc5f0b31a96bf33da0256d7eea39c85c00d10342ff3e86f9ce92d4922a0f88ad55fea26c1f0fe8b8ba19a6f58b7397bc03ba73da989aca4d95318a07103b203bb7184d2ae5aaaa3c12923aa054a7fafc8f1d1ac7a6035a7e92ee529b9ee7d3cc61755a56ab94789d1c501a75d6bf72f7ba336e3380c401a9a429f5247ffd3f7c38a0c4bb6c5fd89637a0634dfe7e30339f57ba01352ecb183dc55db9ccb50119958e4b57bd82b001a55d5477e9c5dd55bf025903626be3a59735cbd2e309440dc8a06b6a7bb36a789a520d206940aa952df8cb5aca581945035209d932bddd32ed2cf201e40c68414eebb4ddc50c28194eebd56fbd675599914c5c80069032a0a3eea8f5c66de9e47e6b203ddf45f56b19545d940c282d67b14b9ed45965b4550e13ac013206c48beef3ae51a59f98fa002206a4cca27aa5d46618102f5e9ec18094aedc94eed2a925ad817c01f939eaa4cff4c694f203f1027af33c8b068d7737a52ea0d4eb987b32cd5cc9cf05a479cce27195d2d9fe1690722ea76f0bb7f398d402eaf4c72cf69ef25fe96501f931968b71c13dd66db08054a9fee26be1f33cde2b20b5287d957d6c69c55cf006016205944ced1c57ad662d7d5605749c51575953dfba5c3180500125dc638e6a65e7a049d52e804c01ade35fc867bc8cf14f1940a480768dd5a8694ccbe1a3a290d03b335df24f5040afde950fbfca3fe7f5049452be496dd39ce7dce20464da6c2ac664d44c1766034813d0275ebd455fc5b32cd303081350faa29ecdb6e5da5c0bb204747a498b3fd3d123802801199bb56753f399b52c250179736642e5cbcc041024a03c8a077f559a4ff6097204d4d6ba4b2a37bb735e8a81946dd551cb4123063a6d7a0f2d9d3cb8781a06cae47e581d4ca3c776d1f0210c647059129e5e376c523918288fd9cdcf497fc0407b16333647f5a3f23627f8f805fa3f66ad6553bafe65d4872fd0e27d4c231b6deef4ffd10be446d594e9e92e4b2e8bc3072fd0a91fdbc663d22ed0925473b9b566597d9f3e7481da32176552c2930b7ee4021d4cfedde5b631712fca8f71638c1ba1f8c005e2b7b5baf3b4273798b740776bb9fcfac5b640eb16f5ca3b173f6a557dd4022d78cdcb827f0e123e6881b07539c6eb20ce0261beb9dc74763e6481d67bdf62bfd4d5ccea2316c89c7322f26a1ae5eb6a051fb040bd962edf3f26f10f1faf40bd96ee84be6426671a5720b6e49ab68bbcf04afdd10ab4c72e3bdd5c42c445b102ed253facd6bad778a755a0f5262d56dfc3b74b4a5520a5babce0af65f373cc173e52818c27cb45f59c420532d67c7709d339c5ebb933057a63cc8ee265295fa34c29d082b978962db7fcf352a440976c70a55eae49f81805f2fb45a55e9acdf910452f6b8ed31dae74638c50203e79d4a2ad8bcb9bb40f1fa0407d7a9fb9cfec9a767f0219f7d2656793c2d3ad9e40e67fe184b7aa76b05b091f9d70643eb7ea4d9713e8d25afce61834b5fa973c5cf8d8045ae86aefec1e4cfcabd6f0a10994b0d5d457a747d3e56402b9e2ab593cfe94961b317c6002ed9a3cd9c7bffc2965d2f07109b43ef1f2a877ec94a96409b4ccb67eb8ce628e25530964aa6919eb49cb6b1b52029d4b8dff66d527817ef152fdc77c75eec5e448029d5fd525efd73d9e5b2450f33f9b65ebda17540a12e8d3b25a7cf3fc39b9ec118897e5f2a9beb3159b3b0229736799a633beb15b2f7c34029df62bb30e8fdfe18311084dfaf5337df7ceea7c2c02f5b235eafb9c6d472545a05eee67d7b4d265594e22502eca174f9fcacc9e3f4420bc936a559f79e39f7b08a49eb86a31556d88944b71ef1a1f8540ffb8962fcbf24308848be3a583dc6d3c191d04326b7a878d060581fc77d7926ecbf9a4df8140880b269312aac5649f0204d2ced3b6ca3dd3623d7f409a89b854f262fadeec07e40b9b5f77f19316f36aa4e430ec0352d555d3c6b4f1071fd0fa37ead0fc3a677d3a72f8d803c2df576a516a66eb743ff480d0a4368b49c4a3471b9ff0910764dc797231d8ce6bfce0071e90af71523b5d76b6e9dcc7b841860b6c40427286e6e1e30e489d5bdef1d2cc25334de3c30ec8d0b56f315f96e97ffea8037a657554dfb24e258366c7071d50f3326b7f6a54724564e8f03107c48b5279b74b679fa585870f39205de373b6eff2d296310e28efce2a5be359e7df4f0707c49cbc971eaab324f51718467cbc015d27b5568717d5cb562928230df1e106a4ceaaf52defdd8cbbb60d68617596e46b31ed71657c94f860034a6bb17fd4e675e8fdb106b4d6728cfadbe93bb54d42424242427288f2766a40bd3cada5ea5eb949cb3fd2807c7dae05d59c8506748e2d87974b8cbd2b9d153ece8072b1a6f4ab7cf9e37bae0e1f66407df67bb59952b6ac95ca80509559e96cb264878f35d0b261bc65779e7efc020977318efe2acf5f7998e8956014226d40d97dd631297636a063107bd9ac83eaca95c81a501ef5a6d37277e15c520dc8f0b9efc1e578a931260d68cd2ba7a1a929df5d259f82031134a0050f9aaddb53ebb4e11950673aaa92d26e33205c980b0d3eae934e8d37a3a4a4c78e4f413cd9b143a40ce8f7ecac3e8b1a5bf49c84f120b206eab46cbb157f21034a9c78adc9d4bf46178a8c01a93beea3a866fbbb6c04226240ae18536dabb9353e87019d72d5acb03fd7ea491130a0555e567b4a3cc6cb38f9179090b88084e464871144be80d6b26bcfe0aab30b0de338b7e3757c49ca97a103dd20c3053770a41437010d5ef002c692931d3b3a897801a1bb1e7cc346e1df5a6cb135d97c543117d03126ad932f6b7bfc9c2d20655e2db987fa0bcd2fbe68011d746eef379cb2c077d0185d1efd44b080f8f35171a7e1b5ac8cd21103121283060949c919349087498e2686c815d0e2b76b99ff97a19702112ba0b5aa667c51fc85cdd1a17294f03051a708912a20b59c5ad2d2fff669aa44a880d4d9739a5426fdd5c429fc9a1e4ec7a45152408c8ad76def245eb4140564ec9995395fae44040aa8958ddeba46355c568b3c01193f5d2e2dbf7346bd3b01d96ab39c63f6b29d9301814813904aad4c9f25f6332b291126a046f45cf25eb9c81290724b87976a5d4735314a8a890e1dbe94fc89a18812d0f2e7903b8fb9fd62ef40240968513c8bfd69b31633f229e21041025add05f7dd7521265d709cdb1b64a4a08c123c8f18ec303941010acaf3d861a248487e49b386c811902d6af66f5da555761c520cb428cfcf952e13b69e0921063a7d47172dd39833a638ce711921c340ce66f5519efb38cea5f13cce1b428481ce57d3a6f465f559d6828130974aa588662daa7660a047a3b71a9f7535b20af9c5b28e39ca3cad7f5f20a338ed6a752b2d5d2ebd40c79551aeecf6cf09d70e9393650e478a8909f25056c79b717262c2034742311684f002195c9cdc24a754c995d9056a3378d4e9c6e5fbc6758196b4cebdf5d1e5b8e1940b74d2ab9bd962bc9a960d41082e507a5ae69b8e752b658689098e9217c2eb503910e310720bb41685e928ae6571f655445ba064a7eaa0424b6d5c2513520b9497a9b74e59ada5160ea1053ae55b6ae1a705d1dce69d59a0b3b398652566354b69f849c9ff5a59a04bcc8acd21a7954bd39ce10a89053a7e8e9b95f636618196c44d8ffec65f81f6933a777fce7c1a563a166744882b50da5e878ebca477fd3321ad40cc9ccc7d96ce64d2185620d5b3569f5bc6f4aeb19055a0a36bc7bef4abb5a8344415c820dfae7478b9c50e762ad05a4b5dff77abe1ae62210415e8cef4559a32bca437abaaaaaaaa66666666662222222222dedddddddd25600921a7409a5c599d349a78793338ced90f424c8192a6e6cf25fb7998308a19262638424a814c2d6ce6336d2ff8ea709c2b591e31180345878e12dc18e3c68d316e8c71038d1c6a676e0d21a440ea57a945ed2fb8787991411a4246812e13975ac577fe35cfe82284880299c485679bea719c437995030dc74b0c055ad5cbf712cfce11c57130aa490828d0a26eeba79631ef582242c82750f6ef7265661dc7b9209ce1259e40eca7c80b7f1b9336a413e80f57ea859fbaa8b4981c3a78987002693a6976f9d3f1b450b110b209d4cee7666cb1cd1abfd3045adf9a164ec54571d284e394f048c3848719252839f672109209644e4ab34d97d4ebda746b846002dd19734cdf736fd95f02bd1b9f3e46d3e8fa3e28845802a9cf646cb5615ebcbda908a90432336bf19a7c364bda47a6044a4f8ad362ce96cf5589e3b0a1184226812e71ca4f5e7f78e430918124d05add2af18fa752e697095276a040086aa4d1839048a0be3d7d3bee0b8184a21d1a635f687aa832870f421e815ce54a9fbdccbe9852218e40ceb7c9acd9329cc6e0a647231b813a61db52fabbe7ec2b8411880d66ae5b5b553c3c25c7a2789420d3a391850859045acfbc2ca8c9a708b48e59b3b9b02eba724d2290db1d4fc6ccdbaf5e2b0411281d35a9b815fee10d325270899043a06f3b6ee64bbdb4da771a620864cbd9335517cdfaab1c68841402e5fdfdff9230755dc2104220bffc4eb798f383402619f7c33dcba2a76a090299bfc24e79b00381d03c2dbecc722a9d6c40207d5f269d5d352242fe80f88eaa6587f9dc5f5ab80a217e40aa52daa3fda9536a1e3574e87032b60f485572ae4bf3ccaedef8b029dd4af5a536f780967e44e3aa978b8d590fe81d19d1b4ebbe661e503a9792771f5e3a71f3c4d821040f087b17b7c5d5f6e13f7a07a476193173b1b6034a68adf84c9eae035279ab0e9fc4bd0beea287103a20e59fccf8d0d41f3595c3e40625b723640ec876d5597e59922143881c90e2f25c0c5fed2de70cd5101207e49a6ed70fd39d524638a0f446d3d012cfd095a2c8e0c618bfc33711216f40e66ef1fd640ef9d3b8012de5dafecb283e87cfd521a40de8d7175d7b96e56fed900de838e7f9450f2bf3cd27216943c81a10de59302d8bd9598d66a90159a7f6b2d4a4c549fbc021240d08cf5aa2eac2bc6966d1803cd7eab5b49b5ad24a3c03ba736eec974cf766169a01e1b1334a25e6f4ebac2a0352b394fab5dfb91d7586869035501f54ccc5de6e98ff16114206c4cb7d58ed9c942b750c68ad5c7cb7af5a0c6825f794c9eeda102161406794bb99657819bffd430818d0ee2a3bc9d2f34d9714f205646ab96c5c890d7a9a3584102f203653e9b996a78dd576012936ef6d9272e5e4cf8574fc760cd902f2de940b3717d602527ce6bdfcd92ca03f0b4d7b596dab963f040be8e841f763b4ed0a0851b1ad5a7fee88cb1143ac80ae5b8f1a5b66885540786d9251e66367fd3262081510afb38717e5bf65195bb542c814d0a7b32b99b37dc3668b1642a480ceea5a56aea5cf98b40e31240ae8dfdc74d93f8c180285e550d1acc52c9e4d087902ba94163fd86ae795f58f10e20494bcd5d45a1871e51d0c6902e24c3db36b95727e5a4298806eefb42e99122fae96d44b085902ca85cf9f65ec4509214a40eb2c36868dbaedbfa1a2119204b43c2fcc6dc6cff257439080eea45afee41b3f7616c528841c01592ba772d59f20c540d6eba82f9cced9e386c440e7b7fc16f7f8f6176c02c830d0d1f5cbd1a34edec245106120958ea91d721f558b3ba281c1408beac22a51b5bb8fbf11408081967a3767fdc289ab8abf40c65cb3adbaa5dbd4f2be40671bd7a9dbb224fb49bd408ee7496f51492d9ff302e599a517af94eb6d39dd05423365232139ba4088fa78aba7ecb9fb2424b940baf428ff651d65d6318d0b74b6e793c1f4bbf8f66601e41668d793327cbaa837c99c2dd0dff32dcba76796b485af00520b94bc16b52895d42eb7faf4e8e1871628716b2f344ee7d763668132cdf02caa4871085452810cefd35acc9a57ded9bb811e1a2bd043234f7294f440d10a2a3e2aa740f889ead83a7ecce6208e941eaf4c51a99402e1eba566b45d7dccbb420a946cadf3dce516d725a11f2aa300a9880299be3bab94a5c1714e470e1e39fa72f4f0921e280b031d946425140aa8800229775b8ef9da27d0bae5b54f3275634eb10d6ec8c005154f207b4f44737cceb89975021d46b5eb74599b3565154e204c9ce7ca92b3d5f9c6714e97846414954da0955e4d42d4676e858b26505acbbdf2e2378b9fa74ca05bd4b52c223a269052b5d2e9ef05378f6ae51268a9e2e45eb697975f8e251c17d5aa2a8116b552f12ca3e9702d5202adc5d82e7cffebd7364a542681cc24f7e4a469fd26832a90843189ebbdbed4f9a7641f542281ee13cff2b7bb50709c9494e14bde0b68f08217189eecd8913ba84002a159b2cdd7515779045acade769d2f4a7576561c8150a532e95842e5e7cd541a81965ba67439ccbe75902b8c40ca69e9b5a89a259da3669545a0663788e9ffa4a1b953510462ecb4f813fbfd327a22907727cc5c66a5c15cba8208b4d4ca777c556a9f3f95c123c7490c3cc54f408317bc80846405631c3e540e81fad38246973d29f5ad560c81d896a964729b955abd0a819e5f57cfb1532a57ba129394924ca34208b4bc2a9a757c592fe6536510c856995d2afb94e5a3382bd2a0220894cbb25b899d6a19ebab040259b65149f1b93a315925ead5c9c154540081faff2cad2b6f51b9161da3f207b46ef23413aec5710e078aab80b187ef5841c50fe857dad293d83c3e1a3615f0092a7d40da46b7f96c59963d230624249fe3840c175c850f480dee1dbf94961a5c4e4efe04b550d903b2a4bacc4f8f755a46c3e4a4878941450f68c94fbf9cd3ee495f58c983cadd65bd2eca1f0f083de9f9f25aa7bfecaadc01ed29b3985239cdeb52153ba0cc356ab9853b2d2af3c642a50e689d3afeb494a7961633840a1d901a3d77eb378c380794fa89969d7c5f534a2e54e480fc5475e380f81c376679b66f734c2b7040a7d3ab59a6fa1c7bafbc012dc78ae6965e32bcaf1537a0b563e7d0a8f7dacb556903323f29ef16a3ebbabc28a1c206d4b61c55a78b2f564facac012d9e4b8bb2ea4736c4aca861a93ed6bb9534203649b9fae7455d63a982067407971e363de65bbe18a17206b4a0f265541d7c4cdbac980199e9d2efc9cffaaec44a19d0aea1ebf975ac4fd55fa1b206326a99d39458cf1d6427839baec59755275d650ce8df79615eee564aa6979b43450cc84eadd95fcd1d06849a529bbe1eb37a4c3a43050cc8f4203e2ee55af9025a7a4e2b3b262d8d497342c50b68e1847a9a1455099ba1d20584ae94ab2d6ba58cd955b8809497958e4ffd59947f7150d902d225a5b3dc2b17c5c98b09152d582e2b6f39dde9b38072496de6309eaf7db32a5840faedc62c69bd415dc654ae800c2f9eaa137aaedbca2354ac80ce31f5b4854bca055392f3f8924f2726ebaed7a85401199bc734790c535a56d1c0bd920a15109bd6948ef962cb5d17933e3654a680d2aa9f7dc636a78ff1491b2a5240ee69ae68d2dbbded49250a686d97ae637a0febb2498e921e281528a0848b5ae7a865b5ba3755a83c015d6336fa2e4b952e62132a4e4076d4f45a6fab3401d93efff91e75ec2cbd4c5278acc00a1526a03f4df8966cd9a5e52b393129e1f138524a140f3fc7631d469525203c3f6af16d5b592f6ca26ea92801254c8b99a4164e89936a2509e8a8fb622b53fa65521b630c46002a2a4840cb69daf7352e8b423d9523a0c3b3daf83193dba94da418a87bb55bd39d5c3b26065a561fb55588cf0bee28519161a094eb9cea5df8f2d4a24adc0ea504c2404b61fbb272551f5c96170cc4b876d9c2e6b6e87b0303b59af497c6a4b37097e51728e15f2b5eaad3ab853f87882fd272366e9cfda4222141e961d20bc49d8fbd2c77351b0d2fd04a657629af63a2ab05c7391e22bb400b93d14d9607859003f14e20a20bb43cd34e3f73aac2ce1288e402a5e5a43f69f184eb6c222e90f5db61e4c555633adf02294e6deaf8325e95f87520620bf46bbd2c98baaa55dad5029dd36a142f6fc9ac2dc3710e857920420ba4baa43f4b1d5f8b5bba5543641668b549b6f25099ed72c71688c802193ea7fed42d7fe92f16282d6867b9bd537674391688c00265ba2e4a993a7cbebc719cd3e1982af20ad46de9fc47392eb66ecf310c745042021157a0f3c9349b74b3fc24bb335a455a814c339d5cd6626efae0f8133d32d2701a1ca6e127ac40e6cfafec0722ab40991c17d37d7aad5fea1d37c848c10d55a0d427e93db7ba5dd4720e22a940c91efd9ce3d9bbb04205524bf35ae9942fddd6a7c3e49c0229c6637ea994d697e2c5889802d9e6726c155b27b394494a8b94021d655a9de5a031cb743aa440e7f72cc9b031b7954922a3408ec6bc65b6dda7a65122a2408b6aa347e1d14e86bc38cea90a444281f2605a7cb1e3f3a5efc4a4c4100622a04098f0175569cbb4515f4c49486e8c71e3860c5c70030534b8719810f904d29378964e6aa9c5f49a1a60caa37802dd592b5d1b9ec7c58c12e904bac5985b57eadfbd9892be070a8f1c251703114ea0b566f3d494a3f973882810d9044267f5cbc2eb281e6998a426d05a94a5e92529a5677de94c2077d76ba552ee51b9668709d46d4b53a9c4ba24c5be04da336b3ecb52e2e26e650283b62b885802b1d95d12f52c35dc9e38ce9d98a438e30a442a81788fcdd12835c9ae6d7911598eeff0a7942b39054719394e6c12e81b75792d2fb3a52b2d121249a0e5db3f6152b6c579293cbd8e04cab5d68dcaf47d9c749d94a17f82f437382c498f46cb40041248dda46c4d69662f9d7d047a34bdb98e26bf4d8d1a6f46aaf16694a8b19404c177d8893802995e8bbf8bf9d76adf7511441a81cc7c2fe7f29c5da31b23d071dfc48b408b1dd53fe9bb8f5f32452083ea9d703175d8f81a9144204cd3c7d6e5a6f7fd328c082210ff9249d339388eddc00577874096c92fddf65afa602e139ce0739c90416208e44bcdfdf14946a9451d834821d09e0531a5655debe81e1ce78e89082190bbae731a270e02fd3134bed79e6774714120f366512a2d3d2b452410c8d22ab574fbea9d258d0820509a2e977f4087ddd9ecddfdc9a7e4b814600b6e8c71e3fce45356c007113f205c9667737cac6b596ae9033aebd75ed54a7bc6d7f301a9ca76d4b3149fb4ac25b207744c25f231fbacd2fbd1035a566aadfecd0d325280d206913ca065574a9ff432cfdac47a227840ea92725bcc69517cd0ee80dc4d2eb8caa826971233528e1e76296207b476e5fa9a54fa2b77eb808cb227a597966f6e9f0ee878e15f67facb1c903fffa29b03113920b3f0d0b235a54ce6380ec8cfddfc97c35cccdd9281081cd05a8c795f18d5fcda1b1ce7520e1dcb193d44de8070396ab92ee77ba945358e732538128f335c874943c40de8041c38f881b40f241a52e0fb97e7f2bd010a20092fc94520a5a09c71528000a8b17c40010048413983060408c097e16794c1c37520400028270978010002a002062c400428397ab80202700800a0a02c24041080a7b8222940003cc595c909c9010030001b0938f9123392a7a094942c000001003900b2e46639be6bd0d2eaa30994d216713d9ec74c8b6702b5d91e9a2d356d676d60a25352ece9b8bbe377181b9778344c76ecf81d07b061892c41808d4a207cf39618d7a74d6c18c761bc33f076fc49091a395489ea4be191235178e44839791d397aec304933b04109357a4c2273a428931d6748a2c78e1489cc9172820345474949026c402273a4e8c081e2252509b0f1889447d9f13b0c60c3119923058d1cea8c929204d868045263d8d66c4a2d0b3a3202757eab6a850739ad5a16815631a9b3c713e2dfbb2250aa573fb91c6b1b89406bf4a46388c8bbd6923610814ceeee2eb8b668a67f1b87406e8cbf8c9baae7e46908645c9bd3ab1fd7d56ca310a88d9ae5de0c278310e8745246a96539d918046a47b5e8e7f81f654ae138771283efa10619ba091b8240f777ceac1b9bf329591794c0043170410a6c0402a1aacc834b59d2445d40a05d34a9a56bedc2c3be3fa03e8a7ff3ce0f8897c5a3d894ef79f6b2d107a4aa6d516b4dfabb4dca07e4c7a6ab8e9e9bc7b46cec012d7ea89b1e7539b352d9d0033ae7e48a5bb1d15d72d9c803e2652534e98ed2ec7578409ac9664e8dbafc5d7740aad49c37b868bf2b653ba05f9d6bcf2c5b0784e8e95c7dba2ddc63b34107647d7996e5a032c87c3b07d4cb5fdb92702944b38c1cd05a92a5b52b6de2b334e380ecce2b9ec67638a02529b396e3cb2ef30de854759eaf0575d7ad73035aa35cb9ef4adf06c4cbce2eabba8c4aa3870de8175d5eef0fb25b2a5e037a7596f5699bee63ead85003d2654cc66b71a56693d94803c255c9f1ce4ab36bae6da001291b362ad3a8b2ae25cf8050dd5a9516f3edd2d20c481db3ea19c734b82c995906f4cebea969bffdf83f730d6497ec589fb42603c2cbc36739b398cc3120c64d8b3dbb392ac32906a49f9a3ee57a4d9d92c90c035a8b0fb39ecf85041b604046b1cdb2fa559dd365d9f802ea5f8c592d6ac9a4ccb50d2fa0b376e1f3c32b116d7401bdb2f3e78ad755def756c1061710bfb57134f3c7bc5c2bd8d8024a4abd2eaa1dfded571b5a4069c699b695518a75251b5940ea76e19f25dbf3cf8c136c6001e539c7175c5c4f4fdf36ae8016b59812d33aad8052b29fe356fe2aa0eb5f683e2da8de6b6f830a087be955ffd6497731b525c7c3c6143a552ea20d29a0e567a56d9d0ea3a2411b51408f7bce3eb13a6f44b4010574776733e5edf2267d3594890972d87802baa3da181d369c801667f64fdbb65ec34bda680232dbdb7bfceb5913ab0d2620d565d3679bd3c612902ffafea2f2e7758eda5002f23c6df5a56a49024a9d660ff7b37bb53a12d0624da5fe7d59462d6fe30808d997a53f95a76d432b064ae7d6651bce63f46fa5f030395925e788817c9765bb0e0d318781965a6e5a32db36c240984ad74e6e2e1f3423033346828158ad4a9ce997a9334a0103d92545be736fed578ce31c0f131e252839cc99fd0299c5a86547bd746b19e30c467c81d4fb5a4c97efb4ae32477a81d2fb2557b7bb4b261e8ef0c2eeecff2ed0d2645dd692a32e50ab45ddef2d917b17cf05caa3d6182735a9fa1cc5716e6530820bb4abf9ef96659692ed8fdc02b9bbf2cb05cdd37bd316e8973ab34a2d69f52734b540c99decf0ba7af58697344cc6202149c3e4e4648416a817578b9942b59efd9659a0fba5d5ad49cbb296d52f0bb4fe8fab84cb2c75e934120bf4dde79cb4493b99c5e0082c502f371f75a38c71e133f20a47b6b5f3472f5d81fc98857b93e15dfe8f49465a818ef9b596534fcba4b4560823ac406af933cbb676f97db755a0740eae7fdb1e464ba70ad476ba54d5c94eeca85281ba5732ce366e74560915a897c57f7157d6e7ddf42990bae9a5550d1bd5be9629d01973bc18f7351c8c94025db2e4d59f6ee76c2205e2f4eeea9794314fb2915120378ba5e161fef57d140552e58ea6f012a249df9150a065e1c15b103b296fa5658c80029d31beb67369fc09b4b82f5df8e6562fa6968e2f393129e9e13bee4a30e209f48d8d7f6e9764ce5ea1f876ca8e35d209e49b14f7a8768f7002a9e50b72633acb1b73a294a4a098e028593c68641348f37c5a3227a9ce6ed6043257d7251734ed6f4e473281d44998b9adb447308196e3ced55cecd9d8d92590528a93fa499b2c8176b5d5e89aca4aa05f8eeb5a7c25340bdb1aa1045ac72badbb25cf24505a520b2ec6bf9240ebc7f8b2d33ca78b7f24d072c73eed63f7bcfe20817acd589f75ba6062ff9147a085ea7a59cb52c6116839ea2d219e9478a411a82de1c2b6beed6eea19812e5f4f2b54a75b8fd91a616411a84f9af3ed8b9cca091d45a537441851046ade93fa8d61b5fca4339208f4aace6ab351a8a89b2388409fd6c95f5e7b789e8784240a238740cbb9c4bb9215cdbec133460c81164c36eab1f1a464d06c0d2385408b2da979fa55526a99b6618410695966d6ba8d492b8c0c022d465d7a63d4eaf65f7bca302208c47bb6694cdd2f8e66212161c24820d06ee267c3e4e56c368d310208d4cbd8e2b87c196f637f40a90b2fedb3d8dec96e3fa04c8b4f9754b60c6a5a2e3d0a19237d4049f9b1fd5ed21a7506834f41791e255a18e183c96529ff73343ab207649c1d0f9ba496e2753b4e4c50b0e3c4648de80129fe2ddebcd47963ed913c20b32895b88eee377fb294113ca034cbb76fa65dd2b79e1446ee80d2ad633a2d37ca2ce7a5b80c484870a4a48cd801d992c9d997b743c27540fc9d7e318eaf4e9dbe931494a60352679fd7e2dcbee89a1a99c38d11394c60240e70e0c0c81b3430e206846c4caae146367e35d206352830c2864f3c4c2230b286098ca8012d06933ada69df9c96bdc78da401458d37a302236840f91c397a94a0022367302366b8315206909135909ac374cab7ffb8bb92610c0f1811434965240c1a1801038f7ca101235e2891c0481750505e470446b88038d339657e9999b6cfc816d0f2638f66dd98a6be1486112da053a650cd518b2e4fab47b2103282852b20b37bd417dce5c6eee90a2356a88c5421c5c4e46401235450e3cdc0c0c81476440a298f12859111288c8c3c01078ae3b0c088132e30d2841126406064094a1849c2081250768c1cc16439a0520c94141e8fc613c303956120366919b365a5ff5aee4b78ac921d289e46c9a7f8490a4aa6092ac288402518c0c840e51718a8f8c2535c95f030c9d14303955e20336759cb397cdbafec547881e214a8ec4202155da09c98a4a098a88001955c54a0820b94fdfd9dfecb9c3699e2af8c9fa0f493cfaedc02a93673eca8ec7447a5f43c722c7bb628e940a51628b440c992fa5eeab328d5bc59a095c798e5df13dfa465a2509105052ab17840051648f55837b631e2aa3e222aaf288140c515280ea8b4026ddaedae3dd3a5175d0d12920a2b5027567a382dce4bfbf238ce9d7c1eab71c227a8ac022dd635ec26f9e038b73da8048d6fa844d2452251200e87a2308862000423a70705631200001014120cc602f2704428d5d5f5011400054c3428524832242e20180b4b23a1401c108602a140208682208a622006c260a864155d006e55ade4417e41d101be68cb08ed4e2a341febc9f2540a5888956cad5172244b23f468f5708fdc5fa11e7529d04673bb0a074d5be6a5e3bbcffb8361ac6d394b5bdb6b1284c684d8f427d6f1bf910f10e88d779c5ef3232d1347503075eda15cff437c3d23a3fb44479675a9b74910537d0929a7a2481033403a1c541068751eaafe2778e8e2ecc855a472f192358ba5b310523d4143415a59133331e160b8daee59e429a994b71cc2d278f542a4c6ba1ac584bbc87111794c59e172ab57f459ab08d0ed0246a27b32d19b28326d4cf731d604d1fe0d0cb5295b531bc08171da508d9ba85f4640551373041a451d60a54f1b47a68732a8aef3a3a5e8a02d01cb0ffa5982944c7b11530e74ae79a0354aac968739047b1b52c2dc9067abd72f98ca5b7d236ce2623ddaa53a2c41b1a981d636b467a0b0abaa5f6a5ed333d5be05d758e3f0a31bfef598cd60ef2387500c5e1ba4938469d5072afe2433e0f84d1b5036d2f07e44c83e1ae762d62202f6a66f95f2c8c9463a2d626dbc822556f4f921cdbceb3d5a493cfaa3241f28ba884d60a110b0e4ce8c6ae2bfda3cdf4d7ca4d320983906c24b23e00a152c1e489605a3af0211b46662b2157b664fd1480bd9e58e3f00c58ee3aa50b05a4e8ba0f1a046b6b6e3ebba0cf4369077f95ec543267722ec3a32317cefeb4e2eb3d1252f4ab409b4dfa82b6ee1a734e4a2c70de43b8a6693d0eb8ace020aab36620aaecf452123547ca1cc13b4869bd4e6922c6aa65ff429f3c8df9e46ba18270a5cca75d3e60a8cbf9dfd86dc732351582248950de6cfd9b10149990835c33565c85c6310aadcf14cd3b52b919d0285554265c41af75d42586dde5e347f17dfb991e7106c626ed2ced717354800808a37c3a07130e22284013d7cd17a81f569b309532099e566b064fa706fde43cd646f068b2e9b643f123131e018b19f0587e68f88ff240a9a02ce63d0a835a26d02701d56e5547693d56ed25735e9d26572d40b3064ff2b7e2b2fd87112ebd7d57ca301598586e8e93c6dd76a8a8708190d60f393c770c4995e7c4bf96491b9e59ecb44e992d2d606cb87b9aca956c8937627c4bae36267be44b25f3c4d5985496db89231d2b8db92ea7dd06bba7a46b846336c4ad4187622b712a40b496e8843052cab6ab0b10dd206cb8484f4eb02bf20614c58a449994417a9547ce00099c9d2a64ef80ae6a07e26c154c715a7ff80996b206eb416bcbd01f542bb4cf6a1ba68a0535772bed7ec8bd34f3bdd9036645ea33490e8ed704f7ee52de9d5b6483605de86424a8c9b95f9c3b90ec317a437a9b32b12a4e8d88092b68f7b32db2fb3f9dbd77c5be3524c89efb2bbcc949ea19de8b5d5442c6f0fbffaedd5fd06dec5f5a91b1bc2a1456b1ad5a6d1b44c34f286999af3d9c23f8d68d4b55114b8f99af5f3169ea0b98c8642dd19e9bb528370b3f5100098f632ecfd64eaaae56296581a8c7a14bccddffb0aff519a197f3d224a116fcdbfdc5ec96f66b4b2fe985cca65e1742e380329ec95e966fc6604b4ec1b0ed3d66680fb55ac927022c572edd8fdb1b8d56801b0a3ad7d036c68d2eda2e3c6f06b0ab02a773dca9d0c3d03ece7f5749ba0e276ffeb69036ce1e3901fad9892ba73f870186cc30013e63b480dc9626515bf8313835777ed8434ecedf4ac0ce90fa00f439671897ea6f56c6d8efcdefb08607b03143c49c2f13bf5811723ecc8567eea54ad3c6c503db8c98fe11cfd810b4f64b43fe8e4f0c74cd4813095e17d8527b0ca505ddc9943dc1ac15e3bf8024011b6aa35c0cc3f4194b17773e741221e3c0b500899dd6febc15a94abc368d52ae15fbbd5b700b42713108ffeb9f1d22a1177f5de4acfbdd5eb98e9935bf1a3cbad614b4069798f86d8735f3ef7a1ed1cf73f9b7b846d645036ef929c2e46e01d99cbcd47e3ca3ec9cb589bb13984fdf9a1b409d4fada0c09927bcff4f2316bd3b060f35d432ade666e7881dc64b12677f35475f545b9ed3038cbf6b397cd422b04fabfe3393e56901d21108a8f9ba5edeb50d102f27515f3a3779b0537244f6b79f28d61768b3e67ede01d5c262f5e4bad414682bb0af7d0162f9bb7e9a2da0362f2e8e091825fe9da3fc8459048b21e7e92ecd33da4007b5c7ca08ff6aa08fbdcb4a4db5b5c54ac55d8fb7524716019d85c5b20a48098bd0c497f9a2538815e70926cc2d032220b8a9c1c952033c8b3008192a830e31d668434348e6f62974fd27cbc598ac8eb250cf4c152f89d709b086bc5eda68202769a544218f1ceb3d4dbf8aa31d4d851ef3cd8693f378d7ff9ae7823528a54416d5b58f0b871c802989c5ed407cab85aab17402875c116149c059442de321af6e8841ccc9f1aab46f86f368571130aa587c8af69bb7de7fd1ea682794309e32adf0be330e1cc5c617d1fe12434adb8ec68a98ab7bfe19fa57ff18bb5918e694ba0bf3d8a5cba0d82cefd96452526bf3a94bbb7f50db1939ccbdb0581b01a4d613e8a7d08519dcf5a890e71d58e99058c9e674b9310c0262d70825f582bb4ed40aa082c9d07f925cf9f5da122bf7d672e75e28b4e08b9053784f0b2f3cbeac0e020fe91161a73df72a4960cb7e70bf51ec10a6dd06c27656da5ed8d9c68fc7c82c85a2f1fcf128d769d313727158a5a933fd602bf5c850a4d13430be7f7254a39c37304f12224a29e968bcfea9c2b833e27579390652c5a1c1a2e4242bdf13be4982da430ed61667a239b2b60198b6fd3960e1543e4f7ed3c28e5fc1eb4bd25f56157748610a19cb04d44d236bfce13524d2056a235649b045176a187d892ec1497428cb0854141bc160c435485a45ebd19c719a26c41ad0b4144497b4848f5830b366c0e544d70e205b62809a986ac3cf7a431e1c02214e1b8859a02bdec90283a21a34266772f2c236aa8b054f64bbdae8812da0b3662d42c7e30c0912e49d1b0dd256f5be588bc2f9d8bcf1b34cccca159aae08c86e6d3908a7d25164d5afe809109a8357d056a61ad7cce4ec8c431d792326de5314aae16b1a8af298ec6a806c79a42344b7f3c59142404e40d5898ce3191bfc5dfaa49e59830158ef8442f6d1f45d43beeb4c61d259f3f1784fdb0920cd22407a1984253d0447c957e9097c28d9420a38f4bcf569cfb163ba8e47f190faefc6ffbc5a1b7b3e9018660e56b4fbc447a5e57b256c36a442c0f0fee12e14db4fabc63314194632729d32a5ad8aca32215c8ed48e7706d67cfcb93963328aa0c41b43efc7c431e4800177baaf540ced6e53ac9c309ad9a4925787b05ff37877f06704e78cca3c528f51b76a385fc03a50b53ef2dea6e4d23e1dbcbe90fc83247d34d79bbd70c2dd9a1e001c20e824514efee58286092fa682121854e9202e0df753434a748e8d75a7eca32fe7f47f093bb302bf6b74f55c94f3033d95fc25d2a5807c94e804b1d099a0f4209a0ba0250a09e6289ff1823cc64027cd959fc1aa764eeecea58f7388e78c7056938a45384c7b8481dc3f7946e98c5e2fa6cc98252e63343f324cb487b2ed495d912092a8e34aa8e2d5dc46b4902dd0999bde8e699089b0915f54327c89a2b054c5ca144f5edc58ac7b82152904390167bc06bbe6b5d5579d71975013545f00d11d29f219e7d70ebcc568904185f4a8f9c60b3fdbc846ad37ca549d4af0a42584ee9e0c159a95fde76026667d5db5ac4439a7eec677f7c94c5898e3b98bb4ff45d8c6b6e8a837af41511f49b8bca8b58d483e202ea537dd126f532fa17508121c255824e7d3103570b0b6e1b5b905ecbff12eb3a69ef3508791704e2d9ed5771d7498120028854f48b085780b765a9635bc02cc7c857048e8203ee3beeb24682e6cade59f1a516a8834f18726b8728b7ea94c641491e8ce4fd6ca27327d391daf537d39ab594402993fb3f48a215d62cab67aa00ae0f37da9f14891c85186ce0af2c43dc9c64d6efb298e1ffc309e668f610273905f6b2b4c6c66e5deb23121f266f3a041a5501cd87129113fdf26053cc003429bc13689f7c3ea49d55502b3cb60067b5f64691443f466ca2260a70795096bdc39363e91a70cad32ce14bbf8442069684f78c88ad3cea20c2019936e21f101bfc0060422351dc5b6cc8a98564b56e8e5c06281e0b12d4b074b981e422e4c42fa459f45555b297e70a199413d2f3850d4106710e8fb00757f13b924ada4a1b53b4ca8dd61952523bf9122c998007e2816bcf55f43073f94e9628f81c106047f72cf60008f3b6079b4330aa2a026ce2c6f90051769b426bde644d60d09b9dc3875c3bd2a7c1392ce6d94b97fb07238c19a4240964d84421d2b3e83a1996811d26c7e948722a4dc31861fe5111d6fa02c73d82f89f2c25bb5dc01b27708b5209e998b40f316bb6dc7a7f47f206b526ac3bd24ebedcf6b1132febdecb1102015df8ce0451483dae9e121522b5b4de55b5f17f3f32a70a842a7daf3e1c08b79e344f0749e6529ec67bbd96cca0f6124da5dce7c048703ea524ee8de595ad0926eb549f31316a075078591f8b2131785cbd85067d80d268b653a125d39448dac3650b1fe1b3fd15ba87bbebab1298ac1adeec17ffe7ce738b7d931d4f733b4a7dbc8151cf3da6a9fd52e0480969b8a1078237c4cfe46ab665759d5c5e3898a53a091b9be33d07a12c2f557f213d497f35bf25cc3fe787b6ed511333358ece0a6d1dba56b4f3691787a6833c51b28cb2ab807a736d475572eb776752424142afba480c94b381c0b3af3feb8eeb2048f83eea59844686390ef221c6a5fd7bbb2641063b801f3b462ad52f1eb9afdc08b2616c642859f53c9927edf25aa82beca5951439f29553758bd962d20466277851f7b44961148b7caf2c95479f965ce2abeff019272471222ef5d9d7a67c36e1bcbaa519e33b498c0ac3bac3015aeb63830dd489ae9d243a680bbf8043988f591b82be0ebaede1588115ffa917bf3f082ae04b6742fb9ab03de06406701f9083e20e7e86fc3d090f704035dbe3d04ce3374cffb9d13f97f9de563bb4571c435e34b5ced9fd60469f5a0ac53b3d0e3e4bc6f30657ca2c005c3d95ac15df3394ae28f310035fda92ab0be1cfe640665ad6b735a90da7e3c9f9508310cf34dc00d8231e70c230574bf2ed6a961e7ffe275380d555bfdbe76d765a3f9cd35a1dbb3f86fbc0aec8efe71b675feb0fd4a1cdc22f9d138f18fc9b1de9338d45cad54cf58b14c84a0b5be281e017afba8152cafc3ae0be8bb46a248d74cc7ca37082a1ad302d81d61240c5ba77c0903e36a0f2b4f736890f81febe841a7c78999fa2c03f343ac5badb4997181ed8e283c29e9335c8d9851d24741ddbc2e82716ec43a9dde99c0c238804fac81a0d91cf522312beeba078053f2e577627c18ce73b2a0164837729b02c11267399b203c96e54276289e28a912362c255419fe391e9fc65b2701c95538de10b1a6655e53400aa3329694da04fc561dae535493f016a8b4e64fe89320750b057757dd30cdb332a815fee349398f9bf0f20bd9c8750df367eadd2de628ac02f1a4635ffec925232a8dbc1454a850ad183c60a301af9ebbdc99f884f6a7d160bc43841577b9996821ab078327f81edede65aa37387f0032a0782a8bfbd30802feceaea32d703d8992a802a8707301d234a346fecf76601ef066f6f40714e4c9c9576da9047ca8344015eea17268240589b86e55269a5b87e7fcf2fa87064b0dac44551e789adee01aef7709d43e7a99459e4e8017c00ed086e5c8e897843e006c89232ec132c28bd42ee5e90c280e317a7e67a7bf9f88e5cd650038389f978d468542f52a213c86f74c279eb107364786e268ed9438a6e99f82ed44f5e955a73e50260fa5ae91f3cb746071aeaac06e714909164a6f7dccbb96d080568a37358f85ce24f6f1e94c8c5e92f30458899c6d5e4f093133af566b7677624434c74a2722b39f018a3aa9610595d72e2fbeec95ccc80b9d8729a4d459dcebab514041b0c234415b4e155b7e8c7da200234216e04d1da8ff6def00ab93205bfd1579ba88194bb387844b7349bd5adaaa4845d1b2ff7e548ba85158c18fb23c052e97c6fc2607d45aaca7da05f16b99063086708dbb66559644851479bba0c131ad2ae8c69f8f0369de1ef57141b0912eefc82d938f08a743e992baad0b1443174dca1346e0b2310405d17913bc898658b564ecb33b62f29919be24852f5d5b38ac95a617188528ca285399936af97957a6673e80cb3324191e0c8b28323da7678dd3965f66ed250904799eea3c6e9e351151dad907ed025004fdb2832a689e008e65b5878b6c11b02848fa49f1b46d39f0eacaf71d439a9d42646e3b4388dbb3ed0c18e7619ff305eb5186d3c37f4920069ccb8c979e641a09553f9f685de6539b56594c4178f32b8696d2b4a2e447db8131024f84b640a39f1051ea5a4eda5af495338b3ff2b040374725b6395f9631397d8e29575146d07940ab89a3a1cef42617d023841f83a60169e03225d96fb62f9b24ca1a4ddf3f452e7e6ea2b94070e851b5e1310979c43d50a5c569f8fc46a9a9adc580c05ea6e3b59da984121603f3e4d14378079301f04923f8126ed8df961e70e20664812ee6329699ef9f8b7ae42140688c75500214d889e0422d2340627bf3e0b7626ae0295f24613b5e0442162f5e79b9ebf8694bf16b46a8e7603405254bf06af40557e98f82ec13fddc62a704405b075edf9eaa8c44c08268f375698d01ed5b65b5533001555638ece725d4b0e0c20fd0336e7332d3a50755663cf0b99e66748aa740d580d52a5a72d5e8462b903ea70a0f7f76a437dbc016eb0dc7d9fa4a2d538a1da8b501be19417eec6734fc34f4d0f1fe8d0b53597dcb55ea494dc1401000154cf1c90e9735db8a61d79604713c6039574c53cc27963f8850664778822eab40128e575c7fe22d41439e69ba36c1888bc545dd815a230cfa0d40b84d05bfc67aa861a41c2eaf59b8488c1a69e5c1ec23143010684d55493fe0503cd0db2cc79e7cb299006f5bc0069deccd3a92aec98457e589b91680004ef5e06d0dfa42fec72c1a4ec3a7a48e9ecb129939d2b49a77d1796368ba21fe021065b769fc9978fa793efda463843a4bda1c2e8a1e9382e13b0d36b3f7d56496e9e4c89157262f7fc389f39e21a5de7d9f7021e103c3471afd4e17bd11bc30cdb60c80e97725c40d5635c0a4aa2ebfe53f2394be180cef29ad8b559759682d861ff5c41c0e7954913d889fe805337ca8676842c56c85fea794651ed532535e83935f0f75ff1271c52793788e86159a2e07c74fef4c40f350ee1cf8f942cb05f507a8e7767f8ffc44919c5f8f9ee1168441f4051c63093245f88a8fd563129a79a5dc7fa06fcb77b85061a355000cbe5c351a4cce9e34f3c2fd5ccea79e84e0fbb1161e6f4d8c8a1141514720f7c54c93dabc799816ffa079598515f91f5045f632c1c21da710ffc0098e00da53293242baeebe609a11c0e3abce1f82a4b3904d4bfce6ed43a5f3e173cf3afadeccc6ced295c201dc3c7bab45229a59469e7023703509c518558bcc8924ae6a9fcb2af2c4bd9e4e44e744b2f60a11ea5379f760dae7ac94887f36c8a19f1ed733c1db298633c03d26b2ff2b93b14111723a469ef82c9772ac8610d0a51a3497cf8593622534b906ae4120b9fd800434a3a30af418df01f31e6f3a3c366bf0a94f86ff5cc7191d9144d9f9fef52a2407171391bbcabd04260d3f8b7105bb6074704308559ef8aad2f39ebb4266b9ee1531812f246dbc312a2e52534386bd1ecb89b08c391ed7eab44c2d65d719f175d6ca1428295fa0d3476883872170450b99f9a35ba87c4693cdf47824611528de5466b7587f5437c63e886afba563cb41e08adcb09ea230adeb848838c8175602a48045b42d7df0f9cb652ced3e6d85d647a33c7842ee6bdc43a26080886f35f59c3c306cc221389490df00c82a01d059de097176f840c668cb74626e7b71bdeecb813eb5416db0b5c938642930f0b38e581b28d41741c1a60d68e945544415019b910984036bfcd014d346cac476f06819ce10cb48f879d728c19af7b68b939f0659576988c52982d9d2e8ab4a473e8bffc5b2883a5cf869da28c4623b973eb421372596fdafc010aef9dc84212b2289c11bf7fb6224175e6a96211ed56c6905427f00ef51e180f9b17f2222a22c2c07b8787c39b1b2b6812f423176fec51ed633d19e56bf34b45e1b1f2ef5b7ad2d4000f92d2e8d1473a3bc0a1c074363d5856db0c4aa4dfdb5e637ac12f48a03eca919dab25965028d77ad2cd01f511854802cf1c0f21d2bb081cff7f8e756a81cd20aa596e4335ba990aafdfff3eb1696b354a9b752904ec4aafb5c3587974cd501faef8e2a5195a76b59cc6b00cddb095c8d6d72d1b06dc8b601961e7a6d66575e885a03b0082da11caf578a3637bf4d61e10afc7b4e4b1b5375962efaa475311f266da9bacb177d1a3a90c7113ec4dc698bbefc1d487b8f976267fccddf7602af320a0cd833c3b0f62ff3c68197a9078f4205fd2836a480b4804a6415a5b78454faaed021ab21d82b9f0f8c6920ecc0e7a4e389bb9ce74344f0176c6ba50e926ccf5131de2e21f66bb0d1aa58d998d48d35e357b3a856e14f20c24082d51a5065a8534bd422101df82b854252972721d16d01315d68196a16394d5ad9843081d84e8744700482896a719776b99ea4afd89313896cfeffe34efe7d2e307969083a93b61c56c9cd139d34274a1a9b28cfca5c6e37dff6e013509b7d570d4d5e06aed440f938b7c83c349cc1b100374fc91542ba44f10fba9530eb0e701c70e30c51420316a534259cb6a87a19249b5a590682d7e502639e36f58a75133da6cd53f210b71f4807c19ca50c6c02aea103ab516929db7f0c3c262089bd471e4ef5cc18286977adea0766d569b7e81f959aed86d27c4825722cf98e255c14accf73f601ab7a4a6f0f3fe14ff26db90ae64ce8019484208eed4b58c767fc3eabca251bb1220e887efced8fb456968450370a55c94c20ebe0fc0f714ff68cbf849ef6d139804d1b4bedf655eff4e2abda5881e71388b4035ec7805c6f911cb476923ade0aa5c4e4dd8dc850aa046893f97e199e48b5e6840df9a746321f2889b2b8611608cfe923e3007f9dbf30aa1f9ffb991460e59504026350c6448cdccc4041a9ad3e4f5f25084fd278e8609ea437b43ccc1b37c665efe2092f34c0248727d6d2344a0a9d4357253092c0df339a3b157991384d88179070345a9e0d3ae0a939314274426e5350ba1adbe2709513029bab6b312749c6072a2a7602612975522a57d77db684b4c8d8ec9f1002558bcad6b653044d2979d498f40e014e1de1fccae17da24c58d17ce001c23d939df10e21ee06b0cba50e6a6e6ab2d878f8f54ba932875469b64ea50482a318668904969ef7ac3c9d8fa8dd881109af81cd50d45fbd0cfbe23be082991fad8b3148df92dd1f13274fd688610c62f6938dce7333a0f842cc901f30c2754a9e3913e8cf1a1d42f8303f1b9f734a0fad070a057d84adb6bdce777d065c4e070550b7b2af62fe75a318ae809ab2daa2a5832f51747deab914b702a6dc61f98f7805b99f58a02156d4a6f3b0338ea898c51dbae7edd2649b6e91d3ab6110af7febce7a0762092032bcc2ddb3e0a45cddfef60ccef1786ddec06701fa87be5fd24f8dbd9459a16033ab25f8b83ba8277378ef7ade7a05c9898ed4cbd98e0476d10da5746d19c63cd608807be4e160f7e361c71ede77735d06052f1bec6a67908eda259a6bee06b995e07cc080a8baa0339661d81431fbf7d6db24320f1bcf0154175d7918ecf2766cdb8bdb3a24d3cdf47ccc7cdd26926eac954c96cd333d92fa457628f4d5f831b71d0f0e976362e44b3f05a537643ee022858384a38b26a0f094da6a7dff3f0d7c095f7370823be58e7d98f3c555121037476f06dfb953a4e6ec52ffae1b98d2c905e2828b0a03f1138c9070e5f82e628b2489e5c11c07a383c3865a65014af67883754974120e9da67ffcd6b41014c00465e03c022c269e6e136643f4add6e74f4b3d9e2a9eed720beed544c39275ce600127d212e934afe80e61edd98a5b5566195863a818072d732ce4ef4df4b67857770af606a0a3de84efd48add9e7f9587360566d15a94d6ea3a4c34a557f9b66bcf2423e246b84aea72decf2557a09c5548a35ec4d98aaa436ebb59758911dcf04c4fcf4e3db0dfea89b22a9889d2fab5050b4d7d323097c248a13041491a466fb06e4ff2ce49b699309e08c4865ad18c068bc214a856a5506c52867fb0180d024480a381167909df685a7297e97424c127f896252549bfad90a8b9e1a16128957518a587df4d3b1c49bc41a64cbc85450b901234cb688e45f4cfd0af792021ba7f2017567a55d5c562ef9822e951c1759b7d1747c44f960f0fe00c97ca69f00bf50def2053f678ffd08be685e5cb9ac202448e350cab4c820c1f3e42b783f20c595ba7c97c82b03ac17811e26854d509e8854a9b0e51eca83bfad19d9d8c9838a39b01765891248a2f333791f50dd2bcaaf8ce23c290413e835c76447702f40d7f404037abc4d05559437848f616b0857fba81022c4653042f03936f70645ade805034dba2de7bf787981609a44340420f94c36d1eabe2609aa21f9a8362392998d65184e542301201f3acce932b09a878fa0d578ac918ee91cfe81aff66c87d89c3f21abf94703feb3d463c983a03a4da8af2ae27a2442acfb0bb7971f12f76e60abbb34c295e702551dbc7d2c66146919b4a344046301d30c2d1a550ae39145a3e75738ef93aa181c25b3016b69ab74095f3b540238471b50168b31b5a6b3c8d7d47745c3d83d54c8ba834b44150995ccd20e431693da14ed02ee9444769f45b11ce5a03cb3f2123a1667888c79482e849ea13d4759d626cab3cac88b468a04412dc907060016e45875640ceab77b81c8be1f8684afe9e76ce1fe79e3a64776d815090e64853243ed37ded7bff75279429c99fd1b4ac3579c95eaba757f908d274f7761d89dad1af789dbb0310dc2cc5410472fab8e9dca6955b37193e4cc39fbdec5b2a406e081215f32be64ac9d37d043304fd462d6d6e0f49b941530546be4982443cdf3df24c17cd6e2a03b7e38d895425e492aa9f6b8a3a4de5786bc9ba5bb9e3166f9ec42f2abfe1a3342581d8df21d1ea6e471b357b64e83cc93d91952f1fa3e41131cc4b37e21e8ff077454ebcf21ac4a81cbbb87914bb6e54cece7c4ee5cd9f06600f8906fb6319fba37a12911f1a216c37a85483d16e2f5eb1c6373bb96488dce44b8288999cf613e808aa0eb82091f1658ee19e52e233ce7bf72cdc00d86c06a867f8ac9ccff205c18a96644b6e7b87d409cba2e8b4596429e0ef3fe73e79540edc21b7d9db61bba9202d7d161940e15b1a132eae93b381665e8fb14dc656f9a0d12ccca7a78d310703266d9aefcdcd3f7a19bb56ab28f2f35946c005cac084bde42984cf03f17792fb160aec09b8be8083e7840d1b23849d15ec444d551bcfbd117ee6d788e69cc3d973e5a23fc1c403702ddd17fef4795b462be31d8373e4ac932982d171bd3b85d03e2d46a49ca8ca3fb016510139d0269cf5d302d65cd2712a5b01338338f9abaaefaaf472d2682fec6e1e440b4449e0c379d9b90b62738e22130bea202781e721c8f47ac59311942dbc4b907b87434d486a25e54b224bd1c2e798f5b628e6df219fdaa4fb32b41cc6e3c606bef40928f164e7c0999c9a8dcd07f04fe59fbd31823e48b9746b17dbaabdfc146b30cb0cdcb780133daa59e8d7445823235efa4d852391c36acc215edb9b9815a38af7b8bd921fe0896d6e049dd3d5ded15dca3ac45fda4a8aca83f4ec5bca5c5290840e79c2f599e366d65fd847bf7829fd56631a1b3adcc01ca2fad2f8d2da36c7aaf48bed2e49fa1fda2af308ac12d10191ceea57449fe3a309f5d60bbfe4fdd39a24ad8dd520e0631a56d40884d975ebe7faf0441b683c1a02db00a35317caac65c1e8c992199bffdfc510649a77299d76d2ae720a30c82c1091100cb40684ebc4c517e6b9047bbec196915ac0d8568a0172674b69f789cc33b09124b39d7c34e85240d3a015c4d9aadf73085a771c694a793c200bea7992eed0990de605facca0d92bb7d017a6c195ed17ca72c00ca7156d3a982f95d54db1592caf107d90eae495e6d8fb8c33ae8ecef2162a205d02700036f2ba5b1b877af31517c9d36d416e093ff6e14c7229221ace41426e5ff88cc1d2c51acce27460f1c0338479f9acf1031c8685b8cbae606a2acc42b9b73a8838c32b838e8b442f9248b834336a502f9e400faa2f404165bcc091a4b4d390e15f16520b436bb8337aa57c397a50f0e8f51072732ac788d8f4495ca7c7233ec4479798bd440a0742206a610817938972d4208c943e1ea5dcce11d037651b8ead50af5780ace0c548500734e5ce407ce8fb150762391cfe245020cd373bfc30e67cc7dcd37bd7e87f6f646e26b9e4eafcf8f62cc2eacf852bb04b115c86eb86f0f66603a41a98f5edd434e1383cdf78cc5cff7fc50239a048529df331bf78f61fce2c44fffc08b58d4b2d5051f6e9e1a1194ee655e011938880b5538706f3b3785d194021b4a9fe447f86d65ca87aff1b8d5f7c934c39e7d708184da438a5f0170904344aeac51d860d2c7cb969fa98fd6a2ffccb15a26ebac5ae90d09f14e7e84dab12fa065916e318ceedd7e10b0dadd2052ba3296c8073e6627e25f01484b026f0e5c9c4d100c1b0c02193a6b224617bf37614ae319aebe0f74972a13767137c0e59fe112d854825bb1a94934c17c3d909f76fec40cb818876d98fd484fd5f6fa9ed1b689a7f8ea45d1f8a0891ef62330c1774d2c7c8f5e842af7c29b387eff1a8d01d53a22f00e42e1386a98179813d7be0ebff3220a0dc233f13f5678c5ce4b08241627d6db428f48e0718ce86dac5e04388ee3aa93e1be9c9e80c8cbbfa565d89cff6a7d28bffc48b83e03679395703685bdeaf1442f2b6e78f138d3182055ae7b4de2c597bf6ae0b65a529ca88a05f71952d5978f796baf42f5f21b60ee39bb5d6cb08e994252da400f9906a31491a545e1de65ee83f2a9c2955a17558564f28842fc8e6dd77009a088ec844cdb7ae5c421285bd1b9f7d75cdb36fa8f9b90ffcb50b61ee03553e6953722e09bac856957b63c83f4836a443ff017cb5e8957edb02c2ae8018c9a2f116990bb1b761f6352d64223439f65200cfd29b1f038b04d378654371c219e8001f7f5728c9734870c7a9c0e1c23c14c4c3ecf178c01426ea4a75e2714545046a5a3d8d477c61295c014fce751f7cbc1898c01a38edde76f116499cd3cb6d36d1490a49473f5be223000bd3656eec498c39c65a56fc1afc74d7c22089c5a6111e532a63b6852d74d4cbca6e1cbc7cacd1700a62261ba64467666e053aa98b01d446aae2a1cd83182f528988032726a8ee7e22803a5a010e5ee31864cb4398c6b2ca45d76fcf543d18cab8fced7d423d809aef834da90eab4a21605dbdc611c10d8305cfc2eccd4beb6e45edbe1ac3bc9b22b8734cf1698386c68425c7ca58382010821e4fe8500da5d301b5fcaad406651fd3b59acc107962e4041419240e0a0b23fa9ed0ae53040596035764d941354ea4449ee89c12750d1518491c1802923fbeec8ab74fe9c8f61c2b7e6767cc4bbc04dbc12cb4b1acc5ddd8e4f882c1bdcf1d142908620e77c551ae62dc7fdf8018b369b604b0b85790e74a4313d7efdeb2c22b6c2faa8c1573f7145a17eb74cf32c0d2623027222bb0451a029d48a8191c8e5195d05d17a958993db5a72897c33c54cf2003010ff1996cc183a13fe8b047571f3c7558792e48c2d0519615be2baad92e25c61d028448f2d341ad995349c0d43791ba2cd39206bba97ceab96bc414a4ce69fa51418cf37d0d5014fe41d7f8a3d41924ede9430ff079cdef8c254fc9e82a8cd3362037fd046942cccd32c8511c32f00ccc206f2b5f5aa25418f908d49bd2419686ca63dee365a1e230a0bba1884057ac6b2e6982483bc6db5c5ed2e198343497cf3410f5ed1dd0eea0634a974bc9c2050f614ee0c74536269a080b5165aaba32e377f0bc8d658da2ac5d12f19056796ddf2b8df8c0516693c8e57483464015938ae24615bb2056eb207e70881ce177d4315073b056e59093f77596c998de751833306f76b4796914679b901a02054fcccf16d69b67e02" - }, - "babe": { - "authorities": [], - "epochConfig": { - "c": [ - 1, - 4 - ], - "allowed_slots": "PrimaryAndSecondaryVRFSlots" - } - }, - "indices": { - "indices": [] - }, - "balances": { - "balances": [ - [ - "5CSf8Eap6RXHFLNvdMmM9TivTcLT8D1Ni2MkMXVfj8pWja2o", - 1000000000000000000 - ], - [ - "5HQmMyrZQgxzM8tprXxRrV6C68WHemm47ZnbxQfnrTQDrS9Y", - 1000000000000000000 - ] - ] - }, - "session": { - "keys": [ - [ - "5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY", - "5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY", - { - "grandpa": "5G5hCiiBPDVsv7koDTJDwE2Y3Hos3Uhz8fKFmBaxHVDLrF14", - "babe": "5CSf8Eap6RXHFLNvdMmM9TivTcLT8D1Ni2MkMXVfj8pWja2o", - "im_online": "5CSf8Eap6RXHFLNvdMmM9TivTcLT8D1Ni2MkMXVfj8pWja2o", - "para_validator": "5CSf8Eap6RXHFLNvdMmM9TivTcLT8D1Ni2MkMXVfj8pWja2o", - "para_assignment": "5CSf8Eap6RXHFLNvdMmM9TivTcLT8D1Ni2MkMXVfj8pWja2o", - "authority_discovery": "5CSf8Eap6RXHFLNvdMmM9TivTcLT8D1Ni2MkMXVfj8pWja2o", - "beefy": "KWCKbVMuG4Sx6ueLSmCzDnbJN8fyy7ccQo5xT6T1uDjMcmarX" - } - ], - [ - "5HpG9w8EBLe5XCrbczpwq5TSXvedjrBGCwqxK1iQ7qUsSWFc", - "5HpG9w8EBLe5XCrbczpwq5TSXvedjrBGCwqxK1iQ7qUsSWFc", - { - "grandpa": "5Froy96xxeRWzXTR2TPFp5NWJfGCpRQvzP3RuqwfkgsfLJHf", - "babe": "5HQmMyrZQgxzM8tprXxRrV6C68WHemm47ZnbxQfnrTQDrS9Y", - "im_online": "5HQmMyrZQgxzM8tprXxRrV6C68WHemm47ZnbxQfnrTQDrS9Y", - "para_validator": "5HQmMyrZQgxzM8tprXxRrV6C68WHemm47ZnbxQfnrTQDrS9Y", - "para_assignment": "5HQmMyrZQgxzM8tprXxRrV6C68WHemm47ZnbxQfnrTQDrS9Y", - "authority_discovery": "5HQmMyrZQgxzM8tprXxRrV6C68WHemm47ZnbxQfnrTQDrS9Y", - "beefy": "KWEVwzQC4LKZzjFpFR12mwDNVrgC8npGVhUjxjdgZG2ZA5AUH" - } - ] - ] - }, - "grandpa": { - "authorities": [] - }, - "imOnline": { - "keys": [] - }, - "authorityDiscovery": { - "keys": [] - }, - "democracy": { - "phantom": null - }, - "council": { - "phantom": null, - "members": [] - }, - "technicalCommittee": { - "phantom": null, - "members": [] - }, - "phragmenElection": { - "members": [] - }, - "technicalMembership": { - "members": [], - "phantom": null - }, - "treasury": null, - "claims": { - "claims": [], - "vesting": [] - }, - "vesting": { - "vesting": [] - }, - "nisCounterpartBalances": { - "balances": [] - }, - "configuration": { - "config": { - "max_code_size": 3145728, - "max_head_data_size": 32768, - "max_upward_queue_count": 8, - "max_upward_queue_size": 1048576, - "max_upward_message_size": 51200, - "max_upward_message_num_per_candidate": 5, - "hrmp_max_message_num_per_candidate": 5, - "validation_upgrade_cooldown": 2, - "validation_upgrade_delay": 2, - "async_backing_params": { - "max_candidate_depth": 0, - "allowed_ancestry_len": 0 - }, - "max_pov_size": 5242880, - "max_downward_message_size": 1048576, - "ump_service_total_weight": { - "ref_time": 100000000000, - "proof_size": 5242880 - }, - "hrmp_max_parachain_outbound_channels": 4, - "hrmp_max_parathread_outbound_channels": 4, - "hrmp_sender_deposit": 0, - "hrmp_recipient_deposit": 0, - "hrmp_channel_max_capacity": 8, - "hrmp_channel_max_total_size": 8192, - "hrmp_max_parachain_inbound_channels": 4, - "hrmp_max_parathread_inbound_channels": 4, - "hrmp_channel_max_message_size": 1048576, - "executor_params": [], - "code_retention_period": 1200, - "parathread_cores": 0, - "parathread_retries": 0, - "group_rotation_frequency": 20, - "chain_availability_period": 4, - "thread_availability_period": 4, - "scheduling_lookahead": 0, - "max_validators_per_core": 1, - "max_validators": null, - "dispute_period": 6, - "dispute_post_conclusion_acceptance_period": 100, - "no_show_slots": 2, - "n_delay_tranches": 25, - "zeroth_delay_tranche_width": 0, - "needed_approvals": 2, - "relay_vrf_modulo_samples": 2, - "ump_max_individual_weight": { - "ref_time": 20000000000, - "proof_size": 5242880 - }, - "pvf_checking_enabled": false, - "pvf_voting_ttl": 2, - "minimum_validation_upgrade_delay": 5 - } - }, - "paras": { - "paras": [] - }, - "hrmp": { - "preopenHrmpChannels": [] - }, - "registrar": { - "nextFreeParaId": 2000 - }, - "xcmPallet": { - "safeXcmVersion": 3 - }, - "beefy": { - "authorities": [], - "genesisBlock": 1 - }, - "sudo": { - "key": "5CSf8Eap6RXHFLNvdMmM9TivTcLT8D1Ni2MkMXVfj8pWja2o" - } + "raw": { + "top": { + "0x0595267586b57744927884f519eb81014e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x06de3d8a54d27e44a9d5ce189618f22d4e7b9012096b41c4eb3aaf947f6ea429": "0x0500", + "0x06de3d8a54d27e44a9d5ce189618f22db4b49d95320d9021994c850f25b8e385": "0x0000300000800000080000000000100000c8000005000000050000000200000002000000000000000000000000005000000010000700e87648170200400104000000040000000000000000000000000000000000000000000000000000000000000000000000080000000020000004000000040000000000100000b0040000000000000000000014000000040000000400000000000000010100000000060000006400000002000000190000000000000002000000020000000700c817a80402004001000200000005000000", + "0x084e7f70a295a190e2e33fd3f8cdfcc24e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x08c41974a97dbf15cfbec28365bea2da4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x08c41974a97dbf15cfbec28365bea2da5e0621c4869aa60c02be9adcc98a0d1d": "0x08039f9dcc57e225624a0c5fa919ea8698825d3648dd560407a0c437f2151584204f03fffbbb09252cd3d1d4b030d2b84274ab74d00a217fb32f6f3e744cbcccc83907", + "0x08c41974a97dbf15cfbec28365bea2da8f05bccc2f70ec66a32999c5761156be": "0x0000000000000000", + "0x08c41974a97dbf15cfbec28365bea2daaacf00b9b41fda7a9268821c2a2b3e4c": "0x08039f9dcc57e225624a0c5fa919ea8698825d3648dd560407a0c437f2151584204f03fffbbb09252cd3d1d4b030d2b84274ab74d00a217fb32f6f3e744cbcccc83907", + "0x08c41974a97dbf15cfbec28365bea2dac713b7f8b14e2815d297585d3581e774": "0x0101000000", + "0x08c41974a97dbf15cfbec28365bea2dad47cb8f5328af743ddfb361e7180e7fcbb1bdbcacd6ac9340000000000000000": "0x00000000", + "0x1405f2411d0af5a7ff397e7c9dc68d194e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x1405f2411d0af5a7ff397e7c9dc68d196323ae84c43568be0d1394d5d0d522c4": "0x03000000", + "0x1809d78346727a0ef58c0fa03bafa3234e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x196e027349017067f9eb56e2c4d9ded54e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x1a736d37504c2e3fb73dad160c55b2914e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x1cb6f36e027abb2091cfb5110ab5087f4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x1cb6f36e027abb2091cfb5110ab5087f5e0621c4869aa60c02be9adcc98a0d1d": "0x0810be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5b0100000000000000ec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d70116760100000000000000", + "0x1cb6f36e027abb2091cfb5110ab5087f66e8f035c8adbe7f1547b43c51e6f8a4": "0x00000000", + "0x1cb6f36e027abb2091cfb5110ab5087faacf00b9b41fda7a9268821c2a2b3e4c": "0x0810be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5b0100000000000000ec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d70116760100000000000000", + "0x1cb6f36e027abb2091cfb5110ab5087fdc6b171b77304263c292cc3ea5ed31ef": "0x0100000000000000040000000000000002", + "0x2099d7f109d6e535fb000bba623fd4404c014e6bf8b8c2c011e7290b85696bb3": "0x0810be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5bec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d7011676", + "0x2099d7f109d6e535fb000bba623fd4404e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x2099d7f109d6e535fb000bba623fd4409f99a2ce711f3a31b2fc05604c93f179": "0x0810be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5bec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d7011676", + "0x26aa394eea5630e07c48ae0c9558cef74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da932a5935f6edc617ae178fef9eb1e211fbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da95ecffd7b6c0f78751baa9d281e0bfa3a6d6f646c70792f74727372790000000000000000000000000000000000000000": "0x0000000000000000010000000000000055a0fc01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da96f2e33376834a63c86a195bcf685aebbfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9da92d55baa7363103699125c691605df10be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5b": "0x00000000000000000100000000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9e8a24a1ceef96bb79b59d4e4502960c5ec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d7011676": "0x00000000000000000100000000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x319318726f636f636f", + "0x2762c81376aaa894b6f64c67e58cc6504e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x2aeddc77fe58c98d50bd37f1b90840f94e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x2b06af9719ac64d755623cda8ddd9b944e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x2b06af9719ac64d755623cda8ddd9b949f99a2ce711f3a31b2fc05604c93f179": "0x0810be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5bec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d7011676", + "0x2c5de123c468aef7f3ac2ab3a76f87ce4e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0x2f85f1e1378cb2d7b83adbaf0b5869c24e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x2f85f1e1378cb2d7b83adbaf0b5869c2ff3ae12770bea2e48d9bde7385e7a25f": "0x0000000002000000", + "0x3195e99b3353c0f2dd3f53c10740793a4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x3195e99b3353c0f2dd3f53c10740793a57c875e4cff74148e4628f264b974c80": "0x00000000000000000000000000000000", + "0x31a3a2ce3603138b8b352e8f192ca55a4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x39e295d143ed41353167609a3d816584": "0x0a000000", + "0x3a2d6c9353500637d8f8e3e0fa0bb1c54e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0x3a2d6c9353500637d8f8e3e0fa0bb1c5ba7fb8745735dc3be2a2c61a72c39e78": "0x00", + "0x3a636f6465": "0x52bc537646db8e0528b52ffd00583c91042e09c64a13531040cd381d55d2e3297c94b9248bbdba8a12604680b519cfdb6f3293a94a689a413bf2eadbe912ec487efc84861bce61587e4ac9dc15a7c6223d1b1760e702e42fb961e0d1bef86fbda4eddd6defbda54c29a5c914ed112c1275e4aafc01d41d838495eaed4fa8921a8ed3fe86fc5314257fde86fc1b4e10024a55822770d5942a7f8b3864ccf7244864520efd1d84805205b50f6a1d8d16e1aabd46b976f16fe59f22d7e5919428c4814784a899451c27e6a0de22de3a20dcd9129a3aebce96b2d45ded4ff8554fb5a1f6db2f399d410828d5fea6fe726a27f4fb07f5f64ba748bfbf6bcf2ffb35ce27f297afbdf65cbfba6abf20118d72f8d5a0e626bc6540e8a956fece9676a8fb0b42408929d72ef9f23d152cf4ef2f4aaab288abe410500143e5883453ded803843b9bb2a57ebf5cfd1a654ebffa79b85909ece0ef3aee781dbffaa3e4f12fcff82372ddea31cbe7dad52804b5e72d788246c7afda730dae5cc976d111c92bea73fae5bdff4ebf366feb3a3a768ffa6e93ed0afbb5bdbf4dbfbaf7f73691abd7b5eb7b064fe8fad1f17bd46fe2d64f44f2dabdc7bdeca96dd7f86de2564fdc8aeac46dd7db54fe5d9f71a7321db59fefef39b3266e35819f139166656fbdfe16d4e8f842d57ec5917370e5ca7fdbc5ef49707bf5b5eb6b97fff6ebf25f90c846833ac857e4dad52fc5916b113f3d3d3dd551a9ee6b2292d77d16c376f53348c466d26d5773fdfac29c7e6df597e2d677202993c9643298bf6b8578f55f1e47f1f4c1e3675101e1286b3fc7cf71eb40db3d6358f9c7b0ca7ef52f4f2bf1b62e8fc7fce3579b9945afdf0a31e23235ca97f2f86351d6ef4c2dda6a1416f8a5545226abbc2b84ebd7c8d51f01e1091f8b5dbf598da2812bc48865b5c884cadfcf200aa1cc08cbc46dd7867543506a6e36bcad5cbfc67effede71ffd65bbf63d17b976ed0385fd8e423f9153ae5d1bd44acc46dafbbdfe64bffcf777c16d577f50bb28dbd51f241cc3daddeddfedcccf55a63a47f8e5b3d36dd7fe8244988e5cf9833aa897a79d190c6ffbc5fbfdfb5e8b1cf27baaed17d77d4ff68b7fdff36f437f1f386484f2fdfb1d24d294437e171b2422a96c97bfd71f57f73df931c8b5cb7f41076ce50feaa05e90487f5007755007b5123353e12dcff8d5df5b0384defe84fc0b12d967b0c80b32994c4a5dbaed1ab9eaeff527fbc5bfbffdeadf5f70dbe51fd42cca76f90709c7b0facbeff7f772fab5d5dfe32fecd7b66b9475dfdfa65ffcfe39fde2eabf2011fea00e6a2946f9518f946a539d235cede76a539d23fdf2fb2545e2ca74dbb5bfa011fea6633f7f5007f5f23825faba212835b318de220947aef273fdda316190a9fc5fbf7646c31c953fecd73ebf4dbf7626e54ae5cf59215bf9978729d1d70d4189b97a4a427eaedb25ec2fe8ed4fb8bf9bb748c291abfd5cbf764c18646affd7af9dd13047ed0ffbb5df6fd32ffefe9c15c2b57f799a127ddd10949817e0ed01c29dc9a0a82357f7b97e6dddcfe9d78e09834cdd0ffbb5b32eccd4fdedd7d671a7ee6fbfb88e36757f7996127ddd1094988d78fb0ac7b0f2bbfa357e959ffffb35ba2a3f3f907e71e50ffbb5953fa75f3b9322abfcdb2fae234fe5df7e751d772affd7af7dfee5614af453370425660f783b42b8bf9be7ef6db8ef03878c50c7483f7f3fffbeff82449c72d81fd44acc2e6fc3fdd570b4740972e0050a070b1c2a70aac08902e7091c2f384ee074c1610267099c2d3848e0188173044e103825683de1c870a4e0e0807343cb0e1c15e0a4a095039c2c3852e024810345ab8e161dad395a3268bdd18a41cb052d355a6eb468d02ad362a3f5020a4c00859653cb8c1615ad2f2d2f3ec69d5c4c6a062919a49c52667c367c35a4cae854d0a5a055854d0f6c786073039b33a82b281c5037a06ab831e3a60c140f5077d484512346cd18328c6c9259c899b4428221a79052c8282418a90279857c425621bf9054a48e905fbe3cba276417b9050e979b3424144647928b1a306e64d28b6ca2d57453c58d143751a04e80f2c1e6a9cba3b3c3260f14161b3c6cd2743ac0b1223587b6464a8854102920523fd8dcd0c241ab8cd6a2b76019f01bec0687d19a828f6023b8081e82896024380bf3c03bf094a418626c02128c00861078a0252603471e6044729140042050a401957b601d86244048129c2f384de00c8103044e0f38587076c0b98263034e0d3834b4ceb46cd04aa3b5c60b22689dd15a418b8c16182d2e5a57dc90b9f1723343877123c6cd165dc60d930d18365ed4e46123834d151b303654d84c6123854d148c43236103c405588c9aa69a2f6abca8b1a235464b8c9a276abcd474e92f9c4b0d971a266a96a829a28688bea366881a216a82a8d9a186871a1d6a72c0c901c704383ce0cc80e3038e0e3538d4dc5063434d0d354c3532e0a000e704383fd42ce10881a3440d959a293532d6132b0f561a560f583c60eda0b505cb0e160e5837609d61d9805503561c2c395874b0e660d5c1ca41d780a5839699161cad2e5a5fe068a9b15253029c296aa4b0eea83141cd959a2a3844d4cc50d3438d0f3558bc879a13d4a0a0e9a801a2e687d6414d969a236a8ce817301d3549d42051b3a5464b8d123529a871a2a6891a286a54c037a891a2268a9a296abed4545143050b4d2b8b16162d3035606aae60d18065863503960c586fb0dc60c580d506ab0c8b0d161a2c32ac34586ab05cc05a83f502160c582d609dc162416b0c6b05ac312c31ed84d7c0fa82d5052b0c8b0bd6162c2d58339619ac325864b0c66089c19a8205052b051e8403c1628215064b081616560f0e064b87eec2a2a18560cdc0b2c2a2c29ac22a014b8ae3c03b58e5b1c26395a68d58d5c102637566d50306634583151cab19ac60c05eb09a585eb0b26061c1ba8205866505ab0a1615ac2f2c295851b054c07a82e585e58413c16a82d5c5956071612dc15282b585a5859544cf8085845be9245841b08060fdc04201eb042c1f583cb07660e5c03201eb0a0b07d60d2c1b5835b0985832301eac2aac25966cf5c43a603b563c58ddb142b3dac14a07ab1cacec58e1607583950d563558d1b19a837504cb88951cab385845b0886065610dc13558c960f5c6ca8d550c5a5ab466ab3656655a3558bda0d5c66a8d950b566aacd2589159a1b16ac18a05ab33562b588d59895939adcc5895b1226335c64a8c55182b30564dab2f565eacba58855971b1da62a5c56ab6ca6285c5ea8a15989515ab2a56547809facceacb6a8a9514ab285650ac54b04ac1ea8995979513ab26565d565c564cac965829b1dab2d2b24a6275c4ca8855112b2256595643ac845805b10262f5c30a05ab13acb0ac7c58f5b0e261b5c34a87550e2b13acaeac7058ddb0b26155c38a86d50c2b2b2ba6950cab2aaba51595d5945509565256b2f029cc23c4c39708d3843d0879e04784778468c21d843a087310da11d611e220bc417826b4415883908e708e508e308e9006a199108e7006a10cc2374237c218846d846542364218842f08d7085d10aa11a6119209d1085b10b2203c235c41382614133a8566846584648463b40a4231c2304230c2a6f08bd08bb08b304cc845b845a845380bb308b108af08c1845684558454845fc2294229c228f88e108a5005cd449882de123e117a099d089b08bb845c4226c2254225c22da19630891089f6121e111a11161112110e110a1106d15c74172110e10f210ac2138458421fc21e421ec21d1c4ba84398436882f08acbd03c0871086ff021421b9a052e4458434843384368c58de81b340e42a65086b08a17115209a7842508a584324f42f5a4c2439546d503150f5477a8d0a876a0d2812a072a3b5475a870a0ba81ea8cca06aa1aa8e850cda1924315878a062a332a3854336829543250bda172431583e6a26aa39b509551b1a18281ea05aa35542e701b546af80d3c862a0d1519550b542c509da15a816a8c4a8cca496586aa0cce818a0cd5182a315461a8c05035a9be5079a1ea42c5856a0bd5ccc3a8b25061a1ba4205466585aa8a4e818a0ad517d5142a295451a8a050a9409502d5132a2f2a27544da8baa8b8a898502da15242b545a585cb6016301a4c467584ca085511aa215442a8826875993cb80ea91ec03ac02a3c1ba413a8223a283a2f1d974e897e0295050a0cca0a9414282fd20b9413a826c032bc4bea4bd784d6b4f130e5e0b470754c313a99ec426ad1f9d0f5e039c8a77ea365d0316837641e128756989617ded444b817de857ff126584ece846f691a3812aea5c5b49367f11f1c05ee839fc0af781567f225a7d2637c8a4be938ba0dffc2650d837eea3c1a8f4ed33de832cd46d7d1687a072d46e7a0ed681bf41c2d47afd1661a8e3ea3cde8315878b417dd5443438751e5d192a365456b06ad383a8a86a2956885d14774119da587e8201a88fea151d027682ced43f7d03cf40ead43e7d026e82b8d43dfd036740d4d43cfd0569aa965e82abdd4547a4a97a0a5b48c9f380f161ccc033ec339b01a9c068be116f0193c869dd80cc60193b132c35b7017dcd4f1c058f0156c036f612d7c859300019422a6816768a1d582264442257037785c97557874ed43474942200425c9100b42421efb1227434242a8e5a126214882e4c405158490940c193159e2848990508f16179e161330fc682dc102d20a4e869a28b143432a083d411242626105264322e8696dd9a3264c92200d2d111a1a5241845612fb4405274c8460301a72a1488809948ae464a80518924ce05b48ec9012274f9c082551e2e4890494d40f5a472c79a26468c98f56117b04c310d1110c43472c20b6883862d20018aad8ca52426b089e9610fbc29013560b88fd615950f204ca904e0b056be4c20a4c5470f24489101328752804496037ad1388d0c212a4e5c32e612284347464e482921ead1ef66888091213a3272c20b9904468052126506a12284b9c24313a0184160f7b7434d4e48396096a5a576e5824272e3c5122a44292a126372d1bd6a885165a8880aa55c3aaf0e489111421284c5838321a7222822742300c1101a045c32e1972b2029323272e28791285890b45434248464fa00c19bd5a332cd2d09190953d627204830a434321106202a5c2a0c2d010acd562daa3212417a01c3159d26ac9405b5576c8088ad0901113178a868c848e5488022584d6d22239196a418528505c2d2a7b3484f4248a909093273bad29cbc25112168460088110005a25386a32e4c449121694084169c18805a1254e5c781202274c80b4a4203979a244a8a885252dd91eb590c428091421a3274ffb44051f3779ec119293a1284378ec0a4e982c71320445680829c912264b9c245102e4a6073bb4e489920f6e78b0464f54381a3aba638f905c8082e4c29300dca069c185a3a32400b8d9c126414ab244c8c913264b86908e981c190d4111e126077b3464f44489100c484c9a30094192264c924449f23776ec1114179e18ad2004c24d1d7b64f404e9e889039218259940ce0d0e56044ca054a32122a327194041bcb1c10e0db930e40205525832b4c20a495218c04d0df68848c9100b4ae4d82324274346432c3861f237713861a282ce8d9955c2e4c8091323a4178684606802054a1221a3a1254d98b8002352f2a4096ce7068e3df271e3c62611dab969635b104a8294644912a4a108ac6ed8180193264998203171c2e4e6668d2552f2a449088486905c5032f4c210eb468d357ac2802f6895c3e634268f307595bc9dc9649595bc87c6e1c0e1c0507893dddd6d63d336cdc3d3363b5dcac9524a9692577acb953c576a9257fa6ac5712038c7ed72dc72dc4ae6965b6e97437121486f3611df656d77355fb94967e99ddab9a91b77b9ce3ee5aed7685ea32dcf9a9d1a6bbe7277354e2dafb6abada6c99d2ce5ae94db80f5e4ee7a08bc8bdaddad5bd7d825fb328af786019279d9a54bdeb695bbdbb6b194d217b61eb3e4ae57d77dfaca77e74ab9dbb12f6fd0f4dd393bd53af3ca6d79e7e6bed2d7d704dfd42eef6eca97e5aecbf5399d19b53b17e5ecbeccdae429d9775dca759feb72999d771bdcbd61d697d3bbcb7201bb9bec78db6ddb7cdb6df3d6b256ee825272b7b3a574dfad9bbecbd2d77d756e5cb52c15e07b3399d97da7f304bddd5df15b29d999a5af644f4a3957b5d27b4ee621a90448e739d759d376aed7cebbadaf8daf6f27254bb9f293db2699bbe3eddd95ee423cdfdd9a9add4580b6bb3e3d88468178db36dfdd367f6dbbee285ef675ffb6ddddb5ddb004afc6d977a7c62b35100477c1cfd7793bd5f2ceaa7458b5dd92b0f932afd39daef9ae4fdef53d80fbd6ecb6a0fbced5d6dd00ceaedaf575b929f61176b79dbbbcf9aec6ccbecb73b59d6d7997a7b6ebabed6cbebcddba6a3fde9da26a7f7c77e3ddddcd779ddddd572e2f4fdf2dc7bbce73b6f35ddfcde5f27abcadd471b9eeeb726adaee4ef7dd0238efb24be7dd9879a7bbfbf4e9534ab9727deba4f49572d3344d5bdf7566d9bbbe2b77997d35cde73aafe4f5f565144bc9bcccabb13651523aab53ed73d7bdf3e9cbeb2bd7dd775b39e54af99ab66d2f09e0d352ae749752a6dadd7f0019c08a59ca1fd27d5bb65c2f9cd3359f13959abbdb52f64e67b98b626ec6d182a384df6cc360f4a485a116349c10b870d47374346404a585274a80049064c8c8074e0f7085274d7ab09a0c45196a22f4429216845670c26485159e34f911820fa32127432b006005c310919012264d42e00214176b68e848a885274b9c2431a2ac254c9a24892274c42404d0d5b3029323318a932177ed084849908e84888c9e880069c8098f084b9c24111a324a02a585274a4800a14912254f9ab8be178696386122e48449121694a8a0c2935ff908c01ae0c91323a1254346434b8c9e0c3131421200b706188af244c990915092a3254a868446207a956000284a8646583214020044f8963819820225c9ced7d36305117a2c69c284052542484d5c48a2c2d012201fac01546062341445080123945082018c8e849e204181c148490838300c110921bd30e4048423a423262f0ce1ec082d304172e2821125529224044d9a3c31120093165a78a2c48572f28409929224474e92182109211925413a1281288912254344ff2ac1003fc4c24e4b05241784909c30318222a4e488490b1f80d0630df0021315868ca0d00f69e8a847cb28c950132542432b24317a8274a413c4002308196088284993107c48c24be885272240125ac10913168e92b0f0c1d60208519c0c39ef08424e9e3039321a8a22343464a48290d113a4244a9e3469924408e985a19d284e86bc002a1b7a959492942492554a5252fa906c52d296a4a42159250fc9765a5292528764939256496943b25c92d24c4a4a9a4894384922516225159255624d2929c9951c49122f12254e4a4a5292ed1c92554aea2d899392943849a991247152522725311225dea4a4a424a50d89122f92245662244a9c9494a439924d4a6a249ba4d44876916c525292122bb1d254928d6495584949c991ac12235925a54652446ee1dde5168e926cded331e9e43dfd1c8d492fded39fa2ee65341e74b18332a210438a136371030938d0d0b28134a9bf80e2891cc4a4f90126a93ce33dfda32ce38567ec14caf8654c6117fe3cd453a99203eb9e8af655421e6285302ddaa73a87589ffefe4f9c42ec08fd9e3883d811fa51e2046247e8efc4f9c38ed0bf8913053bc2fc71cb5cf127d9a45498767cd811fa7be0618a4a26abf2b0b9030f4ca353fce909a6fdc859b81f3bcb158e0a930b46a54a10d8c46147e8bfc1059b36e4c0e68fed657b7aca230d34c2f8218ba45498488051e1be4a10d8946147e8aff2c16a903ffa19ae410bd4706388263560eb651be3430ba890810c3a600bdbe894ede9e989a354aafcc06615176c2eed08fd54aa3c6c52d911faa7a89e9e9e9e60db8ff24ced9f3207dae86e0fbf969333e9ee9449ba3b65b57f2c10fea09e54a97b278b123bfce4d47e7e2fb59fa75f5efb81f4abdba6360bfb28dad5f1631f3c767777ff0599b20d478821eb8e79e28bbaebe3749b086f0c981ed85086b988abff1515f74ee1275897f50163d7a554a723cbea1e5155f92e469155d25ddfef0ff2e51fbc6724a1ee90babf5c03a57ef76dfac5fd7e4ebfe6efef3c4fbfbedf77f5abfbfd9f205e272a554edcfe1395ea1447ae3a47e66f3f7feb2ae928df53e2c224d1f65dbd75227feac054bb4a1db0d49e9f14532295d457d91d413ec3825c8afe9a383f252ecc9bdf82f39be2d694b8b005e707f5a773c47bd47b8ffaae1d0aee81de110ff4e673ef75df6fed5e8a3a1f2dc27df71dad5f6ad74f872db56bf79e7f44a8f7de931f4ad49e13b9ca91abf60e16f93eeadfd1227eeade51e8fa51a211f5f2b92e78846b47c7ae44f28f94aa7684ab4747f91aed505c25d70671c408b71fe7fb91aef26b508f1bd539a2c99f5447be8ea447e66bd4c89449ac846acd0c6f47d85f903b07a7ef975e8bfcde1475e66f5d71ec9ecf9aa8339febb672255f84eabffd8af37bb5d556db7e357e5fa3b2d8bf89b37a93ab84fc52fc9bf29bf36b917f12e1a590df9b9b2bc5748a3fb59786ed12a13a55d2d8cdf0dc655d6ece3046ed9ab333c59521bbc8f505af886bf7c054bf9fdfe211d7fe061db0b5a344fc5d1bf1facc47e26ad13e55ef1b2cf23d0af50b3a60ab4799a2827c7e2716f9d35307e47f68eaf7dd7bdefc163c01f55d8347a491eebf0f6acfbd67d1fb4efcdec123dcf32f58847ba6bb3efc41fd8963535e1ffeee3d71ec285c2df23c4624aefdfc4a1ab71cbc62a0a9f2b5dfca4ec29df130abda6f13d0800e67a4bbab5f3ada3f8f0b090b69b86d8e3981f46bd4de25ab875d1734e2cde5de1df0690049bfe63641a05f5c67ddd90e5b7e64539d75dc37ea148d90beca3d94ba7def23699bc895a75fd3a8193c2254b7e7b6efdde82e90a55e074240290b0da505b5a789236fdf224737511347a5aa118ddbef6ba0918dea1ce9df7ea3630cb57fab4647ae286822fff7ab457f8ffb887f3f7884357a84bf73fab5fdfc1d6f1377a64353d5c4a9fd7c965247ee3771c7844126b4f11c3c81fb31862723fc1a1d5b4ae5dedb96d5ed3591dbc420d7a4b49fe968f0969942f9ecb195b09da83b3b810cb587a83bebc14c75d59df580c508d29433755402a3d5d105137851f7556c25f42deace821853394cdd191037542075673f48c1e0092832cad4222475ff04d419216a5152aa8e48318041ce107544da328417833a22d1108359c7a334a21840154e753cfae2543999acee3ed5fdbadf3c78455ce57b529c92ce226aa8138dca11f06f3ace8cc8526511f9fc3d2ad5f92cea1c996854f9138d3a1e2955f9736bd13e3d3d8d4ab57f66a94c449a2a56b17afdb5f8a34e71a251193ce1a3dc3045ea235ffb835abe8b44fdf2bd6ef0047eaa45fc34a98e117eff13f89d22793b2b02888ad475d2b13f0a577fa52a5617c5dae2561691bcbaaf34b9d36cef6d7b0c760e91f5d95a94edda7ec16e51e4d667fb163180816dfb6e856cddb6e756c8f6cbb3ade11585276c55bdb7bbbbbbcdbf22575ed507f58adffaa8bec50f84a907ff7bef3f10a2be7beeb7ff40a8fd1cb9aada57f5ab54dfa28a05df5226559f6e54498bfce969e497a3f64dfc89337552ed47a7fcdabb287fc1235b060e49758ae3d49c2880caacce17aa3bd932aed4f9e308aad42675da824501d0d842e2d05477eace7058a27afd4d51f5f4f40404acd3226bc1e089293490c9672db20f6c4062872c4600c8e244930c09cabe51b5c80a80c616b2280aa0327b610475be9612ec1bb08ecaf60dd8d2d87e9213218848434a1a990cc6511915998cdfe908a5fa37b82006566dc020893ca63c3dc1d6a67a6b575ca9fdfb22d471690d432bc4e8a76a91afb43378ff9574522a557c60f3996a6035f4cba6f6fbc0690ac726956b6857ffcfcaa052992c251cb986da3fae0c6a7f4c7ee83d3900628a21a6f052462683cdf71fc3da30176592891b8c28411157c0a854f181f933d5c024952a0dd39e690130ff29322d0016eb92827f6c02ded3ef4eb12e29683f692cc87bfa351aeb92c27ca7b1f79efe497fc69dcdfcc7755a1dc80086163ad458a28d313866840b53e2618c2b8410420b3229a803b630f9e34f0a2f93c1bc867e89e03dfb2eaef75ca91b429254e2964fb894e27ce68dd3e67c7f6efe36677f0c12694d74701a51b75df3a5c8b5889f8ae4a452baec6e81123c3c18421cc83c128f615821a07ffd5a1d78da7b9ac815f51ff8bb42bc9fef79a2521dbfed89b6dfff7a557766c3952ad7677eafd80f8adb7722d77e8e7b50e4783fa8393a7ecf5d31e34bbdf7fcfbc47d54ef7b47bcdf0880bf74e4ea3e83452f50298114592d1a45d0033c9eead13a6dd96186fafd9152fde8b6aba3e33eca5b712b288e2fd4068f80747ca16e1f279ee0bde6711f2736e7edd760918f8e5cbfdfdfc022a8baeb13e41f91a53a46bcdff77e2911eaf71b2c82faa545b1baa011ae7a9488fb468923f77ca49f63b06e5ba72845517a2ce7f09884f2c6639652056f0f10f277cebeacfdcb714709fbb92f0480b72ea4d898e18cba3d58567b5508776683536559ddf71a485c1212f96f1d595647ffee411c952b3f8328b094ba746459f55f318aacfb523ca2aafb2e8e2b64949216a9ea8efb545754127609fb0c167d51589db2ac9bc2a2700039c89eac3fef2ee762128f4928436fe5da4ca05fe37fd1eab867c897afc9af9afc0384f37382fa35720ee8d718b2d02fed87f44b56ed35d0afadda232123974cd58254cda68e41823a274dd57e47d334ed9747a3447bc66bf05446b6dfb636d869dfdc7bf7dc6bee1ad7791bf72e46e1ca71bff1b6a7dcdfe957aea30ff0e716ecbaa2d828b74d7b6f3df9792bd5eef7e4c76d748cd5ed5d9c73ce39e7ec8ab6a7a7a734757bafbf4ea323d78e16f9f7ee44be8f12d6265226a58edd176d69a43cd5281cf8f2a74884fab9bdd3311cc771ec641147a50452aa5114ad6a1f65ab474a55a3feec2ecaefe4a76811a7a9285044ea22af28aa63846775fe0489cc979c38728ffa2946e93adfebee1ef528b1a36351acce7717c7edb9a3a352edd8f362557be7446f5e20fedc077951ac6e1c0a5ec723a5cadf89455e376eab148bbcce77d088ac93126d4764ddde41231b25e2775a14aba387b5454fb5a28e3fbf7f8b3a9e8bfc1e6fcf45fab77723fddbf69c11d207a572bfa01124957b6e4fd8fcb7f738b143bd3bea39ce39ff4e34e250dd0735aa7bcebbee3971ece82e106fb0c87c7f0689687454aadabbc871226be2c8757f8a633f8327701176316cd7bed2c72a2e639880cb0abdfadee77bd3df63f067910d03f3ea4ebfb4dfff15f2fdd46eff1377faf553f73523dc73cf3d8b5b19dc225dd82ed477bf34c83b71a75dfb28d1e3c4285c47aeddb318856bd73d276e95cdee29a6455e758a78e567faebb3cf95133b4ac4bdf7122ce222c0bdf7792a54f70c0e6d8fea28d7aee5c491fb0e4547a58a7a163b717c007ff741ce627ff72d88a2455efd3b715b5c6d137daa26e6b46be77cfe4dd4615ac455a339edda1f405d9008ffc6738b27a5b82424922f421d2baf90f1a74ea5690455a737b91f251d93aafcb18bc0ba5127d5c2cd5f91fb2962a0006868f104db97e218ab72d4be89121075fb31a9cedf4dc06e01c69dd910838ac475a34ef68d5ae44f4f55a35a62fb49fec41918476563ac4e3aca1fbbea1fe45214a1ee2fc8812de30a6ca528424d62a5d93dc6db31c4b03183190bf2788112b005bd6d6f5b2c0873dac56f23e68e2f956b8b4c0b8d70fc20412a3fff907ecdcafffc2e122aff08c406cfdb4fc97d30415177c674441dbf36d30ef51d0848f7f4f77baa0d2432b3324690ad4b847f410584a34bfb20ae9f7eed181ca8d47e1286ececf4cb9f6b57ffb4ab37da5294a29184791e7f2b8e5c81b4cbd5aefe0d84a3abf607790dfbe5544963f761be5c21daefcf15a2cde90bc29083fae9fdec7e723fb99fef718fe2e64feee77c9c1592d32ece861d6a504beefdeb8a59a3a9f6f333c8bdcef65ebbea6cb4889fea7602eeb58ee6b48bdbc429b5e95b3cfef6eaceacbc61837e62e6b3ae1667c6487fcf5de45f50861ab4ba332f6380756756d2b08b5cbdb9d59dcd6045ebeace66b8b231107583a8ec0eae8ff87d20dc999533ea287736831175e4f6fbc11567384195bb71a95d9ffd967578cb42d8ef7dbf46e9ea97bfbb3b0d59aabb4b1e8f792b831d5042994c26851b0557eda0e6bada7bdb81706756b05411aabf27bfe557af90e540b833262a75eb564ffbe40ae9baf347aeeeca1532ab7ca7a3bf0b391529a7f6bb381a15ed53ed47daea7c6f038fa8aaeffa8cfedc1ad15efe8227f86f1fd41324d27d9007b58b5b3bd1886bf497bf893a47b4ef6f4a245fa3bb3efe5ba7b8758244246527ae118aabfa3771d5fe910362181fd91d54ff169db8aa535e1f7f07517055a7bb3e4d398ea5185f2aab6875d69e7fd47eb3909ac8cb32843bbbb2a576dfeff5c7e009db73df8923f744a8efde5371f51624b27235ff7b7f4f13fbbd94a893faada3524dfd278edaeb1841558d16a96a14a4aea9ef5f34ea4f05459dd47355bd27bf16c7eefbbd1675bc97d5eb82464259f5bec5aede07758b5c3d074f483d28aafe1353af89fe81a2ac9efc3e71735041d1ab37bf4fdc1e5450eceac9e69d9bd45245fc5455af89fd9fb8785450dceaf54e6e99d239b25c3c3dd57eafa3121899acf67fe2ae5135b145ed5522f8410e8ab37a2aaefb44fddd8ffdfb0e01a52c3a074fe0ef3a221de880a0ba0b646c068bf07f3f8346fabbf752a2f71e7f29716b50bdfe52e2e2a07afea5c4b5a37af2d344ef53e2d156a3745dc188abf7534af5ded340ae127abf202f85de07b527c122bb46f5dedb1942ca4b893f5513378cac04d5e3c45156d4375864c3c864d5a346457b4626ab48ac0afeae0f6784f455f0bf5f1005289c387a45fd271a1599507b7d508fa4d5ef3dfe3871ec8a7a4f34fa1e49abe02f7844a86a1fd4a058f4a36aff894526545e1fd47bfc79da73e2c815a5d15d2028ca795077e2564edc6f71eb268efc20832b579386ed92b4ba12c8db174f0321ffb64bc7db5f9e7167d57f7f9f5b21f3f7bd29eeb4cb7da839ccbd0371efef72a0eefd7f48e8d74ebbb4f70fb2427e7db4f7efc4b07bb4e744ae7bb40ffb35e2547fd77656039aea8fb342b8facf9c7669e256225d7766c310f2837ae5ea6b5733a8bd8e7cae5d75e4efcc0622ea3a6d01a3fddc684ebbb46f8a5ca5c8adcf7e522bcd6e383cfe13b67a2c8e390289ba0cee6e502f93e71c215b605263e62741227567361451b75d122c9235677df62548a4889f6a8ff5e997e009a24dbbfa27b8cf22d7158bf8a9f24f9088d31573d6a77f450c843babb2430d7bac90ada8bab32a65eab6ab5fdeb68a83fb584cd59d55e941ddd5a6f4e6dd52120f9662be44f2ea5ced29227935c2329914915c567e2999c9789eb7a0dc9fafbd37454d9429847362a09f8e4a557e12cc7d410df8378d29c162f21bd62ec69460f2837a1da87fd4e8a423d72d8570ebbee72d9802bfd35812ac4a972213aaf60c9ba2a423d7f99a387a9ddfa27f904f71ab8b0d5b300587f107b514b7b6b8b06d20569249dd8d83776442ed0727c0dfa216122c29c1f85dd40243ac4a0c30f09b005382f107b9c760112d30f037d5428218f693600b4e80698c61fb9dc4ad016f9bebd74a8f43ffa4c87541ff0a7862eee052f757f498c10760618010cb0f6a4939ea4b3c22db2e95c70c08177c805295922a3137c0db0384fd9e53fdfd737636f4b7a94e016f0f10caffe9d7c805e9d718d6f9f3a7ce9f4f42bf649df3bf5fab05953275fe00a9b373eafcb05ffd73fe9cbf3c9312edec062a76f886dbdfe17e831050aa633fd1d2a2a4babf3c4e894236c2db13c29d2d51a93ba3f246b3bed692086f79c675b269978ef3eb382d32260c32fbef409d6ca3e052775feb3406a91b468e1a5e269321011b8180b330723c51c70d53f7bdb9ce90caceb87e6d48a5bd78bcdd29a66c45b84e6d8527a1a85394ebe37454f2a114ee2c0554eaf8ad5c212b848b18e01156e1a996677bd4ef7f73c59db0f58c1aeab853fd7d8ceaef1018d2af9aeaff2bd84242d7d4f10322babe5d4eb4fdd7aeb9da76cdf1ab4dbb1c056e1e831198bf7d4ebf7a52a27efe7ea639edf2ef96fddac4281d017eaa4d837001fc1d6c30c2ae6390ea1f8413f03c005821fe6d600468af4bab5e37100559f9b75fb088d78d1679e59edc9de2727a7b239dad5d8b27df97f3293d2a80d089ebcd068ff73d20edda77ed4aeeeb683f7f026bd32e1d8d1699613146959f42bfbaee6bc0817cb61fe48031ea3e04fae5751f49bf56cc1a6fd4fd262ff46bafc0c67d838a94ad61471df70c95ef4c9715f3821deab8692a900798766d9d6205f048d3aead52ac401eb2766d65a6babf4f42bf58ab3a0ea915c863d6aead2ceeba284f8b5a361a2eef3098b0a68e61dd1914606af8cad68e84a7fd095c1b0a20aafc09450d3584bab314ecd0af77b0c8c82f7fa3926a4c2991f6fda3f673259d220e19a1f6e39c2f5fa34493723fb99110b3033075c5ec804b25405d313a485355daafafb8ef59b56791d7259f4123b28e4acb9dcae91757ede587fdd2e937e22a5ffea43a4d8b6654c6a83ba342a66aaf857bed3fee6ba085696fd32feda798e3540bd3c3383a80703e952e2effbbfb0a28b8782aee39518edb6b2f3991ab0ad254ee3715cc51b5e744aea25f9bb875fb35ca473db74546f9ddf74ba3e3f628aa6344fbeeb5efe8d72ee72a5311cad728d1f6dc3768647b0ec729dc28d1f6da8fdb77df19d95e7b0723a0d18d72346752e945ecfb521f3d1639640ee7e7fc0c4a2a89347313cf3c6e9f7f94b2ae7bf7c875a3236adda5bb7bf7c815b574dc5e7b141db7f73ec8477eafdb524dd47e2cf24aa4fd9c7fa454643e1745887a144a24da9f707b6f0d109671546b8f9a20117f4ff447c98e72b86ddb136dcfef85531db93aebc24ced1dfe8d8e44fef29912693f37517b16e77bfe3183fe9be8cf1afddac5af5dc150846358ddc3712794cf39d06e8fa41d52e9c25fe5615dfafd3fd0edededed40edbf2934755127059f745d473e7f0518b6de4329d0b00fea2456e20641b86974e4aab6dff513f1bf768a12255fccdb0960de65e69f5432ef6a9ab6ae7ddd8fd3344d7ba9695acf95e2883439e67ef052bf628a84ddf79a9999dd7bedbbaef3bcaef3bc6e13919a88e7714b4f49707e9ab7a1b8aee3509ba77d1394295775c8ab6ffbb5aad4acdcadcdeff39eeb576fd55b6ffb3e3af2d42fc5de73dd2f536e3b544e373b14eaf951cf14896b87a2a3f7ec3d117f47bbcef33c8ff37e7bcf63caedb5ec9abbf26b9de779df7f2ffefa7cff7dcff5d6755de7799ed7317f410e7eaf8144f845e66ef612f66ebb9cdac6cba5e4faec7b740cdb65e5ed046cdffcbdfdb66d5ff55e6366d0fb6ddbb66ddbb66ddbb66ddbb66ddbb66ddbb66ddbb66ddbb66ddb36cfe3761697f35eebdefbfe7e8f3d3aca177702dafbe691abf7a3f75e7bef511473c7f16fdccefedb72b23fec17ffc70388c3db7dc9eedf9794be9d80ee6dd5ae90fdb15f7abdddce2ec5f336f4f85be4ffe98f6b57f36b226b1af76dfc1a1d918c5f9999c531a7b6275b4ade9992ebd3cf43646c12a4f237c7dec6729f12c7afdc73db8e94524aa48afaed3d29bbaeebbaee03b9542af5f2535beaeb3ab0c957bb50f521cd14f852caeeb7edbdadfbed79fbc475b0fbae03824a89a394b2fba9fb1f7eea3931859a9fcb97f4669772dbb66dda442ec541607db8f7642765c749d9afa2234f55a566f7a8d98144a4f4a474299fab523ef892038dc807e9d8a1d03d91fc8f3e77524a293b2965d7492965d76ddbf65dd7759d945dd7a93ea855af5271ed5249d9759d6aba4af541aec957a9b8b79192eba4ec382939d54647ae6eddd7755dd7c9aeeba4ecbaae9372dbb6efbaaeebbaae93b2dba677b2ebbaaeebbaae935dd749d9755d27e5e649d94929a5ec3a2965d7759d94b2ebbaf91e286eef75a0f464955276db554ad97552765db729d54ef4a494524a2965b749b93d4bd952ca6d6b29b76d93524a293b49a5ec7e942fd9755de7c997f44f765df749d9755dd749b9a9a4941cf75cbf7838666fca5f29e5771bd76d3f769ed71175dc37f7411ecae7a4dce1723ea9aaa3f4e949297f3e1fbb1fe5cbf9f2594ef71149d6f973529e0d48dddfa93bbb4e0c5a1feda7b653359aa37a8f8e3cd54b6df351dfa34022feeb946b573b1182ff895cc37e6dbbbeef8bf2a31e2955a73a47c0f707df2912d7ef3bd0883f48c7f91ff5effb3e77ffe644a5a6cfe9df37fdfbe6f4ef9b7352cff3cef33cae5ddee6791fe42a716cc253fdbd215e90aabd4d389f631ebfaa3de77dea5162eabd6e7e200882e0836290a3c411c9e7f7cd39bf39e7f7cd39bfef4375a8df2d258e412acae79c737e73cec983dade9b734e50ecde9b73ce39e79c7382e357512ce4046d56cfbf76efea69dfd4c022fe2b6e75af7322ddf7b77d3fbabb1fe9eabfb9bb77ddce6a875a70d291ab28bacd27617d50cfef397b952fe9ed4f4ffd111971dda7a7f9fd38e744ea6a4245a13ec83d716c12a4faa37e50220fc7bcdbfeece8b74b7ba7dd8f53fbfe2ec8397f6db989903f55474947591bf44f7a13a575def671fd1add070e1973fa4f7fa2c95d427e17570857477f71899072e30b55c59c8393b373bb74828efd3c86c736a19310a6ca0f639323bbdda59c5303896c2011b98124b48b9ffb77ffea1bd72edfa88f5f459a755fb2b721f354b6d9976298a076c9719d48689707469eba1f438232ee54b1094fdd21558e41aa74b54bbe47c720b59f7b20ae6dd7f87577365c3af66fdf2448ddd77eaa1c8110f976c9298e4dd6a9ee4bbaedda1de6128e5ce52d35be509908f7f9397ff58f4e970865ddbadf621050b8712703e6421bde0feb90c7841d1c86cb1cb59f07c856fb55b577c6254b4dd56d85f0fa78de5191a00d5385026d5362ebbc70292a3af00b94ea0c0f74e3f333205747aa4b0f54a8a550e2b05ae9c09247d47c5b6c5050dc60d16aa28bd68d4d0dce0f5784c7ae39664d9ce12dc2f889b0422458bf3aee8846fe4651b8ba5ff4358a5767558a1f544f7e52f451bdf9493147c4a9def649b1553dee93e24df5ba4f8a36d5437d52aca99ef7499155bdef93e208d5033f29fe542ff549f1ab9eea9322aa7ae127c5ae7aab4f8a5af5589f1467f56a3e29caead97c52f4eadd7c52eceab56c6a6e5a38296a8414d602ecefac7efdda993761054cf3e75517c89c8053777d8898a34cfd40b83322c0d4268205448c5177b90eaf6d6e664e94f998b9db8939664ec8407ac1c10b931369e6172f4560d1bc80f1a2022f49d4e5b6700c978a41f7b19733a88fbde8c01b03a68eba9f27039fc0f2040f281a521f6fa9abfaa0086f6c982053c7cf092e3637df2aac3b7bc20b5650dfac4fdbb8f8812762503ff0d59d3dd1826a7333e60a1e38aee663710e1baeeecc092758ab5095023f0fd571359445e5093b788edddd5d5e269a36082e53fbd97fd18ceb54db97e98a453be31f398b6b56fb47cef2f2c74533ae93a4a3cbe9e8ea323578a9cd597e08bf47f3dd8febd4fdf7a3ab8edd04d271d1d4d1cdc82bb28c03c5786350d1cee23d8d87182cab2ce128b7d4fe55bd096752d24bed2d6642da5ecea8687f415353b46753c6c4953a329a75aa2c533d6f59fdf8ac1f736a7e0c6d7ebd6732d5ee7e4613ca6260191313d3952b57bca7a7bfbfb160f19e9e8e81b3784f4fbf993a7613d74da19f71a09819b0f0fb1dcdcd4d4bd66a7dbf6472209c8fe57cbfabfffb73687fe8404bfef4f4049b92faa57ece81e68085f4875574e9a6f54935b0f0c3bfa1bc6545976e7056ab5f75dfb1e8d24d0e0e8d81c57ad6dfd0f51ef0c15f07aaa14b383f45f54b4b53527ff33934869a9aaf791cba3674c9e6a7a8bc5fd8d2d294d42f6c29c67400588bc610d21854aa57bd0d5def998c25dca8f735229711d9cc4ae4332a91c988ec241e29d51384fced67261db9c95b3e3abaeae866bedf13dd0c10e1c8b27132b16c055410810219dcc088a62a73ec60063a9e60ee657c994110b23bacd07ef61d7624219341a6046cbd87fb6de3589a4286052fb802b6de83faee279303a9ae34e101068b5316323670a02e638336c3850d60ad44963a7653ed2566fd6ec681620cfbf19e7e141db98e8e1c47c770a363a8d13167d231878eef74fc3aba99fa539bfbbd784a5fafd06c67c231e7ebe812c25842a3f9daefa352ef5df7b11840ef1b85f2680cddf7f2d7813e1a034af5fceb404b1f63098bb86e4debe3bfb0a5ef634c0780a9680cde148fe1db34341a1a0702e91208520d8df7f87f74e9fbe87acff6dc34be47973c8ff28ce99883a24ba89fc2fd128aaef7c8e72f1a9a8e2e753f85a331c85fd852c75ebc679361098db4efe71fc29d2971a6b734693b53e24cd53427deb2c58162dd27d5c038d43f8acbc94185611d794b8ce900b00e0f27d8148f61bdc78433b0293296507ed3918be43396b048ffb835f109423e41386e5934344b86b7741db7a6adc981788bf7f8735c18e6e4d4716bfafa55b665d99ab62cfb461d35270d8de664803a6a326d8b269b5e2699e9c5a68eb2cc64926550759457e4177965d6d1676ec6b1f8accf3896a6339d45d6b4a5b3a0d932329a1f968ddcb8647e46ae3aff10320a42aefd236fa9be714ab35566bce519fd4af5e71c2836c5d781244abecf647326db7ff9b9377b8ec65c366b998ac6b8ed63fef263dc7f34d667da0b949f291e7629f74294831ff32f6ca7585f89b1536cf94a166fd565b449637ce657f5b3cf65335938fb7eba339b17199e01bd74bfb5dc32e12fccfbb1b380bf30ee37f5e3862afa29ca39811fcdf168d8573a1a7234c729a906b6510ea6d18549baded3ae52e24691e12dcfc867aaff3a10f7fb9c036dbf1f3a90f6fb390e347fff1d4882ad89537c8a2fc529be89b129fe9c18c3f9a41ad8f672fb98f65518a67dcca5fcf972c671b39b5f8561d31f75530685baa1312a5540188e3f15261360375f85613738fe2d5a856137fe369465dee35fe3cfa2551886a2b11feff15f5128dee3dfd11812eff10f6915864d7f157deff19734c633eff14fd12a0ce3682cf41e7f907216eff1dffc3f5a85611a8d4dc07bfc3dca57bc673ac92b9a16ce2cdd8f3c934edaff96f9ed17c639ea472e83a24935b0f91d4daa81c9e77e61dc266a62e83dfc53ccf11e7e29f299ba2124d928716f4e5e8f02c0a67819f9638aa791f9d8214c526787307d3b3b84c9e6831dc2b403c20e61e2d96a7608152603c0a6b44cc6363b8469bbd9214caad60e61c2c1d9214c3f7276089308dab743a830f9c0a6381a59150ddc214c9dda214c28d50e6162853b84c9c76a873051d60e611200ac696c3ed301b41d4265ca0663fa81f557f16d87304d980f6102bb1dc27483da214c1fc07c081300604e63fe4c07e0fefdde214d63f2936a60dbd69ab6d19c39351a3a8d311d00e63fc539efe1673a002c56e34ed77bf8936a604c0780357defe1df4fd258ce3cd5faf0ab56c83edf78cb33ce59ddba42fcb73275576affb8025aef192796da3ff6a8fbbc4073b1845f9db258c4cf58c222596a3fd76905982bb0c8a28a2d4d1520b02efcf3fba70aa088428a29be50817a26129a70c2cb1329e8b24336f93afcfd33891d42658a0ac6f403dbbe8a961dc224b7ec10a64f891dc264b3c40e61da61628730f1c0e4f74f2e3b8409084cd2181309b0ed75f8fb27113b84892b6287308546ec10a69c237608d323b143985cb0edfb67961db2d1980e530b48d904e1531ff352fb996c60da3391009b2f830930148dc960028ca331252e5bc8008bbd0c26c0248dc1b05405d3136140f1048bc960026ca3b12438805003cb16323ac026377fccb89c97379ff3b11bee5becf45fd3a10ce1b7ee635d52a01fc2c7c2a77b66e743f9657abccec7c4eff131595fd93a9e0700ce07368fc332f06d66e0c7986c60dbafb64c67f1f12859edbf521b0034d63d0f9d4008341644690c4a18fe0e8db10e8d7d0f1a7391760e8dfddcdc7c8bc6d849e63dfd4f43568f57d1d87a4fff0fca3306815601024bfd8ff6e3cece68a90f747ea7e6bb9c77aaad7a96cf541fcb52fb53eda5f5da952c7c6587c6bad7a17c0587c6586643630dd258152030f05734c66790741629f341fdca3ab16cf6e872703ee7fb69e3fd877a6f56bb7b549f597d97c54be7d0d87c1cda3534d62c1af3998ac6384bacbdc82b2dea59f80a77336d68ac4b0aacaff998f6312612602aeea753ed8f754921f59c97daef5e4363dab3a87f34e61e8dc999f7f4a368accf743426b3aca87b69a7ba822bee98c950a3312a553e988aca8fc932b59f890498a4318dca3201acba5ac8904445d5d5c28aa5172a7360ecf0851839c841c4121838247144186270604337870f422a60820651a881a68834602cb1ba3976e8420a19b8b0ae983a6469ccc034a5290f2988806d4d7513420b5500eace9ae6a85a5d313770e2e1dbbcb9296520f33691e3c270b4cc9c715cd398d4379131c3263024d7e485cb262d663755b1699bd6d4e58e0db68610696409a2cb1c3fc0b82f2ad7d485dbb411b4208917487146197430c1a6175cdd5913128dc6ff00e1831d1d1f3d72705a373635ac55a84a819f87ea366d4a6f5eef29b57740bbb86903bec8618d2aeb7ea18314147800e06997ab5def52ca69824ee321c1d585a4410ba18b29c7a0c0088f7a1752365511437fe2031c61bc200b2b7ca0a20b39b52629dbfba63990355ee002293b70e28c1dc2f84cf383840ff2f3a3421b607a90220799a722b8d801083c3faeff1f3c98c2066840914511646c81830f48f8203f3f4138018103992b409cf106acb5a06387e7c7f5ff43163360b9c2450d24b280b5191d123ec8cf4f12482cf580060b38dc40c304377c28600533f87283322aa8638b05c0a0c70a6e30c68c2d8ca081065128208d1c9e1fd77f9559104e94910571832167e090f0417e7e0000268d0c65da90820a1524c08cd64e1a56b431c3d21d5e7a20248c1b2237b841b6041aa719804140173626e410879938cea08206460499d56c1c561811471e61acb8c2069015acd90c881b803101973353bca458a510860c74502103259ce8a1842742106aa045107658d183531c24705191f0417e7e72f8018d251ddc08b3d482036849ad992b69cea0210e1de4a185018a00935841c51b64a8000e2e3d8c10c4fc787e5cff29f0a188365240658932d0fc7c81657a18e80286145986b8030b200ab0038ae7c7f52fe60e2a8c8841193660700601beb8d2e5d4c0957007d30f49b821c31059f8306dfbc512172d30f802cc0d6d00f9828ae624063ea8b1e58d22e080c100be904d1e8258c10d5cb220b1c41701a491292da898228b1631697ce941e3247c909f9f076cc186193988a288349a70bd1dcdf3e3fa07da2245134ec0d146136444f8f96ab717676abf64125e06e91f7f7ee86a599c00cb972372b0c50d596001f0491de0b4010ef871a0a541dddddfdf00a7414dd7490260786b80d0a9ccd63de7de3d32d3918edd6b1fe41dc7cc7123c772a5f4389179d953fc4c8b9c43a1e40735279e801289e4f3048974923d078d70cf74e488e44f91e3c413b66a759355a3b25b9fa9a57a2a4e137618dcd45e48112bc709d83052264e53e8ef54c7c857ffaf4e77852cb781449872c8d55b2de5c50564361421871373cc21070c0018e01e350ed930dbc49d66c506eb502814e5ca78cf12d1980b9303312ac736cf715c175e3a74a01f73384c172e288c19d4334804d58961bb2090031b5996c8e28c162c80713c950b73a67278803bab6c9cf19ead736a5144993aeb6ac186ac8e61e528c610c38b599823baed5d0b0384b669daf7da47c348e28cf6cfe3ea51770c1ef0505175c9a8628b3abed7f38859981b525cf0c0868b19d87cdd19175e54b06e531d75fc68ec753f865c80a973b6b71aaadbce30a3da3857f8d5396793193fd4c9d5c939336c1773130c1668a9b383cdc951d74679c6afcc32fe314034d5c943ff9fc7d584033a2a58178c1648a9e3ff78ac6de1020a4ee3328f905c00c1f90e5c7323c7715103a7699aa669daa6edd49d6d71a6a2ea36dda00b4ee62d8f14b7765c4845cab670aa5e8347fca95b97cf2adff3227f4a535b568bbaf599efc90623e046f291b86a8414566f7dfcbb2d80d7f9ded4c4285de57bcbbd9ed2689157493949758ccc2a7f56492591652ac2adb38e5c751e6f30b4ad47ddb66d6b3a33abb26e1776f8d0438abb5fcdccccfdccedee2f6b331728d81185182972dc70c716b02d84ba490184b44188aaebc5135de830e68b19df2207b9050edeaaebc51340d4adae174fd8c08b157528218325a1d0c002eba273e48dcabffbebf2e6fb154ddbf5696238c2cde3264e00d77d14b889c15821dcdfcd4a683fee2ebb6e4ea87114aecacd52c76ddc72fa35e9c861d4fdf93cfda2753e57a6ceff664eb5eba47504c2ac697e02ab7218ebb3cfaaf33d4dd3b45d1fd65ea3a3a669dcb43ecd33b73c3c8eb07f0ba68a4346c84ef5870023e8e06b4083397070820c3ce98413ebe32fe488c534317fa77ca715229d968c2ae9285f52765a1f38425675e2048c69aa23938941383203056531667bb6fa2fbf82b250635d5b479e417596a26e1d59756432fd0aca628c75adc10908cac2690bb035cb3785b763e83f72a3c4c24ce5b83194f29747aae0f9b396335994a9cc66c29d6981a672c1c4461db7da5a9ca94dd58ff0174e792a33959a442de2276ee2046c5d8e41b8cf5a56c81153a9ac657df6851c253193556e6a3002fc4595cf60114e62851cc9dff5f1fda232182b64e4ea949bd687c1086385f0efaf10a745d28ad73a4d8b740d1d88cb71a0b07bf6b99210c453bdfb3148f50ec3754f7ff7f46b53f2186fbbaef4de81767edf01501c088b03e9fc3ecf1c885140ddefb3e0403dbfcf571ce8c7eff31707a2aadf0fe2481ce883df672607fa7e9fbd38108fcdefff3850cdb37e9f650e1480dff037e7f727e04020fcfe0b0ed4fa7dcee240a200e8c855017c8b3aae17e101f053dca14b3e7ee7359186f0f4ff37f1075dd200f0aee7c41ebad4f37bde1379e812cf7f080f8a1ff4cfe77e25068006e0b517e16f44912e51f1791e4704812ef5dc3cf73dc4a525105e676758ccaa00de0608ec03107ee755e21208d4ca00604be083f03e1ee5835a49c17ebc0e5deaf1aadfa1566e604bdbfbf81c9db779d4d7884b3a36bff3a99d4fbd0db5e2b0259c577d272eed502b3eb0a5d5efa41ef5525c4a512b0a802d790f028a5ad9812da1dec7eb502b36b0259d97cf12976e386aa5076c897b1fdfd40a075bd2f97eefa15618b664f33b7f43ad68b0a5d483f0935a61c1966e5ef52d71c945ade8c096747e8a40adf0c096725ef501f84f5c0a00b582822db1346a45055bfa1e840700b51204b6a4bd8f0fc5a5294b4a301e6a4504d892cefb3fb5d2035b6abdaafb7ff1595c0a815a69d852f83b3f65490946a99505c096540f025dea6cbee659bffaf0ad300c8417a91520d852f73ee8928fb7c2b09fff435cd2a14b5618a6f32068cfff81b854f33b7449a7c7e73cceb7fee6ad30cc075d5a5a5a52bd00c4a459ed9123babc671f479c80f7ecb7c417bc67ff46e42cdeb36f2372deb35f23fe78cf3e4bd480f7ecaf449679cf7e28f216efd95789a1f7eca7c420deb30f8a48bc67ff1399c97bf63d91bd78cf3e4accf19efd4e0cf29e7d4e64c17bae78cfbe26f217efd99fe27bcfbe141d00c57bf65b642cde33f39e7d254eea694e8bb7f28d90e6a6711caa4bfdfee77da947ea55f82a9bdfb7495596cd2369b5e6915ab54895f3d59b378a222bce23c9da7a249b5a6442d5314262d59c374242d51e6f1445ab3a8fd4d5879111525841782324ae7ef03b8f94538bbcfe30424ad55d1f7ea3285d7fd05e1f7e24adee8320fafaf07f20caf5e1df11e7faf0eb88ddfaf0fb10b9f5e1ef216eebc39f236aebc38f237eebc3df12bdf5e1bf1151ebc36f23d688a9f5e16789e0faf0afc4707df84371b53efc2a91b53efc29b1b53efca078b33efc9f68b33efc9e58b33efc28b18798b33efc9c88b33efc9bb8b33efc9aa8b33efc53f4b13efc52fc607df85d04e1c7faf02b81c08ec65b9e7196a9fe2914a9de7b1c32c23d63cb0ad9eacf2f0865355f0366fb6dc67161baae09851ae3fb9c40f08c54eafd27997e1d494989c2dff0fde71afd3a926ff35b8f2425623deb9f7364a87136e2517f0d9d572614d3cbe432b7cc2366960944bbfc39716211e70e2f00e7489d41d911a2916958328e4acdfb4fa67e156db3867e156dde6f9d35d488934abbfc59a24cd32eff509476b4cb3f25ca394469a65dfe9cd8a1c423106432595d7dd14dcd17b1be2804bfe86873aade1fedac7e4fc468b5fa22a31ba249660236354f34cf80400deb89a6930358e113cd311a1012cda6a014f84433cc10f0e97ba2396b977f9076f91b79ffe191c6a3e33e3db501a68e4d3631d57ba2f9a55dfe3fedf26894565dd1717b7a4a5389e61aedf24fa15dfe44134cbbfc49689734e3e3a726f9a51907f24135e03dd28c3423cd4833d24c7569469ab972e5ca952b57ae5c71200d68f24af52bf38a9ca13ace7f93b3495161c7d1f1251654c7492cd57fcb22b1003973e6cc99334d67b62523970c178e6153f5979ea5c9a3a352f58054cf92c5b37816cf82a6fa7b163468d0a041d3689c9c9c9c9cda69cb962d5bb66cd996b5ac652d6332d5bf654b860c193264c8b0176e865a8ef4c23008d98b065e7b66239c5f1ce8a785f31a1dc39c9774cc79a6e3d71f0db4cb3dd02eff1ef485cfa1507270280b402dca3008476e7ea9fe1a70200e4547aea363183e47c79cdf964cf507d22f7f1eeffd77baf7b7d9de9f4bbdff07fef71c1d1ff5211d739e2b624a448f8c9b989aa21a68973f483df0d1173c8a84a2503ada84a32cb4cbbf68a34bbec81fd168acca97229276f9731be12c533784a4a954d3b02c1db6a7daf18081ddeeb23b0fd8f755502f9d368d2569afbdcabfe5fca4eeb9dfdf69c9f927753f73fa93b497db73fe49a897df9fc4bde6fddc3e09f5fefb214b25b9ef4f9aafadbadf3ec9638549de7ba92a281848c1f0635550b0149df203f5499db7f2d7e427cdef67f201537decbb4ff27efb2a285848a7fc48d158b77d739fe42f9fc9070cfca84717d5bd9c9fb43df7b1a4f91345e5c7923aca7d2cc99ffba4ed2597b469b1a42993bce977092bdeaaf0a42f20a6f34c3e604e63f2635534987fd18fa44d0ccc69ac4a0ae6cfd482c92296738aea89c907cc3f36e54715d49474ca8f5812f82d261f301f36ac30e5ad3ed58e4d8b15a6bc1ad52aa7c5b20953decdaac6a66513b238a9d5dc841fb46c58a94ffa3edcf1ba6d7e92f6aee5039d1e9f333f27874ef9f1b1240ea5d3834ef9f1b12494e4960757603b3e5a36acd0fba4ef531fab8282e9d0293f9e9e9e603e7ae4d018930f180e8d25a1be65c30a535eb7cd4ffade3f96c47dcb8615a6bcce3fe9fbed6349f25b361f4bba79d6c7926a3efc58d2ea531f4b52bdf7b124f0b74ffabefb5892f62dca7343431bfa35d4864577563427a4392aba93a23620e5f9a48fbe474314dd8e7e1c955d02ff46b92ea13f96a4d1af4be09f74bb84fe2449b92e81dfa9ec12faf79374b86bf2b65f479ab61dcdf945475d77f47de01fa954e11fb158357fe47ef347ad16ceef7fbf8e72be88ff28e78b7a5022a3a2a222458af88b6cbec8bf68f545a92f92effd11ee8ff0d3d3d3517f11371d6b730f3ae6301d1f878ead1d9b1b3aba0d1d7356357464ade868930ae9a84ad131f4403a7e1e1d3f141dbb283eaafc283e2a47c79dd5318a8fbad171135335ff498b7e3c3d3d5549c7283eaad3b1c926a6fa8f485a751aa5559bf2bc520e4b2abcfd09f777b302882abe1891fbdc6240e39eccd230c18313e060cb19d1081dba5915b21e3f9ce41083a90674e4008c1f6304171f1574d4b4eacea840230914c7510146e552308ee3260a45b578e115401f8ce338d47c0f25e6a07e0cabf7288ee37e9da85caa721cc771a8308a1e788e4dce57970b36e8a8b32e1765c040f5dce1c78f1f3e7ac0851668a660e146163f426e670c358c61e28c2f56c0940608542c7554dc206a69341ca0b8a8a307f38bf8b522a1227e9a409defa2a42333c834c8b330e263541aa2c8b25127ff91d24ada8076f5a85483dad5df7222ec0ff236c690e22e90f92e8ef2d7887ca75abb46ff454152a73a4556d6a096bbaefd296e959468df779dfc8b9836c0d431873fa8fc3962dae04280b0b9eaa9b89b5cdbc76f0ca5ac524a899add5c4eca77d7efe44829a59474a75d4c698ecc71770689f00a42ad6eff72f58959e52fdce6c51329e068d0a5a8b8811cb2164821c28d3276be94017e71416a96d25475675f9e985f3801a8a5eaed4f9853c32e082fa7d19147b76d3590a16e1b775ac7691d3fc77161e8405339ee73388671dca6cd5f074a5a410db418b3c61b68b4003675ea7cc28b3a7f73c2ba61e810d3b1b401111d74d832858e1ce0c0c547177470a9dbec0b10373675675f98aa57970b3b9e18c21b7f5c898a1414e1250d3475d4c105b61ff6ab475d9703ed6c4110ee6c22c7146ca479b261083072a660c106d69d490144e5ea6a51851a1b370f52d410860f4f347007dae502ec7bcd0738c30b3694e0c4a0618c0ca1ee2c0a382aa846a82df702d4a6691cf7fc9cc609d1440dcab80110686cd901ce112ce0a4f09bba638e9855adee982b70d8d2e4e766091630f113723b2160051c62aa980106153b688de1a09039d43044172fa884b9c205b09baa7d2844d5de4603619ac6fd7c8f13b92f36e6a8120a68e0461271c8f103152c60db73fdb2a99b1a3cd4ad6e63aec0a16ebfd3401a6c7b9e0692b08d8e4d7eaa46b9767d116ee55fe795dc57374c952d553ac14d30bae67e529b76e584dc8f610d1da8a39a16051655f3609aa66d2fdbc574d3d2fda669517ca99a06d3344ddb34b02e19608c9058fa256b1bd9f97283379af0a051264d5d3165ae5403d415c3860b2a3bf119de86dc77963a5fd291ab925710725bf79cecdca94dbbe67b5213c31984f2c7b0ceaf2e368db1da7d47477f0d3c21742014e599f7cc9f334cbbe6773208e58fe0093c7b4e94ed9aec14e45f65270ec34dfde2d7d7a096e2f7853ebfd54438ee993a9deaf875ce473297b0c009b8215c316ca451e57716f9c68e40eafecfc2c62112366e18ce4582b748e18e79c24b5dd51de3a5a936356bcf51a93d6be95e03ea28071bbf3ae72c0561d4f9b2811c36dfa68176f62ba4094f9d6fc393c3845b4307e25f1ada88395c843875c3d0d146957567514051c7b0be13e185fdbbdcf634dd420cc8295b0b6d34cd5beb3ea8432dde6fefaf3d37795dda7b128c80d75149e3edd4fca0e6a436df88ab66d3af8dea4c4d7ea7512da897ff49f99a94bf4914d5422a5d347fd4d73df2670dfbb52fa5aa7dd55efed72fede5a43afe5c03a095a87429172a84a1180421438846684693040d331640303824188d8603415273fa1480118ab458489f4a854994e2280a628c31c6104288218600638c199821ab01403b01a607039a9f2c7eeceee22ac5df0f3a1165807551f1a8b8927df6aa110c1674b1d6a280d2cda534258b42a5c90031f617388c818c37858666dfa00b787d413846b57e048ddb69a24035d43225f49899cd886faecac04c4629171e35786e808d7d18713686dfd3f7f000b586d09f3eb871d9559cf8800e3a1d6f635b304a50c13c06109aff46d0efcda1bc32640d2814c7834bc02484e8e4cd1a87aa62c93455bf647a952e3d3d55a80da40f820edb5276d92db1fe309c0e6b2cc9b2e33790b37d1d988e723ca2af6b7541f35d2ac2a5daeda7f8567d5bc8f5eec201c27e49fee09adbfa923ad4734792634f3969ad4d5825dbd712dba5b7cf12b74bb7cf25be4b6f9f2566976cdf4b6c97d8be4bdc2eddbe4bcc2eddbe96f82ebd7d97985dba7d2d8a25bece0dad9706eddf81d92f71c85acb52b563cf54d1e07211753a37ccb20f82c3d1f419fc553958a2d3260523dbb109123e85ae5fd08d321350bb6151d87e4655e4ecb3e7feced4990259e88b45298805ae594414600b8bf8d7269039844c66dbfb692528c00bd70811b579ace564d99c94ae86b9c928ff509a14a99d0c3e8dda80aef4c441c73842a366d40e35c8c0807f8d8204f00f3e106cae629bc9518a92bf9caa768738c23af7910587b02174db15a8b53112a27760a70da3b23ec68e829e7f338152f6c10c676ce5748b5a38cefd0a9f0f2c7d9fec70c67648b7b985834bbb581a0f7cac0f6cb8b63d9cdbf862b845e706f30a449afe469ab5a498fed4b1417409fcd01820d73436f164f077a7063f8c8f165c9a15921b9f40e6e8de28b30e0e6ad2ba9b9b5228a7f56e685e514ed3df60d62391b6bf9926453a48a7e96e24b38d0784b419fdd1a32f0df10760a278a97d66c3b5db33dde217e32d3ab7312541a4ebdc609651a5d44080ee51e0f76efe3c0b141dcc308b72b5ce88279c18181b407f818d1b85721ac69c16e316e4dca809abc1310932e683f309aebe9be61285e9fdcd6db201013d8ddc1bcd2a8ad3c5df6073120e28d3ba1b32f92899320fa2ffc0461a011945636782d62e0261a97dd2c6795bf3b86909d41c56f476018578f91eec4129a3eaeb0e1639a65f037e7888a7c3df798572b195f0d0de83df1576ab01754670a98381bef29df529bb35b1f4f41b91d8ad3e0f0e79a41f40ef3f3373f361f32c7ac9211aa1cd096e4a4a2075101d2f0bf86d8ad6e9c572102e364dd313829fbf9aef25005ec8c6a109932d071cfc2a523938117185cc0bdffd1a29a8f54faeb6016ec78b862bd6edd5daae08b7f0957722b0ef91812f55bb806a448daf31f8d22c0178a7c4f36de248e997285badc6243092c82972ac31d562fee39db8b4db63721c3dd4449bcbe8e83f30af97d25d2e939386f8ac4b2ea3de570580a4b05ce3b83658214f585e6c9c1faadaf6a40322c1ad58cc456fb5242bde9e9cc9aa09d2f1147d5818f17c69382a72454b553a28f982c27249bb15553e577dc0a038e658941d9bf28c557ebb06132830aca3ffa7d343b7c8445d1552cc25ac8706cf4e1ed92f30de48d5ca78bdc0a339a099f44eee6b9ad9e35b79d94f7f7bcb7bab71ec8c74b4dc2cb423f5b5c77cd0578c8f0b33510664b7c583302e4f5bc8d5b04c3d8b6cbe20d22869abda78f91d434d905555e13bc2135d15c7c59c0c9efa687870314dacd00b916313955581788e68dc1833930808404134ac6f30d2aa9985d19b704a05bcc24e00c710d8c579e51a07446484fa3eccb8c365dedd74d8df48df6b39767bd22f64aced068679562db0316bb7a09038d823eb566ee83814c21903cf997abae5c6fd770713734b0dc4ff5497c0778ef5627283c8e13124e3a54049a1c7b3ae6e5e6a20b3a4cfcd19466e63a12ed4b8f8517d9ad94773d91be6432220f5aec3c506c26b912c6a46db008583d5d8615a2229be045f1f1c15aa4a2a992d44952eb8dc543b1c98abb5dd13475defea9b10496a6aaf6f5270299325f0c7da525c0d73473c933f454aade5c1dfdc68db835a70bd44eb79160f05b890a4cb8781631eb9a93df909197eed0b01fbf003deb0ab9f103086a3d6354f87cd7d2889b319b343d1492323c8a4bfd67b433e236f844583e9da788e75af55f1bb2b3db8b1e489107d25d1b1852e8291ec85c621165767c2d99156e19051d5bb0a1de42a8c3c6e75f6669816e274c032ee232ef33b7f6da653de79d8f7c241d4eee3fac2410c87b80ca209ef5bb10ccc630fe52e183d80b4367867192861b04615e5d9d64da1d5e9915a9f761c93485b771c8e86aa62b70ade658733463cf8cb0f4c51d62ad6e05e8b3393500c76d6840a1f96928bd633955cf22ca935efedbc0a205b4e80b3fde655a3cb40e8c805ea07750444fe4778ae181d9e7c6e6ed99150989a703570a9b960c8fb5da4f9452cad4ef7287c29575483271a7b94d0703e64ac7ceffda8e70c8bf8ed051ff02032d2b6588bd970afab922254b14d1b67c7a4b29733821d1ab9ae3693c5dec62f1f5b95455a00667ac3f4be7a47a3485ca850f98bac91aff96586c133bf34c6ed58e8573d4d40799aed8b9bda480d9648834b13698ae14b4f98a74ce14aa888a18ddbdb554ff700d1bb0fa960eb7b9e42f0ff7fa2b701d1123708482edc3aca6cb544cb6a7b01b71a7bd87ef139b6896f73817b967d89f439d941a7d71e43496da2076309b88c9a58e0751791d15b45e4bd1fe0ef4d9ecff58c0768792283153304a57f9d24d1a79d9cc47d67fb94e54a8e41102ffd3fdf138e6b240e2e57088bae0656d30b411f9bc11339417d68bb0fe556847ded25190a4d114245e13202bf9dbce358983fda0cb91e35e0f36a80d53137b98a0c7d0cc573dd5addaab81ebf62b1d80e9794e6a1471b448813b04f4b26918ed480334a80b75b240480f61ffd34241cb91359dd4f5c47b0ea976f9dc158809628b2dcf1f8050634925056a696b4d85149948fbd9fd0c1b7f9d616e4cd098c620876d92d4087efc6dfe46fb8bc79a0af4c3243eb9482a395b43f04d2002e1718aced6100db0226ac805902d56cf1802a51b59d474f44629840bbfb80d7fa25730490bfecee75cada6a75f6e7280c009f322f222954bdfe81c58954a0bb702b39c46e69089925f111bd89a1eb81665ec7916c52bea636998b399f7004ac3d73ca759730a303dbe41a72b5ad93f6bca29a05b5e0ab0be5c9e491c0bd6273c06102ba4c16ec205af151832551d561098da092fbd7e096467e9c5d518c97f4f6e2589c187b4bb5bfd205eb44f66f015ee7fb45d7baa5f7dee61cd963fb44a43ab971312870b46443ac4ae53cff43772dcc4174a7494775ec9de372c7da7e52724001ad803a9453456220a1586e2858ef6421b20491b34e07e55e3ed4a96df541285189f03a534bdb382721d8e9362bd7830be12bbd8d85260d7ca41b0f34dd51da68a7bab30a6385aa747817f481b5c73e8288609949fa2c92961456ecd3585b6f0c70787bfe74430960d2e17c048d50c6563f000776121d49bc42d0ddd4ce71587bd60d54fdc38a499e941dd1869cc630577ae0f21ef457967f7dfa2b69c1b03090933aeb5904042bbb30bc6146404ce4784c1237f8889d2760e9bdb146b6f40d62fdf881e91b564acdf502a2ddb871f7da98d10b1454afda5a63d2d7dbf85d54684a4d8efa149af22bcd91d1215f68febf89dcbbed5db47d856fee7c8fe1412affe732f8c824645da592402455839ce3c30590ee47fe45712cd937a42bce913fdd785ba56ea4adc4cd1be3ec4669f9a0f12f64135cfc13d343b7d78347bb128a7318d715b9efbadbca25e45b36b537d2c83f9ccbd237f1a4ab7fe8b5ff7ded53a7fdeaa9ffb4d746535c644b0ed7e9da137d686ba37a39139ac23dc52ceb36bd73796a9f7bd3607b19f9ddf0952ed06a55bf9d560ddf1cec7ae2e131ee90b9429f95dde146f2f16ef7bd46c25ce7944cd4a46702ee632595adfbbf410668a23802ec85a1dbdf08d985c88ba6ee86e5ddc339857b723d3ece092021790dcff2fc80c9502f6c29bc1355cd68c7aaf5b4fcbad3025fda1785b9820fc45656e8edf87c154f2436b1f52256cbad0ab2d4ffc69f6226ac019dd58bac0348619d1566648d5a9721d2284c057f627e3113192053bb0b60e98a5bfd70d8ce342aa1ec99baed92ac9c6d6e1d57cdad61db5593d40c27a2146ec944ad028b8d07855e6dc100fba6e5944aad0e76bd06651babd45692a60b943e38a1faa9f7239aef97c10e15fb3a9f7fed15fc31e932675e8bf807b7e293b2dfbfe2b2dbafc4640c0b5c2e9342e89d6bea1dd56e9123b4cde15a58aa38a63f8120dde52e63d933fffe259799bed836dff57e4d5875ccfffcbd4ce68af5ef87bedcc7d30ddecc35f1be080237606a3ee85ab2fb51997ff8b060965e680ef56234da17bad10e278986de8ec9451bb7c8c939683a8ac2286ee4147e69f50aa26d7f9719dadfb6fc7a38f45e533e6b38c8108cc4cb85f47fc2a12dd32f219aba3c2ecc62ce1fac84fa13a5adf72edbc72e87843b792a03ba04e83aaf37d650fbaa6d2f025a47aab143b94b367ee01d862b4b3d355f2781a6504e2e94c3eaa18c2cb685a701593c2c8c3e477f7d820c9525df1d1f1fd3db3b4fd14bc19d8d9d049fcf07e2c9d9f85675a3689571ed3468d0704dcd284894b74ea5ce0ec13b5dee32a376f90e8bae0002cff56ba57396568fb7b32881b3a8be63c47ce50955396ee8fad7458e70aa0195e931f2b04a40964c5f7950a461b9e0fea2f4dbcc232091a60d8386595760578f71d1d8003376f484e8da4b2d25651b8c0dfbfeb67acb1caf68a4557558923a0d0aed18496a89e0cd7d4f9a7efb75c18c39bab58bec3b0a37e38eb3dd321e7a9f56058a1d0052d16c0505e5d13466b51697f15f13b38c16672141c58d9f1c2b6edc1ff0ff0d30de95f651aab7586be6bf565717e237aa2dca02c7547850987a1dc94f7b2473cf0886d0f527313492acf12329d68a869aa431b973fc592ecffb9faa548b467531b58473222bd04a0b3f7d8043ddc4754a9d8aaa01391e09540cfa72cc8f38a7a42577c3454e08c7900b1ffa1311bb725fc46d99ce6dd4634969ca8cdb5564705ad0764ca97f694f42994f953ebc947128846a015256b122a2cbe9cdfb03ec6c18e5816e4ed2b929d59da9ebede6d150563a05504fb98d429fb745d8d5f39eb9cdf1f2388e89edc7e72cd21c1255b651272cba023fe058fe71a976c43ac9762591abac2715984beed92976f257e4b0c5d43d064ceb2e09aaefcb3c1ce08df6b54070fac29b7c6079183b69fb25841899fb3da41bfe70d2215ea78753bb4da703a31a1a9d3fda8ba713f97187ab2bff4fe4c84b5130289f74a06fedbacb074335ea8774536dfdaaf2d130f5e8384d8f7473cd9e05b25a505a6b9a4a75fb6b807d6ceebf501641e73938e78c4386e690ba175e58eda7cff29cac42dd2347dd83eba11c5a29877e9952e7a653524210ff8cf8675342c8732ed16906cdea2e7c973cc02ad339514bbc4754eaf1cce24706294e9d34ca93b52e6a94c4f7b0322a2fa000844e820a4dc71d4a222e95ee82729546f0e6f1fe9f8b2910974b5c6d88180d75b63a1156f780d97e8718456db045fb7255ec801f17eba0efc8d8c2a905c8c0936302851554d425f8d54129f615ea55de7211c40f1af5eb4f2721cfb5cd3fec4c6f0e10d050e1ea92060c08d3e10af805b6784154816fac80d051f4453f778da88c6f70c3dfad46e0add126cce4f8923e2d5c99556a9a8f56aded805ad444c6087ae63ff1a72b1fd133dd67024d42e88f3322494986e8d0c8eee72bd74e3a74bff6d703add006e7d2412359587d40c74b270be035dcc8c1a47f38660913bc9507bdc4cffef15a1192f371dee83405884fc2c9839e8b125de9f2c1494c79a728146c8aac2781381b96a29c2e63f78a2aa83a7d5861a424fb73352574919c21073d01f1d98884bdde77713fd80dd8c2ffd62566d487fcaaa9655f8e01eb72e67d11702d2e8a8ffe263fe57972338ef749bf851fcf6894433c611fc84cd5276f498710ae6778ce02c7b731df6e800b98025ad4e7d5097ab561d7412aa518fa1c313a33551a6c4de8f04928abf4ec7ce3706191081d320266aaad508e64b49f682bac3e4557861c621a4d5a8ea6c2eb3bbea1c3401d691a1b16113e58441ee20afc2917677315127f0b183fca756dc50c3bdd068cfb4e4c3f74cb20e927f6e8f618c9b5f13b9c614664b6036aa0d39477853d9403715f55cfe86bfc40b82ce7512a23cf80ad0374fb504a1a10d64a637d9506e957b7c8585cd4e1535ee6c147efaece05391b7af8edf2667257b97e4bbead88739d369635112ffa43d5eaf5de021c6395cba8fd402857d858f2b650db5b9bef9e859f8c1529781167fa385813c9e6da4c8c04ad71bf537b3182a15e08b20db8d67a6a8e62ca35e2d5dea6edd00925f299974bdbc1338d623c4c6dededc823e0639eed4de0ca8c5f0190b2d0606cdb6381299fb659cf6bf8f1c84eb9f35bf887238d95a03e168709be3f070d696f8d49b185c734c51770ebdd8c1c263d6a726cca91d5f9222f86856ac60616d04bbf8c2b694bf4e2caeed56385852af2b1a147ad5ce5077d9269a0ac5fab52063c6a4cabb4c95fa55e1a645f067095bacacbb8df523bea69baa3c8d04156b31983c2d765a4b39bc6b08caed0e3161afd0c0ec9a3b6c8bfdb10e0df7b98777feebf56769aa45da60d87599fea448cdeec7790faa54e62ec6d883e5cabc63903fd427399caa976a9793870b13582224846d93b5341fed2a4ae268c98958f646bd63e21ea4573f04ad500431c278a8640ae736190977d2d723f222be2520bb6135f59ce83ce8a20a9f81bd48f7d52a481be40cc7d3b67a6c86625d0c755c476d16240febd7737e0862b38657505cbd9d78616170d352afe10cc29ada6055e0626a1239f71e805eb47d48ca9a24eb262b46239b015b31354dc0bf90963e8c29b995b441fb953635119173fde8055106cd14eb8c9f67e053f78e8e0e24e0eda9f4e132143795f1e8877600a8f0bb47894abfc194cf243808036150be6d44be1561ce119e9a56b41c4440f3f556c492e2e9fff5f748d1e4adc4ae9db2500c8a381b890f14fa890f47f8c47a577600e65804fc9b0bed1ae0479a9d74408b040aa049a2f45e17e26a9f757d3098a25d03f42c54a948cf2441981477b13cc6d6209c870524b6847275b2d3d34148ab4c7dcd8477a595d5e8a77081d0a72696c277b62c6360e685d11ea9a38a54063c291dd1f10714886411dd07a322a78f59ba2ef1aa13c0b61bebf0495990249a383c0d8f95b4aae9178960e178d281034e1ead4125a8fd957130901e739778c08cfafab0a2357b35337cc6be801274a66a8e30ea5ea176e7f03dbdcbadac28afdcd8a0698a4a3f56ccb96a7836decc392b9f121b1f08743dc939e9f1f30fb809fb3a3355dbe45e54461c7eb7e289eb24a050c20c636c1522de730391c23819809d12f0c256cf839b89f82b94499b2447bd4f79c56d22d2cc4c2c246dd48c5d7fc3d07f7fc57ed2fab19b070743d073fc3031e91a97829581d82e07e22c4c81ba33f19a512dff067fd0ae43af4f38e779a1eb143477fc80fcb443fa87187dad5f64ad80aa0479e11ea4c757509dc61ba200b1295aff45fe2f6c02c2b683088c435219a62d09e4bde1ef21d04d40cb1e4f79ff7d92017fa638e90d05c0acf8cfc217e28ed0e8e2186aa78dcf0a2d971b1c3ccc3a5afd300e761471b6f9ca0e97b15301ad2fed7c8ff43505f42413896096fb0eba5c759bc82eaa96057fe7ab17ebcee29ec4a7b778b00dfaa7a141077aea239703553b34bc2ef0602fca24ca1bce4423cffc537d25a7eeac56e080f2cc7a8ba0e38af008a08e2535489f726d027e7c0ece2240de1f603cb54ab2e40bffc90f530407772720310d4f206018a85f4844c52dcba37efe0249bcd9b97d7e598843dad0e6319709695e215beeabdaf04a87530f35981bf454529fb75fac72c1d0bb4a60cea003f23bc41ab3e854629e89290ed4bfa3238ddfd99c4c13060a6828e59c9b98924eed5ad37d26564715738ee89811e2c8440fb9560c081e1939ef7e487733b065a1d07ab9b1bb94e868a37d5b263c08b78006e11113344507dc2fef39357450e737e465fea32356cc0999cfad0ba8e4e9ba953725ea8b3ea81f5da66574bec5b86cf50e6a6d0f56ffa0f09c80ce13ef2ff2023742eeace02f05affa5d6bd6be5b089ea5f1a601f087c6eff713833a101594040117c994b6f0ad5b8ff86ee8c20580c077be46c6548043bbd259403e266c3cd54474b10ab597ea8ccf646afbfdd749272b05e5a4e5cfd3b9bbcda2a9eaaaeb460a11fa0389470bad376b30c064ba635725ce997f36c0ef28b947d79c717d78613030bfbf89032593c02501af8aefdc7df17792f0dcd5c1a354a24a5a067b9a1384583ed2cd9a38d2e88a8e10fdfa2407eb1552f522923c35780bd58684566110792007a69f9c556fb92eec970ac992fa6deb2c3408dde733af6857dbd63d7c97a7fb569437396e8fd3b144f00270462fea69e311c4bff39d4562000a1fcb7280b855e3c93d6164e87c3196bd158e3bb6f75d6b97bb61c746070bfaaf6e052df4d3a7bcefab54ccc1cef4d516afba32db33f1ed6079a50af155c6b22f5b9e39edbf4ef0227fa5db71c44a7ca181ccc167866a53ce802f43832a755e1ee57880303246e6a62577841faa1cb688a4f6304f638a1b862a5cad512deb424fc52a7b22bc2b8c25ac8c14b518729574d3dcf434db16eb9f6b7a139f5ed4667cc4cf1e19114fd929d985bda1da00b5fc722878c1f66649b8b049089e33a99496bcde92c9ef354cd60c09ef6d2dfd0c27666e9643f1a44c17dccf39aa576c631b86a5cbb21a0b6b738de03c29a9a574824d88da6378fc7df9318a71b73bc34f3695947151306c1beee834a75236d88e7ffbe20354feee2cffc6170cd70f08b15897b665fbe33af321ca024d396a0cbf83a470acc12dcb8c104da068ae52204d117aa9188aa8707f84e57f38a46b2015339e0f872664628b8dab44385cba787e51a3c5828647d652a7fd83db805bc5b738dd0e5694a61bab7b64948535adc87a50a33f2a7ddf32fd6b36886e0ffd1ffd4f3684663a1dd33979ace3e5295d09fbb20ec1db0955b1efdaacea3f79ecbad57e5af537e5f39a85ae160bdd0148b86d3e460b4ea8e634a8ce4765ce062119c513492f2aa9938de4c5c6e28f5e24f42a3a6baf100b7ed6dd765cce890802761bc5797e1ed0a18370ee5d9bdc8f667b595cbab64b65560cc6dc98de886104177ce7de83380ca1a64e652b828f7c437f4f1e5a1faf7fef5e49564d9a0689d01bc9bd2ceead084547afe837f3423a57b2e9a1300262ed6027c606567a7ad7bdec1628c432fb5eff2c743481c6f24f98e5771fa6438a35c208001b7195b48b661355d8ee030c52cc7af90e2f27aff504c8715a26c09ebfafe1269dfc814d212dc527fca7249b9bf6512c7ea41a880fee91a014b9c353020898e339921457c018b15b2fbf3aa933e19eab9f9f0d0aceeb7d4f9407bad20ceea38852f862774df90681e5b6ece99177a97a7f5930ca90d0c4eca071b60a79411c6427310966391807a19c6f1805e0f142ca0d367726852075075943647db74bf3227e336ce97f388ae3ceb4fd5daaa9a65d1b43d42654b0c29ae8a6f3daab81610222ae1d082ce0866898e1bede75b90b0ca08271f9e2e58d31cc5aec5ee24c14906019f54a0cd4583e9e1fa3204d4a99b27f26912618eb6972c04c35c8074ab95b972d0011981c3d2831184b2d6b0471d953477b582a25c7b822f5b2ae92e12b4f642dd5cbcbf88fb85f1bf02dfd7e07f21bcafc4f535b85f0bef6bf17d05fe57e1f82a5efaca74181af89eb6f709da71598d692bc6562e97329b0ba185733fb69f53061288c04b57d802b8b816aa05b2b981a5a05808d04178d4462f9973144723d7198536c1fd8fbc2cbccaba5f7ba4b41e3e55ae7ccb48c2f4a8562b63f70324a62ce2d5ae71ad5f456a671f1359b7847230de7b7296673888f5b46a5ae52e40caa48e1b4b078c05ade044ff5a9eb3db5d80a4a99057210051102687c500da762d43b9b856d7097e20b7a9542f9c0a5465ca22c1297355bef2f4ebacf0469321897627c50406045eddef4aa6fe27b6d089df93e6861bc1b6663edddde02a629ec5c55ece4b353b12abfa46906b5b558f272e6be7016ff285cc941d2b6c714bf90fad4b18eee3f787a5607815243682431d4a5008c338b7ac124ba5aa35262514bb9446bf3bf42ab2ea27374d61d9bb61d93445af22a71f904d8111775ea042fe6b5d7ca95e190af9e9bcac234130c0acd86e2463d9efe8ea339ece41765598c218e0790019ecb0c07fb85c026d81f73cf9bd24dcd3e0bb758c67feb40d468f755666e0885183776a0341114fe0885bd9a6d0ca23c6dde011619f72f454dcfee99a72777837dabc565ceab8aaff46f2e596c0cf5e6581d1e4ec49a419ef24392956397f95cb1ec75b79a8b4ca36aefc33f3b7ce5d75694f3687acf38f2be500041c114cb5cd3ce9ac32ba8131c81c536780533b478c9c08c44f83932245ddf3650e7618b725063be232d4920c359928ac427f977255b34a4656d589eebe7ab4fc4d92b38fb0753dd7889bfb488c9f32bb9ccac996bf8c135f8ca8881352368c9a315e4b12ffff2ec63b540796d8548ac331b0d913e80484ea1be365c590d564883130de7b4e08768c15d6c1e2119b4e818e36a7b9f61300987c825e440b0d25c7df96eb2732dd2d2555396ed8f8c3c6d3d6c3ecb31265c083e962612e12173e52305e0c4c6e10b68c118f65b2987a8e041cd4864baf484715a6fc2b2990820a8fb7e58f20bebe933bebe10e8f63811bb04d976c2db69edc1eda41d7203418cf409cded15872bfdc075f5480869935eb502085bb849dbafd8a0b5595c7c0bb421229f102d9501766be6d9428f4c3a41240a0d683aadfee4bb29ccc1040ff802360d87b46ec8c4c22a9d778e680d3513021b714376a26371405bcf411c4c510de733c1a7eddbf49a78259d4abb412ebfe402607e67b025bda28ddd131b6a44a9eb4f35c21be74e2f677a023199612a5eb3bcfa8652456dc741fbbe50263b8a8f41dfe8ca71668f43b88e44ad5fba75554d1f40f2cf477ebfd83f625bdde7ac543f63ea0376543c4fcd7ca61513cb197142253ac2c334205820bdd911a3b8b22c7fcb2586b4fcb81fa903f4cf714391c2ded93b94a25b95e0bb7055eaef90dea8f49a65b2eb747861d6a91b22cb8c36d1aeac52556a7e15137456bbd5173c9416baf8153d4a3250c3d7976b0d6dcd93d3a36dd446f2c5546d35273442b45d363908d0b7b9b209578627f1b1bc9ab69fc1eaa39ed85a945d8ed4c70647094a0b1b0097af455f690d5152583369ebc0c3eb13396632b93e4939327823f82165cb2d5f9a947cf58655b4bbeb93387a82daf853fcbec04c9595d9d56248dea38e92c160703cd4fba1f25d4c258687a43f585a26e7bbc474f3622d7a72bba95274a9387018033932450052e6d7fff1e8593e0a3c1fec09d0312d5b5ef3d4a8cd209934687aeab14a103e4e18f6c5be6e3d6e2695803d0468f2adb969361606194ead1cd11dc90047a42aebbdb3d13b3692599aaabf43a94c5720b5b8d1cefd150ad934b8afdca92b3dae1fbb8cea816979e657560d1f0a4f650823a08c174896b736874488fe8510f07912156c3cae4d5b484721e25444e09009bf27f073d902ea73c9716a828f459676d4388bb9b0073a17a9521f2f832abdacec4031f75c939baaf9f6a8e3fa474f1955927ce9b29bb35cbf1acf4a81a6291a3b8cd8b1cf315bb3c127c6f1a3ca8a811c0a254b45208f34f50c185f90c27ec7ce640412b17463d0af43837856f1a62dc81f52086ff84246b9f182f56349314121be1b820aa602642c7715983360e35ff041f5ced65979579d6a87c52f1af683855fb1ed5de5be282aa283bd7adc25787ee46a7ff2e1a50a447cf7d28d77d2e35b93d7e5baa18582a25f768878c4adcf0ba19cc7def9406a8b229043da1fc73e4d285027f8ec918941006966efe17e2af4c21d8503955ec512ebd43457e65a116ec1e3d9c0b00359f1c7de9bf6fe7d28bb190075b41fb9969c92120b8cf9854c18be76b2c963749cdae49412165067ac38d98b89b64a969642a599f666e5047dc9cadf9abe0d67cfe0e3d4a9c58db6ba9ad0f2ff708aeaa900273d2dc10dd3b181798727995b947556c7879e91cc670479e61ca88c0d25472f7faa44a7f7ec5b51f68343fd6415de6c1f11773f0fea36a008d4d3cce81cda0c53da8944fcab592faa4568690419fc24dc206d8d4d9e51366c86d85ffc2e788c82e81a30ae540676412fe0bbc77e0713247831681e2a3f0e94c73b5e9b5496fe38b99dd1d530959faf88b879e1b795f3e05cd907331ef76bc7793f14877304f1869ac2eda4d4c1ebcb6f1506ba0a8d12cd72ccc59ec7e8a1b874153ac78b56e03f45bd66ed0e879ec9256250e45c913af04c1297f8eccb5647ed9205e51cb095e73418809acfbaeb65c595e4125b419b42124a21190d9c0790f03a7f33db6a16cdcd624ceb56c3d3a1e21ba845ce5ed04bb16da5db391784ae3a1acf9950543892f686858ec10939ada34c98d8bcd568a2c403e9e6384f8ae14c17a5b7a77d9b65bb94e7cf6b4c5c20b2a05563d8344f81fb9ce2c62c6b34dedc6302b2d03433c8a263a60954c1ad5aa58e423d5d996954ab6dbb9377c0256b23c99484bf5ac8fde8bfb49aaf22cb37edea1794095e45e0fc2aa0b17dd51a79719bcc288c7a540cc7250cfc032fb4ad145c9372bde51aac8727f9aabb607de1d9882c6fc4f5af35b7fd16a49578037cdbb470ab6b8a7f05ec6772bdf0fbc4bc9d56d6d1c1abad55cf1641633f2ae8eaf227ca9e0eead869a6d1ab171f152e6767c4e38998a9c1bfd4b7be47ff08503a1816775c2446acf1bce925eacd0f3766983eb02f822850d3b40630afd96f7945bdb74a23bf21942836016f251a339c609b5cc9c07de0c2f63d22ee0ca99ac48350543d7759b9221804150c7a7b29da6d1654f0fbc21b094cb5c12755ca8bced4cf68cd0efd0c06d5b71d1516e13281f1a5d6aabd51ad79cc415ae0a60a05d8f8f5102077360d8999f6787202fee81f62cb576c810da9c02310d0d73f49ea166dc027b7acf7802286e782e2bdd232cfcedfbfc1635cf9a2a8c45fc94b3816facf8d3fd116ffd056aefd0d710d71dc1e12742cd931be079947a4e69e77956474f7a30d7dad12435a58ba1578b4accd752bd192f236d38ced872cb6a4ccaa0b91cc408d65f4b54bfb7dcfb58b8865f5be1822f53b7b511288c8551d48a812f994cc2404746fddbe449baf599d9bb0071561e3ffbb5ad6baae89e8e0a3c32f48ecb2d1f6e9428bc0bd0975103325bfa3dd8bed983e6e63a6c6eec614b3784a6030b373a82352dcb840a71a112a53efad1cbfa3148bc4b14038ffc5b0df4a5a9403589e0f0097340a1bee2a3042ac905ec01e9db6c9fcd0a3864acb9c805887267527fe7a082596e46c0e5672ef435834268315018f47b61f04cb337d71d1c96016d66cf96b4f72c9ec3d1c04f7135b748d083d6790e7963edf8c2f2e382e3395788d1424a15ba1a747900f69a5e849463ee8a4d7e5fb54af00ce0cb714d1de3e818cf063bb6c78b1151cd2075cf4ea939fcc6dce031b77d77689c28fc315ac328e34ea066850e7f1ab9bf0c923367290b34f7ee28773c55ae0f715e5cff5b8af0baa3c2133ee6ee304506789c68301b6881cc1771578eea83f00898c55e2affe82616f8840957504a321f2163e0f5288031e49b0fee54b75afef9ada07ecf8f10382b2260dd5eb9600be47066dac2f1aef36040347c2309badb9e196189e8b65998f847d01c05a2616fe1cf3a43d0581992bfc979ad9c994e1d87dff8af126f792529d30c1a83d70e342dd117778407040f6e571676c37f7b13faf2cb3f90c01c96d4c3efae9f0fe301d3a32fa93481c1203da942bb6f0283417a729572df040607f4c96afa5e130e42b879562657f4bcff08d4ac4cbeec78ff2288fa7bf009533f7af6bda5c61688a3166e2fc4ec202d74aaa0b9b2ac350844a70278422e60abd1fef46e34bc580895925d8133d6b74ee9d2cbecb530a23202b8876d10c992fceedbf4218ea907efb9bb74538300cfce1da121e4b3ba9e7a9a2b994d6dd0e7ea23ac1a7efa28afefe5236b8da412e59d324d324e997b0a8cd6b48c47360bec7a462d932e8ec6c2c07a645cf62e179877ff4461a9b6ac8560d0b7eef32ea3809247fd926460a598eec53f871735e771d1259849f0b220e23d1be22f1323cf746986fea377608ec3e5ea1a3267f788c3783a9db107ec20b9f7c518d1d4452b9e1c1c86b6da3b00d11efa359c8dbf50c235ee169e5138daa12739295150437acee048c95b57f9a9245588421824439faab278bad445b10e93ed4ea6e87fff05da77ca9321b84dd8e441c2aed86fcea4857eb79b0ff14669d1d703bf20a4041ab6967e0c7b9e0d28a6a785317fad8af6e29f964399f3542f353d370df654a6f0a959e9735a87286e565164a682a40e7f1a78c7065e763f90739437f57a02e141513e27465b7ad6d7e9e1d26d1e01e41c56ec54def07e3b7be869093bbeb938484692635405bd192cac4896762804fc4eb548ed1d054516f4d2a379bec5b3dc5568eb88350bc29e52e4f2062d875a89b51d3f2522b2e880320bb3f65f82453f19187b6af04ef413827f3797664e085a209687d7bad68ab7ffeb78e4dbaaa3a5c15c3779452ca81609d027cf826d9e6bb21dec3d3916c178780df1c88613d686a6e08297c0df0000e635500c83261c35dd3ec4d01e636a2070f54b0b14e19bf4c8796dde9f6eb7399558cea8e1621f26c9cb92c283cd3ef41ce4f57a7c95001367d418a72a5a2d0430f5bf6aef7105f7bd8bdfc77b2872d587d3aca0508a1d37865fca4e1c50c006fe890d59ce0da72d555e07322724c7e821184ae584597ba98be1b2ce288449d579b1fdee5fe308a4c3a004ee0020d5354a426690b03a0d53da07c8a030513587dffe3c070674f61b1b42feda3c14c68d2530ba05d88d98a000a0158f66d3abc1aa3827a80fab586338edcf791aded69b5f8a2d043491198da0df20907d66bdf53a664dd2b9dffe14e9f8e44f52e5c60f8b51f83b454fd5d31f6680dd1eb1c955cd47e0c9cff7ef916ef32d80341b23d954f71343ae6ef33ee5aa1bf28bff19f0d995cc84a261c237c9d4f01112ee891920d165b4648b1a284ed6e3f7b8b39ff87e858bd5b02f1583caf30bbccfb762e1760203b67f6b9d6128e93d5516f18e017953163b8a11813dcf473417d6de454e51d06c2e3e6b52bd50d185400a29afdd85c8585bf73d0ac79f00a6445b8a682d01c665daab0a3178079343fb40bdb67ba5cbb0ab6612b0ead14efa46907e13d830197088c0cdcec3041b45cb6b9ad86804012d49198ef7a7bde9ddb0ef900ab43486b128ba09b303b7afcca7c2882b7c09075fb2cbd1d38a696ee0dcaf798ed0a63ab38afb03cdbd8afbcad8e295c1938b1719aadeca0338ce1d528d5fd5bcd83618b7bbe7a5d4c361e5da29805a2f96b4daa7c794d25cac9ad0c8db8e538982e0bdf80c2144d8f4841a39c1aeea09e076a19c99787be50c7607872df5d74e0a358453812e780fdf7994791aa2898263cb7c647f7d7c8cce50be231d252efea5ed4ec1d3c0410c2537c76d4fab9d2ad7c3f7e501fb5096bbfa3696601be2e58124ab2bf21a6441959b42aecb06214c94511c02f8dad7ac421416838ab89516c236f9287b3f1caecdd468a88fc9fd1991d30d797beb40dc516122b62d66d975c28134841451c4a8a4273ebb9ae45fd450f510e34ce3d4e5ed46101acd9124e69c531c41f6d0492e8dc8ff2d113d927b2dc855cc95d1993271c1be560aa0a72bccbe2d695f92370106d224a6f509d88212f728658f99320bfacf54fff0fec33f89dd0dc8b11302ff50a32454ee7c781915fb1448a88982be04fedae03dee1fa80eb1ba1b51b4d94d82155a2cf9e3acc081d096de93f9f60681083213dfad7b5f5e6c561fc14b0960ed0d409f3a61a23d50a58bdf579b700a237e32ff83b72fd84d82a7aa8aeeef70ce37dc81a1ca0d0cf190a4529b1626c8bd9361ff56a3542af58b1d6b4c71a188818066a65f98bc67132a3b8a47a653dee89a3c689f28269672f4882e0750fce4a5ec84f648a342ebf6a553b81149d5013234123be08a628c1ad20c460d5aa274c5000e351279741754824260217dbc39b734c5223f788f828e0afcc0ceed7f42d834b21ed20d8e64b464bf944e16be4a2f280a640e74ba8d0b8db4404adef66caf509305ca63075388db59e3fe4621967cc3e30e3b4d0f0739a606f4df25d77890301cb16959d5992da783f37e0cd021e4128ab157643960e26431498492c08a0f624fc18c9ff05fc222ca1023bbff6916485f30c9bce5ce898bd30bbd8f4de9f4a22a746fa4484f15c0098d8883a693594d1e6a6907925d60150bf3b9fb2d092c212d0b6a641439c5320e8a18facfe5b26254d0bba436bef0a4d69ddfdd345db71df15222f4d8781289abd7da94e6d7a9a49d6241884643686ee19397587bd54c1be518c5292c9a25bab8cb1064ec4367b496b280c4ec81559cca3ad6274b2cd4741ab47bcb522d9d5cb62535c99700ecb63998432e3c2526bd73084abeb52a9564460e1d021568a7ddd624db8f6cd58144ec5d00733b1329256d44deb29244b60686617a220b01081726af1dc91829f15b8a88789625498d58df7fefcda81fd335532c9b966aa773614028eeff978e1f659e4647df9a5932151ceb333b3b6681aa2281f2bd9c73d5ca9133a4aad0bf4f0b574c0d5d9b15df32d6c6c9eee0fefb9d85dd5284156ebda7a2eb28ce4f32c0c9974bd5e6af636e5f1731a857026086a6326b686528b41da8e8be3c5f117912074fe0a0caf5ce5343d2f69a98ac0aea42003152296507f4e483bbeb7f31295a47c6b31ce64682b1bcae9a19ed1faae2372ee5725a1c1f9aa51de790999de2200baed28c653c535077dd8103945455bd7cef3ed334b97dcb2124aa75d457235bbc04124fc360d6c45b9c72750c859ab8f64f88ed7d3d2231c1c7c5817f5ba6947a1717187e29625cb0468575ec071b1e17353c253c9de9091774d2bc1377d38c14db5114af5f0a01140c733867574b6c03c5070c88114b47c54c9c17c0ff5c6d4deff21ffc591d504cd6b9c69050177b8d7b2e773c38ff5687423ae9d66548f82ce0fc22a45044846761fcc6ac83f9cdf40ca9cd70ea10f1510cde4020bc0d80b7a5f3975d91017939b6874574535765c06f91366e1595230bea78732107d91c7427c9332c0e251499a473ba9c8b56b6364ee905d5473e4a9326146188c75356872bf51cda59d1fb54d0abc02eb6e3d1b3288fa4c36133ae241d5c0b1a29a56c3015f96d22f964c1c19eba9e127545778a988eec0ecc8ce3a0232729dccd306d3163b976ab1391235c03a582b68cdddd42aca483c08b8c4916cd034f1140806cf9ee2d2c1c77cbbcbee48720357b389d6b68d425ecbfcd05ab4f0816d53ab601731397abe4ab46e38a4867d71053bd1094e189da5ba873c1c738ded2fbd6e5027f4d772e43f762af47aef5c544013d13185cb489fa6402b2f7ad6c306cc7b2be383b8218b7e5f6490cb4cc80753e0815beaa1130612461b14032f956e22f80ef208de89c0427d7c486f4ebc10afda0a0fdbf683ec2aa9826b6fd4149768ab47a1f0cb414ac6bf7a1ac830b15fe0900fc3de360c158fcc8f69767f3b570327f8740977f2ec2cad7a9854a7262382718d85db9349072a9bc60c6bf988a95bd00d29dfa6afe8d5a57724a85176f9ff84f0c2f3467e4736f00446c2e26c0b87494b89e51016534f269cd7c5e7dfc569411208f71bd54fd10690d80125026a18ac5678e9aef7e6f605eaea506c1a64fcb1f9b7325d885544cc790155611d8a73685b26be5cfd201d633d375c59179e3e227b56798eb1ed8db1871ef09d64b62b7ea5c86cc4b4c346dbef93017e6e52ff2ccc422b88c4a6cef28472ddb4834cd04c6062955f861af42d7cf17545e89facc02589e8af8a557faa0d9888ab69ae20c58f38cf4a5cf23a7d8da05a82a0f6d4bfc457922fdbdd48bb8ed4f2c900b1fab59c5c6d92dc7a672e1436330a95eb9d22bc1fc27aa65dd4dcd4491b62f0caad2e312005f27cb42808063e6354357fa7e52942e62eb003ca0975343e18426a89b0c580ca84a719cf3532f5516e0e9a5da2028bb53d844844c6b07589f5be882152b0689b41f59ac7e7b93df2486a4849cbc82c3b9af27c830bd2d01cc17ca7344df4e3f24abbdefe48f4fe4eb078b24d881d69a40a37e171a50029935c047a4a9e6a512e39a4f5464e898d97979857edaa6994aa19d52fcc91a14bb1a4dfe4683a3897936841358c34478e497187891b4b8d2b6ace292fd9ad0c6dc074369737ca5015c55883a0fc7e9eb2eb6c528b7fe8f94de1073636d1edd9377e2c58df5b912341b5cd9ff5dde19403bceb6e661f1864d5d1831dea85d3c3abfc85b80789273d4aff5a1269344aed1d107730febccbd1beb8f1e007466c8d82ac477e968ce609286248d1ed60b69998f74db2511b5a289030944a3e9b957ac70de85e1699c93859508ddc9d9271881313ee4f7733b021c0b45937f060d1d7470e60ff4574c1d0e8e54db93b28a610960309c4896ac3d1276f29effd1abdac90d1da11846c5ef5d8e6b9484dd76ece0fb27a48976de9b5a93d9590f2f94a443afa79de4bc24f5227b392c8b44297d7cf86c5f0cbbf26705255d8ae431e59dc958b2713b4a46c395ddb62eac3db67bf6da1cd4f7f562f74b10b14af59e72af0950f524f2fe3d04f86241e5040426138e196299a8bff05eeeca61cf27276f3526e82a8c33e3a72a1091f0f695ca56272dc6b1cfb90fe9da11553790e63ad2cf531a4665ad582f5b7170790afec3d231a0e55800fe8fa99bcf1968b4bc13ff127164de17922cba0b1332f72de269c126316ffd1e1109ba9044eda45dd780a11eb1bb39e7d61506682c7a4e26ab1dcb203f66e45903a9d131ff70850e8957c18d0539eb5acb01966cea723cf242bfda5fae1ff86837c5d1c602a60cb24ab9621e471badc41dc7e3e34ad2c161abfcfdf081242b662fbc450caf36ea0b552a36d5b57f4dee9ee3d7f49e4a5609ab822bde396b1c5435cbcd7ae7090545b13032b915fea4aa7e0007d786917d7daa3e1e21203ba7a4feb9867c796500eaa9a24632d0072e7ef65efffd089c468514654f5d4f4db6f30be40c1b5729fc856afffc4b07042e698f51902fd5fd76f2b2f02e99e63a16951a2bcab35832e777632ebddcdab2228763c0fe3de45ceeaf930a74e7da2fa25930adcfe855079a3ba9f0be4367f2c5ca5505e8146993b222632b1e80d93a61b759c40b8c222f24159a1e5997c52561a10225e65765dd1693383185c229596305e76e30e28a8bf421ab2a2495223fec22d696ac4e37bf06a50a0583a3e3b2b45fe8d4669437deb8707e3bc5f5ef197565fe5f1cf4425083ac0912ac825ed8505a76c94fae49753a7bffdd77ae39fc6ca5416a3e28dda02411407252addab5e4e797ce08b099bc90d2596e283c0178782b07428ef1dded675d17142e7dd5e30e73895de524536eee533aa926e72ffc27cf5bb8750099435c33bcb34ba62425d52ad331228701183801d001cbf37bad4d4c4e1f568addb615c4883b81f74aa9348bebebae44c38ee7f6eefbc3f4696ab1c925585ea7e74a22bff14e6d15457e0a362c66e63e7d3e8f6581b2a1ac902809f02727793e693247da0093f45f7dbd39638bd3998975600849451177fe3673a781e1ca3c6d1c2dedd3754d2465cf02e10f6f6e0be269647331eff8d055f4330b791dfd8658ff023d20889a65a2104d8807af21ee255d0f75ff2a10833abcbff3a2629859821a0407247823d100f4718760b9ae74b469567c29f1b2124a58c24c416721e08f91bdef8f779b61a51f27ca5dc2e522b5fdc756458d329de803c4ace07200d5342cc346ab00c2a0e9aec586d5f8bb813c189a2155e67c23a90709cfe67b0d891473e4c70d72d22b13a3263fda133e641ef8e41ee21007faa8b1c52c915ed16b9bc40a2bc9248710cf35514951eef361fabfac5e20cb934831db9258046e2197bad02119c3e6c1a121bb57afd6876033df88c676898e2724d964344fe0d6003ba39bd84f913d01466e3cf5533f4d3c03c21b4e05cd9cb9ae0359e8dc3f9287036be28afbe56c7be8564010627ddf949e022cd3cf76f15cd0834ec39a06fe68e68500736d1329b6286e82501bc62d69985584c6294b4d266d0ac41849a9b16045881cf448c4da6d3bea297d81c0afd42d968979e0fb5024913919cc015b27668bca3bd65303c7a2ebddf2d5aea88531e5d541429662660f99490aa04ae2d857967c4931a15015c4e2f2758cea6446d1ff9e28a1035f20c3832cd585506d89211f4367c7874c172a3ac75e4e87dad4ed5c7546768df7af82fe086196019172720defcd026d7e6b113d8e7729d9b3f75c521167ee129c59098cc9b23302e48a7f2a50484de9ccb89222a6f7c81794c060b79a2963ba3a639ceb2bc1b17f76394c3271c5b3d21a0822b7401b9000380f0ee2f813aa5b5ba4fbe5d0c8013df1331da1c5e1ac9fa434f13332b6956029fcf86071fa83ccd2fcbc0840018bda09aebce1d231c9d90817cf4b4b66ae2bf35bcee58195c1a85747c138937080b06ac82a0e3cef1e62da0894f36117928062fc989406a0ac9c4cff41140cd73497a125e8a3cc808483ea679d3d2f39630bb92e768650641b4c4c48b32df011c28b06a22c2e00b79b4f390d13683e2cd6838a487e854747aa12a4c275be5a9e932f95db94bda2efe36a32624d73081cb7778fb2774e3ea932868de12f1667bac3ece38826c1a44c7881951ec22d40e828d1297707eec4ae03be32791675045bcaff8d222624ce8e7b75de6c2774943cd62207e62ad082c1b52b3b66c5faa45b63a2f2bb89e5ad703a9b15528df9d27bf827098f309ccb962887f7a6749177bca8d7029f44574a5fe13cf01b5566170060d35842517d73baf860bf1e48e0a9939e3546aced9e40be1b85d3468aab48d73a2647f654e1aa9119e2c12f8d5cd1343308b1f2a8ea658c1704dc1e39f496ac1a8a883b2baace6d1321a395b1704699dfd337030c3a27bbcdf86663a9a9162121d5fe777e98846975d2bc2fe0111b6d909ae9af44440581ca4618bd9bfd5509a86cdf3e73de804a685c24d1fb5454eacc57867db3f721a440a33cd5026fbc63900cf320ffc9effa32321d32e37bf6a2e0a04926d460e921018f77969994db01038b4dc022305a899cb823286cba9ce9f97fe4b37d406bcefbf6254f6a9f7aee2dfd0bb0f21861d52726578b86f23241fa1c3e944a8545aaf4fedd08abc45e95fad966511a90e37bbbebbbdecf1b3b77de257544b90e333a2974ac1d0342792e14d331f6eec8491d59f3c794705209e14a90973f0a22dd3e430301985d6d974bed283723ce4d1ef0f37dd4d02417e6d5fd420145c74e91ee935618e5cb8b86c7d10642d44f26813208499b02fdc891d0c7b4bca1bdc1020a03e03d64c8e2fbe231f1f85b3d84abfb6084827243a2c8a66f006db332325cda04d98c85a3671f95c1f4508eb959704b7d79a10b31933e97711ba5e941d35f2d0d621225fa7ac3c4dafda0fbdb0bf5721ff2c909d4107ba7ca19cc8244554f8b0cc7ca4f7d264d5a4225203940ea5df2ffd4bf38fd2f434d5bf284f6a788d0c31a1c3c50f1163e92abfca25b4e30ad450eeac851baefc139df64bf1a6d7d307ae7f05cbfc27f6052e203ef1657da0eb6df6653438e5703f3c46d652f26ab02fe72f9522dbdf27d483b309a510104da1228606f67ff4573b236c4cc1cac68b8a3fbb8540cc03342e081c158d700b143e17fb22ca10363c4c2a09484c0e0dbc522083e549edfe08da5d04468f463c2c2a4d8bcac7cfe671849daa98852931445c67b203dc8eddfc01d8b9810e546664e7fcf22a9cde1647c5796d7d24160dfc314b9a450c49259050f0fd36c10f972c79037d0d846469215db12a178cd49de0881a28a3290b9f59640885998a50e31f0ba04064aee28682ca87c4d84fd11d6588157ae93d20e695386cf120b0cf916d241042d96f0b2e75e0ff6dc379a0f51967e93b911386d2dd380a60079056dd6e913c5972e21678fc66465575c6399f644904a75afb194de1ecda7b4bf8d6ec6993dd16d9d718f6d59fcbb782ba18895a428ff09b889dfdc7e61d4bb9a4dc2a1033d687830997c472725a6396b1e4d17be7ca0dd6f084b1b7682d5d9d67b910d8f16ec81f90a44b9bb2896d37024e5ab3ac8af3c785af48340384c9c80cbfdfebea18c93bdd320e9101a639c47e66cf97e1cd644abeed885e08de1506c5031053af08a02d9b8f911eff5df5acc16ef45ff1061e0f5dc860b6be030c61167067bef05a1a80f8704c635fa4b2f0fd01cafb7084e0c3da50ec2017fdaa4a7328940f29bb4cec2c86e668a3566485574b53e92db0a443cca924c11e0a377bf9e6ffe5e737522d814587f81fd1eaa2d03b0f4a0edda342b4ec49a68646622af34c200fc903c9f81e6feaf6d5e75aa5a205bc0d5a7761312fc94611c0fc959f41201d4fdd0a9bc75c25a813b0e75c9e7037b3b55a3c567b1c1cfed684e5bdaf911b466f37ee9b6fbeafbab6b580bb460987b24103d9884fa9c25bba843a60671d2e80409a5aac0ecfa0603d46a75047f1c8dfcf006c7c6db1d3461b32371a9ef2af470a910f89b45ac3a69292c84422ae63a9b889daae9460d9d77a8e7f29438457bab88908bc0212db23e2aa8075234014a59a30b2ca81ad2aaba0762ac0a3277016fb4078d430b2086a5fa64a98ba9a576e003b76fc280f38ea8e4e31f28ce0a3db75c6c935b088a38c808200789cc012c2c4882ddad74dd19d7b9914422da39931a6b46b945e68c02c4428ee68e3e4cc8f506b8071215dcf61b05bbef533eb1d4b0552673c42e46226f61b4fc45d629e0ffc62608355a719092550728ddc9b69175a08974e8c43736d6916d112684c6d4a5e22a1d1449f6e7d89ef19a1ab6fbf4dc48d249ca443ccfe76709d87f038af685eebcd98c20df83e299509f02b46f0b9fa41123507917e83045e14c4ef0634515e92fce85cd0db2d0fad5c772777b4f7f9447a1576619184f871ca72b8b865d5ddce075a90bde01fae5d025f8c4cea9389f0db00af0c6f39779a6143100d97eaa8f76c48859c962307dcb2d70bdfeff937bfd12bd2c44457670dd66af8b3e1a204a98670c2f280fbe014dc9101dd0e701bbcbb6a0fd44b0a3a52ad572c494ed42e079ca990a219ca6ff7e8e92732677391cfb4b860e524b0793581e6bf46d01d9a88998d8fb852b94a4f7163e375d5c151975115b2ae055d16151606b775871ca3468218e3ba66bd8ab31657e9ec1a0367b5ed098de8ae44945ff12482557cdd6c743e509bc9735574ea58a723e49d64da8c515857b9c8aa0c2c3d0bcaf25d27ca5191104498ced4f04f0e333be86f2da946959b302aa68242ab193c242e466c46ce8d856f61d107e6b11ab40632f1b4a108a62fc90488da4e277702590033c237bce657a0465c7d3db8f065491f1cda78034da4e6795677e9102b1094063a5563e3b3417e04cec57ef3bbbff42f1e8039e6acfe6efea7a58133341d15ccf3752415601a9ee3ea9fcccad5fba01abe64af93058301a9807f603ec07c2eba179be6cafe0a3efd3f4acf356e064753e875caae20c255bf70ed652bc661b68ffbf1adf659764952c93375a4922006cdba87b15127a2568a311115b939c46b0dc590332e3a2ab8e4daaa4d03538745b54777a48c572f9ccbe23d3c39d0402a6ce5ccb5bc54f784a073e2204aaee8c1fa247657bdcb5e6d0c0c6c003fa45756ea53bb56842e18d402a444d4864ae0f2ec300220bed4e98d9980d9478178397d698a0d99575c88fb7d09a75ff18f819cf1d7e116f7a9b921ce17d2fbd71291b8a1496f0e9cd60a841f47e00928fd17e74a311baa3ff563293a1046df6d9f2c471eaa9fc1bb399668f9e84bf41e9f9b36c617f7fda29a6cb679e86311967a38d76be34b080e5af0253b4929ec5aaa533acc6e2949afa5f1b0035cd8ffea39c1f41391d69c7086378e34dd27b772700c9cf08d0915d5c7150566771cb05fe32e2bf2f25ea48d6a36d746bc257d63022ce56fbe391d9ff631373d3bc2d285152c2d06cc75443c844caee4dd7f0465296adceed64c3ba8d718ed70614f0700f2d423c1c62585febbf5301800ddda329af153823786bca6a352a0875ea90517339d50822888c628114eea8d38921727234c298b647fc4cd0fa6446a13c752dd51d655491f87f46148a488454f55808bf011994c50cacbf0ce7cd5c7112f0f924c3b950aeee20b35a500394edb1ea87e5a098c703550024f5164ec4484674309eb89599338568bec99a0c099ddf35d30d3a09ac898eecb59d570161e20e9752d464152443148b8881304e7202b8e6f1ae9e806faf95ada18d8c2784ba5a960b9438517f8eadffc5db89bfaeae90f887c37eda9b235a043bb0f401d01509ea41e142af61a039d018e59bf251783462c67bea4a31b600ce7d42baa850c28d9c7c03fa65dfb65a300cda4a071632ceb4840f5f2dee72f743a96c3025a7c12153007b1dd513fc737963c035eb0d4fcac0cc12ee66eb1a3e7478adc76db5d8531e1c8fb4b328a850d7dc574777018d6e1fe39b4063d0df84ecbdf7965b4a29659201400b230b5d0be2963d5a625c686b2ca81963324c1ae39a47501a02081fbc08f1450938362c35229d0de6181b9d1a4fd8e8d9a1ce9baa17960f902c20370cb125ea7673330608d7182715d4b80a020395125b36aada68414288313834e062c3e602b115ab3c1ae37c534222861d6766e0f165736cacbcc4acd898f8f4ac595d712d417fac80c87e84d48e1e3f56407c985947683b6dd0307da1e189539ded4620fdf0848724556cba3c81d9fe5f8b666d8d172e38bee8292366fbcfd09324c9328488283ba474b961cf3528648e48a9c7cd86253eb0c0c3c65862c27862ae0a6047630c72997bfd08a244654d1a33418aa8e1c42555434b6842cf9a182a39888e9823a2e771590c11b09b4baf7beffd1437d7c42855a0672d8c19ce872037703e9463aacc12323d5ea0a2864e50ad8d923b8570922509186cc8d083903461cc5420ea590b3365850b736b6184708e0bf383e656fce8590b53c3920d1343768c6710a331874558ac0acf99334da6ec00e405263892c0d4aeb064363f4a70522f84f9eb98cb39c9189db98b89787fbd373dbc7b5fa05187cb0fad2b1c7646539b03c40bd4b35675a6a33687aa30f502526ee2308982656507223427e5860c9aab556179cd0182089e97aaca872a43f25009a1e18cd48d2ede4bcf5a1596193c3da56c3c757a4ac180c469d5d90b9a296df5f482262a055c11129493cd096a4e0e6c92ec69e6036a6a371aa0b43451b2647365a45af0a202a6679722b0c4cc81fa5323e9191ab967e09bf6ce172feccf17c7156670bae247d2338491490ed4b7be4723518fc037698b4c8b6a3895f46ffc0e82915798c169fb481aa9844940033d6b554c558ac6113b6cfc08c09d17983b1adbb2d8f8e9debc32d0b306a64a63dbfd72ce16ddc596b3d9da2e5feee27befb53648b91146df7b654f652bb2d35b06feee4eda4929a54e66f0627842d7f2025dffcea20cf4fcafba7b1326334cd135839a81a66e85e8b47fce7356279dccf9eaf9598c4db7f3457d4b638b0c55b4b57afeecf48ae79c3ef9ac422daa0b41e060d3d3ddbad7d27237dfee5eb2cb1c482dbd5fc6f09722f74e52c7972c6345790ab991cdf6edb57656ead3ba2647e65e6be79c73d239e997734e9fd6291dd15a6bbf8c59d2136b3855d252199da2b6d6d20a5eb28ed31f7badb5524a29a594ba256bfd5b2b6869ad158fe50a955c41dfaf967278ac9f6580da5231227d5bc74ab9a7291a1d457292078b1e2b3578f4b8b139329aab7283a6b92d555cf6dcf0a1523da76ca9a27a5a17ad26b23f7a4ae118c2a5a7149d22a6d4122c0e033d6b6096e8aca7540eaa8ac3679faac0204f930c8925a763740dcf1b221fdf8cc53c0670f8bef4ace1d1d256cf2952503e6646d0bc60a9c2846a8bd5942e361bd373ca4e151dea2955430b9822b302f72d9820fa65ffbbb684abe7bb0d1770df7e0d4ba8a29d2fa6ae4e6f30ddc4e0c04a419932513627264866d2a4ab808ac90f4e890d948a4a930ef5a482a2d143941cb2874f80a8b30a8a4688f5ace1c16ab295087ba62263c1bef762d9fff798ea0a8c5a99f62bc7c94e932b5b1a2275f60da3f5a2320284f1bd35aa257d81f6bdf7e27b42cf1a550b78c8c55e158aa7d7bdf96295c38f372fb85095a58ccfe5a893d1ba81a30825254864ed0c46e79c458bce3e3b670e8b554faa2871340a3da9b220b93d887972417aaacd0616308a49870a0e4010a1c58717a636fe22054b1555162428a45c71a339ab034b5ba067cd0b5651d19c784cca1b636b82b8f1bd962482e7e37156214b6b9a398b8aa69d2c9448da2808ffd4f7f358a37b6e4cca9bfb39963313286de7efc61b2e362702abef0795e04cfa92952c6741987c00f7539b20eef98256a7e9cc8d4e13fd6715e952eb34c4a6cb0c66486d96e294c244d3652ead972a4f5ac6372902888614d131d9b3585113cb58ec57c858043d20ffd49f47d6b8e162e74fcafbebf2477a9fc76e82e0033dc305cc23b4258904d53f9ab55d82fc25e85a585be97ffd204b3ea0fb4a46606e4c6fd33757481112c4078d224a11b2a5e9c362294ca0b4dd39999477f7f4b3b5d612e9c8fc24d45c9240df2feb73a4e58008aab66f42cf70011a684b1229410b6b2bad7bf614a07e69adb52ab89e24d0d2bab57605aa89e49fe10907d899a4b6afcbd40987af9d3fe79cf3e79cf455dc2feb8b7a4e9b399292945292f47156ca6df9e810ddeb355f58ea72cd17b586e17c412d08ce17fe69fa625e97e7cd179d77dd7c9169cef30557396ebec016e3f9e2de7be70b6bed7c51ab9e2f2885225a5dfa503a5f388522ba2eddc539347fce39e7ab703d2da64feefb1c9ab6c59c3218cc84d75a3fcea913d1ff7ead93bc5f0663319fef647e5d55680e543a84e86f3d86a7bd03ebcff976dace73893d28b998cb9d97bd8e26d1ab0a65956c16e672c7754f34e9aa4259a58ca7953fd1a4ab0a753177b9279a7475b1c54f34e9d66955fa137d5a4e2bdac45fb9e6d975a50834256dd61c9a4fc95b9b43f3913acf45d8b4fd923211dd490e540a259639d72f34aa4bf5a916a94d35485daa3e6a53dda13255a52b335b5ab7db9b2cac2b33b73759565548a060add6da7b2fc698e3b2cdb952cfe0bd18638ee372ce5d478239441f831c9773eebacef3bcef032d0856ea6006bbcef3bceffb40100cc32d9775b92a7557767996077e1f08826118ba5caed70bbc32136e69fa2e2d4ddf7573bd5e592f2c4d5fbcd2f44533e24dd3f779a3e9fb64fdd89f9f4afd27bba8d51ca24f9b6a4ea06811da447780a248e81365babda149b406a5e5d9d2babda1b43c5b590ee5369ff22877e2508ec4a3bc8ad7fcc969797cc97db892d7705a9e7b3d4993604655f12b4d9f9ad1f4a915add556a734a55f4e2b2330315cdb34097388be3ba5b4d66aadbd175b8c2b75ec94d65aadb5f75e8c39cb71953a67efc518731c9773ee3acf7a5ea5ee7139775de779def77d2018da30acd443effb40100cc3d0e572bd5ea215c54a5d0c5daed7eb258aa28f8fcfcf8f096bc244a56ee2c78409180c76e2c4091428500001c56c2c56a9c77e422313f44dbc0918ecc4893086ebf28d2695a10863b88e015920a04a1d28bbf21ca27f22bb66f81e5d8e405bb22acd21faf646a1c439dddee60b4fd3bf51b61767bcc089c14b8ddabcbc409453c8884400e176f65d14d15d8a80b30dcd55cd711c478a36864f659c6b518c2bc51634a7b9cf1cc77199fb4cc442a6fd65736a4ed9424397325d67dceed860830f2526767685c588a64ce5a1742a8ff6da1c22ce85f000ae90bd9027ef13d2a4f36e27844ae8755ec77d4035c4c9469c1bb614f122a4c70f77e79297ad9867d6a0b6b5650b8b9e23a06c6cd318dbe043638c2fc721b95c99f3cb6047872378289d89ea62830b1e3725e24c8a66be9cf3113e7605c765bca531d6b8c21e63cc45d550f5831b29475cd9988bc64b7134fe14f8662a272c742b38f231a6aa418fc618632e731cc73d550e5930c61cf6f4a4ba218c0e75f9443f3888449d7361f540ac476750e7db7dd8751d999faad00c8df03782116e58009307098eda962a534af0959babf33c6fd1d2395b2f4a55687a63285b7144586d35db2546617faba151f79d14d70ad9bfac0b54f73434ea9ef3e89620449ab96871c9a3811e7254e961071ad204995a52e2522d45851c37ca56fcff0ada02734f35868eceb2153231767f858c071d4f147a38862a2a0d6dea2cd0734b93292f505b62d8b2b425ce531c11cf2d315c7c31de12e749735c7de9b905cb081d56089e9285a5453db7c09153db82036b59824e76e9599b5242eb767a5a8133660a0e3775049ebae25c7a5af1c18ec879548a8b47a76cde94951894c58d1515931e70871b75cf97a5a95663cf2c160cdbc9ff82ac3d7f6250c10462e0e771350b115ccee017840acd1da8102755840a71efa111376b51087458a303131686304293d2f945289da56a2eeff17fde18835159d7c142b0f2830b560a895580169b94a6212e9015ce7159c014799b7b187d4a44f41ab5c8f5fe25bee9cfff738dbebd115b5521d7bb4814844923bed2fe1e197482f7df7f240ac0f74825ed3ff7dc9f832ea307d034047096f63eef7b1c558bbef707c723a7133c4e122db44d03fca39955e344db34dac4da2049a39a71e383b6bdc7b65ae4bd7f86aa42b95685f25315bacafac6a013be07ffe392b4bf37069de03df8de83d34a97188ae2a82ae4ef8d59735657b5e8850d5a9a6a59b50869fb73376eab16b9ae506951a26dff4cab45b3b6548b52e0926ad1065fec10f144dbfe9c522d428ab267cf9e3dee4ba52795736bde3c4a9718aac45056baac35ed9f827fb67e1d5fe1a4a5ec4c1c59baf08fd265f6a74b969615556baa4fb568ee015c51b26dfbf3dab4db74e94b55c906558bbc4695fce99267f9ad1679152d4e4cdbdfb76ad1dc95c9952e597a520b1ab46edb92a5d32a59ce2d4a96f3a64bcfa2512e7e676511a9a3b11cc4189d42f4694996a2a625d167015094787f6a4c041425062d400507ea7f59c9a012b493449a96959451197d4baea0326aadc645c440041c5dada654beb9c2fbf05dff5900641357b8dac3ff7db9c2d5e17fa4a532d7cf104648662a73916236f24870dafb354d6fe9a3679d5488fe04bdf17b1fcf7b79d3f33c6fc6e62c4aa15ce16ad74fda22244b77d52862f8ae31fc29ba3e85ea43ba2af9893fff22cbd8c4ddcf997f4e32e8452a60ea27c1f5398ba2ebcbd8d7d7fbbc4796b3a63d6f0cdf4318f36f6814bef73ede8b6429eafa22cbac2b59be8730bed2ce9fb146a675649933598a1c59c63059be8ca874a1ef9e355d5f34a7b92b5cbf4fa3d1c05470ceb2c35ffa589f9c289622f989359c3817452a3341f4af302aa322955130c6715c29860ba8ba3ead95487e91b6a8ef9bfe0caba82ba6d58ed575056b455ff67b078a1269a54f29adaee39bb485fddc7d0ed199a64fa3698ef429bb27b0a40af857c8da2707f41da4617d8bffc3600d1b5035fecf2b754c9248d869149ffed7dd73a6b328971cf77aea1252d0f52faeee240b2aa3ef48c472d61240820b9282a0e9d38fd9c1a2c5fab93ead2427d6985aee20a1cbacad0bdf5c51fa93a635015446e7f4c141f9b907016d119449185467fc2b90807e0a1ba02f83b6a0d1f725ea3534a51e44d3cf1c7e006d41bdc9045ac7a953d80095510c3811cb19a500dae29244baa7cf00dac29222b8a8451d299369ea02042aa3f5e9c39a88fe64996c38986922e2f7d048a4b22a14a32b501d0b8b8895deffee945d5b1e71a4756d2956c0d4955c812ec0ea195e32a804fbf52d098a806a4b6543fc9a6faef8565099a52d66adb5d65a6badb55622cfa16b4d405d223a4984fb4aa6a0b2ca91b90ad5af15466595bebb52988f9648dace219fe15a04fe538bbea10338eda4750efc39354492fcfd46a3113a600377173488a0e91c3a204893ee2f18b0d70c189d8611d3f3c31c7595333406bfeff3ee0776dff76d307f86f552b733e45c48ee340f0ca796caec745a6da51e0486a5b2d085f62f5dd4aeb3b198285e51ccf9abd6c7e7fec762381613c53006d5305d7a18c303bd02ed5f561096b23086d71002b30a553b2dcdae4ac2f034256373687e2c8c5161d807d4b061238731aea63486cf211cc6c0158958da30c694953e3384e1b030069d2e8a73288c9135fd1cd22e8c40180302425e1883d3dff77d9fd3ecca398731bae99de7a24f02ad9d9023a21b1919d9a4a41b1ae1d0e8558f8847c4d22a69ffd22ae90a55a1aeae68124df2277f2aa795f67944f49fd3b38bc22071916f5621c432c7f08f8ac0dcf82f8c2ca31486d730867d19014989afcb4efb979d9e6fc31831f2739724c291930c3ac137fe4a12c1749c7a46912cad4b1fd663003dcec1fcbaa74e00b4c7d13674c09c3fc939875e335c8b60be0a3d41f40d1d60424f32cfa1c985313a9de7908725642aa361095997483a53590d61509d3fd086255c5dce40f086200e4ba8ba3cd2d90572210caa020c4ecf8741f524b3985fa2c8896287455114bbce155eb0fb6ca55ed779d775dd644135fdab4b14684a2251a777be598beedb9ffe73d3b7639093768ff52b7914e41e1a75b3f2bbf2c82013eed347dad78edef7e459914126d8c78fc9a3a04caa1063ea9af68fe1d92ced5f1f69db47da489b84ca8d33b83d7bf4e87d1d706f335c7be0de3447962650d232ee4d73ef745b6e52afae72a629929d555a69a01ebedb4a6bd470f72414bce75de77564387c9db6819e54c2c8a9413aefd24eeceebd1cfee1b9edc82b503ec0c9e18a16235b8ec3099e8b85e49931959526cde949f584482ef244a2288a60e63ecfd2e1f1832dee4090146378aa7878a63c3c603c3c663e2e34f29ee0aec3b8c31de98ff3cbe33cdc610e63bc84c6185f7c87890acda6fc2442c56a5488bb134585384c8471d761e14265c35ece397b18638cb1e7e59c3dec1d81c28ab1ada6ada75babd56b663b353b51167b9ee7719907eeb4b4b8a818ab6355e7aaeee052a5e454c5052b2dec7ce309114e26729e16d44fe736d749aaa3d469fd10d2a9d189ca353ab64e26c6a8d888a4902109ad2152369e3c04ec48c207ad2e4ad876d8d86d686c6b5a375c1863213648f570c6852c355ea30b969395820149e7e3390f7f9e1774392e672e73f9de7b3fc58dc53a1116d3baa14bf1892c61244b0e4196f03c09e32dd411f15c55a9c201a7c71c193647c34c9a13303d6b73a2e63cf9d0bce62425b125660eec42a3fac109c1acdb97cf88588c25e1238920dc4f47b9bc3c7a9168ea9078ea7068d4e1fcc3613853c0db13e8799ee72901ebcc5976088cc2c4989ca78ae128fdf8cc716e3473d8dfe8f9f1384f9fb3d41735f80a404f2a6080c474d082d3bda993ed0d3cb67a50c2cdd41a67810e183a45b8b8cc3d1962e68d131410223a384d8a4e142895832ad35012e2cd18d89b2a27de3cc1dedc60a2f3baf4b8e1917a769181f6e64608ca794313398e737313dd44b9396265e566880f97b91462c011c3530b2da400cac67b76643733805bd624f16a6e6c7462e532c771f5bbd379c9dc1b971070ca191c150044b8ca705c1b321a3f0c6ce3a5b3d3e651cf2e3a9cda0c51850b6b6d9e3095db654b947ee9d9c5cc9618a5ee2ffedb60270d97257370d0a045458f4ca65988b1152926b6571cc26465e949911caa245942766dacd65a6bad44594f2f738cc846e48a25ce7c7da0e1870f41bca1fdc09347736c9a4c2411428f9c2b5b4ca6a46c0e0f153d506d5ed05c069be3f09d36b359e29dcbf7b2b1a26fe6ba7b6b6c86d077c244588c4d53c8711c0772a06717354fd82cd115294a18586401904dc45fb2983793a548c932a6ebeb5b65d5048dc9d2849285be973341cb6041e48405d0102d232c8ae8f9669ce849ae4035d14745a6885e81ea1907d0214021c50293863549a65a9081485597cddda1e3d273ea071f0820437ee939f5438e2b25574654e859bb52ba6a01cd1e8b664b0a4b0d1aa6a7d4172e4eb53cf7f527c7fd9cf1d298e47079bfd61744fbf38ac06aa7d6be870c40ba4e93c499ef18cd3dac9ab96282c3f7023d6b667ad03f7a72b151430a8292684ce9a18716ac7e2831002847ca24b194021f4f5b353334fc7069610911f6cb91a9a373ce99bb97eb70e46cb16ce60e630e572961050d1e1e7af8b05385b91fae7bebbdf7de2f67a6968eec8084921175c820f9d10166ed54c26389abc2c42b13b19517ad3269c7550ed7ca8071bd4ccf5a193965d4883cc4c947705564b890b992c920b9246449e9a8f3da61c3158238b050ed509374041142e89071e2a4700cf18354430aeee899014e14284fb4c810b9a18a8f9e5da0bc69c20685381db05165eb0907992e67e6b089d1c6a9c8edc98e254e924812ea925523c796247792ec8944942d4664b92df9c8c1c28d885215f00051830e2f4495e121c7aa86e3e8f2e7c8b9f7e7fd7cbdcc89a3efc362b568ceb961ca0d776e482293b52f51cd4a498e2c31cffb43a4ed097f087e956e521eb1debb8447ace4ad423e2bd26bb457d6ea8e95bdd92c2544fcf5d2b6b6444c563be26fe5cfe451471e4d29515035ec59bdb39dbcd66a47f4af5f44278316e0ba7e253128c016216a1ed39257472ced92ce2a6a5074c4d2bedb1823440e1653c6a7262db1b424161b903659682c15c1a264644d96166a57a2e20c2164851a0da6adc7963d2bd4641560ae4554cac9f681e68cd690255ef0f850e22987fd555a9dce8ac33429a2cefefe4b9a2824f60d593ad0ec6e2442e2695c6093647f75881eaeeccf5aff8125e9cc28650b90aba031e4b4da01e4060078529620e4acb8a241052403aa207efc108030578c3061b04303ab64937c106136290419e80881b316f9e480b2b483c6ecee9176b6ce0109d639629e43007019f6fca06377230854f6e74daade7469620397197a0cd1b2bb7156e1d99fddb2b424b6b26e4864ede084c6fe38265b5cf6ac1189c1b6bfceeaea66e545d9e4447d50b538e2c4d2504b4ddd5899ea5315a270e8d737b549d3af4955c98d38b1344c973549d3ff5c2f5789a4a7a0f1126477236ccafe5680e0f865908db4c1b14396a600583555a0440d3c061a964052078f281b41090eb49d1f69e3a63944bfcb58c8978c300cf7b18c9562b9018debfd3a561b8660d947f9677487a91f7bd210ec23edaf1b43236eecc82013ba2e8f538faef763dab91ad34e961bd032621affdc1d26311395d1c741da88f54b197ed330d139c860eafa3549ca0b4fbb1b3190b23f4a86ca07ab6ae50620b66c47b068bb1b431e2a151c6e6abb0b40ee0ec00406dacea30bcdfe28289ab171a15264ccce63109ded2ea0d1a1b6f3bd730b0b1ba89dc7cfcbfe3400672d02729386b6e7945da17d39b26795cb90b08938b5d03863db798c3939a24a66d8b30ba07879a658d8f1b48f66cee3c615dace7f62cf139d9d49b01b83fc69140e20b49dc72027b53f59b5e7fe6ca5b6ba680d2517a0761ec9aafd5db01b8fe6158f20597b669780b3bbcfe3d14bd933a2a30c82ecd9b48d49de00f1b1679916c4cedf75ef91473e440aa6b2f62cebb161e7efc8231f628992357bc6bd11b333397d094a9ca49dc70c82ec4f88da68141b1a45ade85516b51240d6119e4569be65846f51259ab48626312d61d1a50d2a8d6e1541b758d01bcd5243b386688d42a5a15003a04fb4e98a3609c0834ce8f21864427eef3df208f6e44d68c42687aa11213a94a6e2e7175d9fdff539bff7f9419fefdee7f5ddbfbe23834ef8befbefbb0f7dc60788a302cebcc6145c230a6640b08132e5ccd29446023258dac3f16331afacc6580dd9a2acc489a54d38f23e3fd236a13bfabe7ba4fd8d78c44bf50b5ed29469498c38b134c80138b3bb9227851193ae4fbc0198a7971d4134ed4925aae92905d50ec2da41dd1cf29f618ac0216a4f2b29334f361c4bb63dbdd0a8dc76370639d941d94158fb9bd4c71c33b7fdd55a8688246efbab5a43ac6c0b6a8c44b954524692602a584b1c9847172454b9c8a36c240223cbe3a4b34467c903f3e8539698d03e308f54c8949edaeec62028fb03bf50c90ac13c7680458ecd05e67172b952436d77230846f627e6d1a3a4d101b5bb3105d5fe44308f6e85c31da6dd8d2ecceccf07cce3dc020415a8dd8d2010d99f0913ae12495f99c177bcb03f16e0ac4547be03cd0d55fb68060427889d7fe648b4ecee8f6c116f82d84737eeee66009843b1df12631dece852b30300672d0a824175fd0ac5481da84de5c4e101b53948f24369ef3c4e2b513ba2e6944d476d6ba102c56a7f17cca3bb90e686dafef0c5b87395483a77a991e5b6bb71ee8f08cc1ff52507d3febc461b3b14cce3c4a2c5cdd5f6241668a0ed6e4c91637ff6ba4a242c409240ed6e0ce2b2bf0ec0598be694d517a6fd556daae77f1e80a21760eaec6f62549dbf0fc099459ffd75e3511db3e7b667de9ea3a967cfe695237a6348d3d1eca373abedfcb31182a0da99740af247aa3330c9c2c0c71edba3c7d63e9a7120660a6de79fc9e630d999ec46dc343e69fa758a58e2a56e3c721f6298f68cdef6a4219430ddcdec2a91e01c71b2da79fcb6ec994100349009096003164303e080a8030f3e580100b2820ac65781c1053120142760263ca8357b489852c007d7d3beae8db6f0b79a5299fb4c2a9be4b55159b6493d697721d67eb54f65d49bf524df5795f484613e9d4f9968add54755aa3054263d83e83993acc0dcde6465615d99b10293857565b3d645b5f65e8c396e5e8c39aeeb403087e6bbe066ce5df77db39b9ef77d6178e581f39b2038c3f0f502ade67cd77c5796ebf5ba7a99d1f3452b3d5ffcc42c3db1f4b4cda1f99449cf207407ca4483d0275a8436d1a52c2c4acbb3b5a5757b9385b5a575bb2a1255a5567302e548fcc98bd4f474a2e76cdaf224bba5e75b2d4ff21a3410d4e6535aabb522e8e963396d7a4ee9e9620ecd77a794d65aadb5f7525a6bb5d6de7b31be1763cc715cceb9eb72eebacef3bceffb40f0fb40100cc3d0e572bd5eeef2d7eb05ba288aa0fbf8f880fef333c732db39963fc7323651a040014e20201f7f7e401fcb373231cb98114c84813e9eb027401f51885436ddc99a3487e6bb08f37db010fc50d0f57d2c65dadd412043a61d46c75204c58aa90ba4b289b1e3eba2599f7f0a2a13eb744c5df6e64e046358fd81e1145da191f5ef4acf9f66f4fc693587442b23307afe2b8c61f5b5cd2131348af9ac505629510685fd94374bc34e844628804e000101c14cfc0001f9884040402f205708040484af06aeeec86769adf64edd282adb229659ffdcf4fc6bbb53b2155e68b482ca66bd69fa754abbbe33b8b2466d117df49c4332ea4dfbd7f1a96c4afc42a34f89cae6af50d3b4a6fdab94e84f42a5a38cafe643cf6f09ec32872fe8e044e12a917cb4bf8f2e3da0fdc1ac2795511b9d725c5230d496a9cfeaba1fe7dcfc5ca509f4b46118231bd9705299287ad9e3b0773deb799ee755cff3a87b33035779a465da3f00ba9c807652a4cda1f9d773962b6e0cc7e57be273c4b36969fa9e68d54ecf2a33b050c545083451353c81c179d8422f37251f5282f4f492554663db8f9717384b60040115a606394e96b4f11d3808f1f2727392b9da10431ce1258f103c8ab80eaa2bc6835b169a892c3d0e9091884af2b245551161c691e35ac205b7e2898d2f52eca061aa7218b004d12484ef0c0c7ad860d950a4c6c62f68e1018c0d0bad831f71d4d0da544952041e77c10a67bb3205c2b4f9ca12fde969bb52048cdf3c8d763da727555a7a2d2b755ffa92ee36508be654402d9d56ceadd895685512e9d2057d8faab1d89cf7b362576e9546c8a8bf9fb5598d697645a3cd2b24264b42035468fb29e8faba92b736df5c51e62bed76493656d069ef71d2922d3d6b4a8a5ce9595bb2a43d6bbeb06104e8f6fca64b1776892e25d522673385fcbdc34a3e78a9824a9698a98eb849bb4c979e858d10f17e86f8f547aef73eace0efd39f3ff13f3f37cce74ffc091205aef7e14e3c7eb9fe048571358ac2acb4ff090e760228f6f4f53faef7f9799f1f1f32e87e055915aa0af9bf6af74afb8b373c9636c9d2b6b47f55017f085ccfb8afc20c14824e70c1def573fb3c0a4127bcfee77f48149cf8d7cf8de24dfccf73b037f13344e1c4ffbc09131198dbe72330370a145bbad2b4ffcf18641f69a37813e3ac422ad43fe1c8e7bf07ff84a39ff73e7c1566a000bef828846fe2ef7f1ea2007bd77b88c2897f3da086eb5feffa1719443f56954e8cf4aa0af9c3b26a92f607aa4b9c3f8adae4e1e85b55a80aa9302304ae67cc88c0dcaf8fc0dc277e060a4127801f7e48a2c0e7c19ffbf528049d10fe7cf8739ff818533bec5dff797882cfc37e8628fcbceb97b49f60d2feaf26ed0f1b83e823ed174dfb7f16059f07df43147e2230770df0c30f4ff850f048cfaa42fe211974df0494dfaa90ffcf4893aa90bfcfa8a4fdc131e8920f983484923e697f91acbd46ab204a46697f246aa34dbac450594bb5087cffcc949b3e302791208982f0bdac5485c0fc5485f25215e26a5c1467e39eae38a82c2bae86b302368ce85f668c864506e0ccae72a6ef5fd23a07f3838638200ae3753905873f00c186505bcca830342682168021111111d8410778c41224fa3cf03eb0c9ac11e2ac421d08991353746d2d0038c3182b3437a79d15639203d7e2113912e317a111a66b6c1803bc2ae000b455b11c97c86289d58315e01ca13807a5678b2081c68840af8311f47c1780eda07ae014844baa8169f72945979d163ddf4330d181f5e003ea4e6ec3b4f8f100f400fc009cf3856d11426884410e97485a97471c59deffe041003deab3ba13485de4ffbe2c124004218416452e08f0e21502e84ea2ad12a7ac0568d3744569c4ea42a404f0176844ff090276b5002d11e21971fe14f9b8a0040041180b910061c4d70b57087e239811fd3d77eaa6d86591ca2e85227ec06d8c806b6180b68c3bc500ddc915e0824c0926c222b07441a4ef97447edddd674de3770e603253998f11fd398cdf3a477e2e2801ec176b457d568f00e08b51972e25076721cd9432eaf95e7a017ce617a015930bc0192085d7f75ed2fe87e7e4c09cdc28426884b1183efdec221ce71d815a319504ab301ab462447fb76226026c01ac085e0d4047c8368ce85f824ee75711405b25facf8b0d005a307404b75f44bf6fa9447f4aab148af8fa924e02f5597d04105fee00f471ecc2b05e41738fefbdf7620ceafb248446f7e2bbc10d68eeef58c6f4fd69ef5b90f13b00ffbd254ce3e74619317d5f8746f762bb2b021200522862d6f4a91148a150d81da79df573220e0630c462030108c9340840062b00408eaf624e0c2e48116441051edc4bfa477d2a06282b17f6ec0661c414374df6ecdec9e10059a85ced991503bb404a9c2635f6ec820102364504db0d36fb68e671926801401a2fd78604cbd5c29ec19a44b08383d43e9a511c74c040dbf48f66f30b931eb58e86161d3e5cf64c03228eee112c04b9b2d56d6062d8f567aea50820b67da4bd631fcd603cb6259dfc67301ebb7ee04b9eab25fa03e48e1e18f6cc9fb86e9a7e35fd4d22118876a3c4d0e5724dea1364cef0258aa2cbe7e7e727abc996dfa4f9a27e4da3fdebd57c5145a7b857eb6269ff9b66b68851d9d57c816f0eedfffa6a2644fb1f0cec6030ef0d11a59b75b32ed6cdba59b44579b1ee9b8bf53dd11648a0680baa69d0f411f389a1365ff868ff597e55b47f53da5f84d23e4bda7d944626dacb570cfaa5a49d32d9b4bf0844d37914bdb1031f8644ed0f05a53e22d0bde22b067a232da28c11dbeec651cdfe2a00bdb1e2c0c38e6d77a30aaafd59007a63073f1859da5f10d8d9ad1e6adb2391f69702044dfc5cf00aed7b23d2fe5e60fe62b4c5953265f6e907dd2ada3e7dcb46db2a455bfbd8fee88f826274e98dd1f4cb91882ebb20baa73954dedb8faea4677f8835edf73d8cf1a3abfd6b49a02de28dc2366bbef8d19504da22d6285ddedbd37c619fbef521d6afb539543f6b0ed5ffb9515fee2196f7766ff6ad0ca2fd6a471103708a188446df1395d15a6d0ca2cbf86a1f920feaeb461554bb23699a3ed2f6c620133c2d247a586defdeaa10d2ee46a46d9544ca4482e9e31f641fd3688b9232b9b5f636f5a46285a5e9df3c35b0126d31a9545509829b688ba9a98d46a3bdb04bec4353fad4459798c9daa854a9d1252ea2e9dbea9489b628e716dd81b670254d7525016d61777c356dbf1b91b63722ed197e76fca0bea70f890eb1fc9e34fdbb455b9432b8276dbfde688bab75f3f8a445f756856e1606d1feb52f88f6af0a5697f7e633ad8a4a7d7eae12498360d50394ebc6d1213a2340b941db473327ff9907b52b9715d3eaa9ef5bbf411cbe1c77ddddddddddfd397cdddfdd53183740658e012a73eb82bf02fc19405b5452042aab459994b9537fed2f522d55d1777a6593bad2658e928a72dbb16796c68d2a54745ed8b34aa5cd9e1f7bf6ccd2e88281e7e88104162d96cc172b4ed2e0d0e34a8ad49c1e43eca359b7a48a611302903d7f06e09b6f9473882e2a606906375a36a8922062065a949c499f681ecddbf5ed18735aedc55ceebc3ae6cfeb32e82a91347d724a8fd03285b6c50215373b56348d407543961cfb683694c60626b294a50a4d11a93d958c10616a3cb8eca3590a2d2b188813c7c1a34615fb4733978e19b653ed21e4881efb002fecc1b203160f5578f60c76431e257666934acd854dc9212d52a6d0eca359d09524b613fdd90572653b55e1f15b0cd72f227d122a7619316dc7f9fe1ef09be600fd334ba65ef881881f41746e3e30e1e1638e18650b9724323a8428c1128413347994ec9983e387245e47da48c1b1c3101ae80099d344f5250c1bad2e4e524d2ac2dcc05ced192e2344d5171c6e597b46a7b409037ba107551c271c989c6142a3b467f44c151daeecd9cbc806630c75d6eca3991fb19293a49001cf0f503cf6d18cfb41cfbe4bdbfecc47c7056df6d16cc5a8b75ce902a60619a4e030060d104f51fb6896eb84d9f88f66ce74c4be3ff3e1e17160d2a95ed289bead1ee3ab5511e2691fcd381f77b6fd99cf9066570caceca3d98a6d4927fab32965d7175fae45472ae6eca3996cdf3f9acd29db89526989a2b58f66dd929c7d49a7fab3978e6da91bc075a8d181da33ec454e98c4be7127d51a1b41ec199d8a1ae7ec1b5866224e0d7bf6d16cda91b3ebcfba384760987de3ee4a3a510ebe598b8e3ca84ac22369cf28191b7a828e14b1672f231b388d25583ab25a8832d99051eae2058ad29f399b9b944ddd06ab3d83696d4a3af9cf9fb91ba0e63474e4b8da994c81b533e95db651aab079da471ee5480e33ec594da23262d9b35794ad465485aab5406f53157aa221de26ba14c316a8dd8d63154a444d8fabdd8da4152e5b259238a3b4bb1184a4fd5170d6a20e829859aa16041eb49a9cea5f6095634d126dcf5e53b693cba0e3c6d3ce63501b0b439c3a493b8f2000a14a5258503b8f1838d94137b480a569e711033bfbb3d427175464cc0ea69d47155a761ddd8a8d166de7f189583165945ced3cba0f4af6477d521b57b0b2761e2f68da1fae61cd4d117892761e392b69766c2a51a46e3b8f1c14d95ff5596b37ce25da5831ed3c7e55fbe36a8e384692761e5500d99f8799b2da794cb10546298c6de711031e66953c6bb6761e53686dc7824508ab6b655910b92c5d5e2b2af565ced5ce231192fd711d9581099ba59d470ca2ec2f83962692b588cbaa45970d8e254cb40aa68c3852c39411476ad8b508eb600aa580d49a7647e2a4249464495ab07ac8da1d79b772d09d9d494cab7b526c75d9d3e5b66fd6910934fbdef68837ab56ec2a91e8ac45eee04bf401c199f378748028533fbea8dd61b29451c2dc289ca19d43f77d2cb30c98f69957c3ecdb9974721233e91105f0030e18ac761e1d093c23c49181697f9407293a41acf6ecd5031894b5bbf168266184cad39e613438b8b0bbf1c8daa85243d69ebd9e7c00a785a43dc363b638cbe8d9dd7844cfe8a003d39ebd90885ca53ec3f7e4f946bb17363634ed3c8ab0c3fe7c4cf85cff3dd29eefbdf748993cea1e699ad1feb804225dff3beaa4fc38f3b467405082b0d0f67db4ef1ae7ee887425cb07684cca20d2de2c8391e2e169bb6ed616e9554bcfed6349b5822695754b5aacd0b6c740430ad5d6ae6f34c3b507a896be648902183447caa05afafe7749dfae318ffbd0fedf8f1be1c29da6fd390762a6547bd75045b9caddd514d4febccf0b99a5fd816aa0d8f617829f17765dc6f85a5b29a521759f611886436bc60051dadde822b33f13518a5072c411b167b01fbc1e7444eda3d94463a4066d777f34eb7ec601a10311bb239d85385d9ac4e8d813b53f4b47cfd2feae152247ae6812953a4dbb1b897cec0f5681d0d2dc2a0e1d3034d134457a28edae5259a2ad6123670b89225939ec0f7372daf078dadd586510b2bf1333093b44d0d979bc60866da3b163c7cee30070b0f16801899dc701d032e8c142133552f6ccdbb19dea07e9d8dd78e43696887061cf3ea5ed54ff9b77e239b4a5e50a6ae7318511bb8e1f0a304f3d3f20308b0f304abb1b5334d99f83793c72ac3c74bcecd99db23faf747a57c312700a30d7a220ac5d27881a9ef6e74ac0b9da1fbd33c454d49ebd966c917a9d7689324b40edef025bd412a20b0c64da89749ef0a804ab580b9b98748c219a01060000f316403028181089c4b22c4bd240f60314800c70b04a5e4e9dc8834992c3288a8228c820620c018400408c31cad0545901ac78b2ade49bbdf08f48aaa9882c2d65da42ae413c4f991891ebcfc13ca6f1c4895f45896a039f90c3a9964389943b28644bc3a965ee03f6e9d69966caaaf136b17a08590b74e344bee49dbca0cd71f1466a6209e3a1a70d2144c5832c311861553dd82cf2a19100e4d0284c86271e8451966892a53047047fb1a4e96132ab1ca8af41849b9d981a0c9521171dbced304fe60d980083c06c435bc83299186ffd9407fbff7af742d2cae8a055e26d1a299942366c605586cbe959e4426e417687011bc7fbc790054f4aa9271305878f8065ea65f910d3576ae1fee50e3a34f21db8164ce41c8f7ac73cbe47c42a2c69de26596f69081b271bc51a9df81d887f5daedd8034e96fb35c63e1c618dad114bf9b1963629faf27369ec42f11c384311e0844703a6edc50bc56cec2274bd691777468693ee9eb6c8727056ffaff08996acd4bd7604d7203d2660265b1407137dc8dc8cab90bf690d95c409370dbc64d77f4144d9c9fed2bcd7e7cd261ea29dae18af2edc9cbd805527e8ea5103dc509235df7d85d3ae9ec177bcc3e843b0983eec88f470931ec79eb028a55aab51542ba18bd176b2d2ec78f9dd1e125da74b91f346b06487b22f89b207d5d980ab03d21d8d3736214423ced268e140227755bae3380dd06f67d0bc7b9157b069b626c1891a5307c32ea7dc5c016e5f731fb21abf4f66a89dd6913581bddddcf6daf70817498133f5c36d4968c5d05a66b64fbd9df2baaea390ac247b4f7012856ea20c51502256cf89434d51c5094ace58957684d0f8ab084e09f7ffe244170036d7e6688c4437ccf775831f99ef726d1a9541371de981a1f6ca61132eba82b544bbdfafed2a2a7759c3236a2eacad480fe6c5aa3efebf67c80dd5b41ce203dec70b986392ab5adcb5ec033366b1ed26cc598bcdd99849b808c9a40b02a9bab39987fa7569dd918328525324366cb52030c641a92d94ac73e61efd3fef4028d0c83a1dfdd6f7b8e2480ca641faf7a8c01d2acd2bbda1750795878ad89b2fcaf551ccd2ef0dbfba16c7e8bd15bf41260301330d270b569cb76c10c858f43821bdac4039fdd3b22dc6f5c2d1a50a5a134a923604833b2f43865c7e40227409910808b3fbbcb1ef0c78c4abb5a5a5850dac06afe0fa2dc1490669b118698ca68868ea1ef177bacf40503872a73ee1491ae582f8e5aae5e0acca08b69dcf745e7af63d4c95073e55dad84f193965bf73e9cbd926908ee691aca69b43b489e2af9bd7405911c5cdad99ae480291bf0d8280d2c1682129b97ba2eac5406501639e9d65438e088290edf794e040abe363c7966d773f70fbae4d0b324c0c197cdfa786ae0273ddd312f976f3e2ed62a0efa429551058c8b4b40c0b3a259119a6599e99a4e777116927330e5fb95ca8e350356942b03901c5806e8e83043c9b12e46bac4573c18a795fc3484ceda06f59c79f5429ef6f7871e64c7209994dfcba5468eb7af3e47b7dcced1963bfcb785d7f21359108962d51b4e4bcc310bfb81fa8056c1d29fb7fa30b635758918cd2c3e1cf4d66c6aa2d22a32fb0b2f2b290c6ac8285f68adc9bb2722e19908ec9ae44652720236f97bc9a0955539c6b2dc8879c1b42de31f89e75a181fe1dc840694f5b33d2a981faefe2dbafa6c10c72a00dd9aaebf56b3b819e20ef6b652e11885a2da6dbfe66ecf2bdaed713632c6759822bef47136c6092cbe2af906a36471122a43e72934e6644b4ea47e8dacf0e20a33e3fcc468053fb4f8f0872529c2c12e18190841aafc409905cba2fb94ee43add2ceb597a8c2fe40bc1b71396396e9eb86252aae1a1f46c881116cc74ae6cbd0ae1c8772c352a861684d2685cc5f640b9d9b60e9a2c762b023d0ea06680cd5db66e10eff98f13e32b02c4f59e5971eb40bf7664a470396d531af383a59751bdee1ec662dc7ba9f70231e239e2e84606e92cbb3b21ee3b6430d4286bc1ab4981939c01f2700c2f94f83e38811c1185ecbb2a9a934391aec548dd3e8a24723aca3b98652b1b7482e0b838b4a24875cb098ae8a9864c139fcd2f540020aa4313141dc3089c34832af45feba2abaca25996b4633ceab46c1acbb815b77b9fa5d2e2e33654506e5662cc4aec1ddd294ded02b7715490b031e712b8d849d4426c38efcd2e5d3e54eaa33ba2dd0b09cc70ca859ca7e02d18b4af60779bccb4bfd206bba1c3ed45365c01457c78b00d7a23be1aa5d855470d70b10dc6882d0caf14b256f02c7f0d2191d95f49f595a7666248e75338c35a436615a37597ff97b6fbf00d4ea21b0417fd0123f797adb6323363ed908f8712c85f5c15aadd030178d044918ecaae2944af4e2bda26ad4c9e777360f88544b57f0874bcd3c0144202f4420ce3da05385e0aad8b0188f9580da4d8740326dcee0412bc875d4ea2de37e18c4ff95e340cf974a8d8ca3aedb906ce71585600eca86fecf5781e2237ac1bab0cbd70ec950db99f651e197c9fd7faebb40a2f61566465f6b1fbfe9b680563c488237add46f8897b90d86b99f05960bb493ddd3db0d6ac9ef72c3f16039633b60b51e12a67c51be8002abd684b6cc7d335291e7a6f5cc432cd29da0aaccfe657438ca039a87a42d8610ad7cb05ae94f45d65af0c7b72ad326994fe9a70f8fbbe7391cfb69ad7cf15ae987cc00c03ccf0972bf949625e274fc616fb3bcbcb73b5172435107117b1782f539435ac0e20f7dc08f6d1b3f4e8074073cad961612f9186f756ef9e05dc85ff76e80917679f32810506785e059d931b1de2bf7dce9a017541712239e80339ef4cb51a28600e55ce155353e829461e6b6904abbd474be23ee0d6cec3aa0b67cd91b60dca267d1fc230ae1c197a14ea15c7ba5882a45205df9c5686cc7e116b26b1db2fb86e2be765af17ee41809c93a675ea9d3f2c6f9b140df5ad862babaa9332df04bc05ba2d11d2190b22365a8a639bba932ac6e0561ac5ff3fa810a94f05e72b0bdd3865a8f387d94bbb933169ee9c938a8911ce0938a9bd4759790dacc0d46a6559cfff396b23bb64b8b270016d9af1c2e21b59d9ab92762fbd1fad8179d58c7e1f1b554e8276592045d0cfd3231976691b5566bee3aeda2bf9c4d72e420b30a7ce0fca6c5f8c2d8a7275789350d40d14d3c4d27208fd6cb1ad89036fc4cebe34e9d4ffd7360f69a791d70ba2f53937b18d987e4429dcd977390e7153c668a37650788bb3afcfcd2e8401ffd0907ce7e0dc204a2b1ac72989fbe77dbad99ebce2474e420cfecd300325d3b3ebb4a8409470ca334303f639bd711408c260acb9eb22d9c23910bd52471bde84e4be7d1ef44132db3ace1878145f98d69ea6c826e5086cd99735013a116ae0413d38c7a5ac8f4f19f0c294171e23e07c2aab2847026214ee119a32ad4badc4e44a1244e32ca851c50aede856e5a460e28ecdfccf30775424b636bfba86df7cc247fc7bab134d22f84e11be1891a101324922051e21325900026a0c57cfce1e20577e8f27ef83627970853b59894b73d031e1b18c046e3d6c37a8fd1009fc821c0cf5af94a8f7ddb223863bf8df103cfec0fa354d355af764f8ceb9a12b902bd3d5115b9b1ae3b4174c85c30230503cd00deb1f153ba4018ceec375eaa2ee1403980108e734fd9287a43b4a9c72316d0a2e71bcf41576e2cc39374a0a91304eecff4c23072c0ecd3dd1797e94cd6b00fa39902fc175a1a73b5c31885a798526aa32e9f5552705595df3e34d1ac21ec533983a8281a22a287ac3d34633b9822129d630455364f1fb05beae0ff0185e6f4cd667378b88c6300b6ac62737e16383641c12d23783a34188fc6a27b111210c890dd46a8f9fa62ac2f6dfd3be3f40aa077d48a8b8b144fd08b2c99cfc472d981ed2c8b9b5b3de7d8b0d2abdd8b182b4070177340a512fc5a94f5622db532122dc31f43c5d9d585630b3be6a1085fb02657c1dff420bedc1fa7bf440a76a702574269db3ba09648e64f0b2eaaafeb59a10646ee44f2746b765b9fb4f515974bb19db84b580ac1355138c9c4fb0107ef2abe560b8e6ee5df904a7a544d5d8ca15593f60cbce8a90ddd93c9e6d5532e47cc115eda0975518b7a8af8ab33134e69ad19045e86c8a7297be19e3444aa06a0b773fa3bf2def1719aeaf5a1ffd7dfd6dcedded0ba4161fccfe8f41fd5039999b3d3727b6895b2f761e116b82528d2a731fd80ab969fec8fa5945d38dc72af8d9726a3bebf066205f1121a96595b1943e99e5945089594d7d2655f41054f895b4bc18404286c12a9d346cd87e4527225d320ed0af738ddb303d0afa0e583153026d2f1c8a500dffda57b80d818f5dfa584314b9e6147305deb817abde47c364d5c1eaad9b256912cb7190142001ee0a65944c0baeecda9eedf0800198578618325e0b489aa838584b489a79e468399385a72e17a33f5c05b98052655681802719732d6018c887f634970f0b7ccfeac955d280b9cc0be50a15757876768da2dfcc8b222ec4ab14c514845dd6c3ea7a33ba742ce0b00200c6ef60a857caec2b4a3a77829a3a02d98b443fb4ee0e58daa15401cd534970320f58462c19762c318eac66278f0e05818191fd133c8af2649ff9f9c7425a083d3a64b2975a51e374ea0dff60142990dbd6167cd775b6b2eba30f3fc59505a0ad8dd21c7cb3328432953840be31d7d69b082df08af55c38020bdddb1aa85b591ea2d2a281ecea2ef314b8903bb8c09aaa67937287f01bb70ae66cdc6388dd3aed2fc64ea2ce0344e5a7a165154a8e86b1bc9710c141ab3af535af66eabffd34d8ec72d9017e5def78af381054aa22d7287d933f37b279e2605f3ff92d645680cbb898a24df2e43354c6e85db268c30b7f891cfa052ae1016e7ceaf52bad394d23097f41a5c6e407497bf65f24e468f56ca6200c9f4a726476abf712fc59a5db3679498118dbbfb4668843c3a0acfbcbdf14271efcdccaac50581f909aae2dedee83ab5ef5a3b74acfde9532b8e06b3f29386f84a065ca43b8dbd0b8b4f1c474646f7ea6de9f9da2e087d6198adb373c264b76b7be4f71299a237a76bf1cc03421e4d88db3f29c055e9c2ff02b0fee998d4cceea9a531040f0e8d5de0b2c00530ad4e27a900ecf089613d51c6f3c9fcfd1408b331fe25c3eecfb28569e9b6b5004641954d2b9cd8fbd27a2d7972e9321ad12241361755c371742f2f125add9e2f195d82409c65883892b70048f73ba9ac8cb48195d61194b08c9d19eea0b7d53a8283cab32f45b49a1e957225848be5c0691c16007d11b8c48a0ec48bdabfb25302c4629179c9799ca75b8f89440b346dd543ebb136f360064b959e14d0781fd2e3c9195df3c727915b6ef13bfb2254c61b442b075b4892585081b56382aa230b03955e23182246f26507ec6283debaa45a5e04ee8b0bd7650e4860c3435a08b69b3d36dd5bf1af03a125c6bcd68cb0c1cddcfc87acea5fc2ee7c044dc501639e8104f6df6fdab51308a4aec429a6ff0b3c1b14fcebf7c621541433822d756809f489d60609dc54c3403859b9be9f4f20db54c89dd6fa22e35598bbf0dbca1907b3d1b799bb822c6ef88192529d39c08ff8ecad92d35fea0e6129dcc985973ba38633ee4016d4a40935c57a9b9ea0079391bdc37542d232755f4c646ee7ad58465e3849357749fc043a68191b566d20b487c893bb5440f0db42d953ba048de98f7b09c1638818c606e26502983897c8b51b0f9e88060a2df81539e85a5d2ce3c87834c831b7dd6e2c07bf78017a0a89d10bd8699c80f9f3379bd267d9eae5d3864a9573565ae07a1fd32cf50843c8ebf60ba5883e8a8d5db0734124e311032dbed4d25ed738ac52ec230b635a4e34ee1957d6570627e58487a84e99882c873ead558bf273146c7045c08a1ea5e719a769260603c7bd11a00bfc6413dd7eb5ba138d892cf9150f953c1c9d9f554287fb68b9c88ecc6d0f9ad3b4070f0fea14fd7f10ae270fbc37e473790ee226286bc70f44d08464eabdfce94952a833e7b8d055a5e73a74ce95d39bec96ac50f27393a404386fd5377fff9863b3678adf2009b90e578e5fa95c8770bf661e0cdc8d7e7a0528bb680ad7ab265c6432662ae368ced5360480a2de8c1ec673f80ef7ced0d3073a14caf1131bd706f4a46ddbd01efcc8e5e89c05b210ae06f04a6827539657405a5e8891c1dd92db555a9bb02b76dd97757519f6f8c0e2aca76136e613e59a2bc68579320064831e2e00621d11c0613a8bb9a95a9f8d2dab68650618662c14d62e19d3e0eefd3e74a95749526541d3c10f4fc7a4779790aa01038d7ffc148f3574132ae9b94d38ce2211a01490e9b285becbac912809e448a2991b2301913ed0913508e7ddfab7425df2a53adf7f62d9a3758874b1d7c5686d06267a8335663c69dd056043e66280285012157dc0b8433e235a818353e1b530cc60eff817aef448247220afe2170df23f306c1a91447db7d15925a15553a81baeba41b14e3e572587ad404a205c44871297ee45f49fb493ab3507c3cce9dc17fba70964bdd356f7b7f82a3b4b07b9d4ca94fc8e1db527cd3616e471777f6eec7b84d8c67075d59026d8f3b38ea1a7ac21caeaeff4402df288bf13bdfe25a5f0b7b5b87e55678a6fd2db257bc5fc22dd23a894f89fd4619fc095155f6337e484188a0a0c668cafa3d5127e74b926663648574c40226855f7db23a3a4a7b9c6f728cda00a1a0c6e8390daf72f3410f0da2177da0b11dcc69dc6ce3f61f42f639033454eb8894c86c1cebdd3843d6053138557a0c0c864ada2acbe61f0d62f6f794a0fe7bf9468cf14b83e437c3ef10740adf82c61d32c91b3f81442595e5d67195ff716e6cbfa3236ce809ae162e13dafea00183453a4038c5e70186351ac1822f74a83488db75ffb83bb0dbd37893a3f7ded2fd3a9f0c575c50dee3a40b4377f753920098687d5aa752aa7a0c44d0f867fa1d14e876533fc5d5c44a715a8fee2db948ed4831b7104f170fb77db11aa8caa4a1a37f2d2f6f4f1824c030a44da8b189d1b36ba9e5a4c31a79fbe9053fee8b0e70549f0e11bb27f2206e52c125da02a6155fa6ea222e39eb6275ea0866ac32e7b4d5437a4c5588e9536f89e7bc9d0d2ea04ea760c2d006aa8544b51f3333b24a218227e6f3156b47558933e2e21681784d514ebf41eb856fcbb5a6ea0d0ccc708d8889144a92432a50af01861884cc2e70f0816f44c544340af016bf8b905e41e954d1c52a2625f2363dbcb4edd842a66e967dab72ac168234f3eaca8861e7547a7fd71f61cfaa5726753e4b99f6ef0508b50011ca042300d59d63026616f296a0d132d09ee54564380626165031586cf59102da9e4479e4fc72c0a0e82dcbd40e11cda77c776ee19d8352285f3b186163994fd91a0c57e1c2d06a0c0ddb8a7b7a733c52b73c73ae4a26324007b0bf737ba0035c7a1fbe93848b0e41ebb4c5178c9fd0f1c42d9075d349df6a3b5818f0a042d6d572c80208e92b272c135a4d8858a9e6ba8024be1717f8143e91cef0bd634fa1674c63e4d73ed1c7dca9d19a2702876db300ef4dcc0829ab2235525aa94700dadecb8dbe1282ab972e15da8b1f3ba94211159142287c75442799f3a02060e1963186ec2d8b22606a9ec598fff8847dccbb43df7a569fef145f9c987dcf1a022b12a11f4e9d84afd517c655a25e32831415d46c6a21e24927c070e24b5a463546aaf21d01d32a4366d5266ba4f2ac3d8833dc5c80ed056a63eb14600bf1ad6c1729fc612967cf406f4c5e57b2ee467034ae8b9c7e0a0244af0d4a03800722c194097c9b631efdff5524d4aefc2ce576ec71c3dc8ccfe1dca6ba8fdacd58326cf8e896c0da214feb24e4059b905afa10a3e6e7b1fe130e004349e0196741b1fa6456af0ac84ca6be82fb41c3bbaf5a558f50d95ea0fccc58603e82cb3c5e25b5e5af05e43078bcb5df79030f8991c588b0fbed7100bf2530db582dc2a35630578bf5d232bb157dfb909bc51db818b518c5615a2712f7c7543c6677acd873db07ea14359d0909a19f277e919bfb20a25d147ed2c71c581a62ed2cabb123979e7d65f3e84fa6e99a42b583900d25d2cba9a14561719635fd738bc3fd5f8f9dbfaba643787b5273bec967760e978d7a604f50300652fc993c60027e9f7cb896afee33e1d8d77d53f1383d5f89fbddf62df1df52aa32d12090b6c30ca799536767d4e559b847ef1a4ee431b08392096cdc81a196f408c57d17531d30a9a8dc0464067aa63b969102b6db31441ab4dae8db458ecfcf0ec67c2db615efd2cc66adff75dcb1bdfb094844e83e42c4578dc5327a783557cd588fe63cb8b3ab42e0bcad8c8ca6fa95a48db8d0fa77547c15df921df78cd991d0600843be8793123c468e64ec515c5b0e07ca6aec74bf9f390207a6dc51e0f0b6f43dfab515741ab6fa526e01f5d4d82e5a7c77efe1da57e5f93c3b9635c7ce8344ea25101c5ce798f52c267ba96f6d03d07c7a36cf9e88fe92141eb8af3bd8500d2103943a0136dbeee2fd3de239e5cc56e23fdf731d84c5d87351db31c7aa37b908c7291796e20885d302771bcc8231f38bd5c57896246681b119b45795153f0138c6c16e784aa261b0d51dc8b7337c16bacd0220be85c45510f8960d927beef3c57ac9b6edb16e62c3a1d55b34f87b9fa61be916041893f1c8c384dd3286bfdec8b4d5eb3bdc78afea5f27be29e9fead1c4fa17d59f89f63f55b72562f07e2aa6b4568468a40bc91e4f8d3716c0fb62250c00c71a284b2d774b3e0e2e092498bbcfb60cdd90aae1e13c5a6d2a29f01ebf9e26a3a73290be2ac081803f98896f46e9b7ae87faaf9239caf8e6e5ecc787332977d8828c99560546f218380d2076a07981c9b4f8f1ca2653120c9e6d4945f04c44a454db2938608bdb16757b68535a01dd365de4f683a411619d886e3cdb39544aae5d7a3c9354144aefa72c3d84ecc2f0f090debc908be53319475a3322138892ba0cc05b608ede2f7584b1bc34a1825a3a60f53b79c1313cc1208d5fb3849566c6513a2b0b8afe2ab498c3b2472917e76095eb28fd43f3a7be49d8f9e96dd92518acf760d5121b3db11f99f9a04591b240a410c54b5e37164b3c5c1871cc497e45cc4e35ce4805b33c32a4b8c7f2fce9eb072b1e83d59292385f9ad98680634bb7b316901c42c0071d0c3af0a085daab0f4202b0ffcc5f7053c68a209585d6029c078a20f770f28bb5e32a44e1419e7a09d7b2f68c8afe0d9e34f7271a522a66a8c217114ad1787b5325cca0f3b433da85bbebe7c1dace28a0f753df84908ec4dbedb9a1038099fb315743d38d25ea42f6b871b091e7f3cfc7e4474fbb61d1c41da9ea06fcd79190c44d1bf8e1353737c8141b860602c88996edf16a2199c8fd057fb8f043f0cbc0a525703f4783b7a8abe8af1322e9fddb4c3a6f1a244216c110190014d924d65dfc356889e6897dc2da801113235b6f6ed5e4192edac541bf44d4feada99d212ce274c893e60d25a056377d1bdac92b5948ec34bf24464e4b72ba670b44c1c814df77aefaaa4fb230a13d25e5f9a9aa2b02620ca8c625e8278a1d9808d44cc84d42fab6ee052a0ac11542f798f01ae3d0b93d6bfae59ca1d61b07fa80dbec0b5f5c5540009da64b27b3f7971d570c01ecc0da067e0b17c242f7e5e9dd5cc0ccf8dc3c015c28e6a6d3b8521f2a03061386da9ed520075a7c1821d328d0232e78cb6958651d9fc0a4539ee94c449c5c3f41da5264a347ee7a83cf4e085b8faa2c59ed73933d5cf10660ad9fc62a664956cd01f39fe78652c9bfd378311ad8ab235f652e47ddb6d3327551970c71757225666bb1857b36ad35880b499bcc20093434b4403f505128915696687b895670da5bc247e8fae073a31a94b8ca1c3242f6ba5554269202c0f288dfcccbd53294cde66efa78d15fde3d6ba3ca0e0a3a970545bceb4b264eb57e2103cb989af5c2a96cc50725bfea2b35b00064ee874f2496230b2b23fe3e4a9f49a19035d88b4d514fd5b5de5bbfa7549ac59bf66b3aad071eb4acc0ee1c85bbbae4ca9cdcc25ba81671603edd33824f5aa4bc75432fe160145d6d9469d08833214c6fd2ceae943a4ae8a801463cd76d279b23783afa598f1a0b90366f0870584f66305a441eb740872c9ece726c1f4969dca79332e8039acdd3758307537094bd013e3fb3aaa39d53330c16b4ea61b82e92f4ba26449613e4b201b442216caf6e0b79ec5654c3ade69105934114ebb1873c5199389c8ae0e8a84e54f8acda718bbbd548a045b0ce388bc824de10cff145bcb87cab834a17eb0b3ed982808237eec1f184b17371d42afdb1fce0fb67b03d99638d5c32cd07a75b78da75d0f10a6ddb02ef9512587871d2e7bc18e0898fefa7cccdc6dc0d3aa1dbc63d0f4c83868529de58e3b377e7d2b47301e4fd9e488e550624617f160cf0747e4d73835adf38611b42de59f219424c8b2ba16b68a1f40a5ed49e1539c202374f8627a101429cf7e8718d480bb62a4696895fccf6ac542b1b28239fa1ab426e36a13e72c08ad0a5214586083ee3bb066677b6aa6431dc12b79c1d9ca85bf0ba56f12c2515dcdf068371b9b7c5a4be39f0ebc428c7f29531d5345aed73bad115b3fc455485eb7cfb968d42fceff957367767c6b6509e85f325b6e7344a10c200865d882d9a24e4b4b3c968e38eb30703c49dc3c4f2f44f9df9e09e68ea853ca751ed3e8e9dbd761d6dee46c6e48b0ebd6a39e77859f1d9e419fe46d30c2c1e94fe0828e1fb140d3ae158e31ac8959ca0154d040cb522bdad3de463a0c516426bc848e72c8c09f108c8a24143c7ca17032c98e5a7da66c21912bcf342c3db30c1545424d560c23e54fa9b5b594e0830cc4fea7e667862841be639f8b27930238aa65a604938e751be20ec46670ace82c61607bd2a688c3896882ac9bb5a8e92a1aba6404837973d7ffa2b86bc559a4dea01e7e7ee1586d31b140c94e09663f234086d4d79725750f15d3298f1ecf3bb0332639c6d121a3c5b41d611ac55eaf76c1b24f66ccbeb4d34c8aa88112b1edbdada55fe9ddf4d2cbe3af5d34b51536ce76bde23b69d5bb0f17adf7c63fbba2007236858052c210bc8c8815f37711c13da31a4fe6fccdd41d871510345e2f2b8513804567f4539f805d1d52aa10a6010ec558b262323107a638a6a97cacede0c35b11da9e300c96b4440f3683751763bb386b8478c7068ab44d62b4d1a5c0ef121a3bb3d08c26e90f56891f9ac9053ef11b93b5cdaea53f899477985e34b02a3886a18cf035621f7fa318659a8147f6ee0d9bf30689bbc19221257c62684c05b12515f30122668267a089d2c694e795c053fc2d6b4c1118ec02d4ad0eeb51f557b7bfc6135c59ba0d44a62e3194f3c1185e5c318e769a2b242bae1e25f51e2c782dbb1fa778943716a8d6fd47d07f12b19128c5ebdfbd95219e481bfa20e6222c2a133a13b9665a6eb79cedc7f91a051ff915809dfc58531f7ecfe16b2ce4faaf9f0d29c7fc5b56bc485052ced4990b080ea5867e083052cd3d034eb1dd00d658f1210409bc19b10b91a10d5b1e09c21f708aabe02728ef1eea7228c630a8849810932585441c9a16aaee125b8085d8d12554ef17118e1e67aebb02529e7612288912cbb1eee1094029aa8f8718146b47329a2685dac9350829324578aacd80424ef801204e3874a41d415e51ff2ac74097531dc9e2a79cb6c0baa46f6c2d7030b2f05a2533b2e808e1d6da631d865c59aeb3059f50dded6170562ffbc87baec343a13ef1bdbc4c5e54588d1eea03b6516df833a3cf785ee1910696cec06df8b993db6069bfdb7549b0b902c507a364e670161a4140d7ac96f9461ec99413604d69e24e830bf048eca1a74902d7c58546b78f754ccc7dc14831f370db06956d9898afd0f715a48dd504e7f9e7ed8d9c74cced1a7fff1680ba32ff5f46ffe70a5a26dc1c2160a2038368f72679d04ed88a140bdb4870b1a3d510d650fa720e4e4112ee96d9a5b7799df8f6f80abd7fc0fd45f6a83174fb97006fec93f15ca5b0ec82b2f64657115cc00ed9a8781eceb978202b8afd428ea3ae837888661a91905bc765265f5ee1c44d35c66c18ee618181cc6f3a650b9e50d65f064001df78f1264395380662b270f5d5549704c65a87aa74daf29d919ece02051c69777487458ce1f64c28e324c05f365953aa4df54d7b570a6125201f08aae607799cde0667d953271fa749ad34d0a68604bc6bd15d224c026bd6ebd1f345c4f0972b1d301854649de1b3a9d0478d4d3689832c84ea713c052651829e92c6e008fa1c4a21fcc044bd3ea497515868734f3bdb60b63409490eaba00eba53bc032d38e9f3a68128f727d9d307223c0b2af36336055b8c02c7f4772ca33833a8e212d05ef13a5a3ed53a701b518dcec9e72baf679185a67cba9eaa57e62f1b85d3e6d4fd90e91fdb6cb8b25e2a6ac1d6bcafe58257cbc5a98ed74fd8fb9b034a5b92b1b3de97068ac769f33f9cda6ca5e0beb8ebda29b726081219ed27518d5c7384100fea1bfee76c175c445fb21290df05b66cc69c39aec8147d4c6250f192fe6146bb759a3db4af388e25315d1a209d7bad9083a0b2e08a0c44e9417e54309909576530e59489eb714fdae608839808ecdd7ee53199c3f8dd0358cca80f2c41a7f0407f2999e4186e87cb14b378601bec914b6d7b05baba36d4fa5d3a72f9bdc0f419fa021e90943f949445c649969bdb8e8d2385490c91dc98c25960ec140f71a11160f3a12939446e8cd1acaca36e2735cf944645065763bc1097d1d5644c72ed2e21fda21f79c57ff5f70e4f3f49ca53b9f59a3ada9126a8fe3ad80a454036c57725ef677ad0c79755217ffee03a4f6589729f99ce0557067ce28a53e0b3e38b2002d442c1ab891d19015824c155abeca541bbedbc9781cd08727ecf3cbf544a68d34585674b9bdd1175cf2b54b9bce5b71c65c09d6243594e74e0c4d0efaa3580f03d1ff01071b36fb1b4e7f44914184fc0717c3e20781b7b75483ebcc0d224a4d30243fdcf47b5c9795d746240faf549ed600fa0b6efa077ea45bf416349df2a0ab623d3438c7f8c0f10b844ce1ccae32dc6dac70487964f58793698a7777f18b9a1c0ce44f4f6f5f137e46eaa506ba2772a3ba7d18af84cceb74f7c48cd6bc6d317974a98a6e2fcce1cc73352c9a7009cc5e7abae48f3be5314200331496c2e8f5b578a93c90975eb58c5729bbb7b8dea1eb88e91c9f6159f649ab4f2dd960bb2280bf2ee45572997b840b1e08d8f062f6ef72f31ff6c9cbb9a20f48f708288548452adee21c6510e8da431b193162cdca1fe51112b91aa9d4a8d581b666ef6599ed381ce517c7d721b828048809436fac5e77b06c8155a74faa3e88328969bee482582a4c2f91fce81e92566989bbdd891f0a412a383872a09e141b3bea71c3ae632f995087b11c920fba8b8be87291151ddb0ab19628f426a6b2b8dbb2a141510655383be8fb40e4b17f11a8d2996fc680d3e12e0550a5cd38b82c06f8f5e9875e56e644697410cabd526fd0caa18ce8a4a2bae281e2402c3981830c7ad4db6cd16827e62cc7257a09a55db20ed33f0b34c50a8fadc3f6b4f3549fa8e9fffad58dc7a6f7d3afb27c4d89d5b57ea46ad04accefcdc662520081eb6b4a32badc2bbaa692016eaae491f60dd4222c503e7e0ec848ed64b425f3658fe5e6a3355e8c173516b4048d033808bcd38eeeef6c8d3f2a7c784610a13999a2c5e8029dfb6ad34521e4a0ac6302cbc7d4fe16a969b837679693daf0c65948b0df06bec82410d4bcf5042c154b00591e3aadb8068b6a9a57580a6b15660de80dd2717ee23854e7623c622f4a47913b8f1973314ddc84e4b24df24ef2407b7a135a8f14931935c20b3351524e27ee2e3bad394e032b6c3d51c1d86ce493f8a28a381669b9517b01c4571354fb317fabdb07ce0dfbc37b84f36096bad0859a20e252c768df1be4b53955d0ee1089557d33cf5ed1a90295d3e84048dca29e79b07d068bce2111f627f5935341ae4f6df80a25b09aca0ea833760cda0d740f545670e050ab8b4a1b359a6fa482d29015d5866b03a5b099ea0305167ff428ca53b7a41bfc5a6edda907330fb609cc565aca985f6d786791c94dcbd2b589545c60d4428ed7675a03f9990323c3129476af0596f764b3aaf8246fe0ce28253f848dd64386fdbebcee04764496836610d67e857e7f71c4133282feb86ea395538b50e17a307cef7b9b645ff568a756befaebd539b60e8f722200b8af4565726130cd7ed757890b7de9a2945954206c9c6a66e1c9181bffab3b7a8bd238fbd13c53e16e011ef82e4b69b0b6f0e5973050e57024cc204640a517ee568ed70f4416793ad9254530f4cd93cf639474c989128061168170001ee93effd6fc27f8c080ce6449f8dc3e1fc517fbc804ab0c53de42a7f04a640760aaf5087b6d0589641ac444ec07ab2ca54e7dd7ef4717aa1467edb6237d629d53c8806873c250468480efd3f161eecfa0bbe1fe5943b12e2598838ba6b19c86bbd083b9199cfbb97008fd583f26f5f7fcb6944519d19a972eb8ad07e6394e5833ffb539ea55aa5cc244a07ffdfa1193d49941bd5d2c97d5d92aee69bf741567c8b1bf2c5eab2c76b521550303e006cfa0e1366a96c72f2c85a1e5c4bc702c02825594518590514e19eeb02745318b29f9fd7c13e8282a2feb4e2b531b9e8c7df7fcb51db225dad8eabac5fe315309cde0c2f244ab1db10ed4e52e6d3de6ead0ff1c1d512c6cb411f16b23c7ab87e8f9f24eb448babbd829403ad69a6ed3552b88cd38d9202f7b9ab25432fdc96a1d91bd97c75274f4986686ba2d5a90bc1d289bc8205759c92a093215b088f25485cb255b9e38ef9625851783a8db0aa649d4537a727eccae1e867a101d8dc969d7441db1e0b203859564851fb78afde2a49f93be9e1d8ac2af04c6181c3f142e533f7ab61cd20f3d8a887538136602a8adf11a39a03f9e71e61c9be2dd1d9154f72833e1da707f180dc89efcac9e1279a6bceb610941650605c3418dc017d02f6fda220dc926ef9d736b950359f53be99cbe448eeece809aff88ef868772604259404b2d44197b00bbb4f3e78d09925454237b98c49cf01e27e2151031a6dd39f6f24b7ac26cf22e782834228a48ac7d9fda15b4f9b781025903509d6c6f8402589162c0a90d1e9b6d3f501c2beb0199491c6780d6b7bcf12d1755c2d93785b2d785948193444fdcd327b8e721fe504ad412eb91119f795792ec994d2b11ae86335f6867697868fb353ad858070492dabb429de90ae12747f40927d514597c52beabbdde932f524ec858cc4effc5209dde3111d5694cabc279503562f744c440f5129efcff0fef43b3ae3e688e2a131a5eee30458384fa7f4ca70310a942072b814395b66d502a0115959f033c0ad5660134b246ddde59696471dad6341a8515fa27a47168484c355a9a7ae85429e7c9000f7e184119ce3ae48de2830259163c1f24a110df64c853e70fe5b14196e7c46ddc4ec6617aca0a2894b78ca8f3c20dd81d63d36f8c4bd62d263d17b078a392b03668098ec254b6f7cc5cad434ba1396d2c52baa49fbd737e9da03b14f91a42ed76d0821d2ca35415a8a2bf4fb9f8a5dd42e9522e3fdab8070556a3d193d5d0a777693171fdc320b11e01919e2e753f18ff92c9caac50e85cc402451fef3962be2b46de75886dea691eafb007dd277da62588895d6bc8b3d12d3f286db4e1da28f44e1ba83e21bcbc6b54fc7bed4017ab8e8ae9fda042c545fa2da5ea293a130f951882f474dcbc08e0b424af7fc68d9bb947ff5c3d14787b66e50f879c7c66aad42cb5b92e37fbf898b52264838fc6c77bd68e5ac5c2343940d00372770dbcc85461dd4809c204aad189e6df5d363cda3140dd465b7723e5688a2a36025e9b5d4f7cd018ed0736f64112d43eae15b037159e01316588281de01971ce9b60b204492083f08a4018986b344db18b35df19c8a3c022f73cae50c3ce6fc822676dc57048218e9a7fc00a6b2079b541c288534803c7e8d552222316c35a74619c5adcba6f0abb1022158027f31c878e0f69ed31bcab5aae8361df2d76aaf1ef0d8f9ca18a922d3da25e8e900098ad7848fd08063c2571fdb38300f82e3ab45666a002f64c5781401245ff78fca8baf8b98265f8e0114b9d93d007af8203f7d9d4e75dd4271a52e3b04601a7ffd03f00543dfcc501c3a9f702bf8591404f60bd605e87a2b8f21a8f7cffbc9a7e6f6986c9a7f5f639f1ca371238034449d894d2d629cdcc1f5a938506c1f766463cad83adbe8f209e109aa06c106bcafb1f6eb8190f6a6e85fb421be5273396b735e6520b7972845cf8188072c2b8241bc0752c0454447f44cdae32a2818f6f1a4a8cc5a6188763a031992229e379d2b25c1c8a97df713035504fc814548db43f566e3e5c6e8bfa38174e7e7c56c39be6529298fb26ea07523e3b1775423da0f385178d62afb25052ff2cda54d3ce0d22f664e8c0bc9772586262fc4f35ee52bd579331aeee629eac3e3c3ff562886bc264f499489c0b766e2170e275625684d9198a528d2e84d40d7d454507db55e05184bad2dc7373b1f167f79f10640628e6f0565c80c3c569e9d6c3ab6918a36c52fb55d1f7d8c083bdbaf119bc2a49c6e4a94aee978f2da2db9109e6c488f45d6297756e7a9d958ad41fd3bca7bc3b619d20acf06824f0f52982c9d7f6381eafcf0e61a0795b7a34331ebf234f4f432b7da384a2efa8c7ad95e8f632691cc0b068bf31d66a130258d5eef2b347726a8e8472124f3c97f110b7db6a23dcb92631c6c4d81bfa29fe87321504b554d27139181d2732871318ac47cff08bebf1b252645d6561530555f81f1566a0c2f413f51992fea9677f54c2ff11c8150f904959003196cd4a5d0ea4eef120907f50e522acf1d00bfcf683e76b300b7330857c0ccf786d31b802f300ff366531af5b1582266c7f91908f8dff1079a6d738381ee2783db18f55014b2f891046a13356a8e40707216cf9c95bd4689978ccdf400861c368aa37f6cdc63f10d525c6e6f21042061ba36f93ed47c4373afa21135f2bd82333db7857849544737143cd6061fb66b0fdc045893e8708bd529865031467e28bf0957f2336ed6a91309b5713c3725d92ea3ef0f6e4a76254f3d827d886bc30d248ff31fe27593a188866386ee2fc68f5accb27b3112cedbc3d6eeb02bfd27573f3f538c1955297aff7824b3db92ebe107779e7f2bc13d47e217849f22442349088eb19edcc1e46900773d22b96cda5cc3c45157d922b7c823f41a0b164d787ff20997e76086b70e197ebe17f7d765a1f1327b5726dbd1e9a22c689d5872990aba7289896d209881188a3edc376bc479489f266730575555c85ed9403756c4445572d7054e8a8192754f20eb34817427d140d1223975cb725d33ff71abea0c86d111af3e3a502b86db69d594f051734e6446ca0698b11d071b0ae46663be269c71557389a4a52ca68bd64a494dd6970027cda33bd6346a86ea91be0a07c853ab81ea343c866ae4db8af912d5aa27ca5ec8599932a4f5ae28c249d14e86d5f8b86ab32105598014f81f9b808c6623c43875ffd15f8ba6f10787de8d85967c86cf9d72882dd2ae98f6ff4ae7d59c7bced3156250120e249f32d24a1d3558e9e2f8bb737f0d5b3a1824a78a49c98cf809bd9199075a7efa73b1a9b80d95ffb1c71557e1a45873fee37b970605e321ae8e309a53b9bd32c862d37f5fce952e61135f90d960b962fbcb65c2aab5cda8a7a3bfe1853c29b94d65b4e1681051c52efaf18561317cb033818ee4f0aabe8ca0f809c764d0ecfb1bc042caf58bed68d47ac31a325eda8de8d05e4860bd747f933d2b88b6a070f0484e410f286f96fb35d2d4752b54c041a033b87b19c9c3c4e0ac3b78dcbb98a7b50ac3e0a2826cc910cb8e06b45048b8536aa6c037190e714b24d6027a024f24b29f15397635292fb92d20d701eadf366af60035335d38141382a466c594dd31116893b160b2f946811b1208e236d25ae4d7aed88ba70fb9862618a6274a40b96455ba2f7aa959b1869caada8eb66d6fc0a40f1d41680404b14de023d9db2f510b0dcd7c3b9166501d2d924a24a27a513568f0dbcf6940d04376ba3df69f21b2eb36c1f4826ab784f24dffdf0219963451a81430906612d4815db5b4aaa5deaca57f30baf779cd638b32a93e0b48b99cd4098967030439bbec2c8ca32dedea1bd572680fc133342fe434ba9e8afadda4382690957d7a313043810f616bbce099ccb5e33cec0d0ce02478103c1f056002fa36a391bc37ee90f8e4b4ce8cfa6c35231d3f5193f7894c7ec4f5b9cce5e395120bd5b9dba93dbebd6fe690378deca8d69e5aa59326f6644e160cba35ce3bd728c0166fe5a0286434b9afa561f6321521cb10c95b6a9c6edad9c580e10f1c98d31c9d11bf2ee2c6e02c55e58ed971598a17d2b066f57ae17fee2751bddb714e93c5e58b7bc50a85437c26e85959fa425558efa47f23c2190e118a469a710bc77b40bdded6e82085641630855687bf8cb0108786a57a1709a26f2e50ffc4cbdec048fa8826bee0557e750bae7cc73bb920e353b7947504002fb316a659e9b3116ce1f11d78bb4083806ec83d0b050be80c516f19695dec586853965dffeae0a2cd4920735a3a2382ecb16dc5b0bd33240d011a7c2e139f009bf4bed307c72034de0668ed1badf02d553d8f62f6550382983b6c317280d61c3a8eb0bd9e3e1c4d77c99d34520c814bf2938ca44fb20e2349db6f88ce43ac9bce7d04adb70a75e1995573878913869501a6199bd3fd0c6fe4a09e30bbc6c53c34946d8d99f86d73e24434997c0fdf5e809338244c87e3edd1f5a5902e31888a1f1f3573df29bcddebcd2695536b2f88adb6be18b4af9fb89be595748c9a84c284e0e1160f0902e9d8a4cc87c2a17914d3e6aa954faa0f96d44b151b2975dd3d0b93616399334fbe18904642f263babc3cbaef241e807bf2eeff775bb5460a3f10bd83bf6d982194a1b0473b963de6808ab2534f3ea98e11f3b7ddadaffaef2b1591a5fca077dd77829ed5af3d5be2d7ebbc5c02b51f7622f31844296dd6898528250df65343e8c00531e199b214a17fb6520617cb459fc8fef26c0c061e1cfb598f535fa61b5c5c25265d535f8c56acabe64f7afd437eea90e220cf88c0df1fea64e9ed07ba391b09ee29bb6093b2f217a2b7fee29bbc88717fee95ea7ff0b7cbe058d84989d7d33370b2809db18c8bec4212e0d95fb289d3afaa49cd17d6804c3f5072355559e96511e656123f2d9ea3950b3b91dd627d826bd0ab3cfffac94aa73f89b017f4a6a11fe39c9f4621a0c97a53218d9ddc581345771b71db0ff642d4378fc670274ddb1eb0d89d4f87c11db0fba03df62d6033af61de8c388c619cd7f48cf3bb82e64c624799138912e91ca5db59074ead5c90398ff0118535daf00b0878a5b01aa80b45642f2cab7925d42924229f3b166520beab7f91416c057ef0b6b5a85891c4a970c0fb693b7437701291aff95f7626ceae02121a3db90ae8b0ed8c02acae065abf4988359525b5a5e2c0623b9a549802accb8f8435f05686c0af8d36d327f26959d307db26f70aff5d1ad1afb46698a980983256c886ff773242b656a993dde1b5565be8ac46709091a3377c436d4fad40fd7ba8ff609820b83ab8d7ca1f464d210d895ccc59a4e4513412931ceefc3d0318d46801df2dccaa533df145a39f46f4ca32317843d239b2895e83690f5144d573233da9b1bcbd436fa009fdb24a33b5219cdcd9af33739d681ce42b761accd7cb3986f26c6fd4730f2d67ed5a4c04a4720078e2f2131e8435a92c79c86626d86dcb34a51e09ad66960b02c8d0e1faa92e64edf13c1e2af8dad34cc6b43190819a2f8f74a01830491b966899eb3dc37b498bb0ea12c09ce337306cc1e5a7b8ab9784178ce54a6836005d69c9e8960b78b01068d11c843d190a3e1d5a98b260474280925a181844e5f80dc308e399a27f9f9f18e7f1b67b2c2f3b72f580b8318c66f477a721fdc408505b8559893ce4d02a51c0688db161b2f45ecf745b7923721fab270fdf2a9c083f4d442046e2386bd6522c315e217513f62dc3f5d2b3400f0fb3f4409b672ffd9067faf8022aa3eec90f21b22784352b744f7efa9a4f635eb0316b224a1cf8aaa4a28ac7a0a83506ac9fe76462fbf59c697fba49ae9ef81452b835b50c42d12bca162ce59c51d2868104eaf27bdfec21f0c8962c50a2ee7f543857afffd41a194f7c02ac6e344976aac8b7141ca5bb447257bac64b0320cbb9697b0d3bf0e3636fcd855c248454dc1f09a705871b58ffe1b89db5873350d282617a860b6467a6657692a410ed25c55de3254d22256f63ec6a8fc9dcfcd00f17d82b9c60aed47e28b53a6df35d93b414ee08783f84ffc7acb66dae5b3672ec9041723851958f5ec6e8666b9ed1242db5ca461bffa69e5a985b506f8722640ca64a21b4d3fd7821a524904ac21b1e9c87ab7ee0ba85a678aa735535eb56f2c1d653e56a7446d1e95bf509e0f549929723ecc888faacf1f5fb671a312e01b27c7b128b1624e9257f1554ef9f1250f1597b9a3aab8dae0d26288062fadb29a7e354b73a4063bd574485499d157081af88b578b4be63ff4d741b26dba8243fd4aa315e18d692d29fb9c0a372563233f3f02c84336923e8fcea2cafcbc3c3d7ee47428900a89e7e1110159ae67a2a55678610362a356409d484e9d7d5b844cb35164bf047e764998e3a0699b158769c3a776b4db3326507548699b277abfae55d0174de62c88b126ecc531dfbe998c146541f0b2501f9025e24f6c0f76fc30acb94027bab04eae641c91cb0c8d2a1b1597a56a268b98435d9723f03b94d912a8b61bca2f010a5f4df70d348803fb1644300a4a819874760c46f3010bec06420e5b3c1b142be370172551116015a47213c1c7d27ac4623d77ba28cac9920df62d7349b23eb8ff7d58ecd59db141481fecb02af4e600e9a2d7b4cc26c822c48628ab90f5ba1b4d304ea104ac47e74972243c4f2fc096262c27a5ab8c25cb031cb233be1addb24f253c112cc6722e0dfd0510fd426d8624e0c10bd6b244130e94fd3d768ede0652b9bfd5816c0a8183b4fca034fc097b640f36712f381306e2f2b8beb0e36ff052b5eeea673906e8f13a194b907317cbaf9ef1de98e53c578c4975e520149659bceaee4d36ea8c7ba6badcc4863501c734484e1958577922c9e5001c4fa97be1f4adfadccbd78f2649fec8671be52b4be38a31d822a591ae57ba952d786ac6c69fc76ff909ae5f53c7940adee945a453a4ab7d5ea8e708cec1378b74d82783409105254ca02162961afebfb960c0ad1e71c5815286ebc442737435bfda20c8cf3544691b81cc8b0074864446eae9810320437d33cd51ba896c53d14c4b8126603966fcb08346158562ee1b06888847362cd084168f88bb3483522aa88ec1c8dd41009b8bdaf1937c1a83c0e8bbf104b2008ea97ea00d9d7b0a276d953e1b4f0176e0d96725a1aee8ac172037580ee5b0461fc8acd058c40d7e8d27295386ee1c6087ca8aecd467602ba0fc63893cfab76350c1a3390f097f200aecc516aa67b00530e19b5478c759fab78dc2a197492dc7ac18e2ee348d287113ee76ec4dd09de7a697f9cc72e8ac06289e6599faca65949874e5b4c24132477784b57f437818dfb48b065cdf814d38504e2eea30c70da9514fd1af59163664fe150a4ceb3c4d7fb61dba31e737bd231d9ffe6a8951c2e3fdf758a0e1eec12397690e7f727efd2a9b64a48e320dd56d663e5748e756c8fb0133cb89f2efb719b3fb8ae0cb8e346e3ed1ebb391a651613ba8de72f0e5cb822d9a3d099b54b6a2e4894df1d74696916af035a735c0f04af58fc0e024a54052bc7e2819c8cf7a23b68475e0de0871489a117932bd9b93938fda00ffb82480dc818cfccdcf1a4a83fbdf854050060ef3373f6b280dee7f1702411938ccdffcaca134b8ff5d080465e04c961c544218394af722c0f312b9494360ab98a9c184192a25b8d7c7cdf24ec6096c4b2c6924ec8977c7b554830cba72bceeb79f4aa3c5945b1379278461a931ed8d8abdfd837de3f6d4ad65856a6afba7e681f2ac99982f910d570730a12fc054bd22d461c538dee846de471620caffc42caad8d17a7383d017a7c030c6ad68dc7654472704bde8cd7ce0364cfe371ee5bcc9fb5db9775ce7938425da0cf0fc79268b3d4010cda2276d3de84a1b51c789f4478d4abe3e5c12c79b0fd5ed77fc2e4ab6804a643e1a9fffe39dd19e1dddc38d2081b1cd8db163c419247453aef7047d0d31e2a90911fe76039f0ea31df13b7b33af90da5211a805f97cb4eaffabf9833c4b73acac76ac6959ec545f8620c4973f6a0a216543badecd04db8869228d0112bc7d591c13d21667f917425618d1dbd62ecbf7232571ff177ef061da07a427c1f4ca80ba11d8ef78b802b32b02745499738d46434675e895aeeb0ab02d600f26d825a81e6fcf06ceec80332ac192c402d3608e78e9bfd991e313f5070e3c839f2afefa54824ac81cbf15a01f7d7e1a7885cd03b28b86fdd8ae138c2d8ebee0f127c01b6a0eb6eaa638e8d0cf1a6cae7aa2b1080541108e3c66ac76e295a13a4f1cccef609ff2ef58c2071f10193b1fbbe5f7b17bc70bb1b9050f35612f24f3f00329de2e038139d76bf04a638391be3af4b2f1121bf601c7f7994595ef68d5cf2655fd8502ec282175dccf50ed81d32d10dfe703f284edad0d39b823bed4d8c0f1741d2c5c2894ac0c97c2456917d96d3be1d1e6cb491cefb5216946951a197e6125a9e8068f0323c11dd5808502edd6568fa1b038eff4db40b75ded1c504ecf355f2cc86f30a9dbae17ceb82d6e024945985c5e2c545884db9e2d699dbb8d45f4a6087e845b84fdcc3be3cb0045452231f4c8fe1eef854aabe5cd794725fc88eee0e03de83b39a733da9a0ca8d236f386274bb114f5bb2fe76438218acd41a4e6951208e315ffa0c92ddee1202ea5702cdd6985e65867f65eec19ac776d9c22948bd8a46b80068a2c18083facaa691aff9c39e735d42cee3e700d8fabb8649c02368bd098b3d0503a6e42b661ba5d6236e3b27a7b1455172a12234581e4399e3097992f27ecd170a893c4edd687deb039a60ab35dc9fdc445a4f1179637feadca27ae00a2e2221606c0f60db08a0616b3e59603b5831f41d1168da2563cdddc01e36b36a2bdd4c9bca880c30afd51b2b65090ef69b97210d35fd8085cf034f365f26788d098f63e472f8c0641b966f9dca12639834ea387b051cbdc7740c6c32aa89278855824d4169b3637a3b7384286e964efe327362d8c766074cf6b795daf084c75c70fa2fa5a696176ccb692fd7bf1c9ae2413eeaf631bdde5c0e116bb83638e96032af5e49a7320ced2754324caee345c7b7e58efa07a0b6172436ba1e012b3d47d28408c4954bb3285a45b4751a21c6cc175b63d45945d726d40a25a594bee41fb6139ca182185669ef7452a7c0fc6de669caa635c6e723eaf674c6e764ef1810d89a4e9c60f1ff851cddacfbf1f1f04a62d1f4e71d8325eb73fdaab9cb9bf7aa5e3f7b359c3d6ae561b5d29ab90aaf649c4d1bc6849a90d974bb5c87146189ece532f0b7b6913f69cec80032a49d7ab5620d851710e7d935237a70e0ef3939311a6337364364249655bc43af0a0fa549ea324a1267918bf84fdc35f3c1879d7ffffef9b07f54abb6e52ca551e7770103004fda46a4d9243bffd6f3f3bcfb624b4b464e59652ca9b0a4b0a7a0a0fe61e30b0a1a175e637c9ffcaefda234ae76fa9fe8700634ae7678d2a9d43536db5579f5fb54796ce9fca8f4abbfce61e5f9a87b74a780e6f5fe0e369930f5e94871c78c841c78e9a1701e2589e8cc30d2f5082e77714e1383b8a28716aa591662ed448b31666487318dbf34aeee0e1d4ce5a69d4de26e1a49f39eb6bf8ea673c7fc956fd8f45c251358b849335255c1954bee9a4711adf3a67f0da5b179470b9273331ced448a2e63da799cd9099c83da1c9bae02d12333564bcf534c6176fa21050876cc423687bfeb2803d02687b5ed26228071e70b8e144e737c184392b16116f81d3b6c067fceb8c71ab82cfe1b42c703bc4df70da1d6e6d8fc36957e0423c0fa72dc283781d4ebbe33a6f8d8089b12d8001c31a61772c0b6c117605768725c25f3fc37378ab02bfe1ed108ec35b9bf3f042b80e1f044ce72fb78b8fe02d70a6c05bfe75beb8083e87f3041e82bfe1248183e071384be03f3c0fa709dc87d7e14481eb3c102f29700102052730410948f0920217205070021394800423f0d7b7780e2f02bfe143e0383c089c87ffc175781f5cd7fe03aee33de0a4479df529be7a15cf5fdae4ffe8d0a1fa1fb2870064018242bce988bde99439cab7ce15af7d074ab8128a3a2b2d01f5010fb098b6e73274a5b484122e34754025c5f4316f3d8ae7ef36aa96cf323f497f0977d15bf2e2caeee8a1ebf81d3abe0c0282a23454d2c2e46909570695509440663986ab0bbc054e0eb8ffeb3cbd029fc3993a05fe8613033e81c7e1cc804be0793835e011781dce0db8cef7e0a5a192163a1e6f20d5400630a0c3888eb7382707469fedf983d1c306520d640003a10e0bfc0572f80af80d4f01c7e127e03cbc045c878f80ebd03952149e99c8f4e3a975fe019e9f44e9b8a9e3a91d3529b21701e29cb829749383e3173b84a69cd2e45f27cc13f0399c0d7004fc0da702fc008fc3b90037c0f37032c00bf03a9c0e701d0f81f254d12bde1e5b5dfb8b93bff61607f63ddbf393ef627b7e1a7f8c3ef2ce4e3d1e083cc0015fb1ac019e33e077b6e70bc86dcf1570b43d1f3b92c96b5f714c3c874f80dff008701cfe00cec31bc075f80278ed3b9cfca68ef7dc74665c7e0d6299ea7f763853ff93737e11d3f9c74dfe0f014c02b8ea67072e32011edc21a71c5374fe5045e707b7fe6e45e7ffb6fe8e7cf035aa579f7296b7c9ffd9c155ff93e3232a27e5d94d1f5f489a79da32e5302933e5ae1d3ee74799ce9f53bfbae875d40e678965b7e3a18368afde2f9abfdbaaffd9c16ba81ddc4cfd4fcd4db9a795bd9077a8ad58395ffb01b8e94fdefa12677dc9575f7a7ebcc9ffa9b9ea7f6cf0d4ff08c0c79aa36c7053007eebd965d045bd5067e50f2a7acda37d75c801871b1eb73d3f7d1ec3f3f2073549197467626c6f68a7a80da695edc1a429db73017cc5b2f24bb1ed91ce231d9f89b0cc739d2fda9e773e3caf3de8a2f3dffc7606f93f39aedf3cca394d32aeec7ad753a6e6d1cb0c93970b2626771e7a3ce3ad82b18221dd78db9d77a40d158c150cb51c204400ae0582a452b1544e39e9b62fea4c85d8a86b1d1f619a17b7ded930cd0cb76056f90e2962286edd561b94e5d6579886c55b292a6edde5ce56dc9e36fd82b6e7e6a7f65d7bb43af5ad0d6299576259ea593bff8f0c5c99cab2d3a957ed31ebd4a7528fda1977d1ebc595ddd49b7b0475ea4f432f8f8fb0ccf3191e98fa927befc5893af5a64d94ffa7c563ff2373d68bb78b66578942ae2c03e59cf30e0fd351aea4a4a4a42b7726d2a51d2bbda3cff6edf876ee8ac5ea66907a923874d17c8a372ccb252fe71d7964d8768862ce08cbeee974f2ee88db5e1115a59e6cf1d93a7bcb7b4758965df65e0ecbb2b3fcd7fa6fe7a2d953fee371d1ec2afff15c34fbca7f3d2e9a4fd2afcff8d1f6f2e25190fb6ab549228e24e24838d0cb0d6dcfbb199429c6a55eab64417b3c526484a8e54b2cf3f22a136dcf4b9dfa71c7fea7a5a5678b2d2f12615911961921c925b9a8884b7d58a2530f8e279dfa6fb3be53bdbea8e7a3a95d9ee5dc2145cc898880cdc553efedfc3f2c31cf8ee2238ca4a19cb68cf993031062c77cb41ae5edae64ecf4d0b7f5c5739611954f8fe57778477786eb447c80456887382f882e6ae488322db7e745db73562cc63acf54b76332a00dbaecc59517915cf4baca8b4617bd9ef2e2918b5e6fbd5874d1eb2c2f12f1549b54ea71db73562cc6424151e9953771957f79cabb3cf578c7fea7c5f3ffc81ca5e52cb1cc7395cc597e871427a78f260ff3d7bbbbfebdf5d94ffe87c5cfffd9711c161f597e85659effd78b3aec5bad3fd92763255329cff995ddf454c499bc4b957a97ea9fa4bd7c7cbd2df3cbe595cca64a76b98acb47ac4dbe6ed7d7fd7a7057d2e5d2fad71e3b92cb86960576eb5d5bf6e0eaa6a4b0ac8a4a4bb3c6b192e6990ab14d4f7d8a733b95db69cab3773228d394af3c1571392967790e6cbeca535f37eb61242d97a97c779a58416af5f5a22ba44edda9b3079cdb2a5f216db83b4decd82aaf244d757ae01eab2b045fa45a5f3c4fbdb82d99f3a6e7c0a8efdcfcba4f9f7a44fb7ac9a79ee9d3d1b6af975e2e5d913ef586d271675fd75e2e5d899fa23b1571a95894fa4e45dcf67208f0d6615b80a408592475eacea748da605b80a48add819be409b172635ef0bc28e6a2370cc3eff3be3ce28fa9b9d87579677a06808a5eb77596039f690f66cd4c17a577673a170075664345af5f1c73c7dd6bb5eaaef85ae7ceb08f6659518c491ddd061d6f1bea4c878bde0478244d3c790089507edff7d59054eb0bf66e5790f6ed98999aba47ec7947ead4ed9d3d9836d4f041c40a1b67ecd20113458b3e22f54dab529fcae8c6f031b2a903bb12d4cbf80482dfe8e9f77ddf08bebc5bd38d515af784743675771a842e4389e95442d23c324a4c3b8653363b144e5d7b7473e7ed7c8ac1b454ececb627b5b69d9d869dddaec2505acfe7a8b2f5da1c4a4ca942d5aa04575f17bc962bbbc070ab2ff9ec5e5fd0d8e424c9aa0bb6f34269bd0b62385221a552e995c76a752efc2a6f2746693dd7fa92cf34ac38dbe5c29a19583844a557bafbc25a295a43abcbb2add257d6756dc559b05a5abbb4974f34be1e536363fa04bf1009d8f370002e9a7db43a1d174a7be2a835bcb489d65e86758e1fd4f7033b1b26ba630248433af8d59b6ee679ae345c23181db9feb97b26afc1ec752831b3bc292addcae7e52ee79a9c5d6befb6505af7f12ba903dcd9c7d1c3d1c7b106d9d969f0687832ef3d9629045db5be64b7fbee20dbf33c8ede69a143326a0fffaba989894151f7d5aa04f399e69c73f7853e7a9ee735c7456df876f6daa5a0e7813f02fc830fdff6ce7474d07d28c1de4016ca1fc6d387ef73ef0c01dee0e9d2016ecfc1ed9d23c03bfbd5e008f0ce61f6908c5debacc3c28cf305c525d692c2a2225b41d115990a4b4a4bcc05e5e59cf1301e03a371226352e335e362426bc6a259d5a86848d9a06e4c1ba71b2535947090726c72671c8d3302400c40480373be9aa793757402c036dc01dc80c34b8d13252596a2b282ca585a5e50b495c2cb299d0ab8baa8957d51b2a8c462392525ec3c77bc72c3b72c5e2c452577e86531ed17fea12ae0cae7e5ae05bbe86b677c01037e5e0e515656308a5e992cc32c4bd9d239aac370a999b18165319e8dcb042680dd15d0995dfdda28b8e06b713e61ad181db2802ddf4bee708cbe28babe515923043f4f3c71e517884f5ef7bb2b64cfa4a573b939a35dbd08bf5c6d63f2cbe59be1e5985e038d78e4197d3c3c247706f3eb5eeece58fcba97e4ce50fcba777467a75ff7c8b8b314bffed9eeccc4af7f3bee6cc5af7f3b7786fa752f0b5e18f526df3ca36a43aae14cbf1f3467faf5b042384e5e5a396e5a6a1c3932d2088543281b37522c998f1121b269722aa51a9812b03c0101a2c19e9c8bb2cfc421a993fb6e336654afd5cc65d240994803692012ba629272a2b0c070f986c3d568b969bd9ce0101212dab19761a56ed84011d1a7122c81a929a9e89021363f99e8b95ceea84641f4b141088790c8dd23600f26c2777bc1be9e5117064da5edd7bdd22d5ddfee97a655134db33bdb3dda5d1337c6d9b851038e1c1b0700478e7446f6f588bcb09e8e06d2442e8d27a4a3b8b31a7e5d07ddd98c5fd740ee6c06bfae85ee6ce6d775157746e3d7f5edce6afcba16726734f8753d7467367e5d434144eba0de78443450b5b911d240421ac853d1675fcf351f961697971930313480009199d9a97894baec543cd20987f6cdf176fe4489a5a8aca03fbc1f329d9aa7606e5fc7b4dc8ad572bd4c4e60de0ed7a9e5803d9f47542a4d2527139542a2aae578fae5f1c7a5c9372c23e3ce3ebf3edaee0cf4ebe38e3b0bfdfab833f2e0e971673d7746f2ebe218aacd75718c7a93bdb030d7af8b47d506fbad9de918c5be39673a3ab12fedfcc1ee74c419ed1b8073c4d597eb642853f1e8c85af1c88a47563cb2e291158fac780480af17c579eb3bc75bc7f1d66b78eb37deba8dc7e1288e6023aac06120387cc4918bab2fd66d9e06eb356f9de6adcfaccff0d6676a78219484481778871019424b20b2afcbfceda92fd6697cbd68cc5b87f97ad1196ffde5eb455dde7acbd78bb2bc4f1540ae0f223e427c2e1340f675d9dba2fa621dfd7ad195b7aef2d653de7aecada3bcf5f3eb45ffef8e1f52f0762e0f6f870a3ff6757f0b545facc386b6f593b76ef2d65fb60aebadb7cefa7ad1d5e788783bac0e8ce4bcc85928bc1dfbbaea3f80fad3454beba52444b607922a8675625b27b23f88aa17b6752435f5c53af9d6757deba21572cb3723d90b7b532b4c4ac3b67e9194b77d73779abd40759db875cdda22b63076b832c53b3b250e57ba3da4a222d2026d9dd6dc28eeea1daeb4be536dc27bad77a8a27d7d1cdd3eb82d490beb6ddbd2ba47d246af24ad545fbebc68877d754b48275226852427894e4a4b1fcb378728bfda387ac9f346174b648ee8a0dbef00ceed0d880efa287e8a7397ccf9bcbc683e79490d740b9acef0cc27e914455297f0902ab3ee89271eaa2fd6bf14b64acbed9d298a8a14e7522078760f38578e76e72195c6b1ec7aeec2d30cc61eb31446cf43d5a6e4e3599eb654dd768eeb98c603c93305f5299e296ca7ee91357097dce3191d04cb12af56b03d7a0abbde4ab54d282c954ed35012cad494b3edeb28a16a53f24b22c1d8d67517db8ab91c7097489fc2b6e8e4a7abb4dce299e2213b35e552d3907dbbf43b7bc0b952b5c9a8124b72a1d4f6cb3dd60e822e8a99481eb2dd655ff654e1ca3cb4412fdd26e0a2970115359d29b8536b8730a0ce6ab56ee4daa4330fd517307d4be6885ee2620fd9b33c7842899c336983e5c1133cd68ea38b62cb536c74f214df4c4f3115299e22e529d681ca53dcc4ca53ec635b96a75889bd32625b3795ee2926aa61c80d1b3b31382f4f3117646892a7ddf6ae07cb304d0b0459670a96ab332d57aa335d79ea4c1d459d29bad39579a6313b5dedd399d2ec74955aa0ffc1075bc63eb9c9bb1e4cd3f5bcb75f5fc40a478a52b54559bac94f3e8624ed74dab274b13c9567c6b20ee81a6ddb01957c576960bc4f5febcb0b73b12dde625b377ddd257ff7eb6b9d21c5434adeeef2bdd8d65da6f72108db3e9d63c97fbb7cb9e97f5ea76b9b5e7be94dbba5daa2d45e3ac9c78fa4914e3b0021b6d665e9bf04601a9a98181475af4415ac44e0be647441178da203bae8f5cfa8da68ebfab645cfa27f9e03d7b403c246ecb403c224cd96b6b316bbe7fd831bff9763ddf28a4e89ae06e5f592c7dd596d2e304dce2e3ee8e17fa17f2710da43d1c11388d1c5cff5094467b3e17c0b007d3c8100fffb1596611f3b1d72dc8ea7fcaeb5d58413f6308215c7fb8a53ef6c03d93bc7a9640ef90ce21302dfbb8532ec409c13b7b0dad46a53a4083ca85a186b2cd5b7dd39e8b854f29c1d6b5166cf814ba55cfa0e8cb7bd81ecdf0e8ef7793a9ee978dba367af58688341a0a7a3cf0653e7293d5b500ecacd78eaedd4f034e368789a89643ccd452d609a877a623cbd3b2f4f2fcf89a7b7c706d3d0067a2d919e821b747b03f3f49a3ced66785a6e174f7d830efa7835d633bcfb68b51e7d0435486a936fc19ee52fbf8388206c382f4e842d032714472d7ae8205896e248d23366c87c5c69747cf9151f439bcb41b02c572b57e8f214dd696873791ab3d3d066fad247973e317d1e2259ce4cc40565ea43a497dce4252ff9ccbfd7f8143f7995bf7ee531afe2a62f651ea5e54f1fc1d3093c81997ccb697ccc5d1ef5f778b6e9a99f0805959ee4e46b1f5b74cca36ef22d377de92e0f731211840d07c667bccc5fffb3e2638a9ef1327ff91577f91d447c00f5963f539ee6a17d3d0d83507e519e821b15649e2dd64a853ac1c09ca912d35996ce13a683c1d75618189818528993a5ff6129daae334577c959be6259eb4bcefa6a61d2bb4b6e7ad9572c434bbef22557d9d9255ff1ec92abbec72e794ac963254729f959f22fb9973cf5e9edd925477d9a73bbe466c94f9f8e40bbe495cc89d92567ad2f251fbd1b6fbb74a6a367771259b72816ad761adaf6f5cebfcf3a25c4c975118d3596d208da37c45a94dee7f63dc71dc30e97763f4adbc317b4adf5cfc7fcd5de93db389ee0773428ed06fd7e7e6df66c58d3b1c8be6e1f7cbb73f859177ddf3aa6a77dc31283e01e71db7af7a3f4fc73fb1df882f6063ef7ce8eacd1d876b462879e9e86c0db9e273726caf4e4b6efd7839d5a165bb5b1fedaf63cb9fd6077ca62db75775f69047d2e30c7960d8f3fb6f5d1479d81170dc23496875b1f85308ded71eb634fb579b9f5d107d358c08ff07404da36f578b6f58cc33435b79e89308d0e4ca3e3d6b311a6d1c1ad7b364c9383f3806970b8c1e69e3166d90b49b6f54e8c3acbb9eea8da90dcb6dc82e4e8d64b15caadaf52e608ca6df2746567975bbff6e6865eb9f558b561b9f5947a631a6f9e87a8a7b9e9719cf500f0d507c0f3c36e70031f739e666ff00100004e4a8541b72a879b7e3beb6bf0d5e3f0fc304df8d8a0091f1bec1c4df8d800470df9677c51beb81080fc1f029c5ead37eef65cff0fb5bef810846daf7ccc3a7fcb1e3d1ad4c0f3b3e41ad0e063e287e7976d53fec104e8638947f7123e6ccf5b19b8e5f176064efe4f0e8f1e1e3d39e7c17065f794e69139868ade8cc332cf75e8e890030f339081d0f6dc3c32c7e0edd7995fa50c02726517b58379948f304d0996bb23b582765a6fa50995b2f311510c0e1df27a5bd5c46ccf3fb64752e74759b1485a657afe739b7e04e0364dcfbef23145d256a72d4dd38c65948f2792864291031062a7506ff7ea6d2e69fda3e7ffadfa9f9c1cd6cf0e8a73fee47876d2471449234f5b8e9e1ac951e777d5a3762c41fa1b37bd0d673d0dbe7a1bcf7fb2c9ffb13170d5ffd81e30f031068eea0183938d9bf25493c4201efe0fd64300eed24fbe08c7712c8641cca53431a8af7c4aa821d40d25a4d5da81e1b08cc8907ac48e16fb3ab6e5c43088b990857a692abf6ff15cb4c79da1b46d19bb81b15ba95442a1502dcfe4e5f296e799bc5c2d6f9b4ca6b2e42992567a8aac75db44b1fe07d34300ee9f3f4f3d27264e3ea72b9c8a4e494e61f0f0c7b2a8171916c6c50549c8066e9135d87367a6eda24cd499494445af5fa1d2985cd4224c630e6159923b338d5cf414863a33a3d072ef4c69f099c6a0ac3375d60af53a4f3ea8db890c7b631e21c2b672d77922c3dc31b93087a260a465ee78e60e36773e738765ee588c5af160997964651e29ff676785f3e7e9ef271ebb893952507db9f64c6146c076ea4b2b894ae3fa7f0b895ae3fac9b78ca833944e3d3e271ba6693901645f3fd9a2d8f764cbc9dbd41d91322509954e259bf53fefdfff9c5e82ff0358ba3e4d232f7043f5e59e7c605d5418d8908a5a20a025ec0bdb39cad5179811d5b64fc6a8b224fb448c8adecaa0e268c853cfa7d5d33aa2be5cd7df32a2c25ccfdfe271519e1e17f571a295839f7d3778b676ea8b16650a3b2209c56e46271f4c63ee60b03c89ddc833f5964f6be7a298a6c5e3ca5ae64eab87b95322e6c45cad2f8fdb29490854a14e9bf53f295efa1f1507ffe7f4f07fdecb143fa9bcc37e07cc8b0071628ee22b9e817215f6e66463018d9e814caf6293844eb9a4d4251096c33258177586eb2a0f1b4a79d80d4604ab0226545f62b02ff67594afb5460a63c236724f367b03a3a202990286645f67c18ea4208c0827db49ee4f8a88484298e6440c23291801038824944942252421929026090db1af9748422763eceb204908dce1515fae2391447dd9e1c3819d305ca581ba81a7f55fa9347e144bd76a13833fb59168f1b8339eebad1e7766cfeb644be32dca5a82ee2269da6bb589f9fe07e6f97667e6cec5a2cecc232a9a87308d98c349549a58163576c3b29e3b338d2eea3151676616509ed2c4a0259efa2a0fc18e7c603724f6e6e463618e8009d93b77060b52511109ccf627620ed3c086a8b22ceac951ec86694ec4a8b22cd41324fbfa75d3e8ce4ec2a8e875219a29748036b1af979ca9fbd857897dbd3c733023f6f59298dbab0dfb164f6ba7c5a3d573d1ebe2b77eacf6c9c7deb4685061aeb76cb0afdb93cfbe273914498865ab2fd7f3bb0d7674d17bc2c8b8280ccab4b5b3afa7b0a37dbdb58369ba16cfbeb7711cf1bbf688f5d7dae1ffc09cb5f1abdedce36bfce1a9f183238ac6a0be6867b36dfcde06ffc7fdfb1f987bd94f10cb56447c00369a809fa73349ea4aa5a9e464a2522a157c6d5db15aae97c98b74226ed4f6ba209062ec3068ad63b7dbe27b7211ea6e55cb92be320cded98c5dbd5ba24c75d909b1c1142d79da6d9c9a1baf520f4fd2ebefaeccfaf8d8471f4192367ea7878ef157499a5ed50eb3885801c8ee32ba3bcfa40d2c2256f8c1ee3ab3de99be3420cbaedef58015e313246f06033b187e5f5771575e14776347eac84ec4328cfaa9ce5a2a8af5e92bb4a53322754e7667fab91d3fcf1e7e2ac40eaffbedf2d5a9bb3b7bb8e2c5488682a0be2a41ac044fb5f9fc66a32ba6e982b0ec82e5cad1988e66df2ec91ebd8fa475b92b3f8d87eacbf52e08d3e021dd15c6281283280c9c1486c0b805eddb25d1f900e4f8ceb4b36dcc636dbd7967ddd69db17bb9abdd4f88e3cf070f551cb71a2a62a64075e04df8a88e8da8a1a77808ef549bcfeb5875d555d74a048b0e3a1ec234980813e1a1eebdad43073b177dcca1e3500cbb1d8ea0a831112eeabedbe1088a788b1abc5b872328823e5a1d6ab7ffa347f0db637eecdf9bb6e723f670e715d5972b851487123546c47c43a063b8185e18fbe223448ab0114c74d1ebdd997e3d1bfb84375ca2685ffdb97e9074fd243d8aa0eb0fbf51b466c9cd2f516e7eca3c95946ebea9742a515ddaca4d9e65f23093978be526df5abd5c4e537957f953e5519594d8e92a8ff22931190c8bc37c4b8cc33c0d98192f2d0ef32e2c335e646a6a78cdcfd0e0356f5343339bf19a9fa106cdec66dbf0fd37707c3f00760e1c377c7f0d3672e0a07dc5bae21a854e895dbde3a9363a3608988a5d1d0b559b1a1252d8d56f51b5c9f17a8f18b1abdf9d6a43c344986257b741dd0bc0d8d513506db2d7d406c04bec632669eef8451f3dfca47b9fbea4e91f59b31b93a2e3973948d24c0f7532a8e2e0974a07ff0496c0941cfc1a951218ed79322897791bef321f9361a56cb8ccdf40b152dbbbc1e1377fd2e2375fe32647ebc46ffe05478ed66802739367597193474d524e1637791458ca4952995cf5ae1957fd0cd56be572d5cf4caf55d5d9aef39fcc753e7410f4f0739d1f5d246b766f1f3b3d9234d0c7da27e3e29b945cfc12951b13171f4646e50683993c39f9291c4efe8b5c99524e3eebb432a932c9e5a4ffd349cf428add78277d0e57ec86a9f5a34e5c3f4cdb2851aebf5563a3acba9635edb57712f4da9b2e8efa929f8f64cd6e4cbad77e744dd63a4d92b44f95e3a1283ee9c6c537116548928baf12ca90a28fb594d5b8ec4f2997fd4a862a4f2e7b1b35a872570ce3f84b5c8e9f854da512c78f03c654aa6ff7288e244df49c075d93fa92db4952e539ff9548daf612cddd747f9989fbab3839cadcffc624471d5bf3b1f632255efb9a1a0c49c66b5f0a6148ba96393e6a9256f39cc73e92da92db73de9d246b76e7f848d297d44e22b1e7bcca4b64cdee9a8f9d2e499af692acd9ade36335752613bed604923ccf716be20e808fb5a4f968499ae8b437c9d0694ffa1d1d771a93a6d35e26fa0876ee9134fe71939ee7cff1f1a43d127b7e9d7d34f547d6dc446990ccf1fc3a1e49abd13a2f69fcba7b81e923e4d2844358e6840824462106dd19cdaf8b4044a13bab42bc893850f975b1897a03e6449feda9e845881389f8f8f8f8f8f8f8689c6b349d1c2f1cdae1503894825d2073a22903475a487e57ecfbdd3a19af371c4242e4ce6a7e3dc4855edc99caaf874477a6e3d7432377a68bee2ce7c89d6d232dc221f5c6330a87aa8df7b9cc99866490ce344c4286b41194992298037360cef39da37554b866f49d46217ed23da2a2813da14c8904532ba9d1401aa80b9df0f9b1efe9e5c21e49eecc3c22e3ce6efc7a680b7784218f10f48218f5c6c381b96aa303e6c09c11567d7ae788a02744332a6b4a6a30a4924c08f6803d608f8e8a8993e38dccf4703450ccd9fa53612321232321fbb644e32f916ae2cef96e3025384a26ec62794310fa70fbfa8d17d80356f103f4b9b3935f079db8331b7e1d04bab3d2af8351dc19caaf83417726f3eb20903b4bf97550e8ce567e1d64c2f3017dd41bcf07eca9361b2462040af13c0d1492544819f1c664e7c62be3b4abbe1a68e65cce8d578ee5c2a6128e1298ef26f4ddbe9bd02a254395364e35463e46463a2637a20ca9420a77724cb0f6a95ce37263097f698370d2e2ae794635a85669439fc0bc1d6fc7e84b92fb907cb72342eecce5d7bfa13b7bbffe11b9b31c7efdc3ddd90dbffe79716731bffe117d46bea20f8b9cfb82d49b9cfb6ed5c6fc6e3998863ba558a61589e3958932910a87cbf13c1913981b15b154926f3805cced6f74504716d6526027da46d942d518793b464626cb498addc8f12ed50b07b932b152271c0e874b4aa2ca0d8c898c9090502d94e9803e7efbc811ede137ed30ecf6be66a36a53226e1d0d6472cd562fd5cc8c261009ed1b9708d8085ef49ac4a83779c8c25cb0ceac57d775963dd0673909758b7dfd769187eccde8825189dcc56804b46f396454c2e463b4afdbe4aec35fb24d3e9826b57365d7533d40fb7a0abbef34855b610c49d9523b5aaedbbe7e32a49e0c559bec3047a8181ec689144ec0384fba7011d9d75d3797903b1bba335c7aa0f7ddce6f0232f95cf49a9cb8e8f594cde4b3afa76ca99d7d61b6cf7aa651b5b9551beda3e721b506d2494f3317dbbab5a7d78365e4ef9022145dff0e297ef0c1965184e3903efe8e1dc7211de3fc200fa0cd66c321a292469b3d47dbf815c7039d7c226038647ed03d91885a461965e4483e66fd43f2f1ebf047ca9e4f1fbedd39f83fdac7df719cd149e4e83b8ea3bddde5205e8fb5f5bb24cdf3ef4bb6d78369465b95dd9e74b4793da36d039dfb4e475b570a23c8be463b1d6d3d25fb3b4b4631284f432a0d36e234546d3e17129a620a1de8a089267cf8504209bdd3f2b6af97b73b13520edd59e7f73bbdceb485377ce28a9bd010908059d872d6da7bb3f891054fd775397f437cdf0782594461c50e1645711cad980126ada041ad2778511c06a106156352572c7a76da39e0521183dbb65c183b243cf10450cc102441448c5cb4864d723b0f14adb51aa840c522a626878e0e0920e2851123b3d46067adbdf708313539747420e245c763961aecba4e035d0572cec050bdd5c4dc7878ecd423a0810a64200b108db9b3b434573a2e3336840421c24266a9bfef03c195590e295a99a5288ae238be56a616776745922489b4da22b541dbeee062a79568571349b3d624ab2fd74d64cdc6f0f96810a2edb2185a6d8a50d14504a858c2ae18d75c8a67ec8c50fdad0ac05ae407433bedb298c2ee4870adbde268a7ba64992ba131acb5f762b12344865a5f3091510365b7eb8da7a48132ef7ae3f1d95665c4026785165614f1c118636cd2d5963788e200ab97a96c410edde0452f127c1441021012848a307204fc03a022b723fbb56a2b0ed203e40a3bc8ce4e41231d902cd4203cd80e0802540448929b75d7755dced5084819beef0343eb8321520b742d0284202040a17b566411208023a908902a0401b25310084aa821491a49922452dd010218a513c60e081e5550e48644e773ebd93503f1a0c80d4811a41016e10a6291db16457c7054e416a4c88d08bb5e140cc3d08ad616f9015191db17febd60ec7c8071073b3179b95aac952a85324f25a6b24422f52886e0e7e50e5f23d648d77d4218edc55df63e3014474dd6529b4a4c253b42f091c42e21adb52527d0c70edb23866d921877d8bb0ee31afc00bb804aa152381f3518af9052a554b82586209ba05aa95641b26002ae87c8ae2bd68a85841f24c620ac16ab85f3b1039c0f1ff4b45c2dd750165ed8d6f513424580e044d9e3d25a6bed7a3d6104f6d81e23762d954a259393a32f9cc04e603e92a0472b80f665778a1c410865deb508185fe8c28039cc6d69778a1c81081d1476757d3a9d4efe3d9d9904140a85faf30768b442a552a94e1450ff80c562b1506242330072b95cae588a50879b810d524ab850595159390d019656ac68180c065b41c1224390012a43653819f400820c1703287665d1282828282c2da34f4a4a4a4a8b0baef687a8c3c54009176d63b0e365c6cb8ca32b7c70b1ad83f609a023d747336066c07843803ec098c10b606260624a23313462686001860fd5aeb81e47a0214343a6078b8ddd0a2df1828d3b239c0c8a50cad49021c71a5d49d4230735666ad4008d7018d7c3c7ae331a0606066666e68923b0870b68d0a0416386199e18027b0c318281a68686465b8b93019092233534d4d4105181edd4050d3634d0a07725a2021be872d72b9ec002f00a23550829c2c612b2b9b121c71b6dbf7a25737db9403b58d080673514832c6cfc73845b820560d08d8d9b9b2788ae5822086efeb071c3868d1cd876aaeb153e9c70c512437449dcd035dcb841d2f277b8277676aa713e4adc4f112bc42002ea09324619dbbaae0e282bae891d5658615f0c0315ec5a83beb9b9b9a9a18614121cfac68d1b3770e0407d8103078e10479723c78fd04ef5c6bd2009bb5ed40e40c8d8f5408f371ef5ac5c8cf5420185755d6d5418635cae5bebf7de1b0b41b7af69addf7bafb57e5f49c66aed17f4e3bbff425c6b6730f2f0e8a13fb06f0986a0dbd6b449b85dd761ecdda71d1465f70559218cbf0f638c31b86d144a6b31c6da92dd45edbd8e31f61cf8de1702975b94d69e2ba35105aa118f1d1d627a88e101e2a235c9b646ba1d94d6ed99e40341fb3a26736c0980b04970f5a823c288c4e8c890909b13d6c7feb036324a505f8cf05033136396faded8bef7f650874eec822078525b032bc4b504188f921c91b1e35e6c79e4c61a94d5346233e6b18bd695592a55b47413bed694ad3d493a284d6db22693a966bbed89c96b2269a605029df82953fd4499aecc320765e744996af0f372aba4e43b8166891a6bea5af03e2ab562b5ba96672d0ecab453e97859ad58ad96cbf57a99989c9cc060ee259255ead7aa745997a9d57aadccd3cbe49a989c5caed7cbc4ac301886c12ecc82a45488d78bac591392167bd1ace3f3e404067307ff41b3d49f973b15157c6d68038c72516c7df718b36cfd7f6ad24e9420fecf130525164b998971293508d6b27641d9e7bd4e1312e5848cbd764d2169292adac9950eafdc9515bb52431414b27663b1949aadd5a4e99595952913a28a2ac49600dddf4315b2aded6e50d68bd633d5bba5765db08b8b8bcbb595d444ae9f42d25e655c49c149aaacd42e6a51b4762b2b282a8ba1b190b5bb7db0653c5a5f744b8b066b77772f9eb5260d95b1581616969a5b5ccc72e6da8a4794d652ca5c5c585e5ec8da6d9931c30506e625266686ae6f3d992c23d3c9c8c8e06b6564646ae942d274186a215df40c9266be6a09d3cd2069f6c845abcf206b765b18181a3464646ad4989989d933cc309b99349a0a43c6c4681a3464ac4ced64482d43d2569d4f59c3d62b43d24add83fe1992a6dd9ea54d7bb833cc686a481a0db69626ad860dca54ef5b6295949918caf933330e9b9999993931999979b96666aea5318317563d8cd8730fe30d3b61b4f676185bc7f6d4d9abd6cb5d79c4a8c808d1877d566609ae90e48c8e1419d9d52bda151361259429f662574cb29ee362dc6ad3caaeebde768eb7284bb744d65ebb349d4a4ea6f2743a9d4e2c122a8bb1c652d40664571fa7a8b35bc7a06a637a0dc1d8d545a26a53528baa7b05f2765c2032925c9a0c54c51276f5dc45bdc9556031a4cef2eda25ed419caab672256f55c74f2ead9c8e4d533aeda905e3d0f559b95d75cc6ed888a3c3485910e8a9ac83e94d8d5b31195260fd1784954dbaede8d5169bc1d8f89ea5595d79457345dd9f5f313af9e526f442416e63af634586d44af3e8e23c65d97415389a9f44ad24acf71c7db7d15f1db11ffdd62c9c68f37eb7fdc61dfdaf10c84695a3daecc891f4030db74b6782eca05ecc83aecc8bf2449244d7bb74190a4e95289a469cfb90afce35344059317cb659e6c4feb0bc71253e9a72416c61cbaa8a9856333892abbb393ed44853a3b1181dde4c57299277b9a46b0538fbd316d162689164086ee0c3645eb3cf5784976ec66268163b72f760b633756ec36c66e66ec76b2d954a6a3faf299bef412f9fd0fac2713c1c42dc08e40d24983ff03f3ec63940533768b6171ca25a612fc87ddb0ccdcb1303e59308a61612af55595fc615b94b564790949437909593aa5b19bb9536461ae973c2dad69f4e3632362559a4327d3e8f473f23911e132a2c2c8c834328db49176f34c41d01c3a0da5484262ce7494c5d6670a5382a7beb4866e403eac6ff1b4784471ed4dcb880a53c5be5e0272447d29dad72b093a0edb123157cbdbacd5bb1f65d53e9ae6bd97f42c477d4a13837a1e32b12f779d294deb4c6350b7a5c9cbd5f2f0f72c144cd9290165e8ce482f0275b9229550cbcf4d9236ba69bdb71b7f69b3fe07060ba0bba8e46a5aab7a9e646a480000000000d316003020140a0985e3799c6561720f14000e638a5a544c589408045990a2288ac118a48c32c80002002286d4cc904600fb3847b4294b19e6bb11c3915d89336877244427c008176c207546f0a3fa7f7f000d1fe93a579733167e455d4be367a25d52db5928873d37be7ab0483b71dae1ff25fd407f7b37d1e046a35a7173419e6d26e720c999ed159cb100263ffe332c53d127486b427ed166fce2b3e59150e2f9a06e126a9b7a91e4ca5040d29aad095d8c0b1a5fe4e7bb6a2cd34505d801c12e23d6a0ffda63aea645ea1d2ed42cc0ec1ef269dab03908eaec0d8661e78b415e51f9406a36175d1168872e3f0595e70c5f3bc908b98efcf3f12bf2ff49012a493578813438f573d91575abcfb573c174c0ee7620cb7428742a5517fbb62aff1db070316571cd53967ccd2f1b23c92c0b465081a2399393dd0d1574223009a6d0c44462ce25be2c986d10a0947a72630f9e464d39449bc078caef0bde81490ab92a887bf7dfc71f5f31ce4b8046af308f78b132ff3ce2063d77c5b814db20876ce2ff5b1c52f70cd17031b386522e7a2fc962b7ec2235448e79422fa44844d4ffeda66757d72a328ef39f9c94a0a745dc7f3c86637115060340168a53ea659ec872e57989cdd68d4ef5ff336addc8aaeb53522a5f28ebbf3d551aa022b3c07e378a5b05f8bc920a7bfb8e5bf922d61f4159accea187e5f1dd2f318f51a6f99bcc9a56130cab2f066032b18b46b92f8e74a84f2682314acf53aa1b3cf8e43b52ccddf37184a0b3166b01526452291a6632973e480cf7c5616ce9cd1bc7b1be9009de41ccc56f7d8e87ed315707dcd98c008fc242aa122bdb39e8729165af87e21012e2732ad0253330351bf76f8c0a72c323501bc9d79d921c170c2ef353facbadfff2c331cba3530223ff668250daf45fbb65ad52a6432d1d5bf2388509f4d4624e5a89df88b83d13281171f1ac210cc6a310e70f4011d16fdf10ae070941cedc625c25099a91a3f4351442af56976853868008a71023c488266aef4bccbea72ded1e8694a609614c172593aee99dee07616601ea8cd3c4b887022752d8cc623f75cc6a0f27b02dbac4242745e4243bb135ce42b317d0efa8a53bdbf7978f84b822df3e3a4c06f84e3de7cb92d1f5a374725110eefcb2d8f338728c9bd30ca483f0e818c4049cb549c8ba249628df3b4913e40a2c025fe1b6e10940d85ae6ae32782d9ed693c459ae97da895fcc1bf896f93f76c7b83ee4592126c01b22aa1022c7b891be9bf68f496741bd4ad54a775b05dddc15b7e6ce4824ade3e8414de3fe62675c3fefc4e83364d238a7de7c9d23cb66a1fbf181cffae4fb68f15750687d1a52a745b49d95818da27e8e86f06f13deea8f26a007a169ae098c403a8616a01938588c3219d5d0b4d0072dff0b88df4b6dfcf8e6e497b496995989c1f22bf6d43d4b4e43d13c2586537f3f2c0acecee04e93783195d5cf7b1fc0c8f322ea3366702b8bed7379a76f57c3628773f310919558ef766c7068394f3c5c0981350b415393f3a14545d5e221495ca7e1b4fa0357952064b3299b99af94217be7c583856a448bc4fa3093313940723401473b9b13226238279c11323f1681e8b0c997375c0c4edd21c58e11fdabb25b62ad281856afa736af23a11690014fbb23610712c46ffff68919cb3cdd00f071e71a8006118912c0894bc4ecde306dd1c527ca80cea2ecd78c0d0c3d0a56c43d6fc6950bcb6bdce93bea75d28fbb7edecdbc57eb10e03720f1447fea6a25553fbc738563013d7d6f723b8a7fb75faab847671086cf684a3415c7f0588d418ea2e9d8cdaeebf4b32a85bb08d0ee2ff9dff5eed400ab3950f87e8d614f662a4f922c36f4432ac6cd513c2f295e346ae6e2d7088d5d2068dc45d336782580e47c5af637b958accd854be8c9076a95db2740634ef1728228e9aaf32bd283187550804a3332b821cda83243260c27d52de87b57337ee11e4d38aaf0e8135ea5d4f4d7c65900117c4ac35649b5e4c45f2c93a1b7d4051fa15f3047b8e48565dd8f7af33a2aa2bdf4c63d7560715c643a2c0bc7fc028fc9a1d4c3e38329f009c3b95949e9fa77f85ebd4f08cd5f70c1a2faffbf8ab2293843cd17eaf503cfe08bee81df51794bb329e3930293c30eeaa4888b4a939e1aa1217211627dd50c50ceaf6e390051c933950bfb6d9193ecdc766da7934dba89b7083a04b77a1e7a594740fdb071d11b79c246fbec465f6500bd74fe1cc6a3afe35676d265679479dd72c586dd45903674ac085bd8fd0a8180d4fdaf68ecb70f223b93e49f74a056ca09a370cd27d60c455ed28d61a03272831c5597a16d5508201d0c174814572ac130fa29722faa3171d92ac46733b022e3f5fb0761114d5b3e860763c8befa4ffeb599d66040d11a26f68f8f188fa2936911a624145a1b13b7db3893a93bae30bd8a6e4b4c1cf85b1d2ae456f3ff1a4901648a5589f9c0d50b3c7aec03a331690abda4e59c4393163d8796506abc015facfe8995bce706b17eb7dc014c512e6a4ae7b106d1fd8cea34d4b4e874de2aca208a22bed7864257da2408793ca026c48a3db18c35c9eef66f2cd2c1b1be9ece9d4970b1d1bd93b7771d403a807e6faaebc7e7463f72197629114faa998e64ba8a15e2748cfd5b4d1645e16082c29dce8171e7b680cfe8840ff9444ca633610574c0be3edea7736145cfed73b64a8006f8689c72c1979c88f91e023148a1ff4fe0e143b4a517c823b7d2df8c5eac51e6434967a1f57a24868e1785394fe4f73458772a83781cf883ba805de2d788215b771907f1536cd1e2c58b52bc58f1a2162d5244f1628a1653b4c8a28b142b5a9ce2c58a16f155330865f0307b4d70d2ea3db7a3419fe60517dcef8acc93c245bb4d7c0e4e85cd6f598a2852468132251452a048418a81f221ff95a11d7ebc4dd70e33f21e3f91d4fd026727c22b2c6425878106e687bf28960c34febcb3b3d786bac3dfe1c20102138f48c7244da5de0492d9f8cad914cb7ef91957e0d753ee4a637931c79c0402a85451c7cf7d356893b10c44812f8992cb263088db55068b8021280fcad78011800eb54722e89777bbfcdda8b86828abb6ec7b045c643415aa0823effd7a7a5999023ca18f8a42479c5642945cdb6730e270c9bcdd7c45b80cafd5bac2ab7e3d53c0745cb76f9990f553b0464701ed042c425c76b170c66dc0e7adbd4beb964e2969efc4da8f4a67a9d64bd15df58d51e950e1c9c9dc0367776ee0b917f403ec93828b557a9046bc4e0b671305b555525d0a67f90477c964ab4c1b81df6448a87a6f0faa3eaac8c8878a0877f92997f13a456dd8771dfa191d1a32bc0b02019bc6414fa375ba1a74bfb2c97c1739ab986ebb504cfa0b48184abb233e3b28c9e424f99ac461a92bea73b3c97344ba610adc126bcd8490d435e273ac37365205d077ef55747a15094eb6b5989474cda5b051c25d184dd7110709bcdf5690e280858ea5c9a2d42d7ea8d3f12e3956f1e022e6939723205c730636b929d904903079bb0e958c9c885d30a37c18550aeb6ae243d5c9e6a1d01d55186e09126b0509f26fd27870d9b57360b712ee5224b11d9427af46949ba6cd653d72d60290c39171fa8244fb9f4af925d9662c60f297b8e1897d4a68933d01a7a3728fc0f5a91989a137d3848c8c3b2b5784fd30c7af4b1d2031dd6ee315800e9b92cd8df2ea9fb8d7b51cc5e8fe1a2901b284630e156c09a24962d03fb2ed50b8ee073b6d9d9e8ca50001de808759ea9e88e98fdfcc4fdfef9c8aeb7ea000d0cf946848404978e6bb6e7e55a5806248a9b81a4dd7450998bc40dceb29296846ca4ab9232a3920c5eb6b30301e8a716630a33c989ca5b46eed1153b09911c8a7ff75d4756505e544b365c6ba2684e13af6e3ed9a5d94c6cb98848729a1d15cb9027cf1201134c98e0e5dc63a310a3e0ce5449bad0d16c5aea1f9935c6b9a593744743042a432bf92158796c25b43771b4e056184b92eaa781414289a3304f1b812f823132b0a8d246db5a9a029636310ee7693277994b3bd6cd366e9dac9b35fac3eb29611913e0d0d9503a38e31357653ebd374011067ae492aced25e799a28d0ebe5328dedf588c9740d35f05f1f68a298f23482a5d88ae8780b4d33851e96c534a0e92bf26ebdd03b05ff5aeca0a01003690eb2325887c2781a93a0d0ac4c74de57587de0630f6d7506e40ac71d60e6a663d945791342ab8a697fa39a086b339251a328d171ee07fc7a0498829d0331114d68e541dc49727fe83acaa20c8b58cffe7d9547657e087c47c09954156667069b2b624dbc97377a050989a994c178fc9a59ae501d1e1e2b95ce9cbc11451460608eda71ba04913705b1f68e1a2148a888fd3d559a68a1214d97c94029cc91aee8d884a9180f04b08a066b5a58966720090ab682f11841b6027488d6bc9bba1582ff8c55e198a049ff1fe72dd4d4ce29658efd8029c43b4710960154bbe8a3ec85f7e6df3e436675840921c185af00cc50ca15755a75885a82004a55c47d8989b759eeff814cc311488f1a60820a0d97d32e6d50250f97cd24c0b5f952a8a3629a1dfba9311319edbfa15bb80d80f24b21982e0a6ff00125c7f68dcb5fb5ba75389a67044c70825ced2c22c1377999d453324795d1c485b72d7dcd3b6057ea37fc0ebb9684a4ac2179681e481884fe1ea635df17812857bd50dbf6977566feec755b0240f242c89b305de1bc079e8dfea1280939d10559864bf222489a5269583441e446775087d431d46bb39ac35e9c56213ea52f6c548804bfa1dd3655d88802f2289a224da85f39fa77338cb0fc6a0e09523a182edd5247b1580881aa14db27e4664e91748cec938452c172a1bd11846962b47cc353a43b30ce11fbd9cd38aae9c1c498369bb5e958adaa213ad9021c452375a09dc85690d3133aed7495a0b90641a1c51a27958f4e4731ad9d09656eca63695f3f7f3b71a75e7bcdf456268747e94c992b807fcd4f1aa3189ab56ffd76b33a5556c31d2d89f5780c2b00aa08df661ac7cb25072dabd6bfcd9cabe434dff87017009316a7e463e1d805608694dff55655208c984307719303850e006e0987027dd7c0481c8115be6d1931e1488d6f8b3931aaedbd2df26d611bda72a3440084890163d154a1da1cf02c9a552ec11b86ca8b42a6e1a7447b12dd169f84911b26fcb09a025f1937cc973471247fdba65f00c7bb4fb6f1d9191da9e49d19a4757ef80445f0319d1a2b424725f9d2df4e5a72fc915b005649b24b650e0233b93c01cdfc2e167c6f825ff987eb9f1f3b119e15611226a51b51b28d11c44098f8e0a1951c9653e06d53d2c88248280f1007d81c6bb0271f2f1286666d329802b505ecc5789fca4f2898de1dacafd4561ddf93573f1bfa7682ea4f93619452a2b908c3b994bdfda6e9279fc8fb8b5c304a7ea8eafdcb9ea6004a299fe09f5f01f5a1b0ed986f0aa107844366d9dfa35fdf4cccec48899745f26c2c33f775e72a609036902c42e74cc41acbbbaa89b9c091f2c6ffeef833fe9508d521091f1eff6c0ee0c6c2f8c9f14c81f5f8a56a554516790d646442f3982eca46906a662e882970e6eaec8a1e299e02647325f4a1a70c02f68bbb07b67362ed2c80d26284cd8a9140dfbb88d723e093aa580205fa35d546d1f51011b1d8e3f2d4ac905ceec59e0c5e9f709a6a280c5e01b2b4780dbe69b71a059bb8ae1e53f8848e089704ed833df7c1b82db2fc94f5b9b8fec7bcb45e9fafeeba5fac47330d035b5a00aa091e4790642bc84bd74d98de619fc9540a16c88c36c349d23c01191437dae431fbb3630ac71f61f35e494e4a34bcf509a37cd5503f65442cfa99df9f1c74a04acfe4315a52f77e25c1ebd6ff7048891bd72e8e96284ab68c1f72355526b6bb16629b5b62082a28a50c10ed4cc8b41e1c621fc2850e734aa07433702beb5cea4a3a87d6a0ca36a070d0e10c59f3e382feed18e50438c2225663196481d27a5e1cdaaf5eabd4296319a7a4dddd0175f098782d33ff89490cc3ce48e6948ab5d5c75f4770b648d4d4eb70a31803732897854c738bbee40c7dbc6c1c65af207a2adc27e63e6a7630825df7de756c7e6e0c657b48550fd41ab07ec0a7bbd37a2986f5a7fca103228d71dc0dd898676dd205c29a5e6e58e4ebac94f002b346c802852c92e49f82fc9e363ab5b3bc3257ae23442b2fd0eab7cd32a7f195fcc7c478d6333d35fc3674ecd88c4818386bab7c624fd086160e994de3c15a9403f1611807313aec549ff2ef83dca12c4bc10328aa9f1a354d4c99844d6614df4106afead7b863a7af4ecae359f6261b1c5a58c47aef133e00f7b4685e896e11f713506699bd19c6a701df7e545048f52916410184e04c48a8d231ebf2c44c50c9160de01af1bd19d6aa84f29d69c7ec0b9fd15cfcb90a35ef76f6ad2fa55e46f937b0311c80fb6d1906a57f108a057c4bd2257b4a07059f2e52ac50ace47ce7702c99e791f83ab4507a164d532532557b41664e2866d8d0e182f4178f2782595d29b91d642448077a3c0b33cfabf2cd4d34323aba30a2f2690d25004d359a2187e53abc86f7243ee12177a9871d585fdb12a77b19fa39ed1e7d2ae6110da83f2ba415e5fdb1148280a99880859405e99543eafb08eda96fa3ab521f690ed8a4b9f662c62c52d16289b69e26354f671de5964542d2be06c31a35ac03d5317ad29e8d40b3b64dc5c8b6c0b4533277407aeaf814655f3006b9db86b33f87ec790a7f024283f158dddb8fc6176bf147c3fc87242e3a2fa93621796ddad3fda79544a559fa4d839cc836fda11d26e749e3054395faad93d12ac8481e4f89903414072d83d9f6f9a4d87d0729c669deaa004b1823b05f42963bd5025f8636d346162a8fd79e175f9bd3e8fdf6b9fca363b05c182bbd87a9996831d544248f3fa678e4477ac1bf01d2df8e4c80999136f1bba660ad29706671e8583322c150b68f87e4bd1bfc715d5d9ceb6229b204e1999b2bcef232c4d9595cec5fc023c8925a74cbc9b6695f30f8a3ebd3c5afbb2c2f2ef86c20bbd50d998794ba38eaa0599b251ce61bc579fb8f20aca9bb6ecbe096afdcb2ba1f657f75fbfb1267aca8f9de2fd6570471b0d5cd5be928d95fb2b154107c51b5e02468a763708080055117e1bba65e285988b01db10da89b0f11ca4a9df61b73a53b1838abc14b118720e30cda342dbc9cc9c1ed2baafff5a1956e599fd9cc071135c84ad1b8134b06da978a1565f0dc214f9dc25b2cbd0a7f832c789b30a3de0bebb348641b317ada0af5e15b8b2db6accd7b45c57c466a82445a72ecfab87fb7fbb0eb9bb7c943d17542413ffc041fc358179b9073453b23716c19e09811a00f8177cba81a49baad6a198b9e41e6600dd10b65d5d5e56573bbc992c0954716945c91b47918350c46d1aa3675642e665ed917f64054f4353e16d4ca02a865c9c989baad9615363e1ef6d0b6339ddab55f9e116a8c2d59e793a3898fac22995faba046fbc4b58a65b34b0270bfadecf8721ae9c796d1d1c2afe46e115328fff7377dddb67a880cc3dac2e7496f04f80d916dc704d42fecea7e22178aa7fe04dd01a6b8c437e3cb7022429cc0ca8689c7ce588a43b7114882f21d1559227208dc67ccd3c630045821ccbe446da38bec12d05376c1981a0bb3482bab3ee485278e994503508d2dc4cdda80625b33e2ea284033d361d5509fcf1ed64f22934c615049af63f3c9febe601cf21069689f6fdc3405e974b15d8116a51dc30817bd47055b5988614c26f6d11e4c6635a3d6d69f704992e304f14c90feba6f2598d902a9afabac9a00cb05e22cb02fe0cf26a5ff7290c5aa73c0a54fc07697a17b053934857806091dc227d44aad940ea50699b00e3eb214e2b423c97689d63b1e66cb16c40310b63834cf72598bfe36aebca683a7340067349fa6a8b1bb7d397755653cf86f9d2c36a04fd361068039e886b070ad8509b193ef8ae8847412be536c1015214218c43a2181cfee88c9c869e9e7b3f31967d5cefafd7e9ab3f1ce1bf2705937c9d46002897320c8d89f7ee8613629f33a42b7ccc792377e58617647adcc679af3f5997ac49b9ab9aba7450a3a3f7a22f44fb781db5e6d8d6aea0ede4ce2ccd2e8c44e3a56b87e07803be83c0690ce65d8d39b283213c257edcfb13e2f752b722abcdeebfd5c8ee3a4859cbf0643df3058d2f879206ff175c4424a0c54d22076f71e1254f99ebee318fc83ffa3600295031db01f65c6baf3ba009c4ab0118e062804cd03b5a47c6740b24e0129bb7a27ed7992e6e9f421f49a965fa79717d254cfaa21636516dbac47406a3b5ac8e2aed5a88f5e174bb60146a2b402f1a5e3f9c24cd2ac07bc6a27dbb26d9d4af9f4ce4b8a8e9d3cffe7806a1653064ba366dddeafab8b644e4c693f7dbadc6da959e255ef3325591d8f54d5f728903f1199649062e9f4c7a2a170d0824c822e80ca8116edc18a1068494ff538ed595e72052e1dd74621238462296a7dadbbcc17955ab947f979388bb5cfcaaa59f8e5a88ae61909ea88d112802f19d6d92fc17b887c05dcc24cdaa8abdcc003bac1388be7ad407f6bb62110e145a9a83a71f4d486e8a8fe8ca03a22e39ab28b974e91a4158d42bfd9af76a70bea900c81e37eeb206d3f65d6ff8aecf0743c446aa6ffb515e7a34ffb2a19420206841546ede95e0df80e20d9aea88084d3a646208ecfb75e66749a1b2811599c2f32736b0fdc94f449bd134a5d88c556c0ed7221bb7e0b3e2ce87d4f245c928a8740b5cfa4bf4ef078a51cdc815f245ee99263e3c6e618bda5559a08406eb3d3d9183ab067fa07bbe12682e476cabc8adca7d3f9d2b477ed74cb178354641c8113911a9fb3d43de64c19fdbc1a80ea3cff74138482b6a0c7b460494a585eacfa01071c976bae0186b155690db285f5bc94224e31ae7d19441a96cf6e33a2cf84a9ba8664b219077ccc19bef7e7a21fd9b3d40c4d59b22cc8264e233b168bb6a41af7776d868b6cb46d8f0102671ca2cd5ae854699a6293b852847f6d94370aeba4dc9b3dc3f3d541ba4a3062ac363d831daf2bb99d8c6f47721fe1ad568e1c4bb69d5c1e83c3e00656b681dc04b699d22faa54c16d4927e9784be6acdcb7f9cec3c8a1ba5a68a9e617cebbd30e5781ccf862db295d4fc641b69eebc6f847cb9c26228ebc91fa2fa01155e8369f15f0e4daa9a7025645592d64dc02c764a60a7f7168d501b2893a58d71fa203275611a911aba016ab998bcc5e1670837bf6ab7ad8e77f5ffce6ad4c368a943c6773351adc143d448d18cfa8ba88bbb5fb3a277affb1b3995cab9a4d5c50e83e6666a4228250c7a971ca318ec42fb95aa01ab7fab96706fd1d72468b8d72037b77d426d50109f093e6ff69a832a7a7efe9471af9cb7e22a799d89ac0e19cb0a05b8ba8ea2892aceff52571ea2e201bdaeb3474799814e959df59615c4f8ad0b09ab3412d8b4268c50bff911a495b73f892f7431a5c0e5f0d6158ac532bd6279abb0d95d5c1f06ec52c3ff84f83959dfa10b265a3392cd69f97b0838d2b14fa20b982bc4fe46fbe0f1420c93be0e43a23500a1f3432309ed14946e15d814dc981ed91e135f84c3900c3ee914ddfb5f6b840e7c9f0770a69bc059c749006f7e1e38e0681887dac876ab939b7fab4757ee1eeb140f9a4220379aa254531fdc3e4f21ff54323deb35cf31d8832241240b137384b4d78cdf8261f622f259b0d7af14d8abd126778c6a183b4e06e71218e0b330ca7017fe570a1bee52f914cd142b12b907d0105c934b8b8b9e422d8df52cc45ed0c7301a327f45fb501e33c0a03da859d305b0de4060ffcd82e2598752124d5d431b068db3b1906c50f1a41f407be6e161b8cd21cd47cf3a16dd189a83408ff7406ca609daecb4fed3df3e2db74d16c50df9632307aeb6210b4cf130f82ff63b584cf5f83125718a5f94e2d5db8d0484fb0bf9ea10683cf2a7dba86011b17430bade688736393d49130c2fb6f300d6101b241d8a7c46441ab7a2fa993037d4e2acb79fb574559a91cffa1d7943961a834d80ffcdf246bdc293bc73ee86222a2d749ec15d73b0e10de963d3fadde474cf450296e4fed16d60b2ffd2eec90178072173bc307eb55a256947188a0c49117d5e56163fd84343c75e2c5146a34520d64a8aacaeb1327d75af4aff47c30c1fd9016203cf992951f7c0ca63ac257dc8feca20dc70a5f565233fd62d0b7731ef0638cda256961d921c7552beeb598596bfe622ed4aa2e3566d5d9d09c41f3f7d902288ad88b121c5aa5cdfba142f4ecdbbc6568bb554fccd0c3222fcd90ac5429480537c77e54520585e3c043a4d05e3cf8524168c4b72d59a53ce69e88389549d68d0b2efafe6f4182be0afb1eb9743f06229a5b265ebee5c8aa7d2746e8c11b9d278a27047d7e7f6db368b74e6a92f24d0e1619d01f7fb837a3b117ead832d7af7f22775942056e99c5a855692a1d2e8596c534136d26526229ee1350fa988c87363c88cf619f78ab14bf9f02435a952d43eeb3560a11f403151dc46623abb0fa6b2d20eed9a24c698c6fd85d6d62756ab4f1923855daf96afa9ce61d4a90b8420e22a92efbe59742f01c0d82096f05edd9697ef82900acac99a0ae9a2409f7c460d4811499ecd98077344bc66115975b1bfb02c4488ee7185d3320d4069e5063bba017a89046e265ab74abc8bebf0a3bd5ccb14e159f04aff9d81acd32c438e30fe8fbea04b5e2027db497e66f75823406a3918fce32cfb03ee122012a6611d8865728aa635207ee161bb13eeb2a810bbc7e9b9ca83c1fb772fea1471d8d575b24cabfa8df79ba8ae60dfd41fd05e4ba36c8bc2b52ff1508b08281b0de383769e5603df2bf117cba463d092c67ddb2edb165e00d9fd34de61c1e7b82144feefb1b8cfb622c89d3cdda5d862e462ab1827cf5dcb155c8f9f243dd4d6befe684e191c9b784b49884e17a3b9c4dafb0c456714984b916883c81c893dbef9cbb6c44586f227eec8106ea8230c6ce52588ada552374a9eb5c8d400683de49a47a30972148870b24fd6fd6cbaff0f464e8caf2b3904d327b6ff2084fc1b39f2251d533eb86f583358d55dca176e97231e38b139de63638cfdff550faca74650d553a72b6a0b6e3fa4f8eb288e5922077e69fd36c30d3b9c00f3ed7240e682ef84d914ec43964fa5c136c8e9d63fb714b10033236c193ca4065183841f1afe41435d500a544a6fd953cd89498ec806f6f2c3c1d26cd7182871662da20189f4f8de729856857e27c3c100527cce3fd647202c749b7b368c47169ffcc863acd7b139e3f6da9bdfccc42c682b519f94ad7336255508a36b76505ced0c06403a968b82c63af4c1febd0f9684072d823e9ea8268d92e8b4234906653e1b248e06934134e880929ac223a46c13b1b6c19eca47f01f6a245acfd85206a17f730a23416ba6c923ecdd86088fc3927438e3cd9c81a17d25d92496c889232cff728d1a9d4d1cbdf099e39d5bc9da5cc34e3f2c66179cefc988fd5c7160556cc6683de9f7830a9be7ab63a548e5d97e175668147e66028af4e4216c5e05e653f47674dc111d9c5319dda52d399e467e368a069253a41c0a36f89b916a19f8306f5a833357c06217af248f7caa6fec4891cf06b1a920dcf806bd543d31016d569ddc9497c826da8fd880cb25dfd99eb3db4d387525f7e0488dc64afec2150798fdf2dc9a96bbfdd83cc7c287072ddb875c42bae7a316f1044c15caa97f8768429dc4f5fda20ea46f4bd38c5b17ba788ca53b04cce88596dfd76364cbeae7a6d653d21a2d49414cc569f450c8ad9472015a73b1350c2abd31ede08743dc5291651c7ea472887814606e96be6f90adc3b69b49bb4dc4dc41435b746b1556230299f0c0ef0f83aac66375005f30cf79301bc050bd1354760737ceaeba019aaddb61cdf2c6df4f920a3c184a32e66400d8b418c1cc6a6ee4360ae95beb7d05eb189e2ff230fef882e414b916ef0210fef145d004f21ddf0e1f350fc5f33c059b0105d7304361a5c40fe844686ecbddf2a42dd325b6ccd304151fe64d864876db2174b3f70526c3d032bf9e6292b09678f7bacd776cf7c292265b04df87874ba08adec0d66f58cbf341c64c055a1274d0e728b89639dd4533c4bcc17280be5b45ea9a82f7f0a3602ff2e0f6fef0b782d0d51133f4423a191de70c6f4db168af99fe640c1769bfc9681bc58fe58e3cc6f06193552bf0705210f5ac1a2df88e29780664079001b1305286f9218291850563904cf9338fe9981a86fc029c8572e02c4dfc3ba90d5f5839b52c69b0c6c3b932dc87d7c43e7beb0f5f49f6f1a67101a1445ded8f417cfd30547f5146a33aa174b4a8fe6b1bb0f642bc3fa7a0d63eedf21e99608a666e282289709e87109a3daf078db687e783519afe53787a066b041f923bf7b9af11bb87dd688ff6cf2b2c09a2b4bebf26cb8cd8c410d2d7c612c18cda6b45f260c1bc2bf5521f9c4ded68e9f9e61f51b293750df0658ea805ed9138c2e192fd8fb7488890919ed006e55ad66847715abc813e8773168420a76f502886dae21ecd3cfca77a8870b4e784aef632d2d13c9ddc10ba5a36c818d9713fe6289a53e492f5ff424b449010a600dac41d0c5faa8df1fbd662f4ebe013e7c8937a88a192b405f1d3c6f9c6d6f7eefcfff42f9868c6cf9cea53925620830379eccc761e40eab192f6af854069f2e8fc3a334a41dbce4fd26ad26db932a3f5103cd39bf6e441a9d36aa847c6614fb8792facb7cd664a26af8e9ebae1d2fd0450790104801d169e2041b78eb26dffdccd93799903ef68470c369ccae354c96ebc83ee081d59678b73f9db4a3847402571cb53db0307ec519a701e1f7a8a362abaabce82ea725470eb79886193f0d9558d34fe11f54445f86cfe79d66cfd6e6599acccdbcd19ef7b6c4e640f13f1fab0057b10f20fb04edf6a7287efea949eee613dc50fd7c961d858c5d82fba68447f3e6cdc73ff3220a0d11c68bd836738920116abc15ba1863b354ba6b06deeabbb4765a1de515182a19da7538d0246023e4d0524e3cbda12e86b26e798d0d8a439ad81c7c47ba5fe3b043cd84a836461399d70ce8b211bb589eeb27be5a18c406734dbdfa9c3e7fb4a8490fba681273b2cbe895b0b7e62cd2dfcccce06b6d2510198cbaea4d4cb303b3d9a4a86777b29be841ee00b4edc89ba90d28060405f38ef8a65bb0eba136b435e65c4d304c6005636f733f509ea4e29f7f5c0781115938a3590e124a8c8aa751c50018aeeb147c86dce5da01afef6a5c211f046701aad00a05028152e4cc30f392e87ceb141f9667d440b619642cc264b6e756641d5602830ac37d24731254e5dbb4e71e164388ec4f0f9da772854f799016e952b385ad670c3934e220d8d2877dfe8dc151ded3ccdf010536c2e916dbe0edea044a341c33091d765df3f277e3eef0064b5035f2e822abb5bba90704b82c30e961355e6e362ff584550b77564ed0e674c401b8ab6d655f2233befd67d3382692990b9811cb6499bbad27a800f745b43821142490e3bc43be087e906a720329757527f2b1285b5329c17546848db96c17d52e110a8d5493e6d46aadf0479c0253159ee541281571a98badc28ec4edb02adbe254e07b4a554283884ca5d427133ecfc1e97227d1b4233d9aef839c1020fa4b9896217ab25156d88064c81ca9450fd8918ca7ef425fb07401dadefdb37a5ca28f786dc92e764b6d09fb9f01568cc1d7771f37587f76c2440612d21536113df6a0e8cff6e2276b0143849163c13c368864a3e0978b7379d3d792bd333dd708b685d752335d11c186652f97fee5b18768cc82d9892b4c386b0547d2a2b6036be925ec7d855f223cc8b9db3b73cbbc2f61d8acda72ebca554f59a4f437df8e12b673827a61595c06c896153016e933cd1288d02879d65bb80db2993d6bfaf902bdc08c030c4a45bd76ffa24fb39a918161c728b89ebbfca4dde9dcc7daf12f700df6c103da516bccfde0160409e145ce6a4835a5b6ae6af691cf5e8a82805027a2469e9e045425bd51fd55ac661fb5c4d0d51d843a9586aae394be6c2c542ac60b5d781379ca281698d2610151429f514a08f0ef02afa1afd8458d5b7482ee244da965472e94970176440d2bbe9985e269dbe9ea732920f6d152a99bcbcffab6b4f034ed60c092a14afdeaf38e5c711296ac874de5c56f57cfe162954fbb39746bb79cd127e925facae9272edffa5cdd2a8d601fdb1b7b990da4e53422062bfe7c13fa61a6ba3c27859cc970304bd9f89c825ef3b42e6ffe1c569d90e5df3e4ae5d3040b664a7916a5f555a81bc2c7cc3c04270c02572f76eccf1845e5da0e9306595c9a5b4ea0b43e73d4f6cd3574ee7acb9108e9dc5a26c7bdfe12e76537303702a7e14bc4fb2c0bc77e31cf0febf9b8361778da2257d8c27ba8cbcec43e6a944bcb39637b0309666abc3c9cf3f141a9d0da52fd9ef6e18042a95014005946f6488b2c62175e045d00cfd544722a6cf808248e24573b48355b5dc1873c48ab8e4261ad32d00c10b49a6ff081ca3ba1498e5f66583e0fdcb59c64addedc52f9bfec6d00f9441fd2653c44e63383231a745550184bc6414cd6dd92f14cebb4386f290081859a203341f37ae7ef75a9b49f4b7cc904aaa1c688ee83b4033cd95edd34a47932cb2f77f7bd8d3d3a93b8280836fb9258c4529c19cdb2dcd1b7809fbd9adea37603ef48bb273b1c270155956dcee6519f54d8f9b508af200328e86b903526035e3864c038451db6d921433136a6fd800608fb81bfa83a30223009e6f1522b7ebfcb2f6e76594c50cc5d2a8a114924758477406c7dcc65b3c44967a5f5b80d846fde5a922cbea1ca2fd7e6ffc4a1f1e1d5c6fc8d0c997f562bade633072d4f4fa4e4643aaa081c164ecd3b130d9dc4d190399c1ab2fd5643c61cc66864f4cbc46f3a329ac9c16ca8cc6443fdbd1f3bd5a8002ff44d87b086d07a6b68b70c073f98da50c3713304376474dda21b49166ac3280540b72ade2f8a7449cbce2b54b60d956430abf9ab501560f9333b53ef6f28794c5a56ac42da8b7f59b5e72df0bffadc493dd1d72fabbff8c0301db623a8c94d48867188b87ed13ade7e1d7ba885e3729da38ba42261186bb780ba95647f59965b20a169eeedc5b6a2c0d818581b3a1404ec8e7199d4ee62f6b19d1dfc9c9e8b5befe0c85b60bf6bc6de1f0bf794bf57851d4a185901ee0f96d1c1bf868e0a98fb40fa74ec20447b5400d2fbf33482ecd681606a4cd5320d5a302f1fa8f09e4870934bfe61ed893d81392035c848296e19a53d21024ae41161d0f3d238d7856a4b20a46383cbf18d8e9aa87806db7ddd083862402dbdf07b3cf09544ef39e00f1d4c3cc5408769e6906a9c6c264d3412eff94b2ee7f5791d359e03e3d673a4b49d6756455b40a5301e552ef7f90d9926a32f71f014aa6579642de1d64136abc6b5d4819bf98c869537eee90deb65da9a013ba16588bc629e6c8cc25ed83cb4631e52e34e30a9ceafc41caa8813fd167ba8b85b3bc7cb3af40b337997f1f4895e1cc4d64a657302365e59c90ee5a22ccca7930151d1082c10760ffe9ca98fc6db4c2566c95d19f68068bcba17c780eaba5b41842de69cb0d119cfb2366e4c6ee62b86946f0d3e9b201443a65084de1aade63271aee36da013b7467c490cd425d246141518c15cdd88fa20bb50ed8656483d556830504a342200175950704d5981435935a43e2cf3e98cd78791bc0eff1a21f57cafcd82695f4216aa710f8cbde017ac23d352e302624add1b3470bb6b479e7ad2350be3abbfbcb34a67db92c91cdf2ad5f0f5e2c6a2fb6f9366d63aee646b3ca2a537a98523b1a9179b3bd336e25f197f6a5977ce536ba3d261c92e9b469e083520457c3be74cd0540860b1776e6c2715e42e3bbcae84f6d382e5e2c16fac605fd4b869b3b95db2901c450f9c9e47c503ff0dd51e994d1b4e8614cb1c937d52fd602d908f434cc11f211aef7de4b644bb95dea7a0c80371e5a8cad63b5bd80d373588c2aed131d81ddf11eee2e36ad0563472aea2535a72c30037e6eb78fe9fa968215d4a116406f042ee6c9091b53f4ccbd7e697ec049a410326f5d2059a2e7bf28b1232784266b4274f31e0aa80206d6ec2255d3b6c52a2c87e441c5303ceca27ae814863bf123fa5861a9833afafa014b702f8490feab9f91e490af0ad4ca6550532700411524e1826b3a0aefd03618c417114c8e07500de05cc400d0aadd1acb2d58caf122641b6d2f6e5463973a6f7a0003b703b05afbc727e3a036ff06b9d3debbec30fd3d9c17f26c96b9b368a101d57b63d4f2b657a9f5c95167294f4bcb9bf7bbaa6e6b1e79ccdd985eb8bb54d8d648d77a4dd34be43781d6c5d952ae6d540cc53cb6f6314896c7a3925b1edac99ade652692af9e6260c2990290c60f42cef11d6e5a161b393ec8241f3f8eef9b427015e8b150d1f7f1a6cf91e6a9a07780b3312e8c7f5e4fd04dea218fce45fab0e06f6538ba60ccc0c249eec893d7009e67df713d17f1650f24af42bbd480bc66b83a1343d4594b4bbb30dd970e198f5bc92bbcb84510dd71acdd84906200f24cdfa7d0857dedd14d880529aca6ff7c5715e50cf0f54d5e0a73f4bf1d720b9d4e736613d8fe5cabdb0f1a798827b25f20f8133107c20ce7e6695fe298a6e769540439218a1bf194c1caf7d221094710b0b29e0938399845518b980a0016c58a80a1a958faef02e6dc4f8652e31a5eab97963761ca0e381ca1fb5546859c499da3099f717106c79bf363ff33b51e5517a3ab27fda8de363f43f048554ef8437aec3d51a93c2065d3f61568347a2a7fc6a4478b04bbd33598140b200d6d8735e2e85006c34ef34c7209c385e36409c90018793bab9db528887ebdde9347a4dd951d822d89f176ca92008824997f70a70a3f5a156e993d58e65424f4835a676c5ff24c2d9d236813d4fc13058305374c36ffaa6801f0b469a890ef30cad842af3e89b0d959f344557c7bde9db99b66ee8ffd40869b0d76706abb1e95d4d5181c9945f99c5bf26d0194533132616841d7429a2d8df1fcb64e1a78a4d6ff8d9038e0e1d805f7c26579ee90481fb4bf9d10b738a97141fd35fdde6482392cf662bef8cf957da60450eb14aae6a36ddfec5bb982dca47d1fb259bb1a9cc58adf7e3ecf865d8bd767cebc0bd15953a01f0b8827b2ef81b01fdadb1ba119757b0339689db2f486ce706070abf02d3ce8deae60402068699da879102d5dfb90fcdf11cab8aa4a98f0989eac9e0962069f3566176b3f28732c8ccf7eff5d214f802a3944ad0b9bdafb09213f69f89f41f2554b87b0eccd0e10033fdbb2cefb53b9de7c4798ecc9d4679db8399aaa069c7b7c9a2d9cdcb203dd11e6ba4e7cb69215d6d8924081ffd673a73a3f29d052927fcb50d18dc6174d68df259591efd2025b3dc8564a2bdf60c0dbb6548949dbe8e3c2864c8246440e6fdab8622e29f142c541d01a1e4a90ae65190137f9e4035205f827e2dc1208a8f7485d2a11132d1c7f5df5c3e6b68ff2b784a468bb4c33690cf892687036a4237071a67363daee7ecdcc78c3d20143154f9b102744e33c116692d6109b0cb8994eb741412071deeb27e8316e8a66f6930eaba7e844aa6f87e85f19c3863a287b96a127c1f025964583ae79595a80cdf18ce2b689c0f1f49d15e7110bff102129611afbc91782e4d86148dd8b8195109825648ca3dbd9aeecc8d87efeb502220d3ac0db227d5e0f538036be950cd0130f41866d784337174292f1a22be9b3a0bf8b377a69f12fdff2072ffd8b8e4cddf34dc0e2738ad69991404271278eac3c92fae84ae36aae8e730590a641a38814507d0ec047d4ada60bcde98a98109b70d82e1b1d724bf589556538d736106b9ade54ae48487f476426f5936fe01d2127420eb2baf45dcb3da9fb993d6af147a853b65b812fdc51ef2e460d1444f8919d5a20279339a90a83ca5d06f325b917eb7ebd6eba86f4d624faa689ef8ff3e77236b5cf4194d0eadde0eeffbe2797388df0170d1f3b8c36c4332eaa4097af001699d50d060fdeb948cb2e0d49317b38a29f335d33f69dd2263a91a8944ea324b6c47ed4dff3d502683eb8237d3fe3f8c50ed644166713ae686a49ad6af0e27ec8e584c1363bc6325d22a607ee1e84a72a4ea65e55d05f47d702893200cc42b81f499c27f102353d2bfcb2f6a843498df3a8d339b905919e4e8830929ded1982c4486b586845d7c372596bb41d9bcc3037ec7c0c863b9ca5bbfbbce97027940519cbdcc0137b7f467eee8323c62d768325f58ee9d978e357d3d537706e6e98fc89b8901a00cb892af9049665490a0e305092e53c3d6a8b327cc35c261ec2961312f46ea8ce505467089dbb29c222c33f558a68d6f748ab17f8cd1b51a49db2796ae47691010e4c2bd9d46bd50f16e3e7f189b8322f86984831ef719541a27dfdab4d8fe72ee1b6e474c1ab016ad581999819c0c2d98884bbce7af2db729838314dc19efd97e71e3e42c2206f2ed33fd1d60afc18589a2d39ec0e766afeb77e9b204752d0134ba2dc66bed4a1f882dff3afb2a406b049796c53d3906faa71b2bdd29ebc02c4ed07a1bbf7f9762724be5d4188ac0d80a9eaef860c014fc9b8f1762ed1cbb92febee2c21c2d1919b0980a80e9cb4a92e010a51d7c85d79e56b8d7772fd7ca4c0d0096fcb62f0ef19cd78c26920dd3954c58228fa8a170fc11b847a6dad4dbd79171f4d32a071b48d4c58ec47c0660c54a2e69a99abe187ddbcbb3ce9be673abdd553570b031024d757f9777a0b9680b77a250f664d9691639ad98d2436dd6aa38cf1aa7cc6e0dfd4bb428076b50d0e696acc4659d655bc6c4b6c86e4e7bc052d79c818fb11659c2d57bf06dcbd029b3c9f79e75604f2f4bafaed73ea368ab24ab18172bde57892729e49d03d83166596fd903963b69ab071ae4e1e5797cdca02f2d3eb897e60917cb3ee007fc376ecb2bd49323a15e02f325f84f19a784d3bc2cccf8a5953f3a0bd77a0d94476b2ff1d4d0769fdcace6a1ca71c294ab268ff9b8e7f606588b11d51f43f2e1a6364cd7146317c6d38567f6a75acfc660560095d3920bb4fc992c10f6e70ab0e851afc83a4b63446b5d045a0934d0d72a3d16289b9b6d293c4490455455cb6f90409bae1c66c1ef246d11eba16d1682746c32e13d823b6de40a0a5c31db4796586b315f777c33453172fe99daaf7a3c486b28a544a65d8175cd83647dc5deab76b446125217aba4ac49e29504df550d74f98f8ff658e6681e39f62cf2c80dd904c853cf4cc77615ca6a629a4781e3d29cdcaec0229eefc297fb985a52a7224e893f47a0afcac0c16c8897873f9b67ce4eef21f5fdbc3afcb612ba57765c69f9299e6e0f9a3402bd323290a4a9d5d091580002ff1f3ddd2ba9100fbaec9742c6a55e6aa985584acc2b1d04a9921fbc3773cce8996eae5453d57026bd4e9c4bda801f0edf92b1e4dd9f3b457aa8f5cccef68f9ff9c8febea6a6a26c15d682ab5ef8ad2e852f3d8b18e20a0cc0dc00ce16af7442c42531b5bdf682b7710ad97dd74f450bb3a3f7215de8c8f194ad496bf28f5d95284b7dbe0e773c1431836d74bee1e21696ca43a515d175b14c576afb6314036c39aa5322c74076bdaac40a48ac40ae4976955925d3911172692d647f2affa70ed85464677576340f592f26c47bd1a02247a7e12e4675a41ddbbcc3881050e13c377dd50173e84931d0c9c6e332cd6c42eeb686fb01ae492e6b8edceb4e3ecdb3486fb4a8539abd8d5d3a56a38d66b729598639ca6163da304567529a356d9246c948aa48638fe881ed7814135fbc17980168a1fbfdf5f84f1d3c3a60b4dfb6440e3cd00e685db00ab3bae105f6696ee43049003ed0800c3d3c10a2125ecfc58ec4b3697745b895e7fb7382fbb23bd52935bc27638c9c549ba40953a7566d09b01d09ec3eb666aad934a2258f40bc17afb3bd5ca47b2bec8af32d7c8b257ce45c789a965530c79d4acdcded6ac87b2d5dc5526e1d5ada7533491a45615844d60f707a5e5f2946e292576d65383ccd1e0d1c14f4f229f36e6ed7f0c4838a022078b9094ea959108b28d24c1dd45c584ddc2a3fcfe6e9bbc6610f977fa4212875bb0b173220c357e10bb5436cf25aef2c2ec9a6a068055e16e256d47d5ca079f94c42aada25b8da83c333772924610470369e7f15743d90c6c191c503bc8466c536f732b6e2b3d71f367b2ff58d8cd0924f19cda00c121c021f5ab9add0f7a2b8a29d96bc58cfc405a984de4a563888984574e801d0bfd4a2a5f35ae35248df4d49af83a810167eced13432ae08251c7505ba410e50aa4e89803e7ed1e042403649c84d063bac08896af11f1b741c97a7924c4458cce4f241897b365dafc228d9ede3bc784aa20ad627ccab24e0b7f6cd9ebe309f244477dc1013b23850544692671af224d5fc52e785849607158960ba0369640252c8aa33e04459129b132f6f6087389b1c073ca1138f8ba5e5b18631afb1af1422ce7b888bc30dc166a71e0a45d0aeeff8631940929de5b5c5ef0441fdcf02b3259588f27ae1d39e10bc58679980223cf77f3c1a17b310e17f883f61baccdeb25ca21cc1fc9ed0528114bccf7ce5ce1a6240ecfa465fca54e50e5868b239cd962df154cbdbaf8c5fd72993880ed60260f13ee98c4942262073ab411b258b1090206bc82014b3a74abbd1de53ee3690032e44e6239c02c39a934f339806a1752148a3769072a48700b924b9d580fe06ad08f0cab91f724b40c040d681504eafda504163cf24dee9d9b8e785f01964ccf285e21704b6901c59eed193f8bf355ac13fcc7aae2a42d18bc46e6ba2d6f57a518039edb102c0394c0c4e41a289fadbaa4c451b9ca80e025c02459e1af08f8baa14f85f1803b2f55ca61dd72f2af303d93dac6349d43d42b5f54aafd0e5555d4ba2e68c318082403f17a3261065aae933dca12cc2c9c4398f0602e0cee7db3304c925cd31d28adb88dbf839f1e8d7ad08c746bce21cb41ec7e7320b5d38009684502c158ee54e61676292079b3cf91d5e6445dd7864dd144ad043a07dd1f72777be23b6190c9eeadf8957463377b93c4369dae2da0d71500d5b38cd84dc7af1f765c7600f971693da81bb41769140220cd0578efdc3341e04f4d0ea3f01d40316b26c4e034beb824561c2c3cab7d6ca6dae102e6298d91687737d66ac7920d343a58fa7b7d635b00334ba59b9555f41c91ecfb26845aac617e668d4a2f7e664a581ee885b9521b1797da7cf95fc4758ec5813c3cc3cb80cf88d755a7ce8af4eb4411e8e1151054eac4002421f22a6637a108739704b8759c70c95553f8908a73f0f010da3d1f96411947720a860ad3e1b83f78f5f27b47bb3266cfe99ee8489710287a4460cc4067f73d0d9a974196274b2dd10759fdab6db0fa0f7142b21cd7af713432a662ea669e3cdee952694d998a68e84e46384752251bf0d25dc8ef9003ebd13a5dc577456147e035a3a8cb70e79e62e610e2bd34024b75ef95464fa605d48903ca8dce9d0bd830611857a171e2a306e412fbd6fc865c32d57dc591ecf1e40f5a2dd1a0b2e8877935cae473ce21c762a14c18c0a55957c15e85b9f4e5c67bb9fff564368916b0ea25144fe1fe7fe6f8825cb45842db994ef1eec09b8067bead380efbfed1551ef7fe4dc3f798820a06ea812f65382416eb6e2de2bd74601a0cd450d400f5a6c18b77828871a650dc4fdf888e441ea8384c3958d61ac207605e18d03d621bbc7ccb6c124a4dcd24f1c520dc34347becb5b6add979c419a85204160fe224b1946a1f80da1e3e33e62287ef5f052410db89119a02943ab6008d79f91587774378fe75c409d99a995b8d2de7a1da6ff167a1f6dd2890f11069464ef2c0fd4197811c11d07941472c3c77c3e5d9be3262a85edafb70b874c96e5fd4d0b219ece0023b8faac8cd673e435ca554c43df41f2b3a0d76221ab09272404617a51fe66af9164da3318b0d0bbf1625f12ad6dea3d886e2b1cdbdba8c6875af7ce1fd502c576a97849006a7e74bab7942dac33d225110f8fa05b24fbddc1e9ae3569694ca2aff6b09c5d9d0d600247b722e8f70527ae297b0df12ca54cfa12b0c695a307756b36c5aab58af4e17ad04e8bbf270ee3966952679e8a0f0e205ca1930e39d9b99af4665c6783dcbf89f6c068bbd2f4ce5fb18ef5fd49bd91f58e48a09dc154291ea03ad522c24ff1fe8416885fd61281e17599fc46c2d322490f8ea4ebc279da2dec6df4b745adf43784201aa61a87577849c1a80a4593fc438c3218e68efb16915742e28336822d3ad6fe4908ea311a7c6be46789aba7547f0fe3ba7b6ceb3234eb0328d4a414392b1e928dfbce0c776485be1ac6b9800c41047def0161beb7a6edfe138345ca41e5be2e645545637b0644700cd30d94238ebe43b22d7323e60ba2dddb41e109139acd1a19d7b5c244665074c06a6210a49e9ced89682308db5a28e0090c032164e35d9f42bbdf2aca5e3964798474c3657c40016a28e92361714a8a601a8617ade7258535377ff57cda2fd7a4ca7c84bf6f1236a2a2d00ff625079a7eed8ff1f2c5ebf6e2c984b6c907f544c292a89ce355d419b02e5293a0b2650506b9ceb9e50cbb5a90a6a836401c20084ad24101e6a04861a8a06989201d64ca3abe398dc57f2c0b8d01b8160085101edf1304e27234f21eead0998a9ab36b27ef973fe4ef43070a7e53467fa8bbd8676c20fefc3ebdba29acb7afaca9f4021fac4662be82aba5f6a1d6c17d121e221808e17986bf87918410d358676aab68ca1fab3faa87f17ee1ebb6e4833c2d793ebed238baf01116cb0c5ba1bdca546611a9b9c57e296c243afefbd46efef9f6920099f00321eeee2e7974bad661d622eb5b17bf3a9b5c1961870c7733580b409f9537bdc2742eab6f94bd7c3e9411ac525ccc79088eb886964d2c66fac7d12a097e56d48dbae8287a238152150fc02d8b54766181a80053011a5cdd5a80f3d634590d86212c8722816fca5076512764fcd9fea764f631bcbe6987df2a24c9106f6a792f5e2f185be0aceb5129573455003825f5ac0b3042b02b625e3f075bad6331e02779edbff1e4883328f3fb1e0302d36e2839e744ad1f448423760704067326e31c0c56aaf889b4a790f876c89df7bc35d772ee3b738b89508b4923109cae28e439f16c341977538fe8e7aa123e7db9f0ed9857a59d39ddbc1c55b8bdf67ed2da28aea54a39d67eee15220d42a2f9e090806bbae675fcfd86afc96a75b0ccc35acb5a951f25454803fc3dee9d1c2678b774c71ac4582344de949b66d0d866d736cabe714357b31c370c7d6ab683ba6e5db0a735c72629dad4542e194b8643429e7c58369142e5177a0b6a8bba87548932565896ad91596d5cf9a5763c8973e0a06329b319333bf829b53766767f3c84ac2d589f6ef45cdaa08ab787a047690e748f80dd4d90a091cc1c817ae2efe0673070004e5972587ce3202c098a529b49e5a82be58baf8de3665fce41535fb19eb676fa65aad874dfd3d1deffab8adc147f6e4a9fbcdb2610296d636af0716b4dc55141b70934274ae7671320b7e8cc1b6e0b97dd79a429f3713a93057ac85975f1744239793a8a2b006f366096420c42cfc127124943f6d30e2059b86ae0b85eec31b224659e3932bc9d325370808f364bdb0ae372176e45f23abec3926ca29429addf57232457edf3085101aaab134451208ec78549358cef741805855b55818b01d109f505bde45d5681090cb983398154efd18b6d00deafb5050b8352096f0e373f5f0466ca0d6dd07324a3ac22260692b016aac461562acc5a35f88821a3a9f18f8bb5f47feb0e3ec3dbb7beb2b09692000f908571315d6409301408a3ae063626b27096abc0605022dca29a98188ab0101b62714d51728d131d6e7ea99bd33d2e6ecce8f9e6bc6b9c9e76bb9e03b7ffbe95bd841b40f789b2afadc8ca7de7f8e58230fe8ba898a5caa5b09a2462fd432dfc80dcf386efad54297f775c73497989e21273874fb919f69954cb6efd3160db5a4e14710d0ca6b64884f103071bffdfd4c053d077ffc501d04f94a4adcfa2dc64d5dd86cf5188f3f58b38e860b60bc17b42d4748271512356e662d88e02472e48f42c88c5dee6ea8851aabb3da8b371d7c61eafcf5216173e08e0e9b7da0715b85e071d184099835b8d6334f6174194557212cc9b41f63c9f084f4e6dbc86a66255551cf372bfb59d1e7e63182e812fa25edb1cc29e03f2b8fc41c6a7893d68997bdebb8ad96270006ee10455b0f3436784f3bb786e91940d0a3b4116fb130ead4e60883efba79afe26d930ce63ccf06268759e8167d67ba0809d279db236d2aaf9aeaf3801a9d6d36e6ceb022f0f42b216106a73590571a26b6dd0e36193c66062dd3f9e4ee4c0e455dfc2463423e56a971bd77fb8286f44f2cbd522d3c926f34806a92bc30f5c694bb53d78969ed571796d31a42b00526443efbef95e5e7692df2434b744a4c6e0f994540cc38f849a01cadfe600cd367d406aa1ccd492a17d0557a6022c68656a3238d2fe6660abe0667f5969a5b2cd9876f6e3af269453a9a216b59098af8fb66c7e17de01156f52e7fe56656135236ebd83d410bd1aa1dd428a0379b9fa48870089a22e4642b0f58c806f7e502aa9cb70e4f944c48f526a7db118de24a9228ce09055eca737a079b3aac0b8c912728700a377419bf1b9114174377c08a1f0ea768e5406e6f85a1a7ac045170e0e5f30e5174d540340343bfe6549da9b1de6d204760d64fceb65cfabdf300089c25d10fb8e6d6827b78702de80d12974b28c2f035cbb86724eab0e5faa16f34f78c09db12a560afe1ab56f82c97c2a10620b3c4302aa96314e56205a16a503912bc07b08c0410d036ae1823766f914d5258b905f4c5d2667025e315ae7badc95b0e0af86bfffb1dc3bd09fa2b711407288ff99679b628e025680e327b3daec8e2365c7a9a1db1ad99b6cb9654a29a51452048e046805a3546655d534c3de351a8d46a4083f8389f0310044f86f34d2ebb11efd75751c45f890ad5392cc728df697fbd10617fec25d4b5595fbd425a189fad81033375b56b65cb20c96aa6afa77966559abaaaacabc592db07cbb3bdf7727e6efa2fced0e7572b2c9d4ddbddbdd422a2c410ce1eeeef6fc00f1bccf47e90ec1b5767bb7aebb5bf58aec372f0fd42c09d5165a6207e3165088dd42c822b9d66d89122bbeb775d69eba26ccf07a7e6f81e645684bb0ed82f03fc2ad092fb1362516138eeffdc797af8c5531c2e5751e87f4aab86c3a8fe3f29942463faa427a27ef5ef71e7b0ccb9877f5e6fdf5d817e1974e9e1296c1017ef6f0b32fb2234769a9da2227765ceceee3d36c4daa7c56b15f86add1d84fa486254a94f88f3e5388f54a52e024fa5bef72d278a63f3b0159ae9f74a2e1997e78aa8164e422619b69b98619b75cffe804c372fdd789c872edeeeeee9c4fc7f5306d6022aa0c6292ae934e893236409512758998a4f74556a3c42459efb4043e138e46e0a6c48a48e0fb86e43d8cfe30ea7bebd4dd90df448915f5fd9974c3db9458fe4df8b7c6b7261cf5fb33288b4ea3fbebdbee1bdddef5767768c16ef6dd6759fe6feb76ef7c1693d62e2b98fb73ef2330253a475402632c337da1c0b0cc9be7cddbccacfff69fc5fc626dccecdb0b3357c92fb250ac5e666bbb128caddcaba35488b28da689c996f578eb5a88cf6aab99adb775afdf77fd70ebeec7fd0c2f2260586fd15a6de0cfde5782a601fc2599f9b9eccb15d38229046e95dd5caac87ce6ef24347d4ea22b1601c62db7abbd98d2e6692f5053462d6bab6b6666fa366feeea0063765fef1680407723009507d6f3dddeb59e2b33cca71b84ed4bbe3f4cf5cd3dc1dfdcfd5503cbbcd97c6fde6d539f80e5ae9bfadf6b5f7ecfe6b281af4f7b39bdb7bb4b9858f1868c4cc43a79cb57c8d7eceeef410bee3e6566e68cad2eb7aebbf58a6929bbf22ba25b582e9ffa2f97eaaabe0179cf5fddddad5782fccacc0cbd4dcd038c88c88a260b37f4584c2a4d887901da725089c94e43c34567f73c42cc6f39349349d3dcb777df53e7df8f25e499fc4e8bd0663f9b08ddab4ac7e1e999a5983c2292ec74e5fc7eccdff391786e8bb97b66b7a7ff7bcc9ffbf3cdc37c9f4f5f21f366bbdf77fcd0d7c6fa0e765bcfd1c07ab954ed2db931cd154292e8cfa7ae14b92debfbbbfcb63ead6c2b9416ea9ab2526e494a3175b31a269622fb1af6d5be75775ff0bdaacf90d569d1b22ccbb2ac64df3a6deb4c913f1e513a80136a34a1b4ba104693ae5b0a773d493858b163417c9bb69cbe934532e2aadb4bbebea40e20af6ab25a78d34bc90449107062d2b097164ab975a5a858938cf8b5be1d97530b5ad1c95338051b1233ad54529beb3ae518f1028df0017bafdf7b4f97655cf82117ad53e2402b49d0bb6c0421c5516a10d85f078135df3a2bb33b3333b78edfb97d747d938c8c5e4f3ba2bfabbbdb9f767777f7e86a982d47727fec5d0f1d1c7ccb7c239f58b59c3e8c02cb16bae7850905c35e140b2e46646636e45623347e42cccccccc2c052680175ce0dddd006ca70fc2020080c8fcf0618ae961d3bfbbbbbb251e3b74682f2ea40c1b5dd07adebc2f9999c9b9ec9664a03e2766f5d9ee56acf56d50f60fc29f381c591145d377deb85bf0cde5245c6cf61433275bcd7910fec45b211a4cd27e2fd908d9ed634d1cd33dbc83fb30af64f1803b2e1d230d7bc95c482497ec05d3463aae1d9087557a30dea363d8b43ef447fe70e1b7de8fc8bfddcdcc9c9fca3c42a3afb80bda8dbee22e70172491840b2f08809b494169818ece8bc1ecb9ccddbda7ced388e969e40cb498bd7935f79999333377593b7959af2ebabb1fb7676766fe6b3ebdc7105a9c4672f9bcb965ed8626dc1a77cdce4cde58c897d0f4210f545f6aba6a88c6d0e9abaaaaff0781413b77f7013c5575a1273350653de154d5859e0800aafc882d2ed0f6ad177c37480917b04e55350b808ffa5c995bea73e5b9ee69fb7e9f5b9dbb7be6513ea5ed3f77a8a905d121a4b98a2cf0d80180120f9211055292817996bbbb5baf476ff120fc899bfc083fc2dd654aba6b5200a83ee1d1791678ed604147104df5c5e094f9115bdcfda95cdc3d06dafeb3dc3d00990561b6bbdb5b5c784100dcccf7153fa2b73801b2dee241f8137f0d43d65bb4fdf7fa84e415cd61a0ed5b906116c7124310fec4850c09c29f780c3441f8135f45fd212423fa9a34340a40612a133b5555ed2b9daaea151ffc4c9daaaaf77098d8b9bb5ba5bea2a82b5599886790e001af6b68a403b3dcddfd598c8594f90b5e34cddd1f1617d390bf40dbb748d09d559d41ff979934f70e6a991b81c191ea8ecba1fb683e966e4da7fedc39fae7dae0bbbb9ee3a6e7eeffdc63323742dbf757bd978457af4d595f7128dafefbbea2ed43ed878f95f901244b92aa23a1edbb0cc9883effea966ffd3c10d6fe2c78c195f60ced8e8a75da9f052d22b9d29ea1dd51b53feb11c995f60ced4efbf38e48aeb467488a1429dd11c995f6489122255752a41091c2c344989999f905b37eaddef2a609dcbc69a271de343145fdeeefacc9d8f9f0b12630ee779f3a27d19bc0b8affa4c9ac0a89b0ccb1921c2297012f795ec26430ae167526439a6793afa15ebd7edfdbaad08581b127f18bd9b551ef93d0c4c552a9f2c62678a259a7789abca0228ae29c62e3b2df9254d94e81c5149329189bd21d99a38918133857435447d22bc4d9458718614b2af448614e29fa4de8a2cb7ff747434ceaa51e212e6f76f43d2bfde84a36e5d6f4aaca8bf35bc5ca811f7b3d642c5a3a50727b1d3df1c7f8e3f9f88202b92aa6281256c5d7efd16bef7deea4c99a2a222678a1fe8d9d0fb453b557da142db6ff7d40db63e2b32730c77530a497fde9e73371baccff22d3565fe6e26ad4dc1da9f052fd8a92cedcf82d6100375aafd596f8718a8fdf990f7cfeaf0eecfb22ba1ed43855592d009c29f68faed9c5b3744ca9128c2999b05e647708ea6ddcf4fc07a8bb31ba1e9af9f786b5d2a302b31adac959819b49bdead106a9ac9c4710b4897023bc5ce4c3fc57e45d2ffb6df53ddeff5eede3285b8baeab92b6fa60e4dcc9d6841a86926d33fc75dd7b575a3cc12e163a3b7a3ef78d58cbebbf4d4b910a163502f0d1b775128148ac976a62261074b48c5b4e2054fcc1fc4b4d2c595f87d042844fe640309393f986207040a858a4c4c241a483964bfd3d1ccb1f59875ea1eff86a47f63462bfa7b6168d6fb2f927e8e48dc1f66deb8f6326fab3fd46b6181999f0f98bd75f5d248839999190a0931afeeee32f3080d1d347474b21ef4c0c579f0de7befbdf7b433ce78efedd8c10e98b9c43ae01d661df00e33f31c3dac58610e12c4cc1c9bc128663318c5cccccc032883a70c1e1e18c82083996318638cc7cc34cccc3960666666048811244650100d61f084c1f3e6e0490010d07bcf8607c653bd07c653bdf7de636607f0179c62fe8253ccccccfc001ce08002ef79f1def326e92b17bdddde7b1c785d3cd47b5d3cd47befbdf73c70831b3033175c30f37b2f043f3fef3d661e016fc1cccccc3d6801a405d07bef3173097c7c54b5cb956a6e66666234a30b726c1393e219d5181eb6196d3d563ca37f69313dd0a4c5f044ed91250bad034294256af792228ae159a9f67677f7c012f5777777777555df7b3f6021f4de7b2ab8e28a399879055964b130637f755a7c6c631e5d905b9cd177a6982f29b6196df0da5e76a049b3366b731b686f3d923e93303d917228ea8df9bd97f37adeeabd9eb77aefbdf71e12558010e958b1b262b552a2063d35e8e98142831d1aec30330c7806fc8c2555c54f153f3f4b5041c5141e1e26a620626666e69dcca1d0a4286561667e8299a3c8c2ccccccef3d2a8fcae3798fcae379efbdf79eeae70c25b4a18433548acca1d0ba189ece09961d2982924c36eaebe6a42345509ed0ba97d49122285b0365676b321e299ab2a723453b4e68478a521b4fe4d723455098a49f242831a12c97f14851ce127292848335c71cf148d1947dd98950d6e625158f14e9f0e3c78f1f3f7eca8f1f3f7efcf8f1d302458a382296376879c61b6fc4544de145ec8010457e534cd514542206021080e00321f00027021188c00324c8783a7046ec1a4b0f3df46e0f1d288167e18066021378b70938806403589224493670020dbc090528408106946460c992de5d920126cc18601aee871f7ec0800a7e2e80050b1040783710170822b3c00b21841016604105882082880aa07a7850a98a28a2081e8ca0404e4e0e05903882e9137da24f8e6812ab1d945042891da0e870b29409654299d0417726b0354e38e1c404a0c8842400052a5476b7a948408a6c77155523b03d8ea03aa5477bb427027ac50a02262cb0c002023e40390c0d69a15a78b71639fc64fc002eb8e0e2015de0e085175ee0f045e60030c000c301616437a8182a868a71838e81b2810c32c8b0c18c1e232a151a68a061248dd780f7b65e638d351a300406c020431b6db4c10022a8708888dc70c30d9c22f4443562d75892a049d0244455024f1121a137de78a30813821690254b13b409da8405a81314a0419306071c7028400a420958ad6207b568d192802da9c85c0313a1512a2815940a35681578681012522ba815d40a34681ca81bee550e9543e5b8d13910f0e4c913042491118912250a11293b91d986839875ca9429364c04d564c912bb6ea289266a9c98e189279e98818a2524c32abe2d8a28a290610aa003fcdb6280a0e550e4e1e13940154f27be6700b6c9864a5980ac3a277aa819ccc0fdbdf79e77cfc00035c80ad0313c56586145017a8868de64832cb5d472198788ada593e85bd7ee4cf648d194e5321e29da591b908c1c29cad91a2731230d2955c791222acb65ec5eb0c856478a7486902660cd71a42867b98c3134483640f7c642aa77a770052c5be82c95149aee76ef6e5dc6759b6868382e2e2b519a7c477b71b7eeb9090d0bd1aab4dca6905d4b85da4d3782c099abbd5768651ff5c9cc4c7d3433b32ccbb22ccbb22ccbb22ccbb22ccb96d3cc647ecff2b34b251ecca6ccb4b2edb729dc3071df93a0e51029a60f989022c298aa1f58217657eaea611b88e299bd76d8c6c7ef0469175044c95c29209267ae283499f7f11d44f938290ecca98ae9634e3a10c7b4614086879837bd691ba2abb004144ecca6437f690d2da534e4b593ca9b648394c30b89590687ee60bedf49bca84c49bd6b3130db3565b9fd9cdc19601e89c7c99d2166db9f1d43ec38919e4f49b2587a25c9ec20f33f9e07191f2fb30da1443e4bfca470621ec82b49071fdfa70472fa719239a9a24adfa90e0af5c3a6ee4d73a0b1462abd603b624e890377f286276f1606060606e604f34576c72963e974c518188c876a3ab21da4981f682eff02e4f263e8b5edcf4545ebf68724b383e97f3c0f3e5ee647e624a37fedfc38c9e8a6c385e34bd01668b9fdd2b6fe86d641201fa722a7e49928045dc1491c9f1ddf65d08eeff149c281c7c37c91cde44adfe3d4c9951e2b6510c53689d39968384ed350714bdb0585e651b7ee611c5ffa0e123141cb35901047d40e6289db05110ada9afd59a0d8ed1971f7275bd20d1d950c115537a8a574aa627ab8621bd30687a0b0dc76576a28ee432c5bd35da9236ccd330a08cb45ceec870181ac40a14d232ed0fe3cb13f5af2b18281d1928f9363d1d7f176a2bef6e2599aa4253a511c517f743d9da86f3d28530e10f30b9034c055193ab3df713630c2321489b87028872cdb40141c82ab8b99d94706a510f7bb16225c9dca88fb6903817266dfc7ca87161f44317f39a1758be251551e2a475ca92ba5ba3c3d88a90bb5114b4d55f5f983042db73e563cb384d65da9219737babd52319b4f77a5ae94ea855a8742d4ef2e1d572dd7c672daed0f0751c1ec0e5e60affd746f6c106128062d9f5abb4aacf88888ab1d938d8ee56902fa850e51cd6ffd592ef50b1d92df1ff304f48096d3b762d4ef9343d751e6a715f1e16dcd3226f57e4d4683dad614d156fa1a6ef114d3846dfd460f24768b1a6dab636daf891af2d04e7099870378666b52c804830ed9ef8d4b9b187466b36f333492c6bc7d6fa934f0e6430a925b207866dfface05a6206b32b70a5d27926d5687537f5c74a6db2bf6adac37625a96f942ccdfb2665152486e3f6b78f5a7bc79af9916b53545966329644d0e415cc6e7a72b9aa1b96845b6c687e5f6f9bb8e39648d10c9ed03b1dcbeea9896dbe75688ac2140ec72b5c3e28c3e49376cc4b25552ec78a52bedef9ce52a240d9943deef736bd4ef3acabeadbbae10bb7f4432d2cfd50424a343abdfb5a96b51af67513d8b7ad7f55288b53bcb735a2ab645f10c3f865a1d1e155a4ecbf1d14dd550d5ceb09fd3a8df32b447686bd4d81a151c69a34239b351528592885b44e42a686a45e3183bbea28becd1ad73c522758bac79bffe9d29350717151aea77276f326f34629acaecc22a64a91054212cee70eb4c2ae46e6d1dd43454484785745448270aa5106bb44168f5239134cb47574ba1f163a9a9bb669c7f92541fd391f9a9a374eac4ab1313f10cead4aae3c3d6f412caedef13206ba0c4fd4e22b9e649c56d26b4c4fd8b0aade315764a9cd4f87d0d8dc72a6f7208719fa79036a3dfe79596ce6139461b2f7cd9ba17cd9242d4094a3487c241b438a4e84db01016679f89f2263dba50f47f2423fe23e6070c07eb58a590156a95a2d941110e626f9d6951ac4142c012b7889cd9bfe06a4fcfb2a15d415b73c6d6b42a669af32a2eafb6468be2db3407da43c597134b2ab84494a07ba468cad66c6a6bf44b5bc3249829a8d46c9ce82844440200042008b3160000200c0c090443611866619cfa0114000d68823a5c503297872281481889411c8431108930140420409821461187144a3a000e1da0bd170baa2417eb875f0ffa2883360c80c4d20564f648023167a8d75285371ae689228b7d2b5b7b8c13acd214d1bd3fa9804d7f3e1b5dc409654bf38ec610379ce2b1ca1a8f08bc669178536e54aeec8e9fc7584a8f59cf2881ae3447620d3f1ee65e636c0c31d31a7f896434c00087d05a6de807e4bcadc2b1e2e1e95890a3e93019c14e3b951b2f30b62970e5fb2b7e8ef44a352848fd9df42ebb8ceae3c6cbf8ac7d9c064ff99f3380bf830263f8e3eb76fd622e5e182e05328fa6db4ac6a34ded5d59d0c04a59465abccf828f7b3af82ce47a09975da77ca29ac6165a826c44b9dce199121439fc9506dd4a4543c6d6afdc56caaa3747f0d60afe0223494d81b8632ca2f315af2709b56db6419bbe5bd0f71ad75677fdf068cc74d449934ccdc9feac8ea7ebf0c47cc953f82c0a4ec8812098687950b8b8edd1d6dc9417842c71c6d34b8d4a300d377fd15e76615ec71749c5d15d438030cebccd8ee9df8b2c043666cfbbe3c273ea90b458c54e3db799fe3ef411b9992a325b733a8eda40c7907d24a186b78b88c81e748df23d039c06460754393a2e95484b0ec62e5eac5b308ce8e54e437e080c10c68a2d0ce6be8a88b9d60deb23e8315085865e382b988a05b2a49aaebee1dacf1c9e0fa3173e7c8073e53d562a2a136fdb61d981b37fc315a5cdcedfd2a0065c00c1f8bafcee81c15bf8e5aff8b7526b226048891221b34da1981209600a4269475d900eea13eb00cc15958950af88eff01590992243c1a82b72f63fb80547b79f07c701a28b8dabb2e0523c8b6dcab62a36282d51a1ce963a90604be3e2ad2cff0baa796b47c3affdf335746de25e508691d306a83144555017622dd2fe3a580f6756be46eadd6f9572e3e0be6a2f95a244516d4a5b01f8f507f756d728fb70af1d4de76b80bd2a26ca63a917e76160dbda1f93d4750fc9b6354456336a0f8a2d538b3d4540a38bec57832f35a6bb18366467608b9e580e138b974bf5379477a3fdeaca2c2b75539f3b24bffab5190df2ba074cd90a025ab0867dff70cc88583283c3beb846ff2f88ef74238bb621e6d0829d0b15325fca09e2e7e93dc023bc952a2f7a7b253b9da7bc4422f4e062c148db4d89d7cfd88946952a9e8ac326723c068ff696b51f3cb8f8a97d247477e0e4cdadf720541ae000c0b8d814ff3dc7e72bb04ea39e998f86ea77ddf3d6d5bb10d260723877bd261138b3e6629b44c87386cffcbdbc0b946ee96f1bfbe8ce33494a1af2f72f8083cf099792f064fe42ec151be61f91a2508f259f3ac9d2b6de808cc1ec5e3d5b86d58d17da77ba80202d50a274fe04b157ec7ba4c61010721e1c38da71fe125f42eaf4eb7ed49ff35e5fbd7c76817433de15ffa0bbcf095b38f2090f1b2b4293625874f089d086c2898636056039b8783248f76dc9219eee3a615a456e5af16116726f9ae056043d889ce67e9d8b3d4242a372fa61a2e47c432f195d52a4a490c279993b579c928d432ba6fd851f54d4d7104a654aa57351f3a64efc5bb6cb026aed5c7efa37b538c042a7a6a39ba52636e978d37451b81be6ff307d7e1e123357cf7ee9545a8f6ada610e17397c18408a2895e5c0b3967722241ff514e44aeb33b61717b6cac12956eeca45ae032644230cc7d02b50210957db7471c74b7ed0ae9a6b2626d921ab4522fcb54a6aa825e0c1e8b875edb101db2b8ce5762467dbceccad88ebe56f21ea716e2f6cf7a8e17bbc7153bc6387e7004fdef62aaa3deeb485dc812aba34bbb071286e148139e8adcca051019cd2d15d5c91589e0e8760b42228af30009bcb13b835b3a0cee1b31224052b313ea9ed021b612684c7e9c9e7a8d6e20e9bb663ba6c48afbb7bb7bf1caf8e285ef502b847b099d7c8e43849c0cfa9a4d7c4f4247c3581155f3be1765c9bf561112af989a8e2899d57e7d7e67d63f177db9765b2e816a44b85aad9c25a4a60454b7ea5127f67c945c0af2bd62dabe63c6fa917103238c4c78152199138ef021715d4b372632f6ea4a6739140349ea703292212c22f6fcaa2e6496e9ee24d4fa797a20c5b859d4b76b77a7119cdec48a07d2ac837c0681717d5e8a402a07b5b599fd98beaa1e91a190cb5186b1a873a6bd930f297eefb7e0af99c9c6b34c9686c7c82c61360eca65d08e6fbc45ab671f92b4437193426183bc0314a9ba01f928a4e9d993a477362da37d2fb56d107f2921781018fed39c0c065e9942f29ffd2eee5af03f65d74c07d7b8c5c8c72ebd0bd61e60a8a7ac9d86fed262112262360322858325db75f475d8a4ab96476b3de106533d8e32f831d78f406ef027b306a154cf2a504edb08bca9c89975f3a7c3ca20462c4e8f19e9cbba56d08606206e553f0265af634011786cfb8499e82bce34b03aef57b27a54d52b15c709fbc44d3fb81b51c3502851e155de118fca5781dd1073c69f080889a8d47e44b3f41eac9a375dc467544f75dcc4b416d27f0f3c6b725dd95b75f2df78626beccc3e8a51b9c1b1b6dedd00a578e194d14479a27dc5cc2020313cf842a44e2900931576de59123659360bf559123c292f5e5f7103694eaa5e8de151d3683747f63376f6f1d91fa3b718a4554c7a6647c6b671868b63954d763b1716928ef4676affa57b7b4d4eb4d0ca3d8d7054c0e512283fb58d4dcad25e48fb1d42c064ed04e1f8c52a0e5ef4ba46bf4044504c36e7687e06cc2c0f82e5a99142a2a9526aceaa470dcb8def0039ed2364d20b862ab8cddc80bd4528ba2843c02fe59112d2882eb754d9a31874a433ae824c655bd9b8ca55cf636cafd0a0d3247eeb44377ffe649f36b751b1722f3147bf10bb2dba8d54ee038d451aa21088bd3fa9ec26bfa64ddaa80c7d0c947c72483dff14c0c9844c837d355c441ad2fc79d3f2a551887e2bb0fb7eaca858199731a7196c9efbfe939d9ff7bacee1e4080d9b35a8f2debbbfaba588e2cce10bd9d06a7911026ff8083a1059d2395e20e4d4881fec6c00931032414b2769659010857f42e61a8b20f6d119a0925372c572f679fd972cb8e8edc9821ca38014e135db43f4312ad183b699a2897aa0516e01c9cc55c2b312fcd7256ce7b9d42ecac0c0e767a6a033489d9beaa900a34477358a6346627814a5994cdd309bc66fbf658315283d28931751ac95b4f813675dd89cb6657cd092087eb888d5e3a48ebda6e4368a71a67378ba07159ea48c703a6421a9ae17c9d355ccd5acffaae0a3b6bd25b0d7b688bcd866cd2884fceb4a3c7a33ab7bda34f5b316071b36847784fcdb2156e942fa3dbd75c2e3a542b0286850ec4d49bbfb25ee944297d9029d3b71887a848148b9b68493bb7889229d24b5291a3eb7b41853b652b51236838831886f162a54cc54a2139e1151ca25830ce911461f2041f8590f381eeee602fb8ead9dcc9eaf7b88c7125a11723844adb24ca69c777d4dd4ef45d16c5ed3a891f308a0b90fc8423d556be54e0f10c6e37c8bed816685d8afdcd24718b337952b602778ec4478f2328d097af2e522a5c1e31b392f164a46f514f7b40a0288cc89ecabe7415622b989be88e24530629b6b65a29e265243f8e933c551d47e2567ad09e54cf6f312000a815023339d4c6ba46e4a753a657a3097263af9d1ec19cab971f937faca84362fc98125513f50dffa641ddf489eb349f26b68b32461a2ea1448e02bcd87198c5693906ed458c15d2d0a51f401e956811faf29e14ce63b62b6a95d279f4129c9dc8290a214208c84d054551f0ec1220923f6c982140b2e4ee5e3ad3a11249a8d2fddd18cde5e88bf1095025a72160e4faf4abcb07665277912822b6b8c13a91acddc93e79cb2479666131263392a1421fe054d38004d3cebb2cc8f0088d2d955e48662f190bbb581b64ef14677c68f92f556626dfc24088f6c98b71f12e6394f883c64dc210c15ad9f3d2b5813171d64828cbecf5eb2c9ebb4646c64177614842bba8a043f3f50e90a327f094f9c2060c8112656eeea54ba59821761b40122a2362d87fc905999e211d1bc064119a6d41d1599ebaa60c78318cbf685d1a8dd070c5c584a6c344ec4238a1806be31ffee90194c795a498b59b6389114c48871128a94c6f85171bed7b9f5907c767cb1a42f795bc7a8fd7c58dc94462e89252a1d595a1e8be71828ecde75d5299ef2c067c6379fe3a3074379d4b831aeda50a1f1bfd5adca7d1c626d5327c893f6c1c83c70d1ef7eee2130f93ba69f4d699b28a6b8d17a8e92908414dc31a2598feaf9f69ec3c6f542917fc5070d64f5c236366d16f6920f13a54d0b1fde6e38ee4739c04c30fab42750340cc8806b1befa348b5a76f13549e8e907f820129a245fde48d681d9f68f10891d209dd2a90264db74fa349421075fc13239231e83558406c2af22c7e62bcad7049cc52c5a23107ea81493b8735cc10fdfe6d3ae44a92e9d113872dfbd45d2c9dcb6cf10890d60baeabf3d27ae89290b4c40100a0f6110d9e7c0e0d78cb78cc1714c0cef9a434480f61cd574629fc53ad69d5a8174b10d539b3732d71d49377a5ec56e2c7cd1da286d3f528b0ab147b74b256a386edb5117f40f76f09f89c52d9bb29b69ab9bf7ba72ea5346a2b80a4a9cc8b2f028ee9b799206c042cfda960ea21932302a54cfbcec601889fd007c46903dc0160e3c64d9f85c47cce964022ab86429ea97d42f6d9169336c2856d893ce1414e4fcf1d32a31bff7a4a4b7c34c03c4e460754e26642c4fff7822a670c725c3320d0e654a9541e0f6cd503e1cc781753b28f8f567991d0707ef39fa8645fc3860a83043877e232b83ce128c5875e0c5c28de2f33f73e1479703b9c812f5c9cbdbe38c0bd1c14d9d76b942189ac6370e1909b853d9a9e14312070e9d9c1c9959dceb79c67952f90b818dff3e8f53c1ad2550507d1e754932e4253d9d2bd8b7cc82ac06a111a405e04ae29aad9782825344dc51e6a5f6c300de978e4d27b7961501bb6132c89b99bd98d0e2d6d1c6b6dd497ea191e6a4b5e8bc67ccc83d32034a94dedc96304b3102492cbdbb95314b6406965089b1baa7b1761a7a7f5c49561a94e6844e582967dcca3f22886c88827f5096e87f5a49c4aedcc5316279845eacc6e5b1f9b1ec528f19e3d16924f888c5aaee637c308bed8d516b934c66ac5c508f3d446cb8d3e447b33bc2fc5cccfc1bef48f6b44f490c585929c8e78a4718f0316b205b476ef37021b1284aaf03d517baa1575968c5424cf4a8f9fc819124f7f380b020d9b59498cdde8281876ea8e23bea18a30629e0b3ef24678b6c92936556a417c28ad79ead3ce4ff4afa1910d1bd12aa100ee38ab678115d589f69894baa10402d17039318d5b0dda2be7270c6d561ff79124301ce36011191e7e1c80c4536563154b3873080c49530010c22ff351180bfc4ab1332a5429af082a877a0cbe98a15cd28db5f06ba3280a478dae72bd135e225805ff35bae773382458a55958c46e6a0c426738278bb20d6551d6336fd5ced34e74b92a2f4c67b13a0730e35da3981f5ac045b3581b0c02ad0db8d555cd98bea065af1cdea75572dea0170e5ad828ad7de3115ee3d3c7a63b670f778d91f57e1bdbb0057bc2a28af806baf5a9403f03aea81567cb77add578ba65d54511c81564fd52826d0b5471545735543ab2fd50534cc466917277041922fa2f26b55c8d7b7614fd5f200f4b7a146d4c24ab59bcfdfbedf7fddcc2cdc6a1e0091fc87d05045b3cd09e0306ff7cdcaa7667c0370529285e57db98d5c87c6bc5b0d9e09f9df2515c14aae05964305ca3066bd8fc50bf5f1cb6e3c65e261142a93146f6306cc95805094f03f57b9a99255a8d124f0e5c3e6b9be3eb020faa945f1cec1d154433dda1ce85a0322e4d6c8ca58760fd77e88a1f7d7e4abf54fce04febba31c6e42ee45aac108790732165d390a6b15f2e640fe439f16d2c0cab3c98dc0774676812d04ad052c647192d83c90d44c2335352cf108860db48a111d434ae97000108fb7fc6a8c6c31a8d9d539ccf1201e72d51ad7a4deac8547e4bd6216c24d574a1b1cfa9a057002804c190bffedb76b926def999a4430c7fef16211d0fc1763533b7c541f0e1e54c37cf5e2e2f361b12eed0a722bbb8067a481328a4e798aea0f5eb7b4374ed1c61982cc9c12ed86238da7c7fd1949f754ecdd9108d8d7322dc4025d354d380c0a28b4e3221f3c1433fe5f404a769849006749a11348ceed2f04ea9092985ea6081478d4b9c0179092730281d869265ba44667e8739169eb92f706aa5f4cddc9767adde0e335fda1cf2534625505e927b0bb7e8c19ec0735be9fd90083dc261db25847df5d200b615b4b73b985832d604ae0785028e39f5e532846d2ba658d7ebebf6b83c33d13fe510303d9340e789b5007c28590e737c9e60cc3711f79be179e5fd4c5ae0a580f972444980a0a34f5539837c96a658806caa6c2342f0925c9da260305f129b662af367926fd41010371131c617da8448fa2532448d8140edc8ee410f3b3f76f5e086a2e9a7c514715567827fb28e0efcfb44f1ebbb17751525d3d81c1e69700c60a77a5f706ffcfd948acaedc0089ebd495ca324961cd55036e2b4597ae14f90b4059459f1cc5fb083042c09fbcd8296960109c56308622f4bdb3905284b8115b471488059a85c7204086333d074dfd46737a0a825212876025845ecbf4a60d82bf2d843391ac4c51b68a5eb669fb85416858d21832080330870fc806c5360651ac2a184c5e2f28c674b14f5d304a4df1cd12bbbc1d95c95fb68774450baa529d9e60d0cb8d7c39217014b5d6e819e8405c88d23c53c63e1a13e1f8563a3141a6b36eb7b5aff4ce74dcd7026cd4dc86163ccfe5e47e0d344755aa8f2a984d96fe5524f1114339da40b9e976f218cd5d87b0cabf016ccf371591b078d9130115878d91e55523f4cfd98256e2414d0439a5e1eaef0188bf8599e603551fc30bc588e97b08f154ce4305c3b88df9f0c19182f6957e3f6a89fd1a6bd3c4fc3b516c2319b1745282948b83179f16c6c4a2f8e98853d0f27a10f2e7444b9de510dd242ff1752f19566aba5b5fea460b363afc603354e2962e017b22c3badc7a3dd124379b286b0060cde7acede4e61134f2578d06ab7aa9167227b8649fce06591411f1b8082478967c0db5eab02cf5cf21c056f951556844e2643bffb2ed3b9b45315580e5da15eb64ca25dea9add7b24a1b540fd74e35c694ad9de910bd74f0e3641db71ba670143f7be36989ddb515b8785d6ccee296cdb6c0c508a9afbd4b07a7e5853d2b8f23251ce1913abcb48f316ed01a1a5707af0bd7bc9b0b4e31bd29f8e6e400b438a95d307786f84964ca8dd074e0f8de35f3fa8fd9d73f66ff4415f8e28ff9aead21c118864f5e0d7efad5ceabbfbc974b6c73d8f16a9bf7c7cfce133bd27247c0dea3dcabfc994d00c1d4e130c8c996f125d78b8cf4bf84eef04340d88b65713b8cad1331ddeb0beffcaf0958a2a8d432517f3e41287ac29eb3cc68199bacdbe79782c11f90c5afc3864b5f610fcb0017befcbf9f5b051a18ab5c6830f3768254ef5150cdf4ce4384436a85e64d52b8bfd46e2a8ac045d8bc3e51b64b69931479df1ee0892253555a21995c31a54a9597559f3c21befef5a0749bda5b0cc891e55cb17579320c01ec6f8f95dd74513e1c962e0c2c2d9d41e32ab7e434c4527704a9cb7cc20e08af6e78b6ab29a8ef61fea84f3220412c2baa590ffaa8a77137950deac4f1a7091569af87324b59be4512966c25777420dff11ad7f4e303f9eed5fca61b3fe87d5755c25ebd44ce8e0f8d4bfd1222e8c7ed7803377250c93be0bf1a07d013de74a307bd5daf71a61f5fd0ef9e8637dfd1835ee735afd98f4f41cb0ff3e2f214b5fc1b2f05a3ee07e838965d47f82d089cfe2d3daa82405682ac721be093e2d2580f12c2888ae6a68c50d7e56043ff06d742fd23460884d447ffc225269c27f270f7740ff340c89c0dc85e08813136af209db3d8c3f0d5ecdc1d6fb2b6bd945c9a3ebb9ffe3cee32baa09e47b339e81a31bb68f080b6a294ea82df586e4cc4ead81eb90c10a10232c76caa71764b7de211206190e89803b30d8a7495e903c00a76c06a3f310b3dcb37f6b93e4f5ee75d53247d1cea7f0165571e52130bb1ddb32de85d5352dcd8a4c7caabc138d50b597c69bf3be2ac518278fc2e2e4c2063b0cc7a6ed0e7b9890af54b726e8559633202b3ad1468fb4ccc7c7d4db86102da16edb8ae10c946b0a02e43aa28c5685bf4f4641d43a4463ce0029301b298ef51efe5e47f14de9c66f65961675670cdbc7aac634be6c1908cb52c9b477dcd0617ac42050a2589e846715852f2d8639803fe2b339ea7d9e199391aa04ba6bd044f5e2a8bbd1beda6a267e660b27dacc67a2e4ed84ae336539f703b2bf18989253555b0b7adb8fc3ec74ef16aaaa42db3730d4d1811f4de085e3f36b3cb8b9dbc8192e71f1566843fdc2624adc25f0913ce35da88314c30e9b953386f2b1d0431bb2b4aa22a5eaca24fd03339e1829ddad35ba43c2655901c9c8d0043e114f3c2e477faf4f7a6ac8289da91d5d6b227d24003566587196c82d3ec91861af02a3bcc701b8c668b35d08257d9e106dbe0145b343bc8edc35b3b2906eae3658aea659dfd491618205084a13c2362d26bc4fa45c69979206247c5aa011bdc605b6f7f50d4b3c4653f0a814319d61944c889247604e4c1444af81821db4cc6de081bc1a3182c98dc8807b68ef8eb8285965f454dc6f335f49735db27e0061cee06fd9942e74c1208c983c9bb412cb40fca757f69bcbf87d3ffc0ca30d53462b972adbaa1f504a558925e71b74f16fa607fb0fc0317b2c506564db00a26cc2296c9c49f037be4414f821e7c7b3b6882032f447ddb406c16721020690773fe0a40b34941252571134920f145bc488274222e3b11fe8141064bd17e96ae6e767d0899896b71afd840f7b07bf9c6f2b8657b87f48271af00b09e38d1f4d6fdeb124ce217941ab81c136ab9071d42b2a7d960a6496947b76092f754434936b9f214b34e845ed6c058e8112efca7fd5c235037e3722a3ccbe2de27eca516ac9baaaa800f9d7a1c2459e1f0c8ca351ce9248b612c513c08dea32d2d371c410a30d27891c52637faa99d4e7b5278a421d5a347ca32127f5a83a6859db8859d51395781ed233517308ed7eba18ce51bfb6ba6616e10e70acde5670e645585a507a17b43a8cbb92f577efa659439c5e225b83f9688c9b2af1fcace3e401840f15d7abb8920ee34dbeed5806aa3311ee0f87d50f62ec815622d553660b125de7a5db775062a6df48a7a45fef57ea0474d16c017dc51acc214a26154f7c3681f359388278a4fe59ad9803e0addd3ebb8bf4205fae2f076c26add06b2a985613e2579500282ee7a0921dd5d14f84185e24908389277275cc1cb436a303912acf882bf289388daad7a6769c82020ac3bd1d6d3a28bc0b7be084efe6b1a9d9643b716d2db6d24f10982abc81cb479e9032b6c5d61be8a0ad2dc9988ca7255be24f8b2c2aa7944595fd0f05f99caa52a56f19f6bdd1ef8d1558cb9b3ed2927469cc82b6770fad4988ca01494c339daf83ab30d0062c3ee9ae122ce4b3a8e963610d9b58f8066ddb3161896a54769b6d35cdd805b39a19095ef2d6b0736529d9c11c038e78c97610db3ef1111cdc227b1d42d77c567907ebc6c5f7c14c0afc23309b05f2a70966a7d430fdb8288052fbed6a3a2dc42f61d0346ba773b9cbd9923124c03936b37c169ca1c26513674ffded05ee6e4dc189d27f549f07d6b720b03750270b8f2308620c090093a6b7e248145688790568866664f326ccb4bb8343910b4e6e6101dca1a0fd63c2da4e82103cfb0b68ac3ba52d4bf013f78c174ced94cbf736c4cb38cbe09442b6eaf8633b3e80b2afea4390dd2d64f080fd1f63f768a06dcd7c7da2200ed05ebb5a70152103a0bc2236a6e0ae6aa156e78bdb1c906a0baf8691d820eff7a40d505854e60391cc0fa14fcaaf4acf5b8ca2e54c6fa601e01e2d1f3a9087d74f34cdf2fc3cfa0055dad28ba6aa13687fcb17d349675a09c0a56e5930ebe0b257c4ae8e65c4d07fc96208d8f1d84cdc0594103fa8bdfd8890fd6c766b801fa77d2ad221684f7db8b6e91c7c97134b781c9f28ee8814e46b88f942dd2b9ea8f12360b8589bb64ffcb831887b2ee9b684d0ec04dcdf065eaa22e1b775a7b1dc9e8cc9fb85997ef3023908e04be27d3244c14b496d244f43f38aba9c9c63c5b226c2c5d09091cee28ab7df44b91c55bdd1ebda572acbf63deb90215d94012bd8a889a6e67e2a8618818a7edb63c2bc859c52cc97ed4de41325800b944cf466ba198fc5d3d915a33d8529b555bb63ea9aec53b6782d4da26a5a54432a46696c38e1881984d1f940b27cd5ee40230200bd3e51faa397ee5ac641040dfa57a318bd35a913273a2123865ac93bf4b3dbb527d72d5e0ca21f140ccab1fe186e059cce11b13ff25e380f7f66f683e9067e456ee1bd1ec72666580b382c8dc98e1e9d4c73a1183ab0f84983fdf89ba6150c6b5dcaa62022389642b2180bc9ad0541e085772508f92507a341ce9ba0cd817ec047f4eda708b2863a42ca6078cd794f357298b28d124ed8d006645257a5e748d00783356e42da7ea335169a2238188600b9eb6cf37f64161afb92eea9c5c079d4fff803405374a97003a767fb4425410249a08b222246875bca9ba07ea8fa55885c3282fcba065a646166cbd9f08bc5e9d6d26031a9b6b14da394bf64d5c83bce2c42afe0f73a8071206c188dda662a31cab7bd11017c3bf2c61e1fe9c006ec05cc1e51fd92ee5eed0881432e7f60a2329c249c961f4da3853dccde7effb4bfb2c1e250cf17e7e84c62f88ec8f3246e2e7f737d8791800f9a3b0ba11ecea31edc2af41aed7ab45c2b0ce5157730428395171977b4df04ba081ebdc1f0cc94caf9a3720633089933a05e9d0f42ec3c4db919a6e8d817c709eed9e6fd1186162da17f937923c68ac030672e4f75d0900b275b37740e34af480506e33f69cdd86e3b0e12fdce42aa56fd00acb955822b71e0898a52983b09c1a925bae5c0df1b3592be23104c00c326b0fa0c03c8c1e4ffc7a69896d7ac652e68106628212902f114ed01fd054daeb5220e53a4325e40a8097357d28108640f881faaaf02fa54b9c409e3ce6603c4e677029899397dd2d057bc76e49012c7647223576ca0f0fb2dc31578c04c79d11c05d73f5150be7dbe9cef7d8bfca8c753bd5fb3e872a3df1b70a7f39fd0602161ffbe7f9c6e825991a8cc0419dc715e1c7af1f49a5113a3a788dae3394547860fb2b01b300ac7fd16ed5a6e734d7e10493393fb81981f07c6789746e4418d970d0a2b1a769184a4af973af9e0ffa001f10bf5cbfee17a631788e69df1a49d9487deb1c634de3f3f275359a81a70b3da9f7dd9db1779428583d033d8881d4ce5dd44a1131f21654c0eb3887f7caf473080c130d8fc649816fa5f3084384e74673aea3cbce65610918cc3e01c387c3d7d095c799eeff42f120d47f203ddabc9416d374061887fb5e5ee53de20e6581da41405226f1dcbf5e42550b588a5bbcbb32796beb0a3aa9e0902b662efbdc76f4bf3ceac121d06d4c20181652c269e5f198fd4e5424e34c98e859112880716ef54c55b22334d6a5da999b76a3b986904f976f56bd7e42259f59ab35110be676906aa5de3d57ba951fce140e8a81ad33081787aa53d9f374853fb9c6c514cfa5b95dfbf2ab9a4b476756f554891d1c0234ca524eed34b20d4cba0316a0584f624267ca69ec60ff25658824bec92fbe3fcff843d168b395b46cb159106060dc8a345e202ed850e3bf7c142a2ee1cf03088f4ce4395d29068631456e625f19348fc5d84ee136a633702a0e7000899b86634de6b35801c26d0b4a97e7a285c9290a9e0b8f156c85429ca077a19b78aa9dff3ef366c8d2d33caf5ae52306888facac242c5bf32d91dd15a36cf5f5ed3e8c571820ab5a0aeb430c32c0e9f1b96344998295b73f9431e9362b6062d571f375260a1a4a41093eb0c65357011a35065e4ed5509c433bd6fdf3fe773afb631e8cb52dcdf42bcac75553e51bb38ee4cf24c2b9d366bac08d38b3027f9ce2f1b887ca1a163559e42d31c62cca44aae5290bf14425ebc58599ddd609a5efe9140d10452b392bd5796ca5a563ac7fe33aa8adf122d717a2c5fb464dc57b8d5e15e2dc998cab1235bf9d84c9e77ee7add7102ae37feeaeb729ba97c05ef151d5d4191537b29aa55ffcb969ac0689b6fb44eb1165f54c9409ac993ac2407ada4acd8a81c063454bf15611e05ead2b53517e2c89d046a50e47f5c257ef7eaa675880305500126702b7c56c8a4094d4aaf992c5021c82393213161c47f18066c2bad24f82390a251fad4a95eea17163251297471f6c03b3d1c103a8f140e3f79fa90c624571a85f64397e186e4fc5cd8d7a9cf8a892cedbc3ce316e382e2d0803387f60078498c5f6c1ddbf78a4bf1b173ca77d0628415d9e688dca9bdc28061ad15535d0c4570f0722ec462c067d0cbbdf61dd0b96fcd88a63b2922b837c430277f2a363584a9f853503f605168bf10e9c03238890253c237ad9c83217ba2f906e0fd183e958a08f4871ea6dd8bcb731436e1a40444785c99f2634795832a9709b6704431d6dfcf2f8ab656017a6d1af019e6d0562b98cb0c99ec96eccac29e4d1f7b4fc051fe707095707afe8e0293236f2a3b5cae40166fcdd90fbb5e15951ca0f5febcd3f43938186d9a64223ec1105a582baea61add1fbe8ab93ccf6948394f6781fd91c1800973218b17bc9c1a7a8459a103ee01ca1de4b2cdc430ee8b01c0dcfdd0f56cbe869bbe3c0dc0995218ad3cf4a8697f4225b94f643acf9330e549a35b626fab16d3689b161621418d83244cd9f7c79e248c14aa7f54273cd0325fa6fd0a582854de9639eb226008ea6ba11a7a98e1e5fb8a0e4a41749f837887bb9e653cd3879f2ce2c74947311bf87ac60ae19428c4bb69cf2c50c125cbe08fadce882e8be501a2fbb46a4ab90c485b805f20629038e924d2eeb05241f0cff12a79b768f11d28cff1e1b2df1ea3decec28dbd3edef12f87d42667ce1e38fb35c2ed24c466f37fc2536c5ddb9cc662a29c992b12b7ce270b300a38eb6dcf0d883339991fd70ba59541c206d18306f7c790402cd6f23787f958ba44bd1992c8ae0ba7a7bad8bc73c20591d954f3d36e3078017e2084df1e0711becd652cea305d0c7da6ffb09109d009982f81b827ff596adb06f0de45106957c03c0c80228627600fcd70f9cde41abaaea328c4ae2457e69fec171a8b42f86c2db171d3cd5faa63d26a1158a44c96a0beddb3cacd3d737029eeb4bf76a2c2a6d600a81fd32125eae83df4db4e674b5375184161dccfc71b09ab0de39397698ef3d94d3b5c099c5da211b21afb69a726b20a128b0cd7212ba0796737c2be3852cb06ae1ffc8688b9403865df6539eb4f3eeb433b952d41be67e211f686bf7e27b41766b96944a5e49de727b2b660213e74ef9d78e681cff1c6f4dc2e3688f42168421f2e060f640007657ff4599428a4a48ac0b21b9cbb251946c972b760da6750c4a879ba0da64838123d43417d634cb465b45cef8e636fe3abfcac9522b46ba6897a91b3b7249e485467779a243470143048fedc667e2257aa00384afb7129f4b223b8c5fdd1d2266f015ba9b60e9612a14d5488c67e696133d02d7c695cbec20a90cb94f01b3a9c9bcbce23e2d08dcbc06466ed8c0b6aa0098364030ad9fc612d53bfd652f4eb69af8f682f3f85cb62cc1a1734c10d46927a7a32b66eedee4efe9abbf5154653ef18f536721228a6100590f85800bcbebc38c561177e0167c15350c702d1022e5e8db926e4a87dda626ff4ca3842da7beebc91527187c3b85300cb318272f79030c751ea17603700f8a68e2a2a91581025206f5f4acefe601b3a46463ae405e4ac05f0f0775fa1e68459b2e1641c1292b3345206f18314439407de20c94af47241691758e36f9c1dc0cccbcd628c2c43d9fcc6e9b18726ff23960e04c0962a047477aea4a0383bd8750ab377df2cfb6e3060c55c09f98a1cbe36c20102f06f3b0c432f809c4d0d3adb730346f1bc2d0c5a1a80bf50b1d1f2e74633fa76791e1418b363c1b2f013727ef83790ff02e7fd046cabb36b778171822a007f2d66d99842036f7d0357ad265aa4efbffbb80527529f5c4a3489a2f0211a886faa51174e5b62acdb4956dd8df136c3317c023c62fc4ad4782c0fcdd79b5b94d469fe1cfcc59182350e06cc06a4b901be747cc7004b1d6ce6d5211cd7f9a2a0e8391dddeb699e909d4f06284f37e00c9f91adeb4c0ad840c6d267c78097cebb7e425687fb6df50aa5bfe1e49ef0891648d9cdfefe05632e3348fcf0b9898616686604d3ca866db59c0c7d800a1934dd792370bc42ddf6e65a4ed74179f2fa01643f8b346aaaac593ba2d68feaa28f350b57198269f58904b330bcc5b94177849c279c2dcdf1bb62c4503c9cbf1273f99c7c6091db76962e138ad0c69e71a2c151281a77f7f5c05f34f67a8b1b46c062799897a69c02e67533581e8f3f00a69d9b7d218d77a2dd3f000422036509f18222a2bb14289848a0d6a6d907395974dff8918a689b80e43af63030579c395ca0822d190609178aae698e073299dcd636936bb20474361681c1eb49007f3bbeee80c714015f4d4b2bf9596746674f156c00199c5d7ecb81fa430ffcccb9529ad89931e2420c12d99f918261f6b9e9759a36c5589574ecf1975658924ed3bdeb8c39e0ede258c3bf4512234b4dfce6cb3c10f4ab8516e64be25141922db0de50ee5a083cda5f16a19939a30c129a1c50c9817552474c80f293c8cb5f79f1360853b3b1e27a4447522632ac452ab4c4a568a9dffef94946ee5d3f793284d574d63f9bed5ecbffcd02f6aafbbad798a256f09092bff78ea3ded1f133ba21628874c2fee7a01fcfbad1d2d73904b79254090944c45281571823878ba5768e81ffafe269f531228ad7ee92d1400da5b2fc97e49ac24996ac0875c1c89a89c3c1f6754c4b6c4a88d674ce3318efec8daf4bb06f5e5831e20dd52bfba76ec3a211f6cead43d5f963496d5b906973d17cbc75721d85717c4b454ea16afb3963a06cb9c128efecf280c964600c115f7cec416337e288eb1f635ffa125273dbbcf476aeb3222d1d614e739a1853dd96c97a1b378768dd9799c491a9858b26f74b9eca54fc017463911dc8c01dec229e0fecd77fd88fbae8a40fb960122da832cacf7ff8a22cb5f9ddaa282a199f47529c7b58d6f18d67c23da78ddb71b8232e5f2ad2c5301c3639eae0734f6d6cbb280a564756c9c835a689b803c349cfe335931bc4fec266375be3b5111b90c125ca6f93a56b672a992593b172f91b8fb5a614039d27b009a94555e9b8e8a601f64c0445026ff2353e9033596e6ee55d3b3cdd969bf6ba753adbf4bdab3dffdeb22a0f4dc35f3f18c0cf4e5ac3814b2a8d3ba40807a93533af0350e18290ffcd8709867a1c7f6b1ad8a5511c791e853d6be2f6c6e2ee4b1290ee0a3e49cb004189222ccd01ae9b48bc904ea8e3ea4ad925058b0448ee8991c52e5969dd13d6143b7046f4e0cfd286fa800cad2ced74259b5b24455d08a181d464fa1039979302ef06ab8c09fc351abb931435a353aacf08e0bc9dd5b1e5c7490e6a3970d44fc5f14b1d85aecae3a18b70cf960038dd0ff0a6a4b75cb215fc7124b75f2ef001792e22eb3ad1abb90499977fc38ef3aab22ebfc6cdf45c7e70b1fd09677dbd0c636b76cf324a33aba15494c67561160ca87e06af0e1ee126d09c0f5daff7738a7e36e386e7fe5b7a45ee38d6dde044ed6fb04ec7c348ec2153fa46795a3efbaf2e78c5c4f812c0e2b4c394df3c5c7ae28df7b1eb243bf1b79f115a19efb57961a2708d6125f8947feec56772b431edc29b1f9256a0f3418689e7ef5b0f3f6217e349785342f862640fe244529480ae5e36403f2629ab7347b2c54b89271b646aff9d58a548cb372722dd7a22e43b8b25c8d733f5456f03fc21bd7338604d5fd0808ef0ff4d27978b89bcb4191ba6bc642429ffc907e33b3d56991a3a8223de2e6962d49244afccb6d71ff3a6fb7d4b7ab9a794fef1de672bd19126b7000742402cdf61adf1bb3f1fa997095595af21a1a1638cff356f7be58c618136ecf6903f5b5738a89ffd9fb2bfe3ee459be8746e472d8ff6ba53ce60484bbf7f39502b33930963f0620b416c5b0f6a2c3dc84e4b58f4f30796b95ae828b74946e6481723375c959c7866083f93f609deb65b86d0f56cffab2c2863dc9627636fccd2adda66f27eda95186c531b334f33fe4f720665fc0c879767b7bde079c3506f8150aea0c3a9fab35ea17a93bedeb74756f39b57c12f8856c49f47b763d3ecd162b6adbbf492be2cff200f00824d3e4a21fc6b2110d7f6120f0ae5bf3736bea08b5b3e099b41ca38dfecd6a6aa06e56dd6912f453854fa2af0f5533fddedce8a41edd342b6d452c342b47025c311e37f536d203b782fa70762be0f34de7db60bd77627f342d69df3e51dd1d5c1c229123fa9362d265577bbdb51b0498fe64e778e55c7193821e020a8bd6a2a4ddadda5c956c9cd49da019925d4d72be0163327cf6a7357f7c259df0100652df557dd251fb101c063c7a1fee811a6f0f81ddb9d73ecdf946f2a4a06e4ae27dab4581afff82c9e824d349e2ab2d672381f7bd0ea5c5ccb48e1b7cbefa453012673a2b754c189e4a0b57cb9c9ee990efb6a07add52090816c224f972540f2d5cccfb3ec3247eb405be91613b778789e803f9e5fe8038a11823d47368793e73561a0ac5ddbd3bd8e6c904c3c62f60e7355d818fa8c4f1d90305153b01a020b6ae207b22ce5f75c94d8eaa0e4626a15ed6f4fcb267a63188975dde99fe6c91905551dd3df932012d45226806c85345039572a3a14deb21d74469bbdeacac3850ee4057b4ae4ce7b3733d02398e63571be8b3c8fed7b8279f7e472bf9e4cb2c68cb170ed65c24584f1fd4e3ef68be9d4e6a4c9f5028ce9d42bf7654f2214c5bb3ceb2893b5f5cc3d95ac80ac94a154622a23b215f53f7fff2a493764b2aff6810bef4f7740e200da3e9457ce50daa062cc69044f2a3cf7d39dcb1e27825145d3ab0d204211e46008104155fdac3d9883d7d21f4f1c8ad679259a7ecc761266efae5bdd79851d5284d9158395654e7f343227d1cc0fc08649904a9b16a378319fcc92c9fe7cd8e73c2d7f141d7d529218291e7268ac47460183aa47824c1451c07d4b67c85dc71375f169f4ee7951388e4080d6ebeccf9e60668869223e1f3721bce8be9a4ce05b26f04d85219de49d50345034e36bc26bc92c589e3d7a90a3a44c8cb4c0353035c8cc495fa4d6e49f0e2ec99d58dbbeaf38954fd4d290d535c85815ddac628cbc73cc58bbb8dde57f02bfd239fa012a35eaf1f9ea75b33162c5ce709cd5df098a358da40c139958cd9dde2d21a9652d4031502f57cc77470b69d1a37728068f7f496a8f13391880255d227da3d651bf607832bc6edc51f9e0f2e158befc535507a1f4a344fc263d39b1ab1866d6b51041d204aca687f6405e74993d0cce9074f1abdd03e7b5e7edea47ce3c6b9a3bd6322c0a0e2dcb576db974eb4f7fbd7d9de458d1a700b8b884aae72f85f834a3e58776ef68710b2bf8a6348a505b6cdfb6c1bb3a5648a5182592b4fc007690d0bff4b4dcd8f0ff446c8a7a6ae1c5785bcbf5eb3f6cd98e4d4735adb8587254bb27e579c3f43b2699d2f899bbbf12bfd9132c987c16b387d46b7555181a2a6e3b90ac15dda957506211c2fcf1fd126ef1fd201c0a7fa4e3d8632a8e6b6a1d7fddceb6c850a6969e741f219cf2b6ac039d6064fc2112ea2877ee6a3168aae3040450939dc30312a1adc1a8861bd6bf67b065e349dee42ac168a5bf0fc60269fce948030c52bd780c12a51e0b80f8039cc632760f9bd4fe78c621d368e698201e6ac78cce343a21d72bd6b2b6c77f578b8b2536387240009d03721f8dd3ab769f7e705cfe3d7e8cf45d26661511e94e136f78a49c6d770ade19ec6b731428934f5b9a470fe33350f532632b1d348c779509be040a5bfbe891719fc45a785e10858b7486e31f80bdaaef38ee4db49969031f0e589681087442f7089a58de9fa0caf7c8fdd9758290e83fbe02201027a8f9049cd00c9239892b3929481730b2b047158b828ed8a98dad312578feb5a07c4fa22abf9a9db0c16ed00248c21305acc1170a881726abd547b659d4e487f30925a2e599de1543f6800be06b945aa8065c0d50dfc741bead959434294adaf0732dd9a0e9f63ae91b48330167bda92e5c4afd8b65128adba645092a3c0c38190a5dbd3c0b0e91771bb765cb771c8e2f84f3e6701517809c029f9ee2732d6cf0c3423440120c9dbe1660043ba60ec08cfa6c6b4b252a538e5e1ad0c47c2588f5645182720393de43173c707e14a5b5b0c2500e2cf0589ae06b6fae951bd3c4ab903aab3ef05064d02ae0108663dabcab291b37cf3acc1b5019f825ca60130c1c70f0e274f5f034952690bf55de59eb555817bcceac44a2a8c6533505e7794bc0fbd6abca5f52c40c4192181c8de859c3e602fcc00f4f7cb6dcb79a1189901db39f80e1b73171f4b76b1377d6cf11b081b2e5b78fd70c75d829a0ecbf51e22cafcff15ecb94bab911a55d6e7e30cebebb78867456fa14b66b1818637d49b8f80a2cfc975baffb053f966338a4dcf21d52e1eeb6262daaaa5ad6dbb26cfc87ec448f5a39bc9fa5f58f89830884f7148528c0735718b131267c46286d4e920eece559df068e48a6d1e2b9b0033600408655e10e48f2144409a8b7912e0785575496276baced7c5ca0e7b5853178531601b9b2394d823dffc65a031c6fbf71d6025e8aa086787f28fd99232e5d4826c8901f91b11fa5bc7d124419884f3033a73ffb253106858ab0ee21e76e34900ca0c8344262afa1fa535ce36665e6890decf4bd57990cb44612dff3c0717fe80a16527b24ca4e1bb500657a403674e3c8289e235cc5e948386b4611d64b5eddefe9772ef2d539201000b230be70afd0a612728e6cda84cb7c2e05703058d10342a2a63cea84c0d2cc7ccac4dc8de07d139c78cd27c649d9d6ece6aadb576b8c94eeebaaebbf1393e9966e103237227d35a17ab4ceabaaeeb6e94b5761e941eac1f334a73a3bf5b7e938573cc481f5c6bad3a5a37ca1cb3fa37cfabb5ae93bb2770f739626e7aa1b824da749e87608e6192a4f9a44933c5c86e5e21fb9b5fd01afcfb5551664e6dc9b96962a14dfe26ce24a34a76f3267e640e5a8e590e9c197cdf5d77d7268e9bdc9c7db7dbcd834d1c3f8d019fe6cc9c9904802287571200f6b71c54b879daa8e5b0d9a855d48df7b761aba88a838800785dc9b8755d0393eb19af1f198d0aa3f0fa096e8a3dcffbbeaeebba4a826654a60851346ae4459fbca24630391b35d00834aa5514082607b251cbfe222826037cfeadfeada23cd581dda0d7e1083b92e65abbaeebba4a562e70f79de7791e284669bcb3c29e7c826222f8608ed0437ecedfc0f2a79834cf8333371bc7dc828ab4d62a0618c2fef66325df3200b4213a4afb58379b9b217a8dd48d32c7ab9e0210856e0b7f7bdda88cff570680d689013ecdd92dfbf768f550e2a6779a337366cedacb31cbeee940e115e327d0c297a35854b1e1ebbacf85cabc0ca0fc724ebc78b8c90931e4979b3ff4f8aaf0f09437355a6b1689e451e12bebdf13e79b03e6b3d1277f5a29bef7defb75dd07764004d127ff8e013583f74d7afebeeffb0e86bf076dd360006a0a4915e5f194fde7279fa4fcf9e493c7f72de2f08311af5a6195c95963aa1ca54183a23eefe1dfa7f4a6a23ee587063df98bb63cad10372c293dddf2b445941607b4f6e5fa95cbd7f6ab5ffdbad6b37d52bcee757d6506521ce757bdfb1e39a4d65abd6d014cb7ebd1330568d48f6fd3f53ccff33e18ec50c4608797eca74322408a990374c686ec5bb889d669e19a4f5abba134e28502b662f02e14f8a439b7e30101f0e1cd097cb8e99aeb4345f93841a37edcdb35a69eb9a9272145462004d7023a5351679ffcd3c8fee7007e3801dbef7cb85760cf83dfbd7def5e0ff4e46e300ca968d3b7f30bfa7edadeaebbf69385ebdfd87fa7e07cbf7ed7c0b4e9d39e91dc7beffbf05b8046fde893bf8fda35f7fd7b74cd2d39f0a351b41dc5439fdccb2c64ef1181215d160377dea50252dc612cdadc80427bd3c29e4f5aebdc009f34c78712fc40a488114785cf053e694e96b949859b9ea73934c70710f484a793e4755fe75a7eb3e702a4384e008c625f141f6c14eb9a0ff40cab9e628c98328ac518d1a826a24ffeadaaa70f744dd7d472f4059d21a251b447594c195981e27c748451ec8be283d50f74232946b10f744d097a26565130b83a92a2513064a053b23f084386467d51340cae045d53dfffa3754d2d63948822a61543834acfa8314b64a7d12d7c6024c5280676b79b483fb4aa57cdeab8b0aa08113775dd5ef6b7aa2fe7c61411e3ea181695a931af1d94e6f3a2f66dd1333fd4d30a3ae615e344ccabbde813adb55652cc22eeee063bdc82957d6473f38c794d8981b979c6b062626e9e652e86e566c9c788e626bda1e626d5428b5bf68f59e266bb46b4114d897c8666370bb87b90825fd85182bd7cc6b09460cf670ceb8357d0a8cf8beefd635e5dd395232be88c173d92e59111fae4efe7c809a32250140c183af91cc560701e392a0295995199d897cf512cfbf7831eee3ccdf7e9dbffbe4302d9817613cb95bfb250e2cbf96a61b9eada579e170758fcb02c797f13a466d3ef61b18c79ad3a55cccbcd920e1eed81c400b57578d5c43bc2fbbceff33e9b0310748ddc791a25b7888398bb84c17901770f838b79799e11cde38d68231af646b4116d44fb609e487aa90e79c338e27ee776bcebbaae1bd1aa64ff6f8aa3625862105d02010355f61e885e438a9bf6a392fd3b237b0caba2625e2c96cd6dc2034d851ff3eabc773a2f929d4856ec2e929eaa895fadd3e9fc29961fb00c43ef45d24b7d6ab5502753d101ad46be4bb2a73c75e46b611515f253bf7fb1ec62d7dddd99fc70c8c0548b9a92ecf96cd5f9e17cb62d6e6e9e14975b6eb64bc572936ad1459556e9e0131dd0990735666eca3f509aee5bd52a24d97a9e66fbfe38be2bbddc239a18d9bfdac836aa89397859879b4c2652a6593451056bbf477794cf116d94cf98574709eefe8c6165a753320d9ddc3b9208430709dc5fbf2ddcecb2c4a3078faebbee7e74d75dadfd9d6bd7116d24c6c836aac5bc6260314bea9f31af4ff7e1b859cbce4d4d65ea83a05a6b1d45811cd9c41f62ee72441bd1b23fe841c15f2d4a4b8dd2840f8373b3549fe6ae5debaa497b6238bf1a4cce6bf06f12860a0ecec0de855c9fa668eafc6ab9e60f0a45c5bceac9939013fbc6c81e03fb227453f6a87cb5954cb350c296c54c6b5d40913b48e0d303a384f309286e9643dfa4cd1e15fcf8cbf48a2eb2c85fa6352d6ef93bc2fbbe289fcd6bf0efe00077400c2013a9dfb9451dbc5ccb3070f71ef9d5a88c7fccaba23e28f4e439491823f6052cfff06c5554c6df61706060981c0c956f0bb8fb1306b7526bad252ee615f3cafee12b5cf2d5c2b2c9f9d5be5a25bd9a17850240e5711a333eb7dcb23f68ea19223ed54744d75c3aa3baa7c90960fa88f854dde1c119ecf7b5a59ffe8ce88cffcbc85a6bed83b57e3c28f4637d495a54948642c93ea4a57fbce04932554b7137ee0735c8dfa7fa84e5794193c7943bff2157ae92227fe427feb543f07ffebc23899eece943527a6ad1e676df64e73f9288972bee58225eae6f451d6eacb1c61a1e4562adb5d6cb99c05a14373f2c964dce4ff5a9eeb5e4d772037d250b37cad0cabb11268a72223aa43dd37fe6b8b92944666a468bfae6a6abdcd46650d397a0a6ce71d35ddeb88af297af7aa6a7641747b159467f59a30f6ed593cbcd2bf325a879a7a0a6d7793f7f7ef2e9f7baa66022ffa04f7e95b8f7d3695d21dcd67585c8bb425e1f50192fafaa9e688ee333373971937b0cafbca3caaa970e8b447a298fbcbc949e44ba98742f8bca6a3219e985fc7a7a92ac3f49e4e052feb75551201552fe5d3eef4ba4baac8aea947f3eafaa33d879e1eef40097828c468f2445224b2fa511163152a44792eab42acaefc5248ff1207798ce1da8d1d753c863a0771bd96902af3ccb4ff19b4bb9ef3637b9477193bfd7440774087e4803b7c0a15db4e9fc85d2883a7ce2c82fa26ef4674ca6a33f6fb8501b464f7a1f2e623114023b04c3b0a435aec241cdd08fdee5e9932a8af4a2f1298eec42a211fdf99da2a3f7e1247245fa977755d75c59cff8e30eecbe7613f00b39040c54a997279143f41aa9970747a4a7442ee40b590a43aa547a212e2e2e0deb18ac673deb978b6744145c6a54b68bc545737d961fdf8793344522690a04aba843e7fae08a0bae9344a7d549a20a17dc95b9e030c638e4e2d249a2d3eac03a4b3a2f37755cd995f87057f90ac75775c6faaef4959bdc59ae7255e9ac0e156ef2efd0c02a37295e752ad56d791246e4ab0a954f8c5c6e2d5d702eb84eabb5f29224bb0b2ef42fabec4f5538172a2e3917975c762a6e7217dc0ac51863dc781c712712596a682554b1b8ca555dd3517554ae12f910ae6a4acdd09ffd2e39172a2eb89c9b6d8afeecd2a5962e545c702e3937690756bbae8a422f1f0c8a480f85429f18fa5048f454b4f9fc489672183ffcb03cc31f1f491ee155135158765ce1e83f64d951d2050e61eaa7b01c3dcd2372d5e41c653c821c7e9321b2049d701c65fc540a3eb842763187510ea3904752cceee28dcb8748ca4514949045b55afdb36b388744221cae7495a5d68e589fd4919d4cddac2492a646244d89489a3f18ec48cfa01892481731e8e195ab3c9649efb18a2af58f9ea6bcd46529022f0ff3424a3f2a8f8cbef430e5912641465f2afd11987f295f5c489a1a42fa700b272a58c98aaba25e29ff95d7ca1237616e7613d97f8549adb9af48c59d0108f92b3d2eb0fbf0c3870f5df3019bf381aea1818629a030d0a033202ea4d185e13b3f3e268d25a80c7af2ff80e1a2b1d23a578438575aa01c6b2b2649f554df435a1a84dc340d5dd3a341b62aa451a03070b5d682c268d44a120db255d44aab9eac2d4168ac2401c2adb42a0ac4056b41694c01954165723960c0f74f508e07051731e2a6fd558ed2502e7cdc00c46b1003ee46923b24898409c1ef9ff9b0dff9ec7cff6b1111879b9e554b8b3fe5aa6f3e60926b7976ab48ada20eddf75f930e53f707963e00017f6e56c75e5bc85f797611d51331e45a0ef1d1b670f3a3399a2b92bd28772576fde5074db8dabb4db8ac5d92f33ccf63626ff7d1348a3411adb2b70811aa225dd34a7ac6bb09254aec92f1b6923bda256311961c5dee3688fedc91472d25adb9dd7ba17f82659c420922110e4b3952e1277fd06d679cb590236db491e3196315462a64ff110aade1663b5a21fb8f5fd0192fa99fce714af6677d8a548e52fce43fdac66ea25ddd44bb465837d1a8310ad5d8f2f0de7bbb91d535cde70b2a4383467dc0e895957c8e2c8fc77a9e2706a6b56bf5c4057c8e3257e2a6bed553101070d60f44dce46f33d202e3a8f71deb6bed553513262a26459a89af0ca11271b0d93e66b9d95f4d92290dfeeec5f3199540512da207bfe3fd0b39e68cb65186936026dcf429cf11e7295b4ab03c472b4458a73cc72864ffb1149b90fddbf562c2fed9a3ec7add9efd6a07ea25da354631c256da354631c28a8cb08afac8c6281af5a922f7c9f97c41658a74cdfd5b7ecaa03346dc321834f73123fb7faee779dec7e663c0a17c7e6c1f1ba5717b9f16e5cec629a24c4af6ef0881ebdb5384b1b06026bc9510b342944561e679211ec208abe22363193f9f11d635adea99d18856f5bdf75a5294416144a33e61f4c95bd5aeaeb9a5a884305a8c657f21dc565d718a2afe106163c0fda708f33ad97ff4cee053c0d77e93a20c52fc75dd6924db26bfb2d4dfe5fe92acd4653be99814f8f3cd340b1d4c01652adadcac70f9e498156b593bb97f762c4665daf32c4bc8c2aa186516d63523ac6764f55445a33e558c300b039bf4ecde8db05108fdb998544bdd8f3316b2d49537624c64e2a68f2d5790af742c5ea845b8a5330a491d176be38e01775a7a0c18440f8041018421110b0bcb9f37c81df5946af289d0b390ac9b0a953c3edfd154edbc1af8ec18155cce1429b610607a85ad4aae2fdaacfc87b43919f4c20f79765e6169697921a167097d4ba8ec5b487c9a12ff9e017bdec3a477f911f632c644a297f2080bcb91d08b443e5a4820223a9b75d5abb575fb22e65ebd989be7bb46276e823eecc8275a5e44b23ec5f22196677daa6505770538778e9bfc33c56b214716f247879ee56537abd0b3bc8b3f6c4efe8ca0af1bdf87af90a24da491b49ec21f59152582caf3e2925596a21437d10ff4a9e2262781f71f2a6e2a3fb74f0e74ff1c65de4873f31c61d9436e2a79e58f59155be4bbf2db173637e9155fccfa06aa999bf40a3054385b8c523c8994ff38c54d8aa3e2a855f8b2e920fb7bf68eb091899bcd83ecef8d2a5284893137b9c864d5e4f6878a9b3747c54dfec175e4832edadcb271f77f726efa8c42501a6afd92f69bfcbebefd8f1437d5f2732bc7d94805cd5e1798057fa8f8c9ff93534fa3103eea87a45924cfce39c51a891c6f53723e677c709fdca78a9ba3aa6b5c95fd8a36de3852b106f6883a26f394d44db66d1d7395af3ad6b18e75ac631deb58c7328b181399743e7543361deb58df902d7b0adc1726f44ae158c4588391456992388ac5479a92eccf32ca6e8cb58ab23ece2a2af47636e658d878c3570d6c125fb68a2af59328cb8f5e08cb8f5a7ed4528a4744cfd2e529decef091b1fc47e6f299b53ce9858cdea53c12fad193ca234d82847e34fa23a26f69799ac2a47af2f7c6c09f85ab08e248850c0b9866d187feb4309b8dbd59893e348eb4514456c1a7859da30c07591ab8746d797e6c261d6e72d328cbb959c55138899ffca548c9a708f37394d129679c41850aad42abf46a95a493e453848d3299f8a3e62e31cb4d1fdb3503fedc3e52dcd42f37cf66925d22131db3301612263171f3de082d39bac622be91a5ea9a51093a53451e69302e1183ec7fd1c034b37ce8bd8f5514a94584893052392ac26d2945e553d146845d91cf8edd00a48623b4000847d65804458d4a185918ca281ba9b821a334f449f6bf66e0ef45df2a376f0e9fa36ccc5554e8fd31132e373b252cdc1a6d15e53fe654144db1fc8955b7ece34b56511f5badcd48321c8bc1eec5a32d471995b102a629776225061c23dc52e7c7e66d018fb25b9668e7269f227732ad3d4903081a051475f8c016a9a883973f5084519a514665fcfd4528286a54023df9934820d02813619e4755b37ae5a6efc53bca6e395231cebc06ff4b06fcfd39ca74f0fe3e8823bc63c05f3e4796f7a51f4a3a34925c9e80e266b942a0fe2d4b37cca1fb7e909883f75dae883a74ef8d325acb46597f6c152542414ffe62116c4ac8c9a215d9df26c246192cfb8b58a2246e5a0b1b65a2b2c939ca465977aca29a9e5ad6f42461b9df32e93f2d0c8749c70e1ef5d4cf4276fe220179096c00521c2785428994e3db23e57852d7d0d033fe3ceaa95136340d60d3d035202b6c001941cc9e6b15056ad593b36490cb0a5bf60743f6f781a334b747113d58dd835ae00a7bdfb9f4e35bc920d8e487f43e1cfc889d3fa4e752f8fd313660d2a0170a18e66db46c2871f3e5fd6db8dc74797f0f0decf22fcfe3e5a68df7e7b18407aca2fe5149b23f8ae5a6888291d593b7bcbf49c3a15639556e546c67d4a6d0a464879945c9fee2f710829a2d60a0267f92371240f6efa16aa1925b7261e7c2a3f742989c8d560dfdc963c7c706f931f29d902ffbd9e3b889f624f26b6e8a42becd4d7e8389ec516cd85a1565438a9f94f048b2e3c6aaca53c97e868d29d9ff63a3956b16cb1b3660646e72cff3c812803398998d58c250d1b1013e6164366415057ad59383649966c51756b9cba79973d3cdd3462bbb59b3d172f3fc9b8d286ef61299662bbc30c58ce2e66c07366a0ea8396cc9651fc13e567fdfdfadfffe09ce728396f00077f64046c0d48a325af904c54272258301a0519a4b693adfe2a234df836294c63ea805c201122d4a03520272b9e9716782825f77ff37fec63f92d489738f1bffac9b32f1f8585d524a71fd15acba1eee489f63667a32a485b527c318ada7f0499aba41d2542709febff15fdab0d9a8d553457d17778e28d09a15dcac45f7fdc87b50aca6abffe47bfd37fec68d3f6f645a7eac185557d29e81c9e52aeab6e4404fbfc070085e84b051ed4bdde82660300c61232f46b591175df3dde84c098a1f734665305e61efcd5a2d0753f269dacc59ebae8ca8164028f82483347a22b988c2ce0a7760ba1c33130b736662d152ccba6654a3335e51a0588e59d7755d775dd789b5763132b061a3d641e8978d5ad780b4efd64168d447c6e80685ca744d37069df1a72d05909685ec4f04c873ebc01cb36e50aca2480f8ab9a73c71eeac7008ea404e40b21ae0ef91c4cd7e2f47f607d94035310a0df019c242989b9dbb94fbc31befc3f1aa49d7a7220f9dba513e89ab806b793dfd0261e7f73df87d5ebdafa01848e6662dfd9a337a225bd4e146ae0f8a819c8064a168d320280692d5af0c63bdc44da0582701836420276ef224e033c71162a018ce540b2c8ed0a143070108308001e4c8b10202bd07047c02d280748d8d1648ab28981cf8a451306ad868519a5933ad107f88fd365a5d6342a1336a342d57947985398523b2839d152e75b2984f7366cebacc317353113d84a0e6c77293eaab418f550d14d9bf064669ea7f3442647f1a15a5f13e88366794a65b726eaa01355bd2e8978d5a083b41b1ef5b722d6904b12a8a65ff6e1d4812f41af92b4b3978df3d0ede77bf82cedddb4792ef77e40de54255442a376fe9725387a4399413d9b263420a1c969d2b9b0906cb527d24b9b66ae5a6dcaa98185c90219fb7fb3e8f5887803b458cb8c93fd7c55c75d664685c93a1436ae459d7f48dce8472f4d64e989101d725e958fe39ecf3bcc3b2adb6ced3e9dadd3d767675aeced531e166f79fcdeb4051f43c51f43c8ff45717b158ee7c76b6999b1dcccd533413e1b8d93d70f3e526ed22e662d22dc9fea118de20e0b3737559fadea12842f6efae0f37c1a84c07ab9dabfb0b04574585725de7ba4b42b950ce43b950ae3b979bba57c7849bfc3a81bd3f3b5727a773869b5de7ea5cdfe7af58e7d9baf2fc66b95f541b7903c600298e137c826df8f4729efb3d35bc5ced3c35ba6bc615da799ee7e1c4087ca9f772e0166e765ececb815000298e7314cb1eada84f87006af29ea4e60e3779557cfaa4f77727ed70d384800ffc4a36146cc927ba77927561a67cb78aeade7bd1dfeb23497db68aaaeffd47a3345ff6fcbd6fa1511a4acb1eadab790d2ef2e0a96e879b9ea77fdf7ec7f33e9b37962b9ff5008c7ccbf3bb65eff37ac7132474c69452913eade964fc7d156dc0ef4891fc6cf5e4bd7f5bc8dea785ecfd3706adc17b52457d3802786550937767d833e88555bc4dc0fe95fc6af5e47d477a1fad9eaaf0fcf79d8fe526efa3c24dde7fb2ec3d08520af294c207ffb379c2d0f39f943afb685fcdcbf1fea36255de7746f6be5cf6ec2a7b1f829ef37365efbd112c7bef79ded38fe626ef3de4577393f76de126cffb8f86a7f0c08f9aaee7d9f2890f8e932ff6aa27efbd1acbde7f4cdce4d96fef3f57f9b59afc92b8c9fbcb04ec3d6843db913465adb59fca4dde8e7af268de872e37ed7b1f32e1e6f71e2d7b1fcdb31f0eaf24c12886a33085acd6ea3e7c740d06ee0c035d63ada5526c92aeeb6ac7f3bcda8f7addcdcd6aa160f0d63cd7b6175dfb6a5ee0bad5ba817d44f6f7745f71f0bed3d5ce941c27f87802e48a38b0e4b35ffdba60d83ea0282028ae5f1407254adba4806afe20091203872f7681cf96e527f8eb344ed3c0bf5ce0fa9e13a9b99627927ecf835ddeef3cef3d8dec999bbce36dd1b352a659e8c089ee5ad756722d1b37bb5a6481efe34c653a78af0357cac1cbfd5eee92869e354edf6a4c074ed47af0a860d975f67a21a59f68adb516873516054ceba9effd586bad156d3c2e6ab5da0f6e7ee3953d0048cbbaa693f49007342a04495a16824675127dea56121f5d73cb2e029da1fd83247d8459fba0632f1aee2703d32e6c50cb4dbbb081ab5720d1e6420197beafdf794f7127068ce36667fc5e59e596b3ce77a0c067d7beeb7ae6264ca659349146ee32ad3d91e5b36b5d6b12c5e6357c9363cf5aca13b58a02cb1faa91a6e1b8c9b1c0ddcc5754c69f808b107193e3e0ac98a9f8953f6c19c2f586ebdb32bcb6829268f5ac672aaa5f9d44a33a08b39e750d901f5640bb7d6443a1dd353d069d692964218bdcb52b707dbf56e0b36bf9e5a675f3abd56ad6ebea4ac7676ee0d5dad5bb7953bc9c2b85d3bb6552bf5cf9fcab45b6d5fb95eee1a2dcb285f42dd93f7df23aebab031037b53cced70110f6cc8793bd09f856d4c81b95de087ce8c17e4165ace5020f8b05f7bed4addd9f1f0050f3fb666eaaa7cf09a68f157009dcec94baaf52cc50a22252c4888ad258f0a76029b22894765e37093414752f78bba719889b9e61ddedee920e830d64879bf082816f3e0f7af7a7b57519f430242d159bb3511a510ab5552633954217b79b47f7de7bb1277ef77a7f436ba332359fd676997cc40fe70beca3f6e0839b34f7fb0e371870f396f7e5a6f0435e2654c6ef925b5995b8694462451bd08f4fc5db82b9097393a3807c968897bbef938803a9a88f764b11025d79c96ee5eb3737dd7b44cfe8f86615b5839ffc6b237123e519fa1420c9f7cbeebb1ed133f5aed47c619043d786cfdba22c5ea84569e8480b12f4b37c477a19043b64a94a583e449e487268e53da24da8c3e1bbe4d99d43f215e5b3df668f44922d49c4cba2b21ed1332c7f5940cf428ebf429e3583ca52ff79f347de20da8ce55d22e20084cad4ff7c47d61f9e3fe56552052c9636179696ca4bd5ba9ee7f7767fffb4b8ecf76dee5e20d5e62c158bbb6f716e52c97da24d7b166773e5755d5648ded555d27a9db8f1fdfbaa65fdbcee5a99b713fce1b8f9cddcfcee2bbb9be75592fd5fd5f18ace5a2d373bdf836bf1849c4c0352b3652beb4a2b2bbdc0e737fb6694a6bb40a80caa93b8151495033db949e58c33a64c912225caf9cdb6c827a5f1e06100039c4e94767e334a41a06ff6e91c130338404d6618b25f2ae05b362b0aee9c94f659f1aaa8ef8ad3259fdf2c0952c8fe5f16d96753c0a7b5b28a6a71f3f376a85f0da27005ae4e3969144ab3241aa501b9b685ecfc54fbc6428ee30c20c571c65c1be2f8b538d7ee80b305fdbe2942991737f8bfdb0e9a685837859b6b06b61f8af6073109b1f543d70ce91917936854a8c60dd70de99a90f65dcff7759febc3efbdf786eeaa910bcba033370958cc6768bb387766f30b05219472e8b2d4791e493e4dd9fee721ad8d470f1ea708e302be7f057c3b8fa7bbf603475a48eb9a21f466adb5432816b2bf157f5c4176439c2121c00965214ed7dc8063adb558647ff023fec8793ec35c8806458938105b392cba5c8c75f7b70c6c69166315e56529cac4562709124f84a052a5ceef46cbd2f7632d9774186bb9ffbb9138fef329b6c4d76d074d64b175d1b0b8bcd77637a11a61ce86b29e09c3e8ae0de3cb91d99660adb536a4e5e0536cd9db3fa334443a0f71937b809afcc7a715f5e97ce8811e18cb53c4c9a588cb93549ac0c0b70c6b65b885fd33a4657f326c7783ad756498137e41656ee81adb35b60ccba033fee12d8760f4c94333406badbd5ac0f67b7025bc5a78b953f0f72f370bd8fa278355fce1b7fcd119885e0387fb9d7db8872c79bebf6d3ce50f7bc3c02d2da3916823624c8a2e51899b3c24182c60d1558a4adcf47d57feb0b9bc6160fbbdbda1cd167e4151df18a1cd5a6b2d142cb64425312d4a43b5105ba212d175c3f64fb12506c60f7a2ba819cadc34a334fddd6ead9f42c4b971d314224e76d10a6a72b125b648624b6c99baae4b714665bab28732889b6ee7bd27ade5fb373db879fd5e8c5bf4d44390be9ffba2b803927c7bf8dce597f34d7113ad79996661063068219f62eb8a812d5829b5f65e01dbbf5d772d4b78499115a271c31c95c9658a1ff49d3abf5b98bb35ec3cf1de5bf844251641cd20d620fb7b618e0b7c7e37dbc9b81f408ac3eda0a77e1ef72b3b9fd08b30dd0d21187243d7ec30a4a2425a081a153ee97076e89a10a767681515e6eae949a342351a876ef1e1be31d46814edaef9c040677215f561e1130316d93bfb51241e8fc7e3a1f87b81c20d640cf1ef2605773e694d861f3f4ddd0471b3ab379c89ad8a62f9953f2f486cd92a8aa5fcc6a02ba52db4e1128dd026b6566e53dcf4bce35a624b6c7daf6f49eeda0db989041383fbb80e5de82146b086740d7d231a9503a4f73ad8b70bb8ed1782145b6badfd80e440515d44b3288dd6014269c4668d81fbcd9882eb37e9b1d9c51b5a4fd6459bcfd687211fc0e16e751237dd2fe0fa67b39a47cf38896a16ed1b5094e7fd6c1dfc4065fc79740d1074a61c524ffe34d96fb42154c60b2c5be7a1967e0e6badbd650568ad01d40ad93f871e8074017be73d5be0b3593637ed8cc562dd3ba4a29e9efa4d393b70f6eb90dfcdfae70820c571aea068f0e2869efc6b08d6fa7dff7962e08681724039a01c50ce09cab920334039548d22f4d4e1af39a0336698e6cf140dd5ca6b858915256ef256911afe2db6c43c572cfb7b72dc73869b9ecb73792eefc91be4284412e3ed7202a4384e97cfdece5b22affcb7f276c532b14b60150556d4cafbdb989b8dc408126af60ca8c9573d036a5a24a8c96dabe5a67521e1028d6369e448e845f18f88fe8384870f1a0f101dcb11874421aa128544a2d00ad86265e4e757babf2ea4cff8c2020651fac2d5f8f87df88a0c3ab5f260872da4a79abcb40b5e7b97d0b52bb22d8bec39b7db94db854265ae142e166c60d4acfdd227bb4aa0280b068bbb3259ad5f4b9bcfb5fd4d2103ff4e31456d0ad78c4c4dfed93b228594da20d21301d7fb509f074bd6caec134bb34f3a08b96b6ccbbea86d59598c9dc2ca9e644bf34223300cc1d07e46512c8d20b9b9c949f03f64f8a0edb0be23a1c72b2c20fe23a307b558f0c3ff4a5e13cf83fd21574d3aa2f723b92202a73e0f8e0f767867b2ec57d69e15c74fdf1a174a5e79033ecd41ac153fb4f35e1941f47ba5cddd42e9067c1e680a0c3f081e686ad5f22bdf9525ef85880f7a219fc70f8648522059eaf2bb5ff42e8f24057e5b510d4b067af2bf396423d12df17d7823f1a56171d4f4e5a8c9bf13494f8918b464103ad426484059233f21be9051d5a43e0c9af453d182a63b855b9b0235af19d45473f3e6209173dcec1635f97f4fdd868f68b390f387a44f84dfe413e05bf209d64d817fc9275838257e2e4e585e2a661525ba3437fbbd334447e526bb8475d925a869a7a02e37adcc656eda1b354d71da5b6da9f023093f08f8e1f787a591265d06091f97468e805e3cd2e408fe0f928b49d7e2c6b738d05310042a8f84e11b317204ffe79b80e0d3d4b7645ae3c209f9ec04c1fff920a0179f8aa52e2380fff342402fda31609a2add7cbe1444fcce1f28d8454569e813f26d511a9ac187c56e0bf6eaa8a87fa828a453616904492ab434d25320b96af2fd8a089c02dfbe885cb176a4c02702a7422c9ac044a657c8148b2aaac8a08722f2f320297e93345b2ab8a3aaa8163ff42defdf917d82484167cfdb07bb4e7578d5a452d146069d123dd821b90a5ff456ac7016e6a65db2badd55bff219b62aeae6e4b46e4eebe6e4e474506e570a7dea1ace0bc60d23fbd35be302ae654f4167fb5e19f8bc2d0b062aa3b261e8937f481b01a755a386d39ae12b2d2ea7c55bfabe2de0f3b670ad0a2a72e7dba2560ca1c4cd4f767a57b60a8ed0db02ce115e999be10c6c27b462f71d1befad686357489af2909dbbd1b77caf7ce83d24bda39596b2032b3b2eb274839f079ac225a87c213bb2197ea139bbf0405321f854e481a644efc33baa9bf03f320cb853da9add82668fb0ad4ee811a93896b775c4e7815d0db1fd8ce367ef076316ca72bfaf45fcfe138543f257b2b8d27d24b923e2b584b6db7e9f6def96428abd2f8936f74b2ee1155f441c3a9722303ef841c6074b234dba77298d880ffaf1bb3288e8c3d248a82c796504c4077da9cb20e2834a413e8f450fde16d00a1e4711cbcb0a4d815e6e40114953602d6d8e9d725b8d1ffe0af4f84be20df816d751753aae31b4394ba524deacc4ffd81d5ccfa58a09dbbb5d5b97dd41f77dae277ade8db06f90e187b4e2b7e87d4afac5fff4115ed72d57e789e4e7c117227e581e095f7cb03cd2244858966ec02ff14053e097847c5896fac72360193e7e21e08fe591f1c1c7e5912641c607ff08fe7c9323d9717dc81648d21426696a4c8924eda86c18f0755d2516d7fa88a41503a697d5ad23c2000000078e1c007059000260a2a61db7533ddf6900a24dbd32e167eff72d2d158b1b80686371b857edd89c8a45474871e775ccd019b2ef11344fb72cad67fcb658f2795b9edba7dcef56e4cef52040ab5bdda25d27b7eea8cc8d470768ab8186f00062f734cc841ed12608fba5af7ffc95cbe3d44a06e38f5e06f85b5e244bfde0d3d4872cf5874f53a047f24053abd54b195bb9941d58c745966e44cf034d0909c08b08505823152a3bac8eac33cbfe42d2940b4953a4965488a4291612894a45459b9b15b2f49537e1d31c24002f22d05429b0a35a213b360cb82bedcc5261c180cfdbb2387cde561b911d096a763aa066ed9a4e7261d7891a78501e1d15a86c23404cf208c79a10a4b87ad65a9b001ad1a67b9aef115ef209f03fe467cbabe4831320dadcd617f09f1d15ae13034ab3843c04edcc80d680a2be5c3d5919d01c1235a24df7a00dd486ae1fefb3a5298baba88b037af25722bbc5f94095a1e8a83eb5286e7e1d95cacd9bab57e6e57e8f914126d925648f7d4e72df60d9544ffd5d253b2e2b6879f75d4ff8c12ba116d20b8c8d2f71e4300d404701761c800693074d0f1b7ca46ef801a4013b3ce086878e7af40313a4dbe17d4d7cae1d5d733fd7d744a372dc1d4228d0c3fd4f4569eab7649a050f8ee0a28c7c7e2e0b5c000319d0c0068670a0031ef800084220021f467092a0042638010a7e002288141051c10a5850a4052e788191233040a20a8590a9b556191d1e8abd07673ed5abfb5e6edafa7db5f3ec8e1d3a7a80eb7f0658755dd7c99434d0d0440d28140f78d0d03051a300052c61830f1f3bc80c60800e256ef8f143870b871c72d0a18306ecb0838e241c000108e8c8c10d0f3ce8502281094c400712427ae8e1880a5ce0023a7080818e3e29e2890993e97b9ee76d6003ad211de8c00d3c0002101881ef7742e0830f361801094890a4042738410d5000041034088208912254c00216b08ab8c0053378c1912344c040a5ba3210628821ee6a45041143cca088226280eb7f34f8922411c20637b8c155b58e38620d24729003359270b9cea0c4124b5461a28926d2e8810f7c60861f2c598206109e782207138210ca3084da755dd72494117fa8a8cc87033ac3ca5f0c90c8fe960cb87e7f427c2d2ae3ca39677caecfd5c980b8be820948719c2fb75ca9c883a7bcf79e923c22564579a508eed8e131993affb7bc89583711eb2b6f2c2730787f803b3b81cf909629a59486333755f156c5dc4745693c571f609a4ff1962b0b2ed7b7dfbd3fc6b65c752296eb2b57adeaca53f4cab57ae5aa6746642fcf9b45ac9753c4caf55db97e5c5ef614b8562f5f6eee9f1544a2181937518c8c463516a2588b8e208a91716b27b166d235be84ce60d164681cf5281cd6650ff434cebee709ff5281efdb0e19caa9ea839e49d07f1780eff7fdfb9db764a8ca14b873e7eb3a56fbe5a5ec2e8d50aed28eb9d9334f839a6d051acab9d93637f9dfeaa99f64bf5d9c9e69278d459fdce53d52a4049571895a5608e52a4ab4833ef98b70404d2211ec89e8073352349bc2185ca953c4cade0528a953d4ca77092ddd12376fc7a48b754edc5c915131eb3e2b72511aef641792a66e98bb3cc7ff422bda8c6fc57ed155021e41a2ef20464fe466d28b1ef438f0e7107a16b06bc50ffe19ca8172ac656e628cc5173ffbd9effb44fb3d885fe6a4634d1cd07f65b803815049822e4f507349879aebb3945786c3bf417c942608fbe283fd2c8f9f8aee1a919dab6342447621b25382cef87f24119cbb252e984f91ab934f11783b572887f1b5a00f459bd1b3e2799b8e4df83f3a8b5a942609f8fb53e4126d8200a24b229d597003614b229dc5925219b03c55501f089bc3bfff919eec80fe15d41c96ddebe60fd9c1ba15b273d2c93a2adcc4c44d5e764bdc245285aab8c9f149c45b35e94a110ecd6b702b88664e20504b91123187ae2c9974b44cb5f4caf34ad1df8aca50e1bb176312e9df64dab1e374d8ebc2708cf4bd299f8dfb6ce8799ee779c2da2f372df12e12b057abc31c5661d561d72645ccd635be448a463519bea46d6d85b6b5141d133989b9c96bf54ef626038baef117aa67ed2f98137c8a62cee408d861f55e8c5dedaa46f07c8b36224845207e7406df66ec006103fa1f9d3b55dce4b95b04bc7276bb9870938772ed12b1442d2842392f5445a4f21adce56f2c946be960d52d9a8968a77debb90784e6ee71a0b92b475a7848b20ff7e1f75b4413e110019fa259d731d1bdbc06273d46bacc4d54903e231dc7696edac2bde6a64ee94e6e144df0d9b8ced5b8c6354e84f35ccaa18fa8346b3578591043866804000008b3140020280c0a87c30242a14c52d4e21b14800a7aa852604e9d4984390ce3288a610c424419420c03c010003032246407846b54c05b1736835bc1ee4720484f75c9ca8f413d08b03368dee682fc6f0e72ebd2aacfe7d8240e60b12fb2a29f648f720d38f8d5cc1b9986e09a1724e2e6894759e436eaa5590e7d332257e0de0160c902fa7afe77088d6bd556db59bc86081544b152d3d7678e7b89a08a25d064cda06c42e13ed9780aceb9910a777ee03901e9694e27d0398cea45169eb2da8b2108ad7db90e478f89fcb44f4e50189e437d59e30aa28f91c03343ee325c7046301069aebed4680017097af936b433c57a2704e434be3e381820f52569c1d97ebac954862f9a7512f858399a67b2c915cf4c24981723c158b77c1790ffcc89df298487dd0c7e4d93b20f968e8b6b49d1ad85db963e4a07716ee4806970bb01f32c5da4c735e20486d8ef56e0cb6c684265b12e9d8b02346fb1f9617dcbde8a9bad1080758bbf34ecaded7d95e0e29cd60238f046da22b7b905b88c80486dce3b6cd1bd9fd7235fa36e200b362780e98ee1ee483160dbd817d4744ce76ce34406e8c4804e131837b855447fdb4e943c86693e6e7575c3709e28ae665cbc941433d406e710632d076b94d2145b92c271eef6579c1d4e9c7432c3a5bc8923393bbf13e862381a7f2c9c41d768146de852313746e98f71f0b3b618592305bbc9cc4a823db13ccfa4aa406481774b64bf521eeb186bb7c2c4f5e43f848627c4a800987dd38a1bf9096ec60ab882b26b7c1325315acbd582c96ba16f21dbb1cd4acced0c29b16200abd7826a3e04a2cc88247637ff9f00d608bb6bce4d2ef4a69efac76f569e13eac2407b5798653924d2a08e5fbd87852810f4e7cb37f85d1a1d91aa4032d98383af5773b25f7e0636bd5034fd0c5dbc1e230c3dcef03582a9b2e8a9f770dae3a9775e1bd3c55348df0431e0eb9a6990305572c9eb24c982e33947a2455f72ad59daa0c3af63f50b643c2060ff823e04dffcff6213c850048cd019bce8ae21829cb377157e57a898136961e74b867491e69e06d9a3e989f46ae0cc00e44dce870bc0f9c4376a488863c2a1720c2b0bf24784e27d100410764fce02c4943c5d2dba43760a3b6f21729245eb57d496a75d7747af909dc5bab80811a2ba12f5d82a2d4f35503f01a9312b4b2d73b462ecdfaccb42e73188203cb9dcb97cd5cd92c58709259b3649a2089d2771431e541e06e02967c9e81ec93c00e54d06001e2f44f3e356b52d93a20a7a1b7ced61fb181b73108ff14be4b1c49442efe1374b2377868914b06974b248f1f349659831f6be63827722001caf5e08469af76b42674e4439bacbe7b5a1c191f1d2ea10769ed0fea101386c761561ef5abdf0d1a9c0f28eac09becac03aca9ac72c84a7c03cda37434ec3f178fae9e581564364d0b09343840fd2da11b9ca3baeda510c6e3a994d2343d3ceaccde01c7caa789c09f73ca54621c32951f68e1b27d3d84cd9ed823e7a61d514949514e7f289feb7238898c187974b537064ce3b7781c382645e6c45b92a627bd8e6ac2fb1763b955f2132a1b8ae50281831684c178c54b4c805236409b23eb1a258587cf0916f2d674cbd6dae29e6e124faa4ff575e867f27aac393c44794431c51e9372f9f568e583795d3ada544ebaaf3f15e90297fdadb537afcc037822187019d2b7bc65088cc4233f9d8964eb171fa8c6727f0cb86f212dc4a009fcdea813240075b93a228af3539ef5151d678ca4061decf44d91d115e3bb3ee12b79cd09a508370ee152ae6186da1f5d6c4c4ab9154cf08a95d2d05d97fba998d8937c003045fb781805eb575c5d88e33028061904da71c9f32c53daec33ef6c9add1e9504c7729576933203ec6860782152dad881c618e97d15feb191e8c36c79a86773de1245704a92985a182f22e1f5cc10e5ab2360c09a8c7020b75f765d04c57c70e659606a13eec7dcf693a161d206909f7e274403dcb1673a6a68cc7db3082ede22b6e993f7727b633a0346a1982ee85b42d39eecde1968aafd736a9f2e33e245223bc60aa9df10330b32e6da409aa3809a259d67aa6bd00dd78fa0f86a3f394238d07b0d965c13f16add1a2f7eff484a30a69376da6c6004a324d26b63f0e38e30932cb693402ae27be42a3de48be9526108202ec992b809d87da6b15580b699a0ff65a7600014eeac4b5983ec3ad95a53d5b2325e96075bace0ceea111f7ce54c905d0d0cdc5ec7c01a5ca96e7876bede7b048e3717b19d9a5da101e4ac4d5eb535a81ebcdc0bb26ec7cb8496f2ad501a67130973dc2be0c8acefff4065e6f89a218731c07851880a3331e95bd443eee132fffa99effd69c15eeba7e50cf4ac3972f4e3c89699210c719bc13a85db17d920768c7dee4080e71ba76ec7cf38ba5e4d71d72f9010d08541272cf91eba96a30b25dc12e47628ec7d789fa7ce106953c1d80cd13e01b0eb1206ad8bb0caddd557fae2b941b2bcdbb365f515b624ba6a1df2a4d2efc15853af2a66af2281201b069a50ee8a38366b50500fbf3e0b45ddbfc80e978168f75c22baa21cd37c495e45ba7767c2bd132bb96df3a8da4d5b3439d9c19441a24e0eba9aedcc53b251fc074f899befeaca4b02ac09644a8cfa74ea5ecbe0c8f7a3dd8dcb5407e5b4c9110a0b9f548f01890337a73cd92cbab33bd06478e10f917fa53e91d27aeeb49efd4e1bb648d1c2212ffa125ca4471ca8b761da3d9272d84c34e2569831d679a33a269d66e76b445e64d72bd52379e236ddcc876d1a2b595b55ecef826d21a178334129779f355c92c4babd4c466fc01011e60b257566b661cd8316d63d36102b7d449e45392aeda7145d33a3929e8323bb6fd16eff3a170031b4620bdba132017f428f1453377237ec61ba3cd01613dc8c67581c10a34362045a843da9826464d3c20d34913a33f8ace54e69d3bdc0d8388ccd6bea95637d2d70e5de21a8250a055a2491f774f1394bd2a88bf8f6f6d014e358baf12051b272a86f6ef0b98eae12aa67b9206115a3d84097bbe75f5bbc642fbe0381f09a48285015a73921f9c81e1c20f3574871fde44e57030632737260b76709ecab152c85ae2d4a5cb1bebd535eb02ed60f5af200a938179c3a7974ac1d2ec2b64411d708ac28618e3ed1c00028e4d8f3819efcee5286caf14cd9dce58f1328b24d4133eaf28bc51fa826655c7c776921c16f9dfb204711312c0aa76504497e24d7c3132ca41698551fa8d29e9670c3a436d396b7605c20f6318c92a2c617ce49f25e635cbce5d23f19faaa06b8778513730e1f7b52b0de649eb9a7808570cd332aa0fdab83133ee9f26c6ec319c3f61985012c37b91909a43448a1f872f8ae05ee29487947e765e7c42158a2626d889bf4b21946e48c2fbcd433596fa35c0b5f3fe0d38d0527cc70598c93a6f07a04422d72f243a052bf90328c2b6bb7a1d29e014679dfb19a71aeef8830941d17c5b709d016ceed18acf190d9db769b66691549590b0adf81917db210e2735caa22a2584357d906c1b29a29017b6e82aca7758d636c0bae5dc0e7772433bba19d96c3ce49b0ee2b3a96086c33fa23930c12de5ada80fcb86894d68245e7941f5a6cd1f5ca0b7421187c42cdf2364b133826957177a0a80491dc45f8f63b5b1955188c82218501833b04918dedd44dfa3b51bf70cfa8f93125b52cd0a084de091f531a1fd0b7e52e513707c17d6237027d2248849e4929096102b817b025a82d809ee44340962267427a0498849e09288963056827b025a82d809dc09348962267027a4491093e0928096285642f7045a82d809dc09681262267227a0491893802e09482409264ef65e2204c199d827530e91222897ef8190c09136cecc36d43d74cf7a4aff5a1385526af652aaac1ae3689a649c9231380c9c7f9c0c2df773fb0761e0825bfcded84ca6c31233e961655a3a5834250d6b4ca5931533e961c554ba5830350dd64ca48b9566e961c59474583225a50d38ab13f8b392dca149b91f6e64c0bf94a71210522ac81d471f8d780a680cefc55a5c11b8c6bdb626ac4bc0fdb3f3eb079cd68c801d6df5428e47c0964b29b439496fb97e351030d725ba365e8729781c6fe79bb8034e6c58000c28d0005dd200181a795270a51263651a3f2a36dbf5dadc825ebcfc74a1d2a3b088c667175045a70527e5651fc0323bf5d3565768b5a9aabab53eb806818c2b8281992a7d63e99011a0a2d7f039f0118fc897f9d8c05839b6508b76d4e9199f119fc4aa257d6b888be6a9caa8b81bd0187460e2aa7a1bbeea3c3031153d4d1f751f449c8a5e862fdd0f2656652fc387ce0315afb2c7f842d781395e952a7acd1f43de42d00e8d695881f629c9992c2bfd5bafd808c455647e44438f9cd5796e4fb472afc190fb8327e0cadc984b19fcec278091542a1e36ac109b9b55f51b4a820c41957a9be7f9e746528f364fbe42c7514e6b92c1edea0c65401f0dcc54e9194b868c40153d0c9f818d48c5bd514c603153a16f2a1de60255f4327c042c2255f70631a105cd547b94bee1533ad8bcefc0d55e870f205ec015bd436940963d4e5ae35cf271456ccbe631c5ce250eaeb028b817aec86c050ec2e77c9d7f2e8d333daeb81fc400d84957f53a7c867c0056f40f25a34c8f2b370731810de94acfd347c0137085fe513ac8f3b8f2ee10135891ace87d7c443c8056ea1f4a871c8fabee8e6282159384fcae7b477e7267c9624c4a335fb5cf2933f735000e59ad61c053119c8ee16f6c50e3b0baf4201eb00269e9f9f0118e2f72f6889211058105d3f2b163db0545266e209a2948612fb2d2417a1462abad750490fffdc39461f05b43e083f001340619208898bc92cda03c570c80c93c85d61af9d0eb072a9fdb44690c9fa8d34ac42086246f5f628eb5a1b0c44b4c8c46b03c304202d011017349c9ca68e9744676b233abb0a158a6df0448f40ba952a57d397ef2795cf2dce547c079bbfa4a8f6e1d1245c03952e61d33b33dea009363e7142a6dd69901ba6daf59bffd863dc902b437411a72a224d1ac5fdbd13a42d18e827eac2d03b56f3249e89da0eea08d3f7761fd33599c5f8d1406c987a5ad98dddaf2f547ad6e4952ca5dd63fab294b0b1b9943388a7f019e31faf8e25d691c7241869d3bc2de6f63a8a6b8345267c44a900151860e45082f8c8f8059d16b47d9c4d78bd4dec7a6342b0ddf6064da018c1e3905fbbcc80b258ad665034d9f87d0773c7ea0bfe662d4b96833c882aa42c03710be25a140aca43def08ea527de9acdd11ae14ea2e3d9ae3fdfeb41d7ad31ea394f79c36aaba462b36d22372212a7d6ac5613e7e01f335eeb385c0c8069a367b47c083fc19d5c112646f0d6fecbfb8603002f440e942878041e0b6ba56e0ee3c9073919233a08e483028ad4889b882ec73d03ba26170d7443e403662c44d7df3fbd10abd4b0ef8a697511e15b8eb785175345bcb242a2d357ab458759cf4e459263ca6e3f1d64759836ec75015233600ac302efa52a4a552c39fede6dee2ac114de53ef954b50004bb121ab0de8ed6b16c55f71b01a8ef080eabf5e4303b76d78953b56ae54a90c13e836b0e000a727aa8b1f8140a9841e6c550926a59def9f28575bd6038843e5e305998cf2f65fded12f93a8323c2c568638f3a4487330d1a0434db2b37ae6ae0553e2f73636f2aa353f621ebc91e248f21630819fb6905777d2ec8cae10cca3ad4526e11dfedb596d0c6420591c212d7f560877093017edbb580d5fa35c4dd8d1eaa9eb5843854eeb0c38e3816383edf05f1526be534e0d84621c9cba3bb98f0ed6bc5671f47121f204955916e5dd14ec39e468e3be0221c2ec49cc6db0b8e28de8277bd97b95e9bf9aaf51db733c20376648a3aec031f2c1087dbcf7607042a0d9802386de826a3576fde2844a1e232508b6046b464f4df1a11b510f0881323d3a1176a4eaeaf0f8d488656ba7f2ddfca1b6e4cbf0c18f58f18827ca9d7a0365358810788442b69abec71b6e17bc010cf2e1e49dadd536e6862e4864de1ac523843efcb065e7f0e2c84d43e350a82caba89c259b84531480338fc946888d85d30ea2830e8941e45f064555b60356de59871e29ea2af051a3b733c74793e647a399220de3ae4004fd89d7d0aa4cdc1d2de482c1f2201951422f2de07865e6cb8f294447cb92de64e9f929150263d6c2d325a527b9903fdf19984bf79bf30b06b0f3b5c9fc26fda14d1e0ae863b725d08360c2fa09b758d629165e3e49e53b4ad54d2875974d1395483cc329fca81bec78ac03adac57ba2ff505749f7a4950108851502469089950625d24ab5d39e19e4ca060c358916cb38738c1f1e60cc219debc131dfaa7c44f06837ed50b0bdfe9dd4756b624319a9b450bb81d324cf9e041a3ab3f82112758c33979df201c1518d57f756a5beceac969117a21b9d9c03ead2fa6f59990f3938f575046f4a9e48f00a36f0e2d56a029b044b1dda8b8d321358c62c19031f3a044f01c157184d2073c449f9f3686b39a6f00e9940031402b80712a887147e9ac3d355bcf72dd5973f9a0b3e4c54b05684ee1c4681e7f45fbcd81a16e00d82b4efb0a52b8c156d7988e20c170733c5eb81f3a11c7a0f26a5c2072ab9b7ca16ce4716cc30b0264529fcfd5df97bba4d5c805f45e30435dd5efc576c110180128b777d2000c951a3da78111566f33f4e54662a3140d54c300201ac2eaeacc124c9c01790c203cc04417f5bf34a75d0d97830c366e90ca973f84767dce564e02f481f907d8111d370af6a0774242da520bc4a6a4bd74fa3182e901a6eef1eb33b026b85086e43bfec2cb195d6f2c1d4792507582dd990a63317198ee983652bb1d2f41ca738888e5dd8a101ac228eb41d4ffd220a2005df3f8f045e4f88bbe5cb6d887c060c94190dcf866642a5bf591c48d81d9979b68c24e244de7eda22a4e8ada49dc69c8c0107b411811cede95360a51db45e9aa00f7d539c8d000c4174d4cfde848ce8307ed319c103bbe3c6e313f2ed6d1a025934e9b64bde307c7a8db89cbe7201994867f4a163251068345251e8d9b0b68a4a226d4b728b203c9e64c17d1dbfe54e4633843e09e56a3240109792d80aaf9bd2ed1dfdc733f2dd2d3837eb166e8792cc0bfc5c637f0726968e239889a973e1e1e0258ca313f62649d82d450fec37e73f353c3e713a088479f776ef7832019c5094b09cad6eb0358c8320e81b11df31f848168e5d1ab2db89e7e7af7ebfa889c3aac558f2830aadea11b106ce53f52372edc6db8670a013b111b800f0e241ccabbca4cf5e3f15643a897036d6c78d9edf1d38c31d36746a9a8852052f430a3440ab5198ea62ad82c69b5b3c71931aeb5fdfd3b0f57a7526dfbdc2c2152c9014301727250498789106365115277501e8e8fddb8cab24aac5184dfd4238bc9173a1ff486a7f582c2ce8b92d45e078097c334644386b6b20deec3ff0e905e4045e81378f9860108d02ce681dd18502d5acb944552172cac4d2c6304d20674ee8fa444d2868870d352f7ce3ec07df58d0f0ae930bc84f6105a9956fc9ebc02be7f0124a342a835764b9817d4984f62393a078599766c5d9ce31d59f7dd9492730ed16013726d990617c974c22607ff7612235547ebc045fc8ec1a20af6cb3710e53b8add9ddb021392a68950f06bcfedb07c59397e5f4bfac636ff30d6586e606ec7888d9e89a1f37078c255d0b3d5eea245b4a39f9b061e458548e565f7572b90c8503b8571523eac5bbc30ca58696060c3408b9ecfe22692f00436d59206164a8658b0ec9c22632bdf78ff73c430fc12fcf3ded6a0d57e05f3571630b8da988d39a78b88ec47b7225b78bd29f702138f925b572d2d091174768a0cd378c2756b8334534cca70be1d1eb7a3f10e2b7c568a15085003b27bcd4e9ae483f8d891c5c8408dde5f8661be7dade9c67dd6b121673638097b207a73d6cd3880a81675fd260d917e1e0ca9180c494b3788bc852a961d76776cfc94195a713bae7b61f3992bf8125aa30d84587b144dd6cc23dc6505eaad81ef9b80becb9bf3f5b5507e7a8113ddd6197566c8c5175a7be4148e5a2fbbb0d22f00ea78be561d2fafb89b803893d48057512d80bc1894715a633995843d97ebecef5d94d3946a21cb445c8b54d20b7b85a8cec17a0caf60330647f229ee82a5699bda7e3f684f5c83b90a3140c6a20d684880302d41ea2930a181f7a3fcebf1635a0299cfeaf1ec83ded1ac089042c73e11ea9aae38b3377f263fef8af7df876b9d26dca6b57829afa5e892684df70f721ebc3a532e29bec3eab381dba77a0a5dae71232f6dd32cfa5a46bc5f80b0debd7fe7080d6618637bc8e541c625d48de1c5b6aa05a639208dd3df38cba1043a413e72e2aa4e4c3b56f8e33c32a215af76048e8061c2617883c777f2c65c47a1d00bd97039fb8d8d1ac3f0c8a76b92d8264231f5eccf10a8cab6c256851394969079cc0d1870ea3e887ee4d357e484a2c45f2bc284bfed1414bf1917fab63c8902968a183bfd4ffe0ba6df7bb43c7928cc02e35d3ff442fa24f27079884c2a2fe4233a312237dc29e0769b1f58f1ce8a7b71a5c3a3d9a1461ead823df0c70ba0e311858bbbf256ed1f0e0a1a79d70d6bfff7f0e19567a31104562a5fc1d9aa2e481032dba8609f56c5d9106ab472b3f0b63c0295c94ef1f8590bbd40295aebf2766c05ad478fcd2e6316e94db02af5b5236641c9a1761e7c5108d02596d3460b61fe5efccad41e0f68fac4deb2deb293dab9e8de2aab9a5a5afc821350edb145caaba650b130eace05219d2d8b6a1d381213d293d3532a36d801c2377f49bc5d14596acad0ac568a6d37332e33bca10fca4d5161d7a6c02fad995608b9e7913382f0ad0b830fd60b5a7e8ad9951a51f8210ea80eb06f93796140396b43560fccb141872f718d7bb25070389723e4a8d1d1a7e9f5799796a533deeca9421c254e467a02d21974c30a5a6c630b4b19ba9ae650a695d1208b4c3bd02425b63657db79abac0c53e23a0afa570183f1349dc13117e67dfd911c693170fb6f770dd4245170497f7a26b1669a10f19c448f3f738b4893eef2a69d5c8178084077eb1aede4e297f207333dca2c4c462bfc1e02640d17eeb3bf87945fa9b09ff062864093e8914307fd47f13891362959724ac656c81e1981cbec796d332290cd302bcf67ce71d275dd46098a70edd1ed493e0670959b52f661222dd858405523c8c63214642b7b449288e04c2c27624f739838e04223fa923bf9b05eb9905ac599a3d7841bc0796e985ed2ccf9cb3c12ceeee8474a87052f3206f14406bbbc86d3aa5d773843649c03225c15f91d95be31b0a6ca78f5a756494d7b1959c474ee1e355303c20e67f0fce446d1bcbf5b8313ed4b07d65f04c5f2cddefd20debca4df2239d457c33b6165631a8a44cab3a957bb430c5668cbae93098e0dfd702db67f88fb0ab46754c3c27138a527c4905eb18650951c1c330759c40690ba521c86cf54d48f998cc846d47b2e140285c0ee603a3e4b0c4cf2d2333b66e4ad24e9c4d9f24df73d286490dcdc1f5aa63ef78a3fb41a5a96374b46acf51ee82fad266de1f3f9c1fcd14391e66594beea145016986fe8294fd42d8701d27947609f321039599d53e8be0f992cd5d9d62a2329f30754f6c7a7e42bfb825f06013b152cc8eb0f69e50e1619e148afacf94b19343a141208aae2482a070c3eca3e0ecd1d1be60b38a0feb0f39e4ed7ab6d9510755d75c0ae447bfa94cfbb52b35b29efdcf07567deab322f4ccb50fddaf03c56a57f497c82a1311341e4d16ef15fbd007c17c7e0f5660c0924c2ffa12165a1ce34e7e7185e12c028fb51f917eed0752c211fa9e0108afc170bf6e54fa9063fc0a7ed08825bc010337380e09912dc8de771185032dbcbfb884a266132609f8703536607344f911542029d887be24df1cb19a82c1610dd135e6dc403673986003272a1b720d0023ec80c9aee856c6452a66a07b25dd5a3760f64ab9182b69dddbdb6bfb4e0c8d6296212052c202b8ce63c1ce6387a8806075b1bb250e5de4ac23871f3bf2a6e02f9cae418e39debc7a2ec39be6fbb1da6d3b7275c0e04a7044bc6218ce34dc7cdd2a2b89032d8a88aa4068498c34681b47e3125ebf3168347cf61537a71de095eff49e73abd60cafe326a71f4a7e6733e6b0a80f073cf8b99ce88271a54d11500add9e18dad6a5683d9305da60e8730ad2069f2820c4d6cd1a4c224e21abddb0d66e3c30cbc582915645b981b05f509cce8ab880e58842cf99fcf0a5c31ce5fff3604c32e6ed19a52609dd7a8aa29565f0e3f496ff6be3851d4dbf9056508234d7040238a489f550d1fbd148e38740f4b69adde86ae54ff7eb84fc9c4f50069a284ddf755701f24beff5fa94a03e0d32e6a20ed4eda50b24e17a87891a243c2f180fe7039417e288019cf3431bbe554079ffcf92c93c203e4030a7ea81a48a66ea1a803c87d0f248b3677cde94b7893ee20905bb24860b2de918452cd210a0ff2f47f86adc402819dccd261f09bcc44dc0980771e7a31d6ffe134140763b157f316991fa142c9f8e9d4014267c1c498b6527b6144c487d17513edbcd6d6570f5a81a3199750cacdc09bc3269891615155590c32300a8abe9f573ac1d8955771a49416276330d6b5cb173783a718ed4ba1cc3de83b65f90438bfbbd1544d1210884e262d7f8fc1a44eb210090183112b2da0221362b1de676aaa1734b0ac7b651fef3fce58d26be62c1713b5174e58e12e194f675b1c969bebb3e9bc55fa27658d856c22904e7e7d8148364fc30fe44bf0fe28ea5a5b503e8c0e20d4f719412f14169460b607f3c8dabec7f096c79df7722fbee769d3c8a60c59b70ae0ab10641f83c3c23f69811833212b20196c65b233aae7f86e835e0fe8e8c30907cf1be7aa6830d265cef265d15b2193a1bed855f93645e7cbea3dcafc428bb5ac7699b18b1de85f3506bf7965b8c166867e465279719e9538234ddc1c16ac0a276686f9fb89ec77e04a7d7ab3449fb107f94d0532e1c08882221fb66b63e0808b8f584857b30c730f77cc05a7e075393b4c0e34b681f1d7cb4759f7bdb3fb02f46934454e12d959094d3b228d084d388e52d782db82fb2067c9355d4b45f52bcee8286996ffa033793abe04b51ef18acd9e9124d87ba3f7dcea9a8867d196ef0fde2d8c769db331d81f9ad58a22de8c3648d6738ecde9f3761e35d8fb728d7425da8225785e2cfb7bd2eba35ae28fa7064c329e12d55319ca2c0ecff686186c31aae8fbe45d60f5bc572af2e6178fc25e4663abf12909d9777c3b9a40605a770759d20b9d89eb6046e5f81251ad2cbe08ec3cb65fd6e62b191da6cde52cfde54db58c5757cccd5d9fdd8331f2331cedfd64ffd120249d6a1413ef62765df55f64fa931ec036d145de0f00c90f9d7977229c9f95ec932ef35b82def5acb602cb550cc7780160c26643d2463717d0108150a391119a99770ddcbd0e94fc2651aea882efe3c44067464c4d15893deefc86da3fc910ec7d9c3e7331fcd63e8be63acc4313a7b7f3f8dc932582f1db2cae5ba910675ad48da3bda30c192bd0af847504855a5595b6d6c5ea28cfe3c0a3298d552f7d6d65f1980203fb55c05d09ba8377700bbf0950c14f23911fde75489f1d85ec52c62a1163bd0df899495753c02a3f2582976e588197c2acbc8cd76a5768208cc97582885cd36245f0f022b976e68a60a628e328d23dea90789b5650b72e40195e035881c4ce155e7c6f88cd42488e59c87667f8f8515d72a2da804c36c4ba2ec910e102db863c006c1dca502acb6bd316258f37c61bee806c7a9df240d9d2a3128ccb9402ad3352c4f7087a01503c354850eaca5c6e1b638d62afed08651699c15c54c1eabca5f76e1cb3a9968078bc27bdd68851e4925ddae3384d3280819f283623b00415047795ac6ac9e7de2b015d913e560e45cab2813285914ab42b8c93d62602e46acb63a3edfe346d31c109616647bd10b225e0df1583e73b867c15e9b9e587b8ee0963312ee4f7fb229a50e955ae41958a586e6861856c89e4745ac51218981ec1b827ce1a711c5a9edb70dac8bf813ef066a638b2c26f62222f41eed29fd0381494867d5e83bdc12024311e9c0918cd40e2ec3f961e4efab56d9a9bbba7963cd5755982a93fa916972512420164d8ec36aa8d86656d731d0310403452aae25513e98ece726d0ae04993061e45d6cc903fa81d8f86fc77b0ff5b3939a225d5915c6ec9546616cd0059e20b068363434664fde58bde7b491654c0c7f8046b2830e205c3a3db367620db14be4214a228f332962f084a750e240d6ac866405dc07fa1622c0b37ef5aaa8ba431ebbcf0a8d1da8bb0441ea1b787b80e580addc63fbbd3f642487adf378f995c2c4128cdc34ae177a56f0918747b29877d1a6268ffe9c4b0922ae1c203f2754b1fdaa32ec498506ede0065f585fc9323a2c1f2ab902259517b8f61d90d3baaf38d30e7b87e957a51e0be55f83b8bf37dddecff2c55b407c10821b57e627115625eeab4a115232140178c4a70b04ef925a926b01ab09ca2b68419580bc60886effbe4777d648af5f00c4fe76f12d8407632bd276ee9606faa88a36ee9e45c16caf69c496fa23e8d018f27fcc2671340e7548fea0d50f1d6f08291c8ae781e90704768e54b5e8fbd576399b58f6530cf51fb28ec950e35a7c4ff0ed45daec2ff1c4dde914e2708cd7ee0bce83f8f0453d077c61a9fe91739433fba8c83fbb8a2e78d4f5b677144936216ac51c9ed0b41f0930853e37475e5b7ecb9d94648afbd57d0cffaa0a5de9ae1b01950a87cbabf9ad6ccee9d6f5a2060916fd51982924063d687e9440e58367a906883b63390b85878d0e39a4a09a917bf35c897befd1cb486072538b6c6bb02804052070fa50fbfc53070e6501c987ce78f9470310686440fd5288eb571c0d54201be8eaf744291ccf8a2d64321dc3d0f10b4ed002993c18cd4021152380031d75e22c05caba12ee4866aa4a28aa06c06e6b935129c8da5c5ede70b98f07bf07999a5f1462e9adacace45288f0bbb4df00ea92db2a62e7ced8206a35ab73c7def8a786bc2e719954360f1e1b2a105078449ec083fe213e87916b2f166a11bd62266d1064cf634338440a3f9824a702c443da66b518c27fb7f16e7f17e5f94f0b611438413ba1fe7835bb8953c38023f1756549ffe39cdfe2138a8e25f05b133ef886dc0958793770d4f2e9c1d97e2482926dc7e6d5e2193a754009e4319f77f340c281f13bc25c2e18d70115d2a874376dd9fcc68a2600a7a204995cf26d6b8a4e03bf67c84927006d4c261ee0764992521cd7a50ab6da421cc4a83a46842ca58e560f43335890d741daadba711d2efbd266a7116988de0c3c4a4e087ff852c73a3ff4f123145f82b6e8247caee4ed087e34e4043823cf4655a6ec84d4dc551568721798421fc287f297994220aa430d3af060ef3acc9b9a3a31e621813b63267a3c00b29dfa6592b2290565aaeed3519cbb0b035c78494d4e603b4565691b3f8552e158ea4413829a6cf65ac720cafb18919f6a7524c7939f1da4abae9032ce95e3eaa1721bc327145c17028c4e1ca7fb763a4c9e4f6199a193038662c6642623644a0e516a6f0549d16f00c662cb1083824b5eeb823af166826659765851f111ff271665468739db3c3c657ce289de2c6aa5bf810e1a24c80eb169f2439e5266bc3c88c847bd501aa21529c0bee9b2b5bd989201a60d040b95af421101ebc0787ad27bc80b3c38b119bd267a1f24096b18000f13f380b65a4c07c18430fdd619ef547a5dc3a381381c63213a7da261cbc112d478ac801bf8ee9e8e4ac5b2874fa83455be249a3a835c025517f6a13dc5c0f918814e599b23268d73c176e02c8bc28bda2d107c06ee43c9474ae269b1ae18d4cd1852aef2bd33624d68e4173f730ea52370dd99281d91d54cbbea84ed0aa09fffda065080bbc5add7d029bba5d0c62f04441fc906f2704dce36a91c27fbbbcbb069709dfd058d565ec2b51117e5e5fdb7f5c3fdb670ab94164ab841a346aa450959d04b32c9d854370a2a9723296dd93ccdb2ed5ad0ab3193a44ddd17664fe684e8c21c9b6305379f3d6abed9cfbf97b2b3bfcc8b9f07095e1cc191f37c06abcba303a5a7a3671f0789cd5c4c81a81abe69c37d330a45a41860012ee703f5ca2beea680de69642a549f0e5ae44a2f97be98b341b1fdc3c5266b8f9a08be3bcbf8c44ab132d780dd6192abdd2afde853d31279b311aac448a6068f31e63a51085aa8bbc5787d852eb25388092da847354755a01bbbc9e21080a3c7ff240e1c25994046001f24cd6cb9434818e7d8c7ccb807710478b479c90097ba7a07e0389323d65445c4037aa4488b49d71a79b67c91fc30833f6205a45b921b6d82ef28e2675392049b692926e2af20801d05b446cebd3b20f7b3869b162c10c6e1ff0cff1bdc748ad2379a7109ec5d4364d8f99c782bdb3c182105d119c48182b1e65f3327c654b6f68e2480698befe97de46d81c8ded7467e1b29acd660a433a22ff4e8a6b7d980fc040b43b701a7eddba03f61f1027a6f2422c8362c21fa88e85f03dd25852ea78bafdc77b2d695b346084cb1806c096a1a5d57b89f14acf50b5422159f15cdb87df914c8e8455be21c10c6473a8ab19436f1c24e912f8316a8ee4db0eb107d5e4bc46981ab6f5d6fab513d2b97c4026166f16d933cd709eac61da500ef14eb0b5c0410d4ad63930f9a55d25275958d892b6890d6f7065911baa28c047f2da3012a42f228326a7d842eda6ffe7729dcb711c109dc7eea57ba2f69ad07dc10201aadc0da9610eafcd53f8a1809a7a5ddfcb429adc65ba1ca7bdf52190e02b7e1507a33d1a0f4f027378319a5b01ccdd5145dced6b5d6326a9dc5c7bc6ec67b846f03383bb43efb4ca94507609d7be3b2a43b59d4ed48e5fcdc457c3587d6767e58704855f0eb16453a237d4b48c64b314a2bb6043090031840af1421f7a88c2630001379463051649d282d1748b7053eb72559d617a085a62f12795bb2e21c2bc0bc05fc14b69021008a54d5256d1c1490fe4df025b5ad774e18ab3fd6b618fbdc25d5bc019a07872aa964c24208853f8c03899f220a0b69e0d37012764d711fe3267829401a581c82314db1ab3b0b2bd2e2a69e52a39d5e4a0f5e4465ac4e9d8cd2d9552769249d854ece14b5ebdc6c2b49d78016111cfd097c6d2bbe6354a34207c87550373d30169b4cb5981ce7cc1e51253cb45d04e6d0f30c2181dca35783d8bf210dca7c4f313fe8bcaf0a0d35527892668c09c1ddb0501e6c437cf90de747530fef557a24b83035e928d8b70254594e3701ce9c46dd37b639d0129dae1e4652a1b8dd0b656029e61834e943fcb12d8b343d96e53c7a113923813f694d2ff308eda77115ea25e73cacf4b27e2db5df7525d59ed38f51f95a0cb70ab41143031c837de77c4048e410961dce2666cd5420a21ec68b9213eb17ad8fe9418058d93ed607131d0c910a9bad14508f207d545bbd1dbf00d0b01660583fe775880f08c91e87c8b85dc613ec54b650ac99c36214e3b2166272f41b4374b1293cdce743bcf50e5d80e8e29b9d368cde404d7793c6f1ec352ce7be7ecaf06456ce8912d4cccd6fef22052056a5058f3edaf7e4093905f99cfcbdeffdace54498064f2c5ebc0c6ec135deacec70c9b670fda471b750999b7743a8b3915dbe0eac5858c3c0a7c997638edbeef9da372fc2c33c5476e47894e7b1360c4c6f910f797af0d9f7856f907c82d4c918c1e52e70efb6008803c1701a02e737a0e56ad1b2919860f21ed1481841c9060cfe7add2110d4395818121a1ae4b061a1f328eba11d816b29668e44feb369fd4c89a20763d08d7fd5d07a7f9b71c8b177df36450862a31fc5a063e63eb2ed12f25d854e62950cfbaa795705e19f76179c5cf3908603b03df7236beb117a2b1fd46d6287f8c41e9f8782dcbedbc534e0ae89c8d3a5797da001dd0ac573fcdf9dde75615534e6953b962e7884fc9d3822434bea43979178d0228689498b6af8709e4eb7ddae1db95723a6a5abc4fba74238d3122a04bfefc98d37180573a0c060ffc5861afe87888656b974a8fd108efd5fb775ba170bc7adb324b836a192d01abe5b1eb9ea4995b6aa9e0855c042b66e4a79bfc0c0485726c0e8555c32d48dfd0742a34bb34870d0a4a4753cb03e4ed838a52448ac4d527d22a7e40e2caa2bf87baebce85d2ea9c4dc6de95d829fa3726bb6b0ffab9f34748bd4f49707fa8d0e760afd5a2bd9e6179965f85a1b7e1aba853b3c76b90077a72d4b0d04e448a8d79ee4006019afd1de80fd7702c61b1a6cbe0b700331f48d8b69fd03aae3c33313d7c74b352d124458143bd517026b53926d15925f0a944e36ad87e5e89e7ef9c712de7605493443cb505a14a7f0fe6509faa8d4035d0e513de7eb19839f4ab9897c65d9c484150077b6272896be5792f0250e3670095b67b4584ff7aec652b83cfd6a400fe8bdd7ae5412bf5af50c8c3fcd38e96a9ef9b75a166eb4b1042b7f513c5d958bf0307fa39b64a9b1953923a8398439a2e440c4520853f0ca6576ec923a869d13d6de3373e9af74a3a715d15d66e64c15a325dad49e6d4f6f7ae4c8a76494b8e2ed5cf070a2614c2b8bb1d3cec688bdc678239d302593af4de8a3d4a1a3039debf3442236403725c417e06e129678401b48d1d07f84af837037f542c04bb4987f424488a4ea9837c0c1a3b34a148800addc64244059558ab26c2555e999be7c6f1302d92370a0d20f289a81fac330353fe6b12254e7a57f1b87b9bb6c69309a97aa40b1561df699b66be1f304dff6c1a1dc6b50c699e5eb134a96888b3d5571e33430e6c80a084b8d3a38308757c401d6cacc0a6f7cca82bbc6ea08289804466f2ce5effcc6897c31385d2ca5991c37b4f439c0e6a610fa02af63d5988979d8aa095a88ea1285d4ccae888129519ab28dc5e38486bd01003481e9a43e4a27800c2186a27d34c231a36892c87fd46afed57050357211167161b96deb325250030c208a345cbdac944a425cbf2d90847906002840a24aea640df360c634a23cb2517d2eb8f71998aac24d34183202c52be44e909a21409bac7c5f3bd79dc7c5436163f4f25a352fd39eddf0b7ea5a8787bb940e8ccdf51c7cb0f5f4f2210321e44ed2e0d9d72864212e362873093db9ef37e32cd4eb40c27489267fad241b277de090c2c0eea86a9fddfd8ed4f68beeb073a1146f068b7428d51f486873a4586bd302db365fc781a73b9c471babb6b200fdfffab90bd1d196fa00b7aef33a83cb60b25a203ebe7bc4b2767c7ad18f46708d820419138668c03429d3696856421cc692027d1b200504dbb9f6ce8e60bec48e1fce274708fee4c5dae77049852b210e3f3d6d0827988de70ee544e97ed08c36fc99e72b8a9ce5e3130eced7a26bf609b404426e5c418b22d49d2fc1baa5a11fa3e63edcf14af91ec8917bf8819354dc6d6d9fc40bb342847c0d246cc971e95a3f128050a995a8e74d4feabb9e88e193a4d9b143cf78da34dcd2523e72f9dd13c4b6e300da9ab944e2e2b3f2a4d1f49780d0b8764a5a933b9db1310e2c1e1026e6ad6c58cc5ff59273cf4f355087994556c99af5a539c6753029b7b75cf19da96a3125a23def5ecf7186d2d58a61e43ccb6c8853de7c8cc1c2904615de68d9a7ff37d9e309071b69cc6b115448c8986f4b06e7cd821771cbd3d893a0baf35bc6155408598d71540839fa6d14e3607390e77530698ca9524bb9db4ee29afa9f01dfd0f4f63712e38c68685b485bea183b49883104cd7a37331f07e43e334bc581f4dcb99532617cad4f32e504cfa0cdf094487d7377073417fda00037103d90dc17e102630019101b6d8144da37235061582c719504ce4838e41124981cb96e09aa7dbbf1eb7b10cc420de017b11d285e4f05373c95a2f0ad2a23341a63b836e36e166f7be6036ea463dda886418cd2899bb86ad1699644a8221b3c11f88a2180a008f02bd58083c9ca070a31c0668b66499ba694e90631e41e20206e9661abf1ca6a37a30801bd2bfcea0b97f8502a916de99c65cb5ed7cd52720643b1aac99e59fdab390096e55331fe6941c0e589f41182e400a06ac3ef86d3f075370e575e4fce142ada103dca2b355ce3338980d2ef29e0c391b64d2a1aeb11b7234ddd5b544f53380a3135a66ec1104a3a9aac4f548f458f0c2210e5944d4a613a4d3f584d321abe011f5e1a3b0d6042513e633d3802adbed5d9954fef15b189e78e9824a08d68d425c135236c898728b41e5a275562488170123b632afaed86d0a61215f08c5356d5261096c1865c485fcaa954dfac17950bc36e996b4f327e7033b8fca01ee935e0e779c9ee3c886e284251ba707738bfb6c8cf137050ee80dfec5f1a14ba43fa2ae27437a8be69ab9c2b6792f9a71cf21b310a433b583560d944206cafc2bc8b61614c3e16718c6ddab06d96a308f8cf8580116fd84ef2076cc93dff9b7eabe979d2e82c31f7319e6fc618b062c29d1f44383be866c28e284f59611ddfef647d803183daaf87dadbdcbb2290f7001b1c9956e8b8041c8c786457f01f550a8d0c0c5972c845359895271b995f530dddce23441c538b0f91ca7542ca6c3902731fbc02f7e4125dd8e8db24a9d6e562c4a89d441216e4696eabd033666061d558edf58d6f5fb94f2d872a315dc1941c3127f82127f0434e7482156687f423ce08ced70a275749e2241ad1a4d9b4cbca907b321e2b64b295452c2cd6d3c5d8429de163093e3160e694022a40fd03d84d3c330ebaf500becb8436aa7b2dc100e5688ee418feaea0a4b8001caa02d66a10b980ffcdd55375aa6a17c633c488871c5297ce85606534a2c7bf8bba085118622c0ceb1e873aeb69e01998c19a5fb7ec09473aa0c3e348b81ac9592c0ffad8c2103ccaef1b359fe95161311ff12617b4c1a78c962d584ec4148476f5dac04772ec2a28c45e2d6dd11d62900ca5514b6c2e982549490afa305aa4ed2e6a7fa63d089a4c510270bfb4286564031093eb6bd665db3aa3b8190d22bf9cf9e900d49abf10a89eead895249721bc3854991b2ee8f044a706a527ff8cbbdaa97c824abfb89def1deb409670a138d9b29fb3bedb14ed9f4f4a805879301c3de9cda6d02c3e89d7bdf9a1a87a2391125eccdf2e34340bfdf81aa880bd4949a5798f3ba27fe2ff998c7c16969d048d9de41e30d23c09559dc2efaa43c5d99fa4a00635e5c3bf2d4f1b37f07b33609a3550309258995937015e16922ddb15d265a51567b003204da6e3db4f161cd948dba1a8771cd049a48cd19529122f382f071a2652f56df86f71ecbc07e5eddd0a336b94f0784fe83843542b774f11701131d41e2a8e7402200b756cffa04a9555d30a3c99703b746ef728fe491b508c066378475e2ada6478550da06425327b77767be0a44e00ca9cb743e42133617800dd3ba43456a761d9a655d9099c5f11fc129b1b0d1257164019545ed492cf87e0d1b56f1eb3c2eeda1c1373b3896af229ea9cc1237b02043f180c8a447e375cdfec9c80a224ac98b4522aabc911a57c9c2b06266ac0bbb78d53b92bff0513deb3dc480ba90d8d2dbbf766bf45ad5435c6aa5b53827212275c4f8b2e0a5f306e70c4a82606847e0474d0d6d501627067f1172c916aacfba2ed98187005070353d75018f030d44b2b8a871b52c107e9b9e725bf6c91cdb6ffcfc6e21ec6f31374c9aec7d037e15325e3b84e93cd5fb63e4a6fda0dbb5e19696fcaa62a29518d5b828b01c6a0a34f0e5463383454d3a6c3d9192c59b712d771a4c69596c62f8a78a1516b670a10ab84407bd589ac14311cc9e0320959261da9297d93b6ad70dc22e2d71f3da30c821f0dfe5b0db81af085b77b2cbd606b5c762cfbe5ad8315ed468bd71ab850dec483480106a75448145c63a2d867574120ed2e41d56eb7347ad836df8a8604487a96d9be389d9e00e1b0d86bf2794916f3c25ef742cf4bdf0294a59ff55a2597d3bace8be19881ea1e7f8c4c467ff4e4994bd308d1ad4f8f129adec6c6c508eae44e38d0378127982209c0ce963c6623c2f8c4df838359fcb1fdae9046dc6ef1c8e4fe7ee56d9fff8bc28b03c24fcab2de058d8640b1c5d2afe4f802ca9de700d9de5acba60893fcf6427aa96a77699f3012a4aa4fba36e4d814c0edc4b2e87bda9695c70fc77805411aae01c6ee26f26d80b82fd7b29441bb207e178b224818409c5f9efdd6f93779bd6acc251370b144ba56bc6f139bcce874cd9f05ea43c4ee3a438525e82cd9d259232e71670c89f3f9c79bd6f57d206374493fac549ea687f670e8115cef41632dd4f4075b6290385f8b08a5956e22e404d043c02b065a2bfe2a449a1723061b1f85518f86e0f7969b6aa0919181e1695b846b0ba868a1e71416238fc82dbb0e8ac20e1234f50abf345639908d49fbd3dfff5db6e6a786e9d0f45fd5d3fd2f9e49952ce271a1527d2ac711ad8621176b928634a491c0d14c02dedd67c6586237b4000a578c0459aed1cc26907ebcd89620c1ae57a80093b56ad11f42b20b43603e25fef061f90b18abe5913bb3be060b05fc28aa17c300c499c8e69248dec56d604e2f9de1ada384f76c5694323d8c80382bf56850e508be09aecf8844617903928829d65065a86bf41561e39ae9c3da3caf9f281c9d18b170a4b8b1a88c256aff42d61250ece449529cf888111b9a7234791a9b35123c1c66d21c3a23c89dd5b184a129005780a01d19428c00a916b6cbfb393439400a6189d6670bd6d2f497ca3b5ea082e043031dc40e73c3d7d159eccd9a6c57f0bf5ed867729b0aae0bec041964f227702405d75101f5c2a64072e14545606b9f2e39d5b576268b730a6bf9e2c0d8be539d431a65b7a41469a21c73fb22c9b2e798af8b313da6b67b2e3117f0a60b0e2fd2a39bf1c54ac7a901ec3a8a2c28c9ffa7357463f0bea17eebbc09cf0512ff3749b44eca319740f13fa6df1601684aeee2467ae3e725869eb7cab91235e4f017b505acb73e2678901985575e5313ccb8a265d7c87a53cc48c097471809ac46fc279450ad0382d7e9346bc50399811dc4503d3e8f8ac0d18d6cd0cd6ef6877bf75c23b761774ef9d81243d0182f9efca3aa2df9e07890d4a002f87c43be7ea37826ab1f7eb026a41d95f99381722c6c33c6556072d0af3ae26cd9fa8e5502bfc085fff42f9af460fb7374059930ed2fe63bcf53c2df213a87bf56efb2a089e917b90e61ca913720370bd38c91f3199b377f281853c36d48add2be184ea59adbe87afc86f58004c03925fa4c4968799122c8476c7e91bfb319834231648d25178036b760a91d7f1522c9c448cfe82c8b304f8dcc1dbace8494339b0df0030c54a225c1e4022ad6fe08cc1e954901931ffaf88a0307b06a519006dea93de1346c80490e82244b90142592eac92a4193b8a35409abd19bc4a28ae035ac9243445b308147ce657f908dc5acdd6652a0e5a94fbc22afe7ac68813b9735c881624173ec660f8d3cd291d246478bc0ff72cb3aead95adc4d71126971839744625f4030dc779e8873175583f07c925c71e9691acaad8486cc418d21485a312d17c5d8b386ca800f07446a6d31061bf213fb78c047353f82edcb73a3f71c999cf5c9141e683217a5a049f795a8332d0419af0f7bf417308656cf3335fc17ff4d499403ad1925caf4bd3d428f271c531ad68740c095ecf60670912aa9fbb613b35fd917e7eb322fae7d198bd63d3a21c775408f5540e23beb1d026061158c5c3d44fdb528218ebe35563cfb3695995bbf3d8329e461e7aec45302bd93d7b39bd152c8fd0d490b6751c04284681cad1e438abd4f6ff000100e8484bf4f70638ba5182ed5cb919d6d28d0cb69a60fe6e2779080e5a2bb7714002a45b43f6791a29fccc9722109592e0ff25b9bf76203bdeaaa1d5f3b05d54e2e05202084757bbb2526ba294661bfac2f25e81e11ecad2c0201845c1b66b2980a81e3ad445f26e95d4ca75599d9c43a49e047b472f310d8f1a4f60d213895f0c3fb9f5493140e8c7c33dc3c341dc7486de836d132fc0f910f157a464b339a066b7bb1da9890c20aa9131fe06cde2ca70ecd3ec76d83d4ccd559199b273b0da4b78ae1d833f26ece8ba16a40b0f1341d583cfbdbb7132ebe71fbab39a93e16605e017ff3d61b40df9aa401ff769d3befed4ce91b7b7db50e7de8ac9e1327196dffa6bbb786fe2896ef208a141600816b1fd354d7bb727ccf5c3aaa1c643e75f6e8944d97d1291955d1292895cc859bf1641b4873330f2d378bb52ab46bc1f239a7703786da77ebe3fe9e4eb88c85dd10e14b9753ec73449433d0d71b5ffb1063866c8c4639e58b243b0fab2fbee294a9bc99306987f35128e03b067641ec3411728349327a5dd10b89d5291b204105a8d7b311e3f99a4c7ed2ff8266b0ed47d29579bc06ddc2249d61772ceebc9c15ec6e64673784af9278a09eb04fdfa97d14cce2595a51a4cd4d2727b6c8c7a5305923787e122eca6f7e59e3182e7a794446f3f8544d423b23cab6bb4bbc3b5c00a5cd764dc8a953f34049c3a0f23ecb92faf6422add9e666148dc109e6a9d563b44e23927c3c1d0d422035b5a3758e755c10372d288dd67201221b0427e33bd1d1a955d1e49282c854a740cd92bcf3096b4ba67229d85ecd1a0529b49e85681522024f97aefeda0b018febb2644992012bb2f667f431b5cdeb2857e9a770a874d9feb4d7b280e017aea0537f4ce30f97323a0d1038c026785efc36326348357fb4dc63a1ffe3a2cf58fd331e01fc4aa0fe736eac1a0203d02bd879ace940f0dc5899c984519254c1f2eba2bc46cc511ef9596ebc5f3a2e24acf389b1bd4aefbe2589cf45b0e87e2c189a73c380cd1199ea0c874bf2d5137fb7e4d5e5e9af28f942030428bc77c839f6b94fdc1ab0327638a19f26aa4314d30c8ab4ad110eba06f984bb350657be19129426c16cdbe92591886276a1b1cff79120421429604ebe3540413dca21b237ea9d80048a215a1fef6b7575707b1d573f5633225665bd444ae761f99e63443c6ee9e1f6b0d45b0f4ee539ccd4b08b946be71c16894a1cc96552df049da7fe7f932e2063e26c334cf9abad3361b524bc32d83bc9362311a0f197d4966593ab025d3df9d2756adeef3ca269cfe8e19836b1c7971fd88d9d068fab7f6e883f632d12ba05bfe208d1560d483000861d1995e3c2b94a0b753b7768f12778bca2bd64f0d3514abd401e9c832417b48be4d93dc6b051c79ba9c1ad0579e5f07fab22058a954c749476af7f05ea9b71d3d3dba82822725a517595f629bb91a194f0a64408a7815f1dd407dbcc0968ebf28e3edae2a17908b78522080607996182ffd78f36a160a1c67aa6e2abfdaccf41708a35467c6bb2c86e20fd761c16cd03221ac19d460b44c7221dee3ce04a13c24e0a67a19c936ba07d8c28ab2b0095ce15315c8d8219e0ac49f1f3e2cb4306c07f73b7f3eb819c538cd39948a940a1eda309ac51e109c669782b8dd0e0e7e1791073a85781df5264204bb4da67e36218a4dfd22f58e09123a46253399d7919e0faf2bf19d44453de49853f56e1c87422f77686f152f79380fd92dc41dde5bf1f045df06f25fa8e60a07462f23d74dd9fad1d260305af891be115a138ea3baacd92b6e6dd95d19972bca1858b7647f70c8b0aab221131ddb429be95a0ace4b6da7ac898fe424c1c6743a20027b62786d34a7cf31b3c43e7f422407dd0f1c227fa34e30154ebc4f6fbcbf37fc309090461050324cbc43af598d45606f004d0bc510aa877dfec1323d62806548fc05a66126bde2e2b9b71dfe14ef0ce97f6dd89aed057625951d995e5b11ed7917f758700e50977a5a0621aaf1c0464495598742eb7e43faaaaa1f2e04eb2fea62ed5711d541d2c7044dc2359bd453629d00e2b7b2206132112fe7aa84e49164621690056d44974cde41e6e5e77142300da6e41592a5f24ac1424c188a309fe233d36b34f6f8701b38be4924eec1728b84f169a4aef77808eba91195a4c818d85ca118ffdfe5a8f9f0766fee94ac4dfa354d7da3e71829b4804c052b9060f85b37b41717f02848d9d3a9ad2e24c63c190926f645c042506730f3b4de923e1c1e67a025448f46ecbfa08414433cd4ee886be5a627780ee0a3581e0ffd4ce308ea43a7334ddb78767c31c54d9e3acd9ba5a90c47c355dc8baf4e258dc2d3e27eb1c33ab86584818417b55a2c5f60d4200dfb62344d8a12d35231b8289b9b8ab24c06515584ddb341b85fc632fbfa3c92acadd518e24614159de187021e950ab67de8f9e9c4aca36d2f03f6d164d4e1e88926453b7ba4f1117fcd86953e07dea81413240c1700fa524c20b4008f834026051e93cf7c84cf439100ae7e46b353d7b1eba82a77a84bafc34fb613816258a2cec9e9b22f8c6063f5719e680456a18084a30c792911f8f79f3a8906a8dc94e26469757e7e78a7a1f384dadefdb13bc58d1cce79e420af1a791216a8b1c1531cfcc81f46078c9156c688631964e03b4a654fe2db1eebc8a9e582d80882059e210c2980e01205ab37b6254ee8953a2c30fc178d55b5f9730eed7011f81adb71515c708e2c019a23c88b15f3210e85091c03b462d2a89cda18717c2d59077a17f2dbbecf24de8b9c630308ba0872e2a19fddb650a0a7d3cb7a4af7f3eb80ad7114ef2a4987f563ba0002e077d90d8188c66845a74f7cfc72dbb9cef50c492989dee88f4a2b67b173d53fd34378bff363c90601a7050e9c3026c19f1f2400eb83afc080ce0f1f7677fabf8a049f3e3649cb31f7d940b91511dce2d2868364ae2388851c3ce220b4496bcab62f4d787b4292e5725de8ef82c977c3e24a45fea32281facda2e329788c755d38036bab08e34ce5d0364de306935f42f47743a8c3ef90b23b14391931249cb7eb00a30499196dee6a7f9781b093888cb25a64f58e0d4378c9f6f9ba377bb16bb2505800c38263bd9475fced2e78e269520c3ac641e710dd631c5fb49a9002c7a1c92546803935a676f9410f5dad80c5e846e1a0a27022042e34cbdcb3bccb34a4dadd42318d1cc9e0bec8f36a2976b2f404b80eaa48b99f56d087ba05bc77a126c84f42a177b07ab8043ea6bd16d96a3b60cf4aa21a7bec2885c1bbb8e9c46bccccd128cd4b63caee7bbee40eeb831df3f460c9f0243b61e6f1579b58194fec8c5444c154a8d9d94e67d05d5f51350a315b9671f0cb88a698c8708d816f418dd5ed4abf0416e9e35393e6ab24e3e266b165da91f6e3d9f7a8fcd0fc2c13430c5d556efbe67471f676f429cd44cfb9e10517d91ae5a6b9e9035679e8a198671de19a0a1139eb28b8c8ba99e549c1262c72757999f724f9a521c467c0fba44630bd4e326b4d77a1dea1bd1d4b8b15fae9bc88b4eaf923f93500171e52b7f7281a29a1e7836a75e4d3699a3674f18200135791fce29e0f16e29f94787bfcdd375f5f26d00c8d59e4103c1880e3640c0f99f543b7030423b7192218335091cc79c1f249410329a08c674fe11e9f1d23c40f458cce4187403d577f700c43364cb96f6a8abd35e6b0beded727daff8d6dd07afb35e59d1fd571a9ad0570cce07d115cd77e9172da438e45a6837a6c092947ad2ae6105b3f8a285dc6dcd63ad7e6fafb0aa9bbb0f45233b51dd3e72b1f18d80d99f0d91eb37d134dae2a109b59bb685206a74ed51fcbab394f927705ce1c0dfda99bd2011b4b00c6b504c76163edf7f3ef21ebc2befde778ef3d6dad2eae72f45d798953df6f4547c2d6abc2f8c7eb179fe9ee00d8752a27fcecebcd80220274a801844bb3bcfec3f12daa6b965019ccdf49f762f04ff56b61cab8fe928efa8aa8708d9c374a58dc4e4ff9aa71f146a6353a5099def3fef577c07278b338d36711d4f84fb930727345800c45e1793b4999230d289810c9494888fc1ec443d53100045d199d39f52b5717b64e021093e0ef308dceaea505d60e50355a006db90ed3f283d52df0c1cacdb73d738bbdd680b0dbabcd2b1e01659d965cd5f5c24d88110b06527861652fd787eeabd0c6e93cdb57b18fe9186d248faecae28809e86b336e4089e201122240e9434a45db44b38fc3ab1ec057920d4b288ee0ef442b29cda36b2d301a9978ac795e511c38030cc0c73ed4f047c5962680f79d3a07b9bbac5b4f4a3948eb1e3a114523c563f48174a765006f13921f3f4c0eab843fe57ce388ecae151854a42fa8c597f489aaf6ae5dcef1447240a2c531f18f2e54c5c4fa5590f78c8e3388e7f84b729dc3eac8e4b40db47e74b6af437b9ec45cee5550147b1929af4a0529d01e7187cabbb6c0fad3d4d0c3b85eba42005122c53b97f44478cb17fdd163d7379e858d103479ef426c64ed9315ea8f4199d0fba9514c4b17630ea308400a754498d79bf5fa2892e0ca1d5f840bf3de59400aee317921a7f4d457321f51b343e318d8dc56fd91c37db2d669912d05e20918312cde37d2f7218cd685b3d03da5a0e2a7f12cd4509e9a56dfe3d5f30d4dbf1cc66a4a227c78258432cd4c1dd1627f1d5c2dd433d6274516975db60c2d2ef69ea77c0546ef4e346085d1c04fd4b4ca8b02138f7226c97300b7438469c06cbba55ae4c33d82c7d338db7f92dfc8842ca8107139f046bc938611ad160ab1f80d35a76242e18144b8e54f5b9e8f2a2ee5ba4e7e0ba87fa825f6265d79bd136e496d2960ad38f9eae75844012875f3c965a9e02cb2347aeb047a16c45aed77c80537c2d2f50d8b10d6f211bf8bfe592992d24c45544e5b6a6b6195021d82a653c6a400acb4d868001ef013d21c291e3cee53b1c28c8fd8d6177d008ef3a2c4624e98f92c139fe33cb4bc21e2c09d317f8141da47a1c76a85dbda2b8b6a0f9cbe728a3c1aa2224329a908f47f29b1c803a26d62611120c46582a148ea81e4d1cece283a7d82a51df2ae8d47c495de584947cdbe4b49f18aea78fb20870bb1b75834eb9d868f56c57b74cfcc25c0226539a3ee284410d8f6ae86f0b2d12334e0d887b9c9d445c3c02311770d11a0430ac5c7223a28e9bc7b1e86dc749bcb9042cca984b40e42bccb6e6f949208d7a80539edf8f46f67ff01457e2c29ed568a5b8a831da726f5cf17dab6e8237db442e6046c4ea1e99c26e53951594b71069d5ed356ab2fb76b0a334b589db848b0875741b3be2fd531c896601561b1d05774024aa768e761a3e9d40875f2ce1ea3ed2c2eb713f128b430581889e1265498b076d96ce881a309f04ff97f334210c40513a81b0c64a2560b93a11be385d7b67db0c9c44bbdfa55dc897e59af06a884d29b8403e24d5cf9d791e8b7f058994b643cf05ee1e0c96ebc62b165cda14a9893c96affb9d1161603f17a4d950f8b1fe2cc39bfc56bde0e37b0f53b90881c281999c9adfee7f0a40d2327281b3b374ec9b3360a927b386c176e69d83c26513add180bafd4ce6dbf594fec90b409d720c4aa0432767e10ea8068ddae410e2cd4108935c46c1674da1bca4179b0c9afb7e944001f61dc960f2df5ccb41875471afe8cb708242c309687012b902ad0af0e63f14a0ec682a6fad0227861c7ad257665ece26f7008505a57039b234cc517d768d2f5a2ea7c1b0d06cb2111bdd2a336d87f3dd462c9f51d13398d7c7623fcfc981a3d95b4f1b6b3c2f0380f61280f78f167bd10e052621136166ecab9f01b4efec2a1855cf8ff2f1ef1400b21d671b925fcbdb0ef0656bca2fda74be006895740b1d0a6fd5e551826dfd4a8ec5796c02533adf0462fc8bb9dfdfe27c97324ec3776c4ffbd6ee9474e5b2626f930e7a47b4f18c334b96c591e530fb10a534d64f00985d4dfca93c8d8399727c2703fe4722138213e862d143c7bc959b61298e5c1c2be57bfaa400dd98fcb3504ece2a8e4f3d08b32a74ac53134abce3d69b4cb83b9020e7df11437c7c28f0b68cc42a9034910248d40215b3e24611c18fbd39ee9403345f465088caa455cd078cf8bb30db5259686d38a5a549aed536429e35374c7631a4cc827350ac24e6fc0e7e8c355eed6c0216d4cbcacf574059d0c837cb2f21ef684a6b0a5141e28c26434a5997a34ae57a55b04ccfb7b506ff8ea0af40271d2a9c26a91405d235fbed1a8a8298e751389201f45840cb1936976c598a2b1933390aacbc07ba7b120a36f1eb52632395322f0ba9abee5b01b08ca7b2ecfcec006a0f363578ea53ed4b70e43c14d3162e25160a40498ad98196b17cccd00982560f2692aba0fdb1d93aa9adadec860212d67be40aa5642a85565857408a4ff80d9ad801dc32d6696df23868b2fbaeea10b3e4270412e45b12fdc123c4d6636cfa81784fef670f4839bd192e6d30e16c47c4853647f8a23a8a32d5e03e5e642b8e1152f4463064ef017e23504be5ab9367fdebf5d950b171902b504c8af6eb8b95240748369b1516bb96c94e0c18b7dfbfe4a23115c7305189dc2a30fa8f3d2ce2ee683a521406031f01c8911829f554aaf653a8a1f7c23ef3ee88d7e76d347e3cb2607458899087b27a5b9681c722230a91771bf1bc10a9bfca9a37901320c20c9b9f01a014da6e63d637d2aebe1152834b6a4c165c7e811e72c183a48928430ca5580685563f63536e12e685c9a5ff19ca8232e590c93f74b18051efe51366846362d7f1a4ad3eb6ba737b1eef448e2fba9d22b8b33ad7e38568122e201c9cf65ad6dad2b7376b7795d7d9bbe2083d29b177af9fe31b43412dbf90363b7c4bc4d66416ba419bbd265ef4b6d1b87b714b43617af7d9fccb3873a8259b428cfe4beb455e7c29866054480a2d09d1c1ce668be75cde8608e7ce7449e1f67062b39b0ec8d74b55141e160e7deb57c8fa49592b902633f1ad70f64e4a95d0a68f9a71bb8099e42d562c44b1b4ee22f4b713436db82d5016a111614016d6744b729aca9934422999e4132a5640fc04cb72b80132526343a551dcf74b3a8c5b1ebb7c7ed1a6af3a301b062e7868406714e2c7729e008d7e1348b23081298910669b91a26c2050e85b8d7afed4e00ccb268dbddc8fe86136ddf10fe919ecb663b40fbf34e0499633a89de7a082b164fddedc77539505c7ef0d28b23c053ed42b250de38a5162f251875f43c453fd14c24b3a0ac00a94489ae21d186ca2c594813448792aef010fdc6bcced4165d9445c504f1cf65575352fcf807db8a4ac9fa1f5f2eb46b67391805c2b078624cc56dd8067865a58d17ebe39e7a2048e08e91fa27115f46f454a019b18af4d7caf39602190df7106d80a066e52b8f008733665dc3a3875e5513b732a4075967312164fe7f9b99fb2a6dcde885048559695e0942d8e7978f374e79fec7f808a04ff1cf73e1da01782c7fffbe36deb9d7a6303ab80801b7e91942fa8a6880ce89ce148c8f043adffbc85b30d6d53a077a70eec0bd5f99d9cf0dff79b0db26a9ff404b24f9cb6570710bff8186ac293c9f9894159ec185780b243f8402003070be36600834683a6600ae6e9d57a6ad81ba8529b4ca4d0de92fbccfe3e9937071932449a44c323f0c590c880c32f8d6a49e3a9a6aaa7f4f6e754f6e15857b96f7a42f9bbaf1591146a729a9a5297c86cff3f43c3bb3345bc3201ded66b3d96c360f92429c6474157fedaa926b70af926dd48d3f25749727414fb7c73d5dbe72941fa1305df8897acd9edc064efcb0eb9fdb891ef454552795a1a323ee8f5d1f53515dd59d9d0f2ae3f694f228dc8a8bd9935dd997b5b4d94a3682bd5c9e6767b31126c245d13a88cca07ccaa7681d210e74d04491148a1eade9fe668ad1ac2a2c1b4dfbda7573cf8dbe3e5843184d3b3bf7fd4ea5daf7ad0eac13d4be3adbbfbedd81ed018db1bf796db48912c5ae2e2a63f1ca9e381fa8a93ed763f583c505d9f5b9d5e5689bd8bd2c20dbdf1be98b1776205b0bd504220262e5ab5a6dd5d59e506d6be9c360af30bcddd5a52ff5e8f2a53b96807dfc1c0e87f32187138a5a2221a21ad1907a72f97a434d44abb334a27c1bca021628cabf7ea80995e95ea4ba8968424d6a0977319ad7a3f902e188e4eddc7befad3684fe61695259e78da3b76ef377a57803e74532b60daffdd1be478635b12ad9196d683b7bad6f9e46e594a60e5bf4b9346fc041c626c9e056d8fe9b234fc4b6bf8863726b01a439b453fe2b7db720928d660ebb0376dfd079d0833eaff21e941bba0fbf7b4b01d1dfd9be4f3e11a2886df3b26a88000429ee902b64d719bc0fbf2bbdbfa579635f4d12df3e87d4ddee76b7bb1d49d4244efe196a4ddabcb1c3e768ce8f6410dfe6b7a57f47e2bc0dfacbb7a1e5595ec625654de2e819ad675a74f72c7e5f2c4dce6f9ecb0ff87c7e2ec7e0fbf3f7fd5b78b0f31c01df3702be3f4fa386a5280863a7bf85a759029fbffa86cf677d03f99753e22063771a0719a0277ff328a5c96dcfd73c83e8ef7b9681d45c2d81fcc7bfda54d1b4963ccfd59247ffa84ddf9dff4a7304fbf32c83dd5f9ec1ecfe566087f683c0b5bba3cd1d5df87d0e3bd4e6f81db0fb4bd1293f7edd294fa37e658a36bd7b7fd7fea4b203bebfa7e3f85e8a82308eef6307381ba4ff32107ee85f5bf4e1d32c81cdeefe96a1cfa57963e7b7b946e84171dca239daa228fedb13cb8b0fd6d0577b2ed39cd77ae5aaedb644113d8e3d91294f41a4a7f3b1c1d3da060e95857ef39dbe2154b30c211d3e0d9b671041e0dbdd872820224214353bfcfb1c6deab039f6419e8fa8e22920cfe7a98a364bdbbe98a243daf4c88ed65ed6e28fde4b130719fbfee639a507b20c7577fa863b83e8437b2d58c35ba27c6886cf011db6e71aa4ee397fbf2c595e972d37ba12078b2eff96332def1906fb39648a7ff2b93447a0a965d1335ad3d8e6e6458d838c1da2fc0625147a1a96548e3b548a7e2c7d74d56ea1f4110719db03be45ff993a9c7bf3a3d2bcb137ef5906d0168920e05ba4cd11f4b0fd4be5cabb94efbaf4ed79e34837324c197b73e489d7a64794a889b1e99127ce7d599e378e2525adf18225dd2e65a9dc4164a6d4ff3b56be72f7f365e67cf836447aec18d2206d7a1f6d8e1eadcddf9b17f5d56669b3a97906ec846d43aecbd225186a3bf4cf09f5061406e80682c200dd4243f84954849b5a53888a88899aa0e2088cbe80d486911ec1816ddbcf0f5e97c75eaf5d43326bc25018ed73decbcbaaa5fce5d3d47dcf9e48599370e82f3f87fe52efd841ada9d35aeb904c7befdac461b4f3733e8362695624f60ddd8b23da48068d8d5f826da774c7cc22b1699ea1ce60778fc3688bcfd117482dddd692d1bffb1bbaaf43f60ddd8b657781d421bbd3b7554b75c8c64f1839b35aaa577569ee4adff0f1cbd2898caabbaa315449c9d1ea0bdc8c9b0267e3ace0661dcec659c1cd389badeb4061745d26414b6ce8bc3fa88c7d96f2cf504b8768f664faea792ea2d68da7facb959696cf11e357f40ed3c7f816d3c7f81d2ea01b95e17c7d90151c040695b1ff66e8070ff1b01da67b73aceeee4eb168826073f405d202fa725de0a6fa970657758bb82b973759d08d732969caf365ed20b2a3e5f5ef58f9f2cdd07973a1f4313e87cbbba077acbccbc770f91d2d5f32b1306da4bbe557de0c9d578c24fb332dafdf661a68eadf5492ee9b9ea65cca9677f91c2b6f5a799795dfa1bfe5692a74b3a7189a743fc6d392265d4dc2517ad3e770f9187a47f92e6fd23b88cc94eff23bf4979e92acc6d1f2fa73b4cce8cfb1f2a5d6a1c389906e944f034d95da65da5d2b7b2a7394e56b967f9be9f59b6e73e163bce930176268a7b98c45a5729a49ab4a5d72d1d696a5e8b4a7b22c3569a6d4c1f2e50997046ed683aa056ed6838a9b398a5b39cccd9a4061702e519030fc141ac24df6143a57365112a12144352218ac4437b0895a2221f5e461dd742f47559a5dff02a931e1db93fe916ccb62a3adc578b97b311763f8e665e9af2c1d3aeacb9aaaaeb1cada51be7e9aaab58665d69a1ffcca9bf5f57a45d759ac36938245df576d6b1d32dd7c8bb156b3926668b04680c081108490854a95d2317bd2ba96af4115fb045bb35f58db8ab5b5ce7e616db6e6288e865bd92ffcc4f1b0b6d695f7bc3bf0f013f70547b3e4f6e0beb82bce664f97078ee60ab1e4aa74e80621d775c16551134b1772d9eb82cb0ab91c656d0e539f9b59d375819f382bbc0bb96c195ad11730acf0d3edc14df67455d6e428fbf5b995a3ac0ef940617a0059c1da4240702bd00d5f31721c74eb3a2c7a3787baa4a950120e1ebb8ea885af18f1eeb609bae12b46719ba09b97a2167d0175e9016f77fa0281711921be62b45a14e3cb9f89f1e5fb972ebcd63a56de85d7c1f2315ea3d1e96688b6cd502de4213f618806d40474ab31219aeabf810e78fbfea02ff53b30eecb0287a97fbde53f93fc6b28bfe56bd0ff0f5ad738ca6ff999d2df5feb78a79b6ebacb074059b23c00ca15cf35f4979a64af9e295f47cb979aa66826ddd04ff74ccbd399f2b5d641e4be0e962fffea19fd2d5ac7caeba7514db0399b4b795d2f92fddb2a4b92d537b81bc784b29070b43c4b8b26f9b73c4db1946f7afde59366f4973756fe75e8283d11d20dfd34d094fe1cdd6d8827b4a00531952ae5f22c00f0523441e8846d31526b2a5f0433b194ca9721e3b6dc268ca29808492d895afb6f8c3f78fd2695fde05bde7c4d4346694d2229469a62d15adf9735c5d0d49a5cd0ad96a7fc3a63860c19ba53fa20746e4235b010ebed836ee5836e1f52bd3f0bcbbfd6c1a249feaf439fa5adb12e5da3cd5174320af115e3669b5755634c6ec6cdc4dbba432e8b03dd404deaa97cfd6658965c6da47be55b565adbd7b1a26933fa75b4680bb3a6aaad2c6567170bd9658152341572c1767dec84d10c3dd662d42dbff239585eeb1dfa597e453f8b0edd58bec56bc2c8f23a747634cb986fe80fbd383a147295282a28a12e4331f186101663ce32d8774db22b1b845d95e59d651c9e2a1f2c45b0986cc6725944406a8ccdf88a5b598ace3c03b74933d81b4440f24c65e24412869085940e1d52d4e6302fabcc362255e86007a74a95d29a94e35fbfd63bca7f3047f9ff3494ff34e3a029cd52be0eb9ac4986908d54cfeaa39e59d46a8de67883e5432f7b62f9fa2b654b19725199cba22f307bba35d65484c65c20b4144a82c6dc1fe6352f6bc63643aecb92c12afd65b1e8dbb2a62cce10eb2cc50845425c0fb91449c9f2fea173874e7b22d977791d52f5432c7b22594dc2f1dff233ff2d6fbf45eb2062f5cccabb681d2dbfe2f23a56fe35c93e4dfdeb905279eb9d7559342bdff234ea9d62342f2b00229835b1a80cdea7961b13c12e8cb5d252de56c64c18e966d1242f7394cfa2771099597996dfd1f2e5e760f9ffd73b569ee5698a84a3e5cbafa145876abb7e0d2b3ae40ad196308a42376bb24746f3b2442c7bfa13081486f0820752b0a5ea632c4633740bb96e5adf01c88071985084a4b56135e6d648b1eb0f00d346dfe5eb37432ed9480018be62f4b62982ddd8569b37b6f5920bb9ca2f817e8e2e43b290cbbcb17190c111ef55d1ac6ae95e20aa30e4b2a7d0cd9aaa3de9f7bc710c855ce59ba159d6a60e9b460ddd54ab33d4252aecbaee1110e22bc6ba4d510b2c452a11cd1523b7375096174835d5d757c8063a30ee4bc4e9b2ac18f5b7fc29937094afbf86f2b526f9b3bc0ea91af4b7e8f2597ea67c16ad8388bf8e952fdff58c7e9667d13afef5eb90baac5ad2252d4b9ad2b7554b178812c6cb5242f7caff9ba2aec4dbcb99952f35b5a699ff1cac498bd1b76f5304b379897757e24d334ec2688a60bb3e09c7ca976fc3ca979bb7e1ffad69f334dbc0b56d7f5663aebeac5a52526336bac6584d727d81d4520b09e3a7b91bc7a496f01146ee4dceb6eb908df5976b70efe51aa41b2b4f034dad7c8e90154990a096852ca4fe45307b0a2d218a858ec8425004f922202721cf7017b846ab3159d0a80c3d52eb421acd895a57c334328b5af73d7c2a7cdc0449a3d9565f5872449c51999a7cb3a70ab3a6983d71bebec8b2a7fcb097e8dab07c83dd6e62bed518cc95a4ec081364ace528728acfcb9ec826482a60b0eb3b8ca4d1979b84711c9fc319b507f3360ddc140830806d6f53205821886d92b470c40515689c90caa0c36015566115b6eb7f66f6e4d1190c6aaadfd961d78fe8c3ae9fd967966fb47c7315f15622cd4f1f306f35bac0401d3675878b9804715679d4956371762b8fba12678e2265e2ac0a3fe52edc5493614d06a130ac9d023206bb3ed9a3455f60204fb2474d082ae381d1a6323eea293f10218c759be47992670b0b61b4db244f90765f9920329aa4cd7e14affcf2887838c3ea0b466ac9bf7b0eadc674f6541339ac73a51ac51a1e350d85e11a43fa5e87fdcdc0332eaedeb9724dc24fb7e392462d0501b2f3a651f8808a0e0761ac7bd43b88f87bbe861de277fef334df20c992b4813ca096c7f27cd8f167f28fef7a46fcce8bb5d126dac425b5555723494f67a4596c6c8be101b5e4d1587ee52e722dbf1ce5a91c2677e1277288d79777905fb98b5c236149d017d251e4116a0337d57782875b2f0752d925767d527c15d94888411d82df040901d55094380b025a6599582375df791d52a44e9370707efc19ce8fdffda87510e9f4ccf81dad43ec9ea66ad0919fa3499dbea183a7f32c492d756f6699671b24e922e5c89f437cd2664d98fa15bd7ad620ba37eb6a8833c4dc10e72587f0139945989804f93a42dac08924e849dc42ac89aecbb9a84caea7fc20562d09e39b62ad24e5787701183d10219535e9467ed2cc2f00082152d0a4b2d641c43462e5a9fc39549a68a57850000d2c350295265aa9ac7da52fa0d2442b45ade903d6f483cf6fd29b026860298e5e8154d6247a24e9f5e0a93e32af074f2526711832c796a02faf8328aad895ccaf3aa4baea0bf5b11423086ae5570b244db4429c913447552198a46526fc5479b86955856459e5e1a75c050ac90492265a21cef22d6f5145b66530284ce6225f0164027a22b3404940633a47913287a9ef9b77f9205f28d82411767d9558139788b69aadc6d0cf546419a904e92a6f9661255c59e6a8ba7225fc242ae1a6fa35cb7029b2441f5e5442ac2b47893f7e1089f861d79b6ba00bae351cf90569ab35e4177ef27ac0b5a6078c752ee22f6bca4c7c9124a58a44ad21bf206d95e5037da93f284cfd810825767d2a03395cc3ddfccaafd7e75ec1ca2f23b15d8638fc98f093c8e3654fe2ca9a2a0843b56fd6555967f4a5660b829f5ffcfce293b41a99452dad68244d743db1e4084f5c5d71c5b954ec7c8ef1b3de917ffc8ede416426ff38b2a6aa49568f578b6710f807a3f7b2a60aabb2d81176754ebc7f3506c28835394b524be07b6f923297e78de3193e8d4a22a9a75a434ab1eb9347284a74914eecfa248ccad8c04fe2cae528fc95879b3027ba441edb45d7bdb686b92fb416735fd759994c66b34c9665d66659ad467e98cb324ff4a11459f4a5722e9682dae06418c495b812571c968d6442dea2208938795aab495e5be269f24632711f8c1e696bb15119da44f5f07b4035a01688b53bef79a7a4ee6be07cfe1a464f494a754a927dcfd3949726a7f3fe36da791ad596241cf93d9f23bf47ef2032d379f177909a643f3fe7f3e710ffa3777434a9e33cc97244cecab6c59b8a34392d92a9de206d2015c9227d9036f289d1246da4adc6d02852f0daf5492635a6ca406bc9e400d9f5495545f3edcb64b471581c7eefcdec97e36ee873114779b908c984a442aec2659ed6b9d6799824730def4911873f745f946ba390ca64f2a4828292b0eb835a54c66e92d39a506dd336a1da9e0548080e0308bb3e8dc544d86b9ba09a5ddf0445b1eb9ba021d0bc7375b588b5b7f26836ff8940ea49ac5951c8ae2ffea0a82c12c1a2323ff8c93b578eb2de106e2299384c7d5cd2ecfa62ad062ac1f6c82fdc549fac814cb06bcda4edfb53e628dcc461ea9f4d4859f7211225b915f1bb44f172d692276e429e24eb729bb05b51e154f2abc2466e9bf995e2aaa9c1b0f1db667ecd70df8dbcfc556b48528ad1e63ccf6f03779be2aa53c118835d5010d0694f9d0a4690aca626834fa3922ed2e5aa435cb988e8aa43aaa97e919711189232d79ad8b8020a42ba72ad561b6b4532f8fe342a0c9cb8aa31662eb22ba875027acab520a8cc7d19ec2ab60008a3d5648dcce2fb5c84b6ebe79a3d89b9e6ca35d155dbf5ddb95bfaa63586137b783f82c4366c57476528284c1693d8206d75735996ff5a71b5120202b23700a2a927d2654d367b123d0cf2e10205b12b91ba5aad4a4e2cedc889654dd95c2e9b47dab89c9f46bd29efcc327baa599665b948ddd025270d6b72ff5b57f634534d5e57f5de7b8dc82fbaec296b97cbcbbcaf4bb6c16dfc3144d1e56913146483b452ea9c68eab0b106b53010464e675b364928726de48879e48819bf49ae56ab95e8d74f1fb00abe0820040710829e5f306cbcdb245dbbbe00bc73654f9e3f79f44853030531f221d6ec8904d1904dc8d8d8bd49da06107a49ba5c981357e229b2c4d6f544d7489c6517d1b5b7bf2922c1fb4a8fbec8c023e9067821f402749b009974233f0d34953f47e581144e108394f8e001420c3b77f5ec32b86a07d2654fa2172f110cd8e6ec10136ba4ad05580b486a0caea48db49136c73e60d513cb9135d9ec2203ab93a004d837de39087a8837a5bbba18b4baa8d1a87a507b040df203bbaf5631d8f5cd166f39b61c064107c2576e85cf3015f6e5b22362416248326cb06d521b6c1fa096ea96c1dd3ce0fbae6aa9fa382febaa569bcd6cb3996dac7d937b50741ebeb235b56457d5d2ecccca46b04741f914944ff9258c75afbccaef50f99447297710d9b1a2751099597915adc3ccc0ddfc0c05d839d02c7020f746d7a067a090296a4d31ccf8418c6691a2334e07815292fc37ff9f523eca9b5cace6442b564b14cdd54a1c2baff229256926e5513ee551fe4b92eb99154dda907270a4004b924af91c2abfa277104979154ddabccad3548e941c4ed0032452299ab4d137527ee5698aa650f45b936f1e6b3ba49636da03be5d5b97db5b4a795538956d72ed6c46c158024817460479ae346f6c2ee4a183eefea68c8d379bcd66b3d93c2e39efc5a7517df36dfe6edeb3799128e4092fb8a12876f336a8e0cdc6ebc4cfef95e2831d6fe340bce5450051ddb6a02f6e859b1c88a39238cab5834161b870205748b2d15edb84c2214e91b719e2c4ee7635849f2c0ff796a8d851160a0ac3c5be34bbe6bc6fcc9eb818b76bca5fd8756d1ab792a5945ccd9a9c8e1bcf2b3b155cda88f2299ea5b1b520ccaa0ae29e9ef69717a9a57b4faf236377b3ae9b75dd5f9a284657d1d1f369e16fe8efc99f844f7ad1e841de73a057e2df888ff18fceb3c5120204041f97e68d8d35e9fbcd77a4efed73165bec79a44f93526e6cee3b6ddea061399bef37da0471b829fdbdee6d40f994b761e555dec31863ac4956933a8d03e5535254f406ff579adde7f06df8588b82d0f14a103f183ea84541183dfd9da75902e1637d43f856df307abc294d2f3c197d7e90487c3c3af13cd62649240abd27f437743725bdde63ee5eef378f43f73df76e3c4e9b9edb826ee13d2d3c8d7acb1634e829fdc9b203a3e7bee7927fb9ff7cdedacfc927fac22fe53b3f95ff1efc5436b8eb1e45c5fea6047d285f1fec424fed69d4c2c948140a51de861410e553e9369fcf9ebee1f3dc479b3ad0b07606113fcd587c8e7bbc29cd1be7c9532b0a3fd2dfd39e52be05d189e80bf5d7c2e73c1185ceaacdd22ef9a798df73f0e7ef3c4fdf80e90697a60e1b6fca9915148c4bd09b9bf7bc9452e551ca95df6c66543ee5bd12878af67039b3a251de7ebe1fdf7229aff233292a289bfc1f07fafc19f7a714dfd311c7fc1c30cb00daa2a676881146d3d6d8d355adacafb6595576e579ae9575d76a1504775671cf7b9e271d6b935aaab75adabce9350954261fd0713bf7dd346f9e46adaa6aab4caaaaaaaa0adb99a55925dc8a5b71dfc6292b2b662b47d99a993d79cd0a3f7917352b5be328ef078539f70f3544ecfa3eb040e455819bc79b0dde941ec66f836eac3b0f3fb729eddb075daf4a2354ec6ce32a7ae3deaa7121558c6655b5ec6c367bd9d3e86129a33882a4bb1c465f92a02f759bee128d429a61a82e2a5339fc3d7843d073e7394ddd5ba7e2689b5badb4d62928efbfc9359c085cf8b689d1b4ab5dbbef7bcb51ceade83d78416e9c11765fca8ab7f12ebc86edcd615c0925fc6479b8c9de1ce559282c0f0bb32b7bb23ab0371b855da2b431fb4a32da2b46944f79b3aa686ae9aa928cdc36ed2bd7b84183c2d9b89a35d919b7a201344524f571ed79e3381afd974a3366c490c0a73b3fe7b4a64a91ec2bae6c30e23745559e61655f6d44e7439a1af3e973e49c32b6c9396750d8aac69cf644393e921845edb946f36b6a6948cd69f18c8ddb6c8dada6c614ba906178d1977a3112a3dd35ecafd25aa9b7d017ffafc4a1b43f8ee383c3c23f832f361235a031de0d6a1c8599d4eca0b45ab1561f57a2267f1b13db17bbfec7e18ff3f04b08804e0035e2bfe96dbc048ff34421e8c87d00720def03208010df3c5ba332373fe7b362e7cd202221d688618837981b7db9dbc4b7027cdff7ad9c546601a7a7323da84c0a1ce53f9262446264346414b22b103a7e2fcac4976804565fe83caec16872ce24b53413653e382c4ecb9e6ae8f83d0603dff00d068edfba30028b2c52e6af70bdd5bf6fa132de8b2a6bca353eed63697325a6d5d2afaca9be16eb77727cb0ea0b5fb369309a9c93736298c3883b5053fd3f9fd5125538db6a8c89619b498da92da931f83d16adc67cd861fc3f7fc0f77ddf77c5e8f9ce9ba2eabbb69273725a6349537777beabfdc6445cb97f1ccebdfedd6e631510e298a37e878fd9d38a145e082bb72741acfb04e41a9b4f803d4078af183fbfa3f39edf41fee7cdaf9911aed8a8ccf7f557bca027ce17c3397f87e73bbfe3f36426e1e8781ef4ac83c84ce7c9cff17952ebf0db1250b8822bd5d1351c60092d8aa4688a084d915edad87b500601214662acdb5cb9395b1b8246749e461dcb0df87f7fdfa5e057a0277cb33e05ea55a06e2bc18d045b455f56e229ee406148405faa485363441a2223478b5a34524baf05741b9758f3f5ebfe55fd95e6b4f96d2ff10d6b1305a48916dc741fbe36428cc4e86d53bc6198a3383e50d10ace517180c030ef65c835f0cb7053a19777830d08739e61658bcf394d8eedbcff5d9b6d7816b6efef6dd8fffed35f4bded3fcd9e8fed32df4c57b1d36cddff7e150daf87b4efcc05c43fc7ad6181f5466f369d7a2ca9e48fd1fcfb326d50fa931dc1bd1f977d953477358d6545363f2734ece994bce594b22b7bfe65d74ffcb9e68ea619ae3031319432dbab438a496f090d1c4b7d56dd7ff1fb8d842d0d38acd9a80a08f02fa2b4789b5152cace88a8d082ffd3e8d8a6ff8866f9cafd8c4152cacdc442e76fd8fbb1b8b3d0884df789f73c178bf7edff77ddf8310082510726240845d1f2331e26d724e1c068725ca1cc509c249c13639e70c9ec15f5125aa6ca2caa6b2715cb5545d738ae023c6eecdaf51893c8824a0a209a808043dbdca5198f62a1055bf1255dc8334501abec69edc0b6aaaef60ecfa353bbcaa0f5f63e39c9fc73939e766f3bf7abc84ed799da59f87bbbb791aa73a11539c14c5950450632eb8793a72740e0e533f0747ddf04a53554d6eb5c4a49666346bb2d1172fae87091e5a155b46e33c3447815432623c34576980bec438ca7790614f1b20010fbb3ef8dd10e760bc39187d7fe3e769ac3f6d3107863950999a738d1c5c45eaab23a3320cf0d046afd1b53f35db431bb1c673cb569b46f3786af5851ae6607ee0f779a1e7a1791e9aa776dfcaa8e9bea7e6c9c243f3d0ae87e6a97dfa032d1dc8818d7a34bfc1e8a965514b32cf67513b327e9b46f1840fdbdbf4074910629b2e1bf18b3807630e54c69e3c595453f52ca91aa0280f16940354c6c304fa52bf5ace03fbf6e6fd056e8ff9cbe8cbe9033df98c19042080c9549627279d8e6ce5ba06b1c428b31e9a87769fb39ac31df837cb50b706ec8d03945e00325a481c4e41a90c95c94eb63513c0e1bb5ac550ca18cbb7a603743c921da98cd126c3729d92a6ac27c39ef2c7785c9e1d50cfab96b2feac3cd829c351539de74acfeda3faece0aa311f1ebcb4030f1835ebc2363d1e97e65c307ab44e49539edb4745656aa7f4d05e63e7c7375db672998354f83d327bf268f7c17bc8fc872c88cc579f4c26bbd7b68408c061506ac90331dd9973c1c8596b2d28044b8fcdb3c453f364e1c182be7896c08dcfe9743a32727014a76f382e8d107fe5a5c4076f38ca67e030f5e9cb11f4a5be57fa90af88114f8da3871d4f714ad24ce7c71fb50ece77b48e7b85121cc1be0e295074b747c1a1b0ebfb16f485fa371ce55270981c8cdc36ddc6d55ce3c668330d35d5d1ce299de5ad21562eaba9142665d654df49996f31dbb586736f7a92d45275f741e633acc4e89e25bbd2649e2c3c341cac3c300f4ce681c93c3019ae315d9600cd625f0fcc9e3c5bc4b6171e19181e9aa78585b8cc7a973bc17aaa02a42de608d39821061a48f0bda2c5dd554261e50c5389bed4b7808c8d000a030037d5b7c2088c3dafeb79e5e0012f79363d184d3f3db684bfe88b4341615b071e05366234fddc1c750fe4803de04c54e04529ad547e18638c31c6188f5638ba94e7d575e716def2025f70c36d6ae007c3103331da6d96300fc68f664f34e5efb9e795c3921f8152190aa332d5bdf02d76c5c21d1bb171ae84565ff0bc3c6f1c795ef6e4a77d9d9e97119b9adab04a9f2959f9cdcf999f36b5d19ed78fd103f318a9a58e359ad4e6390283c233c59dcd665d67b5798fb0fdb1d84275bdc83987e3a521a301df1bf09f21061a333061578096ea23c1a59f9ec3cbe62f6a7325f445092f7b722bbc0b8fb916afbd8391849ffae979798c989e970789f7a027cf129ed7e9f1f3c4daf3a22f5807a3e9af9a2135a69bf9cc67d8fa8fce574137c378e6a896c37c9830d2e1cbc40b779dceb36e565d173f01d73e4c7c5ead4f8b7c8284e599cf3e56cc2aec63859fea13e22a83f1846a8b3e5098fa5600828b4f0c3ead27368c9aeadbf8bc3e463eb0cfebf3fac0c2aeb26eadd5558bf05355825595f053b6c24d7946432356222aab16515b97cb5d3441858a84c1a84ccdf909b9f629e2d3fadc5ceb3e457c5ab5d5aa913db8cb5157e719f9c49dd58e43c2c69fd9e708f494c1b87d66b7d1dd2ff7995199cc8168b32d8b7d40472dd55c8625a5e1873a0c35e946e8aa300c43ed59bbca943f7cd34f100b745a533db162e6a9b2157ecaaa4e93461c063cc91d3e45903d280f4230515b56ccec14288e028df11c55590e1323af5059c0454a8d416de5acd2d5d60b77d1e92efcf429c25f8e32e2a84e5796c3902a6bfa14e127b207f2c532f2897d96e8c161fb03c547079f282a0b76fd7aab0e294575f83347fcfb9f0f139dde9ca7a35dee300c3fad1a83f5e7553bfd31f211b2ebe7e5c2adfc49daf5568ec2358721b5f0d3870937d5f7562e7840782b520b92763bd15a6b3f4cf82987e1a67cab39ca1de53a87e127f2095cfbb43afb293f4778c24fd43f5b20e1f3840f0ceed3a8aa5aaa0f526d423a5a8b4bbaefbdd7f1f7beb9fa33fbcc3e33cfd3245a4bf54d3a8413a836574b2024f9b6c16aead81b2319b1265734f64d52e5d772201d392e87975392354bdaac4905dac1e384eea95c565cb38d8ea62ebde1e7a7dda009ed91f17e48db87f6f9882f91c68154323b2cc594583a143e929ca93b85874fda3a15642d1363f79a79835d189259d895c4c2ae4f82415f00f1e0e70f18a6ea2cc755ef447fd0b3e7951fcd6a183a9246fcdcf1f3fabc3e2f2a9349aefbcedbce0f4de5ee04adfbcc3e33fc35881f7e48d6f39dcfe1017de77790eff91c9d0f7d48ef00c1484db29eaf01a449561b11eabc7defbfafcc11fef8b6c411fef85ee6c8ffb1a1d261a0d263a4cb3c5afcf03fe58e8e26618d237cf149e2cfe4e75c2c2c09cbb35c0b69b4ac84369bd16a9ed1382befe4b0c49aed0613958835e24b747d5eb0b19a22d8e28cbed43a0aaf37128944f9969b882a2edff64d556328a93a39c936542a52f5794d6157d0157648753b3b1a8d9f993579915a72d592d7031735fa8428ecfa30973641b1bbbdcbb6c2dc482dd55845524bdfe79b3d7d66de585fb5c8cb511e4da619bd3fc9357007ea8dbe9cb59f9747f3f1c10776b95f49c936baddfdca67f699e51a589ba0237bc7ee3408866d7849f72686d9530683ceeee54012e642c2402d7ba229504d8bc22c099b0134534b7525c33fb359f79d0ac61a40352d3a8b815a17a8b1a66aca35c0070110968e7c3ccf5b95aced44ff0f46c23e2fd8e745c23e2f12664f9f2350537d2cbc2d60fbe3c5cc55047f5ae15fefd3facc3eb320f6064e248d5c52633a158846e5112155355245c359654f248da6a2a968f6846b351aaed170187eae305ca3d58ec3358b6bb5cd75608601c346fc12826054c68edeea08bb7ebe796792cc8513de4a0a24b15c3bb2391f7e8ef1f33a9ad3e48aa4f140988c1f24002540b562f77eefbd9746f3562ad815e462d7f7c69063807befbd1c01565e10de595fa88f9b184d6fb5bd15bd51994caa4815f7dc766a80ee0d906dd49a6100b7996f2fdca8b8f9bed9b58fdce65a9e5499b9b6690450ca356f95f312cea640f8c104040b3f47fe10d46dd720187d413276fa53f311c2bdf9691dc000997b2f6bf8342a8d169634c4f2deaeebba985348034fa3827474ebbab11fb0d71563e9f34e566edde52dcac4e52e84ba11eb39f78d966823b2159d46631fdebb92116d44aba5aaa496cace4f60b5278a6294a4963a3d9af94a554b43183be388664d5c698e948c94d451adc6789024a3d9122a4377163b08dec97922b2799e9facfc6475727ade38aa4ece204e5627b6e61ad6e607e820bad55215313909a2c6ac6accc979e2a3067baab5b32397fbf9040cb6ab54466cd3db2e57e89ee8952395171d2d46a291c80b954864ab272b2bbb4a18e9a659cd48e5efc14b89cf799aee7bf052f95dae5a721f3b50d30b0630f3365d85825d1f64593d7a8d8a20e1acd552eb56b4cf9d2d608942f024b4e5a8c7a8e519f318798c98c7086e73748e4e47d5d5c63c46ce3647278f51c58e4ecec7a8e2b20cdf836ff30cdddf776ec36d4e20d69eb5e4a355c35380841abc1c8dce5b031254545454f00554c24dc9ed940c016f7fa3f354a9ecb9b9dffb7fb906e6317edba4355b825eda2e06baeddba0db6a5114e377e05aafb49f6bd8df949b7db2a232aea22f27ad7a22a4c67cda81d4920f27ce722cc498030e3e6a09482d69c729701161c6fd4436dbcdcb0b7cd7064b6e4063700e76e0729488e6ba0087bbf36c896c3344365b87d6a1d1444b462738ea717616f318bb6d8e4e3ae27721d7e8de0553107a1a9dac7c89912c89237ef43859e11ea38ffabef2466e8e64309ca33992d9f0bc931f9a3801829ea0e044087a1ab9aca93a8a060f76fd9395eb84888bbb916c24a3c9ae4ae53e72d118f160f4a24d5c4bcbc2b35ed775ddc84565aa297b3b7c3e72dd29c68e8acaa0767ddf819e46321595a1359afbb0eb0556419c9c6205dfbe1319cd9395aac670e3c9eaac31b4ccc186abc2f0f3a8c3b3a68e054a08c282144d11e1def40090bdc73cc64b730c75dbef4ad014621ea3ddf6c197975cc37b9761c3e55c837b51d569a759a1603447b23d92f598d16ade5987312f12b6fff77d170f6000b9c6fd01641b7573329c3a69454b84191534061b21092399a36a70983a928d4632e7b06f46ae99a3ba1dba1faece87ab23c1e8acd5e0a8ab042a6c3f6ddbcf2b9470f48566e559cbddcef33ccf334088cb13d5c836f282be8c6e7b89a34e76a03023299c90a000b9c6fd02bc30928d64aa4e363a57a39a20a3f3c788d583cc35fc64a5da6189a3bc07cd80f3204417bb3ee631fa3e5dbbfec845657c07fa92043d390f3f622938b27f58e26475729e04514bf804a329b28d5210c616828e56404744d05387664da7a33a4d3a50189db4510c0e10436344367b3ae961fba10a623b51c9b047e52a577d1dda92268eba585018ff26b67d996c67c2f6373b616c0fa62ff7d6ae920fee2ef7398c3f4915027c39eb5d8f91613d87911101efbd1836d772a0c7799e9f4cbcc0eb27132f3f9d093fb98072bae0a71837a1c4a0d8ca09416ff45c2fdcc40064f4255eafd14b23c2bff10ab5c31640eb0ba6cb46ef6320c20666c1c8bd2fc05f2135f2c3f32ebcf7440a2d8a6c7fe75cbfb41ba925d668d25a78017bfa610b626df7751cc771dca53213f6fc3cc00d1dc0c0d5e6ddde7df751b6496b648c87bb1a0395a9db5f1b7053fa3c90522f691040067da98f5740ad7dd9d7a8044408ab2f8bcad8af2ee402e689d9d926adc570e6333c511cb56901666cea047e4eae719f936dd4ceebecc51fcb711cc77d0003351d38c1bd7640637a4063bacf327f798e020135ddb6af603f1f4b8228a85af19edefebc8bbbd0bdf76f28e4ca1a64b813a0317ea2ee003cc468fa8bc6382f7ff9ebc4d12ed66a47f8f93a3717448db1b7d7cb5f5dac93e2e273535d6081b4c58ca99c7b5e68b4e0d3f71cd532865abc16477d2dbbfe00fcd4f5d03571d4a7c1240ece7af013e8609226bbbe578237b004b700ad006d601247816080337b02b900af0056816929348235b0b6053d896854c682b70d7a118235aee37e141b8d64f50517ecfa45d4d0c0c5d5a2c46bd716d017234667b1bdc9b2458785c9aecf5263d982a23c27cb12161bcb13762d5264d75709424fa2980a4ba565041597ca11383a7b12d1c08f896e30478d90388ce7a4347b52e1a844b41658a7c4a9ba411b821b7016823311046716ec02ac8133478d0e53c12efc74b500c1d9ae8ef2462dfc0432e1347b025fd6a43b55a70664c24f1d1a80ba53795ee7080d62db519d29284cfd4e1354f00026019c815d803551acebc05c5a2e426a8cf8428bca28e00b5554d8b7fbf785fe78b3d96ce8f76667ded9defc9d626f1ea46ea915af8cbe6c3e0447229a8aead25a10d128aa8596a800680cfe5c5a8e02b5286644e73b9d17c51c4573946b1595c3d43f41b970d65af7eff33c0f0c375e49100441f0fb4232fcc08a18eb363b304f1efffbf07f250e63ae9165c0c1e2e0f9e63d6bc0b34083056bb6498c9b31e3e85200b0d5980d57b3f1ac041cabac5468442dca4245b56bb524a289683218af16c944528868a3e9d20ac330746975e709b6369befdbfcf7750e6ebeee1ce2d2ea589bcdad3bbbb33bbbb313a95421cbb3a29b928d3e198d46a4b0855aa748c7d519d2394245e5a8ce0c3a3531005f336a6aa2db68355271484437d16d468b6c06d7817560a29b3d7560a25b27ba5d9a3d852db25a07d68179b5049674dbeffbbe0f0525fb8f9038ca0588c3b800d9758464d72fb24d15245454f6a4c2a2a6ea71b6a9a202b50982d906df4bd0a93581250e5dcdc62e2d17212e353018f15ff0330e9cea527e95b4c8eeec26b932fae2ef02c451770a0ae35fa970c10fb6f9a9744a6a7396000edee3b0799d75a6c1a6280bf52a7a3c3689d1bfe3f8e93671e86a76f737548560a7c69a2e46ba14d635a34b4bbb08093272744bac05492de1d6c8bd4b2b54d993caa8c21ab96a477f1556193ef8025fe04ded2fd4e028364332925d70141bc5c0516c141bc52eedd240f03de54dcd78d9d3a561f005bebe19e0a55d5a12cefb5cc2afac2008822d614b4bf68f11ba906100411004bf32a4294117c4aeabed3eeaca914ad4440406cd51222b388ce8f682d1ecce96d981edfaa27308477d61cb9ec2d39a7c382aa40959d6f472d4a7c31ebc0745853b5021a84c1876e70e55f4a5ba603455582aac516c068d2171a9a931df4dd5072b67ad0a0bc9e7d272a9a132dfabc8e0c85669b15c8a6c9721bbba1cb1ab0b122c7b9a6155582a2c7abfefc0eca9d3e9c0700b46d3a505009b0a4b8a5ddfa5a6c66ce07329524fa1cac5654875718527121723bb7e073ef820111a68aaf32aac5d3f54719ed2fae7296b2a54d9934b2b54852a97963db5c85c5a2d3297967f58773adf7bca9bf2f888ed96192e2d9756a7c69ec24a3d3e66940df05a64f6f4806af26f9175b25de94b17a3e2541fa2c70e5ef7e5bd1c8563577c7dbd5a94390c96719856850cd3c42a6034cc044cab42764bce8abe80415f9ad875480dae011882a5384474d512bed9912cb661f65ff6d4e990a51f52237bb7af893d141ff3ce9f24ff1c1ef2f39ecff1d11dfdaf19334433c6fede85a2708cc2d4ef783ee693ff7d4f961fef065114dffc2145c6fce6d7805cf8b1373fc6f9f0fd402a64f8c680806b108a9ca7f9b331fe57d25c637c9bfd576c4ed0d3af645e14bb3e67079c1ed09897a3c41a87a9cf811f9367a0033b72596ffc4aee45558d199f23fd4152cd4785ece6e2ed7860466461dc704ce6ad3018f465e50b37d962359e0f2b5f602bc43c203e0cc342886198a3b012a709c14f580b37552531fab284167e126920d6589312477d9f16a110451d7c4a76d55188e28bca884bd09328ce8eec7a850b7602c38410e39ca32de88d8305e70849d04a39501c596274c418e48727c60880a81255ae180c2643acb94cbcc41a4789b59adac7c430fcf442005fb5e2057d3980287a32cf721b7cc34d3c9567576c9b4f5db1d11770c586af80c15861524fb8c94a937af268dcb662e336f70ab77dbef671dae7e2bf1c023c223c166708ce29733d96c71982737e4fdf63394a947186f0935885e8b1c42a44218eba57639adfac1886e89c16e7e4f4a089dce66bc41ad199f80ddfc09e887c5f9f73b6383519063036052f288c14f5e44cea27a9276f526dab8f71208d0a6a1d1e3d7ede4b003ffe5a1005613471d0c1c8f642af0cc5ff4a2f6ddfe009ecec86f3c010a46367dfa927862227088511f1121e879e0cf6493370efbda76fa0b5c43ddd9ff820187a18fcd4b898b5e81287882d3e4e30460eab964a9573724ebad19c22f4a57e86d90eb662aba9b1d93ed8a11ddfff03b7b9e15fd50de7892fdb576c3098ed624d1480d3978d3d40280402793c1f51e571db4874424f3ecec3bfb282824ddfdf630e440939ac5ae29c9c963555abc5591251254ac1e31c8563ba64a12ca2eadaafa9a9f9d8ab6005848b3dcec337461823464b4bae815f54dd6acc06fc3f0afa52ff4f2f85f9311744993d89605cf1b197e265f585fa587c9a9d73da93e879e35845dfa6781345d6c73cbfe3f3b15d9104a9d90cd814494b8bedd91fbc57783afff91d9e55e73f9fc3f3e4d3a89f8fe759e47b9c456b5390a2960aa81ea8242c344949cd3286060000000000c3140000280c0a86c30242a9500f44513e14000e74a0566e581d09c420896118650c420620030006604000044666140000897cdef6fe2ace80de9c648b10f7087c3ad48421003d86c8f51cbc9000ee59ee57351d3b74a259041703b192b9445f4bce7355b4d067d5b0ce0f69bb66ae879c1ad6a26cb17e62693b1e21a557c3dafcd5334fc5aa559ff522384ad2c9df59b309ce166378deab68805e58305a7bb13e6dddafb19d978c3b1a8aa519609e0f9c5f312243eaa528e5f97353e80dc217ae68a03ea37301733ccad0ee048c0dfbc9e6307dd17591816e69aebf1632debc7a602e5e80dc74006ae83fc8d4bea72b1b5ed470d9ebf445c2ba57d04d4cfe1f0b03844700dca40f8bc4133ab31887fffbed2549170191444e4bd19fff0bf94f61fbe209db7ca424d39eca56f807db025050e0f4e1ca098f0c2a4e6e0864b55141333d9e46c88ec78b6dceb803a733d3d84d3c5dc24d4dbcb38f32c49db8a5be991a0054fcd104cd419eb4d04c36fb2902d1bcfbf025d401ed53942dc09569dfe351dce33ca703df72f2d1031e267a7f8f176775baeaab1615ec8f773244c78cae25b699273379a4d8433e8ddbec936a28ab34b4012f04384c7e210d5835b46823f534c070b40db3b944a519616006107a68a47285bc70f90670c5cfbdd43b08120d184ac6251e831943b730e93dff84aa110313a1720e6431ff1cbbade9ca116e52062d7cf47a013a53ba3dbf7271b8aef1a5f3fbc0020b8b877ad75b2e1e0bcc39efff92c0d1e3b22f6d1193ef0f246b8353de38c294aef01bf0eaac18887fec554c4827adeb1e6b069c32490994a54e0650ac803640cf5e33a20281bbf8ab6ec96948529e5e338e8514fba363db754a08529abcf17c2baa9eb4e71a63f32d7296dcea3c017e3a112ad747e725a5c2b1a566e42c31d2917bbaf4fa25db6a44347da026a856b6640bb9462c2f73b36a2eafc69111df14e7c15e450b96b64e6114446e490cfe73fc1fffc9893b681260ed2558e3ea872b7588914c068e007840ac1b2b7b5cb0d8373165c5576adf65e646b9ae1d6d4d2c8d3fa83dbb136979ab76b5ed44d14b09784fe13701d4579bebf84c40791d7fca3840283b06ae6e2f4604e9d5db17a977423e9275821a0c394a6652ca53695e11f61f30575db8880af7d2a833ed4afe60968036c555f3992b251cb5c35705fca1fe711def049c6010cd3e86d42307fcfcb466ae52ab9199170f9bfb119e28e39c02a5aab25257c1850abb22673bfa5dc51cda092712c32822f1b891a31296a1763fd9e6e0da5c0a2930fe541026ca6e345bbb58c0e25a69221db48655cff5cc0f11ffbb6dca5a545e957daf12e53b874cac3114f75f315a1c446f494db54731318b6c19886902e468bc75d8383af3b0124148f8f2694b62808aa1ec693957803132a6d2000076ba30afc0812c63505a700eb6b8b9b0c1ff2648e7ba5a2456ad741934d1dc94245594496fbe5258620e3b93678a3896e56d057b1b89fc108f5d29b1eb29fa4096476fa8c5de463097f7eca967fa877a6ecb5d462fca8ebdb5f04f7b16a19ea3cbcb48308d243dc56f4976518350230deacc6d221253ab15d08c326f5b7111775cdbd93a9fd78081773199853c40b012362816100f8d94da5d6233fe9761dc1f41d1ce164ef9efd28f4a2a5a3b379f0ff5cefedfe82e9ac6f1daccd427bb35ea04b03a8320d1ddb33ab92c1b2daaeb78f3d59bba750ce1219c20b9fa670c67d08e025bf8bc2530cd52e57a6bb8d312c353263747e190cede0bfd84350701adfdc587cd814ab8c55c43df821fd95dceeddcbb97e0571468a502e5a72e2a27c751fbe3f45e64027f2f953ca243f1e36aac9deee968cee2870e7c480c0283ac145ce254c4d7aa249e4b46b03515147eef08e476ca04d110ed5fdab1aa85f7bdf2fe64557fcecbea49dfbccfae446b763dd882b5c1b3b96bf76cab6bea5baec04b77eaa3380426313d6549f0d206e0579fc1abf2810d8f524d45ee49077cf275bf4dd260c488ceca7799ff4e52ddebce9d69f8e7dafc266f924497418a38ef9088a40f643c96f4750aca6cb37a669a217d71fbbbe9df5460bf103b6a27ea04a99b652834e0f2d9cecaabde6ef74a03ff2558d42b7c38dbeac905f9a4d05948d94028ddb7cc0dae69bb693f1f56777695167d8365598c083e2e70ad2cb9952a3b7620a7dfe4a02d0626c3b561f533b686626b804f1d62c4d8f2c09aa2b1d491ddee4721e105f86f7b6e1f92e2721598c7fe7f07149c6cbc4f1a24dca4ae7fce1a811406a1d96ebd1b669b58e64b0d45a3ca0e97104c9fc6f4b62be85c5c757e1d8177385d1e32dd4aa06c23fc547c804a1c237a1b0aa5614a8c5dac213937dfd45a2bc74e5456973e6140f4e5b707c35cf72487c0bca3c7d19ec177e1494b18ad375d14f97084c7937cd024f39b2361c614f7c6c068081f92972d8944bb937464a2e2e73b8db58b67edd2da48340164dc4c429529419e7116205e94f5b4d1a3214789db3ff8b5f1e2ee0ad8bc673a491a4a761d7a2595e85c0c80e81a8fa32506816892a24749d933031c03a85d65cdded4db67635436e0d2f1971d4929895821c29443fd144f8818ed63416a62b5d84a9dd83204de97db2aba46fccd7e06b365e821b0aabbaf52a0fe4f38910f6f782329fbcbbffbd3fb6cdb084438d8007e34da8ffed1e17840bb1253fc71df1e816a59391629902e180fc2db1dc026f5d94763e1feff23b69828090f2997aee43a17e8f14c23066e394f5e7f046bbb0536aca5bf951ed907c11c64bca798823ebf595cfc3c80fd35c40e19b391f06ba7b741051bbf5e8df78f2d0862a478196d26a66a3107511163a2a561d185fd2ac4da6b2c3023847d1b6cba94bcef98297391a4d374643f3b70637fe25f514d862d0bb90dd2f78e1926b5f5b72fbf07e10c3a04847214385aa84945711809ddd888ebecf69653585cfe5a1b999c3711b77514011e3afc9f54daf9d6587671aea113165bcc6d3e9ee3588790aeee4e797a34a20d1b048cad4952b572f27b098b380685423772042bcab92d7323de2dbaa44ac5ca798bd23191764f383f47f77607e82d367a036542a3cfe4fc580e5bb94b84f08d9ab5a07d8ca2ed3c9c054d2c24555bef182d9c90d2d11ba97d291c85d98b050bc92c7380ff4fd3ac8aa5a0da701cd8ed3520d985772b93ef95cfae6712def3145689f9fe4f6792bd6c30dae21d7f3ef03535959ed720a5ac4d957da66666f4baa8f1dea35d023b664cdc976391d2f68376d649fcc729bc385d92686c71846535a26b2a819aa02f83e16502e59d8b58177dea7241aaea12e5d13d57bfa2ccffc8371cc2e8cdb2ecf1f3efec1ef403092211a794ba6ab41754a7992cca1cb1c7ee279277c32a40b99e9fd8aaa3b9c6e74380c46b02b98dbb435f51f3f517cc22c743ff732a656270fa1820d9f838231324774a1b2c964d848f6504c20059549ed68e26e0b2fbded72f64e3ba6ff1fc852ad80cc7de79ba9bb42cda3845c58529d79935ea6a8c01bec600136a161556bd2c22b3b8db8dfbdc334f45c793e6380c3f093dc8d4c99e22a02de5a8db33abaef4f9e3a87b732b7ce42d72623a1af4e6c0d7bc68b22f43157325710eb8bafc5705001d671010c12d73ebf5b9ee72e5a2e963674834ba0e4c7bb8fe4517b1e4f49ecdbad2ab7f4bb67ba34e1a564fdc79efc4c861a875e5df2cb06e4f244db084c079c61c47b4264b2e478f8409e5332855e17d98061252291e3d4179dcb5ac0d5003191ed2035c6fae5224728c09d434c4ceb2b6056fc12869c17360813aa377370799e3785716019227cca3780274961cd45ee87d52f64be3d5d0d45e3f19bef325abbdb055419054b0066b38152ddb059e8472f1fc470045adea1e7c68b7439d2ed467811ad1bfb740e26ef14e902231797e41626ffdc8cc1bbef2ab1844b174d084f10cac4c46fc540c75cadc6652896c5ad1546bfb34f4be8d3c15b01be1d229934e3d77145946d692b486153a4afd97581c71b9668fc1ef1c615223df7219a805e3a6d16446c630fb73bbb3f066af859f86ca03068e2db71abdab909c46faa9893af92890fe51e0d3952e7271f2819e1e4044846e3b37540dd6f930926d3b6d4f7b6dbfce6ca19cb11f040e7fa5a8ca49548aaa6ec2b0c72b8a20cadf349dcad189a2fa82777769e38e2183e16099bfbc9e0679b53d957bc62b5617135323b4f50a47afbbdceaf20acb4d06bed4b7409ae308f1dfadb6d6ec3314bba4eb6cbc18b62f6234aef2720f349ae8e7cc9239e2d56b768534a2f7c0c189904f032a83aca93a46a15b0f83ac97ebfe3db8c0a11cdaab5447b60415377ec95bc22d9fdc254cd7fc46beca11a3dfc41b832e68c1cfa3bc1710c64004ccd42ab4ed5eacd2d4ce52b60a81d259273aabde39321ce69cee240409d196a08877d53e2d861eb82202a95d2d9a61ccf75de4fe31109265f24bf33999232196ac74f23d36cbcc793330c804eaddb5aeeeea874bc75ce5aeff638e6557cac0bc0162d528aee4661b08202814b0a7f6fbe2943fa0b9b5633c7522f2ed8705c3332e58afe684d27f27f3936d3aa8c8577d955df57bd0862597e018bf29d992b149dc97755c4d4c2dfae08ee74d7f8df05d3119891be6bf309fe877947e41cd6afc7a37714dcc44684682d2c90e97c6be0524ecf9a7bbe03e0ec0282dfba1fbb5b4da69313745c141ffa86e9a5496be6f54a4b3866fa52bcee3f831e97803203a46ec8075b87d24c5d5c6819b532a1bb7b31b22255451cc94c9837815d4aa2906340112ff081a0714e83687cef6c658e3d51926f2b4e1bc27e61a814e12222df027414cec082674a539dc65c34b46d1b31bb0027e4b086670d128da55f13969948d5275c756dd2fb37288a861a1f2b665f7ad4cc8f110ad106744719045b5dc95551fdd9d2bf4465cad814f29f59391a28a1a375e5a3209dbb5b081e618836e0de719bff8c5295134b526c0934ef80d14a6a856913c370dcaad01be74fd9da57158e969b259d50038980dd3152b354589e443bdb5fa65c164414374e38c6ffe42fde10f35a03fefb2a64a0d0592c19e79b946aa296eb8ab29653b4ec513d609c55d16294358956ca32e6971cd472bdfed4f933dc447400bdf41dfaba52da194831d36c75b552cfb9488461f8ce6abf7e2a51bad0449991cd641f50d45e75b0de8c901be6faf61d200edbade81fa7ec8f94b75454b3f20f58f422ba1c434e86a3c48340b4e980a6217b861957cd99bbc2e31295861b9bc59d55277011427eaddeafb2df94c4a98084a766a252b21e915f2489094204bd4c040d4e49b3ead3e7d422d06b4b19e56273ea6c75b4c17c6b13265376b5e2d13b88e4bfc623edd9fdd10e30b9178e2fa35d3dbdf284ad1a5b574e4e635140aaf657180a573f7b504e51d2afa0953efd20d192824bfe0d63fbbe8f9844a378417f2822458d11fc0988f6c23b9068327c2a38a6428be50250adeee6c1d161d8d33cac6d36e1c5b4913650f6762b4dbade2c80f379d42b3eabb88e712a56ba24e30c9a001140dcd445d08dd06ed3ffe222393005147b63051e42c79d7bdb432b9e24a40e80105a577a0e1f064bb13fc14d111ea701570f6a6243fbc2df44e7f13bd06952c9626ae9f89727564a74d42377fe0095df67b5ae009bf03465dc0c9277aca2aa7ba63e60c52aa27188450feb0f1f045fa41bb93d0e65081e23ba05fec6fadab3c0d73b08bbd711a4c12920ddff48b607d8cc6af9f49bcf3a77238cf6cbcc585ca4bd5a62e9efa6782e8eda8267b8d0c13126a9a731d8690e8f568028e24c2c00ca1885e1ece447fd20ff7811a8574b1c8be9dfdbeb14cf336cf1987696e2cd5ca7141091d8b7ae5d9a3d8707837e9c13df29555393950d0547ea26284625a58f2f58ad6f4d37453899f00280a6c31bfac341ef51a73b8f6e1f2610ea7702b736cd322b3d5bd62acf74c8ae370c1f68c833e47b43c58d55710d08952d112a88ca16649de79b1611f577e257e45a9c18ca9f29e882de71931db2dba603dc89dab208a237532afe6326a9ee03b632108f126d8718b3de0e74717536111882d04439210432841013e46d2bfad293a3141abcb6355d0a76485d468e93e8f6f1d3ae79093b81edc0c1c6f84e709c612bfc0195bdcc354cb62ac9d4b84baa73a2258b1a154a400c253609569477481ebc05f3c268a4ef7cea995d9e32c95e9fcd3e622e519265a5eb83e29212d270100d17f93ae65f5c85a016af9e7eeada29b93695fd989201b8532d5533e621187d067e93a3af92785240df5506b2e9929bac4f5ee1240d7f3f6a2490f499175800b1072d91d95db528936f0ca39c36a564671f0811f1bbfd6765c6f84341a1cb32e57f851540190fd2d1f1a276c9602f4587c9e95bd4ddaa1909bfe1370ab9cfd0915478ba6652f67b7473a4aae243730f447b97480878bbb924bf00057ae3a10e9dcf1fe9d5fedf025ae215b85f36643acd160c3dcbe301bba83570a84bdb3d40cedad8af705767cf4c4416d0159b1baaea4cfcb489b7ee723d21425aa2ced3def9cef9bdba4644a0f38c2fa843bb6cd9bca8355b883a5eec7bd5a7063fcb95c62d155d6e8dd86c7204de4b7b2dd55100a0e8e6c7486751b53cfd0280594705d48f85c5c51b654c83c7ad1dc63461706918e4dbf2217a771d76d4f0980de731fa092d89342052bc5975dcc796b5b0e4b8aeb594f043a031314bb60583dd0421e8d686c1d32323f0ed86e4ec87b68526f0eb5613724ac304d2666fc5e1db3f09ece9f528b19034a3a4f56e1c5fb5b69b5a93091b09aa88cc523585e6e099b5e820f4dd1d58a4d7d7518b0084b3bfc3de21624fd2b82d1947444408fc7f82d588ef26d62ce6bdeb0e4c789f48b050af15c4c87030943f835c9f46af39b539886bdf2028975e245fdb4a2a78758cc3931580e7a6377ab718d357316ee255c78317a1d5d06998d5529ab57d6abe994c918f35ba7b3474785c9931a4160efcb918730cddee4b2aa72c01651bbde06dab132bcbb032daf6405a34ef0062f2d3d4740eb0c0cd2e13d37eb6c683c0b4fd363559b1e44d5735b69cf136b342e4618506106424b47d6db835534c6d1fa8502ef3cd8ea19169b5bd6bf0fd392bb548cb8a6216b795250082d71bd656bc05748dd1039ce78c838ae434d2f2a37a9a66dced4a3c6af50c7f8742a0cdfbcf0787a19e49370028a62c42fe0a1040f5354158f8d094bb096f21e0b4429fb961bd304e931f0c68e9f2f57368e80372c29e7740504c5625dcf0e97054603d601e61ddcf388c32e6c7e4c6d7fe0559e8f0a2ac40a19a25a6b00046605bd37faabb69f046cc70774721b3eb089c09c90452807fce1e86c8f1b95e6231ddbc8ca524ff971875bfed192c909e61d62d7b3b58982849159e8b4c25b54c187158927e10af7c3974b2ea71801d4f9791ba9c3ccc2e780e9de0251978e242be7549f061cf51a76c0206b1e03dca9d7677d38ab261e00052233e2607b11fc3bf21152695e00a9f0427c3a900f7c727c46de08602ca8b5e03a067c758489e1cad7462330a2afd2c94e09ba5b64b1ec355131e0e365768467818166ff02493d032f1116ea1804480bb664fd779ab2d214b47d4e8c1da1f6b7a0df462e80e401cd612562fdc19024b978a9d48fdc997d4e7af91198287c8ee5437fe0f59bdd02431db7e421f2d6079042c56f5e07c4f9ee520ee40e263d2ce4f0997592a251d792e42d31e0f4fa91df99fd844a6e57d978ef938b56b3299400bb6e46c7df299398fba0fe9d4c312ab3df32cf48a3424fc2c417441b318b9b2d4625a5198dab27783b59d1f7fd954e426584315172d083c9c72854560878895e39fdc8c7a233f8016ee0747459a151996df4bcaf9e87eac9b945626e1ffb5de4c7e1a759f3e9cd4a69d60ea1399aace3fb4a8b43176272ee771e8964edf2135a83fa8b2f60d920fadb0cc82d24a84610ee78a81df6289e88a59f97971f8a24bb50abd8a0417c63e8a9a770533896c894ffff946a46afdecaafa054532b62bd4143265eeabe1da2ffba4ce2dd43e85b0dda728d465ea9c76e18df7e03a59aba21d4e2de6d91622456f4d8bd57ccc0f00a56733d5432b60ebefff1218e739280ae31081b667910504363ab3c470caf5a267448a7ff79d90fc8aa24f646b8e1e073d4cda57b9585d21c12b236a06a943b285a1e6203bb19f9fb65e2e5e76efa43371dfa67636053abe4ae80d61a4b99bf50c4626ca5f8c31c5a36c471fadb425b5a744f35028efb035c228d2dae0ed74ee615ec893ceae0cb41f772e8cf91dcc0a16529cd9292973eabc2aa072607ef4470bdf79d0faccfa2371e3d1dd31771a5cb275a25d0345e31a9e3309b31653fc49b9909e8f6a2311427b2c0e2465584712c616dea57b4996723ed30530cc788200e328d2f82fe1d631a28008a71c76f372060cc3fe73c54944589015b996f4989c7e7212d18a18504140217e7e958cda2e7c8f2381e80583f79d4972478ac1daf33758c8a22c11bf0647816e3d08776536f07b33294968cb053f58784e00e78f267052978d75e2773d98680b199f3a8c6d21049b3a5203458faa2643faa64391d1896c24b4abe92f7bc089cc4be754c5f93584cfa38f48e26434d531634875d908d3ca2b209d0419e9de52b06b24c2b01b984a2e509c84f0566f10610651165afb66ef441b8b2b728b5340f02575e3a3a9a4091642b588015bf36a5f721c7aed93819c9579991eda14b064acd570b82142b93aa1a23e22576f93e97d514902ac49941a184a77defb86ce519d30beba526467180960a6544436e7212930c8bfe88f9cdd510c3969864783beeff77fdc153cedd43f33be584c903690fe36bf7f3e15fab524620ebaf0211b52b2d10bdbc5458c395237a716881e18b158fb49c22651f850f5301fb9ee93ff66ebefb26058a4d40d0201f26d70898d64e6134bd6fc22e19e2a8c14019b755a4418270c415eff951e3a84fb4694150111f478e16bd96a17218c452e6166a227a579fa9fbdb5a8d4aa4b50659e751dd8b26ba6532b71cfc55cb722153b3f7060e7a1cd31ba375b120d23ba30eaa548e42071cce1480600755ca71275880a6b2406309444e54c8e6e5d518c7235111eb82096f9def4843631ae1a10dd2df0fb8bbe5bd76d775290e601894fa22c8a97b0f68f9a236d681bb0d07ab2dc2a4358df108226ed0b40a8e846c2bd221344f751bbee5e9e4a33e65a375b9f5039ec0144753b7d380c1ce9647ec0d49302fd0eb39f5a3aa30495cfee2fd159e24f1eeeac085bebec2b5eba8c7cf90a255e08e07c772049770dbcb8338aa9d2f998de79538e1e73670a924f89034d049a8a45f2dab2ab2012575ab186fe0e6e4c42cca2e64e66e80f2c423dfa5058f4fbb821add1ec15cb26c1d298ee46a64ae4a34aa75e103b306adc531b8b19a1a9a86852ae32c670385afc3b880297ea6734d544a99aa2fc95c33d0695a3baed66ade91b8afe4225087863404b78b24c49af95343ca74a1662472a1115937a3c0e022e8adfc703a34e86753715019699c7a0404e140d212bb142353e78f893a61b34805308468de17e5c8816e86acee0869fa47fd58ccca8683281d97e2c3be73862ae1e8bda00d6b21a2003822b94536e9aa459a556997910055accb852a17a3587ae2cc6155820b04a7f225e3bc8a96b76e8be44d21ebbe0a347525456cc562939346f7b6b2cd50c3b5c6c8daa8717aacd8018ce04ded0fa8a9cf4265c95cb1bdc7c69972c07f3d1002b47818951d5e40847f0bc703e075b0db7c17a9f09e69974b5a69b1eb0550e9352cff16feddb354b17052cdf713ef2530a66703003f7b4bf531ebe1e43efe46511533f1dc309c096b590b768da790c8426eeaa09c5854e7e2c9a24e466315a9b5dd3a466a97211890e853d38d941e1ab80337f8dc2aeb723c019a10229a133dc28c995670d25b95d4c8715f351d60d5bf4bd221ee4a85809ffe90254d2c4ec9750889ffffd5fedef02f6696792e410ecdffa562d369e865d5266a14a88389e0a8acdf46ed44d46630bac1a8e21c8a7b36dd483e03024b4c2f0850c09103020fc851ef8cfe03135281d5a76378662976502836fb42c37f5c3d470152a015fa149842432a770cf1223f7314f119ed1488be4af1b357334461e96cac94432ff89d3b52a3f3a451fe659c6efd0b1ad835e78856c2badb706ee54eb97425be82f581acd0d0965ef20fe0811a4778512552f55a7100affc7c475122abfbff1c1282c127675e6ca78ea086695b031c2e66a4de265b117ac6311daf8b9610156c64d5078bc551bbfedc16b858e8d6c5ae5a5cd73c04304b59099549fc65c9d520dadc535cf10f6afbca73027e7506c72d27c16e8b1979b8216019edbcfe661e2d498840f51c91af045dfe8329c2f9aa95791ebb5150f3d73902b8aac28b2c0194267b8f56ae2c4956a13d609a501cbf225cf5e94ffc31267b37f6f73a12b9addd78f93a06f3f3684ce353919e814edc2781246e742f4d9d8a947966b3cdf50363fedee91df31d741bf9a0d569d161981475cc1b554e209943c16b4f7147588e657eac3714b97d2b334ca0ad4759de6542d6a86acdd5a8dc85f3a11946200094f26749c65190c1708956d6f05d5e21b6a1df49a5648955effdd13942d324d31a6318cca31e159709db176dcc24756c5d870ed0510167519048e08b2f2233b931f6d121082887ea422b30062dbce06f91f70ca70c78060aa9c88cbc306ea35a329e5d4095e21d5c1a3ced0f1635416be5770495b8f114716b813fe7f5099d8c36d631866ca1f518edb11143bea27b88cbcbf77e3be3769dbe482c1d78fc619ec313d4ec4e2d85596c289d48f6d3fee43029663948f30c78db565c260943b0122e2efac52b2507af1f31f979dde5855219cdd159df6fd636d28ce87ccd319cd11abf129a28896ffdfba77f363ce6c3c9406090d7c722e997c324329d45a14a25df21fd44dc87cba29c05d0a5d9708c5050616eeb4880c1db8871934fc450260efe954f572170ff784f0b56598b90b17741db0837177e1224daf721192ad8387ed8dd4c2b831dd4ced64fd74f0099f33997202683357cfd26ccaad50e3790763d69d1065c8873a6e0d8844bc9f12eec312f372444ec105e7119a69cc1030c31355f4d7e2d76fc38f6c91d8f9e6b536194b3e7f7af30fc064e9048195ade675e135a409b41442a01c1332b5331619bc50d09691b83d4636c70f6753ca21b22721795ec14821ac5c3e455b159f8fc18322dba2bd7759fa9397a49189fa59e4cb7774bd2fe817725a9e8861e315d6555e0dd11f720364747a7df9c59426064e4a3d45fa3cdf6d78e44c99c1a2c54c16e8562620ea4be9713156ccc48b889f155b4e3c4c83bda281ede3f883d7caebfc9b3a756139acc10b2acf2f20a8813d25b00247f713b234c1cbfd4225f2be86c13b4feb4f64ce7955c46b6e59851ab80c894ab40dbafd62252123feb41e3fe40df5fe428ed79bad9ca3400c6f71008f5c9ba6d98975098cca111786cd6476caf5581cbf1996913f58765dae2fae803b7307c2b16ca837ecf603f50ee9c8418172d550f800d16ad901060c8f41f4b0550514d20e2c1e06aecdb816e78fbd7463cf7439531da63b570833569570ebb2411ae81827ac5ea2558d02b19e071709f50ad98a7781e328489f3e615e0f9d480c95db694ffca276ed20511080aca10c900295500451212e9a8c68aea59f0bc24719c8a6c4522522f46e48a321e89bedbe59e62ad2f4703092fcd2e7b2301fb5939116b7a16b4380e92bc775a4007b6320d1059a1c3413b39cd1a58a974a0f79f8951045743b010e6350e0ec60867a1a854f8a242b6e9ac0a8ebeac769b34de116e4d5f7f455c88ac4eeed61334232c55831719b8cba9b7f7fc561b64a0015aadbcc248793f4cc84a70641ab71d5618c2fc307185a3f90382dac9449f5d5ef02ac94dccbad329cab5ff967fb3f2197592d4da6dc8207a01527d6a5b88a7ba9b0095c1fe9f1d90ecba07d29cf825d2d7377612c5e6cc4b3f8132c7f4ba97bb8ff828e45f05581edcc1cc8f85e2a39b4e9e6b16b5dc2d09985dd24720625eba7db44afe5a4488829f87384b94803911ad007d9c2ddcbdf30347106f510c5b9e55d09ccf2f78f46c511d93e31c8145a3a88fc0e6a6f66c8ec709baf2233b6ad49e9bc62aca7986e80ec7cad677c89a30de199a5ca80af8cc265cb967c4eb5d28ab467b28025a368b63195f544e47e1825e9578b9095f22a6776c0b7de89ebd12a8d6675cc066232bff9286a95bd3e3333e91a4d5bba08677bae1f18a311c9a673d65756783582f6db8611476da98f5bacecd8959d56444319711c9b2200fc352b25bae1706e1945e73edab379f9856033b178990135c161b56ba78ea6caa7feb726f8aa449dc5d8b12d38745aa69b4c26050b313a47a5e8ce51d21d2a29195181ab412f226526fa6e1567ae860d3346b4288c024aaa6f1d1137c98b9534f006db4c734db31404c6e56618cbd52edd1ef98aebfd2a1b4a34684d4e5056b67a543ceaaa01d7983e90895eb63a0cde60e36541d92bf733d37e946dd1a6a28aaa5339d1907155b4180b6764c4c75a1c00de586620d332cbbc8be5b6ae4dadb09e10bebbd30a426952e1a7ef51e87c467a5ec0867b0cc8488dbebeabf63c9d9fa71332a9137d1b50c695911bc82a3715b8edd6094bcb489d9405e779f7c65511d36065c859bad1eb5ef5c5b0d70e9e6bf81d99d20223b83ad92acbfddf5a5b1edc955d42b0fb0feeec7fac34455ef72796851e7771b1143a3786bac8ded26316a78861fc6dc6ea23df5976f2bece8d50b9abc9a9fa25a76984298a2bc45b5a7a86c21b01319fe02561b681975819de15416ce7cc4eaf0c17ff3eb2c8d35dce921ccb3f73a0cdad9312260a4df1581a4821a0c7767e0ee23ea0a55d621ed52530af400b41fe0ed1a3c86d8d9d9d7bd48e00e880982084910997f487de6e01c8ba262858ad9591b445ffada0d25fe95ae78b9042aa59bdc91ee1770488623cc01262c4bccf4e0ea14c009733c734afaa21b4f87f500cb9a7a0020719f607f14238375d0c27bc1f0ed6ad80df8b420db033be1567cab980061be761905a61d9d79b98a6423cda8e43cb357b625280a7eda4490eb03e9005272670b07c5669b8a5ba534d9481679b6e56e5e809dfab3079066af24b1bed7d9f7f5fefdd044bef06f02716c4254bc68e7dd3c59c9d8abcfffcfb853e0fc8cfb3f11acdd7b22ede910613dbd062c2231d8177f8c635022c2e8f7a80f77543c799bd0b48c7e5428ff962634a8aa5376f21c245dfbfad37333a386785a618f371fd5203bb6f6f9e0601375f279fbfaf9c53f6125ea30f8067cf4b99181da490767a3fffbd8fc894f94b3b80538fadc9ae482c6570f7ad10511702d699f69d71b18219722ad8318d250a5dc91d6f642d471bbfdf36f679a08734adbeff72c4d9510b401ef2e6a1d92b1f799d87da4a61a0a521c3a649332a4ddd9c7223d1a41764f52c4e00dbd5cb4181ddcd40f0cb30bc40c6a327dbb8b98fd24384c3f5248301664540a72e62337f4721ed0ae96941a210b3c793099fdeaef452be99f0b884d904e6dc5b182d507ff0416e772bf2b768f1b8984f18e5c846f7f849f9d5d97b5aaa293e740dfd348f160ffc70ea29463be612c95c7141f4c2e87000161c7f4370c71a84f069e23d7a7cf4e7938321f8f67b1c263b01376170d8ebc8e3820590edad1cf8d2d7d1c308b17857c1ab6b9ed91ff90f5ca527396e7bee48aafbefb697283b7dc2ef8f199616aee9d6566cf2d53fd69f3ea23cef55e7326f27fddb8e394baa71a4007b53579e09c0003d3e82c331c94c92b95229b4d7917cd5da62d24012c5771384633e6d54c04aa1f7707761c4589389748dde62489f512326e464f0763dbbe5ad5fac16cf127b6f5b4dbd44be212034c52ea3af7c2ae411535688786b8aa7eb33b56b26c2e4db02c68c4bcd0820610b50b4b122edd06fc47613292ae9ed3e46b31652c81842da8064db1a1309b3b85a941eb444abfcbec83c9637611ed16957eddcd40719e5b7c51473aa1713bef2bc52c680fbf43a8c8f860052a4d0bee4f3da28ddad514ffc44afa5a9a1aec5c181afad22df102fb85a41eed6219a138368a5f1a255e5225bf6d093ea33aac1c627ba94269d4604dde70ff93bd1519d816c0c729da5b42b326221957738922434d82b46cb2651bc34ff954534acdddcbe28c220ab374fe80b3ded11b3e019921665a1c6a3248c32270f2826f7466734d99060c79c2f1494be00ff8860bf6f9130bbc87b4a28b64512396982910bcfd460ee4a7c470fb712c9b6309c9eaa89c36833ba46aa0eddb7d06020b642f4ba081cc998c9bdf6daebde9dbb8ef32f17e1e8316009b03f9a40f9995bf8c5ce659fb8cdc11dbfdb1615669a06d6407ec44da5e56fdd12e98251a03048501049ac028532df7d1e322f0dace9b6039fdf1b17a80910a95e270fba104022cbe841122c83cde7f1d6d1d5b48434fc9b6ee1191ff76f420a445a84b7774d2f37c19ce9ea5e3a1573d4b9354a67504195fd9d19b202623ccfad83b13a6a6d6c971a939276536964cbdd775833e7b145ec6ead7835906f5a4744a33f7e424efe16dc84c5dca974158d283b2fe9e6d3e6855c9a9ca15f695e926de2e087861fa35a96e15df7a79d2f126cdaf1dff0bd4bd333e5d57ac30faaea4ec981eb0751263841199a7043795b836484157698a0e53a5279076a9a4c90f108ddc1d2753d564e2729e177caed8f62abab14340ff26670c4064cb7bcd97eca3fe658c92877d5ae0c2aff48ce1547f5f629a54739cedd65b1035332c702b2cc03d62f21329b6fb41a802a0dbdf474cc3b702c134a77defda8071e19a89420be485bd216a2ca2507e8dee6c67cd1d9762211091f2a7027623145c14357b2208411313a1f0bd3296e15fbbe0513177b86320db983f74fe72774459fd8fc91051550554ba4a0cd451ec8acdfad6a05414aa7141633f907e9f9a831edf2dc9e7cb2a28308cb171c84d35679d777c19760bb3eb52ec6ac862d5dfef6cd826ef04707049fa9e41e79d3db0220cc6f0db84f1c08c36a7e25b80cb685888671a6332d4bb6f4a209426cc562f91c9335aa4453a90d9ef0a74001ebb3b9c188b7707bd1c9a44119036eceef31fef54408c8add25e4f36fe078667bc0b277d81d784c11790401ab7b4c266b761888c41b2ccf0d3e58ec541cd9ecac92ba9c2238c524c5525633e686ea2dcaade7864328c86d0775098769c38ff536c37ed507b55d8e1733e202fd0f336cefb2d4fa0418e06011e31d40a5356a0907add6ca24424040af7392a7706d311b29adea2251e6a9567053d7486f0482c68d53b30dd4f36c087cadc8b3e782d13a20877f7049b782a34449c59ca20dad67a0f88d1ad4dc9be7dbb0841df7da76e57c5c8e55f57b4e4de6f1e592febc28c601ebcdc51f22e79340c16ca617ef532b95fb04f0b36c4ede4ebe22128d86f27115062851c1d8afee9b6287cf27ddc6d487ad26c158691a4f5127575a599cd27557e2ce75264fa3c2d5693a56cc13bfd72aa474b4ef46c52de891420b735d71dfd029e6720a670ad26cbad8702f86b322bc4122648d789406ffbd6554fac28854c870cfe79971ef117ec5c9f28f83907bbbe7bc4e5c59a33d95d7fb5e07cadc1aceaffaf41d762dba60cc1952eda90a07a08123a62df84c6790a8718ef6d7acc3e1e1e0d98da1ab1bf0a2e43530f4acbeb259efcd12b9ac472a81920d5196f31ac951766d232e77ecee010f6bdeb2b48f20075f48f258b519d18f4607abfe6014615ceab7bbfc2cdc1a1c8bd587e1e783fc36b0bc2c0314cb5c62de60006432a227b81e384f26230010d372fa6864feba696515ce8f7fd791216ea305fcae457123571cccde4e0775619e800714df5b6d2d22e3c9680d941c93b822ca7b5df659c39966124ebd36cd1408bd4422677da679b6acc6d6408e0472f138ac4d55502b9f2c2422d985a30e10292e381dcdeb37587fd076b4bb36ce2e7b0990ab0e7c301799873e54545157a89a8705e25e078079280ec9b4bcc804082eac5f4630588a48186137fe6c0b945c1aaa4914f417e4cdc13d643072c80ddda22af0d3aa2c141c16635d9d38f7439659bbe8bb600c08168410980c23a4994bf4cb723de1d8038ff2863b0cdbc64950413a86939ed67e15b77a8d0655c73e256347fc37b6f07ae1c2a680b9f2d917dee34f755898efc187c7079613a81421810bb91f82bb191085ad3b36a0e038f6c475631900fc05f478b1071b20fb9560905e53bc1eeb4c6b7bd2bd2a1d153426ef10d6cd283bc2efe62a4cbed4d299590eac339a43cdc0c8a0cf5f8d77c95e5df8064ac7afb6ef272576b80344504ccc0f52b238d389e300ce5c0828c0212264ceab3f49f48ada27593a386874d4e687f428409495505a34bf26378912f545cc5671319bd11385122063637f5644f269fc73e189bcb45f47d09fbe4060f57f19860778b35c0801702a30498d30c9d14510421ee9039153793223443c1056fb46c127566741b4a5c8990c848c2b339e5db45ad49f47b69467805269666b7a4b0fca58461402b4cdf2f59b74a742f2914eeace79c863837eac0a74619021f4b675e73a5d8d4a5a2e8a0331a310a084bd50d502dc2567776de9fba12b0e24ec03d1c852c01154bf0c929cb856b91017cc773bec74c2ca02f76f23bfa51a55856faa40d0c4c8e794085941d7925ce8ecee6514c406598d970d0bcb66a361928280a6aa9afe32bcbda0ef6bf6de6d510aeff1e15e57dcb8d4b128dfb5f05d123f5aca8a6be694ed003443c10f1bdf00e63718c9c33c17fde696c2205717f8767b609e3df78f51d3b52871ff887891e54a6eac04f5868ac356ca1a67a25ab5a156141af354bb9c0a87c35d59a12aa5df293928f75d14e42da71bef010b7a697345d76b9b76070a67754de01b1082af031e77b87f4d3a4a5ac99c25e76af932884b9588d4d882cbe3003e38578c44d3479c1dcb9ce961517f483f7f9db99db8af7ee339b00160e5d22cfa101b76af16afab64e90823836bab19c10a3ceaf093f906fa2a2786bce751b65733d74767c5bdd4feda6327c2c5cf254a1fda5ac9b56f264ca762260d09bd1c005bc953b0d420293345b6c0cc9accae7f1098bf8d7464f0b760047721c5bd2127029d003ba52e3614cad3994d66a479fd29d7fb9ebca83352d5d97d66969c40932454604d78123955313a9a5d371ab3743bbef924926dd8808d175ac468809cd2be9759395c5794b9103dde690cac75de4b99ea5d1bbd06c7dd566c60514ac332b6276fe48ee6b27a86a96cb00296adfacaabc20b5c06bbd993732dd4096ee03bcc25c9b3918e0d33a6e31a6944f0821a68419faab5d1418f334e13cd2617dd6e3c179cc0ad9fee4675d94ff5033933948a8da3a2983292c0d78596f8903feb243d820d88af7e3155b109a88da8930b6a7245ee3384d95930e29b755a48cd62c68dcf26dda3e259559cb14760946f3b716ee6f8d50ae730e1b708213b152bdbc816c8ccacc307204da5a38125f34365981e01c463d7c7bc9d6e491100a75cd07a1c71c3297f9d9311a41f79182680f6ad7ece260513099b5077b73a9e4f71d15c902a3849543a427864a147df73ab15ef26ab156f471df5bfea340d321b0209da84bebda396c49cbe3fe21fba62550713dc9a25c7209f5af3615ce94f68b3ae854d4f0f241ccc7b0d6789c9e1619ec4b87a60860ee127eac4476d447f3f5a767f5c1c4587a43df7ae3ad172a3643fea0724889299a13ee67af95843f3e44ff7782c441b207c0566951e56f9baa18c1504ae89bc821163e41dc2386d24cba2fe520a98da6a442b1c1e02d42ebad4fa82c8f5953974a8c2276f1158582ab2398d5c50d30576be4f2857b57a4b5ec3fbf86b3d113d893bc026cc4037b105cf579687fbbdcb4291e325b90107068c2f7d2d37721546569d6a9899eafd1c69700c8cd47b14ffb67fc07ac4f85b05c0791dcaf2c04f1288b9235e731f06b8cd85a19cd8f09c24be1f7b73ac86071454a2bced908fd83786d64d23bbe78061c149b479d35dfce3c8a530288f146b379a00af71738481a13807160910f6389d5ec227e1a09412ecb7b80f959d49e019897391ee268dc7880d43e3d91b9962c48f91040c15c46ff8aecb87af16df3f23608403f222280b53d706e406aa6ec51ea61f0f0751d268e92900058fa028bf61350bfb690567cbd0101370ebddc0306a254036f7358e580576050b40fc58ac7b4d4ea4e704b07aa27e3744d8b5469688df55e984b1a8b93216bd84ed04813efae749db6478acf81e26409b1ac4f90f91050828f306a7fb1d313500751e0822158c055d824c713a88b81e869989146a496b4efa0de15eec43bc6dffb608849903d54df012849a1a2a982b2c374f86e50e4ba2fdaf75d4a010f2318925fc4901dac8d71c406fd120e2b88535d95701da912b94ead6215f32d80752d2f98bf2b86a4dd3102dad0b9eb491c15f757cb0714bf1760d75a036821a642b308b952097ebafa0ed5337d2b15ee2fe2d089d369071c93f3472e6a2fa18de1424c86ee48ae73d4dd5b86cc2f1e6392667bb4c2ad74358e384c8a00bf23ff0d7c5750baf26cc12712705c42eda5b26bdfb50aa466518ef25f4d3a602fa692092ac077ad9d74103833725c702213c09a9e59d86d3514422415a90284f74521a0f66c45efbd96392247c6528b28c8dd3317805719246171684e346170e779e621728aa104e1443e8afa1a71dfd8d5d2c47df4d4ab63805357ea1fa288dbc1e05799916145fec8616886a3ddd591c67f26eefc72ca004fae2bd121b7c5af4422a736580425156906574eb7e9b9149e905551bd12804cf3562ff2847595494381c41481de3a9355c6e43c6bc0c2aba0df77b6ad7416eb8ad21b0853ac5a30967093d657b065f7dc9d2c24cb58edb1873859fbf5a98228069c00fef278a56028c877871bc9f232a07f0f8732643c4c900871eaff9bbb34742b61d268de7a5da0663771462114c2d3fcae24a069e3e2c664167e94aa63c2bdc1358cb98ceca146bc42c8aa8f45843c7eedfb5c70c366b10a6463c617ed258ff6d56b583b84a45bda44db1a23858672f3594a80dfd35034ce10bb37059874e58ac62f72a14c86cf563fb508d558317c9818c0340bbd30b6f222d7baae1e12af96b96e176aedc4a9c5d0eedddab50bdc8b2462cc460d36a86300b7822abf3f31bd66e500c484b3929019d8477e8378a455028b54ce0605a8216976c19ed08263c1a1a13b4f01f9a14e446204e5928b4856ca858573022af675c4e1a130539dca3465326e897e5ed48b72602f075552ed600f53157e4c374e4c1f0308602c9dc81a8087e3cf06605eb12a59541ac9a9d88cf6bcf865f488daa436068aebc00b5d2c0164a91c5f2fe1c519c725b3528367ece3d1e93c221d28af72c561b50fd8270f18aa09bd5043716deb468969a88f49a058db8267cfd0c2f81cf056e8bc00cefb2d461119f6bc8becbe3dc4e3245b7631d80eea67342e60641c8e6ce6eb9b8141686a7359fbfea68152709566287590978381345a8bad6a7e054efcd7963438bc967f178a06299c834d5794aa4d0b5ace3eca9f99885453fe016e21f699ba4bda988c2305e8ede41cb6d7a7f365a060d118df863e5e866b2568cb4fb516e9d0b4b1dad4baf4754a68c47d8c6d6d2adf43c6942cd609cd3d980babe826394de8b4ea1f8ec2fa136db220e964f45f3f3e67c1a4884e8931e263d3c4401f925404f073f6538fa8e24c1a602f55a74426b65fb9cc39ae4b365579a137784281848cc3efbdeb940e074b1fc586c44a7f4b963e060b521905fc32a4c099f828001f17b8f0f3fdab3aa49fc6c65ab202dcb7e78a4c621e23f361081591d1ec5664ee6c473d51fc0750f3583267d13024fde9fad1b4b10b5c7ec43b847703c4f8a5946764cbf4ecdbdf3c6bc2c380e8c4f41b6931d55e2d3dd332279de8220fc6feeed3e6a7cc3944dc989fd529a241aef1dacd249cac00d827145882534647c6d60d158134bbb7c3628743747d67b1a97e8aadc4e277c33986dc30bca85f8c7db50d4b1964de2cb71b3eb21799aa0839521e925716c64c234cc4b49464365c60cee8f3cf10e239de7503b635c757ef323d55d84ef30804e6a529bd3acab46c4c113b278c10fe6df4bbea53db51f8cf1eb75a7c563fe9dd791b2813b151c7960be8ecdfb00745b170c0bc681bfc8de0b31616192ff1a7c384cada201fb0045eb4f1002a0ba1d229c9a5519cf8b968c19f35e157e0783faae2a40ac68621c1f71db7537bb9d24d0dca7a5a156de78706bc117397968e6bff15aaa78d9325f1becc06e3091892022ddf29d600f5f8eb54c6af9a95d45d518492caf89b6932a6f4a6e6d1c0037f0aa96575e90b4a4f2bf0de3ffbe1e03a5ef9bd5e24f91a36cef9c032483adc3c7c7467ffbe2ea67a0b8606a10c4e515547735ab1007c41ded0e7d63f8fbe70037183ca69e4f97392180e118c1038ce346ae506055b3a60c6117e395b8c8520276eceacad34767dc01b2d2a1ebeefbeacd0f77d06890da0935f018033fddf9528bef19e0298d40a54f476f07f8070d758353541295a907a9bebbe6e0a3808d40ff47fad71080447c8a1e156e40ba2a42bd44c99832cf21978a506e2360ac5ad09a8a30e2fab0282d73a158cd08636563bd60947eb443e7c6ce04908abe53448b205eea22b24a90bf2c82136defb0084ca014460f0293c5e13071bf9593c6a1e90f385531550ae0a8d955b7b308f28ac27c95f5f1639813ecc45ad26a330dcd2b5378cd4a93b0787b432ddbdf6d413eede03b1c0d2b43c5e3214ca15f8a7561cdbb6d681ddc2a017f3784ebe46f9e0d8279c50fe3209ad53bc28b2739bd4b1fa9c2e9447ab044d9a11c15421c73e6499826869e82d44d3f3259972c4e51a08348711ce17309608ec55a9f4c8b8c24a16f80f7477c6d03ffd1312b44c0537e0937fcd968553d663de256bfb59ac4ac0ff65cdd56f0ccaae292112b4d4be06a9c95cd091ad379096f82672448e159649106138476c23a42a1714974754275ad3af2bc511063ea26caf08abb580576a2eee87e87899eae398575d695e79b21d73b21fe8502a931266a799aa1a1e1d3a21ecf113202497d84f181e2dbd8f4b0ebe489f14b1763483c86f138fa0d27fb326efde2879029240418d0e5d724f2e6ca5277d3141a71c78265b0097c9710e00ffff1df656bfecc9af9f9bb870e2b0876bf0381ce21e76546977dd2c796c0eb4af60ac367748aad3e4d1e9a49fb6098b4226246a266f2cbe76dd91ab74408aac1043f222f49b89e4054053e0d5b2f8f4be3657cf13fbe9c79790f310f73228e7b52e00634c2db1e014e33312ad9e1836ed64c943f2c78bb14313d4dc423a399990851bd34903ade97e14db044f81686fb2171356d5a0614fd40e1ae97b33647a96c262d382276c9014c280818f06965f1ace0a159845c6a12c93affdeb5c7a44c5e38c047a30bdff302d2d01d97f8c3871d50aa2e4bc17600be087a9eee8448bfd91a98f51a8e763d0deee2f8ccb5cd51e4f8f3c1c4aff554bf1cd466f4c2e330b4cd8bb24ec40fa8a1065d8c4e878dc335b3f93da3ef8c82fcfaec07c9842aa4192138421537a07083882932e486536e6e04a32798426504d0edadec90eed41e083a04d435a77da66a9d59266ff81c2e485ec0cc599dbb7347d8705aced5846d956c8779f9de80bbdb6cb00fc2b5b322b4358a54ae4c7570935ff0a5275c20050ff08515e64ed1e46e7725df91a5a20169b42f05353e5bdcb61c1c7deb34bdb1146c80ffcee16eedb270a8f7cf21759f78a1578cd6653650ad4563671c6e48d145c9eaeea905524fb5fee9b22cad44a2a1240461735ebbf56c607bae54c4cf856c9a39cec1175bff045e8e77728f4af2acbc41030550ddc7282c4b0f379d6fb7be6f0a177d4ff1b1ee1f54026cda8069bbd8c8df1200502818dc4722ebb2ee5af8c5835d92f2219cedc1da98ab6ebe2fdfa1d839e1d2dbc0e46a15cfc67361eb155ec287481e6fd9115cd96969d9e4293ae948c76e044cac53079b3f79394ed893411e0f42477a916f5b29e80984b28e952e0c943551c9964082509aff0d50e49f966bcbdfec6c8ff0402038e72672ea08a7e1bda7e0c9e2e1862a8121ae65b578c260047db4085e4e81613cc1f9e9fb33a1dc2d98ba13ab0dfe796c8f4c907000a012db692ab29793b8520ad05e1012f354329f81627db5efcb8ba79b85617aa4dc174eb0311c0cef22417f4096c6d7fc3ee702cac9009e68492eca555531462a855580d0b360c3318d0696de6a57a77a009705e3d9e3685267874f213ee589af76d2066a05a41bb3513ee4667b5474b5d8fd299b947c8e318d56f58e67a2c2db3872e736639a3bbd074fda2a4a938cd885598ff56fc9237d116d576b0c3bb080b2512a6319c534f319e0dbb3385340bd58f2133ad1ba2ebf651701c33bfc9dde4b025758ace1777f43ac952b49ec7c732cfb9524317fb06c41ee457f194af2752c9390c28e665af5be16c2829dcfb633d483ce9c309ecb6e6e93cc765394b1f3e50977db20e46a164edc4b02fd6512ad7eb35d319b83d0ce3afa8bb874869cf31b702e7d89bf9ec7aa4e415470b73d62d374ac0e23d5b9efe389cd98df28c4e2b328a6fb11db750c4e1148d129aac76a990904a786b324ca6f113e817b3d450d6457147aeef328e0c59067f5cdd8e4bc81062346edafc6d5991855dfe767d0b0d4b2498c229c1bfdda586a78c54e6d704ce2411cb24ba86fa2a7435f3d33696a86c377153d3baf61206278e8b19db52ceb2dd068561d41ec7f51c750698f443c1c0098d7d2072155a6a68eca70ac811dfe3de049162190d5aa9f17d0d30a6d33c681a8d65e8ee8e2090e118824c9baba7848691856d93d8af8cae037895041aa4e2146d1686dce1cdf6af8b683d85c2dd9437080d194692d5e21c2abe7848ed091455c4a27ea0d985a4606a19abe0e7ed2660e65f8f6cf1df6e6b1707cd8dddeaffde6c52c0d574d76f3ff88e681cdd1fe75d16e46ac6b7d620ec80c4c86a2950e7945961eaf2b0f62ba9c8cda87e13b31e0ef4862552e1899c8b32ecc27dbca94a62f9742a8118037ba5fbc7930cf654b2685ce1bcbd61d4601270bf61c70a6a7b4042f61624bf2cb9e6315ae6a1d4a23ef67a976870ee19eed494a0d3958431d9e419da6c252a66421b5915e9ee843ce9c5848b9633a0a753f3209d4b20aa7c86ab069222d9f56d4746fab1de9f95a8dc881dd956c28b9f61d95e5a569cca82e605776ea3cbc9f2981f8d7821c120ff47f935962c83d3bfc1a4a4aa697431809d9fc8d7d6901186e3b0d1d6d7b173e5b25194d9cf52a8adfa2af45b7fe9e980b1bf1b4c57ab0df6b8ef034e3e0c30855b3a8bb6fd6da006e47a37ab03edc15b5e0c5162361b89225be46d9e60fbe5f6537ae4f2a623a5b6935602e579c3fb7940ec7f222b7785cb57d616bab711603da68b2fb4e2cfe508d3a0d4ed2354985d31e7e741d53f3c6c3ee003a2ad82f9a366f052fe20b4cb43b31ca19713c05ae7548fe006d41f04bf53e25575e4c6c0a92a54857ba42770ff39ba8d8c1b50283622cb7657b0369b90f70469aab594bc261898ac4a0a180099ccfa603918eba3afda96d5cd2ec104adeaac9b79c2fab342564111eba7d3a9eee4341d1293c7e0453605d0267997ae5cd98097620ef630d78074678f133d023c09347ec4867b29a72a915cfc662aa26007de293e500212c92b496ca1c0fe88e1d0f3e9104c252b126b8372537391a816fc936f3df4b403f6902cf676c41822a0e79c1eda8d79b4c5d4e1b499baad04baea3f82c7f9162bc5b48699058f27f702c1b45f9021601b5ab3b278cf0e98bb1907fc0b076b66f486985ff8565a57413704dc4dd5ed8d3dea393aabb21c19f6926975babd72c129fe2d2c39b117754160a15da75f5cb292f00c6cfe178c65a114b9b5c0e2b750c8d13a75d5c28488532ed4addd6ccbc8b4ce288f51d977092dabd2db2f5bd3bbba5b36cf6ac794f5d586e412bc68619905228b41290a057d525e8ec918c99c1c2a0c91de48e2d46b5012d8ba26760134131bd8f0047707fbcd04eb2c32b06c883f2da0658db165d97a6861d41ff8c38d7366701b61095515403a763e361118146539d81cdf13fbf0c8bfa72c6dbe3320d2dee80164d54ffa296ac197d8416788793682c94fa2443206f7e11a27852098fbc9738613f8f89b9e114821665392b68791e4087a92059fc4d19c4834a32fcc793d6df4aa14c33235a214ad3af2a0791a0a8a59e5284b3a5d4a618f7a33f391318d6105c09d4e195df156b7ba1decbfa1c17a9e132c3fa08caf9ef5ca75151552a8a0b1d0d24c0302990c44c875c29de30cab87cafb0dafddb5fb36ebe0c835edf7645280cd5c20ce70dada8f580afed9230ef4f806e1b273a17efb0194d1a903d7b04e833da7d5645cffe5d262b10339996ac828359b13b871533d9a4a0a41279843c324fb224ff322441dcd7fbb086301729dd0e8c8ef662013c3264e211782bb34128a04255bfda951b610ffa5332adcf5ad2404cb54503c5b8d017b6218e529b32509cb3cce699cc3921610cd36e938f046986a6112ed6f9df94d0d62c724e11d6090feb538ffa312263980008733a0cc20ffaf71b49b6943dbeeff9558a5cb69fcca9652d6e10e9a4921e3aa1b6b1a10fa9bab4d54bbd9bd5c1eb217d09c02a44082c57a0cea65b1cec820cd5f4867f755c4a8cca15b09fe7dfc170b90048547f0db6a48ba9fe540e958cba28dfa49d05403f997a2c49ad53730a727bbf46d41828684964984ea15e815b663ab1c87f02f9e019e9d82cb406dfaeef6f5f2034b27517b4e7ea77c137b34f26ec7fd75461763414e20ee44984f5100e98335ace4e561432798c53ad25ed069e7c7e7ef5e01b0c24323501c107bacadf9e005c7a8d765039c804de6ff4952ac2c9bfa58307b49e74b541cc459c31c8cac0e63035652f01534199ebde81357968b06f23191f7b73ceb34f99cca1dd9c53b6e403fb50bb1a215b31f6b8b654864cb53a2ea386dd606f91fcba6caa807d5606e1371040e22e2e7cd9c47c910308550cdaf38c8308fb765618478f54e9d19495b357be02c2a37ce0f2a533862814c504e4274ee29d1690e6d06395e01fef6138e7889531df28cd90e64b44ee64a77c59aea86520c52405944db25fbe949ba480a4ceba991a1d46a1a9291c304ea3742bb8caa3c49a7e0d85d3b73e0088426d944630c7b1127ec13c1a8a8c4f29c2379189f0a7a4f138c6c2ed7829a51c7551136c6ffccc4717891f2ae537315b050a8a76c6ecd04028ec978260902446387597636cb4a68b824ef8421f83b801478c5b23ae011220e3f725ea56954533d87fc7c5106504e21026be9f92506eb8d2fafb124758b29e17957ecbb8daf62927c6c12b456fb6b00a2893e51996431ba9b08e03c3078aaaa6d918ceca0c24645103755a918d66a30bf82494c5c7e7c65dddd8714ad3dcdca0c99a93e4e88f31333ef6d6b230fd601dd43febf7be3d56d90a2ea4266c643927b721f3f17a0dea82505124ec9b5fa8ceb38324d40b0eeae843a68a5a5e78f7a3084c723bfee913ca33338060d412d875121098c16003af14a5a6ebf05b489c594bc45c2325a954d244502c825128299795541ad66bac8cf9af4a2f28652c9ed9499821f4e66d83aa27c4928a25ecfcdb9d49776ffbdceb4b76b790f0113a359845338e52c6c3c3f920a7245865f415173a918925f805d131d94e8fce190f1035bad76bfdf199a7e6a5fd4887afb649c0bcdcfdf2328f6345a7c0ea6334800e594bc296cff25a68c20d9c0fe087ed37d1ac82886050d82644b4a579bf51c972e3966ce2c8f7ff8294ba1d24521a2fb90a8b7837fb2ac8bf60e0f50c44fb1b39545929feed3436270482a89874f23a5c99ddf28e3ca6daa8fd1cb0b282b3b9e3e7b8b27692eb6f6d242dade2816b0d7e71f619a32d22f9a78930f0e8f069220203be4abc8083c60fb81ad1d39605304b69c27bbaf5203915731954cb39692a2ba3e6e97452d438aff80e651bea89e47b96bccbff6ccaf0fa5c347e75d49d77a1485899260348f949aa850bea11ae3ee6872f279d926c30c9205f939cbae06221eaaef62c169d543effd64b13f0f06d0b57ae220b935e9ad7c01ff0348c9fa6e4707bd4c893a1888c4500c3f89c0e31c905e2d0311a9d8b6b3a79d23b86c2d77c125e19357829bd8b1bca7e2c9a392fa42b98e27f2b5ce64bf68d6c0817fa3774037c57cfd3a32e6595a956b9bae2dc8c580ffccdc4d0ab0641a8a86391e9bb738cb2f9167aa240e3edbfb94cfbef50d600ec40a50fe13afa53db3c95abca3b27c7a1626a54a6ad7b4db4d1a7547451c020e17bd86713ede5db2e92b98bb2fccf58a29bc267efe4c5949cd63e895c31a0614dee48cedd26723ef0fb0f0c8c88fb7ba10b0c1a387e373466db63c46a32b18e8085e8540ec9318697a606bc7751430ac66c7f3411ddd56b53dd60db86efa24054d944f0cd963e1db7c6a42e69cbd97506d14686c009ae2d69ba575848ba283014a19b1c045b9a8bf20f03b68c8b0210ae6bb5e0e6682e0203b17b0fe2177e7c37c13067f104eaa91669cabb28b86815243afdf31d9133558f29121986c4f3a93366702eba2848065f2a8d72514b2f528c8a69e1caaa26f7027f6a1de61e20aa9608131705aa7e2539b00329759633009f6c965aabb9d6bd237cf51aad79cdac8b5ab707d2b16262e7b96d0e49a05b7c17f570a5132c3693ba67b4ae2eb6c126eae324a8164bfbe82a8278cc4c961ac1b06e16045dc56fed3e19cf04d4580884ab55a92842382346a366e27fa8e15c4be6545133e3071c7fadaa241a4d45115e424e2ec809caaac7e604bae76504df3c5828fc0332a1a242d1769bd3edafd5466f86f8f03db32cb11e806860c206b421ad7b3b1951d53adfb870e95f448bbcfb6b5ee7c3ec3c57bcdcb8afadbac255b0df0c817871b341fda46683690ef18e896ad5f53ddd8eb1e8a8782661d68fe407062091274c94b330664dbb5ba40aff17069fe4f4c569728a394f4ebdec7b13c57492b8d396026730f3e9ae498dd3a4eef1d170f20153a971352f20842526ea0ac3cc179896ddf8ecb499498357609286b14272260a50b987c944e11efc9d6e418c32d475db7630d5cab59b7318a01fde53b1af06e3052ec4b039513498bd8bd73e718b5370738e648bf25fc20dad5cf99e8e6c66a305cd5ae5518bd8c69875b48fa4cbcd5b2a507e65b9e48617873633870c5dd1af76636af708f7ab5072ae02283bd506e06682265caa9bc8f013114a252718812b1cbc0818727c0fad43e1a28273b9c8120ce38501ba27a0d5aa91a16c7bc0b67ac62dae0bf961c22048314f6930a70786c8bcf29c7c03a68210a4b29c79eac050c2c1ec7822acda28cbd9560296ca5acdd431ae666501971499d5f977a6ac682b172e8bd2fb645393648ef44cc715a6c7e697346db674ad80e01151e09c9e4f1bae15662468ed8fdab69f689235c3b699768d4bd3106ef1dcd1f6143145c019b51dec4989cd2a831aa51ccf456fac9491e2ac982522be40ed66854a262255814450ef830e09a559f1554fddc124de15fb3b3a80268945eb02d0309a3b8294c656b9fd5d01a8c595834ba82fb217c024daf6cab0528b6fd9ebbf507f72176bf31fa6e04bc4f7caca934bdd0ba69246da648028a08aae85e419a3037abb9a4908435b7f50b9c7d141a40451e32dfdb39c36328f8891078037e98af3f0e8ecc3467460ea06da02382ae2a1143b5ada6b5253f864adfe59fe1046b23fa2dd3a52479b953c51f3b04b53ce40b48f2279fa7f48000829afa54032dc8f88802879872668fd4959ed326dec1cbca5542b6a0906ed66b7d757c0314d511704f659da8e17a42c8247e1ee34d0da36968b444782060450c3f34418dce8fc4f3c3d290523651fd9a577508d76aead51ca4fb880259d96a7f5ed4bdc1d205031b2a056528789fbc284776ad69fc0b4371c6324537e2a860d6d7ea04ac2382fd733a4f5651d993551f206bd7b0fafcb05087b783ef1b5776e333623dc8aa720a9b53e011139bc786d81b43e2a2cf6e071b84d7769e379aa5753c01c3cefd552f5a4c67cb2c3103cce6bd5e95c2d5d8083b33a45aed3b5e51bf7dfdb9f78477c63444d90f72ba85f527de6a7e14ca2a98a3c4a07cc48f9d2f2a8f08da8b585b48ca80581fb2bb58920072a496a527822b4c01992ea9b3d93caa321b8344f2b7a17a9bcc13628bb2efedec55672e3ce75143ceed6ab0d6b5001dcf78a224e6c36b9b92142c742b6d46b51cf870817be2c255e177f4c20dc00a963ec8c92b7a5033bac36519b4dc115241312d059396405ed485bd77490d38474320328f63e0d75ee1ca7a691e7dec94dd410dc59fd4d7f66621dbfcd9ceb9c54b16e631fa3fa388c065af5fcb6d634bc7a1e11497acaab7c65d8018da82ec9002271e8317739ab481859ab201229dc87e6b8ca752f380a5dbff2b0cef92a99cc4223e93e2d56294df031c7d75f97cc3fd7251c4fe1f160151e5761e581e245db9cd92458dcc105291b30b13fd801451b21b1347746646fdd039d7ae5a3609bd58f9e379538f8ed98d0b911947a576a09b1ced18ae7c4ab859a4b5e663114d8ad2946f282cee321f85a5caa4aa4cba51607cdcd8d4d9ff07599dddcf0cbe741ccac18089cc0b7c8dbd404258d51f236700c09a1fef83f5ab7161c1b5835682a54bdbd791852c2db0a34c368ea3b39b1e4b5192501d5a3f29145b3509d75d0e06c0a235a40c3366b1411544591815f90bdd5a7fea31c839e7ba8f7fbd9c04182dff7b74bb107a224a530a6aa1e4128a94876a52d08398dbc47132cadcbf24aeb61c5bc4851d02a3bf24881a7095b8fb354f73417f57bc2039335632d62bb776e607a05ab946ff1205805be1d4d1b4e05e3195b09649e73630f3ae09dec162dcef1bd5bd8447d9b1f298c86a01de00775a8fb19d06a2696c641c82564b0b6a46d1b55db5530f7754bca45c5a35e716b6003313dd3e650e0d40bc0461caa88b1ce45bcb5d2ab14fab830da8c7284190405033fa3d814534418e6af61022c6dfe7261155d38bfc38a62a206d5689ac4de5ebec20a7433a00fb286b854149a30074cf14a4d576d7525bd563bd7ee7b40d98df5982b1e07edaf52c15057aee20d3b05aed705d7f11ea269647a4483857769d58c135a2eff14a011366dfaca1e69390c8bb966e7fc8f16ef878e1d215270135286b349c3f629f103b0c6dd929921db97e1621943946b4306eb0d4e8181c99d1d4eae2e8d13edb6ddfcf5841a8258b0e74a3a1c2ee59f907e2873b67fe08a6312e96ca7856448637d3c56ad818dcdd22c6572b0b9defe72343eb9fb683f88950c65fce0fdbf5f7a2328d41315e8d57434b21196c0ab45ca95a36be17b07978d9fac350e58fc123b7a3809e130ec93b7410dd073813b8f38f3c24b9a4d9688607727e3b0936446e51d7ed9198a324a65c027162da8cbb94ee969f4003b7c9c5109fd046756b69be5a29eb95c45fcf469144b6cec329738490e28fc8a7d1561dba8989cd09b91c3a3a76fd9a2d86083c0597fde5766f25452faf6f7479f3f7cb1edca5234d78c56c59dc1f66b052228fdeded0358db69578727647a2a4dd06dcc84e3c1102a05e1072c70b7c1933bd83c94ea236e8e15a71c34f1ecd2083977248a83eca0be1f79def8ce51090f215d7ab13de7430c91bfcbc4f290fed0e22d944513f0c7156d118fb9e6e6fde87734dbf823bc078e1d416caef148b0ae39e17f9e14afd132ca87886ed55fa95a4d53645b905761320cf2a6e6f103914f260c3a4d92c7c71a27a947443cc025409b7f02d790e6ac6fb7df17caf5cbdc9f58b96e5dcc00bb22e87d8feb234de47bdb3fad3fcc2105ebe6f24ee66196f106201cd2e6156a857d1a8f57dc2a8c1eac917fcf08c0905da3591412ef3df0d5648abb653c849214a323d025cc3dd650f5a922add75a93446fa5e707a3714a132e0bca371390faa9e9824a9da5cab9ae184ffd25d79af112418b6ca880dd3ab1be0d86fd28d2e338b8873eca7822fc0d74136bfcd5609380dd44464d13d887eb689445d05eb297e0b0e22f09c630d48517f7852edd4358417c01d0b5a6fa92d36f6906a28e07d1bed1cf183dc499b335e22e427a1252bf7ef830c5bcbb73f54654dcce05b06a2953729e01b188536e6a4f1dbbf23d805e50a7c8dbc643ee16064c04badc316a9729f376cda589c7fb3051f975fca85de69351859b3069046fd6a066875c825cc3c5be4f9ffeca6d5b7ec5b25e25e94326968623fd00fd0e593e6faed65ce3a8983fb5070c5e15821663206a850e0075ccea6aa4108568bda68f38fc1a1d43ee9c9a31b8dbd1e4eeaaa1446ea18bf31eb60d6660b83f18798132595260b4e7b696b97be3478aba21996dbdf9cf4263a4b35699f07f98fe527dc3f57cda762a6d491018159e39e455a56bc830119f7784f8349d39031688dc3e7927197076fe794c84a58ed72f240125aaa0bf7c9c5eef882d2aa5384ad5695ef9a20aa7d785f069d80b42e094553ab2015b8c9347ae40111315262e8d7509dbd64b9f6696873a0ea7416a67e441c83ab0395108826948109ac4c52f31cf89c4c5267c4ec368f089885a941acf3aa391f068c81a2d9a0d886e90152eba6a723763fdd4b7d45a2cf026657eb1631fdccd041c8f33cd056f89ced35870084eb7eae5019272c888144ff2f43b6a9b605b44b5f210685e1b27611b382b5cb52909e198d24c5227fd73450ff0cfc8a67364d174c7969109aeaf5bf137854f51acbf758e454f152ed91b1fd494c7d03d2e4d6194d4535fa57c49d442b06eab285ffa1b392361cf24670cf700f8144dd465c24732a4985014b892df19bc9f5e96927d6c4e06e6617f66d8b5b52cf98235d199c5d35710e5898f2e78ecedfddf86d1b1d4439c63a2bd4a69bdcb5f17dd9be5272a58572ac3130e3432a5206d97e6ca1990bdb7a65f3e5ce0b9bce1bb5e65d0d4b78c4fe33b871ae1bd22659f785add704163659b0146aacba468b759daa739f15118a77af56aa77beaf1776cfe9a6e2f0d6d8af204c51449605f179288f92740bea8dee3c5faf9bd3b57e0cfb53b7719f834c3c3207d8fce0bdf3901b56f953a3f8214eb0a30ba9cf0a379b9078400d95019791151ae65c7b2cb85a783ed5c2ee88c256590028136b42c434536671818e687e6d247ffb8e1a45105062eb5c4a323194ece138b389c1881d6d5480ba0d0881d08b4851d58b96cc1a3cfde745073e930d88751a612dfb359c868810f63d47a0d2ba4f355472d24b48b1fedf54970c18bdf43043489e1718bbcfe45050343a2006c60a40188bb3356c8869cfde1d6a9ae4b11f77f73128aad46efb427229ea2cc6c9fe6a113f92bf467d1d0e66adceb927a1eb75195b5100be18499214707ab18c1d4a30c4a39e812a4c94768876878512881861a96bd2eeb621fbe15c2ca526a768021c2bc686bd6fa0e84c7f7c1ed1dd7b51fc00463fe4461c2e0e5e0de1b85cc919f0902eddd2116a9678883e3711f6751e06f30b0520879047620706715023378f449c52df8ebad957ad146deb8b2a2eeddca106a6e9828681449fa3ef13728ecb5adb8779963cbcc8b4174303fc7eee574c3c5fff463f0ac918933c4913fab207670f86b2ece22f0e6003775cc6e8c22fcf84bbd7f18f00dd9d042564bc860a2611713984701eaa0a486121ebf8b52982d5a7984e15aeb5171a13895f942d110ba9d6f25f2d04b2a4662af52520b541c9a22a93c60c0ad03f32040dc1c4309c1fa6cb31a1287e960eede92bb9b22c998c53a82c07d4e775141976fb6e914b7f4da40297f97df7c28590641667e7b416987cc3a82e336eaff5f345d3826b8901fd1bd3f5f2454f72ce2d48d623798ef23be74e98a96a73202846e61a3d1810bc538a86bcbb689c100d69cc8d8dddfcefd2ab62063ea0a4451be31b77cb86e6c8234c9b0a9a2a71fb169d93c578163b508d42367be5d80ca55d1e42468f46c5c6aea2f682dd286ab8b34c0d116f782282107f9008e1734d567867615a20fd5c8d282951a759f86ab02a95c11f976a0aa9440951841c1a2edd3c9455a30a370fc2ccc424169fe189c9966f4947c334f3bbb16c2602b65eaef96449ad5a873e44e48f567935a28238d2b0cbc626c30ec6a9b63172eda542a4f6d7ac55589aca95be5101a4ae64ea81896ec2fb01993766f9d1f35af526538c214c5d65c8b7710a2902834a7146edefb6d4153a6b0ccec06d6fe64c0baafcc23294aaf39e18adde4a41d5c8e67d07230942e0e33d6cd1e49d4b643262d940271b268db3c62e5971f04865bc4c3615ca9c761c5b513d11e060748354065e7718975fe734062802971361bfb28d73b08c6946eb1bfe1e2174b24f3341a9f7b7105c67ce2f2882a36c01b3b381d04b9b40f22ff5f497ab7b7b0cddabc601928cc7789b92c2106f3448f89649a11f431e1bd95a92b69eb7bff55509807daf097d4530102a57478cba5608eaab4d06230f900e1f5420efbab8138c24a1d0a254e36561aa77880543c24f2f5e6ad890cd3b2490bf0ad291534ac59e041b73cfec144596c2d9281f01eeb2840532f36c95c1d61759a20c1475a6a51ec26adbab02224bcd8f9e1ee5eb7a5f6f84704f2455818985412a44f53fe696b6c80377597076679816150604651d1df16621b8199fd4ee41b87f29122de44bdb89a254b0a31d9b4e59387426ec4481faf03b0261da29275c01b0eb0251762e16ffbcdcc8944cd38f3e1f4e547b66ff1763203992e8860c1494e66c444996da1452a583d666f3690a21ceed5e021eb104fa1cb62f420cbf87c5dc42fb4700e42080d7781b783fe62190c4ad68d9a3e3e9449e30608e4a3abf0f6222a6d194f6a81bb8d9b4f821ad9cafab6104f32e86d96f0105ac899a05b94b946f42e30cc16bf249bc81383864b1685b2dfd406a97b63b48bf8f78fb10ee1bc5f26126e146891351a6c680f27514bbd2a343e7f293e089129e8f296ea2264ccc2b2a7de15e366a2c6769376c72df51645ad7584da61e882f228034fd8405fdf3fcfe6c9ace1b3f8e5fc664f46eb88c1032d130f167807d54e2d9850c43a9c240f7f14ae987a9502beadd0c39b5195d00a61c8365ad41222dc26285edb93a905037dff0d68003989e619b01664c789d036c8e3947867afb1f2ac65b35f6ea12f0e6f25b2a6fb64f88925d758c89362a01dae8bf557726397686473fd210681e39510e423ee27028dfe3ce7b54e2e792840f9866629b59cf54fcedf177a64db737b727ed0d49a029df3d880f77e196841bb31dfede10708c5411697397685133a746d8a9ac7a61e1226a28f9c323975e8b89b66fb87f875e6d92bbb1f74e2deb20d7d193bbea10f88669fd199620637b02637c04221bb2c3cc299bd1577739ba84ff1020e531e6e6aca6e6ae106be6bdb6d3a7365a8ff324283893950191a4488843de58ff4e7dfb0c4c177633a9adf84a1a95b63f1b41cc1c0f551a7d5f764a57307805ad722ee02a81e4433611e5cb3c62f6e93d8c9eb49e354cf424e6660a998a4f24bc8933448ccfccbe658d863333af5b1596c300bda5e3f856c8f8b0f2dcd38e942eb28554e9410b462282a2042fed406b07143877cf7cbb90045ce2493c70296fb31eb26cec0ccf0826f416ce28b4b1150adeeb2807b8b0c0eeee59566f0dad5b7f3bece58da2cbf70d5e67400209600fe888e5158f6d0251a2810dc02663f9599d968084163e35a83f56eb5f46a2d691885799dab8b1055e31c741104466929a60562ce4f5b1b6174c496f70535a85683f582f262b0c0a12afd5b17c78d9f14ea6cc2cb2f656ec63c665c4ade11acfdf4b14ea597fc9f19db89424149aeb3de32bbd1af0c1089467e4eca6ab1f8182f925e4939e7622dd3f74413121c6676bdfba26a6b77d51a9981305204ad874f770291cf6dd8a9ea58d258e7e95bb89b925346ab811bd0489ab449e4ddc818110d8c2c7d0875634adace13d65385459848b60de0bd238758b2be59d2ae360486d74cdfa24fe82e77844dc8dbafb59c05b4dab4603c69f3242582abe3b9b544839aa7b990c44bc89bb74b9f7290ace1455c0869c1418bd7eb7331aca21764fdf7ef2b201577dfa5ada09a7f05e9ac147713a47db11dd2dc147e7625d4d94387ee0a3889bc084e02c1edd82bf990e6d7c407867d0223566839ad781218d98c07570fd3f5b50cd024a47f19fae46ff7f316f9f609edebc5ef297375f5c04a58e0e4c352df2571180114525ef6913405bc5acb6e90a273c1d0be6219c227448e9f102a216b8986e86def983247aa9fc2310f8454043a3dfba55a30181237078a6345aac29cdb35634761ecca3c094e47a67344ab7346b5f6e0de992a064871495be5dd23c56d081e433804c160f800d0d71f92e143efc1c14b113c663a447358f7502efa803dec61bf7bc59aeceede227b4b9964780a240a360a40bc1148a7c3a2dc88bb5073895b61e08a8d5b87c694c3686d59bd345047061d9a0a443575682a10d5d4a171188ae32ea60a84973a40384e87d2224078a916e195a68e701ce63accd5748ce952c46ad35aa21487d2d28691b33b47cbf942b1cc5e1dbd17cf5092eb7cff998a45637543c343d114aa8342a1b447d5e03455d121645012554bb9ac252f9735b2661299349367c2b9e4c60be3a4e0c6f99281b831c3a1222028afc7d46c3aa93d0477cfe47561a7607a2bf05a304bd833390c6de1305632b06164bb455ad212bbd786ca90cb4e8f25f2ca89cc8222b7ee455b380c5cd22e6cfaf7ca30949ab2de0e3c94d794c3744cb4f476e0256ac474efbd36ccac1be62246bc848df888d6122e2b8dc35c9dc7c046f20a97b594a9703ba69bb35069566a106acadb8187cae56cf17818ca47c7c622b9b0e7d1048eecb512f07bf8bc2a44cd97056cfade4d45cd176d7f5e09225153e6d3211b9f0fdd007da1051e2b19f0c50e37e7bdf76a1c39301cf7fffe0d7168ef5bd34a946c30f45028efc63f5738b7e61d6e1c47edfdc842deb477f2c8c89a0fb3f4bdbdda109bbea805514b9feea02ecfd4419d6ccde4e100a122d46cf17a4c5067085eceec18d96a4de341459695456edc74aca54e8f0e3776b8911b51d7dafb093d1b4f0a0f099e11367d0f8a5cd69297048f14637b58e43072e7e1100e9fff3e87cf7f252187aa23ff4fc8d96cfa1eca2472e38544163d143752120eecb3f7b08ab6ad558b6fabadd66a1c39b08d71bebd16e2a09bc342bab30c047277d171d8f72deed85a28a26057d1ea6c524ae9b41d71c77eec63e8763103876c8ac72d76505c4aebf8bee445ce86bb41edfbd90615d2b058c89e8de7838aac1859f44c30a8608b1dfc90b32f1d433d532d757acc11fd254c4e783450d474501ecab1a7a4742978e6fa148c960e834b77a1d93381a12604d5428d87e643e930da0fee42ffca1f0dc0d8d99ea41639d8a287d24cb3258c8cb7a8993493c6e3be77a2a4ab6bd0d8de41cdd076541d71dbb33d5361d3177d366172e92e5acc61b7fd4c7b3ca8c88291ef8b9e69d3fb13d3e099fe06705fed9dae90454f8565b2b0a809124ab235e5a13edd84e8a13c5496a172d969a283ca3751883575d54cdbb80e777c7ab42953ca2308370320b2605cefbdb73bd2a2d9a6759d1d6d928c5fb4636765ab18ed9884552dc574ab0e0c56b7ca1debab3542483c9257edca982e3809bb0b5d36756dead22a360836e5eeeed796a5ffbdeabd6a6a2cc3b2ec17293334c65d7db15b05a08af162640ca01bab18b1cd584b98acc24b980b9b6eb4a48dc3541b04dbd4025819581a8b035b33d6eec55a1d938e49acc2abebb91b6215150dc124beb0ab6212ab2ac6c140a8888e241e8255be5a4901ec66157ea8c2e0821107a0a17118cb844dd92798a0e9ca2ec8135eeaaaf05aea9888a248a7eab660c28b286820670ba5a2074436ca9e54f480b539ef6c929c7d3a9b2477473a3068c94322d959a99ba21b31179814752e2fb6b465d789616d6c31c88e7498aa71982ef465a610ca8098bc6bad158fb57224d9e94853f6bd5aad6c642fe411ac9e7785c8f5bb557eb0e46b28862e1e3424986e983938aefec0fd0a04b9670ed7853178e66ab122d9367415c9f6f0bf967af8fed34313f57bf0dee4318fc9dff0dea4c68def3f3ae45a44a38e4458dc808a4a6b2704d5f1a99662ea883e0874aa220ea98c886f44169c3d0366e12478855935a7acf1aa0559c4a5178a795f220876adb8cc4f1fe75052cd1a539989711678c4515052d598092aea56b68bdb111983d888d8b18b93ae04dba235e96a771f846736f7bfdbeea8d938fcc5eb7a11afec73dd45a37673df7bd29d9c803a3bce174fc134e099ca5d7f693fc39d05eeb50b2c68c1840196c174185b83b2811dbb7bc50451b79a1a742af8d4f1619631c79801dc138b33a070a1f0684ea5abe1b7697c08e15508cfc4cc96e9897845850fa0a873ac73c435dede30741d395f3cc82ce1231dd9611a6ad8d924f96eb123bbd5c4a6aed5b1bab103d2e18c1d104ac2a14117ca5ac2a7b2c4ca10f1c962d6aea80cddca5a6bf185e29e325d4116bb554949d907f1338652e183f18b2b745898242c0b73e530b6c65da816268bd39951b18e030000f04cf700a8b5d62e65cb3a3262cbea6ec7cff6162d4eb6577bc458d261b90ae0baae7a81c8d8df1ace9002328b1dd83cc488f884676cf0c87a568fceea4805798467b624d94e200452a1227ae1d55f21bf3cf27553b09a2f748427504578e6da465d173a17532fc65747765c58dcb5ba23b3657498aabb32a60b6b775f74665c2e2e7806c3a76efb1f6a3ca6ae9ea35e335f7c35830d3fe4ba9a2ddd65438c77ab96bbfb751da0d65a6b0dadedb8c0d9d4616c90696bb0e97376ebb22f9c7bc1def3e2cb3ee51a9c6200eafc909d8c4dfffa904321f02f5047004d923d5bb4b9fbcb5ef7baaedb5d182749a6b8bbaed06eb5d65a6d92bced1a8258feef453c4609d47855c7f17eedbefb940e8a7dc36f4f4c63771f433905745d38a9e8810ff60db93d310e2e43a38ebafb3174dd0df7abb621c667c053c8d89eb1d57a752f5dee422bc56cb9170c67c70e2a86766e7627d5b1016573c4fe9d3aa74db33b35780482712849cbb306a6c1b5cd9a1c4c87613486625f03078f54d4c140e8c62f76e4326c4706d851c33855632078c4dc1c6580b06b98a42e460b7325c4433b8edd09c7d46d65539d165616089b7eddaed922eabc19c68e8b8eaca3c3d85447d6921d3b2ebc64ab488dd5063c051e3b2e3ad2a61c0693f864abf0127e0199dab4ebec17f2f6b7ebba8ea9eb3afb57885bf8c80b3479da625ff8c82cc55c2a1f262e038fb1e96fa1b8636f7888ea8c2ce2152633eff3cf557d7fff1c7e610d7c723f651baf9264f7d5ae13a8bfe9d0f573ef404962376efa572d75739c2106b7e86ac5eac66eb5e955a757d7bd974c3743adb542a05b754766091f5975ab954c8d4004f04cb675ab95d57c79c1bef3a34e98c6df7a217b3ebf884fac5ad23133d83093147145cd49e6765fbb6ebb7fb50d3154b437dd23ffbe7b6e710416043a77b5a3667b0d35edd9b62716467c71cd7436095e5dbbfe0d7998ab6db50d55cf604616f1eada138b2478ecbb278945b9bb80c128238bf8844fb5b4e788fe1534416af67c022a06af367803464149d59678855778e5d57a66c782a9271182a951458cd71ab786c3dcd04103436adc70985af51c52358765ee19f12d6c1a335de6ead66c7462b6808af0114d8c0e524c171010c62952298a6b56a3860e35549c37bbd041033a0c71971355d580974eba381952020ff84917431cc604934339828ab617e7eafa0e6041a4982510e80939885f4153a90cc587ceb47e0e87bf96699ae68f82b237403962a31ce119f14a14100a34448fe99284ab745695c5b8cb07467bd2c5892aa6963ad085973e6075966559e619f1d10918353c235ea9ed67aa9fc96174f04acfc86702a18630e2a5932df8885547d461320dea315db650534ba0188092d8f4452e002930398826abd5b1232e10816fd1514e29982f50d816e644459d888c654d267795116e4e0230afd001cf8857aa302d75a24aa19cee1641a917649af2b17b0bbbcd7d2d51504d313af03ba302926dab664f5855d3ea1650946ab69eb428494c619d2039494249dea6efa4932e4e5426209ad9f282ec6f1de5082aa28f8202adec8bf5354805cab9ae212415d13ba4bd96678b13c74a31c915ec2b4c16458389d3aa3fbd96d76ab5b22c03a1ac94742718072ab3f2dc8a8a6725d4e1322b187b4e25e4f11f3e4ba863e56f38b787e519c3f3a1c713860f41032fc8ace810c602cd293a01d11f5b304366caac3ccbb384c2d08dd0b33c8bd6c1f2a167f9ff7f161696677916938da5eb58aeef7b1690e563c282338b92d275dd779ad65191d65151d77d3ea3a4ee3f5fb33f8f43116cf8339ef974efc1339df67c6dbabbd7bc7cca4e1d257db4e8bbd32c210c8fc3ebb52e5af3f73d4b48f17d968e1772190f148a9ed649287ac8087d2b211595503865543c9d2d145209854260680b5d2195502804aaa88454b4add96751a91f0a855e84c16ad64449da5b5d012ab3f2945309ff59429595d065ea123bdbecac44d6c1a69f7b50d274919879b0e9e7541dd1bfc93ee056ba150aa2248c85b17090b57bef65f90ffd4a486554c2d08a4ae8213daa3ad21e151df2cf34754459b447a5438edaf944534416bd932c28e9f3f413a2c4ea72d3afda8b5648d61ec330ec04878ae8a5bdd667a2221e5474a2a2cf6af13ba2eaca041f6609971f6e19f10db1bf20365cd692d72a6b2b5b8bf25a2dafb5591f5444abb63654e4c3a26c28c92d8b63d591b636d647fe367deb83929c92f2a64cccd1dc3367f898a3b9fdb56f73ac5aca41e42158d908568f4ddf6a563ecd166c8b5b71f9e523a8ad2f5a949829adb86c596b6b28a492b5b597160db0fd5ba11014002afa0f773d07808ed338dd7532a896fefd35c6aa236bdf9f255e1685039551c1ee8583ecd7df300ba90a07806ee21a3a2f3a6b977c7e9650470f5108c215645842d137f85e8b92eaa6a10f691da15ff91d3202085d26534225149e321995ab45675d38c8e2ad1f70d6ce2d1da11bff2bff7ae5431fb6e64b8d5a82c14b4249e0bf08ca1ed243a23c24ca43a2c8d71ef23d248dcf0d957f95df21c385427b0a2d4d1d853ed4f6a4439fd07f18ba11fe7fa82d8d0e7d3ea43d651db94ce8a371a032a10f690f49030e2b229fbc4f28674e554778c6c42414c2f09ff06a95565db466cf27f47c28a4325a554bd66a95d52a8bb2a8fba1109311f27db0b045df25aff1cc47cfd952a24514d0ac845386253c811443f89001c3b9bf50041e8a9f1030e4504401cde6de1386c0bfe0b184df4af87d34b3a5e633e2a3c137834dff1b62caf09928e9ab818be87f3638f8228b9e87d7ab845366a57e271439cd83b376fdab093c08312d323d6913cf604dc8a2d7da273816f5f9d8f43fd3158296f2a98e5a1f0ffa9d28c97ecd119be6236286e34238f924ca974a58f35509a94c3ed592d7caf2a9554b99c86bdd4d8742af1262325ecb6b8542501dbd01e8c87f625765a1502fe2469baecdaeae343fdf00b4043a0c8cfb6793a6bc5490fd2d0f2ad24edcc801e170b8d131518deb9f8fce25be0f86a09c7bcc92679a20289c98d9129ee9e6baad34b712b1a9918fe79f4f5633cdc4fdd89463f1e0e3611712f9beb5d662bfd8f5343c93e71e109e67f2787826fc0943fe9fdf21c3cddcdd00fffb4febb061878c8737c0ff681d31da4618197b718ede8b9374ef472ec19c93575486b2e4e97ba9939b4def75851f9840360e7ffb562441b3a71548902e7b5a8144b93d54ad9de35a1fafaeebca817dc28fc342bcc23954843d768d0b00216094853983b44bff6cb1578b9e14b5c3b0ebca816d4f2bf1f9188adfab5fdabd404ab02f866118f63d9cfc374bafc76cf190700f08240ff0c64ebe07f0e42f6fb49fc3c97fef38e41a879207ff46c9838fe91b27ffed886263155f3840a8e80aafcb3e16e61004b3c5c304b2ef9f3061ca34715f9cacd0f3a03c1bec9a32dff684737fb0f67e64216b9863180ac33a94da7befa5b9bcee9fef3a48e9f7e95cfa88fea56ef293186ef293d354fb389cdb76a16f7b3d2dbf95c6e62465ced72d15e2790b9b81b16ccf8e0ca6a84343459fa665ce719724b9f44b4994ecc86092a8908c965488d562765dabc1700568bd1ffeee314bdef496d8d44b29016ed5e428b7c1b090fdb9171d55efe4b8fbf6adb596e3b8afa07daba67d7ece7695a3d6524c43269fcbf00de0e65eabdc6721f71dccd35dbfd776cd7da1a88eae21f6329d78fca7afcfe17b1b396ce54145f42b14f6e6cff7e1d3c8742ea9285b9a8d784989b6f9e2402f29e9eaec3a5f37a9d2e3466ef44cd9be5f37ecd850d1e7bf1735d3a59babd9a6594549ae692ffefec25c47f53f21878d1e7adec88ddc12ec67f6ca301d8ac07dec6bb88fe9cc86da67a196596d272ef10ae768a6d2ed35519140909f0f8d4ff68d14c7d431754c95867a86556c7418d7ab8fb65650e2d2546660f6612e4d5a6c6a2261a4fa556b13d0fed27995737279d969fd5af032715a70383f6cfad7e6fbb6e52e545469caec4977b1f7de0bbe0812d5a02d877130f496b3eac87587c65dae53be2ffae7b2567d5db6e599c68ec9470f1b0f0977a19fba3cd46ca9917df697f64e54a42d71d2b41abf170cb3123a4e6b33ad87099ba199c0cc6674a44aa038d762949c4f474aa2a51226899a3145389444c95aaa540c8c9239ee028452126e5191199384cd98a2acc76c416133b42334247ca4193145daa96a298d079b3ea64d5acd6c41714a80af69277a028d414ddc886dfa9e0f4aaa0ffa5cb990450f65935594743551ffde7bafbff7baae9b876c215f2f6632935444ad38e2c7bedebe83ef7908155d6fc3aca22214a775e1dc6038656ea66d9b86d2be2d6aa8eda14c18be01dcd773f7eda5d9cdb2afa1bec5ee357369d5a643ae5f6e7be7a14c9ae973b65a046dfb6a6f773a35445c55c8628726d750d2bc430c6184113d7a2cb184134edcd09b2d7650a187a2a1a24e4d47bf777c5c218b1d94cb80d5071956692a13f506325acd7c9958662f1be6c8df5595a63271031f5c15ccb0cff7c9becfe3128b818de0b27234b3dfe7d6d07d516f97b11a975494d3e181cbce16b17f0cbd90c86207a5c4f77932f909290d2523776c3e7b260a7a351fea7bf077b0d6bfebe868e2c6e7f33abeff681d9f3f791d256fb2af75eb6eb5a8e30b33bf30eda78c0ef03f1de27ecae8f83ec4d5ec40693b6e622e1df60edb3f94691cbc043bb349b6656d8f7f08eab63a040fc8f724cce3904ddf24c4c936f3658989e30409854a8a925be5201c1654a266eaa0c025e688be1338509052a8ea156510158785156c11386883856c75ada94478a197f26e3e25be3fddd51d9b8e0f32ea0fb49a6818253631af1d4bcb306889999c54541d62b6549a9a5d7bcc18d424b0d8f45e8b247b1ac869a828ab3414ab3416bbae4a335f68ed6cb1d2604566c9ebe1a1681946f62dd2b29c2f78dfbd6998d54cdfef90c100f8dfdff89480ff691d5a33e9a9bf1a8d884dbf2221dfaf3f710d1a8dd54207081dd14e8e5712510df1c84e161e4edeb487f2ab95005f2382921c556feac873ed50316170cb5d68270b4ab262d3ef8c94247aa60d64bed84e6756bf32cfe425819b625a31494ac09c904a73e512538ce9856929307580e8984c1d203aa6cc8459b3a5c86ca1467c44c931a60bfde954a02d9c8530b29ddb62597d8acbf942b1d542163dd4385f2ce71119b26330c5f64c5978403695c2c3f1020dc05ec36e9a4a2824800288aa181de0a5e92ad5254fc8f922c3a66f8364d22d13b25fd6aeec13668b55cd965b837dd9256016c3306bed4d1e5700d0d55a6bad71187b645a28f8a8b457d078067bed61dd5cd8fd256be9dad890e4b5b1d65a8b5dbf6357bf9fe199abed0d15fdd0228b9607dfbe3d98a41fcc1b840cba45b8301a2eb95114fba0a43b5597bce425a70bca35d5ab727b75ecaa41298dd640860e2a176243079a6273536c1c0604eed202c1c9612e4d7b4c97e93160d1242e2cc50729363705e52eb5e435293ef092e300c5aa275a460a4ae530f7a6a0ae6a660104b51485398549d22e8ec6d2a0b0298d693bed24685798a5142fac3049da2b6196a698242ba6363a4ca6755079516bbda8656142810a2a1aab5274a6097142761db241025acd3a77ce0ac94ee99c734e7a3b3ef3bd19156ddf736e3d2f7adf79f1fa8ef55c37607fb1f6efb985163e96506e1a7b6eb184d4d682c72ec09e5b28a14564771bf4f7573b8a2dda730b9288bd0599c5e6f6f57e03620ffabdd80ddbbebac3357c7e6eecaf1b4ac2eed5a1eee7e67ec333dd7393f3ba0bc3ec6398fd1c1487973b187659aca371781e53a0f3d77e0eba3d747b6fadd7c9d9763c6b27e0798fe3bece31ae5b74ededd081827b893d6cdf0e648b39a817e2c88f82ed21f8dcc5debbef69d1a3d8620e1a82ba45dfa0f6fe7a3007cd41b789a745baf39b68916ecfcdc6fee4b5b8b3f7e2f5a017fd419ece915fbc3c7e73feebed7b5c8b11b8ef14b8efefd8fb0f87f1c7bc132db2bdfe138abe3fdfe11a40ef1a87bff71ce87a2ba23ce88a28d875e91c75aaeee3c0f4f51aa640b7efd5e208b2d5e63c98dd399cdbe3f1bce7da3902dcf6a827fc61b5a7a8c8b57d30ecfc4958f226217e9530e5636a0cfd84737bf00cf6abc51cf545cf83180e8fce51454fe7a8dbf3d84f7cc385e990f7e0dbf768d1f7130e83bd15a76a83fa448b7ce91c55e7a83bbffdcea7846f1f87938af097841715612d823a4715a7ea7a1c597bbe620a74fbbab438821d1b7b4fa7d3e1b0ed85d36e4f3481dff06edf1d1c016e63579c4436c937f7b396eeeb4049fef7be3fe130d96fb606848e3e6d9cfb394b24e7a73413fb899f7bbfa1a2ee453c83bf85669392ecfbe5fa3ea6a7bb605828fa8fedee29ff21aa4db52c52426daca31d5487e879f727dcc5b1ce45c17eabe15091964514b238c9edb1315fa67b1388154c1b7b9ff7ca2f66b9dbee144523826b8b94c642218b9486e5557ee5298a92dc0b2f722a102339dbb7a88d22a5d9933ce20a9b3e2582920ad0c1a1a409a40a596843b42c2a70c6888387211c3cef7a776bed7bc24ee72d9ef1e4f015d871338431a21046119060fa2193a2776c0f316fc7c642ff91a3eeacfd0977b11f533d217e1b76df09c5bab1c6ba893bcde91d7b7b8a774c3107dd98d6f9634ccf4def75fdb14fe0ac36ce179c83242727e5665394941ea4d8d4dc956b85695568e3aaa555e1257ac6f593c3a4d8b46a89d29ce1255a049762e3305ee32eab3aa24578a98a916283851a395ba4100367534d4b828fe86b4236fd6bd3466c8b9a8e7d310dd74f2aca72645665031b6b85b866d6ea2de9688bbb2eec72d9c5211c42aff237587ea5a32d1c6c5de980ad6801b4da292b2a194bd542740814cd8bf4e219eb846cb5918a68d6341c2eb27d511b67beaf82612a18c37cac236d74fada1524255d5586be86335f3051cb116b1222558b5553c2be1cc514e0a1eeeb79c076f658585915496d51519549f9187a43ed2645d7550caeab011d780001092ecc49e0257f818f4e97c35cda97982ea85d0330bc073c363522f49a6a359c5a4ad1c81a214d4d7594425b76db48d1705a37456b631d35215f9d924a61828ab27b536ceea7a4a428e97a9a65634a8a8a9848b1b98fddcf6e8a4d4aead64ae44716536c5298a0243105b5698a0d25a588759592b335b2c71635953662984df1418a8d3602a1e37c216dfa764816b5df686a89e5e96fa65a0a6d359bbea8596153cd8badf4a7af8db5845b9b6661d37c854d7f6a11a3c2a634da4869b491d2d495cad7d5beda98832476b6e71646e0c21635cc9ff0940e2070984bd7204cb40b212de3345b684bc8f8a11b3f8bf810a408232819161dbadac6cacacab38472781653890c4b05829461d1221a2048990c9459014af910a5186dd50b7b4a534b95c6874dbfaeb4b18636aae826446dd4c62cbba19a12ce3a1269a48c206a011437032082e4c4ea45438af1a2e1801a5602ee924316343005d070808f6a708e69c0992daa7bc56ca1cf69f5aa62b47197400ab1e15edddd3bbdaf17b7a4225751d2a5ddc69970225e80373eb231459d8fa124861250c77987b1cc838e58fe8ea3a251043ee3aa2a644cd759ce5cd13736e74b0d735f2f62b58bab5eb58bd52d4f9bde23f9d2ab2cfab869580bbda43210a1221bdac7d04bc361962f2b64d1470e939aa65d658dd49d826117a796480ed88e33abd8aee7c8093026607bede41a97be46402268effb726743108a2b04716ab045b2fdab03a198a50dccf25ef7aea80c3bcc96329798749b6b0836aeb22166bd24728bcc92365faecbba476e91d952d2f4a5828fe87fe1a93bc610365555217b49848a6c4e1631e945544754b7b4f7562cfbf2bd17cf5c9cf9e217a7e4e27c2e0ee892f709178b1b05524542314be00d13c490ff1cbb7062cf9148189be21adc8aed40f6c434d0ebe008461164963472bed8c74fd841668ba6f1163eca9c09d9634f72f65effd52ab3211625e0dcaa3da7efeae6f89e37e7ae8e6053ae3419bcc83bdcec3654c8e22d6d282986ed15bb484ce2ab9b259fa50d497a96e50c02711f433bbc69afa2320ca1a21862d8fef5fd96e58d61cf7caf0ccfd492cdbaae7a2f4cea68e246e7f3ebd0dea363fb8e0e613f65f253d6bdf76f79eff558c68a64d06561933442c8ae5abcad4dbf9c65921fec4b973745491725d5bf2555e194e856d22f14d511e843dd755dd795d2b92f61e3a38d2d926d91ec397869ba041cc6834c174f829025ec0bb4a1366516f19c13931393139317e7e25c1c8cacaa215d64f1e2e0cc171c64b65c314b780b2f0285209b92b3c54a21cf0da64026666541fe7d655912b6750cfe166fe9aa5bdef29698aa96647ce48f45b90514b6b354528c4030f0d2182c545642a190af8442211515151515156ee52b663b154d544f595e6109710fd22668673686665f09a90c5e59595959f9950fa180fed882192b61e83d9ee7aacf15968ab1aa6785e5c5bc27c8662a3f57f6842144b2264dd3342d1452191c0a854218ab965e04025d2e639508bd4a78ca6442cfa2a275a8fc4a1325d451401ee60d3fe02ceea35954f5ceb02887f190ee824bef0c2f61239a45794887e1f20be8b7b9c9b1e417702c8e0cce061ae459ab56bdae821f43336d874ab06b9530949f05db57c69fc7209048546fa8a83c16de08fd8ad6b1f2a1e75842add2254b18baf1cff2afb58a4587aa2eebb354bd7299d415b28e56c2f06b784fa753f68bd6ecd5d0f390a487bcbfe2d1aafa1cab8ae03209bdd00a4bb5998a08a492f14cc9db9086b64ac977429187ebbde43d5c8665cc65b5667b3a9dae3dd5802533d7c75ee072e617e4d31c65cdf3c22c859e629bbe9764bef87df113420501a54939226ec7715ca73d099ec0fd4b3b185474bd786f3aafffbab82e7424acee4507c3c1e8f0a7742720141fc79aa2b31a15ac6eaec2ea56b22809d3998a625fb5786dd1559b0ba74cdd72664b1566cb9d0ec89fad0c42de50c28dc5993c5986b1bfa11227db8b8c782ffecd6ebff37c97982b28e35139fb79d9e31d6735be5bfc8d124e97a9a16755b8f7f2dceca6964c4c3630b6ebcd888b3624db17191190ef9390cae8cc1483725b35727276fa5eac014516b7dbdabf8141bbbfbf1971d2e51eff96e330f9e96f5ec06c2a77a1df79312bf94f79793e251d2dde92aa1c6623e29def6ebae740956a7b5a04ed70cb71970d0cba1971d146c461b60d09d6e2f6c57cd9bc982d1b914d7fbbc9260f7afb629633d5b545ce8412e63aaa56c8760862be2c276e474a93dabd711c8f6d93502414e03e747f8a9e0f5d1d82fb9dc6215ecfddb086b971e76f28fe8912ba50dc6163dd7d57d623ab31e8f6722bbdfb108d18686c6504b80fdd50fffed5383c5f29c0fd755739e196b3ad36249c898aea6f25156d606cad2d89fbcab32ccbf2c5b60085b98e4c08e0d775b5742726275a076e820c10988c896e628b2b1eda215cd856a4d4621e633bb2118161a093eb07af8263810dc28d23f1fc7d507812eaab9d8527e079af1f43a989922e3db3ce7335a4a6d093d417bdd5ba426c7742b79d11f8c6ef37ccdfc9970e93ccbdc3ae9ef0cacacb77081e8043df35cc816d4fa77d9be01aea7b4945db598e8496362474546496b6227344b772b6502ff5c6a2a2fc441635d3c4b24dc3aa56abee4e4efe04457be92b13bdc3919c7df7e25481666c983c48f3e00144964941fd020f8d92c0a00e00954e1ef4146735b504d2d94d8a9e75d4f1d4e4afa9322636d458e02ef4b5500b62b6841a117444a3094145da1174a4fdc86e3426341fd7c53476571b1894e494747fc67d4545da16b7722baf6bcfc17efd66650e20709c4307defad85a7365727283f69dde8290dd643759145911e6cbbda9233abae7509197eec5a582c97f7b84a70d424609b7158b33713e703fb80b8f1b72274e8890cba1a4eb20d0956926ed40a808878a7c741c21dceb3fb6b2da3c877370d4c95b1f19b445476de5566eab3aaa2f6ee50dda7bcdca5abaf76665ab8c00c518b6c3fd98aaaf87dc4b136dc38b8a3a031460a3712f108a8989c98b30a8dce5ca54e4bd37f39af3de2871f226e1299339790e14ba0c4a18ba61f2a007691d286fa26d307913ad23e48fa2359a1a6da316c9d9df037426db17362f6cfa5b1937b5c49dea88fbc1451c4d367240dc2064df226702cdd8085d6ff220ad9dea28a59c2f0ad8f4b72accd2c996335ffc41349b75daa569db1737249bbeb885b14ff4566e5e6ea547eba1a5b0b0b5adc481ca9868cd5444deb623b3aca56bbe3888f32197916d636c2fb7725be504b1adea864416b7722bf175351dbaef39b09de9d02a74b5e76ce5c6dacaad4479b1c5acc89132ca2dae5aaf03f80d255dfab63220aebe49b228ee19dabef7deeb82850d11dbb7b8953e6e31abd93e7f6c485c5cf004664eab96b2ecb6b2f2de7b6fcacbadcca9fc632bb7cf91871a6adb34ed8692321d806ba9c800344263093d41c9e535d66d30b20ad0268a236c764b8400335ba9f624fc7a0d25f90d15791293e442a688929ca4221a85bbf8116ee3372a1732491e8592d36cf97c490c4a82981f0db6acf68f2ca9c14796d0940c315be84783200b2ca129bf0fc9d76a42fb52fee4f3264f5b775afb1f122afa5af7fed76a228b1fcb59df97b3a232c020c3b03ffaf3263a8403ca7f3ee4fa06ca7f4237406ff2a03779244e3ca1892a7a7005c992a117e42d14bf39464a900487a844174192e6cca22590f5b5742f8661573b13998325764b073f2ebc043ee1a39493ee92029ff0d2b78592ebc02c80ac92c8102aa21f39a7d6f9762d3eae5609b97385dc7333675998ed92706ecd8e5fcd94071a584908b2c016158160dcc7cfcde9612f8225d696f038d5521d4116d802935052cdd9f44b88a05f7204ca8689cb81509297592cb2e836572b61f21acca122130d92ef78062412450a14c1d4cea1a4dfb6d485313166637f351df2f71bf0c7fb87d973eed666375a08661afc31451641d6cd275f1f647d6800afb0f360c7d362cefafbbe1aa98ea63faec8e247c6d493f013e2b0dc427208255d95ff762436fd0f8c7b35e62c1c56191bd357fb454db3e5db028bfae064388bac59f61c0696e0116eacc8a29f36abd2204c2c4cd730b70882648066ccd29c20cb1dcc02c88549aaf72f2d969c2ec8c29ee9615d1747ebc78b920b328513c458c6c5057951642d8125175e028d7ce56c09325b1ce6eaafc874f9547b0bd4e7058975f42359796e114c65fb17cf5c2ab2bfa5222fa34563d71769ececb33f09bf8eb2370939aabddf7addebba3476c3fabe27be21ebec121a4a4a51519641daf5a5b3c71e648148c016902cee60cd9718760964b1e6cb75a22c1fc016cbe44f7e15b371f88b733c094dc2cb08396ff123377dae6239eccec016c8d22092542d8163549005a6ae2b33b95e625e3a8c9324e930f75ef2aaae0b035f045319a601d39eb2b1a9a58ff57d2c166bdf90ab738cd997c6beead0fd2c87dd602b74358804644d619390c58fb5ed89b1bf61b659d763a16317c3300c732452647cc35d69dbf10df65d67a0b3270641900439b003484e121c424dd966b140ec042441236009920ee3a5bbf80d68c44b7e8412248fe0a58f0b1f7d641d9536527c5cdc7c642d8140b8c029dc0674e286e008a666cbdd63163f560dceb247a825102ce36bf960da25418020d64a827d3e252c943ff91e409ff22298fadc4879d0f770f228df43ca835e0453183da19d100e287ff23750fee45ddf007dca5760caf05001ca9fbc0a409ff23b363773e824d4117a95078528e1c9c7a2a2266ea07c8ad6e165c4000b2ca09141d1a03aa29a1241434d1609f96b7d48a8c81e218b602a01623461027d3e07137cc315815bff1d06b822510c3468609183200cb0356adcc7f6d533c48c5b025444673ed6577e486ed898794f320b2d6cd1592617c82a39cd9709b22ec80259200b64812c90658d90e9768d6fc8bb3e98aaa5af8ccc8754109b3e98fa581f6b5f118bc5b22661beaa2d19417a0116662b56a7654276b29295ac97acb5de7babfd715fb4a96d5354446db5aa2a46075491766b0e20ba350e73c35d2cb7dd9a036c2edc838dd58e0e2372db45175eb26758552dd9160685ada5cb035111ec5d62b6dccc166aa7b8364bc8fee2b529b930ebd53ee1a3540098782200769c2db766c433b72645649fb02951ea0991037c34d62c672a368a794b920997a6402cb5d68a6bf05aaf2b7c22756dc69b54c5ec55dd213ca8c1aed6ad196dadd1305b6bad358a204e73e454648b2cdad6b66d9d26029b20b3649fb0e92d728fdc80091bdc93d442052a6d555a655b9d4a5fd43de2d67401bb6e50d1820ea3d709d585c2aeae1456756deabd31a9e0e2f2300cc332b6b55a2664ecabdf20b908f9aaee90af6fb5c83fc8d8576b671536f67e5dd885596bad7da26af689f1864d0919b2f348b3ccb65ab6657f90b3bf7ece6bc359cc5acb4d0ed459cc5a6b5b1a5412d26db5c862ceaea652d94cd5b5d11e84676e083cbbda2e9831bf3053306dab655b34bb30bba96a69527f1aa770a8740dd437492d1591080000000083140000200c080644c231b14c0e64d17614000d749652765ca04aa42088619442062143100100022222022333b40db3c70c77ff15c16d8f6755edc0f579556dc566a0391b14e1f9a33f818d2eae706ce06ebd407fa4066787621427bf64443e65f6e2a55fab6c8ddbddee90bfafb9e7827f1705f54341a2582f449ebc64ec73ce9190cba6c8f4948fc3fd1dda8e4d1930a8da1ac9e843408a6ae98b1c44878a492316ed520c3c6aacbea43c8233f09607ca87c2358633f16e924b0f3ca22fa6e0a240557f6c196000e7a1dbb08e4eee5dc533378936a346ef7e9de78f07dc166772f0561a7e4663b75156c9aa20e170c61d1ffe576690a59e020de297a1c7197f9401d8d488bcce9433086a18039b63208a1bc4702c22d0f9a0b859a80a02ee2822ec1ce6e66c54db457a19a53f3674267f54363dc5630550800be8d97a6dcba94d57b588decc1f17fc2bd087ef9dd6f439b6f744b11139aa2e68adf562ce2659470a9583ac26a62de516c7109318702ae22297d601152ca1c6658e5b429f97f83fecdb009c77c1c23a14a96d1e63622c1aa900d07e777835c8226532b8c2c427621408201d88fef4a0ded7254ec088bf9bf05a3db91de7e9ed9b56450da794833c60abee373023bb363bdd19d77bdfadccb8226b94ca4cffd9edef2ac62e53cab3cd7a44a5850de9d74a3feae7709987a1607966fe48bb2bf2790358bd059824aaae7c441ecad3f44e3ce78e7d8ebd68e46e680ea7ee7d4722f1393ae4f6f92d983b0e80dd4804923d3e40f77b1538f29fb98b207a2d2d4663bb11d678e4e2924dafed284255219a51f2197c32b4e0f113560414b6edf3d55c9585ea93c997deca9628a545a8cbc939665da34697f6f8d44ed7a13b2b28851c94ad3648826cc122de90acc3df4f1df4d90045a5be24e3484a5055a94541bc34e0709aa740cf48125c0887d6753798102878286d040071a53a643d93036543683608c639fb89cc61e518fce407ac8448b3a16487419a4a03d02ea6a9206b2be88f73ca6f84485dc59a44a6d273e74ae78668034bb5faa53152bbbbeaa92636ae572213fac690eb6d4d20430f0a3210329d0190764451eec6bbfec5bd29d31162746f252651c12b9557a971d429ec3fe7cfa2c6c26dacb1a60538e09ac10670ecab1e7579e2f88f1ff4d46b336d17f1111d80897587a88076f948e0d60ded562c15b644022a8cd6b2e5ca85953001a3cfe6bebbc5a50202116aa450c3aa4df013d33d1c0a11e09772bb0970f98d88897cccb476829010a6384da62ef72d0c7f37c6262374b8173e8ea93bac3cce4ef3833d4e9557251e77cb9830b6e350cec00675ed9810490106efcf173a808e3384375d84dc5836a0bb4f330399b2445fe959ab626bf5e61f1290538e2749bb490a80499477a38401b728d62c6fd4978e94464d0d853edaa3f380cc12d070618642477cd926ddb6781a155c83e4755944cffea1896f98705d4c393ca92e5b37f7b6f0418985078087365bf6815747d65289df3ca032bab7594cccea4b07f0ad0c6e1bcbc12f396f63688a25e242978c749904a6cf654523a20ff16400b6b03b2514209748b3f8b4b4fcd9e1559145ae1e6e4ac617ad3490c7e104e17fdd69c0cf6b0e625a78042230137e323dcc50c54913653ba7e6c0cb45868982001705c0d20ade28f5a6fd5ae9c9279931ac6ab40e2aeb947d5687120f2bb3d12e9c6f7cb486f5277111060ba4a73b71c0bab49cfd6003ef1f9c12bd7c61ad8f3db7d0403eedf037d181801f4153e0ffcc88d50e92ba3a320de2e757e7af776496c393cea099ef46ed02ca23f5d4910fa3883af42ac6dd6d98e51aea83bf4a90849beaaa65c4aa1bd5ec16fcf0ca9e2cbe3f79f64cade5e41e3b0feb7c6360c2daba77a72adb5a1ec184116c49a4aa183d470d83ebfa2e0ba27510e9f90590f3e3b689aa09f8339d0ca60d26c4a1f2489b0812eb077e825efd8c7a30886c2a301f50148e2ef79e9025295ab781b08a556c04f734f704dd6e23fa3faa14597e1e65a73d8358ac90589ae816dc32d8c06ef5e4e84e8a6a01b7ad83cc2da15fb88d71fe77c0273b90d87799091a1a39494b1ae1c99163884d87542c0edcd757cc2a98c0fa0091e8d4ccfe0ead1fdac6ad027b75db5dbabdf5bbf2a5d7abfabe265ddb6302d17074445a663f48c2e7de76a11292705a6d54803f51fbdf0b00361adc2eaf6ed9cf70c5e95ef4271480d8f38baf76c2cab62dfa918931c7fd3ec8c41d67a9728097183a9d6e8060befbe42805ae4c85ea147337671d22908d5eb2e48137c0d8f4194e5355116363065b2e688866dd42101f80410267baaf98114898739d436e168731fd8258bfe836a057240bdded33ce336897f14946147a2dbddfdf93f7f5ed2d06d44e33fab0154a7af53c2f84f5e25b8ef542b57eddc9f7a70f8a02152501efc99c927dd91aeb8f86d83ee9177db16dd3b30c2808a17aea497772d532dcf0dec9119bb5fcca3ea37739c7400644489f0dfea50cac416d854ec52e88161bfbbb75896025a728cb985c81f33828db0166f1e7fc4dc72d3e14b27cfb826ec46c32814dd76fa8e0627f4bb5acb5beaa14498e85f339568b6504397c1745cf46979c129d6ee1a42d5fde4d8c807365f8f90097ffd254ae167e2dc655f9f46127d97be4d3f43aa86e25182b45d600f1c3d159833ddd5cc1089725945b4e4f58aaaf5e8dbf1e14fb87043b76a74b6471c9730b65c80fd1f0dbb84b7aac9d6dad20fb998539c111345c5a07193165405df60144673ea21920689cd6e9b714d998404880bf743df3dd802b04db18ec9f6245f518b696402030cae8338ad325268224a5b25f54605c31130757ae8599224dc913290f891cb51cb855c04e09f52c2f8eea0e4740a1f35d77e55fd1f318edaeb05795ee03ee653d178716b8dbafac2965c2dea433b1eaca1eaf6eb1a04156ad9c3516ce5b17101c1e218b22616ef0cdafd7359fb0c2e07ea2c40013ac27fd2a1fbb96b1b041b708af2683af634965657adfe3d44af3b4a2879bf05f36f298c850c1aebc6d62729e78aa6bcb3a4ace1419a5f2fd861e420f5575ecff26b530c6661d9b814634160e60529e5c2a01ce37ccf3acc214185415c4a9a3e13281d02733a19cd0d67deebf8161fb0c77073744e1510a44ff12812eeb4310e945a07a8d096369a5b696a9d64534256a7923552b4f606a067da8629ce6d54e0e395b14aab8f192f4b429bbaf5ecd052e58f5e9241bd416844b9a1fa70213bd44fbc594348788061cc95349f3b20b4728429e9f145cd2393cf2574215bde9cab94e925f1ad8ece707b6879bf8b9559581d8e7f4a11c6f1907ce194eb43afcc870389cf44310d3139d5ae92e0fe17aa2f46222df3e956ce5200433fc5a2cd3831c0be5010a33aab79b47386da3dadf61e33721d0275597a4393b756a8a1aa762e12e2c1453c61ae79a71b8221160def5dedfe335bbbaf91df1b590e3441476adeefc14c46827669b89430331bf959b8db45968cf6203d6dfa31b98839e8fe06dd0e148d174c2a56df0229b96271c22863c36d058639c83da24f135a9d18a2b194c2cdae03e008e086b96f0e0ec936055503a2c35a6ef45a469ededd6d10e08fe2f78316b1cf3ca84a708bc6c469440befdd576d1e2e32f6d7b57e4fb46b7ccecb73c121c49c9e35db9cd6d9eacd68d10a66e3b98a35693d349ff68c01f06f435e17bd8df0c8290264b59f53ed06a06d0f24b00dc92f68a2af38ae033e5501c4d5310a850b7600138b2e83fbc6c739f08ef2a68dda783a5c52e9d65ab93e62314c3b881fbd82ec5d83aa1b90a2125995f4a49cf936d0491859dc9e9c2c9d5d69087b628d755504bc109b86eacbc229725a9adc810079072dda16a91ba3729b46be70eb4653e975d930a1b8a3873b164cf58343c167079f43921f2263baf3223d95ffcf9ca73fe2cf2dafe7a272d89cd66701236a3af3bec951229671504b0b59f2d13e658403f2121c49f30c756e4513822164e85d47ea168d3edc1c3455c08fd9fd2fca95726c7da3d5a583179dca9dfee93884a930a141983e22bdd513241587928379427c48a1296b86dced43f222eb1cd9d9af37802a44f021101a6d42779fd285d87f53828bd49f5cc968d58ebd6f068c94016f42a5012fee2eeb2738fe2e1d97efda28240392d35da14358bc0582da5c94d96c2d71d297222b1f89e802dd7e0d3295714409098db7ff8bcaddb94545067fb29e36f644eb9526efbeb65b18846b0dd83a8e11d549a548ee7383369a8080bf8e6b8ca9572cca8907fb833b7ba720cba6498d9055623816f7fee0096a5f8ea47e71d66659377f0db838f84c1ed5042536b9a845c9cb3950c52a268c48a1edca5d133159ef5e57a1909a64b77f1ebb87df6df3aff758ebbe0d0a9e214565475db3c0f7fbb10ccfa167fe1d8f90b6e7a030fc184de1a17e66065c0faf25aa4368adcefc222c6ff3eaae2456aa3bbabddfa1af08e3ef6d68f01a1ce43fab982413cf0b8cd673a5db78a899eb0db929882ccc5dde15f34a0b1f209134930fdee356753152af3db78837fa4d5b124c053be5a9a5a7229cc81a994e6353e8c70f4f18efe7f75447805b5d9b630aa6df71898c41e53708b53b257214d351814b095f1c61f4cbebd28d03209722bc4d398ae5daa18dbaa7610a38d534a9ee7bf5b637ddbe85795de48b080743b2472b202ff88931c9a2d5760f2535a2089eb4e2451c85f07478c4a9d119f5f0cf177e4fd86e1b49a4eb1801a0cfcfadcfc4a9494a2ed59475e27756ecf6ee356bb0b93db0a97d0035ef31f5b82567c9610552e7bfe4b2c02b7e8ae3535851409c29d32bf14cf950f9f63b89865440ae3d064b2f805c9ba9e13694f8692fec827a428c0a9f571278f24e112b8248a3ff99b82db8445c715799e20e04f04770dcff0df9b776be10c5b4dc7da72f1d44286034a177600bd73901572e48faebc02058595901a8070a6fa3ea2976eafd172e2c226067bd64fdb53b9d4b4b8279cec7087712b3af1d4826b746b3fc001793a188d97a5ae2b3bdf8d00d24e08078bb60bfcee4b49db1a07133c8df698d5978f48659165976a00ea741d03df1fbc9865580b8089edd143028f2562ab5e99aac01a20071e5446bb7a49228166cdcffe58624e81188b565fbb6227fffbe4e53505b2ff00e3567a861a7291df4a3baf1715ad09d5390c28c7d333b6d6dc42f40a2fe2d5099c2e5da29d701116ad28819441f633085a90ffe233bc359aeca2daa0ede538aaa558bb6fdbfba50bb88b7aadf8e01bb9ae3d4b307df9eaf1e2c9721113b92ed1bc4604abb0f4db2222910c0864fc0f7b741b29e439e224c408c553e062294a84916db8bbe770d2cb9c8ec20032461b6c17f5f0d52fd20b0afb59bc2c663ba559f5be8287f9de91be8f2cba6b06338f41a8ca05f74b4802e3064e904480801748e018ccc95a7dd9867a379f97343520fd66728d3d40146602847e5b43d7f7131039d7865357f0a58d9f69e594dd3353bb85a86d35413b532ea5f77ffe5a1daf570d6dea77f16a767341eaf24c39c50893a300d9e88f8a8245a7c395c87d4c4cd493d4a42ac92e5667743e70e934a237f2853f4df74b4cb6ba60df38d07e077e42c64b838b1345a3b1d78537d6e884343b4ecc9813c98efb6ac6c2199fde544846ce800a652adb22305abac174280d5de09178c37b6772f76f035c17e7e537cee12903a29a57f65dabd1c016cb0bd855ea7fef1f43cb50af77c0adb2ea565ac2d2fd7da465922c833aad75b627158672241b80cc291c8bfc4905970c3224b60b12e3472c60a51fd8fe100da31fd35b0010bd478556bff098108b40e2605df55cae88f48fca7be54ab07f5a899209e960fcbd92ed81fa7ae0821bca700ffa280c35c70255660b2e6755cc6c12ecae9d66ed731fe5bf50e946632d5b1100edffb5a11c08556dab3a2330421ae6a125dbd457d0ce4b5baef05bce4c470f84cda06da5820e30e9556c54ecf697a01a217085567244cc8888112db200c6618baa3b869aebc91a01db0a42af392328ac4ef58e9a8e818531daaea156a6f797971201b893da29a6b4973ef7d20f14f52e27b22e957fa788212e4d1800332b828fb88e0c461f825503090fe9668298258dcbb5644815910c47bc1d4e04053667d1f1e59c8e21de33ced88267f0d1b78134fa2fc3cc3a3d1610c62e702565d67019cc95749aaab36da5c7d8d289b4f51602e2585549ddf1db8ef448275e972b50d8178990592bf1d4198e40a7a015580e115728fbc40124454749d334fd6a6662b285d26b32e5b8886414659280f7c230f008c999d97620aff3c21919273bd23b9512ae551e6f6a549e0be5e4130344656bd25fff2030d5016b1ac423a320b9c6d66c8c0a96d8f715ce15d9482521b40f8164cc323eb6068f280674e33eeb8afe7fe449b58133e64776495182f98e840f90d07a7320224835b31608d5f0ca6ca0f38695706ec35d930fb2b8146c8c6c1b31f6e8f3d00d443e4ba4453a5b086adfafa17339e8b50d8ec2d04a618ce7796ab4c5ac11af025b746b47d49ff165f2b19b4a1a5ff06e464d03d615df144a4a7de0c869a02b0210e4b850436ca0a2064d87f1ab32d19919aebd65ee88f1cba25001fb6c9f5420bbc90a4b66710d2b894abf2e8e1e0492850ec1509f3acf1fa59e94edae650f1304f7f5e5fe24ba91a1d2388957faed04ef5d4284e9b5e9c94bcb643e541cf2a04ee76a61aca4d586119a5c6966212649e657a2fc9b4ccdedc80b33e004569673428db38933f51f37acf78ca33130ca50507cc5f392a875c73f49c81594aacd4a0eee6972f140c8c9f8c2ac516fe255ff565ce89259561fc2816cec6b179f5a677ff81a6bbbb1db9de6df63cfec75148a84c872188217ddd0630f04968ce9c194df679e5592606195e633fce24231e5246d27d98d73c089784e46ecc910083c0e5caf5b9c60a9d4acd897222ec53c54f8ad8f335619c1e96818bccc92db14b54c63cbeb43305b0baa133525b12eabc041eb7b8baa7e397c0ba2e62c470a3fdcc199974211f5fda714fc1b877bc56934807365482f8bded44ecf5135bd6c8e6b2c736a71b821c740d5c9261c367d424d10506c77a2a1b9051dd5587011aee428cc8d27ce86627db0818b0882c762cb67c61494a26ef7133899cb5d7bd5240e7f072ce21bb805e1223615f4a7935be8725b6c387e17fb8ab2e7a605bb9e1ebba7150daf601905d3ca5fe9f2d2fa0daff810129c8b5dd8fd4094d024ac31344e809382b38daca5a05aca1736a552036e58983fe570964557cc509b110700ab5684a2dbd8ac0a6368e3a7f82542fd6a2220772becba616ba7b03b2b481cc2f18f79109527da148247918301dcd929fdcf30b92439162add6d6b88f93c21897b20890d02b0737b938eecdafe22e97c65d966c8f33fb9a92bd341c3737e692c70afe5dafdf3eda2881de8f653ccef001f57b8fab933853d34fbfd63a2dd2c269f2d1494bc01d1bb9e4b2f25d5319eb2e7e868659181c47787488b6411e9067cd07db6d45750dfc2416dcc9f0ae5ffae85a575fb2197329a211f3cec7472d89a89c495f2a707a5d80e7beb3cd5e3934b9a689adfb307c52cf92048b2517b102bd990d09ddb440419984b3efc0fe3cf828132dc7099be1a2eaf60c416c98977f7f7a4948168f9084ff0aa1a64763d86dbf2fcf1c47de91b3f0b46ad0dd5233e3e52a04857ab86d4f4283809f89f47eb14e8259a0810bbab5b6d41e96667443e20afa11c7f7cedcb6dda7a97f36bd326a2e5f29bebd89f28ce9d2d9c928a95b953b81a665c9c90768441ae70d390a42ee61ce50910409fe6a2adeac96d9cae111ce2e871e7a3f5c514aa3490123369b8a7b3b573408e623a133538ad8b0a4c701a186b0655fc234e434306d226c9c3af0e10b6e8af579b8da3ae357c5ceff0ea0bf1181081cada8fd6a3186e33118e6daf6052583692f460afd49a82310b4e04ce67a6b0503c4d7dbac02e855c7e78b7aa9838924a84f5b4db48b50d3d3dd4eef893426b6440e6b65bfba30a38e236909373ea6ed76651e58390b83569a8883daf7386d34946d18d8610bedd5c8fa491f614546c97544f5d38cad1e9bf47381d56d1ded32c788ba0b17a41a654891ebfae880a1c9b1935023579d8fb97fbc894ed91a80753829782f02e131a4c46611b8ae34ea2f5274a40a9d153a7484fe7e4401a7b5dd0c2f55b920e6caa27cd66dfba7d2e7b7c8dbc5122c3610b90e58428d0e070d5f7c450d1fe805b9594b0c3da8ef38679e7f6c9ee6dad0fd50568f0a90befb180e559602092899a1c66272d9587a4ae491a2a57e290f77ab7f6186f8cf476d049a588efe3b5148b98b7c75f32a23fdb539649ae71ca55ed61859b9594332ce57f2569fb2266060901357e631576d342acafe2b88867600cb11f39d04c11d957886e71ba86ccc6a6d535c386b1d562a7a9629c46beaa322d6ad570acd8568616f09b29e14aaed8119b71333b4cf078947a592f69048414001b617c14cd7ca63ddfa0feaef76cd538b004330f25f9f9e0976f7e1be07b25b82e73ab0d4159a6e2da015e312da26e22dda81f48e421300a10ba5d6038d118f714facbcd5b2a80cf0566fc2ec377f10c432c39b1e913c7cc5d1973f12190db0abca41402d24245843980ded4a11fbdeca625a99e43f3a60ee87a2312c3d6aa167bba3675bdba90a116af79b4c7c1a3c7ec2f34e9340bc064abc6b68422503dd4a661876718e14a9c118463e58129c70401d148138172ce8ca4e6cc77308b2348041d7356e0f78861dcbcff101a88a5c741e1f5c1846e27d802cc2280eca4b8698836e24e0fbd324b61d094ffafef7184807c6d04fee52f1027730df1dfe53baf5f5dbbbc96ddb1fa4da63fd57c8c8c9fcfbf78f482557fe118a54ad1b07759b420d0feaccd9d3e8cd4c309ce4b81f0a24a9aed2c5b1ecc53a00c957251e0457dfeb5c9cfc71a2e1d486c093249ec99a10b09e5443bfe0d70520f66ca5fb721cf442c9bd0d88017379745fe678b4f56d752ae0a8acaab7e09f36197b69727a90e3e165614b6e101d08c4391f172f3c077fdd86a50f8763ba6e4b333d676af5af3ef9e8fc22868954abb3ebe15353e3f188972a7956da3e08cd75d65c7677d8847fb739481156e31d16364558a459c282ac04ff3ee3c823d5598a1f7dbc88e7408725d829bd1e0f2f6163d9ce579446fe81b0731d6e318660ebc4d23d151f27af214cdd6bb8e13aac7643dd0d2e8a04e293e8b37dbe5d42a1a219510540f0ffb72bb597ea2d166866a1d01dfb6158dea8ca4d050d64c0cbea51fb40f99365f1c4a9096ab3bf075ba1e9a39d48ba4065b0cd336da2c10cea0e7849790de4d9347ca5c034c62a0fd77bb27c2e7262a5cc612122e10fe194e1674816ddb390a6f3c2f692b850f31dc5357a703bd8f7d707ffd68441ff7c275f019528bdcbd691ec01b3ad60d8a9d46e8c6f79e1f94054a2d09548b628bbb4cec503ff55a2fb84bf3bbc706245a203a1cce26fb8362cab05fd1946158becbeba3fe5f5bcb98b793d7b398e90585cb7491e2967f301b7c4cd74b509de8072ceb85a62a82a8a2b6a787464721d84637799ae404e5148370413e168a268ffe202dedf763e61cfdc1fba1d0592192f127c80ec9b243ca7c31e182abaddbff60272b309f4ba81c724282b2e136946643f453ac17cdc8ae2902a2552510d55ee12672c9d9cea754f1e9615814236bc0402a530114c6c93034f4a8f96b02c4f1881853be1c47cac9d926e07833457175df8096ec4b7b6a3f95f801412518dd3e928f493603916d15afd00083165c9e0f4f119fa564394f1e0027997f82b0b59a7f31fc4474839bab82e98c1a12deaf1c5b5a88c5e53302bf0fc12a7d214a6c886a6039aa29660b9b9b9e9bb42c1a8c38ee41e423396f0734ac720169321d003f189921da6bf72283f9f8b74c24a7c6e3a97c1940984fb30c16d06b9dea5124c74da858fd04a70bbd7342c3d0476af61b94171121700c263129d24a6d453be2d69327f7b8c1e150bd238dac63a4c77b56c75350bf4beb1e4a5a09c53f6d682a64d54347588f1e0c8d70185ddbd333fe487f87f016b14ac749832227fd428ec981f5223f728ea2d5037aa8806c87e2ad62cfd5917d33dca352fadbe7df7a7f50fec613a9656d2443135773e59565145afa396f143418843cbd79d75f03da0cd43fa8112eea0ee8290ecbcbd520166dc132f5dc2bd8dc3fc180daa8cfdd397e8155604bc82216bddb7e79197237532f2634914cf74bff61541ce1f71d930064864107584d05d1e285f50149964af462f102068bf93f6b6212b2a84197e9ccf7d8e83e1710755a6857fa0490723cb04da87a2421f0f41624217ef98c9df807de165311cda1b03980a68275734633ea88dcd99a3316dfc62ece25029ee8829cf5a3fbe82cd8137d49af13c1d74f7e706b465f3ea3e240eccf1a7d95d93c00d87be524b321ed0314aebe50172cd904debf8cb714af18bc93397b7eb7c98db3d755fa6ee8d7f75dcc17a329fee9768b144e38baa5b3540138453686172cd9e71ba263dfc76217ea7a59e1b371d9c57c0a6283b4e21c1bc2e7b9567fcaa4cf61c48ae89087861b38ca7f66e1fe73c8e22c6e0137bd3948bed541b532b4f724b992af915656b85259d9067e9e684ccb2cb18d93f42ca1f79c62f35cf54b89f6100d4a84abb2808a5d878a2cdb3e5e7b7a2eada21553ceb86ea377f0710e08452619b9905c2b4703027a811d90f8191fd69ff22a10ed5d606ea38d8eb5d662e65a29d74024acbf40c956859ab8dce77a16c8fdce17aa68ca03de5a4da03ccd50f76ea632e65af3a5f9bf2fd23fa712dd49eda98e8ed34c849fa331fc52828d2995a3a0eed6e09ba476b011adc86dd7ddd058cdcaa23dcc53e68f6859c793c72f516e0f9c5088febf794c31c1fb1aca7726682837a6a7c3d0e47bcb82c4bc34f5fc3d5268088b0d77d9993f8ce1a2412e9c2bf60643377175580154a3ced2d24535d3881b7f18965a8a3984d249de2ef91930cc6e485c722b903f45ce043e1488f3bd367fed261a7fcba74de4c9f4d1489270b7ed02ef3419e14c4b7590658681afce3a07811e84af6b68825b4efaecaeafa31dcca8d624051a1e232204a38407b0c0cee3c73373e31ba4b6ba77a3152f0b7275cf51811cebc81e2723a4a4e003c65209c5c95bac45177793859525ac6cb7fb86e360c2361cb00ee1b8f8cfe74b1fa94f7b168920ddacc582cd2c80ff3e5932d440cb8750d2e5b6d0f38fe07eb4959ed6cb62ff7ef6a03c50f6440446b17207c60d87fee8b57a4e5c3cc4e915934f641f65b1ef5f01e69855d308d828175baa1d016f1b27b1389f0d420c1869a49b254188e69c981691fada0f9dd5a922a3611ced89996490ee95ca430ae77d10faae549cf66b8008b32d46d8b91d85e5697229e89a0f324ff124f6c1ca0a0ccd81fb861db4224a16adcb128d02630ca5d841b47821ddbe3113347c7e06b6a33a6ff7dc66c6a31c00f72f30090afa722f3cf36881c86f525a56b2913912e8ffe57ec13c9f70f7fafd5bebca37a4472b0cc7d753a6560170058e12a8d92534fc15c1295052af2ecd79ffa62658144c627df953b03b4ef7fb86d6a2a5a55cdd37c70c939252bccd93570052e11f7fdc104b62a8599a392d43079d0c7298ed1e6b5a2c4eb3a906a805da1b1196390fbdc19b96f2bbdca54952d9d14e615f2665ec40e68a5c3be287076a3f5ddaeb86e1ad1e1db90bb44d843b59df47878a2e83921628a285df7f26c975c48a4ccbe7125d00c3a4e96fe9bb94f2bc6bb3314c566265bc47f42045dc41b50e93e3d2091a7a1bf8509922bce22f47644697ab19cde21708da4e4e76bbb51a52a46e2406cae7247a797ea62dcd1e8e88f1cfe43b546465220082299277b449e71155808735297c84e769dc8cbbf62a8259d0264c4b44ad9486750fc8976b5270d97e2a784041eaad2fb5bf37c800269f42e0ce91027031dfdb1a6fb0d64aee397794f032ed899dc53f0b13f65b757b422f8313a9820f219caa007d602998f73d9cd63aa6217ee60c0c4c1126b03cd335538562c245977d6ceb7eda2a206ea39177d54000425c888011f00ec222a3a3ac2548acabef796e89bc338fa41b20c52f7547bebba265caa134222b8a4f7d169f52125a7649f3c6f5b8f0ba00d588bbe8194f0262fa0c4a4b4a396d8fc6b3d52bc592ba46150d8e30ea92d9d12b16a9aea41d3232b75277a3213dead10cd625fce9c214555da6373c5b6c141c1e33e7968fe1308d88a507cb1dd7f955f632d38e18fff68345ff63694bb2abb02b6458b134032f845a90b6516df21ca5cd0b0014033394021e3642dcfc3ef34aae1e7630d15d79614c216d6dc58e1dab667d1f08f65a250b3eac64ef3eac67d5daa1b5bd5b68ad76b7a6bb5f90f242837bce520c91ef12a8ce7f20e09b6202d583443e48eb52a58d4fab617acba303a01f0826e2bcc1fea91aacd7c67bb93efe759ca783cff2878ecf4497aab2534c87406dd4467bb5ce623c6aa2cd3e88116262a8c05d09ed07cc6780694c1de57c8d410b5f9b41685831a6509a3c0b581a90216cc45df43cbedbfdb11af3f6bfcf8ae111c382c388cea1ff5df4251d0f4e206a514148e2f476d8080181282a707129f0c604634c0592a4a837e0deae917bf56351498a2f28ba38c1eafe4747b358328726705763a81570b3de11b6e13b90aa6744cc217c330507bec40f86f3447ead40b7a90c1f088828cb96249da1a06e92bd79e31365ddb06e8b74ea9e51df1374df2d42715122a78b884278c0e24dca6a8ea3ebb82c22f0f35f7219a4f0f10daa3bcbe093f1c43249cb6eff4bafc865d57fc39139ca9c1045e64b12b9bb0a7d53b12642d08b6d5679e56a6b550a8e61d841584381a35f8f49ee163a65b1234c0d3b5b4a03455aab3b377a75d8d442a82b167af3ff9ce0100bdd8a1ef35d5404ff3a2c96baffc051c238787865501abcc5be77086a4bd63c900a7ae8542961d941592136ffb43551703777d37117881fbe01a6a9d73548a4acd03e325fb5bbdb82a9224cc9e9b23dbba55ebbfc5edabff648e26df157f2f9d7aaf89935fa02bdcb3dc43196d7ce968578e4c9b695df2756734f9821e9d9c1a239e8348e44c00e64b73098ed72e7b3e89a6a476cb30333d1f6a330505cdf046867d45b02614386a9d6661ea86dee8978547ffb736058f951102276448c5897c1cf8011856ac7fbfc299c026d9a3aa2427a969fb13ca540cf04e0fbd60bf96a2f57f3a4b2619a6fbcdac5ecc6c813e017dfa726ce467e16cf3423f013a773ae0418c0748091cc1a994f5da4fb8d37d907074592c107da77b22a6ce2b223cf59c3919ce788d4d174c949aa6aa158361b04caeffac5acdf05102cbf2b62fead442f2003677a67bb53f03e912bb56be3302c6b927e4844afd7902aec9d8247a6c58944bf15f3021eb138cc6a8e2748c375181fe511e0ccfaa5b419fe925c05b6e6410a03918e1926117e2210052ea891fe4e4b7bc23e380bb54aa47b90c1e2149a180d6b2e9c185911c648a2250cd61adac904a5079685c61a961598e247e832f6df5f703aa68595604b04b59ac11320d1b5c4958c67155f2c209a9457aeb201147c60ecf5f45b60ff7fff725256568c0b2f29f95026915c10f394503f9391c83e2c34ff7b892718008f3edcab9f53d1e296fcc08360bf704fcfbbffe6db51f83b0d9ae89bba981027fb0f1f4298570153d3ddd43088dc8df93741954608e421dc4a14a26f56fe6883bba2731dfa10f1b2914c640b9ff5a1aab93978078d847aff1e4f7e24325152ab1824324ec73138eba10d77cbd115191e8cfb6fc552218a7693ff7255bcffcbc903591dbf7123c0a4d6204dacd8dc4084961ca4a252b553a024b9f1e46e42c57683fda241e2937f99f22bcf2b5fc9cfa0e07d1d4adc88066f8e85eaf84adf50b50b893e1c4470135d76753911262536556c8fb6ca68c95025f6946df7a9bfd21cc4cc08c564495bd0c9648c24af306e021ae8657c788d3b5f399ce020b471fc81cc4cf92c3f737702a3d10ff97c27e00b3134baf81e7e4890afc48118f67b7d7087e513db752ac386e7cf4fe430cbc1b6c9f0ed4158f610debd4fd735b3c20697a11f33a4efc90e6f65d09e1905ebe5d639a2e31ddaed497c256aeece2f0e7239b066120be7804213bd6195b3ab9d57d34dbda28de6fcc8e47531079f7534376e811e75baa5a3abd4339515342e80ddd130506062c8e5c5f0c2507f61f4b8c312addbebd356ebd3ef50665d05e987e88ee697976b10ab840883c4b7a3a759fa8168b50f07d5c3deb315b2001ecb2106b375c39524cdc06d8bbcc2e98ba1cd991627301ca5ab1e15184fee0fce65afe3e322d3918770ecc3878965e8380126e352fe2fa2f9e5b3319b0c60a6723e22dd033d11f003a8b7e3b9c031f20bea3e99298218bb4b49f8d0619f91e1f21dd15f0de7e28da0e7bbac3c6e3ed895b17c7bac1c5fb1bd45e040bbbeb595c6f8c0f48be85de8cac226f76fabb980da37e83edd6a10488410dc2ffa5f16c6f8fd5f0057e35f8798a44490c260d2ff328946f3c80a08f22b4d1d19e6ef0a8f96ecacd1317b59c47070be7587a22b52810836c8c89be1085ccccb543d80f9d0fb2fdf5f8dbb3bbdbdc92595cebd83b0c063f566dc09483b78693b9b9455f54d1115db06f32d9cfe9901a8cbfde98b0dc5d6bec3bde104f1b7c0a90f9fd814a615727289d2865d345398cdde8c2c1735f5c31c164732961f1bb0d9f75c5ccf4167ba8abeee24a8488f8defa062a730af350261ed64c73b6e5ed15b25414a20b7c2d03b840f60eb9bd99acc32b9265c2ba9fadc18afa2836383a488583f1f41870fac8872235db2d8c7c24919d07715a4711c038c6bbab1daf380df9609bef808ac533d3d8513db0b2563bafaa682674ac5b16016e18c19c00f06d27dfb60a9df092b576a8e197e970d347eab9712865315f35c13e8fddba92774501d101c2a5bad8fbc1a6aa2b58cf4f1ca923dbcaf7728b4601ff6860c312d966eb84aed3422405c382a8b7b49dcd8a45dc997ae34d4f50be08ef4f5c6a3cb14927a437f86752cb4761081dc875ce5fc6c8a722f65da62d84c51b75070633974734bf092be60aa207653ddc51603fdfc30a9b26daaa1f61420af742375015e6f21f343c49a21c018d8f5a9ea42c4f5e6dd176c5630538c913cb0157f54ae4fe57ba8e9b6de54f135844f2bc35fc40b3e4b197548021c9e1ead9306a70a27312781960fb3927877de1a11ddebd10776ff960fc13ac925802b0492728e5ab7f8a0cc78c2a16b227032dbbbff896e0d3d6b310329bb866ef21dc64a14e11e4100b092b4e52be1a432c92fa4dd72959e616fed55c77777ae3e7d92258040913043fbbc02132f1da5f109df3253325141cd8757fd28539cc3d48dbb68b8fc586f4c8e4cb7e7018a0584981f87d9a88029ceb54ef5ad078a2933f709864a243858a9c1ac8bc67b40333c6cb774c489a854b28b9ff39802f0734a56ee743ef5331e6f1a62ea5ff5b2d2137d0ec1e0db6e0032b3e9049b3657042c4eaa8b3b60aaaff5bec9f52e1d96d9039c8c5f1e1f529f6507d7bac86417e53d00231e78f773bca316ef039a53689709d449b56dc1cec425b47189652642376b8533a8c73a1aa3f6d8c8356eef8e79fa1542794a71c34b9851fb85a5110b7becda9e37dc9c4272f2461b0a00b7d474251f9024505b58421e0124c23188fe82330d01354380f5bc1ec921809079d855cb026928569e29265593cf9d4fde0991ca4cb2c89c1d8481236801034124e2e70aeebabec85c8adbe52ce6e5070cfc0f5d4f03579a8955c3b161dcbc19eb1b4466d3e1694e297bbab637ccf34adb810d04e58d706e20f6ff08e496a6053cd069bc5c71a45755658972905600e5cfff7e754e0aedfeae082ace20e8d7ebb0253f4ec61cf0446d76472b4473f201ad16220a590b41a2212849df30a88d98b89ca50b91834d1a16e0e12877bb4aa1bae74b7b9a80252b49f7595df60524cfca80a4cd295ac250cfc8d268a4ad35d23525211740283c8db47ac3a65223e1cf0e2b469cc0c035a91c4064355fd095690afaa164e28a64a2e122191427bd6fc812fdbbfd8ef9c7a27b975b58b9b01809261a0923c1220a2e8c07b83645c7c3200ed0ae8ee1d832acd644cca079461d05be0b1021591d8aee221632299a09a083fe6e16fc2151aeace5545390bb3f9e8a0ab1060c49cb2e940c1756aaa6a4fe7c02d05b49f998c629ddbce637a068db15189885c603112cf429123128534aa498e0107fe72789596f446431f265e6e6a4290acee745f2f4adcd329064de423bf40d352fa1b32c49b23d39cbb30c9614dc5335944bd79a0fd762c5fe4a6fbcdeb5742007465f774d56cb0d5ab9334007b96a4916ebecc9c273bd3b9c2687475be604a55df687d738cbf4df62aa0230ccec27e225de1c1beb5784d87da48dc8fc1b3b5c9fb8f900f0b5ae01a2dde14f9b7edea585abc27a09d74f4016c88656422d36aa1020c6203b1f100438196234b2cb8100eca5c5b4f30397bcae3c565a4844727273aa5b15234761c5535d138d7b4ed6c96b4093a95598ad054e5f7758c262e135683c160ab23f212b237640878c8480a2a80817325ccf1bcc8f9d4a265d512a1076cef635eb4ec8ea0e15fcf007e96a35ee24a337817958d76ee01d531a9b662c69f8749da0b181fba609d2111cad3aac6d1b95bf9f1e5c76735e80f235563a649d0e231cb43def1f6e0696e6524791a9b38953e72f350366467586529ddb8f073dfcf30b3c6448270eb758d5a309b6f0ac62f935e9207e2e9dd019e82d152b5807969d1e18a9061c5bfff7be7e87f3a8c4b8358af71162cf8ca4a6caede31619cedae4e40e938bce4c0c75baab7637ba77a120851bcc96646e2874eb2346a961c92b496e28e8c2e1eb5135765ccf6f1b63475df73fb744cd0bcae96d6dbbf3fa2a5ecdcf6149679ad39aa3ae9bcf8713059f5bc8de26e61781b7474335b2397d1c506bcd21ee651237d551f26334df409f9a9e85f5710fe11374d9edc4bb6a7f7a8d5e83d820432f23ce4257fbc3a5719571ad63274eca2cb26ecb562b76bfe424603e93894d01d43a4b5486b2996b163e08ff06b4c2c8f908fe3e3bdb4839f82f0a60776f189898baf47618a6559867962a0183e327a38e6c0b3c4edbd254a65feb0a6cb89d1365ef87de201cdb5a66dc0af0bc3d502936aeee100cac4f6e4598ddb1d463352e3d02b62bc60512227331899636a3fb110b7f823aa740f0daf75ddbe86ed6653682b55cd438acd5b5a25714803a488100d847f6e592d116e95314ffa8d80ea2e562e50f481b7dd8aec1dad0cc3db944968ae5fdd3af2c462a9603a5602a86e3b52700d8b0de7aa4c932fb8a36d25f5a0483bb064f34a26677896d06fd1332580d705fe18d52617aec08b6170c4e3290f765e15f9e117e2f28b859032dad645a1ecf6a934c095edf9c326285732aeecd9ec66e1fdb4d2c653f1ff4ca430e7cbfea3cf6f23e4caf838e7cb09c0fb0225840c2bdd7b8eebda305f16f056bfd05ba11c8e2f2fc1b93974dcbd06c1ab967d303bc199911a808df56c8dbd3a42ea16791a03256cc23a0c0c81ec66a4e81abe1c7a6ba5876054d5ace9678b6a233e760307e1f0ed3c9f1fcdef7eb7b50d0b8ad8c400f623d1ce8ccf0b0fe606139abb43e387773770d7a88f540d4e358d774f4f831f62c2c14654cba1c2b49f4dd9b598dc0fe9975a699e6f03608f9b540d4590a0b9ea020c0658ee8848518ab00c14c44fd15d91ab9a8048b833e57b978ed26d808dfb341dbc3111ac40f171a025a2ef82344ecb0206d4e861ec1dc8ca5ee8968b94b60fd759f3f8d852762c924d2a43b08190bae50aa4a937e01a5a557d7956c95feb7bcde0f3214a5fdaa70a228479743befd25d88a6dd384de85d7654aeb7c5968819ed0c91a6fea5c1d4573dbe78ddb1445635824eab7267ebef561b8883cafea0d24685723f6aa6f54f03db17767dfd05f40b4f8d6c4a95154cd1fe4e2e9aba6594558f8ef5703bf289240f7e8057ad16d5d519a9c4993e4bda03aaae69e534b47f9464a33db3d319595b3b99fc697379aa5d3a7f5372af8b3bfcae0057e6953c6fc27e68a279061ce853d98339238849aea161e34bc4764246d5297f323b54c872c12a13f8c556e9a49398269446c6f0bc8a068ab4c3d604ab799644ddd89bfcccc468b32f48bd2616a59ecb1764bc86196793f001621cdf8547365ada1d87a7ad082fe627df44741692e5bb5fa432310481eb72264a943306347b661fa7aec07612c010d565936bb39e802d25f423ec15b70dfafbb17bd5013a7cd85fbb77ab49afbab06831334c9a71e88724c1dd2b02d5bc2fdab0db6d43d0b40024844215ee1a632f819bc42c660a38348b52df3a63f031b853ee677fe01e0120bb716e1a032222aaaade21d8453fbfa20969bd419148236903ad1fb05e6923d0c3b6610ccf73b7352dcefc6ad2e302da6063aba881106489c8c319cebbe34039f71bfa943c9e8893064da486732170b7b372f0c8198bc3a9077b367acce96fcdc12716a368111d479a4c51edff8d3f291b73f1091b55efea43c36843b556b517bab6321081291c0ed6e8a56125f43c11a1e18c86310a371d61061d9918663a123969c025acfb5d7996fa827eb3e36507f9a4bfc06939ed9ca07c5fbdbed338f7509a29ded9c313f82befaeea1ec856c30309074c1fa93c54b8e328cc108042225b0c924471434c350ec8cc97faee33b4f30189bfd0a8555d9b7aca56cadfd04d247eba1e174eab1fd38b311d30ab319d09c5197c00b941cb240ce7c64c94e04569b4ea492dc48811079f082cd858d47f3a1068dc5651450795a5ee35fb7324bf303f35524fa43fd5e71eb7b77f0294ea077000fb2fd1772f8fd53bae12b59441fa1200b33ea7a80e2385c04504ea0e92dc631cabc5e6a244a92fbe54fda3292421ab914ec81773b03ea46ca96aad98ac6f75a5e82167e4eeb70af6d8ef74eed5ecbf58c95f6def3bd1b2f725c2426388d8c1ae9d22ac1d84d48540a0e157fd49e7a196749a6bfa088f81e8dfe0b8e5a6c535bd97465419c0b53794a60a1e055a27b3d8e83f5f0c1c2c04ae1b6acfd67c52c9a5f193f763e99d313425ec0708a29cce991654bf8f39a1961aba5b17cf6d64777db1f738e35b0d76c1b35f3e796d75d2a258623337f5e4867526eeb80ae025e6866c9c09c5858bd8c1af7c57631966b2902453648a2c708f8e1ba81e26b81a18871967f746117c80348f65742c9d06d1eee94198e2c4c18b33c7975646ed1b53b33b9311f465308216add7f941259bf9e15f1d92923b1984891e2bdf68db2d35d2ca15346bd9af3faab9d116e0474f5c6db5f8c8029da24bc47ffbb5d4ccdeb80d65480df04ba4b7d01d50dc5b00c02f4791182e0a587e031a1281d06b498ed28216f3f83ef5e787f07b574395a0d695886a69e303aedd51031e3b85cae3af8c0fe8ac88257260373f0c63ae6eb34a3e0541539a3233e87e0f45302d39364d10c6a0680bef4bd1264f4a678f1f260bd11ea2f0a7e2cab783439bcced5e8686d431e52d18dcac8aece979ebb7e04c7da930b500bedd6af8c569e2376ca1c98e1a40e5d3c0ad6e5dfdb13f4b8c10c3d74ce109c030509abc991552f34d2fa1abc4e5cac5f36e550651c0cb257b89f24805e8b366e53d03148471b6f8f827e540d41f186946e20bdbba436d9f93e3e25110738f056d939de449cf42d81fa62d03d1eb2805f329836a0b5b493f353da81c05cd40a8ac632ef21b7186471e0f082025f0c4e7eb5af23ff9290e415d4f540ee47ca5180ed743be6489817b8db3301c2e39ce69144ccd584c2503b17ef7160eda91c32aeb43ea88a5e69beb00b1bf20f28d4684d25904f1774a9795b6008d2ecfe6791dbbe968d3632422d60414e9d2dfb044161e27c5684776cc01bf3c9a8df1ce6245344fdd01140011020158f058c4559c6ef2ac3ac05eb2bbfa99c7a10019e8b3675bedca283c766c0465becd247f4925495221a4b6cc6e939a047a9d2aca5b159f885d21c59875d6655414fa3c3d20c8cd1f390bb4a39f734f29ce85d8d51732e90c982bbe6ac1f5c64bce1d6a7bdc7473a85a34c611a56e1a347c1f5e4e3e6c1be73a1b3e8513f896f47c8705441274e4183481178e778ea696ebc231f19ad0b7e399e083f5f2937bef2016e34ab95f809a445634735ebd75c03052bb862bc82922e18f51fa9925fb68d3ca27c31cdf32528937fe0e205dcf985e4b9705b89f2470fe4d41a2382bca5e2d5c9aaa115a20842217201929e409cea70027ea03246dd69ced85c87ee32c0897095c0e369210dd1c549cf0198a1409649444abade8921afa28916f16d0fc68c0a8544b7e4a565d005d8a7b947e24a3200b5955139d4b5207c5d2e2f020e6a407a6d388c275228555914795a32dfc4502a7faec062fb625f491a013c7dab5e9d0b5f457d8fd7c31093b692db1da5a55be95467c178dbaca6d390dc3b73a9a0f8b2efc81d33daa338672f0d854ef7959a2aa3f904eb215487ab0ce8424ed754b0e87b6c027cc7f4e86c562c5b2b8e81b1043e68679ccd72e8e9cc85943c77c5190acfc178c24bf7c414b2ec93e6410f7e855d15bd67ebfb805ef1aeea618f06a0b252481fac81e6fb96a76e1d2e77db2f07ee673be832b090388b6d4ddbcd250608a24b39022dddee5b3878dd3b01a15d584efabfb989852a2d5e54c5b023f2c420c9f73004c19b81a03c1d33c918e7576df715eff2e771c6cc7597656f9e5f646618a289919eb7bfcb7f9fdc18dd28c66ecc145aeffbcca51b995cafa27a1f94ee20f37a8db9a221996232d603ac100ce03336cd29442753d282c12a85d54f815e62fa4a6f9a3987f5ea7643edca682c1e1bc1f01780bd47471be69057aa91a3590d88d828ad217df69e7f2af681a9e5b286b201cfd767013adda59204746e5c30cff23fe749bc4f9d80985f26bf8cad8e5e4e43d705f3f7006537ef1cf3872a4ecf4fc481abdd8d7883ffd9b3cc2d3f6624fe028123ddb0e04efd46e1f5c9ebeb5bf7289737d82de0a7ed0dd853245cf4ece7bbfe818b03615c542ef7a1f395dfc8f35220e7be4d22cfbbae1b8e30d4a0bb586b011f815f0ed47ed13d3e88b757a1855427d01c2921a8738c8a8cf6fc3100b2e390a84d1b9c91ef790e831bedc615cab8ffb4bcd260238efef2a99b95fd208801270d93164e14526c73871f911aff2b1a91eae07daa56158b082206e262513ab852a60e1e8a1bf83da5f9bcc4081c601be72c7430cb84c5e998aa45bfac072bea914d2b2131700ae71a1135a59ba8e6a09fe2e9e59ca11a9737f083b8fe95fd5f9385efcb1b5f9628a5b0c55bf3f8b8c249385c3f6caab5a38b2891c3c94845adc95cf2df6e49b60d55ee28854a985cfbd410bcdb00f5a6e0522413c900812b4700486c50b4149ea385de12a9bfe586c5b51b4a6ea9f611790d1d60ed44a08c23220afcb2739aca365b1852afa8a006dd8cc27ec22f81b2f2dfdb8868cd4618da2000ad4da40756667795588238a38586a8e2e78ecefb49314202af892468af46dab809ae0aacb7971b8eb013ab311e515dde794d5bcd004aa6ece01a74777e4a5b31464e11379962be5994c39a48f9ac2f66cd3d23de95693f6eab12c29f7f8a871117a35c5863fbd96daf5f04f767c6bc0dc5938ee412c8cdce662f0eb3f1ed463da21011db3810c302da8c5f8d1c48dd74c4113688105a33aa781b562e0db9de0961f861d81b842d6b96940242253b6a84f0e3a6a1b1a46d4c46599c33d76e46b47068fce361f37bee5478cd5d30aa1f7c3d4e55b1ec84172248b1d15a9b1476021b7c953da58e42396b9109f4930d4cd30e47319b49ce0f718663bb898f96e39331f2606d62f770c163f4175b7a4923fb3109035f655d23b57288b800c269c74e76cb5ba9428906a2fc324c4d31339c481f715d5c6b912d7cea1db566ef2bfc9a4275b3cb692fe95117d719fa8d1f6fe7209ea3e71727168066416bc72c2ab1ef6643a4127948be4cec198d18a2804a12ca3c75ef780edbc0859281a209fa6919d7d656d699d31fe33f0a0bfacc3817d78bb07082bc630731cf0956b9881bc0db7022fc64b8f46e80b4470d51fca8e712a28a8f5f8877308e2e60d11f4d2e96622e42e81ddcb32df11b70460b43674232338554f476946e74fbc5fa24073fd9819a056c0656bb3e59cc708909f339b5208e31d7743296a152a6c17c54f436d00f1992a20886c2d86c4dce379c3ba2aafe68c596123cc44ac7b211d159063df8cc4c0788b4ab53b24a0a947dceb0fde37e4f53e340a8c42dce5f8448224cacad9f57c9691b52070ff223a373d9c6d82478309122cf1820ab65c132f6509aa69abb497e4cee72d589e00bae12e03fed61ba08c230e917505c5fadb609d4f548a9974f7ebe12a1be90cd361cb03f315e7502ab70f5de8a21c03a89cc84019ec496a4ac0a1e7b2a21d8026d36393c36670209a0266fff01cde196a54faa9683215bb9990ae9c5a4522a3cca17a8159eeca4f44f8b094e4b7244b1617851496803c112a2f7d14213d77f8b105948862ecc2fb92b8d352580c1033c9904d2c3556bcee3191cd1188c83cbe52749245f167dbce0422a9f8e749cb07297598d8544d09ca07c0a0a117342fbf50d58227cc367cef93a175eb159462cddd342d352083f2f99ffebfc8d9131cdcc561b6419399c6feebc4b2d26376873d56f4be802a209eb286c2b2f22fc21f1d642d3ecdd9d9587be7a3d02357211a8e2d413dae55c78bd64398583f0e7fb36ad22ad8916e0801f195839e99180114f0d584541b77269b0e25df129575aed5025d1877660485fd87ce00deae0acb1232caf28584120f8b803b53ea9406cd378e01bfcfe2a5ae296e79d7d60ba7e3dd061c06dcc16b4b046131a1ebab37b1103731afe01d59695e54338459592672c64d6d274c188b6edae9e95e8e8270327cb4943aadfb2fa5f0b608ef5643efb382f46ab7cf9d2c9cafa27b6e560ec77d845a0247de8f01b9ca30531b4537dd2d4e280e3fd0d0d32029a4dc4ca639b72857aa61b0d2615940e9d5a0b9aeb607633f40d5c9a04e5da3be884773e46a563d269a8c747663c58a0d7a81ed971404796417f783fcb074fc70656b75cc3fb5fd9230f182041929902625088f8550fbde9e5eea84fda678004c5e2409678e2c656b68a592b2a60b5ae453b1d4d3c216d462cf198399a9cd7794da8703438270949b34f2c5f67c59f9224d12e3c7f5bed9b517378dcde32dc56d4d72dc820db89162c4dcdce2f584813b5226028dd4b5dad75a5404661ca480fddac6e4ea2ce0c45207d15fa8209d7e5c1f441300972bec397b920fdb78691ec3b0999a4a9c632e056cb0c5513463f4c70ca12e175918b56ebf121800ff718ab2fc03f97d0d75d83ab7d97563d9d64207dc1c483ec8d339bb85210cad83d8e792c6272831b37a67f2bdd71d6c693b97b883e091e1615578492a92c66b3ce9f00f24d287ba8357bf695925d80047fad1542984a913e0d0fa5883ba25ac0ee8022b4cd74b51a18d0c502cfe994340adf46dd892c60068991d9e5d185b1b2eee85a14aa585c5c3bed59313c6ade09f0e04cddd88f7bc157d8ae1c619b054440fe313e03938fb2c02e1862717a2adb1653d3be5c65d0498afd27d6df5b9e6536682d8ef78592765467c7262001eab5ca401675570f1e7635d848753cfa69698006c2d236adb327cf48758dc8896e54e3a693da93e694626f17c2b7c292e8bbec5149e4b855409ec2b0183089826105c5dc963e912832569e5c9cfd7b9e858b0c745d1619f72f90055e21f58141ece389e170b5b2a40c0dea86d50081b47a8146750e0ff191ab6ff1a96c2a28e9ee53dc3f58aa8b454555b32620a93cdbe3cb769f0d54979f700040b1a521b1d5d21857f9568ebc4c372ac23a20ce5be25cfb9a28ff5d7d7b6bce6ab434017e78f3737585413b1ca1b58cadf0a4b4005b5458efd47a4b3c34845617906ecc5542a857f60b649a515f5b12069969b96587b17053df8dd5bc73806df9ef93530a61d69a2ca65ccc7c3b59b9aeabb6ecdeb01697f6fa7da790583e6b406da07e8d55f759e7c205bf5ed866d6156cb0c60f91e65a87f0c510a13ff7de49e872240589b20ef2c8c88712d066651b99db6a7438c7545c9d914eba1c2e8b3dc3c2cb4897fd6850c6d296334d84571745e14abb73e02e05416899ef4c04ec76c7fefa5a96e2a44f049fa41aaaf850523e91dc564fac05fa8193f5260ee9246677fd666052921a837e83087e7b9a37c8e835048d7d85a8dcb0a1311811db37e0db15372977b4285ba9fa367ce1f16f921c132f543ee4dfeb7ce3063ff04955ec05a1ba64de520166542cc77bb1b0f889f1162ac1092042a338a43012752c49c1eb10f73785fc0414f1f4dbfab854365ec80f047c3c2313461a195b9a9c4dfbfbea88a0f8cadf29ece29195f3e38f905538a4e936c47b3066b292626015beca4e370eac4cf75aa74807062b0f307fa69179036be7e46d8fe32a82b8866e4c3b1a32438a19f65981f069852a098912e7083dc3420b084251ddc20379ba146870993c322b3ce237eb67fca84dd7b2aac5c0ea037af1c3fdcbd156a1c925478739886b58b8ff6f9ba779edf5586b28de8e5d4c2708bb5e32b3916aebb758e7ad667e3f746ca50ba29cfe1385102666a35b81cad026bfc6ed58e3c84e4336734cee8bc9addb4687dcf55edc6d68c23608d11729c4ca664895482bcd8df826d4bd61ba0aecc1d42e03424bf259e889797bb61ce761533167c73aab090826b088d667a5a608c54a2a59250cc3de4ceca5ce64161cffae38691566a1bbce6926675dccf8663717d9a90a6c845a14f65b380a68cd0ee5c10ef9ebc415a9aa5ad0103efd9d0a8c883f3d76eaf7690c1d23719610544204f73f1e84d1d81f104c3ff6c10e90f5370fda0c03ab16011d59a0163da3485c927d6565c5fd838aa90c101dfc6eb339dfb3e6c00de4c9b9ef7c98edd2559de3c8b33d3ac35a65daec1450cefb2bfdacfda5f83024f9ff992880b1fcd9c2402f5ed094a048fe20858223361870f7adf14d424d9a6ea15d8e7229cc263ad97013841f263087a5df630695b104b2aa1c423cdeda2123ea4183c14f722e6658581bc2347155e0f1154b3521f261148b066fcca70641f22f36e27db864c1cd31a0a99553fb7fdd742622e79b30b1cf2f6960650aa82d87d7c3a83745d512e1de3d30e0ec0b1cc81853214f5988c21af5c8031c7fa7515864f622ddc7a9176bfffcda84bf8c67670a4e49205fe2fdb877e155900a6494d8a0e2df8b12be0e3a63426e5e06cc8da1d432a9e903efae1acff0e580fc5b0808b929b30938f155ed1da30f9a6b95b34b8e620a9d5ff1f5c1da46d3eb37f71dd3779feb5ba0d8a65f4d3843bed9031f60b7bab4dbe1fdbe06961e09b77c65fdc52a12f089663575684f64548d440295bac8e9034090ddc82818636047e172f38ab0482adabaf783fe783a03b679b2cc585a90a9e80790633cf81941db6d7f42eeb58a3961e43694722cfec5108bc4420d22a17038b81a83f5ec3a2ef6dae50ab74dd376b195ecba62bd9d4cfe7442dd4a4a8d9069073382094a45a24ed9871ee59042e15653f7fb9ce9b35452f09c204456d0a24a1627001e818a1a1999fc87e64c694c590d87760a2511721276c974c7305c1777e502dfe8eb6db3ac88b652a7daba47b550832ef2d3738fb1cd02d76585f37e38816ff031db9cac2c24eab87ffaa448eb456ad524a7646dc3ff3a5a75a0c1b3af30c3cdf35dcad4415c7f8f7072f655707c418d4a754ddbad7c6fae4e51ab4968348d967aede4b71fa49958d85766d1e31e8727b80007e363322de5698828bb6f497a360a4e06ab9ab5807ab80db31f5aa8e2e156ef4f8319b9c4ade0af800ee24d27b1b71aecd8ad1cbb7cb553cd2c09391d55401a11e1236705f55eca19f96784efda4eb94013888ee014ddd6e8955356064de02efdec8164e467f753a326e8681e56c462b57a97b411f07ed114c819e4daf2bf212d71bab76d89776a64d17145101b5145c16dc9621d64a811f321520fc1328b0c0b5fef6a3d1188ba281cea7e8ea3d50cc8b81f00719bbf8c820662b1855ea4f9cf715cf2b5b1c54041af138a13689e1521ed999fa6da50f40da423a45e0f89de0029f450fa14f48b88133ad5fc720ad9ee770e0ab7282085411fe614743bc70ed3144fd90d6ea79ca03282bbe3d1980986b3cac1331567571333cc4a28b5373c141a2b7e9bc7e80ac57df62132b2d97e2071ea14d79bce878789abfc5ac9e1a169714af0e0959c9945951a1c44bd5a3d465ed418d0c8f2f532e4e2d076362656d10df8a12b7c0617544d06b857fdaa3b19317b90dc142132bf6c1e00faff45466e5c81cba85d4ea8a459f5ef864850995adf423705f6c09b85049c841ea6ab936f9196d4fbdb2cf67a19ce9d71c4f0e37673c8199eee83342dd3632a2a44157c65b93ba929aaee13b4f4ba1b2a951d886e5a15620cc7ceab8245657cd3041ed5cad21a02232d3a24f9ac6293d377203c33cec9e67b0732d4f27be90eec3ab8566e2f81179f5023f7488553484942c951eb0d18443c981e364f101ac5affd801ffdf6ead6c37777f8aab614d1ec16dc8e419f8659bfe95d70df5b31112c39b40aaf0e67eecbb65af5e92a4faf82e7710f8cd0b08b2e6f91c8fd0dd4217ea4cd0dcd2206291c52297072af0ae5e138ce2aec73e35851cfea55748fb51400eed3a39e6f0aba2ab4241cd6041d422624a2b5756fec57bdcba7e4f74dfe6cab0f2cf70ede7d731e76008ff70dccc355edfa26acad052fda71e70db31a81bfa25785e70eba33e44da32841d7df7954347f961598f8730207936a7581b4111e69eb0c88dbaf9d5b9cbdc5bed43a5c88e8d2605a14a87b95e7f8b0e73c93664877ce4afea9e71929eed5178ca51831d18a60d18ec2971c1cc1577906adb78bca6a96c0878bc7ff22e990f4b0ba6e17d66a5b43e96018c8d31406616eccb523177a38d7cc0fe3d0ee4c72751cbae3b1f5876d0730c3e72132995816ae0e39aee305c4f3b87f828fa6ace861a293a0a3415589fa571cdaebb40f44d3125a97d777098e719a7c201d01b2455c0e2946bbc9ad08163ba18918436b54af8ee58a2e77757c736b69afd8b51ea392918503993634d3406d7d5c497ce8da83a01f7e7e42b40933bff3ec042382ae37908c210efdd2aa8a3d4c55be2abd3abc7c152d49417850bd729f21f35e976359a6ee6b80004e7c751fee7c7eb436af83ae136889589fed1e50bcc41223ef515a1b1e3709ed147fa456d78bae33ca991fbaf8c344a7098c1ad10ef6d2652b4caba186e74373b921b8dd6399a2ab74ef951a0ed5a312b9a4b1b78b14034d18b511552e5b8876c15600f5435789ee9928d8c526d86d6118521b9a2e68ef5c8527bc8c515aa4f5b9ec4c96069ea9202be5125540fa894843476617f513a48435055232e904c6d1470b6aa722e61b006862f0432f9da9db85e1c36361922d2be86e0b291b308dfa82514ff18281c1edc6ea0718d029ffeeaba96bdf9269648aaff94355fe1bc83d683341f1356348953951d6c44a9ee96f4adf23de825d1b02f5f4d3fa00115934f0be9297ba6c02beb3b274b755ba1f1a1e2eea892ae143b1c3aa89e294a3e015fa49d947fd3fddbb18d8cd02619ebb6d6ae0c17c73ab2308bf272de23f80b92a858e04bae3a4983813a26dc7028de4c15ac431acb9ab384eeda5c78f95655165376366f851a49c91cff3518175d73f6fed70216938674990825a3c68b886c1865e876527f16a5b41cc5568ac3edfe3eb0281c0a12075848a4542db0ed450b1a9caa098f14f048347bb57ce47b1d6003e0b99c23df4e7e0a02c306b666a99b56460928c8dd13ac6efbbd2e92849e47483e9accbceba16934ee8d9252d9e6de1facbfb9c1963588fd19114656d66fef4c038601e8e272d5b558040728abff90573851ceb3170068c3b46f36b74ff83e8d918a50362174599fe5c1a93f0dcbabb5a7323cc0b27ca586bf67233485c38f231f79b0f4904123e621bd635772627d2fae961f5d28c1551f5b9c7b47109f9da56c7d4536af7b688526c1f5ecf48e556b879213f9abc9c8fe557c0f170608b600f690d0c857eb77d36598d308d8c0c2dba5820dcd123080531747a61a5bc7140d617f498416d83b33f6ea2992cfbb0536784a63ff41c2cf9a5e5e68d9f7bdefa4f8b77d84d8366afe39cb639a8a48e0d5178d2245d9a3d97faf5392dfa29a4c6e0ac039f69a6ee622f42427df17611c7954f578da18dc9b544fbc844d4cf530a73fcb0477b6d8085ada288c2181af75802640123829e4c5467e1d05eb382292b08b6fd4d7431ea2c123f595956c60eb078940e40ede7fa6db88539d23359c1e0fa9298b480d2da3929091ba115799a005d6c1f5faedb296091bc3b42418d64cd12147f5e8ccf3275290aef9796e91e6efa3aaa651e3521764891e104afe18a672601b14d2b04d08f9a8ad15f3d848a4e028bcf02b8a232a2a79bcad4909d9922bc13be4b8c499d64552781ee933aa74d746946b8ea557f48bd339c132edd050e05f783eb06165dd32dadab95b24e0dd15c36bfbb5c610ccea3b35bfba6915e42a88319efe7333c5741f1840f915f5399d1f5721791159b2cad9e48b10d31c91c767025d1e7dfd209903baeea0ea70d3baab145ff710c980fd0c95371749fd018a99146d36bb6ad581346cb564770ac8c494d451a7929c3115c7cce94ba0217cef98422e80f1d8d47280c6930009715e2b8be6e53f691346d1fb577c31a6fd4bf0516ea0fdd26c6b955ab37f3d3825640689d979dc1b4de87ee0cf3cfd489270b6ed120b610aa2e47d70bd09c60936b2cc9f837eac6a17e954167a3dfe09840802e3d98da3ddd2e682bc19e6e37978ca47b5657f0b07f7bf06401ae48f18da64c4217e0ba0103233e55a38b72c22e7aaa469ca76ae00694318ceb84c14d743c5fad930d20e1fd583d49d8aa830503ea363371860f6d5484704ef51ec18767f18b4e8b7ffb3bfa85ca140ec513be52324bd4f03f3bd3cbcd90b95760230565326f6c800bce0eedf100deb1a52d84d92cfe869813b64e7889d5790a3da371a0c253bb50c89da5bf4febcfeb726a80cb08bb88bea46c6ca95d545a0eb0761e07c8dbd362a731b6febf1f5c49cb37539b7d770cc7a98ea1d0c97d59fa80afabc68a8234d4ad57b88a5413945c5ed187b407aa02b7c756a2f03589f9a0ac580093aafb68cb2d375a73bd61b0a1dfc2dd32db560073221194ba7bc3a6c69fc1c7f6aab58dbb28f344c50cf0455e1c5c00cba381b602effdb35a891827b03779ec34bf63a3bae1ba321ef015bd66cfc34ee875b3b9db1d2c71aed630f63518b02d22dd3e2071bc8f0d704e47984579cb989b3cbfaacd70a753ad17100b9b55eb93ba44668efa486e379c986e65ead7e7e836e8979401eca47ef133bc70f45287508977a1bbc28db7fc09140ec99bcd12e0dbe0248cd3b268857612ba9c492df80ff1118989e87d86d54ed1b02028689d45f22794f376b43e0328388bcb55f2220dd92d64666fb826aff58c2724da3c9ea8f604e66af80c1280fb22f08d86f92caaabeba80189d4d04a5478224c3f7fb93f5bd4e1c0222a0a32b6180e8dd9db29e160fa920edd3716191b12b0dc8525fb5b485454964ab5994b475bccf79bd7fefdcad5065743ab8200a929c18551a12a60217f74da9e9d832d230eb2b5499a1d468589b2f02e07fe574563590392a096ec8f5e0ebc18038d9d602a3f335c9ccf3945a70c5ab20858d65c6bbd910788a9882a4f137beecfd91ff1dddcf166c843cd258b0f7e64e7bacab8ac640a090f496e15e6564822af2422b0a8c6ce59831a058867747776202c9de54fe5f8fa36cf0095c387693ed8e4ff24c29be8f458fbe11eb4c431fffd6b614e94265d7893de3ef96e600eff0844d95da1f3ea79bb31c0c7842910c3ac7a76e784163c3f551e51b40c801a480c52d59b66675b7b2ba93f3a970ddf8bcdf80b462ef1df57c89815b1ef96f4f29fa56ec7bed532a5394c6a710ff781e0a8add0911e3bb780f2641518346087577543a213d057f9c9a5ca6865a0d3a3946696568382361ac8ffed72c164e111422df0f57a81ed290443bf129b7b2c10e63996786e7069de6b83d609d109604f13e39e1d14ad0bd88da8628bc606700424488346c28f5ad32271ce1cf0cc6e47685168ea45399038c842613232961f807fbe8f836a1a98e8ef71b394b8bd0ed63a466ad1cb18d68405c9bc79861a8f33be3d2f2be46f9bc83909e0331d1b0135867d277e06f8e06fc140039853daa7115d936db712e9b36cab38b25fd567f5169ee869f572ed25c65e65d18d2a86af731805775cf2ebe2f816be15f27962adf108cb783fb0fba46864e0146f5e2027b6fc3d5bc58d95062e412954bd321973a2ad703618da4709df39f933a6740e88b64fd269f9013e216e5d04cae134f4a9e01c78ae608f76ccc9028e766ad80529f0a3c6135d59843ace785f56c5039dd13d6ebb70e3229c33f9ebd3ab0d0803141c527889b9f3f06b5d6a09f3fc364c5b8f89213aad3a027775ac7f1e67094a8b32a6144394af1972a9cb276b691fa7ef8b0fa5245e4bb7c73e7d8b89b14406b1681de6c135b5528df1b1a8a292970ab21fa618d4ae3542c93f4f1a2ab6ff3c14ea511535b6c22e5ce92679bda6a00831e872c1c6911bf5f8745e3e0ea6039066dfe52dcfa31d6371fe2dadf01aaf4298a3c5dc471ded50891a0439f049c404a74d9df6587c5efec13cc98a6979554e6956945dc279b9d028c6f5a3c6e4bca9c2372f85edccb1813f702fadd6349c6a42c2eee4be9b802a693411426f0ada7a80f991b5dfe446d51b45b3464de2584f8d8ea8caa5bc8966db2b64a51b1b540964e539e62b5fffb3218bb5ab5ad479adf7ed77b604bc2f33e02ba2bafc35df6730fd8e577b8fe6435dfa9605fc05fade61f6db187dc070c8a88a232d95c699b554582b28dc5333445a143cde34b756a134a73d6ddc8a732d32caa47db2f6604a935289d748f9ecc321e7a6bec9ada2428d77ab32a2841d4544e5db7b06a0be402017f958c179275da670a3b6ffabc29c718e7be7f307d7a305e399a55a8eb91298126489117aaf9b426f5c80d203631cd073d33a0775ae09fbdfba6add639cc1d020b8c8b22c459501c199dadb246206299bb0e8052a7f0c4b09414817af559ad6170df0c405b25a9d9e60d62c6a4a44221da296929bd9671bc016a94167af3a5557e19a0862199eea33d2af7ac943e8683ddf6fbb8e8d6482a02ea6fdc50cf61b8fd2608c26ee45da9d0802f0d80e9d2537df15ca933a397e51255a3f30454fde77713cd9509a7ef63f6032da72d9173da4635863e1527ed0ca58ae0fa587639f497acd441cb0353db40c2e056a58abc83610e2ad441403f4fdd74b062268db01731da2cd5292949d95558f29957977b90d0fd5d1f09521f71bb05a86a082232e0ef321861943415ed0757f797822d52b2369b3e7895837327e46d3c7141850e4b6ce8dbd4ce32bc6c321465ad504d0dea456c177be2198150705c3ad2c2134f430ab6589a53cfc596284b5ea7ba8fa56dd5ecdaefb17fa8a6cc964c3341099779a72399c320905bb89eea3cfb5855ed884d3cd45d6436032173257b7462c73fa7f894af6437621f5c4fbd9bc763a60b3405f33cbc8a5f475b720f7feb7c0122b2e80bb1925754f554a366b475585a5e74ba55cb47ffb1d30c6cda4d66be61175f8d4c75830feb68ba4e2aa4ba60566a241226950bd9abd0fb5d9a6ee2e004a1c369b9a62aba0519ba15412ce06ad82b762092b114e549dc7a834f428d40a40f926d4f0643c373e9c0d8aed4093e7a0303d79894a3936017364241dd4d2b2796b7d2645824920ccbb7e12c2a41dd484cc6822f66a6b62567b367f15a6125c85c6e981f8867b3015d6ecabbc120bec61ffd0581a6f331a8ce131f6ba814ab41ca6eed29fa1f6212fc263c0bf232f6730c18092b91e3fff0d4985eac14153de80a7eabe76b5f04524d17d597fd6240cb4dcadc1394ceee5fd20308d0a84b5e9c3afc454396cb72c546a5f05a16cc457a0a5d2223e360fda9797ca0ca0faf1ddb36ba41a8cf00e18a641b8c2a6e2315de3ab9a5b49a541a61cc91da553c23f5eb1fda7247ce564b287c0252007a005eed325def91a7213f6541c1855f25cc1c4c4caa7acc62385ef8dc38ca1944506fd061ac3a001c21e9f427a5854e42815bf366d70a7e34d332445ef25e5a2d420a96dbfe22ac84c05f8e5c75cbec9b647bd340182338fcf60fb8d47a01b7de586688506f408a5af2206e631a4f72f7f1d64c4956fc13056619be510852433d480f9666978c90ae8ff8daddbe58b266e98cb72562ebf71d55dc7e3fb22ee119bdc4005e5942eec42d5215641e343607c043223b4105c2ad7d1f5e38b6722cd438c7d7b9cbac80cffaab4920195645ac9dc9f39b7bd1c76fedf811cd2b5c98d1ad8c2e97177a0d9f248507bb731163a198f42a47ea0cc3883a7691a13696327a246d4c609be87f71a88de0156c3e1d8d4ce2f2836cb15e260a12336c6c7aed6915a36acc29292b0e25197f89cc89f7ff70d18651ab1753488f491c488ab4688aeaae4c529cbb3a59927218cd8cec05e67a0c7ebcc4114da07bf3ff2280033f7b4fc12fe81308c72fc5ee2e72257884512189120c504315cd1cf9f37b2a42f642135deff4dee644e3fd8dacff694d80883d11b2a558cdd400b05003792e8872c48561985b6df5cca5f2dd89f88c87e42a86709fc70bcbf4a51b469f0ef7a5fd0f12491e084b15a2d80d189be604aa640782073f192b9654339def94c4c1f00c91aab70b078dc884228b7a7881bc70b3c0513f160a05e15b069a9c820d7117956c42fef9555ef16e8844dc4532b356d50441c2664aea614404c79a508506b5ab2944e21398c49f4094bbada4ea08dfb28c2c7bc8d916c9558f46e8bb313ced12054d4eac801103536bfdbbad811ac579d2020e9b447a075b79cb43c0c5a3d26866fa23f51767cae3d30cb5955abc2212dd342084f9866f9d017d13a5ab6195f605d5d26fea203fc240436aa260d274c11f131dbed9e3297b1cd1f2edc8ac02ad250ca258ae106d949a17c1abea2ede2f652f47d75abed166ff7b4c887c010dbd8ed169f108b1d7b9ca1cf85887c3eec6d1b0d492120f1e47119cd8910e6b8649ce5beda552b8fe42231d999b062093bb16e3cd62476a4567ff057865f7559a3985ff198de5591a660e3c62e43b3cd3fa0ec5bc9679476de868f5fc57f551888e52d398502d51e899850ea56380b3a92d0b615b5b7e0cc7ab44f64dc19959b381c1b59482a852d0c8b5a4deed0cdb70e07d00ee4ff44085d090fb5a0655fa6bddd61888a8ee9c4ab78e4c94e35b32be6256b6397be89d8b8fb934f72b512b34d370e2e9f544abb83acf6891f92dee91863bf83d0a3e8f0fcd0de454174c4f0bb5808444729461a643d72d6e0819443e732deff6dd0297f261ac405ffc52da9269c9e3a2e9421c67c57ceaa49206f7889328bc5cf5731840f376d11117a392526ea44bcff2632d3b1f18b9e6ccafdc0c31b9646cf815965beeb78134130e3591fb1a5b1090a17de88997392ddb0a03d40f9663140c00d02ad1b9fe57e92b17aa3d3768c83fcff1cf742f816158c1b275e444824e42ec01538ff88f383054dc1e5804f3109f31023dedafbcf162168667bfb481e71f852225f423031a6d36ba80224098fd986e82329d20a2f783f33903cb8a4e352dedc44a68736c4cc4f8ba7151c8cad0c73a1406bdb1fbe3b273bc706435f49e918df20e357f04c291e11c9314679c6b23d89a6e17ec4de6d615053c4649241aeb83cdbb743fff61d43cbc69d52d8147a955317cb8d0e33e144cb9a4a1e211e8ca08cc4f783f12b2d92fcd0dcb4c4066a897dc226a24648bd610b755a94040d8be3b4302caceae49718870c957c03ef958d8ebf1baa4ddbdf9b1d70f0cb466bde4870a63f85df7e00edfbb9b03f05ebb44d056dd47c4f4efb3b91ca9e1c047db0a60ca82a9f871a8fbfc955d112b13721b60dce602d7364559fc90e801ab83ee7a47df244ab925b3db1c5e5243ca1f1f05c5392f2e5bc4a54426cf4591d1d00215f7839d7d6219d54d24c15f53d83693924a4e83460b475913ccf45ea2722ec6d7f3b70499d56ad364a23fb47422f4be3b4cea362e98aa184757609dc71f6c6f1e027166acf1caf088f195580fcbb27bd6de2c34b0dbd36ce0248334fc4d4b568036bf792545782a934687bf69e266d41a6923332d21bf022ccc8042608137374194a26db34fe555c0666c384eb902df81b1cd361f17265e753ac7a4e4191e90fd78f57f0b2979e1d3bd0f1b2cd86a297156e39c7a7d8f55780594076ddf869c28d0b9290ee28db04743aebdd03d4d63f9f92f75c26163f2b91d5046ccd9971b5fe5127454045962dd74f83ecbc811d50b5eb124a037c0043c0fa01fe7d5c4e84a9c327ccb8d625919399005220f18466344c4181e1944f93c08107e939e5949d0f935d05d46a6b5a49865775c5efa9a7e51ffe57f9152034de0bd5e585d3d9cd1f6cb64a7d4826f0fa24e99e71f3b17c7c0a51896db1ca0e0ee14df2b82221cd7a14234f67857181de398b4f3673d50a9aabd70da062b80f7af3551aa6c20ad42c162024c8954d0f1ae9d156deaceb629da1d86bf86fb5bb85133a4387d0f43f3039dbbe9b4e37c20469ab462e463c23560c1ac752b63b018d94431da1fd1834089a1514eca8276ae00cc17640263ae2dff504a7d9f6d5461d55fde30d5b49383d917cc3ea023471044abc0fc15720da15a903caffdc312e4c1aee4ae5df6913fc702822f2629a1686b3bbcf55f1f9bf97c098c21960e638503b21da989f6a32f87bbdba32baf43b8149afab21c88fd8165548451cfb6dc9c6472b84ec5d42f6de52ca2465450c440cf30b2f2fa0e936592720681794f45310db3923f0dcf64d371898898bc9a25d062c8cf640d550355b7bb04158d88908279f49ca3e0a722ec0aa3db1e879e20408527e200594578c7c17efb91670f3965fde25bfe859499727c977d196d4b676f65d5e75dfc6e7bc48adea580f03f32cadb23d6cfaac77791b6fe3f2365cb4d536ac7779177dc3d244607477bb9be3b3bb5bb3e9c3f8a8b9bc32bb9351d97f79f25db20ac8cb93afb23ac88b56d57f79957dd6e7bcc8877997570581799787d1aa0af32aab55405e9ef5362fcfd2373cf66f5eb40dccbffc8bbe81d1392f17fa9d2e6bf6d543646896b43edbdb5d55ed03a8ea0f14f4bb9f9b7f324df7f469a73d8e062ddbaa2ed3add21ea8211a6322c3761366c2abbd76d671949a6e4326328c41032b21cd8d1b37c07c6af2c4649d7eea290834c61f36b34a2c8d6b011eb918bba03deabb28cca7ba74c8aaeb744bd15229a0ea7a793cbba576627b5644aa2755db305fa6827ce68bcca22b05bb649827f3cb9f6ede521d80bef73ebb88efce3b3551e22e1510f273bc8a530571f99877f998f73f0d55174bc5e920e4e778f2737c3932d98e826de758b0e36fdcc82afab567475651fd83cd8ebf516937f44d9deda83e3b7ebe5cbeac3d3bc82febec46ae3bf2ace4bb7c59653139c6238af91c312fc4bf72bc9d55d70e1d3237de259f6e95e49eccb3925c49fcdecb23131d30fe15e7318a0cebe5860d98183d4ef11d7a865345e4d03129f8345ff46a140a0accbbe7f22526bf1c61b44d62be68da7597ab564748535f870d5d3e3df1d5292828e7b96dc8f325803c5fad3c5f38f27cf1d8ae3c5f2c610eb519de875f2958dc256ae2d27f33a00d59e75f309ff39297178056d187791baf0202f3365e45751098b7f1ac7f795510d6bf3ceb5f5e9ea7f462561da07bfa9d56e97091ec22aef29f9c4d5b3816609867bd8ecf9123abeebb5025fdea1f6c747c8edf61be3c87bef1207ddbfe39af9f2fd6972ea443cf17cc971e94237bad02955eebeccca7ba6274bcb332ca56491b30cffa6f06a4e10c2f803cc27064940d79fa8e16cab684f51e2e79f919b2b2cebf5e1ed5e33df72828ee42f568dd33c2fc06987f79b7a151507c8c794bc75b22964645d9fe3df269269b0290672551b7ea32d9c81fb9c8631734c67f863c8e4334a7746272ca679ce2a4bf8e9ca255d295533079fa8e3215dbfe397ab67fab16b4e4e55f2f3a558493a9234e2a41e233439e3b479e2f1d3079be44de16f3dc2827dc355fa826f33543a36832344a09f92f6fe3f2304f7309e62505eb6e52a6cbc22a6961a6956df262b6c4304d37dac322a15dcc191bec934fe9746ab5063007404f3e271fdb5d0f6659b0ad0db67f775d38b2075008dc51da3dd78db7fb40e3ed3678a5606f83349ff6f7027f8094abdcd3a7096938af729a0004f01cc09ae9b6334bab7a24e38ac0a39dd19115e0d2743be22befc0c048567a0949eab1f44632994c0518cf00d30023316752b806d806f806788693c038c049b0129c03ac03bc64ce54125e02338199601ebc03cc833963bf1860b4e4710ca39471ca6491610c63b2ca9082a58048a14025a782c8a9582a059325c4640d91d2c92922264b05a915a48a48b120d582940b26cbdf25a7640598f133dec619cc3b13e3fdc731cc19d5fb8f52e64ccb9c49bdff48863933beff18c69c41bdff588639737a0e8839838239c3f2fea920e6cc4a6ccea8a460ce083167c0f74f0d31674673a6ce901ebf7f6a0573469462c19c11df3fd582940be68c67c474b9fcc9431c9c9ca4e9661a3ac15035daa30333867e1736fd185907034c16fd967c80c9a29fca0848c064d14765052c60b2e89b32901d183059f455b24d6e4010073c000211982cfaa52c81c9a22fe60950a0029345df255b80ab41b6eec74866ba9d824e0600f18e8df6187f688cffccc7b6111002e15ee47779c68f976740c1bd524846b25b2561be9a320e4d562ae66410ed31823163fcc5f1968ab96b9c55729ce2306f5530668ff1671c9a337656a68ea48ad83fa3941809005d32f79aa10e45e8ae3fa46e6e894b107fb9e89b9b17f933d481a4f3a24fb7ea0227497f4e1a280f93d9c7648db31fda438719431f0a9ecd298eb0fdaf074e3e5fdcbea0a62f36ed81b29950b6930f05c188038a773e719ce11e4c9b11814b3bc33b230e8674e38cc6f88908279f1311e8177b467b58d88c39dda6858db3aeeb3af1a3276e08d1cd5b51bc558ab1cb710bcf566e24f36c5cb5a82bbc8e2a40013520a7839348616b7366327197e956495bef49078a136cfb9075a27b15b541b1d9999d8d53eccc3403f794c20660b00b004fb7aeeb3a9310dea9e410b8b433a1195b78ab34928d37eb85ffc8c5ec81aad198fb23d9bf33d1e5ca1b75899262fb77250680379bb838c11a6003d26c620003c21ca4e0ba4bd3cd74f38204d92ab63f2704b6ef7b8c3294026e46bafc7873c923cd7728f1151d67a3929116c323de79ae9636e8c9f60fa2efc34b4b85059a33f4ed8c8ae94ad96c54a00215544411c534c22eed2c0001d8a59d613c8e7827359b2c18b65f8eb7207039def2a9d6e5d3131cd80078fa39d5bc9582f9caa7ba6cfc95824b16003370ba4d16fdf23401d0eab41e87c7e3f8d6cbbc4deb659e6a1b1e8f03c7f536de9f476ee55949d6dbe4d0aca7dac6a5a98dbf9171787ceb63320ecff738aecfe1fa1c6fe3fa1c3ac7c7fca76d787c4be3b4fec653205401c9f1316f93e3639e6a9bd6df703d8f2fe9cfe895e35bcfc3258190e6d3ad1c7988cc7701909ab605f08fb7ef133f51ab74b82f7e0ef7c52132fbfbbef4393be3a779ee0a84345833a1fd1e6fa4f7ff2a0096b2b76dadbae66bda822a501327b65b2624cda10087fa64d3a727bee280c0a5e9760acaf13a3e48eb77d8596bcc31be766455f72eafa29fe3735e3ab2aad3e403215fc7db90afe3e9eb70f91cfa06e65dfee6e5c9cfb1b44f5b25a34906c7fba384aa8b555d36de1f474ec1728a96ba91533279563266b5534c3c95aa62e5048ab1c94eca89242fc0a16eab53331b7984e1fbe5781b7f7ce5e30f5067291d7f2c975d489897121cd2755d376448486367371317a61bfe0078a560f701bc548032da594b6fb7db78b3345f29b1b36969b7eac23b1aef50f25de60c1d872a9964ce8c5e4c5612b3c7e842ea59c93b46419501a38450507c95eac61b0f1bbcc0e3d018c5577ec3c076a7baac1233db034c7ba2c7cec69bfdf11614deea6817821080570abe5f9e7c2e15b81c6f7366ae6e73e6c6f61f87aa8b4cc1c6a131ca789b2c32e01255c33b2924b60ab844d54e4135eb04680c693a7ada334cc0c4628325aac6720adafe7f0a3a3d492171d7e956c9d448e629279c89928d711d8d647887bc537039de54dc781ba30c798b56d738f3f4e9763a7d1ad4570abebb3cf99c7ce6cc13d3358e271f9f3d8ee5e986c457de8f23ded178e6ab31e072bce15b75994ca369348d37d3cd7433dd6460e011125f996e748e64a77001130ade294d378cc4741b4d37531498cc7843620a2750d8e578a351d5b8fc0ef3e5a283803f08c2119a788db35b75e119e0d36d6325700ff0ce102ec71bde59ed7224bb95e30ceb14e12d6e8b5ddad92e47b2233bde8281ffc888d96304a2313e67eef394e36dbcd9d9e8e1d9b64db6ff38ab2e97f71f69d5453e61fb732e59a692645e215b7200e0ee83217c8045155210c6c7f560641b6dd1538e866aadf5620147bdb7d61dd47bebbdb5de9a83da3da9dd93ee49addd937a6fbdf7de5a6badb5d61ab40447bdb5d624b7de5b6badb5de5b6fadb7de7a6f92244992d45a6b7d7299b838964872ad8039252e0e1cb70a97898b63892457c09c1217078e5bbb27f7dedb3db97549adb70b252a8e5a6badb5264972efbdf7de7befbdf7de25b5d6faa4d67aefcd42bd1547adf52649d23dc9c1bd3749ed9ed49aa426a93aa83507f7de5a9fd47a6b4d52ef1492e0a8b5d6fbe4de6a8227549d1d773943938e3b9d7ecc3738ae30cb82ec85e29adca89a50c2eb04251ebc4e8fca27f02b409164f42f044cbffbfa2921dbdef9d0a70d6daaa990af6cbea2b79116e9d2a316d501599f94fdd4a4dd88fa46a96c84c2aad0e735f1167dd11c9520f98e8ca644d9b1d14ba937f3900401536a39a7e267974ec5cfae51dc355f2efa2ac2573a3ad78e46509cbc968853beb6adba4f3728a33bbe4202c57a3b1e9299eff0e778b0b7e3cd7e7c95a2a2fb13e5bdfd9a783f1e144e7a4f7841a031347b4d7ce53fdaf371d036b26274051d41e9be527751df292195ea3afb5d17044afa4b7104167b511dfda150d09871f41151ea73454ff7c464f9fb4cd690af465bd8d3734c465d90eff0ef725785af8028a5e37f4538dd33dc68548291042fa0d7e32d7008fa2a4fd7947e6e1bfcdc8cff3e26e3c1ef559f02f053efc3bf19f9f432b2e9c7acf23132ea5599e55379e5bb67f998e9579e66554d1856f122fd47e74b86aa45c76229c881c16030d4c762a78fb17cf831d3c7569ef41abf89a927e40d5552a7923b22986816be543cdbd502a63a2d170bac027ac40a5c305bd5d509793ab4073d12869b87440c8e89c3b3754247c2d0091d51c360e9db9143878e56113a39421a4fe77bb013f2ae58626331bd2c66ab0bd3b3d11edd107abce884aacb33a21b0a3d1dcf46ea2139e12d8ed63c9b67f36cb4a7a3d121744bf4385103a72875ca11f907863ecbd16b3dfa79275c2d0dda83a31cbd42b89c40775f2d26eb0aa19a8c1bf32685e037faf2ca442f9bfb3af1d5fdc215eade3b6d830f1c687436541acc071c6cf071c3fe88d025a86bd4770b27ef94ba7fb0bbbc5ce0bbcbd975349d052b139576bf70853e4bbb5fb84295467b5c1f1a73bf405d23f0d901f5a13dacd52b1a5353e90ea82bc8f5c1d6dab9e9ce64113159feb24d67a002eac285ced50297b726946b34ab23546937215b569ad0bf6dffe0fb6a3159fefa0a4d96d53f0a307fa60da9bf5188e205aa592b0a693a5ddaddd57c75e9a84375a80ed5a15cbe4eae77ef05f21db27bc45ba8f7bfa8bf9f4befe5df2befa1b2ca7ba82cbe87caf83dd37ba8ccf21ecacb734f967f1685e073f9e6efb9fc231be640bfa43f7bdf3007fa35c4c1009c1735d8826dd3bc6f98030e389cb401b8298ce0826d533de7aaece613a408f251bb9c816daab4d26a51da28ac12db1251562dca1a45133190e20a922e2b2c4f610417425dbacd8b1a6cc10a5097fee3336e0855d062a44b8771225dfe668288235ca1736bb55aedcaaecffd69e22b306027b7e62dce8b1440c962fb5f206ffdfd02bef788afae177049a915b48607c09bfb1adeaf218dcfd53557c8095f6901d79ecae40a4d20aa336d480199a294ae4a545a5969da089526f435f1d6a557e85ee77207c5a66fa9d0a6fffd9c9c4cc27b5a2ba574f4d70bcccd68d00e1976496db520ec1aadd59ae7e11c32530936b0dce059eb398773c8f0c821c3e2790e8eeee590f1aae7799e67ade779de18bc1c329e37bbc025add580aa806d6e3667284d822a417b409fd83eabed38126f75b4466b2291d7d97a3b35198940dbffa32a2290659cc1f2b2a235a2d168f4930719ee192ce35ed9d108ff280f01370914fd8845fc72f4226d9379c8354023cd438de864fb8b4ebc457f24fa9128beef4f044e1cd28cae18b0ef72e5954536f8a35c827b2452f952f4a216a1f095581389a8f657c923300f01494f7a2f7d495f84c257624dfc5940f71ea05aacf96ae5e2cf04126ba213be9aa2022c6613645be5499ff82ab9a45be5a7838f1f5c21812b2b6011d3af90c0295e00838ade03f397ca11dd3eaa4aced9a33cb729b3e41bd2604db1f821185bd443c06ded1447628f4824016ff93ec96abc35f71440fc6cff0c788b520186cff6bff1d67c180c36c4ab9c516216c807b0dd330510407bd4e3ad52fcd93fde9a514839b2fd4528bc35bfd8242d76f72d282694de8634a5b0d401991868cec88c5a4c2bb6ff9c2a1d46ef5f432a8008bc62c074d3508711d538d04dbfc0e5fca9b1e1210cb87ee809a13f42d8e514aa69624f204ec9049a403520a8a91070f621f2b83bab108154fc74c4376994641843610cfd5821a80bb5054adaba2866cc164e41f899827e75d4c138eb2cec04c4e9eb462c469b37da50b31135a33d4e51cc183f05610a1c6c17fd373b19613b0f6a606a3667acb746fff2303762c69b85a16c36a7987812b3c728a331fe55f83881a289132f48b275fc8e2f4de0294889af681f299fb8f83e8bea413981f20143540f18beb8b83c7d97177d7393d33dcce774fa86a7fb9b179b978779187df392e3bdf742831242d9b081f9171bd6dbd03730cf8ac9e4dfc82edec76497bf91615e584fea59491b4ff58bb62f6426322be9b39236e4b3f40d85a16c9524dfe56dc877d1373c14a6862f0ff3e5bcd1a880c43cf936314fea1b1efa37e48d77d1372e7f83be90171e6aa68d9b4030d9873f77a9a8ad11c8575f8bf3de05e6471f98574519b6a7769878cb3f4a77fb36cf7d1712e6cb7ff972b5bbd1eede1361198cf110995dca9686ff07bb95cccdc524b99833733b8c07fb04c6f607a1d85d9dadfaddd339c37df73e67bcefde1bab0be6bbff6ed8f8f98a8979d607b9f136348e8dbf6143cf4adef8f93debe78b7e5a05c4c6b33e888d67691c1e9c59c9d2026d7f1b1eeb6dbc0d8d9343db1a4b4ff14b0b9be287127216cbc676b95c33bc916332fd785097eb79501efa86baa8ebe7abf52575e91ccf2353d94ef6c9eafe1b5158a06c29b0b3d94e302efcf48569c8a2c02463c6fc1e541350b51eda6394a19a405da830a8ace736595684415d56888e0b2bb4fd51578c322f5c37d1836a02aa7603bc67ec7336c0e578ab794ba543f7f7af2eef772927defa82463f3e3f7a350cb483f68f645bf80a07b7283752831ee680b2a176891aa2314519f737de4c43a629b71fa814bc6968dfd40575c13c9de19eb6b87ca9427e39e2c24565b6d332a2953fdac136ddecece4e3f2a7dae9e78a518a8b4b26ffa301b50594ed45b4fdc7b107d3f6f856075a7230f8d954ab6ace06a7f88a0e8dddd88d5dc7715c57b355e28db71aa82da06c3d281b6a0b3d3d3dd6258c5bbdd5db89763ad1aaeb640302ed71aac249a8c70a73c606db1f253b5161f64021a127211b5fa03da8ae61d018771d5818b4c7090834e6b4535d275a254fb49ddd3d15a65b477e79638f4a7833b8013165cc6454c68ce75ae08af188e8f73f4316bfc71177a17a043083c365c397a958005a3c50b5391362d53e8d7a94d1b857732dc0a31744d8346a781f3f36a131d565e3861d31df43db5ea66603c8910aaae14bffe3ab14cd57aec45718638d318704c6333c0280ad92317ece96d1f4a79f9345a586b633a0ff60b2aac64b56d5a851c3857c99cf79d5f8595daa955601b9f1326f73e365f40dcfea6f58baf4768d5f699b1b2ff332fac6c6dfd0b392353ee75543ab7ca0bbc69723100c0074b9dab5ba6c5aa5cb98169dd2e5eaffa4cb51afe812abe8508f461a60acc79aa747286adc9bcb54124364760dff5190955fde4686d991555d8e677df7ac1d6f43dfd8f81d7fc38ac9aaee6fa880e8f898b7d1f131df7d8cbee1e9b44dccdfd0372e1ff337e4ebf89cd7e7acbcdf467ed11afe9555f46f7cce6b67158579fa30307f43dfd87898bf61fdcbe7bc6ec82afa329ff31a401ec0df789b01fc8da77fe38697d1372e7fc3df903f80cf79d590c72996461ea300edb821a768291d3906908255726c4267930164f26fc82e5f439e9b469edbdb3d39380d7adcd17a3c22b3e1ac9787a1c1e81b9fbdbcf8cbe7331bd9652c977d3c728e77651dff75e0a7c35eab47a01e544f0fa9511e6aa8ba2ccce542922439fe90b9ba641faa24d5a36da892a828e0eef1ce8e47c444b96c019841d9743043d950357afa827e0270996ea3992262a68018c1a88da028954aa39a93ed5fdbfe2323747af43359421bd726ab24fee7e3248493cfe94445181414c47960c874b2ed0f994eec570fd8af2399af9ceb3a274e9cd89452eabd07bcaf5f80110c46b2f18bf1466347b27124a3e3f805758d3aa023190ac6850ea8eb44044a769d4611e134b4bb4005b1fdbf2b057f077242608bbf3c8948d77eea088a7c2702f6d677644609a1a0f80ad6a16c2821f7bcb18382b2a16cdeeaa00871d55a1bb357c0250a654309796b86010393e799b88e3a6909f9a4be39c16b1c123b5a4ba219e20082e964d75cf764754f338c93dd43b13b58f7e53884abf838d85ff9aaebbaaa6baedbb728a36cbe1a329d6caa51421a0505651b19319ac12889911209001390801d1850eb32ca890c8584f6404531631c15b4839a62b2fc4b940d1c30261967fe89361abbb433bb83fdc02b059f7679f2b95230dde5c9c70787341c112d13539a0ae9ab5668f6cd32c4a476569297da99ac91ec749b334e3392a970a89ba6689b8349c12127639a2aa9ebf4483659d7495569a97646e31332ce66ccacfe67baf53783373a82cb916ccbc0cef0ce911d0b601a429a314a0eb44648233e2704f69fdb621d781cf2d548d695b81b87c629db9fd210e250af134ef0ecb823f0f73b42e0fbd4d61aeb6d7cad8d230c699790efc3c79baf86720a96d219a374fae299b79cd81ee8be9c4e76fd5adf662fdf5c75399deceebd7bc7dbed36ab1d329deceffb349e658ce4082e310c7039de4cb4641bc9ba6b673a740c1ab70400b0ab51a3c60abcd9f64c5612936569b60733c6e2c0c5ce262b87b95153e0efa255c5305bdc5cad5ca6cb773f2e9355e916656bc464d517525df60594ac5f9510030eb0a581954d567d0f0ab8a430198579cbfbda7dadf55964f5598e784894ecfab36461b2ebdf3007cfbfb2883d42174736f8fe5a15640567fa0ed76511bbf2e0bb2e73543638672f59f98f8607700f94618b465a65b3f2a7df61e54fda6e912e5df49f2883ef796e961d5fd56739e2abfa251aac64188fbf2a88caaffc8ac6512d39fd7cadbccabb2ecd00fbf0951b846f3065dbcd423dd34d453b15c85baeefcd575585c30e2bafc2816eaa979cbe92378aafeaaf68150e74bb5eb2f22c6f3a99b20b55b2fe97fde6abfa2cb9d62a597f942b90afea1096ed2bda4b32c03e84c50eed3a6557216e739b2d033db86dda767d91901e6cbef2af37cf733d7228be7221df51ff09b8749bdbeabb90b7e6ae258b6c688ab7ca1ab4ebd7d261bbc24cb35d597a4eb5be0fcffb52d345c739434522514c95e3ae5960aa925dc7654ea36a0fd028f90c3ff8fc3fcf34a829f07d55f7f655f6559d9e9c5659adbd1c8e5e60ee7b6da640b817c759f72abe49a3d44052e0a991f84aef883d3e29f52cce7c45c5d9a68f64d317e1008b9f53eab9b4a2129166c59948732dd27c455f1fd1325fd19f89dac76d3808636b9aa63d6d48d3b6a679cb5ffc999cd843bb9f784a488387a4c0259edb6748e8e9f4d4f88687fc4b1c45846d8a6d1f977d8b4cbe52bab929faabaef843737f91be58137b7cc42622d01351888a556c2a9622e79ae6ad52d4e9f156a96b9a89b72811e22eb5139bfafeaad74af392aed3a2ac92f4a98844b6e98b3ade2ab15884b7fe9dda90b860972b4fecf971b126f6b88b3d1a083c82c55b43c05d3f0a4b44818921208d528673165f7d36cf5fd11002975ebdeed5ab7bdeaa7a09f54067b2fd47fa3e3ca7a3fe836fd2c82506a97bad34f8be0f3fe1188feb02f8ea87efa03fb38f3150faf43f1ba7ce838db77e789939796cfa75524da7ad56f1d13de79c3587b97da0659873cee94dd67c9a2f90afe63b0abe6f6277772f959c54dfdddd7d5ed29230887d5d7d7382d7ace409684e75b7a2e6923e9993fec4b09ce51e305910e042ed8a71d2f0230db3f53257bef211f5f2c3575e0590b9f2dff1e16127880795efeee0289cecd285029e404970b24b4ab3983323c0540bb387787a7f0a850a798b6b89e8146f85a42f3d7e7f47e22d9639634a62f6f8c08c81798b6e8fb98e17e1ad95f707431290de22747ca5f2200782be7db0b0b5b00fc562ae6c584c2bc8f020e3432f1518085a92bba436d18db089db467d445d7a98fa3c3149ff1deab34377a8cfed3acc83a3a8122811448e07a739e88ecf0cb24d2825bd5d77b1a862f18d07563b57c03929928e0a81dae6ca9fa3947e47bbef9b21a7cb1e3677f174b2bc214b222ce3b69de775f6e70ca59ca63e73a553970a9f33e4f68f4da02b86f60c5756421afb97e3388e2381e008bc3dfacf94e764814f617683cf223e8589375b7cff2f4c40dd22dd20f82ae10e3948f400e1c5114ae08942165e7392e28359cc25f82aff39c8029e7c3838374b06431a95ffba4c75445de66c71458f0fbee7adee415d0e01f7caabfcb792a90c08af7c4975ba497a3b0c75f0ea8af83e5c25a451d114832f0a7fcc0dea21e0ee5e14852576a7d241fcee456d3508c04d636038bdb9029fc2c0b2c8ee7eaec027650a93f9cadbe083210e76831aa4b10f0ca94e11b50966093185c18c38919086ea224ec0258cd2a82fe78da5a24013c7711c67e7f4992b1feda614095b38b2e774a1bc6db31675e2288aea80da00c5511d1a011e22407564e80ef77eaf87f7e9751ae2e09bfa38c125b5754e78eb8e366a9bd756951f93efa0c13769942a9e0f071e01ca7c401978047529c0e37c144047cfd37bc6ccc0e1392704ce073c0294dd98ac79a580ad053dcff3bc1ad2a8c4747c87ad02972ab039ab301a7cb14b90b64119a5a5b74530fc45f13654bf14a7d48cfeb360cdf7149471fb4ec187ea328501da6d8ee21b74b0b4384ec8adc32a41a8c07c25e3ab207ee890a9aed18fb41019194f68da8446cff33c6fe6719c8c8c016615442121cff36698fbcfa32bd85381c988429e27230ac9fca80293662425249acee6de67ce5021dc139c116c5c14368e0ace079439146f75a00c94813291c8ebaa8aac650a2ea8b9e087739742d623858c9603cf236c71db3f8fb085908eedaa09b3717b717f8330a5b4a70adbfecf16367defbbbf437386d66a5ff4f4afa779ca3bc4bd4cadf65f447510ee6f503e2fd1cfb04674a7807f972f23a3b3ebed64a2ecaa4b1efb3d1da3b229b8b0adbffd4ef394ff95e460de12e81154367564f408d98fda0fda6388fb717fd404a95122660c6c9780ae200a0926cb08098098e2c724455f65b49e6b8449fa03dd60fbdf1cbe8f8641872877c318b2344a941fb407a7a90f3d017551257c341a44b140f3e9c16d4ec5647910ede1564c7f8263b1448909da17b721afaff33a98bbee36033df817d40502280e02eaa261507288a33d38fd83c6380d83bae81113ca0fda83fa18a9e4097c6a1c154ea0c534525db40ab40bf409be4ff0dd25fd017f56bce76e0fbef27fcfc3d80375c7a3413448c4bddfe6cc4763c27330261010596cff9d1f1595fd955a75a96c90d49b4c2a8bc3f2a957eae7cb94f2db4a1ef7caa746a74194a6c47439106dce7c34b532d2754699a0652176403cd800e9316c37325d0a0e645d0a546792feb5569b7d7f33189102900731a4729b332edbdfa59461b65aa3f257e0f6bd0b29372fc4306bb8670d020973e50f7affddfc565d4e2b3d579100ea1f0f93c651a4a98d3e197d4983ae15dfad775612f77ef3dcdd7aa34c059014820eb4b2da14e809d0a68d3c3b695e04515f4d64c81412793a27eede7b4d469e60bbcb79428d2b2085820a39c1022efd5693982dea93faf9f2f75b9d0961aefc51cf1264e5531a27f52bcfa271786c52bff23863597758be14894e9b2c1bfd71a0ea42e9310ba701e9a07b054cb7d374826e3e7031471df760f6db64f9fe749d09c1b998e448975567675181b039183b68fbd31e26a22f29cd9798334d4ca759b1e9fb3b139307b3d595770b2118e9aa4ee8b46baf500bc8853838d0135cb78aeba8e4f9d2f946a23af3c06ccde93589b9f2f7ef4673d814a7824e0fbc27b0ebb8dff68f0785b7acdffce6378ebbf6620f40127e92ec1138e9103436c46c5117cc152d82ba60b63a24e6ca777c86c44c95123fd58738e1a7726478fcd01e90fa907054a9e7b1513de9472da54aa5542a6f8618e3839f8c19f3f579be6600f37c8d9c873dec75b8a685e28e7e0e7f864cfa2fb33c98577e869cfe41e595f0a766c82aada2da82dfd739d131d15e4f257b7ea8e703eaea6c41414f82bc28aacb93e2091d55793d73e6f660ba3c2b3c5bcfe57ee0feead0a35e1362c74447eb98f07a9a9862ab9c502ddd0e10e817bc9e19d309cd18352476bef8828c1a123b4834d109ed788bf608d5be6fa2e7fb6834d1d3c46c7953cc957b356f8a9d1a422b78794913277aaa2bc6433f2684f71202bfbe0f61b0b0f9aa4b3257feddcc57de2599adce0a7315e42bf756f7335756a83a39e1db943e7cfa61f8247d8343fa0f8707277c306796688f8a969ef441c217352914ffe606277cf0796cbe277d49abe87ce5f13d9b0de9bf9fa4ff3cdb9c79d9fede5075793ade577108d67ce51ca5770b5c7a7bc713aaae193b296f48c68b74643dd525eae9f1e1b407e4a4b34111f21d9d135c4de93d5b256f7dee6364f067e42ffc1999f45ea69b8634f563e4f99aa1ea3e2d68c21c0b9ff4decd5b244fc88be2d9ba9eeaa2de4e0fddd1a13b510449417ac2f60fa550d3a9713a9e77cbde1534f685edcf05cfe6e9cc90866e1959fc3197be7e300f76a1fdee9a7eccf335ca22a0bb66fc52f9f4aaacf2a8ccf2a6bcf257fcd27bb1952ffd5579aa0efc7e54f9588ce563e2871f5bf958e949dfe51af04b2b2a22cb49e5553a753bde373f4c831aa903c3b004729d079248218dada9b0b0b0ac5c2c5868c7719dad20bddefd530ecf366f9e14def574bc1a8df11878322f46ebd5bc187852d45a5a5a5a62e8e87845501a5c4b778648e0871fe47b92c621fdf7a1c6e1b12169554df82a559027e9c709358914861f3e4ee9493f5fe0cf9727e40d8974c0124956caf3853d995784902d949d10dda1410dfc1933cc906738ed9f864943ad068d1a6a5879badba28690a613d2f9a9a29f1e5b8f6d62d103604477baa01d9d1d1def87f6fcec04edec04d560be18d0060813dab71178741a65c264466595c49bd35489afb610b7daf31f0b856fd2701effbb05f6f1c3c3781cffe70fde1ca5f4c8a679ffcc1972d3f731672a15261534abe6e7eca94bfac37dfb5ca63a99ca9c1e3182f1887f5c594ce9cafaeafa25c237694ccefbbefb20a3e7340e87c363c3fde871baff9ecbaa9aaee3381d5cbb8d531cc21aefbf8969a535b1cf27ada4f7baacaadfbde88370ef691cefb917691c1e1befb9c7117df7f3653197bfdc55d2f6a033e0ab7973b743cc39e7c8a3ba7c4cf28723c05b6ee3adeeb197e704e78aaee8fc9179bcadf68108b87db8f170b8b19ef7ba7e8da0b63e0264bce25aa9189cd86c50f81a90f3b23f6990f365d35fcd1952398d500600bc4159469ee92bfad2a924a51f05298f4d67edfe0cd2a92e22744887ba1669538b4ac01cb34f439a158c8cef58dd80efc32be8f5cbe06be6a3baf48cba4f9a386b913615996cfa53d4a92e8c278b07a2acaa198d5441447fb3c0a0afc4a9aacf63d63a5fc71537250081c9a66fc30f6f4d253851c5a66f23841af1f2233c810bfb93616197d32748936c1ace9f61cd7d1fbeca467c453fc6fdf5be63c07cd917757c45657cd454528877f37cd95525a928d36211bea27fa1e0f9a5a823f68872aa834ef81efee5a97ec9ed5935114a72cfe94963acbed1dc6d6a6f34179998d274f08dc81ba9ae4a7f388efb0e0b4ca47b82a7b5deeabcd5651f627f36a42989b4cde86fc01f85aa9a12f83314fd8dfdd283fa464829abba37f21a6555a76b7ac880afb8cfc32ee321f657c12e8f86d89f05bbec3afbbb6097bded0db1bfce2389bafd897207fee82100fe48ab3c087caff2b40ac8e84b6f33fa92bee1f1fe8614ea9bb0cbd78703d0ed75998a322722429b6451cde87798af91c6e1f11ec7fe48e3d42f751bbf8d7dacb177f77bdaa67ee9b96c4487eec0406e721cc7d91fbd8dfd91567536f5559d1e7dc5fd7c7d25b98771443811c8fa280b4f24ca73e29a63bd2ea167dbf7e6cbcaa8f0a82f7e107f152d6a92107fafc6d6ff1e5f2b8084b88e51a0236cb03d6d6dd59f166d5babfb93340e0f0efefa20dda55f797b9f747b00aae101c87bd17f231fbeb205f831ba5be01a9999cc4e4bcaf4534886ea6bc1334cb9f438affc27535d250f999a4eaf469a06d0d758fb170a56d28d443948059283f8933e991afb9f3f8ef8f5491947e57df4dd5f19d9f43332fe1932cf9d417565905ec607097f860c8dc363a3f2e1e3883540dfdff7e19e4a56895e7c153ac318affa11e9ab98559e0e5536e1fb9f3e353e299b3eccf86fae897559355f748f1f8ba13e66fad2c74e1fc3bf9203c3a731539d92092563a9e1a1034886c64a8f1d14556e0d0fe1bce90092e911397ef2b32d4e8cf7affe3832be5e1931ded23dc3884d884c0706dabca7b112d24375893d3c6829fce5bccd21962f258e3caa8bd27a7e78fc08c1a0cd1392811e6cf63d1e42ec7b33324fe93f0ae20cbe88c36313e3c3c791f1a45fc938313efc61f42ad18cab05a63c4ca01a1b6f91b69d51b6751ed5f595b46f7fbe7f783db0f49d10db7dd17d1158fa19aabe25487dd207f10fff2b65d5fdd2e7bcc0acbafaef7df1677cceeb9b53bcaffa78dcefbb6fa4bac69b901eec0f29e22d5a04ddb1b8f6d8b611829062ff1b5d1e36a880e007df068f7e86be91a155f7eb48db885fd23731b44aa481d427bdea6a9bfa24958d7ff8fee18baa7cfa9654463d29b37c9857dec358248558fc4f5c31a132ddc12ca7998a904ada985883ad904ada2fe51e8c80301f36d878cc97ff782e4661e3ea319e499f93992cdc7576d695adef96d357db256a7deb796b522c6e1f8ebd0ad3fa0df6eb4f276b6671d2ead5585def37e8bc0e77d9e77ee5ad1f7e28e2ed2218c65df5b9ff6eb7c47e1177591de3e95e08ef659ffb9a6342ac5ef575c697d5e1f1b22f84f7aa5fce299ba3b1ec6d9be9ab4efba40f523fac4faa8f437afbd375382ae6ccfd70462925899694de87833edcb3bb97741127b9f7e14438d9884699f4741e0ddf88a04c628b8ae584c22631a71ee7fc1f913944640ed19d2332254470e795b28f4a725f0077f1f890f50f2a91e6febbe00d699efe704fa1f016c95b1cc711f13047e33c6ac40b680c4772a48c0bd853f967a812adbc0fa7544c16f734d327d018ee6ba65538f9c4498fa9bee53daf89e1176b6250f06681f3d35025d235a595cf59c848a5632cdfa26b622d9fa9cad7d4889d1e7fce319617a70834675e9e06712ff315478ff88adbf11ddcc7784622ee2950cb7393e338db737468d3f84fe7f95265554e7d3b95e49e9b6dee695ccfe6449ad6469a42c151205f71df71404a462da2963cca3ef315f7a2ef450fd648bdcad3f0fb2e83ba86aafb1a7ebe72ce5fe383fcd7f05fe31f8764cb948a49725f691636f7940a9beb389a0eebf938370b9854b9ef9880bbfd83dd34a351a6f134fca75540489f3f48f8ff5e75d5f8d1e83f2e5401c1188be28f728db7297d0d7dc3f3fd8db659f91af44df82b3fcae5b46d8e4696f134e4183f431e5fe7199fb3ea3fb77c27e3551f8bf12d2fcaaa9ad4ef305fa90fa2f2a221e7f912e5b9df1b7fc6c762323ea6fad4c7627cace55566c83495961833522a1963a63d94090d3ff735d5253ef7dc0ba9ae95af419d9e05afac882c990eb94ee964e24e3807e6aaee4b6f3fcc2a20a5b7afeab44d49db277d7d950de9ebe30f4b8fa3ea3efcf9c21fa4f4e28b1a87a449a16679168d237e58b9a74195e4be94a95025b90f331daa24c73d7e92c33647812ac919f115f79d2ee22b8ee3fea360cc7e7d959eceff094948c18f18b68055ebd5da4bc5376994a2ddf62b0f9e2f95e8553674c7f839f16dcebccc99b9536f7f56ec2bdbe9e0e13becc778aef7b26fa4ba4c25fdf951496badb57496e74b866ae54775511ffbe504fa6127d0b6442a693f06115fd9b7457c655f887f19f11d3728684d786b3c8d0019397c53069f85f431622d9ffa6187f98ab1bcea55a29637e5d453704e574c089957f83af8557f3e385dfef3e9ec31026f04e3a67a49fdb2eef99e4127ed7bd5daffdc7bf0969d362196b4edb66fc4d2d8b6f6e98fea92a9a4b5323232a3d4aa8592f65d6f5b63dba723177c5089744d4bea3b1f26cbfe10c6188808613aa223fa9f0d55352d2da9f7b0fbd1f82c1f43bd4a87c9b22fca3cf8ca7ecd06a0a4fd704a61dbf9846d7f4c96fd8e09f8b6bce979487d8cbf35323e9571fcc16fc938a96fb1446298ae16300f1d32db7e2af388be25e3d40fbd6d7a96b7313d4b7dd35f6dc3f22a7de3cff23edcd492c34f65b07ef836f5c307f73766f15119ff4afefe9455de944bcf924931fca4efc09a582c05aff2b198f8b1d2871fc31f233df83f7c65df4825ed93ece34c772a695f25535a25ed877956fb25d9aef6bf6cc58f48256d8d4680afacfd0b05d3968b454dacbebf5dc9e95cc4c29cf327497f7e97e7dc56cb4c16fded0391fddba98c45f27345e36560f60faf30db61bc451f570a2bc313f3e6c52ebd09645de0eeeeeeeeeeeeee4eab53777fbf5ee9cf09f3fe5d9eaf6b5f5e9e93f436ad3586073671842e940c1d1952423fead5eec07dd22869dc7611f7fb940a5d283ee4ab28be1251cfa3eeee2fca4358b6fb9502f6ec1b0809d894c13e02e79c09f77c1b181a43707769c8e60c6b572bb3b2ea3a9db4ebef9ba12897d63d91f7448a18b9b1ee5e9edb661f8cecfb9e4bbcbb5de66c1f3ad59293873414bbff98db7511dff776f7612bfa042bbfa28358f96f257f34d4309eae7bd743eabece8d328b8ce5887b222eaa4dd727a25c833c5728373cfa2d5ecc748f234c248295456e15f2d5e32ae4abfac457b5d62260faa5f730870a458bc0d0e32dd2d76771c25bf4ebb3f8788b646595ac6fefb8410a529086b2ea1ae9d2e37489455a36ca55a86ee1ab89bdff4a212c477cb5e33bea8bbec0a2c4577526f2022e59642c4cbc555de3577bbf7e75a44ddabb65ee7dd41ff38f216030c9b951f9c710484c726eb1c43817b99bf435a8ba58645be0e9ab591b0206bba4cb0a65d72f2181555e0c23164bd1f69ed6f73c7fd274fd03dde5b8a92e723729d463a5c3a8742c1557554f32866604000480007314002020100a8743e201894822489aee0314000c7d9c5470549e89a320c77114840c42c620620821003020223233630100abdbe60593963e1b286c0b0eea850dc4cc3b210962eaf75b63a5a6258c86e03bb094183f3ed14dbce4964bd23e1649e2c5e8d158a6f10268b68b7f3b3f81f93e17a62112a0e20180c8aa1cb92c8cb8c43c20f45ee6f3ab956727fd6a0ec581e4129fe20f006dacd6ef84ca5942278f3c6a1963e3649332d8d2575bf01e9281cc780b2391e8afa1721ffa8c026af3201a129c211651b71b06e5711477515fd05203756de098195e34154c17a7773c4678e2c49bbd08b83547580600142018b87c642b307d4fdf1e720aaa2d1bd583cd4895cc4056d0db2a06339bfb43f62c9c3152d6cfee3dcf0aa09f87c295ff6a3fa353b68cd7bb62c38ed206a037ad163bb7b28398358daebc7b6163b20930294e82841e40238a2e63f03c3ea4c5175407344c8b604564869ce4640539fe1238d2422c678bfc2fc22bd08459af01a044b98bdaa0eee8b091449b5c23fee7259d4b9f5188f45c231335f5aa5c63272b81a24a6e136d7560a06f04820a54dde1b2b55f9ab694037e966ea92f9231b46726ea31107ff2f759ccb79b060a44cb4a31b50794fe38810647159105333b538395858c7845be61172548ee776d74577f487406e11c6684f75adb8fcdac0e45944a91a17a2a996fd10d2edffd6e0c7fbf2d30ab014c92fa4b1b1d86590243809d417ecc82be97e13588750c3679de8a451d4525c053f4a6d0a2039fd30249ddc2e511a93431a99ef007da3445470518fd5f6654712cb5f03a039e2f41affa1623197ab2051e9395d700f63e11f34679579cd4e4cc3822063c9208c01cff549d55fdb50c262c00a7a5e92e0f00b611809c1600a40a00171b833b447da7ff9e378275327b571dc6cfa73d009b2aabaf2f32a7ccb345d8b4e2e5994b8d3b42baff35ddc73f3624cd9fc00a339e9f0e2f939067fb99c83556848a2f071cefaef489418b36c3b85c20a1d7cdf87a9fae7a70f498d1fecfe2aa0311395c68b862adfd0f6ed9b919bcc18ba3107379a8a84b4c06020ca0e0e22e230d05f024d56fbb73e53a2de3f8ed4014a95c36dda28830b278766e575a1c8daae9701ba1152ad02a4bdf4c2a525db6f05efe434019bf06cc30c22c1474f6b06723ec3b2db76420013e18fa48d8156813a62e081628a6846acc3c8e9af165ab4645199f49cb0a0b6393460fac0db6434396a8e2716c890d1622de3c2a6a982a1e6a27403265d6513b7d6295ac98cdd23f9b7d1fcbd5ae07b07396a7d3cd26c70e1a84d9c875132df42b9cc6ae8d2bff019a97a78648c641b15a862f08d4c795b8fdfb7ded58c6bb1db8e39a9d94392784853efb47e5b695861b0819f964b842c0b15888c09d94abd7dd5aec51064f5fd64d7948c08406c31dd196f62b541a31546da8572bf05428ecf51e300e71a3ff53d243bbc05a4eddb45cda3504e45a52539ae724c381dfd5db13e51005ee8de267d9b3842a6c6b2c378302cf56b254c040473e52eb7d5e49ad65307e1335f8e407a1ec86beedb467955e95ab352367dd3d69582f8905ae7215768bc25d50c77a8a9e3498932a27269ae452d6cc37cffdc538e701b7ca8fb4feca4098ad44a0ba5e2fbbbaa59433e6b5c961896b19e5ce0eb16b4fc6f641031853c7be06f5a7e255d7a211339244250c74ce1ca51bba434d74374fe9f7383f40baf9f0cecc9f188b091ed37379a43190c1799a5bfa259b16d39477dafaed330644e880b66d07d178bd0d45731ec0c9d2797122ca216e931d12053b5bfdad62ffbf7accc088988976fe93afa8a18e7bc25cc88a10a66b6e79e921e066fb9327073179094e2da88c515eed17f85a0317601fbd8d6c38792937a5eca3389e1102e84d7d3bbaa7682205eddd9f3ec6ee3eeb2c8f5777aa16bb027ffefca1410442b95700e4c68fdfb4635d89a0294b8c7a0dbd0a102efe34490627cc6df954459c777bdbfc7fd2f9aab495de757d672dad447dfa83f08ddf9524b8e0889028aa3a8b8184ca25975624b83f1ed7e5aaeae381c45adb87376558fe39a295d38c7a1b4f085de9f5d093b3b79928fb556261c4925ad094cb40ae258e98722a6cc4b7da8c43e0a19111f73d6d95cc94038586ebc3809f68a6f6cc4476b91605cb7f0c673e7f632d6c85a9b1124c8d31bdf7a9698804720bda008f02b8389dcdbe998ebd8115af202d0fc589df0caddb3c096c3e07e02ee7208e91ff9dbad4241f940d3b7858e58903804d594173ed5ed8adc2714783e381811b5b7eed8628b5492c2b2a35441dceb38beb4098aa0b2e4254f1086057cb57a125fde81e280ef9a8a71c1fb2f14571fbddfc01c6f40a34d60fb233055c71d0cfc5e3a36726ac33fa9d34bc38bd5c5152dc447570c8eb26c89bd68da263733900c9d842875120276aabf873807a1439b43f1bf8e9164d92a1f020a5121cbc6b7ddb60c7229989ee88f7768764492b021e86059f43ab365b530b6bd4f821a4686ef333793347db5c796f34b5ca021ceac3dadd0b0ce303505bf4fbded6eba67fe47947b9368e4f72ccabad1022ba3651d3e87343b40c5c164a0b45cb4cb2c6922c32fc33cddf939e7af1174d7cadb2b86e32e1f782bffb33c768e71f43a0a6552c04236190ca6ca0e4ce0c4b7e436be087977fcaf1e68a7e63b555faa8492dfde3cb3a074d53f1c8d712a6431d5a65b0cd9df2e2c05f1a9368176c9e11fccbdce4b0f653dd74e8f3d0cebf218949038e095a2d53852ae79537321f9e2227b7ce391d490cd948b113a1ab216cde9f8ad5a94efdedb8b1be80153609cc05501880121816385272d2c59f2c635299122adcbb6116cc40ae63a8aed27dd7da66fc8157c7ea377310c914d6d646d0dd3c6e0951a07a15bd410f24e852c82896b5ed14e3b09fc51643749ceb92a4567b93a81b1fe59b4363f5195f1433c6b0e97c56c56d4b324f1cd65b056378d293c6dc929514d272ca98596d6597973867f7636e5dcd9f17e3b1751f2b96d5abf617fdf631b381d892eab07097ef605c92f35378aed6693486a4c7ac1e85fa83fed3af38d230ab041499b9854978d778217371a1dae54f8e0c621b04d8cebee1e387e138804062ded057b375ab8d673aecb3d095f1295db4911b1845be48704eea8e5d93d257b2460d80b9039c6190844882b3de4eb320a459e069a13cfa88dd6c5c15368085398cad734bb81793d2b8a69a716c71f6ad9b75e1fc5afa89cdd8554345a368b6204a0c578a957149f0bfbb5cd7e12823b3163b77e839d5d8af3b66fd72ba707e65cbe86bc95beb47aec33becb8e929e0f8b6eda50e4791748f301a76d49833cb3f82862ceda999614035f7daa11773fd3c0b33dbdfebf4921dc84f7e456a4625ecc8e0cbeecb8d8409279d56edcc9b3806dd7bfa3063b30207fdceca64d4534b83c6b82d95a9b35a489a67b655be04bc4a9b34601a64abe1b59d27efd05c5dc2b4ea08ef64969ca717dbc77d166ded22c078da35c86f52f2bf9a96da2debdd98295c0bfe200559dfebde2c0a287346ad496fefdc745617faf9a827617bdf0e6c41b86c04a1b980796855d199e66cbfae91ab03f1ba6b8fed62365367b3888ddb9b8df1aeb9ea1757397ab419b5f4e4dcde6bb0c4e3eee0448864120b83379b1e640f8e6bddf8e1d2a4988677dc808c95039f154926b878656c60f1e76dbbe6b4db730b478afee651fb4b03a6bfe35b592eeec3266f94b9ed8211aa1a5b38db91c4de42259906f9387cdded3b29fe39622f5c1f38dac51de1b1b2458b7308cdcb5209ffc1a73d9b1a9549de9285366e4dbada238811090657e40d26174df47981b8b1a9f220d680f6c326ddcc4204c7f0cd8eed22b82efc61c6c21162c68fe1f56a4eba3c4489fa59ad8a0735fa10af82c4a172a7b2f776e4e9aedd201e0b09a9f06b6811b414ce5ecdc51301bb1a786b752bae1e509829002544466a13b6c985796d2dd9737bc91bfdbcdf17504b463a6d168d7b0865867a54364bd32a56b15c36862c4e72f4ca8c45ca45fc9d689091697592eef806c1b5cf50824d331bf8e5a1fb70ea9b1ac15ab05184e8c1e076adc9d5256e69280fd86a1a06f8e724a5790685c204498f47e8cb2086b5d339c12c39e2bd2e0235c083a5c2f4ab4be06e7ad8b0773c94c6d54061448b9722cbb3c06b007a2a2ce240e550af632d4486aa52b3552346a714b6bc251011a47673c74a06bcf2daa52463d466ac4aa53ec99c85874c88d180370b738b5d538019f9162bd2d1a7c72d684d58b7c9b971e1c3511c61837f9bd12e18132125810a31012b62962f957a4706ef9dfd88bedadf708fb9a90692a232c22fa0efef23fedddfc3de38e938843ee8a476ff7c9ac93f6e8ca9d04467bcabf5e022488335a97731b09eee8bbfed054ee9f256e9a1730957127bc3087e08066e4f9f5174fee578c1286273b93d4066b96f7fd3699a280dbf57eddab6a5a0d8e985e778f5b62e2b0a4bb70f2bbac8bb434e854573b8914aa8fdcba7bf5a9660201e72343d29d9f08b807eaa801048adfc688f66bcf4ee207526b5238fcaf7ad8adbae5477227737d0621911b2800a4c5c1ae82b8753078cf53da68924bab8bac97165e8c5bd5ea94cda4262050e0a1620bdf0248b54b6b4aca7ce132a88776fc7fd4e7871543a5fc41f6c48760ca4a3bd2f56ea3e41f8a34a795411d2cc6dd1a9d6cc3b5e2b898aba7e5633c2ae0e51f1b7947fa4e4975d3d17aefc9cee86eadd8144fb4877798d6d425b2c64fd4ace74e2b1826b24187c09d247dfbce6c53ea45ec3d8f5ed95994632ff17ceab0998b041662844ef688ceb6bff2a4e4589d875fc7d9d4efc067c425cda8c2a319122d48dc47393761062fa0cfbcb7d1428cc222913b979437b1596f08960fbdabb6500b4e85f3efd5a139de78039d252c1e7ada44a9d5b7278b2d40298542526cc37a4d5f7ca54bf169892dec94642d91a04b02b720e203485377e321d7a8a7886d015dc98ed77c169e6cbf4c83f98812072c34046434a17b9c84105d991d1f947728a92ac3ffb9bc44ffb94048b2ef8023f7dd314263e3a85f862e33291534e401ccbe0becc9c47465b9f872f7511d092a63627de27d0f632d73597ec969e671937fa78603b30aff253bbabf8cb08ab9c441ad9a07a7119fce8b4bf61a5294cd91fbf8cc01ec927b55762bc09bc7fc36e3859da224939c497502b5349cd3dbcb80cc9e8e3dcf3298c490736b779706231523ef41796fcb91f9643b867ae661b2b455113833d41ddc4708e0e8d3d9b9a755b4d6095ba8ccc2182cb13d8262309d7f47d10a23509b5f2db87580596578e87956e445bb8dc8a31c8606a4c3932f4f50dcf4af51c9ce39c31acfea1c11a7e0688304b0ce4ac0b7be33b07f90dff187733ccd164079c7202f3491173ec4f2daae9b7251311a46e2231f225de94431473d99c688eda42b9d3d5e7502c28ff3b100b98d1caef74326459d2064f6e7c090bebc6ecde61086bcedbd2f254a6fb7b1bc469be052164e980428b586d49e482d79efb94c39dafda37085604647621f8a972ecf920e8aa6686ca0b2b76b11cb2d841cf5560d46452a5e4d156555ff596e3d5bdcd4a1849b69491beb2cc7d24e6f8f55e3ebbcb1c0dcbcc3119076aa754a3ddee6ff053ec1b08539f6d2ba4cbef0c2588b7a3f5a3edcba6f5e721e16037d0726ea9758e72257fb79487e21faddeaa630a89f53b51dd6b18c54eb359f809f0cd553e2788681e48b1e95a2423c275e84c18c66144bff8abc2b6aef6970c7271e2be3bc2289be0b7f381935c7ef21d64e99162e57bf7639be62904e673c3e94a697c8a1cc706ca51d47454d5d4f0d139fa95a6a322634b589151463a1f3320225f5e4fb843c02a4a712be3bdd65459d560e9bdb66101d992aecb240a740e5703ccabc6de8e037705917e7722ae4ca42e5db199933515572a1d50f00908930d462d094fc8a1e0dcc9b63e4b1423835c3eeca7fc1fe380684c44aa709999e46b78acca0f87789fda2221032f2719245dfc4b59240e05ddee0f508175132ea9417e2d58285479be7513c8477ae99842ff8762984964c1525df76f94fa478afd9806a67352e4636c1da58e235a67efc638908622e1b57d4dffd9ef3e98ccc7c79a57e8053401b6c34854c85305223ba3b60b744071d054009c31938e611a65f465496717a6b782eecbe7302c8b5b5db4c2b4d911f812762ec6dbcb768cdabb071f17cd34f33b08e60d7a9c6394d851dc0a6d3c0526bc41c770c2e8615c562abcc5ef2745e89305fc31fd6aca05f4fd65e5c3d6df8ffb2bcdf0972e44b7b30174d9e74b80df5fa52e757e24c29148e62623f34c5e3d74991d79f9e34d0986c95893cfcaa24c940ed7bd2fbd0b58bf65233a670a90d607058e815df9fe4f4ccbf736b898ef6f248ee5331061c7a1a7e329f3d39795e1f0fc0890826ffade67e7d1fb9584c5fa4f6e713c5647f384f9393704603dc6e05fd59870da7130c70f81147f126ca7bec9b5d07fbadafef3184eb48962b49eac3f9b7fd1022a9362937badacd5eb78d3d95c281552d8da5bad7757c9f1e83e8edced7867f093af7d35f2a259926c673879157866d430a388f685b7459bac2401dfc69a26c35c7c766f42013dc52108144ef55f3ad6b056b183879eb343225bcd38d6d59cd8bde4d50870064da4f64162edd79b25b80c184d4b755bd0a9506825b970513d153ccf36f365463df87af02c5dbcd35484694a4902123cfd965eef0938d8716de170c4ae14fb4524c8647706e8249b6b861721d2f0ee2a1e5c53c0c83780e6826132cd4e18ef842a08259d3e96145d86b9e20970b7bb2434cbd1e08f14955fc9bc78306ef6b4853513b170a6f967eecc2be31270ba90b1ac1ff5c8d0ef4ff9d072c412554e8817ab1eec6d5e1a024606a93c8b15df0fb23265e4d360b57f86bf8705ba87107198a748a6a74415e892bc021196e261becf802a0d9a43b89f155d939d237b9e2f61e3a0464f723a3baf6917a34425c47e9aed6d0e58040ebc8a0559e4624d12ca4364f11a72535509b04ae6345ab512d5cb68e9fe551bb48c6576ea817295192d6f4d22481338fb16539bf5675426d69e6524cf0153d119ab9060a5fee104f8f506c2154ca29fc88efe13261156facba9a5d537d16d9110dcb61ebd12c16d01ffeb28c4b0018e8d12d3245585579c69e33d4a23cda4b6ef21689543c1caabe0ff5a8f0304b0c1bb5f7a24c1be6f6b68aeac612884254049ec5fa49d3090c8d366bed098160322b04bb72a0573466f16f6029af7bb1ba4a20c6e05d125b55a5e5f17ba39ebb415550066c76ec9f3a31e81a58b24e12af9aedb314203267afe9e4bd3f845756d2cd574933e2ef2d654f707eb261473dce5bdb2725489e0101348bb8d5bf1589a92eab2384cba549ee7b8ae8c23bfde25eeb56d35f3144a16dc489d6085d25583bdf73f0b2139205b00e373599dfc79f6fbb0b9502b5ef9323344f6954c5db485ffd934cbd32604c982a7d86e4614af25a1da7f87c4ce3e056a39f656385f75894fd7b9ffd832e54be3d04457941212f14c8dd3020cbe48dc1aee7ce8fc4287dca07993dca75f4013be0ceda7d02bc8d71458494e92ea10e73c0b97b0240e151b326eb10e1deb7a11ebdce3b7f0ef38597dbcc2cf21faedd17cd9fd9ba54d73ceec0618cb401fb22b3f846ba16e3f990d4e9b1091e818ddf0fe3f33fc7eccd6b8a39e3710a877b96ba48021e051bad91ad4476d5feacc9fa07bf6e202030b2497f2c619cc44996b02050def4b16e9a664ac62bb65fa23de912c72ab1b09d24353b97a8930ea72468d4251c6feb4598d0ff225a918090096f0f69af95e9cd58c29ec7cf56591897b0bcd54a5620406211c9d4dab238bc9b6dd83b04368105e536ac42995ab562608629308d223d71741b66584403af4bb55131c58ea05105bb59aeac7dd87c979f4dabc4abe8d6720abea85c185a90b41746d59b7402dbca1efca355645e180b1330c51792d717a3b958bb6e842a2d6dad6bd4bd7777b817c09f30acca7f9654b4ed074bccff34964cb21aab13b2230c7c589045f42766948123f4b1df223ea5779c355311fb4fd18cc27cd05699cd78d5867e8638eee685f94a6abc1728b2752610e1c5f48fffb2616753ad3a87883b075830d322bc8af27f08df8000be0b0886b76d53f67c48735b8f4244cc944f94b0d9ad1f89557d505b30643f5f2fcd53d20b77ac78c09e7c75db38bac2be1c841501cfbab4513278dbe3ff7844a65e2300046cbbfb11a5c0c8cf6bd920c57222630debc287286064c79308023a88accd49036a388e52853301ace6a3d48d62e8e8e62fd6ff5c65b037dc47075ef623499b1561f6f53d8895193660ec23ebd245fd9ad62975a288b75435ede1788e305141aded07022a9190296ab432041ef516f30495d4a3ae015ef022145d5aafab9716ca632667b56d107a40ac83aa2d144545ae73be5d5981460162e3d43462a761f5774a274b95e5e3a877028af10b7dfdd94c3d7eb540a96e0ebc50af87a3535de37219bd08841617403a0819202d5ea16c3446ad64d4cdfe61204f0dc1b90e8fd3e75a76de12b86f28ca7a3f5326f8418e929c28bea577cd2faeb3481f08165aa9297229bb56e714d7dce96e84603ce59348965a4d5d4c55741a7aebec6182c1cc64ea0a7756266ef7aee2c12a3fc85c9e7d61b9cc1d20fe730ae4587719a981633ab265b656f3d95bd8e68f7a8d9cfe889c622aeeb5fd52cf27945f71704cde29d49d2a69d15b9ba3eef8765c49f8b90986869516dc15fbd032e634e6d74f9212cc6bffe1cb1bdec52d6ec5247fdfa419c7cd57e8c2e8e2f7b501370c41f780742d457b20b618471a998e4e78623ef30a4683597375eaf08b21c2338144f6399003693d313691d448454340b90da757823fa719126cdf832f92461961f629ff70822115a273542a776fcd82aecf6602571016cd570b8058b01cc384e98821b08727aebc94dbf54422556a13a90b7e79affe2981b60e2fafd60463cf86387b5e9ed61149d6f7188084d29cf24ad22cec97e3a3f855bfe6f33118eb03b28172d90ca59709183eba52a2fcb350ba001ccef53b9e76dfdbaaa50873dee21da21fbccb0975e9e1be8eacb68710812fe0b81cf3f0463bc68976bf0fe9bb6d5bfa112faf7061082f84149534f9eeee2be0916d281c434dea70eb28c484c8b64578e9678517cc49d07514ae31ea1d127d7c0a2340610e2b11a1efc516d6d2fd58569f9ae4d9db3310fc4a05d120906f0f9bf94945228583e37766cc7b04e29a4c39af8a8680d4699bf5208b919f3071098887eea5dc31ac35bc69c1c9a868a3728924e8b1afa30b3cf327e5421a2295dc898b6a194cda766724bba4f2ab60ee8578c3998218ab6ac552bc0964b75838dae02cdc6d828ea3000f0facca062673fdf6c95f1dde9417f0a2bce89fbe84f73564912bd89f455eaed43bb053d42b73904c26bd6121e4c8a72d2e3d647e945803288bb22595cf51a6713b7e99686107de7ec563d17f4f8ed0debb06eeb594e3132d08546c017087a437ef831bc9ada4a339cc7027af0f2e32f9dc01e5c18afcd259e73540e03d35347608a701abdfd55cdba3f3ed1e6d6477fd4291cefc199af0fcfe0ee20229a8564444589024db82387db87dd9f47628bc5653dbb4127ac04919070b949f61470b8c58b35bc9c1fa8ce308fbb373d5f50cf39189b0516d5a9bbb2621fa3f16dd0afc03c486b5c129023a7c07e740d81654745b062348fe9acd69d39a732aacace96c6d0f98038a08cc219ce370ccd7e4e7406ed2fe2e55e3b570a787f0bb4b3472deb426c817303585231d10137fd1ff563e7c27ae0684265424443253ab0b4500be0b0b10648c69c910c3b749222dda1accdf862ab2d67cfd5ea013334273cd8175b380d8c5ec02300441e0c191a6c8047601fc4fb538d341b35124bd27d9d3640fd7ee89e6bc9d03f7e7d8f366f19f5504d5c1def0d69e04bf7f4bfb3a8bfc72981b06c3c4b6ba32d76765dafeee260dffe562dc30ab9cee17f0bd63b53ea032f6796fc4b8fc5a5457c4554df4f5b2c64e878b1004e840a50efc54bc1dc528d82f524ba07dca46e8944c54d86815be82583eeade06c71a97b2ef743689a5e85cbe1080edf5dd9a910c59b2efbd583cd7b0718c0553af60d6f2aab3c4c24d60a398914622d741ac54793326e2b70fb51a52039951b856e71bfc925c2a960d1ec654dd38d97eb7e05a95d2be13386745ba5d1f59e78b9646a9357339f578783b32907bf2aa861c57a254419df58dc38df7d295a77e47c38e4887046de5c42c08565b15be21ee595017abfbce6656394b4eac244f865bed896f555dc67686be936b10828a6c2afa5a4ed23d8297d88afe04d9d494512f6308e5302e494933d97bc316e294a7661155f20db996a43a653efe20fca1cf5a3d2bc32de2addac5845488dbc3df4a571f599e081116127f4d77eb26c9c10f4a60408feced765f29558552332d0103f140205555096df123c5d8e16fc38f0c1fc3c2de481081eab170826fd70e1aa267895143828cd59bfc8dda87e841ca5752eb81f8723088b2979a106fb934ff74f2e5b880641c7389d6a2c996eefe865b80cf2a86248495b12e57a94d21576acc7b0b84779d0ee8ff3cbbc419cf735637a90f0356ef88c8d043f677b1ad569e03778bb27dcecc9d8765a7416c8f7cc103c53b3268592ce8c2c6b0d891fb5244acc7d4cca9b29296e36456dd888f0c6c14e6e2566ca2f3362c453e1e6845ee980f6f3808f74d22ea1ed1f9657984f53c4330b08e8b9affdb9c4c276a04f70e2e46c6ac9a1463b27758895156eabcd2e65792b685941b8dc62f1e53c9a86806f2642a04381017e4db918d367f30c94f60830c2dd984501f11eed5becbe332d146051b5ec660e62939404966646bfa2c9c185064fe07d24a8e83df4d14cdb62fe6c2246b78dc5c301a09fc7d0a540d82a485690d5421ab72fcb0950e9ed8147b093f2b519410a3605c14362b8bcccbaf43919b8af2b501ca78194b986dc25f081c4c4f887902aef4e2f776a03072d05561810d540646124370947b1fe895e4fd0d61a8469af4da947957a43334bd52c30d6918e5cebcccd4bf82514666dc3a280805d9abfb702b2e36397a676fd11a313571f3937f30ad57f59c8c2d532d721c02cd4f9be50d6dd79bf20f2343ae265ff031d2db056ac3b359bb7cd2d1efeee7b502b25390527513c000aac2e09bcd9a03736ad40fc9c9a09c1009ed5c3b2c07f54b44dcd87dfec5e85cc3ccdd6306e79d81567279c0c9f753a57de4115d58809fed25cb54e016a883fb3ab5a15e78450959f7ccef94745d3b800f01b7ce3f338373dccd44aacac3ace7c4a622817a51ce69843416d755240c4a0c4cf08acf9bf8180f532682de4abad3a03a1649c6cc7c15665bd789544d591d463385adbadd45b2a12914287c78cf4157f2343dae548c30ff3c313e8154375c91533483c5e0a6ecc8c2fc8be7794b9b227fb1969c0ddecc31befd3efdeec29b1b668704f61c4b290813f248d278e4dd6e4187db33b3088d2a0cbbb878775fc6fae2cf44250ce5880bec9288fb99302edfda6a219d7680ae12e7bba9bfc09c41defdd6da47178c0ebc1736eb5ed4556825f7d4e20bf4940b72a219a8e7b4ec9c14375d8c3bf173c584f3bb463624fe8bc8ec52ccb63c5cf411aa6b53893734b18832ecc7686bd4f58ea4280f5f1bc6c79e81613bd91bd682c5eb54be5c6bc1b2bdedf425aaebed2d6f380364d1b0265d53023c6e3b6ce19860edd52c46e5c79706e6d988337d334f3cc244c93e9fc5904157128704303a086e51e083344eb91add7425acd3413dc38f062c5a25ba8ab9ea3517a5ef56ea5c11699c8f0b6dffa3c68fef378ce7b96341cabf23e9adb7e371245ceb34f2d7b0e21c425767874d528e657d47dee58d8362acb7a5882fa29f28354572c2adc8be32f7412a00c7240099b73590aa0d8d33457ea7ec7be301e17fd61f706ea441fd88ecfa74c9c2c104c346f96b4c81e5ab026cff28088144b1991e379207a96011caa27134287a477fc785bc4e5edf14bfde7bb32e82ab525b9a8d0845123618e09343b6b2cef0345f7db3db65a1835b416399f01c94f1e539e7e5fcb5f2b9c4074350abc09eff0b8113016edde1da08afeb93fabce2ec329f2e2ba388a0bd13da82dc6dfadb4884698a1c7703b3ec581074f0f3f9ae138b661626bc8f1811d31a21949be11fcd4ac948dec1ecdba4e2c708a52bbb2295136f3e3e36b81ce4f729c10af63a5ade76e6c655e240acfb075b647ed6d92548a5ee9b53910b11939c64a759fce3f4037f675a384881c1a655721eafdbdb4f283d814b585e497ee70220b1be745fdf26361164c316b47548e0d2c927c9fab36a2fe4620783d5b82170b9f5dcdc6aba062acf2ea2a7bfa900496e2b5b0e7df29a86c5dbbda2373d07c2abd0363198b86fa1cce5d93653c0e50eec44ec304da8cbab796c8881db30bbe7b397bba70475c44095276aaa5908e06c18c87772d27fc28e7d47862863dcbacbffd693d86b3d029982a0fe1d0d8ee85c5d5015a815ecfd95fc750566019b0fd666fde71611d1c63629c124a7dd41cc48cbf20ebf387944a209eb6d15fe97e0640c4a6b2d82f18a9cd0d77e08b0d840ef8970d982641b94203dc0544da7733a004a232fab61d8781a405317b8dd9182a36a035170e759c72201ddac0a187989e18b74c1a8e6cf4bc25863b5856f6c910831e301e4ee4ec7e08ddff99509b6f9c963571bbe986e763b4727c0bf7504db088b35d3951e645cbe1aede35901d251131974f3332fb2f0d008d0f34901c3bd9b13e750a1b4085a44d9ce45b1cf47cd47b355beaf421c80b6d1d716625d403b5d95004d3e0539910ba5784b73da9523d34a14066f3a66b8e120843040719cdf8b25274135a75b660644845f4512a5642b48b40154a62b2c9fa3bb9e72d5254207d0810bbaf75438c9833b348daf016751199b5a764ee634fe9206b2a8065e2a66516c591c8de6487677c3ca679bee50cab677a73a92d689b05dd32610a5e6c3104f254ceec847092496714a711ec8a8906b1de84adbf84851d03db9fac889d9cf1d684ad5691d76987ce00756a597e84c1a502d9855460861490d1b8d7a5986021d68c663eded63a982cc871ec8846b63e6b4ae9f3b9423e46c54fa65b29a481fe769d5229233ebd044e37657d1455b262fe0daa8285da8cc95612ea9a2fbfd543ffd5e1843ffcea4d07b77f44467aee82a78f34799fb65466531a384a8e03dd0a7c9fd3dcf399023f176deee5ee24317e968a82d75819cf50449840a8a6f74e6bc674a85c9c6b8696c12807a1b4f41a8532f3957723e96731ec84d5bc762fe47ea87e04f595041153e23e409e7cc4fb8c7b0e20a404c7675b20d9a319e62dfd135c69b40603c0149cfb494ddc06a4fbb437a9d2a20892ede7cdf87a60651c9c8202077264d5d8ffb7c9ed1fae24a32c05ea2d08b4aa4a04119a9bbd79431a2f072730ce24652a46458143f5e53ea56f561de9233f3a14a82c2f3fd28458ef950dd82b3804a7734294751cf944d59e47b2e1bfeb922989fa6c88bff7384e8ce46cc8453b26c2cbcf697d0fb4932596e828b95271550e485e30974ef494faf744c74bb5bc5686cc264a9f26d0e308b229a6aa897a1815bf51b265edf6cda50101cdc1837061fe18c0deb8991b93e0856243694c6ae0b2a35049808856d7fe2a015afdae32f059eac1fd145f7a6308512b832e13b3afcc1d2a65487a4ac5e7e61f4b7f6b8fd8fa790af253575ee9b885a54569d655210926b9a7d948214cccb9639a94ea3408d957a52995314ac5d5e686863e2f41da74b3badc31b3b20d5d85e67cfd52ecbbe0ffc46c0c01d44de23aafdb8e7283859d0c5c7f3c53cd9478a65465c3eaad47d0667452c9bad6c1aa355c1dbafe77761b2c896e0de40d7b814391ec1ad6da8aee09f2ef57e00aa5a106567df02f37f60c0a4b3367cfb54403e7fc8abb060df9de95a59c9f32ecd115a123ccff0d031faf630587e81d31cdd50ec872464fd3507025f6cbd108ca1d489d807054e0744811d8707d2f70b8c6815a4b7da172214429e8cacba5769755c2050351547cf3b1fff6313c9e0d0bf8c206086b21c5d2d49fa33ffa28c8a4106ce5dc36cf36773707ba38ea51820b09ff9dbe0c54b1d43fc8e340dd165c1727dbb860f19c71c2558d582651434b10d72d7b08ada095acbb179d5ebe70f03860d26ac4476c3af19c718644d465358ae89b54c43a02736adc96e732dcdc952441bbadc9731769c7390a81472a911f5d41f11a33af332d9f41aa8990e2c34cbcc1512d4c753ebdc834062c78fd49bb9e10244939551e9f8f649dd9a6a6ce7b251d82472ddb6a8e0c292ea1bdb85547ee5e5c601cc50fc4dd7b967065c46ed12bb83bb083d9dbe16db363d9d25100ea38928a0a77c93f8df2112e9853b418adecb375dd375f4711935b506616290047c877e1f104c072f2154acad248192bfcaa0fdd8244ca2d9063e5167e99ca47a0a4244fb8294cb8fe266ee91f550f3a295256460992ae377995812b6a22da973ffd25cc50f9e1281eab6b450ddb9412781938ea3e6f85bc9eb9771fb9ac7a04916db6ba53f8d44217c50a71bb1a244eecc20d6d551d4aa902a6860c65a20aa87dd099d7bd6e133fd45842ca1340b032c96fb9b5afb4c7bc2ef01252a562a527fed495a88ba5209683f68071239736ceca6f8c18321399eb9476b9caf4674e8bdbed00b705fead8f866abd286a7bd14b1b338a14008da8bed676d6b84bf733202f019d60ce6e07dbf7298512c85d11adcc9eb4f8cd287932f542e4f214f428b2028eb25a736d60f5e4f50629c7862f443aca2740a8d049a5991a889eb2d66813c71cfcd310ade4269201a2e2f697301252e832af9c3c30c4350ac2db26455a908105282563e18716f70cac9285ebd17fb1ab4be328acaba3a3c66dd495c0d4c8a4f93adcb61e0c3a09828e2a216534c71258af968d62a4c699df9e0985fdd2932b29e5b2a7ae5f36f6bf3448154424d1800474eeb3839a1dc896442c635094ec6e17d8c6311690ae453484d849935b37ba483a9f170a300db187bc8b2ac29b21344967ff6ac6da6fbc0fa33f6e885d7253b725978d725dd75be59abdde2ba969edd163f5b32bb0569e0290b7c2ead132d847ca96e824c04702e21f37dff8fdbfd42e892664770969fc24ff4b6dc7c2cd753e7e6d9543c2947d4c5c94c1b3b8c3f9d25b59a79ddc1e2ef60593e35b5b8a44c33e0bf7d939a6a95bfa7b994210f32a1de94911b2ff4b090555200bc6b522732c4f5b8ee0062449fe9782bff207a606ae32ab376a0263152a63e90215ef4855741772de245099f928220285104a1a7f403b53f642f7252e77b9b9364b7218abfcfc0e0c7a3625895e74d78eaa25572d994a6eb00bb8330c6c1b37149a4ac1640660215d6074da5617bd541b89b14b0a6e512b19635a1711ed98c44c14449c6989a21f664f82a0cf5c9d2f657cd57019d7dd6d878346d118a437082a0d62207fb294e4f9529be453994b39f05f514237303aca83c56910ffa25c3d5af868359382df021784a6927f799c2e8e9d073cf195c48694b269887cd4c2c23e594e99d0cbb352520c0e38a5ade1a2b4c9904e1cb830cbb4906d03518f27a9d61c773895033e32e0129012b4423c8de57fe2e881829adc01bd239e2eb07c6142b0d0ec0896c2fdb2bf94691d0e0ab4cc1971f352c396d7bea185d2bf8cb47241436cece8c819db84d242921a8c9565634aa183a0d566a12a0b5fdcb3341423002cb115b6d904cb38ff90f19af8fa8cb2590d7f49d0515fb4a9445029eafe8ea9633cf2a0f653466bff24a6f55536995f05bbb96cb00e5587a98858030393ce76aa08dd72d624853f4e84b4389351ca2929e4b87afd1d87a271d4745e825556934b226e2d79eb4a7574580b3a6ba4b447ca1da3c1839416aa63b19f1fb134d334d77d1ea4cb99eabc8b6c24dc889bd63795a917ac5353653a2c71b6f74f605b559050feacfcf8373d106ef4d523e31b85fd590233c2912aaf2920f245734b276559883e089f56ca9f5556fbeb446a0ca49f6683ffb452ab633e1bada6c4a93a28931687ec94aaff52aa95ae5c702c76322214f14e2b5520c73c5ea284fe53b1a6b7ef782a067d0e51168e1a6b501cee124b3558e18e7cf045480dc53ba5eafbb44f6e668b07983dcd05294a91d06ab314ff1f3059695f932877baf9914f115fc61672d4afc92fb6a5523162d74cd4adc4b9ba06e6fe3189123e1c82174c3baba50aac574915ead2419700760d6e8d947564391d339588f5fc055dae2d3e2a4667e57d20269f3965aae260e80ae5a0b252552b2504e57553983d3d1b7d396ca220aee245aa39b76a43ae9818fb8bd235b97a1ec5f29efd02c96aa5d6f45871417e7f302bc357c2ef739fdc46c31625573c12c5ef825cff0caa9a2ae9ccf7e2bbcc3e8b4156e1dde6d32fb7079d6b04b1302cec27fbb46566a20c30a419f305adc0b7bfd354608d7c728589db49dd41377a633ca35427cabb2411be5698ca983ac6941034d4c21d638af976e3481b264edd3f8736b829e2c98d53241fde1853aadfc6a6b709a84b9d92553226e4c1a93efcba9d7b0cd7814922065631c0f4491b20334044050b29499b1ac89ae7664c8592a937b7e2c7a9b1064a2286a8dc2cbadef18c309a20159543f0c891a9a4a01d87dc9bcccd4ae07201ed39b9e4def0a62338655af651cfbfb927f3d3f4676926a5664c199c94f1c30bb0c97860f6508670b58430095e2c89b78cb9516522adf63fa5e7040a0bc5c3216ec69415e694bf4622be22ec4142ac839d658834ddcf7a8b6b9699b99d3a417558affa99e2949921e8bcfecadf8c299216575d9c9a59a5cdbf69016344019057014d818286f251309f77a798faefda585816d6fab339cac6e6a9aa27076609a53463ea4b812d3c531b907b46ad5f7daf8b1ce01682779defcd5a9aa8252bc7fcde3cd7f98b1653f4ddb729ee8b4cf5561a18d1e9fda19e989d21b30d48464ec844ab40d8c9c4c543be3770e3fc0c836e2bcb6bd1aaa959c794e33c8562777e166a0aab89df14131049a87ec79ed1c27670dc2134d322796bfee9501f5baebed48053a232c22c2242bc976ae1f9721c9598f294698e5b6303757265b7da8f72576fa87a3a90702efbe5691058a6653fb9de644d7fe9502fcc32fe07935face1599c8a69b724cdd5233b9ef94506ea6e7f314703a6c6cb444e486e2f51156b66ac0f546c1cb3f96808b7ad735897f5884aac3488e1289d244f3a554487d28bfa0e47058f4f3997088314553d5ce3c7865f8c28a9229031cfb28149158a44da537aa7b7c72f558d7ea9bbcd7583df9d1dfc2dcd8ca70a8cd516bff555d74691105fa4853a574df2ecc5b8268b2beaf9712780aea9e4a631215b3d8fc39fe566262408410e0eb850deac04d332dd5290f325338846653ed6691ccb9909a3f277b9dd4045205b2526b0d891d3b778775ff9f7ff7f0c35c064246cd99c09fe06aba60a71b243067660aadae238c223f08e701bc00c34a74de44803770513aa1118f3572c890bbc44bc57836b926a85ed5eef2b513dc84a80fa4071b8f57084c10ec19aa6df1f3291d8266cda5b42ed89d859aff84849d2573cfc7ee5fb61f155dc138bb1d0c4fc0bea013453be722ae5730b080db8a33c7e4a3ae7f8280975c378d519eabd76cc7dd9b766c3ee9e2e36008f43fe38c3572b3ce234d49e9b146ad3baf6fe7c466a6de5d72f1edfb01c73e82dd47e887ff003ebf39711375127e4760d2807b8684e75d44dc6759caccba845bf5eefb68be2918f89e390b3e71d992f03ba7a60c43109309f86635a784827d03dede8baa1af39d08e3697ad0b9fffab4a3f800bde47176fa0f423c23e4c0ba6e2a170cba66f35ee38ffed1ea044178c3c14daba84297cc18ce3b253f7800b3645137254c0d07c57c74d74e66c492b7ff78250e7b5b01e88332c078498a80f003a8f32b25fd7f982801d12f28868440af32b1f5328a1df849e92ae571dd4dda9bce61f226d5467a352465adaf8e6a88a3c9d8840598c501e1fdd7af4d4ee85afcbd932446c22b6be38deb4ea0ddccd9c55e2d730aaacc7f0cb4a38919e89cb9389504426b6e99d5f01ea268b44fddca44ed94898ebffacd9fc6142964fed1ecefc2770c1b16c9b6b74044f13dab83b2232dd50bd6f2e20752d6988c08bafe5ba3d31cbd641d58894e4274b439d27083feacafa8148fa39111b976934ab0a0859fdc554223e648610e1119167c802cb5e25eadf162bc6f7e9ca21321fd60f15588f255667bc1ff4a6f6c2490099393949174dbf7ae7b931eb8231d1f590d33a4955677132553a08d7057f4a4fb357f112e8f65c370a1de5236229d4656da057376c5730fb769072bf403421fa6f96daa13e58ac15cae0a04629da4f9ecb069b781a2cf689482322641601b54cc1d99b419cb80b277abfc87a0a4f69d93af910fec2bbf90db39f1fb78c710b8f9475e9b8403c62a353c871cb0ad37deb628e95dbbb13997ec399327df93774de47d3436cbb8e063108b6740e1c0f5785d86662047cb8c14b9368225dd8d1f11fb81df0180ac2b8ff0dca079b7439b23244582d85b962be6320145b6e2e0264d8752b7cf3016a44a6f6d408bc04a698fc9672e4109bbec216d90a87cf924a17634da534ade1bb25f66418c7d4f7a1d2764e73409579472b5cdaa6134b9b36b2cda9ac29499524b31197e2997c905e96c6a46992960ec7bdd67f41ab329a651e2c3f15f1b176616b99c1b1760aaf3cfda6df5eaa18914a8504e39797c1cc04b0e7f4a74d0597b55e36758160d889329956c5a40679355db275cc2028d5f16929f6c0a291d1d2e2b755dc2b878091a638b3bc53a35237f02c977d7ea2687428e05ad5661eea180ba1ccb2bfcc3eea92d1c59ad195612fc898e62e2a2ff27e7198176e1d552923cd9b23ef4d718b683d142141a64266d2caa3c9be18326d84ce8eb8c691f624789a8a143cf5b79988402f786a46cab38b97ad052f19e4b4f2bdd72dc06914e92935f07fee141ff89e2fac5947b90a91ba93f356874bf8343badc86a8866c80784408fbd885cd6e9d270d8bf6f1dea251d23a956d3423634efb27761edf2dd586b9eb2c3f04e25e9845750aa4e5909d21b236468bcb9f010bbe9e3d2d5c568a7538bb48f14134be525d775f15f654cc9ed60fbd04e555626198126dca7ae406cd047dc2e46a887fd3f32bfc68676caec2bba6c7b2b5b2efa8d0b2e4cfca415c33513d11f8305e672f0afb1abe4721475cdc8bd3694ed3467d0c538c8489091804591bd66d8e504bbaab21a60353bad5da232dc4330e7a252373273fcfe5deab63ba1ad43c74f1fe87662987c9853d21eedd1d4eaebd3fcc789a03cd5a80b224c8c224f36488eac3ad08c244f50ed1d3b2cc77810c648706f151d4ae045cbf829d7d347b377384e76a80df844fe1e9bd6c4335a1a749b481ed44c2be3a36dff91dc4ed9adebc833e1255d327584dac6c2afb31eccce1b1c3fa463977b6149a4723f53e93ce7be6485341126e53848c6cce6595efeda050511fdcbb73df6e7d9d824f8ac4afa6abfe989607f5d7bb89b4943748c13c9e09ece4a3edb9c5d0eda959df66deaa0a7aed08a5c3a7d51b93769c288b5a91fe232feac0bd5425a22042478ec2c34aa2310f29301eb07e2a4dff1fc9e4c9db86d083ee65d9b87cd24deee220a39b1363a099f21079cf9318ffdaf7e2d54dbea5a0c1da4ad20166be67f7ed4dcb5736f45e9707c26e875993a2da902dba7a312184ce412003c774a33d74bcb56065b024cac98c987f3f2bd601d04298875797555c5ccd7b615b01912e32c60757bb40985f1395f5c691c309a6d6634d3e3bf42b06b6a5429dcef59ab6e1f8d032ba5cd9b901d9cc68e119937551b19f70563c34033a7da2c693b70cd078d96b5a8cca0de8f5856b02e7430b74e1995b8f2cbb21c1db8056f58f61f9d8ab81a20452c19728d00f2a6831379a56f57628ca6405e98d0dae56f8aa82855be779ad05a2479410e57da9dd7416b9c701f6d3b6d09cbc214dc2d2d31db95303a6c56a2793ab15e0c7bbd93d0a052879286b4ff64b41bcac6204d092f45ac443da6c87ce0d5a532ea98d562ae643b503203f5ca45f715bc4d2692af001b605f92acfba040f484727911f97bed925b5c5d20a3a02a236a365aa0bf858e3713e3c3eda9acc5723e99d27e1459b87fbe0531dc4b6217240333ba73d1fdf1f20a53b12aa866ea8368510cfd406b2045de7db6bc29beb0b5a2c60b41de8fb05a1111c5e7b4f23e908d5d4dc0a707b61428801cc0e32883c3125fd4f11d504c255cfbc241a6b878cd40487300bbc58711ba5fef8e39986b942e02051926a4e9d5dd8099bab3c6a6ef27f0cf8939b4da49ae2f27877cdc658061d2074ca4da67c09c5e48d13175ce81121e4883697a3ef8fd1e2187fe99e67bf17c4d8fe34a2676a60e8429f6d2d075d91b59e33a2996658fd7596e574b378586ebfa5407503e09f473472584856af6078ec9cb9f3e9cbe02918408358f89cfbbd0528c98f020cfab68f13e23f14e07c810029af1a5be1f63c2509617999da9cfe04d6c5c401b1eafa3677c0fb87fb5ebc5bc57e3a8346746c065de97bfed975127ac90f009e4ce15992f5d2e4baa71ca46af7f6ae488ab9723593fc7be5551ee60c5e64ddab2c9751d3e024cbd6bc381315d9c833c069f2ab470426a3508ed1d2ccae247b7a3d7f08b2bc3dcb97087a972b632817f441feb9a343b70ef8c2909004cb4cb97f47be5b212591348606493243a833aaf8e0f9ae9ce7991b4fe46c9ad54178ff6fe17ead5de4453eb41194003dcd9c66be021b18ee4f06e3db31dacf18fe9410306128a7e2304e2ee701fc35a893c7a8888daa7351c0087bc07adae5c13ec0086a84a7c26ef65b00f2ce831f278aa965ba2974d15a60c065e9ce1a9e53d5b271bc72d6f390059d651fe8ea460c93faaa4f8db662c1d063ea8ac593eab6b2670152dcb9a9e106f3f5c8ea1c4daab5a7bca5e9aa946d89bbb36249c98250a216484b6feb5cdc895d48d73e9273a483a0ef8a5714daca73e3b3c60b0870ccdfc6a71aeaf8043fb104411471a80ef542c5a4de97c461a03baf6bba022b7284b6a65723eff4114a4296b00c7230953162257632f15f9b0aa498bb3e81c4595270e15e1d30ad5e607171f2faaf77d1bb2b28e1df14eb788af41e1032a50cc878c3f748dfc84b73fefa7b3d7df4252b774df48ec2e10f4f5e51836692858a939e5abb27703cfdf7044cca95a95183658f4268b6abb73e2825dbdd614430713c9b03148f07b274d194295023501cb32f433dbf51be11ac2e4e78947bd332962cfb24f4f43022e7ba09546682c5414fbcdf87a81cde5744e1a50fbb7c1429612efd2386ebd41b000e01cd36f367dfd8d8dd52bf53042677be763d94479337e3f762b6edc52f4fddc3379bc874aa2e7b82928af78b22475889dbdb07fca68d6187b66c50cf157960e204f0a075a850f1f3036c882610e847a24b6c01db7209c7d0269a58df911343687b1283f3774c86c62c1931042f3f1031a7877e409762c3d4a934501b6caee56fa42452a9fad491e33e52a8fd878a245c021db0857191e457ed40a00be94d27d2fdc0ab44ca7364765a4457e3c392691760126d6d6d091afa1e6606e85cd962c26583eb9f05adc502543e8d1a3942aba90b26e9e53543e43f9601db6a34712e89128b08b4d45f35d07a24800afca6c0af67755e13ac0b1b2800bccca8777d4a73c53997a58879f431c3d0ae7542ed00e76d45d81b4ccf2b9051fbe0e7e32f9d78edea91310eebc2e2d072e26c09bf9befef7be0036023d20f9482d596b8e43de5f1c583c14f67edb9d161b8b58f8f254e10ccd2fb7bbd49b9b139d7672cd1a6ec03921525a2ce553e04cc2bcf6396718574b553c5836c89ebaf2dac244b6a70866fa326b1d0ebab94849d05bb1c2ced74806e2f6628d2b58e8520f3b52fc62536bff89443635aaa7451cc04099c1328bca135f20ae54b2a7a000cc006616d82de346d6d83398de7e9e25f4167a61985bc02d6fcacc5304e84526895dd3089322e01887b5a3c23eff429f9529b20b9ec4280f5acaa4af724851f368e574a0170fdf07776cf3b174fd574431dd54230e60dc3a49c1f6ce83bb22224326e3cc0cb0d3fa03379ab2f49830ac344cde6582a304288b8515683e1a3f7990832345ed008961d6ba2891f31c341acb1bfa1f378b5f3bc6fc1c564bb19d1b67dbdf8588cd113e22d07cfc682f3d007bae7185ce249a6f1604012c983c831d82d9fc69e71500d02cca2591e4faf53a1906e7459744ae98606f1911942294c93e2104096b8b5e56ca4d47b64add70d1a9e5214ea2f6786e29377703027d0bb89f9bc8321bc9851de75828de71741480c7cf7bba18fef06a29a117e036acfc8215f0632d12323392010f18e3713988c64510082082bdb9339392a008a71e78f13ba374327f6893b2dc22f76ab64534f90ae11ec1f8c13f63e1b7a8aba9550e21a3a4d793a5397770a6cd085e55a99a7d3b4d9ab34eea5f53a664d40ede46f063cbb33b06679ceed8da0abba924768536158ad2471953b23d5957a555e9b83c2b546a1c3a1e94f8a84d35cdbd85920e19b3be74608495431da87aa54cbc3b589b8c80c0ea2f7b812f166589d5c82bc0da9332bb3ceb8aa017b00a6f0d4423b605b0298f2db1c25c7f2ba665574e9670f5643e22f45b72dc380cb93bf19b624c8ee98f70dbfa3013a4832d5507d8a6aea5e739b2a432e2865f947350633959c8a95b6b746b7cb809b9535dc2cb1149af16d957ed6ed533a390d70b61a3fac36880da1a9c3d8adc2210f51480c1ab044c651b344f7c0d9825032c888b7396fe73a324f9e799ebd1d3ccd345be2a397cf3b159568e649cb8abb9c90128fd227daeda1e4ac65e60776ac0de88d79e91acb6a79e4d2224a7d3b5217dc8ae8d0299200b75069cf9b3705d35d3103d36d8d00c75e15901c62d641fa410a5aa80376500ac6990a592a519f1016f91676b82e124fe3b69fb037a4aa8909708bfb76ad66f8b703a545f78dc8ee5c2eb42fd00a51a1136bd759a22aee68c49b07d1df655dd8e52b019c7b5d152d64f52ed1b152d33922c9eddda3acb2006fe0ba28dcb8f1b03eb6b910c3bc48b9f84647761831f3d97281694127f03cd8de3f222333385cd0e66221d03ed8160e569b807065a8109229252e2a6181f96330c0052f33c0bd9fdf507802de50dc5a6ee10efa36cbdf0568ac7e48004cb549f0e1601fb8c2bface7622374aa950770deba52845cb57cf1fd48b48fc413878d845efb779bead05093bb6ae4da9b59b097675775d25b6aeaced5a7ab4beaeb0261ccfe96c1b35f92b8e82715bed8c12d3e780f3cf0de5c79a1cf5107df47095a084edf0242e82c13275f419738c2a9c992535ccdea03dd3a02a2477f9873ec99a6a30a9905bbf995c5321cd265ea04e88d266ebf8b0b6c3a5103bed919d060af8f97f84a304de84d1725b37154d5daf696f3387d7cb7c1f0d9bbfbe4c646f3cf662e073abd1895cfc91aec7aa9cfb2cacb4aab0b94032f18c7380d4edd9b715f0394487bc52d4c672dd3e7b8a6e1453564edc92f3cc9a7a66311fb184241a193076c96485554bdae6bf1b011a368d1a9b93fe34e1323ef3cab731100064b02f999d4ea6d47296db260d48f5ada68c863cd2e7bf79b2060f66edeef16ff38929a3316d6ecca20c31dbd301abb049b13db5e783a3310d15421580866b209ab802c4c65cf905ce3c35837ed2e90886fb156e7a293b6f537fee09d024a6c86b0d913de7bb4c270470e28e36e0d653d844868619a6c1bb6b0a0409e892331c1f7e4b9990f9b03322aefbc71bd604062adedbf27e4272a5005f1bf249a22450f3d4724a50b25f812d9bfc11bfa651a194be18190dbd4b3dba6d912895dc87697d2abf82b2045a7c6cb293ab00c57b302f18fefc7fcca5d5f49f5c0049d6eb0a52be2b624c369c1e3d7145c2039680bcad6f8c5040e60080bdfc85918a66bb7a05c9eba05eb76a73aebe928d012fc3abfac17c4857097ce1514fea607b55b499c75cd5c6a824aa04df7bd4a100789888d98cce0a63fee7323b14c8c896c430a2e87afc4ed2039f8d6e01234752055598a5fc58424614e8db03691c114349b0f4f05ff0ba55b4225e090f2c9a66e0111a77d5f64215cf24a6147033aa648a26ffe5edb23cfd845cc932f326543c339a092a7291dbbe2f04655fe52ba9b65a971383021671fd93c4151763a596dc02220b052e137ee10796e14eba69f0073fb01cb62246a16c82aa6d58978d30e090dfd28371fa3633ba085371ebf484a16fcab0f84e920c7c62800367dea3a2b793abbcad97e108b012f010e0dcd914f67020518afb926d3d6ef29fec916a3777c0b888d991eab5ba4330eac8877ba28a4fdb44ad961eddee14bf2e913acd67b51ea63e24378622711b874baadca284d3dea32e58d5bd6a8d9aea8e9d3804e3e0379ff59776e5186146222e1a900d3b2098a217e7031e3492ecaa0c80f0082b3839044d79df60eb3e27388549b132831e5e1427308aa03c146d2a23524ae879ceb3cb0215274c211cc751378e5622b71eef1d0981fb073bd96aa3faa46e808976fb08c6993503b4512c0af485268b95e19aa9dc6db8a4d4efcaee41c8ab34adb441b0b430a9f93290ae99b7bf6f83d8d872005d4eb4f23a8ab9596d88e60c964e829d945c7836c1caea17d4a760bac49d98383e4bca436c8a6f2e671db86c65bf5ac2a99d22b48057164cbe0924521a9f26160b60a298e6327232e6e40a0eb96f2d9e75d937ba844e6e2540e8b4642e30fb959bec7c7f11842d92541500576f64ed4d8d666b51135e2d041025c4cd1562a82286bc807431027cddbdadbafba3e258c28eae5c57cf9f4546b0c869af9eb078ca62a0bc515d810cba330824cb64fa25a6421d9944f6f82a1a79d8c8a819cb563d535194184c4c08c25e75f7b73d32cfb599d7459f4ac8dff350b95b559ca3a6709810f8f315cfa5b0c072ab1e01680c66649d61db5c57b69ce856fa871ab07466688cd9a4f9d09dadd96531d4cc97bf15b68e7ae1841ae002f5ee8f5eee02ca27278c371eed32b862e72bf4b06c9a8b40f64b34c1813cb0249856904f38de1c779aeb54ba1fd99e0bad0df23a1e9032e2705d22b033eec112fdbd6bc27179aafb068f3253db8740e3f00699cfb494284b0ceace8213ad693284ab25eff91c3a2b613bd2723cac300b201499005edb9b7888bf23ff9952cf1e30861b874645ee3972e9be76cd3e21304a254a387219e3ebb5b7c6978a879450ef288ed56ed51c1e8d9749c926b1cdbd6814c6a247eda265351cc307b17b99b9cd7b3c2c7a3a01da040e0861d6df2104160933b39bd99d855ef18badbb724340341357715c607da6e594e42acd292a08096bffa5fae48618b4e3cbe24e011d2c5d2478754c1246396923582de82129e522241f311d7b6f3f44dc118e248a4e05dafd6294afaf144ffa8bc9e832a36b5d2dee007cc43fb85568503a162ab34944e0fe0ac73c447eff43ff2322cb2274e9d73fea5a6156a82849c59bc22795accc8bc8c8152e614416c53f2fb7ecd3ca46d464ab248e22ac2189284409654ee698db54b4d24d2c4b7713ac1e5cb43698aa15eeacac9e62957c04c28c01b703ab3f73475b98582adfd222de095c6848666e3a3cc116fb63faf9e486462cc4c8e8a471375d87adaaff80f5a8e1b308de7490d76d8e496ecfffa77ccc3848b149399a74233de29d31268eaa8697d1ae9b4cbb4232e86988c63d67d678eab0587d7468af24da0893a0621e42db3a3a9de94311bee5883e9a61a1acff07368104aa98c1ec72652e028ab048d4cebb6d739b872482a0cd3980d7ce346f48e624caf0d0bb62b8e24ac6cc7674a3fcf18df37920bc21c74dbda288cc1c9712b42ea00b2a43850c141ff54180e2e0192cc06406c1e05a4edbdbd07a055d3452407aa1342376372b9478c960ad6db00979f769977bb816f36356824f87856cad23900b9ba946438ed703b6833b7f05ba6ca1eb3e0f7c3bcd5a224e56d2b37fb4b1d0623898f16488c301d7dc55a74cdbd111efac15614322fc0161321472a676c946a8157145622fb42ca5ec12b12fadcce7c8c5881521613c21171d8613bc0927c7ffa8dcdea4175004036dac1cfb9070b89c0739e144e56dad19aa4bfcde83445a735183f0f80429ee135b426ad8429a017f0acdc062e3c9b741d6de1b085c1358bec6303805429cc5e7b0aa47787904774d29cae740463770d0c946c97a2b9353a3c57ee4c53ed5cfbdc41dd8df51689882a8ef4bf577650ecb724bc502589c8b79fddc69bc284bc4d5c5d747394c2945c59674a136acaf6d5a582684ca44eccfa1a295a0f29a28c2b992b48b639d00d079d13da80b93cca5af5156e68751507b3a4252b98313a3ed1dbee061e46003de0e30f584b16a2a46a3a6dd46b44ba5e944d3420f24ebf885e06e123cc18f2c6d17749372267f9f19069d983b83d94f5b0ea4ad4483949ff59e31c788c87d7ab5e39880dcce40a600207b510e63be18366c96191bbf253b1b54f2e4ece58ada371d6c11af22443c3c3cf3f9e72d6235f93150927e23b4a0a4e6b312dd27eb0840f2998d28cb469c7046a8f2f1c4dc23593b61f2718f3ebfc3ae34f21fa1bf4090b5c5c48d7342f7cd94b28a097790731210694f8081140b0309673670555388125f0ff01155f2c76c89598538360c1dc4178c012a18d0e049e2539703e619deb8a48d594a3b12b8de8ba70aa7306b19a64bf4ac4263b813d69a478d0cd5fa1ea051dcc0db59bd4fdad87db94f27b2332e6002032af0a198090f2e24007ca7e258c2bd32dccc1cdf12c995834a1f12cff576eeb7d72c21d8cc43beb112fea1111f6f90cf4e7811967b08305d9dba9a9a7710b520d6f8b0474efd10ec53d660bc0b2f2e28f9ee0d4d0626caa1a7d7ca7adda7203ea2b7e2b3e433b588608cb78e2894e14be927c1e0e3a8df859a5db0df1faa20b989331ec355eb6dbf032151f832004ab1bf18ec6e03f2f02734a52bd621e8a8b5b6acabc3b5e56bcf34c17040c5915d311d487f45b33eb95b856235791b17e76fc1346f34c757b22fa07e21a51f93c986594d53046c8e5d24f2e9cbd6b032804a5fbc37c99ca419a0e9b9d73d6e8158d56a6703749f7629a57e5a6aab6b0d15ead138b39ac2fd31428d0156cf0ecd40f0500cc65a99c38d0429abc12d3f7b4688dff2e69e4204655e1a723a4077dc100296998f60445f2868e96129a683d788d3f4b3773145c8b8022f45f30de14be9f786256efbb4f3331e1979bb1ce23dabac4722d3feeed499a4bb163ab130aa11b5482781615115de50e8e426284d7a8fe7bf49a2c19ef0df73b1952940d1a1d95c3047de9d6c493520f503f510c5d9127b2e3ebf24bfe3ec02d683e920c5c721f504b91827ec3e94d15d083091600c1dbf234acd85435929365da0e344bf99f5ec12a83541e7c30c6ea4a7b60ed65f909281a54a9ce20555788a1e15f997e3dd4f01acf4c0a131a52a767592e4dc373e53de1683c969114b4677633b86c95d144d44c4d8ae391d125a68f11b23c1546d43d8cfc543fb4e0e54e2ecd3323622943b2bd010c2b21729adb12d4b2503170020106d7ac30942d8be90d85f3b5a125948dfed6c833c220b8705f1a5ae488bf83203d1ccc227728d9c730d840bf71cd060756ab17f06b0ab91995a348b0cd9013e4dd234382dd41584cfd88b800e1a4caf2c085a3efe8b5711a35dafd567a8bceff69cc80fe1dc3cb13046fc440d0abc45956a9f9f95ae145573881f7c160ec97c6878dd2000e3ffc5b4fc7da4dfc1964c64b111ae386bfba2c3b854ff6656ee92dddc5fd62e6bbe3f9e3c1c5ab3a56a0cb1d2278b2c6c30c875646769d1112a23822387177c3a6d1bfaa568db2da19bbcf2c5f413533f3df93698833053c5dfed22aa433c1810bb9ac923656d5c30858714c064ff49e59d3fb2450e523e072a1351ca0b9bc3715b46fd773feed9473182c71b5144136b76640e2f1c26f5cb5fe24a3a36972ea7a8653f2f8571ccc43b2a73a6ab3a3f849ef8113ed5082bee348a3af9a38ea9ee32d540ca76b9454421b435479fca657ef2ce98a256812e175bb7e7eb6f3c46a97e8f0618a59c0c02eb53c46c4f675f529865f7558de2189711e6903ab730412948bd8d637012e71a2e9c50cc4b7c17b4f8ddaa1619868da43b68ab484792a6b6fe90d7d717917ba0a6a069a68ea966a89c4ed838c322ddd1c57ea77d059330b58d564993b3c772bc112bd1cf0b25b7ea58be899c1943dc60dba6817b131b9dcb35fc0a440da4b28e9e37778f0c9350ccf7a5e2d7dd71b8219092c875742816e62a526192e29b807a6d0f431379d1371cdb35a07c1349730aa26d9f385e6d36a7e9c27ab487dcca96eeb61841bab6116a794ddf443c2283b0aa87abbe05fdb7cfb99f73f8974af916d71344062b7b5cc8cbef45540d2a24b9836490a09b85de643145cd4d49a7d041f5aa22156d7d8e30521e8e822413ad433fc8078566fe04dcb4e960229171b354a045b7b4889270206fe90f5b3803cca47ff1f4e03825a2805954f34a81a6ed649be20962ee577b668d9b039cd531a059cf9aaf21b6ca05495f2c2b02bb22c03215e3548b0c9fa4a65bb4ae3cc0d691e08152861550684bb6d7822cb24ff613a2a2218bb3d23226823e9cb6ce7013ea00e097ed4ce7f057501a05a914d082daabc0f5977b4b7e21bc03619439a170b0a2d751104833dc88540b831c10a040e58be4e278c9fe9c47cb8ffd7d4cb4d81a199c5ca079711ef0c80ac463a4c1019cef199d66ceb40887118fc864675cd02c96e56e71b4ac721596b4e608465f317236f9f0a9d60de40aff07e77594d39910de5f60e11af4a0bcac7d6f41768bd0d422c8c9227828517cd5bd98b0320e2ee1862b3206ba899b2d824a01cc0a3978c10c4ccba319c93e5f9e5afa9ff61348798b85b02db7d63c89aea0c4846df3e753f00d90360afe3fb83c64eccdd9cf733a7b6779a98665425d5b372a89dc55350a2c21452fba15c6681e043c6d8a4dc1d4d63ecfbd400d31a0b23fcd682b074933268296c40b005f520478e06fa5e4235584ab2b84ce082125bdd94203dc078134538510472292e0e96f243ed411bcb3d4a5086268d0c676be469d167003f8266425ce1a43d0017470bf84e742ca05afc3a99bcf580d2f0b2f14b6858b31cbf300e861fda6fd9cc477036115cdb4931fb7eb9ba72a848c9f8392e42f6605856ddbbeaa4bbd9b1e506d64b4c18d70fa51cd1a92c2adea720816c4f856bf22a844e3405a1ba06b6a94b1581a2c4392f7345f11672932915b445adce009a58108bb3e08d6429ff6b718e0885910e0f36475234b2689d2324acae9c9ebb231db5febf0d56833f5f5fb3430d832cf04653e497e8fb48b075370e016bccb0b1a9c4e4c7fe2df14191e820d3585cdef27cf41bc5dbac80053cbad2a8cf95a42a41f50d2efa2d846e280803465bacc78e2efe459bc11702b35a3d1920326d1a98d9ac89ba386cb3248ef238b772b25829346ca13874711694e988df75586640aa9d627720c488d47be4d523f9a7a591e2928bb937c5d1cc0d61560fa07298b2db950ecb11e65b613a85409b74f35042d96191e61018a75a0ccec13e7a70549f2387a941f478cd0cdf32a54322df43c3976d4f2ac73a5e9519aaca9cfb5535bd1b818f222e53c4821b066e441b520d26b9b9240eef5ad714cd68774f34c2ef06a5ce4db030c91de05889b30b7e7fc76d577b85db994797149fa8e71deb64cc75ee44cb46341d105a2a5cfbc2ae8ea205aa352175c2ee54803507f83571a068f7765d69443dd26ac7878bcc13be91d94dd6fe7f1bae92f7ed4d59221f129ddd2ca971cae8d31a8d83c9d27358e42527afe0e09d3548c92634f6914eb4c4d58e4a84420d985d0828971ac480dc58e7b2a3f636b46de8d893b633ea05ed1bd922d35e3d08f6bf5bcfa69f2a187cd02d736d2119cb2f4838aec021abbc7dd9ed4522dfb01bc027403d507bca8f8f4be8933ea70c9155f7bf76d205fc943533f76d94116345d4baef1091e9875b22ca49eab42f66dddb3353278c8cc37991e750d3e5799a57436b574dcc77d2ab848e6c59a4b7bb45b7a177d8a896856e2c26b64c56e7407c7916eee897df6c8df2b7ef473a8fdbbd3722a3e787ac7026cd17c3ab3c8d9314162d51d2659d68dae3c6434c93f291c6201b579f6ea1485adeda900d458e93a972c4927967e3d43a8e563e5de717b21a1bdc6a1d7f36401f50c76d2e59585ca8f8f9d4f96e155ba0425077a2fbc65962af88eee950b0ff6210778fc3c6ab11edcd0587be3da408ea5b0da5a96e281235893fe74412927f8a35fce9c5612f2ff9719de5ffa71fd227c03dd0987db280c22dc062bfea3c008111e950f4ba42c17783104dedddd20bb7f2a730d990261caae544fc96c0eac8a4c3d5cf7bac28848a8806c5f5e7ee92b53cb6de7c7444b8b88edb079aa4bc81784dbe283fa0c1cb53c2f66b75b569efc15ebec3a103a1a6f92ff72e0e4845771ccd5c985f4d7bd78fcdf605241247f52477ab5c8134d938ec40546f8f25b2393cd3ee5e4cb4e7b8eabc3c2a473c937694d250b52b61a3f33c4582dbee81b168146d2d2186e31b69aa6a8d760a80bee097a9fc2439ee348b9cffe3bb4baea23b0a41c7403b5e8833a3f051a985bba5014dde5f23ec163b3095588d51022156de1f90f92a384ab8746c8afe8c5d8cc9b2d875a01f2475af83a948dc0702f343fc9ceeacc24eb46d3d21812c2aa75113cf17c2140efb600b32bef09fa1f67ee750c067eed8799521c51bb62a1450859d9b62196b88696a012d26cd17dca00924616d78228f60313130444355e984a6e06a267781e5f85ab8767018892d398004d032b4fb0fbcf7a4bfd7b6b644aae8732438f34b15f8c2e026c15a9efe8daa61650620716b91451f750dd0fcb04d29d463b1f7fd549e5975f6b3fd32de1ff375098c4cc0020c4d62c2bed1d1690ac975e9cebba3ed76c4d40a03ae873e0abd38a7dd4d80a460f02cf1ff996af5549a0d78e87b68c25a411b104edc6fbc34f9f8886029e1478ce2c6b46f1af0a4e083ece3ccaf01d7adad8349b4a43fd1bfe82a73b2b276cc4184cfc53c4135d2e6d0d4341e719483de37d1d561c51c8fa280420442ceba86322058e5014ba8ee679d44d52ac1e9caf5725e437a86bece9c0efaf8c2518971e48e08f53828eb297bd04981aa9d09900e0bae769b81d02626f42942c019b01bf669012498359c073266a89379154f67f64c06a21d4000f225fce8781e2caf32c0ae01e22e4b704807cbcdb0f9682500124f71a5372da468b13b0cf0091be3c42a40fcfa12b20eaac3247152927d443ac4301152f98289634db5c44b2f70733b1bf02ae07f2e3c2924a79655974798d08bb598a6d728ab61cf9d1c66c48a52d90be9992f0f7cef1427491bb1d831b700aa583b40dc6bdb257073ea8239bbe0805cc2cc8f00de69789c7de2db4268741ed71e20ff10010e834e84e07fe00028531fe2d99fdf02b8e7bcf539b92cb6dcf4ced1766510e8e8ea798d16a4d10ee124e40be09f2fed0e2c1c6414f8b7c6e057fe53c3c1402f7c6851d748fb3a0ce9d24216284813cacb235b97d84cdd14b82a91f1108b7128f6493303477b97833b7555df3dba60522d856055e2f3815de6a560d04a3ddde45accd892f2ee3730260bd394869f850ea67e34c60bd471e5f2f9b9920adb7113e050adbe4ba8dd773a34047f649c6d01e9b79db8890a5dda173fe89e9ad30f3e29c494337fb94fe3371cf70a169ca11104e4f39cd062e8cba3f5078ea1b969df616b2565b1ba4d44752d480f6ed5e46900f470fdb0fcb0fde79adb86986a4477b5c206a06220d6aa841edf95396f8feb3d12dc81ebc705917278cd0b0ffd5e3c66211a137de5b0a4cf72fabd34d388cdddbfdccb7d006c8e74e9f8e4fd6a6a0b74756817a84a7c76d61d8f1b89fad331fa396fa0387fdddac74554f0adcc50ddcb664a24aff624c6e61a270efaef45c6a93b0123cf40ebe03e4a105c42461f137aab7d8fcf02b35fbb0551599b695160124bfd01bf6a9082552938be8078b8f3d3d0df3b19b3dd571ef2ad0ba9062f82610e304fd675af64f2bab9773f795bb597f039d8cb5b216e3fac6ab329f110d6fafbbde5f73c3084f96ada8c5eadd449f22d400503582c14918d03d5d230f5d9ea8ec31d6beb2bd3f42a799bbd6bf3ff3f5415641f700a3640ae24c5e684a607d813ed30b24a187af97fd4aa19f36301376c2b0ea4f48a5e530738f7e779c533327d4fb2e8633f75fece1cd256e300b67756395c4be911a0862dfdd3c7e8f37f1a5c88fdf3aebafb502b917147bf0f61713db7e1e41b73829f3739fc762992073bbcd907aca6e6a0f21ee92bac41bf578975ab5b65311f390bf6e30f71fbe562adcf0d02b6affec86b782a021d0e7a26bb2135cb19b0fe6e3c9d5a2ccfaca9daf387bda549fb698992f959c7e4a65ebc760bf5c941eb3b8ae68a36fabbece01e0de4a3cc52605a3fb4f23c0828339aaa25627a0874deb3e06c84e525ab7594f90929edd3a9ed26707b6699461b1825a9e0400e69b529b53b52921a3ff28e4007d89ac7c1ed189cdc1d7bb9d340c6f649295648a59c7e89ae2092cbb0ed98f22be68f983838df43f34dcba4c2c2ec285ec0fac111b23b6619b22804c5d6afadfafdb2cce92f5e7334e3ac6c45376d3307f7eb629550f1bd3b94df9bb0fd836ec726d7b7fd956680db358d3fc962ce6d2ec61cb62fd8bfe80c93eb84f18d2d582897e1bc53b82881562069fe26955bae3ee3ae8e27fade3cba28e49b96c59a336012c2a834f2b07df9b0887c1c7fe2fa578aac4a4e0cbc2ca0d9716af42b7504ebbe77e1a9afaeb8ebaec90701e375550bc0964067dba0a420a1f9026154292e120975374715ce11769eacd602ba2d0ea49a2ac74e7be0a1fb22386483732a606d91ba99f716405271676d4cc4e2ed734f7dab6bfa2bdc43d0a4e1644a9a24b6203af5014fdc2caa3afcde2836f9f5d2f3d58f67dfb19ac43c14585c229366107ee2ab33a8497a82cbbf1558b637ecb015a0005df321c2c951f9b5245d77163ed0151efed5b064eeebcaeb1c47779bbd884c43b4b676362173f0184b782d51b67b3fa0e90df933b8207a6a32a8877c3ad6f6c4115d67670c82ebca9b5609f464f4d8c3801746c03550cd60455436e6d1603c29986e9097e130d58e65c594e454a094a75ad491e6cf3b806eccc0d71b6d99013eef63e6c2f8b65dd023613855191d8b68d976180b6a2023dd8e0340d65bef73c832f4381082c96283e9c8ed1c1cd0b2bbcbd9e076f81bacf16ec9dc603eca3105abf8e7d1450c32c4e4d44fbc224e694ca2239dcba94f6465f9247b756d3130f1f7f808c0a8a824175c9173f7a1c08b0a7c892af9f41443e25ef52928200dd1314079d01c404cbcda46c149f51a4819ffdf09f96ae2d32493e088840ebefe34efcf638663b1323e399b3912b60eafc691369da93bb12528ea580ed10ba6cd784dc665ba81610957e08e7b3caa4e1e6171705668197d0dcd08d6b0ae8812e966b2a9f06fa696e8aaf9b78ad99d2684cb43d089415bbe65bea3681c8fa1eaf9c8b04caa623b258305c19251d9945d2ebfdeee37b0d28aedca772bd3c762ddd806db59e20ce8166cb430856c0c1988b2aa13004a0ecd20e0460bab7b90826c74b120c1c098b02671c652d627bc998cb6e3ffb7fdba41142082164ef2de5de01340b260beb0a9a65282f263eb3f0075a81b9389388bf2aecb12a54a242265588f9528f28c1e08931c6f86901da2c4a5a708b18600fa6a33234052a0fe73c16ab53b6abb91dd655653b9d1d79e3e7250228db4d1dea1dad683d1dea1d63d48078af5a803d98d01428a53dc65885a840adcb533c635546c89bf5cba5a8bf78338f3a897a5f22e0953eadcf6a5fec599defecc58d97a7f5852c6d53d478e88bd9f463ad7ed98a39f9622df100ef7c89087863880a8597efc1c88abb0c315a0c922a6a5554b4027d872f06be18678d705a215bbc3d331fbbe7b45d77f723cda3b17ace38a75551b10af4c55a75d78fe3b391b9f724576cc0b04b1b7edadb2c9402faccd901aa43cdf3f12effc366079e91c701c0d3a1079491972fd23430971fa2696c5ce2b8cc2165f7806ebc7b56b8432797ed4e177b268f3d3a0473479893dbb1475bb88739d9629909e6b809e7203f4b40b9479e9b4811cbb619793eb6cbd7340df710699a1b2e471dc932cf5fffde67fcbd18305e7af1f75cfc49edd80db5447ffabb89a9256a4b40c45ce641dcf0d30d97b9e14922a5614b409c2ef3204e97917912fec9062193045ec6be36d1bf1b6a4b44c04bbf59232f46de866fa844da24aded3818451e06c99af7aaed64eefb6d2733c3cab01d17c3bed8ee256b3bd273615d644856b7c5f25cf94902ca222fb250069b3cdd2a4c5eabaf0b474ef7821707c7713870e078123ef77793a3963053359972e4c8f124f1a663f5bdeb30356ad480818781877912b6514bef462d3d5b02e2c60d1b7d1b7d1b4f129ff67454c85377a836ccc95bf50773f239e471c8dba843b4491ea6166993bc499e93bf215fa34a79f91eb2e3ae9cf29e0f1d5e8cec71e58dfa6e6cd47753a3be9b8b2461aafb7846fed5779fad793192b29439f96933e6e4bb9a2b3f93d094cc600d07559444989352be9ae62a0611e6fdee3356f772af3f9aec33b38f4dd42d4b717cd96705688b802c2533333333cb19399ec980480bd2b7b2efc550c7a1d807e6780811e6725e0c1b01e782f685b9cb56cc1da1135984f907331f432aa2a7c37b32d4e147a48a3e1ff23abad17d90b29d751f33f7e39c73be187ae2c564540ba26f2a8b24c9cd6bd37bf2a781e092e88321cc613b843922539ecd79910ab47b5372a08d0f124e2086db911e848f3b839cc2b20a9eb1fe745c88ddf7d17b56fdddaab20ae6de3196545e9a9aefea3a606e7cd7d250fb617e075e4a43c0bcb920841a8457f5623aebc29ed38fd3f3b1bdc337c5e5def14cfc53dc3e70510f5f000d4ede7b24d29b9284db91de6180f11f4c8741b9f094b126b157b127cc4149a54d503e9158c04b2be6e1e5153c0324a9344ddfc0cb9fe7830fa5ac72e17bafb51fde7bef9d6b455196ca8587ef9da482411941777aa5782352623c320491220c38022ee9c9820913b71f21fb5005c3f7ea650fe7d1501aed4ba088358f46f497f368462ff2685cfe1ed04f77a22102433608b8854e09092e5f7bdf0891a60921e07114065170a937cf04dfa22221cec009b7f27826f8161f17fee00941c8bcd3ee783190c7012e8b9e099e56d333c18bea8b6782df6afc8e1f2e6b35c86f7c400da4371ee699e62bedb13ea1e9b8f335d30722ef07f4c74d1f98c3a1d4a50644c82604cc9d7423c522f30d51336d8d06042767b3795cbfc3b677947445efbafceaf9b0b0e6f860040a7198ebc3168f6b2860ab92756e7cb7b81c84de6a3e23a88bb9745d564bd4ad1eb520f45e8f9a90792bccca17c3afe1cb7612b8123e0e5936be981a9e8056dfcba17a0ddb9a1f48ec8f86383e50474ed53c7f9ead034ef747cfc6227c1c92f6bd1858c3333f94681a5f4a2e0e35210d509ef06030989de41ae875b577ef277b0f00f73daba68dbc18d8c43335e047660a5c137e847e4000b05df5382cd4bf10d1ea420b9b40125048c5c22a98b300cc60940274d2e3d492880f038ce410116208244caa401ea8c44c473bd8a4a12664bb3f72ec9034d0f8acaab95df343074722713074e444073535dda307a90d506ef7276800ebf8ea83b0c73b7adff50e2d658e5f5b4b22bd8f98631273dcd1775a49b4e99df5aa551b28fde486424a15281da519a6dc780628376ab7a37da8c528e3953f366b27a968757ac62e9e75fa7d7522471f9d121be5a7477d4e22d1363d9feabd670d54b834c29ec27beff2e1c1bce703c63b7ef1ae49efa28b77d2e5dd6cf18e1abdab5ade592cef2ed13b8c6eefb4fbb6ec1dcb7d5dcba8c57d2ed7c57d32debdb8ef1d2b552a62a92da3162e2e48304a2f2f861faa315e0c5fab3266bc5a1a30356cdc78317c19956b133394542afa7cb03c1f30ce6f193d1fa4f35bb8b820c128bd3c1ff4fc1832663c1fdaf9aff6f980793e6cdce04c8f46c6bb5b03d22f2f2f2f2f316a75619916daa888a565d4c205e9050cabaa2f2f069eaa315e0cfcac3266bc3e530c3945fe94d8cac011c0c0e408606872df11c01083fbdaf2d072afdb55f761b06550412ebdd47f770873b002ca32a804ec814b6013c8029e79103a7121cc2a36c233dd6988235004abfa6e122820c5e5db3d2b30093c175e78061cd15a10be41de1296b8d5b90a41041b82672a5b65efd11c6187a8478040ab770fc80873f0082b417e275722cc412347869095dd914266341b21efb44240223c23ed13daa3f501a769345bb3c3a987cf08cec034e38a4ae4bae3aee2c7f81863638d35162fdec18bb77ed5773b46aa76d57dd6e6c45c5f07733d640a9c2976e0ee1a217288d434293a09c2ed7edff10755aa1f7905f908a909290a5213c20beb7b5c7ca2aade85f1cdf0bbba7dabfbb4b6612510d2581f1150fe3b6f22a0d4855dd5ac3f2def7e8b6d2bc2c1400ff80714f645af8a56ce2a4e175d5593e7794617f30a897e4457cc2a0282f13afc10f688558decc05f970fe683f96098eda03d421eb1731d61aeaf8ae4dab148fa2c4b3438a5e8a7aaaa2af4d334d0093d82b9fe559158d61522201f511551505f9405cfb87c3e86871088672084160241f80381a093a67971d233db55187472d98ed4241e173c17d5775d2a0e066ef04cefb6a83818e8c133bd1babf6331f50bce88a1bdccd76afcaedaa56be3a7c1110cfb06db6d57d57f483054b8a25c53a7c34386dea5b96056f5504bc1652b63bf28642f62fa63503c457afb8ce4b99c66c13019d972b29d6174842a2e46674c9a29f2a540464455730d75b08e8bbe9443fd7b239a3cf0aadc0691a980598062c90e1767be176bf98f6f199420a15534457fc545888aadce63e0621648c5903026ff1b4a9dfb5f458da1f67d631583726e8e82cef5864f07305d33c88c56d58e536cce2f679c9edc75cd7a2c46d9627b72ddbb16071fb2e94403b1626b7df2c5525ea6e79476bfeffa3fa4e3c4b9828d1637d368e0182124451051a7e8c549c6403ccccb029bd153f72ca18639c314e1dccd54ce9e3f00f6bc31c1b286483096ef79f980286529a929bfcb0e14e3d708614e99e3272139ee9f7f989133c0333d0310b5e11f042eec5f4109a7b98895164284d85abaaaa3ae9e06a6a48cd038632dc5b753301ab18be7a347c79aa3953bad94af95567eafc7acad73e3007e37befe13027dff1fbd57b6f078eb68a6dc0e2ac2eac05d805254341777794289882822150d99c7352150bae260f3aa18926a270421354c026ac709f139ae0c2ddb66da314053f4d581959f739418a24606da20df731371a8d462d5a34610d52c8fb9c90822368a1f762deb10f600d75d0ee7b0d9e291e0106e1f2df833bf011330d08a44228610007a83375ec9ad7652d999205165cd67c3283188050a25c71f9508ac78756006258c5652c2e43861c9a5308518401cc553aaf00e54208e16329108704491d9b401e6bc45c892222821e9c1c262efc102186608513177e8767783c70d33d2ca0cf10b00086db3d2b584f093a004f4d196113d803792a89424a22dd9b6e9a7783d326785341281307d883e9a7041a20cfc4da8512459448854891a6a16de257b40b57561cb8f2b3a769322b6d57b1edb6dbcd9e2badbc1829d3f04cf2928907ae9c4930991608bec1aca4d226a95d29022aa57c3381ca1b29e529cf4c9973ceab563c6d92b76ac5249ee7ca57499cc4f37cf0b8f215cff3c157564d5c592d716506483f91650eb007d3c59e2b4fe3092cd87cdd2ece15d0be5dcca4468378867a3c37d182e8734f9be4fb09f4cf07bc7c7d3ef8320cb708be45f0edce4bbc1879d680489e2d033432b17109f7449ecba7e00e9c80042a97c49c94db12b1218b01eb60249410fe74e1e9412aa59452eac4ebc44b29a59597a9aac36f7e36ba80ce27e2b6047defa88f8c4231ce6afa715156d7df5ff8d68fc85c574498eb0a09c4302aa90083787e245cc2e408243d4e3c8132b8f0d494457806466100c4e2c25987b03b69a0ccd13e5175c51c0db202f5896c70f284fbac800489c816897828828061c00112786e28c0c3232d1214b8e90820e10927ccc0638627210b564cf58c52c6d91457f09a3c904731b4868d02147ea340e424e494b32265d625e7d48034655d58a685366a5615165a50722febda3040e13186af2d2ab85211ca4257873420b1ca121d1b95a251e4c8c22dd845e4222391ac6a84c1286d17a0f0b3ce60f976011611dd5ab04c0b6d54946949701cda9664a25265d14859774659a29c211a451c5962de5b5a70f7c58d66275176a565449390e3360e11b3bc2af8f66129e7b52909f7c6ed432db49022164cab008592ab8e32ca6cb68cb329fbdab459a063b65980c257546c26652f2f3f4e3162c8983143527177f8b29dda1235e2bb63dfb8e2beb34f8999b4b8d0892ec330dbc1dc3e7747bada66895fa08cc8bd349c0c53c30696957854cd1855a3aace1a1df78daa2dc62b0629236552da987386ad6e5c99dbb751afae44ddedf669c8382f5236e3a36a5b12b242e16d5b3564ed81ba5645cd2bcee07abc2bedc0dc8f4aabd263ee5a5b056a4803d2d49d37d2e8b6dd91060d18981a92fb466d6d898ab22c8d8cdef88872d48d1b1ca72d418fc3ba0f66c2d4b0b836e15862ca1aa4ec064771b0b6c40fd696b8c1ba913d2dda6e881bcb007477da860624f28d8b6b138e1cad83636e9039ede081c364619973fa601d7e04400003b0b93704d8219b4078e0a107ee0127480184f8608003fc903381980848808c18311b0528765d52f2b3ec7b319dbc1328f6bc3aee25efac1d77af77d5bbdee7b6ead380bc57ddaa15550a122b1e1ea06b3d5ebed1faab1d57b9d63159758668db2901c23df2828075d68d2f05817ded66f7baf1cd575c0bca1bb9c7b5e4bcb2ab38c4bd1eab752b5967bcefaa3bf1c6d831bea305afacd6754929653377ddf8a909e92b576295cd9e1cc547ca14d9849df0138612ad300f33e19ea6f20314c4308a8f942990f6adb765bda3d629aa7647b8caed5b4cacbae4bec3be3e1fadcb1241ddeaca57575a23daa6a963160ba1ae5cb96dddb653d4ee49b9547784ea67e5be338eec4d11698e781fd491c51b6446a7484d19abee68ca260e7ae560d1118a095d534776c3ebc34723735c31c7fc83f8c937c85c3387199849233305c0e394694b9c34a25976050786af77308f89c3eca1238719b65b121b0f85afe971dfb32b4bd04e87c5236b1c7a502d094b7360a6a16a6ab40a50f848017025d4061ae3679535f331d2810d1466310aa581c287b2a0f058680d145e0d149e092ea486b6550f96dba134cc59330140a3cd61ce50b70ffb70668667683420dd35d2d4648f39be7c401de0997bef976eda3bf7bd6b97dd96524a29a5ac47b2db2fd9851c84a4addb6ec7102680ee286f87c4ad56a896849604859f2aa0f011fad08048db1921dd3e0f8fbcf13e2d08e4e1b9efb1b2cf95f1f2bb72a583f769420670fbdde808e9f601a001e9c83e58871fd9eb3f9ee9dee1b32b149e5febf0230095851b15b1b4bc376ae1e242c68c57db2387191ad8148e60093b5091d3a67ec65c8f9c98e1d4dddf81695ebf8667f8dd3f3d1fd40ab3258d968d31c61ecc750efded0394cfb1fbdddddd1de56c6963b7a8a75580f9fca8e1814b98f46709fadd0b02ea810c8300bf23839c8787270ad6655596755dd76555d6a37561a76cf718438f9162d465df594b3c649fe73b1faaa56aaba5ca06d10f9582e06fe76fd9abda37ab4f4300b5b44d540d55487a31d4ad53d53a665d56157bb0f798e38b81dbeb17a17cdd163ec9fc8480b0bb5f9117f32a282191c64e530d3e51528973c6eeeeeeeeeefe944478a6ab8a084165a71e35449e10afc8f381fd41717dc905b81bed1778b58409e946fb05b89bd0df690bcbc9878af79670fb1d0ef7fdc7a339b5a9ef0394e12981cb11decac21703cf97df4f6c6fa9359ee97ab59da55e0f5526dc4d8874133a13ee66cbe15e424e4d43a44d50871d28d3275511d516348602ae2bfb109d1656858fbbac09dcea7dbd85f0c5ec7b31d7736cce102543200f12e6e012de813a44e0c9f4db89dbfd0795f8f1318117d347bc98eec7c1cb6e02f1c69c213916468bf73df3b9f872011418a023a420e1191e2343ec40264c38814a34e94f19391faa9891affa7194ebaac2aeba04de5ce037f2e510cf13b833be98783d2ede398fd33446802a208be3f238c085374222019d6e87c4831c822f86df7187c485877c23eb8e579f89b9269168077bdc4e097c1c7a2f86813465ab8a348a502ad0a38636f028214a8c213847d1733e5a9837cff10cc330a7e3727f1c84e160a7e3d29f8c3073dfaf249c7e7e753ed734d4d9e65d9ee09b229d6c9eb4dd937282b6ed12f877057b272a1f14df0e1c455152b40f7c02250a2955fc5041059e921c91226f0a1a236d82efd1fd18bd7b69f16ec4b954d882a5e58fbeebcb874f07c8022883f19fed8a0801024a84390899340ba0911c6eb11d89c57694a953c80252c876b4fbccccd45b0ac11cfce137b343989301b42c7c6204caf173729883b6835114018944698f3c2a62bc75c0a3e20e89239a913d9d7c7e74d5ed2a1277bf1573500b5f5ea0d51228a839bbdf7bcf76fdca76f729733c22310761bc364c710eeffcc96a88f389db992e7c67baef598f9a22697af572f782a9631042a841388539ab08d883e9dac7ba1d85904a11404497873e4dc34d3c537c7cc2841b53706314fd6950988b1d0573b1a3700ef14ba0c03286c23710c18d1c05cf881ecf5178262405cf6c3c431fcf55f00ccbe3d94aacc1d38199803231a834cd8ca6a98f4c9af458617263100f377931f1987cf482dce4f9d0f85d6c73f9f6ee745ddcc5311955c6692d09e13f462d01f1e2325e9236881797510a22c6d37e6034f4dc1dbe5cca612efedd215568854f47a9bea8af4d10004244f562f8b21eb51e9a401daa1b8fc513d08ea17094a6c1a2e5f16cc5e8f17c05cf00f1ccf578fe793eaac73394a669283e3c85892b41ea25348b1b5bde71951b47ef580b24180ca59db42996fe6e6054187ff1205e5eb249ea5ffea2fee549ec614858fa8b0751fa0bfbe249fe52102f5e7ac92699f117a4180f35f9970aa362f3496adc64e3376efa901a374d3bc4c6253d490d1bf1c587d4f88b93ec101b2ffd69fda4695e58d35fd824385e7afc4b4d62e33087519340219fa4c66198fee2434c7f716887e078e91da5695e9a2609f71b8fc761aa34fef22134ec4b3cb443386bd3a6f81bb6a1b429d6388c0fa9711896c6615cda21360e6393c0fce5add5b88d77271bb5068dc3f8101a87716887c0fce5988d5a82ff4d8d1ab77104c4dbb048a87d5de3ef06a6068d77d4460d1a87796458c1d0a8af8f9c9ed6c7c18b6f274d537a7c3fe98ee2f9a01ea9dbe25d4bd1cca12ec92582bad56d18b275ac926ba0593ce65275e09b74175b0ac227bd073ec93ee65cb83c742577bb4bdd0e8b90b77b543a98811b99b8b1caaaf62a988ba795a73017bf559642546bfc8cca54da141fa3b24f9be26d8dffcf8d9751819a86ad30135007aec193896fc24c7a6e3c132b3736cf8df106ccc48d74ab6e8cdcf6d68070c7a8da502b80920be367c511caf1d7343afe288aa2264551dc6db43adc25673b2597b7a709a111b9ca7f1ad3b894e71cee3aea735837c83c4687cd71838db19ced2a1db6da8ee6b01de9f665bbdbcd768d77edec678c56874fe3f29299f9382ecfc99cd8c5f3b7db38571d79be4a9cdcce7ec3718b83e36ed3a64ab94ae3d50d1ab7513b2482ae7d8ddae55cfb4a0b32baf1184cadafefb6bb1880ea81a9ef624f9b9346ede0a5711c644e3b789cc62d46e32e346c575d1a6f9ecb53a8fc000559b11204f443650a3be12750a2f84891e213050a3f61274156988799504db88995201f2953a8fc0001fd509922c507f6c026d0097c02853a0e7d1e3b64ba83ac401ec80432813c56821ed089e251d314455194edf8f63834dfe5364da3becb562eb5b99c064fa16cf73420d642bad923a77b0dc85fabce6d2948cbedb738e074a5d5713955e22bb9a1d8163144e63c5e0402de0de469137c11f0446c47c0bb399d874582c48865d271976a1c785ca6834c64fe6e665c3081be9b1d7f3727fbda2463dfa69f69fb87adcbbbba7cc7669b3491db5d36974f1a50be8c1915883527334551efc9f88b31c618638c31c61863bca48ceb3c2d19968c0a2f5bd88c0a655c312a10f9185f6a07ef0b45512f2fbdd8aeba2f9f5dbbc8f3031444c5ca14293ecfe749e9eeee97a3288a4a9129527c6c4e7d99e613efe01d95f9bdc9a74ad65ffab112415948dbeec80bef0bfb3007ef0b64299887993007ffa2b212dc539909e65c2c2f610ebe450d898136c90e4387a3437876e20ccff2b6a3da524b415a8ebde54aee9ba694a3e4063e69135c0205d6dd6d5956cd1d3d741746a033a7398fe3f00e3e51f21da7f7e777d45395a9ef7d3bc47a4eec4f6bc1de622bbc38d4b7c93a8f6a59d14b39333316dec8bc1404bc9139bc91b1304a9ba0929b1ecf415473b38b34212c2c38c207de0d6517499982a5602e8b1acca0159ec92cec71abd3e9fdf999caa366155aa98205cddec1a00b839883cffa49f32cc103376b27ccc166017390a3f0cf95b5e36ec753a014f0ec03cf553c1fef764cc585399cdea3ca503f1dd4fcd387410dadc09fe0658298baaa48c127569a6aeae7c70748cae9359c0f55c578c11e22fa46dbf11fa5e1bc4bd91d79e9334dc804ae5cb932851ea3d9a9d2b0a2093e3732f5ddc826c00bcff2f37cf4a0d476dc1d395dc11c044ac275280b81988330be294515a11a4acea5ba79a8eed9211174a9ee81506e67bd77e67c8cdbb177ab6fb574bdba57d7ee74290e87caa3ee38d5d726994ad9eddd3c39dddd71364a7a728650c23345e627ca23e270f9cae6f671a848f85cea3c76d4d727992d8bf773ad53a187cef5f52b117db9292ef5abdbd7ac4cd334212d60000518dcec942d1db3a5cbb214d5ad8222ff4099fbb0141c650851823ada8ead5cf81f28c3b6abe0cf6df1b9816107bed0a1c36983251eecb17a3ad10b1ac333f5ad4a240a7a310d0178f9b306f0ca20faeb245aa1aa7ea70d6355b52c6b47ca8be75a8fb58b3c3f404154ac4c91e2f37ca474132addcd9da8d44c91c23e9665512932458a0f6c62436b145171f2a43c8ce73e2bb7ba4559d9ab4a1141ddca1231235a7647de18b245008925511551152b9f53d079895355f459d64f3aef9ecff5f8eb57dd81b97e280c94fa45c51a822e1405b1f088acf0cca3620db76359729b87ebd45b2a84027ddad4dd5d6155f51edeadac8b2450ecba2ed26b346e1a51509bfa1525917eaeb21d773ad5b4d5fd2591670a9abd9dd063ef694bd1edd545414d037b7ace9d7a4441b70f7b9aa6aa2825917e8eb3de9dac2cbeab1159a9a220e6fad5d54455b2eb845aaca72756163e6951cff3d1e3f6bc4def13658680be9fc651326f070125d7f5adfa806af79d8ab7300bc3dec3bb987591046a84923b3f77a0aa28c88aa80a733d04dac19e2027b127f6b040c9f8c508a723a72327aec2a92652efbd8a8330be19dc418634de9dc903e6eb28c509638471421ce6c68a4cd932fbc1333f3a9b1b8f33b93bbb9a3bb3d064a93997f5adc24a551ce67ab079cdedfaf78367ba9c1bbb9cab05a1b72b72a3cecebcf271079ee96977e68557ae04b19911b386ab0b434716536bc0fa0fa63bc563cd4d513bf352b6eb6e19fb4da119aafb60201423459806f2c429e39c71ca0821d4a265001228a62cd726f81e1c8c9326bcf01852c11e8cc402c57efd1dc218cfd193adb94d51aa7522022cabb323b9aa1e3561609863861a10ef9960a45d6d4e91c21bed0e1308b42d69fe608aac424dd5ef992a18eefdaa9865cd6a5e170ccf3c4901335091851264a0a20c4ad02dc45a671193d7b4a8aaa2ac79c94c0b6d94728216b4806173ce89d52a627fd89c735a7f376653f8d92dba85b49ad9115712dd42715ed6ecddefbf3b63486a724adbed488c2b29728c8f9aede89cef6a1576354b7d9206a914e8008788c30d6e70831b3061a2052de020074cb4a00576a2852a3d55a26cefbdf7f8925a0c99f2834de8a92291cf87c040fb44246571e28b9d16933d680f6d55e858a4a3430d484b8c9b0c68c75dae69e8c90879754677793c037866f4782242f04ca9e5f1384d433a356a317a1ab4eae82e5a7cf4a70169317aa91a21af0ecb5d8e59c75c6af7ebe2525d9718efe875b98ccabd546cfeaa3ab2cefade03f56c27af57ddaf45711d61d8f8c25a27d98e745daa0b1797b6631e8c33971fa83927cbaf0aad4e0823ccc58f2a03988b6fa945988b960873713ea1d4523b038a1343a742a1889daac76c5671b03a5d40270d64ed7ea5ad6ec14b28792712911425e38b340db4c00f4e4ebc11092ea0e2c6184110b907092ec0429ce2640c979291448ad7f14862aa828a6720dca810a55194bd1e949b569d87ea8c6d0f86866e212d3b9655cc8eba92b690c6da01dec51eadc7c73f92a4ef8ad506026d292fe93c750a6a40a8c62abc30f6f0ac12ff511206a927ae8a45eb440ffd8a2cc6d956bb223e88ded8e1256aa95a5844da0d55886150a35a9c74d2ffe22e307442c71eaaa26f95c28b4477412b2a2eb71c7ba8b65c54bb2257f4cd9658be3d5462f9754c1369224da4d9128bc579f7faf550c8a67bab54fb767d3b46655ba57f5a10ec21db11f16b048c1bba0dd3dafd52914824b2259c772f1bfaf6d0b7d3db74a88aaed5eefa1b8d2e0a9d5e866a8be81895856acb9f7600786b177a8b75a1041ab23f8c2eb23aa36b56c7c545df9121bb23efc83ee648a72efe0ea376f1ba5c74a8057161237324fb98737964cec51aa0458bda21712b7ad1315a45b53a26331156854e2f6a61bb24b73a55511bc26c37ab2dab6cf6993db31dbcd5b7cd76d8acdbadba036fb555174aa03b7dabcf43ba136ff5ea3af5280fbba852d7fa3dd2ddb6635ba5acf110b29d921bbae8b46e9476a44b2163da43353b6f0f6d1fd116b6abe86d47baf42cb6236da72fd5f74cf4f49bed7ea9ed30ab43fd0a42d9ab7b1855457f9a08feba2e62b19d92cb72ad76bf5a88ceb8f4db5b36dbcd902123468c97975209068c172f4824172e5c5c5ab4188d5a5a585844224ab72d14d2b42cc3b0ebb22eb5eed6627b0b1dbda32ea5a48f6e5e7a1727b9b0ddbcdb47d4ddfe5c6c17eff6d15bd478e95b2a3da5b60bfd7d7b4bfdbb4d6b21160cb33aa25f414438ef528af115d5ecd7bbeb105072e9b1dac15b002557f4ad7645ee7651dddefd6ea7156a3cd087687d97d21e1faa1d123836b77bd76cf6d729b917bc14456ff5292ba4445057ae5cf9b93bf12a7152a4c585ff0b7e91c4a9eab5fb7d1deb8ebc902d10abd832bec8a5a48c7f937a35e39c8ff2d484d63e2e907eaeccaefd7a4e691e7bf6d2b45e40bb8aa7e26952a8ca2a81da249f55f9d3260b3c9aecf1ca574b9e8f784982f2849d5c593111d5adfada346311218c340d644255b649173281ad0501afdc6476c7334500dc78d8c38dbf62f5c30e7aa90f5940ce83318767729883d47c3732efcc1bab1ba46f8d98a3db96c52427dd2baea6546c1181086d88024626421ba6b81dcc7dd9ed381d0f07f86ec77d871a37336cc80c236c86d0c9fb7b244672214d037d2d0621a251137a80e892e853bd99d30703d351c14415322c2183132d1246eee608e5abe2e4360c6ad834b70f9b5aa92aa02b00c58e4d43a749ae674f02857c12ebd8a969058df75941f9be43e1b98f0a1a04d1dc47050da2dc26ddfd501468cf4943b4a9cf1a10ef46bba4214bed92b841274d538aa1f890450245b44342df2c92902dc5ed4828cb435772d35344a7ee63294aabca52a7882ce533ed86066afd3abffbb4c2097482b9beac02a734f481328a2694af59236dea03019580b08e7d8875cc4a3be47a664bb1a1cf940e52f1891a9027b0c7ce69226dea5b555a41a194c905ea643286060cfe4119a1945046c85a108e79624ef8f71e168c463d7a74f7782f0d1860347013187792483fc7f5e944c30c5f0cbc3ad834e7cc3c35a96acedb3c1fdae7efa369b144774ee14e2b42f36f0c773e2b3e6d9a9f224bed66df26e63951b6a3b9d7ab53b7aef9340d53cf6c47c3e35294bd148c4b1db31d89e552efeb52dc330f3b25b70a4966c23325eb45c079d9924551f689d0e77909f730cf126625e6afda53d5f782cebfaaeab658272f1fa5a4a8577dead4ad19f7fa5ca26ac2898b1c2464e099dec566dceb42645c9deb96855278e6fab422926bbdeb4b25b9d63bee2065bbeb9566d9ee7a759bee4b4999a2a38e5dab3ba0d461dc0efadc49d9d41d988301e3cec329ded3c107284f9eccbb1dc9096df24ceffa00a5e799dead605c1817c3aaea80eb56bf6a90eb5693ba35df1b98459cee10d7ad6037e376f2f338d4b43aec243445147e6ee0ca3ffdde7b0fbe634ffb81b70065de7b967f780b5006329064a0f818057b305b48abee035ec6a01d51ca5dc860562ddb298136ab951768f7a4e050e65a7b17d677435ca03ad7e5edb88c9bd9fb353fb24addc8033a42655648bc97bd4d4f685f2ae9249ea97e9e91f0a12e60f13a16658680a8fc237181c28bc33355ce10224214b91dbc1dcc019481769e095348249c1c29b7ffc233f3324106b7bb27e549e1600ea0ccbc6cac7e909788be62e3af53870fd5a7d96e9eb27d3bacaf653b48b5dde9fb82b01d889a5cecefb451c7b81a3d8d083e0494dc5802a2e5a30f69f9a8a31d323a5b248cc58b559aa66955d5c92e4d9bafaaa9e958cf3abed92906fa0c550c74adaa7a65af784336bebbecbc5685b487fe7826f4386a7994ed34dbc14d13725d2a3ea4f5b07db2f6ae46c5a9c54c0312a3edaaf8aa3a5f115f7195acea5c47e246fa78b567d433c6c2ba5651ab635533947a143dda8eef7591edf85a67a0ab4189125fd9aecade555a66fd7a57592d5e9a2d5dafac181fe3b5f3155087782d73a1040aa4693d881ead4e7cf64c54bd63b9a8a2a8772c5a8b5a89a8eb68d52f8aaaac6e7231ebb22ccbb2580b825928d3f115771e466df117d5e5a43aba8bda725a43737e9ba138b52dce0cb3d845efe245998ef6ed9df6ec5dcc325bca2efa7cdc02d4216210ca156176275e2c5efaf9d05dea6b538b2afa64f9a88aec4eb4b41eb0eb50bbbdd27ec82e86c56f96b7c03f94062414abbcd9bc597d57d3b49b658f7f31f216a00ef0c64328cd0c7431a8cd77d0c9eda2f68951b65402027ef420de5b2c003fb216786fb14a6e8c95921b77e2cd2c6f01ca4c0cdeaa4fbc57f5fd695d8cd252242a25217611827c8776872fbc4e5beec44b7ac429e39c71cac85fa0f15d0dff07cf5091022e74c9f379fcc197d5bbf0e728fb60204e19e78c53c6f77e6c5ecd7926be56ff9e89a5d4f89c9ee91a0f6fca8d39171e62d80c01f6606c1e7c95965d747b5cf36760ef13199253bd7b53aa43cb1d256589d821b7db01e76536961932ac9152989005162cc0220acb92c8cccc0ca3804941833c9ae33c1ff04de1358148f7fb11227b42f81ede85966bf807df45c0cb5cd340e63f228dd31d2461dc003bd1020f70c091480d39f8c3137b010950c0820c5190c1e70811c31737c050946081c3eeeefeabdc1683c21c943f6dda82fca1f22a2ccac5a2dc9e2d9c4e53983e92a9cdb41087bdb7fad66a86cd4a8246a0f31da57fa6fe55df3335654f7f1a90283f6577c33f9f2882abca6e892cce3e04cf746f8a8561d6610fcf1146a05cfe911d9e59e20496594384a80e8381ecc01cd4b16ed967b128aafe7eaaeaa7932a08a3a3e607d32cc99c5019c1e55b57c580eae5c5c0ecaa967d42d3805c16d2aab2315eaf4e3de319eb7287ec15736f7421ad2e67100ac6d40ab00783ed60b303e334cdfc7b56a53cf3515f92a4ac39c8639cedd003bd440c71db8e98934598939601cc49292fe995a496186c8e677a7878789278950bafbc8e1d726c9085f4b1411657feb8d2e7061e90efc8500875a5bc808fccdfc34e955a81122e30059f472b18344f15094cc10948c0a4e7e674998a04be80091cdcf038f6e8a9ca9c648e0409580118b4e066c791605103d0166e4ee7519120d122cacdc942313a920bc49b1d168a962331e2b991b150d0213a602ee9543da203888bd29f1643c69f36e3064983857bf9d380e8b80dcb731478777cd618b4c32e813f565cea32efcb26d0df1ed2f8c97210656ddf503deaf2a70181711b8ef96c9a991dafb9550fcb51686c356371b0241ef5ddeca042c50a3c76c4788e025f94537d9be6ac2e5aac70dcc051dd0dc80d34580ae6d8877380cfc14231a7a0db31cce264fab41dfb4cc58162a7faa2c0f081ef253d4e443955a7edae773ddd682d5b65b5cb717bd68060c7b00ae94edf20f2ca952b4db8397a5e1a6f4d88ecee8e5553f5c8e956e6b29a1aed2cb7ed59769bceea557d3b262d991a024afaa11c36dfedc890f6ae6fabdde94ebb5d7fda46aa165e61032b1e7c3c290d740c1776e1ce1ad08d7bb18f39aef20f5fa1a3321650e8cb4b1bbcdbb65dce6f9b3d55e5b7fa2edb6f9d23d278cc41839b5415a5ef6140683cd647a36d472af1795ce6542d95e499faa996a40582c7655e621b040ffb1d3fbd346d103b7efa0e7b3ad48044fbfa54ab366d5dada701c9518f9c2e8d6ac4bc3a95877a96faae55c76d987998a288a0749c2b1103b88e9daee486657efa10999f4afd1d941d22536a5bc490d3775824278b80774344c62ab9998f8a85a2fabba1ce55a76b647e0fefb23d42ba91bf616fec57bdae757a6dfaaa3a6ed5d7ada386ab27e674d89aa376efe7b58a8c60b52391b81e21dd192f96d319b9dd43e4f69fed86b8ddddd4668f358ded08e9d2c068d0806a0f1dbb512b6b1ad71d7963d4b4738dcba91ae22c608fcbb57723e3389c5d3f711c8359bd0dc7d40ec75d42dbcc11ba36ad0a6197b5c9d8e1b8cbb91a016f7dbd0de3a8375498c73a735498b571a471ae95af909643ab42d865f136ed2ba451216bf0c65497dfa8efe2a82e8dfaee0d0c0f39c68267187620680d5020d54df894c603256a6173a9eedb708f2b3a5577e6cd58a63e3675ac04f39f1a9c00055d78c682abf0f0cca3420d5694e826b004375d2fb9b0bbeeb9308302e832d556562bcc1fbdc1c51cd3aee33afe1b9ee38f67ea71e8c463b152e7da344e51af41f00c04b9ca85f5b225eb7c59b2be7dc61863b4256ba326cbd7f8769e8f46ccb8105072657753251cea5bede46de85be8b376f1c645c57a85e2af23a71b7f5627f4cdead4533f72eaa23d72ba21fb98d3f1b69d3d8e1c344e551d94ed6ec891437bd5da31ec1863f13cb178eaacd92ec9ccb01fdeb45d85750c66635ec5dc86b11a13b9b7edfaa6ba032fd6d82bcc744c9e0ba957a8b44c97b44d2d999a190000000aa314002028140e874422b16838a40b7bcd0714000f8da64a78509cc74990c21052c62862880120220020003092844900ea4399496c944bc457d2b1f178d0e5c72295841fae51bcf0c74a5870d860b6be9c31da347d7bbded82a98d760173bca72d0978b72adfd0f008bc343c0017163fa8e118862e9433f8678669db4aab87535a7de60e50d01f0b2833ff06fb9f288c74becfb345adcbb64f7346b4951bebd515c3525f88d6407f9ec5b8fcb8883c1bb70cf6139f4f25fb31106ca8ad1225a6781158f6535a490e77bfcc7ec8e733dee14dd6239b8a69ec094cbff527759e015f8f9ddca03015590db6ebe18c4a7bbf012a25bea9d3d08f4bfa3ec86ec1f6916a792f9e756af0c029facc100d861c4e26dee0ef31de99e92d0da06848c7bf5713f5062b858385ca54a707ef6ef00a46b3b81ead45e414904138f89875c15bd9b621a383c65226f0d629c3c1363222ff03589c07a096023697a8784fbf821fc9391b5be99ae22b3220c0852f85900513f0d348d2c8b44537fd515b2b91cc5e715d48116e887583c1606a733ba5bbbd9960abb3e7a1d22d91b39e35d358a6328a19b9577aaf930ba0afb78a3b77aa89235678f67fb9c0b3fedc5b7dc2344110058efc8e83947d0e6a359eab5d31141c54e68710608198dfbfe3df7532d0824e411f844796a2ec26659cae75c384b109509d253642dde8837ec1ca2bc074e3d06ce5ade169f3d8766501d03b8c0887a90a1f713355c21a290a173e887e587f0508084e24d8f75cba96453a60f9481f8ef4813e24299b446b2860fb95ae6951025a115c890d7ad531cb9ad181e5ace45e8abd391549b7aef14784a7506f6f051fc82d9625afb30104f8b356573510657d9786f6ad91114ed96a27706f37bbfc73d38f8daad54872adb2df5e939ab0de7ce276f0723a93a3c5eff8626f547646321ab9ba5e9509e0f3abe4917038cfa19f05765eff49c23c199401389d6d441f1ee393bf73b4abdd6179ae8f44ce59868cc14fe92eda1110636f1808ea053cca28ec29265f2feafa3e0d82f4c47523e6397ab0d3e00838c4dd01410e856eb821c90b031b3b7092852bc8be4dd1761f19d221dc824b6f506959f35f757f665260d0c940a4a2c03b56a053a004e152c8901321d25ff34a162015686eb626946cea139d349379091612e0333281138f468801c8012f1938fc20fced7eb61be5d0b3eb19d812d4901f99e280361ea07e566879589094fd534f85f333c06c5b1cd2833554d68b09a09b0a36135ae9bb070169d18767301b46ee1cace452722ce318e669c3148196977fdc50287eef7fcd1ca18ea1533e88742ead7a0a561cf8d68a191b5e8e68883a8abcc3eb18a891d5c421fe9088405f348805740adefcd95148a3923333439d6c1c73f845ae669059c6ab0aba9df4298244b30525da43b08697355c4d9dac92fc42dcd5caa3b34aba631b1888f783d3dabe64cd56a8345223fa7c6c3a558bd18c3553544275e120d39b4452d4b0d0c54ec342dfa12f8cfb50e8835fc6f597b7a70df79a6a6f28fee3dbb0d778c84dde44e9d81e9874923b22f589dc7fea2d7c53d8651eb593c47b6aab66c1d62a42b602197f19d87b79f4f75b9ff82262b10b3aea648102a21716f77fed04956034e84669657c2e1999ac98ae04ec83d2cc518b1fc05bfe6e039bbc0816ac2b8ea8d027dd82cb2431a1315be6932ed1a86b24d0a74e93b3f00d4062d62b179c6e83acdda0213948a4fa377df06ed779ce5c7484e6b3fe6a61a7a773e928696eb9e458a288cd1b930eb0d30bf22140e64f7416e4e691d040be64bb5c46b80e382be0fad81711f0714d484139e14c5c25c154f384847cb4d808954ae886742548aa274520234ae180c86560a5844259c75fa217bc556d53b014badb71258bda4ab463d4d3939f19fc64ce8a8c2963d770229063ef927ef61f9e749a1c6e82973067a76821358fe02f1b0f1c6f4d3f253e788d652c323734bc04007488eb4a41e708a6b3bc9a8525db524962567fc2c8560ee942f5d2c2c9e8fedda502e4575f1cc7c247d81b2eb0166be0e80947bea4418bb1a64f176d53717760a15bcab9766fd45726f294edb896107d2742e07f48228c850cc4a33c7e03b9e516127467a2a453c743d2f51b647b12d8a37d87c346c32083dc59a58bab2e1cdf01f5d9a0c4991550fb02faf9a4a248c7976b421bc28875e5718de4426719fcc3329bdaf368cf98d966ebe8508156fdf20bb4abd4e21ec98de1cfa9d9a88211c4300ec4e5085406cb944ecffcff67d6a7e3f33cc3cb4cb4dabac626eaf192f38cc112034d810a9b351bde0301cf03e2bc7ab46c1fccf11af4084f1247f65e70405492ea9110ffdb28a8cae4084e3d42b24daf996c524be3f7b3bf926d518f36e00f342e6c4ea7edfc828f2506b7cb518fd6d85a7bce8592ed146bc6d18dde650c960fac42efa290d6f5ea238e998f381a30ea4992d11949eed56b5ede6aac7c932298459530b62698442c1d6530ed072231d2e3cc594b89b2d1aec6a558bed6ff3db05361e95f923619f164c1147b7099cb42296d5e03ebdc000294322d87f9d3dce1be86e1016d121f61f37639224f65a616ee3fc0ab0c4238199896b035a4928c82dabacad0f658c9ded8a08d902b225b00062e857eaba07065ab4bc61180ec2edd274c3ac89ab3781732665c1a7d260dc1a16af796f302d8bbc0f4cf59f46b24f1f242b0c130b2507870461824664ee84578aa1c8ed612fb8ef0e930b54194fb6c9b59373bb7dc5169413f12ab5e6c20076ec0c72425903e21aa7def4a127e2aef5f4765180f0b236cc70e92852cc99db3a696c41fd5ffc4d899f90224a94881c581241a41882faa948511fa5e45f5530f892143404704b2a9d24e2754e19b72b1d9d29db65455934f32d28973bb5cb3315d0d6a7135f75338a74ee37d1525c79158565b489c5391d090d982e855bb7084e03b817f896fae9d04ab008c6aabc5e883f853e3eccf3e84b9a4050028ac39261ac639d4a73e5d5c0d2c5101c7d93d42e762e7e7825b1c6ca85b64e5a47aea332f4a96b51e7b4048afb6751140d0480933834827cf2776fe31ff8f5aec6b7120efa45a26d5b0f12d616291157ce7fd2db1f0f3ad568a45437aa0798630fa9847f1c72d1bfe755c68c1564444ab5104a04dcf9ca281a2f414f2959e223b2f74deea541042719d5f7186209542912b40138518d070cf4d33d0c305adb1912b788646f21e12bc6a8fb51cc736181b29af1b24a05a5792a93b8f8554d5ed95307e281f572ff08d532dfcea31c7c473018797d5222933917b709d199d98b9c4d21e8cb92cb6ea548b23db317326918aa622a37b31c7a4191790f9ef8ba271ac3816b592910b35d935a3cebe3ceb3d12826371a6e1a6d82a085778810693bcdc468ab50749ab1eb887410764851c0c401eb9b2c753a536dbc15247245685ba6a155017d0261d917dde261b540b55b13986ea155276aff4ea763438ad0ba82448613206e31dc1983640fe2e6375bbf08a11e8e2788a434845353cc8ca912f78896fcc24e8a5481b2082ab71894a3acda475375563f2f5aa512b1e0ef1c4a19ccf3e32ed2ebdcdae3c9974f4d4f04007fd4f2b2465ab787d27ee74e64e36eac7aa8c89df76d84f8d37f1b22c16805fdcd3c8f121572ea80c18887dfae946c8383a39f4ff0a4c4ef0e66751d3e45950dd16e4114d16be2d40a9b122ba48998497f56715827df959e04edffb3a529e50925589a6677dbcb5563053de6dc9598a3b8ad81d4ed4b3a86fe8a9d7f0b871bdf40ede070b5930bd5c7182f4c14213f99911f960a168fbb7c1b4d00ba8c891aacab30e657fa636465570cf99c49d298aa0bf721f896f4535b84cf1ee7a376e2407b8e2b0bf437be150926322e6454b06e2e3d8a9a80677fc026a32e6f4e3a7cab198e62599b0cbc0a23b5cc75d152eec5dd708dda704281349d24e33c76e7d062ab8aa9baa4df337cbd85f89f4fd95b6bff1aba551aca2d0bfc821e8a4ca36bbf61dbdc53618d14f4ead16643eb37b10f86c0f55e402a140e8f7e38ab224b85d796989b0e733599ce913cdeff4a43815020ef4f25b9ceb189e85c1cd71485c3b0b9d0c66fe4ff9a2dc323e33e305cd71bc8e56a38032048e6e26e2efdfe328d2021d3d3313d82bcc7df8c39d4531e8e03ffc81b72d7ab056feea826ee96c303d260d4f1a77a3e28235d0cc8e6be065bdd268ec1130ec526b334e046277cb4e1733bf0b743b9ead684991489c167b27d84d783be27924643bd08789e0592be466a8cc416e07709fd31349b7c8f2785cdf4e40dd5eeff2a4dc325da49711c62a0d8f17774fd9aa8cd40f48277aaad0bd6d1e67d9cb3b6a912ef3e98c0a0811a768a2d30314cc467e0c924452a87ce7ff4d1dfb0a134b8915d44c32a86021ac5af30462ca6c9dff5873544781562c02f2f66d676887c32b5d4768a9a166151dc6f880d3f9e9c21ea89d810efd03012d307adf5f84084a2207a60e964fa7210425e9cbddf766e118ef8222f438513d8dd0cac58db54fc216d3e1ee93f00e029f723ff32c0c73a29a2521cdcbe557f70d9968de17b21141a0f6b257884a90b55653d9c3481300d5ab904fbf5753a7367e6292753ad48006fb48b0fc5e8412d7d22fe7ad2bbdc9a8677dcf00773ddb7f04a8f5fd7fcf17662ad16595f9f09245c55a2952c0b5d2405aaa264f7cb87b040bd4bdd128be17ed0b9457be40862e5de3d2ee7fd0e4eeeb6d782e4009376006a642192bcd6bc4cd78cb8cebe18cb7459f977c28053a2bef4931d1d5d1f6734144407e34ce928cbea0776107cc36b79e8f651f617ccbf70c812f6a5121a78277b054a0e91a443b53eae09c31185cc5cfea9f6616bbad23fe76a88e6f6f074a84ac100421e442b5f805f2b7b156d30c3124b633c659db064ad858aea83349fb0232b7610bcd0ecb1ef4fbbf46e034c416f7e3f73a554b2d5c698ddfde920d7bd8abd532d0dcdeeefbe997ec23632028f9e075bd66949756714e22a95af44acbcf3dfaf36123655ab20f30e490e50ae27ff74512d9c3145f76c3d5917d92070775d59cdf8315d69c56fc837c452877748939301e79922e3720b563233e42477da8f2558a432351fa0e24543991e2070943d224fd67adb15e3ef4bedf6ed0cb1b8af15947b299cdeb4f89a33bc4d0b72dc7ec02817de53819741ef860bd595d3d0facb1ba39309374e245014a5da55c75574051cc5946e11d15cde863156694574cb96546e6440863c1080cdcf367b5cfab88dcecd6bbdc2ab7de28853fe1361b8f1de94f42ed0bc602e5964f188f0b5fa8c2dc09f3c85e758e60d29dfc4b1cc6d372af63b51551f391212d80643250215161947e2dedf9aff531b0eef16be5dfb37edf8b30c8ef2e46976bd0f103ef62899b8d03fe5fbe7af1dfe21739dfa4a6b01e9210bca0be2a5bdb66a3d230033120f501f92333224d2b78a3167dab89fff22daa179bfc027500d00120dc0e08491c520ab3433188c0013b2a53d66b553ebee52d385d45e385a43a1760aa1a68de253239a25f7c98cf21babc8e521ce211280a5ec0bcda4d56679e89efe7ad246e9375fe4c3fae5613ae1461f6a7097f838a6c3f6b88968c13f48974edcb94609c45e6cc5a7bc499a80862806b42e8adb4d97203af9be064a39d5ffb96deb838e65eb37e40e78e69186ab19a8dd60aa9cdf3be29c6d3b769d336af97595a076af38b8f9cb3aafc28abe4e4c75bfa1e82bad475db681e6ea32d559e53831d9abe4e8ea5390b99c434df198e481e48538ad3cd650aef95c236663ffbea3cc0b61100690ab8b62b2992e0bca700a6632004c00bb55daee5e3a4d521274d653969f597d3fd5666ce496b358f685fd405e817d50fd1a27dc9e44dfcce59db1669176b747c292232efa4c9ad5afc1231a434f4a1fb49b8197e7a0850d44cc43f84646b69679e58384cb10c76fda8410a4f4d23db8b6758f47330f611b0233a0e4e6a60299ac072ef3ee66166230cea016f4e5e340efbf054bee2a4182259a23f9e237399df0f9df00a2f9b949f74fdc4c0d2d0f2a13b6328a5c906dc0b4a17c03c9aecc59b54842274f3b41383a6b3292a1d04535928ab6287bc1745d4239e5b7f9ef49a34cedabb5b415ea0380e381c82867de3d55e5e78f23baaa584aa0629d2117546f99cc492379e6c033c57aa04406996ff5dc56a886624e8c52ec2fa0055416365769ab6c5a1159864c41ec953e441dbeeee0ec36610c1d63cfefd1d88f33e89daf057cd2f4364183ea1be14f9b55819fab9914b47e8085c40006bda00ee4dad3e2843b75cf23fac0588c4f5ff3ffd6867fd08b32e3882540f51b897f1f6c17c8b5198ff158a850478626337e4415e6431e3c03e64e07211b94e9989ae31809ee822f04844ecb6eb3d9ff945c02efe7cb306f4004431fbcb12ce4c055699f19416430bf5b90f92eea098172ed53c63eb97808193d73d5fe22d225cde0245f4eac9f2ebcfdab6dc3382c188a5e7ad37ddd3abe606bcfb2d934446fa53eff9e2200a64bb007fd95d2fdadcb208ffbdd3e68daefe322beb3dd0a3329f24ce535552f4454546772183deff2f611880b6c41156fc8356896c46f3cdbe1ce4266335005999e2fcef48689c8ed2b8367bb23d7f3790839cf9c2ceaa98f22ec5e374eb515d77287087d047cb240bafa1fe29edc9153626310e158bbd63a5e2b02f8e2708efbee6b35b7340c40b6a0ad5765cfa969d505506ce4be7895cf41b06c5e32686fe820b73162555c4e16d38edbe4ca8f13e534e9d12e4059fbf965836c573aaa10880eaba0a9545b520313edf52a20a699e71d5c63ef4e8eae64a0d15cdb48f3aaa03aba47df1020fd8aa9629a47220bbbcec56c83d5f467dfe04db7d833eb82da8e145a51eda4f2cc997c8dfc8044b1a71a7db07780e1a780be24c98b1d8c410b2ad7f86c77a0b2d64fecaf52ae95f819e7057fd3e65f962065ed95f0f427fe5cb65e61b24b6faa3b8524dac0aa0a728c9560ab3a4a062bed2cc9904029c8176031f148d57b2e9b0f5c6664f56106df56720b5dbd2393193eb64f925a2a065154593445fe333063174f7fb32d9481182192819fa04c02d6b1db7064ef2b1fcf8dd686044fc5ee1cb97b2eabcacf87838c6dd0e77e372151c225d89d09276d2f1c90eaf8eca0cf928c4d43d7aa23695a4ffd5916b6a6c1775ca4bd3e8aaccc9b3a4fc64ce75e23e2f542e8a0b84acd65923ffd898d94eaa58fb60286bf926e2d1cdaa557d30c9481d7548f1f5b2632c0be993ca51a0aee82f52670363ddeb1c65053611e4d0ff9a4360079572a6f9c6f740c033537c004df105b803f99fab80cf0e33013614b12dc466c60cf66021196db19d49e10913e8bda23f0263834151ee5d7d289abd779b063ccb89df6f9636acca0b0e428485352343901fc8c4092517fef4f9b8be90a020acd9a574107e67bbcdc4a0538a8893a888e5e64472726e05b102c0f3fed6addd035470d160d2f8aad39b4275c32fc0976cb44dc972941eb5bc6469a1b43a884f8d573b1240ec91c4a13c9f8f64fa3ba73bfd57b1e5573c23a3d72e912d81305df07e17cc3c4641ebd965fdb2d154594084bbe267335f93ab45523aa670c4f34ae25b79421009f8ebcd4b1e2b74b84f397c89eaf1ca04a34f0aeff1790dd4a684a5b943239aa3c7af908585efaadf43e67fb49e03cc9b5ed9a483c51f7e346951cc425b4693153a313a40b016f3cf9ee1ac8fabbe54827fd3d44768bcfb2c0eaa8a68aa648c3bf3eed4badf60106b9e2446d7f3a643a04f73b0667bc1ed5315c0dd879af461090f8969498303ace9a4b70f9a4f577f44784fc5d206024a583663efc646b29fd9d4c822d55d033071f57ed0a3e30c06025d8978c4bd5459d5ba32661594fd49a3701cccaeebbdd9aaeb3972f34bd4ae76cda068227317ea1c44d1ea84b6ddffdb8dc35709cca8c721358157b7c059fd23a038901e96756bd0a4ca1b1870c0d275c5c68c2520bd79ed5ff72d6eeab91c622e72d46e992be311b38f0f065f1036de54109dd787358f305583aefbf941f8f80c1aa8e9a471844d3e4ee851f5e25fbb0db29ba2c2a0fddb78cb1b3e4a63a7c6c5651cc56b6231f75beb59b75251852917b320f32a7bcd584a00bcded2c1ec9ea625a4894392447cc2393ea4415fb80e4a1aac0c4f4149ca6a5d9da43fd1ad156bbf34c4252c56954cc0a88afa3b2162f0f46f2d0ba5862b44353483c588fbbc179542626c6aa16985f87a5f70cd777226f5b63ef22eff157efda3951514fda50f22b0ba60a768170f71c3d0fe692030c8c1dd1a54279f5e27d3bc77cfdb6ffc3d08ca28f48c713d8706909d0b198b0027a0bbfe28eb1da1bc24b788a67024249c97eff6ff0658bac75b07703e2927cc95c6f1372fb54b9ac2ea7048e2c245796896c2c83059f11c673a45712e751a0f2b5f62ff5fa1cc986572fde65a21e0ffd7e39d33786bb431f161a19c8d8ebf5d36cb6264f63f83ec36a119e58b9437b449a41fb3372c661e7eaa2cf36571fe7a0fe1d1c31c7acbce7a7beb6491fb46819ce36748bf82ca7933b2560b22eb6423a0e4d8738214819574c83e5fce9b055114e64be5472726d8efc3c2f6cc449d6cc09b750633e3960777126a31c9f53eab499f668dd6559fe9b96ec0d47f564383495e17fb1152a93100c30022d14984cc15d0f83cf184a705811ec490e7f14132a1132b5baacf6a854995901bc0dbecad771d102e92794505a1570d309e4ffc40c38433f750d4736bb0c8fef310411ace803f497391507f4044d94bde4bd68ddf70bac7c7ef74b53bed055eb47861b8198b7c5d02d1fb0a15d3f4ca5bab2ce3ee118d53c2e7752c32a5b6530c40c6c8268b337f6ec3b1b39bd1c21a1a7192d0977d573fdf36f2ee63b988f4935cb48f50f2675cb68a7b659fdc4d713ef1f173994e908823c372093074988ca180b7d553fbd020eb14c6329537c59098809d53e3c921131dcf87c07e238f0e7944be7136032ff0f871ee41b0c2b69271bae8728228f9f5eb232cd5ceb9bf75f9b1a602cfca88d52823b8d72d19de8743d53e0a8cd91b3509dfca83ab9d75400c09de219912ef26575624437712231a9b9dc9385ddc81de57453496e5a0b1a61188cacf3e4cf92fe3d7d0f8dc98f83d30ee240704f737f758ae506affa130691685dcadd5b73085ae9e941565983f8eaaf31626fa90e9c405a1ed0770985b532e80e25f74ebb11496f65439bc477d81ebe553673c612d2f87eeb98dbdb79114af5b6428eff2a28c4ded9d37b3bf029d9664610e13d13d88f3ad867a7c59e56e5c00fd11d1de53b59c2a7e33172c97f120d6bfad449b88b2634b53f102fb50d93320920660f651f96d254a5942a1b74493af6f86ed126eb9d65208f13607bc7ef7b4716b3fcc2550bd518c637b7bea4371679319cca2af109e6f5d19b412f8ae366d1e8084c65a9107b215e3656da6cec36cc7151520ee0174998cab3a7c69ea39a9c15bc24b7f61dbd7b634d2671019f53d030fdcd7656100a9af0ea1153f6708f7a8ebcdd0e10b1ce1865d0e0336eca3a0cd5d72310ed75c5be1e9585e0c9c2ed13009594349928e5d041ea7aa66b613a435acd35e54c0945b244318617c3ae26449dd4d740ec437f74b00b90b4adaba3bd2ddd022d732364beb65b4f5dc6594617b26ac2aa334e091674ce8e37694c070503917d250c020c67360035f43b10005cc8ea74941d97cc85b9b4ad579927a330bb9aaa7a404aafe34c59615e79c8d7b75272efee12666fbe43882de1380d96ce67e318a2335635638216d29bad49f311b73acfba9adbdaaa472276813644ee7fdb67e41138965e869a8107e16cf9e736081fb1a5fae44196f06da41ddf008e2e64d26a7e55260766bf64d5e446e3850500fc8e014cd5a70c7b994b7764495ded894ecc5c6426764b475b8e5064f9286db0cbf8dc6166a94bda30f2872025156a2152aa46eff2d17cdc82f55a723968c828e1a07c7ba0f5c85808a3a714754492fce884cf4c5d17c0ac52b7ce218dc31f3c86c2a3832466d07851651331b855c4da0ba2c4331cb944cb50408b8fa9d06fc4d828cb168d5535d155187e2c2881c3c731aaff8163f205baf612c2d3453517771692bb395838097a5ec48729933444412792186b197bdb6286b014f0fa255ceade4f1320074b185a1cf9ce76591e07a2bad342c6949512095adc5572830de7b994420af52a501455e56a7cae879a34eafcc56d3ae3ac315fa278b62dfd897846c537edfb0d562ab7dc08e11314ffbbccc44ea4364081103122f93b2ee5b578432dc7409cce39f49279f50831676c63bdb9cbe0e3d2f2b4bc2c61ce6ec9380f3503d1449528edb2fc08b81241e58fdfeefd9b704de8aa8cc16379d57258dde93e38cbffef5ad36b306d885c1cd64e063cc66f248bab8e3ebe38b06b3708f43aa59f101144430023084273e2dcc0eee83de0a3fdabe05b4a9354b5d6bfc7f3dd42bc66b475ebaf769b4e88db84e224bc63ba20f9c9909deeb65d5323b3b6d9d568794958adaba0f1203a4e4dad6a9b6fc0a800a4398b3620a66ad9a1fa3dab18916e9e230b966a8c537c42baa866326988f22ee86a3f387debe6f42bb6ae3ef5bb87d75b270557c2faafa605c9c6ffbe554fa1add8660d723d3784fcb77fa6a40ba7951da2ddaba239a6dc3eb355d30cadfe7c749388deac28d93e622c7948e32e0d80bb7c27b7f000828a8cb842b0d15a92592b52ca7a689ac8a35b313aefbab3fc5f1454115a3cf57ee1b320df346e10cac90d7d3085821746f3c9cfcba9f19d3c4b434c561a30db772cb03b0d6bd9c3a66e1c78e34e85d494b554965a613f8bddf4e5fa22e94dee7d474c47dec9b5f35e995e381097d058dc7419de1b7cb3408f0305b3a349e4d22207117d7eebda5ed7e3b3b8cd37a3cad04c398412ec074c97a4d54deef8101326cbadc86fc8acb2e30e98da4aaa2bdb8c9a49d120e328f7825884932c219a6c59c3856851521ab982cc03e97c37e5c63f5017a4d9e776d076f148e9f3707393ad41117b42a132fb42d070f05325d6fcb402af11ea12aecb73d028fdbb487cfb75d1478c08ff05d52fbbfc6c2adf4d6f181492a59f97a5bf5aa38b06b51a7550b5b078b0fddfa40e1b18dbe5551a0f3ac454cbcf9e9549ca89ce6e2a4fbda3c2322117098a06a531dfa046a04c420a3265b553aed98b5adc8b6471e5a2b1e67e992a04ddbaa5d03fde4b5777653901d8d8af84953ceed56f900f5f231e8e4192f128128a4ad5679d6a95daf689aff6109cf41de763766f081896c1d1bc69d7e3971a220a188b11a476b8c0d9967e93c0379a442b39b6a6ff313c56fbfd26a13b7c4ef0c733ec0650685e5e0f8d56fb1862adb076c4243bb76d0c59c38714d302580de78e4472b48ff28b69da0ea88812f03a13b14328cf85bec1cf5c105f4d7934892e31e4e5e945ea1e1c016146bdbd46eaa7151275db0f88b7eb03c79a2f67896f8320a8a73eee21849f4b1d367cabb1edb8e31a04507c630f5f84ec8b62e885608b2333ed788fe9fa57d474712405a3bf6d62dbe31161dcec4c550ff023f8d048a34d146930cc1995c7636308aa66a8992aa25aacaec9e7e8be973b28f751cddad7e25db5e5a7dcb01f3ef78157f7ef8a9c2d7f60b8bb22778313b82250006006883022382595ad5f8ca95a79b9645a5f13711829d09988a7d53abcc6b4466d39060c07a2b42f26600364d719fe7e08440c8968c6eee81fcf72feca26fad0c088325b5b2a2d06953f0796288f06a268ff70924bcbea1a81f9fcfac4aeab612dbded71b0b823d7dbc8fedb0b31329c0533b6596da3c0bd71beefd820467ae37aa5d8852643ae3e26266356fff9292be428a4c9271f96df5d1a26fb9ad329bd30a1fa66bda5fb8c1b0b3f59e888ad093e0fcd80f6a991f1aead0f6a3231c8d3b83727322339b0c68736a5678b688916f2424a4c0685d65fd54304306fe567ab05e091487810ab804bfd44295d334fee0e29aeff1eba6f481ceaef827f27a7b76961a5aeb6866f65ecee78d4772a6c2344047fd4eb7f1f987b50f605d2b2db0410668117473487e82eaa9096e345d82c75243f4d4ad9987d30a2dea429db0595c1851753eeca329085a2954acf4b2a6e4fa29b05e40f126ffab466be7a8a454115c39752c1e80e8df042551240cccfea10ab5aa0fe990d59dd24611f7f268b4421e6b33f13055357d8a62582eea8a372bc3eb2f91d7333f8202ea29a0fb0f1612be2ce74ef2af7904fbabae7ee82e1b7d87aa1d4974c674208b79f9ae677df262488ee39f8584d524e330994b0fafcf2d537c2958b82fce743f5167dccca5c8e2ba4f331776aa5821efc5743ddb0057e9bad33d59b9f98edaf671fe6ef3323b55b72b887e1bd2541422b657427ccdb81675b962a8ed8bae759c4cfc5ee69f071e2a92cff3354f53f812c498153421b67d4f8898842f1571d53bc43052d73f27efca3c2ce4b3af2bd682abf5953b24914ab313304c06372fbcf350f8a825fa92ecc475e0a0b2043d01210f94df1ad1fc0cd13462d939855e0452b21ad0f28dc748508fb70b33d0f02dad907be8e5da2329525df5a9f172c6b9b31a63d0c837119746e444293c1329dc9142b526a60ed01508aa093f6c2a56a09b7d1a88d7d786313416054aea0474b6019378a93a5c3d4d14230107409d5ba1ec0fb5c6243e31144df8c2f0a3d34de4dead2a550e7e27f8b1edd2955e08de8cbc8cfc31391ea30030dec46061e0961510968db0492b8923e9e4ea5edbeb1e893b77221acaeae986259fb8ed88f724c6f53c40aa736fec48bfa11168e93e726bb5707854f7d9af8cbbce936a3c54a0fb7f5a2557ce2fd10bc2569bec6140e4b54a67e70336bfee88821ad736d0073026d473ffc6949697833da0cc4a54277d895284a807b44357818c7a49ab0f8a6223ad0afa8169d5a5d205bcdd29fbf89f21bbdb9f389de11525d05f01062e29f932d91344412cd1ce063b8099a5a50cb12f5201f6a0e8c2e5869f86ca9c0811a0259aa1a0ae7dadf482e6a206d8288e97bd3d9d82fddac16ac39e9fa52efaaa0df7030e6d8290ab4d2d0f8a5eb8ff1a79d58977eef3c5bb7f063a20a06e6603dea96c09b94cf587eb323a06b8e99725b8b08436ca54b7d85a30182f152be833bf484da8c0b699b42d00a6b837eb82ddcd43fb740505411cb70cec5935ec52f9aa3765c5eeaf16ac463c7267b8da3606134ebe05a92d75fcc4f0f3da4fc6e48ed0008de7b024de6b65ec97e34b9c47d3b5a99323f8a928482c936b2fb549885a0b3753ac02e70c22b0389a817ecace0934c4f08f97c7f69a4273dd2a1d91f07ac1dc3cde450a8d6a9b45e659d560dd9939332f358cd43ac8a5e74d1ec220873c480870f09723e093f094228764a6cc967da79febfa22ea89218687f1a196a32059f6ad5d65c9311ffca219330fe15b1839f4afbb4afe627b7db2ecace817b381c920d2ae15ba73e0634466486a07f15fbbd752feb2d2144b9f5aa41db4c1d72220ff54f80788923e35868f379925986b61ae8a845d99c5039462ede90158fb27e32d3db2df12d00d40146f9b3f5ea8d45926ce654ed03a0da25ea3789d395e359fe183dfc680f4f272a06441bc01d64962fb18989caa61f464135b8f8e250cb0a3636d5bf946754e9eed4804c657a6f1a20ac371fb4b6c475cef37b6f6eb9406e5a1cc0f68552ce1a79785af9040a7fb1f533acd80498621d71aa23335302022cf53cddffe70dcc1b43c03da3b64633b07defa262e8937d0a50186c99b3d2c5466d280f476f1eaf452c983f6b31d52cc24423f83a267d1b8d37b028c0d56f0c53c28bed4018c4974a36e5b027e1890b805fc27fc6e7edceac13d50fcd780f79e6ad688096b070f7888348c12851521682803d9a712ca7501202c8d4d32c0cc1ae0d8436d10009862160aa14f5f47622488bcca1a89b382dc8bfdd585f80ad0936c207ec8cbdaee2630a09e2502637fc5859f1cc1744151fd0143156e2b28df66b3bcbfb238f210e42e2114b8ea6f020a40aa21863224f8e00870b9e3c9c0c5162f03db2a60100c1bdac17c5c18bfb331bf7cafc89dd40852ac93f902bb68cb0efd24a61c520734e82226818c915ad59894bef5ee9aba89661c6a40965b95fc53ab5b309ec1c56aeeb1c7db03cbd4cf93b2c7afe21cec6c44ed42d33ffb12c3eb50cbf002cd48c9ee9bd51c5011ba72ebbff726278c2928500534651e7c1aeed640bc829d9d6f0032db7a3a5b5c9f333b2a692e5a3a8b71fa323ef67b51e8ac770bd7ba029164faf230c1cbc64e8a133162c41bf2a4c271c89dce233fed022406c573ee910868d7bea2e6529148697698d7e8d42931bba46b10a9abc0da91dbe8537c2baf8edac424f4a9f79e0fa75feb1f2d0c92e8c1ce0133f661a4f359a55911213643f380e44af0579b88f91d2be75910b67235de852f54b5fbec7bffbff93635626a17d34fa9ab7bc8735bcc14e7fe181d8698f25380b044b497e3adaaa172092f27f17e22a2b49ac02a80c43b01a5078d4338e490ff127489bf71ba8cf9c3105f1241240e7a05289f270378b9460977736b5bf359f77473ec5dd33b412277a6a8861bc1712a2123724c75d0889c5231344287514d8e28605757e8ccc7addc3a37c7715c7976ec913ec89ad2ba3cac0834070b948b29bdd0a096241466ff72720f153a18b24ea96a8d1f33d2b7009aa7db25ea6530496cc9a2646d1091d1280e0289a53474d7fdf51b4200f4471351a14f21136c1bf4be89d371418b57d40b3de862dc6a1d00fc468e5859809e03fb12c1ae8cd4134247bfa3f7d05ff491fbb6ab5fc47a1ae9b505a4c0671a5bf28832fe08555c9ca78beec3182a493d0efc4acfcfd1987e17bd2229170271ae5e5bb9140b683e47d9e01df51c85449d285467d1df1b929af29ee0c7436775d15306affdecb17efeea488ee68fb843ba492047bf9e1a606dc5670650fe46b39206e22c4ae14b62333f3e4d366a679288bdbc97ddb4dd366ea463afcb8df4ad2635d904a77a9bb1af492fe6c70c98c3401229e7825ed78725969f8b9833d0ab2ef8e932034d6d050f11a815eb4596e841e5bce7e35e9bcec48e0c75a42d7db94b97597b161a697412e56b506907cf13636a4e575cbf8c65933742f1e101412e4be65a432f990e4d771547cbb0d50b5242d1609913151940e280c6ae8f3039acb5f4ff801c57e62c6939f6a2406b9e94388625ee1d4d57a4d5d9dcb21dfd92042b17b2d7ee505f85bf4dda910b04c6aa6ac9a15a5093a6b9256af6cf657439254c8243104ab5924d6fbd08e85c11becda295d1112464bcb60acc7f72db7ad840269c79f2f3078249e95706640d68aa93b1e8d07f402d0952e1e55c398fbfea3e3e377bb7f808f317dec15cb064326bfe77e5f8a6dc3f292b365c8e629d25e8adcb8abb4246e02498b864b152f593b52f361e5a44b248e5109aa35f742218d8b2fe72dedca9fe57a4d4d61955e825bb9ce1035e6ee51089bfb5bf0ddeb698ef6e0958e4a9064c877914f34562f8e52c1f28ed88c275380778f5a90c8c1106fed3d21229d7e307e6f7ebfcbef82a1837fa20ba4461381c6a798f2ebed7bee33fd30006e53a7565246e8e3e698df9c63606838bd7cb932e327efe37b3cae073a8a2553eda1128056999f167e8e48c15a7720c848385a4dcee12665506ea6401f4dec1d452670393e31a346480e657b45d119c301629760cdc3f8d0bdca0db9bb8cd6d2e555b8d8584a3dd12d3d34871616e223211ccac1d49dd50499ad5694c7c5b17688ab5f02c585ba5e7fbcac2065e7ba20bcea1bcf3c7f6c9cdf4286e51a713c9c6424c179008b9e1cdca515e1001cc22fef38e244bef6050f47461901722068dd6f66350098404aaba0377e552e27c73b410897b5d3483a006dafd0b137749fb070aac0c6dd58a1ef9079781003d560b32335998f705a5e0dc1a36c4b313590e380e7f61feca9987d8107d065563a18eefc4d60fd985b4640f2644e687c4edf026f02d14cdbcd0f847c27a3c6982acb441deea3c757030e99ca91339c978e8f7d24a6e8f61b9ec0a107b8d715e70f289610cd41c8d3d479c49e8fb3ebf4877a2af8a652549572bd497347482789a2e0c9e149ed88a3c7ab43ed6bea2b6389b3505246e4cd76e2e6f6a2d6634eda070df40525bbcdacf3881d775ba441beb9d5520f78244e0fb650255351437cd5ab80c28237efbd92fb004439619dfc84fc39b193a3d8aa5c655f483a4b843b00bb53c70dd093dbfaf4bb1055b08d5fe8129084d3d1ba8c8ba931d8bb25c88fe7b27ec902d98aaafea475c060d620a9a95356f7233f88dcd0f77cd23f30dbf9a2e757855ec45e79829fd01c3a60d74f9f7ed9bd1edff4a798013472b5147e438d5b137c7414d1af0295c082e87ee5aa3029b5b408715132a78834085d941d2d0339745f49c7423465d96a40ed7b2db58ca511c398278807ad186aefe3a53caa8136a857cd2c2d9cc2cb78832b96ca6d6be52173585408a720fbf803fd6dc70df7876a1faa31107ef2551e598279fe16ce4da2cf752fa9e90d8f4652b63128cbdc8e61beaeae78d22e10060f4cc20f7d1699dd167fc973a073d349d727be5b4502b93d3c35d5d722043f3e122ead1bca2d9875789fee9ed0bc300e9cbfa8c20e01bea36e5ce1490716ea8f87f50e026045e4bfa5ef66b3eb9fb451d271ea4a60d15379228c08378f0461a027639d3ff5eaf0ca4f30dbf7bd9730c7219957bedb318910df5806743ca043d4194a0c1554344d6fba4157a596cba316ecd8daee07c0c4b5f446692fa16412503c6821fca6f4ceb5e6bf152b6d3b7077e6a9bf1df0e2a0b3b6064ec4e90fc1b1917931c67a724c0e70838cf52a4ddfc1b39ebb1de00b28acf00f767c61fd6a2170e99bec28c0a73c7a80c49403f28da0f3cdd08073751318d4e488c3a77be24dbb53c2fe9b1991ebb9458a689756a2c53c53a2dec2962991afb94d84c8db574aca6c4723ab6a9629d12d614b14c197bba58a68e552ab69a46ef3236e73c5276e894e1360f6dceb6c37903c999e341f71c3251e2515c096f4583097403d3ab4f107a8d3b7f6b427ab180a05e5381918e27f8254ffc8e9dcc9f4aebb4849f503c669708186a905df8d03e31b28528e74c786267941994b9c3bea166444949ee7f27d8503ff1625cac220f90587e3d6f0107bf00db93972689ad7f1bf915f6bd60e21b8cb05c42b64d0e50de17f80c6d9794dd9af0a5a7eed1fed8ce1940624ebe48f5763d1bfb95bbfc179dc926585dacef02ae02bb177ed0e2f283ed1bb944af00853a518215d33e27341fccc99c00d8caeb6ce88310ebd9412eae0de429b00da58e7b556298c82b91c737e2bdf0f78b5cff1d1700707c9fb5164662ead7947522bbad13319d798c7fdc0ced55e3b2a1e38d0b62439811984ac905682cd0e10a612638d64280f44f237aeaab93b04d2a7a9fa5d7e70bbc19a5140f38b3c7222656260690e43161622e0151026b5f84d051072b2c5cab6a47bd20a1a819b00a5ea03983be05ae52fa7e0ac865baeb532d1aa30586e5dc1815092cd62f000a3821b129b189f13e7c548b188dd554b1e970212d172368d7e163a32a2fd0841654c555a8f1ff47c7372f3afe6d16f61d4ccf44f79c2801d416a45081dcc6aec65b8fda14a9df3a6f5e1ab7e256d392e6f8d14734982217355ca74a3161538ff0ffcb7bc1dc7d1a8597fc7d575b7d56fdf488582d3fb60d3b03f90da2af0055df80180e0585d55fe5bf8854508e0814f616dac43542762cf0c1285bececb19f06b8fee1a0f26f9a5dc4db45004e05d07c370e65171c5b728fafe1d168ce1ae457ce2d380de218b796dbc22d331f59e3c03bbe698582e2c7a25dc64b59704ba0c2ea30a3b6d9c611df50b397fc64ccc08ba6c23e1df696e107ba04ed3a840a0a7f8b5b09df76c19959d984a00ce2d14d8c8a94416684484f6f5f6387f1c03aa7e935d7a0ec2aba657793a2c53f38d899f791e055ffce1dd64769e9545634b7c1d35c875890f3c5df38ea5855137c8c4c58abac4d4e0f500ea086599e3c1e193f123c9ba7f38f48c4593eabbbef699267add85ac181fcda3c50b980df26cc2c6cf695ccaab004d3ababb8ce94ab1c45eace013bd64d390500bc3dbc4245e6dd005618fcc5c41ca7e6c0e9c264bb3a26d413dc20245aa0db6a066a7eaa9f104456d835f177cae73602228707faa0b89963388e53b24c305e92495cd9ea5041eaf3b43077acdc257a8deec5f2e735a6fdaebd1a44cb16b4669eb49521bbf639f000297cfb57ce5324a7c62b48cfbaa87aaeba25d544b42b41ddbab8fced7125266d1b0857d77b9be62d125ca86a61f29298eec970f008c396aaee7f649b61dfbab1fdb8b84b717e9bb6bede33384447616fba7fb1d75cfddd55298adead8bb87463a1b2d8a7fc1e8bf590bb4a92db4ea326baefc9c94e231f3c354749c0b39f054a4a9aae03d61ff74b9f64c6bf2119591767bf1f876ac31ab958db4a3939cc8c4d5981af5aaeb2eaaa940d79f8d48fdcefdd594eb9d0625c1e76b968822141ef26ffb212c665ec715533f950eed3e6f44a19c4a4685e25d54cf07958b2259e8e8ab216e11e52389aee2295778d4f9bc4b66ba2925e6047384855f8889ba91236a2672a858ce019538f267bc976d84b3f7d74932efb16940253deecfa07cb7c37d898673a8bca1187c6360157b31bea92e16bd9a3088a958437587fee14c715cbe04b8f885e0b304e89336215ecb235f15b0d1436b41f72c3eae1b3c16c940f06fcb83b9c79202a03271b4f43b1dc941a4fff9b7fd7bd97b2942cb3392c9accd58a165f27cffc774a9130f6e9f5d42259cd3794d56ac6bcefc00474c47ab12c56e7c6ae00bcb8c2b4030f6771e236ef6660cbec9516f68b0846f09cd892e6929f5846d47d6d14a97ed96e1cdbb2e35bb3022c27253c89abe99b0eb3f5a58a24b8a51c25228c6d268403aed5295ec425ca2949e6f1a44e94166186551e0233b13276aa1dddd313034310a268f69e1f4f8996cc863f0b32875d4c8daf774cabb42ba8c7c3e780b400c10afb63f7f973816c55b1e318e1d19ed893696e164221c3a268c6c88ff8743db3026e78329487858db5c3e577cb576d4df0e6a304f4a691c3912023fbd3d4346917d548d73e41093a5d48aeb97a7d98e8242c872edae02f1f6864dd04ed14994ac08a83cfba9461984aab14b12f7b3ffc9feef7e9d2b454e6430d81b66b4c631661f8fbe1ca47007a93225ddef41c41b2d8001aa8cc075617f6bbed3daff41e3534394f4970e961db11488dcea2cb295088347e589613bbcee4f0d5b2cb7c8e37ff7dbba61498f4ce46c3611676352b6564142f82e49af3f19a6d4619513d5c46a35c3d846989aaaf8883aa3bbb88d2ad70cd89e841035c41e974f6e68a843162bc0fd8457f81c31db8ba7d9121523a99ed23118e7f67ed3ffd30d25206f4f03c9826452a59b07ea52581caf1dfdb72a1f5ede24c2e4e36cca6245cc97a0473106e24af24fb562794f9f5c77fb3c7b8c838d5ab14758cf3bac4078d632345025e75140914e8ee4a6f63625a043e7c6dfbbfbe63ff27a7aac06111db3e2e746e7cc3d84294d79857328552f9924c9cc5d80e75d0561566439e44ab0b61eb1c7f929d5cc7c51db5eecfbc79e1de109636369b9ed10286b927b66fbf95d56cd933d0fc17ec33dea9de9b95cdf18f76ce5da9b7d9aeeac880cc7f55c5d0aa849d352c4a918d99322a4c15eb148bdcd60cc144498494c17c6a07b0ccf0cbcf5f4f2ecfd7861c10919b87a8b7701e4a11429fd8231ac1c97eb8933d613db050401e132ef986f58db27f8c42da9fa21f3e3a79b6f289c2cd08cc696991818eed5268221f61899b3e370f158c4e828d1732148e5001d272e54ca4e67f23da5565f944c8f8de6c88669a1853b5f726f9d7bc43b09d41358fd95d99cf6eaa5b24aa9f4fd3e1bcccba0b44099d31e0fde6713f260252870ea73a1b9f9c6a4cb5ea88d0e1373e63f2df3d1e9426ffab65edf64e597f7d0d53beb970ccaeca12909abfb0a73e12d5877d4f1947a60b0e20207acd9e1a274ec8f24f68d7b2319ba662068cd6fb6cf71aac0bc435f17886acf736e430ee77e9ff758db0be427c10d917a789d31959deb2a5a209c81f59e287fb919fdf9f44f6ee5c2898266197c0335f589322baef69a4415e21d343e4cf73597a5c9f0c8f2e7a468b29b1ef09cc789f0fe2fa8edf58bcf54dd7e5a8bd068957f05f1268a83c45da97d7fc0de5204015d03d946b023675eff4713b0878856686f82a337d178924e33fb82a686d4486c0201676513c62c13f1c4041a12f39911fd9e2caedd3f50790b6a0bcd45038edc243bf97b879cbea599cc19677ad4ce31b7144b2669eb6a22c5103678111677e7c5193dacd9b51eb8783ae501dd9e6baba6f93274f51584e3bdf8f18f14333e802b940d13f8070cd47b04689a2c018af866b59a1c65fb82224cf820f12511db6942422c8a42e22108b2569a19562643528ea62d8a13ac5415908f021b1401a475c788629ce80d42230e8806546cc24d527f8d430a7d4f41cbc4b891921c5326f61cb337e9cbc2409ca66849b3541bf18d19e390380c9167de1ae45d88ea594dcc162cced3de10dc1440e41e402f26dd872390201b8a3b1692fb00500386c5639b715c94a97449c21477d123d829d0947e964e658d97b77902c0056ae82339f61d595b7a17d163c49aaf1d99f8a43210d38a506315c83486821459a01ffe00031f420f39ea28831f38f16132ee599e366d03bafa10362452fed72ad4ed3c5fb2c8547a2f677875e6fe058a024a2a8df4afafc2e56d4bb643f1848ec8d4ec96840fd448b693a950e61f2430c43478d7f1566aa4cef7cff5040bd742806914f8064c7269c75cb875f42b08bfa790411c71aac309e0cbd37c2bbfbc022b3a21d13c2699862c9a0f1f6357aee344035948112405a23f23ef722e85b56fddce6a852331d6ecaa31d6f0df6d950451186359300724413ea5aeaf97dc8abaccceb0f6e292bf5fd740fb2b4aa468d6727bcd5886050dc6307ee4547c8af12a7af11e0d8d4ef23100fdb6d2b794d8c33cce194fbccb35328888ff14fe0f066ebf3d5f55a035ad00b525dd47bcb04a037566f7805167a07305984b5684f87a8461ea6a73035836430ea0f8c6af9e0593a975780790da71714c947c22e99e4e19e617df0363f97cd0890b23575e09c96a68a03b7ba8580e3ba40bcb934287fa1ba0f7460d18fe28897a394a3bbb9681b0590533020cea0b0015f7207052a213fa72c74e0d4e238e85eaef73136d4e8bb48359e2396bc147993a378806598c51b268da7640f2baf7a2656bf19bff21603ce29d40188f2dfcb2cafd2ad1f2e8d6d3244243864bac09cec7d1f6f7be8651b191fce98050a90ad173c1d0476d04c87eba3a8307f2c8ad6e4ed9a8098db1b6238530af9efb81a30489024c1faa06d2bebc6cd0fdb01cf9b3d5000008064f85cc00855891088c1805b65772172420eca5375a70bca892d95e3aced628fb2d6228dcc47e63d78ad5ffe63ef8d149b13747d8e00568f74622815203ca29b7882530e95b0d5aca20ab403d09a3ed4562f133cc9cddb8458ffa62f108118f0500a90d5cc0d926bc21f05c27d06433abe1597614152c175de2b0a990046eb26d2fdbaa0db2182efa297f1aff67db86149b0de7d497a0095956f4a083ee0be5c54b6f34f77f2cde9e0c56f3f46b5a0b6d46e1014b0ad76724d1c0995a05e01edb5a51128ebf672d8237430a244213f712a00516031512c677a631a6e54b564d47c6c4a49cefba915bf12a4114622dbc800a422dbbc116ce809beafb8238c6fae67784d2c199b750f9bd7deb4e33afb021d8bbcbd26c53ccf45fab5b0be151ebce176fa4975ca15f0bc0b992dab3d111595658a8344a390e7c5cab0b8446bc7bf01513994ef724d8e81f114a8106bb499a820a743bccbdb6801c75cde204d31b697eb61d6b20df2d639d45e31482d9a2a95219235829098b2d8ea06b129026121ccfc13beefa873d4ad16d3da7fefa327c32d221c708f26fdf3ab2b41ab2842e3d59242ff90ae38b86b849b9474eb8ab7bf0d4b4a1e291c0c80dc44ffa22f8537e38d154e2e145299c4836ea3fc46085166faf53f9ddece13a2231d4b21eb229905830455fcb24717ebd9086c06085da9170641afa40d5833c441bcf0a7ede6bb3239c5c17023615b101065e230732e7b28bb92775f60b45ebdc9f06ae136ab8e7065528744dba66d1933297a338019945a20736a403f95ed08505cf890a73d336ada1c0fd82e4a7be81e59862151af69b780de4fb1c7be734c3a2dc9ccc160b6863c839bb38aebbd313f2bbca1fd4ee891780c38f2574d683dcbdab3ba277f9e8f57cde02cf952003a74d10d36829cb4c4a14565d396a5fa1ba6ae7540615544583ca42a077c32d53afdebb417cf84fc04f11630e101e012f97ffed4dd58db04863587caa812df31c980868ed1b2bd7e20be37c2c00d586044ff370a927e47d87161f90139640c38dd0869d2df6655190ae2088c289af894af5b89ef6e22f0d28e3b9c56ff899791cda9278b963a367abb3a6dac315f425cdb49a27f0f736a74af9eec02a9a99786a29faa4b310fda3d8f98e66f38e5b3b2934dc7970196176248a214d9f2a2eafe01508c5a0d2a8d4bc7193ace457979380ce8748fd8730a0132a668eaa0d5599a80aadc9ee1a437706fee760e1f31b122e4129e5566ac2a2337a182d414a612c68ebe56ca0def2ce9d13e28aa181a8f0ff3ab1e0fc371bbba202b0f3df869d2421f1ad6de13599975db5c2a19675ca1badc30148828090abe3ba8e90988e09169ff3e23dd1f222e034dd1d174c5fd352b5cf58cf9a81cf4d70c445b514576d4d36f88cce9da0914e58501ffb319625c506e44e5a4c6cd6bb6a58a04e45178bcc2c038be7a31e406a583236416d30329928912309bff62531cadfca6f25668116e8c60f0685561960720e3c62b3085c027470264da7a8c0d9804666c4932a3d8da5f1b155af537b52ff03e102ef6195d04dd14881b7eb6958dc0f85dafdd7bc370044f54637b1e2ecc473ca63efad7c0270cf0bb71a98919cae01d0bb48d7b4ab53feeedb5fdc6215f1e0cf8823d10ec3c02236c3448847f9f1f8fb7f86d3d83c0cec30e5dae77e19984fe61a7ddb76ee70b140dbfa985a36a76b20596a9c74e9a7ddc488f6322d6a7930ab11f7823558dfd06f9d905ed6749034b3aa6828fff9c2c294768d3294bce27ae51f78f67317eaec7d414dad25b9bf651cb95e01b45cdc9e88e3e97dac9c0441f28630490a37a4269a3cdce063007e538ef4b26ab3e79a6ff8810c826a56387602b221b97b299a8bd400b4b9b06949bc324dff75a4ca605bc8d222a18885601374e63357b3df38f8bc806c18cbdd360f8501a8d50c1345afc013f000372fa9ddce0cd19c252d293a549b5372c973ab250170a1990402a68697e5ad3c7cc3bc29f70360680c7c9fac53a8703035de6b1a0b4f3efe44051dc5b94607b2023646369566c9de992e1d6c07ab06872e3e0d3f534e7de0b2d3a54472daac8c49c34432c4ed387fbafbdc22adb05f17aa22f37651b0ffd94a71c4335f4759481d39ac7938e6b3d5ac6dbf2e295cfe39169e4e3b12e4cf587a6ab24bfea69e2223b49a9bd5b6652d47d42cc5cebbf152277da780696c8e1c4d5b62569d1b87aa26a0960d6f1340e1897c6a5088be9fb0a7b5955b0a98f85142b00283ed251137a51a937fe175dbfdfe99e5fb1b0acd95b0a21d7575a23956ee96d09c16aefa55c053cb4b69fd68ef7c84d37f1135bbc470f21c4be31e6cc169f0d742dbf4c287571f9baf847be61c4bc7d171432241a9ff709f68ef6f58933066b00f98d2005b9903f05b75f50593e2f879fffffbcd813cf2b83818bd6a94fd3e0fc0c28c9bed530265ec70a7894ec4148cd9e3298ae4f33de82b5722706e5942903a2c52fd731b1767bfadacc95db53619e56e531e98dcee2f9d40aa8155211cb7533adffadbe02854db514105fbd809cf974756fad4b8be94160687d2a6a0f35a807964c887c13eb1e5db9aedd9074ce2ac195cc2ac6e33a45dbe6f4ad0048db00dd6a4b38666e2320e68034488442bd0041539887c2abfc78f29a698d596c53058a354780722e9b74c37e3931280110aab0966415da26c6c42f769ae7e40db2560fed1bd9bc03cae9930b349f7d11dc5269d2c3b2a5888413f9e9be5a851eee7474ce1d0c5106cce24b9e3700d14757f8d7a1dd7471193b7587b192851e867b8c1171a0189f07cc4ab7022a6f19cccaaea6a1267f049c5996cce57e5f463da9b6fdaae2bfdb6f965109c60ee9499c22ba5111a35557a654989111c5330521962d06838e43e00bcc34aa3d03ff95c701b0716651c6a18a510acc6f5fbd56da34bc65f89c59d4a0acd55d1e760946ba5b35007e02a06e2c43ee3eedcbf5cb2f43ceceb22b5038074a8a16b273e5650c357142ab66eceb0e6db50d89797c05aa2e0a8c3b1c6f3c92f1980ac05ce1333f96f54e03beeb39f24b81ec86395d7010b1b170dc46c6b425f1f2fc7478dfd83b3141a05e5d3864ee2ae492ea18f76ecdc31ce6daf88bb9583e1d50a220e16c760856dbfcf53acad19103841c39cf2ea0cfadc7b5c320efa1a33ad51707b10a0b21f2d6d14e41aa07a9a71f51f4c5efa62d5ddf4b920cdef3a5a062299ed029919419859e5cf5e54c77acd568adf29320770e2d751cec116212ce3de7e609c702297f61e18e189f5220fcf6533de62def1367295ff0696da3225cdb7bc58830293a202d22619b016cb9113135ac2d5217e8bcd47e5ff58356d77703022a042f750135a2db19782dc6baf20f710c3baeb95170c8f52278fd2718f3258945fa6aa4a4e8f85a9f403528b82aa8fae236d74f5a8abb3871dd274977d5916cb3acdc53bb357fc960b332a7a71a7f644ce345d4613dc4f0af052aa90137a76ed346b964938246c72596b69727597d811547f6c3e50a8f07c486c3f4e8388fc9349aaffb1be9e6bcf65897e752e3a31439621f12e69a4488d0b45e1945994a023489b6a1067a85f1fe06bb7b474fb7c3c4945aa191a87320db54f92b9d1758fcb8f053d5f9b52756720c0d0faa23372f1926e5fda819854bc24ed810e9674eb21dbd0d82df4274172c949b3d83a3ec5697c066d6b928acac8a74cf99c9a4d25c44e2c6d749e9715d210fbf6a345c86d5b3eb1196727aebb841336503255edaf262b8641b3811ab3b1e83b4f11fae9cab0594010cb029c504b3c926d2dc3b0f3b95a43c4f054862284f0051c3eb6cbbef96270c340239aff45a635093690071be1f0deeb1e1f18a94da1d4c8d89a27e17dbb4d92c352004a25ce04994a2537ff1a404d1ec52c16cc366103caa9b8803647552234f664942c30797817025c31425c2ac0c7d13ca6ba4156386f42d74f7834c3b62679d5d512611c32f5532f53d9b265f3898c52fb008207fc90c2326ee30310875df9eb1cb3a5159d07210e2c6b01368163c80440adde303b0ac818723e70e5350125ec9820825ca4b3f249736292d1d19c4602603b71a5583158538a890955350f86bfb64afabcf2425bb042f17eecb44405614fbe07e39c77dddcbcea680a4d91716dd0e6652387bb84959f4b034e4413d1ed9107bcaea9faf3453c7b9edd90cfee36c909e2799eaee321a4395cd65db5a71c2f589fc1b2c633ce289ed2bba874d437acd380ecb137c486031461c3588b8c5eb8f887c2e07fcd35a3ea702fd472c3d6a85084af2c38ab6596debb2bde60b92b21a358c18116525e18fc825904f68e1c90f3e7736ec44122e2050314905b8ff7692fa260586e0c7c8a798e9e187fc891a0afb7705be8e8a80dad29f0038d4ea272d3b528854faaf7e7b74293141cc372f044e48e84da00c006b844e3226d9cb9e80f8720e894eef990ffd0fdd65844d2e6c7b6a2e2016ea309f52758683097e21af9ac774d7eb912d0cbc5617f8c6e4abadc168a82b45834c833fff605c6c50449f13963d6928da22dc63c9659536867dac8af69cc6f6652225acaed42b0ab34277d64e353221636268b119c54b574071918d3770fd76e84db4ffe17cb05f505bc85b161ebcadad11b60a6f87f9872e81639afc1f602798df45ac7e613bc8c798701758fee10b75811933c2b34b126209eb47020f0b683d6fb5488f0529eacd7ececd3970236db9024457e3d999e503c0be2983789847ea576681fbab08adad6c32ccb49256d066737eea3819d131ee5f93e591fe2e1020c0f395193af4cd28911c8a9619e0b98d054bb692c6cbb7574dcf8a2a0a19d0a5f9b6c6b1ae4b263f613f144d0c9c140de39bc17d831411049a8527bdfb5140354fc689de55212226fd69062e548932bac87d4bdf354056d705cf0d0c4efd5ca67baae1220f4be8b879ff06a090514d694dbfff411f6e3bebe69411ba206885d0b4b7350083061538f62ff1023bf853421ffdbf75f408fec7b9a38ec272145cffbe3a98351b4791072f03ddbe0a9720dca599c25d7529ec2a5013799a5ce3966aeeefe22ddcd685eefc5a53c26fc55da43f82ada897d5ad5a8519db8ab3d8f8d21e5292d588b82225456a3ad2707d2fad570737343758518dfa493c0573f68bece8f5f90bb1dd63ff7b76761f2c9b98cbe0d8b30980644a38f6b40864105dc6792aacd53ee23ff2d4a0a0d6b12ed93340c39f493c856f65f42a9a5cbeb02e09435382f157ca8d2335d0e471c0f231f51aafda1751e404130f10dea7bdeef7993654ea03c9f4ec52edfc3820335f22c8c8da04d2da4f884ca7d59e7d2e9d1e4d9689d05ca0ca9197dbd6e2fe39c8f865ed2a2d2a49392a62258e7fcbd387be1470f08fa98aff438afcca0ba1c6364c960894c87c425ccfd066fd2f8cf544ffa7bd63d0c195c6a2e1528f7985500010d8948ca36b5772f4d2451487604626252f9098c1dd052fc4ea4df7159973adbbc3e04bd70f0670458cab9699d6ef0f75e5f45b9f2773c6d65261dc0a09167eb7fea21626049e3cfc631fc986de641ad88ab0dfb9dba6f5597350074ce971a2b277eeea80069b78c9ce6d645b3471dbd88e986a6676feffc441d640786e3f979f43320b24bf071786d517534200ee825c3ffb2c19894f8f5fe39ba4bb2606f2f080aede0a3c560a51a65748cb2dc863f05c4d95c6a720ee14eda00846b7cfd32fee2e7648d303b17c8dca0270fda4819993fa35d8cf39db0c4395b7cb498936f418a8259bff5077068ba24df3cd0b2c0198d6464f50548e63b7aceeab0b748543b515805cab5eca20247e559df0573ab2f8e5fbf73297e91bdef80475c230304d1d6b8af363f5bb8fb6cc6fbe0ad3d2ddf66acf13083d299087bedf7816a119494003ad127aad4615ba4c8d6aec0bb995eb4d70adea6eccc8c9312f876b6537ca9f40321d7c8c5ffbf8049f6df36036b08bc046ba8c6038eab7008a11dc6a8e5601ece35a732757c6c46cc23229818da7b8746d78b97408e6b20798aeb03bc7fa75dcf2d0ad4fc0a17218d2df5215b1dd2473537cb58820f86f003c086e792245855629b0bcc104c3e758c94198dac8ec2a846b82e31307e4f25a015bbe68a7f14aed784868264391145a55e5e1618845c1195af3a1da6b38a4239a502a016230c153cebef12b2d580b71efa084e0573bec6a52deb85c78ae63c43e215679318009725796310834e79499ed29211233410cfe85398476362b57109a241e23f63b6ea2c9db8c61a708f555e3cdfd7364a847000c81833d7246d258e5eacd36e90d4bfa4b63eebb36cc91f158fefe9626e72c3d0b220f49b976d702d75f12aee012e506822ec6e175639e00822b48cc28d7c897afbfcefb0ff205a9a114b21412e205fa7af7a6e90468d1db114d9787dd39eb4b030bb3235383ed9fe13a8ebdbf82ab761d8cb5ec8b0b66f73f1fde9d13b87be629a89c298eab6bcb7c3cc88a0661f7f5a1472392f7fb34615096cf5f908c0c02112bfd3297f09d2af01046724245f959d4ce807a7284968da9bf078fefedacc77e2678726a902112be0444e36883f58265c44bc7d99dde79dac37296c29702d627cf1443c13689638eba361d0e7515209b4bc5f7c0bbedc01c633a3c356d8411fbd1b37a8850d34d402ed5c9f5c5e7aa09273684dcb613b2bdb2cc8cfbdca2d0c6038c25d5119523db842c7aed3059f2775723f3b49abaebb24ddb4e4c18b29ef4fc315439e7d855e2506502f2736583b85f284cbc266faded287f1b00eb1adb1ba2075ad9f5225e38d0648cc0fdf5872bf6b80d349aeea96777cd5a0f24e06f2f361e271040fb9448dece190359c509c20368aed02290f950de516b1eb505715dc9d401cfc3d1a48e98e87b64399de6405446e7de1d51efa72b75343fa93feb93b8b8caddfe19925b87a234eec3fce01a93099bcddf42d327ce717a04cd8ede487964cee353e33d4e305be6a160bc0547bbe48815605a495e2a88501c5d3e48d1623fe4cb146fa7918a7be730419368735c38bb6694557aeb8eb2184d4001313cf45342d099f015ccc52a684867d7cbdcf14c8a0a6dbc9152e753470854f41ffc652e0fdd01abdee9a9ab7b8dfd445c3e4b02b0599e4c7c9b50a6e0a27ed33e713ac92c871e0f3a5e45fe58e3febefed42878394b1dfef324f29e26ef69c13bcaa3fd1d04fc93bca30e2f2c4e042df58388823f47fcc8b180f6916c2d78ffe6a50619334bce731597ce66da196ceaac06f34fa9251802f0a6600444db0933c8a4e9ba44c9a3262abdd160a242bf66c48bf78b43e15151fc4742c5c2a3e294d55b96aa7d322cce804aa0d0275427b5fb05771a73bb7afa6e585e6cd5c8052ff9c162ce69913bce37cff8627103b048cf1ed1a3fb1cb4847798687b23c75891fadbf79c382afe85c9f1600bb4b174ed1bdccb5d7a1738dd35f515b35d7f6fd7bf1e46a0cc2d0b8b4d4ef110393c1595d304d8987de7b91618232177b9fe58c07fd312715e4af736c77c25cfab3cb59f58839b5348154e2406334cc41eb5fa02999a439e9f74e5eebbdd33b77bd84ffa471eba7c498317ca66536e6a25d69216838abee08c49244af93df1ed9f08128ea4d16e6ba7af918a7223043f3788a61755457cf08775d59cfeb548b36b8760220c6c89806160b540e1ffeb8c2913e09a34041aa53ba3aa0c037a09c961fce59709aea16b64c96d77c1c4048c6ddc15e4f0c03ed83e877a56d244c180b16726aaa89b5d0b70fbf5c73eadaef6161f2980aeae7157815d3dae4d72f875196453cb1982cdc3fcc7656f81ccf0f6ef4ca60dc2dd484c890e51179af43efcd1c297be444c8ae199c4bb11d3052809c52f8a230126b7a04fcb161a7dffe7c64234d4addea8a6a34e171b939a9d8dd27c91272904d34118d10218f5450c864e1bbdfed14a7dc1c57f83cf08026ab202ff11e3d1f44e3e6fc09c240c8c45139dbbf1b2479b8216c42df2ca42b22c596556574cec9f32788c5d2f065283207ca0936fda575e027803b5bdf09523c337de0c465fe4a4fb36159b73fb3d6966902f1ba626207d32ffb532ae8a8b7215417a227e734c9ada1eb2a3a1c31c401f72b0aa18c3410f19ab9f6c25b66824fe17b47562c2b52a363b9ac5f046833016e73d4633cdc47557d6d438b546c76d1245655243c183015a9894549b1de890e95293c1c03f32a7bddaa1b81c2f426dec398da0d254191f86afc014d6f450077de85439ce2ff3801d804aa060a89884eec647877d2377086e7f07caa4b022cc28dccf25fe878c798b9d16d0875a47bd7f34defa01e5eb82e673294c62e798a8ee19cc80eec949a9174ea05477e4649a47f51504bf0a70efd64c3f20e8d6a32aeec7f7dc9d3ec66001caa3451d38c77aeeb732b6588fdfc8d1f0e282c601798664ca38a4044c21584ea21b8b8ca508e7dd6e5c0b877921813c11cd5809c484300e37041869d25b40a9136d4f334c677d23bcabcf65871e60317a1fc58a474c78519d59929494d0e536a2261c375de7510ef6b053c47d63c57b756829b57825d7e90d45f003f365239258f1c12c643c62597034f4c38c6fb7defd07f689e761befa6290ff1c795ce8ced2764f9a7036390a04628f7accd73a0bbfbeaff66ab259b629cf27b37942ef7cdb8e5f6cee18147deb6d96d19aaa7d2af5adeb78d797ae6e088e75f70e03c89c14530519b25aecddcd88c87231113adfdc6f2497ec6828d9490f310bc8462b8e84b15041eb6c3b61a24fd23c423a62ada1b859c7ecc82c166e46a8700382e116e2b53c00af633988d9940f5bdd17f8dfb4f37615d3f9ab2fa46c37d7ed6540eb99c52900b8ed3e8a2a662a575c8178ffd6f204df7d1e190080912502a6a020211252ae9fb1717a6ac25865bd106a0180c608d6d08a748286ea618e3a0087225f330c4dd25fe07168b84d19614267b82cf40b22cd1133ca6a6eeb2365ec379e1bf123ab4cde8416201e758ea823ff872b8f7a120defa9efb9a3c7bb1a7ffa21ea7a701c07d0d9d824af1d1ee633f80e6e82c1db209511a099514b8a4b60fe3d678a3c6d3242db82898727e884701da109cbd1189b3370e874af08e78c9631589e0ae2147f720b0a06a9bdadd0376deb022d9e22055d5638321875f0b49ae043c8f7b50c3c4b3221dd632ae7168766850db3293906cdbd1f4485d768bbc6627225af49c290c043969e1d57c70e3033c432d2f20b0d1534dd80f86573a059c38e461887f8e891b49ef066b500085449354813210ec150c661d47556a931dadce2228c41f44d9d65ed0f4d8f3be62e2902cab45acc734d801fea051a04e667f0dfcc4239812f034e3a90b5f366d1657c0afe262aed4f072d3ea3c18bd25b98a91d1653622803d9e4e670ce7274266c4da17d1f823686b502d0cf62fc4398268cae400391fb3b9db102a397bc69ac587e1b758efd12f279ba492536620fcd06e4b26c047491f6339954b4ab217c6be35b61e9da6b5e521c1c2d64e16a1842ebdd0498142b50a3f3fdd0d83756f45dfb1a5942da50d6ce02882af71227df6524c82cbb3934c579fda971e2df265dc28efb694a12d2154e4eda2baf9f4f93ce9e3117d4c21003b0a7e25063d6533429caa14fd2910e7a212e426e238f25625caf41adde91be3c0d8dee3515a1468a8cb47d9a87c624d4851a737062a80baba2c229ea349b79cc353ef385de17453831158438778d895a7115742ca37770dabb8c39cddd43b584b3b7fce3733815578cf049ba91d15aeebe6ad086495150a4511bbca185a949bf8b380c87d07e94b4b24354eacc2acc627a61353dd362da1edf697cc29178a880a9a8fd50f3402679b356a72c8cb305b34ea527ec99058a4ac2adf58dad0ad4c209be24c6a30579a24a9f9e9a7d25793c23d9e80918c702624d01b99be69e17d09d161cbca07b965fcced2698d1c3088756475ea77683375545a36b885855a895d686dc0366cc93fb92695078c9b211ee9ed5f1a88726d40d39df35c5702280244f77c7c3df7dfc06ca6828306286b4e037443904be410b9ea0d39b6dccae6788099ed7925d4c67a4dfb83cb1f4c2e7094cd10e09c2df12b11da9ff30c3607e5e29039fcabbdc1283b23905ae9275afb4909c442e6ef8b26a34cb29d1e70dbc26d7b9c42300a98bb9330edecf370d072099990c5158c89939b6ec20e4b04846715827bdf136bc185df993910f3f4468be6e70ee80b3d3cb29930ca4efc5e0d456bd1e287b0a9b5a6c479af2b6a9a7cdb27a9f9e1b134d764c87a6d1ad6e63fa7daf3230b141510d8c91f20de739acbd036a8aa543294cf996a3c10205eabdce5162c73bb93de1d019f8efbc497eb1ea602c6533a60374831246f45a154406e684e45aba0596a321e394b5c00e5994678e78bcaf4310bdc405ad2e827c2a13852af013b43cb7b9bd2192ec1bd448625e81c33b900c2adaf5a4bb3239f270aa402bec59afad65c3a77dec0027bb7fa7472a90b2e47a3c260533f670b2c1227914129dea08a12cd75720da6bfd6cf6a63c9cad5870fb66d0d300753d08c2c44ae70a22fa91697bae4f83ae41ac044dc83d2f71facb0101b433a631f7075f4305989843b005d14af571d322d62ce10e1844211e41d889cf9ec9b2df0d5733ca83a5b4b5c2ff701d5cfa85719e5c2b0075a5bb6196c05aa1cfee818513d311dff72f9b65fc768c7753822883ee914dec8c11ef253d2f16668464b07a2c754be610805922fea0a1091025b28b6f381d7c8fdacd2b450a444d3c057c17d7b9b7bcd688dfeb8e834e22524a767961897909c5bc68c6bc048f7901845e52e9bc7820795e92dd238c392ff145b7edad47f4b279d1c0315a180878ddaa6e828f75b6eb357546c3eaf8d31d11927729dc9b1e290165dee465deef33102d02d1e88b76669e7ede6d55ab6bf75677c1d5b581977a66e8f537f4663bf4fe334fbde977dd5f0c5a37c94da6fc69f8834607fa7a7581992f79fe9ec6d29d83f3f74eb112421ff3d8e42c2ca9586b9f05bd1f644b2811111cf02e53b92d7ffa63029423e1d6881be82086ef54aa49d6387c764684479d8631829babc9d2ecad63d2bf1e357bd751d991556e9d051a8063155dbdba509fd8bc56f3b9119c57e8f4190f0c1ac7a4cc3be2a95df701bcf02ebd21fb633b03a0e6e3e672e70b5b77f501614e190d5e7775b85674ae2fb9b41dde970dd27e63067f6b770ca2f272a5e8e5801ed4bcfe6214c4586dabe8257688408a151f876158bad9d9d14b0072aee50fa6a07524276072dc2b12a04bd04e6b6f67e706ed4947b6ba67c423fb922c29880b6bfeb9e9c8c54d0a340c6df67f5fc0198cc5b4fbeea12f8d535961e0f8f38d421adf7a64d9d3a996064ce32dc34a2c6aacd743c3624162841577e4c16ebddcbb9f7442bf4493f1627c4004d075b07c6c27288bff4be9061b7063a0a2b3cbe0010d1c092d81b68b1ec7db3dc7406970243dd8bd76e2475161c325caaef755534e518eeed7f2b767c4c715e39c577d1961c783c48c00713af2fac3f747a03183a2ee72d1629acf409f8a12e867ab93c30df97df6968d64e9134368b8e7ae99fe118a87517711bf5a6d3c06ec28dedb337640a88cff7ad4f6ad745db702e8c7b6bc95264ba088e4879dde0a097de416782c17ca8969f8a8fb6f4ed3b3f11cf8aea4bc60e59433eb30268d4bc130785b2332dc169b68ba3ad8c01b37e16821e383043b4450d3b8c689c0f805b568ae18f921f9bcaab28cf3c96df2861d633f03173b14a8ecbf1541aebd896e7b35ee7d67947380b7e968e81178a57a78dd1baa1500e138514768170ae1561770dad26c6fccc77fa3ea11482dc6dc7396a85dfa66f13648c1403d0552c04ab2d2962cad9e5e63b49a10d69fee1b978dc197e8f6210d303c351b26a5b0374ec514372cb0711519cbceffb7479aa4caeaae02f3fabb7e7083ee5829f24a4ae8064b8db8e8a5c70f4650d0866924def19fae1c655104313ac0bf8a5f06e136185f0dbf9e7f568bbb76648468e6ed3459c9c233994f6d72788aafa3fa98715d62887d340258b9f144bde735316489d84070fca58a75e49297e38bb2bdab02d06114c4c7cc28c8823eb6e3a28f5c8c2a463c1f3412007a3e4014cc1bc20a70278a3ccc7832965146c12427acfd477b7fbf49f5f7699127edaf6ac225fca6c48114ebc1999ae1c5982c60dc69704366c3831d2c6d3b1dc6cfb7b087bb31ab2c38fe107fcbee32c136a030edc25e7de13e411ee9ac17f63b201cbfed7064883cec1a0c3345c104b79a1b1551b604238f4205a04a365fc4de4dfcb2ae819414bb1956ec4fd46549fb66b50fcb337d55efee3116e72df6eaad1d2fe6f8378113e3624f02638f5ad8db7d99ede8462fd9d8537d3876a708021e3b66c5699ac789a4e8801f869d5006c944f74f8a1d7355e283673a1b501ebbeac5ae534d9d9b298c07c7625ed70bfb9d4549a7875361010a0466304a6096f802b263ea9c37686493ca7c03b23f07d8393f00907d0c7c8f285464c04bf280ef6a4c47665a9bfeb87078696d280f8e556eace0f28d8a4f21feb795d88ff55295793d86b6193c7ed4d67599de01770ad383263380211023194feaaa052225654d307c0ab5cab9524fe872ca499dd31b0f0eb87b57a58695e1147732cbb5fe90e993ba6df8306d8d1d4a7d8e32e16682890ce68065b46404fc7d87d4c8192d0effc8392fd958a4b456af757a9a5e21f80e9c96aeb08118fb3f2c0e795efac97832ada1b752c28a6d47d5fc4f62526030bb0c4a24631e7b0da0d612e28ef982317d7e76870b19556543d5ea8282a8c3def313771989296c69ed9ec8a18bbb07f9a96152c9a4c2d12adfbd05e7bd1772ad96f6c2d47cbe31354f0190074e9b5c2ee2ee44fe34361b939d4a97bef11f896eaf36e268930e92df1030e0278caa4538ea9b08bf0bc21489b786918f5d9cca013b720d23dfa11c199eb4c811d05881a803a58346a1029ad0f36c1b0964050116c3803f7aeefe5eb1f9e734c534caae04d2b648df92098cf25203f5cf3db1d59b355a92ac7b680d96915b32da237268c451a543f554878fadd66023444c2517a7dd4644ccb3ab185554b881040e7dadfa12cbbfc82c63f07d12d9e6ca05e181408390f6b55914f03d9c9b215a6fb0b90a59f0f15d384abf94b4009a581299f1a662ca4532edb64a12f1d8dd5604505fc78d529825c32211fb91eea58e74155c7c7931ce8d1a5a55f7ea6ef12a239685cd11f5497c9c557700b4b204e8fd941c892d8169620ee8013d14b8d812bc33fe84280385a65d2fbdfde67083c37b91a54c2a74a80480f840a3c64b2b4eed3f79892d3645cc62ce36498fe008fb82e29905f7634527de823773b20729487e9d6c27bb77902c38d8becbc5bfb7aa871f55e1143187c8e4ce13b4c6ce2b407dbb00e2540f261b5b7cf64d0ff1388a36c40b02f0b60dc87c521e0b0ca0a2fb8ba7d6d9379db2e466253a45975161a8e44e03bd28fea338eb8d3a5c6ea8136f00aa77bcd8ce22ed13db2f1c2659c53cdc3e2c240f978934705e2aa5a4ca470c66df14f52bfba655bc7068bab301b939ec94beda6d81558bb146c1d59c75807d42319280174856bb5ce4b6bdc474f7ba9e43e4de14494e95e11f2db6d16a1015755594428aa32ab26590edaca060272a491ccc29c7a4d12a73365334847583b280788b8dbb590b64933cf43d4808357937ace0c0ee525bbbe9f0bf4ed3f38dae859a481a7bc8aa6dfc57d0c04e950b3ae3e2380894d5388fa8b9b0aa90c7a87e87902ce8f0d044f978b8a720f7a6c39239ee1d6cdc4a03675c8aac7fa36748861fa9bb791b9b7a7c1aa842fa482ca2d786f8ac900b472746f5e2667eb19d2c5203e0ae0d226cbc376a3a0311ead2caaede19421dc1072f7395509ecb33ac2161182657c884c01d7dce8d8cb5f134da99b76c51b1ba52e22907d1429be9d2850bc3fe13ee695cae4253dccf276d2addb7fed1ada43edbb821f91c626b2abe5ffdc14c5e46d51de12ee9c684924a87e57184b0cc7e58923df3d0cbbe15c878725adda3cd3d3d9eca47c54a62423e9b284d7364db6efe0c7feed915edaf949feae35fb5908ef6067aa5c607860da6a533b50390f314eeac241f5c079da5574fe2fdbc8872dd89de46d266677f3fa66cca11212b8f8486d4346d4cc6227fec2e6a912077aaec8ae53d30c46d7543d138365dac39c275642e2944e848b5005c7e30f2aa2cb46e77459392857f9642781d5fe5113eaca2eb9f904c68de1577d701adfb6be6714aef6c3d242bf98720db9ba0947c5de869b551458e9647025247163ad5ec3cd2efd74237a01fb456c211885b5af768ec1b51ba367ee391c0e538ff697d07fa2be6e17679b5b78871eac7e4795d530ebd794ed03ea9c406a2a1d5ad66ffc57590c16343a8fe219a598fdd1602309a63f07a0cb286931b4684d6fd42efd5bbce792a3148754053004c11a4c29a1580a198a0fe63105f7f211a19a7be3884532c83272fcda0d7b073b451c0c60b886ee67cb6814fb31c8b91b1e724e5584d664b06a5272518234441cc23966edef52572a3e22e004cc19d670fcc2405f924bbf32ae12a72400b30ceb4e5db06c90e0a76cc7a1b44ca1eb182500fe293d2de74793a1dbc952c4b0e99a9cbf1209443ec415cb875c0dca5584cc558d403ebb9c4091c97563eeb7b976b874e3a0d69cddcf6905692339a4936a094589e88c68e0cf38ce257db2c63a52d32024fd7d3eb95fc54093b7d88d3328f531b453e74aae6e5b97880aa89ad0f57c613152e97f80ac2c7c1e0e182a8db30c3b85880a09bd3e6a49da527f49a10b4a8030ac9468854305e55a503ff3c49cf9c994c0728760cf075838197587b5ee66d03931dc3d83294390cf20e6f0d36038543f98a55981580561875fd83490ec6660f970e77c77204e522f8d08245cb56d9c8de7b6fb9a59429a5145608880868086e2ad9ac7c89512d2dcfa816175aa45403fb933fa15b17b5d2fd30cdb16c2bd777b6957aa7361095eadb67c7888f4b18b18e56f458bdc76dab849590f9aa975436d71432edd924104c9ae69aa3738c1c9dbb9f12cd358e1c97fb4fff96895cd5c22402c72fe7309d046afcadde08b9b51138b56568b41239fa69331ef79ea905b86a4473eda242da41f2bb61606172ec68c506b6cb6a7bed99afb2301de39ce65e8fe6dea369da6363de5742666b47942aecb7cd58229c9679cf6399e4d8e086638485d9916a8cf70bd8998c46c6caf4bf57c0ca40a681fd9a7bf11e762623f5bf2fed8b9589ef425221d5c7cc70e10c9b1f17b524ad37155d98e71dadc02acf2a21932dde9db166e42fa9f68c57c160ca5f9880ee775af855ec0a7ecbfadee4f71f1289d4321b9fcf471f7495ac65ba1d71e39cfa9e99cc7d529248be3d49aaa2cd8d87061aff978fb43588e6dcaaf0c9acaaec985292a00b3087d1fd618fa32e335395e6485fdf6cce5548cdb9a8ceac3249fbbefcaaed553c937f67732417bb04be201aefbdf7de7b77667e710bac86201620a962c91a9e280915cd018a9118663fff2bf95bbfa8defae5dbe0b7a88ef5fc92ea14b9b19e5f47be1866c9bf5f7e0909f9fd25a736e47fc986f5fcfcd33d5691d24c8be4ce49f80bb4046cf7642211c001db9a1e6b352850fbd94fdebb807ceb33eddca3dd98f7eb3e1e7711b21085acba923906f5701377cf2954b3cf3f5e4d4a6905261889d38e1311a1f638f5bff7de7b551585aa194c206c1486797229a78c52c6f851057e37eb9b7587880fffd4a74d876fd0aaaacaa29dc7f7f8f1afa81101c6354c4d6fd049723c01e9b594fddcda412275116c4f1373fee6f8b1ff041fad6a3f032db7b5f319458eb0dc3e57fbbbaf11ab8efeae29c70fabfc302d13c780822fa8a1f62f566b5a68a484a294b3af6f6988ae4b786d77777fdeded0e45ff6c17ac247492adbdb6715308dcc2330cc2591e6e4eebd3b0c4c0737c01f7d61764b042fd884224a6a8bba4d2882a40a334685bfc4cecc8de19c082a3b51e1ef6e1c2a84107ecc62e2542baf0205ca9f321c78822d1ece49259dddb7d852b6f5b939cad7b44df5b08228dbc94dd5af54afb2d1b8a9a217935a2dca75fdee751ae294bcd0c967f6df67faaf165b8a8eeae55fd71055b563992c93aa037b1d3b9649ddb14cb4ec5b1b227bf9abd5c82e8d76d877f1772c937a22a95822569b61637e8661cfda10a3bf6887bdf619ed3230da6436f2c294bfdd8e65d2da1118f6da167f88c52a2cc3fc51fea67ffaa3d0ec3fd03f6986d1aeb23ecab736f9abcd902842d8199a5084c91a96101179811dc71c23777777777743dee96502a43b881934cd8ef14653d3afb272e209dfbf65cbe1a6d6b257d930b8d50441c584dfd1c0942dc70986fcdeb146546bd93c84513646cdadae899fb055a8fcdd831a9f445a8f2db713011c50e3f76fcca9652ada7da2306ae03f8dc65648772c931a5613287cc0ffe8b3c032a9309aeb35c2c9099df35d10698db120350728b4112eb8e4cd7aab7a29e5e9638c9176dbabaaf89272ddddedb8b79f07b085793598479a6367ee244ada00bddb3ebcb40c93612769254c5b89d0fa6b212a9a1e69252db38d246e1d54c55ca63d2405f83075fa81db986e25224eb79ce36d4aecf33b60698fe6fa75f0ef37d7bfe1688e57ba89e65022c7cd7623f5011cccb46308b7493e675d9f2b50717777777777a7e15524b5b47938b55b45c5e70115f9fcc68827f727c92d98c250fd0cd5bf3bc0ce20b126ff8dd46663fc312acc8eab27ae65fc7fe0f7d932fdc3f38144e490aa1ec48966c77f2e0f6a99ce797c8a9669ff712047e24a9638913b15d5ddafa8fe17b7f3b8efd4b4e7ed592dab6c9e8c52505ab0aca8b491ed232bf3b3323e3be303b7cf4bfabfe3261d5fc158b8f8ae7fd47d9ea26700f01d2729edb3908da1f2bbf2cbf2fb0cb43148bf2ebfbfcf3f7aa687ef1808fd8e83bc08a267fce7e646cb9cfcbe045a66fe7e8f8dd1e2f7735a06e5f739d53229bfdaefcb6c63f4ef4f95130c9a9691bfdf22d8991e6ef217c0778d8200ecf7f019ee817901d04e068076279589b00c0ec202e1ef41601ecc008076b24495b0327a8ad277cc84bafd03437b7a38062ba38f1ca9be7fc3fd650fb493946e6065b4112373a8fb387a868b76ff012ba38304d1425d56b2bde02b1808e79fe11f6d6570928dfe0bca03ddc1795c509e976f6d86cbf78b8bd014424225dab53f93dcbb65e3ea3c3ee33fd2e5b7965ad4979627b5fc4bcb934a2d6acbbb501d2dafd2424b45a8d49757a92f2db4a5e56b9a443bd2bbbc501da46f21bd0bc521626bcbb7b0ac74511f49b2e353a48450fd5b2505a57b8ca0748fbfb79827451d24a508a5c8ff8d64a5e40a254aae1822d68c3a9047d19c3b92362561194e8405c2934c9fc2081be39fa4fa476d88589b6a8f615bf7f8748ba48582e87e80a1f29d8b2e6220fc3be5c9a69a8fd0bcbca739ef22ecfdb9885d857613f3942289423b39bb49faf989fda5cd68ecf9faad8534e71911b1fe649bf734e7f551e7d99825ce73752e8409aeddd33258fb5cda0c8df26cba63832af64a45d054eb69aaf516cd9af3e13dcaa339df709af3e769ce799a83d47b06c0f9c0037a8f07e1c264e7f9617a0fe0708f613e6c11a2b0ce7cd81e0af3cc87cd51d8cb7cd81a85c5cc878d513f6cfee32697d66fcdaeeffa311dfd17f69dffb404cd528d131d756bd7b434eb8559d5c87f36c6df071f702eaaa31ff39f229ad6d8ea6fdafca70de03aaebfaeb7de9f47cb6054c7454b45bc4a2d8ae33fd5df7fb8731e0fe23def6b1a3eaa32476398dd12cd70cfd1dfd918fd03c9c54b01a07be04214525248b1822544575811450f1794e90fc64a5a179669a3938992227b78c4994aa57844a1d72f6b37efc41885f8ecf00419720488c80f7f7c90532281e66e34c7afddb37ff2dfa9f28f02db56ebfe016e07e7ae658ba47af51e9c15c368f7de5ad0ddbd5a247ef54bb2484e42c004312c922d08fd00f3dca965da8f00b9fb474913040d0c9a206ae6732796c7b4d1c9f60c0d37f922a9a97e4023a58f68f71c9705614135cbf5f38efb886247ba9432be1aeb61b48c254fcd390ceede9f26889a45b2482a0c9f33d3faf2003b61eed20e42882d84f0c97d01b6a7f9b2133e3929ff3bf5a9392a66778a69c80fa339082bb9c1680e9e68208924a5255f2a7c182df36685347842b0c005ef61712b6d73f0b7565b49fed6599709435380f3df74f81ed4c26ecb6c5555951149fc8486113602a8fd005819350b847ff69dd4fa4facef1b5a06b1a26db9fe1bd53b6995488bfec6f456bd7b10cd79b74ba061844d738fa399ccb22a8b2a20610111352ca9e2070fdcfe60ac242cc2ba27a07a7c7f99e2f7e7b204d53ff2f84ca43205ddddddddddbd999953f5bdef9bc1425498fed642217fb955affede230d3d226c619cb431af13c0bf8b4b5d1200d6a5b519f261364655f7374687ec304278b544613ec9df078135695706001608feea5b1ba2aa91c26c0c5b8f6d5defe06a5c82eb8080fa2c593da9b9b7f58bcc8ac824e2eed5bfcd7d7485f9538584adf6debb67a91a312c6ac48a6aece2901a755cbf0125d5b74e3b02bb68b70125d5df9a51e3d6d66d4049edaa6fba436ea55769302b9fbfd8afe047988db2f11949fa25aa351ba36b3fc1fd3d2a7e4d73738594534888bf44cf917e3a49464ac34f34cdb54f1cc113b2c0a28a27aa30b283bbbbbbbbbbfbce1239af3282bbbb233183924a055955954b29a5fcc5c1c5954bf9d8ab58ca97524a29e525bf92cf52be94ef524af9355d49995205cfeca7c84f59d22fe14b26b500414a1655fe72ca1baa9432c22259c94a56b2675ba206bf2762ebb5d7bbe4252fecaaaeaa72f9ed52be5fefa35e52fe5cd725af21cdc9198934278db401e48f924c96bf3092ea68c123bd80d12e0ec1de92b9ff6a8c7f3d16af9557f5d7f6aa5fabffa25b55455c98fb1d14aafdbb31dd57d74523086a5bdb5a55fc40edafaaeabbea5f4544b5f0f923dc1187782185a8babbbbe6f334232dd3553d5dfdb59fd588684053684a5c4352dd352aaaffe3ae7a2a1f21d5130db71a1a11043c134d1059106500af78f90e3629f5432a7ac6c537a9287e20fe882e369c97cd825558190ce43b7885da2a421b0325280ea93484b0c2648f4a709c65544118087f528ad089d048a34052551096a109c95a7c479a5e05894aaa573d7503ddb0a65d454b22a25e283605b89ca501d2c6cb754b0bed38c0f2582f8b36447b22e5af0991ef5a8aa6aafc8b0aa9fe2854f3d9187f4c8ad9d1683e349e0df98ce673423b39a7960d557fcdc769e804aaf57ef9b847ecb15eee514699a67613d7cb1651349a8f46a4fa47cda7fa6b1a0ce390da71488d02f8cccbcb4b216ae97964080b0ff0f4a0c56b2ec6ac4996868dc988dc547d768605a2eacc6b7c8281a8e2913655f13bd949987148f552cee9581cb231469aabbeb748e409961173b040545fed6063220e6ad5d35c15a4399e8da9e290e6aa8f5b24d25cf511c84da32acc2e63923294b22485494a938df1befa14356c8c2daa101655b18a55ace21235b83a95cdc9eb59db56292b592d26b74ed688f5963569aefa8cc9c6545fe1607aed3226b5fa2ef5fba8a522e4f78cd2d6d75cf5232350ade2904a2e4c4575b4e0a9ac80c508c0c6b48b9e21798b6dd9d26419300c44ff0cf6fb01d8189e0991511aaba5aed49d1696801f2090a8ec3dc0754061bf434265cfb10c8bd23010900ac140f4c388b131fd9b5fa81d120afb6ca3f1191a6c128265e06020d6092d5198f153b59f024b44dcd188f007b5217436a65f02f12dc7183b46bf46ef7336a6ffd1086c4c3f90d84f834b10819dc9e9135448985c992841edaf44f081da7f83024bc34db08135310b6a3f3ba1f5d8987e23cc1c3b70a003d8890a45d626c984103821054f54114515422ee650f5875558765994b5aa5795b4a4252d29ad4a5a6e5995ace4655dd76549f9efe543e2e5d631c9676a639ce20966acef40e882145a60032940e10d289f30c0dc3be6afa1d1324cfdd7da68c87f4ec39b72cdf991298411d4bbbb7b66d4db63b532d73fffc732da5d2f7726fb8bba6b996c2e32fd7770272168b4015cc8ec2276a80d5748b6015b98ae81aa93aa16bfa3f898c718a3fc527cd22f4a52266e58be65465a4282fecadbf827511dd2ffaf50924e0bcd912b7265930fd332292f9fbefce9332f5ed26e0757fbad9e0ed23c5a98d5bfd8280d37b17cc98685859624a356be6483576849d2120448df42758adc90bee5576849becbbb501d122d72d1528debe15f0f69a906cac7165a4262e559569ea56483f42d4fa2b424ffe57da09e96e4cb1739f99c12f6a5d1bfb8d012fc927c97137ab33d7d4a734a1865e2e6c5eff04994462f6f83fecbbfce0e3487c64dfef46de8bcd01bbfd112a44cdcbcfcf649380f3cb8bc8bd7d9680ec7c3db70f12fff42755c5cf840751bb47d47f3f28b72b994bcf845edf01d575fd022a51af1e54baa03e5e3ef0cacb3946dfeb5a1fcb6edf02fb6d26f2e9eb51e4af225b561f91b3dd022f15bbea661de076a6565a58787a1392bdf032d723de97da03012e9577a9028efec6cd1f62f4fffbfe31dfadbff0b2dd96cdb33eac58b67d48b9264d94a92966c587eab94f4e6e57ba0392cff428ba07c4b29622d1b0bcd2992c4a27ef4501ee226ff295aa4983bbccbf3f02e9c87dfe121e0e25d68897985a3f0e79f1863ffc418bba7659a5a80ab3ab287cd8361109e9c9c9c9c3ce9a4e5492dcfd2b2b2f21042f80be1ca8a500b90501089f48c62617946b1088d1e7d12dd1529b3ef2dc3465b898718bef523ba5d29ff82870d66dbb983e311f76601aeeab83e669d8f2e6e2db6d2e859de074a6553f995bf51f9951ffd0acd2932a2372d9e85e69446df92c3f22b6f83f42d54e7e549bf425d9ee517a5f23e50f15b66f4f1615a46fbd8f22ecff2375e28937e35266e5ede85e6301337f9bf50a2dff2bde9942e7ac342a2254991f06ff952456df8b7946cf4b37c3f4bf52d1b7c162fdc40395979af32b7d1cab6284ee1a04a5086ae66898347ac8a58556155c4f8b16dab112d6361d18a59ec526af5d6d659a05a9f23fb483b7e0c63eb0b13c36abcba5a6f55494400ea6e0c8d96895b1bd6b8b5754dc01c4fd6d5e233cdc0ab906619bbb3035539c016067b2ca3ea99ea7d9398f7f5fe3630a73a456efa313755efa68ad45cf5359d91603ad529025fc7fffaa63afdd8b3fff5374e4befdd6f9a9690d0fe46a3d9f7976eb2efcfa874acb2fedd5459d486e4a6ea1755bda43c9aab1e2e999c721b600bd39c179c3231c3dfe6f1fb76830c33871272878852af25b7942db9637c779a59716af5f0698c1ae5bb69b7c32fb975a72a234be1d45ac6a9106e34cdf9efb0a92f4679aa90564cb2a7e2637585831f261d4e40263859988da359abadb0ab3bd346dd9936eaafdca9bfa3e94c1b75a68dba336dd4d58ffab5ac336dd4d58f7a94695df5c65495fdb1652aca03d686f4757777632dc180f1855dd88561bf3ed37115c374c8efb7beaaf2c52f3d066cc5e8f510fe65c9e622dc4af4554ae6f428740aa779b40cfceaf10f1c3e83fd5221d2ce2c2231e1611e1e168a51081a279a206c2490c33749f56d52fd09b58c91ea54b47caecaa2e6fc87e6ae80c2ec38a225966b37f82041e51729cec6b41527a88c634dfdd7c6b90f9f2ae424d29cfc43cb30b740cfc833f28cf05c174ecb74a72c3830c147491a7ea441480f18f8bc797d582346d967c9d7c968341a511ecdf5788fe234d7b2c8cce981f1680ea7b966ca4cc4fee8475b8f5eeeccc9ce9320a9645433a2ddee12f568991ded3eed465b0f1ed786d32dd1e82f8ad3a365b41fcd3ada9de934da83c76673e22891a30a737be43497e21f1bc33f4f5aa430ad24fb4b5536d25c4aa22aa4dd7d920a739fb39062772f7ef9a043ba52bee92e686f5f7f74ae137cb086ba404c88420aa26802a4490fe7841f0819a262e80a9c17e1f3e626b83bc2686ebfe952089f6f588cf1db234d779fb0942412e4e8ff0850f7458fa78d59f818c2e7dc2789e1c266deb78210c1c14884324218a18c3d56e63d11931b42413495dc97f333ecb230f08055c39261bde06307b59f790a242f379a2036c91448dea8a2300c50a3f6a76c30230d860476d4ee729e76f5f503927c0f66610a932ba0d9990a84a9409aa315921e2f08ed46ff9dd56f8dffa2f657dfbdda1ffb2b971f2b49e97b1765fc6fcebd931b179f736f989ee1285f198250e51586706c8c3884a8aa8818e11e9f277e9008451154451c211e8e05f7f0ce6e518ec5a1c4cabcd77e4f3573df66ff64e333ecd27bc650f72bb0323808d300c767d809179050c0734a0953bb26ea50fbd98958044c854a2cc739d614c453959db9ebd75c511c1bc3cf33b05152b3263ead6979a8f667198e8d11ebfe10d6011fc818a59cd31b4248df4e77c37def216456a2b9d7ffe23187a16e2ff57ebc753cc2b131cf46c97beffbf1d6b86983767f9ebcf71eed98194302495af407a780c80e38a1491a8ea461a887cb920fc64a5a1766030ca802431b03c7c6e038587186cad511e67b7e1c4ab40c7cfe1c3e139f49cf31d31346d9a24cb99394739248ffdca92a81a3f4de477d8c5a2d894671dc16e58e8a34879bf89b9bc2e80182fd96048940a8c9144d96fc6e8e5113e68d9b1ea120173c7eff753b1c24929433987630955ba430bd6bae39f7e798721252fe9679d51f867bf319c9a209f5410f0c558f9144a34e7ef74a794149f9744175da3d0adc61f516ff686ee31d4e35e74ae48862566fe3a31f3561763b34da6eb4017c8766ffe09dd1bb9f7c06c7d069e834f444e0dfc1da8d3a9d5ca3a3772b809c28820fea84ae9b38c55120c211d4a2b2f7aedd9bc15bf5279fc1713a5512cab57e4c76fc7a04c5fcd66c306ad29c2650279477dc04a46d3cec376e9a1b21991da7529d4aa56af5a5f89266b448454b11a20c599d016177b3b62c380487c2b0a68643d8cfc38c683698fc7e036c614ed39d26889a57a2397f1eaa5e92937fece0f498c2d77d641527e947c5c5f41929e7546182930376342a131111c935c11d39de8e1e7077b40cbf738eebfd77b40c530934e73317a571d39cf737539ae66048e1247f600bd3b9f854e90b7763205663c750adc758fb9e1936b37fda8cae728b464caa6aa74a69f39292c867a604924572c867e2b032b62516555aa92ae51caafcd114b39b291a4599f457585a3696ad9bd2b2c2e4faf547519040412f5da8c63fb9497edc3837c9f738cc9393ea30fe5cbf29ff86aafc111482b40bbe96c1acb0ac76ff6430350c6612c8a503c12a4c2b073b23879080368602aa7ccba765e6cbb79e681994976f0db17eaab47c50e5bf74f1470ef119094487c4229b8aa7caaf76aaac52445593dc8fcfc6441aac49be3442851a7350e57b4c41a0d1136617e5472776c6c64df245305150a50baae4816098cec483e48f829c562f83dc6423bef42bcceef13c9e8d71653f9262b6f8eea5e24f57da8c66cd01a3ef52de88ad44a31631a24bf8c809f3ed54f93faa94ef87fc6a0873f4ddd745a1b2b9ceb1a892bea20dabd87b4295df99a49054c29a28ecc2ac684e919beae3e7701c88e0441a88501525b907bc0e754015e9f7edaaac6d732fa84a22cc4e02499c940dc7671e8f9c23f9d8c9b68f07bed583e2f38654989d998948da14a3689334420f757f5b1991080b84e4665a0d6142f8fabdda7e3a716fd16a0893eba3dd6330638225d0c6c41f3749396590e624f35cf49a3f38481b40521ed18ef444303be6a9927b5e9ba1d1dd18f8951066bffc8ccac7b6184573f2fd270853be94724e0954e53f1e97df9a037649b57c0977f1d1fa8340054f132cd460e445865d96ac227cdefca87cda194e9e57b1e13ef9baaed57b907e731072af7a98eff7305ccbccfa88c819593c1129132c15521ef0518149c9f11f0f88bd1dc2e4df198f35806bacbcc18f0119765953400821b4e4c34d5609218410563046580719658c51c618659431461925109e204131c618658c31ca18a394f1e5cb28a394324a29a38c52ca28630e109e203d4290b83891c229cc9c92d203084f901e213919679c65cc3d423805659e8c3805659e8ce63c39414149496106c213a4a78794cfccccd285c4cccc2d4c62176616665e61666656e1169cc28cc2934f78c4cccccccc52327b6c6116665e61292dc92a6c710b4e6146e1c9273c626666199969c7d633f3c7582a427efc2899999999a3e418394a8e1ca38c9299595a1c394619254b1599cd93971b86f212457bb9b2d2626d2d2fb7aa662f535ea6b478d942b2c81529999999995d482d2c2b2a2d525080f00461a0ead2018d35660ed203816a7f133b55caefb849e522d2c808731fe322cc89915a48f2504f90e4255576cca4e3265532114fc147f887a3183244ca07c4c342766897f432d92bb668b1e014ffe01d0642c573e1a2fa7c4484f99ae7a552b4bb51658f9b6854f95d0fd23bcb773baa5cf9eea64a1f515459a3f29d1055be214376488bef7c3c512590ec9a6052e5774d34a9b209a22a9b283af9ae092caaf491aad2c78f2a7dec54e90348e783a7cace47902a71aa7cdf3a1e55d24ebe4b5195720717455ada9ad52b788cb0000c46de80d2c11f2886a08882e14fcb7470488da265f8891cf80ce189523bc2b3931a3f892c8086b40c11232d239b7120d43c53c04151ed278cb4cc22b12249edef283aa8eb23b5a114b2b0428544576852ad2847d55bbc56afec64f4d686712a5547f3ad239c2755a7f69603ba6a47a8a8c8dada11d5b3bcdc2a6bab6af6d6163b4379eb0814972de5ad23525654b4a54b701dea6808b36b9eead329689e3e43e5e99dfed1a9e6b0d878c9c6499a63266ee2a2d962e3233d7238b5f1cec64036e6e11e16123481865420254f286ea523277554f9090d48964a55e669aeae56c3795295779aeb9ee6ac8f47546f51c6a2b9fe1a2d24d654aae6d460a054aaf678959734d79272122ac453602f9d83d97dedaead4408b36b82a776fe3bb8a8be6e4e2508b39b1088d4a438cc1f9db2d91b3e53554b75f6799f6909eaf057d4fa45b97b8ca78697d5352d1f3d75456d7eb0fb3cf862f7892646f9608c0fa3432a9bdbfa82ad1e7b1bf12faa737d7c8cea14b9b93ebe0ef6d55f5bc906c3aeebaa3e5e18865dd785c5abc22a2bbaea1373c5836d4275c584cf920db3e9966ce2974a36e04333ccd65c6bbfde8256bc2a2bbcad250c894c62845fb1a16a43c586ca8a32c0b6e94ef5795555d02b29bb6a4b429774c0986b7e87e15e5d198fcedd0e18f719907cc0820eb240a2f1a9b189d4b83591fad21234697cea561a9f8ab1d63f524213a10912a2397e184f0328d48e9b0d57c07278839be075e66f7b587d3e44d643a2122c410da325a9d39fd1925c148430755538ef822fb7e71e7bd5bf0ad21eb49b3848985b9d3bd292fc9b525c54eaed7c72a8545124fcb38cae9b1ea36d985bb70a09555de560a872c3280900f0e94150caa662c3bc7153592134c4829d2aa45dc2f47d2730ef27e93cf127036160de83d9fe55f49ba3cefcf1b7c69fa43501333f7e3ef31e777c574713cbb842c051c71f7b59a437fe187661d85fda758db0ebb1bfb91e7b7f61fed848c3aebedeb628e7f7d7f5de7b4755efadbff11b7fedafb7a1fd95bd4e29fe6523fbd18fe2f536b0bfaed73979ec6d5c3f7f529d51f68b8aa36d9e4e340c5e33a4b528299d80f17aefcf53a31cc83d3a69b99aac86624d9b326a6ea63511a01e80880a1f876ba042b9314febac4e0315c2353d38fa93cf8ce86b2e668686c9b10aae95ac64e5dead23dfa79b604682f901f9fe1fb058c60b81d3d2a3a5477df86319bd534242caf7e88df54d73aa52f55685ed8cd526b7f88210e514b9b1fe3dcda33939346e825fa464f33e89453d0a69b809be45496e82d6eff6ef722e8514af7d4733a237825e0e374158aa7ef43e502508606ffd8dc6aff94031b5684e4e91920d0472761865bd0718653d0f7113fc920d7c1f28ee295594891bec359a2329fc2416d5c34df07d30e19deba5e09ec72007b909be454b36acb7a8cefb455db454b9f5d7f53a192d59b454bdf58b6ada1d3fc7bf23bdc1be6d521ee517e50375d1ebadb771616fbdce454b6fc3c26889291427162d55148a8e832a7c212141f50075915461a4ae76f3e00ecad63c930cb3994008471b0f694a94f4549deaf141951f3fdbb08d8b76887adaa7c21d68ed34d16b0b8be933d5c3903695e5faad6d393949282338e62e874ab695105054158928a8765f65c32d6c261d4e37c131c4d8324c441eb3f677d3da18f8bc5d0c047cdfb2364196114350f76943545f98f275faad1952be94ef6f59bd6e7294655dbfa88adec8cfc95ed2527cac646365f2adbf916fdd589fd19c7eab82a5f81325b752a436d24df0170521848f4122aa2f4c7fb979e605ef5802251c3182062068080ac048cb30182b695d58a68d465a869df480e1842c38557bde79d8cb9d81737f603b2d036946f907ef704a0718e55415b58dc7ab907ff00eacd958361c6d80f723a0c7363b7c4da71c25b53106505f8b2719a9380c834d66276bca6718f578f8277423887fb8877d7808b6c203aab11b3ec34142433786347acae80f2f7b2fa525d19464bf9a8d8b1b9c62a1e6de632f3696e7614b79df50beb7969fdbcb9fb8fcca56fa1db6222d98486251254de5c5a6f23c6c2d7e87ed04fc2812bfdb7f67a2da459bdeef9c50fdc39fe5df7b9c11ef04f1e11b3ef31e90921a269989c6079602d4f72ec3711ab55169c14e74c0d9043c82fa22e554f65af61a9d81a9a8ac36dfffc7c9cba3fc0fd2b77cb5956c583e8945b1bc0d1b17b4f43f7ebcfc0f9467f91fa4ffd1f2295fd3584a0ba9c482f2e2d2b22dcaa5ea9dba9ff2fe3729ef28288fc9ea25ed783ccefac25c962175fa51de379d22d5ebf8a7a4fc8d7fca57f4a61fa524ff7aeb756098a6511d1d671433411df1b9b23ce9754ad7bf07a1b8a8f4ccf784490cd58c8804000000c314000028100c06c3e18058382418d7311f14800d8ea24882581c87410ec394418618400801048802000000002303ad0007789d3eb36dc3385c24d098c3684ae6c7f2fc97fcc797abab4b8035a7d0f8961593317a364970cd8fabd1821b97ec79a29e9da0602f0ecf31414dd11152cb4964e431e72713ca4ba426af33874c5e4086abdc75feb33db3227617fb4e1ff8f6fcbdb6eedd7d9cc812d246c61558217453312903d99337e8453d0693121a9fce76c4e491f48994721279f25a7348a5f22411cadbc97d54f5873f166549db8c815bb7f7d9634c97a076ad971824ce9a357229ec351f23850f978745751fcdeddf9caf97094908d1d67a391a460a69f556dcd68b9d9b484914b22d1f51cb68bd97d8faa269c183183399584da0adb90aab25c3d457462f8564e3af24a9120464ba992a63aae412e6d6ad569c0f6e710ba7d1855955994576d1ac9bf122aee1365b9db92a43c3de455aa516d455554e925a445b81ac1649d8141ab0e0a2978547e7a478090219b913ee499cba06932232133d6bef1dacbe69cd1aca94488618862cec4ed592a4e2fc481a73c43206fa0234a60289e4984402c94f1fdf84b869067b7537b083ef7c68ec414b9824f49551a9f20e523279795f3bc59e449a26170977d730ca4c4bae2d20922855debe2eae04b2c9fe9505ab363344ecf8839370811498546612c8a38e5d1548e704d091444b095ea75eae40ba355072212f2966987704f58a1d8ba7135142a9aeb83455d6e03548818c6365d8bcb65b4b1fc5603d840783f1d91fa9bfc9f852d28a46de7a21409690b6d697e7284e18bbde038b9e0cfa51badcb0588304183971e9c7ec88f24157dd82145ecee5164a2d7d20c3d231cb4a3bfe537ad6c5834545d22da2563267dce6332d17febd9ebae78bef3afc28b806f8651346597f7f6bf516e620a4647f2a94fd2fb60545d37d9f10b75375ec177a5d5b6a0db57f717601ceb4fedb1c04e46b1f6b103166783b87c2edc8c26303c9ecc5e377beadd7722c19c890d841d91829c2cd939b101e95b92a82e6979ffa47bf042b8512b5a20490609730e27414c5a3d26043b3c064f651c1d420566d8d038fa16c15283951f9d432043dc1a5e4ce33b685a672ce4746b4892119af99f63a43d4ac8dde311af104e5a79bb73666b29a3881c16f6f06116da7e57ebb33b155027c5a8e26c861ee05dedadeb71c1e7418d0e3bdecc6f5a10f337931853e7a5a2fa7504a5b0397da5de8ff870eb2a047b15424880a94dca08dcc517a8c88aa9d788bc4b28830dbfca7328871c70fba975039a8214a31d999ae71c0683869427cc00f29b1364456251ebfdc7f9d806329f4e11f478cde8ec4580ace29986dcf201561fe9fe42ecd04ede32271f3bd442b2a212988fb2eb149f74918ba34098d643140cf0156136567e4a910be0fe469d8b6074dd60162c519a5a5cedf345cbfce9b74ccfaa1ea9caade468a2f1ac42a2b66ea90b6c0a3c81dce4182836b81dcb6ca8fad2dcc41cbbfa617e2289da52b58e3d04f9478f8cd49918a5bf388720706ee6d0bbce5da78ca4175a5ba76465fd25ff3ea6dc924d1ebed59192504156e8b94e2a9e3c435d261d098f78c06663dc066f6981c470b5c909c827dfa19abbd294b3a1c8f2a3fd2afe39b51a5f5f6bf4083e0da0e7ac4380c6b8cce6f35a0170869e58a563decedf15f29b6d214d53d5b628ca4ee619fd005f187264fa3561cca1a89a2e724ecfe321d1990681a2db25a1b5306798f45fe53d6a15686004dc196580252c915c85db9bab27516ad54cf34f4c89c471ab8ff1017406561c1621a1037e9694c6ec1434490330ef0b71252812f24d0dab2d6322d058a47c273045a6e2470937c3056d7bbee56078af319683b550c36de01591487e87b3a674bf5edc6fdf68b165618c54cab61bace8e0515a219e1b7d8fb3e0aa74b10998f7b4aaff7e84f9b07dffc0a929643617d6aaae158b8e9a7fabc2abfd20729789593bda1ccbc0d220624a01871634f58737fa0cbf6617644b7c1eb10dc7f845258eb23a0ada0a86312693eee25895dc7253018ee4ed58316fb84a5e84b7fc284a4c0f04c1ffc90672f3b1af914e3a5184cd8a2c186458be55c2012bca1e8b3b743cec09e69dc9c8aa6f157a388a8be9e960121e8081cabf2e5536633d857ffaa4b0ce693006b05c1fc86a217612588ba2a99b26d6706269868c18f9828f0cf25da091dfa921ce779ef071f663e293110b2197c123d9916a634007ac9fb2221658c0c069be4a48e383cafbd85bdc635bc0548e896974ff5b5a061920cb4b1e88c55a6c087f45733bf30258209057064045e9c32b9685a57cc042760a4fe5a7ee486aec0359b4aba40c2b07d499f32d7caa17469a59d57f3896d1e9df8e47d678b455973b254a13a34fd2e7232469ad3b2d2cdc6ee684c7ea668fba8577374bd98ab8a620a8adf9e2a220012d8dc83430c78c35f70b1c32506e1f167e6735bbc7217d272ff63333fa0c7669d35b88c59f6103568c2dd60d266dd5dcfbade2a8314f99895c8dd376ec097d72aed572b1553eb00dedcd1070f74c1b1b6d391f337221f16e998f37a933652a06daec6ba83bcfafb7c7f6280059f8807f261c58d00da2e5c8a58165ececdebf526d19859360adeac581d4b7b2d68a73ad2d34b8189312b670c20a5b84cf16d22352bcbf6c0719573f70b4cf13684e195b373c5309ba19c60da5367c195b393f5ca043240ef956201ab8d45a399425a2b67d645bfe176a98aa953396eb04ccb3e13e8150626b17bc40102c146405874362b82b198572216e7761062b1e1e71ab03a2e937549d6d6840d23eb0800c49287beb24fca66f7891403b3fb4d21277253a6b03c8440390c85afb40031448236440ad512f5fb6c8f430a42196c131138302805e0c6d3bf90e6154cdd17bbbfe15a15ad07efde8f00e8cba85824b83f01852c7e4a346da75fd7cd8be7022d3e406fd95c0d5ddd30c90aa474b26b7496fe90ac061e74b5aa320786d2ec85ffcbfe72baa1bfd373bb30a0a2d395ae7ba00693b94f77fc89725c43c1b01f85e94bd63abeddd620bb31594c2ab067130d0a2a7d1ecda4712537c5bddf74f712e4f1e668a2f61c5d8ae12908be8f07a987f64b47c28b7601f66c200bc120e5184310033ae29d493093510de4e88542cb4dc367c434444b89f80efb59a0236e9e0001b4204f3fcc42bafc65b7fd54e2458ef0784aef44d27fefe0131c45cf6248fa7544775f879b456d6fc6630375f553f426e7df2998e978f9f334d2492bb535988c8785fd389df90d6b5e54db591e62b6809408920cb6c8398488731c1989b7e75da59c26ea1754086c03318aae08ce113ad573c53ac2116249a7846c760e533ea8311b3467e9cde519c96ee3e2fb454ec7a38cc7f8c171276f1482b223986be9016023d158af0dfd22b7e2ba9cc8dc11d7b08903f727e71004412eb479842448452e6d646f3f3be60290e85f10b42364647f0641ca481ec8694f858c4a6142b1c709ad45cb9794308843ca4256d02a5fb52f282896cf4e76c15a1b3c694e88e267411e2472a0b15721f426dd87669c41e0df54463b4f1bb09037a72647534c3e191f42cb9052bd09052af3b3fbdbff37056736627119248e0346c76044c39fc7048db00c9fee16e1a97d150d1a7017b0e419523411f3a53404bdac46c7669dec130bbeed3443b3d4c490b0713e0c5194fe442a7e30da81540e62bc0315638650ddec0196397e26a9cf6fca7d9729dcd85fa8e420085da48451290134b08bcefc6de5f81153ca156fe5d8b112a5847c1bd6cc742f8e204831b297671a82a1672e5a42ea8041e39aded3dd3d88562609f0911ad4caa9a6b6f5971317c612353a4355768d81632313a90767633c6bc06439c568c4451d31828e46826602c568c4161489b10c92ec00e43a91821ad0c5a07a292fc646209b8d049845004589aafc9e331149cbde7219d90175a023486d10315586d63877297c960d354d87610c0e44efd824da3cad489e19daa355fc2d081359b06eec2751e83ba7fe28c087e6804e0276281bac1e0e446eb9d4c9b6f94744d19aab33ceafc01502bf3465e5e8e056f93c6721a9a31d9fdbc48020100c79a42fab1c88cfb3fe5f38b540caed13c9c8dd36a4c947d5d0adeaecd2a5e4553f9dea8171879c46d4ba297ed5c293a6b1a0ec4b7068d2013efa29fefbd433640f62059f31d997f14f8ee0e8fd8f6f274c30bfbd054d791909568d7a4591c2316185366568394daf3e24463039f20902ae029a2d61011f6328b9268729cd01a606cf51273cf97150073d697614001cf13955e0cb1c2e8d754fef7cd5fba01c2a661098467019317990c088d87c6d5b2751f8ca253e2800f24ba50c8d4eca0b598c36dd0bcc2680e5748b78ade9a2989b871efc7adb518b18f9c8e01359a84689057a7b6c87a8d9b05fb16f4a57c7c23b429f5c4189ca9497a84670aacbc12bffe8922514b19c08e517f42407384ad1cd04dfe7789047d742bc47720447248b6e9c0a8d071ccf89144f1c0241458717e6d1b37880f87514395943d7b690a0808d5a07cb51239332ba096e9e1b156d5788750a190d175a201982e5a63dc0d02ccd7525ef43cfd260b3e57f19f993188e0164a43960c91beceb918f84046610eb3d28ca0575c93537634837889c6f2f0addb1f7705b88c8f953a0d2688c6edfcf1b05f221dc969cf5f2261b4a4a2bf204ed5adee21ccd357f4d87349b51a9c68be8a04b39fc15fac75008d28f8ee9ce47f5f3a4972fe3be9e737c804e6999f3b9f49db928a4859e0515e812b515aa669fa960277d8032596f44bd64f6b98948f639ad8d7126d32026a8450ad036144c9abed7eb60681bb6e5c7ef08aa1d905ab82fa0835c7a557cc3f066c2281d8f2ba289e421e86a647640e7a89d3c10182128674758b9a2c29780de279e4f3bd7962df503d6a97cb9c5ae6e40e5a80127adaba128fee561c56531d7a93eec25ed59e333807ae6f8f7dae78851723857d2c639f0f6d0baab1df0fb942d96321f408e9baf150ffba7ef0bc69ad3160260840272c7dc837715a85539c07e6a724a15d4069a0660512712e364c0e7e7bb39a544765ca5d4961f95e58c44ecc42d3e75139b1457d62368029b8243cd0da480ea34137bdc2da4bea190f07acea2a9569fa41486d036b0f7700bbe83e53a3a2524aeb2d64ca69a1669bc8bc829c99bb9ca3c61ea23e8ed9b15b59edcf48fde1a19d8592517ae68072ab91d5ebf32cacba875e6280a4b4d57fb019df16aeeb1935836e374cf2e08cefebb9f5b6418167e1d69a1e8ec7ab6357be79767d0319f2d79fb46e358b9b1726cf8ca7f4ceb6e63fa25d960a7d509c8b11ff8ebcd438e556d16d10ee43f533a758d9a0a6697b7df56218f0491eaa21da88d8fc83adb5a85b808c3a9a5b5fed596c416b2b6c1680aea404fee413c30e4f5cd3b87f0c2e9e9a1071fcda3e7dffed6231e1495c367feeab54d8b53015cb46185ae68a9bf6a98aa68d540d23efc3a1282298a78e779bf9b1dd4ebe34d67ceab9a624d9dbe7457f6bea823c99d29be18c05de66258b4d5ea12935b6f06f67d33272bd75ea77d070334b0451ca4b71df6d1e36bb81fb07bf4e2be42ee7d43dd7965f75833c988cc90803702fa196528538699ca28b34ccbcc49bff8b3807e4396027f2894e72d854b63cb4b4a04afeaa797313f564f473a780b380f413face4a8487c832a519e49abdbb22dda206347d7a29c4838f181c050abc4332ac9f4c3fb2c0c0972987165818c075ba5eb1fcd07b85524b63a448b14d2496803e802755fb6128fd4733c906dcc5da6959dbc30290674f68bb3bb603e33f32ee9e7f1740a72bb72882ad566da9a960185c519a6d347f1e49decf7c505873818ccb09e1b7c1da66779684ae10e940ee3d08a385f204ea8c35b185c12cea78e642714c102062c44abdb30ea6d0f8e12000a5d622d26eb31818cf681b2ba35ddabdb36c6ba043383561a37180b3a42d019932ef3bd025dc5045fcdcf4d77eadc2412bca602eefd7af00e25f7dc81cc95ab462b5ac73e3b4a8a30e020f88142d8859a70281b40667ae95334b62fc79ea90070673a3ea5ca8eeae08fb966e3b570e9e3cacda302d58120a292892ed227e21cf41bedb20d641640497102c72f5b7f25ebf6dd3a4c3f836406922a39e6e51c028377738691f698ab048309eef400a341eb6e3ec15524208bd9de5bfd7a3afdc95cea447fa2fd0b8c7ce0dff691ac8374923187375fef4d4a54d48ef3f8c74cabb2ea29859bb44812ceba8fcd000517369093691a7df3050b4b7ef99caece1461763ecb41897f67ac2909719f9351e785cc023866af1f56e6a69b7de01826642e8c2eb22531328c49fc5cfe0b30442b5fdb7bfe20d5e10a3de423e958315bd026cdc79e11cce34357c5aba50559b9047b7df7343e80b8e16e60583cdb5eae7765545fb0956b7bb118ab6f9b001ebafacdc854ef07634e1a6647fb2f11a801bca97b78b1ac1c1ee53c306e979906994b96f607b1ffab299485105a70b5998bbe93c9d5a936658776f95f16dfa3a42c1857ff14dfab1c090fed0f874842bbc115fe3c91d7236735e9684baba5cae44727358ede86ba5ae72f5b23a84c592474016c5745c81b578fb3cfaef2a90b1a137e16457123aee05c81e81420f9a7551790d865f58ff3a0febab16ee2871f15040427962aed92ea72d1ca97523e527b79063fa7c083b6b8a56085d1cb7271e5df68d9a5373e516e1b5ed45db6709fddcacf477bddd4e3651eff9858393257651d6fe88cb7adf4773655de061dcd71c7dac4147aec8ef5361eab74c8919a6001bc64eca3c574f55cb871f8093a6c02021205f2208e25e87d166a425dbda8d7e268637756a3479bb606eb9420888a1e5adc476f4589d63637665ac7b79a0347166940f178a163e30c8e025023192bdcf0b3c8aff690351755cda7f3ea40eb5545067c43336afe0845b907dc097767364d18861b16b8b41a9bb0c85a54237cd9223ecd7cae62d340a6bede95efb87b3a8fce306925ef140c36a48956d5943789e550c76d2c2b0a99c9ed301e20e7e5dbc9d016cbff86fece67bd0d13c4fbaccbce74499aacbb8840a4d91cd92a025f653b7fbeae904a91bc150ee0f320e34d5c16c9bb546171842cbb515f55e439b25b63143a673335dc316676bf9b800ca53cb58717ac343289df94574446392ea31a93d3d24ac1cd42ab1929b0eaef2d480a1f8a55f4d7684799175187c3db9d4a430e3025210ee809b505396f709804ee1fd8dc78d74c8209b38b3a05030c673f764de04c4662a19122e4de3aa8a89052a5ad83781e07eb8284d7664f4dbea0d8bfd755d9fb73c8d850a84beb71fd84183fae7c40d05c8c079d3f106a412feccc740a00802261d5c01af8fcc41b33ea6b755eae9f11a7fad726d7325d4f3c53df6ceecfa2b615139902abc8d809eef5c6f71e7fdbf4ed3d3647400d5d2472bc1223a5d25b4c3cc5b1e79f11b304cee64baf2f5f8ffbf6a5ca42992e92e4df215e81a5e05c7401a64d5264ff5bd49206edb9e89601e20e6760afa6ef85f65c3dd573a1405d09f72f6e7f7b12d0c3e0e1368aa2c482ccdf11bf3252722efd800b71e7694b9d73f979d3881291e4827070459a726a0960e1507262f4239b39631dc431d60d352332b8979a20bb645960355d857485878fed34449f201a2641e97b851e5317d244972758a7435e9197aa20ac551903348b107b4fbb783f6484f247ef02f4683e8d960b2d62d1cb76e284d880f3d031cf2278ba8b7ab230badfa700366a8dc46519dc45a5692f2a23622c8db54e692ee92f808175148d4229b44ff6ed9e48f626255e021c3aebc90cca7dbbf3600e67475d8cfcbe36c055c89d8d675efc1c6a901a8839ac8a862ae60412099722429c8b175bed4ea797986dbd97ceffb4cbe3cf53606e9e301aa12d729dec9f3c7e864187e8058b52dadb09c1d7047f20d3fce083e6d1deabb57d969d2add034a5f923c2a38e9df08cb4c138410887af118d89df10154fe0b0016c9345142cb3b522381ca36c00426a3237c783090680d87fa8ba51ce0be5534da2cacc47a8ae2b4b62f15ebc20547e3fa111437fa562e2fdad4716d969aee87c7f168558a5d44a2b48bfc2d5f61b9bbd62999d1cb218dc1ee5d60318d447e693c43600e5da8a7ece2b5b8c949bebe80b67c3a057863acdeb82f5befa8be2df53a307fd933caab00fb64a6f3b9fb7f09c4b59f44a32ffcfc2920150ceae1b37c1dc73b631cfe1c3b409de679a51ce2b75ee8f213a7b9b51dc74c8a6830e49cdfc14a266fdd734c361d7b711d635299bf63b5f098e23c0638d25f554c7b9e90ba76567f8f2c589fa90832186eb2a522b8280b3428d283b8db33589b8c6ff35eda4502799b8cb8bca9aee3f75fab174603e998f444fb58a8cc881cbec4038175b1b8e60dce5ccc77c2b5160df7e5ccd5a26fe90ef69b3505ac0f2decb2772e4fa251b668baa6fc82b93e7d7a763a5d1f2f3e90810db3bba976a8349cc5bdd9eab19e866fdc180bd1e1eb54520cc3b58d094b3f7051b2f4f93f3d66196777d310868a82aaf21bbc8b862d3bce13da254ad3d33e0e0f791cfa899096bdb484f753a711c20c6d6552c0b3c6e5fe6fabcd06a575a58f0b17b9e312b7717e627f4484e3c049eae578fc93e96211fb8a29c7e43e4b738bae132d6f528b86309bdc4052870c74de4f473b543fb54f19cd483f5fa8d5436113d70f9cd2426c372cefa300d821ee81bea2cacbdfe0062587a847a51a4897cf351b0c7298d7a7fb9edb7ad3c91f601d84e6753ed06770666f82f5070276101d4fdf127f069c25d9eddb91ddfbef1e22c89e664a98811b821c4ff9e4c566415a1c1c8c20bf60897dbec55be8fdade3cd3a964f83963e5480f996fe3ce20718c0162cf69c1c4548641ec94d26054aaa795718fdf5becac3de6287bd98ae461e491614c2ab39ec602d6b3e9726b01215ebdc2ae2546024d6f1d5dcd3fc8658d09a48ffd7f87ba147027f6a5841fd6db601be248915e4dc0bac05823c7d8b7b6055fdf388adf8e5b93ec43ebb8f5e33c45a310bbd84794da3f7d21f6a69c0afde5892b68d38c6a8b4bf74172b8cfc4c6c94bab25f83d239f2de633ec1ed9fb26805ebb05feba0ae361ef45163be068d3d46b73422075750a8ede62e0a9f30dec0165a2434cea422e8874dffec4aa337735f9c75223cc2b94bc89614a89a34e9e9c6e238ceb2f804ae3d1281b4e828ecc17ebedcd387a4d4e1dbf863eb058e5029d308f28d47937f27b5fab035ab8e8604071f5459a1b4a6abb0406569e0ef5008eb27da45fbb35d4662388c8e5db184310b8108edd52c8d4f0ee2ef89e8d95730a17d3dff41ca353e2b72f367ffc3f0e395a84e9a775381d4473edaf6cc81c190350aec6c639017487974fa637c67c49a4cf1bc8e3af14ab8f48a18698f04ac9ff13a209982843c09862ef1a52c4212d5e358af83f721eae756be3dec9e19d8ff869ad9505a377ab9e4825b2e713bf31b688366f33a7f88b1a7a73f527f954bb8554acb4ae08ec8a4783cf5dd9d9a77a2826b442355673c19b779826bf3ee7a37747505b85d7fb60b08f7bdd760da26c69bac8e3774933cac087777d9e95a784279a001ddfad387c384ae34d9fd190b3c85cd11fe9b98cf909e038b6d0e721113b017a9fe3579e2f045a0e46ad4a78c2fe57408167579a1414a4e97e0dffc426f97bd89c8619c9716825712d765417bb5bb361eeb6b9c85a97549a55a3c090e09fc7c2e55c1dd6e67b3318be4a2ba72e0ccd4b4e607e54aa6f7224681789b8fc7c57cd988d03137792e2928f83c716bb02bb5d26945fbefbcb1a08e701910b5c9c34c7d658d5c4d671b122ea2711793b34d8c0f6ff61f337ac06059e89ca246b8feaad6cf4a3f809d73e78167ccef9aaea7979de8fb436cc4626269fed92e0706d0bf15deb5dbfa03d812f3f74d56deda9fadb5457b171002ed095065d92c30628ea97146ef1f3bf05b14293c52da672d1568bab0b990ea332f366ae4706cd8273b917d1c90ba241a66edaffce7b7c78aa0fde4df68c0befea84d26bb34f77199de47e42d05a421d1216ff8b9c946d9fdaf96c8276569eaf81ede9e51f65fb141437db8c005161c7bb7746f7a2cd7d8a642755ea29c77c957a52132d9ada9434c33d9fdb225b33416d43653c1540399d03aab790c2e718bf798225520ccff10be6b046a03d1df4da415cc9640ad8386b80085c98db9c3abc1d71842a34273945d1b9c5b3caff1155a31324300d89e494e9abae887c218b61cbe306fab893939905d880a3c342b0f1ed3c50755ee3a27c24f651fd0b1b1bd71196a1fe8aaae32133d4869a40f7b4d976fa4593290d569d468466b8833c8bc96ab5ee6229fdc8566e7f7e48c9c206cfd29aaffff98d92b793255b28d210b973c899846b0c108aeb8289d511523ec92c138e3095ce6b8729edfc4c0e85c129b99359f8d73dd52b0072d349fbeae5f2323df39ca63a204845f83cf6572c949b547d8e8bfb892325e053c35f8b85884fa26dce0676cf02fdc1d264a63f83cc99f4d0e7467f2a482344abc1b7224d5c6641b0e9bbe539c2d7b1c74785acc163e2aa7c98dcf2784679e30b99765cf18e21ff58158dabacbbd3212c9baf7438a5a4f2165fc6fa6a8c2dea9f02b02db5ac51f15e48812fb193c7a838b15f4a33547b3cf606762a1ef773d3a3f62f15b39f51c70fb33bcdec96dbfa4b304dc0abb7a82b034e15577d0fbed3364558482e161892f9b0c27938290d8dd1c9e9de085ce530777bb28fa513031e4085ab3e9060aa23488bcd790c8fc511b516beeba0f38b54c882fe921c8f70410994a5ca030922494d5062e0c3c056a2ff1074fba19782abce90d1a7ddb9aeb08c983c096a9a784ea7d5122f9ac017f5caa7dba75e81b3bb449f22011a8d2650893ee8f239dc38964610b5b0860c42c5ce531365e13a632d4c6dbd89ee8c05ded3d7b002ebe5f5fa7da20be5302157e8e9d8f4be150896f22e3d7cee837c1ecdbe6f8705f0bad31734d2d2f364931f1b532cdf94ae9b2271176c66827f1a949292702a53b832a7add1f4e380e6b1088be719d6ef3f9ab038e8de7d32fdc0dec158f0a7c9441d79c6b7e7556254ecbf387d266863c99270b9816c78241a70720ea79b9ed29baa43da7733b959f3f1288352fcf30c9b78a38643ebf1a50beaf03842cd06e16306a6dc9b2c813b156eed0dfc72064f6328756aa3e09b8a5cbc222ba4124974ce72b6602bd5913fe68e2367aaa15c0f07e6b0dd80ee66260044772af3ace272bd50e7b775129ccdea798a05d071c4c20162b7ecaef015a8bf7c816e8f904aa589447756fcd9edd05095c7dc6df6fff2502d54b412150cbc8fb5aad08e3e755d2144b4391d8b6e47a0771ec4232a6554f11a04d7f35536f4ca7c9097bb6944a134c78b46fe7bc25ee220c0061b2b634d9ae79a7490982030e6057fc6baab40f97cb5b5a317fec477ce6b1461c0ff0bbbfab8018ec6ed34a4d39617a4102d5bcf850e23254a08c8129199a218a350c3dc0705b50b2704fe8bbc5946999cd10357a6819cb30c38c322c33d343fc597fc7202707cfb78600611551bc1e40b8b40d798acb766cd6bfc56c55d1983995fc3141a6cf1f087c5caf4c0861fc1644beaaf1eefe00342f1f71fcfeb65a9458b1a48f2a5b177c7fbf2e50ffc1183e41e119e3ff3afa8e541a764bd36035bf569ffae4f82d7673feb2f59b613ef2e8c2ceb664e10121562c86d60f8a6eb75fd2239a2285bd1fa31e7c965995844dba22e8f5c772a604ae862165a52b50e6382ab2b151b60c8798ccb7360ff329dcac68a37c1819edd6b9e71b75272bb15f16f6577c7eb4d27035285e282ba8e682ed716e8c328c261d2c556df6f3077ccd253dcbcb37c6dde18f980afdc072483be2d128b21bb921069beacb3d1ad3a753b6f729948adb41597e61a018f0e38dace49a77e450e0fb0d52e6433658539a97ae37066acfb12966853d7d067c943f2afb2f3563559cecf7f1dc4c7e828f32a1ee824a1dac8ddaa36448cdc2a1c5f50f5e669396e9f7a6986d813ba00d7c525fc9c6b5375b0ada6954fbe6c8e04ae05731077d98dcf6654a892995934c53a1194207c97bfc8bc24dbf395f84e6086375db62911b7f0f55ed28361340ed8c5c33c55fd0eecc26382ce01809c03ddae6370fc41ef7e3ae3ec478a8d5c84fc7b02f033e90bde62a7410ea2cb77d5e1f13c4605f78025d4d3bd6c3bb98ba0fcf1e12d6dc10ed8b0d34a1bb27592b42d32857c7bc4c8eaf62594fa13322f6c05419dfd36b737f3649d6642e60106835ed334db832a4bdaef826374a4372925a5dea318a955e9730934361b4c920f157f30352ebc6e44d56fb93f243aa204be10add995a50e712a962f974d562944e13e4d417fe0cf41968e17bb7a4d89476b511559ec12b92dadea779438b2b8a5d240dda9d9c57298525fb724fea30d5e961922c691d562780d1976813ebfece778c64e3ded03541f5877102107c3c060898b56e5979685b5d70eeff2667679bc9e1b1c8629b16027283df566f13bd84e0d634b1b32587f612805e010d8dd8469ff5624afd34e1831e3d718e1a3da005619b872d5cd2d53bc2016eb98da2f9c0fe8a5d05ea9637a750261d5a8b563ae75d0f20f6a3656eb6451e17de763624e2404370bc744c2500ea526d35c09f64337be1a2ed97cc5cc0d903173d3c99966c26ead111d27db195ce7ca137a16dabea5b6195a24b62038136a4103a366ff405c4510608232ec4015a244089332684fe11ba2db7f167f732bacf6004a7ce3eaa54424301cb72df418897358550f963af314abe1a05b99ec0a8270c510a581154d9e5b6f2c0904e5495eb099a98ee5a50fa7d0a3c75ed56ecad3978edab4d42521403f55b1d1f926b8c07c1d7bd703af31d35f5ca76e9ad27c25f4c7aa24e9846dc615605e19837e6ecfb4d33e8fb052ee5a16b14a1382a8179a3f4c9ce95fad5328ec6a542963530ca94a07a79f8b0191872e952a0132df06ab39593938eb3f85d1bdf5303694249f3b52d04330fd1316194ee2fed02aaf5850beda3c4de826d1e9e466e3f3008b4a76b10086234bf48da9c491e02edd9a3f476fa9d3c095835e6ec0bf8feded4e99cfd7d869c56d282c9066e0866bd3337ad9638bba09e77d290e4fd1d4a615f4634c05b0ba487f9ea372bfc0a997a03ba8db54e4a3ac72ecf897c3fe291e8c00544f030e251818ea2d872f7a25234b7e405a5c12358aba3c938cb8d179bf556213ba6d9c6874c819bb5af984e73fc69862e4088d28c2efd4c4febf0c9d49f679dbd657469e814945cea7be7f0ea55891ffe25e0687917aa1b159009e0a9fa9cbb729451dd1a00fb4210e6e28d0c8b20aa6a60595bc551d866437efa95df45ec632fb2eb9bead9c8aa67ab34222ed0a3fb3450a37f960873bc122251aad37e86510492e487a8e00081eec4a8eb7849714338f365b975e5152de2c8f6b0d4e2706eeb4388ca4ace8cd45b1d7de700547ff3ef669246e6e0d6e82d17de539522107fe1f28e0a6bff45244ceff923217f2d4121416fa4a7bfac8c650c8588c7d667079d5828a1332ce9c0dd8995fe66d646a6b5593c8870c072fff29971ab9cd64e7b105444691ecb636353f36889705685cd8099808e31c6dc706e52c2868206db79881a4c20b6e2315e4e02177afb827c34d1c7bdfaa8c506d2e3598f97d2d993a5f5cc71a7bd19491e2b8ff73f6bf5f9db6c3141eb0fc23e42e8e95e5a6e50ba6bd477b16915f93d758a3ed1a6be5ca96ce46e11af6dff02cf2b079732b04897e006afd0c8b42b22bc39504495cd32896ff4be839165cc773a0b6602a4f2a7784f66949c938848245c5fdb411915f56ee9c004c4fe0fc45928ce27b682ca13a45f58b716284309b22a98939a808852783236c79c7e2cb765350a646f04c043b98f56babdb72d4a1e9c685f1f38113b4381cc7a820cf8beab5d5a79a6110a137573dd3092df4adc0d1d12562e8b7b9716d581d2dbdce42459d07dc2ed944a0b62b05767c10bb70cb1fcc70a7179bba44595ed98c8f0ac01c66465f99491ed022b898ef20c19afcc091d48005a2bb98131d7dadbf7362389528dc39c25276950bc116c83a4eb2edc08cf2bf226747a00f87e082e654bc1d2702d64c1ef61303dde991ab3aa7421c5fb39f137ee158bab80acec60ae68b91c6dd3e7675e5bdc7ced73c9886804566b59509780c8ee1dbfc664b698e048b2c0306f68b15809e5e210f351201bfa2db3a74461708b389a5ae1f2833e5acf3374dbe6f20326741f0eb8e161ac0d14d9465e2e181f77351178087508fb8dfdafa1a64aeb8d0066d34562772a1977906f4b04b69e68267b4090ddb48cb004e5bcaee1e5ca59c2cc93853c70071bbfeb9fc50956bc1fbbdff488221f0075300400f6922acc76ad0d5c21c665fd22011e0b3051c53229f2d17cac3c4f1805da22bbefde04aeb2af52d6647f418520f03c5d4070ae985363b077f890e9e7b310c109dad7e57490a9026d5e4e33eb8718f85f1cc6f3d860723efb83885e7c9848e0b6b1219725bbbd22abd301f2724e7355a201a0a3db39cb605693f3ea6bac8cc5aac208db53bbf3a1e60a21cc87ed11d568f3c766dff5d6329fa9ea6f602e0385e4189e94bbb5e584329431799e60aa6517b3cf5c39f458c08f0d2f4b3681fc783e25ac0da8ad5aa36165bded82f01178c1808d7701b41740f04ef5f6d48991fe4fd80cf618898d9318222d5fee3410ac0aa10ea51752e65d0e6a8cd2ed6fcfc57bed8b81876a9512a52e4767805fbe06eaa2e80ea0b2c24e54ff81db06ba02b739ae6393f9f2230d2eef4a86e2c44ad3ed3d94698f6f5fcdf8ddaf5bc5e74ee0ebe60a65a050b782fc3e066450a69498e0b7408ebbe674945ef87fc5f27676eb0f1fe80833dc73b43069224e6406c993322f07585a86983af12f7a0acf2072a9905355dcefaf4b9f86a1082afe798dff118b96d30a5d63cc90c1cc329629a319659451866546384a7efff3134c2e729fbc99f7888a8f7bc6b0a5fa5bf9b61f233ec9dd98099a1015db1903e2130a83cb9a100f01af65e096a0b7cf6064049899946aba6af09b880efc6884295ca8c1cf44c6915c40a6c232d2764b9363a741314148c258c6218f1651570e0847ca8f3a052f05a149e2d75ab6b829d844c9a5c5dea45a6510ca84a56860828f21c173f199bd1a75a6f0263a804c57fea8c55e6002dc268cc187eeced50bd63597ab135ab6bacf0377f0551067258ff3f13f478b5bd5ba6f8445cf443033356009f8a9fb2bb0c56bfd9307ca0dfd60548bfda348f469a6bbd124887b25e987d022c7e0b54a3b4d721775dd1c7ef1f64f19a2034c69e5b698c32018ce56f3610ea1fc73ce275211fc11e82264673c48a40bc849f4fe997f1ed7910498434bb86799c6cd4c112806a40f0b37f5c68aa849a0ef974b83ba5c4328f50aa944e569c6bbc5124f7318f6be25f0a27eb69ce29ae1a3b03c216f9f1322297c46af9a0d781cb5d22e7a75333cc655066dfdccf135ad800e176fb153232df731005a6e4d64483a3e73ab0b8f4e2587e3d270895241f039d967363881f1f43f04e19e8eba27e9440854cb5a5fd4838ac9364a77059db2e33b79fbe6dca4f64dd5ed9bc99d1c9a440bdc9e62de1ad5792d1f8fb131da80ae364d4ee865a29ada7305031b9404dc87381e438790f25305fa800293c68029535b04926a75b6f6b1e1251f48f0789ec9f365ef067c4221cf797ce118aaddc6af5809c242214dacc515da4928bd75797c8b321428a7ddf7628c1e1b9799e01b9e5066b3b59164d2340372aea64bafd404c9f85eea047c606c5a206dde708aa1968038d9cdcfb36723455acd89c44767a295bfc13b13e740ba8d1350586ebc50deb2d1e843aadff7571f82717279fa3f443a25c18997a6f8102381b465d256ee9f70805ec06bccbb1ab935021937baafc0927059c9a46854c9160bb2595f0a596a1f1d2b9f8d0561a8316dd3e6beaafd0ae68df973a8a8c78440cfc1301b58e75290b87ab19fbe9a104bd68bf20c4cf7b6cfefd62bf158bcc718ed077f67021a09156d96f69a33bace4365e3da89aa94050541a6b7c8fb782a2a22979c3ca9ef2aeb91d5b4169efbb6417185ad8180568cb54802040a5112756da8291c10efb10c0214aecd17fe3e2624ad301ea03bab0cebd4440de83d4c56b686933fb275f9b58799d7cda6d7653eb951008703e3c2af509ee0c7c19d48cb3e8a2abc56baa73b8161add029e79d286f8af58532266785911343a401c2b02c29113c87e29488b0dde0c32cf3106c866ad62f2f1c98c3681be09d966068657e58f0b286275314c12390a4314bb7f6906a940690de23decde85d62839be1cc4867c65ca1bfc85c900ba10bfe718fdb65feb63fcd4f4e09ea08e2dd90ae1d935c64acc354f15ee4c84b22311edd07c30c5067d82208e88564958b8f2f0a60ace6ebb6a7925c6625d4025a0a4f800733eac0fc8359482bf461aa2d274beb21d71c6c6b0dd3fafa6e7f0fa2570e3a7a47342340518776e2ba584bc815b04d387c723679b56efb2b981cacae4203ab3a77853b052099015a6716d54f27dd3346901d62a4a73a78e2066c475abd2c9b18eeac52cc812c3548d1863b886b8004f089fa9021a5c4998230cbeaa9893ac897f4ef890e1bd470bb278b00d770c2f3b1bb3368922b0634634579cb389192ebac9c83144b158714c1344589e0bdcba5ce9946a640ca25f7e1d7d3c6bcf4090cd1e57f5618c19cffb6c424d8ff79ea262b68739a894da833c8344319325b660c36d8600b1ba1ec4f652328ce3f643a6fa9c42f5dafb96e0ca3c7eb6a673f49f1bace8fcaee750b4d1d6c8ec589759f6a8fad8a9c584c34976fd8cd4089213ff62cbb035ff473e26269aa7f1564c0ecd2f20cf69e6b5b59a6fd5d90397495c6827907d7abdf951a23e632f9ea72de4fbe5da132ea3ee5459025fefbc5dbfb939d46c12aad8496f60ecae5a25ea2b5c06792ece19aebc0419a761d2c62d378b362447a68d3272c069123ef6cec1c80487266925cc1cdabea1115052a7c1a2ab12830845150a9b05198d909ebc0f26703d3cb91c08e5724274fbdc30d7eceb2cd5d162f7f76eebb1166618f57a983983afb34c406b3ecae30ef49d71ef99284991aabf6a4bac08a8c99943b1cb4cb6069ab294c2401155298374605cc24642b14e1fada622e77fc5ee0630e87a0e6b5d35a74fb591f8def3044e3fb5d1b8a4f21c4cbada9d70973ec7c859b6adfe8e0fdff20fc6b804b1064e762b9b638d23ba3feb44642397c3496f259f6cc45ed006f91a7c2a75d45400c10e6c4fe977fe22ea7ca7c4047ae273c03635a3a4577ea4433fd84a8a36d6cfae39024abc29e9a264ec40e5c93fc706a5cf433c8f75836e9eaac1fa21bbb9e154af8de3908f1ef1205454de0973f16e929d645ab539ac4192995d678ece26ec10060c24a40b3d6c951448e6ae9dea569a4b53ac70a61c3f86d13d3a04d8be61cdb3698e697e6c11fa2579c59cd6e4e1f51363101c46830fe8b7cdfc8e30025b47fd28f94826d12cb6d073351f1287cd6e691f56b947fe7baf09fcfaea15b1b26cd8ebad44c370bde65908dbdd9eec9a1c06354907233ab76fd560bb78a67f4fb25c773c1d5e0c48655b6d46728430a3eee27a1c653227c967542ec23758c003b4733d8566f76b4625734bf9c962aa91dadbdc18d5fd78aa3f824aeda2e43ba16ab8f04d41b8733f7d8802fc26f32fc69563caa072304b875fcf6d8ff073253ba2cd420b27a7285c687f8b6e04af368befbc5bbc5c9ca376e00dc2c9e1711c06772109977b42213ec6f91102901b64dbaca4167e1c37cf8bf47a173d00caa9f07bc9d429bcba9c32fc1ad69dc3536a1a7ef4f9b815522df785dc9f3c9b54cf5e6f96729c656bf98a3838170905664af58521c10342c685ee081627f7148630b48e16a3c64f006100bf8aef464a9e2ea5049a6284d6bb492454c67dc4928b3e88f1f850fe8b849dcc7f7f8510c5c61d2cf4981ec6562b1da8ec846215f7b4437459b0edf58e1b1400a5997976e5484cfc644de6a8ad44e76f2eb46d49ba08ba18b7a0d580e2a0ae1852b8e5a29d57ce47547f27ac7eeb0b4639dc3d813f42ad7e453b055ae8dbdb7d69e2a5a3d70605186fa6e65d7036d18e5c76572a3f828adf639568268084dcc774df8acda73c35478b1755fddae8bd4769b80376156980fc3ee74737bd62941daf0276834e8674be437e0ca722464a43da674ca7875ac62e6a8f59422ca2fa3634cf53ba72d3b9141162fd66538527f169debdf00171972e8b37838e9652c52c038d6d44254aa33fefd51a57683ad08ee580b29f0033e93618957498d289b8858165fbd6899889094925e9ead247c448b862771dd9671d04d3644df8ab0342122eae3deb0c13f43db25d4d63227005003d0a7c416a94a666a256338a184df89f8fa397d5e50fb018e6e8e27df23fac6c0eebf31eab6ffd7a57e9a205c46f8424ec69ddbf2cfa9fc83480c110efee5f14550cdf6285d9cb70b89ecc6caedc2168da6d05e732d9e695153d223150cec236e0abe42d52cb26a7c49fa801c69abc7e368bcf133dec9045bcd33c794399d5595903a6db8a84aaba94d894e5778fde7010d8136a5c7b281bd43202afb8931cc4337036bc4d7d8e38fc439b6401e93c1fbf6c7491cba52ca408a5407736ffb223f2c2a7aceae6efed54855d53cd78f9af0869a36b629de88defd564d8b69df7e71d592f5fa1897da40a083081d4911710096a29dc8a632dee86805a38f2620213a1405af904fdaebe560f8ee1d04b367559c206cd85b348056536f3e7f5d1af982eac22e22faaf8424e617d8c8b1120cdccfb6b758ce42969ad676437e2578048dc99c44b28bdb2101519a025fc626ae86d9c81cd130786cdba806207ddda149180693db3fb9a19d2ad93794162160131e6976f2c4de53a83dcd67dcc3320607042930f625eaa3c0a20b8b8df23f66e264cba6f16f2801bca8d295d2dddd13c7bab256e3c3dd8a1d1b8a47d524faf187bfdfbfdd1ae387a671c7f9422aa66e16b6a4ed2573b8eaf503ed8fd0743f2911a8ea9435a50f0416a61810744425e33c0f124d2520ac626431958dee892b117cbe645706fe642c460f84ee3bd340bd37dd67437886c67cee84c2b4c62a532fc522100012c31bf1ca81d304ea04dc6e5630f00252ff795fa540b9414009d20d0f5b3a2e437e5b8759f9ceb4a167ea0260fc7dd4e27040d14ace1263d5000cf70d680986e93bbb9269752e8b5cb9b659a60ed54c119dd51274cd8d42263575727577421c52d02a3cb0b7a6ebf69bac1aa2632c472e03984155adc007813335d0d310542ac3705e245ee51cc308d1a04efb920f139b4964872fc7b260c93efbf9b3096484f4c1d453c070d5ef2a245f3631205f5e5f78758600509463fdc6c446f44b0560671c92c1021a68ddf6ebd52d9b7e8e840a7c62a6a74720280ea6ba75aa7465139b09695353d81a41787866a8424ecc16d09b2fdb480988e44dd9e6274382693d6fbd93bd3fac31163d82eaecf0a4461f446635cb8d9251642facc04b680b7ec8bf4d8d68a8f0259f6ed5f82f6cefe74ad3cdb89a05554b2c394d29cebdc4f74412d4ae20179ca41bdfe335051581445c08e7c370d6f11db6f885ed27a3b5385f5abdbfd4aeb987b67c2f51eaeb470db4f402b8a912298478d2852fd56fc032b177c476a143dff66f5eb34d4f44b1a4f77ad89b34615088400df5b8f9bda377dfcd31e049a31b2ed16254f5751dbb038456f37c6d2b98da51902148421b9a1885d535c7955670a8e95baa8af784cf10a8e7d0b3296aed374adaa298a2fd32831426f0be6f8f88f96f693f8a98aef82497f6f115960702a49c35edb676902eb1d71b51a6c2cd71b23c7cc95ee4924cece1b699df73a2a8b037e94250c99ab2bd8d995746df807b6f1f04356dc1689a12d2b02d695a671aab8391427ebfc939747570686446419d665e11ad9a7b745ea21ba299bd34e7079fcd5b833c8ee371b00d6d5dd54f9ed7fa6c65ee91b09f70bd8614a38ca324fea027490195905193641f262cf772872056208c69746c38cb9ab79f5f6002389e231402f912bcbfac2c4d2aba9b9d7a40ad580cf8376ac4e0e2bb11019840fff41f9de31cb97ffe8f63ba5c906da7bb37548f5072f11ccc5dd677a59ff40084eab7c718702f59c6fed678513d366f32d95e1e241d06ad6bfe7eb662c1185506571b95e84064fc687366860be79df177dff678d08255fe24877434ce35ff52bc01e1c9ce306093e05d2609d490ff3fe4132e71997cc9731471dfe913c8786091b4e5a4ca82e0d89aa6dc95435e7169796cc5928b0fe5cde4e000a0c706b11942864a870c29af4ab660b21a642ae15517cc369ccc9f8425150bc102d454b4601a2d86fbbf937abd38d64a1e7025b8f86634b5abca0956cff233e1055372e603357b062a7b74ca679d07ae8716450988da3a8cc6ce16b86e706161184c2425939b8998194c306f93082eee80663015a4b32f1e663081d509c2fbede70340a8c3a7cdc3517529f5c94a8767c329c49e347ef0e9a775e2270da6db3f71962ffbc8737fb190f93904b086c20bd2f9a0406b13a58b1d0ca8adea218b722035644200580368320bcc23f55a684ebb9f7dd3135946146c05a89d689ad9b19f75455c1e5757a83fd5cb71fbbc42fba36a5bc80c80ce119152096ed7310df44c72fe57f313ac07e360cd18e1d0624314b53958c8876e8563fb38324e88c814b1c619198408a47ead36a47fc509c0adcf871acb729b470faccfe09bb577c343b6299fc10443420394481b56de4f619cd2788a3ea758d99e8725b65022c1c68c6275a2eb27325022890ff2ecfa2446500e37afa83f45c3f77664204dc44b869476d97fb9726f6c3ea97cad8df28f83dc63815c1f9d45341a4d6b9c5e1f824322d5eca926d4fe4a4d295c5a0d5d8c16412d27c165eb39078edc86d94ba56b57d4fc6525b908bc2ed7a2cca4e69f132dd7b9b6672943d74ee0375b45370ef08f26e00b81128f37f36b64f1b5133b04bbcedc7b6117210a21d0645ad38c56ab7ecc6603eac8c29034ea5bcb6fb77f22082463cc5e03972044a1096016448351e7535a4a516e2581099f1552d5a58817f9ca69f79e07bafdca88bce349493c62208527734cc926cc7c9ada448a1377735b070d7fc32cf8bb4ccf4920597b07d42d4240e5fc0514ef00be3b49f5c6481db1bc2cef05c7b00ba92c17b7c7f96e978649d8853170b361d8c87cd9c644bbc0090c1c34eb844ab3b6a3e55d6951cf89336b6fb083d8016a44e21eb1fd6fd20b04bf577154f9fc9a1170e96e92ebff215edc8529614222b1b1b889931ba1e83a67bc4e9e139cd05bad774aac8bb7560737949f42b5988ca7c28cee6925bd06a456c1aa560b09ead0d35b635abe65084986d04e786ad0a6b743b0724f30224ab6f4f9cf4fa0a393ca753e922d192bafb1ec029d45320dc637208269b6f330e0415aa25613483d167a947c5ccf4d22be07e14ca6299f54f6614d95a7866bbdd6ac3760be8e4a64c8d452dea420d1af281288bb7700630e1b7db69abf8f7024ae1821ec810fa193e6587f4683cd0e45e53b894b60f5a67a26f2872a12d283da6f189d102b61662265d4c004a30c31308b8fdc92f37e366171b507b7919da88812f5a72d0155a2682caa1935254b07d1678c8ead16506fe101f2e95959550b77e6c08dbf73cf606b663495e532276f03574b90d5d7d0e4996ac5843c96e77a920f585ef698472be49c7531fd2985ce47cee105ab2e14a2cdcb7af738c85a8695c9bce942422ca629b160513e55e9b07bb761b87c3ba68b94580c4db890ea3939a4146f540bd65b232bcccf06355b08c394a1de5e3f6b4757fc68a06c4d8eadde012dc0af1138e470c58d139836c4568c83a2a6824f7f7668260253279061d993f8e00d513e0e4c413521d94208177d041207af24c4ced17c87552bc76820388002dd10a9fe23f9e01f087e41d7e4bc1bd526fb3c0f4a22b449b2ec211a8539a872b554f0dae47e8804592b63cce86b9ddf8241082402df5b2bd8602813f4734806e77fd65f5182140e1edc3097b6b9014d08410604792e66a76b5cad01f23cdbcaf786a808c923eb3bda6563f514b0dadc0297e807615d3dd6d586391e66a9294747b4d1f4c120c4bdfbbb5e87f21e813e2991208bb05b760e824d98a715fee7e2429935dfe6081f1efdedde4b9c98d3e81d00cc06647734ed1da15129705596791c06753611d80c8a009dda8a85102489788f6dc40a44649287fd1c3d76223eaa5b06b4c18f7df8eb5adf639abf46c19e916609a9548ca89cdac3e4b10278dacbaf67b3c9cebabe9d137cb741d8c36941f58d3d714512d473ddb22c112021368e81dbd19dfacef78f13b610c732005a7fa0c398de2071844c689be50d468ebf88bdcf1cd66284789d1293866ff62de6c7cdd45fe93785cee117d30711fc16527de7293c261d13a1566bffa39cdb0947b60a47cc7d00811ca4b53ebaa4d1c1d134c54e6b84928755ed1c417c1e4569d593a7e8d005b67987059bd4c7d9e54988b553cde194bd397d5c4792c3ae45282a55fea72abffe6e9039fad8ea7a879f9dc50509905a388c9b438e0af6b68245620c5bdac245828770746d19a25d9e28473b3ec7a815b2126dc03a6203c0618e69bd3a8499e6cd04dc85afad44808a9a030ac9723fd80d2e6ef14232e0ade3c273056809ed41c40cb186f61b85c19d9a5fba5b1d60d4dbe33615ea10e376857945335c811c0a17d93a9808282881c54941326a8803225fb0d10831dc986d0180e144e7d44e000bf15817f3c544317a7127f3685a1fcc53dfc23632af7828abc90f8b3dc148c48cb39eb00afea45bca9dd0f1589994636562a364b2f0c56df4012a664d3ff0fd10efbe4e0b58894440c014cb533284e5f892575e25ad2fb71d1bb9190a6cbac4cb2694ef65dd2301da3aada1b1d65f353f4671acc36844b3e9b6db48fcaaa8ae5773074308e720336d1fd84bb80378da4071bce22877d437fd9df1c9f03f7a0ade304498eb4e2d247de4772a80bae872bb49a27e5e58b13656c0f0479eef3290866934dc6b054ff3140f724c5ea66adc35971156c261dce7405d400ab9224a12a803455fea356e9d05f13457d5c2d252edd0f7a5c32b48c6525bc5b1f06d419dd74c3359c5edf0ced25745a0660f348f2049f9b2385010597294e6221d5d72cd4d431ecf0870e2dc7c5a80a9cc6ed34829e95d7b2d4b5d1d535cd74e4edd202c299f99457187e4829f145e950344c5ae73b2aa24c75582f947298d36b56e31657d1eb50d7a93b8683b8322c00c3c95c0c489caebbab9813e9a2966921ff5214a3a7ea6fc4592b164f2d2a835d83cd612b8e034d093ebe9dd578ddaeb6ef4a1b841e000ea39fcd205275d883409b2af41ce239de1dd5573c11cbcfe1c207819e45db4a39d0cec587d02c53f9ec161f3a226e46d997249fc5bfc5c483d77557653536d82d97f2983ac48203620802df85ac9ee524f653263dc96e321207f9e872068378ec1ac337dd0c8c506a94df1affa79087cb1743ab84d109dabbf8da67bdd2d1ef1084934a712f7fd160cd9e93ae40859e33667dee072e64bba447654e77c131171442275248c5b7040f7239eef3fc3be45cbc3b4782514ee5e573cd127480b5a05cfbbbc9b83cb1302a02c2b78f11b19a18ffa4b9a507b5aa14ccce30a9b65ba3a0ac645dc1c5d8a37c714b1712ddc1c2c6c1fce618b52a94dfb28f2d325671638aec0061a093d13e628eec71c82440119428e97be406513fef1a6bb11d299ed7d04a7a7cb4b9bc694838592f7012d659adc83607e54befc4939f4cd9766a6f2625af422f97bfd3de2d6f264659bad29cb4f4025e9e9f5ad7f452a06a958f91af1b7e9f47989f02f7f6fe4a8fd0d25577e43866fd219f1b9aa0a4e281e0d4d3248eb63fdf4e18486ce5ac9b935260aff954eaadab77226abec02a4b27a47ff7944b243b3f856878d0a85b393b4d40e717b27f301c3e652b95f92cd39fa621c843afe7752085989d4ed0b3e7acc77354481c2cd978352fe23305ff3879fe915c9ea69078e4815ce361226cea79f3054760b77c06ef0b8ee804d36c3b1e21b92961072e3d69b3d06e1ca8758c05fbe898d0ec98662fa55c4b43de142aa29da252e7a7978eba7f703e2cb7e61bb91a4070eab8bebb4787612c7973896b7b58b039a576986449318a1cf1cff7f108b26225a5c60c6cd0581618da1dc9cd1c90916b53b9ab045a71bed07b355ba1b6d3174f06ffd689b82c5851132aa803ed568955858ca9762e9999c6e80fe01e3dc01126b292c60429cf67f5048af7b6ffbe8ec875288c4ac235841fa70bc874784b3ae17072324d87349f2e67de4f1f366c05d9bc41b53fa88de5e83b63461f970a6c4c8db438d4facd1fbbf231af9ad05ba5485e0088b121ca83a08fb828f0191baf4e0bfe23065fbab2a9ebd2e27950f2c3bb75d0fc3715d9b86b032d67d302db7c760d096ff05e7767e92281fcaee66a810bd8cffe5deafe11bfdc525d25b12db75a7be55d59692f358c10f0f02f1e2ce893f2593cd264a202167409bb4e132662817fbe03b18000d35b19eab2218e71dfe108eaf84f6c271e461640f61bd7f8175e85ec330fa2b6bcd39d40368dde6c0a2942d82a5fcc216daa10fb778695b91026aba156b03c3f1da58fb73fb28d02e610170c7cbb64ee4ef6e84c41faf3eaaaee1b75305b468d27b2ad1b8421431e0da61df5b0e404aac4d353da47e8483a2bb0adda5f3a9b451b8ab3f41e976a9080e3891b99171c3fa6bb20647c31e740d31e6555e7865f16a56854c664d5ef6554cd3bf44e8351366594d60df8c774156406a5510f1028220dfb5c2ccb29b3714f40582650057db00d73edd6e22a83b48ec29ed88f56b70e2cfbbda06afa9890a87fe8c9aca47742044347b0e99e09e4b781bcfa92b2e6d17dcbf0989d509d577df85a532e75f4f2aaaea1b5f801ab47aabb368700221f1d0984bcb7f6091511eaf75dcaa694037a14bbf4249c9bea6425091a013acfae6636454fff966d97509fa3cfbe1d2e7411eff2ac39903256483cdde20c70fd28024b9ec7085df8003c0509f2d6b3830d8d5c12b88e6a768c4209cdb5ea85c62435350b9e023a0a651bfd943c12abdb8ebfd3df23302c4dda3c20a71dd5056cfa522306e330eb20ad16a5cc95f4395b0b48c2789b0cf29976ef036cb59b79a2290c746477b446cf512d1233c586f68963f8d9ea9e50bad53aaecdc604aa656b19d0da6923157546d45eab870b4e61106f70e7366c51b7a169fe1fdaba839caf3f6765ea2b3cf91ce8a19faa61de0fedb3a78950fd6b7f70a32b60562e09ec5d02e1c54012588eb232ef2734b148fd676e18b3f11a1a3f102343cc3a371ab49efbba8f71355f73d91d680b9d09b9d6e3e0e0d13b93bff63ea59f13190264761a785df317fd4783085e260c350c94b0856e0f0ec7b68f8b305ca20d49142443c26f291c828e00324c7f2a7e74bc7d6f5b68a00f001368df354b7c5e1b3ad9661194e65f973a79147b127a11505b8c6abfb80d3bddc410e88eba84cdda44182e26f1513fcb17e3b041750a8b31fb640d99d8dd9b679a1d72eddbb90ac2b8a68a6fc0dfa430a3adc5501de470d1cfbfa6fce41e49ca690f907ef0367883fce82d0042f7fde3ba2c38fe505078792529440bd8964d299036d47e0217769fee0a024f00bfe615449f38196b87ad27f991984e8db896403555ead7b7466ea7c1df6a66a9e0a168b4383c52834d25f52528ce3cdf9f227cb7625f12b0b64d9ccbb32e92b363e3a5ee66cde912ca02510462523c7719862aba56db247783ac0ff013d358abbb17497251d09b9b4b2561e92e60dc8b0e1f3ebade519546d7ccb1ca2e8bea637b3a20789df88d870ab89467499b64392c96cbd46637730662441b3d84fe05ca878149af86e55920dfa9676d00b5ea882561d6303ec0a52616107017786047517fcccac03c3675ed3fcba1bc8c5bfe4ccbb6e00c03ec3753f3f7c9ee1ff539eb11bb311e487800994daa734c496fe056f19c35841f90e150365614d0fa0e0a04eee27f6668bb2428dceb6cb9c2623b9595863cd88c5a71cdf52cfe7a91b5f09dfb2a9a48b4c60165304c07a410406db97a6af35363ef405b77498aec42a31acd34a565334c55805a8cf278b7d2876bbbf111d066f5621ed4144b3ca98194bc743f1051d8ca0d8adf55dd3f24286a32aa72e13340f84a82bc9453cfaf9010e0147d2b536395451923d5b15616ee3f61d92dded03012f10a1d98a95310cf8d199f91aded1f4bbb8e34083d704e5d96fa82cf1941c24b4f006c13cc68209de352951df9ace1f2dc2ab546bc05b0893b3c1a399fdd100a4bd2f868521e00aacaa0aac2364101f0d49664c3de70fc2ba76f54a8e9b73df3c62040ec64f550e74b22255aa60fe858d0dfc252e28f7e5c8e7f64830af634993fb38e79ec6dae823dbd0b0a5f98d3d18abd7f39ef310084843ca0c255fb85754be3d4752ba38c8d32924f929da887490de8e7ec62e0be135aa67df0c39179e6cd2faea90198aca2626d4c76b15584e3a3fb232d5c151517d77c257a7ff4b40dddc5ca4a5216098bc5908a097f43ca598f98f71a2c3cf51b77c1bf3b3e4569018f0f1adb50a954968a68f9dd20d6b99a755bb1cc400ac6b736adfe21cabf7c96e5b6f661cfeffe79c5753458e0978b37ac2d140799bcda70040d4a2dcb5fa602f5b731e8855497fedda65545eb9fb8d58957427bbdbe7c96f2e237cbe868f34e1664be413f3d665921c8446f5d2f84d940484e4b420333098f41cebb9cf397d5f857ade1727b8093bfba371887bd44fe0c6cbbb21191e3c6f9eabd1738e8e6903cb637067b217c037bdaf27e440033107ce04675cf8c5bf3526f0c3deaaae9b4708c1289e48341902db4a6f072b829b5daa555affa7a8ed313665e88036648cec19af8f64123e49345aa2214eb1c122d9de39a7d93a9a96d19dece84c7f8851ba62f81dc68544279b941480e4ae061641f7641fb64e767d5e51dc3149af76d50d6673a8a88ad1da8eaf51e4f825c5a15a8ddb146beb03336e9ea4d53120e5d733dabeb145ba6b784d42a37259f4c14f6523b89ec6c031d7ce24f912c448476dd6169533c0919eb96d3288de01ccc571be0d743bf78259043ce6aa0e2a2921863874200740ee068e9cabab72676130826b95c108dee5481d1eb37d72588865b3be5d4b00849ae8174c35670a1de92dc06cc82590a08ba40f15bbe4f7c29e65547c8f3a4f428d2bf55346fd6ec9bbc85371b93112fd0e6ccbfce194ba09b65328bef0f19a8b1fa99bebd26c421c802f137adaad734487bf3b7931998df3e8a0a0cd35832a6081011af6265a5e6d963bd02b7da49fdc411e60d03f123b3011243845f52a87989c8fa1d789eaf460eea69d33f3f9ef2a420918b0fb612b2df5823792b8b016d9cca86bdac275d69a3e2f94157a5c5b98b5a057866f006c26cd50dae7257754bad05a5c6f74be1ea3ca20c314fdb242d5e7433ed2ad23096be892fb1222c19761fa4f807c27627de098d127a47c015f748da45a100a399eda096b099bad7e4637813680af8cd6a237ab6bafbdecdcccda25ac54bb84a0c712c1e1dc2cde5e3faef8cf3d9bc9b71d2792af1c05dec63d0e4dbdb73fe5d4fbc7aef8bacdc1ef97ae0bcb407647815992b3e0db9e4bd51f89fd94edf025401299409839488b73390b7cc31d1713560cc27e324e42fc9010f174f767b17672ceb17715f9e888357ff976202476b3cb0d3cc776a350b0634774121eb2c29578aa0bb8ecc28fe7a0c4856604ae913f4a9666ece31e86d660598a97165afe5826b828faf87f67f15bf511ba50c3aa4d086a38105d6b2654ad390a9382f402e985059e3c37387472bf9682436ec546e67c6028f4e5c61234cb5172f8a48cea3f38229a1080cc3a2bfe57ef5a62c83851062bc635884a06446ea8bbbc9d042931f4de2ba3ca0d6b80f6d2e408710c98df32403a597c548288779b1a14bcb69984ed84ca9e3b3316288e44f001a5502d81be2c8015624dedf368f9bbe0701c7e245af453d93e26e0194a70aca1e7ef6a266013e29ab5128f72588a4324516d3168e325b3a6ae17490b58aa36efa00cf794ba8640b990c85ac8ed2b34948012148372fbf52d855ebf1600362ccc4fe478d0c4ad6bb5d31a77133d83bb5b6493f9b9c9599bc1e8a849bc9182340bf9819be9495a141f92430193587ed6c9029a17b7e9f8c99436b2355ec4a2b2398537c16051c7ca38088e62d1372e427469573f319517b7e820142e5719efa33c2b5b87a42625747bb04fcab1a69511477e8ebdb46d7421562f30a71f34efc839f2c9c0190c317701ed9622c7592178ab808a6c08e4c5c942f39ec5da2670131b2a040a7e61a3fe6d678243d7533b65d38241260e13332ebb4f5ab22d3c3ff6e45903eb354adc42dcc533ad1bb5ac1512ffa10f85abc424bb04b4d07b039b4e258aaa792d1e60d072c49711e236b837d7cf812fe9cc2fa82d686e9fbec93358339b3e3e37cff2f38674cb9e4e8b1b13428e84771ae5ae0896f78d5c296bf477a9f42eb1f5cc5624a498b206cb7c097ac4876cd299b810e9f86a6034c7b86480b4f63fb0ded45a8dd98d951efde94d2056d97c527c738a75c7d4a88010f6a18981a070a6860a8214f296bb80c9812fe6b7b59ecc637910c2f8aab11449f5f74e4c7def9397e1c1988995ef40f5023999e1e0550d1b29f5e455f2390a202f393ab9e503e932ccfc68aaf18c954ee5586f4098ad42d406379b062b3101314177a5e33079be8f116223e852642870d6dfd9c105968baf6d8f2c528d3052ab3a9be9e8252841b92c0bd8c21a0fef1b2e4ae8d86833b26b74b350da45ade9aa7ea7376f5d98e3da89c2e1baed8c9b641c1aed66d2029693f23f2d619debe9177b96103b42529a69e34eb07d90bc5299efa0e4114d1bb7fc880a9c6c0a916fa8e245da3645c18e75b877ec0cc2e0f81dd05af4c82a99061a8a36faa5fc0748d67824824e4d595c7e7dc807f608f094fe49b1f4595f0d739aa2aef8bf3371829d0746f91e1345501c96504e844dc71610ea97ff951e0d3c8fe99982fa289c564fbe159af5c7b46bfc8049675730b77aee79d263623c87a32d0818adef97b4a546852872fecb38d3b19057c2435a56bba007d28ae121a68dabcfb00e1ee2143780e441c8a462c0c1c70684176ed55e21c0ca52d79134a3e90480c0852d01261dc01cb9b5d6dea6f4bb595ddfc4944f7d3a1cb538d648a8cc776998439696e00ff9f85df8aa6fb71758222cd0f9c9ff45e5c659a77db28c2ce484b463ba4115259ac58b22db644c5ecce14fadd87175048ade608526b0c78dcbe1b3f3bce2f5dea34c2ba90ac9bcc0982f697d61e49aea8040c080c15b6f45c08cf62328047b7a576463f853f7757e537c70d0e6e08ad69df1a9c4b954af19ffc092f4f10d7319da7cc695c0557878c8591df7df32a8da19032768919cc5702cce5ef45ff0e8d9debf9b59f6ed2956d0fe87a9cc06a5bad22db73ced370274336532b38c32c83443996592694619ca44665e9ee461879810adb1a860fbc4ca093c9a5034e7307693b3a98c40caa8acc9cdffd81218600e5fcb0eec75d446b1b01166961d0e209ef801cbba904d486928b0a599b65187637b6d414568dc8fe1db863a0d134e57f24a9a166d53d43e83c20f1c74c0fc56bfc2c4382e5411d23bb66b65cd8b670a1b7a031a8e8d4c0e0224a0abe718f985db23046f013a6311435c801615251de9cd4a644ee22c3bc229eb8ae3c5bfe16153f42239c2191b022fceef574395a5dde72aff9856bed129bf11299496b7e46fe66fcb24f6fb093c9f459dc5607f68be35b437e7606c96b496b456f209697b932d496b724b12e20337042b043b8270648240418fda6d68503b7070841bd46e63a3f22f6b674a32358fa5a34a3e1e4bd730304b82ca343dfa47e5198b32cd1b71cdce70896b1ecbf402d3a851830c8a0349266f43f081ae6057b061c386d4a9dedddddda57a296aa95e6a29aaa9dedd6db8d4525453bdddd83be4ed795b6f91ea1a9cda7b76edbc3f6fd0bbbbab26f59bdd83a92a80408f1d11c9401f0f1672ed884806fa78b0902bc3b090108f47e47061d8f77e3e20d08848102a400a521405298a8214a4280a52100447a00884bbbbbbbb249b36225223c6069057632a400ca5bdac8e8c7b591d19e3ae65753a3138e2c65d1a35626cecc0c38d11fca063776bc4d8c84185191c3b70c8f810638c555555958a0c64518b231146aaaaf846155355d58648de9e37802db6bb1846a3c6622197d5918b855c5647625848c8ae65753a35626cecc0c30d1addafaaaaaa3a4452555555552455a8daaaaaaaaaaaaaaaaaaaea5555555555555515f7aaaaaaaa1310fa2656555555dd5c57155755d5abaaaaaaaaaaaa7a13ab6f2ada55df70afaaea31729373d18f8f5d555555555515bb8ab18a5dc52ac68e5d555515b92a563176ec2a46cf23f6f879bc1e47aa09cfcded7176b51e418fdccc1e638cb1aaaaaaaaaa6a4324ef9d6266e60d8739bc610ec99260c0eac8b53a723b1d291f8d1a313676e0e1860ebbbb104208218410420882235004c2dddd8dd9f76036480f1ebfc0102038024520dcdddddd25d9b41111203042fcf0b1222b2222b2223c7a80e0081481707777779764d346446a686a188237bcfbf7de7b9b2f8713999973e6c78f1f3f7edb8bef3ded510fbe91c78f1f3f7efc445ef640ef7d9ee7612fe45dcf7a9d271f6fcc6166fee3c7eff1beb7e9ed698f7af08d3c5e5eae9ec8ab5ef640ef7d9ee7612fe45dcf7a9d27df4e4dbb1a767639bc6fdebb39fb5ecac119f5c53cdeeeb76fdf7bfd7ce0c8f4eb6566666666e6deb7222b77762ab99feb7b8d8cc06f7fdb77765d6b41d9375b6d47162ef51edf782fe6717c92f97408a2cd116666de219b38f0d2e063736342e65e7377581ef606f399999999f912b86cae6a7c4f18e906e9aee8f2202d896266e60d8739bc61120d9436037d3c58c8b519e8e3c142ae0cc342423c9eddcf0704da1a313678ec767753dddddddd906a081b520d1b420a52dddd0d1b420a52dd7bed3d77bbbbbbbb6bc4d8204d81c37977777336adbbbb475aebad5ba4b7a9cebabbbb41fd694f37d6217db5d59d961dbbeaeeee6e0ea77bd3465aa4b7a9ce9ac321e134a849fad39e6eac43fa6aab3b2d3b76d51c4e37edba5b207d869cc3434e77777737e434840d390d1b420ee47437a761c3869003390d610521849d86d447de9382f250420821a4e076777777d7a54f0c7569c75d7ea3d31bede4a8bcae82bb8bcaaf4c2e9e98dc5a9313f954473e6272219f2a7639619ec9353ac03a32ce9d3294f8c8873762c6913265b470958fa60c132f8122e5e44ec5bc114f2d2b62c4553c28f3461cc40982a468b4dbaa9db74b6d76c9074cd36628f1a965ad19549e42bf332eb544bf62c01c1889772675639b2c6c9b267a2c9fcbcbab3c96ec940c8ac9c98f3ea32507587c47dd68112985e3c667f608644091d1f641865334cc46bb73b4dbae51320dc3235aaa41ac60472df95a2de6435f6be9096803bd4dba4d0d5dcad9a402444fcabb132a2befb66a05604ae1c2ad7817a6c984b20fc0fec400ea7ee500755f420775af0284ba4f2942dd8f9630b93749d34ed24ed26827ffe1a88aa775f233ea95813eb3e3acd89e553f7a6841057db23299812e41a0cb98b40c8b5aa6a3ef5099ca747aa35068b270cfec08502d5a32e98439b4b360e100d3cec23f9b74030c4604b4bf4e553b0b945beeda9ceaa8e3ae32b919542c80e22a9f5a3a933bd9dcd46d6eea8e2e31009b482288a9f2dd8c1a61477b9cda5eb4e3be8f93ad17d60beb1aed66d4f86b5a36c0e265d48efb7edbb6b958dcb2d95602a617cbbd90df2f9daab4ba14cf5d72b379ecc036ce4dad1cf795b3dbbaa996f5aa3c89eb71be3c2b07751f6fcd9d31d49d71a35a168968fdb22e5fc765e95af4e5d5853ade88610e4ba298a35338b66e6729a59492bbdc2685635223c800b6f18dab78423c96ebbd37bd78ab0698bc0c29905445c4e3ec7a88ca1f816204a5761031291b34c0ac77540c5bbf1e270c8b72cb2d65b115bb9a844dd3f437a29d25e3a91bd408281c8f65aa8bedcb8bbbd14281e2a38f505873238d7142654e2d28e43669385161c85b9752bb3e5db48bdf18e344a5e144ed62a830228bf82e86ba6d97d6ec4e408861db36bd8669181c33c0de49de759386782cdaf90da4833c16ee1062d8b671224abb78b9cd194a3ce5a3ab783265ae3c452586b241ed30d5a49ccf118253ac9ccf0142c150345a42da0cf660eab4cda99e984c7a28fc95c9330f859f3279c743e18f26eb78287ceb87126f26e6d4d2c2755996156322a1cca9c56359160786007bd5440c0c74300a5a3a0ef2c2566b0125cec9d0c2ca5bf88c96c99a41e59c0c291f7d44658c6e82e60079fc8004322d29a0fe4826d33001a6d12e86aafd9a9ca45a5ce7a80adebf91bce6e249aa33592df69a5d0cf5badc28e7423bc95b6854c46754b99dc9dabe4d0b5a2d3817dc5ea1426bfb6485be71ef366bb36877829ba48b648069ef0ee2ecdadc695953fe9a914b4cbe01d671496534dacd6869417469378d2827c3e8294f19cd683951ad4bf99df22b736a19cda9c5a25d0c2bf14b393e382029944b4151c1d6650b9ca3703835ea8ebaa531de1002e0928fddd57e80834b5c5a2096c4a59d992131122614be137048a1854b25f6a1ee72d7ad33e9a22c5ebd58084e01000e42478f1e3f18c863997040f3a3f2373a3c96295272670a19bd8329ef3095775b00de8d5c787702e51d0158e4f708782cdcb5ed7b94e942004426271fcde9a5e012097a42b9c4a547b9c425d830c6fcdca8fc11509db55a84423f79674aaa66eb759e48d5e45d8c89744daa86a2a14a254b0858277ad7a4995743db0e21866ddb3f1a3d0270e7e382e4f22adeb3c185a4fbf9b0f0fc06ae39d8344abbd07baaa139d59369326dd83ceb9dfb7376cd699f9a042115af7819e7621b3b517001082a45c598482f3a5170c1072a154593ca41e9b05a784e29a7ca86e99886e918f8028c2385382b08188c08c478ee7272019b482a18a2765c7a2cbc33adc363213957920a622af38fca2598b1e1c5a5abfcf68d7615e02a69f7b97cf6c97a419e8692f75c52ae79d8b099377005fd335dba8268935e2c206472769b2a77f3c2359edbd91d83b5d3d9401c64d4505fea5e6bc9658fecc2555217be42e8dc86de0bd7d09ff5620a6d6a0c71896980c0f652c28800f1524c2dbc333fc03a2e7189691e8bc8f9960fb0918b8c5c4e283342bbad23d77661462e722932618e1a6c64e450064683890dc35d52f9bd9c26182617bd2331227172a969f2da463b1975db4c80df4e2bfb6e02d3b4b2d245468d5ca50b93983d8c2e4fe6045ca669457b0f34de92427b48a17cc23fb8865178022e4c33adf0a7696529fb98288ff6f8d1a436d746e558c0f8f540dd0ed4c9dae540d56e438cf1a24fd60b91c2d8c32aba8a97dd648a6654d1a72aa7f61bb86ab45bead235bba884bb0eea87c7cfcbeb939d7d5c9fcf7566dec11c84468c8d4f76c10ece5034548fc7e2014d96cb0a92b3d80aeafc592e2bb2b3d8fab9e4744ae6562a46c479a2de554237d38a88ab78222e2a4246bd2e4ad9c84a4a98ad159dcf4b4a3e9dcf27cbaeb30f84d8514dd4c907426ca09238e083dc749e5572b9e17cb22cbbcee7945c723e979d95bc3f9d4fd485eb874ed34af68c96d08b5236b817d73fcffec22eae7fe80d5c33fa42d50c74ca5a11ba5c0b06d03f7fd68a0fed5c363be893e5b23530303035a35cf346a1c9a5370251a6f901eb5a4cd5a5ebf51bb85ebfae9743dd6725600303532f6ac315bf9389f88d3cd7cf0daf72a48b4dfd7c63bde07a5deee3e52bcba80bd78b4ed3ca8746dac38852233ab583e6f6d0143d9b26ffcc9377268997fc20bf873b600e1e8ba4bce38df8871e6025aef20ea6745b09ba9950b8ab508ee3de8823313b3f999f9bcceca219fa3641d726c9b991b975ce0e8e4019393715e6782c22e7431d8f65a188c8a7494404669ab8498b2bac19517540dd736953af33a7c5abe39a8e7d742c44b734e44dca4a6697aa26601eeedadc4ab7ca1d718f379a4cf350989530ad30236132c19f4eac3c1e60909714c40faadc01b65d9e9b53a59b1a53e524a7cecef8253d16eebcbb96a872bf2e371db93340bcd13517881260dcbb9de1be33a54ff6ed336ae7e6d69d792c403c96ab53af4c44bdae6f5e0a2e7dda98aae271d3ad1e980505eb09a3389ae151679c8089f847c073be79ffb35688f835b75a35d85e5a4db05e0805b1829a3a52a71b1881877a659a16e375c5eb8adb54936587d68a8ce3b8cfa8db2da0cabaf3e5550f7dc09ad82e67a75237d0b7f9f9354b40883c44bb374405358fcda5c584268df8093d9fd3b2cb6cb54b7a619e73a7fbdd67b38395a3dd0c15efe41e1e9b2abf0bc40235aa3cc7b266b08e4bd612b0fdfc84814426f784ee79f739899394c8c75ff452fe4d3e4a3e00827f648fdaec70a8da526efb7e3bf7c85149b54e3b767db76fbc8481bb767958af8dbae0e874c967b3d37ef239f7b9fcf599c9cbfe3c3ea31a10b0485f787eb260f85c52189f732f5c237d79a3ceaff7939790d0cbd7015d927cf34624a11742f73c34bb1caac7733d42a06a1ef948696701aae399af7a5e9074d26807f2ac89879a1c646242bbad1ed19776fb91f9b2a0afe7208f8786eb221d93e8dbec70a8dbd95a21d22105d9e732bba41cf646f2dcdcaecdd0630af850e4e54773f30620ff991d8441f413d12f11bd5ed017aa1a4573358d76d93b87f1c2b5f37729b377a29fbc06501a324a726d7658d524f7e9a5d8b6cf463bf99373281cedb49f5c056b53f4cc0a35d44f87662f5c5fbdbed60bfa6b7743bf4e8119751fe5d41e6787438de7a60b8dcac7797d13759f03e0dbec7270211fed4efea12f5caf9310ed66d4ab8a4458154d7ad004525f5ea500989d04eac9b1d9e1504fce968baccad32e9efe820290f4272be9777639e8a84b69b7a9f497011350f71d0e1978cbf450ba1c6aa8f22a98c693ffa75714405dda29a0c610c0c90baf18c19fdc7ed3491193db1193dbcf408861248b06ebb854d5a9075588421020500236e2949504cc420216f2eee4216761daf021f1123949ee38a08aea6a20ed2be415babe822b619dbfc200234e35d21bb8ca431d98a42c040fc13dd8c71bf143937f30108bc5ab47c0e4236d1e6f14e27e9d3be8dd75719cf62bf4eebab45f87413b8cab94fd5d9e2bcb66979a47935eb02063162189536094d22845e5a068dea864f22a9b599e4493979433727360940c0d49d430fcb0945b674f4df57cc2a4944faa8cdea4c7d279cd1b005f1a01b37ed10edb998d648a666732475c256586fc592b486ef1c04e660c51256998d6e18d98c61b00df2a02d6354cc3700a8cc663993620a0a99d3a9182d8400fa3194ed134d645693851615ccfba47a4925a3c76f630ba94dce56c1f34ded2a4d9345dd33dde8837b54b319bf2527231d26eaf71fbeddaecf6d7be4dc67353a54a3abd51a4dda8ca6c761bbda29c11550937dac55fb76a8065b4db360ea4cd1068be6b2e26afd077ca50e872afb9a91611300a07c96c1d2c984cf049cc76c1b4d23964a615e686806df5eca584a90048980c10a7027c281d3964d60091b20e0965362bc9be02741a8a75ac01284a091c83ca314a29634c24169386895461ece7038dc6a864091e099b9a3a3443182080006317000028100a040322711a853010cef61400139694506a2e9d053214832886821020c018008001800000880000013284891dc30d385ae5997d2299abb4610e738240ae63ef46db964cda312d541a8270305c22e6230f8835e6ce13e81c5276e6d1c17796fde3df6c72e9d238c62daaebb688980a0e120b81887a633b51fcc1b66532b222cde1f4a02c2854c53f7b8dc007fdf4f8b991599fc007b2da0fc8ac1127c250f4fdc3501a137c390a7d9d8632bf21a09e70d93145ed6a000b93288cd594cb17df07bcb57486f95fbb4f5dabc1f25f233ddbe483acda8a7017249b61f8a3475db833cb3a87235afec9cca14f2342ff5d2279789bf8e89bc293569141af44a10ca431e22368bc2bc7dacf707ccd2356db7e4ac26b2f262b03da954f34a25c54d842c00d5748c361e5d3b4e292d5712d53ddc93b4aa296538178044a0c0d301cee4aa7291b68791106c629883fc5b1c429e447efd069165310f155d0c2364ae19d3da3029515bfabd27e60ec586d221992ea21acc75927a02ac18ae6fd4f597b613da0df76f3b97d9263e810d643f5f1cc3e62af14a1f652449710ba5c46cc512560b6d24e5cc9779d91d4d0d4887297b5f004324de94c6c8d060d6af450531f4708431efcd87b4efb91d2818814ff648a81231c7e4291d02947cf1927c6fff938e3f8f9232edb39621f23cef8e89ccb762a265b8b7cf25adbf537d42d64d52cf51e501ca9db4807333754a0775dccd37bb815dcbedc5de1035a0bcb674a14c31a183a1a7231295990bcd570b763798ddb1e49b691a6998281b39de0fdecc5c229eeb93c5aa38dc6c360c9801b2be0b6877cab4c7f9512a567fa1cf023c39893d44e8bb1ff683be912f681e4bd413aea4ad29496b8eda1daf0c2e75ca1e9814c59cbbc40dc3c49d1af945923ca6f2ecd87a967fcea621b4bdf3aae8306a09756407542be5f5b8738a74a34adc16b45520992dcf231bf8d7b251d1d8d2ba2f1aa8b5499c1ef05c77d75d8c684fd38d52882fcece171e32104886abd3b8ee057da7d4907b94ad2675db8ee4f8cfa1b1065ba0a50c65496a3b99f9f3303b3ac22f687a19fe847d03bda40e4f6d73d341018a090cdffdc816fbd4ffc0f6d29d58d4e61ef3c0383c0ae8575b6973e32097c248f1c7d145758808f83b382598d36965051d88a7e0b551fba5cbf63900c6659e6f3310c818745bee4755b8136e9a353674a8670832bca049a29e2e2b1fb1a51076dcf2842ab024b412f70b46047adf67c344e4afa9a2bcaac95e8345485b0149c53ae62676d756cec8b25ec213a8bf869c5cba1242025e27e1849993367e12a29151f50f48cd771d300c714b18df218e27205338b9df755bf7269171fa472d29b41d78fb5f7c3fd02e010e339dcd8defc2a5b84566a11c612fb1b5b418b241fa71cb227cbda7f0324297908451d588c4f6ff41e916e2b5d3c8b32932fe7ff51aa8e53f14d3cea501a6296c9dfd5810bd5b28a230c9b1b561085cc592bdabdc1fc81d2af2f78394106d86177acd26215a7c8daf533b3f0d7d9c92562b6380160b8b5dff6261d578b2bfc703f4928e7480b0413ac454be0792cdc2978e02a7babbd23112b358efa118f4defe9c99901c6dad39c6e5a11e12fc8e695ca3f2d03749ccbbc0619d88d8a327909bf8fc55e035d841fa26e0a2d846e9746272215ca71cf896f9205f2bbd04e6cbd1f84c4ae326df84c522570e8d72dd60367e848e82b15ac8af44a6319030f10db5a89a1a736e5434ac70b2a8a62a92ad7ff4e6efef662f1829fbe46fb8a2a5aa1bb6334f3d0f403419df7d10639017a77f1b3454b74b18be348890dcddc60c17dbf513c0eea35099b4cab20b1aed491764a483f02c8d03a89a60be612207fae82c7f169746a048169d407429a97db290a3f92c6133f320ad3fcb6b015bd63f3b8401290ceaf3d25add9068aa213848eb530f64041667113633480833539412a4368b65a9fddf32cc05ebb084614cb943770a9029177d1f6850947f3d3b905c557e1d6d55973858da49575259e5155f275da6b8feb27cde2b42d326449c30ec9a9200896bdfb501a41045b786add609c3a2a74d1098153b06e894dba0d52a110a1a8caf3bd7f665855d9a00857186d2bd4223b6b55daadc36c3dedea16f158c280c3f5df98af27e5841cd9994d8d4280702b6bd7a8169a8bb2b9e0f76ed80df6eabb8a9048a2d0e0cc035dde16bdc21ff7d0a420b098dabd4717f8b7bab9c7b98177b2c9e67eeca0e189921ac969d59fd9da5bc2653d242e90bd493e096f87bb14e6eea91aef8730d659753a3bfb423cfc95bfd83cf0c139c1bfc20023868b127b32c5b67ebbdea6fc57a73b59756fab570d830cc67638353698614f126b1cb7cacdc9110d7a6fc61a956620492103454e81a86b679c49ea65e720a0af7063a81b60b9da4b3b12f0bd6949024b9be5c8ab207174f0c4997c961ddf54efd32c79bf769e631e93e9e7fd089b654240f6120acd090a0621c0b2cc3495c51ca996af4401d9fe7227c81b2947c885207e5ea9dbd51dd6256acdc06615fba3ef0b760da80ce3afd9a0a200e067f3226c63d1624768907b5523cff7ab6875f8dd4c571bb3810446793d0944ec9b8d2020886d2e211ef017efff8427723810c5b54862e73550e82f0c1ea05357880f8206de3f0bb8c449f212ed22ef00b15251cb383c941853dfa36636f963a1a145a7b916b85997718f9a556b84fc1fe813915522f96c2eb69ebd4df11099b12975f0731f0fa0805e8e454670b3630c0d3a758e1d4026d046853201839e61a4e40ffcf48669e2b6a5021e8c5e24b3014c4fe42db34445b5b35bf72f15ba5a144f94e9532be52758bfa19928204e873348b36b9d84123a039da2dd4691ff892918a10a0fa3234dda2492bcf05fa1a8c10dde98b1d528f66fbb3fd4477aa2aa8b64b22e24b1eb4ac7539866e083e8ed9307f4bc6ca48b576c5b9920e2228dbe3bf3106c12617aec13152674dd57c64d45da584ec5d5aa49be8214e2e8eabc01f2727054a92d02cf68d37c558014d6bca1bab69145bdf3e10363c299f1a4fdc68219c647cd598a8bbff403158efde4fac2fd4c99e2719204ea0d878127e89b620fb8dff012dbacbc727e963a8139518ff8afe8ee7d7131ce4ecaf9e39e58f1e7b63604b260391c380526a624d4686a808b806f0744598d8aae850a6e334b5aa9ef72b35a9152b72d3bb1c350d9813faf120dca35974aac33c3e6e2e52c045298c88ba204b4b4089d09bc35a15360fd671dce32de302035751926220407e01a01e49ddabc350984148106a3f839543572b70fe6b47cdd55ec536b7859735841417a0477b7d00119303ad6416e3cfcc0255447c6813e6f4cfa06140efa9775847cdd944f97acda24f63ff3774e904e43fd7ef502041de7a463bf0fd637f5f1b2f4674b7dfbc61591c5ceac86348a53dbc255a0ee18aa4128f86e552cf51854903057355c8d5d9961783d981d85bc79bf7b4527e8d3aafa8b27b05185ad449a36767a4a65c9325845e369c70a7b66bc46f80e2eab9106d2e9e860252b313b1d2156f851338a05a855f89978d13660fccbb2e31144407de6fadc706a060523462a54b4c13bbdb3451b7a520fd40756376ed413ea80d4f33315bf09b1d224ec7fe59498e7e7ff88704bb8ad94ad7cc17d50794cb22aeeabaceda1d69da1601fe1a29a2c57586580ee25d259cc23818c176e28897799b0a59e9889523df3753e11fa049688ad930ee62fdc27065c545c3e156391139d15b4e890069a8188c5c6ae19ed17c53670e0f5076e1812dd4e5483b40fc468647e3f86e54e0361ebce00112c59edc90256673ca0a3971c567ef3891fe1ad56b1bca95170c5f69627c85db7025d13d3fad3ef8945e113e6e7592f177cc21fae99298ea489dcca0091c0e6acd6bc3b823805ce4c3312e0537754c7184b6cef8161a1aea0455f800d9bacdd79d206fc5a546d55142556ef96f2914cb2c3d3e1089fe996cf8577a163fe431fb1e5f583c9517ab4cdb40d3bf2a03124897929441d9cfbfb0b723fe89c0a19c546e714743e4f4b9b697e9acc78e0a7e776ce9c1d1004cbdc916203d198ea260a3f2b0f5af89fe8f5ea2ff51177809a97968dd91f129bd050141e47aca8cfe593bb70644d515b2442f8753c509c253bb6a237dd3b95d3da5846c5b6e121cb6f7295b1fb7c0ff33b79cee5a46394984c7b63eb7e9c4e8070980c813b9d4382f8a6d3d98bb1581d534c61c251199b8316ee44e3fadc213c6f8583d9d667c0baeeda63e7ee973e9ac088d5eafab6cb122800741fa9ec1c936703c911f83f2c8ceaf88737499fa688b1ba88646e1856d762be91c665181825a645423fa0b144263d89fc8f039ac7e7712ac0ce7133507f537cd9bc568eea6ab430f5d7a355fc84a24f599a090df3600fba580cdf79a2a2f9c3485506a231725252d5021cab8581c54d0003f708a2817a161fc9402a8227afeb21f8950afea79f49299400f513f3682040ee4dcc0167cdc1300a844c65fc73b93a644e643968a4572ba5e8b057035fae9789835fea045f96eb1100bb70fdf09f5d7ba7d9f1c1de63fb91ecc6f4f58e0a53bb8cfcabcfa5cce319934e1884bb4f148d43ab2e2a8a3ef7eae5caf9b7c5f4b5ff61224c8f9ccedc109c0aec43d0df2b4b8823f505180b0db4045d6bda3edc5d4245c596c9857efee2f2f9f7dcd8ad4055e61a9805c7fda8fe9ddb6f2efdb769ffe830741baf5283a2d6b73083cee9805823b6e4da13d3c0235fb42eb604125dbc398a6ee4307084f07deeb76c5fa7d365382012882112101e82abe78b26176484dd2144f0613648247097c4788f07028547fe9c38cb92cc26695ba005d0c9379708856ea9e869a9c7f1125b5c14fcad8f044365e42dbeaa63e5d060b180cd0d399ecd8bf1e370eba53a4345336f0af1e90731a874897e3049ff0f68ca1ec8bf64893bc8952adfaf08ab95691c9c77fb2474c138599f4ed146e7cd498d3cda299e9be6045bc370f4e930d39b88ba9b51f4dbfdcd56e96bf221e05f149bf06d076ced00051cde280828bd8be0f5c476b0b77f448850051cf1071818fa7078de1c498a2bb69b2056af7c0b4b92a1354c30fe7137a97dcdc86e8056c009306d4d02f2e945b82bc5a7c93ed5673b884fb53fd505cad3f5cdc6def3ad38f725805c40461ca2931b3633b98918f6e5a01bec479b91e962f73c25f07ea72d198fc5c36504989bdcb9dd31dfc07684f92e1f19eb56a33990cd28f703b4f4e7185857b5db734c53abb42cda033c278b1579612b00796435413076db46662a40160eee5568631315be652ec32243669fdb23cd1c84fa0650af8ffb430b1d1dd2aeb93928613bb7d8fcc8ce08612b909e38fe2a4095a48e53c30fd1c2a2ebb5a1c556570e668b242799f65a85e3d521d0fe0044a1e3fd0195f0508ffd8d2d52bcba079d2f9d6e1e0fd1e89b11307f10fbd8714289d291ee34f3a7e0ab9c94123279dcb0ddf7f9493f70587464fac21c39029c62b1e9caec92ffc307adb31eebc55e27530e749bc4a779c1fda5adf90d937d349cf071c286f575be829597700e89846a9670c087cab4e94efba8d2eb65c5daab9966004729a9156fd9f1df7c5ab563a3209da6fa3987f429b1f20e25debdfd41ecb51236f0c21cb5b2cb242c28c2f607e36a90eee9a16157b8af8d5d7ffe7c7f5dd67d18402449ddd1e87965201f4faec014e55b6cef9190cbfe909e430200cf151f73495e3d6f124b761ff6c90c916db8c570f11670ec2d84c423bd9a30c978f324ceda72ac882fb123d57f5b7ee1f5dd4d0905040c98958034944abcc325a978dbe031eda18924eda3633c47adba3a77eae4b9b6dd43d2e385058eee6b077caa17619a03d4a671285464f843964498f5647b87a636db6720b86d977d13dd3959cd710adb66dd820de5254b4b553055e68582b40360a31b3691438193b1b87d85f0a05440929b028926e5c834daecb28205ffcaa453c7b314e0b4281b0d26c229be569572d966f0e39b2fff66f737cee0b456ae5044927ab7e10d7062e7ab2f9fe7248d62fcb0e691d361e490b93b4ca04ceeb33189193aa8e2652eb90109881b264ce248405b4084fac97c8343b992bc3d2de5850281b48da255817cc42986f7829023310ede1a60eb8b118b1e57996ddce48212685c60246da25d27f4109defc43f2101920185c1a8dbde69b7b413d32a8049b412f2c7bd9b37c8dfd2b4ab27206b7d3aaf5eaabf6e787235f06a6fc5b437406b4c39b091c85809e1a3b50f07f57f76b4d13f9be5e61de74541aebf225369af30dca16836813d1d0a3bb49f2086ccc9e98937401fd94a374617b4972a3528804e82b405ebc7056ba704c8438be2a6dc23cbeecb2de12d7f62a599eda1618e86201c114f262ca1c8047bd894b80fe53464b106c3b520786f81ec85c4770fd1eb0bef2fad1a6d513808a0b68ea7d1306cd35cbbe50af9cc1e15bc98a28e0747b1cb8ce4cdba445bce01d1440d237468fe5099e94cbf8f49657315143d17d9e590649c8114b6d3118db5f9f600b009a5278f90b9b7001f112d2196586b5da867cca4adb9ff0a386c1560617f1672c67a601707faf28aeb7d3e169b3b7a92e32f4f22b4e1c2c6300ba68216457be07e4e724aec9be8560e5f2ca484a7a03b52c2ec884562a901025fe805994c68ee6e4068987e75c22a59f0e6bde4ed86ba65f026d9a8f6e9cc787f7df779d25f988e5a1bd7c14685464e24fd8795fd91213940dacb9b1910db13b49a1481643c788e3d8522be7a5ff4f77ef4d9d5f5be25d805db4d09b8a8c4b6d03827a054fc8d4dbde12e02ccda080b608bf21270674bfb92c7d702e3b313b9183a8627a360d05a492afb5b586bad84e8d80e39c9982d5144299886339561f918f863774b6180b44b4618bdc3c3b1a06ad1b7a31c658904fb0501f27676076bb05bde30286cf5e3ebe52b990368d1ea556f08a83109a87bc1fe0dbe66d3b61634a52d69ddfc662f9631948a02a98d8fa2ff9202c46b7427184a5c68904268aa4054ba9d2fd802f93248d721d30cd2d094aabd010970319bcc25a5452848d8989a02107255392e3a3cdc52a8ff81c9e0a2b74d7990f9cf8d6c5a363f7b18691015249f6cf87a2e39551aa45511cbad8c4a83b485ab433f141328242c6fc3338182870c1b98a5f004341cea5ab6862fe045bd54cf02b32fc6c67ae94745d8e6e91d9d02f769f7d5f131cb801d49cc46527945805d9d0af4d713e17c9e0d6c7404b17c4b1d57ab8c095325a85d0f47f8db36eda8aaf0184e9a640506773a824e62772dae97e12a0bbcafab9057627ca6d30d03bf37d7cf44630ec582c2d71ac53ec9ce77b79c668379e390db2bcf56f225e358bf54b4e78d17c3223d9ea179c557b9f0e17a621fc058d903c206efa84740d6188670541ed23c1758018b2a4d90717366cdf733681b619d44c2eeec4545ab512400267032bf7796a7181cf18ec0cd8683ee995f1125eb2c1d838abd04f614bfefe176cdd8b817e46191d0c4aa2b3dc65be2320388279141452f38b09ad703bd72c662fda71e844f42376159cb1cd9cd8cfdab5ff0dbc75d66606173ee205e4e8909172dabf15270d2dec80985c4be7d182219137c6c1879680a81aef6b957aef630ac183b583e8286fe91d8009c6fdac1389da2bdf91d0aba36b40990328fce7e157c24d0af700812ccd723e1ab1f7d9d7e8557e6bdeb3814eb6b7c25266490eeead093c4391432cc24d35f6ca1590a193b8a8ba094780dc52ecf782b956c86e9b5b9a6a7cd45e9377445fb58fbb1c1bbfa71c8b1a8af6f2c4ae3ac1c71a65a731e6ce2a13772836a3aaae331fb8fa51f3872f42c4ead51fa990c2e5a83835a33d02f7603d4b57286b290ab39654e98f3811f985f6fe49bcfc82b9a011fb03ef94917f02ce04842076a65d34edc7584212e1d2312c6fe92f4d4c0210a443f0ead1c4b9cf6ec722c069f0549c8ed80e8376072165c6989cf973841a61826c749f1e2b0801b3a823391b4e4edbeb2aa1229f767b384db59cb68bcb5045c8e21b8758d2f041a88c35bf1b9b4778b9d2fa4ec5cc2402dc11b0459a958ec5cf03962b4f77b74c3477a8c75bd4758a93f6bb2afc9a82bc6642d59a403a0cfbca3358fd543072576ef16f7fb0b48eefdd2fb87db14a4026df5ff07147a96f04c30faa683013bbeaccf1f61e1de2febfd3364ee7ea9f3079dea07412c5517b3d4d827087abb3ac37aed1ae595940d36cb8e17fdb08076b0bbc588974af8837eccff1168afa322cf3edfeace67bfbc9ebfcc6b71f78623eb09b3549b28b8183307c3414208c44f248b934ebe206f92888b37120b5dac2182af3a1db29d88df169a85d3a89aa46bac3f091cc871823f5ea9eeee688ef82df2ef8f0a87000fb0589f9787b5bd61a540870fc30ebd6b138d7f7ecc39bf16af5974f4474b065a06f1db6c30de7916198290f075d19705895c112a53887f056905e444d329f028ff883d8815b1a4daab0a6115ec6e192db6a00b198420c6252d5974e830f7e425aabb3af83030043db15084ef0d731359a49054812f2c09412cfa23d38296ca955306f09203d6b889832cc790512cfe8925a0f336936207b1c9426422c17d681fa79e3bbbb8ad32f8213ab7a2c5021f9911b6f25d1f3822711e0a4f9364768aed682c65ce4a425514129e4af1eb43dc4c25862f3f477ef9195950bdd5cc98880827169dafbbec4a1703cc320f64b2c76619c04eea1aff811d25ac43d589e5b60ee4a3ab5f77847ec592d7d15410621aa84147334cb02426f5f2d477c0d4112417e267e24b614bd2058a53abcfe8869a1f45364013e20a358e4c9956c01face867bfacefcf90b9252bb04b27221ffa4ad215644aea30348206d14c675bef395d91a9c562e02f54e1c2f2a97b68731d1a482833c06ed93de50c19531bc34ec876f2949eaf0601b7355330380dec88d9184bb2274151f887a9492e79a82674867ba5d75bd2afd2ff53c88dbe3710a45bff61866c59c0e59982d196f846a1812dbc2cdb35720a32552f899a6d94ab897cd4777f08b25bbff4428b7cf28d7f64a2a869c211aa552a0710916571032649d1fec50312930b43cf30045fd7f8c0a081717851e4ae539492710f6129021d636bf934c8a5fd027a7fa0057a7eb9d5371f24a3f99b3eb491e158c6cbc8154ecbfe526cd07c365a450329dfad6880f5a844bd104a6919349de5dc0090530d146589866217b40c32f462dd9ff7bdd9119264eb46d73830e9ed501895f4afa9748a2e67e17811198c410564dcd2247bf5e7dd45c5af22d1c29a37a0ed90f6c2b1c194b008d7f741143e4d32e8104a373621744239d9863490c8ce38fa2b5a9bd5a1bba45b7af7c1ce62df460913949e0f54646b49bbc5ae3ca192f5e7b389271974915db5543263f1fd1590cb4c963c35eaafdcc5911dc40b2fa0dd1552c02b0345d8a2c363e5f3c9c586e71b7249d6054710a3bf72099cdb4e43b127f79213065fc60a3a16aabf4213e0377cfb2dab9130ffed981235b7667e6b7c7fd8fd42d406e19fce25083a32e2f56cbf3f1f5152e95d9cb0002cd202adb08ea1fd484865fd005f2ef3e7e78b5684edcf47c61e3fa58979f95ae5157d94f9f32ebb1aff9d71420f4d26040c21c931bd0a667fa527495719b74e17ff05fd95cbfb04fee8e5a07fdc67a4fe4acf8c2506acf7b53aa9e9ba4ab0306cf35b8cfe0a7d80ac4106484450f1d008898c237f7edcdbfe87a557db48fc562cafcce214c12c87049e7a0f9588fd2e21c6493ec0fbf25e3e38666a9a0eb7f6d293ec46cbb63867054a5e762e22f623aa4e1af8f3dbe6825768a9e30bb42aedb0d84028ae57e8cbfe9f6402b08aee88e53dd4952b803200a070688556bad61f6d1b6065b94298173f003830e9e97afded17ecfdebf3b85356902ef824e0898460949afbec0aa1ae863109c4ee32efaa0144907191a1758bb2bb9406dc90a2c75bfba29d77477f7dbe9bb102abe88596180f98ee132161c27a902760c886c37cac4b410030bbfef3195296e723f492de2f158210d763daf6fa10c5c0d287c80e42c6e0ff1f6789871ce669c0d4e3f0ac57f5fe2b821d6e1ebf386a0b7cc86cf897ceeac0118973693ccc249257cc42b72cef430285933060af63b31f7002f3d49500ecdc97c413ee231d14db457c5c55835dcb50d60d5ef244f00f2f90c846a850f0d3ffc8fd88145bd062e3e543d1886051e7b21029a0b540ebcecb01a221daa446422d607f7c91805f59ca71121157277f16038740888e6386b1b6a0ca33323f3e2c308cfc3c84342843be2cc42ac0e8ee803a7620425e6179be5997ef8f8b5a2f240ba366d4e1243f2662cfe0a6e0c5916285efd4879c74d6073c9e989f40c32c9178c5979c668a2a467b37b4a4061c717581c18c1a1d0d24c22d55372153933cfc0bb796388e408f35075f56783db0a5c33c0005ee1404d40c56209e15a703b7781fd7ff9c6c0be99c6c2b704450658f8aa1339033c331b59c1a39da215d2eababe42b47108c336a3253be8cff6e9683f0af817b160d5dca8d4f2bed924b1f6eb09f9a889090b6f7de5bee2da54c3205840c5f0ce40cefa8140681cc5aa9350ca4bfef0f813f43279243cb0182b8fbf45a83af85a304559cfb83e1188e447438de421dda0d0d77187a0b7638a2febe55ddf0efcfe138c7c4ede22804d5a7f7420fe3daf7a4d1f775fc91bd17850ee638e5ef2ffdd9d388fc23fb4a1ebde77e0b7dfb6f47cccc71d4e97b1f1e69fe1e7c0fc3efa3964848887f88fef4e87f73ba27bd39b17774f4e7a64c6d5a15a83b5d41c2c4555829b7a51c532a97c18457399dba039913ab5c241659e8b3b0000a2780aaf42878cdd2d227769c6a6ce2acb004c7d1697ff4e77ac8cc91544a2a6f4ef59cd699b98386fb826cc652aa69ef692d6ab426d3f749eb4bf9943ea5f2e7cc3eb8e81c4eb16844a05aa59a46b54a5ba75ef98c16fdfbedbcdf2ff42b907104597e7b3692a4f2dcd1e6cabdf7de9099b9eec121dcefad14d7fbbc7e9facc2f57eec19e8a0fbdb30199142e09f3e14024130040e314d8173243716724ff1829e3cc50b7632f70e020137d11561550eef458fc37bd1c523280a85a717097196e94b7f32859d85cc56c34027e11f236c0457c5fd7e6c21dc29fad055a9a010f27b18af600ef0bdd65ab321d05b79ab813640108bdde2425c74d04ee17e984ea089e7db700bc71ad989b8e84286582873da695f26f79a485105245840e9428e0fa4d11585c0cfeb38bb695574472452c932c1ab3fe7046d08e9d0ac01a1980113361021894ae27771bed8d83137051707c5ed1899c510c2e0031bbc5e314c40d0652a44075abe5cc8bdd991481d261d17bbda6bf83f22438448e1e2b05f9f889021360ad7c3f2670a07852b7f6eeed69d7b72479923e4fb69ed13973ac9f33d21b3256bf00322cc579e373267c33f5c9cd3fbcedd8ffafd586b7d1f3fa6b539f6b7397d18f1637a953f447cecf8c4f1c9db7429420e62676e38675699435bd6d76ad881faf7f57a654f6e333440b31e3bb639e7237151c7899c7ea0ce454be6cb488d7ef1da51dab1b0ec732fde83f7f68ad22863432101b99f876eb9ccee5b2693d16e86d296751e36758b3ce51148f6febabb5b94a6ec5f8da535f4abd12ffe6967a8e2568154777729e96f526e2eb1be8c0fd5615c2ec254ec832b45615d64584f5581d72ce37ce5f9def4252ece1d17a7f7022359669fb9cf0b6cf29c323baa845ed56f82560a577e14973e35c37599137cc58b056d501b26d47bdcc77998cfc9ba68d6bb4885ac5fea03a0c5f9a37b9117f0e3c2224f172bc04cb1d72c5ca0d59c2b36dbe7382936ece73ddee3acd1839cd8afd962d3f420fa1e04469e6f5d8afb5471e54c5ed1ddb265cb2d3416c9f23b26d32df31da40f000eb43873f46a2e20cf1fdd329f4e1fb753b8f2e77c5936b8f4c2c50a34850b966499477f39abb30b92e47a44ba15bdaadfb1cbe5de72c7ae8d5dcdc66efd6cec521beb3e0b5a298cd77de6aafee09ae18eeee33ef2b68ff4971bc9f53fede96b98a3c2b5d983658e8a2bbba3bf648e237196d4711cd7e997cef6ebfbcd6c715f9f9be28238c0bc61f7e996fa350b97c316ff5cd929eef8650dd4d12e8e2a4e8a2b5fda6479a3612eca95cf41b94dbaa53e17854eb754f771b1faccaf70b1be9d82fbe410eb4b242e56fb833bde1cbbaec3f338021bbb32b7741bd2dc59f25d3383e749504a29a5f4d91e5252bfe29a11c4b4e08926fe2dc5134f724bf14415796411e5521ec51ef2e8329b209d4e0a2323a79c72ca5046cae954b2b828ff8720a4fff576aae2625b45436be81789894ddf7442affdc6b3f56cb0d9f26659bba1ecfb2ef444df857e0620dcc4c81fe8404e9733a4a43e0d3b4614bacc95f6a1d035579af65f283357da6bef55f0064b767151fb8a45cec8ed988ea94f7fd48066a318a3693f9bad1db3acc5b2bc992b6daeb457719b8eb3460d286f3bb385619de304c9cc5acb6c20c5c916d3c6ad49a6021476b40993d9604a1e3728597b4e6a4039412f67693fd8c9a3a644d35efde265ed65ce6baff9e0cc567ded7f688ee7d4b4dfd1c387a6239128b1e5386b0ce2ceb2affd766443e2acedb32a38fdd2b1acfd06836e69bfe1f44b67ed07570735c8da7b3d04e6c160e0c17a0a1159de78f2f63408d77f8641361ebae16c392e6a78fbb2b8a3cc7112b8a6e32cedb597399ab556d39eaa00815954fae3fcfadaacf5bb729b56375bab56fd83084376843c5afaa2de54087f5aabac437cca2ceaa7beebac3cc4b1e0d9b0dd1136c0505f53bf0d93d0a7e0634a223c0ec922cf52f923d37d182785a38b53f88ac2205f9e7fdf9361ca744512ffd87fb1d72fb2de6f1aef8bee285c01c1ccf76588c4115bbef8082219c825dd17fdc54366be1d822098a192650286d645fa99522bcf228e9ca382d72ce305cad3e2f1ab013d7718a884dbd96b7c091a30018bf1dcb923581e70dc74c205b95bf3bdf777cb32b473d573256d17ed166afe8ee9059a401efd69c750aba958524ae9113579db36fb5e6bafe4e66338ac84c376aeb69003477cdd02cadf34b949185424e40f99d986c44700a16ff37cad560c8299e53f16531cd1e1820d177a5cdeba5c176cae305b43169b56c71a4a20546cdbc539a704832822479a1d4b2fe834b1c59878fc6a563ec67b2ba19c421541b098cf451b26a4b74eeee94b6f0a4fe128f349a37fcadae9f4273f85a62f85970bcb842bb3e9c7fbb3127a942952bc62aa14d77df2f69fb3509ee77940cec3f632de46b9a3cca71f4dd334ad86a3978b9b8cffef6d1af5b4fee9293d7d3dfde9ebc8c60bf7747a18f76a48bfd67795aa82553950aff23850af526b0d4f4fc31ebd9c45faed4736a31b2052787f2489e6d16b7473ba5cb8b8d9bca5f00c6ce32f1c4861057ff4aa56fefe380b855540d4d7bee2517e7d0d8fa8d77efb95f03a0fdbd3f0cbe29a302ab4dae94ddaa34220f43594caa3b02a477dd4e3a88fc2ed221e69e9f4a8f0449d65faed2f17ce2afd095f53685ddc3adf9fd9fa0be4aceecfc54d8447372e6e4fda7ec91db91fbdf246696737fa7d0da9b8f7a65f5a0a79cbdb7fcea2bf8df0984a5dfc7ddf28afc8da83da178ed60bc7af0b55e1fdc9dbcb08ad8ae2205fa61f23ec98110ec9c12254d9edb2065124578c04cdf43a13ecf6fe59ff3effacff30828b6ddb7c541f2ecaafff43c8f6630b8d98f910020404547d18f163036d6c9a262bee0182efe2f5ad8acfabf45abd4a9f4ee5df90d9b5ed6fc84ce3e28cf771a1ef172717ceec98dd536f91bec363902fdb0fd1c8aec531233329ece64124e2ba9f606797b34478ac991b41ee44364c46a4a7e07defca16b977713fdf874e24b35765bb1475d88769c3ce33343bac7d69b9971c55e500df3e88bf0e7cd90717e7c7715ed82d725d67391bced07058dcd145227d26917347d0f005d82b0cfab60bbb80edd4c82e3cc10a584cf71e27a51978a6888294233b94524a9f64fad5a50d7d69237390e904b5afe34229bb900bad0faeaafecd6ce5a0945e136843a65be8e77895d4ab14d77dae91af9d3b68c36b288d581e481c69c4f280524aa9284466b6a40a7a459fd2a71313e1600d042681e2380f5bc7c91ba712471ae1b2b8f2edce1de58dbca12f65e00abc1aea185b238bf04303584c3fe1d21f5d7eaab573478faad570fdd8df7e74d1344dd3b4dac387a4cee27ef37ef3de7a3f93c592f4f07e6c9f69c36d03b2bd832056e5e01e7c1cdc835bd77987b3beefdec3ae2f7f3b7c781dae315f23b2843ccad78f6dd336ce86c9c6853f5cac58fb2124146e219844fbb16d6fc344ebae75db8284de24b205a0fa3fa690c22cd71f52a7e0d13922755c50e9144bbc2a8f135f00caa34c92eb262798c3331161c03cfa8542952db078c5d870e996fa1ca855481017abe5c1adcfd90d77b77d35d2ad7e1021ce437d0ef62379445a78cd22e32cfafd49f2d85070cba4cf34414cbfe402f67ac5f414605cc079c5b42cf7cb98136f7db0d7eb9582987ef9644666896ce22d199304c9919851da8829a09f1a6f750ccc6c758ce7fe1d72263d96e54b29a594524a292bf598b3e4e80e45ba942c654e13f7614f9ce5f88794c39820421ead4c0bebb38d89b9696d5fdb5cf686af744d93762ee1b66dea39f044b9a960454fee183e288392574c5d71f19d87fa364a8a524a29adb0f6c17266206edd7d7a5b5883e3def3d0daa7ef2110eb3474ed71ccc7a37d10c82219c6b9f7907bfb7576e1f0bbd8d1ecb2c24d49cdd81cf0e4319561aaadd6b3d65aebb53e88845aeb8347b84abc968753d55afbb53ef7855bdf7efd156ffde0fee5f1fbfad66218b00968844e0696072e778b245ec062bcbed236b9fe224b117a885204584ccae4e211aecb9394046a4317d97621050f186e4a35c960885197031840faa4b50b5eb38c5696bd51ea0401c1ae03a594a04e10539632c9f5b2d7d91ddceaa00d1004b51d2f83b34bfaf1370d779e078260f75ec8f34010f440180753aaf764dbd757f41b680387547fb74429a1f86abe04bf70412f5c110e01a00eb08bbb8121ce9efd3cd07b300440f6c21b5b06dfe3e4e721efc130cc5e388a2083ef853edbc5d5449fede27eb68b0bd2f9d910108f53430643201e080241df7b1014a2fe0c6fc85cd85144e18aac815c0c6e7dfa1d3065ee27a883160196390c643e9763aac0effc49a0d9cc17d2c83a6e86a4292e5afb3d20cd803c8b63be6a470f172d10b7247b786409ca966566b9971972c732e35e66c939c7b564a4285078967c01ca177e62d227adda5673589ec2607e68c21dc53c451a2b296b53268a6385a02fa4188307deee173087a691e70c17396badb5e6beadc5502a27546892614fd3401b1a17aecaa71ef5d39e522ab385c2266b4fb834d217851a0cd49e447167460d9627cc45d9088f461ad6a4c8aa4b76992d2dc76a5ace1367897ebe16c3229198452e3f5ba717896467895da6b52eb3be9c658ae54b5c8363c21db51c2d6788cc3690e8384bf638cb088e8bdee94bbfe384779896704b6f9aefe222a239a2bfa137690dc7f7a185a35489e26a39a46f508a5eab9984e90ca40ea21f891e66de50bb71518435235a8eb5de87c754ee7266cb195272fa068bf09813eeb912e7aaebb6e7ead7b72a89352459d3d17280aeab864686eb9a116f758c4b7e39cb66bacc2ac5b5ebb7078acd15506cb8c80dc5e60c5d1ee5d14a8189b7bdc6d57051037f0ba9b669da734ab8ae1f1b4633edbec10fd7705113323528597b981f9cd5af69a6d75edb64dec24eb92d3d986ea959b827ec9f44e9e79b7012a8d74a5fc4fc122ec21f852dd7337a94981f8a0d940c7e33231de06f2e6781df67670bf5df8722893e3c06717960122e0e1717b59756a4fdf6e0df30882bdb0fe2d231ba3c30fcbe26876679e4ca20b893413c8e46611057fe422190d15f3c16c9171c05718d4220f447f02d3e628a4220e0dbd07f21e80a6b20e1bae8086120e06f2f04f82ecefa58de8358c645edb5b7f2a569ff7918e876586471517b4b866b9f6255ca45ed3b77a0816079c50bd8cc06b38d7440f7d2e0f5cf9ddf445a7e089a75532dca0f8121916e915f0ae1b1c17056085a942f6f2a25662c5c07c303327bddb4ba6d75d3aab50d269130323fb80873814725f7a9da8daf8b8e470da74cd482e1b64bb7c8b7e16f6275efc26b164dce491d0a5e4b77cf6271a7dbecdfc49d3329fd89399b57d6ca29e16adfa14a729e87aaaefec4639c12aeaab1aadfc21ce6fe2466b10cfd89c71cd65f254f9d54f2489e4975e694e2e2f4711efcc125ee386532d7f2c471d11d96254e1eaf86e58eb46ab814db33dc39d34c40a7c401ba5c53eac2c8d45aeb0fb0f9e3ad95ce39e7dbee67d8c1fc2093ba1346c655e3ba63d5fccef48be4d1857a767c63cb47c836c84cc3efbe78fd06c1b5a7d56ed5da6ab7aa61164943251c27991085cfac4eca052ef29c25c9734a9fb46a9be53aef03435b0b244f0f8e177080d9ff0ab12ead987750da75df390d1380ccfefa38faebc4a3dbee6bd871f63bec226766ab6134364c44c343ec92abca41bf668a55f673976c98e8e4fad72f6096efc99e5b682cd20fe3357b2d240977e6f18eef23fb24328455afe41bc0678a3b300d077b6d28f0fcdb95b7ecb2ba4b29a594524a29ab4b89bb5b6a6cef325b1b7eb965d9acef08b75f6742d1a4945fb8feda0f17148b3beb9c6507ebd3d0cb3efa45e6740b0c9a25a1e80b744bd6a0460d510cc3183146239953a9a5160cd75ba9b1af68299501fdc2fd7c18d983fdf931fd428de8160dcc664376f942ccf36b067c744b0ec8030da86641bd355d2e72df3f4397b9e29e86e25c71168bbb691b16d77f4491b9cedc6f1f7a19dc0bb837c259e0f7dc732fc459de733fc4ad16b7722f71e67398fb24e8933e89f9a30adab0da76815e71df1bf6d12d5cf749909e4a503504e9e9d3909e62d5f6a6a7d3fff4f3898b9c29c4359c9118480184d72bc6845373c53dc784a6f4a637e11a26df973093eec79474e222f7df6f61cd0e02217b5ca4199c81e1175a6fab1c16f7cbfd246f7e168bdb71dfcd66f6315be25c716fedbda9d4bf98b951dcd12ddc77dcc378c5c2fde122f71d36c245ce82e156160e0319c1acdb2b78fdcd32629d1f235cece1a26c0db4e1f5ad219adc7d77d885416868368449099b2dd2c360248c258e8c1251e08423ed8e133284480d9d9e76c496ed6dcd3a10b20d74140b4730d046ede7bab8de6bef03f7e8c21da1114057fbfe202087470dfff0bc37020721c368369238a26e04fbb4f04710b0f1f87904bbb1315c292e4a19278651fe48caef4492c7c3a395a7d1df1326593bc2bd3d28a3c413bdea5c0a659488a2579dbb70db315b23d85c492eeee8494c8927f287c72f5332dc71041bc11ad7ff7c35ad756121fdbddfa3301cfbfbedf7ecad1b0fa940e02059429146e8d22217950068945fb774edda759412878dfb0edbd73caeb9e7b0f529791cb2715cc7711d675fd3ac8e0db7d481e3c271e264cd06d51e66b6f61b25922be528ccac6311fa5b68b3f632d739714583d7ce7269e9d696e38a1cb1e56d2441ae9aa6798eb984d461ca5c69e8ee4b481dfca9a4c21570aad72d5dbed3f977e6c979644a2f72c4267b86e67b112babcf8aa8b1d0b9dd0b844f8260b54170b95ce0ce05b2fdf7dd7feffdfc1a79238d749ba4b8c70e1f3b9cc5f97096267d8040f8a83797903a7c781ea9e00fae0bdcb9328faeccd11fe612332757970c4c8f1f425c2ef9f3b384d4a17ab8a50ee3c4d97c969a0ffec5a315e1f1ce25640f128f45bc777d2eeae1d103782e2175a01a17f610cfda944c8b84e4a705af59be5a975c4301ec1e6cb8953e6ead5be93bc68e79d6becb863241b8d8c30a1f22f2ddf38c8b419c25259671f11584920b7eda7b0d769e89c55a7b7bc8b8e7d2a54b97f24b5724258b8bf20bc2d285ad7d5fd3f73da156be54bae16f88f1335e957a1c38fb3274edadfd1411210dc6fdeeb9f0ba48f4a1ef38cb59ce722a510faf4a91733a42ef3d37b28caf12e11c21ecb9fd1b8ede7f313e14e32d568962ba960b6f0cee2f56897239ac23c65b0c24c6873090d4db202cd9e2202cf986778c834a7b7b031e4f6ff13843a53a794946a94bdcdbae54e25ebed5be52e81d1e4f255f29e1953fad3c8c97c2153cca5c7af757297ddfd3fba9a4f22514f73644bd281c7b64d1cf1832543f3cbfef3644c38ed787ec4feecb88de0b533f66eb7ffebb0a8f56460c3cb264a7bebab851ff711808ea3b14eec68f4359cd7adf2bd95764c8c0f7638463ca945d25fd3fc6cb08dbc51878bcff3162e0d1fbefef7fd8beba780cfd178465ec912ff71c0662bf7bfbdd4b69ad4dbdec7eec386fec91e3c67d52ee704f1ebfbf38084bee82b0e4d47f292e7721ea6654a8fd293485f20661c9a52247f2f7a370ec913fedc31daf71a18feb22f7f0c8f5f0d9f1dd15fdc8cfddc37886f14e87152598c329cd3d7cf897bfee4753febeefa9b77e7cdf8f1f5710deea98ce2ef1f4c1c5a9b9fee7f78b9b66f8df785edf2041be2c7f8a0f1f9a76b19b308516c00086054cf74ee553df4fc3a586b354dfef72d6e9fb7d900962c659def7d3f4f7f061c48f20ce327dbf106791be5ff384384b729c7cb97f32347a53d7bdb59654b2df2934b588fa1da8f731efe984c7202619e12743061e85dc18a18d11038f43be8c7aff54485b44a5be0711d4b7887a07859859e57bd4e4d3fbef40e11d27dca344027b30ba21b082363eeb228769176e177e8bdcc892b9b187d6c3870fff1ddc8ef0470f1737d006c54624e18ead61252b1507b1825df407272e589c948525fb7fb3bac55977b3e4532a64bed820031f4eb20cff7cbc33dc2feee7f1bacc556a14777226e7c5057fdaa8018eaf3a6ba18d1ae4b8d8d94a29ce92f3c3a34b1ee58ebc62e7de702173b8ca0ce313b46187e4fa72fb3697efaae1e2d4c17d971e1d1ae451c276b4996e99725632dcb165343fc11b7474f1e2621a5fcd177191ea2920e6cc70eb8d3ae794b557524a5aa473cf8a9afb65b7ad19c68bb834a22506995c4a5db4ce43bf8d423fa65fa98b2ef65f1bcae262f7f784ad215fd992a599905ee7df186472a557c4d326fe4299bdc3e7c29148e642df3942fd2391dc789cdae770ed7384b86f30c7a7bde63f3f87e389738434cdfbcedb97bf19e36bb52fe3512aed7bf75749894f63be8f4432d858c57dbfabb80ffde4b0ea067dee73502e14c223913cbf432f7a0d8fa1f6ee019943af85b0ea06f8a1cf01865e0bbd671fb4ef58fb91879b7bb8d98987cc916320f6410c44e57dc81c2dd654de7bd5f72e03853af5e9e43f4fdacf90ff3cb916c223a9768c8a633c29460c3ccaeeeed2576aed3b2cfdb695ec0dfa39e6d39bfbdb31e79f63bee7e04e9abfdf980fe21c167be93d2d14fa6eaddf9b63ea81a8bc3b1e4bef695f8fd3c16f6f712b4fc75f09db57201ee77ba54f05436ec89c37a3dc2eec76accaa02720a75fe6dbd1c573a39427f6706ccc22dc0400758bfdd4ac5bec7327b8a38ba71424c52bdb97d193ed8fda4eb6dccbdc715886a75bec7744b876ae823470e3a26dee69f8b8689f0b695ce1a27df985db4fc8b024d7b1bd70d323039389396b74e5c0623c322e1e6775ee27643062ca94e7e3e9d8f71ab871e574347c685ce1ac8f872c89faf493081f7fc5a6d75cd9a718a4e11173d17e189682e64a73a28a204a9d9092d30297f500c809294ba0e1e372c59c35b61531268090833cbaa0084169f8cc78c4386d475b520a32bd781c99f1d0e191c303499813eacc160e4fb323c62ba6c56cce2751746c005b02cf932851e09c67d62383b99a5897936c5d4fbcc9a4a08d8ee3280cbce7c2201eec661c6258720341b3b5f66164666b7b6bed17511f876fb008faff30fe85ae1e17ed77a18bc745fb4afe3d5482c377ef6ac2718f431c3e0cff3d1c3d180d7e1c708d0c6caeece3779026fcc73532e13bcf5cd9ef98dcb11494ed73b9fbb06370e04a41ce02c23d176a3b3de2c9f6553230678da52099d86c7140f665787a9cd54f54c1899327f6656457c8fcd88e49c9b663b36c3bc645b6df715e0a72d6a8ed94c07096c4a9d95d3ceee2992d0ef364fbed0515efe1c4b6cde99c73b662971e3330d20554833cbe9d753cdd2fbb4bd2173bcc364b7effd6ac8f45371c5444dd9a99abd943972375983e335b3268ae72640f1d12f073f26c27c27024d370255b295c4fa74be22ceee7773bceb22dfa7fe1d63368b644dd21f1c721bb8ae3eeda30e14024b922c9f36b8eb3e85b97a1e74ec7c5f97db7d325e1a14d7a9cb8080be9131a73714e23797e2c8f0e0ba278de743a9dced4c993ca3a9e4d0aaf59c6159d28f5d52dfea1dccef2c245af412efa0dd99bdf0cbfec51af7a955d69dd4215c845176531f77750b89b141909cf327bea0c1b0dbd272e7a37ce3232c251c1fa2587ec9f83a31d59c11deb0cc85953ea8fb364764ae9df06cafeaa19fb16d7c8980dabb422315f7f72e1bd8295510aa341ae183631ddb207a3e1f5bceec9f5607945476b3281366ece973f67cf59ebfcda556f8a5d224b0d17615c6635c88c3399f807175dc6c5245c39332288b328f67e32d3b0ec3c98b3c5406110846ec90d42170423ee7983e25dd17d8f5e13dd8f9e94eebb66a904af59c67602e84e9ff306697addef49d975524a591fc67b027db2336723dfd3401b56d621ccc5ed399b4b6370fa8594375b6f9792ff62e68cdcfba311e3bc662b9cf56a7b7b5fb315ca5e79bb3e797b5650bfd81ff57440b83271fb9194c94229ceea7efbd0c759336f2b3eb95bb9a2c334c8dbcb6e619c5ec1640f1e84dc8d6cba3caa18c95deec61ac331e856080b6198090ccba3d16834ba5724f2a0c8527b499411b468168ae73df9558ebe925efeed54b74a2ffffb25f412abbcb2a769dba781df733657eb7e600a77c829eda093b7a7a08d991d70e66afb6ee78ee12c9c8553c21f67d1bc7931108d7838a20af228e264291ec9f247f126cbf76c40842c4701f0643906400559fe18809b2cc11c28b29c719325c699f13a4173c1c22f2db27c0ceb1730cb1f712c4bb9122405151d6409eb972ecb5779f54b29cb9851e546c674b73a6654c1c972071ae4edbbb5038efc1d62d0ad95978b3b3091b7a739378cb9b8fd87c3272e16e09531ce6ced80835fce5a79e113346be5041ade0167b6503a2b2f67a1787ce504cd4219a1c5cdb19210e6acefb7dfe1c80e39ce12fdf6a35000b3b9da503ab32500a0b9e2719600ac689411503a52c05bae58003eddb27de783bbf2ea172e6fbf72d32f356fff3ffde2e5ed5b3ef5676c01e5300b28cd0a672d2bf2d69ae5adfad4f7565eb399431166517fab3fb9feb87233ba35846bac5b2a56852a5006a2be0889d00fb1f91baf8f08e31c1737fc85480cb919c7a05bb6c730681db6c747f00e389b87e3aceb138366dd2cb4b8bd6703af8b9cd385df8361f7d767fef6370b734ec9d9dc0ef42a272537df9bdfcd97b18ea75fbcdfde5341b3c01cefa65fe46f4cb4b8fd589f8c548b3cd6d8caab09ee06a5841acb1b17ca07739c559b68d17f7b9089fa24fb6fb389d788524285750b2b0d79fb71d493a5923cf24045de7e5c79f120eb961d504ad801a75b48d9c3ac2019dc2764ee919098943d4c7fbac55f66aa850c8b0310d42d26b8e30e18276f3be0e4eddb09a095299a20834e17c0c8024a1625d2e88a42e0e7759cdd42a23b22954a264e522d28a63f1556c309eb96e75e337458a8183cc9fdb58966a170bcc2eab78e6e8d603df4029a018da35ba7ef1525b2ffd8cafd520565ef49b967ad3563fa65f7a0eab15e8e818c4e86431e553f339b8d7ef4a75f48b95f4a295138ceaa54b41803d48fe847b09fa9ea19fb0a7984030ea914c63d35eca49472ceeb33897047ef664e71bd1b0fa75f7ca494958a66d5998b6efafa2c0a6651a568e14f835e145aa05b9d6caec60643f607a259defbeb6856f7fe0fe808740bf53e1b5dbc6b8314b2ff8a57ca227cbb34845037ce52cd5c6441b354a21256a1706404cdd60a6c45b6335b2b4073d544f630e32575f08765ff512a45ba379e6ae6ac3b5365d1ac9b85afc066eb249b2b5735d12398ca8a1f2ab2ffb8325341915d2643b5ce9c85baa959340bc5029caac9664b46d05cb9ea66b6543b7365237b5035913af88b7ef44a90bd9b755d64d58eaa8967536bad32826404657fd5cd6c9966cb8467d8f48ae2f1e29b9c4af50c9b194cf40c1bd90c9b15a0192fd903ca46eae0bf029467bc4caa27de3acd5455645741390591fece9c35c3e666d1ac194ab4e8a81f2db27b3727d96ca97a4eb3d952fdcc958dec61452675703c926591e8343b05e5101e3d8f289b1aeb16f933949861e3ac0a458bf2691759fe1752a06e911447aa7a662b025ce86140e368205a948f0a75f44af5335b347a50a141f5935dc4c9336686a694afe4a37066eb5764b28766a172b2afc8724bd934a4e4f4307ec23549c4987073337448bed245b7caa59a76abc42b59fb15cdfbadc945ed6aefc94ff535b9296bdba6cd1cb8d4708529e7a13e0daf8bd5599d4dd4c5ba85add95ba5cb2fa6465f5eea1777b48634d377f9b57241a081a75b3a0781869d5e75aeb83d085cc29ee1746de84bda36dc7eb7b63fe7f39c97c5c5395bd634de54a6733ee10296a7cb64b0275c8861d36ae8922af821c47908f2595938432303636271da866b4aa552d6d2ca06efba045543685f9f46c3342e77ae3a8652217ab838e54b27587ec659b36ab25aab36b3637e3f4a15e4eeaefd1ce8bccd881ffda285c02b228d88cc6f7296e32cb5df9e17f2d022027064fa9e4b3007f5ecd10ed7e896fa230f40b074fd2dfc16ebdff036a594cec8643251e6cdcc16911924eba0279a60ef4da5fe4339b613459c90fd89cc96b5f7be86c36e9123ce15a0df2d72e61a8ea105b2af8033ce9af44be235cb489ae5ed8beb7d71bb2feef6c5e57283af8136bcdfa4c8dbfbcb6dfc660be38ea247a406ccb96ebfb836f77b5cedbccf7e714b9ffde2a2727f7145b971705f03e290200d6ebde135f4cc95e07e0fbeaa8a7ef434a21fe11a26f56be88bbe629ad1dfd1178991df3d38830bcae06a123c72fdb797dbe8b7973309e425e817d92d26902d6f7ff54be85f5e76d8610003c058860c52ae3f92b2ec72fdb1cba3bf6e5489d32d9be3b8b8fd28f4d75c6d0f6eff85eda2687b0bc695dffde82f076370b9191b3b575bcf7569c4c5cd8240481b17b7e7b02ab592dabcef7e037548d5b3b8b839cee6e1d173f2e6af0d6b458c70113fe66afbdbfd8ed9babf7d0555438c46237c71cd7c11de3157db8bfdc2fdf6446abce5527cb5fd15574c99c20517ed457bd1603418a3c81afd65a4a7c848c88c84cca1bfba657b0ade98d96297b9b86d3379858bdbf6f60cd78b27b210cb89994f9a7d5dc071d7c9f2e54b1d1ee4b7c42a51ae0d2c9594cacf148f94c5459f4f59269e92841b2cf9c2b4d6ce17b0c1670d50a4e099b47a0149a65ef022d30a851238efe33c8f73bf31229303f34310dd6e67cf15275f427eccec18d2b407a69989d93143f3b9e776055eb3b4cb36751cda8f44648cb452bebda6951a30228dfa727a8ccb66105ab26c5f95e5c759f4edb370c102345bda5b9619ce4d0accc1ed58b0e8950d9aa3cfe126db1c5ea3b1b5a304c4c12dbd9cd582429acd566bc7de1dd20cbcc11d5b50b27d9629ceb22d28ad9dd96addcc957d6b777686e818d2b76e666bf4f627776deab66eb27dee6f28bac8bded5168e78ae3b877992dedb91c6e6accfaa5a364fb2c336779b6cff2335ba7b7cf12345ba6b739e8649b434eb639e0649bc32bdb0791dcd19b5eb2cc4a380926f79328fde84f3889d39b5e364d49352fa6396195874517eddb3761d5c4456c3fd23e89d26f5f84a67dc7307159b3d6cb59fef65efba31066aeacdbf7b61f3dcdf623dc7345a3fd0c090fd13218bba4576e4b9acd9525bd6c7047d2ac6399cd957dd006b77bdb85ede2ce1e6364f025a863d60f0c475406df411c341f5193c1f7b40f0c4752067f823a6a1e93c8e07bdb07862398c1a7a00e2d8f24c8e07bf603c371cbe0d7ef4eb89f47d3cd9143d480067c02a05a0801017e9666e14a17077c7dfb1dd0b2d33145cb491b6e44680fa810284246a0bb657a04e40e1e23d06bc0d760addddd78eceea6fd39a40cc26bc007c427c4d7208efab3bbfbadb43695923d061183006df47b7707c4679d45db06f1cd2999745b7b459b10df74d15c736eda9c9b36a70c1d60d2519a210d3122e23e40244310008bf822e0ede8787012b013486d52ba340ad40a500b4c1f7e010c7cee847bb3fb6ba90c984a27aae3f319298998335f38803a04119f3be17e1efdbd077c4ec325a11c0faef42f420bf5005622014273cad8eb091abc9ea001ce946dd081fc4ac5ed9799e51be0f2f44b5321cb6f14b8f4162e2e6775142a76b27c1f7e989152b29cde29f95245b26409d331977651e9977e7a04ef5b76db5058f6c108978bf27ff4531c36fee1a3868bd29fa6e1fa98e9ee87e99e8e53a97f5174c96d81281964ed5ae70db31bf9b5ed671fd02d38c0ba80b9cbdbb2ab48ad1021251fe0793265ba2ebac440706f06e1fabb8b0e84ebb56b7d59173feeb5afe94e5088995d247d895d72b4fcc63554392a0d771717678d1cb248c6345c94357cfa47f70d3a51806479be1141a6d08323f306316383f10169a1446ed934545fe2c9633f1982cf0f07721a2e35445d90954a40424070849318bd3f38ea44a2f0617c04b608c8f3b80fefc800c08ff2755532c75b51dd20c3fb388e030ae2f430be8543cc1f7d0d85cc15a59f040eff0f86490020041f87a33064a21aa2f4e017017af8beaa0b01200c3d0e458f43c88486f43233a09006433bba2f7923c445ca94ecf04cc81352bfeb42a11b5ef53633fe7ec78442101cbd082741fa1109ab86207de8dd55dce8fd479f4409ab3a4c43faf924acaa1889238090a447c246f733a4577158550418c235425af08420c48cbe8493604233027f3ef8cd914221d2898bdc0d61ea67842a2f2334fd4a18e35521ea6f787a8b7a1b953ffd36b2aa8e89f13636a9b7413df83264628472074c993ac6540a3b665492b921919b1048295529c2b94905df6732adacb0d430c257f25d6eab7f80fdcc14fbd879cdc005ee3a51c8a3ad578802852993562d48f901ab0c63ce4927a519c89c5389a741c4f3d9adcd73c75cf9d8341f3b3b66cb637ec3736c1f2aa9b8422c2bb10fe3d6e21a12c45499c6a3cd60ca6e9cfbddb37b9129e5143cebac395d5c6c4d56fc2ef6d35aab74d1c54ea5aced39038f03d773539186236e9e38158b1dd982932dccd6607dd2aa6dd6725bf0e44b0d09207404a142e4f0973afc657d9beb77eeeb02425d6aa880f0ef6f0ce469ed6c816eca44e7bc1746e54c1254851a74a200c3070b23582c916a903e69d536cb040f0798e5378bf414f70407722f64dd3fb03db86edd65bc168f293937dfdcb9a741feb2e93eaeb08613dc08677576723bf76bd626e17a1e5359bba6d47cd52578f2fc5f71710ac9d2666e0b6e0bdf3eba73b76fe3beaf5792a97ce955b08c1255f49c3c947a967bf73894bbe7ce7134a33009508f42bd877a31a9b5864ab29294928f8b53baa57e050dddc7c529257fe722a752f74e1e899d1bb9fb153e778a879d0b320079512ac9365b92894422d168ca666be27053e63f2e92be2fa52529259fd294d28c0b67cdd3cf9166bb71b2b99ae1944d1f5bfa51e2e933a54c9cd98af1a907f16855fef380662b064e59ab726f8a3e29aca25759e855e75149b679494a4c892af2c5a34fc9d49d704b3fbf246b3cda3c45ea8ee8cbde42779c197aaf6e719ddbe2ca10769c6e992f0a65ae200e2b4b325bf2294971310cb7442514a3c4e1b4b8634391a78eeebff73c09fe68bdb0411ca0d4413e8c4ff0c6873dcfc52493889b5289e28699c3938a6e995490ab394517f2fc89853cbf5b7eee387964539667fbe4994d9c557fbcf34b3267694690c114ba90e797a4784b74295de1a529252ef22c7971670a068e3339e93860b8edfe62e1b99eda028a2459cc4d052af0e41047560f94d4ce4fc659333945fecc96e9bb5f7a21832418fe7296cd8d4c02c539d758c01ab97dc8fd9fb7bc2714763a5d926e67aee693c28ee70bbb265dcf0d3f32da24dc8d85d92736d6335b160a900f3f357c46c37d58642b3187e5ae0968a3e371b103f2efebf5caf20a57620ed643916c3c1d4f179bad8ea7ebe960dd1367755f553215149d3f059dc040d97813b4d1fd8ce26a4fa9e704141f99135078e8f4d04882acca117ef61424672e004322e09135e4387a0a5241715156f18ff539ac82e2e294d51f55b12ace5a863baa62a3d07b5015e351c554326775941acbbee32c0fcfaf3167c93c06a932ef0bef4e78935c9d1cdcd0fc19e5ca9875cb7c15acb3c8df8bc00e07301ca5f74adffdbe31fa9fec78940f7ee7d289141e21db904ba3100729df534eb74c5118a4ca3a1f9e3cffea382b8455b19bc459209e7f779cf56195c42a281e56c95cbcc11d4faa18ea46ba6c8b3ca2704e4153763e794a717136f103946b56c59c357652f2fc39aa622a28f34f41ce7a39ab9bf8e93192e77ca05ca584dad75cb967f1e2a25e27306e6e27abb22231a9b733362830bd8c47810927c1443504ea4d4f83ea98d3178931e11a2612d3a83e856b2eca76d97e85d558bf68d9aa7c8c0a9425ea5742d59b422652e5694cafa2f2266cfa18b826c69bb08c540af5a9979866e555d8f4354c6866bc09d730510d617ad4d730915f63c2d235e365d41a24810c34f0818914d3ae2e8310bc5842921b08a109308c1d931176cc8c95b0633a4615768c0c263429155c93c23ef9c75ca17c543ef5a63f0599708d0e5768a20d3129ac92a850d531a8d7090c17b71f4f41a6254bc474cc29c87988e990dcf1f4da7ba72067d53c9fce36b4e114e42cb90025a69aa926abed7130bc65fa59fb85fed4825e61f2640d7146beb2062fe8641b0029739871d13e8d8b2a1c23727a48756324bc318293ed872f17ed8311beb2e5429bfc04f75686c7aa745c74ce393cbbebb752c072cdb152964267098fd834dddc6fc37b1caab8c7df31e1778cf704f881ae264ec8c064dd7bce2119925fa9d8c1d32f33b295cd160d1f974ff7a36b96edbb520d0bd1eac50d6197ab898b4df088d93b65785c4cc395e9c1324d5ca45edcb163f40cee842b7385e50e8faa1ba42ce3a54ede7ab20c0f0c099a471a3ea1ef1e947922237c6524e677aa1c24d93e9824dbffba300a17b9aa7272b22948c593ed47794d21fc0089b94427db22fe314ec2f4ef6112b06c1f87ef9c70c3affef8515024a67e18aafce9a3a0484c385b2a7fcdd5a31a22fced69c2af61e298a6be866bf057ed6be88758e5df31db1789b1306ecaf0d8f0bbf7d08677ae6cc5e2be85d589c78ec5b295e1b121c5189b6ee6ca36e18ea52050278fda4e2c0cb3990ca6240c3df5073b4a7cc68a06847fc20f710dc5da4f91181c6e387365c370bb992b5b5ad23d576a62bb2ff5cc1961a9a7e4a404735667988ba552d8fd8c902b2df1962c357156979694784a4d5cb4fe26530ad528193fdaec6109c845fbda4f29a6fd684025990624e6928fb7020bc34b4a1b749c3359f13cefbd04149bad8e9121c325e3b39092c5935177c3ec6eb8a11b808e17528271c3ec960841b32ba78237c4ecca7151ca1d8ea3feb9411b5e4122c2d881c1f51831bebda5819bb9b21fe3bd60e35fb784db29e18e2e1e0ddc88d95f0337a9b79e4a3dd75eb8b9b1ca8e5d3c2ef6dc0700edec34e1880883870b8908a34912707cee3b1a1161347191e5bfa3c3794484a1e32cc799883078463bde92e1c9448491c40b2337b70c0760e429a18fc2e07aa5584f4c45133e7e1ce2926caeec1789b1df4c6e916c9f883096709c874484c1e3626722c2683293e838d8724444183d2e3611612421220c1da9e36267581e69f8f0d8e91799c55c0a7368f8f40bf7de13f22873b285c11dbb0e78b01bde831eae80e1e8bff2321c87c0b2e3209e8fb3c41e71b3e3e6e4729839a1748a2bb27d19294662665cd89f1da7ba41ca9fea3b07e1e484f4c4f4f65d509c2595c0cc192baa70dc62d9be8c70bc792cc5b2fd100d9f6c3f464eb69f0a91a059254482a2c251833236cc1496c271cbc97647ce937ed96e7a7e4a4b341d7712339678b617098f5ad0288e204eb6ff336e3bd97e69c7590d9bad077b9cd5f68af0989239946c419f6c4770464dafd92ac5e6ca7a8c2d996eb2fd23618e8ef70415747a9c3c41c50d19f90805e4ee16171217ed1355b07942ca1450021acf2ccf54d95ce9905d392e5a241506c406864c5d740fd6851c2c82b8d9d2768864f7d9a25fbf628d8786628d08115c297fdfa08eeeb92e7fb8bbc5c3d1f3c9dc77f6f552220ff1543e62011c56d5ec2e24ae9c59935cb30c0face789e9a614647acd8e94824a415e6fe0766c0b29d99f0bbde7e1ca712171d67cfbda8ec6f384478f066e9ce5c9e7debe068c386b6220f23de4e1c45920e6d104873466210d9f90c78e8b96c71217ed7b0de2f87090b2103947b86329a8023c5d939b00a07e01d2bd0a082e3b2c8f6d452cf470ba651ae172ef9d116e277dd2aa592ec4716ff30882ccbdb6d32f5cb6aff1f44bcdf63d9c0af0f48be7652b62d97a39640e8f413c589eef599b67d8d9431e49421e3b3c96c4b6e8b12289153b309926b12d72381e497834e178ecf05842c387c60cecbe2bc2b5d1c57a5a8a17157eb28d72e50d528ea293ed874247cc0fdc9003aad5a8646c35b649cf3a452302000000002314002028140c07850291583820d372c97b14000e95b84c78509aa6418e420819420c210480801400080082242000ed460c1557c01823b0274cfec8d6bb4210c10feba7c12133c615b1697697a1c29201d99010dd3f4e3ad71c975248459cc97d75efed2daea1cb2dae7d7d466dd6412caadeec13ec89a2963a80f529647bbcc329bec944c6747f5402bf8b859ecea591a4085f36250f89c3dec3392edbf0c3c64a642607e2568a6504f50af80e848d3854daadd8406f52c25302981f9fd0c7de7bf88f500157378265063ef95810587528b23ff0005c9a86a71c84bf012d02bb327dff905171637cba761c354758ca6d22ab3780935d3b958b9de8f912946e7e776ca878e7d6a951c3ecefcc13aa3440dc35f945d18329be9b77f64277ed9cf6bf2e65d927936c62bea924f7290273267c06d42b6a4c9439313c6470b11c88abf0c4353ecab9a540064ca099ecec1ba18ee52fc39bb76ac4ec1e42a62b7addd9c8adab28d162b525b4570e6e828c0203fba3b1897cb17978870f5c609896e28a030cb98a65387b9e47b82fbb9313c37841eca5d74afc05d5ae516bf96903667ba5698fc7e9adfc722242d523359a5b10e47710dbe1e889e8e681ef7ca565308398f1f5ca402b6d69241309c7dd85a8058b8d3a1a4a5d618809dc286f45d00ed9ad2e3ca9733d31c9d6cb4bd961362c09c25567438bbb0df92137cc1841713794b818521d302445731bb9df9f78cc61e7ade1c36746bbf06fe016bd8d049923101763684337939708afe0a6393142d2e18e3c3ccf421e44d090c2358c066715fc72f5b1cf81e1252eb076c4c684453bbc50ca3808282f7b15b7224f396cb72cb10cdbc4dd99292d838940a9997ba423286b43245a695540595a08930aa54bd79c20a91bf849dd907e1454f72fc70104d9aacac94e92f89b120e4418802dea23978385f11edd0aca405b22171d1a2ed0292909e7e117486ab7c5a024c0c354677ee50e95d0e0a7406e30885704d1fa4964ded229032fc01aa461b03aef06f297267b873e9db03a1efc9ecf6cf12bd245ca9fbee57f993e4b8e995571f450f7a03984b642758a4c6121a0eef9ac91aaa5e5c9ba71adb3766806c1667b01c853bcc2714c093ed127b461561823b5bc91fdf3f15fcfe99163f1eed76a3b72c4d37cca53b3a66ae0c7e2f3150568345fc796336a88a87b5fadc9cb9b6e855bce45f08adf27e0fbcb396d0d0d2744ba05367e7a3cdb371277971d5b93a4053bf248c626ac25cd81301843d53b788c923c39fd188f587aea00c0d0a235c1568e88a9d3811b22a2b3b709d39d07d3d69eaecbc3838c0e3c32ccdbbbb61a0bb89075ee9c798b34b98bedf1a134a8bc87151b3f1a3fa51e79b37007340e4a68397e264550dc7406d578da7c5a76bd4ac09a860fd0065d681ef832229649474b3eddceef6b3ec24c9eaa6426ae356cd4162d955c2add8eb648016941e6c8615cc4fa4dbb6dfe83313f252bd26c40fd545da38dd1c1d375049412b84371b96dab5c58572c894f12d78aa7ff9a8796e1fc1b5258c290816c4aed526c1c60491e5342cc9bb9e3dbaaf4342b584d0928b47e8b9be73862c92631ba2093cda469121ba0243d1134976e4a29ed09271f33fc0dfd3e9e9ab836f91deca64aec52b5758cc3f41a0a95bdbf966cfa83d8fbc24b1eb580d6d0d1c13c170bdbeaf1e40cce72b3e4214d8a86b2ba8d897c3e1b2b19084b5cbdaf02b8f014ed154d44c924ba8c5d7489883fda4d576d9210d47ab2790f3d93acc5100833a48419f4bcadce571ec461a4f623e267b27a8f66849ee7f105c3753f0e89d101a4840ada8a939cb2c770d8e7f71717918d11f99d67463fce251cbd6e54a2376b491503249a8e6eb255d77e87417e4d7be4220e8379f0f404fc368ffc8c65e77e3ca27ae603b7f87c6c80c7a970c04117a558e8bd203a2a6ae81a25b845b4c8b573aadc40a85ad60424667ad5351dd3216b6984ececbe3c6dd3d82710d56f5c925f6f03401f9db416b2c9ef646c3ff7e699581e091a077315eb2d27e78214409fb244b7b28762deddacd0558e175363f67bec1dda4988a3509305a947c7493a607871a9f7f737ae4dfbc056642de8e6b58148bf3e9a737c0a2843bd1fc905254470da00afb3fab05f54c7465582460bfee68b9dde8ffcd13d1681828da58643eb1f378a36a09f7e3f3f781aee05b22c353171de5f6178bf3f6681002497096cd7f90f8e2f0b094a09399cf86745d106d015a4397e0504da659246fb0d4bd2061d88c678d6808bfe3c60b4de79191e83e505cc2fd10340b947c712c027ed5fea27b2d2ca9db60ad188f1bce6c003275fee3f91302f5f1cdbf4fe7f7ce0fbf2bf47d806640848a63642f52e4daf762460401b0df3e37fc820eba24a0acae95c587e3f74201185d6466c1c3f7ec17620d07cfb7c0aba034b3f7e5bddd56982b305ba269029205abf27b1240dd820e848fd9f42d659717b12da43f4affe5476ec01e949ca152467aba3458c395ea076e81f3957d46e53e3b98cfe1dc041054a62f89f8b4998a80b01bb5d3685e558a205807f9b0d45ffb263e20fa3d56f82b2f96e96516f7eab81309dd9c7268f0b2ce33533401f794a25bf308a7a3acf2945a2b9f32efdcf59fa778f93bfec3f273dfb6fb72945ed2770026f80e834f50f855afa5f7763dcefba6b606967ed7adcff260c541797febca252c0e49c2070388cb1e161fed108976f6bc29876a75f194d038436325a54291802383e30924ff3f1e76b963637d0d767bec43c7168498b636a35915ac7a5b3f16b4dae51820f4023cae01d37f4fbea4131218d37e250cb2913f22f23bedef3d6c6e748ad8a086df2af4793441e93d0012c31f7fb32e849e303b012039b0ab2ff5a329756117d3650821a31fc8fd0562316393f06d058869d2f643e27bc4fe587da5052df12a643401ac4679f9376f7cd62ff43da33559e1595379ef9a9ec96eab84f7d5ec6a6a2f06ac8967b96e7985375112576c03c32954d87bc982738add02c15a16d0d1fd4fcecd2b2b2f4e912bfe1fa4fc0596b2479ce7af4de19632e951021f893f22cd7f1fda69c51796d2366192f44cc0eac8dbb55bd23d7683c2c89a929081b702b4d8066e8877a95ca3f7161e4cedcd3db5fe4929bdcd3be4cf908fa289c48ef80bcc32b5972510f309823b34ec98b4ecc22f49abfb49187aea2798da5d71c503f640e92501cf59d62f752934c65f3b2ceb42f7bbff3821e8e8ec9b9102b82385539adcc8c6ba8c668da6a1ae748944e2c02281ac0dc56d28c5f0a921307f5101d495c26bfb2e58c5618ce5b7ec3a9502cc554bca0649ce2811c875645624ec72eeb1932916f0568cd5894d9347f03f25e50a03ef6b72dc2ea81d03cde786bd529191df16971ce28418a115d952cec3e099d7a8e4e6f417b12a53907495c9436f825c697f35454436782b4332849b9381ee15eaafad9ea57a4a229983b6596580e031b70d241d90d6c14eb604a9e962ccc2d2be5bdf05b9632bc5c2eb4cf0996dbdde8459675caf51a2efd58570bc3b9a3a3d1ae43a158efddf4620529dcfaa312ac282e71c52cb106027e008080d2847e803b006a6383c71b5cf6e09c6e084469027f5dc04569d5b699b8efe651194ea89018e7bef75d21c72e242ba36bc1c38ea6c63dc25326508c2ccd950962dd5ce665dcc663d40c5ce9874426842e5c78f290aff0128eb25d0492c5854eead499b658f744326c99432010c84cefeeadd237d6e6bf944f90e312d0f74b0a1dc144a89dfdc27bc90c76f39d07eb05bae73f1a2c0bf66b8fcff05ee4edd31a03b9f47e1d037ad57ae2ecd50f96b642b18b23e6c59ae1e102fce1475a933d5cdd54911a9bec4040c9b89f0e7e3e28bf60898475e62e989fb334e6562d1a0428b06e018f24d37733382783f066053018a869f8409d387ac04054e7c02efc515e1e1e5766f241503a13c7b7acda68560035a7ed2c102a8c8a07cbe93d3600ad6619818b82b537f3ddec44b29f40ec3ee360ba40411f29ae0ec5a6d389803de0409105567430b204abdafc14fc1a3caa89786eabcade22252fc0a4fb5e358b7f72837d623a59b82159c3c79fec18a845bf73cf5930fafc1d835bbd0c96ee3ecd656bef9e505b85f9ff479d8b2cc0e08581a816a8a759018c0bf0ac0d5b715f8f2428f4cb720ebc2065300c88649d1106e2ee19131b59acfbc2fac6ee348a649824174ac9b499e819077f67ac9a1a5edd4ad70a5af5fa417eca9acd3e93798e44ee27a807e60b998bef8f18895c315dee690783105e3a57ff083a88e3bf982020c9d08f1a895ce6941ea4a7479e769ec34b7fa1276535d3b7a98fc9f6da8d440e59cff822874d0a261a54065e1532123995fbe8031a75d83d6c60bda2837ddbf591c8159b65b142a1b15d39d5db55dda0a27b7254dc407708e17e9a11b62301381239dc2226de08346d4ff1ad857f8d66156e307de6aa8d828ddcb63d89ca68358aa03c08440c507224f2bbace01dd5448c077717e4fe420fa6d14209bd8fb0b967f6656643779825d5c0c7416e14e0350c28e40a141d8d1e0fbad99746cc9d555eea4ce33f0889ffea99360be01ee4d39040285f4bc4c239c787af62ee0007abc11d26975b5d8cbe8d80f06956bb8a1a06b8341df49b88935a70e731ab1499f8d8cc5eae73591034002e4ea559251a91f77d9040e02fed6058d4a854c380704ba7a0a13056c288dc136ff916670b6843ca2848e7d0984d8546e5eb1d52db96a904bd0c2b20afb48206ef75a529e4bdac8cf52d7525e7276244de0a884a2427eeda2d4443d2687b780624e92d135ae66e5b3751e8b92673db0c201faae8bb5bb142b42e600e57ff760f02e043220726419b8a43a3fd29304c39524f38dfabeba02ec00320f1375212926ccc29817f8386cb6954ad9ae096695cd83ec8e8fb7e01ec6c23540134f7b82f901ea51b3b317adce3d23f32159992e149a08c5f604b3895a4ad758b35f2e1b6000bdcd9d7fece07fa86513bba048c941d66bf5aed5f9661e22c8f9c9733c69f9e0c610b37dadd9995ee02b444aa7d51f1c60b23e4b347dfd2e5c47d96e9155182a1e3a8609ede1a5a80d81e97b0b1cd942ea42f7936718bf91dafcdd58a8375ac53034a96c49505422c875eff38974ccfc424f5447e1fc854979ceb36256cd046c3588eb7078d7abc7071fc764fb151c29fbfd5a6794c207c61c5bea12cdab930ada768c8139331d94d52f6011e46ba2bd455c057e0c5327ba955a9b689f4b52000aa36b7478cb799fa0fd0937c85d80892e64c9f4ea57ca88cf24802cd8e1f0f7b05d89afd854e0ae382ec00901c6faf4b71009834decb65a76207583ebf0a099bd1469f43afb278df23c8d09502e816611ba486f6e8d3e5ead3b015382ab52bab6077a7372fce5302e4ada8d91e46692a194faeccd993a64dd9b19d4a6214ec2721419c63f80df295ebdb6989063b0a62c29a026312c62a1193c29bb03c18102858ad8951fb5476a01b889d3671c5a3c317091e064bf8d173c699b2ed842e1dd5041cfd80bd35d5198938efdd9444f6a834e94d2c5065cb975e93dd82d71b583fdac7cdfee0022647ee5023624e7a40c7ca2c9ce535f04c209bf9bf7a7e37996801aa32113bcda8a142ba4773e01469360277f061949d0a3fd46afe2b7d4c6b240e94e59bf324bf6160661db87bf8ed7ecbac521b0106d8dd812289addbaca5df5eded55f182827ceaf96707611b6898c198b3b8f3953678d75f1d8fa383f9a6f8c51b228aba84d382498879fd74454c4052eaabfd1cf717e0385f4f7797386776a5505a936370b87ece745e43966bb51d46fdffb5fa86c856bab625561813ae868d860652c04358be0613d831a958a7f4ee54d52beb67720d1255bb5ebb4046bd0494f51ceeac173e36a2e59666dc651e22fbea91c546b1a1a528d770fc63b5cb7d6f004a74f31c3d8021938ff56c8fea297a0db2a16b779b9474343f594f9eba7fbbc04484c1fd7b8974a5c235609131dbe4c89cd0e438dcd5e4d0bc355fa0f152ea4e281274d798bd059a6ef262e26fe5f628e09b60348c2c910833d036a6a9d026e85bec5e0ba35c9599482a24903a1b351961e4defa3048486957b365ae4a8f668c4971f653aed93f91036eb6eaf42fcb7a0886cbd6f6a92ac7c0a805289e62f7a1a6c9cf4a2936d85c1d48c7898d5a21a935bd1c7d0b628f505970fddcc5a0fe26b62af2423bd1340ab5af6df13ba74c7b962df4bef3299a4b4292faacf657c642c16b5ea6f8bdde4082749020e3844f5a0383e4cb27484e471a1ec0d7dff1360b7f860f4853ffc4a26a52e2b5672fb4da148b45a4987c61d490017c283e94ebc2a91b5b555a101de18509c4f09669d25a3bfd56c6a0e195fd2ef8bac45b3c7f2edc1187ce08da46795d4469e724f19351fd0edc907c7893f9f4f7f4d9842292e3e6aa994ecbe9f3e6072f91d2d37c6752954008bcac98a517f6ecb7d871acdc63156ca36c82a43e5c1f1bf4730c8740e4431fe89f62292c9e240ad7b0cf59e4265c10871ed4e9a1dfc0a2b3eb14a659157df93ad5739c582b36eaf37307e0a9e3de06ebbdc456b245c1eeccd4f6e6134c79a36d0bf5d66e71152829cfa17628ecda3a64347c7d1d54423f9d4f5a01aed9b2a1b06556746620a7ad149cef0e124121fcbed70dc64504e384fcc94195236862566c720a4cd87be421f2ff829adbde6b510f222e313482ba742451272d66207682d003818b568d6d239b4beb2510506dcf4c385f481d8b7047cace1b470a9156bfe9a562883dfce887e9b26d4c32763a1c737523e2e4ad4cc729d09efcdadd511c786b022c580117902f5225cc8bb2a84fed16ca19b7da6c56d71ea603818694b8a31468d227c1af44362f9c323400967df20a1adddac65e4273294cce44ea712dfbcabd1b6fb46cfa168149f40e6274ce69cd5eab5b7c301f30a243d2cfb33c5872e8f68b5c23c97e6de4942e76dfb9d5e81bf365a475ced7b4afa735cce12d0c1f9e7a69a4bf8d00fc7fc7aa83d56fe834ebb03a0a40ef54ceb07fb0a7a79dc924d42c6261b8c5822274367d29225739dbff839802775c05eaa60849cc6a14a2999a33f0d84e2231e68bf9258503795eeec2fbcf4fa5203effe04f8318135167fa229793b5a734bf82e7b561d989000348b1b1533bbce2551820d5f0efc1d00dbe24474e0c221ac1edc84dc0825fba9c53ffd0ceed03c8bf93ac2eb872c2996839f07c55ce1b9c17167e6795b620fbb91604438703fb413158952d09f4e578b3b19c3e5b0d2ec9735543a7c25cdc8da3a60eb31128afafff6486906e8d40311dcc7aad93421b7621d0c2be94ce560de844da5e08dc3cbd31950134c8f48c3afd41900e7171014532affe0f07e4c1999f9220c55d7b4fe78064c66d5e3a29ecfd3f639d6cf64d32a54e4ad9d8759aad96603520bdc96d694406ff20f2bdae88b407a520a9592cb4a452d50d4fee17ed90daa3e95d68df745deefc984cab610d98d0442066e6fdeb552d34a1a4798e6a32140bf0a4635d92f688b566d98d4681f9150e3ef3b2b2bc7c6a725d5caaa6c74465460574b606ad4d8357b43d1a1fe616be7c46f304fa373f66bfa1a07bd3e6a797cce7753cce1e92d4c4e957783449de2f142256940be30b55fb8ee31f848a1d861bc3685704f6eb00cdc36072c2dd67b5b1f44886db566736807ad177e38d2d6400335b549f4d34616e4e5852f2de0887d65f4d9fcffffcff2e3b30bec5924982c0df19ef3d5a02eaa377fe4602b7e9056c2d82851f367c95197c24996f15d705b0ace6387a29aac096176492f492d6af3b002c8ac54b0a16d98dfe669ff51c61dbc094ddaa7210fa8a6f6bb264db414af437bdb8b95e7d83aec4908f144275f8f807531c3c59025dc936038a08f91d8f3b34a004eb3edeb37f1d1fab7e985dc067473dc10dc456549e67b8ceaab8555458b7a41008198030a58b2b2d111a75a52e03e1722a8e9a8cb59756827bf236d8e10ee2aaab7bbc1f3fa8d46af0b105f631666511ad1d01668a27a80569e3113fd9dce704461f7142c6f44dec9e2b3af8e3ecca03eafaaa92ca545136cea4f4f6612da3830635b5927535f6d2fbdac359189c7016801f83fec05898d44abdeb364bdbb2c63e3a17c1a36603d5009319c429eb653c519f0eb4d53d9d01459ced4e3cb967f489653e26ddee72de0a6013a2ed9be95a23a4e1e41f0ea1fbb566aa282e6eab66b30aead1d68f4192d53662364c4e121104778dfca5da50ceef771fe8f468b4114c304ec5be87ac9e7822cc408eb0188eeb87f5ee821e01c6d60ef1bf46eb896a8774ae15ecb80de434f0be1b74c10050d66b9bad7031d0bbb1fef3ddf429ed9fe6332bca5166497a914baefbe97c3de99c2298600ba7607c82af23451f4f46d4ce107d443f29f5f746301fd97fa90fab87db6fb2f2a3d1339f12fa49f3b9d035fef1849da61b2fa945c7a3b3528c8dd3e5b33d33ec9f90ffb031b65252fa1242d9d7200dd1600cc50d13840b02b9a7a44947631229fd211992d8b83c665d463801ee8e3139de6f6cb3bd704bd7d1cc04744b12aff5591e3ed2fbb39dd302a1718341e60868e1e20068afbe0d676e62a090fe5459e1242c144e5fad78dc5cafb95b8fed08d81a06cd3abdce9901f62d243d1a220ea8b7dc805d693c1e1df341515f1276f48e8382f209b935301a4effac233dbce1f620833f8afd354c3da203d988983ce2676808e36daa13dbc5d5b4198b28d5f357219fec323e1f104c3f66e821a057067a10263df1ad76e2b1cd0eef471ac3873fadaee3c95f89aa27a33e623d29350dccb3a00777de608973eb84569c26637df5c495d9faa04482c02f1f12c7e340e5e683c2f6e8e139710db85ec46e5b503edeb0890686b104ea00957663d81d9204799ec0deb4d2e36f04d351f6375fcb8e90679e77766d0a069f4dea50dd9314cd3bb175adc213fdb6ca039d517ad2b4184eed28eca321e760a5692046376dc18807389034989c349f381ee0f986bdf55636a7506b108142afaf9bc2f629a120229e0c7b98f95d0410f46c6c63b14c8de172d0441cd1bb68ebb226f22c57afea6458a1d5cc05e56a0b2a066313a7b3740c969ee51ce5d4ffac581a63c282b4dc7a558c7eb0f2fd10387074b2b93cf69224aa28f4a7ff9036558577e7a605f1456df51641f71911879fc3c1d0f15560ac5585a2a6e09c9e43e2bd9aa3a035225f9ec147ef20ab91abff3a30a39d1a96096f1aa9571b71e036b4f20167e6d7407b6cbf5690630eed6335e53cc2e235e2654bb62e8cadeec90a1e348e6292a5a1107582c86f9819619231e115d55014db8ebb71f7303d5c27943164590406b460983598aa4318235e2bedef92636f63fd6d99a5af3bce75fe7eac5c825f9f7bbb3e473ae1c331242caa62da81d851d3727a14d326ac0d9ecac123a33b769b3ef8b76ed3a676e24f91a70cb0df9d024d92f739643ba03e38587f6c69bd9dbacb26c1f1fea01f04368c6a409896e52389c12f2349d5cfccb551e3c9c83cbadb7e7e2acc9359880b5bca87c2010c23ca4ccfb5851028c38da63d8a863c521c995f6bba7150c993cb7754c9fa753e35d3254cdf1b9abe52bbb4e9fb9a47e6530ecf0a14a356e9d6901fb89103b9d7ab817f72335ffa9915f76a221ad6f787ac9b519e4e129ba2efc434356ec49b0804427215a623b7dc8b8da3f1ed3d661bee62a0ed930c68d43faacfc482690b05bf87d932b38611b6788e28e42247a1101278be0beb1a63c726f85f6f0ea016b7f9cc4d459e69e3631dca0fc596fc528afb5f147f249ee3a8cf39081c1df336c958f3eb2375b9eb709151f1e10de6ca2afb2b67912d50b7b7855d44fa6df86ae1a562872576ef2056b813d993ca7ff20d4649a40c298cf34e248d4fcd3566f418949182019971660a98c8770a1ee4c68bc5c69fc97adecbf8f49e2bb218fe2db8d80b2b6dd0be327b8438dda147d5bcc9a2118cbe4312743694a8f06b8325f4c40d253734b4cc560b3563703c9c6a505534eb1902ff29d2349614d4c9f8f56ce0075e6ee5202ca8bc85d968255d215f5a30991d0e93bdc89ebbc1f86b4f18ba36b53be2b631a2994535d2419a966ada47bc33d71f2c1197e466380d124c9cd35869112a732222ded64e1ee6f43d21d87096c484aa24d727824e09bb873b463f7e543b1e43fcf41e67731167943c0530df45c072d57fe85f1dc39a6cad2c74cce248dd3add28d473f41a6d2e57f5ba0fbd6957ce78db70bc89c3abc1390e95050e7e242f8e25e399b2a48c141d0c80d4a740f2733e1c1c9c6d28eb3b3ff4c7cdfd7e15ede4379c6ab8f06276b6f170f68cfeaffde3023cf4c3d8d091a21f3dfa85d815fa346554abe3907c35aa08f7ef60f027fb7c6c508496f4aa66501b5990107cb4dab0d0dc4383e4c607cb2dbf425004612008d569880d62d53b8f7ed118c79a8a0f69629de131a8a6dc76c8d3903d833be151bbac5b731178fbf0f4f050a5824f98ebaaf834b4aade44682ec1e2696a1265c21bfffc69f64c6bf04d7c8c5cdefcbbea433a152f585a2d75943bf5262324b56206bcaddfcababac166d25dc12da261fd78b12d37f5b0f13c279ed84e1469593da0b82f01bc81e0ac5461723bd974f482f668f97284c5aa7db6425add3118f24ad13b1124357639a4b1b675c120934862c89e051fb9db8e3d6d1d3c6e23d79f9fba0d6fcd2235610d5078180be51f2e60c1da4016107ba12262454c08b5418ab6562fe0669f5ede59d7c36358ba3d683898bbdd7e233d89af60a294c0d3211615abf9dd3e659122414cd9d97748f56c9e7efc26ee22cf7ce1a3091b0f743eea1c820a8854a279a55865d9475ed4044f51301a96f57f88d62fe34e1891fd75ea0dcf8be3e10c53e1322c105bd316c9827675a511762f5ebbb006ba6161f2672708c2a692a10c2203413eba5fea8a5da22d5277935602e5d0046c78e47db2cbc3955c657652ddf61b83d6e1b6cb3b71e84c22d8517914d72260fd205f975683a6256bf19cd90868d4842a5efdc64cef019961ac79e85fae69374dd7c03d5820f3b7b62bf7f7bac57b8a79948fb41ec0442b925f298fa7a20d578864f69721125bb39fb3f3b0fed1d3c1faa2a499122f9aed297caa4809e2c66ef66c187b6fa8f940ec9bec3e1554ca2aef2bd6930f000315770c695a85454704e5f8efd155468bc02a19566ab2ec9a823a3b7caed38da1b522c66f95e2c7f66ea0d2d8df06f9b83fc3483d666b2a9a6c96385f475294e4aa72dd8009f667d34391cc4520281e1b164def2d0e88cdc6dd9e041329c6ee6e9eaaa714098ad2738eb45de231ad8f3a1c65084216a9903ae6bb6e5839e98af2e5bb32dcef0b17ef22300c619016cf3faa209783acaa755d0da80c5d31b124bd4140734f7cf4bea7fb07c9068c28e2c81ad94a909ebd270e98c7621a5922aca6a6bcd979cb54e5bfacbf5029585f05e3a56005acef42c59f506b62229e0bc6214acee6e0310ece9b3c9b8142056bde0737a88d0af6c5c17787b70456191ad312e4be8fe8b52fab9277edab27238a93c68d5e8747e8e2d310551722f4367536e89fab646057e5183054188811618f992d85147a6f169654da99fd0ea010b14f8e22c928478764732c869cbb695d5b502a49bbea25bd27e07d92be09b44d84853c3a37506386150103243c35807d9dfb03515ad2cd7b381d7457533473859268bc0794939e3bf945715066da873c428fc286dff5e3aef4920f0de312d38cc82ae6b76c75cc1437d71356daee2233e88ae4c1ab8cb4d952f07ace30890946cbc4c6282d66f41874aa86bb813ed5e64127222f7062a0408e8936dca8eb8805cc4b6f0fc800a7ab395b3b3d774242755676d76615a6d919b91155f625091f48d68b6ce99e479fd1d5bd1356e61c5040b435a827604e08701f42bf0722df74a883e6f5a51bf97b893fe1f732dd08faa908b8f47a2c24fe5cf96fd1f4ff9a7c9bce873d253e100c8da8d764f78a04378f1d4b9b8fb2bdb6737ab004fe2036b47285f653095b3b41cd99811da5083744e849b81a42fb69890dd107a175e5f9efa8c5804b6b4ee6c8c8fee5ca2b38863d95a34e5e4f7910fcedb64d8ef30933c5dff878e47c2149637a7381e6a303bd38910ea639db4f78cbe7c5acbe8434c4eea53a2a6ef3f98e0c436dc85a45e399270d622411f18f60d10179a8b43432867ceea7a41b2bebd1fa608e6bbf8deb3aacac083b7c9cb5499aa2f8a0e9aa31987aae36f1abe4b7601ff640a49925945364754a6b2cbee4867af37439b08a70e82e200619c3b6d34c1620b9d01213fefb245423af422484f3b517130d82825e836da6f7f6e7bc541a0141813a01c3535f418bfd682fb1b4d1773f53bd78865ab031aaaf463794c575867bd5663f969ff27137a20b71be552a8bec917dd8960a1993182a89ac75ac8ffb002759c1d20f2283d13645dfb3e06d5acc3bd272ae9d408829a52cf227a99da8f0aba9c97ec1223e4b40ed2b6b13a9ad101ee2bdfc82ba7a64fabcfc0a907d6cf78986cb7aab9c75245f3af14be5d0207f6df22e1a5c4c78fb392aaf6781843fb8d60b5191ab82c9f2824108e761d1c2949ba310d324b2e9db0ac4c32abf7388423db3f546942e1fc81d62e288b74ab4241c438d55c5799a3adc5eebd45e8ad299c66555c584faa208ca6f9a1f02d78a96532f1ddd1eabc46f6f41e96703f5ddaaafc5e80b183e009f8ca771261924d0ad5dc1da753b15fab43ba0eb2a6f37671f5a256c17b16e577b67858b812c830563ab2af593aa6a1204a132400acaaebf4fea7a2a654b532d224e5132679f9f1f41fecf9a20cc911e6807905ba34a934071342154782b7b69e9e4dad31a846539a5475b071df0b4c768e5b044406b85ac80a95442a573ed04f8a9c3e2900c00f9b784e758dba1cd06f47ff4a570ec5c0e2cbd9f5f15658fde6410b550690647528d3c4bf93dec5c44e5109349e59b12cda0ebbb32aaeafbf198af71179f20787d99602dee522d3b631638394e77b5a9e8168946d9227b348121cba66e0f7fb0653007e823d49a7c9eb953ae21ca4a271ef50c486c2f48a54ced2ad852f1d2bd184d044c9e72e32a98f356313e79a21fcd60103c03d001653868f8c6f71a68f52584939d9e98f8fc835605d94fbf105316a768ed77c0f900688ab19aa6d12e0cdaecd75f513963a4bbde3ee0bfb44fdaa5c06ef92560b0bfc70373655e04b8d6ea16edcea6f69d75efb940079242e7fc2436f48fa12a5942ec325f34d2cdc24bc27e3879b907ae8410bf81bb13341b01cecca683de2d76e524e7e00ce8342cc02f301bbffa13d93fee7dfa34f997cc20557e0601ef9d3bdef636e8f8eeb527a75efc1cae217933862154bace21647fce22c3602346efc58a99589590c88d5890f0f8a39213688ef88d2d72cf0402c54f539ffbf4bec29d75f5f87d45b17039fab3cb018a2e8629ad0e71b51f479a12241e9d1c6b29948c0155e63eec5a3cd19a550c7456e38b858e31237d527149d29118bfa86d41e9f8a51eb9167f3909696440b15ddd5aaae625af9e2e2946a045852b9e1fa18bc0cfaf3942c5cab85b54754950e67f63de2078c5b5926630a347db0585099b8aafa59600e8aeffdfdcec7aed2af3e33b45a1ca20a619da2420a636b49b190d79d6699706ea6e8667bfd51cfe490a915e725f47d80c91972ba36e6715dbf68e766236c5d21b83aecce15b5025753e88d5bd75b2a8fc76d4fc74d717222fe4f6ab02ede19df7b4a9f7e24aca42c97504cbbf844f35eae9705e2cc5014f9f2c5305e88dc54be701eff61d790986b770370e69172479a54ccd6961b3542a40e65288002c5d016404f5cba8716da855a9001eba948082b187f267558870f73bdef541892014539313efa1b6b34c1d1bfaf968b4493cd2918a460109c54535562b4779833a43078803743bf651611a24373f85787b4516ef6ffe4f221aa7001dcf3e4b6493df7265cf86d975df4284580837c961b192b27a0f1f25c36609b57720210082bd27ebebc00f2ffe7a4f422040346ab2e99514bb66f0383df7ac42f50ddc02df899ac5c9b90944278ec01fd7189c3c5cb23da73e0d1413a1f1103360d48624edb633184f93a962645659a2fd0e75030168894601eaeab3e4f078c8011e372e9dfad97ca64b77252f48a436fd60a1332fca08183c77825c0ec4281eaccf6733635ab1dc17696a44a30da6f0ce8c45a3bf6a8e9eba235e374fb330ebb9b97368115ad8f9af95207518cd81e0d2ac17b20119a4b743568acd963863a65fb275f49b954f2e453a26bfa6b4097331c6202856407b4679bd6ac5ec354512265ac28d1f22b7c51944dec41c77ccd03b76879b8e5a2810631e102c5d5971ff69e155b98011bc18a5fa1eca2636e0bf0e070c40ba823a15c0c95ef97eda6c3271bd3306fd7ef416d675c6ac049d465f71fd361b4919ed4b4b63afa7ee2ebf1b61db411fa212847b253a09fc8718607e8b5a35b5db947f78f48fcc5a49b5eaaa08abcf8e6a3a24c1513f3a82a5f21103fa5be532a9774c5dee711ba5be4ba9cde5bfb5fda542c8c42a4035c9ffadb9d209471e826fa460b3c78fd33ce20c706794692668686fbc50e0ab05ba7a2b2193a848024ce4cc5f7ea33a2790cc27f7c047427234628461bfe9a62b289d2212d2bb53b9ab806d35a24ee20a281af15cbf65165c20b649c67d81b03d5b45e36182976e87032c7f4a5203a10c1622b971c15cba41cce09e80cd9e102d79203233f5467d76b306610ab0f2e4aac3b8162ffa1c40b803f059d4c8e46b50c577d714c756c23c5f62480cd08a9735b93667430242dae3fc536f8310ae71cb975253af93987bf2feb9b58e95b0de23be1460a58856705b0528560bf5a3c175f70e5b622cdb0404fa33910527f81bb129de2c0fd35994aff539e2de2a2725a10bbdfd8abd5b995a1d516e5b14126bfee6a4526bfbd889b2d73b31ee9be452791f6fdaeacdf8e719780dec3842f2a8268e9d2dc63d71426a1af7c392b0a0ad03bac72877d31bec2cf5a18c560020c5570e9101603459ee2fa7def922167d7c10f5ba97bf64a645cb0f6ae446c7feb038059690086638c1cbf3e00139aa66cb2c016540a5332805155460397a6a4f452308f6a11f0f90fd6f4db254c2a07de7a53865815063ff565664bca2e0d21f944233ed7ca5b037969e08014732d97104c428b089182c0bf137ad0c6f08f0034bd39bfd0ff133ae333462e8252feb624215dccf2a2f107d368f809cbe386dacc04f039536e7d40f40f446c93943ba53a9dac9b684e30f36ffcf05f5b7bd58bfb273ef4f6b451cbb721697d99a798f3bcbbd8dc7286abbe85f6cd618a11837a3a5e2b83338aaec8654d07067f16565a7ddf2068aa410a939df64595d7fcdedb9a4fd4042693c05357c9b1fa8d301ed0326b277b5eabd90ac46cd88c43425b76d79af9beb5db8ee91b45c4b90bf354d8cf2b484e9d87524b84a65e1438893a0b473bc39043d5d02ee5e750d3a09a922e98cae97074cb03b199434ea5b111492991df98e92dcc0123a16ac7970e7fdd1fb7be4637484bd0341da7a939622ab6c0f7c1c150e8085fbfc2c47c287aafe81237e613306f92e9e8c4fb28b31763682f30f284b9647f7015a9ed21d3c8b4f08130a4ffa15bfc51b3beef5337f0f4f2b09dc59de4e32458f85d181766ad867492f06070bde8cc60b4c372984ed6479ed008ed37a6887e815042709dadb196c5f4cac26bfbb7147ad2044a76efd324f778c07359b8cbac4db9b5d03e0080591a5143181594525fef117332650bda2b3c12714bf7fa56e2899cb3d6b9226c7a0045141a3d346bc8437d30c04531b7e2aeaf3d2fe27fad268379a944aa3c40dda6b7e58d4c612f1fd6d4442c9aaca907a2bbbdb26dcc9e4fcc2768e01cc03178740818b8af7d6095803d6a287e045e864114d24dd6e4ad7675965e96e7ae81b89e993c7d9ebbb7ff52ad2ddf7bf6c0c462f0a881f523dbd1a46838725520955825b91f7ac7f1d1cba4a0e5bd0b3077e90fcf662dc7d12a36de80c855ecb6e219339a0b9b39d14663dc1d7abdbc1d8e74b618ab939c96a0af6876fe7fcf427bec69084bd90a944dcc63ee18556d61808a531276bab1cfeb4c949d896dbc8fadea848105b2fe4c4e176c51f8ecf26e13cfaa6efe934a5eb21421a2f3e78d64a3001372a1044bc2805d5308c8f4c4d1feaa3fbf31858b4957b5ee6884afbad58e4f8d989f6c387c34f56209cc692bd05d01eaf107b21a3fb5cbd5673ec5f9751d3057cd2c6d8890eebae97755ade174e62ba9aa5d7bb1fa33ca68f86cf05fbd3030cc1a88d5d00c44b0078a97d2b156ebb24185607a5e99b7a683b738506ee50067f54485988eb6ab176bae265fc544e51cdf8af2fa4a1ad09e6a3cfe95d71a6c69dd5708c9bf9a33bcd1494a160609aa68821711d2891aa05f7af20fd99e39763cb52448b28e20e6f59412b6316c7865f36801461894e50151841dcf3dcfc7336cbe9412ccb2c3d3743b92694a2a3f9e241374acb5f717002759f397eba3663769a8e3071be302ba2de917273da97ccceeb8e949ecf8daa967ca049170b3001b56cdc2a5c638f6a922136fffc366c62549919b691679f711cfae3feb6ff925a627559deb5b727c4e75a04a1fcde8526dbade82018fa21d69c1cd9c49f875271be647214b3984301cca1966d6c73e0440fb056ca75bcef0b2a268a4054e5679edf633b7fca509afa9ef9c95648306adde1aaeac2168f05e38028df4a0fd268070cc84daa62e351bad03bdd58a3feefc24b64655fe766fd4db76bf08cae84b75fed14be0abd60699502bc7a474cc8ba78c488fb44c9648289b0c604aa042d4a35da205bb748372979cb8151b4735b1bedf9021dd360cfc60fe157a383a83de24c3a00f1e89eb9d793d879f74edaa242a274478d2534b07a47d72c541b0cdd015fd4302724cf3d6030a20281309692998f9dcd8f0bd940db217ee8815420b47825babb6b4f5b6dd433683a1dc33b6ee6fd5794c9c7d680907cb9a3e5c00b4d4fb5b7c8042816b6df12ad1a4a1eb8c7f0b9b7673496cb766a89e2df435d8598c1cb66284c4619381eada128f2cb6717c9490fe25db3fdaeebd7291e25bab9ce62ed7a49291c8c830ff34cd4ab7d8efb2a232f12dbcee9d18682ba09e714bd407a860800af2de63924afe1cbed521f4119fa4dba7a45fb8d0dfa126b0f8d6c0df722d853081785c0942d5176533090ef4ecf1ad07d996b8a1585f8b6f7deaf2802a0a34b30a003c505581bcd011079537d5a17c1176e67b28a3859d75bc4c7df1f3263d08b57e14e743850c068797cc3151c16f0c9edf71ba3b7028242b36c944f3fb2107d2dca21dd2d32a7f7cddfa0665104c9a88744f81738e720fe41c48aa6aa65570e59a3e4fda8859c105cedd0f4d562eca9be45ee2778e987e476fd29b90796d19d072e95d60fb2149ec6c3e1feb10e4de9643a461f11c7d245cc5d8c43f71d2283491835f8d1047f6b4c404de9d0166ae9e57ba5fde471937d0877949f26893c86d0f56fe6cab893b62ba304c943bd58960b405fb131af9da940383462c34bc9297bd1312527e29d69571630dd867983ddaa190d30304a9368bb6ddbdc96ba9ca22f40466416bb37cdb93a3598d5fa1be60a281b10a024677bd667be918b4b75d55b2cf09279e30d9e693bc4489dc563236b890d18bbb03f8c91ce0f60ee482ed9f874d4610184a5ff7a38ffedc1c9873b480a00460827340996a2f0ecf50e88a94002441f5a2ac7141781eff55336a58715be03aea6293fa6e71b89cf8c26a154b5dd02a2e4897ffb22249ed66f9d73a349a2e35b1479c7b323c9a9484b844cf593e4ac385b0aace375dc83d81af796d93da67fd892ff0766cd7328427d06c6968f7dcf29b80d503fd5b296f9465e41e0bd43a77fda53dd019b008d50018b668ecc90ae27bb92c5d8a0f85f14b1386cbbad6db57ca9ed1595ab48f021ee23cda110c6b9a1bfc77ea6de1004c480910b4dbc4465221ed9cc128bfabce32d4ae1c549c572be02d1898913e03bc3c7980dcf652a30815faf642ff867ebb1b58eedce8a46a3f7bf9012f434987a43ba499380d3182ca3ed03c37639284c04e2aa83a1957e3d39f81709018d689b086d665e3f122f1a1efdd9f2bc76f173d05279ab825d98c8b88afc3f6cbed599402823482c2543c95aa7c11f174c2d5fc877de5f3e3f20edd8dc1f10e54768cb6a3bca7ac0398207bab5c0a5ba32a35e01c1274d5a69e6f41ea070c5283a743d3d713eb459ba1ecf54f97b60af1898158f96a16408005b8da4892ef0e6500d232ae502fd3c781fd978b1fa20fd58b4c244619d935c972a826f66f9ea63b3745afc3a6dbcd70514583999daeda9047c66e280d68c3a02dc2e1e20b35516f207054942fabcdfc817406a98fb01d1622ab9e030c44ce3926eea6116d17a2df613e4c62a1435487b0391e5a02440b244dd7dc409109bb51dab6796971ae0ec6c833816f7f0d70ac36c091a5119253061a30311e7b71ceacae0d82bedd8488da9564118c9f2ab012c07a10dd8e6152e808b774f56875b020a6858aa70f88484cc510863e40b35a6557ba6f5ae646b3b80903700dd6df83516df26934e0f0403d70e063d3bfcc08958ad7d783347a564b1d15780c055cb20747edb31d089c4cf76411068ae804bb15b1ece71a686fcbab4adc03bc63d558ffc923fa4c432fb3b4c74402605a05a8eca91e867597c92e25db30ae3dfbc9406fa663141da7aa0cf93dbd6e2875278f3d815ee35e5a3c027e12d8af63a09aede60ce7c7b2d51cf6657965b01d3bf179f38222a8020d645bc4cafc9cfae0468ad6bba5116805bf2b93a6bd12800bd678f37aa748e3fb6e854d8a214089c22fb8fbd55cd9f5726c5229213651653bf0ad6c62990d46371d40ef0199d32cbc4910719704fe883f298eb4ba5d5ccf148c6a90db6db15cfbb63010743cbdaf658c951f23abeff127f872928f2fe91eb8674d8fbd11302395d0736858d883c3aa658c886793b78288f26e255f81bb6fbf18ce2ed908af2bd71e580b4bdccf1445860f626eb1cd84698d8af42d40ef23a2b0771cacccce3f9719eb513bd70cbf4cb399f089f4a00281a45ec722b5e2232085b6e8f786134992193060c91b409cc00825b9839890b4580cac1dba5b3126f7df33ca77dbb38e646cfac2f353c65bf3fac4e5a7e415fdc563e39d144f8f23ee454e098102887c45771c05fb5c4205468dc3af8ce0450037955b2a74f0484d97030e8261824b8f10629898e0f594d2b0fb491467bf1a350c17cc548163eb9d8bd664629bfec73a897bd77110ce735bc507125b1dcf1822fe864a4bfe58a81eae543a47bc33df30f40a1bf536819cebda26fd035543434c766317c25243bf0b0414e257400ec8ff7526821d437e5086aa5feca42eab0ae00d5767012a4ebfc14807ec8c73990c9e100279d3bd1ff110a92859c09c8ad79389c485734bc33e73a60c4b56c30112829576c14d6e7fa9d940f389be9587ee9f26d40aaec693d0fcd12dd8b17cfe98eaf29ef4c10e3c492b0a7b426f17d3a6ee5f2a5a273ca1355d0718853d6eb127c41bf1e2a5ffc19bcbe2cd277ca92c12323be9148927d1363b7fbb13967f6fdc87347b23c5a0bb7f05bf55e86b306479aa3c57f1fd76026a62c08665f7941177d76c1e3a7d52ac981b0cb2175a25c33eee684e841173dc9992fd1249fb3b112a54df9ace4588baf4c54ef0e262850d09e14828aeef005d4e12add34b81954ac277da8be2124172835048799496f7463dfe69110fd901979aea6794f7ce9154d58177137c2e696ee77091a9c84e3a0a6864bcc34ed47c9d10490d12b14f1cd86137ea6eff81ee806a948787a8221fd0b1d0b4cdad27d2ebcd9b46acd3b947f3317e007439511487427a0c46c19aedd7fccd985c78203009304eea257f6cff0765c989f8537e895ac928cdfe05db6e1d80df6fe844e4090c8cc2c2efa981028543d6b84ac7ce0b84546ba69bf1f884f7c001442b42acb199b758a59819ab1c16089b44959faa9e273d9807d86b1a5765e4b048f6d42c6c993841679e11d43116ad59b15118ba16386f816d3e37fb1c48f591fea8e9a874a8ae4ef4c33696add78f355b56ab71b59831419680b25999decb9f27649eb5f776c9daca93cd81296e6daffc2daadbd49a0f12ebf6058c8e3f0d3223c15ab57703826deeff9fe6762037bd6aa9c91c5bcc939b6a55e66dec94577634d69a32d28c9dbafaf5c9cfdb126536a8fb33947a8a44ed10b799219fb5c05f4ba4ff0faae92d11da665522463bc3adddc82d58139f17afcd984b12ddc1ae83788ed484f762d48cb1f686cce7a9ceca86bc07dae666f80c65df96473dbc929bcd6ca92177a5ded8577d4057366055c652ddf4e2f831f34485ad2c9fea2c0a7d2988be3615bf2f6d686afae0757ff94cbd42e79a5132bfb4193d3b72531f88d8ef2dc40c4eed44b00976a0305f63307763fc81d69061951e1e82da0c50afeefd934c5d05e93dedf8e19f1dff7a32db77fb4a71629d51994c23afd42a3a8664cd6e7e7d71103b2069c0fbf2ebbe5545c3b60c7bfe4a21c5b768b2e402b4156870cbb1d66038ed591394c84294e3a761449156cb4cc919e4b94c79bd28ae1b281971d5b13306539e714ba0871adac573cfec5a119fbe50d7da638ebe0467554af9d433552a7db257c1e54d4259869eb157c13c0b6f87a66f0960c62fb9e083dcc36755850e355829938c2d9bf49c111fc1fb92d0ee7b4ba9f6ac5cb726fb3411d416749738ee7c5e39fbbc9066c9ab44db6756cd19e0b1ea5676aabfae37a30a20c8ea9915683aea6d2c533af92ee44647cc0b9295e4e64eb6a14aaada27d5d224aa82dd05d9bd78fc906076bde4c95a9e1b2cad2188d7f53ffe23b4f0d2380256d022c4bf6646d06cdac1f34ea25486b756cac7c8f4148999d25dd2ac4331ce09da9c03b2a78a9a04d2844dc2495ad5b6bc3a6bb0ca00ed4de2903dd69016caa18f7fff219fdc6cca26141958c6ecc669fd3654ebac37e269e09bbc17a396d2bc37566c534600316968c7a79ea0763c1ca9799fefcd4881773c864bd19b094ddfc1edd4903d545846ac9d54c2dc2d45de4b1aea92b1f85f73a0350acf909b2364ee38630b276dee59109b526a6cec068af7ad3b82f2d582f883aa69ca593c18ac0cab8a60c1a174d57ad5274a5e8138e2144b8c621647ece28847b121caf82aad28eba8e4a3e446d0e6b3296a1e63ee766d789ee1e17df6ddc8bc9e356a2bbf568c3be1173ee2d2c56ad9101496d123e1a71c37856995e54f67eae32569e27ee31ac392a069766c4bcb322dbb5b41938134d9356dded9b6e28533747857eaf1cb726419f263ffb25603996992f93c643985f5c7f51d7140f2dae4f4ed88a1c58b8a6ac2833a8610a4a124049d8c5392cbc1358d98b087208dc6780d11accfccf7d928f146dc35c3d06c9061642b4edb157f9c83d54520a217057a513f0ae64c1d2889483c0fb1face15b4d39dc006deb28111372e4762ac5682acab92e904b1abc4ed1833d61511a3c61f496ae1262da8c5079773d25f8fd981e0443cddf65ca942e131ca82b8d1533706a26e616c789cc9864a34b88a934d347da2a759c4ad4c49cef44b5a66421861f67407d4c359a3043d12cd1ab8773b7762d68b231d4ed940f2935dabb112afe6ecb60df715895af22339c1b8fed05f1ab60435ca6f4cf73d44c8c84a10d9eed44842e866d8dea1e1178b224d83acf78f4d1b1b06a5960c519c5bb38392ec0b2a7d4e574d9f9ac1ecfacec30801ff49050820943bf1f6938fb38fd4a01182f9b59dfd2f0aa5f67c49d79e82f8911706437e915a599049315d382c6fd884d5f5f5040d77496594a0e05d087cfc5b36bf69cab09bd6d8e2e1eb6a7625ce48bd40058ed5d6544b56b52baa3646030cc99ff12a93479f1269c5763eff93c7071e8e4fad4896695644eac16b0e034b7a5afc17726ad13e949aa889500c7e82d03cab72ec2a9101abb14d205e6cb7dfaf21cc08ee2c01121539e7fcef1524a468af0a8bc3a1fdcf695ade5e57d8ddbf6c54204a1e8e78da3f2fce2c6d7ed40dbc3ebc67185df2a836b18d8ad5b9d454603eba9bc77915da207bcdb9ada4a32a04dcac4100c90db17192087d6d788cff831d4896ce565b5612ab1b6ae110053ae2c0fcade86ace63a31b12a9b7b2c87584a544838f3109f720dc9ca28bdfb478da8faf122a9eb9ac9ba67cba6fcea8b2c38df91f12c8b9c1dc1051eced7d3d4bbaf84fb5073edda39e94c6a95cf9349239034902ae0dd6574c781126a5fcf08449a6020f74aff448e185c19e0a1564bb48e256240eacba5c597d585fd1fbd969b2c9581cbdd23dfc9632ec046b388f7533f4a68c75a40f049becffb923dba34d2dd358fee0ab157ebd2e6e69f5e2e5fc60f77cccbd44b1cf6b02a00125784a5d270d66f5180d45deff3bcdedffbc36c00b2a580f667737942f5728e3897e2d137ce75a9768a106a2e39078ad950f00ad2fd64d60e7d979e4ae0d21fc7df13d0854651519d100b4294f0dda9b3f009cf4f9bd7d5719cfbf60b8abeeb644cf339177393f56db52eb75566b0e27eba4ac8411850c121d711e0843a3435ea102c277e21b2563237b7dbe8ff9042e091ac2827798df8fa8cb3eb5299a80435e3f4f86c6521f9d3f0bc135e989902c104572a58da9e6efdda2dafefbcdfd883a6ee586b7225f7a4f041b5a2baa7d5a0660ecf5f8341995f6705c4fe808bbe500ba5eda6f4c547f94bcb73b133b2627253f13c7440d24b8b807e47ec2e26c0514b89c49804c70a6470923ffa60c12ab8db2a497c3da15dbdc8ac780f4d05de480d6e426f289e66d13ea4e47710cdaeeecd72a5d95e6a9271b147fe10d5e35574d2781dfdc173eecf71d0fa808b0dc3eb7ea67812966e92794ba29907cadc1c38b6af2437f94dafccbce661e1c7cefc57fcf8d33ee1f0ad2e6a913d3f97e6bc5efe986638f5c320953a8856c6b91d348168a7c51bcf5ff1ca3b12332b15a9d2aff7f08d47e1b9995132c5cc01ace9bd286ab3ccb545a00143a955830d51796cc0c70dd9758b3941e474f2013e950485d4d25cf54c63ebc1c835fe2b32bee0c87332d05c4e48ef862c8d011472735e87a72d1751948a60233c8a2fea0cde6384b04d1cb6e2f29cc77071a66c9cff1320bc95188ade6ea4fc198d2e35da9793f07f13271898bd16b0eb266f4ac45d215674be97a6426b3529d831d04a95935d2a22eaa9b02a8240f87c30116355fd7cd0596b30bdca502684e13e81d77b4f1a81fce9a867a849ffe3d0fee2d7b58562225e1387da09da7d7559fa994bc68843518284dc8b87160e6daf0b5d820d1009b17e3c419784a2175585ef14c6bf5d029fe7f8df6647d6472b02374fe4c78db8cb5db9f709ea91636156ab0c9c9feb94ed04836042263b6b11d60f903a5fbcc89f64bcf8c35c68144d9624e78401b24e53306a6ef2cdea84ab86be7c01c5c8cb5b424548e2a1d22cc81c0ff974b5455ace0acbc6ad6920c36a77bc6ff0fef405d540bfd23409288230ad082901a61e1e25f5d2aa1ae4b3bd45dd5cbf37308af996320c32c512e80a1e340317606d98afd0b052d456b39d8fe539756aebf52278936887ff9121c087ac073c8458f7513e9a3015a8e2649cc5534938fb2306fb5e5a2044dbc679ae6d9aed0e077551191d6d3f899b2a7fa7f4c6936e772afa5bb59b6708c5eced84f483f270e7ab3e05df3bf95af5addbcb61fda0dec0d5eab3a5b502bc30c8090239f55d7f83961af1da1a1c42dc40d055a3a8d8419d9a67b512b6dbf5dca7eefc00e7b8097a69d55e04f873aa41e095d32b7e2988933f6ae85f8b1262c84bc10a4fbdd94a4428684e00df2cc1cf5bc02c963dad099d5a4b3625ba119fd79bf153965b04e9564ce7d41e43a42fb4b030938a2f53b3abe903e8eb3bfdb259749d96e64eb26da8d68e306eaf149be90c1e2de17ddc351d5b24babf2578b7f6ae8bfffc2499b70448cff8a7c4d06c4c3ae9466102a66158873beb26437dff71926ad5e63641d46c028dc84f9e053644e3d1ded2784268e954e9f2f00971beb368ad6d88cfc151b16f2bcb39e6a750afa3d83c5c9f07d960d62150c37c5f7d02298d5c3a5a274028b834cdea08021df4524a833da45b83977f11c874cbbd842078be3f641026c53a9f5caa846c83f22175d4666a2806461c2e79869cc4797b4cb73aa195432ee59b4aa4cfcc5da9bb85b9029ba571cdd988025f3b7208237b6e38bbb2119a3817e79063f5601bfa7f6f42ad83f7499c1458845842c4efaf719ffc2c5dfd41f445f71207c48ed883e396b35f734241bc897e20b70702c7cc5417678acdfa07141ee5d2898cedf1a56fbf0571c1cb347e41701547cb143106c540347005f717a9c8f138049c5f9afb20093ffedebde50a050b478911f3ff98a63753e9c5b522eb2da5cc5c6143c287da51274305793dd1fce652a14b772bc9891393903c4ccacac6d019ff72b23dcaf2d8e3dcfc208dff48be8597a1668d52f1e34044479f2eef46f463861d166e6e0a3de907fe03a78f703dfd4ddfc02f6f713b87a8d388af548c014dd49475a81042efc6a83510bd19e68b8348786c20b20bf4977ab4857be3645a253107822dd7ea86d230939f486457189e893ea289a03d749f7ae06a722a305b801d51d7bd305d38d69124c1509a91a34b390f1cbc5f1984f06653e0a0d69ad0618a723bdc4fc11c47515f8d070969b637ed1f7e458cceb710e3e723ddba28ecb4b7f70d13e6f34737ef8bc6906069bdf49a54f272f174b1ea057a8093df194f89b1c89cf3ab5a145834822a5f370bfa323beebebec181fb7b1947108e87d02a188628c51a57a1f4535e7b7bcb5ad85255a2fae4a1a8d6861e2a437d56ff0b08122a47cadc0213c2609d03db632e3c800e5366ff147bc523a6a347f9379641d8d136e1c7df1869c8654a280633ba916321b9ca81b7909c1758f2df5c56c63f0ef870fca98c0e43e36ed1c9aa90ec595d15ea98a92a5a94e548ee2a2e5dcd42d488672e09e789ca29c153626056b640c9478c1d10daa156cddcb06d95c8bf1a03ea5625801c85f344e45d867f877e1bfa6cf4092c8fa89498e7d9a86b0ff045affd70e9e84cbe8fd9d09175f02376424165df0d03b1c4ce74024a403cba4ef3b5a11fc33bc45e5ca77382524c469facfd4748b6aac620e795386df3b3b6e6f6f6ddb436c50f364f87ba3e7cc2b5161e1683c132cd3e84a6228625ce76bf0bc1bedb7b7f645ec3cdd3765aecfb97c1ed121188e03d5464ec8de9a078687e19181881b5d34cb1756dfa2ab092efb48529aee508b5137797c3e8a5f280dad5cc860f8ce3d4c95aed178458989d453eadea5544f772c03344dd70e68968ba3024d994d73b0e3a10ef3132769341d1fa06235eafa11af598cf9b674e772e1d51953fc2ace44fc830a6b1bf009028cea78f4ca20a20106e24308e16c5b8269514431f8cc7e32617a4431095fbe2ada8ba45de92a6aabdbfe9b832773a1161431e798991dcac56d3f912ad20e518b95a31826332d3bb53faf9b033217e9ddb8fe54d9315a58bebe71cf4f6c05cc53fba1ec7d9870e8dd921be611fc5fa8a6dda915c181ef72a1f5bda719e83582b6625c7186467d32006ee62da0aec82860cdbc42daa8a7c98d2f362cf3852e7e5ed4247b73f574ad83cb05c863cdf3373acf1fdc9ef43eb822f04e5a05d8a1798e7af8397be99176f8cc48e7b4e0b403ade2ff4846a4a10e392737877e32975cf9f2984f1b52eddb47899ac822efde1e87ead4f17a82ccd6cb4a93e997d6fdd196cdd52f2fba44b156fbdd194bfd1baa477d2db1f7e035f9d2e76a038d4709e194072ea3edd8823be3aa1f4a9f4041707c11cdf2b8ac450f2bfab4fd20218450c5e5fa4369a1da5e05e6aaa22277f186ebc169488e21c37408e71167aa69d18c6460463759705aab9966608460f060295874567f65cabc73878e0f3ee392a95024190db680c092772b6c07b354fc5f694446ec1fa469222430958cd08b04aa2a250c61beafd14435612af8701a11179156db8b48b3443ea01997cf9419f0c4c182d7bcdcfde17deaf3619a1cd3572681c8f43f83d0556f26c6311b660b3cb8427fa03f57db3dcb4cb364fe446ec0c8df3b3bf896cc0b859809931bd29eb61a92e2e39b886ca7d332999d672c427028f133555b712d5f778c22d7a94de06903be491774bd6ebbda428f02d1e9f1614bdeac8cb85fe94609a5ee9eb87cdff82d485b5ecc8ad4d89b15a123c49be7000d71c58b713a31c3d31f8bf869260ac1c122627545d2d891b322ec3128f92a322c5ac4e06b9600b6063e5e52debe5f31a79246c0166655d4463402514bf563e5767ef20251f1338e7b159845207e8f23eaccc5d4e6800df6c9d3fa01a1933956b3e9748e0de221e87a98fb95cc31a266cf4c7b8ca245febacca6f77d2fc558468a9ab18fa6490f4c92ba2c5d638128bb857a6443a60eddac99c7bd4510063a36584f815f4092f7a80f2308c22c9a4b446e9ff5739128e6398fb44eec9d5adc077f59778f901a61f7a2d165352a3e2071f5986e60e113fd5f155a0fafcd70d7af174aa4666f9bab9015b503efb4ace9241be7ac983f8d914ac46490f1341e6c5b8d598b263430ac80b479dae5cf6132b8e29f684f50c8d50464144c12c4c3f428e36be978f2729bb6b8979c3abd04d0d34b8dd687c83cf062596d1485e977142b0add90173d8a773be09b0ff43a452eca1bbcd847edd4878fd688806c7f371a0434a82ea570e5a36de7f2f6cdfff0813db8d760bd632517e7df575f82cad5b76cf95d3a881e3757bef73a56dcfaf9bdf224de13ef313ddfcb600349ddd45bd9d9b3891b76630830a9b98fc24493904d0bf2f9b73c7bc36e1f0aef7d47439ff3420bb5b5efe9187e4177e3416984387acfddb0e94689600a6cbefa32dba91af2f521f2a362cb60c4ae5651734623c8abe5d97e79edea2aa5ece53fae6feb7888054cc74128bd7787a69a1a444182b2a29234a5b479ca852b7f4b3be0db7865235e70273abbc1fea9971c4ca8fbcd95bc21c06aafc25065516256dfc78ff9964109ac03aa892a02eb13e0fa99fd8962d9da767a50a837f5c49092d623479dc44b3312529ed82e973b2de0e1bf24bfd0048aff17a29da4b4efe017f5cdc4cd1a7e9fa9581307fcf12b89b052842de49bc7ef1fd20b54890ed188f9468bd19359920469b35f6a467b0a8828ff62a2debc12d53af666c1d820e02c1a83c864f4d325284b3d85507b6859193de9094e2cad587c89b8c3d9347dd8f8039cb5684caec0ee685b48df3bd712f2f931b0c7ddb48de5305196c593bb84c854384a17a0cb5aa67c8fbb2f9ac12936c2acf4656b781fa7c11ae5949905e4d57a26b354ee097782b91f084aa543a23a9893ecd88b9fa03a34d6e6bfc58d591b10fd27b3f80d7642238b61990d114f6eb1fed543742ade30ac435ca635f5900eedc72c4cba04c544f099108576d7f0594256e82983291e5d5cf0d89a3668de57f900dd30269fda11cc628c3c0d4a17e91c0090bb99957845f8211c396417b65546daf7f238527f9f9144d160021750e46d7adb9a4e11a058da43c4f24977cdd4e5d32a11712a4fee1a1d5b4a5470ea4d7f610a49445298871b0f458fd45eb65f3b4b36e65f335b47a8bacd5d689b07c4a0131faf7e75a058fc564de74b180faecd2d0d03182209cb97690e21284d8926dbb86609542ca0601aabdd73d476e8c44380bf51e8c0fa49ef00bfb5a424e79039d6507886666345b087c662fc8d4c1e60faed139568adc2e5d3e84dc4915d4e9214e867747913fd53a14c4d68798a7a7669dba7875173f67843459c98d18a078804a9a64d8fe6689c7a0c03cf84cd269f742a15166181a2311098b32a1962fd06aeba4cd19981a1252050e706b12d91ac0343d931dff673929dfb0fcc155df4564dd64340a80d014f880b98f8fb2f0942eb42bd8d8da8037b88b985ea38e3bd96ca9f5b0806ec5738c05c3b552859d800020cbbe6b902aa606ec088839b117f1045d3bff60b41a2fc8c4263530311581301666617bbca44c2a3077d4a9e6d4ebae66db5c680baf76d12a9fbb8a0b4c0c27294f11ae6ee56c58576f55ce039e10a9021f25c9f9b072165b6b3286295603c2774967ea6d6dc0b797bd67e21440354f92fc975364b5a3c27d44a04f6dad03ea3f0f68b267592aaeb2facf1fe4f5575f82728cf04016f17d4ab732924d0498c94df730434e6b1260ab33ed8870910ee3f61e3e8812f48f47ee4eba1772fdbc1bf94970d216044da8e0f9eaefeb66928cc3356392fd2ec8a187a22a8cd2f0d85ca5216f9ee245b710e7000f126483cdf50ee294b86af8d144ef775f5825a624a25acffc37769d33b4ffba8ea80c429613a642bbbe3162e2930271065939cba9a01e3761548342440bd6858bdb0e06a814b925bbd78fc9a586a195f8ee0224f1664935800610aa1fc74379c0bcdf04a2ac68b2932c5c4e9d0d44d5d3654335ec6f43fca1a0d0f550fcbda9cca4fc8c84ad1c0ff8e175820598e1aea7684ec7d158fb023dca49b98db8548fb358d55dcde4642838555aa4b274012740dbd9caddee1c451e840e74f179e11cf4e411f3037c2679fa277b3743c1e348da1a8af4aa9b4f5caf4171c300577f7618a67568382e2e55d49afc09cdad0bafb9e727d7f12e68827a6f6e0bb65477835b07798f7bb12a78220156080829b7345b42aba22c5f3932e3c97cd50fbc471219de4a6197311779e41a7faafa7b02035ba6d2c18a20268bbbc77505df4f9937f97209909f52eb91cb0e39d0f9bcc35899d9c50ff54f59456bfc051ad06c63f112507b9d121bd98b4111d2854ac56786eec2875d58241f3e739ce2b8ec4ca645ad934aae7b0c528198636192f1730f5a2f1c708c21114c37b4cd4bca0a90159e46e435b986564ea6d0ca53a0e7cf209fd280f10694a4129bd54c51e35ef298e923e82e800a3af2eb36ace39cfff6d675614d9a45c893b90389294e735777424c070a4f2d6d2fc7f454ebe3a221976284ed3e956c9ef9b5133202c7bb9d0a04a53da9b753addaeada7c9b2b8b227a8767fce96f0e985a19c9f3a44e6031c46df16cc1ee0e96f8787a171b8d01c55f5b23e97526dc29dd2b52fc6f158c9d734c7a94f9f3d8cf5712297a0c5cf006b287e3bd90db881550053dd997659ea759d6af0f1e393e93e2108117820cc71f7d7b4663370a0e291ef09359ee9bfb1779ee295294462cc2db2e5fc71519f70752f39c72923388c36eff4d6556a08a292940860b0c2d63ed52f9ff4abe73d005c2f76e60d8a1575b162988ac4157cbae8404f6767b647548bf0bbc34bb91d24aaf62241c5ef755da76f914f42db09842400c48dd16c9dde0963dd0071af59ccf21e7b13438bdf519260d992fd192fc18aa063b76ab76bf3a0995e233fa3f0a6004a02e8799ab69b2649f4c63861314f7e4f69b92dd14cde91b6e2229e4234216c30fa133d0cddb8900b09bc1aed0598869a4df05568ff658edc912865cc9479f2cdee5ab16968f5a7794be7b7a6346ae7bfd45a32cf8251db24cb50061238197a347c23dfc132986d0e1fa517e6aebb55675478f689ff107b95273bee022aca076bf2f61bab501f91bbf123ba973dc9a619de2338906980b95d8cda9c26eea257c66bbc57fe15725ea872d08a9fbc51e53d1c4507f3f433d62af16ccd9d0ef90bb4dd4a0ae480ecb6117c160555b2f5ee0b93c9cfa57bce787893ebd3d0edd95c590a6ef2820454fd832557928f5f9e6b19ed320be51369cca84b3add1179eeeb30c45d12f0b31f603f0a1bd2f8d8f1c43a078cc51065143d6a0c8e240b195f7b8557f0c0227db403cf120f7615cf1e66571268c7fa02493aec6e7f1169d08e712ab66cba530d1375b487240d33d73471bb63d60b49cae6aeb60398be20799b1d306131f3494f83f4f79de788554026102d704378737e10bac7d7b34677773a40ea4cd6f6952939c5a678b57f64a4ec601e68390fff3aabf18aa8fcb714a0fdebe39c52e992a75b760b7be3d5e7e4d416a0fb1ae990edb79e1ae861e9d43671c89bec1b3a2e39c3ccd11660042c9353ebf9bf96a3d13a1677feb7d987bf49bd30c187ffc7a9a62e551300d1f14d16d7f623411cf07d5de5b982631d30f3d1e73a93debb7a5ab538e216bf586211537ce28a5d2c62170b05c6b8f14325ac52b18fdef06988c3a29bf30a6ad1cf532b4e8f80ed657bb067ba44440ca83479b963d475819a6889747d8eb4d79e08226cc365dcb769854695f8d081ab2f6b4b442c94d019193db09d8f2b8c5d617b9d196d1774b17fbbd2d265c54ef6f0cf17cc2c344132cec093200dfd62289c508053f1e41a90f16567ee34ccb67fda726668323a3ac3e22343e23adcf52dece1b97b4b94a4b311573e41da76b18dc83c753ec188d0b744aaf3545d7a5304cc2f463e5911bbd1240c4ff96cb8b2bbf0e2b25f918e705775e6f11a108087852845cfd11541f78eb1f998afbe2a39df2d7bce7fa4c2761bca72a696f559428a07e6c7eccc878d4c09fcd2dc3771fe43610aa4f076aa9890b8c8a9678f6fdd0f3bf01a9f5f6888dda0196101643078f0b345e0194722ad43238602ab13a18408347c274954dc1181d1767181d398ad79f2238eca2d0c28c5a6d00cee45ead3971c8ed4617be608cfe9532d708fa16faa9765af1cf9bfced6b851989e580491b48b44038eddf03cefff148361cff3eb70f0d5cce778e70415902b2ddc6373c53aa9431ba572664b1cdaf4bc6afe45284d1f090560e9045b88a35c70b23b5df19884fff2fedf4cb8bfd98d167f79d6a4630064915aee877864335c9f1446681cb79853f64fa36049bb1a142c11e02111372427144eb31c466163b915c6dea16fdbff96c491ff817df75f8cd3da9f1c7c08d033dc79f05263d68ad8c21e8a7065babf79dc14413c7e7cc93bb8c9dcf676a8d6b249dafd3ed6a25a0a479bc5cd17eb267b9a8b70976c2de1d48510362e87a9113a6e69041f20148be88b2ca75714d161bec0fae0267faecac52811e135b4c92265cec508d51f1e78a8b5704d5c8ef7b251f4d5161eef1741cbb0a2cf59450c6d2c419bc74034c399cb3bf526cb29c42422986f1d00bafdcaba71797b220b93d0c6def08377f9cb62f15efc224bb3bde0fd60144b87e26167b1e769e9c7175846bddf9f8fc67680512cf2a187b9165d2d72d7c5a0252186d39819ec87b88e02b752e7c6a0cdae3bc07a33a545d882e873a89222225a9d3c425cc8e9f1b86ef6bd90f2619d1e38e7abebdd0b18b49497a26857705b90de086ac062c42aa7a134ebc41d5793009aef07d6590746668f1152742a9101bac83102d624c71ec843fe0fada2b076ebcd78b78dea4cf289e5c89a4748b4008d406d5b259b44e66b14652d8daf401b2f47015308bd347652b5fbdff111b45300683a1f60d5d1d61d82f11fdf46986129c6b80c2477022dad0b70773915d0ffc1fbc628936a38cb54377ec4bc2d204cb5da55d2ca20783d1594993ed8567c106f27866366aa3d53acb9fbdbeeb1cbfe10643b88051d9a784b4ee4c1d72d33c481a37be0aaf993d785e3d8e282eb867649cc8f0b17f36e6727abc6c423e08c18a4517c3378647380402bed37ae7d0a563957c084456ab4bb253fc0ab6f9523cdaf9d994ad750fbe4e45bb64464ca3ffc38aef1958c68f93f22c4a1c63040ab9cc21172a153a1e70eed992f28309e8c958b58f6149149906671f82b99a1b511ce72c9bf7d7b1a2f88c20d33396e267fe2ae52fd21465202ad6de12584bb4b1325abcbda2a20a65cd883d56185e2bafb16b17ee1c14d12b17c9e8b44975c3603d1a23942c82c8b67ba6a8e2bb928a89e2c9c943dbbd0a79d994918c7e816f9d7f5873629d2cf69da0c6d42778db20fb4d67ebf4a923c5c8ade4ead5cd750d6dbb77b91e49354c180b51764dcea5ecd1f36c508ce93403ec033dbb22959737b415012b99be96b6410b399db545a305bdad27dca42fdd7447d0fb6d356b8910857bf4fb75a0356f33aff5749711f27bc75536f36ace41d86852fb20200ee307ce885ad6e2efe0516d83a16f12fdcf9a285406c2681175b2e3ba7692b9e8500774899c81b33d05856484e8bf74d016268d32fd01190be8e89fa6db5b8dc2630083bc3d13469bd61328bb59b5bb9ba907ae30b08f5289d35b2c13ded812fed1663df6b3106a231a806213d492f1df6734aca7174ea3305c6aca675f7a284b4cfe90dabdae89a81dcf7444f2c4066d68538fcad7aa90f53b341ddf087676b17b34e2a7eedfb572b9b8bc75ed7814be3e0d8f910d8ec03940aaecb332b0cb0cee3fbb64073196d8a4461a39b807eea106c8a369c1325474599a4c0d2a396711ead6977a56fc67d8b1c7f9723ee5f2cd1dfe520ae3de6600713631c8018bab585b12120700ad1a4d1b181b8bb7ee161ad021e67c6ac784a90efef79177e4ae4f015a06d898a084304799f0c977c120638fd0d3d5b5ef63f1240ab0d65ffb6de53e156b781d5fdca3792915631949dd866f4a6318264eb42a15c4c9d7622aa09c3034738895d7522b93a9ce4a329dc892c2a1377ddc089ad2c39f24783a86dc4ddd908b10a34d5fd1fce7123f6e1911c56559871105e9759be03bff618abb0ec960ba0aee83f60a98f1bc13a20fd5e712c78625071b0a5163e18f8f14342e8e172ebe80fdfce902ad95add56e210ed6b4bb24d6ac98910fa96c50eadb7d71b4a2e55ba62cb353238d8a96b24813a0043bd1b865ba34781af5347ce27024f0cb072a330e024aa2a950e7fa98e063443eb57402deb674512d2147c1eb671be8f6b0d5a14494e3449dac70d4ab2ce8ef6098045f26d4a48d4854e6ae58160db58edfd12ce1ae6c4cd8c29e2c4c4debcc29391a741c5fa834e5908b1881bbcea222242a95f38c45749a432c27ab955347010e57fa4fb1a9aa813ff9fdf8c121cb1309ed8f7e88c5b468799a36e375b65fcc4275d9e7333dc06fbe659db9a813565af7f4b0e8030301d6af4f17515571ae7a7d98459939cf22a8096a4c4923eb1c32272d746b60600d40c5b23b5df243cb914567f77fe4ea5c77f2b4c22213206815934c24c67f0c84dc12c035d0f001bd53bcfaa8723796c83dcf48ebf73d5b89c2b3b13f48cdc2ee7aa22491d45a424ab486c96243fc0968d52d3f4c8a7706e8d6f85fc39b61352dfd9945b25215f4f6a774556094132b92eca7fc94fdea903ec034ac7aacccb15cb7032d007b298aa5e748c7112aa76e014788a694b2a372ea5c37df151beea88f5ba1776024b2865cbff0924c77ff586be37a8f990b4aec8095cf8bfb898b2d6fd3673a98f613b4cf9a09b8365b11522a25ec24c4ccf68af3d0b9c5f28d6d7320111a1b0b39f08dd72bd5e7c46d44b731e0d5eddd2a30fc819c865d6119a839d0d934b94a4e304a8f59893167e379979c6f89890638cd38e5b31095b33e6cd0e31f6c2d5299dc626384ae6ca444646561d35512dcf3077883231bc5078a679ff72ef4f82aa8f53789c7f9db6854345178e4c1380ecd5a6c217928a2e4cf5dac2ebeb133f1de23bc764e1759d8429d5f3db150e6afa2554819b4e5683ffab8ce96779bba2c6c592497556db4548dc26fd53188477fb5028de74903701c8611ff2a34184e611ee81f85afe67c8bf3b683c7283a162a6b483f945998c10e410f366f5ab2f69b24aefdfdc7cf8823214a536a9f5a74d01960c7cab55139da655df06b21ade9aad82ae3a762dffa0f05b813cd9a0995141f861e57a94d771c1a29952465314183044cad26b4228937642a474036c737c980a94336e7624214f92e1f40399c751ef9c2b0913697eb772c4695208e21ecfd20915a33db1bcc408acac4d53865e15d90c223d38bc6b4c15b386c769db452839b86769a7dd3d5cdc81d734fd8a0d5be110e4ed790ce44b5a03d231777234747e7a185e2e7cbc1803e8ea527b32c6c82dd1188ba747fcf01dababa9254f818f2f2f8fd59173f30f74ca17bb9b90bd993ad1d66f63b8f8865f47b666772f5e419453235540f049e5172c674d6c7f5284693461bec2ef4850f8163615bb86fc6d34f223ac7f841e78c3934d669c1431d40f08c72937117fc7bd555fad545be49e175ba3992d6c11de60b82f34dfc3ffc2016ceb5d507bbde74deecf704aea050d3e4e7c2d3ed162b3d69392ba3bb37263cfb1102c5e8203e7ad3f536f6cab221b4428e53fa78d83f11ca60f829ef83f3b5f51efc3662d32da1929806b912ace29cf4cdc9ede0a62a3e3f1da54ea1794032e35b3d6d0fa6d890669f48f8c0e45a5c8a1a46793532004970d46e412d22814b55e5168099594fe2c14ba2ea4b14b4d46461d47e910f8a3b6581f3529881268067cf9b2c695af65038f94114b501d5c0575371cd2743d6b526e0965cc34158218d17fdbb813de9a324d89a85d7d9276c6888802d96a05b1d9391de61d11b5c9aa632a165b8bb1da3f18d14fd39c4808d49a843adc8c1175b4fe2d4b67c9ca2240ab5951d12c5503f111ed1ce43ef4c133e4a2cdb38b1b21d1aa7ed82e9f5e909ae7072a3b82dbca6ba57288165ba28e943200a83682439d53bbef4dbf1c53f47b2c1d3cf4bfce80decd7cd5467e93f387c7a6255cc918e63fa7bf8792366c629f4567d673fed428ae660bc4b7040ebf12aa0e5974816175996ea131e1a330b013e2df41329fc6f142b7cd1c4084ec60ca50fca4ace77473b6d1ce87cf3bfe9acdd6e87c5f1697cdaafae98b5622f26d5b27cd2773fec9d4d7e72762be6592f0e1c33df829d2b6e1758a238734865b580b168892294a986a6ad3a13feebbba849c2cc77ff8fb84e1be1657a7fb53d773c18d588c1bc0d891af67a8b75350e512614e2d59960e6ec9ee23376ffec86fc4a793a861201bcdec214f21cde85806d2b0a539a75dc0d002e66434d891a05e589932b3eaed0e0c827317526e7792169dfef690f9ff2c05f9afd7f288495f3b1d995cbd20e9f81bea4c80b291ed4a2b452830ab76ffd1f94f47a76b6f281e7872cf8b521896f522dbe563575ac5fd2c314673c46717a9fda26cd82ab84a812b8d0891571f5e35fd02490b4eef1e19caae06553df44713b874f129c237cda56e972fbe434ac6ef057611cef7d0eeb7b8b98382f2d6deb2e27a075ffc9f46ad0d34ed513ed55eb1d173e838eebb92244a387369f4958185a5c674cea38e75c075737d690752239b884eaa977a54191c091c5b030feeac0c7db80594a49c0d643bad80450e2e195841daf71ca4b6b961537a3b9f8971cb7f1ceb507b2c98b742057daee20b14b1442ec8f5c5682ff41fbc5f8b26b6ab09b93e0050df865e9d3a44a221cbaf532adf9f5213b94c3d3b937547fab1298a60ef188f9be3ceb9f90e73afeb215fbe798935deb50fc6e2c222e30497110aece02b470e806861410e635997fc72bf4b145a78b192a290609bc59d12fe26faa5e36f62cd59fb83ed6ac316b0acd24c67a0535d68d091c6e4d3eef67aaf71ebaf077785300ce70ffd39d317eafd2e6d0e229dd3d84265f0cec75c7461b5f539e01d295fc6deffc9cb1d07e0cafc4ff700cd1c128f0c1d280d91b5f7b74b0e06dbc9624dfc4336a21b774883479ee86716c7220990d2082d43875d7540cdcc74e9a2fc8332896de234178d9c6a057def1a91c2764bd5ff958e5e70db3f5a7b242056a5a5426fb9dd74b4b9447179f164db3f4187af59a97d70cdca8ee6022b699ad59ef2112c83918c530406b73ac051ec1eab34ab328f575ce8ece03c5c0f34137309a1fb230618e1e780d933f75d28be28c28f5dd09c38f730c244569e0c31cefb9067c4a7611c45d5b182d347009c26d0bd2520522396ca43d7f4f5afa11e4bde154694f54bb9a0e792cc35746b6fae02fc7529c06147200c23c8c0c7916c12964439f80b99c57d0234db7b6478a1de99e9b9b007f2f785ec7407a68460f53a4010f639fa268291038e623317aa9e330dd224b7896589624359afc4a5c39e7493ecb6e73bfffb430ea8851831a63b8f3649abac5f3efdbd85ffdd6f990c128e4f7efe30b265c242c01db60f1a55d59c2d93e3dae737ac473a8a31baebeefea3dde41b7da2a9b5f00de7b274ddea795302860ed0f11e5684939a230efbf1ffe6f09ee0131031f685ed3f1c04bbcf53d90449af5869b693818282c9a77ba501539513345c57d331875ec3a92bdcac468130443f06e75e1ad96958e18b460127067e10f42466b3ac89898129ec2b03141bd41acb9187bc05fc30fc7b9b306b46dc561c65b19788471a4640906d761f2e29e25acc7bdada06f299afba7d5abdaded321f0b148f63c57548b4de70c8b35abd1856632a137bc78a49cc7cd38b46bd4cc0e8b1339db4e12ec3707b40b2a663a03ba43fdebc2f91f302e005f75c836a298bba7344887edef3836d47054f6f57e0e518cb49a24bb8986402bbd7671433d8fb8f44926a2d3f4f364de95d6f948911b54d0152e765632dc2a21d47cfb1fd3e006ceda4724b19c97805605312668e11d79c31be1f2ce7daab32696de44929450761a9f3a048163c01dcbef693450affb36567840416e1f21428e3c6c919bcc6869da1483b08d99513f2b0579a10995664fbfe5b8b85572cc1806c904774949676febd111da38f458a65129a938af91c240dfa7ba598650d9c5168002183f179b9e27cfd3d4d0ecf6ad1d432e6082c2adb0e6b67cb2fdbc7aac1c01c6cecac876c961c800ed3023b1d7d40aa3f34b62a196b693cb406625e3673a1d1ba9d72a6cdbd88d1178e37366754540ef3acb49bcba2233034b491b41ab8732bab7ae2e6eac66508c6586656513331b5f25bc61adce36ebba88dcbb57c41e6df25cd9036eaea082434b8af767a5aaac9a906c714cad1e0f37416c0594e51b2c89eb33eea992e1f9b1f37cd97ee584bbd448022167348488e9e15fc0d9a2f7d413af9db4348e24437f5d670c9d288d807e69139ff82264685055424ef5c18e958bf74434a478305e2e9f8a1a92d620957673e0d52a1c46a1be9591113f00abd5b1dccc9300b1f6fd3c02a93b9d1911d32ac98dfeb2b13b907dad092d1ae26b3bf2d94422ad9b60229b1aa288fc46695382d1ee82bba713b45fc9c8c09cd6d65ed611d1769ba3159f46cc9b48f07bc6501c8d501532ca588a9d43d34d1474913191e7e2b8d864d57401def63796fb80b8379f04e22b4ef7f38c414b8731cb68392fd2b1d121b8bf4f9d4cd1a7358e9a00db36580b6a5f4618d3c6f8d2456dfb4f24a2a83656d17f0d80ec59e49a9abd20d2d0e0bd1d6e58b270433e41a50a1bb9f5593a4fa1e93cc48ecd0f3d36ba0a7e64a5164a9339720058cfb2523bc81837c9dca82f2874971ef8878faabd9b2e2ab3631a22e2df9f3054fb4a93b06f8c124f0cd5ddb6f3a766bdd6270bc1a0d9be55addbbf460a02163a77cc08c3bc63a0f7c696bf5e9c8b02e3710245df4c6c3d57d81f6c781f11af083d75f03da515ac5db894245155668a2592a68359163cb35888e495a3e666a6b6ff5b6db9e570d8601f3a9c2992a71e51327e3c21cea330fc0a9be7265fea018679fc5d6c666bd032245e5d5a5d43ca4a8d69078a152b9d1b54e309972230eda6546fdfee599693d20c5a120c8ede7719892d2054c3c1d901d03392a90fa56fe84b094baf080e55699e17add37b3e987527fe7c5dcaa9b376b89cd5bf6acbd48aaadbc550428045df4c65bd0ff41a73cb06ad479cb87b94723ac26775eb2c82f22d00cd7d32bb61ecc7ecb10b74582206fc22e91334b7880e4bf98fe1659c499364b701eb406bb70e45729bb55f8bf3bc1a8a07e24b44aff3231da859e91f6d7c0e548384c72591638e72733a518681a228b483a23e660909a1e815e8232a58839a3e619bbd84e87cfc76e02076e313267c19b7bec671a7da22eb61e156ec726a84a84ddcfd7309ac0bd97e8ccaf28eb452f43388bfa96ccdfd314fb32701498d9356d01052d59aa252ea0a6b755b3252e2f37ada3e0c973dc7a4903772234d5c5083ebf322d0d54f8fb2d79e69d1013d9f6da1cac6234509d2ac40e97d8c1f87c5eb518527a114c54c9df7b04f2dbbcae6131aa61690045139ea4a5cdd4bf031eb9ed3b856d2771309c92e2801e7c609154ef114409840f6cd11041d8e8a941ccf6174bac35c19d320be0acd6b8771131edb85e3fa0c6ad16db2ccb3ccf1d383a7933ae20a1a088694c0b492727d5b2c4ace434b9ed5b359865148ca0b03de34b1a4171fa15e409fe56b0c36947f11b426ef2ad628c19dfa5ddb7be59b385833a58d19bf9ef471fc639225cff9e76b68878c9e85bea5ae38bed296e6c52bc98ef8e009341f53d1ac1e40537a47ddfd74c4f6d60f172de9e62500edaa7d265335e062d3ebcc83f06caf3ad8fbf26771383ec0202c823aa46fee8c60798e3abeb8913db1c1d0a0364a685b068909ac6751a430a163903ead212ec284090cca7a03f47bcd454b04b6370db2eb5507c5f23279a86629ae4256d19fa10629d0de7757d57fc546b658ba24e9565cf82a5ebdaacebcf3be7b3577c5c8cc5da50d83ef91a00ba1f7bc8f019c73b009164e503f898787d7491fd419887d8060c27026838e6250944ebe633db549de9f7cfc52f2dc3b83f3fc5d0f6575b5e4f0477e9cd4bd5d3579f40a59fa75425a444ec3eb5b4de4dd7cb899e8d644c59fa9ba54cdf3781f522272abda4c723c08b5b0e9884862da5d77d50fa158a050a957c84162a8c7891f5acc63e3035da8f09731fc0c0341865c4ca6da7451720635b8bc9f88a01d4d198c106e63834826f0e7ef2da53476a0638b3619ef044d8590903fb457093bb00a8fa685290b75bd930c56cc69af4b38359afb83f1300d2dc66263af962e909e542a126e90fe3af502067e0e3fa9634303a7573ad4feb1fe055343b98ba4f81294f62d49304b450c98d738d4e38f2355d0b69044c1f4a4a5032a07f10543f05e841996b8a459d11a379196a8f613ca44d4028ce0753b3ca87396d52ee47dd05901cf51962439f4174c6acdf47b22ddf14e33a695fec2dbd1cbcd05d93132441dfb50f098affa3cc79ff8abeb74d80b602cc69047a4a9fa357305c19a703994de5b582c281f8d697fa6310dfdab5aed65771d3642a7f3ed79fa4dc6a1e0bd92a2524b6100a072beb862ca16524cc0c0274a9453e0a61230002a080c8cb0dfedbffe2a7899090b6f7de7bef2d534a4906310abe09f2093de2dbc06a8fcda2461a4b5dfc2b262ba08beb392823b28aabbfe41a633af9a0638d55ed64f2ef1480ce1a167b2139fdd83ef74f2cff3ef631477b2139db6d5d37a4e9be921cdf87b6cfb1bf6d190d927d7f28149a3af83db07b0ed4fcf973f833cde17d4783f07bbbd8bf30ba44cb484dfbfd1cda2f5dc93448d320b1657669101c6ef6d2907262ceca7d9cf6981373b40fa224873f7f102539fafd8328c9a17dbffca54194e4d8df68906d35d3204a72f02f0db23d2d239f6990e5a1ccc31f735ceec71ce64c095a543223bb46031b3ffc47c472594a96cbdd2ddb6bf08a6963358660248668bf81cfc1c14074f31781d8fd5e1a23d64ef2bb0b91451659500f88fb0f34cd4d5818e6c618b9193f4e97587fb6fda6f16afb8c9757dba6695473fe95eb03f92d2b8e35c5babb9b03ae22d4f0b58662b95d6299b6719df7854473442a9954564e2c2da894cb0bcc83f4861800e090834a46871dbc1a6088305ac4171cae1802f03dbc4dcdc7c719a24611bc42dd0000d69104af782cf1c3021c643484c816e1558b8f2a1f7f8dec0e4beae523ccc7fff8dbc32bf0e3ef125ed18f2e4d789503af6474f8f83b7c74f171e6e32f145ea93efefef0eac5c7df28bca2f15e2be24dcc471e70f8fdc187d503f1343cbc0c0d0f3438fcfe0b1e5438e4f0cde01a43a3cc7d9b1a1c4e38a8c013009498014d313c5c80f3862576003dfa430750032d2083c3bf0a0755ccefe780030040878979b98146d09bc1b544b72aa09270014fa993121434a14c3c4070b6cc251ef458bc1f30a076b2c00bea575c502ea5df4fa15ac0a77efa64344d5121c6102ca08dc9a6c609fca1f443112b200d8906870ae822aafc472e72b4005551e5bf024f51c61f08707e365c85c40fa00fa0e8b3314f4ad4b63135d3572a9102d083e732709ca6a08db8d16886c04dfb4e3f33266c00067ef63a3e3085a592a8fdf2a444079adcc48303674f8fbdd5da75f020f20597b0480308585586fefb287aefa37664f673cce93c7083700522ac1c1d9cdca4265daa787815db2155d28c886b62efde638fc33ab4293d9a515ec1078ab07230a9f5cced795667bb5110af306c93dd0634b73f05993798feb16e4569e1ecec35f03130e6b18c8e5eac92db6d96ed264757d86086a35795aff96086abb3728df00a95fd6f0f26996c5898feebd52ecedd61955c1d172a9e262841ea60d28a38e39994afe160f21783553598bbb346944c7ee984b93b231d29abc45ece1346627d4f702b280b6e6215871ee46153b1971b0fb4b9391e084699fe4ea6f6e3b4beb39f557bd7b88d866b23019beaac5a8d2592d88ead64ef76968bd1d3c679da74c001dff1285cc7a3701ddff19d9697ef53e7471a5177f6bd7f610a25331a6ee8bbc155f97d344eef7de4954eac58acfbbeb3cbea9aff151592a4db4ab9d28fec98cf44952c52ee6fd96fabb1d01d5cf638ec512c0ced57b6bc0cb9ce6f097da7ae945df8c3c31f2ee72f8d969d90204c540b54d9657ea4869289ba60d855be7b95afb91435ecb28feee0fe3b4266df69bf4b43dfa9ddffe0caad6b292763745feeb76eebb6225524491a31f7b99760b814355ffb4e87e863873ef6e8a5fc3d42ba9185b19f6dbf812b54cc1f5cf7b3ef3ef4f9d168f9a5a216ad85e963975a3499695a4be8a3217f47a6fdf71de1b988866836a252f37c6ac74d8ee3386e6e747f5f846ea476cf60ea1b443d0bf83d4e9f4e60741d5675be42559e44c353c5e99a17aaa365fc273d9d98c69631511a5ba644a728344574879c512c8ccebd7a1ffe70ecd7a33be47fbfbbb28b71b5adb45566c4687e88a2424ffaee75f89f4edf8522125da162fe90758e50dbcddf31daf9a3d168443b9f34a48090ba2ffadebfcf3e199f94358449297f41afa1efbdf52816c6d6fda9b3cbbe53bbfdbaef386d59da27a46620bbeaf6751e8d20f629d61070755054a3ac8e2f4b6a30d3504aa94999c54c6659e4615379728c9665353810f51b883280f7dca330aa00ef399402b4ed3b0df440143627d669ddbd07c61cada3b165c21a95878d5c3abb468b32feaf62ed39302a8073341a51fba02f75568941b2bb809b7b9999b99fb9b7e94ac18674240924b0e99dc262e1d3bdd19b1707dd7e8ca902082ca89155af6217107c767d735019082e9a3d4207eee61a136cd0e3ac3a84253c35dedca00975d7b0ae23ae53bc5902129c55914bb0dddddb7379923c8986bb53a760d5119ed569190ef9ac310789de96bba08b35ba14353e163db24a01af31ceac62ecee6eeede41e76584bbbbbb9bdfdf6384d41856c595e91487552b33ca0fce7677191d17431407b799b12e4d8cf24cac46205ca9b169152db0428d9f8d95ca74b928baf83126d69667d3363b6d785df6d8e088a1a7ee0f510412492c115d2ef9f7c3f9430c0e6ae8a2c6da6ca7e2957ca7aafa48b0c762b0caa37c9ea6651bde449514c7268e564a1c5dc3438f0d4e114824b1c4c62875257fa4220c585497da26661aa30973346dde419664ad8a95a2c6d6075450b7361867d8fba1c6ef60b049e1355211861e13886a74058148508d2e204c0967a4020c595407cce802c24f8ddf3552118621d5fba80843086a04390a1da6bdf421e3fbed7fe095260a7f68dcd779af72c1abf931aa441fa3c802138c5125fa902844c320d5fff39c9d7ae40e71dcb6516e75d0e7c9d4efacdaa1a62ba7a2f521741fbf197146f46f469cc158fc7542d731c6185beaa87cbb5b3439861a8ba0dd8a7de2c51863642ec65e8f9bb3dcb82251bcd1b05028de6498e679f1466e5de51bef8e3908f366b32c763716c6186326358f71f3345e79ddddeddfdd1c7731c6e8c5d80175daf228cec4df65e6776621bd6c858e833071c841a59291c922076f4322b33aecd00619950e3258c8785daf41871c545cecd062c685898799d20b1e5ca41734ddcefc19d14c3288a44ee803e2874f469450a40fab3cbf62eebb7c55077be82257b305f172e9546dd362761361685146254130f7bf593e31bb9dd81139c3dc8fad2d06733fae8c6affa88612d842efbaf0380873ae36c383f642c35e489a0ec0697f0022092e3c6c463a0dfbe033e361180d0f1e12ba5f784bd3c3115e784cd3036f009a7708c00068bce93d34ef94317a909effc9a130b7b718f06e841180cc076ca5afba866dbaa1b8f8077fc23efebdc16005c40f40ac6a6c82b881114300031002a7e610800043c89841a3868d192064cd696a36b383e09b8581c90c8795d7d4c43dd9d4e8625dc088a9f1f8c65536d29b0520c40d4104c137370b03860e31be76c3f0b6233386121c03280ee0f3519b2a1167e2c3c088e109200e618765fedd17318e83235f04200530001722a685c0e10d636ab4898c93e322002f15c38bf1460ec0858820833b040a47084db4a19c8f00ec0db1dc2db7db6a3c3122e4fa76018ec0d182b355ed9411001b42cae01a6b83884dcb308ea57a399ee311c06bdeed0876cae9ee0c33c9707a9b6affee6829a5a4617f779708a00d91c9c0663011454456916478de1c4732b0192749c36d1051843b0d3d5339cd8d22e60c1f68d4f0a1860d1f6cd8f08108227cb8e143113e1821a231bbbd6eac860db91d2122c6993e79bb134144dfb811978bd0768dd0dac54c01b2508d1a1bf263778ca17c1f3666a500fff6d9f6cce056b31fbb7d6f74c7f6fc19c8445d30829bf6f510550a7c8c33a1ff114d7d930e64818862dd4fa3281bd9f7ffd88a51dfc1ff63aba43db6f6d8cadcbabf7c6835cb6ad4b40f691f1289befb2ef39ea1742f8a5ed8fdee08bdf60e86214cd3b4973642af5931ff06bf68cef7306f9d5466ac72abeef07e7e3776ce97a0f7f35bf45c5d4daea8f245eedbf6d9f6991549ac60007f488a1a9240e83f9641912adf495906864e1a7d361c73cdf36afa666cab4a1a7ad5bb6747f6db776337d16723fb2d935c715a2219bdd6ad48af4b8245a76527ef77b5e3fbd087a6bac3b5e8df8d95c114958de00ffd67e3fbd0fb77835f7e772cde3ee155b7f3460cfb76eae387a67241b3402b8557a26fef7b7e8731eaf7a1efefe43703d4fe0916bda47b9a4937e9563bf199d53910e3687cdd3e738e861b456d8f751256b5b615480f51d5baa7890f14202b3a68888e144996b49efcb8145e8dc0ed3b09afb6ef86494e30d22afaa94d0e6cd917324efb028ac93514815cf73b82892a7a9111fc221a02e1bc6a502abf56850ba6547e763591523f4ffb8ce83a2ffb8ce8233474da49b66ea1ef06ff06aec8f34864869da4dbbcfd3cda637a4600d9fadde8bb21d27eb9ef087eadc7d60ddcc1d58e3dad333da03a0d98bad11e30553eb6fcb5e8515d5439da43b4b5a3316b8f7d55b94060b83bba8d260d8c986c81095139da43882a777b0e0c9968a272198d7186fb66c8e757f96ef0d7eae056ff68085137da4388ad58ec650f51802b10accac7244f1ff157885139e8ba65cdd06b8c31468edd43ba18134a56f5df656996efdf544c7160a6feebd46334a954ea31b06beffb2e769be75d27479355de37b7e20dd7ef7d363053ff09e9dc85d47d9cfe1ea7f909aba0d4f4e7df35ee73a2de7ac2fb2e4e69fd461915955751796e655e9497778e9a946945f5970ff90a0d4b619f0f1b604dbdcb639f0cee53a08c05b11f8134f6b1191b2ef61521a4ee0b18bf1942ea479d552a7137152fe5535bec8455fedc90e911e969a950effb5dc05879345915fa7e7601b77acf921d97226ecf2e5926db648934b9c1144d6aff4e2145eddf29a6a8fdab0a8a4a742dafc4c2f0de3fdc1157a98769914599fd169f023baaf63d30c6173bf3e03e0cc87577772bf68b7df71521a462dfe83b30ecdeebbcd6e7d372c2cccccc23668ee2fd1762669eb123b2cac549cb69a8b50e9f23d20bcccb88f7dbdda5406674eea554a9f7c0703f5ac50c766affe7eefe3cd57da765fc392766e8b917fd7c8702e42d27eee32e5e9ddedfa1f00a8857debbf713a5fa872ea5bae7ee5e7277f7a94e83eb884656a5503db6ee03f1fa7d0f51fdbeff2890ad4bc36f0712229f03f33fb62281f9a59c0666e83d2aa36db9bc2fe11a98f7f71e5ebdbcff83aed332fedd9cf13da78149777cff636bff0eef7f6c75297a22abba91a779f577928bda58a76a3b92eaefa658e33b51c6bfdf3d0531f41754776fb54b5e1942dde0eabdd73003d5fb17d061401fc2329ea4aa60204361d7135671ab65fc5d68a8d514edc9aa47bd481313fbfd966701c3ad2c1eab42cf3db7d887ddb4525a59f9185796c8f671ab6b9468197fadd56aa15b448e3c56897e7e12e24d8f7dd53da27fbfbf1bfd2d1ff9dde85f205b3b96584f60187d4286129efc5b803e32254c744a894ef1779c2178e571a19f2f7affef7ce49fffcecf59253f551803466edbb66902431752b3cf501895ac1c4cd0c5988e43c1c4e9ea343fd8c4e095f6feee7fea1ad2fb4712789a2de32fa23eb1c8aade1a5b976edea1ef42145523d6d0d38835443370a4863e9cd87fddbfb71f0d394add3e8242aa07fe90b5db1ea76974cdd5b18fc1b1a8692b1b416a3f263dd332c9318829535445feccd371114303c4b8d3b8e7674d8b23ed3749d74dd1b3c373844913aee134159151e525a2d3daee2c6bfbd3a9e368e4df21bcdae88f10e5ba4d906800af328a83555c04abfa25186a95c605ea382b81d3744be9eedfed4e9702919d02cd33dfe447567152460dc39c9d9dbbeeb1ef3a4c7e07c62a3f19586fe1521c4ac32a771183559e443f370db7c60c280e1a7d74d4e095c4b1bd6486aaaa83573e79c8f779924038d05c8ea00b5b483572353e479b198e32fc2d4c6bd75048e41086bd8f758ac29068df5105bae09a98d3efa0cd2221f2391a7531f9db081d8d0bd7912e1d6ccf3266e65048adfb1db8cfa0bb8e47b12ffc793f037dc7330962be0f822ec6f436da217a7d64c7b166e89867d92703278be938f8a38acad9bbee4b8790bf6521e56f6c982eeeb7a9f25531474a23a080480d639c09dec5d886197e8d16b969dccca88c9525cc6c6b86f94b2a362c660d56f1abc2ddddc7a9c135240e33e3d4e0130f087850c3e78941751d59664feb9a762596f0b1353e97021965e44781da2f3150fbb7bb76dede2f4829b1c7944c13afe2efd41808c9b27ad0bc414fe5c0d045e59699b9d7bc35ccf0e4a29e52bc726fd2394f27f9b565fab7a7e230b7d430fbbd97f09a8665d989a59492462965963db6856146d5f79257d007582b68ce76773762ddbc20e6b179296b1e2b3756b3ae819eea9357d9bfbbbbbbbbbbbbbb3bbbca934883bbbbbb7f11bc5a1a83babbbfaaf6fbc7f08aa97f83a6a018f78113223fb25d0b52b4f0f2176f2c325b68a0420d4fb1091f68a2f37750c622d1353dfc8035a4a93471060d33c648bb394489ec46c3ec8fff02b0869a0646d7b454c77c0d352f743146c628258661b29f419087a9faa95dbb1c84affbb33b848955aeda9c5a665fd3e6f6ec2ef669d48711aa7d19ccbf953f03514c77c99ec00439a8a14d45196073b68faf3a376ad3326498337c0650688008b527941fbbf230559fdd86196ad526da041165f6a34d9c79adcd2a4105506ab8db63a4f60099a0bbbb7d9973b08ab3777fc762654d5b9e12f0a4e1a7b14cdb58b610a494524aeffe6ec0ac6c23742e114ce15eec7d8c02e92a1d7bf9c9c056d2930948d77e16f84bb90e8506ae576dcfe0483da99e547ecd2583262cfad1756d6cbf462356205dc7a075d728c1ba1c0e448e8d6e94d92aa064df9989ca4b7dc8178e0411253d6cea8e1f5db357552139db773d368b21db6f40490f9b1a7b6806fda321a4f26fdd2a13a1df2855f95de6ed7744d77e0cdcaa040867ddadc95046817095d8a3a043cdd81a29d7b0c60fa7931b552e31b02f23734852de20225e6958cbdf78e375dfcbc6ae305bee771b06aaac1a08a4761c28773f903f1b5a9c911fb94a263670ab1a5881ca815d3ff0b3a17120fb67c3397025f6d9700eabb2415ec9969804e29a5c41ccd1bae64312ad30f78464b6cce66c5648a28b31caf620be13e85032e236dd5dd07422420ed80004ce42052f2ca068569014a253a712e3e0f7ec1e13bca086a7d86ce4b5384489768a74b2aa658ca069769c4bdb7b6f56d39490f90aba28bdba45612ea00b3cb29eaa8d803a30358d9d577e586a02db969e969e6d3f6bb5f4742d2f35e1d2aa614ba989ca5a2f616212e85a5df618fd68b8d4cd6c50b70f5b7aba168d545d9ab53e28f841a078b33368b6ac55f941206f8607043ca46b77f0c414eaf2770caa9c61ae0c4f924406b6b3d38954ce30e3679f0c95336cdc0102da249b24b4513943acf19bd194175b4117634295d728c98809afc20ea87bd464d41a2519f58c968c7c46508078f4a4f2e8a7f2484ae56fdf0ea89bc2ab100baa523a2bdc794857dd6ec619a246f6da472778c15fa33ca4abc6101c0b5a38d8092a63418e7d889d60fac4192ca8f2674dc50c3b201aa43a7de20cff2809d08c5255d139c2c4e9ed8056ce2b5d1a958074d57e6563e8ba2e7e34586235cb362fcbb20c0ce527f2e4ec485c5a5ee92ab1c98bbc7262f13496ab85b5dc8661db7998f6119929efe3808bf70223faf7187f4cfed78413aa10fb307b996119e87d1b98bcdf139f13310088c1010038e4f03521a383e7c2e3a498bb0ec6196f1e80b5df90269c984cc11b6e00400c0e3864600e8b65983664ee0e3ab870317ff6876fc8e40fa56b81f0b4e7954d0f4104217db8e91be60722f28a59db8a816196658e81915559f63559964d0d86878137df8dde8fc118e88e619f6518f632730c7bc7fc73626a03f03e27260be17d4d007d1a98fc5f13933fd4228e101527c7bb80cec79afccba37e32b02c7b2ca3cb35e7050f332e76a009d118b105001098a7728d21006a9ca9f187984a6f80f1a08ab58f46d61a44f410b424f430a1115522e2cd42e1d79eba48f3524cba66adb053d81fa7a1a986fb23e2af86fbb35588331c85ca3f269821b398d5cf622d61635331a7a1ea9b86a793e408248427b6aa4bca3cdb102a8698fc7d9c70a4025163152e2b64eb6c2ce5c4bc4b3d0aed3fd64c8211e51f9deae866eeb306bfceefbfd7bb93fe728dc823e00e6c775dc78db49c7447f7d8b793de3f7e478c9e4443aeddfb4eed7777e9edeede5ed38ceb5feadbbfce7d06ee90cf446d90b9cffc33daa3eb8eee8890ab7cf7e7b8e6fe07d78e54c3f2cddddccddd1fb2340d7f7877f792fb95ededcd46604b1da428ecb3e75e4749e4f9370d6df8b74effb6ecdfe732d247c3f43d32652b5485b6a0fddc0f534657a8982197653f3f1afe3b9686fe3a4a347ad4fb332ef4c9d8e87660acdd5dd73d0e37f738bcfe384d02bf67014f3f02433f41ee57d3e9edef71f8259522772943066ace7fdf35b3ef56b6a76946743ffa74a2d9b7c78540ee4fa0c6321cf5fab58f86fc1d1d0d37d3d1fd90327b6e7bd7c13e199b06ca8a61ee8ed9e89ca79c4eeda00b56b10abf38a1db5f908858b5df5e488d60f83a3afbd7328a81214791debddf5c83ce9bb973cf89883562ccbc4c576ea1108ce3406721953519a5cac7690c7c56c96e7e2e74dccee4e7ef62c464d0711ce856eed4f8314a23f5155b9155bbf137bef3b8145804fd4059d2d33a5dc48a293e4e8e300fb3b088f2c364c91a599d178ff8a446b731c6c499f8ce2aae04f3079a38e31c5d2a56c508863192be7b7b87f6bb5b2c366732be888914f50ba591ba2b87f815fe0a5bca4a293e272cc3ef58746b48fb14a9a1e66a5765694452b7a2faf01a6aae96b2ab61e1c745dd9854ccd15cae3d21d66855a85c9b7e2d56b958c50be4aabc400b4595136f3c5e714dccd9eed6bae3f6c7deafeedf0b5b42c7eedd4e774a97cc3aa8424950bda9b10a254d2a922475546315488c54172e7cecc73823a486fd92a21ad5f4065585d8cb284d62985be3479494afaafe184ad21baaea5455bdc66f179c8356e595acda99ffc854c96255ca7fbce54e5c4f7e6a034599c2abec9b6e3e5de3733a9df6745ae9ad5671988b62f68b57fef22bb8660b8a418e458d4172488d41456adcf1560d4fdb0e6b3c3349cf94cadb6b0b6a4df31f1a5fd77ffc27fb993d51fba28f555477a5dc7cb2974b7774cbc749dd5e5916f2ba8d93dff77dd987a790d771fdec21afe3dc9dfa8f47c1b490273ff49ffdcc7f4e31740c49f2645f46987014d6119fb6426749bce1709fd4fd64349dc11e53e5773b2dc35ebb6b875bbbb912cc100dc99daed9962c0c8ec9be602e88db5902f6cb6f46d7ecb7a0aed97c38260b836bb22f4e5bd01654994996712864a2f6e89ad106533e4dbca31ca54d2a3f67c4c7d6f0e43f8e058f1339a5480f142c488a562685c814ae787305cd0fee3f2dc3af69739e4effec3af9c419b6e1f8e29bc1b5e9c9c80c3d4eb23e0f478eeeda74858a195d2f8974cde6d3279eb9a369739e4efffe53f94fa7cd87c6d7de7c5ad33adb7c2a3f0966463faf416e04b3c3d311dea81b2b2936a37f6c75ea3531c75fdd749fb06a9f0bed8b932ec684fdaadbf7f6fddb6f9b6def76f6db6aebdb5658a1b2896bbaad10655836936ea058b3404c387b4e04730a56f14f509b3cb54f9b126fb2069a126fe2f6ad6da0d330b2ca5365d4fb85828ed399dbcb960698d4d8d240912a62a053631530585277a8b10a184051f90b1b5b36d41a114aa7d5bc3090fbc00cff637ce9ce1f6afc58fe47a7612874bdd140695be6f55823360a245220fbb2e98c7d6c51fd19aae90d559df1430393bb4c8bec328bd11d926a3fb6b214bae8c3dcf0f4a15a4513a63019a08b0b833f3e2f8cfdb8f48838231903c219bf588f411bfe1d11c4e57e363270437ebbe0a7f60ba9fdd11052fbf733826b3310ceb48f3dba1ffb3542526755b6cd81b0ab4c3d005db7de6963e47ec5b5fb2178d5df7d11df80eea5d474dd15b5dba8b9721054a31535ba725084b2f7d5a334a2852ea5eefb62ce8b454cd3b6fb888d4c2e1c0455f99df603afbab7e1157ff7382dadeb34ade300cfd5be7b8f57da771f633aba6359180dba2947a42f71ed39bfb3ac9b9b70cdc9093fa91886fd528ffb358d06db2671b4a39d996994699a898634272c9bfd1de671fb072f193d9635e8ac5aa26b541e7baf530137caf4b7006394318151c914b57b92e847d8771ca753b31f7d9765a3e944c5a7b894d6f76db649e83cb6347b0cfb24348de44dacf5733a8d98b00a7bee89997dfcc92fc642c540f3b16717e9b1d38a8b1f62a8b5384d7004ae5095d389627e45ed9d6ca7f667d248edca23a6a280789ddf435427fd12d5c12aec88fd49816c25d1309b31a256d4fe1dd97a1ee781c9756046970ea6d4e8d20150ed62f779f19b812a3d10afd9f710d5f74a600f234814c8caef08d18f2890ad9386fbdc7bdf8def331da8d1ef67ef81a811bda1aafbfdf33bcf5b30a3d1f346a04c5d57791f0d173b38aa04ab44348990d7ebd8f77617b95d6ec442a81b5b77a9730ff7f092cffbbaeffba50dd83ecdc346a18fae2544964994262f273a462af61826127d2016dba3ad03c37ed3703475b51412629732c42d32a30b07532ac76ddc3d73dc3e64a9bb7d38da8da66978b5cfeab67d8c22b8266e5b8cb239a9dbf61bc3aa6d7bf934dbb66d34be721cd7c9d8e6382d66932be81afb4c5641032b6a43204ae5df9e541a34a922edbb70b38fc616bf87a846fadd63df11d86714c8d68dcaef884b9a3141903f5d3344c98a04ea9a214abed1c7d4c797afee638b8f328b56d0eb061ee4af7853fa88f19c1af537cec94c23711c8691380ec330d1148542ac178b08ebc522e2ad8048623e05b6b0423145a43022a22d445eacd72be60b7d32b8f7ca7ab188601cc68d5efba205090fd01658564ea4d1fa966953143af9ec0b161d56b190a0bfa5f4aafc2c4990c49a9314a24ccd0a0d694e34549146eb291f12e8b44f4ceb24852da695c5b456625a5a4c8b14d31ac5b44cf4650aeb9ba290c86bb0ab1b882485eda46042230f0391a462503127174b12161a8ce4148538cc25a608a21067fa6240ad65f653e01c8598d0d4b9f2a44f86ca933e1a5ebb9fdfc8e5e462d1d917fc9f6c52599220e161395143a37a962425242516139624376049c2928425098925c91c51962418d8c2625589be4c0931e15ea3a08884cad110060a222d263c2e608b0e91962147586661b434115f2ca9fcdf144eb0e874b48585bd3012c775261333875c565ec585e5e4bd6dcbb39c54bdb385e5e4bdb9b438f122f462b578d5bd38acdb345f0965a08f45811bf89c988c4303f75af9b08646f52713ab1454c222a6c582f169192743882ff88b50f9b3a0291c1ab8d78a0c5aa0128598848a30104b5b587166092e4c246ad1a2c5c95b58fe747af71696933738eb8bf5e2b02f44fa42a415d007c9e5a5b4534a4189a7d4851250e9552a83f7b6b22a2ca520962492c34e3ea725b0982002955ebc62e16155a90c71c5f282d33b0d6b68361aaa5668f827159625f89c5c2c2660d17901cf898635353cb9fce4729d5c538548cb845c585d1330ac38d3c28403b1077e17b0e589e8033f0a6c692202d1d332fcdf4867478a298e90680bebc57a71d8375a0191b8fc062279f91006fac0fe87567dfc9895fbef8525c9139f569ce1120f4c12e28b2238a92d5ec10c61bb25040186f59a1267609a08410c7a190396022bea8b1798647183209fb085d5a203b638d1d2049122acc2680bebc57ab1247995824e2eacc4e385ca1fc6b42a7fcb4e0bebe4ea9a9621462a3f76721599f4650a8be492da564024e07f2012fa1888e4e5331089cb87c01fd1d75c3e050e49ddc0b32ff8798ee40c711f1603c2dc00c2242102c14f419856cbf083208c088471c12c01617ae24c926f42e587a1020a97781606cc0de20bfe2964105530522abf0613a5f2937250f947535e7e5c21265df3e205a0294071024fcd0968545c88c94b1a2a3f1662f2328610931485f12905b15e5c8610c18a74d8c68119b6b05e2c5e75438860453aac1484711b8824f5a8d4c9757a424cab5992300b0da22aaca151852f7d5a80304ce20cffe909304d2af30aa607f125087c017a75cd4b1aa20c12e2cb2ba6d5352f5e8832347891c29284572f5980e9a991014d0b5427a82c820a456598262abf5c359cb58508d8c26a19c22af6e84b8849e5b0145a6102c20481302f982b582f169152d0968148528f69298cc3380e63b16a8358c54024a997a90daa21cc8b6705336c61d51616f8d335a857500d5b582dacd5505c55b15878c7119c2514b3bb7910a1ebe2eeee013a292857f9ab083f526cf887c0c1312a43a9fcdeeb555e9dca1c8316eeeea4777756699d7c612ccc8910aaf4302f24c705449528ca002efff2395cfee54bff42832829d11c2f0f4383fcbf7c1098777921392e20ccbf80dfb93aa06e0b2bdd141a6e35c929b5f412a8249fd4d2cb24c4d5bf7475cdcb974af34bd4748669a211793ee6847cc1bccb3ff1fff2292f4495ea3b40ca0b51865f250d5186a77bd82743a42f7dc75fabbc0aa9e5c3510f8d14509ce157797da5e78f023348354524cef097e80c5255d989334c2ad11e9b456a4abc213d7fead5355ff23ec655d855f4318abe6f01595e2528decce75f6175cd4bea636a34923f9d0b680b2a34944faabf9c52fd575cfe301e3f1a4e4a05557e5398f242e8c2aafc2330544943e54f81e18a4ec73abb46023daf64126ec8a6485794c9de058c312351e9d3c2f4130c2fa053faae8b9f8717d0092fa033a344437f92e9fb5b4a254a431e42aae9b39e60ac24300c85706495163d4eef6bf118c6f2a75fd9517a5357024befe0ec2f95be65d43362c2a32695476ffa12387a91c8292af4fe25940824899e64fa92935efb397aa7a1cf2fd1d82c2a6982a17ca14274c6665149b4f4fea5f79f8fd325d267a9d497e8dcaf00995702471fbf026c4d85a61fd1152aa689a6be4477a43e4477b47cc9c1d0949a2d9f3daabfd4e27d898627cf31acf4a6ef4aa009c4486f9a1846fad29b54a8871951a2a449430ff316186df15e8b1634c4fc39f0c756ecb1f730eeb1d07f7334fa6e31f9ced1934091c9647aa7a17c5513fd3efb3e1a0aa93d8a383cff034b1fbfd2e370971c3499dec1152aa61cf598c0705402b275fefcd0cf289544dfb137c1d077ec954a3fbb687a07c30be8ac3831fd43f9da6f46e9498fd3f50b47bf3d090c99a84eccf0074f0db31f855ef459887e8fc3fd5e07eee4215f150838eb068612e8b9808e8d16b53b760d62a053fb71d805c5a81f489f7893bdeab261f22fc7048b29fb7d8aa4e16ca27ab75349fedc1ae6946ea7ba744d2031b066f7de64c2ab26b3359df02a722ffa8937fb11887bf1ea0a2e88c342f6a07b2139eb79def7de7b3488f75f976175391a8aa6d083fa5337cabdb82bb8200e0b5671629821f79a4cba55b97da6ab07e062ff6894614a9f2a3f7e422a0fe953251d0013f64547ef55f9bd4efa00491e74fc118b4a6892ae143c4a3269c55cd487ac83a36536c855658b13496322ac23b316abe467521ad9bcc7616a81deb980dea3c02e052af1fe09d65a7ce95118cba3c0964f0da03d308665e47fd734b551f51cc24878dfbd02fa996680bfa5cbb725b5a9b9767faa6c498c869a4dbcc95e7e10375bb35b4384ba3a4aa8f26548f9db237fa55c28552e8eae9172c723106764b832f2655443952fe5b3127146c629327aa0308a83a5e56de20df6f28388353b04d992eec31fa332b4dffe1836bccac12aee322aa6945dc8a8985d7dc82f6bf14356bef4fbb34395bf3e52abf2d5ca116ffce5272046f9e157c3e892544c6679d423d1f2a98f1f0e97770153e04e792de19487b77cfc5038bc8f15875b4016b03f077ff7f35740d19340ee55c0d1b700435f02bfd7429ed799463f6488e8877cdf0961e1589f9691ffc90d8a2d135a20d9c25ae416e6924c4224b7e842c742d27865811be20a0351c5ef4baad86718d88f51b5340ca2eeb37f28aaa1aadae0c499fdae23160a31507b887a6c165b5d99a8aaacd29a307dacb634c619d98a3365e8565c1063424fa7f6771aafb4ba9e5795f0871334d522d46e3d2994a4d4aebd2a8c3ca9b10a23515406514b5fd4559d5bb8626548edb08d58877af4a92e189d202505b5931e4b21254a6551a580660234540f8ada691e83a412d46ef316dc4182f237790c72212852bb8e41f99d8883c1f458dd7921ae704c8937fcfdddab6bb46f8f4845406745d805d566538d35184fcb208180b862405479a7613c48ecf73340634a4f72fb75748df6dc2b60fb8c6620fbedb9ec378adaed358ada07a306ca2c84180f96640595a56e21fe42d89138d38f81180ce24c3f835f5d3056b1f383ea200fcf91b9357bad050fc61acc052bd3df580f6c70d0d80c6a7f28c3bd60a678a4ab65f6331ccc5daef67740f1264a9f3843aa184f6d778c49d7b4e8604a38c391da8f4db184571c95608624b51f7bc2abd825c80931273bb2084ad0410db128b5dff9945a928253cad371f666782a63718b18d6b52af6fb994bab76fb1a771d0d03a8b5a844ad9685410b15cd08000000059314000028140c09c462a160349e88b2221f14000d8ea04a6e5098c8a31c076298420619820c11000080118091d99000e3243164b85a6ab514ce7976ec0853598da5107ac5cf835fa3ee00d3d7035cc6117c808906c57f01b9a76937559efc07d00f25cc1717b2c3608c762df81c25cd946349a30bafaf2a30fda4a89d816ed4490277013ec0d47dd1323d52fe8ada5efe76315a50f9ba7f8be0ac312a51f7da7147bf2784a173a8481298963c64d802ac459e06133088690809941e6e365d7278addd19645a13b3d9836a43ae09599684226902e118109ab8ccb093c43bae01d3e520d45cf2f137be45f3d73c088357dc8e8efb2d3b5dbfac7d90fcc53d806dc8aa0c8000af86195bc988f6b60b4c67a4803b8595874d126aa9a057dd04c8b87a6b55a314f2eafde5c9226d495783c90bb566dc1d6f7cc73cf753c5f6c5aad673d8ec36fdd68d5e140ec4723db3ddbae7d8c0447dc360317863d36a40fc59b4052fe8e3ca044c97808be3a1c4fee7d4c33949316dc7ee069b0f80a9684c10c2cb769d2ed3d0967a253993cbd2bb36c51befb09e252e92cc3101057645bf2815134c92976a31cb3ffd4d2890d52373c177d0af1f5309a6be32c821fe1b0531a41cecd61da29bca1d6170565abf9ef3a3ab689c75c7959eb53aeeebaacae5d22f260e448ee9d2a9fb9ca217da775ddd02b155915c1b9d7e71fc04b592e6d8bdab678fba620868b29a970fa826b58a154cc64a80ac2a38bc6c235a54c558589ad9afd8a552b3d7a05c497d601cf6e6779f998e7fe98608db7b94e1e43e62e7a170b1e0a6cca08e4a5e160855e75b9cde8d01b0a2deb57ab693c930908eb000fc721d5653968718c2c7838a4cbf54dde47606359834bbfcfbb3224660c82f1d063f06d743595d8f5466eee89772747ceb720377029f856dbb0685b4c2af684fc8976c329cf0c138a7e9cd1d92b9ca607709a79499d41da0ddc4f7ee8e65552e69c6759f248445b97f5e03ae7f226ab57f7c8d8aee46e289cce72d940a2a68a5203ca6f4c862ffa4ed561d53df75192af4f8c174fb7b9f6c81889cb1d97bce6aafb61b03b4170a96d0e97a86e446a8be00bd54d5240bf44c3198d459dd235e3ae924745307df09db3f758a12985d685a9846a266a5295a56ed9ff0f083e908f968353e5cb63107942197aca5b38cef8019923591724c04247a5f2b32ea6c7bc8c8e0746329ce1a1e77f9942f9a287318fcb5b52c81c3694baff251877aa9b21bc37b837ddcd9df6114d84d34f7fabdbac9a48ec4bf5302b2460356c96b44657d3508ccee178802e0725f7e3b67d72dfea03164845344100408fd1eff16391326f005814effcbf8f6289d1eee39b2ba8b0f4348ae368518fbb9a44e721c5e508bc8212c506dd8e491e46068b8f72c180fe1f94c88e60096f2e412e65a4f55a5de0089a21b46137a5fb6c64eee783c98d6b036988204a6523a3d054c91760102437e734530535590569a70e52770870c05493aa8c3df8486c631c23b461de405fc06047f14c16da2649a4d5773123de6d697f8e1c7c32454bc7661834d3d0854f94208a54124a62b91042fb09fb56f7e3ffa93c81dd56c12bdde89ef574676a00599da8d1b7bf69eeaf84657ad57fbac68af3bab6b8ae13b883a9f99863acabac930e587e1a0af04ed4a674322a5619d6885dc54ae2231d32342d181f28ac2d1042e796f44bd14a97db1e6a8ad217a56c1d03075f57b9f8f3f0dbec697d94a25a555683243e93ac461bb3b5526f82b11e0f83b06b6aac6c841bb5931914811e7230e2e4d991ff5aa0d78cb73eff71e07e94957bb64b79667898048a14a498713c059ee33f6612abd3eb835eb92d7dc085b7d9e32e5e9b9ec0888b43d4d2b3e9b1ee7a9d1b1de64cbf2af56394c07ba929898133c57c55cb8bdf4c4187acceb98986486390178699c843059c90d0c090c81da68822b8729b25765ef5840842113d5d3d4291333956332937ad5382f52987f2ac3d173e144f0e71e91837a4ede08053e0f8e631580013137f1a53b5eac18bea359af24305054d536855db9926815ce295c14e031c0c27ead1be657e0b05a875ce880d43f8b21e4033951bf030ed917713fa83a499645862b6e3c93cf7198bae7e00c710c3d0193ba1a4412e027f816bdbfc3a4f5a0b66171c660878c2c6e234c49ba5900ca8b601ff991c3ca923801c3266e8e3dca91c4bc13b70e47a6fa6950dbf9fa4515070f532fc20c255edfda20f22159559d44613949a0e32b0f96b6985dab06dbab7623abcf602b749614eb4f2fc3662748a13c45ed8f50553094dec3d4d712954af737f7a7dd53001281bc462ce12e03c37eb9d39e8b1871609a49bc1a8845f361d636601c5be78cb1e232c3f5708d9b785ed94c003e9fb251156a26c69fde70f5d9792ae12000af6ae4923d2e000409d9880114561305ba28dc6874d0518949b7a622cafc19eca9788a90455f0bad32829852f689500be524fd7fc0c43ce9427a4a83b025d4df5583a53c688d6d2abee6b8cfbaed4f3e0b1c495aa75261f48b39cb47573688abaf943d969adda1a8097a9ac512d22884e25804dfdd5bae24a28f8951e8edf21f25a4b406760cad98a18b714ceaacaa9361186b97672ceea2a7eec1ad0b0cb1a7888fc0d08ac30de9b2cea4e8cb1f3f010448cebd564d4253241d0a0705a32b4b1543300a6a4c2b926342c9ff951adc2c25ac8a9bbbde0ba33e55014591ebb1fc091a31aade671831bd1ac2086a9780f7a981d888455915e05d931b9af3ea74fec511c3d5f06da4709603713f06a3d18759ba43321021263a7cd5a7621979ba1270442e3254051dc0d42bbf8ac1f0479b7224bbd85625683108d842424da92ca148ffe21881230f5ec33488a75ea6019760640a2b27fe542cb34f5638c1b1548f40a62f362efb4a79d8fc57adb58b5550d8054b8965802be18bd05de52d22598ecd62496ebe03e3b204eb5174a41698d0acec83dc1b39352ba9c0666510361ed66eb392c19fbb09b7fb63900e3834291d2426d6f534c9af0f51904364d0fa27ddc7938449426d273c703da471c47f89d0d9f26345037776135ad08415bb987e4a136ca995eaa803f718f2c2f4a84ebe4f04d3b587603c7ae07b0092d08b1054e9326c28082695800b8fcd16cce3ff651e0040fc7f91df6f1e7d117a6c6570bf5cdaa874f085d94f04f822f45a4b22a2ca779d2278424a0d291ae6b975214497163e9cb9cff62ea7741c938607be4c65fc115bd018a26613edf43dae86cb24da00df74246da58949de68d9835d38b7d247d7232b2b1db183011806ed445bc64f5a8f9ee8782fdb32316a15755f3629a7031371e21d3710c29500378f0ba62ad81397324731ff559f54fca317a160acba6da167b3a031e7ede9a1096952bcc4c1143283887d237f6dd0b9f84990eb2f4776c17b2bf659d06391a03c7fb7450c4dfaf38b7dc649985905d063afb61f76f7d847e886aaad569fb05dd159f4b75a1c4f15fecdd551be33c69962fd8dd095997844f9ae29341168ad32645a20b5867f39b8d882ae2c3c8d7e6b71a1fa94b64b5dcea7640116a45c7dc69b565f5cbb6a44ecfe7d27152d3f973881a6829ab8255b84359ab199f3896c1d184f7cb289fa93e6c5e3c252a3022fde965b60ae8eb68b89810169d1008163319fc33ab720846944c4565c846f728af64a1f7833b0eaf8c68ded178059187278f25668970875b51c7d2e768916611883c58c6512dee7c8544cdde836c3cb3f460ad0a6b885a9bf8b33fe75d2d80465490759b473e5af5842f438d5433a05659112cfe1310b1f7191f07248210d6b13fd47ad797c9b58ee5f93e683a9003d2686e338852585b7e68c3aa21a8824719b675ca420437211f7dd4eaf90bfe78885b3c375870719c92513d58909c10b35c283d4fbfe9be0965c3188df2625c0b79c403e0144ad89b7f720c60b357a2967e7cdf3d17cc34f9d3ff0d9ac3a5b9b834dd936ab4b1fc350e2e2d1978e8373872e900d3c662b041e0d5f2323e0dca16734ee48b913ae82ed02fdd70d3b59f613e194a92d8ad3aa10719f3b94f0d96f9f8dfdb9430430a1b54bdb50440e2583b62c2106ddc0ce3acae016f3c23758635f1f4c32f3b44050d90a60e059c69db7450bd42b4300b8a02beeaf6380435267f93593b21ebac7a83b91293f84a2fc752693d29227905c16bc71975c87294242e0443027a71c20c8367af8e2c8343fb87bba6c2b308f1a8c4358ee9383477239b1528c8dc119d5bcf70f71079132c5f0e83a3ef3437bf31327714c0d560354963e06164a48715c4f0ced646bc04ee7ce854cea2a67e1f96bf894c6f9b59140bcefd4b6da87378794e1b43473e020a6b1a3eb88559f2eb389f5064da479d385d194b98ace1335a86bea2806661beacd25f501f0201b1115dc2b96b796db392e895e8aa148a4500207309a4a286a8be57c7bcc036dddd5491d3b424fb9057385291c7b60fc645f6dfc019aba011593b31254b300147df7fbe60432f628836a0d1b98090a64befdc063f8f1ba92a7d8cb5abec74c4b98993fbfd833499a70609f3c0cda681383cc3850404e9ae075c5e38ebfddb8316164d97e5a187c3d199f14d2d8aba0d3c1f9f214eaf53740b764449961228f3afcaa2d8e3a28456cdef40ca782a4eb9a247cb2923e484847a5dd3c1cd2c3630ce477fa7c5d25012933e1055e1c5b7a01448f7262ccbe908a4534f5cbecf860ceb5efc6d6b01fd747f59fb7b9f84c31d105b7d161f26b6f25f24840e3bcd2242cf9ddb726a75cfcd88c4370f7089f818766591bee4fb5a75aa682b5ed048b38c1787d042c813baf2fd2fce91182cea778d4fb29b1a64858149b4520f4b3a29d1b9144f3534f9fe41f2d1b9a76cd0b4a39d78b49721cac113ab9459e765b31e8905c2009a18b1508515638107d3cb0cc1579feb36a27e0be1527354d8bbec4bc5bfa46a04faa585e5e924d184e49e87b349fc190e6644a908842b42d362453f74ad56444993e747436229d670406c2519a34f951f7fd92fa752b73029917d9115d4a3a410b6e7d6a91776a32254d0bd7c0a14fafa404d7e26efe5dfde50fd68af9d0402330e5a31a5f73282f87de229d02c6bfcb9f0014ad1d7a36e350546d1dda3778e851cae7b5c7e384841e7739800c2d409537be7b65e1a678ea5d19f0067d5207eb99a9fecbe79bcfe630a59bb838ae1bc210d60d40858a7a77731cc3531eb24b8e868cf5d274fd1eea3d587fa0943aa54d0801be5d50619e9475bb46a7b3cc63a195c7891fe7417657cccaa9549f87a07477e74ee620df92fe748c87cf47e9b83b508eba5ee57c0c190d5efc35b201f6bbf3b2435304c87ca9b6942b95e55dbe99b2c64a1230475c9af95bff1a39669b983107829c41546468aba8898c6e518b29b3e8d227b7dfc2e213898cc8205771c814a537cbf3b5f13e0263866b4342824c99b89ba54134b2d89c1d8fcce04a52128773b36375d2f226a74986d5e333b2a597b68f1e360225f79e2cb7faaf0e287e4f9cde0cac02e29dac11a4adcb8441350e77364a0d46c55005c26156a87353dcb240d8ea22452ffaa3f9281bccf06c98c95cbb35aa24ab0cc2044bd0baf71a7566f93b8e0ab661f8cc258ae1a7530983a75a1dff2a34acb9d60e7be55f75c449fefc530f934193fb8d1a8ea7e9078f56a641d6086cc2a0806369118456a0b2c1f748e0e6bc769dd861c81a8c5e16fca782cb87f8ac56f662a432ac3c02bce192c9ef8bd4d9494a04359db9dd38381b87cfe426009ae8b804a7e79e2f4faa96c673a1aaaecc70f236276e6db42d73197944f96778c333ce8f7cf969d7fcdc9f4382a7d2382e523a062555edc572508860f56236be235ec7f3c983009803ecda04609aa3495dc69b582ee329e8f2e48f405ea9e6239f6ede607d857b8d95e05a2b6ca908af9454dab1b218d8c767a9a2b99e339a16b2eea72087e3cf259b67dd5243eb14d471be4c3f3cc08a719ab9da47f247796dd3cd28c6a12774fda1a7a3a64569a9134e4707ff7dad12cdb7198ac66d3a9b5f83d711d0ef047089c14a079a00ac69164decbc5eb910add204fc153354e6696ac55e3e657720270f26e532903488ca5c001843e2025cd03c6bd67c4d4942709ef95525d49dbf24227c9fcaa5238209b5ecd3fadae14bb54f25be114cafbdedc973c51f05f999279dc57844bcc4f1a5400f41e11fb7201c7f35838b691cd2b9a68d7c21ada487a181e5cde1179b8687daf59e607452a5c6a1223c04e80aa8a9cbd7e93fd3f9d0378dbcf7b229b614b4693769a8ec45906ced32acb5ba4980380743fdce6679c19ae0416031e6bd24d93f98a086ed00e02619b9730d4d6eca93b62e2179e053850cda946daaa6679ef53df0bf5e50ca478c3ad9c1b8fd6219581fe3a2b2acd1a02ff7d2b6a45af07e134328300c144ca9f6f977aa197be0c259a522b271870f82694328d894410f0ee0553d8373189411ef240ab11490fbfbea93b8bfa6e76157d121cbe7ecac52e16fac0faf989bb046fd9211760a987b3ef23c6e1b42d3cda36947afcae07c5c345b5b396de842391cb8439703fd72b2e78bc7fbfaa75b36430c5dc4bbdf8023309590580032c69bfa1a0747abde3c22bc9a18e418bad588537b0c2d197a7e7f086210dfe58becfa7f73f19c58809af15f3729a0323a6910ad34c0b54ea54131041fa0f8f52214df196d97602aefc5a34d4e3d4ed7e18c536a3cb9fc3f792ecc8739cb8281be52f6c26ef0aad48b7a036082cd5fcc8ec4b723bb8ecd18efacd85444c2f32ddc3c9c38235e68cd938284595ef6e51e32945c155be97d0e5d2da40fa79d8040d482c010f3baac584a1cabd4fd9eae5adf12e009b184c1f8fba1d21105af07098a582eb3bf6e3aa0cef06c2f29ac003af095eb0d851af5d314beddefa56ca48de121862798753bb1948605765e5f0af87106743f333c3b7e2116d33141ebb14e2389340dbee0756330375d80f0a234c40941e55b05e1f6937555105363516e487c84d876f9b79bdf06fea4308a4f7c7105cee45eaadaf818e808b8f80f1a72edb72488e61fd8f46e6317350c4d43e30c99032a98af23063a158b8e01070c96532f0f3f04bb5d5292ec4b8b8a9101a21ab82e7e36065986ef400698f5c67520eb03d7858596e6c17ae17c3c2d6768f565450fd08a8aba0ce98c282a4a2986fe7165077a176e1fb30ca9b227a4331e2b157e974792df03b8b6b5baaf8d0af182a81206dab182b99bed4e208e380966f13a78b363dea75cca30b48a494ba5700c6e64512875e3c439aaec9d0535d0b6db551cb3d2f2e4893679d15e7a269fe118a3178a60a3aa59493f20dbd7c5bb5709e5b212e6d0b2f4fde69db2ff84c0ca913759c1b2256829387084e052a5ee92de6f109d4692e1fec588d9c0acce1cfe0f1ac4e95c5e78aa23520bf7dd1f475d5a3de2a1c31163a3b9cf73231e3d23dd95e6edfc13075350b97c36bf70a164aa91274e8a84abbd7e53a3c4112e060b00793f379ea3a5fbc6944e5715e8d3284e34080fca99f69968b6f466239d0e4cf27b8652e944ef8f63320798e255dbc5838ff76e94cc7f1716a49e8dfa7bc69d8bd179da5daab7423e890bf852d2742bbc8de8095633ee31178a153e862fbeb62e5543cfe86c7781c778df8b45b60af030402979892388d93c26202a07d076fc22b57c4c64b9bdbcb989ec4748d3d04c2bb71847c289a563f92fe56353d01d5a69b77182b40ca47322f9927a911c5989a00ddedcc429453a9279e8290dd2a2e899a2bb45ddbf4a7e5a0dc6c97097add7de40d31104b8da8d73d3e881bc689a37b32e297506839c3d3667a528e72ff30a9fd176610ac29540809e7b443e29fe955431f6bd0ca6b6917bbaf7a22d43c4b237d881198dbff4b2c4d56ae3004070a24f56acecb916f1ad3c125a7db05abed53026d57827b186a8b76253e341e32e3b4ba248d2ccdf0da4e458d18e361221d98586a3d08fa9c2d734b0668566f334f42708e225ee243ecf8d9a4d1e47cf1e29dfbe5afcb9c75347f26c8fb175a9b5f1a3ac48716877e6e4343c2d89207799991ad0ff53112ddf6e3aa4f3a513c11a828107d382cc195fef21c7782dfc9574bd02c0610bd84d94eaefbbeca24fbdbd8876f6ea9d67ce56ce5303e539f70101c640889d1dba1580ccdeba1e3c3a7357f40a0594a54d1af2c555b9c1f7e4356ea130fcb4b1be9a530e71e9184cca392356416745a8e1f22f0d1c657bb3fba6c918dddc6271337bddff337981c9be259938913469fc4e7aaabd33db8af17c2a107bec02d6e43cd848372b822a51c0fe50e62965934e2f6282e63709263d68b6a1f1779cc0792f08a6a7d52d09d3540d8037f2897872160044c732c249accab0b1e2968f84678c41c4a2cf3e49f47e72ccb26d3ffae9db08d4f1411cabe7009071b671fd0a54855748d6411177ce57e3af56d009ebcc29fe44d170dfd7e5065555b2cefe49d60ab0d4bb3a829627c0f780a4ef8638e5212531be5b3c44d94e27943991d46f500e8d1617590eeb5e28e2ce20b91d6875bad26a47b42ebb8cee112689f564b121c77c9345eb745d060e2b85ebd0f9da416bc29a97d459c883ec12625a5e4fcd90511dacf86036ec0c05cc7f6894d13f6aa920487c9866d64474523cc5dc89069dd63833a46ccedab5e3fe240a94cb7bbcbdb0d3a5693dcffb3ff3a2251adcbebe8638f1780e3d7a4ee854e19e626676295f4d437c5638e7dd1f75706717c1f448a371d1e5491713160e76a08ce1d4c0438a5791b18d6d61bd0c48c2ef81426c85a518a095ee158667ef12fe4ca33ade1d75ef6bb4b8f1e86257f78ece39b05caa1d7106d5cd9bd438cd1ac195edf05a067cf13373ee6f9976100989c9e695751f186885a4e3ac9a026d75564087cc0789e8a7c7423d64669464a73748fe2bda0f330c345c93673c9b956d3dff818de2800bf3d51631892eb6b71d7dbddc27a714db499bf31f83eecbefa38ed53d7b346cb838e69b4d113a04b6ffdaf24f6d47fafab4a82eebf0b607617ee02a3afd048be959267df075a8d5ff5dcf397e1a8b3c5c30ddee29f626d5482a29426652c45e1d2fcef798e2da8ba2fe0a73cc3f63680c801f4b460cfec477d58bd3c88f4463e02065c959be25201bbd1afbc7490bd2af22cadc0266b06cdfec6194b86b9ae32daa47bbf256be89580734af9c71ddd7757a3196d23278f0b9552ce7ab33f9442fedd9740965dc8f6a8ebe9a78edf135054cdbd07b328ef66784c3f3f0a7e73fef18c7cbaa2c07b1be5624c792bc261ec67d9e611f16a9d46572b9e9483b9145006a583bb8a65e42410edaa8a1960190636cc0d0995e0b65f25068c5c40302bea891b5d7f6e0c287e4e9c6e6219fd2150d7f8d2367b1416f877152e3e38d2a04ff12ab5936d6ddcadb02560c66881bbaf9acfc6d732b2bbd84a95d9b970521cedb0065fc7f32ee83748658509ccf5a6c6690107698db12c74fe6d4802f81546f53998d384dbebec502fc9a6ce8f8e934d503209e0f08417a83279379adad4c94183d0ce2eea9e207e9292642f43d860252bad17f22ae5a53fbb8c48dbf34e85cddfcead95cb73ec5ca405f6520aafaa37f411b70022b56335ab833d5da78ee18b49cdd9344f47f3b44465eba0601988842730ea79e3754eb720b3cf8fb4156a5c40cd663e9bf05acf504654b6b9235a8d625806fa509af3e160a837747e25d09215cb04604bf3ebf344e930871517d305823603a9e262c253e9d9714bcff02b9c6cd5b98217864e77f282bbe05d0062f95b673512b7489cdfb67d1ef6a7f9d97b661fc8dfe93b064e3cd261cebc624a9879e7919888f4b8e68af49d9d8afe0ee9f87a51157d732f17e3610c540c6c7990d63c0e1582f5226ab540289c0b13e9a79afc3a54771c0a9e8168f1201b10f89588b9f30e2c2e78635eeb23b721a74f5c712b120e486d1e22a321b4d86ccd709cc6d06ce44d3b0a8b09bdc0b04c524957fc79498557a6f8095ec57ce825c2399ec4c158a3c9a02f3ea2aef3a1c39edca58d407e633b08318ce9b93d38ce0f7a0e2f2b9146891d94a81f571b1efb206e62d220ce30cefcdbb1bc3a666bf3a4f7418f230008640ef7811c4c03475f8806860fe0b2f6c02e97abc6270f278dc16faf8625734505f94887e605b38f2c03a40ebcef152144c03eb6fa2fd5b154aac4cb8f1d77e093e0acd633845e478e192261e39df9a3c1e62b1b219f3c4c6c513585482d4ba05dce26767b3d24a1c2e50d526bdc07af2feac3349ab5168493257321af3891ce949e6e85993bc7caed34fec5f29e237b170e7e5e745fac732f80b9a97ff6ee53366bc27747debaf44bef7aa53baf09d844890a63605b73d764330e8ad7d239056bcfbcf9c0988ce7e0294e897fcd88db38d909a64bd2c7473b4af23563fd50cf5581e172cabf88b377715a11070584eb80f252144f4081aac561e3a6cb51efc096e00ce63d1e22893d706e75890400b510d47517c4ec5827dbdcc6ef5f7aef965e600b9a1c77b06939b34ebc51259989f5e62b317efc57c075ad1111f10a883dbc0c06d5ceefef755c6a81b460c5b8a2266a765572755c2d90ff1069f98db6f8872253951075be7cbe6cbed49ac7977682143f24d31ade49b3bf6a231d1fb360b3ed6cb80234f53a7cccb2130101b8f905a80c873975ddb9ca812653a8055b5e16f8acfaf8d457281d688710dcc1ae483f18f672223016f9c31bcaaa53c5881a83db380c6e244d787e395818801ee92a18089fbc204f5c79353b0dbf3792382120beb8c80d08606438fc849f3393f02a4d587401b9720af5f21521170e40557aa14bf11386bcf646c3fe423f9e84d9cbce925219c3dcecc5200a6210dce68d0c99395428073cf495f05f039aee0d3143ca6b9d3689e833a0caf4634adb4158f5f70e7f1304840ba38f0be4d4f4a1e988e5159a47a3c3c3ad17059b15b3698e21573f0fc4ddb3c8e39958883ac49722c9f1b46cdafb502c958dd30369ed848429541711cac9d417c256646cfd7fa464c03b521fe13c3db92db7cf3ed6a775b865c15be65c4c362161f2d08b4e34dd628a6ebf0f8e63f0ae11c21d9dd8cb6d754fe2a4a758c69992edca3bb6646df1d97f35435617355c519b0d24147739bbeba1adb3570a71d3b53e37c77e2851b7bd968998959b078d566bd6b29cb9d5e912daf2181bbcea4b5031929d5c7a300ba7d6c8bcf33dcde7247cef8e978bb0f50eee20196b03071d119bd76f69636940d76ab77226e34131585aacafc5685c99c6c4ec582036091c25c1173e4cbe870439dd3d377267599ffd14e55cd39936e34c0a6a1ac20ca9b8460d074edb47a1fde1e02db586ba604cbadd2ab4f63452f9c1e7012d15305f013db669e6922b344c69549c4c553be34630262cf22229a3d5fcdaed7a78f1b82337ff6865c45c417cc21b62fbc2b2b9daee0d5d03ccbd55a789535d433c50b6ce51a0421dc7b7d4e3e25edc2fd86c5ac3093c4e8b1400b9e5768c91c23ac3747d64963f7a9917d68d41e0d84ea68947d35e6fe1ae87d1cdc7e1b691fd1b8bd8f1468e8756e10bfa31e87e8a996e1ed0d87d509721b175f13a715fb0329b6e5cc98bb7f098b2e7bfa93416b3a92b5f0a5e1fd7d60006131cf5ae6221e3c1454641a6f2aa311d3037a53d47a7ecebcc3ffe153822c8f066a5d8b0f7d1bcb168f27d6d70b15280bf67d4b488c661a9a2dd960914566bd40f30902641210ddad9461315a594daf388db42ba8adf4eb277945d08abd3d0a749e0ed7d330bcb351ace7045c0a592b10edc6633215dabca7d72fa6bc0238d509cc42acf2c56e2e8827746bec326d3469ca3f678e7e00002d2a9ded5ff47983d82a54f6faca56396ddec1bc9483fda40b436cabedee743f0e2abd15428754b3ec50456a7d1de561f65af5c667853ef73398ef479d5b6e043dba15e758024821c75cc9e66b6432f0c10a41b4594d7fb0785ead89e1e6754688e80284019e89d85d77caf965aaf3606e7cdbb0d41ad0446072c2821aca03b3c1560ccc3c80c991efdfe011d6756ea2257700542bd7317a49c5016607c1af2d45901a83feee0a7fdab706f372cc25e54f1bd64f5bffd431161970b5771b9656c1ba3f9a6cd5092da43a5306759821cebe8357c8215e7a6e2327d5b47e0bc0fc2a6a9fffd8250c93c8922f4c1fe5e05f918500f7e043c40c6ba04831aed1fbc0ac8ae19cdf05a1ccb81f4d56a77f0380d960fe48185e2d2767bde65ef80c99671d0c443929954cf714d87d62522b7a2027ec58ae4b61868b23c98ea76cc45700537a313fc481df5c1b7d8da12f4ddefd46e0701fded58398051b57b9ee262db8c83e9bf40ecf8bdb53a078a72fca8df9c1140a2adb36c3e9e45081bc0e0c0a09ad283ade9a0ae198d3498456e78a5c317425cd7b0c63af7992e258ca39f897a6dbe27dd0e287ce13ca2ec785d678a02fd445a8b7ffdb27a5c88ad93f99fe4951ae4812e1eead1e6c0c81e10883a7b0ae924f8025ef540cc29a1fdab30b2fc82847e3bb8a0f7a3286ef4e1547e0cef733391903f6a100a1f0cef5add1c1da4dbe3291c92b180fa31863fc7952a44eaeb3ccbeec5c7fafc6f0a1cf6a01675cd6ac3f77680cc53c057490fdfcce6da59d0cca4154636c60ca9dd01d6808f33878c5bdd474f83b4a6644219dc0091e1c1e4f3ddb24a0d38fbe5f7677c19b8834bb0ec9fefb61375d0693360b95fa397a879dd5723dd0b63c82eb28b812bcc960e8c306c35be05df86bc83e4a4ca07ee4eb523c5bdba715726a2e38ff938abf0a3a0232d332d4550ad6232c6218981dfc740d54ee770a3fec1fe0be2870214beeae3cfc9282d7790048bb8ce28ff08915e57940606b9ed0a3ca98d3a80b10cb6b5798fcaa474a101b197946b7017e57aee3c98a50ef692e2d7854120438ffe7fc5747e3726e89040fab4a199130ae6dbd223463c1dcb9457934a600bfeaf7f3b14fe5eec112b8eb467608af82336970ffde00ce02b1b2804606dd3355b37979da4a1b367d2083951ec47ebc29fc5b237bb4700a5975093fe65891ff2793564b1059276128dc8ddbdf96c3b19fc7eec2a460e34e730aa335f50e8bee4ee25bec7088cc50d58254560591b27b9a59990e7038ae2a77136b6db1de8f45fcb249bab3e35001b74561b8abf92ff8b6246afeb2b295bed456b06680a38d4a3edfd54040ff7d9f9c4f775ae5823f0b29c9f63c10dcece5dba96c753756def64960a65d2a37d81f2e88c517f51adc91a9ab23e78a7e1a774f07d63f2b14b7390f1172a1c30ce8b0e3966a2e5f4b5a1051fdacfe5930f4aa62d0148058f49b1fbf9883f01b2dbdb2bf06e813143ddbda6379980d0c050e33da57bc0bffc6b6ca7b32fc23ad5ab550b0eda0d3fbfcac71bc2f3b770f50d478065b93cdb277ad74495cf452a80a1cc0b1936dfb71f3ea65fb47599cf863d4909e2945b1b269e5a6b10a5fe17724d34881939b039eb3be881d40b0563d0347a4ef4ac293375a7e0b18e0e0d6a9bc1471645522ee0c4cbdae29f6c518ce2e1a3435fe4a9fbff607f18c81cf12a7a5bbcac1ba6abe0ed59e3e9fcfdf98944f24d6e1e8f301a064d7a8788ffda28e0029c638e84c4ee90e3df423dcae0ff549a39aa7ae12b652159b063280ba5400b9a4b258f525f122ec8d9f6c2ed9e36638fea207ede70cdda786e7ed6bda96ae7e57019c6b56010ffae68a68174e756e4c606d3f59e7b512b8740479073065b7ef4b31ee5e867696560ef693878cc068ccf236078342e26a65b4b1cfd8dfdd1bc5c213e06e08b878c52f0aaffd36c2ad6e8f9bd657feb7d69ffe706c4d76a566b6313e696a2bd7d72eac39c5cfa5a2fb2635d4e0b65bfe98a26f9494434151ee18ff4c07f072734733cca4435e49ac360949d9288fe606980e6ac2ef4927dc2baa609ccf043646547c50d563a47d179a698bb0350efaa61f8de1028415bd311fd50560448af833bab93f22638dc88cf253c0d6aab144be4222a82b77588d07690e63532fc83fc386d0047ff8cbe6c390b212db4bcf4044ef3b6388d3e7627ac8af53fc470350ec9834eb3434c806d085df910971208649f729a9e74e5e411015bb880a2fea2faece60522faf46fa325b055305eb77200efa9f29ade8149e095496045c41981d33c28adf5e34e603812446f678913f3a97c705a486705c3c1dcf21d6e03d816d29d7f566ad2d654443724a561f6867c9a6e6177b35bf273a4f7fa0f24a66794eebb88cbfba6705daf47a061439cb7087613937a2a5eeee5ef48e3236bf64b49a9650025f0b27c04096e30de1de7f959419b74878a36db121275c7b4b11c5d00907485a60bf826103b9f2205b40089be4ad2fdc2b1ebaa25bef76ee2ff202603a5ba86171d364a43736fe2bad57c3076119905ee351542eff0a40e5e653e3b2a39bfdca485ff7f3df9f27a2b3f5a5b5773195cc1f23f8121be6139d566b269800eedb23441b663c4a0d460a54b7a91ff3f253e93f34ba285b3a895da7a0417c4d5123aa03eb0e780fc355ef1b6041513c60e776ae36ec5fe13c128a13f2066b594cfb64e25eed03b8585308b89bb0046af291581befad6601720225aa2ae8b2778a899c767b6ad53869d447eb2078a5d0f2ec17c9b9e09651042b6712b9e73bee5c69b60cb378f0f355d925e3527dc23836e4396e47f600e89b0e0d9fc544405d23d2402a31583b339a00fae7fefc3d4f0cbf271690f24ace4f9659c7766c0f2e5f77a5323728bcc4bb040cb25e0a9b5208b12f38a7c6386095604e4614dc71657c53d071b27933e543cf3ddf43899969a44be167b8872fc45ff4c794f8f6acfa6ea2d316e0847e94270c58d9fe319f639878954809a20424fe6c434feb0ad6aa86dbd83484b1b6a974e2863a0b67a9ee82c02483109a426611eb6aa4f522aa02db1308409e3b63c5b4c8735cef998a179c1646a82c8df8082db241b4b2ef3c65ec30aaaf7a30b2da3c545b8b366174e68b1d3e45430dfbb987312064ec4a682b8c62fbb47be0cf631032cde574c5f71906aff937ec80c87797a70de0d60e9b4eaf2075316966ed236b1a3f1c7233e784802851b20b5c384046aa70925bdf8aba957a3ec38d5f14cd5916af83e2285821c597f9e02974a7cf67b3846eb63bbb4ab2d57b4b57ac4b1051adbd035a7e5f6c18dd97d3d5f3c7962d2434519a58b6e076656008b6ef9abb425ff029cd18377a9cf3155ab0be09ae67aa3f6c947d2344852acc7fc299d64ceb01f6b0c50af7abe830ce1ff96be9ccb8f7f93374cbb6b3807a36c9ef4495f35e8d92ff7e79827a218d5ad63f6c099005d212ffcfe517fcf76162d54c1c7091ab23b9f6d5bd394b1ad0cde54683e706a00e5f5a95a6bacda6ef4512e1d823233e9d56b9451f93c3fd87b4fff5419596ec163b2b2d6c8030e94c68783c3fe2b0e74d24934a34863d1d89ecb5b8766f055defad7edbd07b97d3e51de0abd06c2c175dc95db2cface8085885189ee5a2574a7dd19b62994ed51091bf83cb261459ae29a16d24b2fec89778dafbfcce04649030d9887d02c94ec9cba5cae869a8ca9f06515e043648d9e232fb084dee100da66248b87e905f24857cd39ad5c83482669b08538fb27d1b2e31d544d31b1c99c0f1895f767b52a87f1ceecb632b44ca30064c0ab8b0403a98b07d26b7aa1b2a72b0295c2c322680ce64eaa40c560f405016a6459d55c88bef8cf36cd416b7b06901abf3e0f49920570a48470598b294ad81da2d629c7d8087e4df808bd6e10aace2665cd4cf720441d393e87101327d928abe34fb9aa7f7671424dc977b2681751bee6da52fa86ba9feaab3e41600c8f8b8127d0f300252204c18570a1e96ef3607618f4ffccc0a225f9ae67466f34702299b906cf9004e0c9677f41cd2c098a1371aa9d05679fceed38623f99ad374d2b4b9e905fdb0100ab9b92612012b41e36c7dd451dc83d26d5c1c4719618a1004d86aabf9e2558ed4eddf0c5d80948bd2a9e02d37f75150aa6b69974f1fd4025b8d47051d91b386cad9df34b5be77e197726c87a7b453b0fbac1842e2848fd33da39495dd5e17f84142c0cad250277f1ab5d93f51b0fa064f6b1bb8a8ab863131479f626add1b0ff05409c44f8ba3937c289c418a5e5438a57628bcf082ed43209e16262751e25b6fa6ca4fa574028f4c0755f38f8a32c1d98d20ae327ecaac1892e27254883cb571933046fe24dc146f317e7d34ab387903ca7c83df0c06bfb2dade1dad954c9cea5115ff4e9f6864270d53f7eb115eb082f56a640b1b5d4f090a8c1039f915fde9aa0b84ee788395263e532f0d9b0cd93ae998217890b03416b0b90e12d3662703de978d534d307b988074fa49ab642f40f58b1f3cf84508e739b907034343a74cbab79c5d4c4e24166fb72fd62a2c621c904c76a25894286e574b51b874880941c44c7de1b703cc8d44118c22a0d4f88b78f36e4528302e18786bd80840c76022fbe2742ec5e8dba7e382cc340f33861c3e48cdf4b10c1645b11579f112e2e7e89ceab54e72c1dd041bb021d8327e7df54f7f0aacee4ee0b32c8bcb09f7e099af8a13a71bc3257755ff5dc2052d2fb7f8bf810fd2c53b95d3ee7f6d798d664f748b845f06b87d1ad144497e4637280eec11fc9dc3ff1afde9b8f9d0bb7ed7e850a91b4e137ada1451d509a81d0d1afb031bad534dc13532869fe83d9ca7f6e0c20166be764f38a19c209ac67c50cc56530b5ba9fce98816af0bb8489f120d9a5a46fd2988b6db20fd675bd1f1f0db45cc5e0a755d50718d1ce92c634eed2bfd7183c91f5229283718406df90376e03c2f9a017f6c83adb4f11e49b8ff43bdef32801861f39df22a4f94d224a6618355548db062c047294132d1b07ff36d6a5a0df6393054a908211a1e4000616a412d29d671ac072b04626f6b25027c8361b9b2d9a37cf8fd406d2a5fb3cf060a52c32947f91182b40c9127ad2546530c600359e669c883187d315040d3bf0c4000d7cb914ab56ea1f7d6935f9b11f1e46382cda7b2996363b03310fac56cee88524ca030a0f751431922bc27483e82340f801b3b1fd04e6eac6634fa7fb357533c81ada9e3e22946c68f0d413e40928245586d96dfc8e25023d00ca123ab2d11bb35fdfe2d928ff1f7486d11c84445e218757675962d08ffc82a7a5ed142a185c0006f2d19773350513e35032e12910bdc4a24a2109b06adfd80512f6980639f60ad73708b691098160b1d8f041136dd00e47e39fb86247b25f4d9dfadcb815e356f5c88e346a4efdbc62b7d7f4dfe0c28c49dc035d4981d3e4877d770690f3f43f8fcc2a70f2d10af6dfabce3c1821efd2ae6c6c79ab471d83c174494274acddb8282920e1e0cf91d7bb8e6ddd482f623552c336151870e5691936fcc305422669e2ea3957a83460472e377cd41bc1efabd70951592f3c5ef821adbfb00ed56575f48155acdb6c24e9b662bb53e0b288bc46325620bdbd5e6b2ab1b58e048f308132a3102d8cca30a473cc30f4524e4d4546c3027dbc0d9170e0bb93acee2a8d2ffa7759883f56ab4317a854f740c46a9da86aff34cab314f1f2832b08846dd24a69779720331abbb27964b5091b7e31c7a10ad88a6a6f7214cf0fc0eb203a7faf7a8f5fb179473963c49a9e0ebbdfd9d6cd6d0103dc89569bd418216523f37478d2ce88ef5ee3f6a5ea5aa66c1f327b0a28dd829afae363794b6bdb31c6c80b4e73922cbc2a1f8764edb356a837216fc75007727bedcb986aae95c1e93208d66960c5d276ce11c2fadb92574a2811bf79632a9164606d0761f28eaed493104addcb5424db502cfb375e891dfe2c67bcadd0ccb5106ca512f9af034be6b30a779c6251fb2c947b5b78627fdbf97b1ceb13b783aa5c6e7d8e50ee4c17d1eba2e5b9e32b5fa77680e1a947b145a31ecceca493632d912d27b6b2ff15fb9a8150a8cd1ea8ca314e8e99bdbc06465fc0468a386b1ba06e17552991c556e31aafc7c806d12190222079a2e357515ff891ec2b4180967e6ccb4f44222f5858985169433fed5892ffc5bf7dde5b032db39e12a8fca57464c3540cff6cff4b87a174d3d64df50553c434d9474feb812de20001f3e7a60349468d13aedeb67ea6d4044681ba6d9a8ade6538f3750a78674f08006b50d7c011464a592932e197d01b0af87097264b79b3ad5682092e733e11fde55174a34115821ac512f895164644ad1829f851289e902cb5f3801cc0a4c8ae6da9d639ec5b9ac6ab6f3d490387aa3020668e64dd074e4fe9b409e352a4b58b07209350fb5c333be0aa4f7738bf3a140800ff5fd23fa78c40edd16fa18ba7afd047d0ca3bdf0c96134638f6b8c535435050294ce6a23af9e5f2d25d370d14c8ef698d426e464c0672e0305c058cc0946b0001adf04c5f1bb99531f40c77e997e228e778712bdef5c2e596be389064ba83242612ccebcbd7807a603ba73f8ce13b6aa893c7fb991a1384334da06f6316b3adeea690561e7611bacb116275defdc40fa03a2325e39d045882cd684e15c229fb2420b89fd74fd2c3310ba505845e0490c609cf20ebee7f151f0ddbabeb5e6748a9b13098a0a929cfb1bc626f4af1931463f8b190769380131bd66fc39c181fe07306c889705d8f21340ea59213122599bb42d2a34468e28bd699d4b46419499918cb2b42642d3a4fa090bc2c43292f0633a4eedf0997461b6f8d5d4f4ba98dadd575bd543bd3b488b60e8b262db43a3ee87d781631bf18b5525e971faebec95f960d2b478f4d45a4352d4093686894405758a61847d3aca5054ea400a86d680c9223c54c83f28f6e6263af40275c288d04aedbf1f0d512028b01f3d5b76f122bf0337e22f075eab4a640c44f19fd7a84ab7b4632d81296611f0acdc23fc4c7132db0d1196693774f3483eafa5f3d67166f4ea714db4552b3ea33d2902dac6b36205375b3658c7f3006862ad4a9e0c8b700b045171e18301dbd50f71ad4dd23c2b8801da8ea6c2193841f9d1177f0e362437b7c44abcad06bb4bd59f35f3ba4143f866f4f8b93c3bbc7cffb52df2fbc2d768831621b1ee111dc8220c81471a41a46df38847255deef8f84a4e662f7e4b22ed6134bda0fe62b048024ed553e416b2e47d2a6cffd54de634ea9a37d68ce82f5e8541e59324737309e74d6b88815a24220bdf90ae401b476b8c6c98d9187fb0f7c1cfc79fb2a79f59575b55fb574eb1091115425902493d0b283cdd0ed51a247f501d24763373243998f19b3b03fe85cf8a8b39a631e3fa0b7d3d837566fdfd7a2c420723aa51fee62c80d618d0f79ef6baa5aade9fc0f5a4234108df1b039d38167ee58f1f9e2d49e09c06840fa6e44404d5364ef8379b4b884f9b8114f59994ab646a4fe54033c65afeaed0b31a717eb25c930bb51833b8eab4757afbd0078e08305f415744798a21cb245a2c0df3138a5139a055bd0b221665257850ca0380ded7aa2f1da493448b849e9ed0294887b9c5319985e634eae7652de49721144999d68d29431da3a492c6b13668c7eea1fd804945a26ab3716c441a4a04dfd500474556237b30716162c117c2937d5982f6c99af0d9af272a0dc8b01089b5468d044b761259ffccf40789246be3112b2304e419323b3ca813f88e0d1a36068531610879af748ae7491c3fb278e796c0eb9772ee1cb797d1061462b73503c8f0dec6429e59b58b509aa16b7e5f7a819a0252653564d960b3de08e3670169a1c506b12e0dd16087740ff77e7d6767c3604297edca0e66122011465e7799372028bb168c1bd0290fd7e2ab5f25cfaf46413ba711ce6bd84acdceae46f0f3ce56f5e2e5e9637e82f17390d35d04f0cfa20e81860e32410eb3c5ef009da2ba3969c79cad083291d1e4f447fbe6a83d0b11b1ae94557db9693b8bceb28ab74506583082d8b695eae864a83b9f5bdd0a3593fb40e82de1566b3662212ab08bfb95d18241cd3942c32eb99cea9c7c5c6231f87b6a4cb63972fb0369d3d668b6b01098201547930abd701030b2af9b13640a41b3dc8b5076fbdc34db4a423ab8fc7024c56caa38be860267ddf218f42ab76c79d0e64fd14ba2a808dff9b8bb5244fe96c84341b73649fdf2ce71cd7581fb34b298a78f11a7995ee9c7e88bdbc054e3fd5557604b4e1cea8a42c86d18406472434e0513a87c33f4f285cba2f752452e2431ac2f718dce779491a26be2914d4f36ecaba8adb389176fc24b3c47e9b6cc65c48f5a968e041fabd5b830903738de3b8276c669c7001fa3d53d35067cbec8b7298fa3170a1649ad2779750aaf5a8f01fd874be1929fa5c231385364f272a565e83c6dc00b7f4f61f579c2760df39020b05815328b5cf26eaf3dd6e98c6c9dd3a271e16a6046c5c80d869273859d33b3c1cc556228cc4ba3cfba4a57ae710d812ffc8bd80dc3451b582d98dab19c451dfd2aa529bb1fede98f80c04082db8f0a3734adbea864e892f6242331f9ce355e356f55056b9643208cf3d4fd2846fb015b1142a0b15dbaeb539d7ef5900069825b700e530a2dec4d51a2b8be5de8eac432153db966c984f35164c88b9c0a698e907ff82a9b185f4a0e345feae08727ad02892ea460ee30000bc818a2d330bcae5c4717f054be194693b733157e6a6c414e2e03fe4250e39697523040a8352e1dd4cb1b0f053a834c16b294e8ccaef9f3cb5191639a6bd54435943dbbb398f4b0f4c51293a678936b0cc4486953bea77645e0cd1e5e19b09bcd1755ff5f00a9e6f4ea089edcf246a8fbf3956a51324d3d6a1a023f8816f82086ed560b0ec9b5b898c49a19cdf56303a2529243a4ddd325dd9d0b76af492cecafa07f7bb1a6b1a4a9c37a85266c9b4703ba0db122bbb7b7ce27b0540e9bf4d50348b51f0ed50c62d0c0801dcd725941ecb9a9b518def1049216500362fa7d8c908b084ece5133d0f8a6a45b9ae0e0ff028f11a77bb749e57788657803333f1a1565153284d0acddcb7bc30b5de9f7b2a6417467256220a9b28686f31bd733aa0464702c7d7a77adfc4bbb4b89ed675bfa1418d7183c62dd8569b7cc36fc893718ffc6e857068cf5e388b6e319b2a2277bfcc64bc6d8c5a6e9ebbb9cf468f997cb26233625280f893d7806fc2e4d21d1a4485068b164fe06ce476afe17728a843ad5511a3002046a95da7f6f16a4840bfa3355f802836dd4bed426695b41244202c2e44c0120321e09b8c8430cc407c1222a98f92f47cbc24f5f8ba1e91bf3d2eed42f63f914505782e96c28a93db6a39308989ef4f08786f382cc5c347a9098a0b5ad8f4d8f8744f042a0b4816eb078c524efea8aa5989ada459990f76423044ff69c5d81f297a836d458404a6581da0219eb505f8e4ca098ad418c9db26cadd087388ede5844794710ddd4e2d84a3565d00ebc6eedc86d5155d0c6d058dc6888ab874e367ccb5a250fa5ea63cbaecc92554eb355abf71ac5e785b3c65a531e12e2eb4168c2f6af7c2d56a1b1b334b859aa34be2d4d946af384428f03e81dd1b8433eebd16ba737ebabf5399bb5ba58b2d295c5894307009b4e3d86825b8bbeba3d8d29ca3a0670b940fe03c9876ea3b8ba8f9ca36fcda244731de8ef9d63fd254ace177befa27fe3147ac4db03cb2b39ee0a9c444c65621125e0337034a989ce3c1a7fec6f8120a0d3a8901a321f6e32b1cbb36f12395b3e65da9d2a83931ede105dc84232c0198010ed7deb80297674e840781f1d2bc6c5cac35d3e19a04c753c371c59f3f50774c0dd8ed1104d537b0b93ce90e0db586312b084ad5a0987b39482dfc8ff2832df72d15ee7e8558c4bc85cc6f309b28c95287114f0f6d8f729e8839b4a0a767517bbb0724dcaa51ca752461408d3f43e26e7b03c9c0eebad43c23178ecbf01590571d2c369b33f21fd9312e9a22f19846183645816188ba2a998e902bd650607b96c1a25378bd828ca472652dd8a43a75fb75460f3a80544c205d6e1a9cef0936c993532ee047d6e22642a53e8d6b91f90d35f99828b7dfbc5f0f09df58ac9ecca005717a98b602180ad5ffa349bd87ee17374a505ca8897f2f5cdc64d226504b140d536bf1a061a1c44eb986ad265229291f73cb016a7afff6a50d94d42d42393ca6bea6e5dc8d7f808bd1ce30a44e05e65f091c06f5e59882fbfc9ac8a44631ed09b60e2113ffd3cae6074e3e7fee78850031ac14bd6be02ff68c2e8a05708d7f8c9d06ed8a2c44e81f06206e864e356c106f533496a113b4df01b8b2660d76e9a2dc95d9b03bda4d8c1d0184f5a9bdb8e00db2838059174e6084af297602547d0611a3412d27456d31e354041163645104be896d1c54e3eaa1124f5d6842fced8d43221d51131067a58f3b061d4e71b83e9d3686273f483bd2cb929513bd9389d4268c46213e3512e931d2e30ef1dc04ecec519e4c7557d18b07f75fd9105ebbdd32379a2774eb05c2664f6018281e715661222d26e8ce34d2f93c7856b9204492684f3c67780c722b517851191bd463debdbc0bb021537ac009239d87885b52cfcd596f6168745675e8aa216013c3d95b9627275a2cc8229d653cd7ec5836138c377d474c700bc918f781c76b720e6a450adb41721d3acbaaaa17790ff3592d37ff13d501501122fe5e86b0f037482c50a03944c8041cdc1bbbfcb7c715253467d6ad8777be71fce84bbee07b8b395ea496c26b7b9200410f5ab9702017d217acb6a16baf50d23477e2d66a633f5273873d7612952f520ddf068e6c371e6f84c3dd095c47ca6a6ab34861cab043bd54291e1fa43c7ee28cf1688b51aaff087b812a3a91efe0f10de38b695d91a715788614acfc5da5e59123bdc59fc00b5080f42ab61bcc4ce283768f2f76189b14f4f458293475e44c0b6a86dc9d93907d28dabf78c22175150a4b21870a6c7d5172eb396dbcc18741341586f6f23f2dc1d08717c05f3e6b3208637bcc43089561672228ec07554b6a70cb5f363605fb7f81fee121b581ac368381b0314bfa0b7ac8b7f1a223de52a766acd7118ec2c9eed47448ea37a14e9cdba691b966715fcecd950ed76f90dc170d21b05da9022370f9b8bd34479638922e214897f13094c6754292bc2a8bc5cafa4f10ef0881fe07404b7373deee45b33ce285ca2066320a6135100fdc52ebb70f20910e2eeb8c0ed5da681491805f4ff1d4141e540babbbe54b22d035d858f4fc20efdb038c0107d8d8df673d0e9340e7b2004dd15df4e8e0f256c7948981472d1016b634b24528c7fada18785f345424e34ed70fddce28afd15eba4bf7995d542702275db0538e552f4e8f26e757a732c578abfc5e4b925001c766bd1911d3a45ea0fe3dc3fb1bc125ac261b7162d92951d8694388ef093cc30e9a04a48bb0c47e436b18d8d78f0d8fa73029dee3971c1162e2588c7d5017275105d76df19457a1362ba5b2ff5ff7a83ca80ddb0375d7e79614a073226addbf21f792549935e0e587265c26d0370f40cda5692cef5f7abf51be49257cfa35f1819dfa8bf181fb412610074cbbe74dc10a179745783cf1081f3668f8ed5991dfa89522c29236149e8f9e3f83b0b11799d0e024cd2154867fa6a0908c4a94257bbcef3239bb49a6d906d32f749cb05ecf3412fd7d70d1339fc2054a5f268286e5add17c6149cf26b7f50adf7f9fb41bc5c61ad3a53c1e403ca75a3baa307a11a6bc452026263de26433146af52e195b41f146ec1134b29c09e8530f977f6d39540fffe4d43f9ba70e7dc68909beaf62452c2f991334cbf59633b77ce46313353843bd1921726657990d5997e3c0b14636a9471a992af59990530c2594851046c18e6b1a204431e218bf53de659824f632547bb3501d94411508d708cf9effeb03208d9d45a8e56366784cd31951f21acb9aa6110735358d511723d381a608cfa97dd0f30f13e280f152ada4402bb5e52fec028dc8856a78660e7ed8edc8270489b6a3f268d75692289a04407accd469d6a8718b284012537448a68d3d32bd35d56605cc02a3f0ada03b6e47a831acf10a44f2eacf5d4d5e0d4bf0506d83d2488b2802beb0e68235ddeb8e22935ab059adba6f804bc795e6bb4e81d07b34c0d8860a11def8a9a72ed562f0b3cd40ad769c9325b8ed6ca99de289b56cc7233de4ae2e206d826f6cac7f87fb76e327f5e6fd5f94a5aea2859d7da84168ea069fe5431a1b5c9c973ee55e65412d2989bd0fbdf0f565570932bdbb0adc86efc070e2bcb68e6263fdb1108c41ab82a81292fc5cfd8ce2ddacc4eb57d62ad4cc625dce069b668c4a3f3dc9c1c3b06c0eb514cf68068b29e726a0a93c7c8b3ab0f60283519695e26cd0511895379568103d0bbef948221860a59ee609ed4c07d6740e0582a1861f2d0136ce762687188029f83eb214b4349cfda2c3910c5f67ad957fc61d32a22d4b514c16bf59c2f51325c223b3df1cf6372fef5b43881ebf83dbd716f1c586909706a8abb9e78f0f504bef1ef6b61a1fbb6c0cbc411868d2e1c405813e74371e1eee2afdad28193bfb315e65a409c1b99c27c16a35b539a0ab328b16ae416472d69cb1edd3d3893dd9af887318275350027b601d9fcb6161a3d087517b9845fe06a89ea5183a21348e27b1b0089f0ee310f921793b115d0b9c91c8a6c760884d029d7eb261970401b81780c64713215cb56cf573025e1ba9fc46aff5f59fd511542cbc90a48f04571e613d1146b2ab924bf28ceeb35c05232d9aef2ce5cdfe1f6b3249e42e0c0fbc66d84e06baf0aa972e1afc4232dc2a28f74af23ea0813daefef4ab40c879dc2dd8d2658155cc3c61dc8032dd2286c4c6cb09ce2415c02dc90ab3b64e27a5e9d83925f1d8021e5cd633fb11222035bd16abf136f7a685d09c3fd7d5577b43887e294715d599daafacb10a3d39b9f50652fe400bcd46bc79ba99a113055e74618f55f4b689ec8a749d7f3441a6d25125e8c914ff55ef4c2b0555895c29737d861419001439ef57c79b3cbe60b111dc8ba9d2ac5309897ae28e3f2c91407c9aec9105c5d7931300f160ec6d8be8e8915d3ec3df47b30bbae60db6b6a2bb4d5215ba2e70d06eb8f795507ff4ac817bd902fe355115e6c54edcb5105c1be1b623d487786d5b14111a4fd362c5c0b6ee7ae495e1e3a201bdc28f685a632258e93d03ccb42ca00a5775567f44587c969ca953572d61d0dd41421b0b4e99874c2d4a25fdd9094366d54cafa10e30eab60b2f69a644a280236dde4740c145d9690a486b4d67a33e5a11354e1c412c448c49c0246a62e0eab3e1db9422c2e76e9a5b16d9901d304bcf96eae5871128b704492b2d457c14b4ba7a2058d56319e77fe2d0d4da305018fbd6baa9a96e68341a4658fcccd28b1354d5aba06406a7ffee99fe65442feb7a14cce72c8eaac90dc27fcbd3f7e3a460dc1ba60b9a64cd04b9e30e9b4cd1b413bef0941994e082faca72171cc3d99a0e0aaf650a59fc6dffb0292781982f24c50b2aff54f65e8d77296fd1935aff3a01bbbc5482fe9ff67846fa178d4a0dd1735f3951f3118d81f4cc0143b75bcece964ead264a30f8f10381d7a76718d1e571c19b0a399b0286125e099a6e3919a0c5ccd4405c2441b654c061152282e12599a99e84e17100e38c68208ee7d1a661dd4358cc89bb686b22890287304d490be04647cc724b8906d5f73f7ae27d91820b5c8ea67be1c13ffd8e0a02c4a871793920ff1a85a72e149cd1f4cb7d66f56c168045f07b2b183427907c94e1e39edbb177661275f4cf2e520ca0575e2964faba659368fba02f24574bbbfbe530aeb1c477d07912ba01e2d2dd3d33b898c9d1e2edc1522921a65184ad4ef0f4e5b1926b56641e664b333d44427dac9d2bddfa4da6c6e7781b88d7dc847cc6529d207e801c7868308ceb040b663440d050a8826dfd2a9382cc7e180f30a1ed81e9e87bb969fc92806391b7aa9a651026d8c02575bb2b05018f65e9aa0e096a1932ad5a18658ecd4848b32891d10520936f3231bc8ca6207060f7ea8a42287bde23d728b2fa79c165ace311d1f06d8cf84c102aeddcf8469f187b810af2a324535a0786d5931dd6671af3d0ca266d8eac63c7ba1288e261308ab4b5424191fcf523387a229a414ffd1a6eeebc1ca5a3ad8ddc1de7021489142f5632ef31f02fd63a5762f4ef3be929a076d68187c16eab730fb43eeee5e8d9434db1bb46171ceec0d599caaef01f39f5a93db1ebedd463a0afe505259ff8c5e158e65430ad0f44d0f6caf0f28db26f2559a5ca95b6df7cd6ff4aacf4c50232afe0cbf00e79c5c06d51ae2ffea1c2978258ce1988218e5da345a65f3b5f4844a9c52de57770f4e6112f4ba9e643808725fe865b2c04ca4a1c19d4ee40bc5194e2e3e6d56ee79c80a48273ed909eaf97cdda128b006b988866824c9cd5ae1ef98daaf4403251aaf70d54dc314ae2b3a150ef1199a7be7048677be9f3a830a543bdfea1489176cc112b3c17b71cd6a5a9ef281d4edfecba1a5ff1fed09359a622d1ff1e919b2835383ffec716f1a91d03013716722d1fa73f815a1e20e2e9d48f1b14ea21bd3c4149cfc8eda3b30055f1310f616cdaee60461877a7a20ad1dfb8b65e6821afb8cd986084725d0163c3497b1af9a7cb82f9fecd3aaedc4f5c8ffcad585fed18e0124a23604a4d496b7ef05305c1294b0705c8231bc3cf8c7b8ecfff9dfcbd547fda538261334e5fefd83bf73763b377993080c331f7c3d092f9976189a156b37329cf601725975cd1cc503a3e5032c9bbaae2ce664197d22982a6be5b52dfe77b9905942617bb7703cbec3a0b4865e7dc696afd0c54900990609904e4383e645de05590ec5dbafba1a97e00c2bb108372da63c0c6e7ce49bc87371b715a88d4c065a9a4c38ef595774e98321e0361e73acbe793b6872d65e98989b08c6378dc7e2d75e1a041274dc7a3efd436f5e018e12c8d0e44266ea2353546ca5e77bae8177ab5158b1d48a40bc7f88b59d845755fe39841c313197396785a8016cb5eb23183698139c8bc9ae4875461479387b0cb066a0e198966007b5642513a58adcf97de565573059597694fb2b2ffa9954c0fda4619d8179ca481ee50bd5cde0d21ae867a640de1318c5735860843548d1866a358f5ca10b5bd8a1640544d78aa93ab76c9907d99962a40a4cdbc660eb6e07a31dd27ae9f7364657771996947c04207734e9be061c0c925fb9469e1636f29e570d6fb7b28a01e947e403ff88bfde4bb8c34787f27dc83d5427fc32ce5f4da8213d5e3cb6c678bc8e76f0233ff20e3edcdf35dc2f8af4b912b68ba155ea0a95bfc6e9d962c01e17d5bfd0c2e6e8dd8c55489b997a1a61215e8ee9f5e112c091eeed6259c03473298736a1a3041a3f017aa0db11a572852c911b3e32733f063d13df5c309b81588cc488f492bc32035faa1601f9aab60e8c9b1c941bb25882f2550253b7f4d949933b7ec0affa1224de9f8b3d607e59fc53ce550c0a1524188c017c02f80c3a2e02052885914ce4b4e6113fb4820d2c0b93e9167faf1a7ec2bbf0b618a3ff2b5f6b1383baa6bda386d4a11894887dead6912961fa4e734644ea17fb03375073dcc083b2448eb0a5da91d3345ab77512fbee06d32186bbfea4d7b3954d8d33045b77b5a6d125ac8a3aeec24a44fbd90fb764b96d01d8707c7a6a4023e1a8552c86f9c4a83492c0df2cf66448301b41f90ef19a725d1de0b4170eab5255e698fe17cb9d4c084c98691d6efe1cf78695648733d5a275c18f5f5edda915bfdc65ea13565abb8caa7b2d7c48b968fafd7b16c5617c8d119cb9efd58c9f97b1c40695b98d7599fe102d2afdffc2da3f9de2523197d5b278d6c3d9765681ac47fd0042c9b65c8682330102ca0e108a5ecc25cf9e8321beb3ab748050469011006aae8e8ccad369922d30ffb42056d207b06941c7a9b4c502e801a8cfba07d771ec32983da162f58683100c5f20d083304a8d0184e0d8f873ba70acebeec02723431a569c749a6115f9518ccd4988571983bc5c57292f79068d2182f39ce108af3673a3e5815d5d239d731a6b3344a00a015ecb3301fd53b37d162a2b19cf532824fa12b16d5bbe83c3b0ff76d7761c4264b925881f749064080a52a3f2268d6e92416dcf159081539308c19fc78e64dcbbd3aa6a8d6dc831adfd8e5a168ba99e3afc63431ac277acc08a5f48e71fd1569778dfbf6b7cbed45c4f6fe19fdd518b689895d19e530a92847c65e871ef09bcb0a4b76f0f32000fcab5eb500dab9780f67d453d6833e9c84242f1bb1f8dd6541f0255d0b85443a24ee45d287dae4479ae7a8f12834d688d4b0432e0142483e079978b18823ecfd0c924357dfdb681dffc4be8d733b0a8ef73c7d8b020aaf1f701c1d4229f529d78671846ab8882ddced648fcef5c03054bcbf07beb798218e993ccc468dc85105100fdc3e99ef6e00e21180967d534c83f2e4265943e6f7e82da2e80e4859ed4aa92e4e4b7598e17f3e07b4bdd46125b1e0d2684072e985f7287577639fad96759e05182dc12fc327d23ea8728556422c306e4f1c7e44edcfac49abe07d99abe9550114586387910645c72090f5ce50f9b9620568024100bbf267fabbc9fc202509428147de0f087e0716f148c3d124131ba614f3b95a3f98eeab5791c4dc1d217232fed286db28f7ac7e672ad8e01461182de4e4119457cf985dc21ba5183a9433e89fab148be5931e41ec4b3a2932807be871b0ebdfa5b6d0cda40b24b9f4e749ac2c736fdd4b313219e485ffffcdb9f3efcd1df3ffa117f9a7b03bfe3fc6fdbff5ba95a772e7e8b79ab823c5292d6e46e9b9a9f422923ba6f879763d00df711007125819e30162b9182c2681d3c6e14f68690a64d452ff789fc136ba57521f2df1f12abcc84d1d4985889893a4df9900b5b35c4ca022c2ffaf3df3ec27cc579592655584004d166edbdae063c36683aee7ba3d459764ed0a92eab5485f2ef386f0b97cac56b0a231665b8cf8c80e1d6da206b61b624629c6f43a4f52d8d2abd0251c9de0db5915838cfa79810cb4bc9c50fbeb98e894e38876a46e05cb1a4fd9f029724e3d52c99679070420d5e7cc8c56861d647a924f789ebdeb21a8525926d839081e87fa71ff4a30547921243cf37e8433fdeb2f27e399a3121ebc763fcba0366be73011c1f9bd233f623f6d4e83f7200d95fea144bd95509f9b9722dab225fae36da6ae6f8b2501a3880fc80f9bc42b729e708d5ebc5b09af32bc570014aeed2cf654d517b55020d548a3971dcd30a957fe64068bbdb3dcb897121f4273c6190e63b4ad40f6d3ccc69255baf1a528cba2ad9638723f590430bccb6e2e9315d18f4eff43fe271750b54acfb9dbadd6f6a94d562f309ba98a0ea7413e15e3399f83bccd2107b6287a7bafb52ecc29301dc87e53a8f9e29c2d3a86c42dd710094eed0997d54586863c90b188bcab22d16411d7f1a8115f5bcd01b1a54fee0ef53581c323b31f2422bf5fee45b6132ba049ad6f07740150aa92b684acb67ea88a70a55746356065af33cc9ef0addef4b15564988ae0e57287a6ccf01d30b825a123fbf16cb757717610decbe47db71c5bbe108dd47d2f55b5affa10d28fdb3ace4c8ddf2d54655e2862f492b7187558f063ac0c27e507037941ca54ac7d8ac05dfd3b53fd622bce9ccd0924195b1c7508d4ca4692b0f30a5b81826fa68764c0adfe01800c9acdb487125c2f3bec0102f3cb4a1255c960268b569316563213bf15ff43fc5898ac43da1696040f60d6bf4ae3888604c7a4827fb4bf00973fe92c8ca3f1bc26fe5755c7eae32becae7703b0306889d4887786f3393a511a041aa00dbb2c140796e8d7233aa0da16cd6901cc65c47d80b1b3302426abbd339eb607cb837604d7b543877460ec2b3daa0160a3b4699c2e48b4ce3538af966209a5bedb4b47f9bb486c124aad0dcad5b6cacc3ec79c9b618465fefb43e4c7302e2d0f251411086ab94a1408e98a9440fef43555cebc5f6a3bee0aa888b0f928633bbfed3a1707534ba7fd51c331419a529b01ca6419c39a1d97675bd81da143d4d1a4fde29dc464ab1795edc2aab3d210beffbca5271ab44a2060811cc5f436c5a1136a3f09f4030e1823de4ebd7522d3c0562a882af68e1729725fa87fe8cc99d8a049e4c662bba2d8911afb0f5cc04e6df1b7d62520130d50eb74fef20601e6231bdfb3e4d31c0ccb6af4e629e8c11e9f89fda176637e2cd76a397dc510df92988fdccaef800d2c66c52b947329d3851d8be94a7da0e605b92c87e314d7a2b5273a85f060378858cb41267d9037e68ac3e0dd25a37caf6efe8ad72ecd885de37813f0f7144eea69a89a28e80823b3ae0499b1a67238c36ca32e6a5d63bcb8164169ca7a5232e8d96943c533e89a29174fad0b5c7ac1bf5c3a39252876c8b9005672531862c19396ef0492554b0b60f02e751c947a262fc4f0554c00fb5363548890420bb2b62291bacc0ab1d41468afd055d267dfebbdbaae5c6d9722d150c6119b71e3ceeaea7e3d5d3bdae44bdecc53811ea6d7b566fbff62c1431caedcf0ac8d3025da7f06b37ab96c799e8d5b216b0b8a5572f4f128096c301ac31bd161e69e0ef2351b793fecda07da65eaae4a6410f613dd5af980fee5384189c2944834dd7534972308695b98131ce3ae2355ca21ec079cdf26e9540569e8a17abbdff29d8e8767f1ed277fac975c53319f24bb45262270836ec3ced4da4413ef2ad5c8b34830cdc2210a02b1a38505d856151f65a80ae548a41c68599b46ea3595713455958ee9ff654f0adbd9b1859bbab113ea47a7fa130b295f7d14c4df0e6f54e7c0a668825bf0e2468536e37cefe4b73869f799a5bbadbb386b78c49db9c52dde3c48686a2c07695aa0fb8ee053c9f21813b90ce9eef839eba48b741709aad5379b8c347c1518d1ad0f017274aab7e0fc7739245cd122498ab221b29298b9c9d224581a7189383a6ea608ea8efc8c91dc7ed3fcf426fe9bb33c5720e5ed50cdd38e162f9140c0e0ce8920a5ff2e3a64d8fe20293cda6b1dc9f69302cc99dd0d3c4ed458716ac95ad00035fad542f81df05d11296e6a11e43ebd948f6b1d2eaf743732ebb12f317c2a4bb404ca71cfa58e9da57c782440df2568eae8db484c39cb3d1930eb2497e9fa615b430627dbff941700a4f86cd250a6ae0bca814faa921ef384aefa25acf2f5013862c9268fe4e596ce33fc6a38508b67542c877574f377358f1214e797e35f2030467a1a5573e2e8c6810b3c09fdac46f85cba7d0c929bf071ad9aabb141d2cb6de6cb74395284ac33162b709f460125ed077c769a2ef5e8bd971e778823b6a18acb609f9d685789a6b6cd7221d5df33b833cd0950457f63139ce621a45f744c20c542a23d610707036026a328780453330677add07614f4ac420f01b70393a1247a444a3a6b205f76bb15bba56839512d568bf7a8f440fe48a9909a4dab3957c6c570126ad0fa17579f0cdf51acdaad0b43a4b6594eed006842888ec8d68b260276ea0983d7549d6f6255625fe24df75497a6226d9118e4a228bd7c3280a9dfae00bfbc5f92a61c50ab95a117e7dd837786de922639686781e1827437e3cc5876c7487479dec2dfd04171ab2370ec95cba2c30da8d39001ec139feaa8dceb504f1b83281e9876ebe22d13e0961d9152947f25da42c9161cd4b60f820d4b12ebb3620a744ae6961d207151ab777d9886b3721b822d922840bd7e0d7a3a015d78dee3dc1e56dedbc9b265483809b692aa5c6817f64799f72d2db6560141ad6f9cae8cd4086058c9f438253f8d0d17b0d6acf4751dfeaf9f74ee4b8e7b1f1bfe325e40e9b4342efeb72a7b8f40e43e8a8e3943fc9d2ae5436e96570e3787e63f8a7f228cd809d5729aef532d62fa00facda0d6ad476b933d832b5bdfc69246101f6739f748661903f731c95a2e7d4299c58495ac6d8fb074fca98f8354148e51cdba3e7216af685787796aa4a593618bfa8eebca957311d2b4712eabb8b1642a7755f9247d3fecc718bd9a6d2bba3896d153a56ef76c6f4c447c8e3871177d4c8819b8a3a9b36cdebe89988a9ce7c4d8ee3d33cae917e93e190d917f88db43fc9542280fe91ca38e191fe224ff25ecef6f7c114db6e4d0ac23c4e36e8ca5b14ace224d7073deb907ea037159d49472ac82f00897db1cb6f86f78dd6c404e7af29c362329d0fdf822f4b2e70d6b61da7744f65343edcc3adcc418b6e0ec04351e6aac0d04803a4c11bf0f52a636133153777707617172b27b791d0c4f169936b5c12960b8eda13d3461c46f80c57c49b3dc8643709b276b067241340c9b253cb8149496b7ea2b0101450e1f2035a5d045d87a42f0da146f9486f868f62c6ffa9395a77d5f301110af90a56a2d8f5a2041a58ce9bf12f0154667369115bb3cb3a184715777f89e14fd46f08c257990b1b1fa3bcb3e1bf206a2e63c0beb013a22b465ee24661aebd9fab100e564ea69bf082adb9c797a8580fb6764bd0b991c314fa862f0fbf3c03312d72e4e72b9b2533586f460e98bb66810b3e346727ee89010c7ad1e95c3359b1aa5674a9a1978e5f93162e2db53948672ed6474a3b39eece6ed85b81716420a1600f95fd6d3570394f82662afac1bf4c97426cb0870cebd8c7168becee081b988213e85d119c0e51310505be8443a94eb647e4447f9cd0c44115678542858c80e6f44b6626268ee1a0b1c24e107d08f9babc70ff11a072e8ad089424d91158360ec1405af56ca57445be46174d7cd558d2576efa1986d0b473747f1af9095eb63c18bc7c30ed8c717828b9f102c67a144fa1430ade2091dad35bdb5a0f2306ecae8f7a0c4bc028dbf1888829c11abe7326be1143861acb69fa5b33582946b7665e106fb23af4e0f1f8ea387bff41f968d399d73fde04a9071c11d58e8984ca148a17e32290dacacb22f40c73fe40928f1ba14b64d09afbd4cd7537782b5d508339c0fa2956a707368f2e283cae014ec2c8245686e84f7a7496ed5ebe9332d2ef6e416f802080ccf58b4b0f01b38a34c8a21e627f1ecd1f737fbd018608c3007a0fbbb3d1f4d316fcfad59dca6dd1b78fe80a23890bf2615682eb26a62f549403a28af1de8c954c50e726effd1be845439fa866fd34096ea0268d674ef128be4d36980f9a3821feaf85b9424518bfa9f4073edb3335a7bd66a36c722674cf08f2040e1f84587482921a471d4e146a77486019d4bd22ed0395e8d5da7eeb0849172ab6b7dc59561ae0c67b97014a8cb37edc07eb50fa44701e0901467181b5585badc89a7d475e57fce099f24cd6bfee32d5982f6b555f8db799e9e7e6331a5366232c9710428c71bac468cc5f224308f4a9cad9d968030ae8ca5226654109804f2ca55cb3228e62b029be35e1ca2d0c1d3a1944a300f38f7b19e242c4328310d3c574bda888d63ff7bfcbd9747e199403ce8d1c74cf0f2fdd40c0934feea247351c7e3c4bd178ff7b928f52ade42862808cbcc38c7efa29101a7f0c8ba63224740444d0989f974441c31838ef05aaf8a84785565900e2562b0c4730cac51004c9409cb95647effe71c229b8761545a37184931fbc97f5341470a5ac0103069a6c5190e05696e6ea33a86b50e389240ee0f91841849b1fc75b8b7b125e0d88eb712a1d8af4ec2197556ee60a58c98fa8a3316fa2577a81ef95afe7b6fb26ea3802fde9769f672143f4bfc81963d694b24c5158a93510f54727b311722546cbcc6c7458c910c5a8ca21710d45e703b2549e013c545a6e01225b2483eb35673a1585d958e0e3f37393d4f9a779ed5f3a5d6a3fa48f37b872f6536679e9c25b7a5d4c94b259aba898cf3af7030daef46b2dbe91a2ee441384c5c6aff11ef0e7d2e4ee08b3c0077f8d8e49d9c63549cc0d59045d44922c594a1da0dd0db79252f592560ba01c163fba2ea4b24bdf719bacbeb903ecdadec231f88d537d46d43a622754af26b991344ced1128a0a5cef1e007facb1e83421222937df52b00c77a84d687aeb465880ea3dcd6df5fcf61dc9aa8a9c2a2752296faeca2675019e687f3f46bf3e8220c8d3eb97b6c7b521ba126675d1b25bb2ed90395127469ef7386f2ddf371af7be7eb7f255b95e0af85ec9af0abc6ac1aa61b1fe0805bc4cb9c49a3c9e14462929e63d366352d9b21494e292c9d72cc00eef3a7100e21b988d8c5bdf35ebc370d89d469c0421435cb44914fbcf83d18938955cd674e11895c45f56b30f4a86ae3ebbf7795a14de7ae5f94e988200949e18314340a15023f29ecc5098a835b57cf43011aa1cf0f621db51e0c3b7b2fa70f94f99ec04985d5693e2d24a625985e3d40414c4af40d647ceaf2de3fc3d97f525d264fb2f62f57510011f52e8ead7c09eb05cabea931753a2c8e2569ca024490f1bfa95174b199b926ff413d74c99d9b0174cc2a4bd2dafb06522aa27814a389337255460d6ab04b741520f81e576052e19f3f8cfe786e3c37c7adeb76af34e8e5ef897d63fdb12f9617ebc47e635e16a1f7c57a62dfd877fae7c69b1b6c9b67a29e588756b223d6c1e88d619a9dc528260f45e38a6f998d1e3833e890488cb39c27462e264dceede18a70f6b193b9b4e50624b61cbbf3da87aa8ab379eacf580d322e95f67f31625cc4b368998ac4580184084c6d5f84d887a47bd53ab2a26bae438ca59d81860b280e50da50e257e4cd905002cd7f2814a0896bc28daae04ed6dc393ed0bd01ce663b50f18865002b14d77fb0b6eb7511c3de50349ff5e5d88d65ad8d7f7b652bc8498d4cad234d34b6c4464b1f7afd128a53e97bb9c25ac4e047ba8eab3b8272a600914997280d94f82cc54b682515f5955a1ba82198891421d199ffa8d1ed044ff8c8c595886335e29801e8b0c81bc63ed3f1378a7e2d2ef5853ba588d777c54d1759ba5372b9f10a94275f4c1c36530503d117c7dde778d0eed0c5da0b40975fec041344b8a6aad261697bf7fe554b89c94bb66437656ee2ebab7e160c79ae7143ed29ed97cb4cf5ac4fbb954274aa029adfdfad3af501d196ad0616488cc8aaf5fb510b5c45a65ac4d121f93e14d1fb68218400fe0e0f058e1fb3a630b3528aee2dd7c9c5e31ce84195243810061d1654b800f4493088ee7d4c362702c66bd9374cd4c9fe277e0bd43c9cd9958ec5cc8b75ffc68d3f1affcc8796e621ee83ff354a9fe4130253f97ff292c6610c1aec85841564d35320b254523898bf8d573eed2e114ca0e2d278fc370ebdb00ce58a6b5c53023109523516397353065a33d6bffd519d969837fa125164566f967c48a87ebe18d44d8fdb208a1305b6dff10c719612cd1a0a84a8de3cde36703a4c87a30d4aea91f9d3606018d93809b19ff37e5879227b45e94d0a473c1383e02b83b8c58c41fbfcd0670a58479d32ef092a782343243dabfaab70bcf9e706269f1b251cf86574f1e36f37105965d1d1cd0f1559d56caae9d51e5778f891474e61022017bc2555bee22b47da8c9573b9eed6816bcc60e9e00e7afb3b617d7fb116c3a64438a55c5eea544218d13857c1ead6af3d6bd48dd773bf9a27f5f89d6d57e6fa3a5bd4ee55a288584fb4ab0ccf859fac99597efcfbfef894c5fc7fc1fc2e0dc77731d10275f8b190f266ffa2e4733d7504a89523e384d376f0a8c9e05a215a774460fb451408e63c19cd890dc8d42b684bb1bfc2f472da99aa6208ce7cbaae4c5495d89e13c67a5d355751b9de4f691ada688a956aed31b8a9e8edc0b15d9993050cd9e2c945b51bbe592f36e35e9a7d75a29e66c0241470dc22773c4886c6e4ad2e6d5d4ab3454d3283c32640de2a3262fcb2b9a2d333fa4d3937d60a8208650164dcb90c8329c3dea860109db1ca6059f214ee03af390e9eab341a91e04cb159a1a5c5f96691a1f6dfeb29286d4591c05109622564954f75b55d39aee8873e02c54116d966d215ce2b4b3adc1d3f95bfc2ccb3ee4bd2e647d8b28177304859b6246656da57780349a3a08f401871192f437c42aca21e1f2086480f072446ac871ac5a0338f32743a00a3177223df53e869f864bf8a71f34c5a83c03160b92bf0ef3072639e0b8810333aa8ff232d31bbb20df57a5db336e7cd2effb0f7d7da86ce4e5028c76e33ec59990af64630f2d0607a474c646d3bb12796cb11880c99500d88ed58230a732ddc617868ff4c937854f1111c734a4b719053c666b07b9f7e79f81b35eccb3d7bf280a09b42afa2ad8575361207144b05de4c44b60d5a309a15a903b9316aaccedcfb4cadec88a0902340fec8c20323575fdc9cb04ddc5cf2dcb4dc4a62c99b16b04510223f3b6fbf001c789c791b20f07d43e4245cc075e90d00e8244c4af04f46900d23a958b2b7dc7b6f29a54c5206e00dcf0dc10d35bb5293f9bfd049bd70e41525a7cac2aa95c566be906651c6b283e58685074b0f96168b8be547a5aeb3c2c54a17306c48a0e3ab9b4a550f0f9c1b510ff6fcf8227245910ee20b104f785dc01153a7eeee797980787e785c2d57790157ead5a95ec2e44b946ca596564af512a4f7fcf0f8d0f1dc504a638c1b885d98240986ccf0e269798e785dc07187a68bdffb7be2a1f4a43fd14779d39f72a0bce951b4496f3fed3e519da3f4a427e93837ee06384cd53c200fc803f2785698e0d08b380ec7b97d39acd9df0467acdd6ab59ffaf9c0777006dc361d7ab8227b6601979ec4d9e7b8196fab31ec1fcdf7bb9a6d3310fbea1b554819dcc66df6bb5ee76d017f39e4b6b59bb5968b22baccd8de3e2139a9d84a138e65c716fdd802fb6f3f5cf5f2e8046152c3fe5bcb559209adcecb410b1cf33e4e0bceb8f6b480436ecba129acb1d0530406cb574e9dfacbf3db8f2d7fcbdd7bae39ac5900f7a12776240ba4f0076bbfd6efef0d99ab66e89743106c5abb77ff08d2ee46155246b5eff94691ed169ca9fa46ec4615528673e086ccde90d12ae3f4dc9f5b6b08b9675cfbd8617d0f1019a967b4529b2f1e180c36df41b9effc461c37244629a967b4479a837986b84706ab3ade10b0dc26b0c391d831019a7faa260310f3c5f452e492f23d267008de6c299f44519e944da547d13a44390ee620bd49eb10bd56289541c95166a51697dcaa7d2604898d28c827bf05d4ed3f83cd176e9eec78853875afd553b2090c168c1d525251909a4d3171d56422beacd462cbdcf60a17e20bfdc2b0e7df0bce50d2ce027f2075c2448b2ef3673b04f28043a5da95a6ce94a6903f83820c6000e9a3a5565a6bada33ce106f612246d693857d1aab112483b461ad73dc21a9a2548ef5ae49a2f244d3f37a4e7603f3858aae6e131672a955a99adcc5696d04c78c7d332bd7f9d6dd23b076b49b2a76ed1892e58c02297cb8be887b74c20fb0a38554b318962d3ba755fed6153d58d1888ff41b56997b9215c8c2bc2c966cbdc34076b7962eeee9e2140307d0fcc55a926aec291aa51d54ed5e6cb8ac74a6dadc9bec8355b646bc7385e69e2aab9520be26181c3151616cb0e5fad30f1d58eafc21f4c2b2ad18f97ab5c2926cfcdc5189ce1b6158ac9847202ce703a0421bbd81ac01bff87063fc8f397c6f3f4bff7fef36fe4aa1dff731d9a70606912b97ed01cc57d9fe9379cedc655608f0823559dddc27e614b9422b60c2d1696b6e5892d59018325138a090525e5f4c539a7a9444271a65a74a9828e4c480cb2276c06286680cd10dbd3230416a3ca757895d8fef7b5fd2bcdb7a564655f79fdce4b27754923dd3c9f5d732802c251a136bd2538f499b5892e2f74f2f6a670441232f9a21f3eb6041264cf1fa99d08535bae927673b0f942bfd89eb08b5ad99ec03a2a2b1ea77998b0e70c007b3e7d010eb79b227785c593027677cf27caf2f9f3aec0a42fbde9e96f395bbe2973343b5b7e7d9b3396a914d5a1076e6efd7c8c91488c715aed7f72c8129a3eed75b5993ac3f52d676b4ed5524c5ca76a51c0789bb4e84769b443916be69e62e22f269d6a42d230764001cb959df982f2292939559b2d283ae579f1455f8976111c579e807f87aba90cf00b70c60364e3970c60c00067bef794e030ca20033873ff62ef55e0cc6d69a1a1067086fe75f922aeef02ced08f00d836585d0000007046f457860c7046f44e83df415fadad75ab5bad9e219eedf3783c9b6713fd98a257160511b96880ebf53a8ed6eb755ce83fa0eb755cf883bb2894c4b5a391296802d8d188ce16762782897244afd9e2ab0004009ce1b64f8234dfbb16a56a0b18426e90855f8a255be6ccf7b87c158548f1c3572a2a8f7a4f8be471991ee55134113bc841fa1211a537993ecaa098265e79d4afcce6cba9ce5fa1a1fce91d90f2267d327d8a3ed59447d1a7faf9a7c715678ba7e52a1f587a6040c4688aa4faa55aabad9e9b0ab21e580581aa48c6c50dc8560fcc57e18a9298af42cfcd104f115f492020259e1bd00c3911c6862c1ccc5622b1257aaed8fe37c9f6f7acc039dc806cf99f1c6eae2d3fe460a1298738cf00c5d6dae12bb33d1f95775091cb3dad3d5f52bc7da58338c0cdc1a2cbe44e3ca43ce97b4079d33bb843a9944d5924ab54c09e9887f426d2979e126122620754e7303dca1341fa124a3ed117bd644af944f50e22974ca502e662dc1057d525384cd54e3f53a1699f50f48c02c72868365b46e99b6e4c34fa5f040254eb020e0be6779e56840110baeb7b5a40cc4889852b6cb41d2998f0d8756bc1094cf54acd0938554b3199dfa21361ee9e3fc32bc2481b72cf37e144182f725dd7d159cb5d0a2e14d1992f2a3f5f345bd2a59a4cff95da6cfb9b55f20eda1ac246e51d960b51d85f0ead3733a35ca6b3081640135238429bd64fd5e69c9566ba892e5567a5365f2aadaecc95dafdbe385f48251836b39461b0523bb3e5fba8a5365583c18271038395aaa56a2926a91d183b60d8a498a49aa47660ec806193aa895c9e3ff50cc0ade05aecc962c3c59e7f572bb5e89204cf170f6cb64ccac1529e0eaeefae1fae87008203305f398dabeffdb9b8f26014f498207245982ec2d43d6ff7fe4244314a2db52b4c8a8043914b94e3abeda528c755b526726ddf16fd788982887e8880888288602217121ca66afe97c3dee23ffda9b7041c7a60a712caa3bc89a463668bcc717a92038838b95e22e5495f3ae91a19d7618c6591cb0730eb4907c9daa50f371e5be620b71ea9524ed57ce03055dbb5d48eafe29e2e2c725195ca67a1cf3b82fda3af4222d0b7dd784ac0e176e3341fc07c538eb385012ee333233814b94c3ba626beaaae174f6bb6cc9f2fa6a74382d44a4fd2a217e800d2a3c4d70e9d09cc646ad29a2f3e6bb5ea109316b9acc0f5c3546da5f6c2404418a72f4bd574f84baa068385c49ea99d3dbfb664872220348b5e712562220e1157a21f51e592e1d0033bb9c90393dc36dd4497f974ab764c51aa7184b6cd962f5f8c2fa68fcf2121be98f4cace6c995fc249d02b3526ecf9237066a596041c8a5ca995d9cf16f92a6e06be35be187a609e21de323d7330ed815581c395d003dbf34db508b303840de6cad3f299e926c2d44fd52ecd76bfb647a9d836f5924c676683f7b436f784e0ee43918b5b028b30574d9046b4abc6d99e0e7fa8b14db5e8e5aa29fae1aa22cccf21b764cfe7442ed316619ded50e4f221beaa315f5199affcc8cc57f2e7734b7cb5d1b2f015135f6d7a08b96776b826dd0e5f9d5cc3606d183b5c35534d524c7672aa06d26c7b06af08963b14b9766d8755b69dabedf997005f686d5430366ef83e32c450b5cc40034b0d2e00903123003456540480b26100ab97530d02c0d8b881563b5d46fc992172edf9272bcaf15598b256049b2f30b2f99a0109228ad1f67cd111d10c47261415d953a4b3e7475b69aae62bfff92926be923e98612672390517a6308525b166be6acf1cd6189bf3554dcd8cbe6ad931fa6bd239b9d9229920e1944e3aa7cbf8fa31849be8104ef5498738f51072bb8ef209b3c8daf32f126c843eac46d81e6328c72823a4368a2dfd694fcaa53fc9a41fe59317e5d187b2e84139f4f27b8830a5972f5f1186f4f2dd26c29cfce8e5cf9c08237a197af954d68debbcfb79be1b48911d65ad2501d8d1c8133b5b08b94f5c11c6fe7cd0f62148067b3e88fb10d4853dbffb305464cfff781f8a6cb0e77bf6dc0f4560d8f3c1efc391157b3e073e122eb79190428b2e9fa739e526ba9cb83c2218ff973229f7105d5e6ee3b399135de48332bd892ef2f109b6e77f4e5c618d628727ae3d3f49289bd8f2bd1cfa115b7e9743bf624f28b64c62cff0eaec69b91d52fa328a3d2bacea9062b1654a3e919f0f40347a2331bd9939fe9939b3e999b90d05dd861661be2d5f5ba65c1d75f65661b41ae7d4b4e6728322eac8978dcf664e486f4e39783bee90d2a47bc20eac841e60b95ec7514ff88107e18f07ac9e5047b69e9008bd794210bcd09c949ad252f26ba4a4b17ba38c6195ede8e56cd4a376fc18cfb54937f0a30d4e3f4481dba3481404e9a35028140a8542a1502870a324d2959148596c97e19ce8e24570c8d560c9be2faae8365f50aed9e2ff6f32b1509605e620493319311cded8ac0287a82034a81d5d056e940bf59a2fe195c54833948b8672b16c120d0938bcb10d045b4617fb753bc5a20b69c6dabe371d71887625dd09ea30b7f717cc420cc16d8f2ef7c19ffb12b139195deecbd805c1e6debb7f3d3fc5224cf720254e4448b39c044809d04ea737d1beb11b7395577066d3b788abfc51f9c65c1bd5456a6ecc57562f51c45755d7e02a97796ecdcdce04f9936014317e4a0d8e321920b1c36f7bca875461be442e87e7dd1c656ebc6e04268ab8c00af302295c3096b471c8175e395e0631a10a1c991b2f37822b90a0453b2a7001059bca7d5eae4c9cf092b91d1740a8c95c8f074eb864eef77999c3d1086248b2231356cecba64fd2c48dc9f3795935435e01451397aac6ec018e327e039913663261d5f1b29c89e1092f998b8770858dcc051dc1053832371464072f992bda81c9dcd1e7654984255e32f7e4f3b2018a00024be6923e2fcb2048a125734b9f97bd072c09990c0dd68e4be6c67b729818764ae04cd517f545d0bd76cae1e938c9974b88d0646a64bcaf91b9f944c40ea4168226ee185dead37835ae5d63665861bbbe099ca9f7f479595ea10a3a3217f50428d064ae8a184660237357bad0029acc65f9bc2c8ff840042e99fb31d891b9f9f3b29c020a5c32577f5e9657ecd091b92f3e2fcb2884a02673539f97e5106a3a32574719a44f194a329850524e5106196440a9acb07cd6333cf46b646eae91b9997b2f5f30c77dee3e08e6f07ed33a76982df3bd1d60ff5a39fb8139581da50c27a5479027f4c0a65a2635b50f71461de4e20373d3b5d5f268409f46ecdd000b41370b8bb892379616616af3057cea740551453fb4596c6a77244be2b86a057125611055f46528c58101f8d9e02a8a2f6ad3ff4dbb4d3f5e14e050b6e8cb96af7cf8cbf7547edbb5296d4901c7fd3df81e23b8c30428309bcd6e8889309206d1853efd1d5f640d640b7dda32551d4a2740528732079bb66ab80afcac0d7d3ba3d50657d197afe8b6c99cf982ba914b7e008115913a540ed954b6a9924d7fb3d5860bdcb0e94b2054fa7cce3d4eb897ca00c75a4b8c31d6485981eb31ba2ada80e3fdc4546d010ea5a4d4622968bb46b965956d3247c18da930466bbe5899538da24a3694a26ce68ba976aa9d7680ecf9a726a81da81b5fc521b5217b3eaa07cab5029910c5634f161376886addd4b8d821eac79e4fa5dbf8aa74e3ab702b2151e211e388b8c2335745985ac46578c5b0c153888104136468020423126d907c481953b8af482e920e308de443da3865e1241f2ed7819f764e59b89fb2d82e1d6ca4174c78f7298b18383ce8c075cae2a4851dc3dddd3e937cd2c2a9cc394ea97b2f2d1ca1d2734e86f92a3c699183e42117e7c260bbadbb838a9d98c415764254cd15d671d53c6971717c45725d18c415490713dbb8135c5607360bc15a970ebc6413434ccb42f85639c7555607ae30c7b2107c95ad88aaf92fa428c4162ef6246971c59e242b807698637bb3a4d7c633120acb063924d28c44b255569550755e3bdbe511615c0971457ac2f29036304dca98bf5d1e7bfe25bde6939ed86a251bdab6d12a91b822bd6677d3484f905ed886f80af3a5cad88f42c8df2a91786b84d9a8af7cc5d12d76e4624f29ecf8a0f88269b39b317ac4c071d56c451799f3ebeee097167adc9d8fe5abf0b66e936f877f6e22ae3857dd0ce47542d417e24b7dcd166f9eb81061e29fb688366a1129e3c4c44f3ba75a84a911c66fcb5571756d002bd9ecfa9a2f98568b481b78e6d5fa9a15d9d3cadc9739c64d9863319208734c861cd50e732ce758d6c9b2e832bd9c245bf11f9499041c03c757b209f285f49a2d4b88394984d97e7e36226d905c52462ccbb215198b3d3fca2c857c644fdafc7c687bb673146ecbfbf9d7069e0e73133b44c592f01294a4d77cb93b93e49236728e94313f9c26bd28e9ee5019a29a40318172a17ea05ed165e6970d3290ddf2556ee293ec391f75b327a6cd97d31762cb4cda386d11654c1b2e8ac0b51317a4b0e7df29258ddcf3eecc971ccb39d206b609736ceee49c4e87a72fec896db89fa75a886dac0fa26d22ba4c971c0b02b69136ac135286259299608bb0e78759b62790e8323fc425d8f3b92460fbdaf3ab8eaf6c7e4597f9bfe5d34e74393139d540ac135d726ccfd0be6acdb3f9525b3996655ad8ecf9f9485692693688edf999896685398b1914769877f6b42c296cd064877ac79ef2e5ab10ebecf9831dda20b53d1feb4418fff95b8489d19241843a2ba6c859a2024b2d1c3b2bba2081e78eaf42ae365f246b32d9f259328b1b53e16a16c19e92a22fe5a8e71d9cf97c8c73ce09ca8f57059b7e38b70c38b3e5a38d7b2365d01f9df8cb80736fa48dcf8e94415f069c79b2099de39080458f23430f19e8e71bb7a89a2ff38caaf9899f1d492b28741a2e5f9d3c7d1a3f7c357afa345ef305e5e9c72201b8f1d5117f3981cd88cd283243e62b19c62137d850430ab5c319311fedcff6ec5b069cf972b2993aac3143f5e9f04b3ac4249d6539a3e4ac335be88b729e85725e9269aea28f73cec255f43f39d75c45df933313575196dac966beb034f116fa230e65513b55c3dba0ea743863480d97ae3f6766969aab98b0ecb88a4a3a7fb8b093d8c910579d009fc04e869cd0c08a93c3f3eb6cd31997ec394f1973b38506568dc5255e13b7dad1155e139f9d4d6fe6cb09cc5be8531c9ec036fd9b4d6d38ba6287279b13d8f6610a13299de842976c21e80e4f362c3531e08ada57060d061403784518f932e06001038a4d67c880b3e9005ed1858601c7e8c2daf3431a589b7e3823b6e9d3409f069b0853377d19b40873e9a774586a9b0d4dab9b130fd917caee767cdab2aefaf673d4b7bf691d767b1d559fecd7c85c60d21e2a87b90bc8d843dd6c7d5b23c2408000f12502718b2bec39a510450f36c036b8cad6a8536116475e495d522a4daf26eed4a50d1b080c5e760c37a684e058041c5f3ee0c65468626dfa7703dfd3e1f56e40eda65f9acd97d353d40e3b507ffa7b65f37b307dcaf7507a94276207394e8ff244a0f4a97eca9b3ee5fda44f53f390f2a63f559d23a5547a942fcdbf17638c4b43c09fbfae08f3f2fe64365bbc1f791ffae8bdc8743d1e4fd775a173dfd7ecf971fa46159e2babd13da107b67b5ff2dee4d927e5906ef92739e4f64887173677488797894df127879fbd259dd26cd3973bd185fe2d0196e08c1034604927c2784fbbea01d1660bfd0a0ac18526106dbe5422987a0e82711d881696926cfa206808280692818e8074403393907b24747365a19b56e8556395487c2925892df4adb02249922b683a74437549270b5cfd4b1f1f97f2e72d5288a7050e4337251d1616930963ffda79f7f2764288ec3074137e9bfe97c36fcbea5eddabfc0ebcf1466afad2f7de7d1a72a6576895d8a27d6ba74338211eaea23774b3e9c7cc18f7e85fd9115fe9f86ae6ab6e49ad7bfaf2ab1009981f769cac21175d3af54c195fa20c35899cc464fbe89b26a223229a5e35e3735f2333a38e51772ff529ea90effa14e70ed3fad78fdb9c7a7a3dc51f42ee53fd1cdcfbdb97fb149f881dd027c29f7b227660758eed14f5a96a1efcb91939e46f4fc4a667785ce0dac58d29f93532329fa696ef691da7f93dcc16effebe100c8832f8191065b6bf5a870ecec4e97009d64b0d821ab3c56b644a456ad07c00feaa98963ab3c5b94dcb2c44178f32d7cb35325dae91d1614a9bee3dad43c705749c2dee1f0403a20cf70c88325e290998f3a674491cdb72e1b8b673df65f9b1e6a9351084cb1828840eeeb9d942254c7a2873e4fea40ccd57a71d76f83b6cb6f8e9b483cef68f3bc7129cf62c7c4b1d39fbc480a3ccb462083868c944191b304801122378f860c9386ccbd43629403712fb677a6c2818632a8c352aa59433ffa0da957ad55700708fd98275d9f13f3cb2e08cbd80af6a9dfff9f9df9c60ca579fbd3bb87e1c37c2186532c5380e33d7a6fe63707015a70f00ea30634f5d836a0367ccd816b880abf6fc9f1a03aa4d5da5c30d356a74356c19b0688ac1610b4fc605cdb0413a06363b4016385fb570be92b1590fb705963a7f654716e73e3c5f369a51b6699728699fec2d6fb1a57e760d02cc81db368ff6b51fcda27db78fe6d0bedc473368dfeea319efeb7d347ff6fd3cfb7e1fcde0bee047f397efbe9f8f666f5fd0b775fb823e9ab96d5fd147b3dd75d37d495fe9337da794140fd536bad4df3ab0a7c701d4ea0199b2e9e86543eda8a51ed1b0f4d569c7bff5e37cc5b2e35f5aa74beaf92ed02a2cead01572dacc79447c9947c416ff24925042091ad08009269a984dc85df5b4c1024b195daa6856d87502b768fc5b513091c0f5291069fdbe42296128a552ea0bc4553787567a734220f4c3fba25e74892e52577d5f5477d1c57f0b38bc2f7973e4cb555bc039fae6007195dfd7bcaf9be3abeb235f970970fcf0b6702eac7b6de1082ae842270649841d8991c5208991c5e8c4e834e14615378adc88dd88b5b8f082b7048ef7f096dc41b6e413f36945801138dc7a70607bd9a3878c83ab9c9b19011907db634a2a65eb09d99ad2ea70550fbe9a3d38e5a6de6c5ce55b0fae8a4db6ef3af34d047263d55895cd17efa58462fe2637296b955fb3a53ee5200fe02ac731ff8463eefa764b69a5102c3f741c9a99b9ed3d1cc74251dfabdfd5ef4104ac5ab50f4f482aca6975285d8eab0dfe2353fda8aaa1c60d72e496bb01b570e36719021c8dc480ecbaa391d88f1d8d3c116bed682476b343ba3d66b3bd1d8d20610c7195f20c504aa30cb7bd9755dd8ce7366f0a02c4167f772be0b0c69e4de00238c81ab1060e525623d6a84258dbffda9b536c4912573458115734a24a471661662f766850b2fd238ded4e80edde8ebcd96147f7f6e3864f3c70bfbd03b8ed89e8a676c0f6dc739a08fb9bc60ee07e935df6a4c0579f72786fdfd371b648cee6ba63ed4dcb57a1b5d91375636f622c0b37dbdff6f0f10a12036261b6c8f6696d7c15d69d8d84d79df962b7f7dfc1ea93033822bae7640eab63d327071061edd7c8f4601dd0e91d74cc6cd93e9625824bb9a308541821a5747ff1f01d8b4085085473c895eff4b3467cdc60474e081176eca0608267048a2bcc3929152283628b2f08220085cc3c42b4b085ece06e07c83b41c8ba40e489c1e8eae064f40392488ad290279886608132848bd168343a39716287b6803b7d2f407970a08281ac7886b07c46820085954f45454565652508344ddaf1e2e405a9500f6044b1630a9ca941ea532830601809021321c8767455140215b210b610a488931d8d1881043418a1470d283e7031550100b00a32be205cb851e5c12488353bc6930e3ac6a7119c71f7f831c6e831fa8c594f8f317a4cc93ac32c9582e12b330ec6c1b821dec2c1aac0d4815859b2425b0162084f4bb6566a9e160c06f342a5eeb6d24a8f14190283c1669e3b0e26856cb0cd5ecf5770e68b968309817175eef099cfecf51997e78e3ddfdba42f719ad79c89afea64cd1dbeda6c90983c7cb54d9cd9c357be7d9e126ba752306a2a653d315f859e580c307df798aa6d162bc1de0ef6c860b3583b6955ea40acccb60e25335af1c9dff43525ad6307ae7394dea4759454def43a48295f727729a54aae31a3d68a4f2a5ff3f553525e45eb48617995d781b2f22991a2bc5da94dd2fb5796951c8b59bd6114bb529ba40994de14672a2415bd129cbe3a266dd22cfb137d2967bea8b866884b39a5598d66ba027b1e07eade9be1bdb7bde779da07efc10f7f003de941207dfa7ef4f2493a942aaef9f271273ae430fe601557690696a8c02f023d07d2e0f721a443b97d2c106d0657e024b9d90e72907cacc3cffd98ebc9a52560aefbb3fb03c14cf7777516db1ff48038eceef47d4597db446c71590c22516cbf50e4ec199556b3a835af4c4ab320389666db2b4d45b6e38b1a947c209f93afe6dce6a456da2ab3ffcc52c7c8a4fcfa99d6d8a239ce181dea2e6394faefcda6f3fdb276d82041bd16fd9a53835458bd5df6be664e871e0d36fd507aade842af9ed59c1aa4c2ea105751e9795f696ab84dc74c9b6bad39f7a69393085714d2b350be378755166fce7c01c9643a3ab3da9ddd99630ce2b03b46179ace6362676c034f3c883ef439443ace1cf8bfdfc099effb1ecce00c0802811e6ffcdfa766e30cc4f67cde7f99fb9b3d3a47375b3d6e8fd030db3e7e95cd974d5f1cb75a06ee19e39c50ec89433f6280022bf988c1155de6094cc9094c0cd861e4c88073027bd9e9081a58148b23f6a4ed4903eb657bce7f5984e960e49cc0429b86d974ba84eb534a29a594fef19a29a51377f4e1d1fd8c4c11a37cc5fd065efbd9f71c9ac0afe0e73fe2006cee2fb7e54f02666c70fb64b9b94f91fb93e5beddb7811f317e077308c006b9f7bcdc1bf73897a8c0e06fffd11283dc831f8d5286b7fdbb4bc3e9215619bbea1bd56049714cfb7e628c3af4480b6a2c16cb04371c21140696198bc582818d1f5c018609708a29765e2c160b05045002ebb0d448820a3625c4565a2c16ebe6250927a8436c7cac20b14ac20e2a7c2f168b55820184a12bc285eb86c5621d6103173858c762b1583602d04215428dc5621941830add0f6ec662b15210001d256a33a600953082198bc55a818c201f2d642c16cb0500c8a133171f1879d5e0c41cb2d150c512d7080fb61b168bd58219b6a832d8582c16eba6e505a09112d4582c160f150abe2d662c164b89185514013e41c662b178c8e0855b04c662b19280810508e4c562b1705249b00d6c8bc56225f1820a21a42ad3b0a9042d419e8225840a99018dc2582c96097e0a2328019c22892754168bc562018b146040e2085860d1152a72b8d81148a44065054870020c5052ec84a10e618112903851d1032262d022c5b5c9ac30010a50a85822d68211a4c024c5cc0839e0a2348326f38644058e16e689144d7a608b80a4052f998f91912170c1c59260036fb158ac1488a83042f4841b168b9544a80bb8081858e02c168ba544ddf2415308d5b01229701085198bc54ae2a3848e0a198bc5baf144117a02c662b15e0012810947e40a47bc582cd6cd1784214c90b4ee131b0c7c48168bc54281f79a4cacdcb058ac127438f0ac405b2c164b059c0cb817c41a8bc54ac1568487273b62cbff92b0454210a2220845e80d8bc57a41050307862dff4b01e5c296c50c168b858279854e960425375e055a84da922dff33818c58624c4d9bde1160fa71b6a51412852c6cf99fbf7c3232a4a65d43a502785cfa9766fa11f420a66b1ca19a297168d69ea8fdb14bb2e37b31ce5c50ec199d50c294043e62c7aa025bc417e24b55416c8943e2d72de2aa461155b1562baeb031ac4c360d624597092a22b64c9a156eced5b732d939ae9ad26b8299d8f3e9e7568491211baac34c03101332b7a2cbccd9f34935d2ce4927c25cdc8a2e399a5595dc18e3f4172913bfc6a5042695f1a91730f5029e2fb79c744381c4da33c4c518611cc554229d6c2f9f7af7033d9f0f44df73cadb1c82bcb0e7dfc82d4405c84f7ce0491285e1b369696464ef6a3a6102dc298ff281dec3715ff3dd2928a612e964d30f3dcd5727ba4cd187f2b2a28b0764d4fdf71a892cce4db2e783f0c7037ed76382a45d1d4a98fc5e1b841361b89f1f8dcbdbf7aab0e8227dd26a395ba9876a92495e2b6e4c1de053adb5d6d25a3ffbcacf66d5be115b1bac29096270982ff4ebef5023cc22616f52bb7e7e5755db950066430d6b43dbce2aadd67c55c3beb0bd632a0940add8cdad919dd37dce39a70ee3b6f4ba15f8611146b5a92ad636fd9818e98e1d3c97673e80ab24f731c13878514c8ec3f871cc5514c7366b7fc3b24d8b60fa544a0f4d9409a6541fc0551446a90a708885a03bc4786442c949dfe61857d103b88afe1138c4308c87e098ff74296bad307fc1b089296cd3a73818c372eb93410cd99e42ac6787ea3855e22bfcc19f8f473e7d984e8cc206cc28a51824604691c51cd12175a86ed489baae8b41221aa1483a64d931b29823313aa5528c2c06c9f572e86d46f9ed87af423a943b84f2e0c71c414141f9181d5f818ff2129c41d112c7286c50321883048533abeb920cd7d846e1cc170e45a370503848626431486cfeee0e0ff434d8813148a40cd0e66f834e38a983e27526922bee98e24ece7c9938238dd224cf217dc973e60e8af6b467d221cb9e38221d72231d62140e09c7e341d121f67473e7b97caa45184e7f4ac8ed14bc534c3be5637cc91fb2ec14bb515ee79c636cf9ccb282f2db5f52f6e772f728374aea9eee2f4a5e7923f23fcbaf7c0e96951c59e7d7a79dd93229f57dbd7216a3649ab84b25ed79afeedb95de5f8234a5f7dec11c4aef3d0a29db1d415dd2dd2cba783c1e8fa7eb4e3a169309cf682c6eb708e3b5d65addbdf471a27c9c9ce72412a8fba9431616141d9ab48e7176b97b3ceb682c579892606db767bb3d21f8040ce5b84f44886c9ecc6312562b7648ad774b68b5cedbf1d5b7c3579ecd45e2f2f0d5e9cedf7e802f3f46168344da8811a6f3637ade5e5b7eeff9e86d6bb94a25539dd932b5e967c419f4eb72b5d9f5e963dcdaf7bcb9bd0e7cff1bb2aeeb5028940e7fb0a00e1d5cc0dd5d97dddd3d6676d91fcc27f7ebe594b7b9a6c807d5effe46116923e6ab2a6ec87c6500d6ee72b87bfb545e86296ddb1b3157d977fb386f4ba86d941d8d2ce14817d807fb755325bef21e9c4b401dde90edcebb5b23e8a24b23753cd97326ce9e78f639b3e4385b481f4e9c957caacd965922b934d5e962de831fba60e648ae28437acfa2edc9fe5e56c9520685e399155d482ef7b87b46277710f422e8271f925c2a79165659664518770741179d6aa5ffd34d84f1fcf43ec4b317f8de87da664f154d59b389aba6687b166daf0878f4e1dcd95367beb84cf72ad9655272dc289b2bacb21d9250382457e8e5849e923d3f94c38ec89eefe5f8ca0b02f362bef2bc229ecc573a9e125f81b325becac25760cd63e235f15505fdd6ba11bb5185b4116fc8b61608a43dcd09a1d45d7f16d583eaa07068beb23bee4a7c9585af74e8cc579672f973d55c80ef916b2cbbd8de8b00dbf75ff91a198fe7a9684faf681d5f23d3d97730a34c51f62913e05035012076c8a1e7efd0c305ba9f8fc397bf8c5de57bd757d530e386181d42abc3aa750c598adf30abf6f1bbffd49f9f3f3167e23e3af0e7c36fc66ca99fac9a2d95f3d568c71742ada574a3dbd7df81da1faeaa356266fd1e7cc5d5b8210601beba5f7f075f755f7fcb35e419aeaaf55d55bfcb2957d51abbd6a7fe9f37623e7e6ebef87f9ecec7cf83ffe773f87f749c58c72b3fcfbe57c3e65086f43db0666f19080fe85dbdc4e7bddce994abead75684f176fdba635936f3657eb5371f1dbd857ecd9ee3f4a4c07ee270e0389b32ab359685ceae7f0004f450df0240d4a864d7fadc66b1fd51dfbe626881ec8a4df3657e2ccf3b25e27b4be008ce1e1a70674a53e0bf7f3f128c1fc10ce008e9ef8241c82edc528f7f8ccb1a4dfcb9c30e23be37c23e1106783ec6165c896cef9efbcb9d78f8fef339beffe81ce0c7c95d1ddb92c6fbfbdb5f8d23b4e347588de108d196f0e8185baa0e2b911f6a6d3b08688de7b40a4260dbcebf28fbb465803f346af385be7d1a3b026009c046004794a889061611a6236dfb2a37b3a50538a4310b5d6c40adab022ce30007d0ff681ab3d96269d0668b05b592c052ebcc689d1b1ce61d6d9377342bc2786f5f171161bae7348e6e6d1a4b68d0261705c01280cd4d0116006bbec813179bd9629f73b10969cc4c9b2a81c39b235d582e45b8eca881896dbf06170d456cfb3d89065222aa403db67d8ba3f828914138d1c5fef61ef50727bad470f96a7b161a335759f92e36beda68d07c00f667a6b1c406873160d733020e69cc68cca40d2f42b5ad13780b4276b1ef160a7d29355e4ee0189f46ec4621005b6cfb01a84518ff1944b6fd192e36930adcc1a28bfdab69cc48b402ecd4786d5413db7ef862c5b6ff22db6942e566db998bcdcd3bdbfed4a10d6ab9d8805adb565874215d11572a37aeb26f9f348b30dbdb154495fd90b4646b9d23b67d92fdd12cc27c6f63805a19fc2f6faf72e358a8ac206651939858c4f070ddfc5904dbaf566099598419c50f69d0b67d1ab3f9223f00b50833df3e8d5884e1debad8d0b649a2d1b6756ebe10d9d6ae68b0ed87a4552bba8431708436a75f62d1c53e65010e69ccb6fd3e74b1d9f6b9df322d546dfb1e10876873fa66dbbf79dbf7f4b6dfbdd836bc3adbfecde1388ce7cde1e4ae612ff1d1c5da69bd26f04721b05213587bfe8deeeeeef5d2974e79b067cc6c99b45efa43ca98fe31f345eafc9036ba2652c67ca903a33f76f5083b80af405856aad335f940ef9aecf9f6c6f2f0d5e8e75b1cc72942776890170592e32b3ae4061b6aa02f296173c69ebfa73749fa24cf9d2694355be68b32b5c91409574dcae393290eede1aae9385267beb80f6f99ef3819b55335d830c3a58e9452ca4a5d4aed8ee33dbc25e59c82be8cd33d16c96fce0da7d31860fbfe110317b6abf6816a1fbca6ca0fdcfadb03375b7e8c76f30d17b18142aced6a572d205bf215a50fd77dfa32477a3ebc856e9dbd52578103a511e8d0d5d0545da34ff5ed5b9d81aa372a2e0ef99172bf7d0efb95d35b7c23acaed1e9e4289e2fa3f4a799bac6e2746f42ad5649ad3dffde1bf6b9f9127a7b6b200856f90175f03c200d57ff8260ceb47ee04cd5de5f9abdaf44723db2d5e800c10dd0de50927df8acbd11b3bf51f083df7e8c3fddfeaba0c73af4fd554e8394d65a41edc3f6df831e7debd1b7379480b356ef6fbd7164b337aab875fb5baff6617bf0e98797d3de53aa69cdf44efc557ffa46151ad4a78fd2a7f46fc46e14b120984b54e00b3e08743f77a07b753804c5568751f0e81004cad16106bc6ddb364a391c7acfa2ff64efed8dd89435fbd94ffb50bffa9ca63ed4b79f00fbe09600f03f8d93ec59b321fdee534a54dcffded3e1109403752837b8806f5fd003823afca1c6e42b677b9de5728d6db5d6bad9a7f235436bae475cd5fab8e9081d9d3f846f99630eb1ef8f9b3e04a16387740fe1a1d471be2c888c076d0b6047235600d9467426e8465a3bc68e46ac0067fc25e8aec3ed3ffcbec3cf3d08f4dc873cfff73f1f1d5da541997bfbf33fedbd284813d66cf99bf6c1d31bfda1ebe6dfa882d33ec8df7290bf591deeaedae3f6043a408cb04267b65d7b4070685bdbaddc70783b084adbb4f704a6b6e5c30c42ce3b93b41b234ee8ecf0ce84903bbc331a5c4e92c6808f28e5f893669bdf2340ade8622b88067bbe1542cef772b02f39502bba4c1c8b2e73b6d19f3173dbd9f37d7651c4558c62c896d2593bb47fd2818b5b9f74d87ce0f4a6e3766abad1e2c654f8e2061661e402eaa743b93f22ad4ae4538b2ed4a6b5e9187048029faaecf92a32d44e7429e56caa52ca6182ce51916d2ae9df27d9805adefe72c482be27437d410849ffda6c5a5fdcd01134a1879126b06047234c803501891d8d2469b2eb8e46927421092d8698c60d5c2131c6cfa30d334c2ac9c9f74fcbe7b0affc1d05f1e3453175292931e5642bdd68cd02cb984e424e2a89462739ca7848e6cce7748daa6d9851eb90cff471f9db41ca4770d3423020caece87ee69428633a492aa5d6617ad781f2539f648d8cccfcaecfaf9a4cf305071c623366747a87534ad7e919ff362a30356d7a3aa5d4d1977e87e8497f4f59e55332ea51f27c53f6dffc46e5737cafa275eca0be8ef9df579de33e4aebf053fe3e25df47b9a71de63f57024f32e84719bf287f7608992ef8017d9e1610b3853eca34aab10eb2a9fb96649cacb1fa81f36b0501ad74da1a2393324cedd495b55610ec2af39cbfc97ca3c89634c6e946e90d99ad73524ae9bb8aead3d438e68e356fc88d3776de88fb68b565091c865ea197fdcdc57d58f868aea2af371f46e053fd9a1da67ed49cb2e13ef5238584abe86fad2d6f3eb6561702e23d87059aed5248bca0f96a7a1b28038bb88afe0b9aab689842a2f582369b2f2f68534415ad60ac7e953da569892b57e7d4271d76d5277dcaa1fe642273d5c9643ad265bbebd73abf3aef0469b6dd7d8a9d39bea04d01c67c3ea5d53a1dd6232f5f4dd311d3cb5554da0e7faea21f9a5ea697af2acc5715488eaf4c434c3193cc74c4579d8e125f2df15547f395cad337656162e2abd3e7ed973e1c6d1521305fc55de5d439beaa1a9772dc71062ec1c01c561d958aaab8de6a6f42269be892e32ab94b9fcce950c7fcccc97193fbe4d047909b273fe709f63cf740cff3bc13cf031d854fb497e77ccf7b9d0aceccf927390609a7f2368742fff99823a1d0e743a10fc7a9eccc9698fea1becace7cd95ab385fe89ca8eca0eeabdc94d7a75c85d10a54316959d78bdbbe3c62091f555bee6cf73e08cca76238c30bdf03d411ca623a24ab5e5b929c883e94514b185fea515d70fbcdbf47eea5065c7135d2fa37ecef9dc9c13b5694e7ebe80c5660bfd0eeb08ea1077ddccf2c118fd44230f18f33eef45a3f7e99dbca783905d7c5e25ee2d6f1b94c317b24dff0363a61118c339f47a11c5a62ba093d3834c361166dbf4f3b9a9dd10d44e21a8d540a7f772083ee84f7fad0567564c1ff107a5f227a13fc18f4b0ffee9de74b3f697eb7e72a2e7445aeb096ceb747214d31002bb7e08816d45b5876d3b9d32aad56ab5ee76271ef2ffe778f1fa8d78a1b596208d74ea208d4f6e524c411abab7afd915a4a97bfb6bb98e7b9a8d1b813c1e93a766f2786eadb63d9e06bd83a78b3f25100cfde72474727272123af9cfc9c9495539d12aff5151895587f793eba3e421e43ea927ff3941f993ee519f13513f1ad56e5853f315c1d76fe28f9bfb237d78a1f0fdfde53e0b9e78f8d79fe35febfa39f2ffed367dcae17bd1d37c5a747376187ae9f9a3e772e83db994b38915d652feb5fcfc8a00cf9f54c4d1cc2dc216a4a116c421eef9204ddda2bf9cdd44bf3d8d68fea66bf6fcaa75f820d477286d4f1eca9ebeebdece590bb74ff99a41cf799ef6c17ef712d4e1f45d376f08acb5a1ef3eecbc999b1b829a8762792f8720b82100fda63b500885fa988992f13e39fdc7747a120be85372e8819b0d3a3d48089ea15c8f14814fa59d91e56c67c1997afa2a739585a9e89005656fb00ef1bd11498f478a3e469793cfc23a8f1b9de490d2b6482f91ffcb1fb8c4d34a4a64fdd970d324fa6c3e9aaa5a58927ac5e8ab0e495c82ed18a78d74c862d22f683422d1875b8b7e1fad3ee562b74dfa795ff8d9ecd2174a4a6cfa1f12dfcd67f3f1f870be1e9f8fcff5fdf8807c7374f2a3f7bc4a93d0cb659e1cf728c73ddb37b24a3ba52626966987af446f7a8127efd9d1e7efb2f71227ba801faaec845e2120a19c50105761fcd6c657204de7bc5ece255774a1f51be5afcb55c7ccaeaba3fc8d7e8ebe7b1b0a8574f84337d2dd4f6bf3fc1bb11b456c066f5471a243b94fbecbdff7a3d1f78d7ed475f5391d0e41eda79464f2d5755babeb7ee6fc02365be8ffd652d9097d119c1f127d129c1e023267bd210bc142b19ad0105fd593af79f42070e624c8cb55b4e6f952ce2fb9c098cd295a586b455bcf224c7dfa5f9e2fe266c6e17dd52120aea2a33fc9717b46fb93c317b110acc4c4a62a3ba4a71f02e2ab1c5f79a02f3dfd50105f959e7ec91561469bfe68e48139e7f4de666ece59fab06683bef4a0bf5d07ce90fef4119f5cfc22cf8b1e7cd47f547c986fdf9ba1d02b443f444343360d05d9346f3f1a7dd527ee47b9fbf9a3efeccfdabde9bd1f6acddea439711a87ec6277f3ab374bdcf7537b7f9a799b336f5f68fff4115cc0f753fbf03da77d08fdec72d5d99ff6425f7a151d403984f4c94f1da23e1f4ff578acc7ceb79e592bc61873f553aa28e5453991fb99ef6fdbcf145b654a4a187a559d6df5fdd2bddbfc084ed07bdecf4e873536dbaf757bd3d71cfe50fa6ebef712d401f49e3747ef85de67e0861e70795cc0f5c3aa331fe53b1cb28b3d846c87a5dff40fe10f55678fbef431eec97d2fe84f4e59e21faaced680dca017e5b85332de2839c4c0ce2ebd29871e70edd24b3087930dfa12295b96dd31060cfad0b2406f6db575eb46b98233a3bf1b4823bbd8b576279e77a26f543112fdad74036744577ef5abdbf6b19e59bbcf7576b656cee2b88aca8d2d8f25feb91cda1e9bbe27c49fbd992fafab6cb6d0e7388c4da6ff2ab3379bbe65d91dbeb2a9ff35a56a2d3169b6c1edce9f59258b2ef4fae76501e7ff9f2f68a1227a165d68e805eda3957022cc7cd3eba36dfa2aa9ec74f4b34a36758eb3255a2fc7553404a47ecc0cab924d9f7b41dbf4b7d06b531ad622b2aac45776b6c432a94decd35ac45793ab9bde9617ca85c0b93471cf59b3e3d5b57bf1836fc4e73def600edc3df8393eba7bcf5f39a9536e564c13f77d5b89eccefe77b5c705dc79b9fbb8a7acbac6888080d6783e7f70e95fbaefe7ce09d27c94d280b5561a8fb5d6d27cb66ddbb60da4c11cc7711cc78134201aad034b3b3a50878ec675b7254863df6a8d23341f4768d32ef6ac7203038dd2e61338a43771e6cc9cd9cc6de46b3e31539a02bf04717c3240693842dbb5c5e266cfe8c5209132e4ddb2dc313224320689e7fdf7355f8fe73b8f062b4803befd5b59d6da4457b1ee87b8c62091323c461683648bd1f195fc4dda4ab7c0313a74be04a5fd648da2e296ce0f8e7e3edebbbfb5524afbe10f5f2883f2062ee06e19ca17072e800bc1907e1f7ef9dde7b9f9424db11b55c8fd79fa16d4c1db1ffa15a4f9fcf657c65de5f7c975e6aa5997b86a565a74559d81f2f4073376957c85f275e3c8be21dbf43970e6461552060de58d98a471dfd8f2497e0ddf90b9aa664b09d25ae3818a94527e0c1229a594523ef87d20cd66adf57ecb3e8c386b37cf7223eeebf6dea85adfa397d9bb5cd06adb2f6d1b8d3c2f01dd8f3ec66bbef2bbf6afec82b673456d7b2dd1b6d7d2ac8abe6acfd339a59c2fff2bcde6cbd54999916627b390f7dbdbec79993d502c8574129aa018a743ceea104b0d8a555ac77131b298235c842d013d08b6ac235b1fa66487430431f7e891481bdcdb217cabfc48abd84aab49aa152f5767b6a83ca87b10c8ea13e8b7f7be760fe2ef1373c472252af0068234f2adf6c1fee83fb99d504af6bddf2af71ea743e9a9b8e2e7938fe583d2be57ed6fdeccedea06d90db27483463a068994e17d476363a64a163d2a8fdeba54625c8193dc97f2863f542f6e09561d23d3992fa51c2eaebea8b40c34b7518f32443300000008003314002030140e090543c16040a6eaa28a0f14800b96b4547250996749905308216210010200000000000000000800081770dd6657414439e5b47a62fec163048ec868cdbee666f4c1ae83eb54f27baeda43e9dca789a1ff260a4503728e117a7fe84a83e4a6d628e857b399e57c3f891973c44e82a523ddb5daf096916ee57d4d8fd15195db7384fb7c146eb356c51331b7dd4215fc6c0b60dbd97924354615a91efde02e7f1ed5f699201836a1b00452f6ad4969d036ccf4e765ad2536d06d6383fcf96d628de2b437615f65156caa0672af620a5e3b178ad0f85f6cceca2aa4bb2cb04c28a2add4d20db58d375c0659e3160740200ab33e02d0876ec708f1ec91f38143ecbf1c51ebcd023dc5ad0517f320688ff0066ac294909c33fbc6487c51dee974654c1dd7140fe15b6d0b5811ff057bff564a04ec218587239156aef0bd0512bdb8e131b47674553841d7473f39af62a0944ce9d8febdedaae55eb9a681ac015569a05769dedb75849d6a2a64f456da34bcb52e7f85d40a30ed57ee5afe080a4de10febc9cfbc824d46f776bdb63d282fc37d8a24616be01e93466ccfe29531f7763b83f2e431ff787c9217ce2d0903d3e8709c2866fd633ebaaed3d3d6a90aa95c5802b05b5e67532a6c4ec1179ef0fc62874686f0fedfcbcc0aa6645c44731795b3fa2ebbe7aa1bc973cf0d3efb51142d3d62f77d8e1e282a446c43400decce80156479eeb14e7e722cefc13bf7ecbcf5dd738f0b5a2f2b1e1dfb0cc84b1b050821f001310d409b4416cdc41795c84d809fac75c08b4f9102f0cc8eeb895e0b0cecedb594d841e14f9c7bdae5ca748431b86f55d41a0451a6a20e338811185ddf5dc9bd8f007c500d92415162f417d4dd504043a32ee756eb5771917366e3fab6c0144e986a1e7e21016528fc055f2641ed99ef55d489d6b804c773370e78aab2ee8306a34ef43bc75fca7d6e076308dc234b069fd0aa058d5db9ebd291b46340b136abf198e0622987fba560b880d4dacd274b9bc1f879e8f52e661ae77d2e6f9b993f8c8bc7a828fc34de0c0952578a5afa6b12073ae449d258358c74e913e0dcd607544852275becfd6bb925ac2729fc38f1dbd0cad501686568c7dc413e538fb6220f5248c8210834259829298ca25a7d1dc2426735292b5b87d8b181c41db100cf566631901b0b9e55ea92e95304858d8202a276779ee15682c1e06bb0e21489bb32aa933c26daa09127522faf6f9500e0ecff8ae7372054aea74422ab291753cb69205e6e9c3ee5a5d0eeb5df464a8baa5bf2d18fe0a12f76fa0d51446d955657f813726ea2d858a6d4818421efa470d64e1a3b42a2357b00acbd341c078a75ef0fae5e20858f8c7e42f74cc4264ab6edc860c023d0f3178a302c8b3258aa97b00edfdf3ad5a9d93b77bfd4b937e42964052c516d5146f9216d730e71ba59c22fe3be95d0246bff716fb5a3df316c5f73faab2a41e5d05ba29699a89034c0ba32a60610cd5ca109c78a6a7eb1891e628db4b4503f27fde95f5fdd689b74a3d05f27b9588a8b37da309378be1203a82ac6101bb88f45f9c93336f552ddca3a78a39358274800a70d2b01ecec1c0511520148be85734bc96fe6ef0a14fa3cca46190be3554def725a299459e780e7dc108ad93454f19ea4582ded452c9025aa0ee2f4a47f83c2c9d406b1442028d7d1e821791046c287777745bf8a0a70660ae6c0800c42abb46e3bb886c53e416b8ffd101383e5890681c907329f4ae067eda29d7780428e85ae19e7da443fdc84f2f93502e28d0544ee43f9956df3e8eddb45d1fcee20b0d5c3b9407dcc5f3117149d014bc74f0fd40bf8815d325d73aefc7ba7031e87f29cbdc43ae727677713bc81d07f6c97079ecbae9e6b8d855248b432322c65a43d49afb673128c1f74ca92bd4f005cda71f5811beb22127b4e616973d29baa07a67a65762eba8b9ddd553b5a4806642ae9dfac1b81864becda304b90e42a09e6c8ad42ac4b6c5e1d6b2aaafcb966af28135313e8e16024de16294eae8e8a61b9dea6318e3932caf2da287824cb9f3fa699acdab34f3c321ceab152baedc3b506ea6ee07d8a410c511414b06a8c508f99df907429b5a10e0d9300d9910032f5ac6a7e5a6fddbfeafe0524e46551958a44c8be95add495742f82d3fef59a8ec55a1167a85a5089c6c741507a2fab59d156c7739e4c3c003cc51edc375e2a2ad22ac27e18e66538828f0350af8f45931adcc03704bb9632c2c7da74913cba0e026d011c9a1b9a87c4c6e886b9078e152a3c984438bc514e76911f4541c5d92800f1254e890a95372ac6f62391b327274a26d3c09c8ce117065239424580c4f548786fa250c6229a4ff035b23bbce10ef3a5d38e4a3f72d26bb813a34ef4e7cd6480dd89106a57c39804f366d64bad384ac1e86de512cfa97e8e4ea8044e43f6eaddd399109ec42cd4926a054feb21849717d6d3457111253d0bab36ff62f7cf797be1a0119e014088939724abe6c954b22ebd13e6e84bf3d5752b4e62c0f0a35ff82b5a62c69bb625779539743b53590ea44a690f8c0be8931745f4830dbb56aa34303123d2361c179c2c79d3735a2afbc55797b33a7ad035ab151e69989201e28a7e69d93a0fecfa244460aa788884787dd31d2d214ad5e5d9fce61ce4f5fd9584c312964c238224f043559998343fa678970d3badc014b4b5d94a0628ce3970a6e78f92a3a275c18406e3e959f0ea41469035fad15ead6890595b29c0c7e24caac2aa9f70edd0973ec0ad2f894126eed9eefe5549ce154a38190e6b296386e7453dae9f8c6dc56d2efb15a8b7ad5d424814e22be55f4dc94aad03e409550f0f20f66bafba1a75d706913c75add5679b254f5e170acc2e2d26a0100c8511cadc906d392b8f583f07767b98408eac298a2a35039f06878671c3ccde242cf172d103c6d7a0fc117a22aa4bfec85ed44288f88ed0c2c1cba5c64524e8cc381f10d651bce4438647044511d203884f442a8781cfab3f485c981b317d2e423a982e29756ba1299fbffdfefbfef6f90726c0e6a97a1fd0127cb3fb5dd0299b6c887d6e267dcfa5f42342d67d4052a1358941efa9306eb2ba1a674a9580548dd784d05800aaf06473c388ae2c8cbee21fbde2ec0fbf197eed03a6a694f522bd7073fd2876440a1161712641602737df7d8dd8d1e2fc610ec20b4b42b822ce2f901302558c44005446bc5590adfca87d002cfb9fed81517a0d3d5c8b4de08950d6e3118cb84f52d7360fa0750b60786b2704824a01480c94a26cef3563506053389ea618b7040114cb83028b5a621c4424bbd9820b954384b0613081d251a51ec6b5b0b272187f7218ee647dc0fc0193f4302636914263189598f4301c5846f149d9434089f5006664430435c20e017e92a1113c6e670cf6a4552d035b2a77fee4ea41d8ac22242c3b0ce08f5886f04f358785b448128ee76875530e098f58a4db3ba9853a55643fe888135ff87c4e58b4d0a2c65aaa7cb4692191e8009c8fb29c8c2c032a66d8646538a7f9e8f87d709e42b2a1924bd2f7cc976df7e0111d8f108008c74272b9e5c805e150df2f23e4d272871b9d715c879c89efe474ec558ce9738fcb2a56520b397ca1da1ff179c3363ad2b690d36e22853a7691a75ea4836b3cf30838cf5ce6239a5b088cc28ecca242c95047dd445ef6e539956d120ba714ccdfcc1fb67b3b7c766717cbd5346340d13999cf9b9a8f24cbe87fde78ea1a09026d17f10d9a3c29a85e87eb22076ea736c1bbac45a279dbfc83b70b850b35cb4a9c4573977da570128c71bd4e8d749c0156a12af46a76ccfdd080e8d192474bb49901552aef159a885f585c33331254ee06704a1e73fc1e8417375a6d6f464659ff574d034d1d19cca1ddf132790b49c4d81a8250a88039f2f10a81e4a6c4f23bc304ba93acde85b82d6157bc56ab0932883eb9a4d02deab60db0517dd46c8fc5926ea975fdf82c56c835e5eb7602081543af45394f1a2ce9e9216d8a8c1e766e03c3996e6d6682950b6943d9f1cfad743114b53cb6683adc41315113d64006b11be1783766cecf94580d5fbb2263edfbd847388bbeb1fe17b595266388d18175a735994b34348e01dd62fef168845d64a942472599bc1a2c4173581419f920f2b42a2d675fbea7fe6aa4f24f211d5ca3c90423a625d322a64f60d4b4276a08ea49d85ade43330c07e40210d54b8c8a63e1d651546d8422795d6f0520d836348cfb431c39d35bcf5fa111dbd792cc14198a9481b05875b2deab1b40ac4203d3eb91b32aa5b9fa48ed5ffc8890312a95c7d3985d54f1d295e6ddb610ff9ee3aef46bf25111771dc55d6aeb8d974df1fcd08625f2f049c168dc797764f3f702ce9010cbb35e0a9fd3ff3c4c96865ce19d8fe7618e11ee0f550839391b8f80e26ba8b9acfd31943f21871e9b54f72ec67c8397317e9e90c04c51eda175726a22526b999177302abec3e489bcb70e6b718d90a6b234792bdde47150daa44b086219602e608890214ed6dba9c5fe6cb15590c3be1c3402553f4232c0495d81b2308303b69d841f0f1f0ed08dfccaf5ce42b3b56f7711ec88b0a79c91208b14b04a338b7150ae035432f2ff0143abce002fa91a35e476e62cc16fd18e3bf78a5e915ac75806323ea89f412caac00d8b4376c2ebe50c14acfda93b4b778e18ece9af8073c635dff7135355ce845b5b0700e329a656e40f60aa949ed7c59d6ffd260bbaae475ad5bab34c1ecad1e8de08b4d6800e980bbab39bd59f134373f6e54153a49f46d57b8e2a7f3cd1164ca52544542aa851efb51b8d2025c64b71cc95611b82e12e7f4962ed83fda40514b5f05f6eec7525de3b9835778308ed79667224c490bb384a02f0d337cd4d438895fb97a9f4205d968883a6bfa62d37ca1f90ebb4ee5e8873b716d298a062b395bd16064f4bd6eca1168b515e1ebedbe6a9317e947c23d37b8bc22955bec1e2dc41c6c0e085db6dbcc2330c5f6ab6610e9bd1cc69c8706d87f3b8a9ed5b4059ee0cd1b15aa22d6b29bbc059fa7b1501f6a24bb6d3afc0a8eb4fa05fce207f9edce17ba9d1875523a29726edccd20057e2bb339f0d412cf032f9318d9e33c294ac51ae6efa829d9d73b8482f3e3c1a3a3fb1794e99b23d3da713e30b60be65ecfe0b2b84f49606be1a4956c6c8bb171cde5498f26863075278b079191869315a8cdae104413ae0fe5ff629682f43dbc48cf6ccf010aeaf7b35ec75ca238694c333bfc277c8ab619d5423eab024d1c4d249ef5a14cb9c632cad658d20e84ebecbd82500877024afae031ae4c1f495374b009d90383664cb9d45ffe0cee2e95c67c30a4426f3bd02ed76f18e6a4f116d36fdbb70884f4f333b0740427ccc86b2b641af711734b8b9509e0d695bdecf3ac72474b604f118ad30ea09d58414461b0007a5618ba58f78e96f208421b1674c4cd35ffa41131070432e5f7f9aa1611a966e9627c755dcc53011e0815423a81bb821f13b320235fc38a862af917e18266108eb0bfb75490cb6a2757ad588a04bbba12d088fbdce0d32bda7953dc79713dbac0c7a4c8a9b9d21e578ed8493f413c59ceac2d2b778e9b9d0350512055b58e94d46967c4dff22de606499c7f1c3c19dbbd7673bbf446b6625a1b5357d0327941495b8d324588487d51671683b7c3a098fa05fe72f38318f0fe128b192f734d0ca2791b9cac16d0bf1cc23d150882fa424de9a687a94d0c6d1786af0f0c43c299894a5e1f546272e043b519debc744fd23d3d40082f32db9ed86ed0ad39df0f57d403455b65053ac62f7b50cb0c5c138212333f815ac50fb042783da0ef01e23371f407c01488bf2afa21ebe5e0a8212ea39d197635a781d1b99830683c83da5e94b73b9105c80f70d526ad4db9ac6779facf3bb9844d28f4dab88eb185e928fe65057fe75a69e7379263821611e9f4a68294217604df832f869f63efcec473bce28fd1c5de18b2909c7f5e4a280925d805e0390bff5aa6e2268c6552e10f2cb593848c8817220c4f3357703efbbcff363ebe911c5a9fb9d60e7accd4b222518bfb92b18fac4c4e69bbdbe89d04bd634484a7c5bf6f4fde118eedf19bf8ede6924001267ec68fd15df754039f5a131f6dbd2656061a8a806ea3cea4f18eb6b699fe568add06d5c132840bfa3b8db9c5209c7dc01ea4b9fa4acf427555c07f90f07e13dc9d16d27a8e32cd137e91236a76d784f985c94563e3adaf7e4b170dadcc485e4ed7ff6159f1c73bbcc39bea76459a62bcf616543046fff261582aa7b7af1fd208f8ecc3ee85e3edcff44d5bc4e74b4960bf7f4a0afd9fe133b6421abfa2d06b5a6ec4663f8bf31e1596eef50b91e3fe2a8f0b03b115ed3a90f02fc976adb736d8de2fd97275089266b1f716c71f87e76a507810a53d8a0b1b988ff000f8a5da3c374e064f353d92b629bf2e6a110187ea4125beca318d7ed68f60848c294195d08bba77d87912ab1e4e0f5550cbed4c8dbab41f112d0182071c14be18a3feb637c0731748168380054f255283ba032914ad3cde07cf30cdf87c8b5552663e26beab0792dedeea05895f3e228295595945112c8d10c2b5a66ebc5695d61c2ad8b01f3825403072b99f9c5908a309933d722f049811b83653af17d0fd5551aa0300ea68dbe01503f2c0692e1e64d66e8a26ffd63d3e411d346bb0bff02786120ed679e5fb7ca9fcdc9a395fa495924dc45768b2627fe73bb257e8b76c6c118cbf4acbddae061292dd9d06f6c533e29692042a5c85bbed06389d73412d4fa8ad20aacc77f6a478eac37d24e4e7ffef7ded3624be998f8040f0f4058f52bd0636d7a60f2458070f345693f49b276b9859ad04367026b84ad8ee1ce900348ba713bb0a146142026efc22034abdc5496e4e8485fb4ea75e78a796e455c56df965c59ff054ebcb054136711b68011691cd200a99af5b61211b5a46354655b2ea4b7aeed2939d6160856b3b0ad044d94bf696154693fa23c217d670ffed5b3340794d214de6748384fb5327903bcafdb5cf189335a938e284f1a2901ea625f7fb1b5c35ae87f38b5bf6221a9c5a36e21f4697dc8f2e58ff086e0a563d0442fa2eecada1d7ce23ad39e7ec9aba33d4116153af91b0060d96c46ab1ee8de75f6e4475e459f96d42d046841cf20f61fb8222523e4737654f9b909deee4467f1014511a0034d35e612ce6ae8ff69b08751643c61af89f23665dee93145ca748f49b17bd2ae412c3f7bf9957ebe319cd8ef63fb02757477a201fe44f8e2eb4e20848e3ee5c5e1f58036dd09ba2c21efc39e602d78917709d766d39a3d814e31f53a48312d8f88c9ae881c70a8b8a457e9af20bc049c48f4b15be2deb5ac5693360bc2197cf1d9ed5ff644f3c1137d2a608015f691ed127041a7ccc3b9dd8c9c046d27342cb00aa86d18ce8c7d145d078f3e1678fa4fe1a03f87e8ba5958708cd0b7d04887bd49c77762954e80358a105486cece805ccaa943adbeea23457bbbe29feee2197e58d8b5a01cae06e547e76217173ae6f02e8607e2e5609aa0f8ff7772867986b952053ac62d273d8fae30452153c1f9467427d113fc019a812b0e05bcc7d1f974be207cb1ab4238ca1d08e061d3dd79e64cc927f5107310c2fc76a98a4f536d68c4ae856a45983f35ce36e0890787d22ebb6db10e230deb7f0a99a27dae22ff23dcf471f098c78a11b904efa5228222794f14540b5f2233220e18bba5506d4ac46a1e5a1bd8be07dbae5432af8b0b4ecfd7c5ba3d754626853f9538e43d63f85ef7eb7561042a35730ad8384547c24d3da8f6d4790d04271e21dd5daa3df572443e4faf2f04c465684694f1204c70d4613d403ceb93f3f9cdd167d52dcf82c91362ee7345b7e7a8ef18fd9f94061cc0b352392a2ac268a4df4d36ffafae0ffb57861473cef861544ea53775db5cd87ce2fb3d75afc4080892d0b02647baa75e1470525c8fe1e061dbec4d5bf968c1115d76bade384e3c0d22c972dd92a3fd099e586316080f37776b632f314c7de5a3d88ba9d17fb9a5a69ffaa1fabfa6ff48cf6ac98b46a7bdaf7cb2de8bf35c34957ee5537d8622e335a8203b25b4467e7265f61fb0a7fe6517d3dad950a2e39a95a2eda9e7aaf85367100fef036fd36a6d21996c36346269f833c498a39082992e5ef68d16c76b01574f0b7385aab8aa907fe272489f8bb306c079fb517bca0840646098f3eec73f71b200cd499bf7d417359ad5f5378980057385bb244fa0e766fdf1040d73425741a0d025cc26a8759d83c316289e495f7df7d43144a62ee4b3237bd747754b080ee74fd6d87fb1ad99e72fad680b2ef24a2e781e11871921d38a17cb28e4887e6cef39c4c8fb9c34a8eb5392fb05e34ae59591aee90c906fbe5ca7b4d1fb8e90086c0523df1b9ca7be4bda61bba5e4fb42f963f9117e7cf2235436263a1056d23d03ee6c93e5c60f8e7d1a8c917a145dee0620272675f1d86e9db137fa6828f17ab1d3d08aae74af02aae86293aea9e9d38123ca815ed8334d100d7a3cb7a45ba92f1633b561aaedc767a5d84ddb6aa45dd9f50498d996062d86a4da4315c0a1c264521879165a0c398fe5e4523addd6d499f410fa8292e1d1c7ae40e5b33c2fc7fe77dc908ab2ca2cf589d6b80d281fcd4f161cc8ec82c6fd2c63cbe9ca7953a388cf2b92be48df04a8a9a140a1dc2e726b02c6f00f4c01d6031073d984e20df0cea2de5bbdcf348065516c6a455419ab53889ca427bedb38664a4a001ee1e818d24803b4573a2a6c4cfb9d48ec2593dddc878c26a8e88c09a7c7250b33888820fee8f1828524c3127cd5436c5082e3b76efa63ce402424b005c894c9b8afca180943571b86fb5be1be5a68774fb35e60932ee55f5834caf73a5dac9650dbd2c3adbd93554ae5b546380e7fed01756c699480f90e64713f9e3708dfd72225d6e3a1ccab79d1869d593c93f564295ed3f713b1d0481be6fe892bb8c578cde647aaa7e2d35428b5e521c9f6916108025792a00cf64ff76c017002942e836519bf025a23d879d04e1407b6f393042cf1535bb7637ca8b9b745b09906fedf8bf2a1528a7cd69c5b331a04a986b1b63dee9c65f32dc9aad08b0a9d446e8f98af579f13b9a7b907188f526888e986f80dab1446f850299b7f5b93be12c1ffdc11c5d2c490c572c0e20e7fc51f092bef9d45c6cc809b562c7e50297266419158108ccc5857be382930374330d801cc7ad9e47788e306cab388159bab65db69d12e7e20e15c0be0e65b1012a9f00bfe4bb7e1839b3c05d9eb633268236ba8ce23d2160c219a70a5ee37ee49b45ea161091dddbb6e80857318822eb3ee5e893bd7a9d0f1412657c85d2b756f564c5b9aeeb40db6aaa7c5193b755d88a7700fcc1fae724180cb5c5cbbcafd3dc02d5be5fae14d985879a7d4cb0a12c13efe28829245446b8ce61c462106a293d2f87a528202e37b544770f69f803e5a23a3f208960cf5757a6e37b0c4a9250ebeea4da18579b306fec6a671518e50516f404ddfa16c141b76f513cbb2ce5feed5b07aa7f3dfd1f75333f549cfdf46f87794290a58c257d904816aaa7fd090ef936afd1f53743ebddb9f04af0d6221238eda7b3bc010c22e35e41f3b890ee712a444fb609a8510f31d8304b5ee02946e40fd13030232fb727a5bcd270b88cd85fbb31d720c9f3be5f8ba0ed7f2eb72c7ea86bda67cc249c0ca7c4a3387d6dd78321198918eaeee316d230aeba4a655bfada9440813e4fc83ca4430a46b47f32e09c00895ff7ebe3302fa9e5e1873179fbb7565a7ffd0490e658809f06a05d6a50c1e6fc6a0a2c9484c521f46f10f47252831e35205277ca2363acc63fd77948383888b8cc414036072010a6385307223ed5c224610d7b287dd510c3caa4cf22b309dc82596ed41c2460eed5abea0d44b87e9cddd2645482051cc10d4a9bbeaf2990ca1f9512b867317948c66600bcef8eae9a996fcc2f7a07e4bf72d0057c75249923b02cc5e9757ed62965734542d62b2cfaa1b65be46813c8c16b8a2a5cbf04629a7db8a442296d8d57999a565bc339a845946697ad6e26cc3db0c88a84c66464c68ddc2c423ee6da6172018d0ad48351d1721da0af7c686b7a16b2ed0f81d90e17823c0fbdf078f07c96bda06ab902d51041d560b51177a8e6892ca1374436b57239d53bffff74ca53c8edf7137b5d2e646a11938cd58901f2d96b994683701d85d8b493ddacc80acc52d43859222ffcd753182a084bd8624cd9408e3a47256c9e69b41d034f96e7dc5c20df03ace238a38474b0791ff93fa7dd132feba0d6780ac8b608a02e7f5528c2ba2631053d90f8a74e077a44965f2616472b056b4280e62449344eadfe9b408f6d3ce78bd5ea312c2c85c16fdc82484e3efc98173fd2a7f6b38401f7010eab6a4558b12c72d20263aa8a7dc5dbee5a07a04da7012c62846d9dbfaf2cb3b18e6dbb7862a643543ce6a46e8f819b81623a8e392e59c456133f0de83c52334e21aca879a53b83ab3bd36b7a44c9dd5f6ef5e0c6010ebf0d5e9b92168be0089f6a583e2c45ecd259834e7895b6441dcf241f7ea3608b69cc89a6520a92270f666f07aa7f550af8c9fb334b6ea69554761fc304c396e5784012117dceddd571fc7f04ee632f23a77a60a21fc5b53681615b7a52291f1cbf42bdc6a7f71db7313a245844f91882bfc1db449f281cf3f21bc4c8a85dbe85e79fa5e0ade8c10fffd1a99416e1244383a62d94314af1f1299d9e32c9ce68f293e2a0d5258c427428ef80483bdd6c774889cb40dd28bad36eac0a36dd05c050a730c926b5e3fc1d852f0877420aee2a148d686dfaf5d7b0600a591daee1fd081cd0a7445f26592ef94b89986057e525b00525a7fb50dc6b5ce0a5d08bb5edfa65ea87e23828bca55fa5f5b0740fa5d643eb8038c2194b6e9c5ff8cd011a378ab0284c312b6832987e9127cd0c25a4eed2d0439599a6a413daaa572c69d36c74569c300bc14ca8de676f054dc11b4c6b31ce276b0868ade8b3307eeb84093f21482fb2b98874d9d94e2c0724bfb47be8b12c0350f7520beb20f0a1eddaaff86d64b691c00460c4c50561cfa1c984059cab711ab5c3097de83cb22bdcba3b1c8c50fe00483b5fce5583850fbb9b3d078fd2762d828dac8298e9041c36df8596fe32acf6a6a7cf5cc22c051e3b978c112e312d90a77224a74b975e8ae23fa70054277c7e8c215c5552c334c96fd49b88e3b8d9e2403c4c95ec8cd1494b6a93c9304c08787f2c3d5be29564b470c0c94388ddac1ea207d093fec6d5378d8ab03e75267dcc567940d75f3331c3537b76eca5138692f298063d3118810f3ec64f27587a23c40ab1adb33fbf5cc9a2ab36e42cb314fd314becb02cfb9f5e9af7e224438c6b522c02b2682f910f0ae6adde730884350871b8b15269539b56e1686a7f8166170b452d2806e6ee2c7c5283ceab7318800dbeaf0e536771274d2bd12e9eb2dda2c4d6e57406eac35e711bbcdef1f6979a9091165cd56a2f1cd6103338eade386104acbd8996a42d1ea4d71aa70f095a6a525e20e67745b9b9788626e84265b947b734e7cb81e47b7d4172da13c0d119ebfe9b3fb3cc6c9f7ba68016542bd41b181453f2b6d05461d494d8fdfd9a4e072159d5ab1b5b3fa45734b3b5d839e48bcfa74414f9e17ec0d4312fd957b782cf07a84c1706c8965a2d5ab460162c3f8633a37dd089a2ae14e527f14d14b7a52615f39865b484f7c91beff89b618161fa509b98b5a5b2512ddad0633602ff4a511fc31175493da7c7349c5a51c724547bd14d32428e0140e43578528ae1b3f717d5368ad9897bc1c171a326229600511aa07820dbb11e1402d0f9a592b5e1ea8ca419c086981f7e0a03e4e4660e9cb5d623ae4d6fe5491293c3d0f98d70d82d2588e681c670769577c7588f5838d2d7d2112b3daed83cb0e61a9d0ffb23e823a6cee28b6f0c8507b6c1395d820a9513fcfbe60a10e339be635de8bdabd0eb6182fc3084e9e6e1ede1edf1c75720362e954414de9acb591665853a434d1be9743825efc66aeba9d74b004bce8dc7b06139debc21f144bf98ce34311277c02c4f83f8356be55c6400394c555a4554ba96e6bad3b46d446a2ee9439bfce47cce50da82db364eb036d659ce76c5c571cd7473d1661928d1c8f7e18fb7ac425955fdbf61d7c6eaf91792d8fe4a1f72c43bd3fa042ae0b63819c8750658b3c4c68dcf647a1156c0042a68210bea15568f0745750c2492539fdac32899ed724149030203eabe6e4dd4c58d2adb6f5da3be7f8a451204ff2e0f902d9fc60d227683a70ace86d729044c13183edc91821ae1d0d63ecdaeb2f938585a8dd7309fec37a00c3f83ae439b63a4541995d7dd34272bb02f50974a0daf5168ca2b50c0f9086109f5bfb2f353812c152451c5d8ef8cfbaa57b12548d89110f3db6c3816830063212344916e3e6545e5bb1190661e0e4af5c0298fc82d07dc7a6f4e5ae7292a481a49099905ced6aa221bb49c6a8966a47d2540b87d043c443f0dfcd5ae8cde2cc9ce4784b4f7a9c02394962f228f1c215b691aa0a4320c3581db8ae4d9678ba3a725266bf33342f024a42cb7b550464a0b51b26b88997f6c32bdd397e4c7044ab0a56fd173031d5957d3641b96571fd36ac5567085530a1e34a3741826611c00d1aadfc522386345a33551b568cd73031bede4098e613cada04396b35d174120d245f382dcf04e2128df9fc69b301fb7354f6e8a8c0062a0d657d1775f4191eda886e783ab7dbdfecdeaf3cd348df632a04046ffac40ffc295aee51c8354b33b9eb62987b611f9194579111b202fdcc0b784b4a216c66bd5ecb5819d1eb6762d041eb6c3791896a68bcde6abd265dc1842b1c59f59b34f8153c2ee709a904858d135c1c2868ede5ca69509fa09ce04ee7b328743de3b7abcd5132d7feaa343317f361e9d157da39afce2e3d79b0766e44c57dfc2d54e12efbd23b0a1d9a26023a24196b99db8192f90d9202463758a259007d615c3481e9734e7eb8eff7e7b45a25eb08758ae36cc15fe26836d000278d33a61d0e06767228280bb6630e3d4762b17d5e8f60634ac5e334594c0d966d6273014c47337e578a2f3967bece64658ee8941b3d7fdc9478d685434796af449ba6e890a28718c84d079c4f4c4143d14b6b54a4a65e8f37d620851479433b6b419e350352720b527db65254e7fb4cc7808e9c39c5cfb228bb44dd93cb88e2bca1190f8d5c955e495dec7627a95e2d4fd1a1ab4655378aae46ce1b7cbc6b7049af853eec178e83f2462496e9c7dfc60eae5753be59f27675e679ae45f0bafb79a2f79d039a31db05a55276ca2aabc503e57a5fb1df97108eee56c9ceee9dd390bb69a6c8260497e272e0d69c954ca325c1c7395699ab8c23b2ccd42af641dc52587794de9f09ae4d7bfd148541e71e6aa539faa6d03248a5dbb5ce1e3f756f5dcdde3e00c8d43f5bc25dae6031a1c2fe9151b6bd4e8144c5f235ba1d86c99f4d4116d74181a943c70f03565399a1ba1c2c35d3d5f801e3fcb716ca5f1e2a725c7c9186e47783799e0b95e02eedc2794df2d2c15a47bce85aff6d9a877437caa66b6373f701424e56a77648d13b2c11ced9119faec1ebf52f68aea72a7c2ae7ee21dacae95d8e9ce8279704ce78c98dd627837348b59db9052a626471aad23bae556d666bf5fd0d85c019c37e6ded8fdc2430d29dce54f96cce1fa4e005c7fba4697aba23f327554080ac66b98e172f73aad7923012f3374c3cd60a63cd41bb6bec2d23116e11833a2cad7e0fa9cda215ade52c708f8c5b9459f84bde370b9a370a8105c8e9a4e62df855eca165faf60771e91f6736038ac821c3d9ab8e8585f3478d87cf2f29232488805c0e5be2369ce222ac5aa61b078087674335c1a7139f056a6d9e6cdab0ec79667bc7c7ca75c58a781d407944251f3f122da13f99c1d02705d926f5db19f51678a080f51d3d47b9a24493afc5f7bcf471a88a00c2ec70ceda390c44126f15c5bf2c3ac2292ae30efc10f6d8d66b04d1e53b0dbff362f87f687394dfe804aae7b0e4bf1633b926b02ef36aa360fc9aab684c0f5edf9ce76079bf5fbb0c4458be3b7d1e96ec6721870c0ad6f7ce24f814de0edbc98eead77038405171783dbb6b999f22ce7795d2e349e79eab3db58887e88c111de977100cc5c2b66c598dec0c06aeccaa2b812316e56622e9d2c75eb13020fe0851651d8cef09ba003a4fc55e8e68a93b4fba92452c3eb134df1f6647eeab1fb6726d78a9be01348389528fdb1162f249f7d094dfa579ae665bb0b7e2a0d622dd28d3f3723cb524a8bd5fb1d895eb2829f6a0bb7d86cbb348b5b90f3e660ac493329128a05974dab1ed222e257d8a3d38fc1e2a0ea7ab8306c90180e260c0d2b416191c1c910f8b3d3b4c623ea0237b8b54ee9c31c87be5350e07f24dc66b4d88017a55411d1a049dbd53e4bc9da4e7ef5c510b2f4a560235a572b2951024956965d5b6853f9a15b0956083ba751ca7ad0e7cdf67134ab2e219da96d73f7ee1addd061024ba2f92d5c7291f8f0eae112c362a6ffdeec71281b8c56ff661ab35bdf49fd0597d518d55603656615c7e54a2219b7a04a3736e7161b8cc56cc1d60453eb5a8b2ed8f1cd15572ac83dfc60c52d392c3c75c25ea1a7a9d9a5fdcb9b06769fd3d468ae50d482917a35212aa7d2aeb6b86e5b910239232eb02583c7dfeeb3c9abbc57585c70095161f527046926823cebc54344ae09b96d8d0e159ad2f0988e5fe6dcc39b5e0c39271a350a8883e27563f945526a7c9d97ea55b197534d711ae598a29249842c07ef3daffae4e91660f751a9c60d820e534391016146a602eabb382b2e910ac2a7164865282f654188df0eedc1bdb80b7babed00035b82abc20cfc524828e36a1d7249789b24b35000d9db09f20d2e418e51551011da8bdad150f4540650d3268cd23696aa7de110526629038736d30ce26150eea9d51e2386cc46a1441cc4cafabf5b763443071e5730eed54e61035b195e4e23a367c8bdc434e6400036754caedb6d1e3dfa8e46ae4d536d99980b04291c89328b6d9889533ffe9bb817d42c184c481be21430a71cc7d5f9fffdae2ccfab94ad3f49c401768af5408ae736641721c82a9a09fb9ac006d1012d88423d43474595385b7aff602dc0f96c0911b892481d38121710e6e79d7fa09eeca26fffb05a68ed73625a6b080636e4f9d265926dc1c55352c83f6ac48c826eb922842511d1e12f6b842c23cae7a6ea0d821d38b52786d79d882c885a67e21db514627e3076ada56f4100fb444411ff24c9ce94c5180e4493f35f6f7aecd5dcba5abbb0decc97020fd0067cc6b5d170a6b657306d2c7edaf9dc04317c423abf0039c4b8bb43d943b66ad43343bc8e1391b7f4b858aa438fdc6b81c386a29e61b3e9cc8370fcb18c703f58da4d8c19fa7c0cf409c77ba199ea20f3f733fbabed58e27cefe6fcca54825b470787c4b054a1f33eefb6d6d97f6279669d9837fc69740d5da52d6bdf81ad017187ba206d77e58445a1b6f1786106baf719f16c8c586b66a4c279b7fc93634da06ad907c92784a3d20f28a172b94382293dc3a462d490558ec0bf182fbcd2eb7ed31a6617fe848d4fb3abc6b54d9f51a0e13dd3ecf792e8b8716835c10050e90a78ada61bbee24ffea8d6911f0d9fad26f2bf7a01bd4db543a477412b65968dca7edd7de752ac5ee2fbe4ad010a507df7f472dfb930cee6eee5ff68d59738c0d6efb0bd1ac9c3e052a29fb4ba05d7ac3d793d6283a61ababfa5d008e94ad82d45f95e32d6eefa8afd694b731fd5890d0548b6a3617b856b994b8855f98e35cc0bfe855f4ecb2f43da88fc2338f16bbfe85212dbfd92361d774529d5547944b775d812694e72c456fb029e47bbdece491cb4acfdb0dfa47d9a4abe1e6884a2f56c91c556b6d7c71670f5502c3d72eb9bc80596b3279b1293fbdabdc831fc00145a77af901285854f8427bdaf8467d6724a15bdb79908fd2147a4adfaa6b4c46a74cc0c4b7dd282405418e2aceaa9eddf1aa22902c3bcbe4c5ee6e0c2ab1d6a6db3c173415d4bae7bef7e3204bcc45464737caed9c7020b015024c0abe8c1b20c3b92235a3281b9cd40aaa2791cf337bc06454e2d9ec42689016cc0bf01030cb2a09057f1ea097a53aea6edf51728e370e609c5b632e891bf0e4e32e2ae1921a34ae17cb65b1490ed45b999d9b6124dfd584d27efeb503fc19d7f24df9170ab9165fdd86065b8599abba2c9777ae6d5f15833e37cc36280419f6c8fd3ac93ef9578ed0f62565a68eecc3d6df54c4dddd61826bf4d8917bb115ef8ce17c32cf187617d2db5994fe05ed177e5df094987d0d95128d6be4ad78ae711cacd744599f5a89cb1a73a29c41fbf541a120b1b34e80f0ed52f302975c2da4b018205e6cdf4eb5c1a30de4b67ba4f850de94313dff029b3066553c740f62da25bc59cd55a8afc6a4bf42aad332601ce370dbdb5777107225d6b74aca64f0e94cd9afb596e27983c9c2a013a687e0685910732bb89871de6db907b63ab05efbc4196c6de1d12a7ddc80e590f7d295724f0a18824200faf18ed86832e83476151f128b231234ca08380d2037828901c08e0480fb4753afbfb71f47756d6016b68c170880330d107010d079c8ae3fe51eea652414a0d4b1c594e49dfa9f0fdc20000f25a31771ac1857b0c3882a188db25837938cb51c980a593544a628e7a23f46ebe371c0ee3319bd88752c5d78ca58e2a5d4c681fa93d57e8adf410b94ae476d855e74d72f661206b73839fa50a65285b63927b9c0b9fa396d776ea743cc8b2602e2a3b9c9387f524ba722e3e5fc31ee45d040d8d161322a4c11aa6bb86a8d4a6f654f08a46a8620850a5883674f1d234664d8d8c4058c80cd98084af9a92c35b36258353f60825544f374d99cf8e35cd14dac08294a3a9abb105973480154e0744c3ff7eaf4edeca91b4a9c481537b2d5a5e70cdd3aa7b75596ec17b328cbe0fc015b0aba368eccd44821e8028365076d49bfe63ba4eb8b7cab5b0dfc3bc84fb034eb569a5006c3a982ebedb178b988841d1e94e0fce079458bdfbc002f17713cc24aa1e098e9d5e0862304f018f32804abeba09d743f855d4f077efc32e8d10bfd86c0213002b24c47ef211baa90c5d1063b0050e068e6f8c01279cc7bed2317c44361862ed95ad74af6d707bcd3447948f1e10c67c3763a1efd60862ef6e6f1ec03d9917730c29ebf2193744ee65839b22738d241e3bbd984f0cb4623f2ef5cc1104f388ef065aef11661c8f00b17ae59759ec9401fadc40ee3c131644050e95c0715bfc567945c6ab3a86ad10ad36e472d1e613c7545de3cc9393224e6a91f6f4bde4235764420fb7fc1e9912c9873909c9b4272e1038eaf2a86f902cb164338cb896962c4ae4bec4c7dc462c33fecfa5323dfd43b64b95dde43a3a00a963e91bf4dbee1fbb3768804194fcff7dd508395179ae96788d9978a352a4da83719fce6e4978848d626489053281b0c6aeceeab693ddee3c17529df0d0926e67a7ae12b9e2609b2a705a3e6e0279009ab183dc81a8c800642326abb9e719e874196d9a457a52bd0876378deaba73dfcf82716298f4d670ac883b348ec9a7b8edd804aba980a4a056f26add2131e5ebedb7b3ed5a5dfd0cb346ccc445db5d9b864c5e27af5d2ae4a687aece667cb4ae7122be071745b6d570d5b47d453bec9cc16b4406b3044632ad7ec190de5d22f0deabcc71f10d8fb383fbe73149810170ffb1526462315b2b74677c82e68412eb36a63c2366ee35c296df723dc5ef0071a8d2ed072c704e667a676a92aee25a3384a23c52b521082a2f20432d34ea79f197b4cca8ab89103a9ce6d367860e418d8b0c363d33df6f901bea81addf31c5122e729cfa92f119ad30fe931d8408b5c03809f43d63aaf663400897379c5b00075d5de9b42835fe03d554432f91c7cc18e29c824da476eb0214ef5b3c3d5a31bfaf2f512227a762d449d283660417dde22ef41f2bd6185f0ec070017d6264607d1497277d449d0a3016a490ab21bfa364977f6f77de0f6ce5df18c253e3a6f5f6a2b9ac85f46f1bcd7a84d8fe59387bcaba030c25ba501ae22d9af8195163d585a03761e7877ce2ae13cc40486a670fe0bd0850f38d36a5c563070b1fbe9f4c24b4dbbcd3e5edee94a8d6c62782c803af53f662827fc203e28a8f9ead71c87edadfd6bcbdd879a15d3e7f11caa3e943dc9c2e519ac6aa06546985898b7b0e24da2921c3f94a1d478203f1bbcec9b7bee203cbec106336fe0f01907e5003d6221f303abb7dc5615bc1284bb10c95669eb0167141ed3bf03aa9f5b61d1f5233f0b602f7648d1effc0bd80afc0e01d9996e423d3b88bad6f4b0b4e9fbdcbbdb8e2d91caff6a8ba374214896da820a69bb99670247aad840d24d82d3bdf3526e97061b8ad9bf0c26f855281e531edc6b373aca5207b15cc4aff05bfb83511f5043b6ea831a442943da93bdb6fb76946dc7e5be8ae608d4c532452784ff71ad992ea223665a53cd80fa36d3c5c7f28dd311b7e7e0da3abda71de4fc35fb10b808abbda6bd22b5d053a626abe42ee127f17f125bb8b51b1ae286eeb7293045922af8fb31d5323ddf9dd91a74c2f1418cd30b0ffd016f929bb119c0b90531f18211a098681d7b1a0664213671fd2e674bf88f284f6819640b637b34193ddfc17fc965b6be59ee1ad28caf5084a5d532f8873c0a23cd89df6213bbb07a268bc9ab2400d0e886e071e335279fb44bda3244270149ce100f55f68b27f899ceb1bf187e162cae13b5b5f7f91d66414afb8d6967a5bdce752c55f629d2ccb9cb572fab301c17b359ae8af51b68552b6f27dd58c72484a36ea19fa76a1757183b8eba871c1d24a27dfa22d789dff234f2d3b2c629fb4262d9bd6c81fc4e520ef60bfa4309f8feb55e884f1fe473aa13ef25ebcf69a78a16b35b797a486f87a22ad9cc1ad6a9937f9bc8a21b115140a1f416541ec6a8c0db6815a16c3dfd05df42ab76f59452b99eec1e22c40e1b66777b946871769806fc14546cb966e6f52eddf0e6fe6090ec924d41748a47f239dc4975fab63f65ff7622ec87453597a272febeb5a2ef8176d44ccbb8061cab3abbbbea82fa4625552bb0b6d58954e4bf51dfe021cadfb16a017143cdf86ef369a89ec7e0933f0d089bb6e52d4af5d4f8be4b56bd0b1357b3c22606c494b59995bdca6eedde40b9dea5f5b7bb281688bdfd27bf4093582a1e1c5d295a3710b8abaf47bd72670855f365e6ad8b08ecf7ac65da04aeb2cb857909ca7e61218a8740bd4f13a99c2ea49a7c978d864ec179963b77c4d7139b34c12c41d17420615d875b33a2e5a0a0c2d68dcbb8b8628a13d533fc69f592cae70267a2bd44f17fcf82bd276cf56c80a2b031de3968e0b65005521863dd54433ede699c6d986b9d6ea0660df78f02528ab9995de3d0363b997760cce45bd502322e4d233a404b7b27cf8507b853a673907bda33b1dae81aa18f01ae59f19dad8fa5847e20ddae9c6586047cab13eca8b7501c34b86e8a843ba7d059e201248b266ce6e6061c91e9098b1aab6db4013fcaa10184956a164adc19a0af7421c6e52a4eb3c2df52dc150d8ceb3a4686940d99767ad06f1d932e21938ec3149d91987e301a692ff96d9378c47f1848b1a0071a3a2078f30904ba1bbad37932234715a94e42d78296bb7d640d005650801221f68c3eeaf64d9acf62ea0a22a16f7efd770e7144ebe56f99fab7c32b94b5ad0328f34623a926d6c1eb381045a202c8a3dafdbfe32849dcc8dc5dfe55fd207cb915e040033af23c228e367389b595542327a4da3f5f0537c286c3747e491858972c66c018a36017a3d4b5b1d07f68967bfc472854bbd79970dd4a08e3712ea8a6260c39839ac4c76c355b12233cdd362a5b37b384390f105205866f02e35ccca25090fb5511919833ee59bd69fdbfc2b2c262f5afbf8ac7ac36656fe4ee0098794bc5b6e135dcbc507d147c7fcb1cf44f2afda555cc342e2287f0027aebf800e1b5b99157eeb86c6ba3a1cd7acc32dd71a410ee22ad1d7e0c29b680fc41a68c57b5167b1c1ffa2240eafed28878d4dbe8f2fd30f14957d92e66b81de2cac2b220a13cc6dae13518aacef0a6b2244bbfad69e576675eb3cc13667269b6f80305ac7a6ca6be6461aa55c52496a4e456cc8085dae2afa9447d350af55d0adde140c1b6c290d7b4bafb83decd0036753feaacd3c38f99e70af2d443ac7cb01c862a976cfd204626fa94f81b3c80276253faa1483dedf7b63cdf16c51a2d3e122d32db16e6582182311562583958c9304bc10b8736893f244d9a7c6e79c2f26f2d3600943f0041b68c8208a9707ec928411578bd34940b2655c38a75aaf0c7c974e44a40f91b6c15a4da5499b34ddf509b168d1c91c557f5e8231b5db4799920229d9682503e29ea4d9e80049eb01873a6e07ce3d4a976b1e4ea45bed1f6938ca8812c49d36ffdef5f089302b5ba39c1b3f4ea12cdd5f8944e2dee3600905bf4f652cc7575305e3b584ba79fc76f8906af38cc4623df6044dc802c8c16e7534c35af05944ec5410472c75fa174eabf1400ba12988acb9dbf356ba08a14369941d2a91cb6ffe21ca2c908f7186a1457501d04111cd83feb9d668a45b8e6969c3648329d1a2f0d3e889268d4d13360677ab82163dab0f33a715314733eaff6d262793e78b8638a16813ec81898f74b81326069c6a14b198b7a7204886d92079febde7f5329fc0e20db361ac053faf169e4cec0509921417bf24040ebd1e2591b857f3b03a5d38dc1711bc967662102993eac05079097fc9a163cc6e7cbb9afc4bdbe46aa662215640fb1343d971ea7bab7a93464a7dd00874b28d854d631ad85d6068367d80a5dd5c85431595f13d4506ef9734a588a949b011d75424041413b2c9d6077ba42e232f21fa5bbed9f48a8d22e420363cf30a6c5a90870b4ebfc92a5349b675802f239832ef1ca7519404a5c22552a80db881704e5d311e0e5272c99efba4004e281594ef62e792f761e1eeccdb1f411f3dcd9ec531a7c4586220fab4cac3c710f7d42be4079ef3d7e0496ec67c2be09c0153f79e81064b8601a8ccda0b2e3cd9b8940006c6331dc3a395b0f60a41d4f2424ce616e7b75fd675c04e89fe91b42ed0693a0b9f03c0f779ff8056c9e16078deb3305f6c462ad8627b3372251f8e7fc6f0352bbafb8a5673685da284a793e3a051a361fa99d5a5113873f4b8285e189be0d84fd967029e2b2741056b1b0243edfb486d1021e1cb15b04b3cf8a7851f7a6fb5c4e9307928924068fac500874d6f3207888d35aa8ea7d72c89aa2df72ef4bb413b7625e85376d11afe64988ba64170e657ccfca52da956684bc6db34fb062a73f36873f6e987f6477f725ca5921aed170eff2b367b03ad0bd51374c299068b0b0a78319ca666a3cca8a2f42651205beeb86c42f4f536a3698d598705ee80637c7473fb93c409dc1b579872983839b972509ba56525f717d3f224f49707083623405f2df1455abce5ff2bc144d80351ee778bed1e9f40fe5e3e1b6c5b43d19c56b40e38eb996a0883d027e4fbc19bd42b8e71ddef225cabd598f147577c882dbed792674bb9da34e55c1a6f455c51799ea069cf2c853f6d06e11c3b4313315a56ea2c4d2de2f6eea5c0336db48f941e50600c2e1d0a5b1197f1cd450d2f4e24193229d0ee19b9e65034fe22e021640aaec7b35072a027dc69b5ec959a81622cd01b6261e81d106c316fd5642338b7fcb978f839e19342e3f20ba887c98e8d9facd48b8a7fcaee0c768b54bcf2838fb1d967ebea2b885da0ea434f32b0dc36611a940136bb1a8ed2514a962ffbe602a0e5a2ef7399b474aaf5b18b380c2be993368a931339b16b6c5af61807ade14b7909ed04b63fb8876edc201af2ee17d59d10cb92ac217be07fd4d963c7ce71c0c13be8da859b84eca135a06057c8bb204d7fc885b29695911ce1782e61f3751c6346229defd5755d8bb05877a940b9e67c76947f4ced53a28e1615677f8e242815806ace340571c8dcf9c69c45f725f5b8f774a994d458725928688b1f299a7d42a7b80785010864dfe5270e99728170cdfe07a860986d4cca7940d14b6873e58527f9b652b0f1f782a496931dfffc35786d2608f07b447695ddffa38b75958f1e28ab24df1bbd81c2e6354a741688e1f0c14f5fdb7e165f2add7560dc3a6609b6853384e86a76c1ed73dc3b107501c5605f85474bb905f1c708bd3368865a5be81f6559395368e6dce0e7b911365aed22c9aaef2aad6382b8ef258f9059781aadcfa44e7998d3c46b3ecd9ed52f243817514c02524ba4ad4cf1a7a5486c2da7079d16086f75613718fa10929c9c9fcc314a8b769158cc225025dea98b11b83940ae1a1500c2fc414f3b4ff438d305acfba70fe46797c24bba0bfd71f62115c1317e1c2744b7718122f03244bfc4730cb23b19511d3dbd9e90e2cfa41dcb88cfaeb54e602d7ac20f51c8146e8c4e099d21bf3aeabfc6034ad85c5a2ec04cc0e368500e8b5acdbc9e7a70e2f507ce393bbe7bc7d024ca6ced61d8c71772cd58cb3145557b0bdf57935596fb4e6e1b3967d74e9f5ffb66b9dedd8ed43ee7d5a2d2404d01488594c78ead46db44364006fecf8dc78864494980bbf37e5f2a68b7c90accd5d55a01d2c12cc5f2edb493841145180ff72c0d909c4a404a51d11068af52d18bba1a41617876acd37d6212a6afdd4d34e199f636e3fbcbca16715da7531cd2d1600f9c1d3ae07c55bf2e379ce0d6ef29eaa49e740bef6b3a39746295997f140ce1359d0ff02fcbe365fcf95a11fef7bb14b60c53a0ddc80e64eab6a3fa975f52392c6486ca4c046fe860a1bfe1277a3ea703c669368e99c340db31afaac4448596f3ab3a080941e29564aad0fe6f80cfcc47eda2fdf3bb328eda75e113e93b8244d5f4899d7a4f7a38356cdaa6f38ce0a325f0d1bb61cad998090efba6ba6f6eb257173db2ca28744f70ab2393f94ede8a10dfa9a10ea3f839b5aa1c2d48d3911a7ab6434f46deb5b7f91c12d2bf32f5ec089948e92ff90e086d600b1dc6941a5556cb6af9eea1d12d44e02bf51d218152ec6a4473d77477118f6256148fba073a9d015288b85877288977c0b820ee2b8d23496720485ef2faf66939a004d272c079208e63c414ea05ef7440c7578555925a1f6472344e144733fc23b84b610b2bcd844ab41729f7317443bfe12cc44b59b84dd5e065794def1635d2398188533320c608b1e650bdad1a4bd160461d363f22b0674fdaf83c9c48548d5eb0970dd7501c74fb5c3c1257ba3dcf7a1d8117945243f5ac53421c0accb141f8d5f44bf49f573424eca44a250ac8d26f39ec4015da43cbb11ffac42b1484741bc9d197fda8e55002755e3677428d9043bc536895e02f8d958e9734501e52fcba999fb978bf4033969e7d8983378d2e279c2d906223b9c914b31e78de12198e1ee853fe27ffe8f426dce50979eb2293080def6145d86329bdcfe6bec35a425eb1d16f0408bf82ebe4ba2910f8c4f1a3a8e357337be1022cb350c5c5f1e978067b25ce3045dcae2bb4bfc8ed13c3c7e398636b7aa25ffacd30c3d9d79797c60a726d15eb0de63e83a54972002323cf8ceb3ae31f9b2cc58814794b27000eb2907d78629553c91cf895cea3388b9fcfb331a217cb5531dbc5926ecf5c87b7615cf9efea31a78b7dcfbf4e0240a9b34e78d713ef2c385959f2567bd14c50b2919055461e4e3e0f8c492b7a0f8a64372d00e59e1344bc0bac6b4330cce8c9f637694db584d28703ff0da3208399c98e5b36a0ce166a15ceda81e733546111a83bd8fed94a93f1be38a659ef25befc183a2e02b13e28884764ebd625e65cb22b0b96417acd4b7848509f008c8386e32dad9b570e5ad94dce6eab606f3b0da19b16845138a1a24385d2cf6117b940d28f0aefa2454aa2197050637758b1603c0079254cfa38f283863c3249a1826f1c3f057ef8d03e65452e02911ca1b378ea77bd227ed397e08a64c7b32bff63c7904952b0c70caaae01ac1d9efe59ac5066dc263052e9b5697255a1234fe35bf6d8e9cf13180ea305730d7bf29f83779ea9df9533155da3eb482111fa2b363adb6247d3fb6d0622d35379f242fa0db65c736067399a28a2c3d0afe6282101836e251ae9233e1a066c2039536e6574e8156b0d3f997990f14174abde6921fe6cc53598d9db4f428d443b730e766f5f0bad32dc12c0ada800c06d867741646b8d69c592827305559f8f16698cdb2c8819e398e3ea46e15983c8f2c69a5a401950d1c77cc619cc16770fd085353be493a0ec60839c4d4be2d0bdd1c3a317f2437926c6c5f5ccc66ae554718dab570df96569881aad8cf5c7fb96ef5862001ad068b1a7ec4ac1ad097dc1168d341fab16b22dacc1f40a8a10ca2b9f02a215089dc51ef56f71f3cee3f9771b637615f8fa4d51205ad308195f1474b8fb51bce375d5c2e50f780c5b6e2cb36c20350026a95a0d423d67fae4fefaa6e620e2aab207e9dec47c352f6ed439c8bf3077cfc7e9fef03a28bce2a6293e58838c46a534cfc0191433379aacbfb36298a752be9324b6fdfc413c4353099e4bae7ae97127a85a6dfe158e67903cea6582c3251f8172c6e79b2ea7efb25d8a11b3025c2130b56bd6f9f59d237fc5346ac72e1581897038bbee855687fa9e28e8179f3819a8722d0362dc24416b368f2c20d3599371c52688a453455fe5ee6e78b077c801d10a9eca01598fc61752ea0ccee92a5f919b30d176de69aa7acc8824b3dc260a44e88b4739b48ad18e61234b858aad09913d0e7780d5c9c49578c1488d1a360266f71a3e122bc858cb8c5f2e2bcb87c81398a2575aedeb411d081d0c464352323c1342f3673ebea89ee341dbcd62886d0b758fd7e8bcedf42b63c37e7b840315eec82a762f5650f05c6e45e2c7a011b55fadb41ff059010858b8309fec9883e2159c61b260d56169d8e66cc531e941d0458825a05c68ec9f3dfaae4da04564192b0ac92edc4ee03fcbfcb558b2050027f0a53282e62e019acdfeec8c03c57f4010437f6d612228c5e870cff4a2fd8362d3994a3ed41775cffbf1fd12a7f574562545c9e1571ec39de7a2846b73075553cfbe126b9f048b93dcc8f9a6fb0a401efa8cf78a0419f41c44a67d93b7593e2ca55c358fd9f6996999f1a23f0b2369cd23f341ee04ecadb117ee50ece0e227880e3f0ed7ce2056c329a9b9dc113416d10892aacf9fdd482620a34e0c9484e81909caac7fa602cb434a8fb04d89ddc49d5679fc1b2ebd870137f70f1cb52838781606ceed366c440531431d0580902adc09dfb86190b5e2f6bdd871468e5ea2771c472d04df030c72834476bd785b5a77205b186554961c14fbebcfea2040175f93be66e4306ff7607d0ebd5d43371045e452e937e38f7ca6326c3d4217c8e825f9413c1dba19846c2e213978bc51676c0e18d69147b3ea9d7f10a7c54ac84cd793e4d1689d01d168c4b822afd9b1d1713ab6af4bcc6e6a383fc461e617ac2295e58d7a11b4d16788cbe4df76f57f90dbf28f98b36ad3dba7836a817a69a0253bbc4d22e9588d2da429bfd56e47f68e58017cb657faa8b490d0ec97da6dc9f95f603581e330bf643aed2edd3e3da1f95fb6dab48ad8844926e35588a4544829e0c8a29956506f8c7cd44aee9dfa6fc61bc361e1849e6304596c57bdedbc85294122039d8e02ab85f04db13f4217d7e60e65d854617ab9f6a0a47be17517d37bab3ec409a340544a0a26ead48ac4ce540c0041027878c86065abe6a83b2624165e37cc28434a156ebe783477c53a5efb2981fa36c20427cad65c8814abb2b41480648d57fa0326cd86eda1c142e4f746bfeeeabdd4c42c8dec4ec6478aca2ac4976416f845f7a41c7c63c1db8611d7b69fa094212fa636b2075e0b47a83eda80faa43d898aa3a87f88f2545889dae64730a6312c63d24b6a3ca383972e7ad813cda910873e06928e9f48008c6421893455877216151f10c6ba35aa05f79906094ce2d2935aad54da09913f089b3dc794bd0ddb3d7c9733d589790c53d3bac29c46680f28fa5bb42f8cc3383b35fe3e555e6e3b17b0b1db4d34a45dfffc29160f3ee87a04d51af7b5a379cf6dbf77dc837e6a04c2593012db0bd2868662c03f8d0790eb72a275999c9280e023732d1dd714a06e0a38313ef87aaa0e211c2fd36c181bb23b9f146d0a2f632b6a0435739016bb9df46304c7337adc9b03eda169893d4edb0639a8e4f1da04b998da5e644c5f827639663a41fb43299b3a7d840b36f44ac7e83c818ffa537fdf48aa5da199ce009abc71897f717579bdc0854ed51c7262f450d0898b8586eede0d2d307d7b1e07d727498ac5a65a0a45ab91e15c1333f055e9b795c50c76388825b4d72dd69bd5b37091a2f10350517c5b09242d8cea965a7239d421909ca4f0bbb1bb48540d7bb3f06aedb02092ec8afa13748a137e0b7a02b85d84c955c744d204b9753d9b87c25f7345ec1bb5aff7116e006aab3b215d0c1b64cb632c0f989ade41ba3404c236821603b9b427b841bb66895de0adb68e1d33553f51a169ac9579169ea0aac0878c1c46de6630abfacbcdb4dadb5efa3ff8a264ae130c426e916e74b98dde97b2c44352e049783487256538dfb5619413d2c67787e42322993c2cd107c4235b8dce71bdabd2aca9169a9257d9e7743dd3a2efa6bd87e532299600135fa5a27943c48296c60cb3e2bec379a7cafcc8328af18ba7288aa6e963a9dc7d2159c05843936c59756eb57ad63483e26265e224fc3e90c937d0f719c26bf53c2a9bbf6a77b94d51ca73a6556724b3815afa8002ba986e304d4e33fd50927d6f89640f0b4e538515173c2e9bb6595d0e6b71ca77b4c9d4e269c6669a0f7bfe1347a8e53f101cbe54b38dddf7092cf7cc0ca45c2a941516e38a1077f9602278ce7a1f5d677ba78c2029d6ac21f441ac8bfc22ae9a2606a83e4a74ca079156bd6f29437d5b540832b7a5b88df574634f52fe818f33d5c7a9ca4154f44584bb3cf2a0238ced1792848c2349685c0d51687572410c77f1035b47dbbb80a40e14c7352a6ab4b937ba70c47337e0b97fd6a64b1d9a0ca5297a76948b62a0497b3e7b10f4671e9c3b1dec4ac5453e41fa097f482703a85715dea9b06523f1787a2082948aa96cd6f37427f2c451f77197edae433872d336a00f7425346a3b143fbe2fd0a0b1087d0b4958d8bec10ffb644e241f51438e2e352721adc6a719dfa349a7992904b2d133b5dc49c70a6798392dc41351ff5f972c88c1878632d5c26f28f8b514173a80aff47d17500aa0549710856105522776c84dc189b4bc4126771341e91d10f18191741846348bdaf8306d409add0ddaaf0e69ca6f61828393dae6e6368f539427c17be922ef95e822d4ef06ab95dd69f33318c8a0ffd73aeb2844f33bf75e9a9566b236afcffae6a5a7ea6a00b4e0b09ad3e55ac62f177190efa75d4567dd7578e3f7f4ad39f13c9a6241b14d09951bf88b72825d55d46103c25993310fbd11abdf503b6ffc5b9d23f828c48d00463970e2ae8671ea5e4091c1ccfa39c59241f2bc22771acaf819988607f4e5dbf2cfc23e82cff8f282c19e0f127c9a8472f84818e56c09213dfe5a09214d7947d308ddf6b6a8912e872cb3049bf3a71239041c137b76056f6ac95532ce28f4ad06c364f68c2927c9e8d1086d75545f59185e22437a8423271a6b0f8b19123f1bc8b4482849cb9545609bc690cfe8003bf12c417dfe714593008973cf128ca89513eb72108276bf271a8c994684f8a7082367edf4f2ec5785dcddef59a5e46887da2491acf2bf1a41ed8169ad75c253484bdc7ecccd2af1492684569385643ac768c65e769235a94c551a0eed878aae4b36f4a067ac441d8b3d11103020435390aff44ee39c6ce13c6fb147db1dd43e508e93fce27e1a0ea6e25c9fbcc0fa5b3c043337af76560a03ace247e36e8c25b6051cab9d9163e619698137eb891195470322f21efaf42a2a1e5e75385f9bc5837ddab4367a3c6457886ac1ca9b79bd8de68e44b940db61c0b4333bc3fb045eec561448b7217cf770cb8e6d525d3e2c8ab1afb746665476c53a25b1f219aead8bb651f24b9f28b5409d33aa3d6598c9eb3dca24a735735e76175c6ec9721da59a90302d183db39dd35c4cc7d1c239c4a2f6593d08493e1bae192402a197f81e7cd636b70c5ee82689c77c1ada2c053a3a56f704e942113695b43fe0a37879b4c2eb4fe5713d57dec5ef73511ea1df72d30e588d00e766f1721ece23727bedb0f51142211a372e375fe7ffe57fee16eb387ddff7e1ca03ac2408b770a0fdda3bebfc3663e1267fb28b9022462556e3c3ddc3d64ffc6c09bc703ece35a1b0e7a97a2b37eef30e3bcd9c9c64c2c78df71092e72b8dbe7ee8f31536151a4b170ac68e38f302f8825bef49311413d8f3668c6f72e23b615ba88de8ada2f3493d89c4430eadd5f6368a2e403ea78cb762f78db3029f9190b9f0c5fc340c461db9732d0585647b41e99a567b4e513da868f4864db08c5ed64d0f6d7f30a1ccecb7c11ebf281622deaed307116280322f8236f04aa974f48dd673ee7cc6c400abefc2583dcdbce5962033dd31d81337d262e11214dbccb546d06a5825e13081369f7d05465aa6af361769360a13471f116afdd20eb5ff4ab0016d7b6e7922d11d5b4907b8ef1e363bf52ad21bc8b1ab43cbed26340b20bbf2473fe809bca8936bcff444d05df0a04486d5ebd148c64ee7246ed7772f2d97b6d38c943867574b12834e94a7ed1bb0ce4831d5cc431408678c5ff7e0313013741562de927ed987f0f02682831a1ea36f8c581af918a8828c71b4f886066f1b2abc178094137ecf2feb7653bc329fc91240dfc79fdb0d6937e521b84b4cdb2165050b7cfe8c6512bebce2d3322905c4fbe46bd92da275696b24247c674817de1071606d528ba8ce183c340d5d2af07715327682051266a08ddaf1fd3f9dc6ad280cf001a26d7a70d1b6599977ab8fb2255c0fd50786490b4ca5098cd321daffa547deb8186666e6e91ef203bffc22be1df813c87509e915a199fef4fe357b39c3f09f2abe43b40a07ab1a060cc9c3591d648a2fb87c6d6bee746e56e1cfd65389cca5844f97f13ca5e374aa763c4e842a1f5bfa9abacb6b90dcf9565c4e0260d59e7f1669e780001077ce9eebdbff6658e5fbaa8abdf0d7c6cfd2ea19465532b3507e7582b52b5070c797ff96ced61d8203b1e1ac3dc9898c316132abb4d503e65ce2cb29145e6e8602532ffe8e16648ba9fa3f60a4d5c4121cc5cbdf9430e636bb177c81d1477e5662c33971a506a17b55ab8f117fd36cef66720414622266a263ff5ba01f348e1e5d5bf1153abbbe76cce8bf8a652bd3b5ff77800afd49150d9dce6023dd99a84ad9cc93d360b35a9e08c3ec2aca8d74f0735aef02b4a9b6a153427613a27a231bf23bb7d5c767790304efeb00e47c141b874aad81ec0e08f9580c343bc60705aa894d66fe1f6dbbbe107758e506a6689d00e1a3cd1b6a9173e4ca527fa8d3e21bf86ce3c9a2cda824e8aa1ec2662c4cb34194730820202562e4a749170b054db4304d8ffbb555dafc77e15cbc34fef36c106421d07199e771dce077037b6e14214747dcabb2f97aae09763eb338d19ffd10d4f84c700232f8e6e848cf98f551438e5beb469c4d6583734edd4b6f3ef108a26476cdbce5384aa28ea421459330eff097c353f16519319b031345eed2dfd9a986f4bff59a85843988c182a94cd2c23aafcfb6af43d28e40b323b536a330f98ac583d88c0ba5e09ae637fd6f9e1b9da10a272ae068a1c2e82d0262297f580f246fc5fe1d9e5bb655d4a1f0aee6d4b87bdfb45b4052ec0e8dabc9432d7826e4e0e95845b5a7f00d1fabbf247a9ac7c89395877319dcb85b540b0ee19bbed9e7966de857213512266d58276b69e44b44e78ee1f9afa13b988f6bee457fd8677ebf616f3e6d43ce10bb97e41bf5885e524fafd857baf075414730a7b4b12dc6c2e44b4c3a6d58560f5f74fecc0d87ffd2a185fbf138f59b803b4f30319b6f0449d0294a86bfa69cb19b10507070540ce88ff6b7c9b3c777cf7b9787487d04b06bf8dd61339f99b7ebf91f5c9f942dd9e6dd53671a346957fd228cb1a92ae8946ef77650cb6088ee2bff514f7a7db6158f0ae161822687475656e6b54513589bd83c28f7248901cd56ea46d60d459a434a9d1025ed3fe23fa513ca29705168762f7369503ef9fb943723c0ae34efcbf03884865be57e1eddbbcf9caf9b8d2f9b0a976084a1a95d76ae98f474ffe3e8cf43f37a5b29febaaaa4a8b1ed48beef436f9bd8f1ac414ca50d6beac86c7b82c2162e200d6ce3fa3920d78351e1ccf09fc84057cad9b526152d82dfef4fc63f8d7a893597ac890acdc150903b738a6f20f67a8aae648f3cd16fe6744abaafd570f41cc4d9041aa253812d362d13feafbe4af9c7fcd92963cf24438657e3ed85e1537982e72fc3c78efa1fab950fba207ea7b4f8b837c4839c076ac8e3c7e7920a2665c5ceddcfd12e51c411d1a8a12be4f869499aac65ce6a89325c922350213ca81b467909f52824b148f51afa5fb4d82fe88c79101810aa94280005571c5d9c16e56aefca2b1f5e56cd9c0944469f743c58deb376f858ee4b14d4ecdeaefa88ccb54dc60319c0c1f45c50d6437785fa0670b15674f788715a9a0e2c8db2851a4b8b7e344df9735d6e85e9d9e954a891611aa80d2005ff664455ed41c626cf66079aac8e7fb2109d5d8f20ab2a697888490b9631639ab94024f3debe0463483cdcd85508b8ec2fc5a283e75c5c4d4d37a657975b95031f0597837253c66334ece0e5887c2dc9787d98be804b41e014c715fe1166e5f1a6aed183c569e4d681f32ec7fded6a2d9dcecd42d7e23578526b048a41ad6feca4c1a68c70eac3eb68616713ff861edabf813a4bf6adfc287374cba29f2dd4884c3d582a745a5f2e77b1de85b98a950d74bc30604de7352e7e9c29d41abc8a68a4b30e3fb6b3984b81d86a0cc5efa102c973c550487c9c947f6530cc11838dafbf048c8845814662d73c1a9873b53a1587d40577d20de5c3abe47c37efc83cb56a844dbdc708eebf822dff41687fd1bb0a2da72a952e2a5fb252f2dd00dc7883984bd6a787d9b51d2f0254ebd68af16630a4b74573e92a448fe18723aff918dd0049ad5e56f23680c2824322b8cf8db40ecc2dfc4cfbbc7525539c8001b6bb0db170c320436ffec96e8f90208cd901e962050c52f834e5870ab228d16ae9714d84dfdce284f39dc0d58bbf134b346703408f0ab66a700d0884353f83ffb9538fc033dd34a0dca709628d7545f5751bd76e57989e30efe7dea3e5f651b714f561287540ff2d6ad4d750aadb100f6836b4137f65fe2f0541bc94914b5732b1ba641ce6e978ff91a600a418d90c8d38bf36af0401aae396b83831a8ff06a6026db761aece2bba2dd42849b4ea82ca55cd2983453646df4e5e398348be505fd90ce18fbc1313cfae85406ebda2a8589ac0c697491d99601a0dc9922cdb2f410ff9b1993015d3aa69783569da8dc1b9831ccd2f883a7940a95ef6fa85a6558b5710932b139f1cd53c3d8e4b757270bc57461c55e7606476c2532965e0ae97b2079bd478a97e420f1215be514a457f21ee070e0f12fa203b449d04d921ece2d2567d39dbdbf75db9214cb69d1a391f0189b5dedb2caee093d533cc219269af15d98c5d890259e12de1688f2434cc449b56a93090141070123dfff6ae969b47a4c5b5837424309997aa7cd528a1da773c2abbb3f950e66e414121a3cf80df562e809e2fc16e55dd849d57ecba05e371ff50906b5c6fde2df6071e91c597f89b7f38c93b6044160478834a1f6ab97af268b290e9cbbc9f0c3c3113ba945fb138fc181b70b8795a8d5f22d7c5cd58e5ee91c9e5fd61d27ee671278048ed9ed41afcfe1f21cb430da0a851a22a4b442aaec5c232cf5b572773ab5dd42c34bb4261337a2e040eb1dbe5b9b7b79e26f180cd2d44831d77f585e4d407080fecb6d64a40b6f7543657bff81f42d4301e6c8be151f5cd720627167c3036b5c825a49c5c679673fe053146ea2869f2dadf3da1b62fed4ba35f146b1233c7768c3df6cfc4212dff427f33229a240a66f40357fbb625e668b00f0dc62d183d1a872af6a4bec2ed9d865e5101bc7e642ed7290a9dfaee64b579b106478f6d1ef629ef6b85d3a18b110bdc6f08ee27c8d97f198fc230eda994405a9e321864afad6367268d80864f4a7c180e5ddbc7b757c1866291d8e0e82305465d7d0f840377ebdca9223e9bb37acfe2496bce2a0dacdb60be2206abbf3cf548152b2a8b4c7ac201215801240647a3ea82986bfedf0bf364c361ef2622185044eff2aa8b1741bb41e344eaa9baa7808c9a3c17a7afc4ca6c8c81567e989da3cf2c86ba8c204e27e70ce070d6cf5a2b3c38761c0235ea34e833a0a640109b084102908dd1ee224f89a335d59eae014c78cd1201675fd633ea8ee1e7d6ae87b8d464e016784793a921aac78c4027f20c8ccffad56c11c5410499b222d92554afc91f74052ca33926f3e47be806687cdd18837f2cbd61b40177d5b5a08adb14ad911e8b1ea8678128ca8b986a99af370fc7f847e7c08abe7c837307809a9d02bfd30d9ddddea16315f3f7638ffbfde767cda3d0dcb24fd9d2c726732e070c7e4c9acb6e78a010cd866cfa78cfbc21fe80636fc6dd3889a0f312894845d2b5bc5cdc5029d3547cc824ed269691f49f94d3b458c3dc397e8e30e1471a31d03ee7f5033450121b23176252a7720e8c42c8d72a158aa892519774333cadda0f8cba650f6e5963a46d7c5031a98b78ea7639112ba7eb4851202bc87765a50e0476493695039d4f6d15269ca06838ae98b7b0e80191399cf766de9bd4aaed5f9897e0fb6cfaa432cba019d11ba056bb10f3f26e2acef791b228160e4ff4dd3039645f8fc15aaa57f7264ba5e6646cdff4a91caa63dcab6fe9ac41765ce72c7dafffd55e98616eeada3fc9a1a6f7bed1b180029ae747514f17c9979e6a74c22bd03206d8a78944bdc2a017b7383656b675bd36dea7315a9e60933f9a36a9e7003f16e2fbe67837892d34aab81aaf3b75aee2d002dd80eb7111c77eb976b68e56c4ef10b2b688bc3533c32b8c9479eadcc8e18520ae62d3632f856261ce6e7f0ae83249a39dcf65492445c41cf02ca25c55ed77e6a793ffad317c5d9b4763125efeee46a3a54e76fd907198b1f434994e7a4db53eae4e2a07ff6b6a18c0328896729708ef018e40a9ad914f15f2e8cf56ac21dfb2fb7666df918625d150d22218d24fedc6ea082317244de65c0062746f7b008c4b352b24e4eaab8949a7df647f4dd1b4983b80512ed8bbcc8fa75c519e5e7cbec23f2c7c21ed90c71727bc7074f177ad6ebcee6031681061fe2330673a815a66456d5b1d4ce16333bd060f0de52410a129dd42551968c62ec2db0f98edcf949d0a1bda01c3289714790cf0ef6ae3a773db4fcd493895ed34177a43df2f7076842b353c1a3d44c155bc90089a212289232390d1760bbe82ad9d1cc5b717b3d1a080d9b878692d6faea19beca8bddee5fffa3644ffa612144e8f980fe339455c1ca328c3087742a87e2f21b80432406ee49cccc769a93813237af641e178dc6abd4b834bee549c1ce1b780d49b2c64b9348c7b3172d0b97e122bd6362554f522280d46e5197d562af75ed90671d58653560108a982f3666b7aa33473bfdbb2d72cdaa80fdacb559a3ad463da813cb92862c9c257aea2b44379bdd69cb81aaec6b8ed73d542406962e5ef38d44a6e63373ed34348e3652b0ebf72a247d656abe6b5a48bc08e913373a91f11d2219f402ae6f02e0c97f14ee344f119166a373cbf6ce23d3b5061c2fce6fe19cc11347cca901d236ea7cd9bdf068b7ad4e9aa7c954fa729ec7a20d9263937e683a0310fab60745a8eb9155f020d8ef44623622ae674e8bf5cf0d92d006ba50b1fb9c94e1209ba0ba9cee8307d670ee4a99faeca1237f5e2f74b723b51d145283a42d6e5502eb9aca1fe4d5bfb6274235b763d7ac7ec034181d780edf65f096458260e6b18658032d34e87ea0478312f88dc3aaa053c880e01873feec661d97fffd089e7165c8d366575d1a6ce2bef257e8d7047da733aaf31a9bda1342d7d6d945e1c995bbb56039d12b70803652d226bef010d70110b4c0b9a9a0adedc2baa57eb6266d0d436db6a60f81fd2f1f2390aa1d462a3b9a7c5147c5b879bde6d89b5bd311f5a01b84e43b9dd17ca1e0418f9782794bb34616fe73ff9aafcda525c19236a549c2e2a05663cf32c95b3d6ca012fce588634bc6751f8ec095107c0fd70d28d39888ab3b0e4ba8b5dc4fb52b9be9ee07064e58e3b58719f3a98fc6356ff2dcaaaa23b2869ef20ef9357089e9574737559c158167efa51c0a6bdaddeb4cfa00eb67277376c44598783bb213a2e94d255036a6aac3464f866b4f6bec63518046f640261e300e0662924a7f6a1d73f7a8cc47bc2f03f09f5ab91f8743a857c6e96366289145f3cd0ba7748ad425aa5c6a222439a8c76a529049c768c6eadedac6f06c6f0a3559235eaf9369e64ca2b23d1a7482a6c245531f5a324551603cde47fe19a2e42805b735a8448705c090490380ef639435aad62ae7ae4ce5afae20cfe036e3029a723707f668da552949478fc70734397d6d3f8d5955bdeadc47e402cd9925be0abf3a020b19c22a695fd88cc40684fd075e58707b73b7b16f18b41ec4dd21d97b75442bef700627cac64c94d18dd90613b927e125adda1706ede28786401e848b565dfbc6405d42ba4e80ab7017c6dfa8bf61aa26223e849a185d1d0ba195439fdf0f6fddc473bac4c41c62db0d1a10580ea4c8f9841becf58fbb9edfc87568293cc0f37760e7dda5c8a92ff62797ca37f9c000dbfe719aeaac97f36472c05d44664349a55708bcc4a92a386a841de4af4ce6524c313dcf0a0e6985da1570fc4fc1cf8d748321a502389e5d64534eb71bcb892cdff8e3db276d5841423d57eca599d202f7697d840940208a806efe5a56158b3eacc3f2a4241e67ccf099f115492ddae6e311d7bd98bcbe8834ed47ec0f843327cd8fc7ac9bd6363ea7f9d1832cac67d73696248cd6c8a908ff012fc66bbb708ecec30fce1df32731853175530747e9362ad07af2cb524c894b63e6f0cb6cda7c116139f10e82e3cdb79bf668ac7d1917df34667f272770321f325a4c10f265787526940b98479ccce9cdc5bd5621102ff8588acd0f826d3e364e1e71515f14f921c7205c32408c602095520986283a9064a92492b780347370d6b25a0ba4bfe09dca5a68791be164c329d400f40cef5858094179e4cee6851d1254b5b98fc5afffbe917cc266fb089bcfbce1867ea76e55062c59558ebf9cab03dfb563da84a573a292c655ef6c32f0a5ca32c1dfb8ba5d14d93f85c6161eae4dd0190573a9c9e2fa1798e6e98661fdd46af83e5c2559b6d0818b6d8053c946e4dda4ab00a998236371021d8b27434697e1d441cc7889169d1dd83a2c559123907a66a958874d80c6e158f51b2d71839698cfccaa592ced12ba3599840ebeee31f852041015798addb6d1bec90093b1ac1b6e364bb178bfca0c8c55124d29953e0b4707c04c0335123ec5c726ec09c8eb6eea303560712c26cbd56d6162cc0a8b9136b0c960f1348d0c978a3648a6500b534c5e5b506898cb0915539228e426d697467931b594ac7a99236393feba4aa5b0421446746a6cccf98ca74e4d74015ea17e4a7d4755b9b5c284447a37dd20c3e8f4ba99a5bd01b58417fe8d46c6876886a60199612a82bf5944c1db120ab7fb5cf599eebb1496612c871f97dfa404902d44aee2d0d5c3cea60de15288e93ca784c708ad65fa7aed1341c0a5108b769679e0fd207d94983827a5dcbc9e8721d395aa2ddf7f110fc148d006a3bab79cc02d563491d9e833d37e11c6d78078378c18f11d959c602624621fe548d33ed5abdd67451eecc95942b0269590acfe8b5d67def2695860b899eb80b89c3ca996bee868c4a1361539d4195fdf5f5afe919b505ac6fb9737cb98dc86e5d7f250f80fa222ae94f84e66330c2c4476e1539eac0f565b22a4aee749ebaafa0689285bb2a960f389a19e68d0226695998fa6af799d50dde14de43fdca3a1ef6de9d1097f87f8a3ff68b630848f49a7ded4901392eefae01bf1626685c9ffd8bec53803813084a5f9201689412c08e33974bad7d340408d499f0f1d32567c14fdb004bf9c69438d8a1e9d0462017338fbafd492f859f0e308dc52210c69ea47b00a8c2b4aaa16d84f4e16c5d17568ca967f71d3ec247c034efc223cc10935ae95006991b92798bfb91b4b3a18f1ee61e064405d4c0d7dbb5ae418e4a7f38a7439657ace12ebf0702df5870faa24f6c8b13139f16959e133024e4ba38238973df61ec9cefcebbb379ecc652ec001ee31cc0be24868e56bb939c2ea6cc85e849b14ff7dd2f0bafb6cf3fb4d3731b9c6a9153012943c29f10434745e857e391be206bc82813a2530dd7f4bf026a2cd6499b32d17ce2a11bb9daa2f80dbbb2583f61b11cccd53f054e0893a9a1b7537897cab4d72b121f1c1171230048c55918a4dc93803e9d002157a7f42184d480377151b0b680885c5f6d01629ff8710236620ebb8e72028e955a454906326047ac2062216dd1cc323fa251d70722b975b282cb9b20b89dc0c0376ed5922e83c0e477495495bc09ae803defd8afc648f21358b31c3473c68649b32ba59ca4f941922ab3b1783e41653da7a2bce6f3046e326dc6ae5c5dcbe61997075ea8f6980270a6b25e46efbbf39054c27c0ca25b86081f55f7f3eafe72668adad33420f2af6a47a306cc15233765ae205901e0d13e7495e0a9eb482fb742f0d4eb39267d0552f5cd5207a81951dc7474c44af74f8228b5dc992fd48cbd8df8e35750c6cd5833d1ba6c2fd54b295498780f46424080a402bd9f95a71ce91a7a7c876716902f84cb060010f00f4e2812b115b7024068e68796cd506dc23abf936247362475eb5a2344c0786e0504adca99a642d7a6e51aa96dc20eb7fe4cd6fcf1379eca012a53740a6395c2ebdb0914eed641ea332b1c2774acc9ee67d761dada62a446ec830679f531906e726302b13789601c051718c3471f1402f5f3b34e1ff899ee6e1043ff9216952cae7e243c35a3b573538812db56ceb7112495a4bd833598ac5c231a1fc2a73c181a41c7b1c53a9e3489c6c37379ea8947d4953e59af394d406bb677c828c26efd19646e0face3b94ea81d2178baeef03e53b44e99bd96b4a5f6f929372bb46fe0cadaa4a8e65224591c773577400ed214d1487a7b075c164f999608dcce4bcdf383f60d44120ad307627b45f609022ffd89a68eaa06c418a21356cdb5474a031ec182ed13cb772b5007f2138e7d08d934968431dd4d528898a006da8d80de9cf5618e3dbe06eca064ffe4c93dc809b13da03bc0d7db817ceffe470a9e874918ef5a00651d46807874de805a6010378066a777e7903ca1b56cedf54e98542aefe3d9d75982086bf957704e0c52aa28aead0c2e083058b4f9d0f98e5c7660ae14e69d7042d0f8d0c1e1ad84e5ec8c349043802aa48bf5931dbde9aa18c5d185467155f7fbfa614495bf17a968ceff49d57c50824676f4b7acd546a29e4f173ee08b3727bd441432e73c0913032c46f8208116d18f5a07a5b79e54221f4eac144fe6902c9a9ab2c271f71e1bfea33f7bca49512027ef7d21160cdccb0f7da490f2bfb83e26a2895d0a7555c348ab13b1a1c5506348448d374f2205d053ff6e889dd8200f14fa828e18b6bf20d7a5651756581fb1691b6fff8d01ad9a3151520e0db5c570a1b5e1e71b830509a18838f3b4049ed77f9aca5535c941aad80b3e5fa3ab6d1efa7a03eb4701085ef1fcb5695162b4bb081b54632d4e509a3db394ecb90667b5314aace8ffce41f828936183486f91a2641a1197aa596f3f029fa14f55c8b6f8504bafb7b8a65f2225f12c78dd02db65b76326132a24add480beabdb7302c3c63cdfedab75f9a2af35eacfdbff2b40207dac76104b953e3248ec63f535303dfc6523934aa2ce2bc35bbd3c7425655a054c3d64b701b7ed49f222d4e0208d6225130c93ddd7aa16e40b3d7aa8b7a53a4b758ec630a2a0a694fc507ae79aa2ae56a474b7af8cc4e872d52ba3d2b98a2c5591cbe52af43954443ec7199252fd1dce322eef4db53a1b678552d5a2ca39c68b86055444335fb867ccda4573b8f517ae2b3fdb5a705b73e4a917babd2c7d3daa88428a1e71b7de92a4796eaf0631079c881ba9e2c6f234b3ff8146f9b9b357e4d46e051dbe284359db8401f4b1dae5a4eaf3288ab7f6c967ac320a1e2b727c42730dac527760128376b84309912b889bad4d99a5c6a02af8b04d6f37e4c5e376fdbf1ab57ebfc993f0da2bb00646f21ee10157d959f2eaa63f35bd6c54b427c6faa7d58d10148be49610dc52d50ff6173e0ac37cc4edd9beb5e713b9d5478ed3139aa0def60db50ff3ad6961830f38b5a2958f70e709efd1908bcef254a93a10fd222f78164a0d102a83d46b62b2b1bae3d8600200690c64639a04978a9f713097521cee71389541ffea34966da3a374a62295c42579d7b418dc0817c9338c334046651f57cb43045d274768dc8d048a2bcaa19c65dc5e97a811b94e656e1d09ff0db2f90bbb2d164eabf9bb97506cb9ed6ab38cf26efbb5f084284ccc485f6dcc890c496302b2fe04e87726b99010c0008241c2dc05e5200effd5df836136ed33e104548a7578e3ae1f68c8c70d831878cc49d4de2e809d83b6b2cb21d0cb71a6641adff6ed1d260065db5f575b19f3d9187cdcc830fb9087e20578cc8e39ad5d6f1395d22f04e1d3e1fcd6aec4c73c8109951ecfff5d4dfaaad78269d2dd0b1213589c5fe7379ff9d24c7ca241fd0c961579de57ab31242539a57746a1284b5cda4bc9f524af67de1e31c6a38a70ca54d521c9b77832cb209ce4102326b2f402a42f4416a5968e82f3f61abeec4ba52088657ad4eca71598105b1951a7f283dd5bdc261e570de6180a3b560cb3230935ae924f89a49310150f1a12ac54c275925b4b14c6a619574c42aad290177f287cd5c9a8a16ed89242165934296f19747bb528aa4585e245e9cde6a1b9215da9706ae0469316426c799a05d8942e20adf91e5b439cd7b251cf89534da505a69f5f5cb401068a3857810c07f30ba242a55bb133b4e690b60971cee46bb229008f47f22fbcc2a7770bc6ae172b0450ede525a95b4e6ae9629d280ba3be28debbbd81d936562ba0679d3ba26b39b59a7dd802d6bcd682c681bbfd4149fa0a54b950512916d00dab8ba2ee9888da8dc4636f4f7af4f3b201db8c34f30b7fabef10f45fdc173b7507d04ad521093845f5d9ba1042a884b7c90aa8388c95b59ed92efd9b8efd01c51e4bfd2632a45f9034e0c9abab1834f6ba6808698a8b2d0d1267776cf709d4bca7230e88db26747967196955dee99cee542506e54477f2cef6c07b2c330c5f14616368a63f6c2d1f48182c28713867b9be438fa5bdcbaba1ed4314a900f7c148a803bbe1bd76f055cbee4b9d5284a2c72cab29e88510516672c6f81abb0d324fe244c60c10121d1711a243aeee140a2e382bf1d338061011dde5b7566945bfa150fdee167d9aa103f37c74dbc2cf0d4db79428f28b1672670868599414a0b622ce5eed6630f24c5829b31bd5098f6dd85347b4c1cb4f3f0e6116f085a35ba19d248a0e6141a37737bfb8871bcc825adf0ad959d535b51cb256134da59df6afeae4a45e1835a4d22aa7292a2c4684f0cf55154e55363910e354c4295ba1248a8c78cd0acf4a3b69aa14d618245639ce5b300232529171cfe58b6dcc217cb75276f77e83f73a9d9444833ed1596e10684396e8fa15cf35715c9035a524db3de6f1ecd9ab29952638cf2fd5efc9ccff587c39599e01d674856f08c9c962e141223a1162f642d18bd5883d1e320fda14412421444c749204d4ec164be395e2841857a122dec1a3cc6f71b3edabf734b9476245dc66273931441642711178d526a4e44c24cab75975e0f5240982d720248cad49635ee38b9fa0809f3b3c04a955ce2c0c0ac9f30ab38cf398407a6acd4d5a2651ef7f1b7d6ab391a80997d5b8f38009fac865cd6cae6d95a017f79b9faf2c3b393d1028d1b8544a9cd03e485e68148f4f32d23ef9f47abe03448dfd18450515f93d8e028c50493ceef974ba58a2ddb45680fdbac18181bb863414ccbd75596d7707f51e438687dcb361d3809e87d6a0d723d5037c5bef9795303e99b07821800c3eae3add9295fb57dfd1c3d19c66be30cdb39bd5651352617c557cf5c8f863c94a318c048b613699df215c0e3422a2e211d55dc16dc105eee5092598da68232b9fd5f1c2937e92ec69584ef8924a35e7374671f91757014c855894dd83081c178f80d99bd9b0302874ba4412c75fca2eb43cd2786379b3c00483c78ce8dfe4028f865fcc3579bedf4186e78dc8a4380a97b641f92f7953c09203f2a2b255e2f2846b94a412168050b1005820cdd7c8def6450fb3a343a37d950813f7c32b0c634677655ecb10f7a7fa6ade00f551700482f19c2eb0929cfbc2a897bf721f54639a6371fc8d1383bf951d9ac723f2428e90345f47f194db7db6d14b9b8aa1ab7130a412673412e2b58bbd90d1c95230e172a222de1eca01a350ed2532dece36824ddcbc76174bac9cefcfc67bbc3885a017a67ecd87b95c9691b56b8ccfad37951c9d3eedb8ed6feb5fa3ab54d7730f1fe5e64a69d6b499b6194a267aa50be30abe01335a502b5ab9ed950e610a202d8a79077ef79110c49d12121966918dc6f75db857508bdbf4a5e9f97cd545049e7df2cac96a57dd7b6b778756eeaf6dd6ea950fbbdd547cda5db507945261e7c079882dc115386a40e2cb8ad36d9f0161d42eed2b1cc14de79e285407c20564a52e7faa91c338b2bf7eb1eb6751244c30d3cdb0a749109710c254ea53f1b53cdd7f63a4c4a3bb465787d57ed77cd8afb1c5e0fb089ff7f8024a569ec971a0c6f52664a2c61896ee88c5b5c60eb1e043d42f81ee82378016e4dcefe2dadfb8b749579a061101d75eb7df9f18f420cf0f5f59349081047155975a3daed0f9398ead556904714f143a358df762cb91267cdf8d1d986e71e57bc7a779cdd2d88bb3338842fb03cf407046ac03a8e58209e514d076d682a4a9a83948eecddb3a32b8e2e02e86e4e4daad70ecf165df7d8d8318ae1e24ab23cc88a018002d0964c9b5b0f79ca312830d001d79ee38864e0e062427f4b1638d6d68f7624216defbdb7dc524a99a40cc308a6087d082d70ceb67ff3c5450a8639db35f4971299549a9c5765c996dc969ee75096e30d7c69fe72d77b7bc0b6cf6956fa8b88ffcd9a36b25f7dbe14cce961397485a65d8af66e60d39f3ed469e9088753aaec88845672c3c5d23cad78929513aeea638c372e9ffc4ad8c691b81ff5749ef775d756b0470c9aa64d25e4f9390e246739231227e3a248da4afab377eafec690a27d4f77faa610a0b514ed93be1e35c6020240b77e00e9ebf1255a89e99a4e5c88af51242c47a63c87f4cf02b845cf15b347ce3a2bba93493539a11904ff73a42a0925947d148832ed2862edf60c517bf0d4c4d972c6bdc72787544931d030c70af054e29946b0942452524a75644e4aeea5a623c76b360d5b8ede6f447a1b9bd54a14ff41d0f35e4a23bb2342d2588a1d4c7aa4702c62a4ab14bba7b233625729c56efb77d1b710dea61f0f747b9d178e475cfb227e9de76dfa1ca75f64ff7936fec545ae52fb953b793be795cdca0ab41cd02131153ae935568a9456eb4820e213c4c26495cc949f268bce688d74d17f5e81ce9cceb6bb10e7719e2af2fcd12b9dee49706d77775a379f9e9e5aedc59367eecc1d2299f29f5d4c2fb61f394266842cbaf76af8a6b6ad47de9bf61ac59b9db366ced983edd307c7186f5c95bd7e0c05f1aa8fbf1d7cdfef3c2a6f6eb5dd4b591197dd88711b9e9238d3c89cf17fc57cc47e78d82a33229319d9fef3be6236a431ce6d24ecd39ee7fd80dae6674553b18cbffb5ada773794b2bad5a86df959b2a6cc4a9cf99a33584b9afa89e5397311898cb266124fbd827cb1fd6dd8459daf4934f146dd851d9ca29b37f371bd5eab54699a667fde4a2badf56bc92ac5ed65cb952dbbbd9d9cf53267b6958c8b363c8563a4eac56e1a8a52d51dc1de5ba94f1b836a1feb2776905b5221cf772abfa9235fdc9d886e3a9d61895459d30438992aa1c0a62f5396c3c0a63f6bb5ee93e9df79ea8a7455e4f9ddf5be7aede9e48bac9eec8187b4f5e9b67327888e1c09c3b73342be61e30308af82fb7654641a04c7d9a7f4ed0f2efaf7f23f84112e7a1132a2487dfc00c4b51f0fb9692804c8c38c27e4e009db5a1b2105c05db56fb5717505043b7aca99b2a64cd9975b06b6f4beb913448aecb9e84f8790a7c49b942ac95d0163ad9ba22b4247843c3b29ba214c8cb54e085164cd8aff20ae8be982d0795acc800142d6b4ee07f5ced911c9537b695ae7833c67d7833c3b2872f7baf56a1a0ff2098a0b184328506b61e5bc83fc044aca8a13292a2a3ac89f9283dce1a003cae28a2a706c88d9b0f603e3d770525474836c031d62718ac59ac85d0d344deb68c0449e590b1d36acf9e46e069af62f0331f5a5667831c833623a0d6f1cb7616d89dcc1a07b41e782dcf588575e21abc0b12146eb5a9035ad6341d6b46e059aa67543ecacdb8b8e6291e75b592867ce7b87e9d3e7fccd04f265e6c0eda94496d3a2208f187bdcf6f79b4daae60db75bd0a94c973fe5cff972b6a0935e73da9d53cfabab3895aa99b7a3b6e329311d4da99adb358fa2e18b4ddfbf9062d389378f6a6f3be7aeb9cfc3eaf9e7399523f98dbeed407cba16d230853420d9322cc2579d7c192b6cfb77d3c6b661214ca756d850a4087d4541eb4ca609aaf2a6c67e9a0a42a63fbebd3abc0b8e0d3145a40a08579bf941d6340a0d2cacd08135b3892211bc59412524e4838dd325992d1f06fff780eb62a0c8b4f3b4982193bd525bbe4b8c0d3cc8dfc89323d24c86b161079992b2040292b1e5531e4896486910a67842c6d8f2a95ef9402732fd112c9580e105890b926d579754e9a0c4345be0525d2ee6209b4e4e4d4e1e07f904c5058ca12115a0c0969c814014961f9494951ba4a8a8d8406545874749f96f6285450b14198c4c0b2ed680a5250b50e622db34c82d303cd496ef92c51555fc8be26ac54486f16b38298229da3eafb13031e26264cf20eb108b138c0c421730986062e0f25292f39c59e22546194a5bba0b0652dec8d166cbf1652ad370e3fe4571b57a810c982b48b11ddea6465c0023a28cacf8ef11535f6a864759af16e4193156c058416ab17d94585801a341dd3f278adbca6563c38218992e38221722242b905179e0364445c3932a259ec68cc7c51edf5d2ac8332b6f4ad65be17285ac628338d9061c43dd258a49e4550dac33a62957ae41f3350475c8ac9d021a1b3cf0ffb77c18c9a24033db47d6c614c8b51dc843419e3f52201b6ad0ac6668d0a86864686266a4441a181934315e685c421afd305a6868686868586868686852685668545068684a4a9986868686066b34978686c656ead37746f7693eb9a554d950c2aeeb78a1c5cea53f2bc6d6efadef9a7ea5f7beae7c17a736ab0e826cbda513b018da4b1892bb1087ccc52ddcc2aeb585f3358c3ba03ca32cd2536f1bfdf6a4cd6e5c28e70cf79dc66164771bedbe54e2d979a673d1a6db08847e381e117a7f0120bbfb90fb4dd37de9eeec08847bd41479d480b6ec9e6af2466e6aaa97d2afe5799ba6816c4ee330b2b75b4b9c6b5074f2654c99d1ae7b8efb3c278934e79c3b6b2d2709b6e7e3fc7488b2ee4b59739530b2f3d324c89aeb2af93c52a19dbbcfe128049d6d5bcf90edbba4df0ebcbbbf3b94b50dd194cb6bb6998b4ac89acd0b29fa7fe156b4c336db61db86282be5455333af4981b9e885ac49a9226f432fca4a89d114cc6b52845cac42d6a46c21c594174aa6642a9b9af85a261f174b3b7f8ec7282b6588a65284bc267bca16b2c624c52f4c19a2ac0fe6a50ced6cba51fa91b433659d64aff1507964016d7727445ef3c9bc0b59f3652145304856c9fb8f5edb0f246ff2639c3308fe8fe2e6483fae36c7daa41f599be371940f0579ccb6647ee983c9be2c3e216d77738f3411e98468a424d841badcd32448d6eda14da051d81cbdc2e628d1e69ec6e44d7e2e34cd4c82ed1cbf38bc3d27443edb33ad78931ebf7f3b6c3bff564431ce9c648d30f6b8157d423be09dc3924f0af227246ff2e8a5fca4ec3eef4c7a0aeeeebd70b449d86389094ce59ee51ed4edfe54832e3e016f9aa708022ce60570c613720005704aaf9993524a299d5ec46fa1596ab7507b6a679ba31bfd31070a3950c881c2179dfd393bf7e85747d65a9b4bbb3e11513f7ea4f4f88e8b51782931618032e5af2259392e5bc7268529b3e2297fb909e55963aa9d616fea6aa28661f02663e36270dd4be7b9785f58bf911e919e9461d45c6a2995b06855ab359798564c279593498abd285bd34f53204d45e10405a24014887282926292a272525931adb094b0b4945a6064184f7a3d3a65fc7978db2274f15c5eba97185c0c199b0c180c236a62eaa666d81931354686caa85ce5d1b096864c8c4a3503ca605e18adf5070fe8e070cad4bd7e752e101b2eaeecf5173550a3f8b1d31f0d36fd5e7bf1fff07e10117577a355de5cceb4e5af7849e24000f4b21e82076515018189130139e3bfc92fa44c025af851ede6949b3596ce8a5e94443f7e10fd18420822cec5b56048dbda1097eb1eb1ed50d8293665414152e56f711133ae32a00342080241743d50cffb5adb7bdf0ebeedd3ea75e2ec9944c4ee7fc25c946216213271661472c67f1e9946867089d87006d54d07ec1b4df0372c480a17b3c85363fd234758db7c0bc39c76039a41beb963af868b1862be8080808080a4ca1f02410c710c10e27c749df755cd4e1e6ebe5ce4a1ac49c467131367e2204ba183703601843f1e2efa7b5f065f404e006970fbb629db8a4cfd80fa94a294a6adb624256bb56a5198cf8ed36aaf66e38608c4be1b963594dee3a2af8020de9eb248a3e76a3c174df9f5f15d3882d88577f793d3736fdae4b6b0e33e7bcaf5ebe132c8d7a32cd2886aa28cf7f87017f6b4dd3007f69d52c43f1fab7adc553f8c2bcdb7527be347a1bb5cecf121f286d7dcbae3f9d7a34d4edee03b03dab80ab4619f6af83f4e284fcde6da2ce0080e81a8a00d2d1c6512d046adf66ed6daab6199efd57e2561528336365aa85dcc7d3e892f1ffc4eb40333f63bccbd36afbd2f5f3e36e26a1e00cac3ddf6abaa6e9562ee6a9de7799d63ee6a20075af73f6ee3b75cb555bb5e7d5949b101e78cbf9c610785cf076d73ef53aa34fcda56d90a2e0004a2fbba8db332050b79b5ee6e587bab69186fda37aaf4da13962b392f7ebac377a7458c05e89b5d5b9287bda68af5efcd936bcdb083429e2feffd5a7744c4a69cadf64ab1be36b2770356aa2c076657bab04fc8cc7adedebfd6fd5aef105e33599f17843b5177e3c10eb3441df8a573aee3b0a7bde3f276451da2a8853c7cf4f0430f39e3e128b5805fe8e791602f45fcd29fc39834d23c7bb58f1e7ef0d4c4e9c18354f9631e3c629addc1f4cdad66efb5f75e0d5b50c3ce840753387ff560b272e68fee043025974cd8e8afb747f0ae7629deed2b9e38da4b2466aeb66d5b572dce0135bcca363bc6f2d71172402320377166b5e069cef8774fc839f266be7fca6b7a1048592ec569e238147ef257c76d233b4b9254eb515a6d47bb23b5dacbbd88783b81f84d505bca648131c6d58e3234bccdb9e7b67d2dfb1b273b3b317ed951ad8643aeeba8bddce6bd940f62199ece3285bfd3b86edef77d78885d8b789fdb942d5560d39f9f47aac2f5a99a766987e577576aeeb3bd8634228d4824522e7d5fcb7ef6b67c5166256da462b6375dd54e5751a9a43b82cb6bb86d635e254343e86d9113b65b190fc9922bbdfd8ca6a13f089596d1f54f30f616d601683a31e11034e5847c871451d65c42367166124e1435a18495b9847c938727e663741027209a20c40f2213ecf2e9f2e99a2eeff321d36c5627ab550f3c6227284959313f6619191da35b3f19b4526cfa471821ca22db5a295c9cae1c6461386c9adaf4b564d918968cea5fde704f5fa565748cccdf596d6152683db0413648e6c2a451f8c9ea6bb6a33874b9a81705790dcdef6f61255f2b974a1f0fa4115471854d332db2a78b04923567fce849a4507e3a0fcb5c992a3365fa4b9c730a7bfe2c02522171dc88912af6fc099b40ce7218d3cf9f4dcc60067196cf84ec971fe7903de77c0d481c2a64ce0841c39e6f84bc217df8a39cb97c10ce72428b3ddf0012873af173be68ca7f90371eee7e5223307e6c19497b1a59c91b8e45e7277168f5d9b3199e0a47927f0d3271ea09e409b6ff585f9465c570c46e64e2582173c67f74af45b5a8d29975c1c86484634632716a9239e39fc4916c7f9f51960df2d98bcf844c9c3a9b09d95e652eaed0e5c4c4a9489038b1bdea70c46f64e254235e5d94229938d5890c231c73cbc812ae388f8af3fc3631f95aa612106502a2645688ec24b442b6bf34a945b8a888ba041f25816d7282124aa942a14e4c4e269b6488cf15d253c9b0fd4f25a56c836636e84d48a34f86a424cb3224dbffc4ebf0cbc8eb6564fba3ee8efdc245776b0639e37f87b870385e218e06a9727f3044a9bacaaa90f72fceb2f4c6a63236362da127960da229c7a9b9ca58159255998bfe41d8066dcff58571b645d6b5ddae7cad2a9311a5aacad8b65fabae475cf46e166151648f5821175d86459e3fda29d4778d44eba52105646c5717274a45f9e44a8f0fd06bbaa66b859447a4eb93f21b5c53b6bb2a038baffe8d0a3f224d51418c4d1ccd9ee4c4993875e2cc8f5ad91ec0d5d1c2eba22967c246bdcd71ecc7666b5ed775d10ecc54df77e27497053e59d73571ae0a268b47ab876e09b9c6268ec450cc169dc90267ca53266bba422aa628643344b4a7cf9448c0b1e5d78433b6cc5bfef6988ba5743cbce22d4ccdd8f60029046cdae364228113c682070f9225e66f36e10382d5451fab1c1993b284074d19c9f33b4f4f9daa7748d12a010859d790706cfb1b12b615c2a6323e1adbd60020effb1d27a78f624895953a32b65580894c59967d171000d2aecfc344025f8fd3aedf719e0e564276c228a5b025151b0bdbca60534f3fe03b8bfd5301b53a726c5dd9fc88a2bdf4e57f05d4b0b8927942a7a115221e3c7ee4b5f50cdd8bbce99c72b46ef545dee02d4519e958bb9af42695b1e1b117ac6511d7ab5dcd8aa27804f145de781abe163f31afcb9bf9f7630f036d7e9833fed7ee206b100c701102fec3c449809cf14fb21dc902a4caff08104295faa6736e1b4ea9f24bede71a4bb1630c44100c789142580b41275fc6eab3bdde0e7b9f98573bf6d2c66ac583a6b28f9c1b3636f27ad0f697bf26d5325fedf10144d4941e6791a84737038c1ea90764e891461103a547931e4db3ed1fead1d36f828d948a1652d168222262aae8d114dbfe29fe287a34115167d1c9887a9df6887a394f127b448d2843b67fc904ab7b2415a1f88c294c6cff4f8f6e863da25e295718bd9d917a00a35edb5f33c1b63b8f0b711775ed354b80440aec41b4d7f61d159f1bbec3112f105149ddfd059d7c39e7e4e2bff5c2852ca994aa18e08e8a6dbf0a22482aa6b578af56a268847d8bb0ab84d15d8974b8f428a2c67b74d9b7017a6af8d69f9abd965eaaeb765d4db092346c7da0b3f7c7e675fb4a7f7bd9b325996d2772249b4ea1e6206f8f3d1f2eeed5ee86f01a7bb59d19640a99aef00a8de0cef42d72d16f12173d11cc68c9a37ef678cde644ce9a3e3e856fbe6806e9cc936cee713887b8e83d21c8dcbba60f65555238d69e99ff286b5fabfb14961f6b8fc62344597793e1d069c8b33d0779bcb3fdbddcb4e7f27a7cc35aa26c5adaf628888aae6aafc71b1224d71f3dd72888b262bcbfd795c211cce1f8e18f4641381c57bf85a34d8c171b1b97d52a0c37d9ca4bca8211aa84292ff1147bfbe90d71d173cdcf8711a678343d977b43bce67b7fafa7d6aff5592a78200d4de181bdfd0c3d4985c6c3023bfd26a3fe776662f22ae1985336194a38627024038137b14f7ef45ca3a00fe4f9e32828c7515aee134d44dde328685c39e971658f9b6c5cf9e9eaf124bbfefc78f0212742804b9e7e8927d93dd5c76b346f81f15a7479d1d1c38b76d1a1d6fa350cdd320bc7eab38407b2f663edd96156bab33bbbb36e467f8a5ced71d181bc46299b541ad955b6356d0917dd5aa0b5fd8eb9ad846d8e6e321785b623f3c74da6d51eaf59c26bae46a75c916d7068c5c11f7418ef8e8435207566c04ad2cb39db73267f1c3aa2432d214ff97da7d2836ef99476540af99aced5b13a1df5acae3a54a7b39ed5aed35dcfeaa9a3e95baa80ed349d098402a13e8dd0c9270e30d7a05343e93af2f3016f2f406cb444901864aca586db56e60cbdbb525b356d37a7abc452b4f63165e595bcb29dd378e2af3fefd703a36219bfc573f7d05beb269631d2428d065d9dc55c4e0e0776861c9054597b35cfead80d540dd77aebbd15e36dbb320b03428af6ab8551d60744ca12b69bc4843060b52d9c52c5d5b7d66e92656134e52098b3856d0f1d30e9a88653e3f0b53ec2320b34fb721dc7719ce7d10d773c1750245cdb67dbb51073b66b9558ded8c7e128c49c9520d797da8f251b7aa7442662d297154f1e2a0d92e0c173b6e92c0dddfc6e6abae7defe92447727a7fb967403a9f388eeda0dc4ce99834ea587b6e56b1a4e571da4b556207318d0f67df92514d8feb3befc1b156dd3276d4b430bc835ec1b4ea9aa4878e5a2932f4f689c363d4e5e9bed9681ee87ca8553de60354fd3407861f740c84729410245d08d5f126d203a4074bcde709c41b8cf41bab7a824640bc8a25d04ddf7a58e94354620dbee00b2a9d419c1ed54577d3f1e6ca84f60c02fb594d2fa8d708801b754bc96628ce9944e3ae5532a29650285edf93b1b465952ca39db72166df9538ab984b37266135b4e27c64964cb6780b382905a4049996406d992ca937c20c6a725369365c25a76b6a4b38663ae5f388a7b8ec271b5670e479b3d7d481365c2c070c4a870cce09f4cd19e86e88e4938e25238661f1f87954ce17c957004e905615773d88afa8e0f68b273da0129f5d9730e8dc2d1e60bc795178ee2d770047368062446b05bf4d461ce39e76cd152a7d3f3075294330a2be60faed856804417db0720c5faaebd944fd8f5a5943ca8e1038bdebe1ea55d5f56c04758aa32b0828da0300a44c53313ac8904ea69baa594daead3ca6b63e079b57a944aede477959d677724f9f33bdfa12cedeb0ce2355748287976100a82d37a380a51a9a4554a29dfbed45a88d3f6242e7ee1e2d442d108b2fcb1ba5ea62a0f08e64c79f6a476670d94d65a6bd55ef52983e0d5a75a3f7c71913e95224f4af309acd5560a782ab02f228e39e30f53e27114c141831c26c19ca9b878a3e25241eb55c3fc8868d5bf78e38d76dce62b94d66da35a46bc52a3235bb5296db7856ceb8ab3820882ba11c45ae9e6512cba2853af57e967f057361bd026457bb70c7ca3ad5d29721810ed942a6b2bf69aed7a4c4c3f7919cf4c4dd04979e3a41e77bedfb81856e48de679cdad52ac2bf50680ca4db5f9699656fb516a6fa57765654e2c412d5c4bef8abcd1f076ea13c87a16f23ce25f6b1379bc71833ccaa7ee04d559fb8e229554b8528a8dcc8b6fac9b6d6c971980eb5c1e2c88374c54728a0a56599173f4b5a89c2b2cb68ab5b2586b61f2c63ed5e2d3a2a4bbc2e86bdd9f3cfef6c794c57560f658393445296bfa8c86a60f655d9ed6156285ec9fca8aa62cbac5ab37c8986af7bb2ad80f3f3b6f6d556e569bc821153e8c6d1e9eed71339eae5301834fa7d55e0d6f5ce7913622af97866ba9e4c282a400227df44b4c977484114541a6cbfb7e268f8f8bfed3c774b242fc30199212cf20f0ce204d9fa074f09019618f33680a3934e5b11f9b1f5020bd30584c2654b708faaa773beefba19bef7c3498f45eafa0b5b552ef30a65374b4de6963e36d78b8eb95146df4f03275efca470048dbff8370207474d3aabcd457996a9b9d78feb494523abbaf75ffbd5ed66a65237dc87e70510a321f407c2d1afeb0ddc7f43b5a438af76fe0a1c6be3e74abd54a3f80a4e17025b32185f96dd73d2b3a696453d6370a83f8868684a02b9bad4923fb29ebf424eeb750d63f8526d0a6245c954231832029e75138ca701b43aaacad9a57dbf93542671d1b51a578ab566db55ffdaeda23eea7fdbd7e65adfe987a9d3ebda64af15e23a6bc477c6e69e87843c3bdf8ca8d0a9aad3e619df41a6add3500811f4e5774455774055299b3ab0c29de9f9286e38c036c1a4af1de2ac37d1d60c3e9d56a9aa6dd1ff206ff90375746fcf143bb1ab62ffff487bcd98eb0d546ab2b1afd8da3a79cb98e6a1b1b1d15ef9d3fe4cd76ada78257328327afc14e9772e5ef38114dddeb4334755f4ea27dc39b8ba8db5a221ac4bf7071fa8c8674274b3a82b7d525fd4984e9b4daabe18debbc6f44caa512d3c9e40405a2a4a8aca4f45818914a0a0a883ab12c2d304a3dd5756272329594607c1ef2b9331a54caa4d1f79ae43c3e5a6ce8f33a2db6fd391d8e527c9c87c33edb1f872edfa7cc0f8bb6bfe32297974d26739c03d238200ea8dbdc965ee4f926413af932a65e5726e443b31c3fda98cbff688f6c8af33487a76f89284b0767e647db84991f6d161666a3a0f1a385c2e2c032615d60937851129441ee6c3aa32997f447cbb3e9ff58679b6e3c3da91f7dc8a6dd9008237cfa3e7164f48e1b4f1fa4acd6ebe8604784c6209309edc02f5c866d6703c14d38b2562b9146388aaf0ac70741fcf2c12f53d1c6d3695a074ba283091d7151e6e5d792375c7e7eadd0481e41188e0ec0e7a005f02dede36fe801fc8bb6791dda879fa171f815eb67b4dc54ff1080003538d8b00830001f3e3812d5865387a100b4bf8080b67f00b4c37e3ca8b32e2d2ef45659a3e5ab26a35dceb4bcd6558a2d7f4367996af9960665aae575e897355ab04cb5b4b0fcfeefb077c3bb699ac6618cbb6ddb3c59f8f6394e165a17ed02932a1c194d09719f0c5b4188a80bd64a7c8a3ac979e6bbafc585d8849828138f8842e29048a4b3d8fe2c319025c60353043343b1428a504a172a442a28df12a2bc4c88f26188f23644791aa2a0ac0c71d18fa0ec94ec1608f33c7007976474225bad44f19f9a9cc8a8c9898cdb5e90be1b3ac813a1cbb774109c97d7a1833c1163b50771d163fefb5a2fbeb3e3429ce745c7fb5a31433e17ccc59720798f37e13e24528997834eca0372a6a54392a64b11af91bba8846e1dbac0c46082d1546abbc4c2d0d200f81b9a877fd1365e87eef133f40d9fd2363cd53f3df4f0393408e61a749ea0895d7183166136b4f85211b2a1071e00d0c3d4c2e252d5f2a653c9a62526262f9c9cbe164e4b4f592c36878484e6cce4fb994493089cb093ef670605a150283121ea6bd130051c5241196a691e7f43ef00622cb485ccb7f0d0d3a767073d5f3f1308484e1f514d756a4726058451109c81c5164229df0e6da77866f46d2c450239e36088c5684ae50b2b2b2b306c0e3a2b2c2c2c6f73d0616161d15e4b07d1f9d8152d3f13feb3b07c2d1a7a21e581a29d203c1a04629054015d114bdd90d169f976d80d03c6d782f111a0ea8060ae4107e7bb30071de4891c4098d016cfd222b30a5176548458663966c480b00f41184b08c25a4099105c85202c0c6988b2a32214d2907a3fb2cc6c0e3ada45f6edb0fbff6badfebf1dea76d9b1e3717058663bf4872f63627268296bc458fbda263fb2cc5caa902aff50bbacb44b1197988b11bfc13f071dbb5d42173050fda3f339746a27c5931292ca41a77a684ae76774ca04db3f450239032455ae23a4615f98a1459854bda4ca4b4c26d356525252525252723262821393098531313cab67909d1d217388cb37b53ee233c245ff0ec6b331680c1da3f583e3026399955866a597f1b55892dce091030382a6dc070f74872d2c53aa5a5ec6d7faef6060402b4058ec0a1a3fb256e28332a1dfe03fa3892822ef99aff1f26b7151438b619033fe39b428aeb498c4457f1c2d167921f6c468d1055aa1812c576c4f231c59aa705c7dc812b684326118926210c9b0192e355c6044f16be9ef6678261f1317261f938fe9464b878c91aa9850bb845f8b862dadc3dfd039efa263bc0e8de36334cccfd0e2e7d0fb535ac653fd73e3753408a3a91bffc92895c9b68a100b162c311621962da4e8acd54a14ff4130679f9105e5646b51d4228c167d548458b088b16cc122c4b158ab155611521152115211521112dadd8f2cb31845bc1f5176b67f8e4bcc05e6251481680c3da58a3eccd772f94e94d347e1eb92ed12e6a073cb621c19208cb25c30ce39e512bba153df8f28cacc50c5d0c079ad5d70421799afe552c40b2eb0943803236366067562327332cdccc0f8960fe7c3686159d1638c1e9830c0984124c128ceb63fea449672b90cc510a110a988e1e3028b11242621bac0051623263221e2408c02b6dd654784a67f3cc828842066a483c53c967a6de982040804079f4184a8f81821ab3ac85408edb5a9cb7ad7e535d47b78760e3fd2d9112bf3266cfa7587b270bc8edf3fd2a1adf32315daf47fa4b21b3f5218ce8f340a1b7ea450ac7ea438a8f12365c20ad114a5436a2e8f8b2c1cdee64717b2a9e6bab9b191e3e967cad2e1e9835e7383f672212eba0b49b6cfe3ae1cdacb211cf1cec2bd200fc6e3359e09648de78514fd4638c23c4e383e6843388279158eb946688546afe82b72755d47f50f0e1df4241a1a9a4534359bf9fcbe9f299bb211ecca9ad1255941cb5640955042b67f897e8986281ea93215814dd8490ceb68940bd583dae1912a8f91918939919dc4545e944a2a954aa5a2615264c60433c54c321d7aeae080b17468a9c39ae19d52d445a9a4c424a7690b3201bda44a860c9592a292198c28c2c0c0c0c0a44a4866908a26d0f42999764c412db805b7e016dc825b704b490e3d834a4abe9ff99a26d3e96422a789673a9d4c4c4ee43cf962c478f0e6c78c4390cf76211a8ae9bcbc7c51e422ab0687f026b4210d59352793919313949ca80fc5735284da8101e32476022bfd974aa552499b48119a622822444c4e5028504e90942307d06619a22921184da9a8908af28edf40faa2a5a5a5a5a5a5855464da21152dd173922347cf46f971dbd9fe3ab4098736cd68ca1433c94c30a021acfccad314a0ed394c465a282a27b2ed940959ce143aa29fe33434c1a42a474b59c3869e434c30ba51af2ee80c119db080b6efdbb66ddb50e0cb4523860071e8c9037e3f7387a5536052e5c12836994c26d38988098e20180e5633208821213e1b2a2b74c5c68a0e5aeaa05e529a60252f25cb042b7996af652ac2b262f97e44968f07ba6f6adce82955359ee56bd9f05d0b8908f5d2d93a654685528682bc21b07cbed1e8fbbeef232d81648fa8c7a149363489c84513ac888b5c084a99c91b56e971e94b3fce6c4cc3939809c6a2242212d1f66f3931c14c453ce59fa35370d0299ee7c56c8381f907c19c3dd8cee67ef48ab6bf8d4671c2c5bf41a38258614a500d65421e4d467658d9a698c90dda04fbafe82b721d3496261865a1307e7d3b606c541067058e07354a48f50f8eb7a151af1f9ed7c111a25cbe168a08519e3fa25e2ba813939593696565c32b239aaf61c3eae7d3d458cde8f144438fcea3d2234d42468f28128c289fed3f4307a84ba8144d39053dcad08c00000008005315000020100a068582d1804c13e4c8bd0114800f6e9842766e421387610ca330869031c40060080000181018126d1b001c2bc52398f1fb9fd7d5bba891f949bb39d53d263b97eb1833faebf3d450c9d708562932fba5c0d9449252522e741b5d8c4395c8ccf550c92934d9f6240f171e99a38132d3e7fb9e30e4cf91728e76d4912c8e52cf569d5ad2358adafb2d4e250bfdfa2871657fe83dcd16721caa24698f922ade42bd867c4206a02c3785259b255abd18c7f6e56c388c33bb3adb3e3b3bb1c2e0d5ae59f7d4576b0ec95e74125cfcc22792a30860c8be344c3b0002bcc1f442cc98322d2cf17557fbf33718ff8a5234083c8dc31f0b22f17d45a5e83fd602e20223a42349642a954aa5492804194da35289742a49412188466acf73902614b4bc3ee8014763bf3ca4da2a14f7b40715bf78b3cbad58e8862ed00ba03f0e7a3950c4addacc49d88711aa90e22726805ef0bcc6c6746d7fbba3dec486aed0b7d0cd097acb5582f82adc7d38fdcd95b5ca2c570b49f3fa4f6ce833e882850ee8d6d9f1bfd7a04cff469479eecdae6e450a7d92a0892af17d4790fbc1c0e143d12b13ae51fa9968a19b8432728e7295ec5d337f86423f6b063ac8de97b274836746b62ef9f453a52f599259fea0121fef2f0012007c71ad0010fceb1d617e1e2b030391430e56900c9e062202842dd84b22aaf8a8df8f5052a97ba79ded030d74e879c6b3dbb00ce408d40da908c40e05ed3b552a11b34ae37543c315ed8b75e3203a39eba9296355c309fc72c3154b0d9dd37a7d5668ab9ce050a9fde015a990d535a286c06e0dca72994fe8171f025faee2d0eeaa383047f7cb0caa01f763f382050a8c9e27db420a661ba378c4b3c50b6043da061c09a1f02b831bcddf7912a2ad719b2110a833ab5d2cfb8040dd0200a314a7592a18bcaefcc9fb6650a526554ddddca484bbab76d7865e48096906cb2f09b1a22901ced26160f6f6894800da062e1312eea3a09190f9b457156c67255716aac01446c080b2c90d5720934c2f09974c8b518010bfff9a9526e8fe87a195239db9c101d1f3d0cd42a6cb443dd53692d472af263c25563f658b8b4600d1ed76e819f223b4d4a3e712a11c80f7d0a8e16c9e1f195512d2c4acd30ffbc43040a78e92a0390e97f400980f1639ac1f18ac824281d9b2be741245e90046a080f1be3935a3ceef538129a2f674345280429f33d2e11e34c6a6b5681d8985b9bef38c26b3f2f3a986361573a316a784adfa3a7110c50eb68e58d8d5a623a8174268b312c80f77cb20967153a0538681a283d423eccbc434f4bdefa8fd4c4c47dff78fb48fc56ed1d597fb3c1cfcd23eb59527a2a0a0016d84d8f95244fd10e17754098c0778f11126645ae9537afaec99cf8bbb9d70be370cb7fb6f609296caa55103e9aaf1fb2bfe273ef39060b463c8da0bfeea4abf2d7df04ab7618be753ed1fc02c38a17b6503507e591ca3a2415818b55a5607771018b06a1ed22829c9b4197140a81c63cfbd957539d2ab1b7e577d7f69ea58f0461dbf1fcb65027efae81817d582f4b7c433af45d0ba073a37cf67cb3efa2bc5f8164f1bac72f0fd7abcf288e93ebf7a72f35f19a17a95a4fef1fdab1af753f7600fc8706f614a93a549a68ad1263f4b5bdf34790e29e57656cbbeccd6e89ddb8caad5a63e5452acd75ca1adf7255d102160b18e86ca00328a6e33e7103da049e594297b5b805521e7c1462c17b9268d68ef5ffaf59d29e71acbfa2615661c57b311060bb7a739d39ee95516689735e264bb64576aa9299c73eab683a83f082d9c47b812c3216d87f2f29a88c4d076fbfc8328c5caba88caf66643f4b1beb7c8bb8b3f3fa2bc0a4467a1dbf29703b67cd0182e21a0c397ecbd04d3ff29b9b214c7f02e43d8a7484a9ac37c4bda34e97440f502f53e6430b688673f305e7041fb998a757c0059633c98f5fab0680d91a0d65867ca208fd151c7bd3a18aa287aadb4aae491330caf2d1f567823ae2a05ecd279ee5ac091a3d62d3ee40fcea82c22f64862aec3095b5ff604c20ced145ef87fa681e6d5ff2d2d3110b3f4da8ba18bc0a48dc8a1565f1e6b4ea69311639611d0ce4de594c0c7ff249202803e2ffaa316252bdc7379e382cfcb35040c222cd83280375f76df04257181317c0efce76bc7b04203930c5e78bf7e22c692aadc2bcb8e8469dd64e36611173ebd7851be14e21bce589fb0523051804d01b8ed776dee7abc7f25249f18601f47395cbd9a32fe6cb1f630e451244254c76a9cc54a9e018443dbae89b61a166dbb1b6d357eb4ed8ab4d53069db252a6d91266e4723fcdf0a82c20122a02e07570e7215f421229d99f77902624d62ddfb3ad9fdfc0c2d917e09272f10d79a6f252f7861c17dcb9d0c022f4dc509cea97fd7874c9a558eb1685a9eb24f79c8a296557d1cec5f313dd76e651f9989f68a67c3131e5a42c66f35556f9681c0d84843ee601cc54fcd9cda1d9b2f0842804f8d9a0c487f0fe2d6b5848f2bbc07951b62e8f56c813fe6e8df0d49551f6728707965242aa86ee8efd96340305e6577578ce38fff6a92f02624694e5245c83f8683514d9efb44dcfa755384886370dd776ce80be7806b35986091bb01064ae8b10b322b5b3ae3e7b59c4775b5b8a782a48f0bad0e962d8c86977cd60ec0315c97b4dd7f74295e8b224fcbe4a9b02ca2986921429521f2904d0c511938817546430001cc7cca9267f7fb392540b546690397b5545e071d606b9e1207c554f04284449d995e38e44dfe621e1f35dfbc1eca0556e708f457e5fbd4bd4b192c699529dfa05beb513fbcea23e099a11bc46d555094faf96fb5eb5cf5c895752ae49612cea94af16c41276db3ab472917a44b2aaa390a6ebc3690298430c83f03c5f9dbdda5148bab351e942e23f01345de95cb3a8f92b2631a9a68c59e12d181a553939660b14e2ae818bb8a5130df1f38f601ec8b05485a96c017ceff9389f147db436794c3a4c0f5d0c5b87bf0a0027b2d525856c429bf034f0c4292f9eeb7b2b10100f919828ea9b6495040c2384e3637b99e4057b97863f9cc97474212975b2c8cd220f6cb2899983dc889fa14cf75623e14c37d8260feb93318c78243982ec4596f50e3a71db029f796c3b51a10aa8d59217d3d94f6e716bedbde027910ddcac720203ba2b935455825b7798afe8c80b9e2817e5ca5fdf70ea73f79831d4e5b3db0cf0ef7138fdadbe178b443627738a8e938961d2ef9be93428aec26c778d6298eba21cfa47ba4fc07e36f5607eb0b46ee1d015ecfc562851b0f8a0abd838cb8772d40b8f7c043a0707034e49d0ba7bf75814d6944c54eeaf661c1070566433fc0ec49fab43b442b7da85e073334ad1c373369ac1104d15798a14a88859a12a605cdc949fb5fc872bfc8bfd2c674996814a7fb3a25a1fb3d4e8440f3159f421478525b6eef489bc2e1a754e685c08de00ddae1bedfd84afd7503c6bdc0c765315506910c21dbb31f4b15d9111f2a4fea06c26953e311fcf644e9398b7754c9f24f0b4a7ca40b7c45c44df0beec087106a33b0622a1472d72f42ab5cad78fd92b02bb2348bde2cf7e83b0a51c09188a542d35f094f2d1d4f0b05e24cbc0e1a6a4e8060496a3d92d482160c7a71581587c2a3260de04261a60f44dcb24c795c662afb15904262241fb02eb11512d05c268804eb4bc96e0a05267e4715ddec3b8a481a15706b750e457bf7f8c8b8426fae33488df0e8c5faa32afb8cc18a4f0f23ae21cd27d76ccc088b2eb0eba64a2d40c8547f206d7eb1ba7431a8ff023b600eaf1a05379f0ef3c682a3d3cd6c38a2b8c21bd220bbddd1f6c3fee63c66d55a56b8f6ad57e9cd3ec68b7a29dd97ba7aa6c0a5f9afc623ebd98f9333e59f559ec4214221804acfd96e57a1518b4d04766506cea163d810e899cd94f5c153a0e3bcbce33c48f9790a71dcafad9e46fc83ff9bc430bdbe90200c433ff1762c0f43aea465067fda9186dafd876e66a345551290e7de7473d6b66f7504815aa8838584b0e39302e93a55fa821c34ee90c18899f9fdcd8c988d13bfc79771c7f252d8338938e7fb9f00705f1a2b8f92b95cf4eb1420258e23fa7eeec70e6edfefad1347f844b6d0cf7a58bfb7b9d13ce20ba85cddcdf472dcb0b9a2742c15476a018aa3000048f5d9b29e31f85aceb8f2030a666346e11b09235bb692aa92e9a130deecf6dd2e1aed62c7adc762dc3cb4fb85bab68876de51c590c580b452c633dd033acb6940b59fe8b9323ff0c9f18df37f9e855a69382620944a1b6047a457015cc39a30e428f71c67c415702193aa84a7491d495d8b864e72b22a358b01d17252f4d63af3f4f72e06e8ec7cca366d3ef8bd4318ffa242860549f120ae0b233893e90a24b902e3304f2be8a094645a3987354f1a01d063926f2eda9bdfe652035998526105fa15e2717af2e9cb88bd10a7c91fc14ca936c9c65afb2c9ad3131037b5b7b34c82aa1cc052f96b918f38c602fe854621d6144dcc652da239535ffdbe64c6dcda7c0495414cd33217703c1ab4ff51caa435adaa3c41268134ae9ab08f75434172d7c1d595c6529110408d396ef8ef5cd619b80aeb1df3ff7198f9a4bd4eeaea6b419c9aebb2cc62b5af992099b3f565ff2e1eaf5cae7170d15e0c2bcfdb1a563250405eee879e20788160299db8dd3a84d561edf8a3849018cda078fa0ae4eb2b88ce487f8c8aabd91c9d4965ce40a5117b6d4c975b625318ed3082262fe583df60eaf85104a265d1681a9c6f683ee464309a7a832c1d0d46864cc0c69b661c686bb669cc1cf4fcc666833f0ec9140bf1c84d6f7eff440ab2927ff76953fae320b4453e611e73e63cdc2f932694add5eafcf81ca2849a01aa8f3b8e9efc655b16ea29638a3686150c284063f73b76c92cc519990d5865642b884458c92fea07facca66de1a2ef2d725818484d666614b53b7cfe14d658cec1864c1def067a6e199afc24b2ad5a4d1a280204ab2bbf1aa968ec28f3779bbd8c02f8100d2291c91b1e293b4122cb149aea0f5e6561077ec9d50cb90dc34da44cb34e123e4031158419cf2750018603ff9aec9b74758a9a75d1df0750a1c4445d14657815779be5edcb939880acb04a0e3f9e5de19f8c6e9e58ce5cd646d5d4c855a07c9fc0cf95d879d433f936af0e97cf3e88d579b1883721695720e9baa34b99c2f347ea01b3ab7392b13fc9d612e37a76629d510f5b804e097c7fad923518fb9a269995e89d8c521b5a7039d3e86f713503559c5138ba28610ba00bbf1b7752c755f35fc77c4e891d3099d2ccf1369ea4e5a9d9bb1dba3978a7567e659764564b8cad820a12eddc14a77792597238a89ac39dd23d0605aabca90a80265a21e927ff1dee13dd1a1e42cfa1cba3c3424b1c1d95bf9f108a73998fd443e4b9d019784fb28502cd9a157dbd62221a755b51330c75bfb5bf5828b12bb0ea66e63b04373b0e66153eb09335e071b2cdadde7865a2b715e237e1d4f7b88e09e34b2803b3468dc09caf474957511a3865b33844dbb88082463ca3d3eaa4f54bf4f1285e7d6342ba5b24450f45863b5fa5fbd8706577c829a974918e0922ae9b860d5ae1d2af78239740b4a3cbe0e37d30b6a9a78d63a4cfe3f46cd296b75e4226763af29633455feef2c3a59790a4eb65d53c6219a53df6be9ad1a0e80378788153cacb100f8c217feea17b9a77c5a19e1784059b65e6c461620505d5ea25a9417a03e3d2525cac5ca180f656456faecb9281a01fabf4a9c21ddff65f057fe54080fc6aa700e98a165589481f9fb0fd5f14adfa18dfaca77c8bd95fb468bbd10475a48b45644d23b6e5f520fdc5fe4cd60d87bd3c4ba1046bc4d5105dccc04047bc19b446b5dc6bf5efa142108ba6870c6b25b609d2441c08ececfc0641abb7d4e1d46bdf9042f0503d488120dc79b03f887da9388e5ba56c0407bfaeb1ea20cc0a5c83f4841ec3fe3599fea457010f0669687022c8fba947dc6af9ef135bb8a55878b784c2ceadd29f2473dbde4c38d7d972a5bbc7c2231180105c78abd5d140b6e7f7405e37f156f0e95722c0dba96934aaba3daa09354f68ab6e396273473a87639241921ca921c4b52a90b6e47860952b76adf5f97a0f83f62b50578b362972e9f70615a9d5a14d3bc5d20427eced22383bfa9c050f9149ebf0b0e638c7902d152cb2d99e366b20163018145826c8966d6cb8d22604609367ef80bebf1da729333a530f5a7400616e285815eeac48b2248222c43b99f40e28e9a9352b90a81a73516dce89d20617bf422622328b7dcc51a659f56fb3cbfc48bfaad67b974411a5a1dce08795e7cc87916cb54a8031f88c0f63d07614019f94728a3f50db067b64453c3f41a76e1131530bf935c3dbe84cb7276ad9867ed4ccabc58602769ef38569e30f72f70a7c97172ec345fa01226289e03c10989a2a512ebb8903b1236862e0d7594a7ad3047d140d81cb4af97067a119ad54b587e85a87cd92b90fa08726893e7727f0afeff5441f083ed2bf5b003691e562d033888933af19d1899e1ebb071ab39f83a0b8c0c4d3dd171cdce24c19cd1969e91a8e577b6eaee91335f9e08c552b9f0e7c5c113e56dc5b42010e1b9ef6e25d2b5abc1d4a40e3391ed04cda4295db7661fce4acb207da82d8face14a2a075f53a5e485be8f6d899fccbb07ab992c86fbf3cf2b9b05b5e2292fd51048f80a369438edfc2f82bc8cfea19fb35a0980dfe5128d5cc550a917f65229e487d6dba0a6a2ddd4168e66e26a940b8932740a32e2e64c3ac73d663fe26601cef93770a8fafb0a2b753865efb6e95591f172e45034879a3f576a491eb46da16c467e95d18b26101cce5e30c4647ea4c8cc0252533a269ac735755dbadc43ebf1098a4a1638d212da3551ad4607816407e70869323dda923bc1150b0dc1d43752181ff7427db8e40a5d527337cba002798f00ce9e7d591e212b45887750fc7e6b8f6de710b0b159f897e3d6dbb01393b2ad275f4acb66380f5dab9946887beb4cd62a2e0e2e516807bbf6ea9311abb0f898446a0d106cd29352c0ff1690db16b89fdec9bddf5aa1c75974b3aff92ccaa5c00ad768df624906f02ff816575fbe42091a617233e60dfc9dfaca80081a31e89e2860ff94c7902c628ba1130e61902ca4ed870e109be6cc34e1e5153a21496dacaa2405855b2d0b0b0e5672e75ab91f417e4062595a48b6498d46a8629e0f8f5d294e3d1fc22114a66a912927325fb1b7bc9955448a5916ff6df7583d782d9893e286ee92ac1c0a59a0443e00c5a0da399368070afaba826e7c71a6c6ab50296a8b3fccf7bc492a4019205c0fd0ce8c546cf3ce8302bc3f93b7633f28d786ac2d8e597fd1e4a05227b6ca4ab3e8e7ba33ad6cf2d5718de43f1471c72121c29bcba5d47fee563faceadb66894aa3dc412bd3822cb27ee9a50a3ca8aa35bdc5c0389b7738160766bfee7e69fd4b8d711800baaa86ca6643dba2dab796214849ac0836babe6eee9aae788d0f9eb4fe6618087b44e0a597c8a4abc4ec4dbf7c218d5d8ce5f91a3aad670e5732050ac72882bd8a84544e617787b329444e81ccb0edc2ded15ef8ab319b485d2ed5288a5e8d134f7f024c8017c033e94e2374641639cd57be06a4e30919795e03d48e275e8a66150ba3c7d4fc098d9c1f91829e118af6aecc33e8933a834718782ac05ad37781eb39b4f299db11683b144b8671e24d1280119a494d50673b9274f78eb0a34ba92b13b0da075cab04bcb8dcafac91e2590291a99be19a5e9093fa80a7f53f71c8b9c5091ee2a313d2299ba18dec8559d5f26e139b01c47762cfd793adbf488cabd7dbc376052024464d3969e7a29815854f7fffd4dc0f041abcf7a0526aed427f307c3ddac539a851e9918ba575930a644cef8a3745cc98b72e8ecc18b900011dba7995ea91e7441b21b6a9025b3480b51ee9ec019060abbc1d4dd54e5658f518b3528c2f3a7c34e9d22cbefa2833057c924d3bf98b40d4017baabf416f69f1c3b818f6446f468b379035683bf9b90d1d0dd1be00d804720843b10a8f0803d96f63c9dce88aa12bfd1d0594c9ef72f6097cea52f506e98ee5240d8cd25806ae1bc3198f9dad9c41614ff00abb2bb53b8597d998c077068b1dc43111bf72e7ddd541b76048b57a8486de2d82e4753f514048dba6368416e8a4763d95d3634d1c00be6205e3599306c4084767ff98b12fced244ada70eba3fcc976e9f88c106637603d23f4554416f4ef066844d0508a1e9030777a5194a1e35459d6ee25545f144b169f5f33b376c8c98969ee85ceaae8597e662183aa1a82a6d34952d3e511c402edff209c0b98df637887bd717013ba81a35ab2cc706af39493161dafdcf78b137bb5cf41b0e3fe03736c3c35fc5fda533e9f236af18a2b974c5df948c6aa8605a5ba595058e0e8e05cc5fe1b2c5bbf02faf1f592a4ecf8cb736e4b105f1e548bf12a72e2d506c9709610f92584041247e8d87f25da8260a223404acf003c05fe087ccf179fac6fcc3846aab9adb1be03c557efc0c6c51dabb2f0ada1ed7bc735671e807fa642d034105a1ffef01ee16de8b5423f2d571a8e8d297c904fd8fd034a511b7322edb4e510d231c66509bb9b1fd3fda9f694989225015a85c7fd8a248be8c29245664404c129f6945eecb99dc14aebb53c74af602feb596a241f2e6dbc7631179ac753abf880fc52b455abee246a4fd6a69fa1de7c29ee385c89c2887692d92cac63757999e4439f7151850979fb04b65c6b9ac1e2d94492a7be725777ca832ca90c57d5fce7a6f9fb9b7183b81e395d27044aabf07cb7a7cea9cd7f522995bda37abc48a9e9d500c26508379a0f4326a8ba068252316a9051064819019d8efc04217f2b2a8a4c24cd6f9a360eaa16a14f5c0890cdd414d44cde0d3c8c9e7aae135fe6cd3b14a94cfb9857525b62acbd49182213128333b00943826087e38aa84a80be46368dd5d8ddc6ddcbe4722eef6da744929697785e442d49332a22d6060f2e8a304699f40e38ad725d94f1c4ee30e704aa9b12bce8481690d448a48a36215ca5169a8afa1af3007bd1d7a85542034413db107ebe63439123dfcd3ae1bb648e085d3f50b992493c820d32a12046bd76eb4a490da5ac2042c0605dedf99573a465952f453c82859fb9ae0c7709fe68a45f84e24d53d515d00935011b4914ed18a70988d19481f89067f2d0e843bbadb61f365eb9ee54de604674ee969c2aed108a0da3032b36fe2efaca76e051e19798c93713440353bad93624c5e449edec17d92b868219f67ee1fd4ee28e81fd11948dbd12d0d30b0025d610d63d37f9ba0228e222e605e452368d0f8c3433f5189221281a94a17d5ce582c5fffd29ffb8612b864947e7520071de7f2ba7bd2460d9e4669b16287c6863b24724505c2f2e3c2753bcaf297cc75d0e155fbd5eee5cc87a1b0e2e59d27be7593796953a69a6732bcb7edd65fa57098510fe8cc4ee80a0c4979e0a1763845013f82808cee9829c82d8a8d90639355b8bd78027d604845f54796a6f465795c8761b7b8170a866c17e2b2f960ffb252425f98ff1769545431aa2864fb69eaeaf29a374f879059380f16a27de0291a7c289568942ea05ea14812f4149d121f82628410500aa9b4359cd617acef71e24c8a4d57c0e420eb2fb3df0a0d654deccb0f1026f3c9abf6cdd0a854e4388426c1da3065449362c6be5a77b905d3a67c1df5f94a2f99c25302ea7db990f4c8cf35983e78dcb52cce6de0651b947b077c1b4ff9a30257b848f107b94526eb824f211712973c6ee606cf97dea54d7ce31c338057bd4c6ce0dbb51da77b68c31094b7ae86da56f407984857a43543fa1f647612fcb87637606f566c19cfd2bb0fb0daa8142175f1818f68b25d15b992e7a0b74ac1c5781665e02c258668c40f53d9cd5824b039d977099277ed04738fa3a35e9db670d9cd5225581b0d433b6aa08050ad42a8b50c7b6d7f883f2cf9a52eb85fed299923a2c3a7bd955b109a7cf42969062ac93357808635ad534694b635fd24fcb327d5185782497bdf5d9491596caa9281b69a3942c389b3f7e55868a2548a4809c86c431cfd8f8ba5082b75af35661a6bd7cd683ad9899be8d586dcf5c5cbbcf852dad8febfd09dcf4135a97d4cfdf35d6909e07a09c40d2316ee2e12e6e13569e81d98841ea5aa859ff970e8f0de0b54ee7bbca943e0f2253f5fdc9dcdec17770b73576cc410ec6909e8f62cb874667e28a4f1b700cdcbf127566644525081984a0c852cd7348ec62ce587b17c1ac1275d6d2f53ad2667ce5c3db3f82c1fdfbbe306da7cbd9fb0647ead39dd012d542c49971694fae5e6d19ccabb8042d339e8f5139bb468267f38c2b2cc399692715163675ab5791c042594914f89ef2db431e71c78713a4d7600fa07faf44f7f083f847d63940c2f8c0f3a4f4d474310a550c51dd84b9a2d74c2469df90429d85b3a48d4f586c9d318073888677e3dd40fb53d18f8fb4707a5fb5a883a417616f5e15d8ab8b5050eaa1b6b43caf73aaa950e73e90c0bac57baae2ed3dea2a34e8b5fbbb535a04614501e8811690a3cfc6846574eb4826078dbe37fdd66e6865bba0e012c3192d7038ea8608b81459c79ab8dbf4b6dff9d314f31fe8f9529dc592c769c433b58bef7a43d3eedb1b4184e6387f36ec989f82c1b786014d005b73670676965dfaa697af403ce8d9ec00fed157874afe9928f0f61fe7bbed734966986dfe65e6804cffd10cb81682ec10ae7094c8a32fdc1502dab01308e5703e82f6fa0e3c0f50feeb5b217d4860fb34137baa21a55cdfc10cb02438303f88002beb02fe682f21c6d1176886abdea609c906f84ebfe72c843993343071e4f8e2445d6fd09559fdd14f399dd14bbd19c3c9c22795905e5593651b20b42c2b31a536c0c3021e363200caec5d36c2a7dc7f0ee236b31684fa4f0ef6e243512d2c731e9fa8cd45a5a789c5193c9879e8351b8d6db1e8d055da45a3a821e1adc75236aec35a39ba7507ab43f1811a4132e5527c6e164d78e198fd8785c1ed5142f1a66e020d7ed8587c7c5e59c2c9e6e61fcbce5276b8fd05973ad81aee7b61d8fa29fcc51d07ae1062dc1e85fb98d7518b9a56f925ee48f47e35398905686ca673d9046fce93fd0e47c3bd13fb0bdd876a16e3726e7b1b59d4caefcf37955d72fe275a46df47634cc932a882e475e75aeca3f5bd6e32ba830ff561aa654c63fa20fb58dd7aa932da7008f468b4b9b497fc5174643eb12549f030bbbfa738e8c6b8c061c4b34a1870e86676c25a47d2498bd611e3ed25ae6aec5f80b3d6d1562bd10b68cae990ee188e6d1ab1a948c21100c94fceae9b6207366b40ca254249ba5fd0149347b2456cd8673205030c044022fa3c14a9157e58bcac9a58d15757429d615912972d00474ca8bf6b46cb71e8811fe940c2cfaa71e1db1f24b9582ea33bb02468f54f54d046ddcdd122895b9a1a0847c4fc3e7eb4b390997cdb79048d071b7b4852665a1f3a26d0306e8d4af4a2e70911b11fe7967d2fabe38ce3cfc790357bea48d810d4d9e6a0caa7a3c582114463c8a5a0281cda3266c3fea8b91115d8399843f74a4ddefffd2803fc9a01411c877db699300f4e3e1164f9a31989b4827c94e8792ac2e550e44f3f0e3ca0cc43e5f9f6613598290e0ba2921e872ca38a8bb7912e662a7c0a6a77aca9ea4faf47bed6eff393e29d3706bcb3c42506f61038d770745d1cb6383aa58352e4047127ad4dd5809e2e861fc295a9613aec5a758e58be03939de750c6e881c635d10047c3fae090f836b1666556d4380ce9cdd2750740d32ab2cdf962ea5fa6b096d233fe705a79cf24c133c23c49a8206932f5ee1c004ad65ea71e77909494ec0aee207d820ee85a241f4184c2b617453a923075c56d843b828500406ed1c5f2f4678724313365e5a8257f25af9a78154c2753f8e8950a62e24a0695154b42393ac2f6a019fbb67615707df86476d575db07883ba170cd6c3ff8c60484acdcc2205b3f915dafb15e3352b2cacc810f67bd404568aca3350fb57895abdf91cc331189e2c2756302dcb798cd85387fc38fb20f73114e1f6096bce7d441c32f1f9a4e82b5652d08825b511cc8966b044108b2aaeae5c4b0ad1934486204a50fa983c466c6cc3ef18a1ee5793006d2b06b750ee71713b5643c5851e2f841264168e2d72e8bd27680ea80bef76d77cbfda9c2a1fd2a1b669e872aa83bffe02526a5036d1cd554dffc5da5dff53d2153d3e20c8e19d4cbed9fc9368b9646950ed455e882dc8be2128ae3b2ecd639ad1345339587fe81d6f3a105b1aa0878d70b8f7056aed08bb2a2b0e232503271e9b4634547741d0b1744620b60ee7d71d7b0a8d2f17978a01952f5800455fbde69f2165fbaed65d75a6ddb120cfc4ce08efc4fc402574c00f61a625847eca9ace6b8bf9465a0307f8509f628f19ceb6f98a0f6610cb268ce275e805b0604f692ca567fc0edae299d60a4e53c6a983a9f6cf3835584e0e5bc5f915b6bdfbf98a61b83c7e34ccf3d9efc5a6a1f40c66c3dfbf1aa77dd4b6c36aedca4e4d52222de39184d7f26d3179bfb545f209141f908e8eb01e1216564c322b49f53c9382193eece94ca6b77dd11e2e03a60e2caf864acc6b53448737a8fc8a3ec274b14dc87e5a7b35296f02993df78c7afd76fc862bb39541504ac2f675e493ddd48902d0320ede265eb906ade01f917afc3b4bf0c33f3269ab795cc2f549725ac7573936207397cc1bcd99f183a5bf295e8ed13e2fae4eed78ba66f1cf260c195e785f7601b6777c7c1dd224677ea59b57529691a438fdea70f649205848ca2031601271c6283100670d6fbb414f954443b02d791d2543eee4791b75fb5832a8c16e745bbb5bcb89b02e73851f79240145af6cae283f68772dc893aecac772a0c25fc165d8b8fbb41c20843080b506984112d93735c267ec9f69b2446022d46b40ca10b32aadc2dc0e001cfb3536975cd8ba976ced2593b591aa440b075713b74788e147bdaab4b1164f01e6198fde991355f12bb088a289582abf946c3439156d222525535d22ecb1aa08d73433fb07439f15fb254db1ba4e4a6b14f216efa1a5b9551b13db6003326af141d8d546086fa64cfc1e6b636ea054550f4a5cdab293b04fdebcc86310e6513e07d88194cd7fe621db7dce6e7c1c26956c2c10d746d9334ddc30376a1e255d47006f76bb2fdcc78918efc0dd6d418c4b87fbf787f3b44446c99f55e20f6362d8ad769f3a29092500434c1bcfc64657a7720ceba3a2ff29365ed6e16072d1a8dd95fea50d3d8a1cf65d31344f13c9baefa8671cb7cb2f5e67068ef07aca725280eefdb899b9ad74f927b7c4cf9a404608f21f06e68a05c3a0e3eb54327dad89c6e5982537a6e9982a468d390dc57f0e95f890f47baa0c90b43c44c07e4201b7c12d22db2c3d31213733351c040bd73893015da53598b7e989e982f60746d923b8e2d38c446c071fef287fd367c8458cb44ba823aab8392b08b79dd3cfc2b567746e0c40e988e04fd621016acdfa973395eeed944992b59a2f16c8b6c407002f055c5e18b0a3adc1d8a39de6b67fbf3b2a55a0b7ceb0a1bc64d0bea4ce1bb6edf4283fcef195113c8bd5f8e2247df689ec109686027a02b81ee61d73af29a0cc1b056aa0a8a399d522a5d35a729c0cab1046e542107a056f3e48b14a76065f9d5e07a2b641d4f573412c87705fe482a39b29029176f7f5c00f61ba8e6116219e61239eabb3c09d6510ad16907ad4e11841a11c6182b2822d9989b5dd79d7ef4ca52295031fd58157d23c569985e4b3465a402b819bf2a6ba03a9fe90a990b5b7c6c1d76db86997007be0881c606ea46b8c119941346132efa46311dfc48d35b35bc87a0b8bce2178b3c6b4f130d5d7f8959fb2bab59e2e4c7fb90adbc090b60506d80fc9669c8cc7048d7eb8442404c7fedfcc98c2b427ca2937f968eba6f8030f362680d033786cebb40de98790120382c6788370ce6c0dc6ec6a7173f7784169641bcf6864a46cc5b20120cb5ee48a600b4c1d6d80a440c0123d80e7f4fc2bd016e5a294e9bc687430919c2e9ed66255d43c4f0690ee2e449bc37a9ce41fd11d827bae2d602b8a10eaf8db1c95da1609e08fb34412b9b0b05d8362304bbd6da7f6b22ace716addc6cd2ec7a92d03c1102fdae422f6a893b74d7aee4cb275c0b9f26041b6b5df23dc2aa0871c720d804f45581d678254e90c9124214a0fb8d75d6ea61ae5f08c0a815b978991855552608d5cc3aa1509685dda5ea0be9b1de3647e899bf2cf88b6453e0b4f0d2bc2be0556bd50e4bb9fd39cfc150ea3711cf4ece717153ba170699aedd721d7f4d9b5d14398d21c011b72407551218352c0fd1aa3525c74c31852232d2e1dad2e797026652fca305109f724adfdc21e4444f51b2dbc25e660b443949673c12e6ae44d30823b5901c119ca096c951c9551cea314a2a0b62d1c04d9ce453f87505b5cb38a228aed73d0d8694eab1bd506981e242ed526be546b051254945e8ae660cc3393bdbb8de9f31e5d1d153eda7c88c71be426a8f9e4bf2b81c143550cf990902a8e38e8374e62eeb7a29c96f7d1745574cdbb919829899daaa199185dab85013d46fe09141066033c832dcd0c9632f43298099d11dd4baf7b8ec94fbcc8dcfd49c0bb2276eddfd3d71d3d2a024aac1a8dee883d602708432149faa1e24b8e57e033c0c125fac811d9f0215f5311fca2a55af83c659c92910ecb2d6096bc14fb90637eb54b2b29f9c517d2754bf2e003cc5510a56e017748ba96af8e866717b1207fbf196a9cb7264daebb501f1626758368fa7de97f2e2193593501a43df489d13162acaa80c5c19623d7a24161ea66c79e891554018e7e0918b391b3c022a047bdcb0681459d828614fd8dd76e4ea40044f908d1649be59e0b8aa18fa0bb34996ae40a947166d30edfabf5040f398689e0c087ce2320ecc68101ddaa8a46ed5ef142fff16f097e223055a20cf6bae28f161dea1a580f34aba30029f7975b46640234736dd6937753d2befa1ab7263b3e6c53f96139426ffb5ee484efb25555199825c7a3d50f63b7bf08c0e1f1c749565875fae6758005d156ef180053f3711e885e9a6875c7ba379440b90b803fd0f1ce2f8556491f7a2711a656934c6f59db9fde357633f0c6f1837c355c18902b128af6aa8fd0f4462443da02b1476e91cf9b5380c5e3e19817e3b2f21ba163acc6417d34c618ce2380871377bebdb5b6a2ceba1eaeaae062a54fb458be720f5a5f21727c87f55b425ec13302ede327f2d3bd83683e9f6e564ed2698439c397b47759da5186cdc5f566b8e33a113c3347b959af4cea0dac86b7e7485c2830b22077fac7f258f2b511dcc8d22807aec9ae3f0564b0dab6244c56b27a2e2d4a66da2a9b886669108644eed0a9c6f925616337e9fba7a3261ba13d7fcb2f4689937f87f00a1ad21f2c19e4dccbd332e6d7bc9795aa7d6df9bd1c8776c315d8f5e701d24e7bace3df0b81ebb1df8e4185f5e61bda09931eff5da3693adb99e680823403201e30eb9ed2299df5e43384d3fe5f7652e00c8e52cba4a735bc4c3d75df9a7135a67b6e5af12768a2fb46248559efe51ea73efa1c4e1aad276454689e1d0b468ee394c1ae028073fb738c445adc85d22383a24ecb71862c28348c94eeddbe3ffb93f11baca56f7d41679932acf1dd44fce7457dbc7f21892cf4541dc1e4b8b92885e41ff2ed6ffb59903bbe4749e902ef419100ed5f1f89b56972a4ade52e2234a81bf0d75e1d2fdf193ed58e1c4c777c471dadf993373ac90cb352fb8f901d8362c684269fac5a5a9aa834e2d20d16b13480895fd71da07ea071b104ae7170243d1bdf8f7c733e26bb3377ab361bc7db95597aa887b2f1d03f268647273b092d3f9981eb503271665355bcc08928f75cacf58eb02d8947819f2ba3ae69df7b7c21273a25ea250f8762f1fd0a05eb9dc3196f6680f78b2c654dbf3877713e3d67c8c086cca0e8321701e66cae0cee53ca76b539210603a9e8623e1697c88191898aeee2c0d4f18ea80acf749139b890eab56b7205b41592029b5cce1d13caaf91b998b7b180c84516c331db651a958de1694abb220dbcfc4e470ab110841a367faeffbe436561eafc232e5a84aff53293205220a4c5e89b2e330b444e525c140ee302a5302047674ce6af9f3d718853ec1ef3c368d21a12595d82ded1d6d23193bd9d0776285aa76a9829182992e222f82d9721012125252f86af791973007220a245799917300933e422e41a878f526098b83dfd48946c3539bf48d52dfa61ce69d4c5ca7610f09e09d1de18ac54ae0227fccffe4ac588f72c0353d738a599e116bd8a9a16f4a3359257a65ec2352d7138d97e7f9e6c23241c6a3317b8a6e8bb90ffc17e705fc89c8b55d0499f5f9b73873d402417a3bb4bda11241cf70257065e4dc0203a5014b0908f4c108607df373d96a34486e6ed39f70034d14fbc84a932a9d04ca90107553be8b61baa46c49ce45b85d5674170fddd3824759c488476684ca949bd6d405eee93fd5a8bb41da3ca999dc0fe198aacfad3f13dc03ae0e738040caf8a5df96b249f68207f0cf90be4b6fa652841ca8d9f323af7958a7d5327e1694365e90f370292a09af357b8bf6196c67921bf23d5d75d577a837581eabcee9ac4a438a79813863bf557baea5226d28fd2896d6815614deb323927a916654820d42305e9958d546d89a8f1ebc657c4da9c7a08574946a5df928d4199b24658d75159cb30be748fedc2e16ec9d951eb98cc232a9bf1532b875b4d6cac55954af875b7ed67b4d6154e9c6845c70c476f34c2b3e0ef298496f332385374180ff1d3cce093466bdbac2cd620ffd16beeec34c80ce166c8d0e6fc4a46228f8c4fd58779cb576b75675bc89b6cd1a3d73e397ba8b490f85a317187e2a71bb5cf93a545a51ded50b64ec6945686823d760bd331b5398c5b28d11c1c84316276e2446f53f956b3c4555f068e97fe0e4288e9cb24dae14df222b5a112f4dbaa22b422578fa108be51561ca1b0638cf99be994d327607842febaee42941e6b1ac29d4a4380094ef435846cce45a466cb56b47ccbdf7d4b1765b658d2bfbf1fa42b925f9504c803781f77a0ad207357ad03fb7d6ecddcac66fe255c72d16de5b95f30a43c4388a5b402929f10df8a7f350727e5ef855e46db61112891c3a9a5fecfe662f28b7f2925c7bb792b1809c00d1d5749b878da0449d4ef990729d11000600dbe5c562e05af706eba676ecb36aebc8d7e4d4a119b9d64a2eeed03b11dffd0a5f361ebe69890430dbd7746aa743c41316992b1a4b74ae5be90a48f04ca7999a3ac26b0903480604f1b25c9b9b7d79ac2ce9dcb14b7c0c78ae3e0f9d17a9e91c5f26a96bf8bde7426178674d3719451fb7c3ddcba3dc39cb1fc511596ae98bd3d57139f05b76918bb92147e2b91a0fd84c316a0d69c4961fa90fa84cc255053aa0bf5477863ee9771ba6a242b9f846b06d370771f87c43ccb5bfc1edb418f21bf296362759393b45ac40bfea38efffd2a4dd8ec9570b0d7695f29d7d27e08f1e8080431708b369b95d1476e445ebd92d9fde7e75e357c235e99059b3d00c3b9b708bb7133dddaada6c725b1a3a4ff4c44be6d2e37647ca26935a22d4ef35c8647bd76468b9f8e49ed5d17d3678a624a2c81f23ba74d241684bca2546dbf2d0afe9b4b445bc290abc11762782c60739ba9bd8e955660863e55107683adf8df57d7598be2655b2e1a894e35c123ae9188ed1793eea2418e2b34f31321ef6c1c1a9d24641427f921084fac38150f6a2cb958b50eeae7896386f20097ec8c204192a802cd56b49a804b7c6bb46f3d8e34d201e4961a427acf6b27da3b797c2dc97db70074c56b7fdb1020fb22c22754af4569460798a09f5b56da934f8e8d236293a84ba9b276c572ef14bbce6333f72c3e44ace757f3d7b9069eab5f7305dfab6fe7b228b857b3789bdfc4fc763842baa8502ac3f0eb09e7249e85fc55f5561bb4864d6107242e72f58b2cf79eb0c0fa6870e3c2a33ee07fe61e332731d7269f330b411052c04d58cf823f15862468f0d659ef63e9e28abd1697bff6d3ea7723170b6329db145c58ba93575287946a80feb95d3323976d35c7826fa44f989cd4865825a8c6320006524937735ce0495b26e3a18d5db0e0cc3bb13c6dd4604f3e29f515a94e4b314d8614a1e8c4e4f1cab4cd22dca828346bc1889dc6533b4daaa79355c0c2ec13eea73654ce03c5096fc71ccf396377ea6f95f74b5204863524d697add0ca0c9ccd4975b81079878b42d1d3239dd800a81d6069b193d7520acfaa65920a3dd95498b47529a9bfa7b4efed62561646ec834c574dd027d2c1639345c60d58c4f0de82aaa99f871e80e1066425f15ae1c78943ccb0840e83bbae1fc6eb80304154d2c685a52685b3a9735209c71dd8d4228658c85ca13efd24a5729334d2f380f4fcc5a94e5be5b8195375ea18c13bba1f1ad2b726a6cd6ea16e7e013b194e0b4eafcac83398a352c0c337995fb8865a6a01edb91acf48f31e64aeac7f109226d72816d2c842f2859f42d84198f0bb883115d03ea84769b7222bb4562f29d3aa1f813fe6b90a046ba0574cbd3c631d82d3541c91296e5a3345550e9b141c11b9b5be1c2eb46aef96f80c9eed62203fd2b4d2b32ebf29d0c5048342499cce9a85920d4fcc6d030a383a8648fb4a98c8a1cbc156705af2df2b4e0c53a049fb7ee737c10aa353335cd15fb46f1480251964818d94edb0a136da194f03a5e1372cc145273fc4a651772d147f24e82cc9868b36279f5e161d92f376da22439485cf14bd45cf821f5e13459f3125c649d242285fa53dc4f1239daee7ab6047cabb490bedbc9116fab6697728c142a1e85ca0631e11c6f658d68dd1cd8b8542c018652bb467bc8a17a6df266a3fd1548cacbde2cc31e37a17697946719d2ca520ab3c5a832bcb42ef1d48f18e39c95f7224ffba0da5373f5e063ee0da9dd91abaaf607729cbfab509a6f817246c01f2dd0a580690b0769834f43a698c154556f37fe6367a0b0eaed3662c67ad917d2cde362a8c0a7d17fbfcf447e78c2bfdae6f0a0b342e21efa8d1d7a1b0a58a66ececfd056d3ab42d0ef3844e48e66e62a8ca4ab26d29be1f82db3dd5f3cb4f4dcb68610e77307f5050526a74d71ea488fe5915a1a65ac2929f257a3edfdfda0c8c575e3366a633fc18dd661b30595b0749e59fd67bf14f5f92d35bcf48135db2cff6df1afa3a144b290b974f1fa348a3cedb28a329a16b5c9cdc3e8dd821f4ddb190f7f6b30398e7028c187be5fbcf04e7c628028acb4ff45852ad00cf6af5460e9a4a9fb0f7fd84e7bac26e07a5f42fbf13d2dc1f94955c3ffcdcf4315a4f5a1ff2e4389b3f1a5b0a0744c728dcabbea69e587d287b57e99a18a258974e0c0ce72aa17cd6a652ca53ec9eecd14ce4b377d8b17e0d8b65a0221005079424d712156d24e190e9d5ae4fae44b9092314cbe64829fb2044a2805370cae09c3a67448484989fe78c7154f4e083da38602804ba8fdc279daf6b6c851ed6a375a1e9333c36feebc8a8600cb687775fa56798864838cbe6ec4647bfff5844c50319523ac13ad58253c09e3ba094390d67466f00012f6c1d1f4953689534faa2a711f69a03787122e4f23a95d8065fced5b49a72df334f5dea7b2b88b3d57445b9f465319b7cdf2a8f9018c3173765a83acf0ebc591e2feeabb8d70b15f2c63c44427df503665034f29ec023d4c8e43902fc8eabf65ddf1a86978f3161cc51e3f6d48c48ad258b3394df43e87b93cc82215b37e7663287ad99c5862651f11a1905b4f3d9b35b86cb1cddebdc9d17e33a252ba67c3714bed43d9a1741b6af9b8fc50b19506a9111949e4d5705cbe7ebdca51b22b8ac9698f63e01a797650e8d2ae7589b279856827b5a5e8b859c78e4cac0c021af7f27b17fc2ec9f23682873070b138db0119b2df05809098183e646239c8d1415d5d3ec4708231c57ca839ed88f19fe588e35003d201f317a644101ae3751848a54775bdc074e4e461a6f0cf6e8e07e4f426d0d130496da4a16092346d63fa78a1b1eb0f4e355335c72b01916078e772eb1635624eacb2f0b3960c44b1aaf52dd3ef2b8f47d8de417ba69840998da8d45ffbe5c226d6c1b070ac2faac1b3e78e533f584bd762884b20b0518224f14b0cc2dabd65dd08ec7981258dc022879eafdb2e73f30ed1484a19ba164312bba03b57739e9f420f93a0c6a408310e0a57e12376332cc2878871fbcbca3b0c25935c45911650b09793e9dee448bc54cec9b401a4398413c99ec0223fecec9d28e796215f02f92f08ac35460b5df8e7effac51d99277350ba18d878340cbee38d22a5aac0a605547dd7e9728ae9e77a841d46ae0939b2b06cd14b3c73421a5d887165092a3c0b4a758e5d327e5e4b496e2df03898640471882d2b86c264abae2ce264bf4d9405c7d128015be03c3cba81617b32972980ce8908d218e4832ec42fbb1bea53a7c8ef9f8c77a782e9183d72264103c46bb05bb8befb094122c066314e7ad31c7f9a66bdb39733f0ac5642dee4abe28b8a919d9f6c27e7fbfbc5614c57dfa80af5a22e1f3551a50fe6b052c340245fd9476b61dc503c4b405ec8e460ddb2bbe84a9236c5dd96aea0e1de69981e69265b089eab5a70f5a9e301d69dc397a2eb8122f1ac29acdcf8fbda78eb2fb37566f55ffc5c8f1c9d2cad3016f55a3e344f6ef84cbe2014d18cb838192a16f51d38e3494fbf2d75f42b1cfc6ee9c86964834a86a39c65bc87990efaf92a09881f7a92ec87538424e74f5cdae124b04be4fbea8c67c3fe4d9a045d63d7fc9c13f554e2f42d3e91f784034894d0685d7e9d0ed70fc1c14a5766389599e84e5c72d2524d86918db8f3bfb79985a2b0712d9fd885127848bf9246ce6c2abe2e7a4877a564477e3a2427ecee37e1dc3bee0c92d77fd24ffbbb9f3ff815bec4af4bce9d1e4b9f69712dc290214404d3c3bdbf9addd0bd890287f6707d2f5873b93bca64ba82973dba30fc03fedf72308065271d8cecfbfcb747110016f8369bd095fd37790699db38a0ce457a074976dc953fb895eddb5a6aa9f32bc8016eb54e8c33338e83e03b591f093b1e148d56833137f141e1b1ac6c092079f2d92e9223feb5ab9cdea3c841a357191a383f69b3b85c00120d2e4563d6fb8c0929eadc550cf5e30ed23a63264a8eaa31e05cf0e08c3e0310168deb63d9cbdb913a921069c0bcc696a06913386e62dd5448c8274780485a9cd228038156b4ed9fe10d48a2cec138e89bbf4da6f7e6b63faf9329a5e61c2a9506387128b03ccc167c1eea93d948ee1b5d30cead2a5a4cd38076ace4df3b809ac2f7481a0e6e90a67192caaf9120a922c89937ec971ce0c9dab76f66ee5a06d3424a30e4b3177cfba51bb5f39186a330a14304f4c4043d95f93cf27ab054bd630773ee6a130caa9207879b503cd8042e3ac38d86811b2a735f3ee51ab01721ab2a61490b2eeb83d9bd6b1e61a277867681c564d8aa1156ba640391b6330b7cbac9ecca73c2e4446f612a95f33736a1b62df0da5b83c9aa768aba6f44e9de73cfb796c7e0679a9d9f8fd91c25b6f522bc85ad76565031cdff9d33e0c942f561e2a0759336461f51b7f2a411326865c6e41e86c548a4728492a8174ce7288e9a2b7db544734833f7862f7e618934f0a0e95172dffe3689e13ee67f50e9bfa8e654b52627745b65ad63cfb542d1ec62ee36174f3dfefdcec7c71019c13f4423a3da36738110abebc5ba4e1e3cd9e444e7302167c4c5fd3b30f54093cb1aa5f481576a2fab74bd4a565509915f42c7535dfd70f518c065c65fc6a7e2b3340f121c07c05444dc3a80f6170238a314fb27d6aca7297229f57a1fcf1ceedaef8a80eb33660aee5de47b53635f7b71a2f08585771e0d1cbbf7c3196ff881b04092fb6cdb5414e62615441ca507b4365b412504af0afb50d313401ec37d02596e8f12b85f22ad79a208e7aec7fea70d26b0135461589b03475d36995dd95dc20639f5a17983cf5240560a29b56c31e65663cc52f89d6361122e1c3a314b255b47625ab6326d61332ca246b938ad5deece8e560a2ccf5a6e8a13cd38e88b8150273bd29b792bc5f21e64d3a684388a2b6931a781eccd7ddc873497989c93469c1452c6bea58f22d30abd91f1303f7e23a440228a6d9a9f5c3473d61ee69af3f11267888c2d225cc22df966253e83747e0b69e2a057181988d786efc81660cd25331e9c15534be8de87544bbe6fe255ab1bba6900475a7443721efb2f20fcc4d0a6b0f6b17adc10c863021dbc093e0e3b2e1aaba9b025619b54dd6f380d3a2871d02d7493d51bdba888156411ff21ba0b83b05215588e497e369a6db456b9abbcddfd0fe29c91475945572f8f570a23b2466003dafebd7594b8912fa7f9f22a34a2d27ef9fe620ef027084bf8d2b4875a12eb28093a07dddec03bccca8d187493ae50d94508834a7ae7fb5e355f684ace9ee749ed45fe67293817a487e66f61934ff52f4e9fba22b5bd58207bc413b794684b31f013e445c86ac09228efa525b3c8fb1f71c18f24d37dfa3623e1f9cd5208525e5f108d7b18e0ac8d3671a608ae5fbdee9936acec9e03ffaededfab1bf7986e1f85026c63e638b9f4e6d904f7216c6fb52f8003f2f06555051348b4c78c52606d60abc2777917ff1b596c4b3065dde80730cf00c444a4b772396a2886abc2a5f487fac52aba5a6b2803e371604f697cb391906545c998b9db8bdfab72b24f611546760cb32a04b101a88f1f1196b9c31bd67cae9e7f630a4334f187b8f290972a35d6fdb0af5d2a6f3cf877216e88eff7e4b5394cdbb763bbd1b70396b09d427fa885ecb62a7211cd43b7527496dc1cb9437ffbd15e85b37e70c204481c3af1df8d7149c114ce0c24287fe6094e87d324bad7f385bff59a18cb5871bd296c2f22ba7dd4f9ef68786962a0703016b9bfc147d031895cf5bb6d73646e5d1793d9eb3f71a1a804121fe58bd4070ada73336b802de4fc965ac7c65dbbec176d5e2b22ab4ccc216b842ad56ded5814ea60f8e907db1d7c6814335edc141aeaba4d467e077f6418d96219227b32c235d7e13c8b4b53a3a8bf2917ccd2fa26ddacb89c25fbcc484ce04e114ba09c99615787fd46f0b59258f9872d5b3b50d099313eb446d083c12678d4f1f0f492e458061fb2144d2e7fdb861b7957faad2eec8facc3b28be4577e87f062dcaffea061498b405ad05b9a20d6b86582f9c56ab1a33e3eb216619bc65ca2667db40cef21116443064ed26ecd8d66b651cb5248ace2d2624ad21cc159f026ceaba613f4945547d98d5d9166fa860a45c6aa8a34ff4c2d8636859f2179c346bf658c729464850e42ab4598dbc540350db50e0dfc6ed1158ae415dd5d825fe592ae756a959fbf9c906a46e636ce1d011c3abda4db9692191fabc03281c7de8599a57951297b0964a184cb88d9ff13a080e02830f0d2a8049c63cfbdf39314c83ccc3f5aa61d6fe9fd1f29a7a5b534bf145a19e2341428bd53b82f7e97325a9bc233243042de11ae5562922b0f64571a263c02e1c32d90ef261716f449374ee6d16cec909ec5fee44691a8a9eb570a51850879645d473a152806ac1a098cf17c65345a78bd7386f2f4cb31b03e53935b1d9729c6e2f4bf7b76582aa70fbe5f27d81f7212eff3850e50a78dd421ac6322f8349665044d92d38d5caa18e0f9786c8a3d9cfa392615deb360575f20c2c10121f2a227a0b489260ad84234d1930acafe262da5ebc642081ebc4a7041cd79d648c61a031ac8e940065a69cf404416b3b50027018b2c2d4925b53d4a3c613e7761a78abfc31e7ad508e86145ceed42641baf8aa411cb75ad0db40dd30b8f15331e15fc9ca86de1e9be3162046752c67a32dd0e90fe44ce490064cd50822c89037068077c353ab0ab86e285762b799101c1d6010bb60cef443708b23c4eddd18f91b738621459460ccf97209da3e8c124051a08b661d914f5fe70564951d4e5ad15272f6176534bec04349107ceb94094a9181a7f7a919302249589aeb32c57b9881f17902265cce2406a44aa9c7328c7ee24dbbeaf4e6418bccd08d5a644f5e72e6f313fa9c7f9730d10e3b0566d91117f8ac3601aa526cc12bba9353e377170db8533d0c6c32d94adc79f233163aa9275e44b811d456110f4b7ec835724267e0b507dfa100bc11d8580143324dad504072d1953209377b97b92c01f75222503ed0a65ba7fb4326df7d072905c167f94b16255af973b9ca5bec5359b24d822e6e1e3064543f22704b8031c442e051e2a96a6579aa7693503e091eb85c45c7bb57acf93789f8dcaa70b1844ccfd622738df6599a3b67405c6f114d51cdb1f60d38408a05902c88b743f0233552c634120cac4c860b5c97c1587f118134b2fbd152caa9346a6f95710175c1200a68877b01fd95919748a17bc2e76443d62f58cb52668c4f2e02897f8a03d46be272b2e1e1a79ca3eb2da2b30c420ce1959ea44170727770438ecf1bddbcb1879be3dd32dc6f887346da5e7df5d46e295bdfaa75cbc184ada3d746bfdf91e7606bc25f301cbf39ae52e9a1751cb8cde70745724bbfb3fa1a682a4ccb3ab9f60ebff95a803aac4ee63082cf71970e6e6063e27f50fc4e4331fedccca58abdb303b67274f4112038573a2c73094ac8631231b09a0f2c3f75f460236adf1d8032bf6d3cd053bbfd17a0654a723500cca4542493ca996d1251d64131b62967fa60b5c42c42ed61b8c30428cd4e8f8cccdb85d5fe72c1cd5298757e59d465eeb137e3a87ace076ac8dfe4f36b6a5666f1afde801ca752bbd4d583546918cbfc271b83661bae4af0c0aa7c21478f19dcdc7deb618ecfa513c450d3029423541fd602d0d890049354cb45f2b4b464c134f20659dc42fa2aa62e06005b8715a9ada30c91d4ed99cf10a8cd2083fe042b4b6738f05d9a7dbd2c019cd9214282937731d33ef6abc8a503576aa99ee9c3d177ab35f7726375db0d7c99381a3b3fc39a36465206b53bc4864f0327d63e7135da5a2f58fb0c90f4b6e26ba2c527d475d73f23e7afab447b835f2274d85649bbac0d44d09ddaff7c4a306600135697c92eeeffbbf6580cd37ec7303e1a451ef4a646b1ca76d258380e76fb124d90b6bbb57c4dd00f5ddeb79c2a6fa918ec9f457a953a0b50d5788ae6bfda151e24cd83d1302f7cd53e8a2ae0dc8d2a361fc23addf210617b2a6347cc6988edc63be14ac146da905d77b87db82a05fdc32ee626462b892ce777067e1b08e4fa3ecfaf76deabe7c19475eb89a55a717c9170544d22352df2bfbdd41ca0c689183c2a02294d44c04ddb233e42bfe047c673327989a6a7f15780b89b8af3fa43cd601700f1a27960209e8966e6a2b19b91dd74680e95e535096aabc14e312a6b7844144f9aa5c163b85b6273c1daee1a272e9bbbcd51e3a220aedadce6c73dd11ad60a6f723782dd3eb4955824c705b77fcb955946457ebe2d4996406568cf3ec20722d95514fcf998df47b2af2d53217bbc6d2dc917630ab1a4850e467c973459e7a8c46b3b8b32cd3d280fe61a5252a88ae3e85155f13a6a55d2f6c0a385bd770e483626110467f530c29efe2d7559b0757703e03a9f0ac7553412eece17108dc6096b421e17097ed26cb7f2e98775fc2e97cad3b272d8328f2573534d42d8015119584d39d24a8e36e1a1a69804caeb7f615a1331a9062d8aa8a3c588c289cfed56f0e660c5dd58c24f45e893903848d95a0567765e129bd0f2a4825b6f5fac4580f72ce572bb1081a2204eaa4495ee1ada0a17806e6b732166e0334a3c2f20a5f2c4aed53a068bbda6a69977b04a30f8ad777b4ab1e0792080e6829763b8577604eb7be4a216eacc6a5f006d00324629d2d1f8c82d85688d480461df213697811c31197a28a536e6d95e1b11c9719dc0205fc5f7e5c90c4c3ad9a10df069c07cb74f60a34afe0014ee0009aef316c45a069247d932eac2ea745ee57f897956a6523f7c6f0828535b09db8a9d91aaa174ea5d617443235458f77ef24073a9322a45181546d9e70c3e20a2388d806f3771c89aba33609d1f8754ad274cdeabda2c034d64159dc9be865f114585d80a64346eda1b5582fc3fa0de5c7ae39d76a1b11f69800b89274c78e938a58cb78236771c56346d5d21789adf3a345cf57dfd674971351b75718fabbe109a1b9403b9903fd9094ae987e36072ae0f56d09f924a0abd19794aa6ea3d52928308d8e9ea0dde4a040358823f9441dda26c70cda68e8a4f14c41bdb0c6f925d901691927a94804a537780ff4fe439cde90970ae0e7e067dc46a46b6e8fb849886b42aa17c156beee13f8e0369214f19a8a41f5aa9e789112a818bf20aa568b4e3d8dd6bf8e48ce97f43a341772925f000411d388672feb8a4492f4adbea434acaac85686db284950b61b1086cdac6e0253c205e5f5163e905945c5d7907ad941ac1402539c9545a1200cfd4ce0060ba453e8f9f43d106f3e6318886cbe5c9bed820684525dacb01eec7e3a9ff809d4dd0a40267e316491bb9e8c11f45d73e7c2a3e7ab2f5818e8fe18597fb8712d2b08dea9bd00ca09838ec34269bcab06f83dd87aef48f80ec2d6ef4991723ba196da3ea141a716f889f136ddc26a1923ad1466c482a38d4196a876e0c46a2f2f7df5ff3ad4788a54f71374411ae7c9505c994aab74f4c661ba48a4d82f90be6a6971f1b08e7088b09964fc2047491d39d421bd2ee9fd96ab9654b0620b201c3f81f7c998d3dcd03479c5b2714633b1a70acb81342a3584aabcf420a284f015c7fa29aeb4a6cc584188c0f6d5063789d3618406054b4777092684516a57fd162859e1286b9da81c870c0951962b783f6348c9d50c69636c221a06b47044d9d0941366c3558020f9ec62d0cc20bd248fbb3cc676d17ee9607b2e302f6602348b7c11ee96c95e2d956f2705c109d7a390748eeddea4f4af359a69c442f4d2a913ae1ba9e2543f6822fb904bc0a64fc8a41c48d15ace9837688d2a923d6d05a9b57ad5032f8c9045085c25a12406597a0d9309c6ca58968419b44ff70936c0027898fd1de683031ddcbd03f2711146897f8b02ae07a9d6f6f71e7d716477bd14a527874e78ebdfe21cb6d73d417218d4b1e0d563b7092a99569de4bc295773ac3295c22674076298658bb12aacb59708332557e9476d231e5ba0c35ac3ca088e543645ffe0675c0379d47dae1e7cc5b9191a29e9a294258e1939b9ec20291c01469c81021311b15f4ef9531f50b9057228e37a7676feb1268de62bfcb8dd4749bdc5fe26bbcb0b65f507be54ef9892e524dd48ddd824294e919d5440f3e596e14be77109ddde4d28096a0511b1eaa078c83c9b9feaecef9f400ebd7143fdc1c7fae4cdcc8d552065ca008ca6ac3f7c90adecbc7e371a0ac3092d7baeee9acb682cd015f193205f050eaa5e97d29b258b6dd0eb5d59e637c8d2b87fca91322998d8f3de34b5afca771ba584a57a13cec4ac91b034e71047c538f2fbda96c1eedfdea4c4ac2886a239222363e16d8939d448d6710390ce0eee18d1a0c9b8fbde40978bca99e088f83143e08ee78b688c54301ee7622b772ed29837e86594a9e9d056429d440255e265df1e66f448def64dd242756c738e64bbf84744db169074955265e80253811e05424cb8f836f68b9745461746bf21aba5536fd83c396132c517ca315ba6335faec7eb933d1c0084f5a70bb7241242a2ab146ef3a3901df35388c7e3077524268385c99ad957f05fb0f804cff1e65db3f039f1c0916312441060b6418d99fb07f5bf8816a6f5a7f8a297bd58fd8612bd42f052ab9e4798d92ca09c004d458dc5ed8f982438b79626782794d6275b3f34f847b9c577b470e350a172360f0411ad49ddd311b20113b433423d5d580139388864a0e5d7b07dc197aa03472871df903234c3f1725c69203d0caa69a00cec709a274b9001cfd549708c8573f9650b577f48b8e667c7131b7d0a56d66b0d5efe89139dc4aed84cb703df9807b82538da4f99906386410057769491882d9209219bbe69bc94c9e45b802cfc4869c8540b5cd87e8a951d24ddd820b49a46ff15844abebb12f9d7200a9d54f1ccebb784117ab3e3690662f0e2afa5f8cac12afdbb9da12ad6081c0326d3866b3cbf31fba5b424157b81e8a0b48f0ccca03f6546239b2a8b7e6c9aad6f7ea0e03af806d42bee8e1f9628323e2b4cf0cf24a33af1a90dc0870a2542dce9e95e2804631265ad2224493c87d703e0d6ae7eccb3dd4052dffc73c5131d17e1fd0b5cdd0ea2191103981d1f281d0144050bc4ff6209a238827a39c584d8c32760e613bcafb50eace78257586344a8f5887899d9d5fdd9dcc2332d97ea88175e996ab1d880c3530fdc4713e721a6a485c3a63e9f2764a6523a1d61abe9ba4008dbdec626e1be31304d2bdae2fca74a181579d1392309dd42af06deb4c7d65474947962f9147c1b7b96cb1b1062d9e12e3e811f222024651aa9c0207925afc76bab82fc1d88f0a0a5d9a332153d698b2bfbc3adac115c9414c80ca20ac007a43ee60ddf9448b1ab6cbababa526d3a2740e4e77be91559f7856783693a158e82f453d610b296f3c77dec6d10e0af3655a08f32cfe0fd175486d18cb8652c16c457ad606b47c8e799c6bc206978ce725aacb5141198bfc07888f94bdf198765dfc758c7d6bd27a35cb4e3cd49bad4a12b6956ca9fe43d20207bd6922205048c4d88ba1680be43acca40f16acfe7d38535c6dc570ebe2a8d638e6c01fc73ae2faea51946f19ae85d12631656adc9094e817d91a49757cc1e5fc0161ca7d27dcf0bbbbfa90e625460c427f8db2264a7eb3796fffb8dfdecf97eb4a1e0adbdd0ccf17bbca59449a87c57236f820a691e1197fd1ea946de70a3e0a0bcd404cf59505484986173467c7f22949065872f1d1fbec5fef7022aa8b1a77548a65dae0044fe66e3ca430f3616650639d7a4186d312fdf394b22f81ce3fb452802f3276086f355a02a0266ee46b28645283aee4885976747e4bf2d49cf18d55a5abea2ac220173ebd4fada6480c94baace0f12654a97e8d675d9e9edf2f9511caffb69f703d8053124d474029216aa49863020a53053d2ff5df47e3159f8f736dc308936ef0e1a426faee537d77f1af81e346633722eefaea2d16bd1103fbc627521a98d1bdefa77f8e0888c09dcb78161870094d64d0478f67f8e9948e4e8d7fe2227583d09e868e95e69a6e5276a36495b65acacd9c12a6c01d1357ad3f8b70b81d9c7274b7697c2bd0b519f1b8257d574616e98119656f51f313e222e82f523ab649558c701bcd5184a409ed00faead026117d00e41ecc6864237fe437dec8c8618f181e2858d10201e0109be4eee590ca91f2d7271da41bb1120b6532ad65eab5d809b94bcd2426e36a6f7ba94843f22118b8a92808227718435de05a01ad9ffb4702ef458bcadd6edb0d8a91b0ba6c75da4ab88cde727d151821b57d98df9f71b2c093fdd179d7a223ec332509ab7300cde0396b7056bb6f8adb7de22e332d7d8a490cede028b0f9f7242ddb62f04dec3aad7f13a322339a15303e4081a77053fcb2dffc0cc9a23d999bcadcb08f404ae429e76f9bd68525d7c5fb830826d34a339ec97821d63bd74c7655751564697de203fcaf619d644ac0d5586081dead8476e9277593d94db3e41547d4f11bb47292c66b27b5e57d9f9da3466ddd6851ca58393a0e8070e5e4124294b9c49640d7be8c61a6e957f1fe4bcaf2184b0b0b7d45a34ac402aba3da0c76784c2e1773966e9330e0dcd8ca2d301fdf1dc12811a6c69f631ad71b3faba850d2b4106afbae93fb20db22db13c21086ef22f4908fcd3e985292ba05f7cc59f27c86f3e8bb6a04ffdcf43bf4e372610ff6489699434f264dc6bbecc167910f8e2a284f36f596a8675a88abce87c78d22193b29e285a426fad2a6041aeb7c7870fa619a1dbcd54b75118e66239a1c6fd570e3daaf84738e9b3484e7b8375bb0131d3769265dc976e5b290c0688da104ca4deaf75dead35e6c993db9499bec9ac17ddae4ff3629d7bbf1eedb2401919bb4557b33f051678f6e925b3f925140647a4d0506d802df67d0ddb56fa195e64008f1353d9f9bb2e969dc2d83bf9b3855260186956dcfab3840c22acb3a498a62ca511e7116d70ea2d357ce05691451939817dd6528cccab776cce524530e8e8c2a2aa482f90e4060af7ae80b72b50990931bda42b082f0f6ea360aab56047a46fc2e25d4ee53829685cb86b78008f2d4b3274d49f6912f5c2c46e6f8de50e53907786af3207b42ad0ce85cb7cc3b7f22a39cff2731f3cd5de85af2450cffdf3e17de6825ce33c8ea12b19b9802491ea84c32f0b02a40e1b3ab056f8988de0d5b9b10c3926f9c1130f731b846b109a3209be368d706f43a37a09120441a6185b8c618938bd5b32b43e7c4379314afc387db0d581327b35ba78c0c69bcef7f50e0d080b91ddcda5108ac04351771374e2bd34b33bbf9952efdb73c3e53aecfb77ab98eeb06f434b9e35a506d2c13f2f40ad618934b2dfee053cc89e7b3e6b1fced96fc4614fdea3e74791f930929ffd7dac55bb497d2ab347471f79b6bae213189593806b16c8d63245ecb8288d548f5a82bc84a2480557b2f26d5bd941081f8b1d759e464fb351752d2c555a96a3ca2b4a9d42dd7d72d34ad2174fe1cc4d152b0df8d5dafe79f645cd1a49da7ce7b144053d5da64787ac62126bb9974a662270efcce1955f4561f462d1a13ec9a54f3c79eec880038c23404bcb7042a5c76adac936ed6ff224f4b248f1fb413fdedea864d029ca0f17ece5c386c9909c4527f6f467098bd00a8bfcfad82830ea1833e8971f96f858f2bf66f52a64a93d54da5712f383acd457a8121938d52638dd0a17cee3a9caac1bab93eb8a3d450e4dc1175d9acb439474be9cd4a65ad6e195a470b05485e4cfd9312465e221012a7421696afe40fc8dd3e8561873f54c69459a64105429f90e10d0711a7d48a0cfb6ee4a2ee68f8732b97b82f47513513f6824899c82067b4cb22ad3ad08c05cc67ef7a73e2709cb2f9ea1f4f98236b18a069c4e2420c024ff2fe538d167dc9fdad2da7cae549a409699a9964f241bc68de6e4dedee9dcf04a6a7306dc628839af1e53c5df514ea83913995007d165fa7e81c840fe99c9716097abdc3052d912a890f3c22a93024cafdf497cc7c923ec8a937f9eef3a89153a43a67ef612ea9c1968944a3da190d7a0acc9c647dfeb2103bcf5517d024598b446276cd961b0f5e6db2c960a56f66aa00c162946d36cabc61c19aa19f36bb94acc2df19bf941e2802b42d87790164493fdabd924f604820b1d20ce3e156650f98323009576ba8520aff34711376d125426313fe640d476b00c4bc2267b518bb97e036ce5f8fefa081878cab2425d6f03531badc00a57af7b2ff439c4843ed0f914e1ed2acf87f737579f898316b68a7487aeae7751d1fb1e3c362d890f0b66386ddf4fb4e86972c6e50d5fbe8d73af4d91c73d576a8c2a48f156c26cf8448ac8cf2e82c1852530b8c09fdd8da343a4d566824990d250c40217c51efb5016309739c442cf572f107b7ebb1af3e40e0262125aa9ba45078c373e9e6e4f8684a475516a26d2acd2601419a3e368205fe8b0f6222f25e1ab4023db6abd288b06b5af75f068b1ae2fed15f42c4ecaec512009ba700f4f50529637abac2084372d4bca283370c5dff94617033417cb63366099eeb0f2af46f5a5db5bc5f3a0791832b601bab01671d3bcd05eb1bef004abee53f671e6dd6aeb40399cdbada74d1f29819987815fc28c0ce9d547c85c4d7dd80e9ae7d40693b78e9d9bca24ec9d6a95f6373c77770daa6455ddcd44915a87f083497c3139d891befa779ac801c8656a8ef5f139fb073cedea461bb2a7228d1779b542715692054fb220b801a6ffec330d294976a0fb669a3cb1701d1ed0b7d30531f1dd44e667f6455942a1c227aae8cc8440d43db4d4479a1421a20171edc4c2e0e9ed679b3e64fb7043bfebe51bf9c91c124cc8ad0080320cc55df269d66fcc9ea4b9d0914d596c82a58d86633cfedb2a5b306cdf8b068ce4006bc1c50cfa450dd646fffc0e23374172db681f0bd69315399a64e62a5ee407feff745eafe0b34fccecba74647ea0390223c10d9ee0043184241415216c28c9f12c8932cf9e1e24e37b851d13471d307af24f9c32cc7c3a14a3d12896ff526c5dcb0a764482db00e2334c2c67ffd7b74505f398fb28b596a02be815686c60eef804c552d5d212810cc303568428fe393aa49aa20117bb65809110b0c288ceb55791dcea52c9d102b67f2f7250b033e171782081add8d0c4cd3fb8eb431bbc0daad0f71faf117ec67eddfdb0d7a6fed7e88d0f701c34b4affc02c77035dd3eb4335d22d2b6d530db33c706702fde8f7a34ffb98f5826854aefcfa58b98fdb8eebf7453b34ea8839f861bc8eafb483372ec1f04d4e207117b978d35543bb7c8d016820ee12918e049dc49147ab5737a1ece54e04f747e78308c3648cd721b642fe36fadba12d12b874f5dfef511dae052053c0b818c8172d3e0e2e3f2a7340cfb720ea0271b2e761a056eeba8e005e1964487f8028786e0f91ab097e53198a4c57a4f12eb1608d25384522dee6ae4fa2c4c6ab086e4f04ec68ecd40d6fe5049af425455a0b2b4d4c02fec3cd23634968dfc13f97deb885dbabc40369ff53af1ae5c13c0101fe6d4f439fc32aaa741e5aaac1a743f76af035528f590c98a94e60610413304246d42c953e60d39661837b1ec07df35b90f254d02a5f0720df74227f976fe385597451521a58f41532633971f15f6d67acb572fdfa9594600acb5fb4eb8334d3e12a05acc1895a27fd6565247123e30309a17947bc897bec4e24ea7791b0a79f110c35f800bfddff85c1167c4b217fa270a19826eef07ca38095b11926910817895df9a2b0a9aa244d9eb4d62e76fbe567308c3ba8009d4e484d54d4417606fc69d2a92127214eae75375b233fc632a0dad2b1c62f435fc35d0d2440054cef7c361f666d1a7e7f711adc3aabb498b07e89deb96b3848fe01d2c75abbb2468b76780bd92208555e088d373e270cdd47dc84dab21f25a187a65287435708e3063095dcd4ec601ba89345aac718c665f146f08f0e5c2c7b27b2810b4cdcfa84d487775af3caa076fb660310570deebabe6ce249838c7a01bd087c6297a5b3375ff894bb0e183bb31a086cc896dd39adcc4245c0a88ae6c54242382d3cd7d3853c6b14fa5802c15967611613416f4bb907d0eae1188c94f833417b208a07a54c7dad73118d8eaa71cb33cd9173e936f472ed98cb2ff12b3738ea3799365d70a643e42649a19b6941ac090765268d2bd7f3c0849f7e13007b0119f719a267f4c1797f55c8caa1ea20aa2aed7c4d294be414c1cc73405f54635ba01087c481d481f2cda00221c6ebf7aad392fb44b6a39c6e2cf9b699f581cec7a180feff684d6841922aafd3d0695e8721a57f3fa213a5a139db8b4eacbefbfd2fce617cc100ba3bee211e8d507fa95495c5ab3d58a6af819a06dc98a8803586e52c9960a621296ea814644a77259cc4f957ab6a509bf3a90c744e03fa2e366f57401c516d0e09ff02058398f10ad946f6904bf807ade087620a1006232d47cd3cfdcafde9b266fb7f14a9e732ef206bf127e9548201b8b2c129c085d5f7d56e5c6085ed844f960f5bd5e6ebdf6c6dafecde524a999294327007da069e0699e78586b4d65a6badd50d57c4a0f6b25a9d3cc001ab66ffc26da5000d4610670d79d3388d8323655c738237475e171412e6ead0907eb70a7902915298db43c33048981b0719d27755e12c107d25552051787481887fe031e6ee34ca69206f4f1222dd919f8fbc3da10b74f9f6348ae2db4361a8ad42a2303e41d82b6f2fe7e0bc22f675d8c3abcbc2adcbdd1f77bc232837146843414cf51444fa947ecfec6eaf39ec60a1a7d05248946c2e70ad6662d26ef75aadbd7e6fd379dbabb5f7628c3986359d98bd18635896695af69c9bce9c69396f1bc77d3e5dd77476dd77b3f74f7bd0862394e9863f04927bbbef1ff6201b8e29866c3458c445449a4e11ccf5d8392cc7914397aaaa1151bbcddcc953578e28698f8fb1c6e686c562b1582c56e78ce3388e3dae562b2466d0acf6d163d7744b7eafae65b1582c166becb1c71e7b5c21b15acd40e3ba504837d21adaa236f486e2c81d954aa562b1582c168b9593d339e3d8e32a053974e7d5d32a513e75d9aa52a9542c168bc562b13aa7733aa773c6d538a60034e27de6ceab47b5c2adcec6bb791cc761b1582c96b3723aa7c7b6011d690db5a137f2a98f0aea542a55a7fa50168bc562b1585a8675ced8393618b119956858c6e1d6bc993841e01e954aa5721c168bd5399d859eafd943557445593a8ec110d0062404829d49b5a9b24aa552a91c27c334168bd559d0e4d09594be62d6b35e49994d94524a29a50cbf55f22585a21cc75913067d6fc1b46949674db70d576da854751f30e5791f62a2942df44921dd9753286bce982f2c2d6850ca96528eb9c191ae1c95d451e1b4c91486ff9ed7758e83654fa7f256cf7a95aaaac21ad47130061dc73a4e751c779c761c4d0e9d26aa624c6153e96a1d596dc014eebcaf2a4cac3654740f12a5c4a8e8e6f72a641a400dd876761a872ef5d544438aefb5fd12ad29a6bfd058682824aa46afe0c89d98170d0e2653d6324cde786b0783d75b3675df209a284cdb0ac4c4fd121dd735cc305939bdc808431d5ab05851e28d504e52b015494985b4830b0d991d7468c1624589379a8192a2e2e262523a7d36fee5a3791a1f8e77f972fcc907e3573e29ca7c371ee5337dc8030f2f4c3078c881e346ca0b52298554a2b161323269eb4243664a1d46efb7a4327ad2e85d464f63f432a3d368e495942c76efcd30c61a8661d975023282b0c185864c584a499991022a99ac9c5e64ecb0c348a5e43b90407a7ac27086c9cae945062964c5a2e725e285919133887644223f522955d9a08888b74a2f171a329aa6b9d0903199400f02e90181f4b0e1e3424306c5e5e3b18392c9d3f8789c4e5ee6e3b183141929272732524a2713126986c9cae94546484386347b4e24171a32271a9ff82edfcc9f7c2c2fd3f2fd252180192e70a268f9c21b962f6c7dbaeef3f97c3e9f8f0066c41a292317a3945187444e345c4ea79348344a2991ca702a038d2f00eff20120470b2a3f0a00004825d20c9395d38b8c914a29140a8550b49013ce305971a121a39d5e64a88144229d9cea8b0c52a954fad21a4a9fcaf7f819198f3299c2f0dff3ba2e1c7d582a29f148e10c9395d308a526250a1c15193227a7d7c09797126fa4b252da81340325a5c41ba9ac945c68c89c944c4adae945c68ac90e3bfce9d442d9c185864c48fa524aca8c1410a9b4727a916122e36798ac9c5e647c28c385860c0acac9a7eb3e9f0fe853202e3464524824527883f284cba9342a8d4a48afb5c829d47734c2f05bb49861b2720a431fac9ca3d8703616e00ab004f4c011a80262ee06c5e4c5a44422b9d090394931492991687c30eff2a152beef677c312ff3c578940f7479192e3d52a14ca630fcd762c06fa41aa946aa916aa41aa9462a0d26c6c99b944e4c4a2f279713e944322af17e3ec9c8138d888480f4acb05074421f844d6c30305111fc6021b1d3d2e1141303e6c58509068b141596965ff12244b9b440e96082c1224525db93cbe9746ad9d1c5d8fa4186f1071946d50815233d4bb45a36a85e59bd7a640bfd40f0bbb141414141414109b1b9a1e11331df9c39b1c4b08cad9d91099b7bd36a9d6a407c8cb2a554baa19d908ec9c98989898989c97f763e6870195b63e8552365584422914824128d3b35230b2aefb8185be3c884cdbd69b546d48b969293cb06868484c5450bf84224128976c6d06bc7c5d81a47266cee4dab35d233b233f2f2bc119b9116371a711cc771249fca3d204cd0f0075da13fc6b1358e1f146ac41573ef67e7f342c38e4824128944a29d31f4da6109c7d638a250209fc2542039203a36bd425d841441e4a9c8873c0b8a099b7bd36a8d2fe1d81ac711c69503028db2c5079633866118161a7fb8701cc7711cd71a6d5a2c27968fa475fa7c3e9fcfa7138dbd52d35aa20524a919c3305c39897e9c5ea8bc506131c27c2439243a8d43e23a692c1f890fd9c2cadb9673cef91482b4406c9668d5b0701cc7711cd71a6d5a2c23202d10929c968f64a42f974f348a6a444ab0802435a38bb1f56364c2a6c507d23a7deee9ec221ac7d6d8aa39fd184f1f7ea2f1048a7efc1857a8b048f9f92b545250405a236f48895827a41144670724070404d4223142a49f4712298ce308d26299a88d216872029e94c121c5ef2ee43d294331f6bece063f0abde8033d0e3d0f900775dd87e49333231a2bf23c78843c8fd077cf03e47980fef3f503abe943e49b355d28a495c930dfc583f9721b188182f93299e48edcd9b163c78e1d120da8ee070a537feadcecdcbc6ebef372469cf9ed29d0f13c497d8ee3387a9eeae76b0aad7a3e886d323d09081a52ebdd2929ee44fc291486c2708f9f4592baef51d075ef810d027f033fe0dd68b8d7fadb11846c83d8fd2e65403b9afd820062d5d94fc99d1d61105333a70d229d39372190904f7962ada1584dde27fa44be0f778fbbeb7efee7a65114634a75a80ed5a16004c4cfcf0df4b9a86d34732b00cddbc6c38bdd6b9ccbe9ce81c01e224f49e76ceee90761397076d6b66fdfbfc91df165d89da3b11feecdf148737a882a67814e417594e841a7a04d00219be0e1a38304124c2b3826650702496cbd628f7b7b01694f3d8fc26cef6d3a5aec1ed4812921442e07578386d446c8c4bafbdb808bed9493b2e5defb12830a3d8661606a03de5fcc8bc9a47d3978ec40fb1e3f5383c6c8401bd86b589649f125a6b18d066fc045ec1beb983572d8e86fb0a3d80af38738ce9d9cf2b44f85daa762a62b35c7a9fae1ce9ad9ea6eb9736ba8a4e7a3e96a145d87aa44dfc0d410aad7b1e3103a53a5c2c0117b8d1fc65be3ca6400420ca4cb640ea2fc104c1892e94929b17cdbdaa764a841bc2d10ebcfee5ac48b00b1ba5cb99f7dceaeb5d60691ea7cd371c569bf0fed636f8c099de32f8647fe1eddcc06f228415751c5ccf63dba19138d41b3942e76085addda121ec0101aba580479737f6072ea3d439619e26087b38b72522b4818c815fa4618010318d4a00639c8810fc45497ea529d0f33d0500fa847bbbf54a6711a7a5393d6ad6d3aadfc1984fefb1227b4f1cc622076eccc8c62948ad9d7438eb641c39beaee18868958d46eaedf15359ceb67450dcbf5aba296695aae5fbb88573e56938584488fe0818a0798c38d143138597355c407a6fc646f12e54ab2a6108230670e85914988426545cacd1b0a23a318c18d486905a78d0da6e5ac619a060a0182f42936e78c1ba5759d47b8c79232bbc2cc2368688b98ac1b2e36a855817da8d0648a7f30ce19638c3f1f10fd122f986aec0d5d0a374bca84bc62ae7391238014ef101a0a1c55e43602dc27aa706fb00d8715b9d7b25c374d5a0e477eeee5c6437ece00210ff20908017144fc20608e883f0137227e97f638ee6b5cdd3e3fb71b38640e297ec092ec2be0fff9ccfff3fee1a13c3ccdd33c3ccee33ccec353792a4fe5a93c3c96c7f2581ecb6379782ecfe5b93c97e7f25c1e1ecc8379300fe6c13c9807f3749fc701facff7c603a873ff4ff7f9bbe1083de87be32104026d1ab80112fd41e00d90d88172c301125db664f9bbe2e7c371450e7f365b0e2996f857e0f3f91d1445d17d40fc3d05dd706422f7b3371c9ac8bd46f3e7a3d4371c59e45eebfcf9ba5be4dedddd6e383891fb5a6bad77c3f111b9d76cfe7cd65a6badc88dc4a1db3ebb71d915f5e1d2a93e668d8e98f21a117f2a46c41f70240edde6d9411d58e4b8cf20f680a83d11220f9fcf8fe3034ad992baad9b0f58f279ff92fc44880e6ae003de00891c2865cb96c11ba05e89b85f220653f70ac11281e8ee7681e8c8144d573530417bd277aaef7c813e1186dac7a5bc6145daf6e976237fda4feda3547bad73feba5b7377ff88da6b35e7afd65aabf69acdf9b3d65a6bf327ead1657f331556835d3a3d774c591c510f6cdb3256b2813a3051d31e03e59631ad7583bddcb62fc19e0871033590c11ba10c4c6539374260ca7752f5d522cd1333c28c0286fdd69b31c5c2ef5616906199a635cfa49dd50fa464cf4a4f4f4f0f1112357526989a494c1a782fe85880e709c270eac89629328bbbe299eca5e8b65aff12e083eb010ca08e2b9e62cd9a4ee9956bb0f6f0667660a98c51e99434e32cf89724e4d2da0c879f4d2933654ba543640f93a1c3ca0c01621452331d40f85a6f9166527ecab47241b2e56c356a6270eacc96ce6c892cc4d4d419c10e0a5e468894d239d21338f8012d13ab6b9fec1446668c3f19156935a5b49b52da4d04cc033ff63247f38f85b8425411533eb3984511c1ef4f4c4aa2a665ff482524a2c6e54f97fd13891a080463a0e532200212223222f24699a4845432c9278f92fdb322f6c9190d4449515991fd9ba2d66225e41cacb2a57e0862842bb369e501b1702a4e8cda848439c9f00664552d0acd060a09a3e1d030fbec15a417445a7b5c5a1412c65241b3d1ca605d6be8919f8fe66a57875c8dca3a8045ecc25790a8cc7ae193f03c7c414ae3030f0dc4626f9286775e4186fd42a275795ed7b93e097443b016ec6c34da20166ea27b916873ceae3a1deb0dddfc5aabd603ad46ae504d0712558120d23474b30e4153499990685552c6751881289f6475ad0c1f0bb4beb29cfaea962851e818d75a5badbd8e2daef53a8dbc51ebee36bb419329292b31f6eeeeeef9d5ec5a2d6fd8f514714e20e413f7ab4cd0903ef65a0824444444446444e43f3245def47aab5f91e7f9ac2d0fe35f7c4ade9c5e87930ea617239279bb254ba1eb5ac43657a3d9d242925d5d93944c168b9580cd07d78d49c2891e6898038754aaf3965ae68b172d26b34d4efc8a6c34f762bc39e71fefdc318c7f18df8b1690df6bb30cd4719b88e7ccfb07910ccc904d87d3d086c278bdb1a16ea3b99fcfc54f886cf867374bbbe8ee9336e95293ba5b34497bdf25dfdda2ef9f351445672bec1ef9ee0ef96e16bda241dfa1efee4e6995ee6eb0519a01dd37f79dbfbbbffeeedebebb906efbfd201b4db3b8684142d22b218b152a2928e0f7272625d2c87b1b8dc87b21259ea8c4231195949478dfa26f128f044c1131f2443d22628b60894242a0d7bf07d27d42a0119733c906d69eec6630658b6095f49c5018ecdecd9df3ce3f0ee221774fb5e8efd831b61948a8eb7afee464a3c97f22a3d075d64ca2d0b5cd4a9b0efbd8e30f86effbc905fd6493279b0e0b8213ec3e2e288c0c3499921ab911e9f631bd926fba3cd2ae24cfeb1ad45d4a095380ee8186f5a514a2bf2a49ccc0f74b66946e2eb1070a635320436a5720d2a7d6082985dd5142a42d5083c21a91c76ea7dbd9e9fa9a41a49fd2a078424c817e8c2015880768b5d328501174853e123d22e80891d2771128742d449dc1be0e60d17eb5b6affdeb1763cc6e34b73b9c7140f4b72010fdbb3a9d92ce68ad468154bd4241aa4d4c815437c3248cfa20156805a01508816cca8931569d72f6a9086c63599665b31ba256af1d92e70c2a4ad1a5f2288e24a03c6e0d8254a016010c3a675c500f0c5281483051799c794c81487f3c218fe2cd72ce1811fd987306d3c78cc1447d60da40a4261fa4ceb47209d4878f1626aa994c75b650c08a6cf1ae767e7df810a98095576294c945a2ba1922ed70c63eb329a9c96b776f77bbdb59af76b359fb70a0973137a6bc7d73c66fc8d01fe4dff9f5fbf1e7fcfaad57ce7855912dfef913f1ebb7bec9eb8c44997a85ca2664c17a77d87ab515a3dc4d36e57c6d8e1cd7d6398724549fd32bbeb63abe764e1c34f527421b3e65b5414d393ce57fd26adbb1ece57b6732870f3d607be945813bedd935a3cdf81fb3994c51742ce1388e17638c2f06a6d8b3661cc76e42d718c618d72d634d8ace24657a3489b6765cde68a4a9473a1631e2ea98bdefb94dd3d4283a8ea6d164e9d828cfebbafbdd590d0da905e98f9c04d6172ace50dcc7d756a730d666af19e756bf6eab6b5eab63d9c7e626bc6e79cbd53313aa87a3edcb9fd6d9105751b19f6d00f7ca1baf36e7ac042962f31272aeee75cb5bae9e9550e20498cab376f706bafd27ceb00c63cee56ddbb66ddbb69b456d03e2c51fc80368711342bc3f430d94d3d6efb57bb9cd9ddb6cca94eba6c335a7d46d88c1977a371eb06ce333b11b683225d52fcc035586b5e74beb4ddb7df688dd930a1ab6cfcdfbebe6ab57e80c0667cf139df7abe2683225552babb2686fb488bcaab488fc854655c72d9bbe7935ebd53e5ef4e94ea3dc85436b5ad5e37a793ab44571e8aa775aa773dae5795d0706d1673080caaaac2690f07abd5eb3065e70b5e775dd0886a8a2e5792df9051a38cb59b20924f4ab5f12a8ded25ed527a5d5f1ad3ea7577c6d12acb517db767cabcf3bbd3e76c7186399bb5a41643b3b1c5f3bafc5d32bb6b785c380247c90f65a9c9be8bafab5737a0dbffafcaf464caf38d1b5579f539ae44baf4b023b511d5f0bce9db63f99981663f5de8aadcb16ecb7bd5669b5acfab5b9896ecada037bafbde9e6d36fce741df08931100b885f48b6842e207a363b20faf74ab5ddb4db278baee81148e8261154cc1538b7a6425cd1b9123b1fa19b3a5a3acbea4c960f5efd12606f0f9da3ebfa3d7daa9c47639935424763c67c3e4c6b35cf6ad5b28d26e391e21986b1e422740e86f84b619a4d87bf0f14c6ef57f7ea9b49cb4ef2bcad433a8c79e0729fdc5d7fec6754db81465f34faddeaa68342c0e90289e2d1236626ff0acf905678268733396626cff7b624489336ed124e8ed18889c82329198de4c8e1ae2779af2770ba1c41f40aeebef47db67e5a92d5a0265f7f49cef0c8be079e6900f058c5ccf4f7c0db0e2b6f86c62a9ca19f0209d15ebe5679d0ef4af05318c7181c83a0304250184a5948d41c21535309d11f4f89d3440972444e7489869add8e36cd2e8f1e3f23a74b4ace41f49733464ac2e1c6266a60263b885af2def32079d16bfd754f674abe8290321be915909f049654056c5f5249af80ee499f17413fe949a09ca9416b500de4473e2eb3a32a31444c511555a95eac4c866e3bbb091a9d2bbf218b48b5bc7d2428a43d0d659913659e5da560750a8aea2c0f5ca930009d99ab31a4e66409fd8a8ce011914e27f2ee7c6f646d9da6d1dceacb3462216979e3b15453af70a699c5b06a547dd1d7146178699b8e11d1a8d4231292099d60e8e6cf1529fb8f2e555fa5fc8597a6d3cdd74af65b204c98b4bdda8b31ccc66402cdc06482487fd29517ba9e93896dda649b8add8242ac6e2ed1caad1088fde4c963aa5473b5f2c16229510312523710c4abf35614c87455576e334cec429723891a0f6040cef16a338c457dd091d6d0155dc9162e7476cba410333d8d981c435d3d72ce39674f82d6d4ce59658c3489d8bec810ffbff420da9721feec7bdcb86df7d6ffa9c07b15f7da9ab3b558b515e369abf50cab6ef316dcc6d0a1830c3dfb30af15638cbd5aac5a2c6fc1e66c319d1cc5a4e00f1f500788b971f56a5866e746ff4530651253afe3c55cf0b65080e82becaf6880ca1cc77174c0c5a4953794888d5e2d38b59756cd566bdf6bf55b6fadb569d75beffbed7abb36ad2ece8c05f7e29b9b994ae713549b998ae0d57e316badb5268b598d9a5ee7a2d657e0c7e0005ac43fe7747904a8a51b8db55eb7c3f16509f18e8a318b61597bc5d8e69c6956cb1567bc036f5208b96675e904fbd85dd3f211996bef5fbe0e8449b4d94161e6f703110485c135d3f2e6e0dd020de96f349b7f267873b4d0cd4fd9d727d4a2e13cf90ff41446f4fd29210bab41ef606809d017b201d11618b2a1214501531825945953fc1e6f34d8077a75dbe63edc43efdaf6817a40536cfffa1ad4beeccbf362fe9eaecb7db9312ecc455d8f41f9c37c2f9fcb77faa45c49c99b1a187342889f6f4ec35c8d9a18ff6cb97f7fbaefffd0e7e27f3e9fd0d321421fce8910bbefe7bc03750f7a81a600f550982972987fbe3fefa0f70781be83653f40f43dd74ae15a28600b7cbc817c9f1441be144efdc95fee43add012211b0eec6df30d2ce1e1e4fb4fc08c37bcd1689a48cebe153f41de24e72ecbfab393cf9e8a21e3b24fb67d96e5d772ce1d6762f2a18d665bd97206bed69d7c08c302cdc949cef77e3a5008dbb8d6df3f79ed9e5caed528194f9ffbedb10f3de8bbffc88841c1c4784971413981d9bbf6fefd7ff681fe9fc5ae4f568027b71f77fefe0c86342182b64e05c47028ccc9d35f6142e43157a324b5af1410735114107351104ce1904568a36990c3c942373fc56596484322aed528d08be35a1898f2422d10d7fa0f988a71792ade0a8f85873d71c47a29bbee25654989e7955eca52e9a524759b4475ae7e1fc089983fd4d221d432855a30422daa1a42057a01a66234163015ba0053dfe2b5f20a5f3aa3bc71b170ad70a9b8443a840ea89582026a81205581581feb41acec31104bea1031e6ef5e5af70281ddab7b89f4a5acd1b93c57e7c21f0af59f7c5286522c7d299a9237628a6b498e6b7d5e3a628a1309017950a6e50c5aed41409216da3c1a3b5b3d6d284cad2797971830a8181b397a88093d0ae68bf1bd7c2ed6dacc25eaa7666bb66a08d47d38d74646369aec47360cd0687f638a58dee477cf9ffbf87c1441020b9d83ee030bc14f6d2afe8a534476845c267a7a42ceb942d7eec26b8b6a57eaadf7b67fdf7a31ce51745d6f483767679caeebadd73e11ee299173b698e38b5d9be987d74b79d72b866127b04fc1adadd6eb756bafd76b330cdb0cc33bbce66cddafdf6cb39541ce39bbe79c73ce5e7ddad49cf314f26d43ce39e79c73adf8da8aafcd39e789a34deff67bef756b22bd98fc87e69edbabbd189b73ce9c55d7ae4f2c5d88ac7db3c7332cd3b8ead8468e39a3312c5ff335e7b4b5f3f6a98e3bcbdb9d3d54355f13dbb00cfbce1a9b1a98cd9e5b6f73b66a5274f4e9cf57cf14ad6344f5f66ab18b6d757cb15c052b74fd038eb9310ea8020632c056ecbdb8578bd55aedc5b34a2e6fdc96bb63a636db6ba543c0d0312f86b13b6badb7b59cb34631e6f59244db978a1417e08a18635a7bbdb77a83b90a1a6ef9aed8f67a310ef01c64c026c980dd7b31c66ebd18637cafeddade52a8384036a65ffdd0ae9b38c456a1ebc6deda6f8a5c06b42fcb3a90d56bdfca965ab1bdd98e78556b2ff68a6fa6bd0c35db61370c753c91a3fab5b7d68bad87d65a6cb15b8b2d76bfb5126152acde6aadb5f6e23a1e611cc7d1061365ea4f51273c92d1844d26af2ee78ceedb35f64e131ec7711cc7ea266cc2a3ad5dbd14dc3e61f89cee354ad03983d640c2a0cfc40d640b7d1fed0471c2559d66af5a53c1ddabcd1c5feb354f21b4d51bb3d52bbe767ef54c73eb01a4c9a8e4ec9cd894d108000080800043170000180c080603224112c561a44d3d1400115d8a4c6e603a158864590ea3389252c620620001841830234043b36d00dd0ea8bd0c64a36ac24bc258935227f89b6e8c605d951e1a7804a72086d1188857bbd0b3d86a16288cf412bc42e72405b94aec9658bbe137dee0f44d9a69fe8cbdb0fd9f9e47c498a57411186ef7af626b875eaf9cb29c89ea7803c0882eba529d6957e4bce6e9f470d5b2dd1ed8bbcfb42aac447532daf4c76f6c6fee35208e662291107894708205d11a0c3be5b40ae17cb9ed91c94cb5a1af21525ad21621554ea02f9301b94ae08bd9e74c055b47b3910d27d512d0d76022856816472373434a1bcb689a46cd7d69c7e0182e4d6ea718a8fa973a36a0084aaa628cfb155ac869f14488950a9bc297f7c3e962c98b972ad32ae3264c5f96559af8279d8acca2b214f695209574eea83cc87e4df688cdb740a01401ab57984e30169ba0584c0dd695b34e2e59be62a70a453cbd16242fc65e05b38b450eae2d7bc13d6e0b6f958b04d7ffa22d8c1761b277bcdf3b150171104c5d4e92d7d66008b8146eb5974e0e28cafe8547c81042f6af1f3093c37a8745b8941e6e84a516867f2a4bd351ff289f0286a3f5b2619799cccbc8efbf44014b34745136da181358db558aca0818707a238d1eddc4ade32f7784c8cd116c15701e486044258c007ced35510f629c817bfe59141056c86bae58a028c3ef7deae28785ad224e449ba009f9a8bfa044b969f3859e0d2684d5810b36613e1d84196513c76c50b876b0ed98dac23deca6b88391f2243e3a6f86afc1ee88cbd9415935df67e05c4a923f6c3505abd349ea341542879a7c3c70a849a938c884c8ae113e492effa58696a8667a1a49e8fb941dc4fe00c38832336acd610a0603fcbe5921bab71d1bdded20aaa06cec8bc5875fdd35fd9e510b188c79a35fb22045861d820cefb5fb0483e189d1b03c2d46107ec62271f1369bc14a3a80057d73a1527ba6c464d976638202976ecf418574d007bb822203681719063058986bee0e44ddc21e63abb38877a9d42125305f16077a252c8e9d898a448396a900257c729adf480439ea102b7f047bb00e45682e8893496a2debd3b68cd96c2354ed4f67bf9badd46352a137c72632293fa13686450b3098e2be5d47adfa8ececb902833a5f624e39c488518639897736ee74208e5bafa5c223a3f0479d46bf90b06dc33f9d2d8bd695e567919ab59c590ecb098ed3e90b5e73de2cec2637b542db7b333de02b7d6ca17ec71b1aa88c94170059241cff51d080e0d61dc5016aee67c1917d101072867a935f182896421162a9c8225d098b65174c11427e87365175d0948ae33999e70120529a99d3a8cc7e85b37f695b81b9b55d33ffbf0aecaf086175f0bba45ebf9d972595143c34adee456b08483ef23a4417c26bd8405b7f860790fca138bbad5860bf6dcd44c3d3f97c53da5bcdd4baab05c96876de805001dc0e0c45d81d10d26e9ba881c9344f609e5336987dc7f63f0daf8e04488428f6d26bb0e93568688c9d8a0049d272bc10e1b3d83de27ddfa434827a34b1b201107bd12ec9f2887cf0117a701b184ac5251f17544919f0fdabe152272ae075ab68c6882f29d67e4821d72cdac04e3950610e746aa37a69db296374fb07a56b7ed2463a7de816d361588873f289930699d62c4c928e1078113dfba1eef380a578241593d3184ff8d9b7bd4f6f8629d867082c984516012970b6582a0539437f5e6d3823372327fa4e6721fef59074b97350927d32a0026d491d2ce7918583d0fd89024c2fc5a72078531c1d2c39b4e4200eb1a126c34bb325bffd4ce8ad10e456f20fede977a6f1e30af5ab945b483e144833cbe0827930747875f26e8d3f5472f21d83fdd9ef6cd09ea89eb4a48df5fc7bbbdb319b0c612b39e0c6a9d1b1c56d615930da4a4b23d3a287bb391c076785e6efc8135c331da0baccc5d170729515c5e54519902dbc28d4cb6f3e0f8bda57a65de344b8529b9e55f3e168fe2f6c2b83b4077bbe529ed821e1d519405f810a7d33c29e3ed4cb23e1ee57085528c140d4f0172042663e2f15712b6ecd2428c91e242447629268b4a84d0899df78b8929ca41002a096c8212e41ca74adb32d3173c0706edcad47f504c3a005b18b497716832d3f80c40e01f4c00bc6e3463f71d0198dd789bb84717a9e32afd0b55016f75f5d5d9b5ace9f72eda2c333ba47a6c6b08acf6ffed3e2f79bae32f2efb90a530e755eee3705880d1013f6083d1aab2d94a2f3ef3eb0eea11265098a3e9a367ad46768fa87ba6e92e2f4950b81133e6ae070cd9758ea1d89836baa1e693afb079a94107e43484892ca5d8e4035c509c8d5e2fdd24852dd5d60c4a8612010baf8e185241a25b129a9e5e1c54dc5aa140de4aa859fd8049c19b9e1cc493af2c851c30fc65f282bc8011d6d847dc3ca27ee47aadc502169c8ceab76b4850ff3500643403960aee3c4f8465e00a4933e6217a4123d45c48647a3b658e466b606a740bc0eaae5c2f8a7647f4287eee507817c879f90476007cb79c939a118110ea4df0eff511c592287a7b4ec9003a9843860f95b6e330cf49baef62e19dce5f28410f5d5db019a72d94db61ec5c0e817823bf12e15f3b151a81376534c08e7a866d45a9a720abf3adbf034886876280c9daf84080411a378869619d74bce42360b818447426a10ffd373e1d7922abc55cb685944a845618982ea404c5f1ffff8b41b3fbd741b2b3f757b47c5b170aa9992aeae1e09133c065771e6dc4ce2bfdf77f5e3ffba30717b37e22f79764da79fd566aa151d1d075d5368481498f94a102ce25a1bc616bbd31addb685b51fe47f831b3ccd6bf6f7ce9761002ba46f0c99910698082bb0bb0efe51694b3495f0a9d67843b45a30f85d6e8c59e9dd59ce2fa918a4371e577f94ac5fc5add26eb8e490abfb1789317c10376aea1e7d1503d363f26b838df804c1680f8c9035a340c790af678356e6382bd0a2b64dbaa651623749cb212ba79634665c5096e560041de91308f01d52ef5712e01fb4a0639151b4369a5c0d6cae4da7a78dc68a39f50b5909870a9e03fcb4c65a8303d5ce867328fc324a464eeb570e2fbb784bd53c6ff8c3b81ebc1096084370d882f8e74b0e999d9c15cd980c9387908eb3be72998e80b4da00dc107dba5b4554f468777d97f59b8cf375e059184c82237a8bf6463cd54abd27bf6d241760d8e5d83beeb5a2f4affd4b5d1f3a0e753189f0c74257104a6fd2d5b2e8faf1456b60c03723ad52e1fd72d63b6328547bc2f07a0ba418f9585863b478156ce98c1ff90eb7e4da4e49c13721d2f31fcc96a697ce1745cbb42684a2404b460b645c667ddc9befe99deec25f760969bab4f372479a155c180b4ac9f4bdcb214d3545bdf7b411f34bc71bdbc4296f93a721ed4c6f59d028a6cce3233ed743c37fb54faf3f1c73582d1b921865ac0c2214146a5ce5f7c71ae080634a0a98fd8dc70c86190b114b152280f059041edb51db450e5022697a06ca7a554e612a07545cc7a82bc1f37aebf9423c918cdf512d71da1d2c053ddc72318aee6706de861509d1f265dd3e807281408318f873d5bb74285e62568ec2051895c54f2c349c7c1162f033bbea90aa959d76a5fb7f594646dc98dbb0892021fcc1e5c9f07ced4503723f39e4ffcdb69177ed03490b6e2a1979ff0679c9d275e732b6cf7745a8b53479df66bb3b2b3591645378e5b8fcebfc419bae7c2631b574a8855a2ba9677f698f8ae391d13c700066c3c787c534d6bf05a4275d312f316641505769f0409e322bb8d98a078919ab467774a082803e91c10962c7e8b07691761090e6b89d6a164154573c457c84e31d8d02ed41e884430f58c42a37aa7f3d3af6861318afa40f858080e60c608df7444bbc82f81255c5e759058b7bd8b7de185ef1942b458b5bbb0cf4e5dea2faa630cc994790b50140b807511a5c74dc9cddda27648570bbaed2e7984fe511177d944997dbbec58d48dd29e9e74c0484121bb06db5215d40c46023ba8c32aa4250cf35a358110e2dc752dc7106186798cd37cf6af75c7a712bfe75f246dc758e7d5a26028d68ae244930fbb427c11fa2d5e79c0301d6019f6661fe4e090f9a97733f728d68b448f17a1df6d3b2797645b6167d10533f7a3fab779953b9aef8fad69d13c9f985b86e6d59a93466bce9e11c9d2454f8e597d918fee116400cf6eb04fac6166c1837781197a7e4fbd38a2e02f9f5aae18ed85d4a742623dc3d14832c5667ba6dcf8e4daf63482f6a9f5b93236060954f355830d577ed5e534fa03b3cc911b1ba7198f24d3af04882e025a665bef2aceadcae9d6aa10ef7c5bb5706f0dfcb652d06dd7ece546cb074d890c2ed3849610f28ed5d2b4958499863ef426c84fa86fdeb813ad16cefd7887ce34c9408acc4a30324fe34e3b043d2f54ac922380a38d44fd0387c5a992b62436bda887a0e0c8399ffeddfba6501b1ba3c6c8bd7c0e8c6110e5e96346f637edbe3c3b0fb8d9200f76bdf2c2efcaab5603d3afbf7c5529acbfde2755bf2e505c02eccf27fbaf4b3ca380d6bd6a4468342e17377b8165340d7c1b6693149d37d78f49ebd5c7c472bb5d09efa81a8123a4dbaf8053cefc0a30275ccc6936d8cd8695d1ec46f4cae52b66d9671dca12b1a804e8a900e8e7ea48a5a36b2180563688ebb9233ad5e924927990cff40b91bb2fdf05e5f436208399292f4b9df30df17d1899d21d61d373d11114a4c92d7a2fb6e1c96b76274f3bf63d34bb418537dfcb85179c738f7b51e3f56f613a120620a49f87bc230120927920af7f1e8b3910754c1076a63adeefff58cfd54ce210ad0060f1fd1f0cd3a735f4d4b1abad9c45c8e1169e8380a7cd8ef058c59bcd0d226d48d3a431083e84c3ee2ae2fde3b9b50ac25c49a896b2afa1e4f384a5807f617f65137f6261bf2be7b4d242948c8dd5e500b30fc28c1a34d233fad345baf0e1cb9f1faef4fe511cfabdba5dd5bffdfbb75cf2a72dfd67889afdc1743218fa29e8de4a6e10c7ec96b75f9a81e366332f758f7ce2689db8b3837af6376e45fb80b6358c8fa02605832e87979c8083af3fab3420dff95f306d1dabd1cd57807cb775a9053b01848771aaa6f2b83c1f41350ff9ff71972b3cbcd80ffedaaefa997fe01d959bf24d01d32f5dd89dee29e377c60e2ffe48221c3b0bc88d749ac858a599253d0305bba90857bd617586fb668d73a0329c6c9c0174ded1f0b300bd44e55368304b48e55daf6f54ac4f8df4c79b3715f18a72bc3980f7b072e6c443390b9b482f6342b0f16c42bbf7be7e51b1c797c3c64545c32c427b47733380f0168d3384e81d8d6602c23b1a6f563a3da15213c844ed139790f9a04edd0833eb804a70d06c86d0dea1d10ca07943e32c427a43b3d980f08ec66756e1232afa69c0d03f58513b6faa5870d2d6d2062b494c786a722ff35ae552c9043dc5ba2930c2ab250f625f381113059f6e0a6b54016aad414b6340c37d9a7253ff0ac574866baa03c90346580f6c30de631b714b0ed24cfd5ee2dda6f04e3b1ecc5dd5118f21e25e634182a83e9aac913dda1d8a7929ecbc2f76d15c77ec12f84902f49e186b0435b584d97bc2d140cd426a17087e60c40852ce078149ed93a502e4b293ae68221733b24d7170a32109b520c1f45d80fe2e599c72cefc0a551f7264da2ddb5417df90ac1d8240b6bcf9b9a12ed8b1fc7d9ed9471e69821b7d23ff13fdfdffa079cf88eedfe9b510cbbf14fb7fd22e24914e6b9ffe95aa4d753a84b89316b371640ea3dd2e3f515bf7ad36456b35a7392e36b34e2a9dbd8152e3b8443305aa3a5a32e4a0dc32fb547cac06c67475d35f58f937ba5ca6f9b863aaa372876e52aa3e79df2dda54a8a5cb4434fad6be04a3ba9b6653a17c21c124e797c20b4f6108dd6633f2ba6a29ee32eba6961d0b6c6a2f15033035fe1333463b959a4df912dcb72d093a30df367df3195ae9cc40d628b68999199b7b106fc8572520be34d3c9512cb796b435f34decf3c85461bb5f53091efdf5327c8a754d05a27803f2f186415d36d69456d52c1801cdab8b1bd5c7d2afd5373ab3b00ae0532a1d5afe3869cde3d5afa9ea03af11544df598ce4ea43879b357d823e76a093cae292de7c746df39ce089292934163a41662c10662c7ed33fd0d10b6e33e5426574c309ec5f3dcfe39da92a229d580f44efba299d7374fb8dffed7ef0c4bf4d4bda6ca3499d420cba42ef33ba199a31e81befda9ce424a95b29bbfb2cee4e95f0c6240492990fb934aa524f46b5b44f83ed4795f27d9cb6f53bac97e2951ac3e3152be5f3868310f1da3dc42db22c80ce5b891749a2e33efc33555ce937e765123c8a370c37b8e94cf48474ab089868dd8a34e64c013cd331385f0de511f0ab3f30ef9e5669edbca142aca44f4ed5d52f20c962590078c5568a4f557b22c946591de699bbcd55ca04dd5705e656348ee3f18da14326cbc09d7c1ab28dcb949d4ccc9d0a6e241aa2274757aac9cc3f5e87752914d850411be520319c91199a7f7b25a6776e8ecbb2e604d19846f6fa5155d9848b55177662aa12cc5369a20cbf8b75235156817ecb8e2f844f8a8d461c843c5e743c141894a6a2ac857a0f39751cac08ae6c08281b998545789eae5e0c0f2de3309ded48e354d2d2e8df7336503a3d5ce0d07fd3ebc209d5c8e0441b9c4d7e6d5fa73f4f5a003c92662d54c570c9a52c6adf9b7f88b1410c0318724170529f9e021d6ae573ec5fa544ea722f04c2127ca54691c68b14a4f5a9e22404453910be252883ab7fac30c0ac04f4db447b2d5c8fe615cdb6a2ab9a090de038aaa7c71ff17ce974cb538ca3a350f26a5ed3f72fa60ba93ed1a17a7830953fd726e8047f54c463191475b8439e26622db976ececf8826c088a5bbb9f6276a558545c0821f70aac1a4ad700fafb66b7e03a3dfacffb511e1d6393aa8396dedf3019df4b4fc7fcaf6c291c167d982b354b0338bb18cc21fba99eec774d3a0383e39724ce1a1548c7fe147dac8ab6b3a4df353dcffd46755cc311570ba59c63a401ed62df81868a902223cd6284ebcbe671d1c818d94ace7122d378bf4e0e77530364fc5ce73efbe74ec7be9c375a9e5879625434c32ed20b80a4b9234f831c794d09ce3310a17756e3e52feeb27744b8938d906e171b9f011181bf058031f173f40ba9616f8f48d53e8f1b5840ec3331f5c43c4e5c1af8830a4fc0be158fe6028b96b98ee6add26b50e14f8ea511bc9be76f327794d3195c0158ca993d480212877c8472f403690584d3195367f851eb583b7c169d9f210a22e759168ad890f072bf3efe2d07a53da43b4bb8090622ac48231b501c1dc785b178a519ab6e0e7f26b1fc5f4b0357fad0b465fcefcfd96498aa98274101bb077892941f7098f6c25449c261b370c89f4909812ea93da2d865fe7e3c91d9bc1a78acae835d16742727ad1f62a73e957c38c612aa27258faae5f6ade31d3870b3b86ebbf618a67b6a428b41d116c4f4f0ae9478af4fc617a43a08e025772dae8a1cd7a627893309539b25b9d1a66f7fb5c4554927c2f514adb7e0553388d0cdb914314eeef13058285a9359d9ca4b773ea5358e25333913664fd32482b178530256ea51b22eb33aecaefeb2ff711794cbc9120ab866b374ed45d94ca886d70c1184c4579f31f8a37a09a7c0a9e33766591440ea38c944cd4b04c28adcb30fdf208772764fadba206410378fd6b3a838b00e51ba0593b92a8cb7708b7b23bf6c46dfd9d9af2c4d4b7b887d8c0c24c6579a985e94973d94c27a05aba849c21b6ef2544aad1ffa28b9775ded3a3380c9df416136f30d6123b30aa2f9ac500cf7992b3206f900c1caa4c5e4c345c9e8d4b490e0d86e69a9a6ce3d0706bab30d62edfc5885398570d971411f2543de85202bd1152d69bb3b12f50e57c4ea04bc18aa75d297cac70a648869b2a4f45296ac46d05e2fb41d502a42773c27f99d1532b1abc8ac96c3c3a77b914112192f107533cf5fbbbd80c3a5885b9feceafb1a959c9c6d09f6fa263cb335e49331bc383e3525ab931a6f72281d7a440774df59f55f637e2d07898a3f3ab84e15284c0ab85d712fa9d1ddc596ff35b4ac7ad587b18d0d4e32d3c2f568dfaf1d25d8ef72e839cc6362c929fb491aad7e351b74253585d19deaede503118dd387cd14832d5bdb6693245ae55c64917b1397b9af26b5067166629d8a44cf9549f5b868dce88b9f1291a954cb104243ca9832983adc6df0c19c2cc2e3047c5eb8f853ba8787dbb87f6ee877ebf3ec0edefd5c883461578355f1c6fafb6429a54fc51f28ce18d5460298b7e9aa4aea4d4a5493d75c268e730384853649e548d24a9bd9a3bedbc40820ac2f84a9e17cb137c53665e5a69748d889ccd0bb7717367317c4038f6e71b591a5ca4493dc7dbcd3a3ff5d701b87606f104c24e2609d7deeeed86bc33e768b912806fa5494db485cdc23293a6591c9a8757a0065e589b56121a457cfe9be9d6f4ad4eb604635c8c463b099eb2579f0b8319959910bf39167c0bfe0391a4ba330efe67622b5551e69d2c3903156752dcc553aa8fc7d4a3094172981af1b448a713fb2f41ebdc7aad29d591546aebeb7271d4f8b0658896496d014a0a056068f8ab671620288c367f95f2f4c1f00967738aad3a110269811ea261ae2945be3709b2a4eb737f4a594ff0750a53c16b4a158fa18b480642facdf4fd1c21d5619d0334ef8ee861fa4f89bbd28ececfb2555e07a2b5aca03d2443ada64f542c3e4729c1e49def8fe7566270a0d52911014ab1dcb3f3af47a92ffb73fdc69f0faf33fd885ccd422e01a8ce56e17371a428a5d72c385a77eb50483b36f2b1628d3b1bd1c511a8380fc41978085bccfb7a73f0a328a55522502376b57c3908d38cab14a51e2e9c92d559473bbf2bcbebef82e0d2bc768a520fdfb8ac8f37bfda18294addf5e2d89c1cc4e6dd8a920872e733e8894e17fe1948c5eecaaca88b59a18b59b1ab77578326d44583b27c1e941bc3619817148879263c54b18c5068d142d52a9174d4284af16561e9eb35b070e3f1c441987e882ca4ae2c7a3c12a5d2e4545f0ab5073e949ab400d5e5a1543f59b957a2b79b1e11abbaf6162314bb82c1ee8b4aa25ee6a194266af7060a97cc1e4a796a6b5615b5ae3e94229ef1743c479312045afad743d573835a8ff0bd1b8bba63d39d67d24822a19e4f42abf793daa809f98ac25624d4ff19fcca52723a5911626b4f2ae1ed7005dc106cb4d40c05bfa7630a225571e421525ff1037cdace5f27ec499d6df3ef17bb3b86836f6e521fc4fb3a4ce686245d3a5fce80af4f0e87ceb7c7b7fdd92f63597aa5a8ec51aa7f2bf14a5159c2e9ca3d5fa964ffd0d30575a5d657307d703b86a4ad9370d3ea8347b2fa75492b7506179ff5445a1b2cc70089dcca5fe8caf9fcf33e272300a1f1eff9ac9a518d67cd7163cc961b26d555c48bd748f560d1d3c4fe1ca1d1941a632a98fe4e770b20e3eec8978de336a9d85da628042282f2897ce38ebea6543b82c5b2eda06fc61ba39c096907cda9c230148b4aa96d53bc7cfa6450372775c302cf7e036312be241705b16e999da0c287153adf480b4a3153ae6d3d90de4fdfea847b064059ac31b2187bbe8cbe630ab9e9bd16ba804e4abb7f84f3ba11968ef7c2b2322bcc48f814d93f60055777aa02358df86a3473844bda6ec8463e51878c4b98eccdeed6d68e5d3156bbd2ab812792688e1cc89f9e1f9543461c7e3684ae824d5450c18c02b5940e58edcfe5c892e435c6ed8f472dae60a26e0d5c249182076baeb5c4785dd0af45a783d9b41ba0a4e41bc41877b761f74bcf0f3a7b018efca9a13072a7eaee13e996d3b9b78f4528e7aaa7e253007dbd078b9e35a0b0a0676ffb7b8561901e9beec7595cdcea044b23310fe4230624f8d741268519da41e1146e8e35b2625e1d63658604e94582eb2f405cd7a26b7a733aeb1308c2a1021dc80aee90c8dba1f7fd3024a9189c9501eeb20827aa2e9a30caffa8a49f3e1dafa041bd2adf10b14c052b47f83140a84aef130b0c0ffbbaf0b5ed37ea425a10046208b0dda658fff85879a99a4410e65f43afff640da304be9baa09930f320cad44834ca73a509a2951f549c9febb6898d504542ab231e3e74dfabb7782d7304c29cad6422d9ff9c6c8e1b3f7c231addfc22059c4ab4800be92724dfbfb18da9c2d484c5ba6a459067cf728fabeddff83b76b4b1f90bc39886d1717730e83bdf911433e51d340738c46e6f768e177a339c8919992c9cc95cdac85453e76280ca12bf40ec8f4208dd1b81b67513102a92bee3fdc3820af9f368e9dc19b540ff685ed82f3e36410613507ed1d8851d0125638b8d3ceda440e4000eee4848294bf9dce2650edd191517ba5471c5d6fd4bb577b76a67dbc68478506e8f91d6a0ec392f57d1c00e1cfa25ec3229f3ac0e0974e88ef0751d3dae96760afc21afcb79c69718389d99da0ca460224ed647eab8e9bed344a21f8d2e104050432f941e5694a27cb089032bc7a753f1dc7c2c715bdf9f9665d34540260ea1a51d40b0257434485bdde463fba0a083da95ed8a934e2eaa0fbc817e756608751dd1369e8bf2c32c4ecb0a2e3309736eb5a7b9e74dca0276997fc4bca10d61bbfabb4c1cce94b2f5375eaee6112f9212b3cbde4ead419cda5d16765170408c79af9b356589d9e28600edac46841690914b23aa92bdc9a4afb94f57574635eb126d008ce7090d509626a76d3e0f8d500a0833ec10f728f414e56a8aad3b96a514e4ff5a133c1429a69bdea44bcd8ea2109aa0028377c808b8e205975faf32c8512db165827fc6f3be27a0ebba86b5d90a9b0cca2bbd6b8f9712552f67d0255fb832374d1c9a0eeb0530fae0ca5447410331be80d84638d670d91d0677243ddff273a65c16a3e493c9aeae591e7d9e606ff945193d8cce1212c97a187d1209f29cd2e86ca72ebc090e00d78e8a4ecdc9b6e3576fe926a0e938cdca204443a7e1fe4ec3e3f765b8766f0c6fd7fecf08a74f299ea62cd2dcdd00a791131e6be169dd4e58dc76b31f2c540738354669fd673a0998e0b02a2825826938344b2d1fce07c0c12df39172e5865b9d43a5de331dfd0093ce9809d975869376e1baa27ecc8fc5c3c6bc1fe053d34739329ad6a22b796711f9f81f8b7ee1bb6474327f17c190edabbec5905c8f18abb0165e11b3a6d615eb8d4251acb3bca75a0aa16d01dffa388890d50228bb7d029a1f68bc12c684bf720f09e14eb4aef3259c903b998110211b9dc69ebfa4b967f6725054ee9b6afb606c871556213277730f7ef611c06b57fe40c3e0c62d4c2cb17621a6cb255795c1602d2217da94527a04b8dcacce1ef825b0fb8843f8e9d8374d169d096840ac0095c20587c2c0df4e73b00dd2ea166e044beab6d93d1eae6705fbb764a500ad1897489cd2ceb68e81491dd130fc9aac787dd9912ab17068f4a6e63576ace738d7f32dcbd47c50608e5846fba664111649968547452809ecc1bba376c7260b13ac247081a0d99689a218c34f6e98ecce8f5a7808a46e34169098b3872a569a4fae42e486d828e50900a3eb19249d45ae8c5ee3789bfda1b2b9c9609c88ec28c6db5578fe4b261214f373a4036dc7fe80061274192ea49c19cc07d246ea400c44515406d06a505e0e524d3d3baa9e0574e3abc3a44b56588ccf9c83c46534f84db9373293bc5ab38e5e5ee1995e22baf46f5a5714f378e83deda48aa0d528a30eb48f64109d8c88de4fd2737c04b89de02dbb5f5d27dd92179a24e935d40e65474e4d4640028ada2aab1476e15638bad0cb24330c1591c3f00e6c48b0d45c5efd231c9b6ef167bb87367ca8f4aa798958c9238390a548f8d3621182602c6d44a5d38e4ca9c822f27e2562b34042d170ecd70b65b8f3aebed2829fd833f6a1349b092abe57d9fd917ba9cb0ad5a262fd1e2b8a104456c4eb74b73293dfb35676c378456051fb332739d4930b4b3d6a5f130d7a626527cf10141ee3832cfcb44b91259d238101544414f56123add2caf0ec474694a8451fe497a7a38f28b0f4cb1767e35cc900c7b9803ca469351e9e9df3b8bd702df909e253450d3e97b370a9cde3ee1cd895e66a578d7e3340429b0b92db3262f4ee9bb9963722c1896aac58b0dcd42d99326179ae965c74970c78a2de735d614eb9d83eb95e384c409e9f351c6cfa6c3d9f515ccd509cfc935a5ef7aa2515a39bccce9c9450024842afc2530b0b9e96acc056935e5113ac2ee948a89c630e9b513b4a3e628706a9d3575780c4ec2f402c1fe60fffdda31ea36d97ed31a20a8def139affd4d157d9c04d86802b73c959f838e53127ee0d6ef90f9e0b55fbee2a16703af7fc4b115cc74bd7ea697e7a78d5d9c04cf33e3425e34a48f842b14675679c75603434ee1f066483ee14fa48b7b7a36251d277b14a82498bcd31dc3a95d95cd02f28ebc0ea7d11cc46a1c0ede9f3b94003f0ec2b7758fe2604e834159bf41a37ee071df20035210d073b4c7b2847d4e75fc18acd2318424d1f421784d8f8058fe2f27ff4a385fca89c999fb372e96699f87c50309936eb39abdcf827c934c07f5b997243a5251baa1f773b5667a1a65b77e0b485eb8991109cce4e42586664f4e4ef6fe3f18004c5dde5a81608172b957917c79cea61572c22e8785a23d90ac5a2c4c2d91959b92af1b77470e9012d9a3e86f0ec795637a9b67ccba37011a1f3f8ad37d81d976d6c99cb8d2076853949e3d7b3cf4ad9a6271c86e7aa7fd3b7b56257c24ef1ee5109d6f01871cd479821a046d0aa0572c98eed0c700490310ee508107020494f11405e0b749324570680a377c8f8909334b0c33b8a7c6c2eda90b054e64ccc875300a4d06b4bf30d49da85e825315829716dad0ffba0714ba5710d5ede360bc183eea4eb58a197a67e9a7aaa9e42d68825bb8fcb4d2f6f178fd64e19e891e154e9fe9cbce636306e3245131b3ec99dfb0406754fa69ac2db8960d42c3d4996fe5b18a026b138f973a7262c6f3bad3f626f60458728de55de9248aa1df143656c23a35a4e1ae9a82cbac5e11180a7a7747c31e55bb596a881246c7b6c7cb806791464fc5227984405ea10a625fb3505dcca08bce12f7454394eea78d924d952c68f6cfddac43683ad4b3fa80f7f25e0d175d3ab73448acd1d8fa3d720a1d5d8ff446b98d8d1ed3ff0d32fbbaebe2c6c7593246d84a9a2b1d1122ffad11d6912f15f9e1f1a01e7c4bed0398aae9910665d23eac8f101206e7c7ea3b14d15241053fe4b1fa36d8580351390305813dd2ced9abba1b5aa2519c63fc737604e703456e1d7363fcf8417759a28a4f801c671e0c9861411901fc5bdf874fcc1c09ae414e50ee63684937d42f8ff811c4b41f7ef000c51e3c433c1041b01c4cf7cf9c125f865b8fe09bb08c45f78b4d67d0d052ac5f83812b9375cedce1828076ae6138284af690151aa770b9524f5f911bbca1258fc43da8287752d3b960b0ab7aae538401b822412533ec0d2bb7ec30f07c2309f9f791b5ba0ed860e12219292d6ce9398d604e026849ebe85fb45a1b5c656672f87ca0b314a812d1d1dfa9bbbcbff3735bebfc046709477abcc3ee1b6ba7051f72abf04ef42cadf06aaf7683fa0d6503912b1769304758321b49db15464b0d197612943b90dc5240f098436b9dfbf8a34fbf2dd67630ced26220e909d7912864f088ed08906dd18d9a25fce3dcfbda38e797b6cf98d7cc1c280f7e9ded2ac0a3c6aae26e9156ba557ab440ed26a02ed6a7bb2a6f7b3b12b3c4849fd47b9a0a29fd5aef7a593294ec89c85a77982c99a2c7dd2ccfc659da53797da099e03de0bbb01a9c3f2cc774d859fa4efaa54a225bde754d88c5241bb4be59a2c47a94d1d5ac252853eaafd3831ca84c46b89aaa078f1e1263a4b892a13d7c0750a43255160f7963089c5b87588be14a428a7c8cdbef6f21d9128ada688686ff5ed87e041a94fb3a660a8b2388f29117b3ce0d50d4c059d4ab70a7bfac7b4ef6c158ec79a4a042c461965221172179a526230a82418fd9ed49f0c52f6241ce7223891c3dfd65aaa03e02465146eaf4ce8774582881f29d2f58f056a65b304dec470b90105697de9c39836140e2659590a5f4f4845f8bb7a442faff3eea33bbfceb12c3c45d4cc5163ab04a31f448b45d54e00d0bd9eb3a6f6d47b62ba5137a4606b33fd61679a05bc8ba52c2913509a804fe81a13eacae2cd5ab1949e8bf7c259b8e1ecdf085c61e0a5ddc2b54e9f6a21f536344f65e9837d3ca0e775232caca5ee9f94a6f7218e5e49d9438774301661fb6951860c1c51269dab218839fe61d50a99abfe3ef1127254442d54c39d948886bf7afe64c9ae6731dcbfd69a7fb4ea9f1eab0d17486ac7e6526920f9d881b704af96779000102382552ce03d11cec235dca672a2be96fa7ed126703402deaa17b66c7ed40771586f1a9a6c2408e60b51f2683e3b5b2b0769c0be6054bb2486e4a05d71d6d822faff9c007015780a76d07a4bfd0c440d93f041d021ed5774451f98b17b0f7f77019f9a6f3ce5f5ffc19301c07f2bbdb2eeef8553c076e331f5e2bcccb804e80dd7e9eedb96cd0aad58d1087e2b751c5aa7fd32531dc7fc3d5e4490c1c327094adb2e66ffd51d1c17c2e65c353518d5255ced46f282d8c9c8d3cd930594215f379c453a3905499f964c3dff90439bcf40f4fdd08d42e2fb2a12dbe4d6af074b40498c8cf396a5852468e61016901613cc307b284b7ac8ce7927ee68cdbd17f6ca82dcc33771399b0f922be2af6588d43979534e88d0fd556ab020f3ae218c228f8e8a059d0f99183e29ee41a70767a270e100ca642012c788d8f82c17e2200cc81190add47aa2efdbbf32c7727c15d2e3ed5128b1c3355dd38c5a3a1c8983845ab7ef12162d9f3fa6302b41b6cd331fd17a3e90940340e2cea70f35f7e0588aa0e56dc136a9dfc975b67223044ef39d26f7754c525d65e72d7aee133f77ff356061a05e705f705b42eba535a9caea0988a3ed8a6054d1d6573b39e2c4020e389ca0d57ff51354658c10a28cd85cea9089a5ff2af14327dbbde1ecc2f7ac74863f4c4190a23b4f2eb5352a85a7113d7eefad4c4cac8a3fa28770929c36eabfe71ea6fa60e1e41733f3bf086a51345c07961b0be4b8b79ddf760fa559fb80f3f3371d73f1798e1228ff5a9e5d929cceb408b11439a6f485048dc18a4b913efa2526e48d2aa9f1aacdba5f36bf731fcc1574f894aa59adfa42fdb9126d963305aeb3587dd5a2e0ae9e28ea02c31e937f4d9c2a889a18540880c0cc9d8ebbaba8cedd78ee183230e4ca33db2f1d569de82b335b226615f26d42d8b1082bd8913024dbb95abcca8ffcd6f454db7a51531c7a16540bba3dfd6ef1af3bb2c28fed35bfc9d7dc78f6483c3647dc906f1ded859c8b870277c99d04215696042a7f7511155183244e180815a152c55591784615e487a8ca89f6568c8c77024ae81bc4009bbe4eba6d98777994fe24ffec4c6cd5ca6de4eb37fd136fcc3d9dfd9f998f1fdc01ad085125299c0d263fab8fccc2707807961a103982b15a83658c898689e726f7b034d773fa09186e6f59a8767dc0248cf88f6cd1dfb4d7d56fb57872f2355dfa137a25bb13fdc76dbda451cc74a420e04f37ca245d262a016515ac1d68d6907b7239ffd5dc15e88800b7f8c62bb92feca063a28c9f3b0c303c4dcce63b604b070f810ea050ab861f1cc9e49ef8016967274947e16f28ebcb31ff696d6dfbd82b1dca463c80c9bc081195fc120065399ec15dca699e0e66281e84ebd068ebbe9bef938a1e1f93bb76eb833a5a65282dbaea1feeeada0033e809b85c0f3944bcb2e4bfd0a4c02b719604e8c03e4514c2ef977e43203b982f267612aac5f0d08e5477c9c296e0bef7c68591343eaaa0b17f918ccbc32186aa4ec0ddc6583c3cb243e22d5030b877ccc819b8c60c435543c5a2e773e79de5c7128c48a2b98c84d2c149e1a38f571635d2f201431be99c4c8914a4e94070a8894addde1a400aca0123a70b6d1c179d0eb7c70a5e73fb90a24c1123f169d2994515cd3bc5e9d2b4c4d870dcbf570041f8e315979798aac2b3a129ce2307aa3efb54f19a81d275c39b3e37b1a4cd67bde18c357afafbd9efc69083e205e6a18ec0a21458893e3fd7949d005bfcc56c63e7bb5cab5f9e87a10c33c95ffc31394805bbf841b764e6d24f54e12ca88e050f5203a9c049bd08dc54e2d0c4e29a7c58e0564cce6c8bde94afab70e1bcc262ebbcf9d0341b8c9a59673841c53756be52147b99b23b433454b4e5802091247a1cdb19ad62e780a587a51028fd1cad20610321d9faec269998319d240dd6360716af7e84807b094475e318032699f7784c68f717083bcb342b244881abb299931dd657bcacaa4d1cbdafd206dbe82f2f86ec69db91b5d720f6104e0657b01fb8ac67033d2ebc5b0ad980909a8d37fb163e94e8ab92e9df1b6c72021023aaa2211cd4723ba74cd88894308e7ab31cea97902306b2c9773921055993bb35fb40b51182e24b16f318a1bacba7a1eea80ca08bd0afb4dbf28179ac5726f25f4f2daf462cb8b9554e41e6800b7fda288d0f272422fe53a5394607cde130eefc3b5bc913fbedd8a19288d186055a14f27ce9e2806156eeec0192fec0b1cc4679ebb8413768363161618f68abfcf41c2a0cfb752d2cfd58832e3c4fabd736e45477b5c0ad7e0adfebe8ddd66970963985e2b70273db3345111d26d25c42fa96dd14f25a70ac6d841f0a8661d272bcb2e56842459708a9c8cf356eecded67dc834cb975a7d88bda9fdfcea92c082d8042899a0678ea3400be6f3e1cbb4f56b9343b8c10e8e08084c7aeee6b85edba7c979519c285b84fcb6178fdc447ce6977fdb02f6d74fd7b901b9486683f4a4cb942ebbcc8450aa1e8a3e13e5ba21fb55307867a16e55cd8e9048dfbb2b88295f0248248b7127d7054c9641106f66cd5b57c8119e65fbf21e5610b89c4198d43b7a333d919077e40d2eeff1c114ac4ef5024fa4b2f66f40eab0e25c29c325ca088c09a2ac37020c91ed2567a329c87aa89e2643dc1babc6c6288936e2e8a9d771ff2b32ec4c42f77ef5e56552f6cf42fa0f535afdc6d9bf5f9e988d5c33103d8fe01cfb72b75941f9ad03aa2b1bbe44d99b74e8020e3ede2e5595e9cf71c659150595694cf2302850de7b2dec7a388fac894b47afa3042c37ae889f3b96159694f3a26e118eb2e21d4a51d49a2d0d1acc2c66a9d021108040862c7dcb2703e6cb2fba336719035e6f77e4e6ee2713306e01f9f73d617289652751cbe96b5fda464e550d216b53cd56d6d281144732afeb065a8270eda0b5fc8b4314c7f10437b3da17146179b87281b48314105a4fed5a770b29a2fad0dc7339bfddae207c7d0127f7bda984580b2fbd85fa52a0934cb38e756ac59978d555871b203d2b615943af30d2fee7ad1cec85439fb463f7d77a92912f635443d1df5d5bab30a68903fe59901231ef3ff52e8b8664a0ac54f7cef7e824caa84e894358e1fa279568fdaadc96fda92c3b3a665252896a0775b533b2c8b3ccff1271db6382c5edb779bdf6d65e224090d7c82015481762083374f78d3c28be07d79144a2f2da238f78ce4cbd4b83ddcd2606cda8023a1698d3b67941392429a788288b454c930289a2a3d19478743164b5556164e742b59e3eed66f8349a8e106d3471867a2a09d93639eccdd06c6846e0364c56d900b8eb245b942b70d766c641f0ff419e38bb26982cf426340f5a55bea213fd2b7c01daed804971b4351d8f677f1d8268385e161c776f3ef74f03f80f3fb44ab9dc64b6350644ffe30971e1b72b03b1fae444df8f253f3466cea37537ecafafdeb7dadec3af379c0aef8d6184420599a91155cc2fd122f5ebda7606b920016ca0e577113da5cf15918bcd00d86be13d37d47938edbdcc0d29c03b9485eb1a6f354c11f7b1c59b2bbd7313e330cdaf7f9b580709b7e17bea2d03c01c63d21e3bbb293471a9736e0985697b494b27eda08f1262a10436f5a1d431bc24d74194e31efaaa171adca49fcf184b19cf1b07d73404d4688763ebabbc7ec492716a487ec286a6def090e05c43a4ce20e15604e82def29daef9dda04587e4f11becbf06562d7ecc2cd784c05afdb6ea61d6bd9f3ed4476bcb0e12f7e37f15d92491f57aab6dc1236101219bcfd11100dfd5b4a0cdca418b1c4e820c86f3f0525cc63a6c97309e8cc5fda5dd9d2b87575e841a6a6ece34078561d76944b7ebd322deeff1e42fe382609494c6b04eafb16cbd29e6db3843254b6327af4ff5b6c08cd8b04f78bd31b53395091a6832e90d64547918a6ef4714ef96e47801a33b3735eed60e23da5c077c91d8c526313c2c368080f76520e10d1ea1b7942b81de8fd49fe89a37b36fcbe0fd6a1090e7a911ab87812a8bb843e7132c017d4e024b738701e9b47224d9c907397d1c01a7be9715822a6e1ebb366084885f7b5387a4619bd36fae8bc3f4ec96e8a231cf2b14ca152c30095f70c33c8bc284aa42eee302251f54b6e8af11293b2529f4786deb686a684d3658e5f37547455aa5f47d87a8c5a316e872cbc8fa4f4ddbd0f9a06a551184f7a7c963f29cd602145fdd06f6320db63f3ea35f6ba7ae343a8ad37549bee0372e02af0c7a2b19eba80d895d8292589104c3038cf8d5a41e99fa0fc22e34fe4446fecd81d149191bd985ca3e093ed285ba1853cf2056c1a71074feade89f1328ecf6370a22dd1ee610b3ec4aeb0ee7a0742dc0bc1a90f7160825d6652bd41963896863ee7f01d8e49c1585b1f5751983081505a86571c8d446a4c1774e6dbe27fff10cd64eaf9cc7e7ad8c5c18ba95b555fce64e495666acd04d7e8d1189912c5247c8a80e1a2bf0915301ec79fb8aa696d0221dfd3b391e372a261f8f51535256464164ebe09ad83f5a61979c87d7500a38e03fe0f3aae20c0764f181b5cf87f45ef22fd724561a41d0c5264bb9da2f2b7ec69a3b089055556772509cfe8e6b0555b58199136c71ec8374a016d762c4a4db565f7a6219a96482f08bdde3bf48fd2d24df96de0f2135ec18cc32b4918a190cfaefff1b6410d38a7f5c3ca96a94320a77892c234654ed07046194bb946382052f20fe1f4a409a5eac48d1a29aef92cd9b536e191c7dc1511ac0fbcd65d79e9f724c81043a8c22f3fccf13ad6791d6be36352c6e799ec4d8b2eb696a0bc67b43374a64af642a20ce7a4058e1c2e6aef695d9b6d27b1b6ed3c9a1e77809f901250827be13e3cf37e83e57ba5f02843ca0e6d8846124dd309fd43dde8fd82c01220b75a744972216930fd20ebb11d2b06c4b33d9584bf6b0c2d58c02daf0729f5b024ab8a77b70dd59c7f58e35faa0a8f7aa901450cc0b19e1252b164c0a28c26d4aedf94d7930c8e5b14737f5aa4a11a3040de862a4f20e6263e07ead2ee06dfd40eea0fabdfa9fc32bd7d01739a0673e12ccf7ed29de9af256d7e7f1924db1858cd22c68ab408b402164f48474cb6f39201b4a5e90511a0596e8822710c838f030d13634458ce0a089b8d612a70c47a858d1a2b500ba14f83182f62b50b020c15dfccae5630c315c336c4e5a937d714b60e30fd9a536ec8f6a6e92f4104d7392c5477d698efc5094e1436641198cb02bdf1590516a504685f7e3de73b0cf2f7a385c638b16b7ac413e797d1628de95ff3ec4d667e405597707c4ca69e8a53ba3d6a08827d155a6d7d6d8225332687fe82923784e8eea59466f43db9382f5c24afcf6b07c6bfc0ee2a453441ef3b10ed625d104ac9688f435a45415f14b9287980de72b5cef83978e4929ac23ef6fdd6f088e18db2108b83bd4ede864100ecabe985161774fdd1679d63a70909b7b6f6391a53b53e6b273611d51ff2c0f6923911424a58b37749ebbab72f7d9810ce6c77ff41605b084d617a5d5fd444d9b966ce3d7b1b1ea358aa12c3fce09ee20c528f2081b2b035b7967636c9515b1cf6f3164f4c4169a66c57dff184d03e6cc311fc71b248e9eec1815a181f615a0847bc6a1cde22b5e08ce6a139c4ead581ffd460e0b585aa7ff125055a314056c95b3df62f8e0ee3a6fb46322c1c01f74b94077e55483bbcf4a30b4d0577639d296778a3319b1255ed05f2395a5932a9993253390a92fc14c0b5269759e098f73af9a770b5ea1696f2a12cb3820870958c66e8d37f7a4fc05c73e1238230cd79ecc8b8f10a5a83133faa49aba4e4943025db033cfcbb5768e4153fe4d5e3f9a046ae8baeda6c161ea2d0444c1894ee6667591d8019596df292a04b2b8a7e8180c1fd993ecbe97290e3572b1fe868ec1d80a1235ffb861d229a5bf06d9efad424ab4d76d6616a7fd18b023901cab040f0769294018bcfb7526f0733d644f921ba0672e870f47695892d314fbe14245be1e0b52927f08e22d5490dae16e1aac2a76092881ae5e1610e5f098ab4b6b370d7d1700123ffe7e001bb6f8dddb7c95708f542441473662dc10f7c6bb00f7a314734a43ce4c2970285c87a894d40ef79739ab002d5f3a9b0237f613d30a36125667b86734e269cee11c815a3162d67b32b2c9ffc1d7a406e1f3dea4ed49344a7f48b6a08d15aceeca747ff799670a670ae96afc2fce772e15d46a96272324b1671d8bf91b86258df8c6aeb51e0545edc576de46283872e61c7e2aee9a71d393857065193f33a95accc5a25a5171541b98e64481f63e6c79fa08a0f5cf96f7abaaae7354c4ec115667d4c4a6e8e874ee15399cbf8e621ac79a930b36ee818dea35ab8142a1c8c907abbcd733cb85eaeed8eec152f9acc6ac108ea179a627e665b8aafff828dd2beb63f442b70260d6762b9023ff3f0a25f4145b8fd020cd2739a55603b5324b37d5c169e049d56ab0d2775d1e662bef8c1df5ab698b81df54cb2f2e3f4f8c1e00e388703d240d10d7df6c9db77a480458bff23cb6a299bbf4fdf4d5fbbdfa5eb61e695f7defbd1dffea93cc5f58515ef18b82e909201bc343209b36d7ebd1146fa346bfd7debeab45737ab31f5cd25402574d15e73efa57ef278872b38b41ef6f3354d04e531964d45330721b06da74fed55efcabe6fb7363421086b37c7e40eba6e57636a920ad2f170d10b3ec3f490993942a23f80938932e2f0b790436c28df0c9e4e509e3dc3d1569a76ed6b6e7bdcfcfc89c2c3cc92eabbd65dd462c9445aff7498c19bb62b82a87dbe42f549571639713a08839660bc0b87c2ad965b7c06320c925f0bba3e60186a96a8cdd94ee84a7c21edc36ca3ea646423a427a83b69163518fb0ec8ac1e832661b3eba82f80ce2be5cf9bb98958766f7b99db1c40c219a98adae5132fa2e2c6de9ef7159a33867df4beaafe8b151813e1146c4066d3b47602ca48049252b9799216d5adf2c92619f238b6ea3bedf6fa277806e18f286c6df4250cedb81c7a5c1945d34423cd3929845fa48dcaba4de373cc090eb723892d86b278711f15bd74a45ff868c2676812473e6413a848a6ef671b6589d78d4557d26b30d5172f5235b31b197a04cc98e43913aaba891ea4cdaeceaa679e08328cd47e6bfd0fe6e3523dc77a0f46ea5ce99aafed9a5303e43ce0b8cf7020b7b508bb97a01107aa96752eb8e9827bf6f7760c04dde9d255288f3f1957bd9ddbec10fc01defbe2ee76496011f8892fb63504f2edd70e17449b6ea896a4a9fa20d470c49649d43fcc807877bd57d816d3e6040e2116606b9008f090443b411ef2640e8d80c867df2bdc4089ba31780590304d4a3def7b76bbec1d8d524711326ea18395b302c091273ca7aadfa435b7db386fbac1be45ca7f4561b9412ec12d9d1c2dc1fcfd570568a18f3f0cfa2a6c208c2732d0eab27c4af1681fed66ec8e41158c1bc3b62b3feab9c1612994ad0dbf49ac2df92eee856734756f6f555a7134a7fb384f884996a5aaadbbf818af3687d7c689014db131280933632779ba9beb5c575613a10e01f46e5f83e28142402b57e0f68a340e062f6dbc533ae6ccd5587078e416f9c4d163ad0d3686cb8fd3f345beea5e8bc9cebc95ecd551ad964abfd57697f1848244a289405240171513cb61d01f8f0070f6f4d4f2749aa11b640345f4a75dc54741be1240fdb13da1ae3c4bed9467c1fc48fcf74e1b5b639219ca9cc07e1ad9acc2b8793f9ca87370103018d04b9cf2a07b3bff828fa7783193634b46680d50c4d3887f4297b7443eb04e61bc76629a58a9a90fc9a7a16324ae3cafb7607d324477334a5f7439460dbfd831254fd55e3d7b7721ba46c09c1881a4ef46e06bf5f45ab09524c2cfc0b968c958b9ae8c4213a84578cfc11c9a8c17efbc27fc397ab1290eb5ac78d85b1cb9c15092feca45268c8724237620298d59853a698c233bfe874aaf31d41222cf37c257b175198084016109040d9744d97075d8b315548546ca2b103dd71554d95aac31c958c834fe27e210fb7a8c8cdd814b28b6390a55dd2ce64906efe41531586194daa1e38fcf8d58085efc8ba65645c9847cfd8616ca7c71afc2a9dcb02cf75c5176afca8da34478b7b43530c35d81567ea476fafdafbaf0f745a6047e4c03d028b24da1bc2635ff6d77c6c44c3024b7ede834761acda1ee1bfb017978856f4cc42349ebb0cb491672610cd26e177bab4ffad966ed44bcedce25979dd3e56df20eac31f3f10c4c796631a45f5871f5699fd0156f4eb4d20f2fd539fb24ff286534fe4f5de70c6596a2059dc8d5569110310f93ca8ad3944d6684a4e57fec1285667a580744472a03dc0d1fa76d2b858853e8c864920eae6ce48072914dbde088a3a60115c114ac6cdd9c9c9d9d337b1ea68f0b15b8054fdd21ec345943990a95a5535a9485035001634f01ccd1eabd9fbc564cab4292c372ed2314961ace783f65462e490bf28395d80090b8993db73a0f88e6f21aa5fecda02706b208209460f0219911ef847e2c800341af62684782fe5402d5aee078644f8e41e866e6b45abdbdd52df34ef903a98008bdccca8c8fcfc79bc4cfcb45aa15e74d220e8fc6e512493be095b67335c707d5cdcfd84f88f0499fd0aff8c3799b2e1b9b3f30c259411143b2112b4d2c59d08ba9c9e9e9f3ab7ccc09a22f7111e872b035a7399e66d6550906b73ea7924bdc0b1f86b37f5eaaefa10594014f17eaf29a1fb686aaf2173b4760d05f3a69a47306398ff6b30678eb949024a91e14ccf734cfbfb5a141c220e85640949d8deec737e7f5ef58a57bc6bf44f0db5cd75d3b852b1d963e25b0b732cc6df1ae387631cb722964531c743b4d84229e67a7133a9539c947748ca19be2b40a86e9f454ef53183ae61bedafd42b160fbf0faeb36979bc4f5b9118c8bec1da8b03061144a6e089cfe747012ff36c1b118c235d6660bd3b14d2d8c0317c1c496d34b69bc06f568b6bc4f3c7d620074749d67a6c54c4731b95c4b04bcfcd64499616f6abd751b38c41b2b8ecaa88f0bec6ac5499034dcffb46a61552fef3e2674001a67d12f3ba5e7fc61979d8749fa61787cf571b210da0bb653ecb4582a68d2dfbbb29713c7a55d3a0ff7b0966e7c23b7d2cf45de9d09ba8e414be38c840c462284aac69eb3093d6758734b6761821d7631406100c3c38785746fc7931964004329836987756d4931fee6ac90613d1cf39255c9a24ad75955fd164f7c08b28417c49f5c8340a33410c1af19fd622de1523b8842b0d9e3b7fbc11629d8e9c832d51697b6cf878d0decc78f8e2927a644b384e5520363fce660fac92dfe9d53ad7646a4573b9d5d20d3d3cd7dfd7ee7f6a830bf8f0fec94fed110521ed2d15c612a1e1c3ef40c078709c7c3c88dd1eb8a6569f6b136aaf5db7c54746d3b74e4766e10887463343261bb38444ec814edbf9d0e6cda9f73cf438e54843ce17f9030ab3483ffb2ca500a1fc78f4d67430a52f6f06ccd0725f7ca97c79140aa2682440f5bf8635ead482665ea2cf0805048d5d528a8f0da3309c993f1431090b6f0cf29bc54ea73e1143eaa44b06d9b42f479a4ea3da168a2d0e0dd2daab03219aebbd28053c6e140bc54eaca268e583b7ae53e8b0231748ab960d915307e228a3891ab49086eb2c177fe7150cf2c803d72e1190df013cc4f40cb8c4dfed0b10a8f8d067df10a7c5da4b1099f717725884ff79ec686a9845a9fbea3452a53c47a5a55f498f6b154430668a74a57f193d6c1bbbed4451c6bf93e242428817b8ec8afb654b94119de49abfac885e4b40e38e53af27e1361e2f3c407038f9fd100bac873dd33a7e1bbb7f1e6e13afbcc51edaa42781fc028e26998b9a8bfefe5cab4c884429d67027ea1072292f343cb139d8b65830c77002a3ea8961daf350f5de09cce82774c496ae1952f46157007ca691403078ace5516845df6b7da3033782f2190f56dc7201578ae0c55e1c5b8103792d2bb8ab1176e1983ee0247d85c846d47c0e0d750752629af65b72932f0b2b46f807b4bcd7b6b9f688e05678b4ca44225d3bba4a98e8b42bc2a814a4bf46be62fa397db3fe844a90af0a75e643d68606d82591bd246b301118fc003d26fa55b162ada0b5a15292d71d81f8697352dd534ec6fea340378c039722b9c6006077b86b403b6b3a3c599a692e9eb021e1d9f7850ac7605d8efe21a1961389d1c1d16a2ec9831ea5e19061e706c215736fb8ac931b11a65bf26a9acba0db26d02386bee3ea0c7d15833370561ead026cb1c6929767f2284c6091b002434561542177bdb48be1c676f066af4c7aee638ef9626fa256bd667d6caba5f69c5c7424d47ce8fbd4ef8a5b851dc5a0902a05df43aa09d71d6b46790e1cfa7594dc5742f1503769c672341d965cc83d084f9a39094cf01da387a9d2db2dc183dfb70d4a55212e68c9b4801a86c3349380a04515186e11658799a5561aca36c01e4fa00b8dbd47e77ce47d03f3938e2c088228ab666e9357229f925ebfad97b94ce4f162107b3ac08fd7f4f615175f936ad08fe8f93b44d640f024a1c589dabdf8bebbefe46c0e3193d9150e1f3cf3a2fd7a06cacbbdfbff910cecdb891065d34eaaa715f45977461bd51c53f84770787954cee5e8b9fd7b2f632c8a75220407b75ec71f3691725eaa48bcac654a28a3213ea4b992f47a6529f8d98eaa1e9116b3fa858605f8c8b8cb970c37588b905d444c6c3820568d499c2606ff4847de1f6055cc3ca91fccb0a73c3dccf1ffb4a8161eea70fdd0a02c1d84f1ffb6a2dbcfeb8c9076ed154ecba79158a0744195e42e8f80a9dced986baecdb5c7439d8865f8408a57dbdf4decbe47985384e89c200977ea3473dbcdd83600fc83de97faec4ea67cd8aff80cfb2c86dd081e2d57d0105514c1f70d0eb0d7ecedc2b5d4b00c305ac0c066a999c9d26e2d8667e9fbb8a54e47971618abb58f7b32e26d87b2cf89b8b7399c88501a1d32a1c364ec7134fba0dcc99e507f51f27b66ee710fa9ddd4198ace80da929fd7469b9ae951cd9594baf1899f23abd8ab8edba1b2a9d4c3262516a3670ca2afc62e8989df86100f79416ebc44000133ef7f1a44ab07dc8c17b09cb243235c180cee30fb124b11b1d17762d1a59fbf7c860feb3575f2829db3aebd90be16cc5f4012a2d75017270d33e8024a4d6d36207b7304d3b3835f29ee497ffb5c994692ab9fc22116e987ea704291e30493d3c662b506cab3cd6787c86d19fca2bc02d1a14565f85641f4d9404e343e35ee416749e90c18b69a689a82528fcd45598bed1ac56edf9efdfda8b36d0e50b54e3070363ac16b770f70647f343944caef8b4de234ad86b1631162aab1f2ef54418ae2ac3314618993a2937538e5c538efca61c29a71c69a71c594f39d24f39f2a0a2f1f05252fc39c198c2e11fea5cc04cee2c511349d71167c5c243ee17f85ef870cc15c5f2abcda103958ecaa59deb549d3c26d168908b354081603a519843a595e6ceab1bb73286340f860f11be55b7457b965b1c56d2b24337d7b2bcdcb6b3d212097d336c14584776fb8a1b7d2c664e8daf78d3fa488fabe79e1a1fdfdf30f03629bb580c498b5bd1f1c7664a9e603527912fb8443fc433b85d0c2ecea1fc81c356fd6dc72e7bf67bfa4f87c4582b3787bf6ae6ea85d7b57a44a0b12dbf3674b6c2d7f2e7f14e7f24a83f4db1e60be9a74e9c0215369a31c36d5292c06950960421794914a1f6e5f505731b177193b3da1866469f4f874b80b19c99ba8d1f4c748a877138c75fe24316bb4e37b756c5a04003d50bb9b6ea8eb7e2f02fcaddf8a555288c5abf79117954c6808009ad84b5fe4a79ec0b220e97610b8341a5a937380ff375a4b225a7311ef53587a8e95b2ec821c4b0c1f04dfda6ef82002ba0bc15a0ca9ba1cff170ba44258169834a231db0a4e4f2f1c0d604882a7992437b01034bf5ac456db10146ae0568d9437ead7067ad06f7c40e0427324cf1ef40f20fd3dcf8ce217c616ee26eb0fa5a6e7f6a201f941b3933841ec94d9c2bd91fe466bf250d36777c382d10d452fe655150d9e4409d1538007c7abfe7d5c8ecacc36024e4669c82f2b2a29049b6f42e18ac3904e78392b390d34e94688692ac605162a57cb3f0faa1725ece13709fbbe0d1b301efa3f0e15ce638f2268b7847b255a4bc04024c4075a090bd0dff854268b6d694a5720335c451db955552457562ab51abe9ffd17bec9c2bbcce5a805a63cf60f19502634ff715484f2e89a299a0ccff42746251540e4713219b6816a01661a0174cd39425cc388acb083b7330e5053951591d37a56d844c2ba68f2d4a3ceebcb6404c9898b59d60c751f9802af8e6955253e832db07e19ec6dd3554bf95b398c3bb86cab24d971554da48b6a02cdf56a74ae365d238c9a828601287f2ec5be6f6edf5619277c6d7e9d62c954715851eb895d972d1d67a116a822a0b0d12f2f32e07ceb24546f92a223542af85a0f550b5054bc53e85e694d1c17aa949b38270b369a49983a5544152846bf55a6974b9b2d46af16ec600b2e99f7bb3caebccab012f66a45740c645f92be745fd57c7e769e1ec2166c9071ff3ebe6404b75928f48be91c2f105dbe5d42acbcc321d2ada6d9c9ebcfbe3aae659d3eee524241fd275b52b316ab2562254c2b5d27aad9cc11c2a0f9bb5f45707e9253077b42319cc278752850c965c7f67d7bf2fb462d6e720d9ef0612c65be9805ef5fe2a2acf5f27cb3ad4f51c16cde2a1f8a5f1f47636b09e03a4a280b2f5a3c3d9b5625e7a03060c4bf43d874a66cf1e3149de230ee6e46334b37af565ad2a340e5889e64132071a7fe3188d22a0c4df2433fffc20c0ce769f7684de3159694d075a4a399ab34de86f3ac897878f34fbe0124c01e6d0d37066b6082ed6478f73165933eb2ee347a7d867c8ef66ddcf6866067ec76eef77131c799d66af66cfcf6d343f24e33ad57400967fafb0bddb318f02df69ea282ba9f7f04cec6ff9fd65ebfb6ca580bd9edefbea81d00c5701bdf5e2339b98384c65252a5d9728bb9da9e463cd48360645c6255b5d00bdd6e22665ca36b7ce9c798b4009f14fd733a5830162a2e6bda1920f984eda10e6a7c831f93264654da2fda189ac956073ce3cbd6927339989831a44721c32f23145593a997382b34ddd34e6480b49a4390d8faaa03f7598a27cb70242d35f23700cf9f64cd21e1073c1c6749162ade1e95614ee79ff57b1f9c20b6471f21927165973bb882a89515067ab5b6b14527407adffdc2e657cace7acda646a90cea8b3b29118586675910c0aa7af9419c4d7027ddfce5c9fc3bc220510d5b2dbba7cebbcf672239a17244794f8055cd6b732b15a00f461bcccf907bc5497323ad8e5af0ee3530c75aebd90e13923dbe91783e8829cf61490e8492f60f4ff020ca4ca821ebcc5e6df7fe6f3641226044db7789a49c0056555771a0f1d547f7e3a235424ad673a01d102dca0efdc56877b16375201747dcf16e8f77f50fdf6c73458d57e4193d021317fd0048c3b483819ba0069072942c5e76bfad00c5d83923a41353e7413a4acf52223536b7fc0bd6effb130754c351c2ccf29d69bc29a3efe82f5a07c1e25d4fd82a464b69de83be4c9eac8971c6ab6c90c1ef2018cd8bf24a298caa646fc930a7a3559e5107d49f40b037a2f6a725f505655510788c0cc32457c03f30ef9a192dbeee0fd00cf2f7bea7dc8ed4e10b86facbc5efb13adb708302914c467cf6d42391840c86456e81e4f346d13c6aa0881f5498061ad4a0eb43d1f91ad88cf6b6e19a0ed5ab2e5de7b4b29a5945206c1066f07d90629a440e102ea191a4e6f3b3d200eca3363b381193c42fe683d3384300cf1877885abb3340b150b8baa25d3321ab5b4b4b4b4ac624eb0a081a9e1d435436bd5f0e90ab712c2306412124d2ab21f8c599cd4ccac70759609499ab464ca9595b22ccbd2444c0a86261cbdf7de7befbdf7deb3e0342704e2a0339168340a9934648b40151d2aef7d9f87ad569172db5981422551cb164bc5a8473be2711462827167e919cebf7e4b66348ea3d168343ac5a0c0d0ccbcec2384889860cc8285cc07027ddff77da698119893991a9789090b9affffff1fc16c88b078cd82a46666858b5552a244494bc4f34444444444483125163430a5514d34b18934d3a426fbc1781cd164c6919ccee73cf14263b1196d9684153b373dd3c2f940a0effbbecf746364860109f0946638b5298138288cc23e2d912d2222222242daa19443136516a08006ecbc60021ff0c2630c40f3145a342fdc0517347cba664242be04ac19f530fa150eb24485cb63152e5f02d6a4f8cf44cfac7075d6a725030a43100804028562443ff34203b36fb8e58dbc9137f246dec81b79a45a4be3d96c87239428e9992ee37d9fe7799eb763c02fcd5ae3480e11985547b4931625fdc19e0eeca9600f37efc946827802e208eff3997fd133e33ec2a9e4c3bdcbe314281ebb8cb392284eac5a585226564a520585721af99f9894908c98c412492424148286e8b5347bd9186e8d55ad31e6ba0af505ec5a6beddd45d47d841cd86badb577ffd8b79a71bd95f6150e4037a4d16aa72fbba3db1cefdb36d8b7334c56854d19fc76bc36c833884eb950dce34bfc6f7cbd37bec897a6b5f457857da01f9dfe0bdba0d3cf8e4eff956df8603e738ad0e186c3ce0d3a36d82c8d1a05dd7a10daa9e25ed435cdb23e33cc923e8d9a0db61b7470d8b13adc3afde414d129fdfad944c03a7dabca5fc11a4e67fba15ec237a7ccdd41692b6675822c5ffc3eb5b6c390a9dda133e672ce39e79c319773ce39e78c65a073ce39632ee79c319773ce98d31db059671a7bf3845c4e2fadd5be76c716bf0db90f78c0031ae080a7ff4285b90358f588378ed33c5c0fb7c32ac385a96048bf8f7b2a09a447786b8555986a5365983055045c892872b50b09c32e566f6c3cb006b43d0e04b9ed550413e6e6ab61c179b7ad74ef3dbbcf773be7d1d8ee66ca4381f45c0edf8b6d487f1bb5e9d96c96aa64a5345629e80271453f73df5951efb0c2d87092a10e617bf3076a0c7ea2504486e3ace4078e2cc0a7171cbda75ece23306770c467e40071d7fd4bf4bafddd83dd783fda69ec97bdcf5eceaf3fe7a7a9f7d2b860a183b47539ec9a82106c2f581372fbf5d329f379f0f5739605fab0fdbcd77fbbe7fe7ec737d0bdde710bf46f73cc71b7837807bee0fafe0e8441fbe7f5a7036bbcae77fc027d73db41dc035f70ddab1fddb37f0f7e9f2ef7db71a3c5302e676b056ed7335a5fae8315eb7cf3cab8985e40f73939fb18dbba0364adb534501bf6edde3a7339e79c73e6d4c5716d2d76519a838b2ffe59de5a0f80efbdf7ea7b35be19df7bafbe57df8cefbd57dfab6fc6f7deabefd5dc7bd6c3e00beeafc638c776c2760215b1c977529e8b82f055ffbe40efc4385f8c330dcfe5ccf589625d40a9c5737a60d348eccf4ec242a7bdbaf8cc94b2e0d64ebbb51df8542a586badbdf6627badc5af3bcef85e7c3f097c521b729cb574ceb9adbdb6de12c8b80fe5810bc9157783b643abc68a0692cef824442021111c6d01ad0fa794524a29a5d3d5008e0b4351fc27c9958ce3c250467728a5edd068e6442204dfce4e0c74f0020dfba1d55aad48f2bfc2e8672d0c0683619a43b7048059580bbaa53b3b27fad5a10874db55cc4dd5e530305a990e683a7f62e77d15c0f8da1a84f83fdd594d53f5575d495e8cdb02b8f7d10699385fd5bdf7662fdf979b33c6f7ee7f85f7de9b31bef7e68cf1fb60e28aadcd16dfba29ce37e36b6f88715f6250ce56cbf11c97bbd65aee6770f7bb6aa7cbe28b317773a637f6d697ea1984d6de6a036a436d30a59ff35b3b27cfd3e69c337f71d4a6c2e4a7f9290d93e23c905a633d42b09c8d8d8d4d9e23ecfac8f81f675cf76585b6b43963ec753bdbad23cce3e4b87971ce77658500ba20fbd5cff4f3884bb5b0feecb656f045fd5bc94ba90abe4cb1e5ba720bd46badc5385ba05e1dd43def5d91bf420a7736c329a45067530cf3bddca6691a66c61973b09bf17314e7eed64efbe7d5b7b7f33a7b29c7536f29bd5a7757db9d19849bcb2164f8596baddd19d39cca9a1a810429d0ef7717c0186baabdcc71fa075ae7bc95d2db37a7cccd19d75b290c2a8d29ad3d251586629a27002cb699c3586bbb8708a9c6f9666db1d5946b31fbfea93f7398dbf7eb283786bcc22972215663fd24a095561c6b23c2aec5612e9ec2c770157e85a31e85ab7ce72b3c0d57f12527637e26a6c65aad48f2bfb602a922d6c49a58136b624dac8935b1a6420a2a525028a71494934c2ba635b69e9ffc490993129211d38846228338cd62a0a13284ca0f72074ca51ea0c56cdc50c43c86c12cfc8253f8045e6112a3b00ac618ab300b5e69295b294c68ad5b1ac589158952c92e295c5c5cc02c4bc966376eb27dc32c9897d40905e544cb494949494949218d6629683d5492ba5c54312ad9ec26e321a7a3cd662e38a31b998eee3655a29de7fcffffc77f6d22526095c96432994c26d90d47a66aed5b4a3693c978c8e968b399acd562a26363959494aa54cb38a788e796eaf04b4abb8ca858421292300cc3b064c5440a971b32598741ad9668b3650d07077403f1107133994c2693c9749389786eaa528748eb754be45f1d6ca433da19e58c66a56ff190d3d16633d94b299bc96432964dc765a4e3e6fb7cbeeffbbe10d98d146118866118ce643933958b2a140a85422111ce6c07967104475696e58a4be94649e652d2a2f218f5f85b54be04ac21ff3361c1bca4b40ba862f980409fcfe7f371295398c0aa300cc3300c67b29c994a26bb219b9546b3d10e556744f6a9a8fc6fdaa6ed37b10259aac4c9894b2577f8dd63770ad94c36c371b9212b7949e632966edc90a9902815540aca69e47f52c28464c42492444246a25008ead1ebab2493c94ed41a22ecee3ffc213ff86aaedbe0eca050f89f497e3ef633ce4adaaf03b7f5bceebf5a4331c4da4f482f0f30a521b695c692086995000f8d5532890ae321eb6be98e12f6d168586ba3f91706820a4d046da937cb72f178c5e3fef8e78479f91706e2c5bf70edc4cf60189c02bb601446c12958f36018e019e66e80391a5ee1155c62ae865bb08c7c8ce2b1ca63171ebb1ec378dcc26317744c134155887cd096fa34e3abd6d73c9625ba59184cd6a805736659a3514e256f3061463a265967c6176b0533be5624f92f8aa2db88ab916e3e14afc11aed229f036b60f002bc8b1be057b80adf0227c0aff80adfc253f897183154e070f1df0a2aa410c300052080a7c2fb46463a17b77b1e5863310a5e674bcaabf03bc99477f17096290f838bb34cf916f8cf1329dc2c5338033ef0c577d47f796f5000756b1004b9cfe7d3814020cf166aab43b0c6dafa097e8a4d55f899c46ed096588a490b4c707274a0f8176bf522df847413ca99e1dcb89199c44adc38796b123bf994d1e4868a4e8df62de05cc79833fea3f827c7d7eaff84e2a392a2aed2d383300c1db16fec6a4592ffa21886372c784e0047ae1ce4c3e033facab7c067e428352f7f83352b3a3a3e2ab9b3e2e2036b4a22f6ad923afa4bfd10b0860422c2c31302d21e119170bf70120817221f3c3191530d5ba8329e624d08c54a374060f000bcab050e805f71996fe1adb71cc70006f02f382b56830c2763244c444444444444a49462438cdd04809f6400e0271c53c9328d942adfc81432220283531c998ce6cc66b446a391e80dcdc4a42496f0613ad51801639625dae4d096fa5c0a987f8928150254970be32946ead8d2664b931c98f125a6185fa1cbf8e250634eafbf32410e382829285448cb82eea40e13486abc7663cb711c4df40a17e3e9742a712a2939d930f88c1c281e04ef72f1acd58a24ff4591442151524ac01a3b16a10344cd4642f23653d55343acc585c2050ac802ee2929604d4affefb79e91433f08deb542b4c1c9012505c50b69c51a892ce7c5aa146d50c6176bb54231bec897f1f5a46863473c8a351299b5346da3bec85262281458f3f2a813ff71175ebbf0bd8b35176e643825f982cf798234a1e19c64b6b4f1c24f356a2323cf02ee27c6536c091c878b7fe1a41095dcb1a54dc7c58b7c984c3d53555da8ac463266c48a93b1a9824d5515dd463a444444444444444aff1ad9a86415ff45ba39c56c7923c3214bcd656000466900a90dca56e1155801259062c28409f0013718fd1423dd9898a4c01a93142b9a566b00200e172912e32753600dea3f95ca07556182435beaa7781f2209449b5875f917eb453e8a1f9d93354bbee0648e2d6938a0afa04f6182a37253d9114920da84358462a1ef5dc6170b35be5664caf87a14638847d1bf4c52668c622b150b0b58a3f21fb945b7518b0b460bb3241fff093ea7aa1ce7e9a6929554e1a7184b8d22be161b18bce65d9c853fc14d7c0b9cc5975cf52bcef22f788b6fe1a977c1451bed7a30d675b12ed6eb8b6e9645226bc164999800c7b24c6226383a268c490e32d14d26bac9443799e82613dd64a29b4c74a389b55ebf169cac91362a1299678298490e26382cd66a4592ff1e898c444622ebb57efe25d66237b29551a5c79ae074aa4a72858bcaf105036957e81eda58d62916b389d9c45a6e785c2d2b2b132762a9fe2afc14d37d3cd54001d69c6aec22622e25a952a94a241155c848a5e23e05859232ce5a8372e22f949bca0e151f5482206f789134b1bf4837e40ed9a3d71f39c58238cd5264640c34504eb1141b9521547ec47a7d707f5e27daf48a69c5b01018662a9de10456cf72085ff8a9d5608da5396b8d57c018e399c7358f5d7805ee988555c029e014180576c118e31696c13806cb708f9f4e19152fcfe2f1879645f3f8c50a03f378b45a6b167a051502346c9b2a2136109dfe09d6a3d3af40e8f404db967796735df39bc2b65c77fda95001d6986ca858c1a49fe3384cef99fe3371d37f7d57b0c54ad7ff7ddc142bd1bf9efbedd65a131ffd1f37c54c36b849d64bbac74b5b59ab2437963c6608cb5a3755d38dabf588c3f424dd14b32c7c338d3cb2fe32e1d01739d6b125fd6f26fc42226f14429633d756d08a09aa626929f994bcde1213a91df0c117032d75f0d9ec203bc8e7a3d55e9cb7de3b48d8ed3ad210518c21a436210debb3e0d58e3b50fd09aa7809dfbfe65b3a6725ebdff8f2a74e52a5fc508a47f03dd5b8d79fb6d65a73af418204096267fa3c715086ca42b55f6ba5f82bc6fd5e6a7bf0812108e7cf0743404310d2a7dccde1034110d2a7f4e778efddd5da5a2b4a7fd57fd97e6b152f7fd5bfff555cfb0b64ff00080be9cfc9a7b55fed585f619fff8172c545f826caeb2f146254982b4f9770ee48810d71ee48418d92100864eeb269b9b0cdca85ff33b77dda90ae6bf32efc156401db882efca10bdb702e3c470bd83ebb0e43a5cf114706ae0d12a4ce20415cf81130e3c2e3b4e5bc30d86a85f08d22cf3e48c3d62b284348ebc35029fdc1ac24ad0098e993d2fedd1c8420fdffe9ca65e488b1bfaf1b637cf47f7e3ff8251ef76d2d3d29e44bff3272c410797d3f06fd4bbf1b6388e2388051468e18a4a7a38c952df593be3492461934a3fe903aca78118f7f3fe29f07f91e65e4e85e46c87bdf8d3146ff1965d0982df58f9e3e1d43461912b0df37cac811e3fb3acaa0b018fd3acad85fc706d852bf0cf0a72db90fad44b6b913fe7451fd251f84d305fae9a24f63418fe32f4ec4e9cc963ae43272c4f01e34caa02e6fa4325bead7c17bfa4b3cc2910332721460baf0e79f2e6fe400fee97ad159d75ffe0f5017f63408065bb311421aad2b702d4944c97ceb6e75fc96bebdafb5163bd0f87a510c3bfc963eefdef64afc1fdedf2781ae43ae02b76b1086be32384af37f5ad3cc0843a10741e812eb4b1e4bae385dba71729a850b6de9e5381d6c1a846dadb5d65a4b477ba3ad8ecb79b9bbba773b6fdbbb9d77b7f3a63d6fefbb9cb9cd719abb7b7fbe7777dfde5f9773a8e451425eb8317c2fbe38df7b2dcefa662874f82fb534bca1d9e27bcbb41ac7d58efc32015ee77d9fe7d920fb888bf1be1befbbf1befbee6b31de590375be5c5c33c6b8ea9c4d2f749ccef8de8c2fbeb6e6ce6690879fc7de7bd6492b0d30c618638c31c618638c31e6a54eea22b7bc18638c31c618638c31c618637c73900dc3dcaa06049aad8869ab301f1026cc878449d6d7b1ac4c82f9dd4ca0636fdf2dfc6ed8eeef96bf22268bfb8ec09f3b0eafbc9d9eb0067a31a614679cb1dd3da1a55f35fe4173d9624ee71ba555365b6e036849b74f53adbda417827a3721b49abb18e7dc81c290f6be0d7e6e0370094d25f3db3da2e84fbfd59d5de56c3139a6d0f2b4f76d20a1fdb615896c11658569b13cdd96a5380263ef7e775ff0deeeafb5e0febcd5f83121ccb3efe28d6de0bdc35014efe5be7a16282ffe9c31bdfb0939f2bd6fff52bb9f80f5cdd4f2406223b191d848e0fb8493f958dbfc656eea622f5d5217e9a08e27d0af9e25a639e79c73ce39737cba72ce39e79c737e9d01559e2f235a5b8eb322f826ca8b93d98ba170ed0ae37befbdd75a7aefbdf7def195b36da184ba4ad1cadade7bb7e5c927b03fb066645a2c7d05a64595e2275fa6a070b5938971458c8b66050ba64595e227df4b1413313127177ff131bc854fe1299e86bbf892bf3c0b0c182e3866fe7b4901a385172e505cc613ca78926991483337c64583d25b26fec7ff987fd73fcdb7fe4ff8066bf87f1a0441eef3f9742010c8b3c5b868507ac88c4c8b6585445ab1e24d9c682bc6116d449b9169b1f495119291d799aa1aadc4c44447899c12256fa2e44fe36b555232716dd6a6092dc6450382e076d1c468ab1549fe8b621882312e9a32e6f42e3ea395f2347c460e94199494941994d6691c595a3233292e9ab135c6b8685a2e5ef3319c854fe1279e06c55b8ea3458bef2bd66a4592ffa218861f0a18096c625f0d5f0b166a58a0acc613ca786abd2ba6d56a999894504ee38fd68f1529550bc7c9e1e44d8c27eb5a41ea9036962eb6a852bccc01e7e44d8c27bb62054b8c8b066cc9cc8ce368d2d23233e3e9742ae1a24939ad9cc096cccce8e23372989889d5703ac17f3af9b1c5d2574aa5b207a586588c89199a94d67f2f2373f226584e2bc65ea29cbc0996538c8b26e5b472025b32332c2b2b567cab55ae8871d1a09cfa296446a6c54222adb07052084eee90b715910f11914f41998971d194654a4b341a8944229148240a69c5b86850c67144c54e35625aa73f79fca7e7a32af52fd66bf5125d2d96bef2f9cfab4695dbce0702852c3e9e8c3f8ab5af46ebb15206e5348e312e9a1494d3e35f41398d0157e7e6e606bbdd605f144271a4a4c49892b25b96a55bad562f69f5962e01cbca1c1786a23879264e0da7868383f36ab91c17863a3b74e7c6b2ec2d14c5ff7a73636f6cdd07556157405b56e0c3c23858125485ad4193d03fc2f15fe26ce9f5b5bd9118a171784a78787878783e65d43828a751e38c1ae7354e89128d63a2717afd4c12cbb01c43cec930920ccbb00ccbb00c2bbb9e733ee7e49c9c9347a68cf8f5318dc942e118098ee1188ee1188efd09ae95302921c1357bc51dd3d7bf375c9d2b13afeccaaeeccaaeeceabc7875aea9dad8d994297d7dabc364a1bebebd59166ad443cc12f52faef22f13f9af506967e5c89125e32b14aa8c261135ce59928c2fde5f7ac78e8cafd234be486d6fbd7e2d914472c848140a6f56f0f5e70d05dd70309dc4e6ba4703d13c44dcb40f986571336a5983aad043cc961aa1a5a1d71fc254555b63d42423c21777b3d3eb8f7025ba4fd779502a067ad012ebb5f208eddd57887066aa39aea36107d67cff79de17d680ffeddde2766eaae8e7bfcff684083f604d28048135a0707b20f75f68db1f427ba70867cd759ee8a3a60fa7fdbb7c73da3f90d3fe7d9f6d7f0827f0d5602748afc07cda270843c4a901cfec479f6f8798f607207a4c185b1bf929fe7cab33edce94097fbeb54d99fdf3881acf0e5b0cec0e0e374c96b5d952061b7dbeb561c25c58254530c91a30d7a692327b3365c09f6f635306f4f3c656df9746af7128ca29db3f70674efb0639edde0677c8e7f7ed708f76e6f6ecdfde96e36ee22a98ca86a77a2a8c6a06eb02150dbd7e4d25914222554bd15239291f523da476a478e8a9184c32c5f301a57a84351e3620eae7e3384a3e242229d15a6bad4bca9ac90cb7e5535fcaa9166dcb2b4873b7878c6c2aecbe13acac89c60c247fca36657aa840e36704c70e89cc83c2c93cbaeb399d4e9bf4ddeb03a9a7881f43e808b1e30354fa388e910f711ce2c8dbda0985dab3ed02512824f54c5512b41c1f6689920105db2ee0a157520c2649e251098541f4e0239a2d6b3c6c40906a22a07126bcd33bda3dda41b46f3ebbe5a08d07eb99aa3ac32cab37c38b618643af9f25fb2bf368982d6bc468b011853290d70aacec29796c59ea94365bd6328859fa304b1e65ad1c628f65ed622fcc3ca0cc038e2f7b831d5f1687fe8d5f08fa80dd170a8135dc87c0163c0863de9429a125e105893933d1dbc1d3c183753d1d8f17c32c6b12480031c2c33962b4334feec93c1948b6a9a489098a2dec7b0758b331b63f84f7317fe1a37d1c07c96f5e829566946220d94835128dd46396f545f2a1937ae8a41d93ac7f84cdb613c48836aad992d6830d081d215e7b67eb6c1bdfb390ef9ca9da3cd42f2f6d65ad8e2358b37f045b5cfd3c085f99a7046c31a26d6f73facba110f401bb102a4481501f14888275df98b2f1844c15dd5da724445412df46233c4701a66b64667fb03391cc7392e10443a14246f6d365ad7463e2a5982d4b36ccb234c3244b34741c50e9068ea443b2916a53450a629624204828128f5e9fe44309a64242e28d20fd200d31ba91f0910ddfd168341aedf89863c9c6147b918738ed1fd5b65ca4658748fdf251ad9223daa8074f76f1eb05ac55b6ed4148967c1c8728ee992debc90d267942abe409564f32bc543e4ce9a46a33cb4a0531cb1ba48038a15598548f930c291e1d5661523e4cb2be0aa682c4a78ce8f5477bf6234c0df199c756d64a1ea58e10e54ee9634433c55033503615e6eab1e4716b49bff2dc31c721fe8853f18af86a5b4ed2bf13dbf2911ee238c417711c218a6db9a95b5eea5f8a96fd61f0030a43222b0a85a00f88411674625f1e212d04e24daa4d191f26eb04b3256cca8cbed2ba11ed1bd1f28836a2a160a7b276827527d80976829d42bc67a01d931582685326837a4046807eecd99ebdf66ccfb60e53c6c33c8430cb3a8185611886212c1c4f60e3096c3c818d27b0f104368e23cdb2ca194a1a6369c358de3096388ca50e631983b1a48d28186a4669c371e30b0741078fb4cb2681fa53ec70f6cb232481781cf5a079bc1826eb04f6f2727af574f070188d2fef06cf866f7c7934bc194e68d9880c24d7cf499cc02c6be4b850fc273fe309ec04763aa1d12c2be4b83014c57f925c8db4d709d66b48b33b7a7d1f6c3d7482d819e2667ff0f01c01eb28d89e5572874a722328c75482ef7e26a03bee315eda2a6959231bd072b4835e7bd0f7f812855345df0b75fa9ab73e8e83e44ddc9b9548defeb0825eab301e0e93ac5d4f07e29db5c900e4c22a4c67c4243b22fab5a930dd0f15957f519ce3ab43a2576bdbe9d9e37a86865532895cf294375eeed8b2f4a1ec616b607b3896b511d042ce64c354c3c9039dc654718251536ccacc76682c6d95ac65ed8234842f53cc1433d530dd743d530689c942c1ac379b32dd574bc3da606fb038e86073f60c05b3ac548f59d6a781b2296bb01b5037650d252b6b289c5ecb1aaa05bd82e188e6dcceefa92ebd619deca3d3ff3821821002e760cd7e0eb6b81dff09d822d4bd31651341f832c5b8d77ce3cffc03a10fa8446c1cca61c848040000200873170000200c080603425116455120ac751400125a806064523e190ac44112c3480821641431061102040444466846ab002837e60dda1c4f0f6140428b4c32f3f59d0fe95740ecd6368754eb5ba5c78d2bd6e4c87389615cda68eefa1f4c58c7aecc3b9ba2ffe1b3637ddf698814ec7b20698c8c5b46cc3b490c0df1631d5534dcf70ce4261cbcc8dcc52ada2e1438b95aeddc6d65f55105a1b94152f2368cb70c38bab96718488f89975247ddec2a5cb8c2fdd71a2113267bff68e10b1bb7e4c3693eaba085064de8d2a3e9925571e46dcb4713b7b641ddc045bda810673d29ccecb4968cd556f877a801d8b308da623e40527ac580ca58393d64c004d7a514eaef1815285fd77d417d1ed58b83c3945a3c5d37e4f774cf27f05d75af1cb5e0bf394e215cc1bebe9f4f41962c1fa4d4a80064a9928271fd64383b70299d955dd55b1d1a9ed166d2650f670ffe8a360ab254b8782834eb2572ecee82a07bd4b65615801340e8ff06d7cee18c18591bbf338711cf132ef1b226de8fc89b087646d54bd293c2e158da363e2e474df5f3cbc6b37586077550371e07f30712bfdb92c584babcf9e4c6a377a09727c9a8fd789cca02abf3794929c1e1a00eed1a16aa729159faadea3187939efeb8daf3cb8053db23025555138308400b0ba9420eeeb10c9abee401581bed73465c089b9054bf9adfc028a931b22e5f8f30aa2227ee6579f77c4ed0a38659eba5b8cf3e8bc93a4a018a0f9fa723b929d2608192294477c2f28888775b429927fce85def28c161062aea7b16673f356b20ff7684571eedfc39e0a3e57d099c786c573e863eb601610f70cdd977560e4c1952ce6f0e549c0d4afa8aa84f8615a27d73015fd8856e93e29b1339a00a18570259ab6d1fdf8b67d950d3eaa308cb674a0cce4b95b2f6206abbebb07e331607c612e0c262ace8c5a5f79c16feeec8167cc6ccef34a6eda8c53f57baf86756fc75f0921a5d9fa6aef957cc2e9c824205baca8d062e2eabefdf9db7f135892d2ec71f82d86477d54d6ef684f8b7a0cf608d860717d5e60759c7267f62c6740bb2d6f3eaf9ac74ddfbdf89069f61569baca5084f8cbb11c3451cfd8bdd2965bddc7887b5507e7299755b2c8401c3ea9e197029fcdf3e04dda30cd3170db304fa2ce1acd5ae0da22f96c50e85c69b41ba66f751bc54143cd0792170c81ae8ece05045ed3c4dd60fa891dad3160b22372ba3e3f420f411daa62449e04d4b3d9e327949ac44005585b06196ba42bd28fdd50e47e56f758ba550fb85494666d02370f96f85de9eb0e1b394c7d44eb04d120a6fcfd23e052e7439ddf04691db1b74255d51a33febd6fe1402213f2962ec2a3c725ed79bdf3692e928b46f657662550307a339d0577c5899367c30d03b4a5049c3857f504bd704f1fc9107430603b942e068fd3507b86ea65a8a266e161c754ffc13f068c7ba9dfb109780debca9bebba223b3abb435dff7f91aae23b2174d784c1c4f8694f31034c613357f59b93e0cf3e006f71a91e34842691109180c5522d45edd82485979b46e4501792871046b1f4d40f3fb9860c438ea4d87ad29b7e81e26e32a403d97756a5d8109f783e4634b52c356037c107194edb3753db2b2d6f8db5859d4edd7b50db135b1010ff24aedb156264b3b4a0e99ab323e710cac3eb86d775da7b04bbeac0c9d22fb12ed4ccf042bd077a6996199d8bb5966f074c4d285f4e06cd70e84fd5330f03053f0e17faaaaaca830ea5ff77734d873aeb8feaae253b249c36a48268a272e4cace218c548517ace6ba5a4bb238a7d99dc526f413f5a14ccb5ba443b4a597f732eb9b81f08c79174a44207c966f5ff3f1003a2e1c82f1313b12045ce8c81545f06ae47d4b007823848fd40f01eac3033e4430ae1e31d99f8c39a9414f1f5ca6f05765246a163fb9801ecaab0e1aaf0141a4a00eb91128ec4c8207610320302c0565200b1bd0c306eb00318cd189d1ea8d6e73f0e60f958dbad82f8579900bb6df1efb4e02f0bf558482b1b49f4a400571d9529f0c5208b6a2c326d5ba9aaa54e4ea4d884712e7e017be1a21adb87674cf2e941bf981e7c178dd43f9b6bf11ff773ba34a0059bd6a322f4405c21fc0b0afa313c778755b906aa6c8febda06d791206347925f283e646f170169f2550eab01c9166d64fb49137a58b51d4b0132bea274d41df77f0e5c877475cba4dca43bb2fdd07e3eb553c6a5018e40b6990b2fd7bd35844e25c9d080ece63cafd6d10d4a14f697de73a6226629cc1c0925d38f93ef7f517c07e4055fe5243902f0419daa5fa55b742e28cb5deb718f83b6ef55cb3cbd52e6defffa18c1a532bf714d8e6082544e2d6e573a789eb0a145d6a070213ec10329d9e7611dd11fd8fb65127f09bb10f8e712f6b46654336b3a47f4872a615d7fc6be3ff74631bf6878e2b71fe6987179acd79dc97018c6c2880af23ea084ef0fc74ef263df3adee2eb2eb79058f492353ee556d8fb3657ff967331b9c95966f01b366839ce4e0970ea2e0b209301b8878058bc0e97571a87f28bc08a2a143bd9d478fd270a7aa0033de820a8fd9736b07a51dea6c1aa1d0aee951e71fa08287e3763bd5faca5ddd1b5bb034b4ee6a44d046b41bd3310c2175202bcad859fad7a9e572fb71e7c5343f1f2d3be1f424b34ae175b164cfb40ccc1822b997fd2986324a31fe15a576b1f1fdf22ff7d1a6fcf6424be3128f56b901e87fc8462d04397da27e308655804f5f8c15c0a5b3f06356c20fb2c5d7527123a8c13840959a379c1ae2d74cdd06920eb6838b797e0337d82b9f43540df14fc403bd500eb4b1ac6c3c9f76f8600741f3efcc40d63a3bed3b8fc8651578f5cbb266f1d57cfb4fd8382f5be85646faea338de37625d0442bf17cfd042c012ec79d31423c552066bc9d7343d717141b6e22ae5eaed1d388ee47fdc833bb8d423f4dad6e19efbc30445a0ff66644e836e5ffa7dcda411d3b5d28271530cb98e4dd04d00dc042c3f1e172d505d4223f6da9759d8404a1005c8108a1df824f3226e930e0bdb99661b50738b65dfc52974ce661dd5aa41f4e875e128c042d0badd66bec4394570c1447e34bb256f93914c0957af54ab43a8035d437b972bfe71803f213857578b4fe85c0277eec23b3cf213ef5daa05f4efdfde9f424d6bea0a2eb719048b44650fb3a2c409969818719162a8ed5c2b5389cec64c083fea9c26eda23f9c47c720d36d1c9c5f2d18918d4246ef9e3f40235ec2161695d1633022738cd655ba1ad82dee1a98a9dcc57d8878d6e233ec5833c00d10d07334e1b41960a9dd28b1be88686b78781d9e086ad9f3c4dcfafd77d6714a9a4c2f1c848316d34f824d6c99bea4dacdeca70783b5641c4da6287f21ae6abcde6b885583a59129fce4daa233b0079bc2b758128be171ca2702c749581cdcc242a6eae632fd6b130a8e25ebec6805a21d1fe276b08ef10cecea78d31d7c47b4a21837596b5e4e096c6d42d378ecc6530ff53c4ffe1a253d6c6667bf5bc07cc60fd5f2c57a158b8004183369930b70d09020ed2bc9d6a3585aadfdb1bc4409fd5f245584cc9d5524660383d0f06c0ebbcc8b33e606af961916af8eae95c9438f7d7103405cde96d9daf42a55b0644de5068de1916a3810806b948d7e18f56fa5e06879532f904536d90909b1d2fef50be9445a59e674fdb97b263094cc1fa93ba43cfd09df2074939d8563114e1cd5a13d2bfe07ca6989f39f45062fae7e1aa49e23f46a46788f54910ad18ee898a9000d516fad8cfa5fd0491ba894ac32cd9a34d0ac4163cdbd7a4440e6d18099e51c0aafbfe4c7b09c3dfa531f59c0183e4e581a624a51a4f06e30da1638705abdc0eb74de7e27bd4dd102c683893e38c537c23726837fe30451f407f3d83fd623591edd9b4f8cbcb11e729f6603fd8fa61d3b756d435e33c439deedbcfcfc0b8e1dcb0d14e94129905f3ba320fabe36a0365ee502eed8a89be18c419427238e586676086524f3895ba922d4ccd1bb46440491d97a0ce10bb7e676f133447d00425e30074c1d2dd9b82ad4ee9f107ac897c0078a840f431a457d80635e5d853d83708b2e5d86b58232e8ee56e3addca8b6be73686599bd36a79d0805f481ac0cb5351922b8f783895d13316f273d77658e2bd71ebf161f79e89a4cda4f423384f38648cbac01ce10d8e496689c8d12f114f5c8c710168e5df7435e42516e8e2ef875f66a12ba8cd8b0c511f889933c9af9f8a290ecd5b3b4990d7089ce7680a528df0eb20649a1c9e414e49106b0ed0be0e29a96888f370ea2b0dd0f3eee7b70ea8418fdd4aa604a4a1770274d9c2d6355469695b51219843b70782812c086dc7a75868198a58be08a56d8c14a363bb20203640de1fe48cb7140f6946a928d50a733ed0fb03d1be1927479382c5aa42bd717f4a8f1300f05a88b69b29666442a9e2475e9a0b4a3a0c9b162f2c65921275f120d1eff963be85ab26325dfc3c07c4c999af7aea944f4636d1686f004711021ec62ac506bf45cefde8df8da6a0166a1bf081558e5e5da34ce9ceab66d75e5da4f0949f96596ad31a8970b35424e282594b2ee08d3479ab19a44e18b367b2783fff32b517131dbfca72a0238f47bfba7cbe7fc148a4a076aa951be720a639e6f85991135eedfe1e4d452e364f06944b0a4f4bed87408bcf426f2b97289f6906dc90129dcc49b68280d85f460af1e4f69eb1737ab1080ca5121266a48fb3e51c3cae8216019b8c7c4ca6c41af579c0fa12543a6e438088c4d84325f47c457e1b0c141b33ce1175ed5440687026d1211ea0c40c03a9fd9165c220af21671c7aac67443ee9a5d9c8effdbed60d1456857e30427354514cea504485151adcdcf4e7a7f953b620a98d85d802d4d8058c7cc046f5cb9059e195107f8097a03e6a74ac013dcbd80705edf1a490b4508bef3996a9f6aacdb8d28d2097a15a5076beb180aa8bbf005b71217d24da7cafc8c1d9ad920a4eb26021ad45a90ae980a68d02b4bd5c620730d27c4e4d751f658ad800565191ba61e8f57ae19b2ffa51d16aa238e4451863481492e3a4ab5e27a8d91a0a702d0893e5eff47811edf34bb7a5f6b767be14091c12921a2c361b462d82c1c82d7e1d4e2cd7b2347b451a853104825d4a59368ce961b3cb16e4dab1f5c450b394dcf3fc707aaeca5ae5904b0e188cda5d817ee02a7b80aabfb66c089bc62686784eb6312d2abb491715037c260d0eb4bc4cd571d84ebcbbfc2bf40aeabc35c44aeab931a275f08355e7d7c81ca07ff55a87ce2bb4954b2eba1c4792fd08fc1cc89d853cfe72f11990c76fb523f3f9ac6bb9fa97d00d59a84525ea7aa5c8479d1947c847c7b15c0176a09327e214ae455b3574fdf6b73b66717cd581822294a34f955a6c7c63b560193808e9ff4bf15329cf503b1825fe6b31061a910e7786ee169217a3dc95ec08f99ad54ce0bc5880bc7412987c4b58fc8bc71f0ae0565692496b46096137fd33678e360406983daca67150ca2b8148dc27c9c9a5734801e7a3b47ea4a05722cff8c5b9fa4b10b56ae10ef9efcb53fdd96140920272d959e728c7cd58e8bb9424ee1c18ed005564449d2d67f35de5a5caa575bc1afd6402c5b3e42c54b2e17d163d0959856a187841e1e1754e2d3311a08b2d7736e55f6a4bacc83c9d12d197e8b9b8f38504e3fe21480f04a45d44c0e606798942bce2605814bcc8dd5e35642b3879e0cc9b02a11488e4744089c4e07e0b743a72b144fa16462dff7116410a5c8af696791cb1e04b581a1eeadab632f371cb3fdc59b4ece8fd5db2ea059e413c7a9fd5f1c223e69f1d163cfc01f8c97d721c4a8b7fb65b4ac8806a52d72b503b46d24deddb61bba15c0aa2e930b119468c8397e40081dfa81b0329aecda7710407239e71d1d73719fa547bb9504d0ae8e9a12bb8fcf302abed08a543f915be7bb6f78da05f433ac54cb626671c7e1e46de49990b31d378ad625e41673884a37e446d91454a05993c40dbd6b826d827c4b00a06b6e74ae4e4d3600cec1e944cc2ee71c6f100eaa54dd3843135d2522a1d8faa7b5c0fe000f121111b4caefa155250dfe03aab8060d191fd1ef89c9fc1ca41992d2ad035c881cbc6848e500c1ceb583e305d4a76b9c001d2ddc50373581a8e8f3a6fb3a54d80e7d6be9077f7d2f83eae69ab80ba2bbea5516b8de84565ae0d50efa6a4b803e85f90a00d41d6eb28e5b0db9496349a368430766a4c181eaa159729ca297521d6e251243910416845931835d0fd2969b2bae06465dcdc3c007485b3a093c950c4a2d36e0c4edc11bbd788f0314f5fa97579ec635ca183b23dee68e715445ae9f43711de0f850015efaae06f58cad72104ceef4cdadf422c34497a211e62897c816ce66cdd95525748ed056d826a6465fa1397683ea542cf752cbbec27f7305f50655e44b11d3525faef8da70e638266aff96e8eb4ecc9261a9566a33b95d50d7a057f6058c28c04dd2d0a9ab00285ad9f151ecb89f8af25f62a934c27d52bfe4833088726873a42de1470457ff46321dedadf87fbe5c9d5066ef01ba298a78a111408bd31e98700b3ab78a14c25ca3c8e147d3e0c373705777046d0999582fe881cfabbefbace168afa830233ed10b9fcd4eec689bd3dd7631f3657cac4811ffa0c255a4308392970766ab481ccb2a03b207b8c4c08acbae28e5114374ad13d2dd6ba6ef68ed4f0c0d6e9e066d9373a3024eb8ec4c69826585bb8a18226d586ed11091d05dc7f11dee07645a0bca85693beddd410347c37b11629d75d5b0032da6ebd840a3da1dd156ee828a2d0d8616884a8ae04c34cd5172d343bfe31291156cfebc91771f2071e9d9fc952854b1d835e6fae22616f3f23e43d22602bf8ea0778190b77edb981490dfde1de434721180ab3c156dc1a307cf113db202f02d827e0dadb5f8e9864475d99e154dd622c48739df65fece4f3ec1735b71c7bb59c66dadd2c95007152ac78afc41a7f020a1d717f6a15137c9c1741c33cc863c74ffc4e1a9f8bde49f0a1bb33bce0544eea9f346ab646ff06fd22b47694a4ae8290c79c5c53408a801250be63213b015213db615b8a0748af5525b4482a7dfc9be67a90b85c22cd491c0a441546a0a1d8589e1ddc1a6e565d36e27b1f110e1241562e1b3be17d154af5e4f86031a3f8d05ca33711aebc9b4814e219a37b6f214a3c907cb6c99d1c90765989f69c33eb76ab80230ec36262bd57460b271a88a7bd42568edf339a6b75e3ed09eae8039552c17e4d42e104a04f793f80fc3154190f154ef8161b754773489a2fc4154f380f71e61ac3b5a81376fbe8447a4b2072e5e42619d8f12a00050da16344c6d680be3e96495b293085570401fe8ccfa18801a0111cc2144085374324947518c47e9e93853d8d9931b1539d6c1b097f689b7f6b0b0f1040a0b2292d3968e10a75d58561e88aa22f73aa7eaedcc3c53134a89238cc941e70ee881af159bcc20d9518cb5d6881c10b3a0f59ce67743ec77a05c234ac85b5550af15e2d264db834d5ef7f68b3065fe120f3909c08bd6fdcf4b0380bc7bc018820afbd064dc7294bb6e3053b52883179d3ab85aaa03775b1919d3c78d1f596b01d1a1c9628cca7ef33d8b03d8949e24ef62ad0e4780a962413f204f0ef2db85751530e15ef9291a363390a60af8e5d6843999946d1e2ae8d36517f5a12244bd9a5b08cb5474698e09de34082a290bd5bfccb92d9c01b44bde830d7928034c7a08facc1a4919bb6da2df8f186aa1b2af53ace2b8b3d21c9132f364c63da742b24b99b63fdf227066915dd9970ab94bf217d24a519d11c35154e4f8f69788055216ecc8942622d2f533259baf6d1240c6a7abc04d371469f4c26c2cf32823c6f07166ebdd0bd336910ecadb67cf7828e131c1a4d898f9a3ed320fb466180c3eb5a3a1f8abd014aae438fdca18e69f5303ad8d29f43d9746bf4472accf7881d622793333ccd78628996c9e5f25007d9933019a79dc6021405582bb01f71c87a68e382efa65a9fa1a6119e2923f179f32b28c89d837b08d5b085d06cecde2dc5a35b2c0ec57d9318f28c558730b5bc82a43ae85eb4ea2bcf42241e57706d6ba636196c145b40b600a73bb6590d657f297e39bf8f1f8d1cfd55c7afcee6db7c2c4b3d3765ab4d3c1b7dd5af27673cd5b37b570cd84602f39aaaded96d0a80d4b89270d6801908537b58ddb6d297b8595205b99446c49bad239666cc5762bcca202ce0a087002f1aededa4db8a3fe55ba74f68fd16ebf463f72f86be066d1d4c8332ccc502413bb77efd21b9ab0634a03ce9569952cee92093bc7f82d9af82c301acb1a7357404fed36e0c96e1668b1768b27cf679b0dd05f344bbb5130ef863861b35bdbeb36a4a4d9ade32a9476438d85f326733cae8c63583c5b318b63ef425268b7f0d38c79f16d43bc3ea7edd630e572d77087a5f0d95cdad9cdeb5d478844ebf98a4a904d6d3f16ab42707c617caee4cb2b3d072331b99d6b85c1581cab1cb358d6e33eb3db30cd7990bfaeedb9d97ecf6e182e8f940c01b246e9174fe4810f2dd7740346b9ec16d03b6737461703cafac326a76f41f305f558af5bcc855776bb007e26059de77fb4367a6437f80b01b4653c658c09d5820674b754805c04d7b783f78892e3df53b85a2f6948d1d782f03ec494d7e2a93ba1685e1cb84338065416297611482b7d0a765665d48c3f3a3d3fedd01734a636ae979f8b1c16a9a1d46f667f8ea898a283d1a9b227fdb2eaf7750744cd9b512ec8ddc620e5fc53b6a26adc6df748084871d65eb28001cc501d51413a85bb7568f110dc51cfbdda286ec91fb7711407f6eea9fef5e6e4940c735a7633141bd0aa5e52b26910eda8165178afb7ec18b527188f73d661af5d6fe1de8a46f4a6581474c87f41aeb7f279b300784bafd82fc528e55a18bd67f1292609d8327f04b93c9b308aefa2f9aeaddefa3e005c9b8d83c489d8b5fb63e700192c7948dbe98dda89b202ff0595e0160983f017bb49540df11e3102f463a29eed083809a51ae2f8582b04ab197033d161c91045545d6d3fad015eb10f3e1a110fc9029906207c4fd7559de01eb2ef23720dc169bf8fc8c15c9a2b73703d586507b546ded2f98d63eb3a9f8ea10be21609f66f37e8bef53de6d82e9963668438e093e93fb7cd69f56e04c3a10ecca2382db656088f7b7108d4d8ba6a0d9d152ab583bb88ec1c4a552ae42c95678faad8baba4e669dcf06e7448257ba43f4dbcd530c36a3a04f42a8a8b3baa6144625042f9789b2610e07a070ec95770b5bde082257558645e93d6595fc2f61e00288cb15467664bcea7aaaef5b895d40fdbf48582c9755d57e2cab5b34702684d812f3e3f7c3a96b0828a674d0d8aa7d27a23b6221bac20f7142d76fb8f4fd50d3465a69a83561e867d9ab33e8d9b468e4164604403b438357aa18793c53e2f17858398eb2371b5b2f6a95d2c069d64c6765b136bdf8a8d03089138b406f114c98670a3495d476f18a751121e5a80d23cd47b6858501e8bd1ee0cb088ada7077bfb46adc008e9d0cb8e0391da52107511b4288856679ee07c79e194915f718983928830abfdfb5e7658bf9b4c9a131324dd8cbb8161e8175afa78dafeb810ca76c00e0c008325b0f9eb6c063f88b8eb44dfd4c0d7952bfd838e21a1580efb773d8b50db649070481648823d6d8035a6f3919a588467bc4c957f7a9d4111a57c6a5c40de573683ff02187202b7910c75b6b4606a2b91eddf9ea3f9570840ec2382871b379b06a036fe240b01219e2082b7a40cb37eeb3d4513575e152fe9193e183397ce82148258fc4f161fdc870ac973c6e144b39c812209d9f382058e987f8c4a63d83242bd8e5c953d9ed9b26fde06655dd10e3609b4726ccc5f49088b0690b92cbd6048a1f43ab5f895e189ba1feca1bd20ea60d78214f1c966ef97a1a4afbf73966b66098289a1ef6a03baae0a95e4dca419585dc37b3a8386c2e65b48f5d8ca2be22cb095758bee5f962135360ec8457c38f59e850a31e6b98e89c8ffa1d45f5acb09de101322bf29e447a8f72a6ba894c4135f58400920351441200d3d41d108049e4f60abb2160a276ed165504319e09784541ee67ae40ecd9104030c25840c4b0f2fbe09cc407979a969f22704f44601e03f7443667303db9184cc7a913bfb8beb60a0ecee342e8005d5da8b6c39adb8e134b224d31a7d5e0d989198dd3b05c74ad4a05bb2687ae810a59b41e32da927e6159324a4f082790e34065976bf239d03485ac7693f2e0d6538970f359946b85b8869ff4801fa969b116e24c1c1ef58f880079fa50f1d50d54666a0aca5ab7b28925baeb575eb9f6da915fb4e4db44bf3840770d944fdf158d3c7d0925c16c7f64f1645aa9aca67f20dc1b4b4838eb3157b7b308f60d5605991beddf57e89b2fa0e7b28ea93149140e9c47ff37971452e042a7d14068f58c79d4f54e3d6c7057da7b9982151a53b2f73285ab3456d2fb99072b535bd096501727a8d5cefbd0403b463a07749d88e6f0e3561eb87e42e1665b1b9fc9a1a7347ac94a962379d239bedac087bf3b013254a39e5ff9a3454345d46203d4dc69072fc5d2ff2897fe37c524871a8cfdc5526ad546d5a611c1cb64594c90e0fa1edac5d2ff92fa5ec99ebd4dd6a7f6e6aaf6d6f66ad93fce2703bba2b1ce4b574806a9a44ef4f2fe5fa8d6c5759160d44dbdfa0ddda11d4222b832064f1bb5360391f2528b86d91968ca98c9cef525e8735cf20cbc17052287266ea51b62f2112c906994348fa432b83c24139a991e1e31d8a131e65fe781baf83728880322853343fc14df0d2bb4d3f487efbea88579951472bec2d2b0e5965ec198b5072bff91d992605df6f283bb0aeb1aff493cd065958df2c708596c068ccbf88af1d70932469f316394b8d1f8c9418d3b0d31fa9a8d59460f5b256b53ca4b18b88a9f630cc9c2bedc72320b8d156022891bb81d515a9d2259cad13b69fd1e4cbbf9bff2762ffb7109f81e889c660a3bb231d95396e85cb37ff3de1467d95999199d2df00cbcff9f7ebf2a3b629ed3fb1390334887446cc0241369b92e4e08ab8d9695d50fa10331c1a0abcf24e8dc9250d88f480cfa3fadb60d94c4356f35f6cdb66f76da270603fdcd090716eac797ddef6e3be05115adc5b2c7521da62254305b8150526e8baa043b6ee5f774c3a705273cf8fbaf7190501de6a018343aaa0d11046b08012dfd14a8fe7286c33f10333312d0ddee12f0eab38609526f9b06c913d3304c4045a92e3fddecc97b4ad5059d42a1fd7bd892b85a5505771432b07c52ae764707948a89898a927e3cac57d56ac4bb5c13685e82fd33ed9b0d958a82ca576ddc8cb6475735d0c0900672b6ad404f57ab0b3431fb6e83da56cc399302eefbd36382c3810a3631e9c35b35629988527cdd274476d59d57f9df8a3087c08c650ca71ea45d5acdb55bfcfd5c5f2a071333af3ec91f5a0d45736cd2511f2015ea005fcf9a48b60fac62b22b5fbde121a1c24342a7b475caa940df13abff8ca1d358c7c6c940598401e15e29ed11e38b15220f6717cdc45e8f4a08460f6845c52515ef086239c1e6d1c9fc509369fcf06e1122944f3c03fe548f808fecb34235fd40bcfbf0cb2c2d88bd4d26edafaaab630446fdd4ba966312dce1744e9bbebcafc47a7e45be6731d670756bd096bb27d5c26f3a8b0450fd2a44fe53abdb29f81bfb29320a4b676aa5f6046d12faa789a3d4380cf4cce5e6c27b2093ebc69913e81e95b18b21068c69f329a9adbd976863004d34b01522b8c0b5da9565d3c2757d6b87f4a43ae80a5408ac20fcdac39ab07f2e2ea138053c8252df0860bbc11be9f6ebc3a049006e69306c7c893c980c18f53f9db461ae24c48d895fb71311fe538808e87f6f66f25540e4781001c702edef0065af2bb2e304edc70be3edfa37767da839e3dbf553e09ad17334355bb4c796ceeb09dda466425ca8cc4bd5c8dbac081c50a3cd6e77bd8a63c7f9270e8e26f9fc54b8c972673ff92e6471fd48308183d48c1679d6d6a043e4d6574e135d8b84123a02dd6bd7af703148ad7dd07f2da1ba8e8bbb224ffcd7afd702bc962f633750d833dd6e22f8aea356916c998a383016b5133b61dd2515a791a45f93b38115714fe7edd38f23d6518b7f5fe4a1cbb074d0be3f92f012f2003df6968d1b1b4c50f5e878f349b4fdbe55191958d99340c4d871a3f2a03e6ed98171b0ad57d4d5c720553ff7b8707121c707260af6182d992b34f8741754a516f1ce1eb55247ad508fca43abb160c5103601a8ed69c29bd1a865d4eeaa5f53c9061a51a366336b4a11a405e2594c622557f500a838ad25a6256685cda036b0f45fba498b48c5edda55f1bb64a383e8b03ff4a367735e1004674e087fa52e3aec773dde23eb7cd09358cc2a4112a1690bb6fa8639e8a276fd8c45498fe28c474fd76f82c24493b077648d9121e1a89f1c25bbd814d98befa6e17ad986ab4e37a17485496c541912ce7f0d3474d3ac0e26c14d1c5c05263616567d4829038b5abc5fabb90208c5464a0d7998d9d854512cd6b38aa7cc1c5245ee3779191b267b3a679a22654bf93ac893b9381593c1776332847fe3d0f3192b22de203519104c5580b4c4827781eeb4fa8c9d316103849970b08d8985a216da655e8dfa888a60d649231ed5260a918047fbc206a3e470ffbfa4b11f10630489155299789c9b54b137ad33461de49828a29bdeb4ac651dcf8355de8ea57303a1a655c7cc49595675a171f3c72cebd8518b27c203deb4b9b139dc2fd66626cf75ae6680c833cf07cd124c2aa2a943f90aeb17b2d13831db43ed265d79a52abac2f121a544eb616e6e6d6d088d8c4df788b5e86ca6c4720b3712d0a3641fc401476a4d182ff5b663e6d596155ca620e24378811b2d8828efa446bdfa28d1c7a6d19bc576919d9e9e39bd72690f46503ea84dfffb2c114d2885763015c732f503fc61e466fbc679821cfde6687d924628399b2a617d3aa83356f59e8e611e89493e0fe50a8aa63100feac3aa41c47f95cb59d825be662489e47fca0450da8590227cc56932f1a2b0526729289443ca09654bee9c7a2ac1fc96b33e3096787d1a387edc004d44ecb073af674d67c95fbce616c396fea683329f57285822faacc98f6d2fe9efd6350d21efe25f653514e0f5e5050cf0b17a50e7a747b048ef69fb68dead340cdbb323799a81bde227c8c5c2b627f47a881ef6942391ca0a7bd25920cf7266258401efa9710e4e1bc1b31b59f97f1d989e9c7830034bef488163d70fc258c1ec39ebd78cfa0b1cad2277855309351e7e3a54261f905b8a098d7c5f78ee44ce5e3e19212626df2f110556db83b69f1a16b70b7ec10d1831457a5870ac8a770f302c499c4de327eb6859b7f65725c46dce3c161e0622a7d4202d1b5240a14d2800e188e0dc96b247c67ed7cee2502703bfedb3b92a90b6cc9365639b61d399ec6bc6291cec83fb2fe9683074092c438986b7838249780e4b9fde8425635d7aa0a7638f00c19396417b98f2f9bf5f54829e3919356597a5d876a92ec18acf56280206b9d8076d9c2fbf2fad4299e99267854c92a5f375f60f012800c1c18844bc6a6f987ec05eb1f748c72bf004c189b068dc69874654d5e873113dff8e2a4b911cfef6f0c5538070425f8c0ff7834635a2234415b7771c7e7e26003a12a4129a89965fb8f6010590d5f6dfa2cac96113a34a0ba9e64e0aeef7513d2578cfeb188b1b78f3e2ea8c3c31dfa016b674d99cf3ead7c4ef3ba9c90109d51f00041436289a05527301b4e9b3e1a3e5a8b47a458df60b73871e28f04f3fd52cfda10dc2d19931e64ddbdf145a5978c612894f67191f327ee79411961d283476cc235d58f477c622b0e521dadc3fc9d87cd47ddef1d76611d5cc04af7c1e965af08790d38b3ff5877645737a9f3d992e03ac3a5d421dc3285014eb9c178671d9be37b207b93f8fccc6088ec3bee9b62e90f81d743fb0ecc19689fbcec1ace639b72b15d3754eb383bfa36f0c5575b6e4b7196b7b7dd58f74289d97fd256e64f9294544470627d48d1f47ff3dfe257a07e5709db7333052b681cb6e73287ab340edbeb2b5310e14a68b2d409b5c95e7ccdd5223672b889c59d6bd19047d2b6df22466ca86bd137eb9342f5d97c7abfbfdc2e2a70caa4f65a186ce24ace7d297bb0b6f49ebeb769f883f13e1235585891a7626143c14e2f87e7b5e1b56d492a67d719c6e02524088eb2831ab52efaacacd54931dc95a38f4d512a0e2759e7c2cac3286c3148fcb4a0727f6e3f5235ea56636b2c9c857312dce8b3c54558fd092405fffd70a659bd9c48ab10818c26bfb86fad65d4356a9bb50d84ad1017aea22c4e5e117606789525f629142e07307b251d187d13676d95eba226dcd2626e00917253e9cfc2511a9a81192a4082954f9e336defe7d996462d0357980c2df664e2b46fe73b4b3b3565305943e8adb7446e406447d5c9588b2ecfb7167e79f9f2d28ba5b9ef016878752c6e6305c893a4adb71c77f88b99a9e667918b3c1ac30565c06d4fee35830402b404044c77a51d3232cff8c09d6e6d01735d7d6e6219a75f037f44d3069f4b3ded0074c55b1db7cf8bb49b9eae817f25207a34e375d1b83bd4ab46f3d113a83e31e48ddbc38098ae4fdb66a8dc6d8aaa49c26e3034f52925e6280d97c2411c550b3d6b80421a370ab396c9b2481882163e4833d627374915691cb208dc17711eb0945080e8aa1153b64c08191bbcd08900c75d18839f42ed86879787174f5e826aa32d121f32324f9e317cd0db700b4c84821ccadda1ca4e56472114d61842991ee6f8f5b080cbd383865f334c39a6de301a85c385413ac7626d1c8284ffa68561ce825a6428b7509afbee0eeaf7ca10e19e6289ae7076ab98aedbe393a5e46a0701d3a9d23ae306cecf40e155f8b13356fdbfdd28bf849092882c270e1e011ad91bf17253731d24c396a17b48184c386548692ed8a1b2f96e64c3d6d380d80d8f4336bb87d55e050377b49f0b43f5e42ad35e9fe8c7e8b521a5d82be48206f862a0ddf0a35f8bdba1cc3512cce35b8ca0ef1f1cb3ed996dcf9a7560d79ad81bf725dae90846af0d67071a60d715c0803b30ee0c81a709fb5d18fb14ee802f792e18ed6d8fb61659d80528c860a321e808769a00e04d5a14288b6800af5a0273288469f2f57a9c115e8a4bc96fd47e2cded41794d3f3702f00d7f4ba1d5603d437115d3a10fb15f3889d74de9610bbdb991264767c356e25b7016e97a804f11ea9e71851c7c698cdc6f3c7a8c9851bed8010a667e50f109a1112483b0437fe0121f70f6ed790d7418afa3fee0e0f73d7d35ccdffd02d43c67a8f079af3a79d6565ca92d5ecde4ce73d59a3169c0056182676932aee1026f1e90fd580237894fb98001d3e2b5d5d53dfb41f19cf30b7b49d3596e2a16a27f80b26f6fd44f037e1e0cd713167e933a36b6be46131201f123330cc01dc4582511c3810c801c0db5a41d60aceb86aafb4a888e246eff4a9dc20f041a4c2374ba768d1ae2bbbfdb92ffd0b9f4b26e3cea2bf51c0579278f6d49cf10e97e9215fcb3bcc321c31954362192a201d90c3584f05a9828023bf5dbfae159edb35247ecfa87ae1e65dcf32e4f990219671468bd22d31b34d6e4a7d58cc7fbedebaeecdbce1d60549531de44db20c11c3e550bb17129c0db3a6ced644c98e7865d2c78993b1d290a7372f6f0fe8a8fb58f77061ef2e933285bacb178156658e09eca46eec2927536d267ab8386699fc684fc391cf93854312bce969ada8c59a52bebb126122712c2cbbab48d206e37fce9626e0c96df8fddbca53e64259c50756d3cb45777880886d41595414c0c829054e8d5f14ae9e49a56da1fbe2d711a12c07d331edc88248a5a7ea69a48301399211a3aa951cf367a5b16279bdd854739af5e7b8438aa54f15613b42ee1c4e439ecfe3e1709a25cd099f7668b7e5c871a4fbf21311aeb70a29ffc7db862c32080b00a5843b70c856890ed84bec82e221df3899a845d92325044d3fcc7026432a5befd6d3b75613aef9ac265857f16149bd959722cd334d2daffec34abdbc37043b577da22fae68f874455656c791bcb54e701eb5d4ee102fcaebf19dd810e8795de4e7a4ffbb7fe50addd97f4ea09ff1277f67c70212db18f8b1a820f1e38b1922e0a0ba4b426011b6038ad980fba253f1278a4a2a5f8ab9bc21083e9020751506d11d75be34e2dec26bc65296fff814c2612ffe0119389918ddf15e7f380ad1c0d6117dedb680d9aa31fd44dee1c4bfe27c554c8138212a424156dc5ec802cae7ac999086d4018c9677707ec0d43e647d293770d497101580b771ab295418d4a1e68d0ab5802db458e8d00ce4a096599db16a4ba897aa161f9349648aa3f32cb6aa006de0ba36b1cc5cd5b13d82b5f879fef5f48daa900efb6a6a057e42e746285bbd84ccdf5a3ac90939632c1a4da88ebb4784baad4d6e74bad20eb54eed00e758c34d275556810204fe0fe708c3b69725b52cdda6c598f61fa58854e70ee011040d81dca10762456321f5035c2d52bd7bbc086656fc43b5e6f3d9e8f93cbbb0e8add9b677df9d3eb95042287a768d17a5f318cd4ae66d138d0d125d5bf85cd9463d5bf312c64428b62d742612992cda36e6b6eb701192606248488a6f2be06a5b722e5bd73281907400e5b0857f1e2e36c9ba757b6bdb762735e97f7e72f0cdfedb31ef383164059b686cae6d0884dac12e4475d4cf5ed2ecf15192224f4d2adcfd94492b72a7f9934d4ac696f2b34a3c6da38f4ca1eadbb1334c245b1c06f98db4cbc57c2a0ce84474d7af5dc3b5a76d9e8eb3bd574434a596471e907026ce42867936c684c3feb2e09aebd6703ee0d921695b88008b71770e764437159fee9c570178dd38f16e64eade876d8930541a29b253ee2797fc63cc4867ed8eb0d4330daa9c6a159555d5e14ca8844480056d0b03a95e1fe634b6787d4c9a790f3f5a250f8a5b13f5ccdf7c509c095f62049774eaa77b86f87b9d346c1b063606767d6e6c1472b6c526d5b0c1b561b4ca66dbf723f7eb7df10cb7c5d6b80b4001968012ac04da6c1be836967f4cf11ec5488d99866a88aeaef0aa8a5b5634efd083b5f25b1c380e67f8bc4c341f86200279ecadcc88984088109c64ba630f470332d807cd8d09ebebbb26685829566294c081fc0b34bc67503a4985bb3c83003a268f06ab313ce528c3843bb4a439a7e4732149ce9d7201923c9db39ffc835c373796788561435e0b757a9d1afb6d7e381b398855d8581858a5f9d9a96886138e88c3577a7ae46e6bd990ab1cfe58fbb461fd3c78580516566c2c7a76f5ed2093090c6a78926d4f6e54486ffd2c114e2ba1a36b5289d39ad62f2c9df350c52c6f3652fdd806aa5e0c1f1f3cc323133ad33bb7555cf40bbcb7ddb8b1bdb581dbf49053706c1b66cc0c67ef505cdce944c1f4cb25779f690eedef304b53c1763a7a0cc87c45fb4a4448dd4579e4566c19a32740e2e27c234fd34ae91cf8bfa12194c0c20b6348b18d6e11a2d210723252a447e7f4721a54975fced0aca681bac838416b58bae1351d075e63a248c2672cbaa1294d67aedd53b0e809d93bffdbe63a2f54a67399dc6f6c6ed954093ade6df3b3f65c14bd0c7d8e3f293b6f672bc560db305fa63efec5b217db0bb04d82ac360a2e76bd5f9b7a30aea1afeda32f18968ef909b0a96a5ba97e5b5c9e59e10c44865e5b109fb7c75fec26c68e0726f6c35b35bd83a3149b894f06a39bbe58a0bc09d1584ca06ab668069b8f83c04bd436266410eac21209e4933210f05a3d4b484a9546da3718eac27d2959d746df6155bc3613f04ab717e37653a5c7dae8f541b741236d3438df3a63429d60a361b198a0a033ac28198fa525bca31958fbed2fe90080637d02939f9d79723240b5b505bebc170bd8dbfa8a10098991023f07b432cfb3d955c6af3cce409d79d81058c207424e274f24a12d5bfb6ab72d03c1caa6b5255d30dd3ab27c890e1aa16887f1b09eea6808789e35f8013c47026e61cc60db3c633fb43608a7bf6d25bd6c04bbce5c5b5f9285d060b1aafb6f21108cd8d0accdfbb0a6ed43531fda608731be770b2d4c311748495c884a79eadb8d2c02be0f7855a8a77a56b69dc53ec5c4f163961b9aacdc21293f204e400b0b2a6bcba06cb595b03bd3bcd556ed479546ee2d83c1b36bb146565b0986331cd4655746197204d6a6b138f94b2923351de43485596dac33cac8618d73b5856ccd5a8d494ce97f5ebdd874a3c7c6556dbf8c37d10e6ec9b03aad0348666113de16ff0a0a22624f4bdc96a49ca6134689f1894bfcf0b4215d7686278678c8c904598f9ed0d316f56bb3864e02c536de1a75b0ae0d8f3e0608c4ee87765ec0be7f0a86d94648de49185dfc83c7a2c536d413aee30f4c32d6860cc006495b1f7e007c774d22a9d69ed4ee20bd76a019d39659d77884f4b4e4d27f8dc75d7ad8bb13b5c2634875d5c6c7314f1b8d2b0fc25605ff0b9ddd9a11bcca4390b80d0a089a7cc45004ca8861e6e76d252cc33f0a036dfddac84cf7b1b6255040934dbd00247dfbff97958054c630e1c7b0a72cfd1a9cd5ac07df14d83497364dc682bc069ad9340a04c8c5446e2b5d2c7ae2edf588d8dc91582fb943f2080e5639dcae61c242439d5034a55282994b12c110a98d59ad4880a381a9ce0b9f1cb86a9ac46a50fa4acba581ee2e4c0733caca857a7a429fb73184a30c8b2bd58a6c42310ff57961f6a385866bc42bd3ee6b81262f1a4e902d9040b2ce9885d9ba940c8cbd2b4bc61bd247a4654dd501ba609417101a1d9db21d9d8f9260e6b11666fabbf69185ec2df37ec03c9d4b6fe241ccc62718280ace783690c978c2410cba06a5a6c97921261fd95ab00c36fa73f82b251a4f3408f1d09a6034c9b27c7293d108823e4d6a9a016a6cecb47a8ed8b80fc6587d9cfdd869399a5ea0ced26ea2096db0d76da54349496da8ab60a6b307a0f1d0c5a93ca0a02225c98d58201bdfcedc1d07f782534f582a45b02ad5e11ebf21b68fe81db4bc40704fb91ea284c34ff8dd64e35fa5a2488808c52700339a61bc5897e1199def402dd0d6c802f04e7dc04dd90c0000008014a84900065d906229f51a04d110c91d904bc842d1976424dbebce7c528ff62263c1f34e853f47b7febf00eacd0609b1f7e4d7b6e5eb1e2cffe915867c01d79e713328d6a1f8ff47f4260c20dd055bb18043794e4384a03c16e5489348b76d5f90b1142855d02cb4cc3b929a730ddd1fb162c076e109d61b70fb4c407194ddc396273d0492de9037161cc1ae3571bbe0721e5f479c228054690e8a86e2ded9880deb812b04f934374b64215a1c4dbdb73a254eb22e5ec531ca152d454fa2a9d0813d2f3ab985f3660b6f3bb2a4d132ff691cdcf22054aed7a4b97288504317d5a686634ed83a6895d7dcc73ddfaf734d2e3419af1605875aaa489bf71e302e231f959ec5f526a2e759855ec4d93f50de27d820a322a5ce076c0f426f372e491844cab22dc6eb4124da87e3120691011ea2c30266573ef05d0953204d93acbb821ee4dff5814d328d9d75c30d289ad655947fc855febc6c7eeaa5d13f4d82f9042427c328818ac3ed8150201dc17ced7220da055c53628c876ca7cd7469cf8cd5a5a242487437410828d017a64677eae9eee1481c4c7ef3f60ac0cf1dac792d8c0d2b5ceb47ca6e9cbbce3c674795e3e5f62b90271ca87eeeb067399a25ba43abac419002b7e2dc2950b0efc5f56acca3ccfcf8b98b4ffbdbe12f444427f25c54f4167edf126eee69d9dc351482dfb89dec9f88b4f14ba68048f1dd2d969a05d901674139aa6c96d6ae6267a8bbcb3d9c0ec867a90fe04a7017661c4484063dee0c50936c6f320d6dff73808e25f52f9695c3977d002a84ddb13f1a4598473a527703d9fa1f4980ba034c67333e6774eb581f2c2b24e79334226cebab7477f835e533f06116fe09a3ce7ce7cfa33716bc234f1d987d0c43ab854dc093c175c2829f649d90e17942538610c1899ba39888b46ababe77b49645e64731cba2f42446da7d151f6cf6537c987abfa90aeb7a06d3d4f57a7ab6d95d05f908ade27a223e6def2a556a32b563588911df7c0083c57a0efe2192649520f458c095e9612734d05f0bb0059315100165dbd4792c87de3f54bc4a195c2f80ec604f283cdd2d193b84d0231501345f37487ec3e785460a3dfdedc5a384690241eb4151230a98c7031750607b8e55553d3af78dad0f691b020605b63916fc445a5396f7ff551e738a2527e9a45881a0c7e4a3878e26feba8b70fc58f545e61a26a9daa59de5e35bbe1d2e5e5eb02c86a15bc1d82a29465dd0f759766cb6a5032eab0dd6c01e5a65f8a5d8a92f3d34c045b94953a755213e3cb4f58d7052563434dbb4839f70a606007c8085c731c7ccc25a6c7135ac478e0ecd5991d81ad49521e20fe2bd55d54d6be7714313354d4f47b5ca730733f40d8dac81030ae5d0ca289f9404b45843105e53a4fba695185a0916f5d42487c6eeba6be9032d243e850ddd2cbecd102a0e6d25740eb6204f7168c98269b77a1e1673fccb80b65ebba5bd6bf1f586b65b29e825e8d06a0eab2c7df02648b9a11128ac18f47b64ac0c275aef1ac6fba89bc6383b6c46fce81a5d2d46c995202d262092eb2e7b1bc2cc6db475f077db6bbce28d1610048064275d2cde1f65a361c4f664d7a4361b4e7f9d6b346d46ce29134892a11434658da69170afe738a612379f55aa4a94b9f5ad6aa6622570b9ed366ba5e3cc44fed6a3aa6a12c86f912fb68a6b3ca13a563db0833cabaa904ce256f3b2d5b8860785bdae921cf05a454d425c666e4cd414d1c8724333b652722fb1b738c542d45ad1a824b45418c9a91bb0965a2aec16242e38f389118a1e5534b169ef45f4a2018c18e9f604141fb8a7d975b7e43231ce0ae7130aed98bdcb3c85cfaa8e5c2704fa099ec8c46fdd908bace9cb6363d71b1d3069a6e7e3bdf3ae74459a8d778ce224240f9bda829262146df26fd3d709cddc802ec7cce4b8bd87668841b97fea4de6a7e44063ec552b51dcf03186668cde1524c34f0d0a9a3940687621d91c8cb201cd16accd88d8a7e7dbd549409923747768ca1e03eb0f17028b59172e3ade635a93f226b7c68e05fc8007ae714aa539db44f6a9988976dd8da51da226b3f52aa61b7204d1ed35046651bf11dc7244870836439f52251a9e1130df104b6ab4d18e3353b4c3c42e5a9035c3c51cb61207480404590828849a49e4d019fc2d5daac12d541da0ab9a5e4614f64bed3dc49dfdc6bbe86566a573a935906c2393663e9b973d4c6635e66afd8afc9626f0ffbfc2ec791c414990e42633c6c233fcfd25eac743d1c6cfb2c6a5630d394215a0535b7f3ac742c2db5167a1816120896efc6b1a2c71c298672c9b1128684bb0398aee00c811004b985846a42e8d0f456b8ee5488e54ac764cbcc43a8f1be3b5dd10940f90df66f8ef45cd901038a42bfc0029aa70b712ed9d45976689e860ac0118c5ebf07e3d40c60c6743935e7428e5c4abf4e87b4cee23984e415638233c005ea111bd99f717fdfcb7e3f9122ccc2ade5aae093a678a95c91ea21cd636cf72028b8280bf0f0449d26965f068551f892b8233e186ed774491086153e349373e448270377c272d400436c2cdcd14df3d983979e0a758815a99d3fbaf1456082b150a32c66f50c2b2b3c0e98d5601915b7eacfca7cf162339b8150fa01549a7cec882cb79466c73fd21d8824b32dadfa342127c09bf3cc0c46a7401af12a3038fc8561ed04de88ceae712c191d86e074af2b5fecda62e6f59fe7d85fac47421aaca61267efcaa55fb17871d3caf53210f98ab2218ff89fa9aaaff0bac71e31c803881f4678ed466f974f634d4373b455965f1663399163b52591790df42ee8eb8e58b8d4854c4b50bbdf2218854b30c455d10a585efbcf04ec2f55f1d43480cddc01a2a745ca3a93a5532f9c4ca41cf604b96c930ec26f31bb969336b130a7b914e7ed80c711c1189c3764a217b617e88845aed54347b4895247aa0a3257b6aa604f7c958b246769738cd4cd2ae48f9e56363ecbec42f854840151ac904a4ea4e8836e8243e995902d9e407e7f8e1579f91ab932a8b7f6e6560ffe8699129036876d91e1c955b332c6319d3b7d6c8d64971d3d42b8d4a85e170c3dd26ead393d19223000f19ab792d876f791eed22add9f32ddffa5fd1383462b17b01ce9352b512bbbf730ddefe494ca6f96ea49787df0ac9a2a1af0de94a4f6d3f9e2daf450cb6e8270380fa1371282b201ea802c26b66ff11033f18606ad731ff76d1e51cceb97ef6fa702fa30ecc387513448f21144e480b8e4a6299c8ad6fdf48d81ece1e468751844045cb9f0a2c5635462ddf6e06a725f0a2087f3d9771b9c055570a42f0455ad469370c9ee7faebdf82b1e9ac3c97ec74be1dbe7b3b79ecf1506756478ee7d2a2007e493f4818969c0b05057ad617a96240c0a2e206684223fd9dcb6d13ebb25bd1eb69f4330978ae23c106fe95cfee5cbd4fffb00d5aec01704e76f2759970cbe83c1a3cea09e29d078669fa513c97e4fa062670d3a2527c4ade2060308520e084b7e63fcb21a9922780eba005a9c0dc3b1afcaca637d152b9c776d4555ce01280b42c3c4609b6b3e9edd705993f51bd3201753fa62076f5dbddb5a6dd30c362a0987906c030605affb56f2a79bfd6f114d6f1edef1fdd1a9141dd11d5ca07988d19d434a81e47541bd1d7a18ca227365197bbf15623f564975a3d1c51cdf12c85f2e7bbd8b782a43890e66e043da2ba3533f4cd13eec7199ccd50fbd879ef826182ef812a24cb24a9acc46b320e3068a783a1a8577ac5231c1aaba2bd0c43cf31261e7e1c6c73a9e65252ecb5174504be9d0c8d4689f7267c35c034701e4aaa67466018431f0c6fa166354ce001ac738f1466ca02c03cf4e534fd59e0227cad06659fe4819ec1fbd627d23732c710210c1a48d681a9163214882e6a4e93a546b127f36e72b9f1aaddce250977d3df72ec54aa05aee3c1e7cb275f64d5473f3f71ec4d13f10444bb9e8045af21c87036e4c1d41c24636e79f5fad6216e19b5e1e57de7c19ec63d67d5eecc25f31c6617ee31b17dd5c30c8ffaf031b39f78f937f3ae830131a6d19d79b5838555b24d2bdff6b41784d531bc180f7777b08d6628ff0e76fa2f45aa9d8c9ef90651f0921a8b4fc87c1d32871d07a58ec4fb971aa50038d85bb944cae85700fe855aa7510495ef0d124b8525703027558b1193050b552c2c99eebfd59dd8d4bd57a2c1fe4fa975fd6b033c132f83a5e6fa513fa02ac124fd203cc7cb9eaada9e4bfa51b154aef9735f842cabafd4bb5e2d095f41d27b530a902805b004afb562a0ce1a446c8081662ba8dabc3ee9519a04f80851f9db6c4cc65b5e67b8ac22ac78c05199ececdc299d4c5f066d5315b5e47a39517ba61c755f931ae29aa6441d51f0ff4f92138f0bd3e7cf36e041aa02b232d3a5662ba00c4e0557dbc37a842bdcfb5581dac5cf88b0a46dcbbe90c057df1b4d9b8fa6629e2bfaa3308ea9f93cbe4e51d042c12b3648879acaa9f828bd5122a1431b1307a906cc03c3955567c0aebb7681ae30192ad27c0c18c9b12780eff7d3d1482c8239da2d210f3b1830518542d82b2d602896cb897ddfe2320f8f4e4ce0ab9c3685300d9a3d6e2746fa15409e2fea58754db5a38d43f9731290d0bc7793ec2f08805f9cb25da2553ee40030a11cd03130f918ccdc6c92dbc9846f8f21edcfd9ff952ae2bd8afc1c26118c22222a99039e86d8f1fe2f82318ecd4b331e3045facc51cdff65361abed0e74b4032ff97ee851c8fd6b3842ee1f7c7fc5f9cccd0d89d820af600ddff62b57b21966aadf6a1d72c85792a44a6d89901e77f6d135404616bbd0a7e5773a929422707c1c8fcaf5b5a4640d77f7d25eed9f27839204023b6580c8e9d2d4d2196cfb2dec4b30ebcb8442a328a80b3c7cd014db1b3a9babd8c0fcb495a7deda59d60d09fff222c90d67ccc266c39c49ef6fd2b569bf86eda094647587ec2aa667efffd6b58eefcd75a522601ec74165cdc2b225e03d3bfa28ef34d15e33972c4f72ff6c0810474759e1df6b25e500c7f2193c73a477faa1a22da8a32ad8a1d76a5f7e5beddbfaaaa4f0bf14fa48e7d9969d1bf069d2191d476544c9518fc64e66f26b656b9f84026f8969a7816de4f33f053041b223c4d5508a69611299b7de4a6d6508c4928f1a1d269d305fd2f7fc2c71e2aa2c8ff92ec4ab6ec844277534123e1b76d16380a2f5d3ba06b3d2182967ee330168e6423d44c6635ef273bc8096a720b9214292396236046cd89b7eb4279cc0d8b0bf9af8446d12bf743bc6b057eafbf083f7e6cf767f57eeee3d039a60b663eadbb3bc46eac7752fc96cc44390831b72c562ec57f2532c6e18b458c3f1665f98a274f628b06fb6c58636a5589f8af8457922a323508bcbe00ae07faf37c4df9376071cd737d0aa4c07ea9e1d7d7f8ea40bcf61e1fa137b13ee34c87cb4898380844bab9e7a00af86be488ca1edc925346663239385ba2eca0b0cd1d75fa9ef866e11538d8b90771a18b36ab2a9091df3cf86e0a184b1e5be6576a070fbeea165ca109c0534e93f572116dda8ebbfeaa33527f2ce766de0278e90593c88016e086e689a6e407d87a9068b392f2328353e0b9fc9b8407aacabb566e820fd2c35be94cb1e1a36bd72602dc5794cbca440baa24d5d9341a8854a072adec749bd5872986020cb405eee6c4050f53201e59493ae93918fa9363add0d493fdc9693f07283decd055cf96c91658aee5dfec64f2651dc96ab49ecaa89ea3d9fb0ebc4c7bf515a4067ada2beda168e47bf33c1a471b636baded463621841042c8de72ef1d0fe50eb50effecafbb4458363381b9ebd172d8a3c671d8afc78d7b73dc85693737e703777d78fbe0037795da5a6fc11dd6e6de5c8b73f1a5120739697b58d7ac3cec55a665da35efd26e87d76ed69fa65dda3c7fd0d19dfd69b7f4d375694a4d674a37dfc4c88dc531cb72487d984a16cdd9696cfaa763d86d7cddf418657704df63daafcd8ed92caf7a531e1167b748c4d7a975d3e3219dc1569637c777e0065f19c98c766dfce8986df9c86626b077331338fe74ca37a592e9ede20a6c13b1a985adb8c5661b7cbacae623f874169b273e9d85cd48f0e990cea860938cfe4e475997958c0b351fab9cecc964ebc90d3537a4353258f6a462bf4e6de4e180c42a1fd6b56b8798b6a1d26bc76e5c129db0a25a4ba8109ed7ee7c52ad29f0fcd5940dbd2305e726c2d9ad8bd9785d9c768dd21c1d202240c010ce2522adaecfebdae8afbea98c248233e6bba808d31f35220dfad18591c6e8d77548e9e8c627ae1b79ae9b496f467265ffe678d58834ae5f78b4d1c7b4ec7c5daea1664904b194445cde3ea9cce8aa7c681fbd87f6d1e837f8b279e2ebbae42e9bc6ddad1169902e6dfdd656343d84396a8c3031fae8ba59fbe85ca44438c1d3df9450f0cc728a24ea55b422469e199be01965945ec95b44caa15e41e995267bfa9b1f59d9a4bfc634a699dc43aad952cd36568e137aa515b2a86fcce717d8ba2cea55e6dee7386bb9739744fdd5117767aa723793ae2cea6fbeafb4a2bf592f84a3d1682489a41572b6a0093c4dc0a3472a33bab166989bb1bf30055b145bdeb92bb617aa5c129f440173403cbb67cfd1e84e38e3aa78c0195aaa57f3d739edd252fdcdeb22722d1171490e65ab97600d12cd737d1bc71ac019f3540d55d563aa661ae71b158f89e56c0cf1e8b989e839cca64e4d2a364f67b28f629adaa95d94a85ecf720a9e728aac9f24ec231eef937e769fdcf6199d7802cf570bfb4b438db75a492f69a2b6a28bfad3c650b3e7deb9b44d3b85b48647c4f432de54f9a0e95f8778149d884fc49e26fdf9d808457cd2df8c4b20beb426ea6f76d16d2bfa9ba753a8f116ccaaa81676f558718995aa1206fe4c1e176d4308fd83fb59964a91220c7caef003289dd32bf8042856c0dc9a102ac93084f0b266e3c822994acd253295fdce9b5335a6e6532923a213fd451e79234f23a11e1f3bf144ca89aa04c280b8881f2481302096392204a7084d2165fd4528fd75ce24246138bdca7108c33aa77562d194de6927baa795344f37b9641cea558e4f2251af723f8951a21547b2acd6294537df5c26d963d0cf14fd758e4ba2e8d57b9a0638479f254bfa67448363197bc6640cbb856133bebba5ec56220938d4492821a790be42f4271faf8dfe641241b90e017265ccb25a9f44d0905e09919740e04fcc7160d0055c83c690e12cac2067ee00f7616fe064d123c88e2eb8ac6959dd04155278820a1f9eb67c9c8086226b1e015b6e0e453f311b820e2b0ce16707076b843f5ddf37fad1b6644548f5d7d25f116a0f3df1e34477775b96d556cfbeec9652c64f582d6be2e84fc6398388993f48986680dbf37c06a1a66952ce39e79c9093dad4344d7b863dcf6fdccc6076e5cc3672de2ab1705dd725a798b1af2c883c2763b7771dc70d42c6b2643716253622081a8280c4235f0ca257d8951dadb6105b4240dc77c67855337d8b481c84a6f1e0e1670f2cc87a052196cab0cbcab02986fa625d28a33f18e3d71fbc66942efd4dd93d724a999aed53051c212ce5ccd9900938e872cba5bfaf6fc4cc0a555608a18c54a842b690fe2491fea43cd237e4739cf4106a864544e48f28d137e4db2621458d871287065c27b52e93dbfc76fddaa6a581b031ec3dfad835b74fbb6d9a9459a7853ab3cbca719269cfa2a8f0d7f3973b7083bb771cbc75ccd2c05be7a0c5e6e57bcccb9b6d1a6337c3178937d8e20eb9fbf2f517a70c0bb13442d56ed4b931e7eb43488550e7fbf91b43a51f65d21a43f55e332a2ac4a97664714818f15eb4b07b049c11af1b75628e1415e6881377babe885a5a362d74514b93b14fec96d559efe4ac5866bab46f92be765dedbafa18596d963c345cf5baeeb5d27ababd467af41cf75af29e49db655db6ca297e6b953edd5ce9b7365debb1746d1a773777e066e4d16eb3b20591c6764ffdf9e0eeed30b68518639665d9e54e36b34c2ae1b62ccb32d4cddee57377fa4b987a6c6623956c4525fbc994bd8eb2126a662c6ccaae5c276975e45d8eda349e5c141aceb2b6ab3d6bb33b3526052930101866610b4bb00e8e2cc0300b5a903233b4e81ddd2061229ae84d3c344c606ab3c99427a618d54eb1db34ce4cd16a5b9e78e5967623eb4d266aa2266aa2a6c7481335bd5a1acf4432994cafb48e1ed3249b99c034f5dee991da58f8baa51d8bd85946a65399ba39c313756569e5da34be2ced317bc454ae4de351bdf77cba368d4d37c7f892255d9bc6f58ee8764fd50787b79baf6bb79f619775b325f2ba4de351773b197687301a88219d91351263d967fc287e34badc891f491e9ce5a7a5b10e25a6230c939fd8a75c326f8dc471de7a4c8f0e0f47175e5a7002d7c0300b5920d242949116aad04213cc7517e9c85e367bfce823cfc2d865fde893f6a0c16e8e9485450a352f6de45f2271da6905f59b5318bba69b627112cbb5694c3fbab9a3e0ebdc592c8b14ea66ef7277bb5a7669e25b205bd0c91f95d6a4904ab01498e3e2cd4870e9d4d6d71b23a985fdd197ac9476e590961ed3f57227ea90af592a91a79ee77924d2a9a42492adf52452ada4d75f54a6c64892ad97b5bea94ce5a85d79c972370fc99d95954b25bda2322b375629c58a95a5123785d45a6fb6b1703d8d82e98548986b1976d982a8a364236e2a436f0ff5475fe963fa122646c5349295faa0d2d05b3f2c9c84f7be10256e708d520991233736b2059146959cf7487b8ceebdb311c3d3c82a916ebddd3d3bba904c88769861f770271f7b9bb20552095e895d095c5a9ec0218a4bec827cb12c6b7677a76a9547484d2a7349797536903879088315f484f504ca79d823615c2b287b476bc7b445b2cccecccada2d6f667b87d5236120ced6b41477773338430581b82363925d78ad81bb36edbaaecd429961d867965918663d83514a2963949089bec15a4a415ed835a7b42c4b66593c2633293119afd8f208218290ab18d39f3c0e793b95b26e4c10d10738e661073803c229e1e0861d3b76d31cd45c719770709770704cc34979baa30cacc7cae4ba998431e5ed8e27e0201e45fcfeac0824a62506e0e5e527b4130717e0a08b8c971619ea17af0bc54191173bbd0387e65284fb40248cfcc1c1c16962471f47af20c4029429705f01462441a461f7312dbab84871b902370e59f2a1a42938979e505bf291307a9470f0bcf938c618f30b8e38702ef94818d3752965d9a856efbab8f8e026d95a8960ed2e4112c62573d95c5c82706b1c66e1f78202383eda6c3176ed660be0483797a2cca5c8b356c6cb843eda4fc2d018795e709dd9804bf188b854b3ac56792232cb2004c213cfcf3701031dce985a1dea9c32eec880832e2b3507fe60481b2706515a07f1870a3290c20e1e62b2dfece80b811d3ec8e145e2645e24372fcf6aead94be32c1102b66ec681fb8dc99ec275d84d0ba55586aa7a8c5167046f592a839a2b7e8572ee182161b89fb38fd9e55f244c762384d14fd5ad65f7218470ce39318965369b1876f375b37b3cf1f1c4abda1f3c8e3858097ac58113911396875618c20f969746d21f3e54e049435face60cbfc4397059af60129665855877c26e39678cd3ba3dbb6315524af9989ed288eeeecbdb234c33ef2daa11c2ee77df2c0bc1cb1535a7eef2c95001d10e7190c6d9b1f5339a6c87f6cce69000c70eed62d7c9766c37e32e1d1c3bb26f368704d98eec3a387668dfa1d9eb99c56a5258e6a009fe2ec30577608427b43518969766560ca90f98060c2f13953c12f8b3c303d73d80cd4340ee610f7df9eb51052f10ecf23600eec02e94302080801dd78b24433774c9147231c332c8f30308832de9e1b0251206f3c17e7e0057d813e0b704530161b4943d7c240cdd9130ba5718507fbdc2aa003f8ceec46c0dc154e17d0ca85730082009238330a05ec9208c0a0cc8aac1f0bc16609632487601c264ef20487b44b9235900612e16b0400632c0010e7ad0032108010939934139bb84e08cc66450a43c21e0e04b75c9ddcf1321f4000732f89987f1fab4a44923ff6379b3ccbcc4707013211041ce084850021d139c00054952a08215ecb0a0052e50f20218c460890c66400327b24cbc580da455c58bd900ce688add00cec0706496d58a837b0a10461f0bd50b29325c0d171cae2957e02ca7903f520a09d4f35e40180e8663fd743f991c54865e9af021e14248551c649205f0e7e2a084d1b2acd654eaffbe176d47db9130232f40187d35f0c0616407cda736a13da926d07eea8e26852e28a80baa02bb23a1ba244846415a95a7bf25f15627e48fcad0d544cc62c70b9fa4c8041006421cc01e40213416204c7b019301871a70c001871d7004c11caac3b70c200c91c641f7a0a885d048e826c01c2c648030b1a7470d3d70e8b1434f37d1d326e8491d3ef600c2c4a1a128042434610a43588039581cbe06c27406ed509b489920b220ca8008cc810a0a3a02c27414f802401d1d2508b8aa704582ab128440e0ea3202ae56728c601341a22b1acbb46dc5bda39e8ebea2a59cd3bab04cd3b68de3ba8e4e4a6547da51cf1b8d6a25914ab354921d4b95542a994ca7938acaca5c59911d572e9c938acaca0a0a954ab1982c58c88e2c32cffa6549322abfecca256548bf6ce9f3dcecac91ca0a9541751195ea9a724fb16061514d954a7654659ef5da9d436db889fa0a3d448ab1e89ad277d63b0bda23e2ee1c4b27297716553769f6ce6a57d11e116354867b0bed11f1760eb6982d5ac88e2d32cf3a0b164d24612e9c5ce78aca75329548b5833aca55849329b98a2e148ebc8aa62a48c2609813d813419794fea65c81939304dbe90fe70a019c31797ac9e4c94ea4111c708aaea2a2a2a222159c9513c974d538f268c76d5a86f128d949327360b5582261ae1de9e3c383f5441a0d330d163aa8a25451515151d185f3915cb4b8705a2e1c55eac261b970ac1d1fe93379b09e4ce3a80fd6cecececececee4e1e1e1e1e1f1b99e5840b18745515151515191b563ed583b2c74503c3c3e3e3ed7930cc802eae8c864638f849953280a1111212a2a82c3e4292a2a2a2a2a02c0e5f9483c3fb0983c2e5adcc93379260f0b163aa84c680a59404444a4d289050044248cf4f1f1f1c17a7a7a7aa69090d09225444444383870e0801bb343aa09dc26d8c15d0407e9535454545454d4227da48ff4913e291629c94207d501b606b3917874ceeb3c2f6a9e8d2cc0d423c2bb34da33ccbd07c4a65b83e1f8d22d2231776b30bc7d645533c7f1df1e4936c334e42212c725b26fbfec1235188e3767c75e7304d36cd746b25ce73b5844262c57e73b580ee10cee1c13169ea7592dc76fa72329bb33cc11733cfd085219edaa66386d46f79a0edc60ed9176671959247147c270028394de234a0cd149b2e18b145980e3cd3de08bc834e0f90c89b25b83a96632ac811829a4bf89bb0bf34524beee10372248a5eb1a38e81263533d540b2708c28e45431062effb83061f5c000c7f86867043d15ffc910288e6a1c67a5ab2a47de2bb4909769bed26dcb543daa39f88bd22029f23a6b7799ee8ef8a9a9b073ec298eb2dd5d123ac9dd33acfa2a8dc4727916e22d1c05269a6fbf61edd375369c459d2374b22ddd6b18d331addcee19e1b077a17ab2b37a77f4a80b30e52b9f4e6ac83bffa505e6b9e8a4f3677d0e535050a75f6a07691a93b24d47323cb39219d564ca14c7675f7363b22d99a88e98433ba43fa633bb491361359e9beb2d26d6f7b9d524145ddb66e7bfc26314deadb31968bea3a1b9975de0d3ec76d96f3386f6362a69e72f73ace23d21d360ccb111cbdcb79b6a3dd29d79d728f2a1e1ea5db27cca1729b63b4912c2825917a24635e82080eb6912c6a2256b1912a76c219929ef3e83bcff38ebcdef33ccff33ccf7b8cf484789ed7754fd5aebb5df718c9bdb3b4eb4ebdee54561d8eb3296fe5a99bbdee2b2b47562c5d5959a1b6e3248c08e20e27a48efe92ddbd5f96deae9eebbacc939d3723cb47300ce4ba2ef36ece50b626e2096764ef582c6c181c8787dc811bcc3dde7becee590867745d67617fd946e25824e2c88da81cd9ebf4a292a32a3a922b1c47da3693f43a4f7a2fadd8d355ace9949ace9d4c92e479dde129f5461eee2025620038fe0e765869162470f13668075504ed200c734e2a63593b20ca30a4020cba0067cedb4681b7879a28da2682b706c353a626469cf58d15e793cd07f5497f52f2c82cab3595fabf6f0a31a55e37d55f1daa2743a70c7c4c4b1e999359996447895c326ba74387da5dd973e513740ed5dbaeb5859b94492e9d0ba7bf2ba73f695d6149e9cf9a62d126d5ba356db6694ec3aecb3a473dabd110d39d8de76c5b81b36f49a4d45c31c44d65fad90bae3c3be42f03e680585ad3b2a6f5126359ed7345117eb1ac26f07c91cd3559d2447809e62692f8787fc88e6a8f9665599676736cfa83c3d6e538cbba1563a465e3b518b9ce6237c76d43c3f626dab6255bd7351a624cc558158b862ecbe2a9776566a7ecac2be61429a58b22ce6e8c1067b789b6bc65f15d0ab5327a4cdd0c45bacaa9749a1db56dd9e9a64baad7c2168df589e3a5f12c3cdf68883ab64bc33d5ed3b47397c6ba85ad26c259a321d2c83a196d774b46e5399b2a9d2624cb366b7e469c8b63ddc774d63d84869836754d4211f08647088b66d1c4fc4b8c31ced948c8320e6a70fe9b96eb8c1747dfcfc54650901f203f461c1173797f6cc4bce0f89c82970cb8f81ff05a8d4ca49987f292b1e2b3ab002182c0012f2f6fbe8937067fd8083a05996532c68edddddddddd1dfb3682c01de36c1977a8209fbb18a53f39d49fecbe9570ee520e220c792a735d53ba4d6b1e0943722e523e4a219b475e665536c5dd6d9ec6019c214fe3d038398b3f435ea294382542171f2d4fe06006dcb1284e91df8135afa8735d97d551a757f9dbe9557c4c1295cc19fb5f77879590436460eb734a251c1675244c96d51ab7d80324482ad5d340660e31905e5d375f413e80af19617bd98d4062bf31905ee588c51b7184106b5e325039900204dcdd97033270900ea6bb2f12467c0cc2891acca088eb2d092f2f26ae7492c73d5299d2cd139790e0ee66f64463aab574273c598849d714b94837d4318cc561ea2a2c5775a5739d35bd64b9f85acf52df5924970feea53b527577e6f4eedeebe9dd4fdecda7972ce7bd744be7b0ae64b9c3d34d1ce9ce9c6efaa9b3a67b369f0ee949f4d5e62eeb4834d77a6d3a335d1a7ad2a56179b569dc5d4ea5125f595894aebdde9c525159b9565a39b68295ded919893b13c6bd4abc72330830764d663b564d376b5809855dd43514aa54ba99d36ce997b589182b61d7308cfbd6bd64b79fbc1538ba249b3353e99074337bbac952483aa43f607769b673a5157bea4aa69f4ea7afac7c74ba4ac7712f916eb239cb4770cbabe92d16360c15d2caabcddee7ca2d122156b1b0bb34a573f15ce91cc4f49de532f70edce0d23bae5ad33b9b91e0ee273b63aa3c4a27952cc49b77eba47bb7b3f15a165fb165b38d64698f0eddaf3cf30d1e71165e96b374a3d58ece59c8c4631a42fa8374e976bb18797140e5a6201e293077952a386e1261baca2dcb457bbded76ea849a65a74ea8f2db8b48d5ccf5f82b3ebbd9f4228d6950dfcec1d318bf9de34143bd775df63cfacd7af0147a908999faaede3b9c94f398c0f4080f1aee10d7119211a45e3cb51c4d77eeb60337b87b772a53bac7bd3b54f1a08787389eeb6c8ef5763637ee0edf24528f6e8e312f710407db34eec00dde1e6b98c0f52bb626e2ca2376e0066f379ef493775533f5dbeba581a7df2e4d770e09a548703d94b329bd7986d2888333919b234eb42cbd39e2606b8e489ced64d64bdcfce3e2e6b71a24587bbeb1dd9ddf34eece43aaf5e0ded16877538d6e7dbb6655a36fd71ed34bccd0c38fee0cf7eedbf30d0ede6e91c6db4c9683b74be35914ee2cb410d38883238de92a47dd4caff2a633a6ab5caf9b8aed54ae6291e0ec9d55cd70379dbb89070a98810a836e2005c75f3f5470bc34578c90c4753723a13f2af778d93cf1e8e69bf8cdb319098616c2095418748328dcec4c96335d8bfeb80efba3984d67bf2ee90fecb4e98fedd22f9e6694c2a1c6eb5adc5e69ba5f178cf5e6c6f5dc377b5da95fd7b7a72c6c181b7c3d82bb17a9f939e24ea63bb5aaeba499d155d7ebbd997aaf3b47f228fdc8a35c67737d1ebdfb6655f5ceac5c357a3de9aad19da927a1a855d18f4efa6555a6977e9d435995afd8d3bb6eb32a47d9ed2b2a17feb47536d33ba372157d7df74cef7d6455f4ced4958f5eb2aaeea5d37324cba9d8d3e92b96bb0ae9e69bd385fdc125a2e9ce90aeeadedd99fa11bc77ae644727d9ee5eb55dc95e27d57bf34d477d0c00c70f91f8ba451ad3a21a0fadd337d45873dd7a66e1317b451cdf38a766b941500e9260161806e1e009cc8d9840e032118143e0fdc68910b0b06f649bc6dd236190cc1d461c1ece7af86c74f8ce3b7c0d72f893030e9f6ac0e15b187018c4e7b301be1d1ee03223c0fec6e16fe3f0380870f8206a1c3ea6747805980e2fc4e9f043a81c1e0890c307f97178238a38fc11441cc67c1ee26f873b2e0f1370edf0e5033814c0691cfec88cc3239181b39283d2492561b13384121d4b721c66ee0538cc0af8cc32df0e795c1ee61ed70e33108f7198bfc378f243140138cc2c87aac396c3c7297a955b1cd2e3387cac02e6305b5f1d3e4211e2f3f0314aaff2ccb7c3055c1e661fd70e1f8b7a955dfee2f0514aaff23d000e1fa7f870f878858bc3374e036c10212fc20241e239ec10477c65715823d81d605707b8d901af81809b81fc460348ab9a630807dc5ce30da815201551010b9c01421c10c4cd406e43880108208400a39b1b700708f1843080004284e468c0cd1e56e3a36b24ab275d231969e4bd011668c0cd41ce000b348001cf7152e3e6039c64817a33023eb200016a3cc78977f3e80d0872b37706dc01405e44058a08520107542088039ee304c8cd41bc880a18a002376c901ea4de01ff4101191448c0cd3f3e000a0029e2394e4a14305160881d0742811f37cb781114184069080a54e04420f123e666d36920816f1ee233ae910c8922fe0309248898814445224711379fb01d37d3b8ca3592c9f800ae914ca50245dc0ce44454a008229ee384c6cd3b3ea302326e4ec0552a704790e364868ce73839dd7c7a11406e563911ff61ca86c84a388050e007901fcf7162ba39e625fc1c1418008dd28198fee33a563c6e7ec003708d643d625c23d9739caca024a023478cf318e21aa93c74e4a0c00b70840e051c217333ea3f5c23d9112b39aee388230aa0809b61fc87235047ace4b83985c5388b6b240bc0795c23198b6ba4cb71f3102f0005721480c77fa0c0cd3dce82027704394e7e08c0739ca46e4e3dc71037b37801ae03c6cd3150198c151c1f62751dd74837848ee7388971b3020ee31aa9a89b65be728dd418309ee304c7cd2b1fe266d4751cc6c22ce0e607dcc53592f958c00b1898af56cf71f2809b7d7c012f16f0806b04c337e3f84a028fd60886994c0006001398b91900f761022f7c581d6602f1c5040070f38bfb708dd409006075730be6e3e699b790808b2fe01ac95a486075b3eaf11ae9563337fb20812fc0c5cd2d24704790e3c4871c272d37b77cd5e2f13e0e738d6098894a883fe01ac9301308bc3800ae916c46758d74980904705c231d0e98e73811e2e619085c889b01708d543c821c272f729cb0dccc721caa9b5587f9cc6364104bef00dbbd01d63a032c772096fe87ed5e84b54e84e53e84a5f761b52fc0cacfd8ed42d8f91e563b0f2b2f63b72bc0ce27c06adf61e5b1dd1e63e71160b51fc0ca1bc06e0fc2ceebb0dd7358eb05b0dc71587a18db7d65ad47cbfd86b5b7617f02d8eb352cf601d8171a56007187119f61afcbb0d863582060d8af7718f11fecf50058ec2faccb65028103c0de7b91c81d46dc1c27f6764f7ff0b79bf407ef83bdeec2626fd1a262619142ada89c4ca5cc6e98642f1434a1e80cb85a29832680dc804716ab82ce1786803d7b79a1092a48c13002d6493cb5ad633b497ff09c6d25ed443fd118047e592610b83e18de9a4b30bcb43c18da6820ca703741dad6416866de639cf316b6ac89ad5718862d402be068001cafe1f802c218d97a28eb9d7046bec11e0ecee62fa730762c3bc69667803155bee794cf435e3eab4a6b4a39a51df282a7a4e9cbbe31d6eec37e2b81832e79f2d4957fd7016a2acb6a4db9f40af595a70e0f1b4626f57c8353bf86acbc2911a9df2cc179e54320114eddb298e9ea112fee1a3da62f6bf1d06e3e3dd63031b235115b1866bf191d8eec152f4717766ab58f6c363abc97c6ba89fefae8ba37dfdce0ece6d32d938bc3da251fce914efa3b1b7f3d62a65ff5a55736f09431faf56891441f8f77863e5efe3a7d3ccdf42c8ec9e6b01ff4dae355a33b43af9d62f427ed627731d2a21d7923eb2eb44be37d7469eaafdb34bed8cda75b9ba70fd3af473a43b202366eee218c3a012cecafc669182aea39fbf1f172d85f8d9b3b0a463da33d5e5e44e226ea0ff501d8138654868606d4dfc4b05fd7900e6334585056a8d7639cc6312a43e31c0d1beb45a35f0ee975baae4de3979fa88ff872ae3b1ce31343fa7263d88e869d18bb9a368508047033123ce3dcc6e1e9833a34a50e5d87f3bc62084f962642bdca9f50af34202da857908a2b823428b9933e789e9b5d4f7fb36b82bb27f0ec9c90b96ec7d3df9c2d344fe7507f38ea39089e31049e71738c671958c67f3866b30d8cbdc843e0ebdc762d9b9d0e559abd9071738c63bf288feb319e59eb31128b6187d8c02abfec101bf83a1036e3c0a8c340ddc5e6885d8ed119956b63a8df7d7f73fe079487828abacbb3061404a4014d53006eaea7113d4b935eb91c62170bb10a04805d225e9b6d3625b7143ed8bce9e07917366f3d78be85cd11a7c5e6c8a3b239feb0d81c8758d8dc3829eba815ac62ad295348ce4f298433214c0302c24c3723dd9cd5d1e4c99ec87ab03be484adf7dcbe6d9204496480adebb2269e51f44a9bd8556113029daa5635214c1bd280b44fc268538030e6b1e00532e0f94fc2c01d1f0e3cf38781e08c9935a021ac83269619a1d2a1bac1cc1d915e87d407cb8f8e1e620d549cc18a3440210aba71b34c3eb1721eb981189c7008db6c7f2001a14024840891017ce1628c242141293d22eaf0e0d0d6759dd77deb3adbfd88a80309215426deb3a4e79bc86d76740a8f188db8d88d6c5324228dedb2f1669b4622ead8e8b64553b4f864739c747d239e1bf566a3256516492b9a287efb1142b86d7be6bedd0c87b28f3e5ff0a6bd747992bc597ed3e6b377ebe697914559a166377b25da8326fbc4a44b635deff3997bac77f4cc5d9bced3c2f148441ddaa599f74edfd48777918834e8bd368df3cdbc345976918834e276918834b6969666e7b31e9389c96461c388d94df6f4181923fb9ac5184422ea18c2a4e69270d0255b38456d4d29734adfe85fd77650f32cc25d34a7e4acb9307bc6ffe800f5ce92e621ca1d943b0847c3d899522484e38b748824ced014a1209cbaf593b31d219da0c6c143b18728fa14c527414f62505cd2b9837ca6f414f110ed08e904451c1cb38583516105c970f9972151ebec28e981e2a7c9932885124486348efe1a47cc27e3a557db63841142c2e89b87d808c233010e1c424818252804ba7a7b23c158892cab90286e8f3a2f2ff0d67d491bbdca567213c6f62eadb3f87eb92ffdc578a5356d9884ae50061ce39d1cb0816dd47a6b4b90d79bf4c19dd4c95179a43231ede9481c79af04a406ca36542d568a050eecd906b22d854782ea3d774a662d2a8e858db897ac3ccb6a6d96265c772cb6837806ed4481a118300c5ac11438d23a821899d40b6a863f3d4b1cd3e1298f142604dc203c59190796e76ce04c33fa7c77a8699fda5b8a9753e78b7a4a1ebdd68df2687cddd99f24bde2c0de2795f11ea5e82f6549af16e248eb0cfcd75fbd55af77f2f6a856c583be83d4d2a4c56e9681e5b539ba7c8ccc360d6dbeb926f648ef3eb279880cdc442ab7a3d098ae6a1e72b67f20d69e59d5fc54cdc35a21ac877648f7feda1341cd29dcd2ea4897646117f57b8a13ada5da09db4b9ac7089f76e1a550a857f407717274fa465fe2d8d6e96f09eeee91dd4be825a5bf963cf209d9e3a22f131f1ed35d24617ac887db9dfad73f32be0d3e8bd244e4d0a3e8afffd3f2a7eb6d17ddbf79dee823cfd2c8aad5fa1ef3f516f90d86d6bb66bd03f5f7d35f77dd6d29fa6b28712076b17a4ce2b40f2ef3d7e5953afdc99c10d4ccbab012a757d3099e5ef53491eff7935ea96427691ddca9cca7a5555c80439dd31f6c9ffe6043d11f7cd237e0717c7872f7ec484a2f938a030f2fbc751b585ed12b4a29fdd7abd1293cdd1ea7f407afe80f5e2aa9db3129fdc1a25e11e9e7884737167937474aaf96c9a7644409dbcbec101b8d537326ce4ee7502835370e8f8c53c8031a70ee1e0c77a0bca2e658149f883dfd833d81d4d2e2f0f0858b969d9fd7aa91386bb1a943fa1275ac7c5e2bd7cab5aecb5ed76362e465e7576cfc9c9c6553cf2ce9e68849a9b7fc25957a4caf5a9e7aa432a91b2b2cc25cec52b6e591ce70b846a461b5b039e21636709ed9a66b441d99356f8d48c37a760c7573d6c7b46eb3aa9841728a068a789bdffe7263bcdcfdfab63d7bdfa8a57d85b38173fc969d4bdd3c71a6df8eb23975ee661bf83aea2b166585aaa56edd15ecd2a4b4a39e6de0b9f2ecdd955ba346d491dd5b23d2b86876ac46a431b75b23d2d85ace691d89c482b2da1b47da43fb7c66b76c3e33816be21e70dbeb629f16f5a32ccb372b31c942dcc242acb5bc46d40171cb8d15fee0abe7392e9bcf47f0bc79ab8d5d273d667db3feac8be5d9d5c242dcc2022b8bc39a2a755f5939dd6e719bdd3e6d6fdb29ceb623bfe96c4ab624585adfac06a98ffebcaaecf39b2a3b766bbbf275d5396bde69fb1b16d3ddd99dc17abb66f37516d431d4b78bb2028b7357a44560dd66b5dfba366771487fa0be5d1ad4b14b43bfdd46e2edda488ca267790bdb944b7dbbb92546efa9156f65bbb5d2b7ae95fe76eb66105cddcaca76e1caec566ef7d48aede6cd5ccace9b560e6bea73e5a995af5c2ffd09eccf7c04671aeadc8c66dd7c037bbb98f6dadf6659e9358ceddb8ceda8acbf8da52f9991faf3ba3e31ccb2b4a350374f2dcb5699eadb3ccb315be4d24c1fa45fbf3e67fc95af77e086db6cdfb2f9c84c6ff35949fbe95966b9766d243e4b2c952a2e59d2532c562cc4279b95c02c2ca46bbb24249dcd916c089eb7b624b01293e56db9c97d92ce62dd1a8929a52eb84fb2f32416cc728ec5c63a5954a6ca5bc54ecc01976b629466a556ce23628bded36653db9cd37e2e32ce19d2553e585e7ae9d294ce72216efa8374b3feb22132beae64bba0fee4b727fa93df70566c2794b2dd5017c57628db59d19f7ccd9e6595f4cbfae94fceab497f1e0ba435322de711318683e56872cbb0cdecc19ee84fc394cc39b579e804162a0b8e6c71d975e9d8930da7575ca82a3f1dc39128396f4ee1c8292df66aa2b217142cf67a7245d19f3c0b7b45ea1dda4b7ee539657d56605945dd5c53a9ffdbee8633974c6cfb0b26845d3924a1f4b7592a36cb2bb0fcc9e6634d9698788a3cb277e94f12f527a3f407addb4139e1ec9c9d580a6d92485a11a56cdbb66d3812869cd3ba73bbf55f94feb8a197da82b9eee41096af59963debd57cf6ae572d18d21f2a1ff3db896057f9b0683218d3429c0f07457f5c13a21d1bac400a49a1b9e17439dbd9e4dc705854710067c0b94215aaf93fccd158def8ca0373402ae0f8acab7d233ecb42858f3867f89308f81a106048a5505fae3ba375fb9e84d367e0a00be712b929e794524a29a594524e292fa59cf0a7a7e4d178de18ef04596aee9800bab8a1c65b9f3743209aa9d416a91778ce396fa6d1c86be7e6339965d7eeccb26c66fd0d81969cd6b51d58717e4aa9078e83157637bc19043eb9831a080bb11b46f60f170f84536569597de95c3b9792abe782e2fab99a5c4fac297f7a957148a029520a39058e3082a0bb7b0e21d25f1541fdc59f496540e083adcf991b08cb5b764807e17925e94870694af4a79d48af668fde40bdaa1fcd8f2e1cd24143faf39aa85b0f252e1109a7e09851991a94093da13f610e5315caaa08aa33d39130aa9f7b77eae52fbf641caa7bc3042ccf8203078b9797d4f7a1fe95540a6edc56baa98bd4070270e9a62ea6bb74f38dbcd61772852481e4c7c4f26641bdaaa25742bdaa16900fcf892770a8b7834052e07ce9e42c08eb0849627bec6eae42fa8bc7db4da2bf983d6741385ea3db942e04db140d67db141d1c9518424476106e12245922efa9837012fdc55738742149cccbe4f47883dc984887e82f1e4710bdfa37032838a752fda3024cb31b53571d04ed4c8147e7384834c445e9cf3a94fe2cac3b664718e7c33d9c9aaf1df9a46f58c7b82afa13f241cd4d670bc64e18eb30f6d930d7ce3388dd3cc405b35c758e45656794a2b2b03ca6af1d0993350ceb2ce8614a4aba87ca05ddcc155d2e41b5385724a17040fd59973ed64ba9d3ff7d566a0f3eb871be762e9e8b8a3df4e04844e464c7598d87cef79425a692c984dd21eb26acc847c258974b24ccb5236158b76ae976d6e2e6cc85756ed25f3dfd59f472533829571d2a8b67ae0863d85dd23758ccb47c74a15e41e995752e4aafb45be7887a959d1bc5d1cd2d058fae711cc771dccda36b1c682938832009a6e14e23af7295739c15dba332a3ae02e70c6323ecdd86d1cb5d1e62c982b242cdb69137ba4cf7985e4206629864730fd5eca262f390866fb134d855570901317787a8ecc458974ea3d1310cc3543ec2546e3aa642851e7470bcc641ec66d55b1c5222542f227187d11fb1690fd35558e466d51c271b5cad3c73c7eee862d7747ac55d8bbb96d39ff591cd1a4e7f96f48133ac537a4ca3c7ba5b838d4eaf2ac3f41691188339e0c866c7acd4749cd4ace1489f6b389ace867d74ab7b1e8d461f5d4b7a35bad6a88eb45f4bfa5362b15fd62f197a63e5b89d6b8985dd0845bd9458a95bbf96f40a75eb76f5e196ea2c829cc02c70b04a47e7469dcd2da526e2223518e6e82f2a33bab988c41d0fef35710f3db6638fe9ec5a11cf66eeb6dc2212cbab80feb0ab6c4c7fd859ec10fd61b7a84c768550798c54b1a5b3d070328cb279621f6c0efc19c2d657ac0af64765b0abd8d24fd6646fe9ce1d8ca4e160d72cac5e4e86148c5d4be81cea88d2e78839e9e3edf46779ef2811dc47f75ad29f758e7623ef5e4afa3342bd052156ff4cc391d6c5aa0fcf99158fc0decdda3b22b8cb27fd4928fab34ea1603d4672d76f73220f0de0807db09b0bce6cd676b0f58861f158fc64e96721085266c4090a8215785e092230ea40a20ef7c8d32b5579eddabbe778effe877669e296e40d35479da853e38f30420370c63cc76db76c2e999e9d746e74ed351db89981715df7d83d768f9dd5eed9ec9dbeeb347a48bb5b8361cff38a401cb9aebb4d0d86b95b24c3dd8d49a21336ee442535dab5d168ec8e9d3e9eb4d92554ee3db33547f076ae8b5d87d12ed61ca1e996d8b6ed5954f9ca3d4b73e234bb44911a0c77af897bc035d1463573ec1d62efd214c970bc3109d638cd7bbc19098e29cd2e01e18c18d9e5eede5336dfd4442570c68c3b5d911a0cc714c019f33531099c310fa977e312948d3a5ea712368dad29d6c4f3f694fee4149897830a0523b2a28b7a35c507734eeb33eb25304a18258c4fe20fe6b2ccf3bc29fd59b149373171d4115327c8709c374a8133e4af380516a5e84f4681e513d89fec2c2cd438441818558a600e48050b0e30470722f63e9faf1358cf5708b07cf66cddc1eb41bd2ccb8314a33ade0e24e59165375e289ed741432e43bd920dc5f6d03f39bd9e9a2dab88cb7232557688bdcb16c252a8a10461794ba343dc601b4b5661a550df88bf3c6b1559527850b1d3c79efe6ce4e1bc8e488a287eb0fc131f28ae6829fdc97390ca2a64d085d3ab6915f5aab11c6a21283c4b9cc052894c2277b0bcb783cac4e51ca40d803f2ed72a9230e4126c1d8b704acf2a8233249e03f62cc3ee8433a665634f9175234f7f725299398b708c822576aa610ec22c7b52b363dfac3585bedf7472f79e5dabc80a2e1261792f5a81e5bc50e485291baad0a444753ecb201c24ab9042f2569125c59ad2abbe70ae9c4be74ad2ab1dcb96ac25c55e81e5ab95a769b08ae64791273e117b5aa8a1f437d45f0b61126baed3def3d6ad4b833529d6bae2c2b1974e7f49b46b15f5276fb5d0258f4dc1d22af27650fbbab78aee62155d38d32a9a2b41b66308d4c08d78c4c76ece70d7b6f818b9cdc00c63f55c56058edfacfce1d5239826f3ceddac25de5e2dfde1697766af77db6eeed5c5dd83f7e885368fda46bbcb233e7bd4ec4c3c9dd13abbc43a26fad618456b0613c6cf38634bf9eb36145f725eebd2a866e2b1756bb05b4403f906c7db58d8ba1db05e8484addb81781b0a6fdf60b1d96059973978c4c1093c81e3a7121c6f45fac3baaecd848d5df7c775454967200769cf4c4bde1ff1f392fe88aa992967e79b2b4a31c87081e72007e1bd1c04c1c39f2b70ef437b6b30554ddc035ee27a4df7f81a23f24ce0f825ba6b232fbc6cec22a5371791d9e3cd1dae8953b075e5e373916f3617919d666bb08b5d1f31decc044e08ea125613d57adf6aa25e87bfae251a07d760f50cbdc232f62ceb30366dcd760867689a16b5a8ddfa6430e1be71f712c675edd6b15fd87569566401be96d034ed33c3d37ad6550ccb56ff45da8106c9814eafae231d91f42a7b76712e2ba25c439710ac41608e9a0edc6079eb304ea0d9f23229a5dd1a7c68b75d5b8dcadd08abe3b6aebbba2c33628b95eb38c8c10d571b447a755d1cb77557ccc16949f9a466d094da75dd11fdf58de8af3f3b58330c0a02858c100263885ee52a04ac99589e83a4537faaedba6abb3c1a6fe71e75240c44030f4e4ef4e915cc99545801c80a403bd891a313160f18d6b0715766617623ae6f4182a8b6dfe00c487f56467ff18884518208481023b66cebbeaecac7c4d7afdfe0eb495522a32f444a1069181976fdc50f13c1ec10ab447fddd959b22715c9975d096e8b38888ec3312527e22312068812438860184bf6a406e9af656a209c7125fa8bd7cdd92356407f5c4c5f11c704a102913026f80eef106f37c3289e9556a761358de56b3c20d479f34704ce885dab2cc93a0873c4ed5cbca75a85d0451b58064515426619373b49bd21e0fce1cd824443b06ebb35228df81869699776c57b42e8267722d44bd3ac21689a5523d288568d971f56bc33de1a77ba482e6e451c74b90e2b8e472ca3a65c6ac4a47b75d7abeb1691b87e3eabb6a5bf78523d84332ae9b3bf7a488920a9ac63314a1014dc61fa1a0593eeb5d78d482412c9a66948da6844e988447a1dd1e7cd06bda45fcfdbbd48239b23f66af71275903eca13478ffad870a5b447e9dc65a3a332d775f3ac36577c8384d2bf5ca7f0077b57bdf1fe1275d4a34ea2deb5fa98ae1175d0954a5df9715ab9b949a8eb5dbb48af37a6afabd23e7a4744fd75f34cfdf55fa4bf441dd74977e5ddb30d3ca2b407fd753b7a6b441aa3bc4239daa39e66e5e6b8d54ab52898f334ec799ee769a47bddb330d250b1a39faca946d4d169da6be9ba35eae9b34d539255d18fdebd46d471bdb3694c2a5d3359ed1aed413a4de9e698d11f1d26bd46d441ba3e9219554a2dc4b5d6d72b62ef79c21a51870dcc45da9de36249b37962ee42bb6d1eed6457258974553efaa4f7e893483d7ab537235b23d2e81e2369ed2295e1be9dbb5a7ff6a7b23a0be6680c8b483cd318fe601b381efea840c14197da3031290b5a918a52a15481e1876818d810ce161820da8d5d9086813b3c1e54edd8330c8aa92fbfe0ebd9857a3d35a7f04cb55cc60b8e5ea9b48b33cc6a63a85de601a1c643973987c04197fe24941987105816312c62594c1de1e56088e8f9a0664864a3847679fa845aaf2b3b915e9dd3ec90fe6494b2b1ee6dcbecc4d7c47848af341bb1a66531198902fa8bf8c7ba4cb8cb2ba057f35ecae84f76aaf6273b26d1278302c7c19a44f7639c71c6186344429f763084db265bd040d86363961caaca47d35817d6020dc688bac7822abf3d3790d4e91bf09a95393b159bf79404f7b7b5cd1dec70bf2f17e976eb9014c66e07f5077b0a6f0555faf4aa7bd52da5e85ea9fa7614b87f246ca0be3d4550dfc8a2a8d8b3067aa6a966b09b6f70532298e4380bcbff00491c0903be3bca72b09a361b0475172a2e2c126e0e453f3b50394e544e82ef70617ad6ee5d0985e6b35d7b963edb69b47ba54f7f5036c1f0b2897ce2ddfbe99c67e513287db64b1f0945af4ebfa8cc69fa48f944b3f209d9a384dae2564df54aa572884f56e564a7147b852d24c15107185e410b4498eb2e52998c09b5c5adaa3a0b92b8a3c5559d7e72617501420fab2d6e4e2c72e20c9aa699ecec2f2bc1cec242954212069a7c600e0884e11309d3e2f0f2470249181f0e7f38271c5a620623c22dfdc1cba4fa3322e2dc88234f6ddbc5aabd39fd73832f6cdb76db53240c781f6c4b9c393fa232db0eed9b9ddeb35ee5ac3feddb67afb6479445d24112063cea2d16490b4918f02d40d912aa8bb738ec6fdbb6eba9a0cae77e82618bef2eacaa0170070e09031e0746d9f122852e8c60054038810da0ec7081a2a2c21d30ca0eb8a30508506f711716042d77714881e4b41c756e76b36609e433b34d6a44cb5d5c201206fca446a0dee20a2161c0feb5a3c5c21d9dcd15ab6c4ec4398b65719da450d749963c51581af9ed9cdcb45fefa1f5cdf27ab659a8b23e55565606f8d32d79cc8065504fd11f507ff03e403f1d9bc0f2e694f4812f45c0119e76ba9b956e21c1acb0c618638c355e9eeaa1768fbf9452bef48d7ee93af1525069628c31c6296d96d5fae11824de3c6408bc5d8ede3526d51f235965770eda3c63534873102cedc4d27e880d9a78edf1469b6de0f8154421bb68738c18764bbccbd7b1bb2ae5119c113806c1b13bc7598eb32c84975606cea286a3bf5661365ea0d45abbdbe17a0279f986bcd8c0ed32311942ac2494e81bfd2dd40c878400a9d8633026da250cd4eee1d4b2ec188661588661a78933aa85da67f9c9dab22eebb22ecbb2acec18cc5a6ef3ba6e5996656dbfec900ee28e59486556600e6cb6f437bb49cfd4f19c61d8ad1ce6784c0fb9accb22e970cb313be4845b2e000e9c304dcb05700ed6200ea98c011ed32f5e582fac17d68b172f5e3c465e2f6ee396e5404bc1342f6e230f51e0eb2a968eb6d3ab9c4dc144bdca9a4e925ec521cb0a4be80757e0160c837e308439d8a3c2201f1061d80428088061900fa0c0d7314eeb22ed61e32f98c41cd29aec3c22563da67ffa9b4ffa9b51f4e7d39fd5e4b2842c28d6d06c43cd969025640d693ed9cf8d1a33fec3a1a4813de1048b4f7fb327b33c9c8a00cbf2a46fcc5b96058afe264b4faf62132d460064344c3645c298f7e100d7887a05e353d371d1e2879b5353e6ed65dc294fc4b0fd4447c2683df7d9cdd5ba332cb7aeca87f5ecd9a5f9e1568feb3517cbb167b926ee215e43d8b375155a138770702c28fd4d6c3d5b423d2ca1c790710867c478a43231ce452c86658280cbb04cf02da15e655805c21cd655629a4380853bb81a26980902ce75675d16b6d69084812ddc71d91aec10ceb02c224ba83f28d8afff70ebaa7398855d3f60d612d7759de5343f3cc32c38fe70cbdefc03cb597c248c0524614c7b673f6b3d1226cb52f7ebb9717356e3e69a9a7173ea3037fffb9e85a15a5880719920e033009789ce77c4581d0ba059806b4098c5aea282d1216e54e6254e7f2c06f0e6427db9cb8bcb8bcbcb730abbacbead9e33bcad9eebca12c281e3e5e5fbfe54aa4d9dc9743a3d51ea8dbc91f7512a956bce70671910da18ea2daba7bfe3780761cfeeaf18db358ceb08b05c963dd17ca0c0b3074fd5cdfabbde228043da4300d7668c9b5bb07502582ad7458b167ba55e58f7c52fdb1204016c6ec1d141383090249a3a78fe64f3ec9940787e65f324c2f32f365b3ab900768979009b352b3a27f03c10365f4bae27780a5d53f05c823dc1f32e366342d87a8be5fec2067103581b99fb6551d771ccda34ce50c77e59cb7aeef0655996e57e591d47d5c48bfb8f20b0f51a893970c2434e323a6eacd6b5e94e879d18b592c3663cdc1058e5998d0cc332ebc359c5d25c77880d7c3de3913a8ca32c8cbfa8341ed3594faf56ae16e3d8cd436ef644d633b190f1643c594f0c9b7537471c747d6ba026ea35a7d62361cc5febb914367886754a65b41d4fd3e96f6a49b41fa00ca85799c527fb61f16181a257f6f399141a10157968827dc0908a3c24c1d70fa888b1efd76d7cb3931271bdc6b32b7a55e3f3d9140ba85740dc1c31109f500af8ba0cd491fd401af317ccb301f075035f335ee0ab05be5428be8024017e7d02f1ee1c1056f3d19a0455209eb59e1e5a4f7f5303da3eb79bb607e050c26c3fadb673db57b6c3c890716ce6e52f7e511e37be9de3b21f50d286d592f4370f8485b886fd34d48d18dfce5d94c70fbffec3f618d6da7973a1a29e3b08f59f0c884507a18e822888d28080f804e23037e300e22b37bf0071eee60f03f1d5cd07e227201e00206eda49e95414445d857acb500b51cb850a02fa69817a0b9f1e1e172e76523e64d8874388ba0fd77a34cda757b0eb2e4aafec496d2bfa43bdd278a4322f1fc0f3b4261ce90fd54ce397377e39cc21ed0103736487874278662b03155271c515f8baca3995eb796a259c27c42c8ccd11c3fc86cdb009f886d6a3f5e438b9aed644f3e91b918b9d97a4660da807cf6b56f42a5b4259566bf60380430893fd4818f300b8f1200983804ffc113db6311601b600d7e88f4fc6354ac48bbf9cd33a184b80df784c73dcd645da63f51891f6f8e1d92f1b4386cd13cbf80b9b237e711823c6332a93c5b8197b8c94f1e2340a605bfa9b3fd85c44e2b079086c0226c06f9ccb288fd5afc3f8c030d457b606c3d9cdd7adc1f075c3c2fe02b11da8346cf5e5a11c754cd108000000095314000028140e880442a150382c54034dfa14000e95b45270561947499062cc18600c000000000000000000008000df370a09b2023debdca7c44c0d7882d0cc7e89a41dfb72976bc3f68a1d601a164de6d2dbeab2f521e1fbd26d85e8698268ff61aa0442cb11481b5041cd87ebe4c35d8410a00a0ef045f62db05c555dcd7c3fea169de45e9dcaca595673589a4a450b3e3fd3e7f0b00780960c01849593a33d668a8567a9ff37d97035f9b18821ddf91272d806dfe34196a3901adc886aa4f73ed83bbb0d6bc81dd1e4ecd9e6eba6a29dbd5343ac8d304f62a871f7d9d0e3165d93c5ae4698b856105287af6c32618769a022fd55ce2a8b392afb68256d998425075b6c883110e320eb700d93941608de80efe677b9728d8fc3f072c592f27d44ec5d1126c42d52915a395ea6e510838e5e580489b389301e7a484e0ac0d5e68a049e7afbda0e74325fa06fa58aa635d9fafa386f7e0d553b958ad49099911841e3435710c6934d64dfb71c8d930caa79103a8a946ce596288cc84c4e8b9fc58953801db28413a258452dc72f0376b98dc7e6046b0769c7ddc4da8c170b13655c8200238105fa99f35fc0f965a65e475d74bb05c72dfa1d4bcad19f7a12196418b72548493cb11d5d9494872aca33d146cc45a2ecbb6f5d5ba02e09328e41b021a68c495f9f82518ffe3f2ff2a84bbb34b01b19edecf68d8c3484280b4216509493e93b8d45ceb53b8f49d455ef79b342dcddf171af0b61e7eb9c6b0f91cc730ae7039a3766d21bdef11ff1f847b0b17a3423765a33c8e9456ddd6c4477114ad5fe9e0a3799f3186e3e826c334c86dc7366b337b1365a9d8487611dd3d91b6257b8cb2758241f7ba3a46b58d26c5c90c11a0046a712c782cbf136aee943213c0151f9a17f5a1169713dd5227879197ffc4d2b48621cf034ab558258c30ab140b18fa677573e1efd9169ef7411c906ddc046592b4515449daf0026bf3bdacbb1584bbf2311e3e15a02ddc5154a4085cb8dc51f40915419d52870970a0bc17f13d48e6eae7e4273106162809794a54d726410e33c76492509b76940c04bb86758a6315429416bb7165ccac151a78ac2be4b3140a429059f4afaf59b76b7ae50ecc699d0509f3273a57b37d1f0d05a89be37b977f050e80eb8ae00d429816dd93707aba0a24b2549c7312d033c9d7bcfde2ebab7fa666f0d0929c8abba070c42918750a19b7918beeb54ca14e3eeb98e1977ff5f286964d1e9edc43a07ecaad4c5316109a929de4eabdb884b041375b8fc72ef17a4e9c82d17735d215d3c7946991d518d41dccacf8380a76ba4adb070ee22c6f425786d72f63da9a2fc0ab8303998755e4a06442a80c51b9787eec30aa0e1bacac71e0e418cdf44a3e940e9eba6b512f7adc454a43e565d254aa2ec5d9a97d1e95c8e499438aecb297e7e7f106fea6dded3569da0a5438a8e20c596d597828bc98c2bfcc10133106fd44a67383f10f7df7368d2848d87cc84f8e30711839f4122e029658519f2f2ac0f85ca1274d30b58750c5a02128c0cb37a157deac56ab6595f24e62ecd041e9c3a0208560b19abd4867aa123607bc646ec7de564701a89660c278c07786bb093930b46b85bf849f457277aee7378048b6b2eabee5222002a24094ce25c01e16097a27cfa6bd5c2c697c481b9daf480fb519e65d692bc1c3cfcb0a8c83733fc919a3152df7a1cbeb6d3cba1d005cfc7123b6a8196eee13a5d42b7b1ec57fcafd5ef78cf2d5aa635fa0922a90218f06185b8bc6bd765053d9de2e287bf4880c99505ff1d21d3f7c3a7652de30ee01c43608e0ba1edc048bccac92250e81b0accb35f94f455ec4d08c91bcd863dfc7b4d99eee29fc22c416181b79c61f56d6edaef76005f27d380ce8699eff5d87dcec3b720aed2ebe1a083164f5e48b4a125f3ba2f7b2d4fb2f37afb42fd717c7279b61e9ace316ecc6ab26895e428fb7d26bc73d4f1b86498504a90aa0e975b9fc57a74dbccc8e00c6f86be4344ed0001288729b07d5253aca9de589f0bd48988d25858b6bfeb0e63c4462c3473d519adb6ff7254fb825571c7821755ffb95cff412ce2926a3efca6b71264fc0461e0975a261cbfb37412351822a0c4a2f0bf3954a735c96b8eb170e8a29e8c290eda2d06620052b516410addb1cc187bec42ec1bea00ee0fe30afe467549a90f81b4c80093d4d099ea2941c697da9d6db7730998d14f2dce21533ab88597dd026daf5a8e1665c6f6932fea4e409c5c38baa20ce8e3f3a4369b22c71df6032b3c8dd5822c37a6bae6498d21d65903b4a1876f79002421ff6747c1f6c295b050fe3e20986ec43787c04f770a65aa5be4f600b80c17034cc9b86b8b56ce7c07af161338adbb4026ab7435d2ac69fddb993128944d9cae87d0d33dbf5066976d48a21abd94e3339192b9e572269a18d003800c55f6400b933363d66c316e383cb15753ab290fef2265545db012e625e98b137cc08dc74ea79f92f5e6e908882c4dd2fd32ac34c7cb816d48c7b628867f89ac7b30c8a7b1b882c43ce66e2f7e30b502410fac3a2b9be3507da144548c96e1f355ccdc988313f0994cd2a20eb3242b96e0a146e20072e1058910c0684183e72752e66d2993537f4e4dca2d5db732e049bb967b071f41d161824f36d6ac1aa348c2b4bd88fa37e9aaf8402c3a74d766834e2db8d4ed4f9e345bbe73831f0df19c3e0ecad15cf92d63c85765ebd57c6cc3180128b80ff0de26c927afd64a96c95aee90703847b9970558804a8aa0c9a82f7602ea8a9f5647773dba08e3767d0f5de1d95380819b20355e14ec0e6c9464f0ce99d9dd26de5b26c8ca12386c805a663151c41c2d0709feb42900bad049e1173e225b34535a82f3b2189e1d6fd5d0bc34f047bb02bdf217516c4412e48bb0530732c2d0bb5a7fe3252e4657b1b6141851acdd9570e1d4859bc39fac958224e7222c731fee4ffde038a830fa69af4410063b5ba1f632603f542918f8fa73825cd10f39173ea561c3864b7b53d975ca291cd8b480a0016684c15dff1085ae905d41e91e049c01ef970695ef40b88c0c0219d240bedf56de8f4ca6dfb0adf1a9a1c3f21f748dccc275d354bc0dc984a942b8c340e58373deda7badfa5efa793d9157fe2262d187380435428791153bd580effc482e8d22988c9186398fc9fa5e1405442a51d4d111bb0e685d2b13adc948d61fdef5ea1c2a6c74611b98de186cede6b70f514e209f27b108ff0ac5f0292dda998e5fbf753ff56510ea164cf3d7d1d4755833ed821befceb7b2535849cd1a54a911e6121f10c9a2e8c0cd6e3ee93c98bf6f5145e5264403aa6b8f2756e86fe9bd3f8d358149f72ff9199021b6a4206811e6524aa19a00eca45497a93d0137a852e678abfdc0a5c3205020630a5b894f7c035808da06f2abc94f0be1509553b8ba93fdba32c04f32fb920a82edaafc5e5b1c0cfe0ec08f31e3fcdac7a7d9ef85e9222dd66c66c377919206ea801a05287aa8b708e28b387997d421b56c324ae2e3dfc4e380aa7062ed8e7100304b118b31262a05031ad406d64383dc811369ed155b7b383ad9baaac2b3c757a05c3c52809b94bcd055b842e80c061438f9adcb65cad2149251457be3dccd9723b36fd5a4da89f4dae7f933fbc6750d35befd10692eaee79a3695e19d6a27aaeb811b14b8064663be60ceec68493bd1c3d9cbed211951e5a373f531d349dc43f39d695bfc5d833e60a156da40ac0ff421e879898f204bfb331808b8ff88c12028e7ba529a5bc5e42284ec8e1d1fa5038fd12caa35e9a3eca22e70f7ea33a0f200d355c5440ff218378343e5a3f5454838c26238e175f5578f5828d57ea7ac05bd1edbc3d673ffa7b03c885603fbc15104ce312130d1ef1ef79dd9adf3066d1ec02561152221698248b5fb45694612d2cd8ad64979e5d2038416bd1183265faeebfbfc432e72d623597062a365727591f9e8540a12ea108379eceb5ff70019bf2035fbe474eecbec42b173dd45f45fc6f9b0d330b2a2b69a9a8f4aa27551a3f63f66ff4197fe07f800e9d87f307956e403a4cf703e6af39c8fa24d4a2a06085d0bc331952b581da192f64a41321822c43f2a70ca86c279b586545a30b01b1dfe3d3148ab11066c7ae78800e7a4d32596215a62b7401b03a60b61ef2b66dfe84e194bea5dde18666b509e9e32e78f60cc988fce97581cd04b27532d416bc83a6573e3874db6eaa9009ff66018701d515e740f5e78780a8013d3498aa9c512867fb38c927d91df387f941262ef4098b8dfd613a0e241061c945de42fb45bc3ded9715925a7a3814d24cbc678644d8a410aed85c1e95867788c46e76a242dc1849060e8dfd3f91e526ae7075b5b324fb5df6d891112074d8a8a1809d02a15201750bcdd67f027ca21ea40d4183de12de10c19fce259394319949418cd5a48ae272ddfab835de1b7cdf9fde7d0e448f349f76b7196a33064ba2a5294739afa8ca9d3087461772933fa077220644161cd40786f83423d3fce0f006db7f94321cec362d3acf20ef2a764666a733aa9d6cc0bd1529b78636a022ac8805c88debffc74255f9b6a0b0575e9292d921e6a0a653d94e0ebba621c61af2756a31c78b3f13a46bcbaf7be82122a058be15ea284658e24362854169f214db428613fa45aad248af22be23f9b789ca229ddfa94eaf45b03717e2ec3266d0538fb043a93d5ca2ad041637ac593c608af19326025f0e11ad8e57af20ad9f34a0b0e22dfa8f3d18d2f8c495bd303d28be32d4f513a51bebe971820317597bede5400e0032c0ca6d681c9a2ee8d6c09d6ddc3e763999ad32631bf4120a8d614f7f55c48c8aef9b81e0b909263275158ee15239e4abed4757b2af78435ca20deab8faee0c539d6a484ca0b7c98f856c10c86220901daff0120b376d23b4c089a7358e8756247bd26d7925b346079e80f516e480cb19f4f427becf6d9172c6206aa22119b2e95484038f0864afa82fceaa03f5039ad9adc15a34741d9c5f80291684d69cc17668d24665f7195a2d414ee39401afcaf967c274bf8c7307720bfdcf40961a9a3f5b3e7aad7ddb856c1196bdf979b0a748347312b646b4c8012146e80c7e674e18388f27d306997acb377baa28743f73a9ad88f3e96d62016bb3459014f0ebd57275f9351e12ba9afe7da89a3e7ac98e60eeed49504d5a97cbf696aa3b12e906a71617260749369518f732f5051154b5af6aaee4653527a483c3aab2402db0a9af88746203a65542afec2ae033408fbca8140c784b3b3ad975e2e5c0d99da2cb2bbc5b781fc4769eacddc3b8e189bcefdde4a4cca1c64c974cba5e8568535b3d57cc612f67b612822bb77d678707576022cf974afacccc10107bd381203c2e5a96bf23fc649a37714b6ffd1f1ed9f1168ae81590e123a5738a7bad3d13f5be1033dc9015dd4b3dd24d43835f1da20d0fa9d8909060f29add572a4748d701e0bd0691a85e773d1007ed31d00797be60da30c1280ac947e100ff88dda9cef1052b7f04157d8d3df273b7caae11deca4ad7916a36546208bfa13d2936ab89698ae25b1f9083c3f38540a9768569f9e62ba3d40a674f4fd900fd3b38f6c39d19a120f9816b4f56467259af435a5148107630136b6dba15c5bb3c06061144de10648a9c7619cc30afc697631884e10ed07af08da0c517d5781104da9d4354191618606c0af8afca725d7ddaf60baef5d48bb1a09c994bfd84d84d4495d0417cdb84677d18efdbaa7c40171de7673846ceccaf6a8818f7917f345f9b86fafdd83da6e204ffdd8e094bb9b0131fd1dbbe96b6b8075f3a4213fd7bc263954f4d4ded3c3be4fe3d64070d2582d69b34465128388ebdf75123bf7fcd7e42637181f1597200b3d94e4adf0f87db77a6e75f46596bf1517512fce6019b6951a8c0a6222baae1636d6757123b72e641ff59f0880d509730611afde4d02ebe7438ac15d5e17a3e414bdd7a30fdc976df57f5fb7a656040661bfbaeb54fc1b1a49add14046781c234e0d5155303e0a98980e81f036c317b6cd7acff6e8915569eac9d3cd09d2f976b76a065da4e2b8d14927ad134bcff6993cf69995f3751ce801561ea05ce0181c5e84690e4da54771b826856634431ae2418c8698320d101f4ae25525bbe6441d7b3a9b6bb5caa1e1c7ad449fb83734df0a36c00162b40d9a96c3e3840eb8d4f5d2fbf3ea5e77b50e64ba618bcbdfbe7ecbe0453085cfc50007f7b7a66b7d10ff07c3546b2e1bea83e822159f947c60b776d7240f0f18bae2142c09e9d070e7944c3d196b756dbed55110cb47b9fd252c636666c6e2f70a0bb839211fd1769353e031ca1da615dd834ea8b2b6bd142c0a52c2981217bd036c4d4c2a15479a6e7920e94fc45652eb45ef63e8ed8db83f549faf99140ddf2f39ece75fb08c410c450b4bf241f0f6363c45090470e7328ab6c22c38cf891319ad620043188ecac326e6a54a185cbc2f157f8e82a4124442094f36bb01430a05e98411aebe2b926b019aa419788788d7d5f3895b6f877b14184c124eda6a67d4919670b8d8d9dbb5fc58d76ff00901ee7b2d55b8843be2abda7880a18e1cc374d25a416f03ab188e21f3cbeb4170be0f28cbab2dc74d0e5f285fadf7d9bd6d2490a07b5fd2f4bf8462210092fb5dd83c061901f2209177891b6386aee8e574cec33a9abe7703f1fb81d324988d73de058dbb710fdce990cf5bc23329f84138481ce76375482a71b1a2694e511c695f1c256a36f324820bd58e47436a741a8098ae2bf461f1703a2f02ba192c86a6cba3024291629c45682ec511bd49a8d3f113885cb08f89d57eafaceea9139cc638dc276b8900fe78c375fe4ecbd8e13c79de08a8da076285a630c45ce299cc0534adc87350784bc047d7200f7174c38d6193337ec4850eec9617da91a375b7577ea190c14ee3e1b86165b2a4dd7a828abed16b2ff7d5e226c2e2c7609909885fc7e3f06fe2703587633eb420069c173988b26401322e2a84d91cf073b0f75f301243f8bb587edbc774cf27931ac8a1da621ff9c154b5c1cf2d2e9669543d26a3f1155e300ebcd1218c937bcbf37098e248213a8be33c9beecf89e94be8783bb50d77d38701c3a5fdd335c3157474b3239c7fa885c6d08d92480e8132dbcca2318830ee8d4e26c291072082168da24103f9fc4680a8511890434916b0cec216aa148e65370f488d04e79cd7d40a34680ff4194e727caa4275ba02f5b9ad9299deaecd311335481a1a2ff6ac60120080ab020d86582f2c43b74720e8e8036fc0f28890feeb2b41d081aa3993ac9f754d850d5e89195eaf6bc00f6e53f64499ccf901c6f157a159b971aa98088273d0b3dc425da23a8b06d824c14e79a72d3f7f1b5a63dc7ab02a964cc64736a7b198e4323173bb4a3249fac567481ad4fb057c46281ef2e882398030211f8e6c0458a4c13ad8a8b489c83214f5061049d5e1d1b7d7a1407b125eef180ead72c2188ee50d780a9001c61b3c1eb6491737be982521b00939fda3a44945faac8b12a8432140c6a64f1a05996ca49d944c70f03dfd35578d4ac8276fdd0d00813c9d0ece57fe71966cc067a48b9ed101267fc5e7bae40f58b8a73913f1c830ddafdebc25c308b4f041262db00206904414e9337f9a15f3948a99da9097f9a65586b2fe07357d95efd1e8d6199cdc2b018226b2f4134cc5636afa7d904450612b8ed89a5d51e4fd0d6b91ae98b5058079990e21fc6c92a3458df1e30fa0e048eedf7206eac99c80509bd288d92581d73805493605efdbc23a39fd3cf141c387b026bb065cc2366d8524083b835d2a4ffdb460df768d1dc10efe66e9396a6063cf2018d1e126ab7b741ed4c1ce3c13c759e881912c1a69bf30a62c471a44bd41eff2ca57b9adeb60931a467c710f95a9d8f09e1f4aaf96cbd6a128de7ac77549ec8aae4f7892e0b83db363b71a8a05a9a2b966762adc978168e1d1edb6e3eb5006b3f17fa33e7627ea5de35ce5e97d285c5b1bd43de2716879856374b342bd6401baaf70e930c726f589fa5e9b4a094f9772cf9654ddf86bc238a27fa7a0b073cd087a39e66900f00c2a3f8b7d8c0bbbdc775b675721fafd284e76cf441edb2c558aab6b0681aff47d288f73a76ca14ddbc0700297a77b4b327c60c6bdf54bd57a380d86122512882a211aeca75d519c01adbb3eb155a3d11085e1025c02972c4bd65daf83c411e79fdca0c0d8d96de43a9abd742dc2a5f696a8e82ad507fc48bc37522b59046797cdb54a4d602c01ca3228d1e3f6a85578c3c20cf48c9b76e51fdc9eafc03434a9ea2adf393cc0c8fb7787bcfa5ad7f39e30a7fa7cb064cf32402d526def96c854801ade29097986e47cb8612502c3f83b22570b0bff1da73d432296d47c0b2a0a2021c2e58e1fdf47b0e20e33ba660e3bcb6f7d3ac32df72057027bd88a9d9e6e7d5efabebaaa12385f7f8534c7e84d207f5fa9c1dbd2af33b2362471090037114617389404f6e7d3af3470a276f27625cf10c3e5b1e91f29f0321ff3e5dd3960bc68134b637e028ab2540d57b2bf2d08dfa74e17b97f626e52ed5a8f810304e8505a1dc819d518b4451fc1beaece8707f1a63a205c5e7db0093d05817b059c856d6b630b02deb356010a282fb43fc3cb5c6df0ea46b571888a5bd3db4593c7861019aed09516dbd07f4f25ae0f8679d5299fb94e5fe5a67b1bc92c3f28db4e92adb105f61ac7bc3e473aff0142d258004d02bf0a71cb0c2e077fbc493826aef19eaca3c10b830de8490aca31e04a619596651e5c21d5a97e5e05a2cf9f4fd3102d180f348f0812368f407f98ec47d186e3da13a0382e771e37714ac59a670c35f7ab1de66317bc3f00be318191b803434f67802ce875272675c3030003f7a4aa58dc78ba21567d0f2d8d068980ac4d76683c1b6fcdb4285f71ff029abf510a634c3d2f0d0580552f4850b2cd6bea1ade1b0a5eaf5281328271bcb19e1c7cff63e1cafea1adcb278477e7ece4fe91d4512769804136538ae8247680483e053e8b7e8db8560751b020f22ab90d444a82d4a85da782bdbdb3775d005942ac701dad46ffddf02cb46023de7f1383145d48f2030846c343ef08393e783915fd6c28b1d379cdda7e9d497f18dd70f62426b74610067844ce2ae6f8b06dcdc5fd694f169100c5b8df67daf9d1c23e3dc4c078960ac092a040b84433a8d5f8bd7186f15df513fb10d5ec9cdd76da3cdcd4cd6c9f4f28828b65058b772c5fb3558cb5c41973c8de01dc7613354758c96c7e10d51c406581062a15744c2424e3bffc4c9202ae4ee5a76c77058405b430ed1208d4548cafe356371f17f540fceaada40f7999ce307b5e42ba47d9301e708f01b7a993d1fbaab0eca61441064a3f020b5d7bffbc6e4fd7925a5fbf3111e5b189209266a78a8420141dc1c149d3a0eb99620fa349420e95340357dcdaa3083c6102010a8c8a9f91510d2d1e3f63d2f6625288e10ab50e71815d80f897defc05825686d80a9bef59fc54a37d5621a6bd64f4cc80b192f8dc2786fbf88442834ef51888dcdbfc1624a37df30ddbe49d71e83bfceb02f8b3bebf43edd2211a8ef62da44bbb81047a0b6c92da23e7dd2439af37d06377fd6dd002e96aff45831b3410d890d0353fc3ecc1c731ddfe37d243e85d6c80d56b8513cb09991bb27c82f6fdac132de3f60e0d3146c6422a1b9e10a8cac35a2ba186c22e2bf3683adb10ba860f83210a14c9d991e3f665ad8db8812b139d46f8775739e61481fe2e9209333abdfa016b290d1915c7101b533ef9f019a6fdcb9a8a2b696c120da15053c60749cab3339ed133b665f13027a1df6030ee875e62b8f98a92f88b0b01a22189915acee3956e510412c4875d6ede5b38c86a442f42802fbefea3965f9a1468a864980d57fde3e9a272161d1dbc20812b5c562048c0a42fd8c023360cd2850ba386f37d43a81a2f47c96f0f8f1f23c2010e8e6306d93b06a41fe9c7990876e02ce2cdd9ecce056e5c1aec82b7f8da10a753bc6a250621c9e8d9daa7d75a1428f65f2e34dc6a5bad0b57df4cec35e1fdb3200605dc5638ad2e4fa99b0cd840904f03e0c5d472eed8da74d21c40d6922e86a6ecb321d36c01e0243aef95eb7c98071bce0ea1e97d7bd76096bb810c20dddc037c2e8722d0d3d94ca9f65e1c9d2f6654120930948a4a906d36ef304e4fdbd6e69cd68dd84d4a9b8bc9b7bea74b35b076a1dc0914296de9a4a869b58201db302d64a74221edcbb4b0cdb29dfa0eb8534039777244385c160c8009936b627cedaaaaccdffea984861e362b3ada1d3bdb89b3f1751e4991043a024fe862d61ed4cab269fc552efb2f20216e96ab3322550fb83fd53b62e889da81618e802a917366323d2b269ed18dc874453337527419b426dd3d9b5b012cfae63829498bbeb178ed75d28aeff828f39bb83d026941e94ee224b52401a150e549af93495e38433c491187c1447d1e137ec0eb51a635a7b4f41e54e900709a40875e221a8d0acececb92b72b04e23dd5230645ddb505e7aad5474c3faa6422600a22a157d84ffb7e8a08878c521e4db71f95d4441abdd65d9d86edd0f1c4997eb93d7584c7f20f1aa54968cd2d0f0f7ffd0072520072a65077deee81506b063bb6350045933fc4818694b1a285ea45ca80546513577238d149859d23192ffa2b980d6b5223b7e592fbcf71c92841928a76be6b51beaff1ac66c8ff50130243be68a648f75ff38acaec36712c60fb444789fdd3c1c495ef6490328d1a2eb570f3de8f690d5570ad222065bd9b3a0c0109431b2dc85331a2685ff5bde71f58a9ee2d0f7a378e25e93ae535eddf9311f40be72607c7664a6e84c9df45f192794c692cdbfc2d2ae3a0e59086b80906348c90a4eeeacc8ccb6660eb750a61649d00fafb64a782ad9c1de09d3ad1d2919277bb23b6c58296a20a2a9843333f9008b33747b366613c6724afb0664b1e49bd1e0b1abdd3ddee569e39606721a7f6cd8d0f63b2731f80568b0a6ec6bdfae3a3dc21ba67a6f22b73b52fbc71f4e55a83ab313835e15a41d9ba1a10f6bd2e2eae2ca65f2f2a21ef6b3ee5bd61d96afe69381aa8ab7e9cf124e9cbd72464b0c1893ac7084d0116af37e25ba36d516f49d32adbbf9fcf24f76c912a900be8c6cacb9dfd94f12befd971312c25bb5b8d556955e4ec41786c99257a5c4711d58929a2eab288d21c3194c496693cda88c20dce8b46459a8d9fde10fa791878f91db5027eb824b269c9046b58b95ea65cdb93d13602172d42f66fee6fa04d3e3e09af9842c3f2b391f4d6078fb2fd0be28a68d19f6f8f8559e6d0f314e0bb1ad23e245a184e583704de93507c23fdfcae47d163bb2e1a0749cf3d185e04de770430c99fa2ad516e0248847cba61c5e261f2a5ebf7c33ea5b35faee5a81da6b0356e46320c17c6215b292b718ccdd395fbcfcd6b5f5981eb9734b8db36df9e40c670bf88131da5a2bfb4f84629febf918928f30a073d463391d1db60cf67409761e1502ce900828bfb0250b2935fee98a6486700c62eafbfe42b45bfbfaf5568933c14883fbd8bf5beb0bd345ea6a07a66ab9414bd5622251b5d26265e3c3c07763ef9617f457d931f95e46c5bc27f3e996f2fdbbabcf1aadb0ee601782513937acfaa69554e2405dd06686e1a10048e2b3a347ac95cc4b3463d9fe6c1d5c1df2a42909525e0e2805af1b27510ddf867b2d64fd7ddf278449d7dbcd001d5f5189411000c6ab90cac2c35e96c269a12da5c5b5c0e4ab22058f293471db8693802938f5e989962e6d8b40926557f6cb0347dc246221166c0b3fba86ac66107743ac3bd9614880f35685e8f632620e6dd2dd41ab886a8d11d80cbb886c1f19b2db7145f2bc77aa23ab936a20bbcaedafb6a79cbf0c3ff095707793302110d9f9b6ca738e44be81582f9467fdbd9e0f69a356e47dee7d3236f9ffd5e6fe7d3825f6f03e4b0e8ccaffb96158771fdf3aec768abca9bc1918075b77b971d583c3081a5ffcd2defa812df40f03f2630299da511e1911a317a8ab23f0b4dc01250d24348379d1722d6d7dd004989abe880851439d01143f6b5ef540501be1520e7d22490b21a8b61e70205a7152db95e5675d635b4bdb256c036806d88daa8ebd3c3b1efbaa66f0d7063d32eab099135c939a83bcd0a6e400f6938a23d11806b51264f698098baa16df7daeb0f07a467c3dade7b6d128fe7117e92d3c2218900651fb25f37e60524d6883c1bd885d85c88077699a4893d6d52f0cdb43604689917e0f14b1d1202f20307bce583f740d3a6146ca9a1aae54099f6857de4b5d2c3feeccdbb4e1e57ff20c7ad186da312013f1bc13d0be82671bf8b07c045678081c602301157eca5e3554507466bb47ebc45fdb1afc0505458f9716049a484949350c0b7aeb30662df67b24a4e9b126c5bda6e1293c782c10528e7df74495421e0b89180a073ab58958dbb260edb19cd0e11d03eb89eecc48604afe3ff487636c964bef64b9574a684871fd273db1f01413d120428cc8ca45c036c0fafe328899ca12c86e41929274d5f31d82d6cd6cb51eab4a03c887b4a0d209f95105e6374a93f03c41c799b1264e2b7d26a34e41377f05ab1f7f22112fe518076dad5cc182fa382165ea41b80e8fcd36ed7a2ab75a75410c01dfecc1cd579cd2e10439d1bc0159ca698ac2040bd7daed6ebb26812de1de19b0e91334ae5ac265530947150d4af2fca8edfe6fe2128c3c7c360f543ce64664a43840022ecc960a4cad79ccdc1777ba13e8710ac19a765920e7a9c10fdb36fd6d75b606e664df2720591afdbd1b15f77f209d48de118b810c95c1f0676534a2b4d54e7bb6cb96c2e8447894cc3b35fe54dc3f3b4fdf3cf09ab94d47003ed6008c761cc8c2bfe23e78f79cc5c59b273b176ad891ea0771fb990fa8724a76068b412b9f1ae828626a504a22857e03a20a12c6055c2c7b00ac26f520a3f6ea77acd85badc3f6e0aee55cac93db60508447cb7ec9f6e9d51772edc836ec5a27fc0ad4c1574f8496d2d6e3b4ba87c82038582c755c2b0262ee59b2f3bb57b9232302b9864f068865c4076a9723d921aba8af5d3b8c509e35e9d025b6ac0adabaa205bb414bd7ab5a356cecd7b1ceecc0ee8b6727027be3306212582df5ab91649e5bf9c8211334ec9a520df8d58d684de5eb763f8c064252f849f280b47f2ccd150eb9418092d9d7083449a0a218a27a804085801a69c80291eebfae42bf99ce53637b110cd332a5eed75fa83421d303b9ee51bea80e3961aa50e0525162f1d408928eb2d800aa0c5e3c102a8f016d39daa482fe0b0e89f98aea91b942a5842071fc6bbe52fc6d4286385b6bc2aecfa3aa2a4b97c8d22070d682dc9d18f14d2d21ff4b7c65930149b556a23c9a7092ce35826c74835dca3fb1924e74e8875e80740b1440b6e53b27cfb5607f5d540144172d8c88c1e6eaa0e05e55748cbf73d027c2c63c80c4eb3a750298ee938c685cf45b204bb007ea7b0411e4f6c6446c890c6fcbc3778bd29d91ae8eb6eeb401a3d0dc5e5330fd5fc08db6d1d4f6853379da3f73250e53324aec51b8bb4359a9e1d91919c2ead4f517d72decdfa8e0976096d5dbe5400aa87c3fbeb82f9aa8a670fe9421dc38611ece2f22634ad2d37fed4e0e8de68219a653765f089210ec4a65ba9c56b70242cf78546d04b6d4185abbfccdbab9308200bfe7e598c933bf8a2a45a473f551beb13b246b9a7809db26a8f56f1920dafd6b06e094fc3bada76de275e9de29d702c4ca972957150581783ceb14245fadc157bd78ec692ae176191fdee5609281a076dda5e4e7b08b082e4687c83d9486b958439355c1d6441009a957e20e3ad09249f39889b265d09314720d93e7bb00eadef9af073e48bc36d52c26958b5b1e73d1b1829e6052154bd03e4c82eac0a588cbe8ebb07bd9f518f03a125d4d195ec3799aaa2ed38987232ee84f64bda477a6af1fd1861807c71463f99ee2545859e51328950263fcf78762fe43c14f420c202ce8f183ef705ff6788a5adddacf1fcf46cd9b7956e96e3ff474376567697658176e35448b561151e4711ec79413576fe7bb261aa965de0760a5c15cd6bb14e3f3dcace968217a1a6bf2084834180ccbaacb6ea49c6d835dd0ba988ef1709e4088992c8ba9e284567671a7abe60c23aaddac5c91e7ae064323808b480dbc3f203e793638800711180ce1813e3664dc27de0b0469fd26246e74bfb9e729dc47872de50ef17fb894144050d2e1fc8f350059e68410b6f2b4952f98b99d9ac9d6843282f39c934a725e684d20561f9ef61afea5a07b6629afaea078bb1b5d4e186076d90657eef3ab8ed3c12080e1c935cca439639f02c9bd17e17a8d4b54e0d2fa0053b51e17c61019baea2f9d40b76aa70b6aea9f797dbef5d388d8278b113be647afe2a4c32aba8e77c7bfdfa1bc6268d2200866e0dad289eda08437354dbd8cb36c541538371d2352bfe70ae7fa0a6b1bd88a3e87c422483fcd821827d085f78c74001d1d9ce729c171df15427c04cb2e6f08593a5b15450e9c88e9a2ebb1b4c9a636060e1115f9b4f85ef01eec8bd32c1856321f80a527f588d08648fd438b23ce4c229af531927cdbe70668b9468684ce73663730bce1a03d1853c2496faf03ffc680871e400479880e32fca6d231c8b55549be3386117dc228329d0eb13ef40afd1d1a3e7f380c1e40d606b38d455d868b0dc5af99d5006b7e02d7a78e3717aded25766a3a7a212ebdab462cdd178702c9d2fdbf00ce291f48a0d6d048ed1c6822368445f1bcf20e9cfbbe02b47ce6ed5e7d355cd370835038562e1ff841332f23db2e4613a71afc818c59439ad1172839cebfe2e625e2ec447c4bfacc303eaf63a6c2d0dc5929201aee6daca304530290056b35b3f6c7ef0d3b1795a0c8d45961ea273f7f7b1d1726649a5f3f9a84a6408e886279bf89c993888b081d0e1ad9a5096d8997fc0fe6b49fe6ef0571674452d8a9604d08aa98b07ae53a7f63ba7c6b43e27aeaebdd92d42144919d1e2c72869c2b415a35b9014c0b10740028442a5a2a5afe9f1f4d5a5932caf912a0c7b8cffffa9ec9281401f1d4c4264ef25f270ca6133ef2f5568aa27d34734500f81d4292b3f678cd94ea9c4547674173b136df34c36a49e0829dc64c5ccc82fe90340c13a4b6448fb1a70198490ad8c5d00f7df090f2e297798b45e39348de9bda4a492111c7d3f387f0e387d54578a8862de6602c93429ff891f407de6aafd8e93549d1e5b7cd1f308e02987880caf29094ca9c228de2f0fa1fe064af0a0b20b308e852b313646b7b6aa6adfcd1eeb16dffce9e05f32dec12176f98f945dba449134136afea441d0e66afbc50c7ff50edb01094b44a94118b4d5076d47db496f7efb55837d54a1a0f795045093d2fd2f861d6824c7770b32cf8c7de4db0579eb2ac3580a248d6cca094042865a2d574a895b02ba32fd86da3f811fb739ea8900a680326789640a5728a79541667f80e72017247059e8899722ccd36fa89fe4ae2fb71eecfa509feb4533927ea69a65602fbade1b89f81a9572f06aade7435a5c5fd8f1bacfa4d17bd42e45351611bf7b8de49b2b21c7e66553992268aa065844f6cd13ef6a3b1e121818eea1e4a7384cbf377c0bb72895267480657c884f73312ac5be7baa18ff54ce4cebb36883d84b35b2a8fac6a9b7d162bacac3e49db8e6c2eebf393a241bb62787353d0f2c56267f53285d1185cff2e47684df78439908af513218edc46f5f2f9106eb2e98f9dc1986ac896052f5c97c53814e4cfd24de79ef75c5a99ac15a9c3cae0904a97443e54655064333c6f90a1f0c897d4f1b3e0e44e1b58af80b893d4a88747b48ec7533a4fb7f2bd42ee2619bba419a1c5459243ef1d12b5885f8eac4a031cd187b955affe91cad74da7a5ade8934e99629f6ad4bfed482ca7fa751385005b3b23b636400cf045665f40678122e21336f33792a412ee33fa7eca01f27137baf47ccbe0cf70e791d54588b40847ff9dd59c456c95354d5089d0aa9b2ffe8fe7fc2a8485c65a5238b09d1eecccbf0abbea5d67533d6ca233b721ee4fe7442eebaa16e1b0711a3062b74e43e7cab23ac747f70fb1707e0d488dcfd2bce4d78886b6b2dae1fcd726ab01a7428232ef80e282025c02b7abdca2ae12b78df8ffc7826c2fb24ef1ff4934a20787fd74a572f0c5669740e733d6fbf23d12a264c524d86c67613ec5a6c076bc76757509476bfb492a81420fcf002d343e25c780e3d31a1b8309c8d4745c56ee64d86f70956270ddbd14c38acde1507a7399de7fe337fd592d56b043eb1cbd023f98b8d3b76996c38629871cda20b47caa42bb0f7651ea0f5bc8c6488d62b94feb470f32762b658a48ffc703de18de81d19ce93e604273cd83ae6546918c06b33a5d76a2c9af27f4d9f93507b87461f6d961cac339c9b604b71ec3b58f57d13d8bdfc50e09182a1fa8300488350d327e86bebaec54d93784efc4305abdefdce39a256d7d6cd48045e691a4f0166c13da68cfc24c040029faeddb6a6e40b3638d2bfe09fed02f98710b779c8d6460c98c6ccf401b262228da6e67ee89208f61ca4dbe56fd5f2709f0a0e8c5ca82bcd4c418b256dffeb38d6336beadadc29b3f8e63c96ab6c6bd311cfad68b0efa3a65bb39ca82ee6343755a3660b763b1e33ca3c5a1e5f5debb74f903a45cf9252449407622ee108104f13d029874df8ec4429c976c577d5003017503e843c64ad2754588ccf7ddf8919003fd0dd8e7069afe24069201a68b4e5cd788dbf815c3464f89a32660be9c92e69f1686039919e41da26c8bccda4a07949ad0ba0c33f14d612f81f45042964b22852e9e45a559216c47e66501d87cd4e0c543945b7716e5919ba6806b8e4d37c3b81edc7b99be067685f251f81089ffb47094bdf15b4dcf93a6697f7f725c28a6d4898a2ef1a605d5c3cffb0c5ce12c0bf82ec898e9bafdadce8d1116fb5a1a9c0ab5f9b45eae812b6640f06a04e9cc954b76469455ffa3b6381d3229794c961de714801fdf6d83812fe959bc78da5431eb277c6c427b7645bcce101498f1b85f075d80def0c00688777b49a39fa1cb4360fa13559ed0edda0b5d39ee58c586f7550a24cf8ca63825c407a7c101f9373d8bf5ba6dd43409e25274ac3c99910a8bb4c75e2b6eccf9b4ba72f676c8c8e9690986885663cf9cb1cc967716df6248e4fb54bcb8c7602399364dd49e4cd0cfb85100a448562c05a6c8224865672ff4e91113877ea3c282803c957acdba4c124acee7a0be49f144d77cc641613c82a866ca46283047233adb0e807e426de7004d1f2ae106bd256f9dbd71e97b262b0c942ac5bb3285f4bc142b815393eaaeef4e16b12bf881cb981da37545a7c7ccf608a0ddd5643499e3a53dfa02ccaf8ece18ca012a4f73e5a6a4712737b2f6beb4bb577472082e08f24dc09a08f6690b1ee3ff2351fe4db4cc97a9aaa1f501456a0777781a2ae5419ce6cc15a2716a89b2bbea6206575bd87f86c990447a305a44f48942ca8a84d9e04d138a360f130f02864d751540a6a1ddbdec9a01117759eb544e19f4218a3cc07204bc1f31f64620fdddad4e64181345e92487c910e097110a204130f07f91b26be0256c18387cbea0ea870aacb25260a39968ec0bab453b3ce31ac3fc4a24962f7b7e99fd7e7f7af8545a899bb075f7666883a2f1c601fbcb28873d6e8e7e9be277333826c569f7b4c8ad6e7b6b8aead73379a8c689605f27e76bcb7b5a4309b4b1c0b13e1219097cb470348bd2da5f06285c6b6da40cfde42b8a7da230c8dcdcf3900793757197595665d361680be0b27d4ba6e83addbd7788f5d0a6f1d96d3b604e8c9cca7b0d19c050c1f0bac717f1b1e97ea7df0c3f8272990e9575855a456ea661fe6b86edfb25d7df4e7118e20c874bfc11ac655e492bb3014eefef38e7d0ce6785ccb3e4c22b68db595dd1dc17a42b98372434921cc0af24349265c2fe88fdee47de415333942f6d8a73fde21631d4086c3ac7f61d3cad6bb88d4f181953e6815e87dddd7e4f8401499776afbc3672dec931071f80ed3d8874d68b8be13200c017e1425831f42bee84aa2ac2e4ff98ce457e865aca19b6de3a93f07ab5229af3e57922b1f455b6315c3ce7e20e9623d8f9f96423b2f22f51c876317362e8e29e5c2e260185e0f65dc862fe93a96814f303df803551f6166d61406f5ee8b67f78e843b3c1c833ca21563f9808e3b19cc4301658749fc13083bea4b52292c31d6dee6d65a536105184947dbca749a7c7cf4865a45fd1522c10342ff20f63d695704065367e27e1cef44dfd5a4e2fecd288c7f48d861215f41603a5efb8455270394caeb7443a62447ec4108c634b619c1aa1df515f0933292e3549d429ad5b2cd7ff9c7775c5cd9b789268e0b8a676bfab9171d3709a718d83f81ed284c7d6ddd3069be1b7b87febb845a42cbb0e595f40af5c6da32d0242507039a1b6bea5ee69182f330cf3b042ade513771fff812cc42dcd5475d493a139a6cab2581d05c899325ab9e23c987226a7aba5a1236e14ab66366762ed8a504d3ed7e1ae5c6eb0de617d019d0df260482df2d2f0e57af06b17b4122cf520bbf0ab614679e2fb091147954c930754e2c0e377f695181f6341d42e89633e4c9a0e677058eccae46f888fea125739a1bc7f52f9a8488b87a82dd611bde49ae936ea4e7f8fb9d6d1c85dadccf5be076ccd0c33ba65f2a279e966aa6cdb824a307402c2b115517a8c19bed20f64e2506d4cdda3f434aa3dee5ec6a5002a3c05e108ef0daf006cbaf20a89ebda5e2985a105f8548403f48703c00a469f8b53408ba89fce3329258462750606395130693e293cbaa410bf857d3afdb5e87a6f42c9a3cd117cd5f51af93f5e99167ca8ed565fab085ec86967c3f49e16e91426aa2f980a6a7a0e10b80e21d981877d2c89b0f69c8a65035145dc3e4d9683621d996a14e5b1779dab3c5f364bd8a5dc2697409251dab3f74ea8e8ef80822819c94779eed34576a85708d759fd9e7a92170d750644f896e2c8bc7545b55dacf96119c5c782001681585bc27740051c90c2d6b5d1c2e73699a3da73605c2708e15748acfe010b0f84be53548c2ed6b3f5e8e64de4fc913522a64c1e3a59ef1fa054eeab7f6fbabf9e9f33022732f54b7ceeb0763d74a4f971d4f01fd3cefedc4953a8547f6d0f6db762d135b586c164e599da5066ad58bea5a1db317ec8464c9d5472d8826d2e64ed8b12e92e5dbc191c93dbf2a89204f56c80aaadfffc619e0ddec6ec810174e6e999063ba8462465a0696591a4a229a0f556af08be065dc3dfba4810d05687810c3e36e1e0e7220142485bfdfc66104fa69401249748568da8e095a55837e7983af48f330bd3234d4f6bc0e2c006aed4d3945bb95ca9ee02d70272882ff4bb0e4b33860385a224e24f7c3e694f924387084e1916bf71ce4a68126c45649772667369584c046dddd1aaafd484340dc950a993b4526380d1f1119b29e3187675f35c3bfc5eb82cd71669be895a6ea178065807d0213f89d73462765bd081482988407966adfcc7b5cd14c90738b43efac73f85bc9fb83b8573b8eecea31f4bca2e2cb25f458278b0017d562a6473a2b971641ece0a7dd1fef01b78d65c7ab59b2e98d5775bc9a534d95e69e1544a8c5a65df219659b6de3032a06d24c1ee27b94ca6efd6ef537237877691aab2d5a10898aea84bc5df2daea4d30a7040a51305aebfedadf3711115f25ea144dc4bbdd90577c4bf548aaf291126d412d3d0ec0ad1ca821026129e1a60285dd051f5e80bbc6440c90076d05b079eb4437bcc32f79c6cc9d80b9a0a2b4d96b5058f8ea90a4cbe6a5f6dea106653a77b39da22d7827ad74fa1fc37766c391742c3fc85a408cd9787628a6e6cae56163dc962eda5018f8f2eb86c51ddd149974e5994f43f546e8d1e39f850c4584adadd0e87b14873928d4fc32d6a84b801273d70e5b5b5a7d5de91caea475a5fc0e3ca960c9da2f61b6cfb81befa09ca33eda53bebd90ed793f02db7c967488355dc8ba732d1c50a378aedd7394586eac7dad21bbf5eee154c68b2f8c4d2ea68dcf90951062b199bcd42c78b42a613fd0a9d81497acd1b8a762c8b61dbeb9835866e43e4c6d5058d1105f8a203110c41e11d1fcfb3b816e3b96ca96cd5115fa843c84ed2885ce1afaf8550dba857ed388e993b16a72dada4fda8378e4687848330714817d242b2e365aa455278de584a3672e28a2d5e0f10e6b8a78cb785a1d6fad823c948dca8fac827ee7b6dc2e2694cb189ff17b6933a85a0f283ebe82b4dc19ed5b6b5f55588af4a6be2de02da199a903ba143beff8b0f656a82e2199d84ad3e6387e6d9d3054dd927d622e2757984a618b8c7575e25e83b5f352d94e02f8b75fc2f752c13b7208ba407a5637ba0b48220279033210a4430201de45d0e8f1a427fd2ccee5030fadb3802d8143de85e2f2092c679c01fbe80596d61d3542fcac866259cead2774dd1695e53e2e18f8dca68514e0d2f679af97b0f1e87bcbb0ffdeadb1e1e798b06d8d6f3eeab6c6e0fc933b17f2d2dfd442c681a1057207ca53109cdd541dd3d7ade73a56e3b1c94ffac3d97e0a40d9c890946f0cac7c7b5571fab42620b751310ce4a34f21b8357c2098a266ac29779a1c28ccb008e86b0a0db3f80816a13ddd7ef69df4bef3609ffd0ddc26fc21acb51bce1c3a0a5b97f27c5102f54ac23430bdfcbaf384cda772026037f029f70571672732ed4129bc4b851d184195769fa269c636aa00ebdbc94ca91892fd3e7d2354af3663360118ed331d9be7c2853cbb14cd9cdcfcb53daf3fc9166d0256dc29b585236058ca489cb7e654c35e841317941cc62c0a9d0799ebe335909293818b49a1b8c8fea948fe598f334c682cb67b61171a928cc711a11feeea57d5cd1cc2d67bcacb3af110237b6395140c7e2727348e6a8b98f6cd8750523f7036be21ae6722a72861895607eb10bfd5aa9426a396f3ab7b6a533cdcb58b52d7d120e96516b42c0ac610d7a455cfa29c5afab1df24190c354eb920f5f3ca67e5ec2522751dc9cf7ccf4c7d769554d41ddb82fc8bf19f77004d793f40c79054a1b8ffb74031ddacde94205eda94c81af42ae8a5d6b9b875b06d76e94fe0bd50e3086cb269709cb072e5b0de382cf7b56b0d1e0b0f176a8320545bec93fa504109e858423b1f5678ec318c7f4d98f55c6689ba498cb9d91edbab960b55f167958644a917da2fb53267255b9748cdc215f5bdfd5f71c055bcc0faa0e289de3f891e2511c5e4afcd28b0d3f78efe203de5d7e2ed370eccc8e46df98c1590b0649140db0d8105e143e5ae1bca9e2481b8272a21ae8380a41768d28ee584752d05c723a6822920096c2c12ac47f7cfc1fdd12150a8919d63c6cc2346f262598fbed659ae2a715f39317d175158a97405ac2bfd0f2ef74f31cacbcf7d2389480b8634921794bc16704cf10c2437acb18821eb301866b0e0a2871d24875a4202957f1d4708995c50581764ea0d58946248604a8935e3289c84da68bfc7bd771afb2c90ad983585d9634fa8605f75c0ccb048b6623b992a3ae691f4f84bcd1e328e353668e0d3ee828a3f44c05411b9f5608dbd090591c8803cfba5d4045559029b78380fe13779a6068cebe0d34c456e667fb846838495c8ed8576f14c750aa650551d36086a5a0e7bf2ce6075ddcbb854afbe56762f3a492b6f6e86134a04432695dc30f74862e54dd9ee84187a0c16321516a01b9b45576a3b1831c59dfa26896521c6621b36f80ead22ce5f8dec147e4d719b61beac162eae9f3a4e602b01f08e56007814fc702e0e39f3d203475f046e6d478cb1a640b9c8bc6a1c43ca4c697942a952e014a9f877c01ba2be0329ae880ec1889d90ee13c28309746549ec97799befde0a82bd8a93872790b814254ca34148d346e8f208915a01ee3d98dc79940e0d934014205d958dc02db48aa0c703e6314d5a60c9b40f1bfcc28df0fa895e4435f136fd0db725f4b48bcfec9278a095dd09462d109a550ae83b3b1f1d2c1a85daf02239c13635f427ce691142fdce6cd1062a3de16398cbb09ba15a51b570bb85ab9d20cdc967f061cdd179ff69194fc73a83294ddf04bc9588480427cf27a14256622389509b403864e17800c2af6fa0049b4e70cd6df773ee98b98a5344703902ed75509a2eb4c2ed43d13924e4415f5ddf64b4e6abb6113920287243a3b9d4412967428f4eb657970cbbffd717dc7cf581b3bb1be8db5f5fca8973a4854ac231d6eae7bfca3122327412021d3b65b3b9e37f8744f316bc9af8196bdc92cea2f63d87badd710e1f85f52ba22b49c62edcc96b22a85bcc2afa7aafc247affafd38a1fd8c99d579f8d64526d590c983d229ab321eb93eb0133b5d586cf920a8084c3f972bfd20eaa847d7060fd49f82c225425a417718a88a64d80cb273a6aa6dbfaae853e1802a663324250d504d5b0b50405271451958b1caaaa62a1a5be46933aaa834c5255e176d14752a7a3a99a0b3c7ef46f4ddd54d02716966b9d9f0e237f40ad9f4a8fe56ea364992d508cf89af0934c9ca7702e39f6738c491c0e6a6a55097683d0ed88fb589d2c73c9edd6c1df1012c021e4d0c4e4cab0de326fa65c522bf8d20b56c6f9ae61222cd4e1a97b1760881a268c32f0c96678be07441de3f0a7a84b014de0fce0d5aaa93ac18c2470aa88228447dc646a80c4edd377a5f0f1e80eec81b2721c3c8326c8d6bd75f690d44aabfdc3594c138a10a0a8be4a1fe95482bc673ee3509dc9821843be913e93c31b5ac05156408bf5addeb7f31033204d09cda88507c57df0f82c3f5cf9202ec4140acc6c86893a8a7962b928696fd20848968da5e171b3cc856f7a5adfef42f026f0b0fdde6d37b10c6111409553bbda9d771c5f012d508e56adb0bcd8d804d02ee82c6853ac0cf610ab0e9c25718f320d8f0fb10f9a06eb34ff9b280326939277003d2fde7c31e049b58cf3f08c2e3843ae914e08310d54bfa5d1a08dd7fc1c4c6a066f8f5af010d4f0341ae943f617819b0c28381d03eb0c07e1acc01a8150682cc17aa5611ec2244ed7f20ffeb22163b402dd0fe84c74a108109ee1af1830920380f21dcafc8d4e0c74c6d60a1d620e94cccf19ce00fee50bc36fcc0637b00a9ee5f310460c8dadb0b98c13cf0252f60803d504ea80f9e3f3a2c197e5a0466d1ec03563da74fb4050a7e7037bc490196368c85cfa80ff3198697fbb1811fd42c39cd6613d87cf80113f62566cbed41696c2f1f6b7409705249153d88a3b89926975580f986b9eaef057a902609d61874f9f00008ef3ee94406843588732243627cdf441cff984971d33b1852073edb1808ead5d356d8868fa7a80337b723d4ce506e1db4098b98f6379519330487943a15d4b992ed152873acc0f93b57ee1c94751fbcde7ec07a26d01ee2d1375bb31a1404cbf69e4a98788c66a802a0c915840ca5d0bb89a1dd77299e69378fa80893789693a482c00629144c3a68dca8235210e81acfbafb4089b10b7899a9765cc002f285ef2ab6dc8e892b938260de2a5cb2aa439ca8316dc56d30872aa9706d7e5e69cd84c00a5ed31f36f2d02aa02a9091cefc85c4bf3c4f60ad0fe5a618b92490deedfee968db8f6a1d49369d10dc993ef41db627bacdc94227c2ef3e7cbc5e63f7f7ebe00319c28e850b648f2ab31917a1a0308c448aa4254879057316d23438ec9089348c20eb79a177d6b2e3763d67e2e8cdde1fba2b1ed7457f1e15cc0e8b04b31cfa78c737538bfc971ded27ae4ec166ac5ce4698ce7778ef83e40495ab772385c1deacaedda7cba901b28ef0520a1f813e621b62946488365a65f56f8462c142e5c0628b176ed3bc585a495898c1abbdb8b92648ff1de66e5105b50b80f144c771510f9a85f324c9374696c1ac332861603b2be99dc62343ca612d7515f3018b7e0e0519c1a3e34e8a5be604f358e5b5b9c6140dc70ae99ebef62f98fc8aed6f5efda54eed7e0962b021beb94070cf1a5bdc538c6e4ac6fde62114a4983ed49e1b33b09f3f92be5c6d3fccc02a509b4fada76d6e9d24408212bb1bfca2e3331fc84340a40a1d6f10726dde1004a85f40e0219621f058882d4f706ff0066c6782935d9dbfd4558f2d5270b1db36aae4c29d2f5804858c1a922a0f084be0f247fe173e9d4da7b7d5923ebc5a36e82a3af0602c1a1a8092c8d2327d15d8a038b099b8b7d4a70faa6dde11d21e25803fe256e72af77b06170a350ab5597571a3158cf330313a4498af9b777856cf0ba60ce5c1f915651aa16c5b81fd19ffd409d987b786a4d4987d812cb126c392cd96c2c1b6a0a02f5a043200eee986c555c8fee9a91e3af95c34008d60119e81acf5011f364cf7c8a28de10fe2ce07027ffb33b39a74c2400bb4736eb7812a6fc3dbfbd42ea416378f351b4f54223e29ba372047cba0821afda7d49a85a8d233205a8b1d5c6c98ac06256e43b5de8d496fcb71a4e091d2115ced9460de3d4ba554238d9a3458fc198ade45740baa5984bf852113ed4d7f88b43ae415a55742535cffa90977ed81d3be08d1c61231372e759d30a9a919fc6e0d90ec36399bc94d490250e7bcc0f3e8c9c2f19d15461bef1f8e24ead734a9b8f30511ec3284d488038911d88a39ee8100173d4625b7aff810b558a43ee111c6547257e74265953fed9eb991e99373aee18c71b5c4f55b64960253864b7bb815f3ddee91824b7b47812e7476f640ea7f7e62bae50f33033c13bcc939073b4bcb2a3d77146a9798d1dff66c8eb84c826b544072ae17af5b758943ab844fd30ae5497bb5c2393618c0a9ab703e416e7971acd30788105f48581d935d342fec5c8b21a05dbb8d1d06934ecc182725597cbfe76ceab87dba6f9857c5976d65ade8b3452efa31a9cb665c6d4fe02be4146d46199c716881fdb48e3d68e97884db9352d38a7148e6c3eda59b4fa6ad9ac2de09fa8ce246e091bf856311fba8017e3711f711679e4f8294456892e3d202ea30d8e29344b3be25c251ed9677fec365b216dd357d1da63604fe2e479256364acf2bb183878658b2df08bfa9666534954f083abd6b42aaa00da58c4f7d6d7e26a5764e32e0819ebcb9114366c3bdd15dddfafb683a80f4694e5dcda1048c52500376eee4b4472aec0a7cfc237c54340310a3260f0c04e0ac304064daeed417e876b4347b9a290572e23683d0530323b11174ae8a2d76a49f05a6ca8395778b6b81318235ea26aa23c4cc8975a41c69a44c52b84eaa8b9d91f918d398f0f5e33f0051f51f600b3e50c5908b9c625685552643b9241b1483b8abc9b95f4a0378c64a55b84c8dc3beaa2a11ea5e74e7a767fa57f720bc1d5f287026a7b59c69d95d871241095c3730d0e0b077dd42c2a918fb534c445edc8a06a2d421ff1af7c82263223adea3fd1542cf62d5a3c0a0a20f3772db7e3699570eaffc14652c08914b87d008760eae0f4260a9d5335cd5ca4d8cccd7472cd17cc59d340111087774f578a34258bb1b41ce912c4166e383e236bd3d8520cbcde4f2d0dcc351bd3b23ee5b409719a653f5cfc0d1f17755bc927dd33db9c5b095d068fa444e3cbd25e86018db4bfcb97e3fae3665b7f21a2762454d96c34f8f7436974cdb43fe0b95148b93868d362a33c7422dc584560e31c91a0e2088f3733555e4c952b7291c31fe10063acada0ca348edda8337c61a962c7f9e3d13176ef9a30c6e41b7ebd4c77d8dbb20537d803b71695f3133d41798ee52f5daba7785946f4d0f3e270e1190b58ae6f86bcce58c1d05a93bb6969fb3d4ccc157bc404c707fa6822ebb081857a1a27e3df2ed30eb7ea3b90d3ce807d6cdb10924caa43c74ae4620b578b50607e73484350a86ce7045f42ffc01d1710298ed8b33e2850e62dbde3ce049f182396820701423ec4fca40b43a010b23ebe15a36198b013fdf1b699e39af004e16099cfe42ad49db4bc543e8002333af9010d3e0e813a2c33728379414ac0a5b48d9c66aa578c3abc9c49dfc5e42e0488cf9ad57147d852c5c388a35542f3af832ccba884c7187f3cdac866cd5223fc5504da08334c90ecfbeaf0dc2181f4ac740a856c2fe899efac6ae5cafce679ca30392bf58864d85941afa53caec00719fcf4b2e7189ceee86ba9514af6378a2ed344b024425a27c306bac7ea00d26c210b24361524f3c80c70ae4f61b85dbc8fcf68cadc225f7d2d79ce6cf8804997d3e686131efafd72a6b72e8778f7da78322b2fc4213ce6af25f94fe6c6ae128176cd782815f4b9ac8f9910cffde8a7ccaa05706abe97e1a2f61bfe538c3874a93f2f4e87af68d31559d6c7eee5e893b2851df21cb9352be91b180722cd2a18152408a77dc5daa759f703b8222bbec96325575a5bebbf4d2a385567f6196e74c89148daec0502738123bbb1bbb745449cca793fd27cba302ed8d5ecb60e1a47d6ad5b25068ad6b424e99790457498a30db60ece46c2482a779faa7556d5aae5500ae1b2eca2a916b6d1e96cf8836db37388ab9e0237c1f9c00fda03130af9b4e987f768fac75ebe1fa8c0a12e577573b91f2dca9d92f23733518f69348f4591830a2a218fee616122a8fb79a2903b8cba0b9a8d63282a4e1aa5a16c5b9e4bc7cbdd82b4ac7ee2eff952cf41112ba9308000fd5479b4dc20638395ad96b99d258a88ad2f97432d5c07ce06820ac59b5acfed4a382ad879240fc1251817ba3c97fc3ccb9133d0bb03b59924dc52c2e47780f8e805e92aa456c2181aa09cfb5d2e476c32fc6e71e1bc9ae18ed2666f09eb6baa61e90ddb0b15f72c043c80c9b842bc46af664ae20822daba8435bec8cbb34a187745088378a1c6f15192e0a80f8e48443247e28da48056c2fcc2baf5923952e6a13c39e56afae2a253afce0b4540800b883fa2a83773f8fdf353e3aa8cfa842e5bc266f16bd0337f858569a5ff6346d288c1d09225ecd812b845401895053895f13d779536589c15932fe7e69398e4f3dbf46c831d104644147ef3862c7aabc955d89fa942b42eb3bec2194a5285dc7806a37615e90af92367b073a869a03ab40070cf56c18de8a90d547c58fe501dfd7a3a6828bb37c19601ea95b310c3a723290382cd70ea96719f1495506f6db615a413f6003462f7434c1169af758bd10ddb9d7da9372515a60a6290cf342952afe9e7be50190be0a3570c60acc33c61e01e0b27f732598751fd1961b406bb22918c85bfe481905b185b81be1096cfbeb42e612d6c93194eff39f76af228675cba0f3be4c8a6edba96fb2942cc59d6fdd8d017194ac9df7489c764130be35e86ba76631f5ad93dce56ee8e9c89e35648616cacaa5ee36acb2a464cab5fd8ea5061c50b0fe3064ca05f9c91c6e68c2824787b40ffd5c025940d8beb6fd5efdf4cea2e7ffd7d88cc923b820e719927d1d5b7520c10c6590980962a9a4ee3196e0f23af81e61552f9fa5502492f3b2961925f78bc21b124f010c478b93cf88707f0bd922d83d3d84126225b530c76c3387ec47cfd8ba50f0fa8892e5588ea2317bfd4e206d9badbb1343c5880447083a2ec5c1270fdc6fe910f3707eb8e1d2f6c7c32521ce5eb72149089ee9c5de8c5caffccf3658170040d10d231cc08b6462fd5ec925b2faf96e578f92e48efa1899b7bdbe52ed265a32ed5b4919b2f798d04fd41132e00a46ceea5bb720f9bedcab144e753391616e3afc1bd2eb3819495fcc4d2dc9b5842f21dd711b80a4147ee7b4e12b70938170b93deb4fb5cd068b67c005301081cf90cad42f29a1795f56673b52cfa0e8d4e4f790014be7a9009e874fe2d187e51fc4736e142b831059f813a7323e664a2c0803ae122294f6559ed98b0b75338d12aaf7f5597b10fb7f159959a30cbcecd08c2ee9784e2c184f68559f619c28e460c49f3cb63c4d0f627087bdeb58c889fc800fd05b77dd2dcf50cd65a59d7d83783233e04e0025a347ce273c8e10a62994c8bf9e362e0870dbc32d0430fb21e1710e6c39efdbd3d1b185110e57ab305fc1db0793f252a381b273c7154c541d6c1a38bde072a8b9c58f1dee9afbd08f99534ae32c7c84db144faf80b01a54114bf454c912d200a17c405d989c35e134dc36c29d60890a2aaa36c601a9dcff054195bdad2a05aa81c5f230c1158696919e01da10576fc8d7222520833171a4afd366cc1a0083ef8c3866e2ed1c9215cc54af4790d0d648958b87314211a5041b13593c0f12aa5096830e00681a6f2053dc03d6fdc86ed27534ac9fb6fc889737d104aa293f618a219d5c789b1641f471306af0fb62b417526f3c6dd584a76ccac8116c06883b53e1ba3156de1dbc629cdeabd2e6cb04052f0da1888b29fdb4a20e8cba0a400de4789cc3b063de7a870043c6bbe27cabc56e87ad89c07d3f07c9aa0db3e9f1b18a0b5e1e7c3b18891ba6b44867499466baf9bd1f89ce2e8e98d948ce8911b6cb80530faaee0f1a9cac1829c6866a103a27bb0f6b586424047dbbfb37e57b3b43cc7ba2e1088880f51df04ca440bc79be2825a02e434499ebc4643f6d0c758bd8f7856ac7fa577b5fa12a13ed31cf11fe6c4e0338688cb877748dcb5ca59dbe4447e05c9f5f0dcd1d1e0376dbd61d59bf0f11d4d9cd2e76646610718339a6eebfc0923033319674b582df42151f50dca19b4cf48bbc2cd4150f1338e53b8e552cfe7b71a681f9227af90c5de48f940b55b37ea79a9e9f22547563228117a615a453951544b853e488f65c0198292caeaae4df8f5a2d1f61fb094172bb5facd0875a56df1b333375f1e6e3c77ebaecaa51359f6540ae6a1179cbed494a22b26fc6f2c7523c195868edf5fb3aa8aca1f1b4f81ef0b4d64da94e32545191c2618ccf2654e63d06906eb74163bbd71a707f174254f337468b0fbc9da15a8d5c5751abaf1b7bf67217cfe19d5b2588204b564e85bef4415f41c1ea88da677980599aaaf317156b95184c2b1065d34aadc28aaef9d32e4fbe0f51eb2f0fefb156c316a9469addc6eaefc9f2e453babc556e301ffa98fdff84e07fe773dd78c3c17883cf216b274f92134d21d0e943d0da1584b7a8d484c2bfdff07d07eb13b41c1beef6c256f8f3d93d27e8b72f5de3e1913aff5a85ad60b19ed0dc655f946e22d0aeade72f22dd6548ded847d609684bf8714d870b6545967e8569bc57008438b54db0919c0e1a3bac79723e00ad0b864a4390607010ade342190e56ae6f83fd351b42ff64292d7490d02db92039ef0d11ac72f450ffd55999b7fe9f86e3a98351b02c5de617e547bab107b513d74a986022d34733c3822735594cff29ce60a60117a1466620853bec23a581763f8c5c82b44218176e3ba81f93613feea6a952691d2ed8cd91cfd95badcdb27db80c1479c96f91312671283c450cc6b1fa935d2f85e8ff71009e0675e58f51144617751de57130169da4aaa0d0de1af7108f4effbc897aa195671f7d9ba2aa039fe810a989aef093847bd3c74a8c65a39351bda0f55ea756405f7843bba49eef9b8a406045551079b73e56c2f36dadf124f18b351d3aa7c22d119924c9eefacdaec620abb365fb30d55caec17d4bffff655d8afd6d42b62f7a05ee6b4fe23d4c0da2a87eb9fae24905b39b01b3e95888a7323e2adfbb159cc11feb6c0f1b79b32aa2a56e06286249a8d390200b13ff8fc65e1b48d301c3abf27f8458b8e8339dd131035e16a2a7ec141e41aa0b4372fd1ea75b61b4399691ddc03aefca62c91eda8e4aef8f1f0f32655d976989d7614de526126267afc56d53450bf84c680cd3fc7fa57890f37f039ea68f678ecd7dfe7dbe9339da3decf592df272fcba72412d88ee4882f3c588f214198a1165a010b3691fb8068518193e35f6b1d68b82701ccef5bd71bccbd118099c2fae0c5133eee9a266accb6f88eafcea93a66cd21515a7b1e18f63cd2c03772abc1640d1f041e0ed008e37c0ab8e8559af1f018f9dfee674815cf3a1d41523762e8f375ad5b7e12a2356417f97757403125ab33e64318e8341cd863879f0e539ad72a4b564c049b8eb102ffa2cc85e9b47e56a66b5c0c2ae8519aff21490bc41613313a3b19f9d5cb4707ac4e969d6589da5b77474de383aeeed47593c28eb620ecd107f0b5767de3169e3a19b1ea5b2f74360fa20f5602611fc63f18584593b415544a7c0000323cfdbe17fb6011429be60ede3dc00ba0c28ead516f9f8b2c77268403a8dcc7a5f0fb5d5aa84c81a16daffa0629efddf17b6c2e4f7318fd2dccc4ef35ef9a2c31119792feb14fa3afda65d220dac663650e969b3c8a707d4cdfcbca6c2e92f32fb1f32c035ff41741b5e26fa227c3078514bab072cd2abb75fefbfecd73476e10b2a5d78fe740b3313d7afa1a0c07720876812c106eed1d6392ecb08fce2e87b3bdca766ce41cf927b038042cdbe7b0aadd6c2dde036bb0f88889c01006c457ea070052e9e6ebf744a507f9d04e5a9553184bcc78213845dd9b3148572aff50b3317135fd4485d8c7eddd0b2966e37a4275f00da34b88683f1ff0c495da739cd333da53e0e4717aa68522c9bdf6bbddfcbdcbe88b63e421580559037754c8dfbc3d7fc84dfb628bb49d54c062ae628d1f00cb0c6ca70e4f1acb73cf25ad6e46bdd5ac4207da425d207cf16f2609769c8619a60e4b126f8e3b2a7f02bd6007bb4a43f1fa71261a80003bda2b64c2a4558b29b00a171f343a2dcbf315f00fcfe3b4886c1a73bcb719d99f2e144c60e834735e6d1e06b7e183c468790984f44725793a85054a5579043365d7a04798a0f0b12cdd0daebe66e26db2f17e8cfc71caa9312c9c4cb9045e610fc2eb20cf632d5f0513d5479d2092594162195da842f65b66961e268d18171a1da274fd776c32272f517830b6e04e31a0662ddfecf66017d103455cf20bea8fb66f95cfe5f1f67cf89b5b99d890fcc76824c31b96130dda478b4dc0d33023e7d512430209d8571792495d3e847c2d3711a0a3e1c845be7b5281b32ef66345c600cb17c99858d5f1c6f1ecebccd32efb2eb5f08b586ccbbeb535fb1c9e3023031fde82d6c9e802cce15c09c134ebd9511d9761b88c59c53491478fbf81d3e0914c158f2eb60e6482aef9df095f4ef721121c6934016dc85c7e1daad30d8f97dbb70df947ee2ddb01631cab97076557d24b29debae03f372f52047bd3bdb5d8f371ab721ebc4a4f982ef21efff3a818606f8c7352a020b23ea4ef3964bb5d558460069480757d06109cff3554b2448469c5a02693b2885c981936f41df4c9a5a1b15fa4b0712688b122ef7f4c8ebbba731b95e80798ff803ba4e707b2624fc14b28da53df9952782183b18c544829361850c46b5ddcd4974b2485105ca381f3dbc8e3d6aa6f3fb0b23db07c1152061af8bf3aa25ebc3ddd061d9311538d4dc01f4ead8d89ca8308067906f9bee197910d3f954a8dc8a0c41bbd6b07ad819f7cce4b8415db1ff0ade9764f15db1250ee5031d34848da1f3bc6d533b9275a0b50f7687f5c0b68588b0661f87c53f535d7bcc4b924fe4d4e490f6fb43fb8add23f85350157a73efed3e39c4465fb56cd24d5b42d63d8f5c5928000fe9834b94319b2decd5c6258b2bc342a81f51489c0e91ae46016bcdbb2b257ee635499b63bd48e0c1bdb2465a97c7bd37621c595536ee64308316741945f90a55c4bd8f3e518ab6aca572341c3462a0c59462e87e903999d0754b6618473011441e343128736162daefeebe48533891d314770aed5bbd38d4404b1163890e7229f52fd26cc65186bb5bb8c2e64929122308b57e400b23ed7ad142dcd2a005454ee5e3e9b82fa0dac74a9c83f9f948c49e28e47e6d1ac5e8dff1f036db8edeb9ddca7a240873b3073f4cc26b83f61deb29c90d052f123393e62621630380c59799742d97e2c5c34c29b41d904223b957925c98add7e903191fa3c6f88b377e67ddd7affd83af5cc20ebc7496e8d3f0150c33c885296e988e1a072bcd047fb186c9de9a2dbc23e35b9b7bbeaf9a32b04203e9aaa96f85b4ffa671b7a705a176c2348d565c4e8531c60071abcce50056e76de162028ea04640f4565fe79c648bb119afc2f4452132b38ad282ef86323de18c4787fba594e9429e2b94307cb42d3df0c235697a5e9067890950793ce33250ca577dc61abfd02fd99e64dd95e1ab3220e95fdc00a33ec587c31d92e8f4d0c34b6ebff204c08840898867953aca83d2e61250bb96baced01a1990fd2e7bbcc6a78c42ff6b777fa3a67398f00f7b4b50f0635ed9799d0b7e71a85ac8fbfbff8f0e853a7ac74d92156398be562cc72e759897c8f57f7f12ea7e1e515798dd384a6f58317db4d1f7242dd672b901e07edf62da4a260f814514211e602285709d1411e3dd5941216816ad63136b4ab23310f47f07d22d513561700e6c043f063d1249864a097c87a59454d6ee2e106f6d03510f86379e5db29b0b77d57a7e1833422aee5b38d26044e929dc7a6a4e5495d9c7b4a4b5a4a93b76c629f5025ead632fefc4440fc010e1cf54cc9deebc56c37403421d2ab9b6e3ed1023c74dd3138d6548729ce61293a020031083b781bdbf57f23b621a00c445e89a32afc956cd4561138965f24f60441c6fe79dffac2da82c229934fce668435027fb88b7a23bbde830ca6c3f79b4ae88acd87dd7c399d9c8fe09f1b89bedf385a4da2d4af0e4a930a75d8d2a6172815f7a8b09c2ba52620cc01a1162a2ff7f655a702a14fe0e4f72737c04e8b4f9ce59830c475abaa18e2707609bc4dddbfc9a311e542a078c651b970172aa7e240932490292d8d03cb9fe38d469169c38206bb4388b508a711755ef7547292d66d92b83a91d5f79bcf048653c21c354a745088afaf10fc92b6357661de1063655aa94e004b4a43a18dc1380c718747b842460c204b0775f4165bc6a82bdf75680c7e1792ed08eb2a08d76b16c574d997b0ba9e06cfd0c0615845ddffe38bf23989b8af2690bee3bb33df50a7d5596db69b242837aa0e8050ea8db58a5a331222828a505471d35fd6bb61c2522285b317b9b8a4801344e626009d2d46b2f9fcaed3ab9478d84966d06b78014025f8fe3485f920a750d6ae5863b4f046e608926beaf32a88a2c7d884ef7b4afb99265e328007248a1d4ba2486f402098032389aadc982542b70adb7c490d20d32a23e8a0c44981ba04502f32881aaffaac6446c84e41c023f7f292aaf2021ef04064f760df4ccae1a0ba3007da91890c38aa5f042539c8f9d31fa806817e9831bb4baa6cc9de0cf7c65c7845fbaa89e53a4cc95ca55590fe07fff9b126634cd428d92e1c281ba0dede788e29cb0f4aadd6d3e6a3bd65289b292bf48e9f827403258e204a1ee1bbb2dc33696d18c22584b820d6eaf0e6a5d1cff97757c4825e38329cb6004e2c3ee5850d1c3c7b80b1fee5ac60d358e1be8f63314e0c3953fce1bf4df83c783121a40aa78695f8490246583fd811eb4e09b6c6a3bc5877e91637bd03ebf42cea8d1304a13667ea6269c94f4c64817ac17f9cc94887ec8bcecc43234ddc19309d556478ea690391a70e01e146c74b6442177d1a82a4fc32d77b35684b505b5733bbd67a39213053fa0e442253a811657cc6853c86fcc2a5bb8457744a14cbc640b8b6b58d602188d1b0acf89af82b86c1ea0fffe793c43b73875065ab8545a8b4828c0ecf42abc03e4a38ddfe76eda26e02692db3d57d76b24c23331942ab71265a4e314874605c5ffd1661ab1b39bc868bce7de59b23c9bea1b28a7bdebce431384c06d8085e0bb8b3bcd5c654f29ead878bd48f1e1e995bbcf2a245c82db6b59386ffc63c46fffe75ec079a59685316f6b18a1d2e2dd365b7d43cd7ee5bc8d3370a96ee5e53105c82f960c92670a2ce5f653472ce8d6fc01db7800ab320a854071f25ea2b5648c2d5b11f5969dd60d170a55d0dba1851f384e5e91c73cf09a9fae03cd4be3df1b6688e428c19fbcaa177d0ce0c1805a8753290833e6a826c71fd47cfefebae398e81768d9a4202f272d25a08284cda2e1a33b13c1ea05aa550ed929cd03f5624c65699785b462c641b25ab32a5d8cb07e6c1a25ba181f0be4d8d85233c7c6feb8b9352edba58b01ddc8fa667c319187225c410e52ef4be0ed5c8a03a8159c6ebf3e42e650343f04ffabb33865a126293197f8b0f93b435c8774e2b536aa4eaf06ab1ce322d5ab96c8ce1547d4a0075d36afa81616553cdc860275be46af824ddaa7505c4e6bf202d112771be78cfc6e52e155a75529dcb86cc003a87e41f16fe5962a9c68b7872cf8cfb4351fe192d447686db08c3dafe0b761b7d012e9a33fadc7b1ce7b4efce963165c17feb0832dd7f045dc925c5748a8383476c261e098a64b2e961700039b54b1cb93e75040e2dd5893134d4151357fba4a23af12e565f1247b30dc5eee09a1d6984df2e0220c9df5a5e4009128a767cace6a710938e43ee92cac9cd0c3465d4148c8090baef45123e80c5cec82e73fe8fe54fcb715282869394f663f6e750072693375c50c1ecea089c18952deadc081cb0c873cd0ab125a54867e0c72c4dc2164c025993b0368aab18a7f32da7f433648aa0bff81180cb3f0f9594f60e30f0417920c755ee6d931b1fcb2ca626a2f8abb1d2a4685cb6bd5c5e8f0c3ce46a5f1d6490fe096419b0afd4909329a178c802c226c9778d838322ce71010ce8b5cf1dd8e83c94d00d455ececc86724bc43ccf4e718dcb011309b9ad4903ce1a670bfa771766c8be118ea6bb66d42eb10c17dafb7a0b6011ad36ac0d3ce8e6fb58bf8cf01ad32df6bdcbfb220703c4ebd4c8be9a1334991a0d3dc2c95e4cf4c6eb851d4e126029c97f84186f004c5d03c96a3278c989d9dfa8231ff6f51b5cc327fc06db446820e8c6a62ee90cceb3982e1d9a390a088213a436937cdef0c27ab84ce24f8a6d9a18056ec313cd4eb2f28bed88e3c2aed0799fb5c0f7afd3ca86032a984ac314271d236ba87ebe75a95357a70114b86e14fffd4ab0db510c237aa53cb7ebade43e5701f82f56fa0197801a75ec910c94b5569b2f8000c9a01b4dd640cbb724a714b22d4f471950af5d10de0f7f2f1cbe9fc34e57df534e73e5f62975fdc83a5d72144665aedd155104746b6e0c3e72ce1308cdfc43cf862755825e58160668693a760f32da2abfcc2ac41ae501dbc988b6a418f717ecd56e3d0cc923d8f80cd9579683a0954ec0c3255dc7150216e7aa996d5d53bcdd67d8cf0f65d531bd141f3900fd2e84ff9b9dddca638d19afb4378d9338b3a7ea74ce646b1c7a8f782a4ba3cad17738af03dae6cc4864b8e3bb22936b33874db53efb5d690382ea89d5652ff856063294f10c1db65cffcd8287542d2b8176d39ba21f6990530c772eb060b15183c1be1801d6869bcec06af0e1d11c8621d628eb184287802ae10dd03833d76fbf849389c4893a06365f643d0290b244e1920afa97c3fe589c383065725c1be0e160a22dbe2a0d10b4896ad75f70f01a9f5244212d56a182ffc5d8a1a281c4e99493b98d0fdd79fa517c50a84a183fb7901df07341947353e141fc0ea528a2b24e2b6945d5f37ba8755fd2ca60c9d087c6b56eaf07742053a307e2ee45e3f86e9dc2433238f59a315dd11f402f9bdfd172169f9c899757c588d3c0826c9fd4cf94097c72288051e350bb12bc12c0a651d39bbcd2686a50ae3c8325b3e80a56a2da2a8de7cf09479d5aa79242d5138b3cd336ca1b483c9034fb023a99627b121ff009a9c60a5e569563ec2851f307dec7d5057dbd9606880b4fc4156ccf9eed6fc3f2ac3ce3345794f2e0754ad4a768aec24fc9f2be7b551fb1469fc88f7a800b089f8bc39557b79d8cb3353d196e44af802c2ba5c6ba0871dbaca2e50e6a129231d670e220390c8393a3961cb0581d56a46047a47598d12e90cba641be18a0507a641102ff0dd7c11118f7a90e296cd8808148d67d089d6869b1ed929026df4658eaf2d1b3314314659035c1214898c5b801c135f8eb120b019621541771a74992ea952c127815cdbe66b67827998725ac98b0e2836392a94a2d60a0e1910f2909e9f4348491fce844c7366d8d59c60f292d1e1eea2008592f62035041baf3c620128393488062d517af1a604ce8cabccf1b2a65ba57b58bb5701caf618121c3cbee4e3c08c12e05d01ba3439151f8169ae071e3cbc0d417f656fbf8e43ecc194ac4e925e9a0a23b55b10169e5302aa2b903b4ee1715ccf4ad0371f7928d5ead4684a2367ce200f9b6f77f6707a3409473770d06df414fc4f62af82a63611c95f303ec50a9d2de3681616a1930cf4c69c74a983abe34307386302b8ead3bdba37cb93c0627cd3656e37097a41530a4460edc4b3dbab8c57f50ba246e289758795f39329e7ac137b66365915adb90ae2ef22cb898e6cdfdc08fd7a55656b608be691057c600ffe0ca6cdd1f01e7528c1af89233f44d55bae0de7a2ae1d95adedcd8bb43707e5f0d07207be0de8ed5e69ece70cc0901f28d56c8859b05586536ccdacd2bee279f89c0930b9f62ce0d9dcfc62736a3034b528544a6413a1847af7ff826a192e8af96fb6f2e2c29ce3915836f1c343550a784b461a4a6f991200a0a40f4b822a2e798e71b9cfd6984786a8c3f911441f61e50e36343554a40de1d9fa9bff7bb192de11602ac6d03297718d7359037902be28d202a00e12a2fcfb4c46bf65f1958e78544a525c4cea4dce73c6a5cf9d0d963d4a58798e49a470c428eb4ae5a9fbcdd9e43cc9c0576e47ab370ab18d6267e30710d5a1c0a59ebc93138d5d925d99c9ec8af0748a212492fe2bffa86edb4eaef41deeee0962f0c4a70efc7766e7da3e9d942155e93bb104767045bb32a5188f51cd03699e1839e7fdf3f42c91879e02d9c11e411a211cf2340e840e5e3d621b924d51ffdc6aa9fd55be598e9cd1c62410f4ecd59004149e111eea90d0ec28887e417083d0455cf27991fd7bed08178ca97137fe1609bf0e21f4dec6a5a648444324a5aca042393e9c994160a7c88837c45eaa210d5eb8765687ac1d597a0a2a2f5230c80e603941b26543f5443ed6cbfa7c3df740cf657caad775ef414ce0de36eeee84dbc01b78f6e8d499afd0e88a8d3fd2850585672d6708b0215927ef65e7f12a8dc5dfa3068e07314f835e2d73f5e8b74149d4386add9fb88325b7da06b2eec40c864ad0ee7970b82bba920c1c283139136ca6fc54efdc7f7a90283dab9a75e0d5117197bf455f29084c9cc9dc3c333ff2b65c106148f710277bf4d5502da62df2845080b3ee00d8635a7fe1865d302973a901cddadf425903bba0bc1fa4cdd322ecf1a731916972784b805b593d1a87887c8e36efa786359e7f924a855aa914bcfc02d192e0e676d72695411fbca75f69077c77f4425566f2feb8e36b901c3674a63b44948915249310dea2cbddb05b9e3fa0f8d88f339379cd0b5527dadd961b969c74816df9d73603ce4fcda16f05579b93467a74231caf69e9b5cefcda184e14065a2a98cb1f69c6389a1c7d3f0743c2601100f8abb0c7b553dcebb7d319ff551853698178231d884593900f6b101d0417e8f8603a69145b2645f30bec471ebaf7f905fdee842c64bd0e16a140bc7729635d6e484c0408a93259043b6e6829bb31119e15103783aa1388c45dcf250ff65241aeb63aaa50567ca78b76ea15434290020c04127776fc2349a84f5338fdaf0cab3d68d61bd2acc3b2310f9160c4d21e265d288cef249d6d8840724e553ce8b1aa62fd379bd0c23930715743706b262828319ae3c985470c82b7c559244377c8f40a1e27238a28e1cea3932d6b808997f8aa4948181e66fa86d81f0b987881f3394c21d48cb97248a2398d076a037f0108dcbcc7eb009e27ed3ddc31b96eeda39e78bad00ddba14340bd5b35cbf74a8fb8c66e33fc8f6e618c3901cc339c7e702ed29ad09b907e0d30161489ff7cf098651b6e17a1e614ca17252e20af5486b8c2434e0afa3c522a618d1a54afcc4c31964abc6b91a012510556bf2c03d21080ba282dc20515cc347753c1e1b9d5087fd740f144e5aa947fd5d41eb2985a8a8f94b471fd1142fc9e4bf874479233067b392ff09b30899f56d188a8617999d9f0ee2b2065fa1a8210d4fa894cdddd66a450a42106b82c1ee8f8ae016af9852ff20272f9fbb232fe6387dd7b5fe82a21a4549ee74666e622d0a6eecf1c49af33186043a25cfa08d3525309ac5ee048d66c01a16609db9d95c7b19b18d041e135252a8ac7ce85888e6ec2897a62d3544d1205b6e1f1e6698f2d4a723c5702b17fef98b5c4c80278f105839191610c3bf80e24148b1126a6a408c0b49dac825879f6ae4873795e21a7e351f396797f344b471f22494c0e3ed874540f503be20cd09d7ef492437c2704c158ea97e4ebde11c3f9433d632d62f52ae08e3258d238735139f0bb59d9eb68075be3c55dc1e8fbabbd6ed76462a62807f859e99d22a897bcc591a777f2ff1f230fa37621833d7060fdc8814cd978706e596429de8bf2db5b4611fa7419a235b317bef476ded57b5bc82e62e5802f47c771919eae6600f71cb246ab600b19a6ee3c1a01d4a1da3da5ff77aac9c734082fa2cf64b6f9bb6071863f9991305d6f61e9811c48f8692d0388162412aae7dd28df2b0267e8e0c87ad3cc773e4bd7df9e0e0eb87c1611cc0949ddac4271553485c53163771037b05d70c2bafe7d6e60d884cd22d064a97e601b86c15abdd4af8915db9f1ee06ebd4ffb2ad2c5d8352af6b074133b30e26b785da487500d2965630b813e33b8324430bbd6bf05831bf871214dece90824568259ca48602e0fc170f5faa6540e1a24fa3f0f31a98efaf8efee4da3dc23ecc4476c2e387174bafc500924618989c40ca942666ebd95e0154902add4f3081236f105b786a1e635ea5b868cc722da0af7c09269f927f523bd7db717e8a51b36f63110ffc9870f78f9cad9d48187f77122f9a02e13ffcd20afe1e837183ab4cd21607bbd4822131101ef1e67ef3c269080d84141cb620b48510f469f8f666b4f7f3b4ad148830930654cb4cd25a440980804b1622210bcdba57c00d19c46994bddd5a6ba62b81a43fb6041908a9cb5e5d93b3732b50e0b82d177dad705418b103283999956a579a79b5d7542a37a7010ce4955c78067ac4ab47c812837d134c81f4e9734084d6317d1246d4bb034d0aa791fd60c2092f942c36cd402570dc2dc0cf4bf8f862ca53f5643dfffed6c3a309b8c04f5ed8c1543a8c4f7ed12620f949c49367a72302cfd346a19fe826fac9f6abc4394481fbe545db6b2edc6d155dfeab96fd4e590abeb7dd0fd5a232098cc87c2f112fa8af917037109ddb15b374a686320a8394ea3b241c3e5768a8f8792180819a616ffad318d912d1d029cb4564a8b2f77229f74f6992d1c38074072093051286904c8f33606ed52f4a075e1998d0794436c2c1873d50dbcc823c2e1c706d8086d9cabd1670739c3f7ccf9d913f0e39bf098623a63955db4be7a8b11e946d43a8ddf8e9fe4c8eb242b2a8457a33d809a71b701f76913d57cd5388738b602b15944967c9bd0cb0c65817b08da1d406eb93d96196afa2f252533416d2fcc33842c159e0a67438bd85f85a2ebbba9116e071d688ce3826f0324f81102f3eeaaf84cbd840d3340a045e911b5ed600980f654509c378a018e13ae08e0e4464ad940a860b08c3864b89abee1e63b495fb6fb0a016de1290819efea9d6316a5462962099ee97872cbd017f1947be5430bb41a59870df0040e43cb675f4190b247044e55849a654e26676ed6f8c0314be32382af9c20f7bca216cb9aa40684a9fc9c0352fda8d8bdee59e1995deed4f562ea877e7b397d3d8739f077a40bafe48d3c7bc9db9162489822896cf98e0a6509c19d29825c3f328c05cbd038026c94fde577675362ca740165293c9a128efd85a58c9653fb039e949cd189d559825dd1225d28c0a0dd390989dc4da617d24a9fd8c72dbae9bda7a74516186c37282b201a27c636e99c5cf2074989e5bb60315ea3efcdc12782c0f2c36a65567d25ffcbebb37bdf8de5344b9f17aba7bc8095e4dfbddfd81e3ece33dc0a00550d675c58a9f2852678cd90f90d4e4a0986e5a42fdb0b066cc847aa9bc20440b4802437b2848a45b4ad8a80fe6c7765add90296bdc4787aa3736e7c91907a76610c439612a31a8c388489c38c4c45315d543a0d07ecc2677faf382b3c1f7eab7bb4b77ca902fd8140260ee4f9de234a53ab96d1dbc295f49e172a3be1870e2149e55e749b4105f549a4adf27cc43120f2d7bfc943a3055c27ea25c177cdc067b71a314399ff38b44e3ceae7dfbd7e9e3024a5df4799559c01d799115e8a3241a14dc0a1cc827713746cb8f30c3c7bc0109f1870bc9825660bcb14c069fc3c861e74bb99b91c1dd4897ca153ad612eac9790dadc72beaa09ea1795a7858147c77003f07a7fc133f769dc5e675fddd304947fa99ffb323533ffcc0cc5a342fada9f9793edb8cfd170ca466adcda4880a169716ef937a3126b9e086f46dbf6e4a871b288496bd1c7dc2be5d203e2ae007b925c5eb9125d01c19864ccc92fe0312ba1e5070fcc5f831d828a5b14819a3c9650ad75dc9b819961fee8e748c70233c98b7410bb2e354b1cd0d26e0cf8fd2ce94f123026188fe4e1444fd9c684a831244a12b88575995e3dd51b083a6de6c3c8d4b4fbd54bc5e41029206945562f532511154b5aa00fcd4d19f46d3069b8ef2f5cab8dac61529263e042c12c90ee027ff9dc14f13481516e0ab674cf4157ef48369d3ec96bb7af3a4eb2c0efd0a9888eebe64f7575d0baa6119bbbb4edd3ae690877abeae2cbccfe567a4f690e63d0c0d4c1f89964ea997ffcff4bbbf46039ba180e7569c6cd7e552a44b519e510ac3b90e9a68496f521e1f75998e6c7c917487b91e59ada1cc69c51afa74efaf117fd2c1cd54763cecb1583371f3020efc219ca9f3a90452ac5ae18451d13a3289e5f499a95cd57eb0b1706de90363597342a142dc749f6d08b41091c5afad684cbcaa74aa75dcd46a0724901c823c375c9e7271647352dd7837618ed5b7eb6453d12ad36272c8a3b6e94fcc30abf5ddfc3a4d1d43cf7493c3f1e6d244a955038c0e63f4eef1629fc603b3e52d250d44828448096857707aa091aee090e7f834da7ef192ff081ec1a2d1a98acd5bf4edc76346191910af6f284941836d7e4c3874b4eb59b3c31fecae346b4913a74e56387b4c530d35c7d27968599e5fe0b719667c4b5efc4b430636e7c88d9aa8cb8f7518cd667625c540574fe007b170273dffc9802df6c7f465340d9a8b591e3b6f94ddfdee5575516c6093b77fd60fa2d8841dd752ca96ba739420c024f2768a86ed4562bc564a494e7b3af80893698b339430b12aceb6badb59cb7e858338d2344a17e629c9f51ebeef128f65c444f2bf8f486ef4510a3fe7ac2e1677284dd15709b800ec12e42072204fea962dabd0e9a3086ea75590464b527e3daaf1fd46a7d1658fd3b8d272506ddbb170e814ec72c2a5b0c8647f31ef3baa905f3bad00efd8daa5ec11a3fbc3648a959a4fb4598e634b82dbad860670b52962364dfcac3efccec74a2c49255240d8e9ea78c6cef1845e6e0c9e36fbbc28027c30e1c9d385d131773e6fcccf226ec71fbd15875976f5d001f00d81f0368ac902bae6b27cfb7f0f5843e3b43d819006e046849ae483ce98356f48b74202e9c57c3010a84ec42f48e7e80fa11ecefd3cd78d47d8eb8405fb9b51faf08500a332f13ef162f35d7f396229128362875203aed930d32223a6dec96e546de67a4bc63a0643a55ee2a5fe44308a08c306024a14073c2ee596bb4326784e30b72d71c57037a006f7e90312501ae7b90797fb30be7a4777ec761a4daa075381c1dec1c738c21a3c90fb062b5261b034ab255b670038d51af80e7017a7d233d803d38951f665455f97155348af08aaff72cd3f728036a2d070b9f05cda27402439736d8c3f617af24cc79a8beb03b34ef03b0b8c9b492bb99f6035d27c94ea02ed57603fcc460077562ff6b8b61e07a31b6332540afe8c570fdf532fe4ccdbfbc6fe90a65d81db8856811ede2d5102bc8351d83661110a277bd861ac9b14426f896113816e36586f138bfbda127d5e1150cc6da76217bbf5949c3131c504f8d9591b7ecaf0f2ea408d53bd4eb0d51abd958e35b5edcd5f397e1accb1a0f47fc4c71d3119bfacd4bb9c680fd05453323fae76a9ebf9e6a12de56bcaa3505df206e5185e188d1294118eb817f1e59d1e044d9a5207e8d11c3b69195fb18e8fbf497fd36654de34cbf37baa73d359887ee90f6eccd1bb08c0ec8ee2325d6e398a3d76102ecaaeba0e210556e13679dc495b8897bad1592ba14831ea93c740f3a04877258a5821fb1fc7bf4a6030311573c1d455944c2a8641570bb2cac671823638838ceeb3219ce164a5f2d7136e979d3052730e0e4bc5ab04f7ca2863222e946a44ce4e1280a13c4f836239757979add166e9b79ac212c8fb1efa05ce5d517bc70d13c76061df7828d1a814846adf91b34ef675760e42e6b5d3b308f61b3a6028c4289085ad48fcc3c6ac86f5a9d5862ce45f39c7f0d66e44e5e687ceb8765ed5f62b8beaab085db170f1300396d1b0685660e2074ac3c71258207f4f1cc70d4e4494eca80af7e354577e071c97c92edc081d34eda9c70103d30f423a072498b6991d80a5828602268d2ce7d4ae6d8dcb72e189d0b499f6b41bbdde9c2b49ac74098961b591cd746ff04502ebe5da875a2dfb15140140f2a78968c77bb78543ebaf6e1c878e13ab928f2a007809886a301eeb646b091b797a38c893bbf67b786cbef2df8a508fa6214fb980d598bd34230d21a83b6d81ea36355b8362e4889cd74d34a39a58836477281fa1501db65d369818a4fd6dadd4b267edb181a94e3b069ee0cedff91eefc66f8bec5fd4973e498b377d09be7776cadca3d3c50ff52374081dd5f9d1e64e043afab768c83be42363112d7629193f161341b02894b0b4ae78d5f347567f623e5e4103c205b1ed9a5540c7237e5d0246034f6c66f6c2f854ee659972de8adda1247961b8c38a3aabd5dd2aacd4b9b5e8cf4c5ef68d48b7fb44dfc7c870a4483d330aedaeae4e9ad954855abcca535234a6246f1e33926e020841bf74d7ac9f0436d5e9be6f1def9247784dd0da3c8bb1b90a2e2866efaf1d137c4514b6df38631b6e590ba61607039d2dc306a2e8759a0e29b5d5ab70f6ce19bf99f5883268d35644c1b0672ffb0b5e80a5df845053405478e72b9e2ca76f009ec393b38b2ba7b2a8a86bfda645e3eeb73fbc32c96fb46aaadf4fc8bb41d39522a28ca62029dda8f89b5469bdf033c6a340fb22ea1e9b70b6dc6ea0b236554d848f4a80265389e84dda8665cb089b07e61b8566e0c5e881a961951ed6c0c69238798cd653a8258fbef3a68f982fd4a5682a4c7a9990471ca9853476e567f21c45cdd3e995262923c8255f592505e55f746061fa887562b32a85d0cda7a574d561a7a502feddd181690546f48a4f84a06a7240d51760c3147d2f9b3c0a422e925170375c96e5ef463f8ec000c0a84f8a973849fc9b569a4a95a9a2adb056776f299dcab3f66fe4834243854a01244b2b57f7f7f9efa9d9d630357b74f8a122bad0a5c1bdc04001eafc3f26712a897de9e2ae07d4a470ca9179e5f75363f3d1bbc3afb5104f9e23a51f2f9430b77d3a2a1412917c20bec4a5bb601900e70545f5982ae738e48f84acb4aef8996acf7d5e864b828422e5f9e5a29801b54e963e1cf77fa91c19f8c840431fc2a60410156a7ceea38dadaf170c1996c36f83cf110559c80e743a5886c6992be4d449cb8df2e21643a4eb6d09cc35854a748e12cb18af4f9e3d648ecaa6a4f58b3ea1b21fcd7ad4d226f956b21b8547b87fd784cdcd64c9024ad07a03b9aaa1ef3a5d8566746bfa90cdeb5d83a64cb7dd76777de17bc5b0b7644aa8013ef09db4d39caa7d0a40b6b411a6c5dc8264ac895caf17c9ba691562df51b9cc3c864c930555b8b35333f57e3433efc8d9def1cb13ae05814f6d0097709e95c0d28eaa4f7aa7e526d105907adc487bd7d79d66135b6a148e2eb15706edc40ca2f540dea4372a686752c782adb3fce3aafc6f628428eb98e907cdea1c2b961716821ea0be139aed4e9efd2077c2d059e4b043d0d5a3058196d3ae93d7276bd6fb2b7eddfe3423921a488f25eafafc670814679f57b5c7ef4ccb1c82a5780d1eaf345c98bc302e876b85f0fce35514f73365199a5c0a6886f1689ffc4b317aa7ea31183defefba9898c9a90bdb7dc3b470d230d0f0d79e52f7854e18257607c719657ae02b3b410bf91076259103e13c68e6046c4a3b04d7e2d3cafc54b782cddf4ab74f0a3e91e36956edaa1741c132ee192e963e91813a58b2929e9f0bd743125453e2217919e097f953e4f6f712f28270c44cd18cbc57c3eeb07a4c8493c2abc4db7f0dabbc974e322e58e29c788f44c885dfc04fe74c2e3f72dfc422c3ca9623db2e9b4b351fad8237ba7914a68c4d8237bc77c7ae6f411297ddf9d9ff779d5ab2ad710235a258188a45c3e9e0b3e11853125cfde4b1f994c2693e9270c3d167ca69f4617f3c188f48c095f5936996eca263ce6d413ea23e683fae960cddbe4729aeb99d137d3c588604774497ca78f358f5a35fa098fbe8ba7cb3cf6a8f984f9f40c0a8ba3cb8cfdb4ea88d14f581c61cc88096347bc137c3fe16742fdb4ea4adda6533e204544eca30329825a5179621c5dc41813a37b31a018a4300684f9f88c7e7d1c61cc48ab8e748ceb5d0dbef0e0f56e06dfc14b49e31a3257d7576a3800542c5e2e65cab1273d03f3ebd8100645ce982a28d26db98a5f4194c60ea5f018b6f852e235262e229850cf7c280d081f76d359be5d4428cd15346644288d6c65df456434ce0cf3ed5e432e00e0b1f3ca6b1892af6f1783b9d893a0945f181085b99e92f254d00b162f173c662bf0f8613c8678fcf178157854b50ccdaec6e9238c41912f4e170917271737c85b2e9e05e1b3164ac6c41762245c60f018ed6a984a25ee2c77c4a0c89818b21188dfa9555789bb85f2059d3020a0930a065dfc1a72714f77c8679fb4ea7a774aa52e1035afdc1113838572325929825c4588a6cb3c7a783a9d4ede4bd8e9e4b1e0c3eea55c0c283c5d761eb650ece85ea67b41f930a052ca4da1a7e3f9946e4ee79292eb3472f9747aed19ef273caa7cc3542e067400d2a9b6ea74ba51c2e3b7c9cf74d9d530e1b1f4928f1e397ced6c989e72d981386b13363de58ea77f0fefd8239f4e57995f49a5543aad5c0ce8d67c4169d97dde093e6b828901c91935632abf8e39a102246748255e4a948e716548bed1bd14d3e9a39b46364e1f7d643addbb5246a75d8def36464ff9b6990edeed14fe024d3704b188033bf81bd8c1108f27f09ee98e0eded129e5d7af11bea2a4b4b5a76b28e8f49d8e019d7e9d4e271b866f2c5d042f33a644e522883120993126b0177ca6931702f9a5a8dc9093e0e964329d0e865776e028fce8230fee74c1ebade0f37e3acee9a6a10b4acf80bf6e026fcdd710a59140571413b87223c0e5312787f744f0a9606bbd9e2d873b992e0f2e8f3b47e4d385c826a17c7ae98ea524f2e905c8e1c30e1b5af2414b3f8d3e7a492ec9a7db34964b5c3ee13127879807a71dd12acd0709597892af218ca767ae2c28c9d72545be4a431f901eca259398c3c54504c8968b8b3a5efcfa1585d2b8f875226c78cc89b001ff2822f260c35dfcc686bbb0e1277c23f3175827a430d7656c5a65089f6cad1e80d3635cd65f5c1b0ee3cadcc52d72c2abbbc092c25c3f0500ab28ccf598ab53e4c6c5592f5ed8f0173fe11b1897c13a32877117d7297213c386dfb8b80d58a7c8a946890cd6a9c981c25c8ff118a0239460090da4e0e151916a7640d0833314b1852444e16302253157b6625cd97a71650b0667c3952d992b5b3157b658456e5e14117970f1d56f5c7c85758a9cae23298c8b13be71f100609d1e28cc751758080a73fd053ec22799b890f4ba644b3ce119a455d7678f8c92af5b2a7c266c4bd842b9ae35f1615778fac7c3c393b7c99d7006740db5ea3a99de5d0df05b8ff1cba7d3a974c2804e1863025392a229f9c29b3e624077e50d5ed457ae29a7e613eae1e9366dfa573a7843d4c11bde146e60a984c7d34da711c43935976efaca377b5a092fbbd3290cbf4dee74736a0ebf72a3f4d32f4ee927f0b32b3dbca86fa53b3ff0dbe44aa8cb0e0451cf50df2c17ded365872a957ec29892565da88b01b5eabacc268c31d1aaeb326b42f854f015a555d753f005a5559716840ffb780dc5e01b69940bfc758c09d3af9146c9d7c12b6f35dd8c74bfd3f56eea2e2a17ac56cdd9402bcd848f5eede3a4890cf54f14204a53738d27ca252f3994af4bcaa04b2ab994f4300912d43c4a84886052fa64526240a10f8b2e8015ea4db6f3dbdcea753dcbb08761bd3c865dd731ecbade59ed96ddd5c7e6e522b79452f270f15dd3bac0ca9b7c7dacb7b45a2b2d9694ca5ab56aadb594878b5ced47cfb049178edbe6ecea6f5a359f43aba694317a68d5b497bdaecbce3967ff0706ecc0320ad383c2cc1d0c10ca3f4855bf470fd767288772fbe092dd871f2e730f3df8d08d7df881013b6837e743d603a5e1b8adb50e6cd725ba7645178776ccc6f5f9ced91d3f0d6797c86e5977b3631f85d02ece95add2384cbb76ec56f9427b87551706544c31c51453b446e7be71973c4097653be376806e47d6b2d7ee001d466284a3b377edb2353c6e3887e67b5996e14e846dcc5f9fd8c5317f6533e3985488e6dae6404a4a290ce54253da9476775fa7d79ddd0e9452fa24cbbe2f0c7f950d85e981c380ac4b502133ccc0858a49cf484aa40039b06a6ec8e1c30e4a9f64facb56223d43477a24096a24d391fa501f7a04933e506d9a84210b501edad333630f691a90167202900f506e39061e99c4093f3d23a467681247906c9c467b2805b9df52f40c69245d9a501e173d23f30d9a28e3e91920b58891f2586c066137d8a4cb68bb4937e99926168965225b7ba45525f8ecbc9954cdebe43e49a474280aa5f17a9cf4939e815204a53423ed11416ba440a811d99ed6beb5972e16e3d8208a834dba8c29414cf832267c720e3979d2aad9640ab5ca4667ad63f255e9159950e40b3b64a1d8285e12a6db211ba585ba0911b6a10a740449901227643edcdd99c02e04bb0a077404099320254e541f233f423dc3c27265a64134a8a5eb3a4b975026357b82cbad443a067dbd2def6c1339e3a7b75190346a12339882a47179a978fc21b3b852c28cfe725dee36b7eed66e1bd43d361495d4e920caf6eb6ea0def216a23d2d2473ad7568db86288ded01532bb3ce8b239a13bf66a22ab2f7768a7e6d9679d8d0f52e7a66330cdbb0ed470ef5c1995e0bd19e9a7dc366ca472a04e33e8a5eebf6ec6d399ce37dbe7e1461f05ba9439b0edee7ac77cc7ae88a307b478c33d1b36f9794a667aef8f6910ac9d951d784533f5fea76e06c96adc098f4e1ac374fe4799ee78926aea73d797bcaeddf4bba0d45a1b6214ad3e2f465287fa5f6509a16d8feb0c0211ec3172c52154cebc8da3ae6d8fa2dcb2cb618273bf7991ac3d2b7e66c10a5a93fdf883b5645e2ed0fa5b19c0a3c7ea5db39393d3614b945f6d66ea5d31088fa2dd4d5e8cc5e5996fdb2f3b88761377377963bb3943435e82dd4bde5ca7c5121225157c3c79458d4611efb8d79ec3bd9deb17a253c3614797b767772e5300dc15c6d35480665da527f68d6239c6357f0184e3b24da2c75b2c4095f100dea99ce2df39256fdca7c4c9b04253169d028c8153d9d42a6f45913be4aa4552afaa6b607ebe6a45fe98f1896559facfa542295483da2fa60af3e3d73442552a39eaa4f256287e01aa555f456213307f5cff50675a8084170c22488d2f49021414382c25b7b5a5585d421487c230daa3d29074fa75ded2aaa357b1d5d3296659f0fd8b7ec3960d79b3f555b6db5d58a3a9bb9b46a629087cbbc271148472ba2ef2296934a5791d9db5b4fc7b09782828498f42d16bbdb7befbe7d6658ecbc6f78f421fb60b9ee3673c9b2f1ab6287716cf6157bdfd13bc87de38ee19addc6b2dbdcb337e6e182c2304ee9d879b86498874b6e79c5a4d3b11246c2552492a22912d9639fe823919c781c89aa08a73e12dd14aef5e2cd9959544722f1a215ecaebcbb9cfd2cc9dacdded1254f6c83b1f573b8ddbd5b7239ad95c32eb7364c756955055756f0042f57564e9f73bba34bdebc4b9cca35cc5786e38954bf5c3f17efe0fb2e773bc8c365f421880ce360a7639fd61ec330ac748b655bbd3ee0c870bdb5f6db4a3ffc362bf876c9a5832b2bb7a1e2fdf2ca3d7d843a5db423248357b9a30f193ca58093679e306d4f644f76c9e9741b84611866c78a1d093d8dd546cd35cfcce50c6b1a44455ee6bd85348d6ce9e4fa63122853267c2b1914be9106d1265b10c293e9294f055283c81992a6fff384be7d9ae4cb894c47b38491b00ff396087da2db20ac44c2b073ff2c9e9d837aa6de93d2a34124ea0589b09db9eae0e1ac7e63429940d124d339a455f4a36b7b5a45ad908b059f3d628d7490e82386d9631fed4fc6c16e7f68967d210d92deb36fdeb5478cb48a5acc089d06d8e1ec110c5bbbc4065fcdf6a767aed3cf1f7c5b964d98210a799465901190d46fdc0ee8cf65a469a8110d05ca93275040d1a4c912b9443ad178944ed4d4b0582ad5ff05f5c027cfd1fe647aea31a1148a4c59827e7a461ea149934c6f8df44c0d74c892efba7409d561663b24da8f940661f7d42a2a83cf662772cd6696d59b6a5528838f724deaf42ef36c29284fcf60417aa6a9103a4484619fdeedcfdbfd08260aa2668b3ba8815a454f39d11d71b7370cd7e774b6399db32944ac65e6ca07cd23deaecc5c61b7bbec368b61980df58161dd3f2594ab31c2de4557f42eb3e88ad9edddaa77ec4e2a048c56d9ed36bd03a362de6b1f41c27147a8b54c32ac9d508261f6583d862d6915cdbe93af9ea056513b44693acbbe8f3693a0254cb23a0615df6c58d2be7823faebe7319c23546160b8b02f08c921136c59cfc8d98449abe4fbf235ac25414eb44a5e091340485a25bf84d21c944e4a733862e42789561169d5113e5af8a0306288909e56ddaa248d7de36f740501d22a1e9d56c977ad2d444e0f1e3b18f043e31e5a253f44efd05669028f334a9ef778f0cd91c78c32a324c108440885a3f99194651e336a4396462062e803434829653da5d4435244949e241bc8737e42610914c0904510d02649a8c8324913276a1434d0640b36cc324914701085125c52888100b24c128527309edc7f9649a4c0811bb24c22052664c6d9006502ad946592293469e9c19c73ce4969c75d057c324913244241e414ba90e5263482549649848ee8c42c930801792b59261182c2c8fb7ea694cf21ad9573ce39e79c73da2ae7fc9cb3c3d15962295fb820715df3734e991d8127134a43ebe57c2267b0b8fc287be6e5f8a35c4263692e1aacc5a576f94984d2fc509aed721e69d5bdda6d71e7925639d193898641d230f32f97c59d4fe48bf97a597732c14be6a54ae5f2393d7a06b5225e9e013ff8d0332d97a7cbebf40c78799b92e9ba9c423df3cb4f237aa69b42660fe9f23df48c8acbffe5f88e5fc69772460d1f676651338b4b39a3c5597c6b71ede45adc9a6bb8aa37d7e2d29c5dcab5b85db916775aaec59519e6aabe49156e71afcce28ef8f72f777636f05d7edc5d8dfbeddef9e11cfacb0e5fb66ae27ffe5ec56db92c37751970775c1ea8db23a755f32a578856cda75c9b56cd835767fe32dd096492e6bf3b7ba6903b874c233e0a436124137347c510a2ce7adafae4f96a2dc536807ac08412fa738422e9194a9b5027740915a24ff23cad3d84e899f99c29459ef6872182e41a653ec9360a035a65eb73d49ccd28b9ada783afe7114af2487f9a46f9c19755ec438fd289f91dd3f2985172ed491224d73aa38844ac9ef95b08037954cd27a2c8d647eb6c09aed6ba9d75619eed4cfb46b98feef8e51d9d39da6ce8483b77714497798eba79394edb48b7e94e34daba731fbf777884913ddc1b96c0cef8e1d9dde3362c23ba3273a565181ef3ce37ad149bc7711c7779176708cb719e57aac1b89b1d46be383a7ac9f34a9e57ba0d2d8d2e4e577aa9342a7dc4f9a038f35de9366de2483867cce99a4fdd4713cee95c22dd5178bdbb3273c56d220dc348f3f2c1d66ddfdd58bbb2fec5ea5f336b575f18b6a32359f39a04c2a9a7936af455d3344dfbc85db85e542b57af1b6cd65618796c7bc7afb9ac278e8f5c6db51a8cdcd7b97b559ef82e3c8af058b3bd300ec51aceeafb32930686712a9699ab6dd61fc8ae46a6693b5934bbaefb0dec5df79d6bdf6ed33b79e674deb04c9dd87d6079be5e0c7333a3949bf40b5b9dadf90c03c207962b1d274073c5e39ccf668d7a3dbbd71d7760bf4e453ee614383ee614790710cd932bf671616e7e389d7cd1df81bdbb1ab8b32cbb80c8b22ca3f6d8adb58e601371ccd70381451c13e3c8cff781e84c4fb10e12cfcb4b2c73f629e56b60473e9b1df9e4b5abe3c2a7e10f9fb0941887f8c94731872794d9f59bdd3161011bf68d4e2b6ded28a5945a4b29b5612a5ff6bad65ed765b9cf56e132cf6f75d6f6b01bd8e511f9447854e539738dfb2ccbb06fbf817ddbc6eb2dda11c9ea11f928f6887c8dc79aa768d2116c73626c235d76dcb66d9b8737cff3eedd867a777e7431acb74b3a77b56367912e43faec6a90308edb64b60d4b0dcb36af061f8e77ebd5af3fdcffbcf74f1e96d9306d741b1de6ee77efce7967b6d6e3e6f5bacb8dba1bde15611866d397ad341bb2d998f9fb6aab6e6334d63c4a4a3118568655a595750786a460882237189e87c7392f49bd9a65b6eddde813d7dbee8677ec9b9481f185f2e3970db0d58c306ac8ccd5a964491918d88501c366e0084f0c45c144144e06b04939239b585fd4d66a29968d3b360a401d08ca93e7fdad6737127acbe60dada2dfc4dab536a594524a29a5f4b529a5dddd3776da733d83d51e6e8272ecf8810154897d0e06b0d8006de7bc0c30e90e288cbb84a71afc6034d82486c1800103460ee6c5e6e52fbb03cc39bb5f5bf5c9da4299281b6ddb9c136762db469f65149322199a7dbcb06738a7f385391186733a5b965645222c73bdbecf82a16ddb8ece102ced99689440f6e2601f226b224e634d1aa2dbaf45d9a786c1c873fc70a64d11fb762a1289aeb1260ded136ba3d38f30f2bc9171199699ab6d1ce16ceb6e888e33c2e3148944d9b6615863edde6de87561d77e75263357dab10c8bf6dbe965260d8dbbd6ddc88ec3651bd6d5d8f0fc60586bb16b526a9aa6515a77f2a89d62cf64e68afeba63cdf4f6688ea6a093cea694524ab93c4fa75c420c9620031e1c7dc2362f5d362a04e5ee5a8748d674b2c92c04f9cc8250e6e427fbc214576916054fe6c2b5aa066d7326a1021297c993a40a4d38971decc085926093af02946905250dc5914aeb97e0b24a79280d39977a05263daf00be5195bb46d54058189269bef5cab097e024c64c406f72f065d977b27d314103068e7060a6210ad011cce7aacfb43755327b4933b91a8a76b292fbfd937d3f55aab84caa382e733959c4bdbb5b6d264d3b1d389108d70c8b6279342a0051f358a370178892fbfdd33f3ffd2333cd151bc3c6d58b638293244c704290244c88526bb596883704c3b02c4bd28425a82c9334e188689465922640b125694218b8244c3490654604b7d97969598af0f8d17967b636331ba0555c2dc09823078c9bb76fe40bee362d44abb89931f1d1f7767d275f77d24d34b319ecdb27a5b4769fb7b3778b68b5d2ace6ccd62a5221448a755ac55de60b7b27c84c20b56e87cb592859368452061ca06617e7c2b92e734eceea75c05e77f0e07276da75223d2744abb87757873bf682efc25e0872c51d8d07a4c845dfdd0ed7e96577d96f35be5671dca364ee42e8f48c882373e7b820993b378bc89c4babb873d7927c5c0fad9a5af89ac338b36763f2f1fabc2eadfab60bbb2e6ae7bcbf8e613be90f3618d5d64a9dc872dc24f9b89aaeba8841080d68b8aebeb5d6dadbd0c995210d2960e16003bdc4910ed24b7410248de40920dbb13fc9d7256b745dba8c32cb340c8f3cba080d63dd8d948bae751099b53712aeaba189b0482f6bc870e4619b26dab48b4438dc87c8d81d69de2eebf6896d2886ba26b24b4c1aa26bf61c36edd848ba6e0c8baea61de38e7d14695854b56f75fc91b56f183bcefc1059abd9b675903ed2409bc5c646b2918ec74692ebb38b3012b623874555bb63d62ac738141671179d553a61d7f088e3da3b481f9934b46f9aa68d2baf1f1b49163de58e33a77cd4ddd8e6bd6e076e664c049a44d886eaba1bd87136cc615b8737124661a2ed49de2c67adb596c3da91ec2af7931da45595e51fddc3e3c782591466092d75a230265cd2bc6bddc411dd5b62d2a898479849a29084af93b467a44b7b87af3be66858ec58547bfd75559ef878f008b36b94e190f038b16e072e5fcfa14978e41166ed45e4fa5e62d2b8705623db349148a45d91766beeb45944cfcc5fef203d53b9af67b85f3ff5128d24cbae6aaf59fb7645ed52d46c0e17f6822c045fb360d488e0cb618056793d48acb5e28df9ed3b19bb63cdd818deecb2d3b276733a67b89798ab5ac48e4c6f51bd0204c32da5949b2813896a187edfb36bda682ffa66a5ad556a6d2fd2a48661bce46d54bdf0c9bb641d98fb52b2e4be952f597eeb5ae58c997b091d9020497e79c94f5c13892019a0ad1924032eb0c011201578a0b5cdecca5caf10946b1ec39e194f44aee94387cc23ae2b1c711a391f1de4f194835cbf86ae1e23f8ecadbd3dd72a2bdf4352b99ff864ab323cc2508dacda05d12be61c72c664817c71fd3a0f9266b660c25cbf74e0c40654c8d78c41be7ce48b8be2eef1ec59469f3dfb0cd2f32c7a9665d9ecb9b44beb2032c342b42ac7c837ca227a4648cf8c544890910ec9d72f3a04bb2aa4a56f9c43b23d906ffa80b96e78ec23d91ea8082542f27539b611f9fa8482c964a2817a26fb90144ea0f493d9a4e792e944ae35b33764aef4a670f49268946ce7916c3f4e9f8b7efa50edf2847c397ab85e73834d01c230bcaeab8dc8717b68d575ed8e3b59bb69d5a5830f7b06834fcb6e06e5fb98fdd46aa9cf6868ab7366e72457b32cba56aab64dfbf470952f365b811a22dae1a819767ddd6c2cc09872ce7768f8e647d6a54ace0c0bf5a3f73af0d54f86727eeea0a6740411445063c4918cca320832189a93f6b0bfae391f01ec38f51389eddb405a452dee2018f86af3744f0fe9fa651f7a0418262646b0028c1e3d337384f861070f9e2286cc597b2072d364761533a07b010a4c509968f64a02138402f0350e99af5ba6d69e9e995276355a089b6933d3f8adcaa63dd24199be83aceda056c9d3392f3a317b5dd6dad135cafd51914ce86a28ea482fecf6c2e48b3e7683a099be5e20c6ec187dad39346358c491290e82e63e76054173c5f5c9373fba64d7bcf0687f599b55acd6573a2736832cf4c95777766ad2aa4c06df49a49d4441444588ae8b848886f44c26042680a879e6eba7abfd74c2d3003b393b71a5206ac629ddbb7704e6d385dfe4570a6ad5f5254c3ac6f5ce06df777ad23338227695cbacc2393de532c39cfe721697d2e552e25fca951628f0a70ba322b2c2028f2a021f2b8f587b2e5b31e2c7ea932b0b9fc28897ad15b6a93fb97ec2b0618e92490673b40abc4df3904cc4eed2c9e026f3269c3cc9326805457c5906a9408abc4d6e25735586f0c57cf59dd64e6bac403badad3999bbd38ab93b2dd69dad550c5e05b58442efcbc1cb721b4af2eec8430ae5ee171671b0c8f62cb2fd27248ae1c12b3308ce0982586adc91b9c5ad2f28be2ff8394510b79098ea4b854c70dc01c13b339356d5a0baa455d5c9cbad00b855a855f542ee3cf82899679447562e6be40b5ff7d1fe64d7fe48d1aa6a87a0446955b51d144336b413ca76a83ecbec8f3572f5489e6cd3dbe8b34d3eaebb41adba72c8b37b74c1a326839f11a8c9388ded9256d54f28bca16fac41b98e5528d7571b7469d5c9b691442219842c2f17291f5d72777f3cd15c3d0d536947c9a7ced495bafaee1bf89049cf7cb87e1bddfeca0ddf2ce2593ef60a15d003af3ed6dd60f1155c5f479dfdbc5cc5b33f2f2e2abe6d295114c5d4c569912851049f4ac188a8d44330698807516f69f1141e3bb7bc051e1b6c018347f0e206b65c0cfb20d807c58b93fa10b9ef4871d0ccb2d3e14511d321204bea53053e143fb2bc3b7ccb459cd3597ce3b105f7471611e3a09e7a7f0c5b5c07d45361eaf3763d400bf8d917c462cbc587bf7a288d1dba8a978263bedf601fc4299527be1a1e8a6771bdee0698fa08bce3cc53ec8735e09ccee061c409c2cce3807df1a4098220d8138ba5ae060b9e289b5baedc726546a15028d4734b2ac48d0aafba2c6f7157dc86b260d1e17f288dcc0b1e33d65dae028f61bd0da23432d80ec5e03164e18fdf986597ab50c1e245050b9797ab08c1a4113614b831c6996739eae2714ed9e160790bea9fa4b13d14a6cea48e7a9533e251cfe40c78d43939d3077051f1178cba2ab0a8e22e0f6f8728cdd5f38aebada88717ff1f1b8aec822f7e7896a3fef0a4eec63d0ec6bfbf7af02bf630eae1532eea6761b9a9abc162b30ad4bdb28a2bf39cf313756b5651839654263d33451f8dfedd99bfa6b13e6fa1d147a373a4aec6287c0b0ec3a35028f19b288ae277725f5064497dde9d0cde16ca9d63334bc8591f4ac3f2c9f5a97b89f712d2aa7af05e432a0bafb06c98d151a35f3d2a3d4f31555c92f9ebae9e5c5f852a14d5c99863bd599774d70bdc0140cf2aace0fa2e2baf3afb94669452da45b69d2339f80214b8b0031ff01869c96e74556bedf5d9e1b82a4a3e7b992b9dddf43ee814534ca0eeeeadd651fda8bb6c76c76f4767d47d8e3e8d8c98c0115d765cd775dfb86eb475473e4a26df2e7bf46efaf6d3dd6ed2700ecda4e69ae65187cffd7437ed5389a9c4542297fa129a3d67edd9b3675f75721faf8fd7b5eed83d4c847517e76ca2f7a8d97776d1c7ec22dc9513b55d01874b3b3adfc7fdbb4adcb4f35e5c86e49bf5e33c329550e22b95e6cf34325f9a4c7cdd659ea3ef9b4646df77643cddfb487acabdab5cd930291c8873e809e7d09ca97c1c99700ecd257a95ebe11cca7d2a3195984a4c2586983ba6c65c508f889acbe6cf3422ca767444a24f23a2c944765d33fb3432695ccf261291487444343b29fa5509fab673dfec470eb776bda964221be6ba444cb29d4a4c25a612dc5462ae1a0f4177b6c650b0b50d103768cee66afe46294bf962059bcdf2a92b6958b9eacf643485933dbb9665bf3eb38a61a9e4a3979966f5bab9d27c01205bc81552b592a949e33dfe2a56ea2bc6c2abf8f57286d4b4b0e5201a47cd244033fd45f32567d8bad14e8739459ef89aabfe4669c50ec4cce3951bdfb077e64bcec0dc8a8a920f87bee9319aafcb8bcecb625baf1bb2da32d48a65558565e037acdf70e4b56f9a0d79ed1a8f6fdae9c93773a653e4a67b5f875e36d6e97738a330d937d1251671cc73bf21aa1a56b5aabe5575f2843de3d2aa7a0cc877e1ac55b51ec3c0277990adaa750dd214fb21dbcbabbaaeebad9aedf2ece22eaa79599c63bf5aeb50127a30546bcd6435d204121be899f1c3b0abb16b5ef5e1bc2e1aedf399ec3b66b3290cad37a8926b0a1700196a42a889298ce458a06d54fa3dfc637415f74657f11fde5f235a52a61f1de31f2a7e14b951f1d17ffcde654bb4d7f17bd7a1e2a3cb4eb49807efbf8ed1556cd8c4303b89e0c1c112cccece36341a7cd2c6ec8a74cfc05b62769b9ed38ee18cd59e499a7bed864fbb4de37b25bda15554b358cdb4210de9993ee9278a4f7ed69ea2e941e19333c7fd6691f0e5f88ec819009033645e914254241941f2b1a42179b6e86d28cd4b1012110a433f4e9e4c3fca28a3648247d972658bc595ad179710234269264f901f12114afaa12a175b6fb0e91835456825d437f9cd9a3b81e858dcd25f2ec9e5a61cdfd92140b6569cc515ff7257ee72bde33b3a7665be620ef15ed95a7181b03cf5ad46bea0b74e3ef9b1e635448fc23bcb818c9e9a789440b6866555f636b49f3df7611c97f990d9310c9b3c77749d0849251e16b5e3111679c0f72e6a5807c6f7a38b3aee47bf58de8662d787d4bed91d28f681c3e8d7e54db98aef2d57e52cf7f4d4355dbca5af5cd245dd1573944aa2968a2b5b2d57b658ae6ca5ba1c28fc9548445a45af4d0e0a430fde1f680f0a435f3aa53889f2d550184afa2125412292a9cc28e908238690aca6594a290d494792a02423995e170c568facdd6674ce3b77d9dc2085cf7a77b25a456b6eb0a1d786451c41d4ac61183acc2cc2d43b3d6908a5f1ae2cb3d968312ccbbe9ec128a535f4cb328d6694e6fb4844869c64843404d30f481d627390434d904109790c6ba618b271224f2904234b40d0434992a085ed073d521035d2104d2b400e4a93d2436f80321cc994d2f3f0f068800625c1063cb4fbb140908659d2909e194924223d2385700327323d29899e01333dc90869436e8cd268d8b15fcfb1f3b3ef39494059ae1802b5b335cc1668b738a5742284cee4c90922c4a7882147e43e66e90fdd534a201481e7f2727f87144d6dc8f4f6ee989807a5d75172a607a96aeddb4339c3e6e93de1a36d51d9be1db0e5d033bd2363061022078b739876d64e0715d66603740e9d651850f85c3a2b812acb2aac2fb58f2461b04b9aa603901d63548598115f5f180abaace14fbec08e9d601620871e4098ddaf55d81b3bc54c80dda666253b0bc6fcae1caa55950e2827b070832bcbb6697d86471eaaaa794df8b26399f85118ec1866c467bb893dcb4e43bef9f1cb01c41e089541760394524a3fa9d52208319105263d4fd0a07ece396795126bc1576f63f87cf23db97011992d40c1172e22f46ac9192a0168a4d26d18be2cec18f4da3d1df18d7f966978bc328029e11b7f4a2345a5cb5b27f6891d8a426e214b12e972b448c824128944225ddea6b39ea1dd47db246b9e768b044943ca9577ed7649cfd86bf5daada66978cc5ac59dbbe8dd21e06a959e5d110598e4ecdadde4a72dc99a0dcadaa5b63dd3f07811d1be658dc745248b44cfba7fa2469f9d428c051fe643840db24b2c1312cf07b62a5fcc8e36a53ee6143668ad96da49e7ccc2464f71f04dae6937472ded6cd4295fd06f95d671882cda08c77a23cc14d39d3a9b09dbd64d8cb356c94992ade2543bbabbe79cd3d69eaccf861e08c806773dfd9cb3a70842d800cf10a02002212be9a5bd729eceefadfafa63cd245b96619db901117c61082d9d21b4265a45e887a84f5042ab487fa7252f63a0a055f12725859910d82e9ba96a4d9598c42486dd6053335f737d5e9b1b6691cf071b39e79cf2def01a1536b5de605353436d6ee89a99c672760cfaecba78e2aba135352c9b1bec55f442b2d1237cf2aaac353db049ef896ffcdef323629394e2d4fa31c7e64ec124a1b2fc9c60d8ae571d367b5d3488b9936ddaa6fbf6f3045b26a5b476bc2e7b5dd99665f8bab2cc5a5bffecb2f5ba2e7b5d6d47d7352ffb8decb1392f8cb30b00e51a09946518522a3f3aa719d240798ee4313b8d4158c31262c084d05a6bad4dab68df5a9b656198fdfa965dd92786596b339aceb0deb14374532c48cd5e6ef5f280f055d1ad12c65ebbd99eb2e5f1e5cc6297350bb3ad6109315842b6978d40986bab668701d32c0b43fac9a03368208fa1a43c453083128666b294332f72d69d68683382f8b2f611dbde5d24c06f17893e075eebfe568b88a2eb187de53abe8b9fa69335e5ec4a21dc8004f9ba2ff2367b88907a668f9c31a4d6af3d24e86d9a629d9d16bd4d5ff59eded7f40d83f28d59fe8500d99a3d3d9466b64cafe0ebe7114a13be7e2aa9b57420296247c46c91deea0ba488d781f702a1073519c4e349299acb33477dada9d1b2ee5e16066b08c06fba7d8010ada2630083877768efaebd9345c8f207375842dec1a347cf70afefce5e7bca818407f3c65deddd6dd76ed4cc9df3be7977ecf0a8bdfbf61515259f8671b87796d9cbdad87dfbd6dd1e6ebc6b3b7818873bcd38da7368cfd1c31c39dc03be91392abde9f6b7db65d9d510459887d157dec3e82b58d4be72d9eae1bb88456de53a4e5f31fd075df98ae92240b68000416120219e47f0244261729c2e298c8e171f1a0c618a9609abdca984c2d4568d1ca4d943c221f6856f7e051bfae6bf3b0ac39479a8dbd9da93c266d666a7d7a151ed3f5ae32786cf1e01b3750a63431f7c1437fed1d73ee9b3df502cd66fa7378d451e0232abb24fd28f750a437f6117ada235a79cb56a862d224114481af0492458018a288ab88672258dacbd35672ee1bd7c685525e11ec4f0891f25938c137e74d2fb8e6eea5b8ac70e911178106666d92ad447a910f760820aaf740249b685d90ad3f772d9d50040fbd0c9a34ec6118fdae4d6a887cf538e58b78e5460d633a00df0990571d62af12fe195795ed15317d5391406599bacbc11c95a96c397ab983f2e72572f3b0bbbdf8dc7ee2b60f0e822c3fc23a96a9fe472f9a58e6f3e1e1e11470631122bdc35775783b485f24bf996ca21778fef87dc39724a9c295701e5d7f8979f0ad7c2b2f295fbd2f189056a44412c8e308e14ea3fad1cc4b8745a51b9a512cb55585858545854545a5aaed2d2c26d2ab7df4245a505c77128d437d45b550a431456711cc7712b2bdce9a9d4492416161616522a75b9d3ca0a577aeaf38607efd823834f5d1ce18823bd06118f292761d9aa1257e2fe5de55faee18e3972ca59f4e81dc2cb567d35c0f06f95f8bea4cf3b4afd7b8b21fe5a25a6a4f2f724f2f798abb3d38a59e9ecb456b855705f51878cb32ef65b7cdcc9fd06bfc5dc1fabebc85c060b46e4efacfba3bb91f90a832d2ee36614262500cf11838522a4c8b1c23ab39551989923e636dd430509577892596489842b30913799804f22e10a46f2f77e26731938a33020dee17b5fe537338ec37966bcb84d874fddb1474e7d237d2335d8584c7d4a3aea10a7804f390abc4d8ff32e4f7d93acd46d7a4bddf9cdd4e411752295efe5a6ae06005e0eaaf856dce4cec58ad79654088a1be4afca8fa5e5968ebff28bdf8a157b5ca0487aea224a24e19b141e7b64f133ace19be5fa82a90e87f89980504ce11b568329a9291e3c8b297e24e29ccac2f356449c53b307ae3ce53f7d9f138f18d7569d584a2596120bcbbd67b9f78dc78de5f62dcb9b4524bee5886c39e98e3d6ab47c1b7df4ed66762a01ab931eded3e8a9a312b0c259d8f2948318a7e5620b1e532e1b7c369fbab2551985094709ece08c29198599a38f2d4f01bf8be2e9ca493775c71f722af476ac50f76ee95e0f941039c463ea29477d75494f6959e1de7844fbe267a7c377f1e24f1fc54b6075593d582b316c49ddc5c33b0e71b3da91c794a7704ecd624ecda7a7e4136e398ba12cfab28b3bf690535ec31d7be494d32e0018c72983dfc03beee42fcbf37edf533e10c46305c1b1471e85c8e30f3b72bb1cbc338717c7079d9739c5e59f38a7ec6aa43c45a55379a77299cb33e3383ce65e60062ea2721cf00f160f2c2cbec0372b2cea68b18ec76c7559efaeeff2d5573bf3d2ac729716571c85c833467fec218a2e2a3e6816b10feae272e7876376b3eb7490d5e5393d0494dc20d8937be47cc8734748eea7de779c4564ec491631972ce2d187acc23c5c7263170606e6ae5821c550afb8d6c8193ed3477b6368e6eebac87628cb56a45674d37cc565cfa85479c58af9cd9f6caab906dd20bd1fde54873228cb56a5dea15c92c3db50928c8014ca38611bf1c690fd720927385328d49ce15f408c1362d2cb733a6f9b766e651b8d46a4f753a4cf83a8a71e1e439170cb88b443ea2109e348a51ee2d10b371a8db8976d25f57da4ed24520a7c83a9de61d475e04b8a2453a2f8ae035552df22302fe2b1f3ed6e1054b9d8771c1d9f0631734ae5258571e649ef4e87eda49376da4912a454185e1ca2f89e544c5dd29ca35fd26987a35f3ec212bfdca66ba4cc6cdaee7141ccfce57bc79cfc727c4721f2cb5beea8935f2e3b1c7249d6827811f1584531a773109d71faa9bfdc49938d725f88c71ab68a3bd6ace22a3ebb1ab567eae265915fdef7e5a99bd3d9e27071ec86d3bc07019c86cb579ce68a7d9ac7388d2bf240f318171beba0790c51078dcf9cc667bea5c2db72c79a5b2ef05bb9ed6ad4f0edf2c4f0e11a6ed35c08f224ca13275c18922707b26c620b4df2169c00c5ff4069449005ae1e83775a168b29504c89a91fd2494a14f35938c3e12bac3204196fbd5e5d8dab75c5becc654bc65d3de63a5897c13f64ce52fd380264eb14a68655ec1b195fbd1bdfd49c857556afb90eeb32422c5b3834cc0edc61bec15c2444b15fa3af63c6631e8375763610b7bc59579c9f5fad1e83755a5f5d279ff59d96ec441e64e8a8b938578ff90fd665b0382ff39d968e98e3701cf08fd563b0383110373108902d1b0a539f0385a9df69c9964d5fb65a5852a964062ed297ad8c1bfcca6d282bafae6c6d9bec5227dd5127935007c15b239c7386200886a48b77f439270a14716d15b8f20e314e0a8f3b39752e7547a3e82b5b40b2c9ce74ba48f4d2b7b3d4cc8233b9cf7995eb885c8dc8e0e726d2417c6331f53e494c7d1e1c7d75337a786c8473b4ea4ae1f0f762a7b8bee2270e9f00d6574f80cc6352580c71eaab1b99d42ffe4ad9b0bff22cf56c62f11f0ad58de05158e5898971baa7308eca674e83225e9925ec7de291e5b5552cf81e163d054cf1c483a1f87930c50bf1e8f5e9744f744fb84defbe0aefeda918dd643aea8e3a19f54d6cdbd908f1b89343f17d795602624ec1149635574e0c6fca65ed12b06225200614435c574e1aad701f994807c1a75247bd2f36f88ec47d34fa3c88c7cee0c3f715c5d545f1dd5d983aed6ccc9cc241cc4cea70e8c0e1981f854fcddba9b053de47c6d1492d8a0f0f7e7563ceba2b9d9b15663dbce2e52106af4e378c23dd5183573d75c721441e568ff9cd0adfb0308c101985c7958338e52b329352b0e9a6cbddfb3815f7cbaa3be6e495df3beae415ee2d6fc916188a58e481c5fac1c292c28458c7ea47cc0a4b118f52687e25c69db99b9665254c6e780d999fd8882c9365135148919bd84212999565135138c105222cb84ee4e186c778026e780c2c2640009f61b1c0eb88f3abcb160b8bfd98cb16886f64ce3a0bebc8f8ea3a647c857f14b961bde63f569781afa3e6322e03ff60bd06db50187cd992c16263910799c7e01f456e643ce63f248591c13a622e7319fc43068ec1b2b5d3eaae06287345f1622a25d6a4c4948a94022f9240192c8e2e82f866c68d8ccb88231932a41416f1c8927165b098ba48126f644ec237331e035e514ce990917110bc2c2ee3ca5cbc3e684e892c587c747d4891058bcb4eac11aa40dda3fe7dbb28962e8a2c275de5291745efe0bb8baa197dacd34845329d858475cc88c122f8192a2958068b5ea7a27b8b4b92087ec6631e5e51441d0c2f734514e661c6632e8258c78c98cbb8ccc511d621e3329781656e43c3dbe2a316979d0f9ac79ddcc9dc98dbe29eec5a84b7c5b7ae4677ed7a50beee46673f6f8865933e3f6a91519a98b76851a3059e9f04ca323157823980480a0303cef995d7cec67ccb6da8ec423ceae4f0f3c65c3047ab2438efcafbb278785bbe934997c56d7a6371e7d72c388fbbd7e9c07da7dad050e75b5d2e13cfc222f898efb474441004f1ea3b2d1b3aaf0f6c9c299895afae6cb1ae6c91ae0f9ac7cabd3e460d77e51202f471577783fbd5d3aa3adf4f5d3d2db7e64bc835249c19776a10c9f313c42b30e6219964fcc678c56de88a7b9de6ca168d2b5b36141bb32c807bc39514d3289268220a23c22c83566044de28d71d0fb3b5711ce9661fbd883a1be1fbe06d7c56aff0289df4ea2bacd38d6d280cd8b4cb5a351bbc0dd8df69c538eb8a8d730061c95c860ca1fe410a754f9fc9337ba6cfe4e9317bbaa7d0049a41136806cd9ff9238766cfe4993ef367064da029d43c3c73680e354f03f54ffb3450f7b44ff7744ffbe0feb13985010fc3066cd3b2b5bab285c2dbc685a2cb45dcbf8be9a5936ee9590a91d44f69622e8a67511af131a38ba8cfb86cb14431175158e4617519d7c1fa0cfc23e6accbc03f8adcc49cf51f325fa964482579cab8ac98bbba35aaf0cd433201532e4eb91e4e39b4b393bb13bf8937f56e9cbae29471673ce68af33197390b87afae38b18d197ef59c527f441ce151bf11a27632ea8ee0450fef08ca2c8aee98223e14318ef8d35118073cea5987033cea2bdf56ee9c228bbe32f3c43d0a47388337bc4e16679732b30f2ade6d72e0955984c2354acaadf6e7e06ac5627d3e0b0a5ac2444666c68ccf6b5e183e1b05cad53324627068084a949c71c0e1f3220f0cdf688366cc00623e9ff50082bc25e3f35c0f40c6e7b77c1c4222641e7322665cc66727f220f398dfccb88c6fcd85357200599d95f1ea44e080593364b2564dd65d5d19372675479ddc52d4ed808958d22e896278f059cf4891b58ac5a234abf7b7d5155317e7657ca71573d6155338071099c7b8383fcfc23a45268e711d9915ebeeb45677a725bb8d75758adccc7c25e332bf91711919358f8175bae633a791798cb35acf38bcf5eb14b9b139ebf5abd5657eb3ba8ccc579ff886008f8175629c0098f6609d2237f92bacd3f9ad8c75280faec701eb480a53cfc23a2d8479647cc6ad39cd9d89b98cdfc4ccebe0f0984f7c33e3355887cef8ea2b8c03d6a197711958a7c88d8cb3b00e95818328d0cc5998ead05c002d34001e01f4d0007a7c581f29d00d3f3468d0002e15c0bd8106d699ad184c85284cfd101e5361dc86cbb0e1307ed870d91a67c8b8b25573658be6cad60cebabdb348c13315b36dca663dcfa7365b04ef5a130f5abc7c4609d2237313198759d2237abb356d72972c3fa0aeb541e0a53cfc2f501ad18a8840cb6e54d2d999a19110000001314002028140e880462c16040a26b8bea1d14000d9cb25870501767398e520819630c0122220200000380a04102cdd10f06d545cb7015d910a8fd1081452cf0a3d21a2f2ad188bc425925d32f55f4abf094a51cfd2f08454c2a1282a3bae9c82d179058c908bad435c5998ca121401d96bbcce49f5add80a3e650659c44cd8a7c4f3333cfb77fb807c59880d216533f6e48ac4f4cb80066a05d051c8987b146f4307bc1588adc75cb25769b4bea38b8a5b78d6a9da3ccf6a9eb24c2bc00aebb0f31d22bdc5ee0a662c486c347ad06cf68d6282191795291acfa1f862e3d4db04b3762fc5f9e0bb73af5cf737ca098ed8d5a28fa145ad74477c3bc32b824f01f9d79c741a34f4e8b0383669485232fc538aa4a45be856a736790c1fd77f9a41a2c4556dc809e272457e0045f9c17abb54b3859ef88b0f405cadab359c045f126c0a69ef86d50fab38f8e5cb32a962f5ff12a0e88a2e96feacc15a0a2188cf2b4ebe8502a6547215331254aa13cc82f488e0a0e234a9fef6245437fb068718a5130ef60a0b1db03afb279d8b0bd054cbe17f75a4a56712cfcbdfcb761bd4101f2ec01936a1517d857290c3a358cdc64d8b85ef0d609b2f8001e209a3e3fd489751a2add4ab84116c94009f3eed739bdc219bca96aed8c9ec2e0f4d0f80dc9943c8ac2d5628d2c4cf9d5ae42ea555410d7da3a85ba59b9c943f7984f05a3667b70be4fb21cb0cd6b0ec39a3cff012526045a57113a3221a754fd44e60cc0f09597a225189e80556ee4885f8fb40f4cc96f2bb1ad611b14a7daffbc240d03dca503007136a01f56daf61daed3c5497c972ddee6c0371787b2c0fec4d6cd99784b8b4fd1f39ee0a0563747134a1d5d914be4629c94dc32237e2c246abc3cc35119b7e400b4fce0dd0cb18ef810d5c1389a40c3470f7ca3dba64f22125c93cc6b47ec3bc67ec9240b52de73da6352cb5ee7729ed6179a492d4c582c2ff821a996d33c74a397593f6b4745d827cbcb8b3e0c0d3eff406506897004a6112e1c30253f221a01ee33312d5fd28e31eb984026009ffca57f49df2d785ce093005fa53f654328f2499eb476847b51720929443cc7bc758c08afd6742d61c03bf31c490fd700d006997f88c5a38ddfd12f19149952100c4733826f7c9f46fe8b299771249ce3a6dcccf3d2d894e5023aef1c021e56ac68d0f50f0dc29696f15547fe2afea9945596f628310e05a17aa91c2b132da93e11c599b5004196453ea0c14247d2db7a895858376a7524412d483e9b1020f8a2b61dcb9bbb6639db4fbe48060dad00a6b80fa912e382c4a669b59144b040309265b37dcfe46477524b25a574810b9160e21710dc087dd8b8a2b7d6593462f94937e240138ad0fd61b1241bea8375054122af9f2c667b419316124286b1cb4fa50fb1453e2c57c9704dc3c1a2f95589d0c8e969d7c735fd0662d7f8d6d380f9b1e375047c0581398c83afbd0930df868e7d355ce7c9b2bb63f3e2c5912de24e7cb9bc430ce229be64c9831cf810468caf50852f60090a64730aa71813fe422e3b71f2823d1996ca9d8a237d03e6ed68dd55121cf9acfc6cf822e685be7ba3576b19ecadee6e6b2d028eb6682fd5023b1dd29e34f192ba44ffae525b6a47c86d78bf3ec21b7a267312d92f07c26d6fc314301ad07f982086ae17efb5246da4513a98cada60ecf6185e193d00c42e9908383069aeec742604dc19a59744bbefb75641ca7f94c35e23f49b0c6fb0e5c44273c00576ffa8be3445c4ebc55accba44750810fdd5a3d9be5b90fd24955ba0ade97bc03e315145491710e7bcd7f08ba44ace1a64a71706f0f320478087b2896444263c58644cacfe4ea534690e14b2af306172525f41986274ecd45b1e4d81243b43905cc13e33b75701be8b19802eecc62ecc8c688854f6515386e1d9aa9c3fd3040389188c20e844c356d3889a1932a964a92e28d84c43beb1514ca0ab12b115c3175290906c86bf49a299a37c2b5c5a604e3e6434308c86bfc646d4f2b8e440e0b7741edf87da3c1ad2500020a51c7df038d12a6e421d8c55bac4a48f68e3b16669ef86fa3773358393e48191ffe7b43efd24e1711d9fd4e9eb088124b55f7520afeb1d3a9c603d3b3205d26a41f0b5ec020057af29cd19881bd00da89098b2add0b6dcd2e7f4d03d2d7d161279948c014f803129ce1b854025818fc994e0adc14283ba1ec364ae35aea3fe4c92948c6740208f123074dbb85bd0a8012661226df201aa639a0550b129d88ed34326ddb19d855539ec56b45aaf99d46e0976af2fee3c7b787fa863d92cda073ca0cdb5eb3e10c41ad123c4ba41a8019057e6cc6fb873773757a49ec467f05e4f40b54187b8b6ff035aa306bb3614c905bbcada18ab94e3746a9a8890de26d0a607d6ce6966a42f5e362e85c78dd596a0aaf40d0531f728e32124b885e8a2a1525e4c69d21bc62d644c06cd3e3402e39fd92d295d8e50d2712258c246f275743db14676c5c5078daf2114b187e3d388c2cdb7b255467eff917faa1683436061a634ccdfb15883fc7c8e73e7572bb2cfaa30b1d881d146257104135314f4b76b0a13d560df597127f6e4a5f4020ac8ff777a19a2d23ad3ad61bebded43e8e30c911636cdfbb267d9b70e1c0c58d3f4bcc28b76914a8ad6833cac04fc10ab03fff221c81c7bc713ea7473f280c9e03efa129a3a5aaf50222becc98ca324e1f05be59a12608cb9991943b5ffe6b6c10d04527773497bfe78227ef80b00dd4c5d9f1a000d2d2375d0f1a7207f1ddcacbe3bfdb124c64a921d52d980114f92bf6bbe5ae179264b0edcc4154602d3659f67f437726f119b8cd2f1b30e146d50d40f0e8d5d0ffe230e8ae12047a78d45081882ec9a21a856e10ff207f1dc71df5bd8981f93f1d92c838b34dbb0537f19c70546fa535738be15e70abad5df0de46ac0f7a9f163462d43d90a63d6d07939c77ba68917fb5a05eba4c028fdf60ad49fc2aafd4e411e823ddfe8f22f77853d9dd6278f40d8854ff096164bcc0adfa86ebfa6f98535e98635e9c77af6b0aa2b89608a30b18fda691c6e6c1c8489028274f592afe589c68893426cf5996a016a842f0cb34cd094d028f26fb537778af792f879305ff4f5ef60709de935d8c2bef9a58bb923211c38e0fd703538841b8dab4d79942582812cf2c449469e2b3be06fcc7fb507f83a16207791a40faf83270c9f6dd57c18a42b910366647abf58603d199c2a105f8d9eb4eaa71a505abe156f66e1bd51d7bd39b9c025423e7d4455e486fcb851c76df959f10912ef896363d097414f05e67ce82b36c460f20a2eb301582ed93a04baf9fb2c8469331eebd4137242193883f76153a947b8ed128605f7e6e4b5a0ed0cd8025b6300403917f6a9990b450a7c74915388f024fff1431fac801f6539c3205e2c132efa10031141861720bb88f8f41c3768a06e626756035f84ef2081c7d25eba96556a44c145739a811f06a6af2e401439b27696c59cec86663e537e68aebe0691b90608cb4775d4552ca37c5241a14b0b3fccc8c409c08c139f6d415ccb0fc355649c1f5808af09081df2e5cc91f9feb165ae23f04539b4acc1e640a1d2dec70863237eebb92b1d99c70812012594e742493297db99b133f3123ca84fb6676d8807cdb79dbe7f7a27266da58842927000d53954e12991e46d576ce37d5c58b0b48105d78dbe4e7543174199efc526c7bdd2ade5a4364489059e12328e5993f769acd40277c2a4fadd941a53c4d6cbb8720e87813675665ad21e6b5b52a2c0ecde283ea479e759cf9c1c6a1329b5206d270c1eb81d76926e4f5362671a7320ba363081a13b8325b4f531a8aa420a954d616436c5a592d9ccefe8b4c8f612cff3d37c042dd1935be6f53be0074842fdf805759c313902fd8075aff5674a95a3ece0317420ef23890ddc8bee507d7552b234c2349c3c8cba47a1588e91193b5fa1c66e0af66f3a70361e0a3a814c99d93b6c5ceca24c573134ed1948158f2c9f577083bca5a09fbab63fbbf3dd4252aeba4c358973d6e20c9598848c57cf63d910a135f4f72cc19c995ab49b2cf548fc023f8b6bae2c542ca23cbb10c44a4d3eeb048d4e1ec4f73c19f51c6a71009c12a0254414ec72180bc74396c5d127c7477e1b8732fd347c420cb7915a4a65f64c8e395ab32c926518928367faf80fcb13f408cdf0639de8b0139a64fe0b0f7d69c036360f60a6340d7fb85797831c3f3d342d090716771719b9ff8a2ed0e42c9e2fea347e7326158a4e28c084d943f6049404b7a18a75db7025fdf7a66dddcdb05b7efc3f96a147f713c3550a3a1b2d425baa88fecda6a68583453c284330468815ba4477b2c6f7a909c13a8901edd2378270cbb6707c1ae04e5c27307719bb74ea84ce799134cd8269bf91969deb8c3590b9bff935de4307a766bb9c1fae1d303704c0947fe06c5321cb3b5f6dbcc052515c336c6599a9204cf4790c2316f926be29ea46d3a18ed822a302f50b5661bcdf8537855d1fc48d3620cffdd568835eb71152da105e8e63642617dc796d71006f230c5283d39836b108e48871b3997df73a26095de6a19d0e8b9bab58183ca788480c58732da57829149faddb0bd8509400e3a3d8cd13ef872dc02ea6f666542ce53af08a48058907d19f1c937d513c82ddf419a965982b53345e8ed44021da2a7b36f48594eb8807d8ed1f532118836271a94b8780260499fd32a786ed263e62fd421bf4e98a11ac3abc3bfba24a4a54655d7a38edadb6903282cd774b1441a70aafe4027c23d8842ecb2640e44e105ef70626909f126e65b73080066f048b8caa6719527e5936e5b353405ac2ec7a8711d2116aed085c23d5c770e2fe8ab3ee443dac493c8ef4161568a83fe40bf1b07c537cf02521f95b770fd15b67396ff4bebbfed0704bc3a45fa338fe0292cede1359ded05d3a3c180f34d2fce8b595add513e88d8cc1f7b686f96bb937507802ab0e65885b30025bdd187f20f68849e0e2e220d1798f53166c5cd93ff1d75e759f190311557632eaf610e716c9b264ef9284735a495d6290835cdb6f1051a68fd2af3d0c65f206338db1dbd6ed37a562d88b9319cc7fc6e2d516cd0464c479facdc78a9cde85f53150f91af1faa52a13f3c0a6ab7f2958a0d8ec3f94a6d020796be908e92155a3141a6299e90c2c03ca4029977d385bfdd6654f47ca8ad037858a38a139b7b9565261ebb1bb4e8d8e9103ea7c2722c6bc78bc58be5172114ae1d0a48b0365154db7445f1685ae35d07650faf45e883861545992c3873d8772b73a005911a01d0932b01b795cdec00dc3614b23a31b703b7bdc8364fee62f17f8d19d6921ca652f2d32b652eba2a7326e37547e1b01f9f0f7f143604522f1811e114ff48deeb735b1aca9a7d06cfe95165686ad2026ad400718e3106a507a9fc4ac07757279240ffd62b1a0d316ba99331ebf614f617f7544c58f1cffd2d0044733e535b2c916e624317a7aea3e568285e630b584ad9f1180b7a2c00a70e3520c6320e33781f529e158ea8de144419dc4038de8c87f72c418673e7acf20095f59212de517a002d32109fb1a79a45126addce2f76cffd9b095617d4b96d3776bd129afbf00ad6bae7f21b7d1d2879ec3fc73ddacb11b76c592812241d00090b41e6891264dc261088cb18e57b1a71e55974b485f50e35cae4a7e76aff76a486c479e8bed0930c755056e0615e9ff5e5071fa23f1a6be9a35a87f68eeb1b03be8d7a26a4e9b6f1e72db19b3110887d04b253c26db89a4a5bf592e6a0dc4797b3c11084674356f2a3a55b7b6782ca8d56709f6a11ed45598d18ae6d3dd71d1f80dd25403f2b5d5657e517839a3173d7c1b26cf2421af2166bea1fdef6e661838aeabe9553df7db30478c2b2461a2a1280cbf01ede6843ff517c55b12af2da360b7bad434bceab54566d495759bf105150cb6d1a8ba5ef394ec1d070763dedbdc886b20d586a7c83c26c496339791330ab188553cf65844e9390df6d435522aca0e3c30ece132f2db6066054fea7661bace2954b47ffdfc6799065a24b55d0d3255c9f84a05859874195b8865de14ad0de8b2776b10aded637cc8dd0081497ca476f24f59e8d8dabd539e0ee13c0c8bb9629fd305799127d3af0a4e0b1d8840c4b8830a0780ea11d2b4c263336ab7c4f4fbca2ae7396e24d612be8f9e729f2399da9db4f9d7f298970a9063146a945bc2de02978363a08891e589c63f6dc23ae13f9f91870573a514b9aab29072367d0232fcb3b06a08b43407070f6641f7ea00786acad6efd9dda429c6fa9314aa21a2c7d999cb584bcf02fad40a615051e8c82da4062fca0cd2cca77d1fb83da05bbd5723d82072390d818e0e65e26c06a06063ba5883150de9a605fbd0399e7c639110d7b032145b96e16fc901754064c3817445d7e98a6ed3155da31bba1ae1d3543670bfa4347ab3296dfeb76295d2c61239d1727b0a0dbf32b29d4427565b836f62217485c5dd60911d3de556179df54401d0aafec43a3d25ede78e457878c864dc7c1d0b46a2988350706eba9a43704bf946e665b289f6b1074e50621bfa39b79fef8fd25b7344283ab18e3b80a4974823bd08640fd39bb7038b335834789f48f53404dca23874f3c2b6f80c70288187b12513b79f3800158180be5a6cbd6196cccd4f4b69696f556f9fa792c8a6f1e4577954bfe040b8e30d89eb5250aa640e410591804f8c73a650631ceddc40253e370fcfedee2c905055a2dd516a47d2bde44d21b1813b8cd5ac78413e0af46added4499f02d36f611e8c827ebfedd75cde41fb48d27198fe6d6609a43b38c221e2106982460509c79b74a35359631878eb49432deff566a76a16f4edeed978809d4a414efe1bec332e7767a6b18cde95e85f2a51e00e76735e23043b88b183cc518f0876e053fdcd9bffd185433a436a72a01f15bc7ff3e9412a6c6143518331fb0577c7987ce9088303670097e4caae62110c68fe467b4401f4e6e55ecbddfd954194220b4041d1c20d24fde7e06f06b35cb1fd8101c08145b40da43347e3e026699ae92f508ac2a6296a6f24e58c225ba304e8a392e6e48a5c8030aff005095fb3d7ca58b59557ba427942ac7dca7b5e2b0e7008f88172b974a4457e06f69c69554c6ab57c500b74bf5e54e0340d13713b0a911d859a1e1b575775db584ddcad6eb748646737543d33e75e7149cc6d910f90ed50545112c58722f31b3e859f7391cd4452f6fe5f48a6130076928267eb55606e326ef57fc5a0c8cd11f04cc742a427cb14bc25880ccca03fc79de21fb0c04dbedb98337b02913d23f90f0f00f13570539aca437cdf7e4747eeb3ce2a5b6487f07b3944f90e072e68ba7800f5eda512006a302dab7157b1bb4bd0fd6fd033de78acc36782664c50913c46b39a330e2ab56d36cd81748b60d0b323254523025430c11b185e3b7ee90b9744ef918d2f6c0daf2acf1b06cc51c8c684feac50801260fd8127a6ef51ab43cfca6f37ec4601d2a87599d241c92903496ee5fbccf29035d326a453caa1440c842acc984f538d3545ae89a6a58c68904466cb89421fab7595ee0a34fac66323a98cf50f7571e9611a44bd016179c1ff5c7ed58626fc5a73fd116fe54c41fa157ecf84ed1ec6b4e0d13ac170e573966efbf047855eb930e5cbf7aab333468dde053d56b633dc54fbff34738b86b51e9939cc549282a32ff3b304033f6120ef60859301993d4e90c9b305fb45b6061391ad3a4b31a89f49f04cef8521661225f8b85c501036200ace7163c15ef20670ed5adc656995cf9cfd96ba91b3e49ced8ec47b7c9200865401051d90576951b5dc1341fc079220a7c96edadd670dcd1d71d769112a5173f046267f830216719a38d3d9382b7d4ac96107edf20a0c5f4df9fafa233d810807de663d969444fd206d48a5d391c47843295841092be1a6de2d258c5f23d77c958ee8a1c4985522f7816aa638515a76e8298cdce409fb6da68bff8cabe4f76c28ca940a45da7c3c2c7508184c39fa801a66614895c9570fb790efb542cc0b5e113231ddf5e89e4324fb55f02c5b7729284efcd23b3bb817d45eeaae857a5ab2caf7c3264f01a0308da7e9aa17e599ff344006b41ff90a10c2f8a98e9c07f9de11d6c503e242951f3d148bbd0bd2221ffa179016038b7897341372194029ed12b571e7c228a609cbf80f625cbfdc3ed96b4c06b4266f24d32d0ff405db6bfd3a4f66328a0c75128c436d0ec3f180522b9885c37fdb3d9969aec438ed0d7dfe14280692f804e963747bb0a8e25a6c70999af52e03e35ebd2b7378cb1c5a55984d555c1fb2154f187f6028b3ea38e49b980e563425ccf4bbab445ef371f1995411688b5db5b345f426d084004c035133a2340d65aca54898d1cc68ac42e2f7407791668b49b89341500e8ed5d2105f7c25078fbbf7df163d6d91a5c25d98d68424092bf9a69d461e9cee21e3b3ce76f5af0aa0da87b31ff800234d95b642cb180762953ba610c004774392bf0117aa4ec937c51e63c1317588da4ea57f8540de536d159183caf47f4f3098dd9e76d43b48a3105c0d5fea3c3371dfbf96ddd030c01de13c4751b491061972f117a7902d4ff7113a0ffc8464e34a6b0020b4e03bc1b6a40c4317ce214963109f1b0d00512dcae7eb44131c9e4c5045aff247a9ca44968648029564c7698c32647f2b0ba04b425bbad075c765f6906f3191def5c22c333ea119155a0ebd3200d82af90f1c2b947f26615d2145bf80668752e3a17433140a8e2efda1b8b32032c4146087467797470d2164ed98258f1413c6803f2b83e21a098764e71bc4e26edae124c72fdbffe93287af7c9c479d628fea546cb1a74c677bcd5fa50d6413cf5e3561c1dca97e2fa867d0baf6566ddb506df4e0970d0273770ebe8db2793b06a7ab058d3fccef8a2541254479024424aef8f27ecabaf2d72bc6c31eb826f650181b0f42ff378ec27a42cc7e727ca3bd94ab0178ec22d818ba6d6bb7f4427e4f0eacb7502019171594c85c7028107971f8db6654ca2231497e494b49d87d4e22cb45c19e9d41ac72c9a6e617667f1388fc526b65dd712e203cb036b63391e7411c18801515c6b5e44cf07327a4e6089a250a2be8fd60b2337d1a0f36b8e971a00e1ba55c6f0ea4998fcee504c21df2c2cfb24f7b22c2c867b5b44595870beb02946825ebcb7c83a090d412fca1f72841a1c814384d718c3bcf641e4f04d53f07bc2e823d3e0af91a3812bcd791846497141358c6dec18870c508c773d8ca70c7780c1f3d6577311c237e74a670e643882c1775558fd4ea6acddc936a2395eae65890da712466cb109765bc1a0560b044fa337fea30434852a8d17ee52e7e6f3aa5f1136b90d1971a03ee1fe2e8bef3140c78deb7006d3cc462de2e73324fe74b73a9b0e26506bc5d9583e43264176ae59d3b1fce71bd3a659794d2335636b8f121f1b6b6319bc626986dd967ed1da706849614b8e255fd2fcbcc091b760225542a8b4c6a63bb18a94145be7407a4cf88abd6c9935b556664146dbb48e1d78707fd7e5527ba73f8a347e27a752d31faa4374b0f37ea7f3cb3416e8339cad45fa5ce6209a43b00037e065f7aa622b2217649e30919361ea02cb1bccb6d9fe7c192ec0f29830246dfa47367af0d233bdbc5a5b0ae1feea8887b4171eb5add23245a1cb7a37f7c93fda9aaa3f34b6402422aab8d3c01ca12034d28180cda152f2063ae7753983216c2b821fdbcd9803a46c02308642027b92ee90e5a02c6a57f681225804f7195b2b49c917cd6b465e00e03dedd14e9077bc6eb0c233815f13cb352ec26dff7ca91858df2faba4603778e54e52672a1dda5072bb08f2020671e1444dbea669a419ea4a552351a75158e5e43645a83b801ead64a91f2837243733161c23cee309e89d27abe8d343c0c0c097f79a078ce0520bf34008dac5d2e58192d350e09176906d63222feae8e27b1ae631e1a03c8c0b5c56858db6e24a32797c9bb473421b171ce9a9eab50e46207431a69de98efb31f2b87ae3b9f8ea8c8b8483df128bf493f8129055e29402e022e228f91343a235c298d6f2bd82478e873fdc0672200aa2773b2032921aa9c694ea22185bdac5b3e10e71e4e00e66df8eb5a9ddf954dd3e93ac90540528b01e9ca0f45461a09baa7e8c6745105224399e1394b359934d35b2a4715481e80f3b83089386eae1255bbf8f7ee90c9453a8b292942c0b9aebf6bfebea901e807d93209d6cfc122340d04362b5821b43264daf59d2fa4754c18907952a49589191f1d36651a83055290ca54fca1782eb7d7e507d903a0c3d9f0375cebe2efa8a043b8cd77614c567d98b632f63daf72cf50538b3cde6253769ab17bffadb9e030076d03ba2cf304262cbbbfe30fd8ab17bdb257228c6a399697e0044d204180637564388ef0065561875d3f6290c1c36b0b83e249e9e7f2923fa6637f5921056bd7abc968a5e5a4ebd760c61d47e88bad8d69f96452355b1ae2d198770d19e8b1d4b25b33d187d81c810bf47aef36034c6471c011585b6df86f545fa0fa30182d9ea70901a17827c574b243b85c42f90bb305f74dc80b5d6b461a96fa5b897dfb90a17f6e29411415ca97688bdbb093dc822a6cbbdf8d8bdbd583b6a2f5a54b31768ea7ad10e4298b8668cba973140e7d40b2f3aa610cf402fe472e33aab0551013740cf451a3b609dcc8bd08d69bcf7d99761871f192fc2604e11a508648817ec40045c118ea39c2145db0bd057d9522e14fd26f73582175c4f7950bf8b7188c50ec17804cf3ee0ca8c719981fb4c155a40645eb1b48528818b02098d4d92295f124d1e01ab852153e4b9f8c0cf2e4c96ca94f090bdd7e8606b5673cbb1661f287471ed2775811c722746fa53a7b326c970258b45d5dc673bf324bc35209d6e31995bdc65db387ac656dbf8b6165366dfcf18a303a3b9292daa15ddbdbc6445696ab8796bb1630d6e5e5c3d40ebd56c36228b9558cf0348ae0d5cef110297aa0509d4a521dba0b2ac3346c72815cb729a45c98b1893636cd61ceab431fb1ec8f6e3093dbdb4187dccaca4184c4546c0aace0d12fa910d58693be85a7ff905666d7b47326fbb132fc9f4dd87e4ed2f667a67f28a5891796e41cb0b0357bb60cd36258023a974d2480103086272f6e83fda8404225cc475e9ca821b7af5c933e14bcf983c975489b6052153e2a3b46b2fcf355ee61bb311883f65c1c36d7e16206d0e4848a3d8ec636862226d5d8b7b96f95572c80f2985206a4dd0bd3d6243e6420d86bf58a85a4e770cabd574f9bd12ee344fc21a9dc6f370fb9574c0502a868d5398f1518919a0d26cd941e1670d7e3d5844bcbfe49fb6028229648bd06a9627bf8385c90b0cf852b6e39e05210583383191e221b6358a15fee9e9b1cfbf21f627f9059fb3dc9287108e675a53869990d0c9d47c4b84ced901f62c31d525c1e67c7c00911c493476ee5cb80e30ff3984f82abb7214d774c626d2efe75e0e289ebb0e814c5601c781f280e8aa3eda0811b4de9902028fffe1aa41b75bb78e1021e671629c27d3e8d21032b51edb6cda4d7dfb3c44a0465e801910439fb1c5dd7db78ee09a31bc973793469b6491c4c37844f99949d537cc4a802a9b89db1e70e405d617c7cfaa96b52167f35608586f121a2d30272a5a123fb805be43c24f26a93a2c1539bcd8258e7afd721f6db6cce26a99f4512b6901ef7c8361bbbe9910bb734dc045783a3248a0e09262f11d1e77e4d5383a8220dec69eb5482633a56c8fe2e3c55aa2d76aebac524820debe2428196475b935025100ab5ddb7aa5b2ede203cc4542adc157a981607cec38b6ca022f5da4ca383a3f793cdd823f9740559ceb28b95adda5d2dfd7d5fd0c752001a33f2611a270d45eaa3139b6964a12ba7c24e100f87ad3d327a25a26927fa9c487ae74d8ee2162416fdf85216ab0c08918083105ac3eb02f0b45aeb9144e9208b679220fe81eb7b89d822e3fb2c762946f8a7dac2d488508a0ae8ae8e1f244e56dbe7543f6951fb6b5dc830ebe545be867b852fc074bfb6a8458834390ce62d89b6593e261c2c743dbef9332256a0a76520847b4fda0fe50f7d993e8786062d20099c2d13baa4f23921422d68fd3f1daf5ba58eff4b1568207bd2495a13b2817a101e38d3440f94047507d237a757572fe056c27e6492c494dde8209ee7997133557789ec7ddde36aa13f7ccbfc1bc628524916910de64536b13970327e68a317892073378ea9ea18d673575343439f575bf9f511d26bc5000cc303e80ee4c4c9886765434dae609440a9c6521cdb4efca8f87e4fce244261dd7b891be6709332f9321946c71e44a698612d5c68a053af5b6a9dc94231b5259e21d7c03bd30dae71b0cbbd22080c76f7e7d6139f0c105277fe8c45033f9540f19452b396b1563f13092ad198df4e27316ffacf508e048dad7c49ec8a8607b200b9ed2a7db5ea8219804a4144adab59ada469c84b7b8e10f346adf4a5fd0b4f5dea28ff6da2693660fec7b83d5ccb620dda69be0f0bf9f3282f68922dc9c9fec8b75c96f220939f4c05019fec667025864d8b02b424bc6fe22def2853da047a2cced285f4793d23c79562b9c8c2034c0656c76237d28624e142c7811de69c40941e6b32286cb90a42c97c5120d3c34adcb4c2c25a39f6371655f645be7c00204b18688f3172c5cfcbd3867c9b35d3044d330834593be16ccc2196858488612cff0c0b553713293c9946158677b72c7a63be1d09c612afd71b1daf5e744e1e72b3f80b8bc53bb685a07a85a956f0937538222b4b5902f7350fe4ba979bef5044e36383093420b8d0cf770125079308912a20924405def8ebba4df3ae34244e198619ed2a68462841850af494f25dd20bcd8ae25547ee1e0a01dfbf14bae96e8a2173fcfa516597d471729ce032b8738a695fe2e890eb2f69975224f4bead43bfb292ace74a3ac401003c29b1122e58885c31bc6b10e85e266d695c09db35e88684c5d443e2eed085809b35c6f47001cd027abcb6a084d4b76c277ebabc6fc55074bd77129e66f4465c063f6ae8f3db331c69018edc2198bc858896ba9d6bd51574ec01c1866f1190eeefbf1de8ed1a52075d9e21fad975f2b96331d33dd35c051abeb6b7b827831ca2b5f8e4f1df812966f3d65429c6771644c5645cfcb3cc8348593c8e97545165963f29bc4bfcbf71cd963d1646b8a91f8800a7130ed7bb04e98eae430e1f0f6355d43201f6049b15ee639974038a86caf5b349fc139cec64f5be8d170dc71d28f34c2cb498629cb3fc0b0cb2f87c6a992cfd2e63d6e0f42f9114e060ede530e3de78108cd465f8495fc14f09df64ed7a814b39611c1b03c3b6086bf7d0b064ae6d62503fa721546fdf70f73fc8ffd1fa8fd5e6008dfc0ecd7e30ac009d51feb0b1b19eca203124b790c9e5c3eb199f9ab4f273727ff579e352e24529b007ca08d0b37fb8ecf4c507b902d7f2be21d51436be5d1934b22970d875f38ba31c5317cd1910f2941abbd8647c514d1f0ccbd2ee6ac85dc8b58b1da2b42be375e5305935c61b024412d8b462465e3f323785c49d2b3c1bd68353422f44d675f58a7a83ec0756aa656ab99c62fc2cec615fcdcd5999ca3c9906f292795bbf727c638c82f495bf06e9b29c14e737a4e92492301033733bd99b04fc01da5110acc17721ece94f7bf0215c6996e19db9aff7439cdb2c69c45ba708bc186ea6bbf49f0662708dedd852d4b40f5368083d90e448b2d1696d5f99b9550833976c7c96cc6e8e05b94d2684c0cdf29a341f25c3191128947e41483320691f7a06736b90b5d035ad84c967fe7faa8ac3aff4024a442d73d6cd26e138feda117a8df9a0081c94c794e6927e44fce286a81b38a9995a2c07394de234e9f6002ab2d8d30af2f866418a437ff8798523a5b3b50657d0f56e5dfc08a4f8e83df8ac71938454ddf0cf1259d3a917df9eb8741926f09db4f75f9424d604061f3d1d031ba6b67dd124b46f9a1195623a4ca8a4d25fc2e0030916ecffa749f3878b87901ee3f164509af2b39c8972d3e412d940efb52441fa6d43eee74583ddd12e53e464a6e14d97077367e6884ff9b430aea2aaa61fb98f40f7ada86cad0fbfe185a5bf4d985d7fb95e8e5a8dc5a71e29a98e865a810452f1d44fcb5e8657a323117d69f209db28741378106e14e8220a2e29c774a24f33b1e053037f13baed672eaeb129a81f8e5f28162709a7717b8bcd72d2183d47c23b83a6a19784aa7f32c70c4680fd4b62d517e899f265376b17bd9de027708b2b4bd72368d78fa7d86abc45003fa48be590c864863106273082f68597083e72eab1b58830fb8c9dc5c8bb76baee75fe46f8f526feaaf16f13239b9585e47a2945d514af4a6a79d9cbd880b15bf775d69262c7c00d2e95c656ac2dc0efc74515f03890b532ef0f8002dc648a28a58772d6177fd98a81a29844069a4e468985a9ef66fd78e90359ef8a911c9adb46a4f09bc695463cd6f1613051e8004ccece36e34257d99b20e9cb2475bce421ace67fabda9940c390b7c9536ceca715f45fea1d66f1e6b3c40978a83653c94371b5d24b4783bf4a3089a6a6403fa5cf7a63a327f18d2bf6954ea726546b0716a102b3bf37466dda78a6ef33698497407ed008b688d0cf0b352c0b62b828d3ec74b0050f08cc22d5ea19830bf658e87c6dc507f66a9aff7c70562c9fc4f8cb15b850daa4b0491be1c72e381b4fa529b6c29b3385138fbd3c5ed0642b260da32049d2653977f90906172db70afebf0eb7c8cf9f0250bcd63c3ceec566d17a043de64a0ec057e0045b3f6322d5f52c85bee5c613427c9340eee252d0381edbefe1d8d3c3143b95a38063e0d29c2473de71a9dc7bc2f8e6fcd73b8b230e07465c388ee755318e01163934b3e65879ae353acce8e0572828b6139063ff03e27d66f9875258b461ef26245c6353533b6f49909131f024c7c446acc1a678c017b9483cb15fb3f28b47ee45b45deb1b0172770962b405193cfeeeb3388f151d13ea890553e8375d332e0ff03f1e3b25ecc611da8d48a88d9b7b9685370ce12be09f2cfbed6abd2ed12c6a23e7aa80ed4b30f3984e292f610cdd37fcd633fa47e1bc82a16fe105cb64fbf4d830dd943ea00d18918945945f0d41753c2703778c5eebe4b0e9b1f64884596e80be33fe4b146d4425c2cadc807a9e45f1bdb2334d526ced0b1c775a1ccedbff951c2e7989656ec2f00a65808e65695e5b37a0438a5183b7441c043fdc96eca2faecef3682b4eccdcd645ee46ab3373465b72a023666711f9958d588ed9416468bcfe1fc509869973ece99ded5404f685522841272f77efa874e023438b623b04f49da5a2cb5202542431f9a885fee0d8561f38b8527e8eb92905f9263469557307d76c45bc02ab38a7432a9cabd11ba1f532573bf687b8a78afd87e9dd971be83476e85d21b8cef345cb7d3991a7a085cd38c697df31ecdc9951ee2187f830c2a6b97a9887597b1bbc25d1f11f2245edb919cc989bdbd52478279984eb75f8ba93c13a55529d1f2c4a2150745485668cb3f48018bd22d1f2d4eae24f793ef36223bfa366fb5c3e633715fde9aaf33e25e0b457548f90a25ad660935258cf3a8f3cdedc1105d678fc5d76169059219a356bf6eceb25bc47f62ea5d77f77bad716d79db05c2f529150034ce05b5e62855f7c44958abc65380bfacfcf7d04f0caca6089dd164129ab2a74902c980f864924b6eb5bf131670178ae947dc79506334bcc52d8d417c638a6271fc0266ca88d42f153608a6069769e863890f647e522b64602f3af288efbed360b8bab2c261297d64868843af1262b8a1c239eea10bb0158939f3b2765e5f522b6a86bb956068b8a5954f3742da72a662d2db075ea38ca60cedf9b2948c29abe06415d932fcd9957fa3b21457be87d9e4f15ba54f07a75a04ded45341769ccd74735847e27377bc93debd575596339ef4fe018191c993557efdcae5b96bc90526c27057e7ad8c0a281db23ae2ab46c230e3aeeb6acbbf18ee7427e72383f1d2d363ba7b2be34e7243d359af5bb39a16f82add0e1d072f2222b09f33675e183b30c02caa23657139f912286fbf7d382bb71249f0037f15423987068b9deaebc0fe6cf03e4a45e5c0a383c473be6e058b526cdb03c3e92da008de547db751605459c264b7b5172e0e0bcddf129085c8206c10cbdb002597883a2db87463a08289131ddc89e15a31efb41be3014709252f198a46417c07c769d34dfccd02048040ab9eaf0596d380464214bf9595981f0bfc3b01a13f695ea7201ec264b89fd5a5a164a1633aa6ee8b1a2f3256d465654a62265184d073395801ac1463ddfbd2a13ac0777d45f34813035c38ca784a3b621904bf04b2baa7e0efc9e221c490d3315d88332f161a6f0e19d0a58bde34b544b136193eb6dddbf40cad7dec711f73585c507c3b7ea1a27a8a8d8c1374049dcb45edbe3e273d5c5516f916bf4e0c7c2e61f2c317c0d8dd6d3cb4ed6e282768d71a5e2fe4471864329e4d2c739735df5bd27d6958eb6a556e9a5c11443069b43469ef3e8d9eb9aebddeb2f887b216f3e0cc320c353fcc3dacc7627f9daa14e577860669f7e2057ca1484af3d7a69387d172ec31d2ea0067a2ee88f686bdba99ea2401b3f12f0a7672c5101675484d197b91f908662cd2e187184167feeb5fa682b11431192ef7abd7e2fac6d46c50ec8182fb22a7fc4e20922e7c5241b8a719702165dc82f65df9f360380c226e8f09e133d5330bb9793998d8008a6db5ab7a6bb09e3cf84b56210fc50f28c5713969a64a62a2bce62a0f157416e636988e0625cf3d8c45f7d0e276982a128bd579d6302e7889cc9ab8f83601f8238484b24a3d6759f7d76d81b7ff5437fc3b4476529852043ed8ab9f6fe110e38b0dcf49c554e34e00f4cd64db3657398f4840f4622eb75ade5a011b1ec4a6c4b7b833e8a807da479451e8ebb10afdf43b959da24a38652d0602f11ccf31376c3719b5bab1e7e156e20082bf1ec807e0354760d38bac6fd4f913f8e72b61511530698935e001f975c17521b62023c97db206b47b5bd38f7751ad7d4b94abcae5809c48cd1ffc4a36639a63644a9ded37143d43c1e4d8df8c859b912a1c63ee9cae6eba146733eab84c797c6b90d549a3477d06b9cfb9743a25841a089b4838980dac299c1ca068d7dfadf7778bf01d904dddfd11df553b7afc1e5bef87ace6c0e4b4a8a86fa3dd626ef781e2fc9cacd215894f680a0d9b6211e2c10f6e37746adc93c7d38b9c48150af14805e80bd6f64e91cd161c53115ee0d41a9a6c3af786db4c08e836635e2b793c748aa37475dd55593c36bd83447b0014f7c7f5f24bd265c2abc960626582174597b644c8f0da317cdc8294fa8ecc975f690eaf2fb9416fdb518cdbbe4d02b362007b2f239ea52fc448256abd6bf9d61866642e74a10e7bf683722d6d890b41a4df2b0bd4decd29776ba32a5af3b4626046de0c6fa7e3d6093db0fc2c3b184a1da3aa8774bc0d74ef9d069f4e4f8ff541c610c60f982748ca14676ac23783ea77cafeca749428e9171f8260f214564410eada148ef6c4585716964c94d6389222aeefe3aa9f2f32cc5a7502dc1c5233dd6f744e3c9b84a7aa8510ee1e030b5eb760d90fd76c23ae13f4abc002640a62d35ae1853c5ef3e07aca4a5820f340e4c08e3288b4b42f5278dc7cadeeaefe565102d67dded81698956bbd79c2bde5c6b74b151fce6d0d345d9979e15a18cc3447837b3d2ad8bae96d2cc7ad1150ae93e92be418dd4b056a2990b21705d98ab30827a7068e06c0e05a38e175f0ad6c1736236073d6a9ba316b305aafbaa25ca790ee8c60a3fbf5f5a1faac8f18efed05f9d914302689c894bbf5077dbe8eeca8f542c15ce76119f3afe09b1094723eb7c42cc4581bce60829fe820de8ce5a0bb13427d1aa034cf0a6c8cd41cbb2598d72a4800e92966a692196a04f43b56dac644094d68be58cadf09dbb726e1bfdad65fdd0ec89b0084391b911cab4ed3763e652a4c2940273f404f71fb8ba091c2a7b7e957f372720b506967d46b1cd82bcc62f7873b14ddc60ea6b3e0906a902d541c5f6ec36a4ea7edfbd0004f45a3578f23fab56f538cd42673c93f6ab019aea3e5d672b55af3c8c3e11d9128fc7cfbef6eb04b62dcd00ea8ab980b94616af838a500b31f286be8a839b0c45592d56b26d840739a674cb1501f4e56b549bfdf2631880a624a01a317a80ccad8a6ed562f67ba2f80dc1564cbb3c00be6188b4b4fe42f6f2e514b56bf4afa590ae2299f5331944e766b447ff76c7f2fd5074baa9fa5bc2aecfb5c7978856a688968e2e270027739279db6a24124f81090939fa168ac8dd672a3780a3afae96b5d8d11be4b81cb49539a3d3238261d0fd5d55c2cb9f6bae74d0006f509aeeacf616536994488f0451a3c1d42245e4351b40ef524b5d9a7ba3eb71d21a5bf53bfdda89afd472fa6db8da82256eb6781a9eb948940a17876ca9d836065ad6e5754ef32321238bb59b9ef5e09bc2cd7e43e30dea9f6f64792f3fdc3d61d6b03fe1e2c75cbe0037a9793e4a56c331106ac46e40e115aed2ead7fb45f3369cfdc3eaeb5fc60a392b9634a02c03fdf546d70d975037c4322d56c54c966f744520c671c09c4d6e07fe80d48473eed9071589add36b74e325cecd515b7866706e7901cf9d62d5cec8071a7105696ba6a129a0cf3a89e004ade10abb91e861d132df9990841f968d7f3a667769ba1e97dbe9c4b980659eedb42cc5060dd11aa57877e19560d30058d0e2547660a35808fae80d7e13bd416e2037f96e18767b65f7ae1c8f02cdfefa4354a701ee88eed1450554c2f825a8977e6cae95d04f8e12dedc7af77ac60926adc9981066b82c63b81db40c77f43e466f24a789583476c4df61b29c1591d1498ae9ce42d276871bf3866a939d0f716c8528245878abf6696e50df169e5897a6c6f8a33765c081493d0d5b44007c64ae49e3c10090e2fe261e0d280d421814a063e85643d80f3d40677e266640b3a2a4afd747b34edbab232b3168f8735733c2ecb327aac36bf661d7c0a1c4f3cead464a8525f41fdfff64f6b50c5810aa462659e5908744cd19c41123a5d29695fb59af777578af1014f5bb2f6c90bcc4367dc0977f98406110c33aae469db8ce2886cdf669cc3578fe91397c7a1d1cdca5a1583056ef52fc140684c2a0bb5165ddfdb860af52f5c5b091ac5bdd8ef9081047b1e0e891ab4af4b1896ab87ea3b303a238b2cb11e02548bc63ad6c2c1906e9f219b195702bb727124aa4f3a03de1eae2c5c136d9bc1b08e21d417613ce7dcc84b3d2bec98cae487b82c09882218dcbf8884326664424667fb579699f652966284b76f8633980790eb78936f3aed231583b1c658a79f3406676b3724d515877d60e4085a7c19174dc689579e087f271fa46d305708d46f0e927aa43f7b5d2a3cd413d7a31d5a39172fd473943012b12087d118d0ec1c7507f44983b83a2e38a5bfac0ceb5bdea55262beea3184e22142c046a6de75ceffe4d02bebed1bcdd8e68143919f1c3a0dfecec132e44578a28426a5e23a3baff3ef9b8ec00f38e1df3592304cdc45cb751222ca25a869ecb8ea27f4783a1a8fe24f9d28e04a0fae3609eb8513ec6c54c5c3e948e046f7a485d81d5c17dfed5866a26f5d6dcf3ad60e135a0d224a77065331ab099c87af23d70f6d9ccb7ed70ae0078f1f8fb592fbc7a8c435a76077d1f13f58fbad362bb937a6d0af350ee0a07ef1618e341e22006f7e3236afacb0465f380c855cdb9878ff51857740a23a78789ad9794c511b4648367265394d7ca13ea37da3376636ad7aac7a18ee85a70fa00ec6a05198fef32a2a71adf5eae4c8fd0928bbe18c9e09075df91d47a526a0d2a9fbc0db57bdb3fb3facf2fa7369f4d84916c7cd01a5ebec54e5846670b6219613d7704bca657aa8e407e0a35fe19d899a4c68e463dff2ba91d93c6d173664f076a004b0436fa8760be054ac6b042663ca064d48dda7a4b60b23cedd98022095f2a45a2dfd68f301ae72f813f27dcca21f7f803531798de5e611044ed89f79268dd7f037a94ec8e5984c9ccb94fb0fab7da54f65158702b35d905b05e612891ca0ec05eedff46ceb3b4ee3e60af332bb650ce52f7b366c09dc79b66b58b4b7c32d72f8cec9313a7b7d585834cb91a0d65b5f3a4852d92ac767984655293865acdd76812578dd828ecb7405bd6356fb3ab462a5a48f622a923002660a5d96e51c97e08a4bf8eb428f8095c22c4ca860496143b6ba423bfff169e6985384a18aa21f818ae1a444255441e934c474b11308ff258c24f84aa2095b0cf76270d0c5efe5f18f5314f4bd9239d8c7894f7418c32a3d3c81550cc12be57e8979d70c730e6ee6af548395c48539362a4ce24cd702bdf37bfbeea893b357e8492e48c4e3938b67323294c09d0f60b57124a7520a640a6971665afe49c564a4b185e60a764efdb5edc4aa21431814c7cca21c29fd774e61c2f9887a82885f5ae9db4cfc2ca5fc938866d914ce0228d34e794b36ec8619e0f0b3965031a73c2a0bf6d16585d03dc914eba26295e5edb4379a897b460b16612dffa8c1892fd6175547b4ed87dff392946b9c1d2cf3316d674dfb81c3eb2bc7ffae20ce641755e47055f1e536674c8198800005687890c686d2b32baabae194945c7b23f6463587566626b1d0135c7c654034ec858700d7248d0246d740e1005972d9be4ebe2003ba8532c84dda55b7325e4d4924bfe21a2097cb806190caa4dae85ccefbc3a64f228b7838e52a161f13c1ea5c294bd301ace88f3d2def8897d3a8c7eaca6e4651d463ffecbade3f64b6036a87f536e71a6e6fe53a756db03b338731eb4c9bb084e1082b3dfbbd49379c0a79d155b96afc31913184df3070114197516117261944f9ba22186b4188b91a61e9b144b2c46b414e73de6059bc94798a863665266a353d4c902ceeaa3c969f3a16e4010f0f9baa8bc7276a4d0dc73e0e4e3610552e1884e701096beca4d557c75c470c1ee18a3944e067cd2a48849cd0563943112c8cc8734f3078544b060400564c8bc2663269d444604b0d014d892634edcd48dc07dd31d73d1426ede3dcb724df8e0fa0b12384ff9d748d104940e239cd5e53723d5b752a90994a8e2ae7891d70ec346c309b40015c2c3797cc30c80d986aba8b6cc0f2d2778c0ce2f413ac8c98f0d8d898854530ace82b259feb8883fd1befaabd614511b87d2bd28121488a8a7624d09c4455401f814a573dae35cf1b2051c94e4d3d5e664b6d780bb27e7e5d98e4e003a9ffc330779490cd3b829049b415ce60642a309388023a82002cbb6403e2c0bc9c89ac21e0d8bbe40602b4215c3126171e19de17f5a01085271c3018c4e4fb22162a7ab1b827e8707ce5add7633e30eeff982964bbb34063cb98ac0a0ee9158a445c218a42446a5195cba3f15f3c995e238c7c0a47da47274c8277883db371ceb322405a1191d93223a6c2211f110961a3090642ef1280c188bfe83d8eb526acf20a297fc6697cac3983c9848f2af241f940355ba2a545c136cd063669d7c6a4b8242e8c36e36fbb0916cd89ef2d20c97164c11b02815da1a35178bfba4aa6a4b0a41d0fa70fb9873aed758295f1867630f450985a052a515c63aac91eeec0157f2f571bed53b892fcc36d271977265bbda205a21654835b3e113cde6c8ca16189a6c0c957ee6343302235b10fd0a891fab36cb02d0cc48b95a1037193250d30566b43ab8e90e5fc5dcfcb610379080a7b7f10639db298a70647cf3cce1be3c95740071a799ee238a7e09a1010217b6c413ce767f6f961135f6df5745840d213b9812d2d8a6015651f7afa82222f37901905a8ce2f6f65398d5c4a25c7e721cc5e7c933121b4bbc2ae4b0885480e1921035136184e93502cd9c4a6f41bebbec6c990029ff1a3676832c35206da25e858f60bbea60e76463dc56df84e69da51f557e184c183d2fafac22c281cdefb686a15389635030f9b2e712e71f6375ea6f856841e65e9d32ade96f148e8cce6603d2ff74e263d251a6dd6f653087406550deeff39a22d7a3707ed3d91cab72d1d862a27104dc9a6ffdbf74e580ac88c14cab5c2d417540ac46c133a5a9c2da742238d7a4459312675b1b836405643d2fcee7f307a82a30919f9249fcea87142b15c241d869630f04960d5a17a079f427d207d87eb2ba35c6714411b35b5a742a839ec8421b8969e496f6d1458219fb9c83a3cd255d0c8a0c496f46861b40c4aff853aac323ce3b3102d8be60398c026e041ff64782709b570c5e420b56eacd47e9bf7b053864a126968ed858da78a3a13c6a7eb702180dcd12941109912ef52818f8c6409bf0b110e30059460f374479d37fce9dff2212197f7b6183f8938cadf98d207ebe6a861010d483f36d1635d5fb18cdd7ab2bf33be0e6a9e17983aaae1f9148e5f10c16be20b240ca4c7b844d431aece820f736d098b3913f2339cd5b9091cc0df2771242baf0636ada1f940a3b459a3e2cccc007966b4ae636cf4e0b54873d9307d6cedbbf86dc8dc005ed211724d499dde61eb42e8330823354934cb4743de246330cb4a0e469452468e5017b20607341c83a17f45abbc419a72dd38e56beddc4353ab5135cf8b7d5510e315c28c1299429b0779d2c13a709cd87fa8a55eae0449c41882d8b444617c40cf11a6d5053ea7ee3321026bf66a8a66f4cf52c0e9d6184790c4d21b68b60cfab706c34b5c7e1937ce4841e7634bf0ff0e4b2ebeb48ba687802d3204b815e549454a28c801636ac7679918394bb17531e9d688a9a5b877d6df7a9693cac6819751ddd631187dc15fb7b2cc5f85269db309644b5e424c06ff0b11cbcf8586ad1c7fb181f8bb051c74d77954ab674dc1762994a09d103a89e3cb5aae563fbc7c12c16fb5838d72f0ff2daae7d2c6c80362fc653fe84b226ff68c992ce81b5f95e2ada385b2be6394271a74507b614fac8d0ca1df500a8e8448a665d60f98a07f90d81b4fcfa9175877ae9a74c789cbe5d11f8733bb167ab40d9d86c6576a44293e560685dc55124b86921fc954b31ba9c29521c4bca815485539ad42bc13a4a5638e0ae2804a74fb4572e52dcc249c3cb26b8ba3115166378711183a85cc5bf48a1231029f8422f73be296815ef013895f80c0960279dfe892af4eb490b785d1a6b8077455cc8cdf50e84fda6b33e352fecdf2fa537fca5f03319147ac5fbd6e2a2080f9fe45f0a0f70d3c244e6ec38b666f670751fcfaa463ba697eb197762451183d5ef337fd0072e06bb84cd3852324f2cd3efba3a51f297ec6a8a0d92738f7e86b6664b3e9664e1911c1ec960b0e491f08c3cc6d27feb835abf04999812fede61ae1429525cffdf0a044b9702fc829b358a9a59524212d6657b5c0aacb7fc8fd6dba743a195c34a6fa32f59e2973cf2afb5fb358589309e7c583786686f9b9e9796c15d6ec9c186138c7b5a9eef2a32d4c0423c620f5a8f22da424bd66eaab6432c6774110ad1290400124c0843a5c3b24c2cd0c10015fd5d73481300a1af705a744fbfc57d424926dd46f17d7eaae0812c6e6cb4d1bbad16307435a1b8ffc9cded254299708acc0682b5f48cc4daca92924f7670f3c4b78bd4452a34ee6340b530b9720040fb50fee4900aede85d1b09830b8e7b48280645ac8898272b6b3e8772a0e17c44830685ec871e57e2f9e02ad4c6fd296ad81b8654a8741bffede199739777642039fc15ca6ef3468c30ad1cce3f0682bbe0ac813011e2d281f9c68b18c1aed10598067c01356bea8d78244c2749ba06a00c651e5102b74994c6beabe8eb7bbfe436e1232b79d61b7f531f39b7fc91a11ec1ac141fec0101409cef073e6d41db65a9272498506d3e7001025e3e50e414a5097e33cb9c93b791af054b52f378840ab3c201f647068b8ea759fe770262fc483bef78eb9807f8108ebbd1fe6d870fbd437ef41a3f0299f0ef6029cdc0cc1cc2d6452a10a84b8fc512348ee56d91e989817eb397e810020204db7702a88ccf40220153258b00b1942d9699a70c6d22a1daf137c047959c60f9d3d6ef51e44727ab185e1e5c5a995634a6ed34796b88710235874fa7c3753f1d3099077d954ad1248bdf52dcae688a1733a91dd7a620bd81194b729b80644d0135c66fffff86461faf9f43b058ba1e21ba0a48666819da785d5e4cb0cc1e4a520e4dce70ad5db7b12691770ae1ce3ee97d187af344f6200c7f0bb7d856675b11e18c0f9461936e3586bf4127995ad279ea6e0b2412f7fd78729d191787768d01bd96af3d1d4d71884061a817b07ab67da1c36fd236c9235005382b3dcb7c2ac4b484fc7bc74c028927d82ce82dac7b7cf7b2a923a41b11cf2467a6a5f4560a3cda91c2ae2d05a9cbeb2ff04f3e6d30bd9941ac63d4c764e4bb16bfcf6edf2d7a54165678b3cc22f9b1d79e7addcafad4e5dff596b37c79449feb6c180fb0764a69c158d6ba85accb8736020d2deab5e7442647c206428cb3f52ecb5d83e1dcb1f0c0fa312dc6721c66c9815db6bd6ae2073ecddb6cf82292920a3cddbed898d2a6305a031b74393f22b9a5e099385b2ad6e55ffd69bed6d73059626648aece9109889d83563d0a1015ed36c16d9159a8b201abb14cbbbc85442242a5592ca221407457c5ca316e91edc9b724e7d128c258c981d9c45aac6731037bfb085dc46995031edc7e31c8c6be2ed4cf934888759e2357d6f4ac548c563334224277bb9f563eb32e1de3d5c00f18c26e8bb28a70c9880c5503183e9c207a98c7d976a093f0d9045806ee7fa07a1befacdebdce0d405e51c50b76b53288aa3889dab5ce377bfe2328277a1f3ed50f55b28c8b1e09ad6e7f27cdca2344bdff5f5881ae06ed8ae972bae38c17866fb02e83b3a3e09ab1da25dc64e74b05928a4b0c78e39b7fddf265a110c9bea37d8cf7a4f35f40d4cda724d9ff058f9f1cf6e6d5fc6ee1d266de223e95fb11d58b7dc92aa7dadbed0d62ee4c9467eec20a491456d6f57ab0123cd9c0aee32e867034d10489fe2712d4538b8236a15aef84cc838d990d89c41a9bd8bd70bac2186d3d431e4907612e47518367021dee5246a6df874956676b17d8acc8afeed906904c66b9540db8178f005c2432db1bbab32849348d4957e4c988bda23f788f54e78e076e82a495e0c43e8b87d956c2ea0aaaa9e79c06907914c1180b5a116cc2ffa430f86b54e4248d2e802739055aaac04510e8d7bce15e8791a5f0cb3c06bf90e0436abf3b0c865aa7d4d1f367088e178d1af181eb233d7b5879cbac76962f1ec9c736c72f4fb44481f14f682aa0b261bfce16e33dce7383d2eec27b57acc8bcc33d24bfd2386bbd233bcb3320a7e067337e609acb1646b3372c1d809589b583876b433f91a7a3284d551628b404c98cdf48dbc361fc70e61eee6d9e55285e35888105d1a3f99a1ed22c0dd12baa112a3f6988d228bffd219179e1c48cbbf2d17a8f7cf9776fa30f86d8e13809088bf904594962936df14609fb066903c208a2c392344ed5b3a941cbd068c87d7f1db7114e067c331f4ad2297fd8c3689a5981fbb9730407a525fd8050a928c88723d8d7a495d33b94088d0dead67d7aefdc00af8138094f24e0ef38124567f9df882a4e197a5c79c80f6c7ee6731af8e743236aef55b140e4d068a80611c59589a4ded7b482579e482274d867ea44a9c5d0031e8d63e53898e1cd0c923a23eb1174805b23530a5c372b4af1cbd7b450c78794ab5ce33ee40a7d318cc91cb904fda62a2b8558343b00e8e728a9fca28653f68488785387a2af72dd8df1039d8c18b5790ac6deff154855a89812ea64702da4c6bf3ea9be7644e4b195ec6f553f2f4124e86be489471e015ba0ec79eb251e33dde023cde46344bd8eaed448e0c3f7a26299ce5ad798104c3f66ab13282b732411c18a9a40dbca53a6ad495d32e85f5bd0835f73c88f6b16c116c2caf66adfb657dc0e1e27b7c31549e72324d6d76e455fe79f9bf6c0ab741cc722db13595368914a556d6b330a026186767ffc1b44ca743b6fd8f234d94758fb2bb75dd99e623f7d518f97be7621fef66d42cc1a666354b176ca145a48fc6e9a878392da05adc2ef11cb206f05c64218b8b649c2c5704153fc384c2225c61d8958b28c438f258d246efd5b91e4853aac2d6681f33fa8f529f20ec4be5f412a8beb9b4b05e3ed95a7e2b8975a55d5a81ecc1f118031b4b07d03f7c6efddb37a8b4df72f6fde37664fee665cfe6a55c3854760fa5235fe129b5bea670630910219faabc3aa8a1bda6572208a3233e962e6e602e8d1f189f8b0b1b334b18212fece3e57b99c574f47617389f5312f891c6d62c6731cc341da66b6f0e5b0e5d34114b19fc7ea093540730813d4e6782955b9b0f8dba5a9a29095da0aa9a4d835503194a8ebcd31921eb11a8aa1d3e4cbf57de56034d06fbeb2603660fedc1ddf364be5c2d4f0001ea3c668ced2e2ab4765d5da23226956b14b9c01e1a4f8d114748f5b997106806dd65a79b4bdf26356aeeaf3f2b20802670a333380827951d9343e97c1eccd542b4a11fc5a8e4ef6504a7f3f29f82d4037e80e5c70e8420361c67115e22eed04c0f2daca31ba75a7b91de09b1d71f56383b8c21c9e749f1aabbede7c20bd101b54e602659426aa8601cfd774c53767f6561c3108894ee78233d8bea19a82a4cb48c516f0eb7e0d72319a4419983192bd8bd0ec57c566dc068d1192b0eb41cd560108f50ca9e0266d1f246c02d42fdaa3a0fab5dcf84fc0c7681a0a3774bbb612ba3dccddf7a26ef6a9103cc496c9609a7feea91a9b698f5ac537b27f2010cf2336975f07bea96f7209e096c6ed513fee581749a3a97b992ed69722c74d97e6a7f59e48086728778a64e452beae4dc4faf9eada54b91dd59a5c029b3f8485653c290844b24cffa5046702ad88000e10e2b2bb2c82d3913bf4bd8dae3c221c5869a6b1c8a22fe33cde5a584dca92c5871ac4e055a22ce70ab20505f3b6067a33ff1e50b9f6aae45cf10bbf4f2da0ab84a583fec053bbf468ce3a07e59c0b4700b1d8ebe948d8eb61adc4f178f45a417ad37ee48f391152fc2d2afaf1519d8d75195c751d960007ef47ad02dc54a9ed1dd837858a1f8a1631ef102c90652c5720dce80595943cf977086e8a876d9d71daf86bdbc3ffd6d25bb0213525703a2a3836eb15bc9206648402565762df24af08314706b9d8c47b6ca0b15d858ba88b5cd082518f985f9cae8ca71bd08e1c391bca1135ac9c545ac7b1dd45c784c56e167ce25a43501570777c29d135127dd280e7336778973b27eed0f1b12bd72d79e68c4635a4a58a16a290912d7c28a2024b4ec00a2b4bd697b6d72179d412f9b09acf96f4bfebb0472337b7ccaec7dd70377229b37fa123dfd5c96fa22cc4c04063dea548248b9eb5c7e5753c61c48964c6d30d96b00e500991f2f33ddcc0bbd426a76d9e370bd5d328880472ccf73cbbbfe8967edad40d0a89d4b9875d6e995dda4cb385380e8cf6198d9ee89b59646ceb4c363dbaaa72a62530e9fded1dd8a45f08d47dd266622a700c77fd3264f43a1e7830bc7035f09b04790387f68f49c343522b1157996424c966c0be6eff22912ee0f4fa9a2c1a559100a2a5a3056005d2c810bc9c5b821504d420d588a8a902f18c57682c6373e3c8d367fb10dff1df8a58e9a6a74521c0c34e166f1a8bc1acfbf671edcff98e85359ec727a4db1b7ffb113873520773f46a99eddcf55120122467e86b2cee87f011e4d62361592e01ece0019ee9844dfd2dbb54a2a7b26d84545b7c31956a0b77d1ae9cbf5829945e2dc14fe30d485d06f330b08be834080a284bac257db59d477030abe94b50eba1b46fc71a9783a4d625ecc88081e5a4d5c50e512faef9045cbb0d3e047c6235e95adf915dae18e8d1c82e2b7dec82f3952f302aa91c8dc38bf32b6dc02e0a65062a479f47412c4b4c57fbce6856793bf6205e5aedeb0cadf2254d5ad39adf700da2eec3733d834a247ed2df87993b04db71721a7c719a7f7458a21f4239c0f7a4af5ee6495d6451a3b6b532f7f90f21be13d923054f836465b18a8501fbd8b20fc31f57e1abfea0d2e0c0eceb13bf299bb0e7cb486db68d11709a102285d179809469706351f00fa1a95fce1139df6c9e9b8030e32cc060450d337cd42ce78c1ba7ece10ad0025d4cb5e3349ac05c11b1ae90158a70261d7e0de0f9d143b3c301fa3d4003778d682ad2e3d0c009bfaaf24b2100aaeb449405891c59b927948112a1668dbb5ab7e6ba87f78bba45151b7f430e6b3b1d20c103ca0b4a9e41b0c9806f11fbfa65a0cd0a47ef44f34ebaa578042dde0740e6b03b9f28e26894638902f6a57e1fd802b8feb94160368b84f60344540872f61b180634e25c17200103248e12146fb20e42440e0d2c2e4804fa8469ccd73c3b7d491c70953beb5b01cdc166ce7929d1e988deb4740f41b19661b4f9a9f810b4382b45de6a418d2d57903888d6cb440013ff974664237f34d55934f4734879ee339210f1b91ab17e843cd1b4c479e4a46f2bcf633a4723e52145fb1ad7305bf01e558e578b3260ae71f69db9334b0ec3fef418da249702fcdb64356df3cbae8de458579ebd0afd6aa2c29890042130535597e5fe82606041eb362d3c3c956447aa468640cdeca1559aa2c9bd67613772d8ddfa3089784b65bb90f682870a9a8ac7c9da0b6564bc013cbd7b964be6c0cf30e454fefc3062360a46ca1182aae9f40b554cf6eedc991aaf595ea43df1f4fd314afbf649bce2ad13dc5cc650c4fcf9dbb893842a47af24e04972732bce8254603d8d88b1511938ab836d99d25174a21262eec31a5a529e714afde0115281d7332e373d942ddf5f7ea23c31b6c3ff8b9bb1328186bb41767a550199787b4c2fdbc396b3c54c017530aceb8002133ceebda6458a647a5f0021ead7ce61a47fb9b7bbd2c09324bbdc312002bd18268ffe382d67f2f46480d4aca5032f4651f96a8ac5cc465a450c7904584d2649285a47396f409f411f8e1acaffd783629efa4d2f62a38ca9bb8f3ba7feba762991ba4fe227ddda6580374970a52888baead6a24f367ecbec2d3bd3118dd589af37cc5b73292b9c30833db8fe4e76d924dee7c76658fc8e4da272757ed3c8dc9a1d3da6e5d23cc9919fcf105c247b33e14c18488e3b0e2ac2999fd841c8eb0de1f9265a3945d0cb37fdc588907c75d203019ca38f03cdab0a8fd0242ecf30a164d8a92e65750d4ca3a4a3c6779eb89a55b9f5caafd56a3491d7d1f5fdb9c3f561f5e346b3f2aa96edc8c4f402df78f0616109ac7dececa67b249309414efcb299d191b76b0f41289c3f8a600eec81979797e8c45c450051d78ae86a15c87e76e2fb8faf0249d32c696d996b8471ebf8fef877f0a1540e8f0fe13f6e748f15772ae6bbfda235056ceffc01202ed4cdba83f1bafd3497f0609c9f0135d612aacae41b1ea1f6f6e7a9088854b039cc61ff542db6a2911a5a4dfb870faabb96546900212b4b426b83801680b77059475efc18120f21bf791ba8a419c2fbf6bfc154ec331e54146a0c8a225cedda9e0c4572c98a92f05e81e17e1804a8399c87c7cba8a94f46b60928cb689c6099083e1b76d6256124a560671b09b7660044895f2aeba1304242e2816313aec2cad8f7cfa6d6e215c623cbcb8090df2840198cfd4749adc7d08b95c61a4be0551f84ada4e383ca717b72cccb4cd1850931782395f433f115298f22c8e03c5297e72020d75b5bf65ead66e7184a71cbc126617a6222496c561bf8d28cb5b0bf05e24b7892af69a90fbc62e894fb0ee24af430c6405eccd09f490111e6d882971ada606aac989026382c93f2a3c3f9a479bed9a8065b3ab4662926e98994bd5d2f82b367b3842521a6eeae02bac22853828d5f41e066020591603a2c353ec362be7d37200999ded1f93df977f886f1a88b75c65ed3196d84d798981dcc224e1f24048f29b9a463d021881008342853e1785739599c639a162e60e12c8fcf8b525bbf7b29af1707d996bb1a1c95d3f18ac8c3b0021de8f3c15c8f8199814ef7b984f0f3330ab8c95640fe472e97074e3b4708ed1006a9eeda76ae2335767ef020d886fccb9cdbbb45194b4cea13442224e89ec1beebbe1004da38a3ea5b41937b30dc01ed5101e33cb2809f6f8855d8b98dfdf82f589f99f836d54e16b8766989c0d03e90786e39986b1421d1ded497efc55443b43e3c1d952330dcbf1e6a5bf47014d298ee27911d95fb84c956de70c028af78284ee4896dbc9c9596774fa638082d555a5338068395f78e9e3fe88c422fbd36a642a97d7ae530b307eefd2efa19764ecd7cedd9f3c108fba8d826c40dc33fd87a6ec21be9961556103c15feae354f94296ea90c02d8a1a8e7e8330335568424ca00ccc68868bc2764f62bd3c642028910b1453d9f9083a069631445c04dffcd80a399628344348d26cd55cc49618d32a4bdc9289dc361b15688fcf5ae78cfa61053eeb69f9c064d82ef11f2d7629d3f6a209c1a3b7ff29371044113a76ff4df767a3a1056c7aa48625071832512ac9e6a6f6db706d90bfdca2fe7718f67dc228a9a0e915ab89b0d7bd64638a1ffe3c944eac9267c00869d80e687b60587b0a14e5a1e488be6a38f0896c9a607222690eb4a79e6f5204ed8e32b4e928e83b092cb422034b320d66fc9347176d0d5dace8dda7f7f15a75e50dad7f0a8298a5ca15ddd64b3a29404e5e775392ddd8a63e52d6b0e5beba135ac0b80744f7dd8e063031f4fcf06436ead2bae7851c07020308b6e096d7cf5573cc77cbe6f1a1958843751879c936fdd38ca0bec5482c04e0a4a8ee0fc3c31e24f775c85ceaf808c4cb4fab902cbb335b4b0e3a2f620c94bc55c59f1899f3b6b3a260366c0f49166057f84a4b1b4613c5029fd0da433ab4ab779402c9d02447086e4c8076c7d2f5d4e4683cc85e41c4057412865bb48bd4fe4f414c9bd21ad303a70f779e7dfcbff5c2fe6bafa028ee16ce6aa5e092bc39dec7b74f7909d7f40271f772a43ec47587add77c06c8a9c604b45d2da3ac42fafc88556b719c58543db90a3425595f3a1804bb1d0c6c9d30560400bd6df388df759b8bdceecbb2d04e47ade97273d6b98a906af5adcc2fa9a17b3cf0bf82ce578b015ca4c3e0a9fd06b5610ee0195378282e57b8dce1196698ba4eb7cf64ad2b928e55d300776cbe3c3e36b2996c0f5a9a19e918469f27238bd98164267d94cb751c259063ed1b85a33383c3aaf1db680012eb6ff8f5df2e63347e8e25f7cfd90a030285b95894d37cfc95ab707a5fc97292c949613542e72e002c9020ab8c424fd86e94db7107c28ea537f192ba2db779a569c67d9acf437380da3a84ab5a5bb953bcbd9b3942cff18a02966c10a641706595d2780db534b37bc80cfb4dcda88da07c5107563d2922459242fec40343cf651288820de146dd2a36c31a2bfcd85fa3e60b55b13af5d29f69a3099c28e9edcd13a88df65ac6288c39ec8ba65931e05c0b06bcb3b7a316263d1dc641f78b0d34822883d870bd744965b9117260d6dd844564c294427b405f7c5ce15c46554c627d3067955d851017a85ad9b4e7857f5a723a652f7d9dc3381502e5e1421a7528db08a4d3155fee0e851aff1d4218d7065fbccae7179b36d1cb1b4df4ed00de51f0b8566953bfd230e992bf003effa9fef28f98d9c034f89fc165f619140e91c663397e238dc6c6696cdef091293c85c3f95f5920c0d1eb56f26e4a1e87bc9f14655e9ec33e2e1906f09e787ba2132263838bf6b00ba3d0096e34d1c406776e148062f21a0a43600b365bf96a614388fc6ceb0568a1c82b416546012739a800cffb964a450f4ed634b96bf6356d43084036d4ac2acfcabedac6eae2d7bb4c6874371730e34ebb6d3e2397539d293ee276590551f93e8cb49e0b2599e5a73619cb438c28e4f309a08603480e65445db91887eddaea5b251eb8c60d71f09828f689915f3214bb8e0ece1dba746102a6a0c9abe164f4ff542c6fd7809d21cac2835a3e9c8847189e26c983f9de57a5266dd7afb40a251b5f335999b596e7aaeb18f15d35133c32ad2d372ae64e4fff7e41dee06b3669b1b898b49b2c2cfa85d8c14fd87c121e1eb1839bb66e396aebb03186c324ade587bcd514d431a8c2525f13bb9987bb65226332b4f70d0d85126f5e47d4f9f970ab5bf2903b21af28eac4f813246dac5728fcbc24e1fecf60c02bf4c274b4436295e85410559d6e47a9e464f3238bbfcac77c71eaeddaaf01bc480f0220bc8eacc0d276a825acdd787b1a491b05d27689a54e465778683fc77d23cd32af481e4014f7268879e1a273d513d4e3f9215fbc71dd4081b91a1e05dba0ec8dfd53adb50b4174e65180cdc8904931460069b7e0f7aab16d41a0a3efa9de4c6bc549bdc1342aed6028978a6769349cdcead61c0ae3319f29860188d57abe356062be7e04367e2adb3ea0b9445502fc40288c6bff964953288ec2b97a72ffc51d33427818b0df14f93534bd2378b9ca1823c9eeaeaf36bb53085b5972d3154960afe3b70070309a7fa55101b0033c5c3ce37611a27028995fb71ae0efeb49e8a2a5d4af9d1c2046afcd4a57c69cfe5332f8f6716c618e852a974984165784ab598e9d168ae8b58709cbecee265bad7344b2d9f2fa91c238179ca61ee9ec96f6515f4021d741b84b716366b99e3818d3fd9385100b3e4425ca0fb73d253e527b9624fd81e05f929bd0674300726f8abeca06d8db19238575651255ceec2eee53bd8725f34c6f6f57388ce2d889de414856cf7c97f951e2feebe4d39bd1c3be889e92bcdaf2fab09f5d2306e5a17faa26186fbb8ea174b69e0b91e96106beb6bf855c65a5f11c250dd135d935ef7eb5ad89e78ce3d0dfe8d042c4892c6199074073f7b9d48014212f8523f5043741fa7ba62f691def3135e647da1f7ae8a69fc4a69890d75b029cd80bf1675a723b6dc500d1586a6ec22e63b6b0636a3e940edba22792b86406d14b2de352b5c098373e8b44454e330201d7822f922bd0285b7f29b1159db77a6978369296f39d8279429ee4d2cf92077d0a0e27e70e0320befa8078293aaaf4b0bed96f923a6c0775f70b1dbe1166f4cca5923849b01b161dec076af7f2899bf66ae1d075d9e663c30e065144cb0655e1defc2f1858c26703be3c245572755c95e9fc1a9b71cc8ff3c3b16544126ba299d52d1a1235fb11c8f538b87b695b73224ca602f0547c7db781cf746cca43182aa6b8843f3560d0823e0b4ad314ec5fd58bc8db6290ab7dd1306e32f7fd190dc956394da32569da5a5cde8dc251277c5d487750ad84a7b0980547882a5c989a0fcdb6578c81618247fe81660809fe4de54966b1e8e2057f9c2a1da89fd58f3d6ddb83d5e5762095faf54793680853c10d9ae45f40c1d6a4ec10345a194a181e75e80ba0605634ca9495d3484b136b779d8f9487be545c355732424773f5cdf5728fb4a3b7b20882338b4d6ad1ff646c088e1d5e0fa0014f5d9102d585071396fe3e20ca79dfd79447b91d44e6d0b6b24dd62ec881fe7b1cb970b4be410cae6f6ffad1086ddff3d0162d495d9db98dfdddbafe5311978ae003ebaa988cdfb85da18963d9a093965aeb9d1ba29ff85693831061643f595da620962040a345f52058eec3d8d6c00f420cbdd23a5462b61211cf6b05cc5ddfff18d5b38c10fcacbd493852c5e302dc3c7e6386d21a1d396884639195a8995d34a386d2a8fc56fb8779004380c867b0406023d0c3c282918c8e7239cd6ac2a4a4a53aeb788b94821753884989a22f1c46807b2e69e40357976a8df14f94f4694280acde41a4269841c5bbce71ccd208f3c9ecf49f7fd161328be27b6725ca26395f8d9ef069d158072c9442c4865c258bbdc8631e69944d61fa6a1d24416df15fce2ce8a2d4480ec9656da3c08398e58efe1ab83359614a96d9c3a4ccc788ec7775a0e909d1fecdba4474dc4cca607134cc3f45901597fdcfde422ce7ed41109b024fcd33f059183add2d051b5a4d7501d048b86a0af09d5d40f85aeb29c8685d798c1a88495b3d30c29b8903d028fa1cdf57d2bcd39e37aa0e6701f95708c0b0cfa67cf94317f4e1eece05105962ba46fee0e5d00da206ac3119fca02d4f279b167dccf8012a5088747c022f7d74ed1246a5ae18647c53cca0059d2006e44da8ac1b1d16ca88b3a3f8a0ae1814a1f687c3e6a6015fa05c1dea4574554c15e2afa2fcb170074aac80646c667aa788758af353004722c007456e298484ef309deb3c2f48450d181bc120c6c6f35151030e2db86a77cb53c7a870182affc07d1331d7597cf14e77b5dd0797fd85018b5de4d7838eb466c4a0c445f3daf6102e24a0c6ef33aece0c5c2d36007ce3a873d2db35a76d5db45e0de41f2c568a1498d819bdc11bf76137ff25f25e54bad511a1cac825efc88f248937fc019ace8056a62690f3eebd39c3d121529fe05f454ec4b97a670d005584fe75d55fd51be52db13993ce6f0cd80920482fc2c74ec4f780d343b0f37df8a6c8099660d8b7f4167c565dcf403b53048b486038016d82e46b23be38c4a28b97f729631d0e695b25f436adf25f832847419d54756da8211c8e3beb2c070a185d157b3970685532b56982ae22ace63c93ea8ac58745025f4028d40e06855670ddc36ead1f19772788e8b08789dc206bbb24a01d47c7226456327df0a55607528aa590270af8b62a7b169d1a9235d54a715c0eae4b04d4de25dd570339843d30c252bd74fa3ff4af2e5fb018f4c0f2be6addd165f80b82582acdf602f605502ae8b088a5b1ca5627f7ac7f511deb319e46b99e65464b9a4144078a77e1eddf41baa20d4fa9823bb194dbd4fa1b3fe24a61960e79f30933597b9c2c8cb40fed4b4dfc6015fb95818b309fe9c2e7ab37af4e7e1a7a2fa9843138bcafe1281f0ca4fb98e96b123bafa9465c7f3b5325b1b289084b2b3d1bee4a86fe12888c772fc3c9da2a7e28d0eb328ca0fd348241acbf45418f5c92f3601b4136daa518325d4ca823a80b7e53607ee54cb0f4574257c2c941efc0afff4a7b07e7bcb164d7dda2f1d941e1071c04379c803fea8778b4eee33447c2f55b98012fd997530c167ae91bf7d2619f1f8b86982f736315b60e5073a47ba11cd99f202046297030349ac8c031de249b2228c687f115f340f944eb9eafe0ffab699340749651814899cd3c01433ff81d75377f9358666e9c06557a397b28bbab249f79751e882aaab73ecb7d5acc8857a4cc6c279520f5aff5fd426f00f91cf65da4005ed6311b72a85bf799752a211499c1ecbb9fa7f21b4cc2c2940c10d35cb5bc22b036434f95465380dc12e87207b7a396f9425359033010fc7eee52aae22f772ca066ae6ab20e2d6151bd4c4f5c928c1a105fe146b4816db294bfaca758141f23f82d34c43b92ecf1e58ab61b477965e41b0a46803bf90228f92ae7a708b946b1652ce3bd1da7fb4217f254515090af53771189d1f742fd0fc0c35239d624a0aca41a95b8214aa838985521228638d1a815752baa95f7a6824cd2c8f7be52a0267a48467cefc007b15348da0d4d6470d3654168937c558f72eab22c4047647d2dc75581cc7d2a38c4e80a41ab3cc120e78458024f2b27b45436c06e7e5d4c21b88891f96bc4156d79ee25ca6e295e97eea0e147d4b34752996ea52a93d696f9261cf18ac9f9102c69c7baf7140d63cd8ebbdc50061906780ed8c937245845351683823451f0d124e5dea6b0c36c27d1df7fc380362a0f224a3814891cc92e824052699c0182a53135f7378afb8f26a2c008944fab910613dc3baf95f417ead99aace350357812bfcc11796124ca7abf9860d11ed6a040789eae6503f83890f515f2d588cf509515da50d6ccd5f6d39cf8eb13998252cfc5b7fdaba143306d8fb635e1cbafa8dc007108549971b8d7f273243f275e333bafacc18f046076b5a2ae53ef0127d3cbd2dd1fc2cd510b19e2f5565fdae61062ced5426ae986f2bf27a43e3ef54616c9e1bf6b1e7bfc24d8eafc20d92188f57bff284d8d7a910bc25f947f19bd53df606c4cf4ff3c0fc8cb4cea937372726ad6dcbf460865c828cbcbd9ef974cb73b561a71ee72dfe6005c413f00d765cf1c92f207bb419fadcfa6355fbe829a340aa6e8702ffd321507ce3eb15bcd6992c83b269e497aa5278da75f64a4749e507ca67525300947625a8b93cc258090096c3fa388ba6899b9bf7b4c14f9321a35a091b024ac8c0fe04f7281d847ee7b5d6bed05f39c9c34e16a5a0a67737d85825a58f28c0fc8bbcb3e082fa62d19d9207a0d8cd2da0968047a08e269485690c2e062874c4a0ebbe6739a79bf049e0c376cb68a4a2b230f08e18b836d965f9d2b71cf527c060e23eaf971ef92dcada63444be28a98f1b1f81b57001bdf48c0ee10cdc83c5ba8f430ec363458cfd0e287b69f0c08f17e6986bb720cf042d7c3c077f7ff66e3e5a6dc3f605fbaa079ae52e30d282c24ab0231fea73b5924d372a2959cfe3bd6e84dc30250172e61da5690569aff37d5078a21b4a3f9db88eea86b24082cd0588b78319ebe4979087768c9316d0dd1247872143038ec163b21dc4c9f87238fd98b3fbb7da6de0a2e0cf3bba4db59328e9802435c4e19802ced5487f5388785fa26b782ee72533bc30fa81c261521104b1d064c700e773acf85c96e64d5340705a4a0df9b88b8cedb3839553d0ef03d141cb763f6f98280e5f920a723fc80225801290b225a4118fbe094bec29bcf8f25733014ee34aa420e1417ca5c33d9f0c43b90fea1f0a562470c74118c79402d36e2a16daffdee3f06abb510086111f6084b1aefc8505052f77ba7f431bb795516b0bf9bf919449cf59ec5efb1ee16d9520ee8edd99bcd2a522bf0edf6d801403578f7d9530b315e967083894f86a13f46c01e4ca5b5ce66fbb8292081b4683ac602fca5e60014b9c28032c1b250d6b04dbb9c4674dc817906779dc8b82aa9fd2071e5580df1650b823a07c77bbefaeebb0ecc6c2cb0724d4a0591a44a64f508a7f7822a0bf5513fca257075a1c3c32bc2e9dc0acef46e1d4adc09eba67952efee33e11dc3c1c3e50661fb60cada731ba1e4d434312ddb402219ffd6eadfbef72cf1073486e5d6d96decc56a63dbb488f88e27cdb63bf6528cb0f7aa944f843412845b6b9c4132ef9013c5deba6f358c169906cec66cac97c9612f2555d50dbcba6954d6eee64e7772a54250c80254f2356ee5d3aef5b12d89aa6160539eaec7887a575282f1c9f43c5fc0ed503b240449a9ff0375b38e571ccb2b931d2074d8830d308e0cc04e52c71daa6bd46d0b68e2a441e8aa52506769ea6af483ba11ce7799e662e0e79a326a674877bfd54caf10ddd8106303f33a5c1794120797ce1366bed7c7392a4ecf87e3b51affa52dd4399d0b2fa80c50102d9ea1951a6b5b67b2b3d2166035e294059625ce4cf03e4f62ddb68d5639df5872a01c92b6abe2ffb91e9e829f9e488d3437d255c6d389e63369c78d045add220120b50d4c134508344a10f0621e6cbdc831c92a4799106974357483a7ec1678e376e6b69fa87782332e71168ce4f1c288030f8774497e1e5fb19742111a9297f3ad44a39b612ed19d0693bdc42036c3ba3d98d0f73095942e0a085c816c21f5f0fefd239bba435186e1224b4d962e6612b50f0ac6fedb6985f9d462766c8d520943d9557d717742509a09fee730a3671f89fbcdfff34874838cade916e7437f8e1a6d551a5c422bec6a6f2811651836fa21c9484cd08307ffe8b0e36485624e943a90f1fadfa69955cd2071450ae151bc0a69d05cbea5327cfe0abe22c61aa484e0a7055de128b7d19b8711da87cbf6b08c77fd60ffe931b0ad05a01563f5bb85700f73e95205ffeb27c655e07a77f8c262057300812351f081b88d06b9a35c1679e4f389cb83a3245641f9d4775e290b19325734c7055428b95b530105033d1aa54100b77adbb6ec9d3733dba2974e50f33c6221034c38e0acc55aa1fe8f3acf3b6c43972a1ac20c65132f325e3c4f877b452d024d6f9eb7f1ccaa10757db62ac041cf11075f159823dd34c83d08da10970d89cc3fd922b5cfb458dec7ea9ca57486c8245fe6e71dd2a406a57845940690e4be83f15960865cf1fe66858e092b07770fd571d84cb9baad4032d8a67e6ebbfe94b237cffbb20724595d6d3996679e5778e37114b18230728bf518bef114c7ac30130cf25392cec700a4378aae18693ba1b13a30e30f44d8bcc3b88e1047aae36f5603e98182a0242a97111c60d680800401e80d6cb008db22a90d3879909f7595d18a07acf9273f14f6c623779e466fb3a12e39c6c4c212330ee66f565d2dec3e6126b8eb979667e689ce09682ffb2961d829c2df8ea8dc59949fe0fc1e6e8bb6613e9f12ec4f60163a2a2815e482c851ad5de5f1ed08552b562185e1d4ea1f2826a6c09ffcadbdaf69c0aa8287124e4c3d6bbc10b5c2b538d7033c76f09f3b7f1021308f3e24b323655f6838a6b2d7742cf3698970e795c9c4ebd66c96956ba15daed47975cfa4cc1e0295ef09e0c6f8d7f32c743de565c3fe4133f6a8c234a17933212463ec0e05c10112c89ad7134c50aa79038864cab4ec01b837e3a9767827aad9f01751505ae9e2c1377691a0682d8bcc9039c69e7c6a44c80381995db5ca998aa249fd7d9fad683ddf33e9be66df852dbbfa3d20fb31eb98ba9a5fdddc0a4d90e1a72df0b0b55bb24bc2dd262d66692382307b7b1da454e88e75d91e08055ecc48e0dc404a6112173fc54ccaa9406c0b5cb85404fcbaecd1b378c2892b8c59fbd16fe3372b93124ee196af79b6ee2fb9526c07d8af5c805052f09b554fd3210f6820c2da978eca22681eefeb020026b6366336dfe0104503a11f6a0b1e865a08cc4743b8be5965676b1750ce9244d0475f9b957f28adc5ce7d32755d8d232d8d68bcf5db3bdb1cb38846bf52e8c60e8b21e43f7050fe710c8614e4ca8a41bfc25793c1cac2f0fc56e291367825318fcee1c94378730142a28f971bde6e12f6f1ce7d0423dc1d5ca15e83ae9d9fb96a5180a1319074f2072ddbac9a2d5e235a4209342865988167aba27f2bbe7a146a73d182d09ad082f56893bdc553f6023ccef5c7053c0a9c0d1ed9961074ca6e354aacf0b45f1eb1bead0fc71873f27fd31de897bc5b07865a6c418df5c3f49d5b262ef74fa8c125ae42875d02aabad32bc416b3968cc8300b1dab59044fcb55880a3d4d8e57a0a4379b7ee6b8b1bbdcaa3b90b86b234eafab6b7a647346ac52d55e4f797d883c73084f5b7baad92ba7593f0a833605d31b7485f8465672bc681e9ea1bd7d1b5c84090896005da72f898dbc0c04201eeac052b8194fb4d8ccbb084e42a5d750d455aafb43446ef06b287de41fc078c50fc0759f28d0e36df1b9ed06bf7a20eca85511cc50e460e7a71b09c7b20fc2aa77c2c4d122277e82b03bd78e995190ec030f90e067d30991b92c580785a87b4961263014938235c2a609b20782af4597502607b0f3e991a3d6d2bdceb24123f7a527771eb1d8412273d37ab90b49c3fc55cedfcb5fa011dffc161c042bf1226843924c6ad112d0b7e7ca288e08538c857335791f7d2a01c0ba45d87c10e1e2ba08fbe0f3d63de5d7e6735b8214848359992d4113114a77a70b3d005503ace96f24dfde7057176935403333061c3dbe5f1bfbb3fbaae6830030328ef3454110feb3ed5de6dc7fe23948c49c06c5d4a7b6163446f943361455af1b47b2046a2483d5a10237c6def09c51ed05c85c47896163abf12420faaf388ff9c8ad92814a4a680e985e096cdb91220b2d8079384140fb029b18a8f53bffc8cdb2c42dcf43c1a579c93fb10020f96584df1dae5710555c1c27aede50e2af538d74fdc6e485f9d8dfaabae45571b8f7f7797904a0036679896fc3ea1614c665d75da7068bbfd517288cebb2f6cf68da70634a9a626e0459e4e1c61e08df7d16964c24aecef3b8aa3b97a46835b889a9d6917293691a0a6cad1961d66a028c4460e0fb743272b591f0a17946be50ea248f337e6485e99b1a495309d03eeaadcb5a9cde86a24fedcbe56d84a8479ee7a94335c2214f32a9b8b6294fb9a2bbe32139512b0d22eea1486cbe3b3b1117683f92a0c4aafe3a4223cdfd44556560475529b6a9b1952338adb4a4c5a38643667537259d3aedf1df5f4aa89cb0320b79d6a5403436ad0feaba7b877ab68e2238d0164c802d72486da5e8748622968a0a056d5a332ab93c576b6ed7ea83c4cc28823d24322e1e44d4c4010eb23911afa89a57238407a1efca03673f6a290c7ab236549767c0aa6a299631be9e8d18c4538122a8d2afbff9179c730984ba04866af3175892a3437ea117302dba092d8e2b86f40cf11ee2636e36921ff2b7c2f22f76edad328d43d5b3cdd7d3f3719d6549a62da209c56081db60803c0ead68489630f5612110b3a711d4e6214d34e9a7662fd983db378effd603af83df2c70093db7e86ba65b3a7bce3f6886522e033f49813dcd107f4eb2b2da7b06228b8d35394725443032499ee09699517b8e4bb3bb8baca7f3117cc29d760b06f5d5167220427f81eecc8caa466cef034a69cfbb511040d46c3ad03cd64d346fdc2db466f1b2b7538c81d99c11c76c98362d813174f1eef7fb3caaee1c9373cb764bb9ddfe7318aa29603be766b56affcc27d2b6df13f6b23612413e6bdb4dc89652ca24e50e120bf20bf30bd8ecc00a2cccc056eaa3d80f22585bdedcb951bfdd442cfaa2a720fa091910bd032b884e824289672f8ad752132ad3905679b18650832236dd8e89652942951f2b2b2fca6c49119678624246c44c18135d96086955d8ad5d24017d8bb1edee763357d28a42bb09d55a30a2a350c5af4700b5f52e0077c905d460cdb6ba44e26ebfea55012f8e56acf406597fb1898a4a220956a71b0eb5b87b2b9689725e34bb359bdd44600b6b5eae80fb4a2915da1fc53d158af921897ba5eaf667c736552a0dc9bf5e5ff0988ac1f18736785ca94826c016617142eb45b1ed482b8e8add6ab7b6f48ced39b2072b051ba6b7da6e5b872d7c99f2c3f1ab894b9ea238848dc661b9d44d4c57774bd4d55f0786105199c42d3c4f7f1d012794f0c54cce0fc52f326a4b549491e2ebb4c75fd3575217bd5a9bc7a1e8d8b435385e73bc95c9f6afc4e1f2bde315772fe2a3a1cf8e663529ad380ba8bc8ecdb106eff55b5317c9f019976f27ab88c9e162e63abedd3d8e591ccd61ceb82b0ede25f70e9880845a35e570e997aa6ad8296928aedd6969f7528cb1ed5c33c5dd7bc77c47b1bbbbbb292ead660bc2593aa3a4389cb516687d1977ef3dbae588732abafd59711cb6597158b79b5899c6cff7467134eac5eeb6b67adb6bcdca83deafb9856cbe42388f35db0d470609954339dd8e47d4f315fd86f945bf19894641eddd460ed850024bed935b572c46a86975136a57b32dfedbfd4dab98d00ba11766d211100844f2e0c1837ff890640281be3837a128a8175d74d14517cd5e74a128d16d909b589948504512aaad569569385e55a6618d72a43a59123d681fd65a5b24a1d75485e11283500baa175da885d8000fa5cfc7617b15456fb17ff5cbaef5501755a7b4d20ae4d666dd556c91d2a6b42d909b588ea3cfe722594170132bd3afbd296d1654f85bc71aac7d76b4e276f6660e8d18408d18609d9c9cb85edc7a51abec6b141b33a1961d5c12619d3af5f0401385df8b657b7777db3333b1320dc19c913d0bf561e07b167c2ffa2f282d288d039a9570993e750022040ed310384c7319028e44313e5d11507865c291289a448030c2082308800412481061000310d134c2085157845e7c1e5e9cd00b8c31c61977b354e885d08b219d908be611e18202f57041816e3e5c91756ab45682b1e166c3e1c682709814c2614c5d8cd95f69ed709451621dc63c1cc63e3222ecc3512119a5bbf0912646fac309b930938e80402092070f1efcc387243303711988cb15ea83070e38107241a28560741027e4022be1846294d587be0e4084e80e3c20d142303a8407a5d05150beca5745726ef78a24a2846094d4bdfabdf56b8a1b89a2a4422e4aeaa218e256dbe96f88b396d2fb1bdada8ff8fbc88dceb7d7156c7e6cfb712cd8a77478df3605bbd9a86e42422f5a74ebb4d65aa229b5ba79e5d1a616db6e014d7bd1a7c66e5fa6488d55b2af3d8e9549fc7b6b1257c78d71027a8efb0d818fdbd06454c522e7f033dae043e18bcc21ce578ee6d0d7bec16b17f9cee73917db3487e218b5c2fdc42d4a560e3e1c8f7c583621f97c74a49fd84a417ef4e3f013ab9013f98de8478390434a211fd22a21a75535aa3471e6c5910a20bdcd201c0e87ab51bb9ccf57b1ea559193308b442fdd27d64d62976653b16ef76050c4d1cf040ee609f44ba7640282bc87735a459f2847e49549c889a272668dca41414343433e3434248ebf1588639f8276d26f41418ebb8965ce1cdadc58afaa909049e4888353401472302f20746452b25652dae0467ee41d1cc90824e7e01c381c9924900c3989111cbc8349628903928925b6c4c18547bec139f805363807f302467e648aad2492a579c2d30637724a9ea3390cc28d8edb290327d460bbd1cf840dd4b46625e3bd10437a9186a82b4ff212c29bcdec2480669267738492031d6892007a09e1485d5412cd16908c08ba92b700e2024a0ec241982d04954c51389a43910c58c971c8736d73acc1dc2ab06087c61791b33964412c4b5fa1f6c32cd8fc1b96b8fa1ae936cfbfa5cf223c987389285fb38d62a59377f47d3687297ccd842a3ac006696969655f3355f0fd90cdc7b1368ee3581bc7b12c47a29a11ae364a80faadd5702603e8353d7b6d74a3d1ec8591e3383a398e636d1c753a23a3a51a3c2a81463e8ed9f4d520d1918f45f967bb3f06d8ccb16878c2d1918e1c9688f2297c7981b58c6bbe1af6a51ab479c65d1fcab6249b69f3d5a0ada49752520249fec1ef83a42460d28824073ad0245142a8947f46461300e14a7e010e3ce846d947cfb59adf967e2d00fd837ff0fbe02d24f907930408bee42400e01f78f067843de8a250e967844da30924b9925f00e841d36c21e84a431efcb50082035de9d742d0952600004ff20d80e0c0e00fc908101ce84abf160060bbd1736ca5d241fcc41e7f439e2dae6f1f98244a084920a9f9079ee44bbf24affd462c799249a28470290f194d40c981be010e3cc9c76e0226196d008427f988a0034d1248460f8ee608109e6492a04210439e9f3ef02537a1ae40ba9227f9063818bb296934f2249304129b93008003cd11490ec22401822799632bd5ccd29b94c0503672007dd2e993215cfc111e78072ef6bc3cf807af423ec283077dc407e7c06dbf14fe5223a73573388eb51f8fe246231c1d6bb8b4fd727e735efa900d37f4233b6792741aaa885c2c7bbe0dcef323efe0483f37c75acd7f4b22aab8458d1cff86293c1649078c9e4d23ead96bd4afdb7018877123ae394ce153f8ac1bfd26920cc079a69e6d5e33babe01a027f90640b892d786be1f7b348da86974cd09003dc9470041d43cfb88bd3cf23bb411d57e46b59fd191dbdcc874a29a998223bf660a7e5e53c1673355f0bdfbf8f3d2cd4a3a60c86ba6ad413787bd1a4432bde743ba8157fb8d3f9ecd47cce36d30872d3ccf7bf56ba6ad977bd9e739e79e2f85a7494a8ef35bcee675a0e9d4c7df06dc6fe8fb6c747d4740df4012d0dcc0759f973633053ec73e5a7391acd5ee30851f8d70c09fd899e621ce759e7f43157cb7e6d8a94896a86df09acdaf8f9ef45372e00f84d77ebffb1ba1e4496efb4d40c91c7f234098d487f39dd104925cc9472499622b2999236ae630033f2c1d67aae07bec1bbcc4f47dbef27dbf21effde88f962af8de842f5df71ba6c080dde7fc96fb0dd546157c23cd8d3e348e976c58fd6bd987c1601ea690343ce16b496e1b3330a6a005544c13bfbcf910253309c26fe957fe16207e362de93d2ea528f4c04378073e2c3d3091901ec26c01c908a027790b205cc93b305b007a520a10a651cd8346d983eec153006be6881149a691903981a07b70a36c5e20e81e8c2ec0817f700efc8327fd820efc711084cb3f913c8d2690e4411f91e441b193bc668e003a07d981374ffa8942a007f2273ee94b35785b7ad281d993b267716cccd9ac392e974248f2dbcdfb06fc25fdc4b112569f9d26208f2a94b07aebf767c77e7500612c5811cbdec452dc8ac1c963bfe469cd610912777416bc66f39b580b20e412c02e0edb718ecd610928170a1540c824215611442721e43710ab08a48b55842a01ecd7efafe6e2cfe642b821891e96787c5abae1e62b5e71d87eab36aaba98a7d73af54a9eb4acf47aa569660adadb6f5defa5a4d87f4432db98226444b2132a53ee2624a48beea22f896277fe318935486f4df670fce1e8fbf2010ba8c17a6fa5dfc4376627608958faa0d111073f41d86d0e859cc3efe867f4135b49e737f27782d0ef017b4a9254c002dc84bafb51f26c1a9c7eb72b6ad36803467ee4233838924902493b07536ca5a2ec6d8e30f2233f32496c7023b384b0cd9c472d6fc83efbaec7232222daf96d671a2d40fc9d2b40fc9d97f8dcbf210adfdefb15ed7eb9a87389ef1f0bf77d668f5783b5dad8ce4de8a17fe93bd23350ea4c71c82c7fd7857ee3937701d54fa84c628fc1cebaf224f11248e891a5c615dfa0943154e8b80984020f0d464d828cd022e4790380a7069eb117acad5db3d88719a2d2da34b101c3d39b2d5c59396badcd555694480d21e505ec0e0d436cdb262c28349a74cd914a33831e7baf284308426ef9d683ceb787906910f2ec1a5808103f0ca1042c7211c5c0e00536e74f0a303a5da6c0eab47101666606cc4e90c74e818c7d75132dfb7a5fe9c0b22c4b17a54aa21297a50fc5345fba58fa58998cbef4b2f45d650afad2c5da94adca12a7258cdc9271e6b155d4d98c2b345c3c76fa63895a09b1531f5b7ea4bedb69157936c64e7b501ee4595a04d8da2ab7fbda3db8e78cb5d6ee20cfbce1e84b095b1ffc50e4c227cbd5560b2d5b2ea6726cbdb0b20503c6569f1a1e3ba5b25debd40c386bad9d1a41a052668b0f0d1db6ad9814a06c0a6da1e1786b9de610b1ac8c6e84d9ca00f0d6a9140f2f5d49d6dcc121e38acaf04347370e2820bc757aa369082f7851537505650a9b186e7c5da12cabad3d35802e44691ac566f196b09ad223cb081a1e67dc08b19bc7ee5700ed18b30d5a833c6f154a434c21e4071a355c75ac6ab49983671c6764a751b4ca050e644895f00214902669d638a9226cb26f29b0ef1e3bc7f0e2a5e887401e577c0d12ae1e7f1e3b85d1b8e2367e9a3c11d2e6080c363fca48bdb0227640f1c243c5b75317585467a4b5d6524a5b9027566aae1d31be9db230ca410567ed0fa4b74e57649a860918212d84c0b891620d0e9bb596aae0a242d1e1db690a6ad54db4ccea6d5b317bf5b171ad5d43a99eb2954882f8d4b35314e499b700e08747df2e52f9763b9668beb39a0cf9767ac2b6cd3acaa89c4c4d64319111e2ad53271e5846939a652de1f3dd5e823a39f9ad256ee091c1e789c68a33546a52b0c8c382cb899b1ac0d26ce96242541b6f30005b8abfde428582e1ad5beb24f0989da727282e5a7805a283060d461ecd8a766d5003f2b45f2b62f876db4e831586635bf1ca0e31f8da19502d42c68abe5d06289490c2e4c79519343c788e088b5ec8cb232fe4bbcae47b21070a7988cac47b212121dcee88003f048a0995493c510e083f14cfc43f4fd4060d5285ca63b7d8c7198fa9c2acd439127625cdcb9a302c74660c09c3aa612a2cab4e98565758161e8f3d0656946287010be429244ad58edcc15a32864c8ac7191c694135ea147730e58e8c36497ef8d122c466721419ea179cd04db6a8a0a0a0a0a0a02a58415d5c5e82a8980f0a0a0aba41414ea3ea040595059505d5a00eaa41415b3c826e4141410e0c86a84ce307f95290880f0a13340655055505050579f9f4411fe4e69e1f5d409e630bb65ef8ec36fb0ae4992d0bb2a05981b5ae82262d3604c842f5ed2a7400be3d05e4d9bbe1519258c20f4bc072440ccb9f2e2c305945b49cbab4803cf6a1d01dac312848813c83ccde763d400625c62606335e5cc6f684c96727a032415b4aaf08e6c7981e5a0235d11356c6cf8ab104e479bbae98786b9d0456ac818c1934a7a91a41609041b33176778f803cb39531a5b72e823ad65cc2c60a2a534cecb0f2c7cd983427d7da317b08c83383b5f9eeb222e3db51f0f9ba5bab8acc8c941c33f870216c31dfed215c7314bbe6a398aff2112b335b651fc5dba5383a08e8ee081882aaf8610825885b5c4431691e8b328872c81f8a67e29fc71c70e31f521b948a0641f3437a843a11c30e25c863ec63e9f3605794171ebb081316708294278f3d0328bc79ec29ac60f6d867000590931f2825df25854995d463b16b8a9cc7621715afc7625795198ffd0358b66d965a52667398ab3ce0a603d4529a74830759961ce87a5265032648e00c862f26e2c4e0a325247dac4c494f7a59e5c9271d48929424b954cce8e0b16ba02c9fc23045cb8910fb98010c902799af68c36878f39484cc89a7a8306952c60b58803c2d578a3a239670382d324c3c0ee7409c87a84cf671eeab381c6eb83b7a3116460b0c2327b4c430f3d82be0bd2842ec14980079e24c5a2e3d2d6b9bcf769cd52a5a3debce2750231ebc750990a76d20509dcd8a664640cb8b15c06f8780d39bbddd6eb77bc3b77bbbdd60e4b8dd6e3707de3c4465eabff99288bfbdb90ddd6eeebbf9786bf1c2dfc8bfbdd8f3d6fa03c8d35a0ca3eaad3bc05a59e1b4823f04b6789295a5c51e17545cfc7971e5b137e00333217606747dfd70074536001653df2cda7cfb027ce388a41dbb02fa2794a34c0079deaad93836049c8c5579414fd4182fc20643e4fbb6391c8fb884fd10186218420929a8b4a478a3e2848a2e2ba6b2ac809305aac9633fc913efb0124200094f38b6b8f9f603d42ad2a006131760409d31ebf1858713610dc593b1a718dffee5bd5259a3095c5b214c6c613a61e244178a168fdd00b86f5fab124364209942a30348c595d8941f3ca578c1902113c8cee3325f5a69614e3d9cf23cf602584bb1406d85c9a295c309192f55533a0274b583f9e111201b5c80cc7c7b19a8c7b7978056ab68244c9c1743cacea0fa74998a3100f2c45e7f607c63fd09fb76124adb3c353ae600c142074d17210ee353c3501e813caf9f2f11b59a54777bf9c3c937eebb9b761ec40168895b7c4e74e0e3438b0f9b3e3d1e7b70a9cfd66317d127edb19be027ebb1337ded9841e8d6f0edfb7611c8b3db628cf10e28dd8d31c6b843d0420bd37beb02204f4b45290094f13231870da02b38948b0e3d01f0f3ed16045bb6b100070d5ad460a182438ab0bdec2f74b6befb5aff6cfacae1787fd56cc96f5905f86108ae1f96f0d8c5a1b805c3e318e828d1ca338789969e3d5a7ba23c76005434bae3cc0767551ed85aa9d5d4991331312e9c516de9f167fc31c408bc52803fdfde41452b009c175ffebce171228b6a8171ab67158d56342b02f9fe761015ed0ad3f03053b503899c2921f6922262ab68f56cb44ae489b5f0c40856b36ea24e15adec269b9313bdb62af5c34af536176bb44ccedb52d8e1c4690637629c641082fd90a2eda9c1569fdee6a2cd36a451aabc4dcc0e9a0b311a6c2cb121fcfa210583c5848dda9ede66f3372dbcd8a9f1c7cb0c3642af1f52a936b6210d42a3d06c69dee62818fd502ccb33c3f643f1cc56d54ad416e5409bcd97ba49294f0bad2856d850b910daba7e28e26d4b7ef84371eb6d3772a8e0e395278d4717a18deb6d5efa799bef2a13ee6d5eebc2e5484f8bc759f438d973624f97c7ce41b0d6018078ec1fea57b33c707efcfde81ec8731c228a7171c95656797a7cce0e24cf3c3601a08c969370883de7318f8ff348a3a89f55f97b3d893caf3b3d76d356d54dd9caaaea6c0588b7fecb5795a96279beca47acaea89993d30fb199aff2911aa4b6a86eca52b6283c5e217cbba38d554f5d48c8175694a7ad5576a8556f73ea265ae6262a0e1b2b19dccc00688b4a868b40c2238443ad38b8f88ec813e77e88fbbe53e5bbcc379e1adf6e544a95c831a44fa01b73b05cb1223c73810f8fd20d70beddb61735a658044b11e508d40c272a1459b4f4c092a3a289dd479ed88e8def31dfdeb3655b3996edbe664012327aeab4d001688fb0b5bed3547c771391675fe77910c57c19e187211e9710e687e216961c378fc18ccc110b4227cf635f125127c96337c1c4e32c66621efb4e4c0b55165baed2c97192c39dbbf3774b75b7c04496951898f899c186b0b3beb5fc08f4ddb787c8b3715e3fdc85f0c323e063ff610803fc3084c72eae78fcd8c752c9e32c35e879ec1e2c92254e9ec75e8ac85756bda73f7d86c4b1b3050a1618a931d85aeca3147f98adf295d09612be3d488a4a953a8ed8e02839fa76f252292d2f5ab0fd6be2cae6687dfbed0540660022c50415254e5be29056623e5299b05bdbd7ca7878f9f6f11adde08dd317af2d2960c2c431404e6a425517edc3b763db378c9434585ddbb49a8970c2186163a38e1f17ce502c676ed65a9bc7da987298a5ac5eead6cc618e92b19e0ef397358759ec290d2acc6fb766d64ab46a253a76d30dc2d0c90293468632648446535682daac69d908a6a42efed87ff0d6ac3235a61801278824d0c752ad441d3baeec2614ccf023c6159622545284d87d95895e79ecde4d4234202fb898425bb246883d5899a895c75af67079ec2154a6fcd8bc2635935383d483f694e25f39e5305b493df55c66453d8f759328b48a82f535cc644fff0d8f27e19b9651a76695497c0ac2d7dbae40a83617cedc44b189fa38be388ebf749ddaf1ebb5f792400e0b2bac30038cef6f0675054b6d076690811aa4e30756a65c40b3aa2eb2b59736960e6b94f8ae6d0193295d76b8407da9a92d72be491a49570d16df476c55564f73112eca454545b5a8081775112e721a95f48349915051912d2a72148a8c8abe70b029b215151539b0a8a8a8e84491ae8816d1a2a2222fad7c519167a9302dc01021f450827be8795c95e5b10f188f7d94f941e4b1b7912e62d6595aabb97a870bdf59768cf198fae2a1e6abc78f6fef1770edb1b7559990b556ec32e678eba5cfeaed17959fb7de448258871a1f3a86601d5dd9ca91e26baac65f6f2105701184cb53076920e45954cdbaf315343fd75a6bfb47fbe81c69be74387d7b5759dbd69af1620347c89c2c696b2a8bae1f65f7681e95ab0330df527272ec70262f2628d42431b373046aceada97aea4b2aaa75d4c8a49ed29d6f4777bbddaea2fd6eb7db715579dae576bbdd6eb7f32a4665caae6c57b6db8dbb9dd7aa3d3ba1dd6eb7cb3bb32958bbdd6e5777bdab3ba7583b3bbbdb6eb7abbb5dddeda450ed6cbbddce6c67b6dbdddd6e1745c62eb77371e7e36eb72bf2ddcefa6eb7dbf5d90db31412d8fb7cde39c8d3e7f3794b91a7af9a5151f1bd9e370ef2ecf57ade37c8b3c735a5cbeb74de2e90a7cea4e5a88381cae975de36c853f7a76b90e7388ede34c873346969b9a40ce9197909ab6c4b9328ef28f2cc1c44f121862b4a9e6f6f19dd31c8b397a0b4788ca1b079ec0da3ec17540cf0d7db45b7e07ae2e3ed86b7de2cc8d3167943916751af20cfddd5d7c8ba8996b17011d632a9b03534a540732249e827da28c8f382e913a3bd5268c6db26b860f0f1ddde4ed4ca6f55814ad68fb426705a68a92b64a86345b50610978d2e1544585c4a6b5aa03ae71b10a525bd4286e98fbd7e9c3c69ea43a91503c4784cad21abba31268553e663d162d8932f95386dc6703141430d9b274079463d799a1419e10cc893c56346c21d9a29bd7eb49476cc9880a973d7643a5c4c907ccf19edc5b294ca214f8ce73b4e73f5ad014885d379843b356081b9ba52e40c45a033ba321ab8969ca86f984c0122c7888c292fc011e27ae2b14db4335c39a932f4b9d7d618946ce1baeaf1edd50d571229949250db502e2552bc923514ad4496a812111155a2269263f6238b88242222221a89889c62111179d93042a42322226a224cd44444554a888888888888881c05a21e6888868888881c48444444244684238a228a222222f292cf1311b9ae4397b76eed8f1f6fbdb229edeeadd735e46945545931e3e3869a34e4d93de4fce876f48a863cc76eaf67c8b371bb1d69cc78f180c1ab470c33be1af23c958d5555ed48f1d96df65a863c73871460869c20e345b525c25faf63c8f38a7f6e8049418909439e44d65aa17823c66989963842985413726c205a879c305358bebda6e080b1f6f655c1028a112979820871529dd0f01956fd7204ccb14787906ff7b958d0d62acae93a63b3c747971c7ed2b8646badf552bb906796da32e695034898edce6d39acf0b10286253aae94d1405eb6914bdd429e76c90b4798ef2f2fa9292d3e0e1cbcecf31c74cf8103070e1c387005127b8cbd8289638a7c799127874a76e4e39154933ff25d65c27fe4c0da246285e8707454d5cbd1276861212a61ef80d4210977257de522cfa3eba7acb695a5ecad9638228b063731a4d8d22406407c727716c68ab2f4d62b166bdb4a651aac506c9195e5c9c2e78f55b6d6da7aa55a21cf3c82005c8883c4e206171c29aad8b639c2dceeb2aca2627b562d6ab1b9baa1c38f15b32f42eae7b17bd21f25b84c19003c85da9c7898c723e2f1783c51cc0f0c286d7cc440e3499f1f8a3ca7a7e7bd789e8bc31af53c1d8fc7e379a129c2e3f178bccce339c54213938567793c1eeff2784ea37867bc1b8fc7e3591ecf51e826176c19c381224d11386e843c3e58783a1e0fc8abcfe3f15c3cc2d3f1783c2b529078f1b3e40814210fed795e563d8fd723da3dfe12e3f5f86bcc0b293e1cc5c6eb745ea190a76ee7f549da8f6e47af3090e72824f6d8ab13f2c45f61c07c6e325e204e4c58fcbd5e85ca94a2506c63e2cb8d3755422aacc25d77e4bc057335a221a17115a5a404b3620c9824b8558821a947c8932756cdda524a83843901688ac50b7ce6ec99b2aa7d017b6bbd1a690ac4c5adc8d717186fadd717ec98c5345243a680919142474b4fad5a5522e499c5e8bcb55e87e4b6a415f225c6a514040beb7305429e984c95faa327d464890c322f84c1a29527f7c8b408c0b7571f35319bbb399bebe5fa0a4baecce57238877338e7ede48246ae96cbe53a97732dd662462e4773344794f35ab5024e0e97abcae572b44c8e990a1db932678bcae572bb5cce2956ce884e2e97cbd99ccdd99cd3a8145ab93297cbe572395d2ee728243d99e554880385cd9f34183dc084b9cf654d39f339dfd526ea7454997c9ecbe572be944bfaa188cf6de5b63ed733efbd612ea6fede7babfc967fbdf620cf5b068ba9058fef027c7787b548f3ed95477789faf6ba833cbbac6c77f4181862459ec7380c2a098b14612cb8a8ea5454fe229f73988a409f578cf9ec55870f9b61e5a8aafaf344445ea5c893080779e2b014609ec7f37a833c79d8ab0be4899f02fdceedceab8d00d041e254c3c3170f7ac29eb6bcf54a83f2a151a745d40cf2c4612850bc4ee7358a3c75558697107ef41a43147d5e6190a7ef45937d4dac9baad9783bd8daf2434ed615285dce70cee338e62318fb88b14e670eb1e7cc6c65e6ab6c5583b4ba00c1ec83b0133c5ad8fba34d50ae2caa2a14c6b48a55102b5ac2acf081014f8e1a7a057976081d42a4ed09730a7b1c66c204f6aa62c9da3b3dbed4acb5620a325f7e77b8a47d7d7b7db2dd562248591247863576b8dcc939a3d8a9e0c02510906faf277c5546464646464646554646d54475224fa3b44080fef8e9c3076d8f9e3c0238cbd4526a82169b313f7830d1ea53c7472d633c512574c08961480d71a69eae0837f8589976bfe10893dfe0bbca34f41b1cb86103dde0bebac1e1d03bd52c472181e40202701237a07460d0e2247472282a148079827a35eba692da21cf0d6d452fb79b52336a24ca4c9db623982b66b9fb08a5a3f5d6ad753aa76d0f20a49cab5c1c51e473a34f8f30b33035a4d8e1836b80439eb9080a5ad6762cc104adc68e2930e4acc962d6278cadbb9b8637e4995f1013c00cd447a90ca850c439a1e48a91b43a397cb8af48cb0b47b09893af45a9f2356bf5b5a1bd7afa9a85b22fbee636ca4ac990faa1adb241bed668353135b2b2323f6cb3aff5d9d76a41daaa8f7ccdfbaaa3c478fa6163f5d6d76a5d75b6f36145ab793bf597595aad6d54957d6d4be7c3fa55b9888dbd8851ab327ccdc55ac5fa5ad76ead52552b173e6ad5c9d76c4eb55aae56736a5613cf5a8cd5826ab5b64fb16a49796a41b51a19596da45135281cb5a15a4dac2656a3b55ca3b55a951aae065503d6eed76ab513b51a5aade6e594aff9ae32097dcd7d6ebed7731a0379f67a3da76ec8b31723ea89dc12396d439e4444444ec9c893080c46d6f3784ed98c3c9ed335e4c9a322bc38655f78bd7df1e7ad5335a20c6f9da6214febe2c9efdcee9ca221cf9d3d13d5e2cdeb744ecd90a72e08eaadd331f2b43627dcdfdd5f175180b118fbdbe2eaafd3323e4bc9d4cccca0ac3ee736e7740c79e6acf551a4626a64644fdd8c8a2fa00a39602bb8c280a989513015317e1c9d7e21cf512c4341a500fb113e3bf5429eb96b7421cfc66818ede9111045131250cc017b9202960246587e72e2b2c5623d16eb265a86f1fd18a484f899e287ec0ba513a8862d6ba160e479cf98a29a1f024398886102ecdb4b20dfee3bc1f50d86e2c7b7d3af25dbd4522a9ea56d21bbbbbdba9cb62897ad63cd34e0a1e74f16375bf044cdf173a666b7b290672621ed891830a7165ab6ad4d21c90a2ca7316d8094c9e1510797b3c8138f51da00e88b4c201e5f81f0a45161555de161c1fd2923f305e8ca156a66dbda4c831aaa2572769cf1eaa271f85c8d31c4ba4914662bb2b1a3dd0fb315ce0a79e632477e9cbefc94f9fa93a44a8f9dc97ad0f8e212860c459d1af6549554a688bb3e333ce873458acfdeda55c70cf2de7ba3f09901f6c5e70c147ae98f3a42fd048debafdbeb1406f2bcb73b9360c6471b2a326b9ce004baaadd7baf93265464fae16e0f9ddf179a0c26be7b657002c7051caaa9212fd0b21f4e376bbff620f9ebf63a5d429ef74a4d6d11ba16e7ab2f3d6654c9181df271c8cb283f54fed0d0d0d0d0d0ce831f1e9db5084fe4390edd7ba4c385311d73fe7ae943419eb73b4f9a9d9c732e53dc1323e450f237479abf7e4df8462b3fd2c84112658a0810eab4c7ebe6aaeb9496634530d01d7d7b58f0f863034a180a237fbe824c40a3db3fe4394a8dfdf5d34d64ca8ead0f095fae17291e7fddf221cf4bafa8950c2c1a4efe94a1e942a7088ea721342f389ef6a05d2be6155e6062b881a2614d8f3c3ecaf4f07a3265c8942a2fec79538e7af2dcd4b8d0e7efed0206c5cb0d226718971072864b941b6baeaa7e08af1518a037b58b274c9a0f460e185f62049101e44e36efbd97878c9caf69edecc898116321064e0b2b2e6888b9a841ec0596d995b5d6c5d0a93263c80f384884b612796b776feb590d52b49c6d1df2b41eb0597167fcfa0b95870e02b858dd9b02891e25337c5d1942b563684e00c48a98462841ece98a861438c45280e550c1444c4599d80a1f72b2b5b6c415156331d640f97163a70a919212220159a1c93546ec84d8df1b6228d0fc751b2767935aa920c516dad58a335ed408af88e7ef548ebf375f5b03795e3436c8927179ebd68a391179ebe589b7516226cce044457d1e01d69c1b48e26c79225683e84883bbb7ac4b931f9fb35b1ac8335f7bf1bdf75eb33e3a74d88892b24778bdbc51e6ef35a9f8e60c00ac0db1e4c500967831f1c1446c86a5eb74af13cd549c92268dcf1d3d35f88802a44f12241962f8faece6e624b3ca1faf405c4f326aa8105af7d903b8e881a68c8f19235484f6c71f33ddbdf726b5214f6bba25234fd34b9ca9cf6c922e35a958c2881521308c81e3e54a8cd096bd6d41912e4e507c744d29135a1f6fa978496bac1a2f3568fd4d53cdcc442c17f8499203888b2f3432eae478d2e59c645ad3445382191917b133d7565bad44b3283b3362a8b921230c1c1d4fac191be2c4963134ebe50d366fad39da32220d4664ecb5d6b45e5a1a6fed98b369c780fd757bbbb0f0f1d7ad18f2bc39df7cefbd56f776f0468637515b6ee088096fd55f1d28fe5e73a80235a37272be61c8f3921933c092b75d5488bd75df90b7ee5d563079db05aac55bb760c8d352b3ca94cd4b33b5b6b453e4c48e245a73a084b6c7d4129c6952b3173548a1b25973ea267772723a21a45eb3219220be162c36514e42eaa3990cb5098735caa94c686662c634b5890a87d90aeda98f416a93281cab46a71a1497ad2a757452c723625f58525123f52e29d2fe06e0afdb2fe47971c16030e8e29a0ffa0816e8835e7ad1d2e28341b762e419b45ff6abcdee4eea1ebbbbbbbb3b77777777f7edeeee5b37b0bbbbbbbbbb7d9764bd90a7699a6ebb90a7398e6ec3c8731c47b75cc873cc6eb3db2d590b79e67bef750b469ef77e91e7b5d65a6badb5d65a6bad75eb459ed67691a7b55ce4d9f96c8bcacc72a9493397157150d05002c68588b07b34ad6d2df2ccf7bacd22cfdbb7bbcdee2ef162091b174cd27c15e121ec1eadb5168b3cc78be5da6a5633cfd90f367764a8b9127677df6bda2be439dad10a79da7bdbdad15a6bade9d65a6badb5d9bcf77a0927a14d4a3287395be5eca399cd6c4bd36d15f234bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbdd5221cfbef6768fdddddddd9d73d9e514f26c2d29b6bbbbbbfb068f31f78d429e0d254a3765a8284f7110633425dcb8c73a4d37958041c7151960f0d8113247c8e30ec6618c31c6de5778c735030b61295c3107b8629c650bc6618c316e8c718927185b5d60940139f224dcf1c33aa6b5e287950c6349d5aaa42c2018631c85e5985d9183f1186e4cb1aca8c1385cc3358c2b8d828331c6e2071f8a631405a32a2cb00d638c8f2a13d0b13bf6e0b8448a1a572d001541025645882bd50f45504981b39492c955f5c1a0db27e419fc61d095fc16540a063d68d22a2e60e8d245062727e130a83406ddc2409e4129a971f76396323f8e595b477ee442f1a35b27e4398e5617ce0a28554e425ac4e54d931c5cde34c991ab2a936896c1cd789ba555969505cb5bb74d2c13dc73e0e20bcf01073e067a0edc2e296d3dcb8246cc4968dd5ed9aac68ccc84b8a2270bcb15ac1b59584bb2b25a2859225ab304051c27a72451b84f7211ce27255d91f2496e91941b941cc91ce4b36ce5c967b746c833d33e456a1b6afccdaae2e5afdb179a0c4745c69b6e4d1fa9bc2152763df2ed76c81437ffe13fb815429e1f5a01edf7c30fdb8307b741c8d3834751cdb961c7ca1d3321d02d10f204fe88fa0c95c5eb7c90dc1132c3132a2f4cf5d133661fb68a3caf942ddbe3031850aaa021491205061d3bbef2edcea5d078c4c7319b62ce639614a9b73cb29d2c45e870add8d1a24fcde10710b63bc844bc754b65de2b15033e52aafa7cbd4161a34af9d0722bc7261520a2eadbb401707bef95b51240fe753dd2fb7a6ca72a939b261a530433ebc9d89be3d59b661614b137b3a21879d3ad8ea0d5487dd9e7f3f9a8effaa8cfe7c7b7f3f97c3eebf309cd30d1e24e10296e68087d388848f1913e9f8ffa7cd4e71b42e6c3f97c3e07fa7c3e9f2fe7f3f97c3e2f7d3ecf525988747dce6e739067ce56aa9473dde2b8bb1bb42ccb1019d6056b833cadad419e4d03638c31763b833c318e92419ebe3ad6dbb5a44eb6d65a1bc3c2f831070c102cdf6e5f94b66f8fb0a60b9e2f527b881cb991c5e66b5dd816e469bdb80f21597c04fa11f6ed968595b252bfdfcf977e49bf2d377afc7abf5fff7ebfdfefe7a50cfff35d652afadfef0708aaab953b3082d8155b5cd861558c36857d22cf5f5b4aaf1a5dcea34551da136ade9ab0a3d4dd73d523c13ad14e83f2215037b5b48493922e58585839a2e64b75210cd93d02fa439e798b0d1a6fadb79f51ea0f0c3a6badb596a98fe523a24692eff6f18cf54155da3d5b6ac4703d16aa9b6a62ad6b5deb74493a9da9d3e968e8743a9d4ef7d38925e900e9723a9d4ee7d3e9bc5625c5d1e5743a9d6ed499e1b9a21bd2e9743aacd339c5d2dd41a31bd2e9743a9dce69944ed765c78ecea7d3e9a8eeeaa84ef74497d3d574359d03753a9d0e85cea7d3d5c8743a5d1daad7e93c4b2599bb2038beb3049192a79d9cc8b3850879d3ade98d873c4d939663df21cfeec2e3e57f3f6f3be4f9336939b61979b6cfe75d873c7d94071f1560aac6d19b0e798e51268e67f6f5b82b46979d348fbde76024adaac7de729ccca63e67ef38e499b1171835d83a48ae371c2da7c7de65e489e9b8796bbd69204ffb6606f2d489e538131289c8402db5fa7101d3848c16133438682cc9e118ae9b2e3a2bda9c053232c30a193f556cf47931de3b92b121cf3c074eafb154ea07d62d5b355d73a42ca5411ba998bb0355b6647949994a7b536b7cb12115038e29394f54340271619bd1f4193c76b677c4aa78f13243d417177546a09a193cf6d5a2cc58d64d342aaa0c09090909a9911aa99190d2202121213910093f1212920d241209090909c9cb388ff448d7ab8d8fb7d69b8c1db363a3e7db8b6c8b986e1f3bcc0f8b8bff30c41aa8356b1ee7f05a93e6c566cb636f307ca4988863f6458c3c91e8a5a2db5a4299405a697e04c102a8469948e3a39524850b5b3258d4da8b4df1d6bb0b797aa989216c6cccf66ecff67a3ddbb33d6b5615d62beaf57abd5ecf29560fa85eafd7ebf572afd7db31d6b3f57abd1eeef57a807ab65eafe7c05eafd753d2cbf57abd5ecfcb18dfeb9149ead143ccdfaa227fbdb9f82dc3c3a54c78aff716f2bcb58219ade591e46d0fa7b7de5ac8d3da06a3653b56fc387a7f91e7e8b54595f5b984cfde5de499ed5b6fae311d3c1e6fe9089bd2b13575672b04296f9c64214fdc52595b5c5a52e6f8b9eaacc622cf9ea594de2c5e67eefc0812e5cc8518685d64ce4d1acb96d48db7d6fb4a95aa52d6831d5473ae9e30f19105e34bbe59498ed24da2d0ca0d405f7074f9f6aef2f5f53e77a0bbbb8b6d7ce78edddd4f9c7877770c3c21e304192d27d2684171f5d89b0ac6de53c81357b328df6edb5b0a79f675128079830aa84a9493903cdddab6d987dda9d8160d63d65a0b853c33992327a902687122a3c5c491276da95591102946ca62ec58f2e20f0adc309067064be37a6bbd9d8822aaee08f58d423b74e8d0a1838b793a7470b143870e59aa43870e5ecaf01d3a74e870d4a4cb469166b2e48a3c3bf4529b3a8102a52ea8848a5b2a8bd639653300000004f316003020080c85844269a2e9696c5907140015628e5a724ca48882698e0339883206296408320680c88cc80ccd3400bbf826629374775f2c58a7cf577c115b0b8ea404c267f22ac7a59ac94280428c769a4de08f99a0dd4dba1c5adf8e2904daff43fca3cf006d4791fbbb3abc0a74d87466edbc10f8b97258df10a1c88fa03b873e4e83c4620fc882c6dbe70c635095f54ddba1be517669cc2e108fe827eee1084a22fe3c50ef79de28a4e22da0c77ce39b6f4b816ff1780b0c74a8ee1cb6a845a4327fe070986b2c6ad70e1b7b262e11a44008a85fa0a4d5b0b57e1200a9c166bd01278bc84dca1d2300632c6efcfa73a3ef52367480e0cf8060949e662546a3a19d3583474bba1a87b7b9e17641beaf147dcfc9b22c058186f90a2af190afabe500ed566941ce26a0b90b4d42ee5ec09b9a0eb9b19ed5c031a4b9d631d89c8e2f8478bae3516977a71ad8f94b92a96e58b1bbdb8135b79522fd633f78422000e3f1621366e55e95971e20677e18b001c5cb6e48a896936c90f41cfea579705b25ebe191182b0b4caced4fb3b464331211386ddf188e67c4d8aefe0f19e77f6e97fc037f1a651f0b0a6441be64823d05b83051319d837d00ce46dc1e46d8d369dea8a6783e0d6b9ce80dda093058cfff2606cf6637091ce0738c4cc166042c9648d756c3f0c86feab5d6657b83ab8134c53229f320061c8535adeab85ce0b54a56605e981c769a5aa38c6d6389432740ad6a0f921098ea563dbcf8139400ed3d3a76d1eaa5184a8ad15775dbe62426afb15e78e55c946d7b951df9cfb8b866083546563e66eaaeaa1a25aac949ed03a0eb37201022708b2c9ab28cdce8301646d0b117b90b5e66aeacdb677c07d1adc9063aafbdfdd9c3a050a424a0d691485cd058cfa69cb6d4134b1aca085d1ad96ab588fdb82406774b8b513a455039e4717e3800c28b94700609d7818bb973e98489ade303fa7b4c4a2f0551ddcda892dedbad618604d9d99fbf32e5861f1c9da81e8bc234d8f67b77d51bc3d17489cf86d4f39038f58c36661fba2734923e84b78809e560660f065d4879e5a86327a48cc14b1bd8a62616bb0905dd7881573ff798bc1be75be42cda1086c81f0e8511131b2f93ae0a72a8acfe29fe54f48df1132d7350e5f7781c2205f3fdbaae2ff3619401986730b4ecf531ed2e723306a871186480cc577a8f07161e5abb94aa392da625045ed92961e40e65bfad8c45eb1e98443191632fc40ae48f123e61bce5bd836d1c543879e2cffb555b90f3b159a39cb9df85d46b74ceb0c4092392624b5f84117ef5165331bf550fd131185a3d06a8824c2107a5f09d1b2fe06e5f3e964ec691e433abc46fc2e03e327129e3d624cbeec95f83467d874732fa4d17a62efb6eff879b1cfec8f4a0ce737d5d24074be6bd00feb03ffdb09f928b27608081d19cea29685c5e3b12c931980ddcbc19686e7896010d59446bf721f8aa8eb07b1e337ce4e600c5c1ed8279200744ec6ae088cb73fd8a3247ada6fd89136d45bd7cb89b9e5dd0e9e03fee10399c63bb3d984127cb5d755f03f6e2b89e4b6c57fb705fd4b8e0b21f1840f3026dcc1fac259c8184f14145a6dadb7431dcc762cef2d3d843c6028df47d598711cdb4d6b73eea410368ea9b8a8c2755aa373db26383026e14fd98f61df4b11f3eab5aeecdd1bdf12f0cb75007f21cc977464c19688e8077587a8b573614ebc586a4ba1f507987de483eb78dd61bb316e1a9b670a523ccc2d696951670a6be162b08ab394fbf7b68fa5348e079ce827d7ca65d433ea01ed70e9e66f9915191c526e6789ad4c133b0bfc616ad603cf2164f4669fb12ea09726bc9056dfc1ffa9647205c13fec856b4b70026aa3faec2e9b977111f43b7f16b04ef27af69e3104418b6e1f845b3d735dc495859a1a98d1f7da39138de5319bdd5eeaef02869fc34c5d2e23a4a8af2e5ff934ec807b53f9011cbf8f10dd0c2dac95dfaa4f7578e9ac681639181b6090fc661fc1fbef8d15d98c2e5db6c1f667d712cd49aa30f06d757fc6dbe5931c9c5af129e84496700cda946d4bfda9e00f1b81781aad8fc28297eee4c9d4034516c6b3d6953e5511df5e1d475be17c5afc02ecb67b4329529e4af21e10df0972679a0affcc44f99f9e80d73ddb5aa5f4cfc62a99225c95ae573be96171a7a2dfed31f13ff015f6bd1121325b8616935d662a97158c969342812a0fd95123ff5a00e50b8fcdda3f39f0fd9f81d4452d20b1c82ae555c247e1eb0c103306524023d9488820cb10f374f3b5dc156141db4f57238e2775e7f68b252f5f71b676380253275fa51500cc615362945e00ab0b27ecb81aee98e706ab48bbc88e1c50a97efcbf419ce748081b4a9ec5f8f97cf67069d8307b3cec0234367c091c2b8e09884e546fc4b161c1bb88591f86d8421e27f451cfb700370a76083d779b277d5107f3630e0b93e33133ef9fbd48d0d268c342a983fe841fe693950dc80a3fcdadfd0d9fdd0875fcbbec39d5dcdd51b87fc3953df9051922f14bc4b396450e3c549bd5f79c570b08d923ea910286d8c34825de9db1b9bf2a2e1a4bc84fb311d7194c494976a1f4b26f31179ee8406657cfaab8b4e3a27949d684af014b08c34f4d9ddfa44929e19801329662f7097c3416465c1909fb8f9987db39ec9f3230c2f2069abf9aacfafb956d7eaa7cd6751a2af615874e3fa66d1bc86af1f224fe4c1d65d22653425d2d0b5babea42010da1e00e28af260b47f8c715f342ed13efc63045cd0d70880f517684fef51a7cac6a8cfc0e091cd3ab596c238af954451c404aa76b4cc32fd483eb56f9a5feb9ab135c7c0c8957829a1d885ca8f9f815ea6f1785d301c79b77cae27d8a97e6e1c63955f0096cdb5a94462327132622dd54c26be9cc57879fcf4f63c7f41a400322392d5c1e44e4a25419b737dae74a66ed0767826ce4d180c323afcf657666aced00d09026e33c9c7ecd7479770071ed83af25240e9662dc8abf246bf0f0b1c8ae424a5b4402a216f129639f768124b9ea959314aec02194a342c52a3514ef99367d2046d2b67161064018a983c32f1cfc5dc7d941c1051f260324d7e9ae411ec6b726700d4e51a6e5a41f28afd335e77711de480f9642ed4699efd457d513a70f4c71f3bb2f5eb12d044a95ce6aacdc5024705d156ad452dd374864ca9f2904c86417576dea52c99f80d02ab550cb510f95361960ec6a6e3cb4e6ef08be41e9c4226063888cae2fe157fbb0afe9ed22969f7eae0b0f9a2567cf8c04f64952c7e62d4d2519ad48406b242ed1ce642a15ecc0b7f5f2a8a58b1016aff0fa4a0d254c8e498862f1edd786b2d4fd1bce803a163d20ae0a7200c26ce844272bde239a59894276dc14b72532a5da620fc5eb1f49afcbbea76572fd8ca47dcbbd08604926fffe8ceafed29447780c4ac8fbef2f98d7fb4e3e0ad9aeedc6dfcc9628d847c39f8c93408b628d4d33b952ce32196d000948a2868a414af745039ffbba63422791688e1e232d411a6c85e913f96257050adb80eebacfc56eb4c8a8412834704174501da38ec91e82ede25bee06408c68a4bac6cfa5119d53b4656897e7caa613a89c1545e9896abf1e210504e3f77e89e1012c09409ac9e2926f83b95291607119cf1f9817184adcf76de9a6cd02e1686e98fd2b05f6f40582cfc7638d134bb6a503d1994c0c3b0b483688c82983b3c5bdde4216f8a445feb1f787606aa9392a00050b300cc96bb2e62aaa9ac130644354803431cc96c567385ce06a3314cbfc4f494853bf44a11a154e42705d7cee65e47f18f9d32c7206dafc01593d116aa8c27fbc3a932948e09aa47c5abfd70139e59925fc83f807ea109f72713231ea851fbdd1e1b6eade591236ff713b20274ebb3d319febb13076b0a7e8611d1e71767ba70418c2546bb99fe035755fb067c735b3dbdf5ea61f75b9dc9b26cb418a35da104975f265deb4baf51451ede97b723a79a7adc3200428bc6af4991f80d8ac09609fa0a3cb2493e841686f953794d10556b87b1c4ac646cc49f123b91016353ca978202812e81f78fba6ee1488e8b716124cebf1e5f8443c0d23f0117508b08c430f5e909e0652c7c45300e11a8524b6b8f9be5a19e881fc4758859f11e328b7881538b902aafb53263c53d50c9fe8d2787932a4bfab40a5ee71ebf76b6c3b00e0b1886068a9bdd49c5543a459b1105f2267dd9b3343bc4509333d81c117d7714cbaa1d4ad8b0f5dfa2da7e57f3cca0b84a9425dabc82d6055117a7ae4ac1e6abc031b58e2d5ee8053a1c3603e72f4a5caf2126e0c19a642d63e3c1d8d50136f756eb271882e90be5df4ab1e92e6b1d008e75128cf1afef51a2ec64e59f3ccb0e466a84aa6a7d801b8fa32b0642ff911fae75cebce2446a112857d41aaa78cd4651e3614257a24440dbf7c1f44322c43a4af204d844f10ac8d4e2f4b1d41a554346e3d067abf73dee455ef58b8ec7de9361e33ffa5386c3577533b15bcfb8ebfdaca3e63f61a11146ba0826402dee498a41b94f52eea5dd96dd47226d697b84d4b430763e80f8de7be5eda26bdc8222856a37355df65cd32a67968fc0aa55ea3ea4019837f892f57c64a4007fca8be38e2ff0f21615a62c8f1b29c86ffde386468506696acb0dd907a94a39a6fb71112a6c164176710fa389ff144efd4c39f1e4474aaa0dac43eeae6d627a1d86ec204da1eb89e07d0cdb53e79614c0715505cbd1c7cda5f087723a21f0c324e9e23ed35423d544d299b079c3716548e9fc0fa65dc1d2e96d5de6d080591655b190bff226816cddc02f7dea60567acbbbb42f7879d27eb3cfbabf784d72990ecde7b867ec9a9a0caffdcd283688a8f2f6cdc66103868e258da6166b9c04494d72073bcc05069bb00e30a43047e35377620a02ffd497c3653c5e01731fecf3d680e09451cf9a82eced0c5cb05cf0be5ff6caab6854e831eb5e8e0c7ab823dae63815398f74126cb99981bd7a48b8dd3c2a8015b8980fefb7596df36e78c3edd2fe113b58f13cbb34a6566d33e9c282a5a1019d344ee2344f5cc5124928ce80647ab77e32df45e47046d49254f34b9733aa3613fcd3ef765b0d1b1e67d3c14486a7d157e61d8ebc8923ee587b36ff3977e3a37ec5df20609ce8e2542c45f5de2a801a8dcdc798051f103cfd6fd04d951213da0e384005e87f7e04c15daa5dba963bf3b1d205baf5ce7ed6b2328ad6d1800237edb87d2bb6b3cb78897cf20f8132450800d9c18da1251f632843f0f297de2205b1c4e327cb3133da8c4076fd23eae6b0822630c6182a5adc6e279e0e27bc878fec7bddbb40e4ec4eebc3778b71caa395cefb1db639a84f46b5b455633412c5227f81ec1c9d8c302115ccbf5de63563573f8f9c181357aedac57d132f8c8a7a5e35ba9097b0fb98901bd72ffc16049e3cc8c50da33d9b4f5d3821b8a85bcb80ca191c660aa44893242ecd12a1dcb2f05bcff2f8b114c4c30219c20602916a1e81d81da1ac946f86e449484c65573ecdaf076880eb7e7cb854d299fc36b95b2dfc28740e5cdfb8f41efa29093d84ffe92b2a1105235df36b4cc5be8ea368dbb9a8f878b86888d88527cb10773899c03cbc43288da30d31cb30f82519235f08c0c456508081c9916480c7f938d8cd089b14ba928b4ab532087cff7cd68c3a05666f219ead0e83f527d0b83c1f51070f02ed8531babc76cc2e6999a870a49cbd60c796ae0485b93b200d0e480a4242b6be70913f60c38ce24a5dc9b6293fd96d6a3cdb05940126bddc4be7782142d6679b0830c94dad7ce64966c1775312424aa334da312564f3216c77d5736f2067d3724b5c57a1b37fad6e9f25dd9897dc9bbcb15e79fa37ba0598fe9d3b11a258b12deec2a5834e41dc0f3ff939e3de07f9b41d4802f7bd905b82b9935ad2439ba576a2a7c060a295f74710489a9b94cddbced15259af7c8ae53b8b5e429e30262e6af2fd934750aa1d1eb47c81580c24e3e1991ec22659980b2592f473785b485e49e49d8c1a174d2a85a98207229a00fad7cbfa6cb50b1560da024a65c081b11fc07ebfca2f8796e477984f744797fb8e7793b7e219b7c7d7ed6fdf775a4a53e137186e72bcbb52f035db30f78bfe142b552e669887c7a0f2c676ad89591b43b61cfcde4d2abeee9e778227615a53a03f8c399ffb013079fce042564dd9342872abeca4d6abd858409310e600aca631d14ee4d677f6465f69130b2c052877591a27a7a39e8ce259e22f2d4fa975d9495a502ca125ce3e4306b5bc04689d85ea2c57db064c9f00678dd9dd0b64b788fa801a67e94f6c38cff363799e7669682343631bd04d554d8cf3529cc3406b9dae902ee15498952c809b36199307b1a206cd3634123e96e87882bc61ae83206801abb8187de138b481822c5605f933d2a4ee2e055c1ab14459e6b6501b6490d24ac004a9ecb617923049eb9d9084ef3661779d3f47781bf394c09ddd88bfea78635d04a1af750e5d12e124fd88750ae6fd71fa1ca67feb15ab460da85b769ca4b14ab4f5aa59e71d60cba2099e66f4344d2f5638c624e1bfc6263382c81b18a04148335f463e9fff00b6c3c31cd61ebe85c919bec3a5d4627fe5e7663d6435ca32abfe82550120a1c802cf2672a029fcd3f56a36a4859e7eacdf8d3d0406afb4babb187fee0736d494504ee8a079aa688bfe1ed3a6f34eb633c39f421aa227e6d7f50efb11cd52efd9c83eb819542d0fb2874ce0071dd05fdc0d59a5a2ec4227db74db930ac8a8ebea814e59746bc568902b99d6f731d38b94743ddf623774bc5b7045637071bf57c178470eaf3785b13a3d5f32bd6a896512fd75f20968de23cb06c01ef95fef3f0d405fe1d69b4b5a981c9395ed11b31b111e0c9b4d55f78bc0d5994c9147e00a4a6c7c4025a0923df3cd52f1a05188c554f8456fec968bb2b817bd2b49870e3bc3093a751533add62ea0bcbd2821ef055d0c2905afe095200678e67321fdae575208a1c63e054f57da366d9018fa8638db19d9ec6c5be4cdfc6d0c7e8038d003d136acf760c14f34ab7542db7e81a4272d1148b01c349e099040dda672a39693e5519603133e36d0228de122ade434a32ea73715b0942a554042b85d9f76754e101132c0d28582c15a9a8b5bb41fe8f9c6b4add8cc5a0557bfdc9427cf11f18b8354a6c107e2c2116ff996797870952d4213d1f4d6bc27c9721aa508e5e2d64271521e058686b8b8f8f021e744f2f90d46661303bdc5f7c6f982c07b6e452b4af191db66b4a53809398f2ba6809cf58882f6a076c9d6d1a40b68e605e9053a9a55a73bdeaba82e107405bbb5fdfda05d8f9e2b9f0e9df87402c7b6ba2b639fa00bb5bd9b7a835ff83b2a70f898339f16cc1994e7afee976d3dd648d03a4a41d0e11247627b25cea0fd5867671874c9da88e1c5809e995a2e0aadcf683f0a9c52a97892768e188d01cd79c48acea1cc3ae0d0e2946fddcf21e167c42a9e51da073488862f57af4987684fe8012921cba7fbe9aba12ab6e49231aead4f4fdf4276a5a7311750482f9fc768bfe9fb6e5f7fdfb1af3b2636314cc6116bf12655249accac8bd731d1ec10c81e69a71c2dd341d4487b94321d44f001c1b204d92a5708245fcf0b98640aaed0ccd74095ee26a1fd34502cd1264bad630a0325d9f21cb5ccd2dec39af1f7329d67a7b79f38511993acd6eb818909610b68437a7a61ef7552badba8a17b6363d09ff3a562425a12440c9ee20bbade53a91aa29498980524283c64a00baab0b1ffefb14fd6c797e439e791379582bafc81d22c5815619efcc40ab14ba1d1d4f4c6986104e1e912d660e2cb6ba24465fc0377dff9c134602ce523071334a4737f99718a9a89c41160ec5f142ff0314d904aba7ff33bd3508f6afa3c1205dd3e6e58fea4275ea56a39f92e4d0e1d079362f39bfd425a9fdd353b79dc8d1bd7d141cc66b5a20df7979822276e41e7f4804133a3265519c0f613a419c7a1ba44cb9a0456682a15d96d582b0a7851f8f0a3631589125b6d9786ea978eb3800d2bb330d935bb4325ff06414179b7016eed9ba63300c7f535f7ca41eb2b653bcc8746c4857e59b8264aad1e2f90677eac19a2da207c5fb6b1e9e30ca22a0cbab993fe665b71fd50c0776923abeb5f482624436320151ad1f17929b54c447ba408c03d18ab151ac525b89cc20736483fc0296f521cf2a99bb4ccc3fd87e975494b1040e28ea49bb908c91356f7b2830186034ee6fa5062920f575a07bf8563498d5d5e64c222e8f31597ae0ca0d20e5edec11bb64b58c1fbbf10f6f873c5b97ebf62a47c8ffe4287bf415e5f35f22c4e67238f1bf931218014453d8dad2188cf9d1e7f8ff36e68e7fc654fca2cdea4b7f2cb3770a27bcf324100a98539ae1e2ed1477294de70cdfa7957b1d9717017eac3907e8108fcf823eac2fd87314e0d3ffc484c9f38122c6c40fae10b4344110779d8a9225c34efec73e209bd498b9e7efc868ec5006f7b43b6472d9fbd990df25ea44308dcdae302d8704ab1200738015a8700fac609a609717598648642bef15bd8202e4c1494d7c77c137cc0942f122745ad131cfef08c25b6be31fe98bfdb035ef9d4c02e3f15e08232972c78fd08e84cc51c78c6e694e38a8542b4976c986351c935d496037f3b4ad18229414e31ade74003e4db696508fa28bb30618780a76154f9db603f2e534832192e430aaee9869f76c0fdb1e33c3a20a5d1bbed511b898a91e9bd5881672f78798b5e5cd3bee9d52ce3f60a0d9eb17a45d0dfe6f662290d4cf7ebebd9a327dd19ca0bd517feb8936d547c3afceaa2f161085062d7e91e57cc225794363534d67c58db9fe6183f2070559c9c9ebe90924d2da3088f76c8cfa13f30ab107780d16119aa33d01fff9913820ba5149197996628ae0dc40d1d1c614573d53a4aa55e66b6b14ae93998cacc334aec0e8778dad9f56dd5633c677946ce0f75777326a8a353b25fadca28dede75bd63bf1bbfca0e62ea3ce928006e15c62116e5c7074554e393c618d8ebfbcb1994c0c5e9d6771bc18433317bbb8b12f73546187df5f176918a560dcea958c27595c4f435e92968697459e39c83d34dec2673149723406b25c5efc84f512da829ada02e48b88fc616b76cfc26830e1f30107ecb17c2180a3918f382160dee4a47cb969aa5b171d5a76741b270ea9054372cd306910d8a9a7cf402728d7fe6ca77d83b689a0a63b67147c9a9d0aaaff798b40ad07d4238486a60809ea85bfbd9eb1d6df9b7664f35750fb428c402b1aabf23c3f586e0ae135403d7471c2587b7d88b2ff891dd5d2e67d96bf1b6aeb538002f8b3b65a289d185fce3845a69b8463ca29f691e0c8b5e633ff652523c0135d5af6a750d5aa02ff01bd143ebc2c93dc26d21b4875413ee68cea8de79c32b36e2e0d32232884b8bc17d072c8c75f72b09255519098bdfc45904b51106ea623085631abea4c0c4801576263364ccc2efe1cf5a0936d49f792fc9f317a80e6c845ed9a428ef31837b8c6b0a6af8ad79482730c0c52ee7d84eab38e4096bcf1c47c7ec75eab4dbc0722502c7f6351c1b978aa9ef49dd2c0c637c8c7a78912f4cad56884e4ded0718577039f27cc742dc27267c716a70aa6eee2cfd2a087bd0a6f2d80f70f360096e7bdc4ca46395e69aab27dcd39e1a641780f7d428fb0cf1c4c0ee14e9061718c4a0d1600d163ec59e0621f7544dd85728250b15b0a7d54270edfe2beb8b1473050297085bce51d23000cdbe3fd5bc92761ed7749eecc5a690a675a11d5f23d4d78604c7d34aac591ac49ca77e1e0a8795ab19e953e91edf663b09ad0e25b90d07bf5103b3101ddfd510bb8cb5ab99b0b6f681da8d1376f0200ded8da171316b412f1ee22c9c9f301c5f49ce6381b9ae33171ff569af99901c020175d98e4408052a8e8027400e32062f75d1f5227ee1f59ddb9bc248ba170783cde78c1b3a7c597164ef857dec403fc87b93b2b1e38d07c1844ee9d51da2ac5d81a882a0346a40aadac1ad03cf5b04a07aa0cc3ec16cee83ec311199a644c24076bd427bc71f59daceabdc012cb51ee67e9cae01fbc31b9b17cbcce016059df1231b520e6979de3b4ca41013e0cb695c0a256adc8036110a8ec1d9f638810808678ff0e3e1d0b4284e33c3f745810282bcdd907a708c45f19fcec33c7c148b626c5b141ecc0c423e1fcee901c9f961f2ac537df7ed4307203dc1a2e863f2095e5e8abd17c52a85deb3e57b3dc6d8980b887f118027166c3df7450fac5184566677fae7d431648c007404a59d1b3ecf68141ab676175a99e1f2e8eca0421ac55f8ae77cdeb1d22830be4641f266e0048dc1cf7f481e2e186f87ee70316d16641231909740d3d9c2c049442dbfd8cb1eca1d2a04525147107dc13a4c6e21e1f4ee02a312d09e12723ef00f3e80645b89d279a3c606a7e0c94b82908a35164e1ed2683d667f85f4946370a99f668936c4bf044596d36cb1a9b4b77f6e4ba99b3cb614163992989dd67f2693a6654c9449b60cdd8acb687f0c19bf7746e052bb49c8115550f018f73965b4e1a9d31d5d324b01471301ad8525be32c96247b195d104149c9a70a5c816def17c756356508d05b0c7991fe655b4c52d58bfb24a6351c3e2ea9b00f3b5642c888e760970676aa0759c5cd5b96ee51699821b320fb750fa17c88182bc3f499918ee7efa1a17ddbbebe81e87f7250a3b6f7b22f7b77d31d4d84abf47773be4a7b3e9668b92b7361e0c31024139f1b0b6ec733270cc0197694963386518d4ac3bdce6fbab54efdc17039a0a7b5473fda69882ffcab09fc571768189918d1013e7ecd9d0fcce2f2a9d41a091fb56d420cab2e646ea3202cded12881f4680e43658625a6faec5ece0f4aeeec8741d219b130abb84409a63b0aaf3d09921b5369075841fd2a8d175413d64ae11fdf3582e51c708f938bfd887719fb193b106cfc1dd1be0ba624b1f77d11acce6e4a3c511338aed21d90da75bc94fbe76ccfd731cc82668f75807bb50b69b062bd851f67f82ef9109d32443c36cf3e27b0bc356542a5607db49a668b3350c3bd55a27b190fe71db4f7e46e75ee782e8747febde083c41179c31ba6d6c688061052b616ad6c14cadaf6b425d173a5d53075641b7f12110686c9f657240264302e87102744481126a3b81c5f7cfc408f9c3c4f0fe4177c0f75ac671c87f6b4598d38d25e779a6cf0fd3ac5cd9a2d4fc9a812a40cfdebace782dc6b03c6e5299ec0ce2104ba0cad2af9dc11833f384d5fd94b179c2209d3f6698380fa9c176ea60447dd2e904505887bbd6c4d54e602ee4316a93c17e70ed86eaa7f552f0807a29670355d687bd9f7f12e81a98e9d36d4122e79d3c9da5ece38234219ca7d420f8fcef1e3c04bd2b4da1a18341e25ecbc8385da1599dfc5916a6cbacd26ebac1d67d76e26ba364f0d43a57ab9c6274499d001b113426b310665746355b864b7fc7830d5aabc574e8b90b4667ea8152a42e1421286ab9a9e7fe41763449cf822267eebea29984da495aa8bba32fb22896d09ec7ae0a9be843f8a20a62c618ebf8defbd9a7b0fa4a552b4e73ebb78034224f5bfc23f4ec80fbbb43851bfcdb17279e12480baedf99fcb879033a8fef80405b833abb027f15809e26288bab7eb19526c5b20f145da7729f162b628f2f77ab792356906dcb433de34c309bd36a5c02d6854ad1c844ed14e19c9e07c13a9076f11293342786fa5c78e159823c097ac9767ae5dc88fadec8019376b0901d3fb5bed6b3744cafd148af931734383ab6e929667951dd317fbcc3d81ef6f426beaa077dab2abf7909c3caf43e13dbd97bc6cbf1dae1aae8c8f674ecf8c347f8af28d6b56464a136276144c2550ed5a145d7229f5fe45cca28440747e229ec7dc1b46ad84ea9896d79e3e635b65ce27829f5672b36b5762a6b3287b8be9bbc41144f3c7fc7d53089b24b97b398305ea6c43bdf237c09d4dee8a605ff9d4cf21876ad6f7fc8ecf74e9119c915d2b10e0a53ddc082ce3cea33874850bb3817338c8a126776b2b5b489fb8f506629cedd8504e8c3aff98107b5453d036c9c67efdc6baa7b52c5dd66f9be1c78a9d638835ea8607a39cb391692774458419c9c8a6c98171ab23d43984564fe16051993b7afbbd3beda6da5baa016374ca3a56b5ddfa59d5e968c0aa0e9a99695510c9494c3100932ad1ecaa11b64760efe59e3d6615cbc46344ac853d9ee6d62718d3472ec2f226d745f64ccd4bb9380fb032b9ad3b6afe32d6abf09e8bc096bc4f249446aad60061fca24a09ab53d9adc645e8cfbc263780b3c53ed7a40e89f75df22d8f2c350bb667a1a346843878f44dc450f18e9057b65bb2f256427ab9d3cbc2ec279583ab3cb514db4f749a74f50b82dcc65ce06a16cd877646b11a638a0f4d92457773aa6a68d51aaf2461bd9aad37b2ef54578fa13bf959fb53ad4a3c80a32fa8e760804cf6394a9f9c5099c853bc1e7265ad11c7482d071c6c37f34ac375e6b149c6e1cf8c293192ec782aa7ec08cf094599ffe3831fa94ebba9641d59746c52335c08bb246ca012757a07ab07695f1f4e36b191a1c8205826c22ee2e436b07fea48ba0b0a5a70192331f3d7da05ca8cfc92088549ff4b8cf49abd8da4aeb633a1d261ec6493eacc70bbc965d2a5a6d6da0e50b3783654064cd21200f6bac8acb61068083ae1edea7c78710f37ff80842c26d26d2b338f4c0e22752d5ccaca1adcf611f66ef4c4a2b0339bb52d00975345e862513c7c018225b791c5b36458fa61fe462a50d478277e3c0d5d0550d17dd9d0c6ff8ae0de57511a5c0253d9b8084450f11b36637352ca6c35a52878a4885426b21136a4cd41bebaf946ec5243eabe0a10a7099b60b97039fc1c1b70c077f37f6d3828b2e1285f62a1d8a47be58582637e24bbb7845975de02720b00deabe000ba5de6499084d26ca42ab381e17a7c30291237e399917c310fb8272067549751d3d76fd6104bb82ef120bf3ba82ce28c3b6a5f69c0d30def8d819e8aaf7fa610de8c5f82ab44f36596a4b1089e119a52a446fb2da51cfdc51cfac23e5b642097c2b2d98ae933a21a1c83b723b4295b9db45aa86d9245840eb40505bcef5a8e6968c21efd3c14ecbef7d06bacbad8a9e28e34760cf1cf60ed8774839fa7a739fa8da5f08732ab775357fd353fb8c4f7bc7f1b31ecca879081f1bc880b454a7461f8a43d16d36d7882e6f903aa531265b7a2692a1bfb25ddce0e3585bced69a15209d4499f9a87a6d9c14b053ae51888c342293b4abeb6291d8ef52d948a24c42a3866ee4db68db0854b0747c63b1834c23b3164930859f1a1381bc5bfcacd0f021aea9205f1891af294fea0b0eb991f6d4885297cdff1b9191c257947662ccd831df423efa777b13decb7ec2da3c58cadc1966d67e603efd696d9462b99580407fa02fd4f448392b00c96cfac0be11bf73c6a376cfe3e0f483b6a60a192a32f0389e66758c4a0d07802d65c41808f3e273c22b7b1105553c7315e4b0330b033c402bf595d451a135e377ae3b4a987528cc019c1fb7ff894d06ec713e963624befa38d3deb7e1bca17387f07a3ecb4bdcf88929b4f24fa6372d39497746c75e0bd7de2f912c390820e159860754b676a44277b06f05d7342cf56d09dea0a348372f944a5a86ee18620ea176d912814180d15772cf004aebfe9704a171ac0333ff6c3358d81ce5be8a9af28496e6fa8f2892b99b948b476b4d1ac31ec0afe588f15ed6cdf1e405769f7b812731e331313f9869a9e71f6fcf00b28e7101525f4cf1b166092b2f403bda3b97556c8fd5f126637b8dbf103a8bb3d86a28e18caf7057d9aec30699f11fd6df5620b2129d883cee306b270dcdab3aad27c840658556bb4e4c81dbe9ea05025b322ada0efde3c211b616b4dc397469ca06531fd80ef14e64e8ef47536e5241c1d8ad313b4868c24760597504e0575efae62e671d8f6c3b231941cc63176253a2d1af038175e03303443e62a6d564c17e95fb6a4e61274b2891a4cc0c5928fe9d7e504c47c902144cbd5d53b7d5958b479e58d30941dd55a18aacccaafcd8c3d6bfe858b639c9261d676d1eed3d684293b908df48c2952953fb05fcb4d30aa63bdd80d0782cd2931a94aeb378dfb4f60bf253dbb11283a28e687eadcd74cbc43e63a77b0d2df072abb9b6d369291a774653aa24fb4f578ba124bc3549f75c04b452d8b41a88857f4c8cf96b228e302bcd119d551d119e3b4699666458e632d3dce25d54856657a0ff6882f4dcd9f7243719ad5eee3af1be7618e322c77f0d204bb4b77528350c67d2389dffbf5ca61c7acc04dc0be53ce4b848a2b60f3320b927a870151a46b1eb8c2508100b885254d4fbd1a20ea1b7a5fe13bc71a43165dc11f9c7c62de5be8f1d48364e6456898c68536430a30064d11f3970795dd107fa67d51ef534198f6b74a51207a61ed61cee4c15129034185040fcded43af5b0b99f460c9b6080e6715f427efca145c5b9a0106779ec740fd618a2c3cdfc6c46420d86271837076482b08a0ca4be2d70009eef2f5c530315a46ce7e98477213ca372d9ec41ed585477acea5b4af2203afccf966b68204b703ccb846b108073041a5de18274abf3b614e779c207a1cc0eb6629c22270454fd8af793ee503395937066d859c1a6debdd0b48ce26789a3143e55c859f80749dd1a156e2df30e85b03afe7affb6a0b41816419aff7ad10e457b6bf53c0c5b996266fe49f3caa5d1511a21efbfcb7c269c98b2fb904bff8902d23cb9286f37d8b9d9c3c519fcf89b8ccce76a2ef79cbceee16ef7ebcb0b4737ea59ad50aa558fabaac645a8eb802ee6e3b3513543ec182e0dc13bd55d398a6f24050238b7a852299e57221a34d607ad17422b97d0bcb53409d212db10cc290866a15424183969166ecdff083e5f3351ff5a1f70d1cde7ac808ef34b2d88daa486fc2179d23255cbaad43de1aa29cb2252a25683943731e1a3e3d35fa06901b81aaca6f28d2f240a4e8bd281f03af2fcb6b628c8ffbd687f0143bba2aa715871e74812002538a8b5940c7062ee63c446e60b1bf26a687bb7989664860fac3d78b5d6ea063bdacc147dfe85d6a90052c5021c0b7fb19ad3b2cc445c9b6ce133756848328a8218a34e3d7e0da35ce5d1d0259b70f1cbd1e8b89052e135b6f4d1d1100d569fd8f1a30bc301433eba38fa93005765d953be477aa2d8a61ffa132599fc90bb12912eaaa44e7378b43ca416095c1584142102e8c842af70a912a71d5647a44409fb92812325b7c6c7bbaa09ecc3d8979ae6d9199b712c2ce4926ecd4c5a66bf8abe8634a9223188143b549507a62bb1b50e30f9bb04719786b5b6ab03a6f79f7b9f3eb1c9fe1e0715b130801ef8b7b065710afa03833d816f97b77d9c758004cd11c666f66afecc6bff693ce0790a65d14fa2668a0314ec1003e7eec83c017864692e15aa98476186b380ed541b82a5c49c89491b2035960e50316b3191d53daf95b8931a5714cb6fcf3a4a1ee4ff50eb390abb2e3938c57a7b9ecab52a92bd65b97f60fa2d1f283feca9445aeada4b989bc8f2d2c28d4aee038695919d4be75b5c446aabdef14e52f1f5f0e613bcfec8bdfcb9a003090f1077f7e0d489b4a6b34f7d5624ed6c7709f86c5465dd3c90aa2a8321485558dc3ce07b960ca84518d85c5c36d9a5394b026a70bc781473b3e9f67571cdbac851acd9c9e70a7562c165e504c840bb141a30da7f60f2f1ef873e95aa5f2f6e621573cc44618894b53ac6fca02bf5a7db930c1d600ee8f46a77e3162febed98f2711ae881724a652b810fd8f4ca6e0ffcfe11f676b2d4a2c515e6e50e9e8edf31ca268b55ed8a1f36900481c9f0210abad249a82e9708414da5a37cc066149c63d3682eea9da7e8ecb5ebdb0a2770d5bdfc47c434cf6f0f26e5a9102a6b071318fae618fed86a1866356dba2dc195cccf6279b52029199ddb43dca8d5d749c227f63e8fcad14c1ba343f908f04980a0546388ee3f6adbfbcb637ebf531fe7bad437e5e6249debdc2496ff7129132b5dcc776a857d81776aa55cfb2a4fbfe57287e2f59e1278c2d475060591cae36c011dc80edf7bb2ec434f152e9fb1030536768e642936a5f333a34f547287aeffaafa9dc22becb12e15b8072459e5037d46f6b2a407a201a3d8dc2dc85eb2cc22c769b00145d7ea77775023811449058a88e30db6c3ea7fae1e1114fc3071cc98870b5535a4927cec81c3a9e7ae632529199c5ec3a1acd92a1ba4dc39b6c87d575a39eb034fa7a54538008e14b919e280300f414ae716af644c13561741dad42849cd210f23cef44dc963adaeb6d158e73c9f3ec302f44902860f41ce7940213e0e77de004ebfe624cfe65c74c7a5ed4c6d32e80006b165b8a3dea210268dc23bbd0036973ca6408e73c90c7f1c3b976cc5a84f32714cf5a63273d544bc2e100125d5b41643baaa6d4aa91d00b4c214df029c3080989ad0939774198e27f7348f6ccfb6ced52146c3dac7cacd3a92224ee616ced909b511f9a08f52f1b7ca4b776eb429f93fc43b9229aef068296175c45a2bf1459a883865b843204281792841716948bca5090b5dd3903f5a10ee05b2996ac70b910f0f268cbb1bcdf853f07d62309c9d4caeabf0f932ae0c381d720613bc9c97a6e622d844269b91bd519ae65cad0a4875c21acf46612f34a60a0d42df8e56c173161c062d68e531f952b34d8234f65f81d31a35518722204581eb827b4694b2631873651b53031ca66fdb895ca27811c80cca414039d2bc06426f7a03e09ab5513402a973b81d54436a79b474b9d6993ca09fd2d1fc59c712a3c93f1e033d9e9821b4eceb0b81fd41634abbfb61cd170cd2b81f4bb265d82a247b8571663514d704efd66cdd39c732ba346696bbd6cc0d5c9507b4c94542436040984488f0725a7640af6f1c1065a55a9791a98f1a9f551d394fc70474ba1658b71d41d5b7e5342dc2852079be1ad7944531b420762178421e37df47b02b83037405dc89725a29c99c1ab10921085188f7b89050398b4a09a3c49c0ba3dc7f16da85fb1a46911a1a7e381130235924b903a25e4736de2d68b5da9e9b2628e21300207683509e7979106f222ed11b6b15ce3c38e3e0baf6712fe8959b800dc4ffc97ecf9de0d42ac1e7b24321ded5d6a751e35cf4ec8e3c091a2f3eb4dd31a3c3f450f1d0fc918552e1be40c94f1824d2c296a150c2de43aac4e269ddd2864858ceec78b2eca1efd07f641fb0789455cf3df438a761537b13b275514fdd1257baf316cec12a703edb0a710ea634fc302b9b54710d16ccccfd0159d84e4b11786e540433fcf9a1264490eb1721650dae4afd4052b82e7414b9d7d24e35ec02732e1610e0d128e42582a148234800c4343ce94d6d7e44c4ea29f3b36b2145818d0ca4feafc36f52eab738de6e08410c59cbe58e8440a07abbe3113c8e73159999bbf11315cb692941278b07e864fbe8c7ea57409fb55624e83672de12fe9258da4428daa2bd1da46023c48a62cd596046c185881c9e39f5cbed9556058d416ab959568c233a875418e2d89450079e85e6b886eec5456059fc2960929e15cd65fe202ea19040911baa65dc3fbb1ac41c6fb782739326a8e6ec4df36677627914157c4413142515bf7726e533a14c4f7bd456fd1e7636a8a4214b0f7a751868db04e6b25c52456def67ec9520408a2639886604dfb96fffe2b60c924e41a2869537fb474e103ccef8e265f18187790e587e397a4baeaf2420e21dfb72bf3ebf80cecdc962460a0112a810ca4b1ade7fe8130063ce21391b44c03f02571c04b4a3d6979c5bdd66dfc36d594e8e02a67dbff3513a720f1cce36a14cac1ccee42bfd2d4ed59ac8dd8b3bbd78d9b1089a16098e5d6f7a6fdbfeb3592b6b89b232fdf61c145b862265b674140ee1a5041b15d63ce79d5ca25e909958c46034423c8f9afa175dc7c4e657b22b1310eb2550365f39f70e58cdf06abf5651af9359ff25d296132f791d2757a56b75033921d8c2f47ac021f86c24e84b14345ff3ce8fa22e340e1f5ffe0b1ae928f6c3c5c75cba07b6ba63822f93a17b619dd89e94ee87661307eb50b1a65b9a3b225c8b5a5f62818063505d1fb4f9c217f94c9f49e6a124c93cc1ebc89a71091ff409cfc0f0711753584b39b76ed5e307971a93f51975e5b52535475c8ecdc99e42a503afc773c6a0e058d340f53f2b03d551d4c01881a01e0da21c47a8bf1ec99e1f87bf812666e7fceb876713fe85691c8b070f9f8d41ea8ec2d9110b880e864fc8b56d351b52f64d455a6df8768e00bf49d88f330a0ef43df547d8fcd2093bbc8fa3ae1a5f014f35b9d6a93a8bdf723946058d9e9818e2466376d8c3853d4af5dc4ba8e8a096edd2390ae27c09f720070ebbc77de26c58b2e39a346e9ca8fa25c1f92af02e959208b6caa797d71635e31eb5d5f5d1368a0aa995c1a3c742424ed4f964264ce391c2e0576433b774dae7358c20d5a205eefb182905b1a567b03e6466d0e9b4c8a3a305ee60b9bd25963e5bb4cb745560b76a009be3e22107a8ce2ac670309684def696de0560577d215c2437f84f9bb4fe863ddfbc4db29329c026a41c360144c45d3f0d743398822cccf0120af6e8298188f96c6f54b4073965127411d0bf0ea5ece9ae5de8e41646a37d1e7565843434569ecab11dac0114b39de1d77825d418434dee3139bb97dd0d9a999091da9cc135d6cd769517f73ffaaf9873318fa3941a4d47813a25d0308b93f80b10087fcb14558aa1565d78c38b09755dba9f5ab31720e3b0722045dac963d273618d6f4d3914d115d13e29fbc88c2ca4c52217463ed2359ef2b769abb7877817dd19a77ceeded98079cb51923c005119755460c3528e7c72d5bd2d6d204916938af46b42fcca240e5fbb08eed74a8292e2176f5319c9712bcf252ddd9990918b0d5fe25d858b8ce8a9a66b4fe48c0ad8a92f58195adf8b91e2ffe36442db0ab5fa965de52b516201a4bbae9fce6f96ab7a828bb622a0d381c15a052cc7ef268639b460e1e5cf315ab41d61783a220a250a5d4abec7d356367529b655f0c9da07aa2f2a7805f2934bc9c272b974b971555bd5c87ad49dabfdea989690963da0ea13178e3eaede7f29073b7d035285e34542dc035a1988354325447532b81c84ed1c1f2b12b7893aeaf2c67208e1c7481d4d720344ede0fc40d35357c70233d622f8e28c5b3051bc6790fdb201d11cdeefab664d5fcf1d93a6c698580113b51c6e5990231ff39887433651f684c35e23be4fe2454c0e9d2ebc612c72e6f12162c280fde11f884606363ed9d078f791baa64f500aa3d70d6032739c5b4cd4968a26f227c2eb61dff12dc9cdbae8fb6a05186948b4d2a31c1f9238d45d421508eb0265ef3a253c6518e00c64f4b77224a842c72af12f0a1ee986848748eaea390fe08144f2b123e68d6ee1b8fda0f39eced921894b220fa3b14671ac14766bc11f1bfc3c157692bd52b8594849711524182efd8ee40d44e1e6ef9b57c03531686b4b43e0784401eb1323931fb98cd3e944809ddc8ba63b9d1a5d55559881ddd9ca255760771ec1d26db91ccfb0caa1807f516e5eb664e3992d505742ee48e4457bc91d638a231766a49e327fc3214aca6592bf736d13286eae445a3424888203b72bbd4f86dc0fd8be9ab1c1c1a0db4176b6ac690a719581109d3693c2b9c254f0e2b0b1c0e6a2cf2fbc781b59b3a85a0312c683351703296b10adef5cbc1652730891a3eeb854ccf6265be3cea134671e8385cb72a2f943c94fbe6c058f925699b5a23b3b37118b195314e917e1ee6c289c6ed958ce5a7fcda41df038f6779b2147af7e7dc392626c2231aa447031c51d2581b95cdad62feec5a72ac8a3ebb37ed08839cdb606d0ed9841aafbb986d81318323b183b31f0aac1e1d7321be0ca3717ed0eaa5df2080ba03b18b9c959fca85dad513ed539bd198f3f6b7574c4ca1998147dd269553650a82103757626f9882878b37265026bf8785c247c09888833368b20d40204f48add46e7b27efca93b7579094c83bcf52b9a76c2b6142b031ffa1f38db8415719251a18582fb5b1cb3e535253d2c9ccb7137b8f203c32387e5124a12907ffc2bc6703402997e408d35601f4a4633c847d83ad82211e7d9f8291672d83d0616623e400c68c048c575ac82c9a03de85441a78a4e6779165aa1e042502aca07b0a27e92f8c1221331533f7eb41be33bd5e3bb40d4eb22fe716d98b8ec95e09061acc03e8b3b8eb9f742d6d2e38e1493a3c455a08f78808922a460315fd6356c23dcc4889b53a0d63b262ceb5b3ba31c7d00772db4ed63ea0829e4a35c2809be3c6a59c81f61941c225078d433dbf5c101dec8aafa17cf1e00d88daee7eafec2d5ce9198203524eec1caed0ec5832f112bc15cffdcd70cf641bfb737b4ceff1e0cbd2dc60d2aee534c50d23e93795c89230769c425e52bd81e872c5e995f82ff7103e385a366e7adda78ab9323b87d50216f3649a8b114eff0a5daba6c926335230c9f63959171202ec42613c2168af5b763a2124e0f8a0b2a28f6f93b216efc062a5f12ab6dd44dad289887385765b73d92de1b592121d60cec67c270917afce414eea803f893aabd627e85f8dbd0178850073deea7ee1a9747ca5c5b632349bd28a64c13fede4bb585a2827794b24a0a8c94c1eed600966e36bccd9e507990098198d7d4430318ead329417f53715b5f58708244da978fe7535c071a60f0940bec100c38b93bbbb83429ca40997671443acc9aea953fe95caa30b5dfc1633f0e77a9a91106ea86defef946159abdc4d2557b526700063a1e06c3205349b5aef122170e0fe85b0e8f1c8bc84c7d367180f548b9f36683f395aab86aec8849993800ee3176dc740d8569613bfbd7742e77254a7219e7ab8d8aac3cdb12b13f76f14cb4e3f88dc8d01b56d63e9c56a309c770bd89892de833bd9cd00fc8daefcfa096f1e8d21a083b1186689caed8a0362307d5f3bfda415124d6e34ce79b4521f2698373cd9cef37c3d68e95cd57244cc5398a7bb3371fbd61775ecf588217d1bf285409c49d2a6e7a5eab15679ee29491ac6f1527faa201aaa3daf62ab06656455d4b88139851f3d8dfd09f93917700536079c21665effe276f81cfd622a21bb3686da61514f240a0a1da8a4ecd3007519d3b7db9202226546ad092da09bf351525fdc5438ea7c96caf9e5fcf7792906d45da395d1dd5a26aa9f53d9c0e10f998b8c712e0e83296a0c8bbc3a2ab7acd5f5ce23d6e9418c39d4d41be3a5974b88a66139556faba0a1247ea404d164945465d953a45e60b5486fe2c76e1d7b374e8ee0f486d5ab48b34590a543cd612cdf4dbeea552b7de434c01842f2d366c32c518ce77a12cd4baa735197427e8ac1e07954c3599624a00add8ee4ead199d6ddbebcbe61c5456ad011f20a839aaa04a6ad0d24316b4db457e232e521821164e8b57969002c740aa388624a61030dcd15f5c809aa064f03b1768f1792c33faf2a8a71cf5745bdc001589542402c8dc0e8e039d9fb813d66101935b24f54478237a2cbcd13d165e910e0b6fe8cadb9d464583368d612b88eb0d908b59a6550bc3e5925e1637cc615befd8dada75936074a58c41f5ce19e1dc96e11613cc94ab42bff4b3792fa23104a10b66b881cc60a67aa703b51db234728394cd7efa9a2d9431ccbd0b3102d72c4c2f896c3385e901a6c84ea60b5b49790a7d838cb89b6d16d00c45229911db6b33225c151af57a57e32bc5583b2da8584c04e9b2cc21b30143960768aab6f3f0018fe2c328cc44f6b7c98d35af2dfbfb31494c2af084fe7e58453a6136689113ed10ac5b447c834f48806d6535a2f8a1a6a7a18f9b988e7c38cc034269960ec29a40615f17fcd00b11ce19f349ee353d50449975391f1ab9a234475a292db9c2731ddf5de30aba8918b03ef043169f4d897991fb9df32dfcd434b027f239cb48dc209840c1982b2ea209e19d514126ccb808fd82b66fbc90f5b5cb10030ae60470b7bfc28e252ff14ab608a2175350aaa4b14db4b81c190adcd522fca9f5aa99305c8379e63cf41775d6220e549437689e178fc7858958db9da3aa48556ccb907b738cb087f5544cea0a098ad3fb0b20546f59a175a2f0fe2e094b85c12b82d9b7019e72a47cc022ad0742d3e0b8e6819954b04f8c453694caf510b44a2c28d88f48d15595026886f624c3c72cf19e9dc34d4f0978213fbe145577787eab3b7ffc7aa503b2b034812904616236e306f804cda9043ddd765d423ae374b1e88af4e1599709f82a35525505f92fcd5233782e5f6ed666082855870e8a1446d4801d8e738b30db829ecc4749557306d4f0719256cc99089fcac993d16eafdbfb8860e465c255f7b19e23a5f07c487ef41f97736b61358d1d5e85727a9a6666aba7501f4a5ff6664250b8beaea1185ec1c53f18c76df101391e8c6f2458fe1ec375fb5728c5b4ce32560447031d2df815004c9facbaf908768f4fd9003d46d0d82543bada364cab773b734e869cb7220f416091e93b6c256be045612ddb8d284999f87409fd2a38854343b81f95758caae8f0a03d49b6c2df6dcd43dccf78c7020b139976910f20419e8f54be29ac25afae9af9500e244bfaf597a537d0d0f04b9aad9e1388ba0ba4e9dffe7259b2e21514d8684760c0a8757d3c3078d709fc3c2533bf9aa39e5adedafed8488b6d43867deaf57273f42c132ebb8e13fce0cdbd3d417c72676bb822993718a488896e38562bd2574ae04a187e49f7b71d9a58e9d90d876bb8c5ffcc6ab1210cbd3a2129f78c9266a107cb5929fc828ed55ad3c5281d8225e898cb7b6e593e0be6c731b98e4f8889c7853f9b6fca5db4cea16c1a9821f749cbea7b219264becaab1b5d9557a09c1158d38db1f09785e0e5af1cbf59f6fd5747f80d6d8da5a3f138566ecf50ab89b939b4e5ae3987ad4e89ad2705fd6532e08cc510da06aaafa9e14d29328e56b00320d81819596f692781d06fe1d854c25d00bc58a6e6970daf612e9c0f352cf92e61a0924a84aaec23ada1c10092ab9bc5c88ccbdb6ce37f50c2039dd9435a101e8548ae90f78b8048989e4854803816977a5a76612056c86ad8d95d0fda3268d397ab2ec71286cb9c1fd66ac0ea3b440db328fe42f49520e9258fdcf713c4263bec872f92a919838b981c7d3296a691072ad99fd195117006e129b02afa1a29b1be68b5e0fd9cb1743fd426140ffbffa904eb01f61bf0404b7c9c465889a4b06e11ab874e539e99149ebca99ed85b6f1848f630b82f7e82c631d481c7d2e5226249507865f74be8b041616a30f011865f57d5f0906574786d046223910f3404f315ceba93ef40f69ccbdcd3d352818ef3d311d1aad8b33e2d74b0bf93e472c70746537b7d3aa0c8bf8039b4897e26a2dc176f157dab1811abec7007cd966c2c70bc08ac1b167b610bab2392f62345a7f69a420fc7f260c1b9d2bf26032ca82e22971549a8e3268cfe4298636e9b077658b36e21bc28ca9f44ee3764090ff3859627aabe75d709614cd401914f7606dd8579d093b7d7b5ee16b930f1056e6471f51cb0842804a098ca7e80bf1ee48a25759001fe9cb796f3c4f83dbc76a8872d3eadd2f1de44d0eebdb0c82b66dac553ff0500184213c1bd3e17233a2685cfda3d838b1d8001eba0a46be31646ac3cf6a6908cebab4ab17bd5e90e309c12a0f9410a299645a4909caa12205b34c36e001fca9573c4fdfd97949fc0acd7e9e5005cd2f4fa6109a979d834ea33ab6ce43d8888df643920c0ac65ebbb6a1dd608c83c74e8789b4d7381fe35b914ecb67db36b5935470f6c1cdcccc7d1bb27e909229bb7636df9426136ab4f623a8d4ad177a076162113f1fd99256f06314daf1afec9e5050847e8b591a4693a27364438bc1442e0330ab09d096968c5ff3814ffb8322246d7164aea80b770f5205db38117de66d141c19faf0c520f907322054233daba06c98f7218893f2e2e0b19d0c8c8610bfbc5c43332d0be2fe390c4a5f34812efc89a31314cce1d56fffa75043bed30dd51af71a8b64af1b37b328f5533db431645b9e1a5038cfff7a2539802833716de0a217e96a9242f5553693c53b6f3894ba7013be6f6380c90346f90bad57bd2a5e5545041a5d0965bfa7df84c36065c836d6e30c44162943a047a7294723ae4f30a022a6119432687dd380502ac6107287dc9e5d5ed6d9a46e4117d933a3cecb4d30e94578df02031e0a2df8d8bd1f0ed6d9c6c1e27a7919347076c0bf95d43e80aeacf248ef9e70bbe08a302183d1f41771add951d44ea451867bbe35891db47946611ca9e90b0870974d3f12c789731b6285423b9f355a65ec1b3dbb25109bc90964f2cb244ece81bb981b8b3a345c863f1f03713734cdfda3c45ac224b35ed631f2dfeedccefd4ced85b9d94cb868fe2542f2aad8ebd9fb1534926a58864a5f903b8bf8cc20b643f00080177c0163c7ce1655e38765fc927300c3b0ef5c792beaf9639908f469826f8706ff90059a87a52ad9411f9a59007064395afd3cc650b7a76f8571084d5b8222680b9f384e850f6654441742e8c620ea7f83956461befcfc25892b5a5b4d6cdd502986abb400d04a25d73fb44527b005b90191c51d839ce3011d946a9a099deb153f9697f97f759b48cc0cef50a8bfbcfdc860db77248e59def8e2e3f2aa4d24b77f36e7cdc994c84e811b1bac4e882db412303724fadf4cf51c612bdd0dd8bbdfe7a7927be4817984fb836422ad6837c72631a32fe2931631261abf69b001c605c3bd0563bf56cb4da23b14763cfc24197f211479a148696f0217e0838b77cfffc8f4b3c63e6d9b4a7f1e42d82428de819b08bc834d3bf0b25d288892d1e763f3abba42ed2f1d0d91563302fcadb1223cb35b4d81c3e7748d7e4913b84b1211b51297790aea41f2a37194b1275df236ffc8c1044dfc6f20d76820748ed19d49eee9b87c3f64f402be873b4a2f5df5e3b5962cf54ab03c151080ef2a9f3ef158a2f9119ccb31a4a447eb1f4e4aad3f190df8ade4e59a79cd0449872611e42a226ebbdc8a3e0dc450ca5d59c61c95154d51e6c4d7276c746aee7bd2eb9c83479ba96a0d7e3d8a1e27e9fe81e87533387ebe2d3b488422bd8a69403cae6a5bc9a9355da1e8a91b4d4b96546f3e555a4475f24186b64d1e29c37e0c352e7acf52dbbae6e936c3f2d230ca8113bf4652869bcac35d2284228e1730dcbb5664152b0cc9c6bc5cce254f4e7e6214622ce5c7bc77637446a0049597e6ed1a8b43d5c3f0cd12f9e97b8c74552af6bb0b63436bee97e110366fda227174395ed05a5d058280dfc7872205304fea6bfd1af094d123fe111990c498d6d1f060bafc290907a5c8afe6064a0a05acf32b1a562e21927b7a2ed455da23cb2bc2b0860a0fd0059d4d700f7eb271df7d4bfc6109667adde0bbd2d599e7edb098c9bfa052cdd8eb57618047886fba00d7da5dbc4a86bdf0cb9f8ae691349c53065f10a336407d942d6f045475dcb386446582ac24cbb5451c0c71cb4c86a42c491594dc97c9ed7fb66cd838c9d900488993567fab7b1d01831e1cb40b1b150d30438bbb67e0df7db78f62eb4104a1b6eb2f4428707adc733b0a24153cec2e45fb97cc3d944096ad7b41dfbbe4c35d408ed8413eb8a0e2ba9d576e31c1d003bb19d2f8eb1f90ab87037033e3abb452cc3340e87990511cc144a78902f115b1a2fcd67e3d0cae0c0447bd2c67a2c82e6d734ba4c8c668976287c1d5972f2c2466076dcb319c528f4df67dbac26f856482a5924c976ddb55cace3efd404a44cca9411ecf8a1e15362050b3ce1afbc526bb221277d69ebf7e23beb42ea7b583c0a503e6439612a70c97d1c38d9515da46af512d2a701ea127344b081c5fe11ab69ac5db46a28a0016422dfb5a95c8eb4c3ce0d9f237d2d6c5f2ef8d17fb87d0f8ddac525c715e01e00008ba142e2d45cea3267c2a1aff5f9b4a874785a20f74fd744d0af2d16ad3c822e5bcd948fb50ade323e68c8f715ca14a9f24217b1a8b8152a9462df43e351753eb37b0f2a8d65937c6da497d5bb2f6191ba8bfdc2c1652c40b8c6c01ac2d6032b40ccb8c3312b0eed86e486eddc228c20cb709c100bbe2568284a942261874541764fac7babb939f6f8681155b9a1d9b531d7080974f203442d35d56531ce2b8d554b227341e1c7968a10e5676675450f1b8975f863450d6d5932bad1a2812da0c8bac3388a7721981d12a51e3ee50a01cc81820673ae7a0babb36a9e714dc3d4a56a62c0988b9fa24632bdd344bd8ebd99dff77295581774fda228e5a3515d07d1dd4722d4539f79e4bbf37f160ac842538a11cdcb08f8582742b19113c460c42efbc3578d4840e4c8876251536ab010fa968d5208d217b073bd187fef2ca0308244eeddff3d9d9862fc71b043dd5c9c3a1238d9717ab0e4af137781412e1354e40d67c6ed728ee78211ec44815c77e75e12bdb3b9f00c2b57c93a4733a5727c11c8e57957eb59453799d12883561bfc937da11836308e6f61674d3e5c0643117be2335172e2e3d871efbeb719df9498f484d705c4f0230c614edf1c39e427cf4c2cdaa8c94b6c84df05d72c2c188e2254852d0b2f260a19d17679902a262cb58d9c1bfdf22e6234d7856e34d6a797968f73551e29a0f41ba63974c2843af00ed7dc668ebe548a96d2954c7f870b2cb22856d46c4b0cdb0840c488e8cdc7b6dfaa8156ddba1f80b80217350c7cd2c11375aa7233c4af3cc0b3128e05196b3a1644011e6daea862a4d2d997b720e3bda24bc9957e2c00e4ce69f58bb8d7f8fcfed12e57fb08af3276f00b2da37a3c933e10218df84423209458df92bf3339d0c469b81c4a462427e810155597a3354ffd617d3d0daf87d3b7028aaeedb8be13140354be352cc56f8b82ca1dab11cc18609633f4ff2d927860b5e7f4ce5051481e4e32bde4f1f5a720cbfe1ac689a26b416f9a80b6be7358ad6170725005549f821bba38f3f0280790b3b1a07d535f0116738ef7f8beb2637304d432ba6dc587320595d84745f8ea47f1301fcdf5014d0716b23333846951616709913b4e9a81629478dd915c7e1a70340d59d73bcc3b9ce08e91c247f20a674bd4410e7624850daa7e96e4e5269e58a6fdec6957f899e4a03f7c6a92fe10fa0c02fda5f4d23c6b1a637f2c291697afc2dcb36b9a37d3ec38683e66670fba934a721be6c1bf72a545accd8985ff5ffcc34c7c1b51cfb9c0b7eec8bd5f3dba38573618245b4f8381283f5c43f02525db84628a66ecba409f4d49da6f5017e4efe7e0ed2b19ddc6cc2117bcb07495df15d1aa494c79ca9d51a139905b2da039bdf7c50a215ca498ee209d228bbe5edb702de419d252959bcf4ac6259154a3ebebcf226087c9e8c9338c5b15c5f28bba23379c226563b39a97886c3aa2e890af47a2df29b4d63fe62965d7384143932d5411da10320f222ab4e40b344939cb7d783a2c6c4c1645282792e4021934401e29768d65ccd83ef49aba0ebfdcb760a8fe5a259fe8b7613ab52ba5e57483c7fb0b6a8113fd607d531a562790ce829ff4d3582e0c896c5b972e883e6df626d4dab802802efe7513047f5200a7705cf899ed5ca448cd973d241f1dc3af578fbe1cc43c3e4031a30308c00bb93927184cb8ba5d0524b698af48b7c30a976a9de912d72e5d719e105e02b6c285bd1d9cb61c34c3d1f8c01d21a0e3ffb4e8ad25cb6d29370fc48275a529288c029d7050db7541fd47743dfe4552f53e41d802e0d257608b34c96ba07c92a90ab59d95db2158b0c859874e87f6575e3ea0838f3584951d39294166abc8774f5d1719dc17005c80f86984d2fdb539004606219e6c31979cec4897e43ff15721276dd62b7e98c7a39259909f047bfed70262dc6c5f83cbbedf367c5e42a55ea03bd58fc54e1bb459c012a53d0ceda892f7acf5bda31463a4101ffad10780cceeba96edddfb64cd55f05c5ec26e584bc201711ac149397a65ac0adf8a5aec8cc9e1bffe9f3486a6ee3adfcc209cc9725552e13e5928bb88eadb62a9851c03b6fec8111dcac363f1e5002250a651811af9740b6745368ab3366c4889b47001416d0943b44a951996c8d3049d46d293da7dde47b32f6741616b5c14aab41ddc4c5c2eede4115930057bf5eaff642ec9e7215410a90a55b6b56850fb915bc0955413bac6d0fbeded854c10aecc337e79d2b5891afbf7b32d040a05b63bb9fadc599c4bdf1e4ec7e55e96647c0cea0b67f0c6f4e21a0657f59aa927599d61899d5830c8ae23aabb988ef89e11b13b80d91baac1ee8b6c81d5a0a47c5208ddbb2b50dea05be277d60e1a15956b26aca3c93e79ec5362c54c0f4c2954220be1aab2418854cf24fdaf96b91cdb65fe45b2b60bab73924c1c9ed66fb465d6e636ed39a12ea33587d51217f9ae3c6bf752662d99936077a0b7408ad2e78162557cc903bae2a3dc54209024a50e9f2705136880fd759e7727158c464f42020130fc2faffbf17a6959c1c08c8c2644374c3547b3d5f24609d329b7b45b7128d50d14b5b28c430887128a6e2529d256fcf362b67b1b244dee2de5de7b079f0d260e8f0ddfdb9ed68705fa6b2d49d74ebf6a29ddfcb56baf176825dd94e376343259e4a3913eb06646e557af5f73582ecb6833dfb39a0832f3e9ecc901139111254d2a301471cfc867f23d27b3d2fa5b79cfcb5fb39404b2ceaf59267e65d55a7867a33aeeac1bddaf3c6702ec13fa2a0812024d6e495dcdc567df59e5cf0e8e11b31b5b4d5a716795fef99d6d3a00529484ddda979788b8b3cb25df59a6d36b6e2d33002b64007688cd79796777581ed6e7d7a004c4ad4dec8d0a5ac418e194044c8a52ace4fbba34c11189b524308c040112f79569268018257c808e2879a2c47d0dfbb2efeb13aa566575f3b0327908f2ebcafb5ab4b2353720d64c7005c11af26c92ad6b1c4e4e94efebceaf2bcfaf18d4acc7b0f5abdac4c65d75fabcaacde76b8a860445d34fd891acb878ec7b1a1d2372e247ca975412a458ecbbdab3066513acfc8592aa6defa68d73bcf212985862b2e116fd3ad213af61bf7298bd61658011b92bc2c952c66b925f4338692d77f804a9aa9114af60bf72e3baf25e92bd59a31bb80e0ab5aed15a6bada3ec98d80dc1742dda046bda39350ac60cb9f72854877caf20c438ef7ef8432e1cf20ec3a15e6aad7508afa5d22b9d96a169ae3fd000d020b48f1aa416598179b82271c5e335e757545ef322d6d46b6e0401f43aabf9e4c6ebacace86b2e02a8d71c055a4c5e731b8cc001f27a0bfa9aab3dcee46ba78fd7bc8d7b8f3ae3c05931aa50213b647162d8282103894487f22b0be881e905c28ae74d3864b5d65a87e8713666a5ec7aa2ac126bafd7413aafb590d7709fb046c813b0f26244f9e17098c51cfa216fdddee3506833cc42adf50e6c341933222369a529d6485e03ad78ad6d6a725fe3de0de242ad35af09ba416b5175932e32e8265d64969363b237e97038a4bafaa1cb0f87544a7e58c554850b3710a518ceac71abdb069bb6f7a89d4ba4170a79cbf61e8543e1506b55d51cd64275afb5b0c646187d8fda7964c90f791ef296ca7b1c46b34dce7943ce3539e78cb5f523cbe42ccc99ab3d6639e7ace6615673d6f2c912724feec939e79c6524cbe4bc61269fb98b8bdc30e56d6c783be53ddad8d8f076ed3dda68197d4d0d6fd5de634d4d0d6fa5bcc71a28b4ec8542de46798f42a190b769ef519885f3c3216fa1ef71380401ca7b1c62358b5e6bde3ed16baf79eba4457b8f59d34802ac6912870026406dbf33af1f0e79fb7c8fc3a10defe9b2264db24306180c3531a2a5ae38242d364b6a78abe43dd65c0df9e190b766ef7138ac8911f6130a73d9d5891f0e794bf61e87355c1dce255b6a8463ef7188650525c663d92412171bee1bda0cb50b15a7d7fa2c6c38ac3900139b9c5953b9638c2bb9031edaa8354138e921d87787608739043b906f70954c2a3e6d129e93c88144229148241289c44c2412894422919873ce39e79c73cebc057b8f397fb130f27a8f1a49d77b24b22c11d6e7cc7d442191a85588ddf4acf0e20212893da59ed65a6badb5d6422271c85be77b1ce69cf356ce52cd136539e79c62cae74cf499b75bef3113b54a5423084fd4782291b75aef91a8892a8c9f96e150186cb3a44ee43c91c8dbe67b240a55a25aa64624f4e36845d05a9c57e767df9028b5037dad798bf51ef50e71f883c6415c3dc9213dd18a98738663f1e37467761764eb0a9108352db34a7503415583340ed914396972c9b4bab3245a9f5f3859dd6d8da928cba282a42014d6b45343bea60458a5d8a610a2f410b98024595b328cb0cacad66653a8aa504f712d884f9ac8b2e91299bcc204888f1f683b806049a1200c7616172b42c4e05cbce630dc942590a8d7b5033046fcf8727115656ebd62baf021f71167d6b899d58d483c6284e5e9adc98a4f1198484452b98087412722704f24f276c87b240e53a5302947d388e619518b382b1bb0d6425637222134e955af295c63450b7138dcaae213f654452dc87098752ec259e90d3991fb86c4e1b0a60522e42dd37b149a5d6003b3c0167d6acb7acddba5a11ed62085550860ba38b3ebc1f34308732e86ab75cd8ff79885bcf5f11e856c4f3f1cf2b68716aa43305886c1f6896d28c8238ebd51a19bb8b770efbdeebcd7bdc17684bdf7de43be372f76d87bc516069b5f424f24f276c72612799bf41e894aa5178ca657db67de22bdc70cc34ca40e98489be33dea216f71bcc761abdc4420226f261e3591b4f8bde1376f6fbcc7bd9131aa5888c43c34eaaafabd795bf41ef75e5718689bc87d7b666675dbbbb5c1c295f4d535e2356f89e02d1ceeb7c7055d8c1f664f685575615a48ccc31aef31b749ae1716869cec4d2fb9f46eeaba2e4f5d1e247782ebbaacebb2ae4bc36d715da1cb3b1863dc66930b97c5755d9eba7cc33fefbadc451283fb376f69bcc7bd85bf792bf41eb70acd416a8410c4ec336f8380ed0c205aaf79d6bc95f11e75f61103f91e5dcd12d9b8283959502a215370a8e4705c228c16489b3599985e0331f19ab73fc05449fcc01387d9dbda13b8a9a9cfb9ce4849e4adcf7b24b62c91683697b65ef3f645d65a6bad75128a4f2a0b7bf830d1f411d6fc81f499b72e5ca2ce6a5655640da41662765b347bdc78ad79dbb314166978076e8ca169f208d1f86868686868686868aa964f434343036d59e876456ea6e8f139f35645cbd3a6788f343459c31a56bae9968fa62545603dcab6a4de5ef30f728ba23df11edd2721e4b0dc21a74dafb42c454bd5523a13534d9da68f6689299fb991ea73d344db557307ae7902eb3347818dcffc054d14739f79bbf31eb38b646f549c5689bd51a14aaf726130180c06834135180c06831ca6fb603018e45866265e6bde9a788f5ab725b644609525f1785e68e5c06973de636e49bcc7a0eaaaca9cb30c1a2db91d4196f6aecb5b11dad539a7411a241111d68285d84ed41c9ba66971eed0e09eb0c69ab0c882ec5c371d936bf2ed3a3a154b4c49852b499d7455e5d24f6bade79428df75b996d3db4d80d1d3082a646d4d2b28284d30c7b95cc3bd4757498e95ddf6b43d5999952a7003720676a6947514e7a7ae24b20d06b3a02e7421bddeea8a222982e4eecd5d957b078305c83a6e2b97ce6b2eb02aeb9a5659a15624d4c24a0fa9659c84363627112793a8ab5d9546e5c135840ba9b6a2241e2725ce2325e07a127901f5e07125ce463e3fb5d69aca7bcc41aea7ac5b736b6baa14122161cb68b9e5440d6e71522405968aac50a9d2c34656c40485d54d4a94f7b8b3ec7ad25c9aad64cecc17d49a0050154a56ddd2bb2ed74f34329802a5e813164f35aa984e753f7bbb6ea671f21e73906bb4f718ccba724687822e4913a01bb4830293ac2b35de3d0b22c59c6f3945d2ec8aacc4598d467207734e95cff798c93864c9b5ed19afe7ac2c014675de280892234d475b53a989481d899f12b3f7b807b08100641da0b041b15e7338e73507ee78cd791af4352f46892a33baeeba2a836e8b675052f389912543c25c976cec3d069facbdd67c43418ac16ecef9e84e486bad735812fdbe3a2ec8755d57837de90b298b974cb3ec738ac664a9494f931fad26666845684a394e889cbc7de61b78f2e23317c113245e50d7d599cd3968838e478c6847d991382157d858b6ebaaaa46d2657696c3c359122e56396617e7f42979d278fd6c6eb934ae5cd85a3a6b37a8d3ae2b3c7bd364bd47dd7c8fc17c41d841c95c99d612302cba1319aeacc8becaa694995dbde6b0122326706f56b3637545dcbd334db0bb4910aa3215981eb313d3224ba25596f49aeba934a74da290b44579253d4936d9f8cc3f70b5ce5259b76d8adc6919db53902173229a6a6b901fa51ed0185c56435120459ff90734aeaa12204ad550daa885af3b8839c5ee5e73201fe3f1647c3e5fe735afc82027aeebaae992454b674c4b6bc96bae8f0c8db918c16a51e35d97eb22ae6691551220ca11e76206514f14939db3e7baaeab9d34119dc5e2492bcb39c475b3d61a096b0baf85bc472dc1178555b68448b3d9a4b5d6ba86883788ef82f0eac5868157629f39c7ba01a498b54ffb94baaeee852904104a3ec8b9997a4d41a16ad2a272ab4262a2d062423ff3043420f30940a5616debbe404922ca13e58c478e253ba1093f7c68251a83ee10f5a4ecb596827a3d957cada78abce6bac77bd44ea79bd59c836362725724c059d54a3cde63502b6ac4bb2ed73b5c570d6a5ebc0b7b5de1b54e52853204600a60b9fcfc74e22949eb090b4a470b2a0bc95555a5ab4415a4f97397220dc5fa238a266b1d59e7d05af27c8063a99759bbba4acec60a2ad12958347cd4f87ad1ca9ce4fde06d096605c8ca9a95b9cfdc08e77504c2dd1b8691961b79899210b2d8e298596dcb1359559a64b94165bd253f736da4a44183060d1a34a81ab686cc7591b6f11e35b8486516621187434e4ad3892ae2eea9a712b5359a17768c0977d8f148725555916f579ae49c4118ca2d8d1d3d5a48e79c736a02143a6e8439a9d1e2488fb83317554506bdc73c438b69a42045a425af3930a949065795b232e7233b9618592375b4bde659730d23671a554004a0c9c1044c47d34fce39d71892697048799de3c80b6258d8d89a13b39e3ba53a33a08b1619c0c8401c9df8ccf3d65193cfca11ca301c3f7a78419ed65a6b0d0134b61a563f3584ce62cde3b5d65ab35861b644ec458a48cd8657510fa31ea3b4cfdcb86574f779eb46d867ae55bcc72cb7a285678b68eab5e61b4e01545266b9b0cf1945b2ecaac68d1a77afb93e9175ab27307442acc759142062eb8e2125bdf32c005ad75710744b0808d0160daead21a6dfd2265410d89c2e74243179b558935ab0bc4ce95297e872b1eb9ae17ccde120221d60de1130a233a56cc695b7ae15c94e08cb1a71b7e1fa6eb34c81130a671064174e8cb8db38bfdb38c36ccab6707cb779daa0a5d918a5d91cd9f0d8f8d804fd6a53a4f4406793f32bf7b0646f5a50e307d9561dd20d2ddefaee81099306a539e58992e55cdc3d687df700dd8af1dd43d483db130f459e7838e2a1c8039287a5b6ef1e9c7ef580ec1e92cfa8079c1d1e17df3df478f069d2e1ab4987241d9c7ee51d961da43a34a3df3b78fdda41e9d70e4dbf720e51f6268d5e81010764c6758723ceface216e47e8c74f0e2442e08ee2dea1f9bd033259a4e27b076507a42787b527072a1cbc389471406bf29d83daaf1c98bf3a7fe51c76d89bb5a829ce0aeb04130eacef1c9e5a543098537ec4883b07e45f7de790d4d9d1e4126a72c4622cee1cacbe73506ae2e0b495f39dc392839419071db35779e760e2d70d6abf6e886e70a3b3facea16f78feba01fa2bdf90646f2c40e3476a87058a660f96f97d8332c4092c1a76502b2daa1971dfa0c4567ddfd0a4d60576046cf9222aee1ba8be6f603a37786d08db5096b541286b68434edfb0c3b3c1a76f0872c6fdba01e7575ed3c4dea44f6ad080631b027222c553df6b96364757a24077d40df98a7b0df3a5bed738616044ad8e3963c9d732ee3551df6b9ed01a35ad2adf6ba2356e456a988ad404a909aa49d614d5f49aa57659d3d36b90bff2a293bd615124bb925d558c2063a8efc5b0ab215c35cc9238a0c0887bf1f94fdf8baa942833e6a8c8d8f123eec5e5f7621c4eceafbcd7ecd4f0b449c5ac36a9b8555cfab5d854742a4afdcad35e6c8b6d51e9574e84b23720300ac2d38206598ab3983df29d1805e2c2892ec9d2dc32ee4423df8b3800a04b128243869d0da3b8178b7c2ff620839c7c2f268b452dd1494b84426c12bd886508f84e446b89cb96c8fc951371d81b15ccc50945b9a36222c54edf893b44640986e0989c84a0fc84c59d48e43b51a9445c2236119d5a1575ad8a3b0d686a6ebf6aa0ebd110d6f3fc956b40b2372e33ecc076e8c268e088877cd790fc6d41d901b6c32dcb2bee1a9442be6b5002ce280143c89619ce57dc35347dd7b0646a68627dd7e0d4e055a7e1a74e038c219d861c0d3c06f8aec1a7c519465b9c61dcb069c81c863dd17e1d427f1daaad0d93d6863c863ec3a0615108df8748d1e14e1ff6fcca854cf62695cb6a3274b6e543220ef25de8fc508743896487ae845bdc85610fe4bb1086149f1b4ae694d8e2e22e64fa2e8c0ae384744ddf8738c31c33e19499b04a88245c123a15e0bb50ea294c0a95bf729a277b1382e76c280e0994c7522a5efa4e03a5c153101b9d92ae2332e24e13fdf19d26ae01657177443c4f4ad4e22ef4f15db8d323f461fa2e440a83b268ccb26896d048d13469bc08f09da6cc49d38443d3439354d22069f9f84ea344b35424f8562408172c0ba2a90de07bd06d19742ec37ee5c11ef626659ba17cd24545841b55dce37b10a90c362da58ebe0799c166525045d2abbc0759fc3ae3f6eb4cdc0c5d30e7d7208fd20c54696646c9dec080476eab0b8dc60c2ea5ef332ce811b4240245460917719fe1f17d2665d349c31ac1c3c34922ee333bbecf38c3facc73064d0bcd1869a199a3199e199f99a09bef33453a3983d3677698611c1ae56e3c8ed36915bc8856c18ff0228ec49740f8ce9d7a38b227f92bcf10c6de70406808902a493b7434e3a4ef199e19a2bfe67871d5f4f1c3a42dee1990be739c1d9e15df790ff7a9cbf0953324c9e094412a435300df3378e90c4a3a43d3af5c26cade84d061244a5d130869c22866757c978983fb3a23726745168d7b069ccff13dc30e13aa1d28b882105d99887b061cdf332093198a32283320adadad5191f192299341fbe0bb8c5a54861975feca6576d89b102d4a503939a38060b8507e97e949ca2835397599a58c543693d1c966322630a86170c3401780ef32394f0ccf27f4578e21c9de50a0a2239aaa7245457cf41d831243130a8c38695392319539e38e6179e33b06a6d32bed3b86300c65631884f21886210c39a91303cfaf187c302001f01d43908bbce056c3fb05baa5f3c253ecfb05e80d1cf70b6a531798a62e04b910f4eb85e485a20b481ebe5f58625ee859798c93bdf941f972a2bdbd91788b097b71e4966465c98ce28a7bcc33063ac16bc96dc9a7e82e47dc63a231713839bff27e61e7d70b3c4c31594c5bbfc62cfd1ad3e48b7b8c538cd4af31cddc14a3ec314abf720b50f626448a1ea09c2a3c51a00c31fa6e21bae168ee499527c8a9b7b85b882bfa1e83d364d75642672dcc088cb8c7ecd8f81ed3838c09ca5a7e8f49c6141959706204c542f3570b4e0b5e16ca84df2da0650bcb6c8149c38259e40a90ae1f6344df2dec40730ca9eb91c3cbc849dc2df4d4f86e0119820412890e9194312124e26e2199fc6e41a9d42d345970ca3f15eaf24f85bb0a6833bc57805650732b7eaf4087ac10867cfeca2b20d99b103fa858213205c98cac23f1d0f70a74388ca03aae4a98d1c5bd8292c6f70a4a6f5871d1276344b0a2e25ea1e985be5758327b05e7af15bc7eadf093756000e97ead805321a7020fcdf70a3e790718cd3b4aec0d0d943776441189e6e88883be039b7e5d6bd3724e89b0411577e0f2677c0732532f1952804431d276c32bee40a78cefc0b02710ad03a14035f60d98c4be0179007d8041c0a25f814871c09d0eecf995c330d91b0b14e14a6a9b52dafa89637c877112492942ba1091838451dc61c290df619e37885272b6f374538ec51d06fa30bec34461e2e89abe037180394e60a69cc054c120c9f00ea304b304e394e13b8c141426c9c2287fe52f4ff646c25318129411d75251cc027d7fd99281c5e4c5d65c9267dc5fa2fff3fd25c4511b138d222e9453717187f1f90eb3d303e303838409fa7a31fb7a59f222f5eb0bf3a5f9e225f3fda52ceca589421c7bd380280ba1b327413884c42fbebf5841cb19733a13f3318afbcbcebbf8fe328020ada437183372f0c4fda5c5f797a412e9579ef617a597a5a9b729380a659c770a4f0a6814d4307ca7e0c6a4e06486fdca29f4b037216c34e958e6a8d3e159f67ca780b4c11534850a203a888ee24e21c9e23b05650a562662c5db32aa2828ee1494567ca7d0b494e2f19d0293429365a2a08265a2c0c2c52d03ef2e712e7414722e7ca7c0d3e4027589b2373a4863e2a20459108cab58c57717250f539c388d1883d1e4197797a6e7f9eeb2dc0155e48755092b19397177617e8aef2ece3097b2eef27441337231323a72e1f99577971e1f97a098ef2e45ac0b0eebb2f32b9fb0646f288cf140bb7a02b2e2448ce2fb04e6cf1042a7e624874856dc2738c348c0c40946960b183d4c719fb0f37d02343ac1ede8fb84b809743f138afc1c9950f4eb04252fee1390262c59f83ec189454e40feca4e48feca7f61ec4deaf505a3884aea8d4846cc9af8fe7b3a3d7786a243383c70c4fd07fd12df7fd1a8dd11940a2b51263ee2fe8bd3f93e016787e727f44cf061757e5fac4e929fd3afbf651bf79fd4af59e1fbcf8bddf929f55fd3af5c4294bd09d102ee696528c896ce539cf35d429c180eb6145052a488e2fec321f1fdb7a3031a4484be56d05d19c5fdd7f323beff90c95fd14ff9435a5b5ba322c1eb57096112ca24a001bf4b505ba312a46cb8841df6266532f9e84072ad1161c622be4be8f975ce4e286d4ce94689b84b403e8bf35d42325dc264068e13514e28b2e22e4179f75d8212f2bb8426094eab99049dd54c820958edd70e476137ba09df25e43ce1279c646f62462cc1e13564c9d623b6fb0eff109a42e56a6a06122aee70dd77d86955865c438a1104177798ee3bcc747afdca53b82c0b16ca1a8273e01d37ee300fecf3fb0e0739e3609c5f798426f6266da275640d49da0f27a3f8caf70870528020cd7d55a97211f70873df23e040489b95ae1d534a92718f20f73dc2131a41adab08dcf708d1086e6b91084c6b910841220445288a8024e17b84a565849e1e01f92b6f71b237a916108ce472ad0af447dcf796b01aa42da5512912a4458eb8b73ce1beb740a1624d7e849db539e1897b8b95ef2d713839bff21e61e7d7083c492d59495b2d4bbfb634b538b548c1df5b9aab528bb2b728fdca5f287b4303b133263548f4b0e28cdfbebfd1a611d1afa715d34adcdf38b7ef2d38ed9153d5db5559588ab8b754f9ded2830c7afbde92fcb5a548e87522f442799b31bcbfced7eb2d8bf0fd454bbecbe4cbfc95bf38ec4d9a66430551db931f712fde9da19ddd1b141e4a4149717f7b5ea403aa603da77e642487e2fe265fa5d2d2fb3aad2a58ea561577bfa2fdca026551736bf9ce42d7c312d6c3f2fc95b320d99b946943445490ac3817686ddf59924eaa9e675d6e3d521c893b8b92ed3b8b52881a5b45a2577eecf0008b3b4b53f43bcb92c9d22cfbcee264f1aa63f9a97b95771618bffae87867c161893b4b0e0bcffb9dc5e7579eaa2b8e127b1342a9870da616289e48bc51f9ee6b82222249465b89a710acb8fb9653befb987663497420d9b1669722ee3ee7da775fd8d387d644f2dd07f5a939f125a94e7c3c7c3ebe205f11cb771f1274adf1f1389fbde8afbcf7e23eee3dbaafded4d7abbcf7aa7a48bda7d45bea39fdca7b4f2aac974c9f00bd51318272f5e416ab7de7412908bd612179bae9b88b3b2f2ae53b2feed76454d4468e2039b5b8f7703ecaf7de4e4fcfc788dbf71eb21734c5339b5ac293fa95c75ce3ce6bf2bc7ee595fdcae435ed38f6660750749e424a5f3f6871da779e958da01d4facb00111c59d07fdce93c224c7634e8ccbc85bdc79c887f29d9754f290784abc25a6fdc6b4e176d946db6afbfb766bdacea61ef6268411273e6f6c5d4378e0889ffc138b2947ee58e8b8c57d27dfc9f78d24c24a0f265542aceee2be95d0beefa6e596daccdd34da2a54a3cdc27573e976ceaf6cdf378fd2852a957e5d9d61654adfdda78ba6aa708d5415ee91cbe3fab841c1ef6e51cf5aa3f2ded2e530c3a037beb7d19b5edc5b371db445eada236d518bd42efdca5b95abed0ac3aec9b433058b29ee1afa4dbeeb688bb3d3f2346904cb679f6b11525f959e659d9ee5eb1269f42c4ffb2af56c73753ebb963dcba660d59e6559d8cee63ccbf2b03dcfb2483639e3d9ce163dcb22293dbb843e9b82659bacf359ceb29c8694b02edd3042501e060606867318186e8459b9606820c100616060666084e67e6686bb74ef714648c9bdf21ef9dc7b8491c14e10271012698491f8f7220805cc1aff7891bdc9f18f1bd99b0e3cbda83c39fd3051945d7c0781d6e2b7c63d758a20e8edf74be97076b884767ec15f1c0c3e293f18e4aedc7b0ccecc748dfdfc4c1ce79c73ce39d0857b8f9c4391c2c20425611f86035d2bef11e6ed3dfe827afe05f12f77dddee31b44e261ee02f30b2b083f0e730e83e46160b85be53dc2a846a44af8b86deff1c7f61ee119429e8585bbd1fd2263e95f7ee21798bf445f5edc7f61029563e5028d8d0894f8a505d78c1b2ffc05868571791819560f032383cac37097ca7b84e17c73678bb2e753a02274f80069642a06891853ff8be1f53f5e34cac059034125096ec8d37976642586f98691431e86b9abf61e6129e9d3ebc2cbf054c5cbc8c87038c7cb70c1b07b19ee46798f32216640670811c96246a3b12f95f2be293beff3c53e9fefc77d3e5ef53f9e7fdc4d7b8f3fa811c8c5176dbec85d28efb1f82b428496c2c74e139338f7b490f239c359c5ca2e70e40999bb58cb6f9ec96aae10855215d13939a311e7cc22bfe0cabdbccae435a76d2acac268e818427424ce2bf2cfa74673ce79e5f99cf3cefce5e5e5e5e5e5e5e5e5e5e5e5e5e5e585bb4fdee38b0a9fcfb701850f2b22e2962889c43e9ef7f97c3db42d3bb819564e8e621f779dbc475f54941454d40feaf7c1eff723fbdfeff7e3451afffbfd7c9efffb09fadf8f92ff7117ed3dfe52c0f00dc3a506f430303e331ebb3434194839310c779bbc47181817732f23f3620813d885d3cfcc70f7ec3dcec43de7dc7dbe47de82f930ccdd25ef1156628cea357b03e8f552a91523962ba056b4b108c262ee7bdc48f53d0ea2e7ee7bdc357b8f3df626022e9624731c893e7dc5bce77198ee7913621e8f0b793c6ee4f15e78a9f3b73360c5c6d5c404d2018b533c2f8807c353ca3e1e77538b9ea7223d8fe7e3f1b80a2d0d65522a5890a18081818181818109f13385094e1429a626576218ee8ebd4798dfeff7fbfd7ebfdfeff7fbfd7e3fee8abdc71f8a082140b2a20a8fa0116e5df14b3ef12f3f1bb2265a40a6a01451c52fdc0d33f67ac2ef754021e37b3d1469dfe33050e97b5c29eabec7c5d3fc1e7793bcc71ed87be455f90c19b8fbf51e3388558143ee88e18347ac775e73f8e83577d13e6e646f6492aabc86c288100131f11d040933dda2b596d11a073c6a518a8e86ccb012eb123a43f40addd31a46f7ecd8d03cfa45eb9fd60c40a144438c46d0cf8f58e70490e6e9ae3e5f67ed6a047cf8608707d70e15ae133b3277bd328956f3f8e65db5853d8fc7813c6ee47117c97be4fd5cfe77e17f3cedc2fff154eb7f06f8df8fc329fec75502caffb84c40fd8fbb5dc59cf3c25585e845bf986047170e09331240a6e2974ce25fb87498fff272b3a3a335058a16988bf885bb5ceff1e53bcbc3f094c5c3f0cc9593f630dc75be4798cebfc7d3b8efc5ef75f81e4f7b52bed7e3c01e77b78c3c5e4686bb5aef5126a8c29b8b44cefb7cdccd7a8fbe66f4cb9ec89fc85dacf748dc7c6f0eeffc7ee3bd7b28d87272a2e4c999905abcf3881d17b5dfbdf7cbde33524feee4b09c4819c53b8bd874643b69f3b6de7b8770c454c4cad10a287731cee6e97207eddf56da79fb76be20fc2084a8ba1da8baab137657772a9c775c3f5c384964708958c23582e83377af54155673732c3fbe7f582bacfef72342040a179d0f1648f18fbb56c60320403fe90e21c4397d5e7358aeeb3507b678cdf95cd76b5e84f1da7945ecb5934ec66bee32dfa366efa25ed04548a376be8ce8b0c8f9f183b58bf299f14b9b24c6823c65ac788256c5fdfccb0b77a9dee30b5cd5d3942bf51e371c89a7a1e16ed47ba469f96eafd87c7cdb8bdb76c50e5306109da6ad1971dd7710684cbea7a954eb6bd99667e208ae4e2ecea92a6e59baf6c98af6d712dbb50dd193020512e455159a53dc5e69a13dda18ad6edbdcead617058859d191288a9fb9ef6a94b6ef2a57bdbe2d9369d9b695f2f57dc541b6bc7644aba16d5b35b3efab124cdcd7a5d5e9db166e5bbe3ad7b037af7645fbadd15e4e9d68407c9cd25aece0c87d6777a6a47d677b5a36884d16d79826a11d26ab261c497154ba5a568a6daa366a67a1d11edfd9284bf72d4f37b4ec8d5187ce1c931135197170df33926dc8f79ca411f75cf46d46e24adff2766d795eb2373b20c16694c488738a8a95ef99c976f73d3bb357cf65f9d981f70c6dd32d288e2537a86c40dd60dfbee7b83626adced13c3e1e78d7481df42d5107495372278b0ecaedbb565659fbae9578e2ae97bed54e46bdfc56339bdf72ed6c75989b90effa2923ee1aed5bada6a3dfea384df72d6f715a9ef676e72dc7f7b68742dc5b9fa06fd9b655b62350238a3a428464c95095ef6dd3d1f776c97b2bf56ddbfcd6d83adbb0b62c95e3696b3382a56247595b8b65e2d9eeb6a5cb31f2eeeef07ccbdd1ef6e6046043538894526d3f71cbf6dd45aa7d77933770778bbe7591be759578779b5ca76fb991f7c003ee42bd470f822abc6362aca4847d4c0c779fde634c5085814e2bc9371ab9bb7c8fc6a00a6f1a9ab7234f73f6343434dc3d028481818181818181e1ae91f70813546163d0e9862418e46e11e0cc0caf22f733333333dc7502a62f706cdf8bffd2e15fb4aaa43545ed962fe297e8bf1881fecb0b07b237e9d20997960924766449e217ee12798f2f9cb7459fdf3ce7558e9e7377c87be4162c58b0c05d21efd182b30de83d78e06ed37bf410f61d3a7037c87bec20816f0951742f81bbb840dea304968f102df21122b0017d04ee32bdc708411586dff77db9bbf41e5f26bf81e70ddcfdf11e37b0f0cdd21c81f32c2cdcf5f11e59a898781b9e6db8dbe33dda04557817b973cdea8b3c17a724bfc85da5f758cc90214306eef2788f197abd0bdf5373db3d0ef738b0c7dd1dfcf7fbfd7ebfdf8fbb49eff107c37ced611856c3f1307791de232ca5e73568e0ae8ebddae04939c173793c1e8fc7813ceee6788f3c969771791928dbcbc8a461bd4c14e5cb7017c77b9409dbd0ab4ddc7befcd819bbb4a23085c1abe0b9fe4188392e38432c4094df199bb54bef327c9efc5d77a0cab841c7f6a0a35d7669c88116beede788f7a0baded8944a793234fe4aed17b24fa5cdec7ebdec7b3cfd904ec7d683bdec7dda2f7e86372f6c321776db844ee924990e7c081bb35de23870a7c5760a2fc0a15f88515849657e0bc42850adccae7f798dbb66db93bf41e5b1aefb1c2998aafe1b986bb42efb1a60223c498fc0ce9616124064e792087e51ec85dd61b230e0e8e4f0ce4175610320772cedea83d3838382462de03c5b89064686bbea7526616cc9a7ccb814a9cbee55cc5b7bcf8fcd6b9c4f9747ecbdda0b473b3aaae65566fc84733cd4e065cf3c61ad511113073a33bc395f11e81654b5ec8b390bb31dea330040f8db81647aa4cec9c885db577393cf62e77596f60975f58babcd8811ba57c0741226eaa3c35c49011a61376519cb425895d368a4b06755fb8db757fae9b01b0a7d90e2a2c9858c46e9ab3ccc9225691de1d11f3ae36a957bed7e32ef23df63a7fdaf1bd9873ce9903337761bcc79cc6f81fcf3fee026d1628c58076e4704597c41bfa9bacc5effd9bbb3fef718fa53d8fc75d9ff7c89b20a624464c6eacea85037ea604993241846248aca1887dbdd6dc75e1b6788fae988abfc0f305eef6bcc70b665fc91c2248211a35620a4f9e02879f9e0277a140c1e51428cc81f91015d1e0d28a8a29b04e2884f5507841415358b6f9497723218e7b4ac7660a3ce7301b9f7358f3337759bcc7fcd482597ddbb6606ddf26f9f12d77576ccd5d5c15ef513bc168bceb7297e73dba29de2385aec78081bb28de230617be5d38fce45db8cb7ae3c62efcc27ab363170d22858ab8a752efd24c9dae0b14ca85ee5dba8ab355e717d23df11ef70a8af078d148a203499038a37dde6af199bbb83bef31b7bdeb72d7c47b74d91b0534d9001236c48887abc9b71c5efbb6e56e09a71794abf31eb59bf31e5d5c12ef91f54d9861f906bef87b2d4e68e16d2f76f5730b4fe1f6c38cabfc1044f1a3cb8c6df92386c464073822065247a8349b9688b8ceb47c224204119be17334f493a2c8b34b4bccc521800b152c80e4b002855ca2769746d5450df1d458ab1a53a2e583c5ce035456712e7e08958930cb9a6ba9eb33b96d92a911594a8ef82a33f2305d0ab7dc55ca2c0fba4a128ce09425fb9dbac10eeb60076a253f073b8f40a50475854854494fdc72e10ac2ef5bde5e798f6dfa6f1e4cbd7950e50192074b1e38fdea41f720f9ab07ca5fb9f1c9dea456d6c098c8d47c7888c4ecd87723548d0a5709e8908a2671378a7d3722e98692be9440c81271f720ecbb073b3d3e61df3d407a10d4b619cdda36e312a3d4af46a6b169f4b2fb6e2cfbd5d8f4ab318ebd49d5c4a67cdc68d1a4089438c977230e061823a474356dcc008bbb9105fb6eaccac249529634a2361477e3d77763526944daa2fa6e54322e51f9f046e503dc87b20f681fd4e8be7f70fbf583f3d70f61bff20f3dec4d88176735b2bc7640ed4c89bdbe7fc0918296ed18e3827222ee1f907cffa0fcd0b49402f2fd03f34353ed830ab55779ffc0c2c6cd26ce86ee43ce95ef1f78a236d05fa3bf721b257b93c219f932f2f161273514777db741b2a44a520c2a40c819014f5522749c493b969ca4169fab4384980bab2487059c0a3e2c9d38a06f448c1f3b05eb10a1e05b8b9050462011a485c417069c27210e0d1a364a0c89b60aac88b517b76e827b67341413b23c17123dc0222c5a9e1d5d059e0f1696f7410e263e4b48701d39b1a5a3e312e30765c604dc8af1f172520445f0084740c1e09ca0a03582c40b0bb5a4ec5d97857aeeb01b3ecdb2eb7a099f66d93d7d6011a3b2607d48ac86bba1274d7e7a38698a5dad243e5e6017a0844fb992d4f819567c565f17f6a6fbddfbcd7d205c5e15d30b06ecf2b8553f7caeabab8e5884aa8444e08222f97c4f266efcfbe91395db12b8a2225b612274a2b2907c9a8e10e1718735d4945b75f253855527750392d52a3839a782509bb431c12573a3924f2d8f8d65c2db736d0e83da729635c0f7eea75143673d1cbe2b34bc7860fd44f9c062510323c20d5663b918f156a158e351f814ab85d9fb3ec56a01e73e2b6084045c551191b11a5752d25a2954842f328c08ee0d96cce5b920a478545270befd944a0ad986c6a85bbbab6f6d7b276e3c8fc7e3f15cd7755d1eef040fdede7bc33d8fbbf078bcbdf73ec189322463543c66acb07abac09be1db7befedba9c3f171637dfdb3d31c405e8f24ef0fcfb2973e78ec74ca79e39cfa086985c569216725f644078644768c898f078eee66d14acb0d2d3246352b1c5249392c9a8bc80e0953dabc866fcfeb48aecc51d93b32a415064d5508255ad2b02a404012201c5e4ac2a56a9b48d211c215369cbb02956468b36ab3531a52d29b80d7429c3b492f88031224765a9b823a217d1273928b820f727ae8b655d2b9ed414927d03b2e1baae0bd4e47399403f26e8b9927b2af9217105540228c71832841195261b45567432709ef29206035b4d39293c3e68d0a55380b2e6cc4e88c91872e4c7930b1b4c5654d18266230780c216c4c8dbd3d2552eb2ae583e5b6d755132a27664a7efc0753dae69d1c5801146e40c09f3d2dd4aa8a2d5b65454e7e22e7689f818c950336e08163180a85668452511cb439af4d610c069bc205eeb2a1765cff269958f0ba622cbaa46238f0c2486e582f2bcfb2917d4284bf894f75aaf5cebac733066022a97f0ea27600db1aa31d856a8d45e64d7858a41c69bd28143bb9b4aca198fb965e3f7a7ccad1937d4a8a12a6e736e876ee16e85d79f36e77a86522cb519774a8e9025bbb290103c8404b1b30af2a3c324376d80b75dd7757d452d3c5eba5da65b325f1dad68a9a25bbbba61e7db5b33cf96bcdcc704787563c9eb4faf8e4eb83c8c5a6d7dbcb0dcbbfbed6b5bdec7c09ad25a97ea6797e4eb090e085deae5d5c4f15ee94232d6160356e7d2ad2e276f3a0a67715d69926271a998728567c5740e4da9b299e9d4968fb529ba8a85d26246e151a547b2c6a6842100766a42dbde030cc1b2d2d694430882a5228d892dc0d2951174003dac98348854898915850584a4aa313601e8a082fa3e8059e5545c34ed0d40ca1e4d95687bf12095e20aab21358ab201cd4222a821696f311d7a62b6d1c0414bb2b5cd631c99b29601063a22624dcba42f8cc088c28387a1a7088e291752154e458e626014449c164c0c41db1560364708dc9a0b4c59114252a8b51360bba6a494fd4baf04f9b13641421c1022716f309cbe3151bd35f9458097b6e0ca5ad2b61f4d5e988a8fb729dba7e66367cdeda5f50852dbe91325a5b99dcf7844ad5571d9bc53253b92a845e1edad83b0264b9bf224ab79efb1249c34b7ddeede7c6fbe5dd6dd0bf2f6e642fa49a5c47bbbad16169d5441def7a9b30595efdca79e40472d4bc3de72901e34c84a13120206d66c32f2b22fbb3d3615bdadf27833db27e50bf2786ddbb6edd2966fcc45438927116b504a9acf0c84486faab75500dbb6e5f1f6de2d67469fb8bb6d79265ad775735c513ab15021c7956482a18332706191057037b464a039a9018ddda52ddf984b51c8f97361b14411d48997d512cf54bc7f4c61b255f96d80786fb7553b67c28bf1e92733bafcf6536654ee95326e967579c9e7f1f8e6f1f6dedba7f43c1e07f278bca2702db6bcf3960b8bed0c8795cfeb1292ca451eaf4a8ce7f1bc793c1e0fe66b516d71a2080fba25233a629e8fe7719859e5c7f38c318f5714aa2a8eda83b9358346eba72a11af75145ae6fc713b5ae124d6dcc8854566dbdab77ccaac92e23b37b2a8ee9905a2c8969271403cc262f58d86488adb91dd13211f4a3d56a44591f291f5e5c543351203a7bc76ab199c52b076a6acbd59f1df7b6f55825bd69b0ea8259db61d4f249e4596c2a0cc505b2117a347122b49c2223a489ee09624bf541edea75c4d6fd4ace694a76c30660da6cf7b17ac4f6e515ab728efc713d34e8e95dd8ad8457ad381df7e625c57dd7b6fd5cd899ef0a9945b540bc45db5c7b27d5c2ffb6db0b304f3ee49f582aecfddee765d7763b56b51edfb81fbe8656fde207ce45b966fd51d6c817c74ebf2609503dde458d420d00508b7add41b916fdbb66db94b0bbba1bde669cba7526e60effb54ea4da997c2c7a6419df255e7b4b3c11d8ca0a65c249cf828816347958c58d51123cd408c9cdd1d93134b72a2e41ce905ae4cac0971828307900060a44677e5adaa12abdf5dbff76e793caebabc74f3bd9f7eef8ce33b770ad91acad96383e04964c4875d4ecf8dd838e15328278d6ff914cad923232843713eef532e28742f42e46c31c5087a8289482aa54c19d2d504a70ad190a30e4337a2d81571d51db98153c573e52c0cec0e8ad19d9228774628944409520434c744a51984ac45958df8e8aecba7c5cff38e280592e493b915403e6c35e4a02c7f3095435c47b19b5ceaa9de90d6755d0efb7897bbb82dafe5b9344f254a64d7a579a2227bf994aa47909c8ea329b2acaa7258e5dc68f47185088b1448a11d5b2786d434498a3aaa1eb4262b9299c62ac7d293f029d79a927ff9948b8a8b1855e5b0aaaa40994d0300a75c674edf815c3d437a5555b90dbcf2083c1656cd30d6679e55cd7b3cad816b51cd997fe61758d2aa9b1c67eec233bfb01655de81af02591e95867c4242164d8b59a16759beaaef514502b7bfc2cb578d3d553791b8e1541457c5855490e69f76f5107bde53792cef76b8c5bb2edf2e2ee72901d4777baa149c7e07272ba6381962629964068d57070bd005eef00357105af5915b36e894755f4e6257c6bb1c7ef12ed79a4f0fe802036117a0854fb9a484bdcba75c6a75df61a52a162c15f897f3f9532e361c1ff701cb2c640aa936a753bc63fc9e6b7ba821927a9e8c9c603c259ac41aa9fef0d32e1f384ac8354e2dc0d6f9ed56907b81c858f793095f51683e829838744ac430c8b28d25ee56144b8c8f6f5ba62bdfba6d8be3dbb66ddbcd35f76dedba5ce5dbddae0b96743ae662b429a333365ef06c04bd364e7ccba75d44577848768e665bddeab6758d7058b0bd4fbb8aa07c844fbb8ad858a52f157698e53d73dd2620f510421bec2cdfb2699aa6bc1996bbc1bc16f576751b8c7179cbf5cc4e8253bec6b8415d2cf60eaf661099eb344d3f588bbc4ddba0aa8254c21258b33ce53ab73cfd74af33ea4b5802ab7ce5c235a80298c997bf605f849ea6699abe2907612cfa38abb2a8eb0a875855164aba015fbadea4c675e86c119554c3d982284e81bec86ac027a447a72e6c849457fe419221974488f994eb0ad8b79f7621bf92be340541e57de53aa720e4ccae3f83f50bb0ae2a8881fa33585fe55de57966abea0cd6cfeafae64b3bb00dee1ca9ce2a1c42ab2a11a0badb353bd5959a624275915a8b6b55d5a507d503613e955a3b7bf853a935ae5cc5d7a6ae76d3d7ed0262c26d75844fb9d89aba98b480ba7a28bd844fbb94987007e3a7217cda7e9aba5ed997e3335261bceb72208b775d97c75beee3b5bc0d420b022fb877d433f97b73e0e617d61b1d6f2e5c6f72bc837d05c677837b2daa6a159cbeca53d62b6a899c2f48f2357701ea749dd95130cbfb3e8d5ac2047677ecbd8146201004902fc38cf0362e37886898d1b8977b6f231068046ee006c24023701b81c6a211e82ef7061a99c66ddcc025dfc00d2c168bc5a21108e439e79d77de1b68dc40d5b9f7565576abeaaaae7bdd7056b90ac33bef9c6155cdc0bc97c062de39e3c070de5cddaaba39acae1bdeaa0acc3b038d705633540502b30a029855d5985560b118965523ac6e10209646956735ab3b7395a902b35105aa2a5055b7aaeeadaadc68e43c1bd56d54d5adaa3bc379ab207611de19c8e16d84e10ccc70de3daaba934578e70d03a3ea86e1bd339c37108637df39c35b55b7aa6e55dd1b68ec51570e733817f9868b79ab3bc3401584b108f3a50a545755dd7bc3708695b6ba6675ab3b6f356f75c35b555538c37967200cc3bc08dcd94863545595abc0bdf38661e786b7aaeebdb931ef0c7378c3ec1368cc3c03b751cd3b6f55dddba8aaea56d5bd73de7c03372fe6a56a54b70a7355e5c00ce7adaac09d3737e67585c38c7b3fe1bdd5bd5575abeacec50cab70de5955f9de7955aa4678e79d778697d1ad6e55859730bc61a3aa6ebe8d7bef0dec59c2b95854b90aab3b3337dfeae67bc3bbb8eead6e58cda933ef0c22efbcb3bad5ad6e0f98df5372737cca31a4057095e90795a76ceaf3bdf8a9550a243aac3bb6284b317005a105c557410b9fc0d30f3c4d796a804fa338383845623019cff2bcde1859ce02b31c78818b651985cf762001424d0091542a4d9d42f5f92c4f53b5681aa7aa38ce16accad3c38177151934e4d925ac2ad18ca0db6155e7b36a98faf4795627ee6af459354ea57b96af382d8ca06073d81e1b14a2a6a864a81caf7aa873c4140d0d101000b3182410437128c9c230cb62e96c0014801060b0605a5c9c49a36910c3288831c6184408228018008c014086a6c80cc9883141f3f1b3c2731648dc77f7dbf08795b7d7a63c4c636e900f1f16655598d1e287e90b4517449281c344ab2bb87a97a85b6158024bf8883251d8811104ab7002ac64820004b7ce5067c51d7a6117554414562ee930545b6cfe03ae8a82ce51e077dc4aae222c9374df24a85eb13ab42726649b899851f7a0464a4bf0cc9d0077d79b2897ec21bfd18709a9e141ecc0ebbc1fe094f1c115690704b79004ccc2121745aeb85b958117c87d58eab0cd8a1b786113056953150557047815002b775ae5b1e7e5893c8706a96fb40cae3f236c0a44193f619f06a1c959e088f17a0a26e02e8a86a515ba37621b35a70eb027430446c46dee427350c7430c33ed8c8eea2daf8638cd997425b4aaeb95a9953814e2acf8cbbe179a81aed04d24b4ec462f87c089735f7ae0e41c3d5fb773b123f36baed464fa6671fd1b3d40e1e67ab3884912e4f60d6ef3392c34354749cdaa84480098a20a95cd32fc9eac030203036d09f06f673b7fc9e1f10134b85ee42a76a3b312a088987084b1a0ce47f520922731943e685c7156ac366958466ce167e2c47281943821e749e37ee92e6478281945a09727e9f920e1f7113da040c50bb924f18ebfae8ae275040320c3b1508b6840570c24c8543113ad2defe53906a5d26ee4e24e283d828562ac96ee8f8eb86fcf1ac9125b8f6695a3cb0f5a557f34004fef1ea3cff62800e30f0f8cd1a500020ca19ca14ae1b0ad8b48dd15775a02d912e79f489fe0e6ae9dc430be675507611023321c6aa04eae176d05c6b30cba90c76c1e42beeea55fe60da1e51d75525fce1c4eaded9fed2c6435f50f9462778dfe730052c046934e1129c99903f8cc3557ade00480620546be289a8f8e97cfe57566ac040f078a2f25165b6963095ae19a3cdbb3a773f32edbc1b090bde69a3280100c6be6e15c148ad94afe5463a2ea326502cc117419ae0087bc28f1e1e13443e6ebba50b83c4cc1ad2f30bb4cb3d35778a4bab193a45731693293af85a52bd9838b6a1936006740f4d64eace430da95e58e4c4c940bb1de00e0e99e95a338aa49a6dfa89aaca2a792c7d9686b287f61160d28bd66cd41a88de0b0961d99fad4082e111c84dfeedb1fce84b3ace61415777f59d34b20922f50f15ce2fe64be2187cc87ffcb611e77c7585770de19479c56b639da0c71f7051eca0a0ded4e78a274e7f03c156b415d38d2409bdf6ea7d8a6dd174cee06c7f2b144d972e537a8a307472aa873c8d330e2f3c15a0bd2e16de29e81623976a66daaa2a42fcb6fee3f03a070eb0175972fa6608b79359bcc77a362d5c728a0b84e14f53eedaca67c919920f4229a1e06710fe501f4c8f049b71322087fba78829e0252415a33ace0793d4296e1f1fb63580a9a3f9297f5317c5ae77a8e280f4bf85b08913f49b595080fa014e29f9e735c12b122402ddc02b01e5f82614e2981624e0a55823518e46ba4ec5c99d4c02b19b8562f98ead9fa7f65fa5528bace666744896a1411b22b63c83e6b9d7aea050f3a3bc8af9e7f2467067908a3883437616a572a0340554e4867a9410b4844a35d6a52622923d14f67f385a1f9a1db685a75eb327fc10a6f78de8db62bde5069d0c46959cbff64bd25bf8d4fe105625ddf755949416b4c94670e49ad2990deaab1309eae81a127c44fe479737fa563dab47c1f6f33c18fc1ce17f8121a0a5549cd66ab9e8cb4ecafe0a75c38f3b5431c09aaad10528dabbeca0c49245cb99c58c1d33f5ba6687d3b84bc3a11493235dc77c3a47f15389506770939a72a34141919dc5176871c0d18c4db25b7f6e6062a00f9f2a6d04bb5549a4bdd9d964d8b809c4c835b1d23e0ba7e697ea1e9ddc3d70dbed4a41df870313aacf3eb7707460332905862ef9860744fd24022394a8352889961dbdf964121b528b4e946098c819107785fa3e259604f4678b8b7d06c94d764bb6fac640cfb067d0494b29709094a9850cda226f910bae849463f9b6455758172104482588e57bfbdcdc5574d008935e1c19e891253c0d851e7121d07a0e7a2b79747d2bf078aef3926fcc4950058ad1747b06860bc1a4292dc5cceee100fe0f24506611175e24b11ddcc9801c126e5cd63b3af96a43e29f7552a120dd3f1b22f6405c8bdaca177ddd0375e69dfc9749be027d5bc3b83dd1032cee092f0b4dd7ff5a6c1452c813d73a6cf32668fd7c127eb0764b76d0ec5151c20f0ed8db20c7fccb6ee2b2c44630efd4cf02bed0720ad755440832409a4289ff258a2a429ca0133684a4fa93feefa2776aaeb5c35b3506c68557a8e02a16516a0999d8b40c6ed3513dfbfded659afdc6d01e01f9c5dc0313bebaed7636e7f26e8c1fefa4059930946e9f57287156544711df0d8b1de5f06c6134928e7653a08650fc2d0cf7a5d16d1b8461968cc6030e00ec61e2feb58110f1b90609a5a5f3b59fd22189c406631e0b3d5c8810d8e1d88e0baa3efcb2ae29ab4621d73b33e7d2b68af0281bdb98e7560d9e004d3c4fada493fa8b41a6ca4c9ec2074ccd2f6f56d2fea29509112db00b5f48661143890caac273bb6c391030fa2eeecfbb0425e9346be8d0dc43581d2a60e3435ed2b3ff30337967cc01649511e76ab6f0dfdaf208117c48cb223e04eebf594a4289731f04bc019a4f0556d6536ecf8716c39f2601c01d46510bae1a84217b30263061d0c7d34d8b1865f6b2ccc893db2223cec9fe112e25f59efb2133fee586e0e6318833ccab2d49338a904c5edd0dc0108aee918fef7f72893e0951153c194a60c067d16d6e5309f6a7cfec534c7121e7c0bf142387c01f6aa998030b6915c7119d83908416b7a886d62bff2c60d62ec8620e4913711f7b5df4ff6fe1ae33aa797490130fb1086f68bd826f62b6b5c42c68eb3712e80b8f720ea71c41f0be9950692c2f8475a8cc9ae232ea1fa9479a6d8ac38651d270561ee3dd07a21b167217aa5b14433f648ae980cec1c74a0f54b62cf127e4d38458a71d9a7c41fe6e6136f16ca3fc737c60a40ee3d88ba2df1c32a071b1b8c93412c7b0f867e4cec58c25d465c35aeaa296e8b9ad8c7ec6a59b46b7c4082e53688f33e426bcc89effa7995b4b5a2b13f6c1197c1e626119a46276e6b4d52d2769ac6646ebbdc0ae0dd77e0da31f1cb2a72a553b41abb48bfa80dae1d80e0da6ce23b899fd2ce8e35f68622e2cd74134f9dd5a0842b8e8bcb60e2a083a8b3137f2cd32bc215bbc536300c160d3ff1219b5f41a0fff15a10f95e84a1552836897d2b83cc1b2791a6f5f0ce41085ac3516c12f42a6b5c67c86e08021ed94ae3b1f30ab2b7b443be911767b2448dcb103d4a3a9b0fd9713e5e0680ed41304daab19df417c3505fcac3393b87ee1508aa1668a4658fbdee60405421150948da7a613b2b4a694ab07d8106f17f4016887c60b55ecfc172db737fd0e04467f64002f9fff5db391dd00c700156ab1c2440eff10be7e6d705c780ee90022685d4ad916165eebc0bca10847fe8a8b3b8eb2c70203b8ff9b903c1c107ccd9872d718ffa1c42696a16132349f8f10b8d180abcd43a1461f6e33c01559e73e28d193d2bb6e9a52e27f183a983061c8c49edda178ccf4b89279b2ffe426133a941ec882b7ef51757343a5f99ca92573c82cf6f49130c2a28a971b1f475993029133d8268d24a63455487debcff8ce913f82f0c7d8622640068af0e826c6df2c0867e99c12d94a19865647c55c02b4e2f6416e913fc732cebdeffd9a5d5bd8d5f246963a958e1ffbcab1e21970bab969a648dbeee36fbd2c2619819a55cec74c2b9d3fc2452f2a89a2a02281115ff1c4a4243228583998e14c2576b2b0777338743b6de5a502525ca542d80c794391ac025a22e5114eec420f00529e50556101285ab0a90a414ed9dffa206d6b3d918061361356c222ac8ca1004877b2510b0196019b696bbcb1689567d6a5d727f8c335c8a306eda3947be26909aec225f2868cc7bd5bb287122235b206355bfb36ceb9df497a615e47e7be029899aa53b0ee342b4758ffc7bef04015462d55bd6b92f5da487ffc038728bb87754de983dbef7db410fcade3bfe711aea7fb04e0fcd754f52163ad3b661ad9826a48294dab86fe7bd87e3c5405a4a752d35dbf573b48b1488348c7ec9204b04f9cade1f6d0a86ae2f398dd256901c8d8f4e98aca88cc27e74c8727d51304a41e03b692bd25ce35ba83859502515b57fe59befaadae78dc0d86a204f3544a09222be203951df65c4628667dd028e9441736c923df12c6d5f7876853afdd983d323090b04a8c5036041e43098889396f08d61da26e7ca60f702aa0bd2f4efb7d160f130f96d1874f5521dc4d3e333ee4d76410d8245f37aa61e5cd5db7654238453453e37c8d1f06258452c438d34d762ebe27c8627fd08305e6a2428aac93063259914a33d2f96ffbe409a1f2110a45732111ae9409a87f570371b28c8350ec60be3c60d60c70dc88edd51885f03391cea17cc05e38900c3f0c5cfc209b4f614585c778ac7480ecc65bc929fdc0a66a41cb19fa1a9e5e50a30e004611a24cab1d9a45a265c81b8645ff5fd054964ad3a88b88e7021de8ce47028f036226c7fa4746840e64b05ace3c07eab1f540481943e6745843456dc01de380a422ba22fa7a7e20b6ad79b8eb0a916d0a546a988c2d470181185065a6230680ca82829fa5407865a57f423df54798e2a21c4be3e965dfc49c7d76abcce0811026a03db16ef7af86b723e6b4ede5210c58735a5b07469452fbb5dc2f5f7e923b871a69e34685a2fb6cb02d584b710f56890c56a298aac4cf88870025d719b6f7cbdb4fdc31cbffba11b134efc47ee342e94a64cd9ec4ddde38b231d522a7bcbde6676cdf2aaf9847684fb128c7060c28857b98ea05dd786d478fbca51ebb53ad9080c197e1e8b4eecce7d6ac85d1f36532ae6b01c0aba7c12a2ab14ca8b7b46d5515ddb3834d6153aba00a46de1f5c32f1946550d480d7cee4ea97fe0348425e2e7b983ed3ab3ccb21b4f3b41750c8c67dfa2b9a4a92faf94d2fb1e94fdc01427a594d53bdadf2df316ea7a8d9612f89565c7a6eb65883b90d55ef4d5551ca45e4d1e1fbb3c100925894116aa321ce6f4cd3c82ddcf6e19ed4a0d8d581d450e8f943aeb93cb3a24d352949014c14380270dabda7cac3088d4f0f3420ba144a0c61aec760e7190b87411dac7d229146251f48ee70cd5c9d48aef406a89ed35061ffce6446107de317a6ce82561e76301a1c204e47841d96f5b67a39dd7d46d17148a33b819b883267c522c4154806bd6907235a0dfe0219810206e7cce74334c5db387819864e36a327529b7a88906841c10e331c2cde5ce146030561ccd43a64d7b80967119a754e8576e3f717aba444a94e2484665963c451e3ea671889057a4afdb38ef1e97475112cb3387f47240d1888ee91db5fd9cbe937460de40a1cae1ee59146bc5c1484e8f5eaf96789fe783544336fc8382b2ebd8056da0d08002be3f1e064d9c02c0f5fd63e007ecb32a6726a7ed6a6f653e23b624550c44e3ecae655c18e6312b44a9fcefb3ee0e7414641e1851178ce967f55699a681198d163a33cbe9ce6818e2c2a802070746f45ef467ffbe221491af452f7c545998ab013b38867bd29ca0b0380ebaab070ef1c2dd8565f011cdf2c9b9248b0d8076073a014d35c0cf8ae048c9d3589796bcdb20b1c36e80f5803581131ca1453c65eacdb2e088e38d4eb70f33d94e73a1df813d0f30bbaa8234dd4a690afe2e0b78d23eac7e79608fb7362e2e5fd6260a37ae52376896e639fdf02501019289c00d54317c1bcb485a925f25832bb84d4e01a34a55984e009a70da2d952743643776e875a1e07a2e19c8548a5a3e28289663110805bfadd7894556455785e757c4068f030650a0938fd79bb9c88e9f69848a0bb783c33f3c4b7f41500c0810f365b4fa491163c444e5d580e0ac18c01aa6be9e4c96193e9b62306809035e0e6a3c9996b5561f2c24e6c65bab057831bc53b35c7efcedaebe803a616c2a86c2a2b08b2936ec530ee26b984a5e8f7011391e6ba4b794715b3a6d0e42fbcd9e39b97800f79fe08ed929beb02a3a3faec97a0632c404aea51f33da8a4af922a67ec4824db0166d376fd34f2851468fb50ccec9f942c2537d20bca7bda9906e46c69227732cb61bacd34e397048d18c42567f02077760c23b4bfbd5b85fdd3987e4ce04dc0a8f60a31c0e42d52bd108d6bc1e767ffb433b3a7618d870844526a8fde2e6c03a2f59d70af19e49859e88c9b85bce9d5e8c74b90f56c1de8ac0d2d5836265dc213d99424a414b6b86ac7dcdb4655d69351049085c5fb3ab91b015ba7b876bf7656d4bad7ccf7eb2da4a4492496ac1bc4cf41b0676a03a67f179899efb3db0de9aa57ceb39675bcc03ef0b64d9fbc8696ec3b8e545a5b3ea05af74463ee0b9fc2cfd52ad156b0708e255200c8b25a6fcd9182b1d9c088afaa0b44b1d4948351afa34bc159190cb2b8f8dbe36d6db4da700c714f9b80f862301799063816a10db5d85cdbd451544c921bd73396ba4a38224f91c471cb05be84bd94264636e36018a4f81582602462852ce614bfcbcc0699b0257ef0a07f416a00676beb0b5acfb0c65c3ea2de2a4067163831058c047c59876e72f70c19b1e487a8e2850b80798783cb4db32c5d509651e1d84d26267700112f7a1a7e22661eaf97136bb78dcda67f6cf28027fc01a2cb23c9ce35da9af3467005b20741f3778e12a4e23abcf281dbecc90269061066d98dfb21721534f941075e564833b5afe6924582cb070540afe3432ccf17e9b97d15b3660dab8a795bce22fd56d5e520f6bdb3cd87efe9beab68dfd9060312ee7edb14596e590b6c984838d6c4dac37e1b811d9f60b3ce3347e8473244f2ea1029ceb2925ac6b7e429afb562c71e16de00a6f2f729b563842d7ad881261770624232744bad795ccafed99c3f74a5c39992d6a46eda90b711d662d0a3f9f2900cb58062b8711e3960d50d7d0bfc8c6cedc7a7fa6a9ae30cb710dc643ef25f9d64c88e34c78de601aa335ae3aa71a684aee6d66c57dafdce5ff28667f817e3ca35b3f4f1a96996da781deda7658b646fe7c11a168aa1df80596581cc5a5abb968f05db6cbe59105d1ba6c4b92af0b1748661784598249422be3be1e9c0bc2f808219ad3812c582a6af89527a03c16454b64c977b1af6b4117e3fe2417ec4873c86f91ece2a03c81fef9ec1c648d502351a81364d8d6ada96202bc332d95135ae9e232c5599b8cebaa5c213c0e6505a73e53d6216208c01b2b77c9993c035661af75a0a05fa065c55bd3ca21d94e04ffa87a36dba0ca809f655e9965dbd75aef7eb73ad15cdf49bf0c2414e3e4d3d904765ab96ca1781e6056cc02eb9ec88437ee4d2e40ff920e1fa0e29eca9315e0b6d3882c21841d080459e77c59220fdfee59b11a0e35022e5f291fd0795d89b806f8ce2ec6998af092663eb6a9b02c313bca896f50ef97b2013cd4b9e55b98e61e7a7d51a0882508d2e6fef6ec2d4297a11ca3c6282dc77d9e0d56f6373423440f455080c633ce8d591ecd3bd917f51938b40b95f56775ca62b6fc0a05ec88ae6e041dd993d89ab42ef36df702c08b8a83b1b7ae4cf56b0d8083367841c3278e93ae617cc87ce2d203fd4787e1d4559a10abc82ac1c67f4a57db87ac6199c698ab46006256e1dbd431d3bd82084b312ee4371516f516ae95263ca39e31712f42fec39939e1f51310315eb7fbcd5a8b35073c2308aa5c73a24b188c0b0ab4e9c4e0fd967d7f7e92e0587e7f57a2449c32769aeb1bd3718963e7e22de97eab988b620e42ad9ebea90bee0d4b0c7e92124c803c72736ab80f911ea0fba8b9760f5e0f2da7bc9bf96f3325e8436bf5ce4b5c740b1ee6768e7aafbf8cede76cbfc081d7b79869392a215cb05a090d1867aa499af2b62a8c873cc26c0631df11a8e303dafb71dc95a2be12e89cf4e6033231bd26fcd3c2af5989a5622e6eb72fc05c2a3c9e02ce84a3bd87a95fc3404c71d61b68851a06235b28e7d6b52a1500d942f99de5c650bc150e484aed468704ebebf203b1218e299fde19377768650f768b790808440fb89e81570b2ab83268ab13abfe2b4296cc46bbf3b5e8de808daf81f73b59144d5894198f1a9927d48b0cbb37ffaddb6d121f5d5658af7a2040826b46a4e99f48549e29cdef3a3c8d9d73943ee94a8a54e5813085fbedab8de4da6df4d706c5277a12792d6cb30f4bd8cc94789c20af94dacc860275eb605274dbcd51a52b2935cbb655bc4c1499d3fd4b6a2bcb976f605283cd495038b9e91502d0cbd44cac13d3b99778e274e3a1aba856105a27779f6bd3d33c88cda461d33e2b589f5b724d5f4f729c53a141e2132f1b559635650e941cc844210eeef2402fd566d1776600a2d4259c43bfe9ef02ece8d4477f1a6f81c735efea0d75a4b8435a06ff9e584f72ed9471686dbbd8a41be6fb89084832c1b4d5db9fbb95d399c7310744e3c56b9f7d2b9eb79c7c3e2fdfb839541721e93f3d0071d4fa11bc3003ab24917227fea3df52d20f7555413dab1fe73f243b593bd2d7cbb98cc9e20d3c89e2ad63183b4e6303d67010d0b2e31b0257b3a4606583f72357e2680b3b299e4f7c0498318f4979d75fc8f0bde9707e25276c201d81a52c30946e80649e7438a55996891ff8e50c5319c234317d256f5423469416fb12dca265384343e1da395ae8407e43abd221171129207cb61a2077a0aca80a889163bce691c29788b74b04d7023322cf4cc9ac56b997817b4594c86c4da5e50cce43bf66f2918cf316ad5a4f132a2f24706a82471852e6b3cf0018c78c92a767a275694e9894b652cbc6cae1af45e78dca9e4ffc8303654b3b2193c27e0ccec78883b54710ce07ac3a336560d40db4d2d1cd59a8bf4c88608e816123ba8b3434474457794256d4b4fb73d8e0741ca9924e23fcbad389367379eacc99472fe871ceebe3068f16d9705884266a460b90c3f5bf81989e1be024b4ac74a579fb11c578da53bf5c116c7f0d7274b7a15096b1503512a7c317206211023dd069a6d0eb3752e470726d221e0f7806947be13147dac2db8b023c2643fe2653f3ff0c84444e5b89f774ce6d952fb307b1c3903355ee7c9631fb61b81801879a310cb8ff08d8f8f8dba451c0f3d70bd041d664f29b0db85fd5946cc8896f1860118c7cb2c79c4ff25543dfc0cd72b0d5496bcc85afc7d00b1e537b45acc301291866a06adfa3b7f16d27eaec8031382301a62eb0a89c58d4689b83c06581d6d7814c4cfb856b303e46e8e960f8b03825a32989056b6349068b1810f520d87fe2f4e734c676412a76f4609c1ff26a16fbd496df35f18128631aa3b22e63f66bf8ad5f6134144f707d16b9b9af6c42c3fe0642d43e164d6467a5e0a064680653179fcae24cc7b079923e4a08e617622ef7ddaa8bce0deb687aeb7bd7f888bd0bb74b99788decbd198655e5a62155e70d76c2447c8f0ad98fb6ff4c03a0e603ba23148569752e988070f3adcf319dafcd691e300009b5f90587f3c0ab22ff15c9279e811dec67882fb05ad2a0b06e37aae5c043ae8322a6c843da6ef043d0b4fa8562a7d840daa8d8d534eab83162282135ec066d88944dcd97f45ea491f59b68b41dae74cb7a24f7d0862bb0eb1e071368bfb7d8b3a85126611b5d234b8e31517d69f618930386bb722347c9e954d7d7c9adfc77180fe2e42cbdd99153c8992aa9ea401c90e59c1b2930fed53453133707b21169df01ae8701e61cd626e7480986caf9e929b3b5225b31eecda966b49695d4928adc41fce96661de1ca6edeed46555e734bc8f4760ba1e4cebb1220c330bb751fe563b5fd8b57315c40d523f45d8a2887c28654858773674226c3951b240aa4071867f8202d143752c1dd9d53176b7c0186bd99efddd5bee5892a496292ae9d4b5a457521f8013423d8016d991cd34cfe52ef7e8ad526ebc6174c127c5d82427f6774b550c65472633d351499e15e5ef5eb8ace7e28c886c41314faed8852d82c82d741b57054eae39c169e2d07a5465b07601199d0353c13a6df5691ef62c1642ff7e8e164e1b73b22cc335ae34757be15d2730ed634b644a34f554761a02cf9abd3a9445b81ff76ba901e4edb90953712b06ec209f011a1d7deac6b6a0e7f01359eb544d09419fff874ffcea17d6c6cc44955793974814a956a51e5a388e785c3a28e0c2b234f5627e4abebb010ac113812e24ed709294fa4211c0c22aab6d979385f71fe23e57c8e5bddacdd8d64dfda9b1f6b9b255324b740b348de418d5d542b1e183d698e338cef86a92102a62d70590ddbda816d0104f25fa687aafc64038cc4281de2a83b855615f910522c895e3800528b9a60684b072ea917e3212a4e32023f4f16b476f73ea4369b91d978f0151d950aa01b3e30e19f54ebd390a191d782d40ccc265117afb090334506d945dcfd1d9d7e6d60ea5cf30bd4e84a39f696a4aff758d871471957bedd8266e473a92a1ec44de804b90ff82ffe43a117f59be16fb45feca829012c7d24100b4808057e75d31b7c17f11508b62ba968fd8165246542036aaa5911a8559d887bac34098947bd7a17513cda2ba5d29fe37d4ba9c70b5237e14c1b9d93d84ff1444c74662b7b85f75e04547e13585c58ab28798ab15e0582acbe9d12c7c20250d6419b22799b8bd64ba8cd185c98de90e88be1049c83291f164059c84359c75cc676247cc92207a0ed970846db2879f709c6d1296bfb795a9fd1a447bdc9ac7e864af5c72a20609b2f9cc81bf70f1f503dbc8826e3e1384ab1ba45e29ca58e18592aa94a5db1279b00e5fd8f5547feecf1ba0f7d3c4702b6ab965c0b57a97bb31e5cc4c2cdebebe7931a34f8eb8ef1b2d93425e0c9a06b356ff2d692599925b51838283caa65d6676eedfdf4f7bc04d81adfa3e22454563233d28349c82a23f7a7ff4ab98263bd0ccbdcf986591d1386a936d089e492da1230522afdb7a8074740371744195f466607c4404ee0f4816b15d3777f18f30515370fac847407bcf31308468b06fbf4fe6682f90734fbc832d3e634c8f45b12bce3e3708347f607c274a54fe13804b9e1d79c98ac271b84cc62d9a6c315ae0051d19942bb417855c2137ab6f4597edf269a55a38d909cd8b04e91b7a648abc4bbfa1de688f2c87b3c43ca197cf86decd077bc35d384128711544948fd8546ebb5509d93b0135e61e41e24a4ed1d45dcfbe8823fe7f033cc3154681c28ab4e38dd5cf4d8852b1f08ed4cbb5ade6a3fe215a3d3763a5500edddfcd9cb1545a674428902ebb32acdb5cfd9397d9ac5dbfa7669e25d46b24ee59e76abc3dc30a78e3ce9177950066f16ef570364729c9c184d0da3b3ad9fff9f97e3859d3b0bc590fffe461167977e23333c8093c649516ac688459d224d6fe1485f6bbedacd07b08db6c9c95800dfdb2cc192a9b5cc4a010070b75f09f9631517e428a4b860e85334b819bf61217c239b3533f985e05d93ba676d2d6b5038121c85406bc2724a7207d1c01ad1eab65bb01a1fd8a3de5626b939544b16b076dc9c2d097882572baa202fe83ece36fa502b7a6aecab1b6381f6f2407a287b1a856ead5e3c3fd7656b9f20c3a3cff90f7f9e3698ffd7ba7c875866cc84d04cb5921ea5abb895636c271edd1a80e041ad32bd429d2fc7d9ba42adf999e6d0073746c45493e4d2db6f363dcda5cd134c26a2de37d532620d89820b64a0da946878985fc2cb631f790215301b019864b931ff1ca493930dc0d8f1cf208d984aa072f631d119fb219b02babb5c4fc32184b01b40f4ba74d268ec238648a46e328f3167aa7e2f52304af632bb644ade3871a0f25a4ba47b65c7464a952979c9458c5b3ac4e453ddbe81b8c1aee1fb69785ec22b4ebf7e05abd790ba5f8e452447fb081046e3d36ba2b90c2b77dfb27ca80bada79cf6c65207a7af51c9e3e4573cbc7e482c7fffa524dca3ae6dbabb3c0a14b47a78c58d532f78bb63ec20f3c7701b7cf94559037acbc0a6b690d715afe4bd61bc6ab73b4d7ec0154e488e2dc6c6e745c9ad58db7eff1b07d30a9ffa410e12971df103acefd11c33f444c32c0f5598bd4f25fcf5926ed010dae1d2ea21386a5f5e6c06fcff769012fdfb35fa0411741994fad9901f1a70290f9d5e1cf7e98b0646506ca36379ef168a0def511fcd4444d2847c182ed040b7cf9b834436eaf03064b72a4a1d12558fc636aac0281e62e6191dee68647c48ba4334a542b19fc75703a1fb7a4cc460ce2801df5063e84c49bf635d769a4944fc19c72e80e2a942343e573b4378925dc9b5af6d7a7852f97e1f1b8f5bd5e9e706152aa854dce9643f487052c25e9294aa2d725dfddcfa197560acd9c94f28e80cc45b7c9f1d416acf53feb4b9fc21a29299d139c83fdd1519304f770f2092b452bab44db8a55f1a71166f9e63ceaa71a6920aa3640834c505595286a4ae18b072cd367d940e2ceda97f4cab4e8b11cfe4598199ea0277d7d7afc10e903512f4e2bc565c2e509c479e135765f0952599950c707a1d3681f58df23060ff8e4e3e0b4adac80e608de5c100c7deaaec98f4f26f040c5e64b9b90eeaea65524884fe1eda0062a9b9edc3ef06a0f898d4ab363992173f120e66eb72a216aaed42764c2b3643342b039965900be0fe64d8d3ff4efea7afdcbeae90fd2602aca746125c03f072ed5fcaa99cc2d045d33bea50a8b73ccc4159a33a164fd7804e82945126fad544139342541a0ac8a1fdce983608fb9e8448f489bea96a5941aede3e7502f10d04c144b90375d94e656058d7b3ca26f0f0ba20844ac2b3fba0decaafb15377c8282b0c8282f1fd98d344d9ebbd30f3a1a03e39645ce582ee15d5944c2f3f420352039d2c60b0f600f05f8751cb0e0e94534f406575d41edbcb9ce5d867f23330a76f7369d2b12a06457a384e41ea51ad5f33b55331b28582d7acfce4d2a21535a69b39a5e272064f2bef5535c80fc33dabc8ac66c1b14ee31209ac4f5305746c9c945e752f1f4b2d065b9a674196b3d1e1c59f1559a5030ab2d518526bdc413e74fc0573a4817119ceba8f1f13ee466ac17e79ea8905b6c494d5e41bbc845902b0155dfa0e472cefa534b5efb78293809c683899b505a9d5541a0816b1df0d403e46384f5a164e258df2f6ed3c177c7bfe20204bef668e0c887a580d01aede0276eb9edb863a503040ed41f740b912e9e21130f88788fec759964227c60ff89b2c03dfa7a15eee4f6f3368b9f6ebe8056de46651f9ec21a82aeb5e8d589e1e29af57a092bdc7a9e35dd536e3bd59424f805c969ed82374942c063c575f41c4cef68b6d0837eb758a0c921258292ecd00dcc2edd42b6c09b787822377debf06ea7c46e5508fdd1e48cb5f59d21030982e6238a1a8c86c4fe93fca417435287dfddb49bd113573cbede94d8064472603a4060d60fc213f5d62c6b62d9ada01f735faec73467d303b83819d4b660158c7b0e3217cf24c62b41e3ec61341f0acf4f2513977cf109f661a0f9f18807d60b3799312b35581cb76c022e34074905147c50f7a64eaa418f64315fdb1f7ee0d638d814e8bf0c8d2abc1efc5718a7d24a88e82a7228bc22b87765a5815f9ae9faa041f9e222eb410bcf45d33313e2c3c1113c10c36ccb3ed4355a2522ae2d69bf2414760209847ebf34d2df3639136d013a2d643ca2b6763a695f25c0e47a07dfdf44ab0a1b999a731d96a5a820910b1e121037fb15a7a6746b5142f552bddf6059546d654df794bba6da92043f4508f0ace3316d18848f72333c1457600a63179b064190b6dbf751b3081dde07d06fb61c6426510d3fb5794a104d9d109c1f84900c5316c4080162422ab40948ec960153def8d49fa53132c48f450c91ce8cdc9d379d4c76e8a2c089a0c3892a98094bc6a0efecf0f0b67b6b771e545e8abb60bcbc3251a9368e134810c84a02792e0a028510bb7f670d2074809bb14bf1582a7a7c7560d7c45d9b03bdfb5d97afde9dfb1413401b12b45db5796a775bd73ee46ba8a38f956bb5b65cefb1043909b69141b426345310093cef82dda824f5b3b75f79a2a983a3ac1c5654d333430b11e138e36cda32daf648180e58edbfdc2d4a70271a1c520b4beb51ce99d9cdeda9b22677065d0cb447ddfe5cfbe36658a04ba6aec5b05d1e2e7dfef68b01a9c2db5bd1dda8a9ddab0777779f3f7d6670f412876a5f2b06e487cf6666a98a059e8ea77c3092076e731af727994a3b1c34ff83806548756f888f2b69bef898cd257f73bf1c74f211c8c2bafe3be4d09c0fe4055f9afc82abfb75d5a14ce3d0c9c55e58e5c57c4a0df60dc331ef7f262bfe496751afe8d11ee965172626f9de1497036c756cbfe9162570a33e262214bcaa4413d0057ae4f93cb20b260bd3cd8cddfb5bdddc4059f842055c2be0e919f054b6420e6a4617ae8d25b999445a43f0c30b1d30bef52f0fb6c7a3fabec361415151f191ee485d084bdd2de99fde9510cc7d8f3b67bcebf9ea9b8a847f3bd7f41db6504ef1815dd6d379ac976f6907a646685612b3c02ca63e1704287f59241c4e397c03ed2d40f357d48b47593a1c0e5ba25d6533073b6e5a3cf061608c252b9263f49ade559e7ae1ebe0c6c5f571c01857a9ba17430a981b438078cf127105244e6aafd4347760f733f328b92006123ac86bb533a31ecc7172400c44ad6ae00a31f8590d83683c10da3da897862dea11c16152d771576f9c3ac5502817c9d8d0504b68f2d15e043b5c64b21c56d70cf381108ebbe92a7b4dde9aa7d990cd1f38a2f75d9bba989049c9cd7278883be87444e460794ed7ae778c9c960879ba1138a74456fe4ef64c31a42e78c46390da6d14aabab40bcaa7f12264c65f2757c82833c3017076b072eaaf9e811e05dd2600fb40994cf48733dad60b55aee4b08550f8d97c18138486c13bd7a897de9c687778ad0efa1d9fc98670d0941f07c119b54f39bd8e5a3d3605678f4cd320ec2cefcb771f29e2d3ef6d0ac517091b2bb42a3ea72d2e33a07a77d05f823afb2b14320a4a433816fde5c0decb8282415358d1b902e44db4f42d9ba685e233440913d3cd116a4ad6de1d36b6ba16c4a408211c6f0eec0e6ab5a788a8f9e2de83790238d0d6606d494a0c1beaaf39d7d958d80e93188672bb52a9ea12d788b706b247b990ce50e7ef3ea820cf4e8e823e6cf8330778553b87e11e4c14704006d4959b197d1bba146c50afd99c5fdb8b469abc0540b7ab9eeaeb80b05e33a7950cf8ae761edcaa7611c37b30718cbe8712e876489c02060ca8b194b6f43efd2e32e8d2af8c8b3389633e86c5fb1298c2c82956136188debd69615bfd5efdfa762fcb9246fd5ac1ece559e71085d21b12dd284e10ade4755c2a8c04cea07d2c8538a9f8c9857ff3cf80250427298859c6f981384c9f03d7e12f9475ac8d4c13f4227d2d5124bdb04a88e57e775a1710afe3453ccfd3e15b23dd42f4ae6c44bc7079b8d3e98d87fae87a4c53c6e9ad9a6b539330299499884f57ee6e0ca006b847086d1e4c75a879a8b94cdd4aff47710a4e33bc07b6a417e033dd8f828b8ff810ccaf9a9ff0e27ffdde64c5619b6ec7a7045cda5c0841d19c2aabedcf510fecd21c6e9859d7c5334af8e8cb3b54dd4a2f60aa0f373ce00d05c174d64e0e942dcafa33d5f64b9d03af12fbca9e10a5541648a8a35e9fd175f6f1e523d383eec84116bdf70544987b636cebb3e95d813e80c10b3502a2b778896284b52db90f81c7034dcc434aa4fd3ab9c6b36dfe5ca0e75e92ee8d34d306c40fa7d9efbe28ea7c0f17318033524181755759353f11e3dead102e5e7ba76ae1420cac2da1cb43582e7927ceb3f19e3437e7a3d21057dcf1ec4347c126b69041d1d472c33a09025bc811691c0c35bc82672368f8a3fabf517829eac83030fb548d10585c0755d7bddf0d13b3207ce8a61c40a2692a56ee5a32183cc4c2cb9690f8b67be80196e57009953626f751a668382d1a7df77246d7419124260fa0163b48b2c75fa8e865ea4b432d62d3b5987e11c1f39e391074630a4b9d1bed1c532a09a33fa6cb3b74f37171c4e1234c1a14bde4615c2a8c308b90b114322a15aa339bda56d7a9718e0bc6d604539c4158cf051848e8747f42b725ed83b5cfa9bbe27ff89c185c21916388a81c9459f44ab794a32c4897031342ba8a81fd96ff106ddddeeadd1c0607c13c069f944a4d0ad34e1bb262304d3a790c535ba4348455d4f350379da72e490180db939382aa95b520af2e4b3488856877dbca8847657de1eee920bbda4b82c8de3689655d04114407ee106e3779823332628a5d09cbb1e66a577e350a23dfeaa47b4b1a04c60e3bc0aced7b1bbf2722ab03a83dda99f53338887321cb3646db33f8a22fce2bb4cb828e3f666b932d70f870b89060d779b9f145349507083b86475eedfc66bc066d534cd2fba95e3dce8c42afeae8145d2fe8b74dc84a022fd1748dc1385a023c7d82c190c6559265c8300225a49b053802aea1519d1cd901bbc1e42cb8f0d09368b90527bb9a6fc27b0b3ab23a9517eac0b35bd07aa5ad3351e582138fd1eaa9019d50794214a2cb310f2f820f2fe6438951a4acce679c8d58008a2242df031e70c35341cab74c0e3bdb4cbc56a47c1739e37b907d98f6907c0122e64579d8f5ffa9221f122dc62ef1727421c8d414c25221651a4c1edf85e257039a5dc879f9e59c50e25edf30445ce502b33da9d752a48a64fbd300067904025802b14d3eebbf348ae42fdec74ab4c5a9efc83c167f6974ac8bc8db5a869c33191e691bfd8eb93a95d3023fb4ed8b51ec89134da8f116a7a2612e47ee582431b215b6c44644fba7f199333da70dbb7653164d7acff0c3e3c492a636d86ce2db72ec88e366998940d3f1874984cc3f682599404715423c1a0bbc68a7e6bb54301bc2685612e35c349d43fe9e32154be41fd0593dc9aa3e41084c96b1e62cabc967be0035b3b701d3a3b32f5ad0c1c46a6e5859d6a9ae902a8938d30046c1336656303638bde8554cdc812e73beec070c889562e43086ca28f1eeb43bf16f13649547cd19a3b813bba1947936b7819191225932a4206d72400a6ddd7bb8155d52ebca384b4203593f8484c53dbeee8d0f7d5a64eae947c262fc8e3e56557c43259284b5ffdd37f4ecf140e242a06fa8eaded0bb40ff9fa6f11982918fb91a1e4fa2974d33382df54df16c70ba3f2ad80777cd46b786ad125ec2b612debd77651aab187acc40ca3bc55f3ad2aab307ac8af551847aed2b5263230d1689d9920a011b809f18bd2756920b44eb187152311a0617af90f76a0ee306906afe6de81b1a9b45644b606029c18a3e288e020f7a0626066e3888cf9d35c4c4ab2ab3efa0c7d1aa5a3a976233402308963a4040e4c6338e9b15f97b9457e4ea5991aefb6520cf842b44a120556568beedd3112c448c0419fe2e92d746e049e0ecc463abb667b1f57b544285f4ed43119a1ab6415e331483a32265a714a8593f8191377450bbfcf0d9a7fd02622fb9f280d73f2b3a89ed7a726ee84a84355ec5854421dc83a41051b78c5a2240a9e4ee9df2fd591dc0b247d4ddbacaee3155a8f6fe0af22973f48018b970f4801a59f9ac122b7d963b524bb0a7d7dee1c37461a14ae5879b8841785c75e11ca26620d1b0fbae0934062251eb188689c3db6b0410918c268560381f600db477ebe81e15db9695a33adee19cc9c2105b66116cbc7a3cfe12826000af191060d8c31f3b754dcf2b7dfc29c89dc0a8f452bd6a0595ffda7307a837b82880fa431b2095c04c236b64a6bb8826f94bf65e1bde558b5141e8f9a49a56a0727c480cc48a102aa122fe2c6ed3b13d09418e49c581c9693a0d114c79fbb627d7f73d9ab7d11dafbf04a44dc14ef67c2fa20d653db96917eb04b7048f2c7cb220335ae0b7b773f29f5b0b3f41e9576ea8566161b7f7a090ff8cfd15b0cbbf488a47e937fa9e0cefb7af0209a8aa06070663aeab09c66ebf85d2601ca298ca9c5da85fe7a60621656c3cd89327dc597497a96f7902059c7c561f0ea82c0f106c82c5f43a5ef100674c94e17874e1162aee59238911df29e9cd2da27723cf7482b652491c2cefb68a2839329d25282a5f261dff24d0d6f7ccafae415041d8eb2790a460017dc3d57e8e5428d621014452a6341698009d85b0b509ba5a370e0111c210c00a0dbbaca63762112451df5eb67a774513cbca03ce83f21302ad25073524af3fd9e9f75976a6395ffcdedf221fc4e38eb9816b3f321392e7b1ee886be1492ca0b04bb1e455e890e37c368145219343a3e6c177d005ea9c6f0a6d5c968ca562393c946df434b98138d8bb08b0376594fa5d2afb9739aa4870a3c400a4bda23c6d1a2391c4c021d7998faab8f5a3392f682deb0490094c8c2240b0a87ac859c3da08110262a57ae8a0b8132b7679f2903b93e10821ad2017a866cc2e72d8471f7d58da078cacbfb23d471b0e6675ef0d5815ae5fff46ce735736364c5f9a457a01dc3b4b57dc4147e5fcd0b015497ec3cfe6a820fa24d39d40569b38109e969e03c0714cbaaae3b8897b2a0037fd6a291c90ca6b67483f6c0a45a8a981a040b230c81042f0795a3b15e65c241a0d044d4fec06cc377c6e88818af5b4cd04bdbf570c7a203cd0acdd805ecaf04ae8726da8f8e4b32d73d8a14e0025985ee4e8c424c41c8d7810ff1b63a519fa2a4656432509495ba112a33188109cc03d5eb2c27cadd17a6f3e51fc6de2a1704e521bc4e26e8c70ec26481394ad472571a675ea079be2104d7db5b041398f1dba34fde6c1e23ef59c081802cd40fc93ffa1c7fd8b01065ee70a56c9ea71354127bb38aaa1cbc5af60f3792ac8e76bc70002e7a8447c489132f88846aea3547cd25a23ecb9f48e7b462e1143d022530e2558eb518aff0b2c6c5b4ab016dce6ba8478511528c42dc307016b73702bf4420c2e850d8b1575eb25bcebc5937cd965b31f6e2a7761a9721749006e40ff6447670b72400f13bea33eed5bd4865300aad7b80fde74d8e065c91579815da08a1bfdc7ab21c176f1ad1779870e8d04db51e9253ceec0148cf5a15e337fef96ee76eef6fc6b167464f3ecef893d546c77a86354cba301dda1833c7e90714ce9521cf831a25a3e713d00fa54dcde23d826494b8da51fbb9f37f8f8a686b9ba9612dc38554ebee4dd4a0b78bea197f97761e5ddc60a8859fd1966128e49000837023c7ffd9e44c9e36440e6c292d801c9bbf7e0b143e1535b4c6d485ce9033ae629686b1ce2b7941cf00e139bdf4d32079a816c4f7de894780237bc13c985d91a48f73f0c49cae33a7c01eff1df7ce931c49de2a084c7ccdfaac751cf712a44ae17924a9a3e9cd5534c96f4c1bd4052c15cece6375d653e2ad5cdf927fe5cf8649939ba59a744ec0856b0166c612b020077a539005fd6bd3990cf09a0541768f4883a76a2ffb3b0dd62299c6c2bd5d8bfe2b3b06cd48902178a3dcbdd00585c92dd08ea33ad88b2ee539b6243ea741184a579c2064a9ddbf0fba9e6df84f604a60a08478c0ccca2b795471131bff4f7d2700668ebbad38160218a28afa92bc541857239207e82ed11de182e8742727d82f885a5c7540efb847f8875ecfe74112157ae505c2003884ef9618c18ab4ea0788a20f97cfce7031e98b983f5dddc509811f5f50ac0991113dedb492f27702ce940dc0ffaf8167aa6c35981b50c0c41c8a5e6849efd152313ff18654092f61682e999d013e0f5641559b5fa82c8f9baf3478001163ac17c2b0e5ba0fed261d9ccc09683bfda54d52fefb85073f9b90de991cc37a4c70b339e1f33af71a14f80850b6db284a7f1ab15a1b33c884ee14b8fff40e1d12130f45ca9a019eb23084b74e47d7824893436fb7d2d87427b362f7bae42a7d1615b4846d03a9c5a5eebbbf58686293cd81d564613507bd099140091a932187066ff4f4aaeded7ded653af09ad6a160d1441d8337c9c45013cace1e668fa5453f5184cd672a20b0d5a1064d1c0c85271d84f4a574e161334898177c618d8688aff409e470a1d360ece4775ef23a62c3b48231d14b50abb2ca15d4b81ce7e08992012e3b99381be1b30d8289239e90cec3f8517d4e7cfe535e5c3b95bfcb53c66e84112dc236e3896552291f7d50a22deb29376568b4f372bf715e4a05264c616f58dd5c49c005b80a54c02b655465ac8015fbeab2580073c516b455101f428d7b5e6744a73293d8949ac894528a78d728f853325acab99f3d1cd213ff5fbc92ea9c574414ebae4062b3cdcf6b85c41c2264dee5a21e600a0c6d549e734aa86acf29392f7e26b69e6d45db99f90843e8d4ca6437f8fc8adfb1c78fe0a7df120ef3cacac068fef789d49993f96392302d6d2d3d1545ff81deda2d8ca66ba591f1b0f57b2bfff278339ba78922933771c2f4e23dbf799fb8c0de5c6b8c795b3eb61e82f89d5ee2fabfac2a5fbcdad367f0d616e754a9ecfc9f3e7d1ee5c967c67bc329b77c8da71acce3769783704452bd9883a8f60f20b868e36376cb217fa0b687d7f382ba5f76c5d6d65ab0f1ab97c63a4f122878dd80b13884f6ac7edd5f7f86a329a8369ee6f1e4aa1513a55880a80688488cd4b9ccef1577c8e1e4dc640f14128a3381271c8cc764ffb98d87ec9fcb986e4a5596fa16934de870751cd4c449e6814171295b8cfa8e1bf3847973a4161c1ad7e2acd02498b07c0cb774659109eadfe06f62cdb997096a2d3e0fb28d817f704492b72250103525a1b102b6fc83cf8f35a2e5c13fd4a19aba434bb4c4cc19c24526bd243d62561ba1abda115b278bec448e5cfaf12143eecd88bbd0452de4eb9faec7f61d5b7ae7d25e53e6a7855ae946bfc11904103f93d65dd4fb16b19abbc3c87d55bc5d95c9dce4e81ee7dfbc784a89c032c20feea9285ab5c5ab5d57a060449613aaa4c8c98becc86646083137170aa40c4d4f8df1802c4867e5ad97981131118816bc12e7e5088824e56a8e4e0f0e0ec01dc74c9cb256230908f5019a0425de66148512a9fa0fc14dbe98f7ad37845736f9213121f72f2781387babb24c52541e5151c8d2ee63a77ddc1e4c02c0d53b3846378ebfb0922ab09476905c9bded13f3011a62442dd59acddd61051f37b8a50eb2eac64625dc1f401b1647e91ff3a57ae2947dc69bf708b9e1258e135030008e24932c588b8817ffb111c99017f27149ea3858858a5f646aa8ae05801e70f78e0be1558a004cd105ec16a239642507a993f42c350a405c34bfc50823b137b835aa3e580cf582c14846ccb6af8f87a25fb3af89d9652ae8071d75912e00ae9a514aea98e782630a51218156b33a0ad6fac81e303b66ea9df1f90a68f4567276d3340ce99ea2d372c8775d8a390eb172c290621798a78670d8534b48a54c6ea8ec4de2bb6a05878ebbb45441328a83b023b4f1b6385a4c90e4ee0ecd32da4994a4027da953b101e1567c8aad4607a8b0f4541608eccff8e05040bf935b0e6a0fec2380a5e7db73016bdd47f95530445099d056613e94980636d29c64b04c3eccc15e2cc6f688b2d80b8e786781dafbb680877cd33065aba84d9a0947ebd6c1dd20b79fafbb9f9a776e2f9e7eb3484277d8b8f16a6c16102d7899334d9a46ab46d9e560085bc52aa094634c956c976d058f0f477f51e1583f4f6d7b40f0508321c135b439fcf0d7112c99ba1bdac3049cb6ceb5ca6397dbe9a97a145015f5d49ef6f21c5b9312204d1a2a254d69d0aa0941a4f2e03176470e6de5f010792092c6a61c2bfbeaa8e595a67b05849099ac92365619e48a60d22cc55940f731e90b790bacb1a642068ffe1cc5fd99e58cfff5a6b45a230667898e5319a02b9d6d5a25a6c9a59e8b7525b409968adaf48ee48490329767e939bf88a8581d087faa920c11ca51148221763c85ab0dda68aca2cc060cacce18419a209bf9b664dc9a561b5d63d37c402ae8039c874e571e701a820bc8180d4733cd2d5ceac132d7f1a24adb5cfc8fa1af19a594c305cff9e72ff478f875ea733500f1e1ecdfe966d368c4f259f832d02c8401f08c7451d54ae7ebcd4f5bded2b862a6e06769f41c9ae3a13f44591c4738f9cc24c682d05e71681a634141ec20be8da55c9c98d90a710a7c30e1f41b1874605823f5e8876967c2ffe5218c021e92dfde99c28450b929f690dd20a34b8de86136ecf1850778916300c9b0344f4b3347afa822348095534b42c6b88d43e6c2712df74d973c523cb2a90282481967fd3bd676d466d8d2dc5c49f669fbfa2016149f6285c55e8729c9c563359d0334983901337ae401c598b777ee1e144694452b03c6eb2064a2c71af8e7d7199fe00c5720edae2669585a9b2c5d5cd38389566d665081182d502c9b282794e48b0fd48c9fec62e9325819d92a48950c732b2620dd3b18ea6f723d3810de91644305c46667fa6ffc73d5d7a71aa77f0f130b3e426869720aa79984d655ba0fb13102130741ff20c8e7efe38743fc6c596f7efb436be37ae4f3c4a62779526ad4404eb1dbf1d456e97ce1d8f35d244ea6f0c5d6182887731d5d42a17c667ca28d81d768e6429f52a0cd66545cf2dd4947680562afa5841fc01d525d3c97938a9ba6584178595ea023199917aa2abdae7230068ff172a3e4cc94b1e0c7d104a1176494711f87cc7c7d9d8daa1ca060d656f529e56868d2cccf2c66d3f99d587dea8c2a90afb2d356514f046ac311de8d523ea5054a1c0266d9f7323bc224c737b944eac43b5c27cc0965b2613c63075d610004b195d3f5d2e73519557bbf6337d5b46530d4d95ac21c533f14fad8b6c509e301366a20b48ed3ff97bb5bc0c084cd90320dfd2b4834e3a8c19d95a7172ea7a14b4b396f820e49cbbc76220ae714c00cadba039da0d55448c2c6c5e35fde641778fd1f78898d7ab73ca2b0b574ba0a7dd254ecc53c28dcaadc4459c8dd6acf2f7b6437b10abe022b3d47cbee923695a3ac80256474502b05e481afdcce2ba6f87ac7ed054d5b6afe960a208bb5f4b1062f246aa795c1937ed71706f1ea53c4b006227d44f4b66b711c4c6417853e2ba0c13f8d2828b43cceef66fd8d28e022cbc2caa80e0ee504ff3d6525f01b245811a47c6debd6c8e5efb9e4d761514293cc217e7462d9e6e4f01171e7638cd2e1a0b1caed72c68b32099e014702efe5cd3742bcd4bcb592e7d14f23ff6e863306227b5500070bbff9870a80c36b654be6560d0fca256c74fd6d6974a6f61e0c91f9382ec11c46fc4c47d1cb28e2596be6b2031b5f19b95012896cb94bc9c04cd882ecfae4f60f13926dd2c765c3a1b8a18fa20a01fdcb7aa8391cc27235c7c2557603368e29fdce3d6155c4942a652887058576c59485562ffa36c3c7921072233d93c251d0069304444ae52397f8ec0b90218713bd1dfc11325d39501406f94150f72bbd88a5a52702cf62dd82998fbe2eb88249f7d47306f393e4db08c03683c7f6e753c19324043d55730621d981dda5673b9845371e20e3dfd94a386683b67b91ec8dd982934a9eeabc561344a0b034d8fb4b9413eb09f3ac12845855ef8474fe1637f80c8d64855b04ff2f31cd0041b860d1ecb4edb8b8878022f3a80f72bed4491df066076a0ea04ec4e95c8abaf42f569920028d5eae56af6eb77ee9feddeabbb10b29dd09bb8dfe7509e874f571573af0a97032247cdcfb2afebdc9f1df03da42eaa0baa2d86783941dd3601f1d72a93877b57402ef1495068e411774e801da8569535d60cc606e0ecab139ef6bb21f0a9e29e51fa2ff3928ff8ba77ec75d96e1d3fab98fdc75c494fc0dc5769f4bf29156b525e2a3a3a3a3d799c14767461f3a0d2f51fb93ddb195829d18f155656d17823775a71c572f19d952a64c222222245f0504050405310b6605cf16b24e763f4533765c941b0d230adb85f5c2a27c577abb17dca681de28b3f7d2d36c458f526b5268c824f25f36d916cc8766a04b44d809225096b0309348c139a5e4a85b124ad1a378450993122345e66c531706e6260966038603db01fb316dccfe101b4577c03058fe919419a589febf0c49136d70d9014f765afcba2837f4290757bf3c9ff98a4f2b9848d871f71657632956e1f99c912cac6a01c450dae6d1aed6355446354d171dc40f7def980fb87cffffff63746fd3455bc0f776f317869c81bcc0b2ecdca1e996181a07df77cdff77ff3f0658d2c417bb5ea14c73ce39f78cd8f5eca4c8c289bd10311c9eda8e3b981ffbff0fe256d2c437bb24aee0faf8a8f911b463868dc8441282c5fbefb63cefff7bfb8ab06ab151d6c259b717c01b7176295f273d5fcfdded80293cefb6eaf23fabc9b6303ca88f3b56c6d257d2c4b7dd537569b6f40180929cb1edcbcecbcf8b1049135f537569b6c4200e3942c168ba7bcda6862b5b1204863583bbd7489af8800f369226922d060748099634f145dd919db5b3572c5a01f69eaff84404e5dd00eb3e14b394d20123e3be4949ceeca6212f2a869b122a27a81848304792d2262e285500af6814e47ad5576c527242c813914b67c2522b5e99292998e6fe02bc2253928a37c22b3225c1b0a2a3dd262e4b7f121a4232b182c0c4c712932526319888ec298aa2696103a6699ae7799e27ca82c1bd5d7404234946894a494b940c5d045d14758d263e782024242a488e2e23475f35a6509d48f2818da059e4dd004b596e216941248b848a9ecd8dab293b592194802012a553c3c175bbf1881a321b47971d5db70654cb98530c76a2b336efd8d65de775f2f5ccd284458da7ac17135b26d79329ce7b22fbee3fb2a2a3bfa770b702ef4651146df4896743233c577777df3ad758829a49c2f30248cd16548ac5ba175836a8c500cd18ca81e44a0becc50ad88db70390a1fbdfdddf9b1c651074b534a3444f842a0213f14f4a42115a135c6f7ec5a227544649f8c7e7b7a5f92790e483346504cc548eaca62a59d31100f028bbccbda6a2ee0652aae1259524ebc34f8606fab0f19e0fdc8abbfb4fc8bda65aaf0987ca81e83a898104303b60482aa4607a5c605db84095a9d483e6663613afd6dd2d2cafc8f41b7afd15997eb953a7c4c13acb6b00b6bd5081889a255a814545232f5ab29ca618f45734ea79b9d73bba697943dc7aefdb97c09d63091714984ad88831c1fca090be2253891828429c9e6a506a78d472e695087a3c0101b1819061972984cca142bc759002670706e3c1d0ca020d18314343e3fbfde404a900f9d3f6f823cd8b2cfcef27c10e11542e929e7cb1706156d100a9343ad857749a11964746771d5f568e2e298ee34b8eef506cd29244839defc9c59792495583850ea15003e79aa0d4bb6d62deeed66b76b4165e09afe85493a23f88514edc6a3698a62c7d993fb1ea888c10486e766cb0780162819712e87a37593f1d404d399388600b02ad0d6a823442448191aab9369db79374bed2d9ca2b328968f21225f01e131bddc88472ac29fd93974e46e8d88890430321456086bc58e2c38c62b241591981810a570f244e5a0ca9605041318da85a8d80e0c45aa60f45ded92b32d98a7809f64547377401fd083bc0200711931a2a881c7e1eece8cd44e237da74aba513a6185ad28123478676bd59a838d524b524f850e3bbd1204a09a8a30cfd1473c32b22f87a83bb1d0dc9b2c265e8adb74da69825b5c50aa61e2124825a193cc6890bc8649211fa095c3f9e12a7b6a5825774da1a2ef5fbbc5b144d97004e09080c152f432719fc87953b6d71cd08f08a4e5b335e0a5ed169eb66c4ca05958c124c09e14487ef9d840b25dd3133b5264097da1bb6368402103e6c6d8a5abee46862322059ece76379a858b5f5e96898a657b9581327cf5439b509105cc54b9b68bd553037f94075213e5cc37de57b1219b51af21bd9a9d331564c0e5341940359293ab097d6203aaad58508bb794e821ee4f68242184bf6f3cfaf1c4913875cc7f25a0e5f3eb7c4b0b200c2a16bf16302cc09d801da19cbb2b336022f648248b820381e6693a29c0ffeeb37411277f7547a52cb24184eda81aa2e1e3b9d1723944caf5f83614dc8b87df2fec8e189ae1c958641d9c801cc27932a4109116b4577fb0b6765d4f96077e730049634d17598476e3e6552ef6ef505f7be9b36d24bd884186edcfd7f168989e1fe0afcc7ffdfd584bd5f1ea0f18a69b32369622fea0136561fa8207d48710096f48a653f02eaaacbb7274f9b6cdbc18e112e1949b6053154d244df39094b61845c6088765fb6ecee31b97689196281780a0f77365597d2530c708631e3c68d5d46d4fb6ef945361c7f240d74efbbe4d96316128f50a35b2c76337e2c9ad019506a4f0d28a127c7e22bedf1b9f0fc7642b064d3d14e85dc79d8f5c82215304a0134eda270d114306d672ccbce5ab6159d9db546436a5025ddb0856db120675cc6a89179e939e7164a088a086a97622f67d81bc80f081048f033f61d47ab64489a6883dbf91122d250b5f3fe1229ca07322f85d6f264da61fa6112ca153630623497788d7194aee67f8f1f5cef0fbbb069bad30a2e977e7c49c897887c69e74b3d5f8af2d374dc64ecffffa788a676dd2c365dece6c68dbb678d331a432b82a3a3940e4913793cc70eb53a92264af1489a585ea539e75c35e51863f7b2bd28c6f0757777de8da489383a3cb9210d3cdd079ea082e06079f9ac98bc7fe29c73365a81c39c0d60c8b21272d09973f1d2082b438210802254823833e00b2a131dc8b3920e9f65dba00a2e02a64057a1ecff1f0b3d36fbf7b14115085c699cf8740b18d34273174fb54271562ad54f24979bbc0b077717c179147737d93bde764db7bbbbb576489aa841cb5d75c925060c346979e0c46bb7e3f2a0cb4aa54b4963fcff8fbbbbbb1be3ff7fdcdddddd18ff3f366b603c9e5c3cdd636edd50b46c814bd189fc4e138f2946b635c2433157904c8b8ad4ccb4c91398fcffff213a0d43786c8f2368a73db06cadc1088f007a74f9d21e553ddc1d8adcbde543fa137b9e92a6babc8ed485e01e6b5ffd5e2aa3417e0e94708a1e84a75597eeb1c1976ab2ad95ad6354345ce9a058d18055eb8130e411d3603574c473c200464f5d312a60b0c563385599a0f963deea09a1f7ddb4425e1b3b56410c63ad964832425f04828939c31ec224d9d686f73e5ebd4978a7ffff3f02e7fd72c5255c5c5d6d60f35245c214e6d8288f7270ccb0a72168ce14f88a483339975f652bce8c953189e34bd3154be13cbaa8b0799957a4143cf5ff1fc746fe9f48373cabbb7b9962097306eedebe371b370a5e49a3caa5adbb6849ee74b9f915dd80e12e29745cd90585ade885130d86aefae9bb946b510655e5aaa6b982b8640314872faec06610a4c4870738203c5f126e7e65906f4567676dfb8a453e5dace9a3735b70c7b2ea2664a8a42689718596c56d01d758d570d520a9f152b1a763efc7122434ca0c67cffeee8ee275f7d114fdc645d24424eec5dec2da185786c586a43d8ea489f9dddd2b64df606566c7677e7c46c867889c023b3d8ac8b0da01c959b29678ff3f678c33ce164c252a3640155222ee8e0acd4a9b212f02896258d2c42bbff1956dc4c449ebee28784a9ae8efaf5674c2ab5f5cd7dd96ec31acba9458ed9c2cedec063e2a30b884a593b5865ec8291516231b0be71f47bd92a282c1c99daa9f6286dfd5a61cef7d376da05c4e08814b6fb688068ccab26d538f0dd5718b35711086cd72e63df351f199e84d4356a77b200a0f0f5eb8d8a1710536847518e1b50376fdcf4d40c2f77564f0968df1e3131b4935bdf81c2f60cc820392343128f4801b7ac8a9b1ac982b23ce2b36692033e2a4e70cc665595a7f191b3fc9b2bb075367d1941d9b466c9be7afe8ad885a61b582cb45d3ec23073f9a6c7b2b6922ea49683c01fa49a014932e3a0a2f14613fd0a6154808e0adf3fe48b62cdb7a509123533c39e2c4e0c8b86713cdedff6f88489ab8eb45650f37561fe42616340a58416abca2ba948f531933665b0f323a15d5e58364b612b0412795df77b8fa6551f0eb854189f946a41e686c37b25a8c150f18f070e0c184ce6ead01f1091dd4cc43896191d4c30cce07ede1c6d38b02967a3831acf08a46414c4848210a752d1f3299b62d108fb37577b5c8f7767777e94b4c482034c6ffffb8bb5bedc61868059fbe575ce240c61bb7bf89bf1492391f29c90ed3553d1623d956f88a4b399f292c29e49feaff251c51efbb3a69f9c47b2f14da222021b95d5afa79df257b3f9f49804b72d4a513042c0a620e6fb4309a2df57464d9042167f1ab2e6511da28c61da07eeeffffffefdeddedffd946acc753f41fc0ce3e6deaa00c2072e4252a4c48842ec3ef7a38d0a71ec2586377dce3924f27e7b114fd47adbd53f8ffff7790eaffffc6eed8c9737c1276781a064960f9d897a4b6cc4e1d3be96454872877f7fc18bbfbff7fcc31c68f3b0d0092955b0956dc89073fb1ed247c2d479b6c2ea34be5f4e1b48c30d5f4d14b3c23b08fe0ea937568cad180f11d7ce48ca2a40c873f0b58742ca8e95a1c42af2ca0e055c5dd5d5dd17bdf4d671898113193838189c1439cb28593cc546f11abac07a747a787a727d733d4a3ebe1ade0c7ed2b0ec5e395655b1d3995dc2a550209a6775e712d64785d45576ad2bdbfa2339f90cb1362a2520cf677ae8d77a0aa4dd84dcc8dcc8dcd0dee66e7e66745fb2c7af199b26d073f6050388ca92e8f532038cd588986eb7d576567593ec333b65552c2bdffff8dddffffc959e38cc8fa5bd1713edc0f07c4057142dc30a796dd5df1e3c0d477b655d2d5b09bed6c8e088cd956820abeff52536accf49e6951b6dd20e8b873cf049ecfdf2b2a1509ddbfd8c6466c464db6cdc5e4647236395c6e27f783b2fef4628c31c6d845270a2369628c8c0d6ee787430742a7638c31761de3d9ce6787a4893f2ec412b53bb7c7c2c127aac5b4600277c58e1241d151f41b3b244dfc1122da71b8d173cf15dcf77f24fdff4a405eefbbe499babbbf97477db12f1420a4206905b3a68b437ce904ad89a104a5200e0eea220cad2bdb720521b8d99db9d85d01ca315fce6611a14c662d7008de64effa9f2fefbb15bc7b8165b5c021f863710e9b55b6dd02ae0fbcf15474ad580efe9a036f6766db5a0f508ca61d2b62e4f8fad23295a63098608dd24bbddbf1a8040491f3886fa93905fd22c1ac64c476c66eaa11d390e9ee5ea65ed98bd4b04d1f615b0e5c3aff69aa858abe5573aa936d8b34863245e74064085d7b5d72c8129e6fe678ff03554ac42b450557cc23c661080ec659096b08c55bba9226bef791133e6afd3a65b9e0bab879c15a4c494ac6b3bc18014982189900186729d0b112aa6a13a82eef8b30a56b51386908553c12b0d619d52f82979275e52784307a45f151052b57ce1c844c66a5b342a2c024abc2eaa86bd530acea816da58153253c310e3a33c15175261602d35dfe25d969f525377cb5b630f7414962288f0741f15309af6152170f78275c84351c55e7c20418e4eeeeb20468f414d5fef059e05a60fbf1086518d3d8388ee5dea1f3becbba8ec358758f901c791d85ed6276323b9b1d6ec5de660c333dc2913471e767c39150cccd39e759e3fc4d93ebee6e21199226dae0767e84360811a9effad7bc98dddde5ac314d0e55052715fdfeff67de329a9dccdddd9386765e77b13bd1bcfd184f312265ca2b07078c0c7ec2bcee7b1f3724b8cfdc4c2385b3b32d11101be0451898938ee9868b0f493552509b9818566ed345e711f3fecf62d81dd324e94e0adabd5fba54674e0c3b8d57ec441af684987f86f041d6104cb64de2117aff83521f361fc3fe35efc7ca0b2caecbd235bcde774f3656e3c263e42c496947acb215f9bc8832d1f5f2e2a3c99309d69ef4ff939a70efff597bdfecd170cd0d1527f944bdef923ddba081aee50020d8949c52c9e4fb1470c35430cdacd44ec5d9b60a6321368f4d35f43df539e77cc2dcf2e1934ac510c662e7cfd7a814cdcc04f24363523595720355d0cf09416a6b928f9c189318db560dcdb4f1d69ac77103101e9ca66352d42fffff6ff895e9004a304bbaf18a2073faada82e4f0200ec934e4586af5136190d3406646fc4d41fb6f5489646f962516acea928b2549ca6ff54cb2894b0fe04c428a4c4fa07f06556d487e32c4ea85ac33087501ab8fcc13b39d051e250bf324591bbfb06a721db16f1b4365a822d598da5318e9eaa5af39134f1070c0a35d486b9e51fcd39670a27b279bba1143a778915d9cb293a9226f27c3f60bb4c09760b859c730e41ae050d24389f09285366703d66604080f12a063a14d420b5d531f70061f3fe939b996343e1bfc4ae5262c7f9ff3d646430078c7cb470d8a8b81d49b90d7bdca250a8621f3bee1149ca0ee3770d333fd145d361985061f3e9545434a2043fc66a8af1cc8b31c6f8ff1f638c31c6dd8d7b3f2d56dcb86543d465a5e8620f173c475b376ea7c0c88894145340fa5eb1f742f8fee8fbc618637335ea2281d7d1ecc5b07abb2734114a62624689d08828b51f7abb1be3ff7fdcc18d132670356e435b984f13eb2304019e966be3b3d7a3d380968f212d78dc380961fae0a8cc88b15c705df7028b6bb6440072cf23d311b04708d0d041d376c6b2ecac85d2a3c1c3f67c46ac44ee6ee3fc312b59b4750a33c886ca48cb2021048286a70db6fdf1f5117b03d542002877e414e27d042d68696955ed51b2aaa6bbcaab1abe8f66b5bd27cae9a267d9903411b7f32344b4bb20ab77babba3abf78c0f3d152469a2f082a961cd76bb00084eab4eb3a2a3958e158f55ce6ac84a67c573b3a2b2da383b5a34c3858a0a092369628ccbb0362dcebde06a8725cf72cef95c5586eeee26562f324cb12ff3c85c35b545e7e27d46d54687e8fc1c9ea2db3a885d3f382f2832a4415e8f78c98a3e04e7546accd5996d7369ce396370aeaaf7c8dbb2f2f1ffff89d84a9a28801af6b68e3e5ec005fc570180846df940caac00c916af9beebed5eb0bb6a2589eef063b34936e38614b9253c10619de055a37281c5fdbb2b82c6ddb8e9b4af4028bebba2c553c55b9aa21b10cfa7d799aa25305a98454c3597b16c6e6d5ed0ae74ae78ae72a8767de66d011d5fcffff203f922602831d8208af76b4ccf11934cc7d926c5b2369a2ed86a3630ecd96ae8cd0eca58acbf137a4aa51d96625fe7f2b1d491379dec1cac7ce6650dcbde503f9743650e7ff28831c8c35ec9196c3732846b26d164f079834a8844ab659a906208000431a0000040018088224ca5a0a3900140006200a7194a068342218c6c160281410842110c3401085300c0050108681184e6b781e28f77ae83bf3c26c4f964f6c326b70260cc4e58abbfc1c38b37b87d5071ee9dc822a4de911ff85b698201befc3219be418421763ddd1d29a4e280eed523b2148f1c0d37a72bf01f54ba9fa8daec07480f4bd49c7035bebe50604d946d25684966fe1f21c9203b08854acf2518b9020ee518746839d961da51438fb0c60f74a191931495bda1a899b26549bee3da34dc723867f735e2fe12c845a58fb2cb0789e58dc65ed14f39b3b04adf7ae0fe13321796a12e0312434ab64ce8257cc091fa340e6a503f149a31ac859f446e78c15964800687616a2eb8289bdc5ce494099d72a2dd71d1cd9ad64a36e310e8be2aa104e02392f4cd17593b468f4be6dfdcae1a073038ee85216ad7879d552f2b54d809cae5aafdfa2a355b4a468c38b183111d632d0c648073f5b19ce1c843c702c7869e89a265682e3b2789ce830541182fbb5333b76383019bbe0f86ce3cf71a4843fd2f30677768f74275a6453f858ddb82fdcc1009ca75eecbdec762db14fd626b97ff237c5aeaed50a7eb7101eabfc7f22a5161ef911df3a3aeb686d6e6bd0018db81d88a31a533f7ebca5804296a259f57de3b9b17411e67688c974a16dea3e28cd1f9b152e8656d1c32d89b9759019d086514992afb72a9395247becc136a20d493dcb8ecdd1b2d3b41036617965ce5f5ed9bc833e95645bfe8c6442da261afc1be68b2bee4ad25b6d948719e14cb9dab6de210bd2b4b470a5ec0d959566745ed0c578561c54c0f7a6f95749e14a5fcfd375e041a9ed814b1433ae234aa18eed565dbd3c58ec7866605283f251acf0bf4866d080a75f5bc8f026b7f0d0ba34e05de40cb41a8cb4cf4b1bbc4c17eb34cb5288845b49f87bc832d6fc832612da93469d13e8f794042e6f38a1a2a5350ccc30b929f068dc674b3884aaec5c748628511f99327f84c452a191f770ca8fb3701079acf670969336ae99ffb0a22fb1f94e93c7d1731b8c235e4c1940ee799ce29f0582a852a95252c0a163ef0b57fe304a55597031c54cff8082990eaef28cd1a1ffc23f791d9a567c00d9f96ac1c3ef98f27965271a09f1d7fa118d121dbf615169a85e25a9937346138f15300cc4cf8c7490240f0bebe5dd6e9538f05c36a40f7249ef22fc9bece9e8ff4b20d4b042c55f41e31bec2265bcad08412e668f3a5a4564fbd1d51dfe0848a66051167d8301cea9962a01b8c20da40514722e0807b20076f6ecedefddad2d3a1e8c42a64a590479009bc48a06df8b6e71f5ed7e4f7e608a5908ccd94f8c12399cd16700aae17107e0050aaf4ea5854341a65c64cb9e294dd5e826b71ee87806670f994cde92280c04d83bdb1dacbef1e9b4812e435ce4bd603f0a93c0c13bb33dd9e0f6651e76e18b94132c057c1176bd404ec079145100cedd99f9d1e685af9d849b1acd4b8b40d084ca1aaf8b5db1b598036d7a5373b8c988a17afc7c7a221a003b5e21c665b5d8e738bc442a6b6d0eec71cb663641f10775852099f08816bc6d75e499aa13c034920f8aa5a9cc5bceeb9a8ca942b118e91bdafe9f89f0db5ce407802be911c91ca5fc8825da2350129cb8d6fe8d817c30aa422d78feb6a5300603d7f3af6c21b2b4f2ce1b838ae40a44b93548e7eda5d3a98b33a0d4253f738fadad259223315c88e084f82bfda87311586bb3624b6f33175651862f816c32ab83d71f25415d0766b1e08d4ea394f3d5504a5170b84d6677403bbc7c0068e95b71c4c5c9028f961f747e1d1b75d14bb48e4175839516fb3ac4770babf900d17414d82bc3f73e7fbe18eafd2ec3bfa8c19e56757bbd17d9654b938e1b512fafb7a6da8d9e8eea7d04225ca7bbbd6a297c094240e6d32096f6157ac6fbcdbbb09954c2994186442c44daf1bdef27a5108783c329db6c6be4cc4c0052c6f5e4960f187e5802fe4c22e6bb067018c73631c13590d8209a80c638ce615b5029e2d470e564f713bd057f63b1afa9c1946d76a5b0c3d90164478f08790d312a205b394e115ac4ab69d4866361d800e9187da105e329f64244f649184f41213027c9992993a41906a4b9601817b83424dcbce5fb52ec55988728418792e1dea342e3adb7c77a028e88e27be4e77e2c53c28b77debb938fa6d930df6a03bff988c65d001136a71e17856bd5602cc9012b78af4a746e6895ec8d3783e5077c140a97d18d8048d72e7cf805b29908e9804158b48d32334fdd85b93e5f95e26e893200db19fa83ce3d8f174bc1678873564b736113e97c85cf05fa9299b82ce2acd5f5cc91455218b72587e7ec27f1957bbf49edfe5ac0171cc58763835a04e94d56d0ca2b981ed721706ed82d2cc20a52724e4de2d34a3409302e6bb9a96143e7c112e65561184c6f36178f42376b0aed4b9e9369d58d9182f49e663557112be74d06d0765152b96a8d2b1f3cbf95cfcf6423032c2257cce567ad90cae47032a42205b971ecffc76c243c3978d801026879d2f307a281c68c73d573d7616229150a975ab07faaa97d029831be1a7488087f86250ddee76b246f4afffae8b5d8d8c2d48b9faff936f59c7b577b10bbc0aea42e9181c6fe2e674bbe69deafbf506694f337353c04ee2b4143c3c395c319914419d24aa17f33c2d2c79cd7e89a393e3f6f20e9ea117a100fe9a9889e5478f2e2a725385149613f89e8dfdaf41805784443d33805b489324b3239cde6ae36b5672db9bea0ec21de9a414a209b08d923cb8f41765a76fdbde51af45812b9eb84ec2703b66bddf074e925142a3eddf19ed2206c815bea59087d8661829d30622f31873742698adfabcd02d336383c828f99d422972e829bc6a8276ed07a130ee96b8a6c38c786efb641e1713b0ccc886c1b422b97a82badcfdb27c0d36dea8fb7d1a5de612f7e0a0acbb151dd838f3e5869c4a7a5f6edd763abd03b1fa9af0722276eab4f570190c7e05267455d9b15f0934a0bb0c0dc6dc8e5c59a39151bc005f4ae4bc0585d99b0567ef7f621ed6bf4de138b9ede32939d47c64667099aee0ac14b7bb2f4f30dd638841218d5683ee365080d9655e7801c406109cb402571cae44fb1417c636bb0f28fbb04cd3153d237b94b2091071f388d282942cd9d8223cbf434f3782789082587a95e8e2b343711262b25c77cfd2ff639b19569c5c91ee8a25d091788d6b8bca8903d40a9aa08b1d8d922191b4b5e889491a3a2995d81ad1f082b48882dda4e46acf4dc7cf503388b8a1d81d0acdb810befa2937e505265ab58fc0b44be66034a65c730cba900d480b18410810ee309a51c9ca3096e96e963e198c64699e2ec21b1cdb65af9ed3cc4123bca50934fe02633415f861be6b1e8ba124d1be713633a1c0037385342e46d1bc727ed46fe50fafb29ef039436c9c59128068cbbd4862c0b01e4064b6803ab77939b06bd35901b679792341294b19cc5f769655d01f873bed3b0e18c1de22d0acdca081f3800b7f1f744b8ed0eee81000f5b70e53eb81870d3b14c6168a544de105cf2e2bb2c917c93634d8a9f9e20594900da2af971b0470fba2cef31ddd08022712786ecc39666712764f1e9099f883c611829ae96c8f8c06fcf2f02ed53038b94bb3eac38597900f7ee594136c7d895129013b83785fc9de3bea57bc44358df1459d618106d9f293a63cef4928732d44a01bb0172574a4cf77d09916271ed13b5d1abf667996316954af20c72764e8ef7e0288edbbd299b6df804f49ff12b632d080618962006efa144144a8f6115bbf51de4c653e7d57cb9a8df6a860bd0d65cb90b7e4afb1a9f9d5079ae51bb1a2fc815d728a0c09b5fb8435ca6d8a8ad39eb8ef044da5d6e5d1dba3b502c03e0260087b29be4af1838c4968a3f86d7daf174ca1e1a1112c0b4a044ed75e9188d8c31d7a32d1707803f3c9b9ac1f30c2485c0d481d039e9a1028fd8f026b022fec2c08e0c2cf94a3088edd25cda97f308abd4af86840a004a8e68c6c7ecad912d05319984637b96779f3ccae52b056f2ad31a1238c1636f62948662648f640423735c3069e5eb6f832c8124dbcaa58422beccbed55a969ab84bfb0a06e286d67da566bc8d5c9e60f2ad003a89a65522587dc8f1f82524f06648d40ab3586631f01cd7655df2d11e3fdb884a28f55c722e0abb25c96b79973efa484afa8c57ac158454bfc420132bf778f50b9abe2250817ead28925ab529d7a4573427c4179a3b6d7368382c917d557521fe17f86ec83d66ff5d80ee05fd43374004c3e2007e090cf605450339922fe53c3a64e32c48e4673c9628c78d840d6f1fdb24963168353219e03c063ce2e4567b1bf6868370bc1624c1d7a5d90760bfe70918441cccd6899d01793bda050dd7259a1b3473bf47b8273b165c62351fe200e52c5355518b43593e54860082ffd71f4acf556d40deec4782491464d7fbcac802c3b730b122ec7fa8ea231f8c2e9213584549f22457f18dee641f2492b0323a90aab176ea1aecd2c7823b93bc979ea40944c08046c4d45e9ce3728df408ab2d70b114dc32d926c982a373f0d266009e113dd546d0be68ec27e945fb0e312c7b24b931ca562736710a01aa84b82679d102826b6df2071a747d519459200ed6d2e49cec90aaac487da9543914f1a2ad6fd641e6efc3460fe224625028c176cdd7d867679fce30b072554f1cd4d6e8dd10bcbda63859b3c5d332ae43095acc298f4801dae19b866bc1c24dfe444d150c609041005941027ce9cb246ab6389c4536a891dd509c46132651b38273d6d9b046cc43a399c5a43abd4cd3ba7b196289986ca721ec31a889fd0c9719aa41cfb1692f51b305e5cc80c4b4e998ee4a2be0041642f7663f26122462d9605fac4dff54d3711cb6e46ea824383b9c53862ee2570dc6c0b5a03f8a82ac2b1d688fc3c0cdd29a1093894b94b387b8015fd685b02ee2dbde3d90c266320f63a5aafae49a189221ffdb9495e7ed187bc3c1c850508542abd8362938d84a11141cd91d7cc0585b910c1f931687e148ced7a639193a0538c84d6408485075c301812ef08256adf1cd829e2c402c847ec2a56f4a2a6290c7421d3ef441c7ddfad2885ec35037ce13840b654d181a653bbca5a02754354a902463188f2c46e228cb106fa02501510d729c31c1371c2d75c38f6294736455ca7d472b6a8d9bed2dcab4aba06a4546da34f1950aacd4653acf89116200e14be0a6c576637112074ed03bb4d5698e4057a66b0f26354bf4c7cc92de6c7af5413864a9604b3d8cc5c7e43167a3c97c1a77cc07bae80bd32ce36fc7a6e22ea113d99756398ffc51b1c851b87a38d3416b7ea679b51a1a95c0c43112381be1903a15da408f444736647a816196bf0f54c2806a85a48f776921b0edc095e5e0bed058c2a60fa122741b1db1cdb28ec601b6a7ccafa09a275819c3a825602f971b481b59f51585225e7ca58f3c807e0f93fdc8a2a666356f14de6b0ee53877f5054f4e713a2963ef908707c910adcf71c7f572139accce2c0cee93216b5a648ccc069a0c38543d9342ba4f8e8458422b761c920d46a43e63ea53052028b1ea6d1fea16d3284623f7b60f675c33e68540ff05360b3e2acbc8a25e7e37b1808e66de11c438c77dc04e86107a8146c01e2bae025fb6b6a2351943ab99d34cea12ac433b1280a9b8d022fe9e238387efc4629bfdc0a306ea7806b7675898d0a66c954475023f81e5b52e239e3a103ad026267c310872a5e7a734a1ff736064ce4a689a817a0dc48b60af5f4b8066ead8b3ec7c0a89e149eee863b1cca7b5ed353e178b48780e225e219a29966f0b634bfdc4e2311c4332110b256704347ae69029e19fb2301d3e5e31b56ba14d7aa28f1f9f4f354d2a9e35f94a30700d825e20fb405ffd8c860b48fe8720e1ea8c1d684988b6c5e71e5ca0b112c0b4de5b63ee9dc961dabc28c883ca5e26105faaac7f84c2753e60b83512b8fcedc012bfb441805970acbc0dc769e6ecf21ce7e495e4108f1329e35118b8694f51b0a63dcf2b5a7ca9d3c9a34967b6cd05abf2111c4932f401e03c22b22a37c7b06096024c046e239bfb12f96813a09a146fe95b81d8b48f55499c8276e83ceb63e1a095818a5c3792ab5420283c3def743f11943761c3eae09b2929dfe8a5153f26819a34b02608f0723d68acb0067e113a973ffd69e634354aec420ee0d75fb81a8019c2b4396ca1f507d53580b09100f73273747c555ce96dda7d8d135167d9fbec41784e06f6534af5168b6cd8075d6b209f7274c0167f92471cd67d873f6a97f81ec48375ccca39c614922715156eab3014da9d08d3eae1dde8450d2b7bfb5c9c7f40ec8d067f8259849cf87dd06057133d58f530ffa88c530ef03521cc2684b3fddd9c372b49ed7af821e01269c3c3e03f9769c9f9ecd94b5473d3e92b729236da4223e481172bb25cd1248ae9be174f8dac534b284ace184f4b17857d60c0513284941917ea0d488da7cd76920a010386a1d3a25b868fd463afa2b1fa8d22b0e31202f154c5fe5102f046c7f3914de57ef0fa8b6fdc43f656a6c5733ae7b87018247216e4272479aae2930a9f9ce8b405879c8220812458b27a41834b844c36b700303a69cdf98401924f7cd7917886e213877f81bc7acbb96cb1a6edb30124102ebafa51cde9f7fc1757d2026faa7e2e671c05f4a3f6b3824a495679e62445fa5560a8166ad24c830da27d27f431fb036b81acbe01b525fff80b225c5de4cc40fc6d412b4447257023be895cc253123d5df9094adc2d273cac77900623a05d9fa9925fb06ab1ce3f764f0c67daa6f7904c5ea602a0881349314d7f9abebf677da0c28fafd390c491b66978bf5ff228e32e8c74a021f309137cac943b61eade02ca946080884c3eb9a1d7a9c364a6318a3e3daccd7f88d3d608468528537db89442bf595a4894894361349264a7cb8e6ec62c64bca26f47eefda4aa7e1a9de92fddcd5345c1dff8499ffa8f023e74ee61d08def806787dca02eb06c839421e6b4136b32b2d978930102b3646cb3bfad04eda6180d7a019d5fd3bf7d05086e0e5c10cd151bd0417baf7268e6415a4adf99342689fd1e080d01898b3f2b00c1b0369c36ba7f0e2dd6839c568a41a829fdf0d0712a023c6e18d243b34a1e196024cc5b344ec53ef8aac783f4e05796cbf35652c21c719bc42d23bfc136a634753c78b519c988134ffbfa42ddead5bbaf486295a88193f47776ecb616d4acd1ac3de66ef8dad523e7be29c46379fdd072a1684f943da30ebcfede9e37a2e62fc4cd2351ce10453c9e1f948d9cf0c7682361ecae39f863e183542ab9fe554f12a9c0e56658c329d7ae69b770ccf10541502dae9327e1cd576a8b23c228fce917e466f3b0c4b627a430d4e522396945177a26469ea46ca8253a989f8068d9db508300bb112c0ba34c6064e503d501552136e9045a02faa0dc8b0312839b398ea4e0d85469ac123b8feae52c2b5a7a72cb4fa0ffa73d879c2a6ac79d8b60b9c2f76c7205709580b22ce267e54955e76034c871e0c71877c6a03dcf2a2507489ac1049c73b66abeab620d8a04333ebcc6377b6ba6fb394caa5871210903a042fe8a77dc3fd7cd6f52cf0ee6637839c9b675bdfeda4fea3bd2c3b75ada1a29d35d99d9387ff5e3f8d08307653bdc72c7d2624f1b4da3dd7b4199694dfa28624406d4517df1a1142c2600f4228426a060d078843ad5036fac8cf1b667f6e6e74c8058e8cb8ade69f05c27352f4e1eca87fbfc86d425fed006e282176baf69fc2e6344c0e00be8b1ca9ad78b755b7b434d4ad08a9307cfd5478e5bb5c6d64356233c260fd5e43ef7e1f3939b861ff0653e2aca156c01c842d2aa2bc7d5254c429e018cbb791693dce0f1e33abffc5d0e499052ac6217788390b5d261bd364b7420faad7c221c55b3958ee89e3b9eaa35c3ef2463067ef5b2795850cfae34b0b3f96f3516814f6c8a7d1824cc45284cf6f4b3442658a52c111265ce5b1545c2cc577a579ef070b5742b0b1ccde38f34b03c8394e70088e6ef63ea339269f0707c327a0bc8ca86e4ee4110965902e9e3dee7f3215691129b134991fc11dc3f0c1515b0d8dd5b5396ae38b2fcb65266dca63330b216a513f0fe57d712dcf9b2a38afd6a1ff7990898b2f6b053e75eb5f85641a0444e3e9ce580f7d28a825d6eb10d30cb0b05dcfb1017e9e9d33d8bb3f5358ca3043e8d08d969202d2047370a5f81bf8faa2e3d058324979fbac83b6431817852069c904057795513fbe9e9f8d04e43be3d2b1c6639939f2b249fabd3159a416c402c9963930136805c9cd7dcdd7eae9e516037ddc0f9aa0789759811f8e20dd98429be5e4c8d6b8f1b9961c305f4ec56676bf26cb1a1b495e908f1b2690c000b05df3d49abaa63d89b6d89a9d5236915d782fbb946ed6c5c7a9266b3d7052f4d7423387c3b1aed1ec2d9a0c96445fac033095f04c671dba7c3171e80aa8b00e79f4c4a72845c6d6618cd19b7458253d41cc8c74c18658e470e4da9ba3a712c73141f380d96a47db354d2d1a90c278a8271cc9b91aaea68fb8ffd5d7b52ad78cc757832e8b013ae9eb862ed82bbc4f73ec51dee2be9b7645665b79bb21996db7e9d0520bcbaf4e5f2714190aa44d49d24da6dda400a05405cdf246c2381364d4335536467f50d6a6a77c339bd741acf346c1a8f2a4d6d2e4865759332f945aa8674bddf27b2d19f990caae0878ddaa119cd565cfd1ee4825dae0e545cf041268562a9fe4f9c6e7e5a3977e2315bba6e6ab02914d6e77e9a55484ce1530fbf96b9ce529a7eea2c26b8119543a346a58257313a8aa0a0ac2d71ffb6109b744a0f6593644988848425fbcb7f5fb7482c0eefd1fa4e98cfc3b6e3d6137779e246590f8ea78f29b8409c10dd8514a1f09ef12b3d4ef157b0283762596395324ae2e8a58d4be24ae3891b718c804f4b94285a5e6cef259b95acd4174bb3807bfeeac1fafa96368aad77b124a6a17f8d784454b7b5721eb97819b5551c8bd8e786d0c8aae62a2c8dbab9fb60646943b0aff934931af9dfada8a4222ffee2f82933797bb91819b9c025aee62fbe6e15cf8a4343f15a37ad766bb8832646009b9d9eb871ecc193accb0f5c6c5c1e7aa12caabeec7b6891f11e9224c3e6102d3adeddb790b013a601408aecb73b9e9b992267287ae43e31c54f3436afd524a77658a152bbb6449ef2ecf372a19da342372fe756ce81dac61dbb7689eb0d29cbef18743f2867dac685e54b2d406a63029750ecf453c1821f0198b331535517cf190ecb36a074f197b2b87dff18fd14de373864bd008ae586e54f40728a8213959c94587b06bcd0fcbdd20571cb2d77e094b61aed6cc9a32af0243b901509ff58cabdb8081a7ff09164dca59847474f4513e96954ca90fbe5709442f264afd72dab852e41895581859f26853d9a42d3e477c2b97bc60d14407d7b1a69b1d33c3d297caa193c8a5ecf5c9c536a125e4a43abf1cbeb92bd8818ee9658ebe90517d7cd31c8349d8050989832d280194365405d350eb38aeac9d2bac6015c56fc3fd1b3fe9bd66cc413cfced72adb252d30cc87b05342e80d37e0bf821733f7349a3f0d8b6a19fc3d8bf2decf941e8d0ecf3fa32a297c3dbda838a9190e5f5ccae3f4ed7f0ec8cf64317037fceb65d6f94d67780d535bfe44248ab3adedf7863467e3c94a5e2afc9642611eb7506ceaeb315a764f614870120b9f37ebe9c995d16f4097f9bc3adf8020e9e0665ea7fedb88e012bca53c9bf0e89e73aff3e8554fb160a8e4dfc7baabbb23f4a4e4b4d024eca560846c45248500d8470f58f2a550c3340a7334869ebca2d34e5d76b9f9c62d6e1a11707ed218157f3b0a92440f2e25276cdeb1cec6662289a7979c0781a3547e994acf83864782633cb22c7ec4793a980c6155dfcfe004073ec52e9eab9c994eaf17ac4a6a21408b62278444beffa832319cda127b7c7391276042fbf61a00b8cbaf3add3473b47d3345a8695683ec75a47c09c18762def3a711a8cfedbe8d27d68d61a091d635d52199752fe0be7314b4ab847eae231aee3108622ada6a2343b3867ba3aea269b8623648a87f5e6d647ed2de9a78829bf093355508c6620c6bc43629660895c1044fad906e081945338914a51a85ace099f07c29d879ace27f860acd525fc14a4198e3e6738bf8446981a2bc35cbe5d0b7c03e744c61670e86946ce7cddefc3d718ad93374bdbf00192deadd24bbcb2568d3d317894b32c601298c37d52f20a06abb4f5afbd16a4ea43ec51833fc6fac75c42f6722252d3ff07de3decf0034acf46072bc04d1eb5ad1d00a09e541b815126a69ed24e9c4c1a2cffecb63e136dd5e51051bc9a231a470d4433e955535d27a5aaaa0ce7a1a573e5a751e8afe612277df0d12106b12043f1558ac82635afe313900cad0a518e94de60e0a1b00c3dbdae91294ce80a34d28e9bb82075b88fb69ccf027738169b2d36d240f61560c31fb8eaa834633cc5a734254c32a4be5bea18e994150513a36d0ead29f2ccb23d40e709a67d2144a3d4815a9933458f38acdde2b495edc30d4014214b197a1673ad4e8d422a1f564ee3ded330f48204b090a2b7c48222abd7c80559e707a1e81bb018859d3468d443527b78c13534e018ac432db19134e59071d6e8cc8c4c536c4c8b0d56519cb89e339c51582833a9ab3ba5ddf419c0347b8c16f9716f8fa2ab487f12374e0b4472c2450014f269721626d463695a87782cc1792ca5c78ae5dd83e98b0be4b62ada97589557175ea2e30bc7003dd3173606f8b75cb465911d6e699d7b55d642ba6ddabaccfd674ad959a9db7cbb960339c115fe847db33f60a14bcaa69e2c37d2d96a565855f0bbbea352f01d81c684191ec3ca0aee036eb6c6d771733b1a6a79f829a8b5780aac02d220a706c9882ca11e29e0315a34ccaed1a42c3234ca4f95efe020c463eca07801f6b28e940473930db09bfbdac6f0b328f39830fdc3374d9949fb36fdf2863eb6b2842388d46459ba48f0c0f9fadd58a9cc9cdf5d89db224cb2ebfd52dea376c698e91418e86ea2cdc5529f4b9965ebad68b5c7a203c337e1a4687e5e9c1cd37ef86a7bbf3178c29ea552c07202366df44a9cdde9d8d9838454af65d54d79a7923c194171c4bd2421db5c6a1a9c44afff14036202ae0fe80e0b23fbb6598968fa73df80b3e4e321f43894c8f0c83518ef12815d2a6d0520a96df70b63de3e94d800f21d760f8ff04307de1cea57d0ec75ee728a5d091ffd47b3fc25691750240e86371898a7ec95cc5e2d49912e3c70b71d52e22bcae6e09b3eeba778806fbc4702bf34a0df93438ffbc341db691e496d00eedf45697590ce1837515fb7341bd158c63da952a69eb14dc11e82d69288b9262490948112474ab7c9a4c202646094b4b8db0f63fa04881d0043d7145dba5f42af208f657ba05e6394869c97a424b69f76aa44c535980730a25cfc2a7fa85ba9255892fac20f3c263db0b867621cbe1dfa06ccb3ed345319a68922b41ff95f17729641da615717ca2bedbc5162a3dba1b24907fd1b84077dff801b46d5b3cdc4f623078ed9be3b718eef7e293c85bd9098c1addacf3296afedd93c93a228a0d05658545b8c1a8b001295f5a69201f82f3027f24481502a84b22c1c901649222d95829e168d60a073c95d41c12400b192b4d3d8f00a24ed2ad1d9c4ba269fab602991f64c34336984c922b190e5e9dfd0425c8c5cc91a8fbe401a995546197a420a1a871a816899b96840f439170bbff96043cb23b0b7822f9d0a2de7eacdd1f362ac831c5ac9f3078e150443a8d0f391e514ac7c910605073cd775f08ea342b1f33b87fc0a629512cd0f8f93bd014e8044b6f5b803667a4df29d94b01bc16768605f68d4afdab28d1f0cd8d2db579fd4ebe5151f79e413d0bfb452e848b12a6513704056da7d1b6cf74937cabd2d68136b47a5d7e58ae4cd8fb271abb0d200f7b2325992b31045efdb5ba3d3561979d3c2c2aaa7e802edd8762681f61837d725473b7d9b366b496debe2d629744a1674f2534c662f2ef459bc65abbea0adb641b52bfe6bd4a2c6d84c177f94a60352d3f857511d36a671962c2bda3aa097efc3fbae89e4e233f6f28fd89cc84420b4b3c48c4ae3688830b0e1c94c2864150d367f350126b4cbd5d00be4d3136ef87ef1d22a9d92e1b12f8d52ee1169af6fc2680921d310f97c7912419ad5e52908932dc979b83cfa5118ebb35249c5dcb2ba086d1a190836792916621e39bc39fcffdf142ecd81c459bd31e7743c2c8b1f4d8efab9d3063a1eea3b8cc1da8468362b9250092df2a9e70053de37717daac1dd619d4e664dac216a6773f4532571564ddc2a553c1606e68154df8d4a9ff2a90e62ae8b96ea5ecbd6986f1a7cf005f76ef030b79a40ede243d3f075c158bb87b4f513c0b9bf0f1dc5565a925142bdaf1c5f2169dac128ddd8cb7d56d85d4b0e97af3946cc9842382d9ea283ad94995b864823e0cff735c0dceaba44749c6b355578620e5b78aa41783b26a758f3563d5bf4eeabdab3588d41474f21083549b83832fbe8c933cc58138450ff355454fde8dd9d6b775b8ade2370650b4986568321686dc579a9b9e91794b7fe968ca75cf1181efe33246637960c209dc9a858b16c1b74593e24f74177b410f6ca7287c95cd505a6d27df18dc707735cb30062a3164b2c906fe7dd68af0b290ab0ddbb3fd67887783c9658cc2020345030e7c7557cb25bf6b0679c406c1c6c73dad7ac4198da77d3511c019a6c9b0e7dd470e68c1939f334ef8ff54089f82eb24d99b2c4b432a2af1da35b16c04e1cf61bb530bb15c77445085c22338dd68b6bedb70e51384e4999b6769f46db00a4aa4794e87796f84104226848afa814e520f7bc9e113369369adde122b8887b13bb1b42818d2e764bc759f28b22b1ad0cbb84163193527b0fb754e489b6ecc13907387cb5c4f0e027b0f55049dc4edc8bb3e69a0b852f845242d4fa30d06502177eae9460d94defa27622adbed476399b05adf24488ae51e0ef447b43d0dcf2ce6061d8294598ae2ffcd30664e05f30f60529825c5d8750a5517a38eca800b1a119151ef320d1feab9bd2373813a24348ac3e1d8394fedd27e3237c7dadb900863051bd0ddb471a2b78c27b45471d8a6d5ab7a62c8341b54acecfeae14bb4c8bf6b90d1acc2eccb6a4188d1f4119692d906a508c80aeadf671a99b3842f0307211bfe6d3041e304bff9f37fdf73ea5a400d008ee1a4cec772ca2732c6009e40ad077083f08c2ea9e660ce05fd70bb0756956362150305a90536f4c6a7e9a0eaae705b7f968a473017e95cf1663174d17e4bc23ee81ba37c1da531c9fa583dcef028d1468e3fad505f010ad80b3c06a0960d621b8b211a64e6c4df05876db29cc161322071ba4e29067ceacdb8c264695197465b2414ff464c8cb0515933767a485ba3f8babc68f6c59cc3742a0e5fcdd40d7153eba5b5a0d2c54fc371271111c0b4040c63658d3b5b2a94ff0c8ae33a965ea677b6a4f84b6825e916ebc3341fed29626f57dad0add60e80f92dd13790174b9e7bcfe3e80628ce1249f4cbc3228d98e88e38c522e1a7e05a0820d206e70c98d6f096cda51cc1a7040020577253b49eec1a9afb2feec0c5719c50dc8541dc9df4cc3ba019f5813006ec92db4919a89387431b4a132c531f7943877ccc2ec1a40eec64bf108ea8a1baee9e9dd4e0b3aa45adf97aa5bc1b660788cf50cef8deba331a63b804cb6b651f71c604a6f0bbb3532e7fa30f9e81b771792c44f23a189b5babb1477fd4baf30086abb9cfccc21d062e68445f881d1a242feda593fc9922764f600c2e46f345bd9e2a2a4066759e5df753d68ca6bc01ddea9513e28e75a8178660e4e30139af38670c6fa0a54830334bbb304d969265ad6a0a051cc23916a254bc6d3b0512e25f8a3228c52ede0ec43d5b0ab22a98c8c944333ef8f0d195d6afdbd33fec00a43458f7c6d3712193982d1eca0e04aeaf828111b138aa9b34114c33baaa3ba00a3ca0a47d8bec67511e71d107f2bd9c54b392232f62887c94445a2f52602730d696ff6a56fb8a073f0c188abf28ea6203f6575dfa356e9efb6e2b8c85129f29490238aaae86348b3148c6c12e7f0aad0678c6722a6eef998820582bf0d3c2483303e3f86a45776a2acf23c509634ee8038440943769af9cfab93f7a26801b429f3e63caa002f9833e756b10e5a56ef5159995328372b735f0cc925e5a0f675e5c9c0e5b965d16cb0795ff7400867b89aca69383226856437bcc88030ace64e9d440766ab826a1a6618f1b8c83adf4560f9cdfc3b198e3aa0bd7c3342fb9d50556c173462ed65dfafa593fa8ed15060cd4249b233956b805152236a8bc92c92e2242d6691e04d8d95133126ac8c3ccdc83b828923f23e2cd7c4e8d609a7f98e833720ed5a2141a00214130a3b8f5594ff02c48a014a29a93e5f7048a1710e9ae96206747f07ce3d796ee748b319fbe83ab24655f5b52feff3f7c91145908373c5e7914ad77fd14fadd642e36242e38a9ee4488ee4488ee408e1be2d46586dc80696b17b6454af13e9c581f5a67efba9891099522611912c09c203a503bc03ff69a7babb1b02995a777733bbbb731fe1f880b0c2de0c0c90764f4f2c729432425068298f19177f7fdd7a49caa7caaee19d5c8454571240f348d5def69fe697ba6c78bd5e1b5c3c65c4bac844edee4ef16a7a248f1a25161eb25ca7522404246a376d4eb9bb3b0435b2b1bb9b4c2bf81ac7929269ee331604329c8b0ac08660042e8a072a0433bca35f87bfe989a6e4f85e142847c6f2ebe414a3bfffefb0a37f6a94d2e9c8cc402b6e2c33bb7777bbeb853fbaa46a548c11b5c3c55103c958627fddf7f767f71a276606620164f9e5ceccccde5ef384e517b9a1815af0587eb9a84fde07a8a9ffff0768d4f8af0834c3e6ee3c4a0ff02c01d1b075d2ff3f3fbdfe7a4f0a33cfa8b9a3105a776a288ab806ad88a20431d51900f9810c822a8a28bfd33ea0d373ad4f38e8f572cf17651544ccbcd323c2429f1d1192d2cbce127a72df5662fdf286f6a065fde5bdab24e56bbaa86b0c5fdbf85b4593b46c73c8b8e51523d216023b1fc9df7f6ff88e61b73bda925ddfea0a192ab5ad313b531f79c5ef01aac1d38b065131331b9c9c97193c36b6e1eaee6e753aa4abb95bc78a1ddd0d0292080b9596989e5e40888a79f1998919eebd975d185674c75095648761cbf7876e54525d896ee6f9edd088f48e61d7caa0eaa644752d0a92e639539db1f36ce64fb2baa9d48b08b271a63a8d622d8f9eea65e8c7270f5e8a8e85d42adc0afde02a94cef4c52ff57751209b4a85939f41b55445547a753e94e67ebb73deb8ef6ad7c5b7ba06f57e87db9fdb6099ea7a2af0f2536bd3171eb4247ff9e911799f04d417a19d764513f40588d7d666fe6597c12ee509f88ba59f83a3fafb63544379c6915f65c60aab7cd83f4141d65fffe1980004d070783a94fcc87800033c86759f4010777db772762a2dff59b2b12e448eaece8900cbdd1b70003fe008c664b49aed43083b9febcf295232ff10b53a25e3dc915d6a0e1253359368acbffac584962ebd2526519251525d85dc58ff31e937a709dff1a707b0ec8dcdfd6b8c58c9abf8a34489f5d1bb99995be58a2153a67e74e446dca8c6a019d59f1182acbf44d5ac5b55fb76eb1947aade56d70f28b0d00f7c3e51d2abfbac7a225ba97adc76f94907455308aa78c6b1c579aaab93942c9f56904f3f92242acfa712ffc1df6942517914ed9a4cac4ea17d475af9c3139cc798e4e844d4661017cc35149a5f3d51e21f4e9564931b3be54875757233fd03ffd418f6871462a5cf9029457585f281da9146dac87972bf08d41baf9862d223c2c20f4c7c5a0552aa72e78fd38d3f44b53bf8002f3a482006194823caab26c458245ee5b44a71a64eea050908476aafc6a019dcfd669304d59b621027c2c25ccbeb3d10f4751855f7deab04c9d5fdffdf7fb959a72965f2ff653b11161221292d3181903dbd029c66e93eeb4449819cf8b0fe1269829755198e04d16652b3d6f783691936905f097a4975a5054d67bef75e36553f028aa23c8958ea7ae236c2c2fb21a43795727710b476245537c8c42d75773fc11b6161973413b82a4f54d4077db6b90bb95adbcf4150d01395f4a062092211491df23b494e1025824c4ee9ec2742ad01ea3060713ab0cb895069d60e6c8e1db0c69199d984928925134ce8c94fdefca8a4a8ae339e59cfcc67b66b367fa84c7777a7e026c2425caee5dd170a7a1d481d374b2879c24784853ba2fb7202e9d59e50e2e01316db93ef73fba7527e03e4e6d62658bedcd8d86b561129df7973d266c7641ac3b6018eb0b09fd0143d11e70b8a1f4d09f325458d460ea088bb688a05aa947bd1a71fcbbd82810783ba060173640ad83ef23360e3d30c842de2d83028851c965fdd228e8f723499ccccccfcefeefe3a4070358041a05a1c95b29a2ae8898e0666e695f39f363bd719b4b4e47377cf10a5b45afd40d36f656a56ed593679272a333333bfc8042f3373fa7f6394a8a9991f333333ffbbbb3f33ffbbbb3f474145455971fe18df9dd9f9f11113f4889a76e6ff7f6e67807eae36541b8a32882740771a2a113e2d097046a908e090ebbedbfd3201ed9bc3bef1af650b5272921273a3b1782f4044a975b00201c5b753bdc47a41437ca82f31bd9cd607bc0e1dfaa67fa23f54cef7a23b0e6e2c738f999999ffdddd9f99d9c5ece25f6a19c1e7b5eb735198b49ec3dee1e8719e8aa655a6baee76b1464957f35f3586c2d57277bbb1fc6afec931be6e8898fcefeefefcefeefecc3f3bdbdb6538d6e292bb1b3ed6c7fffff4645306fbe6b8417579bd5c72f44458e8fb013de4087ac8c53a34c77a4e66d1f5faef2112612192d212d393879e28ee7fd777cedddddd337862dddd3d75ffd9d92e2f1dc653ebccffffdc014e8c27b4251098a1a21cf1d342fd99e1eaee763500a45121a7ed349d6faa476a8c959cd2f099f36d5df4c0c3471ef1dd2e88de7baf8e985079de7befdddd98701fc71553e4509407a298918885ab36debedd4f24e810f93132c44386013ca382e667e7bd773472ef25ba2179277443dddd3d0cad28f1b9ccb81116065d3308d867f9e32327d5d5c742ae07201a92f620b4e3a1adb187a09b0551f7c99f34178ada4e2e9b734899a0e9c2cfdf333b297370de512637c2c2dbdf21a44097eeeed4c5191add9c724164a65231bcaf12edcbc7100b19c246214341cba0b20f261530b06831382351b072e184ed02928e4b0b06b41624231696da8f65442aa1c5c20a9b0537672eacd8ecacfc80b1b2de00d71f3e162aa8682b8c3f925a54d4f546a6f2e38414176dca0c06170b57528eab157689606b1493702b9165c1c561a949420da82858a54950acb406a89e40642c346c183855052c1fc244ecfa05e2c17a6d3914880818be82db0944c905c7c1ddb4276be90b7e9fe6f08b9fdf70992f76ba48a59c05b9b7a492383173ec3dadc6b069b6729459115dc8c8d445cba752215ae4d2d42ec88d0ca91016889f3a20471542c6cd006cb823825bdf2fa7842af094f9ff9fd4e3f3ef092fd5b5476d8485dc6773bf2914835e93f49123c2429e1e9f1deb83e86cee36c823afe7fb01d91f413629d652e3841ab80d6424555092486252a35aafef1f99581fc50dbc9b080b712c2fb7866d919b227b8826c2c29a6de786638772e7f7d5d1f6dcddaf8e2226d65fe278aa446570df34723b59cefcffcfeeeee4c3306f79eb5509a7491a91a9bcd4c432c7fcbbbbff119bea174b6de8cc48f034532333fb82ccccb3259c3333d720093633f3ec483bc24c66fe77777f36496bbacff8d9255f897f752581479ecd224eb608f0d44124e8ac911e8ed13cfdec908a1c4c683597a64372232c2c52a123045543fc1c819622f11bc486f62c7921c0b327aa5de9c6a0ad74fb13cf3d9fb778b3b7d331ba0c3b48cb347022082e862da48759213eea8e1d817794b211a0f9547648cdf5fbedd462cf7da29fc2ef97e1a3ba0f68acbfcebfcc02c7753a9be64f8931a684adebc1953bae62163baccb41b41be1fffffccc6283db291094586f92f959dc48753362a3cbe5d41d24104f1cef9e3b4d366b9c42b41d17d5f546ba9bce7cefbd3cb28b7f77776f63dcac0baa990eb4be176a9b5b4258343a48207aae89fc9929f8e8c00fad9ce05b5d1d08a27189d30120e09981909b4ca4d56a2a3c41968a890edd78acbfcebea9342cb51cba20a83673df150d1cd68a1cd220c7babb33ffffb3caadc091fa0a8c618b34361ccaf12b459adaadf45b2d62acbbbbbbdaac523133f3504f0799d9bf9bd9f5da2153a9fc2d1a0f505b43327aae33fffff3f91ad211542f86a0b3dd1b58de664ed19899d964fe77777fe6cb7ff95311ecee3dcb3b74e28432829fdafdff674111b9445dcfddb712c10e1e8a262911e86417d870075291f2489b93f9ee759d99ebbd5b5d81a23cbdc9cf6e3bdb396c201490fcf273ebf09cdda6bad2e488b090a7c7674784048246a971670904e5c6fab5e1bacd3abbb4ffff1f976b79bd0798f85e01ff7c570120c286c281ca81e281ea81f281dab13914ac60924db86fca7d53dbc45b9b7aaf269f8bd981696c2632a18e2a141b1116e2e4f0f4f88480b27b053cb97b37337313f1485ec022d575098f080b7bda470db164b7922fb4997facb1ded199b4222ce48560d21b4df37544422a5fe424c6fa4b2c82e283751f6d29eea6060e545565121ba888344f345166f30b34359261d7e0465858b6f9dd7f5346244cb43825aa2b0c89a0697ef747b558f419d24c49fca028ca0ceaeea66824fbb9babb4609a666691cdb34993a85e764c55ce807c76558c57aad1f402ca8333bac1f4d1a54323b2b1419521139b5060b2af3a992885ace98364dfa61b8b11116ce681021d31991d3b5c462443248e02b0202a545865701870970390c13fc8a7a232c2022288245021b4e06d92d080829b2188c0d75474e2b3fcea119d659d40368749a65d1114fb5ae619736762a1f379d8f56081f3a9ece3aea8218a163139e080b7bb7014d7c6b931f7b3bb0e16e48946e7d518845641f26189f270f9338052958eea451084cabe652842596d2ece91161a1cf8ee8617a90da254461848e6b0408ac675427421496464ba31b8ca44af97fac807547525d439089b09056bb3cadb1c6afec1c2ca2bad6a891ad94f9ff9f5333022a301cdc62b93675454015981044a0d0d44328184963f0c8211f2498af0d2e2d2f545679cae6b64a9dccbcc38db050877a73f86072fc549b1e2a3a6e364958ba984d135df0e684861fdc0d07157e6237422a3a7e342a1d6e488805baa3764324cdfd6e2680e67043417aa03b5a1d520b96062fd44f1f1254baa367889edc025a20d04c8f23298e943564514fab4186ba8a4801535ad106500040aa6b8e61b0427c20f36025840745ad6e1b37b681538b6e455642e062076043dd90115ff60cc68ac5ff8f9deeeeeeddccccedeebef28d62955abb3bb7d23c9b40d5dd0de324d8efdf5d028deea7078c22a0208d51546c4575b2aaed1978343a12c532b6b8bb09381116e6604c6831ac229215aac812f61311cc13d2051589ce8a85a0af0549aeb5d2646341e2635d27d05a40a224a5c212df4aeca5d204b8da2ca49c20ab7063e502ca5486d216539b922408eb049c2b09d36ac5146c2579c2a23af1584b2a15d4ce0a88932b65f25377f446a828944ff5abb5cea636fdcd402f10fde15e9f427bfe7a2e6752bb3fa6b581be2feaadf08eb7983028b44d2d6198e4f8b6226182365347ca1836946c8485490bc034b91949a0090718a7d8050bc02ca111800d77418270c0a5c29c00d850076484fa6ab5d5ee2e80ac458096009edee7b5680045ae016789bc0e5ac401a86b6d56b319804a923ca30da400c2ce098ab03026a309e0c5730a408a6000ce1e322b2c6c133e98933d2cb8e092a2e662f6b8c1818119033d7c300eea8a0190c3110917005c0080a31a1a36d0e4361c1db92c1003b8c0510a0c28506353c007061934b4a069f091bb109514a8044b773aa7a0000ad31a00000500140672204921940600148004170e5d909864301c9905c260281c1404c38030008a811808611088e14094429260c21b939a9f7a45745e0b3ac776058cf4a9017a4b1b144e54cb51710137e2049832a18f883cd7bb3a57a4c31688e2c0294ba1054363ff278af4661270d4825ea297684f0bb115e76951ccc4893e40fb273d903ab659634c9d4311572c7c6bb5dd8abe051308c6d7e1017f79040e762e4edafb5a3a3d4b97538948414f5607408970815621d5e7ce1aa47938adb88cdba23b0eef03896c75b21d2b093b58fc5413ed1cf2b328bb80683d27a21fa2827c34225e588bf8af44a78c944c440e8e0f5f10f09c70a9c0368448ff0209634b089732311df760a0a1ba3d1c464c5773b4e90ee2be91b56e2204c9624f28c07e39c0c7ede765c305df9d050eaed6bfcbbda813f3bae5d90737789a9e21c05e238d48f80e86de6c00f16ca81f1f401606c83c4bb38375b5f1c80945b0371e9c5ef463589891291e0071e3612a9e7f5ccc00d6ec3e074329a827333ecd3eace2173218771120c5ec07fca67fc5eb4eb926cdbd1e1a6d667afe7341a3320080303dce0871885555380d0367ba4d30996f56a68f3d70bc5d16b1195f1889a2c97b1f15e9151f88a4977bb812d08a6ac0014ae03633566cee218c105339ddc1cbefbe41055f62a2206d7ab0b609aab34d1a818384a25ba49442d1dff65f568d6680318b39c42606af721c9d2b5ca6ef3c9d2cfe12662dded51a9368c730caeeef0659d6486617622899b99897d428842aaefbbe56aa5911adfe346bfc76038208ecb8aa430def350d4fa0c6739a7aa4db4ead0835e9ba5d7d8e1adcdadab78045d2d237a4a12e0cf8e606b42e88a0171e20462a8b822a8044953271ed9f41dc03944e3c306e96631adb69df0b2e1763a3da78d80572eff7e639486c42373d1e41df67c4d501392a30c748fa255690171c2dc68309f415345daa693de3e8d5e1ae6fbf747cc512fb0a9fec0703c9ae9853e0bafc21764d969f69fe085345827cdda9a498b9086900e37d2ea59c28d2bb97e2df890ff47a9b4e503a143537bc39fc25f901063811029badaec4fc51e3441309e6e578d11c9acf8e5b04790c7f0e598498df4b5acbf129ececfe67238955c35bee88de825e938c45a8e6a332ae27cda6f8afa714dd36f69c802c028e1a431ede5b87f9e86d4125960df13992b949a2d53a771608441d8a872a8ebb2bdc6a9e7cb21db7a6491282c4012baaee68e22edcb07d95c76227da57f8c619d25119f0f516c27fb3b92a57f4a1a5152d8403595f2e6bddfd348a45f0479ad89d45856af1db446dd51aa5848beb9ddf3c27e58dac577b0c0b2cf9cd18b8fb84e81cf299b1925aaf1f3492efc43e3bdcf648da4213d9acd7632b2192dda2f3a9c5b389ba93e47213f7c7c4b88f92a0b907f092169d6fc0ffd6fc3830e14baf69c9c8f8eabd70569bd2a08298a5e58068ac44cb28280d4821ca6fa372832141bfd3843737ec6cc291cd22f821efe08a6d18acd44c462bdad4f6d5c48eae1da4a2698d2bb48690b2a60b5af56ceee6d03d86388cdc41aea363203a5d8c7d490021db70f30b1174d82d255314cc7301b27d65c4210041ef6c9e6b41135566c4a33bb28e19071ebb80d17b9a5a8b2cd3bf8e9b1e81dcd6af64e6a24216dbac8b5018747d7388b11f7bbb1883bc8633609436a8c69f66263f622ab353d7d8db2e98410f3f9f29266ba41047578a4213f6ee1300eecb2c0c0b8ba50fc1e530e727202ece94822b21658ad55877473cba56202e52d8230121ca307116ec954d9e28723dcbe530aaa6072d8a0760db93425183a328ece023408e14e926f41284e558d958649a6460c3988065081699ee41d32f43bc9524216baa757370d5265ce3106e0a0b6b2d95cb3eaa9bdc188db4ae0bdc2847fa02040e3516fad3d3fa147bba05454761d80de1cc404797c83eec0b07dadcf764b5d830a38a79e5d5a0c48fc3f0afd58a43c2dca5bff582274e49cf78dc23b216141d3f95a5af5ec5f4f2e0dca1ea8302ceae1d1c576286be8dbb22ec5717d073d1315f60a9a3c2b383f6ba28f76ae8ad50becbbc3c8abba8af4db94476100cfacb0baeaad734157912fa909a15d6fed66550934e892f4bad260f122af2d7af93b2f77ac249b51a4ec46f021592342f567c56cb1a9daf20911eef6aa112d1232ccb24e1ab38798bbeb02793e89f408ade7ea1711093bdc75e53287f57c30bbe9e5e69a9f124a85bac206b5e5cab1084c3e188d030c3e58ba9a1cc19e5207718c584c9ca56f435761824321049e2fa97b351cb3daa9e4832fc9f6972e7aa60d27b34f32f3155f0c743a2e51af4edccf51ad3012f894771281f97a11789efe26ffabb000452c82268d1c42de1370346d39068ba19a94966fe9b75e5b964cdc4a72b5a4ac875b643fef088e09c9e1a695c5f023b95d1c7090bd955640cc764e23a9e8bd3b0bff56cb2908bb2781af0646a8c76cc53918fb510174483604a54a156fa32aaaef83f9d7e35b777350b49698a8bdba804705125948a9ed33afdefa83400a07a1dbb2d00296b8cfb9d0cd7585731c794b00f133504252d03d02fb98a7175da2d9c620465e723ca31af649f85839841367ea03ad615c9b3b93d0eec065581e19ee62517f5dcfc17b99da4e7c61d01ffeb368964c49e52e255e54b2b9cffa775191b6fd6615ec616f9fda4ea45498b6e14f7f7e8d61157900b4bfc44db709d2641bd593b968782133f1c030cdaab7ad724ac24406760f4d40da09856b0557cbc4a62262a3648c3c5b153dcaf16bc11f66d8aef2f44c1dba24a15a11b9ca13c5d1d868f22eb24b6658f4c23c7d59a9ebc8d793a3c90d5edaedf084071c54e438079f5f8da4c1e086da32bd059cb40e51a947fc0ccf226ff1697540803a92587f3dc3b60f3c6d4c31ec61cf9ef128813f53649844b39543f9d4c9fc63be52ef8af6d19c6f914f0e5a66cfcbc83bc3287f87244c7d879a7c545eda54e6645438047bfc485b8a6f691d126360503350c6c17889f6d0b9db3ae1376fba3ac42c7f8acb70f8b5e83e94246150813041a1d32912a1340bbd857d089b164ed08999059d920b200ad416efa4c7604ff63c4d038522dec59fc2810a3b5f8c0fbb367eb7a8a77b4843ef5eebda158b20dcc9f85e8d381d135837c900e392022233c6b309a36284d86911135acc5025d4a0fa40b8d1a9813e7be667264877c5d4805c37ed4d24589092c0d2d2287723136623d258eb938d3075d60447fc3a110f12b94f82e115497ab7101d0603e757961dc4478228e9720ef8ba5a1e7350746e2884d77223f2cf39c7f870200e2741ecde4422224f4c23d16dbe0ac030757ef9d8507b387951876279d5b66422187a495e5172a14c4a49b53fc37c74ba766e5af9bb3b4b0fa492d40062941467128c95494185bf19e8a63f1982b713249378d3be514a972397efa6e67e060bdb9ebf607f565db6041baa23ccdaa0d9c00d3225e905d631b9e4804e723cca53af0c5db2053417317e6e3a6143223d997e93f8fa8194110e1efcf7be5ac8a18d30a684c3c39d2cb8cd22f327f3cbb62799e62398cda8180b758a971295e49413f941371ab333d6d0aecc5132729302b6975818c08c0c9aac6d0608ff3da44d5dc4b591d2aa0ed1f33b150fa4bba81b2a747eed5da982664c6eb1efd810d64831b868e36f154dd630821e38e433b92f4bc18a23dd05ad93772847e020082eb2f538d5687430fbc38a0d84ba6dc92d2f8791741536b42e511b61197bc85082f60e66acf2ab285baad7570c1bba3e4722b7df2a45b10a7400873dc133d6cb5b1e58d992a65bd081f4b5ac9039d2e750ffd2510a1d91e0eac01f8bb32f9d1b2aa6a23f1df1a2402baa2904b6641abc3e30e808e012c3af34f8ba71c13b206d7bb2b4c942a7812b53fa9a8b0be00bba4c6585cdb936bb74ff9f97d3ff3b91221b6619653aa014af236929b5c501a25faa49595f07f838f8e4f923440877f53e86637ee79dd4e884f9bc8a557528387cb147bc43076919854adfb2ea36fdce6594ab353bf0fd0fa5a62f2013dfbdfb411824ee2a889bf581409fa879d5ee38f4883feeb0e6d5a465fb77e6b3f1cd3bef27213c336d4c8c9d97fef074e5fe732680d28f50d9f789241f452664f2363ae5910a6580dbb921c6a782bd67803a18c55beee2df51082e88a43bafbf07caa6f687eaaebaca52e54bfdb84797520704ff27837608e241bf48a27058d248ce1366819eb9c8b1a21c99ab0bef27d908a1d56ddc8e6353903ea511390bc72b03eabb0d6370e97c54da3bab4e13b13dd8b409813fd931ff6a8b793dfbe6e361a865e4869337693f7a653dcde6209ec17f1c8125d9665368c43f6f8311b6fba09e7e000ee7f6612430ae11842102fb274ed7f848ff99934ea133c16f43ab1b6b0f30861d303f0fb7dd0a4cc53152284e4b0879b7a7659cc6ba46fd7100f34f181cb24c4ab74c9f080465258c8935cb0b4417e23675b149696ef06bf3d9cce8bbfa99bcbab8c7a3af3466ca8c3f9882a36c2c498ac8eb708d14df6702d86a6122331a23d1a65cb1a0a0f2bcc8c4df8f86f2c132316cbf5aed878e092204dcb4239b363d62b39c4986c87444f1c1ad45c8c857ba82c060298058f597082b1555e5d6b21fc63c476a601fdc32dd8250d364c49be7a02c7b8a401e97462e6595f0038f058b4542e76b755ad19f88518c14d58e8bd5579bf03352a3d927b41dfdc72dd7ef7a6edc654649af379ba9e83cccdf2fee642cef7c1f27933081817313da2725b3b41b058b59f2b3bb26eb8f6be08dae1bde95e827ea7f597c0497f60b4cf6c37dc0b9690f3f5d55ecd18026503e945f41e9e31ccc4bbd9dbe6e2068d2ad35510f3b45f6148d42f78886845b88f9e538bc03715fbf6873477192678f55985fd6c83ed0e849a55b1765ec92a942a94a26dbe6e956f6a1ac13cd76b56adf1a86f388d2aa8d934b1043015c90887a4c6843e8fedff768bd4d8534f3a944c4e35afdde62d765b66d4f40de6424ca0bc478b7c71799d633ac343f8166da8ff85db198ac4028ec3015eb46a232ba4347f83520096ae085ac8f6b2a41790aaa067e47747849401bdf7d304faf01dcb5bc002204c646ee1db0cb624125c16d2d79125f96ba49242bd503c5076eab77fc242b7752825da8b2999d2d6fc9216ecae19c1db6fe8d1a6f9852c5011871cc56fb661fa3c68fc30b106fc0a7a23c457fc324722d1bdc012b8b91b74187ded0659f6feb9c4732a83cf07e274304786b34571ba2ec77720aaf7b8d9c381b211e541259e564466a68ae27da527b02448f14dd04f266e0ccb5e1adce1f0f9e9447e7089c365f8499292a69c2d7a791509deeb9a4018ba3042bc7f1de7153fb4bb0422fd0b16478ed861eaa1ba8b1c8bae5d735a1a9bb1d99a9129c9623ab77f800e9bd72c1a98475ee39933055ff4e879b32377e7476300684f3a953bf51756af326dc518dfb1a54936f85331acf609fa2468307a83e419eb865abc2c12c8eb1250c7b3b84bb20814fc945a2acb47eda811fa1d10cc5cfeb455e53b46a6523230bdb39bc248438df37f8a6257218b524120fcd678abb38536700356e52a4a1c73f15e92c44ac0b3329858874a17b4dbfa92b473a69ac7018546a7554a26d9406a6803f19259d7ff594c6e38f08092caca08ea22a61ce779bebc9300b52141ea98aadb661aba2c57f9927888f78220ce227cbfb0d45bd2c955906cfc8128e965af28391c26f25b6e1f49a894a3249afa310591e5e03f2b382063e7dc82050f32e6a37c51efc9c641d04b89676ccaf9888e75558f4e22f1eff7a063fe6aa9073d6acce1c8369cc2aa27442328308a453fb9d1413a57fc46ca785d9167c4c19d85de416a64bf3bad3fb9bd4886b2223116f092742c4207bef26c857361d7f033682454813a8a9c7989264dc517058588eff41b36910e190dbcb63428619565cc06ae9bc2100508dec2c25f96fce56174ee896b9f102db82859cd11bcdd17832afba7afaaa4afff23d740ae5ac0270d9b3f72ccb5e79e50249a0127ca18f221b9a1cee606bd4674cfe1698e3a2857c9479acc4334bacbc96c4f2051ee40d1b26d7b5da6ad3ccc0504adb50b38e9c97caa8a87e61c7573a387d8a9e6bb8a80ac27602497df8f1692d0c6099af11a9f61ae31b145b5761569331e49ecb98065b254d256eabebcb1b5ca628ab362a977322f5b855371b014403994fe08302174cb6a41153e480561b5ef0b6ef0425ca43c71e529809f6784ee07183bace2f5b318217dc01f1f86f0f8f9768ec4838273eecd8fc3404b18a7fe09ee9c7d12d267791d8e9d03ce127e5c9cc13bee68c0955f0b246d41d6911aa241340c2edf5b35bf8c8d7c7e61111a357a3b83bc633c77e056d7ba67da5dafbf992112a0662373072b97e8bf2263ef3cc4d0cb7e53502e047ba4cbf7f8a95816d670c90bda6e972e25b4d99ec501325b1dc304665b9732d5badc5433bfa80f99e480e62215e9784fd664ab566c09db66fd4fd51fe7885dd3182bd43de4d67d18d43381945782609c443d15bd0bb935ba7a9ac8793eec27f14bea646215ceab9156f9896d4946d70a1d9bc5ef8f5af6ada690ae21493bb619f8e7493fe173bed2e7dc499a897c18bed643115accf9de39110a75131284a38ccbea0013c2b3e43227845bad216502cbc73b8b5f7d8352ddae6276561edd15cd791ac22ffed132978fea1c852f137a9d18b34a2b18e51b119b7313276e2fcb6989e897a1597061761a8f8201b87ad76db366a0a3f1fd44c2e068dc8b6c8a83c1b04d5cd2209902359c11a336629468c425876356c23c34bff680e17f2431c321e5643aa7d16b2411535dd664d3c5c97d65459a81c2ae9ef014bd40b1783f5997dc04e285abb8b1174f33696d914947d1df74700fd7f22134f21f468f4c688d37403cd0dc5743dff3b8557c248bfeca7397363e045b1a7859af2524a2708b8a0cdee9b571f19609db651c1b0b7ee8b2b179f19a9f44a3127e551b0edef5934942a560021bbc17d087482d47e9e2d8ee3432e496e754ff9c766c43da5272f0aaf11e9425b1926616728be84c93c32e38792b16a6bb9ef507b31d7752330b653e3bec480f0c3b4270578302c8677f822fdf3276ff6c2fec6d0e6ec9d41396a1ef2d149b45a842dbd720f90f1910cc8b4a3ff3816b817b91cead4ffa9b10eeb451c3c6f6c59128c10919525564fa2c4c9781a1dbb328e55b5314bf63b35616c28d7191f0cd9ba5a0651a21fcad0b4a757292f6d0d249e3258b2b18639148d93d2f84a0d08f3c10c84c4086360ba1fb171ac88cda757f0bbb6c00ec7897897d42b1c135003888b5a5844ae75a7355d905af125f6e9ab120b1b70fd86217a841e3957b166ca0ca1bf268ef13b5762a8b0dca5436bf0f5e8d7d9d97a4544d357a3790a75ca3770de23dd4e04e137accbf3083c82faf3b681abd970a594176d087e7d8ec6c5267bdd35081cd31dbeb0a58025483fb14ad3dca21efa7ec5fb2dab198f006ed35c004928ab12bea51c31b314d4fa0c6f364fa08675ddb52270080dc3ef5df3dcae63631b158e4b4a4c9833e0b858d2f70f389fe537803075539b5ba02ddb98763ee6bd60e679a66ddc181fd894220cc04003e8f6bf0213abcb5f3575c850fdec03e8f184a907d3dc07417601688d5f69651f60d5f27020e03405e3564b45e922475e8e0c8f2826106d0d82bfac1d539158601e67546b02d39064f4a43c3ab72e081c63d1f61f760f659d52c2f5cb77c93e0faa11022c408a1aa644763fd9c82086a32b09db758b0066c8998690d15de6bc1f183be550f241993e9b1a231df1ea9563476a3e1376fa9a0b5ad3528400342afe2eec305852000b840ecfb487a468b8af55152542501a35812e6aca08614841100cc03b1c5607cfb130ea1f5e43a93e93d001182d2c32c304a306acc3aec805d8f2fbc20ff4df6a4819fe50becee1f4add357d83cfeb3c650c77e96b5cbc6507f815f6904ff84c436ff61a8a7aa9e6212e8c8db8a7c5fdc7e40db9b5d3d44b2da1d30d81a27b7f07e58368a1e4443e5f1412d146a67004d1de97c551909792b8083e7a0bc989eff2be6abdb9c5c08161cc89866c8895711c4ffc6e065f69249516daa614e36bc925e270aeb1de8ec159f047f2a10b87297cbcb1f653249d29e4c1b1664c8bf81a45d42701d9c4bf3764e1fb015c7382de03b3683657f7999d67d99a3e446961928820281d26e64604d3f39d467de1333c3dbd87017d1e76fdd2c353f1e44d90bbebef97ed602ea365928e8bf08625523c5871cbd4dc1e01ca39ebfd0677bf6cac42b35ae9125073cc40a0793e23489bc92a59b4f795135059a90525dfdf3f24cc812256df5f24cd8b560ba5f7d9579d74ca50b4004865ddd750aa562ad3ed413d0d301adfea176ef4fb4d23248d45ec19a43c40dc4a2f777da4207fc42db7a9d5037aaa92f479b72b2b77f30250b0e7196966b8220f94ea1e9cfc914cf44d596c26889c586717857bb21db4eb8b52388ad01df6f71e5d38c51e3992e947d24a9c12269fcc88f164b186db1e92a63c37190d56fbcbffc796800e193be945103069a5253d0a8d4d9c806fbf70575b7bcde01ea63854717efc30b6df989d08fab5d197f83ab11a6e68bf0b1702a24e82eb0e5fa8758835b8082c6bd3612ec0ffa57b352b00ab794db0a25cc54039e20a1acc53565b5e858540347887ca01702f8ecb161e602435507e57ed2e304686740a27fad4ee1c399b385309083a7a76c0b9989aded2739dc6253e17f75b4c1ce7a9d09989bdfa501b24d0712d8c646bb26ca1ee5b640385722a2fa273e49e94cb1de9d960b10644411ced1519c4a07c55f51d7e31089f14baa9890e34de5d1139a7d85794e352e390b4b18399dc911f02d71b02fb0f2095d6f5e008ddb8c853afd1e8a2d9a769f35cda617321c6cb186e980d2ed229c4a41f7fba5e890a99b8330745c42c1033d1b1ad41519dbd949811ecb3d00f5784bf328d37b95eda68e52a7076bb252b2c918fcf59b054228975480ed729a596888c580cef73f477df2b1fd70ba60cab38a515e06742f7ea8165753912cd95c30913e40a74568bf3efd2abf50a71e39c554f4df3140d1eb8ab0df6f1eb99d8b193635d280f1081bce3f774ef7a3440779797b648cf7a98048dd0e480b519163e065a54fb1602c092135500ea8c1d2960d4e138d6df058ab18491f789a0d0b0740e3bdd7d311eeb3960e26743e0743aaac5cf31ccdf82fa40da948a39589654852afac084cfa7ec7c13858a3dbe8413a00e6da515bdb4c594a1806c613f687eb4738c62b33337021474b4ca8b9b747b363e3a517ec160594c8ea15d65359e03a35fb8982f27c66be6788aa4188c5928506b4ec93e5e0e156b80992e4fd17626efb4db4911b09a2bcbb7159d36066acbc95b5454321a1cf8a3f15f5a6e13ee569508204023b4a6ad0d9f3e65cd39ca6795be0c700eeec57852a8290382fd91489c06351299aa4673740928f71565ffa1d41e3edacd8ecd55a8d93a88a6c0ccc2b7cc6ebe22cb7db59b7548abf926616d882589b6c8c01fd04d94be762974c04584faed9813c3696a70ff15ff496fe4165a67361d4aea7f3e21d067ee618b0b1f42035304f7e4597c8f1a4b8127f660b1fc412213311b6e2b462198b26203060f460059e63d0931bb6f092b6eb0a56a983f0497d3a41160ed1c25c609aacfa38c4e344ec99d41aac402545eb48b5fc9cf03dc7b0b4be3c3d88f21fc1f9936ff658d2e6b30577051f95daf90949fa03d33595bd852f492dcb54913cdd0eb602b5f8b6ef78baf5af601fcc13653e705f3b182de103202f2120a94713adbd9109465bdfb8415612021d52a4558f7f876e10454c906a14103821b8c56e1e8f8bb4008ef86f46378dbde99c34835d4e31182c99d9979d20e763872f00bd52df041565dd511498b4d796cd97cadfcf8730e91f1ad2d2cf8eeaafc0566215774c5a8896713d29725a34dfd4c35befe9c92c45a6a3c8ad0f113fac771854c9838fa64e292c93c01ce6292ff5ab2d6c14f860c36746cc0fd0e03273832fd49e7d3e113f404170000e4cb038a67c7a8551e2ba11e93c759b4a7225824693d42ea0f9efde155fbe45990d187fe83c52cf0ab090355dbc4d0978137fcc4f32c64adcc5bf98ea425aac76b1818388ca8829f0e606bd0d98f33d08171eafef12110a78213b85704c41234637054661b5d3b8b9175494dea21396923718555a0f41f18cdd70e5592083fa8799c20bbfa71e0a58f1556f4a0f934cb67873f982bc212864b815042b6e600bdbf8dfe2a9397e3d4e844ba78593e07e6c993e14a073060134bf0cba63f7b28811b8bae19ca831bf14e684484259a3d4980d26090a660619c447b128ba328b0b79a70cf19408b17726b31a0e224655c8366e7437ce1b50852b650b6279738af857aad11f56366385e09b2e2a95c307ec21e968f8300f8a810377a31dd331bc1d8a17922ace00c8093dbf88d1e2f3a0bfc61a19f1a27587786384ba07ec80a05136afada2546d6543013ff9d323a8f03381f09b33c367a8ea8e8a500d8cc874874dcaa740763518ca51acce17556c46eb91f24ca9246f82f616f6d0751ef6efd63b303456ef5323ec049c240b060d89709da11f990383f2b3b5cb6214af9fefb573cc7598104364f7b18e91b11b49f3f4b767b8f2cf80cea2d0fb7c15be96d448d46435633a6613a00d625f47bab7faeb0dec179ede5f96fec67cfc54e5768aeb511e3f21810ef1522c62d3f37dc61ffc5e8bdf50a1addbe9f795240e996e5a9acf9efb6845b12efbf4fd87db84368da465f67f5d61ddd21c7f63eeda51223a6360a42e360e846d067ae6e2ea19c93d78a56c83825acca90b2528d8bc6ea4da3c62f63a0cfa18637536a35d4a959437732b0016130dc006116f9d030f5310131503f7877286097c7a514d7acbefefb1122be55191b77035aafa11547341daf00b37021ad6ff7c352add35846257a17647b41c74eb1a6e27b55fb05b1417c2fc636720fa7f1474734580ba061fd6d6018968c7ddc51786ea14ad4152c643e0365dd5860f9e86782418325911b47fe9626ea2f050dd6b5015941b8d6392052c175cc1ccf302e3089e63f93422bf45eb86820507ca514a205c5112c29b0568b491d2ea09a1dd0e51262bebc3be90a14c64d9427a2780b92782be22dba5eef3537da6458304f46a43bbfa97ef0d004bd8d3e900d57ddd24068574a337dcbb982c7172f6fa3718e2f60e74c1518774c005e8d1b925fb2de6055fdc1c5fe6ac14f269468f7368a44535dd8f92ee159a2148d26142d1892ac0bae885bab659aedb5031cd1f0a8fcd56050aa8f2bbaa84ad999b5121e17e308864a64df8ad4be6bd1aaae67043d48bb9e2ab7e54ca2a15995b58a8af57bd20745b32e0e3ed698229221cec49b26d408009de0f1db632d8648b0af4a94d14bf7bcec94be4902ecb61260b705102bf2cb334bbc330536a719011621881107f668467e31437f306937f49a4372fbbe6ccf2624f4c28d66d5acc316931acbf2c97da6b9471f0c43b3ecd85edbf60d9c220064a8d52ac99a3e48b687ee827a7f57982ca131668b85fa7378156212fe2403651a3267b902a21ea5115f7d31ff8e9663d22611ed0dab61e0a53865172f53f29514f9e57249d1a3b4cbdaf9114226b755d2f6daecb61fb37e64b5f04381ddb5ef2b6492d231804ab13d67a4c9a7de3b370e2aac8b72ddafde8b2f80ede4a96669ea8b827f9361bed76b777bdd8958b42387eccdafa1fcb45fc3cbe4d9a07ecd0c7f6842044b875712b4b7487ef052757c9c1bb825c1b1bf3576fb989103d38644dca58432f2e496a719bb215e651c1f672c34611d619accec5ef2785186ef71639978d89315b787e73fedd0ae69ed9ce9f529b0a4ca36486ba0ef607c20e9e1633257d9c004a8e2c916bec4d13d28bed31a58c14a48becb66f659ef42d5efbc91c2b62fb2d047c0a6570a6b989f2cfc5df52bcffc0c95f5091b404798f200adb7d0285056680f06942dc83b155dcf639415b376d5c0e582f65b6fe5752cf4cbd53d2d23ee22f3eaafdbf8d963e0339fb0394facd503a4bf01da4441465c70caa04e073a0b143bef2088ccec36bb539976c74d77dc33073b0e526eb358095d8ed9670ea3fe136921149023b04c4d28b2b5b1246a0346c1ba1ce0e1a095e1cad35556ccc3f1ecd136c4c7baebf817d3ad6d7b4b2953927befbd651c0433045404b8078251ba02b3a61764a71315dd032c9394aedcca531145f98251514fb686293427265e379411256a10e1c90ab4e43e57d164863ab309d1a94ce97daf6049bba8ed8beca80894c24cad146f4236d90faa486a0bc223930223b50b7b5b17d083896d88fb29b171f962acb621c027161b98ef070c02c146e4899231b11571f022888269d1becb9c52420bcb6a1e19120cd2cd5caf97591d4dadf5ef48d76a0da335aab5d65ae79cb3d65a6b1602fdfe9e8b44604071f3038cc5cfa921ff89629f443e92768141a18d68c8a668d5bdf7667f36d3f0eaa7234f3ae2ff5fbabd94d1113a4347a50edbdddddd6dbf9b23d170fdfa9f05a9a7bace3967edee8eb5d6ae7f4a144ecca65ed30fab55d95d6bad3de79cb363adcbfbb61b3a8c924f2e91f96072ce396bff9cd19c7f366dcea8bf1edb63ce4cc2f27d93bfa4e12ce7ccc46363c2fd7e1eda9cddb5d6da73ced95d6bad1dc9264512814a80f5bf5371b91f7a0a3da84d21cefd30296d3ddf990b33216d4843d3c58cc99854ba18937425edfece47052bfb7aa7d9b7944a50ffb7c1216977c727686867b3e9e1fddacb2d2a75979987a45d5c6e63fddae46d696db36647d26eef67ab9922c5deb76ffd3f6cffffdf3de79c1d75ed5affffa3e6ec4a9b1b829b18b8d4a94e35ce1049bb3b1b4eafd481a29bdd7aebad717e33544c7d57f7de1b742dbaf776dfbf1bdcec87b385fe36d8508388dab6a1f89b1933b1ddf02039992806f726aabafcbdf7de2a236977c65fb8683c1b3d2e9182652aa59bf78924ed8a95f9ecf76f37fd373cfe1e64583058372c9b37f1fb4c67764ad04d5d9e83679b2d5f2f5fd8dc2acc5d366dc1b499fd3772e216092ccb4a682973b4d02559f4216937e8a53864ee1c336678741f3424ede2ecf804bdf818dadbddddb3deee4fbad639e7acddf5ebf7125d6a1203b69925b3bbd65abb0f7d1247b840e6fb257ed70e84fe88b23be7cf19bb6e2ae3d12968840839a37aa766b2a8c99c73e620f8c281b0a429c84146d57583dc8cc2def7c94adacda073525d4931477d214391be94e5e0d0172341f59663082dfe18cec8e4e5482e7d1903fe50945874df9e0f2108d0adae29aaaaa6ac6a8e1a195455387163459133430fa614aa4795898dbac68c193c008a584d1f309884a1429658418e35a4de4811da8c503c7aa08c58c39276d70a088d18d0dede8f21f5b35f2429adf7fbd77c7203f5fd77aacd6010a3e6ec5f8790a4dd615157400799763df3eda44fd5e4b843b86338e6d3f52248d64ea9c6284da1823af54af74b3daf1e19401e689c34574e255a6bad81a42af613ccc9bb152ee71b142a9e13255443275643a5932add53994a052198037b302584ba05a0aa6880f622eda891927061815bebc72e1e789a8ae548dad519f98014100ba216d472efbd49b8bbce3967ed8e71936f55572f2392767dc0a07058a4801759120e69aa5fb86e7c0646adfb00603401e964603a14d53c44eb68d18e1dc3748d7db0d8efe79491b43b43a383b3eaecb03a3e2deff25b2cfe265204dbc41cca48da9da1a9e1e038cfb3bc9f4780209cf7910049da0d0a872d9222d60932d1a9f1be353ea263e2d854570fc59a0732989b4ded434e0810adde7bef1304cf439de8ed7a9779f33010db9c33be3db0667a561491a8e2a123c4453d22f34025d595b72158b2b8e6208c87b34382c0cdca1c1031188405085a6b67d15ab3b8e66088a92308958d0c5d2d683e48e5207110442affffa7079d2d1617ab7565d996d5c7b6b0eb0ac13f27dde54ad155515611115dcd77209b57499a4aba4aca7a40b6a6a8ab504e482764b4f2fab5bb97297eac9428f78d7a24edfe6a46532afbf5eb4ff19472a2ae4765bc191e0d0f2765ef4f613433a941ac2156a3ccc68c0d1a1457d15a6b4ff37e77f7bd77ea3b850a15555d59fc4e52dc4028f19531cd30d130e198f8c6b1b21f49ca4c5d7338927673b9cfe9d49cd1aab24a3a20af1ea51b2dc8460bc0771cd783f4fe501649bb44b1da505989de2fa582d6bef6b526dcda9463672d1350d091454288848661071dd1e68538a1df7149e9062a0291a980493100644183861551594d270e1331bbefbdb7a741f377a94b75a9690c378de2a641e6af33aee741ce9a4794d566f6376e83faeaaadbe97aba9f6e6ad55db1ba25e9430d241e516e6cc7014b257d3f939ce49c73f6d1f8707c3baacf67f505b1b9e59d88828b688a708a768a7cdef59f3f57ead9eb91b4fb9bbaaaf5b2b4d63a05bbbbef9df7bb3bb9f7f6ed6f4ea96b0c1c49bb395d2d86d19399349752b3bc3fa348d2ee0cb2278251896eebc9965840497c9840a29475def4bc3f8c13275fd45e2c151df19deef7ff716166a62049bbc21ad3509790daf16876c1734330efbd771a011147b0a70311c3854b25a59349df37ef079775ce59c987a4dda09ad25086272a9b15bd0b491432d8a564c0ebd557d59513e57eed874725bd20c3408152bd1ae111cad450d744dc7e8810341d712b6977cc445d7d74330bb3cd034c8b1dfeff1f85110a9fcaa36b3bb99a8f50463aeccd6a3d38a9b376e266b5d648e0869cd442c43c59e3c93135d8a34fcd44500986b3ffdfa65622476519716353126be6e46badb568b47050bda2dfcb74ac2156118b2cebd7fb4b302ff196cf56d0d6d06b77d7dbf1ebf267c42ccfe00c49bb34b620ce5a56bdfbf8eb608fa6bafeb0296917ff89fdac80f75902213a10310752e659339e45b34f130cef26a4baf6a06933aaff3507ed3e70361f39ad636e58f8a8d182c847e1b4c95bbb157fadf3e924025be5ac74564656beff7f94bdf79ed16cd5b5ebffd2b5eb3f693875a31aab24efbdf746b79eda4fa67f5b52a6fb7ec2da614adacd5f5482d5d5b6018fce39e7d918238fe77d31a39276fdb78aadcdb16049bbf83709c2842c73ce61c31d5654fde64775cd9925110bbb48b00b5765f7bdf7768d4bf49d088c8fe172ce39d789020981e9c4962d3882cb198182169f1603b62dd92b5396296bc9000d18c150fd186e18aaa8b9e0325c56867158fed18807bc80a970b14407ea50531827d959e89f265a0c58f30656408c0917396519321ce141b568717b79503225d73b7e218562fc637a54111366110de68b5f8ec3d80b27e1d359224a4c08017ab4687ba3c4a47a4cf38b52208898674f1418319f3c2d061758d4a03dcf5e51e63c9291a4e38a035489a3dac94ea064c07dd2a18093f5b40288ab3744477bd2dede10df58937b7ba3c276b4b3f646853999a5090cf5b2d74b21501f3454cfec5f06975c50b75c7641c960ded3b03ddbcb7b02823a11fddab5bdbca71b130fae76b797f7f484c403eb57241e44bca71cbe751c87889420b243ca51d641ed4f12ed4b65282a6943c41b13d4b4687b794f2f7af06867ede5397140818556b571de11e69a8f8425d49eb497f7c4a3eea8c0c845a357beb5d63bc11de1ce70a7b843260246c40d95e0dda9dacd9a7befbdd535040d49bb383b3e41433bbd535cefbc7f1bb57befbdf7de7beb58a06301088cf7de5b82fd1f76a6ce3987e891b4fbfb29f56acd622d08416c71c939670954a27d6affd123b9f7de252c3adbda45e89c73ce3993c8e974cafb889c53e79c2d18112451b5671903d2079b6dc1081b0b440c7352e056fd69be9dec7cfea74e408a6d66518f99a5fefe9f9752102aa6ba0a7325ef8e5ba4e0d2fcfb38a648dabdca228a4dc051a60543971af4fbbbbbde4827e4aaaaeb948fa45d6070c294d0cc2a8296523d38e87e4da5ee513bf1b82a491c5a3aa8d689bdf7d6b51946499525c4595b25254f87d64a89352469b738018b8c9cd22a42b59a1e7cfdabfab1ea49181dcbffdc59521939bf2cbcde7accb59994d0c2b22d13bc84a5c9ba1e479338dc1ba34e5db827fa4c20067520a6032da110177e80e708afa17b0dc9ee5a6bed5e49cef26ba62d2774f1a43b2a586346a7243114080361c2564e47e34cccb860de955cb4eeeeeeee23691718140e8b3f4108d95740630217705d7d974532544a7777a42149bb450b209195a897453f949247246957ac6c759da30b2b16e0dd50c6522c70043c02a2008d9c569f072f5139146b2f6900a01c5f825e700ccdc234ac185371b39a718ac0b13b794ad9da1fa98a0a004032ad65984e2aa3950d8ab76eaad2a9bc58f97460ccf4ff6c76eda3f3cf66f3be35dc73849fcd7a84ecab3a798f90cb795832f46d8042252c210fd0dede0e0d9a44ad58f6cdde0e212ce6b9638424ed0ebfa8da62c8566731d6bf2b3c702434487090ec20f1c1455fa58a08f4ef0860dfe7396bb0a4babe24019aa4e601803dc2f090b877b541005e90144917321ac8d894687f4dae98504b5eaa6e3af8f6e879f3d47c99c2e118b3d226533c49291a205448525d67766e9be9a9653d1b052093500915aea4ddef0981288d8bef199a42f0d9dd3d454b75efbdcf9d1e4e569b81e49fff9334d7105c3717960c2d93a1ea55556b7424ed1af96a35c0ed239bdb84e741e66550a66f2c314c96a3b21809dcdd9da7219985d0978ecf082a1d5fa7cf5762a5229d17ccafb282b9e3c0657e7e0f84a5004a1db14054e15ce2904173c89170976e88dc0037cecc8c1b2d789411c9114389e7488c059baf0dbd2414a0b1d84107e6583600f7acdbfbe34068c42e81324b9771a3b8c7f90fa4c48eddab7cc7b858f5ffff18e31f5e23ba2c14159f6a7ff6da37cd9595d05284f13578002e24c9b2737b7dc518cf61337efa6eaf8fc88f6189a018d506af9d135b2712d2af669724c7d310869397dfc8d00f1a233b353e1be7d14dac66e6bedd7358eafe5f6eb5bdbe3020ae358e414cbeba96a6141ecd6df3badae0cb4b27e881bce1ea9172fdb036ff5c7b5c41adb7b7c775e2d6626d29cb17f9b5ca2e2225613998a2178cf753422a8bb7635173a3d69b52221d4efe776e2f53172f44cc0e520ca4193c8a8a9adadfa0fd2699a31b274254d05194557b1b5144742e0438011bb47279b7c72444a73dd5f63209d1a085d05ea620c51e72a4318992808d8c1780a929d1d58248ecaa9d453a88c0912188e70490ae00329e1c6c69f42165e3840b4962ff274972878afcf62ab918d371c1a3a3f93a01c928c6786bbf002c030c1019706bd7801b7f1db9346fd25b95644a0415e79cfde6d1c4796f08d2c9b09501d0948b5aaed16694dc116ce477cc84b2125a784e2e9c4ea022f0927a597a784a7a5acc1ef75c40dd511e2f9e1e2cb6c9d4880f190cd527561bf0a2c38a9c051f335b3b1b2ad881ccc822631544e86680d5d020fe3c88225ef91801a2db508685d58c1e27515497af7d56420b1187ff5c3367696431c6f77467df64d9722c3fbd00db3eb0000e90ed3e513ca14c92e444b17a1fc081b125c976bc0ee800d962018ced2900db07463c9a471b2881b463e1b3754336c385246778d1398e3d61af7d21d3a9e4811d52501a5e10c9c0e7d4095998d82ef74784a1c8ed1b1a122b94667a3576a8ec469c4e3b13e9ff3fc6a0850294f63aed3078feff779b5b91103982469a84a70c1a42a9130da300ac4e346e5add5e271ab752882901a91aa730133cc4df1903638cd1dbe63001c6a3178ef62a434baf21a993eff1909b154ca47b1ae3fdc56182c7b8c443845acca60cc195677ba3863439538d59a3730ff93b481d0cbb83c198188e9ec440ca0099e6055d0ad1330258d08862b1e1c708d109630a159efc67803a59b22818538839c1326c69496848e85683d7612ae607cfcc9090949094aa818a425850580e2fbb9f4472fe81a583640d92d88051a535a2f62f7e24b57fe347d46c8d3222f5c3a848065270c0d9e109f169b9309b72085de4844c653873e69532cb24fea0bd51452acf3842f65c9295e2458d1b6165bfdab718a2e19c8950e34445b2c04e34513b6e3bbe3ae07c4520b030a87345188941c5950fa8dc872e1b218ac282a47e401067900ada10840d2298189511153aa0ad0a54287e6ee078dd388188cca516503731965c389d29588264adf02063f364857361c90fe81851d8e9c18148881be70f493444c7974b54d8d61610b3f4f1d9edccb205cc040eb225291fa7138559fa8bb20b307e3c8832ce1345d8d1f7e77fbe482df69c23ecec1c9f6aca0a426a4785cb0a418b0b04127066b324f1572835aab6e7e9f3389549a8f46b9f09c9042a8016c319041400701cc771244942076d031480061ef870a4ac583c241406425118181085621886813008601800a0200ee3289ce414ae01c01f28667066f54065adea83dcd9dffb627ada62943ffae90500f1caa097b0b198a617202688dd36637b9a5a7ff1150cc4017838ab03f5af8deca678b5c76c262ed2d47d07630b5a68846ef72c2ed46801672270095c2f42ed34e1a819a372e8e580309786224536f0085d7c18ed41b57f84bdb16851241359a0a4f6039ea8dbe6896c22fdcdb2c8d151fe093992fbe0ea057050708e071859759266455d4d3e94d0a6a0e4568ee45add22d6bf066ece889e4daff8bbe6abeaa12a9ef6864e60c3b66c0e68c0138b65ab2cdc803cdc2f839aef70110e3d85173672a9697cc8cd352a1daa48d11db7fb2be12ca38b0a5ebf7832b2821c7c91797c811070e5381952970cd584065b84e670b472ffc8f7d765c17a3a24caaabb0917865b04d20b40dd605ab512b923364377711636b0936358988255b4b2344803aabf3449f21f17640f4769ee3523b41f302be903cb4988a402252515811253455912b148a139a97dc865c4ac6a0dc8ae96d8070a25cff6ac182bc165894d08ae32cf20438d571821346f29ddb4ba03ad82021d58f6f49b552b96d061bf02eb46dd1a950c473d505430e7178bfbad74a29ef8a20866a407daf6c02a688b8c77ef95383198e8e711a401d75bd59ef665f302ef528a22a6ed4fd63ec5d737127df72698840438b5598a8e9f6fce53fa5414e494cd8dcbf4777adeceecbb22b2698c729e2d50f33378a904451615700028ffbc2292d8f3484a8a141bdb676746b4f44031164d37a449e16c059fa957491c98834a0ea0f15bf719305ffb2cacbd42dcd704a419f0a16dd18e97a35a4a3f08efdd2ad5b37c38d9afb6da77ae993c270a9ee5d971a3541d9a8ceade68b3c78d43335f6269e91a8172531225237078bea72bbc4434427ed99bee63482030dd0a6304320e26b3a2a5764164af78017ca0c325fce659cb65e4646bfd5e992dc9ebee790a70fba4bcc23515398463b926b4660142283ec02e71d80f08506a6c8c328618d801ad4f1da38cf1cea7741683af28d51013086c980e68f80c0b88ee5a806ad3d78b66f8cd10b0a9c6a460661d6f4a491d5f977b2c9b1ae872f9d48d70089501bda810d7450bc010924be0aeb2b090ee09dcd6466712b16553380b471b5e6f399d76aa8b10014707eda9f14b87e853acc82a88e681755c2babe4d4df6346be82fc01146df96f3cedb2bff6b4fbfd7a9c21d89893b7a15cb460b2a603316570da40a67c144f4a999511c40942a4bfecd2185b4b252475c21f94fc25406816f64491a9ef6f388f10b22bda6a4470c301bbbf5e02d26886bdc220628dd42bc921525e282c51a9cce25ff51ec296801fc205734103850dfc84ac31f3afba31ba178f4d8abda6090a4cf21bce9a4add211b0ba8002bf7b136d8d89115bba0867fe4924c3215a8f68d2442a8a1517d048aab68c53b301ab1a873007b07230619cf4f1170fc89e8776e504df52e52f47f2860b7f7b72d7802e99194a97eb458a65712cb74290a9c11eed35e983d5714ba825c92a09c8be34637c630b1c6b9300039f11b0d299a0017676e1bbb556afb24598bfeb8c1a97017b4b4d66566cc887c70d15633287a8c0eb72bc094a13a8667b2fd284af30b78261f2440ab7d616594b6923e8ea28ccf089c7e1b9f646a4f131f3bd3da0c56e0ec41f13da53d3962533314388cf3112735d98b491c709d9184ee61b8ee0a31e72b02352bfd02a5e95e214a9ed9286a1c588713b5e0ffad10fd3f34ff2f24ddac2040caf2374e94f315db34d57e81e1dd10b81914f938ae6c52f837274a6b029917a92528cef076c2c89310ac73864adf89f2929d7266d182164c67816971b0dbd8ade721a377d5555d15b9599a6033ea5f50bdbfe0193c83db0319be06732233904d0ebd7c56ed26e204a9951c4b39153822bac8336420d92c04cc093e5327c3ebbb4633ad7d76be2204c14b0952259f672a02a0227237f836993920e896772ac79eaa55675fb55eb7fe81ea926553cf065835454b0282baccf594e6f894726fde889fe39eb1742d851376f53f4bdc616da5e83c1ab60f625b8f2efc85930e664f73e9a96180dfceae79cc21d6151705263aca4580b9e322d3a629a52e27ade972d47ee8d744dbfa797e347d757139d328790e56c4c998299a26d3510ea706dd72c44868b899eaaaef4b6fcd3015b7a88cae13ccb076bbe5655f2f2933ddf0709a948f0e78d7e61aedb6408ff38a1c771c82e5bea344a4fb09a9333c8bf46a3b8bbf10cd62f59740b610845f9e020d35048ec5199a81ec7948618b25fd1da47c1d5084bbf584a6c741e8f78d2a4fa9e33d4ed9ace5f31bdf56e06f07ba3ce518325536952d20827d84c15617839515ed72a1d382a9b90bf2303d6932534ed382a5468192298547b098be0bc6740d102b4ab35938b743e2c1983281f82dfa96c1caf2363e25558a9cbdda538726b212f367095bc393d8cf84695fc41880f23f3867e7d48a5570feee7e7d0f5a8d586ecc7409caa0f7feac41564eab95c328f1a462922068fa523e01bdb51c1645323c05d9529cbf74ffd7c114ed05b5186ef1c6ac8e515d747da11a9b04839012e4e816eb057c15a7f327ebe67c1acefa7ac0d39ee7358d440b94bb682f27f5cdb8ef3801760e331f364d600c44edeec3a3e3941650e632dd7fdcccc15b44be55fa82f1f420cfb8e0b4de87eb93a2a4e622f75925317fd1e96e0a74d0b834a89f66ddf01f6c7a61532b2393a34c74e240c79bfe4d26474ae6d0002b06c513dda3e6f654dc6d296c6b1ec29fbc448df2d1cb198070c04f51d0aacc05064584309a0aa179661f301e4b21f8f7c597d2bf08784a757843162106baf8ee29783c4733514951435641297266de7567768372cd79839552973769668fb87d503589df930a038458a41fd6bf2987e7cdf9b5971ff2ae508691a4e9b2a837caf0a4417975d6ca2fc8a873fc5005b609b1b1e8174841f8ba9325e7428bbeb103609f5f4519dfeacfeb596b38c176a6483ffa79d518a3582f2a6828ad847806598278aca080357a64dc697b711878dd4f07bdc53fd803e24f4b1c86701594b0bee7773778c2f4e0cf3136d15100ebc30de6fd02025e3ccd5ab7de53d6fd4a41b0c93941ee4f03a4d106fb8a33783e435f21a02207f5fa7520ce047ec9235824ea4fac30cc911418dc09571f5430610238bde80c8b6be252155dbcc7909e0c77647ebd16e94925b06fafdd3452fb30ef6f8d73358e138008af70eab919fd5abdf3e09751608de823ef9f7fbd3e911543617489bc7019e991d12f846741501509dbea7bc4be338cb47b50d1272aa6e32644266f1ee998b051b91443cc4a4eec148d68963ab3fe1bea0c89908474683976f88178cef055ae575e82f927a578302c2454cb3564c4f5863a997af53fc4452257313de50d95a832ccd78545bf8ba5e0503449ebe97750a76c2a465dad6abb1dfbc85577b7447e30d1ba604b58c2121792ba3c4b2059fb2f482896326ad40b76f41e71b163bdee41e1c3e8eaee27e303917fe58f2033a3b78b7de72f3226e827c7996388001095068449dc829da02f4a53515511ac567a735d68a258f25bcc845c87109c721c456b16112565ab102033dace4ca88235aa9f4e5f045b84f2123dbe6a343d221b66b4abe0fbae15bd721b319a9e240b0bcaf1668dd789e8721bd57ddf7bfeba38a3ced418719427db36c2cb7c338dde10f5c92f34a1b5d173133a2c9689f6a00c7f5394b96e4c3645646ad3854162c966bd66f26f86164ebe63aadaa05bdfdaf669425269ba13eeee7e66774986d7db20e45484d824383fd95476229f1e903a3b081f33fe3489d9c1764a9ff899315f970388ab2864379699f294b434ef6e8d1a26ee93384250a7e4a5ee8c2748ae3bb79aa2a989842b0897a268324a4d0cdaa2a077a5df41f56f06575503c06f443f60c197d33e9178ae097b09f529a32f611f7ff756d3c78a385674075b53be41ff8261960f354f93f26f683ca3687cdb4c11607b592ad2c4ec2f58eca0472f303d50462b52d469d1c4ecd454e327efb51f865a849587c392c2ebf5444b1a942d38a7a6464a990fbee7cc7beddce9748ecb2f9ed1d405320cd7b040a22a4f2d91abc0c4967235977cf3cf8480854a7a9a302f36bf9ff5f922875ac46fbafc17dc45618c8ac3c591b94c00e917e0eb7ea33314dd4a05805146dc70ae8a8e0ca4fe75fec4fe0cd8613acfee372a7e7ab7a271931893ebfcf18cda1391cd5fa8aff55560f0334fb3763ed1490a629ceee7dc5fc955c32dfa81a40c519814641a321bef382d2e177dcc7f7645f3c2b0e06aa8db7f58c6a48e2299bd954196fca43bb77b444ffe6e62b02219067da1a0a374b4234cea426b4408735ff7d86c4e089d040833cbd162542dd86ed5df9d783ec8ec39e4b136e26a98d52618bfee4796d6fb20fabd5aee7318cdacea8745d6b695a42ee3292da4a026344ff1f8afa2e6f78e993515d45d708952b4952e62381887c6ef2e2753dcec96a9ea532211538a9cdc2e6b7ea9f12aa31b0b7b27184d587750b5910c5d84580b984e02141caafcb75b010b58b66f043ab8424fa2abab9eeacceb43a1c5e75f1b88fad6a1f27644e639d54b6001f9ea6185e206d998c3a42f0eb14724a8286071b4cb5ac382372e617e4f61c51d9aa45b60f8a1782c7b929b47f1cdfa8ad032f406c044b990a563ab5af1d8d45f8bf013d10151d74298e6d8f5be8710312bafb828963116bfc6548882aff23a359831e5faa80cac7e3a1abdec461780cd4e8b06e45650d4220d238991ef36414b6573addadfe60f0f5f0646c734aa817b1dfeb44177ed26e520de0bb9c06b87e466e387b63da82b084c0af2675bbd83cb7c04cba5536f41bcec07cc07a10e9a57534538b9a0790cbe187e688ce73e0c059fd4a5748ec35bb460a883951e7a32cbe0119ebfe902232162f0af1725fb78e483be15c19c002c086327821571e2f2ec4dee44f4b497924bc6feb3e254a2138630f5f4dccc380bc80ddbe6509d6cde5a9c218877851fe1f664d2de222ffbe8ffe72698099f9ad6582b2f4e2835614846b1d819a1062424a83735386bc5f2a9d48d11bf1a1320a113bb6dc180ca9f2862eb92d8faf491ae0083d21eba9ab942ab5c152d3cafa1f9ec45f775b59dd2ee840b315c3ab2dc09cf86a4ad42245c14799cab7925da857d0cb381ccc45a0bfcbcf527f097c88793925662bf94674facf68eb1387e427a642a798c445590edb96264ca4435ecc4401285afcf2aa7db15b57024a4fd160ac44caf27a6d2c49baa3e9f1edd54112670080a5a43e7267c7a24a3b046952a70d4db09770f794502885a1f8214a96215ecefe7d6d7861a8da735b7d6ba9771d5924c6c74e63264655d8d75c4aaeb65185098581fff4cfd8240ab42f823f169951825e36dc05e4e02a2eb6b8e22e2336be99d36026a8f11163565ee3db4d31e47d48631faa157fb51fcfe003e50f901912b869e06a211913e2282930ace6e47b4142f8456802e228884614e147382b12894de960dd878a3835b53f38416c0996c699097c8e328f264049459fbb054a0a55e7e3a2cf140517e2e165a955fec97fdae99f51c6835e0de3614ba15053759080d5c2cf03c2d2f744a0f878626041f19d090c85206f04eb15cd1df5f887d9b0412e47b69edc3d8a755f2fbd1d3ce96b9273050ce6e9603ce62f8170052d5e0493c83c8d893a3dd444d57230eb2092fd5b20078161646b526d1bc24cdc9b3432f21eaa99e02c5f6427235fbcb3c39bde74b87edd293066e8700560f637a9a4c5b7abfe87c59cf6387d18497f67a3b785cf6ca03ed344d6ca3628cd024691dc40023d204c5dcfd8cd638bb1e04579c7533ac1ad22ce7c56ec01489e613846c452c0464012bb954c6ae2e9293bbc0616ac0abc2b9d7a4028690f1d77ad43a478d6a743442a01af064d3ed89d2b366428ecceae218590d3465bf0d71b7647bafc7d91107ee4895f837a9348ab2655913c7c1ea043532b9428391cdbd46b0abfcad40a39b8cd4a33fe21717b131801fab917da1b1c300d6d0b48c1506a809d3045643845cb378b559fa358c5b040808f030c1917cb55019926f9074f1e7d35cf530733a625666b6d76144a1fcb2ff13c92b48115fa429e21a28d076360569c05e484d593427a8c8ae7d65bd790a503824f469b5a1e49b57090daf358144f9d03c433604d0f5dc22e163ab000001907535d74e956f90ff3f84ddb688d2482c96a404b69430950aac97ca7374dae2ee5f905f083742a7ebdc4f67c4d8c1f1f5f7aff91a4cb8928c9bfad775c1b93eaa8c4cdc756a27004f7af9101608bc3aea042219a90ef147a45f32175e297988dc47ffe74dc4a23ec16fb5e78dec3ea57293221311465a4ff45f99aad734a50918f2ecb45bdb9d619bb86a66e0345de662604bbb4379c6172029de08297ee1776f75862980cc34ea9ed3e33a4d8223ba70d1318e65585ac0f21b6b83ca7595ca466b604ab274b225ab77d1d5d8dbbb4414e76732fc969b1037a044d620b5fceefc54cd907516433a0fe20ffc550c4e4c0833efdde78906aed48369cc9e436fec559578afd99e2b5462463837eb6ba6c4be877e2927c5cb626a3c1306d2b22fc212ae1b617a5786356848092353a54c83519c21c12ef5bfa1261b8c74901334c0d3c4692443e4052d7b682325d2f0c3775dab1860d919524f55e88051bed801875d8275f16eef6df56713d42832fe5fc70545d08d30d4d06f4d4fc1b59ffcafbb12a0e04a27c41970cc56813e53ab78c90b4c3d9cdad5d97bd8adeb785c689fae478ff8ec30328d8f2855c14f95c64dbe0d3c7a8f4aeea70b6079cedff047449b28674604b094864c824cfd5dad48b6604350c9e7b0eb14cc3b28a6e21fb2f53f8e535cb59317154bb5b0f0170696b3b317bc040ca23ec2ebd543ffc0154b8183db5d3bbd7987d07dcedf8baee4bc4c54be64e3f90658452919358eda940a841523ad4668b77ea1bbee4b8678ec3a5eb3f113449c8e0999d20b31e98cc4296b0e595617dcf84744ed36a3bacc13000c90d39cd995a5309fd99f7c5f2423e8948991c2a7955b78f7985dd220bbfed82bd754c63b28b0078292eb9f90e9fac92d6f56448400d5f6463e88235b212604809c10663b5981d22ba0e9a94641c0d8ee84a01770bb27716fce9e2ae61ff416dc39212cad83115518c4e1473017799ec3f8d610bb19dd43112261723042501c6500debf8fe3fa3fb3e00a7498315a5d2f67ffa14d385282659d2b72116f8aa81068649f5e9c9eec57081d2ca5ef2f059ae66fd7086515772a6493758ccca240c002ec88b1c793a740ec980800b0038def5fcc9f7ad3eeab9215ae0d02884810c684ddf403debf9e0de34ca44dec1616ae0713369c1553d3c2a4864086438afa760b62226b8b4507188cb71067c8268153c6f135439c6b6642e1d10f9960d8b11418b65e430a2518019cfe0940a104dfde0af1cb20fe554eb7d03712ff1415bdce3957975e3b7b0fc7d42460a0c359f2c525d6b1d7c200c7cebaace4b332bada00a08379603f247e0b92a2312984020f9634939c4be67d921c0025963917b2002647a0aa93c286030b354e44e3045a4b2b2527121fd3e656fc7beace8a0e16ac4dfd9e3c3f0a1ea0408064c4ae898084188536272aaad61148c97a63f45df10fe0833cc9775b9ed5e150fe1ae6777340f9e811b0fac7fd18e244dcd7d4a02b5902cdaf361532e13a11754fb01a4f474ddbff2a7e64fd12195e96a5b65b694790e7d64049b74277a2ca34fce77e990ea48f5482cd5ef7ca1d5b007499d23b0a7be07018b27070d66545a6c8597dc261a025ab12473f7e0bfcc0277b5cc4df5b21c9de4265527b36154b0b59abfdab89a47589196d0b9c2d2c2e7c4cf810e62a65d18cd00b8f76869240051c3d590e0850056f8ae9fc4bf044c069626429abf68385df573a11f877f53eca2b2d071d938312d8fc90d42f7c83ef3f2e3f5f6edfa7448701d7982551a0aa1ab4aa8057f67bcea3b5d4ebebed58815eff0fd09c292fb73cb0ebc6e1ce82147619fb3298ebaec8dd57ccccb9365f36d57bf52f23486cc3079171ab631cc985c582d785635b8edba2dfc3f53c67c93173e2f6e31bc1497fb51f0931911b18dd12c829dc55963611d8a5b56400b9f60c91ee664b8137a85b2e18c12c313a49404bc1b9ed33496be738220550254eeddcb728c334a344d9951be3f671786db6f5d0d15f8ee6023b6971483d6a21c28a47de68cbd192544b33751521025bf5a334f637577618fc344fe4ee21911d917fb64892780c3425070856c1d4087c72a5109c23aac64ee60aa499f6a4c6a686034de4180eba9a0fb0ea205af2ad6e8394eca28500c27245821a26ec4e576c736344bad18d730b60a9b9429a58ce20fa8a6adf5e07097c16e2aa6916a41866ad2656942d6fd20306ccc5bdf3a53e713f5465bedb48fe1cdfd8daefd02a76199bc016e3b1393ae2c0044186c59f6f3b97545b48b8e6d1f62be6993ac790ed74a38f78f4352c732334e9a77125d545030ac6ec56c2567fe5b7fd4158781af6ef521ce96c1630f0759b2d2d73da3006a02ea4e9d5c8f1d41b8b0f05e42bb8a257c3e51cc0de4e05bb59ae0980e461a05c84d1ea7f38ece10fa694d1357451bcbd7e734093bd3a25369391cf46078605b042408dd34fdcb1789eca952c270b33f08b2353bfca65b6af5c84c72bf4c530240233b11716be1cd9956b66130fb5f08a27b8dab65a35f4261c399bc1248427598e3b5fe5767ead1ff12666047a33ab63f0ddc50d3268e144892f302c78efd2fa392134e0ad4d082925b2a0aec91483783084279a847323e42602ec56f3439adcb401afcc800591aa56cbbbe62026ec80c3ccfcbdc75907c1d1def7713e1970330536a8c8b6d467b66b3ab8ca77fb58ba16e85bc4c339afeec708bd65892b2940f7f045638ef259afc477cbb4065cc2db4595859a0cab82456445f1e15ed553d509056d7ae0bb351a071f9c905d862ac2714002638bbae1f958cfaa6084f49c95686b9142396604f21c2ea80ed95a6986a8f7756689a32c54e1fb01eaf626460b8e108645138ee451999a201aa130af18a3aea38d38bcbc93106b12f07c1fab8acd550b2c40ef631ad200caf4563610c747de89eefabc174c2c20c6cbf3e3de1dd1d3e7d69c04d937d65b63bc1122e4eb5b8b79e86f800a1d6852f0294590ab51a6b5e2bfbebcee6e0833302aa7b937a6086805230b42d253d4c9664099aab1b0f8b6285361c1cf7288be8c5361a3e65702e90531a725d71477d8cbb79e7d15b006a62330c822fe6d0dcdc05861c09a3425b3980035302de331b501d886b3a2e7705748cf1a1661c3be01e029602a1e82782244523a878808f0f38b9b9c82f266f427735aa2217d09a921dc80b04e4a84182612a600a7c6729451eaff4ddc071f064f49841d4340253a7385e54886cbfc48eddaf09bb0754422b7203bdd926cc888c9552f11aa502dc151da83ea8e9167c230bf18e8364a65f721094d1fa42ff61ac9bb86d5afe014b972b488bb7c5a94c2488a356271b0c53e328961c984b3443876d986ac24d9190f903fa2282b7f08305aa8c642fbbe15539bc4899c8b7f9b048aad8c277680821811544e81696f9c0da12ffc0be7a5446711c90455209ac41694d930aed0d04fd43b2ba2af46a1d3fc68fcb0bb2ed07adcb083a18b470b1d741c991005d1d564011adc6a9e6640bc6a21e801e60d9fe4a75ceae7348670585f276a9c9093a42b6d7ad365668169729ae119b15b98750b4d388deef777a559ad7092b9bedc4a14a94a350df5502f7531c59c987da817cb477ebd65c31cceb38c819927dcd2fd2422226cc0464d5e6c31da10fcaad2c8c5c20544447d8e94d653d4c74ae1b82334f203a64a0004b388c165b0ffa704e1711050f19a24972361a0e375032d1a7e6919367cecbaabcea7d464a3b5361ce42d0e1e81143e97fbb06b3922ce14e2b52fb2d09db6b4848791041513ae22f85589fb3473fca662640ced1d76b74379afb01dbfced1aa5e150ff23ba92d64e327c72aa56a9888a12ea7e8959eda9523ec2466b1693510a8464d09837a3ab1cb3d3bb13427f94f4c607a8807ff074fb1e657ba4f0e52027aa4a630a5e0b2051d350916e5bd448f4ffacdb66586135b080f6d05324550d2523e23f146e7b47de25ae88d50cc9a83a6d2e6f1c151e2ff8c400afb376702ed70cbf8202dac0f91f1e10ec40fdd8790e3b70134464988dac9fcb690c0d853bfd10e22d495fdb6d4e315fe73a272cd4f564d92b2c4e47b0a0a93167c27135cf01cda0342ab170fc9f8e6b58003b43a4ab5fec10f13c3459fb91b7bcfcea5343e1e09a70cf6af857a6db8306fba130e10be73c84d964a34af0ea6e5b7d59f3a14f1f9926d4b34430c8aa09ced7edb1a1c72ebdf018991a330037bcdf275ba1a3d1743ec71836061be546806b82166a90f5803b3c0da6372fa3735308fc0905024c82b30afdf8be9608eab66634113320dfdb6066762ac03801a9a96b160c09a343db334016a602ac63698822c3d17798ae9d896393531b6089e7fb0fe0f5472f1f027126a0a7b7fdbf184675327d58859c5bee20e8e240bece92c889d62d81833c54064d7f7b33bfd0b321d47ec641188f502c513ecb5bc4805de114d18af0e4b195fbf66cb62a26834a749d05764c03d93984a132739f7081f10de28b8d141e51382eaf47406310e05b0d2ced5ead26e4e994ab244f5ccd5687a5d888e466715ad8f9e89a7369b58d1cd1c54ec2d42b6f87bd482312a8621910e36b2f32f8b288fa56d003e8e1c099cd25e2c407622f2858ddf15d046293862cb683c731ec306237eea6e243fe5903773cffff324444cff0d5a4ad20393cef01231bf7e9b8dce9f377482d283fca4483220046a7eb4e545401df28c21b8f8a1817c89d5c9900d77dbeacb501e7d9cea78b66842ec00adc1c5125e2f6855c61089dea751b8015e301bf7a7a637aa1feece550310d2e8c47d3a48b02d78a6c6730a5ebbf7d1ccccc7b4d16fd330240f7cdf4e8e6a6f6845b2aff4cc1f18c7cb1dff5f708ca455d7ddbeea2d6be7859367a4126812ea427bab80ade40aeea464addc3ff9d9978830a9473291c6ff792290774ce3915992805dc1fc67afd4bc74fa345575edb0b0e52632d765f420a056eb50560d20a093c8fd03cbf2485a977338626a5d3d8f17ce6cfcb5ec49135f33b58936f0ebb660305d792dd157181c422ae0a8c848029a244a6802146a6cc1d421659f7acc4b27fdc5c59d326626ea421ebca09b937332dde91bc0d3ab4a883af847befeb1715a767ee141826a117605d9b2896851cf2f9d5294a166714f5e36a7984747e5886394c3cd1f23372cbe79b3e9f5095ff0142a6b60ca2f6e352187284b0a7b467961d6d617aa99505d633307c551d4799d900d70c2222b0211c1b5c6edf82e24e0173aafa5c198c6ac5a6191388d9733f788664e36225d131ee8c992377b68b1b6b2401385362fda54310d14d8f7555062a92dee13c68e605f583ae89a12b988a95d751e0e215a5026520d86f57393f86d68cf21da448377cf4b7a07d78023f5f2ffd3023e7ca530615eb4a3684549128978bb51048be7c162d69134885438008eba862d6fb6d55d5048296a462a5cef4714c0de2c203aa5dc88719839d864439bb1e2d0a68937c102262477d8c192725d6c15b2a9d8a5217e8ca788fc04330967940646943cadbdee384fde639ce1f720a1e727e33fd400193a814100f1af2215868392ec9aa34032cfd99f9c063cf5e6555cde7bb468ef449584c973422ee26ed413ea942c777b22917fb7348351acf5f0b92249067e2ec4ca38666e4f01afd057416bf9f1dc7cf97ee025c555cbfe58a1d40bbea47a220aa156fd92002542d004f296d893f41184047e494c2effc5006070b5b21d76e6c4ccb2f14dedff5d83754e33ce05ddb658146875b85c0a818fa83562adb6a66c8c62467706d035a320a384fb156fb29991925bd2857977ab79b6fe1c24480a53b4a823bd05ad640792ef8ff8dd837b6ca4a1e64c00eba3ee8fbc830bb3bf9aa212c51ad80208633851121724a3cca8fb4fe3ddad817ab1e4ec74152fdde1e88112817b0f071dadaeea93b30abc51035d9d6b47b48f939d340ce319dbf921954f6f435e6c2b413732b4adb9f4af4c7bb47aede2ee05ae8ea685c06394bc7bed0dcc85c990ef4de289c14b67f5d1044ad6fac39ac4b2c8dc132b7c6d191705e9556997790b93a3a98499e93487adec4f95d08b4f52081bf120e1accc7cf07a846f293070f188184be673d8c5b010d7428af961c1c448af076a33247547778b342eb6b9a28d17882e1bfcee9436195a30a520b55a2b167fc82f98a3819638e854ff14d532e14e69af7bf28b35194626e02a22b77cc3a9148e43318ae9b075aed335d9074622fa5d75d2cf4fce156687ac72a26812490a7d39eff5d20a7edccac7531efa0d01c908cc0687e162e333b9d7c433271ac029faa09b2ac772e1b0bf39629257cea0dd0d43a4f4f8375befa79c7fb7d6bf85928f41657c8e14db7fcd12041183dad761788151aecd8bb2a5eafee9dbdad7f9454cda5c0dc224e94035a192eb3e914dcf16f7940cb087697ed8c2064ff4751bd170087a2135bb5464e73b099120f207f26e8c5860994a54db761d558accaa59774a46973f7bd7593a8d2ebe5a16c60b57d8446823a90c55a7dc1430ecd0c46b8420b3e5dc38fe96f774a91ce8e423ca484cb56a12dc2636e241c8d9b44962ab3988b8283668e87527c4e8b68f43f618699bbba06835391b6ec2234fef240719c5240e81a7203af8324520567cb8451af862fed662ea13ffa2da79f7c5e21d6a178323c9a64b07811d2f0316e4c127d3039b341c1e805df056cdb2d7486137a1ba303f0bd6e572a3502fc13665cc100b42d21771e6ac48a0fffa983944caceb5ff8e17b98b6c7c505851a3ce086da9251c5faf1bd99813a30ebd579517ee2291415e5692bf75d138cdec79f2c3a374d0856296afe4817ee2af8a441a8a4e760dd81e9d8f13bdc25e3214f2e0c60285b8deb302294a61a435951b1943933d736da702ccdffb3504fe2302870c8fd74f1ef10361eb5d8ee7fb043c56130797538e433ab361f1eb57d033404e409efff856d48433bec6aa627ed94fea71cbfb617ba732fbe021d50ef6d63e2ed0e00e0473e96b5674c98fc2bc4b2b3a85b1d0b647867515ae4670400ef75567f7811669920069031cf38f5634ebc800cc6b4f4be0e17351b1932b13b2becd7d99d04ba44f60623f7acadbedc8755d1abeb7550398fb147df58da69eb7e44c476dc80976c10b204ea7eb3d3ca296c8efd91210610addd57b7e4e6002f6e9d39d10d25a960252fb7156c34d887ca3a8176626bac05d138c6ca74957237c8be06135c9783b98f491855b8f1237834426a7cee68658416161db7432ca73b06b564f7214c5d87ffe46474189161e3a5206727e24796f2185226cf51660094dad042214d5a5cc5168a5fa438ea3769b79186f343dd0b9a29474601359289e2d8031311810c44a4886b3661a16ab0fdd4b338d3cf84640b1351e9a49c21a2789705ff831f8a32c5f5c5e965ca014a4a358cdce4d9c058ab51963c98b36a46e64df88ae557e61fda14750f82ce02ba227f87059b2d8428d13dd3881260a372f6ada74cf02ee7d861b9a5ed1885c1fba62f3a83779356fea54182314af8958185409011ac2e02b5360502d752bc05200a611ef86006f0049facfadd33b4043189165817c6f37302b2f0510331a349987bfe4c3d92c455f5748f85ac527e50dbf594016a5f27f60a8ffe0eee68cddf775d6c0e06e3225b9f7de7b0793028902f60238bceefefafe7d2da4d914b1c90993e996a3612da8b8a18b4c8a498614965b1766de9470e6e6e6885cb0638de3ddb1e52b2d9ae307f7e63c570419d2c919ca814d25070f25a7793bb72b486420128daef6f69e78dc2f31eda4b6037f8b65c6b47f3b7552cb7291422d5d187064a74c3a37d7753f6c5d8a1066dd0867d22577879d32eb5cd434c02a11c315a5d3c6f4da776a38247ee8ca84dc2eae66548b3c3724361a33974b66e5a3c9063f1cc14d19198d37dedcad98a7480c8e027e39f48c50e8346bd45c2d99127a2973c204d8cc633acdddc031c22852b191ca199978da9159bb41c87db26831230ce788e985132de929b4b3e3a5234756ddbb74fadddd47b48fd635aebe5ca02983c6a228dedcae9144ca7e5eadca6e9d5a43c91479ce1f1db1a967c1f2b1ecf8a9ff2b0b90d0fab35382eb2a04cd60feab0be4dab588eb2232dccb4151b48a9983069559adb85869dee639f805229503d65bcbb64cd8539d59330dcd601e6b30d7d1ef596badb5bbfb9b5fffcfafb317e51c4cb3fe9c73ce2a307661ced9b5ce39e79cb37e93fc9ae9a1c84e9735ccd7e94b3f72cec1fcf4fafbeeee45f9dbaa37e79cb3670dff84b04077ffec9e757658c71da8637737c9f11b9b9cfc762ab5c663a7c4439066dbce685938d5997df54ea7c28a2d2b63c8e8890944c325e72a8dabc17662cbc884666365e2e9ad6b08080c8d5932e4c423eb065a44bacba6da546a9325b4249c95f1bc29c9c545b9556d8de1ba9a7849b883f9003b95aa81ee77a75235643d06acabebdaf5bbef346ac82dc79d5e5aa2190174ec5143749bdde9935457ec6ad65e3a63f95c29dda64c9e7f42a3fd2ef48bfda75bbcdabec3bef7e9e07fd07ebdd3a81d5ebaaac7084bcb4445546586b495238413e45229c13afdbce4da26cf6d8501477b5d5593b815ae6b06315cd7f524042ba420c4705db3f45aec755dd735a6605d637615b6357343579fc6ce09ececcee02241e064c69a1f90ce781b3169d3cc9457480c00fe3f141988d0dfdd1d2aea03f1feffff8bfddddd93445dc0fbffbfef83bfbb7b522713f0feff9f3c820ce0efee9e247a0578ffff4f220103f077774f56917878ffff4f8a05fddddd936a2000bcffff27e9e00efeeeeeb089b604e8b176b3fb3c3fa00b55901cc123491011e70f561af38528a5691062870f9e92df8b91f729c4d72cd148b48f47c285f892089da34894b8513dbf36860776e92a6812bf4f082fe5f800fa7cc2f84d62931367d48a7881a410627694f94c4565b0d292a242da773edd2529693787c6f5558d5f14c9bc8559957889d151a51202dca9938a8d459b6a0dfd41ded855b71827a3168e970b8a9b43aac97faac4dbb641b7d8b626e6a6423c01459b5a424084b34c202d216bfbe9063a3d4b49414b7b72389a586cd7755f67bb71ab66a1ebbaefbe27c7d624fe9d3a9b50fc64c45044931b1b4a8122cb3d6b9ac8ebd0b23b753215c1a9ce4495fd31b0fdffef008477ba5c71636b59c49ae967677f7fcf503be79c53d8850f910b1a796050941c7fb46ae79cf5e7e8d2ce39e79cf5efd42a7ae476bd2252aa4c9cdf5d6ed7fd87df755db7c9b95dd78d63d7cdc2947785ce28b8fdeed4d904b6e25d953e103cb06eace1f528eb61b602555b189a8a883c6519d83b7215545f75fdb16fcef957537307ccbfae292f3b8e4412644938289aac6933037c6bda7e3b6dd69cb961ef9a4c5b59159cc7e2560e0df4c7bda1dc7ae19d3a955268cf1d5fd2e7be36267eae2bcbd6d5832e399f1262348ac6b1971fbb5367535469e7ae68f19c6c2d466c656470ae58cba2403174f5a77d0164233d474f21386beb41eb39118506e5711a09eed4d9538cba2b0c0da2295a228b68b86b3ab00e57513022528bf15597222fa572fa14478e64e9096bcb213c1b4ed894a9398f7123b1c9c971eba80cf9ad16ccd0ee16e2a72105164630613d69e335fe0f8421b424d490e3f22c7a1ee9c968416985c3f40304766c7fb0ae2052866129216eec945449b6d3943425addbaa1abf1ac36a1cabf1076a3c821aa7a0c630b06b6bf6b2abdbe60c62188202e74c8dcdee94e1763392f7d82b1b3fdbb2ad90f5ccb2ee8c8b3de049909e31cf066fc6e56e46c58eae2e4a87361726f7e45115f70497f4f6c24d45db318ab34306864d6604d46ecd4d4d47da980ead1c4c34281c4a673998ad28fb2133712346662c862886170607a6f645e6c5d575c515b5b5a4656463e889c2b9930543d38461c1d2bbe26105659a2dbdaa9a54534a1a5331a45a44012579a05e6a6abcb43cf5709a6bda41030713d8921349a5e434434652918c1b907a62dc1cb9bc18b988805197431b0e395e8815d970b16c518368c6100e2c8456f808e5a86889b9a16525e80ee82d451a8a1b366cfd58f9248fc81e1846163c369cd0d92131a343a268222f270e67eda6cca6ab06ab84140dd3cc910c514c0a98132f2c255c5848b4ec919063612b9e11bf56b2462855114daa0a520f177b417ac63c1bbca2cb5d51c58eae2e4a87361726f7e45115f70497f4f6c24d45db318ab38308c3461c01b55b7353d39136a6432b07130d4ae3409e199911950191196fdc8cadc088adac84e181c57d41bdcebac0b89e5b4b2d281bc8a79193280ba869c4bab91a016335628589b78cab82529d29c1a69e52cb28a82412caa806d113d03b193db8e940040c07225636c0d3202e0328066721c02e785ab0ac008a02e404461210450034344270f3008c034e959506f018885b00aac0d90958024f0496074099200d30121281008a8d05dc7ce80143408f9501f004880b00eae12c0806c0b3c3b2040a8824311a211201828d2137207b301f7b2b3fbc37ee7d6c1aedc79c2b375daab6060b2357601c84e110ec1afeff9fc33db37580f3cb55f2daf7da547de837d8b46952596ed610483d259f1727da865cbdec8c46f51761809ab8f451fcf111b97e05e49d955cbd5eaa08cf2063d3c799174579376f7f51693f71ee3d0f8938f8944a4f1e3dc923a8a4a70c5e1bdc87ac36aeed3bcd6a6bbe113788fbeff7fac97886e25e34dd5adce1ec6f6b3a70bb6e753bf861a7556e5fdbb7d32ab7265c5d344d474e9ddb6a0cbb6eaada759798ea3b5546937cc4c3925d53d10c5c574f8c289c5d5d0d23768a52307814c760727ea7a02ea6b5a0161b2b284eb7dd6d73c9eebf7e546fffb3ee9c2ab75342a8ea4bbaa632a44645155d6184d28194951c0d253d16365094d1a6b396485563587f1d891b807c73b5f7df4ead9062ed08d41ad1ca6b256dc7e591de80326948dc69adb9716afc6a0c0fd7354dabf9e74b9f7ac2645400ad5129e1689c9aaf8c26f906cd1134314b4dce1a14edbe6d0db7f55503eaf0b75365f4cd4854d5188e9325ee47f00389b8ce2fdfd5b877c48f762fb3ef309daf716d96dd190c03833e28c94eb3ec9a5610184bb0d06fa7556f46cd3e5ba4d974dabeafdfa69f47384ec945d568dd30dddeb87c6f6523ef4eabde985e0ebb9560cb394b3961d917b458d65894c169d1b86daa2a9273ce39e7ecee39e79cb3bbe7cf9e6d445477273971387577ffacb5bb7bfefffc314c2441909d2e61e442ec82ae6a75057a217a5b7400df33d0c34e972f363b523915d6e967f605ea4125f9e58bd57b0660a7cb1724a16156fd9d5b7f8e7f71fe0975acdf0ff1e28bc58dedf8d216ddfa7098aa4f6d78aa4d11a998137361ce7403aadee912e669473fabbeca5262ffab451d6df0a78ed4ad8f16021e4d90e0ed7c5c99ea21eb49f3eca6edf7349f9c3c453c40ae5a8971e1e0e821c485c4660c8bbca8c42af8b7682a909b2000231a040080601406611c0972de62071480071ac268789c342c28243020100585016130100886416150100c1a22a0200e832010e35892dd00bf1c82e5297e43dd4a6a1273e9089680ad343a5e2e0f5f118d1671378a790a58ac884c200a82ae8c347bba93e195a1f1ea343fd5eb5a34201282781fb2128fab0f5069658c442be21b00eaeec43a5d2b803b0eb357c63e6ac6ef9b171433978cafbebbca9e364436f37ebdb648d94d439289c4eaf10a6077106c35cc00568ef7e7b3d5347a23feae67fbd745a3faef7b88405ee1bfe6146176f4f99c0ff9fbf69df6a4aa75b0e7d5b231ca71a998ea9b550dcf96031983a42758fd77035d169401ea79be5ed97a7df49f2954019d3e2f85f0061ed9b39088672c325187f8a515b467a58f395c63ecd0338ff90551b98912a6418181b2a056b4de3afceff41669ea39b2020bc9d4431a658fb42a2e9ecc5568b39ab13ef44148a68d0d7a1e5462bfec0614801650aee6ceccf7c9c34f7698ca42c837d411aeb3290af505438d7957ef277ff12c7c4e449a0c8bd4ab5f1883e49703bc150aeb02d910ca7099836ef8df36a835042942178aabd67124117c5e4bdc3aaf2c045e524ae534ac0d97ca95d5e1c48af0054b73666ad2d42c97e9c548aa5f09635e34d887dcc80e85e2fafa9945a7901770085957aa27cb7a7744724bf25cc9f1678eedaaf936f98d1e69129e0108d4e6409e0480d5ef089681bf80ea190e368b593ce7393d1f4737551b3b68431118b540f64c024321ce2870ac996687cfd083f00426934088c95fdcefca9c51546781fafc271a760e2a7d1834aafcb4ab5fa6a46470b49b2f459905b3b86a686f3bbc8a6aafe100eef9a31f7454c3274c5a0159c2de5e287ae8fccb07836dbacee7a59754b1b72c629dd5687a2cc3c31de1de10d1a9ff9a53d182233d4ac55712984a0026402f18689a88fc575a3611e257858e8caed7a2b0a13680aeb5088cbfc0381b093d561fd34969b2890a8b8ed81aededd6cb381e779d08bc5a75f72a8e9fd4203763f781ceb37550641bd61173ff67446fc0215cb2eb355241e080d39e543479880687ac2fe611c95ba481f524235dadfa65af4545540cdf10d0903ac0d32e545fa66c516773cf1ed557bf7910851b9137a4575ad66dc0c1da09e13fb51fede83c9876e8e46534844184b190879d1f211f372e38eada4f7f59c741f637c8f513e0d66d672b5a27f46e0e7762fa2682e09d37f55e54d7d1caad79b3a491fa5d01c246341b816cd259671e945bafdc2f5778e426c70b589e52ba117195670dbd2b138d935cbb5ad98dd09c476ec41f6df111845e0af0bbb33fca0f724049be482a40dd853b040699beff5b595cf458928b050749ae2821cf6d844f97a91a5f01c4a19017b940bd2a517b23e6d45d5e7854c200bfad88637d721e0586e7df23163cdb139178953136323a7eecf37679dc64c13ca375bae84ea2fa86d33cdcea82e7c435c59ba51d92ecf139a8690f24491139ab0f6191f56c24c6b3c0626a68819677d7c57f89acfd1c479cc73e04adfe8946c00fbfcfe2e638152cbe44630ce876d88d312573520e9e6e27cb1ad35b308e232fd60124db49d3e4ff81f84d0ef96b2538a160b7908ae4a3a09087a08e01483abf33167c399be1141fd5871eebddc97ea2a2d3186aec370fb7781f19c8151eb078d69bd2bda35f530e0ca5fb9c44232142770b0ed543b27409eaf5fb15a478e724da13de91f19cc1618ac0ea81a77361f500f950ca523f79b105e436f4e0d6bb2d1decf126a1001e99e6f15c7c88942f01c4c7e1fe7b04cdc7704d17f21064463dcecd416a771dbc5dc18c1b1d6f573a2475a3c4316169c32551e172859aefe0a2a9218419fdc54ef68f371cef362568bb764dde8763001cf2a4173bfb5348b2c69fccb2f5314a79ebae171091fb626f2ef07de6dec3a0efc4996c5fd693f0fc36c36f893d14141e1833e48555056f37eb26d3395c6de32ec65bd598838a72614a19b1d4a75fef81615449dcf4e2d14b381c9366202ca8067eb958dc6b58c931d725a134fef194fb991bdc0038ca96908d768666b5ab2b5223cd07e7bafa26e64135b80e993a0d5443401290d48802867358ac15fd092832e8a53968d31ec78ca0022d525f86c5e69baaa724442cd8a7c7859947d26035d8c0fe9a5396763aea7fd2e8efc80a83a79a45a5eec6b593b9bc88e94b85f4910e417136ef4627b8090ea4a3ca3b620a66b90e9871ed0c82201a5895de984584481b9f1578614f5c93d6d152913bc60e24c54a9195495f4071cb0a7b6e3028b1eb57aa2c75b82e5caea9e7b43506e1f2366f13e08a1203b4b62da973cb5619383939f2d480285a9419528808e70858f719fada3c3a6e80b29158f7fb61398aab724970c600c5c95ebd36b32bb2338391d458802256a40b4477f6bc626007ce253b678082126af840bc7b9be8f40ef598b2008dca2711290ce597361bc90a0048b7ef069d1e6e5359bf8c0117c9953dacc76e7c718f4e9708de9098724a9b7c3dece8f47841d60e652f2a10e46c4335ddb47dd6a0a6fe3e269c8965267e9c6c235bded7e20594a13b8e4858a275126414c1966b6735c6bfd7af8f24d04c7617e6d17c08e1e4041983a9fe08537791fe45eb69705ed338a8325e17f16f1307e6702ffc0f91cf391dc9dfa00de32a51b640f786bbd02f39a895e7c811816ced38dc202d0e3a7f0870f291d01e0ec73c4238681f8c8023f2769f6f38779637e853a85b1cc8631222884517f5f045bca402ee23ac485ab91841e230f2ed2eba254841be7d68e1176d6fc2d998e3de82161b0c27491734c28ea231c0084aa6a884c055e0148e30aacb0283a44c0bb491c071e971b3215ea7c4b38ddf31eee178ff78a0636d8ea91f0f32dec498bcb140c75b8cc98758a413ef624cdf58a0f126c7f48d0532de654cdf58a4e34d8ee98f0532dea4c4e4552cd0f12e63fac6221def624c7f2cd2f126c7e48d051a6f724cdf5820166fb262f2c7828e3739267f2cd2f11663f2c602196f724c6f2cd0f12ec7f4492cd288b71c933716c9789363fa63918c3731a67f2ce8789363f2c7221d6f3126ef62914ebc8b317d6381c69b1cd33716c87897317d63918e3739a63f16c87893129357b140c7bb8ce91b8b74bc8b31fdb148c79b1c93371668bcc9317d638158bcc98ac91f0b3adee498fcb148c75b8cc91b0b64bcc931bdb140c7bb1cd327b14823de724cde5824e34d8ee98f4532dec498f63cc6838d3f19f331367dfc1a631f2cb6dfe2818cfb1ca33f1ed071cf31f2e31119f719a3371e90711f63f4e311b1b8cf8a911f0fe8b8cd31faf1808cdb9043af9e87c698118dc139e6717cb97124633dc6a9bb38a412eb314e7d1c92b19ee3d48d431a6b394efc38a4633de3c48f6332d6729cfa3824106b7971e2c63119eb394e6e1cd3b116e3c48f231d6b394ec1cb55885d1d06dce54ae9ba7519b0e7e8bf7e95a39f9a1fc08707418d51799c67163b7ac5a2383ef238878f8f3e2ec6b1318d396cfcb071111c8f698ce3e3271f8b636c48e33c2e871d2f74de8769638c42c69f8d8b617c9cc63c3e7e6c4c1cc7c334c6f3f1c3c6a23836a4710e8fcf563131447c94c75c3676d8b818c6c334c6f3f1938fc53036e4711e1f1f6d4c84f1511af3d9d8e91717838ac739879fb605c659aec7a93836e6388f8dcf3626c6f1518eb99ee1263cec7c053416b6d016585a5e17422d7f6fcbfdd481fff8234e2968c4038b45ae0968c64e30bc33d3abf9e7954106104d21f6ce72fb4d1788e6105665bede36f0416f75e6c6020e4cbec87973c86187a8f81fd06f978a43341dc643759943c50f1ce849125be4f6012bdd44878edb9e726f543e5995d5c48f4d6821f54e6bd704acff791666f544426ae446ead8c1362d16289bf4c2291c38d88ac241ad97973dccaa24e6e5f8232e9d3c7507fc203d8b39eb1466ee5d51d7ed6e9e943fb39eb9e3cbd3f2c7d073b7f94f43824fdda98facb36eb87944fe3265de2df9bdcb7fda4e7d243d778fcfa1f29f29e6dd79f944fe31f48c9b3f8f883f869c73c7cf51f9c79033eefc39227f1872ce0d17559e07fcd421c37dc8c3809f3e44b80dd810f452fd8452b110e6a8abb22fad70a37f9f4969fdbc88f734b54f20f4a7a4291f0e7cca7eedc46ba7f2d60aa70a62fa1f1caad6e3ddfe79bb7bbed9c5f9763f87fbfde976ff78b77fbeed1e6f768f377b38df76eabcd9d7f96e57e79b3d9ceff6cf37b8b3ff78531321aabb8150cda204b1e713c06a292fe846b7ca56f88bcabe62c1893e1475488c91d8bb23d989308c07fb00ed29850f53103a0a3b292dbb947d8227e93111be84abd229b564bc416d5c94163b8e01e77979ef32e6fc541bce36bd2ea69b2489afc84a2d4a5ada5f6e8ad8db9bb4c4832ed6b900bed920a2640a794b7db55d2d861645551373d745b482edc85b886cd8dba291de6ebdfa6e6483ed6b9f0bc8a47e56d3100e381729fb04a1a2078c46e5c0e557cbb15550daf2f17ddb86c8924d0c5c4255074cdf49f867437f80dbc07eb757b5e725a0bfd51a81a2a867537d20497adc32294620cb4a157866037f1f43be01fc24f08282c93662260d7c226f5839f9322991668ac355eb06c231cbda692b26aeaaee1169b6ab00fcdc115af75124031e2e5d33f2f717aba10ede1c19686184ce127e881c82979514742fa36af8f964ed6228876ec04164bd122f7d84ab0fa9b616359010d4132639237c8f0c3c57f1e15314accb87f96a495872632e460a3d4ed41a750cd74558b8fafcb1b92536dd148dc7b2db0eed52140a7fca71660cb0b92b46ac95bc5d6b46a21fa6e10caa206eb4db114faa91d5ab6dda7ab36c6d24b0e2e52f97a5586c64e7bf72794296f5cafbe48bc788465c04f7dc8972d9ad5950c57a3082fe490e1a58160203e072edb285cc495af9fd753a06f030c4c8e107079bb8adc32e3d8786ce42da36ee3df04156c7c0b34347a9274f914a2699887233874db1bf895f2b69525acf9e268b160c2ecfac513dcf902f127b9074434516f740b6bd3206d6ac80c525c61159c1604bcd0ae3d1907a348b4f9ab078218dd836877d1599b59c7319af5b5f0f411c3a5cda25531ea497e687ecf5863483441aa0f37948f52bd0c9d5d57532c6e9a69715ecffea7ab25d920aa8ab91d4ba7a5ece4147a524f229c5623503c2721efe006fdc200b7eba14609e74644fc5c45b0feeb2365845ebefa25bfdd3396ea73f37d55eb8e9706eee706779f5ef2013ca28ce03cd7dd698f3de2a6b81cae70030e977762a116d56934653c5735c72ceca071ab4b2f12228f78e109191b22a86341d0aded34cf87711de789289fed1044f5d818ab0eb074c47b5b2fab146fb8da753bdee4ece1bdb32efdcc672b809b3a6bd20f4249dcf1caf6f4baa6f638284541560d882ef12c71321a33ac8f6a192c79d92f855c968aff6bef9eef86667468fa0b4581b9df71e7ec3ce0e53a8547d8630ee4fc21eb37d347ec97aba7dacc78354cd25bbbbc13209311e2ac0ea678391d63c61ba7f0a69e237d23f5072f7db2dc7c2aacc0cacff74d9cdd0a2ede2f34b7e3f2e00e63fb585866b0ec938bb8019d282d1ff9a1b5dbd7aa2d4713bf285c54dd5c61e23f9292bb86eb447a527e6580ae90a7c9bea0f431d776710a673a1e125b81d264eac620cfec478e21dc272cbd68c73e3d0d77f1d87edd9e21da373d4a0903a1a433d9f2c588038c6804a117a4bd94da955fa49091cf8ccaa12c0e18b6e471041071841d530080ea1856b98aad0df4a068ec0a19f0485976d2996fa6314a82e783d773978eb40a877d14b771edb94523463894b388e61d9c6f292bcc307f596538191e014c6366a3c0145cbd9b551d4d9b75451f248548b8908a9430b60aa65e95e624149a718357510ad45ca8b630e9a266400f6f0320596958c7589e7d811a0a8647208de22d3dc3c7622d2ddafe4632b464952f5b58a7602c6212f384bb119eabcb994d51c383d671e8b190bfe96ea054ae091f070d5fe3cfaff5a5b3d4c4f0c8e9d9cc687014abeb0f9de72e16ad2dd660e22c7088a2906e23409d09f40709b8820d175360d74e56a7be1a58141510dfc17113baa9b72352476719edff49ef602ebdc9c333a9d70f4b3781e5cd0ed927da709e048743c8c7abe94f75cd589247a6159219c1e0287db8b56d0282e3fa287ab6ef515caa17b6eeac2e57eaf7bb894217a9bc176ea84747e89f518a7ca4defd042cccfb8ab8b6ee8881f06b19a0f2177e5fa36a9e511c6f4ea9deeec0f0fa308c737dcc53509e34364f5a0e5a7fb8cfec9c3a99ac41781c371085ed8da43091486572acdb3da5e043d6fd7b659ccc5568c69a71c2be150a0b7ac11674526cacafc9fe475d8071d02f985e6a528d6cbebff971149af8518938e46bda9fb16acd7db8f8e058b2bc1f848a852ee6c85e68e26dafd20a4716846f80a1983806aaed98744fa256a83809c13828ec835dd3ee52f18c9834c934806b9c76d6fe7f4e65b4bb0e6b407b51775771af1c3347daa06e4e9772b75dd90c27560d5b93b57d08d232d42afcb92e8fe532782ed74bf8fd9d0bcc0f3a4c884b9eea246f482bbef647b7bd12a9ffa7d9db0c62131e82b40d0a50851e4132ccaca51c66142abab37ffe3547ff1403bfe199c3501798530822f21577b4d322c0d94043164e06b31be5e8f0cfe4ddd98c9af82964cbe152a579768cab524a9b472cdd932688ecea4a9576bf6b28700e80f522f4637af848f40e81759b547979e6624180031681a0b7d099123883fdb93fa20e220d6efd481524e1079ed31bdf9b03b04b17d4cae007d1d155f2c8564e94c046f8c0489e11ce6625496864d33b675c2ef60a0cf5ad9fca86153dc8b7e6937b3ba2554d21c579f65c659811d4e530c71cf614754f1f6f34098ffc12774a11a673c0794c18aa9d59685d37cee734812245ee88531bc33b113ae6c4972468873e623c3c6969a042e40993bcd6fa1011f597c0f7229d1fc3bed0e7d498603a9ff678c8b1f1360db2f68e1a582082f7468e4846f20a1cd5ec99786c456087d6db18d1693cbbba3dafa0a3fd141251fdd4c0147dde5a809ba9c00ad7e9d52ea25e168296e74b3bc97bf6e1fb972694f88b17933ba4da4575f446536b2ec5bb0b5d41f92840432170d1149311c4d6cca3a4709888b2f59cb3826bdb2b7e49f6dfa1091ea616ceaaf25b099f6a02ba7ed2f26d748affa5efce6061ce19567056d5b30f0f0ebc1968fc6c07b782513dadc59e4f2d09dfd2194cedd42cbe862dbddb755bf0088c952a486fa8321599114bb4349f765a9d12d613d9d6376a01136fcd00a4f666b84b8ddfd8a56bcd8b852c14cf835605d9ac3e94f95473449d88be8adecee3a39320a5150d560f7f79f57ae1df056a0d24591c7e65af363361717c1df9e4f96f6a2e647b1ed36d7e0fc3008da725a5ceaf2133961b31780bb61dea81677cd4d4a98909774b322b005b7d69cddf863f9e26fb43678e2b68148cf4bf259e88a9bc3c096bdf59e54453dce7f40c523b14fdd2c2555f12ccdd12eb4fc4a1636cc9af03a4f4fc209820661e97243e354e84d5d28c33cb4244111758343dcbc3d96018f355f58b3412e9916e2e6c80b69f7a39c4604c607de561de59cf91adfab146fe562b175a170640f03ecdf30c8fd392b98e00036e064104b3efd94e1e377c72e4489055f581b6cca40bd1f6309da95f236583e18a01e9fdeb881dc855027e6efe61cca9ef100b6e1431ac0f4eb552a4946816f1cebb07cf9e0bd300a4352356876051bd00364a6ec385d615398b90a6544ab8d5b149cd972de044f4579dae4be0dd5c3d288a119152e6f01be28ba932ee3304d94107907bfde192f65d233f00636b59385b785eaa531f2dd2a02cfebcedc163d8c5457517c924b7163466faff59dc910b6b628ac00646bc0a4e6d2a77a0ae4cfa687a63f4475b802442f02dad4c55f5b300cda4a07b61019f13fb60a72d255f7ab24923115bd8885bb860bf9331b0b5b26e902d2fa58e1d24701c35d45f6c1c387dbe9a500c0703e5efda1b0ee5bd50b68e3b8002fe755bfdd4a262612328c6adaff9b6c92a44c524ab96531062006a105329e1e66dc4869bd69e7b6bbb5d6e65cbf76cc096cba6a8372fc720298ac93e39713b2c0904495a5ab301f80ba02d50023715468e226891434a1400518c711b19d771390965ffb7939f250040570bee89dc6c525c11521439bf3f3078c404c0884a84a92250837c4cab31c8dd77df800938f2a38545aa8daa2a3819429122451024b952338214a42a0a3c4c98a15430ce132a78e879d1f6bed6d69f93ac66379b2b4bb8fc0c9f3621a77bf374d98295cbc1c01c2c3900fa0508122d25071210437128aa410021f3eae7038d2054a109d24e8cb0a5364d8189155a49f7a808e00c17292850a0a4590f850994c65b450e1e1d48409643852bb76b361d202d30a566068a7274e881872c4d38f32261859f3a4a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a969ca952a54a65cb5f9b1a6e98bb79e6005ea5ab9c1ad384932569864af87949ddddd72ab23613e908832e6881b0e52ba48afb9527870234416094dc20069a151a8720549ed5e7088f6dfd2f275cc87ca6c35eccad774d7eaa11d3f1d153c688e6cf95c2e57bf78acbbb7a66e6c7268a28a9922609a48a7c2992843385145c5ca6ac89b96bd48b8acb5d65a6badb5b6db5a6b6d775b6badb5b6bbadb57dd5ddddddd6da2b21eeeebe84bda113725fd65a6badb5d65adbddf6afb5b6bbadb5d65adbdd56886d97f7c13aef87981ab84283171e940809c2494877aed7bcf2dcdd6d7b5d571cdc005912c50b41ccf4092ed79114623e54e691225a0dc553d1b4b5eeeef6aaddddd7b8bb7b09da00298108225496c0baf2eef6f0e6edb6d67610b9bbbbdb5adb3d2df9f51a155cecd678ad351f84b191058909440431c289153a8805dc3ce90145143fcc406910145902c495d0d5de7a746e3f27adefdb09ddad5d6bad5fdba7eb96a77e35ea4ea96ef03643bd4db1f41be2dedab5d61ad7dcdb15ecdb95e668bcf7deee6ed76c7bebe1da004767aa56b97632b7373ad76b57af57db76ca19aff783290589920228dcb80024053f7c600ded726d5bebc50988a5272b3af86813a8dcae6d36defdf99436addaffc1bce9dbefdab6edbeb26ded29705cf646285afb033996f2dc7bedbd57767d9a9f0c1b629845ee2d47de5b87cc2be65a7b6fadb532c97232430d50a250907499f2dd4295c2b60d3ef8fc211a991b9a7c73f8b5980a4964c7304258a0a81c8f03cefc0001969123584a926a9730425da6ec77d1d23350274a9c6882690728584a74097d9fc8c10b10355faa80e08424db40b29daa92ed92aede28ab406123bd5332c03085021a01214c34c4c9d20585139a043639d54e4571efbdd7f60fd1ac90f0455bbbbbbbdbdaae915e1dd2d028b5eb5d2b87dbdd7bb9d80f767590b5e3f5226bfd60d5b6952fb2526badb5b6bbadb5d6daeeb6d65a6bbbdb56db61649d5d6badddddddb5d67adb0a0fb26fbd56c6c85a6badd74a19aa27b3052b7b8e64acdc608111308ebbd77256287841014b9919e694e2377c3b74163259acea90dae55aae2ec9101d18aedb5551d175921f9d05d67ba2f5e28989eba24bb86ddb3eade96e00be364a68093c771e6072886abdf6694b478bb75bd74e795790e4c9f5ecb5f7260941bd4f3178ddd6dad6a109152024710342cb09aa941992f4c30626d96d80e36dfb094aa7c5c2f240c3d49404d3102c74f161439adb4f26647f3ae486a713fad8291a89112e6b77d09945cc2b9de552c576b79d1d44875370b9622f921d785aeff7babb6be9dcddbde5eeee8ea40697bbbbb79a5448754034764858709953c7c3ce8f93962fc6a32d5d41bf389d6c68350c34e2dec530d4ddd15ea7a8aed5433bba130a3a2a92bc71a71f1e8fb5d6dadb7ae3ea178f7577efaebdd65ab044cd0c6590608284373dded029195af62229d2eef17e497cc89ee29ef95234179fcf7e46a63c9d243958da2914b9a1cb423f232fbc723e23495c9ed1136ad4dc9065881858681e6d8584ef5a23423a17758f3d01450990156ef8c1a597744893c2ca080fcfdddd5bf72a4565f550829a263ffca025f670648c5feb44839e07b6d4ecf8b796bc7b1e999267db31af7b3fbf6e7b6a85a5ad1baf6b7677b7bdf6f68c72bd79fa83c51fae8a707ac2298d550f495de3e44ee1c8abdbca894dee9edccd440487a719be643901c72a8512b258795b7b9ba072777777dfeee7696bfb6f77bbbb7bd7b66988d7d473bfd7aaa987e7d35a2551e17dad6db736df4ff1c5a1833b6ab90518254de8edd077cf028734e3971e8ed6f773de8d21904a9ad0fd9e6f3004c12869f8a9a4611001ffb0ee71e7df5d1c61df712eebe108edfb53983f188a705d30d86d0a863d0fc2cc30490b0283bee7a57743e6a087e12030a4b0fe15b08f5fcf37ec7b60b047929d4f2b47be6f5fb7cfa777a33f7c7d63c7d9bff55276d315d6b27d7a5de4fb2e68b4a1a1cff773cb72cbf29dcd6a0543184fee9f7bbf7b86a3a4c9c08a8b5e260343faddd72fc251125530b4dfe5c816efa871e086cfb76ef8bc74f960ee63b3a1998cf36cf8ffbcf46eb8ec65f8c3f78a6933ece207f40f6931e75c3e5887bf7cf93e36c21cb93f4ec600375d9c97801f1b32b0487a3566de063fdcc77e7a37b88fc9be5693e1231a3190fbf0a8dfc62a9981be71b8a3d64d978fdc808ba38152aeb1b7514103bc52e6bc1ab3b621fbfad2bb21fbfa9c37fbe8fdcc3012100e3fb7ecc3787b6a65f877d4b2fcee7f700c7370e5a3a0dfbc0343a52c9fcb3e3866897d62f6c1adefc12a30f7eda8650ee07084acdcfd0b873972f79c7743456e7d4b495bbce559f4f37b6a1ac5f8f97d9b46b69fdf55d3c8e8e7b7559bc9f3633e559f5cca311be1794612cdb7e1792589e6c7c0138c249a5f842795249aef61f926559ef2cd753a3589e6cf9f533f71f82e952f9c51794291b449a5a0a48d52a9fc93237f0ea9149dba32ca1121723b185ecfe7cbf77ea352b12fe8545e2563cc27f3f9cdab3af9661a4959b292e7d32d79fe9b69149396f29c4c6ffc66d5fef5fbad7f767f487924ad4bd40d53e6f41b5595b48513cbada46dbe7c72aa8945256ddf83f12b04cccb1444daeefb0d2b8754ea96fda9d4349a4770444ce4f9d5c813ae509236ffc355075726554ad2aa0bd728754a9d92b4f9f38838e3fefcc9261a1509911d0ca994224c61884452f14548a5e8d4348a5cac9696967824cda752d216a3485b1463252bcfa753a48dc352359f5e495bccf3291a698b2a2485144c9e358a9818d4e4909ac9b36f39f480430ea99a3cdf6f73136b1ad5aaa410840a08bce0909504763e7ca18dcaf3432a95e7dba81942a63f25b62f9fe338777f1b31fb2be58bc39bef370e3b80ef4731566ef5a337b17c8b9572631066ae20978683219f62a419bd1af25d17c80d604d262986061f93c90718ce4412c020250054be147c656020823d28c63031732276301383c2bde8a0654513b7eaa372926fdc2255e4134113415f0810ad58e54b6950712205831a9c40a9a8471f0d4e48f0f162c4f964889e174d9a60305bc4c9644c9320f9d2a1af8525f2f568712a79010c0ba14f05193e3ebd2024e89b4e4cea2c162923a3c181be3984490db218848993939fcf042762710271c1cc8a6ffa70c10a2cce251798f4eb8bc2052177e7092582c290f04a71822551dc7c5f9b25251011b1a3f3559dc9894bb4604201cab8f72561c4edd84479f91b5a1fd6147ba30958504193444499d0b3836b1a210070bf8ae696ef9440b0b064267b6001884cc9130db8f24504416476a852c5890f4b50d031d49a94bd020c224c1715b0e2b060e4c9971d2078e2171e4faa0c39a10423f092641b866cad1617134ef24e8e639870fa3cde96b2d65ebfb4e658d546051ce809b8541f525a9b33edbd368dd75a7fb05e8e3a342dd14eb070dc7f3264b8dc3c998047561622535a2a1493a649aa06a813dab4139ae39826d2d4da3a71adb7b737c9eaeefa6dbdf534eeb6eb1fa27d07e37e88f6b54bc25baefd5ed8f7b1d0691c76a99250e15e9e8f07e6395225512487df5735b5da4da4a1311ec0872828f438c2829408ba490c63a878be1b4144a9e0468816bcc47941cb8eed4f00d1ca1521719228c11a11846112439315668830bde1c2850a4ad393226e3941b4b172c41236b82963e542937c6f4f7cb44f132e3fd04005cd0f2592ee92314f4c001aa2c17002af8637b5b650c5d43e3cb73647090b4aadb576a7bdddde1cbeb868b700c7c7998815b3da441127d7e781d587c09b289488a2883be60b038e18a99db7fc5620544778b80e132408636d678652a7b532d9952395930e57750c8f5b97af1cc19c408a128efb2f852b48965000450f6ce0a0896a16385c8412584dac902c612d5122091f7898a9420246898f5b8aa06b00362b4c497531228725bd828f1472bef89082b5b7db7bef971e700232627c7881ed4322a30ff1d1872b647c9862c6878ec1875cbef62551ff0cdc2f03f71fadc8fd4638f7db625cd0b3cbddd041a3a507f7fead1d714b9e7dcbc3a183460b8f3cfbe8d5988151f9c32e4973b7512fec13e6ab7fbfbf7ecbe340291735976bb1ef07bfb3b1ef62600c74505a4a2918da977dc5f46bbfcbe340297783f76a607ff64853e21f2ac3dc370341fe7cf466de0631cf5a1e8e02c4891327ff7cf47e40cfe1a3f90339900339907f055e817f94512a78bf4da3a3ac231e34b41d2b7f8739ec4df68799c9fe2dd0b4c06a91d5e27ddc7bbcc77b7afcfdfdfd9f088ce9e396307e07ef07e11efa8bbbef5a0efd8626cf1f000e2d919062c9f30580c3a38c71181f87b107875c0b580540ce7d9d62e8a3d7d7c321d14021210fa5a0f985c327f4449c57238789a4cdd931e9a22ec077a986ef0f18f80691b4f916e00ad4f20b50078b77f1b1d9b9c0f4bbeeca63ae402d8739588439b27d2419d6324863e1028716dc51cb3fcfc20566f1deee370281460c16a929894556f96daf01323e7a1f1c3d929440426fbfb39ce7b403a1b7a02b7eb117c23a662ff4dd4c8883ca21d1ef88564242b2d7317b7f22d977b2658f245bc6f9133dd29c09fdec46301ac42a22a11917e368063eb0fdd12b25214d7a8463d2c521e55c324cb37c9a2e44a7d78150074242dff4419059e839aed512a25906f58343e8fb853ee64ec8aff775a147921ca699521af391d0108ed9d6187a24f9b5becf24548c211dfa1b2ae56be502914cdfbf8b0ef8a2982729c8437f8bb02d4a3e55a3186fb3bded7ed7b7e5eabc1ab31fc23a643ff447475ff44a499d0cebb03ff4b24def08452052d5c836e1d06b40295b07633e613ed92673af43f6feddb74cc675d6dfbe0d7f6b5f22c9da2ec3dcd0cb3097fd8ca481f63b0bca70cc38baa617d377f0e7867d7f1bf61d0c5bd6479af209874fc704ea7f8e968b39f71ca594d600b2217bf9453826551cb30c8c035bf78ba5d7417dffe97550df82a192b7e5bb5fbf6bed9fcd66b57a38b8a1a7b9717fc770cc94e618e6b084e26e0c3d47a9a51ffb2e46e593ffc5210d2177cf9ec31c97671804d9c1d0738f2463b19806feb45f5a0ee4b8d0c6c0221cbd0de8657870f4b68fb936a62fa34090b93e109650f539cf467df9142a35a6fdfd5cce51b273dc60287148f3c5a10841f27da4d93de55c47b8e8a3e7818c37fae8795004fe7870f4455f048650f447e008f7eacb0b519264107aa524db1be19ffb461f93ba0e0c2b16f8e34117f97732704cea22fce34f3b70594ae250e8b185cc9ba4ee6b608073301421880c1c938a861e4936b843b6b1e19f0f8a3ec6c7004588f145e08c3289e6c7a48b3fb0bd112842d1dbc0393589e6779c962f7a38383839e7eb3897f745af468e893589e6cc6a93e70f01806829cf17fa91e7d398f27c1641f2fc1f22797e8c3889421a95e7bfb67cf2498d94b485542acafc7042595d495b68a3a0a4cdf51d9329d2a6f33972beac92605c9fbf949251a6d10e9118f58389b47150a8a495b4c5504e495ba46213e485a45062f1a8d848c9a1bccaf3addff8c9709b8225cb2735d2d62d5d18be16f6efb822be28e6ca994cafa2a7817feb3b97c778db1bfdd13dc246d88663e022dc3454cab40b72d9d672f7b17bddbe0b86ddefa8e556eb77a2dcbe21a478c73ba255febe1c9deedbb76f77778ef739dd23c9eeeeee5a2d26499bf787fbbdd6dadbf832f1e40ea2c395a7db08e0b28c9fcfcbef0e7ad83f4ca8c5838f59e8a0ef4fb1ec1d739d745d6c632f1bd3efa8eb624bc3dabddf0783fd87b46cedd3fb1487b5dc3f6f83823c3f9c67433ee53e7a33f9e127ab3fc330194cc6ddfe180e29072d5e7e0cfd1bf409a3a235e437b7f2aa8843f6fed465b469d3a6ddf21d779c770025a941a5df4917c51e29f873837e056f8382b482e9a23580a2941ffbf833fb2a41207c256d7e05d815ded8cf0ca40e86393217d27f758b97813b6a2a7e7a1db4f80675b47809ea180a79e78376c0b692b40e021bcceb3930f3ebf5e2e20b19f41d27bd0d5e60065efd5c84d14f4390de8d9983be93ae17e680ccafefa8ab861ea0de0d9a839e7a38667e7dc7c9c9cd9c9dbc036260e61718e38b0e0265834e66bcfc8692b60bd63692267f06d89c6b054ef14118e86758f62f1cfb1ddcfdc4f6613d85c3f25d29ff2bd578f9c2b92497c0f066cfeb014358f6e692832f695e58cb1ed87aa4b9e28170d0cbf0ec63f8f51dde798be7234d152d15366a7903c981b4f1bcfc1cd2c65d9ee7a99a44f279c0eb421ac524f9d3f3aabe8e31c6fa14c3c20bd6f96332499a97e7527c21bf8b31857fd8dd66a42dac59ee62ace477555b5d5d9d91364e7eb7b14bfd264bf9ed354bdae4d736722ecd8e73c9bf385320bef0ba7c395f3f8c58d8eb2702e098e4b4acf317efa8d97e3a03cbf8b692afef3cdc56503e0f031a2f23c52b2551f05e89a59a2fc5bbf0062a3e87b4b582be9fe642da5e5fb338f8e99ff14a2faa8f3ee7d9a060109e4c3cc8e0054e289226e7520b0c7fc67760087b0f0c3f0b66c90067803049c32dc3de6df43808346bcdbea56234aff8771c46acaa9d1a8d0f699f6f013efcf2cd7fe967cc2212f923bdc8fe058891fd099041f6c7804bf6a721030381bbe845cf03c3fea00f6159039a3b90c617617f2bdbd72c088735fbcf576bf6b40d627e813b22569e7de7e170249c48c9b31908845f4acac0f0fa7c4cfe0accf33b383cca1794586a244d7e0f0e793cef795e05f6bce7011b8ca4751ef30c1c932c0e419034f0cf073444c8e0697c4ceaa48b003826755dac7dfe1d75b9f0069226ab6b07d3aeb2fd5dcbe53dc59e05bbe9e1b86f5f7a38ee7b20f6b67cf45bfddebdffeb85b98fbea8bb833f38fafd3d5b751d6e30b7cfbf4ad2e4945d256d34cb6f30d2d6491b9765ec1004894317d93ec517874a235065ff8efacd91fd46e53b4256f6bf29e8c592ad578b17745062499a946a32c0333e47777737187adfe5782e13be9c9c479258d266a59497029348cbe7d1f340061aaff314878d44965fcc1fd851922675704389e0bb1e8eabe3823ffef743ce410db8fc92269f7ebf77e5fbf0638ccf012ed3afd4fb8b63f630f7b9e7d56b0619fc8c9f9141f56e1000c7a40c1adc51cb3919d8a839f52fa55d58bbf7fb60b05f9a44f2af9725ecaaae7af98d4467f5bddf1776559575e17eda51fb00031a3fe39124062dcc230363f01d3803833f1ecc08c1b738011125298419afa49464bf7ef46ed468e0aed6ef380c704c9a51cb170c7364da504fd3884a22aea33c2a47a1113a2523c98da04b0ef5e8d3efe287f7fbf0b31fd2327d0a8639e28e8e4ed479f939a6d17bae1d295380e1bd20078630f91469eac4f88dc311b8d7cbe9758239a0e70243987760f8136c81212dbf709444f13bce4b40b46f63823caf94a52bdaf09fcf7937fce74bafd6f8b1ebc749dff1c3bc2b5ff859d622d18c5f3fcbf859f7a98b43a18b022c9ef36ad09ec5dfe8fd2049f78f88480132a9e821206d177cbf04a4adf6fd14d8216d30beff02207440daecf787206df45b7e3ff743dab8efe798643ffb06bf9bd16c69a653d6fe64e570460df7750e4094607d8ac3226d5c54ee175c8dcd5a2ef71600e716b3dfeefd3e18ec6935976b862d781966f115d39ec3432f03f0160bbd63a2bf18000b904945a08d9a442d7c5c0ea9547d9a46f269126159f0f32b13691bfaf93588b4c1b859f44d0643ee69c9820feb549d926758a1e4f96195caf3c36a2413994651562669bbe0670326d14413d6e21b9ad2bdf97e9ffd17d517f6e73c85f1ed760049c0acc93078328cbf1e8e012401534486616158b0b1d70f3fa47d1c95f277795a5ce4fed973607825187e140c61f965167c6316ef38e61996e11db56c01c87d2ffe0e915f7cf47e400d58bc8b4792419fe2ed92b4f9fcb04cd2267fbe0d226db39f02785a0546da6456d2f6736546da5e67a4ad4acda751e8143ac5b5de43c2df7f007f3d288c5bc2b825dba20f0394c3a8148c9a2972d42963330000000000a3170020180c060644b2288b6214c852ee0714800953da94a8a84c1a898523711446511885301c053110003008600052ce38049d34010057347ba815023f10ae6e8b87a07f4a9868966e5a70903c493e80d7c7d59db728457a9a3be9335a4e49152614f64c03bb874dd022d470e98683a6e0ab54f78cfc7df654b74e243769ac2bf0849582ca47c352b3e4e8d3576f0531b7b62d2eaf3a8936c38da08c796cb3fe947c60276891b1c45f88129bc71bf170a0fd8f4bf6fe7928adc34f64549905d18d463bd30b80b2ebfa57c65b8a1653ee99cc55951e77ee41956875554b975e3ef49ee6ac071c82698386df0ce2005827417e20a27b8c9bc5bc23048a5b757aa2489874129c03d625748c4be36eff9b9980cd6dce8183e6b79ef4da8a95d7867ae6dd5e804a024d06dce647002041a6ebf14ef63d26e19c43d56de0ce1515dcdfa5b5b02445049ebda045baa3199d5847dc69aa55417cc700e3a7e504911a4e996ea7daba07f1189cc2596f89efa88858073aef801bed376dc79ef4189a9808e0bf5c3ad72cc20f8fec15f6d26a795ed8223629feccd7f324fe46452d8bf1cd00a969891131a0b7555db20c6e3fa8b984384d4e5fd3a8f4ab4cfe2a8678f6658ebb553977b422ac50005ce2bc9a4bdcb07207ef55a65b5ae62ed2c33b2a72b9752835f5192f36d1753257d9c20e3608dc860a21846aa3b78c0d930e7a7e6e964c94afe3bafe38b511e8cc36ad77821245f4ffaaca68547d703c8d78fc43489d290ff58a8db6f7548ff1331dec24e8adceaf0690c8c9fa88cfdfe71e3daaaa4e1914d3a59f23cb8a7fa4afd423a82db6240d7ec93edfd946d7a2e4ec3bb6e22f6bd452d12558962bf37c7b96e3ef865c3bfd368dceda75bdd6e48e688abc5d445d4a99d8587d9205cfac631ec72580d4f476e54e8e791908754a36bab29464067b980a23cb40e3293ca9cb4a850b34af970224fece4301a790e771b15c20c66dfcef6795ee97b86ed51a34c5d35a62e5a1ae3c8a6f146a34c0168ba79ec1f1713b009e71fabb8e1ac7d3f647a6cf26de5f5e9d5b9888ebaf6369bf67b817bc255d82263fd16b9f0cbdfe4c3aa01956607c5dae3cd34d95b21f6e4a1617146ebb87909084bdd002d54e935d6a18b882eff71c349afc89bbd8c22bb60c3f03023b30c66acdac1dc0269fc44c9a20f0ccec54e8aa813ee93eca33478190fc614d0d3217952dbc4d54f1ae5c6ed424f811ed249eac452137d8d503e1aaa49d566f5ef15bc95d14540f992868e55eae06ba241eff62eeb5b0e680baaf085c7c4458060e9e494912952f0c9c14fdedc503433190464688f0e8c2a97de7de781fbd864b9d953a2d76a486ab1ebf740abf8e2b85edc711ddd4af52be3a039817140674e708586cfccadb4a9e2594b36f90ad8c441ae461e4268202fa6f174d9582649f7bbb094244e8d1e2c5ccb490e8ec30c79992a4db96fe765a45f530885d916bd10ec0e23710f6caed69d782f3424d56f5d9235695a587940f5d0cb4e13e13462addd6e32f2089c4f187320e16c0c629643256cb07e36be40e0f727ca708eb017558a56bb9c9bd4ec769ca21a5bd0f06012c0977d6967ca89bbb95ed07fb9a024bc2ea6fbfbd15f81b3b707b2643a1e69b0b696667441c753e1713fd313451d787c572457291a22058b93145351f7d0562ee03669a6fc6ac1930033de1f98eb1834727ee2d4ef7649379f7f03167261daf3ca6c112adf38a58a9b277a9eb07e40c456b9fc1d95e955ce37035d69040095c3366a8033bfa54dc270bb781b20e9960f0fe173e3f7ccd3a871384938991e66eec1a168576a4b50fb7f6d6169f66cf5469b223a03eda9e4ab90bad04f6c7167f302d63c9068f52f75e59ea1939fcdc88b83f397198c18c25e415899fa9f1ef4bbb7abf675b4d14c28982d89eee3401cf95cbe13f545e71c328070492019e4c752f3d1765f5c52f88cd784dd7d3f4e17bedf8889296db3ffd4abdd1eb215cdfe355422aac404efe8ca81f81b0b032e1c8e603f811553b35893f8775368e74ae08d6c02486fd3ccbeac94088cf3c3826701da01b62a31276bdbc8a25164a16177225891d320e3d5ee3f21ac6024013534e384f8e51e582c01fa2637513ca922aaf81d862dc19c710c070faa63b355f84d43699fbc4cb6aca9c6534ca3fc611fbbee4dcf430ea8c9b21fcb6c8d370dfcf87c8bc88b0c12f4d51bf7f577004a8315ab5ce227e456fe208e48802d49abdf1465472ea407824c33a8f7c6f3ee8e596254885372fc787fd5a2f896fe32cd66f3d561812bfd8c60bf4d73f66839da5d57b4e0ad2c7c1448d1396a2c3f4b4e6bb46d4445b89d60fd26f0a5a5313bdadd0fe0ead3aa9f06b666adf79166fa1cfe2ea17afb8f5572d80865a0bb70d46de6aa7dffe04efce3ca098adaf7e0f23b23bdf56b96c68857e6b0aa715f7f5929a7c8832d09dbfeef30a86fee21bd1a20d50ee34679ffff2ed4f0d465c68d02f224a56f5ce7fc12cb4fefa90ee85b02d21d055103eba581421217a86a0306f3d2c8ec8025b800556e34d16ce13fce85f63917e5fbbabd1b93807e48ecb5d85eb757786017081fa0a5f6a6afbaf263fd0a6160fabb8ea0df5493945e71620719dfaa412e07c83acb0b6c3e2645430d62dcf9ad25d6c456575d0ff1b853eb5a3d0dd1a736319a9ab2f6a5b884c6bc39e8f9580d12574b717ba1f3b582ceec433e284494ffa99b7856d7c2d74b4afd84053c5aa6b19d5c6df09c984927739aa1f463bc6bb02579ead2df57c6b923fdd15b968ee35cfdbdea1e3d569be3e1d6d35c363610cdb75c7a0ec102c1c968ff57ceec3f3e5e33065d0279bf8af10f710e0bb3565893b4d328022cc919fe9c4df34e07165330d7cd5b669a306f1b4242079ff144dd03eb0a06a24467df04f41ddf2c3e4315e447e1cb972118eb48a68252001b85ec9cb97458ab53acabbc9354b2c483a79a4ae875611c42b25811d75084d1cceda18b7c198c1a1fbcf8a7e42b9557b9d5c3fb77a145b4fa864f7a7e2536a376a19b75bd6bf9ddb6b435e37615f8167c5fb4c0f7b20693f0f791c6398f57229edcf8dd23176e1c22d80824b4d154faf94d7ab7102fc848995e61441df825ddf8ae3b400abf82b439138f8d0e3f6a481ba0d0feba4a943eaf6ef82b78397e8ed5dba8300096abe62e1e6dfcd050f8a69851775fe54635caf6992c9a408bcc34dab705b16d6494d59723883de063a1bae5af1d91dbc70d7bc1617914108fdd34dc15f8dd7e166a239e077be066cb1c45db1e2b34c87fed6821cac16636d1fa4d6541675d9a430c8130cfbe7de443c92fb6b63b65066f2c64a37398fab0ed2fd6716e37f48845e2157ef90f12ce81f27399a8bf7d88181ca8b9085f35e7044a5fe749f15d850ed659cd1a8413a62dd44beeb01c67f3bae4f824103905b9082ca2895f77f539f5ee6d9e69a92a615f2e62c81feb213ea83be99551c2c13e56cebe53722f7689c2572473abd7f54a563dc06ab3dd52f6b20958c376e9b61ec8883971f717e2ec29fdbb4b8a69bdd7cb07d6646d0f6e1e3216ff09a28b11a8dc957b76b24e4bb6cfef239d25f9f3ada575c6b2ce3bfe0624c231c131d14e09a8a522514da31baa27a08d7f2380a33f56784b667e74cd4ba9353bbc76514780e946645dbb712004806192f197158ed75e06c4a2746252f511a58acc39186a30a8c601bc3bae14540859b9eccfd4b74ac528dd1ba97ea167e240401cecfaa008da6aa2855c6126dec0c62223d4edd03e43dac7eb8b8af3949933762da998f9008558631515a2ff15507e8f2d1d4eabb0ed4aca0131177c88062d6d7e61e1ac6e4c1a88ddc0363631581eb1ac4b3cd08a5e2d0d2d511bc4db47174ad3160eccb0c175a2770175d2e74732ed78abe9cb32e1f5984052d5f43a1450a414aaa08e887176087ab5e908e2e9bd90e638e10e22199dd3f3edcf8642bc515ba74a7e7b1500cf1c45311e4fbf8fdf10045cb009b71fe4646242fa1afc4deff24a2c079a257ae1356982ea66e3a4f3576d892e8dcd54d0404e75586f6e59c4d707a5125ecb789200b70c6a7063fdbaeaeb75bc977070b2be2070fac378a6ab93b80fe7702aad24ee88af065dfab112cfbd97e5fc3f13622023d0f63c0f2383cd971f4b6d5cbb829bb278b11eb14dcb2445fdd26abfb51fc9c2e533171aa3277accc6e21e9e6c03cb3eee5cfc756b0e508b9e41331f6c5a1f450a62bb737fd397e556f515af3c10fd8a1405b6c0c00a867cfd78438dd42c3d7823f2f3cb54835f4152dc9a30d2a9464d2645aab85b76ef9271d9efee234a1fb3a2569b26472139f4181fd3034fd9c24cff7c356b31c97ac40938592b535f45522b653b6b38be25323a387d552d4e754a828e3c46a90e67b6a03018afe987f0cf5d1eb03902d955c0ff82f5d2cb2975db153d76288bad080b666d2b48b42d37048452fecf534c6fd377d8c1591c9007dfca8765de7b0daad8f40c8cd0f77641a9fc9c0cc54087b0e2ecce5f20c112d01940a7df474f003bc630fcf302bd4555041ab748c8a0e9ffb626892af3921328a72450cd2dfcb7d69255d77e37bb0d390309a48c9d942bb1dd6c6c543fcbdcd2dd5fa90648a54f0c60504cbff47a47acf65d180ad3a530d7db50feecc4f015c0b5a04af971bb56e4778e5ff14003fbe7c75accc934e2cd93aac93ae1844b80b708764c17638e8cd2c05e43e843dd34c790bcde5e1afe572c01cf1518b222c0dde4b31ae81068eec2f786d9f7c7b424410174e8cc661489768886c28244bb50411e0f34f8f8e50c19382f3ea36bff9b4b21273007ee51f337f143c5aa715845a98bd0b231107f298fda827f46314c8f58f5a0402069711feb0558c390715d3f99a575c090c26f9d2b88d86e7061a986ae8a847b780703290f18153c4912a68e3333c8b7cb5bd3c753f063ad84d34c0dae6dafa3f6e18cb0b182c295107c3bf745a8e8fe1eb51a6c4625f4376602cb465e753486981cd9f2d6f9b552c1cbc4af619bd61baf1d8a5bb1cf80575ff5b4b0f4d9c7f0c2855bdc2d6aba048467a1117379e2283de0cae78fb7d777ac0a7e2006e840dea5869e670b8f1303ad2350c103a02845209557ab9d005be33b0428667fcec246960215457fbff5c542c55b9b123778fe0a6ea6ba10af34e131a1fba843c70631fae7b62a99db047f8f250cf648725420af9f5b7affb7504ff7bf5c4a7d53891c3bdb70b970470a1227ce08846bae20013984b35d8c51a57c84d920f2f4c1359fa133a755789f10a0c070bb85f11d3f6f7e563f8376f67417df19431f73fa228b3e964ae76d0de0c52c8cb3ea5b7fccc691045e13f6ba5ce820710452f8e05afb859d9f98c2ba4f1ea354b3cbeb9697a28f4881cc116f4048433f29504a2ae8849d1a02984fcbe41462dd70cd71e4b2151e36797a1f7fb4f0a3e0678b483e94fde373fb2120d5fe55b25ba25f8c3dfd09d015950a8e7dd45832b4d6561703dab5152915dfb1f7fb3bb43b56b8f2989d9e0bb1d906fa5b35b50be15d4d92c1cbf40cc97aad55a44cfc24a608e2c3c878def0c9c33a5e1a8e5de49075f182da1dff3ec9ac137e9e00b0561254c58d7bf0db8eb4e6fd0103a465209c897abbbe2390da9e4991d1def4bdc33c2ee7cb5f8896f9576015692d90294028f25de7e8ce2c1f7f87a6f4a3d76a9df5ad8cb9f8cb8b972a4a24bcbcf3ed217cbeedc80e2cb3a3df75699582bf3f5d897b23e978e1855bf8798e7add54227f841bf675433fb4ed691b6adcb3cac4fd49c8da872d9ce1b5f6ef85c898812bba9f1650a22ef17104874fbdad7ec3643e11f6ba8bbf56c3efb0be7dca5f455ccdd8b2471b688ef394c97ac76be7d958bf1b970c800bdb3855fb81ef9a28c6166ffe51ceec01709708b3c92d906e2e3c8b94b82a14e5526ab836216d85129e2e241d9192f62bef2149b7f29f0058c01c734f04e5ec88252aa6e41e1eb7941e15330288c862889531bbb6c0615f489393c6ab7240ab1ce5028e1c0ef1eebf61e03e58e43aae614de3a317d2b05a80d430b8c324f3ad2f472bee61101546a68ed2ed1f1539db7d5f0b1ed74877ad68e8eb7ab3cc7d9d146a9bbeb790de0b5afbf00ba4cfde8e966afdf06a71b7d1024cd523ae69d56ffabc1e4af612e55c0ea139c61578f596788bb3954aeacacc9de69fe0922cb861a01d4794d7ee872ae614098be49202e93600685a8633c09e4a16f95e91cbb53597864feb53f2d05cc0f7dd7ab6c73129a38087d795a2e5e96a9d6862f41cf29b543e5e75cfa95641c9a91a25b622d868973a05a7e8e78470ed0d4df895773214a9c957f06e04515f1805782305ad8576d2c1c368935b4f36c2135770115918a4e17964edcdc3213ea15fa73adf67078ffd95438f917a4128fb901e522fdc3f8faf03e700aff48ed6d165f8549e977f09d10bc3cf1a06f9b15011a68df34aa6e3bf5751219262ddb1a6d90cc54bb1eceb181f24e0a32cf0d19811feb396c75d4952dea8f43fa5adc55dcf2b7f57325437c8b18fa2eebc1c77f4c9ce66b30abd931b86813a9f38b8483048ea8d05d5df1577b18e4edfa62c616e68b171410281d0ece3b11e063fcee2aadfc410b5f3eb541fa7006a7f72b7f61ecc69e7f9bebec316b3177cc0bdfa76caa75a999a113e8dce4c240799edbef7e04faa02be1d78b2d4d134d8bb016dc6153afc1218524324f5bc6f2bbb20b06f2917e36526920d194025b34cdf0476f27a416fa50dfd85bf6aff9c84ff0e5fed72dbf9f6b404268fdd84983c451cd26dc943712e4ab2c71bdfa3578986b43875662dd3778ab933bcc365927e7f52655795aa8df4ec303bae772210e953cb29ac6f07c97a80ee36b575f4e63304fb869fd7c68dabc8e176bf1731b620906a7d063f002487d6a4c82db2a946f5396da4d596705d863b5e1cff86e0c40fbe0546db54f954b335cd1c9599634c8fa795584a33615655ef7a2a61f36fc7ab2d4a688123273fdbec8910740adcc8a58dda464ce71d6df3fc2f261adb1004a1773852245b148d28d079d21f51f6e3524a0334cd1283abf43fdd3269d99a8df32ee472dbe18f7f05b4a9822d164045de6217b04579fdf769e1853fdfc7686d80968b32d2f2a45daec91eb67c15fd750f25f2ae8170a6824a8da0f25c8913b2dd052a892dbebb505fd0014cdea60b579bc0472802b50c40cdf04f6dc85ced10307d40cfd751a23f81889a2666ac8d4526148f688261207c0322daca9adda49b7b781ce350cac2fd93a784e4d7b7667a7b9f5161dae8a02e2763a7c560fcf33039f5e4e8fb44401e1975f5f9e5a53b7a891fa1c99f063c549e82e3b52166945e432f033e02e676c3adb5fcf57e7004d8402fda49cf5eb52c72324eeca93d9d0b8af49c85396e74e684de8fae03d9a06a13da888cee8dd31ea4d52bbf6692eb07b166ce5f3f9fddb3b90f71d467e5d36eaee9ad8ae375b9cbd6373b616f90fa7c8f9e78cafc530ea55c9106e60660feda5580a8b72fe21c2a52aa5357e082838fca1ee701afbca52abcff6e3d8f51f267dcdf3ee2ba895b864a5340190e588c7b5959f08bb8e23b08423438ba508e75a803a1c7108a69393f9de6280b482582616efb904ac873db35ceae5d2d897e50bc7bd373f5fbba28f88a41d752fb5d251f0681fb5c64bc7a8e4094ceb2c4420f8cbee887522a7376dd09d8cdf2c7c157ba31ac64b0409a961753dc10050e5caa445ca9da633de10af422d518db1cefca967998fcb9db77857ed09576c31a6ea9805d8c62df91011210d9d71693e9fd692ff851d661e7f7e568d9a280adc961e3593cd91a0280a28e3f661b5bb421eb3ce158ca323c2c9983a1e02255775178f987644b30e32189874fc910b2ef7aa5a7ba38516861cb7af35037f48df95efe7d443517f8ebc94c49b106d24b19667778088e3b216614431bbd02c5ed33c736ec2d2daa0a34090d7a0120c3a4d925e68e83e3b4e4ed9bdd17f872f562d3891044fc9ce0d7f3d5dd346f72b7db99a4733e9a958b582f3e784911fd53465c0535fe957feca19c561a16572593940ed96a8dd7e0f01b4c8e70627a29e2fd2aacd815c8129101132fba8eb30f458e62a14f8228d78c70fdded49720e85375c9f348251416992cdcc55eb9b3dc2a98da4aac084984ed5e1317d42bc59c418f9d2d0f10fab6ded3bd0b4ddfd1c9457feb380f20ab1351db59466bd7103699de9eeff85b55cbdcc20140269a7b34ac50d1403eb614aed83dcd896cb17b968d2b441d1802069b4c06c5604d175cbe54c5f3669692937d076581c033fd2d55fcb550658574969c42348baaad7cb43a10ba6b147642a49abacb3d0c584db5e89f70be8323092e541a8317461f6dd081e59a8987145880c3da5f408ca7e1958022bc2e83574bda403611141f74a8fa00e2804196b1fec660e5d55896621b9c18d0f0080ac6396aed159d3e0856167274b7e8280ca2ffd9b465d9cac01f440538b7e825ab551c8e3a80ba61d7d24a611b020cd2d5c852004ed06bba9afeb131168456d2c060c4ae1674d0555641b9cbeda2ea45477b009342ae50b84833abf0fcdcb075e0c5fba65274663aebdc61bbc7215a0d46a90fb11bc2cb676bf045379483055241c84860d2b1754594241c1ebb1293a08fecc717e45c241640097a900b4d683dfb4e04547eb0a94b151261c845bbb554148c00d4a37062f81c57cb942e1208f1588bb0000b6d60c5eea378073b0ac42e1a095087c718122f0ad1bbcb8342047229b42e120b93c51aa6032c283dddcc1ab28956c24859515131021db60744078056a06b30bcb2f160e2ad66133c1084283df26c2cb17f1a1d5cad95641d4c006d2938497c82aa9bc6038c8c7b6e10220003b98be09af1957c19881f34a86838a0ecf5a05a52c53a5f0b28ced7887f8291a0e5a5a6e8b61d44006d73d859768af159344dac2e1a0e3b7be944024a103df2ee1b52afba889e253381ce4ea16d74ba1f0ba75adeb8cc9614dbb278597c8f1f98a54f8aa5e5be115527637481a06562a207496c1695b78e15a1e41967e1b258802b08369bff05abd6e5148652c28552002c1c1ee92e1559582cce0f232e220e7f757f3328c5757a6b8a59a3e4ad52f21d892f020f78ef1224a513228b952e220e77fdfdd0f82d03792f1f24cd4a005c84e26a4ab2e20795a2ffcb22b98775ed5f6ca09bd95de817961ea3631faf38c5edfe0945fffd51265421e94739d57a1fe58c0564b0883e4648d73fadbde0446ed7b87da51fc4f043aafcf06d76f5a412ebf84306869b911383ff9d679c56c5ce7be44a3150711139ff9ea351b529584b68ff39f749e849609ff3da7c4bbef7c57ca1e7aa3722f90fa8ba3eb5e7dca9105a64ffbf0795c189a9cbed0ae1107d87236b982d347db95513ab0dc31dfd55ab4063abd46e4109c56be92fb2c4ee6553ad8a1db04752c08687c53e9371563f4f5d104ed6208db9f9f53993e40a313c3dcc12a66330cfeb357483927b6d8338bce9c8669493a26d5b77101eab50d8bce5eaa46430719c60cc0ec346973459637b64d9c351b38dc50db730e9564bd78483ff4d248253b4fbedb8d37bcf8b66c39d7ce63edda161c2270b82022ae9bc925cc1e873dec925b2032b9b9aa94dcc32ba79f17d33590fe567d6a2af272e23d9762f6dc28b933fc23091f10b387f6b4b5007668475c4e949cc47bf8f0475b404a8825407d3defa1eb032674c31ec8385ba3a52faff6bf216e2d409d12c549214e170cdeeba57838a9997c78b9888feef9d81051b5a0a4fcd385bc31b1547172f3951a9375c09823ac8a5a50eec4fe4d24c21286f3a1937e1c15561ec9e31861ef4754e921c8f308283b77be69c9c31d02d0839296f7f5d8a5570466825b4d458eb940f09ce269d1480ad91825491fcc0c4c180849e8de4d79a69ecc711ceb2a88388a5dd403451c113d9a741882ab0e003e046282d24d166167d72064a1dace355c0bf6fcc23887da7b367046b04a744737b1c1438b6027d5e1f0f26c87268f80cf18efb3c3f013eb99e9683e68f599273734bb138eed9caa64f6666f2f8022eb213dfc7a4614d134179afedf8e0e9335f442e2cc319f27c59e66169c7e502609f90272ac2c9f2886df9c0e892035914b7495d038164fdc763bcdd35092812fe63be88be87e75b5b6621307e585809bccf5421fc0bd18140d10123e3f3e08e6107d480c0046bc7f25c23c4aabdb737c4e5a2efe662c6798e69b7fcec98512e8f22dce33e8d30bb9d1005e4bb51335a473f5a3385adf731777f5b8c4be8ffa6f21ba3d9122898a5d67fc10380c497357d61421bd8da05effedab10181eb509c3f627d910ad27b7c343ea868145c48e418316644687ed5eb24eae6319b905701479f9700dbd0f41340f90e12a88a5e5298c0ffd0b244f07c1c12a990b6bc7c9acfc5fdf52e8215adb1d146e3ede0cf74678d520e2258389a43e3f31f197020bbfbe5e15e3a960bed6b333e90409f44b03cc7726323443c51eb1ecb2a12769a5f18ac25689956cbbd5eef12b839aeb7e66d7dc73822696279b5b5bf9ce411bcbcc55812d373a8274d1e6e134707d7615ee41db7bd54099b57321982f15a23e8c95650bce540b575a37c6502db6cb809c22341632abb17c3f474e6605e6f075a6f45c1d9e2983fc1850dc43d6da2c43fc974e620b998010e75a0a06f3cf59a7f8cf86688692a021da4f627458ace22d9091c8b869fb2af200bda765a5825beecb4540184d6830b204c9f81ad9b9a33ef51f7a484b9d9c97712f3dc94c83c4df184f6e3369570ec38603f0fa0840ef7cc2ff63cd2d0ac460a1da933084c5c3dd56e062874af6fae60680e804a31eb00e95ff14231a8f9e547c339149591def3b84aa69635ea69c30397edaa5063c0e015ee571dc0fb71ffb6278a299300dc41004ac870081d0b73685fc193f5176bcf4adc6fb4770a6219d0799af0ad48d28234fb6ad9741d888289b7687938b8f3d2789e87c212053801c71e3e51fd428657118d3970df10f44a7a7546bafb2509648a047e745ef204b2e74b41a363663ae5dda7ecf8b2b0f8c13349272955eb0a33f228d8e062144e4c257659d559a6953bf99ec9a7a8eee54d39b96822508e0d44d0a46801ec211d7b1c33e38021a7d75d8a583242dc8654a2282ad55f52ed4ec901a272aa91ba925bd00cd8c64d6bfd995080354116b4f09ec2f2fff586551156dce1ee7523e727d7f26aac1e8d1e814d0c829ba94cfe79d03d7395bc6bd0494b20b4310763fdb2403754173fe8f1c44e6f9a05acbc544e6523272d8689264108a4ab1f5d46ba3acd4389c8398c30d97be0c6acbeba451292671373500fecf83145cfd78056931f27b9968d598fb3f5566fa56859b85c84f94dbf47d8217cfe4b2906c84f1a2c197a60f71437a29c657bb247fd91c36e5ee358831149de89b25a3687958c1990c77258a22343e8ce307f2a3675c14551e8a8123fa4eab2295e4298a2eb7b43ddc12171821c60579bd0dbd9f4f949e9d7df80b4dad2acfca9e7cf04db7da0878fae8a449b2a8b64505868c25c5b7f16888363dc8ea0d5eaf7b4eb8c9a2f21d52d851370990eeac28ae035f73b8460317ef68e5e03325c43eeea12bb6b0b2d444c68e00a335a4838e223399c122ac7ca25b2ea0b046b1b586a1ccd532618df72dd0d36eae4bda669ef93108ab46d00464eadead523ffaf7720bdb7484ad0cb1c6731f832a4be2741403c89c5bd0a723d7c218d4bef609545ffafaf44616f6d3085b18c2dae73e04a896c5891e0f056d0a95168cb1f6e18fbe7ae95bd26f145e6e84510c230f74c5feba84b8a10ad90f84d70cfe1f74cbfdfafbb7b918cf2988ed82ff80e07e70a1297ad81da3d30a6ef707e0ae9022242160b0f002f894be92597e0596f4e81bdb1acff8df097a1f309b258a6190f4101248ece557f0a107913dd682b7f0c8d99692c030f9ffeab75f21cba6dc7c8a77360b51eef92b920b4758c31d0e2f1bdc0b8fba86d8d3183ef82b1a7e5e0d176c09a0debc3a3da7047dc8c48f5e36187a997eaf1e8403a6cd61aff6e95c6366e3b0f5bc3234b151847331a95e395cd6fec9d0f21de2133e0a41e3e7fe2297f566f6a8fd8d9ec5e28430044fc8cc63331e9587117f12f1a17363aa26842ebd7786401aea5cd200b3a21a44a22e2704a7b3ec2dfafd624aa28023f806a16fd89588694521f89284fa1b3f681c920fe608ff49c75a033a8c47da8f3d1fc11838638136545c568b0b963840b11092f3f2ebacded4b365ddf54f95dd81d431e1e4a0c5688f60eefbe43b9b0337079dbf985ef5cf96d9be8f7c260adce8e96b3631d362f4a3b2be480487b6fa40bfa5470261d30121790867cf9d11a8f6a3b935c10e68e96130daf8f8e47c24656e47c50e5b694394a44439e22b7173186e4a8c1565629d6e198135071c6384681c47c8f32c2ab798b22748f371fdd119ed56aa95690e6e6629d2dafc74fae839535380d3d3bc59a810c353397b7cc23548e8acb617d91f122106aac5b7428e41d431acb42f89ce426281ac4821e9288798e539c6a858407e738529685cf945b8f9a21fe8bb5828a8ac65ab6a0b17734cb153b5bf61c6f90387eb2c61c306bb19c489e5667cf1340f268f76168008bf8ef620a640ee60845e0f6baa12418a13307bead58f416341ee6a01451e2a31b0ad797766e7b03019566b01b30b56eba9a1101cc382a5e5d7cd2579a75a0050cb659c2d04a5e05b5fdc7933dcbf983a2e55a505f20ba1110092f449ef16c4d102805300d2b0e1837dae6f694f9a5717579c50154dce64282110ae45b697f9b1d8a2d8647613194edb1389ee6ddf6e1b0cef672066469e41c3c1691650e9e7032cf7a39dd0466c96360481c5fdffe7bc2e1fa00c4e9445afcbdaa02c5b304e2d9df73de542407c80a6d099853a62bc8fed3335534c8372afd5dac10746862e0e5e3e349f8f0facfa4545e88b2708a8550606611e339dbbc7f9c73138c9234ec03d42d9aaaf23120ecc2242d5fba5754744f44f5c174060d050e291dc1c205818b9fd35496505b5cc9d26eaa16b582d1eea277c400d7f9aeb6107013f030fc42c199051c54cdc98c01f525179112fcd31325771fb012ef78d39d52b2a9847501ae6d5afed00e37226cd6b87d06eca9fba81089fb97569730935db8f83dc7b60efd0d0f36d9d7447b98d0b7b79b916871c6b19d9e157c712a1cbb29ca269d2d0d0e6f7cace3e211994035e318651d2c58cc2ada5bece886d0494c843aa03b011aba0743e4f1f48bf0310c508c7d1c922a92c892a310c014fc60735b2e11d2ccb243970e667ecd2a44d2887016a32210c4aee1d03c0444a48c021a4a8503b964b6b83d33cf3468561ff1415168e934e84aaf593f8de4e43865705a3093b558280e9829c282d8506a351437043b46c70ffaa8eda03be9d3ea49152abd1aa970e80c689dc7235a0e0d9f23d1adedcbe2e8072006f80d000e4ac5c3413e23e9fb10b7807b2b771996b32db4120c0186362265db41bac46c139c7a87cfd334620fe603f9dda1d13ed01d48c2725b0cbea004730064430b10ff85698113c44122c8db6779b969d8a71998d894f510b80022f0317087f72f0b7c6734b2289f19430f920ac9880ce754fcd069626896297739cb9be17d159be9f73104c924b165e81c27329658ccaad1958b110ca4c2aa127168703a75a0affec2510b174ab4f5e1c6fa87b115689bbe7f3f4d5ec747b261bf2f01ea2c886281c8d2b6a86d9b837d631e0e09386f414454a04a632928e73b324036ea4e205c178dc973ae4004a42d3612868e879b021f1844ec05b12ee8dab5c13ba0689ff016f1ee76dd5d56ac7a191f806000be6a8b7f50c5939b6388d9b422cb057e1c7276568ff6fbd3c1403c748cfe33db74432d71706f31642faf3e9979dc0a24ee07ba2d68a36b7d6d5435d7a28d9a9bd966434eb1a4577ae60cc9d410edabcc8a74afb218c0b11e29b420f6954cde70a78e51542fe96b1a3ab895a14a6f8e4ddccb2dc1d6eba8865654f2825af26c5c681fa531d21dd4576d1e5eb096392427dbd1e19583415bf7fe5029596aafa14f88d99ff54f143ee5a0d48bda498cd351c25254a6226228d1220d198830c0d813b27c605965a0ae4c6038c872aa48c5bdbaa94de6aef1d29f4a1d944052492fce478ca0f1f0367636e40171ac6852baec909f3b67b8ea18cd8f8ec0879aa2b1019e817b8fc23588a91f65f2c345fcc5590cf0e50a7b4fbd9d68c9df2252f2af55cb7165be5135b3c7e2394fbf3ad1b9aeadb2eb49e40e07a7f3e79a170eaad8b680162ecf18bdcb48e721fc84982743a78fd5925e628cc65382d52d5bd60a95eec9c935220a9200d2f18c27582c722a30d136ad437eaa3a67e2e6b1ab01b56d8eacd2d98c23227b1181008852302570006e52a798cd026494b890a2b1bc5c99ec63096c112a3513e4f3486ccea0ffbf2ada0af36686ba09318759aad3e3a2c83df309b24c2335b93f6484fe23a9a6f49ef9cfe50cdafddac5e4066843a0916a7d757239d6db4be4ff0a380b74eba3368397f20c481097c202d5abf8babb7b9dfe2185dd7f5e72ddfda463b202d3d6a010e9ade4a3f14d78de338f4252c0ede5a196d8c1ad8e47481ffe808ca68bd30cd0c8dc2fc6b84d179092949a0b4a84717e4d589e438b46f81ac481071bce136f413e30853edf01136f7f747ff6a2a62e350a0add002d531a50cc595fd851bd894f5dd6d12dba394b55e4717730ef0fdb8b978ef9b89fae77aac370a78c8c56aec1ae3939d444cf7dc89d99547622966d44fbb17e32d9f95b37218b8ac2d9fde5a5e4c05c19278b3c74dbb0114255e1577dacff04692ca753960cb64125058029d63cca2e26d7390f2083367fc35d0d2802724bb33162107f9201f85be9858136daa4eeafe2e4166f83620027cb5db97f00a1c2aa542f1633ea61927510005793e7e8994ecb31e1c0093d94dfcb9b2183e1da951a547254bbbeea61e24774af4833318b7f8837f16e0bafc30e79a9e7c0369be2860c325004c0d2cb8840110fecfb1c808d5ba8fce59f51ad219d7bd343dd37f16563af6a0439526c6d08e602c518e7999f7a626fd8768aee6be805095bf16984814e6f00cb33443b10d6fa0a2f68df5ac799b671e94af641e5589ec55641de48b14a2ee6a19416bfd060741e0095b322e5a1f5067a7a6ea80e9e52cc8f1efdf70eaebf31fdd55f1d560427fd0128eed97132ebce491f0dc78f4231f0d5e36e536681445b9b00923bf86793c85266329b7afe27adfc0a017f1a542514d7d4e7393414a5fb00a09120c021b7c6f5f3014d5d4736365dc3d9e6e94f16aa13a6bb4687f7f5a08d40ecf44cbc6f800064835e88c0c8d435674e6b85745646c4f4b42a7cf8c321456fcefd15cef19405bc5e910c955706b6666690c815a865f44a2196b06d12f36f6909d4478164bfb059e8a131193270a4fcbfd1561c064c83a2c6264a2cc3001d4bb85960aaba8d1d90f7b84aad6eb685018f67f76676e490e4ec1609df86563c0ea50fc861a2926a2175c26037ba4216a8e21829a3dd031cd073db343e2b056b46f8eb502a805794ce95dc45435fde56b699f66762d0ebd38abab0f5d77a9bccdae8b391558e8ccbd04062ffd5c159f35bec995cf23f20fbd4126a2845cb775e65efe4a59a124fd855b43b2f9217d46611735c89a21eaf87bb8c164924aaf07aabba2e29865f49667f655d6493b2071162344f4de0ac3b31e4bb28167ac4b88a0a56b87d8aac420d7f8fcf8aba6fdfede5c51a31d1999859f7f860aeceea1c2a605c3d75aad5a607515e1181b1b87355fa1be32013486f3fd95ae8de93f2dab8d271577bdb6556c6b2b8751509bab1a4e8eb8178d7a8c5187b0c290f106f54a7994d3b2a301e93848d8500f2a5be5acce6fccec85d478c30876ea90b84323858d85406e2c51b606fc36faa733f0bc9cfb8c038af4157f124580883319212fc6155a6ad5d4f96e96e7e2654a0f4270ea3e752407b3c13f876aadb634e54b50a4f96d80b7ec77f076d0dd48426fe4e1c62908f913ac522462c4d6bea5258e235a6e9af4f6d0c94942a844740305684336901ec0101a1a53d2f63ec0efa6c960a4b01d978b14308646019ec437388536b493c8a5e178fda771119fe64dd0b0a7a810eca409161953fe2a6efd94a8a69632bd9bf66d19012602bf93a3c682e06a61394ed4d5b1ffd53678f6d8853ec308a5f8aaf8d5d767e8b2fdfe88508b10d23d7ef5710aaec2dbe36a465f93e96b0449f6d4cf163fd484eb475f3a2213774b1d58f224480192b8e3aaac82e5537e8a57c3e0d288df012ca533dc27830d20e1da8e4287693144953408f1794d2d5c18daca8caa4ea64489c2e2418e26a11f3a31444a15101ae72db12f7c5683a910fde4bb31ed01341f0da9ce8943fca9e7510792e18a1b1e50c66810ccb498904370ebda07c3dcbf6d4895ddfe8d41b58f99c9fb519811f6985f0eea70a0a1a6546dae1bf43a2a29ca1a3797e2cb1bea302573ee39924b05efe056652affc81b168a16646f051ee004820f5a2098594d3a6d37739ab9ee5f57ef11a9418901e655946def56806537666d6e899ce3ba7e32130a95d43cdad71a141632e63d60ff7730ede6f5359f095e5a984115632e9ba465a57b79fe8656879aed879e98684208217b4bb903cf0eb10f600f54d0cf84e4136bd1b22b8fe2016dd1491c99f763b0111f3112ab57ad526a6e8285c0331366e2f6ac67bb34d75daff4d7a6d6de613cba3266ceae87a7dc44bbe4676a2ba4777579e5ba2f368c2163128785228d3c4320d230132b1656d2711132d8488c2a57beb3e1a9ac5ca695a99d66b43ad990a26ccad216b1635756d3044db2fed0dd205c166188ddb6a8296808d3b39e491a292fa3fcac3c8d38ca6d175596980a2b351bdd549f8b5cfadcd3defbccc3b27eb53871ecd3686a31930d572b46ab154dcda42e2663734a2969ca05e5523d5a99366d94ad72a3946f617994f2e035a326f1685362b95dc634a3368a4b51294e895122523c8a216327757b4e2d76d986fd164739a1611ff5508bd9e8a7bac69baa5cb738f5e9f408d6a0755e79a617b49a91c91a693389c35d48671d9334f23d932ce54c935d190f823a7d593496c922599a59585858a20dad1c7de7b51b16b9d3f68d2fd8fed0e64eab673ef07d5f04e3b9c6581930e315370462cae900d0b86dcc750771fb1cab5643aecc4c601895328c9093d832a05df1cc0486113f9b2f6563291d9b3fab7605d36adb368edb368edbdeab7e0999b76b1c9ef156857457d3348e6dcc5498b81dab2801cfedbfb0e1f6360b8a6e0ff1c5c98fa92f3ebe0839761b87c11d2cc48d36e4d87cac3fd41c2de14e38dfc2b172a70dd272e323116e8c1bc62c6e28dff1c61a2b055ad12a60e7c61761121f6144d1c67615e1e3c717df154d0461de58050ca088dd3e2d924d371a8d80891bdb15ed0d4dab3944feacfc588370571e668746a4239edcf0ef5710be3fc458336b70d46a38bf3d6ef1dc6fe4a0232231598194524aa95d56be3a624de7106bfa9b0b8cdcf0468046295e5074c3bb40c62ddd5006952b2f23ce88008d4843526e441a4aba613c7acd1ce20cf9be8e38a30a204429000da36440bfc2df461a32bafd1e10e897bc2b578c7e0945b9fd04bc9061c3ed9bdb5f19b97d17fd9261aa9543fed02e6d645282db37d52865e4c25745119adcc8eae8813ae0bbc7da3d7a35087739ae423c967f0dd668cf69961afbd5728eb126deab4382f0fdb6ba7253832c36646dc574cdb6f8b2e3bcefde0f37d5f00769fabc95ed0779e7bdaae9e82062d7bbd6011a4413421382728fe71edfd5794e8bc94905cb3b3b9394dd5dcbe6d913cc61e74ef992e76b600e3b97a38bdf31d6f0ef8e644965d6d034e46a93334929b5f7b50ac4747bc67e4ce2f6d7d228f87622521474a728a75d2c43468c182ed7bf5a49100b2a39a4961a3715bcd9ed8351d0d0755b93d22ecbb078d52bbab87fc1f2d055808731ae010e2a81ba886198190b534fa7d386ea5acf91332d188ec9e91377da38eef4087adba9ab322eaebaac3f5cd85f5bbafd98eaa2b2ecc6e487794c7da42dfe7d291815120d7db8435ade7297d34b677efacc57562aeb3dfdade0387d664797d3accde2e86c9cf9ca593232524666c57bcc81bf3d82373ccb7a7dcf5f647efa4c95f9c7add896f795cf9677eea79667719c3e572e250a85dab66dfb3ede369ed3eb50309fa773b5022d18cf3453654e35ec2e635551d0ce02692af513dcc1f7ec0ffe667fbcdcbbac2b2d67bd5cf506731cc78b9ded6ab1e110e9d9d0c5c676d1cf7651db62b572e1c2858b958bb770e1a2850bcf854dbd858b9ab2215f17f76ce85d06178fb4858bb7707117cfe91f66e5c6fc7b795fd1389ad2bc6779262c62e4ce9c5128146ac6b2583824d7960d51bfa269502fb6b1b8a8af6cb8c56e6fdc9cdbc6711bc76ddbb6759be775da938bfa4459697fc44c1047cc374d0cee8881398c8cf961601e6363e59f0d19044dd78be03b10e635acd41ff8ca4bcb608ee38839cc71b4e947cc61fe45700737e338aff3bcae676edb9cdb9c1bb77363aefa374db2c23c26c6a29ed3b15ddbec63ae3d6f4e8e9b1c374f52bca0e7bedcf8c410842ecb9ddb813564c0dd661ec1ae9bd96a68c3fd64ac87b2611017e6aa10c889616a8c0c95de98fab7a85c9902692af707bebf8b1a6f0daa471087cbbdfd71facc7fa03ee3799ee7793fe843d45beea9beb272facae9f41d5559ca48192b0186f1bdab39127c0457aefa89b5f2999f2a5f140aa53aea54e39d49ba608e6fdfb9de8a9500c30041b0b2ce9dde71e99e6c0844f51c89620db5abe5f433f547cbe93f300934dc8e1ef3d5fb20b7f26fc5e36c78763e47eee04e51ff017a5fe1401beec41c55c39dcbe4e58b60ebdfe7e22899a3600e733a9fd562fb5cbdeb2eab00c293b841595999f76cebbbf71dfc061eb41ef7d43fedfb3edf7d160768df4d3087d3c14ff00633b8008ee002f89e9ed32b561505ddec5f3afbe374d0fe90ef86c8937ccc5bb056efe4cc3b1bb29ded62d999a32e83da2a6a7ee350f3dd376bc3229b0985e26c3883f250d6c5675c44cf86df4cf5ee32736f06859a6fad3e5bb3f5af8640dcef12acd1e2215af91087cdf8e9dfa97ed4eb2c18c11d2ba7edea0ed6ef5c95e9de7d469d8d43f7530dbb15dbaeaef598cdfe687db66c38448239565b8b0b87c895c3fcc71079612edf7561eb31dbea73c5867d57ceea40f0fb8c930dbbc71cfc8c1a9b06b421f79816ab3bc1acd4785b9e9763f5e9799ecc796e205871d4d90a4fafff6a18c49d56da30e6f3b15d8f09775a2d7a5b75f59997d55135de5ac31e6ecc533504e2c6dcee5f57c3edabd9dd84315ef56a184493bbb2e1bcab9fc88deb7da788eb3d04e27661103eac6abcdb1673746968be12bade27066eae67c31c2e909bfbc79fa6b600f07901d06171bb9b72a3a0a1176b01e0f1c2fc43a1c096a3aef2400f7c4e7b200882ff38ae805f61fd743a9d78e5fbbe99994f06440205512b97329593ddfea986a75f79e7f1edaae7a1fead54faaf7a47a1ce9dd7a1aaea5f8d977ee55f5d798341f8d258d367110145fdfb8ca6a4297d1beaba9e9e2b2b3b779e76ae3744bba795cafaac32079140513604a27abcaceac5dad51ecfed991a46a31a7ea5c6ebf51cdd9917cad8ce4b576b227164c830bafd182aadaada49ab15683ba9eb28e14ee7027a43e2bc39ef28070600b6cad876b445f1bcb91d6d1b2379078f403bdbf96c75a551a151a6dd8e3a2679a011285804ea7d8ad5a454413bd4137486bb086003e333d448438dd755e70d408c51f319aacd035057efd56b5c9bc25268a81a52001ec11a309ed3db76cff33ce96d2d5eef550c44a4fba3c5eb6fa02a17d56bd0e7f4a7b5380e355e193eccf57045b4ab97a072bb070b2d4abf6c6cc8d7e64d80d3f8019ef3fbd075bd3f94f192e1debddfe897eade73e897cb3dcf1e0115566fcda907a8346a0c31aa06e5e6368f61352836558b2204b5b1794e37b81d514105f0505332ea970c6fd5fbf2094e8c1bca980c509b22d6f4b94a0f9194296309de66a00df60212914ff746746ff85caf935eefea8d1c3a497621c6e48a0e75fb12c4a15d30182dd1444a2c8206f0ced3a688473d37bc99305fed86cbf0066b04e12b04870c97711c7ea35f32c4a46a48bdc616b62ef3997f55880b21ac7fffb639a475b9b96ddcca36e73cf79539b76d6e11e4c0ede0ccc3ed2808104180b8dcbfcddb367065f3e6bf73f5c75685801f226f0dd006e1ee8fd3518fa08e93fdb1728f75f95987c87bfa56877455c8837016378837a485e34efbe387ee7a767b72bbe8f2fe79362472bd971d2131d60ce96ef71cf9b12982dbdcb6201b14cffb210877b728624d1fe6119c7683d95acc7b3297acfacd39bd09d670e5a87f5e15e279a7951a84fb41eac4ebc206e17e90d73bd9d6af677f903156088eee72975f6db94c4d7da66a52dad519e0ac965443ed29a81ed0703b4a7d3bc2b15d52ea5f1dc482d2ab2e43cd699777647f9097da04b8d41c6aa8ec8d76796f51c31ec2ceda90d260c3d5c3bb6ce88a11e37ab6c50110a7b4a801380e95afcd8c7a7334a3704189499348e7d68135a6a9450dc06d6aac01f8d6d3afd975946ef762bcaf4589f12f46651ac3e327c8e0e77ada9136459c116f10808d51e7dd865087516db8b97c8e814848dd5fdcf33c8fa5047344700afac302dbf6171fb81df52bec2429dba2f03df576c5edaeb32bee39bd31e9e63bef2f800899ff4a0dc2dd1fac9f34ad6aaa0fb50794cd69eeae375f7cbf9ec9343b2088f870bd21d7fbce79de67e7d9e0b10d7388bc367c8239a20d75de6da53ea136b4abef6a575b02c8b03686db18be552d298618bad96d9da6d4c570fbcf564d4a0cd792945c349f36a434683af5de63fcf172d55be8b70b6c442ef8ae4ebb755dd77d3b588310b9b39bdb6ca1b4c63bb7ae9b30dfe6ec364ec89cf3aa697f74efaeeaebfea2fafcb4f16edd77d5c7758dc5e7ff8ffbc06d88fb3eee03b9a2a38dc9c6442ba645abc11aab370c5f0d09ac81b333d680cfe959836d0d0a08c2c0c0802b988f5bfd9bda0782a0a67dff387075ee8381f940d06a48edea556b502ac871ff40b015d3faf7816f81312d0d89e3b66f0ae1667fffa689ab3ff4d590e6f78d03c179a4cf6e1a9496d249126786bdf17f9ba9457579aba61e430f535fbeaaaa73dbbb87f1a8fb26d4d13837bfbdeb41e2d0b03226096069a0b1ae6da8bb8c35373b980ff1af6b3d5c51f03b8cdd98b4ab8bbe87dbd067b7a2a1ae850dbb181bd2161614fc362463459eac5fddfbe08bf710565656565028144ac61152f8190020c3cccccccce9743a7d46ed58acc7c69971164b464666469552cad65b6acc69fdfeb27a8e8ca1f29da18672289445b72f430d6593db7f51bb5bc3c8929939a1644cc69a4a0c4de576499a947ed9f7b5299c9dd63e469c1eaced21c629364e214011232d6391a6bf1d4402f55cd41a76d6e3ed41706d4ff5412050bef1b10efd72b1215f9773dee675de10ed4b7949d4c5e537dad55bf7957f9f047774f7fec5f8c3c5611eb69811f3ee172072bf7901d91c6bbc871788b12608112fdc0922efb664c6bf987a812031d6705f223b6c0076c900ec7614b35db121499abe4090ed49ace9c758e3d92d8af7eea7ceeb3c9477171503f2b672c0c03cdeceb330f607795177e56955dad5aa7fa899539c829a9941f56d6924372c7a60db124f7fe684eaa15fa196a40d89338f416ab06e83efcca9c1203550b7c1f7c477f379fdc7716b96959db1e6cfe973e0ae5e5f6d48e4aede2bbb09a1fed5ed0ff2aeec90edae4ea7ffa795dde4499e4ea80341c9e8c2b811084a24b8d3d4e0ff4d4d9e4e27edff34f98f3ba1dee77e4eae563688bcd2c65873fa5176136ae5409df5d319c4813acbfe20efc90ed9eee9df668a74e61bb863e6ac375883954556cc6e79cca4edf916a203c1ed796382db365d88345d63dad8ed87110aa3dbb73cfd32d22f1be396ac154a6e734b6dc58cc7ac5f2d6e4e6dceca4de1b068178d4de9993336a58d5d9ba558d3f7a040439ba5db4fa1801261003bac82dea440d268519011883e29eb0b57e3308f72020d776ed4da76778c9eb393ff36b577767eb2721254bbdca1d955bbe67f489bf2020da3d197006e69ba214d0990a9dbd5d9ae399ff331d5c27981a4aebca66955f808e115cf6dffae5da33cd1e83c1d4b92e29e034d9668a5e6b4cbb337baca3767c6e03eb9a412dccd86323e3ffb62062177b85e41c1175f8433a906dbea51c36ff80d9648cd6bf80e6c07d6e3861bbe038b2c493e2e70c2a78929a2783d26a527a240c4143e38c919925114483b90d1807a464a4728816674041db800944a5b919324a42de664091ef8a15f4f124b1825e18313705c5210148cc0d0832946903a01ed18d09393d1089c4c391b819439822d740c0a14a6c1b7634ca3ef647bc10dfb49aa0434a43d53f0e868afe889a2279e10f405af8925b2d0753d33298a244a4f0c210655d0909e1049e1041c629b9213263011057ccd908e90036d7604290401dc927a8a901402299a6889e9d17a78504516669210d292296620c1222d3685112612520762203fa52d86842a484960b2e48b4e2869331e4009ba82863232020d8aa400999236a327a42081e925494b2a42119c1881889e2dc4a21cd9c24700a36de644094d94acc0220aa056c4832158418b011581f2e005953423a2052b49443431922c33171ce1e7a84549224159424f8f15a06a264491096cd0adc4945c405494822b743436a4a48828a699134654f9624ec4a458fa829652a20a23215af002ef940406278c08310483e402272b90624917809e27aa80e205ce543402143c1105125e8c052398b12049143e5c2aa6c4832986984642c0c20bb616312b7c8090e082108a70440ad48b51cf11464034450bb4092797d81350c2e0c4ec0a5770303d488cb0c29b4de079a2092d78e2c40900484adcc0c8280c5dd00195ae4b4292e4c4077c6ec0d51825291962269bc98063e9591223602cc91145928b493162427a42ca124f5ab0b2cd9470f015393154c511dd44eae9c087e40493a022565e14cd991350604a7ac2093378d281130bc90b9d569484640bb321569005ae2526634a48c1a8031df040a4a212505951ea2142a85f93873018f970d84d5649327682881e7602c80b9f13412498dda45fe1f4e926fac57279faf48b3f85be4ee9c9135030814c7a020a4e303d31c503b206468db008ab81f123ba0918b58f1a073e6d165c292d0c3b29cfb5cb77dd5023ac861a048d28626004abe11f0ae90a4f62ccee5b435db1cc808654333d29092a5a0cdfc01a347cce7777770c9f349c5ab13441691ec35d39fdd9d3d4902fcdd2d56a78d8ddf090c2a879188de251440ac0c308c58687f10a013c8c52623c8c58d87011321eb210ce004e839b28c04376628087fce43643b9cd57b094db1c9ba224432360da507b0c7f511150a384d5286f8d52861a630d006a6c57ce010c508026ee3c0168cc1880d09d975163d3e05423b16970a8b1696c6a6c1a01d4d83436d4d83401a8b1696a6a94343064d4c0aee7489a1aafb6c55099f61079717039e042129cb8b6972e0d6f300797032e24c1e85adb5d1a1a6ab800e0aaf172ad3df4ed5c8d061b9fccf07909e5320d4fb934dcf58f86da45cdc4049486873dd443344c1f0945e8caf0aea374b57ad34b5b468336face6075e8a161cf686a8cae70d62e6e2534d47865a86174d243cda48b6870f1945b2fc11c93892f04e1ba6a7723586d0bc794db4adac55dcf5a89046b00000075da2535bc5bb6ec264ec26ed2d3b14f46490a1720d10d490a1744612aed62a51c7cfb6d1940fbf23fd992d6465f297152332758a872395e27578072f904e857bcbfb9ccf55c410a5c0f1692dc303eb97c39fbaba17e5a503282dd5023ac7da6d09c350e7c9e196b3267359cbf9238375c0031ce303e0320d02f8d86f32bd02f9af37b98e10c80b30ce717e718cef65ccf3fcf9c63ce679f7eb9389f85fad53ac39ccf4afac53a9f87fab53aabce2fe733a7cee726fa853a9f8dfa753a9f9df4abc5f9cce727fd6ae917cbf90ca55fe0f91c85afe8d7773e27f56be57c96d22fefddf98c05739538633bff1207c603f09a872e1b1ecab0d157d67083006268b547bbf834d0b8660040eda15d7c19ea8beac3102088b48bffca3332312e5a30955995579567aaca4a5e2a0f3193a27631d1a409232747480c85a3f015fcaeb2149e52198b58c3875103506baa0dd5ea90eaa1e1f499fc066b4ccd2ea9e11c98c3ceed540d76fa48254dd087d3e7a8c35593263355024afbef467202851e4a6bb03c8c14451466120dcd2c90e28b2f4299a449b9cd4dce39e79c2829345e5413280ec3f8373a4aefba2bb6d5c3fbca572c9115dbeab1f2ef9f25f27de53b30f03b30efd7b67ab0bc7b678974b6d5a323e2bdfb0eccf41d188beba298005653bd2169381a79b55b024da2d3cab869979d40a59286df55941268488bdac54cdac54332d62e9e973eb3c2481e29b372d62efe8f69a52c265b2881b28cc926714a26fd8a484e6277bb1c7ff0e4f24a8db08e6ed7d9eef688e464bbf1074f6effe6d41bed92462edfa1f4e9dee494d9a5102bd96c029aa02f64cfe5dbe09238a0a1ec61699774e7696567abb48b7f4319caa18b45bfde64ce466207375c5d3934a7954c8c28df0f5d7ea473cea22c86903993ae589e19b3446134d2010848c270a50d5739dcd969815cf9c9d852b7afc9a837938a184ee8fc4cc51812271a25714d9be09aeb77cd72ce6f1a4f2bedcec65dc5f7451a5da456b1ab1bd062ec7ef1028972724a29fb3f34dbb58b884a02f46b9b536a9a6d9cd8618ccb2e5e5c694378732512a87c5ff9d9c5309a2ff8fa5f579d7885c4381f6408dfb6217fda940e69bbbe3b9235f0c517e1169946e4d66ab732bf79c119a88b39237377cf9797395f6617499a7a433a5f66bdb387d6fbc27545bfba76cd4bd72ad24c22ae6871724284d18925049f96d1171717fbc28c8242e7c11a3c5956ccdd1d7b8bb58be7e5a156e5656a45ad03eaf22217b9f5b46bde050456c8bcfde2a4878ceebcb4e1325631687472e54ddb56bfc545b5fa710a266471e3144cc0e246ac99e714337714463d54e473e5bb7b0a26ccae7cb711b0b095a660420e6ed8454828e2f2ec148c8ba9c55b5479bf9629527e0bac31a7b8cc5057d0502b8a31a4376a499da491ae183162e83a4b7f1bba2eea0834d46415689a96e1776046f8c295ef2b666c8e92653ea75b541bf24e9411e87c91ec3a4a5daeef45d54cb44b7e094aada95d1d117d39d17088c643e4623725db50e3201ff611e88b0da393db0f37152b1d8b76cd292c600efe3c08e260db8a53ca9c611bcd69026b1891b54b16116b648339f8c658f3c1985055501415d4452bd1435a52bfa0458bf88d678b6d3c5a925665e369a42b99ed56c4d633036f200067b83dd4af95cb7097d376ae93c14a1b5da894a6b4c536d9d65374e5b722fa85baf25a52cb0995960c928f8c7eae977f612771ece763489c6ad4385a92cc6c3163a68bb99a2b1366ce7c6ad39baa39f432a954b9d3c89d45b03e91a69126d392244e0c97a8999adf2c9aa91c436d61431ae35ad192606c288355a3b01004569ec63cc4b6762d1bc6b0482b132a5504d698b1ae5f5a13a24b6a497fbcabd61e9234f21a14925c5ce2fb89ac8fdaf50489f24317d7b6937ed23aa09a6cd53aa02fef3311dd66fd7ab17d45bb3a4abb34235a4f0d9b8a20566044fd0facf1a225f52bec28da1489f3e2acc33c4a9c3fbcec858d31d88e5d458d244e844d987c23c5197c657c028b22f9f2ae2d3ff48b79028b226edfb08786fa159f98024f3771a57c0ca883674c1c69fc70066d0cdd6e68f610936ef1a199cf8b6d318fbe699ae07c9579a6c27daecc6ea2e69cf2325d666ace39e71c3a9adb0cc686ab1555d970b56ab121a5a8394536a373fb04e9b664dab624be64e622c9cc5f392799f9dba54ce2684992668a94124793491a79399334f22f8ffdf262c3398f92737e739aa689b524d962c38e25094c327d928b34996466590f499cb8a23c74e53d963145a6d142dcc8c52dc618b538a3ec1863e4fe16d30728023f884ebc3c81ae65f430277f7bc81ccfe74fa0877e314e3373b5870ac4fe042a20e7047ae06975b03939b4ab02510e8401f2abc8cc040d63920c2013e8a15f37a2cccb2419dc7075c3d58a48aea4a6051a3f6d8ba6dab56a2963b40cc177177fc1fcee6eeebada6966a32f062a0a0d8768b36bd7dc8ed0df905efeec67054d63207d42e2b51ef98fe7b54dd3341dbe9da66d9a1623333333f30d2b8ed03d8c5fe15aa7bce7a22b67f06c62ee00cb6a8401da182233dfe3c83c85fab06219a400084c907123c7e04389a676a5d8480f17d1ae0865b6448963a229276e3880cb0f0750a3a459459c55a4e1473a3ba6b172efd3c01adffca665189ab6f5bc4da79cddb2575a2af984c4f39999fb10685777189518206f10c1834813831069e29d56a0e1cf3e08619ceddac3e8850edcae1146dbdc7e894a47f33ea078403b87fe8d7e6d22f8c1134ab73b8c473d37c63057f0c538e3077af9fcb862ba9f34c17660f17415ffc8efb4c7a8bd48a1ee0f766d37d2800d0128c288f1051b820aa22b5ece865c5dfd4dbb3fd8ba8eb4adf08a2a08b4fb7c4b3e1a250106371a5d4185cba04ef7963c4371d9c965b00638cfd54482d88da04e5fa9831228037a348186bf0c12c4aee4ee6f50a0a18cdb32e28cedfd01cc609c4ec627b8871108b7cf952576bbbe6719467c222d1725698a0ed3f445caafb1a6af551b6bfa32244e0c918669c40823b4a9e1f63724d078d9867c43407f6503a1abc208b0e68e9225dcb94bdd443fbc62882e9af8eadef243676840b48f2169fa3d3a20a6cb560724fa79c388c5ec2e1375f4f65fc026accf8038836f7f02fd18126707d6b00ae8f0e518272a6d4b7bbce1108d8788ebcf22d030c66d7e8c28593ace58d96237dec534ba986671683a52565ba021bdddea6e8c9cc9463f38b8613c9a332aa18640a5dd68f00989ef77eceaf08d07a25d4c89702c2231cba8408b0042e2dc2042069126360e224dbc0fe37590345cab0eede253cb0fa36580ed11af0e4c439ecf4818479b0f39098e01d71d220ccdf28834fc235c7e132ebf6d8c42f4c1e5d7f07926713ac6339c79cec207a440e1f2432ee272c8462e3f649e18f19cebdb579a9db693ad4111122fdfc56eacf1ced916bb734687f08dadc357bb94f3b202315d19855ed1498d03dfab4294788f0ab4a9f44be2dc20020591265ebe414450a48937ca4b16631adbf9b2038cd39d7b2843204f7039360c7a244e675b0691b338681e5cbec68ffc836ec1e558d359c1ccdcf9281e50f979456f4a80e00926aca8c496499af859c48d972d93332dca27e4435e74ec765f76bf4e08ddb2dba55d4c5615056df9905150685f76e75941573acfab829a64ed2311067f05b4d16d7b166bf8dff78135e85de66cf108d6480d69f1ae404c37be9ba46ab7a8cd4413ede2bbd436e23e4205e010e58341f8cecf1a504d6ba4990e388e734125f251010b224565a8128941c8420e6800231204ff3c086e41184ab0591f361418e5607d6b718fadcdc889d1b459e2ea76b43da1b21d2199e04eeeb162490b2a0bea8d922a9fa02fcfe9d4733ab5847a4f1d75f032d7a8a07f006e5fa33cb47ece13ddfe69c3d6344dab373a428a321b2a6a9234456989e3388ee378b6bedc62db76cd9ebed513e5917952f33a1ef92ed62f4d9b9a4bcb650d8b641167ec73c6398fe6b926770e75f3e1f4f15853e6128b7f5453a58aa292b19a5f9d7fbaaec69b234f5fd5308c4661f4429e1925d508d6389d4e15870c831031a971555a40b59f2a33a8dd5616682dc41257a593b5e3b939cdd7f2f5f8d6ca328b354658a0b9ccbe8df2cf3bcab3f500a8e8f24f6dcdb3cc5a1e2b9b5c952ec6d954699a3e8fcc48cfed9b22846636b39523b5051adef858aee321da524a686863db4f129a925d078384846edf0fda0d2770b52013b89afdb13dd4bed921da8e6bd272ffac8c6aded7556b793a9df94d7b8ed46c96fe90aa2ccb7ab6e5ab16961656422282967f5676ef1f0b68064d0eaa9ddda49c679d756f75d66a3b620418e69c1d9b820673eb2c95b56bcb51e4cecb6b59a0a1bc52865d4d71c80229651115a66cf29a9025621f4bf41bd9b66d3a643f7d7e036bd0189d96f2a0b2d03f90b141e675fa4e96a78c6842dc199edbdef1dc19b4840225114cd93c90d401a3101c9d0069024511e2207099e0ce9f3ba5bc04bfd5202d596451e5ca7facedd83c70a76c21eeb461912c2e8f190f25281e33d45daa4be5fbc283c9570fa3153d725223200882b397ca3204a485b8a883ff5095658845c9118a62990971b925ae5bc265d9180f1e4ee06ab2b33a9234ab434abb585508f7eb8565c804d6004f2dc47df909cc21c310cbe2be9c6f045f6c0bc706a585b83aa46c512421f56b6597e890d22f95e5a1a45d3b6aec28a25dd74122c20d231451748c3caed53d5e958b9b984d159b256bb374138371c3696f6222a0a71bda2c9d4e346a007121c28837a4568834f1d6008242a489f77427206daf565d27cfc9e4bdcb211ae509b57bb6d59d6f67831ca0a7aad21530879dabb5ba1695ad72ba870d2feeeab202b1e1b21ea9ea3597c66e90b4599234f2533d7a3e0c0182c895720b02c465a9aed520dc655d8235549faa661d641d047330cb455b6d26559d5703595792e27694878d8ee48033c9ba2416442dc2410cf6f14f8c08f52088509f16c83c6b07cbdec430b0625365f3ae40e559d739d2aa8e91a74459ffa703e5521a63599d698a5407a95d3a3a4e74a0c8836f5047e7890e142bd0d0e6c6e766d6af28595507094acb234d7d823ade356b53e526d638f4bd2a7854a03745d82c499c1b44248934f1ce9e7e4d25224dbc9b94396d5756655931d2cc997a4b4d5dc748e2d87858c42322925cd086118a27fd9a739b8f399df2bc14aaf218a2828636556e6e10b01467c4b8ad69de39a80255fea99cea73887655f607edaeded516f878518fabe7748b959577a92d281944b9224a9cd6a3314a65fdd23a2aab9487c6348dca348f52289cfc58a296e7c4ddb47b754bdaa46c499b6643d50d7fa5ece8ea4ad65396c5fa666334868a42a74d959bd89cb759e2baf08687456343349747ceb65cced7a5a56e47a215b30d55372cda35e52c95a50634b459d2340d49880ab771dc4d8fc48952241961ee4150113d9cd4832025dca64521434da1c98d5eb8910a29347173ccdbda94b64d09c84e1b763d885a7e68cbc7f9c71669711106d45ac2418f30fe3903d96d49d270314943d4f213610cf4700baa9c4cd2703db23967111255389f7671334d9bf92cb992abdc505194a1ab491bdef44839990535c258498db0140ae8179384c58c6dec8a2857dc6e36a2b67cf0cfd988f38fe5000b9d8d38037594dec8a6cd9266ed8d4cd3b41f292818228ee5d78c410a42f0c46d4bc4ed5b0f441cce8ae0f653336ad38588c33e0fbacf3b7bce6e56874ce2b08fb58992864e1b85109653724bb1a6852a0f4792069c1503abfb037cfd274d768235ac2665134fbac0e4ca1b9f7461e87efd041a812045c9bda1364ba66f035ffe692606e5bd96a7716cf4481ae9039fdb363613ae34cd86f3abb9ba1858dd9747d006f8fa9cb6d123717c24354d7f0849a9938cebd24bb0460cffd48645aac588c34097ef222e57b9376843469632a73f364590010de31fca479c91388dfdda4986e5d2b25025f20186d92c4501f459e83e945894b0cc5cf8a0e283e56ba5be9a4296b23e1247951465322345d859bfa21345b3dbb74a5400eb5b26b6c836b14da4563b64fd0a39a5db3b7cfab5c9e0f67714b143a85f6cc4ed141234b4b1872c331d23ba6ae1d411348c4350ba55e294240e03751da52b9ba558d3b02fd2d5bcc643b4fa1087b14fd7cd55d57192328232d06d4ce2d058a4e9db87dd57673b5756c789ce9186a472924770074e72064a52f92e619f7392ca48fe499f1a610ceab0deb10fea364b7c3a4b0d4fff78cc50ef3a1e1dfda7b561f74570074662833e2bc73aff5486b10feb4195f360ec5319c6482a833658b37b8e7c57e95bd5c6622a8d795636445e4a2d85893da12c25a31f30d1af18dca63c28039d634418e81ee09f479007067a110eb0906d714d609c91a4b94daeea88dd6656b33cede238ae250a275398858c481ab0c48aa4b87d0e06b763dadce69c97d56649b25867b0068d79b759d2368f65290f95350efd701544e54fefea10eea65243b49bba0cc4dd08a6ec12feb154d2acdeb56bf509d6385953bb56076bb8ba2bb0ce1cb5c93312d5e688cac3b18375e62b954a0b6475e76ac6724b5c17e20c2f308dae8b753c9dac5f7349c768d3318a33ba2fb769675027b25836086771511faaca2bc11a3e94dae543a95da1cd524718da67a5d1543b5927c71aeda8eae3fbe66567a3c77ba91e9aeeead3c7920f2af2611c82920f25d9b252b13c1b3d9c0f7a361f17d046dfc99b0d87703e9682b8338bdb9897c50d7784b8db4eec6e36d43e440a61aeaf8fa57e4d1fdab9aae3e4a85d4fda25ad8e91ec362a75439b25afda7421d6f4bb6ae30586d197dc362fcaae804658d2edc7aeac73724c5e530244e73553578dc46c70ecd298c4b13c94f08cddce1ae966f74343db93648be06caadcc46c7850fe59c23ffc731f49471da52b204b44c7a787d59d535620ab3b5d2851e1183bc2f280b6e76d2cb6989a9cf38619109a206b23fdeaa32954b93742b77b9ae073c31b266e5f93d3c68a6e488d704bd345e2f0cf9bf250d2ae1aaccdf962fd3c34dd39b5a3fe69b55a31e3316b577ba7e9b33a9bf2a12d1b1d6b8556158b333a999f5e6a15472d8f91060f470ca3dff24f9ac06f9a4e2fff4e36555caacc67e5fb6d26a6c1327bd8f7e524a36299cdaeafaaeb88ecc086609f378c7f9ed3361667b05c6c4fbf58de9f36eca6c192fac734748cc29ea08dc6e2ae1ed27a23ab373c37319b2a46db3d69532ba0fcf3789955c321dc9d472d29c241e79f6b8f600f0e3ad087601f4b14e400977b10b09ccee96962a1aaa333eb17d03b5a3174fb5de3f098057dda10c8ea4aab33135201b51938c005aa4418c640f39f7509073e20eb920df08f25c230224314d900fffc00b01d18ff2cd900ff7cda251c28c2402f028ba00efc6389348c810e5439e8291b4bddd0d61aa6b6d4d08925a3942349d3b24a2bc7bc76cdb64c8ff77bbc618c82e412434712f87086191c1b33d5a73d6c79cd87281a31c2083b8e383b6491a63f84bb27cb63c8f25092021a790ced2841a4a11363187d9d0e783a3d1287836c1136e243304c47267158c8da90ae6ccc248e8dc598868e914e073ccb32bb7d1d49368e240e8f99cbf5af567465431aa3485ab16cb8a23e38bad96eb3e4daba191dba45502965cfacb81d8d49b9599699a469a6e1438961f46d2c6653a55d373cb75966365d88306e7c6e7abe106bfa95abb2247196a4eda411dd24edd1662c5eaa7135b2cc244e844596a2db2c43b73f042cdce684cccbc921dadd2c07e638404b7ee74a6ea95f555866126787cc8712d3d091310c3a05cbecf200a55d47edea6de3e189e5018925cfaa9a8cf559a911998e4cbebf432671688fa4e9d3998fcf143db7fb86110ad9e5aa0e998e1efea26a656392a623dd6e6372655536a4d27e947feed9707557ab1853e796b8251da3ae8b71b3dabf5975f4e8d8019d0f63143a6acc207c692cd6481dd030567124694c08dfd0e6a7f274b1161b762e36a4297b578c50c665b1ce46540eb0906dad3cc2d8e70cd660e990f5cb48bf7afa155b3ce10109cac71a0e184dbbd2fec05703731c8059dcb973377d33f4e1861294d387aba9706ce7b673dd0fd661ce71298ed3542a6ddb581dcc290ccc631e298af580dfc5e5e5af076f7f70d7ee5dab9d7c7f71d6eeb272db238843dbb67f524ec9e2cee2de594e76363a1be53dfa08e6d0f2ee31a7a58d39cca5fcc966e9467663e486c7bb76ae7aefaab6b16665fde3d56a75956a65431f545cd556579dab2bab0ab9b76e70a869f63197e08e964bfba3459eab43a66687ccfbf2cdd25b10e6f2f482bab461054194cb73da454a97ed9acb76d9995c5ce486729977b13fcaa5de86d3861faacecfd42114f5e97294cb5dbe22e35d7e76f252013bb795fa0feeaaa7b8abce5d355557d9d8aed5bbcaf2d8761eacb35d0ad869b12db533edf03c1b2d6dd7a432673da725884386f51cb992890f60b1ae9dfa7025d03dd99d81f8a7e648d9faac21ddde5a0e98b3ce9275336995fbc7de7f7497efb6edc776d6656abcaccbea43f71fdce53bab0a02952e401c36341b37173235de8d6b6dffa17d7eb3aa20d096d6df34ce86415cd6e9594ec39dcb9291a1d705e6a8181735d4e1d2b76ae8c3a53076474fbbfa3b643b8cb48ba5e5dc77f4f4ebc5867c5ffef3f96ebeecc8017d7918a790ddfe0e1e2215eb5c6dd9a63572adc66bb3c4ba91f52ba42c6ba32febc6c84d8fcdd24dec86e7c6e746e846c9cdd04dd10d13ac5718ab38a24350ba7d06c16d716d966caa6c0f5966bc751057be59ffe4047548219b2659db6639bab4b3cc246beb3a9619cb36cbac5f9a5dc23f6f692d4fbb240eff586ea9e3919f3c1cf1f064561d27ed62cd6bac879aa6e91cf54beb346d49d2e81ce938d131d231d271a27374d231d239b23256b53c4c50cad3af905b32d2af30426114a3b27ea118e87d1da37ea990bca0afaceaa5f2e5a05ae765a0ca49d0c6bcf23b643bbea347fbf9e9a79bfac5fd74e29f6ab3d438f4b97a132fad73d6793516b0c1cdda54b101d52c8b65a1b2f9d99a96f2d098a4018d21f198c9d58ad28fc6a4d46232529ba558d34a364b3320263755ee887b7234b51fcb21f9542e0a11e86f68b38474234b9a72359ba56bb3d4318a6c8c8768d258bf5a5c92b456662d0f97745bc7885b0ab7edddb6b5f7504a791bb3b27ec92ec6a8b432cb6363f236d62ff9d9f3b3312b7b4c47c749e5aab48b5b8a01a976b55e5e562ba52e3421a2c80349fd97d4ea159df04094cb0234ab45f8c839c90e0ea84556e72356478e7c45b43ae2884d627760abf3ac765dad455828091e200318c042d73162713987e42f36ec924c71c472492a23a93cab51d2fc47fee4002d0a44d46026c40d6a2ba846180bc916546de1689d3b67c3d612d961fcf325fc63838079c1ce6d7de7d29a819d6bdfed5c4b573a64fd3ad916f7ee729d6d7196ab226d176b9711e84d2cc5049d11b439c109661194e726b5259b9c6fe0a3893c0112306ef21d988f9f1e7c83f34f01b2a0820cc637f80e8c6f00732768707439feb68aa35b39ae94120cc29a8e9176c56b6f8aaeaa86ae566db1beb095b83fba735f11894977ce7844ef92618474e7a38c12614188dc2d2c12452a712398a393b85d086475b9eb1869974e0f1674be7b18a190fde8de4cee8fee3ab24e89db599d1e2657abcde47253a061844246d4837f8830514b07063a0f11c640d6c7b6a482291861c4512c06e38e491ad9b173d0c39e41c1483356baad34058d43e4f5f1d33d4aad2869642c9d499a3ec704ca40b73156ed22af68ce396367933a630730be41e51fa2221cc13e062db704aa719bc6711ab769600f5089680837c0414f4c0818ff586b7996f04f0dcad188139d102579a20538e801135188383b457041092d08c24c0a1896b8e10635c23e29a594725a1dfc98afd4568e95cf4f1b2fc7d498b76aab7beb2d1c316f3de6ad7f2c56d0d086757a4b2fe5e79c73d2cb3a15106930a8fdfcd01e235823823b78de4fdd60336ac877c63f0679686d070ec63fb3dbf219a2cc0065caf02ac32fc3656478cba30c7fa152d51956760624550580eba18d6d30ca12aab6217069f5e66ddb7078fddbb48f5b4257ab8ac3eb129cf16f1e617ac57c2b00839f660295fa152fdf950597402aed6ad463feda5e801b23e20c9637f8905e9a47ee2ecd0daf36fc7d71c36fc3d57d71c3656c48ef8b1bfee2850d9a47d006cb959191f959e856880dee8383e2f569c9d8258ce4368e4e2012958f7c5517c052172044aca1815e1a1e76482a039d91a83a5615bc48ac8e241d537428a98086364b34a624a7a04856c8ea43ba3bf33e65a9b7c1061d1bc077a6237a8f20b1011f615b482c114e626d966c6b87863150cb06df95bd810c8a60dcc41043b01d18fbd0304e21ab395de68771f1b06f001e6300fe315025e241c985f1d0c63a4a81aa069ba93f747765bb584f2969f73431506d988e0cbcb5abb593f19da94286d01b63cd00de091161c47808ded026c6c3ee726cc9d2c56e18c45dc23fab33d0ca0a69ad1e61446278602d9633d06d6bf56a7524cddc85651a3b640ca357ccdcf70761c0e25a934b4a47d234ad2a4bae1fef8b33ad6a7401a15002bc036bb878b7aa7cafb8027848633732997ac303ee90bd78f1b0616cb462e62e4e806a5b3304b037373217f52626039a3a5f1c1eb9258beaab150b14da220867018221ce58c97878dae2917178687150a95fa8f7c1272012781467a8fe87ddb5b179b8ba37378f8da3e3e6f51869f8486218fdd75b8e70ce2d451fa04a24c60d9020c11848a8a5b0c414d8d7265e5d88234d288205e19500c640313c3006b244a97f1c9b258bea395d001ea3cbc391c4d986601a79ad4ad3c86b57b48f24a6a1511161c8875b0baebc8c23ee4a05571ea60aa60937125cf96ac3ee1a952b2f63c315169a94fe4caaaa21c51af9943caa6a4bed925fd5ed03b146fefb4013833a7c350bf2b0c1806c43773b3d833bac09b4c1bd743b97ab36a8ad698518200c3c4bc088b0cf838891050c6044d50667d5d6f7785d0071bbb9cd1088eb6ddd2388a36adab669da4b575f6b650af37da7ab5cae6af90f79ed15a599b4cb0ac4e56ccbbbd6d939f34f639debce6d9b6771747ff9047358bd5b1d8625cf5ab1ac2a0a7a697facded91fa84b4eb27c43d54b3bdbc56253973694d131557751a934950d8b6c26952aa59a27953d3da5aa2795067ea93a6f523dd214d32153c7b41dd480b8200349693b56ca3b5759e465e320598fe00e9695a62bc1bf68f607f80d7c799cdaec2eefd51867cc58c3fae9f4f0e5b146b21ecafc45abdfb64f16ebe03d2fce589d6be16c38c4745b6ce8c3e5beba4b877a8c335cdef2d82ff9558ded6ab12191bf7c75971a63cdca86de5f64ce0ac349a60e91775eda1f33477de39873b2fc636d873c070457837016dbc1ee04b8276d8c35e1901bbebcb343644d38efcb6501c15a9f82a957d5784d955e02d410c87df94c0d81b82ff534aacd924d959b18df7aee33ce90e7fef2efa5da547102add7a997d2720db7a1abbdbc7cc619dc5f5e369e5b6bbc34e6fd3610e56abcf1b0c1a2a491f453b340b6a16b4fffbdbb1f8db5be2374ce68cc67a00f1b74109a80b10dce600f22b18a1238c1083663e70ea0869d076e5f460d8f53c3ee55438d0a1c6aa845b9a92108e5f66d6a0852b9fd1bb825300cb72f801835b4e186dc9210aea961ca861a6a68030d358c5274e0e688db77d5196aa845b9a18d6954dcd0c6b60fdcd0c684303fc6b6f876936ea29b60e186373d51bc40938f30b6416d492b44b33d3e2a603ceb61805892241807d913893d0674f351018b306e52234c3e71ae411d8269508760180f47eda2a20b71e5c604db2d67435727351b06715397456eeae7a7c58d3d2062820484a5d89c53090832a57324759ce818ddf4c4802a40872cda968dbe9a4c3b8b56bbb3ae5dde6ea5ea56ab6ea5ea8e749ce83cb14bf8c79337823b8a989b65196251d2012aef62797892d2a142449a3e08964c20fbe9b99ad2116a4cf9a425df923265a90c4cc552b01a4bc16c8fa471a15daafb97aa6c7deec64324e30d399624eab1bed555eaabaaaa61ea0dd6589d2312ba2e6eec0151ec6e56f290ba96aa4c672773cc649145169ff587ce217fb4b86f8ff707be9cc5b1d950b3dde76f8eec860491b919d8b91690e73be796055d9d35e7e4780cf150c2639604aafa80ecf8c0806a3fe4e3e52930a0de6d966e8cf04d6ae1e8e657aa33d8752e5d8caba2aadcd217647757dd6599e5906f27f1b6511bf5600910702cf4e948ea2c91f6d141c630fe69f53803599e210e00e31f2b6318510f9ff0a607e8e746a673a4e3a4074c946e24c28d3d60f2733f366dda4ce6733919a54268b3e4d939270f4f7840da5e409fb03829255787681d9346495394e46c49fac81e298b473d2529cafc7515f54c4aa93425c968024d7296a2d20f50d0ecca735065a0ca711c27e79cddb71aafb7d4c9eefcaa06e1ee26e34e1bdeb8f2713ea72798a3481659647174a50522e36a524a1ddc65dc69c3b93d4702917135f609aa9fcf19e820f701dadae13eee837dce41b688cd528c560cd91e84a1883b2f9940e365a03390dd219334dc072813689434619ca2c7d53be6a54d15511d52744ca1991cf7db734e2520f440892b925886a4b4e10ba8f69065c6326b57c7c3326398cd12b7a4c9b8b386dd52d751ba5a9deb68b7a25fb96eb324a38b7192d6dd256818a13042d281a213258a249d2b749274a45831d39902c536432071cad53edfd7e9d121eb57d4314547d6af903b106f07b11c51ca0d6d965871c60f6931202f8740ba51ca8c28e5e84928a95c1e90fa48ca7f9b1154fb7cf7635a1eb8a5c855d9be4097a49433295cd95d9ffa53ac7f3af5c893cf69d63f0df5a9e8f6acdef4dcdcc4248dcd528cd21b7bc004041de50709e96adc7c22e3362024710d6a84310dec1334b4311e90341e33490314f4f323e413e433131af2f109a23cde1431b81ffb743f404488ecc89894c918b7c42d75b1fb28c2403eb608518fd6143affd8a09ed24a3e3da5a704cd299ba53539e8fc22adc93f3f2f42346d8f1729e263ad4cd23468634a68bc96894a8451a0032833a84468980263a17ff34646935c4ab915b54b3641228d8ae69cb36dce09d43263b61204ea048d4e60220a15b8f033ab1fd88131923350fdc00eb8c30ecc038ce47c645639e8e73a463cfb0eac77e8c149ce40960891b43df888d60e3fdcf9e744829ee47c446b9e93f80eac07233927f93c27b14488a6ed7104c9ce9c531e49a423474757d334242c4fdb983dc21eb90f9e9d8fb045f8e7882d42c4d91e458092209149b32aa7489abe4ce231933845f8e745887af08f6dedd092ad1e3c3b03bd0807d996b43d9004854b62920a8c67f721f3c40cd68102f018c182684182f1cc4e1f49235b9060532697a098b2db05e03182ed90c51aa11a846b0830fee91f106189113006ba4661346b793c2ec1103e8811f9a6fc8f69adccc6b6f783687185182051838861095418c1f887a89b441d373f2f47b4ddab4a3f548c705b11e80feddf0f30c584c676c9faa3935f9bb48dc11a29269493d766c9a60ae7d5d6b496c7c6a2503b7b866e943b647106f398b5e4d9e751e2481f4d4a99e683962436831a615f775fb77f1393380ce493e4483e7f0489ef08f1cc1221d26c0f9ef1cf7996c48920f19da176cd2224aaa6699aa6513ec2f274ec7cc4b6b473128f12a7a5d9d60ef7c1479c93b0458a1cf122b6a53dc2f8c8236cdba4d0343aa2cea323354a9abeb68469349342763e7e807dec8c72fb1c645bda3fc040b6b5d9196526499a96665b3e5ab0600405c63ff7810523213ce81c6489f830821d2801cb696662464962a54562676bfea635ad0e3630cd09d45a4d8a7482c6a04e2519d4b94141c3a91483f5212ab10c6a84710c6a84c1a0484ab9b1264b5ef99ba21b26ed1a8a352d37202ab70fd0f91dac4fdbd2623c5a6cceb9d9398deeb6ddca94cec5ecf4dca814630d90a8743110956eb8fd8777eeb3fe6dfa22a8e3fddb11d4a64a9c316f86be8ef26c475828ba3c665c121ad2d8015ad286ad1c7c5bfe9d53ecd329cfea2cb536ac7f138b336472a925d784a22b9ed0e00b3300821498e9763c1127c21a867eba5c82355297a00edf95d609e0b67648e2acc47d309333d17da21cb15a949fa0ca423e41498eb4a39fa328b7df3e67a1f7e099f61e2ce4336566b52549d33f49965ef988cf73e4d7260de4c1c76a3e49540e3a33a90c24743e52f9e7ac44659f3351e5238fe0b43af0b090cc6a32d593beea89cfed4bb035df837f36b035ed0e3c9bd9f76024561b92342a28e8598933d1434da86a4d244d931d228c87832c079d812c27b90a0aca499c993cd49aa0ae030ffb9c8f20a945822a11a2244149ce4704cd848490ccde8385ce48ce470859229c24681624932df1826f809790052d717e414bbbac61fc33840160fc7359c318e85ad5818708f321610c7416aa457c2a11a2239608cf100780b1cf650ce32367246c0b4644c630f6796bd622443df808db9ae7231e612cf422ad695b3b20710e7a0f3e02094b84a807039d8fb044f8c819e844d8e7fcf31c0954371f49d3aa1fd020310c37033b77498b8708e3a0138946b00db0d037000b371f1f0e3a0b1da911c62f803112bb152d515bd36e433cb39ca44698b604ba0da954098834f30388302628f3626974351220e644d77c4bad4074cda36a0f44b563525742d5d534f3ac44e524aa8c7a981a7646c2ae887055391b6bd7762ea5049d361693884a97c63a1ba39bd3374549d0983c8b5d508930094470051aac60c6829f25aed5be403f1eaabce4ec82ca2d480d71ca05944f637146ad4fa8040c54b7c11e854cd18c000100f313003030140c8784e22199542a6989413f14800c93ac5e7c4c17a7490c53c8186308000000000000000008906c0040c8b2a3ce812d9d96f4b2e3ac2fc30508e6006600f1870a7f4524ce961329c694aec06441751e77781d39cb57af968e7eaaed93be212e577ef8ce34e6562d22e4724029eb82ea42b85e3fffa5a4e3058d9702480aef3980f29571ffe691b36c19d09ee52259a1ce52d7851cda86c3c1ba348599c7c9c50c28a7fa99ebd83f934bbd345e0fce5907754c19fcbc6635a6b40a3de49e21011dc6607a30ef5b30da3c4a24d0719c8714828ca88a317593b738f8080a8876aa7a34914719a4e24e85c55b83bac8fbdb6616fb5657a661be2e8a418305e8b292c0a25b2da0b268c45514d824bc382a03893bb4c1086c87ca21c2227dcd929f7e1e848730fa8bfc11fa083a666521fd6543ce22a7d1e87f44519a37275541738ef0b782ca6acac3ff55ae4fe39f87b164638448a6126e782e6a1ddeeb338c0486cc611973b103a6c4a48ca9d850a5f1fac4fd0acfe22f4d05f1b8fce1114e17fc8a7e57431e04932b11c7852c920fc7f7a9d861b1156f92bb163097761831add1450850710ea90cfc24b214f1bbef98767b8aef0a034d3b341212752973f6e700dd954aaed94b75cff26c597b4839d6015f99533158fce8c377002654e12a1ae31ef14b222c378937b9399e7b315e5a0560abe03e2ba3ca10f1f54462058aa34746778c980e6a4bd44d1d57f0e8c7854a3d205876b2014756fb07d62f95673e0269299862b8d25b8e25d767eb3c2877a2963b03ac6d459f81428b783b2b33f2054e4f3e8e75d29cda6ead9f43cce411e4114df92798c116820779a97010c9cc4e5f102a809f60ff1e5ce4818ed9698aa6226e25caac16449007fa2b295024bf2abca8e0ffdd78e3e7ee5d3a0796d4b31d4de12625a97eecaf3423d49df12c97a4443dc396f4242aa45405ec1dc76a30b086d2f6c2d1d491ed27a5006b2b885915255535a955f7be4aa49118f63073d1a8b550868acf3996537d07b17a2130d483c1c0f28ca230cc47c065576b6cab06bccc08113e00ff42b1da0f875728fff342e2e2704f74613f0b97f510a70d25499a77f6f850b5995ec569357a7e83f4ac8a7e6a62093413a06eb8999fe6feeb368df91fcc76b00e76c9572c1e4ef4d3fa89b194a18fd637dde2651735345eb388a987ae8b2cb65c045fe473754fba915628b1656a8d38a484588c9691e9483b07ca496a9e0d5a6ea532c58a2f5f33cae70ce42dd3c0237ba1ba699b13dddd9079d98206d0a6b75380e048f80ac498fc60e4a8abfe2a8c02efb914b68c9b4eaf60350f8a757a8b9e3c01be32888f0424792a72907db6ce0a240b062d41aa3fac66bd27a7f5a7cf46a67023d1df70f07936d1fa7fdaf2f93ec39622d4f5396639570230536d9fc525c499101e80ba33a2dc591ff6fddfc32f76fc72a27041d28719d1d14501ed335b7f17dafc4dad9c280b28c5e14e9a25f6b7aa3600c0a3dc4a0dd68f80cd0540b7b9e5d2468bf06c5ed12ccdb4c95433d9ae1d8f63863309d338a4e5115f623ae253dffd48df5987e2257bb2e9460982f508cd249837fd70fd3d5344b691de42ad3b3a2cb08746b4c031cf3015cfe673542b8feca4eb0ac529384bd967559dbac1ae9f3881f97655c96997993a9aaed4109bd086beb2b0ece04ff98be5b037fe2871247ca3bcdb23b875a0b74c2461a2ec955bc94186ccafb1841e5f159902a5789602177bb313e6d49b1f924ffebf0b8dbd279ff21790c375b6bd464f313ed8600a84840dfc8d9be0e414e5186f43e236739d6090cdd71b06138d55ac78073e41fa60531cba2c6f8df52fdbb8a2d38c348ece352f543f048ed0a783ca2053e578f8e71b00cba43744971d410eab33345e57d10ea4f3e906fe27075dce27c77849baee5b0ef5b6d861297c0262476250db1a736ac9758e96acc5fbd739afc2bc879d6a4c53928323a8c818856e4938cd2454ab789c1206626d0de1f346eed57ca8423cfc325cd54679c0f8856efbc9bb0fdc00cef0d7fc933c4a9780ada1e3f004f4d45b7bf520784218d91a15c404d6cf772b579af79eb91b8ecfb6f6afd4bed6c9987281dd8d37a11905109a23274ee85b2a9cdec238bc5885a74512f2245027c5941bd9039110a556049bc9a9534cd3d4475f9c6905cb8e6e97ce8c2d2d323633760e50c3dcfeb0df30e9caeee40ac8d325d9ed7f525cdee220522d0840aa8ba673cbf0f9f0272d873f69fe6b6d9647b2461961740960bb2b61bb50ab02f3d8871294d6cbd84bfaa7a3e616b23093faa16d1ee689b11035974812172afbc6765c7f9496825203295092c6de5cf53f2e9d082d138f0f7f3995381e0bcf89bd5aa986b5d9161b4032dbcf0f142c51a84283a88d8bec47bd4c734ba55b09a13dc7b7a330d5f0d560a1a63420b3687dac6f26508dce300713ac000b1458ac742b7f98771b8a86003ddf3936adca4375218b51a9b9f70146688e73619b679b9c34f25febc0384d109c4ae9f3ed175e28703151d0d526a5e9a7002839b9ba48c37635b6294dfa62befa88c36cb173c11a6b1d25e7c0d60b1d19ffafab397520660eda42af2f6230676db71dedf85e427b7dc8025c5c68dc26dd1e96802b7e8ccc615fd7c489ce1ef6e08d7cee810d89f9738367072e640aa8d7944f51dbf00979e1ac9533aad0747bb88d6a3eb47d0bb4a28dc8725aae5fc77a70485e070196a30138a543094381dd46fdfb337757afd5722adb6299c54a67ae22b80c934c93d851ec5143e23fa3771cc124b43749a448fb31d59040e4b001d6b6de21f50e2d5690065914806ef13c7efd901362e40aa672ea08250082751351c427aeac05e6675746809ce344995747a0692f7e22e991bdbfe693ea921ba5ff9f89a719e8a783169c5010f900eadc473a291ff2289e9fe604bf3ae8ef3541aa2e09e5231b80d6abc96b2ff335ad6160d335832f192fd1891e80cce471ad62ae5344da540dadd6f43a4d53881ada5f720afab888743402f48a9f22d2d658a38c42e7aa0f86aabf4f3d692222d1dacef45ae182d2dc87ca60553fa4d9696e4856b2ddcbd1ea3404c3255f83f57eb90a7f8e50f6cb47bf864394c4fe8ba96f00f72bf21eb424ba0125115e4a6604f99da663b458523705c0e4f058476524a095e706ae699c82e1b82fdf4f7196a801d720eeb9654082ca1f52f1908b2e188a161adaa73402df5aff1cf820234e22c251925bafc5c6f86193adf10f90c3559bf4e2f9beff7a7fa615c262fda0b8abf2c4a2f221e583dd2853b73185efba3f3f453c16992ed66b6041bf9cc8acf8511a523461753a3ce70f4a0333e27e87691752484ae98aef0e4fbd0fed219936bf03846da7f82ba581ce0599e5a097f443cb009563410a957b1975e3e23bace715d0d39d09f90b41cad6b2e9fbaef3fcd80451ea24be909739897cf288b860d3e448f8eb26fcccdf8d28248d72bcdcf72bed7adb28058691701e4d296e2c9b6e070facf9c19294ccd036dc5675dbc1f1c2d6ae6917f328e2295e6647b7c38cb50e8a617ae129bd544ebcecae84ea589b9b53d9a7dd4f3b281d14ef271dd2f13fc9d38c456eae8e5022878331c3ce9a795dcb3c8ada7991839e567261b20a0f6eb294eb35ae1b37beda0970fc4bbfa5b4d751a7874257a09aa85531915fb08c790d961a7313e7999c59ca78bf71a0473de54ef1ef25f2bdc23b7fdbe8df827914dadbe1eeeb2ba9c3629237eb1392475bc45f3204dc5355e5b87c21d76f51849d0aa285dbc34410ef0b651ee1819c98398da5b358fdde5f729b084f7b722da9c8525e1450edd3f733449234550cfab2a40886198fe7504705ffea9c6ad8e577fbbdd754a337a5822265fa918ecd8d8316b9af7dccf25989f76afd27207580616fd1a28fd0112893e8995533b42cd52c9c53f38c45e0f92eb4ca43b7bf242fd1980c7a6daa20c8fd9439c0f2432ab3992ca170c1cfbebbfbf5cde38ead814c9b25a1b9a7ebebf821a46fd7343f776af566bed2183cb5c49eb22317bc491a6e782c3f108a72c54ac94e56bbb04a2a812a50df1343c706e29ce2b123d5f23c338422d71e800609de7d1c6abc209293e6357720f1826995c85b213defdf6254e75fbd25b20c4067e5d22f3dd83ab594247197371461b03bdac19cb1a46643bc1f815b925a10b096214743173ddbd05b1dafade7b8fc04108d4d1b027c667e88ff6734599c7b38070c4cb74b156d8a855e9a136596663db5deaa2df774966eececf36c1d744d61954abe371dcf323e40b7bed31088d7f80db738f9df5d2288ee0006fcf8f266a150044663ee07c6db2c72abdf93268824ec73522435348a52893cfb7ef562cab219a45832e08e136ce54e60779e5a9f5d0f9479e5bbb576e60a4bf5cc66a7684a2ff486157be0b92ac58658ace1cc05e1b48962ee05c68ac4b65d24b269d1d8330e3a137a710831d42961f84c30ae376659876599da552ec8e33e59754c04ff32e57436b9e848ad9ae399125b5392fb1cb881c21be339622dd730041d5b5176599aabe82abe66d25f49185fc253b95636af204e683f7b916e317854af07ba792d00f59e2f303138529e6eb5fadc2eb0fac3b90510909a91b65077f579e14fc05276f06586ae87f49466b096d794be6ad48eae45333164c91162e12c3d25e87bcde0fa9264e0ae8dc0dfcd43dad1307cc602f66abd40e324291761f51a7486e4e4bd75d79f9d6e9351e0f4176b752c0b732de39ce588dd31a621ee8afa3333ab91f0f44ba1d9fe1469c8c0b5944955a0ba2849755ab6b291f0341e9724f6088d3e6ac0d42d16fa3ae19cc318b09aea73bd555dde7aa34e619e1619539442ae3369207088f5a019d6a2e821c4aec80c753697eb0ffba096d657384a6bfdb8d29290a25199cbe5297e08fb4a5e7cfc42783a08ef8bee38786bcec0d4ad11b026053fe06e7d214c7410f1bc7e6c389d9387fc37e2428ace2235114805225615ee6f17763d470c5a183bd68c9ba5e1b6dabc7b47d8293f4295c50ad8ada026b969ce2666ff7101ed0815be9b0f72ac76d85bd69fbe1bb74459939fb0ee2fa80ca3244dc4f3cfa4be2b0533e7aff5674513212a1428420a456c01da017df95bade20c10da1e248dba3fe1c6e783cb2b87a1065a7e047048d7022fda1545f0e4543c35373d217a38f1c325eeea543a50c3c2c5e5081748ff896e6dbb06061277ea63ad4637015d8da4556ffdca82f693433e059cca70b8d8014348b3b63a3422ea3cf439e84ad34a746eb255d5d3364b95554840a04c4060437310da2b2480daa0cceef2cdbbfc8f93330965f22382ebcf2d0fe38a02059ec51237e420d773e563131d22d06989715451f770cd990736edf51a282df7553accf54c3cd8118968ffc00afcb1c39d580cc9c3d8ad723377132cca661e26d830459d48921612ec41b297898f917ea24946fcf012dad5c733e2dd60d6e9e77ed257277d0b460f64820d1e223ff74a4f568a3529b2030e9617137dcc221ddd023c7eaa92a380eadd7dd15863d712999459324f1c9aee1ba1d0966cdc36ba133f1fd7378e9385a303c1ffe47718630dbaf41ebc82ca73ae7f7c5ee7aa2b040d8cca0035da17d9cd35135a25446ae4268221ab5fb6dfe7e436ca8cd593fc1524724f4246ceed07d6ddbaae591de6a2a4ad452d43e5d2456f53d5c6ad370b3fc6d802190c887aca85f69a0a7a4c4b3af5226071c0b44729ee848290ddbc5e798d2aae7c18a07a83299eb1e921c1c738587f9f9043c106c16a87c457c1efd461739829cf723044e06ba58163ef9ab00459b99d338f06cd97ac962399a3faf4b5d082ee60cce750500cf31ca413a36df1d34afcf29302957280c1ac4e47278f8ef6ee218ca0f68c16e3a7a8a1971663c9f8b9a8cfc07fea813512f1e6f83ce7d08d3bdb77b87b73c4e2fd740fa003d9df081e207bd96fc5b86ec2fe7517078528e3e9c1d51d59038469e7a395564016a465ce6cdb80068b2c256bfc0c7976512eae68cb61f38327cbb3f127b29f0a7d81faabaee9818a63ff5860df046eb6557f7788040521ecc0960e4bce20fa09698460baaec877896212bb718e60c310426708c0422ca1d424f3b1ede4f82e4c6a5887b8dcc0d910627ae09866bc0969d8b668dd608ec883c6d566bde210173b63798679d82badb451fff360b37816f608f404fa1fe41bac76b8d5422300122adbcafa67f87f6cb974bd62491fb8e4fc00d670bed73057812ce1f12aedad6bad18c03df697138be95934a16182c37c1f51b8a4495372ca27cacac0ccc710a729258c808642181b7993f22fe445185cf158375a2a19c73c2ddea3ef6d789e4dd7af18650d316c6ff88f0411822c5818696ec18983186249d66fed72e0e492d980f38f13b5e25f0d1b3adef5fe7bc6f434509fde585170499ef0861faced05572f89d8cc7b45989c3578773dde218cf91a39d6710dfde9bbedc1482e760a91a8f0fe3f3c806dfbfc6f81a859045d374bb0ac60077aa97a58cb499b7a7e600da6c08ee7850a8b9b76de761434d8709ab92c05360ca130772b206eb388cbc082ed160a8aba487628dc410116adfe626f179388229a623b3bbaeae9270b10b6b4328f154a08340fcc0275096bbcdf0d081c5f617228d18330f6693a04d68f8616949f85d2914f3f34fb7e81fc2fc192ad2722ad359e23447258bfe0c1158d8e28779c21414f6008e122237db6830b134498134d3d92bf52ded2b7b9becc88157c9db697fba1347a7af91331629871b0d8746acaa6119a135a1a5b9c807b97658851a298fad3a9680fce101e576dc134fc4fcafb2aac2baff3d41a5b22ddc477843721f4c2114e48c89aed60f60746d4d4f727c844448be068e619840627d688b5bf02ecaf37e12e47bf813d967b570220eaf80f9b932093c301b9c2904c17dbf9edb7dcd54c988ed02eb3ee96ee74e4ea36625992fc3358f9931c34f1785e67814ff448439789f78bb81fd161d044cdde09f6a7cc662e7ad1c6e1503d629452834d06184a478eafab26b5f95d1789d3779b974447bf53c53bc879cdac5991cd2c1e402493467c8cec06f7f9c79519daaaa3e5681d12e0626b1fd433f3f7b95bd2e29eb2a7f76ed182e7083e7d567e3810d1faaf10ad57aca562a55eb84912ffcaa909971a127b1e7e1a4769c4c7ae739672fd4f20931658b49dcd40be773db5eb429560648d84e674cc5773d61d2bd7876f4e3bb485d7980af49f3a4c17115397a393e1c941b4d80a147fac8465773f41364151828e499016b9f49d3b0e60d56f6bcbdca324f7d50a698c4c42d3aa7ea3f1c1e945569d6740b09f1a09d1c850f378bd41eceec29efabda28d9ef4ac2baf39a58071ea9c3ac29493b67d6566fe174030ae6509b641d74f8b6b543fbf8805658dbba8a9ce6d361c011f2f78a975b3565af9ac1e61370d776b81bdae2a6258d54e91dc73661261b97c846dc89c60de9fb74bd1aa3e5b61c7f1b35398355df4bdd97a84c60f1c6314e6b0f627598e2cefe03d793abe64466f6af950c8aa1562fa551270b4be9efa4ede9fc1f644e1f0fb8501df40bdee88f850c4ad0e51f13f1a5992ec5a4f1b5c809d089a782113594d506cee3b29f1e2a6021de677d45071700c81d2a76933b841e15e19beae41820e72a6af5e872b48fee6c4cbf26a0ceec4fab8d3241612361602658d34565e1d1a02e9a707e142cceb14e2e01209a3c65327104eeb2b5cd721dd7f0606109a435abbf06e767ca409a9d8b9e782aa5fe0ff33213e4e9ce802b8d385fcedf1bf81d11989c79e8015081d1ee2aa19cc047c2e68ac81a4b2cff3b8d067520318d9fc7866d9eb6e641abf2f23bbab04eee7e192fca01b5e0d121b32d2296a8e93b509cefce74e56905cfd222a3d4bbec2174a3ee021e6449c3a59204b4dbd05c8d6265a955cfa2f703d0905905e2f6007a0e325f6193b88c33053ca7e9987ccb92de60936bcb945cf0cf82e80bc5b5dc9632a754833743eb4d2da165b7270bc404096c6135e32035c6d16a1ff82907f4dbaae3c38c6b719a294bdc08ab1943fa7aed911bcf005f2d3ff4f0e063d53cd83f6b140965b3478ff5ba3babe8123acd65c07b60993820e13b7a3428255c269f69080da35a163252d8fa82f9c776fe00726264e3dd7f183e3cc765cecfb29a696270b5ca98490f16aa09442b98404bda2cd5cec88fae42a739e38b3c08785c1dbc832e19993da42a3300f2ee4a0a08f802be55c7708b6a5abaeb405f32285e964deacc5d319a8999ab01e9f6e61a951993810f1b8d48f00bf9b66973d21f42d5847b03313be30e7662d5be1e597a3983e557af5975477a5e99bdaf2c2cee9ef68e1c21b3fad4a993d76fa03ab75464301bb00002eaa5f5707366c1fbb9c52e20c560d112a8c6cb231f9bbe9271b8270ce2796506367a19e42583b6cb4925cec2ac2d31ce7be33c44a36df530a24b6a2b9fc2834010c517dad905548f38b441850f94a7ed0bdc9e9552c8d9853c30649e208fe7375d7bd4ae27f98eb3b3511cfb0e70cba329b12a4480ed24c1aad955b4a6bd3b4593879142a6908984d327f74f7cb06df2cb49359a9c0e0c4d57d744da330e5a2db7e3056a7e111061d638290252e687495c9be3c5acb6d193b3856d5fd56356c11a9187500e9a8baacf7284e83cb86d6f973a310f3e7319cb2f92ec5b079bd80a4968bdeb93fa252731141168ea2c651be59e87007ce6799e2431e9aa4d7ec958b49ae95b46fdc9c33d894bb965dc93fa2b6829390070c0594bdec7ead5f2b2caddf4e4e6496b780c6d30139fa37884b859571e58cbae26a3cc06a7bed15ee2b3cdffb1e86de821bed6f309c0e8d2b256e794c5a2275341727fd5c57ca573f8d0c89d98ca3c37241519d282b28eb2012a4093877a3f15a6b3e0eb0f6e0a92c4a5be65d5fe5990669c57fb1cd4bd104ad973a31ea005569c5390c399904eb6fc435a0d6b7e6ea8cdd95fc3f54e4e0ba63e0ccae4e1f51ce4c35ee552cb6769ee833dcbd965fa56a5c72e39e8be62f7b830cd38d72d8591db7cd1280c89471926167bd38310186300e15bb8893ea188cbd834c4ae8898cb20bf60fd300a2f76b9356cf4e1b69b70ab039ace7a98a67121f871cac68250c0a86db4f08aab8f2c6663f978148a52af7d1e7d56a09a7b4823e21371192188f47a81a3764d2574674883813c396974b1f6d0df4c7264c2633ed69cd7b2164f6dd8f885c503a1fa6b765750abc49ca8ca320a512eb84f48b5e5fb9d6c9509368c7b8538d8b7fe74202e4abcd38ea7f5aed4f3c6dae8c0ce76c23e04d5282d23803135368499b75b503be359c04d6326023730a913ee1cfc8987af6c86dd25b985a66657e3fe4b13bd3a7d66b982691e47a0a8d03cd80056bf6eab8b393ee1bca6fee58a95da4e1c137ebc6c0972aa2f4c9573d6212058d086830d966dc1f63658b882f121c05e6f277b78ee8f15318d3259e7e5139c023740325222200cc3c8c208b03fb5736f1dacc65abe8f849443872a92f249ae4ba4b8c3830d9d50994004f74a11766c74375531bb74e5de376c109fe4fd479fb90adebe29276cfd24d4a3ac675c91b0ac1a0b920a5ebad5ddd2e1d605bdf0a3e3db7046922ba9aeac86c52b156458dedea5a2a3b2907b3e23459adc85bf034e7fc7b9a658a75c35fe6b2b8bf39fabe7f7f276547067ae12a4bc81862d7409616f212b6bd117a8592951478f7d367a0a8f731dad701951d9caf9b98d59f0894d23c836971691ac743da8b0fe3d2c36e51c0e1cfeb8631fca55a1cdf6184755d0acf9a2d8b1e3246e92bbcf18c2d888fcffd0e09777939b513520cace7276a781c9933b08cf6f3c1cd7b7209c40cf0e75b52a2fd12322829ef27d563bab533c75ec4366def312ea6a0dba0240ea64d01de8b585cb6812e38a0dc205d0cb0696d62055a45c72db4a566359288b6c73fcf74544490461044b416644aa1644d74b037eb6f5ee8cc0ea190375ab0c630377d6afba083950298e45e5a99f080ac07610e4ea305db8020950dfa4633a8cd67bff1eab99f84ff65a90d772b8c8778ae9a25dcb92bcabec91cbd2663af56a14cd885383610a0aef1f51d51a15b081d3bbeb6b14a99ab46e75bbf05f9f9eeba5965fdf35bc3686bde74a53918c2c757f894532aee5ffb99c5b34e803858d2f539ddd0cd237650af83a125f65a2902de226384117e902e6127854a9b720d088bce20f3628cbae86b08ddfae08a73fbe92ba5f712f004aa58ae71d82b0804aa66158660a311166267aa7b89e652e1bc7e725f39a851fc960ed4680d930ddd2af7c86449088ac76de749ecfaf3c18d81c8c6711c5babc2126becf5f41231444a5b957700c516b44c324886bc1f156ec1703e5f8fab35d1e35c341cb7955db2b6957aaf8c0d8ca91952353f74a4eeba59f7ff6091d10bbd9bfc32366341fd5fe68bce2e55067a8ef9a629bcac1a480383740baba92345e3ca939a920f81d765a469340527c9abb24a4fd490bd2a0ef7bf16f46a10a4d1e9b138be128d8818e4200fd440ed797eaed81856fb1c4822fd8b1e1d8d4a99bfe4318060e551330d5ca43b54c347fbdd74222f08795cdc024587da0da1208f91e98c4fbf81dc2480d2730952aaffb11cd2b887fb4b8393b8750729d6f4a4d16708df423189bd4cee530b95f45f2a3eb524f2239b721b6b7f6d05a4c164f906696848f6fc87083d60f30a53e01d9829b8c5361b66fda9c424e124e0d0691b19345b907295ec9f047f3e4a63d8e715f15abae031cdc20c72cfb94b0dd5e3274a70620595403611b6ea79054ed7cc191175f4fb1d068f8beb7f06f82949c12175ee0b0fb2c3701d015f063f8bd49358eec8d141ff473fdad586a8f6692a3fae6893f258382c49d6f51a8d2b573db5ec4a0d1f73e3ebafd60cb376e773855bfcb23937ca5950343c1e19ed47f5fdf7244d7c7252c89be4ff6e6eecad0810d047309588a2a109986d1da6001aa43333829ba13b658216608f8f7db91426674ca1b25e11a5ec834b885d9b36811ade3ce8fe7aec3fe2aca6f8e66f24408f22892cc01463fb793740198394787c75f6f4f742a220c05df78febd2cec8e400e31c2a164086dfe424aeaf92a1fbf1838fd593b914d0fd46b1156a492550ca85bb3df08c934bd84ea0d50f307d974bced043f398d516d838f6f18e73bc274eb20aa0347a37d1da2716e1c28f46fb115ca0af57d964dc9027087fa52a43ad0b36cd793cc668d7997c19a9d23406f4d25d43d3f29679579e768fe3504d1b1e0d96523c83748891613023ef335411a944206b5fad478a892d51e0106f8fa4994155a8b77c03c7ae1b3d7c486b8367f54b2147c0dbfb5c9e0ab894eb36d0ac850c01dddc2d86b6d7ef0fdd8327dee1f380fbfe98e9fd5e2f688d81468177702c09c1210ba0e378d1ff094b1e20b547204a623849cf64686f91e8792731c0c80abd19cb7027be79bca06201560ab5df22e86b1743d5201e67e3044b140d9eb79fe815c94aa8ce5b3ccd2a564cd3cb429bf0d29b93aa975e7b4e568b92b0ea3e38f50221dd753f1b987b78b05bca2c851d7469d5f6698aa01780126536e38529fb28b44385f2855a340cab6fe9730aae4ed54a914337a5c9df2bdbbb6609e431ea59d5d2e946207fe38882c38c3e9d7d6313ab8bb2d351cc4d97121e667b6d40fe182e1d533d09b90a96944adfe0388847ac3dc2e688ac0221915a6002afd56912989236bd8019a384761edcccaf562832811003db3652c19d65490425c0e46279b8d5ac256a9be5a0d85f8dc3e5949f9062b8ef4fc649f7f6abdc6dd95abed7e4555ea39897d868c3e0a2fe2bcadec808e0a19182fe26c7fe43203a2c128e0b3bcf775d2aba0a02c19ad57bfed936840a0ae96cd284eaefdaa2e25a3cd0417b691ded86e4ede4b2308a4a6d0757bc8f24a69e002a1c36a471534368b4a7ef4a9e2356e0153a88d8ff401f22d758f18aa8b36e231fbf83c2ce6ba88d3b3018539911155ee1677d6aee28c01d65912e57d65bbb18162f0d948204a5256603239a97ca2cee6e7af641045d6ac0dc397144c0b1e13ca1d9d5c31c6ef843ee9944fef0cf789860522e5b84e3ac49e00ca853b5c9e521464d5597df22530c24b1cfe86bb5f53eb94f1161ef147ac915bd0ad54f2acefdddebf0c972ddfc8952f699b2bfd1e3359e3b29c79c73ff3756d075d51561bee3b6c29e03871160a3b3d631d46223cc236cd28396aca6dd24da35003c141ce3347551913aa952f17e65b149c95c311420c50c04296279283089c13b886332496abd6e70461f400ed122abb5a53bbeb424516c98a276973529e82b880ad75c4d93cd14115ca553ac59ef2414e527df374885e8989f8283d36a9a42e3c3ce62a511e132922905ffc6ae699cdd7a9c217bb1cacadd65bf555cea1734d8e7362b8a47d7aa78e9004089c4c381c35920e08fa9e69affef8422caccfb6d163e4d41082a65bedc788dbb29f63eaf823cf45d584aae62627beb6968d2848bed8fbae320437d4137f9ea4548be152e7e3f8627319ffc5a3606c446b49b3c486c34aa78de099f7c353b530fcd5acaed47b12c2a80f76075b711f2c71053ea154fb1f6de2db7bf946badd81b8af4358812fbfbe0f8458d4d39185456145b9f38994707577b8b4eff07e3a59b36692ba0856d9a7dad5870b4ca0e1fa7680a1602767bd4c4c57058950beb714553d36ff1841dd3efb86e455ed101003e1ab622e52cf2192f2f3a136d46e6e52eebc8b475568b7dcebe295d7e951ed117ec7705dbd611edda7ef6f3a08ff95ae3d87f10cd3dda31930bb9402e8e217bb614762360d11fdda75255a651029c09a634c6c2bf02e4cde91d8022e307b8198157b226fccaf8be28ad2a967cf7798deaa41a3e59f82fa7280c2667add2141600752f6d203ef24925c6747f51086f401b2bb4b1b4ade721f65a36b8adc6e13ecbfa792c566d9e5403eeccbad3ee49e5b4044a5b354739a8562c974160a3c3687884087050fbf476ce280965b6a48aa60445200945385df5d4e639f81f05469104476572f3117184e9f368be2a88894484732c19a749b01369e45e20f4176022361c412e7a9404be22028636bd20a81feb00eddf0aa756ec875e7b4ea6fc68d0962e5d10fd1428305e6cf42323081a1fb698b0879a002c2ea765583e3e59161c40660410ac62096734efc1c97884d368efed648be47f18d4348ab1221b5637339aa925d9d696f8206c54aa3d844b94b3447732d6402f150ab1ef415a6d0b1d0999530b4c111fe119f76ee76295f9b88481688f6522272874e8796855d91ed29d28485c18c0a16a9fe0810e0a1ad43e4d2d128fa3c3bbf45b1b9cd619b270195742a642ed36c429fa99a6dac2bc834d5c7ffcd5a4a5a91d18674c9e343b576980d04d985eebbb6ddea0b0acab1946e4060907e6c47f0c900a8af63a3fbbcda38172c9898d80c0f8df7e40f4ba33e04f5820333f354e074874bdd13d440984291f846ecea999c2912dc692d652e7723887a531fdc4efbd2b9eaf96ef66dd92887a897b4ab71c08992fcb119b7435cb948ef473613807f067d595774f0b58293aff6a341029c146b1973d47cc0c47c5025df6c5255c04dacdde73f9a5fdee8f1d7d1dd473bfc36285166888e5370d669779210904aef81c3cb5a236dd8b9f001c0f1ff4e93430af0fe1164d5abdac2bce509ac289de25781bcab6a33545a2facf9d41cdaba5cc1d18de5d2b95c7583fa6c9cf16d7f5fefc184f3fb66179c3f1b7acc6d53fa37233c2e4117116c35a41aa7ffa85a3860188c07aaaeb98d6d64cc799941385b674aef5e9cedcd503cea9acee6e1461f7cc062120bf6514696d3defbf4eb2ee233814f1645546b3a3ab4fa0932463584d5aa74e318ec7a36395117d69ce115f8508406004584744a3e9821e51aa0d612a4868906348e14d0a0b31e664b56248b893a233982c83e392a9462c5897f8566f2909bf5c9020017cd195316193939a771e3bcdefc8cb0eb0d007c5e204b4cc7f5828980867b4ab4f304c76c48566582489d01a73e04265c82d79e4c728985728103f673bc76f9760869271f75d1463dd19bd30de06c0a52637255ebe1ad2154f298b09d629bf3e726697bbd38ad3007a551364305c8b77c979bfd65b43e87d6f2663531c10ed0647b34a5dbbbbfb93d20937c0fe6d423992197b9fff0c9284ec5e8d6a5c3255c950f3234923bd056307a15a6fbef9b255c91a0895f910f842d1a3d113cead803c241a0c10e20c8efc08b782409efd1a6d32f6c97b5ff34da639fdbcc6188b245765d06f52092349ed4ed0320ef0fb4b5208d81118bd3cd15f50601a93bd917b500b60056242188199219fe10d91297578229f70d9ac4926f0c879c1375239173e80b0252fdb6986829fd049cb01dd3a12a0a1c49fd4146b77cfa05c378d47aa99de654a9a89840215896e12ea050016cce66d37a6c3eda31237602cc2d98b1d58720184977a8ebf4bd53f8beaca69d547d9b0fd9d9765b78be24049b3baa247439117a511beba612035eb8a49cab81bf7da91e4be9dd6bf5078bb4d6acbffa8355935de7bbe872144278fc0d82d0714b66cd99b9f083db8a9646af9d1cb8292a545fc3ff66c38b2c443e5065d220e8e6382f90c7b0f8d3070ed2ac465e511098999d849703cbcf019ba0ede5619509a93e8cb9ff0ec5db55f21415534ed88408b0a6c825042d666596d9342ada7e90d16ae41026b3180a9e248dc265d6b394ae70dcbe40e22c69f5439f18f59de9537a928732b467801dd4493897a8b99cfab63b135a7063e822c34b7baa28989926c4d32a9b5282b333825360a6cd37cd8b71d15939cdd8e964c6710069d044b112083418dd775468e4beaa41060d3dcfc78bbc636b1dbaa5de1dc2c4e1973bb26c97d48fa00c6fd96ee6891a1189eef8ed1de6b2ea42269e20f37c7ca3180786f3705512fa50d6628d98c6c119ce14ec2a91dc14baab358ff956ffee4ccda016dddb0b55e2761f4ca0c20b5c1e7e92079646a311fc85db9d928f1919f03ba200ff7229a26b2859d8d3b79274da1eba206688b751d9a69611cbb35b4ba75e9f1718a4e65ff2ab00f48f2a416ab81a4548dce95c39a09387af3c00a0254b7cde646ba147c9749d725f48ea799f134d80a6f16eba8f8f9c0c3cd08cb3563292792e90c292cef5169cc734d8fca41be46055bcc586538041c6927552df89c72de84f613f621551caf3ef7d5cb64bbbda73182ff36f8bc0d07f4527085e2d886819a320e179ea670612d13f0e1c4343f387d288653e49bae6bccf0d04403f68eaa19a3a20eca960a859b03be9ec153f6b375fba884169723716d11d5f81fc6e01df8bfa604e39323a4cae365e032086fbd2b3e64c8598d2873d3b2e5cd74dcab745e23c3e07fbb3a0cc7e5867915d04b2ce993498bfd2046174ef32a38b8ed608d7a693da65989a28f6170e30f78cca041fabea3ba637923e2bda37a679706112db658cc9e623f45a17b2ab71d0a109134d639e9ecaad836f44635313d60297bf4959f8fa78eb2179a3849c66a644c4381237af44200ac1b5e1919a3c67ef51c2e5df86fe880e51d9cdda92f07d5f2fe1cf840e68319eea9ef08b9c38b5a94b5a89711ba515088f7d898d3d265b05a171e2a084c5c11bd6a0f8a5a633ab42cfc1778d825dc9d96ad040b87d805a39df76875ce833faf2ff4c0b30ff123f610f17f18572fe389237b8cbc104ed405517a9f23a932cae36ccd0fc1cf071b2681e2ae6b207dfd09748abf8d2254806b1e086f3887d91fc864bd9821788a2f5b5d1b28653501c630257e95f75e1ea6327fdc7b76cb628bfba703f8f37e969f720053188c436c86efeab8a6d50e3d67ec4a15ae9251c3200a30472d8aa8db7de082f809b18d9fa54ec8ed6099d3e2d61a3c85f23b6ff110b31c60be4d844c8e62a86a70be87bfbf14064d5bb474cf4eb2c57458d8c441927383ef688e7f0ee01dd2de1b8e68f4aa772a6c65856e172fff45adcb31292b605d2b01e558753577179f7079da2e1d2048db156803af522f3a0d342d46c4bb6cff5828f8df47aef85085124e4a968ab5fe1ea9afed650b370c1753d058ce19a2a8d202c54a6153f9ca0174447a0ed6af3351dac2173a4208987a716884426c08aa0d108908b6a27875ce7748a73774d7306daee790f11746d325474106c5e3665dcfdd340cbebada84b7b35de0f026bde8af14d953b2ade954163730b0df3c7e4ddbe3093667c995c5847811b00a736e5764d1b5f6c0278ea952865c247ef76d146925cdafb69781824668bde8b6145ac04dc04f0344f776a0e0cce0918063e2e0ca459ccda40646b2a1a4a93219b6ed0e30ba8672cd351b08562cf92d693805d0efdebdff2fc78101e9dbc6eebb2a88590d1c1389b3d96b692790072df5895ee2639403bff46bf7da74e31afded299c04bf924320aff19198cce5f9932fbc990d0d504bcdb63a56d575a5af41510423343fdd50f42143b99a564c7d53da6de6866da3230e9db006570881f57dcffe2b51886e6961bea2c7fe651ca03ef4a4dfee64fe46d4f85924e954603460e4f7920e826d29279f0db3c1ccc0a97f697b765ec8bd917a7a55ab60c9033fda5df6d654ccf16db03634ea1870c257647f227ac4b7720096cd6c444c2039f4848f8a2f6e0eef2c10a72844d4b484a2f423e8665002bd95d82400bb127c27bc60418fe01fca4e464a14dfeefd59c9a92509e1f2d0d7a27c86d348db6b74cd59b99f68036c9a746ec3e08d9c34181aff29bac10e136235d3bd60709d54e230f508817c1a1f34577208784455d0814154b39e59b449d60b2df33e0b8524be44d8ce07a1064b497853e0233d79c1492b6e09e3026d04ee73d7c789d9150a9dcba317401e770dfb9ff8ea6a9d4109e10cb2efe50161fefb58029b1516ad2c897bafbcf936a31d35fb662f0c494d4fa932e97a36644fa8496b28fdac6b5dc06a17ccac23df34a1329f0a051039b02a02080d126761ce5a4e7d3a95f761376a236a056d46d1c3c40e0d46ad515ea14c6c1390b78b55600c60a01b51405fadf35b0d0a44acda65ce187b8046abb0f4c6892008cef78c25b941c3bbd3e86af153d7620d2bdc135d7039007765317a0d49803940c9e8b68f255cdb60c58db4050cb411611fea2e57abcf9edf081ccf3e62fa597ca58185c970c25094e886a88984b90ecd29a60191ba646101200c6f5ab5e3e125b95c0e58fb6aa18acf07157320a9f21674c10c206171a2a79b4ce27bbffc02e0454af17d0963f9515058bb4a612ab331d5aa56c1a127ec5eef20b5453269fbf53bc7aadaad27c47cfb147ebe6b15638e3fd3628eccbccce3ce728e97591349b95bf26d666fc8d2a46ec491204afa19ad8f5e1e5f493aa84b944b06bdfb5b5727520ee220add950135a082f46056facfc5db180d4e9b0e570c8071432dfc272253968a600716908ff4538e47aa9606bd451940983cff244cd9219b2c9bc477526d931e10fd91bac7e8b6735add60fbfe8d8c98f30f902ac88849a9d8b4e86abae689b8402e1541aa1de94bf34cdbe491845c11cdd26707f80ff73251acc44aa63eaacc6db5947125a0b42714efbc3e2ac983ad6355164c2cebf7c8db8d0288cf3e540274612796458910835bd40a5de7002e28a9980d80832eda05866f60c5f057c294282f3c11b267729843ba9a6360779704b491bc1603f9ac73481ed95e51234b8c18713b6b8992244f7834e8303278ea41b9ec0e84fc381c5a9e4050fb2c03e4960ac412e6207fe541e8898e5500e5b9a78f9dde2e327a0a9720295108e40a73e38c0158834d576ae5cf9ce8a49a77a1914cb37d3466cf914fd169d477d88b92803145971e82ff8cf891360c43148fbf90379ae4a60a9e19891a1d8d9f5a61b276b81326e21cd046442614428cc45e2879e8f22eb2ea965216a13dafbc876fd8f747fe03d22b90474216306ae50702cd09bb43107785fed20c45b825402497da69bfa243df8568bcd822f055a5924c510f7e7418b5fd1c258b95dd057b84a1b6267464e5fcd6d52196b61b7641e4176a39ac9d5ddb6e79fb6bcf36a3d0154b0e7b06ca090cc45d92ac6e9065579b7d54229ae10a4164193bff04c41b2708e261f1c0360061ab230cacaab9a76c9b07a9a8d2b603dc3f0abc68d4e3c8f78487dc8cbe6ee04592012279eca3524c20c379f3df949532b343e30b3ad16fd512dd65d2aea42eca507abf12982f04542188daf190100e61fa0b780fbc6ed28785751bf0bdae9e3ec461e2fd657108bc7d795c088dbb750a7e9b484c05b29716fbc94ed934641fd11dc3dee8025104087da60db7a14f4b51374aaedb562ba6c714ed70a55fa7b6d8eff356ca8c8e748c68e3f18ce3edc80e363443210eb52864f5b25be488fea00408c6309fbd76706f8a678aad7e177d40f2786e6c9d81331226d83b41c87c8ce877aab7ed2e718855fe72fbce0d0ab595389b815594ead64abc46afd818e24871062374f41004d0012614530800c48bfbd8405c5f6c195926012e0b7fd8872c3fb053891191a877774c6fb595026bf044095946a61005370fe2a94986abe72a51cc1af8b66949d376caeeef8e3f3c39e521561461f86edf20fa5f620f2f977cf0dbdb10ea0fe3ddf4427cec5602fa4ebce1259421785eb1cdd535f276d9d03523a58625fe2262fe806b0a9c185bcad732ca66d5b2ae8166b55e33c17b5e16ce5fa4bdc10d0dd6a60c1264811b705db4d3e9dc868a9b7a17a6e57bff339d961c356c7b064cff57dd6e0dbcfbc0a18a90d73186e4969239ed3e7aa6bcd64e1b66fa8114584b6d17573de02d131138f9986c2c4eb6176a0e96740e2520df3ab79f143ad80d4ac5c4d99facde8723eaef649bce3def92a587c43d162687272bb81523834e06988efe6ffb9e22cc397bd8d45c5bc98b10911ed06b6e0dbc5d8a0dfe7f561d7578bc0b8d3055955d9ce91e16c9f650f8d4530dd8e1daca473af75f2e796f525094c3dc8676184ca9dbca9e2ba6cfeb0e21c5d9fdc61cab265068ed606ec950829e2647590322d2c4d71bc6368dc6802d9b348a349a3479a33c785bf96e91cb2be76a76f9b4974ea55bdfb7a835dfc30a3defb1acc9ad43b55de1adfdfece8b8570d4c2aa2ccfc0cd195be9faa7a83fd78263caa037dd401f784a136f174c0f040a111caf1de04e176098957a034857dcdc99005ba072abcd6be2c629bb8839aa57b28ff48fae72ce0bb7546af274eba5552b4078089f47c21432eb8c6a65e71334fdb05f070e35f7e3976f655c4104eee3095f46500b5c786e8f497d2a0a1162dc3952023022189af30ffdcd428ddf9fc2dc78c8c0cad0e6566e209883908e5202fcd1d135124842189d8d3bc473ae23df9644864ef39d8011545d0731e99988f72a38e685513a4f21b316b8a838b771e0ef15391dcba28f07064748165658c18daef71e3ed2a33c2f6c22370eebd1902683ff9c18a88bdfeee28a73dab77f7c6e5d0ad54bf7d0433226b9d4b6dec11925af52e8f18411e34b17b74912dc4ab2bc082784b778a94e191c5f5dbcacbffd0c73febfdef592ccac143f245314623006000c6905b306271647a27200f4bd80e7b07ccea9d53a0772039417fdea1a771b5c892f31873d839c2015f05a67ec34a50bd2ae1648e7f552291ae50c0c7cdb110ef87237f5121a1afbc7ca877f17904041c03c9fe32fcae9e2f5e35fa42fd733fd4a5a9fab87f916685730edd82a4aa1a38598b5db6ea16eda398b576a5889e3d65122694df4c8a60f203a4a5f8e46a2c59ba6d385ca98b32ff259d1a8d7b86f292fa1697eed94442d0c086247e40ca734504eef28f2064d8f437ddd48c3cf672683c0a007d2d90614c5c52a2e1ca02000593c26cf28883db4ce989a6415bfa4d291b15f921f16030a5b1447b87ec4065832165183c3988b3932ceb84bd27c1d6b272876977e1c8cb1788ab4c20f4d1977780894440c9c624784254e4d185f1d240668d24c3c9d4d4136da72d706843f3e00b82da79c93210eb1e16438ccb42ceb8374d70689535580c6ff1eda4a0d5a8c0b7257930cf490cfdfcec0fdebdac0a7aa2243c00d5d51c661439c64aa885340f54f96fb9fb850bca7b5dd6365c58ee50528cf2c277d88f243236de7fe9459b799422a6d0fd860f1a3e231ad49b102d071c842790bf67b305a6c40435da36443cdac016fd00c08a00f5d10d4c76f06181bd9a4835e3f26992e5937d1f8bed2d85b917427f317859a7d33744c9d83e00822248072dc99af8a1c3285fa1aa40a91860c7202983e3848eeffa50eb3df1990437d644481541164266c0da34f5859362e5279688021bc205367ca4629a1ea822ee08d0c63f320cee640c765bae924a931574997ac70c6e10d82c691d278461adac2b0423da031d1561644444a3fa6e7fc3ba9671640c1112fad31c70f2f7c160527b2e99b1a2da8df0f27ae02407113c134271f93da198eb10fa5a486292410f0190cd09163113b8fdc760c991b91a4e4f855c2f426187a29ff8290a072223673865d925051b947af8c6b0badea767456e875c6b44587cf33729b5abd7f900cf52ad27024620633c3c09ebb91ad8424664e35b05182124cf3fc99a4f8ff8c97faa60e33d1faab5c7fd7e26db3e67b7f5a6017b5af0f8e982b55ea7fd15e430a1c927b5f9181f590017d15cb7e4d67d373381d81f45b7607a55e6ee345a7892a932c91b5104489ce4d1170f83d984d96c3e9c4fd4d8271f2629c445572e97e638fcac89178a5de98db512d9729038bafa8f9e4c084f6a873e5cbbf4992e8f2790768e8a4b67dc5086d93111f62affc1452bb6ef793da21c7d3a86814aaa42dc52bdc8132c94dc027006973757ded21d284804da8c8ae4f46971a0dc3ee9377a7892ceaa9bd17465072f115d6af2c7ac020be2921e6f441c30bd3aa1d86291a7c510f4a023b6f76b2fb9942770b87596427bbfa7df6e50ce74df2e795cfdeecc3efdb8f708a81f83038d51afcafc0dcad0ad83788d1fc633e60133ee4d709903bb055d1fbbd81174333a805ea601837b3d626edce895b487a9f5f049b5e8522a50f91eedfbce28c08a0b8e2e7613ff50cdfb54c844b83debffabbfe4ca25d7161e48b5e4563a74facd36ef81ff7f3a78c1f2530ac47e25b7dd6bc136b532d5a70853514fc374cae18fa69c87597ee40ea5aef7e1ef7783d1ca1146dd641baca533521badd3ab838c81764d3496085f3bd0b9cdcaf02b0b1de34d56359efb1bdbbb8fa4e26cc1ac5d2000f9d0019abdb639e75e7e343eecb24221b3d1c9d56de8509fd00d3f29fc7e752712ac340fbd2a0ca24bd11bf90082baf7e6d12ea35fe9ce5d124ae3d9fbd08b42dfd7b7472426632cb4e8a7d85fe0ae0b2da719ac0c25fc8a59ec89eb59962d094b90f7791a89d46b390a1615dd08f4724026426dd12ddd7d356a6223eacccafdea4e25dafa832e52cb534009ce6d214a706de2fb70661e14fe3f80f6fdfe456fe4a24da5cba768b816d0951e49c74e8daf04efcea86b3071985a3183ef06168056441ad407a06e56ee47eeaa5555b18e073c2a2c4b211a2e41b3b92004e16b4ac483c316ddfa73db8e0721b1ec967a0f8d4dd5185792338bef0368efddf2071f52138919f5c576cc38ecf89121f06996db39bf770e8e62f265e854f033790daf9423f97c7e53c44afda64d8594f751ac57b24e8ac2ab7113dcfd552ccc2daa2f2b51badfc76fd67e948e1d576eeb0a3846b3d4b3544e600f137885174d4f0f3d98dedd445c803debf723ef7b75d3336790e015f9889f0fb2de66fd4a45eff9115e4697952b202f220b5ea9ef9a7aa6c4278978880c907f1f8bf52aeba4085e9fd8f8f96e43ea79f820f3d80dbc82bff953fa1d33d39487c5b8c8d601ed108205af745cf44ff29257089965afd48cbd2c30234a67f94a3da33f82e6bf7e1159f62c0d565489fd19093abf0aba1f41d93b78f25794d4b25beafd342a39881ab3ba9fdf59a2721aa3910b5dc5c043454d6a6036a731cb779f3f41580a2c616d031710bed04dfc4f207bba64823c60240bbc12bc23f3c2b3fadad5fa4a64b7ed00427efb7bf1dc810a72f5f9890c10dffa877a3fa0a6538a7f685491c179303ef16b1aed6784bed867ef242811fd82bf7f90e4d964b49cedfbda927f3570d2590fd3f3761ffd8e3223ec430bfbb864c10d3a75cd67de8172995594a909f074e52ed8722e5d1c969f4c9fe1de6265e5bbb658d3dec76f82c42a0e3af3a47d13299f94cf7ca70bae5b089b0827cbe93c41531950bc3828757ba49b638f214411a76710a29f087e91bbf1a3c6e2301a11f0794bb09b29af9f0c03f425f7ee755d28232096fa6d40d1d5feffe8a1420dcb66ff598e0696912b61d89f27b97d9af79216181374aa1c037dde32208406ffe0ba9439b9b00f5cdeb15212b7079574db949f865fda521e5d434cc53cb2d596f182387f78f21c0a3fa7b0295f6937911c7141033afbeac88a35d2af2179df4af777f01f69c0251b9bd3eb363abcc0dd07cbd8b608039a326b0920840a352eb71aafa5c7ded9c36d1d69158d11e4c86143d537350438481fb8c27b1bec15afeb526057f30bf48f968e7ab9aadfa165447089fc6b5938dda0e5963544379088cb003b376846b157cefe43a2060244d818d636467138c85c693859981a04b06910cc3f5f30b5b43e1def87e4c348ab9c93dd84e03a3171bba1a014de70cade979afc8db6450f59709044784aedbf41e894c85a4e2e5cb2e9a82a3319bd002662370dfce9bf793c051a29278741e6ea51e5adef702857a2ac1794259f22841600999d4c6d7fa1245bc99d7f9ad4d7bf1297e2ad44b62971c4ea1670c14211071e79bc427761771c92814b5ea1c66e4e94164f1cdd1c2d1958f7652f475ad5b416bfeb09de8f2341d63ddedd9f85e7e8403031782384130664e7a5d47200e7641c3ed4707f501f1d37d0220876bc8dbe0a2163d29c5bab1c6be9431669cbd6b4b9d8e4483e2ee2041434303a101dc1d875e67216a861b34b8e5f08f16b7b2c1f67275fa939fb38190fa979e90b81c077d77f636d669ce63791bfe4eb5f20e1973c7f5f28781e3b0f3d108e0b686a58232bbb933df3485959cd06eb1d3dc4e9dcf048c044be319f4b2252cda97c1c84b28cef9cccb5a38e53c5bc416d70a47a93c478cf302bbf20a9f075ce17eca63276d9342a03e10b2764ca1e318babb0904f12905f95bd9e816fefe42d344cfcdd1158719d679eb64709f84014c574c37e58d4999334b46e1cdc6db7b18943db33ee47ddd0225f01362014fba1a07f21ba661f719d41f679d4ab614f49781003bd4b41039f376205c4acf9c631eb7f47fc5249850870cafe3b5bae97d30826fe4e41ec94dfc4dabb547739d25057a574bf6fc1fb4dcd7b131ca443e06e654d92f5911ef6ff97ed2f36f2da9093edea21e1937249f5d3e205563578b311decb55c8771a71ff593b8cba8e7ec87ab7bdf297934e64db5e2e0f4118ed00f729ee65fa27a2fb621081f6bb24f1d1254bb9d4870d886c1b3bf1f1a8b380325bad317a19a9f4383118f54b474bbf27f8be028e1b42cc1020933f17679b0efa2c3cb958b0df03f946725a2a32186656349a94f7bd3301b60a95c8007ebf8d0c3fe899c7c28a5863024a2a113442cfbc41f497247a7a75304915772c0da8fb938e229354a76b36542f1e550a85c2046df6f3f151aef9396098a2668d133dc77527abc0038f5cde6232ef67b33190acf80bf6c80afbff4b59f07c1a9e471a89773a6755e518b2ef201aa8ac26206d6dd30cea1909111533f869b1ab393020dac5f296ab78cffc3d171bb35dc66f9c4d9c98ce85cca146e23c68d5aeac81ed10386d4399c0d130c455e5ebb73e9293192aa5d6a3187185f4e4ec8090cbd2b9a50bf6067028dde0b37cebdf97478bbeae82316f8343c2655319e3f3d693f046249673d0bad8dcf30e3b59c5fdb8978cba2fb2478a3a84aecd849a015179f159234d48e83e072cd6acf5d7101f3623d9180f7b456870848374b3f2170b640bec86caf5e755a7cec0e50762326ee6af6938cfd290239d8d3043fb3c8f62152409807d44387c2c0068ad9b8b3d1fe0750a873de7f1117527761050f49910113e01c49f8ad95c8d0babfde8e73095d76aca4e6a5f4fee1e309ab2f6d7800fa77b4ecde24341f037004d17ef2bb422a15849eda6dfd697d5ab5f0ea17d59d57e15c80201c85246389892093e6176d5bf1a40670f8395caeb4f8bb8ffcfd9e322025aa0dfdd52f3eafb2463e8a4adea83638be6eccd8a0f7a340b112de390650f030320194b27aded16a06923e87f003d320ad7757bc53203ffb72f64a827848a73986031f06bfe784399231d78e1d052648444178e35ac52d4122d8db5af58b66705dad666c1d2cf46b4a9f45413f3fcc32be55d295588ade748c92b4549b1276609253a8120bcb344ef5bdfd1c182450f179000603ddb80e6b8a86679e8ae2553903b3e45c10fd3239ae2797b26324dde1b0cee88018a6b424f30e5d45d8aa5278df1a181e68d0819a310607546101753a39cd2574aff630062d39a289237c5d73347ebdc4a0a6262c9a1f693b3cc62339dc0698bf242f29ed814db39b346235a3a6dcba46ce088d86023c1ab6cf334027df6896c04d106d6c876efe1342b568f283e1940d08a91003aa174b62de40d221eb2e93fb1ff9b888c7d8676429c5b39b98ce2a90d9d1fd51d9dc4d4ba98cb8ddf804c4e7506b4b0e41f43830a46f00983ebf8daa3836ddffdd70fd5c93fac12bfdcf27368065b4ef0ff9b937c3ad61fb54b9f533762defb2bbac299cf73e6694c939f9b8016309f3911fea008bd4e24294def013a1d16fb70a5204589db716729efbe87056d449dc26e246b17ba0b71b60c6061cfa95254d1bbf238e2197ea60b261b9b804b7f5ac5e3c30d8f1a11859742aee86cd8bf9d3d78426333c95b926f215da51d567a028f8c9600368557ae055b4676a579bb7e60a9c8f84ec87233b118227cab6b4428e8a73131dc334cd5580f5abc8b232f3568028e3dd91d87fc4014443a550a97475cc3ebb626ef6b783fceb34ccfc03a777af9f8f417d4a0d70ad579f48df83de5cdfdb0ea8657a24d26451aa5d8a445947bc2813e83697aa643df251af9759030e6203750f4cfcd6ebeb0c43930c0a01f378dc7ea4e442a5fc27c1811a87e4bd4de80ee8cf2100c104983da29e287bd44d3040331ca82c7f08fe6791a6012e66369f0d19a460f1cf4eca30e674006babdbd852dc41450ffef1153635948e94fd4f114c0118a25ead722512513659214000c482f123921f2612178704a20f0873c9456bdef656fdb7e1b7428216c1b4eef728f917a6c1ae241d127feb231a8739e38141f812d81b13635f9aaa1694a9cc63898f470e4153b2054da2d7e3e8e1505102a448cad5a211fb8ad15f08229664c2efaf753ba7bbe0278a2068658421385d5359a2308e82c46b5b738764ae4cf85699ed403206b450b982e1e4cbe6c8c2350caa3200e3cd58ad3d05b0bca2cf2ed93b32a9cc35fafb4090c0c0cd6e8bf2517d9ec85ef0389e0fe170c986cae5d0ae6b36ab9dd09dca7e855089d21627d47a603727c0351db937fa9cbcfded8638a4b9525516dafe8b03191c5d325da7b1985a05207c3a151b3891a670d1fca81a8b9810a451f61d528ba85293296a59b8434863e082905c1739ca6fdb9b6c8a9423114cb285f10ec19ddac6f1c05d184f799e6328e173f4323ea68731aef43ef453f9520d7c8c6ed616c2b18bd5a92185d9792989b3b6e34adff1eacb67c8589998453b6cad365ea7d4810079a6891000cffe112d89eefb77f17e8cff6187fc1fc3b2524f1d7631eb1457e6f4eb641216636ceb9a8acd48f33ab54b437675e80a62d891a11b06f6ada546a02e6e4fef9a7611ec621052294291f5e874378c01c8952e46f957067ed768a6ed0141ef5028d68a1c67ad9ebf98198015bd002f8decafeb40250d69aa4ce2e752ab7f45c93dca6d11248739f6ce431796e1c4468c60a91d8f647833247f51e325ef2f13213bb5acb989cadf759640cac8994c655800d6a871ffb7aad09c3335e0cd9f2f7908c6120f5cdca1b68e172b373d82af680ce27170d880f87999ef0a8d46f2b8c774c300fd2ae0399f861bf5103a6ee58f49d4072a5237597377c997496011ff726d2eff3363973eb4e67ef38d93438106d9f68af057d51e4336ff4106af38d3aa8b94307590c6a4e6325cb47e90d9eea758bfe579d9d5469cd77f53fa806dfe289269928979cfb4a259afcfc52d68f835cb9a58512ab4ddcc21dc06dc6035acb404b9deea01a6fd97fb1a8fc67d57cc7127b055b573492884b68f548f8e2a59258dd2e8a9bd25b55374602c609781e533877b92db0e874f9761efba135847fc1f1040e759387da8bff169dea796ec39e46df89f0450a545cd46d0c0a92a5b6384812c724fa749714ca9758b1f22de951a04f6b544dbc47c24dd43a6091d09d146c2fd64160c4f1018440cf538dc543f8aa9c4950be4e8b5bba796b43b849c76d7a935fdd046a31b449adc9fbaa2a845aac49ab83753e6eb33c480447f4715baa5d9c8ae9910d6eeb516216335c11b7d56a73c146f1701b956a81c1a81ca5a3d4560274e336bcaa85c423c479c7e091702487cfe5462f40995ce7a8527cfc925e2c0ea4fa2823ab920a9ca14b5daa5a4bbfa98f42f20b72ed14ff4f076069aa28992be3189abb25a2664f3ea954ce605fdac008fd2885d5a4bfa0e94e6c4c653fe92c5a8870553727be5078e07c3d10b2913d8082c92e1e26720d53c65bfd2bdcc99d04c5f341dc50a42af6c6300e3575b1a4bd0290fd41f9e475b7d7d07389a1778957a9dea747989f73561b30297631f0915fc12d46e2d37fe2a06445b430e58ddcb492b6d0eac05ae79dc20c20d53aa7716e7e5404d2dd6c30bcba6912644a63115f8560f5f44a2e0bceb8c5e713803d7ebfed7ce039e34a85eee96191c5f0abc0b1984d677686a18d02e6fe4b0c88e92221d36b5be8033ba09e490aaea91370e1a106b259a49aac5f6cf5b9ad59d5052a2f31b0e458e75c2f80d5e41b60a2006b2bacd20ba4cd00dc6c7b6691509cbfbfca5b98fce155bfe2d05a6dd86594a89b34147ea56de15a7ab2ed88f9d52b884918bfaaa7d23740406a2a81965f9d8ca8f9be4c2eb25a2f8b9c6c1af6750effe257fb9bc08e87a362ca9cb5007a7e0a9f905a756af3187f901868d6629aa3caf2bcacd6f74ccf69e4f1ff0d508c87f2b7e0673b8517146f9b49808f202ca1787ca35a106a6a87ce4dd0e9c99416ca40049a80d1c50ae2565df0a395f3c571f5c35a0ea9838c71a951f5efe36afdeaade9630db104ca6532b64f3b32101807e6fc390398390ee0603871857cd6594eea774e9f791a52912405c9827441a48b402d9cc4484c8ec6ea4317ae626b213843e2bd4fcda576c5c30b65253a48b85a4d466d4801ebb29932dea8dd1064c6e4704586ca1c92fa96693296703d10d8753936d9f4da7324c2546a65b584e7ed86e35f389058762090f6ecb7b78bd4caba62245a94d5dc1f07ee879f4e9c4e761ad41a23512bb730b7fc51a0f96dc8ae28a63e84f3f7480db55af0652dcf2f8bfdcc62ad842c56a3e8deb9d905248dc2316f4f1415ecee5d35d8affd87dfd62a102a2e9c17244b2cf5216ce88d5ff6c2b86ecde2da117b663de4e994fca380e7f841be0bcccf0d26696acce37812fe7f7c005e62c27fb23f423efe4671116f6874c5c8835260354b4c767aab93be847f36eafde5068477964e3520120ed7ab416fb4fe571c218369ad477016203a043e11931f857400fa83704fa83a04a6c624694466cc2687995fb705f7b292089c6f0847d3cc0207a88affbd63c23abbadea1a7b8919334e91a6b2d053579fcd75a65e8466c04d0886a24781695e094662fc187b2229cb0e667a8e644e53aa894f3f2f0d86f1656a019cabef0dcf0c7a6e6689695cb6453f1a1d44c249e6703540f0c08bfb2cb9a05cf55ef00b9dc3fc9b037fe9fb8be9bc01c8fe73629413c6a58414cbbb4e27806d0f421a0a0dbcc730ec004ce351cc73225be78a2b8799dac49ae98cf623f4cbeda5b8c84033e13306ceade5639138bf2bb36f18dc4bc0a99b1d88fe13b6cdaab6948fe6945a006ec0082a9a2cbe3d6066c262ed0afc365551021bafd09cb89b3cb8e82f57827ffd185fa7783942309f20319606f07c31e463a7b000e799d052c9085c31ea2dcd2dddb623fced9c457814597151b29f598e8d570cfebc9d6ffc2a6b387b1be0cd4f071e6481ca29da4c5da577f1ed07ba3a0262baa0e289f935c6b2c2662788ee0235589d9f7849604552e48b7167f6eacfb8349cd7a3a5227a3512410a043e40686180d1e92ff086ad3b3770c855c31d059be6eefb86aa830f9c5e1e79c8c201edc40ac07a58230304b64410cfc060f8f54b40f9e5ee0253b67270178fda47d5dfe7efce7776b9c5f4208e793994691496ca81fef69838b25af3aa932812e0effef1828f4dd4b08b281daee7003670e99a171eb83a12d7ef327baecded2dbf857dc6946c60ace0b088c7da8bae7416ea089d7071385e801c5cd08059edf89af514d8970ce52140235f22b18c6710461e1895e9823b6bd21df33cc1b3d1466ca6195dda69d702995122dc424f8799a7f26d480469ee4bcd32012b27af34cb5d5f9c615ebb8133a97325c45df34fd89bc0f1cfca3cd90e1eebf1602df41fe9a43cf240338d29dff024c3ac4822d8baab33828e947485f88016461045e4086df4bfb07863b47b0056d846cafd3fb08b8c61e9b41433ddaf79fe4d2cba2d5f0f2bf83a6e61bb91b078ea145b7777d1aaed0a8392a66084ad72a3fc349a6e5afa7fede6accd601a542e883ac3cb6e81814efeaff361e1192e9ccaa55b37b4b7569bbb09b60c82c922b30a650f82896de5c1fda166fe1e22514adc33c00aa41b8c5e56b3a90ed276d33a8d074cb9702ee098608349937582052a102df9195988a6ac2fc974a6503b5ccd0604108b31b8b0524992eb6ecfb0bd822dc54f443f6535823e80e007abb87e532ca4ec235c71f1da9f4fb4d7c7d9d6d327afb1e13fa780127bf8071619e5e5c0b73653c8d941c2436ba0b14dc940822a53592adb39e2ab528d897d3273b4332e6e562e619dbd2b6ed7408c989be51c12201fc2a2fe3e46aa3c3460979916aeffe1f855cbff147eea03e9f39f854879a5ece8cb3695ae8fec0102283e47b04c2de45f38101f959acf89448134c67108c36d32915f4028b3bc5ce8698fc8c7dbd63da7ab9fdf63c690325f4b42a3a63048357b13351a24a869db9f69ca65b9a56a9e1cad93a2bdf0fabb3f7e63c77eda79b4f12a943519655a9deebbbe48b6fc917783dcb4acfd850ff0a323719e20ea1ba6c4bd4aa1944ada90b5c72f2f85b9cc996cd8567f682694ee3f6dd582124a02585e6c869ea10271aadb409017cb3bf2ca79ada3b6772beb97d86de4c57814554c1b711bd5ce255c4b71bee3f99e572eaebef56fff930d122d0c93138534c0fd2173a142f1dece7816f22a737e337787cb4d9cfb583f79df2c7161cd2bdec4356d0126ccd45f2fe8775ef464e2c82c595ebb66910af566b7a953bbac8ef47cf7a11f10ca9bbc26918f5aa172f1e1be82c6a4683979f24457b3e3c864e790428c9e0536292c50c5a818357f9dc1f0629bf69f56956daeda2a32141106c4bac46d76ba8221fda6175b4a6411b58f24d8c3baa61c90d91c3b4409e82473a2b64a75efb9708fa425dce8ec7f4b0e437586c4cbb61f7229c7ae6c24b75cfe74e87152dc31477b054a0c057bec83c6e25328cdf9000887a797c8085cf393979b0c37e12cff4a1233ebf8162cf320acf5d123e117264161bb052b42eed979ff294997d5deeaccc12530b8875099e094f219baad6123028ca833ad782a8075887e9f9913da4aa4435bbdcbb1384cd8873fc719d851ede1c0fcccddfcce8f158f19479137a1e922112dc9926566fdd9f2249f71a918675ff30197fcee2e5a8b5016837c18fee08c94141e12803620e4020c2613a0585d19223e06bdef925094ff922893c05cb00367e587e6f107e80df4d00818e24a36eb5ab84bbbe9b7014e3a5c01696d4f34407643939b3c4c533a8b3cbb275c9c5d9f7aa39fdd5844a1921539251e91ae7724b45d739768a030c81950c2342707282c387703ae8506bf1f7a5f5017d0d40095c396c51021247104c4962b00ff3a97002f4f2b40b6964b10f8624dc012e8b25b47f8a2c77983987ebaf3290883f1fb07be91a2cd986d825d2135ad40fd69eb6b9e746d517b96fdb74bcf0dda2b26712efb3c7a82ecedc8f3c2a92564a68f14c7e422f18daad2ef366f0e2242267abd84d11772ddba2f259f59bee8fd22a4265a6fadf83785e9e42f68500c3714765b6b2810b05a51782fb7ba66f6eb02d67a037c556f804b5fe2a50d6bc175c396d2c0742f5e983793261b06536ece539837778a8d41b6ed474ed572c6e7dac914e6f66ec515ef07ad1dda04141f2ca0c64ad280ec6950a4b2bf7e4cf2c7f095051d1f733304ef3dc43bcd05a6309681fbda0bd3eb32b4b8ec41a6eef8d9738ba69d247b15b61e3857e99cad5304a68cb3d2784b78de0a4cb978b3f1ab545461fac5b520d86a74063410059c75953a57ac7886a5922e1008ef7b144ea9d3c36c4a7b203196aedbf116bb0b263407e3a399a634fc6a89c1ec0a43fbe54f14bee59154369d34a1fd9fbec4dc97d5d5d252c666f7942d79825bd405716094c898c83fd67b18fabd0239b6ecd7e59043631b84104404cf7d8df3ddfad7e0de850f40dfeae97c0207321d0b4b236ae448125431cd0fccc34d70aa21537931fb8d6fa9488f64436175a453b0e8202fb11164d699e1052be6314a4319b14be3c911c4f85690cfeea072a33a60d89f3603b4cdf7f15a8d8b90587a712ef1def2bce194e0e2bb7d6048af05797f19f70e9a9ac9b752d4a44cdb64e8a0ed7abaa70da8ccfbf78ef0847ffbeb510264db7ee790177674ab81e5184761f1af4d7330310845695c7b6df2d27c83e49045cd8bdf2b0659bd7b0685c0443cf918b2f7ee16f883a2697595c3ebf4dad9f9900b994e8d86ea0a19c84de906b0c02f5a9044ca8a121a1b0baa9b85914a08f712cb896adf105f98004fafefd3d11c824a456054ccfe373a3c2cfbb0d67e16cabeacef7460db850689b79470592031d9e67b925d7cfb4a8bce4ce00f5f7368f84c59b401c3013b9e218912bbcb9525c3077530d5f07dc6af3dc1a331ffca49e98da73b94dc809c5875cfda62aba249f7bb5b7e6620ba8b48e4ed761fbf15e5ccfad3364b56ef4a8b76103bad4438c510d27fac820c52358610093f77a99ba05aa6f69768b110ed260bd13399a0eb8e76d5f3cbb1a4119ba0c22f43a5bbd4ebe24de447976acb08a0a7aaac32c7d340a8d371d087d2470f7ae9e5f26308ed6ef6e3265fe47a06908cd9a2508d1555e29fcc02619c0d6a220a318bae1bb170eec005eda487d834241f442dae003a8a24ab7f100bf76e09ae8824bd5bb059920e9dbdb03fef47d9c7c1a654292faf3009ad8191ad7eaa73d4ea36a1c884ce92cd816f6b0b56540c42e3ce2bd92e16b6647b5ff16777f379819d2f33b54aa7178ee56ac4e0b5ccd317c4b6e3b40824ac6991007f115c6c97c9a6b4cf6048b04d6b3aee6807226ce20facf73e7edb235b5c1a9f58d6e3ad05e1953afec019dacdda68aa4adf462440938bcc0f30fbe61046e44bab2085a1e9ae92246312b9e7a106ff6ac82de4b169ca17938609dc8033d8cc674046197b68b720b5d36c934b523fb3893a6f1b773a6188065e4040d3636a889cd4f06e0f3d2d463c782919eb03cfc396fdcd016ebb3ba829024680198529f52ad81327e15a6374ce1ef84c6c589ede0d7d9c4701b53d5db560b34b4e0cd068ed3b3c80e225e39b19d6f1b712bb3ca6cfa0c9422a6529e55f7ddead2a371f1ec0a9cfaa5e8fc770a878968088e86b33621948461f4f9cb17501ce30fb593b3838bf3218c31c694ea2dc7316734bcb7dcaaaa1dd7272e8d531d10f403a2c4ec89e2240edf437e0aba7225e401b3c22b9948851c64d26143c289287d531d634c2742a5e3a1c117dc26111313f1703b20907f37cef8abb5474e1cfe79d881bfdf5405c78e20bfd7c35c2b0bb01197ed996fd1c92e238500ea5cb0b8917a5e4394eb2acbc1aef0356aa2d12b24c231c6f021326dbcabc5c7605ae5a1c1ada50ebf22503c20ebc05f212e6e982a701fadff4ea30800c6b08114afdee86fcd0596e10fe70017ac203d3f9392aa6f3d540d63abe46b4f705b8f0b4b64d7a959c2ca69fff7a0928b877600da27fe1a3e5aaab2d2b712867e18241fc14df15c0d7dc906cb297fbc3f95e947b31a2f88c43a4016a6fa0447ad3c065f8ec46b7b4a57b236aeb7af9ab49f85227858aaf95b2bdc697fbc08d6917527fdc1e73dec2b4135d0fd2414eb554b058afa06df2fd3845d35d90dcd1aca4da82e000c397db94a280fd5fa4b7c7c311367abce1d3ddfa8d01f2405beb0acec6487bbe6c6a37cb6247b54e412810fb17a6410de948c63f04e3812deef0cf5b4067561a654b1738cb502030202fbd68df44a5db340800ed5595543a3a71f52001aa84de2bbe5082438486540d6b165fdb51c5b55e292c0ed6964430d246ae50c0488aaf2eb47ddca4355df9b6f609aff3813884568303608ed866c6fdc6112eab59356ef3e8b0c87a246d72c2ff218578322c2af6998ca35baa254d15a492745d1974d6ceb5f2b204c3c73ab96ee77cdeccad7a91864362f9e1208724bd9b4e6ede114b42f54a5504c184f452d79c56bfa086df4aad39c1c549e0f36534d56da19ca3bcad7934b6c8595db3eac6fedc0920d9087f299250fbbb649d902b2d660a1c8915cb43e22f3ebc52bc4b6e6303adba979c02e54adc89eb8c72ed5b98d9021efdc681af2c2ff3f1629e29d42642d96f82416cef7c2800b6260934a060e2b5b7eb0d7087593f1e0005638c30f4447421f20242feb176a881fb97fe78251030279d8c83c08587496623d36d7b03b09fc7ddc7061aab0b9cc938704dff1275da6e10543a080dc0edd834f3300eb8e19b6dba5d311967e01568f559aec9e9e2a018ad2b0c91d334b25bbf544cb2b905b87ee85924b2ce8b0f151277661f4e913799a6c8bde02a2a4e5569d20da8f9fc611798feca8a92a9f1a2904777592a8244b2b047c53a5ff52bfb12bcec8cc67d05266b7b525b44861e164e940826f128c124d2c8821fe9c26b3049bcae703764779dffb383ccd11d7ad8ef30df0174308489d36730713eba4d965e3fe09cfc1c8df47e4b1c5cc6a743960385c0ad79f975ae5c7711aa85bc971ca9340c07f3c95026c179dfa4b8a9b00559405931572bb9e86a9f3dc06d103c3ed2d1cb96c82f255005aefce63e36f7bacc9e1118a1d642b14fbfc624ca47c54ddd28c1dbadec30b336dff7566f477bfea5c03ce927dd06da57d940be3d1d869359abe7c4d1eaf3b385938319e326f6c9f0eee4336e984386f0cdaa6b6c09420831c07c959cc47009efb888825d1052b18a52f7d21700e2cf20d7ca1485874944728399e471dcefa7ea1ca893fcf8298d73aaa23af81eecc143e8b55b4e97dc55e1df10438bcc1978a21b6199b95df8d46c95148a7abdd484a78e9d08c0afda6f983565dd1ac046dd69dc52e56e42f62e689e25890d69dfc07e938f04badaa9dac77748b9d9bfe45ef226861f57d11a1a3a3897d021ad8e49f45b4a5c152c9ab2ea816e2cf934062346ecd1ba1d703020fda1e9023078434c47005ca8172cfa34aa89696443d57e4b65291ce730d15d24a60d8d9323d9fe9425c3f226fc203f40da11ba949db878ce79b8c781e24666d7c1b2425b0812bf1460aaaee768da5777a71ae0810b7ba88a3a95c5613828c6e5a1eb56f1bdba33c4433131e1a7f1d532525f3ab6b8173af969ae2c99d3323c88faac10cdfca499e9a868c494e28e8af9f6403f111818538018390e07b849ec2246c4b09823d0149a987c9d07726869b0d7f29076d7c66b50e2c8351c8a710dd1466ff32fa7d03a0726192e137ead2fa179a2cfee85abebffdcae2af7b9d3d834d5e407fc79bdcdda3b8bd8a2cb31eba856c850ce0f96c7ff1760898279be23cc128e9de868b08abcac6ea26f7fd964c8d7448e3960800643743c5463c1cf07b63a10ca0892611f270692cb5d141a0bebcb0a1452ce7e0839f964af0a2219e51a44f9b3971585fad572aaa2c72b651165a61449108c86e9a3bd5d0baf2c095bae5540dedc47f43549d3e6263c2df9bb5e85c201db015d47ed45e8b2399bbc44d95f62956fa807c4144d75ae343439ec217b041e8b4a0c324ea6bfe044b3ad7ae79c006b204139855197027e403fcab4dabc7a99ba0573d9a5fc71fdc130d4217aeda7c2572f7c5d5aa0e3131c3e4e56f4b64a1b8028c92db015743d83d0dfe9c04d8d15b47b82fbc78d0d9fe2d8478d63c82670d8cdfea0c026e7df9bb6bf5f01f2b6a6d53cea01210feedb0c18180d8d3eb17a1bc90c637f7ddfd4a2bbb0ca841ba2a97b83c182aa747bf88edf8e1b1b77e9b84d778ccd482c1026b2f8e03601fb1004cd240e36695a111ba78980a88c66d37ee4afcb28fc9488508ecf3aeafc8a5c7e8aa4842334387e47ff9b0d958ce8b2725c4c97105ad5d461e2b910298f00a9015211585999620245cfc5f688871aa44e4bc4bf0e1c1197b43bec56c6297431d71d6478bb7040d24c411e596a0473bd9709f8abfcf8f8daf2723fb1563c8b003e0206c3cdc150d37ba1e2c73f87658ab85b52c7c5dd2c9e88aa2c7aacde5fd9f2f0d0df8e23d5006fa599f113fec8fe214224a70769d505b4ffb2ca19bffbd1737fd8b202f33d1a91b6d8a3df38d9dc3cb44d827f0b1a9f1c7ca6b53a166f4499aa484c67a6908f0ac5715631fb179b369bfdfea809a1b2cca7a1b9793f24f671cd95e797dd80349dd0088ad57340955e8a92ef20d2001832fb144945c5723a01c9bd214f6c71dc635b937ddc28318ade770565c482870096a32a4438a615be876d473c0fb3583ccfbe9e6a618e700fc8fcf5850d25633e42c6ba67107ce5a9c946805b027e326aa5e11e4a0c1da3958f2563c230e30e6e7ffdfa721aa6c963233278c0a72f54462bc7114d36514cb2e7f9747a8f26a9bc3860699e2590611714ab81aafe2c049cad3e60f43b488001e98e04bde21085ff68841dd5c43df4267bf7187928b5c63194b3188ea6a1e523c37a7a28dbd6ada112478096da024e8cefe429f6c4f5b89d26d05af3a81dc24e3b6f5e7bf946037fcb0eaf4606041edff0b010f7a186f3a168b49b477da65e8c7362d316f3a7f78fdbf76e382213dfd9409caa990f1597b3a19c42315aaf5f779f0450f01237c054e4f10f0e7042b7053d10984ffc1269596688b1e98fb24c1a29312b0ec50038273e63fa1368d01cc7f427edcfa6896f27a63fcb7a61b9105e89e4cef208d4135d7f893019a18c5640f51deb1962acd84d709bb145facf39930f4a7d583633ce8989b9644ef5d27dfeb3eeea9c16b68fd4e5f83f063560dccb6a0adfee81db6b18b53927f853a459b049a67088b57ce2016dfef3e68c5e0e2b8d873a030f521e937bec51e2837d18a6292741a0368b0ae39a8e914c1281e9f8406a91f29aef644dfc2e5863bb6e7c0c08b46f946f8baebe3eb41d5f690e6d90c4b866da0aa29522a78b4cbd5bcfa303366a5f8b78889fdeff3d1a6b731b1a6f52463eed781d6e7ad4ad2ac34827eba972757490a775d3838d36a9e4ca5a6335ff3b3a0fc7c53bde3265fe9ea8b4b5da5c7c90436b161ec6ea40c936694bf0e413ee891573fb1b803e17c87082df0d228750b055cd83f39fbba5ef80092dbabacf3d2266a0faa6b15116d6c954b39dc8dcd8b54e991655615eb9da28360c239fd519c28c066c77944bdb9621551e1f6832b4fe33d7565a4b019181106eb4d013f378538dd2fb4586ac671b9c1630cd175e7f9e784c5e5f2d51fbeba1c3d693867cd52b4cc958686e6dd044e77b71df1195cba763a3439d7ab3d295e435cb716ee361da0d37494a55a9812bc8d7f2d5bae90140cd76523e5983f6fbf9da232a781e51936d157fd61c4de07d3458384fa3a6fc03e5474e57196ad37894f21700e88b3edc47749740b98c3f491e7a391d9f0a8215e82165624dd73b6aec1de823d5bc4c61645a3b12aeeb8707897471a16b5e4029b6370bf9ff9635ad7f7722b03f3cadaede87e1385f9e9eb2dceaf5e3f943d450ddef0baabc12f9a8f484377b3e43b084a6c306fb1b3f71716a110305ba53e7d34cf8637f05f8f149f298e12e03fb3c1a250fd7bcc58fe6332693a6a2133c716711e9a44f23e069837ef97dc4e0dfe9e4832ee12d6ff82601aaaff2a53dbf782e6da6f46b0065a91aca9e9843aca6288b4985e4e856f2d677515eaf9b19bef503365ebb2baf73e94b4cac93ab9000126d5357c2e4ab42aa1c84e39e1200efbf7f38f6c33f67d18dcf5692fa245f7730ade2040e3299ca03fe9c09059d9d911e462a39dc86880fdaff52eb0b0ece0a6076ef0b7b4576df10ad24f85f8eef0dd9c6d8d9cbf2c4a835d75ca8cdbedcfc8aeb5f3a4e4a2a0ad75d0877c023d387b18b2515a7cecf825ca71fdd84f21164e9ca402d574372b13887cba492566d8f91e55573ee1ca29e9e3f25ba87ebaedbca0bccbf80e1e79df40d0cdfe71c0f57d3a6073736b2e381bf48f1314bac2a083afbe0ee6810b27a316b63701f3b0dd9fff115549ebb06b4097c6700795e1bb58dda6ae4ede98b3f97dfe7a09838edaadbd87d33029fdc262450f11a166f4738f0e1ce220edf8809aca498230f7ce1222c97190be0187f6da44cd666692ffeeb07cb9ebacee5c48a137156bb9f8a5909b73871235c9cf86c2e4e7cf4ba38f105be29a4c3774362d469150478efbddd987dcb874a422b06850c140148a7a78b1a36fd167e905f7d490f2ca59d30d489d2a62cc2f666ebc684881e2eddc4b2476527284d691e18eeba107bbb7cdacbb7927c2a9093b0cf8a163c04bf9ae4c2edc65926277c194a3a99c5c0b4f1f1d590106ff043f1083982a98a2320b4ba53881e4622a13b856341ad95368582bb5f00500d89d85653f7485edea1d2b82ee74b47304d7309e16b108518d011f3c3f4c833d4561e2f947b91c9962e93b4b2dfaa9089187e74bab2661ab47c9762cd8d9d2b5327768f954d87e870e2289750451f2c005e9802b13ec6952d6696fdc885f87f9e5f0ef0595716b291d3fe691200196784b7638181fd7222925d9079f990316844683bb3e55afd5e4837f4857b1040c61dedfd1263a3fdc06a3647c5eff34c19d257ebcb93c612e41286c788fdb0742a38101d5ff958760575674284b1aef51cc84dd7484349c0d624d3d6f185caa03012188fc53c031558fbc18a2b5a7ad4fef8104a813c1930338ee6b5706145116903f5580e53d8f9a0c1a139274b6ae30fead32a2e5dbb96a22b794527ccfe3ab36e5975407b46df3d9fd46b3c88042b62ec1a3d2ed68ffc957a982f28794380fd559a9f412aaab235b1a0655f25b70acc5d0c09268b9f01c8468878591d0f57933760aad95e048a18d40e4a424b62505ac8713aed59ed4dd005d5d3c37b1d69e562a91f8f0a9d467a0d1a29d6d697bef3f4c1615d42e6295e6c51cdd39898d49555a3f105871a1bc18605ff3963ba41183068c0d44d9c55a28a7148d22c929cbfd9c7075375db7e83a291ac185a67c0014f82ab186d5ba88a0e8557a8f4606af10a1140f7e2a3226d425b7c1189d29001f381e056a8c967df8aad47cef17540a7145c2901aaf07b557f752f2f7aa2518efed070f88ac9e101c2539aa88bd5e32e974747f0aa54c62ab45aa9680ce4c608542e8902a6b5bfb8d34aadfdc4fdf0988643b9786e71cf9da47e2da9cc47a9ea6bf868313d0586ccb9607d5441802f95abe3c05b0ad1f471951269189337a9737de93302799d7feea27bdc95cebae9fcb207e0861c97af5ad259af99b3dfc36458326f8be9200df87a939c4a5460a6ff93e24eaa4fdd286452c398f08d87865b05819306911b01473e39dfb5f3d18db0309b522682726c1f0e7308ce19e1429ba9021ea3ae4fb4dc9e8fac1385e37fabc28f5d1769bfd3e9255e1783e6babefbc95287c2b0812ba99b35aea74c04cabc3de96726217c6c19f66697540503d27e8514e4721905f32727b4e0c6e9408715153a64c5135cb4a52da102dde36c7178f35c7981e91b54a6c50c497895391dbb682ce3ea39498f5a18bf9749c425e15c9912a18aefbb94f13c86264525e04b2ff128e480fc9d9cda4fac8b13bda0fa44b2c14029a69ffeeedb6b29c12411eb6c6ebc7dca856676f3775a608c174757d54b0a316fdfd22840e69bc75509cd348b84c0d4e2be3122c64d289f48f576ef1b6b21f02a9f585d7a4f1b809c331dfe9f1eb97dae765f76dd3b330c272831803261977ba73d980d5f2be2861920d11965ffeb64f4d6ead47a4929dec8035c2fa344d50098a72f1b8c2e56eac0c2c107405e8f772f0a432ba2e41a26dad3505865f772fb1e116db4c0ed5ee9100e81a15d404fe04bbb37d0f6cebc8d1250efbe9f77723ad241dac9c168b4fb67a02051bf3a8875ffaef5140e04fe812d1934c5e36b16f1bb1fa60cac06df3dcfdf9a8895009e66f758fb864bd5d51694f461b12f08f02a0b61d1b37b93e168e57ea1eb0582b11ff00ce5d63f7d94d6cc7d3dce3a4f5a8e44ae374eacc60b575432ccfd0d2df5d5f52b2211c6d47fbc9e2e4e6bababc25b2e010488f746d9de3246ba1e8a41bee2e3692b414ed4250293575cd59c00f50c18edfa422ffa126e45e3cc49cf0b6803232b545242fba5c7270eb2ba8e163580104585058825fa201d8d7fb05cea5751ee397f506632a73155a89c98767dec522f15107f872c40b804c4f0c1277868a92fead6b59daa65e040eecf351e2d9c8ffdce559e7d9f3faf795ba3c019f13a3b98af4cd8401a35b9846e35c44832def4d516c694b5bac8e1b8c055e21cc81bb04286b0530b642e9af527083d75bf5a8f228b16feadbe61a9f5094a0c7409ec35288e5f228d70466b0e016c7104d92b42782c2d092cebf959efdef934850ecdd40f5676b6624816ab717074593dc120ecd0fdbf7b3c813dc156727ef7680bf8243340c3613b0f43598ef0ce6524ba29c40648a28aeafee3c783f2199f9f243c37046d975d488682c28371f34c21195caa18548fed4c31f1326ad566cac1ff8e788a9c2bda8774a1d6fac601b905c9c1b475f2c651be9335996af0cb54b632732b4332a970fd3365bb304b9911f103e876e55670f76a9ed530acc8dfcbd40032354e58c33ac0cbc1e45941e69d81450cc46c69275b1eae6c14526e4278196230640e04578a83bda630ed54f0a1589bdb937de1ad18b388bd0feec403e9da33667ca0709fb1ce426ca270fffca9871e166462d31523a3d7239571ff68377e32e3b824136b96cedc7b36f7a11bf8d48d52a36f421adfec19a3a22d87c359b6c5b4b9f71f8c8d2e59b58d5b1736dfbf56c4562ca2d57a17d0fd2a90f022a57f6af584d016bb350fd4cde500ce1677c65b14489a30ad9a078242e02686772a31d47ce03ef022f1d70e628bc03ef827ed1928a0a1d30c103183483f6d3171977b8105b70d5a8fd51735c9b53cacaa6ad19c147654e39793642fa2e47f177fe1618227b56eb88e6e43adaa261d3399c8bb9dae912dcc4e2163087c991fd03adcef8ad36bf64bd2f3028f0e4c76ffcbc32561946c65c17d7413093cda366b662e3aad6d8b82237b402bb954d7d2b54cd8af0c54f02486907655b64335bcdf837c9d9507500050c975132361547b9f493d2663f72befe25616c4543c8a2ea0be07a4c8506887bc1f606e26d7da20bb1d1293c246094bbed7ec78d101bc51bc77303028e8eca18f9340a7fc3b181443c4e32f6119a7df06834c2231a159c6631bccb99880a95ee9e03cbcbb42c3fed2d67496b6fc29fa0d0dbf9154d3bac6245e12f369a562dda7036f7556e0d5b9b5aeefacab241df18e5a5744a383ab7f53f7a58a90b0e65a7e29842eb2ce46e9aa8e4b56403120785e88ac5c4faaea3d455da46e4239ac9877545884eb435ab732717c7171e46b70d87a117d074e0e59ba4d127a5a4fd6da7a07b7484e9fdf184ea6125ea713eb389430961e0d61503da2dac5449bbc2df6b9cdde7e2d8e5f93e39c650153ea86a1765f157c91103dc04c64a3952308131b7a0749df52911be5052244bc050e68055a115210687544e980f1671e8052cc97b929b28183571253a62f2f01184090b1a1510107c0a1419a21f954d05ee56170413e1133771f4c19bf76ca5b51c0de7cf5360eddeb02547ff9d6fedfb64f62496b09d972ef131204114911350ee3ceb80e3776d885f1185787ffb8b0cbb8311ee4fe38902be3436e900bb9400ec41d722257c8e90a2e100fe212394dc1a52b3865c2a54b3855c10de2140597a6e0b4c9a52a385de252149c9ee0d226a726b87489d39a4b4f70cae452139c2a7169cd6912973239a5b9548953125c9ac469092ea5f9924b49705abbb4045772971c894b6b1fc15572da844b99f0998bc44370477011dc997fe086e020b8227807ee07ee810b8273e076e049ae076ec4e5c08fb849ae816bc437708f3806ae069e81bb811fb91838929b815fe01e39ad7269135e5e24afc0bdc02d70cb532a2ead720adc0a5c886b8153175c0a9cb6e00af121ee33c55d1a4a0585c1a993fb843ee1f405f70955c2434ac56d41c515a9b8245a58451a836b6b6050a2855ded9a76b313956cad61545c138d2ae1d69c469ff070da1f7ec045728ae874cc0bae8f5327b7c7a9132e7dc26915973ae1f4c9a5559cdee0d227a73cb8f406a73bb89407a749b8b4e704b835d32897ee200a9417b90478012eb539cdc1a53ab8016e91cbdc029cd2e0d21cfc00d7003772654e6770290d8e807b8013718d9cd6e0d2195c0117014fc025a20667c055c017701370075c06bc017701a7b64b9ff803ae035ec46dc029cea5b647e03ee010b845e07c02370297c085c029152eb812386dc19dc087b82d7238ed1040fc6020b014c19630413dfd223bfd223c3f5c6bc35d9bd3b1ce39812d67146cf4071c37387470ece0e0c171c3d18303872387c307c70f0e201c4131b5989a189b989b185b8c4ecc4e0c4fcc94985b0c95989e982a31b8182b31b9982b313e3158627e62b2c400c56889098ad942d6481ab2866c42da904ec81b1287b49139a40e0985dc21a5903ce414f24652217bc82a248eb442e6c82ba40f8985fc21b39040a4163288dcd2640e198dac46d64466237322bb91e1c86cb21c998e0c8a6c472645c6d36410efcba6344957f0beecd62455c1fb322a4dd214bc2feb699236795f56a5498a82f765b826e909de975969922ef1be2cd724ad795f76a5496a82f7653e4d5225de9761699232795ff6d324a5795f96a5499ac4fb32a0266909de9769699292e07d595093b4f6be6c4b934bde9fd59a44e2fd194d934ade9fd53439f3feac499323787f66d3a408de9f39693204efcf6e9a04c1fb339c263ff0feccd6a407de9fe534d981f7673a4d26797f06a5490ebc3fdb69f288f767529a34e2fd194f931b787f36a5490dbc3fbb359981f767549ac4c0fbb39e2691bc3fabd2e491f767b826cbf767569abcc0fbb35c9316787f76a5c90abc3ff36952087c84104ff2e521de9f61699202efcf7e9a9cc0fbb32c4d4ae0fd19509311787fa6a54908bc3f0b6af201efcfb63459c4fb396a4d3ae0fd1c344d36e0fd1c354d32e0fd1c4d9a5cc0fb396c9a54c0fb399c349980f773dc348980f773e03449c4fb396c4d1ee0fd1c394d1a793f874e9306783f07942665decfb1d36491f7734869b200efe7e0699200f80823e81599002c783fc79426a9cdbbe61f92f01fde054d1da8fc0355c27fb8e75365948aff70efa7c99a7fd821ff704aeaf103a636bce5b07b55dac4125a58abb0755299f2031fda14834efff090b2e07ae0cb04c040d486d00ca919d26488cd1027436e86e00cb10dc919a23304ca909d215286f00c9932e43684ca909e215586e0865819921b726588cf102c437e866419023444cb90a0215b88d488d010a921d284880d1127446e88e010b111c9210285c80e11294478884c2172234285480f912a447044ac10c911b942c4870816223f44b2100122a2854810912d3617089a3110c1c1ac21e359c1954d51c195dd527065549a5c590f0aaeacca09ae0cb7c49559a9b9b29c09aeec8a1257e6c3e4cab0d05cd94f125796a504570644822bd352bbb22557b605893bab29b9339a993bab19c19d3511c19dd984e0ce9c80e0ce6e3e7067381eb8335b07ee2c27c99de970e0cea01c71673b46dc99940ddc198f06ee6c4a06eeec86813ba382e4ce7a8edc5995f2ce7017b8332b16b8b35c05eeec0a05ee6c027726813b8bc09d41e0ce1e706745dc99036e8e06dc1c0cb83916707328e0e648c0cd81809b83889be3003787919bc3003787cccd51e4e628c0cd31c4003edb82103d4b3865c2bb09a755deb73a3b96c7defab6a7ca2cae6f73554667f0bef5b13f7d0b54655407efdba02aa350de3fd5aa8c4639ddc1fb279b2aa33c78ff745365f406ef9f6c55469fbc7fd2a9325ac5fba79d2aa34e78ffc45365f409ef9f6e4df678ff44a5491fef9f7a4e554eb8939553ee74e5e473c272fa396539019db49c824e5b50281a540daa49932c9493268fc241f551394dbe9a74f13eaa8fda414941f1a0a634f9f23eead6e48ef751549ac4f13eaaa749f27d5495267b781f8543596912e67d540e75a5491defa37c9a94bd8fc282fa691200efa3b23479e37d14509336de47696932e67d54509334de476d697287f753b5266bbc9fa26932c7fba99a2663efa79a3439e3fd944d933abc9f7292ba6932c6fb299c2661efa76c4dca783f95d3e48f2681406932c8fba99d2685bc9f92d2e41022efa7a63409c4fb21016e104260223a93c68fdb8f9e1fb81fb91f3e3f7e7e00fd080252035203c406c80d105b8d01d101b2038407c80d480f101c90dc930bc407c80f10a01a03d2e306a905a1095213a449109b204e82dc04c109620b921344270894203b41a404e1093225c82d0895203d41aa04c105b1122417e44a109f205882fc04c9120448bc41b404090ab245484d088d901a214d84d8087122e446088e109b901c213a42a008d9112245088f9029426e42a808e9115245084e88152139215784f808c122e4474816214042b4080912728710e0ca80b832225736e4ca845c994e902bcb017265b62bc3917165373227321857a6c395d5c8625796e392352eb9c325b5903197cc42deb824002ec9c3256597d471492b248e9c5db2e79254c84bde2e39a561fd1d97e46958ffe59252c89d869150489d4be690af4be29037a413f2976c42d69064cc9698a0182da61b03149325e627064b8c4fc362aec4e462acc4e062aac4f4c45089b9dd98293d6e0ccf136ecc8e136e8c4e1537c65663313731363cb8313531b528174710948b03480717c74f8de1f0c191bb38703586a3a7c670dc6a0cc78e4e8de1b055b9386e9ac08425f45c98a01aebcec990daa4414447099774a3e2927a9270493f5c52ae61a5485411c19625db006ed98d21d36e99c327f7f32de7146dc87d1eb7cc6125f7c391e8baf449cd4e1a2ccc0b1db2598e9949f4e1ce2c84d1888a16c874bc80a125284d0ae0fdb2b41380972529194ac3786c75c207912443a74800a572ea047ec95027680c6c30831a8d3af1253419dac49c821968b4892fa1d11acc9e538545e5998f8b111f97ebf8a5e7b95ca17b9ee715d1f9bbfcbcd787bf45748ae414b1752f5264e60e355dd84890911f976b048b11a017a5f7ae64ab18081bf21d1aec9c824f1128a48e922db7788bbf70f9e5e0e9e173923f6a339fa9c37b896b321e592d0d13d62f6b6601e17811472ffc39653f6a6c998717b189d2506bd208d08f242669240db30a1f203edbba0b2e0fab5123e31a8c11a0267ddc1a968649fa9862c2fa50e8a961bb63eb86410d63af64eb80a8c1f1b2c6cb4bd84ff281ea5e90aa993a5cdff1b24626c1489f93444265efb39be37673f04c31c939613de0b2fab83539270cf53e15f23deb57c623f3d18303973572e93b7059a3f4132e61222e9f4b0f71f992cda5bb947e1fa9ece1998f0f1e1f3b303e747c48f1b1f3f99872027d40f1b123a5927ed43cfad8f101c5478e0f9b8f1c1f3a3e76423e9af8e069321484dcf73165eaa03e727ce8783e9ad01d3041b3864d93dcdd784bda5597ab3608d64260485c3df1750d8aaeeb44e751337562520125371546c8fdd6fd6c0de68aba846c08b25bceb690630856c72dbb27a0b834f3d69352b9b5110d47cd14b736a27d345f0d638c45d7ad39aca2002e4c002e8e9a0f1866cbd77589fa50c4d6642e92d364edba920bcf49a3882d54c44699e8b0684bc3aadca6eba2b8333396a021c1b291e2ce748d12ac90a3eda8c2072f3cc0e5b01e4edbe2e35de33d27e40e81b7ab7f68b099f459651f1b2c8e2b0d6b2b38720dc3a18322f518338e9e867d6eb0dd5b6577af8531aee1fa853e8cbf5a0d33715094cb22558ba36e8963a7b433394967d62913f72d6a58f22b749abd979687bbee0d3955ef0654b9ebbe4b71a3b8f376e7ed8a92b00515d02812ee0ca9e707c706391a45c2eb2f3c2d581cb347247638f4aca88dd6bb82cd62cb36ece4249d8d1040e6c073bdea9fb5d1b04e44f2f122578c63d2f86a68bc65abf510a9c7f8d5b5356b6b4a59ae8f993b4441b346bf529c56b5d1af7596c7bb4e9fb8b66b43d7b534a3ad95df37eb588adc90fb5df77289adb95c9fd5751b4db6ee3a8ea9c3bbebff785dad0b6b988d1aab0f45b449059834ca84e7e345f6f09c343e5c76178121528fd0b1f850b9e5d84e34a71a161f2ab71c1b4d889e4e58be3c6b139509511016e1cfa943f4f2fb41e573e1f1aeffb8fda0f2ddf47daf2188a04ec8ccc06aacdf893e1b5fe8b3a1d05885cb65452e5125023c650213f18944b714e55aa58a953cab54c1c9a5a84a15284da0c20d19ac7404b996ac1f5d3642744589aa0f43a2e896a42042b94402e730247e241fa21c7228a260974a11dc1c7e7486bcae8a4425efad7b7766307bf4de69137716a5b2c0d6779f2509050161f1c9e1a8dc787672cec9e674a239d58280b0f8e4ce51c98dbbe5a69536c746ebd3624b51108ea0afa649936f92ce20f73f27de3dafc3b8eb3a2038d8205bcff33c4c834f4139f4d2d626ed14d4048609223561431be87c70cbb38a05cc9c4f0da08486e050d5ac9867952a587209d3753eb8e50e8b829070a712a680a2460ba7ed484fd812a36a14b43594886a1aa9091b44954547c21dc7b0851aadabb6f36a0d85bcea853cef0371065459d475dd6c43adf30112b2081fe94e9180843b49b626b2817dee3ad3eae1a4809d5270414b0eddeb817a8d477bae90e772796bb05561a7db15f2401954d4c31f3d4d8efd32498ff747cf0f2ae38f492a000d3d2d5825514257a2e435046da2091cc23214076fa0c6faa1833cb684092a2790e8a4df8a43a1260e0ec136f199c1b2469c2d816424b3ecddf3be1af3b0f7665d519068cb47f3e19bfa23deb18d136c53633a386eb4ec4861859a68cbc520f7bdda8115e34c1a340dab15241159923b0ab3c5ba6c938679af9ff67b47ea913a3dc29d5935c10877096de5051a6de248a4b2203333535d20833604d16690a84105296a3348783c2ed8321e09fa040b545a0fc3ce7bf75c7d80e34377fcaebae5574774f2e8249dc799faaf0b36f47ac13c493f3a7b3749e7d65d0fbf2dd8d1b7052bfac660bd53d287c57ade90ae7b7dd8dd92fea0578842a1fff070d9dd037449765d1778d5d8a3459ac28eb76958e326786c02c6386a3041305b9e604f76ec32784bdce4d946ebfedcc7374d868090fb1867acae7a5fdebbecbd95ba5fed302e5b1826c8470dd95486bcbad1d44c199840b74c67951ccea3e911eea45123dc49f36c94181c219b56d80b1d04b9d69027b2d565abb0a157f0ab2291e82c4843b074e6f1961eae0f2b8b8b4421ef2c58d02a12b110b958dc995d9da509b512328899f87011eea4d12977660689a9051ed0d4423500ddf0a9ebbaaf0aebe22ee2c3872ecee2a3bbc01f4db94588b9d2b08ec98d8e591cf5f0d5be8577121042f70b593d6aad43b0a69a59f8c8eaacbf7cacce7ae8d21c760897aa57ebed4d95d1274fa0624ba64e9aa42ab03da105b5bec8ab2129241e6a931bfc1c3fab0a0751d3b0c61db620b69de8b6f67db6d6d3d7b01f55ee3d755b1b5de3689dd81b5bb335d666732c14bb6379ec94d125a24b9c40fc83ca93541128a2d77a51104d826067c34c2f4bf8fbbddd139cd864d62b0e8aa0ccfaea9414c42a08d62b8feeb112fd5badea14b16e6d2c4d8b2e4bb1169774702987f4038b425d97771f8bbb3cec447c0407c1c7d7abc7b7a4199f9286905e7677c177e6ee8a2baec83749cda3932a1e9d2eaed5d39dd9c5c5c59d191471696f6a21ae380607f647cd176c89c96045ff1e865474c1f715042fc9e1b4400051d3305119ec0f3ba308024f9e510441279730794611845a8609c271f3597b132e71ee4b74dac44be4048e12ca4408844d0e5ec2280d2efaa450b42a8a2ac1561118442d20b000f123b2bd24852d67153e05c0758c480c56741c3c3041b43e0e1d97cbe5ba9f5444a953db5c8d3fb689281450dc275ec2043d815f2516ace3a829b1605162c12a01e153a2503c616bd80ab7f0ad757f35ca84cde64207ff8ceda6033c436d35466f33d879c28d09269ab061fa04b6b6effb1ed227eeab756abbaf167e0d01c58d602830adf5122688a56addf83597d0badb3b6987519b49a3bb27065228aac28af2115d16c2c5f54a7acdcf6c1f7a60b0e52c7742b8b8b8c01760d2c0dbf368cf0a7bb2993a74c8dda98ecdd421ca5deb96015307cdddc1bb5c06bc0b09bfe6498d65ec5d78a6259e7423e24958491499d34b5762ba7823a593bd10344c46d657573df5dbcf2e75a94e8d755f5dca03da58f706a26c3c2fd822265e8087c5c5eb82355d3c1127dac9744db759420b4d97747b5e13f79af83504e9a6cb906efabc09cf449958c6748b67669d9975096d09b5d558f72cd64e1af43f663ea23569f44f9306fdc8f4fa9268125fc2f3bb247136fb3e6b5b2310dba8b1d9a8255eaf9210ce17a5a896bf7f55e6fdf3a1ed93c079f17e567c5fec1b866ed9d5f2f7d12b5a35f6af775ea12fa1811fdd57080b41c3a46fcfa4b19228af2148efcb9026cdf425342c733a88676024159416d0262d0a1d956027adf4f0250cc48f22937ae932fd5209ac99d5d4d8f714265d348d4ebacce824f0a3139e215d7ca3de7df0327df0a33735f61d3cea3351644847e19928af2150efcba0429ff98ec23c4460ca53631f09cfe88078e67b379e311dc416a8b1ef33f63fb31e8f092198210637b0a9d56893d628daa4dde47e66108aa633d1b0032d44c891c10ea200036dd29a471ddd4913ef24d93b6926104791199df4992832e04707df93bf379e8922d32fe119fa7312c633345763df497884677e66684f8d7dff4e836aac2757d29ffc8df02bf4dde6bbb705fbb26b7e6c72f075b9fa85aa9420d7b63b62827dc980ef83b8fba9b1ef5f2e7f2f3e7c4454a31dde203c42ace5eef34519f2c99d41d020f53a29d81904024a6f95ee8c284f95d91aeb7fd356dcf1e4aeb5767884270647f6961d0f908ef5e7cbafbeb4f4650b48cbbaf01f2e77c0e58b4c71f992cb490593f04b3983ca1d4846c4244c575c71c5153422668d515cc25a3644743a352653ea6e705753633c3aa42423d3c8ac3171deaf922e92f0349db484269e92f00ce926fc91644c37e159635d5776359416d24a185663f33c6a6c9e745f32e0fc129a78c3309cb70cd5e4b6c9de8ec713de2e77cb2e57c272d9f1e01178bf9a2aab5d4dcd75353557733a1d4f8eeee4647aafeb78ba1e1de4b2c5d3751dcfdc21546ac2b369d21daa9a8b162c5e5e2eaed6c85aa952a8933595486238023f51c8eb6a4f1a93c6935a71d714e09a501b0338aae5d9cdc096219b1c7a5527776d4adf3755f681a7d84658756c7fab557ab6164f4d7fda306413b2a9df37293d8989772d7b18bc3fdeb4b4fbb634ac83bcd71058fb8228586bb249c36857433554b0e51704d69aa49452f09406822f4a6fca14a499fedb52a3602dc8bbe996b05f50935b483da8775365a3f7433555d6b85a6d095568fdaa437784deaf39983a44f7802786dcf77ee80eda5365dfcd8e67ab329d2a0b4b0f676f351e32e4236a3ea2e6b2ea845a10ba219b9b2afb786a6c0cb3d5e19bca7393c910aad937e4fe7269c8fd7d6d9835fa5b9a0c4d401a9f997df20f19bc5090fdb680b58ea12fbfa027e227c9888867c42b29017811bf8c88279d849584177114ef93169e4e1af8491262f4ec69b1a734e80bfa78aaec6bb5ace5c914fc7255f691e05b22c782dccf55d9a47d5feecb7da00e98f379c1ce5c82b6dc3e5fad16544f40d3905d3065740b3dc3ac8182595730c9faa6344e7433b0b46daaacd2f26c2972d94e6e1968d2d042474d0377f2cc01096f89a85964a035fd3559d653faae6143b0ff6817c54e3abbb29ed69ac52629feba5bc27654b0fd92f6bfb0ebdc3d1f392249979fd45e46282d744a0be11a9116faacafee34bf82987277537e2282109ef55d77dd16a8b17a06dbefa660fb35f49202cdda24adb526f3682b8570be285d70594709bc2237a8c3c34d1a9e1533d6f7b9a2f47680bc9d1a23e514164bef59fcfa3e17d0d411cb34a1d328f1d192a057d0a288ae84a5a55090bd1f7bd4e9fdd1cd8889a9c3236bcd84fdec8ca80f35a7955e8e6690fba32668004aef1cba4f4c475db163f556749fd47c34d353b7c6d24caf2800715370e14af6b217d464596bc09a9f390517aaa4bc2df4a6d6545bcbd3c30dd9c9257ad43ddd5ed3cc47cc49e315c2a5d7535f3276c67e09ed745f32a69f7ec233269ad2516578cb5d8e7e8ca82090e9fe2a71daa430a5b783dca73db0a7975e7a3b5e0e684c3f743d1cd094a7b3e3f17843983b4016cc1a0dda1461ca4017cc58df860d1d74c82187d72b97de4e2a97602a97de4eee1dde6948f2817a1f4cc3947d3de019e60ef06ddf1fe95499ea8d859a5c12b93fdc1b7297a39bbc622919cf6a9d751656c27acbbb122523250d31b25e1ac79f3eb2582f9dc51a29196c7d09e246b630d5055b7e99dad6619fe9f6162bb137e1cf08eaa69bb012d3519856561defe73524d71c76b5bb5af24e6f59b960cb5ae3e95c25a6976eaf12fbd3c3106908fbd327a900a697cea3437b5f32a7db9f6e31e8f392c160aec64ad8de13f642a402340d353f117e0dd1b414085463bab561ca405c8d352e5b2cc87dbb446e8c23416e4ae9c1b07ae0cb1d3e2289cda3839f0ef542ff7aaaecfba9b1befd74aa8cf5d4455cda561e5df00493461fbce0f75365200a26aeca5818aca9b12ebdc3e5ca09eb82efa7d44a610f0762dca534d55ddd1af8f25e1e9e89e27d46f5d23d2c733aea283c93a2295d85678dd19c9ec2205078baa5abf3a24f7d096da7f4d3654a3f9dfe747a0acfdccc1a9b29619bdcb49310a31aea4e5a2a8bf574703069f44db7f76c372508447b3cfc41f976a897c5ea7c553e5cc78c7646525a06d69a91adca4ae568caf759db6a9d5e8e7442a79f4ec37ac433d2a9b1d14eeed1948ef5c11195dcb740b5a6d680401fd996d46ab5daadde996bcd8d2df7ab4edd01816aecdbf9a08040608d4e6e2be080935d795af1069b3c490598b4d3274988d279b4a7c57e54a37454931b04a2b49ec4697b20f598356c9ece1dde67cdf3b586eef0b0f7436b9c60eaa0d813c3a4d147dda679b7b3136c8a0ab60481c0a0516d5433b219dd4c1d941a911a83ade019668dbe07024d1aa41ee03fd1c8f34e29a5dda8e68e6a239a519391cd1d3969d8e866d210832dc19adc3fd5ec8d2df7c19a2a13e56aacef63f373934540a0ad69253c6bece645c1fe7c22fad2bd97f4220c6ab960100884c120100804aa354d023549df07b58041222f8b07d431fd5418eccb068e86f5ef2c5765a5d79a9e2afb6c361d1defa79c3da5f7537a3f3543545a098b523fb60481bc1f108807182c7d39730997880dbbc2060e526a778277b9fbc25ef461b8e2170da3366c606f592958db9a4da91bc2f922043fdfaab251f8f979f18654fc6cebb449731a466988e29aa4a110b54273f4f4d643ab3459f3b4e24a96204ab1644ae9964c1ff23abad364d93599523a25d31e4f66cbd28f2eec9fd9b001e446448d51216a8c96544747d498e28830ad293f27d487d234f94c3740675011dd36a10e4911ce17e5a4422d3765a28927a440821192b091c28d3643841b2148f1c1691358c7064c6e5ad8a151197c864ef90c1251eca3b0384e13d40999286e472802cf108200841f9c42815f323487e2e034e721b5e18034b0254cd0f759db6a1d96652f4ea051284e6d7726004750a246a3b0a38cca13f7042ae88eaec9a8ed50c8d65663b6d6b0198a736a63820da4e49a4bd1ec98909325f7b1cdc97d11e3d0286c2887324c502331e2a15128b0d5e99828d6e6e410b4d91958ef211cebcdaf8631c67848975ab4050787da70985091676b1cc7f1e3776852f5f1369a043f8ee338cbb33c8edd2a23d8ee4586919e52e52a665ceac69212b61bf20a02825f92435f92434fec6ec906848bbf8284c0491ae2e221300482e08f9e4f06d5131b17d119e2c27b68a5d81d0b45a7e632ad3c6c733e9bafa6615fed6bf2d57c4ebe8e32713d27b6105443a34e5cda821e1aae4d1da4dc2feb4daf33a0020e07a526e49ca49a90a369d089759df4bdbb2aaf4dd77ae04d9325c581030707a914fa1cdf3ae9d61d7c74b36124ece23041ae5b334c0983a911b72aea632935964a6329350ea9797c38deb248fec649c3f5f200301f2ff2f3888d98c9df87f113ca04ca7b290a0aa289574791687cf98944f75c6f2c72fd7be8fa3cef7b6dcf1b7f27ee1dc4e5f7fb16a7a41ea58a65c2b9f716c9b14a763292592ed99c687191cc32f8d62d81e4d6c3975c5f34f9dd8523a4b547d7d557dc9540f22c03c9ddf84afae1baeb15c36aeb6bdda576b5eb4cb55ba96ad7d5aeab5dd77decbacef57a69aedd57ffd5cfd5d5175ded304be472d6c1695729f0299e09b678cbf4d651aa79c4bbe85fe8d6ea95b31cbaa17bf7fbbeefc7f7bd03cf52a9bc7778ace2d575278544f744de90ea795ee781a07745f71efefd786f049243f780e40ffca853fd43327bbd928250bdc34754fff011129259ee1e9a6555259d75daa1f0ea1d2ef157a6560b1c89ad9609974a46abae458bafba166fdd16a977ddc3d5bb554bf4d04ddd754b20d9753abb7c4175fda249d5bbc39a34bdfb0e2dc3d135290895ea23fe83944ca65cc751e5fa777f186c878ed5cf16285c5a126eb56c2fb363a52ad7faae63f5a56b32bdab3d54dd55aa20ba17b09aa259848fa43c5290148864267acae5ddaf761f2f0e1b3676d801067bf1e2b9bee4ee2557d378d59d0d1b4d4fe1d2aa7069ab6aecd888cb8f052423992199e5d05da24f11f87a447410043b74cf0b853c0fd7f3a839d51948eebc877496bb6e8a4e3bd17974052f9e0611368585483fbe632af27089448723878e732a6573eaba7cf5bad42299650fd0ecf25689442eb33eba251097b36e919c223a0dcb157f345b445bbeda27e65254bb104f6ddd5a71501470f5365de470eac49d341737a4f5da1a4d17ea70e9e1ba3e84b1ade9d0604b5b13ddefacefbbaa775d474941a617f2878f883e73489f70820d4d78a116faa0595461d9d696280245ab886dfc5c456c1d451128ba771786dcd52872f752746fb9fbc05b77a81fd679d49a475c7a51d428ba3020f170393ccd93d4e3d2279cd851850f54571479a0578a60a77aaed77b1edde1b256b07ab5e2102e978440f02e570d55d7fd701011ec8860874775b9d48b30087a1849e7e1eaebe5795e7d7749ffbe57afc7abd264eb1d7e0882202e4558f4934d17ad2a88435e95868570e8e18d87ab9e87c4c379d5f3de79b81cba2874450f1de7ba0bebdff540f53c6f75ef617bb54728f40f24b9eee260902a029d5cb2eec2483c5cf670797516e9ceec61d279f4185e75f1a5168987cb1ea0f9fe756d7671cb24b9ccbacb2d45b093599f39c4b64664ddd14732b0254c10ae0663f872e8c329a987004e493f3abbae6a812d6dcde5c303f09b1f330c838ca0572440f49934fa25439d30c1961ddcac200351f744fded993e716928ce4557c64d06151c1c9cd42da2532407a7888956e25acdf5b6c8b7cc3aaed558bd35ac0895225468a619d7ba7fb5bb97ebbaae3b580aaae899c20c03089a3a6e9ee28a9b1b4213d812d7706a6c9aacdf6b165dc66deae88c904680568ff13375d4c3b84d1daddba0289154365589f4b2640b79260dd4cb59458d27e39934eacd5682a28a82429e8ac555cf0ab7cad5d8ca6785a5619da5e9ba892ae08f9b1f4e7ea4b2ea67d2e8ffa8f9e81318c6d66ae150f158f033b33e9248e4c1047561b8658da2ecc2904b5cf3a2c8250e40780bc05db6b4d3b02e4109c0bbfbe003a636001705c08700e092949d9e82869d1d9829f210a7bdc7cb2ff34802154ce0d89e80a20633a0410e740025ca0e787083275538813aa12fa02da02e98800422008107d434b171728363cbd181b2238567caad4902bc9f834a933fbc9fa3a7ca28eefd1cb826690cb430ba29404ff7c0e5e7e3ddedf1d0adf76ef7ef865ca2b7aeeb63ebaa3b3e7557375dd54937f5d2359d754947ddd27f596f7151c7f7bfb7c55f17dfe5de8feeeb2eaecbc53b7a28fe74c3e3b82fdf714fefe1e23879771ce6f6f0d925afe3c2fc874b6dfee2cecec3d571d97df11b978703e0ca1e736fdcc605c077b831a74bb8b4e734ae8de7b83bbcc6a511bb0163adc91197ac87a69709fbe86cfaea75a749ea84adda749a9c4ed0f1c9526ef5b54a9339186431adc6b90a71c29b500f952c8ae23b5765b3d0e7def08aadca6698eed45893e3b1e4152ec78b6765800665d327a987c95ec4250dcaa2e95f93ab5449b3c8661fc7afcbe3272e91d0a0cc7ac7ba5fc3560fc35c980b7dc25c690896f592eed01d4c791a5677f2bcca89f8b2daaae4b2cbe2cb8f27d7ab6eead29f8689475d9aa561e2679702d59878c242946e6f29be74d32d91a8c9a278ba43797255466ba14fe986380dab27ddf0a66135b4d5978060cbf026575bcda93a154adda9dead3cb74e6958bdaa66bd3cab680319449f3c7340e25b12d3140c57a095d64a2be5d1b0a69452ea5d242fd9fba161d4a3970710d1862f397585f55abc3473c68c4678d6b09eb9444cfbe511eea1612dc4474358860bf607204d5f5e2ca10539dd4b1645d112483dbad2d9253197ad37f9d230cf0996c59481333675d04cef9a64678521e45091e98b4c2fced0ab1df889be1aab2705f1bdbbb47be9bcc621f1487d0bf6f255f0f4fb5aad975615e156a8de9687e7297dc368cbeb2a9d5ea971eb4dceafc315846eaa0e43a15a6b855d55e8a5b5a1fa83fff045b3139d7eb588c69d6d55ab0bbdd65a6711e6ad23418bb445b145da95d4e33bbd73f6254564d181344971ada25863f522fdf7dd1f906079344c88b0e22a5845cde38726bfd71a529cc4cbddf81524d4d8035e16e11e1a16c262c3481d89da4251a0308f7edf9c457ca26f92a88d1da4d872deca598923f767331caf6d10c3ed0b1fd0d441e79c7427cf9e37794e1b35d67306e5f98913a28ea814fd53635d6d6aac3b5cbe15c2f9c3a08dba93cb7e41cbc62637aefe7cb6d5fa742ebaad75b353f37dd6b6ca0f975b9413ede0aa6cd2723edfcfa7b313f2e980443555c6048914cdc55de860928e8d846d37673243baa9319b960baca4450b2c12d58872553613e35dadc56beb9d0bfcd572e7f37363c3935b14c2a5ad38d712edd0497bcbbbb580bcdb8e17d4c353c3dd6aac732dcf0727caed64a086424516bcd0840a9840eb7f3b55565fe0862d4f72f0841434aa040aaa7045d01553a0f50d2530c1852b94a042a34268830b6ad4d0829a77239ba1349288df2e0e54ea774125ac8484bb1e385841aa91b012117738b146c44a30ee72ef7b36182b71813b9f1aeb6325adeeaed655516ed2e8e77277bf11dde98df531278d979dcecc94095b76b5ce065f24954c27dbd95029d58a35b6b88bf7bb9a96cbe5c5e2e530deef6e680b17bf2f72387ec7c03070c8eb660c5da95863cb356fd0b3b8dfbc41ff7245e0289c37e85b579c37e8c7eb326fd0b3ee6bdea05fdd9779835e7559cc1bf4a9dbe2ba9837e84fb7346fd0db4b9a37e84dd7346fd097ae9d37e849f7346fd08b17356fd00f68d4e317a80dac93218207102245200141b78d26cb6f5683a3073ae7acf8c51351f7cb27da6c219c2faae759a0876e8088222400021a9b2d354e2890792362a592eacc0109e5fe0f441431b3781e908655212eb6f2e8f4a42b228165218850c10299317a22663d34387375f650c48ce210eea1c9faea514adf613103b0dcc35765a351fefa634271d8e8bc50a8ebeeeeeeeef6bafe6156e9cb94c660c559ee22cc7a689262dc6ac15e58951ac2f9e2457d0993427928147aa35572dd7dc5eb604df6cd0e3866487586a83411a63634d89252db9c342a8dded07753fcd2ea68d7e473bf6d4f3041cb0f13b4f8e850b39f04b2f7524a202379c9defba6b6a87055368262c36ed7b21deb8bee6cd8c41f92975cd229d96c29e70d3eed2385dc75fc5785f55ee9c3f2eb545654b98ea127e5d821f3b36165bf76259d528ea7c2f9b870ab04e5c9f87ee9b3d94a1f948f0ab9e252f5e30415d0a9c2e5364561cbcf966914d6cba2dcb9a10b43e2904af2315f3f61debda6def4ba128f1e7144b12797259e9d86d17b9d25e5c984279a20821513545d79819b3a6ad4ea795ed787ba2f3a8c5a2fe4816ff02bf1745ddfd640258761e312f68d2f55563cd1f7b55a9d0a17c222efeda9705f89a76125290da3b9fc3edbd441fbde3d1e3df1115e4602cb259e1ff3a51560c85292528252069dec932b834d85c5b392bbe223127d390c892937d826a9952647175de593290c96bd97cfdd2df02e77ded7587dcbfbe72181656a1bec3e58eefe9186b8aa7ce107b9fbf224f508cfa3c39118ea3e5b28a4c272a5c91aeaaaadc932062e7f5032fdfcc426f9980f85fe8d4e5f82d2a4e8529aac2728e549e7d21c5e9a47774e1849b43549c2a1ad61540c73e6e97b8557893eaa2baa9f2690008b0a885eb56555a3d292e9aa96e9aa49a60f479fe863fb72442ca114d420775885b3d2065b86dd8479b40441e8cefab03f9e3ecc69b2f129a76123f63c1b0f2714c2d2e433c5350154850876f4b1922baea993ecfd25c438fe65a435be62d797b42e33bef56e6ced9297cbf5e2f2ba0b1def78d78db4ee8295b8bc7517561245c6054f0a2ec18e6ffdd5afc6af215c77b911d75db0922832afbb5cc9cb5d37e27216678195bcf0efebfee5b0c7cadbb0d1ba2fef2f215efc5580497bf19711da032b78c0248b4ead4683f1f1be78937a0841c364bc8b33195d7f5dc6f597eb8d6558fc05cff0a0fde57305285ad6606b41ff72ffba2c3ede288d5f438ca3cbc4b5f88885b8ebad3796799d059e61f1d7c7cf449179715d66bc0b88059e29620377915ac20b49b0620bb65a0d07ce1c3120820c5aa0022ad8d230815cdc497bb993d6ba93f6ba9336692c26ed51645a1f3f8e77b9cc7897d136be059ea1354c6de34b5a1bb14dd7a86dd24e4a60e142197c6ab4b26bb96d668d814bb0321ee332f0abbf841603db4a221ceca4bd8c50da784a1beffaeb51645cde7aab75d7655a77e19928ddc23899d65f7886ee505ceb25dd51124546890bbf647edfc22f23f8f718cf447909d17a0126ad45676a9ad63a12b55ffc9219effa7817fe6c35065463b4854b30be66c3cad54da6b779e25ac7b6059b4fb732ae8da0e369abbadb464bae3662c8de3b3be21c70945285f369ece18fe3ed6c785c3b2730f769636a3dfc129de69b6d4e80b6f528a5dbd088264a684ef1a525791f5659b92a5cd761552e54c225cd73da6e6b18fdaec4696311aa5cabd5ed8560d72a2b399267d3649f5e852be594743aa6e9f79d6c275b8d559cc4cb5f4ec3e8676bb2e257dbbe9c2641fcead34fa7490feba482ac2aa7b2d2b0141b6c875fcdd3b0290d6b9edb13526867536354147a3677e65085abb2920d4a53294a498a29f784614a13954f932955aec9d91306285832bd926977b2b54eb6ef6453e1e8186c49678787de443378284f29aab8c9a93c7bc25025cf0ce62945152bc8a56aacc2d6dae7528636920f3a032bfa94684fc6956c259b4fa639dbf8646b526a0db68c818b81abb22e06aeb38981eb80328d81ebc95e577be6d096c31797bbbc58906a412c5e414055c6c475164c5cfd4963e282459f1aa358890b8b3f5db22961328e7789f11c943079bd5cb092d1e52fee72fca284c9cbcb5f87f1978bdfdf98b47812ae3369e1022b797939ec2f327eac84098b27e19a34262c3e530343938195b4705dc65d31b01216984912e399b0788cb3b88bcfa861f2d85b9cc600ea183f5e0c1fd18c193846ee2dee8cd88d8183dd193f33806604c1c801c900daa13070208c9eef4c5a6018b71aab32262d9ec488952441afa045a99f34262d300c9ed74b6fac11348b94095b966cf539b8c9658c077603944b19403376aa2cf67da2193bde8c9d98cfcbd84fcce7964b9f0dc5b1258c1df14724c5c0d1262ccd25eca7940104fb81dd327dc9d662d471b9aa566374e775cce279f955b5c04a5c3f56c2e22e280b3cc78b76be7c75d1077673acaabdcc9caa4ced883ea932258a3e285c4ea05ca660375596b2f1cd4ad8cded26b5737a194055f67dd6a6401940a2cf0c7aad58147d1a8b3eb99716a7175d4e2ffe8ce35d4017835e989e547be5f0172e3a7cc6e9493b5536f322d554d98c6bbeb8fc8595a03418af97249fd7eb315e5e927e64b078490262c1e2b016b197a4a01831fe7a39733264fce5e5f4816125280d76162fe74f0c2b4169b1bbf85fdab8c72f6739fc850e78c60c3c43a7c6e88b3b23873ba3e7ceb8a9b119b7193633786a0c3723a8c67a6600d5d86dc64f8df1ccf0a9b13b237767d4dc193b35562a61eca44a183b319f9d72464da68ff98c2fa78ffd8cafc3c8d518057229c5825ce28cda387ed6d8e82f2fa72f18066e66c4307a665c18c62d74c1305c273d8661ec50170c23575dd80629c6339bb75cc2d889f1cc9e1ce3c9f4a59e2a9b412245ab81a1e12a9b79398bd39774aa6c667c8bd39776aa6cc67517a72ff154d9ccebf7f4a55b95cdb8fc87038ea684c55f6cb4f8387371570e2fe76da6068696c3fdeb18cf080088a6e47779397b9cb0f386839e5cce20109733e8de183fbf315cdc182d6e8cdc8df1726304d518fdebbab8666309a8ca640001fdfcf8f8cc5ac698b9984d0c5ca68fd97662373a319b140c522f48399937e867c77c36c881e2064f70908a418a8954132927523839d00194283be0416a062919a4685083271aaca732b025ec27d3973076323d2c28f47a0b172fc7f7ae1a9146a3c48c96c35fc0882103e6f2f1f430a0ea8acdd081c50eb11aad86ba8c344ea3448b0680d3286169364ea3c4470ffba9b224ea15575c41a3840dda0d8c5a038c8652c3bc414fa3c469282df3063d0ae8366e8ac9bc415fe3a668e60dfad74d25316fd003e0a6949837e869dc9409e60d7a979b5a62dea0dfe1a2d8306fd0eb70516d9837e8675c941be60dfad845bd61dea0775dd49679831e7653279837e865dc140ae60dfa1837d564dea0877153299837e85fdc940ae60dfa1c6e6a05f3063dbea838cc1bf4f7a2e0306fd0ffa2ae9837e85ddc1409e60dfa163755827963de189dc59df38678233c1d839db75ca2f294a28a1a9488cb2fc4a51de1b27558c5a58d5ca2801a0574b23d97219f4c0fe68983c2964d3f26314c1df53db9f46c42569834e8fb8672b406bd4bfd115d97cbcfe6d3b035d8f264cb27dbf7593b4f369c67f379a3976e6169470cb6a493d330180d83edf2b4220c4ce452853bd95a5e49a7c952f4c9f4743c7dc926834cc31d9d4c5fba3539ad08031032bde853652ff093e63a09972528998ab854e5b264c365698acd235c967059aad2b7eea9317aa3a2c6752e67a9ca878ab00a47475cb1adca5456cc187d156c5bc8f4aa30647adb4ea69f4d859b34e8d5502281e5face664519a8bca443ead1ff5e8d4b39b964d3b29382ef43fa48e775dd7fd48770d9a2920e15897029a7613995065baa70369f2e553f2a5c7b4d9aac7836acb3f52dbd5aa61f7e3256db783a1e2877b685a394255b471bb10a5763f468b065c986dbe9924d8553e5aaac64ab31facfda926d54e15eae6ae3cc58b2b5f04bc635d3baab64a3fd9219c72fa1b5ee4ba6d53f5f429be06936ccfbcb88ab75d727ed65c445c978974fdaf4b0e449fa31a5808295724a81f3e97ba4e257101f72df87dc437cc04744ef50c8039d8fd4fb985240c1ca24f579b40fb9de2905ce27b7eea48d77d2fa6ec0873cef725f46c6b7dec24a5c3e7ed25cf7654489eb2d22eacd4bc6f5d75f78c6853ba8a5c211e162f39269dd75179ea9ad11ab54b84c1b4887d71256d39a2b84f3856745ef6ba36114cf1a363f6dcc3aef55846dd0bff33142f67009cb738672d8d949fa4173cf17131f99b73850d18326b994e927a59709e7bb36dcb4a1494ed25da110242527e9dc81564e6233fd92a6488447742d7b9f2fca13509eb9248a253c539a012f8ebe84d6d948f7a84d27be3fef6747adcf46c234143783ec616ad389e20e36a72a0b69383a827d4df032227e4df032af214607ff9a586674f02513bef4b0f425b4109cb470563a6be935eb65689e57625faa7808515412656299d2ed9588275d4994c632f6a52b215d7c686feba3d985763c7a030deb68ad611da5a9692f8b05df752f696e7c497ba82da5623d1c417b5d0e5ed74322ba773e3e4454d9a475210c82c649a84dc3bac6d449c3ba9b8ea136dd976269581722853e49428046f4277843ddfb1660d2682e0796e48a8f787d584422a2ca5ef32e45541978d265c0933e4f22dd05cfb44e72f90ce96065f710fe91eead978685ddbd6c89f091ee21ecdd0375fe48d76ad2c3df0bc53f669eef8c10e57a1a0a838d8aa3619f48f1a435e8e7b511f2406b50bca4e7c5df39b0248721bef3f3b4e61089fc4d1bb99c1789c196a6f7612651d8a41e9f3864499e37bc25cd33fc313f3a8f5e92a74874bbab4860a100e5e709852a724cf5f3a2e8ce1c86176fb9248befeeafbbbbfba65b6bf7f7d52aaa221ee88e32cc8d79a035c2f0a5cd94149654b6d58735f94244ea51c23cd01afdbd6ffdbcce1e2cbbee11d87734baa193ae78f036052f5ed279d4f0d68fae77f076fe6a99a42b8e4c9ac2f63d23ea15af7e97f1ac4178c3ba61270a02f59b7cf10072910d6eb05ab672abce395b2d6b7974a7f56b5867f1c7a3ca5c33565f6faeefea0d1eb53569d4ea23844c713973b5daee9fd864f7da4d9f4abd9a8e44f292eb5f2ca1053678a13ed8b2951b96a353ed0f72a9cafdc9640a2fd4f28c620558f20e794e81c54adec9f41268d99725cf17d164f756cbda3c3f65e0adf298b2d0d763719382b727a7ff49cd6927fcb23437a5b4fb8dcb226ab9ebbbfb7b0d7d66efe1b44f4ed7c12e7666f0d6302a1da32095122e93e4d21b97fdeeb41fbeec6ec220957741803db7c613bcd5d24522de54032b026f2015b087e62e8b3a7bd0c6ce5cea42f1a48f1e96eecca597a0351d0ce9580b8220088220167a300b103db8a565a8d35b5389b60f9426e912a74ced056f17ecc12015d10b22e127a7d37b5b9a14319582c31f1abef36e21066f1a46412761b0f5256853bfa3eee882a26e51fe2ab62a5be360cb2f67536560143346bf844c6f057db5016f93060de9dc423c219d934ea66f7567513885a394e08dd657f7a0ae136b55469f843f6117b264fa504b93a44cc54ce7145bc07122ae8056bec865f843a7d002197229dea820fcc9f45d6d273c37379c9e1ae09ec83559361499beec9c4ccbd602d094d26343adc9f2b3d2354d96e00a323d3db882a9a35399d21d4aa5ca8b5cd29d2b587ac825dda15ae896501172d9346537c9b7711b214f78036fe00e6893e93f2b4d965fd097cbf41e1b78dc6e38518f0817d209d5784199961eced3c2e9939480aed14eb8881aa3a86fa0c6e8c4429bb413c908ea28fc9a0d5b42f3c9b4da649f1af3c9b475a0a8d1d49ef06a7deb5b4d939a0673b7aec1d431b13c417d9212507d6ab51aed74d4ad51a05a8d76c2484c2cb42814a856cb8d5fd4c6890d88431de7060787c2f5767abf6f6c394e9aa414c4d1aee212cc650adee80937a659dcb17d69c083ed19e17aaa8cac3479eac42e0716f5260dab219a508d18aa7941e228b2be9aa7d5a9eeac4ea7551576ba4fac55cd24031a7a7a5d8d2c1d209f2ca3eaab87a6f9a2147d5e58e4f0c2e5d57285a6348ca76156d86f09d68707e0f4a9ac95825804fb0ae265d6bdccc2f5e18d986b4ed501a36067c34e387b3a8fbaba25890756e5c303002ba9424f0b76f61d7fc2ea3c5adc716737447d9252b8de268d265814668255b154afa5d59bb46367e1956ab30d93ba09b55afda836b1f4d52d9354fb85dc8fd5552bcc1a7f3aebaa6ed730f1a66beadbdbe5d215dfabd761ee4bfcccacd7aa336fe1959c4f155b77a0c865e5e1c91493eecce2ed151f7a5600dff130b7e32c4ca461f5401a56b930e77bb55aad2c8ab4e3df14bb3aea2f3d5cc1c0bcec72ea299887ab956965c2af20ac9bfe8375530a0573d585097d72a4a6a208845cb236a516d8d930fb53dd11c0c5a1db4c4e8928f12cd44b168bf5954f932c93655df5d07425975bddc7b43a6b95f359d9429c52d0ecab9f6caec8e5930d1f643b8aa214b6ec7239ea114791aac48faa97e3570fc795f851fc91b17edfc8faea212bc41157acd56a1c45d5a8a7ed4f2e43a071a4695845bd87a73ead288ae111435017cfbaeae2593708d4c59b82a02e76875a14a4ba61b1ae22b170c9ba8975d24b9369089675d38f98aeb25f994653ca64c2a5fde9a1bda10de726bc61a97eba3db154372a5c3edfd11629552c8d7a6adb1daf1771f38d59238b854576f695955cbfe38ab88cba885f3e6816a261f31c5822d3b07adc4f0f98a66d4890c3dc0cd3505c13f20a975f10f325cd22ee5cf0701e2dabd23305bb628922ab13c3789309533b9e47b3467c4497937459bc6a14e4d51ae6d5d0e43a8e5144550aec2ca65e9c22959689b81ab369927cbdd8a4c998d78b354dea70fc7ab1d6648c2d4deec0d3a428e2aa885344282d0b126d4d96c24f140ab5884e9abc52c49c5c459d5c6fb28d97224eaea6d1645a9956a3ea4e964aa53aab1345964ac50349c562b1583c9cc522c1fc4678e3863698df0802e6476e1c00e7d1a10d009ff19f26c7d59db93b87351a311a8f3dc61a59acd56763c10f6b3586376129627b581e6de471a6c2e5c76a59f1c2fc803db4350903a362adc21cccfff037c481912143860c924a942103dbf3a83097e626895d3ebdcd9f3f8c0ae62c981eb187302edea41ea26a493e51d643167e0d19cffa8ff12cccfa924cc31657979a9698300fb4868ac65537767bcb679877241fb0c360171f6378b48506ec962e6e00e0ce7c83ae6edc18c771bcf1199e08801be61a36e3c60d179dba3163c68c192e3e63c6388e2b312ce5c096614ebc0d517c3d690aeb81ce221eabb0233e827aeaa88ba7a38914848d2d3d4936cea34555133b6fa3b3a1d88363994cabd56a65baaaa7cac2dc1519589a4d26d62a6552ad542bd50a9749bcbc3a8cab2eaa5658bcab5b8a47b19eba250b75d97dad3ef36b85431c5b0ca68ed5c7af2ede51145160c71358f1e3a85a625ce1d79079a4c6bf294c11bf885840ee0787b3835c864039f276400dab8fb91d161d6ef7531fe376a18f88bb36ae0d5415828d0ec70d733e0d1b592947b85c57678d82562ad5aaaba862ad4641b59086c403c88551c4a32a0dab220ec79d3c5c69587d0e756eb65c863bb93ebc1151e7d12e7c543189975d5c6a5ddc206f14ea75facc2c1cda54f984431cd40d6f6a6c19e66e315883ad4a142dbe9b1b9c8f146a11ad6e563f2db610af125595d4a3f41697e61ab7a3f9c3819d1d5ef1f9c11222829651c4d5707eb0785bb4dce787f26811c5152994225adb6afd6578339b658fd423d4123a85360dabe5ea6119e682ac70586b028a739ec4d528ae2a6e6ad991c20a352af5ab5134d583a19349a35628577dbc631556fc0a3f99893527cce1f1e2eae36b6858173fdad230160e6bb8dac29a1aab2f439a5c8fbaf9465beac39a26a14d93a121e4fad0c9f7adc49528be493dc4954d1c2f001ce5c55289e2ca268e575d0914d1b0e9b31a5faab1b9d17483634bdd04f330ccc96ce01f3fc28e20d921d323d921dbdb2659f808bd7d7d18a2b038b65830d878841e75d6533f8d678d2c152bc8eaaaff585d7562b16ee2d1a9b36e6a1c572f58b87c16516f7bd48f15b6289ac3d4ed2ea38e52dd23a2eaa43ae15790f1a7ff187f52e152bce94b72ea2cd6f8fa0265432cb99e47df1729b4e5aa6c565947ab7f91de651286b9e14d106e3613b48a892dab8d94ba28fe1b6f8a762bf12b988c2349c1dc230121d94fd290d2e9c73b5387dd20d5a60e93ba8c8bc41ee67d49f735248bf808cc29cc510f6df6e3f8af49f1a3eaa487aa1bda703c5c7813de88e5a9b4b4ebef889ac597ab8baf46d46cbfba48ec51afb0874840a60cb1cb3c2aeaceac325d2366b2bd8c6b0fb3ef9ba4b3c51ba0579534a77006e84b0f6f98946e706ca43858d63ba8611547063c2f3b59acef5a566d1dab4f9d964b72c9baea20689f2c8a399a1d7aa5268b2d9e475d5d23409057b94422ab8c10e5152e39b024a74e5525921db28ac6aa9efa91d44741a9d3875526af2ede72072c630b05db21b31efab06e88c58965dd7e927e8457b0549b78f1a88b3f8937bdc8e255ddba4876c8a9db7b44977158eb3bda92045b8e825e43c43f146f06ee4bb81cff87d3ae26698b8d1d7bba0d9b18d0f0340ce663f598ea07364fe8f9a937a9c6514bc36a9865bc2150c3c29f86d5d0671c028d571a373d6c71746bf284eb9747d5e9361e9eeee8369a727a39e2c995e73cda24fe23824954d17819e66e246165bcc5554f661f733f658b94f1d9b2514f8dd58faa9e9f2aab36f11497add4a8e7335528262ce65458b412c50a60c7492fc39b2a1300eee1fb76608ccbd5612f5b79e615ebd2b832ee8d5b8659727dec26f1b228daf879f418e474144f6d5c9a61770465c61de9f08c6ea73b473b1f0fec142b7ef532cced8ce3388eaf95555cddd196511069b4a508f6c5fa92ccba95a3a0515068c3218ed8e5f0fbac6de582465b9a64bd3eacb15897da9135ae6ed519718bf835a4cbe2bb2ce297f825590c6a589d7975bb1c4ed224ad70cd1171129a7b88a34f16a026c5bf443cc28dac8c775465d4d3a637fde9a1c964b237a554b7aa9f6e69b3eaa1c96432a5542a7c3a8f9aa2b74db7eb3ad53fdd4ef5272945eaba4930624ef4e9987f55580f9c4eeaa7a8e9f4ce86a56e69b3e9743a5d4cddd4258527d249a148eb59f774bb86914817efe4d1a74bb2d744fa249970e80373bb0c73672691707805c46243531a56619c66d88921a94798d3b09b94a5f674f13451523feaa5788b6b8e78abceada78b3f22e24a71b5555bb5d59caa633f7bfaec863e21ea863837b4d9c08a399b3aec5f8ed5e135f77a3a9df0c8863a35568fa271e3a76be3e0147bea7c6b5215ba356c8aaaf2dc20f6d8c597b4266753a3a0dc2d4ee1d2e648241cd6465ba0b0e243128fade18d0c989736c37ec37a65590c834bdbcaac9370d9caa71e285c6d93464d9dc09b058190431202d8052bfe846bad44b02238c5d22c5e55022bbe1cf5e43ac576165fb259f12a12d872d45349281e6cbcd6787da813426992c6ebc39da903957ad979c6e7dc31faa135ea679c70a31fba23ccd11ab5739453ea3cdcb835a7ea542895c6ad527274c79c357678dde1658739a737a148a932cca1aeaa61a857294d76bdd5fa4a0557afd49352a872548e74723d5de2942b0a579e49a396a39f3cfa6992e227b3d78fb234694741265448d3b09afa896734a5c91416730daba2952358f1a5880bd5da34149a5f49c430ae62dd23e80ed5f6e970cb3027d7cfb8a52b97e14decbee8cc14ca386fa19b08c3b66c9381473d4dce1c4e2b7e927a545bd5695815671eefcc3060e011873e38bcd2b00f8a9d7f71bf1cee872f58bb17fc05afb8b8608b3bb269583d8b3b7ab9a300dcd04f8dd5fb1002caf5af3bbb86a56e2aa9546311232e9fc7d756abb42a1ce28ce3c79b3eded096c4cb25d5582a89f8882e9fbec3040d0b8bb77c1657abd50a97e24defe1eeb873c666b714df3a25f910af3a8fcaba25d5a5a41ea687a64bed29c84b9fa4d30977a4212eaeb8829a4a3f994ca20e9164bd146fc2e30d6fc48fa7950d158e8272fd28a849d4ebc39b26c5d78738a2388ab8ec7292cea8f0c7a78920e432040a732bf165985badc6873fe14e98f3b192eb432c4d66096a723ec1e60a8d68f3704baedd136ccc904bb126d727b0c02697a2935cbf1a451fa872491e555fb52ecde25d3df469b2f43a7bf9e5d1e6711c71eb3ddc39633bae188644d70daff8d852e9612ef52605a1fa78f1ae70d9f9305d3c8fa639cc3579a5c9d6eb439f71643df5162908d5595f5d119777bc94d46334dd72c4350dab17ff0a325efcf8d343f1aace9a5925e9bcfae9e24d434c67e1d5254561c7ab2e9e9ea4b34a342dc9e3bb2c8a3f8db75442fa517329e2f21b6f79251b2893e41204799cc9e3a7f8f1532cabc8a38ab766d63d620408b2ea338ff7618ba328974bb2eaab6b8428aba8154f6227aadea93c9ba7d364f87a0f0a786b924a93ddebbd9eeae9c05172e02865b53539bf238a95477cb589e2bcdd4777784a41b065a8673ed4c33a123579bc784551bc25cd92591fef8ae66422d8b2da464ca534acf2744c2d19c1da9db1f2e45a6db58e39204dae07eb5d7202ae1fa8a4cb52d8c11e854ca1110018000000000314002030180c0705a3018148284b92420f14800c8fbe5880541847494e29650c210488000000000000000d0001eeca73000074b226b10a76da5696f1a6847f414268f96c5b45dbe27df3c6fe8f9733f0568925615347c77567d043d29df1c737267b6ac836b2ba37424be6f7877ddb3a0c47e904ac215bc402ab38dc9d1199e8ab30902179f21502f64cd36ccc2051e134f6207873f19a78b64af87ec4e8c0c0c0b7509ff868cc6e54c744824dbf1f22b38f9149e0806c9d71d76942c08b83f8c83b556700c247ad79e58930aa684cade3dbd44ed1c0661702440765e2277e3b19ba1713e9307dcf7be70005c3c9f53b8025f976487f403c1b31072f0ea59075cbb9815ac1800f00575a175081a4931f8b4018f4b19435c09aa180f9861e41fceb0836b0720df3353d3d9fc03cf17a4483fe50e8cfc2d7175fde6c19fec8c854572fbb2d767f1fa4dbb2156341581b83de63fa0608c936ea790554432465724e6c4bd4a41c4c1c6e2b3f466b32f12793781fc36b7d391de27a33d105d44c561bbce9a6d7150a6ecd84266550acd17ced23756b2999c16f42564c546e085a6b52cadadd6f2cf3f4dde5e60fd04f539e8aaf56a2323a5930835df17cf3cb47ba59eb29c14ee00ff051d723917c4b535a49481cf96e26b20264c570ad9e2bba844be79162166f6d69232871107818550c4a9fca4982e3428ceb812bc65455b5d35f857b5fc7184b5b315c62fb98f6667fdcdf116dc564c11534319c2c7a8c535fb048fa43e141a1834ae9e80d3387be210b5cb66258be0323b212334f2abc5c640458a539021b7e269859b662281502b9e0cdc5ba01303162a231f76603ce6c50163ac4d72716115326c6522c6365b88b8808dcbac3d01d1df6a951bc50129b6b6ef54841fd963955a548ec21b6aa3d63a140b4009fdb6eb8468556d7984188b4c917825080c805743a3abbc19b0becee7b62dcc2ab34e20a7902e5cb17afdb9bf7b403b9fea3707b51d176f0e90baa33a1155d5c70c200976ca8c0f9b04f4deec7c1a0cb5912c2764b59668ba02e6d391996e4d1d786c1a01b5a85e5f82426ad37303ef227b22d21e8122e40934a2d6094baa31caa25078be210861172cec963e1611651549b28f9f86cfd6a7be42056677df66d530c9821e1ac3aad3e21a0d09818d36149bb5385c48452d1fd724b8c4b728f2135fd435ad25c3b86b3ff2e14fb4f343cd901fdf78b6cdb50bea2a71d879161d3386bd254731aeb07ca4e721503f967a5f87a40e04f763d8a3088f1d65256f3446e2cd9d3d14375f1922453967d3ca099c8e465847d111daac2798f78f933640e685d07c57c80e3a60971f40c0b4c0f0d9c4fc3860a4e741ea6dbc74fc6d475bff63f018f4a451eec7734e5d0965915f358fc3e344ad128436e0be139ecd5f50ad190f0f0893282dc4df02d83e9c12797608d4c4c191f70c6450e84463abd7fb12841285e764ba82f7c5c939a4a4469ed94131abb46b448bcad27b6b1bf21b281ac3ba804c2942847ec3db446851594a5bd2eda6116a6f42bb4cad442a8c7913b8be1a6c3fd809b3470fc3924ffa6780b39258f4dd90816422ac23e77424ceb30b86e0125ca0821945595fec15d0cec26f01645ce30297a6359800ef9e24cc147fddab49ceeafc0f312dc3d488dd9bfe4da469cffea88ac7fd331effc5cbd9141f98bb342ba863c027d79075f98cbc745e9589c1e107bdb2bc23eba62bc96e763702ab3aa08939523543436433faf75ea61714330bf5c124838c2450975a2a28aeeadd3e2f92bd97d260413dd2aed171ed6acc9639cd2df5ea1468187fba0ed64ec7047bc38ee0e565f4978ccab1335712fb647f0caf1c02657a1969916eb52a35c847975d0eb0f957b61e42813d7b7f1dd06113620580d30b167760a8b79244f12c8df6f6d2f546f6113c39dc6c2ff3e5e1537c36e49c05a9af70640122abec97849334f660bef62bde2267fb31c7ab31c462f190a4f5efc2a2b17a85fd6ee90eec4fed57b6a26539efe7d40f1a3a75960748fa3ac4c305ac6118773a9fc7f7224d124a305eb386ac7c338e56c7614b9c13866931fcb3b58ee256d5aa76b54050576fdb4b4296cb4bb076992b6310035ce4216e2d27e14523c34cb5fa6e680901bb3d227a78fcfbe5f037a529220aedd2e03ef4567096ed382928f73eb2931faed5e43d417eccaca2d4a1be80d46f2ca12892f47f68473fe2156efe03a92d7f69d685bd63e771876230a318ec9068ec0559cb4b446564647a1745f9b5ca60ae60ef2a3a9b4780a2508a5b2e150d477ec3afedd1e5599745598f1bc2cafcecc2caa66fa9415d40b41bc1a14beb3542e52dbfe56dda22632b838c6e47aebdc3442a7522d25d72c85f35d5bf10d6a004cdb83886e942b4b3d4e72972a33bcf59d2ac76c820c3ea6b1e2510b5ba3f9ad336a9857a89ad6c6549ef15787b3f209bd227f78175c30f0979d7b5347a6d585a078774cde506fe800276fe825b557df0c6dab14748f197d001f38438062bdb4766b81ab92976fb93aeb5cd530e7ad8fbf9e07d6f5ed0a3040524d294cf4875eb9db4a9b5f7018b726045b096257c4e8d814ce72598741a16a8530f788cab07bd17813f5407059a16be415b5c963b942e81a93d9802d2d3773c15e86498c30aa10d434a7eb5e66914ac3ad54f4e553748ff9587fc4e8808375cfbbdc7e06a731cc8e42f85cf45fc35a547e2d5f233dc50a7a2fb8117e2f00d24e48c0b8b1c10e24bff3b2b7d646f7297a177faf1d9ceb3e33c015793f9701893f315c65cfcddafbce2555f5b80064678f2185a4dc964374383292076dcf1e21836adb1f6254d271202ddcb991523dc746d4854b64a52e31c6d2a923c287da61e42d9e80af9450badfd04ecc22a386a982a5e0943ea67719d70286a53c2621bb65b0dc201632e07756ab0c4620a96f78ddc781a3b997f71cdebb171e33d9d5e84f793bf8ccd2e88632e6c5b2d7b4b612a47f65e7d6dedf5c7e6199f69d52a3fda00e96223a7d839a51f810535d12b13c4eb46c9e1d6f2b2c0e21dd766a8f40c268538dfc563a7f7d8fbf1f8aa90e4c422b82ae440aa5bd6c3b5f4d5e769ae148831436ae3e02c2414f88a3541a4220790191d9cbe11314abd858c7a040516da6d593a743f896c82473e21d5d9dcada54570934ca33727232a07b6f924d3b404404ddcbf51cb7869d4d15e33119d281487a5db97a0ee4ffe5509dac33fc531998a36aef72df2733e5a236f1d4b975092593dedfdda2f5d698a6de862ed38ed97001599eebd30d8490b6422834edc1bb8151dd0a8a9a721de7e2674bc7282bc07cf22524c2c8765028eb9e58c983013734a492a78f89424ae08dc7aff683f16e568d7da9559883aa8374d660f71206e8b420d2544e1c4c02aff95855b3df3fc0ab108e2067647a09b9ee62b9fbe4aa1d2836e16b6fc947547f9b12a1674105271376e86f6d1aff44d91a98cf43fca55839b9489930ea844b25b7e2d64c6fee100d0906d710015b67e68731d7f47efbec6cb23df8130854478090a858fdcfc173ea8a2937241e14a5dea842c16835b190f5e63c584dd423aef708d72fbc47835f03738bc91c337ad827a09f7d8e216ebd5ddf1e06a5f2c363c5171f46445c0a16e5d8a62179fbe0a317c7542b8c8967358b5e72dce71b57485b4b2120a78f40e0a3cb8ca11c93912b193872d615bf4685c0280a993030d12024404d770b4e5e60a6f4cf278cd8136a3b932bdcc17d351246d067843c5e846c483dc928fb4b14f0703d7ae13c7be453faac5ae58e91be6b956b41c15c78ad47484360f5fc30b621bc14bddfdb8658fa67d27dfee5fd453526a2b9438dfa7ce026f0a9ddabbfd621583a505614596a3b5536eb9de2472b4b555943c42a52c2f658ea0a96a926f7c5c071c065fdf3108c5b5decc20f9fbfecdc7d421aabc18d1236a594327257ccb81ee419babad0b9bb1ab25ce504b945e7d3895c32cc09c7af66f413b7d75de4895a0648d5e3c3c8287dc2c08f6fe502cff7c53de40e367a2389c83778bc3b114f9687deba4b994429eaf2a0b49e18ecfd99811aeb1003fb163773d7771150d1fa51be2f276abc49046dc9ee0c1b203b2c2fd9d86801586b5fb741526f0fdede126741003eda0fe4a9fcecea2582cf55fba2858117aaec890cd473da48959e59603f9e65f2aefc2aea2df07285e25044af291b8afd48d01f2c3e707690b0ae635d564c347d92ec50d002c2a4b10d303ec6a4379fb9dfb98a123cac66842f27da0ef4d6064fe18aeca8a4dbd57bdc0f4d7bcd47fb4ad1fcfe2c74990686565205ee60aa59084cf0c3695c0524966e0a82c90ed56d882a7098311b38bec4434adcd82d16f1f65b0d271bba0f4eb91b18817c17840b07c5335778282cb673abb00daa016190bd260e7ef8d0a98b547753e9b02010ce7f6c1ad70115af4ea1822042816cab31ca862537f235540a2fcd434417fcdba7b61b53a8802c872c99f4bf48d186ac299e8f02276edfc4c89ce42c4a8388e9ce626239730b69532259072011359e7174ef5553d8b05d52de813a1b3a1771f1cae1bf7f35f1a9448b0870b994b5a9356b37a3603a70373a4fc668c84777c91cf9e9fd6be3088d905081a419921d1b72e3449b1d58fbf0a19cccb32344e9b56d7537ee8ab4607b4dd3321ddb98914b0187149929fbf43730e946a9b1619a29f7c583667330543addfa0d63b1885473e96b19a6a2eba5189b4e3e1b3aa427e25c916372574c054fc00737c4063738001726b6f00d786fc3d7692dfc0cf4d6ca31e0ede17720ac3ad964304fd277745ea8112824edffe8f4c942a2c7cc5495fbe06ac384ed62468542d0b5840cdaa7119c0ae599cfcf05d67b11c1f8182877c854b60ddb81863e542d64fa1fb90f023e2a3735d46f1720019f749e840a30c0d1a2c65273238d4c5ef4e44027882411bd8f2bbcdfa05df0b7be69077f30ef78ae18b33b560e8eac744cea2d1ab3e7d525c1cbf122098afff274909dfac936fdc3fe1570ac7fc7b4b0430d4fd5910885ddaa7e0ffd05aad5370db9090654964fc41c2639c90e779487e23d8974df244f122adcfb3941746fe352e3b332ae5e610ef34a543df8e61721c178a28cc71522d2dceee454cc819c74a0419776fb9c1fc84fe6349759802ce833f8b2983fbdd5cc3319d7f88e7a98644b00cb202db6fae4d081197f3d1d4e1afdc6c6ab6e3b26445c6214c003447ad12903779a1e668166fbadbb23e9f6b74749626d48b8ed6ddc957ae33816d9d173b6a381d1704ad656dfdc773c3c3ffea54b51a911c62a8e232eedb2910f1f111b5c400d08e70d87b36091decd3de88063616364f54495be337e19a08838f7d10cd3d2d69058dbeefcae77c6939a3d1dc252075b0e76a2379238e3f023b8b78ebf0e4a228ce85f1c725fc71cd46669c0338326570f0c674370f7d80ba87606168957137ca03edd1e7e7dec6edf0cc6c08bf36b9b884db38fcb14a764c143e81ebc6bbbca2c5e3c036cb639d9412c70d5a1baa9394c536068e27d1bad345e958dc74fa07a2079aa80b04c7465303e940c6f76adaae47f382a1410ef00f59e3f39e05a52c9d4b978c7010816ab268cd1b676c593084381c24c7afcef83b977c7ff99d24917545a90b413eb05e3c51cd36ecea39cde8900e4cf8481adb903e1e3c135cc09b496bdcacddbd633c94aed2d0bcf452616a2fd30e859de105bf627d9eb1c28c4c9e29fe2b701eefca7539e462371c9c5373634ebf6ae3737095b30365010df0a28659dd2b2f07d76d693b46dce8333b3869fd22e9597e2ba24208fb058177d1b6eb7984c71ea37f68553bdcb5f3f706702e64c804edf165a3126c57349896e8e08a39a9d305efd80175d7873c8f0f63bbe8b29b529f25ec20a1841278c5e51bf5b350532b67eb85b02e7045f901f2f9790728412ca0585cc429f8a701409516aa20033d7fca543e87c4f48989c6f9217405848686dc30b3b39389155a02862339747e902fac73e98ef1cce5dff9fe9617b8555e80d17ec8f311e4e95629dca0adf970f4fed6bf44df865277dc33f286a1f39b73f4b201f3653a8be38a364b6da633579186c27693bfd1ef0858627d701dbdba831ec45c5a012d326a397d78509b47ee3f2becd24a833f2424a66fecaeeb7f3c26060cc55234480d6ec6fc7a37b28e36df635943ce7d4895f383197ce4fdca545c590f70b5f368518728a8561887d4d5c2c03bbec8b0fb74f8719270892162b98033d3dc82ce0818115c49b96f036d8b6db966476725f6f9373f905bfa3470dc5c5a84f45208d000a2f329d0cb47ad10a24f946cfc5d64ed59c25f4289debc7c838c7c4768828c429c9900326d71d51ef6abe12ff33977ddf9d5aeb711e6941b730a0c6ead89ea07b2b1d0c03361b0d54538dfc62210fd76f46cf6e1d56b33b4e6b8e716afe547f9ba376ba562d279aa45912d16b692ec12e14424dd30cc10c6e0d8a5ffaed33e8e0db5890e7c41f8ba8ec63a0860b4fb66ce438c4a81646839c6c95810729637ebf944682026b13595e4a63f446c53d06a191f56e9c9446f7903f83299c435a27ca3656e35c36b0bef189d89a2b94ca719b67b1680f85a4759cfff5b420bfa880f5e3ae0c9910d6649a4f2b7390eb7202232848a06f0080dfd1fee1458cbb8f4a6e7af76059bf451204294773cfeebd94e12cfe7edb368ca1cd940fd5bbfdae6abdd7aa06f9efa966c8a388101c308b382d683ee4bad6fd080c53571310c51542729026ef50881446ae70e8e429daa2f9eca65a48ef719fc2e5d2f976dfb60b8b06ba954efc792dd7da9c4ebdd414bdbde88acfb373f8d6f79349e9ac1376e1a832bcefd5a13ed34439be0928497241333edc03c22c213c50845fa97b24930f9c15b272af193dd03fd0c4b166f6dd4347985ca35dbd0f096021e344c49abe1d95e2a5d81cc47747f1a713ee129d0798fc76a2443f7c0f60472cb0d77a8323997e8c0b5a3c26bb201028072fc74a604c4fa21d04a39bf12b39101a2f98a41d44eabc15705caad295f71d032be99166821eca6e514413542f642281d98f319a94978412039faad60e0d0ecaa929dc48f6ad1827243bccbea94e20246564ce607c06311047273a64a4eb08d0228314835f9063abe1b8b3ab0991709af0019969eed6f35028aced99830fa4a185c126f1f9500321f807ddd678d8cc398abbd1f6d52edd98a20c741da8fb0c0bfea16fba5588347294c7e07f31c1d9e34d2cd37380a40ea209704e04ede00ace30d420cd51dcb49d27983f8891a8ff5d5c2671db73c3e43268c98f37c7bfa4fef129955eb2f2e1bf5ac88322c20087798e2db264dccd05e4c24d961192c47eb520ef72249251f34974a4632c1dca639b1244191ffaa31dacba381cb15e63bad2f945b9a8c2dc5058a72dc5e5c0432646e72409bcea2307faa7939a79e560b6d13f1a1c822cf14e4c07b24eacd502cd8624860f1e1d9ac7388599f5b04361b365ba7a82b80d80339fd15c63e4ce4e33db3bdf0813cea31a949c3f48c37ec00ad41e57b0701d9663390f99c3f68f8c49055e17c8b96efe87c08295f28ce2cbf365c5d08342535bc2c0f30521bc9e2abbeb95db70892f77c6460c76411f441ea0e085baed21c576443bce4c221851b25c4c299a30ef820e6cba7c699023e6eb2433247bcf5cab8835cc8a984c26c5d837c4397f721c1bf2ec32def1e468a41b0a530256d2d96203b297048abb86022cf0d20abb2cd20a46d2840b500763449ee6e6f09248d17dbd27fdf63707b614bbf2889115575352239001437a9625fb5a802907cee48b93c8ea7c201a91078c9a443e27876afbc28e37218a1f2ae16904c435a060d14c9bd7985bee264f7f9307b78a63160d82f23f096e3db19603eb00264d201ab864448311e2bb086e968f3f42012eb510ec1cc207b96d00fe9208cb7a7e93d8094a435ea61137ddb7f17d082c4cf58d612f101bf87a174c7ebbce81ffadc50a6436c04640522ce940e825010390c890870245a890d0d8438dd8c2f986ecbaab4c7ea9fba253e8ef254a87f02c831a1cd02788d0c161883fd09ff8aba76b445af226bd871c16802c012d437807ca85d9bfb1e12f9e5e00349bd92f86e408144fca5b1c9e7a04173d0c05e1a2871b5ee0ea24df41264f2c22091ec5e7024929ca99dfad85b68258bd21ec9eafbda2dc3b58b48d0dceaf0c7b154abe86b6735559eee85eec160922e688fdd0a3074cde0d6937811e506474cef3437381c08dc102b8563d4c71a8b62d0343a7fb1cb1b6c0a9fbc2341f7f2aa4138c4ce698699f693d8ee423307a787140aae8c1a4dd4958490235aa4a9577ac1433924a28caf334050bdc5c1c2184b064000177462a2a96667539ee065649c4ba34ae4f117cc1010be0af556edcfdb101ae409880a70ec8f51bab76e5881a91a56da8d9de5395859dc246347f74719292bad8a4fd8d82a4d58d4127252181f4784b1eb27e44c34ebd17a985e1d90d83dba74f79556944b6711903916beef2e3bbb97745382cf90a272649a6a4e7bf8f2dbca91d9b9283ff3eaf2021401daf77cacde2b9d9f507d19ba604bc2f080e9d568a7be6232495e138ff301b0d208192cee1e52e86ecc4f4c04d749fbec4e32018751196d2bac703845858184aae23d32e1e6a6c2324c73d1dda045c62d976739abdb0a63be1ef964bb5c193b40bad0cfcecff7a79ca036fad6efd83a5020a9ddf0d893a84abf91b4ebc147197f71263a272b80eb8217568b8908ae10d2a058e635bb913356213d62f858b14b0a9f6db8cf13a42b3e74aa0a83fbe71aa5e09dd44df7952df1a5f3e7cd94f64caf935889e48a08b24440a3ece447d511ca930eb69e0c2acc796d5c1840673a5b5af9a5c3a702926f8688c58c197d2be3ab68280830f194fd217e341bc60f2a51dfa16b8af5ccb4bd90a307c5f6ee80ee120beec094f7d36d51f9d3a59c8f7b6a39adc95cec44e3748d2400a24bb48af8acd92bcf833e07e08eb20a83a42c31aa33f1ea186abd476eba80cdff55549faea428162b462962b4ed73bb6cb973f06db040a0b4ed9b063f04cbd51cc7bb01945184a967f4a7c375649a9e9e17e031c30598d591bc0fa832513eefecd259e6abe780804685009bb8dd0b0019b2a39b6ba4e785faf35b7c49cb4710f0eec6724b2874de8b8c8ebf38c28f6398efc5f255cd9786d8c6c1eecb83ac402609493508ec866abcf15754dcc854b5cb998e49f1183b5d883c64c53e16c0b74278f67058ba3612abad87f2af5c7612fa02e120b1572d875e6cd9e1dc1147c8c4970c9021b29c1f0dc7f37ead8470e1f1c5e0bda04b2c473289422e745fc49137cf58104e6232ea1d8367c987748fbeb520cc67c5f2c5e73df79520b90f26aad75ed5c7d26393ecb6e73865c71f164f62c6de1526322c6b510406019159277378931a81cf2ef51b1d6ee587924822a4063b6fee58c1b041a56b41e03dab1c3a229fc8da110b10e25cfd9dc2fc86f151ce621b51cb235092e9490f1a2b0c6f5b5bd69bf96f409ace960fd3bd73d29c64698edb7f4d789c09bdf8eecfaf912bd9ce38727c66762861bd6e7a4a7f296f946deec23ccd812c749efad9e5fdc3046a7151a4ffd30e4d0bcd5632a878bd9a51fb4d6ff7db16cc7d93e67cbb3995f731e77003cc5a914774ebf856bdf51cf5bd74b1eda9b66b5a61dcf6a89231a50d943f9cb41fc5205f1ee1d0974f048dde3da37db5ddf61ef03d19b52b27350a5d117ed750bd726acbfaf4b9e5dd926d0416558f4d6cd28060edc4737a64fe00ed80eeee517d1cd6ba0bbc4783b7b70e8dd869b8eac4ebf54b7af7bd45e4141754278cd0440f9eecfdd92a72ef9a9579bb54b87534e95f1fc4237c64080d689deca017ba23b44a389c66feabf9d3efce9cdbe49491d8a69500f03c36c51bcc68a0f68c2979d498ed19a33e7061b9eb5205401f8569ac12754947abb3989dc45531c25f2fa68c53948798dc8ca677c7fc65ca88e836a535f680246c3bdcfe738b601e72d00ae7f96643f27a35dac0236e0d938d9df780923b5f68139022d24f9c4ec0d736b00cc8226a81827be9a1a93daf67caf7b456ee18baa29554a621c2076933384f20de233384539c39bbffb82210216d4db9633bf364072ebbc2405631e8e2730232176638a7897d4cba38388002ed2e704d8199a8b3a6f62af9d2cc3d60d037761fa97b288b3fb9622e092aa34855834477a7e7acad2a53f1561c65eec173c25aa980aa4774231ec96948875ef8d7c903cee5f0e3b7eb045f8641f3aa36c8ed48fb676458423eb8f5561231243f00c3465421e6743cea7c47f102e3e98a5cfff0b18f15a5fedca5a9bd16dba513635bac8ee2765e9ddac653c0cfd796ef6644ebb037264b5a1533bb67d5fa5a4f17b0715919ec8dfbe4f9eb5bb89ea4c6b0a92599b778dfccc1b8dc318dd59eadcf405a5b7fc29ed6a403f0205438649254fd3ffee6e4a2b1ab9a4af45d18e3a79ed91c90e50de4c5017cc7be5500744979f86a7e7a968530cf1e6c46877420ad12c1ef48f70e842e376ec920e0320c952bec830ddd15349ac47e2ec1e344204880eee6d9265f0e7bda981430baae7e3cc622f3337581fb04f309768b7596c4799316812629324d1191bbc9d0635494caaba4a7a9994e429d6c4f952e0b2b1b583a66d1066b4b24bbb8a646a04506f4d1ed778c3b288c48d41c2efaa71b2b7d30b44c53c10ba59053b669617d8c7c0fc4292550dc8bae2f5c608356d85cd85b8c6e00533c9ca476d29d4362d80ab9e48cd5bdc3edd69ea38330ca75eeb54cd0622c469a0a671be79bac63f5bd939bfb1c2e8a9e415ac808b41a7e67510b780e4ee79cbd4f3f0b97438a5971a7f8d2eb6d992a1378360b56e0f7330fb27492019e632292edfcf048e6ef6d97c4df7745933b126553e6ec7f49399730b532ce72b8f9666ca5f41cc41e67dc66e2d40bb22fec003e01f03ad9f3944fe0cc43877726b2fb5c049c946d3f69967e05361fc7db6409185eb1e1ac69235e08a5d332a44ccde4dcf13660fb6e53b133b2ffe09055e4bb90336f106827212a5a8b20e9d5bd89c9b5ea96c6c722adc19bfa4748c5c739ab05a2f0d75583b919dad7ab333b44450e73b1b0b0760ab35b44000c2d5ae9d9ff6ef8a793c339f0ef5e545039f6c0790f4d2fd92bf7252580f0b641b779d9c73dc5a61d541bd780d0e4ed9f1a386dba1af486bc6352c8c9e2eedec88446e9a6e278cb8ad1f4a3e50d9cd34f3d37814e62b5242b2594906dc67767d95f3a8d4eec8d746586865e5dc94a00c531136ac152be7a9ff5e15ed21e94f2144eedd7c00853138923196cc7e1f35544b670baa5cb1ef261772fa90fadb60a6b714f3a4ee3f9565b152d4324e8150c05c90a93520d9b8fd9d22c02fde84836e6ce5bbc381952dfe12e24c7e0e108da4ba6889ae9758f226730277e81cf6a1525ae4718208927bd07c6b717e663255052cbea51cc082c740e643a3bd7b9bbb8e838152e87c2adb78cb02e5c2b47b84e32c3a7f7a0705d531eb11d307be7b46cbcbc17f7045ccabe2ee9f6c6469d85380b8ebe118209b3dad7d0a4489dc4b4691629acea84f7f4614f44e52b7b425bc338b032473a965b6c1afd6747d5bb296954663194924465729abb1846e053cf19bc1f58edad1d387a0a6b440582cbf36813e8f02e81d570dd52c98206afd9406b593096db972b106b323658421b60e6ae2f8120dd87ee3796c130d3435d48ea2681bec055901deda1b61092b152fed315608548f6a756557cff0682b57f4dfe7cadc1d3318ac2eb03d83062419f62cc8eeeff2ecff1b7669a5fc32e5a003ace9068aced3ba2cacc8163ad264b3489cdacd06980437022cdbe828bc77eaaf3c5251e27e2e4ddf387a68a39c5df19da97d2bbbb2a94922fa86fb202d633744b10e06f49e5d9907a5a40f3af60b369f0ba40c748f134ab2f3094309a2be74f0dd9e1072409e345a0f9393d598d765b883eaa5b86c9258e1713c176e5117748cc8ef2250ca75a17c7127023ab584a59500fd02e7efa7352fd8ecb00f827a086f2d2bd1d48713311ba7b722a749006a311f2fb709d68d01d46c47735fac2b974321ffe6e78c4db4d2c30d121911cc8f4eab01d193640e21b5a270e33c100db5290d45558c46ca71ca0b5dc3d106469e1bdcc34cebe104291ef0484eec8e7f1bd1a5131563d09c603926994f7f05fb3a8d3e78f3344f1bb2c89f8cd2a06f8ac5a21d25bd5b44047f87228fed2689f84932342e1201c11eee5e3eec15c532d412af663eacb0cf8760c250cdacb87b919816b3db17be1c8ebe6c6023da39316252d650a96d75cf50c6ed03d3759aff4881938d6ce2b4965f54232905faa144a2111f5106c72b016d6fb3a1816c13079dd3d7c3226c304fd95fee3edbf6e5da6bdbe1cc308bddb89e984a91935481c638bef79e75d06f3864645c116edaac7157ba7979001db9e6402e3cafdac41378e55190e61071426e8d9514ec07395befe42807638867bd775b14d966120f9014729138be7892bcca5265a47db17634599858dfe6f6ad952986afc36af8b7fd6fd57f392f7d77bcb2329420d1e9ab86b31850a6a702a7ac2667162b59643737b5b0600c05e29003c9c52ab9a6bee06bb239cdeae15a199554816969c0227675df7836ad41e24025dba2f43ddd66360d228e66fd9bfd4a5a7450cad75eb8e6c0378b2d405ae38d8834ef10d75bf236d41920a627f1722ecf56a1cd88edbafbb1718977b97d14e427f6d91fb1dbbfdbf5aa4d1c946dad8b0a9e31a5a2f5bb4fe06575981c304d711eabb73515d76f498b8c5d717a0bbca9b5c82b2d7e155dc57d094b52b58687c6949d19d15bee0a866bf46f3f57b0b5d184f415969a6e647f58742f42af957957e02e2555c726fb9b0a43fb2ec99e5b92556a8f92aa1cb1af40cf5d0ed3d1371b88ea6649350fa565d1538af6b3acfb874817858d3b1458cc08ba52bac71ffbe79a47d612b48b589ed3ba5ba9695e4d6ba0c9dc5ea67fc56ffa746ebabd4273683c721cbf8d6fb5fa0f871656c325a904b32f529cd1658506937f03a91ee48d67e8a22ddd606ef1846666f8f6d1cc919f48fb72f8f9e54083fda050dde5d972c02632bcf3de8d279c36c884bb41c5c4de8cdeb3245ff82f37bc46bb58247b97c8af37b26a5e6afae2195d2f475c19a4ebdac58f651a7ce2adc78b0061858cf96e0998759b201c3c07cf8ee8c2e568920523181cc9ecf80e07d5db4b8ddf10f81b1fb817ba7071f50d78f2d85467cb71bd450fdbb0d68199e9e3ee95399003d3e45ff83c48bca28310acf9e114efd77e91b66131cee0a3a8614f15c17c7fd4d852b7e7b01a593c8b369e157109bff84b3de7a80cb7dba3a4b1b286bd298f360252c2d7c074c6df2301a2dcf09ffd5a9145b8608a7cffd3b9174e93041381a9ae73e97102c7f22cb7017c1dba0ef95ec06183456cfda945d228a3fa1db9e6531b83ba0df568479d216a83a57f3aa441608dc36048d06a2b508a19715d494302416d4dac163006da677cbe5ff7d1c9167b0a006a724758aba74140882dad250a8af84d37f590efaa2d4c3946fcd59967498b14fdca2914e4d7f635ae49a109071a5605502df77f22dd808216c80cbca0a2b55dd1b8a7398095773252e5199791ce1c1a71ddd4a93a6762d169352cd784cb599de64de9a2408594705c0c49e4efc456e6c85de1b16112aabe5eb548cc8ad5b6b019256002cee048e22e06573f843683e2b3ed1e72d6a2317d1ddf755e27374a60f5a11048c02dfe7a8d04bbb63e531649bf4f1448683d8e7e752e6c1998a29354605bfbea2d32e9aa19c287787e2c0ebb1c05c342910e71a308fd5c4b7135b1b28dba1a920cad92f3c9a2d3d83a9c87072a0ff3c404f788fe954593488b23d9194870e4335b180f26f3a7c2dc68bdc66c30097603548cb0d0c7604fd1230df59c1240ec871a925beb6206ac0d430e6fb1fc36e79e660833de0f81d649b05b08fb9087552d0fa431167f6a2dabf46ce95d04fb907b681a630404c9121062687680b358567cb7fa70b43e609c0fa4a60f1a3c8226a74de8e226b8a711576a843a4ea01297138a8a831beb000bb7f841b47fb4a161f3732c738e1143fe696dfe3a860bfb61bbad45f394791abd3606e525814f6033fa8311d6cf21a596344eae2c4381403ff689efa9dedb0ec3171b1be510e47c2559e99c503a225b8b97b22853a339ef24968ae39c8da7155ece57e6c1cc641794f271b212a047c5b9b411d4aeac72b220c02b5cbfd6df8a9c46a35dbfdd9a34873ef636b528acdd4e67e2117dd7f1c21ad1caad2c505648af941389e1d114db7524752aeb2ec57b6af01ee53f44b314cf2e1798d9e6325dc070d7e86cd2b4c21099d65574b4b4d1e1b6859589f29b9f56380729a78ebaffc82ad67d2e7091d473d075eeaf9ae409023afb945e8c8d0e562fd515bf011eea9908c83c9477da55004dba060bcf124ef3a685f622abf8d7a6ca2ac24be376052289a1600e8ef25ebd96ac22585f8a27c3ffb704cdf01c844efef4ce2ab42af43445415ee80390b154c09e57556a58cfdab01e6f147aec73c77011088690a192b61159dca5884846398adc5338e5e9b2f2ef96a438efe054ef2f88a47268ac1963ae25c619fabe301b7e20570b6fab41d5ced58f4c8e235b6b555daa2e2a6a4ce65656b51b1004f556ccc4a9922f6c11ae7feca27f7349d81d89dd002ba2b507ad9c9df59d05afcb5599b010b1cb6ac395dd643a40728e0963eb997b6482e84ef5ac24eb310150a04484569c48e3268a8ad761248b09d5f22b165919e73c4c17b45c094e7afd61c1d71c11976d01b1785872e4b346d0238f59d1a39bdffe239fc7994db6988e061fb922a0ff94b0432c2a4d49f035a594153b071a42249fd0af1188d2b5dd2f440a07db2ca33e02e318841de0bc830a4fe7fe429bddbce493d8127cb3bb9d6c10288af1bd927b2929af9004192dfe2f3ab458884f7f0850d7a575542a5205eefe2ddcad359e73ef404ed1e281c5bf01ac2dcc5cab634e2c2739f3e3e142528bf6217ebaf67cb775e0bee6cc0a8c764801ba9a5e9f7396d7d83cf9363b6ffcc27de1971eec68d08768307ec12811e52accbf85d4a046922de47af9e22f2c422527da2d591db9f0f54f11767c271dd9b116716d7af30e334c5b72f6b1e897e6a467bd1159528f81a6d54fc38e42a4c8ec1442eeccbad0128a27d39fde54d8a821c0fa9b5efdbe05a28a171d9ebba831c9ff5b06e5ec635f421a7c990e1d2d615c5e5a5cc3bd3843b7fa678dc4bde78a034ba95ecef0a5283c9331f20a1c961e445945c69c1af42b67225a1dc2c3fddf388f94c0808daeca8b9613989a0ba4b0897c8fd5f03e3729dc9a6082e86804f2855a12174c4ab2341731623673da847daa015ce244b130aa57de94dd3c5c0e0700b3348fd0fb9fcf96776a1be756bca181f331305ce848f33ee53738b7e14c1a96c06c372cf05f53d24579049b6c9404cfa095dfb06abe6df9cbb5574d987a40216211a2bc6c889aae2c3a54d8db89dc0465e8a4fe008567b9484288c8b5cc885d6b334b079c70e4baec3da98668e289b6f6edd27c015a2155a258f651e922e5d3d1455126f98600cb2b4b0d252b5fb549573290a7173845753d5f345fcbba4ad8317c4c082c5487c8c47adf238b355877a97c4271247879991e2c301b69285dcc06c24c552780673065d2dbd90a72a48d669020091a81863d5129cbd687f8807a5e88fcffa10ecc235685d010e092286a5a6564f03b9543a27d56b36740d6e120862bedac0c1b01702a0b200bfb663b29c219f161c088fa879cbf8fb7fafae1787e9a06a8cc4b7ce09122017a4766fa5da98a183d82a5870ec588b244d46ae2a180140a83bfe3f4cc51b33f749f07ecdc07674586a4fbf15705d361126f63cc0fd8dece5e4b600e031f8afcb71f2f2eb9f8c47052e0224f93c8164074aacbbbca7cb642e57a3baa80019b4de2f1350b3516db4419ab9ba811a8f649272bc4ec80d689a7412230819154f647864aacb0001ce138eb7cee9e17455f182007cbf2d94d812c9d1b134302ca2e443e3db2c087c8863a2f0b5c190a34714ec641d4ed3a2d3daa0ae689a376984fb8ce8a45d71e12361ed271ae2345fd762cf299c94edce388881008249856ae3700cefd884da2759384a13f6c15e97f9e55761779b7f9baab59bbff7114e0d88af4d66d1a29cffff149860340585e5c36443ec48e85fda667a85cb68e468e1aa1349e04a03c879cae965c8d8180044bc58d0968b2686b77d0a3fdd1cfeab6b58510d7399851c66401b5a16490224786dc38d01949984735c6ccc39910198f4ca928bcd3cbded2a0646df4a6a827742c3ab184633c144c8f79788f45453eee34f16760485b98cf8f8dc66696f24247cd40b15a0e450705db0c79e6ee3318c25bacb36a1c0f15a69cbbcc0c6e75425557c8688182db3fbb43541cb21769b98705024d5389e8b200f4df297f9c0c271b83526c533bdc1d5cf1d3354faf60cbd78e683b8eadfdc71daaba9c789d7f9d6ff8dac6883ddd117fdbf0283c36778ecd69d74af7e203b03e83a9f1dece237c063e95a568c667441b4deff6ed1d5f3d22c223611d30b4c9ec7bdf0f01eb1116b315f7450409374aa21f512d9c9ad5204b1c000c1ab79bbbd0ba28a2d68effb0f50edcd296d214e7ed4984e6d92c61096f0a512c02788e2cbba145da689ad3f4a1811858c348753b98d4306ffcf319e7ffe5d713ee7934d70989e9dbef77d5bcf253aa5a28abf68e662bca685cb204fed290b86fd951d913dd9175fe0994a8aef3cc96895fb0c34a7df57970f69a13fa64438bc84000edfa89695a25ea4b12856b6b41c60c39917dc5bbcf27e86350ff6d94a0fbc6546ecea7900523f7551a1aa243df0a1156c29be61a2f353c7ebe55d83dfab991b51d11a423f472f1efe0548cc5179dbdd7c08f28747df388c866c07e7e3d6d78a15b6cc258492c027bad80c956b22161d87379c4af53dc5117aae3c19bc8d942ba550f05bce048d0e5b0eb5f543d5a6ce6aaa4a3700673eb4afeeb966c69a4a1a848930dcfb2a4053d2143a9c42289bd852131d927d7d6ab9dc7a400f3ee389d189a74fa8faa7c6365028cf2e8f6f744164a29e407fb8f477fe1678a640d098885835632394dd420d07570333b792688b9a3bb3a9d7054e1f963f5d4be5a8a8a57d1255d4558c304141ab0c3f4d9c6fbae1e03285c0d6ec13af0b59852327b8cf8727d8293ecc835170735d676d35624ed0afbaa69427a364891fa251ba9c790a8b7001f3285234b791878176ef427520e5a59020c0a94328e06d80a4f263b0f95bb5e00b7f4e5d1e4fc9f1f1bc70baa52eb4473f46bdafde6d635736c5adb45cb50838a346af335b83273657ed244d33561e458a2d5f35b5a1afadf307a367fdc10fa0a4ad132c87920fdea8beaa22c8815bf334c1c11d7f3d0353f980ecb0f2bcaf2c60d827881f024d0c99266c757b38cae97c73056cf207bdf1fe92e61bcb64565781b7c28303093824ba8f185425cd7800e43830facfda690bb924cb08a8e46fb16d0e3a448c9e7694f78f7c0394b5753614e8bc8241bae40cff4bf40ee9199b7a5c244ff6856ae84a8c6e0c3f9a423e98b4cebfb2a7c280c29abe8a560c92bc19d8e25ff0d98ca1b6c7d0bd7af52472c0af7365d52e9cee4db7b06351ccb8aaf13ca1c8ec98486d3bee7b025da6247b966c766265fad8a3907fa0166fc2101cf161df01963d4eb29c7b4acc5226836c7fb0a5cfce69b7d7d5c31594bc3407c063d5844c0d0b0bf7fd0652707ec1e94611da6c5189fa3013cf971be3788f703271869750ba9e0f93555f428432fc0c421ded1e42514786e3ab066f5866e21111b7e041bb4d63c64bc5e1f0df6c7522bdd83f5b0c130975ef00c5e0fa3ca0e2d685b4399991e9013aa0d331f67492b9db1faf4b236ad241075c3f06eacd3d93e12430199085ce4ee720b3f9ac0b8b91bf9acf920baaa31156c0e3245f78c763c541783acd4587676e92531fe19eba0582722d61cd000f8930e16c74106c91e37c3249c9ffcf3e9176cf36a7262e1cba2762df5c26669ccc868fafd886e9a6566c67541ae00268347723b95ec3660a5eb9062aebe59195c0020719ac75208db1d89948aaf3ad4a1a00ad782fc129f3f7b3691a2535769d0159e3994865a8cd6b743de740c00dfe8fdd8e0a41214116abc8d6b74029dee033f43279273dd8a637b69e19e25b570bcbf0660414ea568ca1d7ee8ca19c604d03b907d540940189544147e79de4c222dfe63345839fc9c2e18dac35aa0709d297af41fbda3fe5ddfe520872a885f944714cb807f3c4eabcba6a2fbcd2ba8cfaaeb60dbdb9008e676100613e8d802cdd67334bc0913298a7ee45c8a60124a35367529c275e8336a56fd5cdbeba676990cba23f06fca4484e28160ddb452cf8f0b5ef4c9adcfaffd04bd5e8659fdb12a6985b33bc64b591e5f0ddd2bcf834ade6d2df001043d1f4394d263cd8260cc7d365bf89f0b9091cc6461f74234eb39a5d96b454f2f7fc31f84f36111ad7972a75569010fff7a530ef6b4314e72d2378abf30ed8513768298bcc5ff2801854c4af1dc022a2bc42bd1178efb30c20a678304ab4d14e95046225ea51668ce7a08ea6679632f787eab366b4c3cb448fe954abc5ce4b4eaf5d28ed52d0031f838c1cc87d92fe6d1404012faa07b40a74994102a8185083dd757e1c566651c36f5f2f6f17e0c2046184e92e00e8ad4023519da4d5865065221b57cb6e56db8a793e427640d5054d2d5f60617564157b625143f20a6b930f759e31e8b9d1e2a8459690976329b8a3235aec23463d71d58b2b15afb2e0ea3d6774eb9f5a4237afa05531f3e5a3487718e59939de563ec40438cf8d3049cbfd919ef1fd369111cf6bb805c4b116929d74b904a8da77bea510a4ed698c398ddc6f09f10c79dc65959cf295a11895db8163e617ba30be87e37059c7eb2e7e39b3653210f58a9a6e35e9b04db5049fcc312c3bacc943bdb05787967d6dcceeedeb300e941f9bc78f6ded25de44eddef386227d47f8cd4b9ed9f7ee87cf9872f73dafd39735eca20deb6d000b0bfddb8f2ef376d4c954530cc0430db051b8df0076406a7a7deab093897aaa3ad1b66a93f43e2fab2a93a7da5d5d67005c8bc2389a1fe03a8a45a8a7bccf1d65c488a624844548a841b2d4e4f95e05d79aa792254b855637fcb826679907f4da2f0fe086e311ed46cce947af9838f46f7d7df0857744e2b153f03c39c28d829706d2cd33d1a250f8c0a7eadc70574e07d60ac4cf6547c5444d6639c9583a919907d40ff67ee1cd20d93a63505df05abe2a8e4fd44a43c088d404435101a3f07c06f6531d875c1f0e480c26d53b65ad29eadd3ec8bf528096d461b881233215c90097f125ed52bd593991323bf32e466f1a0894c5634369198c144c412302828241c0fb165ff217a0afa52dab27cedf2d4eeb6a22c6a68bd955d0d720e8e8ff651dccb29b02a4bf5f7380fa7f791294a3a6ce081156df6bfe67f94796970859beb6c7251e751c34d8a5a315cbbb0f08f8eb5c338f85aabc54144ea6628c9d9a9f0fce76e44f9b2a6225023dc980c804f33f34775a1fe666650ba98476c03f7dfd1a5c8d34334b9de4cdbcb25bf7af29ecb69928a3743add23af2ea8b5c76293218b9e0d350ffb21e6067f011434ad56795a427a85e800bce0ff2e61b5c1a5810c7c19ef2aa9b24242b5ff3b65cdc3a66e3d5754f1e200e6ed863d3ed2ef24a18f0e70810386f40809a90f29aec2558b64faeb5ce39bb3af97fabbb7b419e6b499e6725897ec37a8ae7793550bb0acc90af8d393298b9745aa9579d9a7a72a20cc846d4f1dd0a28970eb481a7ee25b7fd3524bb4781db970bba497635c4b3b4feb8877d24102df1904bcd4479079f0226e99d4ea06020aaf40311c908be57e09f3ced993e384d64336b3314f1ad408f616af6025951f0dceb266430dd656a69eb1b52e7fd23013db520328528dce191a9838e1121a5f8ecde70f1803f1205aaa2a8211d23094203d30b958c414ad1fd1d44ef6a338f9b71149ede8f2bd362adf573a4ad68c4c8a4424da16f9493369777c7943165fbb0fe79ffae94a824194c0427068f625891610308da11ee6882c0d95c47956d6cd10bcfdc94793eb6144259c4d5a9b98d6004915bda1635e0b816f180df9abd4b456cda3ea75e40493ea843ce3771073c3b332998d0b580267db5af7467dd4aa7d07116ec18a6d0eb4fb4e5373f366fb23844a0bf1a4ebce57a12710dfad56888680532a22e5d74ec1743cc210a83c32e533d1c1dcc0e403b7c64b372c6426c6651d72a1f8a6e8a4aaf68909b5fd62ab5940a170ff2ed0a2edb614677401620ccc51a7ad97418c5a3ea14233a722cecca4db392726949659b56272684a840b0e040c770349e92a4016a49bb2f4c9455616af0d28af79b84254ecebad1c4b134c755ea770d21c197365693104e0a316c7bba0fa19792707c231c0508919fcfdd8b8092205ab94ffbb54569c6f4f3cc394d32691ca4789ca70472c42838f8ec0776be38cfb645c72c4a8ba85cd617baa2f08ea2ca2258825857992e3344ebdfc58ee856b7b80d9a2069306acd8c8f2d778dcf151127e87aff04626e505ed4278f9e40f9f42734efe77399b58aa08ca014d1ac971b1be343f42aec40caaabc8cfc048c2a1e57668a7bd33f83ff35e9d371c57ffd22e147f3470311e56acd2830fe04dcd14923ff91ddcce73db2caef1fe7e26a91b02aa4d9ba57ae00f938c8a713052581a9482dd3a3f21773ac89461c403012b98c3bb4a5b120942148a75e4e390e5e264b19fdfb66ab5099def0f3a32393c6f7197a7ba66f877bffbab60af4e8b98932ad8657639cd20afe34f5f030140875e3a0dc921a5da8c566d50280103f0d0489f30dfdcd3d3a728ce1f2a27d304c87373b167f0c31dce2ae8d7c6e7ed173407c931dfa480e116766ac17de0b72c4057842d941548a2cf9fc1d6c40bb45c20e2e5a95e10a908b54ada8802463c3b09f72a2e28422df44737ba79c917ccbd4cfe9b02b181e876d6511f0bc0684fcecdbc799cb839e4f4efefe62a6017effc98bd4fd7f83209c5b10a9b60433a916748a2aca3f4b4cbd3f217a880c3234e4094acd2fa3172c238a2bf1ee9f5b039101972d3b4f942332a0dd9bbfdca141cabc1313c6ab0a5469c790b1ad288cf5e3c9ca08f4b2ac2113ac0801695c8eb2d29421bad69ce029b7ece09f1f2a78260e28f732e6c263a510df17161b53774d60b2ecac5893926ccc38cf616ab40eb79b5ebec0a1016cf7f99b141d213d9027c01f14d0764146319a2a937b81787931e63c76df75b7108c8230bd3fff707c17818f689b8c73af3936008ba90f4d9773bb24866363315fbdad70c1b9e8dcad927a284276a02f3e76b84800ec13abcb2b391d44700d2d8e9b89e91924de37566f2183f5f4ca8c342aa5d9d3b1c319016172213eee1aec71e179375cb41d22cf0c394f2afab665868c4067403b7b8b62736237fa21ba61e1f414e6e7f7e581718bb8fbebc4b569cda7b9886d1a4236b4561b81581bd91dafae3d032ba3f3d5f2e71edddaacf967541bbdaef259c0b9c375864842a46ce762adc625b8caafdabdc97f42b2ca1ef2fd93f659f31539dcee023e5fa94d7696508d9f6c6362fcf1073c1a6df0caaf18ac55f3d611eefaa49d0d75004b13b39e8b93107b2873654ad9d2a483996b5c0d7a5480c2473f162e0a693e7408bc902c74c5b8d2c6a9048bb2234859736bc5efea845bca6c71dd213bd29861a5600d7b23ab044f5facca954497024e2861dcdd59cd3786eb8a2be4f33afe1e191c5f6eca2566dd7967d7882507d9c298387069bacb4be9081f512c7181ca238c4c3dc6510576428b0d915367967bf312c9b5474fbb3b7a78fefc6c1a6f3f269ecb499ee91ce5e18647bc2d2a7c5a32da5c18d02a799f4785a710518eecac4c50e93793be03cda9c57c520e98f9ecb2409dbbbc6d75418f9b79c5e546ed489814c88db8e0d1b61f016d1951d7683eb775947dd917915349d5ddb689531e927dab2fd093c180e0a24310b36ee791adc0dae5ce1d6a619fbb1765f64fba00181a3c36d2a4a57e3242cb47a7b5129e99e923d83003372a01690ed84b8060a265e8b9153d64a80e9d1a859d7a52c591658a3c6fd0a50151ff15422da7a35e990a7d5bac17e763357777d4cb701c991658a6f9d95a7fd590c76a5da7c6a4f8120aace428a86e4b82c947ebc9dbc56749bf609f2ace28d1e7c9e023b86d251832bc4428ca37b23a69940dca9771ae8ffe6c5f429e51b2d6beb994028c08c70e384016a5e024014568466f529f1ced83b7579e94bbc5ae164580206b2b3ba5754eedc3cd3957ac33436ad24026aec80eceb2aaa4581f9125a51da0a3223feba860fb0a33ddaf031816368ecfcf8b1b4cb5307349b9912991e011ce78effa6c49a1ecbc435d1313e60f10fbb7568d75127e61ff2c3aa9b636b69dff824aa5800fd841606f04cb74b5d54044e8aae703bd38da77aaec380c254cf7faa8cfa27864a5b89f8b1dc241d950d8e80d6a104266057258368d1ea56ea129ca97c8b6132d319634551410133f9d41c29883062263beaca678503b5ca03a7af4e8cd44da1538202258d8a8c2375d87ef5c2058ea93ca568b7297e129d2018517744106257ffab70843dcfc9768336ea68b4e3aada7ee78ec4ab6e605cd6bc3274102745fbc92c445edb12fee694a3fd720852fe302a7bbf1b355cc74b0d9b41fda0b9eeb17edca1a33d436a0b7931cb643d5e143a7281647f2e16538c53f0dab3186dfd1da22adf744777c3dac47c6800738250d7f24f308dbedf43836ca976c75907ac83f4e5006684e36f57fc21a983ee6c664a7a32156b992386f6b218eda84ac999a80fd96c7899298e8a72e5402b2f42f57331e1b5e8d2e0d6c8a2ca77d290d68bddefe5f667822d7b0f7637451664009806200b61209ab7014122e8aea4ad1d65dbfaaebb6d63b75a576d5be572a65c6a40e92596a5fa51cbfe204781bd75a8d5efd884bd74ec3001a80701cc6348b862699025cf873ddb1223e4920725304260be5f0aaff4f11904819221574975d372acbae9b766c67bc9a386beb9929667ba0fee18e84dee82b9185bd198b7ccb16e0b946021874e21b98cd64926f46bf12e2f294318be3db141b8ec7a2a7350f84d4a23419cb65943a6c190e0795485137df0001c872f9cdf0d25d10ed9283aefb7f10b12f8cb8545372d02616ff2ce9d12106573bf9f0a798e995cd2d31025b087dc7b976962873c4380811b715dc7216cf0884d95fb02396df428ea3ec758f6ada42c0e08d89d1aade2c6e79078debdc033c2bc797a40e05320e35c0141f56a9785ca84dd66625a6d44b656d4ca2a58e55b2e3a7c72d4afeec2ea7434bf96a4a3b5355f08e5734568a33875e4965d8e5ca74cea300fec5ec1cc88e1fe7d501fb1cbb1a662f0b79882fc2ac7be831c8ccf6a9c491afcf0b604534afc8cfc451866daa9f24fba2c7963acddf465929addf22e99d23233488e500d037997d0e247c0e7a3e56d00f2751aa9e5b979ca9253a963ded2a8a303923fb5d1eb614e210c7085a889e27b1dacf91711ed1f8c9660ce277a3896ef0c8012296233bd38772863690464b83c72cf27b615aa50f7fb2690321f25719ad5e2512485c9fa3ed8c34f9b0f2675170f2b2e5921b8d0b0ed65d14541d579eb1aa5805baa0cd88c670251d9085065ab76568e334e2d705031c921b0b50b54dd7deb07aa702cef8432291b1e4fabf1e41ebbaec469ab83a96d3c3b8f119af4217f44212d36a0f5f7c4ad35cd793385361ca2bf133854cc5563a33f20dc611794eeaf6486ec01a19a96d227c53fcb73d3069dcadece4f32b89a13019ec7d4209c7412bd3c89c35db602c61d6f9bb2221bca658e273313a80f8392ef818a9969490fbdffe96a0474b633d14440a34df892c667d486c091d51884e30bb12aaeb8cf51690dc86db2db029db5c429d060be5766c2fd5f8e4b1bdc1df1a34187a7cf1881903b592429ab9d67922ecedf350d5aff0c048a1e88822529f56bb2680d82c942e81187cf83d2ac1d4170967ebb8ea334b283442d0422720b75eb01a263add628f4dbda01dab7e74c402e29b5966ee4dd92a16a8ab8c4dce73b65f2c0e8b5731db58aaa49d5c1d3c49690728817a466959867e3afb8a9fa93a26eb5f18eea164204bedc25238b72905e6dfab05d2d0993cf29cb8b0dd0fa39ca3d3e529bc6eeb373b05bc7d9d2503c8ed76c6ca85987ec238f6b72aff296064cc68e3bde7d23330cf5753f0438ec3db92de20896f0d623b145cf6a853ddae1ed1af94328dd3f107336053ff3b059c60c915c7d9d2f5179c48987b2f4bc504d432f9300c1c8f95e1e173bb6ed1149338aa7bf509d0ecf1312a519b8faf4e123938e910b101f15912dc0fb3ed555d6ace8218331d9a63f2e95b05d9ac8e8c88b674242d8a2651107c9d88ec1455c048f09a6fd8c61181ed099e9743839c100c1f6569b78a07e7720ae7f69b1f04e15c2ce3cde8ae7093f358c45f180828a68144d8d96e8685ec81c422daef3c2afaffd5bce37a9a6653bbb680cabaf5cd6c78dab2c77f250b78a84cd9e594399f6937b133d0f2106133c41aaf91ae3e67f0c1c81d9c7bb5be052dbcdc29dfc1abf4fa33e180503d5b771b7ad0640147b6d57c983aa90920ae53dced41c6e51a3016cd05d358948bb24e3842d587e9c48769dca923c46453ff47dfb88c84414186ed89f62e8dd14483319bc9c290ba07435a3bd66f566443acb8d0aad8cc6d5b641e3ad39bca498e27233d30269c3a0beca6d89b82ee3f4299498830466fa87256e79933ba24ba7ab1b5f92c9455d965f00904528b8129019eb2cbf8ea0716b228817a71687cfb3d4bae70a51c52b2c6623f4b292ba805b4be8ee9c5c567e5233e6e61d578a2ad148ede1a3ef6ac7eb7b4c8be4334b50839a95c47f52956b5cdb50e49c2ff92b52354bb9aad86eae0725f0eb54d74f803601d8e255c82932bb7fda7ffd7ff4ccc8d4964f2accc1136d16c65070548fcd33bbbcdb48b2eaade13bdefd6d0192045c59ff42b11b4467d7177b453c99e13bea138c6456e7e1d1b9b99a792a1446af200582e10b693f22bef4b519c8d0a4de65022eaf05126394e39c11688cc1257eeecd612e7417188bd6931c898170464f74f6fa863f34acedeaf0ccab97d46c78109bf4f7a316fad1bc55ecca36c6a35c2c607ee4682873b123fcd10fb2651190aba60d0461b863c4066227ea4c035b84c50ab6f89c292d86712243eb28dc5d45ee0cbf0d41803f28e874b28d037420cfd630e2a79d25c0b84cba15eeb2623caf8a4e02eead568448d1dfa32c8debc4e4b11b377341edc65f1a52a427f78b586c71df0ea6b4e46b8c7d987ddd57b2c1cb4146682886afe9c46b48f64b75cf5cd18ac195a39f8d20ad64f09f10cf631be9fb9d21b0210f48c5ece0396813fb74683635a13efe5dfdcd246b188ad1d0b62649a263506200984170f0a901b9600195de41cd64bba539e1792f4dfd44cce0a2d07d0ffd0e71948d25a2cab76999951e76bb0552b0c540c24731e3de2870eee4a2a7042cbb077f662f30c19663729665d4393a106647626f9e94c0974e90a4acea584fcdd09629d8734ddf68c81a9c48a5332c81655ffd6441403d4ea01240518438fd4981eeca72348dc7eca60cae1fbfec274997670aeebca0e272b1216cad61c7c338c67f072d41d757140a41a3ef9fed2ba63913b92379c8100f6aec3c1353d2601ab67ae2606bcf22d32f84198310770c7b5069668d403f787e0e9c003dd0dc4d74e7696d13086b532a043cfff4ae7c626acf88eadae45b7c962655faa457fd8445603000a7a2c99239e496ff03ff37425b60b5f9f36d1b2ef9dc9535071be8c678534d6c5955dd7f72d4ee6bc097d004309b1f4a2930b5586371ebe0f23d821507f23cfa11b89b7f895eb9f7f26f95beecbf8916500dbb456047ca3b04d401456d852f82b70f96888fbbef2eb282ab04a04642f812bff00d9682f4ef27942116315c71084d4b92ba711fcb118578618e020f7941a7f99d908f78dcb67c797e37c6b2676a76a436529ae329aee02b6a7e8aeb5b1ea5ab04b0590af3ee56edb3ec2d40efd1a20997a64a9776187638a41e2c14e2ce3c799a4e8a6108a5531fc514266367c057f8615a366601ce4f28899abe7948d96decd4e5668d4866b356920665ceb71f27eb9fd9c5e026d0756d3ca0f41cb1f47064bc9ce7d1fb553f288e71298b69043b3112d8ef444e08ce45948c18df5b4180609566d8ad42319270a030474892c340a2b346962b55f5aa3daab63728a2fda20e070c78254a60d76ff373421bb5948a1486b72c1c4d940884a0507c753576cec3971689c4f582770ff4d80a032010cae2320311cad1511df88994282a3d4f1952de001302124b541422935499ecff97a3fa7298f4095365c69fcd749822d08dda4b20c7117f89c331610a2bb5f351acaa9efe3a8b52538f7c74793bb116057c52e4bc95b96166d2e20158518c20f15641cf198a56959dd2713a218e0502a57c972836ef57ea0c5de50cee03ff510a8287132c6469b58f41be0f5017f7271f1f0d8e8873fe8a7a55c361d0028369327afafe4700fd07db6cd092aca44c60c7e50df1b98e60d350d0286cba811a0e08d6c28bbc0bd5d0a495209925e849f563c7fb438cce03606a05b5d5148ac9605e64ef80811e56f87b25640b631bd4fd1c314cc5fd652b84225f4a7ed2abeedd687b076a0e9302eee67e79f864679457935d6f190cf0b0f079803b5ac6e51290e8e3e00d041aba0584d429dc1084d53621293f009384d4acd71b0cf93e97442e8271402d83840c60fe977fd9059c5a4c6359b47466a9396e8feb1bbe5fa5a1b695cc31ad558831a57a979d49dc000703a4a8b1c5086fd364595587fe163da46223973b21937e79d36230fb059b399c0bd62304bafa115afb8d9c0857f8ef3d335d3aba7800802bbcbd8a3f7cf79ef881160d25f4c649710aa6ac3044979225b3a37e057e33f2061b0c693412bbe9708d2a6471f7eb858b1cdc98a54933298c8bb73d89f05280a29f356535d42876634a45731ba35911357f0f69651902a8c7624fd0e538893e80dffa15f6d761c1d427de2caf2079003d74a04693e2c63a2b06ee561453fd01eb17452985d49062151f893016dc374efbf5072d167476e5318fe20750eea48d542d1f18afdabd1a7219dfad1d55bb1961a171898032df46f4aab5d0db9f740d11eb67881b0c6ee7001a075c6d38f08150b7aebec80889a0ca73161258e3de7024c30b271983a9cc0a90b5e30077c3c1c270e7f50ab7cec38d47acd32f889cdb373591744c61346706aa858e176e2a25e60327c377e19c747a5fb19f769d8d0019865d1c3e244f6848f792ac9a930633fd403e543a032dd46e717e7ccee8316d7898adb5310c9b8f7e5572714771879af1d2dec9542a575eeb24659e7dbf9c5a4c78141a15e8a53a3b02f8f20bc00e3b88297bd63ef6ec964977148d56a2492b1157919ed3158ad32ccf196c8cf22dc1ead0b2883c07e594f9f4a479d0075018e1e91a421d4c402449d66a94a284533ddaa6089677e3a0cf74387893b566780a6a797c08d5bb85e33a763f04527656e12a41ff84370c3e291c6c09a3a29d1c32b6e764597ffa4344854b897633742bd51e5da77e8ae7a18df11f414a5de2e4fec4282a1c4785795a65731dc2590b808283e308026a7bddf05cd19c27a862beba419f8b4ae0da78c277568da949782bf1318bab4db706bd337f9db93045148d7ca98ce658c1ea67601f3691709fcaacfe15e67992e8ccfdd281893925002e1160f088fc8861120f360cc2ce1c274769e1f4c08c794c7a6b088db41c7eb76f0be9a88acae4e357d72a36415236ea288b94b1953c342339edbb2a0b78cede7454037a6b61e1bf46ed62be5725eda776ac8a9f8349d7a3560f8113081c70de399eec7aaf78e23e45d420aee5d19e7576890468d311729e66935c0d9c055e140a04930520322ea4070ade7d0bdf09640b82e978bcd45e211af712f17c346121566554b6a51189ba662177b27d29d1365151158484f4d55a3bcc2f706341341a672b10f715c261e554e74cf300198035543be72b142b75185f58daa6b1a0b4c8ce1e91465c3e4a3af1ec06fb2b8788816e29819623982e0936c1dafb552997b90a5bdb90c929822aede46fcf9334c809cc916aacaff608b5c4341ca0f7420824ff56404fea39559349751ab6fa0d175d3d75b941b1ec279050f0c2ad0812fa7ece3d3f99315fafb3bba64fef581ab02f847aa5f818f6ddfd581dcb9d46b222da96d499ed62dff3bd46a65bb0d10b208f0bea1130262945552d4bd3e4101d0525d9b8cccaf7b003bef162456023608dd332d269c09309190005247bd4f16ae860632a36b1010e1bd990a75505f26774a83d6e0445f995bdf8f744757cc137567be726c6f0332346705f55f41fb7d8093a021046d580449f015515be17923f0c8578a63d8abdad36918a8af0979c64bca2d8d16229ad20d077ec61318900a7a24dac1d4a165e58dd44f1947d444b01d0f8ddf29f1f17025aa28ee09c677d668d7b99a990b7e58219398520a6bf186bf942b041c9c571205f609fe10752e80bde5993b46086cc5dfb3c4a96dd645c51d19a40c06bd4546a6d4b14514c4b6042e12a188e522c17b41d90d5d26fb7911deb63dcfc3a70b2af584a74b2c7b300314e9e3096f117188f419139ac54911377e07918614e3f1ac7c3dd93ca24c5eb1c3dc0cb95f8ef5fd7b14bcea67300e3c4ccfa81ed5410bd2334d03c5a3874af805a35e5ec4df84e16337da1b1810d6860b4eed3fcee93a0c705e098f57fb0ad1df3d7c8a9dcaeeb52cd223b2c1d9c558fce01daba9067a905c5b082f1d18f9d2f9699d7b118fb904ba254345ccd393f4c6158de627272c8ec4021d10de4948555c6a203398d9310a586efbfb78ec0201721704144368b4ad5299507db75bebcf52b0e138f5409520e1ddbe42fba543f7e5684c43282f57df2d6e9242371e58c609001221d883690b28a52d48ee09a782ceda285546aa072505e1b273390878c0119b95b7738264f85cc066711234e638f39843594a4dea39ae4f134b5695ca3368100fe1c8b78bb7478ef98414c37971ef571f9ec89b0939e9e53d38065bf1c67cfe1c96f12f81611901f46ad839599ad54f23e3067a4894d580b785074b0aabd6e1e2b88039c079320c2bdbcc6cb8eb8a5576fe2353a69e329cb2ce04a32c3fb2ba04d6c2de341329e4756e8c531bec6a6fdef7a42df82c18878a767ff0491412aa56eaf15d3fb602b2df15ec8b84245781b9c70f444660865e18c5b4b38fd047dc76bb049774ed4913e1e56d2dce598248659b232616f44a9b5b34afc177fcf94aef602caf40637ed370de013a2b9aadfa334288feb7268e09e104a277db6ce984017102f5d9813f77e0ef0efdb1c37c56fa38db1cdb973d642e1d92b6cf0b58534b4763564ec46cc933dc16353a526b483741eef9c2beda456d1b6e9856b76007a859deed8697f38597281f4c7d25b38476eb0941d6a8c431aeccc1e6fe9cc2231cfcd15b5596abb833b9d78320b49dab563d8be39719c4fe6d5705b3eedf181a7894a5e450018b44569e0d677c6a1f045e737ee68228d3f148a938b468c7444d50fa3f173c5f451cf3e75d72c20d98141bc4c488d35227073d49429f8a3bb08d0e9c2a20e4ec5dd011a0044eb1ffde4db09c473f6c3671f910f5777a2a3b1c0723440aae533808c622d1182ca9ffc3e8fe9f9649eb0a9b2e4947d4b892a453bcdddd9c9a73db642ee62d4a139e7d70283b6e6a343b1bb31c7c0877fe53f63a26ae1e27a0b650c093362be0a2f9d224d3dd54b0bf8da84dd26e36f5ce200100e8d2b6443a5994b9c627196ca239a2eed0a7cfc74bf386748bf5ff675bfd0538c10bb6f21a2921acb8fc8fd777f95e003ff74521a199e8e69582172748044dd9179401707fc9a96bcf0dfe359d1b3fa24f7b13e1b0361028094c8cf93d854263a22cd22bcf673480aa64c83d1d5e112af05c5168491cec53767759398e4fe005967780107304cfd32267fdda87629da6babf2dc29e4c861c6b987f5bd6a66d18e9ac205b8007aede2f3faccb0e8864b0a586ef9dc21cbcb6b902c2a601448c1c26ae889a93daaf9a3f9ca2d4ab785e5c726217de90a280851a73e7124c456c4d8c4a299a7d3250b74374086665659d1fbbc17a33e8ff982d9f6f3aa412646c7b5a8802519ac7a6acc9d231a90f29bba71894b0e6622424485bcded4571383dc45728eca83e5426c7bcae31eadcd23e2e336080ba48ea683bc0717f711f5f1c6a27fb2cf48f6943ab405f2d5c460c3484d644b18f64763663276d326e0a106a1ab2dcbaf8c7049cba7d6978b39c19c560f403ef247282a687ed77f624b80e42f3c259a5a599970b8e4b3c57bec37d6fe9cc1c5815bf113a335a26acd84c71979484035fe5dcafa5a1599bb08ad5e56a36e4f59fc050c2da3c2ef30ab6cba4169eb27566a20c9a2cfb2049f70424fa2c2f27bddca8de5e79e9ab834ae52569c970ca0b5b88293748e535aaf899152f363f4f18a2bcecf75189cec9281f6d0a3c79b98b8349a665edb4e415c04c997ec09eff2f7ed9a67ad5495ee930851850e3a6c9dac9ab097442fba8070ca9eabc6e85dd89f00886120b3c20441eebf4f7d8208e88f395c9f4c8ca5dc1be4fbb779385287c927547a1d87a110db694a0f416fed6ff035edad763ba21edb502787dae01af17de584ea0f821af9c5bcca94dbb49aa7543c24d38789e13c18ec60a81afc68fc1656b5e43769a6f63fd3a848dc7b68aeae6d9af207597e1ee47a601e9577465afc5ba6634a740cda081aa1f4a506ac6965e0b2147339f1c9e04bcb9c4a666858eaaf9ed118fd673c3caf732d5e91e50bef52bb53d5b74d95666fc3670c7bbf5bb06b661224cf99f24fd0242c07a5bfa70a5b0c8762fe58e6b64ce8a66130b68da9e2db5c3ceac4dad813f23800b556ee6c83c4a3991f1893158cc0c03ff16f4295482c8687d7e6e3eb97dd6faf7083b8974ac777411f3a25e60e0e09f8bf31c3a4acc46e1f30f2f71f6161e974ff1966079920daab79a516a99bc32a7515d0941a1b938d776a8f751db425bec9d3b247ee18de19ce11c5627e84b9c8153edafa327e16253f33864ec1248b430d5cdec9fd8aca591e50bcc184717d56181c09e8b4af8886fde208104a4a880dfae6a518175ae2014a877c8975d86379fed54a8027b96b9c035082ec8cd6042bdfc4b37ff4fca6aba17240586494c1c4b2320db1429d5701132194ceec91fbf2139d59c90210baa7bf47b02571ab30489707f97e837f73aef613b3f234d9360c1232367cf2746fe2a05e3bf9bea26f5368d688b050bf03dc83bb50649f3e9637bea52ca03a1de182208b840c67c93858cfd188ddb71ccab0af47833898a5a7c3935b691cbea49a3e778db67ca16d4cbae7438253291956d67ebc9335fe6330b2e84e1484f248c7da3a712fdeb981655549f3b538f9e5e603e3546b198ff2460dec97282e0b568900906753586e01d0b5b294c82f7bd9a09f86670cbe5664269760a26cad75763e1c7193a243e9c4586f032d3431e2fb6d8b809375112fe6693e29bccf5bb43f8f2bbec70d14d4e8be0ae2a8f3d55f52cda3f38f275bb5b0f4a7a38c6c81f5568cb976713dffed50aeec5cfb3b61d6724f8ac9a3ebeb6eb78843ba136da1407928d3d100f64a117091e0cce29bb053b301a47849a20d4b5d2f7dc46c455aa5b326d9ed8f5203998979f06f24af5f83c9088809572c2daed191cbb82a1d37b108eb4e2db555b8835095045e550dfeff6fa4ebfd3f7bafd5ed7a99b3954bb9ce5a1aa72641de9282e3a097a620a18113ab0099b9be545a52340840c4c0418b2c0f9405417d27887e2763caa1b95c8fc83488facbacdf1c7fa7092a133210e54284bf610950e6a4064fad8e51e913e0cee7069f958d3d142c3ba43780254b62c5ccf720cf6d61b01ebf574b6b307d5f3c17cadb52ff0bc39fc4d9045d6ff6fb7dbb2ab30bc3de997b4b19b1591acfbfc5af726cc16bce4a55f5fb35eb0ace234ab00f5e2f7e4109dd034d6c347fb8f4f95789905d3a5f9018413f660d7b629737825b81f4cecbc7248a669ab61f3390c3d9b154f07431795f30477b07a9dda2a9535e0ae5db186117b21f27e5c5998981c362e3fcbcae6b4f5f999adcd6e6bb7b7c5dee2b7f1fb982c2c2e0b8f97cd66f2597afd6cd666b7b5dbdb332cbd54485f1b141c448223c2f2f0c868ac41122c05e3f3c249ae51d410be18bdb2e572ed73b252bd9f06f30d07d53783589c20c770d96c06eb707960b56f90a71448af05eb98f3415060874919d10f465e904a4f76b99d8fee164e1e7cdcbe7cfff8fde0899ffdcbfc67b478395d7cbe66dbd3edf2fb375b3f9fafdfdfe3cdfbe5fef33f593d5cae1e3fa3ddeb747733217239fc1220b231068a254663b7a2b44d55b4bf9005c7af276c755eab0590dac9a6b49274af446502549b3b03703389321fc1258829afa7a423419680637b2fd288893b3a140f856a593056c0a4f57b2c1f80ea1d14cf71ed0a4ad7a872140bb75837816553a85a80a225d4ec41c9002a76b8600ef52a50aec66a5154ac855a09944a51a5020a95b04e8f650250a5832239ae5141891a5588628116eb23b03c0ad509509c84da3c280d40650e17c6a12e05cad258158a8ab25013819228aa48404112d6e3b11c00aa71500cc7b5282845a34a502cc4621d049641a10a018a905083072500a8c0c5f4b772d4d45d31aa54555456a8ae52510114bbf2cbac5a7a88405b72b410ed3229bfe44a2c4d29cb579612945e6e2594ad4ce52b79894a2ba5fa8bdaa868fa399b589e91ccba6c3595ceba683525c970310e76f1bb7e1d670efb0a7f445dd2d9175aade74b399f555c20cb05e32cf41a3b4884c718259c37375357191254c9e5c07efbbca0effccd6d7287569cca463685dac13824181b7716a4dbc550bdbd62bf3ad93aa7c0a2f011306f9330ef21b8b0f495106a597f4a5dfdd19372f274652ccd13b7bb5c9441a94b40ba30c5802a22bbe704243528261c32c499edf791ee86cb26c55fb31952a59f668f8aaf960bbcc37f5f235309f42a905d6f9aaf76f1cc787f5882eb6ac458f91cb5eafea7685ab2f98db449e842f770623921ceb6a10d06d85776a093dc1769f63c427c8600c28750a9311c1f708c1769f91fdafd9fc11bddb93cbe8dee3a8de7ce3b0ec9d2f4e41608afac3845cae7182edff1a893c377feb4a11f5b7983ce1983bed075359aa7778e74ede7b51b5d7b79ec446316bb78e841530edef3ffd13d46ef453a17e97bb92bf29ee23bd2ddcf75b7a7bda2705ac4a7f02ef778e0ee20147fa3dc99f036e2cc285f1bae6cf1b4e4c8389f34f7204fe51c3f3db63aa99d69431ec28c285f7d683d03137252919f36e14b52de10cf5143c49e81036c3726e4664f34f0d71c495103212c39bee4d79f9633b08e8b2b304065120cc043bfdb2ca9cbbe6ffc2a0a43b44b8d90c06be7e8a261f07b56efc9de6e562ff856113be55a803c6018b7af2339aa831bf63759c0e002782c24b9ff7eca0fbf1a0024b526d9faa24d552306aa8cfc48bff641498ec6c1ac2223567ab5b44238380d09961045125be2498a990279b771db9e103242690b31a61fc481aff08ff24fcb437912140ecdc34cf5695b94456a11ea58c709324032d973ee15757661eb85831b20a6eaa23c595e46ce9dddcd3d2bfe553a327e65a08bfbc3b3506850067a7abe37627b0c751c89782c2f108c83bdd9f687ea55ab5e10f54228d8ebd2187af27525314b54d1ac578ba17dd081d23fba57217a7510fbddaad783e11b76f8d5dfc537195906bf0784e04f88fc0a750d4b5401f9651c9c866b8c27eb23319b7ccc40242e96b204cde88cd25059c4df680e303c18db521d64d25c875c1d6cd74f8ff3e9ccaa5cffcc887846a783699bd83711e31b736aa3f43abd1d62df19529567a641208718396704550cd0a5ea59f1f6fe58389beda73c078b2820bd7cece8f2350254d6b9bfe15f040729c9406062e18c8625ec12ce88e8f177f5147b71298fa31ce28ee42a082a9a8042a985f67dcdd4b4b0310aced0459c7b88920bc4209c7a060cb5ac01dc9bcc25782216b32af500a3d9768906f3a20c3ecef1df678f106ee06cc1bc7d1f306cad19b454629297e040d9009da0a025da5203e91d362c142a662f8743105c83d0c17dcd77a497a22f9f830c9cf90a7a3f480fa0e001e21a07b299058dede2c1da61972b6b1804931cc9c2ca5e0ef867fe382d5d193bec2b476ede2d8fa6464c11c44107a0155121b60c7659c5d070792184efc643fd8b84950804185ce550746f49437f04c9cd8e46a2d8b275c894c0be9b64babc0afc058e0b149d6447c54d1d36d2711e54888103a273e89591c46b0d65526cdeab7a6fa301eb2a948e07570ec4a351746e2af72e5a9235260f890cd248436a00626161ef7f68cd486acbcff8c50e4ae093cd2faecf377d7ea3aa82f71be59c7fa1aba01d8022be2918dfd90c0be06b39d594b6d69087f2f3d044721aa54207ec5115c7d72dc0d2434db7d7de1a45ff3416f9f9f6d8cdc42f401dd41eb666b25a8258925ce35e85223642d9e3e85282f40319b9bf1f15e466c4c9632528951441c1e64cec0fee626c150402835f1b957386383a96070fa794fda2156bcb03bfdb9fae6424945ad023989391938268946145cebe9189e1aca53ea46c490ae4ca23915c45b0a9c30b794b1e876c796baf3a161e69ef940338c171569016664cda83b22197dedf85f4238f298e8e30f9dd848270e4f024683f1e4a93b104eaa09f59adc36bd5e7c1dcf214c63c5a0160dd13b6250fe7d5cc55bf460d943f130a754640b77603ed5d56eb8f9148a61585c2dbde5bafd62fa537f327eb12e2d7cf7ff2d9bd2b5c933595e4848a5ca40d836f1fbd5dae91c18c3c5e81396608fb422dc8ac4a9059f342166f6ee9ce42777d0ee1d8e939265c2835923a8e5583a7ba68f56aa631b45cc08006cd0845b7bec681742e71a088b303c92499e9ae0ed2eaecc97df737b9116a7434521236b109abc535cb987e5cdb6a6943d1bf33765c4cee20b3156e5f8d93c9fa8b696cfcc613ed758cc18fe7eb2dfaf74124ef42b56df2083b1c20b1424785ba94e70b1cda8ccb9b871704e4aa7558f49acd71210fd9174bad3f298b106d1a288f33b4f29f6f66e33bc045e8695533f8c600ce625058d9604b207930d2448d7904426ef1b7e8f41f2d083e818176f39329e7a7bfc6410be45f92373a5937435f7486028f9f0405ab14aa597c49921e132a6b356b737a3d5b5992a19df28138565daa4945a41fc8d1d85ed8370c8ff7f86a3e4c5b1c995347434467885132ef2eb1c20e5fb9f3ecd42773454f632ad5eacdb2daecf801351f2e33299c348328ced70394e3d48ea314a6659237be49a22067ab0678a0d4e9662934c7e06c1a19d9b6fc3e0f90bb879f849e3f6132e0051ac77f50bdd3cd2440f7f132cc88594ad6f563d47a495685670010599cb90242effda082a4771a4a7420fdd452cefc839a70012646ddeffb04fbdf4c28cb78a12276242e15d96af60f3fd61a73dec424c62724de2f065ec699c9ef22a78755685fe321f18f8f08ecaba9b60d45fcb1f0a9a608dc362f3524d7c5ecdf1dcccd00cc1e165f6524eaf205086cc5f630feecc80b00e71168888001a69507cd16eeed22c68b363d0cf16244c11b7ffb569e36860d53382ee1a0e4d821e39d0e0a8699c5203032c8781f9f2fa9ce8a8ccf9031ffa8b4d5472fe6ad7ec8d090b113e87badabc1d5a7d91dcfac8aa95b3b7470fc879751783f183f42801788c3ffa199b8fd0cd8089a3045465834b468088d224339726095b53111bd81e5d1e2584809d4c0292d17b74bb2c495ba08416e25316d44865c07531d529656c57d7e443fb1fd6f41fb59cb3efdb6238306766427a172ec38dbb4701066a603b00760b200f8fe3bccf22da1170370ff0de17cff79e15608e01c93fc4ca0f86eaecb9e8a3151f66112d145dedc85892a3e7a3e4c13258827faa66eab07f9e2dac0e2acb7f54e688a20ef768047a6df761dd020857d406c0b411594af728140509abed80ab5c4513a40f5aed1e070f335285509bbb6ecd1a06db3e02447097d71a3879ce5c4570e961ac15672dad5719f6193aa86da820f58f7007205380dd7690e7badf9620c9163f7602b9029001b45d5a237e2c37991d64ef155bda615801e6a6917f71ab82875c5c23673efd6c22bca7162d8d4e23148d2752d5b6b7a46e6818e4145b4ee48b92d2027fc4f4befad861997901ac250d3f2d22456ac781ad08c85945b03e25521a2fd12a03945d7e204a43ff193ba820c479e4ac0b6f672719887a1489e8df1e31cb3e8d181a5cde6e4011c9bd870d72f9d2128f75108c8c74a619dfee9fc842481f43636206c88ba2d6748a134dfc67e4e29922800eed5da3ffd5d88bdcbc20eb8bb81302852edbbcd99450860ce1549420ca6de8232b60155599436c7e3133ce914b542c19dee418cadd10c8109ce94c9229cb6b2e5ca2623412d0a3ccea2bc4304f33ca83fdb62fddc2a5c7b467eb8b42463e3bd16fc8e223de7f38f1050c79203f016582656c3d515ca8a7345a3f334ab08191b82963a85ad753c5c21128c518f6a95ce772304ae2c54aa29924197caae441d7d8db25b29d413de2c6f81e173519b8c9f6e151929af9a03c6f3173da73776ea54cf9ec5b4172bad0cf9afd6ed839bc80d688e31548f34484c3077254e14162b5d00d446e3b2dc0e23aa15c0edca77cebd210e9ae38632131b6b4749c2ea90f87c8c3301569a076753aff7c6865e92c5d3cd8395f0e4b07ee9d24ed3d20d76b8658c225cda06ab0d3686641274a6310d7eb1728c59fd075dcfec6a1a1be928cfe159bd4b9526be3bcc6f1eb44ea171830031523d4ee13d1b8bb634bea1eefbae3bcf93a909c6ce1c50f122c866fded90e6e32dfa3c418292a3efb0f3edeada586a3e302c378770cd8761bffe8796001bc1215e2325de2b98b0580c352705c0e9518865810c58688a01a85c49d1535120a6d7934ff9a461fe17e8ee0fcc6c21daea42610f61936e01b99101abed42644600b942f3a250740d63443cd530236c8fa60c65cdb3140b6aea2e7e459b16062101fb536bbe15f105404b95ee450a3032951a9ec8677efbda625928ad79656a8ea8bef72ec80677a04cd7a051678e4a2dd3da46a6c58e883a0811bb592806ed11b16822c5beadf56d552693b23295b3c3b978221e400bcc8af3d3f9c250572619f8dd57f8c1972fae07905e191f985a4e342037a3b6a219b6edca0283796508b5bd12fe090571eb3ec3883f906acd223a8db386975abcc2b75a3fae4c56ca82116dee37eb1749ca5297ac45fd2ac5d95aded39644e491174287941fe902f5b75fe9b75af9683beee650c023988e1cecdc785a98349729decdbba009eb1b1687a126bc5a57a9a7934024e389450016282d56783d49b55149f44924f498cad3154efc2741721923d8eb2ee423587ecf3196479fcdd004887e48cfd3de1b1f9397b275256c7fcb64d0e9a50e69fd3102d4e7bab90405665ac9349d245bb803ce55005e4b031cee098d56ff4914e70f1a4881a78101b626c250edbae314a797c94942250c708e49fe4768faaaa25fa37eb1966c7acc5284f564d5c46aa11188d8ea140dacf781e53310e9343d49c6e91cd6343d824f1ddc0355eb9279996877e6ea65ad4df90c53815accb75b55d77b2aacc626b0618a1dcf5ba374b4881620e447152e077829f23c09356a94343a8f10b4cafbedff3c2f5f8bd2e5abe81648531de33061027fe687292ba2e2dad67be9c5a37499612e4074b64be79a76a67b9f83d11fabe942489de6e431e82e8c65ca06dbbf9c0ae93eeb497f596921ccce74adf2fec312995d6c3bd042c72048f27b7222f8b48de29350d788737a921d17896240ead1e6915a298c73ff0c50075b5d2b955404919e6d9001513e2deb974da021447a54754632033200403be81b940d97e003f181ce2fe8f72754c3faf9fa78804c8c3075335fd0fa09582102486a120314ddfa2fa2810441c54b9dc128212ad0184429aa40954431cb188959e33903686925c9907025892b2c61d345d8cbf6fa88ee4bc88ba9ded8758f8e6bc8c9ca0c04e335c0099698533d568bbdea05394294ce3ae8848a5f5d04e59ca3e0bdb8e70d226fe5345478f17c96103b8ed8b9158a288295b0f0dd8b6e0401463f9023243b8501662a5a0f4f6072e7a032ea1797026d487e222d9c0a3d3e4dcfc1230dde6b16c67ffa6ee89a74ecef45b4622b47671093485eea12ff2a64703ebe00d6fcd914ef0b267e73259ebce2b8b11ab160f7273adb90372b22198f16679caa1b94d2d946d1366bffa2533c5ba0fcec3cac0229715304eece1b132e76ea231077205da0b968abb9b08a2c075652beb6a048271e791947a840c356a08977b4ac64fd146199270312f06f8d224521c022f2bfe9fbafab1920ed28aa03a84506065cee71be4855591b19400c7a00b32625599a08140aea4ea55dd753aef9fa52a42f7704e187861177afb5276c4415fcdd2a014cbc7a7b10cc2e42ee99e962a506518f89b0aebd4410788ceb1a5288609dfeb20d268f2f83934e81718401d57446d8ad5ba9697bf1d94705cc965e5a63da7f4582293ff1bf0c22af81e9b4df14e5b2902f4726b59fe932e7536b0b1ff9ccc71a382b07ea79018f9b477ad93c79a3357801cd8a6047c6122e26cd789e903bcf844fda6383ddbca8ee7f2c161a4e8deffac03282ac74ceb0617b5df1997fe0c5629455be791d8b7a985797207098348347ecc1e158e90b48208b3ba0c46d1cdfb6c3116d52ee76f543cc14fec689e00c42e747e9ad635f5298184c59660929a0f3d9f1b46504aae2f04c88efef1a2163f98a50290b4cf12e571508a3878ee9600f266c10edace59d2ab4177009037db24ee545c68cb96a640caba984852bb6b635ea0d18b6b6923cc01574c77185f3d97fa00cbb1588402ab66642149a8888bff025f5316f448e0481b257c584eb19e47738374083e87e155c15920529540711672e47a16e6090f9cfc80a4541290f80ef98f4413f18e84316fbe22318e71a3a39479318dd4f749490e2934721af32fdabd1a1db25750c5f0f206209cc38dda536fe29a509c11d270366ff0172e4ea9c81a04414cd6ff93223bd80f95674b01c8b6d06712cca24d221066816177da2c8a610a9a34190916527da094d18ac2e2e0ee8005cd5662f1ff09b4d307fde450234f7a1fa4247bc03747621bcfc23527e56e7f7b97680425185c48d1d47f6351441e8e6b0d3df405b887eaf55586e5142f33c83167a686d11e9bf4208ee8ecda5a4fe41b8596c44759ceaa4bf96b8f80f988b724e0d9bc7baece3dda5983ca2d149184480c44fcb619566d08156d99e351dc0781d80adf2b553d47136f96b9b64d839513a9236e30481781d61d83cb2936131dc37b3f825b9ec962d8cfa1d8495222432cb3fb33dc47243df6e4c6b59b08f1635bb172d89a08fca80e8e51a8e883fd54d9982ba081039a40371c5951796626161397b50bc6546097c66b405ceb92b33a903ceb4810a91d0890f9607e0bc267c6531d27ccc45615602e9dea58cdc8bd64720f020c88912366984ad8c43b33c88aa3a52cbb1406548c19f4e86287a1762c5397eaef00187245afce1faeef804f89524ee24faa7c52d44ca867543c61c3e4730028a2c4a8437710f9b4cf7a3d231b85a8fc6e2e063db9d90165341816dc2d4ec137ab6ac4db9d2edbaf87e170960fd8385aee17f5d7c8356eef7dda8160a5253238e14052ee5865457b7dfca29f725e4b2595f04f14523dbefcd9b3fe2e064ca7c4bf3c34871b791c90ae65de80edeb2ad0add547aaf493dbb3469a6eb97f42470de4edade78694ba7897061465076fbf20dfb8a43a9abb7be1727889a5d28c5e30633b883f2e3eb6073101642f90bc30e06ec62bb011c1308457b396c57cc380962bb87264c6f57160804443fdace41bd77a32915088fccae23ed73e0ca9ef04ec140ea4fd381100724d8df56f77c3073109c7159a0a65f6e3f64442f77d4a8eb2ab1b8de6b94abefbbdaf06ea59d0c7e8c2e5b1d4e768d15297fc3c18a8fa4d0a732c5829f5890e8a186dbb8131384bc74ba9e2abcac4f004d816753c95189289a316eb18bc500322655868699b7f8f941655585576ff73640d9092490229ad3a727c44fdaa4d6d91a8206084f0700314fb2a26fb6344eae14f67dc58d6e5e4eed8337f811fedccee2ded92cba9d9c4bb60827785a6796d8afdf300dd3ae66991f1f93e219ead00e9fef67ae1010b128f7a3eb0712cd091e9e31f597cfe315032ef1c371d2759507c85b834034a2ddc41d3634e3c40b67c21943a5ea0393e5204364ae0140fa8b4cb603ac990921eb34aeae0fa3b886de692db029350fb90b18a1f13797fcd9d2ed6b89180233622e803ef3102d47748dbe45f18889ec4913d43cde4a1403e3054629e2d908191157febd4f12a38ae9df63202ee2fea0b4afc3ca73db69eb66e72769f9407619d6c64645bdc330e209a7f0073a5e7d613838c0779d9e3d56b2a49a841d372886e1c17e089b42acdfb0d99b86c846c64e2510814c3faf421fe38268bbd0b48e29a5ac4a36a9dffac68db34c509da80ef154d2deaea1f721fb385bd3adae453ccfc2399aa8733da699f1e99701f286e6c135b9d2a3ad44b023df26f208d747422789ecc2881a8d907b99ab1f0306fa271fd974758729f641bee536add31af479389770ca8ec9ec492c699863bb7e3cca47d424a8c1546d41ef06d0772796a419bb7d6154082f8dc2dc5df41b8f836a34a420e1533e0a4229770a983829fa8117add35ba4c50edd26ab49e920344490e12d78c2aaf58eeaceeb6696d0780ce409055e7184fd0d55205a594d3a4de344ece59a380198bd6512eb6f1789f6c794e3f672d1ae31c8c4bfa995619081b43ba2f5158596aec98d023ef7df86a2699cb0a8a7655ff065e5343436f18884fc7b7fb335b39610b209d97bcbbd037c0d2e0ea80d25d476ee53729b9765509e11cab156b8c462d55a617f2719acfae911dbed9989471411672b948b6fb7edaadf6e2edd1e196c7f7a67bd3eb16c6153a95b7b9aea209b3add86f2b36d572cae2e68cccb216679f3d5e7644f53cacb5bf993ac1ce420dc209497af1c5c7910bb8818daeeb25b797d175e1ba5b69be2cf29d54d29058e8f37c5dbf853e762e545cc51cea76379342fdef7d5cc54aa4030ea9bc762d55ada7e6a3579736bae721c5747d0144ac104b8db480a0cc5161855f2248c9eeca134d55a6f2e19d95ab9b3587bcce50ccc01f7b414ed85ce02c79f3a0d38def61b325cb32c93305ab9775ac9e4410c73a93812b1e94667c0dc566ff2502cb025cfe6c606b6d51b5bfe70af5b3369a08e411993af98d3f710cce14edfaa87f1226cd568a53f1a9130e54aa818572a7172a884e2625398d06e82297753b0a63a81372730303716c9163d8d58f447db4749bbde82366c2b2936c723080328b852d94f564ab0b127b8de95116c9630885f6d245bf455895d62c484be50d4dd8e6b8dd99e3919efb2b53dc683f14c2fdfbcec9c2c79d16ea5178e7b297915776dd44814ee1c256d422d047dcce91a6ccc2906f5530f2dc771db4f1e4e8d1faec2b897b41a58eef287e3eaadb56e31576e5ef6f22c225996aaf4a845673dfb1c8fec8d48fd7db4aa6eea3614a17e79410a03e6a290b67197daed31b7d620db41d57463abb5d61bb5e88f22b510f499b51de5e5ed9c6732c1a44f7f746e9b4cc29264b7a3aea5a8db6714aa8560b7a37a6c17827a359da62c9626af8fb0a8dbdba82136996e9452461b6d26506c8e455ab42bb78f114b2c926d614edf3e1042784a5dd5b73615817a55adce7d65f22067bd224ccfe27949e0900fa61fa68f47510b16cb5aa197ccb743fa6dbb453e6cc48463b6478137d471c9b341c4909402b6e84180e94d80e959205f70a7c629985ec2600d95b01eda3a28096910c2d009182601090d189a6ef0c85c2471c70555b75b6b3daa6a42b55acb1d751b4ac9abf5a56b62bd636d3ffd458c0b6365eec9e4f2cceb624ac5715bd7dd86325ba85ddb8579decedd8622b47d3bea76507f5ea9a64c5e0a9ab6edf41d44df42ed82b5d65aabcaf326d10c9ca42ee55edbd5586c5e1f5d61b7363a6a170403a6df3c0806a0ac34b973970c536401c31d57e26a10c72d695753214ac3154c255783da956352d3673ec0d4a4a3b712672a0282014330602aea656ea3512db01d6b57bd254efe402704d124205981294c4219948c20062501090bae964c46c4ee548aa624646e4c922d7a981bc303f3981c3cb2451fc50ec5c2b5a798245f302ab6c71c20e63297b950c4388971b803e33137c689cce14ecce10e7d9b6e6c17c5021bc3fb01c303521444b6e863bc2145161e21f19ee88fc2a48dbbf5be6481b4ba8b6cb572b1ca5eb22ccbb26c95ad562b96576350e7280ad5d88584f9d0cb2512885e4e2185289551303d8adbdaa85dd40c50e81b0b5a5da8698a0b24e09a055cabc0b5d667f31b8b4395622dd5a3aa8b7a677f59cbbcfc6ab57a71a9808941d1c3781bcc515ee4bc98c40aec679331d806ed46374a8f4a8145a281a29d981f9a94884f76626ea3db48be626e0cea7107e622893b327ffc912d7a94cf4fcc8d01c53aa85b25c1d2430c7112ecf6885197309944faa0bc86d29f507ff433a83f5a830eea3a4b5112464fa6eda59b5b0abc3d3bb4d17d74996716e6582e13e3c178909ebb190866b919f5ee5d47bf79b3bfeca91a58eeb98d30ed206a6f10a6700a9e58c26480e3690b810738ded437c0f1a5b9011c9f4ddc58f451ed3ad9ed7487f22561b2451f81b084c9d7a3ddb27315439bc5c427fdd1c39d188405fb641b0a03e65e6f2dec679303e66e96314c256cd32cccad17d6593643af1049d4d211082ae8a60793df3e52b68f87731c32021a8a3020a308337abb724b8123ec4fd36e36af0f34dd681f58337f666c49fbf4f3847836394ad3324d7b7ff1b2ce5ab5ec534e0cdf5168b1570044822050b141f67399c462599b3483b636d8fe0a09b6c6f9f8291fef64d2a7f929679491d239f1bc31ce0cd65fcf9bf9dc2c09a4252d60303c4fc7c16c9eb8c47dc0c64f589c40fd451ce3bd93499669f31dcc62ad70c6d9f424aff4d772356427ce99121ccf326f96a4bfcc2783cd0c36331f979bc1329812dc7366496491cce34e9f9ee9d3cbbc52374d45646b288216b258c30bc4e0051c9ffbe76be8001663c8a060023278610d2f108311ead3f330351591f920054ff8422602272401890019144c4006231c2f845fa6900a4f28b2219bc04416afaeed4d26a99ea267b0945e8a457fd40c3622c957cc736511c957cc85b0a53a8cbcb9aa1e6fb6ac0b616b5e22cd4aa22024dc44f9db8d79aba7794120d111603fe21430474953f183222c01370ba2e01c93c42538348d1b3667593789f5e902ce2c19b18dce7e5c742a04b4a588b8a7a5c0f1f30af2d239ab8c724a0a276d4a298c4c640f4b29abe7617a48b110dae3e149257d02aa6bd7ecfd2e8315f6a4701e6a980749b006e2dc3a98076d803420ce24ce32287176888564b75e28b1c4282c670035292b8450de0ce1e1e7a390196384b7462984af7e5f85365482dad0cdcf096bfa1d109c8f61149c4bf07052af09134a48618c31d20ba305b2f0f992e668456bd17d39214f7f31cf5b2734026be2a709e04c96309b253c9cb891441a48b131a59cf4b877b364f23aed79461892a813af441afddc78f647a98948240236121f712ca27f657b6f2fdddcdd49b206b0bc0d8335fdeeddcd0dc35cc34af14ad810de90c5ba755e4e99b5fca49d75ff2e16cb46d9b2d112c7186dfa93565a2ce394f22b17501918e1f9ee45ce09a57c1181adf9063ce77c0f813573d6be73f5022b5f6485488b2958f8804860ce76f81cf025218c907ce590ad7ead9605a7c026e022716222f01561abbf6da9d40beee7971cf21585ba355fabb5ac29424fc817f7da1de99f0dceb597bb1012c19a18a508074f1b9cddfce11993ac40aa7244254ac1b36fcc0e9c8d68387e47bc4ea0e02eff431e09157d313d803c17df3707c17d1bb267665e21d128eb4d8a2ec2961d638c31b6fcf47a5858de981df0510946b40a83c18c683d83a1cc0a4757855f3c7c85af126c652358ca5a0241076148935a08f824b39b52ca52d5e68c3efdc1f73c829daf5a179326f52252524cbad14a74129d983ebd24b9d321452b3129466c3a7c3492afd39f90af8eda2451d53f3d44cc01a088918f3b48e2ce0e8c3e743e015155b6e0a1a594ce3967bc4946780249bf22524cd24a9630c14d6a4492affe89483f3122fdc8d705600b1e4a81e12908303cbcfc81b481303c343d016b60ff004579733fe99f38bd2caa9e5fedbc2c9eca7a913bd7f1c6681df36ee6b15889149e16d9941783236227dd4f2ff9d84bef1310751b09b9d3bd7ffa83744e19e58c31c6f7a3474f5e348a47b2054b5e84c916ec599992903bdd7d42b620120e40b0812460fa880473c4b13fbd9e1596973bd0246fc77a497fb07f92983b4fc816fc317c8649361107c60ec2508606b628ba6ed9a2833330be93d9a5ec1a33486bcf8eb7b6348a47134a1ca8c4a3d872d24cab1bd7954c27944da958562d2e5c582f3031322f60c4b87765cce8b0030f5fab64a35d334a910b50a7c5a50bd8071bf9ba393c8e7c0571781b44e468178cc3f368d70fcfe3e347bbea76eef04db4ab2b1dbea75da6c30f69d7e9f046da853afc1348da6561d1a75dabc34725ed6a397c842e878fb176b10e5f0e1fe12394397c71983abc8733873a1cee70c8c3e177f848a55dad43193d1cd21c3e5a0173621cbee627ac7cd9d078666120fe038d37e13783e6367ac6e3cd487a98f1dd69c2d138c666858dbf0962876720323c191d649a6879ac195690cf5bc958f5f0e0d96b87ece095bc92111dbcfafa048ef1f8196fc2cf7b0c938e89651c7a8f3723c1313eefde8cf102c685a5ba055bf424e5f988a932c50b8f07862848c6e3f142054a8c9783354508c623c2454a14515e3c1b2e6cb0bc1a2d358870f1705638395c78372c373c5a3c1bf8cdab5233b5f268e0379fa26101c263fd604d3ae6f703cb0a5bf3343c54ea64d261712aa532a552d6879a9249c7c4a61b3c2c160d9e3eb0fcb8ef07ca9bd966963879af0762f2643499264a1e2b6305c17245573d58da69876c5e49962afcb2d71e9a25061df4629e3f1c4fb58c6a1ad5321a238634608fc67d673c27b542ad65940e56dbc1199c1b1b9a4c7efdc199fea076cd93dab539ad684847585831fb8bc742a8112a6f53c170ced3098f2784f231e6e7a19c3136ec121554c07be073de9c4938b39969edc1fe6036db081f088203176cec0cfe9cc133184a29673084aef8392d2c0538b330946ef899c159426674e2b4cba6c6849bcdb6f900d2cfc1b3441023b0865ae0ee6f55c3c1a971d3d9e5c971797cc1e6efe3dea7e1260d039cfd4a02a110b03f7a0ffc30be548af238226efae8d9fe6869f382a51d5997afd30ff42296b9b1f1d14439e124923ce890307d272323d3ae3e2cd55bf9aaf7932d7a6a050e855420c5d4be88e816bd8dfee86d74890336574c9fbf0f531b9fcd4d0d1f40da057b7005675884e97350c134c8072590b34d3776681429b69c03b4995956c2f2ba66fa8bde674342584fd32e58fbf2317b07212c6179082184d0660332cad8514a29a594d1650656764093851c10e1ccc23868d2f10654f03bca778718c21c22168802370dee4719567f1f3cbd7c7cf6cc8a1052188b40a81d1e9a8c2012b7c035ce4ba4881138b56b5788fc24323f0fe332c56a8738da95398b85b3cbea2ff69434fd75dfac033858be676666bad335b158f4a6e16d68be6e6bc1afa600786ef7cbbcf6320266e0e127678820c1f331cbb298c5ac2714649c47bffc7618972864092185a552e9e6ceab50d2ce8358f606e7c5f966faebaf09226844cf935d49448e3964d433798624b62c78822ca35996655996655996d18c525ae9119e48598ac55dc8761d5be976b3c254ce70be57bb92a1b9b1414496ad4a35cb32a8bdd4410bbbf47a68d251ba1bec158eb366449a14f9da5a555e2112bd6c64458832d1738942cc41447f393adae8c75873109183f673f4d094f89384764098beb398f6e711cc61c1704abbfa2e51b074ca4c82397dfa99c5cc621ee1bedc10c704fa12bd45a245d48862418fdae569f193f9607a9a44af644b307dd53268b2432cee7740b24a85ed9aae22f4163380872fb0a6bd557f10c208040526aff09bb90d8d0d38641407394461c88461bb34978d2525cfdec5d4b76bd63a33ffcd5bd6bc8ccd7c8d1cf306cfaac958bbe68c20e8d29cab28b63f6130dcb7d4df9cdbe78d49b63b046922e96ff66390ee69575f20fd794b44b1f2517a3cfdcd12eeba346dec3e39d9be5d241ad861c9562c63818d40fdcdcf2c66e30ca2454055583b04737230f7bcc19cad8a498416020b1f63122ab8b3604eccd142c4b747447ff1191c2c7c1126dc65576c87a317ac0d2272449a9dd6775dcaaed8128ef33b84b4672a226e812f7cbd9d5d6a1e7dd3b3b22bb671949141c32224211489b848c4998559b026de4663089d8023ac02c72ce0788a0479e210ce2c1b9d02aa4a3af9ae6a99a95432552d3b75068b30844439e40bda1c47be3a784f56584aa5c7aad78b3b97af1861c904614d76bb8ea61b3cd22b99629030bdf403984a3f00942d6a321d4977d345c2bd74e1b53c49bafb1eb03f5c5bc362093830420db1b90f37c7e88387d3ae3ce31dd47a43e92f3bfcac257978ebe3f0ab021c9e95c4e1659038008e73f89976659de71c9ea65d5900363487bf695776790f5addb8207ea05183935363081efee9f01d66647425d3e9e5120227a7c610de6f8c1fc60b944da96e7e3810346e53731f70726a0c7198632e73d87217878f57da9559be3a44327710700871129e0f267e84c7b380bb3c1e0ab88d77e339a1bd009e4d006e2ec05b02b899e734496436d4c5a30037b79e04fd114b6447f05882014782890200e0669ef7c084ce0c26664c26241333987031e19ab2f5799da8f4d975a26653328001ad9b03f08c0174326046eb49a890374fb9c4124bf858620900fc88257496a0e921bb0faa840c253e258e78122a3425aa124af4b859c68f50e2d37828b1c402ea7758c0cc75a22ec075c47b2cc0889905d805b88eb879d3766edee1dc75a2caf8779da8dc1137f3dc88eb44e9881d6edef9cc75c2cab87900e7ae137646c69350b1ddbcfd089e9bb91bf11ef59a123cee524273f128a144d5947029f1eda09da7bec75f9e0d8e9b0df01745dcfce297c79350d1d9945c2fd73d0e1ed7098be3e552e24228e04544bda180cef597028420e2e61f865540e7bad9a4dd9fae13f5c5715c27ea4909d7cd3c2e84122e21701c86122f6e2ee2a7eb84550286e966d35d3c6e3e5d88bf7ef3bd01ae13b554dfdd9c87cd5f3f5e4f42c5fd8f52f7e3fe49a8b8b9b9b3b9b9f4d781006225030410b7b9b191218001ae131abef9e6363fee83e784869d00e1038c8e9b61eee23a511320e3c2e6402440e543027cc87199eb84c54e120073b3cc5d5c276c02606c6e4e693b6ed671d575a262273f5627c075a2aaae1325ece4878d0f3f6c7c78122a74dcece2c709b0ba59f5c3c5ea49a848dd9cba8dea3e7cc781b03287b1373740c8dc0c2303f32454a06e46fd0688ebb80de9c30be205f07e78121e8d23e1d59cc70be23dbc1f7e8447e3467835e7e105f11dde10278057e33abc9ce7f0705e8437c47178357ec3cb39111ece07e00df11dafc6b197731b1ece05e00d71bb497ff001f06a5cd89f8e97739b497ff000f070eecbfbe12e8fc685f06a7ee305711b08ef87db4afa83b7f1685cd89f0f5e0d8dc77a0f9ecb67782d6f792cff3c1e76f074883b08f88cd772191ecbafe7dd8bd13b08380caf2506c67b41c04d4205eb3ec1f0f614fdc1bbf05aae93037ce5b11ce042d952a52cea642a75dc56b5f6389c79d4932c9062ca19f0f43428f868a107587a5916a4788295db300d7051f8684f0a3d383d3816ab8270773a787107b64bb6be679c0a5f879a120bfb83fd7d6f3d9f87c79fa11f9616961695fdecafdac35bfb932a17962b67bc8723f98ea4f51977f5d48d9d032bee39adca47c504c8fed4059b553155ac5d164bf8fa5a97d6532951fdbcc1aa7c707f6f1edeadf7872b8bc23cd1ae979bbab5f7e5f2a943f94242858f9afb709a4331e350b6a40f1749cd85a287cb5ce6ddaa07966bd9e149a868893f1d0bc7609df5976bef62bc8011e3c58b182f60c480313c08bf1795121a9a21464260e53d34ddf064c4582c2a64dc03dff1e15d776bfef20a5f347fb9d9e52c8bbafde2f2f853e3d1782db7215b5e7e0f4d385e0ee3363ae6c97ae7e2c5d8121c63ed8a11b3eeb2841c50c130fef26e4ad30e495b5c8c346ed92100dc1297c4980c4fc5a43fa099dbc3c22d57c8cb61a862b861ccf0e04e0f1edce9e1358762c669ded2c36bde72190fd2e265166e790f1e1435efe1333c28a8601d0a9acf7834c52041f319f74173a19c71d6f551737bb80d09b10c2f470ce331bcec727b5818c6ef5bbc5cf17d174b3d782c32b021c9d1ce0c18d78b79f18a5fb4c0f0625e1ce2bf63bdf0e00b8c182f3060bcc088f112636cc909092f2fad01ec424d45b878ea42c9d2652fb087fdb1dc46c71f59258c77b2c80beb11d2982e305e5e5e6e841febd405c64b8cc7b84424667d08eb307a48bb58d7c98cf78da89464a5171e6c6971b9310907acbc6af6973a35e180398b8c8b97c35ce5c5c45c1c8d65c48da1a9c7cb6a9662603c2361b02fcf10e90547ca1bd25fc6d138f5d559bc0c04cb169696a75c9e6a6961b96861b15a582e5a5a522ea9140b8bea2c9eea294f0e31f2c44b0ecb616ec058c9721c8d596ebd8ee5292f03c1a94bdb9ecb678bcb593c89552ece72ed9d8b2771fc79893197d8e4494cc6287108b25c54b176e51412eeac7a825bd5c4e54258c3a27232e32a1ff99a71534949aa24fd75cbed732a09db1b7dfaf36212232b9fefa92e3d154bca5e5e7bad7ce14c8143d5087ff834ef6eae3dcca8b93417ca1eee8cfbd6e7f1706d642baa7c320bcf187f70c09d202e0a19bd8351a7a986fa6b9596049b5543900ad84330d9067746914a4a21e706cbc3049b55434590095adc00372e6a1fdc374ab598ab047779706438fec09a86589362b3fbdd190d0916089d7c4cf62a6c0a09e6b862906c2159e91ea7d8d820c9f8039f1b567a143bb57be93eba973a1f5d3de7060b650bde1c8b5a3f7576c11ec9966c2ae6a128bd8382fb76534c769128bdbb12dcb7fb28dda2e9f9e06e24ba50b6ea0fb482ed2bd8f81c9154445acf2188b49da0c91320520fe1c01cd3e16bb46bc5d2f28244542a10089d5a7ac9cc601869306c180600d4b18934fa1571608ec4104a138e9620ddeadb9c9e3fd4f3332b158954372243d13ef27573737373d337f9a67de210132f0259568cc19abe0dc7d9d4daddbdf9fb70d7f58fe9b6127854baec6e220b6213ed68626fc255dc36600487b0f31af788a38eec22ac889e5a610473e0777a3f0a451e409d1c9146df54c55279820f701f66259b6406a92fd14b0f4e5529c2b8f753b0e8931d77a75de8b653cf08c54e56b7d13d904a1c6c8792a622724c1bcc8b2a2ffe7431497f5b587a87dc9e3807cb51dad9681aa4bfd6b40f69d7767ba3cf6e4ff7aee40d293dc3a3d21dd25f4f2dd80c8f86b4ab7bba20a50f775a8f37a43f78f423c8909f2018de22ecd663e5883a41be4a6421155c6f8ee29cf7f5d71de5d59367f220ace94a1d24ea4448a37bd75deb4e7177730fa482b52323b44f8e7a2bed876c19138384eaa91f607596d7db05912f96c725eda2d7622c0a28b80752f9215f2ad58db0d4bd7135c5ca43992536b38c506dd9d0c1999c0ac2fd8ec6c176f0590c6c87848f7675cf606033140ce1f828706b49603067bb95add6a4803a349106ac4933894be873e480b49c3dea36dd8d31dde4d59257ea389ed3e569159607e610c19c1fb0b517756d604ec40da4ebb8cbd3a72b899ed03c1ffd2dd1ada88384152db0c0058035ddcd7979604d086cb6b12187d0806d5241a5d68e704984e99168a0e8c90e4c0c7718b391c1c2dc18549630382b8c676b6acb9d6464148ba215d1e8269916c8e65854d4481b4c07b88d9a6073c784e40b49effc3475fa28254e491d9a4eb203f0158f608b5e0a8a8632d03560fa1510cc81312e7f5830cec5c870376f325e8c07e3b940a16e3f6997e934c6fbf44dbb54e2ece9748a32312e92b8f31b833adc89f173dc7694c7ea8f3e86f71f183749344a01aeb56e97bbcc3d7931aa33e1e1ed9d3dccbdd65aebcd1cc71d0be15c9cebf1b049e5e93041a2298cc047497ff40788a029109e6effc4e8c84600e4d395228b2a55ea56f6642ad9d3cdd6548a2caa54b7cab22ccbb22cb6cf4f11ab2ea93f7a175ebcd21f4d82db06498acf124ca19060488a4f932421a36c044038ca0d23b2110061ed362c26c9571b19c10ea2bcec61d4b7d376532af651ac351fb55a82ad958b2caa7b98f35a7a614a71f9863460eea62c30f71257572bd4ea78b57a8c49b08449eef41cc7bd664930ee5dd7c1f056aaa693a95432a14aa69f6a8635d45ab72c904c3f9dce954a198b6ac3b1711d8ae352f6549248c0556601d767b20a5ccf229d80eb5593436d1b0a8542c162b4918bdbc9b459d3adf7546b856df59d8419c91fa32ce4124c951871b7a7128eba6ddb7633b76db574b29c775cbde6b85bee27ee256ea2b6ac665996c1b6eddcf67a5c371b7d039a4c26140a55b94f8cba4628de7eaa8cc1ea4ddb76bbfdd4510638de00c728041cdb946d599665198d42386ea75abf6ddbb60d91c19b9757f8a442a162bdddd9df8f445c6f3dea6b5a9e4914d6348b2e7c8cf8623465efe056ba34dd30e1e0d81511278e28b0763312d883e33bbe0707c3e71cd8ab000ed68ed22aa429db1fcb391ffd5a9d9e07e66ca71185e3b309c7d9baf166f9526e6c6f910889720e8cba3d38f8c4b2fdd11cab2369178f151636063e7e06de1d1f8e37c7bf8e455936119e271e3ebee278730f0e8677e5010b71b61eb0dd6514af5e11f110c78d02c7293dce8b91af8fb163e4ddf1e5787fddddd946b382b54bba046b97520ad63e2716581beaaf33e968e177a61bd06ab1fbd3a49c27086bb467b26336b3ec14b323e2f87827527fda2f5fb35bb3b4a21927539adfc82e8e88ad7cc12156965af5270f898460389f88f2d40aa537f3317c6d57cb084375a98ae8a329c10b69883e1d2ab6842868abc83a3f1afb34610d84137ad45444c47dd89706c3773093d5dae80eca8e739e3aca2f7410089bc52888a0b009d6c4532f7b313b5a887c1fe2ec9da3102ca49e90c39ad855764b216bd4892b335858aa30a7f13c8d021f89b82fe3d041259ec47047051d08e1eef2da3b2d6cfce435293b42085f5665b0d9e35764b0f9c35a8c29c674777cdcebcdb55eed6ab5ebe9e7f6ce06e6c41c2211094358937fc03766c787a9c908f92e1e6ab78139106befeed75fe4b84bf35d585759d8ecf4331a15c1bc44cd76092999600e3da41e1114a6975e6884fcccf25087fc94b5bfc8830ece74b2e79c8285b8dfd3b6000943a2201ce1e36ee68eb026d68a677f5c082c240a02130c8982b004772d63cb53e67054e10883637c8439b066832d7a4a9fd1cf68aab0867e25054b0f71db609b1f3007e6ccd4c0f4d935922be8e0b3912b89ae903b85d04b21f296deb79aa6b0f1c6d8904d2592af4dbeb4f7a99107e1d747b27955b626ac1e3439b15cb0f99a774aef4c2cc926c9c6e8c3f4a3c93429cb7e923258e63333254d829e60fa2c96318182e9b328e7fccc50f794439757583bac3cf2c54282c160529420c910696146e7274fd3ae1396d58b9967695eccbc457c68af4f02eed88ba44a285b51ecb84cc1eed44fc1c29d4dc391ad1afd49697369fa93740ef683cd9664e881900f6f16f8af5d50f055751e69f49ff880fd592460cd77f5a4bf29faebcb7273e549b52bb68be5adfaeabd4275aa15bcb8af622932278b0e162314a7ee91b823de98f828b00af5d53b223deaccd4994ca65229afa78453b402252c249e762c1f7deac6db78f32c5ec41d2db17ca647a49968f34c2b953a0abe70204e5d4217eaa96bd0b57aea1d74a9ae731369b07ce5694fb152d7b3a16179fef067739b2d8601e310c61cc2974318a3bd634d0617cab572a9a2ce4d8be3381e5689953a4fc3c874b085c82b9cba2d452fb370d0dbbfc3912f1ed9b148a3cf7aab05e6b971be918957791dd4a0845f3c8f7ca13a161f03c7b3ae4bbc5d6d215287b9b95336da7ab984b3b73c37e0be8dc9cbbef266cccdf5e5660be3e67f366dba61fa5439b3291d748b2db6c8221553b131ead1b4836eb1c51647b8bed36ef6b0f6e8e5a75edbd553c2a867f761855d10b2a4585880703c434998d2c490be913e927641dc491a568529b81f95f459525e127380e16852dd6857785bc12fc63a266d4e85380461231213d1b005264e755ceac627b0a69180a3973bd744130e38842da03a91d42da0ba10d6d09b23cbcdf1b96331c6ec0e877199622112309cb82f4500b33a814c0a622d19839619d01ab0a440001302986b44c96a04ab12c8fcc89840e6f6a000c6121837880a5a2b68dd2658205b2099bc00062d77092029037a7fd0403661b141ca498a0430677587b800e6a82e10f904e6a4b26091815506964a0b9519546780392a34ac90566958a961b5062bcd069636b8a193e81b60ce110b079873a4e300735aaec09c232a39c09c23dc1c60ce91c6adf77b0b9853c448865b2722007c6475a42405cc3932318cf7e506604e112313c33811143ee2820330e7c82909cc39926199f76507604e11238d654e44e2232c0fc09c23f60330e748c530ef4b1d66645cef315ec4fce53c3e7e2c01a489203d433c235cb01d63318101926902e3496b8a96200a85e54d24f5d5fb1da55d44525748ea5046538b671f4d3862ccee702d10311121a91b9b600b441c591e8f0fef87b7049016af89203d438c3c8124c26292e81395c49fb824c62293feec63139813b3445a1eaf8239b0880560c06030cc3a1198139139111827d23a117a222c27b23a110b684438de027008a77ea308eb6622ac1f81c13027520446e6425e9c87179181712131febd088cd685fc335ea4452fc47b0f2f42592ee49ebe08cbea42649ce545565ba42e64e6ab17894fc9e14abc196eb185179480738f56054e5d880e8fcf46329cba475c60d6cdda165b5cc1427638cd85b878cd61b338ee1dabd966568de7c333c2f363891ebc2682f40ce90f09e62c7145efc26b261d4507af63335e03c9f0bac9f5fa89d7537450bff05ae80a9be393f884f578b35d1d4afa488545ca0e5166a0784fbef7e3143cdcc5636ebe0e7f7922e3acfba425759fdc4abcc24a12a3e4c5fbbd24f597c3dc5c612e73b3bdcc611089570891b805561d62186fdd7cdcf2f1e062071d66645c8f85a5bbcab3401438c66c1122f9080cce5a15f837c6f58183088c3be4c5ed91b941626e133017487f7d222ff7c75de23be2165b6c8153d78817eca391b577e1511c8d6c8c5948149b54c17028ca139c21518cd9885d6ed8b729dec529a59066277b1b9d0d4589613814c5076788e11011e480797cc09c965b1d13670d9401ba54ef371a604eea259c05d4899086f67e1fc11c6bca3c60d304e00beeb4c9c4c291079c219147838d10d1f0911e89edbb11c070c42a4fc24f7bcad3608df6681f002d426ce35151249efae848c6207b38f7510f95706e2ff778585e7b566f4f69e21965504d07b10526bc297a3ccf8bc101a42354e962c7a84d0b6bfa39bb96cdec50b6642b8aa981ee7642bcb43047ded4a887b730c7abf35a5823717c02c7284b1d056d69443bcdcb136b33c62c66dae395d134eff9aba6e7f86e4fa66a50b61ea196c9b0e2eb65691ef7e8bde78bf6ed6a4f63f5a75daadd5f99fe28eb311b4ebba88b1a55bc41085281455bd558ac2b5c500c987e15e18cd24215d869e49b6947f689a30145016ff7a3a62fc654884b9aa669d98771b47a331cd2fe69a75a764b40e86005e6514df071f70e05ad10271a80443b54c839b739e55d3c58b90b6f2c11fd410d24ad88ecbc0dd9137dfaa7a119f08461c0137201cffb8039d10a78fec56379ac3ba960733f6ba25839abfd5f2c821be4b98dcdcd2c2dde5c2f4f7f596aa6bfedf2f614a21b2cf8e91b2c88f50771bdb9cecd9b77426b9a3e133693cc273836c171ce26fdc53b61b046a78811d46d1196607afab9030a8cfaf4b2c5f5e658247bc4f2f38fdfba6debbef5e82e64cb4c3d3cdc4de9e23906de5cf086c29b065f93484257572a3d5219e13ccd2458b35d218a9f56fad1c5cdac964bb4baf5319514b300732accd91e0f5573763f7577c787bb77575e29ea2f6e3824de5e927380e1cc7495976360ed16a159cfa429dbe923a51e7deea1f710bd3db47d9eb694aca7447bbb7b480416d543a8db53aad77835051b8d1075a614228df8a22cfba4420eaee0ed739e0a388861f98c480847a56dbb9347bbb66759967d66dd5c5561e7b3ecce20f03544b6e26112122c694564b3b99d33f5d862aee19adb10f9827965bdc0dc20b0359f5d9efeb63b216cb97848ab29d8592aada6603ba8bb765a04588a7d12d2371285cc67dd0ccaba1994f5e7d09432a74c287da7509c43a5e9099937e2e5ee757b574d4664dfa8308512bc3dcbbec1234313066b82b29fee84d2aeedc664dbb729d4ae7925d1844dd8844dd895244a96306982631429384f18d1fc21aa029b3e71c23a98e4c4e536dae5d66aed9c4445483214e4d3ae3c87703ca442ed824451a2e0f829a55d59bb60ed825498c2143468b592829d873853205c0473207699ceba6511f52a0a365320272e43b0ceba8dd4ad7898cf4f0c5582565631e9686179a5bf285464e208a53f5a3427add2271a046be2a95821d98d4c987c4da2499484e3679276c54fd8f4994a60ce08600e77ed9c470485b3762f05da4c46cc6fb0029974cc6f745eba8282cd4d813050bb62a6acd2a45d31535ec1f1f1f449bb24517f503a9e06d12a38522a385229348a7c7552b7e26138fad81f22220984a32df594a196d2ae89e7b5b8412b908c0c118a459bc79dc0c6108978fec8c4d989a0707621acc9d9b96baf3de467cc0ebc5d21f3dd35afc87c9edfd65d2311cb1b93dd1d1f9e9f5ff522a6c139c6588e403d239cf434a4bff809f1c402e789e7d663c4b60989d1519f65376735b00d1bfdcd576ff5049b6f70bd37db9c77c6e8a8b8dfa3e12312cff7696f8169f717a14cd1f4577a8de1ee8e0f73df5e8a5e803942709fd7ddd99f248a34e235ed35fe06e670afd5dada44f235a45bf1b512459d1a69c46ebb3c8ba7f504de2ecb6bd30dc971c0e548a2d871b97c8d3a46401adbe314f0f6aef280359b9023123bc180cb219e3c2ed7e59b975d172f03303c0f4df4484270200ad810d08f4f920d4801dbe940143b19dca1463719f4bc2213affacbb277bce92f8bf15a58937d7e36cb0eef03e6c026604d06a4bfecab2ad86c63f6f8d3ae7e269f3d661702ad18225f36642b7bf69e09409d25228decd983c09cfaec9695651aec2f91a11530cc89f19d6101c76778052ef2016ba2574281a59f16e6481c815e0059fff76d51488d10b23e9b1b2d1cc297afc3160e6ef87d18c2a9514dd36ed68eb56b10d23baf1ca24a3a085f51dd717c37abd85ce5bbbb5b76f7dbc562d54a35cd93a95afd9c01f9f6f42224db07cd03148b46a9b577908cc921f98a40ddd23e65c888256356bb8c414c367901445dbb6402734ad7a25828da2350bf6eef9eb79fb4b34c3ab69bfb9b90eda637b7012d53936724e2ee7463ea8bcc26fad3eaddf1e1faaadd89aa5ddb75c272ed2594c7723fd5b541c25a6b44dd0f25686b51acd25ff472b482350835086f24fa2112c11aedd38b55fa2b42d26215aa8034a215ddd21eb58858682f2617a6eedcbb9b52f424d09378037959a61eddbb9b3c7131ede8bada5f7750248a44ae928d9c5d77ddd6759ce9ca1eddb97b24e22e1245a248d40151821608938e168e54fa5b81c166da59b4d3e935e1018135dadb2b62c4e207c01aed0d8034b45b1cf9eae92b587b378b4947775113f5500b7590943208f5aca160ed2ad4b38bfaf6ee66f324aee7def1982d63dd72086badb576edda738d978c754b2bddb66c31f568995d3e9352c6ba9631557733eadbfb2b538f0e0a0a0a6275d0bf604dcf90289bbeddc67d3ab76ddba5fc8c5ec422828dd3f2069f86252fbf22b27962b9f5909becb61a78db6672f4fc40298a5780a4f49192a02a32a931f793e906e74158634d3dba4bee9168bb7cf72c5f8a443ae43d12f176334a082bb5ff76e505ed59ac7432f5e0de3fed5a1263306707272f6f365dbe83e409650f65eaf32a9c5e5bd19f7695d755baa53d12c95707693fcb5ea2d3bbe7d34b9c49c7e91e899bb732b240640ce64088259376cd6bf4a57ec11e5a75c1669c78b84926b046bbf464ac0ada9b07f015616bbbf60e8239a66bcf1db475d0f6bce1dc41db4d5ecf0c8e2112f1e94726de4e0485b77bf81a71ae3d5077bb47223edd6c7aed4f33bd8b261c426a7fda8d446c12c2dd48e4366033ccb57463b61799b1898f48056bda7fb48bbb11a83fedda81c857ed56df56963deb5a0492af1b29960aabcaf3a7bd03a2b4a9bc2ef288c4231537946e698f22056b4d056b5d056bcf3642faf259eb201d7def8c2d27a4276dc2ba6ee20d1d9cc9a51f4c4fa85415db72d24cab1bd7954c27944da958562d2e5c582f30302ab1100925a882b3773225686394fee865221698762f5e94acd74919923f47df0e3326da9da6c6079b1e5a337498000f413c094400026f42c6031cd0800be405130c5880cc123114a0440260fc7841c0010cc0f2115380249080e169e97184112b1e2e3b08a0c3450ead081c3724112c03d8c12a1b5100430480ab91e9e40000e7e51262da9b1f800882466fa9193ae8f0090491400420d0c4031cd000204c3060014b28408904fc40c0010ce0a3004920c1d3e3082378ec20808e1c45e0b841c40076b00d010c11801a3a3900c079b984b80902881f6c68dc879b5935a7e921b678f874d861c60cea8577c5bdcbc8b8e27a8f797185cc0b19981857c07821f3f27205eb85c58ab902e685e5d272c5aa65e5c2e50a172dab16ed0aa9a1e48ae50a9586922cf18aa273de953f433f3f2b2ed8dc2175489d957e51e0b42bdd349bf44b26cd2926149be71905a33e81da05c4519f2f803a7349cdf38c0146d11cf509ebd78c4d9ff92304d5c351976f803a134a9671c0a86b45bfa6d0049e2516419ea516127896568adae55901eacc2a11789658c0a819a17ecd22083ccba1269ee59407a064f000ea4c2b0e78963ec02818475d2ee9d74c6ac0b36402e459366102f5e2a8cb11401dba8401cfb2041875a47ed1d8029e3b698967095300eaad45bb621c45a128f1dc65c028182afda2420978ee2a3f9edb0a043c371653daf5b204a843ab1ce0b99b8051324ffa458b0cf0dc413e9e5ba800a877939601d4a15692786e1a60948ba3de49fa45935a09cf732fe9816a9103d4c9961cf11cb7c0289651bfb2583ce2f11c9176a05cb20075322804788e5bc0a83e2a138a52723c472a45a0e20fa04e5605c7730c0246ad8e7a8cf52b2b8a40443cc72703403d2e8926803a99959de788028c9a47dd48bfb22478c5c6734c2200d487b48be5a85300ea684b220dfa219e211a30ea3d302775d479faa5c560518d6768a493f30ca18051d70175342834fdd28464eb06e7b9067ea1ce03f51c30273bcaf5cc03465d07a8a35589346810cfbf796659fac3b3c4a847a8a3598934e8519f8139f62814ea6e54b013cf213c63f2d521c916bd0e6fc55a1712831275ba28a8e79b9b76b10908051192805095a8d30945a00aa65c12048a9a287a8095a8d32d71c0cd4db922d9a26fc00532939898494ba20e6785014b30bdd002624bc41410831275b82a4a4011922f2e9600a11f420810aa1275382807b8b9e9966480221f4505b899454fad441d6e4912d48a7c6d4548dc5c796e0f9ab424ea6c568e581293af4dc8889b2b8fd88e1894a8b35521c0cdbdc57408e5102a42a84ad4d9a0e0a852245f35e94611114503b899459f59893adb929dcc0aa6cf92e4ab16e19b2509204b5a1275aa952196c4e4ab0a05205623a6138312756a951c2842f255630010c2117a09617aad4ad4a950a2ab0aa6f5e6661b043d105e27c54ad4a94b228da4b9e407cd0abe8d4c3a0d99741f6452cdcd8df35c4273575658540f485166dcfcd6fd78b83b5c1d2e12ea7651303dcb3d795dac13ea8430bd6ac62423a95b7293bca4a46e09a64fc128bd28b202a3e8455191154c6fdfc5e084aac0e0845e70429c50154c8f82e15eb8180705868bbd70312ec641c1f427992d26895b0293f49294c42dc1f42617b5a5c88a8ba296225491154c5f62692e9b5015179b50cb265405d3779dc52d06658b6db12d0605d3732baad5a46d4967c462d95b93b625124f2becc4591ed5222b5a11aaa88be83b161d62aa1bb7d08d5977aaa2ba6db39a865315a525cd25aaca35053ce923238b395a81a9b442a88a66af50959e5246a2e935ae312899a55d2097eed39ba314ad2e893a5c51a441cf62d94b9760fa4ef3a2944eca14d92a8a3a1d12200d7ada19b1baa14e09b086724598de4537b4053b656d578e4218a95db9e435965a486f7b14ea691925f9e4233ad1f71ad34c38ba1beaa47454ba456f85edaad06e68b5055bea8fd2e76e0853edf4dc15a40ea943ea9030fd4c49fec857372483248b65ed50fd199a42f415610abfbef53458246223151731627137245f5d17054cfb43453ce5c1093187029bbd4f857a089feff49c7e8505eba4e7f545e60ea5d9ae89218b666605650ce8f38667842ff9035b3b4cd971077a3add981d8de527ce5074d2154fc2f076ab177bbc18a55bf49a17a5f4372552e98f7e4a14b840c3f24a4e0a2bdfb3f4238186a2071d8c4030c290080845b8eb128b6668661b922d39ab1aba5ac34a615139ac624545bad9862a5264b1866215a9c65a6c6cb392e710a699694117612cd2905d95afed28168fb6231993da917c75b035278b0dd3c423de982905c739ef1c9a2f802f9c023ccf1a24f13ca940e279fe80e79309cc79037c01e9f13ca538e27982c088e769021ecf3396047358ac005fd167c7b3e402019e6518743c4b33e4789656aac01ccb03f88a41453c4b21e0789648b8f12c9d40c4b324c27d19047352af5834806799829d67f902fc2c6b60e3f46a98009e3b0d433cf71b02f02ca5a8f12c7d504b80af7ed251c8796e2b00e0b9b980f3dc58488139a5f75b06f0d5447d03d773f34088e716c2cd1b08e698e4005f9dd41d00e2b947f0c373a7c0e6b999e07ebc0273b8f763169ac673f402ee9805ee98064cf31c93604ef73dc72aadb8841ee20fe04b4e912d39f31c8372bcc10ecf510639b200f7a309e04b22c9968439f5bdc9881df09ea11c704336e03e05e06bc6644bca3cc3a317cfd00b1066a1af03bee6906ce58039da631e002c04ee1adcfd823b855b07f89a33700e611c590b70734de24a2470786e8e8181c8d736d4e3e67ac4cdd60868c4031af9c8d716db717325c0cd5687cf16c3f2397c2a521137571c37db1b4148589e889b63e03a650037d79d9b2dbe9955a760791bb108265f15480037d7216eb60180c9d78061a925e9dc5c736eb600b8f23837c7d0885e3757d7cd56887b730cf94e922fed896cc957206eb63f74d2132c6fd3491a8cc6cdd5879b6d0d9006c3f23437c7c05911927c6541b225dfc3cd75c6cdb67533ab08cb7f532a0f3757bbc3cd961584e5676e8e21339f39245fd448c6cd3158f766968d61198b318760cca11773c808cbcbdc1c03e73984a9906c1dc9c7dc1c83c5b242589e35abcbcdd5bab8d9b262e04c7f62742a1eceb293c964026be250178a88a62425c19a7895d7b8b35b6c0bc216b43dd9806415592585b49560f3d96049413228e535b6a73a650c464544528954026b62053a8250d093a3235813f1a9a425d515d49fead3525a8a4923d2d0a01d69465a5103c19a884b5ee38e7bd28421a1a02b57604dd4605a0cb498f6a3f9141579ddd52237201d194181b26541d914b229d95026147f604d7c97653e99930c288b653f5af468465b24211dc12939604d7c268405a2294333b0266e47b066cb02faec8093e2c91bb094698861f995166c3f4eaff16b3b2aad66b6216d888885c59cac5515366e472b22dbd5d463c61a6315db8f387adbd10f385e1271b0295b129643380868b28135b2ca865b12b48a63875853dedb119650671b8a34e433c5f1b51dc9960c02bee0a7b30d451d1b4823e6162c95806357a2719585a339e339242210a00ece6c9fdb677db74b6eedca514a794aa5ec31a5ac416ff0bc35fa8b9f9753c6a3a36ef3209647734abf1a896816610d6684b547ecb32ab2f57942c1dafc01d6bec2829de79ea70f912199a9c7f6796adab17d6ef3dddd46d22748d59292b0760867edafdee8b8ba82cd3e8f8ebad67e7cb77937ab2714b1dde09be150e4113d1e55d87eadb783f44b2221499884eb8461ed75abdda37684190e1d59d6142221084d3105aeef2998e0fa9e224aa795b80f6813e640eef1286a21374f6ad19f86eb9547fd59a11f44ca6a210b6eddb39447f21577b4cb2b5dad24994ae692e965db8dd96c90feb4576f487f5a7ec92918bb5a5a55b1f906c7570dc254a9bfeddc65d55eed11ced3676aa63ebcb6bf7883a329b6a96f4f7fda214dc9c823ac952e8fa416edea6b97483087bb76990698d35d7b29d60b678ad59ff65a392243f037538ffaac14a8842bd72baba2658a660000008000e314002030140c884442d160388f75cd9c0714800e8d9e4a785e9aa8499272cc18830c410600000000600000029204c8b9f83559839c30281351bfe6715eb7b5e1571165dbc2d9503d11a9b2a666aba525527057c34a2535666ecd4d2ec3e69c48743c49064071f652434b7895f0cd0e0f1e99a71f63e154e13f96f54a210a7db3c5a07dd8faf84fad796c17d0cc2c3d40e1e79be2b3f4f02d049040d49a187092f9bd593174dd333cf64b98e7f17247947c5b42c0c272b1f0f947189e57acb1510296bd8ff9b38fdad284af566c3526481eff0d436b8956e88f14c3c7af3a8eeb6c74b7d074ca13bf07bce6dea332126b4c7c54c49b7d214431894fd64f0cfb3fd74edf95b34d65b7528726c1d6c38068479890901180d765a6ea824cf31efacd143a45584f7d6706cc3da4b08e0720889a30cc80027602ca702f95a237e40eac0ce8f7544eb70f7f080075da697d5cfb70dfb4c211ab7498dc08c5989efec01d2357d697c6ac0061379aedfd707fad877584c6bb62a1b8530a7294311562a36437da73465bd6007514f9baddb61a449cf7337222f788995362fda231eb9e54878103b168650c32ce1411cd67298614694fd99cb08cf11404661c6ae2d453f6d899645ffb396d7e72cd0aaa91c03c03b8b2e582957063f882f5e27620ee60db64b10d11dca3d7a57d3b10e2de997cf817c06a17a7ffac09f3ad4997ac355025f8a98f02a5bef2f005c41fcd57b61030651acbd75b44873fb79402b3bae6676165103994094015cf8d16a74d222b84d84494db725b639fe471b134f0cd879550e56a97a76c2404ac47ca8c28336d5acd205036af41696cf6997ee7c79361529ae0f944b8e7046c944938fad804b77dfc6a0c7b05138ca178cfb5747cd5091706ceab6636c5c7d1184333215f11d01e0a8f019ca50273ecebb60b87b88a19046c364aa143cc687361e1c333c0c8a1fcb08519cf77d4467a9a581d693b2109fb6395d43d743ccca656bc3ab797897cac2cdf2ef4d163650b66105ff258a1d414d8e38baa0d939a87caf5a6ae36eb52e7096abb5473e0bfa96e5eb227ac8bf84a2dfa06806caa4b1441b1c762a9becdd4ed4fb7c6ce43263675f84accf904995b64c6ae045fe498de3dc1ff0251f828f82b922c213fdb76a6c0d9099fb0ad2276f72a30296b1d5f36b259e474e81bb264f053e81f729d406d9fdebd528883d78b333cbc8f0e0e49b302a33f54f9f70b4f9de8ffc270678ca5157a6fe31cf6b06e68440d7fe49e745f9f365bba5fc314a481ee4e7018ffe4799682ffb0d8411ca45f004f8afa07575348991c87036912ee6c06c93f17f126ac81ae35edbc5344d93b90ec32e66d2cb763c15ca674029f2b8b1cd40886093cfd4ed52be813e1d6829e599e13e09fb45e2187e3e7cb9ec7cd4ac73755c201b4eeeb1a292486e6834cb5478898f5a75aee78b8246575df2249dd152b8d94eb105e7dcf975a932d948c9628ff4e07087696c1e4898aa0c32d1a949de94f8f7e1574391aeb297e6a0cc81f2f877599b158706bd32cb65d610020c26720719d12c6b861cfd26dee5d8659d381b6d22c8ce5a56e085dc99ff22704c1c358e8f62435e2dc4fc31faf134d5cb7f969b766d02175de26844e2857d8930cce62aa4e6ddc5f1a47ec929127b6565ad33937d43a00aa6a207ac00a3dca545e60045f80324f73bb246eb755921fac1710581b0fa0fb5b1819092f00d718b749c886aacb0e4de6e26bd310ea3e7eb0da6f24c60f8f9144d6143fb3787e4d412dc42fa70a987c98d940d3058ff52a2ca6f260ceeb745edd374c6a4058baa869ab6b89f7e70310c02be008157bb77ca3aaaec175815b7fef29d7ed5d0e91e5cb7432255aa5894015dcc8ca409c709fd1cb3eb1c0e4f5cff5cf9294f8ab2dbc95be0215e302a54d5f3f7dae2a5f89d0066d1bfa0d4e90714f2251bc1448983294424c0002cf3f58e34fbb570578ee210768e1d92eae04b8193294bc5747e44dce610068e632c956c7a4de43517fb37855e0676bd1f72fa080d269ceee648a96c0bba9e0efbfaed90e885dd296c0743240a2c0c3fddcad577bbc40fe5ff59cb4c215eaa863ec08e22a66a5a04369f42e15fda5a3af24f497043da5a2bb84e8961a5da5a1bb14e891523674e7e1eb8a91957d473e124ecab94ce4dbdbcdeba15ab1a5ea7fbc6a6308bc4b630faf25cea83045ce500a17fa8b2cd39e104e10a56da74f1e2a0ce556a6991c3e208ad6a79a083d0465acd39f1a361c852cd39e104a18c576a74e1c2e0cc556a698183a248ad6a79b083f0005ecd39f183a18852cd39e104a18c576a76c78dbcec94a46d070f3969b68fb1816fe6010fefaeff2c3f564454c461f9bbce82929d3fc1689165f89ddde06fddde4d6f4823e6e74637a49af9bdd147de8df0d6e83bef4ed5637a467fa72c34dd3073ddceec6f4907eb777237aa1b71bb8017dd2db4ddd4acff4e7861ba60ffa71d34dd3233dddec96e841ef6e71fcfb15702b1c3a469de59ae069d0e0e0c6ad02ed4e067610441efa7880a875cb33256a351032ca8169004d6661af3a94dedc66c7b915ca410b5a9f04bd7648f470935f8ed6299946d03d1ff2ca81e9811b72bd5b4a59daa0b709d81b87412f37f9f16c9932d180bc4b3a70af1d20fddcef46247a89096fa92873366ec8f4ce613eaf1ce53316e104c6dada7a322cc15b651c518ea0ae21057000d02eb85b90340d3bf24a0ccd9b2ac64544759d990c183789db9cda5177138bdf5725002557f6bf85214afcb84e14754e235200323eb7849561ab54478c56941c2d08897cfd680ad3030b70cb19f73b9d91413322387ad6a0673e2f8fa8af0fdaa171576d29e3da0aa1036f35e4197116bd3ca49a35c23d16d1f3ac87ba2c540e411181be7894115b755c00e7a6453df8f6239f1fa4d18c11cc1c6cb6279fd78f186bf36e1bbf21d4518e951b97e70352a73315de8865cccbd9ee7c1b66397aa43c7f8df580e9ec8b3f2ecb725fe915b965bb8ec884e48da5bc192a93e6d31d23321aaf036dea8fb7f4887203f350427074a944885b56932223912f13e0c0d5041a075dbc4493eef9e78b14c433e9d7382dc25a85ee1b505c3f15141e4f35e9f4b7da7327b4308b39dc33110e40dddd8b03e0307503f02196a60718a77440c1672642953edcbf1e149ad53b3da2bfbe900b21c99a1ac100ac85d8563502ba3a1c06f50a5f6a99549cef542381aa55bd13797deaf54a89c0cd29ddf94d50df07e078a63902248e7326d92af86ab910949bf4645f7d709783f098052c106ceabcdbc808f3e44def5918a6d3aa6d10d9a7b82a11eacc80e86a9c037ca768d5f8e6a0d842fce0e7270f455f90f754ec52152dfec51f344a9054384cc3e3c1a98be1dde04c74924c91ae2ac6c7e1160990ae8161758122dd3361b06b7d6063f00a1551340df0b174339d066327ee531f619fba1c429485d60c884aaa24be1c28dfb645c36e7b808c016083136ce2e5771afa2808bbf9e660d4f877a1d88440e2c3071e453d21f75eec2a200dce4533b45606944226b899f56e17958b46f4e5c131f9f10a912cd21940733fbfba4d51e036a0ea2c1afa6453cca32aa91d82ecbcc0e4cbdb4b1522fb0b1d9cf4e5cca9ca0bc3625f4254d8421ca8378317f88fc6a7c6c02b9c3ac3441b8715371158b42bd056e166d08ce2039bb1944c063fa2322d033ba847e34ad0202014ef20300b94b15b2511df3a252bf40c3ff5a77b2ee5555e29a93ef716ca60b49c3fcb7fcf71fde393c687f246249813f403b41a2bf4f823b9481dd16e2aaec2d0c71256a2200dca311e1addbdc61b14c17ad4ac0ee6f39f723f44a64ec6d281d8b1e9fb0f4dd31a462d452b1e33abd4fdbd357ea438e270b4d23effa76c664b4f3663077553f5a93df59529123f82bae9c7a953e2e7fd7823d27687e42a20f91103e9e0b0d5147dbed3310360c50cdb522b9aae23afbe540f771f7441aeaaee24e410e51bcbb442cfc92061723aa8cec25fc83715f776f25399cbf5370056de405599471282940dc8bcbfa95badb2aaef8a23d1267f3d59e1cb384938773737e102b13134b6076434410bfe5a785f8783cedce2313710b27737e9db8afeb80d817b87b03e7ca9a3419738ad9a4f8ab91faf0287653597b61dd3a12bb0953cd374f809dd722f7d7bf70933e130aa50e2580748e5fec9e6475b38260a333ca583880508f3d33129ba34786ba1322334afc2b38756dc1b0b6bd04ca40ebf1fac4936b8f48cbfcfc0d3a5ee2f0dfa14e669c2629bd03e99f014cbad73fa80341a6e22a617e3198531d3a9651ed8ba48664bcad2f49bbf620df53af7d44d0a69eebfa2f60019b5cab63337109236020cbadd8296b628148623a0f9f22c0a32db369a604c4b40a2c71500c1003d1f705a081c24a68cf1e62ab0cf339621d76e7d0cf3226cfdc33e8bc045a554d9f5f157f118712f1a70471840e428cfe05b517bf6943e6742eb0224afd0cdfbe9a002dd141584baa30aa2fa765210bebc42e0dc340b6657cceebfc8a0ccef28b36ac092e1308d73170a60092138afd689690026f1bad78871b79b70f1b38afe8e463c7e6e5d8aa4cb6d63792e6095693c7b38b9f3a2d3001e6f26b007dac2b043f1fcb2a609b47a38cdd4405469fe7a2b321af6dd64b0cc488a0521e99fc89343b71928d08817b80897f870d42523bfb6d6581548766b3fdfe6ef614a811a4563d53c4ce554499287a1b49692e1bb3154a0ab0f3206a409a817f3a1ca14fb448cf313b87de01c293857321453a9a52b9d9ee0079732b9e2afa783f51ff2f79411706956ee66d3bdab8eaa6f6f665a0a40f9cd0a3921cdc5c127b629238629b4376a2c94dceaec002814d811794d549c26cfec12db60323cdaa936c99109b97780eb4532ca9c81c60bff64ebd91236e3a447426d94bca04c3089f1281d48ee2162640ce9a366a8dfbfe51ac8a7a928380b0652b662c5771d8d7482d079406bde15b76a3e4379512debadc02b80d6391d367f1245ce56be7427a38a100d1a6cb056b15d0d6ef0e7ec6da71687f8f957b94aebee3f362f8b2b9ef26561579e4555006eedcd6d97b12a22c0538560a761ad6c3bbe1a1557695e2c7336369bc9caf34e94b5d62a6b07eea2e2e2589666b345a9d3cb612835b994e7b0aea04b83e68acf4808c07e8a19d651b16664411d32ce1fe530be31ab8ce28e1c7e0ed73e50a6703e6fbc93f76c18e9ca90a1210c093b43e40be00617cad3b57b41039a5a70bd6040f793323d352efc10ee8caa7a8d8b93e93cdbce68f583c39205560bd07599379af257d65ed432ac92d4d7084809a6def7778293fe8bd9e1f2fbc4ca7ecf5197b3a3d9f5b9aae9a46ed83562227abb0b97aa3303e9ff1f62fd520c614c749a84276752d96430236cb3b729983393c961e2c17a5762141d1bec280f18e101f545241bbca2997de1a557d91c241b6011db66a87bcf77878f699cb9e035f4a5c67579eed9263ba4ca9a30bd1a5851a6fc943c5b27cccbdf842d67ae607f780abbac0e356c10031df670400288eb86a3b2eaf4341d48265ecf8f31becfc509d5b6e089a13dce25157a6fd80f236a040c008929c66a23c70fe8b045fd78aaf013f1a76112194bcafc140d33259be63ec7a9041417b108bd1fce82b39fda8c1fb3a849e946b7365cf849ecc7a086856f11cd002580658b0987f64f8126f0cd16492d63a1846e0e491b245fb3e9fb539d27d403bc7773060b1de73a9774c11b6a224972e4caa409f50a42e9b50e681fa28c884f96d3bfced1a1a921b4d63e2285d9644173b85cfb0dcd8ecc24b9b7d62508039d88f22c6b1fbdb2beb7d278e2f431fe6598ecb0e29607992d9b6b3a32447ed7148670b0af6511796c36476e34d20aeed884e9177faa9cc94383cd743e579b6a95a0cec5bec85d4edbb8ce6593357519a69535db66f888f3ccf7940698567a412f6969e1eebdd8a456bc9855d4b1b95039348c53ff60a8738a93ebe4baa41a99cedc4dfa5278688a41af2dcad6ebf72b550f6b4b5f9aa2c22b5e61db16aebe2e07f66019b7d7e7da20b7b245fab6271dc4eeead3e61f9f2fc9771090d08e1b5e01ba9c75ece47b6e9e0e7fb61ef4c937074c1dc9b6a6e1dab9f9c024fd9098089c75126deb40a03630f09beb74312f72596731406db52ddf527147d502b0ad9f76d1d7cfdd19f308747ffb7bf47f13d64caf81c63ef5635b6b0dd728928753c2159f182d28d7edb365bcf669fd37a303aab7015e02ece63729baf7724d80e889793edc230409904e2c8b75e048eb0dad72e6cfcb414a3f309220f916a1532416cbd7b6f89e514170ddd6b998bcfe9137047edcd468ed5f13bfb5ca5f5545a30a737eeeb8a0df643c03a51aac11a885fc55bc2cebc672ed3ecbe288fbfd910245bf5c554556002ab2a10253f5c24865fff0484038bb5e9c59fc134ea1b9777d421400b609b621c68d20249fbb2c6616b527f01e379cce475e3b263a3225a6c62e1fd81bfbce8b28072f5599c4772c3da72a140a1e0542f17f4f005a0d3c88184bf857a187f7b3b716d735dbce6d301351848397b098d9f67718847db3ee98640cbb4374a04c53d31060dcfce5c7be2d1d05e78c192c1f2c9328d43aa1a6d9864502f9fb486d23a8fb3ebdf0bbbfce72ab0e3e31c4b093c29c58329b701a0ead5d745625c804a83ea0b5204b6864c1b23001b11e93e2255c78db0fcc94bf272d9b2380f1edee89e59a8861415ba780f97b3a3fdd1b401a7846c1c3ea59367b2c5284f8cb35ef3592248fb2bef5185caa3e937ea28923a5fdaabbd7d15234f1a2c5181c1890f2565c3dc0d39bf27033247c89cbc463b4f10561013b1febde93291b01800bb63197a442320e2d7dbca4af8a70dc48875c2febd0fe3945f62cefe595b11381ddb531fe1a701a8f87c3b3a6d202e6c46a596383423341ab1543573377131ccc9a71337805c48e266a9c0c46fc7b5ff1f5f8e791ca12c30281fe7ba726032a0d2b22aace052e9f52344cf67fdda5ace70a6385c52d1e4d42e475ee8c89f1971c028cf09279dc58b2b49117271c1468e8e92bc1079c26724722ff5fde9c4c4af830afb7a09653df14fee61127fa256e25282bb804361d3ce83e629289a1313d2ecaf1cb806340e06a90d3c0ff3034bc19a1db7f966a0aa1711e3161c72cf954c4986f3db7b608fd0fa2892b914d6410c497e73351894d7432b232f44bf0efbff386d75a26c9c94a69a25ceb6d5e867d430b38504500a79a3afb80ff24879add9d2a7ab0bf42158f19a970077f9c9070f01923b3a3b1f346c9d6d1a8edece99358b74aa62174530a7661cd0942bf3bdef36d364096b95406bc232d36b6b4664426bf1a7bb05ba8370d44ef6af8083e138003f77b088e3267f172061ca2a3b879bf98df314b0c112870a236f42782bd679c452587f710465ffcc22cad2828c0f17f195a1097981c2896e86207ef74ef0d50adb8160bb41b786416c16a0ad118364d278d0f199fb7e692cc4aad2d64a5105981a900744e2e49af11e9b1657022ef37bae8f6cb94c6a002a426416e804a4744409a6399444b5202e234017b6fe341deb27eeb5b31db9811a2a89e7b6869043fcc5287c582e02dd41cfa0fb0f5f4315112af12963cf1e056cfff171a335ee4c66b27b17435b6b118e88daaf43409eb196f6f2396354b2c0e9e08533c6d89952ca71e70ee04a9ad25dd63c77d54bafe360d15a142706926563c6859a24da4cdc9c132872d7d3712400e6ef0b71871283ed13889514d465d1fa44e1747560521c267a0c3591dd444cb2edd717f233b45a9b2c713cadc97e84a4c85bc69c2bf89d90d9e8b436478512dca857555332a31d8341c527277318f7a5d626f51cd020790dc813e250c2b9bae95b9edba584511dc86d5c449c8b603444d77269078a83aca5efb88ce81be98e55686295697a7371ed653c3edf3bea17b5db5c0303a9f87618fa251a173a909e206d36bb6986dca864cf7e14a75a4b730466848c17c9fbfda8c4e5a07f2998cda1e868618f5b5b66ba545155e3d15ddb6d34951f788b58b86462680f82b931d5d04668a8db106de506cd5d41f83d6c5fc019996653647f7d9a720b4ca96c76226822947d0463d26511e30c7ae8f577538410b950825e5d4745d83bff057086a37b7ce5dbff26e952f7228e631c5f1fad01c831adebe16fde8b3d9da5ff0567ef5e3f3c814cfd97c3c1dd82f1edd31c6b3b14d9eb5fd23cf3293862b7e658d441fa6764827598d38da752af7842f9556c2d7d635b4282cdf6942c59622eda4aa70c92a0ad55524e5416703d9809e654d1ed063d543015bc08498ecc07f4c92469931e664fbd071b06eadb746053415471ee9b019c0481fc198fabd32c66f6772a6408b320361cc69ccceca1c530ef34ca6e64d5b6853d7c4e7dc8d0aa7bd0de025f0d07434c4e4986d6930f936278d8f3c42124f8c61a8458f09a83ceeea8e1e4bca6075359681af46965ddf145329394972814ae8bac464b42e3a43d0018f6f81f953244694e48c9c87fa607a6162125cc3540ef138b7bb0eb9bbd9fa64c4d8d26cd74ade2b4e9c8f5315b19dadc7593341d7307177682f6349f21f315198c862cc0f88061493258c4f529d28dc49823c31acc70515050497551d9cb43156b09f57cd12d762a1d0d84907048ed069a13a70c342d90551b9719164f82fb1c236bb5205f85eb9c9c2707a48a9eac4eca7b4040122090e77310f37b2d9abebfbf11c389665ff46cf278fef5d82ce5c0b8967e987af00217e6e651e9034164794cfe4ebc7a428b97c42cd7b75f2ac44e7938ac9459c7ad83aa91444bded9025015407a2cc616dae049fb21c73613d0c7351d315ac0cd46d1343df705ffe5a9ebbaaa1b2d467c50877ff14ed1c698cee93d748e3314f34d1be5542e3b840c9588947f8673e67d069b1f60fa1495fc20f25a56dea6466436846bb4bcea001db350dc14de998317c12ecc205d9748e0b490d6912ade9c578dfd5c51a04570c8078b28db2c3e4d195764c519afc0a0123d87e9b94bf25170d11116a164c79e6198d5b48995f243b490d38a22d1d6ee37f4e3ee34a69df80ff014b87555d46470a07285552c47e7a9845beaa522ea0962b622e7d4932a6e5b5b59452af2ac48f9072dedc87825b3cb8c41a76b7cad73244783cc01365b81770433b4b0acbded3486d773168803aaa230aeeff7c29be082f7157007f0d2c53e6aacd3fff7b046cacd1f2ef28e7d843def8da20c7637d3c4df3363f57a5d2930368f633a51d0a97858e11d3e8daa4de7bfd40f276272b4908cd5d19fb81724bbad7f4a489ba15f4b05974af48134bdc0be2f30599bce800a7f46a2d350975c17a1a7685258d760ca3d769d90dc84282d5a026771a57d4e844162708c416d220eeef2a0cc28d94743eb07e807faafe9f14130b4615fe82226b47b4b2b86a2cb543c54fba81ba3f5c12fa47c050a68571c17f70613508e878f8f555e557748214d7abee47843ca28e5785dda9bdad2597a7559590041114912996e78432863e89691393d58ea70a381a8d93dbf4e27fa2ca07cc99544d2ad93b467e617b287396692a3b7c2d81e7cbc52735b0a8d7559ea341397b23a8e6427411ec1f3ebb44deb6098803ed2e39107b30d61675961e0664a11850a8f04886a41a9287a6634ddac0190a29296e613fe645973ecc1f6b581b588d0c3952ddaee09850d5ba56386ad96290017f9d4b4c623f83b69ed023127feea4d94e4906daa694f9ba420c3bbeaa64727e474f0a892df5397644f05846a09c43da1d1aeb66c0bfb74a6932241feb1192099416b393c93a3be681ac8b4f78bcbbb75708bd8dcf23f84ba47656eb398f95c2d7f8ac84ccfc6a85247d20e722d74fc9c6fd315a2d9cd4be6969721e11f0c64e85a574d7fcc1095931239699e1542334a2765939f635b152e41bb5efc6089a32d73e6db3baa202674c79b2fca72ea19617497d21211b6aa335e00f985739bfcee47b1a62b48811974b87682885827d8a4a625668c8f1f94ed2c90df54ad618fd789b1fbfbc7211eede82891f21de87e65fb2b6f2ca965425d3f039094f4702f7a1909a9905fd63c93235bb71666acf00b236a9cbd5ba740b20f1cb59e46237346bde5ed98965440f4a542c3d35bbd3d0aba86b9b593a7edfff9a078664bb1595abbf0b28bac34ace9080d41b3ab164953c3008c8b34a5f56dd2a5c5e4ba359253b16b6a5eb685b728c9d2f34c06202d4652581fe671aba732ba851df561770c64a935b058dce41126fc734ba06f052ab43397e6f5f0964ccf50b38821fe1f94e4271fc3b604dbd4becf88e7aa100d56a3ef0e63f5c5f8a213dcbdd2fb46b9acff9883eaac7b09a01ccc7dc6b4301f038dcb5204f9fa2e464c1e6199d72e0e95c4462ce8c0de0dabc3f54e8f065d102a458586aff34de0ae8b38a641a5c0669665010c574b46baa0b14e71826e726b63af1510eb8bd04d8f543c11f0b8cb9bd3308fd076a8c42b8227a3422b7680265b25b3411f7f126ab5e905de98e8168acd05087f69383bc09eb4f92e3024b6d71f0160477a1309eb15b49ade12c3ce50f14b2229c40b7a20eddd9211d73518e528293c3cde00f3831d73db318a9cb86d9d82c347375a3f207c670e22ea3ade20b337f4473d2c523ced5ef33b2197169755a43f00743512aa9b96e33a92c17348df00c31258691ec39e83d34787505c815486f01cfc94689d93e9c333471206171a75d9e56797fa046e7039c072c8f7312b0966f63fba14b070e7290c5d31b89374a392a57910fbbd7508058f7b92ecdec4a3dc7726ffa47420a315fba1e509982372bbc1c4d76f053cb4dc1feda1216fffdfcfe4f8234adc03fb5aa2c604c0629b87e04573003022cb9d2f5530606630c5a6c0d052f8d2c0424ec9fe4be32f43546f633f981e99be8340d67037a229dd9e241f5477df06d0a607a965b7be90d581d00a63ed23cbb48253b9706b918f338636faef1df8cf630ea844452528c6d4136d9616d5ae49ca21e8cd6254fe48234e1813eb39aa9fca045fe2ea453fa6bfa1e3abfa6e9191c0708dd00cf08e063dc7fdcb329eeaf02d45b1e7be085d5fe0aeb114a21a1144652baf5213044f911100593c3a22a5855f3bed4b4a53ab84ba81d51e50e7752d8d8b63ec72c3b6cd6e738abb8877d8eb7260668e8dbcc5dff27b13e747e7c886f8c116ec68c5d4f1e0ad43ac6aa5d7c5cc4ee8733a62bb668e6c78de79a5b812dcd04bee8fe6df8aa68c4d64fdae8a5a5e517217a61f01654c214c7d03a7808585af39bca227310c89e502f44012c8a2592dfc69a63199ce823410477cf03b5f2ee48e3625665c21526992b067e02e255f08b3d76907c2041fadbf9621048678b1689e66cc6067333b4e783f505c158c437df079034895e4013ea34664d5857871e28fb6d0f2986dde943f9b10817f82a31e456ce7da6eb93d222663014c9b90a006cfa3cc69dea93230cf27f1e6ffee3aa79dadf1d6160dfa4f9d8350d0da11910e147864efc64152fe104f952f6232853f0b7d48c9f641adc0a443b924f6b918b685bb2266d247b701913002966247182d73001960a420062f6ece5e735f67b28b49575219205434473d380dcd37409a3498d6803a2d8c57f0cab113fd4b0dbea44d2dabf3a747057eac68d7f26b31b5e21a9ebf5bb5ac33df913ebf38c9009d779f8132e9482d232173cacd8217ee269dfab53dd4ea0cc74557a30204ffb7f83a89f60d0a608a10d9bd844b88e28e2422d362ab80a03fddb9e5623c8cf57752ec1fa2e482f2085cd220b3dde2894c49d5fe254233a1e0b6c58896cc67de1ce51062808b4b360a43296992ade9ceecbc1b370506fe9b729cf3da032d7a882e846cfd43c4025d750f36647c7553b0164f812a9b65b8fc2450af6906ec1e1d965ef8b4bedbb9f2f5acf43c97c01532a87adb7d2784beaae9c42feac8b2cd13ade040a64fa06800b0c02881b73d11f92f9fb28629461a417553e785f78bb09932f865d143d0df16ff0247966fb2ea75ade3bbcf4dc772ffc78329738b1536e22a82f5bf065ea4c9c9936cbe4ce26a774a4abc3923d582240d43ab09ab0717af1353a90a7fa438288f8b754915fe6223f7c456682a1019d9d7e4f192f78c33eb13337c90ad55df40aba0f596a5780a191f433d522d889c99342e34cb7095c01083fcd8853c0381dcca7165e6861a986adef94e5a30124581e500a66656328e2e2f1d880d2e4c2ae7140db41b02fb32c402870886b688eb896086c6deb116bd587dadc1d69aadf35166847af8420490f5d56f2b0d25a159952e1b1e725811869f7bbaf9a99571de1aa83b6b586953d0897da616ca9c8a1cf655fd78ad19fd9bd8a64b946f284452f91faedafb15bc8998f04a4a8866093c574f0a9e95ff8724ca3edba3a303792ef811e7e7fa7dacbd3cee96facfaf0f9911eaf37659622156c9c53ffafab789fc3df968d69a9791482df9008485f63708608e9a8a6762f9d30e1f7a93cbe39663bdfe5b5b6b36ae661c21b453577bebd627bb2e9118268993ea1baa1de26baad0b13fe0071d16636293cb15e631ec980fac99fdd615fcd58d8c04f5edfd03aecff5ce1273dfa807bcdbf62bb31a1a8bc0136965badb3ea471c55ba065209802f9f224ba157caddd763453767f468796502760f0ebc764c4d1181531e06d4a4f7a8566ddd669703731670fa9097501608c97817cd415483145800585f24ad0226388a429ac914311d93a958af87b4ff612ebf99d9e81cee7b291b10c7b8ee41b5b5476994e28f0ab8a28b6e65e45e456fcf906f130a138ebd1a19138d484115d22b787daf66da628e951b7b269305940a673ac0b2e8e5fd418bd7fb545dea9316afe7281ab5f8fa61c9b34b2cf26c8481f20d1b8ca13b5cfd54e902b20285570309bcff38aa65d57483c74acfba99f94ef2e308154800b94a4076022f44cd3901c495f8ff948720828ed818212db98b5ba8e9b8bb6c6ac770731c539ea0d1c0e10b3aaaaa7e3fccaf7c2063e07eccb2aa67ee9333e5a2f03a0f5b5d6e169d821c71946bc9916c68e4a006de1eb0e5c7d7fb216535d17dd3098aae5405363fef649e273246605df510065b42f09112cfa7ccec7b669d3355948c140011e48acc02edf7309aea70920b4bea44203b6f466e6ab1769d262427387a13697b9a0e2580388a530b5a2ee39d82bafcbf9ff0d98a21f40697044367ecb5b56e39205afb79c1a70ef6bca9af72a00c826d4e0980220641524785271aad9d964c579177224bb8713d3f8d7aa49b5b799e03de44574430948c26ba0cd0df50102467fbbd12d0b33ef8b54f0b8ff4497e4b51180ae59247c503f4cbba7e2de8a18fa1472e7a37104576ea884d251b49f44215448115bfed0291340bf74f4c77be12e07bc9e59965b14f1badda40f5eb40bc6fbe0db2d2dfe0808cedfabcd5c54c22db81e6573001cc7d1f482c4a1c5ef8360335b3f609b837c789844bcad8a9f91d9f2a0c8697d5b3d84dad4da719214bfd7120b219197caf31799784bdbdb46d2f52ab5f31b0177aea266191b702e5733b0804e06ba0fa02919134725c3316f11f2522919e3db78ee9678d765e31409a6bcbe40b16aa39ffc01426b40b0d85ad4024f6f9f161644bfaf2eff04f2ff26e4515650902425355b1c02351563ad405ec38e590c579dd1a606d8a88c5b60c49ebea818b8d7301474f679aa42236afc5903962b97f999afccb123ac9672ed91e88dca66a6ccd705b9f0c615847c2b42c03a4e2f6cbd9834f3b6f4ba5e7a116bc1c0c0845de4d3d49961e57d15bf71caef2af40a298aec203579ca596ed0472f8e8841cc3fce3a8c3a08793c8f36acc195766d5ee0bf3e8593fe4d2c1310e636a27b04cc01e12d48a28aebe30d94091492d477a73d553f4c7c5f54800c70c52d0989bf31a20a30be043bb7719cd16fcc3e3098e1b05e1f356d310ff9735ed62961d8ba4354139a6a908ce3d35d81c5ace414ea855f95adfb5fc9c43ab3eb2a495345b0c8363a398ee1e84ee0fade81ff6b1f0215e991a0152d35d3dbfba4cb9c664142d94aa59bb02c319dc82b05722562bc4875cb9f0dc9091774743d76080fdcd8834a95fc3d0ecfc19bb6cba76a213c94551ecbe34bfca7bd559193a098dd6113c7d9c78c86fce0c111565b37752307a64b5e0337ae8d61ccacf721b4a809e3715039568ba9ec6d41c30948f2a23267dce761e0d43e6699a1eef151be621f48692cfe3808c49eb091ac5be1d1fc95f39196991874d1691546079f91ad4ac0b01a6b277b92764c64873392018cd97a1e81591ec15bdd17ae35d6c01b9884600a68f3acfa9248f334bcb9f5824df0139c92199c2ec7008f0010cacf96ffc6e0b1a6e06bf567ee1beee238b39b7a820e61346c372a051d30131aec68f2841c8b24787c25ca23dc82e6a1549db17d755cbc72be6abc1b293f8f8a8795f04494755ad3eab672fc9172b370b9a110f8a7175928827d4f41da0dbdeddb298d89c96a6e5e344c3b2ec9729f6829fe7bfaacf0676f5db740cc4ed7421355f515325344e6829c2cf6c7398d43e00f59c8877b819dd033c0f853e827ea3d7f62989b068a6a6751daa0f456262ca084a763ed47f9599606a1214cfc649d258db7a30331bc73299a0ee4889636745143948ba40a8acf62c2a2b591b63b8f1a3d76c040bab9f3101841040a8341c3668c05505232b1a9af71c2bb50f99836e4dfd38bc4ab944700dd8e420b561e8e16cba497f49b759ec76c1cd211ee96a6619074e9d8b508dbc8178d8c1836aad447835d14f752f21b0210632a833a9d01e06dfa86927db5d49293dcee1681fca999f88b6cf0758cc208b8a41f315599ae84d4193e26ceb7d02d91f19f0dc00eb7d7197fe80033990655104b58f1e560ad957669ac233ded514f1830539a1d9151a44d3f7f47bb7da221632ec2f03004d94017c0cfdbbf13b9834d4ab71e24f57ccfeec74909d24daf1f8e7f6de1e3a1774afae450742583726205ab29b833a22e31d421e9b1638558bc7430000d8c2a227b5a776e1dc35db2fa990dcf32bdbdccbe8399dcda5599c4c69fb18f1d9ae76693e704fa36abe2b0f127bf9ce873038d3e693ff85e88fa1340acb35966601ca3384e70c0be3784b17c00cca05d50c85f48393143c457767b443a8704ef878abdddf498a4978cf138c73d097838c701398696e0338c99417b31f17ac19f82dd0cf83bcfd09236e8419969ba4f678d45d07da770424eedd3032f7ade648d8db88d48fae886043b62d51423bb580677805f8128583dafe5413481db64a54848962f094f285023b0a41b8aef696ba1aa3916e6851779dfc45780df0643e3be54fcabfaa48545b66c84cb74bb4a2932317180faea7dd45c1890ba278766c91a5740a529170c516245146eb6d524fe8109057c168d18b21b5f9a49b10e2dbe05d7a52d6fa429f0b4edd5c5fe60450f51c19334d6eb7733f8421038b7e14e4b113acdfe7fe97e3877ac375ecc1daaf11c2161f5c09b55b4c610e3281c47ded834e3de1b01c8f22409b89373b413c8ccaf63fb609b63ecc01f78929c047977301e7816a3d6684392622a6b6962cf525976710d22eb0b4f39a353100a712cc496bcfde4d1fc28f21f926ab5700a9652e9881d19b696f25bdcd3a273a15a717f319b03ae012293d2d8c3de13c290ed84f59aedb22aa9187073df32aa09d3cea479dfdd407516260c6d13109c019b696a57b520aa880160afcb4077542da2ec796add2c855e411c9a41c1a3d02e2dd47e1290b9e8ccf14d92c10c145313dd236db575827df15a251c605ca428e46d3b04f9473c50b1c4d894c32faa10ef787d864b57e62ba8beff540388a29ffd8b0513f583117a79a0b67dcb87370bf47c05c03c38efeb800f8d4999e1ca329a01f0036511950d1cd3e5fd0ca52cc7f1f4f4db60195a088ec731e678f03043918cd9cd0ac13f61b99593d9b88920d571422072ff72f19dad6df0f6c2a9e6728a5b3b851104cfb9c0a06150b70cc91bbd878e014aa12f7fd96bb368032c625ac5b1f542efd49b04cae1ec293154cc289d14e21582919f9cb804dbc0427a3a8f047412661c9eb7ce03f05bde1482fe9ea1108d5ffbb96e814c1dda42dcd8233e0e705c4ecae687428c73ffd478f518fe8f3c548ad156b8299fd64651b827d42dfd7fc7347dd8d476dbf4215b18e4ab23d46d0ef3f5cc3d1453c6761404348b82b6dc8e28005eca3b8aa19bfac000d38b617f152b84c1e6cece43fec373a347af3fcab591d2619cf5666561716a7008b8bb3a714605443fbabe023bf0a3a1a8fff0b6793634a16c76a999f6e047b15d59fed67c5b54ebd217e55cc393197ca21eb6d6269bec786fae1d44b898871a2c38e00dc06a3b1514156486ca6be8b2f0234d24e8e99c4c822049ad0cc7acedffd93d017b8d314296a3f237524e81a58b3d92c3312acca48a4d4cb141de7db292f6de671ade18c65c171c908dcc05601dcfd25d68b539510c2b6bfae987955eee20ef505620d02f8682c2a0b15ea0ed04ce53708ac16c96580d106a5cdb734a3c49d2b4f57a2964329e9310672650d30e291a2f83cf28b844f202476e5af77acd9d71fcf7a60000ad83354012c7a391618b09168afa27ea6d5b0e78972afaf5b015f3c5b634d37213e870515d0b87f97779c012e97cc282340b4f932a216c04274b7db4de01cafa9b20f112359ea827129ba328800ec1c384dbe6949db7e94eac0baab0eb07f1acedfa91bbe28809d4749bfd964803c5e1c4fba75fe8cf0e761812e78b2f81871d2ed6bc127853321a57c5adc9c189fcbe34e631c31b4a2d60bd64cd97b2ce2d68141a1b9e64a25957fd0070c0f4966b214a52f6c7651b88edd922a775e556dbb313135d52d15f93775deff6eef4bae9a934981fa59a6c7b48b5fbb6483627d0b990e559fa695a97dbf22e4a3e1503a4b87802cf0adf9a4b5e20e9ee817142c030cc6497a2cb24eec35139093bc3d7e2eb1b7785bd1e9ac83a25f2ae9c24263c8412fc164fca9c93c2eaa4efa8972c7805faaebc8e664616d9c7e1a5b531209541e5fae436748959ae059e86d1411d4a4749079a2e6730c7421e713840269140cda6ad515aeecefd6435df65bfc2f0ff9249252dfaa18626e524fb3cf5ee8903caa68ef25f669734e5694ae2b9ab4995e132bd38b77e7189eea1fc1863ed849cbaf06f56562b49ef09049822a0f343fa1fe128697aa61019b0ad52eca89eb02f36bb8c7d602738a2665786c04bf9fabd5116bd6f94b9013eddf1c11c63e6933c1c31f0e49efa4b928cf52ed59fca12f2722d2c06995fffa5bafafb2bcf5fa91e3921ee8008ba0937b0d5118fbfb6446457c4f7546bb02b57c65b3ca0cd401974f138b996d981abb6193859df2713368e67c0fe6d8439d1f05025efc5e7a77177efc542e8efd9c5e549e148b3c91f8d41c7c87c5d77e778539e8ab99829f3c614f28d7e07bf50b319c4b9f0030433d6ec00c3d8fce1159855331d967604b945d39cb5ef890cb5ea04530234440ce24d414cb5e87bc57602bcdebd978a07201e5a2c96bbfa352aa503094719619c63ec8965c0480e8eaa1781a5285a976be23e4ffd4850ee90b43345c49e54f435d7e4b3c9e69bdf8f1d2e40ba4687342e4d536a943169fc0a7335fa1c4bb0c830c11d59df19f61c09312ac4305d63434a530c7a342159bf1051849fe0b78866fee923f0001787c36d697f1a733f8619e78a6a559b507e3cca91e7ab987970a383b28c62d4a8e482ad4597d34659cd7c2663a92fdc94b2f0b13f869354ab3ef48e6665f41a09bf4ee0a9c7988c6bb3c4447c2c66a1d8138454f334c49d88f074529a19b69aaa99c56eb24eba47e5f88472d05a181569e1222ce14d2bbfc6ef24cbb0a339c38ca0f3e66eacf82328ebdbedc0234f0a321c583ed40ec24cc44d8a95c2d35095dadf75b9ac010e88acfdf2485bfa79633ad11598bbf456856e71125a8accbe64d2522a3d4625a9c63ec8647a83c1ea5bbb3c6197a5d129a71aaa085305396d0ef70e62a4eb8b6ac31c17a78fb2776386f34d7c38cc5ad341d20819eeccc772284345d7a659792879bbf445393d5e20d683efc67fe5373a90cbedb253284f07c1bc08f53ff1422b206cc7c5f02a5af19673a0e222abc988d82de11f779b81025ca9a38e13e0140d5afa22c09e682fadddbf76db3115a8944be5c3b9b9bc288b70e546051df0f3dadeb20e6eafa40c60f4a52c5166e6bef55969a86008a9c8fa40626fbc996969412ca39d0f5cf6ff19e30f43d4d5ab1baa2f17b45e10fcf4f687c1ffa99c80388befb567a9d28c74ae1abc25153d3e98491eeea107bcc0baf93890ff623af69f8ae5c477709f1338754c689a64c1aea70c6d74511cd26ec0779692c69d71629f5b2342261a94af126cc268819fd255513cfad0cf2b88455f35739850818378119f4c1be3ed3ababac2627065ad5b8a284ac03e45cf93ae2c2bdc96061becbd11d279c28f606e619c79cdc6dec75cad7e79dbfab84134464dbe4a8ba95b68d0d944986e0d7a426981c1465b188053fcb4c0e1fb83107a8702bc2fb4e684b361f46476c1c79689abcef5c460cc3d65bb2150cdb235bcec41f61995401c698428de04cdce66bc069ffea780e353768dc0ec74aded55a40b89737b9a83a6c1e5c78a7b0a02c373f3effc83e2a382a402c9495f56c59009c09089036021e72cfc341ab890e9f21b27d445a51123e823562d3b780e06c207f2d07116be8bef1faded7cf57a5d359faf7ddf0a6aff7fb7c5308947e3e7a772136b38b12a5728f68f702994cb2685f84b46f5c300e1ce7c3733b66e639a7ae4d78d5c2385aeaf354f1c71b805ef0cc239229cb2639402810bd9015f24d6223e4ac37397c50f048f7c10ae2819025d6794a3ddc9b69a5fcabf8d7696f7303750a176f270144a40d71d05eb22ac2250785d8e1372076d7cb3a0e896e60323cc59fdcda798a9ed58cdd500350d0e410667eb105ac539dc90703d3b77a4829c4b4c6a4c0531a0968715cc19fe95abdc6beb5a24e910e6f014a41debf255bbce41dabc8c747e27a7f53693400a60d0d408e728a7dae76235e08b092c8547743d312e1a45e44d88615cc4f8f66f815ddc08b324fa34f0d152b13aa4ee92abdae66951f31153d5e4ab6fd1ccb4f457b5aa808b0275881905633a6b682bcf0c8c382bf78a0d81934ea07ccac46b37b2ba5dedaca5f4283d458aad3e8c0e95112e74873f81ebb51fcd7d52b0c63cbe2cce7d11fa57fc378498c33cdfff210a2ac9119644de6523d6cc784f19488d4db0af995f384a27de507792c15036c9957f2890e593609ce65f1456058a47692210be16fd15fd1c4dc3329623635564dea736753d2244e3eaac3962785ca39f1836cf983897e880127824d842f34c2d969d5eaec9404f7d06497dbb3ea3e46d246f3ab2382fc128ea43d010a62215103cec1c9c583109b56873908d9e7201d5802df4e31617926905900a3682d51832b6be93506279035e2e42e45b706a5f53d467826502b13fefecc804d969e606960585abab6fb1cd4690b794edeada3219fd98613239ce1b9e1c20b0b0d8adc0198bf0ee3de7c22a165ed90d7a2bcf83317ab607801870fe0708ed72a5a3c5bc81e9a6ec3ebe69b3b77c3af262559b76fea2c214830895505711d6de07b3282e97a5be7cd7b6713d1d40129d358e950f736f63f9ce953bb15c87cf0cee2571fe74c72fd16be87f4fe5127badb433579e35a21d0882bb449580505555d0ec89785d31ccea1f3901f2ab8ad4d4731c918b99466dd6efacd147f3028f2f257a4732ada16697ad88b3f1bb8c85c75c93b9d58c072f3cdefd596c42a1fc9140c91552316c1bc8f66e8c7a735872eae00a276e79d6d76abad324ceb62654b62e4daf93e3c5783b282303b451262d827815059d8c611aa50e1ee8cfe57d8d695798262106e62e28c384b8898aa3a6265658daa89e964498b1efacef6bca40fdd4ea97c42e9b59b22ae46d7d22a8b6f4b62e0f4234db40bde730d6ad497aa1beed5f3c98695bc3fb625b15b241438875774ed889cb89aa21727932da98261ff03eb81d98cf2a334186a420e15a58afb2cdabc25c8249384d8ea21b492a2dbf95e0df8eb04f940d1aa294eabac9ca9c59f99d62bf10dc5a6378e9c9823108a8185d5f65623be53f92bb2e1eccb4c3a2ddbcaf3f798863f79c4f57cdec737fc4002c17e70e5c9675b12cbc373b8f6caa42242db864b1f11b0a91de91f725789092db0f68f8fb041c4e83ee98711d9c402d39770dc0d55faf4a304a77da64b81076884feb689f90aea066b906f5a751fdd48e82791227722437509c2ccb4dfb425b11b405930d05b0936ac9fef4ccbe8bf178d637f1e586d3bbbaea29ad826dd455d9ca828fc0aa96af58ee27d24e648ae85e6503b6c87afc3fb5b4f178c26c1b7503c04fd33ea65f49326ffe2a31b8589e01755698ae22a6438aa27d9f12e223717725375544f5f128723a841b54ffdc530f1e3930e2dff77314391ab6b399145e08dd2fa07adec266393816fae65d5f213c4bd9874424a72538644ca9aef9a8105c1cadf49c9780c2a8ab39c9a40b27e2da28f710ae40e3ccaef427b99f909e2d80a148aaaf5fd1f46bdd47c0fc7fe6129f9d98c0764cc28f9971d87c7082922a3173ba87317e6c68a1a2f1f5efeebd22005f061e1cac77f4c7aaa12b1e60a4aa4bb12712670bb1875bbff5d55dac245cc314a84d9b7f6bd593f9534808916c928730b6848f09edc7a931e7b3af815c24805b3ce9b446b3b2bf67428ae7e32eabb3faf257e2ec2ebd4a554044ab61365a98429e8a7ae1b873cb080f42414c6d56e80e22f20c41d0454618cffb0c5968f6633656171141e9f41cbf45050b8ede0d6e240322c8f19a446fd5b47442b93138e22649253ea8c5c6d416350f4190b727ed7febf10ce194adf352f74949dac49917d31063f2e492a37218992b39f966c5754d27b2ce5c31b3ab436765171513fb7aab908efb2f69ee2c6f7d4ff0bbd47ff12a5f2d4d0b1704516b39f93a21708cf9622533a423f0ba78e98be15a54e44d644b2b1ae055f5e31a0cbf928cdeb954ab16b3a154a9e35e289c04b7391a1fcbc3897b30e2128f1357a8f3174fffea5d219513bfb8a184f178745b5b2c8de8d5deeb7d168189c2b8f8b13016d9d59226f0fec426f1d50d17765b51cd265dec736c886d29747bca9036bf1367475d72bc2a9dc003660a15f8e45f230c49a10989333b9939e445fd4dd6300ae8045e9e8deb6f19b8560ff59273c004a54f939951cd891760bfef41c41db162cda8a8f029d965d3adad2e2a2bd77beb08630bdb4fc7543fd6cbae8b9585b9e9b654e9baaa3d1e3b6cf67da996c681ae2668fc96b2069d6e89b3b77f43bdf2d2ece0f0b65c71c6e028a1390b1da489e79dbf86680734cf32f12d1874f62ff809d0ecbe68950d843bb9b8f3140ff2527681016d82b7b98a648175b3f588dfc8ebc3c21ae07695717883a26b3d517806e5b14ebf4adc8f6cf4d38d8f31e619a32d15957c8a56d4340b063446c9c3c76a36108db53a9481f14c2463b6ad04ffe63efe2540e615f64f7d61c9564bae89cafe4354c14ae6b8c882b505a075813d41f4124571ea55dcc9028460806295c26e0b2c01d4a7fc146fc0275d2a3cd041360ed6d2503599cdd302f2eaeb711be3fed1d31624f8e86274a323a17753a946e0ae1786a591e8132c7c65336969559f29b13a9ae10d2edd10ad6672eca1b613b9f72fc09d2782f7fbf07a1813e6b9d1ebed1043510336e0a8324eabd188fb0e70423c4fbb12ccdf8f00cdabafe619a312e7a861ca4aecc2454d24a8718bd7e3aa1300d2d4d4091ef52765fbe13474f17449c0bd9a0c18d18a2c712d8acf51490a05c6969eb87d3389fdd2749640054ab0b1765a9376a10bc770ab42001c45eb1666deb93c304ba064060a2809574ac91ee405960a43a5b5f11b8e6d32194b9d293c93640cdff1c4351a8858a6fea1fc1389d2b7368270329330795155c33fda2b3410c5dc39c7e9091b91009eeff325b7a1dc5d8a6ec64696ddcd75593b90d7dde899300b4cc1194eb9d1b66cb520758a1fb426a31fd231df8bcf31c2df48f50b1fb3cee794e358783ea6d04dc7d8d69349c7315476d3981a56d99d0bf2a42604742498e8fe2b0deef0aa2cf7417f8a809ced47f3d229bbbc7150f3ec210db6256b0c899572410de088d99ee86e897d82acea2b59b03ba2bd9e764ac7faf803f8e87c12582eacf88113d3139e2de5c29eda8e4be4310c7e84ce611ea7b3764da86f108a767be2efb53fd21f9b2d84fac55b1ad779d90b2c8c50e9010d20734e5cbe493d06a9bee62e19031b803265d61f4a2930fc0f16012f84628370a99e268cb82e1c481a3ed32d8c68437500ff5d9084937f2e4babcf84435c3c0b09761a01010a66411c9167d044a0fa05929ea80ecf11bc16a1419978d80090910a46f427079539310e69365157e11fa31de43869df9ff74ea874f96fd8fee9bb50badf00e2f0105219cd90d219815d152d0a354110ab7c5b3f6f19414aafeda8c00ac904f805dc8b2b333c5b05ca45ed64e98b12b2a2e4af141bdf068dd33b13f54e7dd1dfba19fa201123341d957f9922ecc734cb66283ab6aa08bc66be846530ff9bb082cab6d8fff00d1bcabb9ab63786621c2d4e64441b9561a5da4ac3f3575c2b22dee039fc98d60dd8fee1a38fa247ec02420962a181f95207ebf17d315648425ce1997fab36b8e06636a2e22dd70fb4e29ca52b8f8125d5c2f8dbd6cc336bb139f442fe5d1cd0418f2fce690bd173a6a361a6116ef469c797bc1fb378a69b46ada2fe53516317ab84cc399498de8a6901d8ca737fa13996e5959ee03bce0463780a6c4e62bd939e89041ca8f3530c72ded3e45b7ed7bce6337249cbcbfb78fd70db17978e8a9f9926445c97c599b6d589b48ac0a9b384fe119cf653329dd9e0c06d1ebe06474975dafe8718108c8b8072b69e5925aeec0da48a06037cd5b287557bd5a6fd12aae0a8abd45a9b56aaaf8164d1d8bcdf4d4db3f987831f563470de5c9cc6f69b863abeaf8e84015c458e954c694055cbb3fa860ea1d9e6436bb48753074349aa2b2376979a833fd2c2113652730edf7950645a5851e83b93fa82c3f3972fe226545cbbcf4d69a106643e66c407d2c1bab138a88fe19b5342e51cde83421b56bd89af9a03f6a7446e977c0e3b73e4e513503bf34013024fa018ee0b0c71dd882129f16f8fb4feb753c0d74c4a8a67e304591c4e1d85186f4a0bde0c242ef5376c3e1370bffc3e7af56cdc83928a927462676b9d7aa51cf8ed9bf08d21afa8e1c84a052ae16015d1432eea9472799849d69b816c6520aa29c3780cc1c37c7fcea339af0538cbc6c3c33a2b218848ad031077a65aef1ac06217bd05e101880cb05b94c4de32686ca7a388e718bf879fcc40eeadf707910a62c723d0e8de7e838c89df9d26c330895dc58fd422659e7d16896ee9ae3f8814094457dff40f4698784c2c5edae8abdc9e80eaaec3b84dece0ca4dbc9d078bcab1bcd30a1aa49502a885b59608148f18c6e39687f9c65e73e4fcaab6bb3bb3cfbcd82e9827c0664d0b5e66b8fde623eba384f2257d6ed65d4b674a2f2317be76c160fed1f2e4f41306fd2788b24b2a970c408aab0858c482fb9b2c22e18c70a9261c25819a27b245caf3f6983b6c09a95a12a9861f1722b2453f353dfd7a9078ac9110cd827cceee6028acae30436dd8deac884d9726701ce1fa53807010eb8cdd881cbee679e0329bcd1099acfcb4ca5f1a3fd7c552109d79ac97c2f0a0d2f30fd978d486e473b5959f1887179e93db086fcb89da2dbd62c853354259bdf2609c3e80d0bd0a2b3566c681eb9e4cc0f180a441633c7ab37321ededfd2fbb7c8c1b075a429157d120a3bb2cefa038a47df944b852677cfa39b0a8d29a9d780c4f5e6c9cd1ecf9b1971c184705c6cbade0478b6ad793166b7b4158e8c1f44388cfdced60098cb4045744ba8e930009eb679b631550116c1a76d00c1d35e6a6ac6f37f810eef0b48f070e6ada9817cd0e0d489086aa5dbb9165947a728e44cc661fe974d838e259e506c040422b69a4aca55a42f748225ca877b3f3fda8a98f6e7f4d53f06aad843892dbe9ec2f5edf8256478a5e0d53a5386141c7ad275f9c573eb72e5519a5390423b6c236e152f011edc3fe018144c4f9a2fd0981c602010c4493156887ffadbf0208ccca3f1ed283489c8385dd3b6d849e881fd18ab2139897dc4ee027d1ecc79d16c0f4b0191b7de5cd736c951b69b027296fe24c69b5ebc4e522a13c687ff2a5bc8277e8b23f946cbbdc12fdecfdbf0163507724b4f83bd2198543caa822a221d4e571a114e7a483a2a6ffe10f2fe33f602ff01aed6bf9ec77201bbd9209f2fae70844fdd8100ff7c0ca72e098cd76d67d552ec7ce41a5ad66c567dea20d5dcc04bc206fe5231111fc819d20fa26a370910a76208c23dac25c6b26e32cbf25aa14b10fe7d00e2ccda1c8ab2871bd111f3a7d8b4f1520c3efb5aab7201d01c6f463cc84030abe0cb9653fc746af1e1d6fa4f8b2816f45087fb337d25682c93343772aa0d66266c8d601fcaccd4d9d3766b3829cae3f8c1905b7bcf2da012e66f33192c59c54fe4183774d6e05807d95b4626bf23db2af5307765bb851cf62a4d97fb02fa651a40baaa8ffdc8af6688f15cdbdec79971a18cb3028c51698e1229e91d88af3eb58b57b174a0eca4245120b2f6d15985b916b3bc576f6cde6a9759854eaeb8e2ce9204c631a1fb24fa3eb9f1c35d1b408294082e09f51c1df28a39e29bcab943b20b88c88343686896da3589ea7a73e747e4f7917c0013a6ec650ff39e8844ae7ea5ecd9a49f9286d8185c03aa27ef80bdcad477ac5e78e3bcb63e4b0cd11f660fcbb2b1f50a9195c3311fb2a201c9c53310f02dce7c4b7e8bf9a25c46de66cdc57d1b148c1075615fddf79331ec4df7ffeaea45a54fd5e5c8b17f36c7326b12077a8dde372cab3c355643e5f350ec1d6d6154fb90eb9a3ddb66ff95e9a698586d9087dacb299804f9e3e693084859d6071a3467c838eb68966c2228eee752a85a86a647647aa52ce7bb8720df280b1ce380437377b42691d43ff4942c138edee5964fb7333c958af5c3cef88d69b5ca7d09e8022ed5e178759b2ac51a9f9684b2dc9cdb056f32d50f28ca708d12a2cb925e0e4e9764df5c30a449d7e4c9ebedbd17e40d808c5aedbb6e95024d56f2e3d75b7bb500e33160a32a1bc9933999cc84dd33d0c8cc9c6099cd826e16efe7e9f5d8a6b8848de2d98265503f993e161c466a42f93e26d1d81568eca36f639fadd431578f54070148e7cc042bc82ab2cce8ca5c0e5b1d6679b3e0ee7dc61ab70eb90af285d19efb5a6583ec7620c8c93d520efc39bfcb46fbd198dba1276a9a81b3e6794b4991047b378b40909934ca2442bb45b5f6137924547e6e4a64e0457770302d66c818c177d2607e1b46652c994a0e101a0c7f884fb5b388dc4f54bea81067a0886bb03b4deabe829b44266f7715577c8cdf7e2bc0736ab3f173b1d4f4dba66a8fb64b9f69375045d27852a87a5f449e955ba469449706b1b8a65e8b2610205b14289c487fabe7d081472e5e446926483bd41d5d417e24e440ab16dee8200478a5d59c0a3c58f39690c14ccb87ddaf4aaa9c1a69f3f483df251c87a7f47919b37a7537137ecbcf0083dc3f18ed895049389ccbb2a7df08d7939e8e2c2f3ec5d70a38056e91487d27addae456952843e6d898537b1b601d18723c891a90770b6adfb2c5f3d80148ba8048a20c70af46d6d93afd06efa80670a9cab7b31dfae70fa7f792079423e202f481a79a9dd618825d3063716343a6b212694920256bdd79a65b62ee7c18ee3537d1fbc1740dcde8b14a59e98ecad492eb5bc011834ba05e049363fc6f354faa4cd8237c850e6ccbdb66985e957826a9cb3c82b5bc1fc0ae7d02b7fd1d5b3d26c46fec878e3df1d8d3470cae81766e640c79349d3fad24d8eaac304f6ce00d6ef70342a625931baf8dbb68af596cbe1868802de8fcedb72304c736b511071eaf4f8a4d9d930c6ef8057ee9cb21e0a7355cc1020a14a07b10aefb1b10ad5e169b9d6179b6a27a372ca3b51b17a836e3d8415e121ef99afd5998c7b3defee0f3eb55cb90edaa9b0b5d2d68d0897e428e67ad52294b1fc36329716376dc1e9fe51a315659ff3de3cb381927b461a6441ca475eb75fc4f9e7e8c30e0da30b972d23555553df8613430d3a1a1db1169d36c2983d927a32b5c5be70803819ffc9f3e8c5dc2e40a1abdfe59bed2bc1d8e9f07514763297fc1479b0f12c2242feec119ee886b2bfa4f66ec27e5a1e9635429f0baee64dd453c855ca2d0de0d3785cc8fd96042ce0a839383252bb6799235a7472998b45140a13c6abc86482926553a8759386cf9a370a9a1c69d8e6b233ecab7e3a8280056830a068390a3fdeafd0ab02e33c875f1d47791906735c74237cfc4e982d88d631f55438c17e229ed175d39b4aa2e626857a24bfb932cbe68e27e653ebe6b5fa7a65c997f4864aa09b486e4b2ae1492860a48e48ad94bd082e8ba99645ea18e39e68f07baee0dfd3a7964dc5a430afb9b846d79539cec5640315a8ee85ad23fb839906a5a94d35ad280bba538bce57124fe516ab750ff4ccdabdb71cc1ebd41256d1e1d7f78a2217aaf22f0da9c1764057613aa12419f60fe938860d1a533d0d532c16d5e463478268eab3c19f82c315bb1840aced1a47ed62c3ac26d5988806048df1030327a318a616497170c9bbf74e6672a4828bbbb0419e013e489015decb38d277ebb5beacffdbe78fd93d17c1ec329b50648057bcc4bda52e35a96918626619812fbd3a5ac6dd913fe91b9cb809ff53c9590112184edc9091d2fcb3e8347c8ff0ee36d5d96741fdc82a83ee95a15668c29d923bcfaf1d074859de959fd0af724685b6fca0a8745a1575d2b36ca4e292b3d80f50926abdf1d3e7ed0a440172be471c762db2719dfef4f3588f3114490c45157ea54b28f51f8e3f9c6e5f2dbc27faec93948bfea8d910cebfa74a4e8a55a0a412e5bfe03c761317a63dcd695bcfd41c1da335907af5ec7c89eecf4e9c6bcc515a676561a5558c7dda2fc929a477ffc4aa2b6f5c61ca865135d6a7023807f69e34c28133f15df714652c3becea97f009b8384f8cad492496b7fe27aa56fcbade2a28b6da5f6d18f104002114ccc0daf35392424db8350573e7860875c5950501da5065d3b69bc6120259fb1c8144f366b107426bcf280a156dae6bde4bd02ff07965c890228b94154db179c0152a5d38ed6959cc2f672bcdd5801fc5707ab76c75a06f85c8d81049d42ffaa5d4e07162ffb9ae90d98179da43c952c1260c6e323c295f866fca1f57140a958597d034106d2f8f43d16bd77618d6598478155258ce014fb41d7e63e7846b85cb7d837615a4e1d10fb4a80c2aef6771cd077ff6c7c6511486e312cc1f3840cbc439d8e435c0bcbb458c8215290f0b38eda469bb8b5a472e3652e89fb08ad1f39315742c39c4ff9a34fbda293bd656c0cdd4ecf1959fad5814e4dd8e97a7bf392e3dc9033f79b15ed644ee600eee52f6c82c5a8e1c259177668d60c3e70d4580fcfacc103a2c416dbf3255f65c8a5dd68460b80269f8bc5da29b682c8aef74ed0b1712f6db9c3918713b89398e0a86236005066dbcb8e7712e46ec40ca02c0e2333109479b9216d10612586eed66afdb3d9b49b8c4247cbbddc2e1d05041c9a41e41aae4c0b2977d5cd133f5203b6f1b3ce07904573b206c0fd1443d83423a62e0e75d7f0a1dc9df22d7d34068b55467132cf97f45be754fabbf7c87e581fe08f619e68637cb12f6730b54ed89055fd0f23a44ed3a526fcce5131451ea3ff041ea4b1c7ac918c5754ed714cfc4b51d3ea0ffd29516bd444022c1c1a665e792edeb0b0fd61d20823853598084d03187bf5cb68f355550d91f07f43e63bf4e316662851c65afe52a14340337d5824a2c8677a3316de65ecf001c0f77960a3e729be73bf4ba42a04347e474c693fe97b5008adb71e2ed4f6d523a0f5fccd6beb8801fdacb8abb438c7fb0fdb169c89143aed15992fdb306fb0b44418f15d283d2ea4e613ca17a7b2e98ed03d358645ca21413040704e9bcb6840cd05b99c3adc47bbfabcf23fe933bd870da75aa306a4edb6212dbafe39f4f39617a7d969dd6a093c8fd51d38600a0a42efda8b19d85e63e9af737f62de3779bdc38f48b583c0e8865fa3615ac49996b4b2514aae1d61c584eb23e243f84b485c2e4ec40fc29ec4e4cbf1f215b9ae235e0241d57dffc83fe3b0c749ad869376a09978a98de329d374cb502a427f5e3e1c7d9f0f014f6240ba95fb3e13edd6bf090111ad91291c03a1e05bf0806d72db8a67dd34d9f2785523b9e7da277d8fba7839c7b562e21500c09c0a259183deee7f2b0d81e7dfe6161ab588127e3b031a867c216403b1843ba03ce58df4525b184d11e6b08457991dc0e86413d67cb5243e5bcd54b9e7b89f4df1345540182ee1763870f27b5be12bf64e19a428fa19f24f8a4c77825ba90bec500729aab2488559feba37534a44c940e2a5a2c841460428f9a9c4e9c1e55398d61c6afca68b8fd3614e74e624553d84e4b996474b4e7ab211fd9bd56ed2eac38939cd1f6526d971da965d35ad893adf14440ef0ae923d696c0de494157b072a2549d51debdbac696a68b9e2bb6dd604502d0e151c069efe19a80aa543d8452f3827ae3c31513d56b1a51f9a2f29a542981dde930dc23ba00ca7eb99974657c012f2a582547db034618504aeff5ac53b0f3f2398c6acebe117e0d70dfe4bd85f01e2f6eac86f4f747f80255d23c38a8088f0d64acdbb7073d60e13ff54575264dfb571c8b04fb55930793e208f46ed7e7eff87aca76880cd1ff8e058fd71fbdac13412c23d4e103eb955eddbedc8dee5c26a4b41430c8aab4367ca82f15396da5403dab5c82c49e38cc3d17f03044b341205f5941af839ea81e15410df4d69e20243a1623028ff830fef898cacdb188f5c5842773110745e2a7b5b00161a64b4ee94d967b0fdb20dd51ee032e5f17b02039299648a2554a13311c030d11aa7a7f64ba9c3b3b268d4d9050b8d29b5642d76cdb5d079b0f889cae4d3087e0afead300ee96bfae61cd6ccd2a3e38e4e08636faedfccc3015245095ae61336e1c5e50f9a88c9c512922426ffaea594653d2f6f9eb516d241c00ef410d28cbd85981bbc582b5111c1238303c443c91c4ace7e0f533f02fca4c568631d7e45412e85a92de35165049ea5ac7938e29183f9f7c1b4dc096b097816cda3340c462adb80c010ea0ee784a83d93f772f4f5573695aaccbaac6802a3a4b914f03d99d781042cba5ee40affe4cb851aab31d9263b304b42639c369f7ca0da807ce8c2a01bc9287bfd89360e5c294675eea0a53c96a2ea12602546d3277ccd4c07bd77bf8a560049e2184c8e6e7c03997b8824c2a2e1aec5316478bfd4d11d0b60766ff8a66a3dc3a1228e01780b3d912e2321ed707c1bd4f9c6c157bfa06e66207e71ac01ffd487f77b78d91ab906c1ebb8c9a7c1e4d27a6e215417d377d617b0f532e989bbf69f0fc10408ac0e2ad636292789926ce9b582fdbbff4eac48b68863744fa053e7ff770e52fd3b17ccd36372c715736a4f48429f76ba538b39983d1f70584db330522ccc337bb76ed43e8b59efcdcf5d2c1453d64086f9bbe45ff69472bcb9c5f231f88e4dedf44a0c2def1a97b365a7671099aae0b419023442ee282b2fd6e919b1241a4312bed411a59affd393db517ce54c08d336c6047e9c92fe18c0d8736a8885a5bc4182c2fa46fe70aec7990a23939be3c2b59dfb3876862861abf0c68cdaf26a96ff1fd2c5ed734aaa12863237285f9de434714055e895bc5adf3be6b09ab485d45f32cf8a28d01739e355a4e47993768a51fdafb98067d66bf34fdd6c9e25b78a35c2783b1de4dbcd8add4f19f879538744b96ce67896ed616c1cb7c9b64853f77607d0854a0435c030fa5409a5296db224c6d718acd49771071d88ba84ddc364984e47ed799325c1bc872081cd67e12739fa5694739538ff31715aaaf69326ba66a3a91fdf1dcc321e4fceeb516012ce0ac86b035ae55794249dfe2b099929aa74ffbdb5eb4b3124923a6523f774f2687ba62655fc1fb1920b65fea6d8c00ad9d1498d43508bc9469280283a1739f3f28fb667fe5991fbffd1047e8ef633abf05588987784a9f02f9c3f30bc190c5fe91912a6a49d22395d0ec11e0d1add9c63c1f264618803bfe5029491b900dff1af47cb4d07358c64266d8f79ce57da3d71868bf8964369c4ab5cb95064f08d2114c6cfc16a3d86acb7fbebf2405c5d99b08fac23d9a19856780ce31199c103ab9a74796f69467dbe52db05f8dcddff61268dc46151eab5c6f7a3653a4939d4f7002569aee34d0affab67a8e0e9046679a433b5de919bd83b444cd4ab52af1699cf05857dc8e014d6fd8932c2c19c594ef8134a78e14c13227dc2cfc9bb6e2a5e6003045ded4809c14ab9e20750112a111464cb547a2394a19ed180c01834f239b628a5dabe5c8369dbe1ea8994d12a97acad6ffd567e8ca400df996ab58671d4ab31d7c3012b94983186157eb19aceb2b729efd58a56f5b7de97cb8a500567f10cf3b67eff8429ebfddb9a4955596b9d2242b4a953257ccb9bbb6872c165c9ce82fa3f0946f5a121972d97e499cee7cd82c1f012b193490cc97d545e6d1bf37555ba80d879d78126db7033ef95c03906379434cca3fa3b0c562d81abf836e143cd9656621f283a170577136c080215c91a0b3352c359791252869041be4905f285cbb4e578e142b8808e82d8e16711513388a5cbd7e80e591f76af484905a5f2099da14b1c62963dd897f6684aac4a0c764df801c63eebceb39e824efa512cc257b9697560fadae9f579397171ec93b00d9da51e103019ed1e155a9dfdc060898bddcb57fb245168e262463d1fc813640d57c8373003dcbfb979131e01c7515a267d71eabf39e5db4582dbdc92ff13cf58e8eb2cfc8b720914bf6a53aec20a73d0eb091939b1e01da082ff1c0a1ae2800a4a8e5e1a0e2d09447e548e1558f1f4e986892b5eedd37e24fc7618f09fc142ceaa0e0d90dbe6a28915a17d32d71a39440a02a5961e50d3083df909989f9c3f23614d59888e28858815af877922eec173d7d180c5b5e1458bfe00b4e2a176748c40747b3e2780c06d24cb67e2cf03344070e789bb48879c3475800299bb492591211b0e289cad04f9fcf89d6c03bd780a3177cfef39847e5207ba374ad02101c4d71061066ff235a67933af9565d8561726595298d2f0f47e4af8cf2af6e1d0b923f1531dcde94e2694c53845fd215eb94a3dad2646fd06089c8a9f360fb0bfcadbe941e2509d3d99ccfdbd2ca78a02c9e86c22f6deaf5bd8ad631d405e63c639aab605c4591febf3c359d4d7da4ffdfb5577016b0e8296c607058a027f045c644cb3528944f4509b43ba22c1d899cd56f8df4b3d9690b0e2b0842b6f9a22bfa2a8daa26070cebf393b1cc1a6c4986b699d92250879bd36edb9c1f49c07b0e797a94ada219d693180121daf22f81ebc3b49e6adfd145317c3f664227706b674ab73d4bc953890a8a7641d39aca186f9f0d180987d65f9b3a1e1f666a4b931e21eaa0415eb5bffed1a170d23307f43b708e6c3d07c2fa2e03536251a32013c3dc836ad366514a5cc9da8b412035b458d56538e0ae63174a5389dbbe080ad8c65c8240d34111a30d5eefd8761ad8719e567e9decb5f0a443932291ccbce15019ae2c11874b85408400c3a1d207d5f355a82151a53d606e04311066fd76ba4ed6fa91c773ca5dc83609d1b1a7ccafe487decb85075f577957a00abbf0bdfd901b7043ade1eff75abbe095a0a0180d9a83252f59e4d7c673f7fac83662f2bb9695f3c09cb7e11c595a7d78de048cfdcd4a276764406c44e93cce4167ab4440ff9e6db25cc6e7753aff98d2999c43916ce4ec679e2e6c5c3b201005c1d07db4290d2a3beec894e5119ecbfc060d9d69867312cb6550be18348b52f98b9833057c5a2ad12efae41f9efce552a5ec651ee14c499616112e28c5a7b7e31fef090a37aebf8f591ffd0ccd4acfc85d3927601a5803d0b7ab32c6f07f167b4378fbc71c2a5ff8e2606ec7c167c69ceb7bb20fd928ab0765fd4056c2dc509e886a3cc829aa736bc65bdb693644dbe593a3809fd26d47b3fc22a9ac1ff41b31159a9bfd5e72c693c23d588f56da889476090f39d81a60bade4ce995023ac0c9bb5ed8dff92d4a1df109c9424d4ad5b5c16ad586295ab56bb0b9dfa345f13a7e7194568491b3a19c0d0b2e7078a2ef592fe96c368f41f79fe3fd82d70948a1c435eb5d952de2bc3d135110dc6d5fe3754bb3814b439e73206558f33ee5e35ccd1e8deb9954961aff23827b88fbcd8bdda8b2c25a374657094fd51ddf31af3b7c9f37af6fd3749633f188dca79efbbdf4df21c4d1f72c0b3c30eb2cabe6c229ae2b3f4d4dd2c36d0fc360930baa71bddf1548c5fef48b76268c138e314f20cf400305d04c9fd7d898f02bc339aaed5d728aaccc0a90be058b837829a144224a7742866ca7eed3658d0643cf1d3b3eae3cd5c38d7ae82ad2b3a9882063f1d27ad72682ff62fcd43cd7044f0da7dea60468cbb981bb9560042725f9aba3d9c22b6447e3375e0042580a1a3b33b8cfa328d6f33131771865fab3280128097a83b5044ee6df9f1abe11392c36f8a11f3e4d85b1d52926d7bf8bb26822f5394c35c5562d72028d78fd386a86971de09adc692b938cd759fab904a5fc3ee28fc4e58c6a81e687432dc1a46f5c26c37cbc61edec75d2be792bde96a41a350cff6e190eb9c76839f229bcc3827b2f549a29107399f31a214f8a1be9f145155d195a2b289de531b29c853344b7a6bcbb4cc87bbc49109f6ccccb123bc6352a9c58c713689b005dab759d3d197d7460063d118cf9edfd229299e2f45843df248c563a771b63233b8deabae2ff99d63cf945a3c10fdbe183e570694eb518ee32f2dadcc9df703572cd831873f11df97b5fe6a1c69c80124f1e9c27ebaf747f961d93d383e9d5cf70e9e861a8311a6c8347cacd1b431538d7d76af8ebd76ca64c9448f11481f2cd413bf1040d2bc665d5016bec5bc896bece4a5f3b5721b2e9dd12807ee2138b751c75333698de27ee5c7c212c4381d75a28be6dda6126b18b98e8d4145bb9c31fe99994035b0a95cc939d35b5c68c8e44753bbba6c4f7466defa970e84de8a1b082dddac9efbfb4d0e813d05dd73de84e9a4ad41bea5a4b2b62d96abbb41ed1ebb3d8878be3786dfe000f8790a01cc362bf586c6357bdba958d05c30f49b1b39393082a6bce59904577b0d78918ca2f6c42c77fe03a970e97cb97147b007a19d8ba9743118310d5674097597ec3353e543ad4761edc549ecd1f382107dc672476c629b2dc413c9010e8ac3adf28d44d803334a2e66b3abfb86066570375cccf66930d0fdaddc603be9e40c24d01031c0969cece98f6dec7295cc22e4bec52be6a924d9aea1796c0764d98cb4c6c8adc07775dfdc4e85137648abacd4c756da97d82ec530a7bbb7778d5a41f2ef1b634d793ff14cbde1eb92883ee672fc68d4594062f1dbcd752fc68af0f965894523e0ef1d8057858aaab0742dda94e189863f3bc31691d2296bbe47ddd90b68e758c0ca781052a2595b14aa58fb2a35849df07ccaa6daa377ed358a03c58242149601b64303f893520a5b08f50a522fca4f117899d5cf400dd349d6029bf78a7270b8f88a05afa17ff976a754c3426d48895f55e8cb4063cc943b81e28073d601873b3ae5b549070322cdc2d2f60555fa3104424557d63038f828c022d4f532f2da7415a546d15d81fb9eef7fa3199b776eeb136c55735f641239fab7de3c55d8df304c71ceaf7128504328923f51706a7188f5f4252a66ac0a6387eaf944d12c6c14ad997a04415fe6bffa1be9a5ab2c22bd330e88ee29d65c394915909c498c39b39e30dd53c8204209881395043344acc30e9bd2512f658143054edd2025af73998c0e6b4173d5b9ddc4d23d75e01be8c6e3a84172c06f1c50305b070b89df7e328c5ca6b1630130aa05236ba05056c811398d5b6d051f3f2a5ff5c6f2f70133f5f76e142ceb9513af7e75b5e052db6c02606f50e41ad0252af255f301cb370437a0a9b28d6625925ea258c0c8c839887ce6f569a697e1190214ae7c1dfcf6eb2667242a3d7fad0b5498ec71e117e3de7d4a75fde47011def515f671d393710d08ad6bf5a56827d4e29866c3ace6d4a04c225636117bab7a09ee757076bab53541f31c4a0d8001455de02f147d60ea93398e78633e0dc28bd08bcacb0e7baf67e5761edeefc80034bc25cc7c95b885cb0500a7e08640a9f04d517518fb5a5213723ac8721165c8072396860b2848ccfe253c601307a46ca77467dc6c07ad08b43895f6359d773cb9b33f6d83159a63744f54826f165fd04265b696fbff648922c55ed91a21a99e094d2406905f2c488f55dfe34987879d2d82675c88128a3d807a54f592dc52f8d4fbcebd0befd2eff626acb01484c58830bd4e36f043fac91c2da13520c702d84e01ee637c0f1242b662864d15cb2661bd894320daaa0a2c3db9cc93587150bf341e397b8033fdcb6cdb9bcf3937057dec5d44f1855b0454ae206a1f5c913df71d7c208443904c4dd6290c73feb636c5406d022e76d1e938c6ebbb67fa6898da9510184e36a164aa812a84e287c2f2db0a3563538bf263f953213a8023e4477a4382f503ecad3a219e0b76eb8459016e4919a558f195e8222f1f905db8c46915830234ed723e8f015e82ddf5a1b0302def7415a425b6486ed4a22d5ae2fbb81ff5d3542c7c128bad8432e7718445ffcba6ce4f665e9071d7b4ab6fe9c0060cd9e3a8a36a4c5caf53981924829b699b2394ecb1f7da6fa15c4cf1423a871bc6920d478299f3dcbfb770bb9c3f996402b2cc0dc1319d5912b15fa21ca3fc25a5881c991203544ac8cd5fd8a47f15a8705f440ef836999cc366255124867056f1580674b45f770e42c7a4b67d602fa553583e546e1ef203c3999a460c3c8321e2b7a80c411ee2736e7e055014cc54ee07b9167ed52e8d859bc159b96b6ffe296295731e89d7e0d74cc72e8c65ec7e411eda5a63e6a61af2187391be5a753e774911c2d360e68e0841119431f8398f95a58b09f96518e8607c5b8b26997303baf4cdbfcd0b4baf0ebd25443304dbccd392c41b9017f93447bdd867db57a15a6689c6e53295df3a691d9ca194e27ce7194cd252264422650f9f356cab62be98c37fd4c1e1488401e150f12bc878ad738b570072ff40c6b997b0c912a19d0a52c4341565f28d0317d536d93bc302a9deed7437adef8ef34901cebb44eb9809f651ccb96b3eaf20313082e9c13a6e859c058be89ede7d4880cf0012d99ea817dc27b7a34286ea4255ee0a5f2d4f26ad60141245bcc276319c7a22450d59614cc7f8af71b628d6838ef16e2fd10bd18a0f1de3fd10817f5bbc767ddd6a5c57c9e522445eb0e5193c72745bbcb21660364468635a45e5d55f4925e85856266ab2e955ca7a0ab5e8359ff176beaf8a637cfd1c533470bffccc71303d32afda329b8331307e72bd1f63dedf4f6df433b2dc1e2a3323a59c5b6cbcc797fbe12636fca6a54f364b4ea74851391fe5adf4bad6666a4e98144c450043b51a45d4b0df5d78fce6071ed6286f9affdd3b28344ecbc70e1335d1a735e049d0693dc79235afdc99784e8e68b734942f9ea9ac6de9fc377d5f4729fe4891168f4edb27a478fd7805f9682c5ef577b47e496b91f30a8bc75528fc2a455709e6d608a4630ee90e195234bb31394a904ba7f8b79003a4585651c3d5b085cd185aa1fc55fbff1ee6986485391c9a366e33641fe757dd7a7b2b232f2bfbdf11732c81a5c5beee64c83d2d6caf4d0c5ec46f8686675b00ad577c5f68bffb4c2de7d33a08ae496c477096a0e83e0cc41a0c339564afc6cdee4dbcd818bb00837d7be86974245bd5a35c7d5f5262ec3c7d8c1af834e34cab5fd01ff1c6dda7b995818ed3b5a29b65cc13667f7e127334551530ea31c092f32ec673a7f8908177d53e98ef21723a22a6c0edf0e9100e3d167400e4583fdec734650fea7788e9148fcfe05cfb2e134e58494c85348b08d575fa737d13633018946a4264ed20b878053f3d868fa859a29bbcd0aae08fa2d171775ae9c8f34940a0023c6d4d010be73101e3e2dff950e52734822825a51897abd3a14ed73926ab5ef6e6fd44e221fd6d45b142197e9d522c5bc12847ae9d1a00c5088226a74ce3aed25116c1a800e6e93bcc6f37a1708b8926fd573b4817651a642a1addac0b7969425d27c52970ea9446fafa983b4be8745f4f03a56e78b04e2e035dc750e8fabf201b0514a58554509cb051c24f1a5574212f916e194b22ab37fbbb59e688835dc19e15523c0b911ed704a27595e33985a1509a9254761c3242c7290bd8472165c46f8ca00e188a718e27adb4d4acb530c8c8e70009e740a953a6c1fcb873a7a28820fb60abe65c1745835aaa470c40ed5bd161574d0ad7332420684003edae03bb62db2348131257509d45d3edde541d3230fef2cc9ec25cdec08865d2f41619a7646d5dd6ede01fac416b0ba4b45bbc4607361ff7f63cdac7eb7e8539c6ba63b98fe7e9d0cd3b9fb80f614d9dd27ce7df721bb6ca2d6c15d85a337f8496b400300cb3bbdcc62c741b0b0286cead0d97094d95d7ac0c65d4b51ef556667934ae6c56c8c5ecc564e09b900d7a2b8e71a125b2dea107c0cb41c79efa651d96b2fc432b497092ff38c6a8074c607ba170cd66f2ffbbeec37b6f1a1d34e179cfc7acfb58e0311d9817c00882b166a801385d6a1db8c568f98fcb3afddeaeea8653387db742d995a586af2ba5441214f1b4262843b3c227f1e3f26d82bcdd28729c2b1f91c783d0d423f509cc24e7104cac534a388f92f7264ed300c2c71e88067cd31ddf1a647b02ac129c33080a8403e6fa2bea2fcb6b6f4f4610c076ace5ead880f31bcf3c7ecb01ca2d4071e543b745bc1cffe9aa0d3d0720b1e91a4ce4fabfafeebb002a6e0b68c8b24794079944f6f6b98bc1b299a139a6a3804d6c6116d3a377e1558101641d0ca7fe4878d323c159a5951cef2c23c836988cab478e577b6503ec0b63cf15f27c3e9e6e0563969e6645c9eb74fb1b9a7ae848dbfe38376c3c889fa54787db325a7a2e2403095ca5a31516ce065461e8989ac2584b0f7d084084d355fbf9f941b6dfc32b73408ffef95f40398b1ef15173876384874171f88277431910dedb5bdc53f03572e39d8350200b00fb918b5116e99b19c7d510158e64488ab6a425e8d755b3db74ae78fa4b8176a078f86dd6d2c18ded6d4bb7316e2c2ccd4826fd30bb9d0bdb154ba41498c48d69099a9b7bb3a5ed240efc169e615e3c8b8192bd384eabcd3d592fa4d08dc8819641aafbd7bde3a25f1414d674454f1c8f5d32c1f906ad75c72fe7c97ec880c1aba170d3cd36d499296dee1bd97083fbfd985a19c887ad403b54b9c57eb9edc19c2def6dcd3cd3cde20856b4d39b4c76e3f203dc317e208bc4c20f8b3a428852be6db6fda63886f67989d90e242216e96f9df83c5c018bc7d5b48b5654a068a87369be3b5bf357012575573e6543a9ac5c5b4d819b5364d37ea50a93262b203d9e6e606df2b7b88cb566946fb24f9cc0a7ca388169cef777d782252fdffedec3e9bcdb3fd2bf2fc43a7a7f5754b4111dfb3b4fba7497754c2036a2a4ed38a66f820bfae6061bccbba833ab8e72a353bf17221cf74f9aa31015e78d7a30b9733392b5396f4b441fec24043a5367ab5b301895710e79e47cf378e43cf2c15826df725abadc7d5cc5064eef4e9956f3bb67abdf75eba2eb56f97db5fefd0780bee98307f0c0df1fc794775b16f45baa43af68b1ae2307e750bf35a900ab11dc52ccc868b9b6bb7b4b99a40c520a240ac10a29686fc05bc45fc20e04638c31c6d80816ccf4da767a6d970615c73ed1c62fdad46edbf95bfb75dbc73975750c6d876c23fe02b5cc7d7fd7e8e844ee5e3dfdd806de5608685b4f4d19feb7450bfba2d336bec2a7c70841c45a94f1570acf006893f86f4e397e19b739b6fdefabf1bdf518a8ad91a613e0b1a8ad61f17dd732a0bd36881b30cd0efcaf38bebd5ff90bbff73deeba5cffe6175dd7652ce36ee3395e4901f87cb67ead9ffefe72daf5d8b57e57c5efbafdea57ab574474b4d3d3fbd35fdd7bff20689a5ecda90ffffdeacadbc1f79ec97e4904e6fd1adddfb0fbfb13164cfc15277cfcd8fb2fb4392d6919de7fd57e5e876d16c4ba4acd0e3562e867d72220423b6657235c50c306fdf5d51ad0fe5d8d183adae21d71a7694cffef574ccf5f8767d42d838ff72942985e3776fe3150cfee140cdffe381c90faec16cee3ef9130fc6b783aa5531eba3b8d661bc0db72937961e76d79f7f8eb6de1fa1daedfd5b7d6eaf0ef57dfc3f7437dde160882200882e0a7c1dbf21db5b64a3a95c076db655c63d8de1ff67d6c8ecf452344f79ec438bbe85e7c517c320cbfa7046a1c2adbf429fe302c85d88442a15028140a85fa93366fcb4f4d30fdc5ea0ffa9bfe95dca9bb5699547cf25b7849ea6a9130c56a8b98e08b7804b7f926d363fcb8c4e4cbb402dbfcaee4c550e35bba1bf40d62ef4bf84bb95697e95b5c32a710f0b185d9c7b62be9c226d961a9fc9eeed30a6cac71a8ecd2831fe6b2a7fb09d408df7c119758f7749f82a72f41ddd33df8658b0be6f0f129fc32d43d253d54c3e97740e00a2ac8010b8cf0e0043a887d8e2ac48722b31a2451abc10862a7ef5e3ca14ea7d3e9743a9d502814ea743aa1c63f7d256740f9167ecaa8d3e9743a9d4ea7f33c51b40cf5c4f8e78b1538730884a32240b1d3e9743a9d4ea7d3e974fa1f0f81d1087cc4502814eaf4228a13a94f4d811f25d79a22a501fc1812389d4ea7d3e9746a71cf7cd6b0b6429d4a60a7f84b3678d2b59ec0ef28b9c64e316c0c708327ff8e8e7f661ace3fa15028140a85429dfa07a85378c7d1f1578e8e7f42a15028140a8542f91d34a052cef33ccff37c1e37b153efb840103c30810e96300515d86229270a8542a1502894e92d140a8542a150cfe32686d2397650e008081daaa0821fbc200b31145dfd743a9d4e271e37b193de51bd357e8b8bff24a7336caccdafbb7c933c019f6d7e39dbb5ba4a746a6afce5b770532eb1cfeec4959422d3fbf2537097a9f7250d3ff50b4962a7d701f4c576f8c44eba7c118319bf933aa186e1fd2579607c78ac4f7a3fe61af75330c05dfad427056796de26d9a2933c5f922449b60043a7e0d0e99d1c02fad849e7a845b11ff8459c53e0c6e180d46747e0db3e1b932ff0a762808f1fe3b01bd42918e0eefed310f8360e7cc13771971f44f3c284d8f5bd6fe13777f7de7befbdf7de1d9eaef5445a879c9e60da073ff57dfae88e1cae1f9a00831e50a1881c72319dc367a8081ae0820c5210830c1811fb01ead4f7fd57ebedbaaeebbaee79dcc4badf4103fe1a52623b7278eeeeeefe3c6e62fe3b6828b100071b9c80043f088116a301ebf3b6ece7a8b99a1776103132842ffc8899b76531c618638c5defc03b4cf73ccff33ccfebf40ef0b6ecbdf7de7b9fc74decea1dbafa788ece450f1c1d5974d7d5ae2b47ab8fb5f647ac2bdcaebb6e1b50d2d1eedefa6c05e0ff6ed8df7b55013802663542063a6cf03d5c5353535353d375a918e85e80a3b7e2e048b989d449b9ee6e1c8d61b7354da40c4fa73edbf5026ededab88ec59f82381503dd9624657cdf89362fc0ead46afb297ffc36a40cfbdd93a48c4ea77c01f64ba5baef7bfbdd6bd7f76dee0db5e881a0f721a9e375f5e3f9746a8e254ccf35361776739ea2c958fdd503c3355ef9acaee13df838a7dec7c00f7e47c2f01ec4e1dfbd9771d8ddd5e86e58a3710718f44e4f41cfbe72af189f1b8ba79c89bffe5fd80c17575c5a6fe78d59b3f1c988896feab6babad467779d9de121447fd1a4b3add5a9ab15595dd6a493220413932fb493d77abd65adaefa3e6ead1162f5570f7eff14ef8adde7da9d1b0061b1c46966fbe858c6d2f8dffa89326e7da7322f7e63ebf65e5d6b80d820699b7b74d41dac2e24ccea28e8a8fd7bcff3bef0bf8eebc45aabe30ab3f1a7777b18b534f84331f64cdbfbea7dead8be78c7fbdfdf7befdb74fceef50775ddee8ebfdce16b9130bea467affbdd758f3dc8cbc20d4b542c927341ac6037823ce07f30bcb1f45d7e52a7f354e7e554f7a10bb1c76e177becf6de7b2fa3a5cf618a756a6bc5497529e619bd1d6a7bfc54fc2edbe8316d1c78dfc07b5f52c68803ef5a5da9ee2d1e75aad3316a840f3e7e27753a9dea1eddde83a94ec740b7a777363e1df5aeeef4f1a908296e6dac5147afeeb1bb8808d2bee0f7f8d718714cbaa726d943279ffa8b2f7a36994c269349f7742b272798153b5a7bec1eb5f855d72a93baf6c419740ffef1c5f77e57920035566b2bf52c49801aeb4cb9077f5a9ade499d1978d858c99798681d264f834fcce4458f7441963e65bea963a0db7cb3e4ba077f6a7a1c770f59c0e4eaa02147921f9240052d74c10b496226bfc32766a2779cbec4f4a2f765ae9bcc3d36c91662888f6d8b7a4c799853ae63a03bfdcf61633a6a92d88906528999bc977b3a3d64a26b30f91d3976f8c44a4c4c4c4c4c4c4c3e878966c06dddfff9f901ba8995bc8efb85590c08fd90cc6631a03356f23a4c49b3d92c0604c64afee747470b12182b791d31189db192ffd15193dc66331e68ace479dcc44af4036eeb9e9a60a6b5e8c27c7cfc0cf193c310244c288add47c0858126e0c1111f58820f46a821b662c1118a00fa6143088e88dd7fc0859dd8b0041f18a50008270889892bc09f9672a93a7a43bbebdf54f8e554f8dea7c252585dd8753a54db25bb1a31d4638b3e82a51753fb852fb6b82d1c67fb5ff617ad4ee14fe14737de3585750c747fdad3b502b3d92c031b9fa860fad747cd1b44ac2b71010e33f94cff9b0f76f2f56dce0abbb9adefc3b1e2dc5325eb0ac7bb01d706476be9c5fa7d1e7e197e29fc521886226d08beb847cfbfe3352286b688d45a871a0cc9af34968638cc1679eb7b8c26f1474e236691fd5d22e283e0f838f02ebfc7b4cb775b2a953e0c4be17f7886666813d6ec303cc3300c4b20c9139642f24b4f967458fab0149a4a1f7e5a7af2d3b27cf23b12c6c813fea853f14b8fc552eec26cc17c857a20324408108b7e9fb23a06baaf1edffa70f4238b72a935c2c6244ff85e6489e42a4e8d118aef204a82a2f824e9453ed436ccae45444876288aa27beffe9efff5bf9f001d6e28bd8b5fcac086cd3296205db8933a05fea8c3d4d2403c9e4aac646ac01bae282713339ae46bc3ede146bc48f61e9cc881f8cd85f80ffb7bdfc191e36eebbb40489eb3559bd0bdc15f5e71eefefe0441a10d3ee8e4836feb8a2b6469be1f1f34bfc7b4cdf717c75cb72883bfec8be3ae350d49927c512451223fe4ac42cc9c2d7eb5d9e2cb88e89b2e8a5bfcd05fa6ff072bcef8a248b6903c2229964f7e498ae48ba458f21ff9e5a7de038c129d9ade6d57c89e608df04977777777777777f7573173adae153f491731a3cdee6e54f1ca6d09a67f6a83bc87997166047d8759c7fe4976db778178112268a9cd01b93df2d7491047869cc693130f768a6f1071be5bac66874b7688bfee76328633c05fe35febe3011734cd33972bb2437276852562698e5071766a876c27a21e515fa6777bbb6e8740a2c21cc90eb12b6e4d05a8ebf82e9c5730a580c484ed8e7461f8fef8d485ee505de9ad6dffbb83dfdb8fbae22241f9129dbad04fa70fea4e639d82fbde2eec0bba48ec8a6f88cb85a2ffe7699ab7eddf10df66c98b1fae6045ef7f411736d6d690ab6207364432b6558db63dfd86d840c0a8b79dfa54eba58991c997f357aa3475aafc8a3e2263aebbe42b22f215f9de4c01f2d725f214fe61be3d18c14caf0db7fdafed12fdfce89ec73bce87f8abf4fe5ee444688cef0bd895c436a038b545704477500edca6c3f0ccc79cb7fccf93a376144d7f7d6796eecd51c758bc96d4e96eb7e441f3c18bbb42f0a7f7766f25a60997200e77187c1004750a46f9f84b3d4660dc3530ca06c02f287f428efa87c22348ac5e96dfc283ee63207fa5f0dbb0fbbe0df5f63364d7db4f6e3b9ea5fcfdd248961e9b0c18c72fa718dba0c3f6c74e5e3d04f4b114dd625af285c53b1c4af971d44d983f3f4af8539dc6338d81505f37ca0ef30121ced9e6ac91bfb435d2b688a3ee314a1a5754fc5a51bc7b68d8a5927e40031cf5673151fae70759678ed6b4a43110dea99de20e03cdfc95da8e5f308e8ca0a275a72936d456dd308efcd456dd30a480a4b65220114c9086bfc0f747c002fcd5bda35dcd85a97c8d8a2651da7cd1e51af753fbc226d9e357f20539eaf43e0eebb3c3cfe17b19cf3c6fe6cdae061ded3a9dba1fd2c9730cc4ba5ae1edfa68b52bc699930670d200a7b5b9db033305f7ed02d2769daadb67b7f0b3033b6cddf6817bf1bd5d67f1be785b21621212a02169fbe315a417685b9b9484a31669001eabd7ea0b810b94e47e2fc6f85adb03f386e4a73ad0f65a6367625d892514982d762e4c02b3d96c16abbb7e477ef9f7cf0b33fdc56fcae7356feb56474bef79ff7de24edde2bfa85bd42942f0d936a79fd39cdaf732f861f6d9a5ec4576087adfe27e9e5714faf581685f007557d16221b0d69c7eca0030a7f6823edbe61bddfe342e81a5c1efe516b7c320689af67d06f5ebc9796e40acb5d65f7dbbd6209eb260bf9618df8e6fc7236675d4abd623c752e7a54af0c54749cf1b3d4f7b68c655ac494f6cb42365d81fdd45ef6560d81f452b962e3e41c1ecba1988d565f0bdf776f862fcf8628c31c6187718771a5f1208edfbf77700dadf8349bbeedc36b1ab1143445be6beccf8e9f78527336553d67e760c6fe05dfa74fceebffa7de999fabcefbe4737f889d685fdf0e2c05b06f89f4e590dbe8e451dad200882fafbf408ca385a752aa75804668f69bb1705b18a75bcf7dedbe5faa29b6c92ed39cd9181edb38dbfe609f8be6177d7e3bbc5ed522fd57ddd353c9dea348cea1a47cf57dfe75a5b841b362691b6bfd8a3fb01ed254aaf91ee867d892e8c14726f3f170716dd22b0e8e6b6e32360d135622d98849c955995d8f64f0eab31b0a8b62c784445029337b0c8a828b753d0adb5d674588dd59a52efdd5f6dddd7ade8ad8fdfc32ede92489e10c4ba4a4bb7edf6fbaea806b37df17fb999a3e28773b76edfc7428af0907d7398c8be4645f67d6cc45ffa16e270b8f30ccf73b4e01d4b2530d3b382a127d5a4fa5d8f4ee8160a3948336b38db11d1f65b98744110e73048bef86d712ea74be667dff475933ad6daae0b71df771a87dda918dbe26c6fb8fd09d948f7fbca510c4bf7bb8e2449f2fbf42c47b184cb512c618c35cee1221e588e62f729ce81b933a7e2549c9f8ae3b58ae315c77b107991990fdc3d12d443c5713bc4856ffb02df76a7d3d5ee846ecbf7bdfbf66069fcbfbfe597486096da567bcbf27bee2e75ad2ea10b0b937ab02b4a446152925049f770bffb30a94464579480581afff434fdbffa7999e6d83d777ffa2c812b01c11ac8b69f9ef582f6710e23a17542ba231b6c1e112fe986eff61901d2a1e2781215671c6b6c9040d034cff3df9e2914bbfecd89ba42a5d2e8f30a663a96ba1939cee0afeeefd3d8577f077461210ee72eeca4e18240d034cff33fb7fdc52ed77d9e2f7e5f1de2425c88bb158fc0fc4647edbd38f0febec7b43f5dab2bfd429207ffa771d87d533176f7e00dbbb1c6b01ac348da0e71d47ea9b426848875958216f4e12d7f8c0423f9f9b1c1f6b03a45081323edf41611e576edc1ae45443db6589a99d706babb9beeeefa82342b98f6f18fbb9bdd960fd9db6a8c75b515b95f1a88a72a98e9b851235e40138f36caa3cc2087dbe28fefa268c79fe1c2feb6ee83a0699ef753b4567477bfbbd3eebe760f8e250f0d9e9e2cbfcbe397e3f823495e9194c167eb533ec9a9eec92f5f14c572867ba6a0d46c93b7b5689b98fc68d2998c265d67329a746e6b773baf7c19fc959ebc0ce3979f926306ef4d75e393dd58e64f394f7f036ff11c4b9c7b1c75da7dca87a48bee514e9dfa6c141b3d1609478a4e894f7ed5e9f8a912957bec4e4fbeeb4819a3a853a58e81eef1c7d3a725f8637e90d419c7d4f89f1a3f7c707c74935f8ee4add5a5659071947c91cc29be6d6f97dfc2c99ed62ef58d519b882511982532f86bfc2e356a37c9a9eec737f9929ceab40d9df1756a75998f03dca62f79d2247e6a7c2f35ea1e9bc486ef4efb68ca367cf7e4986dd3f8a66cc3922f96abdd7d69539f6df2c717bfc5256f80db4b470d8195985331ccedbdb93dfc2dfc6e30db58c0ae2f7a9ed6f49cfb46f776ef4af6a8f68d4e779dc648bb85af2eca9a4e1067dbed6dfbdd8fb7b94f4998f67dd7dbc68ed6aee441acabb4a36dfc6559fe7dfb27e18bdd782a32458fd4311dc5e28b6448b4efbb113ff2d96de1d2e399d1f926924e4110c9acc14efa0d03b13f52c6fd92c81d88df2a0e09e37ee9328e92ee1aac3027ba39d14a0dfbbf5327721d1cb5da6d621defd135ba4630d0c63f1bbfff388adde4d3933fa1bc45797bf2f6e44513bf3ab536fc3b92fcc7e1775d177e870b1f23ada4504c52dd4aa7d29d1deddefa0a57602196c6c4c4c404e3aa0be3213421258f53b45afe0a4d45a7e029e4bedd288cbbb413549cfba669da4fe9ded4dd22448ee234c70e4dea255bb6a96d745e8213511e9b7c8a8282f2a9d7de6b35506a18a97b9453761deedbfee4b6ecb50e9827da6b8ee23f39d16efb825d81576069f08be32da9c06de1af229289939078a1e290a2ad51f237ecbe5fe61a76a8c47b1e02fa580913075d1307f57014c951fc25324ec25b5808071989a5d1da37736a7ef765ae61be7d9134f37d6bffdefbd6fd1a555790bf3a9dba6fd2b8c7bdaeafcd517c61464646464646924082f135ba34ece31adda36b74da82997271874a7c090d82a6799e97f6ea6649dec6357c4ac2290eea8492c09d8f837090d0490b26c6e17247b372ace6edc151fc2509a3b56f1147b1c54936f04ec2519c76421bbfc5ef5d0f473146aa2e5ce37e7a8d6a1bd368387fd538ba47a65071c82f9f24bfcb69a9537b698ee2b0cba9fd1b9230ecf5e128fe5bcb82995e215a8a691bffb5361ffe4ad95bf3d7b5e1241c23f96bfcef71dab0f1cfc6483676236fe13f02914c4f3a6da3db74b0165b1db414a8dcd66b62652c73f5c106b38d3067abb5ab5497a552ad6460582bcccad9e57bf950146cb5421898524c8c282333b2542a970c0ccb458e39cb3c8ba552cdc8c0b0664a4d43f2f8a659d1d0986a6acc13274a6080c164448102c5898dcd69b54a61da14afd389498989d2921acb5c85ec55b6b1d910f5dc2fcc36fe9c6d787c2cbff803f4b155d6ac1717edd9b447c4c2b9db601e62a954ab15986d601b9b0d118f6f6f85cd15685bfdea7b9cefb6b15dd5dbb7a99935c62213b0d2321aa862bdb8b058d85d5c5cba979717300fad3e67a08fad4c1335d1c75f622c730db2552a95af3cff2aabb4e9bdb8b4509657637936ec92339a59c632d71e80af5f54a93ed57739e715b8fa7c641d787c8cc5ba3506ba606d42d5b2fa988c591fa359668d95afcb7f2e2f2a8d9a1f0ac46e6155cb58e67a0b9f655d5edcd6bbfab1cc316c14b60bb3a9a1b0a12871717171013fcfc5664a4d3bb5a9e100836d3fad4440b0eda3624bcce47e79015fc09797cfeb5e40cff4b613d1514451f0f36a17fc9cb398cbed9265b41a8cad458e60f7b1c632b3d825507cf1e5e5e5e5a593792f9339eb57659588a224cfb75197ee9321478d769f8f2db055daa1f2309a72cedffa95ea4b5974bba2f27c1b84e9c161405396e960ebc18180624c1783b58b1ecb0c80bd52e59f1f25d3abc4bf0113d36ab56c8c0c0c4c0833c462b1645c31a59818531e72f997fcb37a55d6210197174b59e64356735407b711fe0d70876126b74cae81456760519a0b0f5ca08c96e95cae2f7f269a17d5a8735050ab7e955739ad9687616c45576399576c181b13e33232d7f5312f0313bae49f95ec05f5847d990f8bc2be8ce6295cab1c2393aba7f05c2ef275d6efe5f1bb2c7ece59a59ae94072e46186a8f35aacb1cc381bfc1b604c76cde40c43434353cb19a626a67a1e26faad5fe51f1e664c5513d6ccc0b66e60796051d8576519ad26ec6ac2eec407038822d471932489fd28d9903cbe436d03e6606f607960695e606dcbe66d254fe603053e60b2ac765b35f135c2c8318337e59833ccaf56bf5201935598c69c5f5e3e2fafc8298171094d2f26e645c6046564d0cf853d958bc8db33301da68951515323734fc86cab98132e87018699986c3d141ef6f2504c4c9955a4084b312f63996f5c33341a9a1ab7f7deea9539d7980c3a7ab9e4bb6c7ecef9cb0cdbab2ca3b93c857dd7c92b315d2ed255e657ce34663480441a40175663d6f88913271c868b027b2952b0c017edf57a2f0fc1c2b1abfb262cb19e29738a4d43f2789b26662cb3cd2ee59c1f061864b5dba2b90f143629768e7690bc33ff0beb5fb24d6da512c392058219b2b28cf679d6fc3eef13c14f044b288aef51803244a0e645ee541cae9119cb8cc2cba6efb2f730c060f260b0362950a0f0142f1b9b142f180c06f3606f4d356ff4b2f7373737372a4eb8c632c3b05bf947e9750e6f803d36c9fefe06b8c117455566d9d8b0fc054b9142d682eab20f235d90fbd337d53ab95f2fefc2f0388a64a86f3c153cbe45152a4a2a4ae0378e5946c301eeef55f9470582ac17172038a18f5a0fdeb28f0343e7c381780a1dbc65bf95d6203d6cfb28724afae62600285ad45bcbc6c6a64684195519c8b69f42063d81593f4565664655ae3195ea61a40a16e621f4bd3c848aab4c63267b9d69ccb297b32c878a83e3dbdd5b190e152705e3dbde7f382611a018def63a8d63ab973466d565ff86c6eca66623baf95a8d8a131f8e8af5e2f2d1348ed7b1f24a97644315c5e8e521fd611e6abdfe52ab9413e250694a2d9d73c20e850da913430b92e76e50b76871b3b78a300fe552cc8cc94a50d08c65aed93fc4d7f9e74789d4297d78537a18a96353b3b1f92bd4261ab3d0e636f70733fcd4a6665373d49a480b9a3b3d3b9b9a8d0e36361752a704c3f7309031beeebdeff44ae3e8762a86f779ffa52c1baa32195414cc37c0fd7a98759bd75853903a3b478ed26cd07b1146ea742f7e79e7c8d3acbfb0fcdfafb22ab372bd2d534da7104037d2ce11476dc51ded9d23476dce343e93ae6dfb17a431bb3019adf411996dfbf7c51657cc29989ede8efd9d233b48fe7a09df26fcdee6fbefd31140772ac6978ad17d8dea28ae1b469e3736459967b67ebd5e65766d2fcb685ef3141646ea745a862264aa90f93051446056980983955966b3b28c76c1dc9363b6f1dfd0c21bd3621f8ed66c3ddc3c7843de9c50a102061c1c142b56d8e4e4a4c81900af9c5988b0d1cb43ac07b38c565d3fd4132cbdc30d73cb70a834f66368d142c5de38b1d80a992c27000100808e0e0b172e62f817248f6ff0054c7ef1e2458b9d9d0d03464c000290c1c06893766b688cb75e8c4e0740061974c670e8e5bb175d6fcbfc9c65341991f7323e6f068a8a32c3ac58617330d16dd958b8ad178795653bd496fd17972cfbe107e826c67a1e60ec87c7c77e7898b12033d8f6ab4591d6203aa4486b90da8f0e9b24f6437c1e608ca5c91f9fccb21cb28c66695a5087ea0e95878a83dab22f66d90fd5657f450d520bb59822e73582b21caacbbe8c6669ec03e02facc66adb0621da31f166cc5946bb2d592d886ddb6721d359e6c375b0396a9f05e982dc329a09548c3acb68595693e52c8b8174e15b4683eab28f5202b3bed8025fc7b1d52bb15e51615a39e84b8e4b0e6ba5d23939e75b72724ce4e4b0e494c8c9c9c951c949e5ac9c393727272727e7f3723a9c93e33627a7faac94d55d83d064be4f82f04990eb93a0ea4a4f3ea8e2d46a0493cf3b26419193eb381fe2450e2b7d7dcfd5eb75e611f3c8d1eeee1b04d3713ea4e87aced10ed71f6c135c75b969b471cafe7bce5fd6a61439ce831c218808deb588224692f057753fb27fb0cdb6534f2269418e70c44eefcff6b75e77fa2b3d19b7e9ee283d4cfba9ccb6328eda3fb1e1255c1c2ec326d9587b96c67a17fb68af2532efb661375871f01d478bff627bcb7b75575d44a6dd9dd7007b1df63cec75f85e04789767d03446ab873effb0dfa4fa69cd3da0d61e33227e30dbb6122182d9f61c626945726d9dc1fb61fb579410d4c04c6bdc1f3b03ac065b60fae0fef565de6deeee650f33759bbbdf0fdfff2facbadfe03e9830f0209d9a1af420ff21c6c04cebdf4fc7a0f4d668dbfe1874615e5011afe882a0699ee73f8a7a45dbde21db7efa5d5c87d425d920f7801cb5efd9b0adf7b36d87c4515bbd99d7c3618e745bf6bd1b3c1fdb6a4f876dbd1eb6f5807842b6fd950a9ae7df1a9227995eb510da1cf523db7a16ccab43221df650dbf6492c98d5fec782217e4032b3eb103f0cb171857da712bb821604419dc2a7a70fba1381edfdefb4bf0fd756f83a5df9e0fbc27004d15f9967e5815857a7cab22b0ab9eb77b5e2f8a6b16536f8d7fb0f023235ee5b1289999af6af061de37b83bfd7bc353988f67b58205ee4e60009a615e9c088eb605b204168add8515cc4f47d5da57f3bcf5657ca7b1b9d4e79d5fe50083aacc6ec9fce50bbcc9f1fb7becba0b46b1058c0813502178b9ffdaf56179871380c6cc3fb1be0a6b13a83f8bb37fd75635ca0c336060d1bffcd2109c3fdef5f5286ff7d8f74e1b3bd922ff00892e3fdaedb5b7e5f4d7f61fb9eda5b05f04ddc79a2b992228447c6b80f7ed7a5e0cceeebf66e446ed8b7cb75dff760747a74d4b4ef1c102faeb7852b1e417f5defb1f63cef3deffebda48efd7b53f6ed76247c48db7f67f3e787a8c55a5f75a762c640f847fc14cfc4c7330ce42fb1346afc836733a08d576076493b09473ba4ea722f775b2835984f7029d8a838a5ed475e841680ec5a841674d8e977b4fd67762d220b489c60d6208e1cd97707cf822b5f54662e2a3396ca6ca532d33a6bd3ade575c265e5c5d678423b79c209ed8476423ba19dd000c022a77e55bd903a578be8788798e97963916f1e0059c57f2ef15d66f91419e75bb289cfc9b0bf7928c5afc8e72dc593452078c9a2edaf326321a2b2e06e0bc95f2cb9932bd4170b121575584d0d8afe9fa7ca096d3b0bd24952d26df99bc8285175f9b36494360bdf9f85886fe3589060c9f9ab565484c16a6a50f45f65565566b83d7eca82b4fd5564950a965545e80a4a64d52d954d5e36280a2d058aa28298960c8ccbe657b04d0c4a0e322d7466a6c5044b89d48aca3993824299399dccccd4942a5a75ab2e7fd54d754b5faaf0b28514ad0145dafea7939cb6825295d1f62fc9294a031488ed6f52dd54371487ed30f0e1bc6d0f7bee620cfa90088837d21dd7b2adf8c0e018d8e1d6068249aa71871fe9a2b44bb5eaf2477181693f2dad4c76157709c50526abe4520acb2ace4e5710ebeac77defebbbd5a05d5163dc24491000f4a3e766d7b8717d6238ff78cfe347cfcd06eb09ff6b2b4ebdb19b69d8d96c36bbe0cd34b0063d853f7652c6c9be2f7ee3fd71adb5de959dc6e1de77f7d56075f983a06944f4477d67a7053528dae2b66e307861f7f1e32b5eecf6963b3b15a75abf3310eb2a0d6f2ee4868db01136c246b70b038d6ecb1fc46da322236c746120689ae73f8ad6d460a30b03c19a673b3da2cfc8c80332f2828c3c21a30bfb6eb7a31bd2ed76611f8d86a315e52eecf38c4e22d3f67535f0c8443abd24d00834028d40231034cff36b405abd79ddadf9c21938036746464646b7dbed46bbb070167e349a7b33cf3bfffcb4e12c9c85337f85a622b09177faa9c59b4f2f9fee973cbc759e77efdf6b4560da172d0ef26bc73b626bebbde5d55f75b91512abbfdc74ebb6769b30f6c73a0567fad79b8a716bd4edc3b82b8eb82b4ea90b4d2653e7815697655971eafe34496eff8a5377ad38deae15271c4b63ad38647d599bf1f7d58a532b8e2dc772144b64e95597ffdd825882bf9a2515c7eeab69aacb9f86a6e280b7a502d37e8d0dbc882719c18317f9ba4aab116e41309376379a46a611f3c85fde7f6f1ef117f9df9b48fec2ff693369a72741db92e477def7613c8a251193188f62d8851dfe3c92d421adf55230bec7ffe911e3f7def3fefbcfc3a00a0af5a5427234c85f273d4e842e4cbf7d5550c529dfbeeaa8e2bcea0aaa235bc58510ac4c9ca0be5a3713b48ad3f2f64d08559c9556101337ec160b10f50523c482ab3826de3ecbade2a46052c02264c3a864a0be66728e1e5dd88cd16d9d45d4d74c92cf2a0ecbdb3f8d2e4ce6ed9f45cedc5954714c3f8384cacf4dba48335da844b6fd1306154633bbad0c54184d2d650bf5455354ab382a6fff9ca524559c94c7cd8098f930a3c1a69d27304350c3a6495390d0e48e6cfb2839942228462846508efc65f2278cd8b0ed9f6ca1c250d84e4e7cf8ab767282bbb097b77f5274612e6fff247761adb77f627461e8db3f39ba3098b77f827492c44952c511dffe89edc256287e00aa284e19d827b9b563ee58e613a2ac54e63a040f30a65f14c17128e651b20dd4ebfc03fe8ffe925765145385e42f1441a8a8ea0a2884d8f62d8a22b6fd54c5052aecd4a6b62a62db6fddfca542a815a4be54a440050ead20b67d18217fa9408249417da9b8820a18dab63f83447db1e0a1e6fcc5c2e6e88cd185b1209a49f2178ba2992ed4178b232a6a9f68c668c668dba7995d188bdc6dd1d42e2c86194d91bf62a039a2be6298cd66b3dd42538b81a646538bc146930302880c08683ca2f4374c93936a4dc01be02ebd78b25e9e88a7af5e2f4bfae4b6de9232572336cea38e5dd2b175783a36d6b1c515aff4b48ce63af66964e59757655636692f35140fe7ffb2f738df20797ca3720ac75a462bc7224e4c459c506c3d3115a1a052526cf50f4541516141c928e00b0a850a5d5252524aacb3da5a5c3433e729ae64744a68998f1c5c34332a2926151445ecb0ad8c221947cc9831c33683871944443c369e5c018e8e582b1e19d4786c365b6ea55905383a420b471c6dfba9540995c95e19a2a8fc151947c82812223763c68c204444265a56489d4aa558ae10665a83d05e98ecf345938c8cebcb9c4be41d238eea1d2347ed112c30c6d198053141a531db01aa38e7dbdf31aa38dedb5a841c14581070b40216937d712e4af6017c98d5b6d45ba63ebb84e96535b4052cb49a8d85c55c49b1b4b49cd8c326722d459c4100516d2d656ed9602733e33261a2c444666556660195f0e12d3900e18e8648424b8aa9c58486f5656659e5555e651644361e2a8ac2c3f3e54a8a4646ee6938ecdcf20e10df21c25d1e703dd8fcb54383dc36cffcc2e845ae86174a00c20b237cb9929a01610b40a80210a0308408c84d082ec8115acd4674c31511f19ccc08418e8228e15558dec57a2da395c8e229a5b55e71bd978766be64e65daf42c85f336c2a52505f3378e0a9f1c8c0c682872222886610cdd08146c943d9cc059042018e8a8200c2871a0e2708816b46b36644b70c04adaaf512e5338a96d14c542b33789861ab6126039e1aee565db4197408d932206aa6ca844a6505ae625629278bc53a6d52cabb90431609c9816633170af2da90d34c171417958bca9719a55f5e625e565428601eca2e68b6ac4613533232aecf79e6cb7cdaa85c5914f98b27e747d4170f1215b54f00a1198064e4642051d1da729a2d9fb6c42003fa5aa6bc93ab2efb3c45b6bf768c5051fb297987004217b64303a00bdba9a1b66420f12323e7af9d0c54d47ed1b6299d9a3e80bb96b698d0e9990491999191a323488ef690c9b29a0d5794333a429225c990ccaa2b072003b515b44db5757e339f33cd97f924b3322ba38c5081c3b6af02c95f0538527185fa2a80142aca8287fa9aa1838ab2b0f96b06110ba20be3c9b12022daf659e42e4c46eec630bbb0194537869abf6698790c32a8af197454d43e8b1c8bdcb62d2de719c32c86591a83ad08080820db7e4b96d1802e8cc766b3832908d0b60fc30222765a7121304268db375180a302480113edb4062962c9325c75d9c733741064c826f2972c88ca93bb3099edd4b9d44ade21aa2efb67de9191bbb01d1f66145dd84e086a6be6af9d1aea0c3aea0b67c3b69f2b22082084c8555b0b0c4e1c4cdc098628b261a7d50748b63dc93a4759e7880e924e123a498e16016dfb31321bcd4c9615e58c6ecb1e5da4db4abaad59007e0200545d3cb60b0b400db545c40f44d85c98ec14bd03b4025396792f0fc9e8db6d115d93a1fc26eb4bf210100864c6585a070db3592c6b592d0685723a31294929514a283185d4b1478eecd19922922a5e37e4828a22857d15d205b941bd524b2f491595959134a5cc122652c76eb18485acbbe21216132d2c5ffe402030f6a2ad893f3daacc55882d9ea78cc8da545468cc54545e320da12095a0956ea55ba131a33163e52cab5d184d66da142b67594d76bb30d6db97d164b60ba3310b42b4ca3466254ccba20144238886d01311fa58bcb72ff3e12f8fc6cc51fb26b0bf6a4bca498ccbf5acccaa0d79d78963ced67992a79d876c95155bfd2c7315c2ca4aca4b9428c1a2823296b906217c31654b9428b1e81b842c26dcd6bb821acb5c83d8254a942861595858fc47f7264c5cb06bc929badca552c632575c688b2e0e678d866c2e9bc8d9da74cdd66e4396a8057ca1b5b4fcdf3167fd2cd6afb2046ecb3ee0c8ce2a608380802c6dc80aa9c0ac9fdaec62c3dd96260770516e3051eda9be525eb1be12e758e60a04d68b2d6fc27e6e19523d2beb90809849b2ee07b1ee54deea63792f7a329a75015954c632d71f6c70c80923dbaa48cae3bf8f27f2499db1010c30fab4d7e595ea65342bb3922e6ce7e84845928a249b1780805c265fdf536765b4baab4996d5481d92c60cb60ab961db076f4b176dfb2fb96ddfc568db6f1d6dfb28d2b60f93b4ed87b39f6d5fac4280b6bde1b6fd9da31ab67d2142382d6c2121c01dc902a57da8f48c3685418d32453322000000d314000028140c880583f18848ce73c5c40114800c838e566e4c9a8883510e842808830c52c6106380012023002355a509c6b5091883e808433be56abdf69e4039ebaa9d4e09a89fb4a60f19214f7947c176ec0863a1f1a8a45974f7d9ee137398689ddfed50fe3da34a5cd99556392b86c11908fa350447de7e67a29aed00c92a04974e516d3ef96947a0521d3c1ec757da9c22ccca1a2480bddfbeb2e470a825660df2799ae627f979779a3d54042960602986d4c39443ea1c2e9902a099703c427806fd51270ad27c62cd9d0fb23048abedef36b1697af5303d8cbd6979f4e402156388160f936f828aa58601b67e46f47c105ccfc2b6195c768275361e95d23c4b96b67c256ca2229ae5001c282b97a28d64ced6c9ec20611c3dbb9362150b0cff9bd6156b810b90421dde544a62b4536723054fff2c8ead12d3b61e2984b71190a968e427c9e4e6d33139a73bd1a737e5780dfb4f3f2f2d0abf65f355c4abe4464daa32aaab8826a89ec29117805af2a6e5c4dc8a97a486ec1a79847497101bc50b3ca417a68f6bc580e83dc371a2b600a64819eb672843b9912f661d4a8eb6b6b16df6919e8eb3f308a894ffc40bf64f262bca56d69453f6477e3da59530080ffd71b0e85dab72a8f3a26579d47cd1e29458d4da6b5b2d58ad8793cd4950e3554b25a8f14aeb2eb1a86d9aa777395a6f303691a0c66b2d4a508bbcd95a52270f5d5bdd90ac18496abe68794a2c6a4d33e55dd4f41e91960435f09dad25752c942e0df4bbb33a4a4d65befba067a83705c5558efacb68bada1158e3f6aba37de437da2059324e2899715facab132c9d2938a4affe29db2b04771411635f9520c0379f6eeb71a3a8e6f20d43e33be707dfe7c70f7e564043cd607d998338a057a8379981668e2caf52ee8ba5298411039a1fc2a1294b9a37fd201a2c371ee84500a286e4871bb431014d1c0bd7f7835d61caa85c06f9945a5458074664b9ca71a4954e28eb4388ca1bf9d6cc6b23bb1cd8ee56c0713000629ac76b3270920af5bcaf6727df15f81f77a031c4ddc87627769e2fcca217b59db7dfbc4748ca06641d041f193d5ed4634677099ff9cacc2e1d9a6bd0f41044a89cc14e0c27a7b2e78e5c5b2e2df81d4740cbe21c467586088e74d8ce12d95ae56d7712e23824299eee9c8ceb8b57b272bee861f29a92642fcac065f0c7864100547151a1f83915bb4023b5c3d4814a7b3c2066105df6ada65013423d6191f79af18c1523bc42976f3dc319bacf93339c30179a73119adfe3843cce689d1cf46ed6d6fc28d24cd1b0feb41d8263c3d9c211d45fd8877701fe38d726acb429f9279f678c323e860bc56639aceebb898754c7c8a5f42a68213c2cad9a270b85e002cef50cdcf94b8b423053f12868eaa0d443c0cc4aa904d8fd610a2fdc0a42a065f539d8dd88f990708439fdbf19f95bd7fe0c0bfb36ce912d3066fd3a5c78e873a10c62bc2f09e7733406c1b03e5fa111dbffa6235cdf0074619276d5ef00091cc17adc174d343c6a438fee96d7eb723eb296113174c4c064925e509235d6cf1d8d2d40c68bbb246b44ba2122ba570982b2a64b13251ad99f1aa1713486b8293d3ffcc812d1202f9e599b0825eec8d1b82fa991338393d4095394d8299853df180e5d0e4ea02c34785fc810514e7a4bfef4488ce33c017af1b973dd4a9ca6457d4a5b588d80591d7bf8296ae69ce869ac471680dc0ca394d3e451c6009b59aad6d1917c8e92f44668b93276de23d368f41ed279d8b5bc673ecd34e601ce02e4b598058837083b4c8b98872a839066553a33b73548ad4d905fa7767b725075908551485718009c0bce2394abf1d75ea029b6acd478e362946218dc0411c6d8576b66a23b09ceb1c4910f32dfa31b9bc4bd80b922d5638720a234347726e9deb6e90ed23a43ee0272525002ed278c2b01512cd8ac5335bc5f1aaa6dc86e957882254e42bb55c24b8126d989f7dbfe8498bbf092d8064045371a7917a686094bf8562adc03f53b21e9f6fb54e4518064ba978881a90e661b3ec64ce023547973ae46ee7f1cb9ff1421895e6dc8dbd13af4394a458c80cfa553acb7a3786380146f89af3ae211e7fae2d6f23130b7c7d1a5b73caf57a3095141c57a750ee4fa9f229b98f1e069176556baaf0a3f4091136b5378ba19bd259426b08b826902c5ed35d6b6df64b5c17d4283eb474ed363dcdd27fff8b229b3fbb3c5ef641e20a64840587e40889833ee8a60d7f6615e59798c487ceb86c59a286723ec4789a82e193683fd50bd3b1c2eb413198a433dc06deae7bec7278525d51aaced8af4e130bfb13bcbab1b2b29c75bb32b3b15db4a879d0c977f3fea482e288e75b0d46c9cf8311d47695260529ae321e6d8fc586772b2eb9640a6e8627af0eef837ef9dd1ec8c0dd342658bc36404976ed9f82433f460f48794c483cac50b70e8ee29ad2d98fd8c85dcefed2cf88f9184d482c1936d6139408b1d14eb43fb194b6da275ab5394829329cf5ab66ec4f700927f8b572957279738ef92336ab65898adddcc6b68269882974c8d064b59bbcdb50c730511ce915b6ff7c2e35d6bf76ad63ac71d6458b5696117c43261a89e013017f2c35d96f9511e299b2eb186c34bb09f8f5a7aae8178e1107557bf5959ea5e3fa435aec6982be19becacd97b3b08adbb50e389d51cf87eabd8e6fdac5834ef451773e7813a24c45c029796ecb778ba42b8f53d1b1c46ef011ca00c61ddad70edae6f5c70f1ac80a4b33fb8f7fd3c6c838386f0402f7b21e1f0f73bbcc14ffd83bce9e5f45114a35a10c5a891473162a5e332c3e6b7fd4fdc3d3f7b34ff9ce502893e1175568bd80358231bf6cb5429620b715ff8ddc2554a7d3a5fb9da886b0636ce6472dd1d0df66664fd59cb699d7011ae071e47a8c670c5882efed4b4db230eece78b6f8ed2c4dd357bb12849d97825714f881e0c1c080d3a76b8f8c28f0540b29d592fd0e3c7e17d9bbf1d40acf1bef1f1cb78205d46f9fdf192b4829efe5ea3fdf7f7518e7f2b9e2c0d712fdc4bdf97cde4ae3e64e6988c8999e20b17cca453849808d48dcc55eefeeaa60d02261caccbedd1ee0214c1ce39190383a17f7b3970ff8d11bf5ca8b683cd2beb25f7e53d00d6849ce6bbdcd98c77cf35902931a3023ebd7f79b79067853940b2d382ba292371f31abb961d1ee41588ff276053abdff8f417f5d85eb6d49ebb26e38d500046eb9a44a86bc08972d6ad305b4b23ab1eac79ff11256f47f19a72542fcc2ca1c717a00474753623da681fc0f4299e7a3ab85c553bc58d1d93df095a379dbb2550ae3808d792b536b6fe54c2849e6972f809d8db7bca50f2de093990a362c0e3dbc6bfadb6b11b09aab8d3a6a8e91f187bb880ae838d1a7de5edc264b1e70260dbf6987ddac91df83b88bc205c01ad1ded4baf06f168056b4b1f0a8466ded8d3812b8481305684714a8a910966cea9c2a7ff2432ea63ca136646002b8b955bbc4518523a05ef0da4e91e3e7870c4e3d36753e73f4dcaf5b167ea1fc7ef956f880fe8eba7b56ac5a0e10fb0e58223739ebc8f51ea6f85fcf6f7f50213a57e2bc83f7eae7f6051557ff34a46a9583765414b5ed5fde3e3167bc53fd75be093b53bb6a9945b1e004e379aae9f7a0a166ec498857a32a6a97201c373e21605e6e9a4a279f9630b73d30f29590e9ed422391afbf437a4ee3f746d97a066ece0a05c8908e0dc889d81f833fb84da2fd261227de20351ff1d44872487ec6e62d799f5ea36f0e5f3264635a0c061eb7318890793eb7f4c447af13bcc581597bfb8b612b71b09f99e498ac2813faf7d5c02ad045dbcf6e41ec8c94063d6f20d7cd6cc83d825deac77895661fba346f7a7ecf2e484087274ae02793567c21fdcccd70bee87ad95d7bf864f79a2d0858cee5ee5a43f5c3f9060e20582b66a06c514a99a4d06b20d332aa23a3cba697aeba4ae09bed113e5ef674068bebc219911c03afc2954e731d80dbcb5b71df90c63c3311161d1792ca2d71ad82ef44362f915cbfa3535d4d22fa800ca6dfb73d9b9a445fdcb7e3eaaae7d314807cc1d4db8a5f2a5f67ec0b64069637c24a630a15a1c36ea4056dcd2c6d965d5561b896196066c73fe596ede361a83ed444748064c50c88d680633ec18bb77e125e85b225d57ef06b9599e201a677bdcd3dd2ad52d3a402ce687d5f830383dec0e0f33b3c3d43a4a3725a353977870652864b4abb6feaff8bbf4990cb7b6d134364b25ef05cd2d5cbbf4f52da459d54c873f1c4cc31560ad74878624ac4ab6b13fb4c6feb1f57a57f3436c711bbabd0e2ce16d80f6fe0c05c8300b235f662297dc64c190aed5e75df8908c06f29d762f37b0a960af6629a74f34bc0241b05142018fdf2067d0c22cc32027155c29c6b811d9299ea46496a7ff80b3a8d1c59b3da012c248644f0404ba113a4d6f00d6464b6e6a750fd59c997406f219c034a3f1fde0dcae27d3bb4fc7df40d3dfd9e25311bf10bbc6ff0b8ba146cdb481dc423e30944640e753379d3c961c265cb170bff558df71199c0be9c1b00314a8867ad673756d455ced5ca0d43435ece554b6aa2159f0a64fcf4606028890ab97e830035ffc08f9a11cc96be9d3cd06b83ea50e7dad4ab579d303f180d33ea209c9ed4c99b243de615fd44079b10d871b883436fee4141c90293044657ec9ee8261515931f15d47f1a28afe2766a321814038b130992b486a2779c970d12dd3bdfdd84e5a20c9917d0aa4cf14437810fb2b9097b438ccbc66276fd93723f7993e65cf0a1e5f9dcc07a8cf03535c6c8e5a860f6e2881875a2d9b82dd300ddc472cef82a1b4df29a8657c56b4d09f790200315a9a8a43e2904df5c207690ad76c50b441188f4c923c92fa0401aa5a835c0f1f9f58b139a2e79c41680815f00f6a913a86f90b6f40633aa4c08f4e92df40b942281ac916e7eba072fbe2231b23ba98bc3087b4a2c121e27fdd469e630e11ff165db288afe89d2d210347c63e6e3491636796e8e4ebe7410731f1651df68af2d96e356f39437cecf9f3174141f1aac1394ad7b3b2dd6a5020cb9088517a9c40549e8ec1a9276650b69a4e60bbd60f89e4efa8e99f4a54b2ba114d19115cbbd4921adf6c85df873ff9d762f14f55035e6c7f9daae73a58fdbe5175a0ff93c4eea0859cd8c7991509e92a5fa9ef67ca4ed94ae40f02e334e092a05310f77e32bc74a4ba868f7b857d29889e0403139be1024d6801ad2f48f5568bdff8fd377ff31bbffd86c61e0eb226161665d2011b10e99cf54cae5dbcef38a4b5c18097109a4368526406c05e4f26ba5299affcf98048c7b2dbab79ed26c40db68d8a76822a8d9b7a17a853ee46d7f3b193304fb30dc53e9aa11464a8b990d01c51a2c9710a37dd9455c584cb5d25dc16b86bbcdf5f780f220658ece930fb1870137242db940fb414ec17247fd49f53e04072f2d30f5c5f39cad389febdd3b164b552fedf5717f1d62763eddeb7dde8bb7f593aca8f131126992277d79107d4299cc438226b8278af105dd2e11940c9931841e09d4b606d93912120b28aaa1c14ebdafc5cd110946d623df0337b2cb05ba7784bd7c9f336100d428b271f2a55f857837afafdab715a1659cf6610425115cff7976546f28e682069603f972068829b6609887edcd17ec14898c3a59db4e2c0f90f9d75fcd128785e82d8e975f1407bbefad9dc8ebb6aaa6c75a81e83c5d92d323cfcc34f0c6b0255f8d4e2fd120acccdfd37f0fa4b4025275a30ea9ad97087b404a4515f750392760bf031d8fdef71393b775e59cdeb64d241699d564ce53e2f0afbdefedb9d18036cb9134fe0bd39a56b0ba2aed26494a7f514572fe112977b41e9c3a224d79e3db20a044af557471d602cb97cfb074a6d22822d5de5755c20d066c65d1a15cc28f3dc4864caa32342ae5bba60a08d4b08342e1347927f16ddb6fd19547445cc2b1a7771c15e11948b53d787f3fb96f2da480b52281015df001f4079fea6928e6a7b7232271636cd5618ab342b1787efb324cb9a52a6af388f4a7d060803c61b7033ca2d7f8b7702096348aa2e9f9c37c11f131790307e34d1c34b9cccbcbc32c982dc7957e1a0da009463441f06ad259461c07a62f4b328f9c218ea7ecbddbc88a5f4c485928a4bd49d7add7c62f0f32d48c3eb97f5e61e398574a8704b0ccc835eff3e161989bcef9a6b19bdbdaa9043fabdfdf52e6c547bfd5442562fdf03085f952ecff61d345ce54278416328a8d4ef93fa81fe6284402d539502f45d80ebfc6d00d185b0a4d23aef1575d3d1af41bb9b3d9c8c4e160ed17042ede1264b8d4ca42249f8fc8c32a89662a47d2ffa25dec85daa27a8f65dd18d28b22971f1b1f1fab3df661e1b5ca2cf1c4664a39565d6683070c7d7eb951c36aae325e438f44fa77aac69f52354d8d9074b3858c5f621d5d2a485f674e419b2e13a6ef9addf1af5196c0e3d6d466bf73d4615a45c095780bcc1f78b2365f914064f31c9a4a3c6314dde8673fc32d0c4577d09d140cba7d17c551a550b7b3688e9b148e40741352dbbc9186c43f3466afc13c3cc093680557773160427c9a12f01d3439fd9389df1918936eea872845169b7e21ab294fe7540dd7a2c02cd499c3d9e80e97f54e4d2591567ba47d286f11ad7e6d5f2072aa3ae05fd31fa3c029d8553b21dbbd6469278955aaeee949d1a7a5b101bd188d491164f0fffc66052e309d0dcbbaac840c1849122e9728f0c3aa24d3fefce1a6593748451a39229aaf011d8cb04bac454838f6d3fe6fa1b9309a0d3e0c508de8e532511a07bca08081471ffc8506bd46525e8d971503c87785e64a4ce599dbf9df5afc41c15bf7099f88962814fdb15505cd25d8aa465d311c2eced24cbd5d189c5570f9241644619e71c65a79e7f9f1f27c3bacac573ba57378885654962e07f648a4d541f5875c2655eb10a548561d8b728e831e7f1702e1e2a0d770233281d73f1bf841fbd23fcc18d80903da434ec423859af293f2d5f4b49d0283fd54dab98a666b2ed7aa860293f6ee4764a9a1ca8577940862275d9f80740d707b8b8f7c883bc14f6644a8af262d30b719dc1bd498aa87405f8c1727488f92f4c1d91c96fd71e937dc008b296a6eecd0076d84a00c4bccb2459c241cb3cb73073b22d09bbc7f7e630a2768e827b59b7d901ee6006aace6093c2d87402143b00297d8cd8e78a2e1ccdeb32cd67ae65b927d33993a586502084efcfb094b5cc41ad23f72f48931dd982dbb7b36b99ec18c28ad77ffedcca962b23ee55d622d95be951d23b63e0a6e0986b3860b71b26ba0d9e1421a0d893034c4298bd4778846b176210aaa8e1e550dda396c164c80426b40eadc37c4c300c50417059c4675b194290acec667e29829038606003f3cfc89c51028f4782d142b8c6a72d00ee673c0bd424a6bd64a157307450a51c7d8e3159f242ef9f6f244d8effe192b107537d47ac45efa545421733be2d49133f6798acc3e69540fe4ee98ca6e69b2ae84d1381e8e62a70617044be3031fc2596cb69023efc11a02b14acea3b391a9392ebc37067a646c1eab16dff6d9598bb43d0bd28e2bd2dba4dd21bbc67ef3f55988503dfbfd91d3ae8850174d761a342ef31b46c723b12ecca0e3a0fe010d96cef893dfe8a6a173594213e6741d56a4e17a00c7a862f341fbdde83b7168e59910899c77440954ad3ca1c7f09616f0f42fa5a8e346984b887e230b02dc04d7e918da40743a0a6f634984ba4750b1a8d3311a6ddd3676b96e9a04f1595a83869ac8fb8eae58302e16c04990069be398cebbf2233f93e816a5dd7e13edecadaf64ae9032a26dc8a616854a66fc4accdc8f68d081f80e86f1c6d75f6750baf7aedebbaecfe63c7e0805ef9b25b35cae4c8faf802c2cb4493fb23daba0498fccb0e4c553b9cd92fa3a1eeb0c4d1c8f60ae62f88fe946a82ad9b485e0bc78245091b33daadea01cfc2370f3f744d55d63c6944cc81942a72b3485834d450e7678d3187899a16d6f409352a8993f206f4aa63dd2fc14042a1b61f5a7feec19b982378c131bb07a3bed08449171e657868fe577557602ee38dec8fafd571363f2394eb21aba0c823bfc4acf0c426fc85446af0861897208c66deee4626f191a704da503dc3343e201668acc539683549516047c96c9deb4ca58c6ceee39af0e2eee0088e37989a1caa3141b2977f4115d3b5f463a62624a1749b7072a1c2ffc600a0ce2974f4005e658107d4cdc2e44943bd2e20b31203620668110bc726a8521c20ae7587bc8dbfeb7e21ca488800804d7301924fdc2ab26c412d38234bf213b2b2377cea36be867d210a707aad4e0e040ec1ac80fd002d12ade423ec96adca27e82e58894fc03d5b539fa0bbb0d69fe0bb8e6b8ed8bd35fb402b9e9087ffbbdf26ee8aca0fa4bc09c68f8764d17c2a03e4faa296d22989cabe5271b5e486e8ee1d7185110db25242f7bd0cbe8fa68ad068204ae1cab341ac54a02656c22f09bc79845568b1c7d7b026d51b65f352f0eff6af00bb2952cbe10fb77569bcb36f09074423437cecf94fda7a1fa4b1f490c33470ba4eabd4ac6c7302024f2fd4a3a29f6b3ffa3a8d4cd8a3f319a3a3a24ac1a8eb3a4fcadef9a61b7f3d7359a9d6443ddbc72c5ac7fe34e4b77f79336db05e8a3513a358c273539e9e5f09397f1c2b6716f971344aa8b56bcd4c7eedb858df8f32afa8d9558404b41b3ce59f50209286da7568bc4807d028cc247cc441f75e20d4c482c8bf98f08f29ac4f84b03efc19157d350fd610ee1836b12b440d77454b5b30258b8be0a855a5163400fd6019c15bbdb63c08b05717f71069d069832ae6d850dd32fb0fcae5cb37aed9db1c8caca342156b1df0e4190e90db3ff0443fb2d748d1be88b887cabb9847df018ab4cc04fd6ab858504a663abd7f7251427a0c742c7c068e242674500b2b3a1462c3dfe40d12744a13ac0f38ab3c4e4ccc0d7a7423d835f1b9ac984834d36222b178928f7efdcbbec09270a00f3b477a9f16c417ec44a4154cb17f0cd3b4d61d3cf86db045d96121d421aefdc58651111374005c69548a629ceb0a2dd0ac1dd0498444648e852d4496b35f7226504fee37c10c784a26583e6a94fac084d25bd334a76bcedee91eae26e29a8064ad99015721d9120bf05f4e59e2ca5b7c5d0b8ec385c83e6095c998f8c685234452a430c94e92e1d9f2ab502547e91e9261c11289310c24f5366a39adc9e3b6c27b58973388f818932d552f9b7474131ced441a4f3336ba62910e9f1517d8c05d24118d341a803255356182b9a84ba65b7bb9185cc03ca9942717b144c5b669d72a56ed67561ff39ab8e2fa87ddeaae46f063bef663143a8367d4b555d2e3b157f030ad4b67e558e313555bc38dae83d37e8d5e46f77a897516d4c1d3dfea26a3baccba491e0df0415fa3ab2b4d768bea945589ea92ad8eb2062957963a68393a24a35baf50feb7cc9df8045c714b1941ccafc0acdb9cd1e9ab2500988f97186683cd98080204f034645618df47f609cc4d1c744324b1a9b0c9fd012fd1dd04339a1d3f03880d2ebc8c924a0273f88e3553f56e766c7c7f823afe0be4e47f590c6e90e4bffba0e806fd83ab72cf0c1694766645fdef3d8f893311590614142bb7f7241f68a5a1144c4937efd1cbdd20acc6d262070b6ca3c2c09777f2ef8594ed18fc586ffc14ac245a067f4e2bb058b128d38412e08e5b0933a8b54cdfda9373749279d180f93a24b4e4108a8e46d99d2147311dab7aeeeee27c8fe2b59cc0ba8fa2420a5952d9e7f08304cc3de6f6caf6d6fd3550a2b43130e38eb906171d84081ebcf513d6d991419d99cce6997ab6cf28ba62229f2fbd0da8e3a4d873c455eb2fc46e70d2b61f76d0fb9c8695c662e22a29b8da250212216c2be263fa8f25adb2970af49d0d3053f46c0bd73beea4e957814cd3134dcbe8fd7330890dc3336c113c2bad9576f71c97941a944a2e5b6d294c211ac1d266dbadcdc2f26f9d46d1549e9ebdb42adfb19f147d75a11b884ef331f36eb38591a77a2e8c556422d42556dae8acdc855333f3f6ebaaf5f3386e3f61b056fdcd9c0695327c892e354984179d8114484315704896b8677690218582d8c821f2e499f26a5cc9b41901230d314e5be9d7c614e182dbd47fa7845dd518b27a373b3a57ee33789db44fe4e15a4ef7481a740dfc50fe2b5519cc6556ac147b96ebaaafc3e12e7c0c7cde10030392efb7bd65f783a969e24031761fd15caab6e409027d43fb0e2ad0c1ba345a3e1a430916b9ec8e9a3b23699ad96d5fe658606f9d924412b6f26638921a3551cdd561db88a9d8418efb295ca50700d809af427f785f2e86dda1ac929d924c9cbef34726ef5615a919eea9ee7a9882f50ebeb347db0149c8185ca0f989061dbc46dd354f0dbe637e2a88e3682f8e528bc23aac11fd812877443366c700b558a46c7c7e7d949b15a98f773a4da65bdeda7a521d8f452c423a26cda31476b1e7c05a3d51a3b60a18ae95ae9eb6cbe883de96a45e82d4e3a837ad4f3c969437f5805a90bc25e6a697651a7967d53371551e3a4d0747cf33272ee15a7416aad60a3f0cbffe079057ae411a9c19a157a18583614bc9e9f27d25bc31ce3cd1bcfd33254ea2c97878752442465ae2ff800008d7e5d860c90f22a7bb347d06e01c9f6130f1a95a87a7af30f1f52f04f7b3160e1d89e5e023445167c108f044a0372746c05b9b6244fb1c0350807af37e8a407b4606014204e33f8998ac0a2e571ab73671642b283c26874d6875a8986cadb0948f69a9856330e7c9032a8d3d6c8fcb7b741477fa1457ffe262aefb7c16e01e7b01d140262ac8428386cb1052786511be6d8f94982db13929a1eb2547f9c35f8d9afac85ce05b3869ad3be2bc6b2527ec08eea080b29617a04f23390320156eb911d8980a5098c7822ece3a61f54ae156b8da351c8375b7b6219f7e4d77b2d77d7ab4b8c612ae6eeb4f4e4e5456d546048781e4ad2eb5f408899b202a7d4457df918e8e2b1ca675166bf7c61df9e1f178f4069eeb26f0c302067e214b18dee76d44e314a16a65e52ab9d2369adb396bc9207d29dfa94527aa86b9a5d5e10b05e02b2e28247eefff51e143461ec370d18538139c1530ba3ee73cecbfd8e158504537ee481ed5f0dff1e7c47d76e4640b2d100c88f401841d059737789b950140281ccedc2d9a81715d1c8005f63534eeddd86abf9e70d398c648e83e986a042dffd1d9d6081448e5ce5cd19aa415ff18ed47fcc1cb349eb1a0741e29ba10497c2b5aacf043405f029abed7d423e7f17b709e5d436971b9ba2e604ab8ffcb386c069c2600e07e615f06b6ebf5dd1fdc051376855dd0a4a715c4413abcde0bd392e1c745d8a06e10dd356a4cd6c2e1fe4fa2383862a82419875f24ef36f16836810727754cc395ac8715af0a81b938e7ab947a477316701fc85e0e04009343d0cb65309eec19a91f60d9f68c3fc56110fccdd69dd1499f1cadb2f2f9efe5018c70501c75f2643aff0260430dbb30f3ec8a548885e006a095d1038a25680f50404f5804e2a75ed6259878b85fb8eaa06a3fdce0468698994aeaa84e696d4c2e91a915df33e659815ec4d0b6699b9796993c399ec0f0e25efd35bbf3da9fe96a099bb5fa5cf1e02fcffc1e94aa6d9f36d8544a42981ba05e777327bedb3dc2db517fe20e13e7f0e517b8269cfa9bcbe35f7540af61b76d8ee3dad4f22bdefb9dbcc8ba06e37b9588a396c800b59443efdcbda358b0294ca9dd7cbc7016c29be8162b34a5161c48b60927e667a261e1e1902f86a1f1d6e21ae169da84f840b5ffdde99891db84827ae5565cbf21130da01ec327e8bb03b32651c0fdc3b685d8988751b5ac3c63babfb3b37e130490979ac5a086de199b2b609a572b8932d91ae559ebb826021ce987b9a95c2c7695c2b83ecb4d3e00502062300015a0200e95672e59d3fa9edbed4e7c8e594847645771238cddc4a5cabcc10d58b611a9ee21921d1a51f6417128dc98116a2da94284a36e5c55d463dd2c929977792e88e17e9a282a8012c9e5542efde55b8091457e58e9a2ab875114398029fc05a8abd6b5b6d924a38c5d776bc6b3b97917181e35e10f293e9936de4d0d5d23244913a684df9d6d1a32c828c510a9b7aa0f9b1116afe47f624b973c716f9f851660e7fea1a70ca807815b4755654dd4d7a3ab7aa38e53f71deb0c3c7e471de0886fd12e15a7d5f84498b57618a84ddc2cbbaebcadc93fcee8b37820a39e1b5311dd93f26e5262540c34bc88506109fdc6935ae67aac148645fa349e33bf744d80a9c82812ef57ecf9fd40a258a0d5f2d1472151d87482d7eac3c4a1d8082d5bcc4d6588ce5aa7cf1c4f46ffda70338ee179ecb7b4f5e949a098ef505ab54f9dca2a102ffcdda4ab65c9904fbedc49038dc6a556271abcac910f84230b58e31fdcc9f17d21494c4ee395808e202854475584ff8e4068ffada7e1250fc09e13f9402364426ecec708d8f81808ee2673340caa1a5c30b207e5e3a360b0ff4f6cffc8f708213503fd8c1d968218e78c0c91c24a63da829b0d3972ff6cadb0970ddc100c7a4a86c749aefb01be5aa7897cb8417f2362ff388330fd40b7dd010edb12b1996291b38a13dba5cf686fe5d9a8c9c4141c321e67c8d0b36c76d4abf2986aea0e229e1fed62f5db8e17ed7435046ce3eb30d5e0404008838d15d5d11f3fc1a0665f39bc15d963e415e8d8c54a1b4120433b89326d1fc56656f9501a066edba17e4e0d94468ac04687ba6bedffe9f4bd0b5fae36c58c59a420ea6460163e4bd9df6814387c4c8bd75c2b593e0992dacf978d54c3976c5a0ef73e88c3b1b47776459375e7a60d51933b14129aafc14af73de38c7e52fa9cccae415bea72e11fe5f46a86152fc4508c815a3f999a111ddbb1c636609527a5beb70b4ca505a0ef2e0f3e7a04502671c34130f10b9f8fdaf5876b1d31c6a7a62b1927f38f924cb233bb91bc0b87d1b8199b37e3412f9dde224ed5c8ca8d4eccf4511b93c8565b2c4f15d61693848047c8eafc5ac8e6d223b89c144ad3837e7ab1544382029519a17d8e11b45a4df453ef2b68c4ff51894303ec177c47bc721d308643102d72b533525a122b965f90c23dbec6dea4782e6ab2249ccbec88626960e4b211e53735cf7e9c66ee619dede62dc3ba5fdac84c75c2740e7fe014fe5407debfa294d8a5ac09da31be907d6f44b3a267acb6f73dc4d33a88c0c6fea4b35eec8cc534db228bf17831e80093299638b89eb68d85b53f59b577d0c0944962516a4c43e0a9a3e887ce5d5aee32ab67e5cde32ec095d8920aad1688729286c5686b96717833e74c2d503dc3e8a426541332de94ce5440df925793829b3be5a6971aa4fa304be9328b33864396efb658d06163216e0b924415c3e654eff28f8a590dea8ddca24a6fce4bab3fc1a76ba75e6286f78f8ba50659725d884ff5dd2c1b2954940b647de9d8555abb04686482319815dc1e55124ef32c95ec1f72ba9073c7d51972a50b5eda8ec1affd63b45a6a8d066fd9f2cdd2207f9883296b6860fa5fb06c37a67250cdfc2510372f779d0e44bd238f3b26dd786c21318ff00851acf32ec14b4d3620e9d1df4c0ccfeedbf7c0275ac9cb24ccb49b9ff7c86ad15148fd72535cb75cdc9cbd016f59c40966da55ce4273e6bf804c49a8fc48536f8c67341f4a6d01b14fafb60fe84db6ceb405470debc56cee0673cc4855b01dbc32b9e7303dc35de689aef2e8eac8dda7d296f7326808e3cc944ed4e62e1554e1a6b811350b91ad9de0e7001be05254e871803ac74563bc8c9b7b02673e0b13586e89a11d596b376102f5c8f98798f532d28611314ea886c76948a264afea9449fa3d44dd6af72df901327c84cc477d006eef5b7d826ee7ab3fc34edb66c50fc34538d5bb8a5ef0c1737032c227fd6a270a9af19d01f3b6b48c7c74e69928ec6ec4577f046eef53ff03510f42eb233f01b7f7a5ff80187c08dd977c826ec4477c066eef5b7d82f814c9378e30afa2acdc452f835ca0c41814dd8979202d0e6269809878b48bfcb8c5497ce4336c55fb4f509594f46ca6d0a35bc4184cb42ba371d712eb614b96a01cbd0aae783d29fe203d145c4583f6e6ac1b202eaea07265264eb85550d4cfce344809ca0df8f3757bf2697f4cc458ce9d524959bd471935e55bba38d017d3d3242edc63275f646d5f62fc6b9e7231265ad300aeb15a23eb5c142ce1504cd07f3c4d599d7806e38363df96c7083e81b3548d59093d16449e05bcc0cd587cee1f94b0f435104d04f44ed443040d59345ce21b61612d5e7719161cb7bc4a3b30e68164ec6b61b1a7f889279562e1d9ed9e83d74a43e860e380ae5be3c7fb5029d0fe4df97728401bff1ca050d4108075bbe5f9d85537d05f98e832c3c683f4952a3b2abda717b8aa8a1fb362595997663f74f2fecc1861e4b1ac8d4694a834d1db70190c37f8f37b67122d2d027fd18940caf3d8ebff7fe564435cd9748cb713fde09c33a1ee04179eb3164bce1ab3426e518afbc9fcd89caf6b083080cc54b48f9687d74234c7503bfee3cbefa415c43aa38893a30ce40acbc4f5782c63f747727e9a277cdb6d40c8c3828c3457cb8019845baae6548e3193391f8b12e4358b3c3447f7786266d9132145ecb2fb357ac39e6cb94fa0020ea54b57bda28230407f8dadd2e87d9752da61eb8f6d51deb188d2c0a91a63507e7c14260ce088f94d4c239a721242cbd5198713298a3595435d592a20b8f04211f9937644ffc5c88ab1a9fe32c7c5e3f3cdfc44fdc0662c54d3aaa799facfd823d14c981bba1820b27873dc4f08b73d8f566e48728f7fd8181d17f25f288be31c78c4e66eb18f745dbc011d1e41c1b6aa624c7065624d116ac3a4f128e8fe56fec1ed52928654edd5aeaa22f2cacb534df39dc5de000909de7293ef1aa1f6fb1b97c8763830cff2acaf09e2109dd546ddb8c6578eae49af51326d1293526bd65c5b90173f873191cdd07eb77f324db795bf5845ee0f2e9ada0f594e74b46b5f4128d5a94842f50c2486ce8de0b470afc5cc7b2602b3755b37ceefd1e02cd986725dc8d788f56a3c6f4ff90a5861d2019641031388534113d96fe6880fc4c92bfddccd100973088bbccb22eebcc9b73161ee9ef059e7a64a28a3e56b456e4626ab202a4a3991d31dccea6e23bb8b4f79e9819dddf35257de44a9b1c5d2547459507ab64bb1df6bbe48fb58dc1089abe687f04ccc950c69018bef8d19232af224201f6f75345bd7471ef44bc37cfca5be57c2e0563841a68d1cdccb017bdbd4964e81a77b911b305fd5e51e718dca0cfa63ab6077a487c7350079617c5551c24e2f1e75b5326b1899f960a86a6d398b92ccc119f326c2164103afa92af44da78aa436add1920cd900ea14e995a9f23fb4807c0a547b1f8db9b878563438deeaddedc0c48f96f2f3635254d29fe17cd000668384dab7d345222255600873eb3f33c881bdab8c1ba82880426568c1f781f500d98cdf90b838ef2d8ad02de5ae895b112f817930e22556b97365d3d281a4d9b6b00a394f558c60d567faf1f42a9bbd57fd759c4110c73c68eabed3c8bc5804ae7d87907bc072f9dd4bbf006c9f376803531141d30666e74fd7affbf7cb7d0f51627efde8939976f6f56077338c8fb3c8d7c32651e70b6d43793afa78f34ed3f6b2adbbede52d9e543bece4c241cd709bac3abb231ab905443b770928c2bfcc7352d60135268a198ebd361edf092c2337d23d9e332644abd44048b3728598ecae0a94e0dfb6891f515d5abdacd24d9c907ffeccf5872594ad205293e2077b64fbc001ded2797d69e7277c3f88896a4cd6fd53c363969cc0199cbd109bd19c52bed6e0c4967388bccbc122f51a7816ada448be253615afe8a0b3dac712bff3835721c8bd525def8db0370bf8f18de998ed04fd6bd1e81ef00245c164b519b37cd506895df32c151cd914299b67c9f93b896ca5c17ad4352cbac98e7dc6e66eb8f723de159a19333e978d9fc0b9cbca3c6dc586f09e4c5e2ea38da3bb17726a5ddace23493d178807441a75fb9d6ae749de88f1d611ed36b39688ce95e9665ee9fea244ba6801fc1e15ff7349ccd3987e3e3c33dcb6b0fc911a8acdf8054273e1d0532321242695e469a52f1719baf571bbe65330aefc320d2a82dfcc4287caedddb1e95aabc746452faa3bb9e31db2e9d0664e639b2a1eb31add7872f5ea057a64c36aa2c1a9969b25817cb00655c134519fc06900b4c0e243bf72dca5798e46a41d4e56b6ff0524be913bb298f4514bc624cf5358771e5bb2cebc365a1cb9242a3618c79d6293773dd74fc590caaecb23503d420523cd79dcefa789b33f62e28afd70d07f787f98184b5ea2b2eefcc9d7292de6ac9b3ab227b1f553752d33534528e5c618adcd1e40c8d5160a96ee22f61875753aa53c4b7448840ed94700cf4a9caac8e6350028faaa896e081918cdebd1c690cf22932b57066c20820777947e9f0ae764502cbc8b79f62b236e0159c014e817c1155c0e85bc49a9f7b7be3ba3c497062b2ea49d158e7eb1be4896e03b17d0da367332a860e21db0c063a719b340d60f9b173612a5d186f3be1a39f5da73c9268ff49d3c46eb8e6a7a835f03965c587f35bd74aa11be9eebcb247a2904841472cd0f162b6b19c0354b9138839a97bd82eaec42ec4abb52a907304dd98ac6a260749c1cd730f57d25047dd84614cf6cbbe6f7815a762041ad682d33a15ac6c6c61e6be52a31e436ed32ff2e4f9da1f86d4a1fbd2fe00b2ada0205c6c6a0208e5122f05aa5041debf99bd11d76815025abdec39eb78d39a3e20630f00a7a5439048bcf9fcb307715c424ab4909bf9569ca749bce16d616a7bb63646de35f0dd8659a86ed55d60c795860805b5b6d54bae135a4eb58bca62aa9ef62cbeced59bcd040d8f7039dc49baa85c1ba8e426e265f05eedcbb9a7d5637f01fb4cb657794b0a88bd42a40d29d2da4ab41ff71221e25de87c354c2d265b3b70ce8d90ea60b4d637c6272d28ed2fbdf6d8e24750c53e6f0169bdbb0234f73e49b8a611788e43aa0bc8375a3f36d67f65cbe0418baab6e734bcf07c8347a043fe430a51a69e1e0e66995ea5261378343282e898fe6b1c28103cc80e8c23436b2cc20e90a7aed5bb05e116b654e43bd548496ef29bb3c80eee6a253180f42c0f59fabad3759cee2d4d58e5fa72d57679a5b9162955b8d616877da10ffe46038417cae2a2cbdca4406a384f449c76cca9a8efda786f697d57a7aeac8c2d2f304caf34ca218a9bcd6e36b14150e484ce372ec09126d88473b6f8ec3d688c348faeb8b2e1df045524b0a4334f14cbc8588b9c6b82c5edc37e6d8bd29c9429b70fdd5c9ffee136582902179fd4c8d85dc601acb3885bbd661a38013b53cda538665da02b9b3dc05647c5544ed375eae3e921f2f5719b13c4a64b361cfea1a28d11171e144112f3d98759abcdbb213952319323e2934300f95f530e01b4d797a58056f2893f0b76ded543d44a7dd0aba339f63afee2a8ba062530462c0b411cd50f2fef97d18c2154415e69eff2af0a75d078632736e3fba96d6d314131252b5bce055e6aea25f1d01976b643289fa94f1752d035673308a336a0749c663631b7520e9c228c5f28004da3a0777a0984f6b90fed5be4a7c50078610740c61b4de949df8f612ff7f81f4250a45fafdb46fe95a41996fc99a53425fe975c7691f72573a6566f7124034b351e60ae062377dbaf3def1b80322d153013e72bc75763ebe0a3509563e55f7f47a3731b6075c38da603ac59815ea4149f7593410e38b8289e2572773bc2f9a9b42f489af70eb9e638b616d7b878586b2267166f925e5a00920f3a4e209dbeb1d42ffa866af429aaf871d710569c20915e9f58922bacb8a5c2df72d512f4b93375e6f6aebc2c236f838cc978943e99a1ac7bcb3cb21f7ee55084b4aada5b326e429b380271fe2cc3a40578fbe12e1eca3065d0b8baa5db1460c1b3940ec9f9039cbd4812a278dac73b95d14a2ef2c2db32161a6db0e5d2a5f8aa1ee255772c99e5c3c0864e79275b0047514cb38520f7b85c25b739206e08674c40dc5ee3811a5d7d194f2456e638c4742b492661c106eb01d88f207ff0461e1a6d92621c14558ac086c3ae3ed6fd4c562d95aa9234acf3a1775089efded37988bb627b4ea46e9f73f6132a5b14bddec6c8a00410ea0d9d2ac2728f7729e6b143b63331bad12c86d424cb73e09d800188be90ad6c90bcd6d0f368adce73853536bcc6a0476b6b9817279c190a97b446f6350fead3b0b50f0821fdce3630f5ecc1b3fa5152cb3f3e9af287b1262a54a7d24749b30f120af13f6e054166290eaa80de7a4cac1c0db4525a27fea44493cc1e8f6e11e92d41031bd9e4ca8c659be5072d6d12a018ad558d8285319b3df13f939bf30a1811db2fc6e17441d80c72e0446202ffa1e08e1d0a11696854fe505f52ab143c89721accbd68db1f07714106e52b7e09b9390c89aaf878739fb53aa38a1671d008ec9cfbce42a3e93a834424b8a0edf3348a2aa9ca7a18c8b3839a5862eb9ae2a064fc95cf5ef184f2bb727f6cacd37e95676ba17ce0a9b0dfb7e1c563927459db8a84ae696295cf5ea3c28ad2b578cf0322deccddd1f91848454952e4d5cc5e75d470cf1f0fb256251779d7e25b46ee5f2c435cd8579678663aaa51b226964f7e56fbe47d50f008fe6726e47ee7ae7a18803fe05e22ab55d40c933b81a105a7283b79dd2d69b23425a928496b746b2212f3cd68947912d8c9ad5c90552681f16b946f93ff49d22ea459579b8641d9283025b5d16b97c750da9088bd3ff5bbcb653955f476509d89b9e3b6e759916a037bb3f296f2238bb04cec829858e220e1e50cbb67676cf3e93aea31aa5ff732f29338c42c958e0ec64aa6e686030d6788963a1df443288a68076028645baa3a2609e3b1846a3ed23863ec5cd0c831ab188c3d24d644b548527a03be57287acf5a85abdf62264cd43ab22473cb7d0284b6f637974bb9fd5692b1ac9437bf9ab5299b8498a8ec871ecae4462b9b023118aae0f6de24021db0b22c32879f70a381b858c3b5a4be8ad2580e38e9afbbb98e23ee7bb221b4bc860925ca7ab905efa22db645c5ac4236ca1f81a8ce71dc484784090059f1cfdaa1ba0be1470fa366d9336f90b19c60b7a783ce40e28759200f5c570982225fc660345df63d78509ac0912b16fe360ad52c17e859ff102d088d205eea201b8adf8f1471cfd768e6cd85b7afa63451c7fe959f7a2d126e7f132149459cfc6e07b6132394bd9ac3d3af6efd0cb9c95f653b8a99eb30c271440f3d2f5a8005fc8adf021c18aed3d7b044a5336623f5b24d04ab3b1a769c5f610e4f706b290ce45c6186a9a1272001380498b92b19987ddefaecd3da19dac10e2e4e46163070c6b4d6be70e15f36cbf995093a669363def9da42584220fab19f0036f61417790e0bc3f1471e44f0a825f7ccebd0ea3b0b93686bfd0ec2394db1d20cb0066b806c46a502ffd9e0bca02e49346f28b8b685813d06653091c9c43af03ea484af619ace4b8e1ca1b8ea0cb73bc1ea5b301520783a782123476d1d988ade45facce0e2d5f8b736e75f7e41be7455a9d24445a0f21663118531ff9f83d131c595ba8d0e189aa52a17045b75899dfbb056eb9224e29f9bb5267f8dba62290b278e246aa290f8efa034ab7ca1c3ed9939bfb9ca5d792caca6eb5a5b5b2749e595d7a90cdef08bc1f289d11b3bca364433faae74dfe558c86c49b57d9c081492dab171cc50c5b88b5101a7a907c9f50655795f0a55f7291461f5077ca0080153637e7bd5558474e9752b7f482bd4172fc7ce3bed897f974d92e5d84c0dcce4954c63fdc4e2617929ca71c8c49a1a520ac80be83604725e176c8d7c8cd5c01295447494768a3ef7c5ceec643ef5151e97d68b3a771ecf5f755adb0915b4d5dbe210fe2829a053daca06715d546dc466fd2df5adb891b16d43d18645cdbf12c3c697ae8a0451003dd7bb32b7641a6164a0373758d7ab64c1db16ec1b0904cb290f78067c9e51e34a02f4fc4024beaca7714b5400e13098fb976e51a7aa8e9ca6359cb26e86efffaa9691bd977f53e0f4b682c11a7314c6f6e228dc8f378a8d1f77940dc8920e70bdacf433d98d6d4763ea7b31172be4294c6ba89221c7bae12e9fae6cc9f05fd8cada86c750e928c3347f3f973696d08d24814c20c84778b91f68f3e71ba78810faa3402d766c6a03ad284871515e7823d22d67322c672bd4b7c99b65beb3d39578498c5f0ce0094d01ee34719652cb6b73fe62702ec0121251e06cd4ede35b2e7af26dd5dbf0f7ba715a92223f5e613a20e6f81a8a2c1c74ed7bd5c7ccfd049621cc0666ac61fbc003a35943342c45bbf6de1f0c97087a7c46bdb1edd51b4d6fdd6c3f201eb269d933a6b3d7f2fea1f889179846bb57b4479b470a47b7684e6f2d90a69ee5f20a881d84a936ef2e0868ea882ae7e5cd69d38d603ed5640bc9489a88b7811bebb7be408de7048a032dd8ddb94954d1170202dc82fbedff85aef25c49baf8e6b0789e234ab0926a97d68f2a56054a2036057d717a973d9b23b4ea8fcf32432177777a1aebbd9f17502376c87cc042a565971dfbcc12aaacf9349081831885c1d83a5a3d6476da5b27b1b167b5345b551c5994f4508c4ae394b498e046e45604912b9f1adf8553996fc0f642382b83c6e173567cb3ff05fc06d35810c6a155a96fafe02a29d31aa6803a79615df0353ab90cd94d0ee8654e5483ba66d91950208af068d20a17a130847783da02775a96f2666b805296c83ca2ae39bae333ef014074a333d88e9d03a31911ba23acc4c889dbc09e82fc4de4281da310ded9443e437514413718287863408032a27eca60e8aa77e6d1e55c36aa706879b168414b513a06951f49ccd068e8380efbf24d3536c035f95b8f50b090d425cf2525e79d4ab247e2352af52ab35ca984a37aa7be3b26812f514d0300b00b85884a300ecc7279925259409239e8db8254cddd8449fb21eebb2434b9f745a480922918b61dbeac8ad6a65aeeb72c468d3080d259cdd6a2250a620b339585c722906379680d1e70af7cabd38c6ac221de88cc7e6de51dec0679b52f00fd0ede4d8490495595498b057f4347c01578c9fe34c61019b652ee3876034011f24b774d18c26b61b1739ce5ab2696896bfca65c237172e9c42a82c873038491a70cdf639a39b6a00d8b64d8c0b8cee2e3dc5e0a62926b8f9f95237df07fe9ede5cbc17d2642ce3de8d3e4f177149578c863d7ef9c01b54f986a07f7103645da3ff8701ed1979cb22e3ebc9b88fb96d7d5446268d33478dd17e85f9d26e558b02a588ce0e47ad7b07c4a41847037748667441f4363482dd0adbc2ffbe9fa6e9b4f294e1dc7afa872278fb794d29930bb9130ed29e1f0e22e9488dd81213d140ce8ee920dcab2e1ff8c84f5b925189d1ffbaf3a56ca12e598d1c49913f7813b61b23375a6fe3c5240d81e906570d46136a2eacbbf0560bc3b4dc2d0b7cf85f95a33f43ee40bbd8957698d81516806ad08f1180c4fc7f5cea0f6846e35a71b37ab8990a793e32aa8006f069d2ef7e31fcfac1bf2a25e66ef7344506badb7070b6aff3625eefbea706f699193444e1fdaa1f85138d31ea1652c6e679797428543a77b9ae39fe43a9d59766f41e33625400889c6273764e857a3477eb177b80f3140920e8ae4da3ffd049b0f481055b18c319b7a7b145aebd6c4e655670bbc3753dd4e6c8ab9faed723eec6f2d0ee4c1757da5028d50d3ebf9b254b6cb0c8e7e7a12eabf2c7835d5abf1c0e97f16cde4c013d8dabb5fad98cb4a6062561a8ff0a0b7a410c8db14bc4f63fc8b2fc0a65dc832f29a1f26d6aee2ed877c427d942226f6f6486c59e6dff632af20069bfcf32102a6bff7af03c7a0a94aad4fedb4a6cd3d57f28cc19f79c92d471481da513a7e1870ce69cc4e02fc83709fd3b38ab73e1a0b2109e6323950a5ef1b63c40552c1c61b41b92ea3c92b9f42b23995f5196efa0d2c05d968a81ba34c336694b9f8b35dd0ea1c886e9358efdf74fc1705f284e09b4c2a31f20b0acf09c78498fb30bb8a55df76795162b6659c2809374f65407ec278c7ca39b26c3c01ab242549fc1041fe5da8ae39d66a93953247e9323840a779d48be7a5fe18a61bcb85b03c0ba5c55b6d032aebdb6c6e178da4135aa77c0e69d93ea3087c94a7efb893ab1a41de0bd7d0cb82ef0adfc05689fd26e3fbcdc22d0e00fe69fdfa0931f5ec276d96906c805fe0a80d2e49e702e977b3ea238bfc2e79d5adfe4928fda0554da83a80555d110e9f3cf39b2e3c87b6cf36a8243ba16e7693459986fd9cf0a7d7c672441bb5595b96497d6f536db5d3995eb4ba03b60ed9888be3f63acf25f67c73b1ee07f7c171176f16206223d88730dcf44f1ff60c522472e1f309d0f39d75148132e08d09aa273fde42fe36b5b3aba6bac007205fa614a6319824a013c23639e23faaf303a34c222965a61d08c5b428cf72d2e388375491f7d502810eea9b7f9a3ecab88a135854e0ab82020f188eb686d001d8ab4607540d83fc3c8b8775a118d4cd8f70517786656b28594755a57d6041fd017661fcc875e5d9fb6f6ce2c200a38c678ee111e890d5b6c9939421d7145e4708f57e1d6f8c6da4a1ca23a566614a98468a65ab7192423179d6dd03cfd20d541c81b054963a269168f425f83eea9f9329cc40aa4d29ebed8c6410c3765f3a1c2cc5b808638fc2eaf3da4b019f03327ce934b2f346fb2732e9834617977dbd9a369f34729a85a7955d1b53e940fa003b2d7498dbef5c6ee184babc358bfd44ca49d3a00fb25cbe2fbe5414c7cc9263faf87acf3b8efd71b4a4f69031d75d808db7ccd9764b5a81700e2b5f89568d85f1841f25cbbf47f1a3b385572ed7a454e8029bb98f19034b16201c6257c47d9ceab865502792c5102b3cb620f7db0da5b6ab1875fa8f7a2eaabc05883bb8867da1b35b9b4268aa24ea402c1688ebb11c7e5ea9389c297faf9eaab68775cc90c4b7fd51994471d311280a30fc9c53299e5cf10955365e9b6e16f10f37ad7849058c7d1fd8bb753c51b516c3a528083fda50f85d2b863f6f9ee072cc19438e5987ed68bf324443738f2b6a987667353622907773cf9fb9c9e0584f6b1828945542d3e54b4472c577e1681b4f7578fe95ee3e1647fb855a7d9d2e1b49ca85c889cabe12c517e3eeca674bcbf9c06b32cc8ebaa8476dfd258db2fb2c4bf4d1c0db8941fb94da9ad7d0ac58e11362cfddf451a90e9a486b64ea3a3835483aba9d837a5898ff34fc855092d58d344eb2f86b16e0ff994db2807e50f2367fefa377e8eb22532b4a47e686db896a2e129a0508eafa7c518643b25a6a18e16822415ad5290d1ff8dad1141cddea3f47d91ecdc5a1013740258b00faaa17d868f4a6da2594c78d09f8df8ba458ae82333c221711c4cbd781df24e04ede7a0a60272b8444ab448bba3ad7e3da8ea0483aa385b29572c98badd30b1c13a0d24957e56b18170dba44d9eda02fc832fae431ce90236336d584065663aeb7ed804d97c707e4b2573aba6f4d54b7087139cdc349047acc09f266cbdaa64ea6c9586ff4a0ddd0b8d2664c80126c68410b4e0f092406c9bf50fd7050559507e384a7177d59a2f8f623fa841156d1d079a13221a3f922709af825ec38acc88be02447e6a516fb10aaff25a3ac255939095d8a20a6fc5719447d96e05a114828c6ea2113436173a6b817eba4e807a24858350b23881c34244b5248d74cd09c06b9456b0adcb48395ec6dfda86239068b659ad19f9dfd61448b844b7a3f590c8b1634e20e4d881fc707c08a58f31fbf657d337b2b52b630170d07ba3692ff702255f6d3b34e4ebb2df7a4816e7a06768fc6834ec33c5bf995994304996928f580fc5ad09c1692d40dc4882a46e0ac9c71c54eed238e600da91d281b82e72e05dce7a48bac2daa9757be998410e6201acb618b3b71eaa9d7812d6723c44e84418ed6c6eb5c1a95d2f60be1cd614d4ceb21fe71e986f32daff27e1fac9493b99f7b86902f5115619570fc4b216655e5eb63e97e7102dcd69357aca3068ae04b984f28984672217b7186ac3871c7e88d8302e32d67f50932681dd8b91a8b7fdd25e8013e82e7ef8d024972ef7169148d04b51aeee21574815a00929742952f25e47a2c60424e55d290b6abbfc840fed1b868f342d0072f850903533bf7f09d348b0c00595046703362a8875275246b2d195616040e78215ba38e88c5d7da472f0010509c218387c48d34dea6df13f0357c05684ba0342d24bb821f8f763c4459d711f8ad86860d6b73828263d51bb29810e4b1d645cfb2c9b80834d000b5843ec24c078dd075bbd8ca6c4647ac91a60be451806301b69788350848ec2cd72390d582084d063ff1175bf6748e2c6d63b3cf7977e87c69477686b86df1b7ed1bf30bfd6bf0c3565a607eba598cd69fa6599704f4ce475a222665034cca10b9e2fdb5ab97c8bf82b26063bdb76023bfcdd01263e0fa80ad0362e62ea8a69bed2f809fb426ea27deeb857b359286010995c8887287dca6042f927757f559ddfb45beea62e2c42f282ecb0a8112ec6605c34c6360e179366eb41383eecd90e2e4cc09ac341220b89c4814249103c8241e05a1818d7f5bcfe1ef4024be0ee85322e9c0a77d14c2b17313a64422a5393c74f641bf7cca83c2dee22fefb074e4c430fdfadcc0cdc93aa19ba68253c2189bb281b31472876d674be408d343d69c3229c7aa20b3289d4edc4bacd6c20f9395df38e6549477ff33d8fd1e0b42f6aca35803ceb5f5fbe287f92d1f131a394bf7c21dfd0ff8a304f821e586f35d58e68ad67610049423c812e1c2d86764b7f1f230c44d01d8c4ea7722c789d11524d4fd224891aa4f5b14a150ffad97e13360e262e72880da17468a49adaae9137d24a154e5cb48e0e641b5f7fa56b2962b34c911df3b2e8626d83d06ab1b0244b5fe452e325b059f00286e79abcb2c128c0f7377995975969f44076aae5ded06fa9869a5cf44f401cf0caa3b5c9cb39e584b59d120a86563ba63250960ad327b234d1f83545a2e14485a2d7d9d8254eca9f7d3edadcfc09a7c678780830747ef7a31ab11c6048ed12c436260bfef9101ca279a889553dba5672d12d6e001ddcdb8a236eba255c06abad803f9c8fe49d61385c39739326d2b91a659ad0ac53d1ee16882e0b06b10ccca2f555ec5c1a64df8887301a845722ac101a847f7f5cc847a51542437572f8f76ee4e3043f5aca3ff23d6d7aac3837bfd6267828c380b881d30ca1b655b97bc84f4e7e17ef3f18ca96b0de8202ae4fb3a61a3daefb9924927376d5594dd87145e39e17a2f03f2aba2503a38e5845773f93fcc948c95ab6904d91229766b9f51391b1f42efe9b9c4eaff8fcf7a6d7d04149561b66902714398118b839bba8bde16d4c90b069e6bcb36aeb3ecb91ddee123f1ff46c45ccc67a23679ef7cdf3b3e2ed5904bbf2acd9acb5bb486b26195ab3af2f4bf7b8e7b2a6d1892f42c54cd24475045ff9ccaa96eefa4fca811289c7f6239e57b7af015effaac7077604c4aaffb7cc00acc8814af823c02be6fbe2027739f666e052223a8e89028d2ec04b51d8d4eff883cbcb88b118bfd0819245552e096e179c8d1e1a31dbfbee5277ef392e8cbbd7ea4ce5ef61d582636983cd2605ef12595bf9e2a208e505d16111880459c8b3940bd1089d4bd507f10fcd46d11e40a2b891c0977161a0d68bfe23363379f77efbc9c244e9b1542dfec0aabe4643162c2f067ed62ae0147d5b9791f8bb1672f1f049a8039bbf7a4d963fc1e2f97c807d2d620f5678d0ecf920b5101a723e7fa1e8221859ecf33971c6504406864489fd82bb4139ce1038e596f01df243cbb26f0b5a3e1b7cdb40824d070aca2bac0c7411c799dedf62198bf7bdf431c20accf56b30794c6d4e775618689074e0a3981e852b1202fae815ba07748a4053d2d2c3fdbc059ba6ce2b3566764ec8f23280fc65985a5ba5a6c360f0dceca548b05a36f34291b00cfa289722d859efa301a09d5079134654350792f087aa5f5145d331be4d07e266e371467e6292c81dd8a56fd51c0d61e5740e7e6ed687b9b73559c120d5171774d747ced3bb5c8b2e9c0d3ebd42bb46649d28acc8ce7567b06965268226126c84820100fdc9ad76460f803db87a3da2f2f5efed98248761a75e99f3fbcbde2296a9600ccbed4f0bec46c6d271336d2b46f614cb7e59dc97366c61411f2523fec624d15020e4adff23e125db04bb2e75f267a2d0555c13743e635b58187325248c3ad86bd0cae4c3361429706911488347f0fe5d4c08202eee3ac7c334293d9abf459d6af74ccc9da27048ca7d3b3d83a30d6710153c180ac05338335682d6e60f57c9771e0442161cc996bd085a4dd8c048f2515911c41955e1ea914c3677076b3a196f4402bc488b9b158efb66016e3022c6f35995aa8cd1511c36dc5263e4b4f085f12bc985286f10497cda606154bf5352b098126ceaaebed91fdee17313cd0cf72a0922a350e42f71c96f026c70e54b25c0fd6d8036fcc2bd0259d7499093589146703d0cd80d64ad6adc413699849073637ace001435d9402e818edf47bba8188f76e67e5f3e76da12e0e02cbbc708d979ab812ac8b29d0026dbe557ddb70bbbfff5c34c33061c016ce8901d3ee9b1491ec6e8ad777ea2600c6d78d91cafa76ad8eedca23c7531df62a2844ef02184ecfb4bc47f381f3b51b5764cf359bfc40cf23a58f8469e67cb0a4fe063614f73e05320dee47ac4f6e81a479d183d2983b375ccf0773adfb6f97d42d5053b29e05766e62c5ccca4231674549a532c156b4bbf497f2aaffc36c8653b7ba067659db9ed86e0168fe1085afd14312b4ecaa0757b20fad4fe0b209a850a74b3746ee01b9ea8a7f50d3b1b8fa49c0371bce6572f5f48f7d63829d6e7b69c18f4dccc4034eceef2af4727cc30fd3fd6160237371ed0829f6845d536a9fc3d57d594b2d66665c464ba5bf0881d481e20ae9d6c566c95a58cc58410e1780f3ef55304367c74789f92270fb34d99e43fc01b01dc23e619deeb1225e5aa9e143e14282fc52dee3fc226926c1b745e049a48d0fbb23ee3c6a724cd34981942b263b48123af22e4a58686e5a6eab2ed766881ddf17ab0108506e27ce7d17f556433c15f9fa621625a2feb2ddcb89067645757c93ac2c421b65d4e7c8f811356281d3c11be32d546c1811f7e00618f44c0785116b74245228751cb1c79080607e12d8067d8e11d3f35d3cc7cfe90f3367558998122fbbb36ae049a68ffb49d7de5d73e8d9775b29b40c4350deb4039acde8211e752e07db6aa9a0e02303f4e7121518db4650e7efb8fbb11a02c2160d01fb2b6e7e50c9309813d9812f5b485ec8f9b37b3f4202c5b51533cd12af8bd98eb136698548fcbfba445ede813db5250fb3ffe97755234287e5b9dc03bb5c1203be66951248784c11c0b1abae6c1a093c05ecf4e07e84e7ac68122b77a4dfd898bbb3c77dd36e219ce3d1fd4c4b96c52ae840e5092d18dbc13f4f47f2c3b81355520d7d52f0108a87c8212de0aa83d1792d60695dde3ee55385d9b42f32a00a8293717140870002f2c73daca32e62e54b90cf57f6db146e871a54112e9dd37a5d7d7564ac42662af454fbf97c8b530e9d2ebe84dc2dcfcc32a23d832959d0e1373c8764ee0b7ba083b5c715c1605024f70c3df14541b06012210d1a7f0097d078ad5b5d4e3e9b94c169e2f4b2b6d5c304c81114fbdbfbcfe364fffe62005c542d41eec1986f2ded8c115302e4a0751a97c3fe716ad85e0c1fe0cf48c0bc9b6b7dc16e941a3a9e0696aeefe03772804d42727b9c312401fb42855d918d50068407b2ab4559a21841be3eca25bcce9f008468f04fff145ff25b70e23205459487c9b486e1960211b808ceaa321ef65b79b4a315f8c9c5d3725390d69766154270a51fc18e856a2a660afa40baceb2a11534afbbe4807d1588f0be2730ffe949062bf792d7bab536f9048751369dca90d519f70c04aba49abd2cfface7ea0c266644bd6663b32237c9687f4e5a8ae8dd354715775505ba26fbb793dcd02858537df0f94ca6385f396d1f40c8805453b289c3f3604504287e6769850b971999f4a8ebe82654ca60019d1ad6eff789d9f4da9e22082047ed35ed3e2c7ecf62270013c9b8a9315826203dcf1b6b5c90c60bc48981c18bce4dcc733b64ada4ad9473651b391dc92035cbb37147352b95f28178bb410d610daad45576bdb88e9fc4527c51a741e615aadc4210c49242b61692a6ac149fd1ba892a4137f54f7b1e4e333dbce288b53e7fa6efcc499da8ac7b507a400e8d6b3a62cc9971297beb0e37e57a784faeb0a7e9196ed884ad3af81785a0dab261fff1dddf925a27cc293b6db661123fa5b1b4e0b4d8a9c99d8157edf967673bf1da5b3a6a9b8aa964854591ed30172cc65531646ff2d00d31e8e4ac75ac29ba4d11fb97a66e29c6e79596d291c200d494b66ee93e697f52dc2c2e01ebfa916e11192ff9f024211129f602b4b7b6b642d0c89ed2e288da8ca2e3e316a4e641a3447c3d3ea9b5bbe859885ea31687ec5dbecf2af3e9f60172680b4d7b6c4c7f8251f675741e0cb3876265bc4551c21c65a62a16a3e95318c19a598b3bd120c51ff97dba32194314966bc309c38e30e691b2d4e66354089ddb56e6d6dca474ef400c0bd219e613bb471d28b7ce9716ac35b7308d33d699a953fe6347499937b0e5ce35522dcc15a526ad38d6eff2784a978cd6f14a21f0ba3d828b742203b89f417c9943192d6a60416cc6e7a0365221ebdf0b3c8b5f7c8a23e414889b024ebbefc035fd48544d8d6ac6275cf96b9ed5b6e56bca167e7a3e0b9d7bd01fa640901a7b249a9aab3cb4fdd7ea8eec8fa45586723bb089e6ce6bbb88dc1a22f123f031c4ae144668a871f82267df68ae336cc6c3eaaded4f0989cc57009521e24819d576534b604284c5a7866765cdbe60d90983e0500e3498b1709f033b69ff82b518d760ba4096a5a1387ff0bd08e328ab429f861ef87ad8d4b8adb51211bc885647b827508d78a6f1be964e276b79430f7ecf9897fc6aecc692d6a0ba6243a27d2599c567a4a9ba04c74d4025a97f5871fa8bccc95e48e9b8368df8d78541b914ecddaef30e1aa96561b5bad669f4a401b9443773e1f58ddf227ecd87f9642d0ebb7606fa8d95902cdab0403c8f530bfea03cb719762cca8b434a14eec227e1bea54a1a6353d94501f4e0bbd367112383f925f119d79921f1055c401d7a5eda8ffdaac52fa80086e07cbf051148bda9996e1411c800c53b8b6f7c22021ce96b1d239f1ea9f486b51e75ecb175f079002427c1256a736adc1bce2902939b6d2be254b166510ad5768c7164fb1232cee7f9977c55663865fd5c60af2a7923d28f9906e8b93b0db58c70a78d8ad6ada223c9a00b4e5db56366bc05d431208f736756865d52f990c4e03b3317cdfc8c1944ed3f866cfe81256a062a307fbd488b0f5a70c989ba62707a93f377e21a0bc2de5fb501d791bf381dd452105aeae3ba11d09aec0bbf8fb0023c60757861484255230312bfc354ccb2e9b57f7534398f08c2c31f1fbbb18037558a59086ca87b4bb1f929751bbe9a41c60431974d2d516ca8e2135c56745cb1294564db6f0999f4923b8ea6721ac81ed25690d48040788ec237124cd5aeeeba44029f5d40b5a6203432f8917521ef55b8ef9c6f48e90ef014067211a3a9b698c0cfdb3c86b2b409f6aae197af7d85f4962503fb3eee39e39da15ab3fef4e8d911d21daba6161593210fb4b81dc64d31e40f1fb5f7c46648f13032b66cfde57c72764ad6a81e13b9bc562b7ae43d683e8c6a546acdd6c56c9cf843b1f8f9d0ef04218e8ee6a2512cda3017264f22c75b4d528d9e383b254e36ab00d5eb09e19f2bab193fec74019e0e6da7d1fce63d33b40ee41a60d26f0e198cff09b0762e1721929bccdded58808821e51db6bc72c0eed42124f2f882f7b7ac36d4d51faf7193ce6332e96b828cb7e4c8eb450459a5e971c52bfc41ed0ec0722110961e94028e9c5f34fb97a2ee808a60d0b34975faea9bd065638457286993b209a4fde7b4bb4020164d3d30fc260934616690f8e434355ec601f7ee975b37928c76374a715df331c7ca1b156863ec30ba4ef08e9ba9abd2a7dbd063fe25c88b4712d933d5be126f7fbb177d6b897a80bc2e8bc69588593e7cd55104a8e95b44fe15728e9c5451e80cb6373574779111bbac73655bad41488bd5de2d47b1d9500ba39e709464f821b3962115939a9a541bb65623cbd8fcf573cf5af97d9248c9dc5cc3c0d05b1536694e8e4a9a4c658f255058c9e7f0ed035944881f73a2f26a28b9097ebfa2ade41dc41c79975c0853e766fc66515de179b4953d5a76a226f2de812e4bfb92e212ec9f3e61e03395176c12a63f3fac713f3417a825a7a5801f66f3fa9aec09476ce81bf27c82552d2eafd207be0119ab88ad9176c242fb7945c8e7ae7f7d8dc71cf999ea9bad90c0defd00dad40b1e4c3e51588fb4028d16eb9544c7f26d9a0898b8996da52993505bc76016107567b3b985571b773487284a95ae3cf8743b8e6f77bf76dd984a35c421a3f1baebdc115d0831da08e497a4623a4fc16d4c9dbedf34f502d576b815e65421282ac1430bf5c1bbd698f47046334328217394e43434c4c6240664d74e25b0c9c0a9da2290a1bad37b5e677bf237c9945c64c40bf0553156c32a090403bb58ed4eee0b6159bd9d1b295999f9cd73a7ebb2e3e8082aa6181a7ab0da5a3c61050cfb082639f709f2c742a3e93c22723bf03b2d8a530ca86d3c34f87007d88f1206f0521ba0984f65d05aa1a16fbc7616fe44e37222a40421e8e29d8a676032527c70d6fceb38a2e1ec9eaffa525eeefe2f59991df4ed284b890feaea95737bc9276830be85566dfbebd20eb5d90c67e2286bfc3bbf56299c754a12828ce6ca6d8114bd47d370f2e2da5ab88e80ec8edc2bba214847a38bcf572c297e18a9934a9e4f4ba128203d4c783f073e7044fa24d074050f96a859c8ff61fe091039e2d0b937e0d97738dc63a06ecb1e5f3e90d56d73e6878b09eaa4c0dd8a272001369be2a57575699b1bf4787fb597b611b38027af4360c0b522688cdd7ee2ed3dd132a496d1eb2fba7d1dec09d2947e4a341de608ceaf6f4dfe0010c89c7b4985991f75b2df978dc295d27afeca94e44cf691db29a835ce0a1485a03975c882b6fe1cf4b0adb6dc58bdbe63a2c608a38b645633cfbeb8a1231116f63dd541ebc5b3875b53381104f1ebfe3dadc056502cb201143889be15f2ca30b4536f3a8874173c45a77f44e412d1d1c34245d310fd6fcbf6d1a91e890f881eee40b3292856b788fee1eaf105d5865bcd122f17029c173ecf6585a6977045cfea345b3a364ade36cbac324cbc08e80b48103852f03f6810c3ff81f7004c47b2751596f14cbc59a11cb856a1e963bc983a7b4be73658349d1100c969104679870334d3086c542cfbb28aed027bb5a9673e36effea050bd233a88ce3f1ba47c7eb0808dcc4345d6c505636b014af0010e336910064d22c62b46a77aaabc0fc6a397fad2aba25e814ce95a21fc04d2a006a871aba61a4506e1f10ceeaaf602c46e0b02da0772b24f30d936e53eb1df90bb5824e1bb821aef43e68665f24556b709e8685c04e8c21a6b46b987343f1ce61d9d4a93fcfcce036a488de36ef3c7589fc76b3b19257687caac8b1023e02102bd7551e2d22562e503b72fd2ad7505d401546b6e0bc70bcdb47316decba63d30010d744afa1a8c2ed53308844e31a71046708d36ba8c26e74354750fc157a86b90e41e083846dfe5e131bd3b584ef7ca3bc54a0c89b676ad3b5dd0b1f8a9816f16c0562ab70866952db822023f6ed0fca31002ebb31919333edf4b04819bbb050772ef167ec95f39f5e41ca434ccb81720222b40a29044204adb9d6c0f329166946d9bd4491250f51e7d5a8e458788bf1d86d18150357493af57efdbd53f67221c540583131e1dadda219048bbd21fb429485157f8a0259dd91e3dd0ccc4395d324e2f5d4d89c1997a15004528ddcbf709b3abd76f959fdb1edb7efc7bc9c31ffa7107f9741c579d53e4047018c75429f71d6b3687690e9fd034b460208cf17785de4c52e100d7dbb7d5b540df2da01c6b49489034a15152f999d41562d5144141495bb5c3bbf912c78ff0e7854928734248d3dd02010d198112d149a855b6bf9c49c0c70c917da4818ee0e4d266c49f514e5f0397455056eaa048a0e57205c554d3ac998a219d278638a6e7ce194272fd4f2e4f925d41c5374e30b5be2f83d41f29a6435083e2200020a8010021af2b4fdc79d2696c05d7e983dcc4054deec8af45ece8f557eb546b6b7594288b44d08d95bee1d190f630e0f0e3f649ef8a5410c933d262a76b02dbba79c734e8953dfa820f907567697b7d10a67eadd1191d8b0953fb35dbed5ae29657cbb2847310cc3b22ccbb895a692652635b9dd393d9cecaabbd46a2dc58e61a37bd204abbd1e85655725e312291fd8790dcb7786017137e0b868431f396787e69944762dcb4e699675c70c7b165196477ec9415cb26c2394523cb0d8b928df0fc2a17ca6f3928f78c9218f9c43cff1e01a6729b30c87f4753b7dc9a3b7c43a5d1e9debaedb2ecdd493a1543558e51c72f46e12de49cff92189f28ecc452ce0fd06e1b9f13eaf87bdcb4b314f4fcea8e7753853c773f69d06b1a64564119c346791b1df1d1c8c5289771ac47c8ce6608dc00f18c5c162df71cca65d39c07645899d891cdac8d81154f0aa1d86d51e7520268949a2d07d489f22580128b2c1089d1d292466ae1bf5d8c16301f2484cd2f9a5c128b4d5221e50844e14c2e411285c3a54c9610b7391e99a55494af4ad1194e1032c51096ec297294a39dc91b3e7a493624830a0dcd5c66a336d89fb910e0d459a0f0302424d22341a8d28f52280933dab34c3ba768f3a3b8f288f1db362d986a57c71f48e3a7ab5cc519a67e76c7b1179499fde3c1d376b58fa6457be8234d8ef2ab7912896af4cab99ac4222a1e2e60c4ba00691c828bc99993a1a715dc78d469b7c45181969e2b66ddc5da28b5e43650d879208c77175ca7019c665ef3c1c72e4c999a964978c8a32f275f99a32f146fa4822f2470e913e72891bd05b47f2255f253870d165c69b3a65e8cd1fd0d2b8eea67c82023d80f9f9550146afef31c23de23c5982fd118be250e6b9e1b969ed0ad16eaf90fa1325d81fb128de3ccef8e38d761eb2e269eb94b9f126de68f85da38ffd3ce479ae761af5b4fa1f6b9a86d668ab35768665b3b7cddab6aaacc691bd3dc8511070b2bbda73caa9b2a89edcd95a2726966199122ea85ddc102785e8e2c8a044c994c94410331428c94d39ac34ffca998fa4b687a60c563459581d6a1756d419edb833706dc8455435234ddc19365336289258115694c201a68629a5945d7bb59b9c111c58f9903322e3a4a489390ce370c0198936883218c6ed005b8209c926714638239c11130c51bc29c18830228c28f7e591c933bb4dd0795e97aa41d69d662cbb336354c90f42d898c148d9e580eae6890c48d7e86bb45db165ec8d3471bcc146d9fc764ac9f17de90324c27457bd0bde6f1b4781702a9478593300d0e048a2b6ae7b44c99735239abaabb2a328238f9832cacd9395632bc7992220aa5aadd09442478460e4506e796220451c902d8f80003990f6d93a65848b2ee194dd73528a619916354df6d426a51896659a56477134923d4799a6d53a1a6d1bd775b267b7715cd7791e8954b2d15ad9d396ac35994ea7ef43a5622a257ba6529d8987b3dde444d5b5b75d85d24d94948ed2555cad64cf5525619c3c9d98d8afd4e232a5c54a89d4c2ba74c1025b4cb875f9d28ac1b746cd65d77c529ac52c933db34a72398d732dbaf98a34a61c5da7717bf06e4ee30680463ed6c3695c1f9e793864769dcb3acdc3c9d73c1c32db9c8b95d63a5bd64ae2e1dd9422ba46110c4753645477ef3ba1528fcf2144bb4e1ebf8347bb5428912665a5b2d2a2c4f278e96372e2081448a26817ebb1e531c6a30ca1487397c03c5e5ed12e1d625a8f9745edc2331e77787c1389342e8f328f338fef26da0580479ac7b713edaa79acf1f886a25d361e6f3cf2f0f8aea25daec71e1e7d78b479cc8f341e6f1e033081a607a28c8d760431052f98348833073e60d13239926491640a8142ac59801552c8f11d45cb1431455391e33b05b16627ae204720453d2416f5125c883572c810e953854fbca441ac914d3461831c2f97302299f8116b64146ac8f10aa02555482534945cb180969140008832525e2163724c99d98303c417206be6123f14b164c9101f2aa8f8f9f981020a26644c9f09222132a63f5310597d2157bca076ff20fa90fb9206e08646b6f1a107171018e7078cf170c3468d1a1a00ccc80cc90cd518ca5c7698815b313ac0bc04c9d408d2ae8c182d2c10c60b17482e921624d57496528b159555cacffd69f919bd9878bd98c8fd4d120921ea5fe635eecc3952e779365ee3de38c9c321738d73a58ee4d5bc64bb9237f31a1700b71e0e9965ced9cee4e1d4d09c8b277a3acd96a74a72b94d1721b4236b24510864caf4d05c222828a8b3408204492ff9a1e205c5cf0f15af171401b8a1916d7ce8e1ce9fc9c4026c4e62050f376cd4a8a101c08ccc3d971d66e0568c0e302f43324335864841414125244890d81f2a7e7ea8c87dd30b8ad70b8adcbf9ff7727c61cea53a9437e3f8eef0948743667ccea44b79ad9b9c74261eccf1d5e1272fe74e3a9587d3ba2ae65c44a12828b3254a25dd520642c3f5d0f68b87213e92282828682e81a4b3f8e925489074163f3f4b6ed8a851430380199922761e858422162e3bccc0ad181d605e5ed8856b601a98078cba434141412648b24082e4e467c9cf4f2fc97d8ce2b978cb7d716ed5a57831de72657ce5e190b9e59c4ab7f2585779f1960be32b1e0e995d9c5be95a7838acb7f070c80c9e8b2c948565b664a92493f4f1e99f268c749024423297904448902cb1c30cdc8ad101e605c890585434e4ca88d1c20261bc70f1f3a798ce526ab1a2b24a19ba432d43ab20491414a482040992b944eeb7b4f0525ebaab73ef583c9697ee7f0f87cca573b7bbd7e21777d75bbd74558e53cee1aec5c369f1969573d185bab8cc962e9544f2b2b451f4d04fd0eb2748891219315a58208c172e7c9a70e1d3e2d384e92ca5162b2aab14242e5c5af0c52ca49f07bd82825c5a3aec9d6e2fea9c4bd7e2a96e2fca5dceb9e85cbc93bbf070c86c82babda9d3b9171d0c0fe7e4303c1c12a420385b8295f4dda6b38ede2e4ba00e923d8444c6f47b808086ce526ab1a2b24a311285112351905054f6c424853a05bda5e3b651d5b21e6a24389c540cb970e1752f3c1c3273e760742fbced30c00e86a79dbbf5a08743e6ec1cd8b13c9ced2c0f478ce1c588315bc6a824ec5cee993d24632ce98adc4751d9139314ea24816415124802ad405631ca1f9e3d3305389c54581cce2972bfd4d3f9c596bd3b914c28da8906bb89f9339968308a9657c89a9982d8738a1544987e28cd90fb303c204619c393c81393c88834894498fe28b79844702404d000e3858b1c415b27cb89961cdb85db75738ced3acbd6825be954bc1529a5846255a69393c987caf1b5c676a162bb3e93d3894965514a29a4d82e2fb6ab8bede262bbb6d8ae516c578dedd262bbb218db05e6780e64b1b458511981a45aab6ccc0a8c6a533b47b52c9b93524a299dd7ce4d6d4e0cc3302c3b12726e68b56b46c38882903798814f8761b4fbc14250c2dad5d4dee2ee3524f60e1e7008a2af18e6e1f868b083261559e62cffd032869350296384c121d5994479664b841a6cda5e3d47af0f20ed9ad8a710264b807d2a21baa48fe9d85492b1cf249186740c873a93685e203b6fb0f36124f2217ba60c47d4f5c81244579704516ed3ad6788ace6ce11d5a1ee9288ae4a8608f6fb0cef47fbed31bab09782a68cc5a5925029a8b4a42494fbd43bf6b625acd5a17675af06693d4394b1f68245fe4c2391f0d4b2e9dac9eadb5ba4da006b6d28d260b15aab52fd2098698bd6212153ae4353a67b4d5677af219c6e888d915aad8d59351256234672f650a67b79409832864b3e4d742f199bd4bd66f7ea6ed889a094c3da51a1ee039d0b72ef00a9731205d1af1708a9424ca2bc0a8266cf304abd1c497ab6ecbad7abd43ca43625c1454b7be409fab80e98316a4716abedd221f7a081cdb4aeb60b26a37254926d97f6d1e755edda3eafd22eef73665c51572bca5a1595d7dd2270b8cce5b78806477801f3b3b65ac33a20a519164404ca14dba8a3175adb153383546c6c965c217bf4e81a7d497b6c9c34e11e5209d002523050c2753da2921e9126e6d11bb8e812b28e686fa11a0fb124ff278d4fd7e7b1a1295353033ec4a09027f8109302f6833cb11ce489d1204fec05580ab0111c991e6843c47a642ad164b9218988856bd443d1c0321fd222ec34289f9791e67ebe654dbb523e5fa78c0f377ab0c10175150db69235d8201f68e8051d9932dfcf6c4394f9c2102bd194f98426aba75d1f51834944d7a78608360f389469c5c0610b848143f02f7078950b1caaac0b0e6d0bae47b81a9ca679381dd460ef00714cb0935e5e1d0ea89574150dde78bcf14b0f87c6cd71d7d5f11e6e10bf7185f8eace38ebc6cc7277b88d2b808337e6798b0c6000ad1d660c40882004305b93b68edb478c18c9fd1cb7818a741f373667766f0b1006fb09b10a710b71461222ab4f9f24682ac98dd52ccb469aa66db5562e681444e7c80b9a322b750b4a86c820d3a2a8afc85af01b08852460105805a80414028752a490fb2b49522b495e308a6010996ce144c9091954432a93b76093636cf28b2936f9c426264772d8b24274ca5db7d5c0fb8ae6a9689e8ae6a9e8f4159d8a6440ea6efc3d5c21346c5c214face8b5ab771e0eebfd62d5ac96e87c7c5a801af43c9c3713a426d24df40f8964ea6a9c86aba6071b91e4e14c2cb36899a2a84112c822d38d16201a9cba1e2e8ecfabc36d5c206edc987331b7650a206e4b90070498276e018a410b106dd7695e30dbae871b80dfb83f7c755fce72616ee3de7cde223838af71655c10e8e58247707e08c0cd49c63d61f7944da8130c529f8763d2c3954149924821254a2411ca2b2287864eb004f28a482412898989cac4c3991806282729aa1e6efe8d6bf3a029a302528205fa94e72b7f881091478a4823d2c82aca264ddc0284c2ea61bda80ae8fbf7ef4622cc13bc241e16484a48281e105a66bd8cccd324294592240167b05aad5af4b03a0c8de9aa59a9a8a8b0a87840605945e55d0f57c81335aa24a8809230a1e5174f0c8396cbca4011ab872584f5622591fb2c469890e406aeb1b1d2a28587d3c22382de2421e77043e3dc75b954404ab0e0c2a5055f1645e941c282a9805c6015900b5601a9807e55402cac02a218a567751824b9039a2c57cd6d09f280c0320b8b87c33a8b8783e69fc33e9cc615f2040d1f524eb11a338ee4d3c3152223441829624c9f755ba670d5b0784060f9b805a80887bb798bd4bcc665f5b05eac212cd7651199ac9a83ac0fe43ecb0331e648cd8166d0c27241a0087324c2589369b3d65a6bed89c68d202517bb52484fcf90d74b624ffa489f9c7283b47840ee038a10d231e2ee783e481089600025e91a7741c4ce9020874d0f175e911d2ebc2066bed8c58b172e5c5af0bdd143ca05352e383459fd5f9075411a172c02d590fbab0b12c12ee8a34a82f7be0ac86302e91d0dd67f578806eb4f774783f5a6cba3c17a7b7b34585fba0b68b09e741f1061eaa587e3e15683f5dd9dd77888644abd20804ca1065378e58a75e290e661332d39d32d3d9c90273279ecd145fe343fc881f4c8107b16b62214ac2024f7690ca1394657047aca1e20b2a7b12c48bbb26753e2191a2d1a641f80c212ca90fb415a26369054176c185b252624901344511a61c403da855dde081dbc843658c5d0898e208b8686ae58a25287288d11c3a294b2a2e6a7051bd61c8b841a14b24dbb676e808b2eb13b2789241659e9f23d349ba88ba60ce912bf64a144bc4443ac91af16d85510f4f212e7d006ff8a34f55dd4951b62e5aff0428ba68c0c2a2a821c320aea22e470164d0c8b211c0199436c284f966d2552f3708ac422d8fafea65225a0740f23b14280bcf12e6f3cfcea6e4a7fd11b21de39506f48efaebc911e0f7a53c21c48a274e3bd6f3a44228f649cb15d7a385ce7d53aa3cea26e0bb63e9c45d8150d1235d813634311460a5bfb267a42f068a7f947cc224c86af4b83b3954c9979f3cca78281dbb66bda4723a9c991a669dabf5d1d9411b4696744bbe203da957dbb11ed9adfaed32eecdb7db44bfbf69d76d16f07d2aed137bc449ed3ae54b2dd28855a6ba2acf550d6deadc4e79547560cc18e3eba4dcba1a1a16ee839a4431a0ee78bb6c08e46128b3c1a8d70a89d6e235ac21ad06469810e8d422d496eaa5d288e465867be826827e04003141f315f997a310818a302ab22d321220c0b563ef45ab302100e906481032c4af226ba84d99126ea2b9aa8b1985634d83a39a2a8ec9e1323e9a0a650833d977411173faa5688143a418e383c7ef51c31328708f9ce60c32efacc6023b06373f68108d3cf3c10631aebb111093700ca429eb022b76482e2a02787d92b22e106454c644bc48883d33dbbf943cb72022b7967254b794d46f69cd9c80a7942e22c33f2061b662f39a45dd8eca65997f964436cd7a398d1c6483fb46abb739b94529ee328a538a4e69d30c1ca6b3862044330c4d1f2cebc79274cb0d8370fc78cb22725c9e3185de21861228d82089ac8f50e653fed92198e834583e5fe11592edaaa9db6c052ac274f9a459eb4284f4c884e1c4eed88f9ca6190a29c134f1f0629ca140852ce5e60b01da6a4a8c3af336c219df9ba3dd460136d4838924586842358c857bb1e6f90a2fccaeee1c08068c93f7cc8231c230c115466792b9659f04c0cbf5e53a6dd10898c20fbfc74e6930de99027cb212dd850be72bc9d785af96a2c5ca4a225b98bf0ca809597994b8a62174da154166cd8af7e4d99f7a4b060b3232922e0a20b1172006a97bc58a699eb4eca4e5e99d970458e5058c31599468e50580392cc659d8c190c6b3339d911218728321171c8226622e41082a11c33117288a25dab98a34b9454e0e6a30b8f19d8b0562828a922aba8a85050124556e91416ac4c01d7c3cad3d49c534e8b001b8360c0440e552a2a5367a3b0042549b45a2d9d964e4b26a1856576b62816382edad0e6e8b4b4cb2cfb9c73eab4f24a87f6799fa3d3cad8755a99ae82d0704e76f90ce76078357b08f6e8451ceec8b165731862cf91e72e31bd3aad7c442be760f75ab91e93c75a59bec370ea05f5d025757ad865fb90ab317d24132c71887dbbe9c6186339f99294248943ec34f36eb82363ef5a9972a1651b9381f4d142c0c40fa48f8ef4c9988ef4494981055da57ce5fa5047be421deda3df3ae3b98712d32d9491bbdb4633305f1bb447c817a63df309269b9a44382691c94e227b0e077de9a952eada5367923de7fc21e7e05912e9266b3def768f14d6a4b38834df9451fd2a15cdc2d9d33d916622993233491224499024419292849e5135d92db2e6b773b24b3265289266f56bb556459198bc46d6bc86726272106cb5b2367b348c524d20d52c3a916ac886358f265e0571ba3dddf4019c70110c9cdce4f6363d7b983cc813f6e49cfd34b9f470ece7d551658b4d7aae25a251e449d455e4a642a8f652c0c9e893841c238e2ce00e60e523c7b936578c32964833389c29611206231639da7c89868c8920cf4bee314221e3002682589c3144775d441646610c90e76575a1803c1f41964c8f65ec02d9d6d40ba6cb01db9752888f2963234b48267ba4104abb085e07e47949cf619d9492063ea411a21df2d5048bfd45c29e6149691432320fb039f1b22787f10d87316499a5cc408e3c39beea4dd673933dde108970a543fe640c4f1c2291e74d16625fe9d832867f9432c545b2287b644ff67e3cdb3cb1e004fd91b18fff4094b17836d1251c9bf553829e3f31cb2ac41b65ee32ca3411c75194092cbde4ee35d17cddc3a51cce5787e78fec913d197d26b937f770fee4ded132f70ccb91ec993f3f180e29c5ed356605a594d291165252d8f9a825e18090afe74a40c84beea66bb9cbc3742b3d206a1c9d734115597e7427f5126047a6d047de6e4e3dfdf412606fc276b2b8cf731f512f01169b709d2c8e748e741360b1e99b8fd088ccdd34b2169baa3d37278f38591cde64fd0d91d89940f20e181331ce39eb6c22cba09f25b8e80d81f5ecd973b2b4046898479cace6a13d8548bf61ed64c7a37b8744024cb0e904ef845202f96eb77ff61fe95d6a8ad414a44ebebee2d09e0233e7a45ecf494b227159d7dde46e5e16234cc7ddbb89274f92dea3a7839421a1637bbc89f76ecbb2cd84bb9424ef9c24ddae93004fee1eefe50b04e9f231e7608ff986128544f7e9d4a6c7b9336518011f3d79676609f0e4ecdc0f24f276d4fd21f3e6d9f48625c093331c7f3a6d78a5637bf60de7c8939ee19cf80e0889749bb9ddeda43b6b934838e441da388943d9c349c9934d35339dbeddeeaaa6ed4ee6ec1d0e1370f2aebbcd3c853c1153538c39a3cc34ba2bd3b38f361c011da4cb9bb08eeef1d93105662e611df695339ce39d4b7d74654f8e24d993b91cfbef29fbee7b7b3aecbf049cdc24bb09c9fefbbeab3dbb21901cee4cd25de9d86ebfdd0e910a77746c26aa873593545cf4789c1c8740f2a5374447da30e9d90d2b0f9321487833f1b278931b6767ef86790938f9cc6e87ed7613e04d96974a82774309f064eff2dcd6999efda4ebce65d94fee463ab971b236d329dc99241eaa939bf03821ddccf3480f4defbedd15c984799ca04c3f3dbb2b7bd4fdba6edbbe6d2379dd4feedd74571de671f2ddf4d25d915e7af7ef9ebecb9d22f7180169310fd557a49fdce42109f33889a4abaec9bd2bb3c9b34b7ae96657dd93478fc7098e93c5631273974242ea0832474f472acbf7a953825054a78001098a70c42cdb8b1187944dcc0d48192f2a5ebe653c02456c5046982721a35d94bba85db35d92a8c1fe5083f28a05646e0a4a677aa40c7218b390428a5493c5cd4c19e986c8ea7b6004333d237de8c82fd8958ef9d5797291fa8979f0e42223bcc226ce3c398c58f49cb268d69706c139e408c82c8b220c1576c86646c84bd7e899dcb2e8d5ae16927d04224286b46b36116346a711ed0a553e4230db81142cc861cc2297724b3e6cbd34d839b335350dbf4c7066994330e4c9b435bb52eebfb4ba943f65ea5ff2a666d16090eee91afd7a03d88a3130bafc086fc0879b51bcd9aeada7b7c80536c073533f6f9111ae40100e60a002f53edcf0dcd4db4c4e7a401419e10ad417b90006e491b889de8e8a83c81bf9d79c61fb14cd5994674f690aa1dc8f1ced21b95f19b790ee89307d6707224c385ff2c824f2d319c99c2268463193cc2a721f9bd215ce0ee4ce80723897903729510e39ecdc61cd72d81d88345996658f14364e169d1d1071665328c9ce943d53091763ae53e6892f44d143ee4b1a7a5924900fdec4a1cc39b848fd0acb81613c04d9fc204416b9a315d80c595a218ddc44c80168094be67083875dc59b5a851c18a516359303cf74d6232e70366787e6ba434d2693e9fbbeeffbbeef33994c2693c9643a12a6effbbeeffbbe30d8cf6432994ca6effb3efaee8a73acbda18faea3946e1da9548a34a5128914694824cf8b349ed77591a6eb22cce85ca4a9341cb76d9166db46a348331a459a4853230cfd0866742dd2781f1d7b16694a1f9d461aeef4a3db1b23387a166bb218333a7de9661186debb5aaca131867e74eed208337abd5884199ddb36cf7b3db771ef9ec36da66fa68d3371df38fcc3c3453c7032994c2693c9643a9d4ea7d3e9743a1d3b77327ddff77ddff7a14edff77ddff77d2893c96432994ca6d36732994ca893c96432994c2613eafbbecf74ce8432a14ea6effbbeeffb3ed4e9fbbeeffbbe0f6532994c2693c974327ddff77ddff7a14edff77ddff77d28ce6432994c269389435d13eac61bd3e9f4cf6432994ca6effbbe137e42023cd90d7de49c8d84c30ed36fdfb66d3399b66d8766fa8e2c4be8ccaa324c2d4b474cf60ab84c6218960db1cab0cc083623b0531f230c05b44b6f00996cec8796e90f2dd706255ecddb0823afe1ced2c7cbeddbed220cc6e124b807e1b9e1fa7dac3e8ce7ae71dc37c073c3e10d74df30fe518f3df391b322dc3b0e7b80dbb66ddbb66ddb388ee3388ee38e04b76ddbb66ddbb6711cc771dcb66d5bd70663d6032e767dec7aaa9d9ed60c5300a5d239679513ffc88ed19410ec7ce4b48a718c2f12abf5da0debb59aa5867f64b8883c4679303985c04517cebb52e547f67084b5c7ee1daabcb9c8c5aebd07e1b9f168e8236f386787e61fd943ed1498f5d87778de37c073e3e10d94dee1d7d20be58674edfe2842c21ef0baaeebbaaeebba7b9e770eccdc7847c2c35dd77557c530d8ee42785e5f00f23ccfbb902436ef49803f5e358211393471d375dd393073d3e10d3c817dce39b51874a7a5e8126bb2875b7b4174a797dbe61281bb2333768e25d3934c4b51069cace82ad5f89031f41cedfbb88d44e0943531c668243c9b0605e58028a7e41894832964ae3b2d85ca1a584d0bd24e3feaee43d6081163e8e9c3a63b54276c7dec98d4e2125669f7f08e868134d875d4a57c60353c9fc57675d7345a1f76efb077d873b8d1358e8bbfcce207ecf6b8bdbbd16d49e79c6f50ca8cdde754102ca55864b5738611c938f4dafd217386af08c168ebcb8e1e92071b838420c447113db2dc604e4561c35696ff4c05c1ce560e674c05c1c63c4f230d9605c76ef6db83d23a6796cd994d24728661a1cc749e8bde105209193327ee219590311810e93347e7309e1fdaa8669262945e9b988ec3aa8f0b648c276398a31d766dd8d88135a2c199199bdd1bd59be8c0d2976e64d28d00666d129bc426b133366c7018430384c9da5d644db532c2a14d650d6bc7a28c8f4cda9dc6ae3313c4a90925902063781544c6f00a3b4f6ed1cc492722cc13d10a174c8148137c8ef012020f72df4407b66bb0366892031b5aec2ea0aac177a62569420337bffde4d163abeb4ca0b061adb9c6584799ca033b890189c32079c321ad238c52c9db86c397bc85331bf6b27b9b8c50cb0add755d5d7948f3c356eeb6cc6def3c1ca6afae5a3de5f40a591373ca63cc5bcab7ad566b55aa1f8cc92e7622759471ddd6442a26228964980847a42372fa86c3981c4a22a32ccbb21abf2c1b8d54e7b20fe78c5e51d40cb226fb46af29540a879d479428736114b2510a59b967280ca359e4103bd1cc3bbd826291432c1b22ec7c7a4789a819304ad4625d1422d3761965b68f5012ef74f670cee827ec45970884ac90b743a1480952e40d0045cc48e110fbe9f4ee66de9429a24a5baa989a41857756f5de311493162dce72f29f701813e915d9c685272f7938b6733887fbe9a4cd2bfd388cb167c12db00946c1a1c5dcb12e3bca09dee99c5de56527efba92d548144585439ab18efb09c679381e9616fbc9dc08cb46a3d16844733d61237a45eaaa1c7557fe5daf74c3981c56adda5804d73159e53208873120d8fdea4a0f7568843a345ab92be11ceea36f2533c89aac1fee90b787ad7cf270465cd2e11ceea56fe7246732ea2e71284b38a4b9c3abd2bd67ef574c4c05eb67adb67b761a79f4508746966ff1b095bda78c1e7a57b9d5c3317a8e54b9e60dd1e5d1eb949191b5c96c0f5bdb4330f7b6e1508746eede025b931156f1bc671e8ec76159e6b8ee72dc4ba5933a1adac399bcd52db5a1b66fdb6250de3625798b5698b68d5233c89a56a4517dfb8c4873f2ed3bc89a06c8983e25ca28919492ced9dd90d2c89b2cd1cc5d9eac4323973035838cc96e72439ab315563540d66432a65372509171d9c669363791334df3704cb86f1bed6af6ee6aaf3b34d30def34cd956a74892d448d3a9add67f380b81b17b9aefbb66d2e3936e8bdbb3aadbcbdcbdc5d3c20b86fef509e3d270b5df276848b4be68e3f7aec1eeeeb63b4f1facd0d8a5ba9fbe95d77c2254cf1bdb15915e38bca1bf7ec1c45b93a2e4aaa08ea810d755a2659f60ceb54771461fa26b7b3285588ca6195b47621cd5bedf2b6e5ac5faf2973df6f1fcfc3b5c1aeb30d76b795748ba5ddbe61493366234a536d50d206b98d87ddbe7156e42e73ef2e8182a8c85ce61e5ba46e72cfce913a127712a9243b2f882d779c87c3742d6edb69cc346edcc8f33c2fc7c6ea79dc472314fe31734eedee9dcba9b7df10231c76b6ffb0f4c9dc5198b35ce44e5db8619b79826c1d176220e7ee36b3bba1642287d9773a677424f276c399bb9b3c1d33530e873cd9bdee1e0ee5121cfe31738ec91bc2e75976d2370f6f3824e19dce15ef74ee5aaa1cddae6500967b8743b93357f603e8bee15047f7ed9b77eef2256bb673730b53cf3c928783fb8673b68fee715e98c228afe3509d87a37b0e87b9aef336a0cc556b6fccb5d65a2dde644c285f397bcbc5ff6ee9a74bbacd34ddb8e11e0d66db56bf05d99ceede479d5442d68432d7cd8a6d660fe774dca537006ffb08731b5e8d6e9f6de14ee39326d8eca4e39bbd84c36845ceae7938b8e7783873dc7612e9988743eab02c8fc20ac86e527881dce5ee36cde5fad2b67d0179bb5442d6c8bcf9644e7ad9a54fc7c351ef1e5e21e01e9f887b8c797277bd1b6eddc693b91b95e46d67e68aa5123226d370bcf436104be77001d72376777708669d56ee2a62777777b74e2769d941c8d1ae7e18816c8664d28b0919853c21dbe7d9534e9a905d6239a4c1ec19963e2f99659637c7fdc146be92c496514c28a613b389c9c45c22977236a304f38b998bdf78e5af7e28792082dcfde2e502a3bc5c0f2514358ee1f02930d81eb2432bb7758e93e781071e78e081071e78f80a0f6f5d1e5aa7ed5279abf5ae5d33deba6d178cb78e6a57ca5badabb40bf5d69c314e98470f08f03bec70f0f28287714399611c264687e802e5f22895ca617cc6e38b65c4ecb0005c4b29f6e23aaaece2250f07c505cdd3458c0eac76bd701143c6cb5d5a5e4097ab34a83a8c1b33cc0d7784f2aa731ece0c2c6d8ca9d4393923856d832d954b1b6c7dd57aca4535d86a1d75551a6c5d75bb065b971ece8779b8e173ab75eb5b6e58b3cb0a05b09c53cff27a96faab24f7c86028f31f339ac9a1b738353259999cf2d3c594a41fe5625707cc357668ae714e762d2ecdbf319b90de5f8935720a31a6efc3bb54e37d952af4965d3e75e5adc8a9d46d5aa65252a69e92524a29a59472c6d46d7aa652329739a9cbc83c757953038835f2f5041b0f5db2fcc3972c030340a5b5430c0ac68577f91f848834f7129fdc75b312575e628c31c6170f77641d74c86ee892b3bf78bc612b47952c637459ca2963831b83302491c90ac03b067604e530de8facc766dde6468ab9481878fee5c50d77641dfe02b349d4371db04e0b0635e3cabc834dca536ed3336ecc2a57e6565ead622e8daae6734e39e59c72c6eca14a4a17ff9e651cbbe18c0b179f97e618d6dc651d68a8ca312dd78c1d5a2f1ed2c8f1e778487dc10620521980dc225f14e52defbbdc1dee8cd68db93adc169818f7050eb3ab64dc985ddcf8bc71d5ab87734eb63877a3c539d9b5c0391a94352a1a3c131373beab5bafbdb9bfe0a521c40e1edeedb18006e54fb7887e408491387562facca571d3a787e3c2d2ca6b4199c60e524085913ce39cec5c384c3f5dd132f146f66471d2427ae0582e0cf9183162c49831a64dc7887196db740c1d8e6a99001c068cd661c41c068c5b19070f03cb9787f5ce735c1554e030a320767adfae23543927bb7c711747b9ac1b91a39411eba8727cf60cab3438ffe2bab828f705c3988cd31bee082596611b84719b06af0cdc3508e3ad4b1b84f1985b1b84816a160c1d70a89261fce5d2c381c1b141188f8163c4b8f52f2cda2bcbadaf418aef91e54dae348960f64ef248a7718f88437906ce3161e7b8883d7ea9ef0f88342cc74edee3e62d8edd4e99bc627395636fb5cbe4d869b46b75ec33edfab1db6817fe3df61fdad572ec39daf5e2d8856857cab1ef6817cab1f368d711ad9c837217a84bece2d24b29a59c3bb2cf781489721737ccb04e2bab8ef2e8e1a850cebd68f9392ecbb22ccb5c6ed331bb8bcbb3cb9b7d073a5d335a8f09800e3097a7d1ae97cbcfb44bc6e56dd8fc90438876bdb8fc8e48e3e232f3f018233d0f379ca754d60e1580fb066f8bc69d615d9bfb4383f2306e8e2bc40e1c5b5aee12710bfea141ecf8da6810fbbd360d623f9e61b90f8830d86f6eac0d62cfd74e16f6151b950b5e1a4234881de5ee6810bbeaf268b047b3b0131ca24cb0a7309c0a6bfee44f379458c704a4c136e11d9b1cbd8008d3efe11661848f20b28794e56b76960669b0e79553ce6c4a2925d865ec5229c4f26870870f1e22a92556cec7ab13878a646c4b62c26669a3678ebc64a341f9f27a1916d5a08c6719e7a28d326ed32b36bd72c32ecbb8cd94714f7fa93f9d68b8be87a85cf1238b4b2b05061b46a122a68c509d719bee914faf3794f9e5a31bda3c5a6957ea0bf65fc1e1e82c6f217b266be5321eeb653cb6ebcaf88d1b276b05d70663fea2ca3270d8e547211d30f3c0b243330fa7f925e61603f16040acc162cc94e9e1fd1c3bda358387f71710695ada167267d8caeb55b70a5155a3abd3cab556a152d55a6badb556193254aa951beaa81e3d2054aff1fa1a35ae7abdaa7f3794f98b46c8d5255730d7f025bb788e3545c4987e4599263160545eaf52f9eb676cd8449ad214f93b0d211bef1b71f262341a8d461508190f776450060e5b59c6c1b3dc506696afdcd025affcaa5c557245d1c8dc78ad19c66da60c0d6e8c7f814c991b7769d7cbbbc5ef1bd5f2d8729a16f5a7975bef72197f719bb912f36fb823831fbd78f57060682e9974cd0bc20253a8c1147c32c8c15c995568506f989839932b730ca11a8e75654c33e148868c199b2c83278a2ca3ca08571e9aae1395e45aef11514966b98b1bcaece22f379cc92f5fb92c9721e321cda32e8feca9854a1e3d8f42973c027578f8924734607c84c39773e73a21a0297363f4becd0f3dba376e4d7d41954f6ff1be11d11be9706383ab5b616e6c30c68d0d9e2eebd6b7b8b141183736e8527f6ffdefca4d31bfdcc872431e2319009761ba774300707526a7bc7a41045102099a3892018075a2121737662e47833666aecd0f32ac5c93a241d93899db1562078f1e110605ab6e188572fd97dd75c30e3b7cc3d169d02982b8800ca230249447f8f70830e7c4dc5ee58546ff460f37de7aed55b17774ae878cf9e88615eb80b93e46d5a08cc1a806a58ca796d8b07e846da64e1cca47c4a1dc7ddbdebdde2ee5a18d5cebc338054badf576cad498d0a43c94ea7bfd8e769d5ecfa35d9186f48a439d2894b567a5d1e92fa3d16badb5ca78f480183ddcd192f17ac3567ec1e1e8a7cbb8e18ebcf27a5bdc7005ebb4b2e9a7db748b7b3ac7b2facab9955b57701895e495af4c9157561e3d9c95dbf4caca0a102b57b94d8f56aea2f295d7bb02f3f2faae5d325e6fdb15e3f5a876b15eaf6a17f8fa4f991baf07db05e3f5ad76bd783d8d76b978fd4cbb5c5e6fa35d2d2efcfa1fda755f9fa35d7fbd10ed6279fd8e48d3e2f5326ece8b0ee7a22703873c598696638419bd5c871bcaf8cbcba3276304736983f52f326ed7607d8c6b5917d5603d78e3be59f5305e5c179786cb9d69b936f0b5b9f787df1c2c57881677c7ca0da3925c575fb9abab8c708e06eb57f88706eb53ae8d06eb51ae4d83330d561bf7e4d606eb6bae9dac7a93ab6ab09ee67eb2ea53176cb01e75690437e6d846fa086e27363710a1494a38d931fb954c1a0e79724e76cf6aa8d3e9439534d3b437662cc321cff47474f632ab42f954fe3dac99e52c8fed0a4fffcd8e65d1bba6bd450b355163d157a050d10b225ee255e9d85d956e8f9934cd6a584ade286d276f7c86c31fcf1448c91e559acd2e1fb59b6e68df9d6e3a5dc3274d38c92e4acb2eeaf4ec287cd2049be1214ed770cee9269cd3e2da0e76c2b14196b778f77bdb0bc2bb76e9e9688169832caa6b38fcca8aca5552e59fca173f0dfbbeecf19aca77d5f76138547df2c3ababbebb8aed42b9c421a7baf229aa4bd597f2cf1e45bb2828e7625491f2f1ca0b45d3b3bb7a8c598c2b2b580587f5845138b4258cf20ec33928b728d862d10bc2d31e3dcdbbb5d74c377c36652c39862c2d5aacaca8a8ac56292928282ad5c98989492a85427ddfe96432595b2a91489ed7751cb76da31c4759aaa07eba31c2a070584f0fb51c51b02c57507098e5f816302d7098c9c7157c3a61940bf5187198bdbb3c2a34bddbc1c222b2e9a5b7766b1f3d1d5ad4344d5b5dded0845d1bda4b80271671c204fb2ce3331413123639ec6ec23b58b60f77b0bc7a17f2649b51506e3353aecd9f77d5c995f687368739cc4128efd0ecdda47bea8645e4ce3b27a396b9e0b0863ba7731f50b628fc920985c31917b795c1bbb8bc8b4ccbad8b77c9845d6e8c2cd97df70712d9fbe9fe90d9f33a623b98bc9ef79e06bb854c423a9e359c8cd4795dc7962b1d59c414c0b276244ac7329924f7143e449ac88af01cbb9516d29edcb963117e6492320c99444870e3861c4e26725f8b424a9e0e8cebbaccd3ce559a4bd7ae97e108648f29ddf374ccac9d1b755988e50be4f8923780d24bda4b1956c28ae0db7448ea483766ec62c3ee36725131afb02cb1ca73d8b19dc84d243521799713490d875d2424a31784f421b1e4b9318212b7588e939e7679292057085801810c96f8e9b9c12fe2e27231460207f11b42807a6e0801ba4102e327e29fd0def83e11e5e3b37b84fc0d214039bb378400e592a72303c14f6e89610e39e222f8d143400974799cac19f009f1063f9c41800b7e421e23c0e5f8186300dfa5e5f1a694026bd3d4e3e1728c83ac8ab878bcc177c1398888372e6e8fc9eae35b843c928511d7871051146a0cc46a6f22edad1db9428eb8851a636bd32da45d15cbf8c270add6862a797b48fb748d3e518c51fe2d645ba87d7a48bfe4b5c77e453c2716504ca23cafe8203987e650bbb01309093551839890116b04c3bd64a86bf423ee28d879fa90a8856647fb4d614379ecf3524ad9724e9a45eeb7509206fba17c0d097ae32851c28006faf241245e210003f3f2f12648c7476f47e3ca9578e26449223815dbddbb878370efce731379787fe8a2d232f1e288198c30114656974dbb8b8b0a7d768965cfaeca05b63e1b42c33999c542cb5d3b83f03dba84273db9df8410d4bfedf189f9ef72e037dfb968474fd0c738af4e97352deb57bc4d7ff6eb114b9fc9f2e9eebb3da459fd94186cd82f89b7faeac46624fbf49006dbe73571fb3408b68663839289efa1c4ed3344be264bca9612e3a226006188055964951c83587082ccd1acd33a0c08181219d324a053cf5705db4af4ab436900d52363be2a5894119406228d9435f18dfb255b8908e37539882e93202944b07f7abfa68ca967b28e7023edebb6faf8193191020e1b8adc267c6b7a095b9586c3e39656b0212928d2c8f73f231f14a20b45834f09aae733f219f98cc4cf08aae733f229f994f47c4a5028231106d59361346a3262997cc9571f893019462388d188d188d158ad2a1ef9aa6043d34b2a21573bbebe1096040bc29470292957f2473d88c9898837aa20f63c376fa57e7222e2cd090e127168570f5bd84dbc491d7557f23b26abcf73f3dd95c4112022dee4c0416c70d051412678c5e3fbc93fdc63f2ef27f88923e4e7e3cd8ae255024e8e3a3dcac9513888bc39b9ea3c72152f897a7a7203f5f4ec30c1ab1d265ff1f86ef2ef269737d52b40bcf970132982c5ac90ee11427b56f31fea3565528e00d48731f061e0091edf51f06a620025dea01e6f8a30e2042dc835c72026bc2187fd6a946bbd7ea5be7a7dd82f21425047b990ef29abf9d5796e5217f5d479a09efa7ceafb0a0749f91e0405fbf0dc70df455d145ecda7ce73936435f1aa00df51e7f11df579140ef2c4c43c504fe120fd2046729fe786e786931daa894c56c77f2f88307d5551ee9f60a2dcff4cf0671264628299048d50a89e2983c2e155f627262914aa27f7b7512a092b1f7e3e263f93d5afd5aa4c7e4c7e4c7ef2cd0d068425a1a25d14ab02538259d12e29531ab0f4540376dec3c132cf2468b5a35f41d817ac8912932a96d8fad0242845a4a95244a69e141151ee1502bea38ec21840fd7bbcf96e0a0d16859f58618f3d9a4f0e4940a61e2041fa0504040404040494f249f9a47c523e299f944fca4748484848a85f42edd344faa78df491482333ea489d36431d015344167524d2685c88aece41043fdcaf0c8747bd841812935a53d6a2b0cac424a8b386fbc8186cc5a13d627a997c4c444c3f26239146daa0c9fa7e228c146c4802f29932dfad9229a3052121012121012121018524201f538fd6af21b77d428ec8276463a62bd92385f41079917eaaaaef154d1909e4114d99ef242293e4939bf422f59086b621208aa30422016148a64c1c8d20b79661147bfdb42bac3e4d84231245ee734cc466a25f1c917ed19e99c52cfa8ef9449af9ef7d6c0491044483f8022c053d143691d62f1250bf30241fde48405366239aac0eab4f918a28ac3e24a0ea63ea91339a7094afdbb6f54498de86723f4b6ca284ab1e91166c68c2119958228951982831099a32ef697cd263ea001421e24a2e31bee54c7cd88a98ceb48b4683cd493cd360eb74190b29f5a4fca1658a44963c796a0f650c7dbc5328c789cdcf39ef0f6d1ebbda6d1af4ce78d915ad0c37d18cfc9dc13398c6d704dbb2bb6683ac99729031190b59d33d59ca2cbf80965206f528dd5e3e8c5806512193047d4db0720e58eeaedd70be2e024a12f3283d881cc3911bd3ed5dd506db4ed6d068c88455c1c4d09018b0ccf3bc39e72465a7a4a8c4bb5be9d6c9d2b0dc75d22342bbf480905114b11f5d23454a9748a68cc5c754769664b25ae2a1daad212b4091fb7d45bb4879264ed1eaa10cd8b0a5d2e06715cdea700e95c256a6ad7945b3faa14c3294011bcaa13974850d2592a12c72d8434112890a894aa5c7ebd3065032b23c5e057e4db02f2d2e122de925f2cafcc4b20b2b3dbc4fb92487183da5947a3894ed0dc1658a2f9dd3c3993693de79ef660f79729d975de0b0bbf27a51389419b5f2ec52686525fb8ab4bd44e664b772331d5c9ed10ad5c4d89cf3f704a57496fba6b7f479496f0f67cef9946bc393cf9b72d54579e9a68860f90fb68b5e2c0a51f8c930728c02148a668715512c26515f21339d42582e6970968e42f34e8725bcd3b9743a49aaef0f4f3ef18e149afa0e4adf7149a638d4e95438ac2c57fd3746960a87f43353a5527de5293854ddfbea9e34c17e58a7cb1fca57f0533eefceccdf3d1c39f5347f3807058732ab3e531eea74b9f414ec58e958c65438a7f479efed0531bd140e794a38a71ecbd31b02c33c1cca2599a24e6f86f28e5d1d54f67ef2798f40e51cef27f3a54bdb43c15d839ef7d4ad0d7a4fb9b64154f6ced18e744f5e5fba27f770b8efda06492791fe1b9b45ba7743141027273df55f967f37e595846d9f273d641764cd924c529542ccc368a82344f5de91a88a963c1cf2c45cbb6fdd101d944f9ccc29274136f49177522b2957f9e82d72e8ebe9a59f17eb4ee9b399255011a998020b02fbc4ab52e9a457954a8557259c23924eef853a797ab7e7306e928e510ab06409f06492e791f009136ca52f5dea09917252cae9b19fce65d22380ccf4288f1e01644ea947c1274db015fff4e80d91728a73524ec239d9a937513905b7b821cda30cd30657f0778a43157af22f759b3eb921129e0eecf4a49e7ae7b2930cc3d1c3e1979aab145efd5bdda6533735270e6f927ab4df67ea5fcae429d251dd492812eaa51beae4d267cd2accc3214ff6304fc7c44e3e336558e2c428d853e1d06202e041650ca306803a098549a10e2adbf4004694443a55bd7443542e4d8c1dc5660cfb9c292938ac194339cb8dcd42c1a56f3aa850277b57d1932ebd20ba934e7a8e78f24b3aeac69ca333650eeb690dbd9b4e6f0ee99da35773d82387db3dac83caa4873aa87cf2ed84742dea76ffeee94aab83ca1490b9bbe9863fe4edf6863aa91d3c1aa4f4dd9daf3744cdd0470692b12019c370b85d1e65b0dd71ecb84d97ee8c0d9df73ce99267a7c91e3bda4569e6d1aeed2cefec4c1785ed62fd0492b1cfb3dc1859b5664cbb324794b52bed7285c8d16aaf9027324d8bf136cd5d0efce609f96deba2067b2497c82b87f0ec911fddcea2c1edf5f46a9757ca25cd92422d1fbfc9882340b3869b605552a8254779552814e4b08b92c021f7918f086194ddb9132437414e90dc74e72efb46e20dab503187b60af6f3d5ad18bc72387dba488695b563a3144a6091c11ca550c20929945892a3144a0cc930394ae1012b7217451a99655a4888dc20092be04114b0b8d1726c50a372499665dbb61d47ccdb793290b0cbda47274cb05278a08a5c479727cb2e5c0c17e14eefb4b3c129c3e11c604c2224640527960835c1e2b834d859344b48ea8abb509f2d89b5421356a51d4883bd836159966152c8ab6bb4ecb1f6d24af911d9e8cd21aeb6ec39a5dc7a346b7cd5e2cd324ca3758e7a93346e23928c30f1734e596b064adba34b38fac99868569f4b89c186199151133f5ea699bc058294299e9d65b6e90f0c36cc88f84c193bb738313bc2d35aa2e933896446dac5042973222332a7cf4b48cf769bc686a6ccf6ae453d14ce2622eaa270facc9e70fa64447c365c89c2199bd14f26845cfbaa25725f25a29a5a495bd5e5ee726c191fb2e616925d0c9bd89c7374cc040a1bb672a84323d3635572b5d6239127863d7aa35146e7c470a466c85ecf43891acc307a370cf3326ca30cae05a8846bd78b9b98650ccd88000000009314000020100c088482c1683424a8e16c1d14000e8fb45a704c1589511083ca20638c010000000000000000040209821712711b0db3698c72f0dee37e86a01bd182a5c1ed2b1e5219fd6cd9a4d2490213f63145823eccec0f91d0aa84f658b2c32d6ea9aade94cd0ecbd102494d4d759b2e48ca22c61b19f1410021108524a005bca2defd99c6b096a3cb61c619a66c84423d786bc60d8568800828b26ab6b9570c43a141d1600747ff9ed05a3bef14b72c9dd0be9a7913ef8be4f169633cdabdc57797532c5c472b0ba29f95ce3a53a41a21da260e8dc9fe004cb336f4ad2cca1bc4effb6902afc19b3b3c97dfbfc83888b7d48c2ed08b1964aa03bf70fbce33b7da07f641bd8cab69642bbcc6f35bffc8f541eb1ac3f218150277e6791f442280586d320e5b8f06ffc7b3f1a67ed2a647d44ef37056228046fdcec1e5c6a05615cb364f1f44da62ecd44ce2ef636f719ca551f6078033570bcce196dc5a5fcb8de6033bdd0749fa8cca2afa2527c8bce7a129381d3dc844ec57c56f1bd181457a21bae8041bd181a5524b7d5c59baa30336b97aa87e73738708809108f6756ffe06611c30a0614eea6afe0baac2f80edda79406317340944ecf3453e12216aeb6248067ef79eba304eaafaf771b995792eee63da9edfa9d5550515e2584a05807c2a60305d7a08a1d1d4a5274209443e0c29440b55b14594f62eee3a003b9de106ef409c3e87daa0375f01ef28cd16bb8e87844f359ee84999afb3c42a5a8a8fa8e988f88fa41cc37447e21ee03d13e11e983087f88fd85c80f447d44dc0f62be21f20b711f88f689481f44f843ec2f447e206a9f5e2f81f72400ade3cb44174ad2f180812cebfb6975ad7042c1871ea49f50e1796e81dd91c555c5d0ebab73c7e94fd89754c8d2bdf97beab854c8654cdc4f52b5dda8cdaa18d30c14c2b2fea9a4026c44f4dabe8c96615ce92bce24224888065d08799ab1e51a31ea5dff99aee46613c1fe4c6528a49e28b4343885145f005645adc0400cca068a08a43c44093fe758a861344ba9cd15c4d56ba50cf136c3d20784d112bf66407f3d05c8765019dc580a31046a4a3c0d8629c40642c7f32786d1b225c766ebe98fb85aaf100ea08b821c56f61523b11d4fc8255ca82aa297210a911f7c2f55d0d6b91a4a08788d345738044302442a8ec09b715a7e2da081725bd434de8e5441d7531145eeca26417ee9735b5598f78c0eb3300457fb86f0496757b7c56feedda0bffdd0f7942809435bc574a83d318fdae75eed0a8067532ab9f1d6959b65d5ab2d57131df9b107d781e589251584b14cab745153dac080746bd5ac6bc7c48ac0c4c4fbae001b4ec16208f111914f3de9000bc45f3dd7f34a27f824483fabd95f4896cd7d159b8f253603809e845257dd147d6f34e45c7ee1bb47375df461c58326a534f8cc40def35b8cb785bf6d918e9a0336eb9900c287a96a88d604384f354ee9462406b6379a80e2000dff6715905d6ff3e4e490d8606d1d5ff988a855304b8f18ef798ce846683fb34d6841b203d528f23a6e1daf5e46d4d137db322911d901bc581e16f29037735f46503113db3ceedc9e32521815ba34b3d18d3d294cf15bc9f58a881be0800259c9e6797a490e383ac8305bb4194fd073683ac2b2e7914c119b41fe5802ab3a0953dd52718ee0cc33bd961dbe229026048507872296c3c61887a6140acbacd9817625864cc018c561a35f3a4bce720b7da2e8347754607b9dc10e6607851ee997fa9deef577d59e74fd2f27d3c3a2f2466e24aa448c96c613dd71089296e249180ab6ebca7e5a25a3132f4206cd1b65d1095e913c1e1bf5701cd6538d5b00c30f759b0d216c8440c95f27c2091032ef09843eddcb52556431b647835d08e69a9ea17b316f624ccd99769e514996568d6e617b92b05e33bc2b33a8d716cec5a2488bdb137529c9925d091018d2212823a20ba591a91facc422f381486079afc00862ef0850cd50591db8c7bc2d27a2e1bcf5ca904112342cbe8e711778841eea5f4f0cccda9e75ed09c546f2ce57d7c2551020a8cb972f5c63807118283a82758bda18491c5a2921df478448610cb110531fca1fabc453e9858164c2a585ee96e47b3bc302dcc9c031943b6cd82f9bdc8a0021f3626e3f4305cab9579490233870cc09b92e9c477176f87de25a66b1df3a8f3da7276aab9c4486f2141810f50c6e6fba3f50169e43f66a819b63cd5a22a6e94bebbbd0545883737e0740df52adcb0626265aee5034522a6b9b0353400a59852bf7e4d3ce4563303ff3131318dba181ddc1297609736b886e074e6030d8372bfaf7c827c7ac6dce8bbf7e76e6a9f88d8f34f3328b7e87121266b5e6d51b1cce2a9b3cc9e42159b175b2fd801a368bb34de2eaa0c819e774ac3ce63857173737100bc46c411bdd45aae00d641e05f722ba454c5929b96f16ecb9060861f366601edda5a8892a45423d07b2881cd7eeaaac8b103e2f3c5a7a952cdd02a5ec1d1193a24a547b7148ec41a97ea66ccb125e6a323d1ed6baf80fa318251f648e3dd9564cace2d426dc07455be4df84e825a752ca517cb1a7a9fea58426844dda50c4aac82fceb014be23f6b37e1858a1f39e56a3c878c7111c668533214481fafd02f4145b2225c3d387be387b3ff3222da71d25d30db32c9ba5561b8619c1d85efe7b06ccf077af486d1c9e1031fa488d67993ba26bdb972f0d6524f279800ffb54f50941dcf486ac522220a7c2e195693e140016bac481e9c8be4ec899096f284b1e5559698c385c7cef0e93ee10d059656972b1417d010d9fb9dc067ba2ca8c3bdf046b9b3453c51120b0ff182f518d371bce72b8c91875e4dd4b69248e69d866cf8bdc8093ef51f969724409793c6873be1f6e273687f629d68de2b220a1ecc6af59c7f221231b6cb7eb11da18ee73557642a4b2a01a27836260e901ab1d1820678152a54ccd7694fd94150fbe5702f5ebbe4137c62f5e4820617aca0a452e2f873750db5d386b1f406b9e6bd78e2f10f365178bd8dc70b3db926b8fc12f1ae75aa4fc50937d412e273e8ef80088c52efe82565510338d8427961806f37b31279f89b7e2dd0133ee9bc40b5138e2c1ff44c248ae61316defd4a2243adb6e617291d965e737e005ae1601d41b4a44781f45d25b9f5a11778d9562e2aa2c6d3f9fc7838901ca7cd893a4d12165442fd0ca46ff32ae5bdd1425a38b4acb0afa3ef7ee5c2a8df135f920402b515b02524101c20bb2cc4fdac5555a2904dfb61bba088623363490e7b1549bbb50a76756a0633257088dfa774454f950e9f476732e2b2f97825217bb066c53163483093bd2d34055f23aef7df1d943f31cc55ddf4a51b6996fa7ba42b8ae46322798462952eed71d4e511a233764224edc55ada5e02cfadcdab21970315d1c13879ee75f5444feb9edd7c3a7b8cba1b2f8a7de3d4d8ad59bd385e67cc1fe35726fdbaa1619047b9fcfd6606a80e52910b8137ad56b67d8ef602865e79b5fa387435c8f4ed00e7026433c66695574a2f63da0c82342df885933d2bb02f5f2322dbae5179bd788e595b58edbf9689f21edca8f9fb70229825146097aace3ee9167a320b3cce1d3c48f817bf8e95f6d8290a9a35e057da43401d404a38e42b25921502d48c3073ff27f5fa0a0d5381b86d052dcd8780c65fd285b4505e1f539222829fc522affa352fc6f25fa7f2cf131a868e963e463ee1efea42f61528398f46eb156108ffd0fc46df79092e0ea779dcdda9f9a84cbd4acfda897703223b76b93af3ef5e2400affbbb5de5024a65ce14d1877ced1951b2492c9d1cf9e58df5277a8c44a8599187085ab6ae1f63942eda8766ceb58735e69994aec8b6dcf060d9ad0b778bd971f70e9b057ee6a778da35327ae0b380668e6c226860ced0a217158415f0fb0bacc1c6a294b9246c34dcc1a12a3d5b921e544fcf1b7999a3e7cdb541c0d1352c5938730173310c864627977b0e8ce0617757ac7443d01d795035823ecb7239e97493a2a4b64cc0cf552c029814f031ab9b18618ccef5aa3ef7865224b62e57c9bf688a50ce2292fc58ea423c647e1db23e673ccb2243c27cd80ec6d77f799108e720122b61deeaab71373a462bc6f915014787a9c8a399203172b39207eb100d65faa5cff1b138e3d640345ae76caf3e044270c7c89fe7b059f1071e43108e066065e4c47ee5d4c1986665ce9b4eefeb5445ced63c2b88948c9cdc0e02c5f69f277802fea706ab24837c5ec26a839ae4aa1d433a7944aa70fb2b982dbbe6e4c3ea28ccd5a6432a7af814990cb88e07720656d90c65b7acd37510054bf6637288002d1536ecd6791759408d1a409a15fc4c38aba7b1742f64f5027e9c0eeaf50ba8abb1c4c3a308da54489fe6600045a48e3efcf812fb420be1c4406edbe383e0200f6fb5640cc017f0e7f6020366f47b05edd58c068eefc1b5f53914f20dcc5757fee48a49fa06a467396e96e8f21336076f2afbb0642a10c1de8b42e9b6fa8e5f8039babc194c7cf6bc635665268803f4981d00b1188471e9ec2739ea26d25ab6647348814762080057c448b951a24bd9476dfd9c4902ae36dd01023b826c4751351a98055ac733571e5906900138a0ff5889459ec88f6f0a1f46441e6a401e8ab76a1e6570f105cf000044737c4f4fd6f2b3d0c028a54eeb37e3b721d25e83592ec25343769f25f629320d92254ade6a1c4d31728db773e15186802d5e78687eb937164579eb6c5e0bfde4ff0652d3658bb05daca846162b8cee0522776b561765de6d052cbb08f2951ab9abaa5dbadd297f5aaf25c023df37382177bf0927725ff8948f40d5fc84ef45f1caaf9ee7ed191d4e8204939f13a775b382bd12005b7e9298cc2d3dedd94063b209d8b12b809ccb4a2979f43633ce27bd579f53081419b27dbad912a41df7ac4f1e704a4a8b95903865c5542a525848aeec2157d6bf2916464afe1a3d1507f4188949c9932a32250465ecb22c663775eb49dea5eeaa7e46b219c040c3589a64623359e1b1fd7cfa285bdddea30a1c03968f81ea1ecb5b74ab48666bc1451d87cb75e51d3b4db6f0806e4ab0a96e262b3fd303b7243328a1dfcb8602bace78a4c2b673d1548900ac7a2d7fa4869b260084be195870d60b5467c0789d219a3c28c0e2f2ad374bd6bf1ad817b358d59bd029002d058ef2c0040f88c51df029079668c12ed0497c6b5cd58cb6cd3d50c272574e560587080a23c5ad7f461fd789c2d59a9ad6f3ee4065a2b9e4845634c78f0cff6e9a1c79d6a77fbe4cf5fcb7e080696072400f3de05515c30b14334baaec3134d18bb5725910baf4455478889861d7407456c86cef0ed44f6ad998ed087d8f7bfdc2a72d68ab936856891715eec2fb023430d5046c7147c65a6b218de76a40af0470ae58ceff56aeb39d29b7416b7c8c966feba092ca31c8a295bb4351c0dfe60d7c6394ef1b25b8ffd49244ae1da7c516a6d3818e528ae8654b5a31b6d47f750c2cf7c6531f396f19d03083c0510e690ba1eca244ea4281ca41ca05648bf626d2632438583e79922c5000a656b0c4f62100de2241557ae266d268c5838ba78450e3fccb11274bf6fe7d1f300fee7c1c3341475312db01075460d50d2508e29457d779bd30fd56d7afd5570db589ed9218a0c5f5e45634a88132bddaf084eb416f8064341fb07cd0cb513fa639700426899528cf30e0a1f0cf3d389460fca30f9fc47a0070a0c899d157140d928f53f9b725e2157117b6a6705c156701be4599e8f2fde7bc56065af6b67656deea9babe62e9a503efe10dcb183fc39c80c4c2d30e01870cb689e1fc698dc9c61d90f6aeca811db76cc57bad2f2a7d8ecbcb163b954bf6614d2d7ceae0d6743a834955987534597f23e5cd7fd22d32dd03022df103bdec1c8dfa10d92da679c9bd7717524241fd01a57691c2b3276342acbf8ccaa29fcce89e7fa93cd10387ee9286e1a817086ee6bafd41c0344152772532fda989e3452d0c4bc7b53f8797cdee4a73e6844e904ff85231bfeae6e69b1eb2cf8dc43a15247e0211e1402ddc585a8fb7ec957d92f3c5ff86679fc9e773da8986949393e04e007c7847106ce43122bada82d76482183ab0586df1144c80f7169fe634e1a527260ac890f856d09ad190a585e35ccc23265a67239ce3a35235d41de089625742f71cb7d47d961fff3eacb23e030be1f347b57bf3f4e4d598862b78c1a50e44a5747047e54c9098db0061710d646bf92e3a7eda64681aa8d81b561ea0936bd583af21e4d8445659620dd2854bed41ac21831d2a1e3051156c7455547ec14676ce18b01735fdbcc6957d59d8ef19a6d4569c69754c03bfced6dad8126111561a1e138b00aa1b4463a3de0ddb917a4ba0470e6b59f56735ffc0d74f81f2c6b52f9d084f3bc3bbaa161e23ad336288cf0ba216004970864391b672af08eb479c90f0580d69a8c530e06e452e3b82228919e8091a31279cc33c255114411c1ef9397133951460fd4b021d0639a58e8e7fc1b2e345d976709eab21e2a1a6c5d89039b8c92f460fd062c79dcdfb6e201590176b07dcd87b635dc8d20e0b53d813c156fdb82241885a8d56c61c12099963a3d79e78c347eda861794ab629bdf868fb3c20f6482562cd0288a2301b5fa2885a9d7400eaef13377576c857063b4508d26e197ed76743feefe7f36c0954a9be1f3432519be82331019794fe79e0cc5c41f95aecb382a37dcc6808d5c0c2b15819c38a7832489997cfd49c5bfb2fea538b2cb477eba982ea92832f517ea5b1205410be2e64bf4f344eedb3c4e9da8acc7e0d14073aca044d1481ab33c8f6eb9488d8f8f84c692f5c38efa5c55926147d35849a07b536cd3a9671520973f93af2df361006a3f0e872e73400953d637c50418ab007daa5ba6c542214d31ae560912c8221fc9982f4c5780e18d7876c331d96768f57b532360b170b0bbde9757dff7b107731b93502c6215b688a5c9b3879094c9d25aa12a167336c261f838805cb87d1e029dcf875607bff9b40092d103c3cfb1efea6b1cf5b9a23471c821c2ee36f0c94aeafd705e960d9dda0dd0645e3e7fe2d241f77507bc4822f0adb35e9cbdabf6631324947ee7c95e3c2411982a2a106c3a8852f789c4fc24c04381f32476e1de6ff81e40c67bd7fd4ebd31d19aacdf3b0b32d75cbc3e02e12bb98671898b61a9ff28deb0ed0824c07da8eafdca88f9bc0eebfdf404f156b8cdb01ce594e8aacd863f915652efc3a531faeaf4c01ce0809d3713402c61f44be73907a2ede699da85c14642e47c6599a2f85dd16fa118e24a99dfc2cf1ea8a0a0d18533a020a64865e555294a1557f72376058f4e9316552a84d194546c4de9a4b9dfc43f3196dc250a6bbb950a93f1acb0fcaecfa36e69635ae14123456a1f4de871796ff6c2f835063cbe5a9f9689bd7b0d2947f9c884750570471f0e5b40de49de69ce2f78841bef25dcb31430a8d33acb06b4a8271002f45cb3b8589160c62e596701792602cd73bba7ed1caa3d9dcadbf6f74cbe6b1fa7ca3e5353293e8be62b1879780e78325aea55e57f57225da05ecca12d88f42a875629eb8c5ab1575240116eb5373119827d32d21ac2127080ff8680d08b1aa308f7763b0467887e7972fc68d5e963a4e8c2499f763ebdaa6bbd018560a8a7182265ed0e63de9a767da84bdb4b9a5f40ec5795b4f82b9202bc2bafc0db78fd01b70da30370d979869daecae6ffe9284500942c7cbbc329cc2222e917ec9bc02a1c977677980d8960f22bd87a3c4506ec984b011e7ea4c1965761d133ca78047c2911ecf3883cb63cd87486e6351c0fecf0b9f12f2bb4363d9a1aacd1ce290baff1a717be093dc6f16b9da5b3076305b3dae16f7133d2b4d4a095c9a3f17741628c4e00e03f6c5b5dc2218dfea61b1b8967d10e64f6906e5ac8d76e78cd3baa410e4e5725900064539db4f97d97a54eab26e3094432c8392e163aa00dde417205b0716950509f3ca5fbe30b749358a8d81376784d212be939d58f0eaecc1fc72e4e8e106c518377377b1480c18ae080a57278b109740c6cabc0867d727fd4421f55674cacc374534db8a0a9aab28dc5d97cf74d668aeb05e6854756901ed5f67eef8666ad56e62be56000cfe1fcc154cbdff2412332e95d6e49a29d65e536c1783c2f8fd9b8408651dcf82976e4cc43989876c7e68a5181892e43533f9798cb66a89f5610f8d6b353068c8ee63034cc4d2781efc4c32bb5147962a438c3c6a2ef6162d69507ae21febbf6ff642810d75f166172286acc3efcad1ccc5ea12b9b92ac1f9dbff80e295c569145fee9cfd21ff45eb0507d01418003f1d9ec68d3023d550b86c09b26f080852317c6627d20593a54d69c404265364bdf9c236bcee1d50d2f7bb8a5b768420a022bed90624bdbcd632b4ba40fa33e1c45977f984b1e2eb129bd1dbbe08f3f28c9ce9aec246a07c6d087c7f43b84bb3f7aeca02359a0045df9a57e9b49392401341237d21f328d2a47394d81dfc6176125dfd1a7c7c2746d8630a357b70004820442dff579aa79a0aa7a9eb3d4cc8b4d11db98cda7ae643ba4adb71c144cb9e414ba56d94db1409aa5243bd458f020709e641283de35c756b5986cbeaa334a300af04992240cbe6b63cc69938dd624a8daa979f58ef1d8569f533d9b4206d89badd64a267295050504f5d594f9360fab37e5b6041a65547e5631d4b7c05a6e9eb8b1e77d24bd756f3c87d0a1642f74f9911d0e794dbc5172b2276b4744ca15d7a7a79036bf4eabd97450bee066c27030a11e23099a85418932d6008e2b45ff530d1e86fbeab618551614d06962ab095122ec89197f44f4358a7c7ecd7d4670ff363211eca6b000cffbff2a9ccc8991c5e50d63349c376ffd2239ccb187a2348c61c606f5f562246c165dab76950c10f42e7ab5a53c92bfb10d7f1e7b7fff2ff3bcbdf6b52b1fbf481131605b9b27989050cad0bf70d9faf1cb754c3698cb36d666f9de335f99c435d4631eabf49c59059352820d5e1d5de5f3b7e2008a958fcb121d5125ffec968b201a25fa8129ed975e813079e084e7dd59d3d882025cd956b175d22c8ade3d07ab4683dbe49219184fe0defffc64b93c5bd34ed702358406d1a562aa98df6148965611220d97dced6e0604a87c89d8244fb44bbfbca002415f7bae9215b0cbcb11218ac14ec0aac270012090c6b24f1bc32dcb4a6dbd6231e3f8c9c03f6a14e6e15b17d4672808024c24602504804582433a42101a5fe302e683d0e6bc69da35aedb3ec849685bee54c0052f5af737fc02c8e16eb70cbc85b410293bae808ef1e48b69e02ee26ea7f1e3a00907329156662c21f50ef38ab1963e404119cd383e07fa1a89aa2cd644ca03ed935798e22d69716859f45f3e390145e137eb9739933ee4735a679dcff82a88aa15b1584230b9bc0ab67e6738408ce522418dcd9ea62f11b3359a1f3c92b414d0b1abb3c49e068555c94a85eb6f6c55b610499a91980b474c54c6024a1fff93ef36f56068459f153139f20aac1da9695962f97eff551c4525e5ef8c24fede9f5378b9410c6b9a431b874fd4bd6dea50bce2c12bfbf2ca5a702e763188617ba8a75ff18f3a4d1403032143415d7dd9bd175404dcbc50e46fbad50459e50235077857c47e4fbed7d4b4b8670ec5fcc46d72e3196a9de442ac6b87a3eec51a68392cd1deb9bb6868410797f3e0154b79343e04ac9effa459270355e517b9271610c48c23563b945c9db2539e8e74a2c07fa968e1a9626c1a5ee598f574fd8834ae84124dbda7a949caba590bf6eb51789967f8c860fb66d5d82423dd23bde1825433cd91794a55516f3f4847af24842f58307bd74f8b4d80f0aac6c8e87399305c8356d2b6bfc73e84cfdef379891c354355086279fd2309b25d2267bcd68c28479551fb4eb4e739dc62d4636f3ffbd5365916044d97367170e5d477d4606608f7991e8e692c37d55e243e6ed963f95195f0fa4c9dff146935871cb122c8cbe6c895810ea2d100f872a9d23f85524684e39d255229ae13e1991390c80faa968cd5b00fd03540839407a86339e58a8c222ddca17440ddd76420c92ffbf8f21d192aa8cd1e27fdcd5c5d3f560a30b276f8c319761e3ee303ca509f2fd9a4ed250445efe4779e1a5ec2ba090604f6403d68d09bb11f3d6c663046ad5b69e1aceb720b13763dcca2b0da01be045ebab71f06bb574b4022531b65c4366c90b5665fbdd9348ea4a3ed846a9b4c83bf1ea7db09f76abb5bb8d1196a1655bb0653bcb87aa30670b56b662db626a298d223058fd6e615e44b99535e15fce84282efa1586c018471f9579e6da02f032da669502b76cb6aa149cee7ea402ea284dee6c14fcb670f4cc52b3e8746fd9fe02bfce3f7a7682b142c298e10f724d8d10605f40bed1e282075e073907f7ca69c07eb69dd4a3463de07a31341f4e4c589d26cb80819bbf1b48603831c4a9726b7ababccd3c7e00d2d7ef49ab56ec9cd9624ccd1111acf3e199b3060b676853560ba4b54e8ed6ec6289b0750ba8cc67340662a0945fbdcfd4b94fbb1b5447d9423b420dc21c4ab8d820cb3ecb2f187984ce12b9dda983d2f5465a288dc43dada225736a0a31e3baa3af80d52ed5c4fd52b6b5bf891e647515e5fface58d8090f828842c32ac986dcf49978e74b822eee28c5eecfa31a4741821346cbf39ad84810684f3a452fcf2c6fa21d37c9ed7acc071590c9561f8633237f91a740ee0852c82fbc0e47b879c6009f06a66948d48ce9cd366a256783cdf5d05129c8ccbc071b731db5687dc34a50b28980e0dd7fd44f23f3485c4f04a7c03c1f01a9585654db1603257dd4a6dcc7a9302492d54a76fc6feb1aec8a1fce22eb1bab1f16d2bab10a8d52497555ca028c6ca294057df1387ea38039f4682980325cc9e7caa43182c0a0ec79352177c72089c53ecf089deb1f74be9209ec75454dc5d799cf52e2f52b3cb270bc889ccd4c2b253035a4e616291ad6394a385718adb8855488d3a61aa0d8f6280e321986994360e7664e6f99ee6a35ec2b28216080fca7155149a9c761abdeeeb0a9cb926d502a58b9b6cffa94cffb125a523536f3b35c9c023bd29ee0bde168d3aa061a2b1038febb9f7880bf11c9f7e40418e70b6ce0a5cba7d8649bbcec9d2a033496bd815be88fd3e14b98a2e9e617218ea40a4ca39bc5f176beedd4a2a99c64b5feff82a1809e2c2024c38624f0c680b40ce2cf5ff4015ec7aa764a86439c91843f6a2a9ba8e2c7ca2e02a78547d547eeb1267b34d656f62b3c779a6a261e8bfb1761349313b6457f969069b2d6e3f1b39e439e20a58cc7c46d557b4acc81ace989c1ca68fb78787c4d4aa6fbfd2f657cd2a49cc291466756ef18353a7da4b6c5c34b1dc34bee7105fdcfbe1173335b58ff2fe10fe28c26def338774407a08b2295e545a8005347742804d724a6945035279472071734cba38bb29ba1390e658ce94e522be0dc1a755faaff42dc03049dfff8e52bd190a2c9c859a04fc4e5beb6b855597bac226da87e322edcd08001b585192bc1c4fc5777ba3e9dc491527cb9bcf5d899b6fd70ea9ca1418e640f654431cfada30813c45a643920ceeea6d7a94531f78864b3056e6e2461259cae612d6cf461904afd030b2834112053e559fd3d1d24f4a6a4e074249d6c689026c0edcd0cdc77467639d9eb2f31b77aae1773252448f58c4b46aefb474744f69e7b13d85d90b902b6093da0429d73c7bdd573bcf3fa13b6817ce3d3b41ea6ce046939bd71dc67897367cd4b8d92255645081c0e887bb10b9aa3cc69e1ba66de69a31bf4d2497f4aa50148103d6d270fa8b611d32c310c4582f4b6939fb8065c56f0d2f50cf82315f7cd2225645665311a3f04becdd1b0f9392d55334974f4269a8ab86b524ba179a142127d8d5b4611456d1b4b4b7c30da566ba1d0618f0b946118898d3a12280fa1326a526c57bc175104b538c94ee124307d02d68aa271d1cf8e22f793a5f6a130e946db2cfc8a9b6b8b76e5f030bbce055dd306ff9fc99740be41a9310b0bd2c003c1daaf0686bc793e759f5546ec6c1b69d622b697a52ae9db464de22b1f35784900bbe276859292fb1e8582c10b587c3c38b31162af12c25ab54bec07b806524c3c0dfe264f79ec5505bb16d58a86c7f34c9407bf8c2cd476445fdede1199d98274baa51a4fed59c8897a9d1186f7a4ca10d16300388c901d6d9253967c4451f102060fe3feee86dfe42da4d9fcb9e0e7e0d1314291551006cbb4001d773519ea30a1ef95fc25fb968b4a96c9b140cf2e634ccd1033acf0fae9b40d2d42b33dd9d12158a41b03d6813d7efd1e668b487f6dcd2be95c59cb10c4c2a296d2e784675e0d91e4e827ba75d8aacd3d47934ac479ccfd48318f93dc7f7cd97021c5dacbfcb5e2c606928c258009066a13fb0ad7cd07d8cbba5087d3f23713223cf1187b4e8ab0db566a8bfa401050eb6ec94bad53b5634481944eb0cba11ae06e5dc2e40d89cb679a57abb9c601b50aa71dc9232a4e19f75d63e23f74fa3e8be785e39a51f068d860e78d1c09155ccfee8c19657a55a9020b66541c3f2d27bb604323788c00390cbfef2a22e455d66b80479e2992d856f510b6460cebfd8abf0dfc25a6c1974206678f571a322aca7b2436ece480949866d88ca413614a545e20ed7cdedb54ea8dd4dbb641f1b51cb8e730c6dc791bd51098ef89169f01bff783f21660f492f6b002f7661e550a56998bb9c5e60a80999862356c417f636808597456c129fa586a3d06197f42e6951b60ea07095e8a969308ff7f8800761d489ec4c1dea26e30deb924b27c0c812eb5fb47029963d90825f48215534c3768484de828572ed81f5e921264dddf79ba5db4d358e384d8e53353d58ba67b1fb2b924a81fd954d914276076694597b1476ccd7da54da65b334118521ee1c1412b9fced0bef37f3f9ed7d54717623d569bec80d0e440176ebef00212756a0587a6fba58287c6a453ea81f97536d0e429c3283dd620e013192e6f711ae5324d1d30bcaa5f4e1f97e62705b709dd87b78e2eb45eed79367fde8dca71770e48e276af473bdca499e53587eb33d8dd17d8b98e4f7c94f42f2dd4c4f983afb96ca53f43e7127532a1860a38d2a7a92cf3de69479f30b36048c8d37150dc7b705589665bf2440aa9dc00e867161f0cb9f1ed5b4dbe0491481b07926b089264ca3ed267f70fa10511b046ddfb23bfa5b0ed7f8bc00914b92e62183e6489201f07d42a7dee1116eecf81e8d98ffda8104589efd801534d8105f9f2e5a9139817700bbdc4ea1b455097bf486207e4e7842c0cb0b601efc012444837047c70adbe253976f2f45fc309e358f1dd71cee95d8a62cebd4f5371884277505579a1019a46141a20e6e62e837f40ce500ada119da0c62f78d3121c8f0b7bb3a3c864ff93533db7b1cda7d0d3388ecec53fb8af055c04201c6af3bb1bac4fb95aee72da3a5e4e219dc7e370c6ec65c5050c1b9b4739b55289f16103f06b57dee09abfc8e9a2a3730b1e5964b7aef76ddf7d51e2fa7a75a300bb369b857823289d0b35e1ac89b2aafd3396f15061a1d3c4d1358ba71f7804b3d65bf5a49a08ac535ce80d8800d3402dbab614a129b89c546671a98d812e1852fca22e1ea8761b9270764ce01ca3e9bb0e9c716a2d0e696dc42133732fb83072b5c40d560051f0e3b76e233a47e73544207ad0bc72a416db19e553f667e4e89dc5076a68d06a83970ed8541521685b244908877d2d3c733be1726e06029c4492001f921d5fe2370ec2e4b388ff1fa8935a3bbff1bc9d457f1a04ff206064af872a22765d67f49da880a3ee939c08ae26e03cd95bf47573bfb14dce1782f3289812d9e953609122174a24ee6e900f6705480698d5a8c5bec5a93d1b2b5f4900b618a15fde667a54c1324c942e1747dbed25fd2633058098b5c852c7455362ed32aee8b67764a49e69e68d74672b5444c5a9c1c475f5c36e74a16bcae0dbd03b4ff43c3fd3faa164f80266a4899ab0fa9c7d1eb2f97daa25e70e80937c3a644b14dc3c3735b0b8d15c514eb322daac159e3f042c16fa0c47f0ac1c34ddd742f9f6dec6cd51b6011ab4e9c284da635e4a3f8d7aa8afd2d759fa8623e25b812f5982466e1eaa071582e310bb76837f7b9dd92a2a8c6293e35423bf30c3975a4ec0c23a7f1108fec47052f43abf8c5d90e3688e0161a3420df27ca64aa3800501a4d3e42dccb5524dc4f31a72a5292a9ab61bc0854d48d924e61b5e610458c66dbdea49304a4ac474937cc4d01dcf5774a49d0bbe4c16bd6d0f915c8cd076671c518b844cf8a03de7365d5cf3c847ffda5bb259365ca0633d0d96325a6d06f408764078e7cd717c30431f189b0158705f528008cf998d81b3dd3afa080528ba7fdb55080087628c6337553531ed15ff24fef1797a99fa3c9ebf3e6092624819765c0dc8b252ac46237eb318f3765968ab9b503075925bffd810dfe727337ba0a3d42bc3819ef70be76338e07ca93bb9a1c14333036fe699ca26e23b5a3e3371e0a839f4c969dd9f8472ce3d84c37baf6010c27d03cfbd41bb1aa3130487554dbe98ec88a1c6f34166bf5ec9cfa5822a42f026c51cbffb51b976be441f95360929a54e55151727dd58a6921b1add6a1cc9e4e6a998998a798869495a08019346e628449257e9851cf6cf043314c32144f801c13fc1ec83e775c652ea2012298e762965791a011d8d8381f52d4047c28c5ca718b3145cbb20d2bfd22616064c01ce3ee0b07b4a9d9f7b9381cc9f521d4e46538123fb9d383a9983d21800990458760d083902641c1c1346d700c07e9f1a2ed1aa9829f71b31113e6bf9fd9a96a61375de8123d3bf070cf1fc615b0ab4c166552722f0c6d3686528834c148bd667f66f9a9d2c351492a0f4c65e005d1f18ccd41446eb40efcab4eea623990cd14738f151977246df3cde180f9823a879193613637da85f9b068089f633ba6c254328db5848a12e79c03c292b49820d999101f35ae2f0a33f88536169a5b696b9b632168350a95937c2dbf361c66b9545bed407ea86b167ab3a3aac284401af5ec16ce9231661f051d2137f10af40e3b8cb3ca0f590bfe2d78f02eb124b10effb9c71e0640a062f547d54015d1f64ce1d8f812abad555f6a7fe04ab7be6353ab85da1782de0c568a41b47abfb71feb2735527580b15b09aa46148cd5aac9fa925fac6249566ed58bcda1edc9224474e6ad59a1bbd685b67252e7b3804eb8f27f1c83b908824f907c865705e2c4065fa235c411925d0b0905efc8ef975ec2e7778ae90388d0e8d984cfcf0aa80910301feedbbc17b69c7f84a81c4808a68fe3da429b8fd488f35df24c04546d52aefac7b6114c7736907207e9b4015a99df0630b18d9db064febe0263e911140fdb9ac9cc60622e4abe5d374d0d9d664ec183e3235055d863d7a0ae742807991bd1670f714653bb984dd482d5a16c4b22d5020c64b52401bef191fdff216bf81dfc9f2ede97d54e0531cc84531b745ae905643c3da2c88129b025354a73c056818d4d89765c923bfde193b1f93c506581a1242e8315642c6a7b6297374e16e3425490dfb4c6df2078c4c1c97d38f008af31f69f6811761881ee5f1885f5d77182be07e15e0325998c1322bc4dfad88d293d4a9b2227a3413b046b8191d40e289a87fb92328464db97844fbb3f3b439c91eef980509154a81faf7bfc143e4b0815501e6722b04c31dd3c929ade0615268c47811896af0bc57764b7d75c80ed92af50bcc3d92933e49605586a02012f0bdec0344c1d60dc85921e0db45617a4b2b7b706f4eed273092e7b872fdc92940a63d1f53d0d04b775a7142f7389c5ae91d617dd1dcf4fb81afef5027845ff00eb288ecf47bc74afb0d7728adc68160fd892f517bb7c79ebaf602e7e2a19953ec65d4aa6d678276e89eff17bdf35fd7a9d9f31c95716137469a2271fbc955cbc7d2c95170e761d26d288a0440d55002de3e2a8a337aa73829126524d4c2b9d20e20a404b64bf5ab7dc00d957c90f56fe6008d51202eb699a7be50782887ba1afc2bd715adcf8ee3c2ebe0d412bc8916bd92030d16f3f7a8f316f2c11de518f91c05bfeb1f0d7a785d221113f3d4480fd21e27cc90d610a482a88bad141ed925d632390ff94824e588ed33721bab1fa82333dd3afa0ed028fe26ae27bf2c26568eb0d59233dc8270318d40e458d60c148e781774d087b3828b68c613b208c3a5bf86201b11188cb4a9fb9a050c1418f36c3bc721e71bd6963b4e1440704a821cd2c07c9333f11675bde8c7613a93b079737575bf94e1fdca6342a1fbff2539675f666a9487b74eb784738858da46cd9eaef03b1943827d72d36e91ca0162ab68aa3c6d3443e053d3466aa3778fe424056cd3b3a7a8b153a244ebd4408148cd045ebf3a4ea098915f15aec228b6e20324e464eb498e9602a5ebf373de7e4323e25c545c0c96821f9bde8a2a42483a3f4bee955ad0731168a7e1e1cbb8da88b11a5663678c259784a4bccc0b0099cac12b5686d76379794d1882f7d17b6ec0a955b2e8b38fd93abf7a22697befb8505e9960500d01199b45302b164727bb611234851378d3e7e651160131db8c45fd9c77001f128f6158adb22f539ea50f610762bc1301fa0d8e33e91f48fefce621f3628637d8a7d424e5633212883cce3ef06936bb2777690ca2059ee46c7a9807cbd8619fa2f9492507c51f2b5ae37d1c65533917861c3e50d1bfeb143d956b5e871261a9b6b73933e2ce9ff56e96ff6094ebe65e2026c1fbd815b405b0d871867934a2a8d5eb59d2b763c302e48951ec696352928a2f45b74cd64b17ff5a0a4fb8056fe52da40e6253e9d17d21df2a862642ce9dd1476ee481c3816b48780f10b0ca6b0d35386a5147e92422f408c499b3351df92216e70e0c25f9bc181272a0cbcdf1784e29fbc6b74c8e8b12b4e0414062ff420b7aac8d6682ed2c30011b8184665e3edfdd1c09e469f0dd7c99f719864cd390b70fe5173d646b31388d9807cd56c4e1734f992bdce2537eafad224fa6608e40baeded287d40177e65f1fc206b47bdde239439738cbfbf2a272e8bb1e94f46682bf64a5a29c49a86342dc735a1d5febd67b70815711c62c1604048cd85afde70797b218459f1800fe36b84545863df2a88155a33c14c4af006c7ea4adccb04cc75a301a5499530f059e19124ee9a70fa3908a3d097ff094a0c913be7d363c14325d21fb2657932f9cffb6d3fc6b1017685404c7977610b1f2be33788eff2a5c2870d604350fc23d67d5a094a7095e62de7c4e39158be7c3531b0d3aef47a767905bdb22bfa75a4a1c8f7c6fddc41a4c7761371908848afbe02af8b6e94a434f8f8d7bf82a85d6a73636dcfcc3f6fcbdd3d68243aa6d138969770d53d4ebdff70b82ea9e8d54003d8cc9f4a2eb0e5b2533d5255153ef5c542c59154e3839b4932902e86c23407f020236f0f3cdcf0460b77943ce0ecde5f7880a1ee077682a6a6f5935b68df223cf36e106f621624a7faafaa33dd2a4a02b1e64e4efc0d8721b26b2143da9fa69d5c9426eb7f13902282a9c9c8a8106177f4103fcaaac7db2b33e97934ecf71eb7362824048724e622f09639adcc922182d32c5a6a1352a23a8b74d74958cd598c99603e17e19160a41be92329841d67574ceb67695bb5c3cb5d5d084c7a952de0c08b5d95425330b2b954ec0380bafcc6a63f1499f6d96753c61c0c889b6bd5a496340900404364352865b48b99956d4a2da9d924804c9fd6a4cea182a51905bca7d0d0d9f88cd9b899677d42e5bf11c8126d19b7ff8b32a1e3192b439e643e0136758ce463255f5073b8ad8ca30d26583c408fc79851e4ee30751a91df327be8540126b833ad6438eea507360f8db16b2bddf844c537e70ff951229531557ae4c4945f637dc6797c418201a1a75cb66b713a01b1b9fecc193309fdcdf49346dd3021433e0e94eb5e0617b301949979a5d6c6f3aa8a3906410de5ca1bb1c6f527078fb24bbac40c306119dfdb194eb245432456db035e84b7cafa61c2b6a730bc8063d0ff34e85e0ff28a68589c4d95cd319581306b6cafccc8e7f317da836db24140d8611d8210299716bd80db1f6529635467941f57cffde2a19c90216c4ea1415056640575e63d9039782538cf4e7804e05183915c71b39b2523edaf1c9b1952b0da0c12dc272c00a2e1d5c3ce36ad10f96c5885731de483220a448c34a279ae35baa6dfd021db2f99ec011c003cff309918b83db88b98501d3e63de5a46d9df044b0d0cd40a8853c2333ca2f6f6fb4576f4f1c89a8ec5fa31b4735b3e9f503c0abefbd75eee0150ad2ffbdaaef4cf6de9486f01451f071f1569693c02a266d847e16ac962716a8391cdd62538627a2d1f148cbce2c6a3a69b74545357e68fc6956faf790a24f346296229df9314030410618c76ee4e321703c9cbc68cef6db3b00a485d11d1573dda91a1fbb81a0caa011e7e06432acda2c0ad414220f88a9977e560ff657b0e504e7f795a46f3b2e5a173b9c7d04746b9610c1c11499dc20b65cc23b7f2e707d2b10a74484ce72060844528507bbcafdf491608fd548faf6c369ee73baf234e51be2b1ce707446d7b6e0f7594c431187df7c375074f82e32cae2b66d6209bbd81d949c3324af5a0cf550aa395eea523ef198edc598af10d45e6a1018e739b21842dc7c4c019fd09a4e14e422b815c2a6812fe250db26ad0ec565490fdf4b7bd74e79f344970c7b5358af19475eecd612d5f5423775fffa210dc23650e4b4a2056426da90a3570149fc988983c09a259dc8d9e6ac7dae62878beff94a33a09f25509b38175223bb673b50310359fe7c6b1a5461a0231da9b51a34a72c42bca2251cc045bc96176f9e43bcf2563c0b55244496685acd0e106f67027915054d7031091ae9b8f5c85a04d02d421fe42b70a5a0d8adf29a59d11deca19298f40029cb8f14f53b401a5436219e3b94c60fbc07133cf39e6473ea0dc04f41c171262f9508332e8739af308987debed14ce6994bcb1a327875220fef07c71a6a970f608b0e0e064d0f0fe51c93856fb6bd81037ab853eda998d8309206108a8a80889f6eeb1d25e412419e20bd8dd25e19bdbe0ab220d461823e21ea518f7bdb797e88874b62b7ca737dac6c0b5499ac3965df32c385f3dce287ba958c3c2bd1fc8415a2db2d613eaf881a622ab2af77bb98967c9625ccbdfc3850ff573d94bee216017a762a4b3638d2376389705ee3a4e863e45db804d13ef8c61d41a089e7aae2d6f77dc856a1b9558c66bbca744645ad2e0204ae3f72d7c86b18405cafc02026b84e41a24fbb100c3392ca4ee302ee542061b95d80bb09ea0bbb9bbd6590cbb1bf14afc250c2d5c44004a986d7a1f257364bc3e5826a16794e81c461c256879a97505bbf718e5ffd2c0fb709d9907548459ce1000ccc991d314b9a7062952b166343539630bb02c7ecb396aa82225a5231ed9e2d2feb6c290638ac58972e0a77cac97ddb4c970343d5471542cacf91b3999097bfa958d5a70ccac23dff4f48192c65ab6995d95239ca256150059f46c7c62e4b590f0b5bd5cd4929689fcc01d769326c587ad76ad48754c749c5b0ac1757f877206fefaf961fb64e78578b1711a6618338c61a593ae2989480d280dc1f78e39b03c1e1ac12dbe8d6e733fc0bd06feda803e9de3e2e28518b7bbb00801058f76877172b73bc7320024a2d09dd92a8637482993e9a9cefb1f1e4ac168dbbbd5b7e1c7739259deaf5bc215dc171d985fefae17cfed8192f0de2a6e857ab43383b76888efa5fa8b1b7f73afe793a1ef4c8fc2069f1851f91785a95dd47acc5e2297aba46ce20fd8558500d2f515ae66e9a3091edea43913709b7bcf7a961e267ec18ccfba6488b1eb4c4e959578706f9a58fd8ee09999829c2444dc8644e0526d91b15cc1535ddaa6ded9a80021619070197fa9f6c08b3fbcd375df1b185ea358b6da935104646c739e0ff835427f85b9f5253c8cb7103b98a5b08cf897cd6062445e844ac02492a3aa371e3d3cba45d5cdc9843ca59d11a65897ca3fbc1cf97ae88df8f5215b58cdfa45ae1992aca6985d3ea712e92c89ce110ba19637f3a364a2863ea39fda748380d9b6afc7f4a0b549fe331d152228e436b671af40aff1eab7f055fd6ceeaa8904842ce1830e0a5e5cd999c094530e8eae52796e9717839fce6b58f1f45f1070baca94bc73e538b80634f028baed2a5ca56a7b11d80f31e1ca3b6860492a20b204fdeafe8b7118cf7558156b93b5fb0e093dad16dec812a9125c1ccf254feb76afbbbaf167c3268104ccd30f424c40914488a7ae9f4181f877c048805a9bb5f96474a24122122b61c1066e89d8afa1995a30760306d764ba8d74bd1041c163db24562d6ae963e93365d64da2e6bf1ef7bd0217a08a56577a0b122b887916e82e6c869280b095461218ea3ce9a04dfe6103ee5ccf3a1b2c8405808fd80c20b2351636862e43c25ae32d5d9c83b551ed902034138705e653c3d2cd6444b3a55a0368ad71d3dbe349161ec9f3653233957cccfbcd17f714a4a4cb11177b23b789fe4281820ce4b4aef651bed69e93116c744a8c242837ffb09f6a271997f3f8f54cbfa1310cb85f343d58b407359228351eb47ae8e4f6f8e0ec58040cbc7299c3cb7aa5086e4dc4108ce3139ae89c2702ccd5ba294c19113a0e076d8555a1abfee8b9c0b41bceedbabb5dd0be0131f34b7ecd2c692bf82a8f24a2c492cd480f0d186f63c5aa83cff68bf84151a091e3a8f07df20b0cb65f06e28ce6c8c118c6254006a986e71d17265c3268b710fd6e485a885eb840c02e451e3985e3ec148e9bc67e831e1042d81a9b48e6b84340e5127c7e2079953565d80bb2f40078b11f41ac47c538d3d77ede56ab34c5bb2e8e52617b5c813130320a5881470307ba80e085468ea2717d10ff20fcf69973a8c518385d3ecc51f7d2f603b60a1a3b261608c125ad1f61f723e0d17191e5ae38e3a31200288c72f3fe327bf22837a2a5f5991398f2cad318fb66a871dd793d6efde59471f284d45775707a2addd421f2253f87c494b891e714ec6c891c547ea8339621c082525993555abbfc534860c63496e1ac2aa7fec9c304462988a983d771b673cecfa0745ee5e21278a7ea1223a6c0d9b54123c8ce2635bb8417b04e022ded0ebfb391e3add7f8104e6777af59c2a544465d8f673f661b19d3c9975a8301b23b8b02f34ab8d2c12d4dab22c49385056c5ba9c456967878fe6a3fd2d42abcb061395425d6aecfd83beae2cca850da5f222872b62529c727d13ce20d108bce9a022303ecb2543721915511a0175ecd05f24e3718ae05e498d4d3b5685da68d23030d75a60f8db481cf5c909810c1492f53a85261a041d95e3e98cea7d50546610aa7d10b0c039a20ec9305f50b8d7c4aa46a008da8a241633995a29f115335fa8b224d2465352e7f34ebeea5c84ccd5ec608ba2973b719c00d0cc6a29fb95b757a05decf1afa4a35d46c0ade1a25fc3df2522254493e27d57b479b75babe1f6447ee87549a5e6f501e017295a692a780de8f16cf76b3c58521bd666288a58e7c5029c4f9db37474df5ff87a82243149c26e8ec330b581106a6a18814b15bee4d17a6a1e9b515a47bac084f88ccf27ccd9170b7f2e9f6380446f25e17642ede1f39a15664ccf332b0f15d84af6633b70a46586ea51de408cbc0242aa32cd4865624c3afe6c1f79f42ce4b40242d3fb12e065f5b03ecec6966aed9f61b7571b3671c69290e7e7b84fe2e98669713ca1392f5ed53417bdbd34d2ca437ac2b4b189e2841687ac313e77bc3ec5a7df639f313a80a296a9bfb9164b97ea13f74b00fe8dedebbf24c0698066c1aeecbfc975f8a493003879e5a7354a822b66711e58ab9b12e3e7f5617aa61b237e27e1d07444e0af303381edda70775dde22020072e90546ee56bfac224320acff1e94a647a327dd40913788db0725b917fbd18d923ca59a2ff6ed74d50de2d6d80c5fac4b364caca6bd351a7f09c784cffa9f8f429291d8b017920491d7314f1636e641b5372800b3ce3968a984c8c883698c038fce8a15ecbb22bba587b5760b1267e042436beb068642ac6dda7564bbdfaea96fdac725c5cb14be356156adc1c94c5e3098f5a75cd8d489d87986a78bb35163d6760ef868c0b1730ab1d85e54ab3c7590ecf315fbd683f827f08b4cb79ea69cc8973598846c7d40f76b24c04ef7727630de9116183dd0724ff3f763e8f11b330398f49283f781320782d132ad4ce10b6c577b3d48e970355eb4ccb3ac7749108df3f7ab48903890d322be6a6f03a14a34d3715abe7a62e4299316efba5be1a0dc809fa88d63ff05816dc58c31f70152e70b4275095cde2d52a443fd28493736da6e7f20f943fa69c827aa4d749780838425394c018d1fac4f5f69a91db067988fdc2a02a57c84a42e414ec1597683431b43efadb77369e31992ec6bc736377bcbc2460e53f2b5a4a01f0097cb1ee916a84b771a22128347688bf7f37fb50f87ed34b385d2d7e2784b837ac47d996393eb9908f82e400458fd45b7d35ca8e3d8b65bb6eb22910fe2b45aec34534c892e749326f460663e1888d30b4688260f6331e4628328116f182b033688f3b70b6515707afb691e3bcaf4f092fae638c8c93b7247beb9c045cbc577756218b1483c5cd014d2ce30ec854d0d33d03080306edff8b1283cc6d7d9081db5a2ba9584a60b8aad7f0e713276def27b65dc05ca9328e23a45be21537f12afccf1a5b942616b4428b8339f8e7c887dbb389574534881fee7a67981334af69c205484bc01677ad64f71e4fb69d3ce3013482c95c10977e4350b039e5e1f1f079976a2565ef0c4a4e03da3113c522b2910484d056f9b1f85098dd6b90ec7988c203e49e0780b1a7a8d7d656a9e9b5df36399a63cf616440e507fd03d098d278353e6b53fc1afe2513b1b21215944973d8471a7b1aa04dff848f2fc96cad1c79574f2a5241d928bd9a9633b9e432b2beed48b65cd05d1aab120e4ec7ea62268a750a7535816812f805381debac066d83f1c861d4d8547667a6608c6ee4fe5d181e30678b0da1343d3662a2493089a256a0fbe431f9f0d32211bf8401fe6e7a3f60e863c58a894ac90325e11ab926481505132a54ff73c069b179be8b6236bc6c3ea978416bc06348e53ac22d56d48d85b4d0140e93b7b024423d95e5a9bcf72004a5a5eea02fb4080d5e14c6ae7487006a7eb2736fd5f7ea6eaa0e94adf99ff6fb9da51454ae83c07fbae72567771108763aa4c37a5940e6b17fceab02bc4ff60b766a4a8587fed24f9b893a9c15fc7cd011bce38c439a2360037af81c79d0ed68184ca2faedd49f34a13c1a45c3deb20c1d5b2ae4aab48d38d4a03349ad13e06f7ad2186180974304105402128711dea068e1dbc0fd544c694082b31c8c0e04988af02fed1dde6645b064efe91d446466c3c8db1149512e88f867c7676c2c66c1caa7d93faf38874f0b4aed845bdd5704ff4c823fcee31cc92dba7c0c28e6b909991722812c6f0554aea33673618178fe8201ec729d44e85c1b951b4aaa769a126b2f61ece8a3b6664adc7c28517858e7fcc9396d30e64439aa482c164ccc88b6d5c2d57eec578dc659b5e8e31faf092cda3e6710bc0387a9b53ec9374a243d19d9316891545e46de6fb86adc101733b978968ce3e64cb4a05db89041ae12d51425193b77bebee2becf55bf20fcc902e0374d0478a3c9679e0e590d9f9edc7f03543e0484310990e1c068d47ffb8b24c61f756b1b104c90d451ca258779a6ce3ad1e3c2337e56421ba707c517da876c9eb32108574e7188a97aa395c9b497d97b397b2f1e5461a13c0f8af7edc174c1d897224de98914b20a3916457894b3a5a5ffdf99cc3250969722c36c08f2f41728b99053cf6972f5bfeabb50af145b555ce58028b7ae3f2f1ac21a14300a4ceee6b9042599b490cabae92bb8062401ae5a7a957ce22e0b92a74f7952f7d24caea4cc14ab0fe689e133812b2f281b1c561195973318eb37e8b8f263b15e534a298253f6c8873b01a42c7b9c82139cc3cf90b4acd82f8bed666f7ceea2f6db3b20368dacd983126350671c77867f75c82c30aa5f7efb9e58b748b1dd0998cafa92112da099d0155acd75c7aefd7acd7528cb86c0d88d596c99601731c1759f9531f6f487b6abf59653bb334e6721323d745c8d1b32e0dacdc3a8623b4a640e6a57566efa57879f49542bb9c4fac678f70bbb0ea044c023b286d35cf53f6e5ae78caa19051ae01cc8ee8d13860d0795782ea893841352fc89cdfc12b1bae0921d443c16c25c93b723148760ae4919e07c7da105a10604a78eacaa190bac33ca45a53f0f4bb3e0db18bb450010b2b8a55e384c5e150c828cda05022c54f0416db9a43213f528f3143ba979cf0d05d8d197d6c2bcba1905a9a1e35ea14f4b4098ac08487f2b009bcb7a0b7c49170ca7f96af4cdf55caea57870f85387a360403771e118310f9a8d94b58f446668db9eab69f3dfb488886426a0960924c8129a0174332314f482df6f56028a42e0458ab6c2d9547c497b9d64254195b2e358e0ac05945f36e6464c6d7492d46810143217d9de953d98a6c1e9e8ee622e24cec0914494d337346e9230269d4528b9421fad0b09bad502a7f26ca1eece3904795750cd7f3ff6e789e05faaf34ecc0e0bd534302159845af059abb906988c1d4fc7388905928825718262db775368dac171c58de7b6dd5c23e149e89a6bb0cc8f000f1d7fcd8d1da2b2abfe0ce6b804b773e52bfa0964107db6e9a9dbc342509c35dd48fd56d8fbf6c31f4f2ceff7865e90e9748c734802ed1b3175b064e77de92bfca694720d02817dc8725494df71dc9adc603f613f2c870ed7fa1f964e4327a39ec53f0db7f9d77871a4e6863d0adbe9b1cbdc778fc72500363edb5394bc63cf2d4710dcf86d39d07576d3ed2dd2a1b9181cd9eb649334b29e0d7f2d0f34f4af83d6db3fa0a8bf1d90394a3c1e512f06cc46ce84284f05d795824d06aa11fcda5a82db4ff2c6cda808e62fc52ca61c12ae596e1c5d4e490fb9373207b0ec6d12606ee9df5f766dfc4f1e427cae6bf87137c3544d3c0442aef9777c4b631fcda00ef16c2cdcaf4f9e8d6216258ef5f03445d2a3471df84072930d097a1810a00718713342fc2d8ba98188e2411ae0eec27492a581a602e3e75a711effda37a6472ffd49d2e55b4f3b33e4d3ac11cc69c9f7d7ea1aae1c02ed758d05acba9e8c603d5f5ce16c55db22cdb9d1df637b5080e394cf4a1addb47558a93a3e53fbff28a84b0969ebad34d69c9dbbf6fb1fb66e66626b366e07019bc795bef7e6450b8b2bffdf43fc6485061cbd16ac6a8085e4383d479320adc64c90d52133b52244fa377c719387885e8a11b107de80d4749f8879bf33cd20be3023ced67a9c47905965c4160a9d59d76da92e4290b004c1d7ba4e50e10f30c416680ac924fa5d35ec7c3482cab2822b9f9cfa40802144e83173bc9b39c88e0fe70638417874ac74218ed899a756703bc918f0c6cb4b4eed4f79909b8a0cfafe5168623a2e464287d6740a6ba119d8c189fa5b2cb555600aee9aab929011d5523fad06e0009784f90fef1dab8eed4a32b2c138030301388bb7a6f28aa25cf9fe8435daa062f497b689132398c4e8d009998d88495b7ab2536e691012fad8a622b6d4483355180bf20dbd3029d3a8c79ba0180281fea6e0123a07ca86bc0e8b49c555f46eec8d213cd513eb4bfc141e6bb5cc4c1f99303e5431574ead9f28e3732693323b5dd523bb189eb18a492605bf26d316e2ccc2007d158478925b7b3a31e0747c296a7e15a6e17787042e041f01b2815de9800171dcac686488f0d7953c56689c88232c15783edf4f0722f51d24df9c86e67a187f2a16e157c8a86bcf4ab36bd0be4741ede879cbce9c0601a5b66a4adee73401a0992658405e8fac686a3a440b85eff6148cff57fa508a9c5cf0a372c24f2561ff48aca315fd448af7765efac9ee089dac8c061c8ad4be927e4425474df56be80b4fa8f86d9fb2ef691b07dc39472e6379d2e1844b154750265f2b973c608f73c2dc8821d03c39a4e0707cc3a17332dd3e0a1678dae9857d891ace681501a5dc481e362c3b502341e9eeddd273c98b3cc26db599e031239cf805e9b691ae1988c8678f10158dc1fb1f1785f9fe1e4c9ffa70398ebbc8ade24cfb498cbc4231a67d22f1c48c26ceedc13bb3cbba0c059fbfd2a39011ad08c42438595afde459a9aa553677411d37df7eeb675bf6f6cb01ccda0f90c445db20e0eb46c61a99963428dc4cdc5d246b01a6f485ba3165e80f01489c44eb362da34bb054e891c1d98ee4a60dfb28f4f4debb4cf5e3032f69ca1c17de22feafeac06df49c8f66e7c68bb6fb682b478a308af9195c23af463277895942552f644037fa143586d3ed3caf4efe5b25ab1f893cf4f7e719250075a3e905e866fc39a60db46af3da8ac9a83c441291e84bb0bf9b4a9e57ee8f25d2ae57b3091e667debc6a5bfc16b27371be30d5223fafc5b9ba39f17c525ef014f36952cacdd0f1f2cb5081961f6fb49296bbc05ebcf3fcba2cd54a0629184b18f0a693a96bc80baacc1fcd3f7f11af368136e415ce8c114e117ee63037ae26f2fbb6f9a336d1155eb2313b6e9d3d165c9c028700d2f0b443eb2fb1a00454081ffb6e5893bc1a7b6cd60d2614f495b7ce5f1f89c153d3169d5eb01cf956b4ff47587e64e74dfeb7d12c36e915fda3c80c5d85aa6c645114888046a10a73eecfb93df8fe5597a7eb6630ad1e995bf34b257eaaccaf79b82070ba424afc6a80d62751fc87e79a7f8f18607338c099fc401ce2e8c0b8043c886e70b1707d6acf9a6fcb9e27cdcb32e6ec182b59901d03c502ef8c176f93a5f851ad826685c8ebd503b0c00eac56445722fd8a6cd615b719ee22ca883fd597302823f2b09a39f705aea87be3074ceaee4ab0f46b8987b7274c5086e219ee8764dcdf01603da48ee560e274163bbf4e1c184927a63d92bb2c602eace7d5bac8842e4ca6fbae24904996a099d0e6ad445b0f8efec9f151096d93084bbd421007b3143e1da808a082ea6c94a5034c84ef388a65204789770e1e881ba48665c0216c41af3a9e445470828271d10951bf96ae4a46f006bd85b03dc686979f773714b26479216b6380a7a25ec46758c110b1625caa0267fde8950f14891d7f8ff851fbf685e511b8bcab2af0ff7d0766c0eea038446eb040cdab07f3cae82762f51b704c328b5ad6129e6e04434298cfffe9b1f1802fb306006745a2a27c126f839cf8d1f8eba21652425b744f47abc4aeac2d094d77254f1cc79ec3397358251399a267a858616dacd053018477b54c624b853fb3cabad7a63b34fcd28f819c0792b8a9ca1fd78fa91136532c21798856bfcc976ad09cd02525f41c8fe2357502b619210aeef3656eb27d710d2e2e50a812d271e9d25aa1d535367f6846130a411428a1d1ac5c4604ea21740990d0acd8051317564204c538187c90bd3f0f5e55c19d6ef359d891c40721768e0fda29af0faa0b20348fe6a74812da73f4d56def620370990f0a99a4d7f32f472258e10dde116d65a9db89014706b6c3cd3bec6207dfcf6249c4878366f58610e39f7db2e87665a5e2c2df5d8ef06c1032b9d15bc77f3019b4334a46f506a5fa8b94d4fde7f592ba476d5ee98ab6c0838e87631001a216e447c9a75a83da8b85d0e555940a20f2ced0135c1417598c0f21efd998564c2d7743c8c790e321d69ab33a9ba427b82a2c62110f54feb35935c772064be802382a0cb0987ca21f215048a4ea0cc82366664df336f30acc4ba2c0b1ebb6b26a447d251905879d5bd4aad4446fa218ca758dc8cd40195f8815b8d019019f917d3263cf4552e894fc3f63123a197473ef58b47256e6d57a2dbfd5362cace1f7057aed7a77d9a6fcea6bb5e0f600f31a83ac140411ee920153edc7f30010e73d114fb65e9204910ebed95a8588b5627fbca88c20facaa13c05f886a8083865a1367f277b7aa469c3b0644db41d8751c5cb2d329f00df6680fc65cde1962bd8331d540caa663ffa3aa4aa94d26e468572c8032b58465c83440ef5ab3eaa38522b4497cd4777113e9940ccd201f4621d63fee188bac658d1368e77a44d8242a1602af5fc0fbfc3748fa8bcf35c6f8b4c11641bee3f35405cd216b8f70b55cb773c173b9ffd24402d6ca58386d4f93948e0a67797c81a1a94dd30528f264e71d82e1e876e8a8a46361c50d5959faac019503ca5b9936123ce0fa18f322fda5e0626e5cfa5550a185050ba6ef44eec3a6d2b2e0f1a6e039f7899e306994ca12961348959b7ecab591624f0cd7eb768d1933ccd0828bdb4c8b41defbeb4b096aa0f25b83fa4a052eac990dd8c5d538088b92dd00552f5ed2b2e72c90182eec20b3cd417598c0f617967424e6e5e0c836d68357d50a48fb63e325996d66dfa0d1b70e16203b1c2e251c3580607cfc28cc56343a21c8d55e3265841e7b10eaf086ae46ff6b36f30427e38498c25d7168f799c87f0034fed71ac90857ec0dd691516f64380511ea8f1aadb67d547650c707ba3a60355e2b86b9a58fae30a2595143815670f66600c0555d932f6b89ff5ac8d007f4a1ca415d645500fc7c65e6f3fc115fc5739462449b7ec72a7bdeadc5dd1ced91f44ffa034af4f3795f386536797d79575e7fbc8912e7af731d562ae21ed186ca55a92e52f538927225e9008aac2972ac102627bf6201a40c2721b28271f94aa8a983f14effde20f8edaaeceaa50c410a59f50a21014f410b0f9a67d371ecc0bce26adff0d34712a5a9494af115c4fdb2915b31c124118ea29703f98abe92a69147e41e150ce7519d44fd5094e9acc5e0040f19cd8c135b5075c63572086d6c483299d05aadd8aa09a830e1fab37341a02c7735446701762730176e34b2052ec997763565b2fa8e0ae4df344d7dc4af2014a2c5c2a003f4eb0a7f49368647843be1f64e7897a2b6741db79a2f7ef141903c49978c4742f7ae2e874ab7ad15a98f21bc6f37d87cd879ab52e9ffaaf5d0af8732bba559481f4dd102a61e5941d348d3b9ffbea406d440b6f60809be705832ab15d77016910886b6cbf869b405daf68df4509efd9bebd713541f4a00e7c0d8900baa1f669fbf333118a9ea709dd42420580e8c8e13576041eb61a12d58d428369d2ff73924a7f7a6c2a21cee3724a5f1dd4b6f63fdfb37048ec8f3e9cf78b438344052e9783956ac3239a6c46a93d19511c7d7ae7c86958229142b37016fb712c0e6437715654c4507cadd4dc00eaebb87f1216efdb186422e0b7ec10e44688c62cf97a9b8f326d4809a8b45173ca9ccc81ed2e0244defe75209c36ab0ce48fbe902488b57f73ecdfe2f09ea49e6def608247e3d82f88321bdcdf6f48c77740ac91460a376fbc653a15aa9d1c9a82ceed9031de4dd0620dbb309909594a4af804ae36feb1608905b1c0e2fa5c230376c660cb58edc4a0e052c21aae4b4aac76d380f525689d49a51cff5dffefe28ab45d7d71d24929138d2dbc27dca23324779319b29a4faafd334c19fc240cad297447b2e07662a268fca141143dc8ff9ad52704a2a45926bf5c216c5b26fac5ae898e2d038814c84ff5372d7b6cc9a61a26a01a5acd58de0628538f741bb34cc11a500c6bf25c18de8e0ad6df1d4e2288a7438eaa9ec971eb2bd716f23cd5d97d732f50a4137c9748102e55526bce55233cbc714a10d0de36e41fb5987debf164c814fb10dcc40fa0067eabeac6f23993ef6a14e6d28621ca706e2093ed53de8928b892622db3694f762124f6f246768a298c87171379c1f3a69a8b43c2e52425aa5eb97c721ff2ebac5dfc826243ff994b556bda97b216ffe5bd3d6a4c03775e434777fe3da7b6ae9fd13e67f40ff46788b0c404c7ae72c189c61dde35a836880943466f9fe5b369fbbeae7d04e143d10faa1537e08e4ddac747bd50d4836f13fd27fc5437d94db84e9548fa02c2ca0208a03c11b7138f710a4f7730dee2d7c615caa22bfe6a49053755abbc61ee8af5880c0d8270d5de40a218b17285f54e234b5ec9ca19836d15ea0fba200dc4f14a86d9c2771b0afb3bf0f175d935ac604e4ec7ae792740523c5fe941bd812610077e3a7e853d09184b5b40e1421788cedafd4b2d85456032488385945a26f574406c20ff59f9732e236826120831ce0e309de3ef42b2a4f6df7363dd467a4af83591c22a2891b435d96a38c1f40ad659f931d4a09101714e91ddfc7c8ea0c32699de3e87683e9617f3a3021e5dd9b21cb6064cc28d798e0cede66a257a07cb4bea84987e658ea917b0e7ce461f6877dc1b6fe972e73e96db4a6c445c91bdecb92280b3aec871106cb47189980a45c0fb31344dd988f656464643822ca0de350c4c3a614828625043af381fb0c32806b301216a3f3aa50617d004d5ec51527e55446ddd0b553bd78d69467d11a2aea64323a7ead19b01bf2350e2fc892630e0a5138003bd0ab5a1e0fd763c307b3bd7d1e9a3e8eaef7313bf41ab5696a3c7f1effe18d20d7c478b95f5aa5700fadc9b3db372afe90ec20b249f9e3c2d159cd4c7e7f6850290289e19e19b7d7285736ae48043604fcf20865236ba7909ed697918acc2d4bca5035dfdd2e0881b75e0d68bc2c1f1971ca832784b255ce8cf9a72a670019663c57c9a3d173a3b80e445fe75632ae1b549f8287b33c9819fdf63062117e0402482c54c305899accca720f894c1a5bd243af5741dc8b94cb85e6f8bc4894f80032d17e6f6354fc1c85d022afa633f1b704a126f91945c003ce2ec44e700e6d4fd0734b0f60db460f6cead3069a0be84ea4cc746d6e8cdf0852511a61134816824fb9f5496b4970ca7d55ab15d4bf671ce78d6712e7113e2b0c327536c7edd227156c29eb57983e0e9c060af807e444beb2ad72438b682f2b43b0f033b51850043c9fbdebf7ec6f91b25b43c7b5e58d6939589d356346fc76fe64e93b07c3a4b2ae139e0887bfc36aefd07ba430010f9a3196bf0764d047ca19032cbcd82d0045780bede7d6cbd0350a9ff5a04f4a0203d03fdac86712ca72b6bf5aaecfa39f32132bb0c176512eda521678c3721b1d044ead9613330fb21e7f7dfda6763ea981cf2c493db30d9248dc58e22e75b9676878c9ce5b9a2ba67e726acebf0c8b795c3c8953e25c50a2858b59cfc4a532624e75076c1be1cc919d691bcc7f9dffe4f238f505b0633c9b9ad608d92af53f4b7789d5f6e96aea1efff7a73edb38ffaf57158b45b724e842cfa0253325581b14742e54476aa3a47d780cccd5b290a507a5b1f10a97eefae8319e2216514915d328b6d2c49fd806cd642dda9af5c513de434062fcb3ca55ac2532cf9f70ccb2d6042f7db829f702d61588b491942565b69dd04b69840acd60fd25127048e50ae84df3be74a32fa03c464e5626b13f663e82c0512c73381b617d14fb9255a441b0bbde8043652df63f4daf97d6bdd6328ad84791b62b0e0d3414407f92c3c55a7755086e653b70357021d756a30a3395df4fae3e2cb1aafa1dd798e73a5d9f05d36ebccbe1d7d33b064a763dbc1bac64da68a261ece80383b86354ba87e88dec5a82e2f1dfe578df742e97a259941aa9b002aaa0855d3e2bf9c476a82a50963a806bdffa61a8ebcd4dfb56be5e04715a24250ea3cca5a90dc6e6ba3feb528ae666a254e4161586bf61669ba8e143cad9a0151cb9a131c84f444a91cab3d0b85719a51f0d218bf6533a2c87224b1e3cc48accd3a5f72cb2192113227f23579865035cff88f5b788ae53d8d4624b83410d7f6b80c4ec7064093cdd523ee6a5c591fe49445df2bfee2553417c41d10a347c887486bb35e047bee4b21488586ca0899c1f2cbfb8b14e95b79c350093988fd57f3050463434713458a6f68c954b51c434ceddbcaf5b84be21ba25688fc599a061a1bdd8fa511baec0d45ce0c8850d61a8c332d06df5289e3661603aa76813b77424d479160641bacfc419fb18619206f3a863764af1362ad0894c60d964bbc3824d838910ff0c27448117ea5d8875539420c00de01184c3aaeca8b12a9908ae21357d82bab6e5f755df7c5d12be13f4eb7f562e1de08053b2d5744c0ba3515099d3b5e3884c0f03d5bc56ccdcb8511a19e70da6c312023ac8456517f1c06411f29580a0cd502329ecd1a7308a316cff52fc920b1f50c2fcea82a21aa271a5dea8befbb6416ba3376ca2fa12bbe34136d9335b4e15cd26b78a61f2cf2292c3f6b8a2f0331705537f16723f4b4e2e83b1ea594a5032177926932d346a09dc6b32b5a91e919102e0d18f75b8a6b799a680c0e02d712099a2b4d624f4b935f364027678ab2de4dced236476961ac352fdec986e67018fc4de69c5ee363f35d25f7bf83b9ace77943c35bd5d6b0e32f552547452f1bbd4e29b69421dbc75159a57cc16a34902a1d53ead827a24a5c20c130c6b222b91e42b223b3541a310709da563183c3dcfc9c8f840cae29e4a155b18f7f48371d1bb3b5b768f6338f378f6c663b347d1137234f33b4a04502a43fe56f3664d6d86f8eeba156c0b9f6fd987baff62f305f783f4d05c5a626a72960973b11d420d7acc2ce491f0f7d50bc48fff50c386fd953ab1017a679e4ed0da5974e6c15addae85530bec2de92690c728515be9746edc82dbb92a7fe438e2f50c688525ca7520270b17d6951417e8a3a1765f51df93f4562eed022ad36618ea314926bd10832839b46f959c4de808f4316ef0c655cee518f5b2a665ce53e4f858a218c08a6e3e6e6be8e188f6cfff560480eaae6b143451ebb122a6dfa98bd438858a4a32a07f340bc42324fb5e9c87b650fd2e19f9fb8ecd92653a6ca0bf272d8b3cc4577314936dd3c5feece140e52655899428581d1235a3bcfb67cb93e447d5e6917b1faf00cbab18b44d385aeeca2192047fa463b8cd82c125d21e599c4c70764cedfc8b2400f8e3b9b64afa9dfbfbf8001977776c7b5ec116f6ae81a1bb2e05b03e1f75c79313d412e9e79a862f4cdea7ac2c855395eb334e5a00a02bce94fdd2a4f39211c924c051efe72a6151b6fb2ae52594dcea3c90d0c0f9a733bf1c4634ea9898c947c0ba6fc7481250c9dc1b71f90f89ca56a12eaea4bca1d046435d83133205504c036233468206467927b7967e8a57f33fdfa6e0dbfb6619e9702dfb20d6c41382b392963c53d1cd07ae3e3f5ec56414e105557248edc64ee785f658f5d3152fd7f8f589748c480bdc52b915ddf1eb2825980d213ac8bbab3dbd3abb52f78f4609286c0230f1a449a1712077558f3815f7a2854a211bbed700f3465666e1689f5f1d8793fcad02d26fcff82582624a9619a1b61c8a3cedaa317559075ae13596ae51ea1db25c3fd1e1a45bb4c0b6318ff928bb57c091e26faed108c235d8542c47fc13f8745a7a4ca1ef2798e4db3f78f8b449300b8bee186b977e723033b023dee63a0f858e685595df29e69f37c2de27b7fed69f67855a506584d2ccad613f3c7de1b649ecc3eda4af98927afc1f3d4b791e9e136c0e27565af161a21476dd38c06ac569fdd346e19f5680e03f7d9bf3c87ca6cce4bb5e4a9616b3551937e6af51b4f93061f43244877d03ed3113f7e4249c0e1a3778a76a916328f24ec4cbbf98488e369178e86a1d162c6b35e3b0c77107e7a761d147dfdd4877f13c2840b10a0ac6c496a6cfaf23f1ceb44de84d951a078c35e8ccf0c73de4a77fcdfd97de4d733c792866cd7710a750ec7586b57d3e86cb4310f7cd548237ed577d6241ce2817bf7bfe50e33a14b0b3c1c168dca4143e5fae1117a354d06c21b07d2e439207f191ac9ffcb218d83bcbbf70c876c54d9a18ddc2bf61e30ca04113321c9f3304d54913e093909474bf2914792b8b55224d290db0b31a0a5d7b3bf702c1626114e794e34f59a2c988a5debc8f4e8540cae869bf1e7fca4fafbc690e4711ff7e5b82eedf282700f60cd00891a9ae4024eb4b0f1ee4be18373efcaca07fabf3bb7e2c3ef6ace9fe80ab7c56b58b940bfead14e79f1515af00b942307866d82e89748deb01bf84dab9f237cc3a2829635b3fef1bf8735164915f9be45ad0a1ed657c904073c74cc0da1733b682b0994fb44f7b018f990cb497410ec95b83858f05f3ba7907c217e49f2eebe8b86493296d0765a76198590cd78a71664c9fff26a732b9455bb5d3b520091421f8f4a517d9b14ff7485eb8696fe820491d09014ec7114472ad4c1198ac4fa16a5208942f8504b668c641ad19e14b895b22f449ee19f8acfb011091a964ce0a8e880227f4774b3b1e0ba512a23ce44d55534bede3846515f91454761520c5c8062500da6d511b986b3a3178c4e9160d155924f9998b2b8f3aac3844b9c1f38fbb1cde4841075381f7369fe74fcbf2a71fbf4f080d93531cb33c52d30a0c498e47d6e2fa348e118a9f10d379525a5e231c0313894630f6ba6f7fc76756aed2e4fb92838ed78e8c3cd136aac03fe9a359024d299e58c1085b7210e747e170e4484f9283aa029d839ee46ef29881981d5601cf2fc5faf5a1db8b170b912531a159539d9218a8c938797218ee20fa6ec79b154206d940e0f6f81b2bfb7ed6f584494b4687e8c89a03910821d20ec5615c149292198060146f163e4cb89c677db8629337b96eade50046b8308596964c30d6bec96c3ed4096b863ec8ad6154001077ced372a5d460bb8068cc19ebe4d8901764c0c90c4ac6ae037a58c152c00396db2c34d17f3275bd03508c5dc9e37eb4c3acf454b72d61fd6f28323e4cc2cb16038cd9f180773e8d345479ab7c922bfe59237698e616d01b69a06920cc9ecddfe07db12de3ee32bd90007a4650414d39aa64be35b24a4194924163ba18c206e6901d148a68d2a86481095612149d65adc2a5f2190c24ae430cc196902b11d62993f720ad0ab19ba865e96a674045b57c75b2a5ed963d4e1a82bef834482b7b7164a7bd1bb0f21cb2f4cbb23395740c61f7b006268d79399be29ff8b6864149874b414777fbe368a36495e85c7f6cfc5e4bb5c573bdebd830e9df4494098771c3df400ee5b5f857434a1869c145723dcf0c66fb8b95de41edc10b5e8c4856997cc49fec25aeeb4f74b9ae7dcc887c199d26795dc940d1fde95324961ebd38e2b5619fd5ad392ad37e89a8655d54638202923e088d6b64790b5471d0ffda61aa2ae2747691c77259d1a4a5d74a18fa9e3acbc6072651a599a520553d7d7270634e83a9eba6b96a8724fc2f4c10d7fea381d3d62b223319b65efb540a4ce03df0ee8087bf04af25710c38e4aa1340570c146962e0f3ca8bb2a5081154dd5543228c10fba99dc72b37f434eee6ef8d0bb8a62bac06d9f500cf553523bde3666671e3688aac3ce38b33230f9c1f54df4bf502542f10f1113df84b117b9eb13afbf9568b23dd06d702975a880f2b870f12192dec6c8d56841d4492f24985eca4a5bed8313c693762824523a92a3d7a8c5b024aea16fcc013e0e05e9903f403989028bd993590681e10068fe52dcf60fd5b01a63307854d54cc57bc6f5b27d1c1b9701c8125c028e54333c11ca04dec042c16ac85a04ddb1a9b506c819b0679920c8f13fda042c1ad4c78a1e77fb8c98063815379286a485ed18c1221e14fa20f7599c4d9f3be9f5631cd94615559c00daa7759573b8551e30a64045b22d23a09827ca0262fb8af2f4a82fd1533184b0d153587e8160206c96bcd6b7b042a24f8c073eac86ac4b84a1f49ea4f4f10d5fa630df2a8fd5191941c5c506b55379137b1ea2937f973ec8aa3b67694f2642eaea0b929889ed9c0999841bbdff5f239326962d4b27f5b8d06959ccac29d367153a2abe3841b5bb0c564353e612e5565d15fd5da2fe09410455787c459d9fec92e3f302f0fca0802fdcd2cae81af41be336ebc1094cc1acebb75dfdffb6ac20fb5ff111e0af335236b81e5621ed45b1f065f66905ca8c077d635d1a3a7654f08fa7204fff6f9dc79903acdcf1d7c262ef34ae08aaabbeaaa5741f1f8860929e2bfb70a0de7a297782e19fb811acd54c9d72daa74f0c78210cb632264a07202100ef5900c352f2de4c03bb4c7e70f53689b0bedb29cb8440d2139bd880ea15d0752282696f15d9a3092d78b57f08c3df2ca4a6a05ac65a866b7ca41b23f21ae8508c2e693098a6049e383df2578916b21431b969614a30d82d08c71bab9e507bb779d45ce1451a04f8981ca0bc033f0bba2f6dd45cb8bab630b2702e839d05504c272d9ca3904118c00214696f47a98588b71a517b99787c3b253b46f08ca7da10a0bf092bb724c095107c15ca772e6d3a9c5f77e31d48584909218a1b1e80021d724f21ace72f911df9722c3c2294748b4345fd0b0c1798d980429014afef563c07c953570b14a8c1fdae0865ace4fdfae1cd666978ef243ea186e0a4907600e0eae91f1d18b374880de57c6e5d97af899b81d8b06070adab07da1923dc880558dbb60028cfd252e4e6cb12031835bfb1f457d3fbe207b7a74ab487fded86f11bbd0f729d62c2b7c5500aa0bdb30a406d4fc3d4659499bb8d61427923aa1ee0469c07962e3680af083484b06ba1fd1c96896bd0a6e13dfdc0848adb695ca77cb0c67e1ad26864546f8d9eb9c6dd4d6a4466ffa98c46fe4a5664f812eb57aa649ae411be1abec23b3aeee3a936ccdbd083cea2e7dd6b4759185f0a5c8c2a3634e987f44052230f2d4b2c601847ef47a4eaaf918d673b553360a00c205f8c1313b280ea76ee9690f0ef7edc5674ed8f821844fcf368e601836dc995726208b48c08d2a83b6c0dbca1445cc7a9e09cf2f46005e556a8aa02d12034a966407a7f07ee3fff087f07d518434208ac3d045d64ed568cd678c9d9781e72cef6d3d7b96e127e399e10e0d854f6d098429e3f5b774ecc4436a515b4ef4b386705888e862945d540919ab42cbc95cd4f00069233e3946b344e1f6acd929cd00a131267d4522ab315c26930f8a01c534203de3d416bb0100afcc30a1249785dbb2d0444b628aee20961f0fc3f4d8502f913b1799b1a4e6056f81478e1d5050e9579c2e56ab964f68d3a21238091e2a58d30cbedfc1edc744cf5e9de36ae6fe7f0e032fb9ecb4ba1a0218e7b963f178dec91e2d023b9522bf0d5bede8c87ff11dc3ec8baba3924be4141f891ddc7f6a11796a56892a37e2fdfbbe1bb7a05c40751f2a4696774d212e637de1c65bc142b4e82601c5de3c44cd65acfb15f7e9a2e993e560db8cde9a6185926b808f36a7341286e6d5393ae509c8e7609b9ffbee244af804ef71fcb66c53fdf6dd9eb59cf1a2cadc394e855443622bc0927475cbd7e2fbf6ba17c2712da1e6f9918575cc69816148e5c0cd4683d3ffed26eb98dc5036057422057004c0800de554d1d215e23abd22a5257829918ef7e8972ec265a00f78580ef6655db6e1da8743b9743632b8aebc483ed8ec0c109ca13b05263f151d5eceb6d2283bbd783f8f597a562262e70bc0bcc17d8d1c6a55c56de223b02d84736db8790b144a0471be800d2039a12df95de8bdf2402757ff70db91d74dbf8a5845a8bb13b50eb3eee017793fc2ba808ab9fb0aae42665bdc3c1172350d19004915eaa9045387c87967682ed04c4cc81b158ae0efc688453db34ce04e0101eee7d96fcb05e897ceab9966a11544f8d88e90e0992881b8ce7995175953b46fb33944ab8ad2ce04b7250014f247c641b78f819ac3c9312a21c186b23bf0d93b19c040518eefa41dc7279183826d1f6d16eae03f403a6760b68ddff2dc859b3bd84f6c4dba8d9155c3da9e9d5193bbc2456c1da58fab2ab36bc7b008213466e34cecae6371ee02fcdf498c1a57d62d82d82bc3b606085c5f86ef0e747185f41f5a1fe6057995b3d3139d0bc68d8cf8064ad09d0415ecc1ccd5224d2c564c79f896ca0eb051816bd0bb9589db9ad1247986978dd6818141763f40964b71a154ba7e3f1644684357f816d186a3e539dfac9b3404918220841831ddf22a9797d94fa497441b3e9f96602ee90d4c2f282b3a32bcdb438dbd3d4e3775917014bee14ccef425d0d0317074b26cb606d241d78dadc963907d9f51d0ff39ca6a073dbaa72f9fc8e34b1336d6e45d6eff64f67227916c6652ec75610b069d667f5bc646c3a8d6bc4d12ad69b1796417e7d91db88f4ee390eaad11cda231f6806af643224c60ab2334d51cf848af6acd59aa349196eee6d1a56308047fc6851971306ac3aef58a5e23d67e517e171b740c2490ea4637256b4d4df846bf0a09280d9e9c81ee772c147530d90f354985e4ef5feafa9ca0907ce2c158da9d9acaa50a6361665de31ca6e346efe6b69e48638535e6bc21a2a70c0f880ed23d6214da0a79e905a7fc52abcd86394543951c21d3cf3f652f85349df0e579d8d8b1b54840134df416d26bc306728f61a6d6a63e9923baeca7e031a70ef1c6265a562f24b9ed2b8b3e2f0127ff2ea8baf19c8f630cf3bedad4eb01a291d7af7678b0548a06755478884393c8eaa15543ce9d09d74462f358b8c828631ffe8252dcfef60e5adaee242d0c84243c4382c19cce3e4ed17e6e55ad906a6fc5e29123d9e4a2bd82a3ed221df2f5867eb0bdb526fd4e072b1bf4762e04b918708e1186b3a223723625bf837f7c41f6c7cbdaad844a0deaaa33fef2c74a3befb6566031da42b8ee5d63716f5336adedc53967809c385e07a9234751bb8000cea819fc2aed8c2a87ef853ec880d4cea7bfc19734c48adab738818c1987c38a6dd17c1c1934539620d562368c2c5f285e020588726348256f0a9c3cf2b84b1debae955a45d50af0b18ead1be91d228fade73180670887aeb66260d09ae9670902c4066f31b916b40cfaa52bd5d9274f77cf40d394ba7755befc586bb05aaba596447edf4e58ca99b54338484fa6e1761be09e19a4490c62c8885dd4095aa622372741d8767fe2b7b53e8018b09b49e4cc93b6c07faa8acdc27284a90ba7b2bb1162e7440190928d8248c23015e16b7600d56de7d3074a0cc2f2b4265faa91ba5d8eb0785914e8ab1e0b4b9c1c91e10d0426b2080e4628a2466ebe2b3890e14a6d0ecd9bb14c647bb6f70a09a1864c916a6e862b3f759267afb6f6a9639c1cb5981eb7770a646bd34d1c10616ecd6b1dd3420bdf2e5e07a05d7c15609488013a0335017669ef433b8f7ba556b9127cdf7e5ccae2b1ca8316f3e64d3c2116dfa649578080a51a7e915ff2aa06efa77fd0f4f00ec22cf8860c76a454bc16177a28fda735b3d3b9290beeba32fd663d043deae32c5ba8195c1c884d1f8700ddb1062e3d912a3d2ac8267d66c181c7e6fe665760b5142babf6c66026aa0592146022a21e1803a11b993541d74e98cf92cee85166946e5de2f4d8788da62094f881ba0d0721a9531988958557550529d979a5d3041a53d37a0d734a805532f7bd7ee190dff9cf361798e166a52cd1632fd06f2fb99369a96caa7d87e80d5917f36b9bde66ff458ae4bd7017fabdcf497aab457e9d9adfadd6140f518ee5e22ca634d597823a7547377f836356045886d0873834da805ba406a04706344b97ab5f5d4429e8e8a9ba8e101d8b2d1212447342badec09c8d12282daafcbef32b14c34af472158f96b35ddc60aa0e9e4436521b1bbcd6a4e9157cfc4aa9e32ca007224c8a8306a320b37c74e8e71babf156b5aa7145c438af1942ef4c1ecef4991dc78cc14a93b295a75abbbe4d394be4fa1543f71f9a7f0e2d4d98a036a4a0f54284541d96f28412151722207df04694d777dce93256b231d91de95e3ff562fc1cb8f0cae7af586a3e53dd1398aa8d51ad385d8900a684d4501aaf12ae3696b94100513cc46a5229f84a3f34b2e22fa2f7bdf51a8aa292b86a4dd1d91148baceefe7a9c02b7696052832b2e23912d8ff7457f9eeff6e5d17fc5c9df154ca0d2bc801e5a69573ccf61653c2fa111a07118ac14e0caa707cdb7416d944e59844d1c41199e4d46b02e09930dd5c0d9a7cb7b6488c816a8af1ac4076e11a9ebf82fc9e5d8fc1be1f723887f081c56aa508d996daa61c066f3465ae64130572b1ee9a7faa091b6b2ec2600c95a3a8c0c55b3892f1ef567d9fd8bce9cf753e35af6b64c9ffa12e9edb80af921cb56047087c7d61c19ccf1b7c763801cdbf9cac29c0bd6413f1189c446de317695b89f637ad13f6c8e369eac181099b3850afa2f07c854ede60df4a393c22833b9f1e34c094a6b8eeaba3a109fda7525632c3fda713fcf9d8e0e853e9d33b48e8fe64bb888a3d7f20c7c13019f5997f5f80be74e84f83538504570e7a78e74aa5f9f423eb8d70c93dcced447dc64eeb3d74ea94838ed384b6d37df5be9c5f3a58e8dc2f7e8a2bcbca9fbbd8ad9cb422d6f22194a3c928b0ae8fb2893b47848bf5e9330a037efb72109c65a08e65e8eea1962a2971f00d00fb41b1d185749f67f9548735797f9d5844101afe7960019414643dbd2ed946649de44f3d40c496fa9a5e2b57caf47442694b4cdf73df2a75b43bd4ce862eb7c39a48ee11b6d2b2c0675d1bd5444bdd8ad09b455052e2d840c0d52201e594d077568dab518de80654bf9d29b55e281e45a0ccbaea68caa4c97e90950cc6de5fc1458fa600c0dfb64be5bdef45dbaea1d72ad7317f90b3c323ebf6e851b10eea732504bb2f7eeb6e5de5bca9452d10ce60cce0cad4804f76ef17c8109911369224c25575dd4228ac20a3dd6798c780d5f2fe22cc92d8bac3f134d1487a6103aada089e42bda788ebf878169c8f6c1a18cc10cf6f64e13bd08d9db442db0fe4d7443734322eec75d54708cffe4be7b127843d26fa0a54da389d80737b9caf38d686302411063fc25830d12b9ac9482bd4dd454c4146d215cef010eac5f9f81f50ebcde024f81f5be038ef9db042b633d70183301dbb707cb2fc15b01db37037788eda883adb839f43f90f57f59d25489cfc974588c46084dca314c3e567f7890f597d00be0ef6d81decfe4bf84ed694107374b48a9d314fa2ef308f4a652ae2570449c30bd129fe3e2f9e5e9fcaeacd113df3473538ee37a87689691b0b4f6b3471fc751cc271c273a29382753fa384e4ff34f15d516f374e69baa8b4abd00cedc09bc944d7f99721ded276b64741a3e8868cb8f7a8e2bf590bf064f7f42797872d353afe1bffd9d87ce75a5d44337d54b632f9f4ea6d3e97491b05c3b0814c8ed03f75c959c404e028a3b71dc09c53daa8ee8739a4683c80cfbd30f59fe1f1bde7f25d6ff655297f99f5763fb539f409a8aaa2795d3ab5c69398e034192976364f9f36cb43c9d763edbeef73c9df6e73813c771dce94dd547895538eef426138b3fe138f7a71b84e54bcf72fbc79efef41cf7270ef461fad2f7cb06bf214290e0afff04066920aefae81e09cba813c7cfdd5e622ff7df2976cf414eff3df7b7f40ddefeb1df73aa4f7da3fefe6041813e4cb704a29e6bd58d6df07bee9e2b87e2bc747a06eb650106716b3a81aad2a3fec3c1dfcfa83f7d2b691afd27b0c54fdb9657f16c9cba2f9d502c5a80dc95f6e3388e053d714fe2be21cb994aa5cad66432994ca5ced44aec077eef52bd5755d2a7eacaab54d4b3909ab9559effb20ae8e3f4a6e76277dbaedcdc1f6c83f747c7a08fd3af7cff952b8fc335c0d45f026f5501591ef5df7f6c7ad40de22baa57492b757ad89f022f8dfdde8709bcbd7941749619bc2514eaa7a7833a619625b32c95ede974c2ec495a9695ff39bf93d034da4e1ab7f9f9fd63b9f6beff7eecf7241289e378749fea8ae9717c88ed206e57c04e42fbf0bd4a2dd52b735fecd77da5ffd9d07c3da0f139f0d264daf4fa31f025f430099b1668fc3b6d100b0f7fc2542a89f577496541a4e502f86f2fca1fb15855fdb24117fb292ad029b727687c7635bcd81b3dbe7084995df33ddbc1630db4a7edd7b18307b37cec390ed27a681a0740a08387058610b223a5575a5673e98d9e15e8e0b1e30bf4de4c09cabcb07cb1fecf35a914d5f1629999f6f7e8e6211d444b2ceb0ad40823d65f084f13c7c905eadf554834b98076c431c26b7a3aa1de3cce04e7b1bcda40449cc0de3be2888def4e3c9deb41defeb187405589cfe99743b1f2e77392eb6ddbb86de39c0479774d3713ae815eb6b9cb7d07369087fd6a17f7b75df17d7060bfc0088e6affe6037adbf5f27e35d8af2be5c4be9da0d877bfdaf58522ed84ae2c91ed8722c4defe2cf316208406148bfd5a35c24396d730c243af31031726647b674e178dace91191c5716935697518d0ae19509c12d83b94d4a99d5407b9fa8933d05011e79ea2891a8b37bce672511701a2e58aae6c3f05593991ae6c04595e94ae2cdbf84f57edeaa096edea66718e4a01d6e335572b5a02dbf11a1ecc08b6339f5fee28c83ab6a34d99ab3644a1572beaa915794ddbc68eb8cdf41a1e199171655eb422257627b44becc57666112d89db68453273ce24f6623baec4b23c0627b6e3a1633cd8121e7a74a01c4e61a71127f6623b5ad5a0685368431e46d1883421ad68aeb429d88e5644447fe45190c6c489f8b4ca8fa00c82b7bb47da0d050e7b7ee9d394134f2afc02914f790dc7d59449bb54ec4e3c317aec829d53ac7fc72e1a6965656f5da1066368ea0222b4796a6896bf651028f5281e72f1353f3ef19a1b5bdd4f845e51e0a1c809477106796314660882bdb1880846a4027be5ec96d7f412ec8d4b7aa24d9c31f630185734a03f76fced1de63a670f73ef30dba464b88cbd1cf4d2af659f8a124cfda57f5f1dc81ec329c9813c02d9b318145f2f29af2050e61aa7709bf88a31fe2ff6c65788812f300a7d815e0e8ad2fb52d0c4339d8b4107b17a7aa218e9a07ed25374500fbbac7fd4b4679025c15ea248f49848c463be22f4764fb3d735ccd814ec575e13d4414d2c0104ef2258f7eee119ff0e9a3d086a9e1ed1a67b7a7a847a7a80e8608fe33adad7e8235526912d0f95fc78e8355c42fa740f1070c0c36f200f4318d0cb41e10e0b449b8632a708a7bf8d57085bc9f1cc29ec67590a0bc5d8950320f0908540107b700004cddd91a3120f7f26ed58a8dbdd650079e8a1d7f437141c17ede612a87c0195ef537ab8805e1612d25f37281cdf6963639633ce324fbe16fd330c6430ebe8046e02cf2f9723424da0f6042a1127ba9fc00b7162e377cb969dc3854cb13d81aac4e74c1f2f808f457dac5c123b9ff3e9e3359e4a51da1deb9db1b37bb23cbc32d3c76b1a0c5b46a1d327de49637c17ccb3036fca4e1f39594678389fe3a64ffc79c4c3eee57331fe6475b588480410cd76e0f59e3e1023ac8feefb251b28111ed8bdfc0e0c122d055538a6ed7eda0e2c22da6e70bebf3c12c4c3f9d3a7fbdb2fc1c992d367b286f070fe690e74fa1c993e2c6f8e2f3c3351cfd52b1ff5eee96cdf4e5056fc98c46e7dc4437716d27311bb7d5cf906af8c29d878001b0b60e3cfb00dd67ae119d1c60f598667741f7d6c7caef4ecb14af5888d2f3f62121b1fb561ad89b53cacd5b18c3c6ca5c7f4f71c573c471bd5c71aca30cbafa877baee64b1c41e96aa22bdb42470f4bdf400e33b5a6f4c62298f0fc713593afa794ab7b7fa05f51cc733230f14f662ad9f6893cd49699091d710c714a09c05271cb130bf3d27254b51555510af62400e06bc4e031ec783a8381ef0fdaaaadaf154f5ece938e0d90352a3adea7582781ce7847eb81f8efb69c539299d3eb116c7c315e119673dfb021c87df70b1537b9a2c8f01788e3202f8907593094d6a5d52d665352d0b6a5978cab6a0b6c5b42db41629eb825a17d3feb3dffcb3a7eccfd54cb68aab07541f0f7808fc8e9a4388efe724b0e3ef940058c3ad0422f0b3f5136db82c3c618af59f49a61297d77016a040c4fa4f20b7f9d56ac5448eff64e235cce3fde713286e3381f797400476d407e461f5803cb82050afca7bff803a44fdf085a83e86a81fe363defb2f092abfffce205ef59713b2fea725e8f697fb69a2faa716d0ed75d4d114a3282307d4d1146ec511e176582b0b60e160adfc8d4c5bb1bc0d570d978e0b08f04ed22b00bc94f439422c6f572c8f03b27c02349726141f01ac038097fec0a201de94015c2d7f03ded9f23660cbd78042d3d59aab6833595e006fd1d010e06d8ba6e583b70200de3903de290300f05bb1872b607ecb82138aec002c67c1094a6c7b2a7054d423077a230fbfed17bf81cfa312c978a090033b81ba048ae5eac5b44004662fc7635fec9df56e44ee766403b2fe2cf56e538c88dcd1911190d0dd567763dded6e42a3d5a8aa72c4f4c78057e5ebb30dab2a878a8f065552e5d9d2dbfd8b8741a1580d3c78e204db35f82326b13d7c7b39580d3c78b2c476e00f19db03eaa6d2c850652f6d361ad5ba4d1635d16eaec8ca87fd78e898120f9d85c743ff76b056eb3f1550eea70585a79299c47fae0c8d0cdb2fbfb9b0b859a14409bae2afb7262bdac4391f74d136f2f0b448e2e2a1cb209e2596c5603908064c6c7b9f0455f9adced764d180def8a7bf58ebe37b355caaeabbed0d9751b9d81591f57c7dcc97574602a8fc58b9251f112aff723fd67f3897877ee7d39fac0d05b27a345992dee9537fdce8acf854f556253da5cf71a18794feedff5e05daa0555563f4de7bcf75df9503af8cedef643f4e8c3891a5a54a4b84b4a37a3d19cbf5805c917a85d8953f551f2670f46cbdf5d3fdcafcb6fda5ca4d1605a70fadf388873e5958eb875be235de93c0d8e3a125713fd1865d9ccb0363110fca6c75c7c9eaba5884ab9167f4913581eff7a6402fc763fdbd207a278be57d816e55269432b2a4ec9f40e0293259b3c5038ce09d3f76b22600f69c024714016f8092bf943ab1fea60f65c89024e562e43ed61f9ded5e3cfcfeca273d27a594db7f55957ddbef8504be44195ffb8458f921e96fff8b87de4fc289dd7d3bfb3d8ddfe3c4afcae73afa2f61fcd1d90e4c7968a21e7a330102bdcf92c6797400032b3be80674764fd3cda39d8189f59758cab3f81a68f2d0b128d35e2548848c3309d469220cb8cee1972b836c4bd1b42ccbc02efa619aa2699ac65ccafeca9524caa2c0235772a765fde5125e238b780d8b5dfe3289bffc914bdc336591a8c86b6e1c8a52e214afc9a4d080285e63ca9ce8c425d1884f296a9fc28984ba6824452351f439e2a189271ae9e8df2581244253ef71c8439597ab15273dc712c586ac0b751e7a0612a1fc52c1ba52855c0aebc625d63f32711bdf71e1f1155dd6a38f11eed7dea7c455f6ceddd823572e14893cc6df57b46001faa45cc09b52012f5d018302401ec617c7178cda1fc387a931ef432dc0c71831a674b95c8e19691ffc69c2f053726808a35fd6b5173f53b26a8c359330e83dbfe939ae9992ccc7c3561229e8cd7c3e92f63393348de9d33ef8e935f06247301fcedbe311e3654055bf10999ff900647fb51f2c89c71c993ef34e9f0872a61e7a67cbd44399d4a1a7007516c5986db525e1197fe9021f74812e702ef1f9e3a192a197f7c78c348dec877df07f7939f422875ee4d0cbcba197bff4e5efcc4edcd6e2196dfd25263189c9c75a3c23c98fc7f84f15d77e54b6a2680380f71fadbc6624e31d63a15028d4df9445fda5f639dac8005104a07300604a002073cc0800decacacaca4ad7751d17bbdf5a3ce314d4279079269ebc184f5da3754fc763f9aed152ce71cf06cbcb5ec598d3e94d2f4435f347cc7ce7c8cc54d27b4ed71ca47f000dc0b327448c9779163f656a936aef78333c59cb6b4ea00f158eef6d830cc6cf7cb224a36f90e38af40c5e8f044e9e19bd096ccacf5e0c7a794d04694817fbe02d5d55d8e629380a4b612800689e325bad16bb0c50d906001f5303f397837cf8cbaf2c00537302c7f8df15da4f8c7139d43ef8c3303d176b7c45a0f837ba705cee340d39b4235dc02b6054e6f0ca974be4b7666bb6666bb65cde65de5f7302db4817708cbf0c28e774c97e582f5ebc78f1dfa26a51b5a8541c57f93dd426c233a3f7a1ea8831a387a93c3c1c3d176154168a361698f2525251e848c8e431a3d173ed3c1c7dd7c9332317b9a4696cecc3e847e1c88e46a3d12fb1b2b238894142d1666b798c3feaefa434251477a24d4c613be1953b51caff407fb112a6c6e8784a96654273c8ca969616e619f952eb4c75daccebe71ff1e4d0aaf0021cb82c7fcd63b71a833cf41d21627c74c2eedf07c6e626f4624147301f2c894ff4e1dae2b9c6232daa8b97b5c462b688e88ab576aef4ef30163b01eb65272d5bcb642fc6c29c78175ffa1a5b4a5c5ed3a6d731bd49b6ecef69214001f037b67ca4fc213d2fc61df0ca3791ba3f1ef179cf7bae85ff225114bfe71373efa8b09527678ad1ee51f3519f8d7e45fb16f5f4ccaf612cac8529c192c8e76a7a12e91b547def7de00e4f3ef7931e27b6c4efdbc3219f2920f3315ee58191ff5319b160e6d14b093e8bd133e863a43df78e6510d45ee584630535515256547ce9a15072a21e43a12286ea0e05768f7528f0be4b0dd216d5a8c7502e8fa2ffc3fc7d1f3d1dfa1c479b186f7ace64da11e3c1eb811e0562bcf3c498d17bf53381b7776c5c79148801f24e8c89207d15067dd097f4631ce7c7f17ef6faf4527ed7ebedc41d1b4ddff271bf3cbdec97a4e79cf34e0443625499a21d32608c6f8f5ed3abdeab1789184710d9abf226d2ab90dad2d3633f7ac716d1f6f4286a55f50a19b22adf522f124556e5f45cd76d5ef7b4b6e54c2695bf186bf28ccae3b88e49e5f400781cf76af613638c1b29fbe119eeb65b5ec36d423d76848b1123468c18316464bc1af1e5af68f5cfe95554586ad7fe5d049e6184a6c126d4fb64208efb0af4f6c86b992dc95c199087d98f8fc592587f54650f6794d9aae16d31254d548c07ed83fff4c192602d0f7c51ceb9f1d051dd15a6d8b1d2a23c1c9208450880cad3f9b616cf48290910944409e6620c080bc2b8b796d7dc56b22de916cfc0ac9d2dafe12814e109379a6bc5af2db901edbfdacfa86a3fdb92ada5fd78c8da6aafecd68a36ddea56ab5bda12af69ccc346cce2995310bded2deb4abca6ff76bf861dc17c30568cbf184b6efe2189f11c030c634c2bcc3614788db0a83755afded3ce8eed180f0ae99c18182b46ed68aad99f48df55e547f56248ac3fa36a9068558244ae776cf79c9743930219886c37eda97b19808f5f32b98def2b7635131d835ec1096caf421a8ef17785ccdf92edbb05e07ba6cad418558b6c6aaedac7ca4012c095b8d1889b368c3600008f30418c57a273627c8cf7e74b73b3c309150e6e888df1ecf110322427c6d318335baceeefd923919ebd1a23ebbdf7dff799abe87b12a9664be4dfecc7facf97b29f8875ec1eca745a791594a99a466dbfca4576a55ecce766f6ce5610cbd2e5354d22b594400adecc5e8c65efd69a9699b962b6bd6f623e49d081b162cc090bf46e3fbd2a3d8c3646c55831c62bb6c4c36efbf19a3b5b5b6b6b1db1fe9b128c85f9604a30d6d6b23eb3b855cca7624afc31104be2e10ce89dadadb5fd6c4a6440efdc5ab3d5b2fc02896e48e845b021c888f57726af2028afcf5c960906037afb15242553edd4a7e766e2040d7a618205694c5e2ff6d1600765d9c53e081c792f7f798d877dbfd8fba4737a569dbeedc5ec8fce7a74c796beb68e1f8d788c7678d82fecafbf4eeffde022db75d27addc77df169d589db7b55e31ec749ff7d4f557ec70e0f1db38df3c2aebf06c00a82d2432d65d551ba08e37e6549dc49e6e9989e56d2ca62efd2f5fe9c94be562f66ee57bf883831029d499017c09fbdefcae25d826896056659d4b62e2dafe33dcf50b121a2f24acc9c1468555451458e13fcfe3a4c5f7aae3dee5ba6e54a558687de83f4b837551a19487ac0a12ddfc241a627bc9a128332babf9f20d9f99c17209217e08b491d846cc932933a30b1edd9708b3514eb25afadc00d05cf5c815e76790dc65f7aec6f10cdcab8a1186326acf4a6522643661986d22cf6282f8756451555d0b494bee571bcc5961ec75bea8d879685e5b91631adf72bf5f4a6eaf23652af7a2e7a36b4cf5850efe40294655986c3c2a5f693da4e3c0c6a26a57a8a0285f912101e3af65d4bcf31c06bb0d29f9e3e77aa0cc0a156a0272e76a65a7fa5feab5417dfb5997818e4a193d3bbb703e65f8042542cfec5770e8ce7ba4b7efa1bafb96d398a09fc1b6d0b175fbfbf9946bbda07ffd62cbf890694696e5eaea6d14060bbb0154f9c74508bda4c805ade5bbec1eb364681867ffb2584b4a5d2d30f85a85880395c5e0409b0fd4286e4bcf8235e804a38012401d6e53da77360c0f8233c07c61402e661d02f813e2c33c06b4e3840303d959e4fdf953ed614eb4aa769ddeb2fd5d3b7489b7d0b1d6c576a4bb53d21609ebd1c9aedb64544db9f651f245a6f04c48853cb1df23e9a0230cf3503efecd19f4e2edee3b86784855155d49788687bfbf5427dc852ffc5c31504680fdda313f659dfb61e8377f42f8cb08f13812071aa40da72dbf0dcab6d4f40d4c707b27fcb25af46026c3fd62fbe5f3c57242478f1e205095e7c83484c7004cc2391c39e0e18b086f7985dd1c19e8d6edbc3e33866d9cbbeb6e548956d376d7b36a2d00dafe9c08ff4d2ab31b214fcef2405daf5033ac75ffdea8aacbfa28d8e18e38f03c40d06bfe72864db45df03fd773ccf184dbbb59d93ab9c75f5f66befd76df69e902486e494e0c51f618217af44e7bc0085740e783bf32a9058451555e4c1f6771548dbd69e3bc2042faf44e7bc3c0789764e2f88cee309debe7c82029d7ffdb5793adb47afc6c836d856e01926eeaf7ff1bafd9a1693d63a13b79af6a276bf9e40ffa5aa74bcf817416d059ee917cf3c81627ffbf57ad2dd42af6eea65cf95baf674f831db1c767caebd1c91a37f58a7fe33067da44a1e8e7e0c746179d17eb672ce28e3e760d0c5c308245671532997980da93e0022701febdca6e562e75ad661d2725a97695b37b951b77935a203f1245830348f0a897cce899b9575d6efbe79c7412a823432d8ecd06b5a472a88d3116d6204609da370a3030c4b58ff1d21cd0f3274446f2fe499efd12b2858097613dde14e1a1a3010b1fe3276687a6acf53fb39b59d25786e3cec06657868997f7496a516e8a5e9349a6d0ef472d09006f6144a68b59746686a33ee43e101bd2da46257312803087395266b82f27ced479279821ea8710c4f0c8cb1fd44130ebeda78ac7f6f9b2645d0b659477c982672b6ba72c5fc594fb431b53808073fb6a6595992ec273b12594fd89bb53a1e2025a0d89b2db1fe5864a993adb4224d8a46349fc855b69a4fb0257cc5337cb07eb322b647dfdb4f29292dcaf795ed9d6823c18cc7c36ce56160b6040794ad6c0df6726544b46922ad475b42e3d18a78e8594f56245b225bc92f4cc956d94eb67ae9436fb68adc1dc55e93c9de8c87e50af4a15e83bd04f7ca5eb9923c1e7a878614dd783c27f048b1fe2fab9d224b6cafc47fcf65c0ceef7aabeddeb66d0389ecc4efd58f6abb573b5b6fab4dd35448660e8d31f17b7afb4dd1ed7bb571603589e62cd2b38aac243f7da4b5f51046bc824c8971080fb55987c84083dd57db1fe3e908b4b7ae570d829ff119037f543b27a8c20186a05a2d7301cb66200f8180f4fe3f2cc023da90e28eb74fd3df419d774ee0a2145436c85e1568bb7800050745e18228d6bfeb296d81a8bdf7dcf6838c68811ef507bfbcf95f127af949f7f09ad1065e597b58809f74a91e5e2363fc0db4400f7e02f6989ac64f6e78dc9b29acff0fced2341923502d04221472a331137b136de6bc91344f9ca56134e5a1494811e89dacfe8c67b0f58e4f788040824f780441e135e7a3353014eb2f439a1f42ecf9e5c62ae331fe3409eaccb3b30491293c65d82111a5917f439694416a4e27d6bf4bbdbb8c2e013f7a55e97ba9b24282b7a554d2302c46cccb30ccfb88bd8661d1bb1a96c2c0d46ba954c6d2d86b18cb635d05ba67d49348a8b971dd133fc618238e182be9bd9ae2672e815cf7445406fa407d87ea82605ff628d9c9fb96e445175b8b162c58b8b8a8542d2d2b56a4522c2c28d4e96432adaca8a8944a949248dfe7795dc771a3d166e3667b6e1a6a9b5f42c557f9152ab404de59996728b8c5c81c7610ac47116db3cf401f39beefba1853dfd5398f9f4529df4379dde8496010cc76a91fa150d462df6ba7ef4da35fa9b7873dd9985ca0f1bf20981d3df7d51aff0bc2c7f7547ed6a97c8f0f18a6e861253922535ef381b7f42a4f6a3065ca012dfdf7975a92574bdfaea282a98041305b7acccbe1227a3a2530dcbeabaaeddb6ee08b4f77ab5bc5e178aab6781716e06d16d5a57e47fa9e9a469d75c6de077a605855dcb7e5c097dfa1b77bda27f6c8fea9f9482989b2b0a4f3b07da46cf560610e71488bc3a0c1ce16245954baa40c5a09b14b06957898f0136c8892156553f030616f46b47a820d46b0379b62fde5ab8db8e6cf54325b5b4ff7b8ecd69341f11a0e8a2e9e21ddc68f31f38936ddd3994f16e461e68a319e31c97eb21f7eef4975f6b77b3297f4f19a9a2f7b654e32976451ede5352faf6112e43512036f2f61af745996873d1eb2e8f51e235dcffcb963af64613e4fa03745535b10e702d6136f78597e83e527dce0851b0be506e7f9e5facafae6dd0cf1bd7f8f685372027bee2717dd5ea2a7a727daf49c5a11cff80f99a4d022ca81cf2bda18200a415678d244e815f444e8e6464809fd1a8da847da7e8592bc4e629ecef6dcb671927bc98dc00e9ab699bc6eba89ce7073a372436282bab7837e89f49ce33d05a7d38fe4dddcf8f8ed09c1395f7873c3c11bcebb3870d374c3ec1fdd357f9f3395f2d740e9fefe19c8f2a3d7e9840469a616c6981823381d941f63f8994a333c41d4b2fcb2fcc41b9ed876b99c58ff06baa1038a93ef3b540ee8e5976a7bbe415fe5fd8d88364e68efdf3d5ed3b1767ce40fcff0ab7d78dc78b9a20d0e8ef16ff2f202199e585707f5931bafa0cfb2d247e24aa46fc47131d6694755b5fdb49bcbc5835f3756484cd0f676905ea5f49cf33d8954fa5e3c32d28b877fbcf1dde0f0f0085e16b25fbf5a880bc3cd0d13ebff4367dfefededd03e9bcf39d96be06cfa2959439a6e095e7e82938144d805051a5c4c8064dbee0e5535a2c5f1a673ca1865c2128d17861c188eda8997a1519121bd0c2558fadb1f9f7ee7705d696442f0364823c3367422fb586b448be988369cc34321cf788fd611432befdb1841d38a4ac97b9cd8757b1947230f73ac6082862370aaf9d34e70870e293792c404c56a0f9ed1c1430a41372dc32f1275fea980eef018d921bd8c3eab2dfd577b067b091e4dcbb26c9469d9f66c27a7655af6542431451aa8d446dc489b9dd6652095200d671630977409b1b32ee623a5ff441b95a0240c4405112057117bbd6b0151d1b2d76564ccc759b24716913c45988fb3309fa2255e237d739feb4a32cc77a20de613633c7acb59988f27f19efe67a5582e2c1f25acd8d262b5b0241303dda703a2975213e6dab23097ac78d2dc9b2762020d68c0a0c4facbc0b9e11f31f0c6e86f7c0d088e31375a027103e7d9e502c4b91810373c64577f749008696f489b4dfb227b6a3d674fad3107a20ef4861fcac4a9633259069a031003cd01c8c4a3818183797e81a9a82294f4cd2eaf71a029e8d8c183c83aa98e2c57206d494c57ac505179399003b93c4cd280c8f57b2378064644bbbce67b7d6c0410245696f4b1fbaaf69148aaa7cf1eda20629db3219ec1868f3e0d7711b11e49b53ffbea3e6e87fcd81f2f5693e245ee537a1dd1c6c431a5a6c17ff949e94b4f6bc761292c5d7fc26de9715cfb34161c07b98b6ae6df6ee52fb53289fbf8ac542ff2d0a5cc1dcee3fea4b54c514a29fd996aa52af34c831709ab7d29fe7561bfef35144662a916b0b7f43f5eac76a775f179d7a768efd65b5ea37d128ed56d5af1a17de44b956ada119a7622ca52f48791282d3d7b35481ce7d7fea4e8efc33e6e97872d1f5f4035da66f15faa48625ee3668d5a51cf55d263fd7a6119c6f357a6e12e86f1c245ed4baf06d2b08fb52ddb978a64e761be85ce00139b28c6ef8ff4bf8fd4b1b63809a2b4d496a5b66547d5fbd2f21155e3c32081014d1ef33d4bd5f99e622d44f4fdd742df77cf3105f2d0c5334e7978e833ee1c56165fb26de10cd433bf46bf54bdc8573da50bd40656877c49d370965e62fd431e3a3b3a0a498a9bbe3dd47f3c603c0c2844c56faa4e14c567a505e83e23f6219ef11317e8d0890bf472908eeff374e67f1ecbf7cbdbc031fe9ddbc4bcbc4947fbe0f4811a88f6dfee06fb9b2fde06b6e933b4508c691a4dc496fbef6bd1341049cc16e8ed226722b44917de7358172b6a476f2df1bed8f81cd6d18aa2f42fb55eb5f45d3cbfe018fade3b45757bb45cf4744a319573a267a3c51342888a5fc8901c983f02e63b2784c1de73b8e6c05e0409b01cfe119e130a01e3c307f29ae92e9ec1f2feeca9674f9d52cf4cc38fb40ffea7c7aa8ce7479a06057da8b4674bc1d2bb4cf95d37f6819f63fef0c8e419a635be67791418021aebe37b96f7ef291adbd23333bd3a2c46434bdf5e8d694be0edff34ecbfa7f5eab018f883c61302c6b793e696fe35d89c4bf1ef86f15c4f4ee8f5a166d9fb837ecddc2ed585827d847b9ce852597cac2b5ebb2eacf72eea4d590f0c3a55970f992ce82e162b9ebdee562bf1904baf6925fe1f0cb6b410a031da870a893630305231df43586154181d9687b09a56029bdba754af0e5b8a24540abc345663666606aff6dfe344ad969e3d1c1ac6c2791e97624161242d52138ed1c8d391ff91aa113ce3ef439a17715cf994b853242e117be211ebafed60284658773990d704c07a8b679a9a1bf7a83fb17cf6def3f7f4bfd75e5bf9ee97434345443e85fe57310d54915efb928af4f1e9d75f7ffdf5f737b40daa48e00e8e313aac0eabb9f0731a787fd0705aa755fa1f05603ccc7f34dc0daa4ae00e18200cf8da574b6f62f9c8f2fdfc2db0fe2ac6f2384eebfd1e0359b0403ff0074d8b672f08966fd007cb47d087fcfe1f341ff883c6b2802cdff4236fe504a63c8f6314876a2ef5bd46bfefd7b8140a45c19be26dfbd4b67da9e75295df05a75c3c6af2f7dad561491f23333f07f3421a4f177d596630c27c8f18d3a53a1a8a3630bec41e479bed61c4d0360560401ad307fa9893b432bfb932d4278f85c4278f8504de394fe0a5a99b62c1865c9eeb357de9fb569aebd5b1030608337afe3e980ae3bb5e1d3040fee2b3f88fc20c61d96bfa08fea0b1d474877cd445a576d6954fb55861617a977a75e038d995e7ba4ef3b827d5b6ef4425ed4ba5976e03e361fe9a6cc2bf2eb6f49ddbc480268f317de9b5bab10fa60fabe961aae961d4ce634c5cca4c2b311ec73f8e837986f9ae484800030303f30c030686f6bdf6a65771d10f1abbf226534b6d961124601beadf2bb0de313802c6c38c605413f4f0305589cee9e139959867f0fe78b12abf4205d49eeb010a30d3837d096960feae80f1b76479b38989a9cc2b5e0508f37f3c7a155eb16245a7752a9d272d60f9995f9a5f25abf18db0a4955aaaf7c50256fbaf5e1afbc9bcb0e8681aa587c1d912cc1f61029857a2736050df9bbe549b7d68b03f48724c771cd3cd32342d7d188a6a955aca7ec5fb53bd71f5bd58efb54aaa1d245a1ca7206c41089663ee35eebd37d56957b857e1defbef696828d59e3d1d0dbcfca3b321e8ec0d627d684ffa1bc492bcb3da6da6a5cfd369ca9e6f21085bf0812565f2332f876f21085b386249e08fee8bf9f0efbc142606745708c28001539188170dc59824d67fc710d194a1a0d136bbb8f2294ee4a1bfbb2675599742d32b2132a0f7238e9baef5c235e086977e140c683fb7c7517b833e680bb84ca65cb4acf336ea6187691a877d8cd94c1a8e3ff61d7829076211c3f11603a5363f7a39b4df469ba7b3cda9594cfb344cfbed231837f04535cdd3c9a6267f4e2bb1ce3325321adad9ec3b7b0cab92a5d730775623383fcb6208bec40ccc21b1db59fc8885a0b372c6295c8c16aa08f5b26eae5449dfbdecba5b09cbd0a149c9f891e2f8062cd6e973d2d3994aa612223bac5a1ebad780885925f3672ef19ae8d5c0563c114dab4eea2fe61386410f80c250ba85793630cf466f513025580f9ab69a601a71a349b096f623dfc4a1e9b9761c9a9ed6c9a1c9f4d188c9f437eac0fa33f38ce93b8ebd1caeec277ea49a13b59a4b5ba2fd683f134b82f96047bc084a1063f5d0295f7355f1b3a50d3981e51eb2b20c5ed3e3c49137e36b2eaf89da926fcf8616599c0a2bba8cc05b8b99993d7659ff9997f59709ca9e588f510589b1a24d730ce683b5d8663fd166ce49e96348d8666b29c13a0605ac0ad61f8bc23ad6853158ffad156dbe1853894f27d62713eb13c8fa121478ff04de3092b696ebc6bb68ffa98b774fe79f2b129a8f349857a37e8be7e2eba5a4a24c91320015406794269ac0181c73a3cbb5842514a108400042134d30c184bd93fb4e8f3b3cd3aff8c3c9e7482c2547ea26b9db681ce0946dd98f70f13954911d62d9d3c1214113a553e5efa39fdffbf91b9cfe00ce219284f6d927b1a984d03efb1d1ab8639bd1b381c9e699e699ceb297977f0c7b80f6d967de0e0de434cf01f27d441628684669e6d970950db60d0eb1dcf454d8fb90ef8f812c5050150ef9b26df4f34f0f478355d8e9f9739bb6f977152012728874cd095c0d693279d7512a49427031957271b1e1267bbbe5ff4b2ae5a167235ae7197ee9d9903a882491c4f46c6036f36c78b4914525f44a3b3d1628a87fcadbab31c45207a9e6d9983cdba3c4326dfb3c3288e1c0450b162eaa96152916d4c9a4296145a544499fd771a36d6a192665155218e1555d1cb368efc4fc4bc3f8ed4d63b3f1feb35f25e2040b16a87466e296c3baacba95dcc4aa8ca38f7b8eeb9ce89eeba23777d8273146c0ceccf1be3d2e36c7f8cd7b849da007d21853a7e5eaf49adb5438deca7f2b9d63fa472995169e8915d3bc9f158907728c8936abd172a36cc4588a679a677cb86ef90b35936d8fe34979c6ed57e7a893355aaee33a1e6ddf45c24e79e3f218eb65244c6acc3355b39c676650d5a00251c08048085520c31ba0d024453ba8032860831437d8a1831cd29005a5a26529785014a5e041513c02c728a02c05133b56cb83e526774862efe4267690228517e4302538024ec5df59cdaa18649e09c0b736316c072b8bf5cc76a0020cc3326c0733884dd08c678c9e3ae8200c2fa6649653d39cb32c458f1bec20650c196f19866118866513c3e260b14c03b39aca90749f7d073e1379e81a07421892c74117b691294529d0ca36b539e7fce9a636c114a54c8d9069dab6c2664f5399e7641906a62668a2291c34519aa3110e784aa3110e76e66884831460a3d10df0908d46379883361ac9b72cc50da4b02aaecd3b381079730778a09a0bb8ac27c37420290721da8cd22464137ca29382454796a5c881143760c126050f457ea64cb1fc78d8b10c0671cb3cc304e078d0fe54933b2cb9010ff110f98008393082eb0b5148ebee1be0d8b677f38c76ebb245645eb41e112d648be83e693b220b44b345a878dd574466fbfd493c83885e592009b0fdab360211e4bbd714e1c2769c0eaa72f883411abcfe6da7d75c7f9418a88f082ee00f40efb4de1ee03c8ca19dc7f8bfc7f4df21b6e500f4864dec002525050c7e4865c1fa4f22706d59d260d98ecd8a9c97100342c27db4e140299ab0026647af696c353959db326d4e2122a7a6fda6d1d41d3609c4dcdf9dd59adc010ea3b0c18642095368d8fc97d0c3fe18539a28852f1f53ff12de810b7664b9c91d98d8fb1e128e5f4e30c5b2eb044eec9dae13b02c7b3a07a0aed5ca5e494d5e335fbe946c5d06d675d7fe6deb6ddb5e621e8ed6de63b7d5fef6b0edbdb65f20acbfd7db3774f0e80102ebef3f2afaa183d0ac03d16c839d873133bd143896e074955b5987c4ce00c75f95581b6577ed6161c80ab4000625ae108510125e395c2af101e80da575b5004adb8c899d0d76965d2d606225c81e461a7031d46baa0137f8810bdce083852bbc008a09d0bcd7800c3a20021260e0441cb22b442dd069d96b26a3c14e217e9b667b57964945482b41e6c89cb3005c0a2e469ed1324c46af432837a18248ca5805ae7bd5449a4861d9cf72132932b0fd94bbddb3d1a6e626525a2a969b48710991e030840932a803152948831239608215e200850c2cc1083c6879a1880a2a92e470c500c796e5159ac4c1055b141b4c418a24a880e2c166413538031298a4400648b61005db410e5b948c8a2b3051833284a10d5096c85e709862368103176c66b9091c82b4761b40b18027c610851c90c0032f0c21a76dc0fd2073580c54f8a10191265268c24f4e56051e7450cdd95f60d1c40d59e880a829d5062184b10ab69f9e2c3789f2044dd3346d6693c5729328487cb2c950c8800d4d24610518fce0085f810a1e60544c61526124a362c976b2dc840a24b6b3dc840a9e0884199d354cb65e96bdb823084d30e101169c34014346852837f09a50c1d345a981ccb88969da37cbd9a426514e7062c3134b2d3761c34bb694f02da16236199ac2e6596e3294054bb22cc50d8ad026654872645a6e520623d47293322c91be020211ccb2cb070f4d2cc1821b5a2e1f3a044dcb2e22bcec0528bb88f063fda5e529088105ccfce2544801851344cf721332c8c17266b949195060638c51ca266558425a6e52861dcb1eaa72c4e8ce061212124df6cff9901f67e92f076cf6c366418cb0991004d0cf5ea5a6eae90cd43fea1df7a5ca34dc68a2e5408c046635eb1b6c37300896c3045554514590c53a8f69094e1acf651138a6a1a427cdb7991c45ea1249757ec44892f4bdfcd8fb984a3bc2deb11a39fab3d7b1071cc7943d94a66c66dce3be9094f5e9523663dfbb70d6710537375a36ca48fccd3348ef75a1964dece5a655faf1392d665996695486e34655c32ca972588bf6dd735ce7759ea3bd4eda518dd6abd2abd243ae7a1f35cdc56acf3c63859aa8065eee3b90aad05165c1021dbdca6b9e8ef6a3d19762569f67b257a959650f35ee3fefb9aeeb3c92f7246feb46b49a5248a05a8651abfdcc5ebea94e8fc97eb4bd67529376fbcccbb1659f695e9665d8675826ad49c5473620f2eca394534ac732af318af5e8efd2a7145d6039bbbb0fa95e7387f80fd15a0a81ebe717ee02949b88c147b3dc840c63b0777a3ca364b90919b260d9c396b60919d0609972ab80729331fc905cbc4695233ef6d39ff43149c6aac221a58d963d1c7465e5e3e8550d065aadac7c27020813ad5636888a1d7d0cd2b117c4105612012401d67906fb2099cd88c83e48663360e5e3f8a8027161e5671548026cf30c06a4abb052068b1e03864081db6215c732cb5c6fcf86bffcf8513ee7a04a75ae63dd5cbc6693afca01deec4d2f5f67e5bdb2fde2b7ffe839f9d73f931f6797793a2b5ee9bb780d4973f9937ba931c4c56b36efb1aa5a799567afa63f55558ef9a69f6f02552b608d21b6f4aa1c2aefbdca7befa132955a9a3ee2671f87d8f99c7c07ef94af551aaf8604b31afef225286944d036820cf667fb4d3e9fe0f8e552ee84fa13aae268940fd4cfc741551ce9a1ec5cbc66fbc6a13d57aad8bf780df6f45dbc66eed8ed5fe5effc8e79e674aaa87a83d87cecf6a86f32861e9b3df63af4b1fabd8bf7f39b79e6a25efe8fdebd20b620b2c7b8af7bf11ab6fd9f57638825bdcb89fb5355d12f3d5bf66c60bff238aef2a6ba525539b257f9ec5540157d558ed2735f7a4e470a3a67875900177b59aa31c492c0197d781c6847f5c6c39e1a182587814c04daad838367fa5ffce41815ba89187a9809495c5ac07e60e1d0989a7f03e588f5ef26471a7b5384de996a09ce2864309b706f4223d65f26b4618982728e29890c7298bb3b0cd48b5c16a788f507c2e5abb8b2f1bbbf651c5d81aa76c427e80f2917bd37484217fd618584a01e50a6e0a05586094179e233c69b304aeca51094f8e409189f708c116a300a41894f849e043179ad44a159511db221a62d0e7af244a8758301da4a5bc29f8b313611cfc498c391c7c6e727d166fbf871c76bb28f9127c678e3930d9c4531665b65ac9bb16ef489ac9e8c651d0b33d6ec994526cf2c02b39ecda75b653cddcac19dd9901d22728373930d5d6ab516db681f8128c9958ab19b5fd1155f720bf446d7166674613f9812acc53342a4a28df3674319d1909cfb5a9553f3b1fe9af6f277682fbf5fca9f200fc71821da8e96158199101972382703b327601614633c7b1263784626c4339e9345d74d74c59bece561ccc97a620c127a69ac6b2df799040858a80718a6587f0ed4a87464b2ea38036d9f23dc2c70b6cf9166f1479d289bd53ebdd3443c54426fb3c038b9478a0e4cec4dd939a9d0b7b41d70b4725c37041d425ee6ea3d45248ff4223cf2bdc7792a5683c8c933bbade3d436d06489c06c1069e7acb61b0d46f0421339fd640a0d117d9056314c0d46c841122cfeb85eb19569da11a044d1302cf64456f4893c98a69161093d435869142b5ac51d22e9062580c1091eed89d05050cc30ec0c45e849c2c2c0dba6eca9b7a2a7a40dbba10585095186f556855072d3d0e4356ca314e88d45d1796e1882418af597e1e939c2f3c2e34578eecf15e90b5c94da73a4cece0e8654d5e004698c899f8a31f19404c53e93cd84ff89623fb64fa6a0fcd94ff61a8d3da654a6e138113af2b16a35e6fb5ab59aa66973cea97590a6695aa6695af6ddcab22c6b1e4dd334229767dbb681b7c6250cc69f3bc114ddc0e88a4be24f6c459bd8d33faed8e3453d45ac227ff264f5c47fd87f5868c87b38c6bf27f6f4449b2e8a315e4433a2d410158a42692ac520cc105151147a7f2ecb322862b00632d81b7b9899b31ca0810cf67ad1f527d77f640fe88d3ffeb3c46bb2978c15459b58f4d323231ec69f9ff803f640551a187b222bc6c42441fb336fc9b2ac6b1b3b7ee6e9c897a68cdb3fe6996e70957241ec7a582f959a3303db08ab7bbaa733d2f375573d7008175b7c8bee61237847df2fb9c3381277650f8f015ef65f27374ab18d93a42cfb3454ea316cc5afa0dff225950fef33ce8b9f4af774923e92bd777b58c97dbfa7e2befb8c4422a938f00677ef792b91d4c5ecbd2e461965945176200b14f4bd6fafa34fa29fd5eb9d36af6ef4bddf40162c50cf0b82be047dd027813e545e76bd1ea812af59a894ac95b6492d99a21100000000e313000020100c074442d1784828d9f6ec1d14000c91ae4e7c5699c7499053c820630c8001000000000140100401000caf37e79be3edfdd6104017d7d66fee0f3b2619c0ff1e3cc263f0c6b155b950579e0bfda669ac320f708874c40e04102b036da75c6ca3e5e4c909eb3701c4d604fc4fa05b387eb311242710afcfa7e5fe5acb226df7267c41938722b83dc4a924db51882b3507f1580c5df0250145796e16b8c71138ff81e18f3704327abb59987f75c0d0d32636a950adabfcfd552056c0c26821e311690c050fcb317fce2836583d3aaba610d037e4eac9f5c6a4721c9a790079aea2bf188dbb817f987c6f47b1e5a5dd1dc46523bfa73b0ce23e712c212874b39dc51108ac4737e9e4b142c713142943fd55a3e2b07ee71af89aca368878310044f6bb1f54df60068c9ae41dbf82e1707a1ad38a76800ec624f196ed18938bc6719dbc9db9dc9efda99e9bb395b3e88824e4e15645ce52a0fece8e47b08e134ae6b08671ec4454d5892c7b24b954851448419360a2b7b731589fd79897087731e094ae91f310d301ebc32fa2efc39831891b883403ab59f0d94decc839bc4b2221eb4f1c79e824b3d4034b0369c6413823f50bf1c755b72572791389846d8c32498615dce6e895235829714d83746f3035f2bd485b660b5cc1a0465bc37339f74677cb9271f6141fec121a2081d8576e5f3e5720a8573aef23b8e02aefb39161b7883383dac441f814a70ff604b0d477d1c5207721a6c3165f7067e3dd6d13b592155bf14aafc4ca577a852ba6950fe4d9fd2886762384287bc6556f9a8815accc0aac604556b0222b588195accc4aac602556e4c9234fe4da1c997cdda9c4bbd3b75582e126c07b51900f0821d819d6745c3ec6f238411bc7e7bee6eb06277da04d4e94a70613471ab6168a5e91020b614f630665d26a46c88a6e1462b95668d487ca080f4bbada91ca24bb3c4c13553376deb7611b4214473d182e6932da34f14ce759110db7bdf80821d0001ee2f487e61159508ae7a5e796697d490a87c451985263438e71f7b31cda4906c4eeba5afbe682831ec8d98acde1605fcec4c338c7126281abc047a1b00a83b46bc89c30c81712bf73aa49d6bd2ad377892344ec74c626fec87fd6a0c6ff330f3464c491504c68921123d1aeeb2c917ff6645900c86222d14e896449d38d4ee8aa72ed29091288c5574920f9b1ae5802cf1b7f095a2d05633e57bb7bbc200e3acfbca2f89344bed445dcb891b8b84b9354f40017a9e37b3e9b29a8a74e32e6d00e234c5ceab6e9623b8267023f3d36ce6b9496b47cfec75d38a8ed2bd9bdff33fff43f44dc61463d8f0b401284b5668c1b0b22e0254f056e381a07f407cd570646a9a83a76a8636921eb11a4dab3a0a198e30208ac3113733a8ea209862088a5e1f1629acfe54e7279a65b4d8929d3697210a2d415f828612d44f6503ddbee19d3f49f47595c3cb9d4bc2917040ae5bd568ba1e584eac8fd7c4f7b122484f16466f1d1aaadc1e2cf606d5a11e7e8946a6a326fbe1209b82909aa2d8f524fe23dd7cbeb1d38f7f1c723228800a2456cf62f5911d5d31bf0f526c05b3068bfbefc75e7efab4a42c72d2268c2b2239f0acfaab603fa16235a5cc4bca60e0613d42c407f3532fbeaa9c975574f54970155184fb34bca4140a7df76749a080ef0e9b5a4771e72d88a8066c5d4276eddb77d632c114db96967b7dfe7f94329d96058b1d99bdb83377deb0f43479a12caa9cdb600074ee9e9a8d626e568060dd84c1dcae68c893e0f6174a513eb432e2fffcd10dc13c4f851b49ed16a6513b77ea127c59d4e35e1b15f0158ba2c1bc309fa065757c4ce48bbe2f6fced299a789fa7cae5c3183e05e4cda46e5d4e0f88bfdc59ac799bcb9dd59ab3bd9c59aff9dbcb99f59abfbd9c0effe060da81e403187ef451f8e6b3d276e9655e832e353a5699de9ab8e246f26f6f378abfbdbb51fe9db9b2f769f66dc85730f7239033523f3bc6a2ad37ef2725b7af6fbefa7df3a5c0ec51f5e41aa88049396298e40e04ba3b97fbb9b3099486a0b6e335844fc8cdf6f0880b10215b88650f37074def7b5fc18afdbc58546a506498fb86c86cbf19dfd0474c1db1024757cca076eeebd7559048bb501e5251dd54837e95a5d776a79569ec09953a2504840d24a4159b1de0c9adc7813773618a9c3bebdce88224779693e55d783c75d68563a1731883d0757a2aa9780073f3ba4bf403487da3e8d18b556526e5765c4397aa48a93a2532f4aca5a1296a73d0f09847199a59308072b24ed3176ec43c21d4badace3a42e87e0976732e73c1c6074a56cfca68997676fb6b65165568392bf07d94b36ff026242eee743ccc82012146733b191a105c22b15cb19d74dd1fb640027ad5fcd6448919b66836f0ca255abd807bb94d96402dcca633060da20e9bd5cea0f358790a580279b5be37eb605fee790faa68b27c31d4e899cf49a964a39293dc902e0fca333b0a99134302c9779c7280a9e8b6a13aa98eecd77785653ecdcc0553d58808c2c7dc05c607b031ca56746670ca37a6f5da3ae88f73ccf0f5a10f611f283363c72cd5a5f4419522e83e5a299545c4f97398580121df04cb83998eeea86cfa79df2fcd1ba7bfe52147b0c564bab67d1e405f182e85be7f90f84105503e008e6c3367e5979406f11cfb76e45973a79163839a5a509e8ea6a182e837a757131bab47eaf998c63d2e4b789c61a1ee56c0b01f8680100f25f2a2d39a26db14d03855ca475a293d7e35eef7633b9c396382f362c6bf43f3eb630c5482a2cfa83b4f7f68c6382568dff134a365a6bcff38a7f3f7ecae6df397440023c2a4ecc9b651d91b8b082b69bd492aae22bf6ca9ca6c5f225697640526c2c500073b686ec9ee9b42bd023319d83d1169dbdf32d319113dec2e022a9851b278253311e609067b4c042b4587a8659102d480cd56a6305bf7040e1aca20824924b6f9a8b2f716be866f0dd292a2447d6c4f2dd1f544df25d4ed94acae0a51d88161150a4aeac9e612f10fc5cdd737391d1e47339d98a3f4c7461f1f5e4cfeca977166abc006492771c9a25f92b4fa269297b686af6499c42960b80d38a0a881973e6a23099be6663ec79e9d6647cccfcc5997e93f1883eceb1a66dd2b890bf361e4b94a2f62d9af91d8566580343e6e541101d1b7d862bc18761b13e12d9bd426aca256e0b70de52cdfa2c68ad8217e4fad277f3688f465582dc32f90545fab350ac1109883d322eed505854bc2e6e6b941f9c77e3a22270226e6725293958514bc93586231c55ea575ee0fd95bb3c204e77d2fc2cf4652dde3e425accbedac3db6776bd9fa4ef7ec5f51ff7428a0aee19cc36db648700ff13f5668f52bf960159fa48fd004279cd49b9f12afebd5f3822ea3b3f8c8f497e9c487cad6a2d004776dac5a435d4dd0e559555a64b610d2a3361dfec349ac098c1e7ee67a0d84e802ccaf117c8ca61c96b6fac2ebfbf9eba4f76b1fee7ee9f07ea54e861da8774482050c08e543260c7089c346688f21c88df0dba09e5e18fc8b669c213635a38b85103a8cc70b5c93fad6e27417d46a6ee856b7754b74ebbba99f62438d01742c0641ecafa6b21db714e36fb07a440356fa9520a416d229568f3819ad1e9f9f5ee6ed2cdbab65a7077c30a4f9b1cb2bca03eba164bba4886554bca4310ba4aa58b6d979386f89d6a6cbb4cd05f78778465229b81683b4d23b27b6ad6928bee41af94b33d725d5ac29d7fd125ec49e649beec055972728349bfaf7b5cf408b1884b7f0fd0335260a73a4944364f623e238b294d55b5a17767dd21d66fafea669f562f8148bfaa8e68f6d479d7da37575a45acc6858467e61bbb071eb43655982cb6558dca7afb0c161c076709214f4314800b7c3494427bac438edd9d2a09d92c7aca70b93f9b8622bd4c3a073dd4bad27bd455e5d8588d7308f609c739cddbe231a0ae5e2d2b9cd4e654fc8cacffb59de8bbcdea14b380a8e3c77d6503f2dc29ddcc49e495cc4ddbd5c9e8b94606876ade8c3082be71523a44e0552eb40246c80fea70846e054a1ef37bb8ebe68745ff7d3f89ca6af45d7b5799468add8ff780739f821fe2f0c99bd621fc0d26783a11c479312af397ffcc793b56c80df6ddc3b30e986e65c5db1c848842ec7376c38d5f9d46ba28e9763c6f7e7095677ebbd0652b7b97e588fcc02a15a280c1c354f8e7676e698aabe385a83ac9cb69dd9cfec4a322b007443be9501d3824faadab9174baf2acd4ee38ef5e4b669999b5d74b4a22a205571d30f06078ec6b85f9ddaa7ab275e344e6318c62a9b7a695746579546023cb713c47843af55475003b7773980550ba074db86ff7b16f89f9f7f8f07a93bedfcaaff98e2c9a4ee01a8b2a7a1cf614140787f20c1e68b1f101035d612e77e0db3991ceb7ae5fd8a471b6c4e915379579453bae9e4fe1302064fa36f3241e760e4ef2c5e073fe8eaf88b31d95e29fe7e084793920f850203718ca343e578a058d5e07c12ca26300d18dcd3a12c410eee1d1e1a727aa62cf1b5f71ce5e1ccbda4a1c06489ada2ebe748eff84de204fa7da2d6882aa43bd4b91f69d4c0b7ba610657c1aeff48e4825d6661d8dd597076e676e442bb53a54f4013446b56fda8cbf432017ea97624ba1180fd1874682de08f6147c6730c8a333d88983f620ef9044347190a13145deb860119e6113f6a8530e828327f87318262a889d348b6346adeed10f2028a4306159fd6d6589d10de724276480554814ece9d7249ebb97ce1f6d148186fc39e243c8c01067146b7f728d0a87d63257ef59ba6511ee033efeda223365b3183be6398a4f2dd6f2003062dc9909ac9916c51ffea1d7fa58c6bab1a5eae73115fce7c61569d1294161294e6567aa77f152f2048dd1fded3720cc7610b3d3cd150a83d901f0e488f1868f8e2f0f623103acb9724d8cfddd5ef3e96372f53fe2e1130421427dda5b9fcf614fb7d394a3ee483f4c7f139aa46e68bd122999461a12b84674c033d5a8ccf5eb990bcfe6920a6abced944b184b8326f1a7dd54f34e140ef3f8aa4f65e9aac2e2bc8b21da80aa09482fb9621a603632efb102027ed7afc96c4ab7c621c17e77488affe00333cb73986b10fd43f5a78588760cdf4355f4d00407ad2763e040dd83be55770c71867b57c56b302606a4a2a075a8861751af131b4c078717557d06deda9569dd0c91e1289c44fd27453519e4462dd77e2def20cce97b1c94026b021ed2f9373069f11b6df72f32de0bb34cc74c08a578120a02b04748552564142e70a5506118ba025da9a873fdf7f02891cc2fdbf0e9dd4bc562da8ebbde7a899d95f781c6f1f4f01f69fea8c699020fee2ad3b41fab55ff4511321c3d22705daf4da74c3151b926202f96d74bb35cef29fbde0bca4631d222dd156943816c179fe363c55ae9f43a85600ed4b54721060abe4980d82bfed33ee5c01f2a7cb3c016a3412846804026159fd1720f49f0f43cdce30e84f282313858e052a61bb44bbe5852170756af98390ee8bf86b776521db47d2b81ea0a00f3d33a89039399bfe1a4da03807189ed8d305731b455ae4406b530f1858267c5c81e19702e83664b73347ffb293bc0151052155da24432e185b26de5f1153d20fd7d8dd6c96fde8fd86e35693a30e3a73942626f7a4f52b1b350619d19af09c4f52321938e6dfb22e30e7216c248b3990e2c4427928fd17b1a4ed14b85ab6255098fa9129ee75553e5d19e98d430749b89ea958f8aab49815e5edc6d841f47d977ab49fd8b91b705814847594fa0bf4fe06f17e55c676b4dbf4cc8d90a415a7cffba53994163b19ac11aeba81a5f4cd6c735a7696456f1bcee683ea9ee5c8d5dbbe8ff28d1ad926817940e1cbc4155393bd06a0cfeea56215c561834654211a3f086c6dbc30c4e248d2822e055e14d947e2fea44089f07636c6cd2ab8147f8b932b9e649eb2fb5202159579de778b4a4191f9110a1cddca435856a4bed71bb51d4e43b8cb0c53ee37abc5d340642716ababa14887e548234f7867517a0b39c4876abc5ef92cea85d2f233037e9a2ada5564e8ae91dbe951a0041626850b2f9c37b0e55454e142b6b791b926426da4d196df26ffb214bb2cfb075d2490a9121246b7a87ab4c87cca24a192513b5910022bdbbfaf20e838ee170fe2077a90504b8b5d36cfcefb3c2ebbf25b14fce526e33ac11a22f80e868ce1750b62fbe1ad5931208af95192877b63e497086a4d84e9f6a8d1cc9fd5a4ec0a2136cb39f1bc831434e18788a3709ec5517c8e8c79294475ce7805715c977037971c77665448174206c73693710ce26e829e8528716f0f947d20fc98dc34fb84caae8984d63a94fc2f543a1a5b50be78e1fafdc1d3bddd8883958bb66e6b6ddfda0aadb672c946102cefa946211f916a4899fe357aaf2290c243e1385c250122a1d918aed02e2617c7e79956da7b13d949b1ec925519603001af19488d11cdf6fb2e4f240533146302447d8168c2ad44e19da1d202e219a7906e74dd301a9b71d496e1f0fde7466242d41ff4589e7d0e27725e84563b3ebae79d7e5e6671614241154a226a8a0505809d08bc28fdd335492b1bb4d0fccbe7cdf7e1574d5c604f5d13e9c1ba52c64ae79bba6be0a543762b067288afa93d33230e10bd43132ec0483935380aaa700548cc24da2b5fa33842c94a51abe14ec16dd14d238647b38cb997d35e69bcd3db03acd4eb2a19a1980933715c474cd379deaf3fb416e2e44db3857d4da055118753913de5f5216eb6f40a7249aae276ebdfb62bc27bed21510675def24f435fc6423c24eab58336ba1638bd2b1a47119529777890bf85718acad9187e639457436bbae69ace31e50067d2e28840723ebdc1b2f7b38f3eed3d16b224c0d4a793c94df7307bdb1d0adc3f43258867c4d16d8ac02d27a6812894c4d8a354f89d482226c458d8739d655dcba19925e7732a5c00d6798025a40b928158098e3abb907619f77effa54a88b9f7b565208552a3a6158c5e7e9165465790f0d4376bbe35b7fd2c9b21ed6e3bfb2b24d4c8fc1c8ef0178724dd9ef771450490e7cb86ca5c026e430166daf316348ab1cf9da21e4c29a08ba084d48947f40c7ca6e7deac41ee194f799b0eb490bc9ead1fd2f9cbe4ce16342dc2c65698e856d817a963d6a34fa29896b8055481172b38f369a93dc5796a0988fda5d0d7a0969be56af40530a6dfa2112aa2b90bd465041465a5d7a59bfd722e5cc04e28483d64c09f6ef488b20683b32bb5eaba24060222912df231a7ab8d0c8f23d8326e565c30371716145aeef47629699d9220219d084f35b7db10c5f8347dffcb3e8d0482d1a9112bb8058dd1406788244980bcae304ae4ca84e89ddc8c6e1272be84078190f5c23647b1d615377e26700dcb3645c8fc4a30ea73cbadf26c4fe420e44e43a96c97204b5cedbcc1ee8589a434a1b259646d620997937ee8355e116df6987a06a838888e4bb278500b53b0e45acd55304c012f97d9cba896d02bc0dc5912a1b039615b7d5f869041466d63d7a8f50c658407d81854cd57e8584a651041d0637c98209885ff5f115b72414a7d8e7ac7128e11f7c390ed77dd110e5929641677f98ffde19710a8a6096eff61436079af8181068161caea8ff7327d39f94336c3f0e347f43779d14d019aadd811f1852ba41122f20ba54048d6c11742ea4206cb3792a3bc57e3e1136f784f79e65bc3aab4c2a0194285f914e81dec356eb867150534794bb3c98f8a11b72702ddb6dce4906c07ca37f2b7671ba4857aaaf75b81bc15d258e2c6679d24f44d3459dd7f1ba05bb007f6a243d98e740a2eac3c3136d71d18c29f78d5095f32c41e146874b432a5ac602bece6c4446aac0f64c2a057528e865334ac32360628b0a965416bdf1285c51933d7b8570366b9e1d2aeccec9ecc2b01bef86bb96ef23dea5f574c1b4d4358fda8c5a229d4adf6a5f881b52802af9f593b3ed03a6b9734fee2ca047ad7630f394153107af6446244e2365a4c86227404ca60bc61e9b5a448531668c375c729f09ac6293cca052d1bd6ba408e2a4368c77ceb571f7c78eabeb102b6a6663eb35949d3d8c4b1fe6c4692d98add74238234a970d360f393f8f872736f1f254998ece2f251b82e02d1120cd9baf87428d1ad232c8b9d326c0b0d7e2b20fe467336b7d3702299e3c721e8df34a2ebcd543fd126ca1bcb8a2b037954e98959374eceb08b6c642f6fee46a3996ceeef577f66d85a5355830c3a364107dc000816669f708f74f086774189eda5fe097cbb2902274f3be794cb03a6fd895e4adbcbf1a2853816ff130d84555a23417f700fc1faf0d84e2feba3040146b436df871d69900a245c851cc9347f7d236a0c9ce0862aa7c7c1153ab3d879e00ceba3ca4426ea15d581f72d632ac65f12b68f91081008123a4f78a7b9389dd62ee03570ec774828b9089d151b18ca4da8f89654d023c4901993e7d4843b4cc503c47e4347a3217144f39e4e09f45fe590d6e36590cde9e14cee8ffd39865c48b24eb6f8b47a3c3c98bb4c8636afba3830a1d92225e8035456262085269e9f8a7b1a507c4476a7b121bd75cda79c09aea885dcff0470a8f60cca3fa9727c10cbd0f55f785ed42dfa101d24d0f3f2096b3d94921aff8bef13f28620a371d2da1f25f97d0be3259f6f5f2d73ee944ccaf5bd81673b144ddc98b11a99e7c689229d601c9124cd97176b60d35cecc1b64308cc29454fcd124d8fcfa484c22ae7837737ab0fc0f6236282598f83892b8fc3324914ae639428ce17152526e6357a076951d257a16920c96097be0ffa78e8355c62b722f8ee7f4b1b8cc38e4dc562a9e1e3c7ab863d5e8ce45acf66a36ef4bfe3ed4704d27ae569e4244050730a165fd4b9394d55581e832bc74972640af9c22020f580a0e36b9b50d31fceab7e170ba078c338aefbfabd1d4ae1de011aaa67898bd33da47de1d8b84bd3547ca8fefe9860ac82f620331b3ff285fecb099ad447580ff4a32616927f927cf18c923d2efc48729d5596f9a8911b5ab141c7f8beb9f868956c1479306061ab91399ed5379ce1ea075b639fd732dcf78f879d3c4f580b411f7953ea1d804a322f1040ecef9c6cbc84e17d952995d4841419c85d35b20ef605d13b6a01d25d291bf4f96e84f2b23fa018ed08681d794e1700a9d6a32ee0b7188ac5e97c34fa7f62be37a0c4006cb3bfb6190c0110cf164a37629eac3b82693d02b3f597c1036f3b272325b8a2d83debacbb0185d6f91aac90b5b07763e486d539d8d6ce81469c36a5423abb6c459c90bb5d42449e52b0763d4f0daed8b7cf17a809366f81977b13991f0c0671e3cbc419345451088a17e9d2da6e8c6eccfd76a59a9b29e8edc85aea58d5cb4fcd3efdf2767c41dff9ff9c9c799961aeec9feb55ffff4354ace6bbfffd8cf7905e707d4d1dbddad71188f44a3c6f4e56b6014c08a8608e44b64e5bad8c6782da23a30c1214cda080d4e03e5d03666310b21b2d0f04fa0448b68d6fdd666c59d1d25c54cbfc2f75731556f1b024e1d3d1a9d205149922ff4990ab0fe9bf23a796c3031b44697ea28e9744b17747a26540043cb81b5977ba6da4d41cb8b34da1bde04014ecde8f1d60a119df84c4e8e6d07ce0d5f4fc0e1b2a604b29dbcf8e936c11ddaf7882d48cc202895142ad1f2a9596d22ead1f8b2fc99d30e53dac83c7a79a2aaa4866d7438263065e7c2388c8c5befcc3e1d38a52812c12b1679dc52a968628e4975a482224c40c5bb290fdbdf7fa840aab954bcd029950cc0e686354a9c6431f652b071de6e82d2df44e7af2473fdc27a5f42171b3c74c12caaef3c0eed357a27d65cc7f1d25948a599539ea30bef40241152ad10877754bbd1240ce909d304e93a47e9d935b8756a5c533c6543c76f0cc64cfd004461bd3dc2ac4d293e6a341e36014d825d8c36ae8de1337f6bccfd05e0406c2300631436c5c660d3041b098be4b0f615acd7546c30b54695735642aaa433e1bdb86611e100b8a42a2155b11612958df49172b2dc41adc5f1e05b9cacc5661cdbffc9591d4591ec8e5096c2c682d7088ed5f70a6556cfb1c363ce2bc7726310d9ef272c360cf2d1597e5278639ebe429301f0e5df667a8e0217346da8087bdf4941cc4730c0a8f1950036c87a9b970324d58bc79a06168b7c25dafa679ee3b68c3d03faaeb7bc7c7af528cdf5d8edf6bac3fa0caf6bf32c625664b89a633a8afd18d59412554d25a7623699e7857b6dd207652fd33ffd3f8c21c58bf2ae05e856bf52bcfa5e0b7e450e4ead221f48b01b4fce8de6337675a79b3e1a51d18b36c9cf350750e63a6dc4a001e990d9acbd9c77204e2c337e695ac229ee53ed80b4e12cfcd3ebb7e428e403ec6a56a859efb6d2a0dc7cc0b6b695fa31f6f8ee757906d4dd785877805192bed3d496c608e2670a123e9ac42b4d219b918042acd58cb24bb5b54f902963fa81c07006546397efa1674b3bb7a4ec1145a1b57cc8d488e23677774b8c45b6c7b40fba4ac551ab74b4e833b7a63669967c8a838e7ce4877f84faa16febdacf6ee9d3bdc6d780366eaa01b4fb5e6ec3cabd866ebe01d1f3a5f4da0e6ec2f6d46f3797d3ac53a7bbd158753314d41ff86bdde8a3005b02938f5a65606c5d4c613c3f49458337b2bf2589a86797403a722c452a9db91e88b6638cabff21d95a3386ebad35998cda583fdface86002514a0e588443e3383cb486d3ae9189bf3ddf87c4ebe37c700739f5a9bef0cb1a6739a086f674497a6e82dd0171fa79f81566afedfadfc3fbcceee625d870f1b01076ace36490af2af98a16630b8c4a28fb0c909902c70df6856be2dd34876ea2c0f11084dd0062ab8d8235649bffe5e9e596ce6b9d1d532165159cd9920d12c074b28c502628f9eedf695540fc1a892cac46aaedbfb3fef36e3f375bb91e8bdcc13d0cb4cd1a35312258c7e9ce20c615ff15d73d6a110fcba65fe4e922396f93c79ceade77bf29c5bcdffc9396c9ddf9373d832bf27ceb9c5fc4f9f63ebf93c39872df3797a8e5bcfffd439b5d541ca043419e4eea6696aa48499a2625a20759f7c16aa9bc508f655b1e6ec0ca46f6a2c626ccd1969303749e49f075ac15c081da58e82f6432108e1d4b0de621b256ce388606bce8e4c0cb3c2a4a09520537831de860b2d74e95a72bc5f5e7376511a08a23df948162be23d6e651323537366579a9300267ce288e09524b5e3cc5ce759b88f33b6246a7552dad49c891bd829ed386fc3da586e6c1cd252d124057bd327736746b0740d97509f6c16c6f34ecf91547a846a74d073f821228c21cd89bc8715ac12fb73dc4fc2d618f6ec2520e2d5400690f1595bd5afe49594267e4a31dcbdda358ec3beee7cfe827338b347361bb48665c914632162757210dee03b9669c074377f8e7328cb2cdd1e1fb1abd7bedd6534f2e5a1efbf78a46067edd39bd9dfbe158a941d0c65e2c7e9640faeaf0e83219e884892117a96da1ab15765b55207cc25912150e77bb00e443a1a1d96c0c031f8ebdf8fec7e3150605c6233fa29a66d5506d80f0db9195834dfa3bdeaec88cb72fd2b6853174a9c710f3c6478269e1195f8f7e846d373de987664a034b6b6e5756dcff223e601d227377fc0c936fa39361529cdf691fc696e3d890c2053325798a87874be20faa38651d88810bf753c55753b498bef68b16a57fef67996638165f433ab99da25a06baa0f1e5c886d1a1d1a671e2441501ab4b0828f47f23237202a789e982ace87cabb24a090f40ef38b5bf030fadc0f866130983ef900b666d69264683db865a7ac4a103ab0a36cdad20dfe2b8e419ed2082167344f3cf165d1e3710b2a7b43ea2ec1f9a05f07a81aa8e17f548c14133318060a5f8d1f0118f62a2cb6a862665d8c59f87fa0e2e6b80c961d9e86f314f6e4062f0dc6dd9be3629cc98cbf5416d004e0889de9315441e77aaf958ecacce3667e2cb2da42c365ee94c8d2ccdc2b2c7195e428cc1e409b4577724ce195600e4ca43e689783faa13d85381b9518531e214b3eb2ad9819bd8d106f48033fa98196f86b27666850be0d9a269a1ccd84c47a3415786d06475060850772f7d83c8bc187bc3cd00d98acbf202976f88cb6a20fbd43200a09ec896dad028032fe825983922201f80278df0e21be3204a6dca8bcbfbb8c329d10443bb28619b32b7e3247a40c12a30a36cdf12337add02b039c578ecb8c46a8998a1490b38139b8e0d132c98d1909765146d0226013c6fde440777cf09e46d0e1cdf5de1a41f84a6493294d27b3201152971f714fe5155ccc117c687cc78795260916ea82c558d4c7039ca738455da99a7fafab5fc486704e5703ac4c20deaa32a6b24f3d36b65253f208beae779d44b05dc68351172e79160da7c1e9ec33b02174a3ff32a5c1d2a0bdf46033dafe16f09a7f60c38a5765af73fd335cb773c568877a86c7e45e4b617caaa0581c91d68e9c88e6a2316e24d9f4b8a7c2e3f1690a96d7213ac424741873644fe8d21610f4c2b32a5d1fc8c3a46e2c6ff260745baf23fff14f203289a8a5efcf69b25a9f256e8a3c7d62fe981a0afa1f44bca7f41022eb75344bc274e49111a4fe1108837ce41a876cc64fbcc89737793897299575cc20f33f697f86701767cd8bd86aa62fc41e39fccf2e02fea329017a72051c7b84bb4ca7312078230a3f60a24fb097cd3648fc782722b04142097a10a248c04e23882b9b54d185f86e308e445f9b6a78c877ef2cc2cd4fc19b43ea640701606a2980f91e15eb347d7de3850eabafdf8fb43cd1d08136230192197dac655e4dff0af79276c3d99423a31d40a2aa20d6b23fbfe0cd25682e49be6eebbeb2b3a22c331e34162d63af3d66e7ae6e3569153816f1ad60c8b96fbff2da105e043e1a56e56779ab4e602c2db3b91865205fbc14683ee5534825d22890be346a1a07f183169114f31e16e33fef1626c897881a659056a6e6c14bd956670a7030c8d259348e722c158542aa324e037dd47a414517a475a5a62bd3b4c631451a7c4031587e733684e93b43f734de44b34d437ac1b3a7638ee691d560fd55f35fed1f694c4fcaf31e27f5cc0a5082935a59c0a1cf5d28c34db6b36baf5cf37e89a0c4c7796450405e432f5da34102da980e24aa00b78cd17942ddc5a979abf2d60a8ab1ff724aa99831d0fc520e89a3e612c8784e49810ab65eb77ac164910df2c01143f5576d09a3ab56f3138ccaa6815417e34ada20aa1f13ebce0411e45ad815c15cf49a50dea0d6a5759219454e09229561d96e45599197172e071683c5abed18298367579aba57d4175bcc473af12d378dfc8ac24dc13dc9b4f023b5a0b0a8e9a30a71ba9daf2ccd89610312798026559e7a181f01097f0049c67745934543c08e1b668c2e0049ead3a500ba9eb008ff76112805ce527a1164411ad686965fa77d2d99e0d8ecc6cc40d5db2e8ef1a44e049f16a392f0cbc0bcd0564e99c0802ccc81d3255148f1180e3380f2379e8c9179bb6e7c1c40f5d6d81d196f800f1b970301b52faa78519f1511b05e27118b1cd7a0a376189024010eacc3e806c29913bd8e9452cf16347960d356fa40b5b7afd46dc89dd46afb81fc5bb28ebc0545ffa7d4aa1a8d44d8368c8f93fa0f866888a03c251e00b92c348d5910b7e095b5b23bc391a436fc71b5f5d92a0860b4eded0813b5f5989a01a57805f0aee10484b570ebb42320a5258e58544845ba96b61aa804260b490aeab72aa07b64a0ce23d7a10517e06b066f30834b5ef5182df31d5636ed15ab1bd72ccdcbb33decbbf0b270a4be2588070daa74ee29ff3a45999b1c04f90b1eb78418aeb4e02f82a8bbeb9f3364bbb0db851836074d3967803688ca7ec9dc5109d7296c744016d40a9f69f671ddcd26c7c1b6d8f4ac20b8a1f2f22a5fd83d5668b92f665b8eeaf87eed9df8689541d9b3f573012965c24a903bf65ce5bcd4f8070944baad1cb132454f98e13bd78d2f04580f61159d53536e6a3b83b975fbcd30236f0351783f47394c4237393c08dcaf58e2f4a99cb65c7ac8cae86693979e1f366ba713d617f51f448a9ec84da8d38377ca2cf01b9b1e4b2fbb52182452014687db6d2fc2fa5df4a8f4627acef6b6397485ba0caa56ae76e157b9c4f788bf7e60dc20d495b9040ae6ab5e7d78117840b06bf580ed302d9454c17d3e31f624320bcd6e0e5fc189f3560a455aefa5a7b56f44fa326fb4cf27d40fed177fa7d45fcc8d4d3412b4e2f3094945a299826a91b81d90b66e161788f1a5fba2e9f369a3ea98c8847ddf9353542424365b0c5ec5e743ae6d1980d6dcf2656e7e7f3ab40351465dadf5050a8eed3c1e4be3ed125bab4ebfda5e34ddd2220b8e8c7000500bd4f338c70f565a44b63b3201a62bca9008abf65b005855dcf2a0424aed57dab2c343497740c6f1d3f28577193776942cdae3d4c92f54c4c88c7c51b1865a9875f19b5bc0394eb61b20f07a8f8b83518958c6c9bf1971e5ea1a3b7cd25d89bd4d025dc2504440a14a944461c8019fccdeea2fc007ea7f3d3d399d632c98ee8b7a9a15786e0a1322beb415280e051b7f7c0b3d742438315e47dca325747ba1e506293b536effb375e423153c21827453f3eec0b8fe7b5bcabcce4719868935fe3ad807ccd0353f8c6ced4f310520283c479fbdb36aa59e5224b105fc335d2fb7f0afee63757e2ed5ab7b9a400f20d8344efd9bd131073999ef7940cd70ad3a433ffe016e10fc3106162114b33e01f57cd50b4b5899b84e021efe6f9dbb23ec770b7bf841aecde351ae694fa82861e1ff12725bb8d5b25bddcef143f53cf65bc12d90594ea2b9dec8d1df5e595c548f5fcbd51bd56d5c17c705dbef341bdedde05fb993829094d495434a13fe3b2e0ac1b2656ae2d6884198fdc6e3706bb165bb2de2f2123498c75826c15016ca12cbf8fa43b8e7212930fb71e6766227c8b02fe61d34ccbab1c0196efbf9d5fe133fbfce4fa81e51bade4ab9d526a8f06a30ff57bd89ab5758cf78ea8208040224a5eb9bea9bab294f33053ea9f1c38eedbc796aad15237f2a57c4719e43de0f6977ff1e02bc7d43397ce8d680436e2c54bd79096d71873355fcf82acac8e2fad4caa011a67e23859f9a90831524289f772dc55b60e7266420b0e5c60dc4fa3c81816468471b9bcd0ca111d60902815ca2714c3c0660aa372dc6be00c7f6baca9a6cd82505c311cefb247ebb616e151aab403d20693de28dfac51562513f7287863276d903ce8f87fae119b8a3aaea32c4eb52577ace6d109b3c1bc3662c8699f6465b29228720faddeb1293222f3a61d2116d1910e0e1a509373f7781c062773d2547f10936215b8dd907e5a077f70d838b2e8fc3719ce2d56896f2cd2e7863a2266ae928ae579798587e592e27c62ef2b1e69457ba413a6e2618ac01bded21357de117c87a9324786c7bc1e87f81956d2a1cdb711667cc2e0667163b2cc92b1d3b27670bb33a26b37df31110abc44640c4cfa5a08da0e4fdff16bc1a10da6abd36ba0e5592b44af31e5d2250fd766530165987e5f7074bcb0036e6e117126e7dfd15ac2c6f3df275284ce248e0bec6f926111266b27d21c90d05fb5a39e85a5f17db0449c19dca825d0183936afc5856fe7049a949a293d915d31f548ee56f1e4397b29aab9a4393d1dc97cb78c6db3df1dcc77e76d771800ae87a70aabdf8a517a1413567e47ebf3f4d24b5bcbe0f169b5bf51b72f77c9df6663739227adddadac12bc22324094037c5e20e944a46ee214f428b941c5ff45627d4f20545bddd04a37d84cc188b8db70d4905d6686f7602226b4ea308945c209efff86e4520b731a0ad7aa9643be463971578b7e8c7fba26aec26ee0722a5336a91c862300bc56efb03521cfa8192d3a80b5ff68d68df6aa7b5a7a12dc3ba513453197aab4b6f3b39368a3c648f7fed203629720219a43f17d4687151d2a1d9a3d6149a0044cfc639e1f9672a9a1974ccec2864735b1070808923681ecbb7b55a274c309db2d47fcce8ead8b5de281702bcde2decb732b03582fa04a853335727b2154e4135519b2032a1b2f59517069bd4c78a6171be2a01ea715fa34d149e3e6eba5d1fa2d758e66b3eb1be6779f8b1b58d41d7a4fa159df1ddcb048197f6514891025b5ead44e9967389d3e7a8744a2ffeb433c89945f79d78145ae410b447554f966e4cf859ed29f8541991d00be530e5dc767e2062933f89ec52e3c1cee770d208a961f9f5859312f32c897e85d443a881d4760691a319b8419d657aca9448d0378b9b50851d035f8a4a6f765d0bbb35dbb9c85ec07b776261abe34c986c45ae8130028cf92577ed5b23f4a13fb54c8f4e7b3c432bec52137e89c3c62642fb4caeb42affe42b654885d506767b052f908999273d042e56c0a238c4b82b5cbec1ff6da522a9b0f17d565524b7b85ddaf8665cb3cb653d840c7a8eb5b3b3ba4e5e3568cabbf35d433a225971977b82bd061d0e6d101de66b5d3a0290bab961b191cbc48880781008cb1e248155d868e6e56b6f4f4e4da316bfebf8e2857a32365a3c4b6ad38d8dc669ba75ee5fdfa566806518d97483f580c9abdf613eb4c68ee96858eff655b9b063745a83599a55481fcf4aa3f62ee58d83966b7b1f98b3e4d52d6eeb967797568341634f8789f236679b3b90620e7663421a38738da19e4299438a47a9413d4a55808e8d5f62e61737541cb6b74726b2566a8b60cde91b6d46e07d7dcb2d255531b4e14868124fe4508cc91f5c788911172c06742c6a7c49cd9bfeac187c38bbb7e273462c6d8d337de5e28ff4a3d68fafbdff36c953a80f4e038182deaae4090104711d153807c55485c031f52fe732c2a88b9d8cb95a1fd0278342938c4df2af149068f5ccc0aa3b9d05003d0b65e46d73907c14fd353116384a963a5986c58b12a1f1d7790e1c136c9a0ca24f4fadcd08b3cf966004af350f498aa377264c6016151d31d4ff610b48d65b4b87f5fd2a2f04b3d9c761eba5224a5050f6de7e5e4c1ca6abc52f26f84e74af87385c54913a4ee88adb3cef6db214919b078250e10b1cffe44f4a41e102f4fe0f33030b8c78ce3154eea4055393b074fa4405272723086030c66b85c05e0d346c3f6f2e8de191bf97c56740d06cd7986282eda1d5e07ee8ec28a46e1c2b69d11604e90bc9573b345ad325c8e49acfd13b3239882aa6ce56da6ea64446d5fb83fb84a49a4be566ea2c66a6f86412ca00c804cc4ceb26aebfee31cdfe2678ebc0f4bd1b03f07c6bfe599661c0f8f194742fdc14eeda5b7365f66761d6797109f52fa622d5772cc0f034f47a1edc6c5795b2568c162907a4da88768fd5735c648e3cff89b6d2bc77e4398549893acdd667cfa14b62b620d32946de938e2022a3d450fef1ed61e0b8203d40f9af74a00fb395bf097f924c66f42ab65e723ca949b95080cd9b9995d97de630d185e27f548ee438b47e42090beb092595fbeb1f8760d34e92a9a1adb952ae53f71a1d0b017b6b8e1fd9d9f3e201e8ac544a25e5bcf5b3b99a0b8f06c84fa0b5ed56ba341c4ff82d1c283c2b44700513561d808b6a8cb6c82e917dd500484c909cc405a71609cf641d62908a0f857b7a0e2032546494792cfa81cabec9791f35fd89f5ed3406e86c130cc6976e89916c5133f4efbfc31b1817f4ac2530cf0e3faea93746ff5cb379e00f02289c7ab18f7bdd2dbaab70a84cd057838850c16485672e15c9d87865e419ac2d14c9e6e6fc2d7d80706ca1ee551962f1e21beb2e447b78653897e7d5736106325ba0273604262096471f922be1eea9292ae47c08130994f98e80354178102f34c405aed4c63af785b4643fee72b5f259a298702ed58b1faf1c06f749cc02fee77fdd57c2c11efcf8400a908d5c414e422b13e5c0b563085f0923b1cf299a39031e032504ad6db77a1e47a68d02d9f0b1423c8b1937b2671d24d2df821cb1631c6d8f191755064b2941836cc9e794caf380450565e26fac1a44c769a97817a8bc32df8a26067fd4ff20e735966f6442fb24214b5e7d26c5816fd61b465b89982e07baf2c037d5dfc500d683b2074491f57730b0b8962483582b8eec7ead2e88b938e8014f00a9e849c296da5e6e42f924e1ff7bcf907542568b5a6684adfc27f22d8d0838fb9eec9815b44e7b5203407c4c26df9e26a1b38745165860ae2ce5002709d7e45b53cd01b0072c81e43b6676319f608a7f0db90f4fa142af444cd373c9c7bdb9e110af0a1cdf17789f59cf4d89ab13fc27ed762320914ba7ab1fd69946d3c0d49f9e971130de3ee50f67cdac746b3551a1ed4db5ed61daaee4390b2368dd2a366d2a03ef8c53f7c132c6a4c2d6508c5772e2ac0e38c366a7ca45025210863a97b20fe3c3a80a26c8a8e6b7a537fd0b085adc6d891473193f7bd57ba0b3c72ef509c0559b8ff68a702831638d76eecd1abf22dcb780101733d5f76b335f784c69a23b877c249ef9082ed65b2e0c1bb122064d24fe8bbf99d180aa570c28c580d80a9731d6aebb79d30699a702dfab2cd0839820fc15164a084c67e645be2a68111be16c904b6bdbc342032d12a41bd25fa705f07e7d9c3d390077751e0cd75f0bb410562d3c1d9e816dc816807c2fd523a7d5822c57eeb3b7560b7b09f17e547b6292c0b9f3582db8a1053c41e3525e32d4baf16c7c7d560a456c1402f466e1b10f1c456054f403faa007977604279e01fddfd25c1f840f379f21a2a6b77e96dd45dd56fb24475a836867dd656187fbda17f622022a1a675aef0b931b8344b68089321bf59360741e9579251f032cb1132047c0ebc28bf838dac11b5b34c3cc557793ab878e055042ef230f24abcc3f7e1e9f7e89e5f452238e2a8adb0a213b9260b053f4cd61da0a3e3aa65ecedc2121d9bc3053ca979f9ecd3cfbc53d6221ca154a5600d423215f0ac4c8e4c36b782eb66682663237c1ee3924f2537be674ca4bfef52ebeb0b023cb5d135d83be3c396cc9c7852068a5112af9dfe15c4b51ba66bd962eb0d203239b31797420cd5d3e4e1b049032f835eade6aec530e9ab43d3fd70559df462a5a701f21c276197e8e81e53d226b66081d50078ece3845f85bbcf4054a78518000f436b8663b48f50bd3fde7cb4650b093a35d05de72317d0836369da82ac563dac47ca1e81702da9cce0282aae631eb593bd30f4f34f4dbbc84f78dd58cff6ccc7654444594ff496f93473c8540dc289088f43f35055690f2e85c162ac716596f907093e9f510ad2b043c1a7ba4aae92b9fc2a35282221d2516cdcdea2ea4df1f4095b8c17d4b6e54e34f7981f565d66e7683c12d0c8fe034d2be8d9147b58ffe5972ab09c2651120fe6afea82542e4c22b973bbee40e52cb1cd9fbc67e84610b9a318c9f83d9cdc6041138966569fe25e253d4586948b97c26cd967832cf08affdff19c6fb84fa3a33fc4864ef5f99f67cf2dbca378bd9f4708a7201f0b2ccd7bec592e1bc89fc5461c3462c8291114c2e54f2e569ad4ee553f77dd3deaa06327dc5c77c724c5f093651101d42ec646e81296c8c8cb34351037fcb330f0cf4903f09e5812dda00215db5c94db0ae767505de5e465ae56ba84c67a0a51dfed967cb48b05453feb6018cd27a78bab901866ae0b9bf880d86d359a664404afb59e0bd93c05d26650fd8661f6001165417d47ba9b260fe823058402bf5d49452484a8b05b87009c34f5ffae2ecab5e8f40bfb34b77df81ec1c9f055e85322a808944674d6cb5846e3e2f81188e7b0ecf05416c4b870aafe22a8db6287b25a914bf5525b3c7921dc07f3ac4af593214acef8aafe70004ee8b31da9806d6be1a39458f806afb1abc34694f0aaa970bd22289f91b1a35aa7fa2edb828ad245fb21817294d42341fbc26117e4544be295fb62a26dd24e570eb57ea4229e7e4635a3162f736e9e84fa970562334d63a409975e2f46e2fb6d79b2c2eca8f922b0352d9f77ac10c9e27514e60a772ec8263ab6b7d47bd2fe97057efd8db5cbfbf30f0e2287f61846c462bf53e7f7c45f3ffdaf32d51e979f260638df1d6e3ee3ffbc30cba0bf4258806b1ec8c98e9fb246fbaadb0a9ca1cd79bc69c4338532e6117e65bdcde8c528ac295e261c570d46a8ea7d9dae0bf1067407b999dd631f03e6fd34f23a7505eb20c22e03304847fbf0204620fc089fcc716cabed3a8cb33c3e949d30eb84b82ceca697c4b52213d79907543ab95ad45a058a1ed9b714b6e2d2fae114ad18e542edb501df6bbf5786f8a37673a2da5ec0c58c0cc61f01578342274d14f6408e115c12f815d24fb42262e900951b73e3c391ff645ad8d6dda24ec226b1dffce569ab98fb0c8e39e0e3bc012eb3b1c1bb40ab0e85e93481c0d492b3e6b4bc5a622820f4fb5d599d51d6e6ba0c34a7b9c65e852728285a1643cd6cdde8bee4cc0d11ef47703a87637445df1686b3d91a4c0e649ebe4826d3cf120fd2f55ea1e65f3aacc592aaa923f132c59109ca0f0537ad90e54b3598a2408f3f2c3c71de1958061c427d06c3f5a1aaf57cdedd32c74eda7905756ee91d3921bb8eece10056ae8e3cb1b5a649e7bbc8046d7b2645c7bb026a87fbb150b26d5897668055b0de02709ae8977ae628cc65901ee9af4c6780a8a0166232ff779d2e698b94cfb1613af28808d3eec0da193306cf3b601afe507bf27644a0e007da8f03e19f7a86c4a3f51817e7599e6c46b7e57d551fd758d83f9cfa60c81829eda3c373ce33c889bbfeed33e74ad2db065203cd900cac17b2b285fa220f3273589256a6884a69536a83691826adad2fb27e251aa34bd9a551a0d1a09bb6d9c71f5d34d42b106ffbf3ebf4b246ed402a13b7f9d11690c1fa9e4a26ee36a2e11155a07af66fb037cae25e37ee3ec21f12649f6ac36944b62d30fd5f32bc599b0840429c5142f9a269dba0ce4b75bb95d2ef5b9b764fcdd3e4f272ab80fde4efe2175b9fce3408c932134c8ab6618503baf7ab702a0095df89d469141fdcaf0ba15251b519a959960f383827afb318ba2eb75c86abd149241af43a2e8b120fd09d95051f035985457776d20853fdcbc2e68ebabd4dc1c3688762b3678a67a81c90856ecf51a5916deaa933340ccfff5af84b1d7b62f92f73c0aa08d43a02c67ba9090706082046dbf3001f2de3f7f6c9b757fdae0886636287d30d820964ab6ae80f63695d54093428b5cb030badd66220447c81b223b993348658b6552627b2b1691100fee5272c00a3aff2e6a575f7fdc30865ae1d193886a8555d9ad747dd1a6dcb18fc6cce4ca48984b4422f9448c346c0a584802b6db8cb88786c79662a781e20b316dc6cb9bc9a710ffaa96579bd49969941d5f53a3aaa97a1777aa4836f7f5d1010e2b9efb24c02d9f3651e1494f9fc8c4a5223710774328aa7a1c2dc434b8969db5071f062eeaf10db875819ad8824d1056585de53ac9039af6897ea514d02e2d99833eac7fc35581ea10a45a6ed73f89b7cdb6a93ef3706ea34f13bdf9e8882af8a2f74c468e575687a0c2edfd7ae4eb9dc96d6584b1887d9c70cad7f80ac94dee38c039c584ed86943dc9ad467f400d8b281fa3f648e8669bf8e2b32b624335a949a0e1453ac35b7b3b879e676118265e7d920bcc90500126ec3563941d260b8ce43a1b9314f034cfb3a60cb6d5e8593163de399355723c8af278d31bf11f5a2f5f26070e6024d9eef284534c4e0a92fd81027369ebb8d7a4dcee58aca2d405d1cb3ba82754b3d43e36034586bc80cdde153236fcb9313eaef200ce6314a7961264916069956071d2b57e68a97ad963d265fc6686db992f2dc00ffdd4713dc66cc90d6eaa498b56502d1c4559178787aab3a374a172de0b17656374c0b0523c3f9724cfc2308f20c94c57709c465fd2e8f755e555882715e958c8f043521d8b662644da2a2ec1039fb332d6efa3d0fa988460acaa9de1db45de82b34eb77a4156e12640b60d0d51dae7aad644d09a652f76786bf87bfef38f5be9ce3e902c0a261385ac912ad6a1c3024379c8eece18be70ab3f3cae04aadada61643ef97439b5cac8e63b7810eba20cb6b594db640f6d8aab6200be2ea6626e3d865be6a671e2485149babf07888bc6cbaa63e5cd8236f9057a99096d821937753e1635cc52c96cd8544be0d6e1c2af9d9b77e79219fc7b84597504887cefa6b0425657360d54b0d94f22c2fa006a3ebc13bebca97e6cd1323c270518090a1660f193ad5083fd037919aca9e536e7056d54a7cc1d4cbc676e88e531daecdc1f2fa191aa7e1a3dc0c6f48db5c6a86762339b9c09244003185da2d4a29413542ca67d1b6140c79fc5a26efaeab20faa16888fb33d095bea921e058731c55c204bb819f5978d7cf96fa0255a3cc816586dc5f22e152cf6a36018050b5a1de13e15d2561bc1dbd72cf4e08463481f23c2c835d2a9e9a3fb6bddabe54c60fc6cfa346214307a1944b6c6d93a5956b9efba786a8c3eba33abda97951ee78a520ee0471a75f7a20c704c30b56307a0518eaaa54b4502dae3cb5deec5eb435b334825cd6dfbef4080cba8c4a905d8d6356b391bf9ebc177c5c4efd8d56063a178d9271c17f4eb40e2cbc4356e0d2a0fc02d0e2f2a03842acc110319e5eaff2584080d4f6edace9f5c4bc2c08e0d563c411103b4e9b3da53291ecafe20a80bbee5c1c01618c517639608720748429d64468b54e79a154e9fd00ea7d1158fde25912a226311a5097b0aed609ba0e1d12d163af422ba20c94e80025e9a4a314a7be1c6b858fb07ee965224dee7eed506ac51db9caa6d8f3f36a99b1225542e0840f1144c3abf05284d39a87db5eabb1e4e4a82a95505b82be26389ce82526f3890c448e731b07414921a40d0c3d5b47271365f12b1a7052c14d9a0057561179b5e678a5d83af07ecaeba369efab47403f5396bd3d1edf1ecff8e9840af7ab9a8b0f2daadd17e1d87b64e61ca226a1da6bf27ce26eb3468bed9d99882aabb9b0112276b742320890ad1ac8902685df39a7ccff49f2a0df2f1606fcae428330b12a7afce03c9901eb0440eb603029cd77d6f0edf488616212e7f0449c17e754a87aa1333e9f0c654792ce3b9e80a27e6aae3a0d04a7ec74685fc30158236e9853c4608087db8b9516fec0f7eec703a4136702b9d9509fc6aca243f6c63c6318b643790fbef10c31cd7ab2c0f3765c944d2c8be8a4858d26e6a0cf13bada9fa85c0a94c5e76184ce9300d3de06b1746d9c80ea6d670a89872a004b99366b9372b490aa3e640f3e605f206ea4a876f4343903f55eb729361e8181e290d83be9e2f080ab5af82b0fdc45430c647ba4c238c1cfa3c8319da15a0c2e0667efd5f438c359c0484c1711d9490cc93cc533bea9fbd28f3d292fb83d51263084a95d13c49cd968415aadf38045210c14a2e20061435eb9f5b8ea1cd5fb30e60930ccc56196a744eebc2627197b2648db8bc41c7d121a3a9a7a42b9dbdc552ed0e3ca418c560aa30c07b9b6c0e41bfd3e6d843633423778659a79663bec749ec27da1025d4b8cb6fb81088c038620b799c492d5a107ebbce934586b6c230c0429ea8818f0564cd16045bb2270a243652599ead17b11d11ba7df8e28111e8347273e169211d25cbabe38bbc25f1361ea632e321f976525f2291f39d2d122a5b875daeb7de5decb1782b6bdc1cde8e654b090f89d741136bbd2d0e5d875e1af76546b6463cf53387f674ff01e7b534dbe9652c72b1791d1b84c7789e56902f02fb5b0408c1760f0cb18155e2d15e06319646d1935a43f15a8f69ba2c422ef61542f9c365c84abba2ce860c45ce9c867226e10b765cca77b1a13ef6aac068688850af3372667074599d02bd35521cb1c1e44cdf6e9fbcd2b0bef1d6d73de9fbc1f2f819375b354c908048d6e66dae9abd533c32d23e2768078db5c7687a9d54baa486376feb2d1e5765e66e7eaf5ca124424371fd4d8d7be28e6f585a63b3408b260799fb7177a5a66b971345a9f9fbc88aa848fec31d869a0cad92cbcc9da73829cd813b6c2250b9ec5e3a7ed4adfb3d0e70070405a39ca12ece8280f51835cffd7804bd359f4f235264f9dca018cf8c9a16b5f024445ef71709c01d22057672826e28f252f4fb91fe0251b6959784579c701dd8413a8aca82a322ea4f8c9aa6ebb15dfe70245c6628a6413c8cb27b31eeecea3a7d898a2304169a4d0f5a1b30ea5aef58f7b40d0cbf0429178386c16fbaa6462897ed21ea77b2d11a1711e83c6fa2b3ae40d58fa93c248861e7146bde743c8e8a900cac376ffe6fe40d58d93815fb0288c05e2a88dec044f8c60e2fe7a7d58c1f90d3ee4a7083a02e49fead2866e5f1f12e726eb403336544e9ef2fe21b72bd7bfcda1d24714afa127d4e897685f5d361701868906231be2f8446928039a38524c25e6c215b8d93ff465b9e23183876b8cd4a2e3aa7d998d6e676cc7b3af986e1eb128626dc98f8a6ef3ff230163de48ce2a8bd83e2c97ca0b0241baa3fd70b692d8c9b1bf92244c8004d489beb6c6163d48a87404ed541f7dbadf30f6e93f06915499b1bb9015b4dd32e01fca1ba7f5a5fdae62668f91a237eb0af9139c99faaf7da1baf3c903a80f89ed262ed576464af8f9dd9f7ff03afd4a1d0654a0680e9813509580120d800dca34f8fd92bf5493e171f418954eb55aa5a934c057e387405d47b8666488c6c301a25bca11ff72fea84405f25ec9e15a5f2ffa8527b9053f1dee2e6a5dcf6381794cecdcd79658d4afd3cf73c61dd63b3130c127b3b3599903644aae3659dc8c0ee816026c19aabe21f9ceea4723c531f07cf4946ab518fd34193ace648aadf0b5abcdb7839804043779206f7a6f4456c9e69b383658ca0474b2d419aaeb8f1c8b037c6254836e13aaa78bf131bbc529523d72c44b90287f6414f0f896878119d2ee1031182e613ab3f3e69c333ac15ac79fd318890cd8173e298a4783563736e5927c53ac3b42ce8633af0072ad31318ac8de9a2c1e66a49e46955fbee7cc1349c43391a58c10c9f97b8ed8771d106327eb9a9aa722e8e38558d0cdafcfe54799ae62420611c3a0718e2cbce4a16e10ff89f08344de1c0261f06c005dda3c06c5e197147f829ee470d86256442c6e7859c1d2ad69d366c3d23cf5f8f8e5501328be2ffa6d8306e4112868402404cb5ef40a1c51892a74f7be7c256c6e4d0ecdef9de665deb5826c2746a00b8cde7c565a57dfc5a9f9790ffcd271e5d9f7a56a4568c582783f16994f850c95644187f7a49d29a3ed430d580df74a017fafedc3e1580e340c0412a72f1aa606fe4e2ab1bb2ddd7318222601f506ee53348f3484ac9f9d6a261fad75a851907c8500aea94042cdfd664582fefc6c250b830633d0126f586244941cc86cb31a91ca2ec22e6c686011f1d5642f0d6eb62a2440b9903acc27c1fbf895fed3190b082d15ffc2a447cc14cd667def15eac8b9f8ed8d4782cb121b45920618591487ac4ef3f24ce5aba6e90011f2f418a2485522072bf7f1127342620590d9c4d9d031257b5f78b9efde08b04d1bbd99f4a6d0c4e1d0cc1b6161b123ef3b0d077b143a2a582bd0f90b3c3d571d0041ca5818f50e3e4dc330f883a72f618bb49aae585e43a42f70af10ee5ec50a78259a44d8c5de72340c47937a21f954acd3cde429901018327c0018a54a0f16596f88ceb9de2dd03dfd60af7e820e1e6c2c9fb2a2089d7f5b8ff0c7b7da18741e90b670cd39347b1abc9753c54a70da447a437006a12fcab9a03cd6a10e0b09a72c8d55e834eed1d1aa67faf77470f6536dde5346f355646dca66855c75c42321409518863eb981212c3e0f679477cec752c7a3fb318fab1f93620afd328aab95f09b63c98db4c82466152ed4eabe340843af95d967728abcae0ea4199e2b140f76330ddfd9383459a0367b0d2f691c0efb1ad1c89d0144065ca98662c3c70e20ea5e72ebf40b205140112e0dc581b01554054eea16c9de6b4a131633004689b75fe4a8a11906641b500a4e4992798ac1a7e5a2d0c21c933b6ac4adc797405bb4958f2ad0b7d8b4a7cf71813f4bd254dca1364abf66770b1977e2c5cb32ca9534e7f544c632a686cb135e521f8978cc2232803da9dc02c16a36f150a682239b9999fa1980183a1a64ba438e2dae2b119c6ffd492f4c273a8405e93173ba114ebe7bc7bbd42f687c7285a0e80b402203f0e5cafa85ae7321a4b231c29368413f39569432e60e8ac3612291c547a76ccb25d3db60683032280b6590071cb22fb5ff41374dbf8c9a2d6a85622a3c73080d1f2ac8177cb66166ae31f1e366076e7b5ac2a006fc0a9e8047dc8ed5a55230c6a7d8977c441c0f98c81cda835f98a17e877e8d1ccad5281919409c47c4a51d7b9023a348ff6a6822cb5f058813c29f97e5128240bb0e7bf9683f9717fed0f6cd8510283d53043d0a2cc3510755a14dbff854b38a35447f2e849a5e9496e0506d61e08e84cdb372b7abb2dbc1863e937081027069e029403440b9a074c14e2576695c9a7c5af482576f74d28fd60c9c220af449ce91b7be089962192da3c5a7aa4174d925d922fb247ccc2af05ee0cea8916c164fa6de82d89c490d4473e781d159751901e5d92e59df91e89d7eb49fa113408141a8e921da5e514fb180a7dd371baf4f4cf58649938eb7a8010de298f0260e58e54592dea718aa5c63616178cb44c93eba460dacd173281fa87f11a6fe9ab31b2e0e0cb40b624c3e51e1fc75ee79099439b591e00666d00e13f27ffa2a388da700dde1b5a10af3bde8b17641a6b4de6d754e53caa1073049ad3a9b825ce6e9d97ced4825f2d362c0d66eac60a556df4c0f5e988b61c154d83432f77b29ddbafdd2dc7c294f264da9519876f781936083e68c4f8016c03d754ad3a9c62f92a4a3cfea3c99d13d7fef94b9ccecf6c1f6812d2dbc902e9d4669d51efdb1b7e213be7028a511ab6717bdabb5c182e62a1c03247c5de92b1257530243a45983a2d4eb0afff5bccb215d08eb80a07f2a2ee8ec2a5aaabc26a957c12624eb4d851fad26042b9db8afad80ba8fb0c8bbad910150e9baed32b83676b470c55847378579d6035e2bebe4a07c05e359e9971c94d832c7ea42744b4787abcf412a4d5da69742cb469182efc7fc33c80ab2161f3920ee8049dc0ed8379b26ab554cc75d5fd7c183e573ff0247a4074422bbc2bbf599145fb46d1bb32a83fe80e10554b7cb86ffb7e9bff8c9d1f94aa8082991455629615e1b6122b5684d209f0aebc8f2ff2d0e939a96068377ecd5d7190a208b78585861266eaae875ca08371ab1d7bd70f63e0447b9cfe54418e80c5c7688372fce22d9f8392d09ffb79d6080cc480065a364b42d3ae2119c18ad4a588ec7e9df5177644146e952815cb60c1087f3838c3ea160eb87e0ada160715c41aec5c1c18e0d693ed50f74c01bf92e80708cea4885583aeac74713f00da1b256549907135a3f0bac6cd79baf10c29516a11f342a4392d267e51733d70551ec2829063f1a82154dacd79864e04edbe14206e805be516169bf63b16bb2e258673041a95179ea5ec58e361cd6f7451a4c575a70cd7b6746f8edcfb4f5bb4efe9ce1027be63bb9f73612e3d58ed1b193080462c00aee428a5020cea8db975fad7038f947fabe57a8188d27f3289b43dd4ca0769add751f167da02b96c01066851a96805c05f4f90acff12f64386ccd1cfd022db9cb065340e5093b5eb193391e1229bd1c75d2ab5cc9a470d1cacb943409a970d8aeb2230234386e0a4620350994562f400e8abc611277346616f18cb8d6ef8b364918069511b8660ada0f638d10cf013d0940391dea6f959d66b12ce1a95e230eff7f4a7c0553edb4235bfca7926d16a768e0c19ad897b409bcc4d53ff7f692b13fa21a8a7c7b25dcc8b0465210e066d94d1307c0daab7344becbb1943cf78a5b28fb3eb4546f8a2c4e60bb1e84445a4d301ac37fb59ede5f1bb06b4c2590604365676e7e1902a907d1465e9052c0c166893a3c3e03bcff0084b74e87939a57e9e8b127aaedb0a7b8d587729b21c0271ad415d1650636fa1f461900eda705a912225782efefefbf2d9cdb6bd38320c989659085dc0482a1bc916514a8efa4a16b310664eba701c1f6c5982c8027484fe597a177d37e06b6e7404f01dd7a3ca6e3ed570e6e320ceaac27c69dfac8c44724764f521a3ef89f05becc7bbcf1a41492055e3acbe04f1e3a26cb0f1e3cf94255ff5fa1991579d9351a95843c2e5f89534567cd47c8782b41bff74e436f46c4670c7c378f9868079aa0d2b6cef0e23dfcb4cd8058c1c77c87408006272dd26778a1fa65afb1b4551fd41b5fb7c846147df4f7b9cbbdee1618c98dccc6c1088179528f4e21c491b76393beee6d688aa7e8ba9e479034fee2854b8211ca4e63fb1d655b2f885851423d30873b5da11ed1ec30cd7b6091e3140a1fe5a4ff13083f78b662048614298510f5d22b42a08086a76614f9064907ae987bf8b4f15fca004fd36d7f06023feb2b83e3de7a637d3932cd3cce71101ba60aa3f4aa786213f328fea53e8209396322c19cfb21ad24e19e3b38658f895a632971614d040bf7ef0c8ac6f8b158b3d7013a6e6801cd0097051c199db5863754448dcc663bbb774a6cbd46dab0d0704fafd1e0bda4f2b4a9b90502555415a984fde2e9d43f1fb2b6ca8f852cf722be1bcf17396664bd725207e34f506a24e809a9d4ac94075b6ec4c96d7d3f93503008955675f5c6e6e8a79fbfb9e74cee73b3ba300b13bbb15c60541483cc3b54f0a1769ff2fa97fe3de9143d5c0404ff7b99348daabe45ae5ab34dd91a65b40c5b2a7becca65fa953e064d781814b3757324e95a79ce2e557ae1cd27ae34beaf7a55e35c437c56d2bc199f4a1b461b358eefd27a18fd77f9f67e84b86c70480f0115b257d480c542d2e3c66bbb59193dd482f0055f85825383f77a9758679ba6dcb961c82de7d8b1ff780ad98944e93057267c524473f14154164b50d18a552a42fb4fb4d073fd2acd85022367cbd5758498bc11e9dbf7b693d51a196323b181aa7f6a7be428f9df8667722a01a8ff4e7583595d725607f07ef348c5cc160f9b5dcaa551ac111e68cb22764f23cab84f3fb322b1e34fe9231eca3e6bf531ef9f93ebc8fab168224ddbe9b06d34bbed7a541f1db5d8aea014d6ddd75c18effa3fae061352e3101d54f2fbb34dab77d5a5024af18875084768d26e17e227761f1160cee36d7430be0cbdd2734952169b161794d91e195e1c5d2f5642a95884b16e9240c015a4a0b0dcac2c2f189425f9d2b0c64dc4b6a058c00272cd72853b8a429121922dafccbc66d5f7d1d223307fdc8b5c4511aa2e64723e4b0580d45689e73f6f9e05e24499c5107844696ecb94cdd1da2826a9e661ef8686cedd6a42741c4d4ffb79d6a95b068681c95ce69b55864bbfeb6b5996e8fea3d6570b0ee722a959143ed5dfe9e2a9257cf533e811c9049a924bacc906754a8c46377904dab6c4bdd22db7680cd2f8d5abe5f790e9982102e8fd51ddeaf28e1c0f2fcf8bca05c8228f1f58ea78f1b35ead2d22328fc3b69fee3224c931ec1d4dd62006a874f36eca873d4a6eed5f277ec5089de10ba361a50d8a880c9b0172da3a6fa05560623ad6ebebac5ffcaa82b6e44f7b97029786d26230261cdfd60604f35b8874e296e68fc89849124ff78dc69dfcb3f6cb8e3422f0715f19927dbc4d5bb6f7c10a8cf4bec1d210f23848a6679e43d6ca612e2ca1e4d43b5281405a5d5ac8a53a196300462df3dce4fbc7c425431826e1dd36d299dd44ee3aa4b1d37de1f4e1b6d14ff9469e1bcff24c88aa67efcb39fb646295a6342f427d5c85da0cd8600394d6a8761405207e739e2a782d29ec2fec0e2883c5888868bcc81db75d7680273ccd52e4887ba51a0f07f2132d134d2d951901ff821aafeb1bf1c672e4aec3d6697919e14c7e4bb7bbfb5f78cde1390ee4d755bc644d5993ecc763fddef64d2a248eff413a85d5eba280387e2d2de6027f0b108f714e2523b7dcec2284ce204bea7938848b1ca71c7b5ec3d56d4cde0dc4b3aed8d8e5922e3db255b8a92cc08c1547313eac037c6211bf9beb1a76b2bbca0d05abe9c5c1be867495257ac4ef3bab55d766477b96ed8b955682da131e05ef23179f1dfa33ec951bd2d2268c06fbee3556f2bcc9deaa54f6380d826535aed6355031b7424a2a10fc13120c76f864f45ad74c24e5997135b396b7e15b36c16ccdff4c91586b655c87982a3bd38604b8c1187a258e8249f529c0d30b20939939a34cfaf839ea90ddbe7dcb3942396ad1c263d37ecd1f4a3aea4d344b3abc071138e85ea706c20e3081fee55812a722588cf62f27e5ffd959992bf2b80583b3b4666e4fe4d0d3ddfa32f954c7265ec794463b6b99c0dfe338c188af65970ca620a284c9fc8f4f40fdaf812679b86d2e2566baf4eae5da34e1511c025a92a250ee028e5588cd3676d5544b67193822ee9a9c561cf76a78f3be0ba55aba9c8982c625448dea74b2d2af7ae5f7e1a4b94e84d47f67b2a1ac320cb81575562f417277c4bd3f28a0adafe38ce4a01a21691a1f5a9d4612896fb5a4c95cc6bd39acde920c2e2dc3fa1e559d83d64d58e046fd0aeb6b5d4ee8a741c91722444ed2d518401f05c21253bb36b1ce5533f43ce4c6ba3e44a9459b4329bc4e61328791cbbc95e7c9277acafef89f34a12ec6faa337cfb2e100f541fc12c5b25a2488712b9bc5b04828a4ad61d4b3bdb7a92b3159ab8d2ff67d481d506bb93d29bac6958c1d52872fdb36e6515c328cf3b943717e465877e252c756d56cddf412aa9b8a14d084c7012a46da6c6f04eeb1af807d7f18218796c43323becc433e0c99e38911cbd2eedbebc3778eb606eeb8de3da902117333511a4b5067f83c4942bf3a1c14e48e8d79cebc6c6a52a8012ed7534550f881b837f4921566049e6b9b4cf681fa74f7817960593fccb28a480f43962c603a5e1026aa98865c1a241000160d6e3284a3641fb6c3ec0445e79dd35821a5238c180c4f2fdb9f3318b7938f8542135ac80e01ef800d32cdfec4ebe35c4557887957f57a06be0e93b1eb62ea6100af220583177990031d0d2f57638ec2914ef23eefcc0804e5027ade12947cae22cbef83e3a1862b8919d02aef4ddf8efada17197a264c04a2d82fababd626e3e2e304c43153a00b5acead3179346267e40570d5dec50a3532fd8e844b2a81a97257b08baf5b6e3d1cfc1239c56babfdebfea6b120d6b0dc0b59114788f60d2f584fb30dddc7913577f13b413ba4b8186ef37a3f848d58c8599ea013353de3f77e9de9d240da355aceb3a3f5431b8c82b74315f7857e12d8955217a031df62a9be321a56d27dec6d37621da721ea5193f74a7392d3b15862f55128e04d1961924914a51cac241a28ed4392e122b66249698249e6a0444dc5356468c17d6011d7de2e786337cbe3c6e9f864c7372a19c2e65ca793631395e27b8bc2c99c6b3f88995912be0c0534a79fe2ae9c05b21a2e7001886e3a3f35838270804621d0dc7ad444e84682750d6b86b16a16d858f72678fde00df783967d8df3e972b30972be1dfee438659d157affe10585f419de95c5e23072e8be7c3ba98a2269f3acf5191bd55f0738842ce85da327bdc3677e2e4e157716493f2e06e1e460544e78fe1b3a7de4ec77a70ec98f89aa653a962b7f501f48922a029331590fbdad8abd9d1d702d76e8ff2c39dad4d594fcdd58a63c7d58698344b9d6ba8db4d239b631c019c4b7b6692ff3bbaafe5c3f46b1c418c17b6f9ab8be5f6bc5ddba4f1888f7a97263a588cb0b58d73abe16624c18a5abb33328400b7e1f28e0334601518e1d5fe2691e18019517830ebf16b1c0c7ef2b5cf2e5504990d4b6731603f2c56bbae6d4e9531509b90c6d8d2329546d41d0a88281d61c0608d3d2df38a1b323a8804a64e5981fce12e5215e4fd3f0cb536d9beab41ae347993a7a49a74d16210b04e8fe373b46e9e32233754a294ba236bdc7f393e421e099af86fd1bde2c67008dc3b55cdd14cf6cdee405445616c32a6399b1840b635575d5b0cf765d4f003096d1b1a1f3bfa41321d4247ebfa084b7251418d384ca95c54aa8a7d1690f2c98529413df6db4e607d5b13185cc1286198c6a6ccdbc54c8d8bec0607ed93a359adf0004f2c29ea24504733e2a7300273ce96a02dc8c3f062d200e687b4ee43ddbc247c5a6dfe1ac6bad316b204cc03aded9c5df8b54a201a66f940baa1029f5dee6d80d651c2125eeb229af7c762f610e3f714b5fef6033fbcc6f3de1878b88e28ff1183d29457355de7b81ff22bdd7277b945ceac73ce525876b9879bb9aa13c57bc9b098ed31ca5162e46de64a72ad1c66559b59e19b9e861f14b8bad6ed6090ebfdb885c3d39f98827e6c8bb2612de0b8094ebf01b299ab46f6016bae84c000db209bb61a110bdd75d58da03a7ca476947a3d7eefeae847c0e52a694217774fe6417721391816970bf6ad2e223cb02232f7c199b6d13d6482e65179bd6f0e2763f5c07af029d2ea1101316bb0fffed542d93414e64ee133e017dc4159c899bcdfcbe5c70499fd4f87c247d73d4e354ed316ef298ef31d5ee53b5caa00e869799cd3eeed50bb0796f4a35b245d932bf274ec701b2b19e0873958dd9b5b4b0de92fd89918630a8ac8d3ddddc3492869b158a5d2e54ce431dca2f125ec0e8154441282d3dda057de1df131bab8467b617e5ea4650d0749a616233c657440bd1b567897e0e427bc85984f3497c6691a399ea7fb834f3cde81e3490c341b40f3f68e66282447360f821abf12fef0a235a821938d41821c56538f4d147ddba480171edd8a86d52160902a732d1ab0aa5427677b906b0020abf45405bdd430cb49854648f9b678dc95bd487f4a514ab4b896544552fee0a2e239984de6a4e1851394f9626b1b070ceb5c49be16a80cf6f0861c059d4072db65992bdae58e933b4b179cfe18cfe886daefeec614e889f4a16535f4503ef4ea9d0291483769eee36cc34127e819c55093445032efe2b79375377b82456c99665718e9a6947ba8a101cbd57986beb7c0befecff51bca04dda19f0121cba444ee64adec1096a3f2ffbe484d27cbb736ccc841f34ed8a0931571d8fddfb1271ca2a8c679f8a8b3ad641e1ab4c81066c1338bf1022d50a7ac711dafc3232dbc93ebd0e8113657c247b4dcc5bc9bfd3faecf3e5e2b269f1f451baf4c205d75010ef647fce7ef486fc4783cb09e232ae27d58a180d70ad4874a308a779577925a5cc80d0b98d3a512c6290d0ca87a26012b467589facdba6d8780177b42816d541bd6443f5dc67684737d395dd410db8d4932bab0189f63c5373edb6feb15b23fb25696b81d2c50e2c54a3dda43d8e93eef90a9e2dc9142f0f6f10eb385b0486fe02d2bfe8d9aa030d0a6c8403b732e0fe33213bd42205a7449f147426b13784213ecd7c742a9fa1d6c6c2f32c3dbab27f1c471fb0dade088f67cb153df2d47350eda2da185d03ccf52dc39203bfabdffe14864c783aa619e70f4ebb394bb6d6782602c97fa7b5feecdaf70000bec5541886ba95668297d5976743ec65d4d596cfae5f49c111052effdd3bdc53aeed01885ac30904d5bb495050d1bb9d8a8480dcb4cd68b983e45af73fd148a412bb14ae13ebc0bd04e4c355ac77eab2cf30b01f3bf02292e0eea5828548bb130a28c4e91b768fcf6cd2bbb1112e8a31e101a2c4fa3e100ecff29bf1c92ba5add8a79a4bc9b886535cd9ac76be2d66ada81d2c929812edca9accda0d7bf11f69671f428699fa38f46ec577ad29796971416359bd464a3e644cfaf51a0439b4681a79835878dad6e891d871cb7afa04a9a73e48e89b2c753ff7389a9aefbd1de4dd39086b061dcb17069bd795df0309845e4bb7fa8a9fb8e307bdc8acfa8296ec92740101f32b4ef7a2774c21d240332fe05f53a57d4dfc1bb3ec2fb6b19ea54f16591ef44d471c307b12acbfd52c1ae3d99d240a6ee9d61dde92fab36bf17bcb601209b5b9eb3cded7baabf5296793344170abfc7c2b758944b5acc8c46f0ba10a2b9ce831ad0000baf861f2d4f5a6107997d85a3a8a1a73c01529ea88797f798ed5eaee9c8e5c40d215a106ff21170f60861ecb2527217ea8d0c8ee108e1cca4043c6861ff85903196c23853f7af43bf3647a5c75543a1a5d375c4b26c9c3ab032ede9512fca8ec29b60e79fa7e4ed103f8d8ae392ddf99f0dfc14759e6fd7e46dad3d5425121585c3bd3315a3177a824cfe93668e65080c8c3396822e05413828f2121d1263b4f0b1d6f84884f529f0a1cab6bd17350bb22b8ea145b78d163c0a3d6cb707a44a50c2dec00451896583ac7911808c199b04117d54aa59034a8f234113b317d8df9f37d31a041dc42d7ba03a2d9f1385b2ec73cc87ba39b8c08ff5285a7b4228dd491712148802888a91c3a2432566fed1543db4af5006bebaaf87cca93f56e63cfdfdf4993229040a161b103e5a38b2928b03a7bb8141eb599c7b7e25ea0eaa16ce387915acd7e96d5f99fd0dab5a5c01c8cc111baa9b25d33aa0b63c2700746456d6595c333ce50cf71e2f8c8c96cf0bb1a2ce7b1694cb30e838e4be8f6dfceda47c06f6c519d3d79d2c8a88f1631a3b87f1c289c2589e695c83a7b054b51ca683611e5f18eb122fd483a270dbf9776cae72204c8ca193e0b350b4482b61eb533d3a33e5abf0a401d0f613c169bca310bae1f9240b9bc7786c7c35d92e71b508f99fcf541b196e66ba75ad906fa2be9b1027c70ab54cab14b9addeb9f42b54ba02080965b7055e2cda15aed067ee32f09adfa1c7da86999c70030c67a84468d9e0249ebbe64fd69c9431bc273c49d01f43bb2ce7a28b7f5d787dc7fc54845b7b288a7f4ccd893c07c39d0e384f4efe44cb80ecf4f7c8e8d0a815181252787250a2806802c31b0501403b23712bbccfbb5bdd68a6ed64e289700b87f44dbd3320216d830447ab23e8288a29104dba9b84924488817325f726f254b18c5c6b831ceb07b631a27b45c738ed6d712ac03f27c0bcba083705525725a2b0eee2d971b0261ebadd3b06f0de7c2d3654d834d442fc9fdcb0adefacc5cba34fc6cbcbb15bf07e187e2bbbbdbb758ee066ed0f565c15b80aca416629635828d3c425f2c3eec15669962032152d919610a60acfb5a2af66bd212d23b214a50ccce084c68977e94b700a08b249851676955d029eac99df648cb8378c826236f7efee73ca55cc81a82dd4653c1c98dc8fbc45001105b50c04621878c9bf7527a19593ee82f48e071fc3d2b7883c9708292534e6a5e831b756045fe63e9b461866ca7a52766468a04b2948516cd55200bb3ad7b3216ccb90930c3e6725c7e1148ef15d788a9a89ff40c4cdc365bc22256f9ce3ffb1a19128c989614ece92441444d0385b2a683c537812840676654f3ea9966c66a66b0e33a0b6634d83b92eb14ae48a79c9db6bc82651cadbda74741dca06622dbc808bae112b1abec665cc2b391e6a46eecc8a63d1d1398f501020994ce5e8575acb81d3a759720188c44efdcc0dd8b5b0f8ec5b9bde233d2fa03269bdc41c66dc5537fbc56ae01dcae590a299aa037cb34633b63ee014ac79d06334ed6582583b9c1796e1b39e353671cc815b1b1b464c8c3822a34cf4c3a83b5c8a92408080ac22da3f37d68233bba7d1da80c1252aee945b61a68219fb199f0f8aaa5d2c29bd302511801de2b2e5716a6ebe0fc7c708c01525729048c3a23150d9834a41f6ac57559564c1da2a73084eb9fc546507ff9a9f994c4743583e4a510765e3ea7ece69018922316c2de42042e31011babe13f984165f58900286e22441f134d58a096b1f1939df6dd1340d2d61baf71fd9fae7bc3101e3b5759fe7f6d167c84a01828f5b22941cb577bd944c7ce4fa07daa0e385514d8a162cd3dc3d888b7d763d87d2e8d7a9811d9a144da530542cca36b13f9f22f8e07746fa808b2fc1614c8a0b25a0af80b39e86cd335310f294dfb4cbb1af0b8f7eb3c57d35592b98a441f40c1bb399b51f589ce1f5b62f5d2c7c41c9e1c239ff219bf64f324e2bf343adc3e1533be523eb0d7d7937d520b44be5b695bd6b86c11f42fdb8b32021bcefc9dba0147f3befe0bb4ea334eb71ae5464d119c1689b269a3bcbef66c96dbea31f713644b9d93210f3611196c0d82a56b8097fbfa2a493e1a728e878785d228ffdf03926d2864b69ea75e614421e18924a6650a3f056bc91702927a89c465084653da04ee8123c34f109d804fb3e1f6cc88aef2db977db25b82b7ddbc53ca2dd6dbf2e44100ac6d04836b330e43e1c6b6a72df938d7ef12109dc927707c08f83bede6866f78383ac541ae9a6401891d6c414c9b73d913d01ff7cfaec2b7ad91716b72bfb2ee3df39775c56006ea64575f2a3683d1ee04ad465a0f057f5522de8e0761174c534b90b33dc6dfa0358ebc1728dd96684b43778772a566fafbe9dd0cd752481a798668a6a2bd1321d00a6c949b11d92ed1971e82846d4b3d21243736818ea0acb915f0e62005c567bcd8dcfd931684580013f19e1f9d745f42341e024b728c172ed76eb7a33ca66d124362fd7136588872e307d839bf83358c186d629f4a4033b3501e969fa6ff5bf625a915acb7198ff795a4b0df5512cc1d63a118e0e79fbc0efb27f8a7efc450b7f2995364f151aa6d16be0f28c5e885bb79b3d3443835a3351868766e228864b1cf213c841b75e645d12c47b8620eb8ac28e4d9e616ec6312918154218565fdf9e1a7fdd03b3fd910c3373d994b1a6e23754cdeba552fb8abbabd237ab534377b75da5b0f3c35754071b2e9658dca35bff8fc623054127762e483cb4c24738de817c1f40f18a154cb6756eb56b4cac9c7b213366729e11a68dc062c92f5991a51a8fa5431b64b3573c525265fca8359b27d4b96b6612e56ee822a9f5098322710a9b03e6e779980aa4352bb6f41ea46d5c20c60899ad372288614400d2f2fd4ecd8e807e8adf85d83d6bd020390d66a4023149f13764e5c9fcbbcda52f26203e694070f6a0c3a53da7da654557b6ad158b1d82116c3f7948159c56583f3295356d3b05979e1adae79b14695ae29da5a570017de0fd49b774df2665d1d50e1c4f045d570d4c0fc9405d4403369b1d6ce2d96465210a6842af5a0cf32a36cf4f7007efec832a411401df65b01807a201109312ab37c3bd6a241cf8819a56a092ea2ce1c5c62b7288f973a9888005875184049d02e044809064a8cb7ac8319f5f8ff5d4d93354f289ec8ee781cf513d6c0f191fddc5c39e13d36c39c94c8d0b692b613ba0c5d70e37b87e33f9d0b6235042fa7823f1225eafa1b21a6696f13c3e9ecca171f66c8df9ada840d30a4b1c9825cc2cee39d12f81e5ac2d2c3665590a113f3490454a980411c03398a2b3aea823bdb9310727c5c66a68d8adb0b9daff1440824384040b3062fa83933f7afbcd77c4f7f17419bb7653338b2c3a6d192f2b9d7d46282c62b433ba05ac09ae6e702d604ae6f03ac7c6a514add6f2cc2f202a6daa7fe788cc74203273bf8f145befd8b9a08d83b69f3f3c6ba9a9fdab1829bdb4f0b7a04e80e928a019834ed0d14ea4799df8b1728fe63fd5c7b298b6a053df9b71900a02f3039fd108d5f63e4d4b90bff24c07a0178eca9d94e35f2b975f3db14837557517add5d8d48f03e3d468f621b1ff248d240f2b8f7936d08d8f396713a6d24e5d0d2c902143e38834ea6c92c023f382d5641bb632b4b85866cfbc155059b77f43062a06e94515ea919571340182b05ac3cfe9b47abfba399ef6801ea08832d20f3e276d694329597d52519a348b235cce764e217d465f1862647d17c0b302e0f4c6d04a1e88d7fb829fe8da8200e7f4e680aa49cfdaafe457bb2630cab8f7c64432c5a8b1929e341f309938e7ec05f16465631da31f9808650958b1681afdfcfa2db66014293044b49c7125a0ac8d95194e5d78899964cc99ee08d6c4a9261126e9ad253c6ba2ed12b5acd7992676aba4c29ced0753c437f338b763678ec52937eaa7fa7931b11ac79bb0dc36f9274d0ac01ce0a9af6e9e5b04ab3ed314b7d7ea93f35651f6f04977360cbb008ccf2991489c3adb9c69c73cf8935df4dd44edb4a18e870438acf53d1c2f278f21718cb4f40f1115477ecb8583d79f46a4555167b6a10dc93cbe402d884a08a1855e9830a2c1ea1968e17b74fafb4b6bc7e0092bb0dc09c4c1c7688bb8cadb717b7fbae2888202dbb03e02f09747a0cccd884f52d0965b95eb218c043b86151fc86d43a54b94470a61c36c6cd5ffa04de8e3bbeb81b67f2446c317a4b135ae67391e9e97cea032f8de2dc5be845e8ca1ae2950b0ce06bbb356dab2a06b66917b5c05b3b8a1606b36f718644263e298b6097c0ae42f44667bfcaa502ce0da0b202246c4cc52484923da6197dfa8c732c74237cc886c5c2e9f58e5b1397e460bb9d2337831354f5a64f71850b22d80e3de454a7c639e0e14a7b6aa0ff289a29509efdc604c85884b4a604102d234050419ecdd4610f9f9b32fa04b4f3922038d260b6de6fdd6e051a753b20ea140339e546df18f93eb4d485c2b1e9b6ee057fd46a2bcc1e2d481444b512026dd33258b3dcbeaf033c4e3cb7bae7bcf5745535244e6a1fb03cbc94ce5d617a7a8a996b28f05c11f51fca8a2eaa2307a0d8c1d7893c474e69b69758c77765ffe491f57f5b85c5e53f5b637ec291090c2b08d86317fc0b8ec1bda77369fcd8fd40c8d689499916fdc0033c6c56fa2335fa14ea0421fcf23fdf00a3143b1524e1e3b2745d81a002b222dfcefa29db95f0f829ab749da1a20d889902bec205ecdac8c6f214529d33761d6a8ec24a04dafc3d25ed89de4fdf351ad01c6e0e91ecee00b433be5bf823c163f31d91760e80b8d19902ffe5da031cdaafd025e91a4394cb750986be45c526263548e08eb926d1b5b638e5277327a788caebf07c8782b42f5eca0bc45014db0618ba0d8eab955e2d4d0cb7a5215b206c868bd438e947e7fb7221e37755da8d751caa04f220db54131e5cd76403b00a94c999779651b43bbc01c0c0e23a74a27551fb7c96f45a7cbbe994eea8bc2c9a0ae81ef3879360056fb5a43085355cb4b832c8abdf263f857049192c98cf3e1318270da30c5d9225d10c8761107801e68d3d9aa9e35877b8a5d76a06b341c81338b4f15ccfb0fcce01f37dd1e3747f4895c4a6ca2e89be3796ea4c2b00a9900a94ba50e4610073a2ab9b68463bd8763af7aee2671ffdef538eeb9c8b4746427f19a8a2365aee2028072bcf9daed0753a9240ae3bd2f4a09cd53b3e95fe6152d402bf285a8459cd86ccbca2e04914768615890d93368eb763cb935046e12c36125b0ba6e6ba2d3656562575a624d0b98eae0cd6fc4f7bc2c925ea4895551f6ab6090863788574306d47f28fecce88161721ac2fc133f29e7842d8268c2569f40f32107353eb68053ce5f3da75eef930a54ce09ae09e6f1879e4f7fb7fb87211a1a5fc93b5905d01fa6e8086d90980aa99e24bacdc314000ce595c820c567ef75540114a4ee0a53bcdee95048d156c37af05537d34a43d6358fc4dacb490a246bcc0ef4143ea7b5e5cec3bf1a4b4c4c3199e8e6e4d43ecbd6d90918ae69b34aa50ac157b3d1266f69d70904db86be994c4322fa6905d3b6c72458b99053566792b09379d25d46bde2569917429033668fa4bdecbefd1ae20adf245aaf28efa65fea5d1c43107d62459badc13848d86414104472b5aa0961d2c80a4e3eb2821c0e88a695096913fe209149372bf8b9372b18d9b1218c4620c48323103ad667851ced6a12af147dd2f476eff94c53e4b2c053bc15041eb12324691c6b94261c69132f26ae6245d276f32b2562875fc723ff8b5210ef9b48b653660fcb6f371747c0d09a480dd86217086376923e7f69de6bc1c2876e1a612408d1b47bd40f8ebb832468d13407f88732aacabdf5b7ebf047b5c47f51fd4135611906040579f176fff7d9b0c3beee700d3dccb398e3ae56ca264a5ac3b891f0588043ad514dae8ce75012fa3fb67eb4c781eea21a15acec5ccbf0d8bf1e8ba0cccc459218037d41e46614ef66ff904ffa6521c7d04b8e736646e1371ce0466d484308d475f021b68ba19cc8b79c318b66e7fcf4176a390133a248b157171f0d3dd6ae9397f86a6a7b9268b2a4d5dee465a968afa91ffa60327f8cc5419af97a1b529adb4bc51c0ef6595b974a732443129f34f4e8213ca024d63735ceb51eb92620b65a36b1282569cd90ef506f1853123efc9dcdf78125be37f8783bd70985f2df8b4f0fdfe83c8246d01253571925f4798c777e9a2e95a58e668be2a6567d6eca79f253f528f2e85a06902edbc60e75da4fdc633ea5000fa4c3b6798106bf99a464623b162bc5a16a9a6b9924a65296704b7a4fc24f14dcc4a485a81026db5b1ed7d1b6e9cfe2a1246a0d2a3db62cb90192481d1e2c6ec03f4def60a2937124100a59decd24ceac6f14f07c4eebd992689d765af5a5c8bc483be4bc435df2f70d52152d5ccf52497a51eeeddbc05cb12c0899fcb9149dcee730ed125bdb32b86a6978709f62489e99195c11235455d82c286f898fbdfc0e6481aac1d5ff17274a02a0f447c08cdf8c4e77ba4dcc87938f2f52592ec606e8a5ded05b96439d004d1eb26a74a053adff03a2d26b9f9fa8a20818e2fe5b1e861e32736d0e59ed7a353b3d9d0ecd48d5fa2f2fb78180c24e42d0624265e71a5cc3091774880baab5b90c19f79895235dc45176da570106e80cb24329f3d8aa136f4ab6ce3d5f1b38a085a973af59d3523ba86184ea9ca4843f3bddd16022ba0aa3bc4218ed8519713c8295470e0d4ed6a865e69e65b3fe51d4ca1c5a42513fdb9ad9c60b82a39eb5ba7e1834ca147bfe391ea24ad36eb00d4c01d374e20517fc1931b83f9caf4fc047656bdf44cf584f0f46601b43c72bb56d92b6385b1116555aca22ef86548483682011a7f9d9e8004453bcf6a01322810f68e710dfa560ce55fd8eb23f84223ac182939f0aeaf3643253b2ed8171e54d0ab621d6080ab52b045f71629a6dee8afbc25165aaba9e1626839a25c804531a276373e46bce0aca2d05da8670ca73fa49e79c499486e82b050c9a5aa62b66ee99d2d62ddc539a95b70d95d9b7c87f0cf56bfafb02e04d3c3f617bca5c90144e80082a9376fde6db44a037b7e1f9687352386b6f202c28dda95fb0dac78bd09af0a34ab26e533a4da7b819f511e9625a0df3ad6adb2c9026e2255bae17bd671f17128a4640bdf8498c99b886af32ee0fc6097100cb7b2d0e12024cf740b58bd6346f4e9969335c319b646141a77576bd8566d13c188744d5eb8415718a7150aaa18e0a202c6dced26450a82a409c9aadc90938e629e4d2f737cb1d257271e189c0b033216b3729d2d872f5b622c23055e0838f807542e95a97d9dfd6b9d616a07ab5672279d84a08de686352adc0a145888f28a95904a5284497be8575ab8add712e55e1a651285a9226cc7e3f2d5a53a510dcb4b320c09f72a55c4fd3ef13ca1a7c52ac6ab1d74f1fff99837a3a8e30cf522cb3f9f98e7f1e9d8eb3ed3b8d0f48fabe7d1ca1c5b0dd7038056b66ea1d4ba5b1afa449930398e241af8296cb3e570fa60184dbf267862f4b1d853727307d899d541688294a3df1c4da947012c099eb55966f659450c64524b507d4618aa78a450343cedb6e771aebc3b60fb6330295fe4281344028a53cf4ba86a73f5f60140bab24dc9790058ae2b1cb8388da58c51d5ec704d14f321212275e2748d886f13e580029a866f6680bb2d032c4989a86449d07c25c14057b06552221f447005f3c06b68085c7bc4a48a6eca9e92fc4472e771801010d3fce4f7092feabbd38560b6c8f36644e3aaa5a576a93a886057c78d49874c45f954ea076d33f61c8c2add4a81f5fa5292348c5262471bedb2054ad8760593228c3bfdb2d86f8009aede865a6c68b0ec6c9e0335112c9546e3a2624f792f08e05153c55e680bf02e70b0c121a21c10cb9f6e1092bd6ada39428508273ea86dde5a6e64a188d8b51ac02221f2a9222039a331c00fe92c332e0ef0918c0df77536599743bad0392137d9d8620942fb16db349a29b453d671eec323b93655ec6f5eb42125a74c59a55ad34935cb47658827d09ce65fec95daaaaf16d41517d191489da6cf65046cfbf8a825d4edf75fb0ab18f03a905f66b7375e517f44f0e437775ec0432bab09cf9b714e9054b141cf03b40612c9e4d4ebf58dc3de3d199e9e0eab1be37dc95be7e3a42801fd68434244a6bc543b9346588639bd429d387e9b0eb531e7d8a5750df0b8a516e684122d3fa9e85b14c34d7f0abf40fcf438c613b9c38bb80f01525b8b3371abead18bf858770a63261184c671b3aa63a6186bbec8ca2f684de22c7db34be8413fc44d3c614ee7a8f6b3d357c87108dddc66754fb69500cc3c8bc56df15cae4cfcd8c51c3836378ca408b625f9a13cb43c774c57ea5c7011822495e3714be70f53d8016fac465efa9ceb02721b8c9b7efb489e1f55c6f69bc48b21daeadd8ec5299ff427651e48217a01718189464f4b4878755b8b83815febd76dee6432489150e332168249df966d0ce3b38fff248130f248eed1f1618bccb8452e465c89d29921e6fae4848ed851d5705c6d186e781a72a2eb893350e6af1d892c8ff44c64963b5aa12c83d320829f90ce93db71f5ad44b135d1338005942925b1a966998d0d449b94f339cf710e42ad5b72c0c052e34456f1155106058b539e81214b4b16dc3e530acf13f436e7f7b1601240f3d6390853cfcbffd40d91b1d8994d495f5f48b59cb2526da5a7ddb40a05e4a209396749fd3144ff379edcb1de1ba81fcffffa73adecccccc7677ef14a1125d12ad0f3639363e6c706c7ad8f0b0d961736363635363f3a326a7c6470d4e4d8f1a1e353b6a6e6a6c6a6a6a6235dddfdd399a554a01be61ed2c69724df6d78a3f747b392503938211c285f003784a2675007777eff670b777bb3d27ddfdb5f7436980528fee5e35ab1453ba016ec15b3098b752323098b7b2ec49f7142c26d366f5ba67d99330306f619a430edd9ee9350be4c1182e83030e9ea98f6f24d6929aa015ed42b3c006b0c05a3baef98cb9e3fab4ec2d3c96a78db9cc7a3e6d3e7f6cf65ebbd3dd5db34023dd61686a1638001b1c60d2dd1e2488dbc0b878a9785db3ba632d91785d3937368fe9cef8597c138927d7592582c5eba2cd4e5bf2640b942d915959c94a2f5177b38015e50a2dcdfaaae86e98fb555673f9a34f16bf2886a4bb53dd5d45771335eb23d25df3ec69fcdab53292d69c880f121f34dd1da4bb9334cb7b028b97de843fc29a99b1da998c4b2b767b65dfb259e32991646b85f217c9e5675c7169c5d2e7da3c347e36cf7bed90f1f3b5a6790e650b847fb440f88fe81f192b498f4a9f6b7b64d6dea0f28b747b359e9fddffe96e547750b33a0ec42a5913f2086d666876dce488ff2336fef87183238a6f3353b362183b69b9ce6e37e33afb4b6367978a3424152d4973f14993af8dd16e8fecf68cbabda2eef6e9fe5a3eafbb859a1513a5767bb46e6fd6edc9babdeff6c66e4f3ce974abeece9534b1c3328581e046b3382fbadb46b3b8289dc37d5c56d0088e01f886a3add1887f64a3891b80e86e189ac519299ff420fe311fc9d3d2b0c738ae308ef46359fd8f6cedefcba436dcdd37dd9c92ee8ea159dc0cdd8d6f2896371cebf6ee6eec6e1ccd6a23e01be69a8c7637e7fdd0d7defb5e521fbfbc67fe9bcbaf3d69d6aae74a6ff6595973a6b56b654e9bcb4077cbd0ac26d2dd2bcd6adcdd2f34ab81189fac54e6f8f32de62eb35eda9aa9dfaead7d0ddfb0c1eeaed4dd3334ab71e01b8a7ff4b2d14b235e4c235a92a434b74b6fac92dd1eacdb7b757b40f4d7edfde08216d050f5164949aef65cd88210542a23d0bf22e00b4f4784c7e9a0ea0f244f4f8c28a2f3ee6b7129f8beef73313ab9c9898700d48780a3cec1ec390240cf95329d8cc017a393770e12e12aea9c333a21c0f57d9ee77ddef77d9fe7b573de0e7a40d51cc7795e747294772e4ec0066ffe8e3e1727385c465dbb522f4e10e0e25c27e74e2f4e10e052b9f7bd38e9eefcc47559a86e5041000286e8dcf32138ff1c0122203279c911f0048aef804428077d8893a7bc5f108084ef802f0818a2e4a91728bee339ea6588d30b14dfe11c74d3cb10a517f0c5f3f6214a5cb9e2ad542edcce8a1043747e7a4972e99dd5ca51a6d4e7a9eec92704cab90eb5e23b2b17225c9028c08ee729972750b81dcf9128c0cee7bd926387cf579cc85bb9caa5775c56563ca57228dc4eeac9ca5528ef272b5f71ce45889473a8172144409472ce855079e7b292a3c7e42523d30b15b7ce4b2f54dc3c2f40116b757a49f2fca47279a27228be93f253cab9959724cf39e75e8418c2f3d44b92e7294fbd3c81e23b2beeadf4e0f98a8b104378ae7a49f27c65078fc8f3ce050ab79372940b146e07e52a972748146027e550b81d95abba957b2b3c3976f87cc57bf09ea09610b1b3f22284088854ceb91029771142a542959cdbb9410396934ec3557a31a2e2d63915b7a0cec1951c3b7cde3991e73b2a6e25e8f35e09f25c48e72515a86ee00007eb4618bdc3b94081f2040a1227cf47e73b9d0b1222705200ce0589ef091411382980cbc891f85e44e0a4002ecf7b0b97e7dc12d58d1cb03a577ddea71b5f746e0318a4f33ccf5b013d67019dc5545a6161d191a2e3058bce0f5656ab9595afb0b0b0acaca44c2b2dbec2e22f45dc8ab7ac386b25652a81beea3e5f792caa95149d2f74bed0f942e78b8ea5333d31a5a5468d1aaee3450d9d1fb4d4a8615a7129d209a306a73345e70b9d2f582d2d3a5274bc6861b918b1d470a1a5c56bd45871560d67b5b4b4b09cb5e226969f4c2d5e943f1600a4d428aa616aa9e12cd64b116785149d2f74bed0f942e78b29353a93109870ad74a6e848d1f142478a8e173a3fd091a2e3854e183a535c252fd2995294bf9329b3b889e5dd4b9127450a6785ca592e2ad58ae5c54d255f597929e2ac70ad5e5e5e8a523a5fe87ca1f3858a89d3028a4cfe81be02c10ef46e653a994aa894a7565d27644a977216172395b78babe1aad52ae52c2b674975aa55c7b2624999bc04bab7d2a95629479d5e8a5c1d0b57c24207505cdc035c4d2507537081555cacf66681dfca8ac957564a2b2b1fca576a147d2ef08773a95c4827440c5ff15abcc6f7d5f8be156f713162a9e12eb8aa468d156fa9e12d2b2eb8140de132e290b0780d17d27d2d9e8bb81512ac52449a585e64fa5e8a586a780d67b9d47859f12fe526677111220647b3f26263a572a55e8a4a8ecad1f9c9f452025fc02a252ca8be315445de8ba95b9d3cefa67846ed72e2b9bad357c472118180214c454208f13a23748eea844ce970c2e08074fe15799e3bd7f715995e7257f2a2de628cce0854ac70a9bc1593e7208c1c84c0a5ea56a5931791609592cb50f222d2eb502e83eaa5c84bbd90601593a93bbd18b910313820a07ba6d20a7c519151ca4295299c5145f544c5c580555482b282b2825282b2825282b2825282f282159415940ea7c495564eac9e584571f25515ab2a562138a9844c1122869029689cb14a3a038d551297d4e114714f5220cac5e068522f28140c4a50ce78018b73412931a0c48413a5273a9c971fa8cef0dc539d512a39d1e194a094a094a0aca0aca0081103d55b84711232058a1031aab8c02a2eae4a9512142162acac50a1a16a1b8a546374381ff80350ca0af782c3e5b93ad58b0d162b95868a53b9ac4edccbead405ab08244315c58bf1fc7462f50d19b08c500eba8a5451541ea505aa2d5432e870545ea8a6b89c7c8c317e7052954edce742bde808f14adc8b2a041d8ce79f8baa0a9515aa2a542150a9ace8704c9c151dcec93d4fa5a10253ae9ae27ab9c105cbe4adaa42062cce059261840e07f4af091d0ee7e0143a9c335c459cab48e70b8e86d309c355722a604c2902c95049e9708a5455806480553a1cb08c1074382597e7aa281dce161e48860d55149d2f389a920be9389a221d2f5ce0a723a58301918020192e4fe70b0e08f75244c4e7427951fe5c27169715179004a5b8502f45980897c94b9c9f5c8aebf4f2524482525ca69793178164e87cc1d1802f9c8a8c54b77a010fc6e0c10c8a945c2e240999d22f42c668223c17d5185ea568c5045772cfa5b708c3e50999d2c17848a0b8c02a2eaf8888ce5fda13220647c379ae2d58453530e1ea7cc5c42a021d8e1335746b75a3052cce3fe77121099442d5aa5e7563b88aba56f58af3d58ba350dee22c7e04cb6b78b7926387166771a2961722968af3beee3b7920ab48bb56be529d4a2ed0573e2b2f525c2f2929b0522f4528ef4c7e4ab9108f04abb84c2f42c4e068ba22225ca0e7355cda8b6171a181cbf3213e22529d7703d509008d01557b9e8b0dcff3da0735acee54f2a070011492c8810a1830832dfc400a1b3c91802914e80114c4d8017de002bf530978e0eaaee0441251605ca70ea6bbbb9beb9f9ee98ec04c711b74c182a213152eb0608201468efc744d118f9c200ef305c9f1151763b88a6ccc60c309a04cf1a8c004a60a9819a8be66e2ea604c8711628b1394c1ca421715e8ba2eaae8228a0b092e290bac9e72b281572a71d185ab54f258a0725351131d580016927c60020cec94ba265c252a5c5cc14d26afbf131751e0a20c930c58a8ef6445941a971555b850dfa9046060419562c16a8b15704de08c60ad5c9cb34e1cc7751d0c9af079dc0b367ee02a5a159d6cbc0016e154c66705184c5979a6d3e9048220783a9d4ea7d309044110ecb0309d4a306842ca04b24a251378e26ca05e4c3190c1118ab0042a492461891e80a7d3e97412a9407184181258820919008500e3b9ea0827972a8a058c0882091757250a186330e10452b090421935e8380e064c445982e3b8ae8b6201cf0b1858e12afa7e6035151844e1eabc733515141c814a14118052a0703aa1744025064e5051c113ae1f3a1548804a1423c02da64094010d5c91851514b10221f0a08ad3ca6bee046350e138aef3c830f1e0fb3eb074c519575439ad4c2693e984a2820514d52a954aa5542a13948105074a2817d4944c272aa0eac5060e16ab9442994c27d3f7e140f90bb0e05a19c12a054f9e78d73085093680f2042750c1bd2dcce058a62dc8b040698c2324c105578491812b388004df0cdf4b4e099a40e30c26821085123bde0ea2ec0000319c4e2a950a9660c2c15281192ea46e9c58a5d24ea9640271ac20010080e1f4a252ad6002df0b2b1b1d00000a582ec880a585ca8a95aab18232502c4f6058b1c00b2b12b8a07a418dd49417502c38c2ca890551a8612a02554a4206708a962f869309c74ea9543a994ea713ab054828954ea6530d5753c922c93503146e4a9550518a009e4cbd45133d80028616be8872841851b0006bec80e00c38130b2c49c0058259004d25108c52860b6c960d1c2caea6128509ae229667a10241b00446096389284ba85051748106190ae0a2014680a0a48311ac44b1c0e98ba2012c9870e2c0125802c1d3e974024d5848e1740ac3753a4531c2755ad9399d4c2596290ba007aef8e22b954023984e544c20eb045ec103d3d73d7e70baa28a678385850e4c504aacd681c517a6d309bce2890f0b0ea0565c4d058b11b044a9c1b2b252a550275309fc3e0a9c50a6941659b850fa4ea7d40e5a3c168e324ea5ee03a980a016554c204b0b2bb8400f0df0d4c54a959a2cac7042d9d0c1709e451a2ca706984c1138954010b4c104e3cea202046d9440500b2b5c200882262ca2e83e3f35e881364a200bf4d309044110044f262d54f081ee36c05cb185abc86b562ee060e93484d209e45ea85039a83299b24882cb6432995427541650e0b83695582894c96432994c281c54b29882b76342b98a585eaa408d09a54aa1e007a8d349c532a15e5244b8e00665587182164849a289521849f8ba38028217a4000b63a011832a3930b94e4538401718d08b1c44c11452a912eb646ae203209800155198620c215c1185836009055b58994094d7c4690b96d3e9c4c271bae13a814b78a8d3e9f4f5e974844e0127181b403739e81d0c0bcc88220431b8820a1e5049c11650decee9642ab1a8a46009ae93aba9a48008378e50799ee7792fa6cf3b27c2f5e5f09c0857e905832f4552aeefc57b299272715af88a7cdd10dff77ddf0b98c3e4f29c83c1f7715cd77d9f0d6f012cef03bfef7b81018d1b504e371480e25029ef0aaacf3bffba8ec5e2b8af5b21fabacf6bcff33ccf3bf7709194cbf322a9afeb2ea04209951ce44c5f7fdff77d5c7762e99c3b9d7aa61dd5e2e2becf06c7b17aa6fdd4751cd733a592837ec4c94dfeade4d8a1e4a013954010e4b892275472d04d2b4425d0d4715c4ece69e5c6112cce8542ad74eea54ea654e742ba24557f278ff57583200d5c0db21411e1fafc5bb9ca8f4839ca39a215e7aa315ced44a929aef622454aaeafa7e472c2a551e4860d582a57c9bb222b57c9f3564097effb585c251004c11aae52a9542a954c2b4558ae929b4c2693c954a4c555f2325c1f135e142f0a19647056705614f518ae971b4f502baa549f587abc1753a9e42f397440b93c073997c9e7f4026ef1026ed133eda00b97860bf7b8e02a7911175c7095cae899064b60c9f5bd80527aa61d94d2332b0d705d45f70c14dfc90a208baba9649146c9d400d3290227d513282a5254b4b0c26432994e272ca270750793ea4eb5a752aa1547050b26b6308373a1a2850a5c20125cc8826bd941d79ed7545c9d7baea6a2051854b428a3bd6ecfe50756533901142daca045152dd070b5290bd516dd4a712ecf6bf7dabd76cf5302e7f2562b2a5719e016e00b9460f2a28f0932a0a8da57bee22997132e8d5e715674508a3a325c5e948f09d7a78407b838ef5c3e267aa67369e1bc7361795e5a752e3538cf4dabce85c5f315176ad5b9ac5c3230e1f23c57994e2ca8a22357f7f2cd805ba438a0529d76560ed2c0d52f70f50f57db14c5740cfd991c47b74ede7e52a9542e4f56ba951ed05502bbc7c9519e4bc905ba50b1e22617211c4de725971d4e894b0f17d3adbc341753d45fb896084106d4e7ee4ab98bebfbbcceb5724102c78e083e57994c3d9f6b06944b555a9956a08bc9a5e4025daad40a5c81a655ca468f1e452b17074239eda8be958b08b8cee592727da692ca6b71f50a08ba742ed58aeb6ef5b1b03a182ea57239793135340eae8ec6d5f9f076ba1def637149ed802a5309d59db4e04ea7efa53b9dbe178f09d5e7dc8a0dcf63b156abefe3844edf37c30c3870b058def781a00d36b873387014f18a742fdcf7c2812b45be1c397638b9c9894a0efae9a5bdd2cbe985085769a508e8f23e2ff299568a945c1e0c68a0568ab4eb73540ecf8d3affbcfbb8229e8fd711e1f25c856a5411ef850897d79952e055e9a048718457c59bc2599707e506aca2d3c773c3062cce61b8140658de1652704f4b4f8beb7326baf579501ed03ebc05740ce71d42dd1e1405d428c18fe9932f04e304a63627492a1269168c91ee22cdc2e10c4a73ea65ad7daefee4acacd85ddd3dd32c1cb6e8ee109f31160e4f6c39e2f0c221d5dd2149be0d5397999535e35b652eb33e1ede48f294b938d6d1f1e832ebd8357eedb34fedb30fa6e5bae449b366877c2e7d6862a63bb9fc2a962e1b25ddcd82dae76af3e91abf2ce9ceacac34f1b44ac61a7ba12c7ed10b89359b6f34348001743750b36e18a3bbc38c7f363bb167daacd6fccd5ba65efad3b2ccd372ed9c5d4acbfe6e7ba021db03654b0e9d4ea889642cab0edd0d8066dd804477ff34eb861f361ca1bbc31f9a644b6299b1ac463e3409f1d33025b17fa66225cd731cffc75cfed13bae34220fb325b1c7885556c537f1cc58562398b1a40e7b95b662fc18f6a649690e1bcb6a04f3f28fea4c66fdaf5b2fa9e3ea7f9f46f462f93219926cd6175f28cb806c6841777beb7e96511ba6e8f6d65f2bfbd80b1bd137bb3d05bc4c93b65a3f6c7af4b8b9b8d5fab292a57dd5eafd9cab8de867b4e6737f56d61e731644565ae3c9b60ac57e0949677fe4464913572223f9b5e796f18c923db9eee0f4b8f9bf34224a1bc2e971634445f175c0e971436943373b6c54c866878d0ad5ecb051a11f37362a947363a3423e6e6c5408e7c646857adcd8a8108f1b1b15da7163a3423737362a547363a3423f6c6c5428c7c646857cd8d8a8108e8d8d0af5b0b151211e36362ab4c3c646856e6c6c54c8c6c646857ed8a8508e8d0af9b051211c1b15ea61a3423c6c5468878d0addd8a8908d8d0ad5d8a8906aa8bb8fb48d160f740361bd54e9cff8cbd7fd5c5f357b652ff14d4c23fe114dcdf7f821d2f16b280f190f1ee34d4d8d8d8f188f9cd8cde843fcf1b1fff132ba23f63f68c48ccf4b6303021160bd44e9f0be24118e8f4f6ae6f2ef3d87645c8fdcf2e357770ba0592f3bdd1d8e5f49d3a45efec71c539ae7c77ea36e7ba0f16b277e21fc35d76b69f974d91ee8331deb58d2216692fb65790a0d655c563afb237b4dd375cbf5da22fa73df3c8746d2d2f05f5a7e7db647b5732cffbeec8590707af0d871836433be91688fd4a3d28aadd64da457b4b51f5ff949929aad4cfd66c7e9a277b74db35c6068178cff8e237523443c6eb3df5e07b192b133c879e8e1e1d9f17cff48c4f5e7bfc77c3c53b3e303749ae556747bc6a1c46f475c69d96962a5d95c86687c7c42f9fc877bbbcd8e679494f9f8b392d244d3fa9f65cda515dd661fbfdeeca7e5a111d0b41710352075df8435a1cd11cf0e1221a22118d75c151cbee1c7eccdb826bc99292b79bf8644b77744b7f7a4593508493a7149494524a592ba9392ba4b6a2fa91790d44a28d19d6a547743e94e22a95149494524252991d49d9494442719d15cf716ddbd43b36808c18c66aff886b9acd6b4097d84353336e2e31eba9b8766d120a4db46ef0e9bb066a6b4d91ba3614aa32186ee3eb27ecb55a42615dd69981a69b55e26ce22356b7648ab25fe68452b2b7d7ea477662611ca981ea9b9963e41549296b587e7469aa64b0753527cdd379168cd48b4648ca4d9e61712ade904296dcd2612245a132b2eebcd48ff7a4c63f78396e8dcec3883604cc921343153135722f7835a2d0e05398264f1efb5a2675be24c9bd5b7f9d76a2ecfebb2ea8eab3f8dc881c05ed7be46b29e31d8f8345ccb2af3fb2359cf1d7c439c6bad92b5cff826d39c970011d75aab85cb37b2b9d5c2f8cc340fbd585292eefccb5ef846cddbb5998e25fd21e97d1309496bd702e11b0d62c980a4c330c4213f2993e9df99670be421769252f214492a3a2d579bcfca6ab3a4ecfe589efe97fa2f69917ff4e4abb4358b1497f4e656730968ee86b361e1c0ee2e6a961386baf10d6998d268687edcd01c2ac6686c6e688d8f1d228f71c70e1e3935ef63e633bd19c74e4c83f3698dc4a78934b9ce6898d25a2dfcfa1abdb2187e3a5f4bc36e6da6614af3d6e3fb477f1d3f0f16a8db3382470c4cf96428231f7b0e417cacb56eaf64414ff9e4ab7cf2f5b99655f663e97384a4622d6d49c5d202fd8c1549b757c458ed5891ccca7a7fbc48f20fdd3f42727fa42ff4a3fd9951a28fd54ea0192522e99945daed25fde75bacb4d9d2a84c32a344b3b29695d6fe8e3f5af1479aa947448e2c27f993a44ababd214a5b73c5d6ecf684f85a25fa4c89cc686eefeebadb4669e4c6916ea41a9819250272f11c4182644788a7080f11908fcf4e11201f21a22127e2211a82e4c8912440423c3e3d3e44403c447c9c68088f0176901c71f10811e1217209f1fc2401e2c9e9214ac233048827c90e3c43443c4362bd5f3b81829e7c22a4cff6c71e2e9faf55a2214449be5689c60fa292f47ef9459e8c555c95ccca7af350d0cf0e0c4dbadb070742e243e41ae2732428c805434db70f3ec4a7c767084fd0d00c11131e2220244360780186d5f8593cef1fd55c6bf59a2f98c17aa10c18ffc107e7217229f1110aeaf6107000ef080239a21085477f4a4c18186274a24d3b2852052d8e729a4b804d51800454da5485287c0e10e66870024af820810c06cd7907ca4a010f745703420203dc601a9c8017831d03e8d1600f1f20e2841fef8e31e95082003add465ed420c91384d05c0c8860c204a5276d8a01045d48810692fe502f88c0eb05476d42420a134db09046977650d11ca4a4d16da25d6e0193ee9860245c92831fdd5af840d20f4296d05d941b231f1a34b4e908097420e90806da0405209ec86205ebd60107d0580207145dca81830158a2b0a23b213528b8a8a5d125cc801908b9d9da0383c8165e92507b4141473a801044972e10810198c00c1e1a749c2f8870451a6dfad185184510163498040dc0b82d629aab0206c80b6516edfdd400003c206da0db0ba29c5592e6d3dee891ae92046b53cdd45f7f39706d8a821bc116ced4353810068e853bdd7c3eda8bc0170053773a819fc7717da30bbb6b6e87af005c9b80805da3c435c77120c8a35375cd719cd719e13813d7719c570aa2e33aced4c120c47125ced41db7127a5da9049372eeebba8f09eee3b82ec551a1e3500d725fe73dc715751cd79d9274393aae2b7d1dc7848ee34a1db7037783e3bcee1403d033b17030701cc7753fba174e1e0705d771a58ee33aefc5755f0ac5a35b713a270eb4c1cb813375dd67e3a5ba8e8ba981c31de0b351f578415d7fdd7180fb3c980fec38af41097044e0ba6b168bd55c731fd7714fe04e9d0e8eebc0aef3386e0747c39db855d7755d69088743d77d1d57e385aa184e03e0565c90a1a300077631701fe771dd05759ee2beee6aa91dc635c06b9718702da48bcee34adc67e25638cf89ae3bb53c2ec7e3baeef36e8582e1408e33d57c3635d4705daa74ea388ee34c1cd7e2bace075e8943759f77c4bd7427c779331c4ad5712713d709e902d005a0a3c16bafb91a5ca9ebb8958fe57d5d0c5dd77125ee9371281b3815d87120c7e283e3388ecbd1f99854a88e8b9d56a68edb813b719cd7711f6784a3a1fbd1cdd0a93a5307721ed7711dd7e268e8549de9e33cd0e3381f9cc7c170286ec5711c102e005dca3371a78feb38aec57125183a1bdcd771e0c7fde8549cd70580f3bcaefbba8ffbd1759c0c5d8a4371a7afe338aec5d1d0a54c1ef79d3e8ee37c388743c72988470090f33814f7e1e050a896ca871c01e004f0715d57ea4ccfb15ea85119e1b88eeb388e9b69539bdd03115c151e9ed0ce8314654ce1c1c5084d5842893082244320a3895c7ad04352e0e08728182d24450ba01072b1487690a2a84a10e521e48814019082113a43cd0f2970d0fca02c20f03184151b7cb8a4389c21705ac081a581011cdf4287b02c046006564527434607ac8cd7e82040143250a801e6ab1afc860b1d05007e6818f880f62f01dd5e779386e98669162b02dddead7cf265f3cb3c5f39b29ca4db43c237a4998eafd293d40d364832a14ca88fe58463427934ac888a007a39c19452a79c6f5583fb56a5d767f356bc966f8c045820a9c4d299509fcc0a0d3923484a29598d9f0c4b111d8f1c60928f2b058141520e4788b424a0fb52df91182b2421c1081d538ae0c0564b0d428ae83e19bc199373d10109a083a452a986a0272fd4d839c22b5284029262402d59d958d908a2e705f3845355480a925145604db04c286f0534fa16c080224e1f4b8906aec68e2292a001940e319e9ccea0004ba70285b4987e7c3abc0f561801001026d5931a40a9c9a7c3f4c308154851c4880f2c0103abe6c98a7824091924a94ed90512b072538353328307c414034e1129d38f52eac4e2f9f029e2d190eaa94252cae4b33274329283a7278532b21a1a83a820e9c62783932ab500b0524aa9785e80e84052ea642400312592408f0572a51d4a2910484987ce8eea44e17032524a9962582182b2e10342ddb031c300648041c789003a080da088d42934ed58d9e1c327c8b4fa4c32802d0f07b5fa707021269429f5d1803a7c3942383087e702c250833a89de0f1e20384e2918503e8a1802a4e27182f96cf86c287d204907cb470424001800940ddf0c356c3c1a8c480a69384fe6cd7c1e7880172020a0852d493082295b5841820f4c91041142206123d98b30209af4c0444992a1a0230630d2cad90133801b04e05f175ca401852624a1003a37bcc81083298a1b7841450776e029408b861756aa920c5ab002115441c5141b90220a2892c0e040135ec002444369a03185580f5078820b5eb6a58925aa4c0748ca54c50398f081e2c1181ea8a2f503e7860d55ea649a2107165734f9110990017c7a7830e0800528c005327a644182117c8088254a7ce0e0b0f1e1608a1494e8e4808332954a80c40a4ca081094040890364000318580209900e101c565c163c2c74677c55fc095d195f12ba218064703de876d08981d2c12a8c0e071d185d0bba127824e88cbe22ce06ae86130de00c2b317437ba17381b2d00005de85a38d6c7d2a9c054873a9d3a9309ec3ecee3b852afd4f072785a247d0d48fa8e94743867a24211ac0e2481e0ca34801e14f14961f3dd584d0182521249df11140ca91970242009c5c3d7831700552ead4e3da79c52ca03822305da20e91425c9469322503e3c28a2b0124212984612b892418ca4557ed122098583a533010169c0084079411503058cf8189054c3a5868b37d34273c2d192861120014e39a6205e0d2fc8698a24efc786a6942a8520c9539564f86454361ef7ad3e99540f4800130f25194aa952d1cac6ca060a070a06130f9e168c28c9e05961042825e986a2afe6af1b68f85aab1aa5968ff366bc215fd0ea46a9332d31e53001812fb0702595077e2bcff33acfe49d3c546a86cf332531b9502328d5622a9938cff4f1f8683eee148397a308540d200892584250444be9cb712262c42704235e5ede696c21093c180307536820e59c0d3d80099e9d02e4e0c3965078020d0eac1a27930f3d20014ae38b30a8d4b0448d131410620121ec008c19b8000b125041130e6002675e025f2a9851e5073a08838b14103104104d7a608204a8484f0d01b801430b58400409463084102f1a66b0650d2c420882935a521a5bb042159af8700386961dcca08b17b8008b2b4ab0840316f00282872548807cc0f8a28b1b64e184111ff4008c1970e1022d3a3085124724c08c2a3bd0810bb46881099e24fde8c3d3b252e5084610020db860c10a50e0810734e0c717104d7c58e2c303a415d3b202c6173480e2020f78f2231006f0e9e101d26259f9fa084600e38b1a74c18215a0a0041e68c2014f7e30804f0e405a3e78d8c4b8d0f2751a473042106a40832eb860c10a4ae081261ee080063c21c2eb872605a009d1c8c2111d6ab00061062618a0049325351a688012372411a0d2f0b6d06901cc4287851308be0f741ee8a8e06e3a1baf860b55331e013c87a1866e062e8749062f060ec7778383010500175cf0585f8d150b6b4586550caa19522d28d3a964ea4a2510f4b8ee9661861b9a959af2648ce6b25e93e6472bd6f2a4a19b33a5a628352b75c44a95dd3d8066a58cc4388cfb8f1597d571f55c1dc8edd24b69a2d3ea291858315374374bb352a76e98cfcafa349bc7c0e410c4cb3afb186a8cee56350b75836e98cbace3eaf916fb210c431fc62e8935dda0920677babb8666a1688d6f58decf999a343713a059a81b50acb266fca3d3c44c6b9e6de9f8ede831302fded3e253144e3fe8b1fc4c1db39a756ac158fe4bb34e499c909c9667e5932eb3eed7ca2ecdd87f56d2dbdd387437ed6404dff0d2c4dad7685eac246e141201e8461161aad2dd8f492afbf3e6eef64eb66eefa8db3bb92374ffb0711dbff71475fcf891f3c3c70f9c1f3d7ef0f8b1e3c7cd0f9b1f353f7ee4e4e4f8c8c1c9e991c3236747ce4d8e4d4e4dce0f1f393e7cf8c0f1d1c3070f1f3b7cdcf8b0f151e3e3074e0e8e0f1c1c9c1e383c7076e0dce0d8e0d4e0fce891d3c3470f9c1e3d7af0e8b1a3c74d0f9b1e353d7ef0c8e1e183070e8f1e3c78f0d8c1e386870d8f1a1e3f76e4ecf0b10367478f1d3c76ecd871b3c36647cd8e1f3739373e6e706e7adcf0b8d971737363735373f323483c0be8c0029884d866af6eb38f25bdf569d9677f1d9f7e93559b8db00b4a155082a8976f443349ca8c5f9e27fe9729a0040a085200019018a3c79314cb5aaf952151041244ba3b84b9cc685b3098cfccfc69e5e9d77afea123ae38c287237a9e54e96e1f9af54402ac274a3cc979f27577a8e36b16ebf04c8194b6dec89b8e6c4b1d2e6ff11021012a6d2d6d7e5aaeb6acb01712ad0185d7fa8d9ce11aec69b6d215cab80c494bea098849c04b770f35cb08308c2041771b35cb08224610a0081a1481bb5b6c5611acee3640b392ba48d222298945440b8840ea0e1f539a784ff367081399997f99fb8d9a36977526fcf1f05fe64fcb36dfc45cfb5c6760373b605e52975977790b76bbb4fc18cc67c21b25ffc2d83089890943189920981b2630b19ab7ec245997789891be05cbf84798cfccca3a96d446ef28b326158d70bd9e29495699928effa5e3ea32ebb05786dda8699e2e03ab7daeaf7f194c6661183696f6464dffef09cb4a69363b49454bd62c7622b8216a3004144314695c47b7d9af75192b960ff399b0acb5d1e55ec6d0ea3f4398641819fda1d7f8351109bfc8cf63f9582726e774999cf3a6e4451333ad65fac235df1f1f97d6c47f6f237da1dbfd7387d07f86307192c62c59c43fdb9ab5a487b792baacbacccf68c68e710802531f1f9f63f9d8a9670abbd971c2887868b3a59151256d1ecaacd7dee638638ba9cbe07bdabfb466afac24499787d8f1696db634f2b7e123f7c7fa97e2a76599fd19c28488873124493d53c7b9baacba0d3e61e8cdb77a782b353d06563379fec07c7c19189759c7e971e3376f44c9dbebe02136e9cd9e1f63fa7556563b2b2dd28f7f3ac998465426e919cb4cd69e2763b44cf264acfa640b44e45a9a58d2171a82e9ce9191ee58a0a1c7d865b347b091688fdc4afa632dd150b6406379da9e6c817092d247022014b6dcdd3511e935968f6d4a6c4132decaf8c754a9a6a70af9b3907eb132cb5b3f4398d0c49a88447333f1945cc7bf220b37d14dd46a11d5ec956198be53bac35b4c26fb5b45775f2487fd7933cc653e365f217dcbb7bbc35c633ffadfb7b19c34a13b246ab5889c44e90e9d30e198da5c2c274c626e24496bbed484295de619dd1dcad08c63279629e949c58f391dcd281dc68cff3118c7f845f1c466d2486b62cdb466f349bd74993cba3b246b2e4f1faf2d5de35fa2f16d944634fe89b1cf2532d69d71ac3b2c7bc42d8642a152ef3ef8d3885028542a977fc4639984164787b994924b2a565939ab9896afb5597f1a51194587d4716595b42f6d99d3dd2135c9a7f95f9ad3acda19a1bd7dcc71f513cb34ab268390d26c7eadec2fad315113d23d2b2bfdebb4d9692f2d97d56649b736e3ea1887b1c66a38ba4f724a778738e3ea638d915574371049cb6ea334b2a6bbb475ac31f2d4dd1d7ea6a37ba69effe6d9eeb08c96e8ee46a150a9b0a250a8540c0d9ec13458b4e34c59698dc6d630c4a21d617ec03e78cd667c0e41a150291d92acb9aca793fb41b11bade910059121313a352eef19f3b1a45314fd14e9a8618424494b0b047397f97808fb9a1d82b9ccc75b3098cf84b792ba63eadd6d43b3ea1095d6dd4c9a5559342bd0a2e80e69b9c2dce6b2ca5ceb2f9ee30bd18c7478adccbc2ff3a3fa46f487d633197477081bcbb307d6825998cf84d8496acd6b65a7ec6d3c3321b31d0568966c0a320dc82c4b260024cdfa305e4a87314634c338ec071ff04c0b2984c16c69e337d2f6a5bf63d8e83234b2faf869d9818c3556567f9192410ffb1e2f43772f69d6188371033d138e35d69a09613018cc6576ac319f21c99ab1531f65c62f677568f41b693a75a10fa2de6455345f364acbb98a55f6e36b2c4fd95863638dbd5863a9c35bcc45d37349eba547fea51da213e33230f74b9b7d9b7dd15ea57dbd32a6a49168c91d4bb38d3eaeb1ee74770cdd5d92b0bb43121ed918f56ccb2aabf78f7eb0511a51586d3124fa13e2b19233a7fe31fc648c92951e51c725fd5ab5d952b1c68c682e7dc29c7fe636dfb759123bc5b9d2eedb5e96c913ff757988c7928efe47359fe2e3d28a5efedbf2c71c67b3ac3f2175b2fc5cd6ba53d69f90acb2996bdd48a43953af5113636bba2def89cbf7598d79c6f449cf34fb78689e2f9615bbf9f746e23ad698539192a68c96b5f698ee84a5354f1f6b2c07313e4952c7d85e91fa97b686abe98f69cc9f466465b52784c16c89a4c7a7c7e9acac7f6562f5f28f20d19fd0de0fe2c7c3fc3324bcc5fc4f921ee19a1f9715c88546d21a094b8be95f1f494baba34f5048c4c7737996b3faf78f2c769cabcfcaead7ca1ce350dafae3b55614a90cce26cd389fd66fe4ccffe87669ad760e79180383c71a83d5c03ef6a5755cd62faddf62ee321836da7a3f08e665f5318b7f14e2f18d446afa8d7c7ca989311547fad7924e873ca489f4f1c78ae9fe905051f34e3c7c919af82f7699f14dd39a9ef159d41d711221495a1bb296c865b347ac251aebcefdd286245ba0f16f359178b2051aeb8e0d929549c61fcbb387ccd95e1a51c62711fc4667ad66877c5077d7e8e660d0dd4a9a35244a774391c4075131494f27ef1f0ba2e2bf8eab873b44908c7f6dc6e579cd98b1a430f7cbb2ca602b96d6711d6d69c4c3181817faf9f19066ad900bfdfc78c69fe911bfb55a886b9faf75fc4794d2f00d6f8d09b7640a4b84d0edb73772cfe55f6aba636b7a2b3ff6d8289359b246b18c3ee9615965d6de91dedb1bbd6af5965f9bd14b336770691fd7717c551abeb5da0c49cd9a5fe5796da6f7145fb49a48ffbabdc6f233d2d332fdf1357ea6e25ff3c7d71f5592becc7f2392a4af5b9eaffc3857b2e6f335d6d85863e5599ea3599ee38fe59bf8c4af17129d292bcde5696b334f1add5babbd9248805969f87eacf6b527493b339295260281244a377e72a44fbacd8e738d7995c94eece36759a5616e4977d36615b981e4871edf8903a9d901c40d7ef25652c75fbb149fb61efd0dca8fef67192d5ff463f9d2a73dfe6c8f5e37b1fc5a264f2afbf1f54622bdf995319521fdcbe63ffa4c674ffe589ed834122d599e9fed51b6472f5c492391923192626bda6bd24c479abff6ca8f6fb27f7cc3d889e95fb3e6af59fc366ad6fcca22bdf9afedcb9759b359f3cb8e27b6e3895f988e9f1fd3c4d31ed52ac596146f7f64cbf367b456ff9ae559b1cd8bbe30bdf4358ef4f1a54f8af745be5852f17fac2f918ee457d92b3f9e8d67d1eb966becc4af71a4b1b38c9df895ebe9a4e6f2b41fa3b18fd158cbac0852e7b316f37113d6ccc4c699af37ef989979928a7846449aa1a9894834b82622f56ca0bb5dcdea89b17a7ce86e988b8e8f1c06f399128987313a74c0382669793f97d5f15f4a8a3fba2f11050a51588008b3235ab6af23fcfad9fdda51bd3fbe302549fac2f44513338d1dc10859187fac47199f352cb8ba6e6f01a8f71b49331d9f565627aa3169c6b59a6ff9ab68f3e39fddd3ac650bd772668893ee9adbd28f788208ff57765ff67af15ad907f17f65d41c4b7a67e39324cdf8f5d996dd9c0bdd1d6b962b0b2e326c20200aae351a11d71a52b35c4074e33f31ae3434f1f32dd74b4d9a6c3a90f1efcf66f5e67bfe51c5e5cb7e746ad6681e477aab48f69a9fe95ff1ef69e6f26be38be569cb92be6e48f69a33b57a93fdc7caf375544f27ffc23fa3e6cba44f7be5c7f8954f4bcbd596afcd18a9cafe9a2f92ac462f5aaeb697d1a5b5bf3a367407928880dfbce5570e4b40aa29ebac5e243950c1ca41033904f50f4d7c6852b357a6a35941a410e406419084342b484e37ccc7f7a7e5276314665f189f7e23497a96b4e6f73325fd635e523124e939d6a33a96d5cbfcb3f18c05610132a5bb7f6822e3323e34093fe624596d3e96d46fcd0e75370dcd02a281ee6e350b08ad7f68e2e3df7a3af9eb32e3d344fad731b58d25a5398d08481120387e68e23263751f9a845fb3623e6d8b072db37ee4a70f14416849d1e1cf10268ec57a747fa8e4b97f8464fc23fc834f4a43e249323e2e93f4208df5659ef6ce5e19e94b9d20e22bc98f6532fbfa6bc5dbcd25cfdde1870d37078d9c28dd1d7eb6473e2bebcc5ff369d931b5e53420270746c394f6fad18a300f7fb46269abf72809721aab57c4b113fbb53e7ef6fbb45c9f88e5a34a773776d3df6d767aa9e92e1f51b22d6d5fba8be503a9f1e9f29133d2a7e1680136569887f4d220a7a7bbf2a5794876b4836bfc6c8146fa46c8737c9a3834d237f2998e66921fed90b1ac3a94d5e8452f352fb531990c4969b34466657d52bc892fab47e8a541a3ce78bfb65a78c8f8f765b27327975fcd2afed5a1616a843eed253aa9e5f2b4e26b866b66ed1af9202a7ebdee8fe5e39fd1d7f8b59bf19f4e5e6848f92612b3768d98f4e7ff12ede00f1ab325f1eb6b358f65d56156561aa6e41066f108e2a1da7146df9f5d4aba238d75bcd4669e3ba2a87dae3dcdda210489d6fc69b9b4d93bf33fa2b43fff74e266edf4a7e5ee9f9699f1a68cee86f159959556f45b2cd7da7dd34b4acbd7d67268d68d13dd8d6b79c23866dd1ce0864977ebcc20bd97b6745a3e765c6f3a964d1930b5b3569168cdcebedcd12c9b087c1015bb1558b0d9b1f18671f2cbf133adb9ceec972f22bd8dba07fd0819f1a78de5e3eec669560d19dd358eeb2d9bb5dfe187480d16ac9a0af88d2c5f4e6aa3e7e0f86714e3afbdc64b6da5cd8eaff1317ed15ed3de0fc265d6afc5f5a88e4eef8f6fb367b3f639d33fba8f5f687c4cffc8f863c9731be95fd29565744808d72a25c556abb4b59a155f635975c8480f742979cefede8070643b62ae118787088d88a78819946449129a587bb84984ea27b9318196fcd8318443e484072636620c59cbb430cb28a631bad696bf0c431a9a163673a679eb885092f2b432ff98df680dc6c3208c441e80848a14595a912b239dafe47bf0e1a3f628e9a132312a12da41144490018cd06434fa63c4c3a4b683e35a3379d61ca7c7cd8ccbc8903fb6349be3da7d9bfdffcea8df627f9fe63ee593afdbcdf8c592bec6b75992a4b46cfef8125f48b4362beb8c66ac53fb1abd34e8da7c8a8fc4837f468390e80f49c53ab34790e8cf1fd54c818c449a8790e8cfacac3f46e4b99391786a982e111f8947761494cbafe51ff91b74daaf5522f36f90ec28e8c4d97c51a4f8af155fa58e8e79da5b4467f4d1197d88dcdee875bb7f64455c479dd167fcc7af9a1d4b7a755eac63595f7f54b348adacf4d15112447c25e22b19bfe6833f67d72d579d98bf67a6e5ac0e2971199820e22bc138ffd0d3869074fcb1b4e20fcdca6a24d29d5cc54a9a483c635975a82455924f135722f9da986ba44f73d922e5e3bf4137e317ca2792f16b95a87662ecfa6b87e88c3e43c6afe6298a48feda21f8ebcd7f6b95924346fa9796e9a541a6495fb9fc5a39ab1853d3a4af6b3325492bb65a3c8e5a2ddc6a9595d2447aa9f9ca76a446a435c51fed90276c1cc08bee069766c524c07308e2de82c13c636afa8b253d1a4b2aeae8e49c41c457329248c6d285f3cf2e25ba610bf4ff339a8766f5a7b415df5782efe373bc567ca1276375569e3d9f6ded03012803100bc08a862af7ccdf42c3005a68e8195a6678a2bb9774cb0c3c66b4e4c8418ea4961c322d395a5a64a022c3930ecb2a2383ebe333e3b3e8b437ff8bc3696f493c8c817d8d8e32ae8af4a4ec8f2ac698225999a5e1bf32a75edaa839d412431662300194c6659296183c1c311826975fc341b4dcb842086ebc5a6ebc00430f18d002834e0b0c31b4bc10839617ae6879616c7921c87d58900582f5d457467a98cf604a83f90cac0616e421a6e639abb11ac575b499a4947669f99e268c3a2e6b594797ebd0e1d2a1c35b45807c80845c4bc21b923d4d1fbfb4511363b05b6c40c1c613367eb011430b00a4d05abb21d91aecfe0dc95e6bf30bb500a00700a81617b67081d6e24290ee0e5fd4e6b718180c06df5ada9811a6a5258b96966f69796969b9d1d2a26a61cd84b88e25cd2245fa216fc1603e13caaccb484a7b4ad2bf41210c0623492ac29aabc0d7ec90e3592dfaeb406a5cc769f834400e0e0ce632b03006c706c6c78739252d8d96335fab390889fe8432eb31304e00bfd90173230abb368bb4a7fc7306067399cd2769facd8ef186f46638dede080623b31f44c530c7958e233dba328b636e6f04e323adc9fca523ed71b6404fc66899642c93c8c81fb2401d8c10a0ee7ebd5e3437931c6dedcd5b7ebd79232a6d257243b23788a47f49928a34978e8c8ecc50aba513649a2ec734154466f469b5885c468728c8b53d282674b74eb7a044d0823251e1d3b2dfcff688270626d3d85f93d61c66f3d79bcb1fe97d9aed4b18119f1711cfd08b07221f2124468892b85e433e433c403c45606e73ab25237f0826e3e3b8242d6cf4c93f34d62763f5becd71ae3a7410f1f1fcd8e5637eac850e1738bae5ab195bbc2db4784ee8f2bcd9f1d79bec7fa7bbafd0e235f1765a3c1e6d65a58f9595f5da7bff4546c3602ddd1626fdebea9ce8ee2e91b474b4263b23ed6ae95c30b58d2ff4245975001a6ae1ac68e198d8fb41b470ac0ec599923656b19e432ddd821a6de9574bdbd0dd21ecaf1d02a3224f4b771a56846998ddb43474d0b9bd0eb7d741e7f63a04115fc98f56dcc2175b80d2dd46e2d346cfa7dd42132d2c410b4f68e1ef298a6ff3db1bc54e7cbacd7e2375e8d0a123c4245975d0028feef048b3d0e0028d1074370c0936f4a315870c39017c88edd130bb433460ba43933ecd310ef6d6a358ed3176c57ec95016a6d0dd61aeb537ba4855f63728a7c7d050e8b9da18f5507c13df7fc9b4766d4f4e0f8c5fdc737a0c0df9f83fe290bf88c788846f648f449ae96869981ac9f847d2c2b8f96f5473dc1a807be8a5ad34182e5d563d06c61f93b4c74398673a9e97e86bb484fdb579c8f149cb6e4bb7b9acc262646060f8afcc7e7e99cce2eab3b2d6fb6425c5994c9b5552aca62bc85318774a7f3cccb8920ed3210a1296b6ac323b934feb76e6d9964876c7c30fa2e299b23aa54a6c10ae36fab7a4b5cf1e5a4c5297f95925027bd890c7601cb0496b308e3dc46fd29f7c9a31b8ac446ed2a7b5be4681c437877c2c111eff8190782c51cd0e292d1049d221570085a0614ab3404b30238c1970618609cce08019183043026624993184194298d6636e80f196d378cc0d5e73991bbc655a97b9c14b18f7960cf61f7cf8d18aadee528e1f0740c109559e30a3c70c1918da84ae0282a63f7a1520cef1af97d59378abceec91d6634a0b7a4c692616ab6933bef87eedc4a515652f8469a644acac7cd9fb41bc4a5b22e55aab45f46269cb570bcf94b6e227d8e8f696788ef69a7e736cef886f38d2bf19b75a4ee09a7046136c943c622c8cfbb7603f9ad4868d444b1a89967c8d231de9d39ae0f348b507df70fc4b69f855bb6f9ab5cfdd8d6409445802184b9041e31b2e218a6e6f612b2b7d9674733f1f687de0860fe058028fb7ca3aab3dd86649d2756997d66a75774e194c28630665a000df90e6551391fe5546ee6e39c6d43c4fb3368eadd60d31bdd41cad986d5fde3c5a717c7c96e7eb8dac293b325f3f96a7ecef1f9116e33ae63abe7d236b92247d7d3e63b596f54dfbd89298fcd2ac5ddaab7cd3dabeecee218ed0e30838f00def67938ef46584297d6dbdb956cbfa2aa908336b368213dd46a05d23e458239c8a3083ee0e5de31701c9cd9a8b60a4696c6ed64c849a2b119cb89597667c2218694a44841ac2598d39ae3a3e2e43c3943684da106e90b10519072063ec6ef94ce88f2d3944081010821142f011043282e044109a344c48665beeee61cb899c002e644b0762fbb208103600840b000109082e4060f981163f30fa010f1fc068981a69b58888f88c3b2cc6268c81655b9a358f323ee1acaca65945186cc6ac2c1f903ea0f101d80332ba7b28634b6257cdde1bfd19857ac0f1e0033c28e2818d168c61c5184c7a346b0c01ec60ca0e62b003720736c438438c29c440b299f9b03a499e3292baac56f75c61302fab59b3cdd23ee6720f5b2d2298cbac87b0b13ced0ecc6fb1f14df39c5d4a13654437129fe6f93e8c0806232212657656566cc9216625fa92d6f16bfe477566d6fc326b86f94c48c4c7ddac99344f3fa2614a7bec3022189d553c43440739d0810874c0044b074a7420240c2584b182306461b01a071c5c664b3ae31eca2c4c08068b11824102f399d0ac44b6078239ceb5c6139a355b9a0de633e111a1243339333d44499c7a0562d64cbb563613961506f356f82f738cc3fdb1fca35aa5241e6130219fc774c7ac4461bed694fdf760b3128566cdf8ed8ca46569b3a35989427cdf346bf6a3af34917a7dd3d2cfb79dfb414468a644c25bb666cdfeb45cda27abec9e326ffee8d8e8d21a4d2c7f07cb78887120dd3da49f4b7ae93993918f73f5db1bddaf9de5fbc3622ccde63230b01fff66d21f6c56222f6db6d4c1ac4463597bb2052adf444292350fd5a05b86eeae8694be3a8f2d29c2983563b39a95a87c1389ce485a3060dde158c93a92d67d7c9a98ab0dffd0e4be1d4fec431307c3a6db87261ebe91b5d9f5a525825d763c876eafc358c773e88b2afd450dccd3c8da23b62f91ec0e4952f18b22379842873750c00d6a3abcbd91edcb1898ed4b188c7b91042f7ac0f2820a2f0ed0dd3a34cb8b1a1b14a13b8cb18141e23337178000c2d7eb864f1992a4222c5b2b04cbe5d3f2e9c2f4f646aff1cbf365c713dbf1c4e1ed8ddc8e2786d9f11c321d0962839aee1ea30649d45503a03ca4a3d36a1105098264775a2da2d7ebf64634e08206960639a4c8e0e6e5531a693e26492afe84a585bd606e7369fd5ad14b4a064961220500ddcdd3ac197ca1c40c889841902eb2d0dd3bcdea4205dd1d569a78e218d8f8491e866f64693349561b2ddb98233d2da9a5e5bfb61e51dac770add1dc5eaf9292a60b89fee0af328b447ffc6b95288c81893ee3363018878930bf9fbf462f3571b624a6b1af47f566b1665cc98a3fc6b3e3da99d1fb47d4c3d148ac3766b1dbd1edac1c92312565be563bbcbd91cd2e835fac339bfd6bb65d3b737b23a7a5cb67654d8d4d8d794c45fa3098db184952d9696f3032e5c7863cbce5d3e21a96d64b4a71c5b95e5a6dd68887d83cfdcb4ae26a7463d66df6f191aaccb43797a4b526cdb62cabff120f614030b7990182f98d34719581fdabb4b0987c9af9b4de23a4c4330ea51dc72763b4c465bdf41cc9d3b4a67f6c24bfcaae95dd375d563d46e630b74baf356b4fe4e18d1ad9d9e7b2d21236049b6182640991ccfaacac25ac0676cffca5f5b7b90c120f6146888a00f11c791101f1fc14e1197a0121f1211a924488680808c99097100f11a024b05c7e6d36b3c4c38c2be92395c9eccc8ff4e69aff1221200fcb775c91de432cb3b3f1499b2d8d66aa1567a8d3c4133b7e6ccd7b9a97e2fb4723f5b27c6c6922b53d69d628d2fbb53d1ec6587f4c7ebedd3f7a18c7f52ff55969c9fb476fb33497c1a4156db6d774b1d24c7a67369bb72b969507d7cffdecf95a1a162b798b9da4acac7556563256a333bf5616732224404e3494e4e796eb3dc51f720178a84307fe32e35be3b88666a5e1dbeb8064487ba03d31ca0fa248e90e1de9bb2ba296272d531e3840dc384da42459a30809dd96339f2e8b4e8c5c1d4692d508f6360732a389d6e4e94e06e12dbf8c621aa657b4f1c0395d561dc897f68a65bd511b4979e0d0446bfe98f15934d299abc494d69a95b5bc7489970023a62b84342c5b72086649ccf3312add0d6b560a4c90820aa48001311a4b414d3853569aeab3b206fd10c965adbde8ccccd79b8f5aadd2d6da092ed0dd364a2cd1b75a2f7aa9f922495ada57492d39daec15675e2415ebb51957daccebe58d6048b34a80a333a6e4688517dded3a0ee333374a52c7d58a055871763775d2330ea5ed26963d56c83ced2d62eff760eff760eff780b325876c96366481ecfd1e3e888a7fb44346fa3424fa7364cd5a3d325e6ae4c80621d1b252da10facaae91fea51195944684f11ff9b951f2c717f6b951f2897c696ba64154fc41d42192e6d20651af3582447fba9b05b5b37cd54ea0f17970e963d6ae1124fa836f884ffa7a7db64afe06c98e825e369ff445da9b4b2bbe4c9bc5d763245a7be1bf337bcd108861747ba31030a0bb3d538ff9f3f64630fd1911821b345322237d23b5bf413fbbf488b5443fda21b607eaf6962012d4ed39c06b80d1a5b5fb992e316bd748b7c700b3768de41309ce96c4b737badd5cbedb12df10d3e45a8b9df826fec53fbe4afaa47834531391eebf6a2212be5fefa5310f20c1036378408a0748d0de7ac9780b97b65697f1d610a2f694689d20e2fd5186e4be50ab855f26c664a5f989e09fd5319f260d5323d9dafba2616a44e769f747fa465a2db1de2f7ff6e21223f1c5378770c55f7e91217bbf87d2020511fdec2211dd722569bef6a7e6e666878d0a8d3e483f96d4954f3b23bb47659d91dda31e2125344c8df40829b997c708098f50fea16e13ab0339dd6dd26b03d22c0e4ca1bd65d26b739b756a221324ad164e8f1b231c70c2811f5354c9e419f3e5b53118cf15dbb0744d7182299e90c9e5bba6a053f068db9736fb0690b001263610a443588ccb8c3e304a695e9eb273040223493a04e674033068a0092db33c1a88a201b27f6822332beb2d065613998ce50fc13ecb2c0cfeef91420b3f9a25850ca4c852ccd03f347119994c9e2379da284c1045139c6bed69d915e6d2d24e5a06a680c7f23310820cd40cd8687a3100020c2cc140ffd0c465a008018582f5840f9e60c113639324156df97a239a6146348ff409960b5c0003173022f3598cd92c2373e9053e0bf4c0024f30a579492dd06301182a20a5e6256d564799ad001315c8f9a189676c4597f1a14988f1e9d8b419fb1227a4e004069c30327ead665abed665687599fb475fdea887d46962a6b51d9c405160091488c00f4d5c86888f8cfbd0c466ea23a551a086023113c8c10492265023012048004a777519bf91311ab3d7745cfda8bc7f6467fee3e10d9ff6feaca4634c3eedcd66bfb65e73a47f61fc0cc7bf5f1b6fe4fdea37090cb12470838c0f4dc272687c4c83f07fcff849846e3b9095f610956f44891e0b7dbd8df4b1502e7fc80581a0eed048b4a4e7f171340b02304d8c11c65c13e96b380b1fa60926ba69a6ef6a8276e9c79a10d21d3ea0ca49cbf50128a0b407203dc0bb6332d2293629ed7e90875e568f093fac30fe98da1e6062c28aee9e95359ff6529bdbd2a90ca63616134cba3bc4941467fe0e61c23b7c1187662d51a543d91256dc97dd4a5a736b8996a055ff180cb604eb56960e2823740013ddfdb56bc74a4d07e484a51d71b5f92d8624298c97366ba4590d28231c3fff35c9188ca80124286bed7efe11e340a4a343927488ce107c1b724c9d28481024bba3a3130313a42632c9f8471d24bba353139930600706744a444189283afc5bf18fe3cf10267e2be9acb4a4db524809022441055612484822021de29f214c603e133e254f9192a4cd01a55aa824cf8c06ba9e844c2944233202000000f31200304020180c476452b96c1a34e3001480057ace5e7e4c9548c32488410a198408328400013200020202333509004f93c99bfdef05ff1b6fc5949293fe60656e69192fa18b52159308d8a42961e5d28be29c68ca03cdd3552ba7ffec9398182ab8dc959551f0ec827726ff78c454d23985dd3bf4329b9e3186348f01ba5e0207ede35aa9f38c95096b8d4ed0d5a1aad384b64dd458c9be5d3e3492058dd8b6469c49786408fc2fcf6e165591795e25bf9c9f262df81e48e1ea04fa1bd7da5738299423ed2fe53e3b94ab158439898a8af92a11c4c79b641e52a78b0200a187a6d28cf678a348a46609185adb9456a200c2f812b3565b71bdf3782c1b420bebe828d6e79a1506f8337677d2c461d5d957dd15d0af17026483b639ae4c278d296cb89186c78d2ac8a46c9718f93437b3775a09baaea229ad1afb9de7b543b1e99426fc4516b18e742587ecfb9760ecdcd9320ec02adb4e5a8aebc90d4d105dd50395d08060da1f85aa7e6dce12d1b8ca75e56c13a28b33dd9809cca7a7ee0a9361b58be6cf136d04516f6f34ed047e2967e2c514f7b1bf34fbe0119e9c8bc3baad1ead327cdfda9a721bad5d32cd67fde015afa80f4383cf156c3f41dc1f495e2fd7a76a31ff1e3cf398d944c6e5a022a210f4fd94bc23e21a654c813f666a711777a907a6877224c0eed034bab2b3a9146d0d7a0be4536db1d220814fef3042f236e85a393beb030f8f2cc339281fb21ca38038b9fb9368624f7944fc4e33ada172e8eaa225a285db028c8cd478b16c64878a1aa060298a37def82976befc51c87f40fd6ee0a0eece000eaca36673f578cc23b24634fef60aa0c3948624f03ca06d940e1f30d76354dbd748160536a5ad588316145d1aeb5204081abff894e124c49bedae89dd3eaa1ce8e3ce3bd7e3f88328fa4c655c717fdb61df9bcf8f25c25b98eeac2fe84804b05764048f6e189d86559622e36b73903d88cd1c4331034145bd567614bcc0628f44dc1ed773b9eff89ccad5e54bea21412afddf12550718e008a180672ee207754802891294fb974ca31dfe369ffde5f11b70c37d49010f6559777a77de3cd4e1dac1084b9996f24185dcdd1a247fe446c3c1c927c1a6d92dac25afc72178221ec6c3de8fa327eb70c13b5476d7781914a2a688b48cf66d32b94065f0a573be30c3ee8ed9950c3ab902b0e308904262ffbaf9fcddbca30982bc2090690d8eea6737687f5a5e5d1278e7e04a600b01486ed53c8fbbd26851598063c5e26f3e57c40a7c3eb03d21f0ccd5776e9514102d3cec4896f575c700ae266b012affca53c10c2cddfc0c2de64f0b58d4c17c94fdb87ba188956739c46f21feac34994e16868f1d18fecab1b34092ebb2de8e6b21c9b06ce202ef644bab0d237a4d6452a289c8927df8da4c9624236b0c873d52abc30d83a2b554924e75527f92943b2044877b88113256c8691c69fa9cac5801255c781086d289d208ff06f1cab3c2ea1ce297d48e22f21e5eeb606b11a16f2587836768527106124db24c2a991b2b673a805f15ab01bb127db82b9b8f81c93fbd1663e1e3bc88900d9d6c2afaa1b535fe85d3e74b91c989d140e4f14ed48d7544bbd1d150a3d8e52e0d162020e8f1a8ba0e83cfb73ab921093f1b6add3d33b22a1a4196daa88715ec9a458b561adbb5876a92123905b5ac132d743aa7e3be67649806dc9064737bb9f6e4086a83c84a04ede81b54d3990ad66ce1c967bacd18c2e1fdbc0a7d34db7e51a5e744af4f32eedfe06e4dac6d7a2b9ed9eabc87700b2b773ea8fa73d60b031dd0481e0c20f38474e2c2cfc9b8eaa18b629edfa884dea65bd029d667cb24c9608df995ed0e42133ddc0960516e007635484e0a2d4d1a313189af2d9093804f5cd80a3c75caef2223ff6788d11c84dadabbf08f5989c6e6a6326dbcb10f22c69aab5fb70e9ed21dd10108ab658d4703efb928cd01d57eb912b314b034313e1e71f54627d44ec63c32a43a93b33cb581ac8ac9b3a9ed58bde221ccee51aca21bd49af0b004c558795de140df74dabb3aa22c3e820a50a06af9c33e5e9979bd9d1ca02f41a9337346555c05151d64e0b568a0b4ff57b33c8555b8ca2d57478cea43858b4e094b12ab93ee682ce6c7cb31f73f47e553aa9d70fd1ce583cc53ea50c4d86d5731f3530319cc891826d84847d0cd94386d214caa64cb8ba50e250fc856998f3f2e01ad3dc480f7ace45dd13e08609fb49d1cbc095f718ed105dd48c519098a292bc96f49707a8e3ffb5a12d20dbead10369dec848263bd0dcbe15bbf3f4347ec36b372160d8ec7f0abecf1b4f90fee89cc47b42c4d53b319cd41b9666709febe4a188d0a54986fcb014bfea76180c25e0a53cdbdb7a145af3326daa8b2826f7a441e42dfeca8d9d032771206501ae730bd8366366be8865661d1e981c5e8daa81766a34944836230c73770cdab0614ae10645b25b42972cd79558502116506377a3204df38a5fc44c85f70c516856feae5e1397dc6bda3ac79dddf393c50bb507544ec18b3a22111b7645673a3140d2ab638f295c2048f45f31144d8723be6f19fc1ec6dafc24da55270979a6ed52d93d05a1e46317390b78ddde7982b028826e2ba4ed6841b88f90e4093bd51685b98b4359915a235fd88077fa7a5985e1261c725ee10432eadeb671d7c0892283cc0de1d05863aa560e0df19cc614f2203a0a3f2b24945fd020a815645fd328501677d7da7997cf6ccc296facb50c72184700febaa3f29379000ee74daae97835bb1704cc7c7aebd731f068c1302bdabd958d20587d08ddf2e3370891331cf349b13a12fe243bfea603c6d2130bee8f39f497aa4d0e9014832589a55b2606eafd64e74c45d63ac211c328c5544082d941aadb6a4e14408f3d210bec024d966db802e6b1a6e92a31711e8659025bfa861e91c47431eba1679a1b0c667bf5bbcc8eb94924f68a610258bdec139bb7194f5ef71847e5fb6fbfca391838cfdaee388456423c5fcfa0a0b48ad39c036391d15ad6053115e60313341209a595230dd024a01f88f03a67b086d59a4e66a1025d6e73574aa2a665d93f382b332d73f708fd3b786421a1f1c2130432dce54d7266c91bea10d82486b81fddcd81704b15b2c8caf66da6543e4e706e10f0a5bde1ad69c6d25cad03accafab0c01f5fa11428c5437ecfc8c2491813b5d415135f220f447eac78aede51b1760eef1e8ea1d225d77e0ca99952f4685ea5555441b7fe8cf1bc7a16717768451e021c9fb4103e5fad38a4e8f2305ca4e2f42210c24e40d199f418414de7c357e30900a6e03d083c570f386f65ce56c8c664da65534557ab08bc4dcd091f88ffb188430d84ab2dac5f6a26d4716b9a85f230b173034b6412f4caeaec08751061abb50e6598e8224dc006d5e33e7d6303974458437b54b317668eb8ae6ed9374530e48f91a7ddcd9d352d0084d2a751f75c83b17fc3df58cca4ab26eb0a6d87d4916329996fa1768d62ab8ec535a33a157147bf509b885a9492786f91d25e568943c0b5eec4b5be70a0e32844a508ef3ae862d5a877d0984c4f403ba0cd74aaf32f4087b56abf5b67befdcda921bddd5fe86bda1e95f361dd586e0408d777a151ef74941b8a22c282e8fe3d2bb825df0f4918ade91db90fef004830a1f11cc14a31d5ce3fcc20dc25ad56973d65bf37b0ad3b1b5e1f5825f2f2aadcd3380cac56b7a0c36cadab64c4cebe98f56d697865bf525314da7d3f859b8b2a03181ff4ae0c63ae98ad07608038dd6119cd7c68db84b581edeaaa1ee9a14aca5bd937fa01de9b64ed297a0583f96e266991305482a8795edfbed07934afbc9a6d21ac8c1827e2a099c6611a2d8e426a7ae4d63b05106014bd3b7cda41a5847ceeae8a228df082b689a4eecf2859c3660ea57994ea0222507aaa6654327da233671ba37b342473f626d5f80ad10da3f5632f725cc8eb60ece30ab6e663f0d0a333aba9e544ce7135c46a6ead89c57f28e6997bb0d8b15ec60d471bac4f0cb885bc4383f1e54b166bd940342ae71abdab6876480c835c83f40c6b34738fa29083ef0ba9d15c65b0a9de488e508e10869e09a5bae7a2fd6943bae4a757d9253ae6c1567ef9a780c4a916332df5b2904c68657c9064871717ba4a1172dc4b63b09e35b5885e4408fcf1649a37aec887a51a75e5d644197daa952f82bff34f6e2bc1d485872b953078a8b094c74d913c7d9e059ce192f40a3abb35573c53014efa2351598f9e45f5b57b903467478b6739d8b1e9e78f22d3746fe1c84e7d66681c6338e4dce5f5297a579d740495d90af11514854dcca137aa5d57f1a3f6ea66cffa1f679b9e709c06452a41ff488c1ea5a001413b2981029580691dd271c2fc2083947926a3869ce73b1171e1652f841d49ce1e8927b38ccf33d983762ad071b0d94354625dc0cc25718a1cf7e15ce18c16301883a25d8267922cb01140da25e9d922928f7936bf9dd4279653a26c3d356a9492c27e6cd0c119c555ae7e6865381012e6dd82009f19f5ba9ffc4f2673399a1d0e21432c6e4ae1be5e7377a5d338e6bc3ad972fde900f2e832f76f7e61de4a2fc00135087b18701b95e9af266516e6f9406587d6a3f81ae8af41a160925dccd01e42745ca21515b169e1754e96bbd76eb31199e62611fb6aa4b024a4958ea7206a62032577f55d7e2c43a581b3a2012a99381f2f91d4c365b2bd4cd8f0dc0047f909515fb5e980fc1c99415f4d7c8553107bcdd4c92e181ff609701ebc0e4f3e5ff4730b21f7a85e013c8c6b2352728aa559794bb223dbfb79f3365616115f09d7e0c8d8f6e4463a0bc02943aada8851655500acb6d30e10b15bd092c5945b34f1f90ab452cbcb0f98864690e7f0e5157ad9843cd2974349ad2a05a88c458e81959359da0d5158f1ae967423e5c75cc3a8f9b9053c3a36580b37eba0960ba1887ab6b365eed7312e4466407d0536fba8957fd5708e619de1688e2d37b7a6311deec91e5e23db2828943c5eb0ff4c03391516b8be19c01c969378add7c1b1188bd3d0fc3a3305fbeb467864c17f19974c24cc284c5e8cd02b1555a91834dd6fbb7489dadf6ba1fb94cc80f7b505f39a0301b787009a6acb447acfee1f7a0f44d8c06bc207dbe45524c3206963699dea3a5af4c00f7babf6c21657ac91d433f9e20a4352ec7c8a0ead9e45077b0e426df1c0243ba9c2a7bc8f94d05cabed5d1a0968bc322aeb58b1c65c5a894858180cd6f138edc281cc071625707b394bdee4581e9794b7f0d9191a3f753a4a5bdc6f9d663a4c5861925caca09504fd668c00e5a098d9399489966ecc3147dbc5f4b786a5e38e260b3e9c0948d718237daea837e95f0a51a649198efdfcdbfb90bd6024124bed7409663e41505eac67a9a89b89267b13706a1de8490ad112d5553685c02fff6eff162367058d3b46a83ba1a14a2cedd85fb1da5131d8c4fc842d49cff0c8cea0988a1f7a69a6b8bac70818ad0d2ac96f4333c64b836017f4cd1af59d4287307a2e5c78068b68106da9871db30d561c40e9457039f2a975183eeed2f11f4e4af2d653a6b5fbe11438490ff993337f73cfabe5975acce1e1cf8c7c8e4663ae72f6f5dd6574385734d00f33b00d5801a03fe2a4ec05c12b053fe390a8a73edfeaadcdf13ecf1e3cec30363ccff57bf38b2fdafc6d149c383b4a8d7810cd41fe7645c76b5fcbc371476546de25c4788df537d83bc1ec93e7b39abe949bed45bddf37a1b31271b383bc5e5fdfa5e1d87ca6c572c797801f8beab981a37382762be920f830900aea4f4db8e258c5740fbcf830ff1efecdbd397dfa5b6be53c07737ece9b1f69d4969e8cb8927916ad3b33e7ebdf9af0e4bcaccee2b4e28230006b6573de87035d0226ba8ff70532607212224f8360887f11e72c18b02fc4ee09e2cb255cea06cdf9666429fb8039b337594b3929208e001442a2c3c954905a6d6c4f35d780934333ec25e97951e8967232f0546aa38007473cf1a8fe77a7f11a5a7f6a906f087739fbbebd778ca78cff35ddce7bbabedac5eb3cf35e3eda45117b0ad1acd837dc18cff4202f420269369a555456862041976c9ce0357ebce91715fa04a5867c1682731c32030309780dc97998f67280237428a26d8daa1f90ffc8f66825b33e0f89d125a908f95527489b805ad598b898948357950e827c3eca2ef89c158d717073ac0777f4102e72f0f9d82ea8bdb863d0a3abb923849f2599dd63a587048d59c49009097930b753aca27b148aabf5174f40a008342ef31e2772f356312eb2e2669b674bf424994fb780899210a94e63a3c043bfa365dd2983a89bf9a6285cba0fdc07289ffc7eea048c131705ba94125c36cc18c9985727911010e3cb584054096f9de5dd21804fe1eb08414035c41e5424170e001ac9e5798963abe1485fa4a7e56767db4dc1a0c3da4f9c203e50841192c0da9870675a008eb39ae0957f63bd5bbf606ed5fe8f05a4cae73413e440079baa35d3bda33051c4d8ebf7fa52b0186b3c175e599ccd850984fa24f8dcb5f428ddcb1a24fc1eaa2603444fd866cbac1e33d70b228beeb8da8a73f652d842036c4be8f8e78f4b0ab0625a90e32cfee18432a9f497a26a326b0ad1acf960fd4dd39f50198755dd556f9fad330cc7598b69b563808f4465899f52ccc5b20480185f5bd3e8321cccd44974dd3c183152537aebef6d3180de715a01a175cd7782de5c6eaf94ab59ad7db032aff6a149dc01125cea49637a813a4923155ecd9fb2591f013a11759ab43cd4e7e20a0af53b70951cc970e67d8f907db00ab8e421713d3b7d4af15e02fbb44f4f3aa4ca9f421a13f9db6651781b51aa68f712d91dd38fd92d95d53f77f1f194f75a9e339c833b22c248b49e7c003d8f7e5983c247132e3472c3ff66893b4dae8b7bab99606db1a8d1264e2adba8a117477b8d9268f07f4bc5acb0ace9a8c788b30137eace00a9bde7ada13228e283c2705cc008a3f08521a5aba316c9fcc056181c4bc1ec65e12949fd552f36ef71a9fa60802a7d7cc73c5d41f66bb0cac0abc85a13fe0bf39d2f084152235d5d04c5fc07d37c57d6900676a068367cfd85121d7da39317728c41ee4c9aef1f1c8849b5b980f2097f99fd5d46a5315a869536e55c89ac6a8b055b542507be03fb92cb28b5cc06a79139bfef8d8bb07ebeb588f837e3c55ef4f2767244e99672995aa27109988d2b1c7b6231df4817f86713d756673127645b7e18ad80d83fe587595b1a49cd7888b09f6e5f870f68c543a023e4b811950a86a6e5a236c54c51429eb0856094800913c0fe13b88fb60d18ff3853402a43bc78265d93aa5c06c0ddbdffe3a1e814ff26b2873e9724870363c7d0f368617fe172636e412200542df07b002e8864150615e6b220f277f0cb8dce2d8e9ce53a86d2cf1006d2d3162c746990c5e4533a041828b664de24e3e93b11f6d7c6852f97c506c8817669e2ea87a5fe7852502b101c8ed996edaa032e9fbc7a56fabf7b234a1b20fa64842c827160b756dc976125ce80d508899de8bac1af92f84c75cf25e97baf33fc7f884ec94c2ced56fdf203ecd5dca8969f5a0356038fe2460b662dff0537467ff0fc813d987b3cb882ddd4620463a622b0fd739765edbbe5693da9a08ee1ce33b58ef287fcab110d7bb85f50561d200241080152a15f6b035b2a687d573c5c31899d8053a035b04c3aaa042f20cad4ca90572921106634824db9dfe8d2e505b8881089d49ad40624c26af536d4892be51045ad64d84a002ef271cdc55b1ae24998fae6eda01d61cd37b0a0190ab8b35686699d9d5a148314cfb274b045a1b0ed54418da8dfb49c612580218034a4b85e8a4fa1a29a82abc7e593dc6426ce612cd7c6da990499d24222d73ae3da7e017ba48b1b0c9a410202988c9af0480a6e4e4b44a304f8bc3d197e615352fcfc5f0f82f14f1d507aaf4dc612d38ee50bc478eae3f42249c52fd9aabde319325530b4025dad3302ad13af4f175f78aa86b3a83a8c82a75decc716971a0637c9b8415a76b80f7a3eea0af87c3d74843dd0c6bfbaa7b6636d748361d5bcc5371184267c9ecc2aa3cab23361a7950b147de8b2299c8f8634c1afd297bbe77fad3f0f976fdd53bb7f0b92b295a4a5fb946a441de0359a39293328044272e51906e1f9c8f52d566e1b6eef6c9d2f0f61aaa155145de0993161af92c0b700dee77351e2cbbffe9636789bc8fe81478b886a34154cffc79fb2f135ee702dc5c231fad6a06ae4f46eb637939dff9f7741c2c50ef3c8e7e53e494f68838395d15455f522b35d103c2fa475395602b9c3352f40c19f0a03c92faaff380546b0bcb112bc566e5e152796a095bff7e06f04f75788a31d076a71d0ab4b090d453816a4ea2a3dcc31319279f275f692c33cbaef159e20436141166bea8688be058d02ceb8aeac09bdd08ee29f95fac0d52796f1379f4bd1cf97533a942f4a57cf50e3944ffc32bab93fc9f43fcd93ddb0af939c9bea16e3e29a73381df825ff2987550a36e8a6004081ef9bbf75840c79fe08f412c98a525a9b547db48c0a79450add041ba2713458ec9f83a60a8550cb45ee9b11bcb414835ac0838634cad2e7d531eccf389199862710da73615345f811f7d62d93c07822289164b9106d1323df1ead542d0385305f1c81892806a8c91faf24bf359b2be7383df69ce99ce3f945d41d0c5c5101f9c04f2d629240e8ec1293ea5035c4a5223e777db34cabc70fa026457700ef2b454c8a696677c19001e7b584ad3f60b05ee0194e255c9a565d5fd1300361fb772e81bef49e3d73b055dd8fee1ba75cc2a31a05f34fafdabd5672bce705437a89bfc7c7aaaf1137df3e0e26ba4949bb3202e7932d24e9f230c8c39a958b7f327ee8c316d94da27496360b3b40b595f215c85836ad640b124ce50724a8717632930dbe6f0a0ae87ab1b034c76381d6d7c198a1b599a7520959556c79fbca0cc96ac9a9a2e232579307d36e32e4bac05a2871a4214fcad3d70f0f5dc6ac4a457bba4224db1d8d0141560d5b3378e80c51bf5b55a5874d811330a9be4061230aad87c11054d1ba15b4d8e63c7863222e231d45c370146d58c899e25a180279d812c2aa0fc70e3b548ab83bb09377eca5f46e01176edd9065dba19669a852074260412b974b295cb8ad34719fadef1ee475457b154d16e596fa7cfd242935e443bff8832f39608dc13dc53cb30f0350b92c4809423a8daec189b7a0d0b0b381f08d2fca74c006dd700e70f96ec986fd0813eccb12aee6b8753fbb8912a569577d125166902004ea7aacac1622e2efd743b667224fed70a625b1c5acdd141bb37510c32df95eb40f4f14302854f792208467a312566c90d87d987bd42b6047b2a2188bac7898f7e535e878196c9f7c0a0e4ec30442bf02a621d4212bb1d0c930092ea5c4200e8546463f77373d315968dfd5a1ffe3b1a4e1a033be808a9d4df32e8aecad0d8198d3f4f67df15794ab950c4d604fecab007ec3a37b8c9cbb93a367ed3f6b0a89ea130d8d404b440b010143472a98c970833b7daacdaed34241198041d6809eaf902b2adabd8b84854d620da434b9e08295df89c6702c541c2d2f17e0886afadc5552f97ace8021bba09c64c38e2e26abb0163fd583c40c8cee701a3670ca8875729a74cb153c788defcba6828b88845101aeea695fd13421f172b91fb4db0cab58dd89215ce8f406dedf580fcbb4bde8b2204368ad7889f8c533e28ad5eda066b2372e75e9bb48110b0d71dc486237da9182ad185f7bffc36dc0c1b51050f5844995a6f7205e734bdaebe550e1629e99e81022e23a3b8ecc35cd328406cf47b0cb71b313e13df8bf87c95f7611d46bcd9c2a77b43601110d7bd79fe6820ec8df78fa930b763d845d906430fec1cb7116d8d34fb434a146c1a3f8c61aa5628265d227a1c082ba7d7e162a9b20877435ebd602680febb1026ac913a62a23592ccf77e3ed50978f13b3edf1780ed233af1975c554d22ec9597457c46ae1e24fbc7e6413e384d2edef600c8bc5e4c73aca4bd5f8775da76e56258c5ff7fd9fac69e9cdfcb2dde67a7d605cd32788febaec34610e1557c6fbfc79bd3448df74bfbca9f449ef990145a7cf52e4425529274c4e384aa605d894e61ce59603a2ed82508f048fbb603f97b050b924febf2d92a389411941d32c0e8aa1e979fdba2f6358ee8a7a63cc4e191e5ed977bacd1e159e0b49ff4f6ad79a9f91f38abee9efcb3898a4aa39222f093f23e67f8f84648cc40cf7cbfb8959f59f12375999203c1a2ab3896ce8c9546eb9e309b99d3c0ad3f1423672a7c24568066337e7670cd472bf9b31998d02e74a1f1434aba638fcb849f93e18e44a6d48631833316f91da65f961c3e5a303c4fbc9a45fac61d9d130ae80fb5a68a7912a69ce8bbea39f207e0f6b9b6eb19b2a7ecf66daca34c13c7bde4366ccc51db4d1358e40bcdd9e1c632b8e1310a69fdad256daa9cc6d5edcd97251dc1b4f3f6c43567c37086464139448d79e3c3f492aa083eae93746bf0a438148950f3b4cbdc29a28f2be934e753de23111d8dd3376e74cde8f8e2f9acbbc97648fe6bb9bd8961005b9ed8f1748aea8552d4b89d942af6a85c7fe0387eaa44a6118922189a062da99dac01fa43d5424ed22fea9ae037baff5b544afd6125b706ca02e82aa18b16989c56d2c77d7ecde09a0648c8f30c670393883c166293ce382278b6155ad123a01af353ab023e5e2b62ca4b41886ef27be6c2cbdc8d8b26cccb57ab8c44c73ba576ae736bacc4cbcb8a2916e21eb0b3cf76a559db24ff5d0184f3913661c0ad50a710ce57e4a70f0ab16c3194afdd344e66b0fd909913fb516963cdebb86d2e6f6130373f8b0f383b2a494694e8943ba89ce521d4e74b0e667365394b73f7667b281096f1b19cf906f9e6768f5c9892aa9b6244beaf60d4f50e39d8571abb2af6a212596c7d87cbe5e77540e92aaafcbedb35e0b8ecc318367238554a82363c85011c2e8d2b722d956dd10b1e8afcec38f37f7212d54114d440cc40468b60ed2b7668635237eaf9f2c37deec4d5e963ba110ea77c4f625fd14b6321260307e2d6b3a6b3867a846bec0af289fd10aeda5db9023a48c48884d9d50cdfafeb7c7e2ffc75f6bd6e5c03ef39ce0b0debe1a6897c37d6281478c491d6ad26a5bb94b816d8a173d2d0e4f8a6f798bbc743831694eadb15dfb6c5fb828c5ee2156d2839c8ae5db532a3d8c4afe84adaf2a10d2c8ab05f0112951fcb6e2150f03191279e64b608bd14173e606c2dc412aa7c2a55ebe4099c5c605f5069e8101ce32d5f679858fe2d4fe78d8dd0cf901357cfbdce5d5f3c889f33886a78e3fa1aa7c51470984f3c98a911fdb20b5a9a04eab95b978ace541fc724b06ecdfdfd2a7f93979acbc746cd4c5b2383997c45819fe1a67a05ff4b2972d68078155745fa41ef082d37d0766a787e4df238b25d3a0a9cd5924924febf4552dee2276111591dcb1714f6df2e144cf839af6b9403bfedb42ef6ef9278c6c6f3619a22c649e0509d6e2740d219374d379cf058cc13566b6aee0f21fbcb0f3ed609b276d71b9fa2ed78a7606dce0bb83705142a5eec445566a8a53d02ec596c467575ac719ddfdc034f6d2b5e6a295f404e0a0e17602486334e296fcb8993141d36952d45c6609d002d8cb0781a7abbf46190d54928379f5bfded3fc04aac8287ebe861bb386a39ccac1b2091f0bc2928cb106e9d7acf967d3087aa73a011dd92cad1ab65dea35bcfe22cf05bc96d9e30cf40fd2afa2261aeca803fa0af69999fdf431c7aec6d63d5cfde04a2c69b2942232a45ad8780b24c313d7ff95ea7e3a17b654fa424221ca11053a953bdab8f26dde4015c069294743fe1117df1c5b9bfac446ca876a6e9b8bbc23ad1a91cbb6163f9b3aeeb92d62a864d40474d051102639bc5f275de769a8882d10ee98f9ddc8f902c92c46e4dd3f817a15785f644ba0224891583ba827fbc647309ef3745fe31f0ebfc3b3473eea6232cd26d695c587f3d42da0c635eb953be08cf1124c45b3c86ca0fa4acfabb58752ece2463e577c53941e19c9f8f6ff75f2a376ebcc74905e331669a36d77bf841677973c7d6c941f70452204b63c047b22f437211ee612f04b383bd985578999549d1bfda5e93755e3618bf29b7e8c6abb674c029aa964d0d12208a27ae1fde35743820972237794ce5a2c448b539334b237d3d941decbbd0070ec670453be23851ed0a95b201e41308456f5607725adcc4bc31132b42440f8cf5ef103923054b99f47d0797084e8ad7f88cdd7d5628e8dad1233b3e6da9bc4ac3ac52c499097de903fac785e07118238360cc64bbc38ba70da3cbd5dbf74dc07e8df5af639d10785d5a3d389c9a5e0c82e85c3bdbcba6378e683a8029ce329636da5106e09b6204471bbc674b0f459f157f4f2d664e15629a0646553dee3bc20b92a74103ea12a9eeff5cbcbbc5e168b7b859b5e2e3d0380a147d14d8bb649b60da12b96e9596444205c57d4aed6b27e08ff82532935332c9882d87b04123fe40d2cbed4d8b9a6b9f526fb33461f51b068fc17b7910908cff91741134ee9f7a13f4342ffca4293ceadab093d3c2ac793e103bab6c2007a43fa88bf307f8a9f41a03cd21c609a584d4b3b0bcc14f26c2af75da32443e95becefdb7e2a142997b7b05087666c3ea1efa609595f3031e9dba40c9ae49d307a190f30e40252649bf8622b7c9d486696d6a3fe3ac1f1921e6f9617aad6342c52da8ad23c30b54444b26b8eb6c77c90f76c87b554bf3e41585022b9ba7d138b0c981a6fcca2615b556a8355d65602cec65ef36080683c140f29a338aab3d7561519048dc9b77fb1defb46bfd298cc27bba7e6ca0eade695c5e6acef54498bf09fc6d296e8186103bebdb1d641c7e39da69a019c87ab0478e1927d00af0715cdc3a99e338c7638e7b09f2ac7770ba8508f65685ebcb104873eba598b7f9417581d8967fdf6ba0d3bdbaf9a2a6439cdc3520bc705ed7fe183a507593abdc3d16f1039879f0cdf338e609ada005ac5e32ded3719c40f22cd575b215ca5149042385f0c99ed937d2096125d0d31a11b3095cf64b1150b5b051ce92986342fa316d644bd7b61a7bc7092cba4dc3ade3ed861d7957abe008b439207af0f22410dc0f6205f5dd80405c549cce4c3233ded9d31944f1f8a5ac4c7d7f882538626424f3f2d70a102bf276ef3fc65bf9f577ae6c7afa753deaf4a1c8993846b116038be8845a4cc6bf5eb043c32061713b9b927ac93f7e9828673d50d446a0cf1355b2a9960cb6946f85467ac97b84c8986c7ad0fa136246b5be7ff4e8c41b937b94c2b28c1adad0fedc576e8a14fa151bf9cda70df18fe2faa3aadf1bfb7278cdcc65cc4451524717eca7b435c1d0fd2a2c594da746de102f8a9b87e3efbd42e8efe151b0285b60c853c9e585f4d583c3b48db24e922c5b77308430f904a4bf91c4b6c5827ee28decd638787c9d0a928ed016d0a7c6b58b4349773d341fb26b27134e020bb30bd2c6fc68f2f8e0ae0daf097acb0f6a22c6ce96b534cfedc69ebd28f26a36b4c7af50ef0ffd1dd2837f0cb2a115ed37c96a9851addef8ccce64a3f7c37d345bf059c1264e6c42d0928c3f917809154e64d1c46be943e41ecb9114f19e20831c37456468978c0a2e9670aeaf04c529e9f4b1144964513ae5a24d3311cb9cf71184db916db9b7ab575282d763fb1b88393ae5260f158a1ee8e78b0ee70171f8b1cbf22899b6c8307f19eaaf2362cc0632966215b7656fe01206f03463ba0573849eaaa9a573b8474dca3db9538d0a585cf470b6b9764b5c936aee4d2c9e97c23ad3ddc61b597d08cea78077bed5e3ba443c3d71ebedf49eefae4ec076dfc8dde592e7a4563e91f831e856d9b667e3f0addf65d9c008c257ee60791e8d39ceb8973e5dd910f5058447efbd4d4ce002449a05398e97a8834e05b373f314e8ce7de25ac5e24f331c3a0361657482eace3b834d5100cfb395835fb51fc020af323843e3f1c95c070ef1c17ab77d5f327fef00912d55e05b33cea4cb773de035cb5831d27af451f2124bab5f39206d0cebf958b3a70f623ca50dc693d7f083fecf23384d8c6745d8d5f5cf30d0f579a430dd1881c0f9c21dc73e114c30e9354dd4d808108ce79eb744af56b49b1e700cd2ca3fb5247ae845a5cd8b891ad23e705024cb5d1fa3e0da87e6ba1aedd097d014cefc3688ada702f9c26204057214120104a7586acfdfafd5b26aebcf1107bf685adaaac04b618dc3e266ea8d9f64bd507542390f980de3898e59b35dd48dc06663d63a4a75edbeccbdb4e8eddb307e39b97f182c7f590a744783bea2122052245a4cec699403e33d03bab856229e28852f528891030556c15a983b8fd423029815f1ee28e1913226aa72fa26f6a6b1723a9b9c4aeb9b0562526f21abc7794db6124e9df0e895873446abdc28a2010f84fd60c99e1cb89321f543d660164ccb4e4f7a906c9b7138405943b5fc6e2b6014f4bf4ca97823589f9ce07658443e80a36cd8324d4cd3366b35c4d5ae03bc8b3a3b0ddb6997c26359d52d40087173da0efabbac4918c9d0856b3d42f4d63c081b588cd533c018489b9cbe62ba1cf528ccbde4890f5774aada5085d80ffbdcbc07430ddde428414fddfe1362e8e2e7c75100b81f626bd196a9df1afd7a95643caf1c352dce1e2840176293a13f31e6b2b8473bf7645f39cb6c27ebe7ef7eda6da2bdf5099d1bfa33bd41f612e6a3d474f1c1f3f5a20a43556a4138087b75a15b900f2158cd15458376f92fd78bfd00e79f14094bd36985de40dbcc4104860882ea5268266c505239633bcec48469f6e1f20e26ac2b3bb2c1833b926ac1544dae5aa385b1b47663ac4be51e5d7bbeb0b9a3695962a7156234111fa064f8a8bf23815e36f3097cee3b2afd40f93dd0c27d7a86216534518b5c785b3a3b52e61a17468ae4a2607afaf89b351d85331320b029951a6f8dd8212f21f466e9ef7b1a41b7156c0679386138c2d6af9675a66bb87491b566584d542f2db9f86ae549a3f2fd4fbe1a9f4754e3558c4edf7ba7cf37a97932536233bb4052d100c9949e0094bdaf54b35ddf544bd305eb309bb44dcf6d7afbe5fbeb7bf7da05da030ecd70091abf1da322fd22c4811dcae65c2673f3d13abf20763f6ce0afb69ca0c78b02c1bc1c75a323d8d13acdce1f880070baa79100193bba0690ffe6953cd867dddcff9b9b871a0981ffee60e11a85a9011486ebf688227f7f0489298eefbae698cd6deae20c2e7ad8d9447c031ba1b7ab888e02748ff246425303466bb2958103b3715dabf70fc865283f241d46480cae90d129a1914a32729864189998d4b745efc28811ce21598ce26b2a4459a0ab1e8414649316166f0ad98ce56bb7660f4aa1d4e1065b711fcaf7ab00d9f8d8e88df7870e53fa3aa139a405fbafecee3fd6c336464f7cd7c7e8e5c70393727c4810738e764aadd6ac7751c17da7a73c67dd066745ec288e88a02eaf94cc6b1a3c9e977b2c1be9adf1fdd88dc1a3232eacee2608d6c6d32546439d6c8362c368f2d6a30156dacab458571747c3c37ab8ca6ca47df0579ff1062a6c288ef03cccc9feaa980a1fdc676b62d49cd0d493b9c0d2b60fe22481248a0e6e9af23371e8e863e44c4044b5d378e24590b11b9d5c6835481fd791c53ec88d6a8cd17206222a785f614b8ed158f6a12da1ce2e3e5e2ea1527678d9c2520907a158bdf9c603c8d1ecd36cb6dd4fbe96b8013eccc27d7262710924bd0749964f82a02d9e6b7ab586686733afdc4464d927f40e944f399cf51018c04a1ffdab3a9d056af7540b05f6c2c0c8b22f7cfe0eb593811db3f8863177ad72f57de23286599fbfdce9843a783cab87e4992aeca9428025713ff394f6bc1c7e906abcc15ba34bdece0a0a5aa09cd6ac18e2687d174106e21afffc01026054a825783db8b8dd6fbb371b1b17ec6948366dc004d8e818662a765574ac13afbcc4e242cede1bc9bcb19834c7eaf9d404301d0a0e927c9af1704d75d1221fe02ffd3c2d4ae7c74163490dbf2f17eb991db3f715bf74ec3badfdf1a703f06154a00c7a3519a14922ea7a65850bd9c45b085158190ba46ab55edc7e0f70e8f403256e3b7d3aae555e08ba6336611ff7ff24f422800aab05fc1247f7ed22789007c5fc120087902c9f978ed914a50dfa08b2f3df46b726ec561c00e15bb960847f0805989b84e6fe2a42e8d7b5a42bd40ffedbbbf1f0d58a236eb40d99982c85540bbb7fc5575ab568b5b2560dc5411cb4b6e00ca212a3587e28a25d53d2c738f19b1d3383c3ce106ca58396c81f56018b110188f8dbeef9b514642659fba30c59c365f10bd9d5b35ded85314c332c665e0f09db38a2598ed244b0fe369cb869bf48a911184c15e5fbbb0b509069762386ae603147f4af3d122f581f8714948720bdb1686a8881cd6c670c44c8d37352d48dec7e412b95800f0a488ff95f5d969079e01cbf79e632fc8648951172815a921f66a885e26df115ef2c24ea132238f900dab2391681921177846d9ceed42213b07f77fb9a842ae168e3bc71e1c50845ded410761388586ba0ab27f9f07cec354b118240ccc19b15dbd81e008820fa03cd500bce81c0042bc8e2bdea2d7cf160537722a889778cd00894c041a71cd338fdf2e46c32493a0cae8a19517e45b3b08d6f89d734abe268b313248e5facb539fa80822bd111dc79f681c313de3075f1d5f62be5193e4c9357a05b4026741ab240c593d608ad53546138eddcff3c9b6e8b30a364e51b4835c104cb9339e0f6cc34ad7f422260d78616b1bdb22bd97f74740cde56792589b69ca469cc62323d02c4aa03de9b73308e0e239d8d902e9b962c0c0de94a9c3acfcf88b5027c2b4cd46af420ee809cabb6e0565fbe59c801dc3dcd8159f923baa1827b5637a0a2b12eaa453410e99fe2846ba76aa8ab6e6e88cf3eb5d75a419e19cfdbf384fbe5a6126634871fd0d7e2a62c4f8a053dc753ed72ec5ea4929ef49a32bf3d91f5ab20d0ff845ca31dbdb9d3d4f4b27d741747d79a2e644e52c471b15dcd312ccf94ad419fd71ca9c6a8e15691610d2f7661a576864ac067584ff11676efcb80b6e351d6de62a631b4b093c780099ee06a18a921300fc25477b92031e7a9c4388e7c188ba2c805fac80d35fb90b973a1fa5ae016ac9b6ceab45e0012cc3e585ef8563602342837c96289b4db90c680022d24f2d9007e8abea95207ff9f5dbada28743145c12e57ef64abc4d2fe15642cfcf2dd4c5de187f7653d301218d354e5fcdaf6285cff647241f2d9617a2705a4575771c8a21ea3211b2a07f70c96246fb9ce34b6e10d5eaf578f84ef06027baf423aa49a3cd74d8c45c1f8f23b2d0031c9c4ab3f157c75a2c94582770f899f07085c8d6c31e85c9f58d6a46e7b3c5f0fb81d5a96b416dc1566616f3658eb5699bef2802d7eb065c40c8b7adb04b20de45c9cbdaaa70e5160b2782e15976e74bb1d32f52bd1ef7fdaf940bc56692228f4ec24b8a5ec8f86d6ac1a50698c68c60b78ba0209292d53a849eafea4a11ccdfc1e24dd4ab3773b29024c29ed944560d6514d8b6808e9e01619edee8cf474ef91862a048c61d27ca6196ba371c29b5c5ad9707ff210fa77b04a7882ac82daced188b1507689d763caa47fcd4ff239562c9b70e4f01405b7059a55b3abf6da8bc358e09c346ead91a18204c1273e148de6cd1715198eb8fdf43cb2fd1ebc333a9d15abe556dac82b2bb9223263caf36b7f8a8fcd5466fdd4a7f6fb04a91c76c812f2425ad6037e21c8d9829b43bc1386a89e18578a8e39326d28700d72a0c85d58080a780672ea160d4b71394c08e016e22c382bc618bdd9098b066570205ee344574a3f2a76fb8761a25d51ad6cd90570b49233e70b751ba127e351d1285f9e6a7d230dcf2f843bb40aadd3c7807ef74ecec4fa106cd55d0cf46c1ba873a97226817eb0c5a1e0882509e00256007600bcfc777888b36407df941814ece5cfa3c41a9a491a5014ddcfd22cd041edd875e7172e157516a8c8d5b3bc111a6964b919b085a2e8b5b439fb1ee9cd659df5fbc8a699597c204d1379ca91dcea3dd4dd8d89aba6d6c8dec1434db195c13986e98315916deba39629dd14e7c2a2d9713a0c1e590c0d9ca3caacf186e3a234e4b5655b448a71ba34630030cbf448d7eb35592076cbd4831cca600d861d47233b6331c3068b62d07f5bf1fbe68b59c0f5b54fe82ad9d35cb5ae751186a17217d31075079c3cadbe3d6ec1f526bf9006c0389d62e46f1cea2b5c498cd588053eb85ced3d0381394e5a30a4d2f8ebe551aa989491a1269dd15d6c338801ea8ee21c07a689454e60dafa8c6cc3fc5b44936f9095a19f43b4edb575d879d04dc1bdc20253074e4a8a61032831397b0d8f47b603321060451d958616b3d0a32a9d2b1582b0d8ba5f3a9240d4286912694055d75e075256d7f58c6be9fd5dd19e5bb32b67e8832ad5ffb6148a9ea0671331f9cd15ee28b7ca7d263d69015a522db205615e1024a8159dc2ca6c17d04ea01fd49b858b1385dbd23ad02da87d88f32d17d4a62b048867b8189072031cfc0642a8489a0968f35b84e20ba0a6925f2cfa8f95e252b3b550d8c2e927053803fad9c629ed17ff5565129e1bbb9ab0203241ed0802b131446aee9d5a0ab79bd49e037f3a49cae3c9b10e9c508f89452129069890922b5b8f30629db9afeaa33f52adfa664abab9d002228a8af49d22f1edf940b1bc4448c38337e95cd6a7711a370970a8b104057609e7780f4a8cc02eef0af3a7a540742f87829dde7c58fa8f5cf14a301df57c43592ec5a7f31bea3314a77bbb586237506b78afc0a9f0a56ebd193a2fb95941e3d9ae095985a266fecb576ea7d62d0e28a625e0618a40b65034b794600bc1ac530765c4861b2583eaaab3f4ad9ee18645289547d8511beec2371fdf3e5c9b10bcc2993d1987b8204afffaef58c3698f47812608d7381a05afc45ed645c95bb17e307ab4f898632c8e460846a7ddce3a31fed7d24e81f297ae939d5fbb632c741476cbd25764df20da120b2e0b4886d845421510a190fbee307cbc942eaa8b455488bbdbe0612b211c6b8140eb01be5ef7665700a1a24a59529c02e705fcaa28eb97e4a70476e1cad2c5b9284104ec2456be056cda7fa039f712c46b5122d236a5d3d3464cafbee5caac2861a93419dc3a859068bc47d05c141ea21d0403fb9b1c9feea955d2dca1b384f35f028a4f0da49708a68b12f3c754f9731f6bd776926c62138a1fa8daf9403f975d675504eacbab2c60bf1df5e9a15518e7ba0d472a8e4e9717198a4a8fb83a9993bc5cffce344e71c6cce821b51609c68b60dbf7950827b8ea2c1af2c53531d483c36bba16fc5e88799d09c25bc2abefcccf8fc287e0231b1644047df968ec5c24bb8115ed85968395e65b9a9b60a49edf34e8807743e2b55ccaae223f48a4d940a70f6d661a76a86afc3b483b3e8cdb16286280f769b6c5dae4979bfc110876754a8260a6668b36b597eb0b2effd001dcfc31ec3c15c712f83eb56b34db417289c25ab7c2d322c1a59906a7f64d483276cab2eb7f2ab2ee680b72c4e0dc7e4e592d51c777ee0510ad2a67a5ff725cf895cce86081639ec6c42eb8508cf97c2423ce11d1ddc68745e6e385ed4381c7829502bdc76490455d0148e823f3f4b421c53ef17085505d7a00922f173c43a730fd16890630027d2e9c60e1959251a0abbed86ef3dbc22e2c6b0e215d8264071050d3b10dafc7c83fb42a9797ec1cf6d12f63cc0b755d4c6854b271345f9b3525b49dd0f34dd0a962c50b7c324e3e649db670572b83bba1842951f8bf3560cb920f7cfda64d7b3d89cd1867eaad48ff08a46d0b3f8bd2f0ef183effc31c275f89eee564d50911dfd2dd8b9e4ab177450d47542322970eaa9e8b95ee3cb1776e809f6124568e68bb2809eb358157fe446d176141081d373f084882f2825f1071912d420747512b6fd4af84ecf14fecd2554022f7355f2466605463591a7573fd8d033563cad807fab358be7aa395e65931584cff3b3a069f88fbbb2bdcb93e5065b4fca4caed5ef12ae6893726ccf453d85eebd4e04bbd9ad44f97504c1ebcccbde4aa51f0e34905822ac9746a8c98b47cbeb0864bf14df0409dae999aac4c444c2dd04911baecd8789b66edfb0f4f7a72236d5b2ca079da1845caa67a0729690f33c62c91e333f134980b8486156e31fb8e57336d46d867e56817246d303e05a8229f147535c25f8113faebae882745544615d5d781cf1d57133989a299fd746cef678d41fd4dc13034e0f12125aca3e81b3aa0e59695012d3421eaff5716e6bf6745f63f84be785423c03ab8b23839eb0fc4cf187c0f9d31e2959eb7e5a83d686e0d64b980e0d20b6073488246083ac25476818fd8b37a72819fb399788b6eec17a6b7406472dd9175d513a86c2f454f58cc682f24590e48ec26437c3e63910d14feba6fcb03a222c03d36d89ad7f52876a2e10647d7d10c7c9a3a1453d7d1145080be39d7f0d83b03078159c8f8c595f26abf2d84b792746c1262031f2a6d64ecffb268ece86456fac857622f76db0edae5259bd7359ab0e1c15bd9ad8ddb7dd6965bd53b59c3b88d44eb570be7a9d3ceff7fdca5426a6f3382d16a4b64acd11b2eff1f6cfb939fb57645443f31a26c4806a749fc63265f49994775ec4b9d6d0038fda96429d425517f25f8257ef952f9c97cfdd81d5eb5626fa13424f1740b23de007f28e717f7644e13f834146288f913b9283d4f058d35ae86bc7f69b5ac685fe1a75d7482b99fd9788591f500afadf3d125c371511519a1da636bf71a5a70261bcfaef58c85f6a13e10c012cf4f65a35e6694635279378069f2d7b8d43d941d3313c37e92ff51ba529ff8053970cd561c88d6d94e7b6963f3a3c1c0be974a83c9f0a4abe69bb38eb961851482341824f4c16a73d3730ed43c825f881cde02a24274f103eb1fcab322bb83de5c0a9ae9827df2bab7bc320cc9d36883d204629ac4ffed5fa32c64b730d7464d33c853491fda0efcd9879f2d103442792172296a6cc15325ddfb028148b06a01555a6af9d84254ad574655bd4659f472d6c077370831015cd169e4ffeefd2e9eeee9585993dbfa0e25c9f28a81422fe9ec5f994d6185dbd1a312febc42aa1e05c9d482844963dc116e607f6210b1cf10da94442b20400a75bfbc8866bd8e72e2f915b8599ea11f718d8aa9c758f1240ddec00d325ca5d081693477aaffca638469de9cd860c889d110cb14cfdbc2b5c508d8d0d8852fea706f336ea669775e680f70579694e6fa1815a12806764968f432e1a5963d196cc25b263c7a82b59c026e4c91ee955a6c7c89873bd7ee285f63d84da4cd93a4fa21c33ce6794202390c53b0fed1f6fc25d1c00fa5fba40ce481808edabbd40f786211a99db5bea781389be5fe3a0fc0eb3e21999ea0a2aff760bd974a37b9dfc38f3863bc0861736f04e88d78339b7f58d5f86be5e34fb07a593724f71d8c2df76152d3ae9111f3942c38dd7f111657405c77297c6da4fe39bc60cdc755ed7093f92eeb178254addf09972707390b0397be7c4e1f1cb57a11e89b20dd02d51f0ad6d7850c527eec2372ada19cf7dfcc8d741a0c793b59ba8df6de0045ea6db20676bfca461ca928e5b9057bf94c3215a619abec1b1a8d5c36cb97d1c5614619c460fbcbe68f3d081a1f5f278c012dba051bf2064cd251a73393ffd0611d3c2dc3a04737621e8153d27b59405a5678ac2e7284d5194da01761268cfb68163cecd01bb497f7c2f65d46af7cedeebf27fedf2092a5e43979aa78cf3ddf19a863857ab1dd74ac81867544399129b6248490e32c9d1eb43625e7f91fba74e1b1f8648151a391b4b25d6f49706add2428affb8f8478464a2fc3ff6cc9d5a5bf4664daa7699fdad5a50753d0c42d84dc982bac60ecfeefeffaf32bbdbe3f0e3b063d39b449a5f19f7fb0f98b24b35e27e429f6fc3edc631f721d372c7fe1c4da58343fafb3d296b507190ae194e390710dce6553c1ac3fb2dd1aeb7195481b1fe99d0b2f75f57538f0d4c4820c1261247413e77f0693b17679e13f559f7fcc3c2f22325a3560cfddfcfe78f90293d1709eb913a36e25a7b42bd0f315ba330c07709268f3f7be8ae8eda17fbbfb2ade23221dd75ac1db9536cee4df370fc81b0c3c5eb4373f2033d4b94c967f7887c415a67e6cd61a27ed24866b0ecc6f0e36abc6557d9e282d574b962ba5f893a76ef88206809a198a7b30b6708436dae6721ddf13f72cb9015cf5441a414d2d931446eb707a51a74daab0993601f39b345415b48957dcebdca4a4137c5f577f2a8163b12980dda91722b10d7ccb8193e7d5e62150c0f0301613a3d6527bf4d3cdb4d2819f49af611d639202b3494ea2aa4190c2b78986f8c37d760a6c819520e80851518fe603301940c02de3904084c84c7230329d3de0d164f4791aae9de4c4a4dbe52ecb5952ab988f54e99b91c6a48cd8e779ad15bdd67867911e43b8ee2c245d6c9ce1f91131530f0117133f70df4c80d452115b96c419612e12b9d141de0b224d29cd2542e5c12c109ea0a35ffcb0c8a586989915cd3134de5fb34cf5e4bcf40888206468ba2e0910f577b1653fccecd56845e80117d29e68fd45cf682bd7313bed3e8ad108ba972473b3061fed5f56a2235bc56781a20859220c83264480f13d9aecd9a0e19271dca2361e0f17d2c4d36508fb097b890845e412fe4d3dc0ec051f4a8f39b0248eb67818e913a31884e374fd67075170d5491133399f9a04acf8d32074911f3a3178e9e620d8ef563fca74aabb574d5841549b8862b9802b972feda95643c3b23a07898d8310973e4f7861741cc636f6395da834f14daf03ab3b2d114b236bc58a21b4b38edb562ac83af8112dd09a6877e9e6659878c91711b40f07ddd250603f7ef38bc9c546619797fe8be28cbe65aa536787062b867865ce82df74dcd42f96fbea65c811b8fa9dbde9edfa3c56bf9c1bc990bd57dcb3585b9e860c7d6eaa8eb36e8899d1a82ba85c52f2f4ba2a57e92ad3d78a7ba88ba959871839b0bab15fe91924846dc12384fae2a274a13881ddc045600e50933660261064e7ad712f620f82460a8c0f6c869f74715c26f11e6c80614ee3e3ea8d347e783cc929cf610c628634556a548a47ba7586444ecefa78af902ecd249de402f3eea035ac9fd415b08cf2493ef9e472aaf17e797a8275b89b1cea7a4eab8ed9bf03580eec3c49928bca00dcfa5d9e2e2b0b8edc5250c8b21e71f203e1ee99d7b26108938a60f603534a650112d0e4633328bbd5f0f844f8c608182540f7416e1840c9b39d054e7ade4f908014535be6468f51e055409dab717ca7b25ac9779ee2320627cfc027da0e9583e0127ff8ad5b4dcc6ea2189695311c780c2c3b0e382dabee694d7d49310a2e8ab0a18994a1b1bad065f9b79a3d85eed7ec4dc8569fbb445bbcf4644bb301c036dd65df0bf4cc40ff943122d7dcbeb1b0a3adff4af05cfb4f50f8c022bed061d0fa9a85076971b31430eb3127964c832c2677910c8beecb078d2bd604819a286cc89b69b6c36a8bd337f3922e6dca2c5f79fc32fe850921875440672de64b28b1c20af2f1b4c55a8b19cbfe8ba6d1ba66065998e7368a4d59b58747d25ca5a336805aedac1b9c0feb0f2d205c2fd5874e8d2353b82ba1984781b4f19d81da4a1e65efdb8dbcc5a3c23cf796de305863679cd0741b9ee6b06bd644c5b5458ccc57b7557ddb0d8539eb5d0936318c0289c88554b86265b3ec516072f7ff73403275611a2fff46f139a3ca4380a1e82d9ea1a6f148611b2504bac182abe928154812acb00bdfc90df98eff59d830232fabcc7a070be38796020e0d9328a69ec5694876aa32ae23be37cf23596e8670214d96d86891d11ae90be6c9b26918e573e1136a29b62086a214969b9796d153bed58bc80603fda2a81487a18b744aef577f2bceb97ab04c9ec5953359e898769eb0494e1bb3e3fa82c91231f78199a4ad25db0374c926df6d16435064f03b574c77e0b9728d6dd95cc7785e360538b1bbfffa5522b5dcb5d69bd1d7bd9e52dbf7675e76fe69d2b3403839be81c02b2e6db468b35a1d23336cfff33ffc93c4561495472d7788d2e162527af8b8e2c14c9cbc68178e7e26bdaca396fb5719904d4f58f41e46aac22540ea795273d16a5802e00af5325adcb7724e95413edfed942169e5f8a730df79d45174245f383cc22b1523dc8691812a9f8f188a0badbfc40952ea7793f91c78fde204a92320c6d01933265d1828cbf740aab6e2ecd78ba3f3dc15e52931c941be1a0f1ed50c2b655864381b24901deb181d00e7e5dadce48dace8cc419cc66fdec75409f122d78de6dee1a4ded7f391532cbf4cdb59c5c9d46960934703364f935eb656adad4acf1c8e1388d6efef2fb5fb028144e865083effcbf32988f18dcbad15fda44a549671948a859d2bdb09ad1fb471e716544234f01a17f6701a7cf729dc765df49b4bb8b89f228cf40ae1dd8bbd0d7fa6cfe3cea3b8ea0a178004e583abdf0357cd1088784274273beda1a6d1350f013e0c28b806e2620295f906b0f4d05d6af3f6036b2cd713b4efaccf1588c5a6034414439bb7cc4a82b178ae533f126054b6dcb3e786a1e166faa1a8eac8759f01ef52b128879c5a9deb6e1b49a6e4fe899dd7f7bc355ca87500598429a8d4f1003ffeb3c98040ac04b9d0c037d2c6023116328908a2c5e167ad59c1dbeefbb90e6b2425f3d0eb6377d2168ed9d48184086f0de3006733e9ac06c67705d8c70c6e46d3147fc39210cc9c15f319147e2f780bcf34ab6043730446f7aa6e49942a8ddd0923140d2227ccc933f7e80e23f7e842fb1eedded264138232c9bac378efd1094942c58933971796093eaac9a8ca23451896eed9f34e6154823b4b3f1c21b876b809c94b344edd0a8a66f406f1e2bc06c159257d6b90961391eda14100a30dcb052a7ba086c57c022ed9e85651add1142251583d73620cbaae6514a21b7a9b6bea0c15c04e30157ccc428c4100fa4843985ed01c945c6fb198d8248b2d0f835c4d08f61455dc365c70a0781c858f5d974ae0fc61e877642253ec3cbcbdc5fb0bacddfa0299e3a10d3a8a1d62179afe4c81ada2439ebb7b7b3fd0fbd43c85ccbaa66e9b7f30d260a65f41aed223bc430987b5f7aac5e95e18a6b6e12d75ca447a4704ab9490f52ff89ba12b96dc29317c11d7d0a786b4544c8c0906121f09fbc4ffcb1cbeac91f08d5f63161291419619a5768ee0ca8598db4b6da39e36232d9609a97ccf25bfcb374ab0a4103d945567db431e5f60cec1e7ec44042ee0f5e70e246212b8b4aa8f80dcc15838e077b2e9fe1d42262546211ed964963afac1441b6971a532ba8b27d8bdff4f74ac2b8da240d40c5c58c53a6e185b5613eee5e6f5e334d949ab4453d5fa1e8c6311bf4640994957fb4a2095609ca6e2b3c0396cc68ee5516478fad0cd1e80c7b77d0990abac788b2983a3b0db2dec6d32e853b7f4e3f21071fb3265b4c26d672e66c58c2eb33494e8af75c4d42cad70417852d53408993b164d6f650b071dbdb096540ad0bdabf099388f3ec0c254a9d6557e5ad1628993258d8e4ad1d147c0e26b6a4b6d2a74afdd032acb74ec918fc0d7855a2815b42d0222c52266f3c6f732832ddab51c40fca745f7ffd8c58fd946a17503aaad4840a271f8b4a7140efa4af2ee9a6a39a2ce1a1eb03d87cf88bb5faa8cb9e42ce9087a2173edc101d2c09580fccdbb89dc8a98e4d5e82910aa2af24e13ee750598d7ebb38161da987df588585554e366695bb6e4c99a193131925f8e95cde1d6b190ba1e9b49483c1faf3009e96285a2da0780c70c6bc7c1154440e7b9efe33d55ecddfd5692b8bb57455eea17e4a465628694221b029d1ceb0ee0ca12a5623404b366fa4986d44fff3b44cce1a445f59ba9061f6a72d18d9c921e0e880dd37df93af42b8b0587e17765ab867152b306f1cca01bab7b1a18da85ff31cbfe1ddd070a17295e04d7b34b6e32cfd23fcc98def626831d8ba9b62a0c54c1e522f6040677fa1bb72b2e2232fc248ffe1173eba204d08e758962e1eecca5045172e06abd830bb74f57d69259749a6b69f222d5d8dc031cfffa0aba8ed7ee0f20e21f25a18c332e5b09a7475092e49c6030873469e0ffef8600637aa111d522a32ab4a9ea162223cdb1f50fa9ca1d6e209d0ad3449e9d20474c7f64cdae661bc9c8817dd01367d730725f4de8c6404f7050a447cb2166928a2d3e9d6c77d215464f43a31b3930e4717348e989907bb64ed68f4dfef801a0d2a82db3f1dd05a993fb84f14f8c7463456ed3dae8c30081fe45f6d2ca9a9cd70f07071226918108d52833b2b35282042406c56b3b7524e6339a5ada45f6285a31c615a679448f9120015c59072f52941be93799d35d2f6e7cfe2c2907c09c98d00367166e375292a90cb4429e6bcf2ea710b665153047818d48c5af3f5b80d8fa0f46a7603f706646d5ff643a002368f894b809a1540af05b91b492eeef00fa0da811a605ba8a2b59cc70275c45368e29a0d59fd3eb1ee1c0ef77086338d3b510dab209a6dd2cac8a067ea1ba0061eafbef52b8cd3e60c65b1ed1a42c1c560c3cb508c29cfc9e6342232ed009af379d885e777aab7b6cbaf7279e0744c8e5c635b2f6eb848177447c387b1797e58d1d2363f6befa51be104b43508cfaa818ad0aaa3e6507c8efbc171ca06f4e5ee798a004911b202188ffa6379c46494e9c1037b377411913327ff872282c29e320362668069be43e8a8cd15ea4182fbaa5c7fd7afb0fff7f08bd63b18a193849628d4807c446b4619f1c2a7408b0f5100be9ca21fc38e60f1cdc697a7a7ee1df9cb3a824e50a2ece6df2e3d8dbbc6fa16f421bddd7ddd9355cfa9f7e6d05b4f3a7d13029f656ed7192b563ad7230dc9302164f33fdd80cab0164ea93034b239b64ce725b1c669e8c0c8f5e14a46c79612b6124c090fc711436793512fcd1874b3ecbfc41626ee916f8934a2e70d603f4e787291f0ea9d2a4157cb73dcce356297186bd3d686afeda3623e58af7a410192c3a61df6d11132591e6ae8d5690a73a60a5851442e32b28bf2e2448604f5090edca999722fd87247fdae367b4d149666fd258da7c82f618bc5f92401098191a6b651fe99a9512504405ad21ee42bcb8b5e69a221287278a5106ba9a00d4e9b5506848f2ff2d6b4fc5bc524e155c03af07de9755db17f38d119d3d6c8aab952fce1a63353cf14d71d8033d61536d0cef3f565f168ee4dc2e4e3c44fe77af644af24f61e5683faaf490a3f270f6789fcf50287c0c18b1f772cc4e943fba0159e9e32f39d0693b650a4e389c15ee3b3ec2370c16dc50dea986374bde29043bb23af02cf13f466cce815cb2d6eb3fbcef8c9e28e8708c970a03a1dd18540e4b2fb9b033734a13a189fba0b3cb0b690fbab4997bc9df019adc8e8b5efc8c798f3b6e4680d61d2dfc7f0bea657681917227e3a69b31ad32c1260f6ea197f7f3826dc79499b61a9b911215784aa5b54b87b5516cc32fda2f82b967f60c4f7f9558ad9b1efd40ddf13beacd99c893fbe8f91430febe9770fbb7011525f0931e95b8b8c23f069b9b0888daa661dcf9caf4a414f88b354a8db44ded6918fbe8a094c3c38f7fcd88b3f2d330e49c6918efdb3dee55b2159e3de035d8a04212368af0dbd71a0e5a61c756a352b2d441033b1fa7746dc44846fc1e41382787ab3d7ddb6c9dfcf4abb77c7d397b0459f95a052105b8032bd433ddef6832c1aa0ff6ffcdb03ac9cf74a6d32b05cd5ae8231dc89fdf77784f57299b6fa9efb1844fac74e55adbf7fa95a22957b521d2e07f5d51df41990fd326d686b72c91dc5d3648883e40791495c46a3ee2ceea0f7700fb5c8038acb2ebafd9b7f8d2c1c10f804ff227d020a63798275605d74af70d55f83b617ab31fe00fba1fabb0c218fabc58c6c8e2f447d0ff4d77d24656f158453948ef2c671fee94f43a45ecccee0cbe607b3435bd652a0d8734714cebddaa46ccf5e2142f70583a04de7a299510a5c9cefd979d089856a5a04b7ed0bccac56ff009e11723304d321b81ffae87ffc2b1c8727e7f51187059ec9da8ad09520ba9c2006e6039ef86f4a06604832cbb0c3c7ff330eb05247c4a2ffb7a6b276b1babd44bf417bfcef2953b7ef602c5e50382e20e506d26cc79eb7ed5bd3c4e29b2539b04ab22cfc12d77bafe779c21f07331df47bf703916c71715f37584a959907cd1448980556c3901f25bf4f0ca306d1c7b747d806ed947e14b916b7eb581c8b2a2005c44f4de07ef3382e573bf912e9f7d1a6979e24b0d6c7ea5015dc6e5661ccbe67ee35d36fb34deb2199ff197cd7d8d73d9dcc378cbbe4f8db97ccbc91896cffd46ba2cf669bc65333ee3bf8c7778a9a5cd57f381d48081dec409a5084ec0b330fe077305b5f94ddb978297864381f3c2d0e4dc898b806583656909f69db3a5272ce1041d1731131f9da1512b2503ad69d4fced5ac575cf2521d42ad3fe63ba3bf78325fd6b1a9d3bacb3c4ef82c06b5878b10fb521f049c49605a9ce70af64908d6c4e58b4e152414313013bdebf0b6f0a3fba2e6b7d85e080e260860c0d07895d126325a4dfe44323dbeccbd02205a2d55fb27629dee6bfcbafec543e3034011406d11dcfa14aabb69209ed0452f8be7a7545b80fe303c5982ced80c3e0530eb58e00a0a34c983d568a8dd52b583db09b681bba187cf03bd0ccfad78cab6816af21727bb50bf80286f4402bd258a074bd44a2e183f65367caeb9a69b916696f2abfc2cf6e33b8cb874622ea6e3c0624fd74c5886e738a4a331d243b4a72bfb3eb924ab57dd10a54701fa853650fb593e1c499a0fc9fe19e17e84c316bb18ffa8b4575f8c154867a40655f001d17a2ebb970ee2302238a55685fd27844c1844a8adf54cd5053a6f48107cc28ae603530ac6f768bef4b1721402c597f8120e4ce4a52f18f02a740950ee02781b4b6c9ca6f120bcb1cb9d3018fa13c5467d900b16625191e439ac363f7a1129bf747661f0fb1e1affe4d98761b0da5a089d6e754d8964c676cfada775d2901578276b6bc7172c5c1159f6b5c8e31711873168e1348b09b63737c3ea5f6619fea137da64ff9043ee7d33ea9cffa4465aa47490b0a1ea0311ea21b32bd3e309c3475ab0893e8bcc28b66c25acc19191f056141f89b5406c0fff4a37f446056d2aefbc28c5e2dc7b342b5862329caefd27910fb7defae143420643f912703c146a7edd94e3d211b988a696d67854419688a642015a7b627118a99cacc3f206d8238bc63172afe3473d70ffa6dcc5c1d627aaa1b4206c9a157105de3c2ea25c4cd9ab9facac7f9014d99983d8e457e0fe35bf6ff1a2fcbde4f291aaf884f7217fa6e58666d2f756262126c5e84835e2ce6bd1590986ffd2000a498dccfdf214a8e7417fc843145bc11f169182062fb7569177288c255fe79fd822a290ddffc632da249ad80e8b92c20a865835d40f2109bff644db32eb8ef7a7e4eb520656bd22a8136df2c9e1c860cb405f81f487e6f88270e496107a7a513cfbe839066e75b482c7d99eed80c8b7dd92314be04e20c2d14cd2a54c1b7aec353f278e695a2cdc6d2dfc5bfcb0c74f00972766e5910f9be848b6c6885efb096f4a62d1d75ff8469dd4df3216aad6ed615e8005d1f97bd08211df8749110b4f245913f2ac234eff7a67d04d87dfdd8a9f8580703ed5373e17762b0f6174b6824670fa483afae75dba2af3e8f08ac087f2a6cd56f6d2ba7d493241b1187ca6975427c1eca8d6300ca89a43126e67292c462fd189f045e7ff043ddfa0e24442310a3b007dcfa9621666abc64f8380e0d52a152334e3c2ba66ae4e5ba91513c259a3f71db40a0b4331b1765908d066efd142e3610416629cc02f73f0184a60d13ca38bcd11cf58814619380eb85d64a1a82dbab43a4aba5f4caf68895a27fc8649cd329a5c909294173356adc6064298c1fa75b0ed13f435433f2d22484a5d1b7967b08aecab85dd9573950639ba234a15ce1a96f104cf23ba4c16de26a6c37e0e0e5d6e0365cd97d5fc0bdc53dbe07734508beec860d89415aae53093a260b61cc12bbd5a4e304d6b93999d9c110c1ad97728b98a9c771993026befae8eacae65923d1b2087ef7229201f91f3607e909f9d036964fdb53fc4e1ca7ca1ea2a7ec8e909818312515d81b69aa18d6a1054d909005704027fb7417b5061e688aafd02535a83404828ab5bc495b024eecb86a8b029b6f52b0d9af490a4b130eacf5c93506cfc4228a84836994a602e0bf04c0ce04bdef26572326600ef11b85c7b313cb5b6971564f18077b5ab9624f02aa8d9952c21eb457ddac806e334c4e26396748d31c45d2a01c503c04d26f80219c005fd92278ed9636e0a6ba97c66c48c5b15501e1848bf100cce698ea198282e733233ac329a6a59a0c743a4beacfacbd562ddaa36f09e5c3cd14cf955c0ecaaf6cd8d66fe05c9140c448610c24ca6cc7d66bdd882cd02edba61c26c03f12f869f294f5ad4f6dbae8d05049c006f3aeb44183fa4a382d027025dbea1abe76000461f1cd1485eb60710fe2477c611bbd1468850e752d4972a3459ffe1bc3795b63a5df9d9c56a5eb1fa2c3d328756afec6061b27be21cd93861b334e1718206531bac991368ea324e76f46ffe00c8ff5a40b76c048796947ea13c0d385196df061b86c631cddae4f85231b2f48f61f08467d8ccf8b0b3064519d55015a0e2081bfb6a03ba86328fe5efc11a8e80f024df30f75313be96ffbe85e86d19a96d03f123876952343bf81472c7da0c1fcecb33fc7f0721b8fc7b2843858e738dc020786ee4e246c09db51dc418825614a43b10fb71941c7cb7711c12fae5f033077164ff2825911511e65f39559c3b314d22736b19a8eb3fad77cb6a2d942cefcd787ed89546b826befdf2ab0124b0b56df0a6a2aae2f30a5a002655fedb819bd6bb25849ac42e292d5ad2166efd15b6653eaee84dd2e3ec19c84ecdd1836e5e460141be86d7a8559d5b4cc576c3062469b0e6193b35cd3898e12834156886d2180e9589ca66aaea0524912ff46a66153639969b84ddbaefefa0bdab89172ef74279847b7c83598951eda374219c07f292912ab2a02a2b2ab7103fc0497a34234552bba8b87cc30890ad66ff3c7f7ee51d45010c422944da7e2876a00083603730d9512b759576363c0e4b34539351310a584251fdbd0421d13dc7b5239e0fa17d9fbce749a2098bbeb72fbddaeac1a629ed616ac89d056d9cdd883dcb6fa9bd904aad35dde03b0e8383f448ee9075759c6c5e19da1447931e08a3b33a111390eced59c493e724ca3eb23ae2b5d80bae346953346be183851c0f1871cea4654059991dd225650d7bd199fdf44470027e05dff784fd71fdce7fe5f3e3ef81b3e1f2452f15453f3302e8f536f609341c85c243c2cf4954ba11a4148b87d42726196e483881e1cd653852aaee855405187c3cc7918c9738cef5983a7dfe19e9093be0b4b01a5bda19584c1a0da3068c0e8656f44b05271e2f7dd2f93e89613a2f55e94675f015c62f5d817008108f793f62df5954319d23e2e9e404e11c74fb22d4ed3381af632bdac59c11b238cf11fff038c967aeb54a5d11af76a47d55c6431a2cf18463428594e0536587a8b7e45f8e106f321d35b28824383997cb98d940c6cff770bf53341da8f197644a8beda0a5140048ac6859d0ad4c19bf88fe19a8b1adf29c40c7123b6e91db3d6a75edd72a10b853e8f1866f2af62b70cc1218681d67d3c6235a574e6513a35d8d0d9b49f092583fd4de139ef76c4bb75f31cfb92d38b74384bb1c4fb2b59451720663c0060599d5d67d1175f68b739a55060518beb388944305a9ae84d750812f2e247759b2c8d63b85258190ef03007ee01a077ca6c7320b96d487a50ab36d3d8511a657bc8b37fdcf161ae4efef3216e713d0d9399db386141a2a512ee4e598046a07a1c9ccd5e4a81b8be8200753988700b008443976ba388733af86454d87fbde1d2606198ac3b67319174f5b7bcb3a08471b1efff8a3ceab93bfbb236bd465138ea8e3b3677cef60aab63dd2ccad6c3978da2953a320f024d9579390c2010ea0f1b560aa6ae60cff3436ef8e4c9c5f29a619ccda13cfd698fecfe8265aa5e5d173b0cf7263c1b7b844e424f5bf8d498e17ace98ad93ffb4ac600b89818214366b7abbc588d74a58b9e820be2a66d77753a5c43ded03d4a65cddd067b65984bc014e2143031d8195a403c4b558f10163102adbbaf09d3748ef6f984b3c23e51eb60b57785b2d740d0ee52b8391025ddd44621f5fe2639f4a6434c6b59a9406b15c0f74bd2494b403bbdb6645a368fc290fe14394a7933aa128686f9113aca8166c01422bf9846951c2916f86e1eb4694074012360797b331c423df3453fa47142baf359ae25e27ec38cab499642fe052c49f1a9362fa1091d7062fa811bdbdbd8805c4a8246aeaa80c06d117bcea061d4fd193824c0efc066d02d99d3f847e4c55d59567c5dd4381ab2cbdae0c00c07c7733660fbb7da06a7d0111d07f1fbd848be98a4c5e6a2e4247ba372747bb87cceb6e3526613f5faa04d8f67e70e7d636e3eeaeaea275335d135f5e6fb900d7f24a766e275e635105515224d66ad83316f9c8a4d8d238b1f5c228c33b8ca09fb5bcaa868d62091301a05dedd90519859e510eaa91be526b8b448ae0641c638dd413d700ae1d7b29a72043421bfc7d264eb44acba21b3b2c139ef89dc28398d96555ce0bb734a54080da1101325c471a6d3e9b1f345bc3e254a80ee0b97e37bfd1460489a6b04396f04666365773e01068564c961cc8439142df451a6149547ff5196e79adb072e9823d847cdf077932bd3aa9eab49f7633d6bab7954bd58204da5e27a49d20b624cc943a4fa05ad493bd7646bb171ddfb7b2a2dba6766ddae9fa476857f604276dc282ed0ef2ed2353c1859aa5b3eeb7660322d994a722b144869d4501f4ab30083bb59a8e892e515b08a45605aa0eaba1521040ae461dbf887cb39883f91416f7b7292485a04555ff3b968c9b529aee67b33658e7ad91bfa564dc226924696467db2dd34d3ccc3ef2fb94fc3f3ed6aca8bdce7da8d0deca672c4606744cc1d0dde04801c9092c0ac809757069820b105c3a2e22240146125992c0924401224046046c045070f236dc121fe5f99227ce09e9e544da8caca47c383f7179ba8f5727ed4b1fab34767fe6448a14b7f9544f3fead959154b9ed3be664cbff9431306c52b595af68fddf781c0100478bafb0161881e30c503560ff0961c08d24cc50158440ed0c1010740020e24bc20b1457232ee7a1f54a98fe438e9f93aed572e5baef26c57b8367d728a667bf0f793c51f4c84668748acd2fb61acdaafaa62415bc0e846e1d3c915a5666ff0847dd01120101db18586b94a85016e30200aaf4e7b412ba3cd5e9667364f236c60841546e0608407458029224b112922f610115101226c20c20084488e73107c6fce4a1cf7a549abd34b2e977826c22e8539084ea11fce7148388fe7cde9743a39be937e2a49f291739c9fb2ad20587bdc8986a8221ae2c90260b080072c00ca0246d0f2012d5a24d789b8e4c4e60567719c934c9d887dac130cc379ddc336bb6847539df553b905e75f391babf5c4c7a17bff2d2d4814c0474b0540a0a5375f2ff916a7a300a2627622ee400318e579f42504979410ac996d09814277cb20f8e8ee20c27477105a8260757eccc395da9ced70258851771046ba3b4b1852967066c76ec49385004090d1dd97d6c86019082a80e8e96effe1901fbe744bef5259fe3eebd5e9392ac7359d7bb4fb21ec1fa674aa3eb6321cdcf29e8a0dcaf96c833c9547bb4ac5ee8c5c46d9c8337aed4cd7c6cc97d5c0645b6b5c24d8aad59e74cd4877e895aecc886861c24aeb4263d19ad815ed3195213ae4fd6bc3da9c894e883ba28c23674094833211dc05be828ddc302df3c4620e7ee2429a453b5a192df45269ec7c4633a8aa368b9dcdb6ca0f9cb21f3bb73e547b49106181038b115872c05280f004a113e18d3dd34dc28eb3c9b91f9ab2f14bb14a3d11847975c6ea04c319c5d43f951459cef6d85275a346517f2a0a21c42c88e34bfc26c539f668772d376b6266846816ce56005b008ad1248c83e34bbc5af76807068152c80fa12e84b83489341a8d13cf07aded3c554af9c0870f21f0010b1fbaf8e012f98000ca0735d385f27493582c59be14046dc6de7f95385397e121b3802c48e62466a64937a31f12a60f0a5d4b2b4dc7314e147be133e40b236b73e6faf9017ad9784865b5e953e9fd42f8325ecb9f3c403c30bc2fddfda078393749d0f47debfec3aa8589d793e5fc1786a95746044301ac03302360413010ba3a3a087437cc40261cb308d17cd24df2f125ee13b3a02f719f6b4dce999cb332da0dad978df9cca35de74f7321d8ec3ce6258f764ead0f7eedf779d21bda1b863ef326f79c632aab7bcf55c149a0bb456811778488bb11711cbcc810bdaa78bde8d5a4bb4923b7823dda3d38f21b37b993acf812bfb1329a7bb4f3e88d9f386cc3fb58fc3c7aad8f168f371fb4a8873c443dd4d143047a78d28309b25aff6a3d309cd1f93c1c77bf1b41b1d6546dfa481c89a78fc4cea42543eabaefe5b8ac0fab14bf10bd923496ae1df9ac96e6bc475bb16a6f15394e9ac7aabdb46c87b04fefbdbff8a9f43ed277e3f41939ca14e428933fd88936c771162d94ceef08baf4a8d795b0f73e82f4867854e355d15e4c459b7229dff368e75030ccbffb75e2b80ca9ec61d5c21c4cb96479f326db950fcbae3ccb52ddf7e84d77dfae3ad0810b9a34b1e9f0c7ea83e094c13c804138fb8fd6de0311788fc5a1cc3e677c2dcda148916223dfdeffe103052ce9fea0bdf76c2b2a8a57a9900c26daa04aa778f4a63be8c00f548e74cb19755c938728987f8a8b4caf5c61a46b8b5db9381714d9e2a2f56a9d8062009404d0490464e4b395ba0ccf8c9d7a7ead93ec9d3ec2359ea3f2ef5a3884c1a113e120452c43badb8616b13ec0128234c21e7d8d2f743a614e72249bd1cfccc2becb5872787c210e8f5a727ca125ce79aa0f47d7f8533821ee552de7387f4c06bbf3b18f7756dad1f085c617c235ffb88a4b8fcaae5505a5ec6afc291e1e7f8a5d71e0428e77fb8cddd24de3cdee9f8b58a0bb4805babb8322527453e0e9cddd45a0e82ef24477912edd459ce82ed2448b7abe887aa228c2447791253ae82213e8ee16f55869491a7dcf911cd5943c5aa6eece144c4553580d4e589da229479878fff7bba1cc0d1f70d5deab37b0a09a43f500950caa23ddfd5f53a1e8221e2c229e134f09dd2db9da7b221bb8d8f036dcb0f38768678f9d28ba772afd1fecfd4cd5d6f912e9cca11346e708918e8f28c7e2927fd44f1ce72692e9efe895ad05c257ec6674ac1ef8b21d51ce037264a21c118e19221c287070ba5b621a5a93ad7e729334fd1d414c6d8e94b952d9aeb25de5fa75ceeeb33a109c134437b56e59bea9a1adc56ef18d072932ba25c9fb210aa69048ed744bd21005472914aa86224435b46a685102b248409504348a0b54901443445234d02db3b5d7c7aefe481094c5a8c44efbfaf232fe8eb34efb8aad95c1ea77b14a63b1097e9ed79b346962634d3f13412b8b51997ff793e3beb33e633ee6c7a2575a9b3e2956ce2a056483bc36497e9c840452189dd96a610f7a75563a921fab3449f21238f2d3e7c73eb6dcb6ac759170e4a60b7efa589cac1fa23da82879be3cd46a6543770b22a2010c0d4bd05044e32b69b8c24486275fba5b067c25936a297e427a1200af52212f5918956e223608a0b8d26c9dd2d95a20da0402e795a21954f04af195e03c11e1a1453180931bc13afdb3a27f9e319af10f552adaf18a76f410420841049bb91042084184fbe3041d9c221866501ffc4ac1aa1a6133f63dd8fbd3ebb5fa51b58074825e3a36a4807e5cadd7ebd45d44025cbadb02222783889cc8f172e2019193251a09f56b339eb04ab31e0add3d52d227f4d022271d8c2ff40227cc76165628d111b011ea18a48db43181f374224202a9454d5410562a20be92a6aa6911933cbadba39305fed0f784d6f5dd2b63953209c5f766b0daccf8f1952fef69a5590fb41656eddfd7f7baaffcf8951f0b590bbe62955a7c6d6dce1e56a785bd32b6e18b6665f8656b7de5c7b2ec51daeb653059ce8ff1cb82a26767afef0ebdc609d6e6ec15cec4d7ab366795fe0f1463fb0a5fafda9cbdc299f8ca8f5f60ceaf58a5d90ee5c723ec85f10cc7ae7bc1ea88e72c3fae31d37e02fa0102d271244890d45021aa99a2668ba8464bbfeebf98f8c97b265804c32be257495473c5a54891d24d44881a23f73e91dadd4a5ae442095c00c3052faf4a5f3358ed749ac16a22174017a60b51fa054e3f95fc54e9bffe8ae1b52db8d182979699d2be5e51d482ace5086698a885510b46442cdcd13da63ccf4b791ece5f91256221ec160b1e7b900ed13b61f8278e48c919571226d787fd2d81a012991429a941a4c4c311253103d7548a9ac1463c9d5c323c794070e220e9800889456212391eeec5552237d22d39f0f1bce1a6ac364fcc855486aba514662748b9efaf98c5cfdf845758c00a36a2153a68f9511f3b0b82a2544c10611b8017fe5dffce453b72afcfbe94f80bce71bec4390ebfd0004a5b09876c25a4b195d0c55602d82d93244992c4821674d7cf0f904e6f347b6c341ca0b1344fba5b7ed664aa2e9c4d8a6debb6249bc80e51053691119b282545189e53848d1c571a6f4698bda183d255c55f70972f71d87495db0c9beecdcee78b2348a51c276d04a7b492f2399d66b011efcfc7f571a633d8888ee96c362587f1d31d973edeb7ab56b6ab6c57decf1b222f4c49e3c35e7d7a77803611c6fc26c297ba8950448bd0a465fed133dd422833532178e99ecd97b94208b7109e74b38ccc61abeb3322da40f8a34bde8390c40602d72d39aea5e3a372b90ed08f8faf7e3c47a7a72785e33a372d15cf08cade40e060fb6004db07446c1ff4c8cf3e786dbe1fce97c15c06ab0f72fea9360fe4d83c3862f30001d582f6e6179a7486e39ce1b14e6f5a3094fdb0ca7695a58f6e12ca090ce2cfe61572ec5d0ba3b9d24ac1efb3a758a5b14ab722bf15e9166335bd7130a6370ea2e8ee4ee1d07eb571f0a4e5b5ee04a7372266e846a48b5d11a961eb33537a6b2f9396da9adb7ad48790e93cd75428ee3ac48be81019edbf439eb4c4a4bf7636f2b14e43ce1862869c79a2a2140202212120240b4232212b0c728241881824ca2047ba256792f541534d071dea0f084e5fe2add10fc771b464a9d0cf8f4bce86f311a45e52dda0e7064b6e40820d3c6003236cd044da113455eb25416e20c815825040101e041905628340be049243202e0402c81840a400440648097f8cf107157fb46a60480dfaa8c11435a8520302f84186bfb0e43f0afac924cedcc6c64f3f4c546e92a456cc82a31f6ee49f75c1c119861326bd552ad51f374913959668c791535b55272ebfa89b38cc9538cec64ddccce347fd50a10f1af491823e20d0074ac4471e2d7174d061f4231f9c43144882736886f492468e5f2615ceb48aa4d1e8b34b3c06cee574ecb22bdaef58ebc24fafad2abba2d91e6b5d556ad3c76b10dc60a51b952bb5e1cb68d7a2706dfac428ae74ce6450c31e7cf41e6284f0dca3d6dd7b5849ed319a578f32dd9daf1e60baf508bb537ac83cccd039b3430fd489ad3cc63a5de251a6f11083c797ff1d3cb6c8ba1b0f9e6e3c8c786ec64c9b1923cd8431c3a55d96325383193773479996774021affd4418cca2469d8851a828357b83ea441c032f062ac460043bf2b0c3047670c08e1eec28810302f2255e63c597b895fcad8ff6352ce56fc14008062f18c05087993a26504768f240eb1c8b35fa21d1be8e1cd7e04ab9dafd8dc5a68f15d391023ab2d081a2830597989a438c39642dc13265c43254ca74f0022d5e70e5747271336eccb6de0f72c9715ee55c70870bc2b4cc51b9a0002de0a3bbe510f87886e76dc19516004024072172a8400e2d46d0542d16b3245d3b720914072158c461250e2870c4008e0ac071e1c8e96eca0367bfaadae1e4a128cb3973d2bef1c71b3178238937bc6ece3fdb89587622f6ff38cec74ec464c420a30519069009824c0b6ee4e1461426ef4e19d7e25abec4bdbf7f670a9cb8e6ce0771dca0c10d16dab8a38d10b4e1431b2c74cbeeff63c11616c05840031b3760438e6ece4d775ecf4bad408f15845941162b1842b40205ac008715e8acc1c71a195883893578d6b85143066a98d192f49e8599382b24efbd91896485e338eeff93a451382fad8a9234ca1f93a4113e996c167d98e1ff17fbf951ff2fa7a6abe1850817a793ab137177112f1eabb4549ad5a68fcb31e7bfe1b4f987896ae53247e5753abe1fca9ba3f21ad8fc3a114b18c5f3660280e3dc6669670e5258152d0c9cdfe1e931dae18b4b94a6bce29a9fcd9aa4137112d0743f143165420b1d3ee5a7d27c3f4c75622bdb95f7bfb31a856034b7ea0f511b3e763b2f7f34e7da9d464335826e2cdaaff65e1d11079aedf93c733c6b6d78b09b1e9dacff1d9497485ec2a828f6ab2afb559aaa4d1f5c9b3ed5d28ced575540ddd33c140f4d9c389427e20edf2b8c85209db3cf282f91669e395e9a797a9f2dbde08c3d38f3cc019fee9cc08c336690e97e583523ccca0c2dddb23383d59d9b5102949f4dd8df98804bf77f26b02b1374778b4a20477797c0012508bb5b7ac6a24ba64ac06a598251b7c435659ce996658c916510e1d4557baf8c26e3036464e996938643c60924c82997233033022e23a041047b888009114811d38798294462761013050bc16808ab1fa320f5fc452f4912af76ac730449ddc474ce32add1ec2c147d04639576d607af8a34973f44f3b59852a712823442904508b474b73c713a63dc314619636819e38e914277cf14089000410a042331f210430d31821043d65dfaff706c5619e7265952b9182398399d5cdcf4301c10462a8c145a56f14bd9ebd7e62902030c18428031e58b425a9e388fbe3837c1fea3f687702af5f1dabc92ab74fa7c681d4fd97fb1e995663a695266b1f331747c81de03a90c074f1e41bee8dcfd7f5eb5ddcdb52f7aaf3c5f59b4e3b579b26eb0f8fabf5f07bc65e7c5182fc0bc17b56ee9857777efbd77a639e0a59b031c079e7477e354177c48521763641716e882852d78b3684b59ecba68b20133366fa0cb68035624c91bf90662e8ee06a307982ee198a59d8191cdc034693002683969de7b95c21ee8c6fb5ca94f152fcff081b0edc958ccf19e66bdaaa301ae6f3430ea961c1765b800d3dd5c68e9961c17353817475a5a9bb760b205989b2d72ca03edfffd5eb4afa7934b0b3fb498420b1f2d485a8c90051ff58a321848413a1ff4af3272dbc40604e77f74d2b2e892458fc4b25cedcc61a85531dd3a2998ca6284c598ee96250ec3664d078b2b5820c9001addf231154792a3e34ae1e800b17472f0c4d462104a068ec8c095965cb6f6728ee9fd02c617ef8be88a30ae98c01530d115ad2b38b0220b2b5a1828040362b478f368bacd4e1a95f0943908729e4d2d2961f9bdf4b139d619fe0d4b423e6fe7a53c65f9f56037fdd25c1f035b3070a5a5ebe707483eac9b54aae0a30a0f5451812a78a412e9a79fd1dc020d344899100f3bfc6cb6a838830a0b50b103150198e20d792dc795a6ec3bc7b4e6de1d8eab4d1f59412bab4d9f5a2dc5ef15c9572b34343f9f37c77d6673b6372ec5fcb171ceb08b7654b96cd91cf7faa13d09617abdd26c9ea21d795c7affe2fc3f7bff07fac20882f3ef0b487e807474f0558ac7e5403aae940e900dae7323eb8736fc172a320712cf92c5bd772928cf92c549234ce5fffd5ce2d95cb914fa5b9a2d508e60b59c8bd8e65c39fcf8fbec7bf3feecc6392e07e738ce837047a1669e392c2fa1a2449951592b9c3e52dcdd8170f7076938b3305b398ed371259ef37b12675a451751a04604851cdd2d6b6afce4d157097f7fbdbb6d8ba078f9dfc462776bc9de5ca9e88939badb6f80c64c3d2a62a13f4eaf7e58d3d1999f833dd0f2e0b14e1f1d787ae89e79e6782a8c8560b64708667be6cd359dd3e90f226c74a981081a5d4660e5e0c418e9d1ae8a135c38c0c109568e4ad4040c9a6802e4e1ca0e57bca69ad89818434896bd173195a0c8048b32d1b0259e5882d5dd3256e9b5381ee6444bf804ca4c5a6a0236a8284a9c40093052022990c004441290c205102e01b89bfed9fbd9e2107cd9d8e16e22165842688926233ce44e848923580831819efe6c8346f04e1d6b5d78acd3a787a7bb79e8232c2ca899cd75ca58afa16d024e26d081127d48d2c84923cff2bbd9cd3bc3ee224d8e787184179e124b74b71230256c50228a12a56ee9253cbe908736bb7b4d5461013e9c077ce54b024de0941318726876853d7a83b10e1e7f8a87bdf7bc9475618c73ffbfd9c2deffaaaaec5755a9ef06650bb6aeddb94f05c72aade265e1c9ba3fbb3c21156b81fe9bb852c1e34ff94bf3035917c64f6b3fa397952d2bd77e956bbf82e1dcb0329e3d9e97ab686bd327e3a7e09d3af8afc549619bc5149e197f3f3ff86578f278aa7927ebff52e9c1189c58e71fe3f1a7b4649956a9a205cab55fe11c8cbf7e9e3d301beab0f053fca00884c79f821fd30944fbd58321bd2eeb52e1c99331edc119d39ecf36e81b62650bb654b55fd5ef01c1948ae504062ad6a5338359c9f567d6e77472d16c456284040a0d10d380dc80043480c9962d586ca1b2a586ee965c7efcba0f7aa5a713cde1fcb32397b091574bbd3a6ddc44aa3f78a4e2fc3b6eecba29c353167a691c41a61ba3a2a07144041a7bfe5d695e31e5d7ee38d8515c5fe85a1a0d5b99c46238fd851726ed6f1210a284f07409e1998de0d2dd75c28c08db0856771167bafb22bcf4f4eac7685fff7a1145542a449ce9ee861121a6674889e8d2445831552b122143f75c09e1e9420d61c6105e86a8756a082bdd728851778f2016ed6cac0b00a4f1cceedd677126aef39a5c7fc94c9cd107bb19c390e9a68a310c39cae4300c09e139678fcb6a5de5194f5655e1d855095da48f1aace86ed4cfe68aa24e2718fdd95c7de8d1170ae58af26028baa2c03e2808979ca71ab92c66647140a6b3d9ff586b0308a6b2f0c8f185565948dd2a208a00a20362861fcafcb046733a4c74a64c19fd702fc9b94e7df035720e8f3f859ba2e34b7cca0975338e32668ac150966b9f72c9a15c513c15878a723f0ce7adc271fed9e9f7f397e25ab9f62b0ea4f39b13e3877df539a5e7d1d9083a08ceef692921ebb8c63d21389863144310339480a115864ee8f6d3c8fde43cf86907262626b22ca6ea832ffce24189e02594979e88282f3d1185e657c1afe3a9ee3f6b057ee6babb57992727e9d7d0df101382c574f7165c2d3672c974775f2fd96fea8ebab198e90d8b19d2fb98a7b06ce9ce292c1c9651876760bf85645261975087fc2defbd6c57764bd7afd65ab1ab7ac66e954c6ff54b0dfb6b0d5deb084fd9cc4c63bacdcce8eef7e66cd6a5bb61332ddd3d63cd9a7477c72ac5332360990d0cb38135d00a78a4a577edf74d9750194261cb92f7140bf174bf504d7777100a85b29705821367a36dd02fd4b551106476c82220c341a642ac8e9803624fba2537e71077ed4e0832049bdd730cd2f999467004bf2f1f958fc9c3f1497c942128b4e4fddff78ef074f038807501e30136c2d6ddd149a0cb9d0a538fd9c436793ccfb6565a835f9673155fe1fccbb93319f998a9ad26f7d35f3ccae1bcd83829389e963093bfc67869e0e5bde4abbb9bc3970b22058d826cfe20ef837a1043e23b1fc4e961d6030d3c0cc2c317c9916c707e36318cd2b2f350802b28d8ae88b962afd8ec10c8b6831c5b768861dba1051dd8e896a4eb6eaa73caf2c83952f85d4d8d205792e129c33456a957eda792de0f3d3875c0b2e960ca410639886959c2adee0e406f3954d972b0b1f2022b18b062849518ba9b23d978a6bfa1ad927626d30fd52a68545162ab724495203aa408926d413c41456a7aa322474bce237123c7f531950550b9814a0aae31ddd25a110b9412471afd385f98da20570fae17b6561e2d32cdbd773aa15c514e2797e2211772402600ba40326c4034388800872d383861c9c1da8235c482c212fd0cf253c5f643c4cfea47002b3dd05861b1adaed8565bba5be2299baeafc6e8b59fa5bdf0c20f8176a8521fe7ac66c8de1fb226d3c9abf353556e82554a5c53332862935feb25d3e95349516f2b29dbca880f191f928d2bf9fef69ce939a347899e1e2553d69892659b024e51e1863cb61bbc9072d2efc4716ecadc73ee92f3e16ee8b9e1007ba8c868f9592097655aadbbbcbf34ccae6ab2f1ccc193828d270c4f8ca7890d6f6c3658d12dabb83f063a55919c17ab9e05ede72e49e57360f41fcf07bd4e18787fc87a9d9fc5947f9f05adc591a66be9dc91a68ce7e7b3ce58a55e925fe54cb44112a433d777fcf9e6affe5dacd2cf4afcd9f6486f82933482cdaa2367b5d77abdb876e07cd2c839ee63b3bb33e613a45f6b87a5f26b3d9c899eaf7e5a3738e65c3a258d26cdbd6b6138b49705e3dce4d73a141d3cabb8329e3d9c9bfc947f469b2f9b238873385e58c90e81600a3fa1858efb42757aed3d9d9d54ad5335391d9742b3aba2d7f9340bce2934ff9bd84bffcd16b6988a4bfff9b9c54e1ad16c4fac528ca9cfdfd8950c4f1ebbf2dee60f8a559ae9acf2d5aeae5d61af8a3b76a5aa76e57d1852f15e069b0f44b33d19530e3e48800a9d455baf98f1382bfe718e20385d2308cefcd90679f577ea8ffdc0996938611e930e4765c34f0feab30d1aa170b5b85a8a838a559a93617f690efe6c836ad3275669b6414230dbf3e31c67cd140c5bde9d5eb543927bbd38b719366192d4f252d028d3d9ccc2feb26478ca783edba1bf2c3033fcd1db0c6bc86d862e2ed49a41d633f46c338cda4f251fc5ee74c2b97e8d558aa9cc00e4e37367b34d0618b4f7322c860ee4e39346163264e9cf62a655ba9b059b0c2fc86044fac991544bff2686337ec2c9e24f55ed00057d376f887431845b0c3bf4bdaf170c62361836189edc1fb2d7f3944181e1484b2766743bf1d2727322eb6e127a73b2729282cabb3f6441d002e57ac558a59bcd173632f9b26c53436f362834d9a355f4d5644b1304302984c9164c74605292b37fef5fc8e4dd1d8eab5edd640c3609856475cba73e45d6662ae3bd09c9564ac15612bb1b84de4ab5845332c0b6448f255e5a8e935602a7ffcc03c5927c494b292e35fa7153e75ac26d4b6478e105d241e97dd4592fcbb85ef146d62b769825b1ff10f5daf4aabd9142b0d9a5fcbd5a73775c8e309b71b6ab92cf0a63e7b95efbcda83f986baa89f5aa7117c6b8c0c58527dd021f3d2d78d12dbdad851a7a48a70514ba657d217b3bc77463c14cb6950530b5396321ecee66a18992322f7329f1925262a5fb679b9291bdff439232ed3db65b122f8d3feb38894cf4fc491c89993a6148b2e851ccd8821b920178199b7771968bb0ad304692fcbbff96cb4eb5ad30c4b6c292ed00650e00c57600d6014a90a21dddc7cefb12fe6bbd3f8da095d192a8b0840a3d9b0a2cf496c217296049c10006b8c300670c6100ba190077330b4b92c4e756002e5b015c5b01986c04b86323801504e808308224914612a4f3abd639ce813614ac6c2878b09d30c809569cc0da4e706133818dcd042bba1b87de4c081e258d63f7e1ccc24a392a532762efaf7f873d7ae392f443e014b3380a27787fc8ced914edd799417146b105c3f7464e93421f297ca149c1459342025a7a6f39ff8e8e60b5ae6cc1d67d16ce166ce1cfba1229ce31718e7399e5b437738e2994268e69d8f256939ab0890dc9d48978e4349d9cc4ab496234574b4bf62fcbaec41f29b6e0a25b040274f7d6cd4102da4b0950562768e916cd09329a138ecc11aca2ad31a1ccd39810c6042e3426d098902447e5a00d4928afd229137b309d570946d0947085a60404d0d0044243c346d3d06c34db984d8a6dd26c354cdb5589556ac2ae9f9c5c298d88494dd3888cd01c2983e64812475e344748a011400b680440021a015421001d680440a209001fddeeeef5f59c9be4ec4ecf504823d28814ab23479ddc439d3eebbd38f9fa6a572fecfac9b13401b84213809d00884043c219249080041f4830d18c5007cd082a18618866041aba1b1545725ead9bfe86126731acd42b758c8a22b389f3799ff3d4a95acae970f8f3c42a97a51afdfeb2a4cd39aa1236fd655198e8dfb9cf44bbc2938766c12f5b5610167e74bf5ef3e6dad388f041081da00941d62d71cdbc5962b1d24ca309218ae46107cea3fd8ac6c8194b63240d4963a4a72506a7632f792a10c4a101e1053420904103c2100d082dd07c2047b7ac13068a9f8be68321683e18d90cd60f432e8bf6c565d8d76ab178c38f1c3bb7d98274d25adf0b4ddf61fa42fef1057fd8fcbcc7a4318723c777eeb8c414c4a47184eb4fb6ab79270b0922e3912c9c74b791a6e1c0868608cdf1140d112e4d43a4266988a866302ba7938d52b33763a6b019e2d84dcd3b59340d029a96d1f4d8d98fe3e1bc4e3f84cc215f0ea975f721a536e48eeecea13743226088ac5b7292fb1ffe8672de696a424477cf3b59a158e78338b97aef7d2167ba9030dddd93cb5688acbb0b79424899eec671d09910224612a2a509a92147b511e2ddf3ce709030dd128bd586b4ce99cfec1d64102b3d88ad2f73ddc0109563fa9e857916e7750302d8a08ecd0642d8408633809cc1e2cc0f67a2744bce6bca9938e726c9b94990320429424a102c09d2d3dd32903f02b92210afe5064813804000101d4064d8fe70e38f33b63f84b63f46a8c11735582247c5b9122512ffef30c14a94c81c15931b9738e54a94c81615971c13dad71a58f1230e3f18e00702fa28d307127d38e1c30f3ec4a0b412a9667c594e92c4c159edec7e36c5aa05bd4e18f6f1da3c4be19c39ee7229678a39d9e203870685d0400534e872678eca9b34696263ea44ec778e2a9f77b2aef44683146670831984a1d6028593e6b9cdd33feb0a5d2ec31656c5eb367b1c4996522397ded754b1f33c0b9bd8fbcfc9b65abb7acfe28493d6cab6d64ee28e2dec57bb39a0a9e3093d6ca0c718cf16ecd2ad47a7c71189f330930798ee967984328f267dade771a4f178b9f0f8c04c986ec97123783a99d172ad9926324f2236dca14677fbbc339c7e9f753f9438e3391d67312561c7996e3b5860c707a6bb7bd28259922ec53eef64ad1e6cd5a6cf054c6374df4a63dfbd50b3c3b95a1cfcb4fee0fb42b059a960dca2a3b6d1c1a203853b52decfc1859bc34af71c27486fba7dc1152fa02fa871010c5c00021700e182d3e682520bcc58d102af054a5a600039c8c8e1841c9c1c328e3de2d0228e1a0702e000048e312dbf5a771d4c65385f262f75afce2a0e470a6fd0e00d2e84de18bdf19121c10d3cdcd8c20d1fdce87143006e74d086196d7820b7b16a63041698d1dd5e6947bae0250ed312c7dd894dd7b2c0002c38c2061a6c20c1c68c0db9023e5680c689f36bd728640d35d610625b63688d19d638a2460cd4a0428d2d6aeca8e1c19834c62431a6966b1f942489cd3c70dc0e930edd49057c2f5d173615c4a1822854b0830a6648c38f3458b0441a39a48142b7bb80298ed7b72baf521c9982560a5c48810968b08186043ce80d8d07a0c1838608679839638bed0c2f67c0ce98a15b8e9c9b4c1214bf2449dc665a53feb29c2489d0b534d67f7447cadaf4b1d77ea0381b715c7ab62bfc148a23ac23dd1d6c0ce7cc7b338e74bb7bf3062542c94ba76a796aef8d37432c703ed0e9d4dd47a1807278a244817d500794c3732dceca4b3c51fe5a9cffbb732dceb5df0b63cf9b3ff3cc61618c7acfe2bc6761b4af18cb4420a1485ec2f95bde87f3c25a9ec50992e1297b554be7cb669edefdf0666befebaf88e7fd211b7aaa97fdaaea65f37c65d13e88fa6b7144fb7a85a20c4f1e184f946bafc5a8261dee399d4e27d80f65da657a831a3345f144c9310c9d4e42b00d74b7506f62c694f044b7f742f36932481bd9c484ab15c3851824a4f7fea18561afd4b33fb8135b33cf1c9ca7351c5217c63af97d5c40df0ffe7efe07da1a27f84018e3fa17e7fae1ecf2a430fe1e488627cf78f39ec5c1d7ee00e1bf2c3cfef7f3fd604cff77c6fb4314fc1c9cfb5ea582c349fb7ec49d16ad32d6ec65613cef6461fc2dfc18a7c2e983bdf93c38e7fbb15f558591a5bbc3d8610ba315460c337bbf3046e86e30fe00a34cfb090c1064d1be3630200046adbbfd54ea36811e2300a34976e18b177c01822fc034beb2d299bf68e20b24fce4273c71ee7f9e1796adbdd95a209f3b9b7d6b44953c95975051b20d42792a4f357ecb9b161c67e85117ec15e25c7f86a3b37d608bee961245743cf195b01f7a65da7dc0eb9e49835a1f287960906e3cfe94589d402dd47da52380e50263746145acce0bc5c64d2f284ebc7f79df4c74036a1d00b0b70ec8ee4a3fd321da54b409c0682b9acb02da0a0d1debaee916ea8d03621a5f4904895237912188408083194e1cd874f7d75b173730611b56f9431dfea1f9e0ec3b224a109162db40972c6bc84008de00107ee201f641efd915ea9bdf1305f6411b6809060ccd1b98d0d25c604656469b50bc0d8c06dca8f91967333107d35a588b06b89406569e37b938011710e0c28acde30b7161c2b6c5192fb58506b660628b1a24871fc839c738bf6fa14508b4e032b598a2c5a8bb679f8518592c91c5b7cc75e6da0fd9192b9cb496e43c6f725ec3496b495c827d907bef6a0aa4d16d2bfe118b2f58b8b0709281324d1a6520c4995a9c01d21733dd92c4e1897f1cb9cf073b920c4fd9e8cb966e285f6cf0bc2bce20a15780690e7ff68a70bbc2ca0c539f2b9e747b7f6d8d5d81425b41c6ad08d35670692b74ba5b8ee09d8f42a15451420c748046154b54a165aba24a151c50c10615425091372a4a539099828a299298828629885c00cc05b8702cda57e7569ccfca9738cb67f453e74c96290d56479c3f068adfdf09e3c69a923c703b38f81d6772251273391c959707ce28adfe372e6b4865359b972abc5c2f54362f46c06c16b8c2023f5b05ce54c0cb56812a15f0408a36a428629382c916851cddcd5d918bc1a54871d2e9f4d917e7cdbfdca4438ee35296634ba4d7795d024e11574bbb79ad57c79217c5dca2280005ce6c14f0830251e0da9cb158a31fe9bd20652987021400010a35a0006383820b14aee63816e7a613c73d71820e7a7ba28c27b03cb1c2d685902e62da677a27b65c7e639d3397ade3f4da45004eace1c4059cf0c109274e80d0841f4d4cd1c4029ac0e926714e5c0aca890d0bfbfc6792e5d80de78464c3f225eee34bfce65a12e7c4a3f8c8b1ac35b203a8a49496eb20756866000020005310000028405834209009c5a2019dde011400005eb048b46844972892d029848c31320220000000000400f24dae78414e04e71dbce5e52e05b8cb627250b3aff40a2224cba7eb1cefdbd7dad20307558912e05b413acd74c85d3158992d1fba2f01b7f28ac145c72c9f7b8120fd43e48f80e93b9b51a3138e97d1c40827c1db069af9c4e38351d19754798f0187f4450ded53ca0465ad003d8dae25b42223d5e041dfff4db0df531959001290a709a73d082bbd1ce628d8057b13a2d5c0b9eda6af915f8da7f4285809d5053ed11016d45bb155d2818c982233f2451bbd2a2947ab2efadc1c1294c549c932067e89c8e0a564517a391536e6ec6d45bba3c1fdd5389948d99b12842d91f562a3aaa228feaad1da624733f7b6d8f8ae300ac70174e2fbd85224564fc9022499d831bd457f95bb0e00288296974fab280285379f0819d9d374d59c2efb54b901bcff433e4e898707f8455dda0f1b76f7659a3271fbb5a06b534ecad4e2284961964082d22998faee1f526b80508707376d263fd634c4ce65cdc8cde40e75e22d772ea9480059fadfc607e4d6dac6c53722a3a6f4d0e64612b13dec58963b04ece72f7f1eb3163fc0ca05edd9a3c1185fa66603b7c16eeb66ff5ca042b79549c0614d5b23f4882f66eb3b045241f5c8e1bec0440e2e3d082c5fe79b84011ae4ca38ab4cfde3f7dcd80d9483247451377f4a76b71dc5816002109d19ac6a9e7004ba6210df718c0cd7a7ba343880d9870fdc838a73af14ce266c57a02b1a3d081097ad1f2ab6f73848274ff813e192e763017fb55c478d346c6ece4b4b778e81cb714edde03de3014d12b4c41ec53c6dc26ae72b69a817a96b5363236b7217feecbdc9c428be746333c57047b30d5bb972278828c9761c17a4794019c2f22feeb55f6411abedc985b29c61ea1e5fb7df71059ecc5c8ec5a609cc23f5cfec9a92876a89d94aba7364a05614b622de41197d9874b211f83154f4972860fcd54a7563285bcd20e16fc9621a475bd4704026117f83cb6bd2758d041723b4817e0c422d9ae42668d9885ccbf3f6aa5431f7c123baa3f8df763e9d2c03fa4b8daf237ef69a9a8b2768c29b26f280a9a57ea8884895bdac139b9fec5f298abe2e5c6f09a49f5d5a317ea7cb27aa104ecebe2d46e7088e99e75ffe5c1a3db7ac3e5f7d3d3c76c61f7e2d7903471b11a8f07222624685c007ca2cf76280f3ee3ab32669a1e8142b01d3524f4c5ae86bb676d027d20611e31f6554a1973beb118509f2fcc11ef81ba334f69dc12b344aac04f08e5938ae7e1bf574aee4817185aa30984afbd8d5f349fcd94973eee03d9e43b686c54d1c58db519f472716bed5fdbe8c19ef092b97941f90b52c91727aa23407e0aa4b8021ad29c45d6a792e383c8798e497001f0697d4edc37f36421bb12f03c72d147c99e83a820b9fa056c1470eeb18a2913403181af912bd6969794a29226cd845b8e31191c6772c3e0374259a9798731895ec522eec5ae43d77fc28a5a27213e317c2a95b8876fd0bf371e8d99d5e749767fb6d5c360130c03430828f9a6e08b2bc666f5c32a9e7bb2fcc7143c9546e33b69cd4738b0fac6af3260e085f1f75f36a5b3383d5ba991ce8818b076bfef8856fe03e369af3917df7eebfaff38481fae15635ab2369632314be98b9dea452af47c57f5a9e2e4ed6644400815323f51a8876a8496d7cde939f08ec54615ca32e154350683249a8857a5f110483e33ba93b784348f253674d46574fa49649f84f9531f079fc7873b730fb8e64878b943202cb01a07d043314f6e58d3c5bd40c48aefdc4bff2f1404c777b2d94860449fe3bbc93af1715ff9b23aae3622f478e278ddaeb441a770bc23aae0ca4c918adda712cad62a3acfdea7e65584886543088ca0d3ee43a89c69f534a645d1910fa8fdcc3129443f4b38f9aeea58b674a77d05a3909da743d3066ef94c278a149fc48e7698a1cc0c0e7384ce2d45c52c318177a25c1e16ecb6bf6fac49b370309d49fdadbac77b1abacfecd35e1656048ac10192c8a6bcd23214a341c01e5c491e47093c47884c12c502be2df4660dabba038e3886a4f21c22d695fc2c0be318a6f27111b90da01c85c010c6106d61dd7face4e9fb14367c7d9d4c99763e5500e786b8d4232bc00d1cb89b697fac5042bfbf3fe1c248e4296cab41cb7d65ed75c8deca6c25eb4c28e5954ab2e610b011ebef8ef47ae2bb4d7021bd82f0063764b5955f7ba20daec54492ed103f2463e9cabb177dad58ebe7d1058807e1f17d3a74487352fcd5ab23012006038827d74779358ada4125413fa0ee1abf94d97291eeb01f60dbedd54973d78a4d70fcc2374c3853c4899549b7c0f0037f29b3636efa4a23965d3265d3f823a516cc54b12a5516e6f0164a512bce1e676de685c08d328c8d65e520e46fce9c4ce62ae9422172fb13deb0a74b0757aa0afe9e6dbafb14cbbcca18c39858d4f1af65c7212ff9e8dff8a75650aa6232bc5a007fd0a08a8f6d6f0f8d7ca8cb1a5e637574db856f7ea2e59e678eaa595a7e77d8263e913707e9540d2eac97967c6892a8a531e0b75672cdb802aa7477f137faa00506e3441ac2abdcf4758718e88018315789ce7f485396842524a55385cd5576b723abe8cc67f2bd62580d055ed5ed63b02856b46c5f9fb4489fb48b8e48d9aec9a337c519d8a130dfec101cc0294845b4f890c4eb7f91944270c34d575c138cb53adb9ce1471ae07461555cef715fb7b768d61f18d360fc1fc3c78211595e1db86db7470a81adc4f79ca7c5db0618b38f0d100ce4aab54d6c432155ab7e4f03c7d59de3f641e95d77e7509b2a5fcec529ecd3642e0298298c4f356bae0fa0505ac8f08f2ce5bd9cd4ce9a643dec080763e1f8e58f4d95e4fc1daea988b86b62e7052f36e77d73d77af5b32f276d7761473c46f44ac93aea50d433af145e6059d065016b8c9523cda6156a39aeaaa2ce0015386c2f2f33bb7dd207fe4c5591e97091de81d1fca43c027e40b36f693ea4e7c003efa1eb9553df8115868d61e599aaa08f68fc12de18fc040bf116dd11fbd76345da250db11fae4f97fa967787cac2d5170688e23efb61140c16340e79676af54a236914725302b4ab51ff85f9d2e6c31aa412c35d0fc4b67018c2b9bd016a19286ef712774bf85085c1c66bce6277673078c8546774a325008e1b999ef485a534d8bb5e92d570147fc82ae74d5fad0e0f252d915c2ebdfe9c369e7eed479bca622e41d9876c040ecba8674842f44ae44c6c8f2669aae8de55ced3108a1f129f8e751ae7f35adee68d4d43f0f0fbd9433414ac266354a46055c4c8cfaca10df44d08a294c753a221ba7992525658eee5fbe1e852bdb0fc879e358c1a7507731087511164fa57a5865ae65a6d8f03790c60e15ee2d31075380fcf83c5fcc2de13be8de6e384c786563e24328e263821564569684817326084de8bb0f9def88d22ba40a8a979ff85ee3d7ea5238281f06452f9fe04b2c836693caf5fcad50dcd9ce32c71f927f498fa608a256f785a5a664a9d6c6ed7adc849411f05899cc3ced6a1dbfe7425964c6586e40edd00a1cd0ffdc609629e43b31c8f7324d51c6fb4395684799d408b6c463176b7a20b1798b49149afc011fdd7ffb0e20d7fb8fdf32df19432c03b50691aec6fca00dd2020441b95bb1ffb77700bf9a57725964a72163cac329b704d8eee7932686a63cc5181ccfd3a5f44e2b0908e003779896cd3881c0ea327e41484767cbf13ccd15c23f97315a7bc8e6246437e67e083c4f66f0818851e57a4f37f58f22a47a6c02f92bca4868e7f16af6699d78baddf4d13990b0b290ecad10c2123291b8e93c483306623032aea774f6f42f297b209d9d1998446d87ceb1cd41dd0c1e80b7a71813581d846fb70a9096ad01bf421c958319668c5922d3ea351dfdc916964c15cd43a7feb80a56d776f20a7abca0f312632b66523d03e386646d05ba94015a8ed7e35208b262060638fb111149d458c0edbba5ab6c3ef2e940b475f93d411cf3c98b9b77b5cf7965fcaba2c66516c0f1031bbb788b12c74801c7554938f24078e26bc98890dd85dd6b0487692871b2d7fc281e3dc6c52eaac22f43477d2ed1eafd1f4478c8f7d7e5e8f91f8e687e19ed94709d077b8ae3cda429c91b1d91310713c3d2c83460afa0e8df52f1420188e0e8606498fa61e5b329bcc95285afbcdab3614b3dd8e35bd9f5c89b87be427fc1c6598820d09b349fa26839821310133f96eff397138df029dc021fca09caf11543c7978b1fed2d19a73a022542aed5c755b46da0512e0c1bbe1b8728e49d65815d5cb938c73b6295bf361c6f470282afb70d602e5308103b3fa1e0bacafd876c938551bc6bdf1631e47ff13fb6a748bd069dd7bb5b960dd1d6067eae183ce58add9beae9c43a643dca66cd23f27949ab29372735eb4167bf57832bca23c38975797e2af6fa26347dc79236df1abba8d41f2b82363672121636a4365625b4ec528e6af1292c6e9e8bc2b26caa3ba3b9506a2ed85971a82662711162dc46bb1787451d16b08a317352460bc84b5b6f39133253c579332f72fb277be6772b539e781b0c137d3eac782d3abe08757cc829fb2103fa743c456f2853fec365fce5bd85ccfb7dc745b3fdda53d2f885f57da953622dfc9646dbfa90af78707e1d324bf86500be47482e3fd89f56f3bacbe6f12874487fa14e424b6cccc882da0eb286891ced309436629fb0dcb31c785a349fbcd0276207e9b97be9e7bca91507611ff305438dfdd622a46454f599a703956187d376ec6268e9fa2463604485ab37200d9404eb223e245aaccbbb4cea05f8045c5b3afe0cacc75e3503ae633404b2cdcaa922b4b74a338a5c573c091638e456513e0ea5f264f8060fa0790ab606ed40c5d0bafb6f92bf9c36d3241985c8665528687bc94bae9978512e457dae9f3cf0ae91c7afb354406af7cce73c8d8de38dc229c92abdecd2070c2b0ef5da2139791aa3eaa7ba250ab5a71daf6e3ed2c50fb7a287b9bb2a01fe7f4f041005be2a9537c19a1662f1cf191959522362486214b08cf3105f519ec80dfc927ee22fc92d5418456bf2082454223490d3ac1414200e1ae8bbc5c85eb4259ce03c2777f140ebe9fc21be8f08f6adf74ca0286a1905edb17fab0dc0d7ef22fd49360ae90df95f099c5e873293a599942c1ce79fbdffd126ffb3acf5bdc85574b593fb64b56e163db0fcc4fbf7d42cca42953786dc6de73c117231d14a47c4cf6b276932269806c861041edfb468bba531a0c6b92c6ec448d45310ecbb4f53d0f7bd3e9f8b278f0722302a31835c703ef729c3a2155dad9beee8897c598b59e1c0f88d614370b64b12914afc72f3d94e4c6b5469ca78c18cf6f9f0bfd01ba4f4866044da1c7ee7ce3231132c407d4af03040d78b8cec935a12da4d49298ff678bfc0d12a59f1c149f428a08a9fc7082d144f395df8933ff67d49b8d9febaddcf29fa5c93daf668a23360af40cbf1fc393e4077f881c47e188c4f8b546d94954eaccaa595eb103bf847cf0aadb904fc9feb46ad3541d64b7529316e8bd30706f889ac409b06b1a96888c58000507af10c08aca202d264180789b13dbfd2f79e7080251eba04a376b1c03c739060c036dce9bd08f000e4fd4c738be993fc3dfbce6ba08994de697349a26526d21e4bd34ea118f67fc12deb333f6b56e8a1969539478f2308269035ec85eb10636675edb42a43c66b639f0daa9bf833da0b68a534944d9c6f87420f2e5074f7c458a74286f8e1df4a295cc58554f272cc155b0f4e11a0ea221aef16439bd028514e35220403aba2f8c9c80984938d83c873c16d6dbf6d2ebfa4a7a313f23cf76683771ec870ecbfc2bb16070e4f089000884b3a1dbec1b6c4b98c1f8cb3a2d0fc86e75c9e1819ddaf107df5a1ed546be376530f42ede45e195330bf6b70de2d22dc2dd8dcdfb9948a140a041f2cc95ef8565741b089e6abd5ef1320b757f196663ea1ba028a43bb548b09da4882a17b14a8ce9832e11b9bb2e582592d8659bca67b1fd8a1a9b38143af8beffd706142eaad0b02029a413edbf06887be950c554829f43210f06aead842f2b3dbe66486c4812545f7d027325c0fbbd574dbb6a59ceaac72b5ee03c2e62ad4954a1b2dd4ce98a5c7f7edec623b2b9a5b59a6246bc35f13aecac069b05f06190d48d69e57169b0d42796599c9595fad4efb43337955969ba12d1f1678dd52e2e83376f62f7237da576450543500b318f1f4c282f4a958049cd40187e99df3126b1ce4261cc73ef0c61115a9b38e17bc318e36318ea1650a6d3db689376c5b3703c2895092f006b084d4ff3d5059c07176ac5136f879041cd4b2810d58018705fc515fe7bc65a5010e1561a905ff8682d31eaefd8d692f38c4d3c13ce86f6801812faf58b1dfd8b1df56d337b208af530d6d0cff52ab6f447d92e5231ea4fe147c6aec9c3b6d790dde90c6c71821cfdf8eb9a2796dccbdee52de2f630e84d41fefc24368ba3dcd130da66317ad2404dd56cfdda84b83865d1fff9b0f1c30f3bbf92cce665d72ce9d82fd8be51eae641a1f98537b41e1ba835e7b7bf94b0d0886557e22066f38829f5965f9a3818c57f230b8969c04111a3c7c68964a9243178ba275c203ef392eb8137d349efe415d40e8e85a3a152ac5019693bd16441ee2a58c9cbe6595d3f40a38e1fd72b5323136c3e364802baecbd39faa6831ddf7f19f1a7a4d9d36b1479a37b196aeff35cf5bcb17d750593689778d159dc25003225c4991614b6dee9a3e0d1b22fa87569dd0f919c24f1b40a547e4d0c1c3924e1dcc84da32cc9363b4b01f449b17c642a85a87d4bd5a4944684d65de55314e43df05dd7a800e03bd1230b1e1308209659392a29f64337f43eaa8ee798e94e177c34a64a8ed25e061cac2f681297a1f8239bd5154a96d38f1f15de1f7bef2aa17b132c12ff6294b89fde39e7828f08b92ae8eb44be5f8c30327178f73aa06c9b18ffc9ee3a44c52b0cd1925f8e3d0af749cb1c9cf5dfc5d22240197e76b2723ae72c190e3b15ae79462ef4ebd45bbff13e5085ba15601052614769f02f5ae0a47b982eb21f43b81ff2bef73c9b57f68052f5aa84ed9e8ff66e2cbceec45a7bb30b96893e9c4f77b48f523cf61d0d048326dd8985d85ac4b665b4d0eb33736594185eedbef358521bd6ba090762b0910f34ddba0aa55c3a27797ec575a8c68e6ac0772ce916d82e7f16987e3d0e0896f9483928afa18365ac11efe2ce856ad640633cc12ad174b4cf515b1c8091d32d5bdbf3aeba36535a19c1310615dc6315cd651764468feca8b43f0ed8a2f094a572aab43d65ae8af7b876f85c2d9cd84ea2ac29f80977a9da9c37a269238fab03197ea1091b83194d0149589a1c998359c1d57f5787ee0ed8f1bb5849bd695f6f9a9c6fa2327ee6cc723f660cb5a0d6790f166f3e6dec4326b624c75702d41c452470e82ee548f7851b14dd7e148139242a624ef3db4a6f44375c3704e6e10de2faa8d009626201f77d62e6a5a856603cd485790708a22ff29e2c54a1324aeb2f19f0927fec45516f6ac0de29fceb59603802fb33a5ecc7e9cabf33d443866f2f567aaf58fd379e20e2528aec81f49af833587a7124ccd44488e0aeacc48e98ab22365948d8dc2a6a6e8905f1407261995562d5fd7128792448e010eaed7aaaf0e17ef2e87bc68ba3a4b41a4b13559fde40e89bdf3609621615788e52ef89c2141e950344384be06779e30ede2670dadf6139468a5a6d2cc988340d26236feabac162b8ce09c4eba08293b124f13109f5fff68c3c8e6c370ad3cc50e086a9e88417d0e8b5a2426a2a08c98d032147852485f093606e3f7e87fd903e7739244fcb2b04bcc4db372153d08ac09e042910d499e40f7f338756642d3ce9bb449c7c562ea6e4225cf409e104a29545e4d75a026d414b4a8ab3788b40fbc085d2e5348cdda9bd7ae503c45f321f824d16c1dec8e2f38e552e01f1c5126d025eb90c1af25d5ffa70589e3a84f99f13f0f2ca5220217a552803f414f01da4fddc826323aab9f16a7e9c8bb02d2297b64f0b5377f3e73f725bab84e38d384698aa7a963aedcc8161ca98e661056ce4c838c874923372bd489f0f010104de0fce1374c785bc19d6dafb0f7e53c59813745da183d3ccac129599c3be017cfbd4cca851903d092aeb3948f4a70fe4fed28da9add99130354a13a8c0fc6b0737ffc31b481aabf75a6f93c36b98ff7b1ceeb2d3ba333481d08225bb1e0c5d5a57321b94e53e780862407aa09390d0eb9eda0e9e5684ed30c6818c895e332edf206067587d8511dee1cca99abe672ffbdbc9e7782e408e7eda2693676d93adc55334a5121eeda61523adf2ff008c1daf1a02864e19cd21cbd170b6a64961e7ad03637986e4697ba7eebf3fd3654bb404aa80f0675e6f49271bd37656101534ce74a2040adce9ecd505edec5f593f24e0d5f4ee45f019a9ddca4d76950b915dd23945049186126bd06a4cc941bd3ab44c3933079314ce17a223217993d273f78ecbc5b2a7e51c29d303de1ca5a4bdfc887f301d32072b612f1c410544044d7880b9b9480e8ea490f3f9ec19022454e905a82d654b98752301638973adf31dfd84dbecdf4d297251410b008fa29264623a63c420d692372396525ba842a057ae042ba8e121d6c38234f50948d2b0010b108fcc3532b0be23d99b06d6f1f1426c6da85f37574fb163be866636e1287af5be58dfaae0e025827925957af73e35a84450014b11a9aefa3b260728895b2b1200f6e35ba8042118d48fc41631014f7a36875a3b18f14ae6bfe1194fa6ed8258a4621f180f15f6a980cf71cbea1ed9213c660a82ead6d5755cfd9ade79b0e50783bcb23c0273727d5bdbd6ba6650ce35b4ff67d983cde7356aa77e81e4b5e154048480aebf1a45684a03ef32c0eac4c8811dc92efbcd757923ec5896f0f3aa9a7d2c8a20abf5258e5ae40b7f8a81b965c11a2ef8cccfa8ec6c74d1f4a0f4c1d295d735e395445934d6c1ae15f7a88c8b09bb11076d62ddf829ad2750964e851b8e6fc3a702710c67ebe44c9156f4de1a9b8b55b7cb0ba0df28dd1bcf19e2eb0074b7062ab50e8603bd7f5bc22f9a6e4f3ffff9f593663db9c7ecb58ac2082c37c0f918cd1d42e6aa92dd259be02acd65d9b103c64b45e33ee8a7f85918e66b2e6763410f9acb2bfe5c04bfafd165b382ed6a36688077a2139385b6658bd17e5c181437d5b4db8b26e198c16968dc86938c46f093a23fb257ab1f06914fb105036081a98a85aef1a77058e6d09fc4be4d6932b80b1a10c45c5ad6139b536e6a103087f3120dc438968a630843a97a2b0c67690348b786d7e375d71154ec862f0afeaeb3813348146c454629d044e05aad5ec6db9930eeb06b7f8b372f3c73fa1a92ab754043da9e262e0c23d4c16e434c24d3a991ea2c7a02496f9a9b8855bc8cd41326b40416c3e78de02773f68d4370fbe1f120e148d04edd0174031491a858a5268494636a45f3b73a30ebee03e726cc7e0793262b4e38ded0bef93858104872b9bb284b59b660189c00023478be707a7548ec943111cca2f7782d8b8068528a4961b698b15ebb9adb411b0c81cada23a8af130e2480e3cc142e338c53486563a138ece1f38702efc5b479dd75f13fbb1587033a15f19ffbba0e8ccd8d1929f656856d2ee6b0ffa16d188a2b467a5b337307459214ba4298a1970a4ae5d2d827fbbf5269a1cf3a56b670130b72babe7995ef729aa7f6ccf947c5ed2fa8881b894207531715324bf2f9220f58c79cabd9dca6d30a7a7329e3717e379b7a0a1e2dbdcb993a202cb1d002bce920f0b14a339cdc267186a6d984944c342df888c81aa2ad780fcc38d7367fa4757c5ca92a6239ef707d69730a4d5b324477ab1eada0500f02f9896df1d9c0191c96634e994d1d93be6f50c4688f839903a9d4baf2529aff0484406ac7cfd060e7e186df864255d46faf7ea0a02d07996de02d541031384dd02271bb44cfe1fd1e5293e58dbd2ba4d031855eef457f96a69d7fce1d826d00abd881bb7d7bd2501985c59e2819283c3e5e70c3d20f38c71c3c8f5571ef59c1ec88fc5656f4965b99d3ea77dfc5623e11d217c3c1a16280460e91aee3d7ade3199e0dc2ec23b753823b3704563703b5b715285e165335bf318b3d1e0e1ce6c7bf2f92ca9c61bc0bbfed172f2cc9c8fceef2129a214a177aeb81a79dc754588f9ee43bcd0489a76fa8ddfb1585ce60a99908165e4e6ed084e455420ad31b2b2cde3888c9682b6cc997700a69379810efdb420c733c83376974d75621114991bbbd53515b1acf9e14718ccab1d9b9a6d2de0fb35a01c13524649ddc9b33e4f48bf26168a75f7220eee4090d25608cd201e7703fb2d95fa131da35ef33bb52b12f95977c42361ce5f05b6a7dff05df36fd8af3361844471be78402bf4b547ff9d827647a34528820328bb8504c59c4770e8a41dc546e7bbc053d8dbc9d6c68ccd6320329111aa0c04d00e95a74fb831b8e8dc1e38fc84245a993ce78c03edc2a82a73214dd6da850d8ba8876f69743e4686c09680460a7e8a30dd83e5e84b908d11d04257a3fd30fcee39d5c6913284c2294c651ea34997a143dec28486a2714a0e95f0cb9f95ab2973bdf3c7af38f176b8ce2168696280ea9b15a24080f60218e40a4ac8c826993d7180e20989d19624dd157c612246a34ad765c2e641ebf04259807c736cea52feadb631de3460bebdd03aa97861b18a0849e8baa1dcd7979c798b55ed236b6037dce9bcf9bbe683b2ed577a41fd3cfd15298d00134a742ff3b04ce4a682cd786b9f13a76e66d79ea5b992fe73d2a12b2f6fc5fd089abefe60d9a102548404829495367989cec749dccb75fa4afd54f41d6b47188824f1e2f62a8f0234b28d34969e5b5e5f4316148cc4812c32304f4b068ae015d6c81f9a08eb27069ec1db007b47daf3f4686e82f08cb12217166de651d8f06cb574f590cfbee3cb83dce0877f504edbeedc7914195a0f96d6e073dee90a2d730905331be9a6f58475c743af8b3e0a8fdb7da547351927897c795af5793b7b2acb9c7f844ebfb0e69e69061640e66546b123b7234656c4a7b3e8003b92e5f745616dd366e4d6a56cf67a39c05d98882fe7000205094cd86d68a082c68a7814e0cdaf3a9cf83ae66c71101d70d7573b55f7a65cdc86dcbc3d4975974e89eb17a20f9e61684d289abc72802ce795870443ab5ec73ae7c1856f1813aeff9f0242fb77c15960849f111d8ae59be47769e95906da04580e5f82fc57f35c28cc726bb1738b7bdf5ddf16c5208441c9e3e428192bf62160575b7c7dd82345ba0f8a5ac8596be699379f14c7066384f6b9eeb2c6b8d46cb9831f21cd8f7b1b646a7d198f14b722f3f07b2afc7246fac21a64f1253400e9a3a5f4a8038c5250f339c66a6a0040783b328726252b47451208000ae04a5fc384a157d47ad91c4a2914cd380514e42cf99f0660c7b03b4803446ca43ae9fba2e0ee073c9e08ae62ee5fd0bc7115b53cdebf41bdbb0ef03b46369c90799307d243a9c58534d099078d8a1fd4951f57d7ee6991dc772252b4ebb9336af4f022ae95ce5dd4c6db46a7b7bedf2ca2a2da1c5e48d06a5b3ed35600c72c33bfb712b08ffac8703c3669cf9806faaf8a00a94489b104580aca5d6824ab8cc048351410184a4c4665951b9d14789e54e1326fc3e935e96b75a5718f534bda060d543013dc82432e27baa8759f3667f9cddf4bc6260cd3ef93a48c1903dfa1fabc9c8b27708cd1a0191a8ea42f33f58153a770edac0d665f214768bfbe8f065a4c57fcd49da42535eea85405033f32752564be8156973ae58e43308d05c0e6a0455e5b91b47c0754b111baa72ce493f84e3ca38f421c894de8a43bc648a6554b12838d5fadbde721162432788b7e014dd065fd895af9a93a2052fb810091169405940071d1155a4ccc2c2470ca98deab1030f5055c53c2c4354484cc8e61d6bb48732d10a19962b967b959013934b8d0b8a2ce155ee3833ecb52279607a32fa36049500b88a6e41e22d4addf119b457a75978dfef9f2fe23fbb484fcf91a606f7733024fdef001c35a59a4f422336bd0cf3cfb73f91c58a9c06fa0376d25b5063e56b079717f765174e670ce484217f66b9735b580314a95629262fa26b97113a17152c2754a1da7038f8a71fc047ed0b3bd97005a707c0be8b7d071e7ffecc7e32d9b79cf2cd1079ac3bfd9b6ce50d5a0fad72f0da1f86c710ca61bc917b3acbd53dea7948e0ef009a4b0f2cbfaffc93c0203b134bb81439d104b1bc9536d3a29dcf4a0b257d8695d24ee05131921cbd52e792bd11b516e081e1add9dad68c4af9f84d0c586b8902a869c5de89967de3b87a47facbd9f9c7b1f0eb744dafbcf27d42d1655499ebe87f34401295a637f369df80d84d2a06134d8830c73ef766b76c348eb8d33cd7edac3fccd380f005493b6b43338a01720f0c041606a91b2969ea8229d16e8c87058dc5574f387218e64cb81a9ab758735390962c36320f6d2357babb29540b4332c7b53ec99a35d34b6f7472ed683a9a042ac64fbc15956b21da4b5b0241e1dc32ed198c560374626618b5cc35e779b95a37a823414dfed814466cba0023e737b35dbc0d818fa3d768f3aa082303c1548c83faad482291dc18344a7434811aaf435d4556c771b6c4694a79c126d9a1248532a1104cec3a632dd95c221303b42fcd8edabbc0f2121246c64f2329c80e222762c67ab10a426ebbe7f6e125b19d8022d046656adc6ea970c3118930148ea43936874a4bb6a51c9aa6764a4b8e87c45481574fd13662cb4323d5a141f977dffa299ef70de8c30377154c91b9f878802855e39ce4367bb104cd1089e271d6617a86e02bb19bbf6479206b7bee5cdccd847b1a9bbb4cfd2371a11eb7d17c1222823dd1821c5e55295a2d6c1afc5602d336e40acb35cf21f1deddc4ee03ffe2338fbb47922c1ddbf8d275109a6350843392962278cf0517a7656dc469bd3cc4f55f1535f5a672713b6de4c34badb7cbd557d263fde1fa81176f97a3183a04a090260f3591e85f2b074b76432fdf95c160f82749c328859316e2c900cea4b9c96c69335458f80c3ac0ccf174ac2ad36f83169ae299869b3c1a77bfa34b528b21ab57ed8101a1d7a3e9c8e25a928cbea491e90d874e28550494d61d03ed6a0833b6a70d2d2832c6474ad9fb98428d9d2f92f4d96c5cc8f69de0dd2f78918ffa44dda4f247801cf89f06085d843e4b8c8bc9632ed0210092943229a2aa185b4c126a6a45c1d631371a8fc2a323ad5718389e37b097e8d2012b7cd9daa5f97d32b992cba0bb7821130ff04eb9bfbb5445a6c7ebdaa0e08e6cab8ea9e3a5561166d613ebba72093b358d1421537d128437de7d071565c79d2dc1b9b4b8d340d3cd92973355cadf0d51d693d230396f53caba2a1654347219d4801659aeb93ab62c63daccb300c6413a1ad9d0d5273d99aa004885e6b7a17e9cec95d396f30126fdccf00fd4dc4d7c8f94456c527d9e4cb2a07db0f2499c3807ef262975137408153d0e57c291c2c43165f8bdaa368c45a75680969fc6e3b245ca57cc4c8a880da528ed42d6fbc1c90073f680198b5f44a3514d6f009a861c0843ccd970d16dcf4a4be0f2d2b41b2af8d6aa743825187fc454b321c2b807837412d679515a371d22109eabfdf92270f986104d152826359f16ab4e6bfb466df976492a26923bb3729e4e0964dbeb711e03caef160cd8a1614aa285a878837ffdf389de7acb9a488ccfde9d19eddd451d35e8b7b64e253917022a436b0a9fa00af5dc01556cfba9eb3d704c3c8c3b03d7c8750ad60621c1de35dda21a681c645455c6e88c84af91050f65860c4581a34e75ccf33a0a87e4ca646687b55b89111049b91375cc9155ef94205e976e07f5559bea3198f03fed29d49d434bbd324b4ec896b1990a311117c41ec4844c961b0603c066a65d24b3a0c9b3402dc6d499c8f6846c1e49a1b96ee674ec21b48280c1d859005802ae29215c17369ed5973866d3a5220b79dad3dfd1401391864c0224e19c82b3fcfcdc6f85eb27c1e518024e90b50b251100cf542fcbd728674914c93163ac9ea458fc3fb0e98e6a61182e0369e00006c1463c45a620d9a371a018a1e85bece496851481550ecab3a21974a930fc37b26538eba58975634d51acef2ceb26a8c0245386c4087db8be082fd32572852e5470879536d44aefd4754fbff26175c228e951150960002a96ad5ec3478ec6bf13470550e87cb7d1b5f787926a11805baf2fb24b04487678463f8d9f2ac2022614f659e8d60188d346b2c52bef2ea4584427e8f7e434f8d4d1d689ca04a841840c79b0adb0440f7f50c8589d1887b04a93c1f3ac7cc3b96b3e2ba710b5792340a73218b191ca824c54b0c43841b85a054c1380c97a5b38688b9cf77aca8345718f43c7e3567ef72f421bf77a1d102b73ebc2b2a13de71aab382cf1b81887bda7c8b1de5b927f9ec99d29ee0424df41f0174af53da22e83d68206d870239dc0e209a447c04d4debb794b7e936f905bd4abd322fca18aaef4605a95d1ed29965de8c41facdb400e0f582db1062cab69fdfd1dc23b089922b8ffe18eea1b3f9741637c682e0b54edf3226edb237620b8cdb9af955fb445541637959a54cd46df7493d2fc58486c4ff2a3b529fc05dc9162e2fd91e789989fbce6bfbe9cfb8658761d651f01c691070ae59cc3e6df447c6eed8e0d7cb2051b08917ed4b0087aaa501aff22eecb492d1a5979317b81a6ad26105710e518cfd2d36ee5ceeb9caeadb73b3a6db6986d386f3986035458d21db727dae441012db9530022f10bcf1ffea4f184ed802fcff538d62a18e3fdacddecf71b8b3b27620be3930af1bd9c02cfe481163029d8c19453110c0c534e60fa73638728767907def17361ea521a978294f674cd21fdd4e14fc2f2a8c2ff51ea76a9bd88ecf7064030c12badfcab339211ab3ad641d92b7c75b4ffb3ece6f1215d7a3f0579526cd6f5f0a7ded51510a5ae68db9191261d040df1d2d9094383a765a7db4575eea558b1d7cac0af9e1fda0e372873a4cd32448978bc717549680c19fadaf2727531f1d886128fef12eb6421ae0b15fef4a9420439470b9abefe6c5f5a56643191c9b9e619a6fe741591d3b89c971647497eadc8f9a4558cd00103cbc7a951c9c2e8bc270b4ca4143806f2c3785a81ef76453dea181bcd1739b55d37baa2015e54635288fd68e30ba06356c8dedd4c7265040910135cca931865cc92a6ac538625a7c55133bec900c341ff6f576c87ab773ce865031c2db16725e9e4dc163a7a16b8e0c5a56c343815645528cb28e4cca78a90b2440927f2067bd5883c96b1c7f5dae0ee6de97f69c5985755fea4b1488d09f7d86f250e43bad18930dc95cdb206592b16ab9161c1f0329b0b47be95d4cfd809ae2c147e8041a83f912d5781fac244bb9cdfaf2b80c0963404d3972183d9ce9ab2a5446aaa0414ee8a9f699e7a27068763386a5ae54ba356384be7b77c2842e7f2c184610f6a6f60a6a3b31221044dc4783ccf5ad6cfc2d815c91ba0daed5dc80b920adfe17f8382f70fdaee2167fa1aa4c68d2bc3b57a4da0145b1374895fe6a57a6e1275f9ef824841a60dd5f800b431851cbabf82e369fd9696592429519fef4f9ca8b00d1e748b6b8f17002898b518a3c2a386dfb9dfd73c982fec102d01bb5c1a72a15c0a730cbcbe2ba26dbb6dd31df36d7ddffdb3e692e62a00f0792826134d32d56f3fe490e19fe0b230dc0ec07cf8d6f0a6be1bd65eb648f597742bb771ccc8286542cf0ff4a6d967703bda859ff0b053d7802acabd1181eabdd4b15e6cab79b40a22efd94f9cfb093119fcfb44e170db17cc35f7f8143c7fb6df27bcb4d4ff7905f66c7c6f5b6fdfb43d9fc8d505ad1d7197c33f822dc6be841c16e2acaf4f42f271a819c8363cad44025185c9359d8c8cdbeee40ff5b03f3f8ace12409d0cf2aef2164a7df8e67286185e449fce93139fa65e55b5c6f4875e41f8be59d19eaddccbf33432a702f19f9941f98e155204a857451f43aa9ce61830328960bed57536155366ecb079cfff58db1549daed679f6a9be9f0b06ef5270733db983782365dd6687225fb5583db9a59d2d59e69b98cec2e0fb66c86cad5f69f8ef2a99710801d65117833bb5b675beb32d44f2ccf0c4f07b3977bdd7d5e15708fc6e8da3128cf18469b28f45428173bebb88081fa7226bfe7150799e2290670112c329b596cfe6edcc1e474361afd9166f81ef900afb8b26c98b1405cc5eaafeb7716668f7786f8e00665a128e0f158528e99465ff7dbd844432b0cdb5f8a19a8eae786f2fd73ab238756d8bd8ddd5b6586362e77f19f489212640708c64314767ed0251f5178fcc7e7f8b34b5e742770970e23246b2f5f0a1a6f58c4cf2392e7af63a18fc20454470e0bd8e252ad03992ec2bbee7c1c5771c9b72a10a4e4fcb0611ff706a86db38ac99c12c1c198fada2ae958a70077a6106a01b38c781decfb72de18d82a2be11b3dd5135aa80e377600156de90d85c3326eef75cb81ddcca244148221759087a2d1827e90c9d016eae0854c99f85f2b79ca5ffb9015fd12430bcebb23f09a65b22bdbbccda5cfb75e6409039816c384b149fbf794b26e254bb42279733013e384bc31e10f1a25e700a31f2fb2e8494f52d3c07e3f6d673675d4a7f45ff0f41214ea8bba603c48a1b7f8cf4297e9d20f0121498b249ea4ad98667a1cb23b64824aeac6f490a900aa3ae755017d1c767e0973f4e203201984377f887b9ff6830f5f904ca213031c6d8286d52b800819348800165de4f3dbf3bd9f135075249e0339d003870eb9f7e803b71cacdbd62881bd5d4d4fd8d457acca93e321814a4801fbcf98989b6552b8a4093f071b66517ca821ae98a3f419165955f6da2d6c116803e4d9b7ff308a82d3fd9bac374247329830748335214fdc9e83d41e667356ceb2c681e6131ffa33883e8c892db67d6cfa5560999f601787f4d63cd34f469518b41a7f356d20ea9cad56f660ff9d04759c29c64b4a1578f4a4c09db22d2e0605f9e48225f229cd51777cee39b74a243cabbd51634b1116a9a8c9e70035776bcbfcb87910ae9bb8be66d028e708f361066fdb0d40fabbee746374bcbb03298c3a233cca248a52a71132de97a68f33d002b03e0050ff8311000f5151c13e7b8f1296c78e0deb91c9187e91bddee81c48589191df22be1d85afb58166fae2ae39550a6e6d2726421ca2d84128d32dc9bcc26c6c90fe6baedc297fe2770df5b67745bb567005d80e8f6d91b0029a94b58b1b81d7d4b8d7622e50c320b8a1c31acce5320da0eba0f8d38cce0143aff9d009a009850be8aa33b6055423f16ae246cdf1401e3c8c2065a3dcb9543578b6601542c94a26b4f3d0a10ed0a593b4dfb70008e0cbaefa20880a70ae69776fb37f08b4784d9d3ff7b1b313b1e07fbba4bf0e923e45c90437cb5f80c3bebffecdd8d50543e59a3329661bbe3e30a20eb4214925747d174f6149fc285946ffe90bbcf1a38e815a5ffc7d7d1a2050987a759d0e8120c9224f524d85d60f96629b3ead670afa0ba7a4772e61674c5676d13333eefdd2980b7bda6a9b2622b9c758648e146948b7b8472dc87165d4efb00fe6c46dac7fd1c5ab459ccac805f0ab386ddcfb5f2be1d87ce2c2ab7203d75508452962a259e2326f9ee5f872afd55ba59bb23e6706060d795bf7bd990f812944c8e9a4f27c44809b70724f8797fc3d2caaa9b1b5d5743532da05d091d4f68c6d87cb82d4a244bcf303761116404304db6b56629ad1d48d8b27bf83a64763c642f5cf2b856f4011263ca124d5c712b87cb5dec319e1dc28ae13d58e7d26b50764e1b1789bbad28dcf0964cd9b3d178678f5b30deea991829bf14b7ed0a0609f01b9a5789bdbb0c707bb8817765224d1ae71faf8098e5954c41efbc1f245c056f7c1ae8b09f0904940cdfe32f93d5f7b076fde73b96eb7f793105d8b31586eb69499050650fb628d201aedeec5038ac5d4799e01d8296803ead834527c573a53a7f09dd1eee175a389e3ad37ce53ca1b8de927c4b97dfcd2adfda3df72f8d6c2cd26296e9729379cea3a0465274e410aa307cf10ecf19476d56ee5afc0526ee56eb1a3d7914787518d269f99b47a1ccae14911103c3ebf49dfb5a1413844da3e32f084297b6b548d08aad8833bdaed04521a07afed27f3b9e3bb18cbb739d267dcbc60b3e199b7e4002aff89558437d4a8e349a8a9990a108391e434239ee244963d57d6bff41de2c65af4f90bb4e78a3dec0083c4895e778cfcf0c14df1933f9bfd6439fe9aed8d3cb174200c4866c688af4f80e0e24d0f365c7bf0b765803556379638ced02cf1adf791c21eeeab5aa14c1a6c1cd01fc0c3804b6fd40567bf7c2634ffbdb7d12df405bfe65afc6c99f988ccf47cd73033b3e15800429c5cbc62f10bce545e7bc0654dab56341da9e30ff616dcfc96fa8da05911bff39bb6d8a202c588b4284be1657223ceb4d9bfdf2fef04cdd68e8a9c1783fe48e6914810389faf41a5b07df6ecd231e6fbc424638635f088e0fa825a15bdc10d72443bf13e44a12f447293d12d9a6f34d7207dfee92fec28a3029ceb21ea41dcc370115f327c394311bf366b63153dbe3275e052e4de59daa53694bab934d19a3f22807a6eb2c2de81e9f12106e5806d6d74cb0f8f38e2edfeb1b8cb88fd52952f0e9a19b34dac3ca3e6b0b7264f8f44d1ac214c5d5d09a7e86dc8e44b04ba84721dd6021569ea63598da6e338267bc1c8352e84a8ea599bf267459afd53363272be7330b49880a37183962dc9eab5378bedb057265074ef36a9c3f9e2bb6024fadb526822bd047a6a46aa45813046739505ee446a17f2e6d0c26ffdb45d80102fc2409ef5a81f7dc0344f0e0cf38c16eef3fad6571b74fa78bcf153d7b931d0b1d032ce13f0c4d38ccf7161bc67b8f3ed58cb8f761fd1a8ccb52b6e761ae420f3038f91dc19bbd2b91e39535d4add580ed258760aa2899a190119672e47b947ec5708441382d63e0b119c9febfa3b436eadc455ae024e7765fcee963650536dd95e08e33ab46cd01ae4c38efc4ea56042bcaa064308f582c4098cf95a764e99f6b0b08ad5686df758ccadeb88efac1488e2ed0f3a56ed6277e6d7a838ac56e421ec4a764cae27426b6f5a251214eb9d42d52013b21a0ee2a2affea57b8080c4f9f5357dcd6f88ca589c48bce6083412752298ff92150614d0a1cad8552fedd83b8ba74930c0ea9f908923d8e1177b150d8814126a7511349493d8ac166483efe7f3edd6fba698186dbd71a75999bf00d02ac0da08f5a87d6543a897bbbec809fe366cd6c5c348ce0bf0f084dd1d127361ed38d19f0aaf52a99a462d5ecb1f81a98969f37d31096f77f508ef51d89b3661027d4ce5b871d00baf647d8946cd3eb26d62cc34bb5c6ca79e42c813dfc30ce15e73237e7fa027d6f9a95e3bd517187f39af01d40cdbd3777c8c54ecee2603e0287f967be9eb5e18ec3bd9c04e8cc6fc29b5f3ebaacc9c657d7c99e00c28f7bf45e05a22f0507082c8445354b90a1d94e9e47980d1802c7aa178d2f10467bcaa38ee715505205b86f6e911901399dacb264bc1f8076a7c9a0d3a451c7031c04842a6c629233ffa508ab64ddabbbf8938ab1fac60297a68caa70ca16ff870fde4a3eb4f882d8d8dfcd9699a257a045419da89726a36ca0063b990bfb8121cfef073c46b9e51e22d28f4c5dc358db2e7bc47fe1bba962945e4defe3ab7038825f7b523d29df7371971a58a6511780e59c9fa069cb9eacac8b291607c9b8a8823b200c3a7c14b15ed36558a5e21879616e31f8e2519316a7f484f9b1fdcc20381ad5570cb6facd9d03893b7cbe7eacb3aca3a3d73887b0834c6a4b9184e5bc65d0125a3de04f0a47064db3146dac639912918cd5e108df4f873244cae757fc7bd90844d390550a368112a91b7f6d308f916b320c7de412068b6e0844f90b449fcbd598422c36f31417b43eedbb12b4971008652f96ce1387b99f6e7e50b20273d0c0bae2b31595458256281000d60db05e10c604e9253ec4ee290e83222ed7104ebe28f1fd836a44a81b8d019382ef8fef1421bb597739b89c2b7e716d055e3b7ef90967c02876dba5132003d2cac555edbe9b147862cbd19412b409ae6c4626e8b866ce7c3b3547db00b7d743787a6081116163518061a27a40331a7e5443e4934173f2bb7b516eb2d04920ee474a175df302df04a34a85cf4c76da3cbb3a190ba96b017e240e7055035a59deae3110fdd8f80a1d97743eb8d829a5d44c499bea6404e50cf48337e43e046aa1f9ab40280157d5304e42932dbb2ae69d73c10e374bac19ef1d073d8eba1d9f044916532aadc1710811e8660513e5f553f34d8fe6746ec69bf46ddd0a4cc246a2612e7acef569aa60fc93a9350a10e0816d24eaca58846c8e728a379c764a719c3abe0a6f98dad1001165d3c2cb8e4d9f38da066f028dd31ac0a9a06d414205880c3b2ec8b28ba238e0904dbb5b0849a5149803832cc42e59e9cb3fa146107f9f014bcc0fdbf423cd4029dcd1a803e01dedbe191be492c5c6f565b36a5a2a30c394bf94683f26ff8b8c603c1ff0214830048e4f858a21ff680425015f2c10556c5dde595ad9ead571996a8b2c7ca5ab3167b106e4f38a550640993d59c9755c12b93cc3e0895a84130d61c8cf1d3581c362cd526327371c39c24a992c087be0a08a7b9cb405cfa047833fc1445f047226da8f187644bff8526987031c13b1462f7f8e370bcda577f105fcd38f939852bec4b6fa7c1e8f27046c6cc597a8588939bee48eea121bb153085a68b2fc3e8c67a21e9b72b48eecd8fdf68f3d2336266e76bccab7fa8bfb0b5fc22ce9525fb462745e48dbf2f8f2f106da08560c46dfe55ab2e6984637a636f9c3f9c0a53039431692d07d828b6d58f20bd0209b19d04991b45cded773f457493c8e6885a88f84aadd6a2d60a5cd0d70d669f7efc7eb3a014be90413ebf268781cdffc0d7859a64358c283255e2a04251d71c69a17fc96fe4aabaa05d418d01999a3824524afb356af3ce30c054b589b745f63f6eb8c2ac823b6364965179b0248cfb16536e5c514e2332b0b429efd946e349c832fd9ae94aa3185038ab2828969a609c69bc01d659b80d3a398a87a74f172a74ace2947b208a19f6e6eb5ce1e367b8d121fceedf90c43903ef7d038cccdfc03edeec2b6e877b29f3d48dccd5940e12dca458ae0042abaecd3129761300d5bf66d73502b55e408e7d0a83f18801aff075f5173c37da9f4e30c30d193a04af110daef91e0a86696c0848eeabbed8f98c6766a44478064d02b1bfad24ba8fae36d4ae962d4109364a8451d7f81d0c12ab2dc37ecbbdcfe18ddc5d5b3832ca22f4bc013551dab2f23c5e095202de9041a7dee2b5885b3e43153ca800a6a08fb102ce81aa171c5a384269060a844f7a5162e0e9e4dc6e5344f2d5cee83e4919874bdc12c413a30ba66e96e67caec6aa516540f4528973b73e00cf050ffccc0fab687ed3c26deda6084bd4b5b0b9178184d53668d00c15cf65ab78a2f7349a5b81a79f7dc8259acc11e7a850353d5b0ff0f65bb7b33327cd5d60065da6a8b5eb7e907de2a085a67132087c44d713d5f536c16cb7829ebe60a174ee0ecf78349197efd101fcf4162d548ee3133b171fdfa98072e87b3ff6ffebf3c8dc02167b220c97c1766c4fa5ba29b3e2984c3ea8302105e60062883dc786d37af812736220c91db67f903b32d64674631af231a543bd0abc10e96b43d0eebcaff55e802faeaf56379e7c55716e07b67b171edd434b1fb107bf0ba71512d76f9e570e56a0d781538e3888c30e89346238440d35a839e867177698241dcab668ee78c5dd1599b616512e66c615d9bfdee09386a3c468ceeb918ad9dccbf333ec79cebcf1f8175e216ee10a0a62f611212593e5db54d160c72a67ee47631c6ddccd2f0694fbfc9163f45f4a2fde973494472e1f71058dce769233bd8671850748a15feaf07c6eefa872621d2c4101dba4a783a9a49f74472dc17cb2f98b0d66c7605ae2b600fce3cb3ee44b3f04fd8d151261a2f2d53e66e3075cfd3ccd5fbfcbcfa35a83fbdad35608de1e4758fd649ec569ff5a72236320602cef494a5334df1bf99082a054d993a781867bae0307ac0c24832c3b3df0a815ad6a19f2d572f03cd3803f96903ac7c767a0ca0953510f1b5041e0d03d5aa0c542d83ba053e6547af571c61399f5dcde9ee8818a6d7a61cce431b0864705b58a2f179ede66c345b6b5fe495f1528c7ff42b48850617b5e25056391f1f00c713a58db4c1c9ffe6fc747709bdf4eedc71fad1e995c3f2f1b7606fa25082ba4c8e229be17e9f8ae83c2c4b599c436bb13f3a2ad7372f5349b111b9db8b623f3b88f452df48824b400afb531b979be379581522fe52f86168ada22b7a37da0342bdb755cff21b50f35522629f0168675ed0b772c47d75747b7107b0f4b6dbdc34e72394a76556ad822799a6497435db031c5d313ca1c9bbce6c8177273e6dffd3c1b203d2995e01e38f7fbcf368f2d37e95de21ed9ecedda050b00caf0b43339057f1f635b1f66a673ba9c81a0403f37d4fc0cedf65df1f8fdf9a828be5ce43b5db31518f6fb0c533eae01d1c1e2862d9b99d85f9a89ac60eb3fe00b1c08c092a8124d30c90f33b468b203931e8ffbf6b3a63ce29a6466662ee87ab8baa1ab1fdc0428047ee3cacb8b6fa636d81363b6fdadb23ed160a1041c0d6ab818b2aa91441576c99feaa7648f15142c0a8f5bb155a0807172c06ac89b2934d46838868d50ee9f05640e21169f9c10988faac7a4b00ae6b58b6679a78d45cdd0850184a66f8e0413e3b171a6bd5c15395310ab702be0c9a77894667ad6746fe6fb3a119e1a3c2a6548b17abb961cc97ea355845949a87909229d6125d0cb3255bbee43998b41708799558e9a4e85f4aaabed7d41012663b053f4e7f649231c834f2b7e0a6a478e0e13e35b2dbaf626eafecba6834a7b14e1356bcfb9419a615071d36925168630abea2493e05a32c2cf788248ea5f950cae87a31ea62ce9355ee7c62142d65f97f334a63d4f9f1032c6af4a2c1362ef251bf11c7d616dbc0925d3552d5e5a8014909fed5ce55a1d0501b00a3a88efc218229ef2424f7169ec322ae3b692e4294bd04d8fdb23bef6a36106c8a9f425124d07bf68a2ee5fa1b4e926f54613ec06db27dda9c0bb4e54b48cb2d30347488a176aabfa498000f68634f33889ee5f8c94cbd0e74dba7911aacdae32fbb166df46585bca38b030b242acbefc17a740b54d47b0e5c41263e09f2a7fa156f8a1151a8052c0caa8fe61942e45790bd7e2bc1895a235b5545e7f7994f1e938eb422379d0e28e58d24ab60324ad376f06e9cad03f5d1ec4e132760b38537ee2e76d1f46f6ebb942cede85716a07a6996fe0bf5515f08b266901716276da039e80598c52502c295c2a37b08541f8a47f38247680be20d82f1454305e590067f8d3779df2504e9d947c03119ba84ff0505cc41e7e507909bb5c9e0dfb81043858dc83bb2e3217707e6625b8dc4215547560e0cc6f68dc66eafa3c218e8c93e90f4aa169ee1568204f208fdd87c42f21eca5fad3925879029a83a6db80fc2ab067a7ea33f8bf60699b204ea284fea4e6def08375842f08543ee1026e481ce890eed94df83da584404ba75515018865461c659e8ff76cabe717a56f7620f16bacdd93f38097f85ef980911e411992c05167b3509a667ccf9b3ca9f49db2cf971afacbee7a8e7f0698ce14d6b39a6d86cf0267d5bcce981cbd805db8841fb6c3b2a465e3b06813a7b0b7080344b6f9df2141390422584867d276ce86c0f898d6beebc7eec3ccc40142be45c4718f506a25469b1186e3b457fbe20b57f948b9d70abb56305f04f0a41a27171272be376dba7844578c1b9be6e82c7bc03adf342dc1caefd7b82de0a3057c708001ca182d861d095311ea1ec7e7387cae6147a38cf78c6b4c91dea1c75ba55172282f99cc72c4c153fa879de0584003e4aa34f694f3e4583dcb13d2f563f8fe91155863edbab24f398fce3f36fb9b70ee29df78153e170c290ee9de1cda4b3e56bec830fd5e07a77f7d7e605e9362555eb7d30544f71d48da498bd7d556057966446d58310f3d180b95c2ad7b36243760b2a26f048622112f3c74ff46aeac8eff399f0700dd910799a50f8cf1bbc5fb8f835e2a31fc40c11e8e7ff455904132255b8cae0485cc8bc874a1a6ed2f548ce86409ad2ed6474cc8e8e04d3ff3517a8529064aa7129fb424bc92954cb3b20c71a66f5b142b89a53ee8dc5e1815e66e9ebd65dc0242f47384a11a5edd5652d56c83a70daed9159db8bec93f02736ede4cfae1acf1f49968fd7876ef0583fab7ffca83012b74ba7b4eea2f00ac8bbb3891252be9b238fd667ffc6e3e4d0adb003c93dc69edbc08098406c3825b9f4ca95c5164c9c8c33726f31f2f909de934983c1a122b0a22a9d2d8a1707a1a1e597ccda1342ce4d7b3b764eb42ca9a3b02c882a3dbf450a02ad073992fdcdba32bddbf64a214059219ef2d94402a3f8fda32bc5daafa0298a5a4a831c9a17511f01c940724552f02384b7d590666fa0f4055ebfc357a759c540b44de58984a231877b03e7895e00fadaa30d721f48301d9ed32cf7563a842fdd84b5ab277b8991b4a8379599d3d8a20e42c51d85b4f744922652b8175b32e6fed48b4958913437a8331d884604d45ca8836404b7c3730f606a8e52218b13f0aff50df912237e1b21fa7ff197c8283bedc531ef0faade805472fc99e7943dfd6b7c49a1f060f9d4042f05fe1913014a7c7123b720a85d0e2df8af9b0c5784b9dfb679aa2e406c24044f646527ca1930d8f091f9002360283fe539a8e4708a316ad0459bd5f2b56b83e31ea2332cb308a5c74022324310db406dc02e803a5d301103482acffa2a6e752bd6a05a732d58be8d29183d5f9401829e8e83e4444f451c49e922b708e2bcca2abb29672eec8b76f85dea6323f95a60f7915c732ad0a70227b41133767ea6392b91b56c9d06a5357fe5678fca1cf5c41f06d2fc0d202919d8aac1458d277b6b4ba347693b7789f3f81bd62a6c5e12c216e3a6130ab9a9513c189d56a13bae5395734e9541edf32d7a3211cf7190d528e3eeb19f10bde54e8205b9f8efb9285eefe5ffec1522b09575cc0674323fd98ff4af290e49ebfa08406b665d6b10181b78bc72bdbd66b6817517f4a8c9e7cea79852bef301ce96cfad131b7ccd69f6f2cc633f87dcfd5327b12f2fe0c0029148b0cd62fa081e05de8614271f7de78ee4fff948b01c86f5646af15d691b8828fd3c2ed47b9f127522989e899e38b889d9fa3ded932d15ecf1c9d2d8c54ed856a01d3c2db0728aca32aeaf63e900a1cafe35f716fc90f75e599a65b9dffaceeb0206aa0cc241a73ea068032cb12d7d28d4c7da3d05f4e544e8773f446df01fd50ec00d35045b81972a4d85bb65dc9fd068ed017a91ba8922d8ee02b03b86cd1acb86a27c59e6c97d68609351d7537116068ae3ee984677d1ddea27947c44ef74c55d2d94defa47a99a2810379c1bce08b03e01b512bb2b56b633b1d192a6eb5130342ff668567d7d8a97629d2405d67c78e2216adfcc898513b6879a641672e9ecf54d038149f71e04ac294293dae107297b09648fb67355d2b5844a455c2703e3bb91c923d619cd3cbc06231d1ffbe443494f8c2cb9c54a7f385704d7bae0652ae4e79a21534d46c4b9ac32a03bc9e5a12a34999f44a9e408f12cd9545345b62797ab6bdcccd3a86287bc029381616ac8faee8793a29e4fe3a0b5f0ee4b1b9d54e2fc4145cb9c78b443f7a22c3689adb4f9731d13c2df8b2e2d8cbb8efdfae9dadd5ed347c251b3551b8876acdd4525f66596fa30e33e86de04f9fedff154e9fd2f41e2a0296d94ab063d42bd945eba0c12ed61e3365ea574c8a9f0214942b81b39b8866c8f8c9fc723eda643daf4f7892ff6f6327c4be5073eadeb6d6ba1edefe6e7fb8bb9e28bf0141f54db8219161abad124695eef6b32e331380576b4545ba2aa9047b9ccc986d0ce13bc808e0cc57823d3742a5f36bae3350331ff04c851e1b61121918d5541f6c342681230885053cb034fca69713575b2a6d6085865d7fd0c146d016332937ebe6996adbad80f451232a667134e7592240f6f6526ec8399807005c1628f9e7e0b0052fc59c94d32da45ca99e06749b86127e78f0f233e5e57b9a20347dff131b682e4c67c88075c09b5bc5bae30f82026b39b1416ae67ae33bd2ca25a40a0774d449f77afc416f08f118b8ca003cc307ae93ead2749071a3a57cd8f63269da376571783b841152e85886cd53d108e38fd32987ba4e081ecece6af96ab14b77f3f8d232ad5279acdb129b6a33c9f693b3ade9e54e435f4948b5af577bfec153cc3cd06d439ef853b582f5119557f8aa4d484331376a0aed10d054aa1c6e30b0588a5f345339a73e96dce9f09c2da5d791bb20813f5acd496921375cb42ab3f1b790e7d5afbe972840b191e9e60ec39a342198e4c1ec4c271235d1060e1b9f7db0f6d316926e249b761552738eb7e33b14cedcc9822d35322a797848c32ca6c6a9bd8659f32017a9c6edcc44fef817a986bd77cff79c0c2b4f5d3c4a554931409f6bb142d59267fb37846dbe9f643a358f7f876bfcbdcd7c44b0998415753dea341207b8ccb427818d36fad50e09369237b6e53df55f44fc648e2abc8707b696b570a199620fbc281e3793657398744f2d61888796e7ffed48edac73ab9e710464c0f258120f0922df4bbbbcd62f9cd4703a5ce5c3faa2e4253fa776d7ec0cdd448041f3c2ae9d6d63b06fdf73c72dfc537d4e83698c2b994d40a376846631ee9c7791a2e5d4ac604ab38342e9d77f03476c24577188ba656c36e668b7f7c46eaa2236511ae2b18a294fa19d8f515a5bad16dc090e62615ca15a8deb459bc15fed4e1ba9f7feff6d7b99cf9521143f7e72ca2a61bcad5851f271b62fff2393b5662e576b6fe85bcf7bb4cd21d1334bfd0d257edee5cba0f8ed9af47198b3f9931bf0fc9b2c78456af682d3cebae1314e6cc09879541e7bc47cca4fbf1ead130ca74bb4d74d01a4f88795ffc1d7d4dcfe46f77b6edbabb7450526dfef4a1ab8c0e1e2ead50fb67c9777802082173134748dfac309fae6c3fff1d414d8b99c6cebf29f0a968bb02651ce730f347062d02f55727c1c85d389f848bb73f9a4f5bfec1e55165b1fd8941130e6df7d7fce2f1eaa849741dffe1882029e5f909691be7f58f13df20b13d55c3f252b60e48ed7fee9354bc0ce39bb31fb7f695adb72e3fe64696412eb323f2404b18290d39dfe46ddc00aa07af352e019f723a77722280ae021d1af78e4c2f77c489374478f4701849840d0905e669cf011edc2606be36ab3ec44cc1dab88a8afad1fe6e03095cfa21e370e8b1485b226546d3bbcfd6f1afe41470db55a607ac04edb9214a2001cc165707d16db67a1fab30c538026c2ca980dc9e582fc1c25735d4fef3493589052b7467577957b1e3ceb89cead8dfc447fcea6c0b7d153aec8653a8d27972a6098bc4099d6b9c95fb35c59422e20efff76604de17b1500c8c79dc9e624436e6e5fd33118a35771c86c5bdf5f11d4909de9318df3ad7cd44392ca4f27a18c89a587e36596bc61815a53451d56a6538025a9976e15e483e6ae41a61e37e532c47bfc5a7bfbec3d9f57e5f12fc600358472a316bd4ecc64afe58b62bd57d69b90e3a404df80472335199d77c94ddf9e69dbd57ae679fcebc5705f3e680b3d3b0a7f7dce9737ebd9bd568b149c27546950ede172547a633161a7201bd336a0cdf1942424ed19545919ea5abe23d2564886a5afc9496a6e05d11d24ba98e7b48775747c9b430a6d0630bf226e04b507ed1576dfc2e5847949bda9846c6a2b73e5cc24208960c3ff1f824bce0b1ae4320a1ea7622195e6d23ed324e5eb2759fbf40b3429040bf43c4bd17e144c189f29dd9e631916e76441740b178bfe80f12eb42ad5ba55336efe61f44f73404e5a60b02ceb03314e381f3b8cef396c73dbe2f3ab62918ea9e7cfa4622e87f3012e4c3b2fb60c67adbcf48ef3b3dc139779aa9e5d0a7889c78c13e1f0cc9ae531a75e2fc08865c3c1e9f826a3498eaab77d01b3610e83fc535ae416acc5e1d15032bbe58e2b56946ceceb5043121404c6f0bd6f46fcc1e2237a8e4faecef78b575e45c1311bc8ded8688facbbea8cbc67e05435a6e21e540b019b662b0a8b85fcb9a4c9ddba62827850b5858796c25ca293898c3eb9888ecd724e303526f9a1c8fe75d338b881c6d21dfadcebb063e9592f6de4be00fb9a49ccb488c1f7ced2f4db368f256b92677008c13ba612fd1c99bc0e0b13086ef012f45cba33c137bc40c43c60ffc6be8dff46382b8e5bfb4b4990b914a68d920e4e4276624eca106f6c9c283b84f5f3278390bfc5fcc1ff3e28d22c6fc9775ba6b327d1891a4695eb42e1b68a5b43dfe1f62a9be26de60abfa0323ac8e26e918f990f43f89f02ca587ef00caaa4bec567877783541eb3a3c9ceb22d8ca275c0e32857f2c890a38eca6024f44e2ffbaa33834ed22afb72d2cb3f413ee9c9b369f4809dbd9be8fa0a769e65ce20867761368e0a947f24a7188c6845179be563b13ca8e933bb4179a5dadb2df42e6fe11f67bff9c125e22ab4777e418ca7a40033fd9bf32c6ef68cfcf9ca50383274d8f300ae2e4687344a3f66ec2ff54a4f59d447bc96b9e0be248e632380bea687d80fbdd2d6c14bad4deb07625a22c297ee18bdc90017b6a7b7cdeb41f56978e52bb55024768bf9b3b0135841192c69683e3907782c6f4f534467e8dfc318a743ce4b44b4d1173b9289ee579e92918d327594c80ddbb01feee9af7e7c5252ed6e84c868e0951916d847523725daf7977eae34db6458c1628eedb7c8964869de5223029b6ac761158a8b1b15e5411ac3129f28aa4533ceea3431fbd468aa39981b49d8752e957b6988165aba00f184c33216e9370027632074d080f11b94af544da494a196b811b77477eddfb59de66011b8ae82c9dd958c1c33ec19a6fa8c320773ce2cdb1d911d539d6766737baed8648b34408bae19b1d415d588343e6873a640e4a60ff23fbd02aeda62f52b21a827b111f8cf9f3f0d2e0cabd7b92dd5550e8b2876b96129c79e3058171c5bfc80c96f22cf8fb37ffffa23072c603dfa32620478bb0988d369257db9638e94559bc1a2173e66d571310e3d6bcf0bc73945794da3a227cac9029c7a2ca121af82a6b3f19f27506719eb0c063077b69081ed9e886befe23c6f1c36173f060a101030980155971f3968d801063fb70c9678107a8ce469ce15807f13a7dcca837fd54e753172bdc9c260dcb7c68458846d9b62db5378acf4ff915cee8e6a593b55490c58092817823d1a7811c5025de46891a2b1ca66601ac67b3943e1b263acaedebd8d256ffddcc6f09e62f4764cf00162c4e2b79563c875c1da5e838c1a0fe28f1a106fc10efa50aec85e76427e6e71ed987cb6c6097405cea5d7ed7fe8f627ff2ef8664d2f071f1b7f10b1be01fe330186a9c55e191e44108d748513762dcaec9b4eb65e2e874797fefd3cece14c65d1f8c5961445ccc77ba697c1f5b0c34125a514a51439cd0b0cd3fd9835c552c51131b0eb5503950008eeffa217ac6dad9f8ada1671f38f57403023db52fdf975a5a5d80505b43a84a08f82008ed48ce9973ef6ec4d5dd29ec3eaa6a6a137c0b87dde5c1dc66f1cfeeeca2115de002260b20f48232121f75bfbc82a1950f8f8814993282094cc11bb3cd5ff3b72004027ef818109c6e5d1ad6f2c5aa4d4dcee55e5915cf4d6512be1d7093b9879b01249b0e9a40108d10190de52f4833fa6cb096c7f06e60537dbebdc1fa84677d6a7b01939e2778dda2ed67f43bfcebb3a2593b16fd20f2087e2c39cf779544548e366d18054f41c148f954e17e20c152762df888a84a31c951679735477043803c5bb40f883046b7532a8bf1afaf898fbaa70d20613d2ec80c81319a686204d460df92d78279f9ce4afe1d59bfcfaa82265f22ea864dfe40f976adacce3c966c95fdcaf2d29bed5dddfc6c43b683f1a838bef7818eb00b2f58d2d3831490382658877cbf05c7576f3c622d5866555f6b600dbf9e11f03f8efa7594c3867584d00406a6d4266c608806e163ecc8b17d000740e2ebb9befa42d61f89fbbf980700726de2471d3ae135de79cb92da6fa755804c4e9055a0d0b9d27a39d4a3d9e24861e37603bf241ed060780c2300a0d83f2a2495676682f910e60b47390316503a92edad4f27ade959411cf8d67ea97c0e4907836d00f630a88dd91179969ee1fdc375b4d3a26317989c85be0e5aebe61f5a2ae3fdb2613a73d5b017434e28bab5b3b4611e58e8168b80a1bc8868783fc82f3e885c58e3c9be04744efff2dea81d212bba63e16e9ff7d553672e8ff12231d60bbecab8be65724d4fdf01d23c0908a15dab9e29848fa5ccea51d8af7587807df28e10dbc4acb0469284653e244e047596abf0cce6ac24d7042569fc61a960739e17053458c11d5cf6f662475fcaeac4ab113b7ebb0fadd7175e81892a0948cfb7db670f3b45fc56c1e7dd03b56562c5c1a34906d0159c7ab9cbdde6ea1323f3205cc01c57b478cdd564bec7372b36e8411ff965e6de83b122c26546082e8753a27c00e6d63d27b7bd44215ebb2c78c6f49a69364667655f1a9a177acab3d45d3c7bf17209486e373c5526c3fcc3df2e672dad2720e4a407d1375b6dc3de66fd4dc108d36517a0b8237e13d4cf87ed10e41e5b05ee80cbeac39af4e5771c4439a53245b4b6749676b4b5dc61f932c1901fb3feb26bb3f859c85cb013870d023942a4fff45f39106065e7a259bcb80a0e8f1e717b299dcea8cbf0c83a97a89964527ff6e12d2824db7984a2eda31b09b07e29889c66350d779ac27c2ceeb7d2b2c0d38f5293b5a6a9f12520ed9941c5e23820460d405ebd234ef875803d84dbadaea2bf4a54ade418353a5c8bed62743ebe0983cb525371ca0578973737f89535ba12d8eb3c9b21a803e9518fa275a61abeb73eec0f0a7f65a4c50366733ba110ae66f94fbe0fd673dda27cfafb7f607cdb84cfb8c65cea1bd2bf39ce1377a6f3112209295c32921b6277b323225ee8fa81497e6063a64a6da24ecc9e73703b898b3d347c5059b9a930702a65738fcae2ee9cff56a42029430fb35b146487daa1d806c1ae79041df7d9d810ae1a681bb896bb240f2b7d50444e8e53664467d39967ef1919ece055d4b4d1499e398260eb6f06dbb75e6c193a0965eacae9693414ce74c05a20f631c3dbe20683cb2cfc3de0a8e0a78aa89d8a5842dcd7e391543f44a55b54a1f78146e17ee0c40c032dfdbdc7ffd746dce80350cbbca82910e289a9496da6c3c4ee2c8613d9ab4b5a8cc32878e08b7f6b5f312cb08c9a273605ed1cd6efe8666bb18e2ea632e9e44032fd0227ea6a208cdffa6fb87945d13a32f68cac387093bdc337290ea1f194ed2285a6e024f1cfc332d6e3a8637021abf627bc447dc082c0f8878dd15d1721887c27b0cf40602d7c679422a464e785c8e16da5a6f000f0f5f98cfa6ff68874111e9a2a83cee27270430c8a48323831dfdb16e419ec9f0be1b8fa05f553d7e9fcec13648908dc0dfdaeb793d938c0ee7b7ac6745bf78186930d3764ee9c30b3df24902f4a5eefb599d1e0c4eb392d8875f4c047fa0bda3e0ddde8be8ec12b33c7906f5c7d798b1b37b9ee750ffae4231e7eca88d186075fcbb43fd9c3c9a8d70ba582a5eec2c4d93e33e2fe3355a01fd7489e398f35f3812c59f4a784d00f8987da82c4a746c719c6ab40673dfdcfbb38e9b6c77e0f0015c807903aaffddf62bcef26955123a12b41d2a42c23121c7f6793ad50980503a9136670445bd7f39573852c5293ba1f979ed2ae28143a4fc5bd7f23ae46de4bc0ada9d8eb9418f58bca83681968e4490f2a5cffebc529fbe140620c186fe986853075e4271114d8a020f2dd8d21928e9a6c0291bcd5967c7e556f5b811472182274174f80d902610e5631d6d39f03f5ac5f5c7318bd4476f2f4211e225600e2c2ada290901e1eed3a3361737af2eb04a075d6badd0ceb6a963d52b7633d71d1810ec9d805f0b1fed80a65437c071a58991c110542671e5954ea569ee952e1b25d50a65af958b5db7e4bf6005db141e0808cd60483294c75058a6158d83a0c0f72332dcb3b8cb9d64a1ad111958799076b1232338e4208112c08828e81e9f501328b581393000e6306456f6e8c398041780483384c2eb77b4a3a709dbd9c616bf72a41e37aaf26778376481b84cf30ecd3c516057751688624769d71de389c5955a13204f1334e6fb35ca364e661e33f120c8721d03e7f1f53798755e04b43c4b409c08d030544ddcca84f4b44868631783d273d056b88692883e6cd780b84a905bbc6c1ec1dfa90aa17363a6429be288cb565cad16fe726f86468e9835b138621f7c26e62be9e325b7798568f100c7e7ce8615d3be7e2e03cd00f9254530f4b942a8fc683f94a589506bdfe203e909077781ad34e446f7884b87d98fc113e8681e63266fbc5e84b33347cd57f2e8e94982b5036c0cd7dea1b52e4d0c2992542c006d40189f87fc21617142c2997760988cd4d68756cdb50b54ffa6f9100621c8693485d4466928859c605e9f7bd409e4a92f7833517c6aa471900b89602413d141ad40442d922105b5c2aa33d9b6f2be5902550a7fb03556ddbf121dc2258bc065ae855e76b3af901319a5dcef315d1b38531cbd7a42666b6a8e9abaa041da69df04fd3977ebc8a271704d7f634ce8cbd3b76afaa56a75f53a022621c8a9e1d7f06b62152d0de54d39431d790a19b6c0dde500a13990401a68d322b267b8a8cf2a7aada4c81fb3f23441c3d91b8b675c5a41008e5522a07d16c4564f659328569ce9246d17f1274444284f799878ef456ca70ef19519c970a1b61fcd987130be6302e5521c4fb2df79f5c3f1022339be086a09358fb44e41936d5953dc437109b325c8821a27062c8ac3590fe2be6d41d580d8014e11483e652d83954e93eb210205cb9d8ae5cd9f6374d756a3fcd532f1436d9396eced49312505bbafc302f3ebb324be042b0cee2b0bc2ba3c38f5600c2cb3dc9665675f7d6614186d028984808254ce56d5d50c94149aa0d438bc3745f46271d9eb355b9323ff56361c357c3dd16a6888d3efafa6fb364b73d2ae6589ed33fed134ab3450bc3e22e13084e5611935df0e97fe35babbc5d7ed7e5d4f54d9523ffe79e21a7cb38c0003fc2f73f84ee6bdbc4fe22c90ceb52bde9493bd8bd0d048dfa3e2abe194f1a41527ccdcd34769339fba9a73dd8d9b7f9d43e8aec45194986aac6ba0630e5f317f25eb8e8df10f9e5ac0244894bb20e41b8075b8aa828947045630ee18732d62c763d518266974f35898dca6663545da334dcf85668102fd5f7d6f02360d6a4d364b4e4e54952c6be290feefca53627d70f06fd2e1e24bb7bd535153a258b628dac61a49cf86c1f2a6958adee468b9a5dd8eb99cac2ea6d7c93c22a68970d818305fc8809d7870e4f939711218ab0543f58f9af659853eebd844fa9c2f4bbd7f6840fcb3622645cb9f3afc688baf614d75f2900760d93f390e0a67ccc0ce20f372420f2925ee52e9ab391adec22266667e2b7d812473e7baf94b841f9ff6f15d1f58cd5a1ad25e40ec4d7ac5ec18cadfdd3a968a6c124f111b4c2bb010bad6ee2c943c3026de622633829fabdd8c6c6d22c5e2a335a2a255a36b49432cfc78e4927b2142a7d9ffa75de3a93e084ae3b01890b7ce63b319351ff28a2b46fd63da7bea1b61edcf044b25d23698845005009a2febf21d095da9743f725dbab98ba173a92084b8868a706f720f2a6b457ba23a2da06987b6e6cc7e5ff97c27542095c6c51f44a08f5a9d09dab3b29df7d3a877240725a261b60fe5bc79b1abef6362ceda008d31293f0e2c18fa9cb933a601b334a87c3b0ab89144c1f33c30e6d9e75ce18ac925ff7efa04cf234f63e8a6668759d8354f30ef575f3cea84540c8f30baa1457149cf5d6602259dbcb67ee37a41f486ac5c8593fd6bb04b0a7a215a38caa1ff23b0087bb1aad519552c1e0320d07bf62fdc2674b248b81788568433a745e892a086382e5471263dbd6b86f68797990d0e967cdf8c7ea0074f4fecd63fec5350a635d6054f9bb42267dda37d3d48f53f8f6b5faaf1e3f02b985b7edc36409ff02ad3ff0219e2cf6bf398661136076ce9237356b9b0145e20a90f624e7df414f39e21b6c8122ab02bc0012c616f058c37b2b31f2da9e3339f5d29917a01fd463ccf733e8916ef63f922523589e6093451e5aa80ec91a94f8a71590cac13ef6733bd300dd1e57b5b2aa85b8d8210f5ed86bb6ba75af8583b1957c23bf36e040902d3215feb313f05bd4ef8e3f2ff6beac3c98bae556e7dc7a2e6fb3d087d01fa2f36774b9ce8ad96de94597e6e44dd5a84cbe5e6dc30a6ad59cfe8a4af28bcd8f3ce835b701430282e8b6544c4267347546ee7b49f6fd30246ceb92196c504aeedd3fbe383e38d7db3b103141229bc2b80f19c381e009c5640f9fbf862a92c7ed1fff3d6831c2119d3d16bf9f64f27b2cf49c64063ed92a3164c86c10b88bf10ff32742121d41573897928937a4515236e4f3a2d28c725388a4a20320829aa9346e28a74116cfe8a357ce03d144f2f22a8a463b2d7e0d14bb74ade3d33d5d90bcc09c000fbddb723720f4263574b9d48512a4c151d8f0a541eb01425a8c2e84d24babb124cd9676462f9124c2049aa236c70662322135e6abf7d356177ee465f418380b0e19c47187c0cad09820914e821cbacc4cd1931dcc2c7218709e55538bfe6686e6d943aa3d018deb21753c88653cc283e1f83a8cedd91e93b1939f512968c8d147fcbb29f14a2cc73e413cb0085551a51d7a1922fd227e8dd0e500b0cc114caef86cd627f1127cd933dcfd35cc4b22d3e884e35584381c980fa3d8267d090917b30f41f5fdd53746c5963f606dd4e1f0d2c285106ecbc75798d140c5100e7088b3acf693ecd5be0a7c5bafc5531969065fd8afbbe88869247d88732f5f75785d7e8f93d8b78662ee2f002a6c0db2732735a0111c4a8bc6b549dc28847f3421c319071ecf549225f44ad1787ab86725b86a800f2c74540ab540abfb23844560b50a2e374a8fbd56e3746bd19fee11918fa4baf9c2f17b1c8e31299daffbcc06398962d5f62502c40428fe748586c289952d1fed921cdc50067c7ec255bdb630d9b74eadc52ec2094c449190e11a05e3c2a78825788926af99f73d5356d1b295759a10dfdc6409bb42fa0f305c102194096b7626a60dc0feef70dd9096efe7ac6e3ca89c2beb6a74c9b17d6d8c7bfb6418f61405bf87454628bac2922318b9eaa8bc01643049565b835bb3da106fbbe3f9538b2759d720f8ed3365d11a1ef71c6cd177df512299a74fbc402d3d8bcfdfbe8e47c80b2882b4d22085a94a11bc0bc9c543fba06706ca713a81fc3f02670b9310e1a23c47929cb51a66640cefac68d62785cc5d208a705d16262769b03a9d20c08f21b53ae305890f70cdc9c012b573d8c802385c4c7746e8670c1ddfb13242ce00e18967edc1d9a452f04d27d4651e781ccd7984d6832cc80ccd005f9f7daab041e8ca2f8cf8923875c7be325416237f1b3c09d0bee860da25952b94d280463785f8bb8758b60f245aec503b587b396e8f825998aea49fb499d735f8e5ff4deae86e30da0d72b30027d6370c5a2102bb0c848678b6564612069a3b46f73407834a61b0a83f39fcfd651f0f78d13cabf7672ed5e676e45c2aa9a7d31930fc9e9805de7ba14e00f2490b0e7ce3be29c6ff2a4384ae6fb4fb9036fe6774c54fe25e9a0dc2b1d664ce04b8518786c2ccc4dcee0717d8d85ea9569f069118888c9b3cdcb4719b33bc349221f256bf68e6001b300af50ccce09207cee7efe8b3294d9942eb81d02db77627e9aa92951e2b853f3ba44f6aa1ed2aeae68b6d90fc9ebf086829ef619ca04b104504a07eec33b2919849062bf2938353ddbf839023becfbcf9ef66ee9ffb34ca08143c7a1c22348cca9c8e2c04e437cd677c68d171d8304eca8b8c252e3ef182e5feb03620573bb153ec5f0970f4c07ac27eba140a0dcf035dd322374aa062863c30ed24384075328fa4d9b54977c48eb8c9e3288dca507eef371fbe8baff62f0edddcc81c909664f0f696ee40c8ed246f23df0d438009730f73984ae51068a51772b9f497c2b598fdf08c0e04c5b0a6d74d5943e65a35f8f134989fc23f287c6329e13d6333744234a85a78297483eb15db7078dbc0e74044b8c4573b15195ba3cf6a1bf325ce35123e713024836f66004a9750935036bc788a51e3ae8c9aa4223b576d6bf7149d26fd155b23ec9d7d783040cff7be1809dfa860cf6543829469aab2b6a2221634d3d01863771e410cc6b408c14f7c9741248181764aca57369d8b764924b66aedb334e232ba341ea173b819d1e511885a29765a571132107120d8e7b31f8fbdf9612450221363e01f520ea224b9297b198e287da113d9ae14b0af18387e705b0a1bcb9c9650fc823bf88b1e061e95a17073d6d24ee455e93537bb5b2d4c705e929e2c36b643c7c6d673cb115675772d81397b2dc4f58aac7c55c21301f540102b725a900b563214b3e93e3110b3850eed177134ff61579dc982f4780e09bed18760c1fcade920def678f9fa0b2401baa92b24ec6960ab35d7f474eb7a7f68bb13582a233bcbafbede6a2928b1d8ae072435190a560aa3e06380d4efc65f9dcd206c8c2129d04abe129232b12ccf11f109920705b4891b3f49d5a46a312d6d24ca011d54269afdfc588040ad9c80c43aac237b06aeb7f056db6974e3f19706ef2e8d7025a5ea371b897c1397eb413aebdf3ff64bc9fcadad2f75b7060acc70e3aee29e8b894f301cd5da54d2487325f2107b7974be3c3b754d11d8c5daa3492d41121d53b110692283695763b14e53857972c9fd1441370791cd47882abcd02ac48e7b1f23c80d03952c5d0e54105f52211c0ac8ace1ec600782986d7d4adead414186698f29ae8ff40dd064eb8a377612059d216ccc75513218fddc277424994648a471b3aa2f9818fde537a208ab7f9723617e34bd5404b85f15f993cf899a14be32fc2dc0509301c4eda856cc39219ec2a160a06cfd0d44e71873e55139ab86e1e9ca7c5318f38aa4a53f6541fa726c3e9ad03899d2c08edc9cc92e01a364ac75086bbd207507ab5a8c36cfce8cafec8c347ea83440874c41b92dfd26461b31866947037fe692094234aca448a6974837e4a20ef7638b57db246b83594d96b8ee543412bec5611d12950f2175671ac25929c615f24d4bf0736f87e2b7176d7b75572099681128073bb2cb057ab0e0947259281a134921dc55fafff29657ac12b68cd90b1e85792f954bba3bf92392e438096249a78e122a064f13559a793ae068b8b6825d010019170e8b451750b68e59754ad601b05c5e1b3e75cd24e30263bf6e5cea56ab3357ca062952e6f4a6c9fa95febf1d48afc8bcf72bfda0a752dcc6f772a86afd0d11ffa051fbc37de7d0d1b1350793a7366ab677df39d402231b8608de795fc81b2ac6127fab16f69ed3085d1db3680ca7be0c7297728bc3393704825fff4c0af6d1eedc176f89feee93d7f4e9decac2e3050c0f2a54233c6e89509b8ca28a696363008a92f65aea84d401b88ba66c8e247e79654a6b8dd2c019b84d42b0d8adfbd07863fed735811fcbe560c3f9104ca9df987b66806c8b9d04f54cd30cefd72c5c6bbeeb887c57d8a91d51a4a542b931a9e13cd33a0f2d97f539014978eb847aee9af51f644bb9005f7467620ad2a99641f01a8b9397e85ac9439a3cd7a035cece962040c34afd9315ad686350d727be987cc4f02140b020e1a7583b68146e91832d831d34b4ff6f098c373670b02326d861404833e26d941a729cfd2ccac12e525359edf6b6dfd915ecdc96e4e4c7aaabe649cc62604dbd678a713abe14d8e8b8f21552330c91e22a199008833a9ecf5815e0123a78fc3fc1bcd38bb0b178eeb2819c46f6ee46f5c75047603638ea6963a25808e12ce0adaca65a8d5b5007d9890ad33b5f7cc36bd222ef32d47822a13763ab2fb6945eb5dd8129a4f70b70d766203379c97c778a183dca33ba01f04f2fe25ab1ef6a003708cac8f4ac17290a587151af02975ec01e52a22900e81028082b6b21e97a105e136a7c684d585ec04168e20e82adba856fcdd2fd6bec05d094fa0b38ad1f27eaecdb0f88045accea0ef9be0eeacc62b01cb1d09648e0912e65d5c3bccbff1626b8d7ab67ba07ffa620eb81937abea693824c7154eabcb394d42e15856649c772158a3674e1c3a87182d6674a01d02e705496a44dbfaa5a839fbf7b718137259e566d5c7e20dedfce52065db565acefa1e165b199d5d110344b6f8b87ca5120e7de80322063d3160a48123c6870e6131a0a459b17aae1a0e9e37ab71809c8bd5d54e784e6506321e8ff0e235e102f85c69d51c3300a05078c2d70dd796d125776ef9f058e2c222b38765491d84f0cdcc9dcd79b81a8fc2a6c9f68839adc9185efcd066b67fd47178411712f1fd91957e968e7d54c1e088906742da23dd7e4660c2350217dab10433c5755d1a985c9d9ad64cfdaf643797be08ff20ab2e3141143f58a8981fc30818d79203feb50a60b03c7a516e18dca50c56335699ec55ebff3b73edf663e89c1e891bed75bae1762fe9d0b9ba5694c7d0767d26668767e6697f98063d1752b286884e92b5a87d1faf152d709e7f05b2ab33fd85cad1f5dbf1a763434f154f0e90e6c8618b3e9564219ed538ba73d6a12bb7a9ee93c024a3b9ffaa88d759d08a7d969a266496ab6a3843324312c729628606b53238cde37331a07912de257b370aa2f7922880ddf493a39a9ae34cc6cf823516c56cb300c576bab9feab485aa9c2c1820c0dfa88ad30b177e265df15d678022c09fd42bf046d11dc5fc3e6c858d9aff356dd9e987fa0c0da45bae76e550551906cf7aba007044daa7de1e78c6d4613a8b201bb84590fdba30b151c57b956a45777a24c2820b867df812fefc1d8e1bdda49ea7d48bf444e17e1c4e8869c7a61fa426d24e687309e8db7f29ea132c61cbe31ca82f45872f4e0c95eb6af687b5bdbc6b48b8f7b94cb2f671f6b8ef5c9878828fc0f86d6a04642f01a884e29d73b3e15a937d4c50fc4fb17c86a9e7f40f53c03b486bd2c3dbef36737ff0696cf3198cf12ae9ed72c0203df6be2c713dcccc38228f480928e6ac151068b9dfd99c07b6a7c5b6003d7160abae2efa342b275805ec21fe2f50fde0145184b517006609d4de7cfe3644608904266303cf051200f21f8e00ae698d6561f7e808d202b080d0ad0775a345ee32640251fdd79409b6516441c9314ef46ced8042452a2e062073bcbb56c1b2b81deaad5183c02a2727f18ba74d99d67c02b32685ed66a99cbef11a04fcd7c42018542baa16db51adb8e768aab9a58240888337a10f3317c0a0a8d4f9a8d39dd41ffcea1071f5ad85772b13f671424c8d13e6882d7c2ec28e495bd522893ee6df1f00997729dea790dc29c39b5f6b46103e1b75c95dcbce3e6f0b47642a0d083512302763755590955bb85640fb3cba4618e76c045b26d100c5c574bc3ab7ae063e4bc8074d19aea4e1983e73baf5040118ccc3fbb21731ec029ace746918ac581bc81a89e31050c461946f953d233d74d09b5b1ebbc7dd76c525646b4d80363c05a58042da678a707625739d3dacaa21dca20e4d334a738ece20f3b03b787ee2ace038f2f13a7ca6e7e57a78d18bdbb42fb9662ec1a865ecb03ffbadf853b0104879fcd621e5253309d2f480efb438cae7743e37948061772dd5949caf1195e482b9beac71071423a9a6fe96f8c7b955c6c75b93395b4120a3d7bab218646151877f4a3ef54b8d682d870d22af2c45f5254169b7c335fc76cb3e80e5c5c59dcf119f31d5b32ba04a3a7a2f3cad0dd2c84d03a4d35ed64328ff91a2259cd14cce032e69e876135f23faf86c704c839672c12a92f56c39f51993f1c39a3fedf97ab3e1c2d7ed717ff9a786b794730a3dc49f94466b06214a06dd674d1d69d427648c9467e2d369d2e310c6119a2ddebfa5dafddecdc7890bf3e5563dcf4eba69fa913711aa629e62980e6b286df06593c4f7c4ae2a620de84dedce1133ffcccfdbcc7f7104023ce3005f015ef4d80c859c4c4c839c0e36808eef48d2da465f40d99aab271613640e7bb68e1f41f847f2fcae703da25ecb0cd1e498125301beca1cbaf85e8fa1a9d5f82d011130c54977dd7c72897e12328b4de38ea55f76626b31c26385b5b31c1a55dc35676b9826bd07556569ad0d7fa3f211832be04e615a08bf2329d99e15a493d0b5d00d631943ca89c4ed08fe2685079904507fabca750ec903f33becc19e52d724d188600d78e3dda625aa150bd622843d22e308305ce0d6077375f7946ffe66012a2c18b1bcf72ff4afdde6ea323a386b44860c28be72b1c62b7a1fe269d5b91116e3543bc6daba8ede674adec9602052921f7ca07197b2f7514207287b8496b9e39af4ec463f39974d5cb96795277072ad8302dd799a0745db0f31ea42d0c9290c2c9c6c8385f908aca77cb939db2c629fe1280706b8d89aa3946c2cb25ddfbe9bdb692e297d2e834804c80e1decf1c1cf1baf16f6367ade547e5e9f10b8dadeeedd0c253bbe2c4d86cbaf001b1ff2ac85ec87a390946b057e6fab9ebc6fa005acad33aa6e987d599f2414800d61ff4b7df6080daef5bf0964b687f78d893de3e03caff2ffa5690a66a12d8e39eadade922e78f5de866cde41c4553577431279702e1c6942a6399db156496313c1c97615658818ccbe9607719d678ebc549f37163276e8f2b28001408dce261348653963ca36bbbe14aa845940cb7aebea51de290bb178af9e34b8b61699776b47b482a77a1b1b3c114c50ef6ce15b0a67aae1ddf0c9ebf396a5d74c6070fe654eb4f0808670978ece7d13e6a5cfdf4734780670cb92dd37d6de1767be83536c01e43069fd6f1e9c764a6d6a928e24181ff06f46089ac9b0de828f55e60dca0ee2f3a71d030ed3421e5965e93987373668c7e390a39322878f60f476e626f242de7ef2b8ee034b085fae664ca81b0a6aa06688ae6f7393005ff3313064160841d32e11dcac4fc4dae6a9c4b42fbef70dbb79ccf07fb729747dc8bc9b1d025f8b7600612118a47e689f050bd097bddeee947bf8819b6c6ce404d1dc348e4e43021e272b9dc46677932df34ca88a32f802f0df72cf03183e3baaff9dbe3334845472030e405be59b4b1bb644867daf85f3a7b5b576f007863e94db95398e9f49d0e77b28c4f21221061978cd1db2bbf59dbaed686dc3b2c550ab16138bf2807bef746abf027f816200c7a8cbfd1de262a966c0a684726ae911031f121daedb2e4a6e006946be26ed4c90fb92a01550a75abc51c66f314149837bd88fbf649ffff674fffa3d3ccdc50cc68f8640e95b294866c79f76a4630e5b6b84f64a1492f811691932f85fc8ea38ed6115325cc7d19171a907f2e62c52e2d1da3ae152b056a8caa186855ea731be1dfc7d2f0642c0ec18eb2fc207600593c479a2478088d29b8a656b740893d6307cf06d08e36ed21cb46b49e15adae45b264888d6495eadc83d5ee510febae65a3b6bd00bcf04ff7960f40b5dffecccb7d22ddb2272d72374926f78bfb52c94b5be0244f02396ec5701d10f9ebdb0d2c3222e72e10c6d7a10d80514e5811b7dc06d66947a0d1685c999d18100a7fe54f56e3527d1d1a829712826f3fe32bb19ef95a4694c8e60248a81baf8ccbb3a7295e549ed4816b6629394e06cc1252109a7204e4c6d329ec01c218caa6634525f0b808ca630e42a98f896df3fbd51ae909043a053d48a701317ae3a7515e2b4e900fdd36f40da0a5b41c559574f69fb81efd8a41c3342efd5194151095c5340a2a3d4aef3bb551f40e79353fd130492a82a004fcbaa729a8f9a07a9aa8d02db838291fca05c61948e926b7edf0ad4b5df83a7774d0c4c9a8ae52f685c96c4475e1191bdb23902b6a3546167f2449b3cb6c88fe11639240ff0b1620b5784e3a6be8a9c36a1ba823b7480105bf1d1ada953d339635ecba3f968ac27ed95b4f329cadf027b0664048c1304316fc7422bac4c38e09ab2ded02cadc00127c5d843726d7526ebf10c52e3f87240fe4d4ad87e32b23cbc05ecaa7b88ee7dd6c4027372807c44c124affb35cc122cf7451f52709c1828e985050ee96c267d7529c524ebca1afefe2ce56bc4d20d62918c2cac6b1364f593050fb371a8b83f382468e83be33369fe6ddc72453eabdd7ec4dde185ebf17a07e15688eec4eef1e00e498d4d0ff5bceb76cce825b861b52e84d847a88e8806ccf30b4ad424b0314f57caac24972d98f17b63688e22cc674ff4539cb860ac62b98bc6284829dfb8adfa7437f88bb0c3ff495a689129e1fa857c8f5870410f2658ef4f245d1d6a9f57e595ae13e167e7b3ad46779bee93376ca8307f00afb69b8fd7faf8ce15b30e11c427c01267e585e575d2c15101d97a55debebf7697dd42dae55b86424dd6ba02450607a11536f275d8dca6050bfb1a8d9fb55100945cc4a15593e58d91b79f1923ebba2bd3b5b6a2f42b4424f628c39a366b3d79db39e0989995f2042b23fdaa3d8aaee58e44036dc48b10f4b43275a354f7878c08f985581c2be504a56280e47d067017bcc31648b1cba3f72bec1de05ae79eba0b0668b06cd724f658f06492983d9de519fdb311506de798e14f1a0b2b39f960714535c36c564b4176e0e0c469e176941ba697da3f68c7ea49c6ce01681617b49612c0a5e76adc7e33316491e54057922894bd22ca0e8e8763f52d0154cb0f581dd4291bc1feb0ce0b4fbf2883808569d9d8d7b55118c1fbf332648f57bc39d55a1af1678bda7e05ec06b40b234e0d83d6a0db1c63b81479ffe54d8870ae69d2381bf1fa4e1dfaccf3317408008ee4ab238e9707744ff1cfe72cda6952a0c6c16a1d552c5855ca1b08769b0e0d3d7052b21e1174dc9f9f3c748bedb1e94a9c9bf04aa5b1fd4e021d7179e8527b49d4f07ff9bba9d89343d4263419dfa848d319c071b87a94e732434f0d1a58a50e056b049387db0255028307a033d79b7d966509a5b74ac8f25fc850709fe21d2acf4ec0a8c43e2ba5f5ca283f3377e4cfb85e89dd71b946b32f2703d7ef1bca5baf42159284e7157e49fdfe7b032e14e5b5764b309a187ff4f1ba727000389b8a3d23508bb7cc305960c3ffd9c94aff1bc847760f72255a311c6f65ae58ddd56046022085d45250a0f0e000fd5d7ac513cc79e95eb2fa48feb993d0488081def1fd8819ae4e3615c89fc31d4fd61b05b0aecf852e3cf07b26c10057529e8944312255c491c2554a8e40daccbb482b6c417539cbb4aa57e2982070050040e4d44bfa6ad5e59246a44ff1c4e081bc78c62e0583b003b9a0ba8afd68193725adc2b26b44fe8272cf05a3df3ffb55eeb9c3ae60fb295c454e1c28b0562dcd6644d3cd057eaa7d7e3b6647d76fe5563a2554e2a5ff58088d57e8ffa0409474d765e990b556be71f66a4adcbf889fc2021dada0f492f1c38a18e95d6ed16cd797c3aff47bca8d77ee5a726ff73a28a65c224332fc1ef3ae9e84d63c8a19271ff512a9ff233353c9e56feff00b68381dc2d4fd55d257ebd4ca96dff25ce803a3ef458803087a5cf21f2a9689f7c3f8896571e155de920e5b52e14da9de829bb4257441762dd2a30820807f230941ccd302cb8610100a44c1fb601e296a787448a17b3bab516d36d2481dc48c44f75629a17233161d02f3be0d5f84c6b736cdf2098d9395f50ed0bcf84ff00375dda667bddafedcb8bbff045f9f4caef6f28fe3e030e6a191140bc3c3fbe4c0080edd2d6c0fdc7e4cd1fffb4090d80d00d09378f15c05142f4f640d2434c5dee84dc3f468d5a9dbc67f9625ecb90fa4c94b35a40a912eab676d0b3bbfbf076a7f2f9d1ee64e41be759f15fd8bc75737fe8dbcc836d8f171ec99e98aca94a942e331ec495b32ae3ae024e495aa95033de6c0b3a02f887aa73d62e7fca6144eb8934fbc279968e4b057ca35e48bf761da4db7c049ce2f7b6006ecee604315bad257f6a3e6499ab02ec066529b848c4c4ad88be071d58f90006c9d786f23a46835ba83f5a084023df73e7d456b080e957e19dbbfeecfe50e4af8c5abd4f8a1beaf295f1d03bb9557f0d6afe6d1add80352c6f6ccd602f4fe8f2a2f2323700707b851fad1c69e8b35eff2f8e9e0850e2d43ecf31d5cfb9b99ecab328a36626e362519968ab016e5abf68b938be4df3a1a504be20677f9c35846ddd65cbf281b95800205ebbdc8389a853d92f8337535cfd8a239b21cb452f664dd08ef82bf66f5223aaaa6970a36bf4eab3a956e2a11f7abb61e19ede3313a2281851691edcff173833f47eb19683631442f1f6e5df175576a203bdc35b30947629b35de0fc4a71d2efaff9f0aa80454128e6ec05cc29f3834e42ee9bb6b08ca0e86e87589c10da8590bd0893d51850f1af73c50ff7835105f1071c14a3ff22a915beed7cb16c15788405462a118c737f1dd3f57ab45447b611768bd26e023fa1dbbb8a5f8a8b99f53f15b462832e59165353f7e0d66c9a6b5b12cf3856a3dbc6dd38905178d820c61bb4580abae24cddf93a0ba3a4e24cd21b55f5507948fba0f65fa92385983524141fe50b21335ad960e895dc590a456e8a7f42ce455fe92ab42109f7679cc0569083c69dee5896e225f0d220245e13671a2150f3190a44a17648804dd12c1289a96e2854951417c884bd06a8cb285869b8d8493f59b6ef84f726e7fc4d643aad264e1b4ced3195497e3c15f82e7e239738164a81890a40a48b4f4117461a6a2400cb9ff1ad508f497f4e64bb8be464850530cb0b6cd6d92e6719fb6cd19970938f5c7351db50bd327630cc6ac6a9ec42285fb64d9808eb7113a7e1dac3e5a23c919ccea8d99156119ea4405a46c4bfddf433312810908fd243758c6dd6077b2ead3b990984124c7c3c17b5957e1b5d16735b78fbbc462dcc53c12525223bae7b89e90031bd721097a52f9c6e5430a0abc05fd0ede0d0e4c90744c561a955e6443447298d12f17405649be6c1a23aacf7583686cff57e73e350827140b6cfd5d52253b048ede3f543049442f15a98dd2edefea4d863dcddfb6215ddc9ffa9f9cd9d93c0a71a72793247da337f081ad55954cf09dcaa7b7c9dcf0f751be4696efcb5dd39f8e887fbe38a4cd8fcb5aac22c576acd49b8ccf52ca2cca10cf0debe0c56609c21beabf7a38272f415920e0a350f2e76c3e6c38ca391598dd6e4d46ecdc2f1f6ef0fdd431747f4d261b6400c5ba069b3c7845a4c1a91edc52cc4544214d96279619751630f29853541f0d3acb8ea0b3694ccf49bbc55167d4c373e609083100838b2bf46b5d3648322b402ca7e21be477ab67377a01eecea858cb0631b6bc13b2941229503fcadb9101fd264fa54b8bb95bbdf0042fac45e942e3cf850fa59302e3ad7c437763841811e2270f55fa911200e42afef1a560c05a5e6fb840b4a225d50feb4e71956aef20dff7f07beef6a16549481ca2831057c89393ede21b9fc86c996c7efdce636e096ed6001a07dbea211caee62c7eed86d8f5b568e0f36771bc054f95b235ddff665a5d408db4d89d5556016322251a1aa0692410daf902970cee99c73d401106bb6ff366ae00bf2836c71cac4fb62b3270bd6cca657ec7676886f44f2f5907c07c3b542e3edf56ca6bddcf378cf708eab7c27be16405f9449ce476fb6cbed2f0d322208abfc4be997bb8e4774b0a381c39756ec12e3b99cf8cf7c8a52378876e1d107853010087cfb82ac6869a907b289d1da82e0a23d2c94f7d134c2d4a54fab5e1443289afa4e5490a273e1a04e6c60a7f32bfa8e5cae475383eac09453eba2f178410f564dc2996d0b90a129c17e15cd1924fad87c1d88bc79e2c67d1c47f915ff3d4c6192f9117e058a617703e2e30bb4083476d2320c785d7bae1868590e52f3065cfde2b491060807439ed3a7b8199e7e3f08aa56309b93c1de8fd49177cf1c6c12fbbef2f044bb4490ed9b0756e700135ba1262346ebc17785b5aa814afbaed5f6b7831c92dfb2451fa1e265614826f28c5116a2a6797b373eebaa7405314c94feb9c3f1e7671bf0b198e695c68d1dca9d6d03a64d3cf3839b404da222d8b1f2175e41a344fd7346687040813330518a1816afa97bd0c1e98469df5fa72c14694739bc8b90e6ad71aa1f924026e6c764d94dddbf1bdae6f5cb86c908126002b62361a53358a2047138eff76d5bb77b6c0c3de885868b3c2e16da3cbbe44f2d14cc2d3ba6d06cdf1b5a0742b5549a19ce68b4f21b7eceb1d08d1aab991dd392c281162de97174c04069fb47b1ca599700a19bd4d61a61f26df0fed058c7b1044090d0a24c1d6fc0b683ee66c444cc4fa8c1cc573e4e01edff670e8e1264e1b05d87a7823d1fd608053da3cf0c6c725300bbf4c9d98431abdd7dc4dbd577f2ef3274041bf60ef4a721f8fb13e5f7318b8b7e5903c6d39cbbd9ee611860d23b419b8a8f27f89718cbcd70f6528724b46bb2152ec33b02c4e6323b324c320d9f8d96c63d7c3070295b7042b8e0c1d122f27fc561f0d7a1dcfb2c44c2e9e017ddbd72ff1e72d10126d9ed9d9720487e5f0d5f2847ebe9a7c70fcd7fb8f116bb5f7250ee56c798d938e21c56098b595f56257544ab08fc98f8afac26a514573b254c83e4fd9b9283d0631e1565a88bcc3d83fde42c191a5900d81ff1670624272e4991d610426706c59b3619108129ff8bd79c7592f0475c5e058e3fc4120e541050aba83ac42f719c87ec126b8127867f60a81175b4c01dd0025e8215b7b3f9c768d80de82ded59490b660d11299288749e54a580f900eb69951580f9f4acdc723711290162eec45ad68d752b7e16d30311b329580e5a0e790e42fc7fad155d99aa1f20ccf08331febf166d129571d726be68b0ce0f64f0810f7ef0c14b0f54d083b107303ce0010f88b078e0c3ffd7121dc2e8c5d3d3d989f02e754ff710baeaa889f9d4ad793657e5a56f783064073ad8010376e0a5e6d65ad5b7e639dd22e6048d392a1a547c4dd1d8c146b885081c3458685cff5d073e781ab252394db968a89c501d37493b8aac26b9c2465867170da1b89357c528d9719f91c1a96d7473d50e06f9f46c15cda5750d1fbaf065aa52a71487a70b89cda54447675c44e28ba69f9944a19cbc5052fcb95215a741612aa71cb446e38d52a27399658957544e7dca557dae7a3a5d3cbdb9eaeefbe62a710ab4530e05a8074892e1b42171521cea9d0ee1dd553827c5618a431b9b9e237da7c8a010a3f8a70c2dfe6b2dc9545592a9aa8c98df41907d1371fe2d35a47b8889730b0d3eec7041937f1f5fb4200e14725a00821650f19f42512dd043429369480b3832e2a8ab14c5271960543288d06448b312c9d8810c1ab2c8e8660c32fe4f5468a69caeeaa3f718ded7317e5c6294c1c5a8220626c68faf160bd0f87f1664f1ff9b053fbf12af9c304c2b0c302a668581faff1e86ccff3fb6c2f8af9d04a38c1a04c695af609cfec1f8f12b3841d73a9a0c2d1590c052c1142a38800a62480196bf6acab91354c5573d574d81510a74f8228d2f96f8c2e68bcc0b3552680d5a7bcd75ea5e54f162077701832e8c387d17297041028b8b27b848b2c51b55733e7475b2f7212b5ceed3a9bcb94ea70b9f2e7cfa6c416ec1a1c00e14c060778e3b0a1060a1e0090afeeb1e2a3169aa2e2d4aa005154b8b1d3bac1388e004526ac7d7cc29ede44eef64e73cd70bdda98a73a3f4b23992379453c7a82897c9e4a45137318979ae5a637233ef6a924326d6e045f303d6d3cccf45a32373ba4e3aa7d34fcd65ead78c2873d57ecd6099abeeaa73d5ad4954ef2255a69326535f8d9d4c7127d2bbab70cd55b1aa73f2dae8cd49ef144a13ca9ca49c4e33e1452345e674758c3af59ec9a24b9b644a9af84ca53dc8490e47b7505f6123f389b94f9f2193a33310e1bfc700c4d3e9ea2a546a64c808d1dee7a9a7c29307b6f04068050cac20c38a20acc8a9028f2a58504512550c7df5b94ca7b4ab4e578de974ba6aea0aa7f6a9ce9c46bed17e9ac1283e656ad28ea67b680741029d3a2aadab131e796aaa52cccbb4a798f372a7174f4d2b14932579a4cd53dfa88c73aacf129d25681daae055f1137417f9c0f086cfd795a879ba6778649a9cae9a9aba4d945f28d3e9dae869668647a6c9458373d168bc5132a7cb942232c9f242650c5e3906e0e97d8b73d5646badc86432997a788b4c26f2c435e95b17f881f26c258551ff3fbc15d6143e684545ca334586e489a7c02e5397e28ece7ffe7bf44841c593384d77bfa4d87929844471c7ff35258a321e33a320e2df00517051c444f1e32f9acb84e4a2124eb1401916b8d22d0b24790b08a002586a11eeba024ffcd754755a1520ff6f708a954091e5eb6582b5eb5d545eb8ebfcdc0c19794f49a36eee9c8efaf4d4dc290b54e05170b1de47eaa3fb7826da7091a374e2e7df09eb840f2436d765ea5613693461c5914b46c8654a3b2ecd26524dc56a224a13492e2442a8340180ff9e92628844c8156a139327384c60f1ff4499973835bd46efdd6b4c16132e989cb49640fdd7ade8e269d94d8c2e11e4ff52620cbd77d625576288cba484f7ff427092b8238927922092040c1400c324319a561353e0a400f65fafdcf1e89527ae3441628eff9aaace94bc6890b8ae1a249070f93a012cd704365027a0800958a309fc904019507c7eae239c92c0139704bcff97408f0096bfae2b0267046a308f68c21156e0fea4a6e9063ae2e7bff6917723ee30e28a360243f775e2a54a739e254ea09cb8368244b315cb4a93d44a1093a3282b5fc58aa1ab4a37f7c9abc8fc4ef7956ea022def8da4db2882abadca5ea028b48928bb8ae2bed1c0258be5e1018e2ebce16047e8e70ea0177880fb042758e34d7039a100147aa3a8798354539c63b95d374776dea17671a31774c629a8eabd1eec9428438feb3b9ea373d8551fcd3555b05444eda7993ebaa45e426572724b59e2ed3c4465c9ba4114781ae4aee534f4d72c83679cd4aac19473e84a3e7a5f373234407847022840fb1972516c98cf2911c32f755fb367711cab12a677eadf01ed29ba7a7bca19cae9ba0ab5f1b9592279b1999d36892246a74a5d23d743acdc8a4bb9ffa0e824c91e9892e21d114d54bcec5d385531ba8933dca7584e5e88923d490499e75a3f8a8c9514c376ac3c888880bc9b5da44e1c9d390c628ff571eb483207b78f294a8e3209ba023274f738ab620ea5855747e4d2fd2fe3fe543404533a8cef87a3a199d66684e9eca9c5443e8a8724869905a49755214ac8ec67fa5725a6d1ed28e774c269217e18bdc4ea89c4e53b036f145e5749a52cd9b9ec511e6e91ae37429ddab3a6fa16b00d9d8041d21ea3888a8e3740741f67ef23404c209204c206238c3387fb04eef5f4566933c5595f755791eed93e9da624a5e2749442392e24ed3a3dd7136f9062c4ec4572aa7927393046668bea46290324a9534288728a7942b1095802813c9fc40831f9af801f5694aa2fb7475bd2a4f9dcac9e4e40ec34dd471d0357255e61a0795539cc23498dca8b4dc62bf6830cacf72a3d0343c851b3d9d883a0e4a71effb32f71eaf9a53ef55294393925b2c6f2e8d62a30a0442d109ea01737a74ae1e9cdc04813d3e3c974f4f3fa5393ff8f82797200960a1f0406df17548255e2b33f7192aa7d314990bddf57453b7c953e4b512795055765a9a7b67b57938c23c3645f289d660b2a8a6a666c824533c5732081215716a1a6154af4646467c34c925dca77197c944e55473997646ed7675f22ad2f8a219326bd05dc4576989cd7d5e25de68aa5f9ca769899b9cd212a36caec6595be4c865323789a69b48ce8f13224f5625c9338a14d113f3f4004d19c25db5da4420cf8d932557dd4579e45789b16856bd2f6eea6d5e3d7d17719e9a1cd54f6c767267b579e8da54611c8cf3030559d05c28f1087108f1fc8bc624eaebff55784b3c404fed725b220dcec1d79548b3f778a1324973baf61e6f6aef6779a6f03e9d2995780d71a0ab9e64ca7b896e12b58d2e23333b5c462e22d70e17273b92eb24d330dda59199934c6572897388e45aa5bb2c52e4a249bb0a3d9d4e579d39c954e6aa5995bd2635713e9d2e9cea5ca9498ea7d3a973ae4a51b228872b639f5379a664a94add5c7b8f61893b2ef71ec35dee3d86bb63d166ef253a7b0cf75ea283ef910317129ce03f4ca9cc94caf4e1880fd714224c19c19493350548c809421c10fae9a1093da0d1c3103d289142871436a45cf99ff1b94c333226d355735dbbe4e8b5512992ec3332544ea72925992281aeab6e94a75626be5440609aab93178de9ca2e293151dab0a2701105f57546a69326dea58951412b99ab4321038a032c283539b09e68e0c9ce931f61ce4c8e8c8c4f35ba3aae989f7d87ca69954da6b2c439a729a76a04698a6c54d0599637f5e6020a022d203b805c60016d012402e5c8e1040a27413889f9af33325ccb84dad43534bb97e0a542d38b733144f5b293178da942377a4a5523df06080dc082f5f3849f19fc24c0faf97cdab07c6ce003864fca27861e20f4544151920891209f1e22447474d041877a5d57da475e793af20b4a8f108b270b0f1a260f53bcbbcd8ccc91bca1d8f0b8f0a4b0d3cb92a3fcc23815f9c5d39df375764a3f8a2b1175c303161e88f8afa71447c719de63f180e2214845f9752a401b2879758cb20a208202081560051d13e8e4ff8a4a49237e3a5d692f37ba4d941c3acd50f1618a0f32297407dd5c151f6d7363a36d6abd8932c9430add4146bba7891a4da868d204b39a3029a3a298546172faaf2967c2e447dde912349658f14bae54b4c9d7d3e9c24bfe6b2751526ff4079cc1a33f1dad46bc24c99311475dab7277d2e8baea65aa50f2eae45553e80eaa5bf3143e2f93e4a60e3e37d1eee7de44a192ca536d729c19192e6a93e3643235f11039b4baf22af721dbe46793abe2938a446f66421a7e3eb9ea4cdab7887223998bc8c4e8a9aae99abcb94c3a57edbc67857f78d0131427ed2a1e1e9ce2948c92f2219374d2a3a825890b943790c080e408091835e836f9ee16922b902831e54282e45fefcb54a1e8d6256f92e20d147228a4292ef07f838e422ff1f1bf78eab78ed84753a9ad62353522511eeaa91487a9b9bb8dc9a4d31e9e7da33c1b39fd7fb58c605f8dfc5b2635b8653255f98a7253937fcc4b535f627d77dc7c5c7ce67f4d47aecf6e62ce83784a6a302d55bd892ecb1bbd9dfc186ded61f1aaec78522ccfead0f8ef86c8ac2ec97f0db2ba1fffbfc409941e4e8daf7b08c53cb52dee0af773556b4323dbb6f8af5b9537496b4b72ba6852bcf396f60639445e9a15965645c35637d91df5cab0d4a0ecdc560685a776cae6eac0ba51fc574ea676caba25fb84657f6c90ffd36947c1291a23251de537d816ff5f7110f625ee97556404569125aaa9023a9d3611ffb1ea18b58a5519500760d5f4e0ff8bbc5583855573819a9d1a0158346e583442ecd0d4f05fcdab0fa9a73e449baa9336b791f0daa8f41a798d91215c8e34444c9208462f1a93a3dcda014bd5a0b54313d60e04202284d73467cacb21129f299caf21935c6d1ef67922718aee8c4f3339685335e622ab33079188cc0d4a9a1be518856382a60e8a97701ea44df0c439e82ef2f1d1248ede5a9baa259df728e1412b8d796af38c28141a4a40c3dba0e4ee24464fac4dd5928dfea0bb68f77072c7017a0361af1dc8ebc8f5c3e9327202faf9d9b98e5ce4e9ff6d20057083ff6a448a9600a4f87f2a6f0920c95712c7bcf14f8566ca495b3159fc576dc508c5fcf8aa7779aa508d5540a029f973554b873574b8f25f35292eb174a8a9274e5da7531f3589d3f5ce018cff1cae04e5800ab272f8f99a03f62f648ed7961019fcff1f6d2d048a25c4ab35267999f7adeb015766e1c0060e18c0c10787ed8635ac1b5a60dd008475430e960d30b06c60810de7d74e8a1b95625c93aa4ade45bc51297932394f031a0f6d8551b409de0aa32813387bb31546d11bf167a5398ed659698e636373b323377be25dabf2541aa7a27233add37333d50f26d32d2ac0cdb4c6b52c61b589b0bbda3c94a5e993a2f8d424aa2a7f4844a50acc74b402f5f8e804e5f43c294028e58627fc6fb94309ff2d4968b1a38e0fb45431b3d06103947791c9d44dbe531c689bbc27288cd2133d74b4a61809ffff4f802270fe15f0551690c7ff05a6f88fa288ff07fc03509b34fb7f12c7c8bd047099bbc42e24422e73975ba9899da23a90bc081e0438505c41e2e7a110800999afe15fe84b4b7c518a224932821c3c207df1a4142c11a4a3756b6e7e0b11e62e2f2436d7897368b44d14c478d2465aa20486d96a6bf22e2a4b9cc2e2a307a524c6681151143c5da6c9b4531235d278a3b7283c7b12322491c2ffcc651af9651a372a9337944e9e379d3cf190599e29f2ec463ce799bc8de62689a62693c9e748de50c24da2295078f65569fa18f172e3984f74c99be4a4731ca1c4a0c9c915dee13d5440211da05009a8c427a7070c9df838710286e0ce13253e3ca1941b1e14ddb8eb0c02819c8b3bc543f8e4e8b953643384837e4a9cf98e0e10ef4137c6d11827a783a81425716e34c6294b9c1372dbe546414e7a8b1c24110ffa6f31c2cd7f4b1c3643bc44774ab5af9e9eaaed644927af1d044777efe82675dac9a319238e4f5387bc50294a8a17becc8e5157dd222eaf8e8df44eb1116d629c22fcb7c0f1a5227cc0e8c628b86ddbb66d9ba6699aa6699aa665599665599665d9bdf7de7befbdd65a6badb5d66217bbd8c52e76b18b5dec6217bbdff77ddff77ddfe7799ee7799ee7795dd7755dd7755dc7711cc7711cc771dbb66ddbb66ddba6699aa6699aa6695996655996655976efbdf7de7bafb5d65a6b2d86611886611886d9effbbeeffbbeeff33ccff33ccff3bcaeebbaaeebbaaee3388ee3388ee3b86ddbb66ddbb66dd3344dd3344dd3b42ccbb22ccbb22cbbf7de7befbdd75a6badb5d662f6f33a6ed3b26b79523a3d28e03e4677111db0c41b68a33fa99deab410e18d16d38dff9621fcb70801c734e2260f69df23de3ba8aefa397d3289ee94aa074da5c2b38f78efec52c42d6dfcb7b0f1dfb2c6ff8cccff0cfe9fe84b42ecd0cb33456a9e49ff42b2a214041e2f665c030589a654e6eea98e8d2e9e9638c5e30a13f1b4b439d2cf8e53ace4bf25086a0c99a4de284751b0c4a909858713f3689243195128230a65448b4ca6118562c34386e8de2715edb3db7635958da3926597114f3505779df746cf13679b191b4fa575648ee4fd83cafc04519c8a1867891328dabc49796933b34519324c79d9b78871ce13cf689ceaa2d138954cb650d2a3ddb3c40994254ea098242e7f8046b428e5653fdadaec1bfd59fd90cc4f91a9114ec900716e70ce139b4c67e7e8165ae1942519a2fbf4ae7df2438a523ff26f328567ef1df8ff50ef237224cd406a410975c0f13573ed460935c09f824e9769dedc886411a98404842a8a282a01b1939aa46a88143399eed47f4b1a258a82b90508d6ec373c3d57684e6a92fca7eb803e116704c6d279e1b3c82addeaade1a349fec0c9854a6f30b1eff8e8843c0a257814aae09e173e4ae612253335f577b49aaad3653af9d0b851a547d5a37b847a5a783ac0a319fdd0a1814e4a67a6491196d4b14408253f50a2034e17373f28dd547193a4643325e7c80f31d410a38a92e903a6ef13bd27785d78d64859fa8cd0d5a0239970038eca8683d28696349bbd70c52d4860654ad8aafed4bc51aa71408d108d10342ea51d6e88b080c81129d4ff17f2252242888cffef7da96cf97f1abe44f4c6d7547572d374f15475e2e824e1351a35844d62707a434991287c8a56e08408e670424d904eb771208e3080f8c289c9c4b50a6df204257b4e3288ec405bc43836344750bea42c71ce2e455c9638c7646241931c8ac91486e6d69a449ddd641acbdd73429b4b9a4364b7fdda5d64439e37f5d2f9b929921e6db3ee3d863c0df71ed3231579deec6cf29e1999cac913d77daed21d8c7007776e7280ae9337a6aad326127747a57aef4e9e37a79a22a9b9c9329fc8131fedd51631ce49a2c4941f6db3cee81d5610e706a7aeca71e4dac42893d428e7b9f7ddb9d97bca6d2ab7e6b5668b5593d766b2aab66665e2d45a2f9abb03ce456377c091b9b036370e36316a4c533c35639ef6becb700fe1159529a793498e6257413999a70b5f4e78784e33a60c9253ef4e7878d0548a3c6f7845b72e69545725af8d767c9d3419a66947711f3949a2ca5395fa5c75866b949c91b94e1255623ece9c4e12d5c3930c36d3ddc3ddafce9bd454e7e726ecd719f6b1e8ace9ee7d09949f6be457dfb5e4fcec171f6fda39ea1ac93034795d8961d86b8a9b570d8148e9cd240cc37a3aebe94484975c281fc3d30e73708a755d5ddac4e1497772a37d55929c4cc39ada1b5d7255945f1517edb287abd79311374f26bf8c362ae5e70aa5332f8bc8f3268a4f254f7c6d22941b85281fc73aa23b35f51e1ac2417b24c5d309dd45268a77c9f9c951e93e4a7baf45690d6bcacd0be557aaaa3ca7d329c5e175f554c5a99cfa69cab5fb13f25437ca732a1079e2ebb4519e53af5dafeae4e25a85a652e16adcbba7bceca4ea4c69b49326aa77ad02da241ac4c3b56ac47b074df1a4b2949c8e9f9c292518c53f284601758ce29f4ef674b2075d3de1f9d9a8bc83ca1c25688aa7df6c11e3fcb7f880073ef86fe9c17f0b0f76f0df82860efe5b7260031cfcb7dcc006bf3a6262f21e93931c1f27d70aff1c517204f311dd4190e5912322c639c2834c3157c747fa6af330ee2d925a85cda18e318a4f93a7c82d62d1c4e8100c3130c821480e29e4403a4df13d5992c40188fcbf0f2b32e0811fcb8b32baff27112089293e57ac48f1c5ff938e28020e33280a47aef87f120b5a16608302dc2008d4fff7284287d205d810801967fc7f8b1d46380009b020030a23fc7f0f2933a8411641d2c00105febf47162d1811448308e04092b2c980133d6844f0ff3d76400208e188214728e1ff5b6040028b1c4e3cf1450dfe3f850a307107e906a63c92fc7f8f36eca080107838c146f7ff3e2c7052010ad4193fa481d55b545312a2819210224a42aa907bed60ee7ec3464db78dd6b9a830da3dbd92694779472b1af2cc33479ff0ffef93d2f9ff1bb8e07f08e64abf65aef47f4b0dfedfc7b7d08007dd10c65fa6b4e31d1f242038080208297c50ba5247e90699afb99b2d584a36d451579c0799f1ff01f8920d59fcd72857bd527c956c9840c90622ae920dba648392ff8c6da8e1ff4b35dcd1c3c437c0f8c83223137652c80cfe5b64f043059f95a9f97f4b0cfe5b60804589062cb8898d76cf054a349c26597651a22148bdf161867f121aff2fc6970250c3af4c6cee8bac78255eff2d67fcb79851fa94364d26bd4d239fad71fe6f79c17f4b196492195cca22fe5ffe83beb44490dfa536cd6b9b6469921af3928eff2ca52041ffb9c5052d20638c55498625b8a6e93da0a46065b84a31e4f1ff297c29863bec9762f8e2ff7baf49497175f2fc420c52bea3b514034d29061c6290a114439037794a8a357943b1016905ffffe44b301c91272e92c629a854c2927791adc1e1094f7842298a1a317a4a8aff2d2c682135dea8ff963050adb14de948c948a9e4bdcd4573242571fe5bc058810a52f0c55ff1a20b2eb6684181165f81961398c0042d2520c108b238029ffc3fe9ff1f054fbc05441082161060714509e6c77f55e10644674dcaac19d1a29ed2cb112076ff80071e022e2940bd8ad56813a32d558a782facf8ff1fdf427e0f1b6020d9218397411affdff32d2effdff32d2dfc7fcf7f06febfa7a7a58a5495ea80f8dfc20173032d1af80b640003b9f40209ce543ec2a99477adea480f1fd21b2517def8944471917ef2920b60fc7fc9852bff9789041dadbd485694ca47a1cb975c98f9bf4c2636d2264994ca5250fe03dedd2453616892a912a7bb778c8629f943c7647993c9936fa0ad394fdf7b49ba81f04e794fba7752949f47a0f9c4448fec719fab34444d9d5d440ea59b289369ef3c15a6b81fe194f904e8e8bcd940402b154e9323702bd9654e8eb94f9f1ca3dd73a6d0267b17915b898dce91bca1dc229b23a92cc564ca8a74a8f790d20f1fbea35595e2d906b132fa1e38599e34841e458ae8fcdc6071ab4c628d118dc8f31e47152ae8aa3369c6a68cb88932c626e6d7554ff57411b9aecbd4478e53b3519e87ac4a524431785554c61bc3b60bc9856d17918b3c699363f64ab1a9f334e3f14a4d6c9229ae31cc5e34ab235293bb8baa9f53edff242bd613823c013a4d36577d051672b4894da73c60f0df4301df637f8f213d62c8e3481e33fcffa504cacf15e484329c50c5093f7fa272d19c2e3cee48c9b36f7de1b1051e28191c3c649a30c73faa09657c79e634818ada9b80525956135c7c98b005137ce02b9109364b40e3bfa2fc745a4216750955fe6b3fda4b48b204971a939b32d71d58ac3bee403d2ae88e26ff77b8584a80c27f94f0c4577ca3841f142b610049b8230958fe39cd4d1286f87f5227e1e7ab9984157ea6e6745f3434a20ccdcee40e8204eae58df904f501329fec8d2ec128fed1e91150ca7b501d37c129563264926936757a2779f06e82f21c345a9aa002123e40c717ff7454800e23e8e8e92619ea8df21cf6148773a0314795553947933982fcff11e6288ff00547e1ad23547184a16a53af53ed2867a32ef1ffa88e9b681d5d7212ef546519618e9fe2c3558d5002230c71a2d1e4141f4ea811ae38d488438a380ef0d524372a457549aac40be5a408737c11b2f8221c1521491152d509071a0f87155f513850b5f31e3890a43463795d3857ed654779bf094acd4d66539340403c7da7dc7ce2c30870fcff1022f0432ab19eface24c61c15af13475d2327c752355e3cbdfa90894f2679b571fe5fa6b1a80d9a17927672279bab6eb1f1c6ff8b37574d6136b0f8534544d73c870d1ffe473630141b3ffeff42f9b80618ff17aa8f6b54592389b586150430be07a14a107e3e08d71c5fd5d8e24b9c763eaa915a02e5478d243f8e69ccf1ffa88aa761833412f0352895f634ae7f202801085d0021e3366a63376a7ae7efbb494c506f99b8b538626eb31ba66ff86d3d42a1941488336eec72d6e3b839ec6e51d329c1fb69a3e6ba4e1cbf6dfb3411f87119ceb67c37f113b7c518d5d9cffe007258a76d5a968998e3b8ee5a5467353eb34a82d7db386ed49b78314fdbdd75200ae476f6ba0d133dbc8d79eb3654675334fc980c815ad69cf66d9df5440cb357e4948ca06833366eb1eb440e6bb1f3509d0def920d62f8669c1ef3b61a13edb8519d2d313aa4f1792dbad3255f9a1a3d0d7e1af661ace96dc4b651b322aab31aa70ad3d4d86550c336ecf3c62ed323c6619b519dd564b8cf55ba326f6a5d9938eb110a4111e4bceecb18b31a7f9cf6e98dea6c4c1093184f1513b41383ee54a7d68de6d4aa3779f25c6baf15dd2919ea8b59343d3392151cbe9c403d66ced3b66dc377c376974d1e9625cedfcea68fb984f3fac94d21a8e92de332c6711bbe16dfabe91c00c4d977efa6b5aedb3a0e6b9b66159a02d9235440cef3468ddb30ab33afbb78e37a84c21e7c00f7f6ac277219bb9ae7651e4675d6dc65b843ed6e3b9365df70a68058c65ba7617bb76f13b1eca13adb8540dbe12fbbdcb662b6c7bd31aab368eaf58cde683da358d3240fbf1ea150eb01d4dbe6b66f6f1d763d6ec31c9a76500a68b1bcb1f1e3460c6359773be86a3d4221932820d66519c75d51fb3666b7fd509ddd7679aa8230dbd1eda5a931330205dcb8adcbdc96b371e3bcbb65432a712ba9b556aeeb110ac927e0a7b711671ab6e971df0ff382c04d6356eb320dd3b09dc52da23adb89f03ec3740f7d394020be57dc1bd6f98abbe3c611d5d9bdd13434c930ecfcf42cb7874c8c862689c35024cadbed110a799c809fa6dd0f6fdccd442ed3acc50c00e2ec6519dbf6e37637ee8cb3fb036eaed356ec46317b59d6f6cdd75a1ff06a8d3151133591dbf91befe7f5801cb6b7de361167e3266a7b519dd5dcc403da116f3bebb80ebb1a7359d47c07c4aeb696cb63bedff6462eb3180f20b7b5f6b086c7ac472ddb3e5467b35b0010c376e689577f57d4f2feb86bad0ea8b99c69bdd96dccc42d6a1baab31b4d13f06ee3d51dced6cba2be5fce2c77998019bbdea8752397ed9c7587a13a7b725463df12f0b31ebefa72db1d452b661daab37aa318d53ddb8160b68d9bdbb6718bf8b3daa6797aaf112560b7e1ef661ab6655a67ef67519dd5210714b76e14b36c6fe2a87ddcd7a13a9b775188ea9de570402c63df1ebb4ef36e67edfd509ddd262f73588a38e5298e9ef69a6e404f7779cc9a976d5a1671f78d230fbf9d24e0a7613d6aa398e92b66ec759c0e01c0aec376d49dbd5ad77d9e1d519d0d336b2d67f32eca7c6c404ee70febcf6a6cb3163f0fd5d92d4d8dd90090809fe87197cb1ede466ce33cef0898470dbbdad3dc87b7a67d1caab3284665cc46310266baebc69c7dd9ce444f5b8cea2c9af6f08b096212b353128dd2719454958a59e224067b6202350cc39a97656edcdf15515d757276e703b14de38c61bc7d9c673dac519d35e2e85088eaa4498ef67ae0a87916dbe2b62dd6699e87a13a5b846e7bbb98202631373139314131413b31794331c24ebe1e3ad0e64dfcc6efd3da7a3b8f9936492353c5cdd0b3260edc98d630bb8d1afeacdebc2c268849cccd54281f57b8ac696aac31d855c594678a8c09da8909ef76a6c82ca532b3343566e2068a5ed78dd7e6ec76dca8651bd559cf761a98793b6fcc765b37ea0f6b23aab3696a0c874c92e8db28cf5a8f508865a0dda3b66d87f598bf31db465467c3ce765b8f50e8dd14e761a9d1305cc18601c0d0225b876957a161f8429da9b9678ae78e26003b0c11b1212f679891b1e12eda252f711882bbce3a0c4000029089d9bb8739e8c053ac430e3242ac90cbc6e0a04d1c6e54bb01675ecad8105e35048086cb391aea4d240037b444dc76cfbc67b03a04192283ae2186191886869468ac1bea00b3da4437bcf41a5c6c0e0020f2828c0b361cd202d10584dbeec582dda81a56185355989a247a86b993291b7ea8704372dc39a460c3dd674001c5bbcc210d3ebc6b43f16ad1b8f0881ba521ca861ea91b48364c8f760d2f030e6488811aa49dc2a60f1964d0c40f205f833cbeb84902879d2f71404a12205f0327e071f32524e6f812124ef8d21517be7425c897aedcf0a52b44be7485fbd2159c2f5de9f97f175a28a5dd97a6e85f4ac1152e147cb4f4f89b9215d597ac2cf1252b38f87f19dec80064f84a456cf1a52266f0a52a307ca9cacf97aaf02f5581e24b5556f0a52a40f852153bbe64a5862f5979f2ff25ed5db868e2c24511901f3858fe056707ef6294054e1b29bcf08cf12f3c31f8171e1bb8f06204f52f46b88b0a2f3f5e4c491ec6f403630a1fc6643e8c29010f637ac0c3989a781813150f6302c1c3985400639ac1c39874f030a6351ec694e5618cfcc31861e1618cc0f03046060063a400a89cffc779520e6ffd70e10546092c1e4689153c8c1235781825d6781825e0781825f0789825567818233d3c8c91ef5fa2704005d20a28905e5678e105484905cba6be654380b76c7c2c1bfc960d02deb2b1f2960d136fd974e02d1b2edeb219c3b2b1c15b366ebc6593e52d1b26fcff0b301fc0e30917171688788b0527de62a18ab75828c15b2c88f1160b36b0218517165ecca8e35fce60e15fce18f22f6714f99733b67f3923e75fce08fa9733f019e6bf9ca1807f392302ff728605fee50c0efccb1922f89733b838238cff5781051580ac00e58e7f81f2847f89b2c2bf44b1fe250a0eff12a5c8bf44f9fe254a927f89a2e45fa2f8fc4b9403fc4b94d4bf4441c0bf4471c0bf4441e25fa23cf12f5138f02f5142d0c20a302cb80024e86180f8f03040500f03a43f0c10211e0688110f038489870132c5c300b1e2618068f13040ca78182039781820693c0c10223c0c90253c4c0b290481c18af62f5674fec50afe172b3ffc8b9505fc8059c014300b38c1ff0359e105c8917f01c2e44b18b8e35f8038f9172053fe05c808a4e8851f16cc8b1c35ff22c7917f91c3e75fe4a0f202c4fc173950ff220702fe458e2bff224706fe458e12fc8b1c63fc8b1c36f8ff167ef850e3617c74e0617cc4f1303eea781814480f83820bff6fb9c0c8b4f03032383c8ccc36c30b761ee605a78779c1ca85172d8efc8b163a2f2730c1bf6841e55fb418fa172dfabf68c180172d28f02f5a48f1ff2b6041bd0b1620de054b10ef82c501ef824502ef82050a00acf083851f2bbc2094e45d847ade4588cabb088def22c4df454888771122e25d8428f02e4216701102c1bb0879f12e4263bc8b500dde45488dff878191c18d7fcb0d98b7dc10c05b6e686fb9b1e4ad2142b801c45b6e547109c00b005c5c28cde002c300e8c0e3ad2c32bc9565c85b5992bc9505e8ad2c446f6519e2ad2c54bc95a58bb7b29cf156961dbc95258eb7b238e15dae68e35daec862d511e4ad3a7678ab0eefad3aa4bc5547f9961b52deaa8388b7eaa0e2ad3ab278ab8e30deaa23076fd5b184b7ecc0e1612c27f278eb091dde7a627beb899eb79ec0ff2f030c961c10784b0e29de92e3046fc961c65b7200c125c891b782ecbc1544ca5b41c4b782f4b78210f15610265e0000c40520a520330ce1796b48f8d690f3ad2142bc3524026f0d99e2ad2120786b08176f0d79c1c3c4618535e4066f0d81e3ad2176bc25d3e34b53f4b76462784b66c85b32dc5b323d6fc9906fc934e04b4674e04b46f8e04b47b47ce9081bbe7404922f1d01e54b4748e088107cc90804fc3f17809f41080c3bb4d0420b2fa00003248b77313ac19732e0c2bb1885f12e463778172335dec5088e77314ac2bb1ca9f02e4730bccbd1f52e4744dee5a87b972325ef72e4e45d8ea2bccb117f972306bccb919577395a22880b174dde858ba277e1e2008f83101a6ea8018701e880c307b078eb035bbcf5011dbcf50124bc7505cc5b57d8b7aed879eb0ad45b5740e0ad2baa78eb0a31deba228db7aec8e32d2c02f0161649dec2e2006f61c180b7b088e22d2cbcf87f00c0008038acc883fb92141578983c940071c182e2c9bf4071fa17288cfe050a22fe058a26fe050a0ffc3f0b405c70f9165ee2381f268e201e260e073c4c1c13789836a088e38938ac78172c547898384cf02e421c789838c078983868e002232486172c33b0b7ccb879cb0c03bc65c6d05b66acde3283026f994182b7cc788165461a6f99618487898306ff0f038036621ea60d240fd30694876903f5306d183d4c1b463c4c1b503c4c1b1d7898364a0080162cb10e1658c8ff569ee1adacc35bd9be958d7849fe6bb8fe5f70f957e10789052d5801a0838a77a1038b77a1c38b77a14306ef424711de250b0a5f9a22045f9a62045f9aa28b2f4d61c6ffb7b80c49f22e98e95db025ef8201b5e0c28f4fe17df4b880172630a53a363a423a028b9db0c41dadfd86255c81e5031860a28b981e2cf4d8b9a20893b6b9cb178cb689c29404983ed0d020b14172cd1c6952261df78ec909ea938e7be7baaecbf40101d79126c3d4125e50060a5c1881c466dc250a56901cd9e13277d922822862f8f7e1430a3c48bbbe9020b932da7fb0cbc6071a5598e02a5531c4ff65324dc0087bd58ce5ae7b48ef1e092875608cef214827e7e6e726e73a721d69b207a6ea800edfd15ae4c4a9227ba3a958e4dfc70b3de6f0e1c6fb58e37dece00c94f7e740f7af9393f5cc64ba45766c20ff6726d32dba504ca6ac48eb6450fe7db890c993a7a88e51ff3e5a4865297c34756cfe7d0061818fa64e5fc1c6dc3b4798e7dfc78f201b73efec14eec13c7c34757ca8b053d82c4bd5929dc23dbb2c553c4a89b712de936e9e94f7f4bd971065bea337be404aa6c813a4e003051f3e3e5a7a907cfc7f8b1636475a9e8053ac5bf270021374139126e7c93ad9718850be6485a3cd9df61d85679e79144d861be5a88e734c92e794c4d13aa97ca449f389de363334372b4b554f2f553d931c4a7a93e2e6d6296e9a1815b451ce9392e613701791437ba7c46426b5aa00bb9b9b248356e60d4ee1aee2e11699240f7a9b4fca52b504e3f0a052c44d82208152949f1c359ff020bd4b12f31e90f3a013a341e6937da636ba9b5829574a264593b249e1a474523c29bd6f5d925174494629cb9bd1a72c6f744946b13155a3c97b744e9a6fa870d6a3a269f3c9d10e17edb57ea1b5b603410f0c805b779c3762a3e669fc5d0deb4105d8edac61d1d3d9f634cb79d85ba2c705c04fdc99f6468dcb324d13b1acf70885688f29c08b357cb96eefcc4a016e3adb30b7b51db9f1dabba300330ddf4cd430cc6537db30cf022077c79cc5bc3d9ce9eecb2a008a7b13bd0e6b9cc7fb699c8502dc1773e397339db72c7a1b7e02f42e1e3571db302ec3b04ddc4e80db3662e3b869df98719bf735016e77cbbc31e36ce4f4a7651e13e0dd5d676fd679da8a9cc5b82540fb598c456f1339eecb3adc29018af6f3eed572368ed966fb26018adc78f71dbf2cd3b4d6444b0150bcdd27ee8c615d8771fa8e57408d715c87655eb7477cf5b79100bdacfbb86fccbcec759ea7f50440cc8a1a8b1a87e5eee3b2cf4a00fc2ebed65a716b796b5f170150dc2287f3cd3026defb89fa0850d4585b6de3b80ee3ac683123400e1b37f665f7e2adfb382e5b01334dc374de2366adc759d15601b16e674f7f9887ad8879f82b02c45ae65d2c67e3c5ba6b3f08801bd76d57143b4eeb72e789d803c0cddb306cb39edd7afbecb64480dc8745dc8dd8f52ee665de760078b7763d4ecc324cfc34c7650d00359ce16deb3a6b77a6715b6600683d31cb448ec37ad438775d8f21c06ce33c5114396cf5c88ddbf60450ebb6e6b6cc66f66ebc6d9607b8610ddbae1e394e146dc69c13c04e771897618cedecbb22c6788059e6b2edf3f4a76f367e1c4eb192f43601dc5e763127e68d1335718fd8d6310114b30f5b6cb41be6b4b6e1b1d6ba04f08a765f0edbe2f5f4a78977d3ec15d21de078adc77d571cc58dd3aec66addee1324258099c7e171d4d613b1fce10d7fa1d56c12404f7f19c7ddab3f4ccb79cba691cfc7d9017e9ede30ad73f7693bdeddd5fa8516b3a4294875801d96e94f6f9be6b00ddb31a33a9be2f066aad0de24a42ca01eb5d65fb779581433a78dd90f243a406fc3348b3b2eebc611e72e4b39945a77ca8b6a459190007a98e5aec6f29669d9375ebc95a43940cc665914f7a82fde3e4cb34700efd563866d6fdc6cc6f4dd360a90e4003dafdbd91377de32ed719d566bad5e68b7be1901c4b2abed2b7ed867b911fbec8f9398989f9d18ae6f768b360e101bb56839ad356ef3f467b1ad08a0d661b7ebec376a160e507f57f4b8b1d39cc8619ca70561363d493463d6442202288ee2b72fce5bdc23b6a34675f60d306ff9629aee3e2ebba2b679deb540df16399a768eeb110a3d921ba0c689d96edbc5f6b8338d1bc3b04728aca421801af6c40edfec1bb5eddb6e568e9b10408ceb446e634c6759e78d1743757688975913521b60966de3c7d9adcb2e1ebb3dc4778686f8cec97b6a1de2a5c606e87999f865d8c398a6bb8d33aab318c6d971e37a84c218d21a20f672b669d9de4411672cf3509d0d0288899ea7bdab75a238da6ed3509dd59805da4a6aad6126d3932ccb7d53eb36c971c4b5d6ca6d97c84a415203bc99f5462ecbf0d623e7891bd5d98d6215109d5b727348698058de78d4f0366e3adb8c392080d6db3eabedd1bb19d5d91d04f97596bb47980dadc52cb75d22ed0720f6f697799bd5442cefcb89a8ce7e3e00b12dda0ddfdbe111c35d86cb122fb1d608a3d9d70330d35896f7988dde96efed2c50ad970720c6e1f1e6ab711ef77d9fa671df0ec04dfcc64db35b1cf588653c769e112434c0bbe96db3cd36e671f87ab90bed8aa4033073fb665c763bbcc50f7f370760c75d6c6f567b62b6c54dd41b12241c805a5f8b8d3b13c7318f76b43700f7bd98e6b44c671c1eb3e6509d253be9d95e92a90a09c906e0e65d0e8bdede5dc6ddd88db59a9c4c6b9077c6dc97bbed6e2f09120dc00deb8d7dd9d319d769e2276a1b11090b988dbad37a13c56d73a2edb20648330033317f9bdbe2e5b4a67ddaadb57aa1e5523bedab2b03d0fbb2ce469b7d1b13f786d91e31eb362c06e0e761fce53d5e7cb7e6b0a7b52eb40a20c100ecb4b7dd9cddbc35eeeaef03827406e8691ab77d1cb6f3367ea3d79901daadbd0fdb4d679c88ddfda9529c02d59a3b99aab556cc86367732a5711c08482f0047bc715b86c54e8bf766dfaeb57ed811a432c0cc13c711c376f6ba9d619d0b404d5b6cc332bc619be5b09cf1d1d4f19820b500ccf4a6bb2edb36517f4d90c800f1277e3bdbe2febc2e6f1b461a03bcdee636eed372b6d8c55029fed150293eb5557ac500bd9b8956fbba4ee4c6d1e3a3d957f8a7d65acf5590175a9204482c0073367e1fb775b8db3e6fdbcfda90c200b18fb35f67bb3d66ec13b30cd5d96b3d30402bdeec7e5af6655b96bd8f3b39aaa4d693a35aa358c56408d20ac00c1b31bc69dbc5c6bcb9bda900dc3713b34fc4326de3fd69390560d6bc2ee7717f59b76d98dd43d90ce90bf08ef87e633676f9eb36c76da8ce0ed95be22c88e4057837edc3d7769c68519d1d22c5cc5e6b6d17a0cdf9b3a3b875198f1ca7711d27c3b36f3d4221111217e0d87977e7cc6ae3b558bedd46b5982026a7a953eb16e0e879d9d31adbd88e7acb32cefd7a84c2204828003b8e13477c3b6f13bb6d314c0b50dcf9e6b1137797655a77c5138058db5a5b2fd3f2d69b134554673f9d989c98a0144797e47d02d51af4f50885a407904c006698b7e54de3b29b89d96e3647e38eb85190e7f5088545a412805e863fcd7979d470fe38ed61941613c42406adb57a3d42214a2201983b8bf1f86558db70a63d8bea6c68af97d911805fc6e5cb7d167319c66d8ba56c3d42a110290b10fbc64dfcacb839dd6d2b8a241180d713edfdf2bd23b6ed2dd3301b5a0f03a41080da9875d9e765dcb5196fbb1bb79334e38a45800402507b9fc5701ef368bdad7f6a45f9596bf86d687a52216101669e88b371b459ec3c2d8a17d5599e865bf36c82b5d630dcbe7009d215a0c87538d336ce6676e4446c247d00c462e7d9fb699dfe70cec48cea6c8aa3a3566bde457affd41a13b41393e2e8925aaf0d770aa3a3e6019207408ed3b277f586650fe372d6d55aeb104e6b45b7e6ac00bbed7dbacbf0f7615a632cab02dcbc8ed33c71c49d15eda6454d87d401d0e3c6edeb324ddf3de22e7b1c00c5ebdd3b627a7f7ae3bc9d6d00ecb2cfd332c7ed6c452d7a9e06c04f14bf9bc531e346cf5a4dcc00a86d1bd6c48be96dbb9df76d0c805ae674663b316b59db5987a900eda65dec6a797fdbcbece52e006a19b7b7c76d9c16f715ad87ea2c103b4cf31613c424060810d75a6bad5e8f50a8224d016a9ea7452cb3f6db468bf2225c8ee11059969bbb4e34cbd314fda40047bdbd2ebb168b1a1b39320c5314887e6d4c10938e34015214e0c6692d5b9ced311bf5ce2eaab3a52a95952a9e5a6bad55e354b5d65aab677b8442520d481600f5a8c7afb336636cfb3286519d25ba46fcdca4902a006e3a6b9a98e9dc7976fbf4c753cf6ea0a671aaacc424ba3ba7cd6e0a090a505fac8d19c39add57771a4675f6888b2151c6a5f8ed3215559deb110a65484f80f7c3ecf76d9dddb066f3b6a13a8b5d200ec525ce9d23da25d6bb085565cef608853c242740acd3c4adbbee6e6fb39ff6d55a2ba909b0cb3c4fdb32c6306cfb6cde9800bff1cbf2fe366cd344ac775e02cc59c656ef0dbbdc68b36ceb110a9d909400b576f1b765a3eeaeb6eddce1f8404a02c4aeceb22f8f16dbc47b450a801b6b4fe43c71eb9bb12c9347bb09ba8df8ce014857403c6edfb61b87e12cdbdabe1a4742021cc7b1cbf6ebb4b77dddd65954678db699a11b084d81acedd0b47fa40980e3d77d58b656bc9bdef4385a4c9200c8d96dfc3aef5e6dd45be761a9d0dc65675727cf9bd59b2a262846dc5431dfdda4088099bba3bd63b6a2c61bb73d8c3a02c4f2b55bec2eb66d18cb1a1613c424e648eb0c99d849adb5f693dbae4728d42423c0cbe9ceb356f334bd656c7f9b15f0669ccdd8a7b9aebb5967fc91aa801ad6a3cd189739dc65fa5a8ba69d540478bfeccbbe4ed3b48ccbb096a1bab093d77e240880ded8899c873f3d6217eb380dd5592edca98d3a313ab4d96bbb8df25c00d203400f735df76d1dbe18d6d9ebdded928800b34edbb0ac5d9d759bc657233900d4dcd865d8f8755a976f8737aab3611686432a716bee921a006e6bef883fac751eb7332da33acb53930c354e156a56233100cc1a8f1a877998b559b63beb5d9b9186003511639b77f1d6f076add6a13abba51bc8f316006a4fdc5da7699d368adb873f0580dbf8692b5e716b1d76bd0c4b00a87959be566f98dbb277b52804988d632766a3b7e9ad69b7c30800b5ad317cb54c7b3a7b9bdb518200b59779a3b7e18d6dddf669df8dc63fb57a5c8f5038b40247bcd92b6eccea2f7f59ee8e40ce6a4c77d9e33e6c14b1678d402d8aa3deb0b1d3aee8755944757685cb6c2b02bd2d8b7b6bb613c5ed6d91fb3015b85d6ecb9a1eb1cdb40e1bbdcca6a0e86119fb3a9c75cee266bf8ceb110a7de8e0eeb2cc66ddb6a3b8652b76b596e5ceb56e14b5b7829f1eb9eecb1bfe384fd4ee4ea9cc2c0402fc6eb7bd4ebc223676d9a7e91d04d99fd4cad11d84c9cd5a532a93eb110ac513b4e29761bbb9acb3df77f1b7e570d0cb63abcaa8b453a9853dc9143222000060d30000f31000303024188cc6e311995834a1c60f1400025b9a5eb6704497a85994530819430c01100000000000009360427b483ab5f902c31879a24f61bd0c72c9c9e09789d8ea29b55ec7c0eb9834a663388ea7e35d1803170bfd03ad702e4958c304abb68cab920e64b0bf638c9663c578f063d5a9520ce82e863df4d9f7f69af55698f74a58f5dc64d3db6bb2b7c2a057c2b0e762df4363d65b61de2b61d573b1e9a131d95b99416faf616f857daf8459cfc5bc87c6aab7329bde5e93bd1506bd12863d17fb1e1ab3de0af35ee9aa3d1723b087c6a8aa7a75b12eb184292097ad6b285092a274837eb9315757742034f0a8c1dd4c9f689b485dc61a587e27c0ff81ed321023dcb50113bfde780ee2a70279614c727342fc422c81072437e8d1025785fb7ed18bde1cf5c72971d85c22937d6286b469a4dc08224a1a7cc48f63b5983ef21f85077a110e9cee20aa02c0d89067ccb3c6ba0dfba46a241cbaf4be5d89996dce8576408ef0ffb216516bdbdbdc674e2f94df1ce7e3350d345a5999300a5a3f145fa4322f2144123358c2040dd60dd109e587177cc04849a38bb9525a076153e25d6e27b0bbf898ba362398badac386777f4afebbc0dfdc55ac7b3c4056070882f820f498cc749a05767b612b245b4263f2d82bed41228a1dc9130074cd30bcc0f791e9da3f9f94615fb169108f1f95c5b9f570e98cc3a0d1c57f9aafc63e05a03c86bc3f7114a5e3fc056890ef11e6f24a556219ac7a3afc1a6632e10b0fa560d4922c7af45dda3ae0a7005d6603deb42d6d7f22a877e316513bda4ca6381d2755155dc072990ca72e858d23aaf14cbcc53905f094ac7e690a874ebbbfa3cf64669d5362886593f626757ca2b3b5eabc9d9736e0364a023f1c93ee51167a1b026620996f912b57da7914fe700761c6497cd45de9eab057bddeb5d66f3d203d031886b541ed95800bf5c3b5fd024a3932c5cc488ea2a6531a00a66057ca0b9bf418e19bddffcc9b992472622dcba5bdf4502f1963cd1cc3451f58ecd539c39ae1d265f408d91d8999ededc5cba754380a8032c7ba98f565dfb0601de8c684b16b6229d5c540fbb969c2d77c03759291975af6839ae892d26b042e3ec342d85ffa91396cd5dbc6ef93c20d40038c3933c4b91baa42ca327243bd62442b4da4213a09557b37ed7ebf0dbdb48cd8c558b99f7e93317246f12bc969bf59812e20e5b3964af086de529d2e84794ada6e6082cfc25077bad2f5c66eda41a462bf5175bd1896eca61c8c7864bd3ce1c98614fca2614602ddb47b91c1995f7a17b35f2e837660a17a2aff715232493557327058f9c55c4d5c01b90f220b0dfe96174fb4832c61c8f7ff51b2958c9764ffe15f8287e06d9867bb4e3cf50f92710bc844f60469b060774969e27ce4c8d233c450d70943b31ffe8fe94c197d5d6a6b4c78c0cd1e61ca629b55ce6600cfb72002ac44ae98de7f4b4f1085c90b84a768614901096892195db45258acba971ad70a9d1be5449d9ac556765681752b7a2430af5c67423b2ac5627bd1a87e7a034bc2fbc9270af4393c7116b8134c4703c0267d686413ea5455d136fcc87612cef23326df42225e1d6c7121dec15f4a5d31122ef2f78fef5906eb14acc2ec30192e52f90193140444612d57f62698386944925af8e671098bb440d3bde4628a345c89fc5f745802314478777f31bca41537774b4575324908744f452ae90dfd55d2e93650b4aba76a8ae81683c9de3b0c4ab05303d2fae59eeb4936fc0b6525b8f44d6d0338701c60bdd700feab178e04ebf805aca3534d741dde16170f7fdba63d623dfb6ecf1b24840168cf6b52369a89c2450d5519d51257bc138acd4d9a4ce629f51af6fca11302f16307e1726f98bc0279924fdc2134c6de16fb041f09b1a5f68b206b47101a65cc117788cd2c55ab62e1d9fdbd5df5e413a4e984eb91120d7aedc7dc987f53174ed71b22ab797d37da94f0ec04ad8facc978e67e7c70bcc1677fc060c7841a43516d0ed24a346d22c21a00249cd9d3125e453e6bd3a05354b5f47eaf5e363ae2e72f835b56e5148e748bc3c0579388ce2e4a47989895a8f0e696cd054fabdf61702bb11b72d0206bc913e02f0afdb187dfa68c41341a557810fe595b8495ad02a72c40de20bffc3b8092374ac2a16316e6a2fdf6842383011a7dcaa649c58c1680bd9ee8faf32b2c123255f7c50680ae72c55540472ba2aff4d14b6ae8ae36151d7d8ac2111a8e8884147477f66a4523eb44c69d5097f04729d3b3a0055182ab20fdcf5f22ada6c5965ceb4fa536b8c1effacc6ca54591b47a73091e0a286f49a9b9a1192d843ea962fe4def275a7fc9cfd211561ee6c97040d22524b076fe9a74f32dec8e192be897ac0914ddbeec62f89cac5de80a3e267bc3b9a1c95c25c62f5d78abdfdf858e3d44c053a56a46315eb818b97addcd5bcab8da1c3afa0d70f4354b48dcc4790217992d2b162f5d44db9cad41a1bc540ff1e80a72d3a923609d8e9218ed2e70c821b5532188d8d12b3e66bd8bab698a526ff0e4e04542bfae0e728ab4b3e3faf1214ea4d82e4d9d095ac5b38fa25079a2deba11c84055fbaa0e3a88bd357ebb1c89ac4bfdd3e73729c9a71e05edeb62ca01e6988f1206968f5af4edb3c98678b82e98a2ab47a123e3f947d3841810742eb2b6e4605fe7283c4e337baa2f972f73345d1eb4ad182872e2b35864fa0bbd06727225727c7c7c48b7a22e2a41f519fa5e90539fff384f021265280f4da1c047216d64f477270c7bfde8392338fd2d1d3f2a2a918fed228bb6888c2aec05b919702da2f55b40f5496a11280d0340f9cf27598385cd9c2974913b8e4df500397d60547a7614bd142b2dda117e778861e601948558bd976cf1707a0446aa73ec37a5bf0108acee0a35aa48d3a9c73235049a402fd5a11d4d23ee3af263c8f78e26baf2d3e4c0d91011cdb52d93e02eac8ac737ee9f7c2e67ebfdcccdc216a6f45afa5d601258eca5c2aa9b3a44bbe48207deec4996c7fc808d597dec588c067e486c8d2aeade98e0591a2685565d465d654b9a6651741272c5375f1c53ad14fcbdc94d0313282294a58d5c06b4e059fe29870bfc27daad52dfeadd64d968039165e5c17efe7bea248dbfbec6de31419a42d892e9f5af5cddb70b7928bd4df1bf685fcab217cd52df403e767806d77bec8f0a727578050890ec86d16affc0acb441a9f18e28c082dd8b3b56e24f9351706452b8c03f9a470079376794f8d449017ba1ea9052a03cd79f66ed5deef8912269ec2698d4fe413a38791460bf27297103b0c450c635db5e37eed6efc01cb695e6900824c78f004ef57e11e74314b341ddce4944a3d19fc19a35990e17a25f52555f5a927d916134e5f154c0d7f5864d5fdee26c4b2729cbe2f4ef16bcdd120b45ed7112b400ffffe705abf5dab50e22c692d9a415ef9793b99f0eea86535f9fa112d868d37cca12ac0d845f160db3643e2fc51a4c10e5e49ac3a5d53fb05e34bdc83f78969ecabb1e8051d94aa9a73830455bb541cab808df4a37b20be70c15939cfc42bfb064a6a8fb078430d9012ee24d574f6db8ba3e8755aeaddc2e86aa8eb9065003a82ae290518240f02613e0ee3e58cd10239cd76f9c4177d38679a9fdf476580af84fafd34e4c95f326b086997b6e0d1e01d904ae916ce809bae2de19a71b47856d6da08dfc7e7ce7f8b64024a4bf2437aee6aead52f5ce59ed06293fd74c8a868fe0af118e23543fb79693a8df54bf06bbf01dacb713f8424b570919cbc07262ccfd894763889e39458eff31d2a41bde693a4071c6188ee13e8e12f01dc4cb5cb98fd11337ff60b4c25394014b64c49195979e33b5cc1470c81b96cd860b8468468bff47be850fe707804082163eae47dc481c4c0d3c12219a106f33366ea9ceccb23740017aa74957ca1fdcde196cf2845917582b6612d067a0d55066ec26346a43220ddbe7eb3591c41339e0c72416ea83b6b8120397b82a5388e652822d01504333cb4414b901093c6494511a33ac603d955c374301ca3a1701ff690f43da3aa76e717db08032ce97f129ff0d9788c93317a3c53104b211d7e02219cd7c0097f01c46c90404584f6044f27d88e840d63157eff3148b3a512124651a063bb08572e424610ca4afadb8bffb5a8083adfe3aa0aa3200bc8a289dbcdad406b92784635ad672c4c704f18e3d89154091648052ca7a39b909e0e60b97d61ba73311a8d8bcca26c2a90ffcab06e901d0a2b8d00978a3a1b7e728089dfccf210b401ebcda67185fd417fd602d95c2e22d1c43a605303466b290dfe015a5317de41d5d4f5b4bc5715122ed619cfb34d8fced23a3c005d1ff9340783809dc6feee2a164aeda0f39a37d7cf53e95a829206d7f7bc394e3482ad4bbb222bd88fdff8d717b53c769f4b76fd1bdc5355e8dd5bac33d018e9b5227cf12708c9fdc110323d3ca857614bffb15f8adf2771e69ec0f5820aedbf8aae73758261e81b784fb6e30fc291513deb32a96eae5f80d8e188c338cc067d257d7f077b4eaf05ddcb4dc98ea3c44a3ff058af592a01feea7e7096186f77e1962c2bacba52e57b6f430e0c4760f1d9effc4ab13c1cd1498ff65035a630648c245053e064dbd75f6597d62fc27cdcb14fff1f1ed5d7dc11fb83195f095bcde2f83c36017fff2c016ea8ce4255dff94b7fabbb6df5a32593c50ea3bc7a19fccb3939d64907f83fda9ff235e181ea5f5d8f2c6181875f74b696feafd624c03b6310c19a496f46b25e93f1a9dad7c2f5669beb52807747c8283f753bf7afca1303e89fadb4e8f4d37d887d127ba4ff1e0cd79f0df9fe0fc49abbdcebeebc7f64c052f9b3877fb26e337af1f762f43b92b79b2b464ac3da4e32f8add45b73a1a91cc0d71222f0c4e2a57d7e215e07f356c6be72d4caa4efff8f27fa9b9aca4b737b7895b3e78a1f73554f3b36e3d58c2c43d452a9be26506cec4bae3e78b221c3d8e7c8e3385562b727efa5fa3efcf05dbfda689d90601e4fba6f1e90533a2ae9ac3697644732d6ffe0fc01bac26b3b0fabfc6d92749c7f5e1726a3d6ecac3e4f75dd6f3260dcc7fbce425b7ff5fee8ae3dadefdcb74387aeaf72c79ff05ded1f954dbdd083c153d15d4973baee95d45014af3a5c3dd1fb59b9adf24f8a7298cf75771b8b00794a4b5f9c0b17843d9a10f83ef5c7ae82c8e7e3fc8a5cfc7587e37703955c10dbdbd04d1ce1d7ba201be8f20927ef11db87a2b126af8b34b2c8a0fd18bccb1fb157a619daf7a80337793af7f99185f95fa9f540f7639d6dec1cdd196f05cee81b5fcb2bbc4bec0fcbdbbe25bdee38bee9a977e8352a450b16f6c4c05842272983aa696ad8bae93de045c723bdd69cb15bb1a4f415c078637815e1bfab3ac35d2ad06023d6489c2671dd5ee3ac002efdad67e311ceea7951cf2f865d6c84c32ddfd44e0277149e0d7f8eee21413abdd3fc549119f0afe70f063f0f86fdf32efe1dbc498c8b6390182d107c412dfefa2285f48a8a1dec6519011d97091d957d42ea24c34a746f4191139352e6c65e5f290196777b7b380bf0d4db5937bfaf632b04b0f62d0dfda27c2a3408e648616975d8b437e30f825f28e0482fdef8c77c5a8b77743f0e7ac1c646007de5dbe4e790a004a6f2596fdc19ab84fe811f82487c3796de511fe24f886f9953858f7bbfaf82cb95f98d97ca359e4070f68cb2cebbc344677d11cb2307a8fcc8c93e32181261671ec6945699fb57d04ec0e91b0891045f655991f01fd2013ddf636834eccd4fdb50d114d2c443f3e935faf201266ff7864cfdc4611ff0cca17eef577c1cd175e9f3266abf96c8102153f1dabd59ed8f55f3f69fccd609e04dcbd184e92cdebe3d2b0a8cdc1b8ad4451c3413afc08ccb8ff49fa84fa5b1c897f7fea24915ec08a175f6cd6a020ca29d69f362537c84db285a7edfc79f4091073057045c8390e0f24c8ab8a45ef27f9a14e5a7865c43272e53e23d455eb615cac26384ce92c0e908c67e9088ffb55d6d4a46c38b5e2a33d0d3cb46f3b0460f80d392b6c6dd4db413dc2c1d7cd362780d9863e992f3efbf51e38b9ec319ef62a3f236b928ae4d8d692ba38358a2d24a3765d20117c0fbf42f382ac3aa0e794c51a4758fe16dbe2784ba1b5226591da39d89a04e8ce51c7e74e13e28abddb167de5a670051814cbcbab0210f52b627785eb222c86fca957f03fc3e8108e3dbc2cf4bec7440839465af06a02e8a4b2c0b22e2cb3bd45291b38a8d2db50cb17961fb0fce4380fce3a057d87fcb2438a0b3f4d411709a670355fd40e2565a35b80013a9a4e601d6f353e9c0a6796c2c764f8b990e98202cfefcf119857e1e31b38b4f5bfc9a8df376faf422dd919e15b78cdb3cf4387e7011249277d79568fc361157911074ca4dd9b68a05a5e503dbeb3775da0708a49599ef7c7d8c5dd165d0a880757b0044249e135ec8fc22264d341ce464da2f35e4356e4857e53debe5dbe4d225486052da4d51287a8fc63273b5a6bad8a878dd9d9561c0f6106c359083b8e64ccfc01c28d28072c0f4b857152ac3721683c3780f04fc2666c33edcb663deba4b00c1192fe8cfa1720aa95750e933baf158ebfb8db3bb4f17f8d2dad54c07d3f753b2fd3c619970c17d740f992271ac9ba274f1b3af474daaeb825286ec189ff491e0d100cead2e052a88add83e4f731129be6261afb467282ec3d5eaf574a6c4ef51594786f856da86be3ec3e599e272ea8cd8c001e0ed8c14ec84feb19987173aec2ab2519c21865c48ea857b8f73118ff15d3d05cfbedf4e567d8851a5c93949d2bb568b60b749c66c3192a722ddab737ba774efbc4c804e126d48ce483aa889d767e3764d25242330bc38da7b6817e707c56881cf40c619bbea781e1a56001c30e28f55f7015f28b91a92b93848c732b2f2c53c6820af94db83d38969743093053f2a576a30d837ae40dd6ca2edfb5b0ae6fa211d83a2f1d767608e49048486d620f21f2f922e68b000762654bd6a3b774597cbad79b62a3d69903c269b569ae138d8fe8cb0eaf650e53d546f73f070b4a3e8090198c0bb035c926e35bda4181af9ddabb9676f339802da57c2de70c0144a22e126082dfef1e91420373d261207f6f7414fcb5316a55cab1161c0482c6dd00f07a2d2b430c81f6ff912ffd9db81dc607a893c583c8ca2170b92a43e95a5f2e9771df8236fe820f3f48a5889923fec09b10c398079c98f8ab043bb8fc8d274761bd3c2c616089a7bb6cee20436deeb48d66c1cb06d813cc6efa8921b6c32f2910faa50cbd7a9808efe3e9238deab9653766ad29b9c7f89e8811259b56d2e7589d5a5cbbaa04ab8313a91293074f8dc23b58f46b2a6d6a576673ef3bf2e2445286f0b8fd36008e4ce724d1b90d647506c7ca249d4fe26f0f0aa3866f699b74e19558bce8e2f7c07640d1d34f3a91db72573790d2f37d08277ffb17b621c44acc63cf386059fd18e4e33d0ff48436ff0d8a4f68fca2b317c2cfa49efd48ae0f5e75494153cb816307fff847107bb197ad985deabe6b531292def44d0c3a977ee7537b44e31f4db31dc9df232058fb3741d6a7017b8ec643439e2229bf364d2402a1846fa3e6e5358da6805aee00f7659d3b4d43322dfe671ff81d51f11fa4a783b9b39889821815f15a2d3b2f512798e3be51eeecb7275b25137fcecdadeaa02d2c6c3349472d8e19560a25e7aa01107693c3748013fe94245dcb2e87572c02d5f608cb18b83213054353f6ffc1a8831f8236511107d4ade54e74de32f24a39a82d80c2991d7a7b9dc24266a41bdaee54a4316aa4208a01175e980e1f6b8e8274d67a2d10024ae1317cd0d97fbd214ab395d4aecae81028eacf9edd72bc374f24695d1c452319cfc3ffc232a9051f9e65d77b8952857b6abc6df29445f3797301131637fb0ac240bccda4778c7ed9aea8866a45847b387c292e9b1acdbb4bd8a16a4fa158a0183dfe6c4e6160b400ed493d428af089014686b46383615a529dd487676ef450d80ec3580e5c4a59985a4d697f0b7e18ed045b5843184a20698f1b90c432b9301a89d9885f2fc7b516ac21873292242d8131e788b8203856611b2fe3ed697fd2f4f25821eb9d889dcfe7a97e4ed024ecbd5e93416e81f7770bc7b3ce9d419bf1406388ea6dd5c9df5102823ba7c3539a24737a8f53f67616082c51dfd611a4588d3603455d84001661e6d027a4690173125e24bdca8ce12b081ec61c2bc9d4b2f5c0903cc0fe4ee63b97dbc332fbe662d77c3d19851e930a11607d41738e375770b543657b1a5bdc0bcb3bf0089d1c5dd7ec432f1e2cbddfd4c6c809e11ae64568f61895dfdcb8a74f692ea3adce6274d26173bdfbba0d0db8302f41890db0f7e4d2c633292c23d9c19947f7725c759dd90365e17855a1c22d4b14db3e71710c94d9fd5eaaed71d12d4dea8e5645144b000eef869c63e7cb4f4c2be34efa3b3a5f15b521140de6cf624a8c7b66dba89ff7b710fe99483dcfb5b8f1d21f452a884d4d93098b7f54a742d117f59209f7d73af983faacca7cdaf88e71f0f9374c8f0dfb43adb907b4ebce8bf0bdebf47e5561353020fad2898eb8ad0b91188db0244bd3e2148eed13ca18490de40691ed41bd4ce1c7388a4eb7e2c80828c23a7fd92e05ba2bcf8b519902477e51671a284d6707c249001f1d12a17b240618e03d3d0c380b6458be2d566ea295f39bacbb33c0dbf1d3dc75720cb733672399ab672c342ed00913af8b0f342efe9d9dd91199fe96920b240804e1a3061c1419505200101e31e8688101920088f40103470a0e2a0100240f1a75a06010090145f0c088834507900008c2478de41d058e810ca18fb23fd8ceef1ae7cb0704d1c7063b173850a200103c31d0690103120188e803034e0a1c2a0100441e1aeaa0c010090245e0c11087850e900008824f0d702864a04401207862a0d30206240210d107069c1438540200883c34d441812112048ac083210e0b1d200110049f1ae0740cbbecaa65056e73b689d116c06c66b13970adc4da20d544a21670c8b0faa2f9be95332309c21cd3770c7263e5d3a4042e5cfe6f9327d51a50da2161f3223b7d5f6f26328226e26f59e25509e7971b3c38fad0fa8eca32912c418eef3776f9b0f2e92402260cbf37c99f5acd29e790b0f390193daf361279c112ff9f2cf15681639769ca46aaa2284fa8ee9f7c4e9d341931b5b9241f2a0a34f6df2d7852e55469200d638f6b763d46d5e80638797d3060a0719d634efbe694042e74eef03041004c223e091ea1dfc6b44291ce461eb06a3d3d31003a1aff452dfe999b889611a62f3b7a12950d8910c7d1a62f8b630130bc8df04e5f1e502f3f023749ac7c561efc302915e98da3233f5f38898ba8ffcbe30283283c15826eee0f1079aa4e575efd0f8392ef5c11d8cb6cac58888693a18a103fff3c7f665e61c3f3c50960d2f65f310419bb3ef19da33423fdf427f7c759962d3f1726ae90d44899ba150ab9869bca363a7b9d8dcb718d8ef7aa68d04fe565003cd7b982859e9af3d643f6ffc2f7a19a77341d7a77ab0c0beda44a40f13bc8e0921305f2f3d03a5937c7cad41d27252b5832fc87b29875e472f72fb3b302c3f5986629553a8691eaa6fbbc5b879a8eaf0b07437159dfcba908561de40ec6569d48401527ee813c50add2033cc2265b7fbf1f229b1ef72f9925025dba36de48b9210408ff9bcf9560a212d1115405a2ac8a9486528ca0a91b5b2f6174f13ae72582200111b6b3c3b2d321df77199c0b3974ff62045287952b9bb792e17c0156cd94d0b396af46939ad3fae501fec238e29760a809dd0e9cb913195670adbb5ed15b86ee88dcd28267826f629f496f5c1f860cdf471001d7795514a5a58475c26bcdb5cd087b87544fd6e33ed28d1431e9fcb4bbe2b9c481a718a22e6282f0d70630f21b9e0b174bc1fd4ba1da9d1c96c16682f074764c5342ddce8502082625880f2626b835bf0687d3e1f946787b0b7a93f20af7d12d1694a361eaf7308f6d40e37b13eabcadf114e22f24e6b3b6ea10b5ebb5d49af79e5da6b945a70db2cfaf75ddd329f91d3c922d02ca1891ef6d8711509094386dba43f1d94c65d223660446b5278c24297256b37807cfb42e239d4d56046a84dba6753358d91f47042511dbc3bc6d5e1547d57b50984b8fae7bb1901b56bae4b91d85155c588f58ab683dd3dd80391d0777d6004d3b3d9866b03bde98a5967b8cb377320d58b6dfe87ffb9fad155375c3f79f503bb0d174c8304d2542f18332bec2a188c81607e3215f98bc7c45f74bd3be8b1217f1c0a83988b13c1d6ea577ee68324341e0869399a9e6372a90c7ab2048d5b751ed6fcdc4f8aeda35a828e72ab1810724314de9e4c29441ea0f15988bbcaff07e835c27e61a66f7592f2862e7f08619de797630cfa2231199ca89228ad173500b695bc21d8e44d3acc136ba2b4841c740e75ee97e5fa32d4128611926545be8f6c30d2dd9a232e78cc15d7872e2eb3e973cd739acc7123fd3fdf31eca8019a5a4980a31f6fb596b1e88f66d66ddf8b26d22d7b39da3394eee154215eac32f53c51d56436e1118742061a45b26cb4f7975bfefe009b7f5f8fd04f644bc005caec6613ba91ae1a9f158d2de426e55f57a62d3f2e5d5e30fa48903073be196f203b705244c41dff6fb6d2d9bb4fff2ee99da8fd5804d35fbf86ff67663b27438a5f45c7bb43fdad7f2dd2aa781dacae574cabf416674e16d57985cc6abbd07cc5105d9dd47fbfe13076f5f4e66cbd1d8b89540fb5ac7b8346aa1f535b179a87b7fcab9cfc1e1e7cca7eac5f2ff196a2d80c1f915e4766115998fecf51e83a7f611f58ad0e430e4002c69432bd1e4be5345c252a39169ce3180d9c4810b5b8bc56a72e8bfcd1af0bec0d1d30b294dd4a11e85682470e955846c225abdfb7c47089f053c2ee2a64050e30236ea045e53b477fd9f0e111b4dff1d8bb3dbf71aa7ce4df8550a84851e488e7befa2cbd6d3f1395a811e43a7e6b53aa11aae98f7c1ccd7c1f8b08bda74fb7b99e2296e4db7126fd6eeb5b111ec1135fa949fdf4136a1a4731918c2a7ccfc29e093355fd18816d317751d220ed36f1d172fc8eb944b10703ebcf543bc40c57027047cb7b5f3295ea328bb890ab7971c55a7808d3e9b4f1cfb5d8a3a799f4381abff4a4fbad043255a8b4201b678a5e5f37d89580f38cf41c0c96aad5c228a07ca17bcd9d870fc14b008158f8678f3c2b1f6450cd5157b43057be901dd81110fa5751212dfbcacb67b30d7ac9f565ddded36764a9294366c2d2b815af6616cd0a22001d230240960e9a7239086713000b442d5302e3ed363c8c2b0b3d5ff0eb7f68e436ecf6db74540e772252657ed2b714d284855295d98f5625b843485dc63edbf132a673531e2e58dd4d47b40484b1d0441e6c2965c30f084628ce1e85fd48650089bad0da1b0cc23787c7a5e27cfee50e90399a9f5710fcf17602dadf9b058c402d80cff7e12b4de394e90fbe5802d1feb8fcdf947602451fb7f8fad08f237f62849bd09f79664b055d0bc5550ee0a81ef1075ad773530293922899c7478d3914f8baa10e060481d8cdf2247430c4163ada350ee81f279ddce7042a520fcd837504c0a91162f927254750dc52664e063403f60583064b3512cca0e01f543cc52cc2d3c5332985111963f4766e396f2c882cb2d1435031c962f442ffe034c39a38ed0d02085cc8ad367515e3dfd8191bc0fb81231588ba0f78e6aef6dc3150e17ca91728874815fd29a6d349a37fecd774935029eed42ca814aee63b7b3dec989be1438268bb525eb6d682ae04c634aa20fbbaa70a2386e966c0b0ba25865ff6c4cce114ec4fa51aeeddd16410a6273cf2e0b3e6486782f15db75ce7016ee369cd0702165b61e6efb799e8970c994101701b94c9b1285c09d8f2ac061e09d963ba7e06bc5a0530929b71f78a00e7cf6a96b0d6d342b75deb87236c4de501c504ba1e73ef5eb957e88763029927d301bad6a4928d643cca44b6bbc2e179fcdbfd4fa774f0e1f203f92965b7ee03ae3494bad7e68a586eaf6f55e3212d57901fbb0d9d8fbcc18b3afa14bbc9e46c17f7778ba945871806c4011073f19463a88b74d2e7a62f8be8b66c852c7454f944b0e41402c563ad2838b1eaf73d3c494511d1f3e33c5b8e4830dc979214efab7ab5834509ae9814111c62a8ab8c84501eab79e0e322b751379b60b20b7c3b45a50fee36d7c244995a7a401bbcef67dec2f9929451247816c71ac0a4e982b3631b914036270bddda77135b53b690c30fad1ad1c8acac6a08188d719b217ad6cec94a1dbad2fb43f0ad9d5831511b4fa7eaf66f14af99d44b9d76bc66a05cbcd9e72db0fcb0b6e1a850532ebda5a4d1d2250bc4206b55d55b74f8220f55485d60c2e4327ec19ce9313263c250c8d3ae611aca00172a0fabbe126d80bcaedae168d5256f31683a17fe1932d278b5151c22381a35b748095b5947f6ffbf7e499b58ce6b620cca61de8a0fbd17d7df8fccc62c83ecd0f39d7516761e65b135496684838a6b6ca33a509d1ece2270c3a50ffdccf1995b522fb7d4542c1ec0cf12f10727e60c699959740f9bc772b63ab0823f51b86221f72c878b61c47cfd20260f84402441e0123e913d3c487a9cc69da83826b53b1ce0472b465f3f619303eb5d603594cf28e54c8bc362c6d6bd9386b32a5f915b622d20b514ed9c19e3c278c40441f84d8adb022eab7268e3518a5a167e792977256b296db38839339576d41e6899c49132414dfbc659019ad644a7effc371317c8233c987f4566170de0b83047c8be98c50afbebbedfdc1258ace437a7d1048b274cce308151a398be7b0c3ab8577262a841407283f63be73d8243d32c72cbd0b01fba3f77f65a535882d4ad8e202ddbacdb10fa4592aacefb6a6aae8f92ba1dcdd6e2988f43587b8bac1576fcf899034fba1a047133d0a7bf4069aba0e4a144ecdfa9dbcc6145b2d11480253f09b08686910885308a992831acf761eefed701fd11158878dae22570ea97d400eb3160f7047f92cddc92d13ea826001bc1bc72aaed57d8f1d0fe8e2daee8a1429d16167f97efbbdd21dd514e74120caab2a5b5a4c028b2052c3c6e0db24e548dc9bcf612b8e8f6eafd77065e5f2ba028f750307bfc95e169fcf50ae46532749eddd632817b1cff99535c3f56ecf9d395a0ca677f63ff5ea13c79550ff70ce508cbd94e41b58cc15d9c7b8a1c23c95fddb2d4239f9299f2d9a80b44a8fa376ed9cc3153658e9aef1dcea0bad8cb50927242d796439922ff6148f4b7b57cd826220b446efbb5fca84e270c3b79d3227ae7bf0848b71b3b1b96e06eaaca6987b34b39f671f747b6a3122e3dd5a20dd260f9991307dfe2fefd9ff88256065e3e8910284726570664f6e4a1a9c2c941e1d0831fd57ec48d700340b344229dbb06f9720c2f7bed6843f9f66a67610d93e8729c57f8d40e80ba921333d7af1469d0122ebb1029bed8d4cd4e76a1bc40975b3ce42668a4ebf25bce7a398a407dc6d192fdb44983f1c46ba6dd2e52fd7fff6dd3cd30e6be1cd10aac41d40726745b52e3a6d8a3910c6f382c5928e2b3e76c3e54fc3eb6a3aac0c562d8d386997b90e75234253aa23658d50be328f470c273f4d5fbfc570cf4ab379f50e2f724218039fd7e1f2680e0e9ca9bf4cd77c93598f66eafa302c7a5ca2ce2d1d4fb3928e0e9e0664b17d5c2e60db74d3a1c5971f644d3368d7e6af6c9cf8e28b067a01c78f7ade22f940e0638a7b507a282e2ba56f860a73b040ac595e05c94d0d383add515718bb7b7763d5b8ddc010a4fe706cb24f6b2f58148844b476e62ad9f4b7c369bcc78365c9bbb2f2eade525c8dfbe107ded95c8c48cd70fb2d7e2458d363994fa56f8648206ea8254109ee3e058b0a141346502fcfa0b436874e194b8b07de96ad8c11e7ab4017d9ad7536c188ed942e0ffbe11742c7792e7c0eb11fcc9a4efb7be91a08b9ea19bafbffe43b9e03777bb1bb6f5db99f24e97649907ee6ae033ec661b28ab1922d87bb80dbaf2c35ab198ad4ad9a994ce6b6338f1a2308bd0b4c71236624ee28e095bccb5a03af49fb8f494e788706c7e7844ac5d6ec1a15321e35efecc73c899d6b7919cee2cf922db0d682477217780c80911c129a4536861c076a315bbe2760bffb7488d9cd9800f3d1859c4f56fd9f221064bffeb774c0539a0ab56f2aa5662b6b85da74d26559501fdb8643f075e032e2a696df8fe7b62b6518b2c364cdb74767866de49cdae5ffcacf5dbf42a32cd1eb040a964b300293460dba895face4eb93e4fdf12328cb599e009ac0225677ad88273f8ac53f7e2735b4fad825f5bdb5bae4f016fa201c6869e1c85f878859f69fbc097e56352471b233364fe8549cbef3884959bc652c2a2390219bbc592a468e946053a8a9bb1dab642c0e81d774f21af95678b5b3811be8a69981a58c38ff4115188f6237022b9e35d6048ba01e934709a7782f351d8a68953a97dd880d62f0255af03449d5be8de5d85f0512944599002ca7c379049f40b5f547294378501be0c1393ea17499db8c353b4c1c3db917930e22f671de502df607e664a68950249cad3fdf1a33a762fe2ec8897ac8a25b864fa99507951ab6f8ec19728eda6aaf8ac7e28026aec6211625619d4f09f66c46a3998221a59f5b281581dc7566a789ebc87c4fa4834ac688b9b03bec21190c52e0bc433634a5b86ec383c1f972203902dfaef153d214768c65ca4c1d249dde5ea949067059c11f83952917b0f20d5f2f6a5d28182e8987062f8424c8bd38b4ff0357197bb915a3e17d357d9a407fbf567831a764a1295270ae9c37ea1204d8f6f9cf055be3d2a323ad8b3014ddfc5d6e2e6abed884a3b4ec7e730179055fee633fdce21e8846f12bf992a38101b7d20c185334793339165334bc370477620d46bf4f415d6ba6bf93b451383e90c34e3e8fe19e5a29f49f1b6ed0882a846cb217512d816a8b51ac2639add7725ae3d5c2b466d9988c69874949d9dd138825eb1845696acb095a894f163cef46f8f40425d13a598c7c2499c2180bc3ae131057f0067bc3630a077832e765dbc566f1fab0ba41f1f67bb0c17272125ff18abdd44ce305d5b36ddb841b05d60c0427302c608d00470063071da25eea5f5274bfc22ddd0862b889d3556267f0114e1b5f7f5856f232422052f2e29126ab467d0879b506558a197e633135911825590b12949251f409ac9595f6bef2a13c6e31d7dd94d207a32dacade45915e801b1128af4f9738a39d8cb4c7a4df8685bc13dd3667fb035372adbae80be173f875c5c3043c6298599269e930a0c1506360789da4e39465ef3e3cea2dbb827af7f472a758b7867b1c75c20c17e2067dab02b0c458d1be4282918d94ff53487eb91869d62c7a921b76dcdbab8875511253df3ebd5a7275fdc6846b50124f7ea690e6150e6673efd44a1d31354bccd8c0ad0178b145beb4766929122a5d04c8054f80c0bc3681ede5f12d2339f981f28a8c993ee8def9ebc8c6012a0827c1a76c508354440c1a8f49d62628ebc3ac16cd45bd3b83b817ad7b105ed9f8765cfe5ac06ebd611ed166194a23e392bf3ac63503ba54cef0924c330653dc0b60207ad3548d8bf38a163c763544d2470d16373230edce1874b18360b1c93b56c34c6069414510aa6aabee6439f47b13452f92475501002f8330afce1cb629bcc76e9d365d5b54393efc0a886dffd955550703c3d678ab27f0ea87774d7212a968fca2efdd1e5aeb061edb5016d7e1465ff26e0dc60d3e1250fed84e4bd22d06cf1a47d5e75ef177d9f170d22473180a39f38df9cad667ec7bbaece46383db1791d7f7eae3ffc4367ff7dbb7fe4cbdd992d54003613087ba221d8ea60f3c9508ad83429b90acc1425610696fce14bfa5aed5aabcbbeeb5599922156e7cac1975bdebf2663725acc3125d9778539633cee264a4b930649c1b17fa81698562273be3999290589c81cde2729eebb4e91f77dd7ac9d4dd36a6e6cbdd55ad5cea484120dd26d940ad47edab6c792c64e07e95b0b4068d05d1dc27e32b1200ec0226a696ccbd85e43a42508282dc05ad71e4657501c4a3789671739cf5cbbe509e9e22c51a6ccfb67a9ed23ad15b4e4f760a7a56a040ac6444d5b57f987982eda30d4e05b82fd93ec07a965826c3c3e14062b6f07e9c143b13bfcaa0d7aad6fba1d073339160339031a6d221f3d04131032e30d7778a77a6f70737dba6f0f80bb05242b08e55dc57258e5e302834fba76d2f3e189e441eac071857bc3ced5cd0bd92a85b830fa0efabdfc5e6e50775f02e58944b9caff1dbfede6956a3fff59eeecf32ea0c88967eaa7181f524d2cb6b7ea8f4b27ec1f431adea91cd9fdd7a934f4cf079d26a66a0058de0d33c26d02db694227c53b05eebff2716878ab4e8836efaa33abf91bebce9cc9e97255203bd099d96209f38491ef52c912e4a2ba8e6d261897cfdef676fab3045a6a573dfee7ead2230a8957461801fd755570fa6226d9af70ff7538af3b313ea3a025319d6a4ff873697685c9204bdc05794aebdf5621180c873851b13be1bc13b5edd2312fd23fea8c179b2986bb3640cf2a3e26e9185b5909a9ed03edd725dde28590c764bf310150c2575de6f0de2ba0ff9fc0409c2b607b0a662db8aa5b3c91b5ba261be0fc3c3823504deeca140b1ff737fe505f068d3e23a94c2b98b6f2089672e56b41dc1b1bbe6f8196f0553e278ef27e3b1d2f765ef84dbc994ecffe01502f4fa63735e6a7eac902f80ff5c5a27a3138883079934b318693748c6a131bbbc4669889065babee5edfdb17316ea037202e9d84b7080dc824cc5256bd10e8e1260736137e7414cb6cb7685d69ccc6520748870f33b0589e21d040514d90ba67642dde98ce791cf33d18d0ffd96060024dad62badc1d653629f4a7e8861e3f07186f1ed83f2c4f21c141b9fbdcf7d6c5e4f14921f2648a0c1c3cf10dddff6f846d806f53e61eec410b83fb7fffa3cbbb7ac4dc98c5a1eb25bac5635c25ba64a27ff86d0c4556136372f36f83cda5a22375954a2cd5e56d728ce38ce71a19cf3c894b4f9aa7c1ebc8db3b07ee91e290e8f502058422e6f1f2960d444d6403aa0417c876d8b3a039f8880f23a63b8e2ffec89487b18bfb24e13b8303c6b2b8850c78717517303c553197266fc53ada7a76f057537657893e7fb97b843897e870dcde5831f46946e1e336fc62e0ac0f97061a205931afb6ead36aad5b720b067ec79a74a905f50e987ac292147aeb26f873ee70d07fb7f01b2466c28fb9047cea01c15daea05f9c3464111d053fff93d6e00b8a628a4847908fcb3e09e3311091475db3534c3a6ef4b7546ea5a2432649960b2f69f23ed2d2fef6ab13045dd924a5df60d71d41a91feab29cf48d4317462fb1c86bc2a67bee5f59a479dd57cb6ef571339937fe43745246d9b30a723d3a8e1f5dc0b1137c310648ddd64930fc89e19e0c1aa644373f836c0687cf31764e57c99058e1768f3fd3c7a9ecf32d53e78ed9968f0f21e383f2fb249b7e2bfe7000460f57d2ba36f3e19ab6dd6360b9b7d48bc4cb2b07d2ae036a67b45b624681d6678900b465a7a41a8e3003414be663fdba9f3d62956e69cfa735f8562137432794005db389c0c363069eed29f897940fadc91ab86109f8634212d900f0ce23560704ecd289fe0c2b06a8aceeab2f08fbdd7464517543a3f283b3bc331c9411418c248987aaa8fa75b55abb1d9099716a5c1353659cf5decba933beb0bb898badd158d126578bff6452b718ece76e48c22d4136b8f820e202d3bb30bd20d58532849090aef3839d80b32c5e4db2dd56573e5f68e9783b533cca985450363e5412188e2b4061e11f7d484cf88791d10ef2aa6d8201c262e49c9b1abc95f099248a3a2158c86044e36b84a6d0e6d74d45452bc48650293b54dfef1b2f228e340312242ba47d8fced895157e0d60f0c808b5e3ebc97c1d70981472088abf48806250cf6216c8745ff4e9e002add36f0874d245bf14fb0583827eb6e2401c50cfa55428c1b57030da2f2e9f151dee1b9fe212722bda4b3a740535c45b13fc2f8b7e0b5e2fe02daec4f163a765526f15819f0d2f7c338df7bc25436c5e54107052745d7b73f94f43fb7ec213620f56fc3394d942429a2134ba0bf54f5c421f47a4862078bd2b73e6ab691cd3b56aceefa982739832c9b8bc2bc6bb6c6f41d50344242d0e0c0a7781a0741eb09093d0507ea4ce01e8245c9fbbc985c164d6bb303dbfcb7b90dd03e8bff439f76f0025ae641ef02af7d095c25d78ec4a43d8ed6f5107a780e4d5e6b7607ba4ce5699a74cd704dbd646a06345fb255568589bcf2a34ad515eea826a1d3f9fcf772a108c5bd7b604b96447781a5ae1b81a95d7618bc18d8099eb8b874c19ed59f29b5aaf6f7c013e23d9e8e17aae699b9d907c7925e983d286d46290b575c6360a58ddaa0a85b24d17e818e40a14013928b978ae1fa5e65e32f98d5d6cc24fab3353185ebe26ae1f907e6aba397c328f60efdc4f174f231e5a48e143d69bcc4f4f714c18b118f7c5752cd1b1d7aef7d37166da4ecdc7aa7e12c38bd9ca75582a63a09ecc9dd21a8e97cca6541e65a7b8c29cf34aa7e0c35a132b677d1f084dc6db398f5122cd855537b4c43842ec82ffad4b8e8141fb56c50d40e1fe34d9adbd33e01097f01052a574fb23060b38554eac4074d850105163bc39a223b668f7f03fa0d6d686a146142d81675eadcd6d656dd379d050d1d902c350a4e5b8ef74617f9730f0f474e7447c675808181ed4e19d9fbed9d3022323a7208f7c55d9284b1d30a21e223a501b5575b13f50eaa82cf1c7697543e6d71f26c98462a881c5b0bea7f4d6647d280e3911eac8e5558991faa1a513681dc29a9ceca16882f2a678ee206f2a43d545f9c98f5c8df930c79f216fa7b4ba4a42881a505f3cfc824e0ac68cbe3ed60b63c83ef1bc165a01019f270c1d8baebb0385200db231502af73b22f0e877a0b191538bb98757ff976230cde9550872f36d0eb6242e3551bbcd5d5d7a9936ebc51336684ed83d3707265d0e1a52552efba7b54794323131eda0e9ec64cb497134ed0b4b1d8823741edd9401ce8a3929e53daf4532f029ca389a88d33914782962112a9d066f85df0ff8c96f2e2363de5a0b358103fe95cc5dee35ded408ec2765e9ab7ce23ec69a0c8c29309099fd3c0ce1ef6dc3dbfb6b96109ea49f63b18643dd2b018829e1e4a26e3f1c31e1b4bf76267d8756c3d5af5bc26c22d06fcd9b8df10df082531355f9198c3b97d0e1db6d8cf07c54fc96ef64173bd25eeaf55d71d691eb4f2db2413761336e4e553335151cf12a2ee46b63b3a268f04573b2e1e24a87f857968131cde2f3451b3c6cae9c743fbb30331750d28e0ae090d5cdc024ecf3110df9a9b0147ffc4a13e2008c0778eb475e5363a69fa86f494ac4fadea5431e94d10321551b26106ee5aca388237c7edfd3328d2c57771092bbed6d25e8bf8789d7590ed0d1662070ab9ccdd16b02405f1d6aa406bf79e9a8d7f1f7b21f6541d708fc03d0c549b7b420b9582986818a6ec82f89f73945c73ab61c127836f4d9f7d114f7080e22249de4aaf24ab07b58a567d8e2bb071a015f29b0de34f07fa57c16351a8e5d56fe2cb06b256ab59ed744bb5b2f86abfba1ea49100e44846c5c7bbc381010743aa111cc48ebc20aaec8f46009eaa94aef1d1b0c1ae4eeff2c7ceefc42cfada83ed7eaaeb7b1142b289d7819a9db9441c3871741d5cefce4ea13c546927385038cd5839210aaf6abfc15c65723ada7185b12e822f72c40519e2c4d82c53535188064c0b976ecbbf02c55f8c19da6c7fccde517a84785fb8e77e70d38409230a28ce8db3da7f73deb6a559941c2a259076cc96cdcb2041257e3abf6b1adf3dfc5dc9927eeb9f576f2b52848c5ef159dd14300ee93737b1c594fcd726df78dd0dde2220c0632ef6f71e5aacb589ee8a62c95816f326e54f7fb61f053582d206d6441e8b9639ac79168501521492a85759808909d093a004e268c1fff958871291ecf41846945ff13a1a2172627bd5828b058e2cbd5052e109a317d427ac79557de33979dc295c2c49241b49c408593da2e3fd6149547e4faeef09fbf8d1a7ec7b2f50109b4d9e9115e2bd8ebf211e96b81d66c4c2727a3c47e85523b2708a10b2352e67ca427b2d63144034fd12608f22f84da8f36e1c395e0cc62a9aed48bc20ca403ae9e1a7eb1fae503f6cfa3ec7ac184a96701499e17103b4310f3ead3bd6208508d624211642c66af769ab95b633705401d71304b08427d5d85e6d27111b55bc9c65fe641d1678efc82ea58f29ec164dea632f676dbbd6027d4b1c4970ff4e6d47cc89cc65c36a7f51c2f3ccdd0e4214bc899e5bd7a7d92bac893bb80bcf06d7b455e89fe6a68b992f7d11493d6e61853c627388b66aae595e7b8398b524b39a6fcd0b8cccea5871cc8c4d3724839b3a792507e562c79a6ea12db7781bf0217d30524dcc5c0f6956e9c794b2e9637a20a7da550404b0a849e77ff62bcd9cda56fb8b8dc49866fda6f74919f06585bdd09e9b5564eee1e4ac9623f50a7c7c7f23bf0b1836680a9013d23ef69336513215cb2f96b5720fa36b908436d4898fcd8a6b8f227f62ef9996b403e229ef7399906dcc3802cc8c0e8ba70fcfdf93d6c535edc78fb31c650ee93ba78a2e70cc75d672b3c61b31593352ab35982d0594afa8d8ff547deee41beccfe9a931b6f1ca0cb2def0cda7aaa6e1185f3437fec13ee1d1801fbb4da074a48f8d05f98075b0cd6d17640fcc072bd1622eab9a1929a14ca7323dda8537b6aa2fd253be1368e30b819289f3eef535d718f1e2a1aa48a5212288010e8bdfcbcea01a3cfaad1a3474f08ffc6728593b96e7412121912f584d8b4848a771643d4e6ec76c167830436c49eda88db60c8a85052429a1d340c6cdd1aab25ae9c065e160fb650e61a8b3601d7036943aa717e703db6ce211d717a74cc3e5c5339ed9b3c28e59358a892251ef1c72002b91b098b2dabb747416503258ac1c1254af095a150b23912e0c3a2fa9f476a869cb952e74e3263243a3395d6aa493ef9dab75a489d597c9aff16ca5d51c25c97bac7237603ece25c437069e301bd8847bbb7ec217c2d95824e2b4fe7e9cb40823695d5154f9f4b926f1be3d6f723dfe2948dd654ea09f945c0941fda8d8efe4290995e2abe12c800fb2a4088be33fb8c1a833876cac17665de2b2197cf4a1a8fa4e37e3bdcd28a2069a5f7c9709879b54a612e62a4e7d7e3f09949395c0687ce28cac9644bbd70a4f6cab1349a7dbc9d167fc4372a83f41797344590804decb9825f4f1bbe5d3cfc7dc238773349c314bd5cefd9f9209b92d910acf3646ee07b3d2359541c4d0af2a4b0e29c0f50d54176cc9edaab81a5876ca44f365c2d8cec4287e5e7b46c97f02c194a0888da47cf21d39120b915f635424e10a215f82495661acbda7f8f96f3ad3f1c1e5eda6c2c95b24b069959cd2170512f0b4b805cd2c491505a744034d0a00205ce14be2def80c2a22b112829305cb8836d17a3117d0fd3135ede0cab78df857952d065190b47e510e8148f25a66e776b6eae02c31c4dd6d39ceb768d2d4e548307d05e8e9ba74434c10d82407aae6a67c060914e76e46b89e3c3465d18aec3e353c866a6d0d0d9d0776e61818d9f4e84b5edf5da95b7dcc7f6500c62ed1ab7e6ae2596d7ba33e174b848a48674402496691b63a4e3d820637dabe3e3ea621b0b0cb0b8c242d0adaf2d1b976d8bd8ed0bee7453acc84f78c05a5145c218f1b21d060ea4083918671c4070cef22a1132498e149f67261e5b5befae7f2daaa95c99d6b453800e03fa6b81e78b748a4829b7ce859131ddd0397780c9e74456b90e0545839d78546480878c8af74e9e529d9be50630d588a388be4955eba3eba2415a85b0e84f00f2f3e18fc3ad3d82c995e039dbbfa8f2d02c3e85c35df594fc185dd467f96ab830ea73a134a03a76bd29e1f20cbed4059af4345f995a93062553c7fa1e410ec9b95fd4d598af33222b2189cd00ed3e5b81613101a61b2a57943b348548bd07f6963bfbe7e260365589745c55674c7afc3fb3f1265dc9859248f14c79235d3d9261ff043df37354553f483db3dbdbd7df17849a19d7eec4af3a1eb64b985bd218437505612f4a12f48c5023ad955bb599b15b319c8ba30c40fead992859aa90f341f92f950a53adc65291614da44841c5521699fdccfdcd0eb142737089cfb7cbc6e14eac2b90bc27d9b477ab6437743c06aafd35c0f83fed69baab97c4b62fbeb8e51863650b380c127ac67b1f6bb6e16bdd017686c87e0769c52ebdddb1c62025a0cdff25504a8407f542a145e0106ebc08d00bc44c5affa21dc40a35c0daf1091729f04197c01596ff1386d16f6462016a79c07ed75ff26329d9796ab680630e86e38eda4b6af6dba7dcc71a0d4d3d0575d8104c6b1b54dc450081b64fab26053933b3dc3b4fbd4a3a5d005d57a3d9c7df02ab008a57fe873c1890016dabe8117850a46f9548e3821d376cdeee96232905bcb300fded9366c4eb99581b733017278b63f65a3cb44ad70e3626d59a95bca3e6cc592f1ab37fdf4a617b93baf46aa2ba51eb4b1499cfdf29f57ec460259c2bcaff0468b827fa33bb73c02335421a67549f7effcf997e5fd8e04b3f6b21ed32fea7a7f5b64fda298e81f390ee0f82b91b308beb278bc921759164876330239d0acffc4253397b6bbbe55ab070409d12d2eb09c5b300721e6417c81fda1eb2e6cf6e693bac8b54a09d6267b01b4c7bd9dd90350526b70a67c10fe3b0d7bbdcce2ae72b9ff81169f11708ef28ab1d246bc34139d65084019e11804464dc83c37416eaf22f1fd46444aecb013b47ab16129654e6dc4660b0b0ac466a012b4786522eec1f673fd04c24a9274c786e5b3eee410f73d5ec60497f03110067b3a6e101893522a5643ea33361301e42f99532eef8e071785d299d9b3dd61ad80d463fdc712122ed178e4f7f1dd83084918f0525c9648f8d6427230e734175083e8ac03f3e21ee49c40bb275e8b549f19045b0bfa1aaec7898888b7a89a1cab923e198d19f182eba428e9835aa732a8ec88b6dd0d73f310471474b7df4f614556e264365fe0f900348f9eeed2102863b8f7eb3b23ac036fe93bceb2ebee6e5840c7f7771de0c13bf87d47b332d19f342f43ceef983992dc5fd98808d5dc3aa90fff0990078e6b49a128fc59f95601c0e165e6853471cb976c6e478a0bb8c047b0a1fb69a90641819ca8cb24cbd4b77687158cbb914b51a243cb139e8cc7a47818d057576551825509234403d4a99b0d8b044cf45122ac367889825b4ec76fee0990cc71cf62aec07a46ae99144a31f8ff7e253f4f80a511c82a77786ecfa2d26ea0701b540b8c7239973a9c873a44752f5033003c709ac46bfaa7055ff82bb2dc1b1caed629245f0c0620bb35239a0db488ebe44c2270bb2e0cb7d1bd82222213a661d07787d5ccffc36d10a69c2cddf02e2f6529591ea039fe58abe8e42c0374a5dd75001952fc065ba432f78a19b1aad1fb67c4cb82387b6a9eaad57543f84f4ca399b8817315da6ae3e6387a044824714a062a50db8ae3bc8dbcc9905891c8dedeaf42ccce8b900a15f5956d36945a4d739243497587e15688adc4565e25d6bd37c8971db6b1d4eda3d4c47aff938a8281d7ebee9890598bc7ba146f275e26efb35324b7303c2316fa98483eaf08497eba5d8e1d1141981b89acc5f32f7c2b2fc277e74bb20b173f0353bf780cf09b882509728a7a6aaea2de58cf2aa7b4867719c44ef9712a731dac24c04f5b8aff48a0266c7e0704752a4432a87c3915aa363593a8e9b927bbff0933aae0d5a761620dac43afb018e2d3e99ce9c638d5fe73bdb29563582c1e246435a89f8d205e268885b2281c3dc4d4fdadc2eb880e6cd8ba732ab5a87250c74fe1dd78795b37930bf7096705b63c9529a8007d18122bc88022fb151ccfee6997988ba598091325cec019eb442a7956d966caafa0d3385fa4e04da98ecad30b23ec40f63d7b07477ac2eec10f3458913b6924e8c3f31dd31e5d10ebd7e1a36d9aaa2e483fd1a414a1465722cc15c5ad783008a24838cc88f7b311a2b3a6222694847091ee9c4958274eae89be4405282d73a16d4656ee7f67a206c9ae00b8037ee6b8ee78bc2ba4f13945c264ab2a2096c1d9d206b409b9fa4faeb58c6536e17ba260d0c54209677d489a84838a6528386a75b3e5185b0294aba8c63adbf09c9638547002404d832da5a87098df837fe2b14145a7b2441a87cd3955e7c42001a83438be93204664f06550d7e79a0cb9b876e4a18054f02a981581fa7c264e556bcd8265bf9fa39fb7798e242c209e26f2fed015dd413a7ad1df7c312e58f492a1d334ee4f6fad80c043cc1ffcaea33b9dfc21d0a0457c35ee3d62fc1edd1757ba41ca124b3b2a446a9884057731d22822a083371a089b580302200966526e28b8757c82a6ce030f6804f41adf42fc78a86bb4c8db5fdd520c64559c02bb398befea2a033b89a71e15be3923fb05f15bb5afe01b48f1c9aa39fd8bf0a67fb8cf786cf5248ae278f34c3110257c9a815a35aec9bbbb73fc863715d07a91ef4320347e5529d9b6153c84e5f0d857c374bc83af3f39d55a8bcac3f9da51b45fdabd1e5aa357e65c8e5130036163021289d4c0718290239613d13ce5ed3afd8f6931c46f4015f4ffd2d5e37ebc9c7ef7cdde19c8cd742f113a2bec830ead21227394e6244a76d43ee2f1af37d80f39dfadfb0cda37b63c68cb3881e7196533accf6cf3ddd72b760f66f8660c3f9bf92e0f56caaeefd20f9a12dc48933a395d33cbe9c0e0c9001f43e11367690ee22219b04ecaa946265894d9b0f4744e35bbb96732fa5e09533fc6b87f0cf5009ba9cbb4b817613e4312710f1d7ff215387401a0c439eaa398158d1ba341b1a9cc5543dc39f7fc7c0f2e0b26c8f2c5d174b1a16ffe314fb02f85cb1818b77695b968e60593052591783e918cd2f2f2c8f497aeecc31d5b8d2789ad013d46a0ceda0501db8467c0f29ce31490d1db0ab039762a0fa8018ef7b69cb8ea6b6a0bd7b33cd384a5d14a18664b0a52ab69be6def9bc9c0ee07f4547098c5f50daa62bd982c295be4b8eaaf0eca779bf7ccf35c4fc80f8b09328c123f6732c02d96bad0f90cd8b813963eb22c5e9625c7351efbd443674b3b243fad4bf3e6ef01039801dc764951a58e374c7bffa6aeda42db2137994923d850baba7c5179b0a75532cf11d4d7b2bd3309a060a435b5f4991392635c34d2e07ba0203db32b5e020836da3fefca6870c6a5107a2e849a35560f8f1ae2580ccec98df043ffb6e798504ee6364e1537ff2372902dd143244dc7fbcaa2800efd7bc50adcddf498ef432057b16c522c2559b9544f17d1d43d34857a197fc39a90be62d4862b24b34f970e105e996e33c8f69ee4239f8ef5c6c05a136fa57a95b04f4e6cc10bbf486ddd3d7878569c4c96733c981713c43588fcd0d6f937b9e2083ef25ecf89003cbe44fe23365a20cac84800592535e88c761ed7afea29eaf3e148110c687dca9a00ad878cda110ca67c452091c195402e8968470576fbb59063387bf3ac73bbecb0525e76f08e75d8ec49ee62032524345fe8b04d9dcc977e558e31c11fcaa4f77b8126152b1ad7be83aefc17e92fd803b77639ca0cd87013b5779967bd2a33bf11cd57f610a9b02cacde1bf5f7164b24418109b51412168744cd68e87bf6993baa3b30074add2a6f693fd92070b6a333a3d4ae5a4259487efe8e6da7124439cfcca127d4392275730be5a334d131225d08b1f676b636864fb2cdc75bb3096640cc54341f1c049decb977c32fa3d2aea1ac972abcf26659be373e9ef51ae38b3e8e9635652391fc75ebf77c3216ae68d67ea8151c90c93972a1764bec43b2a44789869e318c3ed3e55ac4475ef04157fadaa4b18ff1d9dab1bc09efe5d5d0c7e0ae0e99caea6453bd7db3bfeeb8a8b0ec9c9d33ca2ea82dcd1b1078beb044421e346def02f2d719978694e472239b870204a653bb5d5c6b87a0a5f66de9929c743e1dc3d0a694cd60d34ce0d00c57ef38c31659471397cc20e8ae7a8f1b910847fe1c47b4551dc2ebbeeb1f91624f0c09b521accb526707ad02b4e29022d6286d476c6453baa5b200027eb8993cda0628fdca0849747ed635b6bab3867fde33c83ff7e01534665cc0987edf506f332ffe05f542a12e8808689a219a5e4aa17b425821916bef6f42877173601f3ddee55827594911f3ed2bcd6d805ed99959d96293fc8d5c026b1422ac3816cf06df80248c483b3de0be162550568a3c04b0355847df1ee015e12e853a9d17583caf90a88c78ed175f751d8b5c3f65e6e17f09f7609c7946a23f4c6c43102c3c117877a7698bf2dfa9d33fcf163e126a9bd058b7b7748447d34cdac5f108dfbcd4b6f92265f77886f9315a8ceb83d5e6d105a049c2e43f12969d1d79d40f76b6eab8e414240b964234dc536d619f2b3503eea4e2a3a19afa1aaa857de12eca94af139b3da664b57620c435ffd8c95514f3c633ba5d494fd7181f0a169ac6745e1652b5a158b41d44b0b30891a9f4d153fe521361013e578347f52b5373262628c850004f22e7370c19203daba224032226b6b8022e1517d9f52079391e043bb49c36d853010d1a3dfffb95b51dff52454d1ec9bea6cfd9eb7eeb2ecf4a41fadf23887e192bdf44851021abb71018a69dfb29b47d6f952549450f01b23a6736c73a029840a6e7c8df00786155e04c83ef83ccb20881e9ae6eb794e9ad9e60aa3d2fd49510876ab9fe31d14b3c6a88f6634b2fb0822f232050ae9f7510ae1e87a903be24fe38fd6e676e3d115f4e5e0b1f43541a3b551bdd579bea5e822aacc980ae9239753bbe530acdc95c8da2014b67ca8ac08d8c4bc661bfe13403f6c566db236a05b0d9c063168a6f8d5b7c396186b3f1f50c581e82caaac7a1c44513ccc6f29fe013150165ed69066fff000bcf91874d509c10c25831f67d68727d807e8cb1be6cb30e2648b7b90cf55abc4439470ec48f00a659ced794a88743306840b1124209cb69ca0f106bfa8bc19bca6914047f59222da5271379e6f6587f4fe6db0cda83b8df120804789547d7a7fd8ec4c8dd911c86d08fb53f186458ac555f1e4b66dc4fdb2ffc8b60df356a0baa6d77029636016d46f3284d888b67bba249c24de7791a1a8243e5a1f9c33e27490a6d03ca2be5e709baad1b0dcb4054e63af40be0fbf552999f63fe80c9c511128751a88f971ce43c1f5e47b96de0949a94da7668844d99c6baaa3e929c4c19971f5123d79042212043d82576120f4762b74460f3bcb520d933126534401eb0601df78d2995a9b5eec56ebe85f2294cc71c1ca36c0a83b1d2e7625c3ae95c73208a4b69bef678248e1994a0997618e3f1adcef31173d57b78e9b0667a1b048632f1ad418af28186879833a5e1f993b6637e52f346b62eed1fcd9b6bfa02ec6610b9ad05a9bbcb2261853256e67e8aa97d7090a4d718271082faff3daff881edb135c5f953243f06beb118f380aa9566f970eb9155b84a5c5179297c0b2cb197d2445d5342cb2c26ba19d58a25f22d4b64545cccdb39d6588a46cb8670e895fad936005885a9ad9b8dde588103923c6920c57fa171782eb80dc87980f287fa8bed0438fd72b7f36349bbdd234f9a9020d9d3f9aad1671d0c19660a4c132e9210188503c5740bdeb541a3dc6a08bf19b8ee3866526f0fa699c9138898751531cf77f59b640df4f900fb59390b9883af7c6f14f5a75fb4ed57f095808e3f0865d7599a886ee6a77e286bfb3c26bc6079bc456755521d05a9940c0dc2845259444e18f15704e91c9a955861e4f38a1b3949aa21116a970ee11b951c628287553d62f91f050c94ce91f1d0fd390f406fa3f08da841f4b25d2d091915e561039e8f045ef9573e70158a26f3b63de0ad6a88faf06f8748738c7327f4f25239560129fed02d0dc24823e9da63eaf267fd2a63366d4d98115859cfcc31a7b9a98f5ea05ce5f0b082b02258b2c992268012055a573a2d54428bec8e89561fc194e3cc9e9e4da538b071b6052aae0e60053db1f823979ef24edbe27fd656dfdeae15866cc9f67722213578d1f8c0272f2c741e12f5ec5e50945ed19257945a58ac888246efa9ba352c1835dc04afbc14b500fd064d17ac14f153e5895c5a9a4255e902fb8ab057a297e943c3860a5c31aca6ee41de29a4a0a7490278fed3a0ea5a85226083b0008e784ff406e84980074a2c4f358101ea0eaac2ecd25fd888593811aceead44ab3467b87a73b76c361177cda5a2f7f2657c950f004b76971902ec81420b611f53bd22f351b3aa6200d02b03cf2ccfabc87eca4415fb82622d0314609684da16edd64758272f9148a47e80993d645325007059811f6ac0535f1844c767e9305a8e742c79d9c137cc367e4c73f54f7baac2388f5a2ac881a53f89ee213ff37c031c16bf4d335e33ef9efab8991066c1a6920ced2c141761088920730b6eb810790642743d925036247e18596f74b4a188a8bce8dc9b3068fda613837ae20b6a2943dd1314fef1c8e55d89a1aa23e7f1079fb6b9ab063e4abd3d927cac076087730367a524da08f8753df303a74dcd8846d13807a2fa8d4d8823d560c07d007bb389e307bff0f4b23af8e3c6574403285dcbe16eabcd74cff92d60d6b442ba7bf2e23622291d4548b06604d159b789b2a0bb0a6095dc7444aabcf165d63865e5bf015ae279f1f81d629b946203338ca4c1b124c928e5b2c275940ddeb201c6e9b09f44b6af858c19bee0661e905fb328e58291a58a5dfb59b042f1510532b32c88264611d2c2eef38d1f572933f6452c456cae6222b8c9b0b07bc17b1f33f68597c3bac32dc98855e25c7974d966d192cab6424ec0ed09b9c7de2be24a9d94d6c0ad64e890c9b364b63d77a63d3530ec138c16600237d9ecb381659a87056fe730c4315e8e27f4875f53d18166f8f937c1323ec2eaa0aaa2bc279c375e01b35ff98942b94a4b3c8f4a5962373648b876204bd89818a6c2a368edf796a94f8a390f0095c8c3db97ecc276077b5c8de39fc3fa0f1c8a0fb3a47b30ac277bba706fb44a4ec110b65d0a78fbaae22f67cef9f5204bb706b3c3c1e0ebc4a50e499143b7d8dda58caf25f9537bb9ab6b37b7c0d9541b13b848887a805471882ff1e4f8e2486c5a3506e2428d7a1e79edf54cad7be5ead59440e271278f141203763f8e6d6f9678a468a4d6e37d59b14ff3cc1cd111c064cb2f953d57e972f7142491e5ee4e8dc51cfa8530f8e052973c193dc709658e9cc0f57574220c0eb209c225a9c4e5cc3fba42215b63cadaf3d75909ac1cf0a1eedc8c65dbaa02d8cbc67f4e57fd0fecd05c03a8acaa187f81e0fb501f9bb0a2d8b117ce778793cf9803b8a0e91b6dfa7b91308ee7ca8efbfab83dd3c895dc0f9c3b744079664c99a1be4f61eb73bacbaba833fc5e8949f59ba3dfff875e7ea5d77179362c5b28017261e2648b6fc8b0d904f5dd7c01460a7d6fbc3f3bc05606db5ad3c9d53b791a56541688a66b187f65db9e62371986ee95879b12dea26fca693a22e88653209aa776c94c78995955bbbdd185f6abde064771d6de0b3f2cf2ff0e8298c907e7ca3325cffa16fddfc92aec9d53c08920c34403950da0a2126b2bc1309de6017f8c7c18acc267ff5f7dcf46ba32f9335fed858b782a750b7783f7bead0551d9a6495643a33416bae8de0fbd0d8b6afbadb98daef49f5f5df4e349ae8f9c024dec19ceb13de6aff10e664d6f7d17fec3a71379c2b6687f6807b1440564eb5fb774ae2bf533f990347f9feb667f2c334f978dd6c0ce647ec946ee8931493e143ba9d7289081566b12dcc5b142622361ca6faea32287d342750b10b6144911ccba3c3d208a6d24057acbdc6da72b54a7510f8a13707364eeaef36c707fd1070b08b0799f5907414431949d228d9909e9c462ea7e633932bdd4622d3fdb3a4f94ff39cdcf124e089d467eb864fec36bbffd032d8a36aa308dbd8c4b3a68ec8e284823e8547a40a9101aceb84ebe3a0fc753a33e6d7cc89142c701e8dbda37303836cf8bd8061506c3ef1bf956c711aa9bbf2115b989b733d70c106cb63df700f8bac68d4f69b3eaacfbf850dc64ac6766330bdd2cc191e8c1df1c17d82729cd719fbaa3bbb6024564a94a3acc0b5e378c15b9a38f4a56ed14ab7bb8cf5ba4a2140e0ca70a17a3866c8001fdfb03bc4de9f52727b2faf386e8847170819946ad9af9b9d8fc8da2cecefbf7a7515b53eae19b7f9e411d944d26af77079c68c35ebff79830ae4836ae7c9da7183054e73d6c174dfe3805c04e3bca9daf4c0c87a7224284b94bd54dae4d24f7d6bee5d23f3646d4ac7dce4fc389910d3769464e16dcc57899ec63b341f75053e5af5076fc04e6fafd34e1283ff7eaf1bb2c1a6c1dd48313a18c891e9dee2ed4dd15d3a2173960169157388cf841f4b40824e56203caa2a394dd7d030e68e504b2f9750c75adaa5acdd2c8e0c0ce366e467d7e216f5dad16789c154e0a3f3ba2435f1653593d194e180d1ba7e684364b8b10d9291b3ad295bb81f9b8239803c8b6d80ff050a563677d81b23d214fac13b29025b72a2e9f5b8b93e27e868ec9a91998ec1ab7d7c63eccd9f28e96f9c56bea7933395bfd5a4f64d4e3abb26443b815956715a79f0eed277737ddb286ffb4ec48da23f8afd86e26a4bc59055ce58a4f2df4805490853e65f6f80d4cb5fa679862b0b3d5c95fa6a81f5dcbe680157f8f3b3c210910063593934b2e6a901241056272d8c7d6be078474e73098ee651746e469ad1ca5ba73b00a565b6c23142f134e8a7e93cbd15a8fd37e28c829c01f1296958120c22976acd2f1aff4899ef16d62dddf90f7f27a4e943414eb707c67f00ec2e667feb0a114a6e934dd93ad9fb0e62319195c9d7b0fb7994ddb881a9f15ef96d3c6b387183075199f275f9107cd120aa883353ef2e38fa7ec9eaea50d9cf555318f956247bda9251d0e771ecd58af5cf74c8575e032cb581f6e9fd4b427e4d0516dfd1c2f5f7551fb35e3d411492da42546ae8ee3f9e0402bc313dbff0a8f6ed4e3f6f34626d9886fa9c4469a8ad658181bd010533a240123cf44fede58588d85c9d0fe0c6fd87d5b2594aa7318cf8e361795e3dfc7ad170becb63c25aedf3a3d34bc88effb62c180d214bce12dbfc146142050c76f6884529251c23f2ca286324227b7dfa090fce34ccf09ea1598bf6f907def0f62609b0410dd2ed009a0ae520b2e72189732b569613b15a59f0ebc909a138c306f098abcdd46ffec3bd7572be2ccb11e2adb16265f86936bc3237cdb63a55c9244d0bc0e4efd51e4c5925a1b0a980428fbbda2cd528482bfc8aaf32941a1b83854f015846b124f33da52a565954f1daa66aff9925a22ab94271e195f5e3c9272c85cb27538e58384256c1e5a2556ade35ce4d1dbc8f81ba39b832a9fe5fbd5847aa905a399aa15995cf267913aa49ab35d8cba80a2bf0aa82fedcad346ef2306a2510310e7cee9655c9e9e195f221bab2ffcf53a9184e2bf3ff3f44dd4a0fa25490162440ff6b46bc558377331e39d4015671d4f9facc962f02d7c0a304c50e0c7e03a18d734161ec1f95a24645e999d075ea40d836c31080c65ea21ba2309c70680348bca1bbf5160d083a562e06cf7e5e7133dd916641cb38184280b99ccbdadb22fafff66897eeb5e8b5d60f51e64e56f9219b4dfad20e990f5b148d24b55a67f7047bf07958e13f26efbd277f7b69da37440b1d1138a93be52876315aac127937272fa600a7fd280fe210251d99f773d804c6a5964ac2cc301875032a1f17ead66d36f83740b015d006ba8e94ffbd7a3e131453e8b700d968966a559bf7ba9bc0e2215877c19fc07b17170e3ccb64f612324020cb7b091b6e3b8acea7595a22345bd2d757091ce0a156cd9523e7984c55aa0df88535bfefccff58d6ce02871b62f5b723fd3eea1466fd4e7312d9823cf4770a9851b9f8aedafbad25eaa13448a4ed6c79f0233c0efd7e76012655b11bd34a039cbe5cab3dbd8546b6f07e6a336fba66d26285bd609ff178414936dc96d55f530d6a307ed57b5aceab339666013a5b05e00cf77e30b2e12ce12abb2f0f5760dad1a9bca6c5bc06e842227812ff496bdc77a53ee446563b3acd43fc32904966253a52d5196d520f9ed8fa67b49463f9c6cd598a81fb69f2b1e913e5dc52b238638fc7cbdd6bec744512a7e0307668b69e4cae0d342db93eb2bc81b33e3da7c9f82f96472d6ab73933071d0b3ae91ecf77be482d49b59bc38f0dcc70d7eaf6e9551b45ad02917556bdf4469b0a5974310d01ec307f7eff957ceb603845bb45cc91d7c70a328eefbc7c27d06a0e7385512e3926701c0cb8653b1faf15a417c772b492a5f1c479dedd0f9c179bf2a0489fe51fe9a84cdec49f9fb37f16b47fafcd99ead95586b4a9e34d69e5d8cb0f70aec0418aa29d027b754b72f55c33d61c1b89376de38238e2a1803a8acb25b7ed29d0aa52d13b07c8afb5e13efff3f58f44364fc507def0df6d7b64f4caf9dabf00193904aea742af23a9f6a90760e97bcd681bc1f15d77067b483484f235ceec89c773c33556bfd1e7179b7f31203ac85102fe04e1494b04993c75cbc6da2d06faa5d7c416ee7d16592e8606f96937caec6e3036d09affef6398cba7abfe1c63420cc8786bee2ce68dc31b4614ac2274090a06bd2aedaba44ff0777fd64322bdebae1659186c10007538d4f4fde546f9e261f725858a3bc1b94cbd9a090458d7f1a38d09d9d36c45f1c6e011373bc16fc748961c8850117b49f1b0cea4ccae274ecc5cc6de80424873c2cbd0695c9fe32bf578cd9b00e30a7b3b528ea6d682d5d14ababcf26885725ec2f1d82613245bc5099de4a80ec46a87f824df50c09c4042c6bd3560fd257f9c0f5364e7989340920525e83e029f4baea1d30a6de9aef3ed5cce271cf2537c641ca5ff8ad47faebff32faa5264f964a0c3db5b9165f663fd324b97232788aa4e2fa054aeb9b5bb2d22b345389e152eb18d5646c3862c75d3742460559471e22ed58aa0e57f2eb94ea507224a145bc1d1c10fb2e5fd2563abd2823d3b2bb78f9e949bd27b087aa7dade38f3133c6015831a6129de08a035050d33885477df6eae6026edc32a033b8b30422ee4ae5a20746833b2494bb3bc04a2b0cc53ac5e03a52f759602989d9d50d202cb1a5a253c2f68213a017fbbe239fbdfbd0e3029ead46a575fb7ca1b796123e1aff27685ce88d42370a7dd7d44377f6bbde367f8339de0dad4372234b7c5dcb6f1ef9c18be88b9277b7fa215362b0adc46c2bd68746d93fd1fd5bfbca1c59b05d834e98a16b3e3705856c3d6d9652a1d18e0c4ce3cee319b395bbf3e770128a90b03d25df1d204abab525d3720949ecdb7214e1c6bcecf2452c0e0d052e3cd8ccbc9dadaf2e634dd388ebfc65d22dda800c890a5391c9d56d8afd0b2d3ed3a7cce1c3f2bf6d03d95113cf9e6dafe25f57603a9c89be020f54c6ba97ced3c4a024dfc90199bcf08f7c757628423a82bba98344ab7ff43463d23eb346c704162f9d62e0ce056810a80012611032aeb9664addc6b00dede4cf6b4245586115382ae08444bf09a3a3e3a6d8bab43b9ab5085ece51d732371ee29208d800dabd1a3c45d7db9181497e9d870ad28c39915781b52cf792872a1365f81be8e719108c7d3ba8e271fcea542c80e299badbb7d0c720a4dae91080a6128861e22056b00a9bf5427d08ce92c34f1632d1c9015fc5ac4987bfd9a5f43f5ba431497ff54eb44b1c00df9e55cf68890a6c086c7b88b5618b3bb18c9fe1cff17d57cd147697c9d01c3ad15d5ddc47a5f2ff993b6ff16d858fdc1bf870fb47349f1d93f17a024802dcf4bfa262ad08c80e57b0e7839cebbccd0f8221f09838b9adcf23118c746b82a8c6fe6e37fe01d0da7dd3cc3feb6b3552c48dc098721aec87b1ce8bde0f817fb245667cbfaf019fe430ab2e3089562facd68bc189c91db8a528b553814acb57b6cf6973535774c160be1879174723489c6781ef6db3b9e51f8d47b3bb44169b3a2317f6412b9de6b13f865d34cd9e41f0bbdb657970da773c4d0299299efb32020c54c965986c33810872005a973b70d739e800f211aa929fcf5872c7b9940490db60f8ad539a58cca0ae394e7cf5b753661981ed7dfcc24832c81495ca80f9e89a4d089a872c898c0348adc522cd702031a06640fc1165ccc464c57b36a390d6a5b0d21f430bb0a6ef8a98cc2ea74011b07b78b06b2f2389abf3ae8c9b2459c08d884f0f715a3cb913312906b86b5ceb87a079a4d109368ccd12948316fda6d0d80c038a04037713853c19213bc5b8a9ef433a69a1b6cbe456344a2737c3e8861c2da45390c650e5af6db72c15462c7513a499c5b41de5f12dfd0ff1407361b762ddc6be0733eb51ed68afa519fda6d89f83e12d88e55b82bce1b4b6bb4c90ec6970d749720e2caa61220bfd94e4a8d9fcc82c49b41a2ca6a28174737ff38c84404f2cfadbfa2a0a68af2fa2f61e2a2a84589055c596b05462152e4f2b72d08fe55519d0175989eab0e9309d01085674b5d4dbe62cd80a6db6dd2198146e20bf1defbf7cbe124ba03f92135f272023f81f7f7b74fd0a89e9db40cbadcc6596151a5527291427f3ab37db8ddba0ad09ecdfa5e8dacc004c761a15a8a715f15def448eb321ae35759b91a4cdee26b5eb5d2b2c9a5212a72605e8b4167c0a51e515a296b06cb4f8f9701e29b71c3abbce67228c99d4911830a123cd781e80de1e6481195358c75a1db39847a5077a76b41db55bcf42202b3496f6edfb1b14e2900ff4abf60ff1939eee0f643101dd34ce92f5cecf46feb28eadc90f28d6d159a5a3b74990f9a15f4dd8cf4e3aa2cd0b34b1d99285d004a76b5b1850c91900701ee94533b5059a20c09778705e9f4451743f1d73755f59401cb4a247a6f4fc9bb2b16d7654e52b82279c9e744c6d528abf5f7884f42cbd0b492f6c71fd43611583cd23455931d83c22ac3a335b40ec96a1b2c3932be6dc1504b7223fb8afcc0a3a0c664c2743bf969710552cf4ac941126f403c1f54eca04dd6d895273e60112036d4487a5a39e5aab22363ce817824f91c044421327a5f10fc4494a8dc44bef925718c32e0f796105d50b978559935e4d8806c52ac28fd4a2ce863485b38bc15e8c068b2523233bcbb32e285d0f8cebabe380d3b4bda1f37f2f138dd5bcd0cbcb9723faf0e5072513cb4cf6e31a922f9b90466a53f1053774b3e76bcc93698d3547fcbf412ff44d55e1e6d5f5710f9bfca1827394657011e1079be9cf33c3c38481c6ac62197382522a1666404c2ba31b0001f775126f0df0f95092c8c03a7439777f8ff7e530d0072a9b946fa8c17199cf6e82d13fce979eb993a2fd91d2614cd403432c68532477433869502e7c7034970bf5eb4d1cb2396a52abbd8b4f55c6f6f82fdd764befd5687e55da1ef8b0d8798fb6c685a61f9a004186f4badc84242c82ede5352fdd8da5dda76a825fff213fd568a417b73850401e3633502dd9de17594dcbaf07f0f6c682a58732dc1b38ee0eec2cd23aea9f0ce1a81cdbc49df13423790d66d19ebfc4a646f0e93c1cb701f5539c65fe95b3f5456b6f28867c6f66524ce7cbeda80be6c9e6f375d6e43804abcab0d02402ae167e142d9571a6c168937bc6543bd1bf70bc0d697bd60eff77356710a980537f279baed9225db062cc7709eb175eb06e9b51dba4f72de4e1b6cfb0a5afe08483baa126145671d4e87b2e43968b5836119badd33e74a967bccfb5c87bdd9cb64eefc0769fb3598d725f977b9275d5ba89059b07fc291b92f342d3f2025cbbea42f44b013e618f525393083259c000e663ba3babf134ed0c1be1332d1f13a25a8a811a940476cb206c40523d70aa34baaa628abdbac35ac06fa16db6d2171614a8c08140e785ea0d015c08e970155243abe320baff9b301045f70bcefd769ef58b37336e9f7b951aa81e4d7ed23e0695eb082fff869f89fa9ec1f8c0b8184cf6dff3a9fe4808c73e17e8e8adc8f822f12e80c5924054c08ec4546a257053c650aea5cdae7d92b6289948977a03d268ebfb0b86b195f7becccc7bb26e0135100b0bbe8da1c8a6c2b3d6722a77877069fb647bcc5af6dbdcd4656493b580a68a1c3fe672f308fae5ee1eec66a5409e02c53e1079ac5c193fe486b348162b23aaf7612e542637167e493a7f4ef4d450806f5f75d0724137e788bd6748437127c6f21c50bcdd9d25beef2c2fdd700cfd69fe1d9b8ebba3082af2e413f7a3c3e24cece4bd770c3b3fdc2be210ed4b2b7760228c30b68ee37d8235e17d2cfb41c10525189f8b2abe601debe8a77ad68643ce2f4070670cdda58e941ad7bb5e365b9f7cf15714beb587b147bc039e5c225015ed3b991a6fb934289d169b30a39264bed63d4c7964aad45b0899e27a0906b79010b39a2d16b407808ac19f5047fae6dc5405024f36aa4386ba90f1e6f3d85dcc81950751523b943866a262799acc0fd81a3fe4e0f978704341b4f8bbfebeda8e492933ac7dadf5a20f03efb3fe29d8b0026c252dd9e5644a7b8c02ded053a04138d505feef8c8ed2aabb5dfae0e210c6d8a19ec6f2e6c538f55651f5cffcfd421948eebcec6bd18153017c8d026a654ee2d9878452cd8f7328968efc4b6cb0eb3b68f7dd229673c6cab0f3301d5ac7a4970a35d9785e7fb5aac5d552e9811b7581807b055f4bf6aba596d972c65a4f8ff70c33985428465e3ae64b808d8ed6ce5d0f2b5dc706be5f84daf755dedb3246b226a95b0e2646de79993a18d4bb47af34ffb301a895437f2e77625cec6835627f8df08905a1b8ad3c8af878371f5c52b2274b13cabdb448a732b0d8edd2fa9c77b3674ef73a445a95de0bb2923cdca5d5b8edc176b8a8c3d02fcd227a51920ba9aa57f8a34ef26bc98c8e64bf9a4d73a21e49f46535329267da1c74f98d2778f0532cf3c2af82144264d623664904069a785309f15f791f640729b5bedbdb1839934052e4390653cc984d8d1e8b6d1b2547e4e3638d78346d508b5cf0667b25315518a7984d255b8d25e01728b332e07967e0caf2fb1b04588ce2bc0078096c7b87b252555d704a86d6619616e316f797b012d464f71c404b7a7399e116ab78e110d1c9f65762242779799ea7b60dc2c33834e5d03943388b03c8272580ad83bfcddb3f0dd76885fda3f7c669ac88aae4bf234ada00a9b82b4568e7e5319e70b6be1f548b13da2412fe73715562c6733f2ca0b334b98dd01b420e526732d4c4fb957b042d41f789715734cd49316838ea784b213e1baf23ddd22474d375bcb282f4f17ccf13b6786fd94fe45bd5935254ea7e4647c8f84876c3ccd8cfbb997e0ed9d418aff5fce756a5d94c1f30bee8c8994b4f5e53e70eb42aa5f7d499dc78414cb0094c798a9b8ad8d82f716bfa89bbfb3e41688ebf203f9d335e34f9ababea081b2e0c13c46288e37eac3811a379dc2b959f5ab9c62a80d58ee98004afb8a725755b67ef0c56aab5e9c40c1783d5caf5ba4561d51016175b36d1650469e91ab01c22a688ccc0026fa7a32516f24a61cdc7f10aca59b13f93b2310e7aa8ceb13fc140fbbe73c07b32c7723c67bad16195ff9088b608e90e6e7042d5408432cd4e051ef5da64c77843604c9280fa4a8178eb2956c62fa234625ddad46f36b6a7151720044a9101cda30dbd6eac518f6a29cf9255b4151763a82a463c06e33eed902f4b044dc674cd7e502e12821d47e88d9cf0475989001cbc5130b3f9c9475c492da7f1626b18766b216c08ee33c8add723fab92a76667f58524aab2a343d938a049c47db6aa4684d824c402bbba2617c048fc47a6cbe1028001ceea632f526318d2f1f1c95f941a79f34f56a8d9c622523ca187c3d8049d47a5c079e4b636a502228a1650ea3ed94bbd024f436128ac9c4839d0a68403d39720a86e93f60dc8d0646ef5e5f2e268bb28d28d4ffba3a15845dc1714f482ac3c3be2cb117e08cebc00b25bd254e092687c40c79b40f6743ff55f7fa9589559b47fdd10abffcf1833271c3f1b9457ea88fb7c797b0e2801b0cbf066b0dba052477fcd0d9c53f6389513b7f1ad7602e1008f8da1e87387c7d98f88f597c2dbc4dacc96badef7e880a5d30af095e90b0a8537d1c09494946c3e67bcf10788c3ed3f2f03ea3189b27f30aa5d89b51bf0a187e79683815a6d69cc51c2a689ccc3e49ed668e1bff4df1719a191c8caa6a0b81004be52c94a5fbf18fa3bc7aa1a3bc0aa5b6f6fb5a0ff58a8e015826edc7b5556485c1977a9f3fc6daadf032e10c3918a43678971048ccce619fc1e09ea8e2e64984d3813f1ceed43423e200aa16a080c748ed05ecc3a2197e8bdac0dc8cd08a987ce2c1f286a0a0a3abe0e24a19964faad3bfd0bd69d8aba5d905f6074c7334b2a73ac72e245f545e74d16195cccb71bc09c4ceaafbf5524783d6242a29e4e3c1f905f95d44ee80277a2a612876e68e689edc937d6b89087fd141f669b3afff98b472efe3685d3fe51acf437d8d9c0c772d046852606a36073fe19c45f39bac383e2610bc110188e580c1d4145d0adb34c977b7c2ed617982d48951e607f6a7088c3d22a6035f8f79300656b5c424b533133c0247742952e8eee02f3db556de97d0f88278733b183c188a7100ed46f6ee54d5fb9ce9d91575ba6a5117743d83c206f6ee4f9cc6cd11e68ec90ecdec856c16321e0c9b625b71345ddd9d703626cddccd7a398d126a7905d6453f75d016e830d19996216cc75759e818d94cb49481fd7c3b1932d0aa9fd7e5331abb38bf880cddb0a5878c2fd4a9e9a991d763a907f9f89fa28d97f88d768345c49ad5ed9e849d2929112cba5573d1cc29011543ab357d235ed856e79f0f5ab1d4b27a6ee9d35db5faa5835895c8fbddceba2243166153f2adb413f0e96520bee756ff5b87cec372c25ed43b3dbace670f67837883503d559338236357b079033cbd4e565c7fb7ca79d5f59a7ddc9a0fb78f236d18863344cbd136d6fdc3313b2768aeb1b7f0c52a3b7c81347dad75922fe589943eed07bc042c9f1021e26fd3d91cea2b1bcda7c0cfd846241987676ae0953b34ea54add84ce450280cd7add28896c93cf10b45dd79938465db2a1709b90b130a108b032e0d1dac97e174fdffa009b18ffd0ce66752598a424eff7b439441e226c41a0bc6a38d57aeb2fa37dea5e229cd25a11c2452e6f3ccd2a82d0bc712928326d7b7b257ddf17c92f047766f6b9b01462fbc62351715422cb804566112dcc67a93e26a43edd9831aac4c554c38ba76c8f6e8c379218c9276860d87019deeacc1bd290ab91df5b911c47fe20ddb35a259672de1fa1d5e62a29187c662da05a2d8929e615d7021fd3e3965c01afdb235b9e729e9776857d95d93d1d0dc9ba4a493cdcea702d634b0f98cd76329f21af1eac91ffb6d7527c8c6cdb18464057062f418ac60c4aa4ac864a9817a0d1fb9a4505e090a6110d5813bd8f3e1fe4ce79fae619ef0ed9caeedff14febab644c39ae5813a8e1c5486d0d681702cd333df9df570177707193470efae77be3aa2af6667964997fd80c5b549f408810b66099ae53f15e42fc31af46f3f44819aee9c3e06ad52c3625a8ef292e9f80500a30ccf7ed451f6e015370e9f4ae804184205cda00084a62b8e5602a9bdf24537425ce00fa2b1db853efd438e5a45766aad89b6b3cae63132431550c84f34b52bad2a94fef8485ea5876837e90db3424b3e230efed1f057e6d141fc9fdca142fd74a9651f8bc3f8c4f1431d6b75cfd1cd786fccd454bc1107ab1f49a7c73dfd088eb0087f019f43dcec734e2e7d9fe83db114f0e3b6a0ebc080834de6e420610ffa7272e0b441870f598fe24d7483f4a25457e8624b959ec6c23df55e24adacdb4a7d69107edaac227f14224957d64dd7ecba21ef2bc46c997374d9ba98c8b6d4d995d761d8738e3601ba358839b01d7a85d080300a07cd2b4ecc63568cb140845de59e2be2312807df99c89dfb88f1abcb9b12f19cabcda45929ebe91383d9e12aedbc86ed2dc3a8e52dbb937feb09601531988e2b3c84765474b4d42830a8a3c83d3de1a5c095fc2eb403bcae21ac66f1349f4d47a3ae5de38bcb1ab9452af415f3086239be58e9fb1e1586a3b02f5afe24bf1713c4aeefc07b52cacf6aac3167c1ec98abbee4ed5d70b332de279cec4784f60959fb4e0b1f6a1251eb16e2b3fe366a53bfb9cd9e90b7117eaf62757921fe3164b662859f039c281cc78d9fbac7e444750ed274fd382ab70535d2466ada88ed2394c7b6c923a4370f33776b8875fee0606a1fd2d498116d0c11a7f87816cb18e624f0c4a50867be683feb08abc35a379ff31b1a87800f6131e21196697ea0936827612bd698cfce88c7c398ba5e8af193306c609a1322937998754971e2cc08f7197419e607b6e41a78c3888ea4e0084c5fcfdb9c642ba2f9afd6ef7192f49e6b9a71875324928f92f5222358ec59f8769bc518958a3fe3f74600817c15e6738597fff6b7d1138fdc043bcf96f01109627f55203abd9025520461db4b69956b217256ec63fd2b7eaeefd18d32a3b6a56f5a81fd734409b53890ede48c4f48d6597a4040631f03465796355be88324710375f0d2e870874d6006d8f76b8a1e14ddcf1bae2e48de132867909fa7ccdcc2a220ea795275d57a22260484fdd609467c92760facf4f408a4472546ebee2fb5002fc8a3a61ae5128382b3898c7727bdfec56cddf92ff5819b6f087094916fd1face8e28a295586c138b63de1b1ae5fb0f103d926c33a660471368a4ba79032ad08c8db261fe94e572bbb9b7ace4d6dc35ac028ca6d07976446cf59a84f9c54f0cecf5cf068c8860838915efc55abd212980dd74d560d08a7887b4df80e55b941c60807e8e9028bf9c4e61b7f6efd858dacdf1b42508e9a3335263ae7d41599e48cfd02578807a4012e9658dde87e838ae8072fd1a729c5e714e233aac760a92efd6261dd4dcab52bb0118efb3b91d35cafb3f49df6ba406f82603199efc4094c39ded7966ee9a5d1060402b19e7e2030d9e01c7d60b69f1daf9530ce72f3cd1907cb6cca2a86d05aa3a61887f2b3fd5db4aa2c586b282ebf07dd65737eb68a619c3a392bf6958e52267bcceed7b1df1e96a60e3a29f9e7da08da443d2027f7b230dbe445cc8ff006751eb3f577c908eede3ed3e4a4829a464f5db255dbd31981f7464490664b8d2ef19d3d52ea48c02ebeeaf2712180ba627d9977e43412294cc98832c563e337e3626e6e7abe1ef166f6778dd8fdf593a96463d9b3854d7d73109bc2f95695d7eab9d9717bdeba5f58feae34378f4cb8448dcd80b86f451e769f266b59e14db6c9fa6119529373e2b1135c23f255225cddaa28400cd6b6a50dc38fc9e2f03fa0ef9d1a0cc7aa49673daf268ba8a0b390488b74d22ee6cff8832399246ded8f6465960ec6a3155af9ac83bf7705e12d1dca673116e817c650b9fa4bc4731d200a232d4d51afebe97912289408037ee184b70c3b60b0a6d00130333333333333333333d3d051bff576b7272643269924d1489d20bf817ea794524a299227131f7e9136fc45daf017d9ad6d23d40c02e90cb10c6c0c332eb080ab0f1898c74d0e3d76973cd5191758404888c81e163e5e60100db358fbd0d5100e3e5c60f8522684a89304f5d9741a35dac61608ab15a6942cd8f76a0b782db2e8fc81072b4cf294f89c2532747a15e6cd92e4d26fa1ff2946c382872a4c22f7a13aa9136f6611394b85394ca6b5b68610e6175418d3cd24e9f96264ae50f03885b9d2941246e77ad29d34b22592a630496e23764d0e7af5ab529844b3944e494a429ae08f6c91c2142675a9fb4a427f49d928cc419838e2f47d9ef804250af3781e5f13d4c9febe1b9045167d45284c92a0da53deb7202c3e235b070a537837932294a0d2ff32b2f50953be51a229d3b9b4351dd9f284715c4ec53725670fa31fd9da287874c21ce26fb4af68d12ae1c8163ac183136615d5174b1a5d42747813e6d02ff994a47d4b50c9e286888ea3850e4d98ca72ca6bdf69d294fcc896d509b83261d0769f47bdd6c988cb0313a6ca742fbd245e984df3128613df4e8592dfbab025cc7f9287b464974dcc4d834725cc257405d149877f101d4a982e47f5b6e5889fefdee03109839e5eeaefd988e9970d1e9230cc5e2815e74c322d710d1e9130889079b2884942c2b46f267d4a79f682c723cca372b2b2c851db9aff77eca0b1c311c62b49e68dff8fe570656984d9a29712a6e65a1b2a173c1861ce7325a51e0d9953dbd6224cb13ac754be729ea56069c14311a6ed924facb798cb97b34498e4ec8b6f8d9362fe8f6c891403830722cc492efd27aa8fae94b591ada4bee0718857e7bce4932b3cb2f5040f43184db57ead3aeb8a8746b67ea5e05108f3c5279dc6830ac2846e64ab2a0b1afe26380f4218bd9496f24d2d1b4b8e6c69516a10e63495fed72fa795501ad9e213141384e94e5c8b274a3c69942682ad1dbf0096814720cca3525b35d5ba2ce9226c80305bd2d6f32b5f2acb39b23503ad16336ad018d11162821967b5985190031e7f309ada08ef20623cd65ad4e01d5a40c08602d2c30fa674422c6f9d9ad0347d0e2b1a9de3027d305a7df57fe814c5cb1fd9cae583515dbd93bc20ab32cc3d9882aa78628a58fd56c5c7000f3d18456ce866e7871a5d19d9cd0e78e4c1ac37aa924a351d1542235b9863078eb380071e4cd2899da1835810264cf8028f3b98539e3699bd7dbb201412a25ba47fae2178d8c170979e237fbd5e3aac6645f0a883517bb4cb35edeae4e44f9ffad367e960b67072acb83c0b42be621e7330adc916f9747363e02107b3a71b1dfbb407e5a2fc070060071e7130e78910cb6cd10b37ad120f3898c5c25552792267cd6487c88d1d36689c251bf07883f904792dbe7adac92d914f018d2c9e0439bec61d0178b8c160b6595beb41ab746b83f9ae83ed585eed09a21c3776f40d05ccb86246038c0de6397df59d24d1162eedb1065397ef7fe5a0f5f24845fc4d2092542ac0430d664bb256fccd6d27573dd260166925dc92547b56ba91ad2d9e04225974d7282b85a36b5c8e1b3b3a11f14083d9a493c372beecf2588f6c25e9018f3398356f54967c825f6def6106739968b9841023bfa337b2c51e65307afc10a15427bfac0ec0830ca61c3ae50b324bd43d68644b43d43cc6605e4f9278ba829ce81b126219f01083c90439a7f5f4f9a9130b814718cc3967f7d26a9e7b725a47043820723cc060d0c9d4c75cbf8bab21cba269ecc051c3dbe30b26594f3b58ec328fa31cd9621d3668f48ed416080911a9e128b8f282f92dcde77abffce33db2d5225c44f0e882a92f7c9a97b4787d251e5c30971c5db7f2d789dfecb105934cebbbb7751d31b696c1430be6aa2469dd2ce9ad4f5930bc96a5b6d48e9e6486a38616386a6871583029730f7fa376e1f4e90a065bcf0b13ea57b334327858c168a632b5b68309624d5530a54f7a74a93dd526ee556af0a082b19357589276d29e4242cce03105c388d59b9c25e8ac769282a973b8927356bd5a74ad0b1e5130a9caa7c7d2e532cf1a1621b9050f28983d9c2c17267842426854c1c1e309e67393943e538b361f9e8187138c9546c853b1aaa0ea6c8229e393b589f6bdbe242121386ae4180909292552386ae41841317830c1e49a39278917256b8561f05882f1b3eb62c733395899446a0c1e4a306e257d2db1a96ae19104839d24c82ab7d32989ae07128ca1d47849bb72a12b191282a36b8484848430c1e308061db494b04aea4cfe0bd6c1c308e62cd244fb76c7cdf6123d7814c1d4f72587ca999af3322444474895483103e00e1e4430bd9a9cea4f8ef4304a46b66e90a0776cbd16af05058a253a44e03104738a954c895bdaa4af85608a919d4d287527c3458f20184796b44aa7fa52ac3c021c10a9e1010483eeb19cef2f9caed846b66c7c1697ecb891858e520ef0f88169cec3e9985b25eb430f1f18d48d924a981c65ee1a57c1a307e65c6622bfc554f40d1d20e181c172d259452869bc4c424242423c7660ac64bac4674f2d295921215522d5060f1d9893a4826e78f27e91158f1c18afba4a8ea2742e256b640b053f22428386eb68911b3bacf42c021c10311e383097589fa137c7a47c7948085bc1e3060695a469f769ba5790d9c0203f982ebdfdbaf8f1a2c1a306c68d5f3735b1a0732e758e9e4048482991d25123cfe04103d3660861d153925bee3403e3f7452fd55141751ce1f0908149da7e119ddd7a3e8559dcb871320b8f1818744e268996e4edf6381d123c6060aabd247956742fcdd1e30546331bade4f9e434d2f3708141d547ce7b96d5fd4f2b0c277bf62ceeb93f05392bcc39c8d6c58a268896ca2acc256f3b67a4bcbc75199871c58c07ccb8001633125598c49d5bd89e9e8931990e17a9305e4a69bb6647a8db8c0af3a91ca1f1af751e4b4e619284c512677492564ebc62c615331030e38a19079831012c66e8162e4c61ce71b55cbe29ea92d845298aee57f1214fec2da00417a43088ac570a6ee36241a59448a1092c198549ac53f951e293a0a4de068d0744c18528cc9fa4b67b07a5e3d467a1304982c7cb61335ef32a5098d229b945ce422f471d9324b8f884e142dd5798b728c27a6e820b4f184dc97956b89242e7aa13e6f2b426e5b4624204179c30d7690bf7bfa2fc4c65082e3661cef17dcbf6f5ef15b761346110ba3c2fc5c9497c6b6bd0e82caec884d9ca2f769252f84f79a298309bcd7cc659d295aa06828b4b182c8525dbf24f6977548e0e2c42422c6150fd4bc29fa416724f24c05b0983f7e838d93d577c1e97e0821206a5ab931872be914998bb3f9b7a6d969ccc04b89084e1a2bc868e10aba7c6a18323611e759f24d572d550823bac2470c50c08ccb80016331270a60a09f3bf88be9bcfdfa636c62eb8788449437865b113939fa41928820b4798949b49919791a1e4bd1126b932e4edb5ea96bbc70853fa1816bdf45c4f0c255c70b108534e6a7dd6db93907fe2c0d122568922cc7a96eb8436ed9295b316709108f38792e3dde29e37430b5ca15501178830694b2d26dcfe479327235b2259681c707108739da0826a313127aa212121214e034d101272058035b83084b1c5abee93a0e4b46b268530c9381f6152ca294d0a17431358528430ef9645133125c9594a3a05178330c75a90cb9295bc3fca487021087349d59f3ee713113fb1145c04c234fe56c2f65b7cdc2c0b2e0061b6d491176fa1b58274a9e0e20fa64eb2c923459724fba59de0c20fc6934fa3e26bc2494a385df4c19c25d59f20943e41cd0d090909495cf0c1dc61a17384ced61c8b759462e3620f6651d952187552e7d44dd3181012b222a523f5601e9fd792e617cdb632a2a31910129288145a1e4c325457fc86f79ec95de0c124269424e9d8695136740753f67c99201e4348d1e120b8b083493a99aeafb7a3a4d8edd6c1a0e77fe1ca443f592f177430e55bf83339c7c598d6ca1cccc15c6eb332943a2978021772308771732f25bcd5564a0d47c1115cc4c194f7290962527055cbc1c154e2dc688efce9f7ce025cbcc16852b024878cce61dee40693e92408fd109393bd77d1069314b675cd547496ca6961c3051b4caa94fc94c4bda92ca3dc818b3598e3d4aa4b478cbca95da8c164c27377c97d726e4acc451accdae77d9565c2dfca2121ec031768302859162f5f8e6b25eb2ece609a15ad9115767fa785849c09aece0456c351704f706106c3bce96dfb3fd94eca6251c351506ae0a20ca60abaccbf3b3f070b228371b5e3de4f90cd8bd98484e0180cf361f262279364d18e052ec4603eadfddbb15386d2e5163bc260b6f924d6f52d44c9302444cd082ec060fad1514cfa4b1f479e898b2f98554f8db2a48414cbb1f38249d895125a253a494a740d0c2eba60923de8cdc6498286ce98062eb860127dfac2765f8cb2595fe0620b06f5a14ae6efcc8be7ac48adc085168c95edfa771e3d5f12bac882e14c8dea64927cd2e771644b07164c3274304b71c652df45b3868b2b98e4f5b8e988fe4e82c9031756309a78f5ed0e9b911fbba882496e3e7afaab09974a3a68d8a81bb8a082e14d8e4f3153d225318e00074440e0620aa6524175dd9892e2c92fc7c085144c225d66c4c52d7bf7525f701105a3aaa6eeedef8fef282444645de0020a06ad2863b9bf2c7bdc21212121496506c6baf293774da578fc4461aeca1fbdf39968c82e1406dda243c552bd55923618010e887ce400041446b7b4bfbf8e25844a3f61be1c3d5a98ba91b9cb13e6d461fc4eb2ff8ee7e9845943c3d2bd7f85dac609d386a58c9d20edcb4c9b30b9e5891f22f3c8961a00441386534287bddcc10e8064c224967fe549f67ae16a4c98e64dc92609aad40993f2e81246ffd915a115e4b486235b963099d7853493927c8543c46dd0b8aa8429e777a97e15dff379642b8bb3b5c31f870d01841226aff20ba1737e9eb54cc2582659e8b1ba37199f244cb1b4f50593a5feac33b285b2924818d4c7fd31d9c4bba4f3912d86802e6300041246cf66f63957f808638948bd1ceb3ff68c4e00718449185527aa261ad94a9000d20853f83429c6b37530b916381881d0a5751fd9a29163474f016411864bd949e97a675d00518449acbd7992fbd4d615080909b12d5c240b1c35685cb9300248220c6ead7d2585ee587f883089fc20d45d093ab66422208730ea5e67695ed878fc0d617cfffab87c13443d095208e39e50a2844fd2e9abe415400861d02c2598eaaeb6745a1b8330c9e596ce2e9ca0227c44c3042fa243c7fb1533665c600133424242427488e0d081c58c2b664c60c615332a608190903f18010e88784c02441086d176f17cb10361caad4a22b3d9fb5d2108208cf295bb6517a774fe3b6cbc09deb400f98341c7bd93a6655397627e305568b5587d57962a35b2452325916a8002145043479f2024648bb33d00e983a94db84ad6a3a12201081fcca1c396b6ce266f4992ca40f660d2a2726cdbc70929ba7123c7971100440fc64ded70da923c481e4ceff9c42549733c98ab4eaca399989c57bc83e1ee4fa45d8a922abb3bec60faac234577ca497cdaeb6012ca4ce970928a696ea183715e4449e2ebedf1ff1c0cb7d92a1b6ef2e4570ee66439bed769933e5c320e869383677a4e2384f613381854f2a40415bd3ee9d71bcca2a48abb5e6b5992e30683c7fab8b934a21e40da603acb93938af2a2b5c46c302841c5d95792afc1589d3dc85b92f3ee7cca0102440da652e25a76f3eb1cbc240d26f1563e662b275daa6830c955929cd75225cf66d939809cc194b9b9326f4a96683a5b98e1a897a74556e7f706903298a49968f5affe975a2b0e206430e82463214eac397d6b0c863d39355d52ab5472c560d03dc16cb5e42fc8923018f472122d96a58adf0f0ca6394930f14dbdcfce647600f982499c30677129df275f3868ec28388078c1647a562c9d7cb43f932e9864890b1d1bb7d1b1111d40b8600a4a5c10e9514798cc1701b205839e4b3772b6b2625a46b652471f102d182b2895a6afd2ae86980553493934d7475830575fea8be8baf03202b982d9523c8b66724e3ff1b282d1357c545ac9956bdd1902a40a06ab3115bb7f94a834e350840408158c1de33e496acce54fca2502640aa6bc5d824ee27552e2bdfd01440a0693d34dfcb50fef518a8271d7825fae37b9418040c13c4a92963aba52e98a6b0079822978ba143f6365729ed506102798e7d2d29c104abb69c608902698a28bd241c50b6fb13e8c08102698e3a794239496f956d295204096608ed7493ead1e75da593e8028c16825d7cf5fe429d3e7c8968d2dd01533905e124c7eb2c9ad7d72f224bdbe81b400418261bf6dd75cff2bab8d05c811cc16cdd5b2b4d82759ce0288114c36324a8f8fd2f549bdc51131b38181032982594d3a491a95c54b49f6c87e16a7738010c194e4dd3c4ef2408660f2b793cb2f554427d10c4408e6d9cd9155af77c9350b82499f6a8af6951ce4cf4408204030e9b111b22ddc058b510c407e60ced9740a4b2f9ec28fee6e00e203638fc7eae9f1987d9dbb1e98e4eae0b6a76169c7bfe381b90495938e2835d9436302c80ecc9d2dfda55715ddbe8d05203a30e7dc915f2d49a99c6a901c9883ab25fd52717ea605c18169dbf47594e81b62f31b18b573b09247fe2c546703d32731b17e336bd793bb1a9852ba9c642b2bd7537ac7ebd0d1a508203430ee491f4f6ef229799719989224aeb296928416f1dcb02102220363872b2df75b7229f766025302480c4ca2acce96ea54533fb30d101898e4d0325339e4de491622a86f6411125203e40506f37882d62fbdd83283b8c0a4e7a93d09ed72493cc78d11748d56184da727f173ea46b63e58615a5ffbf3ae114aeb7f4548887eacc224054f2797dcd2a1df872a0ca3d643eb9e96bf14f4910a839ba7adeab4977e59fa0ab8e0031546bbbe24fd4d3c0f61dae1e314e624a889274cae9cb4a9d5f0610ac357792ec1b45d2a39e902212122e5a5e4f0510ae38965b1e464f359cba323391358103e4861ac9c61b12fbdc4b3751406a1464d691151920e221d30f81085312e2de8b0203c58be84c29ce252125f46c997f61a8e8203857994bc161fb32adef71c7c7cc27cc24ec9baa104f94c3d61d88f7157f2783c1fd34727cc29bb25df907bb14709274c399d9ffca5f0d9478dc08c0b603183c5f0b109937c390932af4e96361930e30258cca8d28431ffb48b70cbca49331a59e8d841e370bdd3c8c2023b6820a024f091099316a1a38a9ee51c26c684f9f4c4d1ea58a5628b4242121a3af212e6b0a7ebeac2a9d2a5620993c5eca0c49c244d3e5b098389ef51fb775414cd6d0b1f943099c72c612d2d6aa8bf2661b80a9aaa1eab3f4fc97ef02109539c37a5317ad9717124ccc13d099674592061ca3b292931cd82e8ec15011f8f305d985e122d5ac972a2234c824a1969a7d408c386b6f49e7d49fecf39021c1031c107234ceb5b7b821899ee39297c2cc29cee2a5744283542c9330f3e14611cf1a322373d97a8d7858f4498d278c5d77ccb9ff31da22351337c20c29c73f090a34ffacc139b71012c66548914153e0e6112948ffdef6da98a920f4398f3dbad8b8992dcc14721ccdba17ad7e4c24efe5c3163c605b09821525674f82084e1cfd676dc4497be944198a3e912bb42a9a85c6548c87ee14310c692c5b3524fbe0e262724e423102625a217748efd274c70c6152275860f409854927b82a69cdc92362c3efe604a1922b489d4caae99f5871f4c9227abf4d7261c010e889ce0a30f66f354e2aee74ae7c1ba620258cc483ef8602a35259de9cc05711906665c008b193776d868c016392e707b308972bd4ee9693d98b43da76cb25a63fe6379307ea59c67be46db848707d39958ee9377caa4687207f3b98b12d4ce29df92640793e956f9e471dd6b74ea600e1dc4f8a5a44f996c1fd2c1a8f1bf9dfcda3998e52b2c5f50e27f65cac1ac25a992eeecbfb792713085c9d5ee97c644ec040773e5acc5f093477869df60322527ba737f9eea246e3089a5d266d6f59287b50d26596d1f4494684be944d960aed15f2da2fbe46a750d26f14ef683c7a758a25783a9dc5225b1ef656254d2601e217227555abdeb3c1a0cead1dc77b497accf3983f14c1c612674a9b020640673ce272e6f059555b3ca600a5bfe5fa643d7559c0c26a5c69379ae9373f63806c37c3493c4cbb56fb205c56072cf7d5245dc9a7c5d18cc9ee411519aa12ac5ed030ce69c4d3ce932a7b2ef178caa57a597f733edf68241aac5b3f2fcff31e647178ca2976ac4bae654be70c1a833734af04fd926945b30e5f1ddbcf89db3e45c011598514a0ba60c3956629512d23ab72c98c5ff4f5d494a2fe7688e1d380e7d60c1606172c5b7bbe2feb882416a585af6544a92046d8bf48f35860f2b98dff7ad4a883c3d7322838f2a986e3e3d7bb2b8134f122a18ffff4fd64eda4f3e2529c1c714cc973ac479b8f664ca968249c9bb378fb31cf3a591adccb103c747144c26b8fe8be5a4525f4a0d3ea0605282aed150e3a326c845e3e309a670d10ba7bea3ae3f57ccb0d322242459427c38c1b8faee61d9e2aa44130a6e202024043d0a6e9c6b82c16a46e77422e7d9e9912daec007138ca9fda33cd587e9f71f4b3085a6b529b12431eb45f6a104b388ab9226b2feb3b7249843bc8918d9cc2f930e09398d0007443ef08104b3bac831418eea947fd48f23184dc5931055a2840bc25523988493521c4b4959971491e0a308268d71932efcca92c6443089164e94479f1371e195103e866076b7a4ff2cd411e08088083e846052325c3346bf5bc9b68e2d725c20eb230886b7f47bb293b09fe4d308704044e40308c6d3e2faa544e5a4547e4437c70e1c67e3e307e673f34ba167527c4aa3068d85c08c2b665c81a7e7c307c68e9d776d5ddc4d441f3d304853720825a875b4b08e6ce5070f8c562b63a6adba93abe33dc78e2acef13b68e07eecc0a4b3f78dbb8f985215107ce8c0f42655a7ac1f3cf49a69e34616578484bc8d1b59f8064242ec3f726012a1aa4d14bd1cfba9d3d88203b386b79b5c66a26649f9e0e30626712c9d92ac54d833d9c8960e94c5d328a5840f1b184f2abdaeabf031217b1d1f353057e52e936e233e9faf113e68600e234bf83f29ec774c46b63e6660f82a295534992175f5912d4cc3870c4cd1d37dda98d896b6c471e30c0d1f3130093a29e955693a090626d18b25c751f969a9b209d3a52bbbf895bc93d79a30080bbd35257464673032617aef3311e7c9dbf48909937c89a9e43b324449d9c8a1c5493200e31226414932cd9354a3e2522c6138b94c46e570d94cfc54c29ca4b693a328f5d5498c126615e5daa5946e4f1b6b7500c6244ca5e496532aa534eda1244cd193369552b3c3aa2912a660f527beceedc9be46b6685c390006248c3ffa4413f34a1e61320fee267cb33c7e3bb2b51480e10873fef44af3fb37ca745580d108c389d739e9a41f72df64642b49174580c108c3d5a55c4a49934fbd83b108e39bfc185e23b6b99672188a30a52b6142bfb7497939235b22288b1b2388b2b8311212523d809108e35f4ebebe768292cb4384613c8e50662a6c8e7c0e6152e1ebc2d4bfc6f52f1735806108e3fe49292fa83025c855087328d5d9db44ab7ed908613879a993b86bb12d8d8330cea947f3b60d078d1d5b80210863256942bf45ef94150a84413b09a6e2ff0510660fb284ae7e90ee73fec1f462bae477acf420a291ad7443644447330017861f4c96c4ce5daacaa936c2e883f9e349bf234c54bd4a59030c3e184b92e3862593a24f987b30a89067e51a2709e242226507187a306927b71731b5a3a5240f5f12316b49b8850773c50bdab5caf27a9cee606c3113edac1f6d9f1bd912d9a2988ea75106c30e66534b3965af549218ab0e063bb14f2f2b87ddfb8e163ad65800830ec6b2acfd2ada39983d8f6cdd9c189fd5e560d231db23364e8a76671c4ca1c29e682197af626787489501061c0c27afbf7bab4d95d76f309ee6cdf598185bf285e106f38cd0694c3fbe09bdda6074ef6fd11ddc32949c0dc60ebe175ec44bdcadd6608ebfb323744ea228b5abc1a4af44abaef792f9c11d376c94c201230d0699d70ba6229fc2f4912d3418aca2cd888eab69aa3b83317450de1e4d49b5df8d4d3398736564c4bff3a28dca600c5913e2f49d44b4920c06d161b292f8122bfb8e2d8031067398e9f920bdea7b2f30c46050f15494f9594e965b184caa56ced365cb2b4c186030a5c929e6e464a54248bf601275a7c4d117bd6052297aca278eeebf70170ce273a6954dd4ea9f430b1c96050c2e983ff754c3838d585eb7601ab19e4cf2e8a72696b4601a11d26327e984eaca6164c158b1de4d85cc071deb1b884500030ba614b253b47f0bcf231b345229bb82c9cfb6d4f9d6e9df11d97811b4080e2d6cc0b08239b7baf3eda36628530530aa60baa89b272761254e5c6050c1a4acefc7432c43e9680ac6f81c25dea84ea9752998945c556a72dfcac875640bad6e01230aa6f3dcf1925cbf772b43c1f823ee9521de7aed3ec124b7eb16fb4568f1d00906751e645fb6aa244f7a64ab74c06882499ce7e841273541491e16309860f88ebf24c7ad870d952518b5530e236d4cd25a1f184a30f9891d7a166639b49e0473aebc56519f54250faf4a000309a6bbf6248a7aeff8b446b644fc51f07503c6118caa9d45283988af6d1700c308a63071494e75916fe24213c0288231949ce22d6fc7d96ea0cd11c02082712fa8e09f2d097db9c11882493a31615674289db42304739c878f564ffbef6a104c82db7879fa1308e6d9cff693cb4e984afa81c9e49c3549923227057f070c1f9824a9ae72b4f6f4233b8c1e18540a157b6d43dacc9c5f80c10353fef792c4e4faa0e4db814186149963b11fd91211d9a27198b500860e4cf16b3e7eaf9d7d6e0a307260cab19275ec458f0d1d07a6d47dd9133c07b12609e306a6b74ef356a7ef637c60d8c01c2c7810b57fc249827f4ae5805103d3bd971c74c649764a0b8306e6125ba2e5536974fc1dd982310383be8cea78d1fe93fb0060c8c03c2a42bfc7ce9dad253130968eea9d3a134f8406030626f5b7a46754a809599a551531c078813968899e6149acaacfc3708159f3eb2dff4b0ea7a4b4c2d84992f288cb7311ff6185f94c4eb1e33acdbdc939223bb4c0b1ba0a93f47726dff689eb41a80ab3967f720f5d3f973f15660fa3c2d4585f99585061d475955352df44c6750ad3ad76099e6cce3d87a6307e57a8143d4f4a17d352986e4fbcb417ab249d2e529864a5b4b373d27fb27b1426f197d382ce969ced89c2687ea6935e8ffe775e288cfba26f6b29ed964982c214469689b1d37177e5270c2756503379b45ecee409930ebd930bdf36679f4e982e3f9cdbcbb8f9473961f6da6d7f2fd39d7b7de1c5260caf2608f314ac179a309bd8eabf96e4e8d87d260c4acaf92965c5be9ae705264c7ad94c36396dda9cec12e62f59dabf4a5d57ec9630667a9fe8b592a5c4b912c64eeaf304dde2259b23250ceb63c2cd877253ca330973d847114af070525a52124653a6ee654f9235e645c25872a22bc8ec216190ed953f4b2ad245787e78f108c305cbfc51268d955f46b6ce11a6339d537c2fc586898d309f523ade5b6cdd90214698c3528e77a955ba3bbe1661ae9cb2995efa105a9265e485224c4a055d9f4d0e8e6c99800422a91f33f080d48fc515337668018190901c4f821c5de3d18d0884843cba61c3f43fc78e93552ef6f02211e6ccf6175d2f7d63d2e005228cbabfed512e7492537508837bfe8b1c71726b9586309ee9a728eaaebe2de48217853065be5805bddf33f111c2d86249ae3521b5c3c70661bc0b2f1f3bd382692c087389ecdca617a274a53a861781309e9276d9ade424af42409884b889b5cc7c6a1311d018c1e7a8fd8341988afee59f6669133f98a39c7a9ee58e7529fb60f813bcfc242ff136e383c133af2a67c993a4f81e0c9fa2e4589d548d09a51e4c277b75b9a232d4b53c98a389b1ecb7ea9e1e7f8107e3bc8c74d3252c6bc7b2681b437871075336f1745bbcf2c20e86b934e184f7529eef34b2553583177530854a255cfcd265b2ab912d0bc20b3a184c693319134ad4f9650ea66c3a7e94294bd2544a0e26ad2f7a823a495e483d0e0693e7ffe64b29fdcb8f6ce9a091c0c1144d4af93c3e4bca217d83c1e6b773aada2dbbfc0d13e40b379854104aaf4b259b4b6d1bcc67e1a4688b9f446cc80673b0f7a02ab98fe53bdd1c5eacc17c526bd592bc4fe2a406c37609a7e37859cd0973bd4883492713d34b5227683056124b8e269a78c9a8cf600a55526991f35529a7cd60f60edbbbf2f776f295c1986d9fbc4e6ac9605251aba324fb0a22f2184cfba1cefa47094ace1e3118b49f1ce553f59d594a188ca2c2ee97245d7fc7cbeb008371f352ed4d2f652e60f0e20ba65259a3c43d3163a34d890612795fbbda7ee105e3655eea69a8fc79ee911529b523c70d1d782fba6014d197b3340bed9d840ba6ec2db23765f4620b46cf3c6d662fa754571dbfe3460644ca0b2fb460d2d949b332de91ad1b28a917bcc882f1a42ab14f5ba3e438221b9d56831758308d47bb24e95ce55f2a8b052fae607613eb76f3a7f27b6c05d3782953722c9c88bdaa60d2e9d7e42d37252fa950c16c52ef9334413905538da5182f6a41e8f7699c1c3f8190902ebc908269e7ce24294fcb58f8f845140ce226bacb45116bb9823e780105d349499e242e67bd7af80453ca9c4e6392f23d15748249fe8f8a934776c9fe8c6c130cdaa27f22ec3e9f8a32c1a0ed64dd07a52e785a5f2cc16c52466bf5a41b4f4a94609cd3419e54929c491baf9831e30a2c91dac38b2418b67b5b849b892eaa4782b93b986a976a99d68e6032ad93a436253d76e718c174b12bd5e414e66aae2298c28efb9a14333c9d9e08c6134aae97971cd3f434b218b021012b1b5a88d8b871958ce0c5104ca7dbd767ade42449ee8510cc57f6bb9dc4f198167a1104b307bd36f3b1224f7a376e54e005108c16732a871071d1158e6c896c916347d6095efcc0ecc16eb4b709214358235b55e5082f7c6032b18eebf99fd34c02bf9185c88ed7c1588484d88b1e988212533aec29d1accb173c3027593edf5d2ec78637b285430b915783c18b1d985cc32ab7ef2769e2d681399fbcab99967f55d11c1867b479ea7052cb9c3830dc85bf9b855dced36e60d219f912ee4ed6a4f8850d4c762da6dfbc4c5eb52d72ec2875012c6688ccb8624603761c2024e4450d4c9b6127d52d3d7c13bca081d14f978c4c117b2dff0ccc7ea34e97871959cf65604a714b0af39d24716779110353bd89a524cd0e512fbd808141e98ddae925499aa0f3e205c60fd15d49eeba933a1ad9d2a1450d2dd0162f5c6032dd9d43bde959ce9e5698dabc72e4524fa509b2c270491895d1df49696947b6340020ab307afa1be1ae9efb2a3eb240005185297df5633defe73d646100498531445c10bbf5fa20c43a50d0109871c516ff80195714e3e81a870ab376dc51b2a8e9774a8d14c829cc9d3d9e668fc84fc9a1850e1bc62c00620ab3e7285a4f2cdd4ce7700220a53085f7f79d944c5a13f58c2b665c31e38a198902105298f47ccae9a37217ef62d3c2d1354aed0019453232617e0b5d161727a5ef0513464febeffeadfa57e9c896ab5dc2784ad81315394bd9c46458c2f026aae986baaba524235bba322a614e353a7b98b8ac57324a982495f42d4c344dc224875d8efacada62ab244c295e504ae713542c391a09b3d688df7dda748f1d240cda16aaa246cee432c9788441057f2b0b168432f97584e1843049a8c516f524fa383e8726e56f822b808c46184cf49a136fcaef4246984743495f7a4e3a2137198b30769f8ad4947bdb3eddb871382043118693a25bc97b9ded3dab4346224c5ffd6649874f37a1d52107198830075529e99c254fbbb48c4398a4b812cde3ac72c4a7c020c31026713cf43b2c410d54aa1026312fa9a4190d1d4e268439efe747ab3e7e50fe204c2687ad2ea16287b92a08b3a9891ea74bca2ea305c2a04387d1a684e8baf24616059f280310a62b25e89e72f3dc50ffc1a0e49c95ecc29d901ef58339e9cc4ed162eef5751f4cd27b9c4d11e3c8960e1a574690c1077316259bed29297b305c8ea73c95284a8b4590a10773b81234b4a9dc9f4e97910783f692aa3a6fe67a5df06036398a30f9fb17410b84848484c8b883c953d07fb18d5f1bd30ee6249cd81a7961944a2a75308736b14da8bd94f7ce0064d0c124ebe424191d4b2c133407534ab5a32a693df174918341e5925389276e58c627230ea694224387ca3813bde160d47a132ce8917bcf6b480896483542c61b4ca27ec9962c7c5d44ea06a3aa8ada3da543988e8e6ca5744384044e830432da60925495fe587e6183414931e1d4a78ea773720d2651629478a65c3f8e0804196a30beb60891a783943329196930e74a82bcd3505e5f6f0664a0c12046296befd3234c4e9fc194975e2d9dfb779e59fc88e1408619cc4156759692a3bf7c4946194c59572d8d1e1df219924106c3a9f7a896a4094a70750ca6346154104ba12d6b7d068484a0e0475a86184c29cc84580b6da5c4fc14d0b0401206934a66b1657d5d3272e9810c30989228e24943f6bd7929e30ba6943d57e74ebe958bc9f082712f956ac966a2d789766871c3068d3515c8e882e14c892d4995bcb424c40573953e1fb153a53594b105635e891b2a89fca5490b195a3088934db4eb3b32b26010323aaae74f113ac71d555830c72b3995ce5a23efce0b4840c615cc29899fb19c847ff924709061059305d3fd5f26e813e6546b9051057354d37f3541e77d0f7320830a465593a25c3ef55327412fc89882e14e52715297280e6448c1e8a24db8b5245fec7492110593bc58a145fee57269060563c910da84f7ca9bec4f30e72ef99ec54e34e1c9a2479002329c602c4949fe2b2635b40505329a600ebd24c9ea6adf361a0974f405cc6ac860823988c92bd1796174ce46b6b25c206309e6e4e67eb79d84fea097a1046358b470e9c204fb376524c17c2ab88aa570e13f7890601ea5d5c4b4e4b01c2a19473099d279bda412943429dd840c2398c4ee89fdad6dd2e84e4611cc3196946af7f82405a10c2258292190310473aa9e3f6d92c9c817f11132846036419aa7dd5d172113c172a103194130ad59a6e83395be54809087095593579e1f18ebc365cb558c2d65715d42860f0ca72449ccd239a89ad02220a307a6ec755deae1c3bb2789d8b841638bf4af11e08008481064f0c07c3f1ac24ebc6c15b7912d9e718105d8780b8840c60e0ca7575ab58412224d3db25556c337f0a518204307664f7229f9f9ad2d05253272601a9977ab73627fe974648b4364e0c0f06a596dc9b2bce76464cb72c8b8816145a7649a27e851aec9b0813969b8279d4d5cfd2757460d8c26aa66fb2957f4a9a89940060d4cd71e54ee7bab939546b66e204e1b3266607ced58794abc1d1dd432646016a1a63ce6639509b5951464c4c0d4a54a8815254e8a15c980c173da4686cee84990f102839234e57f464b18bb64b8c09ce4e896a18368b4c2d4f53bdf6d82760e2bcce33989f4d22623db2c68906057610ce99f3c46af2e891e111b3768682521862a8ca3ecf64ddbec78c5908d17317b428c54989320547efe683ae824458549e52bc9939af8e117911be8ee14e6d3f59be15d4a633d53982e5c9824ce64540921b2a145ca2b8579b64f7a53a286ec5fa4302725fe293996787972a3306f8f30d1264a47a83186280c5752fc3397f712ee8d110ad3aa650d9956a3944e29158418a03088145def334a8ed57c9f30a84f5f42b3add39e30aa6c2765392c9d307f97fb9c144d5cad3cb2a51582189c309e367da257b21222bfe3438c4d18d4294b1a3a8fc5124a3744121dfd5854d22086268c673d627f497c92bf202246268ce54143dce84afb1a156260c278d2d2a8ad7e9f13a34b182fe54e65111dcf54c812c6b40e7efa29a7f47456c25879c44a2bf46da973244709734afad653ca39a8b8fcc8168e3e810e111b37b64f60011b12a82b6694cf028716179831012c66c020c624cc23943c9113dfe15b0ac490844178fea49784eacae10ac48884b1ac4a89eec12e574e818441ae46d5e9245d86923112311e61107af2bdef9ce71c3bc2682147c7709392a79264640b87160f88d108e37ddc9937bf6ad349311861aeebf03f962de524c70d911b39ec0b311661b091bdab8e1f732b2b0a3114614e399fafcea74eddf7c816968e0accb86206db2146224c777de264bebdb288ad440a11e637ed16bb53123a96480436686c814addd861a3016938bac6e5210c6752d72555155d738f610893a5527e7372cd6c940a617a6daf789d4aef9c78642b06214c29c9a96a6cef932027ee448c419872ca53f391dd97c5b3001c5de30461ca9775afaca434dedec85655484802665c31a34a9d224620cce964de975e0810a6d696bf4bb2a51c3df40773d6f70a15f5673e913428c4f08341f8594ef1c24a7d6863f4c17c3a9c94845a4bc249925a88c107932ae93f7a55773ea67b30679cf4eac1a4f35cf4f021f2cdc479309994f44591eb5f42e7f060d84e72b96a874f16e26521c61dcc79548a0a91214c9c5e0411c30e26d35017eb2979fe76cd5048088e1ae8ea6050f7d09d824e67972b3a98e3573a5d5649922df639984bc85549952407731e19398ba73a6d491ccce7263eb8e88e69b2386ae4184124c480832975f44b2b5f4987140231de60bc112a9f567fdc602eab1b513bcdaa0d461125a8bd70e9ae1499718105e0a881811c3748608386056af806bc10830d06614a102972ea1a4cf9498aab9e5b949bae06638e8696ddcd1117578c34186e4c747953b5d8214583c124b96c8474ef0c26fd26e78fedea7dcedbb821526298c124e9caa227881caf128484885106935ca7d37edab7781294a1cfd1233a740431c8605af519933a4a478463307e5092141b6331bb64c56050279c902bba248b9f0e83b1d3fd72798ea1762a18cc39c9d6a3d45f347dd7c896b78de725c4f882e947b4d25c790ebe5f0c2f989387d0a34dd698289f2e98a498d10d652aed252f06174a69f9f31aea6dc1d47749566929e141e768c1b01e2766e50f9fd47d46b6ae8c10230b5ff070c90495392106168ce695924ea11deec7fd418c2b184d90a24f92af424ce7ac60b84ea3a40f23dfe66b8c2a98ff74c9a293b24ad91d3a1a071e2106150cf7c1fd47c9f5182629c6144cf94477f7cf27b1d3e7d85a25c49082412975bb0b2e9726638c2898b54c2cfda4aa6d26b743c78d098ceca0a181087040840531a0603639425828797c3bce2abe428c2798aa3ee9d4a6738cfdc909a6bc27b694f8ab277add0483bae834aa838e09a634fae14284c6054b2ec174a183cba74ffee526251854ec539d29394962d524982bccd9f5cb9bb648305f7bfc8bbafc1e361fc124c926dd83e9b0546d1bc174a2448c5925299657114c5f259fe641999cee840826a53e5d9fead1d1466508c618393b397384cc84601227e5ac94eb6a55828260aa6cf2878fbbf6783d108c273a76343d968609fec09cc3cce8672d396c5e3e305d0cff3a0b9d25e4a807a6b7e87d3ae979b290f3c014c498701ec75ff5b61d98c4702ffd73614bbc5107a6a0e4d5ca269ae4395e0e4c4aabc4a8279d4a570a0e4cf2e52c49124268d933ddc0144faae0ed5d3955593630d5e5c597d2b5a452a9060659823cd57596bd17d3c0f45a2749262539eb783983b6aea451e79d97813974fcbfeebaa45298c4c0a0e3397ef4fe2941f4183030e92ecb95f97bed271ce305069d2afa09d318157d0c17984bd4cf69b135c6d36a85b162ffe8b8155961180f6ef1fd9be9d65985e14d9264f6c4434baaa8c21c73563ec609536112ee84bcd26a9d0b27a83087974b418a5c07f9e15398e44fca9fb2cd564cce1486cf1861f16cb772bc1406a1754789c95732cd1ad912b1902b18a430b6a79b74be21c52f34b2b543871648a40e083046611297b755a93f09a7a328cc27947bd27265493a1518a130adc75c2f55b2f898090c509847e7b368eaf695adc3f8842999e5f9d874d7d41f86278cefe1fde9c4fcfc27c4008c4e9853cdaf4bb4b62c7a7222904ea824d265a3501c0a8481188401000084779b0063120000001016900824129150b4eeea0114000442483c6236341c221a188cc74491381c0c07828150201408622086c12888256912cb280f46bd70488be999e92802ad52cb9e516cc9a78cd85a3a0a844e4ec04b0ac599c2d139c9598a0938c25c5281cc3ac4a9b51eb40da2572d6b9a22ee8bcd42bb69b01e808a9f365491aa1d040e5beabd54dbb5182168d03e6bda35a6dbd02c099673a33db32655240e7eae6bb58c9c6e581f12bda31ac51f8f84268038ebf75fbdce8f352d89020dc912ff67635aabb561d4318f126e70d523ea5e4fa5afdfda4ad1325ac7c29770d8bb923c1117ec9c646689a80c3e843ea59d29e0b40800f872b0fc4327aa5ffd2bd09418bc1660a114f17baa36e1e1245206625bc1583286e037929a0d1804e0faa898cdf233e7c9dce318f62260156d2ce03aa64e97ba44c17a941336401751ace25b00e729ccb2efdbd33d41605a8ea9847b3a81cc8b35008a62cf620f72c4b7badcb3414a2d0dd3772089610eef166a30e463eaadd0017577e924f8c03b502d147087c32ed5e6353fc157321a5445595688f13f4ebe2d10638bd7cc491fbba67580a7890789a8c941054db65cb2725fc13e7f41380dc9e3310655d22c177626493aeb16dcaecbf77ff84b8d34e47e70edb49fb05fc6dcb8cc6f5b683689cf28f0f2bd71380fd624731be02b160a6d29a91560d218ac8dc26a0f00bf61cca8caed903bbe2206014b862dc2d6503113dd2475513ba3aeeaf1ceb2e02ce42da7d4eff1c779658672b021306f1a430868403152a83159e9b12ad1074f2124c611eaba535803730191b23c53af7fb18f5eeebfbb41f75e7039c163081c6466919e79808dd319d0e1eba996284c30719ccbaca3130445d97af8a6c95a323c30b433a7f04d9cad03ecef9cfe32feeb48d349d2ed66805680c7baff86a4a3c896426178f2123251371b59af9c79fd12e3404d0c0ef9e7267c7b52861aa15117d70d138c109ad86fb829ea207bf88a08e48803c7bd174b34f4494e1362da51e6009eb9cf269b003cf5046c84a99cb0792190f6dca09804d3f3be1d9e320ddcbe5950a0dd29511130718804e2bc1d23bb084ca63dc0401443b14804bd618d06103a4d53ab65d943427db0388de95705cbfc178659605226a86695d23b56e52c74004f34c893a832d7c0cd5863217979b74b6e71ee5abbed249e9b9adacf549715988f0335c65ae4e884e21c98f35d29be30490ea6a939b0fe7ee90a03c5530d60c8a2a167f22c4b1013c3ec1fef2f67710e932c7e2bd261cc36e16d241f4a1527037d62391dce0a0c505bc7a5707aa661615e6ac33015efe7e69e4e9e51662b7b2bfabfa4cd7ca9d033713748287ee9091f04eaec6274e025b96caf018fd52b78e31f892f2fa7cde8c67c9b4e1230f20f3ab9c4b4885d68ab12ddc052489ac0aa92fd4599814799e86583f0fb7c7bf43b3f07cce80638a4c33e4f61dc3029f3af3f61a1eca42969b750a8fc8046c5a6bd648255ed47c61ab9dc720ee641bcfce843cfc38ecd45dc8c4f05378d142a1d040661cd26b1f02d1013e3c072f93845a9433250774b9877ba8b43827674a235c4fce7fd01d4414dae8634b026d0b5b59cd823beb116d0f61eb7c9c1fc04537dd343d829ce36b2673df4c7c5ee3810db7e13356a58d265b8cff630a09de1f20fe2456f8773f3fe26d79d3882a2969f391013525fab744f229a3d0e7f39995c60ea9a849849ab2e7b30beaedfe635f91665cf4000f6a90431ec662a791184ac80f6a905e5a2e2102fc8c08be2c95afc12c8067bd972217c7c9939d26486e6ee5cda5e346593f0e5cf8b982357a868902746c5a807fd4057e863a9566ec89cb34dce27cddfb4b5425d81a62efab57bec3fb85aff6d02d325ec4498e88725504dac2dbd3fa135d4772c52b1386a26d212885f8f1e2c8ec0bee9102d31659281a1dace9cce6abef74d81a192970094c047861cedcd614dee86abbd40f25ac9fcbe9ad9cf9aed8f7853d7167e4c3aa863b94af2a042d61e27b92195bb8c032dc2262242f4077b1a3e60d2fbf93a806d410ad772e0051dc0837c6f9112ef14dcc49cd2cf17f07ab7bdfa65073c092e129cccba97de286142803c01971694880d1096481663284f6ecc42cf9648e52472552746cad41c76b101bb641d2b01cb399521ae25035cd4fcabd54f932e2306787665927fe30063e79cb8b1b7be968fe56a1408d781961632c172276665c53e054b667b67af40219b96bfc9fa6ed831b0d1ae9739026c0278fb0ea32c09f9ad8fe92063f082a32c2b60fbaf2491379d7fb4adc04642795ddc67a0a581462bf4e40e96d3f36bb3fb42db42eca905b0dce084e202910f866e97b799ba214ea0f6fd81e954ecf466a4b3c3ad9f0c30d364d4ead855836335f041e684c96b1549a0ef4d1d94a326663bb0cda6344f19f8e7f560e7576d6316ff4f0edf8faaeef764e1a89fb84c5de1dd4634755a6e973c7c15aa69939162e80266ac56cdfd350600d56b810ba6620b1177999b62aefaa3cef681ddbbcfd93de6922a4e97eecb571340a582cc9f8ce873df57c578f61e76db813e13ee0c86125f78daa7f871f4393f9d2d2de601c5f61c037880d09ce39a6b973e08d36441bcdeb1a1881dbdf9748e40fac227b4be3171ba704c9d3187bfe4b0e8b5e0da6a07c55cd2a12dbf75017905b2d38880b1c147f92e9d8100ab805ee025bfee3401e6e712dc57bca05887929b0f3f885c28db84be3fd5588574406fba9252b63516bb5dc58c150ebac529708e3db322b84cf6e958d101268571f5373e6c4000603eadc797828fd43800f5b81bff4655eef3f827d04c7a64067120f94093cd58114003e9e96e1c5110f467b082fb6b27ec9344840c408ca3735b6efc4d849153b4eacdb6399a48fae1b5b84c114c78613d0f0e39784254a5151a0860ece9e5928d9fc7ef16a3824587c553fd57a53905f0128fd6e9dc3accd0391701b94d4a6fdde4801fb67c0a29a34f052b981a6ae918de8dda1731970ce7a783601edd2d73640e85e5ed94712b1b5ec0d0c0767d2b5f801be1cb20c5ec5acc02e66b16e67990a82207405ceb4a85b3a997e8516cd44c9a5c16c4daf99e8613af8088218b2500227e84caa405bca7e3e544bf03afc1a01c88fc8a883feb5b90a3c72c9440055ec0e5f4b4e206508a5e76ce605b27c5c97b91998926a297cd993ac1c5d5f0346ed423199d9e5e7757c5ac380e46b35d8ead6630e6afd0f00117b0fb3ca95702425a0ce610cd88c2566165ddb1018731b87eb5f391c4c9f5f23c23b7c8be5133b79e801fe212293c83839ccbae3790f954f866b354046f91b263584bc09db89f47d6835ce017e06c68da46f80b3711953aa8ea6dce8c468fa79b15a534e6c70609b9e9660852c2f011dd278162ec8308ba84cebd61a31306667f124274503cc0913acd2c016823cd4824323b466d4274e970763bed2499eadaa3e629c57a8abdc886d19439c9c26c8d81c45ccaacf91852d327112794f944395800b0e29a1ed96fac8320742091fa213a47a7c89955200656c0ed0545050dc943fb86cf1225278011ef8889ab80a37d35a63ce51f97bfb59f7de0e84dfdf9b791c9177536c04dbd145db8a94a1a2e797f6d93bc2b42e2729f14dbecd28f8514f5d2d2aff241fad19c087f24af50ce08fd89756cac2ebf85be0b4dbc903921149351484253117297500e42455868b3466e2d94af50ba42e312b2452848422908ad43c8f74289146a52688d42fe09454728f8854adc35600d18a1c1097d25c872a01c8628fe864ac8980267a9d09a84fa51a1c8a424b367b208c127348b90d13514ca8b72ab95459fc553e5466346d2ae996671a1f58a26473d717b3fb83da497ff0817e8a51e93d3cabec2d9770c39a7a5f6b360825b2eb1b961b578aaaa486a0d590ffc5778cae3145f2df7a1c7e68ee42c9865f59112507748d345da5f268b2f008f9c9bc645c5aace160fdf8865da268a350824c0ac8d609d980011ca434677dded130cce70f84acbbf82aba2312168ef599bf554df7100edd2851062be5dbbf8a0349ffe0f016bca68901d367edd9411934758a05487e5e2d1a65c3220d292593b133c5e2b88c7d8b509f6c8d60da052ec906c8973901a4d827fe286301e1dd5fb14d8b2f160d833d19fd73ea5f67651bd45251d69dadfd3127ad92568c8b6c13541511d87364a73f3c7619fa782ec2ed40f4a103d7218b7aafcabbcd9411c931911e4e489ff8b5374a86b6d9371f1a4fd5b4e885ecd2cd32ade62faee850c76ecb37c94d72fd4d9285f107882e39f40659200a17ca0082cd274e031a5ce46cd1d502796c63a975b7bca12b64da7dbce22aeffb367a6e9ddf1e55c130d6da92c4946aa094b2e3885f2a9d80319c021ee470404d2242b1efd21fbc0b122996939b0dd6a4ecc12f836010a5910e9536dbd8fbd29949592b982b8f5da5048840dd654dc792a885209332454d38c245c6aef546b6a54e566b4495159ec3fde2c43b759d8e278a820c3bccaaaea46dd24d6a8da4951fdeff09921b4cf4451f8f381175d2ec1b1206025e163180b0da3f3341eb5dfec8542bbd355d4649d265e663974e3aee00de0238623ab48b806718bc9a17f0c6a258527a76803b576622618b30d3ae6c7e075ce811cc10437eb17215deefb950800cf426b30b157de2cd08ac509fbab55b4d154be869e200eb653a0c970a36f27e4cf2200107cd25725a068ed52924d40bca32852ff3e94a0e22304ef91036bdea78c081cebea9ffd06794f78db6c70679471cb89d938df9e38e0c3b78740f630fa3b57262114f227acdbedba937d32397a08e0cb7c3e53583007aaad02b3f9e96e7315c84c2944d5ab60e6777e300f9c86352c59d1c454d3c3cf462422d7ee1f18e94d75ea42a012e5f81810ac1aec2968ac28992a6bf4dc2afb16fe4370fe34b911f164b753e9e0e6ce79260e7136dd90121df59d6c65d627e8a0622ed0e99302a0578e7b51455948355c1426cb93eea392c0d0bf4fbdb3ea4e8c01b2578fead52cd5578e713df545658c7eb88a21760daa9387551a9bf16b8d6dd15736e0e7985a9a066816b45ce1df385725e4802a9ab6c7e1e888b56803d5ea643aab063c09a73870eec2dbcef4af74dec00b8bac6d2740f3f0d4f7b4e006492270009d2405a25099bed29e4993b954947655fe09f4d3cc54a23101547d300938b5eaf32a3e7ea9b478bdefb5a325f62231190fa33084c1eda806916ccc055e936b6358a0d0f730fa89c3d7c31e586d6d612902fca0d7ac00cdf5a6d9cacd08329219c630119f2a4473d0ee0d145b513189ec147a12abfbb12b069484c19f5dcc9d62a5a823d9446657fb1de107d9a253c91d5137883e0c556edcdd892fc8b5a8a1023c7e03d1b59b84d134a75102d856b239e376fe9c41e9bee899dfe08406da33873779027b056d586ba802c4c53e824e973d91cf5c9fee13e96780079ada670c706c08b02c10e0d83bf015174cd81dc4c1c1df80eb0570ce51a236fcafcf888fb1464a7084ff552eba2ed9850b8b70b2da91e7f235ee02bb9b6290a06ecd46970bad9fda6c35973281fa7e9d19519640a0b3946e6c251a4933845eae47b948f6a81f1567770c1823564fd7c30543bc90e2064adcae2d7747705257d3531869fbb1aa074b3b4384d6029b0409c38d2e115a83d1cc774036f478d47d1bda1c70d11c6f476e6a8997ece30ebe59a09074a90dd44b2a1893ce760d8a98ab15a9e9b71010a613ea79bccb2adcf545c96f06c868b707ed0c0859a837c6cdd48df329a85b922019aa2d8958de8267ed0f3c5d705ed4e80f2beb1ccbfedf52d0e77cf700382edb8823402264a1c46445c4abffa00dabc4efddefea7cda0d4ab40817cfcc609a5893cb2d82e676931612b329f1d6214655c0556b6106c11905dd7f8abcc5bc885e95bfa9c3114651b6d4c704091adb509e3bc77fb21aee9586ec45f8b6cb2ee79d912593a1979292f613805167ad93a9e818a3346456b15e56544ed8eacb318f22d24c02d90a4a7a6bbc6e43b63147969e3afbd53e0bdb014894146aefded190d40c8401308a04d352a002d63d1a149ce24369c705a648d89b610bd7d0d2df4c62ff8bd77cf5806b6fea2af8a12483a421782bbda0c5885202f9984b0405fe717834b52eec15267cd476fa0d977fddd86bec5b679a90f4e4316aa8a2bf4c4d471762bb059b8f84312300e0b654c5ebded00af316420a0d624dca1b4b7a5f286289ec56b1d904c49cedd26d7d1d96e325861360f705c08dbad84aa7820b82cce7d10046886b1fc76acd73efb021dbc4c41e925b86d704bce317344ab6e02478bf1d8b306abb6e391c260038e1247e5e222a0c031d3e6c72dda33c764a11096b7615009e000bec5941a73882bd72d6f80ff037ced73d9d104a0638281f53d05c34bc77902061cd8196e7ded3890aaaa2f9ba24094818750a9d201b125adad6835243c35269f8658b124f104e409fedde0766373ee55f73ed8a69e37ebac7e9e5bec4168c16ac265ba99db6b7b3660d73ecbf3c38659908cbd19bce36acc4a88f04a50ab6cc091569fa0f780438af1764ad70a3c226e5f0d125745bad21813f4da08d62dbe023c0dd611d23b18ee7464aaa6bce3ee2e1e2fb8c846a4d9ee346eb0b6903e2e5da114c584837167a5b798c9b742e17d9e4589880a0cdc7ae13c109528e5aeafe5a646450105fbbc4189c70d46df5aaecb9bd1f39e1ed23a5109d6606089567e830d35243f68d629d709e770ad1e4d32f515f9b5efa5903b51dff507e66e4e248ab2ed1f66d26d9687f2d021426bf1d28b2033756f24e0fedb912892ac82ebacbe266fec0d715a992c28a631a7dc70343e76bab2f7e2f8dce61724c039fc4bc632dfa51778a055e6f23952e1883a07a31d157f2490fda1dd980f34e900bb930c75f4c39c901988a5221f7a6a00e01607156721aeb132489d3d61d1b383ec9f800279bf27e6a01c3d1e3449d4d314e6e6f95d300966a02d59f080fe293651c933bd830e2451c3a66496caa9700c646b9adf2b14def24730ea80f36173ac5a29c0957a3f3ca4e1567302c5244b38f32c4e9febad3425106133072d423d1d5b37178f16fd934ff20750295795881e689711005ff73b51a913440fab5e82f3c0717232c073152e3cf906f5d069aceeb5ac0e24d790f0ef6a4aec7f20774d9c2e26ed3665933f42fb952f464ec94caf0c0d4cab77b78b013407ce3559ab810169315fed426c2623513c905937612057b6f8a7d2d15aad19a89146ff7de736629a2192567d6b1345263310d8d2fdf5c627ff7c200e3b5123a2c02475e8f1fa223110a334fc1ba67a76dbea75b898349eeebff38a91e40d4db73a5c5bb72eb629f99ef37736144c3db90f1fecee1ab6cd36a90ef5940750369cb6f36e40c4c9e3740bc603c56b8dfd62dbe9f147d6ebd297dabb30333181bfd16b8499fcf78416ca84a4e81c03ae2330b02ed142718510c0ac29f8129c20e6c505b3074a0c807da0087468be79151731d27f70be00c528df02100508382e20373375d7c8163aa8ed551e951c22965da1ce067a23264633fa93ed351001b032dbcc1e18731a15c9160162b03bc58daf27c538af470f735eeec7db071b8d0cf74cd2419470d63554ea9dc9c1b31bf10e043a831f47a0c941a33fdbe27ecd3f9701083ed824c988ec3ef929cb62d1a930956277cae7a19d5f52be88dd4633d4849459631aee3b66b9b399439e203fa11ad550829adf6ab0aa2b4d6602585b2eb4279ac2e0f02d730a508725a158f2e26b74784ff7b02290363172feadda7fce7047eb9036a1fa2c750884101e7df35a187c9ae5e9a6064e39d0e77244cee68d6eda6927582c36aaaa603efe8aa8006e493a83918fd84615c5ef22c4e4b89b78c3bb45eb9835483857e91f97e9b2cc94a0db7fe2e84d6d03264b3a29436de0702615a8289d6fdc31369a4dd201ecbdf765d62462a88aff07b3c086446ed6dd693591572631ba66199878591c2b424a847e22c74ca53db4f484027b12c909f04cb64a6583e9277d9063b398d2cfd6e792ff761e81bff80b90767a3338eb6b7ad23131167563414f7a7aab43fe8cd47ea80578a6526043e7caa7b68aa85bf047b6cc6f61afa6180850044800cbeea891e5f4da399f6fa401fccaa1bd1480bf51d08e7bfa1a4c0d44f8d1b35fdb8e0f6ae29411291b0f974f59ea21e88135f39228e594735a308d1db8e6665673e369231904823720b3f3978b1bef51c51ef3dba059453419032380b44520621f0da04d8463e914363121fd6f8ec768232834f47e2056e2252ef29728fbcbda800d10ba066393e6a95c37a3d3e74384b1923dcd2f554b5580452e0f7cd147170109108b647601a72729352775578b331fe29252ada560e2749066859e4868c5f29e0b683cf3d22534fec16f4d68bca4e14abb20127a47c4d310fe4bb97be688adb738a05bd88e0e2f3b335dce26a006409935782e0f6438140349827c7822bec495de4866b5f7a61709256a1a8769f4a3ca9a449fe480ad0549c7e28b1156cc7a8c5808eb0922ef229dd91dc8730f08fe7ead6e0392017298eaf746ff6298cec1901fe05c0381fbc2a86ba239781529434fe37f94800cbc250624901c78ee288172095b8c2ce4c9b245580d819b7493481fa255fae30ca2f2dd7e43e5040b2d84cb4e82f842869098ae8da4527c76f22547d59292426901e1ff28a3ae7c71cb898a8443d3cbb1d887c5cb37065227e5d3d9cda843725c9a54c2a3cafd913f7daa0373f5791de857cf082ecadee94562c96c489b896c25d36069d789323a44100053df89224f6540bf784c4f0347e85f981e2280a29b45b256627885b59656a245bb279a9e16211051292ef2614b17424e99ed10750da855de5c4ee286696a5888d8313562dfd4895045b930f944581e1dad912a46c7b244ba8152a08109f39af71102be92497e7a8f10d115371d4b143dbf75894b3c22c8ab127c657cf691d81a92865a061f5524b5898d4690796243a491d3826d52c6e1be663a1c8506c61f405259d8b6534a62e9ae368fcf02b081f5a14acd2859dd7a46fa74ee919e1e04dde20e29dad62ff69418511db226e99eb571b4132cc0bcf45199e40c9a973501ae3513f6a44fc1582f496fd3197f00ae678adddb7aa6193c9adcb373f6208f14e2d5c3c82e47481edc85e0a6a67f9c68b7a6e04a6e129027c875f2852b3458871c04d9a299e49546479635743ed33b9d1249aeefb81ea69d494a25f89631a49b48a6f5989ac86c71a36fff1b0ccebf232fffcd2f75950b71ecb3301cff561a129908b31b542cbbc559a80fa2c28326f0b8eba369429f8c7184c76bf3747529745721b31b91027c74238ee6e26e45442ac205843833d00f36ca9e985728f9ae01811cdbb69a95338dea8bc6960c400e7c109712545c8963623049718a10e1e399f2e63c320d9000b265f803c472a369b41b4a23b3f7cf5962eff0e991143c1ba4e03bfb13cf63444eba49c2a32dbc21f0d1b75400dd14266e082957d9833d6f1338395daee07f33e645a180c454c1d862bf933d292bd4e560ef40a40bb37ba7354f2991b470aaa5f55c4403b79ffb6ccf7c2bd32e3b61606b32c9f09fa9a816332a38d066486ab9c6c48027d3097e70e91b23536838eee720ccfb3982955d81e48a283670338b079ed883414d39705ceab5aca7f160301fa18a4f46936b56e8e35b7d641c04d7c28bac6cd331110cec5d13b5f7ec425240c88bfc76d01859691942e06d3be086f1d4cb9c3ebfeace89c0a758b2eb8e9312486e903b72e7557b9e78f03526c8bbc1d301cf17fb129ee01cd6380044b35c27744e45a8c8ebf5d25ba04e5b3bef13712f0784ea54cf9e81659f92a3792ab9bbf2e9b8cef9fd0232885b568511650022624a431842d4737a258982141440f1905268ada52c26f3f446f4fcd90084e555e11d9e2652833e2a740be1671999ee7d5ac2574352019861fc2cfb5a3d12ab9d50b5dbac11117f8f68e5a8542cb68fb1f68b4b1b3d6799264f18979ece51bc9c6e6f32fcff6fa2178fc0e68569fcd7a6c13c2937cc214f11eef092b7a5781b7028945605e3c11525716ad6edad9374152153b02b31bc2c35bc4da06228d1a41124ec34c74f83b749e2321fbaf589989a33e921515c5632d5b52b7efa566de123484b29e6e3dc7967ece13b0aa53e0c34b5f92ae766524a872208e9aa6f5533789ea8064bb41d4900f5940278d97a1aaaf3e28c5a57cdece2013b6aa2a180fd0497cb05e0c04e9ab6c8a46627ab82a7987f5856679e43a05d152045562c43859c21b6639b492dfacdd456f5873387a1cc12ebe55db6ef0ae22d6a1bd36c5f3959a70c74af6216f2a4252d103299c4a767c0d08b4f00c4ebf19a3ef99b0948c72ecac72aac5a7b4e333e622d51631ea9cb39f0d1141311ed22134e4b407a753cda799ac168409969a7c1176d9380140a377c54a2f3f377a62f4b6d3bc54060135b1a647c05250508080328a7a471275848fa4e0e752f30bc90dae772a4502d713a31ff221018f4209f4d83cdf345262eb2364564da03f850b791b467ae0ce5e5b7428291f72be7b0158b0daeea77928985a2d0ebbbceec76d38e8273a2fbb3b5d9e78686e0cc6f646cf25bbb5259ca34cb946a84d922256436f98ae59fc98d44d00500021cd1a072d6b0baab17256e0490bac6a66cb9f22ae88032ffee7af189ab17e017e1604101abf6ceaf51e3dd430f735aa7d2d0aea83b6e54eff3bca3d24d3e888f894d662f9e504f4a2f90828df0b489a1b4d2b813491e6a0cef14d8dd50c43e53322e0cebdbb32982ba5f8b1a6bc225ee35239a87f53d7704d0d3875bdbf02a5b2e73700afa2af8d54f4540435b9d30647949df7f50b0ac044ed10778f0b507590d96cd75af1c0b08b59afc2842c05e213134de421b99bedc3b28afc7427bf4ca8f17f7cd7dfb8a7ff4a9ba1d4d66a7c1f37cb8f831eca3c02abc0ca0c984c38e9af16525065ffebeb8797a21abb4c0f5d54f490c96381f341a970212c2553a6bc356eaf4c41e208efed8a2d513ec69b38f10b570970b3b1743314e7bdf0ad9d3ad2afad64600d474618d21c3bc7ede818079b9433961f1d9c5ab923c0975ad5e2447eeb323a59b2f8f3abfd3b91b8503992351466cc19f32e1cf4bff11770d697ae56ed962fbec6b96e28cd8577e16c7f95baf8b64178df93ae42f36b0b088d952555f1d4710f84789266b174ba4bb1e8848447664b2af011f162475c71dbf0e48c74260fc33e470ccbdbf59630162c3c7fc6a2f2519c0b1ca36afbb8fdf242027beaf559c88914e5275a20e8053d2ccda9250d28ea32822341f5f3b4f51a5965a1db3ca5485ad113cd9c5486356d4885c943b91540d21b001250b78626630cc3d35b2b86f9a1cce01ae5ada34cc41784d4da5284ca892cdb6645bf8d881eafae33479dfc983e13cbec226af65d80bfccbb097efe5cab07bf836c4e8ac297cd41733932cf15cf1e8243ab44b21aac70bcd3db52651f45f5eb44d909fc4ea97d97ad2e63934bc5aefc844699a64a756fedc89cbd7cc9df723eac1ae03a711417093653b3dcdb5f976234d308a79357b73827570eafefc42d0d3cccb3a945f4cdf55350f48d56f9b49072173316837d8be12aedc7f3c315002c868da267a011b5d8c6ed1e32cdfe2a9a4ee15080571ddb7e0aca992912a493942aabea14d4097c94885da9cd99c7433fa8381933f619eff0411cdce927ab502e6375962f700d481ab9558ad4fb3a8478a1d2d5b4ce68a2d27ab6fb2d9cc5ea5bfd2e0499ed1dda157b936d51d1e052644ed4efd143ac44e6d9857c97bdefa30fb341d1021b8364f37c3eba5e203ddb6be0504555f08eeebcbec540bb8a8c118c555af0521fcb17d8392cf45ae8b8d30a6cd8b5d0eb33e571a43833869725f637ac327d049f8dd7c6d4417227947a29d7395b11291c1bfb173795e17da162092c853580c3d32890e100be9a2fb3a7c8beec28607b600dead8ddbc6c3dad857a0c5a19fa794ebc41424ff9883d1e25b772643b84f15906e633978a107fa81a0ce4c79d4efc2f7361884ed33b298ca47443ee148de0a14e2db04660609a3eeaa74899663e22aed68fcb2b0a69dd165e44869dbee6a129c7881e56d4562bb1390cb333a8d98cba5115d2912b8ea2d9e7803c0f1a5817826c78a3076875ae3291126254830ad6521fa3f2fe5d98129baab00df4f67a70b5fa0d1996ece436a18a386a5284245ad4b4e991885893669b0d9400e107b4cd9f19a802b6f59106511daeccc711f970003234f876d4cc1ae6eea455e13a3c4252e4b17f9ce8ebc0012aa4624bef848947d86bcbefb4c5e4e8125888d849eb3ed1aa1646c5df76c917ef2b73f450e2858052a51794509ef3d6632c4096f0cf1f2b6c4396ef7c2421dcde0acf8dcff0d7f6b471042deadf6e1aa76ee54817d2d79afc3428c3f16b8f8b3b377720c1616dc5ec65cf92c4fe91a3c84fa446ceb551e71217bcb8134f4203e5807c78613f8d5bc0a2102bc9d5a7c3bf323778dd7004c2793ba0dcae67beb0202764e123c1d7250ba446e16163bab69778e0f1098874dfe46403c4307f307b89111c8266d6a2bc60478c11313635c81fe0a9fd130528e9ada75c5c02b45b1322ac29c3b532ad6dce88924d81ae069cdb0358a22e5ac4550c069434d9385266bdcf11c6b0a26aaaf2fd6d80f1a15c7598e1f4465d1cd0a6fe10dc5f305ea025aa0369570ed2660e597f45293cd31398b8617f1c8d9f37d02af328d8f9679ce068ccf0a75864942f3d211651c8c7ffa38f35398ab65de7e6db93e3c49395896096e0cc6964c2df200a24adcd8562d838e6950e786bcb7e9877f701b826c14f52e285585f483732e3033fc6222ac1c21fd4532ae9a90cf6f5f8063383a7cd6f4d49764d99762688835c9c7ef198a8b720c2ac2044f0cb040ccb22f13777809564d672c718992a8455fc30199d9815f1cd637151bcf7e06b0e3625121601bd633a68a80ec9d43ac8b5ea2e6b5c50a8c8b10441ac63c6031b36dc68b6e4e9cbe3338c9e2b84689f10e8d2dc76f09b8df27bb74da08e7c104d61fc38daa5dc8651e4db80a0e799395cbe89dc9305b5176a02877a1a700dc0910528a4816748ecc30076f1c9012561c5d8b8089a67412c7b400b16e3f3ba94e31d43fcc41bf81db2ee4f82c80387b99c7c9fd510ef214f486c32eb281a7a1c29a8c047e850df91253c6f468a60e03bc1db96d581515ac4f595dce93f2da5faa83d9c93768db209569a4ee5c36713571857b60bc4011d2b0162ea179928629d2401a0cf22f123121dc57f2bdc3d5a0846d5f8dc70dba7850313b065e5c7fa7e3e3885b4b053a237d40fbc111e9b730f40f3bd87b6a46eb94f174548a023036d2c4c77263ddcae7e0dde6567c757dfc2d0acf02ed4fb75ba5a2c46a1be81a41d18f6568fd4ef8078ce0817e9548399090fe80afaf821dccda76672d84d798a108aed87b41659064a64c41e858600002dd2cf1e3f2eff53d0ea5b2002f8a12f9890ceb1256f140236c339d5c47996c35230909be1000d8c3a3c2d8494a8cb9bcef46f78b1645628338247918ec240a31021ec839d7061af92108a2d09d92d130857452765a5985115593b5a3cecbfcb9402b6b360184b1fba1c8c96c6ab454908d1addfdf16719f9f4b8f9a44d873b35edd48e70fc37401a76ac746dc3a45559351480814854dc2ff4451224a54d406890b45ed019bbe0e6e5d98815cd9f50407dd765e6f6b8d1faa81deccad6cb3cf71475619a0e77c9a0f09620fb3ead8437d44086776e3e09c090600ac2f80c9900a7603eb0f626c3a523860538581a57c98db8767c11600288883b0be1f98482f432f2c178720fbd3c47a87608823d9965369e4138f50c80fe96e77ba9004f4633b6abf7b39d1b644f9bf3e3962ba220e10a5324ab1fbfc88c806e3ef1c37040d6990b3180d5eb0896751a619a00d637d9a9ddea159c86eca6ae683daecaacdad448cd0a3e7dfc5c866259052f13b9f36df6f0fb74d645701a503fc1eb6012ee6e79510fb9ca15995f482e5cd2258274f8b27fed564b61b116df546929cd7c5dcb4105464e4c65cf08d0e983836870fd9703bbc2d5d053d95da245a40f723aab01226902ccce5904f31be140d874d29a769a9b95d7ea47e8dc7548ef4cc59ca6594856894c9e02da6ae0aeaa8a072be5d7246017ae23c14ad1c2d5b16ffdea2639c9198f0e1c212656d34bd70d1a9c5305362c7bbf7f32eb0101a63e26ab6516adf163b95d9370bb71d9f49444be1bbc4664a8b2428459db8b3ebf952dcf7ad66d059759cc3524816ec4c2e6626f9e5a7daf66aa0046bbfd0bee4697ef52f9e4bb2243426a39b85812711683093fc704f2b1a927e2eccf44af025b928739788856648e93b6bc9622195d09c34f550d26221cfb28d3059cf614b7e2d07f8748c97171a8b650e00ba9e3b20dda81f836f8b5e4f7779196b155603be566d709b0e8199cdaab8ae5584399d97e8588019f54f6e5777da468dc3be2875b9e1dbd13694628f5ee735e1b26d57d286b040c64c1f64fad3aa4169f4f3ddb52d40977c0ca850ac1d62c43038693c146d22b7ee9949f40799725836dd12c665f7b6947762c7be71acc6d4535daf28767cd57d80c76bd3f00ec2deabdad529a04ed679282692b0941de30219478b756b07ae80202b6e1b2c868a967bfc43f48889f3328639ec7cdd459319f564ff2254e62f1774469da42cb32e8f98ffa1f3d3105bb2ec7c02278bcad0e6f363e167b86fb1ae4ce42ab31f36fe43a10a8759c8a236dbd070409415866cc142d1e851d13176685a47f78a822617c9422d9706d8402a918a755e14e891dc52dba36739a3e61ced7c66a58899058ad06691730ca7807f994dc708d04570e85ea8c733ef13e0e713016ecb10b58375629d7336080906ba1be516d283d31529204810dad4c974ee19f5b7ad55c474fad34b290fe19b41eb1867084e33d1100c86425afda74ab0835b86b57a1f84d7985f064f2cfb8e132dda36a8c7cf66eb174248a39a5d32465794927a29fd5cb6c8b0cec83da4cf2218daba2a1a972833ead4c433c4eb6c54a0644869ccc93567ca79077315a6413afdd898974fb520f6302ada643922c5906646224954c486cb9844101e8bbf44a7102f85179b13e2519232102d55b823aa818574fa2a9c05ace3dfc0259ad2ba40cead4697611458a3621900d74a72c9b4bdb5f017b6d5902a207cac344c0136975066ccdae5f057bccaa4aa6ce9a2b52631be136d346e9d32298b484a4a9b84cd69b96a9a62a6a416a928112d52c68a5d416529837eda38f613186280ee86e2b5a91e9a04df24402cb8125a2cc74677e75e815ef830034c92824d8c12f2821591bd4a203b7e27618a44cccacdb6941e3aea9ba6ceb04825f5c66518ef0ca9c16d82aa5f5d43927cea8d98e3c945617199891d93d214c814db3aa46173ea4bc901f19ce0416116510018c8f83efbe0e224ad730e2488db8cbbcd1754e48d8169563c13f858836691b216fc92d65d2c5c0ff418d32e162c75f223efd7a65b26d50589fd949cb0afcd4d96172c129a99c7d4b4d640513712e69698ce4562432cb090ac8acc87afb28dc5c585f12dda6bc1845835f814861a85fe1eaaec415acb0d4e418111127edd024433924021885cec27e00e853a67ea4969308b4d8e524d6df1c41dd36cb0ebc81d3601d985215080f067ae96d05f2c316b81f9c3cc821334a31f5e95b81e563dcf3006066f4fc185f6101dfc7794016c48c402ac30c5ae8d18b96bac62f720920e2d4738b3b9a782cf37f1e28e4d1800a341aae13e86f1e14e842b7bc5de28085d569734874820660d1dec0269b0b4bb0804d6269e80e8d72ce53adea446e843967c789cc21810bd88e2c9acb2dc37b4096ac54f106048e41664f765f66b912147396fcdbd9942167eb2a2faab9888df28b8a2cf94eb302c05c3c3456fa8b79f3000c6f684f1569ec5c5fb9f47ad24e116d247181479ec537f24e0d45ca420f0f014de9a040769c0a2d2d7cf2382aa5d5aa1716900ccc117921498a412d85418e8fb2885890e20202b2d144154339878f32573c78e8d48a07e28748a585595d857cbb8adaa3750b8f24d88b9766350acee185ce7fa5d19af07e93f42147f3e483905387fb1b2810e80ff9461c99d3952c1b25aaf9bfbd9f963498da742d9a719532afb87a242bb61a9c0abaf693dec6f37894f8af2f526a0347bc2f10e8ed2b4f03a68ec248911508155284da31eb0c873c3b85ea1f3f9e7a9b63ee13802e41712998bab31cf87d34e77a1d58fe85cc343c3069a7afcd3461fa18f831e51d7fcbf9d4c31686a9094b768ff81cb25010de4b6a5584c8f2049ce463bd12ffb526862122527d51efc9aab78824348a5387d33a615467b412865f2d50b415548294fb860de9c20c9f2b8c94dcb07316d9189b0c9423952733e82c13f8ca73309cf1dc076c629b7099b34ddbca2ad8d942e23bdaa58128ced2affb3cb0af0b7d498fd4dc414a16b63d5403c7e2c1178397c4289895b59d10c988af3a0154d9a4b3a444dfbe342efca4364ab089f563addc0d066bef771368ecb342321f4d9022e7dc4980b3950b2a4d001c33f3f3f3f3f3f3f3f1fcbb66dc1b606425b48494a2553053e2534882d534a2925d9de2a141405000000000000db0821a4b50ebaeb0b3b0ba30b8dcee10844f0910746d79f586327fa74691f78e004cf4ae63953edf2fdb803a393a67b3b296d3cfdc191c2d06107be8275bc8a57a56df71b3eeac056124f8aa64b5ea25bd93d7cd08191a1c67472f7bf98f6213ee6c0496a4c3479fa16dff227074ee9f0cb9562da907f89039f74ce37a1c4e8267e0a0776843a6dbd81d1ef9a576f3a664c133770ea4e3c53b9993f734a830e1f6de057c3f3850af7d8c0e75c495bfc14acc4c71ad8f4e5f9f364d50e1ed3c3871af84c4b5a169476a650c2c3471ad894b3c97427897d416f12f181063ee4982869a448ddb2d0e0c3c7193829ba7f8e15e3c5dea0728ff830031f6f3bcd4bd4695257233ecac09ae80ada59269df5460636c9ed947941c6cca4a4a6f03106bec4e05fb2b559b6139a317c888173ed0b322ce6d2da6a18f8b3eddfdfd251f704c1c0c9274f66cb1adcba4fbec08595cc29d8f88d8bde0bac97ea53db7d29b9ab97a30b9cb6a80b993babe8e87381f3db6c651d354c556a0b9c722de94397bcd9d44ed402bbb6418a127b6c43edbcc24716f8924da76cef8b1b9e62814b72febf9cf3e7a4a5b6c3c71518dfbbb2ca149e836f56e0cbbbb7c2db24f5a62ab06a329750254b501b2c6bf8a002ff6759ef92693b71548cb7600a5cd492245363a6cb7329b0a6c5732949b4f8163451e0bf3a589af69126e242811ba13ff9758ee942554fe04fce8dee9621cadbc28713d893344535fea70a1f4de054bab6ed6a360b1f8f25a14bd6345171c2c712d8347effdb7feae727287c28819354cc9b2d6990d9a42f09ec78050f6ab43306ed3e90c08789b1ed937c1c815b2d49529572c9d16cf26104ae4a52f14c32d57379be08e3068d625ff8280267fdd13a6b47ff5b53021e90a1830f2270426878a7a0da6da3dbc710381916945613477f73d28710f85ce7a7303240848f20b06515acef0415e5316f75820f20706b8290255f5968ceebe3076ca533b9f35ecc26d3fff001bb25b775ff8f3e7ac0691dd366fa2b0fb87e3571d35bd4120fee80efcd26aabebe433fe71f3ae073e7d74fb2d585bcadca8b8f1c70173d649fb76aa6cd7de080eb9c04abafd34b62a87cdc80d18fa52b287da504a1fcb0015f9b337e09bd68dfa183c60abc08e36425e61eb5e0e4d8f6611d7d9330495a706e32a5abced57881c1db30b330977ddd7d6993e700c32ce0210b3e69f9982498249874518dad1d3662c1d568e6fe561e16fcd99d78fbe7e8c9dd5770f9c67f6c4708d1b982f354826bc7a4723615d71282472b387947b8a69c15c253c50a6edd244b5f52e67e4fad8213a14d76e65c4b829faae0aee4f57eda9d7f9d6a6c81f105ba1c1b381378a482353f29ad55dccd24731ea8e0b3854e2f2a34bf543b052743c71cc345b87d61e8a071898729181fb916dd73523af659b6c37578c0a314dc6ee87965ceb1a4acf88e1e7890825319d447695afd50268f51f06329b3e53799b517051b9a395addecb483634709056b3ac5e41d33aa5dcad7d8ca91c36980d15f6ce2010a2e678b1e75bcc5d2a41ed871238c1a1f403672f80d9fc027d87c2e326dbdf7fb05c7dfb09132ba98808c0714cdcccccccc4444444444bcbbbbbbbb3333333333abaaaaaaaac4ac260ec0141e9ee0e386924dae0bbae38e1c8c0f642738b94b8963729a499a638d2d2b4e70e28d09a5616295d4688d2dd74df03928ed24c6f8a1b9b58726f8ed387acf2bfe891253632b05346ed8a8b1c3860b2e137c0735222b3b674f63a2030d137c5d5051d9b5b3635cf0b804fbe769928a293573665fd8682f90e9d0828725b8abdd0aca2d0733d3568231d3fc7f9ef4ac0fe3944a9d830b1932b8500f4ab02eaa2af483661d194a82c72418d5747a2a8e92e460558d2d0f49b05b82b2d67693d5087844828fe659a295cc77c1aa1b1b9831e3060e2c78408213799bef339a6cba73c375207b3c821d1d2154ede7ac5fa51bbee305ace7e108ae246599d53ce349313aca011e8de0929d124346d1d7d8bac262047fd9c94a64d9077bb5c6d68c19c90c3c16c1c949f6136c9449d253abb155b20b0f45b0a726d888494928a9991a5ba8018f44709762256d72ba984a518d2de385175d63870d11d0400f44b0f5594c89da2c9ec9c1e310bc6a564c9e2ba54f72acccb0031e86e053452fb6b5e513cfb114f02804bbfa39355a4c679d245d283c08c1f9fa7efa4ca26ea898e382c68c195c7031634649013cc163107c5fe95839a5a95f5682e04beaa4a3216dcb14dcb0e12df00287311e81e0bec41cfdd625c9692935b6ae5c0238ba100120d8ab2b5326a894aea78ef6a214033cfec0d9fa7532b9ee2ce9cc9d1f18932415266a56fd7612038f3eb03148db2edfd04ecbdec0830f6c4ed2e79d98cc72e5ebb1072e73d2f1da2b543ce93cf4c065794e2797d0b20c257960c52e956c7e92f89faf071ed88e599ffb25a5b649e271074ecacefba7949e8d0ccd98a1638783c1c30e6cc6283a28adcae95327ebc046df0e26a7acd726571578d081f520434b99f66082d6bd002347183a6820073ce6c06e4e1763872e537265450e6c87793cb9b2443113e41107f6cff54a492925e99ad10506de233063460e7f4f4965c2030e6c124bec159d29c92432bac0401a083cdec0e75d3f192c45cf6218c87364b981d5cab163a6b724eba7dac0ab9ed09d9a57a4e50c1b38e549e86ad096e356d20dbf0a78ac81fba04a4966a1d469550df050031b93cab1448b4e3963d092f44803df5d9db962d09d6f678dd51c3bc0f04003773af98f697af493598f33b027a9ad899697977f1e666075f7af723b6560949449f60ff692815342d9e6202f8e7ed5699c89404617189071e53106c692e8fd317bb0cd39f710031bb4f869134b9f345d26133cc2c0e9f2ac71fd045d933be6071e60e04d0c328fa8f5bcd3e81738b9a184e68a7b4973a45c7878813dbd9704ad9e4dc999336346173825d236ebafb276656b6c798e5205021e5ce024cf2193ffb961e83861e8581daa436d0bec6693d24c9e92a6ddaeb1650290030f2d3056972b6bd0db5fe2bba372780b9ae091054edacc25756b700b964dc0030b7cd2db6672cc5b4a1c67ccd8815a06173276e4f01a68878c2e3040231185c71518a54a9fff4931b9dde561052edae7182c6dca3a757a54814b8270ebd349cede830a5c9e1c3fe851d7630afc6b5af4202d58caab794881534f29c8ef4b531fd419333e470b3e470bce230a8c7fc96ff92cc98e1b8d3a04c6609063c70d4f1a1e50e0d63d9652a234e5a07722038f27f0ed1ffdd2c81a1319d7e1e1043e8fa8990a2665b494770f34818d15f34bf3955da9556e0b1e4c60b38752f2da523dd349f21b2ed8c02e818bbb39ea5be3b72596e50987064a3dc04309fc77ed5b2cf5993024e001195e782481f3bfceab27279d4b57e82140de82047920a1143b895d71dbbe8163c795271c1a404f386ea0f138026f298d3a19aa448f414863ad051e46e03cc524ae6a924451314911f84c62a73852e4497a2b2bf02002bf974dc6249d8a6ad2fa0e1840603d86c0269d4498320f790881ad1cca7733ff444965eef00802e71e439eaa4ae5619a0710f8d7eb28aac40e8cfe62870d08a8dbc8b123f1f801fb7da24f939c4d4ac1e2e1036e543765cf6eff8de9019b356d148dfd27cd44bdd091e30156e8060c7420023c78c0bb95dfe6eb33a5c6e18566c06307dc8feae74e99aafa4e1a6084416305387078613a20830b191890d1050664245f78e8801b5393e458d09126f546784302561e39608489b949877d92abb62b64c38b0f6860c68c1933aa3487070e382b61e974e692f53909251c1a484a29c0e3069c2463ea90513f95144d8d751b3976d0004387870dd8cb6157222c892965cb468e2ef0a4d5400968148000b560e4bf861ad1517b01c617be2e20002db84a9e82261d44e6bcd52cd868b7a2363fdfdee6b2e03fa635ad0b6eab27b1e0bfc4be7cf9d3a8936b1ab0e094550c93b71a02bc82159d21d4da6a5cc125dff26f53c972e88f0ebc56b09fbf32059943e64d61e017a8a1a329c0c52a2008c00aeeb2a5aca27e2559d6c36041dac8d1450a6e145b05777fb207539537538cd7d0d114a8a1a36b7021430217804004609003c74934609003c717fe852a1895b152b66cc994e0a754b0d943275ddb1c4fcda182534b5516f46ad24a5103014ec1c74a15938850569a5308600a4654de24f9bfc7bdce4ac1de49679268450a5e4c3439073f7f9336aaa3e094ac5efa2c73060288824bf27574a8b8516fb71a5b0178a6cd4912370843d6c0eae8bbca54fd18be87a881f3d2ddb234e2ea694c03ab255ec9aebbfc178342d0c06a3ab56d329afcced13370728ddc934bff870cf60b42ccc0e5d85630415fbb83959c1942cac07b12a11945f9d6889a0c5c07ff0fa53dd7a4260a2163e0bca29be0b1ee3f96548818f84f2afa89792a9ab4bcc656ad20240c6c8f92ec2e9b944b881f0206de73bfb65226c9f42505c95370c346da17183377f5efbf3f957e8817f84ef95209d6daf0c2461867cd8b902e307642e524ed8fd8dbc80546ad29c124f5d58c267323640b9c498b157b4c6953add1021b2b7b2c6152dc4c9faab128240b5c3229d6766aed2d41d740173842b0c0667cf193928bbde6ca15b8cd7942b5c656d110865881757bf7b198c14e4dab0297fa544c7e6aaf2b5f41ef402ab097d1244bb13c546a8ec37011320556533211a1e3c5b86f41428814d814a5fe326d4dcc921305feac93d508251502055e7533a7979d12a6926a6cdd6aa004346c843c810f0b5adde7efc14c12198438813551fd39b606b31c643aaeb2439ac0a7b191b5a29398d3c9d4d84aa57810c204ae6ec34e4b67743764097ccaa74f7eee99a4aa33811025b0d92779102594655a0dba312124096c78dd874c299f20c3d5a251a2084102aff7d7a2a4d06c32b532849023b0a76d152ce3567f072dc408dc8beba6713b2da6de22b0ddea71db4676fa1286108193d33ce7c83239ef9f589a154286c0a9c90b227b733529e92e2e44086cca0ef155b14b52fc840481f3147553abaab7df932004089c586b6d3a5fa94cf2d742c80fb85c7293d434a549346d213ee0e26bc9b9c163fabb6784901eb09f4c8fe8adbb3a291ac203f6c4d1b93e6985b45b4376c09d5ea59c19b5438f4f85101df06aeed6295a76707d4372c0953631a5352184923d592138e042dfe99dd87f9bc52284901b707656e95337748e895e13426cc0f525514157ea8d9d2a4200a905aba173de3b15e2a904a105efa75ecfd426492a5b60235d04126395ecb0718c150d1d581a0099051fd54ae55ded881e9d2c18992fd789ea68e5ae0189056b23ea5fdb2b4d3e91192c3849ea6e922599e8925266afe0fb639d12d7bd3c7f1cc415bcbb284bb14a1026d309d28aa41c2d4a678b19082bb84b61317f106d92524a20abe04d88570c0b6d723e1144155c3e49d25c39345f281d9054f029f809d2cb564c2629082af8b8be9bc5d2db9af47200720a56531042539f9c93b43177a6e06ec44a7b69fd5365ba52f07ebb655d4944e42901210567dafa5397f66c4b519051b0a1b671cc6c7f028828183599ae5395989224e9808482ad8f7a52e58a3156b44140c16b4aade9730c99e43c7d820bdd26675dfe5608254fb0e6c9b4c9c9f74e304a66137443e8a86c2a342a0e209c604b99c7ae6c727eb51064139c9b5e937292a2c578d2209a603b9deca263486d137c904c7052c5d2e5bc26a893e298e04b49db49dd4a3493722ec1e69c9430556a4d973c5a824fea9b695944e9497d005209c62421eaad047dba6d024209f64dab89799350d2e6249049b0a25ed3785a7bcf251806104970eba573eabc22c1e658c942939fb2561b129ca08492d3833c0d3a63401ec19f28f78feb2657b909e20836e62949beb13e79f683348253faa7c1fbb45d7d1223b8a424a59464a74f96de16c19e164b3d661acf6366042902104530423fa44813b4e6e7072411dc755f95b85a9ba4772088603d29419976462b793ac821f8dcfcd7a53e97e835410cc158652ce1278ed02654cb0152082ef44a5ab3db3095b4460021041b42e67cf12d08216b1d04173d87b4d89fc3648b0a82134c34f7b42b3922d225800482515bf28daba81c53a84100c10571bdb1a0d7e4d60fc81f5813939c63292dbf6c27103ff0fb2726c6f22ba9e424903ef0961a4deda3c7cd4a1203081f580db6753a28b94383670fec683a93d3a8a0e3efa6072e4969c2d54e54a8dd79e0d73494b49499af19eb01081e6c4bf93f56bf83dc81cf2c4aedc9a7eb76723b701e43e7bccc2ab1540aa40eac95b855922d2a6500a103232f9fd04ff7b7963b7360fc83f61d536953d30e220776c7adca2c084f96199038f067e126097e7afffa82c0818f592d66c1e46cc24b206fe0fc3d09d636a2373c0fe206d6726af3d09f03d206fe93d2d9ee7d04c206467b92ba83529631ef0eb2067e549fa0d4d5e78a9940d4c06bad987cff761655049206c6368569e71a65a9251034b09e4ad2a6d1be34451be40c7c69cd5cb174cb64e541ccc0b77bd98a080da40c5ccc186e79796f97191032b062b27753ac1434d7053206c636e756e99a206260ddcbc6d653f20d250f12062e65b013f4a5808081f18a9d1d6292bcbf22c8171821d2a489255b1ae926205e60444f47484fbd9be40fa40b9c5417355e327592583e08173839c5b8eb9f2b732c71902d705f2ae83b3167fdef18102df023fccfb4778fac1202c9022754788af9d5faa4a403c102ff655e320559feb93d2057e0d69448eb4ad12ac904b1027f92ca9dcbb24e8e390b5205365f851e4df993492907a1022b6eed21eb4fda6c15c814588d1b74d2a96a494a2e8814d892599434d1b5e3a6048902573ac8764dc14c73080205c6f3a40e1aef74d097833c810bbd297b5bcaf74989823881cd22a694a8379e4acc9afd024813f873d571337163ee8d099c103298ec24ff82f6ec122ef7bc4b429418102530f6a5ab64d2a99485079204b6c4e46241c5478fe72048603563c6b895e4b43311c811f8cd39bf9320db739d108811b898a497b8313d4faa0f5204fef33265979c0242044658fa9aec23646b5852ea7205902170d163c9d0fcabcd260e2204eef48856fcbbc6ce3825800481b54fdeae65d24060a3c89482850c2fe5c11fb0276e66cb1ccdec2fe903564de70ba53da8fa4a6103480ff832716da345936f9f048407bc26514c4a62c58d1ba21d301a94a57aaae9533bea808be6a66d994597c620176700c9011f544a9642c4fb52c959101c70da6326a6cd3a9af208e406dc9694f3b8799d60270b6203aefd34267559da2ade32f8a805234a10e9a3f4f5b8c78c166c4ce7af16840e2ae71fb3e0cb77838c7b425334593359307a82e897d669cf5f2d166c2a4188972c76d2e4202c781d9dce3b9495247ae7081faf60c33359b0afb0e4a5c415aca6d226fee6a9c656f264acb482d3dad9a72ee6574997159c54e25ddba9a89d4475155cdef4498a625256bd912af878723c2b35799398742a18d11b119a726dd589b1c1072a180f2528d1abb9e4bee829d8cd1443e80a953b53304a67362173a5d332d15d29b8926d5a941437a8e7e48c19f7410afef24e3c6976a3e0d2dec9eba3df53852b0aae4d2aeff60c77d53e3f42c18f3e9354e82d0a1fa060cf3bc8ad94c4ed4fd19ef0f109ee7ee32779738b14d33f3cc17a9e246e54fdfed47827d87c3e2686dec9a3ece5049f97f637985fc85653f0b109be343c76dc98e4694c6a82d78c19f2d49deadea44c70a759a16a19330926731f98e03f9a0af24e560abee9e4e3126c55096a3cdc37d7afe6c3126c9ebdc6246f8d4ab93300f8e0a3128cda67d666d2d9d9194a7022afe48975aa94a7a04970414b84d2ba174970e926876793a2f4581d094e0c256576b88a8f36f10312dc9fe8901b43c96b2aee81085040461718f8780467975ccf3b8f52f94a4770954e6bbccf39faa5d408ae37e8d86b991ad25746f027a3065daedfa7ea5f04a39b3f47d80837f13741f8500427ebe907a5d76bdff21f89e093a4bdf29ba67ad613307c20824f263b3fe84a82a82466061f876035b5a45c929834049be4ee0b96ba2ba89f588e8f42f0a3b96282ee1c4bce694270c2b22731e4497e92ee0c821d9d97a4b8c91204d79759212c8752a28e3e02c15eb4586f929794fe621f80604fa969922bb3cdcf22868f3fb0f7bb2926334fd228f7c30f9cf45ea6534ce54d42eb03a3679b466fea09bad37ce057b475082bb3eaeff3f0b107365f4a95194ff2e825f7830f3d303a676e34491d59e034ea9a5ed96ad23167c2081678eb4c72b33689662ea171c3bd28a3c0c815d858b6a284874ce9ab336205ae944c417f28ef8a7b5f1646aac0c50bfffebcf42626b19483112a7039d5ec4b92743c491c4561640afcc76c2b5a2c68496dd0a85a058c4881f33f13eff247cf396876e0f0e20333668c4481fd3f9992cc2def2479471881021f4398b292db3ecf46372a50e65fd8d8813a76dce81da68112d0e8c0c813b8644a459da76c4267939f3e67c4099c32d78e9ec44ab469780e3068b4292ea030d20446a9182dc95e2ae764a6328c3081ab582e3adea97c7de112785b913189f294db74a6047eddfde4ce1d1f4902a3ea92748d23bcbbf448e053ecd0187a97fca37704c6af94d66e5bff3b15b31123f06756f2d334d569499b8d148193a477a592493d5e49623642042e8a65bbffeb85109ed9c810b83241bda37dd28810d82093f29ce44682c06d926fd953c68b07647021a3744006073020c30b30beb0a145851120bc193f25f3ec6f02467ec09a96a9682a949b94f9111ff0499552db1e1644e97a708dce99fe3f4d4678c0684dba6f7145efc9cc0ef8ffab35cbed5d4dc9111d70b2f2df67878a99e33f9203b6cdc41c3589a3846b3e8203b6f289655e9f3bdd5f6ec029efd8495bac4bfda4111b302e3228b52dbd5d79ad05279dda51c124c1db829616ec778c3925d939665dd32c780b4a94249ec9d1f28964c1e94e25c913a54d9d9c24049158706a26c89cc4d3ea3e4adc20020b366c3fe6242919755b1779057f1e739257b307197a177105239e2c053f17a159b95670399fbaa924e9ca9a31ace0aa634952cc1f2aa8a462384260b60af63a2df5070f5aebb92a1879c12bba25994907110122a9e04453eab65a524c5ab11a5b5ee88e1b364090021b10d85d80082af83f9946ab2965a5367d0a474365cc41bf6e0a63d075d2c9418958e03aac8c0e1d38c0b841030c1dfb00915270abb9d2e4a47237291952b05e4a926ba546fda3e0a3aaf8e549c9b3884c4414bc89414bb60d9d164d0f05276f4cd371ac4a6f06147cec4e27d8096d7f79ff04df7d6d172b2f837bef097fcfc5d3dbb49d60f3b64ee54eb69f640a27f8dc67222c6aec937fb309367657109d43c9346e8968822dd995635a89f34024139c2551547437ad389e0383304e950e114c304ac65cb982f094626897e0bb723a2966ed7a96204bb077fab1724c2957a8d10b2295605dad2d475357955d94e0436da63a419320e37593e08436b1e26fa693992b4970e6567ad29f88dad691e0c41dcdab2994f4316d20c19f0c4afa95942b8eed568f6083ffe8346eba9fd28670786101114730aa63671daf522aa5228de08452edd59131956a160021883082ffdb582feaf75412fd4570624934699274667551041fdcc5f54d4a892422c9436b92a4972022386169a48775b6c6d60a74f40e1a45450ec1277d16a49572edb7918821f858c1ba0465c104ad9e4821f81c9e49b79e3163c68c19332cc70e302e007d1021045ffe61b6394c859a69106c8a274f4ac54c4a6cacb195dc101104dbb9b4d6d4da8d12992f2e4502c1859b594aff5f7b2602820fd17e5d1e7344fec0e80a255b2c4b7b7937113ff02777ddb665c907ce90b7a00a05227d6064aa79501e9354a6e303d72eda7a474577e8f019227be0d6a44a4aa724738432f5c056e570cd373efa494a1e18ed29dc6ac5deea4e2278604cd4983cf6df49314f022277e063e886cc9f992144c60e9c9061639a63a8e84a8bd481fb1dfd983c290b2ac845e8c0650efd9f46ded76d09132273e04dae5cf7627d394329072e3c597b5f92fe42261189037b7a92aa4ca9749efae0c0976c17615ded1bb8f3f5984b08792525ff460544dcc06a8ef9796bb00d9ca083090fde962688b081d179e2174b8a5ae8510ad6c0696e4e62e5abb07a7705226a602fa81835694f5f9b89a48157d11a2c8729713df52268e0840951a24d1693f47244cec007bdcd6b51bc1d889881b36c32bc564c7beadc8d0de840a40cb7b706b59a31546acb0422646073ae5017844c494c25141903d7f153ee1ead8841440c6c9049ded41bcd7a33b981c30b14062e488f49d23415113030d626ad680b152ffde80b5c7bcc3993bc1acf93b48817383942070d99bbd39325d205f66d93943175fc4efa225ce0949f49e2094a42640bdcadadd96776cb9f440bac962625fe685f240b6cea606a3fbefdc7d86281add0e5e935bd5e67cc1538d1374dba059d73fe242256e034544e1d258b55e02eff7258342dbf0a15b8ab116afd938752fba7c0494f627a4d8ff6779f14f8152d7da75496509e178902bfe9aed9943414180be939987c9b4cac7f027f821e0b955a9e42893a81f71fa5e43c3d7ab9729110690227e9942cfb459a9b740e06c38d20c2046e2bdefa89ee7a495c02274ae5d3b95371105102ab3957f867708bbe9504882481f1ecf92aaf8790c0577ac96e3a05dfa4d923f0f1545d94e9746ea3891881ab1226d355a7cc5a2a022b768225e9447e951a79181e46074a81f14518f701112270eab3d9999d14bfe47c087cb6563549fe10d59d881038f112d7b276563c516b6cd138eba29c0b4482c05ad0bbebd6767dd25b80c05b4abff9dd627ec0ee2753563af24c4ecd077ca859981c6c349ad5223de0477e120b255e72eb9b079cd8214aca41acf49e3876d0480e46183872a4c0ec0b223b60ab3d9b742533a8285a111d70ea82cce9724c911cb02eba259eca5504076c52214c87e51c3dcf44e4065cf00a4f9a2ec4c4924403344ac4065c50594b49da64599d59b5e0e2e5787e4ed26a0c1a5a7095f25ed72ad96f36cd823bdd4c31495452c932b2e0ce6f37849041a9b42a167ca724e7d1793998e91c2cf8cda86dde39f50aae04e1a35d22a36b8b5cc1a6cd93326bf41293c55bc165662fb71cd4892e26ace04be5b8f665929c2ca956c16f7fc88cbb2721aae0939c52704f96cd4ae808084905a7641b6d265f2abbf62d04159c1cede4fd20333b05bf59a25547df6edb68aca03dc7c10a3105e3267f7d0efad101467b0d53424ac189417ada5495b43b57d090828f5a5d6932ea08951c3876d83856551b90c1850ccbb1811d36ce8c193a4a0718380e0081081905a7bc44b1584ac995044244c1081d3b593e31640e35148cf8dbc96b5e5935594240c1a8cff94af4d8269fd8d02f423ec1e924c5a01b3a595896e000e38b0a2417e209366d642c13935452592aa413ec9e0eb24b8f9a98e9ab513e08e1049f332741fe7afa1a5d7283904df01b326d8ceb2928995417461817a2094e93ac0e32291bbd67828fff25e6f7ee9c4a1d078cce8174d0d8e13aea30c1d79ffc529d523e3d992d845c82713d4b7207ed362b395222c4129c6fc892bbc6b47bcc1a05cb105209f7643cdd1b7ba504d7250669974f921d4f7823089904571654122aac24092e074be26e09ad26191209b6e44923543bab5d8304a7ec3decf4d5e61b132fbce8b39047b02bdefd416dc67fb110e2083ec52de5eba714b4e41ac1fb78b624e3a6d1f91623b85ce155c9a40ffa2f93869045b0fadef6e9b2e296e4d801c6d52044115c3a1d3fc90c4f2278d379fbde3e8392564cee397e71f1108208aea3f86de6fcedaacae042466a1c5ec0a03920a30b0cc8f800081035e410ac95a929ad7c31dbe79ee34b8821f84fd2ff3f29e5ef9a2904272839c54bdf63183820901082dff7114ace7a41c5d4d4d81dfe811dae2364109ca4e47b129ec55bd35a632b69c9e862023770d8d091642144108cdcd0ab6e4af6b38c699d2024107cd226c9ff26650f1d5f40f09992ca9f324f897ba5903fb0f79e732d6e83c6ca22c40fbc9a88906e2973db86fac049f2f2e4377925f7753492076008217ce0bf55d77facac935f7be0ea64e8c5248dd6beb81ed8ca5d62ab984e481ed833dd49ceddfd55f27b80103cf0a295fdd43d446b2d373c05090b5cc7a51b9d033550021a0608b9039b3aa2af4aaeec4a991d3861235dcd644e265836a40edcf6a9f1f134d19e736aec0242e8c08f4c9517ddb3aa2e3b3ad148681132074e2631d6e7dbe89f240103478e1d373c0b04217260c5cfcc4e575d7d65438785c481afa44997059587c0817135d1494e4942dec07d901de4e8896a27ee216e60f307f5516b4f4e367a1b78f1562da56971e4496203db39145360d3049d6e7fe4c7cbbb14d8246f650c32776ab4ae0f5b44815dabcaa75492448bbe50e02e699998fbf33ab7f5c3164fe0c4b49cd378eea6d37c0bb18513f86cb2880ed31a628b2670ba26e969af249a87568db00513f8cff1e4c64ff26ee479842d96c0c818edd449aac3a4786fa1043696f86b9524e675bcb748022747f5698c1b7a19d343d802099c586e9fca63660dc263e4b0c511d8d3eca79292227ccb320217164bb492bbd4af74c91cb6280223a6f249525afecfb62c11785125c51b132bc7b43304465b3229bf338b6606e3b08510b80df23ebb8a12c43e8b6ad822085c504f9ab13707042e8f08333fc93ca6ded6b0c50ff898395f7849abee2cfe610b1f707f3a57e83599bc2cd603aeec3e6765cd1e4b5e7580d882077c6be924f80893cb4ca816b1c50e38d5e26e62d6897943c66ca1032eba656df4a8a92d72c0b8970cf97fc2019774a6d9252553ec24c9c31637e05c94d8b5a5dfc4949585c3163660a4464b4aecf42765df6ac1a8be961c933689430c5af0319430257e4153854a67c19b5dc59c041d2ab4081559f059d4effe831c33497f88110bd6bc32fbae67e41003165cb6d560ffbfd104ddce21c62b38ebcc9c2429590e26c96c2162b882319364e6145bef24b1c410315ac18ecc57e2c760d2f7d9a68718ac6054ca669a7c2fffd7b40a4efaa66ac998737b88a10abe3c4b8c667a49deb4993183061d62a482cb30793e42094a5019d541c4400597e4a524b3aadc53f0296a9518c54778ee874288610a2e28254f34287d65b22d051f474bb6fe280b26f7328418a4e03c7385d95f0ead76828418a3e0c7a3075d976a9d9715056ba27abab455ba54ea9424c4080527da85f6f3b4271662808251692cf5a849e525f39fe092943c6f66a9df8ab966218627b8a0b256e3e70c427fd7093e9bf04ed1cce604afab293fa54f6d824b2dd252d4a0793ab99ae0649f7c9332fb67af2499603397ec214d664d65594c70d29df6d839eabfc7cc253899e41425c9e2b1045bea312561e9a904ab1b83be4cd2465fac94127c6cd512e3a68b08bd4d82d315ee6f7267d125a548820fd6495487c893566422c1e9cd9a66213d4870da6e2a3b43f30876f304f5e9638e88751cc1ddc6dcce964d95fc7723f8d77437d2366d5aaf8c605cb77b7cc562c9a32e82d5689ed55ff406933645309642a96ca3a43c425689603ce9e7fd0b1d84ec1822b8d2e41af4072145457308f66469af50698469480f0dc197580c6da1aa4d9b2c13621482bd7ca1253da5c89c3342706b5d82c5efb73421c62058dd60da74e976da540a82d35ef53bb6c94070fa549a97decbb04e4936c40004df63799954e9119eba3f70428849fe5f39e6585b1b62f881735bb12ba1929439e37de03296bc5ea3ff652a1f58d1b016f51d4f674eee813b7f8fa6fcec522a193d70fac1a4b2984e348fb13c70a362d0e08113799a4a4b2a4950a68321c61d386db173bd8f6707f6d34493f288a6eb3fc510a30eacc831254b9eb9c7934c3ab029ef828e1633f5353607368a7ea59c3669b60a6e1562c881f36c71bcf289a6a33671e083953e55925a4f1a647060347efaa44caca43aff0646b85572f34eb566273770824aef53624cf1cca936f025ad754ee949105531fa84186c6093124c99d826091f8d5903a3564b7b727dcf93636a60b5ccbecddc536a12a5811bcdfdb5269e986e3368e0b4592e491093a63b3d32c43803f71d3c86d624b5eb5ece0c6c66ff8ca1d9c460ea2a0317cf04b13c42979c479864146290811f25e8b4b4e0c924d1354a883106de4b9f4c31de7f974e1203a33cada8a5b3d232d125c408031b2fd3e6d0dfa91362808137d9632e257ddeaa9c4a22c4f802fb21349e5decf3f15811627881f114f72c8358dab6246a84185de0db2fe5a0cdd3ea24192e7029b306f59f24a562564788b105fe6209da048d61c9e2470b8cdfe95c92f0dd174be2861859e04cd649e9b3aee3a6c71231b0c0dde5ccce1494da57a56a0c31aec047dd3f0d55fab34a97e38b2ff08b2f0e0e31acc0e88d973b7ffe50a53655e0372be8ffa67c21c5840adc9e24a87eaece14d8ba34554bd9848f47d510430a5cce9b26a975780cba87418c28b09d53cb62c7ff24e9090a8cf0befc62aae79ee24fe062a52456b5c61dd7248daa440c277052eca4049d4b970e4d4283184d604bc6606352b794abca0446c9d1bc595967aee925f0a5b1322679b2c8d1eb112246b9a3c450524e6d8c24702226bb954e71bbed83420c24303a736495bc279fe57b04cebfa4dbc624c84ce749a810c3089cd295634edff00e4aa7085c89f4a0844c4a35ab85089c5d4e3329497286c07959e79c4dc874492b04fe73bd067f4b0d425882c09dce6c31d5de66ee381058b73ed1774d2aa54ff6077c5dfab53c328d92bbfa80cb0dc2c4c27fab37c4e8017b5baf2a96b2e358464b183178c0969e1c7aa6b6bd5bc6d8012726afd419639745fd74c0db474b77693d093e1a40c4c801bf3eb25294a6d7984d38e03c49a9a62e9398ed2737e0929c9ef2e653d9de7362d80037d59a0b23b5e05c3f586a06a54d76148c115a704a5c3c9e49df66ea2c5d1899056ffaa26b769eca417e881159b07ff95f3499e82daa0ec4482c58d7b81756253b9ee48105b76923ab5a372b4bbc6e1123afe062992064501d74969faee04fe992a2741ef1b73c69051fb6a1a3944ae2fe28fd6084159c7532d3493f29f525368cac82db5b935b34b3f472aea882bbe4669ed34c525abd54b0266d9e9f66aa744907155c7b1e9316f4ef2a37740a4e94ead74e29e8949a02868d2e6e38181b983143071836762460d8d8610a2ec78c253d9f880c25c94ac12731a5e4cff6586e168d1a2105276fd4992ea5e42035350ade2afba9cb9952faef44c125eda2ff73b69e983214dc6d0521ec4b52c15240c18e4553c1db7457924974c461e4136c6e2b8f9f6952cad73cc1b557b7e6d4563f49a613fcc55e939ddfddc4d872825553d1314df946fde026d8f4a949c66825ea32090c34c1afe71da593800c2e66cc30c34826f8ec3f3185062fddf46282d113f24285aa2fc1e7d1dfd3d48f9bf1b20427de6927515335c4de4a7016bdb47ed4bf28958412fc5b9e3a359a31774e27c146df1d5d258fa853b6241853f935e88c2a3a8aa8e3059d01195cfc6124128cce3eb937afc91d5f4cf986d4dc5c31f80836bd8999289ef729551b5fe4700ecc98516a09238e60354dd59790d65e4a4e2318eff426beaf6104e79ed3e4887f7cb7ce8c457049e4c7ef6c42c957952258514a146dfab92e5d4a2218957414db3f3944b015af83ca943e876093d2a7436bfe7bcd49de0243f07aa3d3a98ca1f3a95821f824a8b5fc4127594dbb846033dcc22d637bf0dd07c1c8d896a2998a82604495ec2bca3bfb89760a6ed8b80b04236fdfdc2f37e3e6b407ec300208fe74991cf252a9c56effc0a9cb3eebb65a6bf3fdc0a5e0255f34c5f481bfb49644a754cd988174d8f8820f5cdd58b8c8b4d5a4973d70b14e4e963fef4ef5a5074ef8254f59642e3d7193c1c51446f2c009d9797bd96212d3950f8ce081cf3e0f153f4c77e0ee738992ee52748dcc0e7c7d7cd5ace9972aa97560548549aa953bbf9748074e79ec243737556d4be6c0c82026789e6831e5adc881dfd823b408a5262599140755476e301d627a61a3777804b68461040e9c187409763228dd26fb35f2063e257d1e84ffe5067ee3973ef724a90931dbc0897b66525be6d0983336702abcec4368e54a9359035feb99a48c6742299d040b236ae0045161993e4a4893fb481a788b498aa8051b0d9cd0961f2ea6b5febc1933fcf451c2c819f820ac343be91adfa40a63c40c7cf4d01ebd2e78688d96811be19794d21bbaa6fe1132b07d2a25aff78e1a46c6c06aa5784a5a08add1332206ae33fee6d5a04ffab8eb60240c9c9c94c8e8a52333693f63c68c199ae061040c5c3cf1627cdf324175a635f2052ee55119338b4683112fb0612294ac558d8e1a8c7481efe039c514752e706523831ea1acd3e9d60a235be05fc78408213c2db0166347cf708d0d46028fe8a8e4b2459240180a05024110c50000c7cf1b00f312080018281e0d88e3e1785415a80d140005472822543e3a1e2820161e2a0ec4025130180c8482e150401406a4208c82408e6599ce7c008726e16c49711ca6e9e4ef7d22f56cb5cc4e1e622e6881893ae7cccce38d137e292bfbbc89cc53f5a42510de8119e21ea6d9ec397e1271ae97aa2e6588c39530a533bdab909690bb061e4e9192677f0ed0bb90fa13fd106a70b4c0b22c59a8c1305363e20f43eaafda672234a41258a3a30938a9a625b2ee84c35302af2af0ab8ff7accdb608018d420c6eb20314591244934596bd21c08483c81f8af581eb94acae043218ebe0bd58ff03c65f7403c1374cd97a560e4ac7105ee98cf0d64198367cb61c7324271902eab87e0b3240d42dcd63c2facd9108a937069eacf85775b5e8268cce6e35d53532bb648bca737bd9a47ad7096fde8a8131b789ca4faa1fe128f1b63e4749526cd062144c33052db6622d2ad39d567dce95dccac5690b00733a8245b8bec6c8d5011ede93b4e83597c477f2a6d9aef0ccb66be47fd9c9ea964c36b8ba4f400a4589e57af3868db651e3bd6d381d44fbc3619cfbc734d4b7675a3184aced6a10ea7ec2b4141e2dc278740acba7cbf30928d308dca655cc650bd904f8f376521463b6878445523a4c14097abe641c9828867200837add8d2404b0e2c5990e0497a1109a084b23fa1b50957fb1e641c85b0c27ed41d72df2aa0315c8bfc2a99a07cd9053684329d0947122b36a21bd58b1e9da5d1a9ed51dc874a322f9182c4c0ebe45667329c297dc3afe0091c68d21684be8d1b4158dbd6c2ea61f613f601a3e243a405b7cdedd4791182d534700a703544155e8bbfb1f6636761243d0aae061bf36c2816246459348a4a936803908cec49ab0c99539708370c4fced993945bbfe285ffce2a2127013b7551815651833f90cd5e191495dfec67986a69ca618a0116896a21a6f619c2f95dbacdd90f7b7a4da699afa33b706ab2500adf3792743553bf1b4975692a460bc5827fe02944b8143983b8d67cef717cfa2a29d5bd9fbf75ef8a7e18348c45459ce840327a711a460409a5336e25c2a068b92997b7eb08a01798931905aa7f209c29b5e2260eef233381238e0b8581213df01e0c4b0982ffac022db9bef159087fd18e8345379402fe3de7a47c81d6269c02fcf2a256bf1e2830c7186e432263043f4b97da00afeb5eb222eb81b711a61105a01cdb9fe99734d29d8b33594fb8eea33040522ab81cd91f8dca3ac81d6d27b1155e0724676b8e0976b42a9a155f8dce60c4744f1288d7e0be4954ec7a86a540c9ef6fbb6524f2d3cdb8921cf4edc9819ca5ce52f9c0827b743e4f99057af12b10ca434e150fdd3f4c380a4fe042e1b5dd7a50c23c193237897f11da1466cd389653f3d20981d93690ca504928464401ee6362382a379e65721839873e1132d2ae78300748c954362a83b7079071a3fd44b7c7bbe8d05650ba5c76c029357391967256e882910beb60af25c1e5c311ba980384bb1bc0a9c3a6a98b78c3705ff499f5c26a041f0d23ffbcce78c1702249ac6397e531898e6960e2eccbbd88e979fbd1f06f9e7cb9ef76832d302074a343dd6dd365174bee138d3e64c63337f56332c6679850f1123a4669935559eb145e9e85a968002faec42a5627ffc0df162ff0d2c663eb25d0116c29e52cbe7c49ebc8800e0be2729bc639849a1cc2675dbd59df20efb69bab0aa5112c8081d156694326463d7b11bbc6c4f5905dac31f8cc76d4ef8a3570835788c5c6013ae63e654691218f9dcec1428c980e3b2b19df4282d5ea2d2107fe7e23c981859403d69712c8e4b352e01153bd1127751d168ab1c87c873c2c18c57a08bfb4fbee9eb2f5c339b253c70cbae54985892b0eb41fdc3f7acf0f6d5ad68732d940220447b7b310b0428a995fb6aa926024824131b791b2f2f9fa1de460ae6c98de3a56462c6086e6320511ad3935b779b5ff1006338e6ab5ccc732c1bc01e492abc86754c8f9297d0f2dc94d171e2c74a1d1b979acc54e747a818ecdbb1fabf3008940087932ccfc0feafd6bcc20c6e0a44b0c5931dac767e4890e02c050090fa16c20163e49a56ed8fc0ac11a203a5a93a25180914e31c7a4f5996411049630b429680667a30ca62baa7f962c95bc81ae2b35212939b17a4bcff987a98ce633dc13af195a137f0c65c9c93d6e2fe67688f3f6a504ab21647d37800904f197b90526d04e0454859c8c28e90114c099b1368c56fa542c2e5d8aea1ae3d20e24025d354e0981bba564ac44966098d769be14737fa9c5bd3829c1b0af22930b1abfc50f59c49180b41639903f8e88890b7178e97382310803a6148f2895ab2851122fe56110708aed51f4dd9c25376c97a0c2cd7294e412c4dc63c6e83fa9171a0436779f41561cbc3b9a39cbd9c0d7ceff33cf8974ead6c49b9952be696b0130ff9d32b2f745738dc16e9cfc72fc0f6bf164c476ab4690a5a3c94e3321669ac7d9be65ae02c639ee59b6823d5481db277b62de78c68eb281f5dbd58e1d5b22e60aff7e8854524547f6f58e51da8f69bd6d0f80ef40d414a300f350ff6bc836483e7ffea38d6c172c983d8e8e1f203a21f1c21c6cecc2714a086c94a21b64de0516c7686f6b28fa00f8a40c4db76b28d7eb19bc8b7b90140c72212f40513b9dc18e303758c0b16ba4bb1de60790752daad1bed3d0d895d1c3a882d37b6aee4f9b920c2353a0124a3510d5b07138799c73b38987ed3d2319ca02b1dcf10a82055a723f3dd1373bc9823cee2db9751642c7b6ffd279633804ec85277fb025a458dded2d0eff7c94b00ddbc95fbd1a09dea4f097ef09f1f6126342eacc77d5e047efe184a801aa2afb027e66d79e8be068d1b38a28110c303a6dea3905064ea61bfa044ba885ffb22fb44eb252ba7b6c5e20175d56c53b7d58236cea73cdec9ce76b1812cbdf1ff1c7236f04251406012837204c7b99543f2e24c85ec265db065b4e31ea3f3518ac8cef203efdf12623cace28507bd782749fe70660eb079183db8db859ce0be42011951bd490addfb5488a9c31666eff88d6378e701be08df48d288945c940929ccb5176216d0400cc30c63334a4c74523828266a78f5f127fe436f0225f3721d7e61203a0565dd59ea793d4818227271826572670c31b8bc47a620b4e71316ba88a8c6fe4cc6d45c65b4b32ea30d90fe6de9869b704d46dc0d12799b0ea4701938add58514417b30c47ede9262f27a8c778a84a69130d52093d6c3c6e012165847837218ffd1035f2fd3bdfff319b7f6e4857e418c64630f634f7c631baea21db8c6b08b7188d9fc988bfbe3e4f86190e3e4d103f12e29c6dd67462710156c3e83cea041bf4fa5352e0ecb7a0fda8539a5a462e5492b16165c1ccab21a4d9330267d1b544a890d02844524d308caae56430faf1489ac5aacb32f83d750153a3845e5a98bb40a731046a4b5e8db17eb71070d91d57fcace5cc5c0a2923d132a3b9f6d18409517e4fcdfc1fb5cf4558687a8ba9fb5462e8cebe3b1c84812478787ec19bdd8d3aec78f979ac0d59a3108683f73a5424388aeb8956ca3d69cfac73e1a263a39d6288026bf60c09c2ac6a756591ca16cd21eaad5269125e307e3dd89e04248f7981594983201da66b62f1e462be1aa9e9f03a7c8691a58544af3a095c8f818e030238dc1e933667cbe8c6802c1ec33eafec0cbbb7e4d307cd56a6c7b39406cede58aa4021ee8e88ecee255368dd347261dda2a260f8c55765861876c69da6ee644fcb7019b4909cd0d55f5a4a597c3ceafaa2fab77f59aa4a21e7595e6de0fb5f76223647c6ef34e8df26fb70fa811985299df7ce3c08d3d767a07f0eafd2dd4581d655f70b1a5d55d049871443e3fbf9f4f5cd872d3ae8b996bbd2edc829ae80c97117ab1b9e93ec252d063b1dd08d242600cd02e482c2a9ead8d34860df802aed7c7c8d821457dca2e816034c5463ba26634ca85c55875740b598a857553c5509ff630408a05ca0c1b56fbc17d1ad9a262a5fc313b3ebb47220e691b75e3bf04c5397812f4fbe0f5371b90dfa0c4b0927f7e376576a3c47c8ee7a1cd6704ec5f14bb1065e426cc3f9216946c04a2477513dd7cb279b138418f9cf7222b25553c7a47193fb2361855d39b40c6019d8c925c3d51a131436a7d4706711122d6e0a751063990859b36ed3378e32b6de39db8d54f9ae9b997f4e6ac59dc4e3ef687483552f5b4d3e486aea9d6cd2a78f2364ff0150f33556107343f20504a75016d99a52a30825f9bc07326128f5f6724253ec0c9e1ac6e14b04f11a4ca6fad3f5abb66a1f09925fedcb0b8e713d89686437dd1dcce35c67fc5b54efe03ce1c71d8f30e31ab6656d7d5cd80f6fd792e5d66638457a15f74c501d62d7390ffcae5bdc14d5296c25ce7188e6a40a52598c38b47a838f4aef0d06b908718d60779eec23087274d90a313934e30544ac06f5fb39e19addd8ee08c2b00bea0e1c2252d22b1cf141d999cba0707234d161eea024505b26960662d5408fc9a703d0dcca9d09448e58c6f26ade7c6f4f910f6c647a2bd6a8c90638a6408be1a840cbd6bdb3a86d146552b69030ffd51068b416995d01fd38a93ed51c3776465f35922c78950cc6d07a62032dc3b69727681536bb15ee9ecba3584bbd11a6ee337924cde56054fa4ea2ce4d1da87d73fa5a083dc79d66f447b31dc0c4e1debd821e8ae32e827f27005310502451536e67e429a972010289ecc45af514e2b6549a4d3e558ef26fd657b9bfd15942702c461e9fecb5a4466e182f009d7a12874bad1ce04f713366bd2ff22c96122335d97bc58fff186ac97dfdcc74f5a8608b0739fffa89b3a985dfd3b4b95f028c53240033357a3323e7e74cd3f841e8a04e86a86cb27cc79c3e36369f34ab3dce0b1f5a3b29afa3e9eb9891306132c5f8114a5c2b583168522576763a497fd0200c219574f2407c2ee8dd9764d16b252139620c4f3b5eac9778a1b9f9c6a6547844fe3f1787728c81495bc67ba5afdd94190d5202bcd13a12466233562e2dc00a1606b6f4cdcd8db3ee4f321488f7bd1d9e3d36bd585b40557b08a36364704542031bcf2877c7eb5d5e9ab0c255ed440ec1f969470235fd1382ec5a21a2a18846858609bbd9fdf8343a41f26c5f50891c4cb697c7fe4a7e625fad16ae49cfa5f1a2d4623120dd10c3adce3bce82cdc28756f9350d6d1bb689a895c24971fb7e406cd577445d39131d847a98793c9793bd1a36838750091f6d0416bafaf99184bcf11030f705ec62c6dbca1fd534cefbebc5951280b6033cf60c82bfef0b6af8017cb6642dd47a405de8c34d3c3ffdb71d3b22769ca01528d18e984d0666043e41c98a33aa21d9bae15db88de0fb3a1bb80a10c893b5313bc321f8d4bde171d04386bdeadb956353e3e6ad2543304ce1f4c01761a1efb3425145d90a7f71bdf19df762f5289dfad57d9d8bbaf34d8c36e2ff36a3a8125807e71adfe9ceb299b53a77b92da7b9729806bc167aad61ee40058eb1c5324e221954f1a2fb16ba8b0516fe3eba85ebb4a29df0437e28751da21ad30eb1131a869e04192c258137cff295dcc36135324425669ba187a9ea2963a9c0f1bd0f36fa2b6e9a690b7b1933c3cbae1043d0b4745b78cdb9e2c23c2d4ad2767a784ca3f766ec76e367e9f035a2fa40066a4d5afd87e82a94955176a6c8aa4719827c7ea86d8c9406dee6f86de0639e309c63602a9f48711bc77a5739c4fd2b6c8408f9a7a5e586bae4d2f0fb0cab6a6e53c42989464c7a1924e289e1a2d50b2d6331809dd746b171591588cad8c2fa79d27aa1556d1197deb7062833c82fe6c7d401ed76281fdce6d584213cf3b45d2c997955218880ea2744939a1497e75b3c4500c986f32e1d9e1e3954ff1d231d104dcb280f33d2253ff25817051a5970436a500e3e87f844464e913701da3a8302bd739123f830ace163f5025965ae625301b7354475fa007c417a2862425160e3e9dcd0da49e8873446e4307fc9407e5e2e648b7c745f79ace413d6f634515f704b2787f7a827d5be12e06448bbda142f7edfa20f1e95418001934904700cad6c47539ef8169a5222985f6f7c8d17b7d0bcd9695394d90fbd03806a4171af08384b83e7a51326011be84af7236caabb35dbd791f8f39678dc27e1044667e049e551121f3c71a8e4976249910066104c264f0305b93de21545b100f90eba43bc92763f7ae2bf0d2529060d5d58e8c682550bd89b95c9f9821c708e5ec824aa0c386808c2fda5dd9d7cb3aecacc2221f504f265f047989424f02a6670f1899af67e82608a5815c27cb1b176b5b560666c95ef24952be6d6ad52637ad9b9e1f09d73439d2d3d836705cdabf68932290ea0da83a8a864dd948d1e51f68a889919c9453e006c3f81ae1fe6cab77e6e1bb3aab83b93b3b1eaef5eb7e209c31c190ba8fcc35be44c66bd99733dd0a5c7ddcc056aaa97889b11f237f2264c673bdc2c8080bac66f354f166300ddc3d864ebee3835a4ca84fc02b6d950a6ea44a40296351e4a090e28d9100c219472fbe804092ad006544fbc9b3650685f485b3187540bd1bc94c5808dc84ce1cf01aa6e18140e4b14aa0fe4daa899c29b724441cf495a4f04f48dec5f8164ac009f16f9ccee9e544a183d9cd656f30f1aef7830e14d0fb24966c8ee700d49ba7b4ffb46b06cc447589d874de3864c957b6f4546c6de0ad5471e84b083cdacc91adeaac266dec6f2957196f4bf2f8ec85d01a7c8497dd2a5cd92d79f290a9c8e6942ea01ac0f8c04dd554cf4b6e2fb877226f5a2a6bf548b1aab1ae163bf819231d96071eebd2f58305bc2bc1c8ec2f689c9684e008775f1664a51cb4d68c26f17356a58e7f751bcd425b63d5f073df764bdcb36ee7dae1b5caae95567f39dd7899c21e37a9dbcd2a582efa20da08c5f78098671234113c2083ceada726da35e4604f197186b05f4bbfe5f2cbe94008066e9af73c32c0590c7f255a11e622a22d2ea7926a16ca8405cc563dccf11a637d5c5990a39796187220e5db64f1360c32ac448a1a1998a72213393e8b21a4a9a915427c07eb9d3aae7d4f9fe6198f3a8c53d5b709642abbef5a93adaaf08f2b74f88510fa66b666f4316bd8457c3e310d34255ac0d996c52a643d20b1df7eb3912fc0dcfc4ca71afd26dcc32a1a7fd0952ed9a86816aa9d376a459253351857640aee737a09ec3ee9e68f98782bc800bab475106f63c29f195f5f112c9d180bc4f886d57f03fd67a977fa1ef6d3c0c6d54c4ae28bf2ce503292822bd1be6c4a66987bc64e29ad6ccaf31c88bd68518f800282efb18c4b7df9b8faa68e97d6e1ae4855857759d33135db681002cafbf6461649a49e1963da242c70fc022d535da6ec9483358af9aa60cea549fe09486d086bae4335aaadf17ea6a6a51e3b62f06ba42f305e58c2d4b9bc2b8684b7eadbac7c32af594a9cbd9faae1a4f16035448d382326766ad4ccfede1b48d8689bfee9e2c26d9810e9f10bb29c296d047a11217189478f999ca0185c3df5981b6c25407b0915b205f10fc6a3d1d28a89e7f5ea482e3d0b24f577c67f5b5d044912cff5261bf754d1c83006330c507a585c68cefdfc1df9f4773b1d71cfd41d129165674806d0480d53eebeca6414f5f3e46e56dac39af6925f1f3bcccc2263ddac140a8446bde09a3f8296a993a4feadb5555d9f5520affa95e5138aa71a74ed0f1bcc11fee97a17541c407237c300571fc5c74d755ab7d1806464049df9e58fe3178d7cf9aeceb143d48616e4e68f9f8a232664be87134e73edaa310e531bf1e90fe8ded3c70b7f111d486c5734a53861348049101fe3fdd0121a145418eb46d982b739207d7c9ad9ba17a47d677a2875ce704a633e43ea6b0e5621e3961ca1f4e837bed9237eec762320230f2f41ab33b1db144607f8fe62b00e8ef5fd9bc529fe6e9ae53da788fc52da31d0b38f8387cc8ce7108aa59ea51c32e0a5656d9a4a090ec23fcc9b3824dbc95359e6cfb5050d987fd23ceaa020145a704f0313cc2a3b0dd4a20eb5788477c4e230a3fd0b011b8bfc786c83019a2ea7c2e37223b3a50d9825c8beeb5a1eae5ca54b2ed2e5b58ae346e652b08c8f774529f587e1f3326405b14194799003c9bd233dfa93a03c2453ff2ba3f20f5da0cd00aae5d21e785665c8c8fa3c6a3d7444fb4b11c7ce2120e72db102b2d93ad80283081a2948eb300e6333b1207cec25e4ea2a6d75f75aab4a6a4a9850babe0e3cfd7386f471c79e68fae89dcba25306d7151247e9c6698b2e760bdb15776a915cdeaa4c61d9f5868c105c7988f98e10a819458f27496d846ffcf7a88e451d2f237fce3535db0a6b51ef39624cf70c795acb6e7eb23366b280a044f4be4993cf2bcd6e8b182168372941ebfdd2de99c019b35d9753cc9fc63c198139f3f2a7cbb7420f291cd293208a138bb196d102fcf909b27fc025f856e5be737493fbf40c5c251caa9fcf5b021b5e28bf5e9ee47d976869df50d2255e6ec4ceb740e757e3ad010a6837df74292a773d83b9f35ac897ce363f395eff8af35a3986cd69807346001b89ec54fdec5cd781cb4d8a695ecfb53f5984b3bb2e6b3ede4cccfceae3974d2a10cd3b88a1947771882a233c36f19c0848198c68eac934ec8b2d03a3e78b018fb992b61acd64486517846496ea90c012b81af06451fdfaf41629a4006c10b4450123686d7e3ed251c56ecee5d1584c67fd2a3ed57dcc7f277d36aa571e7d488c7d242c7e1f41b2b003bc70ce8f3fc94bba00a64e0c3b6c3e75b4a470d22128cfbfb4e2914300155d78b63a9dc729a815398e5275bacf28ea9fc5f5027a0fe39506b32210936db174162269f9c0f4e4bddcf4080791da252c4ebf3016e084d21d4e649893010c2af0fa0a4fdd6a8270954b2f5cd99c82bc5031be29dd474ff4210c13bae2075fe32484cc7ee8c31ab360b2f2e71722a1188955163161e1cb01a01b8a2221abe1a23d3c3894bc58bbfc3153c3f84c304b313982d2f6c3c80228bb9ad600098a8c58491d403ce117e01bc04309d110d1a05ee7ff2412746e64771a1ee087a0303dcc43ce3f448c0aafe7155808e6d926e26afdec8f70f1402118628af6b6c340d0619bc715715f0ebfa0582bff939d96675a59551481c4f6d18aa20303cde3be14c89820ee7dbb66fb4f96548bb3311c4eac2b763795ddc6a0100bbc9420376c4c85c7a045fd0b8b0933e5674c5b6a6477cde82be8be4ef830a60425c03eedc3781d0a7cf0c93001f3085ea00ac66eb9199da91c47838a7a7af79ff08f9298118ebbc86af25f70045ca4be2c1d77c0fa12f4501c176c56bd8b24df35b4514c2e356d540708bbfa95f93342b5e9695b2fa5c1bdb7f0027387a5ef41aac16fb9b69c556cd5ff073dac1bcbbb2a05d3b90082aee25e01837c7f599e52e98324965c5cc8655e9082c9ea4dc04558a4c700fb69ee912b450cf14fe0489bf36b64864c34fbad2138d38aa456e6393f6b87155841499683b87058888fff16dee0da0f52b7dc7a6144e865497cf5d5de48e92e27e464b08f4aa8a9a0aa80462f7128c1476af27b989077c8cde877160314fd2237aec10c35e32204df2770195e06524de63c7172660ec0179855069934016105340e312f9ec2af3a59abb61ae44a16ee632cdfc095ef773e08bf3453f7cd283effdd52dc9f1423c6b0b1c506931717b15d407436ad96fea3c82333ca6b2eee32253a71b201cd27445333c9a27fbedcca20fd491676f8c5c3228f748cb0338194698994014d566e36285984db67a9d0df9c5b59ba0a932c42abccdc1e078f5ed3240b0bd1babb23a9b5289a045e5ce47e83fe93e83f16ff28fa08ef47e8be51e70f508e24fa31da8dde72e99ac2ae97501d491649e065d5bd51cb1a96db00685ff9cd2944113cee436df7f8cbca1903aa0891deeef3ab4e110c79426a4d711236ceb5c1cac91936fa3f22fb65902caeea481c528b902cdc9b20ec1848d09cdc6d940322c1fda4bafd09cf0e6454171204912e36742f2c603d95c279ac4629730525558992319c735d1917598118a261ffc778d15e01eff6d4cbc2645a3adcd4c59df9416f25d080bf394f6d24f664eb3e5ef8f94236d186f4926a5108326b114dfca01ab0f8f10b07f9e5023f0481af32026d24c930dac51567e808be96980f9ea270066f828b1678139bc2e2c7d4bf7d795d99363669e105232247b033d7b5faf8c375fb82bacb805d62757b04f64660f7196a8a4376b12ce0c7d0445f63f2e3d7d63ea2122a6f9aecbd3699ca62ada5c45cff9cc4127f81bfa499e20fe62a0674947100161622f99b4e93dd4704c72e4867d57374dc93546eb18e1ba025b136988119146ddc65a4b26220a2e6c764c2d4eb60fa3595402f4b2c8489e10d2c84df8cbbf24ed2e82753ae560429183fce119e4144665650f64a17a42596e6d10a6445b9dc0d4c28e306ca511a9317b0f464b855b3ab72cc989ff281e0d7f5c8207e89bc9652754cfdb32c5704152f8fb93f81118f7a27d47a5c279faa8334dcfa3a8e0b30d0cbf7b59ed88e79c2b2690a6266e2435252df66fbf1345612c4f143c2e2542071f5f1b898f3b7e61253b094c68ec8c6e8711861fefd5c1bb0ce5dc07a1e166011af12744cbaa9573572b9001a234be6e7edbeb8c20356e3214faea589380dbd5735d0cac7316a373934624d36470972987f6a45a6df3a3212938b361305ac108c99230fc8f498ef60e563a2f03358f7d58c257f0614173b9515792cdc5fa0e56a997e3b48ac5625618713fdf698ea5ebd6a7276cb9e2e98428eecc2b5c3b2e5563141001e632462cda6631bbaf0a439f8695b1515c6de52ac04ddc046c63e007f5ecafe926d31522147b804795251252085729fd2f1a7b304f4eb014414fbe71e6de0c7d8dfc41189d534e9bcf48bd9e8ed3e61d6c5dc301b89e482ae35b3296ca7e5c8f107a20e0dbab3dcc08cc3c740d865a97ef184c2390478198e0ac7f340f5d8db8570285097d3ae8e94aa51a02a977a2e3750dd285401bab01645e5e595e109f786901d2ae40c0840f424619e694e5408840a7ddf5078b4f2df442ce120225c7c248dc5323b31d67caf8433f9812077e1eb110b1d4c62769076ae996f57a62f8b25dbcc37eda76f7bd2bdf877f167180e526c1aaf10a4b7e6a858e3cacda5cd1839c1e1bcdf101173207132c99ebd520d84f48546e1c5e14b75dbfa4b22e3acdf7e4ede1c4dc7cc4c6eb230480630493db6653698b9f201ef42186b09cf6654d0395885b96e1fe1352afbbe90717bba164a9dffab907ec610d669192bd72dcc7b965ad86ecfa588bd2c64482601c3b8da90b089e155d9a6d3326b9900d88daabc3e76711a68a65ad374d183bf8485c619185fa0386f48c9e043136e98d400fdb9bcfe03c5bfb8d685bbcc07e9af66e74e2f9db52a75a3bcd88f3ef7947417158e7a7a51f33413727ef6eec4d9613ed1455026df62b47209a8a5c2f5d2a4b0d3c5dea99838e1531c29f62e7d9ae2440a47479715182d540d45524f9b0a49601b93c396903fe6fcc480df50c759f1ba8d5dcee10c8c9ac8d02ed0baa832758f7ec449022a632bd0c7b3afd444702bd35363d91c54bf891b00ee1156d91fe34259e08a1f9308d7014beca62f60da7395a56629c96b6f7e7f218f473a074cc0db546d6c4045b54b3a054d09942a02cb93cce5a498aeb31ae60383c20673986652092abee10099897d9b336854b77122c280ebb3263e03b1ed7b7d0a22db912cce60f0f8e117199b417ac86b3a6dd38255fb6102effe71b2b911286837fc13f80b61a890b1a869381724c005828448211a59959676c4333db60764fd43a47655d3a9ed7ef0459816100fe842d8f2e26a2ed0927f810b5fe0522982b4affcad0b01769ed45c31899868c92332065b62733d2feae55ac9e54d59e22668147578c15b1d750c2d76e7189224cda40799179e25e24dd83cba8cd7a1dca4c8edabef025031b67b5b015bd44c75472a9a43e084041cc22491d27a18904004f8702a46082597b1d8892770451a84fe580f905c01a467ad9e78ca9c972ac511dde1925be8896844586d389b04d96735a7a9ee2fab40b8063e4877fbc417bd37d842a58b38db27be6070834d3cbba4dd3045c4f66ea5de3f930a10b142650973ed94c6ddd3fe81d28331f672d4bac618e5741f9d5983199b7cb2ebefcc0f6672ac166d3f5011bb784c9e0c5d5b165220ce630a2d5975064b671cc21bba9da110b1546912e14e66442be8346fb62dd18962cdb601203e72132fbbf7c7db3866c1ed5d0069c9d50b49ce23e3201986edece210f359fc7b7543a7c770aa44683d9ec95527187d0deb75e6fe7c3f0d8c692deba189ec381025fe3f059bd9c535a753e7d341172898d3265c1403c1dae8bea9691a202398215ad7730e599aa656439631dfacf5649d19982d5a039f3de41c294b842829a9b3e9a17bf9d8e173ce9ff13488f2f9725d3b1d37cb47a5313822c2b3bc451966c6ae972ccfb3087fdd116b442eae2b8078fdd95fa9cc45880ce4dae03a6fd3a64b4aff71d2e4403dd20e0e105963d12938c763b9d39a1c69949e7a10d5bb9d94047cc1a4446813409e375887fb60b08b3b55a7a397776b8cc023893d59acfa139508500837de317dcd9a6b9ab0328094a0da8a0e7f32cd9d2e57031601aad69668a06eb9478e26c48c5e9f0fc4e71091037c1bd076e7f838f884fbe8e28e591af36eb0a86fef4d819534749514b77d94a9dc1fbabacb38976bda1c5e1d6afbda209ff58cfdef3a728bf03951dd8650b1893c865dbd131216ad7f85cca1fa09959db64022f99415fa55427d294c8ab2dca77113040935b6cafcf8a122233f63e3a1ea0945a2735273e13e0c80e1fc3d71fa4063b9a5210d422678898c5ed1d788103dad3e48e82c4b6e9316eab43ef80bd217feb45a898cd08c4f6716c098c97edc5872a6dc563a9f9eb41e3085cb152df60b920098f7a68714695325549dc59a634109772aca6e5bda998ac2ee1198e8101a216aa705007bab0bdd4b3ace9a57f1778c91d847e81c5b68a3af737ce72d9339d6670c4c234702b4735c1fd578eba9dc563f25a501340ae2c912ec8316a8aee37722dddf57b20c1a2e1d63ab0fb5dab6f23519e066fec41db098f0e945bfa74b975553a66814f5415ea3cdbe536e7c182df9a1ad0a8cd6e8b2a47f751fab4c2245cca8313f495aabf151b55526ea45eb087c0e703e9eefb89c6fc1b4caf659cd50fea61b9a52c69e138e34b7f0b57aa89abff994262d16b476055dca473164b992579370edc9035238449397945d2557611c99d4e25d257aacb4269c61b7c82c834a9a97f327ac9d56d16251d5497d403c464966db097440a999118743c8eba25f4dcaebd68ea19bfd3fac220f287206a6f66bb6914805559a495418037ccfa418f1e574a1eb53b9252cdb1b4a3bb120b698ff170463eb851264b3e8fdb9f2a2ad8c236e53a29e0d942ef51bb1e9b232990608ec8dba3fece2d21a25aa3426b59ed8c551a5ff121227919ccbe05c22437465e4b5eca211d86c49f2060d52e4b3a715605f9f254a244cfe0e5f2772de418013f1bb73249c902325541afaace076403e2415f6cb5c12894e3b7139eb99c9f0ed4eed40ffd2f0f0408f2bcce6da4ad0dad5e42cdf1ea498d04a6c768914e17eeb54e113274e77216797b185a9c6c6913d6685d9b6d72f8bbed5050b3a7ee770d624c45e6ab2e31b9f2d18b2552f43b565935ca610c26e1093e450bb85483df24dceceb80270aabb94946b6545e0376a2b801b34d6e4bc562c29ac1b9082b5d2edc0f00cb5628f4d2fc9b86790ad559239bbeb61b50fc8c3d7ab698f3c924181dccfcbef1cc9155f536b3d23b907f52ab96160f4ff93b0c6fe9ad927d9f14808f0fd3a7f1bc35c123259276417aed76e6d17e49b38c0e6d94eac16a3efddebf444ca461dd0de1d2b94e5202c45ed169540b71ec8ede09ba9ac0dcbea97814fe478587f7d9cefcf4b7ff55882d96302ef141d5e1b6c6341c83f2d089b6ad905a8e94176de202a01619f48884f5d443d7f842f651a9fc55e0755a5c18a6eee76d6ad4f428721fbb9cba9373aedc328c7197c77d309221a8ddf538032b2e664c54d8c9500659d92d67a864a9fd143ae1490d599c9f2ed5692dc8787a0a3d86405b5208a0ec797b03c54adb17efbd76cf4728ab018a6671f453eca4b78c81225f113397d1c2a0170885af5ada9b0ec3d6a9c0ced81e8dae6c906191b75861918b6f904210f5e0ec41de0bd4b378c5d924d86c917133694e51e64ed3783a4dd0201847183a636d656a99954c74eafef9f8d01133ba2fd17ce10ccf6329c2a05983c95661923fc86d5f0d30488575b90e40eb87438d8cdb41cc50199302075f65d58047245307252cbbebf507cddad13facf476b0a7456325c6f6140f5213ecc1bfa0c6cf531fe499cceb3496febb669af70cc02fb7d4d4e0c57d32caf6f9b996f721738b12c171c0c795972805b78675433d9bd6541a5db32c31de8607f577f8c646ea8e709f92a1f4ad64a28726f6cb4f9cbf665defdf0d85f130157b34856cc8d36e3546de1ece439160a6c8dcf486ccaa78f8bcd0fc37d6d8b961f26698e0bac8e2b46fb23a5c618437a81e7fb65eb7aa20a6f67dc69aceb60c511be0fd37bae1ef88e4ee0b75f47d3aba494452fa4475f504705a6167b41e1155c1178930c651802932061043512391a4d961a3cca4f5a620abb2239fea3470d42489444411c8abf66f5c0039428a54063980e1649a6ad79b336187b79755158832e52c61a688456b0b24caa915a4661f0d8228f549e61c329c44a387fc5b83099ec1f4e292069821f563a2295e4deebbf0274f9272bece07238fd82abc2d00788fe30b3d1093ce90dff2b8060299aa33393c9585c6c5b094782369edb67f5b673b00617085eb775c81ff0bd1ee640b44e687b259d2accf8f8e17b5f4f52cbd23c54facd6ec21f0fb2a3c79142393a351b5cb915eeac32873e83431921015b9ef33f709d5c36405b47f60d47798a789208f3d2f40590913829024bf3fc2931235a7b3ec4199dbaa0efa06f6135928e235da1648239a139206fa101b683d4a5fbdc23567f911300e4db338dd6a3011f005494c846d6d2ddf6ac1846311ba0dc3d4f7f80716fca6fb274380dc68e25b6a45bbb0ae112601b0273d5484b600516d106fc915f66134e4b058aff2dc7ffc53346189477c578390340f6d5bcfa1642eb72b887855bfe4f6a7f6fe4057d7c4d9a42307e4fedbb983a91180a6d9e731d742cc492d38076c68ba3065ff48aa71671e743c6692adb81bf0ff60ae25b834c6f988a8697d2f2df8ad672a72f49cbb6637d26d8d270f38d6969270a8ab11309e5e68a797e8460dd08bc623790231834c717208f1822d4cc4261bbe4655be41027b032684fb55b9c3949ee15197cd6b9da48727e4d64fdf1af653fa34f68ac0d0b7f3cce348546eeb51854c7a337f6059ef423d6d5f8dff6d9c8b753a1fd0747e46e78387e66ced14f68459e77cd723f5358cee3bc344e8996d061913fd48d52d1e5ae4d91564108a3a57d2bc34e31c3bd62c5b17d452c9c2ba8c98db829c5b424d115b0953e3152d53e1b26e9614515e67c2694ee7c878f05619c3673388bb98bfd0e00e290f36260496f49512aa7a9772668d0fa33e60b247b5b8b453e31d0db0601709051d07f1c89de7685a79d5d930a282b439cb4e4f94990ceda16c808731b1dcd6777a1bb84a19be6b3ef53e4005e84f62ebda976a9af62d7bbc1335e9489610841d098bf2be31098815f2fab344a35df2d062459a6359615a7ab06062cfb898b288f800acc042ffd40e7041fdc1435c78d4015b3b962e036416c39cb61841daecb842bb52464ab1263780c49b060b47e1aabf106cd6a3b223b2aeb1ddca5f3fe34959e9e2dd8dbd2cba6e5c2ecf352080cb1d1f107650d82ccd5ff953e94c45b6255ccaff7a4542f56ee17a236d00e4ab6eb041728d2a092a594bbc2314dc6f34ddf304c59a4b4a727455781f94a79236ae3fa5991cde818888da5c922cdad6376e300c6cac6288713a334d1837c61f9794569102d20653aa9824acaf404c0ca1507ec3ca4bf9f75e7b3059b4fb8325c70c530f263b399bd375fc6330f5aafed75025aa8f39b3430b024e900000000008013500cee57ffffd6bc6dd6fac6da2f939413baca50910f6f684a32c99452261fc507b48db4d6e0c76da053099a09bc09bacb4aa5506f10061059a0a55575d3cafc65c52716489ddf34d9cb592e4ef38f8215fc0104166839fe638e3b732a4dcb2bd061b59637baceaaf737ae40cb623cb56a33e9ff20b7021d7e9fb4ffe7bfcd9cc900c20a748c9c472f1dcfd7fe55a0b43656345d45b36c9400a20aa48cda262d34882a4f4a05ba3b69d86a314cb71c6201041568496376b77ea93db3740ae4c9df0b5aba8d038829d0aa63d8ba3cd18fd9c25f0029057a93b99c053d6d761e8390021de5aed2e9640baffe1f05f264dad46d3a538f8755200ac4fab897529afd3499e400120a743cf94feab7856d170705326bbd2d2bbbbc5b5f3200f9043aa67fe1c49709c413284ddb9452e90c7602a9aef339eca86e0e209c406d785b31f936c82650f231eeea702ab59c57ef014413a8b15702c9043aad9b7cb2172e2b575570638c1b29b83106ba31c68d138cc15400c104f2dec3ec4795abbc3d4124247ef239402e8116b64c4d672f251a4400b104bac4e5cebaafd356e7402a81cef07c1bd58a9440e7872957fb8e8d9b49a0e5ff8f73d9cde5aab0078824d0a55f65830b2f49d51a9048a085532ff132c9d200020994cebcead5158fdae511c8e8f905f9dca55ff0a8408038021d3b2edeaad3ca56dd8d40a68f31a3a997a3bfa46504529e3299c55cadb49d9728208b4087f9929e4fc6dad4a21481d6dab550fde29450cd2702f561774b6b197fb3ad10813c7395fda9f4e616b31c02b9ab43c3cf46dbc7630884cad62eacf0ba10e85c6a5abcec714ccf4508d49d744f4da7c5b0974220800c02a522abaf7369b8dea82090a7638da872d14020f325295bcb2ce6a8563a0101c4abbf512bd9f3df1f506a32698df97338d34a7e404aa97d5d4b2dc9d6fde9035ab97229ccfd4efce74480f001ad4dcc5f0b31a96bf33da0256d7eea39c85c00d10342ff3e86f9ce92d4922a0f88ad55fea26c1f0fe8b8ba19a6f58b7397bc03ba73da989aca4d95318a07103b203bb7184d2ae5aaaa3c12923aa054a7fafc8f1d1ac7a6035a7e92ee529b9ee7d3cc61755a56ab94789d1c501a75d6bf72f7ba336e3380c401a9a429f5247ffd3f7c38a0c4bb6c5fd89637a0634dfe7e30339f57ba01352ecb183dc55db9ccb50119958e4b57bd82b001a55d5477e9c5dd55bf025903626be3a59735cbd2e309440dc8a06b6a7bb36a789a520d206940aa952df8cb5aca581945035209d932bddd32ed2cf201e40c68414eebb4ddc50c28194eebd56fbd675599914c5c80069032a0a3eea8f5c66de9e47e6b203ddf45f56b19545d940c282d67b14b9ed45965b4550e13ac013206c48beef3ae51a59f98fa002206a4cca27aa5d46618102f5e9ec18094aedc94eed2a925ad817c01f939eaa4cff4c694f203f1027af33c8b068d7737a52ea0d4eb987b32cd5cc9cf05a479cce27195d2d9fe1690722ea76f0bb7f398d402eaf4c72cf69ef25fe96501f931968b71c13dd66db08054a9fee26be1f33cde2b20b5287d957d6c69c55cf006016205944ced1c57ad662d7d5605749c51575953dfba5c3180500125dc638e6a65e7a049d52e804c01ade35fc867bc8cf14f1940a480768dd5a8694ccbe1a3a290d03b335df24f5040afde950fbfca3fe7f5049452be496dd39ce7dce20464da6c2ac664d44c1766034813d0275ebd455fc5b32cd303081350faa29ecdb6e5da5c0bb204747a498b3fd3d123802801199bb56753f399b52c250179736642e5cbcc041024a03c8a077f559a4ff6097204d4d6ba4b2a37bb735e8a81946dd551cb4123063a6d7a0f2d9d3cb8781a06cae47e581d4ca3c776d1f0210c647059129e5e376c523918288fd9cdcf497fc0407b16333647f5a3f23627f8f805fa3f66ad6553bafe65d4872fd0e27d4c231b6deef4ffd10be446d594e9e92e4b2e8bc3072fd0a91fdbc663d22ed0925473b9b566597d9f3e7481da32176552c2930b7ee4021d4cfedde5b631712fca8f71638c1ba1f8c005e2b7b5baf3b4273798b740776bb9fcfac5b640eb16f5ca3b173f6a557dd4022d78cdcb827f0e123e6881b07539c6eb20ce0261beb9dc74763e6481d67bdf62bfd4d5ccea2316c89c7322f26a1ae5eb6a051fb040bd962edf3f26f10f1faf40bd96ee84be6426671a5720b6e49ab68bbcf04afdd10ab4c72e3bdd5c42c445b102ed253facd6bad778a755a0f5262d56dfc3b74b4a5520a5babce0af65f373cc173e52818c27cb45f59c420532d67c7709d339c5ebb933057a63cc8ee265295fa34c29d082b978962db7fcf352a440976c70a55eae49f81805f2fb45a55e9acdf910452f6b8ed31dae74638c50203e79d4a2ad8bcb9bb40f1fa0407d7a9fb9cfec9a767f0219f7d2656793c2d3ad9e40e67fe184b7aa76b05b091f9d70643eb7ea4d9713e8d25afce61834b5fa973c5cf8d8045ae86aefec1e4cfcabd6f0a10994b0d5d457a747d3e56402b9e2ab593cfe94961b317c6002ed9a3cd9c7bffc2965d2f07109b43ef1f2a877ec94a96409b4ccb67eb8ce628e25530964aa6919eb49cb6b1b52029d4b8dff66d527817ef152fdc77c75eec5e448029d5fd525efd73d9e5b2450f33f9b65ebda17540a12e8d3b25a7cf3fc39b9ec118897e5f2a9beb3159b3b0229736799a633beb15b2f7c34029df62bb30e8fdfe18311084dfaf5337df7ceea7c2c02f5b235eafb9c6d472545a05eee67d7b4d265594e22502eca174f9fcacc9e3f4420bc936a559f79e39f7b08a49eb86a31556d88944b71ef1a1f8540ffb8962fcbf24308848be3a583dc6d3c191d04326b7a878d060581fc77d7926ecbf9a4df8140880b269312aac5649f0204d2ced3b6ca3dd3623d7f409a89b854f262fadeec07e40b9b5f77f19316f36aa4e430ec0352d555d3c6b4f1071fd0fa37ead0fc3a677d3a72f8d803c2df576a516a66eb743ff480d0a4368b49c4a3471b9ff0910764dc797231d8ce6bfce0071e90af71523b5d76b6e9dcc7b841860b6c40427286e6e1e30e489d5bdef1d2cc25334de3c30ec8d0b56f315f96e97ffea8037a657554dfb24e258366c7071d50f3326b7f6a54724564e8f03107c48b5279b74b679fa585870f39205de373b6eff2d296310e28efce2a5be359e7df4f0707c49cbc971eaab324f51718467cbc015d27b5568717d5cb562928230df1e106a4ceaaf52defdd8cbbb60d68617596e46b31ed71657c94f860034a6bb17fd4e675e8fdb106b4d6728cfadbe93bb54d42424242427288f2766a40bd3cada5ea5eb949cb3fd2807c7dae05d59c8506748e2d87974b8cbd2b9d153ece8072b1a6f4ab7cf9e37bae0e1f66407df67bb59952b6ac95ca80509559e96cb264878f35d0b261bc65779e7efc020977318efe2acf5f7998e8956014226d40d97dd631297636a063107bd9ac83eaca95c81a501ef5a6d37277e15c520dc8f0b9efc1e578a931260d68cd2ba7a1a929df5d259f82031134a0050f9aaddb53ebb4e11950673aaa92d26e33205c980b0d3eae934e8d37a3a4a4c78e4f413cd9b143a40ce8f7ecac3e8b1a5bf49c84f120b206eab46cbb157f21034a9c78adc9d4bf46178a8c01a93beea3a866fbbb6c04226240ae18536dabb9353e87019d72d5acb03fd7ea491130a0555e567b4a3cc6cb38f9179090b88084e464871144be80d6b26bcfe0aab30b0de338b7e3757c49ca97a103dd20c3053770a41437010d5ef002c692931d3b3a897801a1bb1e7cc346e1df5a6cb135d97c543117d03126ad932f6b7bfc9c2d20655e2db987fa0bcd2fbe68011d746eef379cb2c077d0185d1efd44b080f8f35171a7e1b5ac8cd21103121283060949c919349087498e2686c815d0e2b76b99ff97a19702112ba0b5aa667c51fc85cdd1a17294f03051a708912a20b59c5ad2d2fff669aa44a880d4d9739a5426fdd5c429fc9a1e4ec7a45152408c8ad76def245eb4140564ec9995395fae44040aa8958ddeba46355c568b3c01193f5d2e2dbf7346bd3b01d96ab39c63f6b29d9301814813904aad4c9f25f6332b291126a046f45cf25eb9c81290724b87976a5d4735314a8a890e1dbe94fc89a18812d0f2e7903b8fb9fd62ef40240968513c8bfd69b31633f229e21041025add05f7dd7521265d709cdb1b64a4a08c123c8f18ec303941010acaf3d861a248487e49b386c811902d6af66f5da555761c520cb428cfcf952e13b69e0921063a7d47172dd39833a638ce711921c340ce66f5519efb38cea5f13cce1b428481ce57d3a6f465f559d6828130974aa588662daa7660a047a3b71a9f7535b20af9c5b28e39ca3cad7f5f20a338ed6a752b2d5d2ebd40c79551aeecf6cf09d70e9393650e478a8909f25056c79b717262c2034742311684f002195c9cdc24a754c995d9056a3378d4e9c6e5fbc6758196b4cebdf5d1e5b8e1940b74d2ab9bd962bc9a960d41082e507a5ae69b8e752b658689098e9217c2eb503910e310720bb41685e928ae6571f655445ba064a7eaa0424b6d5c2513520b9497a9b74e59ada5160ea1053ae55b6ae1a705d1dce69d59a0b3b398652566354b69f849c9ff5a59a04bcc8acd21a7954bd39ce10a89053a7e8e9b95f636618196c44d8ffec65f81f6933a777fce7c1a563a166744882b50da5e878ebca477fd3321ad40cc9ccc7d96ce64d2185620d5b3569f5bc6f4aeb19055a0a36bc7bef4abb5a8344415c820dfae7478b9c50e762ad05a4b5dff77abe1ae62210415e8cef4559a32bca437abaaaaaaaa66666666662222222222dedddddddd25600921a7409a5c599d349a78793338ced90f424c8192a6e6cf25fb7998308a19262638424a814c2d6ce6336d2ff8ea709c2b591e31180345878e12dc18e3c68d316e8c71038d1c6a676e0d21a440ea57a945ed2fb8787991411a4246812e13975ac577fe35cfe82284880299c485679bea719c437995030dc74b0c055ad5cbf712cfce11c57130aa490828d0a26eeba79631ef582242c82750f6ef7265661dc7b9209ce1259e40eca7c80b7f1b9336a413e80f57ea859fbaa8b4981c3a78987002693a6976f9d3f1b450b110b209d4cee7666cb1cd1abfd3045adf9a164ec54571d284e394f048c3848719252839f672109209644e4ab34d97d4ebda746b846002dd19734cdf736fd95f02bd1b9f3e46d3e8fa3e28845802a9cf646cb5615ebcbda908a90432336bf19a7c364bda47a6044a4f8ad362ce96cf5589e3b0a1184226812e71ca4f5e7f78e430918124d05add2af18fa752e697095276a040086aa4d1839048a0be3d7d3bee0b8184a21d1a635f687aa832870f421e815ce54a9fbdccbe9852218e40ceb7c9acd9329cc6e0a647231b813a61db52fabbe7ec2b8411880d66ae5b5b553c3c25c7a2789420d3a391850859045acfbc2ca8c9a708b48e59b3b9b02eba724d2290db1d4fc6ccdbaf5e2b0411281d35a9b815fee10d325270899043a06f3b6ee64bbdb4da771a620864cbd9335517cdfaab1c68841402e5fdfdff9230755dc2104220bffc4eb798f383402619f7c33dcba2a76a090299bfc24e79b00381d03c2dbecc722a9d6c40207d5f269d5d352242fe80f88eaa6587f9dc5f5ab80a217e40aa52daa3fda9536a1e3574e87032b60f485572ae4bf3ccaedef8b029dd4af5a536f780967e44e3aa978b8d590fe81d19d1b4ebbe661e503a9792771f5e3a71f3c4d821040f087b17b7c5d5f6e13f7a07a476193173b1b6034a68adf84c9eae035279ab0e9fc4bd0beea287103a20e59fccf8d0d41f3595c3e40625b723640ec876d5597e59922143881c90e2f25c0c5fed2de70cd5101207e49a6ed70fd39d524638a0f446d3d012cfd095a2c8e0c618bfc33711216f40e66ef1fd640ef9d3b8012de5dafecb283e87cfd521a40de8d7175d7b96e56fed900de838e7f9450f2bf3cd27216943c81a10de59302d8bd9598d66a90159a7f6b2d4a4c549fbc021240d08cf5aa2eac2bc6966d1803cd7eab5b49b5ad24a3c03ba736eec974cf766169a01e1b1334a25e6f4ebac2a0352b394fab5dfb91d7586869035501f54ccc5de6e98ff16114206c4cb7d58ed9c942b750c68ad5c7cb7af5a0c6825f794c9eeda102161406794bb99657819bffd430818d0ee2a3bc9d2f34d9714f205646ab96c5c890d7a9a3584102f203653e9b996a78dd576012936ef6d9272e5e4cf8574fc760cd902f2de940b3717d602527ce6bdfcd92ca03f0b4d7b596dab963f040be8e841f763b4ed0a0851b1ad5a7fee88cb1143ac80ae5b8f1a5b66885540786d9251e66367fd3262081510afb38717e5bf65195bb542c814d0a7b32b99b37dc3668b1642a480ceea5a56aea5cf98b40e31240ae8dfdc74d93f8c180285e550d1acc52c9e4d087902ba94163fd86ae795f58f10e20494bcd5d45a1871e51d0c6902e24c3db36b95727e5a4298806eefb42e99122fae96d44b085902ca85cf9f65ec4509214a40eb2c36868dbaedbfa1a2119204b43c2fcc6dc6cff257439080eea45afee41b3f7616c528841c01592ba772d59f20c540d6eba82f9cced9e386c440e7b7fc16f7f8f6176c02c830d0d1f5cbd1a34edec245106120958ea91d721f558b3ba281c1408beac22a51b5bb8fbf11408081967a3767fdc289ab8abf40c65cb3adbaa5dbd4f2be40671bd7a9dbb224fb49bd408ee7496f51492d9ff302e599a517af94eb6d39dd05423365232139ba4088fa78aba7ecb9fb2424b940baf428ff651d65d6318d0b74b6e793c1f4bbf8f66601e41668d793327cbaa837c99c2dd0dff32dcba76796b485af00520b94bc16b52895d42eb7faf4e8e1871628716b2f344ee7d763668132cdf02caa4871085452810cefd35acc9a57ded9bb811e1a2bd043234f7294f440d10a2a3e2aa740f889ead83a7ecce6208e941eaf4c51a99402e1eba566b45d7dccbb420a946cadf3dce516d725a11f2aa300a9880299be3bab94a5c1714e470e1e39fa72f4f0921e280b031d946425140aa8800229775b8ef9da27d0bae5b54f3275634eb10d6ec8c005154f207b4f44737cceb89975021d46b5eb74599b3565154e204c9ce7ca92b3d5f9c6714e97846414954da0955e4d42d4676e858b26505acbbdf2e2378b9fa74ca05bd4b52c223a269052b5d2e9ef05378f6ae51268a9e2e45eb697975f8e251c17d5aa2a8116b552f12ca3e9702d5202adc5d82e7cffebd7364a542681cc24f7e4a469fd26832a90843189ebbdbed4f9a7641f542281ee13cff2b7bb50709c9494e14bde0b68f08217189eecd8913ba84002a159b2cdd7515779045acade769d2f4a7576561c8150a532e95842e5e7cd541a81965ba67439ccbe75902b8c40ca69e9b5a89a259da3669545a0663788e9ffa4a1b953510462ecb4f813fbfd327a22907727cc5c66a5c15cba8208b4d4ca777c556a9f3f95c123c7490c3cc54f408317bc80846405631c3e540e81fad38246973d29f5ad560c81d896a964729b955abd0a819e5f57cfb1532a57ba129394924ca34208b4bc2a9a757c592fe6536510c856995d2afb94e5a3382bd2a0220894cbb25b899d6a19ebab040259b65149f1b93a315925ead5c9c154540081faff2cad2b6f51b9161da3f207b46ef23413aec5710e078aab80b187ef5841c50fe857dad293d83c3e1a3615f0092a7d40da46b7f96c59963d230624249fe3840c175c850f480dee1dbf94961a5c4e4efe04b550d903b2a4bacc4f8f755a46c3e4a4878941450f68c94fbf9cd3ee495f58c983cadd65bd2eca1f0f083de9f9f25aa7bfecaadc01ed29b3985239cdeb52153ba0cc356ab9853b2d2af3c642a50e689d3afeb494a7961633840a1d901a3d77eb378c380794fa89969d7c5f534a2e54e480fc5475e380f81c376679b66f734c2b7040a7d3ab59a6fa1c7bafbc012dc78ae6965e32bcaf1537a0b563e7d0a8f7dacb556903323f29ef16a3ebbabc28a1c206d4b61c55a78b2f564facac012d9e4b8bb2ea4736c4aca861a93ed6bb9534203649b9fae7455d63a982067407971e363de65bbe18a17206b4a0f265541d7c4cdbac980199e9d2efc9cffaaec44a19d0aea1ebf975ac4fd55fa1b206326a99d39458cf1d6427839baec59755275d650ce8df79615eee564aa6979b43450cc84eadd95fcd1d06849a529bbe1eb37a4c3a43050cc8f4203e2ee55af9025a7a4e2b3b262d8d497342c50b68e1847a9a1455099ba1d20584ae94ab2d6ba58cd955b8809497958e4ffd59947f7150d902d225a5b3dc2b17c5c98b09152d582e2b6f39dde9b38072496de6309eaf7db32a5840faedc62c69bd415dc654ae800c2f9eaa137aaedbca2354ac80ce31f5b4854bca055392f3f8924f2726ebaed7a85401199bc734790c535a56d1c0bd920a15109bd6948ef962cb5d17933e3654a680d2aa9f7dc636a78ff1491b2a5240ee69ae68d2dbbded49250a686d97ae637a0febb2498e921e281528a0848b5ae7a865b5ba3755a83c015d6336fa2e4b952e62132a4e4076d4f45a6fab3401d93efff91e75ec2cbd4c5278acc00a1526a03f4df8966cd9a5e52b393129e1f138524a140f3fc7631d469525203c3f6af16d5b592f6ca26ea92801254c8b99a4164e89936a2509e8a8fb622b53fa65521b630c46002a2a4840cb69daf7352e8b423d9523a0c3b3daf83193dba94da418a87bb55bd39d5c3b26065a561fb55588cf0bee28519161a094eb9cea5df8f2d4a24adc0ea504c2404b61fbb272551f5c96170cc4b876d9c2e6b6e87b0303b59af497c6a4b37097e51728e15f2b5eaad3ab853f87882fd272366e9cfda4222141e961d20bc49d8fbd2c77351b0d2fd04a657629af63a2ab05c7391e22bb400b93d14d9607859003f14e20a20bb43cd34e3f73aac2ce1288e402a5e5a43f69f184eb6c222e90f5db61e4c555633adf02294e6deaf8325e95f87520620bf46bbd2c98baaa55dad5029dd36a142f6fc9ac2dc3710e857920420ba4baa43f4b1d5f8b5bba5543641668b549b6f25099ed72c71688c802193ea7fed42d7fe92f16282d6867b9bd537674391688c00265ba2e4a993a7cbebc719cd3e1982af20ad46de9fc47392eb66ecf310c745042021157a0f3c9349b74b3fc24bb335a455a814c339d5cd6626efae0f8133d32d2701a1ca6e127ac40e6cfafec0722ab40991c17d37d7aad5fea1d37c848c10d55a0d427e93db7ba5dd4720e22a940c91efd9ce3d9bbb04205524bf35ae9942fddd6a7c3e49c0229c6637ea994d697e2c5889802d9e6726c155b27b394494a8b94021d655a9de5a031cb743aa440e7f72cc9b031b7954922a3408ec6bc65b6dda7a65122a2408b6aa347e1d14e86bc38cea90a444281f2605a7cb1e3f3a5efc4a4c4100622a04098f0175569cbb4515f4c49486e8c71e3860c5c70030534b8719810f904d29378964e6aa9c5f49a1a60caa37802dd592b5d1b9ec7c58c12e904bac5985b57eadfbd9892be070a8f1c251703114ea0b566f3d494a3f973882810d9044267f5cbc2eb281e6998a426d05a94a5e92529a5677de94c2077d76ba552ee51b9668709d46d4b53a9c4ba24c5be04da336b3ecb52e2e26e650283b62b885802b1d95d12f52c35dc9e38ce9d98a438e30a442a81788fcdd12835c9ae6d7911598eeff0a7942b39054719394e6c12e81b75792d2fb3a52b2d121249a0e5db3f6152b6c579293cbd8e04cab5d68dcaf47d9c749d94a17f82f437382c498f46cb40041248dda46c4d69662f9d7d047a34bdb98e26bf4d8d1a6f46aaf16694a8b19404c177d8893802995e8bbf8bf9d76adf7511441a81cc7c2fe7f29c5da31b23d071dfc48b408b1dd53fe9bb8f5f32452083ea9d703175d8f81a9144204cd3c7d6e5a6f7fd328c082210ff9249d339388eddc00577874096c92fddf65afa602e139ce0739c90416208e44bcdfdf14946a9451d834821d09e0531a5655debe81e1ce78e89082190bbae731a270e02fd3134bed79e6774714120f366512a2d3d2b452410c8d22ab574fbea9d258d0820509a2e977f4087ddd9ecddfdc9a7e4b814600b6e8c71e3fce45356c007113f205c9667737cac6b596ae9033aebd75ed54a7bc6d7f301a9ca76d4b3149fb4ac25b207744c25f231fbacd2fbd1035a566aadfecd0d325280d206913ca065574a9ff432cfdac47a227840ea92725bcc69517cd0ee80dc4d2eb8caa826971233528e1e76296207b476e5fa9a54fa2b77eb808cb227a597966f6e9f0ee878e15f67facb1c903fffa29b03113920b3f0d0b235a54ce6380ec8cfddfc97c35cccdd9281081cd05a8c795f18d5fcda1b1ce7520e1dcb193d44de8070396ab92ee77ba945358e732538128f335c874943c40de8041c38f881b40f241a52e0fb97e7f2bd010a20092fc94520a5a09c71528000a8b17c40010048413983060408c097e16794c1c37520400028270978010002a002062c400428397ab80202700800a0a02c24041080a7b8222940003cc595c909c9010030001b0938f9123392a7a094942c000001003900b2e46639be6bd0d2eaa30994d216713d9ec74c8b6702b5d91e9a2d356d676d60a25352ece9b8bbe377181b9778344c76ecf81d07b061892c41808d4a207cf39618d7a74d6c18c761bc33f076fc49091a395489ea4be191235178e44839791d397aec304933b04109357a4c2273a428931d6748a2c78e1489cc9172820345474949026c402273a4e8c081e2252509b0f1889447d9f13b0c60c3119923058d1cea8c929204d868045263d8d66c4a2d0b3a3202757eab6a850739ad5a16815631a9b3c713e2dfbb2250aa573fb91c6b1b89406bf4a46388c8bbd6923610814ceeee2eb8b668a67f1b87406e8cbf8c9baae7e46908645c9bd3ab1fd7d56ca310a88d9ae5de0c278310e8745246a96539d918046a47b5e8e7f81f654ae138771283efa10619ba091b8240f777ceac1b9bf329591794c0043170410a6c0402a1aacc834b59d2445d40a05d34a9a56bedc2c3be3fa03e8a7ff3ce0f8897c5a3d894ef79f6b2d107a4aa6d516b4dfabb4dca07e4c7a6ab8e9e9bc7b46cec012d7ea89b1e7539b352d9d0033ae7e48a5bb1d15d72d9c803e2652534e98ed2ec7578409ac9664e8dbafc5d7740aad49c37b868bf2b653ba05f9d6bcf2c5b0784e8e95c7dba2ddc63b34107647d7996e5a032c87c3b07d4cb5fdb92702944b38c1cd05a92a5b52b6de2b334e380ecce2b9ec67638a02529b396e3cb2ef30de854759eaf0575d7ad73035aa35cb9ef4adf06c4cbce2eabba8c4aa3870de8175d5eef0fb25b2a5e037a7596f5699bee63ead85003d2654cc66b71a56693d94803c255c9f1ce4ab36bae6da001291b362ad3a8b2ae25cf8050dd5a9516f3edd2d20c481db3ea19c734b82c995906f4cebea969bffdf83f730d6497ec589fb42603c2cbc36739b398cc3120c64d8b3dbb392ac32906a49f9a3ee57a4d9d92c90c035a8b0fb39ecf85041b604046b1cdb2fa559dd365d9f802ea5f8c592d6ac9a4ccb50d2fa0b376e1f3c32b116d7401bdb2f3e78ad755def756c1061710bfb57134f3c7bc5c2bd8d8024a4abd2eaa1dfded571b5a4069c699b695518a75251b5940ea76e19f25dbf3cf8c136c6001e539c7175c5c4f4fdf36ae8016b59812d33aad8052b29fe356fe2aa0eb5f683e2da8de6b6f830a087be955ffd6497731b525c7c3c6143a552ea20d29a0e567a56d9d0ea3a2411b51408f7bce3eb13a6f44b4010574776733e5edf2267d3594890972d87802baa3da181d369c801667f64fdbb65ec34bda680232dbdb7bfceb5913ab0d2620d565d3679bd3c612902ffafea2f2e7758eda5002f23c6df5a56a49024a9d660ff7b37bb53a12d0624da5fe7d59462d6fe30808d997a53f95a76d432b064ae7d6651bce63f46fa5f030395925e788817c9765bb0e0d318781965a6e5a32db36c240984ad74e6e2e1f3423033346828158ad4a9ce997a9334a0103d92545be736fed578ce31c0f131e252839cc99fd0299c5a86547bd746b19e30c467c81d4fb5a4c97efb4ae32477a81d2fb2557b7bb4b261e8ef0c2eeecff2ed0d2645dd692a32e50ab45ddef2d917b17cf05caa3d6182735a9fa1cc5716e6530820bb4abf9ef96659692ed8fdc02b9bbf2cb05cdd37bd316e8973ab34a2d69f52734b540c99decf0ba7af58697344cc6202149c3e4e4648416a817578b9942b59efd9659a0fba5d5ad49cbb296d52f0bb4fe8fab84cb2c75e934120bf4dde79cb4493b99c5e0082c502f371f75a38c71e133f20a47b6b5f3472f5d81fc98857b93e15dfe8f49465a818ef9b596534fcba4b4560823ac406af933cbb676f97db755a0740eae7fdb1e464ba70ad476ba54d5c94eeca85281ba5732ce366e74560915a897c57f7157d6e7ddf42990bae9a5550d1bd5be9629d01973bc18f7351c8c94025db2e4d59f6ee76c2205e2f4eeea9794314fb2915120378ba5e161fef57d140552e58ea6f012a249df9150a065e1c15b103b296fa5658c80029d31beb67369fc09b4b82f5df8e6562fa6968e2f393129e9e13bee4a30e209f48d8d7f6e9764ce5ea1f876ca8e35d209e49b14f7a8768f7002a9e50b72633acb1b73a294a4a098e028593c68641348f37c5a3227a9ce6ed6043257d7251734ed6f4e473281d44998b9adb447308196e3ced55cecd9d8d92590528a93fa499b2c8176b5d5e89aca4aa05f8eeb5a7c25340bdb1aa1045ac72badbb25cf24505a520b2ec6bf9240ebc7f8b2d33ca78b7f24d072c73eed63f7bcfe20817acd589f75ba6062ff9147a085ea7a59cb52c6116839ea2d219e9478a411a82de1c2b6beed6eea19812e5f4f2b54a75b8fd91a616411a84f9af3ed8b9cca091d45a537441851046ade93fa8d61b5fca4339208f4aace6ab351a8a89b2388409fd6c95f5e7b789e8784240a238740cbb9c4bb9215cdbec133460c81164c36eab1f1a464d06c0d2385408b2da979fa55526a99b6618410695966d6ba8d492b8c0c022d465d7a63d4eaf65f7bca302208c47bb6694cdd2f8e66212161c24820d06ee267c3e4e56c368d310208d4cbd8e2b87c196f637f40a90b2fedb3d8dec96e3fa04c8b4f9754b60c6a5a2e3d0a19237d4049f9b1fd5ed21a7506834f41791e255a18e183c96529ff73343ab207649c1d0f9ba496e2753b4e4c50b0e3c4648de80129fe2ddebcd47963ed913c20b32895b88eee377fb294113ca034cbb76fa65dd2b79e1446ee80d2ad633a2d37ca2ce7a5b80c484870a4a48cd801d992c9d997b743c27540fc9d7e318eaf4e9dbe931494a60352679fd7e2dcbee89a1a99c38d11394c60240e70e0c0c81b3430e206846c4caae146367e35d206352830c2864f3c4c2230b286098ca8012d06933ada69df9c96bdc78da401458d37a302236840f91c397a94a0022367302366b8315206909135909ac374cab7ffb8bb92610c0f1811434965240c1a1801038f7ca101235e2891c0481750505e470446b88038d339657e9999b6cfc816d0f2638f66dd98a6be1486112da053a650cd518b2e4fab47b2103282852b20b37bd417dce5c6eee90a2356a88c5421c5c4e46401235450e3cdc0c0c81476440a298f12859111288c8c3c01078ae3b0c088132e30d2841126406064094a1849c2081250768c1cc16439a0520c94141e8fc613c303956120366919b365a5ff5aee4b78ac921d289e46c9a7f8490a4aa6092ac288402518c0c840e51718a8f8c2535c95f030c9d14303955e20336759cb397cdbafec547881e214a8ec4202155da09c98a4a098a88001955c54a0820b94fdfd9dfecb9c3699e2af8c9fa0f493cfaedc02a93673eca8ec7447a5f43c722c7bb628e940a51628b440c992fa5eeab328d5bc59a095c798e5df13dfa465a2509105052ab17840051648f55837b631e2aa3e222aaf288140c515280ea8b4026ddaedae3dd3a5175d0d12920a2b5027567a382dce4bfbf238ce9d7c1eab71c227a8ac022dd635ec26f9e038b73da8048d6fa844d2452251200e87a2308862000423a70705631200001014120cc602f2704428d5d5f5011400054c3428524832242e20180b4b23a1401c108602a140208682208a622006c260a864155d006e55ade4417e41d101be68cb08ed4e2a341febc9f2540a5888956cad5172244b23f468f5708fdc5fa11e7529d04673bb0a074d5be6a5e3bbcffb8361ac6d394b5bdb6b1284c684d8f427d6f1bf910f10e88d779c5ef3232d1347503075eda15cff437c3d23a3fb44479675a9b74910537d0929a7a2481033403a1c541068751eaafe2778e8e2ecc855a472f192358ba5b310523d4143415a59133331e160b8daee59e429a994b71cc2d278f542a4c6ba1ac584bbc87111794c59e172ab57f459ab08d0ed0246a27b32d19b28326d4cf731d604d1fe0d0cb5295b531bc08171da508d9ba85f4640551373041a451d60a54f1b47a68732a8aef3a3a5e8a02d01cb0ffa5982944c7b11530e74ae79a0354aac968739047b1b52c2dc9067abd72f98ca5b7d236ce2623ddaa53a2c41b1a981d636b467a0b0abaa5f6a5ed333d5be05d758e3f0a31bfef598cd60ef2387500c5e1ba4938469d5072afe2433e0f84d1b5036d2f07e44c83e1ae762d62202f6a66f95f2c8c9463a2d626dbc822556f4f921cdbceb3d5a493cfaa3241f28ba884d60a110b0e4ce8c6ae2bfda3cdf4d7ca4d320983906c24b23e00a152c1e489605a3af0211b46662b2157b664fd1480bd9e58e3f00c58ee3aa50b05a4e8ba0f1a046b6b6e3ebba0cf4369077f95ec543267722ec3a32317cefeb4e2eb3d1252f4ab409b4dfa82b6ee1a734e4a2c70de43b8a6693d0eb8ace020aab36620aaecf452123547ca1cc13b4869bd4e6922c6aa65ff429f3c8df9e46ba18270a5cca75d3e60a8cbf9dfd86dc732351582248950de6cfd9b10149990835c33565c85c6310aadcf14cd3b52b919d0285554265c41af75d42586dde5e347f17dfb991e7106c626ed2ced717354800808a37c3a07130e22284013d7cd17a81f569b309532099e566b064fa706fde43cd646f068b2e9b643f123131e018b19f0587e68f88ff240a9a02ce63d0a835a26d02701d56e5547693d56ed25735e9d26572d40b3064ff2b7e2b2fd87112ebd7d57ca301598586e8e93c6dd76a8a8708190d60f393c770c4995e7c4bf96491b9e59ecb44e992d2d606cb87b9aca956c8937627c4bae36267be44b25f3c4d5985496db89231d2b8db92ea7dd06bba7a46b846336c4ad4187622b712a40b496e8843052cab6ab0b10dd206cb8484f4eb02bf20614c58a449994417a9547ce00099c9d2a64ef80ae6a07e26c154c715a7ff80996b206eb416bcbd01f542bb4cf6a1ba68a0535772bed7ec8bd34f3bdd9036645ea33490e8ed704f7ee52de9d5b6483605de86424a8c9b95f9c3b90ec317a437a9b32b12a4e8d88092b68f7b32db2fb3f9dbd77c5be3524c89efb2bbcc949ea19de8b5d5442c6f0fbffaedd5fd06dec5f5a91b1bc2a1456b1ad5a6d1b44c34f286999af3d9c23f8d68d4b55114b8f99af5f3169ea0b98c8642dd19e9bb528370b3f5100098f632ecfd64eaaae56296581a8c7a14bccddffb0aff519a197f3d224a116fcdbfdc5ec96f66b4b2fe985cca65e1742e380329ec95e966fc6604b4ec1b0ed3d66680fb55ac927022c572edd8fdb1b8d56801b0a3ad7d036c68d2eda2e3c6f06b0ab02a773dca9d0c3d03ece7f5749ba0e276ffeb69036ce1e3901fad9892ba73f870186cc30013e63b480dc9626515bf8313835777ed8434ecedf4ac0ce90fa00f439671897ea6f56c6d8efcdefb08607b03143c49c2f13bf5811723ecc8567eea54ad3c6c503db8c98fe11cfd810b4f64b43fe8e4f0c74cd4813095e17d8527b0ca505ddc9943dc1ac15e3bf8024011b6aa35c0cc3f4194b17773e741221e3c0b500899dd6febc15a94abc368d52ae15fbbd5b700b42713108ffeb9f1d22a1177f5de4acfbdd5eb98e9935bf1a3cbad614b4069798f86d8735f3ef7a1ed1cf73f9b7b846d645036ef929c2e46e01d99cbcd47e3ca3ec9cb589bb13984fdf9a1b409d4fada0c09927bcff4f2316bd3b060f35d432ade666e7881dc64b12677f35475f545b9ed3038cbf6b397cd422b04fabfe3393e56901d21108a8f9ba5edeb50d102f27515f3a3779b0537244f6b79f28d61768b3e67ede01d5c262f5e4bad414682bb0af7d0162f9bb7e9a2da0362f2e8e091825fe9da3fc8459048b21e7e92ecd33da4007b5c7ca08ff6aa08fbdcb4a4db5b5c54ac55d8fb7524716019d85c5b20a48098bd0c497f9a2538815e70926cc2d032220b8a9c1c952033c8b3008192a830e31d668434348e6f62974fd27cbc598ac8eb250cf4c152f89d709b086bc5eda68202769a544218f1ceb3d4dbf8aa31d4d851ef3cd8693f378d7ff9ae7823528a54416d5b58f0b871c802989c5ed407cab85aab17402875c116149c059442de321af6e8841ccc9f1aab46f86f368571130aa587c8af69bb7de7fd1ea682794309e32adf0be330e1cc5c617d1fe12434adb8ec68a98ab7bfe19fa57ff18bb5918e694ba0bf3d8a5cba0d82cefd96452526bf3a94bbb7f50db1939ccbdb0581b01a4d613e8a7d08519dcf5a890e71d58e99058c9e674b9310c0262d70825f582bb4ed40aa082c9d07f925cf9f5da122bf7d672e75e28b4e08b9053784f0b2f3cbeac0e020fe91161a73df72a4960cb7e70bf51ec10a6dd06c27656da5ed8d9c68fc7c82c85a2f1fcf128d769d313727158a5a933fd602bf5c850a4d13430be7f7254a39c37304f12224a29e968bcfea9c2b833e27579390652c5a1c1a2e4242bdf13be4982da430ed61667a239b2b60198b6fd3960e1543e4f7ed3c28e5fc1eb4bd25f56157748610a19cb04d44d236bfce13524d2056a235649b045176a187d892ec1497428cb0854141bc160c435485a45ebd19c719a26c41ad0b4144497b4848f5830b366c0e544d70e205b62809a986ac3cf7a431e1c02214e1b8859a02bdec90283a21a34266772f2c236aa8b054f64bbdae8812da0b3662d42c7e30c0912e49d1b0dd256f5be588bc2f9d8bcf1b34cccca159aae08c86e6d3908a7d25164d5afe809109a8357d056a61ad7cce4ec8c431d792326de5314aae16b1a8af298ec6a806c79a42344b7f3c59142404e40d5898ce3191bfc5dfaa49e59830158ef8442f6d1f45d43beeb4c61d259f3f1784fdb0920cd22407a1984253d0447c957e9097c28d9420a38f4bcf569cfb163ba8e47f190faefc6ffbc5a1b7b3e9018660e56b4fbc447a5e57b256c36a442c0f0fee12e14db4fabc63314194632729d32a5ad8aca32215c8ed48e7706d67cfcb93963328aa0c41b43efc7c431e4800177baaf540ced6e53ac9c309ad9a4925787b05ff37877f06704e78cca3c528f51b76a385fc03a50b53ef2dea6e4d23e1dbcbe90fc83247d34d79bbd70c2dd9a1e001c20e824514efee58286092fa682121854e9202e0df753434a748e8d75a7eca32fe7f47f093bb302bf6b74f55c94f3033d95fc25d2a5807c94e804b1d099a0f4209a0ba0250a09e6289ff1823cc64027cd959fc1aa764eeecea58f7388e78c7056938a45384c7b8481dc3f7946e98c5e2fa6cc98252e63343f324cb487b2ed495d912092a8e34aa8e2d5dc46b4902dd0999bde8e699089b0915f54327c89a2b054c5ca144f5edc58ac7b82152904390167bc06bbe6b5d5579d71975013545f00d11d29f219e7d70ebcc568904185f4a8f9c60b3fdbc846ad37ca549d4af0a42584ee9e0c159a95fde76026667d5db5ac4439a7eec677f7c94c5898e3b98bb4ff45d8c6b6e8a837af41511f49b8bca8b58d483e202ea537dd126f532fa17508121c255824e7d3103570b0b6e1b5b905ecbff12eb3a69ef3508791704e2d9ed5771d7498120028854f48b085780b765a9635bc02cc7c857048e8203ee3beeb24682e6cade59f1a516a8834f18726b8728b7ea94c641491e8ce4fd6ca27327d391daf537d39ab594402993fb3f48a215d62cab67aa00ae0f37da9f14891c85186ce0af2c43dc9c64d6efb298e1ffc309e668f610273905f6b2b4c6c66e5deb23121f266f3a041a5501cd87129113fdf26053cc003429bc13689f7c3ea49d55502b3cb60067b5f64691443f466ca2260a70795096bdc39363e91a70cad32ce14bbf8442069684f78c88ad3cea20c2019936e21f101bfc0060422351dc5b6cc8a98564b56e8e5c06281e0b12d4b074b981e422e4c42fa459f45555b297e70a199413d2f3850d4106710e8fb00757f13b924ada4a1b53b4ca8dd61952523bf9122c998007e2816bcf55f43073f94e9628f81c106047f72cf60008f3b6079b4330aa2a026ce2c6f90051769b426bde644d60d09b9dc3875c3bd2a7c1392ce6d94b97fb07238c19a4240964d84421d2b3e83a1996811d26c7e948722a4dc31861fe5111d6fa02c73d82f89f2c25bb5dc01b27708b5209e998b40f316bb6dc7a7f47f206b526ac3bd24ebedcf6b1132febdecb1102015df8ce0451483dae9e121522b5b4de55b5f17f3f32a70a842a7daf3e1c08b79e344f0749e6529ec67bbd96cca0f6124da5dce7c048703ea524ee8de595ad0926eb549f31316a075078591f8b2131785cbd85067d80d268b653a125d39448dac3650b1fe1b3fd15ba87bbebab1298ac1adeec17ffe7ce738b7d931d4f733b4a7dbc8151cf3da6a9fd52e0480969b8a1078237c4cfe46ab665759d5c5e3898a53a091b9be33d07a12c2f557f213d497f35bf25cc3fe787b6ed511333358ece0a6d1dba56b4f3691787a6833c51b28cb2ab807a736d475572eb776752424142afba480c94b381c0b3af3feb8eeb2048f83eea59844686390ef221c6a5fd7bbb2641063b801f3b462ad52f1eb9afdc08b2616c642859f53c9927edf25aa82beca5951439f29553758bd962d20466277851f7b44961148b7caf2c95479f965ce2abeff019272471222ef5d9d7a67c36e1bcbaa519e33b498c0ac3bac3015aeb63830dd489ae9d243a680bbf8043988f591b82be0ebaede1588115ffa917bf3f082ae04b6742fb9ab03de06406701f9083e20e7e86fc3d090f704035dbe3d04ce3374cffb9d13f97f9de563bb4571c435e34b5ced9fd60469f5a0ac53b3d0e3e4bc6f30657ca2c005c3d95ac15df3394ae28f310035fda92ab0be1cfe640665ad6b735a90da7e3c9f9508310cf34dc00d8231e70c230574bf2ed6a961e7ffe275380d555bfdbe76d765a3f9cd35a1dbb3f86fbc0aec8efe71b675feb0fd4a1cdc22f9d138f18fc9b1de9338d45cad54cf58b14c84a0b5be281e017afba8152cafc3ae0be8bb46a248d74cc7ca37082a1ad302d81d61240c5ba77c0903e36a0f2b4f736890f81febe841a7c78999fa2c03f343ac5badb4997181ed8e283c29e9335c8d9851d24741ddbc2e82716ec43a9dde99c0c238804fac81a0d91cf522312beeba078053f2e577627c18ce73b2a0164837729b02c11267399b203c96e54276289e28a912362c255419fe391e9fc65b2701c95538de10b1a6655e53400aa3329694da04fc561dae535493f016a8b4e64fe89320750b057757dd30cdb332a815fee349398f9bf0f20bd9c8750df367eadd2de628ac02f1a4635ffec925232a8dbc1454a850ad183c60a301af9ebbdc99f884f6a7d160bc43841577b9996821ab078327f81edede65aa37387f0032a0782a8bfbd30802feceaea32d703d8992a802a8707301d234a346fecf76601ef066f6f40714e4c9c9576da9047ca8344015eea17268240589b86e55269a5b87e7fcf2fa87064b0dac44551e789adee01aef7709d43e7a99459e4e8017c00ed086e5c8e897843e006c89232ec132c28bd42ee5e90c280e317a7e67a7bf9f88e5cd650038389f978d468542f52a213c86f74c279eb107364786e268ed9438a6e99f82ed44f5e955a73e50260fa5ae91f3cb746071aeaac06e714909164a6f7dccbb96d080568a37358f85ce24f6f1e94c8c5e92f30458899c6d5e4f093133af566b7677624434c74a2722b39f018a3aa9610595d72e2fbeec95ccc80b9d8729a4d459dcebab514041b0c234415b4e155b7e8c7da200234216e04d1da8ff6def00ab93205bfd1579ba88194bb387844b7349bd5adaaa4845d1b2ff7e548ba85158c18fb23c052e97c6fc2607d45aaca7da05f16b99063086708dbb66559644851479bba0c131ad2ae8c69f8f0369de1ef57141b0912eefc82d938f08a743e992baad0b1443174dca1346e0b2310405d17913bc898658b564ecb33b62f29919be24852f5d5b38ac95a617188528ca285399936af97957a6673e80cb3324191e0c8b28323da7678dd3965f66ed250904799eea3c6e9e351151dad907ed025004fdb2832a689e008e65b5878b6c11b02848fa49f1b46d39f0eacaf71d439a9d42646e3b4388dbb3ed0c18e7619ff305eb5186d3c37f4920069ccb8c979e641a09553f9f685de6539b56594c4178f32b8696d2b4a2e447db8131024f84b640a39f1051ea5a4eda5af495338b3ff2b040374725b6395f9631397d8e29575146d07940ab89a3a1cef42617d023841f83a60169e03225d96fb62f9b24ca1a4ddf3f452e7e6ea2b94070e851b5e1310979c43d50a5c569f8fc46a9a9adc580c05ea6e3b59da984121603f3e4d14378079301f04923f8126ed8df961e70e20664812ee6329699ef9f8b7ae42140688c75500214d889e0422d2340627bf3e0b7626ae0295f24613b5e0442162f5e79b9ebf8694bf16b46a8e7603405254bf06af40557e98f82ec13fddc62a704405b075edf9eaa8c44c08268f375698d01ed5b65b5533001555638ece725d4b0e0c20fd0336e7332d3a50755663cf0b99e66748aa740d580d52a5a72d5e8462b903ea70a0f7f76a437dbc016eb0dc7d9fa4a2d538a1da8b501be19417eec6734fc34f4d0f1fe8d0b53597dcb55ea494dc1401000154cf1c90e9735db8a61d79604713c6039574c53cc27963f8850664778822eab40128e575c7fe22d41439e69ba36c1888bc545dd815a230cfa0d40b84d05bfc67aa861a41c2eaf59b8488c1a69e5c1ec23143010684d55493fe0503cd0db2cc79e7cb299006f5bc0069deccd3a92aec98457e589b91680004ef5e06d0dfa42fec72c1a4ec3a7a48e9ecb129939d2b49a77d1796368ba21fe021065b769fc9978fa793efda463843a4bda1c2e8a1e9382e13b0d36b3f7d56496e9e4c89157262f7fc389f39e21a5de7d9f7021e103c3471afd4e17bd11bc30cdb60c80e97725c40d5635c0a4aa2ebfe53f2394be180cef29ad8b559759682d861ff5c41c0e7954913d889fe805337ca8676842c56c85fea794651ed532535e83935f0f75ff1271c52793788e86159a2e07c74fef4c40f350ee1cf8f942cb05f507a8e7767f8ffc44919c5f8f9ee1168441f4051c63093245f88a8fd563129a79a5dc7fa06fcb77b85061a355000cbe5c351a4cce9e34f3c2fd5ccea79e84e0fbb1161e6f4d8c8a1141514720f7c54c93dabc799816ffa079598515f91f5045f632c1c21da710ffc0098e00da53293242baeebe609a11c0e3abce1f82a4b3904d4bfce6ed43a5f3e173cf3afadeccc6ced295c201dc3c7bab45229a59469e7023703509c518558bcc8924ae6a9fcb2af2c4bd9e4e44e744b2f60a11ea5379f760dae7ac94887f36c8a19f1ed733c1db298633c03d26b2ff2b93b14111723a469ef82c9772ac8610d0a51a3497cf8593622534b906ae4120b9fd800434a3a30af418df01f31e6f3a3c366bf0a94f86ff5cc7191d9144d9f9fef52a2407171391bbcabd04260d3f8b7105bb6074704308559ef8aad2f39ebb4266b9ee1531812f246dbc312a2e52534386bd1ecb89b08c391ed7eab44c2d65d719f175d6ca1428295fa0d3476883872170450b99f9a35ba87c4693cdf47824611528de5466b7587f5437c63e886afba563cb41e08adcb09ea230adeb848838c8175602a48045b42d7df0f9cb652ced3e6d85d647a33c7842ee6bdc43a26080886f35f59c3c306cc221389490df00c82a01d059de097176f840c668cb74626e7b71bdeecb813eb5416db0b5c938642930f0b38e581b28d41741c1a60d68e945544415019b910984036bfcd014d346cac476f06819ce10cb48f879d728c19af7b68b939f0659576988c52982d9d2e8ab4a473e8bffc5b2883a5cf869da28c4623b973eb421372596fdafc010aef9dc84212b2289c11bf7fb6224175e6a96211ed56c6905427f00ef51e180f9b17f2222a22c2c07b8787c39b1b2b6812f423176fec51ed633d19e56bf34b45e1b1f2ef5b7ad2d4000f92d2e8d1473a3bc0a1c074363d5856db0c4aa4dfdb5e637ac12f48a03eca919dab25965028d77ad2cd01f511854802cf1c0f21d2bb081cff7f8e756a81cd20aa596e4335ba990aafdfff3eb1696b354a9b752904ec4aafb5c3587974cd501faef8e2a5195a76b59cc6b00cddb095c8d6d72d1b06dc8b601961e7a6d66575e885a03b0082da11caf578a3637bf4d61e10afc7b4e4b1b5375962efaa475311f266da9bacb177d1a3a90c7113ec4dc698bbefc1d487b8f976267fccddf7602af320a0cd833c3b0f62ff3c68197a9078f4205fd2836a480b4804a6415a5b78454faaed021ab21d82b9f0f8c6920ecc0e7a4e389bb9ce74344f0176c6ba50e926ccf5131de2e21f66bb0d1aa58d998d48d35e357b3a856e14f20c24082d51a5065a8534bd422101df82b854252972721d16d01315d68196a16394d5ad9843081d84e8744700482896a719776b99ea4afd89313896cfeffe34efe7d2e307969083a93b61c56c9cd139d34274a1a9b28cfca5c6e37dff6e013509b7d570d4d5e06aed440f938b7c83c349cc1b100374fc91542ba44f10fba9530eb0e701c70e30c51420316a534259cb6a87a19249b5a590682d7e502639e36f58a75133da6cd53f210b71f4807c19ca50c6c02aea103ab516929db7f0c3c262089bd471e4ef5cc18286977adea0766d569b7e81f959aed86d27c4825722cf98e255c14accf73f601ab7a4a6f0f3fe14ff26db90ae64ce8019484208eed4b58c767fc3eabca251bb1220e887efced8fb456968450370a55c94c20ebe0fc0f714ff68cbf849ef6d139804d1b4bedf655eff4e2abda5881e71388b4035ec7805c6f911cb476923ade0aa5c4e4dd8dc850aa046893f97e199e48b5e6840df9a746321f2889b2b8611608cfe923e3007f9dbf30aa1f9ffb991460e59504026350c6448cdccc4041a9ad3e4f5f25084fd278e8609ea437b43ccc1b37c665efe2092f34c0248727d6d2344a0a9d4357253092c0df339a3b157991384d88179070345a9e0d3ae0a939314274426e5350ba1adbe2709513029bab6b312749c6072a2a7602612975522a57d77db684b4c8d8ec9f1002558bcad6b653044d2979d498f40e014e1de1fccae17da24c58d17ce001c23d939df10e21ee06b0cba50e6a6e6ab2d878f8f54ba932875469b64ea50482a318668904969ef7ac3c9d8fa8dd881109af81cd50d45fbd0cfbe23be082991fad8b3148df92dd1f13274fd688610c62f6938dce7333a0f842cc901f30c2754a9e3913e8cf1a1d42f8303f1b9f734a0fad070a057d84adb6bdce777d065c4e070550b7b2af62fe75a318ae809ab2daa2a5832f51747deab914b702a6dc61f98f7805b99f58a02156d4a6f3b0338ea898c51dbae7edd2649b6e91d3ab6110af7febce7a0762092032bcc2ddb3e0a45cddfef60ccef1786ddec06701fa87be5fd24f8dbd9459a16033ab25f8b83ba8277378ef7ade7a05c9898ed4cbd98e0476d10da5746d19c63cd608807be4e160f7e361c71ede77735d06052f1bec6a67908eda259a6bee06b995e07cc080a8baa0339661d81431fbf7d6db24320f1bcf0154175d7918ecf2766cdb8bdb3a24d3cdf47ccc7cdd26926eac954c96cd333d92fa457628f4d5f831b71d0f0e976362e44b3f05a537643ee022858384a38b26a0f094da6a7dff3f0d7c095f7370823be58e7d98f3c555121037476f06dfb953a4e6ec52ffae1b98d2c905e2828b0a03f1138c9070e5f82e628b2489e5c11c07a383c3865a65014af67883754974120e9da67ffcd6b41014c00465e03c022c269e6e136643f4add6e74f4b3d9e2a9eed720beed544c39275ce600127d212e934afe80e61edd98a5b5566195863a818072d732ce4ef4df4b67857770af606a0a3de84efd48add9e7f9587360566d15a94d6ea3a4c34a557f9b66bcf2423e246b84aea72decf2557a09c5548a35ec4d98aaa436ebb59758911dcf04c4fcf4e3db0dfea89b22a9889d2fab5050b4d7d323097c248a13041491a466fb06e4ff2ce49b699309e08c4865ad18c068bc214a856a5506c52867fb0180d024480a381167909df685a7297e97424c127f896252549bfad90a8b9e1a16128957518a587df4d3b1c49bc41a64cbc85450b901234cb688e45f4cfd0af792021ba7f2017567a55d5c562ef9822e951c1759b7d1747c44f960f0fe00c97ca69f00bf50def2053f678ffd08be685e5cb9ac202448e350cab4c820c1f3e42b783f20c595ba7c97c82b03ac17811e26854d509e8854a9b0e51eca83bfad19d9d8c9838a39b01765891248a2f333791f50dd2bcaaf8ce23c290413e835c76447702f40d7f404037abc4d05559437848f616b0857fba81022c4653042f03936f70645ade805034dba2de7bf787981609a44340420f94c36d1eabe2609aa21f9a8362392998d65184e542301201f3acce932b09a878fa0d578ac918ee91cfe81aff66c87d89c3f21abf94703feb3d463c983a03a4da8af2ae27a2442acfb0bb7971f12f76e60abbb34c295e702551dbc7d2c66146919b4a344046301d30c2d1a550ae39145a3e75738ef93aa181c25b3016b69ab74095f3b540238471b50168b31b5a6b3c8d7d47745c3d83d54c8ba834b44150995ccd20e431693da14ed02ee9444769f45b11ce5a03cb3f2123a1667888c79482e849ea13d4759d626cab3cac88b468a04412dc907060016e45875640ceab77b81c8be1f8684afe9e76ce1fe79e3a64776d815090e64853243ed37ded7bff75279429c99fd1b4ac3579c95eaba757f908d274f7761d89dad1af789dbb0310dc2cc5410472fab8e9dca6955b37193e4cc39fbdec5b2a406e081215f32be64ac9d37d043304fd462d6d6e0f49b941530546be4982443cdf3df24c17cd6e2a03b7e38d895425e492aa9f6b8a3a4de5786bc9ba5bb9e3166f9ec42f2abfe1a3342581d8df21d1ea6e471b357b64e83cc93d91952f1fa3e41131cc4b37e21e8ff077454ebcf21ac4a81cbbb87914bb6e54cece7c4ee5cd9f06600f8906fb6319fba37a12911f1a216c37a85483d16e2f5eb1c6373bb96488dce44b8288999cf613e808aa0eb82091f1658ee19e52e233ce7bf72cdc00d86c06a867f8ac9ccff205c18a96644b6e7b87d409cba2e8b4596429e0ef3fe73e79540edc21b7d9db61bba9202d7d161940e15b1a132eae93b381665e8fb14dc656f9a0d12ccca7a78d310703266d9aefcdcd3f7a19bb56ab28f2f35946c005cac084bde42984cf03f17792fb160aec09b8be8083e7840d1b23849d15ec444d551bcfbd117ee6d788e69cc3d973e5a23fc1c403702ddd17fef4795b462be31d8373e4ac932982d171bd3b85d03e2d46a49ca8ca3fb016510139d0269cf5d302d65cd2712a5b01338338f9abaaefaaf472d2682fec6e1e440b4449e0c379d9b90b62738e22130bea202781e721c8f47ac59311942dbc4b907b87434d486a25e54b224bd1c2e798f5b628e6df219fdaa4fb32b41cc6e3c606bef40928f164e7c0999c9a8dcd07f04fe59fbd31823e48b9746b17dbaabdfc146b30cb0cdcb780133daa59e8d7445823235efa4d852391c36acc215edb9b9815a38af7b8bd921fe0896d6e049dd3d5ded15dca3ac45fda4a8aca83f4ec5bca5c5290840e79c2f599e366d65fd847bf7829fd56631a1b3adcc01ca2fad2f8d2da36c7aaf48bed2e49fa1fda2af308ac12d10191ceea57449fe3a309f5d60bbfe4fdd39a24ad8dd520e0631a56d40884d975ebe7faf0441b683c1a02db00a35317caac65c1e8c992199bffdfc510649a77299d76d2ae720a30c82c1091100cb40684ebc4c517e6b9047bbec196915ac0d8568a0172674b69f789cc33b09124b39d7c34e85240d3a015c4d9aadf73085a771c694a793c200bea7992eed0990de605facca0d92bb7d017a6c195ed17ca72c00ca7156d3a982f95d54db1592caf107d90eae495e6d8fb8c33ae8ecef2162a205d02700036f2ba5b1b877af31517c9d36d416e093ff6e14c7229221ace41426e5ff88cc1d2c51acce27460f1c0338479f9acf1031c8685b8cbae606a2acc42b9b73a8838c32b838e8b442f9248b834336a502f9e400faa2f404165bcc091a4b4d390e15f16520b436bb8337aa57c397a50f0e8f51072732ac788d8f4495ca7c7233ec4479798bd440a0742206a610817938972d4208c943e1ea5dcce11d037651b8ead50af5780ace0c548500734e5ce407ce8fb150762391cfe245020cd373bfc30e67cc7dcd37bd7e87f6f646e26b9e4eafcf8f62cc2eacf852bb04b115c86eb86f0f66603a41a98f5edd434e1383cdf78cc5cff7fc50239a048529df331bf78f61fce2c44fffc08b58d4b2d5051f6e9e1a1194ee655e011938880b5538706f3b3785d194021b4a9fe447f86d65ca87aff1b8d5f7c934c39e7d708184da438a5f0170904344aeac51d860d2c7cb969fa98fd6a2ffccb15a26ebac5ae90d09f14e7e84dab12fa065916e318ceedd7e10b0dadd2052ba3296c8073e6627e25f01484b026f0e5c9c4d100c1b0c02193a6b224617bf37614ae319aebe0f74972a13767137c0e59fe112d854825bb1a94934c17c3d909f76fec40cb818876d98fd484fd5f6fa9ed1b689a7f8ea45d1f8a0891ef62330c1774d2c7c8f5e842af7c29b387eff1a8d01d53a22f00e42e1386a98179813d7be0ebff3220a0dc233f13f5678c5ce4b08241627d6db428f48e0718ce86dac5e04388ee3aa93e1be9c9e80c8cbbfa565d89cff6a7d28bffc48b83e03679395703685bdeaf1442f2b6e78f138d3182055ae7b4de2c597bf6ae0b65a529ca88a05f71952d5978f796baf42f5f21b60ee39bb5d6cb08e994252da400f9906a31491a545e1de65ee83f2a9c2955a17558564f28842fc8e6dd77009a088ec844cdb7ae5c421285bd1b9f7d75cdb36fa8f9b90ffcb50b61ee03553e6953722e09bac856957b63c83f4836a443ff017cb5e8957edb02c2ae8018c9a2f116990bb1b761f6352d64223439f65200cfd29b1f038b04d378654371c219e8001f7f5728c9734870c7a9c0e1c23c14c4c3ecf178c01426ea4a75e2714545046a5a3d8d477c61295c014fce751f7cbc1898c01a38edde76f116499cd3cb6d36d1490a49473f5be223000bd3656eec498c39c65a56fc1afc74d7c22089c5a6111e532a63b6852d74d4cbca6e1cbc7cacd1700a62261ba64467666e053aa98b01d446aae2a1cd83182f528988032726a8ee7e22803a5a010e5ee31864cb4398c6b2ca45d76fcf543d18cab8fced7d423d809aef834da90eab4a21605dbdc611c10d8305cfc2eccd4beb6e45edbe1ac3bc9b22b8734cf1698386c68425c7ca58382010821e4fe8500da5d301b5fcaad406651fd3b59acc107962e4041419240e0a0b23fa9ed0ae53040596035764d941354ea4449ee89c12750d1518491c1802923fbeec8ab74fe9c8f61c2b7e6767cc4bbc04dbc12cb4b1acc5ddd8e4f882c1bdcf1d142908620e77c551ae62dc7fdf8018b369b604b0b85790e74a4313d7efdeb2c22b6c2faa8c1573f7145a17eb74cf32c0d2623027222bb0451a029d48a8191c8e5195d05d17a958993db5a72897c33c54cf2003010ff1996cc183a13fe8b047571f3c7558792e48c2d0519615be2baad92e25c61d028448f2d341ad995349c0d43791ba2cd39206bba97ceab96bc414a4ce69fa51418cf37d0d5014fe41d7f8a3d41924ede9430ff079cdef8c254fc9e82a8cd3362037fd046942cccd32c8511c32f00ccc206f2b5f5aa25418f908d49bd2419686ca63dee365a1e230a0bba1884057ac6b2e6982483bc6db5c5ed2e198343497cf3410f5ed1dd0eea0634a974bc9c2050f614ee0c74536269a080b5165aaba32e377f0bc8d658da2ac5d12f19056796ddf2b8df8c0516693c8e57483464015938ae24615bb2056eb207e70881ce177d4315073b056e59093f77596c998de751833306f76b4796914679b901a02054fcccf16d69b67e02", + "0x3a65787472696e7369635f696e646578": "0x00000000", + "0x3a6772616e6470615f617574686f726974696573": "0x0108b1b1fa07c6080500060542f5b98823ec51d3324b669b05ccfbcefc0cd10ca6c00100000000000000a7de8ff816bef7291277c92e8325409ac261e34899e215784c664f07433ca0b00100000000000000", + "0x3d9cad2baf702e20b136f4c8900cd8024e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x3db7a24cfdc9de785974746c14a99df94e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x3fba98689ebed1138735e0e7a5a790ab4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x3fba98689ebed1138735e0e7a5a790abee99a84ccbfb4b82e714617e5e06f6f7": "0xd0070000", + "0x426e15054d267946093858132eb537f14e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x42b50b77ef717947e7043bb52127d6654e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x4da2c41eaffa8e1a791c5d65beeefd1f028685274e698e781f7f2766cba0cc8300000000": "0x080000000001000000abc3f086f5ac20eaab792c75933b2e196307835a61a955be82aa63bc0ff9617a060000000810be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5bec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d7011676000000000000000000000000000000000000000100000000000000", + "0x4da2c41eaffa8e1a791c5d65beeefd1f4e5747352ae927817a9171156fb3da7f00000000": "0x00", + "0x4da2c41eaffa8e1a791c5d65beeefd1f4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x4da2c41eaffa8e1a791c5d65beeefd1f5762b52ec4f696c1235b20491a567f8500000000": "0x00", + "0x4da2c41eaffa8e1a791c5d65beeefd1fff4a51b74593c3708682038efe5323b5": "0x00000000", + "0x50e709b04947c0cd2f04727ef76e88f64e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x5c0d1176a568c1f92944340dbfed9e9c4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x5c0d1176a568c1f92944340dbfed9e9c530ebca703c85910e7164cb7d1c9e47b": "0x10be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5b", + "0x5f27b51b5ec208ee9cb25b55d8728243308ce9615de0775a82f8a94dc3d285a1": "0x01", + "0x5f27b51b5ec208ee9cb25b55d87282434e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x5f9cc45b7a00c5899361e1c6099678dc4e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0x5f9cc45b7a00c5899361e1c6099678dc8a2d09463effcc78a22d75b9cb87dffc": "0x0000000000000000", + "0x5f9cc45b7a00c5899361e1c6099678dcd47cb8f5328af743ddfb361e7180e7fcbb1bdbcacd6ac9340000000000000000": "0x00000000", + "0x63f78c98723ddc9073523ef3beefda0c4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x6786c4cec8d628b6598d7a70ace7acd44e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x6a0da05ca59913bc38a8630590f2627c2a351b6a99a5b21324516e668bb86a57": "0x00", + "0x6a0da05ca59913bc38a8630590f2627c4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x6ac983d82528bf1595ab26438ae5b2cf4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x6cf4040bbce30824850f1a4823d8c65f4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x7474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x89d139e01a5eb2256f222e5fc5dbe6b34e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x928fa8b8d92aa31f47ed74f188a43f704e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x94eadf0156a8ad5156507773d0471e4a16973e1142f5bd30d9464076794007db": "0x00", + "0x94eadf0156a8ad5156507773d0471e4a1e8de4295679f32032acb318db364135": "0x00", + "0x94eadf0156a8ad5156507773d0471e4a4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x94eadf0156a8ad5156507773d0471e4a64fb6e378f53d72f7859ad0e6b6d8810": "0x0000000000", + "0x94eadf0156a8ad5156507773d0471e4a9ce0310edffce7a01a96c2039f92dd10": "0x01000000", + "0x94eadf0156a8ad5156507773d0471e4ab8ebad86f546c7e0b135a4212aace339": "0x00", + "0x9c5d795d0297be56027a4b2464e333974e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x9c5d795d0297be56027a4b2464e33397f43d6436dec51f09c3b71287a8fc9d48": "0x00000000000000000000000000000000", + "0xa2ce73642c549ae79c14f0a671cf45f94e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xa37f719efab16103103a0c8c2c784ce14e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xa8c65209d47ee80f56b0011e8fd91f504e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xaebd463ed9925c488c112434d61debc04e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0xb341e3a63e58a188839b242d17f8c9f82586833f834350b4d435d5fd269ecc8b": "0x080000000001000000", + "0xb341e3a63e58a188839b242d17f8c9f84e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xb341e3a63e58a188839b242d17f8c9f87a50c904b368210021127f9238883a6e": "0x0810be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5bec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d7011676", + "0xb341e3a63e58a188839b242d17f8c9f8b5cab3380174032968897a4c3ce57c0a": "0x00000000", + "0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x55a0c450676dc11b0000000000000000", + "0xca32a41f4b3ed515863dc0a38697f84e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcd710b30bd2eab0352ddcc26417aa1944e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcd710b30bd2eab0352ddcc26417aa1949f4993f016e2d2f8e5f43be7bb259486": "0x00", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb30e5be00fbc2e15b5fe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0xa7de8ff816bef7291277c92e8325409ac261e34899e215784c664f07433ca0b0ec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d7011676ec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d7011676ec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d7011676ec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d7011676ec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d701167603fffbbb09252cd3d1d4b030d2b84274ab74d00a217fb32f6f3e744cbcccc83907", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3e535263148daaf49be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0xb1b1fa07c6080500060542f5b98823ec51d3324b669b05ccfbcefc0cd10ca6c010be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5b10be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5b10be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5b10be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5b10be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5b039f9dcc57e225624a0c5fa919ea8698825d3648dd560407a0c437f2151584204f", + "0xcec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195019c7419934bd97a36261626580ec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d7011676": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950301381ea19cbf2746265656684039f9dcc57e225624a0c5fa919ea8698825d3648dd560407a0c437f2151584204f": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950412b19cc502198fa626565668403fffbbb09252cd3d1d4b030d2b84274ab74d00a217fb32f6f3e744cbcccc83907": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19505b7fd85fe92de5527061726180ec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d7011676": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19505f63489d830d022b6772616e80b1b1fa07c6080500060542f5b98823ec51d3324b669b05ccfbcefc0cd10ca6c0": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195066f453bea3d4bd33706172618010be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5b": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19506a5c8d07a76e385c6173676e8010be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5b": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195087f5826b81acaf036173676e80ec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d7011676": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19508e6f5ea65affdfd4626162658010be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5b": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19509363b15182ec14506175646980ec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d7011676": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950c3785063d7c44baa6772616e80a7de8ff816bef7291277c92e8325409ac261e34899e215784c664f07433ca0b0": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950e09bcb55301bcb7a696d6f6e8010be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5b": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950e330a611ea347d0a696d6f6e80ec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d7011676": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950e59d0e9fc27e98fa617564698010be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5b": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f", + "0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x08be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25ffe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x08be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25fb1b1fa07c6080500060542f5b98823ec51d3324b669b05ccfbcefc0cd10ca6c010be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5b10be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5b10be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5b10be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5b10be3415ad5a5125fae825551500fb7465bc3c51052fd2470f6b297862d58e5b039f9dcc57e225624a0c5fa919ea8698825d3648dd560407a0c437f2151584204ffe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860ea7de8ff816bef7291277c92e8325409ac261e34899e215784c664f07433ca0b0ec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d7011676ec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d7011676ec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d7011676ec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d7011676ec79e022ab4e310e0540d356ae1317d36961357259e2cdff5970d432d701167603fffbbb09252cd3d1d4b030d2b84274ab74d00a217fb32f6f3e744cbcccc83907", + "0xd57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xd5c41b52a371aa36c9254ce34324f2a54e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xd5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xd8bbe27baf3aa64bb483afabc240f68e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xd8f314b7f4e6b095f0f8ee4656a448254e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xda7d4185f8093e80caceb64da45219e30c98535b82c72faf3c64974094af4643": "0x0100000000000000020000000b6c37fab1c1ec0f91a777cc6f57b1382cdd6ef4519c8af427ed8e72a5fc1c38", + "0xda7d4185f8093e80caceb64da45219e34e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xda7d4185f8093e80caceb64da45219e3c52aa943bf0908860a3eea0fad707cdc": "0x0000000000000000020000000b6c37fab1c1ec0f91a777cc6f57b1382cdd6ef4519c8af427ed8e72a5fc1c38", + "0xe2e62dd81c48a88f73b6f6463555fd8e4e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0xed25f63942de25ac5253ba64b5eb64d14e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0xedfb05b766f199ce00df85317e33050e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xf2794c22e353e9a839f12faab03a911b4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xf2794c22e353e9a839f12faab03a911b7f17cdfbfa73331856cca0acddd7842e": "0x00000000", + "0xf2794c22e353e9a839f12faab03a911bbdcb0c5143a8617ed38ae3810dd45bc6": "0x00000000", + "0xf2794c22e353e9a839f12faab03a911be2f6cb0456905c189bcb0458f9440f13": "0x00000000", + "0xf5207f03cfdce586301014700e2c25934e7b9012096b41c4eb3aaf947f6ea429": "0x0100" }, - "session_length_in_blocks": 10 + "childrenDefault": {} } } -} +} \ No newline at end of file From 1ef780c0a968ff9624db84fc7adcea5d2f58904c Mon Sep 17 00:00:00 2001 From: Dastan Samatov Date: Tue, 11 Jul 2023 16:44:35 +0600 Subject: [PATCH 85/91] Working evm rpc --- Cargo.lock | 52 +++++++++ node/Cargo.toml | 12 +- node/src/cli.rs | 21 ++-- node/src/command.rs | 67 ++++++++--- node/src/eth.rs | 159 ++++++++++++++++++++++++++ node/src/main.rs | 1 + node/src/rpc/eth.rs | 196 ++++++++++++++++++++++++++++++++ node/src/{rpc.rs => rpc/mod.rs} | 62 +++++----- node/src/service.rs | 145 ++++++++++++++++++----- runtime/src/lib.rs | 75 ++++++++++-- zombienet/native.toml | 17 +-- 11 files changed, 698 insertions(+), 109 deletions(-) create mode 100644 node/src/eth.rs create mode 100644 node/src/rpc/eth.rs rename node/src/{rpc.rs => rpc/mod.rs} (52%) diff --git a/Cargo.lock b/Cargo.lock index b6fdd3cf..2295b83b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2797,6 +2797,40 @@ dependencies = [ "thiserror", ] +[[package]] +name = "fc-cli" +version = "1.0.0-dev" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#adf7117f373b68d4128385ad08c28a9f7c597cd0" +dependencies = [ + "clap", + "ethereum-types", + "fc-db", + "fp-rpc", + "fp-storage", + "sc-cli", + "serde", + "serde_json", + "sp-api", + "sp-blockchain", + "sp-runtime", +] + +[[package]] +name = "fc-consensus" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#adf7117f373b68d4128385ad08c28a9f7c597cd0" +dependencies = [ + "async-trait", + "fp-consensus", + "fp-rpc", + "sc-consensus", + "sp-api", + "sp-block-builder", + "sp-consensus", + "sp-runtime", + "thiserror", +] + [[package]] name = "fc-db" version = "2.0.0-dev" @@ -3084,6 +3118,16 @@ dependencies = [ "sp-std", ] +[[package]] +name = "fp-dynamic-fee" +version = "1.0.0" +source = "git+https://github.com/paritytech/frontier?branch=polkadot-v0.9.43#adf7117f373b68d4128385ad08c28a9f7c597cd0" +dependencies = [ + "async-trait", + "sp-core", + "sp-inherents", +] + [[package]] name = "fp-ethereum" version = "1.0.0-dev" @@ -7129,12 +7173,20 @@ dependencies = [ "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-relay-chain-interface", + "fc-cli", + "fc-consensus", + "fc-db", + "fc-mapping-sync", "fc-rpc", "fc-rpc-core", + "fc-storage", + "fp-dynamic-fee", "fp-evm", "fp-rpc", "frame-benchmarking", "frame-benchmarking-cli", + "futures", + "hex-literal", "jsonrpsee", "log", "pallet-transaction-payment-rpc", diff --git a/node/Cargo.toml b/node/Cargo.toml index 8fbcdf14..6956a6c7 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -11,10 +11,12 @@ build = "build.rs" [dependencies] clap = { version = "4.2.7", features = ["derive"] } +futures = "0.3.25" log = "0.4.17" codec = { package = "parity-scale-codec", version = "3.0.0" } serde = { version = "1.0.163", features = ["derive"] } jsonrpsee = { version = "0.16.2", features = ["server"] } +hex-literal = { version = "0.4.1" } # Local parachain-template-runtime = { path = "../runtime" } @@ -68,10 +70,16 @@ cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus.g color-print = "0.3.4" # Frontier -fp-evm = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43" } -fp-rpc = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43" } +fc-cli = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43" } fc-rpc = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43", features = [ "rpc-binary-search-estimate" ] } fc-rpc-core = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43" } +fc-mapping-sync = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43" } +fc-db = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43" } +fc-consensus = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43" } +fc-storage = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43" } +fp-rpc = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43", default-features = false } +fp-evm = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43" } +fp-dynamic-fee = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43" } [build-dependencies] substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } diff --git a/node/src/cli.rs b/node/src/cli.rs index 33c5879f..269658bd 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -1,3 +1,4 @@ +use crate::eth::EthConfiguration; use std::path::PathBuf; /// Sub-commands supported by the collator. @@ -43,27 +44,17 @@ pub enum Subcommand { /// Errors since the binary was not build with `--features try-runtime`. #[cfg(not(feature = "try-runtime"))] TryRuntime, + + /// Db meta columns information. + FrontierDb(fc_cli::FrontierDbCmd), } -const AFTER_HELP_EXAMPLE: &str = color_print::cstr!( - r#"Examples: - parachain-template-node build-spec --disable-default-bootnode > plain-parachain-chainspec.json - Export a chainspec for a local testnet in json format. - parachain-template-node --chain plain-parachain-chainspec.json --tmp -- --chain rococo-local - Launch a full node with chain specification loaded from plain-parachain-chainspec.json. - parachain-template-node - Launch a full node with default parachain local-testnet and relay chain rococo-local. - parachain-template-node --collator - Launch a collator with default parachain local-testnet and relay chain rococo-local. - "# -); #[derive(Debug, clap::Parser)] #[command( propagate_version = true, args_conflicts_with_subcommands = true, subcommand_negates_reqs = true )] -#[clap(after_help = AFTER_HELP_EXAMPLE)] pub struct Cli { #[command(subcommand)] pub subcommand: Option, @@ -84,6 +75,10 @@ pub struct Cli { /// Relay chain arguments #[arg(raw = true)] pub relay_chain_args: Vec, + + // Frontier arguments + #[command(flatten)] + pub eth: EthConfiguration, } #[derive(Debug)] diff --git a/node/src/command.rs b/node/src/command.rs index 9072ba37..f2dd46a6 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -11,14 +11,19 @@ use sc_cli::{ ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli, }; -use sc_service::config::{BasePath, PrometheusConfig}; +use sc_service::{ + config::{BasePath, /*DatabaseSource,*/ PrometheusConfig}, + Arc, +}; use sp_core::hexdisplay::HexDisplay; use sp_runtime::traits::{AccountIdConversion, Block as BlockT}; +// Frontier +// use fc_db::frontier_database_dir; use crate::{ chain_spec, cli::{Cli, RelayChainCli, Subcommand}, - service::{new_partial, ParachainNativeExecutor}, + service::{/*db_config_dir,*/ new_partial, ParachainNativeExecutor}, }; fn load_spec(id: &str) -> std::result::Result, String> { @@ -120,10 +125,10 @@ impl SubstrateCli for RelayChainCli { } macro_rules! construct_async_run { - (|$components:ident, $cli:ident, $cmd:ident, $config:ident| $( $code:tt )* ) => {{ + (|$components:ident, $cli:ident, $cmd:ident, $config:ident, $eth_config:ident| $( $code:tt )* ) => {{ let runner = $cli.create_runner($cmd)?; runner.async_run(|$config| { - let $components = new_partial(&$config)?; + let $components = new_partial(&$config, &$eth_config)?; let task_manager = $components.task_manager; { $( $code )* }.map(|v| (v, task_manager)) }) @@ -133,6 +138,7 @@ macro_rules! construct_async_run { /// Parse command line arguments into service configuration. pub fn run() -> Result<()> { let cli = Cli::from_args(); + let eth_cfg = cli.eth.clone(); match &cli.subcommand { Some(Subcommand::BuildSpec(cmd)) => { @@ -140,34 +146,49 @@ pub fn run() -> Result<()> { runner.sync_run(|config| cmd.run(config.chain_spec, config.network)) }, Some(Subcommand::CheckBlock(cmd)) => { - construct_async_run!(|components, cli, cmd, config| { + construct_async_run!(|components, cli, cmd, config, eth_cfg| { Ok(cmd.run(components.client, components.import_queue)) }) }, Some(Subcommand::ExportBlocks(cmd)) => { - construct_async_run!(|components, cli, cmd, config| { + construct_async_run!(|components, cli, cmd, config, eth_cfg| { Ok(cmd.run(components.client, config.database)) }) }, Some(Subcommand::ExportState(cmd)) => { - construct_async_run!(|components, cli, cmd, config| { + construct_async_run!(|components, cli, cmd, config, eth_cfg| { Ok(cmd.run(components.client, config.chain_spec)) }) }, Some(Subcommand::ImportBlocks(cmd)) => { - construct_async_run!(|components, cli, cmd, config| { + construct_async_run!(|components, cli, cmd, config, eth_cfg| { Ok(cmd.run(components.client, components.import_queue)) }) }, Some(Subcommand::Revert(cmd)) => { - construct_async_run!(|components, cli, cmd, config| { + construct_async_run!(|components, cli, cmd, config, eth_cfg| { Ok(cmd.run(components.client, components.backend, None)) }) }, Some(Subcommand::PurgeChain(cmd)) => { let runner = cli.create_runner(cmd)?; - runner.sync_run(|config| { + // Remove Frontier offchain db + // let db_config_dir = db_config_dir(&config); + // let frontier_database_config = match config.database { + // DatabaseSource::RocksDb { .. } => DatabaseSource::RocksDb { + // path: frontier_database_dir(&db_config_dir, "db"), + // cache_size: 0, + // }, + // DatabaseSource::ParityDb { .. } => DatabaseSource::ParityDb { + // path: frontier_database_dir(&db_config_dir, "paritydb"), + // }, + // _ => { + // return Err(format!("Cannot purge `{:?}` database", config.database).into()) + // } + // }; + // cmd.run(frontier_database_config)?; + let polkadot_cli = RelayChainCli::new( &config, [RelayChainCli::executable_name()].iter().chain(cli.relay_chain_args.iter()), @@ -211,7 +232,7 @@ pub fn run() -> Result<()> { .into()) }, BenchmarkCmd::Block(cmd) => runner.sync_run(|config| { - let partials = new_partial(&config)?; + let partials = new_partial(&config, ð_cfg)?; cmd.run(partials.client) }), #[cfg(not(feature = "runtime-benchmarks"))] @@ -224,7 +245,7 @@ pub fn run() -> Result<()> { .into()), #[cfg(feature = "runtime-benchmarks")] BenchmarkCmd::Storage(cmd) => runner.sync_run(|config| { - let partials = new_partial(&config)?; + let partials = new_partial(&config, ð_cfg)?; let db = partials.backend.expose_db(); let storage = partials.backend.expose_storage(); cmd.run(config, partials.client.clone(), db, storage) @@ -245,6 +266,7 @@ pub fn run() -> Result<()> { let runner = cli.create_runner(cmd)?; + use sc_executor::{sp_wasm_interface::ExtendedHostFunctions, NativeExecutionDispatch}; type HostFunctionsOf = ExtendedHostFunctions< sp_io::SubstrateHostFunctions, ::ExtendHostFunctions, @@ -255,7 +277,6 @@ pub fn run() -> Result<()> { let task_manager = sc_service::TaskManager::new(runner.config().tokio_handle.clone(), *registry) .map_err(|e| format!("Error: {:?}", e))?; - let info_provider = timestamp_with_aura_info(MILLISECS_PER_BLOCK); runner.async_run(|_| { @@ -271,16 +292,29 @@ pub fn run() -> Result<()> { Some(Subcommand::TryRuntime) => Err("Try-runtime was not enabled when building the node. \ You can enable it with `--features try-runtime`." .into()), + Some(Subcommand::FrontierDb(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.sync_run(|config| { + let params = crate::service::new_partial(&config, &cli.eth)?; + let client = params.client; + let (_, _, _, frontier_backend) = params.other; + + cmd.run(client, frontier_backend) + }) + }, None => { let runner = cli.create_runner(&cli.run.normalize())?; let collator_options = cli.run.collator_options(); runner.run_node_until_exit(|config| async move { - let hwbench = (!cli.no_hardware_benchmarks).then_some( + let hwbench = if !cli.no_hardware_benchmarks { config.database.path().map(|database_path| { let _ = std::fs::create_dir_all(database_path); sc_sysinfo::gather_hwbench(Some(database_path)) - })).flatten(); + }) + } else { + None + }; let para_id = chain_spec::Extensions::try_get(&*config.chain_spec) .map(|e| e.para_id) @@ -294,7 +328,7 @@ pub fn run() -> Result<()> { let id = ParaId::from(para_id); let parachain_account = - AccountIdConversion::::into_account_truncating(&id); + AccountIdConversion::::into_account_truncating(&id); let state_version = Cli::native_runtime_version(&config.chain_spec).state_version(); let block: Block = generate_genesis_block(&*config.chain_spec, state_version) @@ -318,6 +352,7 @@ pub fn run() -> Result<()> { crate::service::start_parachain_node( config, polkadot_config, + eth_cfg, collator_options, id, hwbench, diff --git a/node/src/eth.rs b/node/src/eth.rs new file mode 100644 index 00000000..2ce7bb0c --- /dev/null +++ b/node/src/eth.rs @@ -0,0 +1,159 @@ +use std::{ + collections::BTreeMap, + path::PathBuf, + sync::{Arc, Mutex}, + time::Duration, +}; + +use futures::{future, prelude::*}; +// Substrate +use sc_client_api::{BlockchainEvents, StateBackendFor}; +use sc_executor::{NativeElseWasmExecutor, NativeExecutionDispatch}; +use sc_network_sync::SyncingService; + +use sc_service::{ + error::Error as ServiceError, BasePath, Configuration, TFullBackend, TFullClient, TaskManager, +}; +use sp_api::ConstructRuntimeApi; +use sp_runtime::traits::BlakeTwo256; +// Frontier +pub use fc_consensus::FrontierBlockImport; +use fc_mapping_sync::{kv::MappingSyncWorker, SyncStrategy}; +use fc_rpc::{EthTask, OverrideHandle}; +pub use fc_rpc_core::types::{FeeHistoryCache, FeeHistoryCacheLimit, FilterPool}; +// Local +use parachain_template_runtime::opaque::Block; + +pub fn db_config_dir(config: &Configuration) -> PathBuf { + config.base_path.config_dir(config.chain_spec.id()) +} + +/// The ethereum-compatibility configuration used to run a node. +#[derive(Clone, Debug, clap::Parser)] +pub struct EthConfiguration { + /// Maximum number of logs in a query. + #[arg(long, default_value = "10000")] + pub max_past_logs: u32, + + /// Maximum fee history cache size. + #[arg(long, default_value = "2048")] + pub fee_history_limit: u64, + + #[arg(long)] + pub enable_dev_signer: bool, + + /// The dynamic-fee pallet target gas price set by block author + #[arg(long, default_value = "1")] + pub target_gas_price: u64, + + /// Maximum allowed gas limit will be `block.gas_limit * execute_gas_limit_multiplier` + /// when using eth_call/eth_estimateGas. + #[arg(long, default_value = "10")] + pub execute_gas_limit_multiplier: u64, + + /// Size in bytes of the LRU cache for block data. + #[arg(long, default_value = "50")] + pub eth_log_block_cache: usize, + + /// Size in bytes of the LRU cache for transactions statuses data. + #[arg(long, default_value = "50")] + pub eth_statuses_cache: usize, +} + +pub struct FrontierPartialComponents { + pub filter_pool: Option, + pub fee_history_cache: FeeHistoryCache, + pub fee_history_cache_limit: FeeHistoryCacheLimit, +} + +pub fn new_frontier_partial( + config: &EthConfiguration, +) -> Result { + Ok(FrontierPartialComponents { + filter_pool: Some(Arc::new(Mutex::new(BTreeMap::new()))), + fee_history_cache: Arc::new(Mutex::new(BTreeMap::new())), + fee_history_cache_limit: config.fee_history_limit, + }) +} + +/// A set of APIs that ethereum-compatible runtimes must implement. +pub trait EthCompatRuntimeApiCollection: + sp_api::ApiExt + + fp_rpc::EthereumRuntimeRPCApi + + fp_rpc::ConvertTransactionRuntimeApi +where + >::StateBackend: sp_api::StateBackend, +{ +} + +impl EthCompatRuntimeApiCollection for Api +where + Api: sp_api::ApiExt + + fp_rpc::EthereumRuntimeRPCApi + + fp_rpc::ConvertTransactionRuntimeApi, + >::StateBackend: sp_api::StateBackend, +{ +} + +pub fn spawn_frontier_tasks( + task_manager: &TaskManager, + client: Arc>>, + backend: Arc>, + frontier_backend: Arc>, + filter_pool: Option, + overrides: Arc>, + fee_history_cache: FeeHistoryCache, + fee_history_cache_limit: FeeHistoryCacheLimit, + sync: Arc>, + pubsub_notification_sinks: Arc< + fc_mapping_sync::EthereumBlockNotificationSinks< + fc_mapping_sync::EthereumBlockNotification, + >, + >, +) where + RuntimeApi: ConstructRuntimeApi< + Block, + TFullClient>, + >, + RuntimeApi: Send + Sync + 'static, + RuntimeApi::RuntimeApi: + EthCompatRuntimeApiCollection, Block>>, + Executor: NativeExecutionDispatch + 'static, +{ + task_manager.spawn_essential_handle().spawn( + "frontier-mapping-sync-worker", + Some("frontier"), + MappingSyncWorker::new( + client.import_notification_stream(), + Duration::new(6, 0), + client.clone(), + backend, + overrides.clone(), + frontier_backend, + 3, + 0, + SyncStrategy::Parachain, + sync, + pubsub_notification_sinks, + ) + .for_each(|()| future::ready(())), + ); + + // Spawn Frontier EthFilterApi maintenance task. + if let Some(filter_pool) = filter_pool { + // Each filter is allowed to stay in the pool for 100 blocks. + const FILTER_RETAIN_THRESHOLD: u64 = 100; + task_manager.spawn_essential_handle().spawn( + "frontier-filter-pool", + Some("frontier"), + EthTask::filter_pool_task(client.clone(), filter_pool, FILTER_RETAIN_THRESHOLD), + ); + } + + // Spawn Frontier FeeHistory cache maintenance task. + task_manager.spawn_essential_handle().spawn( + "frontier-fee-history", + Some("frontier"), + EthTask::fee_history_task(client, overrides, fee_history_cache, fee_history_cache_limit), + ); +} diff --git a/node/src/main.rs b/node/src/main.rs index ba9f28b3..ed84ab2d 100644 --- a/node/src/main.rs +++ b/node/src/main.rs @@ -7,6 +7,7 @@ mod chain_spec; mod service; mod cli; mod command; +mod eth; mod rpc; fn main() -> sc_cli::Result<()> { diff --git a/node/src/rpc/eth.rs b/node/src/rpc/eth.rs new file mode 100644 index 00000000..a80fc08a --- /dev/null +++ b/node/src/rpc/eth.rs @@ -0,0 +1,196 @@ +use std::{collections::BTreeMap, sync::Arc}; + +use fc_rpc::TxPool; +use jsonrpsee::RpcModule; +// Substrate +use sc_client_api::{ + backend::{Backend, StorageProvider}, + client::BlockchainEvents, +}; +use sc_network::NetworkService; +use sc_network_sync::SyncingService; +use sc_rpc::SubscriptionTaskExecutor; +use sc_transaction_pool::{ChainApi, Pool}; +use sc_transaction_pool_api::TransactionPool; +use sp_api::{CallApiAt, ProvideRuntimeApi}; +use sp_block_builder::BlockBuilder as BlockBuilderApi; +use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; +use sp_core::H256; +use sp_runtime::traits::Block as BlockT; +// Frontier +pub use fc_rpc::{EthBlockDataCacheTask, OverrideHandle, StorageOverride}; +pub use fc_rpc_core::types::{FeeHistoryCache, FeeHistoryCacheLimit, FilterPool}; +use fc_rpc_core::{EthApiServer, EthFilterApiServer, NetApiServer, Web3ApiServer}; +pub use fc_storage::overrides_handle; +use fp_rpc::{ConvertTransaction, ConvertTransactionRuntimeApi, EthereumRuntimeRPCApi}; + +/// Extra dependencies for Ethereum compatibility. +pub struct EthDeps { + /// The client instance to use. + pub client: Arc, + /// Transaction pool instance. + pub pool: Arc

, + /// Graph pool instance. + pub graph: Arc>, + /// Ethereum transaction converter. + pub converter: Option, + /// The Node authority flag + pub is_authority: bool, + /// Whether to enable dev signer + pub enable_dev_signer: bool, + /// Network service + pub network: Arc>, + /// Chain syncing service + pub sync: Arc>, + /// Frontier Backend. + pub frontier_backend: Arc>, + /// Ethereum data access overrides. + pub overrides: Arc>, + /// Cache for Ethereum block data. + pub block_data_cache: Arc>, + /// EthFilterApi pool. + pub filter_pool: Option, + /// Maximum number of logs in a query. + pub max_past_logs: u32, + /// Fee history cache. + pub fee_history_cache: FeeHistoryCache, + /// Maximum fee history cache size. + pub fee_history_cache_limit: FeeHistoryCacheLimit, + /// Maximum allowed gas limit will be ` block.gas_limit * execute_gas_limit_multiplier` when + /// using eth_call/eth_estimateGas. + pub execute_gas_limit_multiplier: u64, + /// Mandated parent hashes for a given block hash. + pub forced_parent_hashes: Option>, +} + +impl Clone for EthDeps { + fn clone(&self) -> Self { + Self { + client: self.client.clone(), + pool: self.pool.clone(), + graph: self.graph.clone(), + converter: self.converter.clone(), + is_authority: self.is_authority, + enable_dev_signer: self.enable_dev_signer, + network: self.network.clone(), + sync: self.sync.clone(), + frontier_backend: self.frontier_backend.clone(), + overrides: self.overrides.clone(), + block_data_cache: self.block_data_cache.clone(), + filter_pool: self.filter_pool.clone(), + max_past_logs: self.max_past_logs, + fee_history_cache: self.fee_history_cache.clone(), + fee_history_cache_limit: self.fee_history_cache_limit, + execute_gas_limit_multiplier: self.execute_gas_limit_multiplier, + forced_parent_hashes: self.forced_parent_hashes.clone(), + } + } +} + +/// Instantiate Ethereum-compatible RPC extensions. +pub fn create_eth( + mut io: RpcModule<()>, + deps: EthDeps, + subscription_task_executor: SubscriptionTaskExecutor, +) -> Result, Box> +where + B: BlockT, + C: CallApiAt + ProvideRuntimeApi, + C::Api: BlockBuilderApi + EthereumRuntimeRPCApi + ConvertTransactionRuntimeApi, + C: BlockchainEvents + 'static, + C: HeaderBackend + HeaderMetadata + StorageProvider, + BE: Backend + 'static, + P: TransactionPool + 'static, + A: ChainApi + 'static, + CT: ConvertTransaction<::Extrinsic> + Send + Sync + 'static, +{ + use fc_rpc::{Eth, EthDevSigner, EthFilter, EthPubSub, EthSigner, Net, Web3}; + + let EthDeps { + client, + pool, + graph, + converter, + is_authority, + enable_dev_signer, + network, + sync, + frontier_backend, + overrides, + block_data_cache, + filter_pool, + max_past_logs, + fee_history_cache, + fee_history_cache_limit, + execute_gas_limit_multiplier, + forced_parent_hashes, + } = deps; + + let mut signers = Vec::new(); + if enable_dev_signer { + signers.push(Box::new(EthDevSigner::new()) as Box); + } + + io.merge( + Eth::new( + client.clone(), + pool.clone(), + graph.clone(), + converter, + sync.clone(), + signers, + overrides.clone(), + frontier_backend.clone(), + is_authority, + block_data_cache.clone(), + fee_history_cache, + fee_history_cache_limit, + execute_gas_limit_multiplier, + None, + ) + .into_rpc(), + )?; + + let tx_pool = TxPool::new(client.clone(), graph); + + if let Some(filter_pool) = filter_pool { + io.merge( + EthFilter::new( + client.clone(), + frontier_backend, + tx_pool.clone(), + filter_pool, + 500_usize, // max stored filters + max_past_logs, + block_data_cache, + ) + .into_rpc(), + )?; + } + + // io.merge( + // EthPubSub::new( + // pool, + // client.clone(), + // network.clone(), + // subscription_task_executor, + // overrides, + // pubsub_notification_sinks, + // ) + // .into_rpc(), + // )?; + + io.merge( + Net::new( + client.clone(), + network, + // Whether to format the `peer_count` response as Hex (default) or not. + true, + ) + .into_rpc(), + )?; + + io.merge(Web3::new(client).into_rpc())?; + + Ok(io) +} diff --git a/node/src/rpc.rs b/node/src/rpc/mod.rs similarity index 52% rename from node/src/rpc.rs rename to node/src/rpc/mod.rs index 1c4c823a..9ff0fe02 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc/mod.rs @@ -7,66 +7,76 @@ use std::sync::Arc; -use parachain_template_runtime::{Hash, opaque::Block, AccountId, Balance, Index as Nonce}; +use parachain_template_runtime::{opaque::Block, AccountId, Balance, Index as Nonce}; -use sc_client_api::AuxStore; +use sc_client_api::{ + backend::{AuxStore, Backend, StorageProvider}, + client::BlockchainEvents, +}; pub use sc_rpc::{DenyUnsafe, SubscriptionTaskExecutor}; +use sc_transaction_pool::ChainApi; use sc_transaction_pool_api::TransactionPool; -use sp_api::ProvideRuntimeApi; -use sp_block_builder::BlockBuilder; +use sp_api::{CallApiAt, ProvideRuntimeApi}; use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; -use sc_network::NetworkService; +use sp_runtime::traits::Block as BlockT; + +mod eth; +pub use self::eth::{create_eth, overrides_handle, EthDeps}; /// A type representing all RPC extensions. pub type RpcExtension = jsonrpsee::RpcModule<()>; /// Full client dependencies -pub struct FullDeps { +pub struct FullDeps { /// The client instance to use. pub client: Arc, /// Transaction pool instance. pub pool: Arc

, /// Whether to deny unsafe calls pub deny_unsafe: DenyUnsafe, - /// Network service - pub network: Arc> + // /// Ethereum-compatibility specific dependencies. + pub eth: EthDeps, } /// Instantiate all RPC extensions. -pub fn create_full( - deps: FullDeps, +pub fn create_full( + deps: FullDeps, + subscription_task_executor: SubscriptionTaskExecutor, + pubsub_notification_sinks: Arc< + fc_mapping_sync::EthereumBlockNotificationSinks< + fc_mapping_sync::EthereumBlockNotification, + >, + >, ) -> Result> where C: ProvideRuntimeApi + + CallApiAt + + StorageProvider + + BlockchainEvents + HeaderBackend + AuxStore + HeaderMetadata - + Send - + Sync + 'static, - C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, C::Api: substrate_frame_rpc_system::AccountNonceApi, - C::Api: BlockBuilder, + C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, + C::Api: sp_block_builder::BlockBuilder, + C::Api: fp_rpc::ConvertTransactionRuntimeApi, C::Api: fp_rpc::EthereumRuntimeRPCApi, - P: TransactionPool + Sync + Send + 'static, + P: TransactionPool + 'static, + A: ChainApi + 'static, + BE: Backend + 'static, + CT: fp_rpc::ConvertTransaction<::Extrinsic> + Send + Sync + 'static, { - use fc_rpc::{Net, NetApiServer}; use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApiServer}; use substrate_frame_rpc_system::{System, SystemApiServer}; let mut module = RpcExtension::new(()); - let FullDeps { client, pool, deny_unsafe, network } = deps; + let FullDeps { client, pool, deny_unsafe, eth } = deps; module.merge(System::new(client.clone(), pool, deny_unsafe).into_rpc())?; - module.merge(TransactionPayment::new(client.clone()).into_rpc())?; - module.merge(Net::new( - client.clone(), - network.clone(), - // Whether to format the `peer_count` response as Hex (default) or not. - true, - ).into_rpc())?; + module.merge(TransactionPayment::new(client).into_rpc())?; + // Ethereum compatibility RPCs + let module = create_eth::<_, _, _, _, _, _>(module, eth, subscription_task_executor)?; Ok(module) } - - diff --git a/node/src/service.rs b/node/src/service.rs index 84e45941..67e36b9e 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -5,7 +5,7 @@ use std::{sync::Arc, time::Duration}; use cumulus_client_cli::CollatorOptions; // Local Runtime Types -use parachain_template_runtime::{opaque::Block, RuntimeApi}; +use parachain_template_runtime::{opaque::Block, RuntimeApi, TransactionConverter}; // Cumulus Imports use cumulus_client_consensus_aura::{AuraConsensus, BuildAuraConsensusParams, SlotProportion}; @@ -20,7 +20,6 @@ use cumulus_primitives_core::ParaId; use cumulus_relay_chain_interface::RelayChainInterface; // Substrate Imports -use frame_benchmarking_cli::SUBSTRATE_REFERENCE_HARDWARE; use sc_consensus::ImportQueue; use sc_executor::{ HeapAllocStrategy, NativeElseWasmExecutor, WasmExecutor, DEFAULT_HEAP_ALLOC_STRATEGY, @@ -29,9 +28,16 @@ use sc_network::NetworkBlock; use sc_network_sync::SyncingService; use sc_service::{Configuration, PartialComponents, TFullBackend, TFullClient, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; +use sp_core::U256; use sp_keystore::KeystorePtr; use substrate_prometheus_endpoint::Registry; +// Frontier +use crate::eth::{ + db_config_dir, new_frontier_partial, spawn_frontier_tasks, EthConfiguration, + FrontierBlockImport as TFrontierBlockImport, FrontierPartialComponents, +}; + /// Native executor type. pub struct ParachainNativeExecutor; @@ -53,7 +59,9 @@ type ParachainClient = TFullClient; type ParachainBackend = TFullBackend; -type ParachainBlockImport = TParachainBlockImport, ParachainBackend>; +type ParachainBlockImport = TParachainBlockImport; + +type FrontierBlockImport = TFrontierBlockImport, ParachainClient>; /// Starts a `ServiceBuilder` for a full service. /// @@ -62,6 +70,7 @@ type ParachainBlockImport = TParachainBlockImport, P #[allow(clippy::type_complexity)] pub fn new_partial( config: &Configuration, + eth_config: &EthConfiguration, ) -> Result< PartialComponents< ParachainClient, @@ -69,7 +78,12 @@ pub fn new_partial( (), sc_consensus::DefaultImportQueue, sc_transaction_pool::FullPool, - (ParachainBlockImport, Option, Option), + ( + ParachainBlockImport, + Option, + Option, + Arc>, + ), >, sc_service::Error, > { @@ -121,12 +135,21 @@ pub fn new_partial( client.clone(), ); - let block_import = ParachainBlockImport::new(client.clone(), backend.clone()); + let frontier_backend = Arc::new(fc_db::kv::Backend::open( + Arc::clone(&client), + &config.database, + &db_config_dir(config), + )?); + + let frontier_block_import = FrontierBlockImport::new(client.clone(), client.clone()); + + let parachain_block_import = ParachainBlockImport::new(frontier_block_import, backend.clone()); let import_queue = build_import_queue( client.clone(), - block_import.clone(), + parachain_block_import.clone(), config, + eth_config, telemetry.as_ref().map(|telemetry| telemetry.handle()), &task_manager, )?; @@ -139,7 +162,7 @@ pub fn new_partial( task_manager, transaction_pool, select_chain: (), - other: (block_import, telemetry, telemetry_worker_handle), + other: (parachain_block_import, telemetry, telemetry_worker_handle, frontier_backend), }) } @@ -150,15 +173,18 @@ pub fn new_partial( async fn start_node_impl( parachain_config: Configuration, polkadot_config: Configuration, + eth_config: EthConfiguration, collator_options: CollatorOptions, para_id: ParaId, hwbench: Option, ) -> sc_service::error::Result<(TaskManager, Arc)> { - let parachain_config = prepare_node_config(parachain_config); + let mut parachain_config = prepare_node_config(parachain_config); - let params = new_partial(¶chain_config)?; - let (block_import, mut telemetry, telemetry_worker_handle) = params.other; - let net_config = sc_network::config::FullNetworkConfiguration::new(¶chain_config.network); + let params = new_partial(¶chain_config, ð_config)?; + let (block_import, mut telemetry, telemetry_worker_handle, frontier_backend) = params.other; + + let FrontierPartialComponents { filter_pool, fee_history_cache, fee_history_cache_limit } = + new_frontier_partial(ð_config)?; let client = params.client.clone(); let backend = params.backend.clone(); @@ -181,6 +207,17 @@ async fn start_node_impl( let transaction_pool = params.transaction_pool.clone(); let import_queue_service = params.import_queue.service(); + let net_config = sc_network::config::FullNetworkConfiguration::new(¶chain_config.network); + + // Sinks for pubsub notifications. + // Everytime a new subscription is created, a new mpsc channel is added to the sink pool. + // The MappingSyncWorker sends through the channel on block import and the subscription emits a notification to the subscriber on receiving a message through this channel. + // This way we avoid race conditions when using native substrate block import notification stream. + let pubsub_notification_sinks: fc_mapping_sync::EthereumBlockNotificationSinks< + fc_mapping_sync::EthereumBlockNotification, + > = Default::default(); + let pubsub_notification_sinks = Arc::new(pubsub_notification_sinks); + let (network, system_rpc_tx, tx_handler_controller, start_network, sync_service) = build_network(BuildNetworkParams { parachain_config: ¶chain_config, @@ -203,31 +240,66 @@ async fn start_node_impl( ); } + // for ethereum-compatibility rpc. + parachain_config.rpc_id_provider = Some(Box::new(fc_rpc::EthereumSubIdProvider)); + let overrides = crate::rpc::overrides_handle(client.clone()); + + let eth_rpc_params = crate::rpc::EthDeps { + client: client.clone(), + pool: transaction_pool.clone(), + graph: transaction_pool.pool().clone(), + converter: Some(TransactionConverter), + is_authority: parachain_config.role.is_authority(), + enable_dev_signer: eth_config.enable_dev_signer, + network: network.clone(), + sync: sync_service.clone(), + frontier_backend: frontier_backend.clone(), + overrides: overrides.clone(), + block_data_cache: Arc::new(fc_rpc::EthBlockDataCacheTask::new( + task_manager.spawn_handle(), + overrides.clone(), + eth_config.eth_log_block_cache, + eth_config.eth_statuses_cache, + prometheus_registry.clone(), + )), + filter_pool: filter_pool.clone(), + max_past_logs: eth_config.max_past_logs, + fee_history_cache: fee_history_cache.clone(), + fee_history_cache_limit, + execute_gas_limit_multiplier: eth_config.execute_gas_limit_multiplier, + forced_parent_hashes: None, + }; + let rpc_builder = { let client = client.clone(); let transaction_pool = transaction_pool.clone(); - let network = network.clone(); + let pubsub_notification_sinks = pubsub_notification_sinks.clone(); - Box::new(move |deny_unsafe, _| { + Box::new(move |deny_unsafe, subscription_task_executor| { let deps = crate::rpc::FullDeps { client: client.clone(), pool: transaction_pool.clone(), deny_unsafe, - network: network.clone(), + eth: eth_rpc_params.clone(), }; - crate::rpc::create_full(deps).map_err(Into::into) + crate::rpc::create_full( + deps, + subscription_task_executor, + pubsub_notification_sinks.clone(), + ) + .map_err(Into::into) }) }; - sc_service::spawn_tasks(sc_service::SpawnTasksParams { + let _rpc_handlers = sc_service::spawn_tasks(sc_service::SpawnTasksParams { rpc_builder, client: client.clone(), transaction_pool: transaction_pool.clone(), task_manager: &mut task_manager, config: parachain_config, keystore: params.keystore_container.keystore(), - backend, + backend: backend.clone(), network: network.clone(), sync_service: sync_service.clone(), system_rpc_tx, @@ -235,16 +307,21 @@ async fn start_node_impl( telemetry: telemetry.as_mut(), })?; + spawn_frontier_tasks( + &task_manager, + client.clone(), + backend, + frontier_backend, + filter_pool, + overrides, + fee_history_cache, + fee_history_cache_limit, + sync_service.clone(), + pubsub_notification_sinks, + ); + if let Some(hwbench) = hwbench { sc_sysinfo::print_hwbench(&hwbench); - // Here you can check whether the hardware meets your chains' requirements. Putting a link - // in there and swapping out the requirements for your own are probably a good idea. The - // requirements for a para-chain are dictated by its relay-chain. - if !SUBSTRATE_REFERENCE_HARDWARE.check_hardware(&hwbench) && validator { - log::warn!( - "⚠️ The hardware does not meet the minimal requirements for role 'Authority'." - ); - } if let Some(ref mut telemetry) = telemetry { let telemetry_handle = telemetry.handle(); @@ -326,10 +403,12 @@ fn build_import_queue( client: Arc, block_import: ParachainBlockImport, config: &Configuration, + eth_config: &EthConfiguration, telemetry: Option, task_manager: &TaskManager, ) -> Result, sc_service::Error> { let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?; + let target_gas_price = eth_config.target_gas_price; cumulus_client_consensus_aura::import_queue::< sp_consensus_aura::sr25519::AuthorityPair, @@ -343,14 +422,13 @@ fn build_import_queue( client, create_inherent_data_providers: move |_, _| async move { let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); - let slot = sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration( *timestamp, slot_duration, ); - - Ok((slot, timestamp)) + let dynamic_fee = fp_dynamic_fee::InherentDataProvider(U256::from(target_gas_price)); + Ok((slot, timestamp, dynamic_fee)) }, registry: config.prometheus_registry(), spawner: &task_manager.spawn_essential_handle(), @@ -433,9 +511,18 @@ fn build_consensus( pub async fn start_parachain_node( parachain_config: Configuration, polkadot_config: Configuration, + eth_config: EthConfiguration, collator_options: CollatorOptions, para_id: ParaId, hwbench: Option, ) -> sc_service::error::Result<(TaskManager, Arc)> { - start_node_impl(parachain_config, polkadot_config, collator_options, para_id, hwbench).await + start_node_impl( + parachain_config, + polkadot_config, + eth_config, + collator_options, + para_id, + hwbench, + ) + .await } diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index fc927366..6fe05b5e 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -9,6 +9,7 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); mod weights; pub mod xcm_config; +use codec::{Decode, Encode}; use core::marker::PhantomData; use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; use smallvec::smallvec; @@ -21,8 +22,8 @@ use sp_core::{ use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, traits::{ - AccountIdLookup, BlakeTwo256, Block as BlockT, IdentifyAccount, UniqueSaturatedInto, Verify, Get, - PostDispatchInfoOf, Dispatchable, DispatchInfoOf, + AccountIdLookup, BlakeTwo256, Block as BlockT, DispatchInfoOf, Dispatchable, Get, + IdentifyAccount, PostDispatchInfoOf, UniqueSaturatedInto, Verify, }, transaction_validity::{TransactionSource, TransactionValidity, TransactionValidityError}, ApplyExtrinsicResult, ConsensusEngineId, MultiSignature, @@ -38,8 +39,8 @@ use frame_support::{ dispatch::DispatchClass, parameter_types, traits::{ - ConstU32, ConstU64, ConstU8, Currency, EitherOfDiverse, Everything, FindAuthor, Imbalance, - OnUnbalanced, + ConstU32, ConstU64, ConstU8, Currency, EitherOfDiverse, Everything, FindAuthor, Hooks, + Imbalance, OnUnbalanced, }, weights::{ constants::WEIGHT_REF_TIME_PER_SECOND, ConstantMultiplier, Weight, WeightToFeeCoefficient, @@ -591,8 +592,11 @@ parameter_types! { pub BlockGasLimit: U256 = U256::from(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT.ref_time() / WEIGHT_PER_GAS); pub PrecompilesValue: FrontierPrecompiles = FrontierPrecompiles::<_>::new(); pub WeightPerGas: Weight = Weight::from_ref_time(WEIGHT_PER_GAS); + pub GasLimitPovSizeRatio: u64 = BlockGasLimit::get().checked_div(MAX_POV_SIZE.into()).expect("should be safe; qed").as_u64(); } +const MAX_POV_SIZE: u64 = 5 * 1024 * 1024; + impl pallet_evm::Config for Runtime { type FeeCalculator = BaseFee; type GasWeightMapping = pallet_evm::FixedGasWeightMapping; @@ -613,6 +617,7 @@ impl pallet_evm::Config for Runtime { type FindAuthor = FindAuthorTruncated; type Timestamp = Timestamp; type WeightInfo = pallet_evm::weights::SubstrateWeight; + type GasLimitPovSizeRatio = GasLimitPovSizeRatio; } parameter_types! { @@ -695,6 +700,31 @@ construct_runtime!( } ); +#[derive(Clone)] +pub struct TransactionConverter; + +impl fp_rpc::ConvertTransaction for TransactionConverter { + fn convert_transaction(&self, transaction: pallet_ethereum::Transaction) -> UncheckedExtrinsic { + UncheckedExtrinsic::new_unsigned( + pallet_ethereum::Call::::transact { transaction }.into(), + ) + } +} + +impl fp_rpc::ConvertTransaction for TransactionConverter { + fn convert_transaction( + &self, + transaction: pallet_ethereum::Transaction, + ) -> opaque::UncheckedExtrinsic { + let extrinsic = UncheckedExtrinsic::new_unsigned( + pallet_ethereum::Call::::transact { transaction }.into(), + ); + let encoded = extrinsic.encode(); + opaque::UncheckedExtrinsic::decode(&mut &encoded[..]) + .expect("Encoded extrinsic is always valid") + } +} + impl fp_self_contained::SelfContainedCall for RuntimeCall { type SignedInfo = H160; @@ -731,9 +761,8 @@ impl fp_self_contained::SelfContainedCall for RuntimeCall { len: usize, ) -> Option> { match self { - RuntimeCall::Ethereum(call) => { - call.pre_dispatch_self_contained(info, dispatch_info, len) - }, + RuntimeCall::Ethereum(call) => + call.pre_dispatch_self_contained(info, dispatch_info, len), _ => None, } } @@ -743,11 +772,10 @@ impl fp_self_contained::SelfContainedCall for RuntimeCall { info: Self::SignedInfo, ) -> Option>> { match self { - call @ RuntimeCall::Ethereum(pallet_ethereum::Call::transact { .. }) => { + call @ RuntimeCall::Ethereum(pallet_ethereum::Call::transact { .. }) => Some(call.dispatch(RuntimeOrigin::from( pallet_ethereum::RawOrigin::EthereumTransaction(info), - ))) - }, + ))), _ => None, } } @@ -923,6 +951,8 @@ impl_runtime_apis! { access_list.unwrap_or_default(), is_transactional, validate, + None, + None, evm_config, ).map_err(|err| err.error.into()) } @@ -960,6 +990,8 @@ impl_runtime_apis! { access_list.unwrap_or_default(), is_transactional, validate, + None, + None, evm_config, ).map_err(|err| err.error.into()) } @@ -1002,6 +1034,29 @@ impl_runtime_apis! { } fn gas_limit_multiplier_support() {} + + fn pending_block( + xts: Vec<::Extrinsic>, + ) -> (Option, Option>) { + for ext in xts.into_iter() { + let _ = Executive::apply_extrinsic(ext); + } + + Ethereum::on_finalize(System::block_number() + 1); + + ( + pallet_ethereum::CurrentBlock::::get(), + pallet_ethereum::CurrentTransactionStatuses::::get() + ) + } + } + + impl fp_rpc::ConvertTransactionRuntimeApi for Runtime { + fn convert_transaction(transaction: EthereumTransaction) -> ::Extrinsic { + UncheckedExtrinsic::new_unsigned( + pallet_ethereum::Call::::transact { transaction }.into(), + ) + } } impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { diff --git a/zombienet/native.toml b/zombienet/native.toml index b5f7b0f8..f38fb7b1 100644 --- a/zombienet/native.toml +++ b/zombienet/native.toml @@ -1,7 +1,7 @@ [relaychain] -default_command = "../../binaries/polkadot-v0.9.42" +default_command = "~/Documents/efinity/polkadot/target/release/polkadot" default_args = [ "-lparachain=debug" ] -chain_spec_path = "./specs/rococo-freeverse-chainspec-local.json" +chain = "rococo-local" [[relaychain.nodes]] name = "alice" @@ -14,18 +14,9 @@ chain_spec_path = "./specs/rococo-freeverse-chainspec-local.json" [[parachains]] id = 2000 cumulus_based = true -chain_spec_path = "./specs/arrakis-local.json" +chain = "local" [parachains.collator] name = "ownership-collator-pandora" - command = "../../binaries/parachain-template-node-pandora-arrakis" + command = "./target/release/parachain-template-node" validator = true - -[[parachains]] -id = 2002 -cumulus_based = true -chain = "arrakis" - - [parachains.collator] - name = "ownership-collator-sudo" - command = "../../binaries/parachain-template-node-v0.0.4-dev-local" From 96bf28c4165534737f7763c52ffc29dddd1ff3e7 Mon Sep 17 00:00:00 2001 From: Dastan Samatov Date: Tue, 11 Jul 2023 20:07:03 +0600 Subject: [PATCH 86/91] try fix clippy --- Cargo.lock | 1 + node/Cargo.toml | 11 ++++++++++- node/src/chain_spec.rs | 2 +- runtime/Cargo.toml | 16 +++++++++++++++- runtime/src/lib.rs | 2 +- runtime/src/precompiles.rs | 6 +++++- 6 files changed, 33 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2295b83b..1ffb0f3c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6397,6 +6397,7 @@ dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "hex", "hex-literal", "impl-trait-for-tuples", "log", diff --git a/node/Cargo.toml b/node/Cargo.toml index 6956a6c7..7cbb6584 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -90,8 +90,17 @@ runtime-benchmarks = [ "try-runtime-cli/try-runtime", "parachain-template-runtime/runtime-benchmarks", "polkadot-cli/runtime-benchmarks", + "polkadot-service/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "sc-service/runtime-benchmarks", + "polkadot-primitives/runtime-benchmarks", + "frame-benchmarking/runtime-benchmarks", + "frame-benchmarking-cli/runtime-benchmarks", ] try-runtime = [ "try-runtime-cli/try-runtime", - "parachain-template-runtime/try-runtime" + "parachain-template-runtime/try-runtime", + "polkadot-cli/try-runtime", + "polkadot-service/try-runtime", + "sp-runtime/try-runtime", ] diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index 52c0fd32..fa4a15ef 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -5,7 +5,7 @@ use sc_service::ChainType; use serde::{Deserialize, Serialize}; use sp_core::{sr25519, Pair, Public, H160, U256}; use sp_runtime::traits::{IdentifyAccount, Verify}; -use std::{collections::BTreeMap, marker::PhantomData, str::FromStr}; +use std::{collections::BTreeMap, str::FromStr}; /// Specialized `ChainSpec` for the normal parachain runtime. pub type ChainSpec = diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index d6f242c9..cb5df86c 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -77,7 +77,6 @@ parachains-common = { git = "https://github.com/paritytech/cumulus.git", branch fp-rpc = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43", default-features = false } fp-self-contained = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43", default-features = false } - # Frontier FRAME pallet-base-fee = { git = "https://github.com/paritytech/frontier", branch = "polkadot-v0.9.43", default-features = false } pallet-evm = { git = "https://github.com/paritytech/frontier.git", branch = "polkadot-v0.9.43", default-features = false } @@ -149,6 +148,10 @@ std = [ "pallet-evm-precompile-modexp/std", "pallet-evm-precompile-sha3fips/std", "pallet-evm-precompile-simple/std", + "cumulus-pallet-session-benchmarking/std", + "frame-benchmarking/std", + "frame-system-benchmarking/std", + "frame-try-runtime/std" ] runtime-benchmarks = [ @@ -166,6 +169,14 @@ runtime-benchmarks = [ "xcm-builder/runtime-benchmarks", "cumulus-pallet-session-benchmarking/runtime-benchmarks", "cumulus-pallet-xcmp-queue/runtime-benchmarks", + "cumulus-pallet-parachain-system/runtime-benchmarks", + "pallet-ethereum/runtime-benchmarks", + "pallet-evm/runtime-benchmarks", + "pallet-sudo/runtime-benchmarks", + "polkadot-parachain/runtime-benchmarks", + "polkadot-primitives/runtime-benchmarks", + "polkadot-runtime-common/runtime-benchmarks", + "xcm-executor/runtime-benchmarks", ] try-runtime = [ @@ -193,5 +204,8 @@ try-runtime = [ "pallet-ethereum/try-runtime", "pallet-base-fee/try-runtime", "fp-self-contained/try-runtime", + "frame-support/try-runtime", + "polkadot-runtime-common/try-runtime", + "sp-runtime/try-runtime", ] diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 6fe05b5e..20e6f021 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -591,7 +591,7 @@ where parameter_types! { pub BlockGasLimit: U256 = U256::from(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT.ref_time() / WEIGHT_PER_GAS); pub PrecompilesValue: FrontierPrecompiles = FrontierPrecompiles::<_>::new(); - pub WeightPerGas: Weight = Weight::from_ref_time(WEIGHT_PER_GAS); + pub WeightPerGas: Weight = Weight::from_parts(WEIGHT_PER_GAS, 0); pub GasLimitPovSizeRatio: u64 = BlockGasLimit::get().checked_div(MAX_POV_SIZE.into()).expect("should be safe; qed").as_u64(); } diff --git a/runtime/src/precompiles.rs b/runtime/src/precompiles.rs index bed6739b..b928e0b5 100644 --- a/runtime/src/precompiles.rs +++ b/runtime/src/precompiles.rs @@ -1,4 +1,6 @@ -use pallet_evm::{Precompile, PrecompileHandle, PrecompileResult, PrecompileSet, IsPrecompileResult}; +use pallet_evm::{ + IsPrecompileResult, Precompile, PrecompileHandle, PrecompileResult, PrecompileSet, +}; use sp_core::H160; use sp_std::marker::PhantomData; @@ -6,6 +8,7 @@ use pallet_evm_precompile_modexp::Modexp; use pallet_evm_precompile_sha3fips::Sha3FIPS256; use pallet_evm_precompile_simple::{ECRecover, ECRecoverPublicKey, Identity, Ripemd160, Sha256}; +#[allow(clippy::new_without_default)] pub struct FrontierPrecompiles(PhantomData); impl FrontierPrecompiles @@ -19,6 +22,7 @@ where [hash(1), hash(2), hash(3), hash(4), hash(5), hash(1024), hash(1025)] } } + impl PrecompileSet for FrontierPrecompiles where R: pallet_evm::Config, From 5a87d44c6e0bcdb41757bc8a7a428cf63ba6667e Mon Sep 17 00:00:00 2001 From: Dastan Samatov Date: Tue, 11 Jul 2023 20:07:57 +0600 Subject: [PATCH 87/91] File clippy --- runtime/src/precompiles.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/runtime/src/precompiles.rs b/runtime/src/precompiles.rs index b928e0b5..a199669c 100644 --- a/runtime/src/precompiles.rs +++ b/runtime/src/precompiles.rs @@ -1,3 +1,5 @@ +#![allow(clippy::new_without_default)] + use pallet_evm::{ IsPrecompileResult, Precompile, PrecompileHandle, PrecompileResult, PrecompileSet, }; @@ -8,7 +10,6 @@ use pallet_evm_precompile_modexp::Modexp; use pallet_evm_precompile_sha3fips::Sha3FIPS256; use pallet_evm_precompile_simple::{ECRecover, ECRecoverPublicKey, Identity, Ripemd160, Sha256}; -#[allow(clippy::new_without_default)] pub struct FrontierPrecompiles(PhantomData); impl FrontierPrecompiles From 4effad27b309bceb70f8f2c9004b3af5c2dbe885 Mon Sep 17 00:00:00 2001 From: Dastan Samatov Date: Tue, 11 Jul 2023 20:22:13 +0600 Subject: [PATCH 88/91] Fix more clippy errors --- node/src/chain_spec.rs | 6 +++--- node/src/command.rs | 14 +++++--------- node/src/eth.rs | 3 ++- node/src/rpc/eth.rs | 26 +++++++------------------- node/src/rpc/mod.rs | 2 +- 5 files changed, 18 insertions(+), 33 deletions(-) diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index fa4a15ef..39d761f6 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -16,7 +16,7 @@ const SAFE_XCM_VERSION: u32 = xcm::prelude::XCM_VERSION; /// Helper function to generate a crypto pair from seed pub fn get_from_seed(seed: &str) -> ::Public { - TPublic::Pair::from_string(&format!("//{}", seed), None) + TPublic::Pair::from_string(&format!("//{seed}"), None) .expect("static values are valid; qed") .public() } @@ -188,8 +188,8 @@ fn testnet_genesis( root_key: Option, id: ParaId, ) -> parachain_template_runtime::GenesisConfig { - let alice = get_from_seed::("Alice"); - let bob = get_from_seed::("Bob"); + // let alice = get_from_seed::("Alice"); + // let bob = get_from_seed::("Bob"); parachain_template_runtime::GenesisConfig { system: parachain_template_runtime::SystemConfig { diff --git a/node/src/command.rs b/node/src/command.rs index f2dd46a6..dcfb55af 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -11,10 +11,7 @@ use sc_cli::{ ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli, }; -use sc_service::{ - config::{BasePath, /*DatabaseSource,*/ PrometheusConfig}, - Arc, -}; +use sc_service::config::{BasePath, /*DatabaseSource,*/ PrometheusConfig}; use sp_core::hexdisplay::HexDisplay; use sp_runtime::traits::{AccountIdConversion, Block as BlockT}; // Frontier @@ -199,7 +196,7 @@ pub fn run() -> Result<()> { &polkadot_cli, config.tokio_handle.clone(), ) - .map_err(|err| format!("Relay chain argument error: {}", err))?; + .map_err(|err| format!("Relay chain argument error: {err}"))?; cmd.run(config, polkadot_config) }) @@ -266,7 +263,6 @@ pub fn run() -> Result<()> { let runner = cli.create_runner(cmd)?; - use sc_executor::{sp_wasm_interface::ExtendedHostFunctions, NativeExecutionDispatch}; type HostFunctionsOf = ExtendedHostFunctions< sp_io::SubstrateHostFunctions, ::ExtendHostFunctions, @@ -276,7 +272,7 @@ pub fn run() -> Result<()> { let registry = &runner.config().prometheus_config.as_ref().map(|cfg| &cfg.registry); let task_manager = sc_service::TaskManager::new(runner.config().tokio_handle.clone(), *registry) - .map_err(|e| format!("Error: {:?}", e))?; + .map_err(|e| format!("Error: {e}"))?; let info_provider = timestamp_with_aura_info(MILLISECS_PER_BLOCK); runner.async_run(|_| { @@ -332,13 +328,13 @@ pub fn run() -> Result<()> { let state_version = Cli::native_runtime_version(&config.chain_spec).state_version(); let block: Block = generate_genesis_block(&*config.chain_spec, state_version) - .map_err(|e| format!("{:?}", e))?; + .map_err(|e| e.to_string()))?; let genesis_state = format!("0x{:?}", HexDisplay::from(&block.header().encode())); let tokio_handle = config.tokio_handle.clone(); let polkadot_config = SubstrateCli::create_configuration(&polkadot_cli, &polkadot_cli, tokio_handle) - .map_err(|err| format!("Relay chain argument error: {}", err))?; + .map_err(|err| format!("Relay chain argument error: {err}"))?; info!("Parachain id: {:?}", id); info!("Parachain Account: {}", parachain_account); diff --git a/node/src/eth.rs b/node/src/eth.rs index 2ce7bb0c..105ba90e 100644 --- a/node/src/eth.rs +++ b/node/src/eth.rs @@ -12,7 +12,7 @@ use sc_executor::{NativeElseWasmExecutor, NativeExecutionDispatch}; use sc_network_sync::SyncingService; use sc_service::{ - error::Error as ServiceError, BasePath, Configuration, TFullBackend, TFullClient, TaskManager, + error::Error as ServiceError, Configuration, TFullBackend, TFullClient, TaskManager, }; use sp_api::ConstructRuntimeApi; use sp_runtime::traits::BlakeTwo256; @@ -95,6 +95,7 @@ where { } +#[allow(clippy::too_many_arguments)] pub fn spawn_frontier_tasks( task_manager: &TaskManager, client: Arc>>, diff --git a/node/src/rpc/eth.rs b/node/src/rpc/eth.rs index a80fc08a..4834ff9d 100644 --- a/node/src/rpc/eth.rs +++ b/node/src/rpc/eth.rs @@ -91,7 +91,7 @@ impl Clone for EthDeps pub fn create_eth( mut io: RpcModule<()>, deps: EthDeps, - subscription_task_executor: SubscriptionTaskExecutor, + _subscription_task_executor: SubscriptionTaskExecutor, ) -> Result, Box> where B: BlockT, @@ -104,7 +104,7 @@ where A: ChainApi + 'static, CT: ConvertTransaction<::Extrinsic> + Send + Sync + 'static, { - use fc_rpc::{Eth, EthDevSigner, EthFilter, EthPubSub, EthSigner, Net, Web3}; + use fc_rpc::{Eth, EthDevSigner, EthFilter, EthSigner, Net, Web3}; let EthDeps { client, @@ -123,7 +123,7 @@ where fee_history_cache, fee_history_cache_limit, execute_gas_limit_multiplier, - forced_parent_hashes, + forced_parent_hashes: _, } = deps; let mut signers = Vec::new(); @@ -134,12 +134,12 @@ where io.merge( Eth::new( client.clone(), - pool.clone(), + pool, graph.clone(), converter, - sync.clone(), + sync, signers, - overrides.clone(), + overrides, frontier_backend.clone(), is_authority, block_data_cache.clone(), @@ -158,7 +158,7 @@ where EthFilter::new( client.clone(), frontier_backend, - tx_pool.clone(), + tx_pool, filter_pool, 500_usize, // max stored filters max_past_logs, @@ -168,18 +168,6 @@ where )?; } - // io.merge( - // EthPubSub::new( - // pool, - // client.clone(), - // network.clone(), - // subscription_task_executor, - // overrides, - // pubsub_notification_sinks, - // ) - // .into_rpc(), - // )?; - io.merge( Net::new( client.clone(), diff --git a/node/src/rpc/mod.rs b/node/src/rpc/mod.rs index 9ff0fe02..6c6bf689 100644 --- a/node/src/rpc/mod.rs +++ b/node/src/rpc/mod.rs @@ -42,7 +42,7 @@ pub struct FullDeps { pub fn create_full( deps: FullDeps, subscription_task_executor: SubscriptionTaskExecutor, - pubsub_notification_sinks: Arc< + _pubsub_notification_sinks: Arc< fc_mapping_sync::EthereumBlockNotificationSinks< fc_mapping_sync::EthereumBlockNotification, >, From 9ce5e9733d7d1a571c8acd35fd63a54451498623 Mon Sep 17 00:00:00 2001 From: Dastan Samatov Date: Tue, 11 Jul 2023 20:24:10 +0600 Subject: [PATCH 89/91] remove unnecessary delimiter --- node/src/command.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/src/command.rs b/node/src/command.rs index dcfb55af..15441793 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -328,7 +328,7 @@ pub fn run() -> Result<()> { let state_version = Cli::native_runtime_version(&config.chain_spec).state_version(); let block: Block = generate_genesis_block(&*config.chain_spec, state_version) - .map_err(|e| e.to_string()))?; + .map_err(|e| e.to_string())?; let genesis_state = format!("0x{:?}", HexDisplay::from(&block.header().encode())); let tokio_handle = config.tokio_handle.clone(); From b44639b3e7ee7280aa9844b1755a560b7d013999 Mon Sep 17 00:00:00 2001 From: Dastan Samatov Date: Tue, 11 Jul 2023 20:26:25 +0600 Subject: [PATCH 90/91] Redundant clone --- node/src/command.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/node/src/command.rs b/node/src/command.rs index 15441793..ded493ae 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -327,6 +327,8 @@ pub fn run() -> Result<()> { AccountIdConversion::::into_account_truncating(&id); let state_version = Cli::native_runtime_version(&config.chain_spec).state_version(); + + #[allow(clippy::redundant_clone)] let block: Block = generate_genesis_block(&*config.chain_spec, state_version) .map_err(|e| e.to_string())?; let genesis_state = format!("0x{:?}", HexDisplay::from(&block.header().encode())); From ac94701c7a170bd931200765e0809e1f7ea7816c Mon Sep 17 00:00:00 2001 From: Dastan Samatov Date: Tue, 11 Jul 2023 22:37:19 +0600 Subject: [PATCH 91/91] Fix compile issue --- node/Cargo.toml | 1 - runtime/Cargo.toml | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/node/Cargo.toml b/node/Cargo.toml index 7cbb6584..e7b305c3 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -87,7 +87,6 @@ substrate-build-script-utils = { git = "https://github.com/paritytech/substrate" [features] default = [] runtime-benchmarks = [ - "try-runtime-cli/try-runtime", "parachain-template-runtime/runtime-benchmarks", "polkadot-cli/runtime-benchmarks", "polkadot-service/runtime-benchmarks", diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index cb5df86c..3a75b3fa 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -149,9 +149,9 @@ std = [ "pallet-evm-precompile-sha3fips/std", "pallet-evm-precompile-simple/std", "cumulus-pallet-session-benchmarking/std", - "frame-benchmarking/std", - "frame-system-benchmarking/std", - "frame-try-runtime/std" + "frame-benchmarking", + "frame-system-benchmarking", + "frame-try-runtime" ] runtime-benchmarks = [

, + /// Whether to deny unsafe calls + pub deny_unsafe: DenyUnsafe, +} + +/// Instantiate all RPC extensions. +pub fn create_full(deps: FullDeps) -> RpcExtension +where + C: ProvideRuntimeApi + + HeaderBackend + + AuxStore + + HeaderMetadata + + Send + + Sync + + 'static, + C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, + C::Api: substrate_frame_rpc_system::AccountNonceApi, + C::Api: BlockBuilder, + P: TransactionPool + Sync + Send + 'static, +{ + use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApi}; + use substrate_frame_rpc_system::{FullSystem, SystemApi}; + + let mut io = jsonrpc_core::IoHandler::default(); + let FullDeps { client, pool, deny_unsafe } = deps; + + io.extend_with(SystemApi::to_delegate(FullSystem::new(client.clone(), pool, deny_unsafe))); + io.extend_with(TransactionPaymentApi::to_delegate(TransactionPayment::new(client))); + + io +} diff --git a/node/src/service.rs b/node/src/service.rs index 5faec11b..ff11038a 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -1,8 +1,12 @@ +//! Service and ServiceFactory implementation. Specialized wrapper over substrate service. + // std use std::sync::Arc; // Local Runtime Types -use parachain_runtime::RuntimeApi; +use parachain_template_runtime::{ + opaque::Block, AccountId, Balance, Hash, Index as Nonce, RuntimeApi, +}; // Cumulus Imports use cumulus_client_consensus_aura::{ @@ -17,8 +21,7 @@ use cumulus_primitives_core::ParaId; // Substrate Imports use sc_client_api::ExecutorProvider; -use sc_executor::native_executor_instance; -pub use sc_executor::NativeExecutor; +use sc_executor::NativeElseWasmExecutor; use sc_network::NetworkService; use sc_service::{Configuration, PartialComponents, Role, TFullBackend, TFullClient, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; @@ -28,40 +31,48 @@ use sp_keystore::SyncCryptoStorePtr; use sp_runtime::traits::BlakeTwo256; use substrate_prometheus_endpoint::Registry; -// Runtime type overrides -type BlockNumber = u32; -type Header = sp_runtime::generic::Header; -pub type Block = sp_runtime::generic::Block; -type Hash = sp_core::H256; +/// Native executor instance. +pub struct TemplateRuntimeExecutor; + +impl sc_executor::NativeExecutionDispatch for TemplateRuntimeExecutor { + type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; -// Native executor instance. -native_executor_instance!( - pub ParachainRuntimeExecutor, - parachain_runtime::api::dispatch, - parachain_runtime::native_version, - frame_benchmarking::benchmarking::HostFunctions, -); + fn dispatch(method: &str, data: &[u8]) -> Option> { + parachain_template_runtime::api::dispatch(method, data) + } + + fn native_version() -> sc_executor::NativeVersion { + parachain_template_runtime::native_version() + } +} /// Starts a `ServiceBuilder` for a full service. /// /// Use this macro if you don't actually need the full service, but just the builder in order to /// be able to perform chain operations. +#[allow(clippy::type_complexity)] pub fn new_partial( config: &Configuration, build_import_queue: BIQ, ) -> Result< PartialComponents< - TFullClient, + TFullClient>, TFullBackend, (), - sc_consensus::DefaultImportQueue>, - sc_transaction_pool::FullPool>, + sc_consensus::DefaultImportQueue< + Block, + TFullClient>, + >, + sc_transaction_pool::FullPool< + Block, + TFullClient>, + >, (Option, Option), >, sc_service::Error, > where - RuntimeApi: ConstructRuntimeApi> + RuntimeApi: ConstructRuntimeApi>> + Send + Sync + 'static, @@ -76,12 +87,15 @@ where sc_client_api::StateBackendFor, Block>: sp_api::StateBackend, Executor: sc_executor::NativeExecutionDispatch + 'static, BIQ: FnOnce( - Arc>, + Arc>>, &Configuration, Option, &TaskManager, ) -> Result< - sc_consensus::DefaultImportQueue>, + sc_consensus::DefaultImportQueue< + Block, + TFullClient>, + >, sc_service::Error, >, { @@ -96,10 +110,17 @@ where }) .transpose()?; + let executor = sc_executor::NativeElseWasmExecutor::::new( + config.wasm_method, + config.default_heap_pages, + config.max_runtime_instances, + ); + let (client, backend, keystore_container, task_manager) = - sc_service::new_full_parts::( - &config, + sc_service::new_full_parts::( + config, telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), + executor, )?; let client = Arc::new(client); @@ -147,12 +168,15 @@ async fn start_node_impl( parachain_config: Configuration, polkadot_config: Configuration, id: ParaId, - rpc_ext_builder: RB, + _rpc_ext_builder: RB, build_import_queue: BIQ, build_consensus: BIC, -) -> sc_service::error::Result<(TaskManager, Arc>)> +) -> sc_service::error::Result<( + TaskManager, + Arc>>, +)> where - RuntimeApi: ConstructRuntimeApi> + RuntimeApi: ConstructRuntimeApi>> + Send + Sync + 'static, @@ -164,7 +188,9 @@ where StateBackend = sc_client_api::StateBackendFor, Block>, > + sp_offchain::OffchainWorkerApi + sp_block_builder::BlockBuilder - + cumulus_primitives_core::CollectCollationInfo, + + cumulus_primitives_core::CollectCollationInfo + + pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi + + substrate_frame_rpc_system::AccountNonceApi, sc_client_api::StateBackendFor, Block>: sp_api::StateBackend, Executor: sc_executor::NativeExecutionDispatch + 'static, RB: Fn( @@ -173,21 +199,29 @@ where + Send + 'static, BIQ: FnOnce( - Arc>, - &Configuration, - Option, - &TaskManager, - ) -> Result< - sc_consensus::DefaultImportQueue>, - sc_service::Error, - >, + Arc>>, + &Configuration, + Option, + &TaskManager, + ) -> Result< + sc_consensus::DefaultImportQueue< + Block, + TFullClient>, + >, + sc_service::Error, + > + 'static, BIC: FnOnce( - Arc>, + Arc>>, Option<&Registry>, Option, &TaskManager, &polkadot_service::NewFull, - Arc>>, + Arc< + sc_transaction_pool::FullPool< + Block, + TFullClient>, + >, + >, Arc>, SyncCryptoStorePtr, bool, @@ -236,8 +270,20 @@ where warp_sync: None, })?; - let rpc_client = client.clone(); - let rpc_extensions_builder = Box::new(move |_, _| rpc_ext_builder(rpc_client.clone())); + let rpc_extensions_builder = { + let client = client.clone(); + let transaction_pool = transaction_pool.clone(); + + Box::new(move |deny_unsafe, _| { + let deps = crate::rpc::FullDeps { + client: client.clone(), + pool: transaction_pool.clone(), + deny_unsafe, + }; + + Ok(crate::rpc::create_full(deps)) + }) + }; sc_service::spawn_tasks(sc_service::SpawnTasksParams { on_demand: None, @@ -304,16 +350,17 @@ where Ok((task_manager, client)) } -/// Build the import queue for the the parachain runtime. +/// Build the import queue for the parachain runtime. +#[allow(clippy::type_complexity)] pub fn parachain_build_import_queue( - client: Arc>, + client: Arc>>, config: &Configuration, telemetry: Option, task_manager: &TaskManager, ) -> Result< sc_consensus::DefaultImportQueue< Block, - TFullClient, + TFullClient>, >, sc_service::Error, > { @@ -341,7 +388,7 @@ pub fn parachain_build_import_queue( Ok((time, slot)) }, - registry: config.prometheus_registry().clone(), + registry: config.prometheus_registry(), can_author_with: sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()), spawner: &task_manager.spawn_essential_handle(), telemetry, @@ -349,16 +396,16 @@ pub fn parachain_build_import_queue( .map_err(Into::into) } -/// Start a normal parachain node. -pub async fn start_node( +/// Start a parachain node. +pub async fn start_parachain_node( parachain_config: Configuration, polkadot_config: Configuration, id: ParaId, ) -> sc_service::error::Result<( TaskManager, - Arc>, + Arc>>, )> { - start_node_impl::( + start_node_impl::( parachain_config, polkadot_config, id, @@ -379,7 +426,7 @@ pub async fn start_node( task_manager.spawn_handle(), client.clone(), transaction_pool, - prometheus_registry.clone(), + prometheus_registry, telemetry.clone(), ); @@ -427,7 +474,7 @@ pub async fn start_node( block_import: client.clone(), relay_chain_client: relay_chain_node.client.clone(), relay_chain_backend: relay_chain_node.backend.clone(), - para_client: client.clone(), + para_client: client, backoff_authoring_blocks: Option::<()>::None, sync_oracle, keystore, diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index e5174a5a..73abd4b6 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -1,35 +1,37 @@ [package] -name = 'pallet-template' -authors = ['Anonymous'] -description = 'FRAME pallet template for defining custom runtime logic.' -version = '3.0.0' -license = 'Unlicense' -homepage = 'https://substrate.dev' -repository = 'https://github.com/paritytech/substrate/' -edition = '2018' +name = "pallet-template" +authors = ["Anonymous"] +description = "FRAME pallet template for defining custom runtime logic." +version = "0.1.0" +license = "Unlicense" +homepage = "https://substrate.io" +repository = "https://github.com/paritytech/substrate/" +edition = "2018" [package.metadata.docs.rs] -targets = ['x86_64-unknown-linux-gnu'] +targets = ["x86_64-unknown-linux-gnu"] [dependencies] -codec = { package = 'parity-scale-codec', version = '2.0.0', features = ['derive'], default-features = false } +codec = { package = "parity-scale-codec", version = "2.0.0", features = ["derive"], default-features = false } +scale-info = { version = "1.0.0", default-features = false, features = ["derive"] } -frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false, optional = true } -frame-support = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.11" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } [dev-dependencies] serde = { version = "1.0.119" } -sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } [features] -default = ['std'] -runtime-benchmarks = ['frame-benchmarking'] +default = ["std"] +runtime-benchmarks = ["frame-benchmarking"] std = [ - 'codec/std', - 'frame-support/std', - 'frame-system/std', - 'frame-benchmarking/std', + "codec/std", + "scale-info/std", + "frame-support/std", + "frame-system/std", + "frame-benchmarking/std", ] diff --git a/pallets/template/src/lib.rs b/pallets/template/src/lib.rs index a9ebf50a..e744ec7a 100644 --- a/pallets/template/src/lib.rs +++ b/pallets/template/src/lib.rs @@ -41,7 +41,6 @@ pub mod pallet { // Pallets use events to inform users when important changes are made. // https://substrate.dev/docs/en/knowledgebase/runtime/events #[pallet::event] - #[pallet::metadata(T::AccountId = "AccountId")] #[pallet::generate_deposit(pub(super) fn deposit_event)] pub enum Event { /// Event documentation should end with an array that provides descriptive names for event diff --git a/pallets/template/src/mock.rs b/pallets/template/src/mock.rs index a7394c13..525375e2 100644 --- a/pallets/template/src/mock.rs +++ b/pallets/template/src/mock.rs @@ -1,5 +1,5 @@ use crate as pallet_template; -use frame_support::parameter_types; +use frame_support::{parameter_types, traits::Everything}; use frame_system as system; use sp_core::H256; use sp_runtime::{ @@ -28,7 +28,7 @@ parameter_types! { } impl system::Config for Test { - type BaseCallFilter = (); + type BaseCallFilter = Everything; type BlockWeights = (); type BlockLength = (); type DbWeight = (); diff --git a/polkadot-launch/config.json b/polkadot-launch/config.json new file mode 100644 index 00000000..4dd6ebf7 --- /dev/null +++ b/polkadot-launch/config.json @@ -0,0 +1,39 @@ +{ + "relaychain": { + "bin": "../../polkadot/target/release/polkadot", + "chain": "rococo-local", + "nodes": [ + { + "name": "alice", + "wsPort": 9944, + "port": 30444 + }, + { + "name": "bob", + "wsPort": 9955, + "port": 30555 + } + ] + }, + "parachains": [ + { + "bin": "../target/release/parachain-collator", + "id": "200", + "balance": "1000000000000000000000", + "nodes": [ + { + "wsPort": 9988, + "name": "alice", + "port": 31200, + "flags": [ + "--force-authoring", + "--", + "--execution=wasm" + ] + } + ] + } + ], + "types": { + } +} diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index da2412d0..a54861e3 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -1,123 +1,144 @@ [package] -name = 'parachain-runtime' -authors = ['Anonymous'] -description = 'A new Cumulus FRAME-based Substrate Runtime, ready for hacking.' -license = 'Unlicense' -version = '3.0.0' -homepage = 'https://substrate.dev' +name = "parachain-template-runtime" +version = "0.1.0" +authors = ["Anonymous"] +description = "A new Cumulus FRAME-based Substrate Runtime, ready for hacking together a parachain." +license = "Unlicense" +homepage = "https://substrate.io" repository = 'https://github.com/substrate-developer-hub/substrate-parachain-template' -edition = '2018' +edition = "2018" + [package.metadata.docs.rs] -targets = ['x86_64-unknown-linux-gnu'] +targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.10" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } [dependencies] -codec = { package = 'parity-scale-codec', version = '2.0.0', default-features = false, features = ['derive']} +codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"]} log = { version = "0.4.14", default-features = false } -serde = { version = '1.0.119', optional = true, features = ['derive'] } +scale-info = { version = "1.0.0", default-features = false, features = ["derive"] } +serde = { version = "1.0.119", optional = true, features = ["derive"] } +smallvec = "1.6.1" # Local Dependencies -template = { package = 'pallet-template', path = '../pallets/template', default-features = false } +pallet-template = { path = "../pallets/template", default-features = false } # Substrate Dependencies ## Substrate Primitive Dependencies -sp-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -sp-block-builder = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -sp-core = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -sp-consensus-aura = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -sp-inherents = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -sp-io = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -sp-offchain = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -sp-runtime = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -sp-session = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -sp-std = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -sp-transaction-pool = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -sp-version = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } ## Substrate FRAME Dependencies -frame-executive = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -frame-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false, optional = true } -frame-support = { git = 'https://github.com/paritytech/substrate', default-features = false, branch = 'polkadot-v0.9.10' } -frame-system = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -frame-system-benchmarking = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false, optional = true } -frame-system-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.11" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.11" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } ## Substrate Pallet Dependencies -pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.10", default-features = false } -pallet-balances = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -pallet-randomness-collective-flip = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -pallet-sudo = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -pallet-timestamp = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -pallet-transaction-payment = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = 'https://github.com/paritytech/substrate', branch = 'polkadot-v0.9.10', default-features = false } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -# Cumulus Dependencies -cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10', default-features = false } -cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10', default-features = false } -cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10', default-features = false } -cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10', default-features = false } -cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10', default-features = false } -cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10', default-features = false } -cumulus-primitives-timestamp = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10', default-features = false } -cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10', default-features = false } -parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.10', default-features = false } +# Cumulus dependencies +cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11', default-features = false } +cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11', default-features = false } +cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11', default-features = false } +cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11', default-features = false } +cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11', default-features = false } +cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11', default-features = false } +cumulus-primitives-timestamp = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11', default-features = false } +cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11', default-features = false } +pallet-collator-selection = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11', default-features = false } +parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11', default-features = false } # Polkadot Dependencies -polkadot-parachain = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.10', default-features = false } -xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.10', default-features = false } -xcm-builder = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.10', default-features = false } -xcm-executor = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.10', default-features = false } -pallet-xcm = { git = 'https://github.com/paritytech/polkadot', branch = 'release-v0.9.10', default-features = false } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.11" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.11" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.11" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.11" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.11" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.11" } [features] -default = ['std'] -runtime-benchmarks = [ - 'sp-runtime/runtime-benchmarks', - 'frame-benchmarking', - 'frame-support/runtime-benchmarks', - 'frame-system-benchmarking', - 'frame-system/runtime-benchmarks', - 'pallet-balances/runtime-benchmarks', - 'pallet-timestamp/runtime-benchmarks', - 'template/runtime-benchmarks', +default = [ + "std", ] std = [ "codec/std", "serde", + "scale-info/std", "log/std", "sp-api/std", - "sp-std/std", - "sp-io/std", + "sp-block-builder/std", + "sp-consensus-aura/std", "sp-core/std", - "sp-runtime/std", - "sp-version/std", + "sp-inherents/std", + "sp-io/std", "sp-offchain/std", + "sp-runtime/std", "sp-session/std", - "sp-block-builder/std", + "sp-std/std", "sp-transaction-pool/std", - "sp-inherents/std", - "frame-support/std", + "sp-version/std", "frame-executive/std", + "frame-support/std", "frame-system/std", + "pallet-aura/std", + "pallet-authorship/std", "pallet-balances/std", + "pallet-collator-selection/std", "pallet-randomness-collective-flip/std", - "pallet-timestamp/std", + "pallet-session/std", "pallet-sudo/std", + "pallet-template/std", + "pallet-timestamp/std", + "pallet-transaction-payment-rpc-runtime-api/std", "pallet-transaction-payment/std", - "parachain-info/std", "cumulus-pallet-aura-ext/std", "cumulus-pallet-parachain-system/std", - "cumulus-pallet-xcmp-queue/std", "cumulus-pallet-xcm/std", + "cumulus-pallet-xcmp-queue/std", "cumulus-primitives-core/std", "cumulus-primitives-timestamp/std", "cumulus-primitives-utility/std", - "xcm/std", + "cumulus-pallet-dmp-queue/std", + "parachain-info/std", + "polkadot-parachain/std", + "polkadot-runtime-common/std", "xcm-builder/std", "xcm-executor/std", - "pallet-aura/std", - "sp-consensus-aura/std", - 'template/std', + "xcm/std", +] + +runtime-benchmarks = [ + "sp-runtime/runtime-benchmarks", + "xcm-builder/runtime-benchmarks", + "frame-benchmarking", + "frame-system-benchmarking", + "frame-support/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-collator-selection/runtime-benchmarks", + "pallet-template/runtime-benchmarks", + "pallet-timestamp/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", ] diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index c9a24ee4..fcb835c5 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -6,6 +6,7 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +use smallvec::smallvec; use sp_api::impl_runtime_apis; use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; use sp_runtime::{ @@ -20,27 +21,32 @@ use sp_std::prelude::*; use sp_version::NativeVersion; use sp_version::RuntimeVersion; -// A few exports that help ease life for downstream crates. -pub use frame_support::{ +use frame_support::{ construct_runtime, match_type, parameter_types, - traits::{Everything, IsInVec, Randomness}, + traits::{Everything, Nothing}, weights::{ - constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND}, - DispatchClass, IdentityFee, Weight, + constants::{BlockExecutionWeight, ExtrinsicBaseWeight, WEIGHT_PER_SECOND}, + DispatchClass, IdentityFee, Weight, WeightToFeeCoefficient, WeightToFeeCoefficients, + WeightToFeePolynomial, }, - StorageValue, + PalletId, +}; +use frame_system::{ + limits::{BlockLength, BlockWeights}, + EnsureRoot, }; -use frame_system::limits::{BlockLength, BlockWeights}; -pub use pallet_balances::Call as BalancesCall; -pub use pallet_timestamp::Call as TimestampCall; pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; +pub use sp_runtime::{MultiAddress, Perbill, Permill}; + #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; -pub use sp_runtime::{MultiAddress, Perbill, Permill}; -// XCM Imports +// Polkadot Imports use pallet_xcm::XcmPassthrough; use polkadot_parachain::primitives::Sibling; +use polkadot_runtime_common::{BlockHashCount, RocksDbWeight, SlowAdjustingFeeUpdate}; + +// XCM Imports use xcm::latest::prelude::*; use xcm_builder::{ AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter, @@ -52,44 +58,59 @@ use xcm_builder::{ use xcm_executor::{Config, XcmExecutor}; /// Import the template pallet. -pub use template; +pub use pallet_template; /// Alias to 512-bit hash when used in the context of a transaction signature on the chain. pub type Signature = MultiSignature; + /// Some way of identifying an account on the chain. We intentionally make it equivalent /// to the public key of our transaction signing scheme. pub type AccountId = <::Signer as IdentifyAccount>::AccountId; + /// Balance of an account. pub type Balance = u128; + /// Index of a transaction in the chain. pub type Index = u32; + /// A hash of some data used by the chain. pub type Hash = sp_core::H256; + /// An index to a block. pub type BlockNumber = u32; + /// The address format for describing accounts. pub type Address = MultiAddress; + /// Block header type as expected by this runtime. pub type Header = generic::Header; + /// Block type as expected by this runtime. pub type Block = generic::Block; + /// A Block signed with a Justification pub type SignedBlock = generic::SignedBlock; + /// BlockId type as expected by this runtime. pub type BlockId = generic::BlockId; + /// The SignedExtension to the basic transaction logic. pub type SignedExtra = ( frame_system::CheckSpecVersion, + frame_system::CheckTxVersion, frame_system::CheckGenesis, frame_system::CheckEra, frame_system::CheckNonce, frame_system::CheckWeight, pallet_transaction_payment::ChargeTransactionPayment, ); + /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; + /// Extrinsic type that has already been checked. pub type CheckedExtrinsic = generic::CheckedExtrinsic; + /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< Runtime, @@ -99,13 +120,56 @@ pub type Executive = frame_executive::Executive< AllPallets, >; +/// Handles converting a weight scalar to a fee value, based on the scale and granularity of the +/// node's balance type. +/// +/// This should typically create a mapping between the following ranges: +/// - `[0, MAXIMUM_BLOCK_WEIGHT]` +/// - `[Balance::min, Balance::max]` +/// +/// Yet, it can be used for any other sort of change to weight-fee. Some examples being: +/// - Setting it to `0` will essentially disable the weight fee. +/// - Setting it to `1` will cause the literal `#[weight = x]` values to be charged. +pub struct WeightToFee; +impl WeightToFeePolynomial for WeightToFee { + type Balance = Balance; + fn polynomial() -> WeightToFeeCoefficients { + // in Rococo, extrinsic base weight (smallest non-zero weight) is mapped to 1 MILLIUNIT: + // in our template, we map to 1/10 of that, or 1/10 MILLIUNIT + let p = MILLIUNIT / 10; + let q = 100 * Balance::from(ExtrinsicBaseWeight::get()); + smallvec![WeightToFeeCoefficient { + degree: 1, + negative: false, + coeff_frac: Perbill::from_rational(p % q, q), + coeff_integer: p / q, + }] + } +} + +/// Opaque types. These are used by the CLI to instantiate machinery that don't need to know +/// the specifics of the runtime. They can then be made to be agnostic over specific formats +/// of data like extrinsics, allowing for them to continue syncing the network through upgrades +/// to even the core data structures. +pub mod opaque { + use super::*; + use sp_runtime::{generic, traits::BlakeTwo256}; + + pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic; + /// Opaque block header type. + pub type Header = generic::Header; + /// Opaque block type. + pub type Block = generic::Block; + /// Opaque block identifier type. + pub type BlockId = generic::BlockId; +} + impl_opaque_keys! { pub struct SessionKeys { pub aura: Aura, } } -/// This runtime version. #[sp_version::runtime_version] pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("template-parachain"), @@ -125,10 +189,10 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { /// Change this to adjust the block time. pub const MILLISECS_PER_BLOCK: u64 = 12000; +// NOTE: Currently it is not possible to change the slot duration after the chain has started. +// Attempting to do so will brick block production. pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK; -pub const EPOCH_DURATION_IN_BLOCKS: u32 = 10 * MINUTES; - // Time is measured by number of blocks. pub const MINUTES: BlockNumber = 60_000 / (MILLISECS_PER_BLOCK as BlockNumber); pub const HOURS: BlockNumber = MINUTES * 60; @@ -139,24 +203,33 @@ pub const UNIT: Balance = 1_000_000_000_000; pub const MILLIUNIT: Balance = 1_000_000_000; pub const MICROUNIT: Balance = 1_000_000; +/// The existential deposit. Set to 1/10 of the Connected Relay Chain. +pub const EXISTENTIAL_DEPOSIT: Balance = MILLIUNIT; + +/// We assume that ~5% of the block weight is consumed by `on_initialize` handlers. This is +/// used to limit the maximal weight of a single extrinsic. +const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(5); + +/// We allow `Normal` extrinsics to fill up the block up to 75%, the rest can be used by +/// `Operational` extrinsics. +const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); + +/// We allow for 0.5 of a second of compute with a 12 second average block time. +const MAXIMUM_BLOCK_WEIGHT: Weight = WEIGHT_PER_SECOND / 2; + /// The version information used to identify this runtime when compiled natively. #[cfg(feature = "std")] pub fn native_version() -> NativeVersion { NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } } -/// We assume that ~10% of the block weight is consumed by `on_initialize` handlers. -/// This is used to limit the maximal weight of a single extrinsic. -const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(10); -/// We allow `Normal` extrinsics to fill up the block up to 75%, the rest can be used -/// by Operational extrinsics. -const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); -/// We allow for 0.5 of a second of compute with a 12 second average block time. -const MAXIMUM_BLOCK_WEIGHT: Weight = WEIGHT_PER_SECOND / 2; - parameter_types! { - pub const BlockHashCount: BlockNumber = 250; pub const Version: RuntimeVersion = VERSION; + + // This part is copied from Substrate's `bin/node/runtime/src/lib.rs`. + // The `RuntimeBlockLength` and `RuntimeBlockWeights` exist here because the + // `DeletionWeightLimit` and `DeletionQueueDepth` depend on those to parameterize + // the lazy contract deletion. pub RuntimeBlockLength: BlockLength = BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() @@ -177,7 +250,7 @@ parameter_types! { }) .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) .build_or_panic(); - pub const SS58Prefix: u8 = 42; + pub const SS58Prefix: u16 = 42; } // Configure FRAME pallets to include in runtime. @@ -209,6 +282,7 @@ impl frame_system::Config for Runtime { type Version = Version; /// Converts a module to an index of this module in the runtime. type PalletInfo = PalletInfo; + /// The data to be stored in an account. type AccountData = pallet_balances::AccountData; /// What to do if a new account is created. type OnNewAccount = (); @@ -243,15 +317,24 @@ impl pallet_timestamp::Config for Runtime { } parameter_types! { - pub const ExistentialDeposit: u128 = 1 * MILLIUNIT; - pub const TransferFee: u128 = 1 * MILLIUNIT; - pub const CreationFee: u128 = 1 * MILLIUNIT; - pub const TransactionByteFee: u128 = 1 * MICROUNIT; + pub const UncleGenerations: u32 = 0; +} + +impl pallet_authorship::Config for Runtime { + type FindAuthor = pallet_session::FindAccountFromAuthorIndex; + type UncleGenerations = UncleGenerations; + type FilterUncle = (); + type EventHandler = (CollatorSelection,); +} + +parameter_types! { + pub const ExistentialDeposit: Balance = EXISTENTIAL_DEPOSIT; pub const MaxLocks: u32 = 50; pub const MaxReserves: u32 = 50; } impl pallet_balances::Config for Runtime { + type MaxLocks = MaxLocks; /// The type for recording an account's balance. type Balance = Balance; /// The ubiquitous event type. @@ -260,23 +343,22 @@ impl pallet_balances::Config for Runtime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = pallet_balances::weights::SubstrateWeight; - type MaxLocks = MaxLocks; type MaxReserves = MaxReserves; type ReserveIdentifier = [u8; 8]; } +parameter_types! { + /// Relay Chain `TransactionByteFee` / 10 + pub const TransactionByteFee: Balance = 10 * MICROUNIT; + pub const OperationalFeeMultiplier: u8 = 5; +} + impl pallet_transaction_payment::Config for Runtime { type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter; type TransactionByteFee = TransactionByteFee; - type WeightToFee = IdentityFee; - type FeeMultiplierUpdate = (); -} - -impl pallet_randomness_collective_flip::Config for Runtime {} - -impl pallet_sudo::Config for Runtime { - type Call = Call; - type Event = Event; + type WeightToFee = WeightToFee; + type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; + type OperationalFeeMultiplier = OperationalFeeMultiplier; } parameter_types! { @@ -288,20 +370,22 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type Event = Event; type OnValidationData = (); type SelfParaId = parachain_info::Pallet; - type OutboundXcmpMessageSource = XcmpQueue; type DmpMessageHandler = DmpQueue; type ReservedDmpWeight = ReservedDmpWeight; + type OutboundXcmpMessageSource = XcmpQueue; type XcmpMessageHandler = XcmpQueue; type ReservedXcmpWeight = ReservedXcmpWeight; } +impl pallet_randomness_collective_flip::Config for Runtime {} + impl parachain_info::Config for Runtime {} impl cumulus_pallet_aura_ext::Config for Runtime {} parameter_types! { pub const RelayLocation: MultiLocation = MultiLocation::parent(); - pub const RelayNetwork: NetworkId = NetworkId::Polkadot; + pub const RelayNetwork: NetworkId = NetworkId::Any; pub RelayChainOrigin: Origin = cumulus_pallet_xcm::Origin::Relay.into(); pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); } @@ -354,24 +438,23 @@ pub type XcmOriginToTransactDispatchOrigin = ( ); parameter_types! { - // One XCM operation is 1_000_000 weight - almost certainly a conservative estimate. - pub UnitWeightCost: Weight = 1_000_000; - // One UNIT buys 1 second of weight. - pub const WeightPrice: (MultiLocation, u128) = (MultiLocation::parent(), UNIT); + // One XCM operation is 1_000_000_000 weight - almost certainly a conservative estimate. + pub UnitWeightCost: Weight = 1_000_000_000; + pub const MaxInstructions: u32 = 100; } match_type! { - pub type ParentOrParentsUnitPlurality: impl Contains = { + pub type ParentOrParentsExecutivePlurality: impl Contains = { MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(Plurality { id: BodyId::Unit, .. }) } + MultiLocation { parents: 1, interior: X1(Plurality { id: BodyId::Executive, .. }) } }; } pub type Barrier = ( TakeWeightCredit, AllowTopLevelPaidExecutionFrom, - AllowUnpaidExecutionFrom, - // ^^^ Parent & its unit plurality gets free execution + AllowUnpaidExecutionFrom, + // ^^^ Parent and its exec plurality get free execution ); pub struct XcmConfig; @@ -385,14 +468,20 @@ impl Config for XcmConfig { type IsTeleporter = (); // Teleporting is disabled. type LocationInverter = LocationInverter; type Barrier = Barrier; - type Weigher = FixedWeightBounds; + type Weigher = FixedWeightBounds; type Trader = UsingComponents, RelayLocation, AccountId, Balances, ()>; - type ResponseHandler = (); // Don't handle responses for now. + type ResponseHandler = PolkadotXcm; + type AssetTrap = PolkadotXcm; + type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; } +parameter_types! { + pub const MaxDownwardMessageWeight: Weight = MAXIMUM_BLOCK_WEIGHT / 10; +} + /// No local origins on this chain are allowed to dispatch XCM sends/executions. -pub type LocalOriginToLocation = (); +pub type LocalOriginToLocation = SignedToAccountId32; /// The means for routing XCM messages which are not for local execution into the right message /// queues. @@ -408,12 +497,20 @@ impl pallet_xcm::Config for Runtime { type SendXcmOrigin = EnsureXcmOrigin; type XcmRouter = XcmRouter; type ExecuteXcmOrigin = EnsureXcmOrigin; - type XcmExecuteFilter = Everything; + type XcmExecuteFilter = Nothing; + // ^ Disable dispatchable execute on the XCM pallet. + // Needs to be `Everything` for local testing. type XcmExecutor = XcmExecutor; type XcmTeleportFilter = Everything; - type XcmReserveTransferFilter = (); - type Weigher = FixedWeightBounds; + type XcmReserveTransferFilter = Nothing; + type Weigher = FixedWeightBounds; type LocationInverter = LocationInverter; + type Origin = Origin; + type Call = Call; + + const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; + // ^ Override for AdvertisedXcmVersion default + type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; } impl cumulus_pallet_xcm::Config for Runtime { @@ -431,16 +528,67 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { impl cumulus_pallet_dmp_queue::Config for Runtime { type Event = Event; type XcmExecutor = XcmExecutor; - type ExecuteOverweightOrigin = frame_system::EnsureRoot; + type ExecuteOverweightOrigin = EnsureRoot; +} + +parameter_types! { + pub const DisabledValidatorsThreshold: Perbill = Perbill::from_percent(33); + pub const Period: u32 = 6 * HOURS; + pub const Offset: u32 = 0; + pub const MaxAuthorities: u32 = 100_000; +} + +impl pallet_session::Config for Runtime { + type Event = Event; + type ValidatorId = ::AccountId; + // we don't have stash and controller, thus we don't need the convert as well. + type ValidatorIdOf = pallet_collator_selection::IdentityCollator; + type ShouldEndSession = pallet_session::PeriodicSessions; + type NextSessionRotation = pallet_session::PeriodicSessions; + type SessionManager = CollatorSelection; + // Essentially just Aura, but lets be pedantic. + type SessionHandler = ::KeyTypeIdProviders; + type Keys = SessionKeys; + type DisabledValidatorsThreshold = DisabledValidatorsThreshold; + type WeightInfo = (); } impl pallet_aura::Config for Runtime { type AuthorityId = AuraId; type DisabledValidators = (); + type MaxAuthorities = MaxAuthorities; +} + +parameter_types! { + pub const PotId: PalletId = PalletId(*b"PotStake"); + pub const MaxCandidates: u32 = 1000; + pub const MinCandidates: u32 = 5; + pub const SessionLength: BlockNumber = 6 * HOURS; + pub const MaxInvulnerables: u32 = 100; + pub const ExecutiveBody: BodyId = BodyId::Executive; +} + +// We allow root only to execute privileged collator selection operations. +pub type CollatorSelectionUpdateOrigin = EnsureRoot; + +impl pallet_collator_selection::Config for Runtime { + type Event = Event; + type Currency = Balances; + type UpdateOrigin = CollatorSelectionUpdateOrigin; + type PotId = PotId; + type MaxCandidates = MaxCandidates; + type MinCandidates = MinCandidates; + type MaxInvulnerables = MaxInvulnerables; + // should be a multiple of session or things will get inconsistent + type KickThreshold = Period; + type ValidatorId = ::AccountId; + type ValidatorIdOf = pallet_collator_selection::IdentityCollator; + type ValidatorRegistration = Session; + type WeightInfo = (); } /// Configure the pallet template in pallets/template. -impl template::Config for Runtime { +impl pallet_template::Config for Runtime { type Event = Event; } @@ -448,36 +596,51 @@ impl template::Config for Runtime { construct_runtime!( pub enum Runtime where Block = Block, - NodeBlock = generic::Block, + NodeBlock = opaque::Block, UncheckedExtrinsic = UncheckedExtrinsic, { - System: frame_system::{Pallet, Call, Storage, Config, Event}, - Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent}, - Sudo: pallet_sudo::{Pallet, Call, Storage, Config, Event}, - RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Storage}, - TransactionPayment: pallet_transaction_payment::{Pallet, Storage}, - - ParachainSystem: cumulus_pallet_parachain_system::{Pallet, Call, Config, Storage, Inherent, Event, ValidateUnsigned} = 20, - - ParachainInfo: parachain_info::{Pallet, Storage, Config} = 21, - - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 30, - - Aura: pallet_aura::{Pallet, Config}, - AuraExt: cumulus_pallet_aura_ext::{Pallet, Config}, + // System support stuff. + System: frame_system::{Pallet, Call, Config, Storage, Event} = 0, + ParachainSystem: cumulus_pallet_parachain_system::{ + Pallet, Call, Config, Storage, Inherent, Event, ValidateUnsigned, + } = 1, + RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Storage} = 2, + Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 3, + ParachainInfo: parachain_info::{Pallet, Storage, Config} = 4, + + // Monetary stuff. + Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, + TransactionPayment: pallet_transaction_payment::{Pallet, Storage} = 11, + + // Collator support. The order of these 4 are important and shall not change. + Authorship: pallet_authorship::{Pallet, Call, Storage} = 20, + CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, + Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, + Aura: pallet_aura::{Pallet, Storage, Config} = 23, + AuraExt: cumulus_pallet_aura_ext::{Pallet, Storage, Config} = 24, // XCM helpers. - XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 50, - PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin} = 51, - CumulusXcm: cumulus_pallet_xcm::{Pallet, Call, Event, Origin} = 52, - DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 53, + XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 30, + PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin} = 31, + CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 32, + DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 33, - //Template - TemplatePallet: template::{Pallet, Call, Storage, Event}, + // Template + TemplatePallet: pallet_template::{Pallet, Call, Storage, Event} = 40, } ); impl_runtime_apis! { + impl sp_consensus_aura::AuraApi for Runtime { + fn slot_duration() -> sp_consensus_aura::SlotDuration { + sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) + } + + fn authorities() -> Vec { + Aura::authorities().into_inner() + } + } + impl sp_api::Core for Runtime { fn version() -> RuntimeVersion { VERSION @@ -494,14 +657,12 @@ impl_runtime_apis! { impl sp_api::Metadata for Runtime { fn metadata() -> OpaqueMetadata { - Runtime::metadata().into() + OpaqueMetadata::new(Runtime::metadata().into()) } } impl sp_block_builder::BlockBuilder for Runtime { - fn apply_extrinsic( - extrinsic: ::Extrinsic, - ) -> ApplyExtrinsicResult { + fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { Executive::apply_extrinsic(extrinsic) } @@ -538,30 +699,14 @@ impl_runtime_apis! { } impl sp_session::SessionKeys for Runtime { - fn decode_session_keys( - encoded: Vec, - ) -> Option, KeyTypeId)>> { - SessionKeys::decode_into_raw_public_keys(&encoded) - } - fn generate_session_keys(seed: Option>) -> Vec { SessionKeys::generate(seed) } - } - impl sp_consensus_aura::AuraApi for Runtime { - fn slot_duration() -> sp_consensus_aura::SlotDuration { - sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) - } - - fn authorities() -> Vec { - Aura::authorities() - } - } - - impl cumulus_primitives_core::CollectCollationInfo for Runtime { - fn collect_collation_info() -> cumulus_primitives_core::CollationInfo { - ParachainSystem::collect_collation_info() + fn decode_session_keys( + encoded: Vec, + ) -> Option, KeyTypeId)>> { + SessionKeys::decode_into_raw_public_keys(&encoded) } } @@ -586,8 +731,36 @@ impl_runtime_apis! { } } + impl cumulus_primitives_core::CollectCollationInfo for Runtime { + fn collect_collation_info() -> cumulus_primitives_core::CollationInfo { + ParachainSystem::collect_collation_info() + } + } + + #[cfg(feature = "runtime-benchmarks")] impl frame_benchmarking::Benchmark for Runtime { + fn benchmark_metadata(extra: bool) -> ( + Vec, + Vec, + ) { + use frame_benchmarking::{list_benchmark, Benchmarking, BenchmarkList}; + use frame_support::traits::StorageInfoTrait; + use frame_system_benchmarking::Pallet as SystemBench; + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + + let mut list = Vec::::new(); + + list_benchmark!(list, extra, frame_system, SystemBench::); + list_benchmark!(list, extra, pallet_balances, Balances); + list_benchmark!(list, extra, pallet_timestamp, Timestamp); + list_benchmark!(list, extra, pallet_collator_selection, CollatorSelection); + + let storage_info = AllPalletsWithSystem::storage_info(); + + return (list, storage_info) + } + fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig ) -> Result, sp_runtime::RuntimeString> { @@ -596,6 +769,9 @@ impl_runtime_apis! { use frame_system_benchmarking::Pallet as SystemBench; impl frame_system_benchmarking::Config for Runtime {} + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + impl cumulus_pallet_session_benchmarking::Config for Runtime {} + let whitelist: Vec = vec![ // Block Number hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), @@ -614,7 +790,10 @@ impl_runtime_apis! { add_benchmark!(params, batches, frame_system, SystemBench::); add_benchmark!(params, batches, pallet_balances, Balances); + add_benchmark!(params, batches, pallet_session, SessionBench::); add_benchmark!(params, batches, pallet_timestamp, Timestamp); + add_benchmark!(params, batches, pallet_collator_selection, CollatorSelection); + add_benchmark!(params, batches, pallet_session, Session); if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) } Ok(batches) @@ -641,12 +820,12 @@ impl cumulus_pallet_parachain_system::CheckInherents for CheckInherents { .create_inherent_data() .expect("Could not create the timestamp inherent data"); - inherent_data.check_extrinsics(&block) + inherent_data.check_extrinsics(block) } } -cumulus_pallet_parachain_system::register_validate_block!( +cumulus_pallet_parachain_system::register_validate_block! { Runtime = Runtime, BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, CheckInherents = CheckInherents, -); +} From eb9d228e332260fe0e3e1a8319764f33945a77b5 Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Thu, 11 Nov 2021 12:02:31 -0700 Subject: [PATCH 42/91] Update to `polkadot-v0.9.12` (#82) * Port diff from upstream * rm various superfluous files, scripts * DisabledValidatorsThreshold removed * Remove RandomnessCollectiveFlip * Remove CLI para_id selection, default 1000 --- Cargo.lock | 1078 ++++++++++++-------------- README.md | 363 +-------- docs/assets/ss01.png | Bin 91040 -> 0 bytes node/Cargo.toml | 94 +-- node/src/chain_spec.rs | 12 +- node/src/cli.rs | 10 +- node/src/command.rs | 40 +- pallets/template/Cargo.toml | 12 +- pallets/template/src/benchmarking.rs | 2 +- pallets/template/src/lib.rs | 10 +- runtime/Cargo.toml | 88 +-- runtime/src/lib.rs | 9 +- scripts/init.sh | 12 - 13 files changed, 641 insertions(+), 1089 deletions(-) delete mode 100644 docs/assets/ss01.png delete mode 100755 scripts/init.sh diff --git a/Cargo.lock b/Cargo.lock index 8515e6fd..e6c4f2c2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -18,7 +18,16 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e61f2b7f93d2c7d2b08263acaa4a363b3e276806c68af6134c44f523bf1aacd" dependencies = [ - "gimli", + "gimli 0.25.0", +] + +[[package]] +name = "addr2line" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" +dependencies = [ + "gimli 0.26.1", ] [[package]] @@ -108,9 +117,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.44" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61604a8f862e1d5c3229fdd78f8b02c68dcf73a4c4b05fd636d12240aaa242c1" +checksum = "ee10e43ae4a853c0a3591d4e2ada1719e553be18199d9da9d4a83f5927c2f5c7" [[package]] name = "approx" @@ -144,9 +153,9 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "arrayvec" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4dc07131ffa69b8072d35f5007352af944213cde02545e2103680baed38fcd" +checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" [[package]] name = "asn1_der" @@ -250,9 +259,9 @@ dependencies = [ [[package]] name = "async-process" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b21b63ab5a0db0369deb913540af2892750e42d949faacc7a61495ac418a1692" +checksum = "83137067e3a2a6a06d67168e49e68a0957d215410473a740cea95a2425c0b7c6" dependencies = [ "async-io", "blocking", @@ -353,9 +362,9 @@ dependencies = [ [[package]] name = "atomic" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3410529e8288c463bedb5930f82833bc0c90e5d2fe639a56582a4d09220b281" +checksum = "b88d82667eca772c4aa12f0f1348b3ae643424c8876448f3f7bd5787032e234c" dependencies = [ "autocfg", ] @@ -385,16 +394,16 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "backtrace" -version = "0.3.61" +version = "0.3.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7a905d892734eea339e896738c14b9afce22b5318f64b951e70bf3844419b01" +checksum = "321629d8ba6513061f26707241fa9bc89524ff1cd7a915a97ef0c62c666ce1b6" dependencies = [ - "addr2line", + "addr2line 0.17.0", "cc", "cfg-if 1.0.0", "libc", "miniz_oxide", - "object", + "object 0.27.1", "rustc-demangle", ] @@ -419,9 +428,9 @@ checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" [[package]] name = "base58" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" +checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" [[package]] name = "base64" @@ -447,7 +456,7 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "beefy-primitives", "fnv", @@ -475,7 +484,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -495,12 +504,12 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "parity-scale-codec", "scale-info", @@ -666,9 +675,9 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" [[package]] name = "blocking" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e170dbede1f740736619b776d7251cb1b9095c435c34d8ca9f57fcd2f335e9" +checksum = "046e47d4b2d391b1f6f8b407b1deb8dee56c1852ccd868becf2710f601b5f427" dependencies = [ "async-channel", "async-task", @@ -797,9 +806,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.71" +version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedd" +checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee" dependencies = [ "jobserver", ] @@ -900,9 +909,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.2.2" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10612c0ec0e0a1ff0e97980647cb058a6e7aedb913d01d009c406b8b7d0b26ee" +checksum = "fa66045b9cb23c2e9c1520732030608b02ee07e5cfaa5a521ec15ded7fa24c90" dependencies = [ "glob", "libc", @@ -999,36 +1008,35 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.76.0" +version = "0.77.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e6bea67967505247f54fa2c85cf4f6e0e31c4e5692c9b70e4ae58e339067333" +checksum = "15013642ddda44eebcf61365b2052a23fd8b7314f90ba44aa059ec02643c5139" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.76.0" +version = "0.77.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48194035d2752bdd5bdae429e3ab88676e95f52a2b1355a5d4e809f9e39b1d74" +checksum = "298f2a7ed5fdcb062d8e78b7496b0f4b95265d20245f2d0ca88f846dd192a3a3" dependencies = [ "cranelift-bforest", "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-entity", - "gimli", + "gimli 0.25.0", "log", "regalloc", - "serde", "smallvec", "target-lexicon", ] [[package]] name = "cranelift-codegen-meta" -version = "0.76.0" +version = "0.77.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976efb22fcab4f2cd6bd4e9913764616a54d895c1a23530128d04e03633c555f" +checksum = "5cf504261ac62dfaf4ffb3f41d88fd885e81aba947c1241275043885bc5f0bac" dependencies = [ "cranelift-codegen-shared", "cranelift-entity", @@ -1036,27 +1044,24 @@ dependencies = [ [[package]] name = "cranelift-codegen-shared" -version = "0.76.0" +version = "0.77.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dabb5fe66e04d4652e434195b45ae65b5c8172d520247b8f66d8df42b2b45dc" -dependencies = [ - "serde", -] +checksum = "1cd2a72db4301dbe7e5a4499035eedc1e82720009fb60603e20504d8691fa9cd" [[package]] name = "cranelift-entity" -version = "0.76.0" +version = "0.77.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3329733e4d4b8e91c809efcaa4faee80bf66f20164e3dd16d707346bd3494799" +checksum = "48868faa07cacf948dc4a1773648813c0e453ff9467e800ff10f6a78c021b546" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.76.0" +version = "0.77.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279afcc0d3e651b773f94837c3d581177b348c8d69e928104b2e9fccb226f921" +checksum = "351c9d13b4ecd1a536215ec2fd1c3ee9ee8bc31af172abf1e45ed0adb7a931df" dependencies = [ "cranelift-codegen", "log", @@ -1066,9 +1071,9 @@ dependencies = [ [[package]] name = "cranelift-native" -version = "0.76.0" +version = "0.77.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c04d1fe6a5abb5bb0edc78baa8ef238370fb8e389cc88b6d153f7c3e9680425" +checksum = "6df8b556663d7611b137b24db7f6c8d9a8a27d7f29c7ea7835795152c94c1b75" dependencies = [ "cranelift-codegen", "libc", @@ -1077,19 +1082,18 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.76.0" +version = "0.77.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0d260ad44f6fd2c91f7f5097191a2a9e3edcbb36df1fb787b600dad5ea148ec" +checksum = "7a69816d90db694fa79aa39b89dda7208a4ac74b6f2b8f3c4da26ee1c8bdfc5e" dependencies = [ "cranelift-codegen", "cranelift-entity", "cranelift-frontend", "itertools", "log", - "serde", "smallvec", - "thiserror", "wasmparser", + "wasmtime-types", ] [[package]] @@ -1213,7 +1217,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" dependencies = [ "sc-cli", "sc-service", @@ -1223,7 +1227,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1246,7 +1250,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1276,7 +1280,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" dependencies = [ "async-trait", "dyn-clone", @@ -1296,7 +1300,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" dependencies = [ "derive_more", "futures 0.3.17", @@ -1319,7 +1323,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" dependencies = [ "cumulus-primitives-core", "futures 0.3.17", @@ -1342,7 +1346,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-common", @@ -1371,7 +1375,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" dependencies = [ "frame-executive", "frame-support", @@ -1389,7 +1393,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1407,7 +1411,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1436,7 +1440,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -1447,7 +1451,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1464,7 +1468,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1482,7 +1486,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1499,7 +1503,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1521,7 +1525,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" dependencies = [ "cumulus-primitives-core", "sp-inherents", @@ -1532,7 +1536,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1549,7 +1553,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1631,7 +1635,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "rustc_version 0.3.3", + "rustc_version", "syn", ] @@ -1841,20 +1845,11 @@ version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68b91989ae21441195d7d9b9993a2f9295c7e1a8c96255d8b729accddc124797" -[[package]] -name = "erased-serde" -version = "0.3.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3de9ad4541d99dc22b59134e7ff8dc3d6c988c89ecd7324bf10a8362b07a2afa" -dependencies = [ - "serde", -] - [[package]] name = "errno" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa68f2fb9cae9d37c9b2b3584aba698a2e97f72d7aef7b9f7aa71d8b54ce46fe" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" dependencies = [ "errno-dragonfly", "libc", @@ -2009,7 +2004,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "parity-scale-codec", ] @@ -2027,7 +2022,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -2047,7 +2042,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "Inflector", "chrono", @@ -2073,7 +2068,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -2087,7 +2082,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -2102,9 +2097,9 @@ dependencies = [ [[package]] name = "frame-metadata" -version = "14.0.0" +version = "14.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96616f82e069102b95a72c87de4c84d2f87ef7f0f20630e78ce3824436483110" +checksum = "37ed5e5c346de62ca5c184b4325a6600d1eaca210666e4606fe4e449574978d0" dependencies = [ "cfg-if 1.0.0", "parity-scale-codec", @@ -2115,7 +2110,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "bitflags", "frame-metadata", @@ -2142,7 +2137,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2154,7 +2149,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.1.0", @@ -2166,7 +2161,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "proc-macro2", "quote", @@ -2176,7 +2171,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "log", @@ -2193,7 +2188,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-benchmarking", "frame-support", @@ -2208,7 +2203,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "parity-scale-codec", "sp-api", @@ -2217,7 +2212,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "sp-api", @@ -2479,6 +2474,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "gimli" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" + [[package]] name = "glob" version = "0.3.0" @@ -2640,9 +2641,9 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "399c583b2979440c60be0821a6199eca73bc3c8dcd9d070d75ac726e2c6186e5" +checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" dependencies = [ "bytes 1.1.0", "http", @@ -2678,9 +2679,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.13" +version = "0.14.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15d1cfb9e4f68655fa04c01f59edb405b6074a0f7118ea881e5026e4a1cd8593" +checksum = "2b91bb1f221b6ea1f1e4371216b70f40748774c2fb5971b450c07773fb92d26b" dependencies = [ "bytes 1.1.0", "futures-channel", @@ -2740,9 +2741,9 @@ dependencies = [ [[package]] name = "if-addrs" -version = "0.6.6" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9a83ec4af652890ac713ffd8dc859e650420a5ef47f7b9be29b6664ab50fbc8" +checksum = "2273e421f7c4f0fc99e1934fe4776f59d8df2972f4199d703fc0da9f2a9f73de" dependencies = [ "if-addrs-sys", "libc", @@ -2795,9 +2796,9 @@ dependencies = [ [[package]] name = "impl-serde" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b47ca4d2b6931707a55fce5cf66aff80e2178c8b63bbb4ecb5695cbc870ddf6f" +checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" dependencies = [ "serde", ] @@ -3190,9 +3191,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.104" +version = "0.2.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b2f96d100e1cf1929e7719b7edb3b90ab5298072638fccd77be9ce942ecdfce" +checksum = "fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219" [[package]] name = "libloading" @@ -3288,7 +3289,7 @@ dependencies = [ "sha2 0.9.8", "smallvec", "thiserror", - "unsigned-varint 0.7.0", + "unsigned-varint 0.7.1", "void", "zeroize", ] @@ -3358,7 +3359,7 @@ dependencies = [ "regex", "sha2 0.9.8", "smallvec", - "unsigned-varint 0.7.0", + "unsigned-varint 0.7.1", "wasm-timer", ] @@ -3399,7 +3400,7 @@ dependencies = [ "sha2 0.9.8", "smallvec", "uint", - "unsigned-varint 0.7.0", + "unsigned-varint 0.7.1", "void", "wasm-timer", ] @@ -3440,7 +3441,7 @@ dependencies = [ "parking_lot 0.11.2", "rand 0.7.3", "smallvec", - "unsigned-varint 0.7.0", + "unsigned-varint 0.7.1", ] [[package]] @@ -3493,7 +3494,7 @@ dependencies = [ "log", "prost", "prost-build", - "unsigned-varint 0.7.0", + "unsigned-varint 0.7.1", "void", ] @@ -3529,7 +3530,7 @@ dependencies = [ "prost-build", "rand 0.7.3", "smallvec", - "unsigned-varint 0.7.0", + "unsigned-varint 0.7.1", "void", "wasm-timer", ] @@ -3546,11 +3547,11 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "lru", + "lru 0.6.6", "minicbor", "rand 0.7.3", "smallvec", - "unsigned-varint 0.7.0", + "unsigned-varint 0.7.1", "wasm-timer", ] @@ -3852,6 +3853,15 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "lru" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c748cfe47cb8da225c37595b3108bea1c198c84aaae8ea0ba76d01dda9fc803" +dependencies = [ + "hashbrown", +] + [[package]] name = "lru-cache" version = "0.1.2" @@ -3967,7 +3977,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "beeb98b3d1ed2c0054bd81b5ba949a0243c3ccad751d45ea898fa8059fa2860a" dependencies = [ - "lru", + "lru 0.6.6", ] [[package]] @@ -3990,8 +4000,8 @@ dependencies = [ [[package]] name = "metered-channel" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "derive_more", "futures 0.3.17", @@ -4002,9 +4012,9 @@ dependencies = [ [[package]] name = "mick-jaeger" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c023c3f16109e7f33aa451f773fd61070e265b4977d0b6e344a51049296dd7df" +checksum = "eaa77fad8461bb1e0d01be11299e24c6e544007715ed442bfec29f165dc487ae" dependencies = [ "futures 0.3.17", "rand 0.7.3", @@ -4126,7 +4136,7 @@ dependencies = [ "percent-encoding 2.1.0", "serde", "static_assertions", - "unsigned-varint 0.7.0", + "unsigned-varint 0.7.1", "url 2.2.2", ] @@ -4168,7 +4178,7 @@ dependencies = [ "generic-array 0.14.4", "multihash-derive", "sha2 0.9.8", - "unsigned-varint 0.7.0", + "unsigned-varint 0.7.1", ] [[package]] @@ -4202,7 +4212,7 @@ dependencies = [ "log", "pin-project 1.0.8", "smallvec", - "unsigned-varint 0.7.0", + "unsigned-varint 0.7.1", ] [[package]] @@ -4371,6 +4381,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "object" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67ac1d3f9a1d3616fd9a60c8d74296f22406a238b6a72f5cc1e6f314df4ffbf9" +dependencies = [ + "memchr", +] + [[package]] name = "once_cell" version = "1.8.0" @@ -4416,7 +4435,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -4432,7 +4451,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -4448,7 +4467,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -4463,7 +4482,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-benchmarking", "frame-support", @@ -4487,7 +4506,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4502,7 +4521,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-benchmarking", "frame-support", @@ -4517,7 +4536,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "beefy-primitives", "frame-support", @@ -4533,7 +4552,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -4558,7 +4577,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -4575,7 +4594,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4584,6 +4603,7 @@ dependencies = [ "pallet-authorship", "pallet-session", "parity-scale-codec", + "rand 0.7.3", "scale-info", "serde", "sp-runtime", @@ -4594,7 +4614,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-benchmarking", "frame-support", @@ -4611,7 +4631,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-benchmarking", "frame-support", @@ -4627,7 +4647,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4647,7 +4667,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -4664,7 +4684,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-benchmarking", "frame-support", @@ -4687,7 +4707,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4703,7 +4723,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -4722,7 +4742,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -4738,7 +4758,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-benchmarking", "frame-support", @@ -4755,7 +4775,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -4773,7 +4793,7 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -4789,7 +4809,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4806,7 +4826,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -4820,7 +4840,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -4834,7 +4854,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -4851,7 +4871,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -4862,24 +4882,10 @@ dependencies = [ "sp-std", ] -[[package]] -name = "pallet-randomness-collective-flip" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" -dependencies = [ - "frame-support", - "frame-system", - "parity-scale-codec", - "safe-mix", - "scale-info", - "sp-runtime", - "sp-std", -] - [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-benchmarking", "frame-support", @@ -4895,7 +4901,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -4916,7 +4922,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4937,7 +4943,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -4948,7 +4954,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -4977,7 +4983,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-benchmarking", "frame-support", @@ -4995,7 +5001,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -5013,7 +5019,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -5030,7 +5036,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5047,7 +5053,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5058,7 +5064,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -5074,7 +5080,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -5089,7 +5095,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-support", "frame-system", @@ -5102,8 +5108,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "frame-support", "frame-system", @@ -5121,7 +5127,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.11#ede4d527c4fc5d84c43216b408a873625488574b" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -5215,7 +5221,6 @@ dependencies = [ "pallet-authorship", "pallet-balances", "pallet-collator-selection", - "pallet-randomness-collective-flip", "pallet-session", "pallet-sudo", "pallet-template", @@ -5250,9 +5255,9 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.3.2" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91b679c6acc14fac74382942e2b73bea441686a33430b951ea03b5aeb6a7f254" +checksum = "7cb5195cb862b13055cf7f7a76c55073dc73885c2a61511e322b8c1666be7332" dependencies = [ "blake2-rfc", "crc32fast", @@ -5273,7 +5278,7 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" dependencies = [ - "arrayvec 0.7.1", + "arrayvec 0.7.2", "bitvec 0.20.4", "byte-slice-cast", "impl-trait-for-tuples", @@ -5323,7 +5328,7 @@ dependencies = [ "ethereum-types", "hashbrown", "impl-trait-for-tuples", - "lru", + "lru 0.6.6", "parity-util-mem-derive", "parking_lot 0.11.2", "primitive-types", @@ -5359,9 +5364,9 @@ checksum = "be5e13c266502aadf83426d87d81a0f5d1ef45b8027f5a471c360abfe4bfae92" [[package]] name = "parity-ws" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0ab8a461779bd022964cae2b4989fa9c99deb270bec162da2125ec03c09fcaa" +checksum = "5983d3929ad50f12c3eb9a6743f19d691866ecd44da74c0a3308c3f8a56df0c6" dependencies = [ "byteorder", "bytes 0.4.12", @@ -5432,9 +5437,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" +checksum = "0744126afe1a6dd7f394cb50a716dbe086cb06e255e53d8d0185d82828358fb5" [[package]] name = "pbkdf2" @@ -5585,9 +5590,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.20" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c9b1041b4387893b91ee6746cddfc28516aff326a3519fb2adf820932c5e6cb" +checksum = "12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1f" [[package]] name = "platforms" @@ -5597,8 +5602,8 @@ checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325" [[package]] name = "polkadot-approval-distribution" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "futures 0.3.17", "polkadot-node-network-protocol", @@ -5611,8 +5616,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "futures 0.3.17", "polkadot-node-network-protocol", @@ -5624,12 +5629,12 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "derive_more", "futures 0.3.17", - "lru", + "lru 0.7.0", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -5646,11 +5651,11 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "futures 0.3.17", - "lru", + "lru 0.7.0", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -5666,8 +5671,8 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "frame-benchmarking-cli", "futures 0.3.17", @@ -5686,8 +5691,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -5716,8 +5721,8 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "always-assert", "derive_more", @@ -5737,8 +5742,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -5750,12 +5755,12 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "derive_more", "futures 0.3.17", - "lru", + "lru 0.7.0", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -5772,8 +5777,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -5786,8 +5791,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "futures 0.3.17", "futures-timer 3.0.2", @@ -5806,8 +5811,8 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "async-trait", "futures 0.3.17", @@ -5825,8 +5830,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "futures 0.3.17", "parity-scale-codec", @@ -5843,15 +5848,15 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "bitvec 0.20.4", "derive_more", "futures 0.3.17", "futures-timer 3.0.2", "kvdb", - "lru", + "lru 0.7.0", "merlin", "parity-scale-codec", "polkadot-node-jaeger", @@ -5871,8 +5876,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "bitvec 0.20.4", "futures 0.3.17", @@ -5891,8 +5896,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "bitvec 0.20.4", "futures 0.3.17", @@ -5909,8 +5914,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "futures 0.3.17", "polkadot-node-subsystem", @@ -5924,8 +5929,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "async-trait", "futures 0.3.17", @@ -5942,8 +5947,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "futures 0.3.17", "polkadot-node-subsystem", @@ -5957,8 +5962,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "futures 0.3.17", "futures-timer 3.0.2", @@ -5974,8 +5979,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "bitvec 0.20.4", "derive_more", @@ -5993,8 +5998,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-participation" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "futures 0.3.17", "polkadot-node-primitives", @@ -6006,8 +6011,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "async-trait", "futures 0.3.17", @@ -6023,8 +6028,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "bitvec 0.20.4", "futures 0.3.17", @@ -6038,8 +6043,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "always-assert", "assert_matches", @@ -6069,8 +6074,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "futures 0.3.17", "memory-lru", @@ -6087,8 +6092,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "async-std", "lazy_static", @@ -6105,8 +6110,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "futures 0.3.17", "futures-timer 3.0.2", @@ -6116,8 +6121,8 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "async-trait", "derive_more", @@ -6128,14 +6133,14 @@ dependencies = [ "polkadot-primitives", "sc-authority-discovery", "sc-network", - "strum 0.21.0", + "strum 0.22.0", "thiserror", ] [[package]] name = "polkadot-node-primitives" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "bounded-vec", "futures 0.3.17", @@ -6156,8 +6161,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -6166,8 +6171,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "derive_more", "futures 0.3.17", @@ -6185,14 +6190,14 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "async-trait", "derive_more", "futures 0.3.17", "itertools", - "lru", + "lru 0.7.0", "metered-channel", "parity-scale-codec", "pin-project 1.0.8", @@ -6212,12 +6217,12 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "futures 0.3.17", "futures-timer 3.0.2", - "lru", + "lru 0.7.0", "parity-util-mem", "parking_lot 0.11.2", "polkadot-node-metrics", @@ -6233,8 +6238,8 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "async-trait", "futures 0.3.17", @@ -6250,8 +6255,8 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen-proc-macro" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -6261,8 +6266,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "derive_more", "frame-support", @@ -6278,8 +6283,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "bitvec 0.20.4", "frame-system", @@ -6308,8 +6313,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -6339,8 +6344,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "beefy-primitives", "bitvec 0.20.4", @@ -6411,8 +6416,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "beefy-primitives", "bitvec 0.20.4", @@ -6456,8 +6461,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "bitflags", "bitvec 0.20.4", @@ -6494,8 +6499,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "async-trait", "beefy-gadget", @@ -6505,7 +6510,7 @@ dependencies = [ "hex-literal", "kvdb", "kvdb-rocksdb", - "lru", + "lru 0.7.0", "pallet-babe", "pallet-im-online", "pallet-mmr-primitives", @@ -6589,8 +6594,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "arrayvec 0.5.2", "derive_more", @@ -6610,8 +6615,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -6620,8 +6625,8 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "beefy-primitives", "bitvec 0.20.4", @@ -6681,8 +6686,8 @@ dependencies = [ [[package]] name = "polkadot-test-service" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "frame-benchmarking", "frame-system", @@ -6734,9 +6739,9 @@ dependencies = [ [[package]] name = "polling" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92341d779fa34ea8437ef4d82d440d5e1ce3f3ff7f824aa64424cd481f9a1f25" +checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259" dependencies = [ "cfg-if 1.0.0", "libc", @@ -6770,9 +6775,9 @@ dependencies = [ [[package]] name = "ppv-lite86" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ca011bd0129ff4ae15cd04c4eef202cadf6c51c21e47aba319b4e0501db741" +checksum = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba" [[package]] name = "primitive-types" @@ -6871,24 +6876,24 @@ checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" [[package]] name = "proc-macro2" -version = "1.0.30" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc3358ebc67bc8b7fa0c007f945b0b18226f78437d61bec735a9eb96b61ee70" +checksum = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43" dependencies = [ "unicode-xid", ] [[package]] name = "prometheus" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8425533e7122f0c3cc7a37e6244b16ad3a2cc32ae7ac6276e2a75da0d9c200d" +checksum = "5986aa8d62380092d2f50f8b1cdba9cb9b6731ffd4b25b51fd126b6c3e05b99c" dependencies = [ "cfg-if 1.0.0", "fnv", "lazy_static", + "memchr", "parking_lot 0.11.2", - "regex", "thiserror", ] @@ -7205,7 +7210,6 @@ checksum = "571f7f397d61c4755285cd37853fe8e03271c243424a907415909379659381c5" dependencies = [ "log", "rustc-hash", - "serde", "smallvec", ] @@ -7250,7 +7254,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "env_logger 0.9.0", "jsonrpsee-proc-macros", @@ -7353,15 +7357,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" -[[package]] -name = "rustc_version" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -dependencies = [ - "semver 0.9.0", -] - [[package]] name = "rustc_version" version = "0.3.3" @@ -7413,15 +7408,6 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" -[[package]] -name = "safe-mix" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d3d055a2582e6b00ed7a31c1524040aa391092bf636328350813f3a0605215c" -dependencies = [ - "rustc_version 0.2.3", -] - [[package]] name = "salsa20" version = "0.8.1" @@ -7443,7 +7429,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "log", "sp-core", @@ -7454,7 +7440,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "async-trait", "derive_more", @@ -7481,7 +7467,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "futures 0.3.17", "futures-timer 3.0.2", @@ -7504,7 +7490,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7520,7 +7506,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -7536,7 +7522,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -7547,7 +7533,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "chrono", "fdlimit", @@ -7585,7 +7571,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "fnv", "futures 0.3.17", @@ -7613,7 +7599,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "hash-db", "kvdb", @@ -7638,7 +7624,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "async-trait", "futures 0.3.17", @@ -7662,7 +7648,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "async-trait", "derive_more", @@ -7691,7 +7677,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "async-trait", "derive_more", @@ -7734,7 +7720,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "derive_more", "futures 0.3.17", @@ -7758,7 +7744,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7771,7 +7757,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "async-trait", "futures 0.3.17", @@ -7797,7 +7783,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "sc-client-api", "sp-authorship", @@ -7808,7 +7794,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "lazy_static", "libsecp256k1 0.6.0", @@ -7834,7 +7820,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "derive_more", "environmental", @@ -7852,7 +7838,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "log", "parity-scale-codec", @@ -7868,7 +7854,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "cfg-if 1.0.0", "libc", @@ -7886,7 +7872,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "async-trait", "derive_more", @@ -7923,7 +7909,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "derive_more", "finality-grandpa", @@ -7947,7 +7933,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "ansi_term 0.12.1", "futures 0.3.17", @@ -7964,7 +7950,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "async-trait", "derive_more", @@ -7979,7 +7965,7 @@ dependencies = [ [[package]] name = "sc-light" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "hash-db", "parity-scale-codec", @@ -7997,7 +7983,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "async-std", "async-trait", @@ -8017,7 +8003,7 @@ dependencies = [ "linked-hash-map", "linked_hash_set", "log", - "lru", + "lru 0.6.6", "parity-scale-codec", "parking_lot 0.11.2", "pin-project 1.0.8", @@ -8048,13 +8034,13 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "futures 0.3.17", "futures-timer 3.0.2", "libp2p", "log", - "lru", + "lru 0.6.6", "sc-network", "sp-runtime", "substrate-prometheus-endpoint", @@ -8064,7 +8050,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "bytes 1.1.0", "fnv", @@ -8091,7 +8077,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "futures 0.3.17", "libp2p", @@ -8104,7 +8090,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8113,7 +8099,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "futures 0.3.17", "hash-db", @@ -8144,7 +8130,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "futures 0.3.17", "jsonrpc-core", @@ -8169,7 +8155,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "futures 0.3.17", "jsonrpc-core", @@ -8186,7 +8172,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "async-trait", "directories", @@ -8251,7 +8237,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "log", "parity-scale-codec", @@ -8265,7 +8251,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -8287,7 +8273,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "chrono", "futures 0.3.17", @@ -8305,10 +8291,11 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "ansi_term 0.12.1", "atty", + "chrono", "lazy_static", "log", "once_cell", @@ -8334,7 +8321,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -8345,7 +8332,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "futures 0.3.17", "intervalier", @@ -8372,7 +8359,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "derive_more", "futures 0.3.17", @@ -8386,7 +8373,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "futures 0.3.17", "futures-timer 3.0.2", @@ -8460,26 +8447,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" -[[package]] -name = "scroll" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda28d4b4830b807a8b43f7b0e6b5df875311b3e7621d84577188c175b6ec1ec" -dependencies = [ - "scroll_derive", -] - -[[package]] -name = "scroll_derive" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "sct" version = "0.6.1" @@ -8492,9 +8459,9 @@ dependencies = [ [[package]] name = "secrecy" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0673d6a6449f5e7d12a1caf424fd9363e2af3a4953023ed455e3c4beef4597c0" +checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" dependencies = [ "zeroize", ] @@ -8531,15 +8498,6 @@ dependencies = [ "semver-parser 0.7.0", ] -[[package]] -name = "semver" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser 0.7.0", -] - [[package]] name = "semver" version = "0.11.0" @@ -8587,9 +8545,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f690853975602e1bfe1ccbf50504d67174e3bcf340f23b5ea9992e0587a52d8" +checksum = "e466864e431129c7e0d3476b92f20458e5879919a0596c6472738d9fa2d342f8" dependencies = [ "itoa", "ryu", @@ -8694,9 +8652,9 @@ dependencies = [ [[package]] name = "signature" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19772be3c4dd2ceaacf03cb41d5885f2a02c4d8804884918e3a258480803335" +checksum = "02658e48d89f2bec991f9a78e69cfa4c316f8d6a6c4ec12fae1aeb263d486788" [[package]] name = "simba" @@ -8716,19 +8674,10 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" -[[package]] -name = "slog" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06" -dependencies = [ - "erased-serde", -] - [[package]] name = "slot-range-helper" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "enumn", "parity-scale-codec", @@ -8770,7 +8719,7 @@ dependencies = [ "rand 0.8.4", "rand_core 0.6.3", "ring", - "rustc_version 0.3.3", + "rustc_version", "sha2 0.9.8", "subtle", "x25519-dalek", @@ -8831,7 +8780,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "hash-db", "log", @@ -8848,7 +8797,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "blake2-rfc", "proc-macro-crate 1.1.0", @@ -8860,7 +8809,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "parity-scale-codec", "scale-info", @@ -8873,7 +8822,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "integer-sqrt", "num-traits", @@ -8888,7 +8837,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "parity-scale-codec", "scale-info", @@ -8901,7 +8850,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "async-trait", "parity-scale-codec", @@ -8913,7 +8862,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "parity-scale-codec", "sp-api", @@ -8925,11 +8874,11 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "futures 0.3.17", "log", - "lru", + "lru 0.6.6", "parity-scale-codec", "parking_lot 0.11.2", "sp-api", @@ -8943,7 +8892,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "async-trait", "futures 0.3.17", @@ -8962,7 +8911,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "async-trait", "parity-scale-codec", @@ -8980,7 +8929,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "async-trait", "merlin", @@ -9003,7 +8952,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "parity-scale-codec", "scale-info", @@ -9014,7 +8963,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -9026,7 +8975,7 @@ dependencies = [ [[package]] name = "sp-core" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "base58", "blake2-rfc", @@ -9059,6 +9008,7 @@ dependencies = [ "sp-runtime-interface", "sp-std", "sp-storage", + "ss58-registry", "substrate-bip39", "thiserror", "tiny-bip39", @@ -9071,7 +9021,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "kvdb", "parking_lot 0.11.2", @@ -9080,7 +9030,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "proc-macro2", "quote", @@ -9090,7 +9040,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "environmental", "parity-scale-codec", @@ -9101,7 +9051,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "finality-grandpa", "log", @@ -9119,7 +9069,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9133,7 +9083,7 @@ dependencies = [ [[package]] name = "sp-io" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "futures 0.3.17", "hash-db", @@ -9157,7 +9107,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "lazy_static", "sp-core", @@ -9168,7 +9118,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "async-trait", "derive_more", @@ -9185,7 +9135,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "zstd", ] @@ -9193,7 +9143,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "parity-scale-codec", "scale-info", @@ -9208,7 +9158,7 @@ dependencies = [ [[package]] name = "sp-npos-elections-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -9219,7 +9169,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "sp-api", "sp-core", @@ -9229,7 +9179,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "backtrace", ] @@ -9237,7 +9187,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "rustc-hash", "serde", @@ -9247,7 +9197,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "either", "hash256-std-hasher", @@ -9269,7 +9219,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9286,7 +9236,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "Inflector", "proc-macro-crate 1.1.0", @@ -9298,7 +9248,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "serde", "serde_json", @@ -9307,7 +9257,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "parity-scale-codec", "scale-info", @@ -9321,7 +9271,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "parity-scale-codec", "scale-info", @@ -9332,7 +9282,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "hash-db", "log", @@ -9355,12 +9305,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" [[package]] name = "sp-storage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9373,7 +9323,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "log", "sp-core", @@ -9386,7 +9336,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "async-trait", "futures-timer 3.0.2", @@ -9402,15 +9352,9 @@ dependencies = [ [[package]] name = "sp-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ - "erased-serde", - "log", "parity-scale-codec", - "parking_lot 0.10.2", - "serde", - "serde_json", - "slog", "sp-std", "tracing", "tracing-core", @@ -9420,7 +9364,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "sp-api", "sp-runtime", @@ -9429,7 +9373,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "async-trait", "log", @@ -9445,7 +9389,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "hash-db", "memory-db", @@ -9460,7 +9404,7 @@ dependencies = [ [[package]] name = "sp-version" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9476,7 +9420,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -9487,7 +9431,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9501,6 +9445,20 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "ss58-registry" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c66cd4c4bb7ee41dc5b0c13d600574ae825d3a02e8f31326b17ac71558f2c836" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "serde", + "serde_json", + "unicode-xid", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -9592,11 +9550,11 @@ dependencies = [ [[package]] name = "strum" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2" +checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" dependencies = [ - "strum_macros 0.21.1", + "strum_macros 0.22.0", ] [[package]] @@ -9613,9 +9571,9 @@ dependencies = [ [[package]] name = "strum_macros" -version = "0.21.1" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec" +checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb" dependencies = [ "heck", "proc-macro2", @@ -9639,7 +9597,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "platforms", ] @@ -9647,7 +9605,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.17", @@ -9669,7 +9627,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "async-std", "derive_more", @@ -9683,7 +9641,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "async-trait", "futures 0.3.17", @@ -9710,7 +9668,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "ansi_term 0.12.1", "build-helper", @@ -9730,9 +9688,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.80" +version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d010a1623fbd906d51d650a9916aaefc05ffa0e4053ff7fe601167f3e715d194" +checksum = "f2afee18b8beb5a596ecb4a2dce128c719b4ba399d34126b9e4396e3f9860966" dependencies = [ "proc-macro2", "quote", @@ -9898,9 +9856,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83b2a3d4d9091d0abd7eba4dc2710b1718583bd4d8992e2190720ea38f391f7" +checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2" dependencies = [ "tinyvec_macros", ] @@ -9913,9 +9871,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2c2416fdedca8443ae44b4527de1ea633af61d8f7169ffa6e72c5b53d24efcc" +checksum = "588b2d10a336da58d877567cd8fb8a14b463e2104910f8132cd054b4b96e29ee" dependencies = [ "autocfg", "bytes 1.1.0", @@ -9932,9 +9890,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2dd85aeaba7b68df939bd357c6afb36c87951be9e80bf9c859f2fc3e9fca0fd" +checksum = "114383b041aa6212c579467afa0075fbbdd0718de036100bc0ba7961d8cb9095" dependencies = [ "proc-macro2", "quote", @@ -9954,9 +9912,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b2f3f698253f03119ac0102beaa64f67a67e08074d03a22d18784104543727f" +checksum = "50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3" dependencies = [ "futures-core", "pin-project-lite 0.2.7", @@ -9965,9 +9923,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d3725d3efa29485e87311c5b699de63cde14b00ed4d256b8318aa30ca452cd" +checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" dependencies = [ "bytes 1.1.0", "futures-core", @@ -10152,7 +10110,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.11#57346f6b24875f8935280dba51fa8ab0a9ba1e39" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" dependencies = [ "jsonrpsee-ws-client", "log", @@ -10280,9 +10238,9 @@ dependencies = [ [[package]] name = "unsigned-varint" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f8d425fafb8cd76bc3f22aace4af471d3156301d7508f2107e98fbeae10bc7f" +checksum = "d86a8dc7f45e4c1b0d30e43038c38f274e77af056aa5f74b93c2cf9eb3c1c836" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.1.0", @@ -10321,9 +10279,9 @@ dependencies = [ [[package]] name = "value-bag" -version = "1.0.0-alpha.7" +version = "1.0.0-alpha.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd320e1520f94261153e96f7534476ad869c14022aee1e59af7c778075d840ae" +checksum = "79923f7731dc61ebfba3633098bf3ac533bbd35ccd8c57e7088d9a5eebe0263f" dependencies = [ "ctor", "version_check", @@ -10510,15 +10468,15 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.79.0" +version = "0.80.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b5894be15a559c85779254700e1d35f02f843b5a69152e5c82c626d9fd66c0e" +checksum = "449167e2832691a1bff24cde28d2804e90e09586a448c8e76984792c44334a6b" [[package]] name = "wasmtime" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bbb8a082a8ef50f7eeb8b82dda9709ef1e68963ea3c94e45581644dd4041835" +checksum = "899b1e5261e3d3420860dacfb952871ace9d7ba9f953b314f67aaf9f8e2a4d89" dependencies = [ "anyhow", "backtrace", @@ -10529,27 +10487,28 @@ dependencies = [ "lazy_static", "libc", "log", + "object 0.26.2", "paste", "psm", + "rayon", "region", "rustc-demangle", "serde", - "smallvec", "target-lexicon", "wasmparser", "wasmtime-cache", + "wasmtime-cranelift", "wasmtime-environ", "wasmtime-jit", - "wasmtime-profiling", "wasmtime-runtime", "winapi 0.3.9", ] [[package]] name = "wasmtime-cache" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d73391579ca7f24573138ef768b73b2aed5f9d542385c64979b65d60d0912399" +checksum = "e2493b81d7a9935f7af15e06beec806f256bc974a90a843685f3d61f2fc97058" dependencies = [ "anyhow", "base64 0.13.0", @@ -10568,29 +10527,19 @@ dependencies = [ [[package]] name = "wasmtime-cranelift" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81c6f5ae9205382345c7cd7454932a906186836999a2161c385e38a15f52e1fe" +checksum = "99706bacdf5143f7f967d417f0437cce83a724cf4518cb1a3ff40e519d793021" dependencies = [ + "anyhow", "cranelift-codegen", "cranelift-entity", "cranelift-frontend", + "cranelift-native", "cranelift-wasm", - "target-lexicon", - "wasmparser", - "wasmtime-environ", -] - -[[package]] -name = "wasmtime-debug" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c69e08f55e12f15f50b1b533bc3626723e7224254a065de6576934c86258c9e8" -dependencies = [ - "anyhow", - "gimli", + "gimli 0.25.0", "more-asserts", - "object", + "object 0.26.2", "target-lexicon", "thiserror", "wasmparser", @@ -10599,94 +10548,55 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "005d93174040af37fb8625f891cd9827afdad314261f7ec4ee61ec497d6e9d3c" +checksum = "ac42cb562a2f98163857605f02581d719a410c5abe93606128c59a10e84de85b" dependencies = [ + "anyhow", "cfg-if 1.0.0", - "cranelift-codegen", "cranelift-entity", - "cranelift-wasm", - "gimli", + "gimli 0.25.0", "indexmap", "log", "more-asserts", + "object 0.26.2", "serde", + "target-lexicon", "thiserror", "wasmparser", + "wasmtime-types", ] [[package]] name = "wasmtime-jit" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0bf1dfb213a35d8f21aefae40e597fe72778a907011ffdff7affb029a02af9a" +checksum = "24f46dd757225f29a419be415ea6fb8558df9b0194f07e3a6a9c99d0e14dd534" dependencies = [ - "addr2line", + "addr2line 0.16.0", "anyhow", + "bincode", "cfg-if 1.0.0", - "cranelift-codegen", - "cranelift-entity", - "cranelift-frontend", - "cranelift-native", - "cranelift-wasm", - "gimli", + "gimli 0.25.0", + "libc", "log", "more-asserts", - "object", - "rayon", + "object 0.26.2", "region", "serde", "target-lexicon", "thiserror", "wasmparser", - "wasmtime-cranelift", - "wasmtime-debug", "wasmtime-environ", - "wasmtime-obj", - "wasmtime-profiling", "wasmtime-runtime", "winapi 0.3.9", ] -[[package]] -name = "wasmtime-obj" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231491878e710c68015228c9f9fc5955fe5c96dbf1485c15f7bed55b622c83c" -dependencies = [ - "anyhow", - "more-asserts", - "object", - "target-lexicon", - "wasmtime-debug", - "wasmtime-environ", -] - -[[package]] -name = "wasmtime-profiling" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21486cfb5255c2069666c1f116f9e949d4e35c9a494f11112fa407879e42198d" -dependencies = [ - "anyhow", - "cfg-if 1.0.0", - "gimli", - "lazy_static", - "libc", - "object", - "scroll", - "serde", - "target-lexicon", - "wasmtime-environ", - "wasmtime-runtime", -] - [[package]] name = "wasmtime-runtime" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7ddfdf32e0a20d81f48be9dacd31612bc61de5a174d1356fef806d300f507de" +checksum = "0122215a44923f395487048cb0a1d60b5b32c73aab15cf9364b798dbaff0996f" dependencies = [ "anyhow", "backtrace", @@ -10706,6 +10616,18 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "wasmtime-types" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9b01caf8a204ef634ebac99700e77ba716d3ebbb68a1abbc2ceb6b16dbec9e4" +dependencies = [ + "cranelift-entity", + "serde", + "thiserror", + "wasmparser", +] + [[package]] name = "web-sys" version = "0.3.55" @@ -10842,8 +10764,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -10855,8 +10777,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "frame-support", "frame-system", @@ -10875,8 +10797,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.11" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +version = "0.9.12" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -10893,7 +10815,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.11#eb9f107e3a04687dcf80111563f2bcea7d5b15d3" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" dependencies = [ "proc-macro2", "quote", @@ -10916,18 +10838,18 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.4.2" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf68b08513768deaa790264a7fac27a58cbf2705cfcdc9448362229217d7e970" +checksum = "d68d9dcec5f9b43a30d38c49f91dfedfaac384cb8f085faca366c26207dd1619" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.2.0" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdff2024a851a322b08f179173ae2ba620445aef1e838f0c196820eade4ae0c7" +checksum = "65f1a51723ec88c66d5d1fe80c841f17f63587d6691901d66be9bec6c3b51f73" dependencies = [ "proc-macro2", "quote", diff --git a/README.md b/README.md index 2ca17bec..6dcc70c5 100644 --- a/README.md +++ b/README.md @@ -1,361 +1,22 @@ # Substrate Cumulus Parachain Template -A new [Cumulus](https://github.com/paritytech/cumulus/)-based Substrate node, ready for hacking :cloud: +A new [Cumulus](https://github.com/paritytech/cumulus/)-based Substrate node, ready for hacking ☁️.. -This project is a fork of the +This project is originally a fork of the [Substrate Node Template](https://github.com/substrate-developer-hub/substrate-node-template) modified to include dependencies required for registering this node as a **parathread** or -**parachain** to an established **relay chain**. +**parachain** to a **relay chain**. + +The stand-alone version of this template is hosted on the +[Substrate Devhub Parachain Template](https://github.com/substrate-developer-hub/substrate-parachain-template/) +for each release of Polkadot. It is generated directly to the upstream +[Parachain Template in Cumulus](https://github.com/paritytech/cumulus/tree/master/parachain-template) +at each release branch using the +[Substrate Template Generator](https://github.com/paritytech/substrate-template-generator/). 👉 Learn more about parachains [here](https://wiki.polkadot.network/docs/learn-parachains), and parathreads [here](https://wiki.polkadot.network/docs/learn-parathreads). -## Build & Run - -Follow these steps to prepare a local Substrate development environment :hammer_and_wrench: - -### Setup of Machine - -If necessary, refer to the setup instructions at the -[Substrate Developer Hub](https://substrate.dev/docs/en/knowledgebase/getting-started/#manual-installation). - -### Build - -Once the development environment is set up, build the Cumulus Parachain Template. This command will -build the -[Wasm Runtime](https://substrate.dev/docs/en/knowledgebase/advanced/executor#wasm-execution) and -[native](https://substrate.dev/docs/en/knowledgebase/advanced/executor#native-execution) code: - -```bash -cargo build --release -``` - -> NOTE: You _must_ use the release builds for parachains! The optimizations here are required -> as in debug mode, it is expected that nodes are not able to run fast enough to produce blocks. - -## Relay Chain - -> **NOTE**: In the following two sections, we document how to manually start a few relay chain -> nodes, start a parachain node (collator), and register the parachain with the relay chain. -> -> We also have the [**`polkadot-launch`**](https://www.npmjs.com/package/polkadot-launch) CLI tool -> that automate the following steps and help you easily launch relay chains and parachains. However -> it is still good to go through the following procedures once to understand the mechanism for running -> and registering a parachain. - -To operate a parathread or parachain, you _must_ connect to a relay chain. Typically you would test -on a local Rococo development network, then move to the testnet, and finally launch on the mainnet. -**Keep in mind you need to configure the specific relay chain you will connect to in your collator -`chain_spec.rs`**. In the following examples, we will use `rococo-local` as the relay network. - -### Build Relay Chain - -Clone and build [Polkadot](https://github.com/paritytech/polkadot) (beware of the version tag we used): - -```bash -# Get a fresh clone, or `cd` to where you have polkadot already: -git clone -b v0.9.7 --depth 1 https://github.com/paritytech/polkadot.git -cd polkadot -cargo build --release -``` - -### Generate the Relay Chain Chainspec - -First, we create the chain specification file (chainspec). Note the chainspec file _must_ be generated on a -_single node_ and then shared among all nodes! - -👉 Learn more about chain specification [here](https://substrate.dev/docs/en/knowledgebase/integrate/chain-spec). - -```bash -./target/release/polkadot build-spec \ ---chain rococo-local \ ---raw \ ---disable-default-bootnode \ -> rococo_local.json -``` - -### Start Relay Chain - -We need _n + 1_ full _validator_ nodes running on a relay chain to accept _n_ parachain / parathread -connections. Here we will start two relay chain nodes so we can have one parachain node connecting in -later. - -From the Polkadot working directory: - -```bash -# Start Relay `Alice` node -./target/release/polkadot \ ---chain ./rococo_local.json \ --d /tmp/relay/alice \ ---validator \ ---alice \ ---port 50555 -``` - -Open a new terminal, same directory: - -```bash -# Start Relay `Bob` node -./target/release/polkadot \ ---chain ./rococo_local.json \ --d /tmp/relay/bob \ ---validator \ ---bob \ ---port 50556 -``` - -Add more nodes as needed, with non-conflicting ports, DB directories, and validator keys -(`--charlie`, `--dave`, etc.). - -### Reserve a ParaID - -To connect to a relay chain, you must first \_reserve a `ParaId` for your parathread that will -become a parachain. To do this, you will need sufficient amount of currency on the network account -to reserve the ID. - -In this example, we will use **`Charlie` development account** where we have funds available. -Once you submit this extrinsic successfully, you can start your collators. - -The easiest way to reserve your `ParaId` is via -[Polkadot Apps UI](https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944#/parachains/parathreads) -under the `Parachains` -> `Parathreads` tab and use the `+ ParaID` button. - -## Parachain - -### Select the Correct Relay Chain - -To operate your parachain, you need to specify the correct relay chain you will connect to in your -collator `chain_spec.rs`. Specifically you pass the command for the network you need in the -`Extensions` of your `ChainSpec::from_genesis()` [in the code](node/src/chain_spec.rs#78-81). - -```rust -Extensions { - relay_chain: "rococo-local".into(), // You MUST set this to the correct network! - para_id: id.into(), -}, -``` - -> You can choose from any pre-set runtime chainspec in the Polkadot repo, by referring to the -> `cli/src/command.rs` and `node/service/src/chain_spec.rs` files or generate your own and use -> that. See the [Cumulus Workshop](https://substrate.dev/cumulus-workshop/) for how. - -In the following examples, we will use the `rococo-local` relay network we setup in the last section. - -### Export the Parachain Genesis and Runtime - -We first generate the **genesis state** and **genesis wasm** needed for the parachain registration. - -```bash -# Build the parachain node (from it's top level dir) -cd substrate-parachain-template -cargo build --release - -# Folder to store resource files needed for parachain registration -mkdir -p resources - -# Build the chainspec -./target/release/parachain-collator build-spec \ ---disable-default-bootnode > ./resources/template-local-plain.json - -# Build the raw chainspec file -./target/release/parachain-collator build-spec \ ---chain=./resources/template-local-plain.json \ ---raw --disable-default-bootnode > ./resources/template-local-raw.json - -# Export genesis state to `./resources`, using 2000 as the ParaId -./target/release/parachain-collator export-genesis-state --parachain-id 2000 > ./resources/para-2000-genesis - -# Export the genesis wasm -./target/release/parachain-collator export-genesis-wasm > ./resources/para-2000-wasm -``` - -> **NOTE**: we have set the `para_ID` to be **2000** here. This _must_ be unique for all parathreads/chains -> on the relay chain you register with. You _must_ reserve this first on the relay chain for the -> testnet or mainnet. - -### Start a Parachain Node (Collator) - -From the parachain template working directory: - -```bash -# NOTE: this command assumes the chain spec is in a directory named `polkadot` -# that is at the same level of the template working directory. Change as needed. -# -# It also assumes a ParaId of 2000. Change as needed. -./target/release/parachain-collator \ --d /tmp/parachain/alice \ ---collator \ ---alice \ ---force-authoring \ ---ws-port 9945 \ ---parachain-id 2000 \ --- \ ---execution wasm \ ---chain ../polkadot/rococo_local.json -``` - -_Output:_ - -```bash -2021-05-30 16:57:39 Parachain Collator Template -2021-05-30 16:57:39 ✌️ version 3.0.0-acce183-x86_64-linux-gnu -2021-05-30 16:57:39 ❤️ by Anonymous, 2017-2021 -2021-05-30 16:57:39 📋 Chain specification: Local Testnet -2021-05-30 16:57:39 🏷 Node name: Alice -2021-05-30 16:57:39 👤 Role: AUTHORITY -2021-05-30 16:57:39 💾 Database: RocksDb at /tmp/parachain/alice/chains/local_testnet/db -2021-05-30 16:57:39 ⛓ Native runtime: template-parachain-1 (template-parachain-0.tx1.au1) -2021-05-30 16:57:41 Parachain id: Id(2000) -2021-05-30 16:57:41 Parachain Account: 5Ec4AhPUwPeyTFyuhGuBbD224mY85LKLMSqSSo33JYWCazU4 -2021-05-30 16:57:41 Parachain genesis state: 0x0000000000000000000000000000000000000000000000000000000000000000000a96f42b5cb798190e5f679bb16970905087a9a9fc612fb5ca6b982b85783c0d03170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c11131400 -2021-05-30 16:57:41 Is collating: yes -2021-05-30 16:57:41 [Parachain] 🔨 Initializing Genesis block/state (state: 0x0a96…3c0d, header-hash: 0xd42b…f271) -2021-05-30 16:57:41 [Parachain] ⏱ Loaded block-time = 12s from block 0xd42bb78354bc21770e3f0930ed45c7377558d2d8e81ca4d457e573128aabf271 -2021-05-30 16:57:43 [Relaychain] 🔨 Initializing Genesis block/state (state: 0xace1…1b62, header-hash: 0xfa68…cf58) -2021-05-30 16:57:43 [Relaychain] 👴 Loading GRANDPA authority set from genesis on what appears to be first startup. -2021-05-30 16:57:44 [Relaychain] ⏱ Loaded block-time = 6s from block 0xfa68f5abd2a80394b87c9bd07e0f4eee781b8c696d0a22c8e5ba38ae10e1cf58 -2021-05-30 16:57:44 [Relaychain] 👶 Creating empty BABE epoch changes on what appears to be first startup. -2021-05-30 16:57:44 [Relaychain] 🏷 Local node identity is: 12D3KooWBjYK2W4dsBfsrFA9tZCStb5ogPb6STQqi2AK9awXfXyG -2021-05-30 16:57:44 [Relaychain] 📦 Highest known block at #0 -2021-05-30 16:57:44 [Relaychain] 〽️ Prometheus server started at 127.0.0.1:9616 -2021-05-30 16:57:44 [Relaychain] Listening for new connections on 127.0.0.1:9945. -2021-05-30 16:57:44 [Parachain] Using default protocol ID "sup" because none is configured in the chain specs -2021-05-30 16:57:44 [Parachain] 🏷 Local node identity is: 12D3KooWADBSC58of6ng2M29YTDkmWCGehHoUZhsy9LGkHgYscBw -2021-05-30 16:57:44 [Parachain] 📦 Highest known block at #0 -2021-05-30 16:57:44 [Parachain] Unable to listen on 127.0.0.1:9945 -2021-05-30 16:57:44 [Parachain] Unable to bind RPC server to 127.0.0.1:9945. Trying random port. -2021-05-30 16:57:44 [Parachain] Listening for new connections on 127.0.0.1:45141. -2021-05-30 16:57:45 [Relaychain] 🔍 Discovered new external address for our node: /ip4/192.168.42.204/tcp/30334/ws/p2p/12D3KooWBjYK2W4dsBfsrFA9tZCStb5ogPb6STQqi2AK9awXfXyG -2021-05-30 16:57:45 [Parachain] 🔍 Discovered new external address for our node: /ip4/192.168.42.204/tcp/30333/p2p/12D3KooWADBSC58of6ng2M29YTDkmWCGehHoUZhsy9LGkHgYscBw -2021-05-30 16:57:48 [Relaychain] ✨ Imported #8 (0xe60b…9b0a) -2021-05-30 16:57:49 [Relaychain] 💤 Idle (2 peers), best: #8 (0xe60b…9b0a), finalized #5 (0x1e6f…567c), ⬇ 4.5kiB/s ⬆ 2.2kiB/s -2021-05-30 16:57:49 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 2.0kiB/s ⬆ 1.7kiB/s -2021-05-30 16:57:54 [Relaychain] ✨ Imported #9 (0x1af9…c9be) -2021-05-30 16:57:54 [Relaychain] ✨ Imported #9 (0x6ed8…fdf6) -2021-05-30 16:57:54 [Relaychain] 💤 Idle (2 peers), best: #9 (0x1af9…c9be), finalized #6 (0x3319…69a2), ⬇ 1.8kiB/s ⬆ 0.5kiB/s -2021-05-30 16:57:54 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 0.2kiB/s ⬆ 0.2kiB/s -2021-05-30 16:57:59 [Relaychain] 💤 Idle (2 peers), best: #9 (0x1af9…c9be), finalized #7 (0x5b50…1e5b), ⬇ 0.6kiB/s ⬆ 0.4kiB/s -2021-05-30 16:57:59 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 -2021-05-30 16:58:00 [Relaychain] ✨ Imported #10 (0xc9c9…1ca3) -``` - -You see messages are from both a relay chain node and a parachain node. This is because a relay chain -light client is also run next to the parachain collator. - -### Parachain Registration - -Now that you have two relay chain nodes, and a parachain node accompanied with a relay chain light -client running, the next step is to register the parachain in the relay chain with the following -steps (for detail, refer to the [Substrate Cumulus Worship](https://substrate.dev/cumulus-workshop/#/en/3-parachains/2-register)): - -- Goto [Polkadot Apps UI](https://polkadot.js.org/apps/#/explorer), connecting to your relay chain. - -- Execute a sudo extrinsic on the relay chain by going to `Developer` -> `sudo` page. - -- Pick `paraSudoWrapper` -> `sudoScheduleParaInitialize(id, genesis)` as the extrinsic type, - shown below. - - ![Polkadot Apps UI](docs/assets/ss01.png) - -- Set the `id: ParaId` to 2,000 (or whatever ParaId you used above), and set the `parachain: Bool` - option to **Yes**. - -- For the `genesisHead`, drag the genesis state file exported above, `para-2000-genesis`, in. - -- For the `validationCode`, drag the genesis wasm file exported above, `para-2000-wasm`, in. - -> **Note**: When registering to the public Rococo testnet, ensure you set a **unique** `paraId` -> larger than 1,000. Values below 1,000 are reserved _exclusively_ for system parachains. - -### Restart the Parachain (Collator) - -The collator node may need to be restarted to get it functioning as expected. After a -[new epoch](https://wiki.polkadot.network/docs/en/glossary#epoch) starts on the relay chain, -your parachain will come online. Once this happens, you should see the collator start -reporting _parachain_ blocks: - -```bash -# Notice the relay epoch change! Only then do we start parachain collating! -# -2021-05-30 17:00:04 [Relaychain] 💤 Idle (2 peers), best: #30 (0xfc02…2a2a), finalized #28 (0x10ff…6539), ⬇ 1.0kiB/s ⬆ 0.3kiB/s -2021-05-30 17:00:04 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 -2021-05-30 17:00:06 [Relaychain] 👶 New epoch 3 launching at block 0x68bc…0605 (block slot 270402601 >= start slot 270402601). -2021-05-30 17:00:06 [Relaychain] 👶 Next epoch starts at slot 270402611 -2021-05-30 17:00:06 [Relaychain] ✨ Imported #31 (0x68bc…0605) -2021-05-30 17:00:06 [Parachain] Starting collation. relay_parent=0x68bcc93d24a31a2c89800a56c7a2b275fe9ca7bd63f829b64588ae0d99280605 at=0xd42bb78354bc21770e3f0930ed45c7377558d2d8e81ca4d457e573128aabf271 -2021-05-30 17:00:06 [Parachain] 🙌 Starting consensus session on top of parent 0xd42bb78354bc21770e3f0930ed45c7377558d2d8e81ca4d457e573128aabf271 -2021-05-30 17:00:06 [Parachain] 🎁 Prepared block for proposing at 1 [hash: 0xf6507812bf60bf53af1311f775aac03869be870df6b0406b2969784d0935cb92; parent_hash: 0xd42b…f271; extrinsics (2): [0x1bf5…1d76, 0x7c9b…4e23]] -2021-05-30 17:00:06 [Parachain] 🔖 Pre-sealed block for proposal at 1. Hash now 0x80fc151d7ccf228b802525022b6de257e42388ec7dc3c1dd7de491313650ccae, previously 0xf6507812bf60bf53af1311f775aac03869be870df6b0406b2969784d0935cb92. -2021-05-30 17:00:06 [Parachain] ✨ Imported #1 (0x80fc…ccae) -2021-05-30 17:00:06 [Parachain] Produced proof-of-validity candidate. block_hash=0x80fc151d7ccf228b802525022b6de257e42388ec7dc3c1dd7de491313650ccae -2021-05-30 17:00:09 [Relaychain] 💤 Idle (2 peers), best: #31 (0x68bc…0605), finalized #29 (0xa6fa…9e16), ⬇ 1.2kiB/s ⬆ 129.9kiB/s -2021-05-30 17:00:09 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 -2021-05-30 17:00:12 [Relaychain] ✨ Imported #32 (0x5e92…ba30) -2021-05-30 17:00:12 [Relaychain] Moving approval window from session 0..=2 to 0..=3 -2021-05-30 17:00:12 [Relaychain] ✨ Imported #32 (0x8144…74eb) -2021-05-30 17:00:14 [Relaychain] 💤 Idle (2 peers), best: #32 (0x5e92…ba30), finalized #29 (0xa6fa…9e16), ⬇ 1.4kiB/s ⬆ 0.2kiB/s -2021-05-30 17:00:14 [Parachain] 💤 Idle (0 peers), best: #0 (0xd42b…f271), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 -2021-05-30 17:00:18 [Relaychain] ✨ Imported #33 (0x8c30…9ccd) -2021-05-30 17:00:18 [Parachain] Starting collation. relay_parent=0x8c30ce9e6e9867824eb2aff40148ac1ed64cf464f51c5f2574013b44b20f9ccd at=0x80fc151d7ccf228b802525022b6de257e42388ec7dc3c1dd7de491313650ccae -2021-05-30 17:00:19 [Relaychain] 💤 Idle (2 peers), best: #33 (0x8c30…9ccd), finalized #30 (0xfc02…2a2a), ⬇ 0.7kiB/s ⬆ 0.4kiB/s -2021-05-30 17:00:19 [Parachain] 💤 Idle (0 peers), best: #1 (0x80fc…ccae), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 -2021-05-30 17:00:22 [Relaychain] 👴 Applying authority set change scheduled at block #31 -2021-05-30 17:00:22 [Relaychain] 👴 Applying GRANDPA set change to new set [(Public(88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee (5FA9nQDV...)), 1), (Public(d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69 (5GoNkf6W...)), 1)] -2021-05-30 17:00:22 [Relaychain] 👴 Imported justification for block #31 that triggers command Changing authorities, signaling voter. -2021-05-30 17:00:24 [Relaychain] ✨ Imported #34 (0x211b…febf) -2021-05-30 17:00:24 [Parachain] Starting collation. relay_parent=0x211b3c53bebeff8af05e8f283d59fe171b7f91a5bf9c4669d88943f5a42bfebf at=0x80fc151d7ccf228b802525022b6de257e42388ec7dc3c1dd7de491313650ccae -2021-05-30 17:00:24 [Parachain] 🙌 Starting consensus session on top of parent 0x80fc151d7ccf228b802525022b6de257e42388ec7dc3c1dd7de491313650ccae -2021-05-30 17:00:24 [Parachain] 🎁 Prepared block for proposing at 2 [hash: 0x10fcb3180e966729c842d1b0c4d8d2c4028cfa8bef02b909af5ef787e6a6a694; parent_hash: 0x80fc…ccae; extrinsics (2): [0x4a6c…1fc6, 0x6b84…7cea]] -2021-05-30 17:00:24 [Parachain] 🔖 Pre-sealed block for proposal at 2. Hash now 0x5087fd06b1b73d90cfc3ad175df8495b378fffbb02fea212cc9e49a00fd8b5a0, previously 0x10fcb3180e966729c842d1b0c4d8d2c4028cfa8bef02b909af5ef787e6a6a694. -2021-05-30 17:00:24 [Parachain] ✨ Imported #2 (0x5087…b5a0) -2021-05-30 17:00:24 [Parachain] Produced proof-of-validity candidate. block_hash=0x5087fd06b1b73d90cfc3ad175df8495b378fffbb02fea212cc9e49a00fd8b5a0 -2021-05-30 17:00:24 [Relaychain] 💤 Idle (2 peers), best: #34 (0x211b…febf), finalized #31 (0x68bc…0605), ⬇ 1.0kiB/s ⬆ 130.1kiB/s -2021-05-30 17:00:24 [Parachain] 💤 Idle (0 peers), best: #1 (0x80fc…ccae), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 -2021-05-30 17:00:29 [Relaychain] 💤 Idle (2 peers), best: #34 (0x211b…febf), finalized #32 (0x5e92…ba30), ⬇ 0.2kiB/s ⬆ 0.1kiB/s -2021-05-30 17:00:29 [Parachain] 💤 Idle (0 peers), best: #1 (0x80fc…ccae), finalized #0 (0xd42b…f271), ⬇ 0 ⬆ 0 -2021-05-30 17:00:30 [Relaychain] ✨ Imported #35 (0xee07…38a0) -2021-05-30 17:00:34 [Relaychain] 💤 Idle (2 peers), best: #35 (0xee07…38a0), finalized #33 (0x8c30…9ccd), ⬇ 0.9kiB/s ⬆ 0.3kiB/s -2021-05-30 17:00:34 [Parachain] 💤 Idle (0 peers), best: #1 (0x80fc…ccae), finalized #1 (0x80fc…ccae), ⬇ 0 ⬆ 0 -2021-05-30 17:00:36 [Relaychain] ✨ Imported #36 (0xe8ce…4af6) -2021-05-30 17:00:36 [Parachain] Starting collation. relay_parent=0xe8cec8015c0c7bf508bf3f2f82b1696e9cca078e814b0f6671f0b0d5dfe84af6 at=0x5087fd06b1b73d90cfc3ad175df8495b378fffbb02fea212cc9e49a00fd8b5a0 -2021-05-30 17:00:39 [Relaychain] 💤 Idle (2 peers), best: #36 (0xe8ce…4af6), finalized #33 (0x8c30…9ccd), ⬇ 0.6kiB/s ⬆ 0.1kiB/s -2021-05-30 17:00:39 [Parachain] 💤 Idle (0 peers), best: #2 (0x5087…b5a0), finalized #1 (0x80fc…ccae), ⬇ 0 ⬆ 0 -``` - -**Note the delay here!** It may take some time for your relay chain to enter a new epoch. - -## Rococo & Westend Relay Chain Testnets - -_Is this Cumulus Parachain Template Rococo & Westend testnets compatible?_ **Yes!** - -- **Rococo** is the testnet of Kusama (join the - [Rococo Faucet](https://matrix.to/#/#rococo-faucet:matrix.org) to get testing funds). -- **Westend** is the testnet of Polkadot (join the - [Westend Faucet](https://matrix.to/#/#westend_faucet:matrix.org) to get testing funds). - -See the [Cumulus Workshop](https://substrate.dev/cumulus-workshop/) for the latest instructions to -register a parathread/parachain on a relay chain. - -> **NOTE**: When running the relay chain and parachain, you _must_ use the _same_ tagged version of -> [Polkadot](https://github.com/paritytech/polkadot) and [Cumulus](https://github.com/paritytech/cumulus) -> so the collator would register successfully to the relay chain. -> You should test locally registering your parachain successfully before attempting to connect to -> any running relay chain network! - -Find `chainspec` files to connect to live networks [here](https://github.com/paritytech/polkadot/tree/master/node/service/res). -You want to be sure to use the correct git release tag in these files, as they change from time -to time and _must_ match the live network! - -These networks are under _constant development_ - so please follow the progress and update of -your parachains in lock step with the testnet changes if you wish to connect to the network. Do -join the [Parachain Technical matrix chat room](https://app.element.io/#/room/#parachain-technical:matrix.parity.io) -to ask questions and connect with the parachain building teams. - -## Learn More -- More detailed instructions to use Cumulus parachains are found in the - [Cumulus Workshop](https://substrate.dev/cumulus-workshop/#/en/3-parachains/2-register). -- Refer to the upstream [Substrate Node Template](https://github.com/substrate-developer-hub/substrate-node-template) - to learn more about the structure of this project, the capabilities it encapsulates and the way in - which those capabilities are implemented. -- Learn more about how a parachain block is added to a finalized chain [here](https://polkadot.network/the-path-of-a-parachain-block/). +🧙 Learn about how to use this template and run your own parachain testnet for it in the +[Devhub Cumulus Tutorial](https://docs.substrate.io/tutorials/v3/cumulus/start-relay/). \ No newline at end of file diff --git a/docs/assets/ss01.png b/docs/assets/ss01.png deleted file mode 100644 index 0ab85f5cd09d33e680359c093e011ceb199c9364..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91040 zcmZ^~19)Y@vM8Kn;)y-6ZQHhOd&kBE6HjbTY}>}f&P031oY;Oj_ndR@d;fp#{<^%L3CSu2qRFzXbSa_~ zq=>~ago)&dDm3cqlEC${j~l_67jMvvufO1mzyHj|vq7(W^^2z?m>2JBLBRm(B$&AP z$UOcO0@S7eKU6(B*cUHwtoWczA_~g!J|GacZ{PC;G_eEreR=)R<+R~_^P?BbRM;2+ z3TzB-rclXDM{FFS=Mv=Ag(BfirHQY{v+|T*$Ig2OU*noWFvP#v!*E33F3~hG_T{hZy<6I zyWkC!(oc`>Pkrr=7mfy9_fmv$clM`)fhD3Sxi|k{A&b#58_2HW^o}2hB#~_C^|p47 zJ-v?}NXN&qv23FuIwlZjbKlsBi;8$UV`3!>wKeJd5p61#J;k*fQkDPc@Mi{YH>^+k zOB%=p!fc~D@C6OU+P>kK?^?&WXd<I3Svfo2}|iAHw>bVK|V7$4&aQwVS*0b-UrU$uAn0@s6#-N2; zR1_en@YcC$vqljNBkn2F))9V5CaluIEWveH?LP0^`q(-oLVm}(VG!(sAPhR}JKd%D z;7L@;RJn^wzKeJl5X@?M{)nuY%gYTs;d<7~{<5`vl9xRuHs-S@W{%f@z8Yf>89b(G zj^6Oq+lt^rN9=-gc^2Rhi+3N|@ABEJ!`5O~fkYPgX7~$C&6a0j`>mQkcZilvY_?oK zaq-dUtieDKLBUuF7~VP}6i^frV9OWDQ)VZXyCVkR^`0N$l00DFpYg#Si$7*bdmx;k zfV;t*ANi3_ed`EcgqO%EVzGK<#Hxj6FKzlDFQ^&&kj1}~|4l$s{-P^Plny3m43ixM za~ZUY4^eA{D-HIW7}NZ_y%R<@*zgttH*!TEg%cusu;nZ?;diQEFt;IEm(LksME&^M zkP|47CM3`ikj^3y@i^pPXhh7Vu~~zvNTkNTT>l8pm!?LN4Z9axRTfl7$O);)ubfpV zLp%xf$xoZbxg~stU?7Qy^?{@dMka~<6GlvifT9U&HRK`AOp2QjAuWY3fdm;MUD7|sLHe(fnCX8M9 z-Qb8RTOCzBc7639!M~9AFtJEf-_-^(cKDqW+Sv8MYoJ$xPX`sYQ?DkySh^^INJQU3 zKWB#1b^+U+SLlxx5MM=te~CF!hN7v$NrX;>zJ!_#Xz}v$n(!j>!tl~=3U-io(7DAO zjT{BcqaPO^|2*nG-aU$&)tUzt2g-b;1Oz z8^IVs8-X4X9GQ{#qGX}`LP=C2UIJ0#Q{q_i&62;7yAidK=*I8>?I3HCDIHr|nm&r& zgC3Qhhn|BzhkikvUM1UF6oI$|eFpskbyP+=5%zb4ILR4RO44}}r8Y|yS`}7Re${GK zns#3ObUo^-`XBvOkNT9lO%pr|sfOrAy}Izm!v-TWB4eYStzG6V*uAm6w#m8CtDK~8 zwLG?Xw&=###yreT#*m_0PG70BB8u*Mi?NO9$!DU*T1jNulcW|PkN7_ukny>P-PIKP`Xfpunlmy zuwh@Z;5=Zb;jZ8_z7E6Xp!-lZ(bJRsCC#SPr+U>5B^JekL*rqbXJntTrG@s#2h7s+}mJs>G_>Ab-t76N8~cD}U0Y z9>*@KtHCSYA>N?}O;SiHmcqlZKo_056#p}sA<3Uaiph!?n@Nj~i*kk$z>r4?qW^bDw+SxqT zcve`BHtWk(<^Fg}uffaCgpxVJ!p;$CGqzp&T`Nj)bnGP4Bvdt%1>*(X1s*nyM)Jna z18Y~h8~z(?EI%xaXxnHWIrj;HR07RgO-0RNO+a;Vwas#?Jql+k=cs*{!>~P>1K!#9 zoFAJkoh$cf_jC8H1k6bHNEAp(u~D(VW07;D75TDlv$1jzb6j(b+NC>&+M7CA+kHAU zI|Dq~JSIHx+(8FDqi>NgtuRZ4ztK;RPjt51w=8zt2kZv)miPvJjXQ_#4c7Vm+x!Ro z&;J^)ZMPNzvCmEq^maRUtPZsfTDJh(f#ZR(rs6b3eh9P3+=Q2c%2dokPPEcg)I!$0 z+EkC)moF&Y@xk%mDo~r#d5LTZeJF2z(+#vO{^+*pc^N=54sh*QlC!YVH<(d88_;)>db*#b z0(07ZY3JClMA2v?6Bl#ole07VTSkp%+Ph~BKf2FoNNJ8~&|fC+HHy(x2UYV*Xo~hr z{nsyAJ~Vlao_lVuzF5N8vf;2&j_PXL)=NkQHG;S5&j+@bo|MamHolnsXs|+KX zh8$xAGZsq+n+y)Fw#V3lLn}kQQDJ-#J#CiVdV3K0Lu8wCTCS{1v8V8 zV@Hk7M8_S+LlhX$u+jXw4R!tF1pYkgZ`9KG*!UdnXhp2;-N^|qFmpp!+(G~BB^rqB z%lOU6wu9dDNuR*i;2zV7;(R>3vPTQ1M#sRemTJYQhtcD05pn)!6?B=2=b*ls^saT1 zl-h;DMAlhrljCL^LttlvPFedN(t6GYmZ+T1gsz?G>A+@LC!0gR!|oa1n$f0f?}Jvj z*l6R6<^z!cv%k|te*fUI6mMK69|s>mkW$Feui(BYU#|IdL~W^*E4N(0?nv{(@nr6( zeW`MDeZF*M<$mMwDWsSF-De)K4&vKlWqurZ89p-Z+q#{&OuG@g5}T;KM=T6)G-T^# z#MvgG@g=(}aa4D>old{fUePOUtsSA+B?1k1>19agnWxjIqor5mYGyhH0G@jeLsr5g z<5Y;!tXKu>{dn(mu5a#i-d1aP9@-nn&AoCOLd82tKth3E7NdbdBZEl`IAv}% zXWTeolD}RDeb>{HCVY;N4hJkcsza|~gbeZbV{MaOEkn}q(r+U86N!=uBocFtUjm4q0*?_N}OezZkuWQ%?9tt`qcKM{AdC%0`K};JuZ68ihNI| zVrDn{MT2!qRRgbOjw!nBsiT!??FsSr*zVBZ7*~-FQAb$MWEf!5YV?GjTW5CMB9e*` zxR7HYCp^t}9BFt{oinHPCE%*8x@6~H(}S}lf}mz*TV1wnw;c_2y4jHW!ydeHS^_ed~7VM zW$vq42Ea46vuhz2<%ibl&Z5!63J5zu`Uyu+>`D9ypCe1a(=6b=^1anHy68ee$Rahj zy6AOYU+-o8m5!uT<;j{30q=mLg)l7ynG$C~W`S+4mRX(!i4~Ex*Th@uRs4CpW2|Mo zXR?0$DcUZ@H{p=(f*wTvQ74?Y<)5E5fJwSqux+}$GmqvKiJX|Dx-_rDs;)!F!{ZJ8 zwCd0ezk>NSB{7AD7O5i4R`x{HoYY%kxACA(v(zI*F~c#|Fu12Ss5n0nwUuSyvHLgM z0-dGz0Snf2s;wrz=EO3<{(N=$&;BYE4>m-jk?$fe-x_hlW2q=3 z{?2clW#c5N$8U65vHoz(6RyzDoDNub`}hL)EgV@B-*yUr{5f~fNBcNJ%yDmS(7X95 zF1DMmN3+kMOxHY+wdzs$cZQlmsjqD5%q#DxE~UF+>Bc)mF=@@Uu?DK&wENPuA*rEe zjcW&*KgWZvga7E=Hl7hKi-JB^F~A1cV(-z5zKFJ->B80Q5cm@0`;7qRg2*TSj`?tI zdwMVqS%_yN<%a!5$MT^+_ZGO=BQUf35p@pYLAfLKU_Rat$~UVW4?8sy!ts7OSitd; z!^aLN<<94`Vc8e*zke%@t6-DK(-r*4T*!?3aCtiIgqoJ9yr2;}2~=dbso}1%d^`D* z8HgSV?t*vCR)Oe`vKyK*G`;J%!v-7c*5yWad-#nMha(+D-eK~XK2@C36#1CCk^m2V zUG1J8Nlh`LF_JD(FVr`lDoZQv0o@3$m*;~kNL9qOe@1ll2gi?aiTeonsFsMQi0TMz znKEfN8EDxWX@aEG1jiKT#EfKx6!av#6f_IOojBsNcyp^%(@OK<9PR zHPw;p9F6kkQpC8>UVZ8_76>Zqf)* zNK{7TS)5&TtsM1cN+%x&3keN9kMYcX_c_h<3%(k`JpMgj2_Mnr*q;FAOJ!|Kc}>~- z{Os4kVyOyOyjbAG=@b#q{S#z`aK&ur(b4ah;fc~crI)l^?wiNIvKjMFeb+l*H&e=J z&rU)!JJ#aTikQNem-I8bOEh~ge6+r3nR%&=G6b#DOab(&^s?45)|ouUHhQ0DFXv`= z4GbWZd^?aIc!jVpV7?H+fDrw?5P=at&v0rp#FeN5AoIo#sg3TiehV3BMlBx(-t_j~ z1*?478WI6p{+MyDf+jvB1w-ou-}>&Va!%>gDlh9La)46I@C$u&^eX-5W(ybq=b z{9F3qlLdFS8dfmxEZj&x?GRkKsG>508-#7J;UG^Q{Qzb{RGC-|aYlUD7~~$s9(i`L zccH9u?Uwu`wmnir=OQYqT91&#`jB40(Ze zez~vG?{W}^PLi{9$#nKq1EkmbP0EvU`qF-?I|b%3$tCRMn>0yOr%<)iJWo9iQ}CEk zPqMx#<+O?wnYIuo@z2!lI=gL_WvQ{8h4*!e&5l*Mxq^zlE5Cr39V&%a3`tlEzLq%$ zn^<2`$u!lLZ#XABxP3ifoTVC)n%RaaR-4DFhyB-*_AIstn!6`UL1|l7TY2I(@Q;Mz zNQ&?_UnxS{L(`<_|FXx?{>=S37dsV;C!@UT?)Ko9sCOOG%}c{ju4%J-obin}T-XwD zpE6kLa&t2oM-m5O8l!`!=j5f(qxI9Qk}uw9A?>IrI`~bYTpF;{0^F69HoKleZ>`-t zwllClykHJQc{%#KYh_Tm>C(NPM|9lFCyiTxV1%3TZI^&b=}3vD$LjUc^kD4Jq0!;y zz=*eph5>_#@y+Sc+r%b7!j)rxW%K8and^Jx<*OXHyD|KRF!i6Wu_3y%;F5jF5s);( zEz0C>7!~1$q+p`()7J|qTBv|+ejsi}ti1$dp_}rHih;GF8%hUw$mpXnZr$V`r@!dg z^o-c8-ycSVh{w?3kK^6u+{|tnZ{xnj;OOEsf4k_@`AcRAbAZaNWI#qp^*brIL2@9& z3cZsEhCmA43I&^QMeKZ&zk%PZ>xZAmEBCuckbiKPC{BLq02FCJ!F2(hsliS$+FT-~ zD!-~x5z$0;nnJ=&;>sFjabJ0amcB}+2BDUB{<_{fLM{W@=hXLTnRb<9RSJ zJ|J2oXIrDtXIC<5y`mV9@?1yM`>bz0jLx^f3;^084Aizp9Srl&Su_^*5Kb z`NoJ*zdELJxn@}ZZ?E6B>@~;5sV!p6&t0xs5HN7GCFSN^+t(fDEa;xh{;)6Ur1Yhu z+t)oW`mPayAJ@&B=Zf}<<8-W9<*+{Gssb*KrsQ}UIoz^JkZqn`!A^UAu?W7`VF>-Gf8ljga$x_lLL zy|WU7vvv%NUG^PQEI4S~kzINu^ROyg!WG-kt9oMlO$NC}#wk}z%nsJDpi+&h&Kww5 z=hnmd_&pLmrahjvERPL$BOeNUgl*ajKJ66|QjY3;~D^S%@4XPg6-+zhJTv;z{ zFodtCU7+X&>*}pVoCQ7Lo);4S5u*2If7d>NYp&cm*5>kz6T1lNIh_IBqeEjDawE+f z5`L=)a0j$~-0h9MW~HzkF?itLAhCf{rcw$i{FE2+2i@lX-ObM!Q{v3Cu&i$c9AqA_ z^?C)QJU{R2-H5IgTzO7D#1hd6H3v*H8ED_@lT@)+sRppTcC;MS3x2SOjLYJ!z=#82 z!Fej+~zhkhv(OUpr zrw6te?^3SK!h^)|82sphJ|N7*fQJ$Gw=kba5SkX+GL{MoV6>kwEEssW4H)Dn1pZlZ zKPwp6m&7ozf6$?QR`FjD|HeWt{QB~57=rE}gd%EUGBTf6H8U3r3rAOLfE%!oL+4Y} zijBIqo3?^HuNlCB(Zn2JYQgB`;Pej`Fn%xIPtd`_&4k#?!QRo8*Gqu(zbJS=;eRwU zkrMwGiJP4OskVYLu^7O`f|!GmospST5T2NrnBT?Rl2=t+@?Y$q{{%>_-Q1jbnV391 zJsCaO7y&L;Oe{P+JWR~2OsuR7pA-zP-i~f2UJQ<|Wd9WMZ#m)?u4XPaPHr{;N8*3T zH8BOay9tnz{zK7!|NeQO7G5_0qsh_rU)}obAk#lEOe~DdO#dzWla>D;t-Q)MUKaM+ z;x-PS=K0hi$im9T!T(04}DRgQ=_xuG)Tt3s1pI%HQ4X?N5|RG66h?`mQeNZK7o0XvF_Z8H@j(WP+&q zzo9?d>maF1uEhUWf*@`GjkD+@yR7HGh!D%~q!fv=Yl0Ein zy}0=TyEB(OmM17!ZBxTB4pRCv3ICtUJPI>acx0BP4C53xA^_WlQ@iNoiBz#?(t*NB zb#H}-R46XK?>ddOmC-KgzkA(hL%Nminm5+Y6_H%+o9WXxb$}aWU?+aiOA{pV@w-`} z&g9>{3>qSjKQ+xb8!~RORddi>R2N z0^n_r%bnowInxpVi zQ}qo6^LxXh1swnWYe4r{7Z-Wm<=nATI+U#>0?_Gqw=H1MeK|fw|sXOaJ~qZ_zvLJDWL&!2I>Vwia@8-=&YY ziBfyqf6omX$SuC)UCR>?bxAb5%`iKWu46`&Tgg0i0u60hwGY{0YlBrz+rs&hpCiRE zdzY$2|M^Z60cDU*;PjKjzGQR&Qpbih-!$ju+)5+{y@_2`z@P-DAJh2^&8Y3ggL4a- zX0;+R%P8_eL^>tUs-`vYk=m+BZ&O|YGS!C6vHCBhl_Szyr7-q7mhVGrJ%8Sw z)gLO$J=AygS{al3ijvAi;#NCWu$`%QAz`l)GlM9Pd@kcD3B5OA1batAg<3ltT|X| z^F(99ANfEl15cWe&5iP_gxK&6m$HbG8{{iQ3F{}O;dt6g<}c~bBVd*xZpuNK#yeJFM|6H za5esHqr-x^g@v@zuuppUswltEyXr9VLUnN8j9PlZt;DSV)C{kkq@F$hcJiL@06e~H zzy#a$uC2IiURw`%Lb`I~H4rG>7bE>yTL-kgZalAz{d;noV||+8cv1FCTTNoDRD4+p z)y5?yz2eJ|2FYZU1?~86rOZ;q0z*^_)rv4!murUkyNx7Lhb3Q>6N2=6JQCHmrZ%DO z60#vjR2$DYANKp0jnqxvkN>>f3cEqja_z;CG%ffPSV$DU0`zhcNQE=U+b8ZPu7*7{qu$FZeeX{CQVE(=MJo1Ud*T*EzV}DlO|xJ@DUX&Yl>xpg**w0y4=h zx2Sg1dsX#etBs$_qpYMjBRltO_Pa&f4QPWd93$6KL6kx=|7ll{Ce9X)jj*|_YT%h? zy_61-UamC~(&-KG_Yx|Y7IVuI^zVov6yR<7RkGgV|EHPT3Yvo3S=}5&d52M1;Lo)raZb__G`s6^KQ<3NnORTJt%}vbK_ekV7*3Pt#s{Bgn@U6E3 z0(9V?$L=U2v2Ik^g+;}TIbM``FWOgrxJ7_A+a`l}gI$6>(KLm9&pEFe`ymf!{oz4wyc|Y% zJV2)2XN?H4P@QcGI=U*0{ygrZ!O(De_RhmQ^#fmsyum**Es3EEb(6t!4-#`Z)0X;F z;pC1>I$Ho)*0_g?F-$9tw^ysZ912)@?A;6JHD`}_9!sYg z6l%?)d8OW+Z}KVR=sC7ajQqr-dH@CXV$LgT*BS~OFO3Ys}ax$fr7jLJYP*a3^MmBXQ$PYW3R@`FR-18;8^{z>7E@gfi zxsIK{a1Q17$c~$j8jOsW0s3Jc)447t2tH*|{C%c;bbWQl?KKa(r`@Bf4NpiDisqO5 zX!KkVY__DQ*LKv;8f?$O!c)bN+Qz~Q>Bz<|e21}xu#dGg?e*3dcc*Zq zSf@rUqlbxh^Qr@{m$-^Z<*UUit#xPT4*y?l@feLJ>sV!026*-I(aUJ1Gt|yChSqp) zj4vWLrTz@(B6qC%g7fEm{8LpT!t@#wE|*y1AEz}++sk$_2UV4fCCkRn0j;DQy@r%) zQ9YQc|8ZH|qkuTrt1~7yO1)p#Z&gJ|>>Xu}FwPHwBPPNf5ZL7~Q~iPG)hH4gZE-%W zvD4%0QANu#kxh5-CxPlq;S1y`&kCa^c4-nC&gusGz;orJMq7+ltO~7^K@p*z-dWdz zN4oT&NG{hm=x^HZKOimNR_QvodP%M9dYHX3N%)c({Dhx@G- zXpfQ-(wLX>XQzv&=RwJ=cfsrTjgTX@e5jL8Z$1W@2rQFEpSwc9%*G&oDT$-eZErBkWn?(`leAgpyuK?$obz;^hLOA=^F}k?Rm2U-x zrV~PGeQ`7)l-3W~;7JmHovwM&xf##h2=3gbvVgz7Vs8{;s^U{UI4%a<))D$5;T-=$ zG{wI&w4*4wI@6p)KnVBzWi@@#EVMwh;%A3Tsr%`)oLy)j4+a}#6_1m=KmzYAp@$&CIhzOqTU^Q!W8)yVrhCVk85=4pfZE8_m_=GfuPEp*o$Yy^` z7_zf8h3mW|QQYTzQ5|uTsSC5V_^^ExX0_{a6HZ34Ub4s}9UHnD#0Iqg6czPlNE1`U zGTwBCsbCkMJbkN)*s$s`2zc6mH!l%_LBgj7`4v8mEsCzkti|6?#UivTxw`&)MJEP_ zOTRuFz6~@QJOHKib-|e3&)PgiNZ*_ey*=v^7(9okyX#0pkUJfqGHY;jkG^x*NO>x) zD(q#Zn7wrK5Nyygd-P?%eD@Xqq>)5%S`(mCEet8)d)D5_%i|@xrhbp=SL~htfo*uCv^Mkh^6*viDQ0x7 z$p*bDY))X#<8!sk$Xt{9XH+O`iYgp1qFB2gq=HsyR@%c=QV#sncXD?vX!fR1j;>Fo zxd}VICM2MbczgL1dkNA3BOwNe*Q`U10~KJy&iJ%)H#U2HZQo6>BzB$w+U z3nxs^)@_L4y2@ob?kU}Swv!@J(faV7R-Vcbr1Vw{@z(95vTL*vz02z_9E2mSy8`wX3)$QxOF`f_wF7<@E5t?qRTI1H0nqz` zGYGwx&4=jF|(@A|9 zqJ8c5VaCkRYAx=nXK0dM9ETrN<4eGhz-TQX zz`kh5o{6pb_Q&$74Ir^`(^?WSyBf&d>?>YnA)9vyhp51&sDfG_1gZTv@RbRc|L*NW z%gDc(|M{r!%KPu3@&_p3#X+a;yWs~-eoohM2+TG8G;t&^U-#0pVcRejgIe558HKGKFhFnKV6F0d7Q^N%q8 zechR`&#Y7)e^aUo^ItrVKFneUk6XZ{YvS{3BHPe#!?X6t3IO^}8`a#VbA+s8E zDI&9)nSli8?V0$G>7Awyy&`KKXRd(S!aN}M-?Z`#xyg1P^l(&V?4BIn zg0i_gJ)vqYfP+K})3S;x2= zE=wu)kyQCJ64QY$*^N!yJ90rwwQ2zJF-JOmadtjH&!Au_04F63Gy+Mb%W6zT%909mMxhH#^Cm}Lf z$phYz%23ress@c(m?b6@wW^9X3p^i84X>Fo`NKGgaV`|k zb2-vVpr%MoPr9N~l)hJQdbLk4rUOd#Y*>~)g^O2O?4Ng+lleM}pgcm9#_N#BH93bL zYM-;kiZp0x*I^vqMo=9lbDg1qZ=b6@Dy&}1fug}AGmO*&&2@Xw2Y~mqpB^`STx00C zv>y4&szM^${>c2Fn6QE}GZWV;WFcOt9 z&Xc%wLath2S(Ml`ac_@8L!en}FQ7Nd{yC8n`~amnKF@gIdT;K}X4@&^uUYiHcske% zQCcx=yZK-3mMSo_?|!faiX7=pwK!;8j`g)TtW!o~S@@a7mt=51rYxb!y~*btmvl}B6hJLS0~KL)brBP2j`IUc6ld%XfM_Hco5{2ZFDQhA2Gr2iNN z+eNAwGk;kQ+)2iv2m*)#BTUs7?*mt0CjDr6mzH1_hT$47c;-+KH+oM(T!qbV;z*Zn zr6?z}!#t0Wrw~ac77LGuSl+fX{}E{+Ef44smal%EG+{5`)6+)H_-a5*7&h(SL-*dG z`=A?Xv^uMrr?C>178FIL;8-l_SCc-)&74?w(A+J_jo;2b)pv9gsNGe!zFXJe7LJxi zOXnv7?+^I_r+i;1Ba->_TFshr1%<1!>|ZRV1NG$xC)C*)tO0AAc~VDlTXn{PH@8Fe z{?ETOl(G+yrH!`>RaCeM4DVuXf(Cfwe*Y!nZ?KSi+9mp+9*#P`h{k<>ShK5L_2q~CVbJM;7`xSDIfd)J6$G>A+53{? z_qZMIk)vfeXD3U@yzop2V464)kR?|mnZh-MuaL^@7ef$dre6e|^%YfiUuy?$lb~@Y zWHug+Atlt~p095Cy#DgF8}O}O;Q|8KrqjCd?zlc^`Lt8nyxOIMNJ)R(@s;+joqhQ>W=A6q8lw3AT8Gq8%47V6?9PyUcv7aj6t;OcTdu-FFgYVjce4r|PDPoLv2ccKF<5J0LqTBr1*;nxotNVC3*$Q|W!k>Hc za!4{vo2alZM^*kz7u*LZ-a_?mwHMi*E^1cL7`;y0&%H1;&%V?x$^tR?(Tfw|eD>9th-T`LAuEfSY;*vt5IF_DzklDMc0;rmci602-);uleG>5N}=?T=YL~aT>f+ z@$pjk$Y+!T){plLlFdIXoj+e+cwSZo;cPL4s0G$xF1?1c9d2nRaC)9nWB4>Ki2~T2 z2f2Z+$nK1}74;8+3oy-i0UTHKwL9QK3oRkSti`g$m zr!Jlq3-J$h=V)@@b9r5$C^lk%oNWzi$JK|+sclX zyIh*`NVR}&_S54ye({VPx@u;V4uR@zVO&<6NFGAn+iKz=d%j?&v-A75%;zuF>6R79 zb59UEj=A}VD-@&-cYNOFwSQJ>4OTJn^$}!juKQ{RQ5TkDrz-I7K)nU!K8_^1*GOkXa!X~Tk zHapOjIMuC4``U%jbo9BBZ!mWa1&YF*&kp;05@f32A>cQ`T=RH+H^ZQw>Ll{O=le6e;fno1HIA|d8GLy^~GWN~A4CWBRVVH<6i>0+_XbTw_Fv4jG)!~9;$0{4H+T=vFL+aC-u zjTZkAO|N#iSNdK5rc!NlGHL(YFk$~D7LN4$GYU5m(<50PwnI7Mblkvc=7s#N=O|ML zIxp*9TJVg0mt+iB3!6!=p_RAME^XfRc^}X`y%VwkgFpu;W-B~*+n2Q?GUXK$HUOeJ zpWU6~?3aAQ7wvv504fZv?2ZBF;{H;eqA^jPB_Gyz*Y*}hWn(-m$02*D-FdSYvq*2# z$8xD|6XVU7=ZLq0eY!C(V98nUdA_EPCEtJ#jUHTpH-F$&lPK?E|MAU7RGZL2q`hm1<6e0W~S7^3*UJO*w89> zS*lhh700~d)gm5eZ4eD1rdobI5U-dfiW^;vXNpm!6b%%ZSMgHw)pPY8* z$CDcezh_#tnb80wo(vCG|5Gv?ow}*hg!eOFlXo&P)KCAC+d!@XE$MjgZn>%8ZSe)J z%_|&7KR=c!SwFtRY}X>!!|8YX+ZpZ`obDigO$d|UVRAio zfQZRoOycZa(paZI69minx&_nvxVw)}s>d6`P&%T4sA@*8YmE-trhU99zEf1pd)~^M^d5;mp2L$5Qj0U}uY}6M%4M5& zYRL0Q{$BI`brxP=dLJDOAz9@rOblu@S#9f7r)h7T{??V0=Q!OYq1YPu2NiWzyaE{Y zmPOHCLs6yHB)|dTHm9@z^M@7Ueyc_lmg?cDaaQ8f3Z0ja9+L?4d+?0cq@E4BWwJO;52^%JbGg+P1mG~?-Q zDhYP-p`KOkn-ZKozWJ=ZUsQ0w^Rjl=JZ#TXZkCBW47F1%=WUI2IJpwD^vKNyjW0<| zn1?5rras*y=i!GXMg*hky>vnKZw?tc_bmrSIECJhVY<`XlUIe-)14aGylHY!~+gfp6@SNR|~x zKhflC$)Izko_8H)Mhl;XQ{h}&C(*y;Q$)2tiYS@isG;_)e`N}^t?()a$dKv&yr&H~ z7Q1n_P;csbU?nphzWuuSRD05%A3320oL$5Ix};nAon3PH?{q&VLJi^x0oJ2@?_nFb z>f89Ys>771RZV#@1p(w&yO7-;OMyU(6Cv`tWAv=RA^k?-T6CXWdPGh-){mdRwD7On zbb`*S>q7VJ#6ITQOoX8;Pk0 zS_N#v5cx4bvSJ1kgx2Knd5({#(4A3*_FnJbb!moxarxX@)0I4(ejFh+(5;4iFE6Ize}u z=F?v*B1cJoXyR4XCqIuH9NH{nx-(5LFL!-%7j=ViFfAR+H1A7bO@dklNg)Tw1+ z(vWveL(+xa~+T6xsuFB_Rsbgf7>EFF`{+00Yy5aOGk(9biTplaLQQ_P^r5NaeAm(?MyZ=1Zh4w0yn`fx1a#kN);%W5b%kGUK`8FwgKsc1JjbO+ZQ4sK z8aH`1+T2S1c6%&sC4eYup(b1@58h7(wj}KdFLqETE1WP-GwHI57rYYyr zSFVy6CiK7L3|Iea>zo7+72U-b9&Msihes1mMh^FIuQ3%wM~fEysfyH!Vy(^c@FMGk`WW z>NCHV*0b*oQ)zCG3xAN+d8NlPR;$`k@87u1^dPipky(cZWbrpt^ZYxtQ{ky=4D<&M z_88H`&Y1ItIsa8$qvftyAZ$X$Qyl#`&f>z9@f+lcGpjK1*4(>J+eHWDk>X4vhFqv| zO!YSwhY&u#(ppyFEIcz_@K^ki4`fzzvcE54!lmF1&DLX;dL>37cG9W#f!TYgIp$O9hE{+h-_5w`aB>GncnOKrnv93% z85QQVGDP?St4XK;?7%CgAS zl`gDZ3V`u^RP%ATng;jmd_akF?c1s*AK($2G~lG?K4ergK?WVt`Yfcl2uM9vbO(ts zc(I&3-xo`d>jwQy5?zkl^|@S+T6{jeU8^?LRY#WWdQ(K5|10~vBaUli@}r;q(5-HG zC|mfQ-OFF3jMw|R2(jG_e-ud(Wz8(Y0cD}X^TH9TcHOaa3f@K=hKXiZX9a-lewBE; z6Rj2?)C5LSHkHZoHOi+fi^-_xSA5vh&5RHz%H~q@X1Mn=g@`G!{F&s&?w4En%;G*p z7nz7*8nW4(t+%H6p0`Wo`ka)z*_rZ;qXYerBd7^0SI>mbLpA`=Q3_+5PIb}*-46>O zsKbUUTvY=tdBit|@TKGY!o3p!ID!qB@se*D%&94WmoBhy6K1QpJhPMbE}!ie@>1-J z_=)DFz>*zyV(j48C4n}o$S#yP zoeZwAI25W|@~JV#-dC6Y4`sbizt4%2u(oLyk0dk_=>M?Ue`lunE3Qc%)d}?+f=>5$ z6eTd`U7*XL){Un0YwQbZPWZ9==q9UVm32rLW{-t3NVD;*D8l5Or}($4LUr!5Q@N2M z2X-!Po-GL%|SW)ksa`wP~Qcf~%+ z7muT()I*`tg_F6WlXkVcFMJNVw(H@oUROXG1&L=^`al_wAJziQ{JMQT-yswxx>2n9 z-7UjlkEWp32hQE2H@$*TcF9L_UvQu=Xq_5_xLdSA4kMZ}7H@eOkME%dP$X=?l}6xGr_piOiAit`B=z9d1)LLx^liki)PVJ3TG=rQe#5^1@AjXeJF}Oc0GGNy5^d5*0@VowU<jcy{3B_-r+Lo>z?m(XI9prqZ!Y42^7Fh_h&fWBgd!UnQs4z;7u7yCzJ;ES z=wn+Ry2d9F=-Xe9ec8gTc$ar>A?7(j_JlXc(4b8j)U|ZsgI33Gd*Rx21G=SQ8Gr36 zBy$WY*#J!z`LjGKb-&wn14$0qTG1KjuvDg3Z1>7y@|zl$&_4tVvS4;EC{iv6T3-ic z_Zsay@EDwB?pk3X*nG_Ow_o=--_}3+T*0N{dj$zjS%!o^EQb`A==8cUU!~`i66ppQ zJ_r_aCvVvp_Jf%Fp-5kGst(T+bd~JV`2BJhmIf%1GQ==LoT!p_6R34%cWiRah8KJU z!S(5!r#l(I5qUB2Rol-B3pkZrc6k##`}1c_k7LYHTl@Ezr%=J^Lx{)VGkD$tzVRJ^0zjFZ1vtv*JJq1`j%%}gCiT?TSR5(wW{)kNp5kx@=Zd0 z8@1xu_;&l0O^Ys?*tQp9ZrU8)QtW7d3GU3-GLBd0Zr1L6Klh>RfzIk;%d*`4#RAhI zZsa#9G0%IpdYzt+MeX8gjh(k_9pV@PXmxqzm06609b|nrMr9bqmg3BuSf#vQZ0Nq4 zr}s`m^H;0Nr{8jto}k#xp^Y>DdUH=*e$gcCs5Zip6dEiJ*)Htbf*Pmea5;JWZ2lbU zL&i7tolf+f^PXqNdmDzy8KMR#V&?G1#NH(_BZSM|M_Mu&XKJ6+m=Ro}+*^FrHQe*66!VVFA&F8_|==6$sx}gLKCYM<0(Fagq|t0+*G`qr3@`8jhv- znNa4FFuv!xuiFCirtO2;vvOBZNXV|&Y%1} z&Aa1{C)v`tIc=0}`nat)Rd3yIe^Hy}K1h+EGo$`YHt+0zT{K-4wsWbCz2u5vfLUT2 zx;S2rGzgFkvl_WHKh?fiee4k5|5d0C^(Fw3;51Sc?W=xsgW(ADGK+|B_Ia!QX1_|Q zHfJiARoY-0Cw&S(LzdJ1B?{iF_nne<H6ZGXG5#}gxA%#6a>v3!JMVD;?xFry)M|~%+bCo zf*mLQBe`QS)!TJlww{NmUdM8jM}V+N3k@w`Ln(afOlIz}*Cp>Vv&gk1x1I<2d{|ZJ zKg?m)%Ry#5?=am$(Y$!qotrF4@3#}6JL0~0lATjRM{4gL{1%wSF?^;S?+q6%)^uI7 zG1#0E$$HzO-R+$=6!U20=eI@Ca0v%E)~HyvUhQF7xwm}6!2M};{rT;{}=_$-!XagxlXv&UlL4_?sf(-S?Q5Bl(Q@)ef)2hoXk$t07Qtz+t2)8LUW zZf4IdycmKayYyb==bF-U>{9*q3voE~-M1w_3&Pa#3q2AQWF?je{Fi_RFK5d@mG$ee zjxh&?FRq#q$y!(x6wV;OFNHKMmh=)#liO7Ksr+nN;;WUNo6<=g^J|Y+b-R&G4UcJo zHeY=|8C(2hs^KNLs4_$LLi<*y{BG>w*-sr7b-{$P>d+~Z zt$6IWWtcQZgR6_b%BJs}$R5ophW34F%`jKf(@N$rTx}@>AN!d(?yis4(A4~-yDc3w zEW8>gWGF_?SD(|2A9)$3ZM`eu8E_{J%kprp9*LL=SH^&5)RN$ETu$Is0xj)$-)jEU zQk%!=qu$p{lSDe2Sa3PKOYU~`l6v2tO%ps^pw*Y|ms~D-^$riO|KbA+^;bNeBp;mg zTFX_PS6{wXfI*fD8%K)Dm@y1#qa=*$!Jl`FDsq<$4nGKLI&)5vurz0#KPpq)1&4~7 zA&@UPiJ(IQK48^uWw_W3>0_SzEfevGmj~K-WC`-PuqsQ#%&&F^!{^zE)oBCtIWk5Z z$m`=eF(wYeE=JcZAnzUsdMn0pyB5y8vHbW@OL5wt!sn`!qQv#`?rc~t@s)ZBw{|SGq@~$T>%#>z z{f^Ocme-{gzw4yKuwZgQS63nht&`YHU*D zZE{$dnQ~bTWrNG&x-|C548ak1xtzt2U&J-T-_zMkAE|TW;IcT^ zxyX=Y&xNLcaY`*DrYSY7e*Usmn5>$+2;(&-_;Yj` z&ehV-Hg(XXoUbuIhTR``V){RVCd3YMg2}NLEKT}Hq_r2|U}$vmi%Htd6mOPs%M6?0 z`~&$5UavGG5F_f%x@TPtuCNItlhPcn|Tm`*6W;H0d)JZ!O-oc@wm6I5m+cUAjS1*6IkVIQ_ATZCO z#v9DQcbR8FQZ2~Zs#bA+m830By<)zkz%9_05q^%Kv1~stady0*!^yRyMGdlu5yq_F zHk1(%(C$vfbucx5prK{`QIx?F@`^C?*#s=h*oh1>g;Vk_CXKf)>kGdvHT%NF61VF# zSLA4`B^W)TEZ)7Pi@D)FAJw{RLR~WSKFfv$l(>hgHd?RsaV5#^Z_Hzl_l}ip6BOL^ z`9@3`ykHzp#8?VBAIe3iqn(H;ot(TobO2e=k4i&_|MYqM<3 z>nwf^Xw6x6+MpEm&eN#<=yw9H>T`$v+A|~A@^+&!_`*HMnB+9AJ?e0h>hN(#;nqjI zBV=(_n|pp5wz=RsD8|eSBz@{+v0G1)@~MZ`4;><{Bya*gph6%Mxe2Ed50WvPi?Aqf zp2Bzldwx6C6@T$;_ezXdLn?|RA=_oi&Ah2?O>4R*puq!jmHz&^W9I1)p5+Db78AMfm1|S^g5cfndWXN z;euh?X7aCw2s%YsC1)z$txi)x;N3!xV@^ux4RU7FR9B zbqB5Q(LBBCAG~+IQ&1D50pqf!V8NkYxV3zF*(bDmk|5vx#QB1o$}^Qz@t5ijC+%H> zU(NlkFRNgelqym z_4eX6@>1u}<>vqr1E{J|!0T#uMkK>m%; z>C8RW;lh)7!F~eIm{_;ec%%Eq_a( zj=_`8r>y6|4=p~xGdP+mEpjwXU+&N1oWC6yOk)4Wv}=qzbj(3Y;d$&w_Qs(r1dEG; z7hVz z40GfmrYn9Hzfr*gJl|U5p-(STwzFIRi#4ofrTw%!aTwYdGq?=$-N+~o>h$fRqaI6UNuyp$)fe{W zZZVBg_9i>2LG8#B?C2Pb)iZGC&Kwq7)+5LKw8)Zd5cwG;;m<`8b|ntKJ}09DiDRM* zhrHt~4_lgfBNLvk(V>RM;KgKg6Gy=3Z`)E-(8}Tr75oA(29rL?MDzT$i$g^1DDIds z)o>kJk6Nd5t`^_c=qo8L^0NZ!em*zn${?wAscv^4ODkFgV{Ou{kB7)5@1_*`;#^!w z(<{`Cy&&sWGzx-9m!n_~wFx#4)$|Xa3E6qQ1V<`1<*kIJrm>5W$o0H;Oh4QvraHah z)|EkBCO@t0t}>(6DRDYg(K3t+JFK+a%bggL-{O!WtZRG&e?u4)E4=v@jtYHmrM8p8GhAt*oFS)580;Nkk@@6)u$$ zLkF<@%m9s5thaDmHGy(@VY|MyG#d<=#pFgDdaTVVV@%nZ3cuVsjwGI29+l#LKjWwv zahbX*71t`3BsgBNH?+wvXu^v_ihxd>@Vo@)t468zB*tXa0=Y~|I0y<%|HPQYVGLHE zBxUxCo(D5-F#L~KyCWE}Wo3s&UUT(Jx6`gcaNORiXU)>}`gGH|Yb2bh;l&VVT&=dX zN5M1Z)IkX8FJXC8bab&64K#sIu&?UaIVp5M*prxef71>4kJgY)lG4LiyK`RhrYWTu zU5rOOi(@&48#YhD$SrDad-}CV{PO6K2n;bFrMr!ZI1Vd1s?*C6lY+2@&*Y;ZiHntx z_XVDaWc!~&mQoaC8m;sDb*26zV$-6GneMJ;pp=_ae^K!4Am?4re{?LAa&T3oTcM@! zNv*U67kX&}A~^UxMkHL8GIaSS?#g~VH8hRWsxslhs&P|xd@W@*^n3FH+=@qUUIk?) zwDBl}m3`Pno21=&JY9NktRKJLXmB}t9FPzrp|Eyv?kyS2!L&O$J^FkRnGa?%X}@Q8 z9^pFpcgo6@i04p`S(d4(w<-&J!qDh+n2oLO7Mm2=YCD5 zP$6&ilRsZJUv)5wt^Qpx+*0Yw!<0Qqlw|zzL*#O`@mpTO$@tS5Dm!5c+Cv$1SRrR+ z=^Xb7gUsyzM|1XH=_x2)q()$T#NP0iPj_)Sm6KD$j|C8l>98Vty~Sd~cQ|Rwxl&n$ zffl-+_up}wG~(AHd!?+=75WE{htM!3RWvH{W;q*F^1HOC17C+Z^g(X4UI&kmy-+kF zyS8hO=R+%xLf~E(C4mWBAl@3Wq5iCHtIEz*DI01LWo8v0pHk<0o?Cw9s; z9ht6SVhD<*AH^Zas-EPnuzb=8;zvs$K_uNVT63X^Gm3^sMmcd~$1>omqvD)4`axd$Q zYkSWuB&BKy%+;TLXILt>QB$5}<64?4Nd^OJIz?Cl|2#k=78JrS{*;>%uau#mEo*rC znVL?;`L#n{YWVh!S!Up~W3B9oQNBqBtSxT`aoYqXM5EkDC%pg|ok8K>b|)<;Q6wtV zd`8T0b=_ERkx$rIGD=3Lc{|I4ni2onhWp58V{Auml14#I2DQYM*PSehRv6mpMZ9NV z6X_H6sSp(fpI{aezK!(@)m-~05sP}hjMmRc=kG!OWr~XsJ$lYs0~fpK-J2G&<#N?8 z`NdEKxa)Up-v3dr{#Td$A2BPTA1U$~niY_F2V_a9=CM0_5qs+H< zYW3mhG^L;A>4!LZVC!qyjh;sp2|2`I)PIlb=->(6zq|l|Pp}hx@g|0v{m4Ity8Bj* zGrQ*h^obYKb|$pf`%7-30#hh2e|DV`$JjNYR{m)>(~;xHbLwvTFx(d(&kSbytVK4i zsA6H~B>@lASq_B-^!V|hv+Kx{_}}%)zl4s8RDP;V1(_XQ>jl4`Y`|5N(#RWEW?8&* z{9J$SH~)?2f8QWW_!?`&kfAvT{^7eQD*?j*x&8Idr9U|a(1HL<0Axp&8N9#Z`TuI= z0OsR!K!;Nqjp-r%yR{1F;}{XZwcy!EyP@Wvo(4PJ*KQKKF??T-2O84#hSh>DG{ftS zE7tb!g`d7~_OVdF&W~kn&1n^Ni088T!mmi`PsR#7PQce^@=fv9em2JI&X^oJQyi$* znEkC*2bi292*BkgP%n(a_Z$hd_!Yr#8jw9gW>|ms_8P zPo=-xKlp7tDWTk=GpEn^1UV)g#Hx zQ}1uU0lm*Fdcsj_w0o|0#IdEw|1;Pxo$haA;NLSG_9@QDi1q#T)MfNlPVK1`+zW`m z3mZ`Gc?*L(j(s`uzUm!cRbfeHLSN$B%s-7$_NNXB(x9F$T~gfWwT>klz^+f;C;8u* z@c$MW(sBYVmi4;o;2T~rHxl9b%TeIJbK>7`c;$dN44n!zmjdkm!zFa;#_6mjZ`-}U zUG|?pZG*5sr8pOm%``N3>2<~m4p(>f-&6fA2r_6e*ABTPI z$)jf4?$CW+VO-t2nn}$Vv~e0VBk=n>Y%s#iVw`#2UraMrhT+loGuAE`KfWWroKRJo z9o~Q7^}MPm(QnoUQn{GLf{mHVcc<6e*{Bk2>{Gjrc#z~@)QCQEyLuaTO1quOzlO2} z+*G)1mKZ!P_xsKp3f%+Od!h#>idDZYOq&cO^{sV>D>>EH3;v_O{YWWe4p@fOziP}{ z>v~;Gj(xY#I1XRQm_k6^FCY0sZu8>oQ( znl8`2&q5&hk>bk|xQ8J&s1!&h=&rUklt~XXBysGsoT+>KTY@zsK)}V`%%u7EDFuzq z(+pR2ka{_9lLd)q&Np(oGjC=1+IY2-7p*-UZPXdmN0;qM4X~v$NCjM#$z50cO1M&8 zrp6b{57TTUq7LO6yteF=8pM-IF_h9cWC3Y9v)AoqqVU5>wEcP{_v=6uyp3??mWpMF zD{(fjL%|)uvp-QYA^S)8fSnWH&(fnna-L71zsdqg5@Jx9n^<--RT`bG{6_r!Fk*JC zMsp=kyKt0x`Hz}tfIC;ElL&h^d0uZOpZ3$2&$v~ev_9S|fi%>s-pke>HtdZ#?R_n8 ziL+_BmI6+UA8MT@)iwJ71#@zlz6#?DUG3&^clRapNG91YWprzH!P4vLHZA7Ov6MR< z-%heT4r8lK2DEGVo%ds=^*t2unRH)VpKT{|Sf^)x zCV+z1m|O)o*aAwaDz95-a{%yOa2!`q`KrOFgArY7n(d|W#1wfFQ=RXOia(`=MyaJS za6T-)$SIuG3p1BBhVB0LKnDKAJ9`E~nlU-nzrEQjH(CD?=}g4qOVI*hZoR7_<#Ut) z#0#eIE)^%U*NxH6Z3NR8u3+^tT`l*^{g=nK-K<3HALP^40mU9eDz{D6g7dspO(;-n z@2#_2e?MKOcbQUSv%F-(cg5><ebl-pI-bh7=UQ~maFdTUIz ztC=W0Up7+7Z)f|o$ftAtM0wZxaPxH$_q6i6#k67s>l0P@7DUDu1atc3n%vG6)LoPd zGNsIQI$Y4w_dMz5(92>m^2d_}kq2einC-<%lgr|0r+o-~pH@6B-aP&zG=nEizBx%k z;P5!?4j9UtadJ$tPw-?Atq`E*N}?a?ygh7GN@6y!9&o?deYWfc$!yER4mvvmNND(A zgpNHFVP>w2pu1$>24j$w6a_Vq@jF-R zTh&l*3`Y>L@1OX|U<_-87=sp#dh?Jfna=tAEfAyV(RvQnqlIgX$*!i$4VJg$z6HMY z@xD8e_JcyS!w@5xBNlY8#uE|WlT7<@V$k4N45UKcC?6cQ2C=F&fr@LR&CY-{h1dIX zr#i(PgNNQeGfXi?37sZ}PygKZHiY~bJPN!3^$8mgeM3w@pG%m5ku4&`>FQxJwUQYC z=<>lU!cBrJk!*%-P<_eF20=fm_AP*MKBWV%Z&g7p83squ!5SU>K7`N*U{bPJP?)ju zy%bOf*(XhCkiv@Y7?$o8hD_{bax}(;^xOjzv^sA}?TTR#eW24h>0tF9l7L|?9Cxb_K>z8k1h=le$!$QRd>H4QKvY=||e zit_n)%UQNH{mymFB^#^xn(x`i3|&>OX!@m~+p_vC;&dAHJ&}bjI|w=qA@~8{vv)9c z2(`Z(BIv$zU(G%i(Wx->!@H`WsF?j`iaJE0yKQ(p<8d*mSxOjk-&wQz9pMcoxyx}{ zc+GMR^us@QO&~MS!XFn4td4L8H)vsvuWUjyR|3-QSwwlTTYDa&k;2J_g7^$Bxqz1+ z?0r{f_0g!mEweyZaL{~?5c$V@KRmX%S}>C^RApPp#BSWkBHEEIHMt8IU5v%gx5nj2 zpTs)k3=shfiCSyN4dIAR*oCqK&rUHX%7%NvHXu`i1c^Dw7Yy1`?&L*Mq7QkAq@E?< zR)tP+FkYxMg8EWJ%Sb%&N7^_ z&q(eaD~`MhILP=FK}RRZY;C_4BWjXeiNyZs+IxYXqgOFvlG4NX(8;$IKQ*O@tEvf@ zJ$YPj#90Yr|EhaD%YMWKI~nJ{+1L|9%CZ58P}WGWX9SN5ynKTYP)O9YboWTuhwYD! zHs5?U#1Fsp770Sa=V+$9AF2L9Q!!Wgm?1!uTmXlvWc4<5L@OJsgQp$&kxESzEu6a= zD-SAwq=S}9pBj!`w*&?K3@uYixFgzT$Emw@3rz8DaD5@_Dy6g| zKR@s~(k!^tpmoW64U?S3E1(B)w;i^N8!UYtggC`!(m#W!;zLB9i!~Jp`jTHm zJ~#!26|RG7?&6WA3v3V8WTRS|YjtvV5WG(-t7^PbW& zoi(=w_l7(k4+SK@l;B(zyS^E?Qv!R?yvNl&s$0kKAoJ@XLSSrjf(mk5_OwGi11V7z zwbP8&j%1hsKO$h(T~G3nhhoKq=qIoXnu-TgHMFl|qfG7N!!8;yi zY=|IAW)#DN&lB9y+(l`5GmVY3#S^p=#iFe%Z5!#E67&wrhQ|_fO;CbC*G8FQUV5G< ziqH@S!4ET+5X=QW6I+qEB~*i=ej%_AkOp04ecgNgf*lZYO4GS*Y65CLF`h$j&S0K< z08*eD@=MGhWo2E=)x{u?7Rzron+#$YDT)~majz}LDPP!F?aoe{59pXZBR8O=O_Ec5 zqxTZaGyri6jPClmZD89Um8rrw@CXkayaJq|G5!LtE2^94?mnZe>p+O$PXG zd2qKopu62uR<{958;gmnOgm*2B?Vyz{0W}tY9K+0OwgrW76!S%OcZHY11K@pWdzdH z!RtM(=Q4XHs6jNPfDmAYP|0@gfq`&^Ay(oqDiSc#Y&uNNk9kt$aJZhP*fucg+hJq6gu|$&Y zUV*8@xX~}E!!OmT9YWDHqi~}9A<6cb#;GQ*WF&ld9Ds*Nb!gN)EOa}F0^Y%_2_6|5 z%H*GKxC*#$1BS`&9hZM##y=1Ez3NZf&Ppo&5ha`!+0XH12PBZ|2%u3IPP7ehL1^M# z2@OIVmI<ny!3QE=Mw2O3B@HY$3umQmlZKdjs>1O|ZEo76X z95B}2;_93$jPNA^5kaJ5FCk$G@(OW2{WZhrz!7KT6*Slr@T8b%AryJw{tG$#-=5M| z{4B<~Xh5~m%9@b?sSW^N)Xbg-iD@&9n8efC-XOPmlsO;F`8P!aI@iDDynd=mzFFpl zS#D+4qnXD9tfkfjFVp$v-j`X&ME=i;@&Cp?MaZdFHgdcK&s?1DIaoh`RFUC7i{^mD z{Qa?>prREHEFkSpYuoPsFs%qG9;eYv`;hnh3|$0<8h3ms;hW(&L#!Ad%KJbm(|&S0 z;ok#Jl&b&~BUdLL*Nst{`9h`E17CCN4z0V=>|b6p ze~X9AM*!A{yE%5tbV;Q@K;sEpfd5CxfC&1%rvv~Sq9~OTA!`Hbtr_Upk5ae8QuI#u_!k8y_`e)5zl7m}gvm*M@&l zZh^*bDStjHYIKfE;S(Gq_^&tR{|3i@no#!C1p2p1qIn+Nq1RTSL9Wii@FeTce;;69 zI1vC|smem!O?>X;9!?lv;?d^)hw(55^l_47uspw~ZDU=!X_#Dj^?L#LefHl4Lj)VA zx7B92jP}rbX}^KjP3$y#Qay@-rwHme8$VR!WOY*lCiXS9!)!a1PPY>Z?T76d`rkgh z9Azu<8(I>-yYBANWlh(OxP!LtL*|z7vd%o>bZoibz>X{D*er;UBPS&rf;y+)-t*~0 z84Q@g)FjfL&}Q1d&6L0Xl!1CezE&tJQ2#XG`ko*d@ z;9%@m+C*o+TO=pE)T5U3*B%25B4q+%G^*Z*<_j9`^Za3`w*8`k+Ga4&;j8dzO<+(P9zl19l} zDnRzxSFvczR6j~_?s#+l%l>lKR1OGwo{K>8YkP}q`{Ks-53To?I@iAnv;EIf+Ux=| z0pi-fK--_cFRaEQ(<-ExZX9MWeMZD2PcR=Z=<`;1o2(ji+4A^sYv=&zP2(3E0W-Ny zx)H<>njY~r&q|Dk?SzBHMooQ>1I|V=dDHi+y7mpiGeR}24qNiq01VB(t5}w>{X=N; zwX`^~*UhiO05R=Q>}Ms09uL>sa-02$R*V_aMdH7$`GhC}XOhv`jHI}9>jv2f)^;nU zECH=2luoe2A65K0Wp(>J61g@!3NF&izWP1@y`J@Ss$H;`OKaI&z-L=lsWk517~(%l z5DP>x@!k}u`vIJ{@fR#y1u+O&D0!lhL+YOFp9Yj6V{*(2szXG-U1Xz0vIxdwEUkAZ ziv5pYyShx4>FMw}?Y{5+icZ4S3jp~Wz`-3IMIDuZDS_8vt2dH+iBKRo#$y)%TPt~s zUa5bf1#thQkCR_!?Mn;*`ViGgf0IyTME09+zjj;X$D=v}LF(7jl%=?<5& z5uhpJlDD6)u~I41nQ8Iz5S`fuj9i{z z*P7NRw-<6jcNqYy7t@U9A!|4Q{A6T--i9YvS;55Q2?_QN+4VSTrUL?;2rzScYv3^O6$iLz?;OBJjmI!( z+q*8rJ*YYPKwSkd#04opLfC5{;Wp;n z5#Y;tAlx5K#{XgXB{-h?r7@tVV6fPyC@{()eMi;_1Os*MA`Bil3sdMyq{ecVnvBn}!k7?Dh!jjjguVQ39&`nWIhlac z$9LncyX&)3L#;a7)lbK;Mu@i+p4X=xQ&&0?~G816A2rc}JS1V->%QPedu32xU&(S@_y^wf8C7Sl|v zTDPIfL(xJvG9%J=kj@ahp=sMd_%QHWxukvH5}(bq7<;B~6aj0C?SV3J!lJF+<# zw{;@JC;&XB%`}U$N*FXa%4N!jHj-WfDN5S*0JM2h9@|f)2ydQGP_~Fl1c;)Y6^ic} zvOtA!vVh&hQclqK@|bt#O_KFKG^bOpv{RNCwSno&o5nD*d|O1611hksLHjFK!621$ z=)MQ4JJIvbo8wObF^ERCfEre`lCFu&XNllvS1`C#YHnKFbeOYzXQI z!)N>$$bIZbM=110I4wud7T#t*&xaJB;jQ8J{Xwokf~Kp7AsjT;1=WjOA@G1Q6({~X z*BEpnwk~@=P0FSN+l5-2W%30zV1iq^?M;;)@FKoJ6?-Ki#sZ~U(d`C1m6MeEj<7+Y z6}>w83`IYVCwhgK=+!4l?H+^V--a<6dE=U8xIiI&&bALIL@YgjA8ZIGO2>}C{9-v~ zhHQ{sO+F_tDQBY(g&rFJ!P2H_^?p#8Rw+tsz5 zo|(M!1{7C;zD#LL)k@OEc_;@UhA4*Bv<$Kixzpbv0CR$4 z#9~h2yGEQ@BZa7R$GBbNsk*SYYzSadZDz`t7p?)AY$AA?a_*ebGk@T1#OierR~y_? zXiK5-j-Aw_=UJ!!n`uZ5>Y`GHc#fC!{48(K3{w+IWi-++FoE6Jl(b;a;(KUN|DslT-F+vDSwVVBBG+^>-A&g; zOM#>Iwh4E|0 ze3$Vh&x`t+A1+GyNxmk7_yzQ8#?4{#wHLOv&f73i|yfq?kXphqeC@V3>9fbRC!szVBOAfc+hI?CSm zzAZ{uAMz%-`%NzC$Da6fzF-l12KNc@qBeLsNYQ6dc8wEEun<4*IHPQ#w8W$iIx61C z#yvI*Sh)l$dfLO^AMS6%k7n0B46dE--5%M;PDiSM3h*44bOhn5rotI=WhqeF)))-u zO#5J#4(c2+brnLV5LyWPXa<`nB~>-z^d?FaItE0M69k%|gc^rx0XwbTR-=V+3<(-dN z5l*AJBM3kcIqvNJtXd!+`y_6DV~|&h(;yfTck>AR7E1O;^}39{6t zvFwB_h85^PW=(G`v)4^;4=uCLGLMEbjy$=9NY;I!5vvpsVgo>w$_P{mqFUNkQ->d0 zAup{W-F4W<+4B;szuvdDE*}m$YN~4rF6!xB9Myg~{EiGXEr$PEA&VoZ?wH zciHnM(t{NsL|YVcwan)8S!;=hbs^p%rh_^`+a%%wSYvA)Y7KQEk%8Jdc71f@u^Z72 z;dMdM?;SU1VhVN3euD5TBiwdC_}rE=E8H}5tM$oD2Oy>Fe})zKgdeGwT|rYUnyQT& z%E-Fj`~K$ID8D|${1yhZM)B1$&NL{z>IHPCEg~9W1#?y2yRd&eT}Yd^^e5$Ej!^U4 z#m}E$LjQTezdoVGdZ8x2cY+F{^_%p@0zv=&g#<@i0FQlx`-gvn{NP})$FZTzYyTeO z|3>}k0vKek-?a1J4HJQZ4mC&it=55)5c&P<=>k8nkmMi!EkWt$+f@xGGROG$QTpEi zKV2Y_8}7x$!BNM(>^VL;HRb$zh}>hJwbpDjS5a0j6lks^Gt5(kzY!<^o((zXT#Nwh zkA>xj%i5;sWJa+TlR6;DTLhAeM8-brZ$|)4$>pi+&9>zNWCDjzR*qkbi~9(l@2{kG ze6MiY)0m!`+Oh_`Y-)ijeT7G@aQz3F*2>D!XPfB(2h76-y8W-+fGYpdVKYR3IBS^= zYi9_qZn)S7;ALcKvI2tq{q;?}msBhlGePJi*kT7W%_al*kRK#A8@L*N8SB@Lz&fNT zE=pnqdR+&4w7l`JaTB;Vb zGdTEpcQjN95Lq_rFur{K>hN01NklQF3Zeg^WgxBByF%4in}9!*gxlKD;ASj&;dTik z1leTvnbq?+_M%W5V2hVM-L_Iq7l4E1 z7P;F-EXMp37pU>bbDN*6=2tLMh{!aJFH7`{ziV9hfwdrq&60r2xB~a4eNjf|hECA( z-4^%Zq^7~om-pEZ=Y=g%d0Fd6Vf1CT2Dfw5eCqGROgHiStgv1y&x8gN5sE zZrmv{8a#(Gc#DfT%s>?&$G8Xt+G&{Wlp~*;@$7}XXrVM*#_jt@h|lA8md}HmroR5+ z+O=Y`OxbXOqg~@z4bU0h00Uyjy7k`K1z>f!eBP&Lrj8+imN42S1uSdH-Fxq^hkY)s z2B)T`GRAVO0h1*KMI#4v@JbbsxMuj510|cES%Un96}RG);7(orn)k2hsTEAaqB9c*%}uqz9yb0!bbB733%*^bsZw&@&%SJ;7vx);lt2&%lzUy zr;97>@rD_qn+Hhi5kJqgflo6;;;K){du?}jcY(X*B(gbf{9P394`JJ1X7C<>wdwtI zD!XZr!qU5_AGoU~z=XLa@bl8cJU~qYyw6>PZ)b<^D403Y($nuzBhB>cm`}S|A6F?J z+C5?}evS8-`bE)`%@`JDI;V*z@Bz%W&VmdfENAQbP5hql*dZ3as%YT{*H_K1E&S_* zdYqBE1KKJoYeMHanAd;}sM>Rw#YiZ!JAkTG*B*e_D97A9(Y!5qWH%u?kjy-M4KL+F z@8B|g1SBO@^URz4@$HRE7fdeg@B|wP8-9r7J5Sa!+(0@>k+m(ahP2s@&fFFybhDE& z7LL$QM=|Q^al_w1XOd4A*SAK>7C5gu&%bw-8H+(4)ER_+HjSJ8tK{n$1RifAumTz9 zd0n~p#aHW*PohE?Hfj%htq%jOq9nZb`TURthsDO_d+XNdAHCwm|0x%_psnB<)8fs zez%Go%!1#=x>V2xoz7{Iv~Ki+OF$l~)1R@m~_S!p&yA?#Q zG&IqQRSVv3^q z9}z_BM^?KnhO_-`%8~i*EcrM>-zM?EIcOWO>u0{O7{?c*0M%_Dz`+ELoa_Lm<5g`p z02Q4@y70xlEogW?|E*Kn@{wRyeAh9mJ$*7>k+09=rK-W{k3^ObuMD~@Ne*&A`VMLI zxlZ;u**@Mgcx<>mdVH{1{nd>~=C(7E(-JA;L9)(MZRhsm zM1b#nL|mNXG1P@)xPBzcgogav#F@a++7A}>UH2gJ)67#+pSu$wPXUHj^CQ)xHh)uM z^AEdS%YgY_OLG(ijiHF9&!)O$c8o@7VTb>iL9(gKOo#n0&KsIpN|ARH_mSb4fBrF6 zc=vgP5b^~{2M)qAOD5VqPS$AkH+G`!jBPpai$Zg?mhGI`$e&CQM@gVL&ouz*jDbm5ak}7u_DTD?=nnotA1jvHJ2ATrwxj_!% zd>G)_%-dJ)Xe|zCL&(F{T@GbBWwG)-!)njRaw(*J5-k$hq9}xymU~kBMKcWFT`{psOoJjoL zXG0bh@=nBPb=>B`@TI;MSvQGXhD;Gi@rSy0`}sGFI=XW#6Pdcx3y2xD%F)tC{80h5 ztWH8%juYWKs8kHw*&bjASj0osx!Gzbqsh$D9*+WeO((^DX`xfBN5hr&ZWgrtc0`Kv zOi^;er=8Vn^Rd*%i+<9OQpgyCdo@_WSNu+FVy(RmHryyp0P4w^;pW^GY9wc)0NC2^ zq#vO^@Td@K4#QppjNo%)Tuj-BbbejS1&|urDEFLz4ABG5lHuKL>!Zg1>aoRaqVzdL5sjno&jzLFX%h?j)_DUREjn35h=k&wv(5XtkN zm`Gl!^|BAw*^jfyWLUnzl$oeOxJC(nKVUl}%?OXDLW8weBnZhrJp$jgXCpKANkx23^gcuYPu-if80vd}{aW!MZ@~c+Ikl0VdcLfIEJ&d0S3L5^Im!r5an&U)Rr% zqKSOs?<{8nl(<`4-NPdQnC=nYC?;SfE?EYSNuGisP}1Z?#^i?w`D`01m_eS$scM=M zok2%Nb=Z-d#J-O=<&V4k;OzT-Q?G#JhG0H4In8NWLH-WAE3^wLW-Cxl(GiipQZVH{ zCN;sW`NUZ4YN|vhmjG;$OZ={Ww&4Z^`ZMAPLh(D%o8+!CU*Nf&V%XE-k(7u)a{$E`j7A_;@lfk?TRXv` z2ZrtPv-M_A)SQ?6M34PRafMjQGh|3uk}jr!be&hyOUkS3zW+k;USyFxqRz3-tTR@h z5Wd};udZ6Wc-fVF^oK-AAz9d{-DiC%&rbnLdZbna!Oq2)3lGs4E`&=2i$g9!Lk{wM zEdZ)hSFYn)@R_||WSf5@(iHAMCrj>EM3XYt-2DV{LgJ8l5lK9-SY*Dh>x>)Xy#8#1 zbt)$qB`&g161ONP)gZcJn$^xT#GH7CFuN?bA?$2{ zs%!`Btk{!kp6pd!P_ikZ7t|2lFsNUg1b$s>(EDnPw+9*qVI$qa*Y2?Mdn`T4n&g@2 zV1q^{M$UnYcy1xE-J^ue;?XSb447>JGSOsB_776K)?yez+kQM+pq z=mW4RtI$eFFxLKRfW`CESFmVWxt14pNkVvbZaW2Qj(BQDVI`50?Ji1iVdC}Z^g`vF z9+zJJfkW=luJz%t75`m-F~Q-M9k;QF7fj{i#-Ufj@ct`OTSIfL|7nw zNlrOVN#NYzChnbj!<&PIn?3>qZ2(hP?Y)xW%6J$)^eP7Du?3ld#sUf7t2I6K1od$T za#ViObmTO7tVoQfXg*d>TFmlmZJCj5sWv5?$PTh7E7g{*9VTfToHRgyS2O z<~Yldkf!;gH)hB8lrfWv&$xkms)D_z>Vwg@96O8GRG z3`H9WDp?!q#-HzJt==-LVbR1cRO#fLFflwv@nU-+)nUdoeG!*Y-vxI$gY}8whccRB zq_&<0)Ir49UclISH?AiGre`fcBOanYjU!<^HQZgugb{gcG|%e8m}eIp;JJV*T3e#-#PuXRwG<2e z-&9uWF|Xa^unkIbunAh^P7lSj1@>X!R>&MmbI1*;ErHAna?D?GxHy5Wnbdl_dIM6> zP^t)l$HvUK12$(Psta#%ICto#Y(O~vZhTQTa*_+C zTPJ&|3!1QErt3X8A^CW)W}mt8G&PH9w1upHVWQbjRbD-O9x z0%chR4}{rLrtD*UI}#QqMBDe@T_|ZGw}Ffs2CS?vYD}#XU+vkZ9@6=Of=SLZ$fYbz z$u8G^YN$r`Klw;#mg`JT`P1tQBZuawC-^*zh?L(Z8^67;b6Uji1*IbNTecvU@prb5 zpDo(>y74G27o^lk4#JZA`XIu;Q79aPo8_XM0_BvhkTR|7o&$7E-ra*jY@iQ%yEYNC zt(VDIQP?ZLq`@nc84Hx8=L+siHyP1k0&iZ@g`12{HNvNYN z;g-+?;>b%;53IKC!N~>6T%0J6tb;c(2vY?!Q0MPu-tpRx9m0$9qkC96C?AJN+REZ< zpBsllv*CFAwG0Us@<%#*InB=^FTRR!8204us3^v&zHt7<{Z)vM2Y}#KPB@TN4xh*z z3k|T>m0%PPTw%z9tQQs>h~~rL-rFI}>{E0~@A71zpb@|ur*P`fMZO7lgU10HG^>Jb z<9VPhrAJ^o%Q`1u*aurpu@UOz(A4j0`J(H3k0DoK@5%#IJV;zXS-k1s*ri!xn2|HC z>CnjwTe*z}X}0ps{A?ynB7}kvC9U-68fQsbzt?CPhFZLGFw@gWuLCboXCHk%6YH>4 zQ#L`EUx#yOgPi71+)l+)1)&293LiN*-tor}&srE5GphyX$~gFU+j)m{UHC2x@ktOK zSCg7DxWmY?oV%+Tx{X5?-C5De`^iEHcEcElYxh^!qu#l{wT#&Srws&uXspAuP1CPb zY0U(e`!+XZO`m?rGG#z#+t0Zgm7t7731vF6=dFlyW+wP(TJ6ibEYU!5;(%@Y`IF#I zBlOe)>{B`Sl|GqcRkR!u+wWd$EwZhBXduGCA^6c@5q9ay6z3MCVnT$_R z%&@XUX6=_-*DqABvgXY@zmJkgw;&jyr0Z;si&hTu>{F8FqRv&Xq|gNA^eD68C{Swr zVapeT!b`XV)!&_z=zFPJ#$tT0Om{Q=s0mp%)*!qWVtfxi!iWx@ACRzYyy_@PhXzQJ z*a2xlFyCHN6W++)M63R@C0otWEJ8NiLEIEKJ%`hrr*i($?+~<4%rMQUZ4l&b#=am3 zJqh>$#=!fmp(>+HE2lw*4x1wnNVa%ETP)#Nc1?9!)IqU_UD~-T#NhGde*x~Qx$pzd$H=G8H^6s*& z^xgxxJALtJ*v0>@2L3^j#0zgF&u%RYJQwhicE1N5;x!5^A+sE_=32!_>;FtrU8gBg zmfa#osA2Gx(+pS8L(WzhO}m~e;@Ra`u}|EGz!qjbLmIfaY(^b^hDt9L=lgZ&VOCHj z+o{=beVUc;8qCpG#t_PT6xIK3f~uGfLV-`xk&dxHN26y+JR%(NM{V>}eV-{XZ>Q5U zu%FYclYlh^B#VH$V=w=vuZK;-)K&ERoMTr6 z@Dl2#0$c&y4oI=@7?zaeITN#iY)%NMp|=ImPAI-_BgfCCqE*{Jo)uOr}g4 z(77G2m=)m8*Xzt7Yp|&O25FF{l=h%WSJ(=WCp>-?N;cemlC-TC5wm& zK_PU4*oS2fA3ti7v_58r9msqSXU?BA$QYiT-@%x6*R%o`2z}XPXe&410%M*ChSs$@nLou1jQe`NE_z( zd8y)~PUz5N6YIyY*3wVJm5$ki%#tnVI${4u3qV$F{P!OI7L_zjrwq5;amOMAY}~9X zDYB)rmKsb`VPkqGxkp5k9@y;i^+^~Ss^fD?qR3xP&RsIpWDj>(iDuTqJ6!t7D0k#Z zoxy>PK)&j%7Q`K8onDn@gNw_tlkM=&$=AU*Rux7vvWF`t)Fw$_T)( zG*Sj2>Wg`d%ecX5KHkSzuc z09QUJVLjHl{}4CkVK9d&0BHU^9{8+xkjU&^X%PYJeYufk71nXk=_6m*Hdo=Jw9oVW z*m*e^KeDYh>OfG!M=-m+$OUmM7w&C~K#pKT6J!AlQzjh(?Kl(bN9g`~ZZ-7AtW6G@ zNOelsiAkZ+7BV<%YFMuN0(+`=XlbcF=!~!mK%^10 zyC|^-+zc2(EchC`JcaBU)<1JbKSw-Jh^chC3gVy6CaNB?o3D9EI(ppvTSG+LSfaH# z%bR}j5S&vi^VXHB;}6Xr7m(!d6-mwCM60n{XF1+N5XD8QS0<=MVO6*&h(#UJHI zf4NgS_b)spN?$^ju-h%9wpWGBB?$#y4-Mp8vXI8_rbWDMw<&Cr3$+Ce7!8u0k$PY`+*y zl9-8VFXXy>`%fH$3E6tobDpganNB~%=L`KL0c+o+?k8xOhkr+Dadb!Hk{xR(Pcy|i zG2=MdFLj?^WS7fM-S5MaHF=2^%qlSZmX92!!>!;dkS*PAxi{k1fr4#cWW>jZH(*!0 z&M>zw`FlxvrMVZ9y4$@4IToY~4@FoTgn~u0OcI*79!(%o(Y@BT9MN^7lb7$;pDO0w~3LhO9+iqUKxmADvLYXigI| zl9R8{{+A)DJOlMmz~=~)6FJ;#7p12W1GmDMTQxy?%!*kqvV3d< zJS}vt8vkgZv6OIEb$^aFDR7qZSBmC99){<(z8en@S`HI^&oC}HPT@Oxt+2eLcfj_I6LP+;_QilNeA(R4W2I_f*lI7=)& zC+&9wrEK&1;J(M~X~=PgKa*&X2opPgB+WOg6>8c058Lhk=D-eI(NOkRM#Z*Mr9I%@iX$ zz_BuDm~g5ELHoWn5br-c`z-vd#9by>*$_rnw$rq2)j8%@7*Oi}%PobTJs3L792M>g zvJF*j-qXvb>&-$ZIZWr~w*HN|pKUd7i+_R-A3McsOB{*ncr5rh_Dp`Y%&4Cjys_BL zOG_rGrKyZ*6`~dmv|JHs(`>sMI-^yEeIf`J^ug+S|I`WVajKX6NTxF+AQ+>{xT`zZ z7)P*M$^#UOM1p@OMT)?NWk>eW2PN>=&`_(R-!jLFP_q^JOHwlETQolL*D3I5LECHavEkvLmNbx%#1RSH7JndlT#??$sPKn+&4eniF?WsIvW}j z+Iro7{oJ7Ppe3cB|Cm~CYRL1G1%nCxBFGn3^O$o3+L>3ccug#WJ(V)5wqWMOhhvrl ze`1!WjNF}!jAno{ARc6kXUyRTc6yCu_tWA?(?A|8#JETPa_{^s4>u0%WKCb9yP0Q_ z)Rz%<-w94|UGJ7Q40Oit#vT}?lt=ZWS)~Jy;4`(-D()W%X)kyM4Zsr5cJXlR^a4WD zl|ul*bv8qRA+N#x&gzvcBBGSvZ^Q$Mi{2KYv@u?M{EN-amc~7d?$58+_>~#li4pUl zg}=8V!mqiE({56ztu=T~;ZzIM$+(E?z4S?52cHV}1)I-R4$t{ZtDE+bFu2-BXWIoC zDeqRXn0+S>kuTJGWIh(bzWbikkdo0A>7sSbzkG(jO693#nEsMxvvEnXtvp6GQ#1Jr zE&4TPui)4v$jR+a^N}V)zTO6+o}XexcDNYe>F4xnw>>ZL$-;RgT<{2Vv&b2my->Gt znpK;;L9z6q_5;rJVTJ28gDCUTl&{MyIt34hU&&V%LABZtMr>C-3}+Xuzy1N;;ZBtG zI@0~EJ|dMv9bOXy)1tGF_V&Wxlo(5-BQmr7n*#XKhVT|9G`rU$!49bIvf`EQ~yHMK@gMxxM)= zC;+N7?A6iDcs4*Ai}5N#;lFiN-gJz@RA1t5YV`yI@C7*r98j@{(+xd1c)}2 ztMB9FEfEL%H2VcPSYj=9J+Dx9j|}cQ5!1c0IW^-`IZ&K9J3c8(zwUMWasD+-(v3kf zjRX!^-*D)b6Ki*7)7KSB_;vWRM|0ruK&i5=^NBOn%7qs#oA3I?!+peS4tQEpH$}_g zVzMd&XX>vw`tc*_S}$`YPSWVz(FEAr_Dd{sL2dCI6pel}FvW?n9`068xv%{9nSW~H zJZWyP2SQZDYZO=v#XFaUv3r!4=e>+4i%MVMBz4DIi^oop?k_RMF>ClNuIFINljyu( z`pjW45x-6ey5#j{NIO*C=do4mgd=1(U;3C1*(yYS>DQ{fU}xrV{{|0TVbnN3DAbS^ zaYQq|oW0Pig(i`SLql{@2e_3EFc6I)Dyx+w-Q>gpEhoz9dN%uLP(GVspMx*#5;<|~ z-Y1MMXTKreqJ{QFTP-bLl=h6ieA20A5?3yfldXooW{3J~CLJj_xkIrNVIxh-_GKef zZzGe-LM79tY?(WO=fzmSkk_`I{^#{}xg(POU4>&quvbwdvr^?@y3$O_X6fPrPa3aC z1}u(S@9R1$kINvBz8fM88;-MYdXQp_f(Tt;XSM&ZuPmv&tmD}8wG&pY+*sB=;0l1; zY~JUM;_f3c7W#W^F~Q?*x1;$^5WCT?d@NaH*7s(>>?w`()Rx*4f|i4%7?9@6nqP6b zWg`*s5xZdCVGO-h%NiKKmoj z1{cN9l%if^L+u;3n^oV7PJ6dytYF00n4nHJUs;GOC}Ee87#)(j_aJs#?2%?AG}tJ; z>pPzVXWyUvu4h1g<3ALl6LEh>0ejNcr+9A(@x1|O{ZU0K^2L4@DW63bg&-jIy)5i%PY8L!d=Fh|@HxP_azT^Ly^DBvOKBRU1HDw< z#Ls&hbRR8i4GSP$i3DT~-$(0O!v~&m96It-`aWJ36b)cqrAet<{Xaym|MkNW2zZ7^ zo7Eed`-oX00g_etBLLk1324=bX7?)IJ1^)2lBUwuEN!(>iEpOrstO7VS#u)8>F${z z>PO6vER`))f^>k7XJPG`0XW^rKZX1UuUP*ovqs;|L_2bL1k1@}&*aYJCp3|D;UBXN zl0gzXChNY_)7Q_Q{)60_nyOW)JblbUp>fahQOo&dronP(a*jEe!?ydjEvlZ5II(__ zzK>xS+61Q=v<-IONm^vpx|?1Htk3T>fSiVW%baufxI-mz8L7DoLku6VG~D-&9n>c& zR(-?vwycU2xz#Tt9_ARWMcnh|CLbk9xYgx$zE<;nd^?d8U_|{4KaTEu!-?*r$GC?` z`!Ja&e~`lfw}^D6a>ac7&$rB<_EcQ4yaw4}QFXV&eRX{|T$b+hzAT_!>88?N6E z2DqfB{v>+{I?O-NR##sLkBB%_li|Ma*|k{yfBw7~9~_(qG`bcqj<+>FWiW8Fx30I* z*$!s-f75(p4$AENf0%#&>xY@J2mPm52>?HsFK$H~=kMK~NS~5~v@!YdW z{?`!?l5wZhXn+Ty@UOhw98-ev%nzC0{r0s=)IqN&X;g+E)T_j{yQ}Y8h*<_|Zd-c- zdx=?qnT!NTG6XR|8HK9^w}DC1HIt-azWpDh4Aqw&_vEHDu?%Ay(NZl<#3CQp9+6?F2J#r|`Md={NyAlJ&r$Xb zO<`GCrPH#a_Pci*9nlnEy!D27hrbc zOds8I`|5`Qd%xaG04P(L->KUb_Z=1YzNjAXTH&qxJD;0i;KXau4-K_i-&#&EJfSqp zOLYowZ7qCtO90aaSXzelk3Me!1#S*%V#i;n5$?_`UAO$IC=%`#ZcT!LN(hc{o7nZy zh`}o|p7)`bzvaajTg@X<6xmu6l9NeK0pGq4sBB|_fNY8GWZe1}NlBVa8HnS;tQIH) z0C6ut`&op3bc4f!^y%4B%;k9ta2KvTE<&e-Wk7C8b(g{ecx6v2f`icnJx^>T{u0pG z0<8WWpqR>0p3*(1ZY9}T&(^l^a%R_OoW^}c%o9+-Kmy-wCx|mph%KR-;%WGmrInTA zEsyewC{P$N;{yf zY^xsdIVs!k6TXJ?T0{diO`mn^Tnjg+tBUK+79+e7#D-o&abLey1KbKm{;$0HA8%=G zr<$hUEp}(?55rS9#E5j72%@0@LLj=Ndxjwk45N1Nt#LnBV6KLm7=Ik=3iGBigsW9_ zr+h@!nNB_$DphR~O3!M!m>b^}j6<;z#CM{WDm3(OUo4?IP|2dr%s_zs<)`TA$~&)j zDF1&R@LWo{^KOP!&Fzc!ZZG!noQz(^GF0O`<*osV(Gd;?GruUX(#vmOQ0K=bChy%tQdxcQp) z7@(febC*4^*o!?`m2XE~o?^MXr^nj>Z%q7Z0T-Z1SK5T3DP4*&@7Pw&tn`F|s_kY( z{#^sDrcbP*D8;6t0J2muk;lL5)4H;LksfSvA+F{8_!GY=rn?QtW$10Kfs0hEQ$^)= zs%}B`_ly@O>YtrOx2BF$kW%PTJ?svQAtq~dl*Yi#Zl%$YjU7_~G_CQ(EiU(ef(-TR z3{MW4*lBCm#a817|9StvOv3;DvLp|KO~1Amn@WUfx79MyV)plm7bfSvUu z^PAA!dA=K4c9{UcA$60KYtX2|U8%ua$P@-5Wv@75Ez5 zg?JzCg;tz&na&j^fC>CBPB_regRtfATZGHVT zM+s3t&u<5?o$=htz!m1Xn&!r{GmdlLq#!ZA{-xBU5e<+8Ou*$WC;GNCr>2ty-2K}n zz;j&%fX8(uy;6KN)%BXZ9Z*$%a~g<2fUIgbW*0PS^3zNO%+KgGz=L%?K0X$o1y08d zapRe+wx;Ia*3q%C8bIaq(ysaAj)1Zz zNa{ZONBfBpxQyH%P0!4GUmQ8!=9!Ry_G!KRB!DPZFHU!N4ScU%(vJX6_F{cs!^K!} zEl}uOTWZ=_JK%eB=p(fHL#x0m@s=z&ZTdj(^T()ZSu4<#(Qz&T%_*=^zfLdimMMVu2P_+wjTTcig= zV-@YTksNsh$ZOl$&>3K}Z+;ST&RPf)u;@=6Jt?u2#B0G3ntxCQKoD(R-IOPX08{?5 z9kl0gOKG3G>E#{BIpG8}nK*4EFYX1{Ew?vTq;7L5UcJx1%ehNJp|_IrfI7mdFVKDd z*oxA*m)maiyZR15Bn?ZE@NGx|lw|9c<8_h1Db#Sz(06Pn6yLf{?NGL zl4|rN&~+X`FUw9@YG-2_z!k|AqyJ_mq&L;q>-YwM-rASSWK9A^I;AbQrHlZbKNq{@ z)vKFCB^8FdEh}wFfMll0yRZkY`j21*^lyjBEn#J{VpCs+NA9Z#^Y2CFvv_ANFm=Ck zPH`KZ@PkO)jq`yB3^gxs#UxEy#@vnFfUggw2Fwo%&h>ra3p`*LFTRieHe~3T93CcLn zxPE5xbcE;Ct&_{o$M=4s;C@Fm?teVWH?Lpj!13~a{X*JKl}}bw2m>zg4q%BqrAxKs z?mn3l_88@rl^(14eJNGdKHitlH2Zz)TMDRYu{}%WPq>rDY0^3 zaCg?f%657MD0nOP3}ZU6Be1l#cD5cboZg0h{hunt|Mj=zDfO#iv0wRm9T?!_Bi>uH zzEhTd?m1pCK073{TYbop9+j0vds|0_BV-gQdR5Z8_;#AE(c0R2CZf!|MsQAV@tv;j zOo?$TGEQ5sK|VT8Ez6$c?IIwcEp-ZKErw>xMfEcNz`Z;pP^*oPH+S0+Uj0j6z}HN4_7p6yr?LK~+8;$j1Xz{Cp6!LkitiC{_7fivS*=TJ`Ow7*S1|Wd;Or zUMeX?)Llo5&H!Lx<~dNC6Rs3K^M&4C7}0`va*`V*x+e)p-mH?wF1TA{1Eq<5X`pv?i``cQNqn%`< z4xSMc*LB4*m_6eUEAzQV3$f5g&U#o|eHckmnpO5*RpOh&TA!(QG@UwpTwpt$ELuV@ zKF%^uKW@MzF@0Mj_uqf&hVq( zW4hw@ZFvJSGlYB*@5ikpT^qrHXcF5W9VwcX$)+U>cOQ$>h81(r()A;~2MqNgtvEEc zfUb@KwF%YY6qQ{~MF7khD6TxCiHk7soe{g*qeFEjB=klyir=XJ6T9jm5)70|tXcju z?PXBZupwsbJev*)!Ev!?*I#KT1-FqL+}2gO;N{L<&KAr#kbSAKnRIg7HT<_xRFawG zd%ZdLdeM~RTX@KHYYcetPmz8~cV`!4+TUog6Ot;E_9wgeK$OmJv|%m5hKd*QFXZ99ay>9@#iS70mUq0u= z@urJ$aSo`!U9O^X`TKci)RnVovdqwhv;InPIA(k2sd?wu4oN@t3{a*w+YtbURO*ajw$-n$;IHNoXJk`v|Kbf zzQFQzSmzk|p`xf!FUc-V$BV1exqp7dSE_v6Pwb1PZ_YY3Ynw%%;N+!y`~bpt>BQq8 zzl_H~+^_(NE&)p`C^?_-Ih>xmtOg~+B54G^mA!~3cLNH9XO%W*67)YTYGiw^Eri(a z2loN>hyL*)jWx;1?@pUH#f@h5ZR1xZCXqIrH5z&8i;pD(%X>KLM*|B>8$-nE{7*-pT8@+!)W}jF!%WI$mL74sCqytKGr~c(&R6|t2hz&9A3tKW} z@EG3kGfHp#|F#SMGqltI?hy}+dW=b23zYRvadQ&AdGjXuN&VWf?Ci8nPG4L_2O>Wa zuhDiET;Ha-_fyM;#}@{w_9Z7AFJ_X=90_wo;|S>A|+@IVV5U-0;wB!_^+V03%~ zS+!|e6qq?SC3vE9iK_JpzSGB5%@6XI2{w+9iQ6b(ObVkGjez})*J;OMyMc^!hH(QI zmSb^sbsJE3w{Dz<5=J)mvblned2iznJ%1ivRFFH>dVUJI$%3EKl1iJ|EA3NUGqKp2W52zQUF~*;G zGkM+&iV-`#I=pe-nm~D-^$ZS64LJyRYUI4ZRsRWS&)Q|`LsDb&HNGXnYMlKap^EqK z1OCrdgr28>6AgU#lQur&AqrZxSx>^{ zW3uQ(fj&<(pb;bE9Ty#K$@J~vk*s#zCT$E6t{r|(sW8DS@ROV5k^Ekh$+Wus4tZsW z#ap~!lK9X*t8_2;Zh-9>Q|klnH@{zO^(K{(8@vp)A~tYnzz_?#y0Q7^%4k;!Z58k4 zwi=dk3wPH9plff0=a#N*)+kIDkH$*MkLxS`&=$}k_^^xCl7^{;(+>1HRI$f)jkbk0 zf{NVZce7okyKS>b82$Q!7;#|f{6dwtXF+;Q^fkz7b7}yiF(4xZ~s~2r4EX%*K1$)bTOjLrh3oPt?8kujpfSIag&w_;A&jYwy~ey>G@sqhpE%j!^=YA zPXP>_GqKkrpUxUQnP_TX8wWH#INwQHg*#u{tZ}uf+-EI~@;;V&u5Y=OUh5e#;BfmA z!Ic1yK7?38S_%+UF>$sXJIjQ^FuC(3K4KJTGCa3hatxB}NHq*)2bvvJgsr&!+&TN$ zS5e_{JT0D7icUV?o-^P4Or@?5m1L0zSEod8kyf+xfs|e#hSjqJVaFDjg!&B-n7H0Z zIb7vD>f+0Jo6iRqhfq9U>3VU+wgKGQxR;qpF2|y8E>nHFnZ=)Aa-!}we3Ezw&J<3|erHQ;%O*&G+A zoivR_M;^iE@bffjb;{!AM&o8T+|3XW(*eu`%Ztw^v75oNm^!k@+itUtrxJU9OFAU9 zZ0@a?(T^!WqU}W^JOtxHMap;WDx*^jAZ&yJSz!>}KU(3WzP#_~2CH5#tssaWqU6 zpPZMa&kZ)SvV|>kpktCL!&*4%|LXhj56rza;08a=qwuNz7tM9tdpL0Jb&h=!^O!Mf zHqaj(lh`Qza?9d1L_f)pqqnLRiRnT zXb?ir*&>N}$~30$CB-QP!K9F@PG79?FUB;eN#%^(URX39-pefw`ZHAt ziJW(HRF_f+%&GlrL1GuOO7al{vU+p0+9<@Z+xSa~1EivV{P;1lI+O)AX0j1Kr?*kDEiB;SETVpu8-Z($_?ald zA-?Y;5WhYgZU;$hL&0WnTq6C>UtHFp<-HBw*0JTKWEinW6(-W%WBoq$@o}9s)@Iw; z&tm&MOj@wL2?wh$&lTT?+n}KHl=?Rtbh${R}i*G-S}gJO&8-?aYuHH$cGqm zjj%g816x2~+my|ML_IOLstkEq;JK_dZr}Z0o4e%=7QirC z3uO5pLdpN~M1hx*Xph(ni;Vk3?KU^vg=9kE0X7=@H@w)yH=qhJ zyv~8o-!juY{eIr_AN)xkju<^jD>g8B7n$pG=LWfrvq&-kAr+p_Lnrmp8Logt&MWOI z?P#q*DI2Y^Z^6MIv+kaQrW<)6>v`j*TBj9eR}Uz(bQ=Ck)`n9haktjuK8Wrg`Km>dqosot&zrFhkUe(ENKkC;o3b&nOy#B*@)eeOIs za1w;>8C7)$mQUXt5Nn&l-D{@APUm*b8x9nUnh90!+EGThctBVJJ;QbE#q>K}eTaAc z(n!(+!iw!m+mVi_IuE1AF>IJI7MdbGB;${&D$CEH1%mcFFy&}_s~B?b7C6!95-=P@mDwyfl; zCSkbrx9xq0?Zz(RRTy#EL8<*xFgARXW5FDr!y8yBmCWn-DyUpnO5g2y2 z;v%M0XMU{wxU6g%dME6Lr7gHtNJ{)b@tbDc+J`9UwU<;r6YM(Wp+-BO@-=2;SJQWa zI5^-PaZQSsEn7!mc=~#-(NvjlPia2QgM0lFU8r8V+D+)Yv|j1qth<0_eGM`SU60Iz zJLRRqvP9Pd30_yJAO0<(ChLZn6n( z@3m?)-h=xDfnDyjG-?Z3NIUKn-Pt?;_dU$$`r^bz@Ol9^|KJv4apu&Y9`wwVWI|@r zcMv0DMzsAQMfHDD$EOf}!JmQ$dCf`ZkX-g_oUYtkPls4Vu$~o{w&IHR zVw3az);d{VdQ9>3Ww_{X@Zif$VS;E8;hm z3VuxcGm?Ur!M34lYOtAyAPVo@M;ZqH6h?wKCM{$ps$AgYM0D&PBI3^*`V1{%`@Ot7 z?Fj}4aGh9{t(v`5XM`W&aL-ZFGq>Kgp`Az#wd0{Al$|(jLlycscEi1<0<4&t>d!bW zbP(}??G;iuP15Kpl#DbS)PXc>tlJj2bz~(F&y4L`q|j^ffEFz(yfM{p1xBICL9F4R z^n4i;!#~M>!SxqY*7;%(j(sO8|KxY?aO$M1Um-Tv;hv7tCIW9+X>>SRYs+5`-V&Ol#KRQ8i>voJ=?sb z&`z$Y5K7Npt!b8YER-nH^AD=fx{7$Wu>s*R5a_J8Njqi`;2#xS@^ee35)6cR+YQ}K(- z_g%nttCDRPh6PEd$Fz)QC~aBYfc533$V!84mHOb6$4+SzMeTrx zS{4;fV*$yl6kHJ?6rK?mLQ^rW=Mrbwcj)W0kJ)ISflVe>KZ8=zLBw@-sPE>k9+$RP zx2V5+uyFL>E=0y9-ghfY=yBh)4NLlV(b8+LG()r%7EX3%SHcy9`jB|kt5vF8&u==K z+8X+J|A1VLliaO)@mJQyo{F=$*F}21kQWZ6>le!-cpXmPJSbcDa6{#lRBwwCcJuPj z5j8h?)s*-rk%AL%2)A+Vi#FL!&8_}iWpgF(Ha^*6O$!1=!kjhA{8!=Fm;s(rRj6cP8ia`2DA5L4 zjYh&SH2|JeQ&cjqSgY`ru8egn zHS0tO{)mhuntEyI*B5-Sa=E_Lgqjb}@UVwj%^Z|3!`HKI7u{FTJtu>CvQ&62{*(&f zdvg*Dyw?wSP~iBB>A_(xO-_^|iTO0YQ=#5}=MuN99)YZ;ZC*?Qq>$GpZ-=?@k==a} zHY4Bq(spv+SRX=7#q?jr0*zq^T@SAzwy!TU1>D|nuv)qvX1Pvpsikr??=#+k>-{DF z!$n@E%L%H6NGvS>xWQJHxBp4;UT#T!%Yz26eLY|9q~kwKa4%0pZPMACFe- zonLPCJzA5m+H`NOEKY%bqb^$47u#QMdde&=GtE~YN&L%+ISHsdYluB1QQ(1zAfv(UYnasgI?|L%;#$? zb)C;uxb}vm!&(Zt)M{Rn2?#G_1R&il;OpU2#K&~kd4QNXyMARa;k3X?YXe~3Qwaw< zeNFdGPLaJycCpyIQEX$jUE}Pa+Dt7ws zg9Gg5E&fLqaM$EbU9IJyT;~CRu1CT5yJF(SrHa7&lCiduYVH?bjT4q|z=LVlv~O(n z)9Q{neI2K#R<$F7?M>G*ZS4hO@{MwytJKY|Sa`0Lc3y$shdP-te405OgzRje(0rqz zOlObpXLn@_P6w2=n0G>3ahzdeGv0IF;yNk0-qYJvbuI#p)57spbT|@7KnuH#*QOqO z9dUYdS?>UgkE?48b03%jJJ#r=JZ9O9jw2^Jm#`SK<(5 zHN@l{E_j{g*Bwy}sQaUp^R_|N;J{gz-Fk{&bscX|uub$rD1@&P!Hy;@nw(_GU7rRk zR%D3;gZ<-^K}3N7yS3aH9%{w*!mkSHKxQXmKSW#AO~hfzS6qF(k}J>@C~Z@??0B?R z9*PC~KUx4o1}_iEw&vcGtt1sB0?Mad z@Kj~WnqV_{B{;Dp_>B1HWJ_C25G*00^oF5Tqo?oE)-4JOa51X}Fsm4ccQ&jPl{Ysm zz7rf))ptC*7T4-0bZZ72EZNE-&C5k`!lE2Q-|-TY+)ZA))UxphX)l|;{8At%)8=qn zZj~2GFwafwh-1~WFUW~t#}#Xzvgv=It+yE7tteXY+g2dq;Tz4jN#ZjrMC0!aH^W&k zMLb(_aLcG{Y|E-NhBj-u^lBrvGBre6ikiuPPBQS>mW3Ev^)7=$zCWS;|4NQ*}Cimt3>YfSI6n66nM z<=&>GEu7~+q%Nqqai=mV<0K5%XYiOxXwcr!*b1Fag^F^Zg!V7@ zYS!g#$iMxMy@gLzKiI*q~2Iqt!9XW^b{Baz`i)krsthVj;(` zCG**FS()BRo=d_;QpNV)>P1NywByAt_2?&V^&va&GPhNIrnmYe1GIeTwY>EeNVyCB z!v~`02-?d3Y<$qJv&@{fQ!X($;o5LJ!xxVDz+Op;ydbX9UH>f3|l zy>Z3c2&?Kurbjw#(*!#!lKn`3x-~v5+9-i&;3k%&4J2z@)Dd~Y9Q!Y($WdnclB490 zJnVEz!JOPc9^OqE`g1@*8B%S{qh9NElz9CvW6N&b?|}9HHQBF({H;PLHw+T_d$7qw zMk$PDEe{Kexi{mqk(WR}-zY1?QrqPn?OhPEVN_3Ap$ad^;#n+-s8?b0+7wP{m;@&bSu5D`@O#%t-4#71zfkuLB zAZTzWxCaaF?iSn{cXx--xHj(Y!L4z*y-&U8yJw%B_ty9CR#DXIRXt~~DQnCj&lr#N zV@IC1r(04>YF|O#H=bjgqr4xRaHXuA{4-Do=bmXtukx*1Dcz7v`~mw3*<4Ni;!In| zz{~=Q4v*uPBs$NjMSuV)Oq3uS^*}r-p_O#f(S1R-w2_PVKmb3i1@6ero5f$|pIwBl z4*rzMURR7x+6yPu=f_&>P?DyleiFMm241Qa9cOO~u$OjzN7y!Q9 zZv1H6*SB>!`lj({6Xp6dU)095>VJlfNh^+r%q1Gw4r&Biz)QMr{;_GwHle#rusPvKY1UHU@`V*ws&4Qe2zM4xh;Lqok(C(hfDP zAhEA$f$@u9ZMf{>5b$B-1$t)|YdXp~A8TJG`cKY`*lerlRA**QxL#h_P`CW=i*#kS8-D+!F z=M%1u4@(M244CbyE1XXF=Gq*?1yTJFa`aM~hric*+|=5gi7zc_Lza0^qw7DWEn`r= zjB0VVK8FaHq)eKSifUQnb(-rcKzRAq`l1{m(n&2HN(C*L?rG?aqhS8Sp&(@T*M)t1 znS5-^*uqp$Mvgb@P7Zra75j#KG%dQS=DXb=^KhPeMA5z?urNkxSuEenq~fDYZai>m zQ5SRt<^MzzE4MG5J})D({TZr?(5KLSpKsIry8r!Q*rHm7Ih&eU!0a*ahxvUN`M9k12Lr9Flxvf9tzotG`b7V2cKy<->r#TUs;dck8t~y) zR|U9Bshg&8MZ0kj=8?#H6RbBYIG$I5TwE{NtI zWSu_~E`852Yy!G3KtTM1Rg3iQ(g|aPs~%HpnT)k7OBD=Ot*+@1-Z3%mT9ZpYOI8~t zzK5`*F1_z_Ce15EE?M@>P5ox+*l9#=dRUAZD20%@1ccu%7`Q}f9l`HYKb;DEefpbH z4lSDTYq1$+_FV<5F9V)sRR@AYdCL7P`K|Z!jdv>&w9Y8835ktBM17h=HSQrCYeYP! z%d%PP!`!P)w{xMEaYn^cftz&(a@p9iA?ioXf)n0Y+ zl~ab%#Cq3Q%(QJca!zN^$F~BU4AT~j@rFqBrb-nHGnLc&Y=hoPQ1sGb6w5pf0e^>c z533uTih(CX)iv}v`T~R~f}A6j;yN9$MV805hU-u?Q>pnI9~AU!vd$}G2i(I%Bno7* z9%`Ifwr=DCw1lx4w)yzQBpM+P9;&FG+$Sf86e)jxKa8{+Jff*PphSwLxTtA0kmIWR z_1Q!Hx~>d0wM+x0`nvI*C5!`2>6YQ2R4V z>-CWvBQab0`iD|a&saQ!Vf>opZ?aBuX9M&NaF&@)6A6ddukl6K{f;@Yel(+EfHr5% z&WU7i8GZ|X>u&}K0BAVb!6ZRsvnF$*GkJp*jXEzV4a)#g9X1xDl$g+_kvo4T(6$p+ zP3|1K{`rvQQsSx((M07$z#^st0c{3u>u%a{Dq0Y$+QY7ax6XAnmu`HLJ$qfl^hE%A zgbIGGed|kAYTzZYs4T_`y$sdooX2J1)rojX*-Ak7G(ZK&j*rJB9(YtH3JyL+@*&N{(cUPQeW=$X-)-J90XYMMybqEdYm78TT!iRbq6q;V`k&9AQ}8eyYErTS@rC*Yk4}xTR^}GC&l?J?cOmQpIBAMed+KM; z7UioO#k*Lw-YRj0O-!{WC&|I33vGTy3h0QKlixXCquCX|Y)mQYDv0l5OgHTw$NX3X zW5SX1^FL39{CDF28@^$bv-d-hF zye4%4lLPO2sSJd9H^{@qIX) zrKwM)RL8h=j%w+F)KwYob*y#Q&^y!%;5YpaK3FC(T0X9DYi@c!z2=P5Rhrw2;4>mz z>-83)`H~t-6o$sFxsl96&10`kx6v8G5le8Pp&ym1fI<9{)tnbp|9W+5IcFl}owhuE zQuz^U;OxMX)2_a!B5snL29$~~v+C!9;NEs0#^|lC70v{TwM7fq`u+DrrfaS@$gM{D zz9$Bv_o~e(fcn+$vdP7(X5>2~GgF-?&u$MMvOGv*AdGuUuiF$qalee5E`JZ=SR3`y=fCEjUxmQe6&++Dby)TfOW z0fE}n*~JXwEeka=S|=u!(xcIn>W7(RAN+a~Ue(_Nj~YQ7sijPnCN4^Em%iIz@-gt` z8ZcCC^7pZJ>|cMpG#PeGNYw3ZAKjp*X{&c%gIIJjtLw89-^6t0$wTpcsM;1tXnB{+ zhnC%pjZ0$5E`%RHbm|cB2H~b9>H3de&Mgg14fl+QSqiea=;n{OkXHbfEV8?r6a6Bn;;C_)cPUwwVYSV7*B9ZNkyt&FObfm?0p z%F@WNT`R)4i^b62+_71OnB2Z!Iafx|r|~bEXC#)Um-Jj+Q}lM?dFJtPy3@^&+4BVl z3}Dj)~#{ktRdqn^ILKi5}87mxepzqF3_kkcm?;XoE0J=}i?u7!tD z+AWF;lNNY3k%}_7CmbtpN*}wM8;J~fs0SGaZ=_88P+BWDh)82mvwEn=-mG?dX09l+ zT^dvnT^ zc&X_+-bB1Acf`s9VBkA`o}=U^{8akK)LY*J-?NO6LbiB5Jjyyi_$H+XeQrAH1+n?1dtHCjbsS4`&2 zS$hB^*zoEy4K_bb=Zy(g?R4=E_Jdy%mHW9=4IgNp9f2oMbiqzDEUAcXda);Qa1!od9uU zG=YHWX+MfYmXn1h@-dMRODyupyO$v=RL%&VgEOo6|AK7%5PVa1F_>w!h6xSJ+uWU= z=iU%-&4zOT8sLR?ZV?*Lf0?ZD$dBq9Z%ULi35>U{y-K4!Qn*BSn~-mLep%o>U2ht@ zT<&~@+m6Rs_1fwio@{7_0oI4F?Fu!tv&~?Kp@}I* zPqiX8jE@ft8cEu?U@t-Ht{D;r5{ZB#VdA^&S3H>t3m9*NPa-rjK-k19pNKird8{u? zcg#8%wtsZHr2(dy?XtqWUiV30zI;N#6BCzIRu$WHRywYl+TZXL3Y5iuXU6BQ8qT_% ze5Mi-N3ca}#$2E7!}v9@TI#YpUp{@@cv9?4iG{HYXXYzLYPi@Xd^5-3vkHeVd|=Ow z`BtCQ!I^$vZJGTXsuBbX=WDF`sv-0k+*^Swsv^vE`C<`GoDk83sU(@Ldl{8-5PQ;- z;@jjNy?2LPEhGAke3z=UpTNFLLv(-<2*(FkPb>c==mdr2o9vu&ogz810W+iHh}os# z!$!M(zta{V#Wn5py~W^L7@5uIcMxrd9h1@l#|am`e6(ird7l1D$M=Psq`+ZZ9kd?S zv&Pv1@&t7FxF5i}SV|5t4J4$ZUwD;3{i^NP{t@G9-kW(rg}VojcoFj{#b8P9pm9}f ztEvYfN7cjn5Ia`A*4->o=1&0`o6dvgv!zuhBO0}G4C-7K`KoG8iK^G-kPjU^{p)Q1 zAW{|j2IVn+bNTyH?cDg2=QLe(Q2+|H#f5!ZcZr0tK^fKbKKn{MULGZN^C?6h(RW)&b5kxMJ+2J#(d z{J<7Sxt;=R!_&$&)m7@5#51FXe5ubIUlL*z?M*cRW&HM@gkHu^+PX@1N@OF9}Ln{xLL9PW$g zyTc=aOg57;eSLbDgJx_%=!WC&3o(DfFWGT&DR+#3 ztHuOzm+a--z79|?tJWk-!r4CwrOcQKYO4+iMdHZ zNKwXPbM2we#EckOI$IXkHJm7+PxT^NSNvJJEsU8f0NuKjgu5?2+ofa7JQo)wwoJ8a z0Q;5XY>YIHtQDX;O4zTBLKzidYGtE9SaYqZ45UEYi*m^B79bh}&)E<}^2OjM2C@zE zawMe=j0mgsZ4tpB9#?4ATavD!6->kCQ>8T3WUH^IMR{GC zkYAn^CNBawwIx)hCv8!vQP*C3ptm?4 z2={W(x4amgk&EIE$O-TOtZpxE{9O;&kB-W(Wp%o>A>lV5{twqKLGe7VCSI#&N=o))A; z(Np=n`BrLdcq-j_h7eSUBc8F*5Otj~`};|_`z>+Jc4TR`ZRfZxV-*g41qLZUOU}gRDtbTj@lU(? zumt~sLiDd@VsAySzqU$%q(E zEBwGZU3>W^p%1aglPk`{ci3;76}(-v9jb25EyYdWU7+;TC4D%Xk<2=kGw@vPX=pRn9Md`1&zcUazOi8_8VZ|neT@B_XSO|{&>}WnaCD%e(f&Q-ciPXN z6a>G2e{}CdmI4pJyS5D{F-z%wub`r#4PFjLk@}~+A;U!&XJ^7abqjIV?f6mrxN_4$ zJ7v>4Y7i=P_=z+EFp1d93(=?Ou`4{fPXkB%?4Kj9ax|thxAStwkrXv zKXGWYeenUBKRxwP_OPx7n;dL;cg(lry9J6IXyXW{F6;~GwmTqnC^;u@~+bn13|4>|mqmb90me;kCO zSp3v+mryAgE5NP%vSsP&O{mdG+^iuiF6( z*VAsa9h>J17HX;Pdx5n&DW}sF1_*ln^ri~-ou2p89Ps)X)$1OFq*&;Oa@5g!ng~q+ z{qem7G!94V&Grv;m1SQk40VTc19Bfnq1NmTx zZZ-%Pc4B&3naBRB=<&`UZJP)zuq4ItcvtB~ZKwhp$d$H(R-ndVgsu9~BqF%0L|!1) za|q>K*QFGSD{;}y8z+gIhh5&&BHhBA@}+ca?*J!oNThZ4Z@!6x0kzvH=UQn8b|0WR_@-XYs$X6?$B}|ox?R25DUsY z{`+4r7f+{NYBW4O4Gc*v!@LY?LjxP#qxgF62Oq%PXCt4yH~h|xN>!>+`)`XCquJ(H zq!W_`(C0iBi0CD|I_`H^hUZkMq$fO|&yO1;gH>DIjD&^!W1Qx4#3hVM)a0vS=vhJj zNT8pccJgMZfU4BW=8b37K*7Ddfn*s$C zpf;;ZjVn=G)ip669lPUmtho5Dy}jbk!i7X)-iVv&$=>kDeScOF%Pr+sAh3NlAOnfL- zWK7_*E1|C2?lRANH>;=$9Kl#9H;E-69oN!F$V}#KJ+I26e-%PCi&p!_FOuvmcm#kr zW!)1RlvgQr}LP#@5VnY3SDyj_1iAw(=#s-AnW#th}mAi&!0s~Ek!fr`dEFDmpq&S z)N$c5Z&S=P^LgtW=q`$z%f~&f_?OV%mvs!yUL{&`)fA<{& zcF!kG52FUfOmBz=6OyB3u4oL}(izi>b&&yi`oY3c)pQG3ngHxK1R@%O%BR&`Evg|} z=w~rV-`j(Vn3c{idWw}UZbi`oIT)^yF@B8RLx9&XGg##sy^6}u9zx=S^_iYDS}MxR zW#CzE6ts3VB(*B~A~-y>f2zdy1W={y=_u%aacr4@eH*7-p;?c=SFRXuA}pAcbJPmR z5N(>`MrW;5nQxYSGmmm`7kF2@916ksp5h|{_kAhPAfj=@&B3Ae=C@C#!$Eb`zmqQF4jr*pYCVDwaVC`0HNC!rRigF9{xonNCd1N(My>yrG8 zauTAoG~ft#qpNjB)Fxy1*HRwO3GPVdDL=Mg+&{HYp-!@KfIy|5Rd|{$CVmdNXY;{p zNH#8vP>muCMShfLW0ITUdb)TPtav^y@5&G|8!s%|5IcqaY z5IgxK`QvGuo1ySXt$zG|G-6gi6y&%${Rxt~7(6Zv&>DZ$4+DqHN*(}D&^vFc41dK5 zFVqyo$r`{$afP0sG~3JkK9swEp-z$`@>j_d7uZ;<2oKX;B~Rwrhbsit>(t?q*e zuo6w#D5YH2LQZt!b$al8AbKwjA^mNtYPy)DQB;`XY)mln3@`bBhaT3bI}zyB`DFl2 zNiZ!|80pB=vR-Cs5p1kUNl-HGVY34vB0^flU44utl7sNNyByNn$BV|!gu_oZvF79- zwJytrZ67+pf;MB=(eHl`cJ6+s=${Ek7L+WoVMr9H06JGb{g%JDu&him!6!wyirpH{ zB&WqkcGo>$_rF*zQ31NzJ)hRMd}wP{@K|U6EG|F7D=bchA3%EqaV)1oJgsEme{O2a zv8*yQ)G6A%3txNetNToZ9b!vJpPqv*)QqT%&f8tR1|=Jo_!S`3qAkjVq#RKf^l<*x zxI?y=H^gr>=)J>f$4kfKdaxiz5^k~S0vU>aMm|_Ja1{$%)o0@wZECNFu!nbBp%xed zAE(3WT+u%APigK;hgnpi_BnBv#?i(6FkX``OvxqaivnB|;s$3;A}Z1@1HutC z?{pJdz6X@`@s2GWc3n^B=~|z8UDh+Zly&ire+XExYlT$2*M&k6KPU=gf>Pv_!0aIf z=siDIda12=j|ko{@V$5tgb`7ho$x3Pviq3*E@c7#)8K-oQOI4REF~nA&5e)Wjykoz z=O-E?lFXeBDPoGGvK;5UeQ)hwm6(w_c`8;fP3lddA&nap84fhpr#$o~Cc}mV#Jp3K zB3#8E@Ix@)PfN%kHiPe+13`{1NCtkV?6tkqeXhvXsp8K@EU_`K&Q&z$2&|LVY_Hes zX2uW*I~%_9r4KwH{fu33W;|ajNRDz0qjL!$`NM+-NMx0@NDywsWJjU#@aS}siYiD? zoUY#bswgXeDbK`~%^sbvS1J9Zr(Iee7m=tsC?|cqNY*z7wUDcc#*X`NeWAPzVdF~J z{7udaAEo4WNZaS#-ZW|bU2XF1ka;Dd87G0bv$yBkQ}gY?cRevj*J!RnC%Pp`Gg88) z%Rol~YWy92*mlI+?}m-}JhuDuuzP8J^1p2nvR!zxIxG_N4R~{0%(iK0#$SHhV=6yR zy)(Q8O;T#+54o>tMR;gE7Qpt~U0d`2vi<-1I8KV7-Rz;k`F)jfuI`mqdk|H{%MrV| z@;Q8i`>F1SRyRnZRcl+B3{R z)om3=8Rv#NWr3MH_aSE8W{N{)Ze)|9MTE-)N+xx^J;$rha`k3J_C+(66aMOeAlJTw zjJ=LO{T?nlx9xsR1U{!sN0ULI>GdWCW%Aa7sAyhAvy?(TJ7JLB!C&y|j^^eyl^f&) zuHHHYscPas8T3Mp@Q;tZc=;^_5}R9FJDSt`ijPWCJ zt5eE2c&LP);FD1ZqfVXV1rlOQo#m9+6S(utkI!Yz^P|D7tpl-s9{z*nC#Qm_rzyQ> z#glaQ&)20{&gYZVgM(vo*NTHWG)lJ+OVf4u-hz3rQ?k%W^eB@|qljUb#WY4JG)y z*6;}8^Trbcu{AQ{WvPprcTb0v(s8_(tvX zm%0A1e9J~}w)&zHn3fu)zsp5MuzX;v?N%Div|emcfo7o6Iv1b4CE~S+e^hTDmILx^ z{kCBaIR9w2F64TZ9V`<)h($|i(~!~XES>Gv&T||;=3C!oIOYcG8n&!=D*;$kaKYO} z^WA1)7m+2W|1@YxEID&Jd31GXQ$qS6G~jj+O52l=OgHttRaRHUuHp*xc8|j=Iyd2v zQFH57#|&9FD;d|HD?{rKK1g3(c_IEx^u^Ga@y1op#wmLibASRvpJNL;DA>-h&qcG> z(u_t#gryWOrI8$&LrR>LA#dXzALTM2IY{KqSt3#1M!^FbY2u}3QMBXX=4hTlv^+9=nR@+Ii z8nrgDzOOU?SXVXfb#!rp9i86akUgAnI^rc!!Ook+AAEz0vUPQRAfn|UE2@O??p|qh zVzwY>%?y&vprDVknOSdQy~U5$)2e_B;lco>=B(PR03xQa64%F&=CBNJuGu~mK(2YQ zdm&Iso0FMH{&O5jX{R{c%D?0q!Mu2LXejZ%c8{vONb*V$Ml99`H6Mza9?OW07xovw zLaS*6r1LU_-hciiJcrIOTfqZE)kSSLDD`#4zIFGbPj7zV14(1ExaOe+6*<4sl^*_@ z^?lcZ(^I9=*k1EjotCXD(u};Wd*q;Rqp7U*Ixpwa7xp}8*$ioa^Lh$p(!^xx>cf|g z%&`tpBjLGSE0+7=h%mN~BI>9O56O_f((ZISPIYGI@jOXi7VvD@<7*p2zyEC=c>l71 z@vKp}W<9yQW;tfAH6J7FzdasHIhp6T2t^*^433Qg_P_`8v#bT?Xy7XD0Yi$h!-kB? z8`!7SsK@UU=u@n6^6H9$&m?#ec)fMs0`9vYeUq2>#?NJB1eC}IU;BCnHFff~lI~P( zFbw2+D>4cQzZ}Gfm`nH#lqONLacN<~{dn@9&44rKSAK3AsU%AL7)Uuz1& zoJwWZQJ$z~reZ?@>Ewn@eh>|YSo+pf^22De{Kso7v<+Jzmr9k^XdUMZ^KQTvBEg%r z252~5{va=Kos8_Dc61dHbxNYS{4Hsh-v3qb+4xMR*Fm!tnu6+^YeBWxfRv}CXG3~lCs5JX6N&ee*0?>n*KPgNNHqD{gujBn*t zQdl$t8@Zo%+R+5#mmsakVr_=Ba>a{TyTw><$PX`qfWXlM9>%6@7 zw3GuYrv$MF>A&RT;7CiW-Br+rnn;YJ@AK%@JZx_a8eej5YMyBxI0VF9<%e^bgikD-kikZKEc7g(Qb{RR!y3j z9GHPa`=TfZ%(MKdU~Y*Mp_T8jGX}KmD;H?eTb!Pve`qj2_>jUpYOI#OJO9;ud>i=T zK00NJa4elugb=p5!$OK4oi}qYo!8_Z8zr||FyuRA4=jcFT$);1x@XL>yN>@iU1413 z&1!ZW@O*hy3kY^&^*+%qo_T4C3IoCy1_(9SK0j87q_$4^4<`|wBdKucvrogIY^F^W zm`(WVxL@PPqUtAKnt(a=Q^z>D<-S%n(W;fjIR7Y{Q&I3o`D#<&56!NBk2dFFhCab6 z;H6ORP`9fr+WQs1r-j$?DXp%BRt$hmne5n4T=2@@9DSXd9Uxu;X@wRe&ku8o{VbQ= zS*bAhN-6jU0y(hwYY8XeWI%h_*T0dLaG#&kM2O4+Sr6@BfI-OF)@(wfJwR9w9%~r zIU#<7lF!rjl{^hRD}iC(m*YV!2_Gqi(~7GJL#i&~PTgDzX%B;%I*w@qn^ffT>7U7h zLKZ67HWh8m_gahtvJHnUppK z-ND#ZE;ftS)G_`rbWNH5fW{|nt0iG(S{{`q(9pBBF`MVGp?z|-Bx`0p)r++G1iWmUmw(CX8DFSV$p_CKNxSBka0SYfl!}>zROZOJ z;mD?hikE#?t@esqsTb*=`Xw(3)H={4cu<9AX+@#xU0n$}e&yU*dO-x^$GNk~A`(+| z+WWrWg7gHvxg+e*6DQXbxCL?TI;8?xuwQj5-qqZ1^^cy?4q4G2IJ~t~imojqpa&HL zO7}F{-O@m{EOIX!@)M@);@({AzG3dZYiy61aj=e}VC61Fj`UeRHTt~na8}_3Bf0eL z=2H`ej=!G>HndqUf{nT_g0>}y+S%&uUR=Tz0F|{*fS0b92k#n>--;<^BsK++&o8?Q zW#XN1WD(deq{~ZZFDtTM?4%R&4c6^mYe6rQ^H+~ z{?jpcT{q26^eJY~$510C4Sde9F?p5wm4)m^EVCIs0eAs9hYh4p1`QBtC(Q}T%bm`X zdA6xMO>q|WFWEt%t{Saw1RKLHkO|7op}~YY{qD$M3|P*9lP*maNwYRplg0c4$AI0L zB3i{bMEnn_mk1lCqv&|bRKEGhOdKG@0Q?Y|!Go`cd%iJ29$Ew0s?N{pWC18|q_<`m zS_E(!IfD4c=jZhjT9z6BoRSAs`VvCEF}Ne>Kk+itDa`3lg+hOFTQeJmNNIMU=OCp*PA%Na z0snzBeol>auX&ab=P14zXVMnM-H(8c1^x!Qlt%Zr!EbID3@@;wV}j08hbmH=t=!?` z&`D90p0;$Il{5K0N#fq2i8w^hyyvkJ0~rM{zN?mKr#&0^GVZNDwVcBMRD%D-3a|Zb zDbJ4?C&WtBVlfJdr5~VN6#Ozp4pM0pPT7^gzJ#q1_h)&dTzMeEHm}8 z8Te$d245~a2@r-4%BQczetPm(A^k)K4+z{(ETP~D;JF-0E%hM(&q$iDfQZnGpcA)& za)}q$Iqqbev&EuI=GEmw{!7<#QcTe9uAu$Ht=IN@`t;*JzuH z*YU+9EJfT9c#EbVU8u*GD{qA*SG@EQ4#eTAtMWHf&lM~bUccqpD^pYY={BiiwMH+y zqc(cqZETJ=UiNgZ$6j`WJ4TsA5cV;zC^)VWP=tpW&~ap*%7OKkI{tIQZiZ;G9^GsS z(BJO1MQJmZ68v89}Kdt zeYQHx#d>ofU!6S3M`ikk?}njacBMM=!LR3n|IEx&&V*aIk+s#Wr{MKith@v z*U9v>JikYCDG*4ju#){=(y0fvow`aZHF{N&1Zbt+(t}FyBkDEIF^@K8@Cpz8>l@85 zqR2X7oCG@l<`xz5ru3U-eP>o3;H=Y6Xbu;R`2zt_yXTl$sp`5qsH@zpzGq&9L zrOs7pGgTdxOM0R=<4!ewYIFidPy9AWZ^WV9OaZ}@2K@F0Vl;iKzqya$JCkrRYC}Xt zchoGgP-Z+d+Xp2%IYWWcC`|qUi(4Yl-Z%8fZ{;%yn_o!2MZt75VRF2vhDtd_J4x71 z-h4A`R8~nF7u|Zh1AJwPMnl!~k(aM-{H^X6R+rmmWf``?dq}imJz|KQ z)P#1irHVgSLOtgb3qlYMUv3+H704Y~-(w7#96gF_k&t*BAm-R~fw{W8>U@5(_Xda4 z)2{Il=^C|?DFBAneB-s=s&NXT$wEOW>xOwq-s8Q|j{w}#B;EGiJL&1Cp3-E3>E)ZZ zKs6F2UG%xsdd(sLU!j~lpZjV@T1oEN?NmU)x3vP@U{;sJ>=MSdu>+2>hK(U(smYk> zX?=PU(d5|&|2>LPp3WL}^2Eh8t@oV%_iht*ww-a8HjiH9*o2+(=)IA@J(zJq4ihXb zb;=9!4sUfV)J&ckg?q0|a9Y!*hpT1Znz>j^{>=+Zriw5k5-&^24sQW}S2k&u_UTDV zN{UlOE*7dRu?>Uq2SshBy|;8vyW1S4TE#!vhz}wMJfKrtKkVQJXJhrS?>U4z zyhbLkhY;?jWPy$S!g_93%VKp9&WK+wmd0{)9PVZnwb}oOm zXRdB>L%Bk4Kw7A)nW6OeEsB$VZj`F#0A&}V%?=u~G47B=3GC};c;J75bM_-)(Jw+X zEk?6d3qcD2PqaPWZ&dCgvA$G}*g`XMVP+W!iZX{Ixoe)FB+~%0)O3>*Rsokc1i~Xv z)b064B?!G@w-h2hib2SV(OF~J*>bF-gw7dOm96cCm^B~MW%>G@LutH zXuV96vJ8e_%mWt#LM)+Y>>J#l$EDlmEWiDDPmn~2Wp67VzA&`i#48mAZN7#-zH*8G zkXCR}6Lo^F2mllC9YrK%><);!uz;+mR1~@$^e+mVFXPEcwYyW4`fAz6hD*m!-Kx-@ z`b(w+e!LGj5m685@<$UXDa;C~Kf7&WgO68%=VMM`gg_vZ%WiGEj}$MM%pd z5z&&JgdFjjIN=JvXAoz51~LGAk<1RWY#SV0H~r1_N?C%ajaBRWPp z?nqA@D?~xkBa`!cdLAmN3Ewci^D(Q6;8zTs&>jBWnN^2XPank6^U%V)>-n#PAq;GR z*av{q*rvf>Ol zAhKPMVt)juU<2tYgR>QvZd^*^-B@;_HtR2{6B`9EK<#@&m^NPIjmmutkza-bpI*Nm z{qsh%)dWNc8OGbvnotqJmsM&{iik%ivPjV2zira$o;z(02>o)rhqq&UcuDo$cvCK^9ngMER8&6795}P zI?7BVh%9^9sWLv}YxsvLe8>&+JQ380tJ1m0`?5E+qnIYF|kE6di{+j)}s2Q1! zy4I*|P&5!LijLFSIe0F%&p+3Kq6cxi?#py0tSr5r`(xAgHjZRg^%m7c8A=X3Jp)K# z25YOHx4>4Oa8he=o~@4;wYe5n(4r^?{B42aYti=hf-MKQ{?<5;ZJ);J}6ze&hItTn!!X@Aq#F~jj=rv7e*1} z8kpBkQ&x8b8Eg`W0%X*DDPNL1$4)Mx_A4Q7fnOm|`YV`6c{YIDnTUQMXOXstSv?0R zO0A-Pu>W;;l~cRJOboy`UF38)`97c_2U;${btbLQpKtt*)nZ-(D1c zqT#^TaD*Ui?=YRyVgh~80w+S|wT}@>v+_ibD*F*W)c}LYP7Lb`@pr;JNaQd*vZLa1 zl|b%iZrIRohL-!;R5S!#XMMj`xF-Q*uv0$Y>5v7_2z+txR9tXgk>sd%X=2rr%G(4U+j0s4)@p1PMw*x6*kIr90nbmld^5m zxNT#?Tjb-08FWP1+HVN+EPo9*&Cw%ESQLGN_V<=NmE|C)ic1DuR}~9cK^0)2 zyvKy~$hcf>X!uRh;nH~i9KmvZJ=}g%FO=D?Gv`sxGC#k9uI9mv@}S0&CAVv-bDbVW zaKxsFIYVhl^@q&&P^@yc)+3?v)#rw>Z(>w?xFd0n&A7P*_wIADk+EdIJxv{ z6CvUaQF*tZNZ?2wQG!x8=`Z={@2iL3z>Y}|C-o8Ep4w9%p7D=duW54@CfdBgR~qmQ z-!YCl{Aq&agA*==TPMBxx}?#ODJEX_gmt z%I5S%w9UHD8ieou-r;jc91 zf7tEpNj>F<^RsdE|Ch$|f5u^p?(;7+^8dh3$3`~L-oDx^$S zhxac4bam6>!O*qjr-p`p*B0s?agKmOZ#p|;)Am6=JG-LkrPy}0X!1~WA9 z`QOyv|AV$9D?s>HY!iL*FLbVfFdGwv)sfi$0uM(IhsEC|2zSnK|3fV0Uy~8?7ho`? zsv7G*yvzTIB@tqT>JGU7zxQCf>+9FdC{^$L2PxV^O zBRyh3@+a?wQa%~rqXuI|L(4~snSy%$F&L)5Bq-mLC{NSEWnfK#S%YuPbs>8~jhTzD z483Gh59}uti8z)&zYS!*yR)1;3aSj2;DkX#%34ayX^Ob@0f7V9bttyndNFIHD0=ku zA7ZcnTEQM}7L8+Lch>|)Qrr$y(VIfu3o7!zLe+oFJb6 zl5TEmXwlYYW~_X#x_9iQ3=9lS!VsBRtdG9EoaNva`W@@Bqbz*Mp6ONAKAO*RrlNT^qvmX6t%Q0 z<<_9Abu}*M2B$QSGJo3D<4Aw~;9D+V>5zzDFlc^0G1+C`Hh*F}Ss|HP!Wzu8X1B7|!YbJJ-Q4{A z2xhM;iCi>j07}xEE}CMvmuhKY5pgz?9}6rhDmrugwBKB;R5-Nayv8IAjZec{&E}3c z1&qIwQ_pSGw}x`!6=Yr#f>h42@bLEdMh*WYzI=5hpaQx5C`inm2TIJBr~?hKS9RU2 zd9T6qbqAruv3Q+_OSE-)WO`nw9Idu5QGV*}?;l=!T3JiUCwr`FYEqBMJesdI+)Zak zW>e4$k;?SA2t8V;?Z4`l*4NMGgOc3>!IpCs3D!#uDPSn?D#sxRZd+Na**-s=+YUte z1xom!4fME>>JnJTd6&j*m$U2*B@3PJc-)5az%1Ex>d0jZFztaexe75jLmjo2sttn? z7Sg$FfFn@0A|UD^vBCR`H1cWecVEw-^N^raD3=0WhvEQk2BGYYBc?}h=g5&kP=Z(b zX#VSDGNX8jKduqU~f8@)Qj$B)xGlE!wpI$7ctJ^c4fBE>`-X6SSNMT zyhlPH=+$<#(y9h!9@>TLu8-M4lrgn30xlknWNgkZ$Q_=#I14@A>a{ zZ^aMi!})T4hfiyUS?gI(-OqLB<;SFNOd09~N`Az|bQff(&{75WhI{s@&`0 zXcm?O{6WO+^z`)0LoxKv7XdCHht+TX+_uHw15k7JQ0g$Y}U;8 z6L`wC7!V+Xv8*2Ylq}F)T&_jvO&s~V+YXa2$M}Yb{xiN&snyNlL~ODqCTY7T{&uJV zoyaX_i48qTpq;yUY=X_y3=|?hf{hRA*~W`G(C$Diq9YbO4_1@Qjj8rZQtS|Fm-4`& zT0iU1M!+*W0p7r_?JY$pL-oWor@SxtH_G_$1rX}+##p4fO zfi!o1gqha22Zj)d)0*|f8`Ul2NDWCLMx1C;s=}890W8+g&oJ=ZCssX+ z$Yi!ocrexCHwl@Cf0%i2=wGR4FZuGf>>)Nc;f8Z-RNtF=A#AbSlBKv@Nn|^!cSa+WI z5kTgh2Wk5wlijnQtb90qN0F0(Ww4C9ytHf?3F)B^<_2odw~m%g3#0F{y+;5=zx#tU z#Q@H~*;-qgLXXBbh=?sr5|p90<@o%CVgiA*nhP3Y&Q}pXLvDTCO$43yjkX~y5qVph z$_?lT(*dHZt@GV7&!50j_00x2CUHQy?G(JhM#MCt94t~cT$Q(F|J<|zyad5uHS9gz zznqf)z_+a+ARwH>A+1XOPi<@iYR8CoF!`Sp6KW~o914#n>$Q&g$8-PLo)Z*+*xQ_o zpg$=;9O6JfMd}AKGBWl6y4`Lz-_ve|8Y^q-kA(oi+uoL~Z_S|lAC)VR9B{WGz;?CX zpCYkzBkq8MP%)B9WP7|D;QXZpFvTA3^$sBXZj&;99V8%y#(T9GItQjmib996UT14r zd(i7s=-xi`TDK1>!e(24nkl%`i2V3f53#wqImZgG^~8OEH_)Mj!nO0b{#fXlygc`$ zu=9HC1?>7FYK`}0Cs?b(>a*ZpC!IG5#^~=!x;Jyv0jfP5(J3)%31-bzkdb-sdm85( z-P6;k7Q zyC$QksAy1qVSYXWV$T`G^$37j$u<(#7fQ;?wB2!Raic(Ce=D#t2}((IHUBBV%eQEI zePnCe6+^$Qt*;NcIQG4+yh+mX@~Y+H=I)vYa!TH#aahmPx+8H!{$Zo=hKqW5RC@t5 z&(SMTUwu~HZ`9x)?_GToI9-~lTTPlb^@Ejj=!eS8Rn0ro-wC|2tW z9B(D|3sR1{IyxIwJlsyD_HUZ+t~QX)t8Z@2v4E48tg))2KE z;M*N|ayf-bgYB6S?^3#b!UACg)Pa}}A4~zFTgXQ)9-f2+u>dp-N*POl1v6%9N_T(v zW?mxRSNL3dxNnt@_P~JbG2bo#R$4p$+wJz>w&ZCLF6V8pmThgm>s~RW09llBcao@t zJj%v1uxDFCMn=@D9G1ce2ngcAu$&yGs*Qr0muo*VlvPydZUpN~fE5o&hVm6b1KEe) zzL)wx16!?6(0Coc7DoN`at8=X=NkgopYCV}NMjv?Jkzeu+%~m9@bv z`8Gv(pf3mNyTo5DNq=pPP;)?n7_T0seL=W;z_(>^eQ2;Wd$lzycu(*J;=;`?p{Jv3 zxe(m%;mpKbt%28DRs)=z8q@^?e^B2EF>Xo{R7jWXjvSGt%H5_Q(u+m*?vu zBP;tj1yb*VZp)+dzH!tU@`rmhX+(L`G^+-u7;oDd!0d@uVgN{+M;zymlAQTQl7CNL z7XG6omj`52C7uJqpQJ4C5*#e*+g!(gl;qYolKkC!^!<{+;$t z_c&%zRLdGSqKD>Bqm=aTeC4TVDASFRVY_?yKxqT9{!e+!fZbsWmGn+oyv&V_qeLhs zGJlI#ckVycF3kT^?Lzk5zf30(GtvxGN8;N@Y84*^Jb@9#1u{p?E(jfw`@e5t3VrlM z_1ScUpm`seL+OfR-|c$uU;7aO(Ia!0@4qPduP^`m(GLu)RV+M$#9O0v|5`6?T*An= zOOG2+LhBdmm>KlMM>Ua~oBNrhX~z9(U1c@3EfUYgPQ2w4fDTbm8m)Onv{Ur@?hYR{ z@ye5{OIE? zHPF$iiPir`jf_qp8ar@C5Po{w)v;6D2gNu z0;IL9soF<=YwR6+?wxGm51jeREdsY?IsE4-Kon!Bht*fx(AV+8beU?Zz$RG5DgC2C zkO+xR>JHq2H5T7H2SMxsnK2oF#8&a1*w3fOevIoXw;b*H;_mLQ{N8{%O*$%U=05q` zTeip<*iU%jGtcY(M&ZE2c4bAtV!)^fskW#6F70`|^#KR~k+L2F3^`qG;Y4XXkU~FJ zz3Tgu71qbjT`N_uIr0h$J|zpd9AULqe!AzK1VbWT5;6W*Cp90Tych@Zm!|>m7C1 ziBebS=J+Iy@jbdBI2^2UybX_vTd6-%dmA3UKh6;IVW+6OukX`bOK{MTkdTmG{bjx_=3R;-bPie3lkN3%CYlg*h zSfD_5RP)Kp(9e}$sAnUv6$=#A3ptFUc6aSx>BG|X(G3q~z8^2;8n~+i@I;Pyp}XNc zxhI)Z`k1q;%;y*ef2OXU`AGYl(oc*EmuZg{l&y{^szPhCM3-}1a(2i|nDBntX~g>u zXTS&~iG3}n`20f<7Ez~#-e>^s6q|%oFT3v@yib@%MRC5zVRtC_RVh7o5ckLHy?~;v zd_MDmWtHV!FyCE&z}BJm3YI|Mcm63h_I_KN$VmCa(q(KeFOI+5`lF0 z>#gT(SUElVEX*IEmltt2YKE+Xa)^w}>337D!vSfBx>WI!1HPtx*xtEvVDv-J0IX*@t30p(nkU!M#=uoS*j&75{gyprRd@9NW|fbfCSXWaG`{RIsH zlF`TF;~OUi+Gb`=UDc!7NQiak`%?1234kPd?> z(_gl9YK9asTd6Qy{a6$I|Qa9dEC9fFYU~7zuCBuW8fUpwcHmE{R=# zxn~=Ulx!lQDh_%HWIK`YN(&9;0lJacv5@+!-lP=I{EskRo07P6^%mt~TjIbnz@*hx zV(QwpInK#_vH#v`cA%+iu*n;|s@1q(rrf6Bw#=ee(&}bUTR0wsHMi7I0|5RkbG+|w z&r5x;5%*1U*PC1V5?rY~A-DK2Z}R94NML0;dT$KhV(RVO_ZK7Q^EmjnyXXG~1viUL zG$xcXwtwCjm14OPUST8=$-DCHo_3hq=6<-GFNOEq7b|*R-TWSZTcWWS(Lei6_ z#iNO=dDPmH_Xa?Xj$_sabct@1!yW%DwbOEkuHIgbm5JfWEf_qX%YXWVqR)%GuL1R7 zr=JhenAHoj0BhHP8@`yKfa7vRj|QUU*#TSpMvH3v*}{fxya}8rkbXI5l>8}6=!+}` zs4`pGqla~NO(64~MgJ8I`xnu8!_=RIj;BWNtF$o?w-!$)2y90R*uc3C)&|WYWR80V z6?4IHmId@#_q(M+P69vp5fi>6e<+~(rn#Eh#(h!=sFv$!_7P?Z6AH{C9XUBrG5F+l zuf-6sDwinKttGV~Z|heN4R(0y_MrQLjUY$kMcy?1-bUIXMd&H^-JkN2U}CmWoT1rZ z&3wlBqLdc?x1oJ}$U;~WSRvmRnAJN0!kQk(;KQGM5(QilR5?x0`zK|ev#pjs(X?ss zu3lVxnfM)|zyX8`!#Peq-?j(I5TCx1oKGGBWHm5l2(&@v0Cs6l!-BHuRa*s8y4h$Y zeu2mV_Ts|FAanNGmE2=>HMNY>JAUZ;O5m0}ZXO;IT+UE7P@I#8j+p8mj>%Msb0Q`; zOFJF5Nz2dd;QCJ7;GO4LO`a_BEf0+VadkFf1RU}_Gdf45$DYxcreE_g1ia7k9@SYE zdwrpF+xZ^gs%Bx4u$w30hd7qC-7iYs;)$VeJN99abwfLbi|Yrb`M2QrVzwMCV2KsC z6iNe^SzhM!6skbcQ1hS2ee9t!(Zu2w`S;fMkplWZMccQeVXZJILLMcS6SoxlT#}LG z&yx!-Cc*AbG>W?uYHL4^IPu88NZ|UqLe|>5On5Cx!Y_rhbx+^7g)8tVJvhc@s;sT> zC(*=fE6LxS5yKy_5lgpz70Z}j{ zY59_5G>>@M`_2FpYk|ZA$H+NBDNxp6k_pZI#}6M4xbcqj>^R9PDsoa9JXrxKoS)3@ zzUk;-Bt^s&C#Z$yy+$qMjWFBd!B(S4g~)0s!{Bq z@T}pMt?wUmDY+{pQOWP0yY^W|HFcYV&nG4Yp!;ni{~5H(uU}WZXCH+Vnwqqg$%Nl) z?QmV}Zt<8$7Np|j7NHER^acoX0ri<1#Vsnhea2ioEZMVI?m`F)Y-(`6uo06v7bi(4 zB~!6H5-@7`4UGo=mC$mB$L-skS@$RFnK-X7Up>-Yl;5;V(N+{v(!`9E>}Tg4&%&e} zo5UEj_HA6fvTWj{>eRCy29a{j)?Qu_@4noQ>^z+r%FHetLIlz3=PcjN`Z|J`Rr-BU z?}yM>Ll!3Ze)Zi9?UqaGJY6%Ph(Yei*|Fm+PzUTu)3zV$~so~r8! z726?@z~NjO(_|FqNj!{0L~Cj*ARDFLKIIG*26w%`wgil(uW;`7NVBrtpEt-+<2M>p zsUehayn5k5YwZ;H|X>{IOD6*o3 zFK*Dn9k}N~cBQny=RZg6o0Pnq8@10L^}C`;%c!Imk~E*6X-K6EcOye7C%A+}Q4u@n z(P_AHVK-}Ad#9C^RXo#{Rptt*&oGg^JO36H-6gv^L#LYW1Fq^E%ADO-L5vqz#sqtw zK^A}_z)Oo3b4~Y9B=C!CS?V(2+LRzQo)5%eSRq}m%kjS(m`$XA@iE)wEh6~H_2R@H zzaBk$dqGh>F(*|iEq{*4EHup5wGUcYH5S>4cxdM@pTIS+wN<9k!TJFve68!VKN%Nc z7i1>^x(_&xxg}AGTsCRmi&+JNoV6u{q~DR6CeU)-4ML-Crs)!~3iObo8NUXwoC)Sb z!_C?H0|7+`-@(pHWnJBuwb@D>&I_5n!Pgb+lGKR;HXVJ*QbUfBaJbvIV{euAuhe07 z%AoiZZ66;&N%e_#<5tmC_;ZMhVu6e3)D2p(>(30M0FEij4DBzs+7WcBAR*Qs$Rs$aKi7fJmqmo_k>3bbDMcXp7Ycr{5enFNnQ4Ruv}0-f2b zM#($6-tEq1qxmGN$_Uu~{NmAN`W^ZEHVp3ExBrTtUq9*2+zh|VrlyMZUA|4o+1`i9 zPe(iLNlylg+ohL~^T{pXWPQe(U1{7#)LHU z6$uKe`9rk}{oEtNz)bINs_z?Ws& zP&g3{G@6k5#xb;+#Qta^_Po<=XT3?nqUA1~mP;CgxAY7P{6aq^GH6F(@rfg*WMBO^ z8!YrEFmwT_*AK)WT^?HhFhF@NHA55M)Q-L6!Oq}ZUBIb5fKRF5;vF(vvkmylKAAz? zCse`Mrj%vHbDwyQwZ2{!U87t|fNexpPTYK|TX5SjbQ6X+hByEr49W_66D;U8U4BT$ z^EG5qAKG%G6cA3i({YWP(ft;{&4c(v?ThB;LUB`K@@NTAlLRIt(fq;Fkl3d(0t8`O z)0MC%-i-sPY?CQ1A-%3XPvIwzpOPg%aaXp13QvzN74@m9j^@zGXm?VY*Q3GTzE|uC z@Y)zBp$NkE?w!==lVr*~1OOl8k?5PmJ9u=eG%d3dMna_*dbln#Vb886P;0gesamT< zz0+uFPZ9-)KRoTlssxk;sn#Se^B4?wA&14USH+ze&t+OJqQi^^#(Z6&$##;uzQ>%; z@Rg*xsXt+}kTaPsnKGc%*7V{KL9Ze)u|`>cX=VK>OVQ7?vMW9!(B| z)ty?n=E4B#u$Xo9tJbm`oni%QyIBz*9C&RP3*s&tq#`;9!GB&Bc6ZEO&K{|^jWQP% z<18Y6Ly?YWjMP_Tc&)RrORi$|{LIP^KaOgG2~U;(HhnPLR`I-l*$X zZ#7=s8yMuX7OogS2v~e#qJWyS5I5tXMN0zAu=Ki<+*#u2J5{wW7t8GktdG@S;Uzkh}1(IS5Nm7>-W$%^>&=iSY#B`~D7{ z@z9YiKQSorC^dQqsIhW1!oEQ0@HCsuR=~WUCa?0;9WowO5*F~{o)2KmNUSwJo^q_r z>aIQ{lk0;sHXKN{;Cd@2Ju!+54+{f~6VK(s$Tx8%cbEH;S#&C_RCXUft4~cGKZpBL zXIIBi2SQrtUykAG3n7B26{ zN$^=hjGuT!S4G7HV8`OUKKK--aL-|-)?N9rP13_3Av`QBEScE)E}LU1v__vE#f!|k zm3gPO?HA38dhR=o1gPZ-|7dnbmy6%1t#Vuhu;|`dqVMD8380!IU+RDYPaMw~g`k^K zP;JvIP-rkZE=A0wEtJ&}$cy$*V(}VHoeTSkuxmXZxVy~HueNb@WM06#*x6o>iMiLy zS7RG$_rM|~RsxG#9tWi#81DGf&F5c$G4_Rn$wS(JU(pvgsI7`)JQUVJ$?ZQ|>+Y!bem$YutThy`Y~{tD8eA;{#MpnVP%m?=Iq>xKnCMhk4edO_G00=y>z^&i0S8j3k z*svf55^E!F9ITZxv9o-_9ooRW_n1w;Hl0>I0k1$@&(zN&sV(;nT8n@(+SM3y!C@nIRVdZa4?CHBwcuqfIhXXv3}k?qii5B ziGbksn=z202*_xM0musw_yVy2bq9*A`s=B|c@lm5Jc>VKZO1hQpuH90z727t^xO@#x#PZ=He8;wRz{)4&Huu709LhUbckrBp(2uovJ86olIUeBSs><{KV4QGv`*PS>_k9|ylM zqnr4%7fS^01MJ5GX&u8lRwZkLKYm!v%xR&)L@klg?y#SmTdaTEwv^x5+cyIlIh%)O z4bD?|-r*@Mg%&PI-MdgG-#8p*h;<~+VtgblT)-Gymu(V!Uh|4*^pv*`vLx`E{&wRU zi~>Ix3cLWD3v0kwK>Rxqq<~fS{(NCxUTlW;L(cbn`~IjFD;uPOH5InAG#yb;c1Lkh zQVy?gn`2eofqL5ZM(;gd(xBkq6UZMnzv3~V9j877O=irK)pnq*`xtgaI=j6YuTQBz zpCsG+*2MaC)vSeOV|_zDk~i;Ou&y=Kr+S1yN_4vts8SlgzoQudD8OA~942PA(XnTZLckUCX{F4a zlnC%%U$Q{fymB!Kk~rlE5{xskkX&4~JWT${N}fZ4VOm(>)FdOw63o$Vi-21^($aJHe7Rg zox5lf+|NNeP_L2+wO;+k1}H{@w50zW)U!@4cF?ZaS1-`~l6& zrNu=jOi3=H=>aEjPBk6;MeXs9}ane z@SmD0GSj-l0_?guwO`;HlRo7bn*$<{{|CzxVD4-$z#SiWN+gbq@O&8ToqclEm&Uf& zq=hT!yVWd&E9C;OKa+ZFD`8SPWH}J>zl$7{Az8SeavOB79aS9+E&9-8HgWa_^MoL0 zz&b;PwB8tQRXeZGoORG`lYhkeYd#~{}gl%O7)G+?yHva45wz(QMp;{){a(jif?PZ=#Ky=SNkPC=pv50+} zf97dNs9Avxr_;p`nHkLH;Jy6gB0! zI$IYX7qMe5k{2;ze3J7PVK0~HV`@cl*K)RZFw6m1%CUCZ9owQM*lzxKt&vCl=8_8V%C+TLY=M4g^tJ^aT9 zMnzQ+m|FA=0wNO1-xnj$Mhhb9*NN;~D%|6cfq{dcb1kkmA{@f{-ZMgi7kxfdfB*FF z3!Vzm$w2cOSKkCfOL%>qdwDdoxrc|xF7MoE!>N3E!iq)QgkEhl_CK2W&%J)MsK$u? z!?6_@gTli|D8AROzB*Nx8x5D9)y^9(XYlLOS*N3^(*wop6WrWgC+vT|=wDB02L10p zak(3xn5g62Hw1JZ4IS;ra&O|`#f6tZ`Mc`7zjc)0K07DphwWM4qV78iptvBhpb_M=^6^SydN&B0ArOOIT?2s8ErSJ366-|fPPi;v*F#9@D6WG1O8?H z<~7lU{Hm?EFaB9#|7_swWul$OnItL6cye`3%>qf!RtgL z2wAaxE$46l6xBj%E-RUku>N~d{C$B*2+q7W^(05?xA{@}^oBh@??{R4_W|-p4KzpP zjm-Id#l+H6%Q5E)4F&%?pQ2w35skE)-lbXmzC=wiK!e{caLZ|ao9YLeqVei>3tvh9 zf0zFMEWJVS`#)cJucHC)JzK;6q8SX5akg=|!8^-WpFpv{zrS|6zheICRpweZBLl;a zlM}bWQ5M%Gz_nRzzp(5OqA?{RAP{E_$>OyYo>~H8ht`0gAZFph*Z{o@)u%##Z=nCV z$R}_+II+K%L?Psmo+B0bdWB6_H&0nZLxbObz9ZXpW2DWy*Xrr&!SE9E8W1cR9_Q@j zl%6JylLZ7Hv2N>_n{3Wp5*SVO_xH0e~!?Jrz^cJ6m_)cU*Q_?}O=VI9!|*9{{NnOfunSQHp}H1LxLN>@0nCZfm(^ zK++cz%2d+E#bVb7r=|6BCvIN~p=$8cfS`?^O~cK^73G=C4N!)_;s$4eTzcy@{(yR1>PJKiP9#lL@p&Mjqx<85~@@IK^7q zhbGDCY*5;tPJ!l9Aun9E$D$(_XRH%>tYs^0W}ihl;?`VU)eDk4rSkjiH2Mt+0$rigyklVOrH5huB~Z3aj=X{yG>sm`|gMR?QE+GdPsa>lbpz ziBbmhCo2b`eGvKcV|XD_I%p_3gecfbN{{x5Mc!bdprX!Zcwu!dkVwWA=UKi*LLoo9 zxJ3+^i1zG}96MlwM|s;vd3zqKrwqSKnXAXYTar5_`L&X$ary@Wi*qcD48uCB6|oYzkC5%de5{hsiU3B8bv9R-TW=u>&jtC zb6d}aCB*f3@4|Zb9_(#Z-#Vphx1I)^s=IEE_Wk+Vib%G{dYhNE@5utyzN1-=3T{kr9HBCtnu?;)*g7+#C-Ip;V{;g1%!=dIo1<;*U$LQXoSAIGs##L zdmgv2G_3qV0CK=E?1a#eI41ulQ7COZx zns5$AtvhoO5L4&Rg}gaXxKEhgKw5tB(@uh=Lv)mv?~XlZw^q9d9m_A5U_j-*F~A5x z#P;rVZNQXPkW0BO> zmhcgawyqO$diAfH8yh+&MPcybGgG;AsuZm|Q4w8NCQIE9cKJN?CE2+-IHE(ikJO>I zGu3(&24^hGV&RfVw6UaAREo|BgwtrDH0;O&X<6FexHan6F7s0HKraQmAUB)p=;ksykIJP>>*U>LPF1QNClhI7A`#_ zpG_swyptL+ER$x{D^wRrC7^E2o22gDS9yJ6&wd1kPy_b?ot|$GK;iRqa zJRHXeu_#)RP!9J^e0_Zl_&p9}tkjw9gnJNY7X+zvz1l9UUvylQ4DagIpbY}_I_3T= zZO>sjcJ{Adf5k-2#owz06vdahSm8z{V^lC7j;9sFH_*6i3B9 parachain_template_runtime::Sessio parachain_template_runtime::SessionKeys { aura: keys } } -pub fn development_config(id: ParaId) -> ChainSpec { +pub fn development_config() -> ChainSpec { // Give your base currency a unit name and decimal places let mut properties = sc_chain_spec::Properties::new(); properties.insert("tokenSymbol".into(), "UNIT".into()); @@ -98,7 +98,7 @@ pub fn development_config(id: ParaId) -> ChainSpec { get_account_id_from_seed::("Eve//stash"), get_account_id_from_seed::("Ferdie//stash"), ], - id, + 1000.into(), ) }, Vec::new(), @@ -107,12 +107,12 @@ pub fn development_config(id: ParaId) -> ChainSpec { None, Extensions { relay_chain: "rococo-local".into(), // You MUST set this to the correct network! - para_id: id.into(), + para_id: 1000, }, ) } -pub fn local_testnet_config(id: ParaId) -> ChainSpec { +pub fn local_testnet_config() -> ChainSpec { // Give your base currency a unit name and decimal places let mut properties = sc_chain_spec::Properties::new(); properties.insert("tokenSymbol".into(), "UNIT".into()); @@ -152,7 +152,7 @@ pub fn local_testnet_config(id: ParaId) -> ChainSpec { get_account_id_from_seed::("Eve//stash"), get_account_id_from_seed::("Ferdie//stash"), ], - id, + 1000.into(), ) }, // Bootnodes @@ -166,7 +166,7 @@ pub fn local_testnet_config(id: ParaId) -> ChainSpec { // Extensions Extensions { relay_chain: "rococo-local".into(), // You MUST set this to the correct network! - para_id: id.into(), + para_id: 1000, }, ) } diff --git a/node/src/cli.rs b/node/src/cli.rs index 8737b288..1ed73098 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -46,18 +46,12 @@ pub struct ExportGenesisStateCommand { #[structopt(parse(from_os_str))] pub output: Option, - /// Id of the parachain this state is for. - /// - /// Default: 100 - #[structopt(long, conflicts_with = "chain")] - pub parachain_id: Option, - /// Write output in binary. Default is to write in hex. #[structopt(short, long)] pub raw: bool, /// The name of the chain for that the genesis state should be exported. - #[structopt(long, conflicts_with = "parachain-id")] + #[structopt(long)] pub chain: Option, } @@ -92,7 +86,7 @@ pub struct Cli { /// Relay chain arguments #[structopt(raw = true)] - pub relaychain_args: Vec, + pub relay_chain_args: Vec, } #[derive(Debug)] diff --git a/node/src/command.rs b/node/src/command.rs index 50fd3245..59fb46e3 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -18,14 +18,11 @@ use sp_core::hexdisplay::HexDisplay; use sp_runtime::traits::Block as BlockT; use std::{io::Write, net::SocketAddr}; -fn load_spec( - id: &str, - para_id: ParaId, -) -> std::result::Result, String> { +fn load_spec(id: &str) -> std::result::Result, String> { Ok(match id { - "dev" => Box::new(chain_spec::development_config(para_id)), - "template-rococo" => Box::new(chain_spec::local_testnet_config(para_id)), - "" | "local" => Box::new(chain_spec::local_testnet_config(para_id)), + "dev" => Box::new(chain_spec::development_config()), + "template-rococo" => Box::new(chain_spec::local_testnet_config()), + "" | "local" => Box::new(chain_spec::local_testnet_config()), path => Box::new(chain_spec::ChainSpec::from_json_file(std::path::PathBuf::from(path))?), }) } @@ -40,13 +37,11 @@ impl SubstrateCli for Cli { } fn description() -> String { - format!( - "Parachain Collator Template\n\nThe command-line arguments provided first will be \ + "Parachain Collator Template\n\nThe command-line arguments provided first will be \ passed to the parachain node, while the arguments provided after -- will be passed \ to the relay chain node.\n\n\ - {} [parachain-args] -- [relaychain-args]", - Self::executable_name() - ) + parachain-collator -- " + .into() } fn author() -> String { @@ -62,7 +57,7 @@ impl SubstrateCli for Cli { } fn load_spec(&self, id: &str) -> std::result::Result, String> { - load_spec(id, self.run.parachain_id.unwrap_or(2000).into()) + load_spec(id) } fn native_runtime_version(_: &Box) -> &'static RuntimeVersion { @@ -83,7 +78,7 @@ impl SubstrateCli for RelayChainCli { "Parachain Collator Template\n\nThe command-line arguments provided first will be \ passed to the parachain node, while the arguments provided after -- will be passed \ to the relay chain node.\n\n\ - parachain-collator [parachain-args] -- [relay_chain-args]" + parachain-collator -- " .into() } @@ -171,7 +166,7 @@ pub fn run() -> Result<()> { runner.sync_run(|config| { let polkadot_cli = RelayChainCli::new( &config, - [RelayChainCli::executable_name()].iter().chain(cli.relaychain_args.iter()), + [RelayChainCli::executable_name()].iter().chain(cli.relay_chain_args.iter()), ); let polkadot_config = SubstrateCli::create_configuration( @@ -194,10 +189,8 @@ pub fn run() -> Result<()> { builder.with_profiling(sc_tracing::TracingReceiver::Log, ""); let _ = builder.init(); - let block: Block = generate_genesis_block(&load_spec( - ¶ms.chain.clone().unwrap_or_default(), - params.parachain_id.unwrap_or(2000).into(), - )?)?; + let block: Block = + generate_genesis_block(&load_spec(¶ms.chain.clone().unwrap_or_default())?)?; let raw_header = block.header().encode(); let output_buf = if params.raw { raw_header @@ -248,15 +241,16 @@ pub fn run() -> Result<()> { let runner = cli.create_runner(&cli.run.normalize())?; runner.run_node_until_exit(|config| async move { - let para_id = - chain_spec::Extensions::try_get(&*config.chain_spec).map(|e| e.para_id); + let para_id = chain_spec::Extensions::try_get(&*config.chain_spec) + .map(|e| e.para_id) + .ok_or_else(|| "Could not find parachain ID in chain-spec.")?; let polkadot_cli = RelayChainCli::new( &config, - [RelayChainCli::executable_name()].iter().chain(cli.relaychain_args.iter()), + [RelayChainCli::executable_name()].iter().chain(cli.relay_chain_args.iter()), ); - let id = ParaId::from(cli.run.parachain_id.or(para_id).unwrap_or(2000)); + let id = ParaId::from(para_id); let parachain_account = AccountIdConversion::::into_account(&id); diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 73abd4b6..bdda8e42 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -15,15 +15,15 @@ targets = ["x86_64-unknown-linux-gnu"] codec = { package = "parity-scale-codec", version = "2.0.0", features = ["derive"], default-features = false } scale-info = { version = "1.0.0", default-features = false, features = ["derive"] } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.11" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.12" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } [dev-dependencies] serde = { version = "1.0.119" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } [features] default = ["std"] diff --git a/pallets/template/src/benchmarking.rs b/pallets/template/src/benchmarking.rs index 4e1acc8b..fea9e659 100644 --- a/pallets/template/src/benchmarking.rs +++ b/pallets/template/src/benchmarking.rs @@ -3,7 +3,7 @@ use super::*; #[allow(unused)] -use crate::Module as Template; +use crate::Pallet as Template; use frame_benchmarking::{benchmarks, impl_benchmark_test_suite, whitelisted_caller}; use frame_system::RawOrigin; diff --git a/pallets/template/src/lib.rs b/pallets/template/src/lib.rs index e744ec7a..0afd7c6d 100644 --- a/pallets/template/src/lib.rs +++ b/pallets/template/src/lib.rs @@ -2,7 +2,7 @@ /// Edit this file to define custom logic or remove it if it is not needed. /// Learn more about FRAME and the core library of Substrate FRAME pallets: -/// +/// pub use pallet::*; #[cfg(test)] @@ -31,15 +31,15 @@ pub mod pallet { pub struct Pallet(_); // The pallet's runtime storage items. - // https://substrate.dev/docs/en/knowledgebase/runtime/storage + // https://docs.substrate.io/v3/runtime/storage #[pallet::storage] #[pallet::getter(fn something)] // Learn more about declaring storage items: - // https://substrate.dev/docs/en/knowledgebase/runtime/storage#declaring-storage-items + // https://docs.substrate.io/v3/runtime/storage#declaring-storage-items pub type Something = StorageValue<_, u32>; // Pallets use events to inform users when important changes are made. - // https://substrate.dev/docs/en/knowledgebase/runtime/events + // https://docs.substrate.io/v3/runtime/events-and-errors #[pallet::event] #[pallet::generate_deposit(pub(super) fn deposit_event)] pub enum Event { @@ -71,7 +71,7 @@ pub mod pallet { pub fn do_something(origin: OriginFor, something: u32) -> DispatchResultWithPostInfo { // Check that the extrinsic was signed and get the signer. // This function will return an error if the extrinsic is not signed. - // https://substrate.dev/docs/en/knowledgebase/runtime/origin + // https://docs.substrate.io/v3/runtime/origins let who = ensure_signed(origin)?; // Update storage. diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index a54861e3..c4f5a2bb 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,7 +12,7 @@ edition = "2018" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.11" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } [dependencies] codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"]} @@ -26,57 +26,56 @@ pallet-template = { path = "../pallets/template", default-features = false } # Substrate Dependencies ## Substrate Primitive Dependencies -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } ## Substrate FRAME Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.11" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.11" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.12" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.12" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } ## Substrate Pallet Dependencies -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.11" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } # Cumulus dependencies -cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11', default-features = false } -cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11', default-features = false } -cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11', default-features = false } -cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11', default-features = false } -cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11', default-features = false } -cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11', default-features = false } -cumulus-primitives-timestamp = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11', default-features = false } -cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11', default-features = false } -pallet-collator-selection = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11', default-features = false } -parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.11', default-features = false } +cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12', default-features = false } +cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12', default-features = false } +cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12', default-features = false } +cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12', default-features = false } +cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12', default-features = false } +cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12', default-features = false } +cumulus-primitives-timestamp = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12', default-features = false } +cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12', default-features = false } +pallet-collator-selection = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12', default-features = false } +parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12', default-features = false } # Polkadot Dependencies -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.11" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.11" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.11" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.11" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.11" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.11" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.12" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.12" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.12" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.12" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.12" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.12" } [features] default = [ @@ -106,7 +105,6 @@ std = [ "pallet-authorship/std", "pallet-balances/std", "pallet-collator-selection/std", - "pallet-randomness-collective-flip/std", "pallet-session/std", "pallet-sudo/std", "pallet-template/std", diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index fcb835c5..d7cb4d70 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -377,8 +377,6 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type ReservedXcmpWeight = ReservedXcmpWeight; } -impl pallet_randomness_collective_flip::Config for Runtime {} - impl parachain_info::Config for Runtime {} impl cumulus_pallet_aura_ext::Config for Runtime {} @@ -532,7 +530,6 @@ impl cumulus_pallet_dmp_queue::Config for Runtime { } parameter_types! { - pub const DisabledValidatorsThreshold: Perbill = Perbill::from_percent(33); pub const Period: u32 = 6 * HOURS; pub const Offset: u32 = 0; pub const MaxAuthorities: u32 = 100_000; @@ -549,7 +546,6 @@ impl pallet_session::Config for Runtime { // Essentially just Aura, but lets be pedantic. type SessionHandler = ::KeyTypeIdProviders; type Keys = SessionKeys; - type DisabledValidatorsThreshold = DisabledValidatorsThreshold; type WeightInfo = (); } @@ -604,9 +600,8 @@ construct_runtime!( ParachainSystem: cumulus_pallet_parachain_system::{ Pallet, Call, Config, Storage, Inherent, Event, ValidateUnsigned, } = 1, - RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Storage} = 2, - Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 3, - ParachainInfo: parachain_info::{Pallet, Storage, Config} = 4, + Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 2, + ParachainInfo: parachain_info::{Pallet, Storage, Config} = 3, // Monetary stuff. Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, diff --git a/scripts/init.sh b/scripts/init.sh deleted file mode 100755 index 5b0e363a..00000000 --- a/scripts/init.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash - -set -e - -echo "*** Initializing WASM build environment" - -if [ -z $CI_PROJECT_NAME ] ; then - rustup update nightly - rustup update stable -fi - -rustup target add wasm32-unknown-unknown --toolchain nightly From 971fc22076c9f366cdb1e2262c36ea925809b37b Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Thu, 2 Dec 2021 13:57:05 -0700 Subject: [PATCH 43/91] Update template to `polkadot-v0.9.13` (#85) * Port changes from Cumulus template upstream * Update CI --- .github/workflows/link-check.yml | 19 - .github/workflows/mlc_config.json | 7 - .github/workflows/test-code.yml | 4 +- Cargo.lock | 1976 +++++++++++++---------------- node/Cargo.toml | 97 +- node/src/chain_spec.rs | 1 - node/src/service.rs | 5 +- pallets/template/Cargo.toml | 14 +- runtime/Cargo.toml | 94 +- 9 files changed, 1019 insertions(+), 1198 deletions(-) delete mode 100644 .github/workflows/link-check.yml delete mode 100644 .github/workflows/mlc_config.json diff --git a/.github/workflows/link-check.yml b/.github/workflows/link-check.yml deleted file mode 100644 index 75948534..00000000 --- a/.github/workflows/link-check.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: Check Links - -on: - pull_request: - branches: - - master - push: - branches: - - master - -jobs: - markdown-link-check: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: gaurav-nelson/github-action-markdown-link-check@v1 - with: - use-quiet-mode: 'yes' - config-file: '.github/workflows/mlc_config.json' diff --git a/.github/workflows/mlc_config.json b/.github/workflows/mlc_config.json deleted file mode 100644 index 48bfb36d..00000000 --- a/.github/workflows/mlc_config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "ignorePatterns": [ - { - "pattern": "^https://crates.io" - } - ] -} diff --git a/.github/workflows/test-code.yml b/.github/workflows/test-code.yml index 4343e63e..8f655ab4 100644 --- a/.github/workflows/test-code.yml +++ b/.github/workflows/test-code.yml @@ -30,7 +30,7 @@ jobs: uses: actions-rs/toolchain@v1 with: profile: minimal - toolchain: nightly-2021-09-29 + toolchain: nightly-2021-12-01 components: rustfmt, clippy target: wasm32-unknown-unknown override: true @@ -38,7 +38,7 @@ jobs: # Enable this for clippy linting. # - name: Check and Lint Code - # run: cargo +nightly-2020-05-07 clippy -- -D warnings + # run: cargo +nightly-2021-12-01 clippy -- -D warnings - name: Check Code run: cargo check diff --git a/Cargo.lock b/Cargo.lock index e6c4f2c2..d96481fc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -97,15 +97,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbf688625d06217d5b1bb0ea9d9c44a1635fd0ee3534466388d18203174f4d11" -[[package]] -name = "ansi_term" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" -dependencies = [ - "winapi 0.3.9", -] - [[package]] name = "ansi_term" version = "0.12.1" @@ -117,9 +108,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.45" +version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee10e43ae4a853c0a3591d4e2ada1719e553be18199d9da9d4a83f5927c2f5c7" +checksum = "8b26702f315f53b6071259e15dd9d64528213b44d61de1ec926eca7715d62203" [[package]] name = "approx" @@ -403,23 +394,10 @@ dependencies = [ "cfg-if 1.0.0", "libc", "miniz_oxide", - "object 0.27.1", + "object", "rustc-demangle", ] -[[package]] -name = "bae" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec107f431ee3d8a8e45e6dd117adab769556ef463959e77bf6a4888d5fd500cf" -dependencies = [ - "heck", - "proc-macro-error 0.4.12", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "base-x" version = "0.2.8" @@ -432,12 +410,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" -[[package]] -name = "base64" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" - [[package]] name = "base64" version = "0.13.0" @@ -456,11 +428,11 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "beefy-primitives", "fnv", - "futures 0.3.17", + "futures 0.3.18", "log", "parity-scale-codec", "parking_lot 0.11.2", @@ -484,11 +456,11 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "beefy-gadget", "beefy-primitives", - "futures 0.3.17", + "futures 0.3.18", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -504,12 +476,12 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "parity-scale-codec", "scale-info", @@ -520,6 +492,12 @@ dependencies = [ "sp-std", ] +[[package]] +name = "bimap" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50ae17cabbc8a38a1e3e4c1a6a664e9a09672dc14d0896fa8d865d3a5a446b07" + [[package]] name = "bincode" version = "1.3.3" @@ -531,9 +509,9 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.59.1" +version = "0.59.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453c49e5950bb0eb63bb3df640e31618846c89d5b7faa54040d76e98e0134375" +checksum = "2bd2a9a458e8f4304c52c43ebb0cfbd520289f8379a52e329a38afda99bf8eb8" dependencies = [ "bitflags", "cexpr", @@ -554,18 +532,6 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" -[[package]] -name = "bitvec" -version = "0.19.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8942c8d352ae1838c9dda0b0ca2ab657696ef2232a20147cf1b30ae1a9cb4321" -dependencies = [ - "funty", - "radium 0.5.3", - "tap", - "wyz", -] - [[package]] name = "bitvec" version = "0.20.4" @@ -573,7 +539,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" dependencies = [ "funty", - "radium 0.6.2", + "radium", "tap", "wyz", ] @@ -754,12 +720,6 @@ dependencies = [ "iovec", ] -[[package]] -name = "bytes" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" - [[package]] name = "bytes" version = "1.1.0" @@ -792,14 +752,13 @@ dependencies = [ [[package]] name = "cargo_metadata" -version = "0.13.1" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "081e3f0755c1f380c2d010481b6fa2e02973586d5f2b24eebb7a2a1d98b143d8" +checksum = "ba2ae6de944143141f6155a473a6b02f66c7c3f9f47316f802f80204ebfe6e12" dependencies = [ "camino", "cargo-platform", - "semver 0.11.0", - "semver-parser 0.10.2", + "semver 1.0.4", "serde", "serde_json", ] @@ -815,9 +774,9 @@ dependencies = [ [[package]] name = "cexpr" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db507a7679252d2276ed0dd8113c6875ec56d3089f9225b2b42c30cc1f8e5c89" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" dependencies = [ "nom", ] @@ -915,16 +874,16 @@ checksum = "fa66045b9cb23c2e9c1520732030608b02ee07e5cfaa5a521ec15ded7fa24c90" dependencies = [ "glob", "libc", - "libloading 0.7.1", + "libloading 0.7.2", ] [[package]] name = "clap" -version = "2.33.3" +version = "2.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" dependencies = [ - "ansi_term 0.11.0", + "ansi_term", "atty", "bitflags", "strsim", @@ -981,9 +940,9 @@ checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" [[package]] name = "cpp_demangle" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea47428dc9d2237f3c6bc134472edfd63ebba0af932e783506dcfd66f10d18a" +checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f" dependencies = [ "cfg-if 1.0.0", ] @@ -1008,18 +967,18 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.77.0" +version = "0.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15013642ddda44eebcf61365b2052a23fd8b7314f90ba44aa059ec02643c5139" +checksum = "cc0cb7df82c8cf8f2e6a8dd394a0932a71369c160cc9b027dca414fced242513" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.77.0" +version = "0.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298f2a7ed5fdcb062d8e78b7496b0f4b95265d20245f2d0ca88f846dd192a3a3" +checksum = "fe4463c15fa42eee909e61e5eac4866b7c6d22d0d8c621e57a0c5380753bfa8c" dependencies = [ "cranelift-bforest", "cranelift-codegen-meta", @@ -1034,9 +993,9 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.77.0" +version = "0.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cf504261ac62dfaf4ffb3f41d88fd885e81aba947c1241275043885bc5f0bac" +checksum = "793f6a94a053a55404ea16e1700202a88101672b8cd6b4df63e13cde950852bf" dependencies = [ "cranelift-codegen-shared", "cranelift-entity", @@ -1044,24 +1003,24 @@ dependencies = [ [[package]] name = "cranelift-codegen-shared" -version = "0.77.0" +version = "0.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd2a72db4301dbe7e5a4499035eedc1e82720009fb60603e20504d8691fa9cd" +checksum = "44aa1846df275bce5eb30379d65964c7afc63c05a117076e62a119c25fe174be" [[package]] name = "cranelift-entity" -version = "0.77.0" +version = "0.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48868faa07cacf948dc4a1773648813c0e453ff9467e800ff10f6a78c021b546" +checksum = "a3a45d8d6318bf8fc518154d9298eab2a8154ec068a8885ff113f6db8d69bb3a" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.77.0" +version = "0.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "351c9d13b4ecd1a536215ec2fd1c3ee9ee8bc31af172abf1e45ed0adb7a931df" +checksum = "e07339bd461766deb7605169de039e01954768ff730fa1254e149001884a8525" dependencies = [ "cranelift-codegen", "log", @@ -1071,9 +1030,9 @@ dependencies = [ [[package]] name = "cranelift-native" -version = "0.77.0" +version = "0.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6df8b556663d7611b137b24db7f6c8d9a8a27d7f29c7ea7835795152c94c1b75" +checksum = "03e2fca76ff57e0532936a71e3fc267eae6a19a86656716479c66e7f912e3d7b" dependencies = [ "cranelift-codegen", "libc", @@ -1082,9 +1041,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.77.0" +version = "0.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a69816d90db694fa79aa39b89dda7208a4ac74b6f2b8f3c4da26ee1c8bdfc5e" +checksum = "1f46fec547a1f8a32c54ea61c28be4f4ad234ad95342b718a9a9adcaadb0c778" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1098,9 +1057,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" +checksum = "738c290dfaea84fc1ca15ad9c168d083b05a714e1efddd8edaab678dc28d2836" dependencies = [ "cfg-if 1.0.0", ] @@ -1217,7 +1176,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" dependencies = [ "sc-cli", "sc-service", @@ -1227,12 +1186,12 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-primitives-core", - "futures 0.3.17", + "futures 0.3.18", "parity-scale-codec", "parking_lot 0.10.2", "polkadot-node-primitives", @@ -1250,12 +1209,12 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" dependencies = [ "async-trait", "cumulus-client-consensus-common", "cumulus-primitives-core", - "futures 0.3.17", + "futures 0.3.18", "parity-scale-codec", "polkadot-client", "sc-client-api", @@ -1280,11 +1239,11 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" dependencies = [ "async-trait", "dyn-clone", - "futures 0.3.17", + "futures 0.3.18", "parity-scale-codec", "polkadot-primitives", "sc-client-api", @@ -1300,10 +1259,10 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" dependencies = [ "derive_more", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "parity-scale-codec", "parking_lot 0.10.2", @@ -1323,10 +1282,10 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" dependencies = [ "cumulus-primitives-core", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "parity-scale-codec", "polkadot-node-primitives", @@ -1346,7 +1305,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-common", @@ -1375,7 +1334,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" dependencies = [ "frame-executive", "frame-support", @@ -1393,7 +1352,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1411,7 +1370,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1440,7 +1399,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -1448,10 +1407,23 @@ dependencies = [ "syn", ] +[[package]] +name = "cumulus-pallet-session-benchmarking" +version = "3.0.0" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-session", + "sp-runtime", + "sp-std", +] + [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1468,7 +1440,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1486,7 +1458,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1503,7 +1475,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1525,7 +1497,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" dependencies = [ "cumulus-primitives-core", "sp-inherents", @@ -1536,7 +1508,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1553,7 +1525,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1628,14 +1600,14 @@ dependencies = [ [[package]] name = "derive_more" -version = "0.99.16" +version = "0.99.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40eebddd2156ce1bb37b20bbe5151340a31828b1f2d22ba4141f3531710e38df" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case", "proc-macro2", "quote", - "rustc_version", + "rustc_version 0.4.0", "syn", ] @@ -1659,9 +1631,9 @@ dependencies = [ [[package]] name = "directories" -version = "3.0.2" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e69600ff1703123957937708eb27f7a564e48885c537782722ed0ba3189ce1d7" +checksum = "f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210" dependencies = [ "dirs-sys", ] @@ -1714,6 +1686,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +[[package]] +name = "dtoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" + [[package]] name = "dyn-clonable" version = "0.9.0" @@ -1743,9 +1721,9 @@ checksum = "ee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcf" [[package]] name = "ed25519" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4620d40f6d2601794401d6dd95a5cf69b6c157852539470eeda433a99b3c0efc" +checksum = "74e1069e39f1454367eb2de793ed062fac4c35c2934b76a81d90dd9abcd28816" dependencies = [ "signature", ] @@ -1905,7 +1883,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", ] [[package]] @@ -1955,7 +1933,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8ac3ff5224ef91f3c97e03eb1de2db82743427e91aaa5ac635f454f0b164f5a" dependencies = [ "either", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "log", "num-traits", @@ -1978,9 +1956,9 @@ dependencies = [ [[package]] name = "fixedbitset" -version = "0.2.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" +checksum = "398ea4fabe40b9b0d885340a2a991a44c8a645624075ad966d21f88688e2b69e" [[package]] name = "flate2" @@ -2004,7 +1982,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "parity-scale-codec", ] @@ -2022,7 +2000,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -2042,7 +2020,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "Inflector", "chrono", @@ -2068,7 +2046,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -2082,7 +2060,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -2110,7 +2088,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "bitflags", "frame-metadata", @@ -2125,6 +2103,7 @@ dependencies = [ "smallvec", "sp-arithmetic", "sp-core", + "sp-core-hashing-proc-macro", "sp-inherents", "sp-io", "sp-runtime", @@ -2132,12 +2111,13 @@ dependencies = [ "sp-state-machine", "sp-std", "sp-tracing", + "tt-call", ] [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2149,7 +2129,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.1.0", @@ -2161,7 +2141,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "proc-macro2", "quote", @@ -2171,7 +2151,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "log", @@ -2188,7 +2168,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-benchmarking", "frame-support", @@ -2203,7 +2183,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "parity-scale-codec", "sp-api", @@ -2212,7 +2192,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "sp-api", @@ -2278,9 +2258,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12aa0eb539080d55c3f2d45a67c3b58b6b0773c1a3ca2dfec66d58c97fd66ca" +checksum = "8cd0210d8c325c245ff06fd95a3b13689a1a276ac8cfa8e8720cb840bfb84b9e" dependencies = [ "futures-channel", "futures-core", @@ -2293,9 +2273,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5da6ba8c3bb3c165d3c7319fc1cc8304facf1fb8db99c5de877183c08a273888" +checksum = "7fc8cd39e3dbf865f7340dce6a2d401d24fd37c6fe6c4f0ee0de8bfca2252d27" dependencies = [ "futures-core", "futures-sink", @@ -2303,15 +2283,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53d" +checksum = "629316e42fe7c2a0b9a65b47d159ceaa5453ab14e8f0a3c5eedbb8cd55b4a445" [[package]] name = "futures-executor" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45025be030969d763025784f7f355043dc6bc74093e4ecc5000ca4dc50d8745c" +checksum = "7b808bf53348a36cab739d7e04755909b9fcaaa69b7d7e588b37b6ec62704c97" dependencies = [ "futures-core", "futures-task", @@ -2321,9 +2301,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377" +checksum = "e481354db6b5c353246ccf6a728b0c5511d752c08da7260546fc0933869daa11" [[package]] name = "futures-lite" @@ -2342,12 +2322,10 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bb" +checksum = "a89f17b21645bc4ed773c69af9c9a0effd4a3f1a3876eadd453469f8854e7fdd" dependencies = [ - "autocfg", - "proc-macro-hack", "proc-macro2", "quote", "syn", @@ -2366,15 +2344,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36ea153c13024fe480590b3e3d4cad89a0cfacecc24577b68f86c6ced9c2bc11" +checksum = "996c6442437b62d21a32cd9906f9c41e7dc1e19a9579843fad948696769305af" [[package]] name = "futures-task" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d3d00f4eddb73e498a54394f228cd55853bdf059259e8e7bc6e69d408892e99" +checksum = "dabf1872aaab32c886832f2276d2f5399887e2bd613698a02359e4ea83f8de12" [[package]] name = "futures-timer" @@ -2390,11 +2368,10 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481" +checksum = "41d22213122356472061ac0f1ab2cee28d2bac8491410fd68c2af53d1cedb83e" dependencies = [ - "autocfg", "futures 0.1.31", "futures-channel", "futures-core", @@ -2405,8 +2382,6 @@ dependencies = [ "memchr", "pin-project-lite 0.2.7", "pin-utils", - "proc-macro-hack", - "proc-macro-nested", "slab", ] @@ -2512,11 +2487,30 @@ dependencies = [ "web-sys", ] +[[package]] +name = "h2" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fd819562fcebdac5afc5c113c3ec36f902840b70fd4fc458799c8ce4607ae55" +dependencies = [ + "bytes 1.1.0", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "handlebars" -version = "3.5.5" +version = "4.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4498fc115fa7d34de968184e473529abb40eeb6be8bc5f7faba3d08c316cb3e3" +checksum = "8ad84da8f63da982543fc85fcabaee2ad1fdd809d99d64a48887e2e942ddfe46" dependencies = [ "log", "pest", @@ -2576,9 +2570,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hex-literal" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e4590e13640f19f249fe3e4eca5113bc4289f2497710378190e7f4bd96f45b" +checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" [[package]] name = "hex_fmt" @@ -2658,9 +2652,9 @@ checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" [[package]] name = "httpdate" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6456b8a6c8f33fee7d958fcd1b60d55b11940a79e63ae87013e6d22e26034440" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" [[package]] name = "humantime" @@ -2679,14 +2673,15 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.14" +version = "0.14.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b91bb1f221b6ea1f1e4371216b70f40748774c2fb5971b450c07773fb92d26b" +checksum = "436ec0091e4f20e655156a30a0df3770fe2900aa301e548e08446ec794b6953c" dependencies = [ "bytes 1.1.0", "futures-channel", "futures-core", "futures-util", + "h2", "http", "http-body", "httparse", @@ -2767,7 +2762,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae8ab7f67bad3240049cb24fb9cb0b4c2c6af4c245840917fbbdededeee91179" dependencies = [ "async-io", - "futures 0.3.17", + "futures 0.3.18", "futures-lite", "if-addrs", "ipnet", @@ -2855,10 +2850,20 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "futures-timer 2.0.2", ] +[[package]] +name = "io-lifetimes" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278e90d6f8a6c76a8334b336e306efa3c5f2b604048cbfd486d6f49878e3af14" +dependencies = [ + "rustc_version 0.4.0", + "winapi 0.3.9", +] + [[package]] name = "iovec" version = "0.1.4" @@ -2870,9 +2875,9 @@ dependencies = [ [[package]] name = "ip_network" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b746553d2f4a1ca26fab939943ddfb217a091f34f53571620a8e3d30691303" +checksum = "aa2f047c0a98b2f299aa5d6d7088443570faae494e9ae1305e48be000c9e0eb1" [[package]] name = "ipconfig" @@ -2932,7 +2937,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2b99d4207e2a04fb4581746903c2bb7eb376f88de9c699d0f3e10feeac0cd3a" dependencies = [ "derive_more", - "futures 0.3.17", + "futures 0.3.18", "jsonrpc-core", "jsonrpc-pubsub", "log", @@ -2947,7 +2952,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "futures-executor", "futures-util", "log", @@ -2962,7 +2967,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b51da17abecbdab3e3d4f26b01c5ec075e88d3abe3ab3b05dc9aa69392764ec0" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "jsonrpc-client-transports", ] @@ -2984,7 +2989,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1dea6e07251d9ce6a552abfb5d7ad6bc290a4596c8dcc3d795fae2bbdc1f3ff" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "hyper", "jsonrpc-core", "jsonrpc-server-utils", @@ -3000,7 +3005,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "382bb0206323ca7cda3dcd7e245cea86d37d02457a02a975e3378fb149a48845" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "jsonrpc-core", "jsonrpc-server-utils", "log", @@ -3015,7 +3020,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240f87695e6c6f62fb37f05c02c04953cf68d6408b8c1c89de85c7a0125b1011" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "jsonrpc-core", "lazy_static", "log", @@ -3031,7 +3036,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa4fdea130485b572c39a460d50888beb00afb3e35de23ccd7fad8ff19f0e0d4" dependencies = [ "bytes 1.1.0", - "futures 0.3.17", + "futures 0.3.18", "globset", "jsonrpc-core", "lazy_static", @@ -3048,7 +3053,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f892c7d766369475ab7b0669f417906302d7c0fb521285c0a0c92e52e7c8e946" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "jsonrpc-core", "jsonrpc-server-utils", "log", @@ -3057,14 +3062,25 @@ dependencies = [ "slab", ] +[[package]] +name = "jsonrpsee" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6373a33d987866ccfe1af4bc11b089dce941764313f9fd8b7cf13fcb51b72dc5" +dependencies = [ + "jsonrpsee-proc-macros", + "jsonrpsee-types", + "jsonrpsee-utils", + "jsonrpsee-ws-client", +] + [[package]] name = "jsonrpsee-proc-macros" -version = "0.3.1" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8edb341d35279b59c79d7fe9e060a51aec29d45af99cc7c72ea7caa350fa71a4" +checksum = "d802063f7a3c867456955f9d2f15eb3ee0edb5ec9ec2b5526324756759221c0f" dependencies = [ - "Inflector", - "bae", + "log", "proc-macro-crate 1.1.0", "proc-macro2", "quote", @@ -3073,10 +3089,11 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.3.1" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cc738fd55b676ada3271ef7c383a14a0867a2a88b0fa941311bf5fc0a29d498" +checksum = "62f778cf245158fbd8f5d50823a2e9e4c708a40be164766bd35e9fb1d86715b2" dependencies = [ + "anyhow", "async-trait", "beef", "futures-channel", @@ -3085,32 +3102,43 @@ dependencies = [ "log", "serde", "serde_json", - "soketto 0.6.0", + "soketto", "thiserror", ] +[[package]] +name = "jsonrpsee-utils" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0109c4f972058f3b1925b73a17210aff7b63b65967264d0045d15ee88fe84f0c" +dependencies = [ + "arrayvec 0.7.2", + "beef", + "jsonrpsee-types", +] + [[package]] name = "jsonrpsee-ws-client" -version = "0.3.1" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9841352dbecf4c2ed5dc71698df9f1660262ae4e0b610e968602529bdbcf7b30" +checksum = "559aa56fc402af206c00fc913dc2be1d9d788dcde045d14df141a535245d35ef" dependencies = [ + "arrayvec 0.7.2", "async-trait", "fnv", - "futures 0.3.17", + "futures 0.3.18", + "http", "jsonrpsee-types", "log", "pin-project 1.0.8", - "rustls", "rustls-native-certs", "serde", "serde_json", - "soketto 0.6.0", + "soketto", "thiserror", "tokio", "tokio-rustls", "tokio-util", - "url 2.2.2", ] [[package]] @@ -3191,9 +3219,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.107" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219" +checksum = "8521a1b57e76b1ec69af7599e75e38e7b7fad6610f037db8c79b127201b5d119" [[package]] name = "libloading" @@ -3207,9 +3235,9 @@ dependencies = [ [[package]] name = "libloading" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0cf036d15402bea3c5d4de17b3fce76b3e4a56ebc1f577be0e7a72f7c607cf0" +checksum = "afe203d669ec979b7128619bae5a63b7b42e9203c1b29146079ee05e2f604b52" dependencies = [ "cfg-if 1.0.0", "winapi 0.3.9", @@ -3223,13 +3251,13 @@ checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" [[package]] name = "libp2p" -version = "0.39.1" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9004c06878ef8f3b4b4067e69a140d87ed20bf777287f82223e49713b36ee433" +checksum = "3bec54343492ba5940a6c555e512c6721139835d28c59bc22febece72dfd0d9d" dependencies = [ "atomic", "bytes 1.1.0", - "futures 0.3.17", + "futures 0.3.18", "lazy_static", "libp2p-core", "libp2p-deflate", @@ -3239,12 +3267,14 @@ dependencies = [ "libp2p-identify", "libp2p-kad", "libp2p-mdns", + "libp2p-metrics", "libp2p-mplex", "libp2p-noise", "libp2p-ping", "libp2p-plaintext", "libp2p-pnet", "libp2p-relay", + "libp2p-rendezvous", "libp2p-request-response", "libp2p-swarm", "libp2p-swarm-derive", @@ -3262,19 +3292,19 @@ dependencies = [ [[package]] name = "libp2p-core" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af9b4abdeaa420593a297c8592f63fad4234f4b88dc9343b8fd8e736c35faa59" +checksum = "bef22d9bba1e8bcb7ec300073e6802943fe8abb8190431842262b5f1c30abba1" dependencies = [ "asn1_der", "bs58", "ed25519-dalek", "either", "fnv", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "lazy_static", - "libsecp256k1 0.5.0", + "libsecp256k1", "log", "multiaddr", "multihash 0.14.0", @@ -3283,7 +3313,7 @@ dependencies = [ "pin-project 1.0.8", "prost", "prost-build", - "rand 0.7.3", + "rand 0.8.4", "ring", "rw-stream-sink", "sha2 0.9.8", @@ -3296,23 +3326,23 @@ dependencies = [ [[package]] name = "libp2p-deflate" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66097fccc0b7f8579f90a03ea76ba6196332ea049fd07fd969490a06819dcdc8" +checksum = "51a800adb195f33de63f4b17b63fe64cfc23bf2c6a0d3d0d5321328664e65197" dependencies = [ "flate2", - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", ] [[package]] name = "libp2p-dns" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ff08b3196b85a17f202d80589e93b1660a574af67275706657fdc762e42c32" +checksum = "bb8f89d15cb6e3c5bc22afff7513b11bab7856f2872d3cfba86f7f63a06bc498" dependencies = [ "async-std-resolver", - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "log", "smallvec", @@ -3321,13 +3351,13 @@ dependencies = [ [[package]] name = "libp2p-floodsub" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "404eca8720967179dac7a5b4275eb91f904a53859c69ca8d018560ad6beb214f" +checksum = "aab3d7210901ea51b7bae2b581aa34521797af8c4ec738c980bda4a06434067f" dependencies = [ "cuckoofilter", "fnv", - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "libp2p-swarm", "log", @@ -3339,16 +3369,16 @@ dependencies = [ [[package]] name = "libp2p-gossipsub" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1cc48709bcbc3a3321f08a73560b4bbb4166a7d56f6fdb615bc775f4f91058e" +checksum = "dfeead619eb5dac46e65acc78c535a60aaec803d1428cca6407c3a4fc74d698d" dependencies = [ "asynchronous-codec 0.6.0", - "base64 0.13.0", + "base64", "byteorder", "bytes 1.1.0", "fnv", - "futures 0.3.17", + "futures 0.3.18", "hex_fmt", "libp2p-core", "libp2p-swarm", @@ -3365,14 +3395,15 @@ dependencies = [ [[package]] name = "libp2p-identify" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7b61f6cf07664fb97016c318c4d4512b3dd4cc07238607f3f0163245f99008e" +checksum = "cca1275574183f288ff8b72d535d5ffa5ea9292ef7829af8b47dcb197c7b0dcd" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "libp2p-swarm", "log", + "lru 0.6.6", "prost", "prost-build", "smallvec", @@ -3381,16 +3412,16 @@ dependencies = [ [[package]] name = "libp2p-kad" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50ed78489c87924235665a0ab345b298ee34dff0f7ad62c0ba6608b2144fb75e" +checksum = "a2297dc0ca285f3a09d1368bde02449e539b46f94d32d53233f53f6625bcd3ba" dependencies = [ "arrayvec 0.5.2", "asynchronous-codec 0.6.0", "bytes 1.1.0", "either", "fnv", - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "libp2p-swarm", "log", @@ -3407,14 +3438,14 @@ dependencies = [ [[package]] name = "libp2p-mdns" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a29e6cbc2a24b8471b6567e580a0e8e7b70a6d0f0ea2be0844d1e842d7d4fa33" +checksum = "14c864b64bdc8a84ff3910a0df88e6535f256191a450870f1e7e10cbf8e64d45" dependencies = [ "async-io", "data-encoding", "dns-parser", - "futures 0.3.17", + "futures 0.3.18", "if-watch", "lazy_static", "libp2p-core", @@ -3426,15 +3457,29 @@ dependencies = [ "void", ] +[[package]] +name = "libp2p-metrics" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4af432fcdd2f8ba4579b846489f8f0812cfd738ced2c0af39df9b1c48bbb6ab2" +dependencies = [ + "libp2p-core", + "libp2p-identify", + "libp2p-kad", + "libp2p-ping", + "libp2p-swarm", + "open-metrics-client", +] + [[package]] name = "libp2p-mplex" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "313d9ea526c68df4425f580024e67a9d3ffd49f2c33de5154b1f5019816f7a99" +checksum = "7f2cd64ef597f40e14bfce0497f50ecb63dd6d201c61796daeb4227078834fbf" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.1.0", - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "log", "nohash-hasher", @@ -3446,13 +3491,13 @@ dependencies = [ [[package]] name = "libp2p-noise" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f1db7212f342b6ba7c981cc40e31f76e9e56cb48e65fa4c142ecaca5839523e" +checksum = "a8772c7a99088221bb7ca9c5c0574bf55046a7ab4c319f3619b275f28c8fb87a" dependencies = [ "bytes 1.1.0", "curve25519-dalek 3.2.0", - "futures 0.3.17", + "futures 0.3.18", "lazy_static", "libp2p-core", "log", @@ -3468,11 +3513,11 @@ dependencies = [ [[package]] name = "libp2p-ping" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2482cfd9eb0b7a0baaf3e7b329dc4f2785181a161b1a47b7192f8d758f54a439" +checksum = "80ef7b0ec5cf06530d9eb6cf59ae49d46a2c45663bde31c25a12f682664adbcf" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "libp2p-swarm", "log", @@ -3483,13 +3528,13 @@ dependencies = [ [[package]] name = "libp2p-plaintext" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13b4783e5423870b9a5c199f65a7a3bc66d86ab56b2b9beebf3c338d889cf8e4" +checksum = "5fba1a6ff33e4a274c89a3b1d78b9f34f32af13265cc5c46c16938262d4e945a" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.1.0", - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "log", "prost", @@ -3500,11 +3545,11 @@ dependencies = [ [[package]] name = "libp2p-pnet" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07cb4dd4b917e5b40ddefe49b96b07adcd8d342e0317011d175b7b2bb1dcc974" +checksum = "0f1a458bbda880107b5b36fcb9b5a1ef0c329685da0e203ed692a8ebe64cc92c" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "log", "pin-project 1.0.8", "rand 0.7.3", @@ -3514,13 +3559,13 @@ dependencies = [ [[package]] name = "libp2p-relay" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0133f6cfd81cdc16e716de2982e012c62e6b9d4f12e41967b3ee361051c622aa" +checksum = "2852b61c90fa8ce3c8fcc2aba76e6cefc20d648f9df29157d6b3a916278ef3e3" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.1.0", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "libp2p-core", "libp2p-swarm", @@ -3535,20 +3580,41 @@ dependencies = [ "wasm-timer", ] +[[package]] +name = "libp2p-rendezvous" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14a6d2b9e7677eff61dc3d2854876aaf3976d84a01ef6664b610c77a0c9407c5" +dependencies = [ + "asynchronous-codec 0.6.0", + "bimap", + "futures 0.3.18", + "libp2p-core", + "libp2p-swarm", + "log", + "prost", + "prost-build", + "rand 0.8.4", + "sha2 0.9.8", + "thiserror", + "unsigned-varint 0.7.1", + "void", + "wasm-timer", +] + [[package]] name = "libp2p-request-response" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06cdae44b6821466123af93cbcdec7c9e6ba9534a8af9cdc296446d39416d241" +checksum = "a877a4ced6d46bf84677e1974e8cf61fb434af73b2e96fb48d6cb6223a4634d8" dependencies = [ "async-trait", "bytes 1.1.0", - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "libp2p-swarm", "log", - "lru 0.6.6", - "minicbor", + "lru 0.7.0", "rand 0.7.3", "smallvec", "unsigned-varint 0.7.1", @@ -3557,12 +3623,12 @@ dependencies = [ [[package]] name = "libp2p-swarm" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7083861341e1555467863b4cd802bea1e8c4787c0f7b5110097d0f1f3248f9a9" +checksum = "3f5184a508f223bc100a12665517773fb8730e9f36fc09eefb670bf01b107ae9" dependencies = [ "either", - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "log", "rand 0.7.3", @@ -3573,9 +3639,9 @@ dependencies = [ [[package]] name = "libp2p-swarm-derive" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab8cb308d4fc854869f5abb54fdab0833d2cf670d407c745849dc47e6e08d79c" +checksum = "072c290f727d39bdc4e9d6d1c847978693d25a673bd757813681e33e5f6c00c2" dependencies = [ "quote", "syn", @@ -3583,12 +3649,12 @@ dependencies = [ [[package]] name = "libp2p-tcp" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79edd26b6b4bb5feee210dcda562dca186940dfecb0024b979c3f50824b3bf28" +checksum = "7399c5b6361ef525d41c11fcf51635724f832baf5819b30d3d873eabb4fbae4b" dependencies = [ "async-io", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "if-watch", "ipnet", @@ -3600,23 +3666,23 @@ dependencies = [ [[package]] name = "libp2p-uds" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280e793440dd4e9f273d714f4497325c72cddb0fe85a49f9a03c88f41dd20182" +checksum = "b8b7563e46218165dfd60f64b96f7ce84590d75f53ecbdc74a7dd01450dc5973" dependencies = [ "async-std", - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "log", ] [[package]] name = "libp2p-wasm-ext" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f553b7140fad3d7a76f50497b0ea591e26737d9607428a75509fc191e4d1b1f6" +checksum = "1008a302b73c5020251f9708c653f5ed08368e530e247cc9cd2f109ff30042cf" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "js-sys", "libp2p-core", "parity-send-wrapper", @@ -3626,29 +3692,29 @@ dependencies = [ [[package]] name = "libp2p-websocket" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddf99dcbf5063e9d59087f61b1e85c686ceab2f5abedb472d32288065c0e5e27" +checksum = "22e12df82d1ed64969371a9e65ea92b91064658604cc2576c2757f18ead9a1cf" dependencies = [ "either", - "futures 0.3.17", + "futures 0.3.18", "futures-rustls", "libp2p-core", "log", "quicksink", "rw-stream-sink", - "soketto 0.4.2", + "soketto", "url 2.2.2", "webpki-roots", ] [[package]] name = "libp2p-yamux" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "214cc0dd9c37cbed27f0bb1eba0c41bbafdb93a8be5e9d6ae1e6b4b42cd044bf" +checksum = "4e7362abb8867d7187e7e93df17f460d554c997fc5c8ac57dc1259057f6889af" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "libp2p-core", "parking_lot 0.11.2", "thiserror", @@ -3667,44 +3733,6 @@ dependencies = [ "libc", ] -[[package]] -name = "libsecp256k1" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd1137239ab33b41aa9637a88a28249e5e70c40a42ccc92db7f12cc356c1fcd7" -dependencies = [ - "arrayref", - "base64 0.12.3", - "digest 0.9.0", - "hmac-drbg", - "libsecp256k1-core 0.2.2", - "libsecp256k1-gen-ecmult 0.2.1", - "libsecp256k1-gen-genmult 0.2.1", - "rand 0.7.3", - "serde", - "sha2 0.9.8", - "typenum", -] - -[[package]] -name = "libsecp256k1" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73" -dependencies = [ - "arrayref", - "base64 0.12.3", - "digest 0.9.0", - "hmac-drbg", - "libsecp256k1-core 0.2.2", - "libsecp256k1-gen-ecmult 0.2.1", - "libsecp256k1-gen-genmult 0.2.1", - "rand 0.7.3", - "serde", - "sha2 0.9.8", - "typenum", -] - [[package]] name = "libsecp256k1" version = "0.7.0" @@ -3712,25 +3740,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0452aac8bab02242429380e9b2f94ea20cea2b37e2c1777a1358799bbe97f37" dependencies = [ "arrayref", - "base64 0.13.0", + "base64", "digest 0.9.0", - "libsecp256k1-core 0.3.0", - "libsecp256k1-gen-ecmult 0.3.0", - "libsecp256k1-gen-genmult 0.3.0", + "hmac-drbg", + "libsecp256k1-core", + "libsecp256k1-gen-ecmult", + "libsecp256k1-gen-genmult", "rand 0.8.4", "serde", "sha2 0.9.8", -] - -[[package]] -name = "libsecp256k1-core" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80" -dependencies = [ - "crunchy", - "digest 0.9.0", - "subtle", + "typenum", ] [[package]] @@ -3744,31 +3763,13 @@ dependencies = [ "subtle", ] -[[package]] -name = "libsecp256k1-gen-ecmult" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3" -dependencies = [ - "libsecp256k1-core 0.2.2", -] - [[package]] name = "libsecp256k1-gen-ecmult" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" dependencies = [ - "libsecp256k1-core 0.3.0", -] - -[[package]] -name = "libsecp256k1-gen-genmult" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d" -dependencies = [ - "libsecp256k1-core 0.2.2", + "libsecp256k1-core", ] [[package]] @@ -3777,7 +3778,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" dependencies = [ - "libsecp256k1-core 0.3.0", + "libsecp256k1-core", ] [[package]] @@ -3816,6 +3817,12 @@ dependencies = [ "statrs", ] +[[package]] +name = "linux-raw-sys" +version = "0.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "687387ff42ec7ea4f2149035a5675fedb675d26f98db90a1846ac63d3addb5f5" + [[package]] name = "lock_api" version = "0.3.4" @@ -3929,9 +3936,9 @@ checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" [[package]] name = "matrixmultiply" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a8a15b776d9dfaecd44b03c5828c2199cddff5247215858aac14624f8d6b741" +checksum = "add85d4dd35074e6fedc608f8c8f513a3548619a9024b751949ef0e8e45a4d84" dependencies = [ "rawpointer", ] @@ -3951,6 +3958,15 @@ dependencies = [ "libc", ] +[[package]] +name = "memmap2" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4647a11b578fead29cdbb34d4adef8dd3dc35b876c9c6d5240d83f205abfe96e" +dependencies = [ + "libc", +] + [[package]] name = "memoffset" version = "0.6.4" @@ -4000,11 +4016,11 @@ dependencies = [ [[package]] name = "metered-channel" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "derive_more", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "thiserror", "tracing", @@ -4016,30 +4032,16 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaa77fad8461bb1e0d01be11299e24c6e544007715ed442bfec29f165dc487ae" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "rand 0.7.3", "thrift", ] [[package]] -name = "minicbor" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51aa5bb0ca22415daca596a227b507f880ad1b2318a87fa9325312a5d285ca0d" -dependencies = [ - "minicbor-derive", -] - -[[package]] -name = "minicbor-derive" -version = "0.6.4" +name = "minimal-lexical" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54999f917cd092b13904737e26631aa2b2b88d625db68e4bab461dcd8006c788" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" @@ -4118,9 +4120,9 @@ dependencies = [ [[package]] name = "more-asserts" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0debeb9fcf88823ea64d64e4a815ab1643f33127d995978e099942ce38f25238" +checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" [[package]] name = "multiaddr" @@ -4188,7 +4190,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "424f6e86263cd5294cbd7f1e95746b95aca0e0d66bff31e5a40d6baa87b4aa99" dependencies = [ "proc-macro-crate 1.1.0", - "proc-macro-error 1.0.4", + "proc-macro-error", "proc-macro2", "quote", "syn", @@ -4208,7 +4210,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56a336acba8bc87c8876f6425407dbbe6c417bf478b22015f8fb0994ef3bc0ab" dependencies = [ "bytes 1.1.0", - "futures 0.3.17", + "futures 0.3.18", "log", "pin-project 1.0.8", "smallvec", @@ -4278,13 +4280,12 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" [[package]] name = "nom" -version = "6.1.2" +version = "7.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7413f999671bd4745a7b624bd370a569fb6bc574b23c83a3c5ed2e453f3d5e2" +checksum = "1b1d11e1ef389c76fe5b81bcaf2ea32cf88b62bc494e19f493d0b30e7a930109" dependencies = [ - "bitvec 0.19.5", - "funty", "memchr", + "minimal-lexical", "version_check", ] @@ -4370,23 +4371,14 @@ dependencies = [ "libc", ] -[[package]] -name = "object" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39f37e50073ccad23b6d09bcb5b263f4e76d3bb6038e4a3c08e52162ffa8abc2" -dependencies = [ - "crc32fast", - "indexmap", - "memchr", -] - [[package]] name = "object" version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67ac1d3f9a1d3616fd9a60c8d74296f22406a238b6a72f5cc1e6f314df4ffbf9" dependencies = [ + "crc32fast", + "indexmap", "memchr", ] @@ -4408,6 +4400,29 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +[[package]] +name = "open-metrics-client" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7337d80c23c2d8b1349563981bc4fb531220733743ba8115454a67b181173f0d" +dependencies = [ + "dtoa", + "itoa", + "open-metrics-client-derive-text-encode", + "owning_ref", +] + +[[package]] +name = "open-metrics-client-derive-text-encode" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15c83b586f00268c619c1cb3340ec1a6f59dd9ba1d9833a273a68e6d5cd8ffc" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "openssl-probe" version = "0.1.4" @@ -4435,7 +4450,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -4451,7 +4466,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -4467,7 +4482,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -4482,7 +4497,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-benchmarking", "frame-support", @@ -4506,7 +4521,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4521,7 +4536,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-benchmarking", "frame-support", @@ -4536,7 +4551,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "beefy-primitives", "frame-support", @@ -4552,14 +4567,14 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "beefy-merkle-tree", "beefy-primitives", "frame-support", "frame-system", "hex", - "libsecp256k1 0.7.0", + "libsecp256k1", "log", "pallet-beefy", "pallet-mmr", @@ -4577,7 +4592,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -4594,7 +4609,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" dependencies = [ "frame-benchmarking", "frame-support", @@ -4614,7 +4629,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-benchmarking", "frame-support", @@ -4631,7 +4646,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-benchmarking", "frame-support", @@ -4647,7 +4662,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4667,7 +4682,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -4684,7 +4699,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-benchmarking", "frame-support", @@ -4707,7 +4722,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4723,7 +4738,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -4742,7 +4757,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -4758,7 +4773,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-benchmarking", "frame-support", @@ -4775,7 +4790,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -4793,7 +4808,7 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -4809,7 +4824,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4826,7 +4841,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -4840,7 +4855,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -4854,7 +4869,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -4871,7 +4886,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -4885,7 +4900,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-benchmarking", "frame-support", @@ -4901,7 +4916,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -4922,7 +4937,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4943,7 +4958,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -4954,7 +4969,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -4983,7 +4998,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-benchmarking", "frame-support", @@ -5001,7 +5016,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -5019,7 +5034,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -5036,7 +5051,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5053,7 +5068,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5064,7 +5079,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -5080,7 +5095,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -5095,7 +5110,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-support", "frame-system", @@ -5108,8 +5123,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "frame-support", "frame-system", @@ -5127,7 +5142,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.12#935bac869a72baef17e46d2ae1abc8c0c650cef5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -5162,7 +5177,6 @@ dependencies = [ "polkadot-parachain", "polkadot-primitives", "polkadot-service", - "polkadot-test-service", "sc-basic-authorship", "sc-chain-spec", "sc-cli", @@ -5205,6 +5219,7 @@ dependencies = [ "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", + "cumulus-pallet-session-benchmarking", "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-primitives-core", @@ -5216,6 +5231,7 @@ dependencies = [ "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", + "hex-literal", "log", "pallet-aura", "pallet-authorship", @@ -5255,9 +5271,9 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cb5195cb862b13055cf7f7a76c55073dc73885c2a61511e322b8c1666be7332" +checksum = "78a95abf24f1097c6e3181abbbbfc3630b3b5e681470940f719b69acb4911c7f" dependencies = [ "blake2-rfc", "crc32fast", @@ -5266,7 +5282,7 @@ dependencies = [ "libc", "log", "lz4", - "memmap2", + "memmap2 0.2.3", "parking_lot 0.11.2", "rand 0.8.4", "snap", @@ -5279,7 +5295,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" dependencies = [ "arrayvec 0.7.2", - "bitvec 0.20.4", + "bitvec", "byte-slice-cast", "impl-trait-for-tuples", "parity-scale-codec-derive", @@ -5310,7 +5326,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9981e32fb75e004cc148f5fb70342f393830e0a4aa62e3cc93b50976218d42b6" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "libc", "log", "rand 0.7.3", @@ -5522,9 +5538,9 @@ dependencies = [ [[package]] name = "petgraph" -version = "0.5.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" +checksum = "4a13a2fa9d0b63e5f22328828741e523766fff0ee9e779316902290dff3f824f" dependencies = [ "fixedbitset", "indexmap", @@ -5596,16 +5612,16 @@ checksum = "12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1f" [[package]] name = "platforms" -version = "1.1.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989d43012e2ca1c4a02507c67282691a0a3207f9dc67cec596b43fe925b3d325" +checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -5616,10 +5632,10 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -5629,11 +5645,11 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "derive_more", - "futures 0.3.17", + "futures 0.3.18", "lru 0.7.0", "parity-scale-codec", "polkadot-erasure-coding", @@ -5651,10 +5667,10 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "lru 0.7.0", "parity-scale-codec", "polkadot-erasure-coding", @@ -5671,11 +5687,11 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "frame-benchmarking-cli", - "futures 0.3.17", + "futures 0.3.18", "log", "polkadot-node-core-pvf", "polkadot-service", @@ -5691,8 +5707,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -5721,12 +5737,12 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "always-assert", "derive_more", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -5742,8 +5758,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -5755,11 +5771,11 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "derive_more", - "futures 0.3.17", + "futures 0.3.18", "lru 0.7.0", "parity-scale-codec", "polkadot-erasure-coding", @@ -5777,8 +5793,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -5791,10 +5807,10 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "polkadot-node-network-protocol", "polkadot-node-subsystem", @@ -5811,11 +5827,11 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "async-trait", - "futures 0.3.17", + "futures 0.3.18", "parity-scale-codec", "parking_lot 0.11.2", "polkadot-node-network-protocol", @@ -5830,10 +5846,10 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-primitives", @@ -5848,12 +5864,12 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ - "bitvec 0.20.4", + "bitvec", "derive_more", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "kvdb", "lru 0.7.0", @@ -5876,11 +5892,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ - "bitvec 0.20.4", - "futures 0.3.17", + "bitvec", + "futures 0.3.18", "futures-timer 3.0.2", "kvdb", "parity-scale-codec", @@ -5896,11 +5912,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ - "bitvec 0.20.4", - "futures 0.3.17", + "bitvec", + "futures 0.3.18", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -5914,10 +5930,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -5929,11 +5945,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "async-trait", - "futures 0.3.17", + "futures 0.3.18", "parity-scale-codec", "polkadot-node-core-pvf", "polkadot-node-primitives", @@ -5947,10 +5963,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -5962,10 +5978,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "kvdb", "parity-scale-codec", @@ -5979,12 +5995,12 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ - "bitvec 0.20.4", + "bitvec", "derive_more", - "futures 0.3.17", + "futures 0.3.18", "kvdb", "parity-scale-codec", "polkadot-node-primitives", @@ -5998,10 +6014,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-participation" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-primitives", @@ -6011,11 +6027,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "async-trait", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "polkadot-node-subsystem", "polkadot-primitives", @@ -6028,11 +6044,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ - "bitvec 0.20.4", - "futures 0.3.17", + "bitvec", + "futures 0.3.18", "futures-timer 3.0.2", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -6043,14 +6059,14 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "always-assert", "assert_matches", "async-process", "async-std", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "libc", "parity-scale-codec", @@ -6074,10 +6090,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "memory-lru", "parity-util-mem", "polkadot-node-subsystem", @@ -6092,8 +6108,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "async-std", "lazy_static", @@ -6110,10 +6126,10 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "metered-channel", "substrate-prometheus-endpoint", @@ -6121,29 +6137,29 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "async-trait", "derive_more", - "futures 0.3.17", + "futures 0.3.18", "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", "polkadot-primitives", "sc-authority-discovery", "sc-network", - "strum 0.22.0", + "strum", "thiserror", ] [[package]] name = "polkadot-node-primitives" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "bounded-vec", - "futures 0.3.17", + "futures 0.3.18", "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", @@ -6161,8 +6177,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -6171,11 +6187,11 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "derive_more", - "futures 0.3.17", + "futures 0.3.18", "polkadot-node-jaeger", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -6190,12 +6206,12 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "async-trait", "derive_more", - "futures 0.3.17", + "futures 0.3.18", "itertools", "lru 0.7.0", "metered-channel", @@ -6217,10 +6233,10 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "lru 0.7.0", "parity-util-mem", @@ -6238,11 +6254,11 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "async-trait", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "metered-channel", "pin-project 1.0.8", @@ -6255,8 +6271,8 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen-proc-macro" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -6266,8 +6282,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "derive_more", "frame-support", @@ -6283,10 +6299,10 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ - "bitvec 0.20.4", + "bitvec", "frame-system", "hex-literal", "parity-scale-codec", @@ -6313,8 +6329,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -6344,11 +6360,11 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "beefy-primitives", - "bitvec 0.20.4", + "bitvec", "frame-election-provider-support", "frame-executive", "frame-support", @@ -6359,6 +6375,7 @@ dependencies = [ "pallet-authority-discovery", "pallet-authorship", "pallet-babe", + "pallet-bags-list", "pallet-balances", "pallet-bounties", "pallet-collective", @@ -6386,6 +6403,7 @@ dependencies = [ "pallet-treasury", "pallet-utility", "pallet-vesting", + "pallet-xcm", "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-common", @@ -6412,20 +6430,23 @@ dependencies = [ "sp-version", "static_assertions", "substrate-wasm-builder", + "xcm", + "xcm-builder", + "xcm-executor", ] [[package]] name = "polkadot-runtime-common" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "beefy-primitives", - "bitvec 0.20.4", + "bitvec", "frame-election-provider-support", "frame-support", "frame-system", "impl-trait-for-tuples", - "libsecp256k1 0.7.0", + "libsecp256k1", "log", "pallet-authorship", "pallet-bags-list", @@ -6461,17 +6482,18 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "bitflags", - "bitvec 0.20.4", + "bitvec", "derive_more", "frame-support", "frame-system", "log", "pallet-authority-discovery", "pallet-authorship", + "pallet-babe", "pallet-balances", "pallet-session", "pallet-staking", @@ -6499,14 +6521,14 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "async-trait", "beefy-gadget", "beefy-primitives", "frame-system-rpc-runtime-api", - "futures 0.3.17", + "futures 0.3.18", "hex-literal", "kvdb", "kvdb-rocksdb", @@ -6563,6 +6585,7 @@ dependencies = [ "sc-finality-grandpa", "sc-keystore", "sc-network", + "sc-offchain", "sc-service", "sc-sync-state-rpc", "sc-telemetry", @@ -6590,153 +6613,39 @@ dependencies = [ "substrate-prometheus-endpoint", "thiserror", "tracing", -] - -[[package]] -name = "polkadot-statement-distribution" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" -dependencies = [ - "arrayvec 0.5.2", - "derive_more", - "futures 0.3.17", - "indexmap", - "parity-scale-codec", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sp-keystore", - "sp-staking", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-statement-table" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" -dependencies = [ - "parity-scale-codec", - "polkadot-primitives", - "sp-core", -] - -[[package]] -name = "polkadot-test-runtime" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" -dependencies = [ - "beefy-primitives", - "bitvec 0.20.4", - "frame-election-provider-support", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-rpc-runtime-api", - "log", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-balances", - "pallet-grandpa", - "pallet-indices", - "pallet-mmr-primitives", - "pallet-nicks", - "pallet-offences", - "pallet-session", - "pallet-staking", - "pallet-staking-reward-curve", - "pallet-sudo", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-vesting", - "pallet-xcm", - "parity-scale-codec", - "polkadot-parachain", - "polkadot-primitives", - "polkadot-runtime-common", - "polkadot-runtime-parachains", - "rustc-hex", - "scale-info", - "serde", - "serde_derive", - "smallvec", - "sp-api", - "sp-authority-discovery", - "sp-block-builder", - "sp-consensus-babe", - "sp-core", - "sp-inherents", - "sp-io", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "sp-transaction-pool", - "sp-version", - "substrate-wasm-builder", - "xcm", - "xcm-builder", - "xcm-executor", -] - -[[package]] -name = "polkadot-test-service" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" -dependencies = [ - "frame-benchmarking", - "frame-system", - "futures 0.1.31", - "futures 0.3.17", - "hex", - "pallet-balances", - "pallet-staking", - "pallet-transaction-payment", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-parachain", - "polkadot-primitives", - "polkadot-rpc", - "polkadot-runtime-common", - "polkadot-runtime-parachains", - "polkadot-service", - "polkadot-test-runtime", - "rand 0.8.4", - "sc-authority-discovery", - "sc-chain-spec", - "sc-cli", - "sc-client-api", - "sc-consensus", - "sc-consensus-babe", - "sc-executor", - "sc-finality-grandpa", - "sc-network", - "sc-service", - "sc-tracing", - "sc-transaction-pool", - "sp-arithmetic", - "sp-authority-discovery", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-core", - "sp-finality-grandpa", - "sp-inherents", - "sp-keyring", - "sp-runtime", - "sp-state-machine", - "substrate-test-client", - "tempfile", - "tokio", +] + +[[package]] +name = "polkadot-statement-distribution" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "arrayvec 0.5.2", + "derive_more", + "futures 0.3.18", + "indexmap", + "parity-scale-codec", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-keystore", + "sp-staking", + "thiserror", "tracing", ] +[[package]] +name = "polkadot-statement-table" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +dependencies = [ + "parity-scale-codec", + "polkadot-primitives", + "sp-core", +] + [[package]] name = "polling" version = "2.2.0" @@ -6812,42 +6721,16 @@ dependencies = [ "toml", ] -[[package]] -name = "proc-macro-error" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18f33027081eba0a6d8aba6d1b1c3a3be58cbb12106341c2d5759fcd9b5277e7" -dependencies = [ - "proc-macro-error-attr 0.4.12", - "proc-macro2", - "quote", - "syn", - "version_check", -] - [[package]] name = "proc-macro-error" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ - "proc-macro-error-attr 1.0.4", - "proc-macro2", - "quote", - "syn", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a5b4b77fdb63c1eca72173d68d24501c54ab1269409f6b672c85deb18af69de" -dependencies = [ + "proc-macro-error-attr", "proc-macro2", "quote", "syn", - "syn-mid", "version_check", ] @@ -6862,18 +6745,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "proc-macro-hack" -version = "0.5.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" - -[[package]] -name = "proc-macro-nested" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" - [[package]] name = "proc-macro2" version = "1.0.32" @@ -6885,9 +6756,9 @@ dependencies = [ [[package]] name = "prometheus" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5986aa8d62380092d2f50f8b1cdba9cb9b6731ffd4b25b51fd126b6c3e05b99c" +checksum = "b7f64969ffd5dd8f39bd57a68ac53c163a095ed9d0fb707146da1b27025a3504" dependencies = [ "cfg-if 1.0.0", "fnv", @@ -6899,9 +6770,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020" +checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" dependencies = [ "bytes 1.1.0", "prost-derive", @@ -6909,27 +6780,29 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "355f634b43cdd80724ee7848f95770e7e70eefa6dcf14fea676216573b8fd603" +checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" dependencies = [ "bytes 1.1.0", "heck", "itertools", + "lazy_static", "log", "multimap", "petgraph", "prost", "prost-types", + "regex", "tempfile", "which", ] [[package]] name = "prost-derive" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efba" +checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" dependencies = [ "anyhow", "itertools", @@ -6940,9 +6813,9 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "603bbd6394701d13f3f25aada59c7de9d35a6a5887cfc156181234a44002771b" +checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" dependencies = [ "bytes 1.1.0", "prost", @@ -7000,12 +6873,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "radium" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8" - [[package]] name = "radium" version = "0.6.2" @@ -7204,9 +7071,9 @@ dependencies = [ [[package]] name = "regalloc" -version = "0.0.31" +version = "0.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "571f7f397d61c4755285cd37853fe8e03271c243424a907415909379659381c5" +checksum = "a6304468554ed921da3d32c355ea107b8d13d7b8996c3adfb7aab48d3bc321f4" dependencies = [ "log", "rustc-hash", @@ -7254,11 +7121,10 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "env_logger 0.9.0", - "jsonrpsee-proc-macros", - "jsonrpsee-ws-client", + "jsonrpsee", "log", "parity-scale-codec", "serde", @@ -7339,6 +7205,23 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "rsix" +version = "0.23.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f64c5788d5aab8b75441499d99576a24eb09f76fb267b36fec7e3d970c66431" +dependencies = [ + "bitflags", + "cc", + "errno", + "io-lifetimes", + "itoa", + "libc", + "linux-raw-sys", + "once_cell", + "rustc_version 0.4.0", +] + [[package]] name = "rustc-demangle" version = "0.1.21" @@ -7366,13 +7249,22 @@ dependencies = [ "semver 0.11.0", ] +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.4", +] + [[package]] name = "rustls" version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" dependencies = [ - "base64 0.13.0", + "base64", "log", "ring", "sct", @@ -7397,22 +7289,22 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "pin-project 0.4.28", "static_assertions", ] [[package]] name = "ryu" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" +checksum = "3c9613b5a66ab9ba26415184cfc41156594925a9cf3a2057e57f31ff145f6568" [[package]] name = "salsa20" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecbd2eb639fd7cab5804a0837fe373cc2172d15437e804c054a9fb885cb923b0" +checksum = "0c0fbb5f676da676c260ba276a8f43a8dc67cf02d1438423aeb1c677a7212686" dependencies = [ "cipher", ] @@ -7428,8 +7320,8 @@ dependencies = [ [[package]] name = "sc-allocator" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "log", "sp-core", @@ -7440,11 +7332,11 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "async-trait", "derive_more", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "ip_network", "libp2p", @@ -7467,9 +7359,9 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -7490,7 +7382,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7506,9 +7398,10 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "impl-trait-for-tuples", + "memmap2 0.5.0", "parity-scale-codec", "sc-chain-spec-derive", "sc-network", @@ -7522,7 +7415,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -7533,11 +7426,11 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "chrono", "fdlimit", - "futures 0.3.17", + "futures 0.3.18", "hex", "libp2p", "log", @@ -7571,10 +7464,10 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "fnv", - "futures 0.3.17", + "futures 0.3.18", "hash-db", "log", "parity-scale-codec", @@ -7599,7 +7492,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "hash-db", "kvdb", @@ -7624,10 +7517,10 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "async-trait", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "libp2p", "log", @@ -7648,11 +7541,11 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "async-trait", "derive_more", - "futures 0.3.17", + "futures 0.3.18", "log", "parity-scale-codec", "sc-block-builder", @@ -7677,12 +7570,12 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "async-trait", "derive_more", "fork-tree", - "futures 0.3.17", + "futures 0.3.18", "log", "merlin", "num-bigint", @@ -7720,10 +7613,10 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "derive_more", - "futures 0.3.17", + "futures 0.3.18", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -7744,7 +7637,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7757,10 +7650,10 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "async-trait", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -7783,7 +7676,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "sc-client-api", "sp-authorship", @@ -7794,10 +7687,10 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "lazy_static", - "libsecp256k1 0.6.0", + "libsecp256k1", "log", "parity-scale-codec", "parking_lot 0.11.2", @@ -7806,6 +7699,7 @@ dependencies = [ "sc-executor-wasmtime", "sp-api", "sp-core", + "sp-core-hashing-proc-macro", "sp-externalities", "sp-io", "sp-panic-handler", @@ -7820,7 +7714,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "derive_more", "environmental", @@ -7838,7 +7732,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "log", "parity-scale-codec", @@ -7854,7 +7748,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "cfg-if 1.0.0", "libc", @@ -7872,14 +7766,14 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "async-trait", "derive_more", "dyn-clone", "finality-grandpa", "fork-tree", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -7909,11 +7803,11 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "derive_more", "finality-grandpa", - "futures 0.3.17", + "futures 0.3.18", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -7933,10 +7827,10 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ - "ansi_term 0.12.1", - "futures 0.3.17", + "ansi_term", + "futures 0.3.18", "futures-timer 3.0.2", "log", "parity-util-mem", @@ -7950,7 +7844,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "async-trait", "derive_more", @@ -7962,28 +7856,10 @@ dependencies = [ "sp-keystore", ] -[[package]] -name = "sc-light" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" -dependencies = [ - "hash-db", - "parity-scale-codec", - "parking_lot 0.11.2", - "sc-client-api", - "sc-executor", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-externalities", - "sp-runtime", - "sp-state-machine", -] - [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "async-std", "async-trait", @@ -7995,7 +7871,7 @@ dependencies = [ "either", "fnv", "fork-tree", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "hex", "ip_network", @@ -8003,7 +7879,7 @@ dependencies = [ "linked-hash-map", "linked_hash_set", "log", - "lru 0.6.6", + "lru 0.7.0", "parity-scale-codec", "parking_lot 0.11.2", "pin-project 1.0.8", @@ -8034,13 +7910,13 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "libp2p", "log", - "lru 0.6.6", + "lru 0.7.0", "sc-network", "sp-runtime", "substrate-prometheus-endpoint", @@ -8050,17 +7926,17 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "bytes 1.1.0", "fnv", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "hex", "hyper", "hyper-rustls", - "log", "num_cpus", + "once_cell", "parity-scale-codec", "parking_lot 0.11.2", "rand 0.7.3", @@ -8072,14 +7948,15 @@ dependencies = [ "sp-offchain", "sp-runtime", "threadpool", + "tracing", ] [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "libp2p", "log", "sc-utils", @@ -8089,8 +7966,8 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8099,9 +7976,9 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "hash-db", "jsonrpc-core", "jsonrpc-pubsub", @@ -8130,9 +8007,9 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -8155,9 +8032,9 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "jsonrpc-core", "jsonrpc-http-server", "jsonrpc-ipc-server", @@ -8172,12 +8049,12 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "async-trait", "directories", "exit-future", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "hash-db", "jsonrpc-core", @@ -8196,7 +8073,6 @@ dependencies = [ "sc-executor", "sc-informant", "sc-keystore", - "sc-light", "sc-network", "sc-offchain", "sc-rpc", @@ -8237,7 +8113,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "log", "parity-scale-codec", @@ -8251,7 +8127,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -8273,10 +8149,10 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "chrono", - "futures 0.3.17", + "futures 0.3.18", "libp2p", "log", "parking_lot 0.11.2", @@ -8291,12 +8167,13 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ - "ansi_term 0.12.1", + "ansi_term", "atty", "chrono", "lazy_static", + "libc", "log", "once_cell", "parking_lot 0.11.2", @@ -8321,7 +8198,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -8332,9 +8209,9 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "intervalier", "linked-hash-map", "log", @@ -8359,10 +8236,10 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "derive_more", - "futures 0.3.17", + "futures 0.3.18", "log", "serde", "sp-blockchain", @@ -8373,9 +8250,9 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "lazy_static", "prometheus", @@ -8387,7 +8264,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c55b744399c25532d63a0d2789b109df8d46fc93752d46b0782991a931a782f" dependencies = [ - "bitvec 0.20.4", + "bitvec", "cfg-if 1.0.0", "derive_more", "parity-scale-codec", @@ -8505,6 +8382,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" dependencies = [ "semver-parser 0.10.2", +] + +[[package]] +name = "semver" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012" +dependencies = [ "serde", ] @@ -8545,9 +8430,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.69" +version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e466864e431129c7e0d3476b92f20458e5879919a0596c6472738d9fa2d342f8" +checksum = "d0ffa0837f2dfa6fb90868c2b5468cad482e175f7dad97e7421951e663f2b527" dependencies = [ "itoa", "ryu", @@ -8676,8 +8561,8 @@ checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" [[package]] name = "slot-range-helper" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "enumn", "parity-scale-codec", @@ -8719,7 +8604,7 @@ dependencies = [ "rand 0.8.4", "rand_core 0.6.3", "ring", - "rustc_version", + "rustc_version 0.3.3", "sha2 0.9.8", "subtle", "x25519-dalek", @@ -8748,29 +8633,14 @@ dependencies = [ [[package]] name = "soketto" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5c71ed3d54db0a699f4948e1bb3e45b450fa31fe602621dee6680361d569c88" -dependencies = [ - "base64 0.12.3", - "bytes 0.5.6", - "flate2", - "futures 0.3.17", - "httparse", - "log", - "rand 0.7.3", - "sha-1 0.9.8", -] - -[[package]] -name = "soketto" -version = "0.6.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a74e48087dbeed4833785c2f3352b59140095dc192dce966a3bfc155020a439f" +checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" dependencies = [ - "base64 0.13.0", + "base64", "bytes 1.1.0", - "futures 0.3.17", + "flate2", + "futures 0.3.18", "httparse", "log", "rand 0.8.4", @@ -8780,7 +8650,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "hash-db", "log", @@ -8797,7 +8667,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "blake2-rfc", "proc-macro-crate 1.1.0", @@ -8809,7 +8679,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "parity-scale-codec", "scale-info", @@ -8822,7 +8692,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "integer-sqrt", "num-traits", @@ -8837,7 +8707,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "parity-scale-codec", "scale-info", @@ -8850,7 +8720,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "async-trait", "parity-scale-codec", @@ -8862,7 +8732,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "parity-scale-codec", "sp-api", @@ -8874,11 +8744,11 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "log", - "lru 0.6.6", + "lru 0.7.0", "parity-scale-codec", "parking_lot 0.11.2", "sp-api", @@ -8892,10 +8762,10 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "async-trait", - "futures 0.3.17", + "futures 0.3.18", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -8911,7 +8781,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "async-trait", "parity-scale-codec", @@ -8929,7 +8799,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "async-trait", "merlin", @@ -8952,10 +8822,11 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "parity-scale-codec", "scale-info", + "serde", "sp-arithmetic", "sp-runtime", ] @@ -8963,7 +8834,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -8975,20 +8846,21 @@ dependencies = [ [[package]] name = "sp-core" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "base58", + "bitflags", "blake2-rfc", "byteorder", "dyn-clonable", "ed25519-dalek", - "futures 0.3.17", + "futures 0.3.18", "hash-db", "hash256-std-hasher", "hex", "impl-serde", "lazy_static", - "libsecp256k1 0.6.0", + "libsecp256k1", "log", "merlin", "num-traits", @@ -9003,6 +8875,7 @@ dependencies = [ "secrecy", "serde", "sha2 0.9.8", + "sp-core-hashing", "sp-debug-derive", "sp-externalities", "sp-runtime-interface", @@ -9018,10 +8891,34 @@ dependencies = [ "zeroize", ] +[[package]] +name = "sp-core-hashing" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +dependencies = [ + "blake2-rfc", + "byteorder", + "sha2 0.9.8", + "sp-std", + "tiny-keccak", + "twox-hash", +] + +[[package]] +name = "sp-core-hashing-proc-macro" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +dependencies = [ + "proc-macro2", + "quote", + "sp-core-hashing", + "syn", +] + [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "kvdb", "parking_lot 0.11.2", @@ -9029,8 +8926,8 @@ dependencies = [ [[package]] name = "sp-debug-derive" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "proc-macro2", "quote", @@ -9040,7 +8937,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "environmental", "parity-scale-codec", @@ -9051,7 +8948,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "finality-grandpa", "log", @@ -9069,7 +8966,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9083,11 +8980,11 @@ dependencies = [ [[package]] name = "sp-io" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "hash-db", - "libsecp256k1 0.6.0", + "libsecp256k1", "log", "parity-scale-codec", "parking_lot 0.11.2", @@ -9107,22 +9004,22 @@ dependencies = [ [[package]] name = "sp-keyring" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "lazy_static", "sp-core", "sp-runtime", - "strum 0.20.0", + "strum", ] [[package]] name = "sp-keystore" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "async-trait", "derive_more", - "futures 0.3.17", + "futures 0.3.18", "merlin", "parity-scale-codec", "parking_lot 0.11.2", @@ -9134,8 +9031,8 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "zstd", ] @@ -9143,7 +9040,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "parity-scale-codec", "scale-info", @@ -9158,7 +9055,7 @@ dependencies = [ [[package]] name = "sp-npos-elections-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -9169,7 +9066,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "sp-api", "sp-core", @@ -9178,16 +9075,18 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "backtrace", + "lazy_static", + "regex", ] [[package]] name = "sp-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "rustc-hash", "serde", @@ -9197,7 +9096,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "either", "hash256-std-hasher", @@ -9219,7 +9118,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9236,7 +9135,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "Inflector", "proc-macro-crate 1.1.0", @@ -9247,8 +9146,8 @@ dependencies = [ [[package]] name = "sp-serializer" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "serde", "serde_json", @@ -9257,7 +9156,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "parity-scale-codec", "scale-info", @@ -9271,7 +9170,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "parity-scale-codec", "scale-info", @@ -9282,7 +9181,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "hash-db", "log", @@ -9305,12 +9204,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" [[package]] name = "sp-storage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9323,7 +9222,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "log", "sp-core", @@ -9336,7 +9235,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "async-trait", "futures-timer 3.0.2", @@ -9352,7 +9251,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "parity-scale-codec", "sp-std", @@ -9364,7 +9263,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "sp-api", "sp-runtime", @@ -9373,7 +9272,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "async-trait", "log", @@ -9389,7 +9288,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "hash-db", "memory-db", @@ -9404,7 +9303,7 @@ dependencies = [ [[package]] name = "sp-version" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9420,7 +9319,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -9431,7 +9330,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9447,9 +9346,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "ss58-registry" -version = "1.5.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66cd4c4bb7ee41dc5b0c13d600574ae825d3a02e8f31326b17ac71558f2c836" +checksum = "78abb01d308934b82e34e9cf1f45846d31539246501745b129539176f4f3368d" dependencies = [ "Inflector", "proc-macro2", @@ -9533,40 +9432,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" dependencies = [ "heck", - "proc-macro-error 1.0.4", + "proc-macro-error", "proc-macro2", "quote", "syn", ] -[[package]] -name = "strum" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7318c509b5ba57f18533982607f24070a55d353e90d4cae30c467cdb2ad5ac5c" -dependencies = [ - "strum_macros 0.20.1", -] - [[package]] name = "strum" version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" dependencies = [ - "strum_macros 0.22.0", -] - -[[package]] -name = "strum_macros" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", + "strum_macros", ] [[package]] @@ -9597,7 +9475,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "platforms", ] @@ -9605,10 +9483,10 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "frame-system-rpc-runtime-api", - "futures 0.3.17", + "futures 0.3.18", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -9626,8 +9504,8 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" -version = "0.9.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ "async-std", "derive_more", @@ -9638,39 +9516,12 @@ dependencies = [ "tokio", ] -[[package]] -name = "substrate-test-client" -version = "2.0.1" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" -dependencies = [ - "async-trait", - "futures 0.3.17", - "hex", - "parity-scale-codec", - "sc-client-api", - "sc-client-db", - "sc-consensus", - "sc-executor", - "sc-light", - "sc-offchain", - "sc-service", - "serde", - "serde_json", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-keyring", - "sp-keystore", - "sp-runtime", - "sp-state-machine", -] - [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ - "ansi_term 0.12.1", + "ansi_term", "build-helper", "cargo_metadata", "sp-maybe-compressed-blob", @@ -9688,26 +9539,15 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.81" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2afee18b8beb5a596ecb4a2dce128c719b4ba399d34126b9e4396e3f9860966" +checksum = "8daf5dd0bb60cbd4137b1b587d2fc0ae729bc07cf01cd70b36a1ed5ade3b9d59" dependencies = [ "proc-macro2", "quote", "unicode-xid", ] -[[package]] -name = "syn-mid" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baa8e7560a164edb1621a55d18a0c59abf49d360f47aa7b821061dd7eea7fac9" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "synstructure" version = "0.12.6" @@ -9871,9 +9711,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.13.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "588b2d10a336da58d877567cd8fb8a14b463e2104910f8132cd054b4b96e29ee" +checksum = "70e992e41e0d2fb9f755b37446f20900f64446ef54874f40a60c78f021ac6144" dependencies = [ "autocfg", "bytes 1.1.0", @@ -9890,9 +9730,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "114383b041aa6212c579467afa0075fbbdd0718de036100bc0ba7961d8cb9095" +checksum = "c9efc1aba077437943f7515666aa2b882dfabfbfdf89c819ea75a8d6e9eaba5e" dependencies = [ "proc-macro2", "quote", @@ -10020,10 +9860,11 @@ version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" dependencies = [ - "ansi_term 0.12.1", + "ansi_term", "chrono", "lazy_static", "matchers", + "parking_lot 0.11.2", "regex", "serde", "serde_json", @@ -10110,9 +9951,9 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" dependencies = [ - "jsonrpsee-ws-client", + "jsonrpsee", "log", "parity-scale-codec", "remote-externalities", @@ -10131,6 +9972,12 @@ dependencies = [ "structopt", ] +[[package]] +name = "tt-call" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e66dcbec4290c69dd03c57e76c2469ea5c7ce109c6dd4351c13055cf71ea055" + [[package]] name = "twox-hash" version = "1.6.1" @@ -10433,7 +10280,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "js-sys", "parking_lot 0.11.2", "pin-utils", @@ -10468,15 +10315,15 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.80.2" +version = "0.81.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "449167e2832691a1bff24cde28d2804e90e09586a448c8e76984792c44334a6b" +checksum = "98930446519f63d00a836efdc22f67766ceae8dbcc1571379f2bcabc6b2b9abc" [[package]] name = "wasmtime" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899b1e5261e3d3420860dacfb952871ace9d7ba9f953b314f67aaf9f8e2a4d89" +checksum = "311d06b0c49346d1fbf48a17052e844036b95a7753c1afb34e8c0af3f6b5bb13" dependencies = [ "anyhow", "backtrace", @@ -10487,7 +10334,7 @@ dependencies = [ "lazy_static", "libc", "log", - "object 0.26.2", + "object", "paste", "psm", "rayon", @@ -10506,18 +10353,17 @@ dependencies = [ [[package]] name = "wasmtime-cache" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2493b81d7a9935f7af15e06beec806f256bc974a90a843685f3d61f2fc97058" +checksum = "36147930a4995137dc096e5b17a573b446799be2bbaea433e821ce6a80abe2c5" dependencies = [ "anyhow", - "base64 0.13.0", + "base64", "bincode", "directories-next", - "errno", "file-per-thread-logger", - "libc", "log", + "rsix", "serde", "sha2 0.9.8", "toml", @@ -10527,9 +10373,9 @@ dependencies = [ [[package]] name = "wasmtime-cranelift" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99706bacdf5143f7f967d417f0437cce83a724cf4518cb1a3ff40e519d793021" +checksum = "ab3083a47e1ede38aac06a1d9831640d673f9aeda0b82a64e4ce002f3432e2e7" dependencies = [ "anyhow", "cranelift-codegen", @@ -10538,8 +10384,9 @@ dependencies = [ "cranelift-native", "cranelift-wasm", "gimli 0.25.0", + "log", "more-asserts", - "object 0.26.2", + "object", "target-lexicon", "thiserror", "wasmparser", @@ -10548,9 +10395,9 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac42cb562a2f98163857605f02581d719a410c5abe93606128c59a10e84de85b" +checksum = "1c2d194b655321053bc4111a1aa4ead552655c8a17d17264bc97766e70073510" dependencies = [ "anyhow", "cfg-if 1.0.0", @@ -10559,7 +10406,7 @@ dependencies = [ "indexmap", "log", "more-asserts", - "object 0.26.2", + "object", "serde", "target-lexicon", "thiserror", @@ -10569,20 +10416,20 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24f46dd757225f29a419be415ea6fb8558df9b0194f07e3a6a9c99d0e14dd534" +checksum = "864ac8dfe4ce310ac59f16fdbd560c257389cb009ee5d030ac6e30523b023d11" dependencies = [ "addr2line 0.16.0", "anyhow", "bincode", "cfg-if 1.0.0", "gimli 0.25.0", - "libc", "log", "more-asserts", - "object 0.26.2", + "object", "region", + "rsix", "serde", "target-lexicon", "thiserror", @@ -10594,9 +10441,9 @@ dependencies = [ [[package]] name = "wasmtime-runtime" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0122215a44923f395487048cb0a1d60b5b32c73aab15cf9364b798dbaff0996f" +checksum = "ab97da813a26b98c9abfd3b0c2d99e42f6b78b749c0646344e2e262d212d8c8b" dependencies = [ "anyhow", "backtrace", @@ -10611,6 +10458,7 @@ dependencies = [ "more-asserts", "rand 0.8.4", "region", + "rsix", "thiserror", "wasmtime-environ", "winapi 0.3.9", @@ -10618,9 +10466,9 @@ dependencies = [ [[package]] name = "wasmtime-types" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9b01caf8a204ef634ebac99700e77ba716d3ebbb68a1abbc2ceb6b16dbec9e4" +checksum = "ff94409cc3557bfbbcce6b14520ccd6bd3727e965c0fe68d63ef2c185bf379c6" dependencies = [ "cranelift-entity", "serde", @@ -10764,8 +10612,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -10777,8 +10625,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "frame-support", "frame-system", @@ -10797,8 +10645,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.12" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +version = "0.9.13" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -10815,7 +10663,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.12#5feed981cf0fe671447eabaa9c0d235a8dd0003e" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" dependencies = [ "proc-macro2", "quote", @@ -10828,7 +10676,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7d9028f208dd5e63c614be69f115c1b53cacc1111437d4c765185856666c107" dependencies = [ - "futures 0.3.17", + "futures 0.3.18", "log", "nohash-hasher", "parking_lot 0.11.2", diff --git a/node/Cargo.toml b/node/Cargo.toml index 15a4c217..ad27c442 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -5,15 +5,15 @@ authors = ["Anonymous"] description = "A new Cumulus FRAME-based Substrate Node, ready for hacking together a parachain." license = "Unlicense" homepage = "https://substrate.io" -repository = 'https://github.com/substrate-developer-hub/substrate-parachain-template' -edition = "2018" +repository = "https://github.com/paritytech/cumulus/" +edition = "2021" build = "build.rs" [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } [[bin]] name = "parachain-collator" @@ -37,59 +37,58 @@ jsonrpc-core = "18.0.0" parachain-template-runtime = { path = "../runtime" } # Substrate Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } ## Substrate Client Dependencies -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"], branch = "polkadot-v0.9.12" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.13" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } ## Substrate Primitive Dependencies -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } # Cumulus dependencies -cumulus-client-cli = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12' } -cumulus-client-collator = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12' } -cumulus-client-consensus-aura = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12' } -cumulus-client-consensus-common = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12' } -cumulus-client-network = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12' } -cumulus-client-service = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12' } -cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12' } -cumulus-primitives-parachain-inherent = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12' } +cumulus-client-cli = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13' } +cumulus-client-collator = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13' } +cumulus-client-consensus-aura = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13' } +cumulus-client-consensus-common = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13' } +cumulus-client-network = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13' } +cumulus-client-service = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13' } +cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13' } +cumulus-primitives-parachain-inherent = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13' } # Polkadot dependencies -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.12" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.12" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.12" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.12" } -polkadot-test-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.12" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.13" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.13" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.13" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.13" } diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index 0b6ba77b..24756264 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -181,7 +181,6 @@ fn testnet_genesis( code: parachain_template_runtime::WASM_BINARY .expect("WASM binary was not build, please build it!") .to_vec(), - changes_trie_config: Default::default(), }, balances: parachain_template_runtime::BalancesConfig { balances: endowed_accounts.iter().cloned().map(|k| (k, 1 << 60)).collect(), diff --git a/node/src/service.rs b/node/src/service.rs index ff11038a..16fe8383 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -127,7 +127,7 @@ where let telemetry_worker_handle = telemetry.as_ref().map(|(worker, _)| worker.handle()); let telemetry = telemetry.map(|(worker, telemetry)| { - task_manager.spawn_handle().spawn("telemetry", worker.run()); + task_manager.spawn_handle().spawn("telemetry", None, worker.run()); telemetry }); @@ -265,7 +265,6 @@ where transaction_pool: transaction_pool.clone(), spawn_handle: task_manager.spawn_handle(), import_queue: import_queue.clone(), - on_demand: None, block_announce_validator_builder: Some(Box::new(|_| block_announce_validator)), warp_sync: None, })?; @@ -286,8 +285,6 @@ where }; sc_service::spawn_tasks(sc_service::SpawnTasksParams { - on_demand: None, - remote_blockchain: None, rpc_extensions_builder, client: client.clone(), transaction_pool: transaction_pool.clone(), diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index bdda8e42..534f3682 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -6,7 +6,7 @@ version = "0.1.0" license = "Unlicense" homepage = "https://substrate.io" repository = "https://github.com/paritytech/substrate/" -edition = "2018" +edition = "2021" [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] @@ -15,15 +15,15 @@ targets = ["x86_64-unknown-linux-gnu"] codec = { package = "parity-scale-codec", version = "2.0.0", features = ["derive"], default-features = false } scale-info = { version = "1.0.0", default-features = false, features = ["derive"] } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.12" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.13" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } [dev-dependencies] serde = { version = "1.0.119" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } [features] default = ["std"] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index c4f5a2bb..ca898d39 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -5,16 +5,17 @@ authors = ["Anonymous"] description = "A new Cumulus FRAME-based Substrate Runtime, ready for hacking together a parachain." license = "Unlicense" homepage = "https://substrate.io" -repository = 'https://github.com/substrate-developer-hub/substrate-parachain-template' -edition = "2018" +repository = "https://github.com/paritytech/cumulus/" +edition = "2021" [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.12" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } [dependencies] +hex-literal = { version = '0.3.1', optional = true } codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"]} log = { version = "0.4.14", default-features = false } scale-info = { version = "1.0.0", default-features = false, features = ["derive"] } @@ -26,56 +27,57 @@ pallet-template = { path = "../pallets/template", default-features = false } # Substrate Dependencies ## Substrate Primitive Dependencies -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } ## Substrate FRAME Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.12" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.12" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.13" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.13" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.13" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } ## Substrate Pallet Dependencies -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.12" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } # Cumulus dependencies -cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12', default-features = false } -cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12', default-features = false } -cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12', default-features = false } -cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12', default-features = false } -cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12', default-features = false } -cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12', default-features = false } -cumulus-primitives-timestamp = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12', default-features = false } -cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12', default-features = false } -pallet-collator-selection = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12', default-features = false } -parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.12', default-features = false } +cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false } +cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false } +cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false } +cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false } +cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false } +cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false } +cumulus-primitives-timestamp = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false } +cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false } +pallet-collator-selection = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false } +parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false } +cumulus-pallet-session-benchmarking = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false, version = "3.0.0"} # Polkadot Dependencies -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.12" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.12" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.12" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.12" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.12" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.12" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.13" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.13" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.13" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.13" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.13" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.13" } [features] default = [ @@ -128,6 +130,7 @@ std = [ ] runtime-benchmarks = [ + 'hex-literal', "sp-runtime/runtime-benchmarks", "xcm-builder/runtime-benchmarks", "frame-benchmarking", @@ -139,4 +142,5 @@ runtime-benchmarks = [ "pallet-template/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", + 'cumulus-pallet-session-benchmarking/runtime-benchmarks', ] From 68f23f3101a4fcc0226138e10cdc703a27c6ed81 Mon Sep 17 00:00:00 2001 From: Alejandro Martinez Andres Date: Thu, 27 Jan 2022 18:45:39 +0100 Subject: [PATCH 44/91] update to polkadot-v0.9.15 (#90) --- Cargo.lock | 1299 ++++++++++++++++++----------------- node/Cargo.toml | 92 +-- pallets/template/Cargo.toml | 12 +- runtime/Cargo.toml | 88 +-- runtime/src/lib.rs | 2 +- 5 files changed, 749 insertions(+), 744 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d96481fc..77138f9c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -42,7 +42,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" dependencies = [ - "generic-array 0.14.4", + "generic-array 0.14.5", ] [[package]] @@ -77,7 +77,7 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.3", + "getrandom 0.2.4", "once_cell", "version_check", ] @@ -108,15 +108,15 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.51" +version = "1.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b26702f315f53b6071259e15dd9d64528213b44d61de1ec926eca7715d62203" +checksum = "94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0" [[package]] name = "approx" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "072df7202e63b127ab55acfe16ce97013d5b97bf160489336d3f1840fd78e99e" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" dependencies = [ "num-traits", ] @@ -225,7 +225,7 @@ dependencies = [ "parking", "polling", "slab", - "socket2 0.4.2", + "socket2 0.4.4", "waker-fn", "winapi 0.3.9", ] @@ -288,7 +288,7 @@ dependencies = [ "memchr", "num_cpus", "once_cell", - "pin-project-lite 0.2.7", + "pin-project-lite 0.2.8", "pin-utils", "slab", "wasm-bindgen-futures", @@ -310,15 +310,15 @@ dependencies = [ [[package]] name = "async-task" -version = "4.0.3" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91831deabf0d6d7ec49552e489aed63b7456a7a3c46cff62adad428110b0af0" +checksum = "677d306121baf53310a3fd342d88dc0824f6bbeace68347593658525565abee8" [[package]] name = "async-trait" -version = "0.1.51" +version = "0.1.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44318e776df68115a881de9a8fd1b9e53368d7a4a5ce4cc48517da3393233a5e" +checksum = "061a7acccaa286c011ddc30970520b98fa40e00c9d644633fb26b5fc63a265e3" dependencies = [ "proc-macro2", "quote", @@ -335,7 +335,7 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.7", + "pin-project-lite 0.2.8", ] [[package]] @@ -348,7 +348,7 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.7", + "pin-project-lite 0.2.8", ] [[package]] @@ -428,11 +428,11 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "beefy-primitives", "fnv", - "futures 0.3.18", + "futures 0.3.19", "log", "parity-scale-codec", "parking_lot 0.11.2", @@ -456,11 +456,11 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "beefy-gadget", "beefy-primitives", - "futures 0.3.18", + "futures 0.3.19", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -476,12 +476,12 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "scale-info", @@ -494,9 +494,9 @@ dependencies = [ [[package]] name = "bimap" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50ae17cabbc8a38a1e3e4c1a6a664e9a09672dc14d0896fa8d865d3a5a446b07" +checksum = "bc0455254eb5c6964c4545d8bac815e1a1be4f3afe0ae695ea539c12d728d44b" [[package]] name = "bincode" @@ -621,7 +621,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ "block-padding 0.2.1", - "generic-array 0.14.4", + "generic-array 0.14.5", ] [[package]] @@ -688,9 +688,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.8.0" +version = "3.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6c" +checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899" [[package]] name = "byte-slice-cast" @@ -728,15 +728,15 @@ checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" [[package]] name = "cache-padded" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "631ae5198c9be5e753e5cc215e1bd73c2b466a3565173db433f52bb9d3e66dba" +checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" [[package]] name = "camino" -version = "1.0.5" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52d74260d9bf6944e2208aa46841b4b8f0d7ffc0849a06837b2f510337f86b2b" +checksum = "6f3132262930b0522068049f5870a856ab8affc80c70d08b6ecb785771a6fc23" dependencies = [ "serde", ] @@ -854,7 +854,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" dependencies = [ - "generic-array 0.14.4", + "generic-array 0.14.5", ] [[package]] @@ -874,7 +874,7 @@ checksum = "fa66045b9cb23c2e9c1520732030608b02ee07e5cfaa5a521ec15ded7fa24c90" dependencies = [ "glob", "libc", - "libloading 0.7.2", + "libloading 0.7.3", ] [[package]] @@ -1057,18 +1057,18 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "738c290dfaea84fc1ca15ad9c168d083b05a714e1efddd8edaab678dc28d2836" +checksum = "a2209c310e29876f7f0b2721e7e26b84aff178aa3da5d091f9bfbf47669e60e3" dependencies = [ "cfg-if 1.0.0", ] [[package]] name = "crossbeam-channel" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4" +checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa" dependencies = [ "cfg-if 1.0.0", "crossbeam-utils", @@ -1087,9 +1087,9 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd" +checksum = "97242a70df9b89a65d0b6df3c4bf5b9ce03c5b7309019777fbde37e7537f8762" dependencies = [ "cfg-if 1.0.0", "crossbeam-utils", @@ -1100,9 +1100,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db" +checksum = "cfcae03edb34f947e64acdb1c33ec169824e20657e9ecb61cef6c8c74dcb8120" dependencies = [ "cfg-if 1.0.0", "lazy_static", @@ -1120,7 +1120,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ - "generic-array 0.14.4", + "generic-array 0.14.5", "subtle", ] @@ -1130,7 +1130,7 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" dependencies = [ - "generic-array 0.14.4", + "generic-array 0.14.5", "subtle", ] @@ -1176,7 +1176,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "sc-cli", "sc-service", @@ -1186,12 +1186,12 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-primitives-core", - "futures 0.3.18", + "futures 0.3.19", "parity-scale-codec", "parking_lot 0.10.2", "polkadot-node-primitives", @@ -1209,12 +1209,12 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "async-trait", "cumulus-client-consensus-common", "cumulus-primitives-core", - "futures 0.3.18", + "futures 0.3.19", "parity-scale-codec", "polkadot-client", "sc-client-api", @@ -1239,11 +1239,11 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "async-trait", "dyn-clone", - "futures 0.3.18", + "futures 0.3.19", "parity-scale-codec", "polkadot-primitives", "sc-client-api", @@ -1259,10 +1259,10 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "derive_more", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "parity-scale-codec", "parking_lot 0.10.2", @@ -1282,10 +1282,10 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "parity-scale-codec", "polkadot-node-primitives", @@ -1305,7 +1305,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-common", @@ -1334,7 +1334,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "frame-executive", "frame-support", @@ -1352,7 +1352,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1370,7 +1370,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1399,7 +1399,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -1410,7 +1410,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "frame-benchmarking", "frame-support", @@ -1423,7 +1423,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1440,7 +1440,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1458,7 +1458,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -1475,7 +1475,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1497,7 +1497,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", "sp-inherents", @@ -1508,7 +1508,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1525,7 +1525,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1626,7 +1626,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.4", + "generic-array 0.14.5", ] [[package]] @@ -1738,7 +1738,7 @@ dependencies = [ "ed25519", "rand 0.7.3", "serde", - "sha2 0.9.8", + "sha2 0.9.9", "zeroize", ] @@ -1873,9 +1873,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "2.5.1" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59" +checksum = "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71" [[package]] name = "exit-future" @@ -1883,7 +1883,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", ] [[package]] @@ -1900,9 +1900,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "1.5.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b394ed3d285a429378d3b384b9eb1285267e7df4b166df24b7a6939a04dc392e" +checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" dependencies = [ "instant", ] @@ -1933,7 +1933,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8ac3ff5224ef91f3c97e03eb1de2db82743427e91aaa5ac635f454f0b164f5a" dependencies = [ "either", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "log", "num-traits", @@ -1956,9 +1956,9 @@ dependencies = [ [[package]] name = "fixedbitset" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "398ea4fabe40b9b0d885340a2a991a44c8a645624075ad966d21f88688e2b69e" +checksum = "279fb028e20b3c4c320317955b77c5e0c9701f05a1d309905d6fc702cdc5053e" [[package]] name = "flate2" @@ -1982,7 +1982,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", ] @@ -2000,7 +2000,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -2020,7 +2020,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "Inflector", "chrono", @@ -2046,7 +2046,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -2060,7 +2060,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -2088,7 +2088,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "bitflags", "frame-metadata", @@ -2117,7 +2117,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2129,7 +2129,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.1.0", @@ -2141,7 +2141,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "proc-macro2", "quote", @@ -2151,7 +2151,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "log", @@ -2168,7 +2168,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -2183,7 +2183,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "sp-api", @@ -2192,7 +2192,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "sp-api", @@ -2258,9 +2258,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cd0210d8c325c245ff06fd95a3b13689a1a276ac8cfa8e8720cb840bfb84b9e" +checksum = "28560757fe2bb34e79f907794bb6b22ae8b0e5c669b638a1132f2592b19035b4" dependencies = [ "futures-channel", "futures-core", @@ -2273,9 +2273,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fc8cd39e3dbf865f7340dce6a2d401d24fd37c6fe6c4f0ee0de8bfca2252d27" +checksum = "ba3dda0b6588335f360afc675d0564c17a77a2bda81ca178a4b6081bd86c7f0b" dependencies = [ "futures-core", "futures-sink", @@ -2283,15 +2283,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629316e42fe7c2a0b9a65b47d159ceaa5453ab14e8f0a3c5eedbb8cd55b4a445" +checksum = "d0c8ff0461b82559810cdccfde3215c3f373807f5e5232b71479bff7bb2583d7" [[package]] name = "futures-executor" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b808bf53348a36cab739d7e04755909b9fcaaa69b7d7e588b37b6ec62704c97" +checksum = "29d6d2ff5bb10fb95c85b8ce46538a2e5f5e7fdc755623a7d4529ab8a4ed9d2a" dependencies = [ "futures-core", "futures-task", @@ -2301,9 +2301,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e481354db6b5c353246ccf6a728b0c5511d752c08da7260546fc0933869daa11" +checksum = "b1f9d34af5a1aac6fb380f735fe510746c38067c5bf16c7fd250280503c971b2" [[package]] name = "futures-lite" @@ -2316,15 +2316,15 @@ dependencies = [ "futures-io", "memchr", "parking", - "pin-project-lite 0.2.7", + "pin-project-lite 0.2.8", "waker-fn", ] [[package]] name = "futures-macro" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a89f17b21645bc4ed773c69af9c9a0effd4a3f1a3876eadd453469f8854e7fdd" +checksum = "6dbd947adfffb0efc70599b3ddcf7b5597bb5fa9e245eb99f62b3a5f7bb8bd3c" dependencies = [ "proc-macro2", "quote", @@ -2344,15 +2344,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "996c6442437b62d21a32cd9906f9c41e7dc1e19a9579843fad948696769305af" +checksum = "e3055baccb68d74ff6480350f8d6eb8fcfa3aa11bdc1a1ae3afdd0514617d508" [[package]] name = "futures-task" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dabf1872aaab32c886832f2276d2f5399887e2bd613698a02359e4ea83f8de12" +checksum = "6ee7c6485c30167ce4dfb83ac568a849fe53274c831081476ee13e0dce1aad72" [[package]] name = "futures-timer" @@ -2368,9 +2368,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d22213122356472061ac0f1ab2cee28d2bac8491410fd68c2af53d1cedb83e" +checksum = "d9b5cf40b47a271f77a8b1bec03ca09044d99d2372c0de244e66430761127164" dependencies = [ "futures 0.1.31", "futures-channel", @@ -2380,7 +2380,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.7", + "pin-project-lite 0.2.8", "pin-utils", "slab", ] @@ -2396,9 +2396,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.4" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" +checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" dependencies = [ "typenum", "version_check", @@ -2419,9 +2419,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" +checksum = "418d37c8b1d42553c93648be529cb70f920d3baf8ef469b74b9638df426e0b4c" dependencies = [ "cfg-if 1.0.0", "libc", @@ -2476,9 +2476,9 @@ dependencies = [ [[package]] name = "gloo-timers" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47204a46aaff920a1ea58b11d03dec6f704287d27561724a4631e450654a891f" +checksum = "6f16c88aa13d2656ef20d1c042086b8767bbe2bdb62526894275a1b062161b2e" dependencies = [ "futures-channel", "futures-core", @@ -2489,9 +2489,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.7" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fd819562fcebdac5afc5c113c3ec36f902840b70fd4fc458799c8ce4607ae55" +checksum = "d9f1f717ddc7b2ba36df7e871fd88db79326551d3d6f1fc406fbfd28b582ff8e" dependencies = [ "bytes 1.1.0", "fnv", @@ -2508,9 +2508,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.1.5" +version = "4.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ad84da8f63da982543fc85fcabaee2ad1fdd809d99d64a48887e2e942ddfe46" +checksum = "25546a65e5cf1f471f3438796fc634650b31d7fcde01d444c309aeb28b92e3a8" dependencies = [ "log", "pest", @@ -2607,7 +2607,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" dependencies = [ "digest 0.9.0", - "generic-array 0.14.4", + "generic-array 0.14.5", "hmac 0.8.1", ] @@ -2624,13 +2624,13 @@ dependencies = [ [[package]] name = "http" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186b" +checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03" dependencies = [ "bytes 1.1.0", "fnv", - "itoa", + "itoa 1.0.1", ] [[package]] @@ -2641,7 +2641,7 @@ checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" dependencies = [ "bytes 1.1.0", "http", - "pin-project-lite 0.2.7", + "pin-project-lite 0.2.8", ] [[package]] @@ -2673,9 +2673,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.15" +version = "0.14.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436ec0091e4f20e655156a30a0df3770fe2900aa301e548e08446ec794b6953c" +checksum = "b7ec3e62bdc98a2f0393a5048e4c30ef659440ea6e0e572965103e72bd836f55" dependencies = [ "bytes 1.1.0", "futures-channel", @@ -2686,9 +2686,9 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa", - "pin-project-lite 0.2.7", - "socket2 0.4.2", + "itoa 0.4.8", + "pin-project-lite 0.2.8", + "socket2 0.4.4", "tokio", "tower-service", "tracing", @@ -2762,7 +2762,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae8ab7f67bad3240049cb24fb9cb0b4c2c6af4c245840917fbbdededeee91179" dependencies = [ "async-io", - "futures 0.3.18", + "futures 0.3.19", "futures-lite", "if-addrs", "ipnet", @@ -2811,9 +2811,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" +checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223" dependencies = [ "autocfg", "hashbrown", @@ -2831,9 +2831,9 @@ dependencies = [ [[package]] name = "integer-encoding" -version = "1.1.7" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48dc51180a9b377fd75814d0cc02199c20f8e99433d6762f650d39cdbbd3b56f" +checksum = "90c11140ffea82edce8dcd74137ce9324ec24b3cf0175fc9d7e29164da9915b8" [[package]] name = "integer-sqrt" @@ -2850,7 +2850,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "futures-timer 2.0.2", ] @@ -2899,9 +2899,9 @@ checksum = "68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9" [[package]] name = "itertools" -version = "0.10.1" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf" +checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" dependencies = [ "either", ] @@ -2912,6 +2912,12 @@ version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" +[[package]] +name = "itoa" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" + [[package]] name = "jobserver" version = "0.1.24" @@ -2923,9 +2929,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.55" +version = "0.3.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84" +checksum = "a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04" dependencies = [ "wasm-bindgen", ] @@ -2937,7 +2943,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2b99d4207e2a04fb4581746903c2bb7eb376f88de9c699d0f3e10feeac0cd3a" dependencies = [ "derive_more", - "futures 0.3.18", + "futures 0.3.19", "jsonrpc-core", "jsonrpc-pubsub", "log", @@ -2952,7 +2958,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "futures-executor", "futures-util", "log", @@ -2967,7 +2973,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b51da17abecbdab3e3d4f26b01c5ec075e88d3abe3ab3b05dc9aa69392764ec0" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "jsonrpc-client-transports", ] @@ -2989,7 +2995,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1dea6e07251d9ce6a552abfb5d7ad6bc290a4596c8dcc3d795fae2bbdc1f3ff" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "hyper", "jsonrpc-core", "jsonrpc-server-utils", @@ -3005,7 +3011,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "382bb0206323ca7cda3dcd7e245cea86d37d02457a02a975e3378fb149a48845" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "jsonrpc-core", "jsonrpc-server-utils", "log", @@ -3020,7 +3026,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240f87695e6c6f62fb37f05c02c04953cf68d6408b8c1c89de85c7a0125b1011" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "jsonrpc-core", "lazy_static", "log", @@ -3036,7 +3042,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa4fdea130485b572c39a460d50888beb00afb3e35de23ccd7fad8ff19f0e0d4" dependencies = [ "bytes 1.1.0", - "futures 0.3.18", + "futures 0.3.19", "globset", "jsonrpc-core", "lazy_static", @@ -3053,7 +3059,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f892c7d766369475ab7b0669f417906302d7c0fb521285c0a0c92e52e7c8e946" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "jsonrpc-core", "jsonrpc-server-utils", "log", @@ -3126,11 +3132,11 @@ dependencies = [ "arrayvec 0.7.2", "async-trait", "fnv", - "futures 0.3.18", + "futures 0.3.19", "http", "jsonrpsee-types", "log", - "pin-project 1.0.8", + "pin-project 1.0.10", "rustls-native-certs", "serde", "serde_json", @@ -3219,9 +3225,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.108" +version = "0.2.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8521a1b57e76b1ec69af7599e75e38e7b7fad6610f037db8c79b127201b5d119" +checksum = "0a8d982fa7a96a000f6ec4cfe966de9703eccde29750df2bb8949da91b0e818d" [[package]] name = "libloading" @@ -3235,9 +3241,9 @@ dependencies = [ [[package]] name = "libloading" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afe203d669ec979b7128619bae5a63b7b42e9203c1b29146079ee05e2f604b52" +checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" dependencies = [ "cfg-if 1.0.0", "winapi 0.3.9", @@ -3257,7 +3263,7 @@ checksum = "3bec54343492ba5940a6c555e512c6721139835d28c59bc22febece72dfd0d9d" dependencies = [ "atomic", "bytes 1.1.0", - "futures 0.3.18", + "futures 0.3.19", "lazy_static", "libp2p-core", "libp2p-deflate", @@ -3285,7 +3291,7 @@ dependencies = [ "libp2p-yamux", "multiaddr", "parking_lot 0.11.2", - "pin-project 1.0.8", + "pin-project 1.0.10", "smallvec", "wasm-timer", ] @@ -3301,7 +3307,7 @@ dependencies = [ "ed25519-dalek", "either", "fnv", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "lazy_static", "libsecp256k1", @@ -3310,13 +3316,13 @@ dependencies = [ "multihash 0.14.0", "multistream-select", "parking_lot 0.11.2", - "pin-project 1.0.8", + "pin-project 1.0.10", "prost", "prost-build", "rand 0.8.4", "ring", "rw-stream-sink", - "sha2 0.9.8", + "sha2 0.9.9", "smallvec", "thiserror", "unsigned-varint 0.7.1", @@ -3331,7 +3337,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51a800adb195f33de63f4b17b63fe64cfc23bf2c6a0d3d0d5321328664e65197" dependencies = [ "flate2", - "futures 0.3.18", + "futures 0.3.19", "libp2p-core", ] @@ -3342,7 +3348,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb8f89d15cb6e3c5bc22afff7513b11bab7856f2872d3cfba86f7f63a06bc498" dependencies = [ "async-std-resolver", - "futures 0.3.18", + "futures 0.3.19", "libp2p-core", "log", "smallvec", @@ -3357,7 +3363,7 @@ checksum = "aab3d7210901ea51b7bae2b581aa34521797af8c4ec738c980bda4a06434067f" dependencies = [ "cuckoofilter", "fnv", - "futures 0.3.18", + "futures 0.3.19", "libp2p-core", "libp2p-swarm", "log", @@ -3378,7 +3384,7 @@ dependencies = [ "byteorder", "bytes 1.1.0", "fnv", - "futures 0.3.18", + "futures 0.3.19", "hex_fmt", "libp2p-core", "libp2p-swarm", @@ -3387,7 +3393,7 @@ dependencies = [ "prost-build", "rand 0.7.3", "regex", - "sha2 0.9.8", + "sha2 0.9.9", "smallvec", "unsigned-varint 0.7.1", "wasm-timer", @@ -3399,7 +3405,7 @@ version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cca1275574183f288ff8b72d535d5ffa5ea9292ef7829af8b47dcb197c7b0dcd" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "libp2p-core", "libp2p-swarm", "log", @@ -3421,14 +3427,14 @@ dependencies = [ "bytes 1.1.0", "either", "fnv", - "futures 0.3.18", + "futures 0.3.19", "libp2p-core", "libp2p-swarm", "log", "prost", "prost-build", "rand 0.7.3", - "sha2 0.9.8", + "sha2 0.9.9", "smallvec", "uint", "unsigned-varint 0.7.1", @@ -3445,7 +3451,7 @@ dependencies = [ "async-io", "data-encoding", "dns-parser", - "futures 0.3.18", + "futures 0.3.19", "if-watch", "lazy_static", "libp2p-core", @@ -3453,7 +3459,7 @@ dependencies = [ "log", "rand 0.8.4", "smallvec", - "socket2 0.4.2", + "socket2 0.4.4", "void", ] @@ -3479,7 +3485,7 @@ checksum = "7f2cd64ef597f40e14bfce0497f50ecb63dd6d201c61796daeb4227078834fbf" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.1.0", - "futures 0.3.18", + "futures 0.3.19", "libp2p-core", "log", "nohash-hasher", @@ -3497,14 +3503,14 @@ checksum = "a8772c7a99088221bb7ca9c5c0574bf55046a7ab4c319f3619b275f28c8fb87a" dependencies = [ "bytes 1.1.0", "curve25519-dalek 3.2.0", - "futures 0.3.18", + "futures 0.3.19", "lazy_static", "libp2p-core", "log", "prost", "prost-build", "rand 0.8.4", - "sha2 0.9.8", + "sha2 0.9.9", "snow", "static_assertions", "x25519-dalek", @@ -3517,7 +3523,7 @@ version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80ef7b0ec5cf06530d9eb6cf59ae49d46a2c45663bde31c25a12f682664adbcf" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "libp2p-core", "libp2p-swarm", "log", @@ -3534,7 +3540,7 @@ checksum = "5fba1a6ff33e4a274c89a3b1d78b9f34f32af13265cc5c46c16938262d4e945a" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.1.0", - "futures 0.3.18", + "futures 0.3.19", "libp2p-core", "log", "prost", @@ -3549,9 +3555,9 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f1a458bbda880107b5b36fcb9b5a1ef0c329685da0e203ed692a8ebe64cc92c" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "log", - "pin-project 1.0.8", + "pin-project 1.0.10", "rand 0.7.3", "salsa20", "sha3", @@ -3565,12 +3571,12 @@ checksum = "2852b61c90fa8ce3c8fcc2aba76e6cefc20d648f9df29157d6b3a916278ef3e3" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.1.0", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "libp2p-core", "libp2p-swarm", "log", - "pin-project 1.0.8", + "pin-project 1.0.10", "prost", "prost-build", "rand 0.7.3", @@ -3588,14 +3594,14 @@ checksum = "14a6d2b9e7677eff61dc3d2854876aaf3976d84a01ef6664b610c77a0c9407c5" dependencies = [ "asynchronous-codec 0.6.0", "bimap", - "futures 0.3.18", + "futures 0.3.19", "libp2p-core", "libp2p-swarm", "log", "prost", "prost-build", "rand 0.8.4", - "sha2 0.9.8", + "sha2 0.9.9", "thiserror", "unsigned-varint 0.7.1", "void", @@ -3610,11 +3616,11 @@ checksum = "a877a4ced6d46bf84677e1974e8cf61fb434af73b2e96fb48d6cb6223a4634d8" dependencies = [ "async-trait", "bytes 1.1.0", - "futures 0.3.18", + "futures 0.3.19", "libp2p-core", "libp2p-swarm", "log", - "lru 0.7.0", + "lru 0.7.2", "rand 0.7.3", "smallvec", "unsigned-varint 0.7.1", @@ -3628,7 +3634,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f5184a508f223bc100a12665517773fb8730e9f36fc09eefb670bf01b107ae9" dependencies = [ "either", - "futures 0.3.18", + "futures 0.3.19", "libp2p-core", "log", "rand 0.7.3", @@ -3654,14 +3660,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7399c5b6361ef525d41c11fcf51635724f832baf5819b30d3d873eabb4fbae4b" dependencies = [ "async-io", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "if-watch", "ipnet", "libc", "libp2p-core", "log", - "socket2 0.4.2", + "socket2 0.4.4", ] [[package]] @@ -3671,7 +3677,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8b7563e46218165dfd60f64b96f7ce84590d75f53ecbdc74a7dd01450dc5973" dependencies = [ "async-std", - "futures 0.3.18", + "futures 0.3.19", "libp2p-core", "log", ] @@ -3682,7 +3688,7 @@ version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1008a302b73c5020251f9708c653f5ed08368e530e247cc9cd2f109ff30042cf" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "js-sys", "libp2p-core", "parity-send-wrapper", @@ -3697,7 +3703,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22e12df82d1ed64969371a9e65ea92b91064658604cc2576c2757f18ead9a1cf" dependencies = [ "either", - "futures 0.3.18", + "futures 0.3.19", "futures-rustls", "libp2p-core", "log", @@ -3714,7 +3720,7 @@ version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e7362abb8867d7187e7e93df17f460d554c997fc5c8ac57dc1259057f6889af" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "libp2p-core", "parking_lot 0.11.2", "thiserror", @@ -3748,7 +3754,7 @@ dependencies = [ "libsecp256k1-gen-genmult", "rand 0.8.4", "serde", - "sha2 0.9.8", + "sha2 0.9.9", "typenum", ] @@ -3862,9 +3868,9 @@ dependencies = [ [[package]] name = "lru" -version = "0.7.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c748cfe47cb8da225c37595b3108bea1c198c84aaae8ea0ba76d01dda9fc803" +checksum = "274353858935c992b13c0ca408752e2121da852d07dec7ce5f108c77dfa14d1f" dependencies = [ "hashbrown", ] @@ -3960,18 +3966,18 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4647a11b578fead29cdbb34d4adef8dd3dc35b876c9c6d5240d83f205abfe96e" +checksum = "fe3179b85e1fd8b14447cbebadb75e45a1002f541b925f0bfec366d56a81c56d" dependencies = [ "libc", ] [[package]] name = "memoffset" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" dependencies = [ "autocfg", ] @@ -4016,11 +4022,11 @@ dependencies = [ [[package]] name = "metered-channel" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "derive_more", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "thiserror", "tracing", @@ -4028,12 +4034,12 @@ dependencies = [ [[package]] name = "mick-jaeger" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaa77fad8461bb1e0d01be11299e24c6e544007715ed442bfec29f165dc487ae" +checksum = "fd2c2cc134e57461f0898b0e921f0a7819b5e3f3a4335b9aa390ce81a5f36fb9" dependencies = [ - "futures 0.3.18", - "rand 0.7.3", + "futures 0.3.19", + "rand 0.8.4", "thrift", ] @@ -4163,9 +4169,9 @@ dependencies = [ "blake2s_simd", "blake3", "digest 0.9.0", - "generic-array 0.14.4", + "generic-array 0.14.5", "multihash-derive", - "sha2 0.9.8", + "sha2 0.9.9", "sha3", "unsigned-varint 0.5.1", ] @@ -4177,9 +4183,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "752a61cd890ff691b4411423d23816d5866dd5621e4d1c5687a53b94b5a979d8" dependencies = [ "digest 0.9.0", - "generic-array 0.14.4", + "generic-array 0.14.5", "multihash-derive", - "sha2 0.9.8", + "sha2 0.9.9", "unsigned-varint 0.7.1", ] @@ -4210,9 +4216,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56a336acba8bc87c8876f6425407dbbe6c417bf478b22015f8fb0994ef3bc0ab" dependencies = [ "bytes 1.1.0", - "futures 0.3.18", + "futures 0.3.19", "log", - "pin-project 1.0.8", + "pin-project 1.0.10", "smallvec", "unsigned-varint 0.7.1", ] @@ -4363,9 +4369,9 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" +checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" dependencies = [ "hermit-abi", "libc", @@ -4384,9 +4390,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" +checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5" [[package]] name = "opaque-debug" @@ -4407,7 +4413,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7337d80c23c2d8b1349563981bc4fb531220733743ba8115454a67b181173f0d" dependencies = [ "dtoa", - "itoa", + "itoa 0.4.8", "open-metrics-client-derive-text-encode", "owning_ref", ] @@ -4425,9 +4431,9 @@ dependencies = [ [[package]] name = "openssl-probe" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "ordered-float" @@ -4450,7 +4456,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -4466,7 +4472,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -4482,7 +4488,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -4497,7 +4503,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -4521,7 +4527,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4536,7 +4542,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -4551,7 +4557,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "beefy-primitives", "frame-support", @@ -4567,7 +4573,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -4592,7 +4598,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -4609,7 +4615,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "frame-benchmarking", "frame-support", @@ -4629,7 +4635,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -4646,7 +4652,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -4662,7 +4668,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4682,7 +4688,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -4699,7 +4705,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -4722,7 +4728,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4738,7 +4744,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -4757,7 +4763,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -4773,7 +4779,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -4790,7 +4796,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -4808,7 +4814,7 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -4824,7 +4830,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -4841,7 +4847,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -4855,7 +4861,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -4869,7 +4875,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -4886,7 +4892,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -4900,7 +4906,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -4916,7 +4922,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -4937,7 +4943,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4958,7 +4964,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -4969,7 +4975,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -4998,7 +5004,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5016,7 +5022,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -5034,7 +5040,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -5051,7 +5057,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5068,7 +5074,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5079,7 +5085,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -5095,7 +5101,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -5110,7 +5116,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-support", "frame-system", @@ -5123,8 +5129,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "frame-support", "frame-system", @@ -5142,7 +5148,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.13#0be8e8fc214641e306e4f913dd64ff1913e46e95" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -5326,7 +5332,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9981e32fb75e004cc148f5fb70342f393830e0a4aa62e3cc93b50976218d42b6" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "libc", "log", "rand 0.7.3", @@ -5548,27 +5554,27 @@ dependencies = [ [[package]] name = "pin-project" -version = "0.4.28" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "918192b5c59119d51e0cd221f4d49dde9112824ba717369e903c97d076083d0f" +checksum = "9615c18d31137579e9ff063499264ddc1278e7b1982757ebc111028c4d1dc909" dependencies = [ - "pin-project-internal 0.4.28", + "pin-project-internal 0.4.29", ] [[package]] name = "pin-project" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "576bc800220cc65dac09e99e97b08b358cfab6e17078de8dc5fee223bd2d0c08" +checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e" dependencies = [ - "pin-project-internal 1.0.8", + "pin-project-internal 1.0.10", ] [[package]] name = "pin-project-internal" -version = "0.4.28" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be26700300be6d9d23264c73211d8190e755b6b5ca7a1b28230025511b52a5e" +checksum = "044964427019eed9d49d9d5bbce6047ef18f37100ea400912a9fa4a3523ab12a" dependencies = [ "proc-macro2", "quote", @@ -5577,9 +5583,9 @@ dependencies = [ [[package]] name = "pin-project-internal" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e8fe8163d14ce7f0cdac2e040116f22eac817edabff0be91e8aff7e9accf389" +checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb" dependencies = [ "proc-macro2", "quote", @@ -5594,9 +5600,9 @@ checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" [[package]] name = "pin-project-lite" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443" +checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c" [[package]] name = "pin-utils" @@ -5606,9 +5612,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.22" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1f" +checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe" [[package]] name = "platforms" @@ -5618,10 +5624,10 @@ checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -5632,10 +5638,10 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -5645,12 +5651,12 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "derive_more", - "futures 0.3.18", - "lru 0.7.0", + "futures 0.3.19", + "lru 0.7.2", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -5667,11 +5673,11 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ - "futures 0.3.18", - "lru 0.7.0", + "futures 0.3.19", + "lru 0.7.2", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -5687,11 +5693,11 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "frame-benchmarking-cli", - "futures 0.3.18", + "futures 0.3.19", "log", "polkadot-node-core-pvf", "polkadot-service", @@ -5707,8 +5713,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -5737,12 +5743,12 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "always-assert", "derive_more", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -5758,8 +5764,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -5771,12 +5777,12 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "derive_more", - "futures 0.3.18", - "lru 0.7.0", + "futures 0.3.19", + "lru 0.7.2", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -5793,8 +5799,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -5807,10 +5813,10 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "polkadot-node-network-protocol", "polkadot-node-subsystem", @@ -5827,11 +5833,11 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "async-trait", - "futures 0.3.18", + "futures 0.3.19", "parity-scale-codec", "parking_lot 0.11.2", "polkadot-node-network-protocol", @@ -5846,10 +5852,10 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-primitives", @@ -5864,15 +5870,15 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bitvec", "derive_more", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "kvdb", - "lru 0.7.0", + "lru 0.7.2", "merlin", "parity-scale-codec", "polkadot-node-jaeger", @@ -5892,11 +5898,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bitvec", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "kvdb", "parity-scale-codec", @@ -5912,11 +5918,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bitvec", - "futures 0.3.18", + "futures 0.3.19", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -5930,10 +5936,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -5945,11 +5951,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "async-trait", - "futures 0.3.18", + "futures 0.3.19", "parity-scale-codec", "polkadot-node-core-pvf", "polkadot-node-primitives", @@ -5963,10 +5969,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -5978,10 +5984,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "kvdb", "parity-scale-codec", @@ -5995,12 +6001,12 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bitvec", "derive_more", - "futures 0.3.18", + "futures 0.3.19", "kvdb", "parity-scale-codec", "polkadot-node-primitives", @@ -6014,10 +6020,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-participation" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.14" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-primitives", @@ -6027,11 +6033,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "async-trait", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "polkadot-node-subsystem", "polkadot-primitives", @@ -6044,11 +6050,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bitvec", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -6059,18 +6065,18 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "always-assert", "assert_matches", "async-process", "async-std", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "libc", "parity-scale-codec", - "pin-project 1.0.8", + "pin-project 1.0.10", "polkadot-core-primitives", "polkadot-node-subsystem-util", "polkadot-parachain", @@ -6090,10 +6096,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "memory-lru", "parity-util-mem", "polkadot-node-subsystem", @@ -6108,8 +6114,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "async-std", "lazy_static", @@ -6126,10 +6132,10 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "metered-channel", "substrate-prometheus-endpoint", @@ -6137,12 +6143,12 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "async-trait", "derive_more", - "futures 0.3.18", + "futures 0.3.19", "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", @@ -6155,11 +6161,11 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bounded-vec", - "futures 0.3.18", + "futures 0.3.19", "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", @@ -6177,8 +6183,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -6187,11 +6193,11 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "derive_more", - "futures 0.3.18", + "futures 0.3.19", "polkadot-node-jaeger", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -6206,17 +6212,17 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "async-trait", "derive_more", - "futures 0.3.18", + "futures 0.3.19", "itertools", - "lru 0.7.0", + "lru 0.7.2", "metered-channel", "parity-scale-codec", - "pin-project 1.0.8", + "pin-project 1.0.10", "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", @@ -6233,12 +6239,12 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", - "lru 0.7.0", + "lru 0.7.2", "parity-util-mem", "parking_lot 0.11.2", "polkadot-node-metrics", @@ -6254,14 +6260,14 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "async-trait", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "metered-channel", - "pin-project 1.0.8", + "pin-project 1.0.10", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-overseer-gen-proc-macro", @@ -6271,8 +6277,8 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen-proc-macro" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -6282,8 +6288,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "derive_more", "frame-support", @@ -6299,8 +6305,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bitvec", "frame-system", @@ -6329,8 +6335,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -6360,8 +6366,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "beefy-primitives", "bitvec", @@ -6437,8 +6443,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "beefy-primitives", "bitvec", @@ -6482,8 +6488,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bitflags", "bitvec", @@ -6521,18 +6527,18 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "async-trait", "beefy-gadget", "beefy-primitives", "frame-system-rpc-runtime-api", - "futures 0.3.18", + "futures 0.3.19", "hex-literal", "kvdb", "kvdb-rocksdb", - "lru 0.7.0", + "lru 0.7.2", "pallet-babe", "pallet-im-online", "pallet-mmr-primitives", @@ -6617,12 +6623,12 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "arrayvec 0.5.2", "derive_more", - "futures 0.3.18", + "futures 0.3.19", "indexmap", "parity-scale-codec", "polkadot-node-network-protocol", @@ -6638,8 +6644,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -6684,9 +6690,9 @@ dependencies = [ [[package]] name = "ppv-lite86" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba" +checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" [[package]] name = "primitive-types" @@ -6747,9 +6753,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.32" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43" +checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" dependencies = [ "unicode-xid", ] @@ -6866,9 +6872,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.10" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05" +checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" dependencies = [ "proc-macro2", ] @@ -6940,14 +6946,14 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ - "getrandom 0.2.3", + "getrandom 0.2.4", ] [[package]] name = "rand_distr" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "964d548f8e7d12e102ef183a0de7e98180c9f8729f555897a857b96e48122d2f" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" dependencies = [ "num-traits", "rand 0.8.4", @@ -7032,7 +7038,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" dependencies = [ - "getrandom 0.2.3", + "getrandom 0.2.4", "redox_syscall 0.2.10", ] @@ -7121,7 +7127,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "env_logger 0.9.0", "jsonrpsee", @@ -7156,9 +7162,9 @@ dependencies = [ [[package]] name = "retain_mut" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "448296241d034b96c11173591deaa1302f2c17b56092106c1f92c1bc0183a8c9" +checksum = "11000e6ba5020e53e7cc26f73b91ae7d5496b4977851479edb66b694c0675c21" [[package]] name = "ring" @@ -7215,7 +7221,7 @@ dependencies = [ "cc", "errno", "io-lifetimes", - "itoa", + "itoa 0.4.8", "libc", "linux-raw-sys", "once_cell", @@ -7289,16 +7295,16 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" dependencies = [ - "futures 0.3.18", - "pin-project 0.4.28", + "futures 0.3.19", + "pin-project 0.4.29", "static_assertions", ] [[package]] name = "ryu" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c9613b5a66ab9ba26415184cfc41156594925a9cf3a2057e57f31ff145f6568" +checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" [[package]] name = "salsa20" @@ -7321,7 +7327,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "log", "sp-core", @@ -7332,11 +7338,11 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "derive_more", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "ip_network", "libp2p", @@ -7359,9 +7365,9 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -7382,7 +7388,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7398,10 +7404,10 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "impl-trait-for-tuples", - "memmap2 0.5.0", + "memmap2 0.5.2", "parity-scale-codec", "sc-chain-spec-derive", "sc-network", @@ -7415,7 +7421,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -7426,11 +7432,11 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "chrono", "fdlimit", - "futures 0.3.18", + "futures 0.3.19", "hex", "libp2p", "log", @@ -7464,10 +7470,10 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "fnv", - "futures 0.3.18", + "futures 0.3.19", "hash-db", "log", "parity-scale-codec", @@ -7492,7 +7498,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "hash-db", "kvdb", @@ -7517,10 +7523,10 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "libp2p", "log", @@ -7541,11 +7547,11 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "derive_more", - "futures 0.3.18", + "futures 0.3.19", "log", "parity-scale-codec", "sc-block-builder", @@ -7570,12 +7576,12 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "derive_more", "fork-tree", - "futures 0.3.18", + "futures 0.3.19", "log", "merlin", "num-bigint", @@ -7613,10 +7619,10 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "derive_more", - "futures 0.3.18", + "futures 0.3.19", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -7637,7 +7643,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7650,10 +7656,10 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -7676,7 +7682,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "sc-client-api", "sp-authorship", @@ -7687,7 +7693,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "lazy_static", "libsecp256k1", @@ -7714,7 +7720,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "derive_more", "environmental", @@ -7732,7 +7738,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "log", "parity-scale-codec", @@ -7748,7 +7754,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "cfg-if 1.0.0", "libc", @@ -7766,14 +7772,14 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "derive_more", "dyn-clone", "finality-grandpa", "fork-tree", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -7803,11 +7809,11 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "derive_more", "finality-grandpa", - "futures 0.3.18", + "futures 0.3.19", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -7827,10 +7833,10 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "ansi_term", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "log", "parity-util-mem", @@ -7844,7 +7850,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "derive_more", @@ -7859,7 +7865,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-std", "async-trait", @@ -7871,7 +7877,7 @@ dependencies = [ "either", "fnv", "fork-tree", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "hex", "ip_network", @@ -7879,10 +7885,10 @@ dependencies = [ "linked-hash-map", "linked_hash_set", "log", - "lru 0.7.0", + "lru 0.7.2", "parity-scale-codec", "parking_lot 0.11.2", - "pin-project 1.0.8", + "pin-project 1.0.10", "prost", "prost-build", "rand 0.7.3", @@ -7910,13 +7916,13 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "libp2p", "log", - "lru 0.7.0", + "lru 0.7.2", "sc-network", "sp-runtime", "substrate-prometheus-endpoint", @@ -7926,11 +7932,11 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "bytes 1.1.0", "fnv", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "hex", "hyper", @@ -7954,9 +7960,9 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "libp2p", "log", "sc-utils", @@ -7967,7 +7973,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -7976,9 +7982,9 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "hash-db", "jsonrpc-core", "jsonrpc-pubsub", @@ -8007,9 +8013,9 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -8032,9 +8038,9 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "jsonrpc-core", "jsonrpc-http-server", "jsonrpc-ipc-server", @@ -8049,12 +8055,12 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "directories", "exit-future", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "hash-db", "jsonrpc-core", @@ -8063,7 +8069,7 @@ dependencies = [ "parity-scale-codec", "parity-util-mem", "parking_lot 0.11.2", - "pin-project 1.0.8", + "pin-project 1.0.10", "rand 0.7.3", "sc-block-builder", "sc-chain-spec", @@ -8113,7 +8119,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "log", "parity-scale-codec", @@ -8127,7 +8133,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -8149,14 +8155,14 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "chrono", - "futures 0.3.18", + "futures 0.3.19", "libp2p", "log", "parking_lot 0.11.2", - "pin-project 1.0.8", + "pin-project 1.0.10", "rand 0.7.3", "serde", "serde_json", @@ -8167,7 +8173,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "ansi_term", "atty", @@ -8198,7 +8204,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -8209,9 +8215,9 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "intervalier", "linked-hash-map", "log", @@ -8236,10 +8242,10 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "derive_more", - "futures 0.3.18", + "futures 0.3.19", "log", "serde", "sp-blockchain", @@ -8250,9 +8256,9 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "lazy_static", "prometheus", @@ -8345,9 +8351,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87" +checksum = "d09d3c15d814eda1d6a836f2f2b56a6abc1446c8a34351cb3180d3db92ffe4ce" dependencies = [ "bitflags", "core-foundation", @@ -8358,9 +8364,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9dd14d83160b528b7bfd66439110573efcfbe281b17fc2ca9f39f550d619c7e" +checksum = "e90dd10c41c6bfc633da6e0c659bd25d31e0791e5974ac42970267d59eba87f7" dependencies = [ "core-foundation-sys", "libc", @@ -8410,18 +8416,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.130" +version = "1.0.136" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913" +checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.130" +version = "1.0.136" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b" +checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" dependencies = [ "proc-macro2", "quote", @@ -8430,11 +8436,11 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.72" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0ffa0837f2dfa6fb90868c2b5468cad482e175f7dad97e7421951e663f2b527" +checksum = "d23c1ba4cf0efd44be32017709280b32d1cea5c3f1275c3b6d9e8bc54f758085" dependencies = [ - "itoa", + "itoa 1.0.1", "ryu", "serde", ] @@ -8478,9 +8484,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b69f9a4c9740d74c5baa3fd2e547f9525fa8088a8a958e0ca2409a514e33f5fa" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ "block-buffer 0.9.0", "cfg-if 1.0.0", @@ -8518,9 +8524,9 @@ checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" [[package]] name = "signal-hook" -version = "0.3.10" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c98891d737e271a2954825ef19e46bd16bdb98e2746f2eec4f7a4ef7946efd1" +checksum = "647c97df271007dcea485bb74ffdb57f2e683f1306c854f468a0c244badabf2d" dependencies = [ "libc", "signal-hook-registry", @@ -8537,9 +8543,9 @@ dependencies = [ [[package]] name = "signature" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02658e48d89f2bec991f9a78e69cfa4c316f8d6a6c4ec12fae1aeb263d486788" +checksum = "f054c6c1a6e95179d6f23ed974060dcefb2d9388bb7256900badad682c499de4" [[package]] name = "simba" @@ -8561,8 +8567,8 @@ checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" [[package]] name = "slot-range-helper" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "enumn", "parity-scale-codec", @@ -8582,9 +8588,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309" +checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" [[package]] name = "snap" @@ -8605,7 +8611,7 @@ dependencies = [ "rand_core 0.6.3", "ring", "rustc_version 0.3.3", - "sha2 0.9.8", + "sha2 0.9.9", "subtle", "x25519-dalek", ] @@ -8623,9 +8629,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.2" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516" +checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" dependencies = [ "libc", "winapi 0.3.9", @@ -8640,7 +8646,7 @@ dependencies = [ "base64", "bytes 1.1.0", "flate2", - "futures 0.3.18", + "futures 0.3.19", "httparse", "log", "rand 0.8.4", @@ -8650,7 +8656,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "hash-db", "log", @@ -8667,7 +8673,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "blake2-rfc", "proc-macro-crate 1.1.0", @@ -8679,7 +8685,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "scale-info", @@ -8692,7 +8698,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "integer-sqrt", "num-traits", @@ -8707,7 +8713,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "scale-info", @@ -8720,7 +8726,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "parity-scale-codec", @@ -8732,7 +8738,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "sp-api", @@ -8744,11 +8750,11 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "log", - "lru 0.7.0", + "lru 0.7.2", "parity-scale-codec", "parking_lot 0.11.2", "sp-api", @@ -8762,10 +8768,10 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", - "futures 0.3.18", + "futures 0.3.19", "futures-timer 3.0.2", "log", "parity-scale-codec", @@ -8781,7 +8787,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "parity-scale-codec", @@ -8799,7 +8805,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "merlin", @@ -8822,7 +8828,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "scale-info", @@ -8834,7 +8840,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -8846,7 +8852,7 @@ dependencies = [ [[package]] name = "sp-core" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "base58", "bitflags", @@ -8854,7 +8860,7 @@ dependencies = [ "byteorder", "dyn-clonable", "ed25519-dalek", - "futures 0.3.18", + "futures 0.3.19", "hash-db", "hash256-std-hasher", "hex", @@ -8874,7 +8880,7 @@ dependencies = [ "schnorrkel", "secrecy", "serde", - "sha2 0.9.8", + "sha2 0.9.9", "sp-core-hashing", "sp-debug-derive", "sp-externalities", @@ -8894,11 +8900,11 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "blake2-rfc", "byteorder", - "sha2 0.9.8", + "sha2 0.9.9", "sp-std", "tiny-keccak", "twox-hash", @@ -8907,7 +8913,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "proc-macro2", "quote", @@ -8918,7 +8924,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "kvdb", "parking_lot 0.11.2", @@ -8927,7 +8933,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "proc-macro2", "quote", @@ -8937,7 +8943,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "environmental", "parity-scale-codec", @@ -8948,7 +8954,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "finality-grandpa", "log", @@ -8966,7 +8972,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -8980,9 +8986,9 @@ dependencies = [ [[package]] name = "sp-io" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "hash-db", "libsecp256k1", "log", @@ -9004,7 +9010,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "lazy_static", "sp-core", @@ -9015,11 +9021,11 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "derive_more", - "futures 0.3.18", + "futures 0.3.19", "merlin", "parity-scale-codec", "parking_lot 0.11.2", @@ -9032,7 +9038,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "zstd", ] @@ -9040,7 +9046,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "scale-info", @@ -9055,7 +9061,7 @@ dependencies = [ [[package]] name = "sp-npos-elections-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -9066,7 +9072,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "sp-api", "sp-core", @@ -9076,7 +9082,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "backtrace", "lazy_static", @@ -9086,7 +9092,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "rustc-hash", "serde", @@ -9096,7 +9102,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "either", "hash256-std-hasher", @@ -9118,7 +9124,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9135,7 +9141,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "Inflector", "proc-macro-crate 1.1.0", @@ -9147,7 +9153,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "serde", "serde_json", @@ -9156,7 +9162,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "scale-info", @@ -9170,7 +9176,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "scale-info", @@ -9181,7 +9187,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "hash-db", "log", @@ -9204,12 +9210,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" [[package]] name = "sp-storage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9222,7 +9228,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "log", "sp-core", @@ -9235,7 +9241,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "futures-timer 3.0.2", @@ -9251,7 +9257,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "sp-std", @@ -9263,7 +9269,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "sp-api", "sp-runtime", @@ -9272,7 +9278,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "log", @@ -9288,7 +9294,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "hash-db", "memory-db", @@ -9303,7 +9309,7 @@ dependencies = [ [[package]] name = "sp-version" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9319,7 +9325,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -9330,7 +9336,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9346,9 +9352,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "ss58-registry" -version = "1.8.1" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78abb01d308934b82e34e9cf1f45846d31539246501745b129539176f4f3368d" +checksum = "8319f44e20b42e5c11b88b1ad4130c35fe2974665a007b08b02322070177136a" dependencies = [ "Inflector", "proc-macro2", @@ -9416,9 +9422,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "structopt" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40b9788f4202aa75c240ecc9c15c65185e6a39ccdeb0fd5d008b98825464c87c" +checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" dependencies = [ "clap", "lazy_static", @@ -9468,14 +9474,14 @@ dependencies = [ "hmac 0.11.0", "pbkdf2 0.8.0", "schnorrkel", - "sha2 0.9.8", + "sha2 0.9.9", "zeroize", ] [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "platforms", ] @@ -9483,10 +9489,10 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "frame-system-rpc-runtime-api", - "futures 0.3.18", + "futures 0.3.19", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -9505,7 +9511,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-std", "derive_more", @@ -9519,7 +9525,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "ansi_term", "build-helper", @@ -9539,9 +9545,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.82" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8daf5dd0bb60cbd4137b1b587d2fc0ae729bc07cf01cd70b36a1ed5ade3b9d59" +checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b" dependencies = [ "proc-macro2", "quote", @@ -9574,13 +9580,13 @@ checksum = "d9bffcddbc2458fa3e6058414599e3c838a022abae82e5c67b4f7f80298d5bff" [[package]] name = "tempfile" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" dependencies = [ "cfg-if 1.0.0", + "fastrand", "libc", - "rand 0.8.4", "redox_syscall 0.2.10", "remove_dir_all", "winapi 0.3.9", @@ -9626,9 +9632,9 @@ dependencies = [ [[package]] name = "thread_local" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd" +checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" dependencies = [ "once_cell", ] @@ -9644,9 +9650,9 @@ dependencies = [ [[package]] name = "thrift" -version = "0.13.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c6d965454947cc7266d22716ebfd07b18d84ebaf35eec558586bbb2a8cb6b5b" +checksum = "b82ca8f46f95b3ce96081fe3dd89160fdea970c254bb72925255d1b62aae692e" dependencies = [ "byteorder", "integer-encoding", @@ -9678,7 +9684,7 @@ dependencies = [ "pbkdf2 0.4.0", "rand 0.7.3", "rustc-hash", - "sha2 0.9.8", + "sha2 0.9.9", "thiserror", "unicode-normalization", "wasm-bindgen", @@ -9711,18 +9717,17 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.14.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e992e41e0d2fb9f755b37446f20900f64446ef54874f40a60c78f021ac6144" +checksum = "fbbf1c778ec206785635ce8ad57fe52b3009ae9e0c9f574a728f3049d3e55838" dependencies = [ - "autocfg", "bytes 1.1.0", "libc", "memchr", "mio 0.7.14", "num_cpus", "once_cell", - "pin-project-lite 0.2.7", + "pin-project-lite 0.2.8", "signal-hook-registry", "tokio-macros", "winapi 0.3.9", @@ -9730,9 +9735,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9efc1aba077437943f7515666aa2b882dfabfbfdf89c819ea75a8d6e9eaba5e" +checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7" dependencies = [ "proc-macro2", "quote", @@ -9757,7 +9762,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3" dependencies = [ "futures-core", - "pin-project-lite 0.2.7", + "pin-project-lite 0.2.8", "tokio", ] @@ -9772,7 +9777,7 @@ dependencies = [ "futures-io", "futures-sink", "log", - "pin-project-lite 0.2.7", + "pin-project-lite 0.2.8", "tokio", ] @@ -9798,7 +9803,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" dependencies = [ "cfg-if 1.0.0", - "pin-project-lite 0.2.7", + "pin-project-lite 0.2.8", "tracing-attributes", "tracing-core", ] @@ -9829,7 +9834,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "pin-project 1.0.8", + "pin-project 1.0.10", "tracing", ] @@ -9951,7 +9956,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.13#fcc54a72973d03afe7bf9e3ef2736050b3f33465" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "jsonrpsee", "log", @@ -9980,9 +9985,9 @@ checksum = "5e66dcbec4290c69dd03c57e76c2469ea5c7ce109c6dd4351c13055cf71ea055" [[package]] name = "twox-hash" -version = "1.6.1" +version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f559b464de2e2bdabcac6a210d12e9b5a5973c251e102c44c585c71d51bd78e" +checksum = "4ee73e6e4924fe940354b8d4d98cad5231175d615cd855b758adc658c0aac6a0" dependencies = [ "cfg-if 1.0.0", "rand 0.8.4", @@ -9991,9 +9996,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.14.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b63708a265f51345575b27fe43f9500ad611579e764c79edbc2037b1121959ec" +checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "ucd-trie" @@ -10061,7 +10066,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" dependencies = [ - "generic-array 0.14.4", + "generic-array 0.14.5", "subtle", ] @@ -10148,9 +10153,9 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" [[package]] name = "version_check" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "void" @@ -10199,9 +10204,9 @@ checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" [[package]] name = "wasm-bindgen" -version = "0.2.78" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" +checksum = "25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -10209,9 +10214,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.78" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b" +checksum = "8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca" dependencies = [ "bumpalo", "lazy_static", @@ -10224,9 +10229,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.28" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e8d7523cb1f2a4c96c1317ca690031b714a51cc14e05f712446691f413f5d39" +checksum = "2eb6ec270a31b1d3c7e266b999739109abce8b6c87e4b31fcfcd788b65267395" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -10236,9 +10241,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.78" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9" +checksum = "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -10246,9 +10251,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.78" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" +checksum = "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc" dependencies = [ "proc-macro2", "quote", @@ -10259,9 +10264,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.78" +version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" +checksum = "3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2" [[package]] name = "wasm-gc-api" @@ -10280,7 +10285,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "js-sys", "parking_lot 0.11.2", "pin-utils", @@ -10365,7 +10370,7 @@ dependencies = [ "log", "rsix", "serde", - "sha2 0.9.8", + "sha2 0.9.9", "toml", "winapi 0.3.9", "zstd", @@ -10478,9 +10483,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.55" +version = "0.3.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb" +checksum = "c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb" dependencies = [ "js-sys", "wasm-bindgen", @@ -10516,9 +10521,9 @@ dependencies = [ [[package]] name = "which" -version = "4.2.2" +version = "4.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea187a8ef279bc014ec368c27a920da2024d2a711109bfbe3440585d5cf27ad9" +checksum = "2a5a7e487e921cf220206864a94a89b6c6905bfc19f1057fa26a4cb360e5c1d2" dependencies = [ "either", "lazy_static", @@ -10612,8 +10617,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -10625,8 +10630,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "frame-support", "frame-system", @@ -10645,8 +10650,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.13" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +version = "0.9.15" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -10663,7 +10668,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.13#7d8f00b90cd6d87780123b3e08ca120cfb0c6e50" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "proc-macro2", "quote", @@ -10676,7 +10681,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7d9028f208dd5e63c614be69f115c1b53cacc1111437d4c765185856666c107" dependencies = [ - "futures 0.3.18", + "futures 0.3.19", "log", "nohash-hasher", "parking_lot 0.11.2", @@ -10686,18 +10691,18 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.4.3" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d68d9dcec5f9b43a30d38c49f91dfedfaac384cb8f085faca366c26207dd1619" +checksum = "4062c749be08d90be727e9c5895371c3a0e49b90ba2b9592dc7afda95cc2b719" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.2.2" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65f1a51723ec88c66d5d1fe80c841f17f63587d6691901d66be9bec6c3b51f73" +checksum = "81e8f13fef10b63c06356d65d416b070798ddabcadc10d3ece0c5be9b3c7eddb" dependencies = [ "proc-macro2", "quote", @@ -10707,18 +10712,18 @@ dependencies = [ [[package]] name = "zstd" -version = "0.9.0+zstd.1.5.0" +version = "0.9.2+zstd.1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07749a5dc2cb6b36661290245e350f15ec3bbb304e493db54a1d354480522ccd" +checksum = "2390ea1bf6c038c39674f22d95f0564725fc06034a47129179810b2fc58caa54" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "4.1.1+zstd.1.5.0" +version = "4.1.3+zstd.1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c91c90f2c593b003603e5e0493c837088df4469da25aafff8bce42ba48caf079" +checksum = "e99d81b99fb3c2c2c794e3fe56c305c63d5173a16a46b5850b07c935ffc7db79" dependencies = [ "libc", "zstd-sys", @@ -10726,9 +10731,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "1.6.1+zstd.1.5.0" +version = "1.6.2+zstd.1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "615120c7a2431d16cf1cf979e7fc31ba7a5b5e5707b29c8a99e5dbf8a8392a33" +checksum = "2daf2f248d9ea44454bfcb2516534e8b8ad2fc91bf818a1885495fc42bc8ac9f" dependencies = [ "cc", "libc", diff --git a/node/Cargo.toml b/node/Cargo.toml index ad27c442..c5514c9e 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -13,7 +13,7 @@ build = "build.rs" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } [[bin]] name = "parachain-collator" @@ -37,58 +37,58 @@ jsonrpc-core = "18.0.0" parachain-template-runtime = { path = "../runtime" } # Substrate Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } ## Substrate Client Dependencies -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.13" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.15" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } ## Substrate Primitive Dependencies -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } # Cumulus dependencies -cumulus-client-cli = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13' } -cumulus-client-collator = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13' } -cumulus-client-consensus-aura = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13' } -cumulus-client-consensus-common = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13' } -cumulus-client-network = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13' } -cumulus-client-service = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13' } -cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13' } -cumulus-primitives-parachain-inherent = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13' } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15" } +cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15" } +cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15" } # Polkadot dependencies -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.13" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.13" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.13" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.13" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.15" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.15" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.15" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.15" } diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 534f3682..901642aa 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -15,15 +15,15 @@ targets = ["x86_64-unknown-linux-gnu"] codec = { package = "parity-scale-codec", version = "2.0.0", features = ["derive"], default-features = false } scale-info = { version = "1.0.0", default-features = false, features = ["derive"] } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.13" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.15" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } [dev-dependencies] serde = { version = "1.0.119" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } [features] default = ["std"] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index ca898d39..cbaca8b3 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,7 +12,7 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.13" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } [dependencies] hex-literal = { version = '0.3.1', optional = true } @@ -27,57 +27,57 @@ pallet-template = { path = "../pallets/template", default-features = false } # Substrate Dependencies ## Substrate Primitive Dependencies -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } ## Substrate FRAME Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.13" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.13" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.13" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.15" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.15" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.15" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } ## Substrate Pallet Dependencies -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.13" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } # Cumulus dependencies -cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false } -cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false } -cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false } -cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false } -cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false } -cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false } -cumulus-primitives-timestamp = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false } -cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false } -pallet-collator-selection = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false } -parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false } -cumulus-pallet-session-benchmarking = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.13', default-features = false, version = "3.0.0"} +cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } +cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } +cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } +cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } +cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } +cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } +cumulus-primitives-timestamp = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } +cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } +pallet-collator-selection = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } +parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } +cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15", default-features = false, version = "3.0.0"} # Polkadot Dependencies -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.13" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.13" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.13" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.13" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.13" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.13" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.15" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.15" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.15" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.15" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.15" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.15" } [features] default = [ diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index d7cb4d70..23ebd91b 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -117,7 +117,7 @@ pub type Executive = frame_executive::Executive< Block, frame_system::ChainContext, Runtime, - AllPallets, + AllPalletsWithSystem, >; /// Handles converting a weight scalar to a fee value, based on the scale and granularity of the From 37b014f12017871309fd6c003365ec2dcf14d4e5 Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Thu, 27 Jan 2022 17:41:59 -0700 Subject: [PATCH 45/91] update to polkadot v0.9.15-1 (#91) --- Cargo.lock | 6929 ++++++++++++++++++++++++++--------- node/Cargo.toml | 76 +- pallets/template/Cargo.toml | 12 +- runtime/Cargo.toml | 66 +- 4 files changed, 5348 insertions(+), 1735 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 77138f9c..31b74442 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -430,25 +430,53 @@ name = "beefy-gadget" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "beefy-primitives", + "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "fnv", "futures 0.3.19", "log", "parity-scale-codec", "parking_lot 0.11.2", - "sc-client-api", - "sc-keystore", - "sc-network", - "sc-network-gossip", - "sc-utils", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", - "sp-blockchain", - "sp-core", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-network-gossip 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", + "wasm-timer", +] + +[[package]] +name = "beefy-gadget" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "fnv", + "futures 0.3.19", + "log", + "parity-scale-codec", + "parking_lot 0.11.2", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-network-gossip 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", "wasm-timer", ] @@ -458,8 +486,28 @@ name = "beefy-gadget-rpc" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "beefy-gadget", - "beefy-primitives", + "beefy-gadget 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "futures 0.3.19", + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "jsonrpc-pubsub", + "log", + "parity-scale-codec", + "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "serde", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "beefy-gadget-rpc" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "beefy-gadget 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "futures 0.3.19", "jsonrpc-core", "jsonrpc-core-client", @@ -467,10 +515,10 @@ dependencies = [ "jsonrpc-pubsub", "log", "parity-scale-codec", - "sc-rpc", + "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "serde", - "sp-core", - "sp-runtime", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -478,6 +526,11 @@ name = "beefy-merkle-tree" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +[[package]] +name = "beefy-merkle-tree" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" + [[package]] name = "beefy-primitives" version = "4.0.0-dev" @@ -485,11 +538,25 @@ source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d3 dependencies = [ "parity-scale-codec", "scale-info", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-runtime", - "sp-std", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "beefy-primitives" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -1178,8 +1245,8 @@ name = "cumulus-client-cli" version = "0.1.0" source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ - "sc-cli", - "sc-service", + "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "structopt", ] @@ -1194,15 +1261,15 @@ dependencies = [ "futures 0.3.19", "parity-scale-codec", "parking_lot 0.10.2", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives", - "sc-client-api", - "sp-api", - "sp-consensus", - "sp-core", - "sp-runtime", + "polkadot-node-primitives 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-overseer 0.9.15", + "polkadot-primitives 0.9.15", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "tracing", ] @@ -1216,23 +1283,23 @@ dependencies = [ "cumulus-primitives-core", "futures 0.3.19", "parity-scale-codec", - "polkadot-client", - "sc-client-api", - "sc-consensus", + "polkadot-client 0.9.15", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "sc-consensus-aura", - "sc-consensus-slots", - "sc-telemetry", - "sp-api", - "sp-application-crypto", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-aura", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", + "sc-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "tracing", ] @@ -1245,14 +1312,14 @@ dependencies = [ "dyn-clone", "futures 0.3.19", "parity-scale-codec", - "polkadot-primitives", - "sc-client-api", - "sc-consensus", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-runtime", - "sp-trie", + "polkadot-primitives 0.9.15", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "tracing", ] @@ -1266,16 +1333,16 @@ dependencies = [ "futures-timer 3.0.2", "parity-scale-codec", "parking_lot 0.10.2", - "polkadot-client", - "polkadot-node-primitives", - "polkadot-parachain", - "polkadot-primitives", - "sc-client-api", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-runtime", + "polkadot-client 0.9.15", + "polkadot-node-primitives 0.9.15", + "polkadot-parachain 0.9.15", + "polkadot-primitives 0.9.15", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "tracing", ] @@ -1288,17 +1355,17 @@ dependencies = [ "futures 0.3.19", "futures-timer 3.0.2", "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives", + "polkadot-node-primitives 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-overseer 0.9.15", + "polkadot-primitives 0.9.15", "rand 0.8.4", - "sc-client-api", - "sc-consensus", - "sp-api", - "sp-consensus", - "sp-maybe-compressed-blob", - "sp-runtime", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "tracing", ] @@ -1313,21 +1380,21 @@ dependencies = [ "cumulus-primitives-core", "parity-scale-codec", "parking_lot 0.10.2", - "polkadot-overseer", - "polkadot-primitives", - "polkadot-service", - "sc-chain-spec", - "sc-client-api", - "sc-consensus", - "sc-consensus-babe", - "sc-service", - "sc-telemetry", - "sc-tracing", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-runtime", + "polkadot-overseer 0.9.15", + "polkadot-primitives 0.9.15", + "polkadot-service 0.9.15", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "tracing", ] @@ -1336,17 +1403,17 @@ name = "cumulus-pallet-aura-ext" version = "0.1.0" source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ - "frame-executive", - "frame-support", - "frame-system", - "pallet-aura", + "frame-executive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-aura 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", "scale-info", "serde", - "sp-application-crypto", - "sp-consensus-aura", - "sp-runtime", - "sp-std", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] @@ -1355,16 +1422,16 @@ version = "0.1.0" source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "log", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std", - "xcm", - "xcm-executor", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "xcm 0.9.15", + "xcm-executor 0.9.15", ] [[package]] @@ -1376,24 +1443,24 @@ dependencies = [ "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "environmental", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "log", - "pallet-balances", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", - "polkadot-parachain", + "polkadot-parachain 0.9.15", "scale-info", "serde", - "sp-core", - "sp-externalities", - "sp-inherents", - "sp-io", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-trie", - "sp-version", - "xcm", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "xcm 0.9.15", ] [[package]] @@ -1412,12 +1479,12 @@ name = "cumulus-pallet-session-benchmarking" version = "3.0.0" source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "pallet-session", - "sp-runtime", - "sp-std", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] @@ -1426,15 +1493,15 @@ version = "0.1.0" source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", "scale-info", "serde", - "sp-io", - "sp-runtime", - "sp-std", - "xcm", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "xcm 0.9.15", ] [[package]] @@ -1443,16 +1510,16 @@ version = "0.1.0" source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "log", "parity-scale-codec", "rand_chacha 0.3.1", "scale-info", - "sp-runtime", - "sp-std", - "xcm", - "xcm-executor", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "xcm 0.9.15", + "xcm-executor 0.9.15", ] [[package]] @@ -1460,16 +1527,16 @@ name = "cumulus-primitives-core" version = "0.1.0" source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ - "frame-support", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "impl-trait-for-tuples", "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-parachain", - "polkadot-primitives", - "sp-api", - "sp-runtime", - "sp-std", - "sp-trie", + "polkadot-core-primitives 0.9.15", + "polkadot-parachain 0.9.15", + "polkadot-primitives 0.9.15", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] @@ -1481,16 +1548,16 @@ dependencies = [ "cumulus-primitives-core", "cumulus-test-relay-sproof-builder", "parity-scale-codec", - "polkadot-client", - "sc-client-api", + "polkadot-client 0.9.15", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "scale-info", - "sp-api", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-trie", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "tracing", ] @@ -1500,9 +1567,9 @@ version = "0.1.0" source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", - "sp-inherents", - "sp-std", - "sp-timestamp", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] @@ -1511,15 +1578,15 @@ version = "0.1.0" source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", - "frame-support", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-parachain", - "polkadot-primitives", - "sp-runtime", - "sp-std", - "sp-trie", - "xcm", + "polkadot-core-primitives 0.9.15", + "polkadot-parachain 0.9.15", + "polkadot-primitives 0.9.15", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "xcm 0.9.15", ] [[package]] @@ -1529,10 +1596,10 @@ source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c0 dependencies = [ "cumulus-primitives-core", "parity-scale-codec", - "polkadot-primitives", - "sp-runtime", - "sp-state-machine", - "sp-std", + "polkadot-primitives 0.9.15", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] @@ -1987,6 +2054,14 @@ dependencies = [ "parity-scale-codec", ] +[[package]] +name = "fork-tree" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "parity-scale-codec", +] + [[package]] name = "form_urlencoded" version = "1.0.1" @@ -2002,44 +2077,64 @@ name = "frame-benchmarking" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "linregress", + "log", + "parity-scale-codec", + "paste", + "scale-info", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "frame-benchmarking" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "linregress", "log", "parity-scale-codec", "paste", "scale-info", - "sp-api", - "sp-io", - "sp-runtime", - "sp-runtime-interface", - "sp-std", - "sp-storage", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" dependencies = [ "Inflector", "chrono", - "frame-benchmarking", - "frame-support", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "handlebars", "linked-hash-map", "log", "parity-scale-codec", - "sc-cli", - "sc-client-db", - "sc-executor", - "sc-service", + "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "serde", - "sp-core", - "sp-externalities", - "sp-keystore", - "sp-runtime", - "sp-state-machine", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "structopt", ] @@ -2048,13 +2143,27 @@ name = "frame-election-provider-support" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "parity-scale-codec", + "scale-info", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-npos-elections 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "frame-election-provider-support" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "parity-scale-codec", "scale-info", - "sp-arithmetic", - "sp-npos-elections", - "sp-std", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-npos-elections 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -2062,15 +2171,31 @@ name = "frame-executive" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "parity-scale-codec", + "scale-info", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "frame-executive" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "sp-tracing", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -2092,7 +2217,36 @@ source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d3 dependencies = [ "bitflags", "frame-metadata", - "frame-support-procedural", + "frame-support-procedural 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "impl-trait-for-tuples", + "log", + "once_cell", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "smallvec", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core-hashing-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "tt-call", +] + +[[package]] +name = "frame-support" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "bitflags", + "frame-metadata", + "frame-support-procedural 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "impl-trait-for-tuples", "log", "once_cell", @@ -2101,16 +2255,16 @@ dependencies = [ "scale-info", "serde", "smallvec", - "sp-arithmetic", - "sp-core", - "sp-core-hashing-proc-macro", - "sp-inherents", - "sp-io", - "sp-runtime", - "sp-staking", - "sp-state-machine", - "sp-std", - "sp-tracing", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core-hashing-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "tt-call", ] @@ -2120,7 +2274,19 @@ version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "Inflector", - "frame-support-procedural-tools", + "frame-support-procedural-tools 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "frame-support-procedural" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "Inflector", + "frame-support-procedural-tools 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "proc-macro2", "quote", "syn", @@ -2131,7 +2297,19 @@ name = "frame-support-procedural-tools" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support-procedural-tools-derive", + "frame-support-procedural-tools-derive 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "frame-support-procedural-tools" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support-procedural-tools-derive 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "proc-macro-crate 1.1.0", "proc-macro2", "quote", @@ -2148,36 +2326,63 @@ dependencies = [ "syn", ] +[[package]] +name = "frame-support-procedural-tools-derive" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "frame-system" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "frame-system" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "log", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "sp-version", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "parity-scale-codec", "scale-info", - "sp-core", - "sp-runtime", - "sp-std", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -2186,7 +2391,16 @@ version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", - "sp-api", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "frame-system-rpc-runtime-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "parity-scale-codec", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -2194,10 +2408,21 @@ name = "frame-try-runtime" version = "0.10.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support", - "sp-api", - "sp-runtime", - "sp-std", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "frame-try-runtime" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -4020,6 +4245,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "metered-channel" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "derive_more", + "futures 0.3.19", + "futures-timer 3.0.2", + "thiserror", + "tracing", +] + [[package]] name = "metered-channel" version = "0.9.15" @@ -4458,15 +4695,31 @@ name = "pallet-aura" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support", - "frame-system", - "pallet-timestamp", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "parity-scale-codec", + "scale-info", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-aura" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "parity-scale-codec", "scale-info", - "sp-application-crypto", - "sp-consensus-aura", - "sp-runtime", - "sp-std", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -4474,15 +4727,31 @@ name = "pallet-authority-discovery" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support", - "frame-system", - "pallet-session", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "parity-scale-codec", + "scale-info", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-authority-discovery" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "parity-scale-codec", "scale-info", - "sp-application-crypto", - "sp-authority-discovery", - "sp-runtime", - "sp-std", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -4490,358 +4759,697 @@ name = "pallet-authorship" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-authorship", - "sp-runtime", - "sp-std", + "sp-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] -name = "pallet-babe" +name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", - "pallet-authorship", - "pallet-session", - "pallet-timestamp", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-application-crypto", - "sp-consensus-babe", - "sp-consensus-vrf", - "sp-io", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", + "sp-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] -name = "pallet-bags-list" +name = "pallet-babe" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-election-provider-support", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "log", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", "scale-info", - "sp-runtime", - "sp-std", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-vrf 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] -name = "pallet-balances" +name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "log", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "parity-scale-codec", "scale-info", - "sp-runtime", - "sp-std", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-vrf 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] -name = "pallet-beefy" +name = "pallet-bags-list" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "beefy-primitives", - "frame-support", - "frame-system", - "pallet-session", + "frame-election-provider-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "log", "parity-scale-codec", "scale-info", - "serde", - "sp-runtime", - "sp-std", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] -name = "pallet-beefy-mmr" +name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" dependencies = [ - "beefy-merkle-tree", - "beefy-primitives", - "frame-support", - "frame-system", - "hex", - "libsecp256k1", + "frame-election-provider-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "log", - "pallet-beefy", - "pallet-mmr", - "pallet-mmr-primitives", - "pallet-session", "parity-scale-codec", "scale-info", - "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] -name = "pallet-bounties" +name = "pallet-balances" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "log", - "pallet-treasury", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] -name = "pallet-collator-selection" -version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +name = "pallet-balances" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "log", - "pallet-authorship", - "pallet-session", "parity-scale-codec", - "rand 0.7.3", "scale-info", - "serde", - "sp-runtime", - "sp-staking", - "sp-std", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] -name = "pallet-collective" +name = "pallet-beefy" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", + "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "serde", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] -name = "pallet-democracy" +name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "parity-scale-codec", "scale-info", "serde", - "sp-io", - "sp-runtime", - "sp-std", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] -name = "pallet-election-provider-multi-phase" +name = "pallet-beefy-mmr" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-election-provider-support", - "frame-support", - "frame-system", + "beefy-merkle-tree 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "hex", + "libsecp256k1", "log", + "pallet-beefy 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-mmr 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", "scale-info", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-npos-elections", - "sp-runtime", - "sp-std", - "static_assertions", + "serde", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] -name = "pallet-elections-phragmen" -version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +name = "pallet-beefy-mmr" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" dependencies = [ - "frame-support", - "frame-system", + "beefy-merkle-tree 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "hex", + "libsecp256k1", "log", + "pallet-beefy 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-mmr 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-npos-elections", - "sp-runtime", - "sp-std", + "serde", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] -name = "pallet-grandpa" +name = "pallet-bounties" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "log", - "pallet-authorship", - "pallet-session", + "pallet-treasury 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", "scale-info", - "sp-application-crypto", - "sp-core", - "sp-finality-grandpa", - "sp-io", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] -name = "pallet-identity" +name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" dependencies = [ - "enumflags2", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "log", + "pallet-treasury 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] -name = "pallet-im-online" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +name = "pallet-collator-selection" +version = "3.0.0" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "log", - "pallet-authorship", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", + "rand 0.7.3", "scale-info", - "sp-application-crypto", - "sp-core", - "sp-io", - "sp-runtime", - "sp-staking", - "sp-std", + "serde", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] -name = "pallet-indices" +name = "pallet-collective" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-keyring", - "sp-runtime", - "sp-std", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] -name = "pallet-membership" +name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] -name = "pallet-mmr" +name = "pallet-democracy" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "ckb-merkle-mountain-range", - "frame-benchmarking", - "frame-support", - "frame-system", - "pallet-mmr-primitives", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "serde", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] -name = "pallet-mmr-primitives" +name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" dependencies = [ - "frame-support", - "frame-system", - "log", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "parity-scale-codec", + "scale-info", "serde", - "sp-api", - "sp-core", - "sp-runtime", - "sp-std", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] -name = "pallet-mmr-rpc" -version = "3.0.0" +name = "pallet-election-provider-multi-phase" +version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "jsonrpc-core", - "jsonrpc-core-client", + "frame-election-provider-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "log", + "parity-scale-codec", + "scale-info", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-npos-elections 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "static_assertions", +] + +[[package]] +name = "pallet-election-provider-multi-phase" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-election-provider-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "log", + "parity-scale-codec", + "scale-info", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-npos-elections 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "static_assertions", +] + +[[package]] +name = "pallet-elections-phragmen" +version = "5.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "log", + "parity-scale-codec", + "scale-info", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-npos-elections 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-elections-phragmen" +version = "5.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "log", + "parity-scale-codec", + "scale-info", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-npos-elections 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", +] + +[[package]] +name = "pallet-grandpa" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +dependencies = [ + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "log", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "parity-scale-codec", + "scale-info", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-grandpa" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "log", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "parity-scale-codec", + "scale-info", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", +] + +[[package]] +name = "pallet-identity" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +dependencies = [ + "enumflags2", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "parity-scale-codec", + "scale-info", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-identity" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "enumflags2", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "parity-scale-codec", + "scale-info", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", +] + +[[package]] +name = "pallet-im-online" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "log", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "parity-scale-codec", + "scale-info", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-im-online" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "log", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "parity-scale-codec", + "scale-info", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", +] + +[[package]] +name = "pallet-indices" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "parity-scale-codec", + "scale-info", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keyring 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-indices" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "parity-scale-codec", + "scale-info", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keyring 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", +] + +[[package]] +name = "pallet-membership" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +dependencies = [ + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "log", + "parity-scale-codec", + "scale-info", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-membership" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "log", + "parity-scale-codec", + "scale-info", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", +] + +[[package]] +name = "pallet-mmr" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +dependencies = [ + "ckb-merkle-mountain-range", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "parity-scale-codec", + "scale-info", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-mmr" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "ckb-merkle-mountain-range", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "parity-scale-codec", + "scale-info", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", +] + +[[package]] +name = "pallet-mmr-primitives" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "log", + "parity-scale-codec", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-mmr-primitives" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "log", + "parity-scale-codec", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", +] + +[[package]] +name = "pallet-mmr-rpc" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +dependencies = [ + "jsonrpc-core", + "jsonrpc-core-client", "jsonrpc-derive", - "pallet-mmr-primitives", + "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", "serde", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-runtime", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-mmr-rpc" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "parity-scale-codec", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -4849,13 +5457,27 @@ name = "pallet-multisig" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-multisig" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "parity-scale-codec", + "scale-info", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -4863,13 +5485,27 @@ name = "pallet-nicks" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "parity-scale-codec", + "scale-info", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-nicks" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -4877,16 +5513,33 @@ name = "pallet-offences" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "log", - "pallet-balances", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", "scale-info", "serde", - "sp-runtime", - "sp-staking", - "sp-std", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-offences" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "log", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "parity-scale-codec", + "scale-info", + "serde", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -4894,13 +5547,27 @@ name = "pallet-proxy" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-proxy" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "parity-scale-codec", + "scale-info", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -4908,15 +5575,31 @@ name = "pallet-scheduler" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "log", + "parity-scale-codec", + "scale-info", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-scheduler" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "log", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -4924,20 +5607,41 @@ name = "pallet-session" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "impl-trait-for-tuples", "log", - "pallet-timestamp", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "sp-trie", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-session" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "impl-trait-for-tuples", + "log", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "parity-scale-codec", + "scale-info", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -4945,20 +5649,41 @@ name = "pallet-staking" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-election-provider-support", - "frame-support", - "frame-system", + "frame-election-provider-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "log", - "pallet-authorship", - "pallet-session", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", "scale-info", "serde", - "sp-application-crypto", - "sp-io", - "sp-runtime", - "sp-staking", - "sp-std", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-staking" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-election-provider-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "log", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "parity-scale-codec", + "scale-info", + "serde", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -4972,33 +5697,44 @@ dependencies = [ "syn", ] +[[package]] +name = "pallet-staking-reward-curve" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] name = "pallet-template" version = "0.1.0" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -5006,17 +5742,34 @@ name = "pallet-timestamp" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "log", + "parity-scale-codec", + "scale-info", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-timestamp" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "log", "parity-scale-codec", "scale-info", - "sp-inherents", - "sp-io", - "sp-runtime", - "sp-std", - "sp-timestamp", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -5024,17 +5777,35 @@ name = "pallet-tips" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "log", + "pallet-treasury 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-tips" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "log", - "pallet-treasury", + "pallet-treasury 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -5042,16 +5813,33 @@ name = "pallet-transaction-payment" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", "scale-info", "serde", "smallvec", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-transaction-payment" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "parity-scale-codec", + "scale-info", + "serde", + "smallvec", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -5062,13 +5850,30 @@ dependencies = [ "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", - "pallet-transaction-payment-rpc-runtime-api", + "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-rpc", - "sp-runtime", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-transaction-payment-rpc" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "parity-scale-codec", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -5076,10 +5881,21 @@ name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "pallet-transaction-payment", + "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", - "sp-api", - "sp-runtime", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-transaction-payment-rpc-runtime-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "parity-scale-codec", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -5087,15 +5903,31 @@ name = "pallet-treasury" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "impl-trait-for-tuples", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "parity-scale-codec", + "scale-info", + "serde", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-treasury" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "impl-trait-for-tuples", - "pallet-balances", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "parity-scale-codec", "scale-info", "serde", - "sp-runtime", - "sp-std", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -5103,14 +5935,29 @@ name = "pallet-utility" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "parity-scale-codec", + "scale-info", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-utility" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -5118,13 +5965,45 @@ name = "pallet-vesting" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "pallet-vesting" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "log", "parity-scale-codec", "scale-info", - "sp-runtime", - "sp-std", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", +] + +[[package]] +name = "pallet-xcm" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "xcm 0.9.15-1", + "xcm-executor 0.9.15-1", ] [[package]] @@ -5132,17 +6011,17 @@ name = "pallet-xcm" version = "0.9.15" source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "log", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-runtime", - "sp-std", - "xcm", - "xcm-executor", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "xcm 0.9.15", + "xcm-executor 0.9.15", ] [[package]] @@ -5151,8 +6030,8 @@ version = "0.1.0" source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" dependencies = [ "cumulus-primitives-core", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", "scale-info", "serde", @@ -5171,51 +6050,51 @@ dependencies = [ "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "derive_more", - "frame-benchmarking", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "frame-benchmarking-cli", "hex-literal", "jsonrpc-core", "log", - "pallet-transaction-payment-rpc", + "pallet-transaction-payment-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "parachain-template-runtime", "parity-scale-codec", "polkadot-cli", - "polkadot-parachain", - "polkadot-primitives", - "polkadot-service", - "sc-basic-authorship", - "sc-chain-spec", - "sc-cli", - "sc-client-api", - "sc-consensus", - "sc-executor", - "sc-keystore", - "sc-network", - "sc-rpc", - "sc-rpc-api", - "sc-service", - "sc-telemetry", - "sc-tracing", - "sc-transaction-pool", - "sc-transaction-pool-api", - "serde", - "sp-api", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-aura", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-timestamp", - "sp-transaction-pool", + "polkadot-parachain 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "polkadot-service 0.9.15-1", + "sc-basic-authorship 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "structopt", "substrate-build-script-utils", - "substrate-frame-rpc-system", - "substrate-prometheus-endpoint", + "substrate-frame-rpc-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -5231,48 +6110,48 @@ dependencies = [ "cumulus-primitives-core", "cumulus-primitives-timestamp", "cumulus-primitives-utility", - "frame-benchmarking", - "frame-executive", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-executive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "frame-system-benchmarking", - "frame-system-rpc-runtime-api", + "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "hex-literal", "log", - "pallet-aura", - "pallet-authorship", - "pallet-balances", + "pallet-aura 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "pallet-collator-selection", - "pallet-session", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "pallet-sudo", "pallet-template", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-xcm", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-xcm 0.9.15-1", "parachain-info", "parity-scale-codec", - "polkadot-parachain", - "polkadot-runtime-common", + "polkadot-parachain 0.9.15-1", + "polkadot-runtime-common 0.9.15-1", "scale-info", "serde", "smallvec", - "sp-api", - "sp-block-builder", - "sp-consensus-aura", - "sp-core", - "sp-inherents", - "sp-io", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-std", - "sp-transaction-pool", - "sp-version", - "substrate-wasm-builder", - "xcm", - "xcm-builder", - "xcm-executor", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "substrate-wasm-builder 5.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "xcm 0.9.15-1", + "xcm-builder 0.9.15-1", + "xcm-executor 0.9.15-1", ] [[package]] @@ -5622,17 +6501,44 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" +[[package]] +name = "polkadot-approval-distribution" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "futures 0.3.19", + "polkadot-node-network-protocol 0.9.15-1", + "polkadot-node-primitives 0.9.15-1", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "tracing", +] + [[package]] name = "polkadot-approval-distribution" version = "0.9.15" source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "futures 0.3.19", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", + "polkadot-node-network-protocol 0.9.15", + "polkadot-node-primitives 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-primitives 0.9.15", + "tracing", +] + +[[package]] +name = "polkadot-availability-bitfield-distribution" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "futures 0.3.19", + "polkadot-node-network-protocol 0.9.15-1", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-primitives 0.9.15-1", "tracing", ] @@ -5642,10 +6548,32 @@ version = "0.9.15" source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "futures 0.3.19", - "polkadot-node-network-protocol", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", + "polkadot-node-network-protocol 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-primitives 0.9.15", + "tracing", +] + +[[package]] +name = "polkadot-availability-distribution" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "derive_more", + "futures 0.3.19", + "lru 0.7.2", + "parity-scale-codec", + "polkadot-erasure-coding 0.9.15-1", + "polkadot-node-network-protocol 0.9.15-1", + "polkadot-node-primitives 0.9.15-1", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "rand 0.8.4", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "thiserror", "tracing", ] @@ -5658,15 +6586,35 @@ dependencies = [ "futures 0.3.19", "lru 0.7.2", "parity-scale-codec", - "polkadot-erasure-coding", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", + "polkadot-erasure-coding 0.9.15", + "polkadot-node-network-protocol 0.9.15", + "polkadot-node-primitives 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-primitives 0.9.15", + "rand 0.8.4", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-availability-recovery" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "futures 0.3.19", + "lru 0.7.2", + "parity-scale-codec", + "polkadot-erasure-coding 0.9.15-1", + "polkadot-node-network-protocol 0.9.15-1", + "polkadot-node-primitives 0.9.15-1", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-primitives 0.9.15-1", "rand 0.8.4", - "sp-core", - "sp-keystore", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", "tracing", ] @@ -5679,66 +6627,117 @@ dependencies = [ "futures 0.3.19", "lru 0.7.2", "parity-scale-codec", - "polkadot-erasure-coding", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", + "polkadot-erasure-coding 0.9.15", + "polkadot-node-network-protocol 0.9.15", + "polkadot-node-primitives 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-primitives 0.9.15", "rand 0.8.4", - "sc-network", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "thiserror", "tracing", ] [[package]] name = "polkadot-cli" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" dependencies = [ "frame-benchmarking-cli", "futures 0.3.19", "log", - "polkadot-node-core-pvf", - "polkadot-service", - "sc-cli", - "sc-service", - "sp-core", - "sp-trie", + "polkadot-node-core-pvf 0.9.15-1", + "polkadot-service 0.9.15-1", + "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "structopt", "substrate-build-script-utils", "thiserror", "try-runtime-cli", ] +[[package]] +name = "polkadot-client" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "polkadot-primitives 0.9.15-1", + "polkadot-runtime 0.9.15-1", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", +] + [[package]] name = "polkadot-client" version = "0.9.15" source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ - "beefy-primitives", - "frame-benchmarking", - "frame-system-rpc-runtime-api", - "pallet-mmr-primitives", - "pallet-transaction-payment-rpc-runtime-api", - "polkadot-primitives", - "polkadot-runtime", - "sc-client-api", - "sc-consensus", - "sc-executor", - "sc-service", - "sp-api", - "sp-authority-discovery", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-finality-grandpa", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-storage", - "sp-transaction-pool", + "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "polkadot-primitives 0.9.15", + "polkadot-runtime 0.9.15", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "polkadot-collator-protocol" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "always-assert", + "derive_more", + "futures 0.3.19", + "futures-timer 3.0.2", + "polkadot-node-network-protocol 0.9.15-1", + "polkadot-node-primitives 0.9.15-1", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "thiserror", + "tracing", ] [[package]] @@ -5750,18 +6749,31 @@ dependencies = [ "derive_more", "futures 0.3.19", "futures-timer 3.0.2", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sp-core", - "sp-keystore", - "sp-runtime", + "polkadot-node-network-protocol 0.9.15", + "polkadot-node-primitives 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-primitives 0.9.15", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "thiserror", "tracing", ] +[[package]] +name = "polkadot-core-primitives" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "parity-scale-codec", + "parity-util-mem", + "scale-info", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", +] + [[package]] name = "polkadot-core-primitives" version = "0.9.15" @@ -5770,9 +6782,31 @@ dependencies = [ "parity-scale-codec", "parity-util-mem", "scale-info", - "sp-core", - "sp-runtime", - "sp-std", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "polkadot-dispute-distribution" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "derive_more", + "futures 0.3.19", + "lru 0.7.2", + "parity-scale-codec", + "polkadot-erasure-coding 0.9.15-1", + "polkadot-node-network-protocol 0.9.15-1", + "polkadot-node-primitives 0.9.15-1", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "thiserror", + "tracing", ] [[package]] @@ -5784,33 +6818,67 @@ dependencies = [ "futures 0.3.19", "lru 0.7.2", "parity-scale-codec", - "polkadot-erasure-coding", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sc-network", - "sp-application-crypto", - "sp-keystore", + "polkadot-erasure-coding 0.9.15", + "polkadot-node-network-protocol 0.9.15", + "polkadot-node-primitives 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-primitives 0.9.15", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "thiserror", "tracing", ] +[[package]] +name = "polkadot-erasure-coding" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "parity-scale-codec", + "polkadot-node-primitives 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "reed-solomon-novelpoly", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "thiserror", +] + [[package]] name = "polkadot-erasure-coding" version = "0.9.15" source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-primitives", + "polkadot-node-primitives 0.9.15", + "polkadot-primitives 0.9.15", "reed-solomon-novelpoly", - "sp-core", - "sp-trie", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "thiserror", ] +[[package]] +name = "polkadot-gossip-support" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "futures 0.3.19", + "futures-timer 3.0.2", + "polkadot-node-network-protocol 0.9.15-1", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "rand 0.8.4", + "rand_chacha 0.3.1", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "tracing", +] + [[package]] name = "polkadot-gossip-support" version = "0.9.15" @@ -5818,16 +6886,35 @@ source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94 dependencies = [ "futures 0.3.19", "futures-timer 3.0.2", - "polkadot-node-network-protocol", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", + "polkadot-node-network-protocol 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-primitives 0.9.15", "rand 0.8.4", "rand_chacha 0.3.1", - "sc-network", - "sp-application-crypto", - "sp-core", - "sp-keystore", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "tracing", +] + +[[package]] +name = "polkadot-network-bridge" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "async-trait", + "futures 0.3.19", + "parity-scale-codec", + "parking_lot 0.11.2", + "polkadot-node-network-protocol 0.9.15-1", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-overseer 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "tracing", ] @@ -5840,13 +6927,31 @@ dependencies = [ "futures 0.3.19", "parity-scale-codec", "parking_lot 0.11.2", - "polkadot-node-network-protocol", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives", - "sc-network", - "sp-consensus", + "polkadot-node-network-protocol 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-overseer 0.9.15", + "polkadot-primitives 0.9.15", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "tracing", +] + +[[package]] +name = "polkadot-node-collation-generation" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "futures 0.3.19", + "parity-scale-codec", + "polkadot-erasure-coding 0.9.15-1", + "polkadot-node-primitives 0.9.15-1", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "thiserror", "tracing", ] @@ -5857,17 +6962,45 @@ source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94 dependencies = [ "futures 0.3.19", "parity-scale-codec", - "polkadot-erasure-coding", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sp-core", - "sp-maybe-compressed-blob", + "polkadot-erasure-coding 0.9.15", + "polkadot-node-primitives 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-primitives 0.9.15", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "thiserror", "tracing", ] +[[package]] +name = "polkadot-node-core-approval-voting" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "bitvec", + "derive_more", + "futures 0.3.19", + "futures-timer 3.0.2", + "kvdb", + "lru 0.7.2", + "merlin", + "parity-scale-codec", + "polkadot-node-jaeger 0.9.15-1", + "polkadot-node-primitives 0.9.15-1", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-overseer 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "schnorrkel", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "tracing", +] + [[package]] name = "polkadot-node-core-approval-voting" version = "0.9.15" @@ -5881,18 +7014,38 @@ dependencies = [ "lru 0.7.2", "merlin", "parity-scale-codec", - "polkadot-node-jaeger", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives", - "sc-keystore", + "polkadot-node-jaeger 0.9.15", + "polkadot-node-primitives 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-overseer 0.9.15", + "polkadot-primitives 0.9.15", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "schnorrkel", - "sp-application-crypto", - "sp-consensus", - "sp-consensus-slots", - "sp-runtime", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "tracing", +] + +[[package]] +name = "polkadot-node-core-av-store" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "bitvec", + "futures 0.3.19", + "futures-timer 3.0.2", + "kvdb", + "parity-scale-codec", + "polkadot-erasure-coding 0.9.15-1", + "polkadot-node-primitives 0.9.15-1", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-overseer 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "thiserror", "tracing", ] @@ -5906,12 +7059,30 @@ dependencies = [ "futures-timer 3.0.2", "kvdb", "parity-scale-codec", - "polkadot-erasure-coding", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives", + "polkadot-erasure-coding 0.9.15", + "polkadot-node-primitives 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-overseer 0.9.15", + "polkadot-primitives 0.9.15", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-node-core-backing" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "bitvec", + "futures 0.3.19", + "polkadot-erasure-coding 0.9.15-1", + "polkadot-node-primitives 0.9.15-1", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "polkadot-statement-table 0.9.15-1", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", "tracing", ] @@ -5923,15 +7094,30 @@ source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94 dependencies = [ "bitvec", "futures 0.3.19", - "polkadot-erasure-coding", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "polkadot-statement-table", - "sp-keystore", + "polkadot-erasure-coding 0.9.15", + "polkadot-node-primitives 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-primitives 0.9.15", + "polkadot-statement-table 0.9.15", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-node-core-bitfield-signing" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "futures 0.3.19", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", "tracing", + "wasm-timer", ] [[package]] @@ -5940,15 +7126,33 @@ version = "0.9.15" source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "futures 0.3.19", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sp-keystore", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-primitives 0.9.15", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "thiserror", "tracing", "wasm-timer", ] +[[package]] +name = "polkadot-node-core-candidate-validation" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "async-trait", + "futures 0.3.19", + "parity-scale-codec", + "polkadot-node-core-pvf 0.9.15-1", + "polkadot-node-primitives 0.9.15-1", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-parachain 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "tracing", +] + [[package]] name = "polkadot-node-core-candidate-validation" version = "0.9.15" @@ -5957,13 +7161,28 @@ dependencies = [ "async-trait", "futures 0.3.19", "parity-scale-codec", - "polkadot-node-core-pvf", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-parachain", - "polkadot-primitives", - "sp-maybe-compressed-blob", + "polkadot-node-core-pvf 0.9.15", + "polkadot-node-primitives 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-parachain 0.9.15", + "polkadot-primitives 0.9.15", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "tracing", +] + +[[package]] +name = "polkadot-node-core-chain-api" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "futures 0.3.19", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "tracing", ] @@ -5973,12 +7192,29 @@ version = "0.9.15" source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "futures 0.3.19", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sc-client-api", - "sc-consensus-babe", - "sp-blockchain", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-primitives 0.9.15", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "tracing", +] + +[[package]] +name = "polkadot-node-core-chain-selection" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "futures 0.3.19", + "futures-timer 3.0.2", + "kvdb", + "parity-scale-codec", + "polkadot-node-primitives 0.9.15-1", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "thiserror", "tracing", ] @@ -5991,10 +7227,29 @@ dependencies = [ "futures-timer 3.0.2", "kvdb", "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", + "polkadot-node-primitives 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-primitives 0.9.15", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-node-core-dispute-coordinator" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "bitvec", + "derive_more", + "futures 0.3.19", + "kvdb", + "parity-scale-codec", + "polkadot-node-primitives 0.9.15-1", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", "tracing", ] @@ -6009,11 +7264,11 @@ dependencies = [ "futures 0.3.19", "kvdb", "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sc-keystore", + "polkadot-node-primitives 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-primitives 0.9.15", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "thiserror", "tracing", ] @@ -6024,9 +7279,39 @@ version = "0.9.14" source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "futures 0.3.19", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-primitives", + "polkadot-node-primitives 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-primitives 0.9.15", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-node-core-dispute-participation" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "futures 0.3.19", + "polkadot-node-primitives 0.9.15-1", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-node-core-parachains-inherent" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "async-trait", + "futures 0.3.19", + "futures-timer 3.0.2", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", "tracing", ] @@ -6039,11 +7324,26 @@ dependencies = [ "async-trait", "futures 0.3.19", "futures-timer 3.0.2", - "polkadot-node-subsystem", - "polkadot-primitives", - "sp-blockchain", - "sp-inherents", - "sp-runtime", + "polkadot-node-subsystem 0.9.15", + "polkadot-primitives 0.9.15", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-node-core-provisioner" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "bitvec", + "futures 0.3.19", + "futures-timer 3.0.2", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-primitives 0.9.15-1", "thiserror", "tracing", ] @@ -6056,13 +7356,44 @@ dependencies = [ "bitvec", "futures 0.3.19", "futures-timer 3.0.2", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-primitives 0.9.15", "thiserror", "tracing", ] +[[package]] +name = "polkadot-node-core-pvf" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "always-assert", + "assert_matches", + "async-process", + "async-std", + "futures 0.3.19", + "futures-timer 3.0.2", + "libc", + "parity-scale-codec", + "pin-project 1.0.10", + "polkadot-core-primitives 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-parachain 0.9.15-1", + "rand 0.8.4", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-executor-wasmtime 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "slotmap", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "tracing", +] + [[package]] name = "polkadot-node-core-pvf" version = "0.9.15" @@ -6077,20 +7408,38 @@ dependencies = [ "libc", "parity-scale-codec", "pin-project 1.0.10", - "polkadot-core-primitives", - "polkadot-node-subsystem-util", - "polkadot-parachain", + "polkadot-core-primitives 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-parachain 0.9.15", "rand 0.8.4", - "sc-executor", - "sc-executor-common", - "sc-executor-wasmtime", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-executor-wasmtime 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "slotmap", - "sp-core", - "sp-externalities", - "sp-io", - "sp-maybe-compressed-blob", - "sp-tracing", - "sp-wasm-interface", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "tracing", +] + +[[package]] +name = "polkadot-node-core-runtime-api" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "futures 0.3.19", + "memory-lru", + "parity-util-mem", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "tracing", ] @@ -6102,16 +7451,34 @@ dependencies = [ "futures 0.3.19", "memory-lru", "parity-util-mem", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sp-api", - "sp-authority-discovery", - "sp-consensus-babe", - "sp-core", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-primitives 0.9.15", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "tracing", ] +[[package]] +name = "polkadot-node-jaeger" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "async-std", + "lazy_static", + "log", + "mick-jaeger", + "parity-scale-codec", + "parking_lot 0.11.2", + "polkadot-node-primitives 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "thiserror", +] + [[package]] name = "polkadot-node-jaeger" version = "0.9.15" @@ -6123,13 +7490,24 @@ dependencies = [ "mick-jaeger", "parity-scale-codec", "parking_lot 0.11.2", - "polkadot-node-primitives", - "polkadot-primitives", - "sc-network", - "sp-core", + "polkadot-node-primitives 0.9.15", + "polkadot-primitives 0.9.15", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "thiserror", ] +[[package]] +name = "polkadot-node-metrics" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "futures 0.3.19", + "futures-timer 3.0.2", + "metered-channel 0.9.15-1", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", +] + [[package]] name = "polkadot-node-metrics" version = "0.9.15" @@ -6137,8 +7515,26 @@ source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94 dependencies = [ "futures 0.3.19", "futures-timer 3.0.2", - "metered-channel", - "substrate-prometheus-endpoint", + "metered-channel 0.9.15", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "polkadot-node-network-protocol" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "async-trait", + "derive_more", + "futures 0.3.19", + "parity-scale-codec", + "polkadot-node-jaeger 0.9.15-1", + "polkadot-node-primitives 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "sc-authority-discovery 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "strum", + "thiserror", ] [[package]] @@ -6150,15 +7546,37 @@ dependencies = [ "derive_more", "futures 0.3.19", "parity-scale-codec", - "polkadot-node-jaeger", - "polkadot-node-primitives", - "polkadot-primitives", - "sc-authority-discovery", - "sc-network", + "polkadot-node-jaeger 0.9.15", + "polkadot-node-primitives 0.9.15", + "polkadot-primitives 0.9.15", + "sc-authority-discovery 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "strum", "thiserror", ] +[[package]] +name = "polkadot-node-primitives" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "bounded-vec", + "futures 0.3.19", + "parity-scale-codec", + "polkadot-parachain 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "schnorrkel", + "serde", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-vrf 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "thiserror", + "zstd", +] + [[package]] name = "polkadot-node-primitives" version = "0.9.15" @@ -6167,28 +7585,57 @@ dependencies = [ "bounded-vec", "futures 0.3.19", "parity-scale-codec", - "polkadot-parachain", - "polkadot-primitives", + "polkadot-parachain 0.9.15", + "polkadot-primitives 0.9.15", "schnorrkel", "serde", - "sp-application-crypto", - "sp-consensus-babe", - "sp-consensus-vrf", - "sp-core", - "sp-keystore", - "sp-maybe-compressed-blob", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-vrf 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "thiserror", "zstd", ] +[[package]] +name = "polkadot-node-subsystem" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "polkadot-node-jaeger 0.9.15-1", + "polkadot-node-subsystem-types 0.9.15-1", + "polkadot-overseer 0.9.15-1", +] + [[package]] name = "polkadot-node-subsystem" version = "0.9.15" source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ - "polkadot-node-jaeger", - "polkadot-node-subsystem-types", - "polkadot-overseer", + "polkadot-node-jaeger 0.9.15", + "polkadot-node-subsystem-types 0.9.15", + "polkadot-overseer 0.9.15", +] + +[[package]] +name = "polkadot-node-subsystem-types" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "derive_more", + "futures 0.3.19", + "polkadot-node-jaeger 0.9.15-1", + "polkadot-node-network-protocol 0.9.15-1", + "polkadot-node-primitives 0.9.15-1", + "polkadot-overseer-gen 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "polkadot-statement-table 0.9.15-1", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "smallvec", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "thiserror", ] [[package]] @@ -6198,16 +7645,43 @@ source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94 dependencies = [ "derive_more", "futures 0.3.19", - "polkadot-node-jaeger", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-overseer-gen", - "polkadot-primitives", - "polkadot-statement-table", - "sc-network", + "polkadot-node-jaeger 0.9.15", + "polkadot-node-network-protocol 0.9.15", + "polkadot-node-primitives 0.9.15", + "polkadot-overseer-gen 0.9.15", + "polkadot-primitives 0.9.15", + "polkadot-statement-table 0.9.15", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "smallvec", - "substrate-prometheus-endpoint", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", +] + +[[package]] +name = "polkadot-node-subsystem-util" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "async-trait", + "derive_more", + "futures 0.3.19", + "itertools", + "lru 0.7.2", + "metered-channel 0.9.15-1", + "parity-scale-codec", + "pin-project 1.0.10", + "polkadot-node-jaeger 0.9.15-1", + "polkadot-node-metrics 0.9.15-1", + "polkadot-node-network-protocol 0.9.15-1", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-overseer 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "rand 0.8.4", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", + "tracing", ] [[package]] @@ -6220,23 +7694,44 @@ dependencies = [ "futures 0.3.19", "itertools", "lru 0.7.2", - "metered-channel", + "metered-channel 0.9.15", "parity-scale-codec", "pin-project 1.0.10", - "polkadot-node-jaeger", - "polkadot-node-metrics", - "polkadot-node-network-protocol", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives", + "polkadot-node-jaeger 0.9.15", + "polkadot-node-metrics 0.9.15", + "polkadot-node-network-protocol 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-overseer 0.9.15", + "polkadot-primitives 0.9.15", "rand 0.8.4", - "sp-application-crypto", - "sp-core", - "sp-keystore", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "thiserror", "tracing", ] +[[package]] +name = "polkadot-overseer" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "futures 0.3.19", + "futures-timer 3.0.2", + "lru 0.7.2", + "parity-util-mem", + "parking_lot 0.11.2", + "polkadot-node-metrics 0.9.15-1", + "polkadot-node-network-protocol 0.9.15-1", + "polkadot-node-primitives 0.9.15-1", + "polkadot-node-subsystem-types 0.9.15-1", + "polkadot-overseer-gen 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "tracing", +] + [[package]] name = "polkadot-overseer" version = "0.9.15" @@ -6244,17 +7739,34 @@ source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94 dependencies = [ "futures 0.3.19", "futures-timer 3.0.2", - "lru 0.7.2", - "parity-util-mem", - "parking_lot 0.11.2", - "polkadot-node-metrics", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem-types", - "polkadot-overseer-gen", - "polkadot-primitives", - "sc-client-api", - "sp-api", + "lru 0.7.2", + "parity-util-mem", + "parking_lot 0.11.2", + "polkadot-node-metrics 0.9.15", + "polkadot-node-network-protocol 0.9.15", + "polkadot-node-primitives 0.9.15", + "polkadot-node-subsystem-types 0.9.15", + "polkadot-overseer-gen 0.9.15", + "polkadot-primitives 0.9.15", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "tracing", +] + +[[package]] +name = "polkadot-overseer-gen" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "async-trait", + "futures 0.3.19", + "futures-timer 3.0.2", + "metered-channel 0.9.15-1", + "pin-project 1.0.10", + "polkadot-node-network-protocol 0.9.15-1", + "polkadot-node-primitives 0.9.15-1", + "polkadot-overseer-gen-proc-macro 0.9.15-1", + "thiserror", "tracing", ] @@ -6266,15 +7778,26 @@ dependencies = [ "async-trait", "futures 0.3.19", "futures-timer 3.0.2", - "metered-channel", + "metered-channel 0.9.15", "pin-project 1.0.10", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-overseer-gen-proc-macro", + "polkadot-node-network-protocol 0.9.15", + "polkadot-node-primitives 0.9.15", + "polkadot-overseer-gen-proc-macro 0.9.15", "thiserror", "tracing", ] +[[package]] +name = "polkadot-overseer-gen-proc-macro" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "polkadot-overseer-gen-proc-macro" version = "0.9.15" @@ -6286,21 +7809,68 @@ dependencies = [ "syn", ] +[[package]] +name = "polkadot-parachain" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "derive_more", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "parity-scale-codec", + "parity-util-mem", + "polkadot-core-primitives 0.9.15-1", + "scale-info", + "serde", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", +] + [[package]] name = "polkadot-parachain" version = "0.9.15" source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "derive_more", - "frame-support", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "parity-scale-codec", + "parity-util-mem", + "polkadot-core-primitives 0.9.15", + "scale-info", + "serde", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "polkadot-primitives" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "bitvec", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "hex-literal", "parity-scale-codec", "parity-util-mem", - "polkadot-core-primitives", + "polkadot-core-primitives 0.9.15-1", + "polkadot-parachain 0.9.15-1", "scale-info", "serde", - "sp-core", - "sp-runtime", - "sp-std", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -6309,28 +7879,59 @@ version = "0.9.15" source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "bitvec", - "frame-system", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "hex-literal", "parity-scale-codec", "parity-util-mem", - "polkadot-core-primitives", - "polkadot-parachain", + "polkadot-core-primitives 0.9.15", + "polkadot-parachain 0.9.15", "scale-info", "serde", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", - "sp-authority-discovery", - "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-runtime", - "sp-staking", - "sp-std", - "sp-trie", - "sp-version", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "polkadot-rpc" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "beefy-gadget 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "beefy-gadget-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "jsonrpc-core", + "pallet-mmr-rpc 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-transaction-payment-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "polkadot-primitives 0.9.15-1", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus-babe-rpc 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus-epochs 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-finality-grandpa 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-finality-grandpa-rpc 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-sync-state-rpc 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "substrate-frame-rpc-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -6338,30 +7939,107 @@ name = "polkadot-rpc" version = "0.9.15" source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ - "beefy-gadget", - "beefy-gadget-rpc", + "beefy-gadget 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "beefy-gadget-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "jsonrpc-core", - "pallet-mmr-rpc", - "pallet-transaction-payment-rpc", - "polkadot-primitives", - "sc-chain-spec", - "sc-client-api", - "sc-consensus-babe", - "sc-consensus-babe-rpc", - "sc-consensus-epochs", - "sc-finality-grandpa", - "sc-finality-grandpa-rpc", - "sc-rpc", - "sc-sync-state-rpc", - "sc-transaction-pool-api", - "sp-api", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-keystore", - "sp-runtime", - "substrate-frame-rpc-system", + "pallet-mmr-rpc 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-transaction-payment-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "polkadot-primitives 0.9.15", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus-babe-rpc 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus-epochs 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-finality-grandpa 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-finality-grandpa-rpc 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-sync-state-rpc 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "substrate-frame-rpc-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "polkadot-runtime" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "bitvec", + "frame-election-provider-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-executive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-try-runtime 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "log", + "pallet-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-babe 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-bags-list 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-bounties 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-collective 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-democracy 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-election-provider-multi-phase 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-elections-phragmen 5.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-identity 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-im-online 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-indices 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-membership 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-multisig 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-nicks 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-offences 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-proxy 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-scheduler 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-staking-reward-curve 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-tips 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-treasury 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-utility 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-vesting 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-xcm 0.9.15-1", + "parity-scale-codec", + "polkadot-primitives 0.9.15-1", + "polkadot-runtime-common 0.9.15-1", + "polkadot-runtime-parachains 0.9.15-1", + "rustc-hex", + "scale-info", + "serde", + "serde_derive", + "smallvec", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-npos-elections 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "static_assertions", + "substrate-wasm-builder 5.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "xcm 0.9.15-1", + "xcm-builder 0.9.15-1", + "xcm-executor 0.9.15-1", ] [[package]] @@ -6369,76 +8047,121 @@ name = "polkadot-runtime" version = "0.9.15" source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ - "beefy-primitives", + "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "bitvec", - "frame-election-provider-support", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "log", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-bags-list", - "pallet-balances", - "pallet-bounties", - "pallet-collective", - "pallet-democracy", - "pallet-election-provider-multi-phase", - "pallet-elections-phragmen", - "pallet-grandpa", - "pallet-identity", - "pallet-im-online", - "pallet-indices", - "pallet-membership", - "pallet-mmr-primitives", - "pallet-multisig", - "pallet-nicks", - "pallet-offences", - "pallet-proxy", - "pallet-scheduler", - "pallet-session", - "pallet-staking", - "pallet-staking-reward-curve", - "pallet-timestamp", - "pallet-tips", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-treasury", - "pallet-utility", - "pallet-vesting", - "pallet-xcm", - "parity-scale-codec", - "polkadot-primitives", - "polkadot-runtime-common", - "polkadot-runtime-parachains", + "frame-election-provider-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-executive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-try-runtime 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "log", + "pallet-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-babe 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-bags-list 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-bounties 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-collective 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-democracy 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-election-provider-multi-phase 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-elections-phragmen 5.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-identity 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-im-online 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-indices 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-membership 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-multisig 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-nicks 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-offences 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-proxy 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-scheduler 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-staking-reward-curve 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-tips 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-treasury 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-utility 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-vesting 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-xcm 0.9.15", + "parity-scale-codec", + "polkadot-primitives 0.9.15", + "polkadot-runtime-common 0.9.15", + "polkadot-runtime-parachains 0.9.15", "rustc-hex", "scale-info", "serde", "serde_derive", "smallvec", - "sp-api", - "sp-authority-discovery", - "sp-block-builder", - "sp-consensus-babe", - "sp-core", - "sp-inherents", - "sp-io", - "sp-npos-elections", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "sp-transaction-pool", - "sp-version", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-npos-elections 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "static_assertions", + "substrate-wasm-builder 5.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "xcm 0.9.15", + "xcm-builder 0.9.15", + "xcm-executor 0.9.15", +] + +[[package]] +name = "polkadot-runtime-common" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "bitvec", + "frame-election-provider-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "impl-trait-for-tuples", + "libsecp256k1", + "log", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-bags-list 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-beefy-mmr 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-election-provider-multi-phase 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-treasury 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-vesting 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "parity-scale-codec", + "polkadot-primitives 0.9.15-1", + "polkadot-runtime-parachains 0.9.15-1", + "rustc-hex", + "scale-info", + "serde", + "serde_derive", + "slot-range-helper 0.9.15-1", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-npos-elections 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "static_assertions", - "substrate-wasm-builder", - "xcm", - "xcm-builder", - "xcm-executor", + "xcm 0.9.15-1", ] [[package]] @@ -6446,44 +8169,83 @@ name = "polkadot-runtime-common" version = "0.9.15" source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ - "beefy-primitives", + "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "bitvec", - "frame-election-provider-support", - "frame-support", - "frame-system", + "frame-election-provider-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "impl-trait-for-tuples", "libsecp256k1", "log", - "pallet-authorship", - "pallet-bags-list", - "pallet-balances", - "pallet-beefy-mmr", - "pallet-election-provider-multi-phase", - "pallet-session", - "pallet-staking", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-treasury", - "pallet-vesting", - "parity-scale-codec", - "polkadot-primitives", - "polkadot-runtime-parachains", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-bags-list 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-beefy-mmr 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-election-provider-multi-phase 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-treasury 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-vesting 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "parity-scale-codec", + "polkadot-primitives 0.9.15", + "polkadot-runtime-parachains 0.9.15", "rustc-hex", "scale-info", "serde", "serde_derive", - "slot-range-helper", - "sp-api", - "sp-core", - "sp-inherents", - "sp-io", - "sp-npos-elections", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", + "slot-range-helper 0.9.15", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-npos-elections 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "static_assertions", - "xcm", + "xcm 0.9.15", +] + +[[package]] +name = "polkadot-runtime-parachains" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "bitflags", + "bitvec", + "derive_more", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "log", + "pallet-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-babe 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-vesting 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "parity-scale-codec", + "polkadot-primitives 0.9.15-1", + "rand 0.8.4", + "rand_chacha 0.3.1", + "rustc-hex", + "scale-info", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "xcm 0.9.15-1", + "xcm-executor 0.9.15-1", ] [[package]] @@ -6494,35 +8256,131 @@ dependencies = [ "bitflags", "bitvec", "derive_more", - "frame-support", - "frame-system", - "log", - "pallet-authority-discovery", - "pallet-authorship", - "pallet-babe", - "pallet-balances", - "pallet-session", - "pallet-staking", - "pallet-timestamp", - "pallet-vesting", - "parity-scale-codec", - "polkadot-primitives", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "log", + "pallet-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-babe 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-vesting 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "parity-scale-codec", + "polkadot-primitives 0.9.15", "rand 0.8.4", "rand_chacha 0.3.1", "rustc-hex", "scale-info", "serde", - "sp-api", - "sp-core", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "xcm", - "xcm-executor", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "xcm 0.9.15", + "xcm-executor 0.9.15", +] + +[[package]] +name = "polkadot-service" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "async-trait", + "beefy-gadget 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "futures 0.3.19", + "hex-literal", + "kvdb", + "kvdb-rocksdb", + "lru 0.7.2", + "pallet-babe 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-im-online 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "polkadot-approval-distribution 0.9.15-1", + "polkadot-availability-bitfield-distribution 0.9.15-1", + "polkadot-availability-distribution 0.9.15-1", + "polkadot-availability-recovery 0.9.15-1", + "polkadot-client 0.9.15-1", + "polkadot-collator-protocol 0.9.15-1", + "polkadot-dispute-distribution 0.9.15-1", + "polkadot-gossip-support 0.9.15-1", + "polkadot-network-bridge 0.9.15-1", + "polkadot-node-collation-generation 0.9.15-1", + "polkadot-node-core-approval-voting 0.9.15-1", + "polkadot-node-core-av-store 0.9.15-1", + "polkadot-node-core-backing 0.9.15-1", + "polkadot-node-core-bitfield-signing 0.9.15-1", + "polkadot-node-core-candidate-validation 0.9.15-1", + "polkadot-node-core-chain-api 0.9.15-1", + "polkadot-node-core-chain-selection 0.9.15-1", + "polkadot-node-core-dispute-coordinator 0.9.15-1", + "polkadot-node-core-dispute-participation 0.9.15-1", + "polkadot-node-core-parachains-inherent 0.9.15-1", + "polkadot-node-core-provisioner 0.9.15-1", + "polkadot-node-core-runtime-api 0.9.15-1", + "polkadot-node-network-protocol 0.9.15-1", + "polkadot-node-primitives 0.9.15-1", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-overseer 0.9.15-1", + "polkadot-parachain 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "polkadot-rpc 0.9.15-1", + "polkadot-runtime 0.9.15-1", + "polkadot-runtime-parachains 0.9.15-1", + "polkadot-statement-distribution 0.9.15-1", + "sc-authority-discovery 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-basic-authorship 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus-uncles 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-finality-grandpa 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-sync-state-rpc 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "thiserror", + "tracing", ] [[package]] @@ -6531,92 +8389,113 @@ version = "0.9.15" source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "async-trait", - "beefy-gadget", - "beefy-primitives", - "frame-system-rpc-runtime-api", + "beefy-gadget 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "futures 0.3.19", "hex-literal", "kvdb", "kvdb-rocksdb", "lru 0.7.2", - "pallet-babe", - "pallet-im-online", - "pallet-mmr-primitives", - "pallet-staking", - "pallet-transaction-payment-rpc-runtime-api", - "polkadot-approval-distribution", - "polkadot-availability-bitfield-distribution", - "polkadot-availability-distribution", - "polkadot-availability-recovery", - "polkadot-client", - "polkadot-collator-protocol", - "polkadot-dispute-distribution", - "polkadot-gossip-support", - "polkadot-network-bridge", - "polkadot-node-collation-generation", - "polkadot-node-core-approval-voting", - "polkadot-node-core-av-store", - "polkadot-node-core-backing", - "polkadot-node-core-bitfield-signing", - "polkadot-node-core-candidate-validation", - "polkadot-node-core-chain-api", - "polkadot-node-core-chain-selection", - "polkadot-node-core-dispute-coordinator", - "polkadot-node-core-dispute-participation", - "polkadot-node-core-parachains-inherent", - "polkadot-node-core-provisioner", - "polkadot-node-core-runtime-api", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-parachain", - "polkadot-primitives", - "polkadot-rpc", - "polkadot-runtime", - "polkadot-runtime-parachains", - "polkadot-statement-distribution", - "sc-authority-discovery", - "sc-basic-authorship", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-client-db", - "sc-consensus", - "sc-consensus-babe", - "sc-consensus-slots", - "sc-consensus-uncles", - "sc-executor", - "sc-finality-grandpa", - "sc-keystore", - "sc-network", - "sc-offchain", - "sc-service", - "sc-sync-state-rpc", - "sc-telemetry", - "sc-transaction-pool", - "serde", - "sp-api", - "sp-authority-discovery", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-core", - "sp-finality-grandpa", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-state-machine", - "sp-storage", - "sp-timestamp", - "sp-transaction-pool", - "sp-trie", - "substrate-prometheus-endpoint", + "pallet-babe 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-im-online 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "polkadot-approval-distribution 0.9.15", + "polkadot-availability-bitfield-distribution 0.9.15", + "polkadot-availability-distribution 0.9.15", + "polkadot-availability-recovery 0.9.15", + "polkadot-client 0.9.15", + "polkadot-collator-protocol 0.9.15", + "polkadot-dispute-distribution 0.9.15", + "polkadot-gossip-support 0.9.15", + "polkadot-network-bridge 0.9.15", + "polkadot-node-collation-generation 0.9.15", + "polkadot-node-core-approval-voting 0.9.15", + "polkadot-node-core-av-store 0.9.15", + "polkadot-node-core-backing 0.9.15", + "polkadot-node-core-bitfield-signing 0.9.15", + "polkadot-node-core-candidate-validation 0.9.15", + "polkadot-node-core-chain-api 0.9.15", + "polkadot-node-core-chain-selection 0.9.15", + "polkadot-node-core-dispute-coordinator 0.9.15", + "polkadot-node-core-dispute-participation 0.9.14", + "polkadot-node-core-parachains-inherent 0.9.15", + "polkadot-node-core-provisioner 0.9.15", + "polkadot-node-core-runtime-api 0.9.15", + "polkadot-node-network-protocol 0.9.15", + "polkadot-node-primitives 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-overseer 0.9.15", + "polkadot-parachain 0.9.15", + "polkadot-primitives 0.9.15", + "polkadot-rpc 0.9.15", + "polkadot-runtime 0.9.15", + "polkadot-runtime-parachains 0.9.15", + "polkadot-statement-distribution 0.9.15", + "sc-authority-discovery 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-basic-authorship 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus-uncles 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-finality-grandpa 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-sync-state-rpc 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", + "tracing", +] + +[[package]] +name = "polkadot-statement-distribution" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "arrayvec 0.5.2", + "derive_more", + "futures 0.3.19", + "indexmap", + "parity-scale-codec", + "polkadot-node-network-protocol 0.9.15-1", + "polkadot-node-primitives 0.9.15-1", + "polkadot-node-subsystem 0.9.15-1", + "polkadot-node-subsystem-util 0.9.15-1", + "polkadot-primitives 0.9.15-1", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", "tracing", ] @@ -6631,25 +8510,35 @@ dependencies = [ "futures 0.3.19", "indexmap", "parity-scale-codec", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives", - "sp-keystore", - "sp-staking", + "polkadot-node-network-protocol 0.9.15", + "polkadot-node-primitives 0.9.15", + "polkadot-node-subsystem 0.9.15", + "polkadot-node-subsystem-util 0.9.15", + "polkadot-primitives 0.9.15", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "thiserror", "tracing", ] +[[package]] +name = "polkadot-statement-table" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "parity-scale-codec", + "polkadot-primitives 0.9.15-1", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", +] + [[package]] name = "polkadot-statement-table" version = "0.9.15" source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ "parity-scale-codec", - "polkadot-primitives", - "sp-core", + "polkadot-primitives 0.9.15", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] @@ -7127,7 +9016,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" dependencies = [ "env_logger 0.9.0", "jsonrpsee", @@ -7135,10 +9024,10 @@ dependencies = [ "parity-scale-codec", "serde", "serde_json", - "sp-core", - "sp-io", - "sp-runtime", - "sp-version", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -7330,8 +9219,19 @@ version = "4.1.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "log", - "sp-core", - "sp-wasm-interface", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", +] + +[[package]] +name = "sc-allocator" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "log", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", ] @@ -7351,15 +9251,42 @@ dependencies = [ "prost", "prost-build", "rand 0.7.3", - "sc-client-api", - "sc-network", - "sp-api", - "sp-authority-discovery", - "sp-blockchain", - "sp-core", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sc-authority-discovery" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "async-trait", + "derive_more", + "futures 0.3.19", + "futures-timer 3.0.2", + "ip_network", + "libp2p", + "log", + "parity-scale-codec", + "prost", + "prost-build", + "rand 0.7.3", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -7371,18 +9298,41 @@ dependencies = [ "futures-timer 3.0.2", "log", "parity-scale-codec", - "sc-block-builder", - "sc-client-api", - "sc-proposer-metrics", - "sc-telemetry", - "sc-transaction-pool-api", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-inherents", - "sp-runtime", - "substrate-prometheus-endpoint", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-proposer-metrics 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sc-basic-authorship" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "futures 0.3.19", + "futures-timer 3.0.2", + "log", + "parity-scale-codec", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-proposer-metrics 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -7391,14 +9341,30 @@ version = "0.10.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", - "sc-client-api", - "sp-api", - "sp-block-builder", - "sp-blockchain", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sc-block-builder" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "parity-scale-codec", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -7409,13 +9375,30 @@ dependencies = [ "impl-trait-for-tuples", "memmap2 0.5.2", "parity-scale-codec", - "sc-chain-spec-derive", - "sc-network", - "sc-telemetry", + "sc-chain-spec-derive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "serde", + "serde_json", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sc-chain-spec" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "impl-trait-for-tuples", + "memmap2 0.5.2", + "parity-scale-codec", + "sc-chain-spec-derive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "serde", "serde_json", - "sp-core", - "sp-runtime", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -7429,6 +9412,17 @@ dependencies = [ "syn", ] +[[package]] +name = "sc-chain-spec-derive" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "sc-cli" version = "0.10.0-dev" @@ -7445,22 +9439,60 @@ dependencies = [ "rand 0.7.3", "regex", "rpassword", - "sc-client-api", - "sc-keystore", - "sc-network", - "sc-service", - "sc-telemetry", - "sc-tracing", - "sc-utils", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "serde", + "serde_json", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keyring 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-panic-handler 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "structopt", + "thiserror", + "tiny-bip39", + "tokio", +] + +[[package]] +name = "sc-cli" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "chrono", + "fdlimit", + "futures 0.3.19", + "hex", + "libp2p", + "log", + "names", + "parity-scale-codec", + "rand 0.7.3", + "regex", + "rpassword", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "serde", "serde_json", - "sp-blockchain", - "sp-core", - "sp-keyring", - "sp-keystore", - "sp-panic-handler", - "sp-runtime", - "sp-version", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keyring 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-panic-handler 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "structopt", "thiserror", "tiny-bip39", @@ -7478,21 +9510,49 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.11.2", - "sc-executor", - "sc-transaction-pool-api", - "sc-utils", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-database", - "sp-externalities", - "sp-keystore", - "sp-runtime", - "sp-state-machine", - "sp-storage", - "sp-trie", - "substrate-prometheus-endpoint", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sc-client-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "fnv", + "futures 0.3.19", + "hash-db", + "log", + "parity-scale-codec", + "parking_lot 0.11.2", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -7509,15 +9569,40 @@ dependencies = [ "parity-db", "parity-scale-codec", "parking_lot 0.11.2", - "sc-client-api", - "sc-state-db", - "sp-arithmetic", - "sp-blockchain", - "sp-core", - "sp-database", - "sp-runtime", - "sp-state-machine", - "sp-trie", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-state-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sc-client-db" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "hash-db", + "kvdb", + "kvdb-memorydb", + "kvdb-rocksdb", + "linked-hash-map", + "log", + "parity-db", + "parity-scale-codec", + "parking_lot 0.11.2", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-state-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -7530,57 +9615,124 @@ dependencies = [ "futures-timer 3.0.2", "libp2p", "log", - "parking_lot 0.11.2", - "sc-client-api", - "sc-utils", - "serde", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-runtime", - "sp-state-machine", - "substrate-prometheus-endpoint", - "thiserror", + "parking_lot 0.11.2", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", +] + +[[package]] +name = "sc-consensus" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "async-trait", + "futures 0.3.19", + "futures-timer 3.0.2", + "libp2p", + "log", + "parking_lot 0.11.2", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "thiserror", +] + +[[package]] +name = "sc-consensus-aura" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +dependencies = [ + "async-trait", + "derive_more", + "futures 0.3.19", + "log", + "parity-scale-codec", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] -name = "sc-consensus-aura" +name = "sc-consensus-babe" version = "0.10.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "async-trait", "derive_more", + "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "futures 0.3.19", "log", + "merlin", + "num-bigint", + "num-rational 0.2.4", + "num-traits", "parity-scale-codec", - "sc-block-builder", - "sc-client-api", - "sc-consensus", - "sc-consensus-slots", - "sc-telemetry", - "sp-api", - "sp-application-crypto", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-aura", - "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", + "parking_lot 0.11.2", + "rand 0.7.3", + "retain_mut", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus-epochs 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "schnorrkel", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-vrf 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" dependencies = [ "async-trait", "derive_more", - "fork-tree", + "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "futures 0.3.19", "log", "merlin", @@ -7591,29 +9743,29 @@ dependencies = [ "parking_lot 0.11.2", "rand 0.7.3", "retain_mut", - "sc-client-api", - "sc-consensus", - "sc-consensus-epochs", - "sc-consensus-slots", - "sc-keystore", - "sc-telemetry", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus-epochs 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "schnorrkel", "serde", - "sp-api", - "sp-application-crypto", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-consensus-slots", - "sp-consensus-vrf", - "sp-core", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-runtime", - "sp-version", - "substrate-prometheus-endpoint", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-vrf 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -7626,18 +9778,42 @@ dependencies = [ "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", - "sc-consensus-babe", - "sc-consensus-epochs", - "sc-rpc-api", + "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus-epochs 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "serde", - "sp-api", - "sp-application-crypto", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe", - "sp-core", - "sp-keystore", - "sp-runtime", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sc-consensus-babe-rpc" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "derive_more", + "futures 0.3.19", + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus-epochs 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -7645,12 +9821,25 @@ name = "sc-consensus-epochs" version = "0.10.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "fork-tree", + "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "parity-scale-codec", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sc-consensus-epochs" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "parity-scale-codec", - "sc-client-api", - "sc-consensus", - "sp-blockchain", - "sp-runtime", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -7663,19 +9852,45 @@ dependencies = [ "futures-timer 3.0.2", "log", "parity-scale-codec", - "sc-client-api", - "sc-consensus", - "sc-telemetry", - "sp-api", - "sp-arithmetic", - "sp-blockchain", - "sp-consensus", - "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", - "sp-timestamp", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", +] + +[[package]] +name = "sc-consensus-slots" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "async-trait", + "futures 0.3.19", + "futures-timer 3.0.2", + "log", + "parity-scale-codec", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", ] @@ -7684,9 +9899,20 @@ name = "sc-consensus-uncles" version = "0.10.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "sc-client-api", - "sp-authorship", - "sp-runtime", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", +] + +[[package]] +name = "sc-consensus-uncles" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", ] @@ -7700,20 +9926,46 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.11.2", - "sc-executor-common", - "sc-executor-wasmi", - "sc-executor-wasmtime", - "sp-api", - "sp-core", - "sp-core-hashing-proc-macro", - "sp-externalities", - "sp-io", - "sp-panic-handler", - "sp-runtime-interface", - "sp-tasks", - "sp-trie", - "sp-version", - "sp-wasm-interface", + "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-executor-wasmi 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core-hashing-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-panic-handler 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-tasks 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "wasmi", +] + +[[package]] +name = "sc-executor" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "lazy_static", + "libsecp256k1", + "log", + "parity-scale-codec", + "parking_lot 0.11.2", + "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-executor-wasmi 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-executor-wasmtime 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core-hashing-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-panic-handler 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-tasks 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "wasmi", ] @@ -7726,11 +9978,29 @@ dependencies = [ "environmental", "parity-scale-codec", "pwasm-utils", - "sc-allocator", - "sp-core", - "sp-maybe-compressed-blob", - "sp-serializer", - "sp-wasm-interface", + "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-serializer 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", + "wasmi", +] + +[[package]] +name = "sc-executor-common" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "derive_more", + "environmental", + "parity-scale-codec", + "pwasm-utils", + "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-serializer 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", "wasmi", ] @@ -7742,12 +10012,28 @@ source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d3 dependencies = [ "log", "parity-scale-codec", - "sc-allocator", - "sc-executor-common", + "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "scoped-tls", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "wasmi", +] + +[[package]] +name = "sc-executor-wasmi" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "log", + "parity-scale-codec", + "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "scoped-tls", - "sp-core", - "sp-runtime-interface", - "sp-wasm-interface", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "wasmi", ] @@ -7761,11 +10047,29 @@ dependencies = [ "log", "parity-scale-codec", "parity-wasm 0.42.2", - "sc-allocator", - "sc-executor-common", - "sp-core", - "sp-runtime-interface", - "sp-wasm-interface", + "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "wasmtime", +] + +[[package]] +name = "sc-executor-wasmtime" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "log", + "parity-scale-codec", + "parity-wasm 0.42.2", + "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "wasmtime", ] @@ -7778,32 +10082,69 @@ dependencies = [ "derive_more", "dyn-clone", "finality-grandpa", - "fork-tree", + "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "futures 0.3.19", + "futures-timer 3.0.2", + "log", + "parity-scale-codec", + "parking_lot 0.11.2", + "rand 0.8.4", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-network-gossip 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "serde_json", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sc-finality-grandpa" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "async-trait", + "derive_more", + "dyn-clone", + "finality-grandpa", + "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "futures 0.3.19", "futures-timer 3.0.2", "log", "parity-scale-codec", "parking_lot 0.11.2", "rand 0.8.4", - "sc-block-builder", - "sc-client-api", - "sc-consensus", - "sc-keystore", - "sc-network", - "sc-network-gossip", - "sc-telemetry", - "sc-utils", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-network-gossip 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "serde_json", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-finality-grandpa", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -7820,14 +10161,38 @@ dependencies = [ "jsonrpc-pubsub", "log", "parity-scale-codec", - "sc-client-api", - "sc-finality-grandpa", - "sc-rpc", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-finality-grandpa 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "serde", + "serde_json", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sc-finality-grandpa-rpc" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "derive_more", + "finality-grandpa", + "futures 0.3.19", + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "jsonrpc-pubsub", + "log", + "parity-scale-codec", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-finality-grandpa 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "serde", "serde_json", - "sp-blockchain", - "sp-core", - "sp-runtime", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -7840,11 +10205,28 @@ dependencies = [ "futures-timer 3.0.2", "log", "parity-util-mem", - "sc-client-api", - "sc-network", - "sc-transaction-pool-api", - "sp-blockchain", - "sp-runtime", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sc-informant" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "ansi_term", + "futures 0.3.19", + "futures-timer 3.0.2", + "log", + "parity-util-mem", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -7857,9 +10239,24 @@ dependencies = [ "hex", "parking_lot 0.11.2", "serde_json", - "sp-application-crypto", - "sp-core", - "sp-keystore", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sc-keystore" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "async-trait", + "derive_more", + "hex", + "parking_lot 0.11.2", + "serde_json", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -7876,7 +10273,58 @@ dependencies = [ "derive_more", "either", "fnv", - "fork-tree", + "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "futures 0.3.19", + "futures-timer 3.0.2", + "hex", + "ip_network", + "libp2p", + "linked-hash-map", + "linked_hash_set", + "log", + "lru 0.7.2", + "parity-scale-codec", + "parking_lot 0.11.2", + "pin-project 1.0.10", + "prost", + "prost-build", + "rand 0.7.3", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "serde", + "serde_json", + "smallvec", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", + "unsigned-varint 0.6.0", + "void", + "zeroize", +] + +[[package]] +name = "sc-network" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "async-std", + "async-trait", + "asynchronous-codec 0.5.0", + "bitflags", + "bytes 1.1.0", + "cid", + "derive_more", + "either", + "fnv", + "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "futures 0.3.19", "futures-timer 3.0.2", "hex", @@ -7892,21 +10340,21 @@ dependencies = [ "prost", "prost-build", "rand 0.7.3", - "sc-block-builder", - "sc-client-api", - "sc-consensus", - "sc-peerset", - "sc-utils", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "serde", "serde_json", "smallvec", - "sp-arithmetic", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-finality-grandpa", - "sp-runtime", - "substrate-prometheus-endpoint", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", "unsigned-varint 0.6.0", "void", @@ -7923,9 +10371,25 @@ dependencies = [ "libp2p", "log", "lru 0.7.2", - "sc-network", - "sp-runtime", - "substrate-prometheus-endpoint", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "tracing", +] + +[[package]] +name = "sc-network-gossip" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "futures 0.3.19", + "futures-timer 3.0.2", + "libp2p", + "log", + "lru 0.7.2", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "tracing", ] @@ -7946,13 +10410,41 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.11.2", "rand 0.7.3", - "sc-client-api", - "sc-network", - "sc-utils", - "sp-api", - "sp-core", - "sp-offchain", - "sp-runtime", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "threadpool", + "tracing", +] + +[[package]] +name = "sc-offchain" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "bytes 1.1.0", + "fnv", + "futures 0.3.19", + "futures-timer 3.0.2", + "hex", + "hyper", + "hyper-rustls", + "num_cpus", + "once_cell", + "parity-scale-codec", + "parking_lot 0.11.2", + "rand 0.7.3", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "threadpool", "tracing", ] @@ -7965,7 +10457,20 @@ dependencies = [ "futures 0.3.19", "libp2p", "log", - "sc-utils", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "serde_json", + "wasm-timer", +] + +[[package]] +name = "sc-peerset" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "futures 0.3.19", + "libp2p", + "log", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "serde_json", "wasm-timer", ] @@ -7976,13 +10481,53 @@ version = "0.10.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "log", - "substrate-prometheus-endpoint", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sc-proposer-metrics" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "log", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", +] + +[[package]] +name = "sc-rpc" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +dependencies = [ + "futures 0.3.19", + "hash-db", + "jsonrpc-core", + "jsonrpc-pubsub", + "log", + "parity-scale-codec", + "parking_lot 0.11.2", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "serde_json", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" dependencies = [ "futures 0.3.19", "hash-db", @@ -7991,23 +10536,23 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.11.2", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-rpc-api", - "sc-tracing", - "sc-transaction-pool-api", - "sc-utils", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "serde_json", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-keystore", - "sp-offchain", - "sp-rpc", - "sp-runtime", - "sp-session", - "sp-version", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -8023,15 +10568,40 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.11.2", - "sc-chain-spec", - "sc-transaction-pool-api", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "serde", + "serde_json", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", +] + +[[package]] +name = "sc-rpc-api" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "futures 0.3.19", + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "jsonrpc-pubsub", + "log", + "parity-scale-codec", + "parking_lot 0.11.2", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "serde", "serde_json", - "sp-core", - "sp-rpc", - "sp-runtime", - "sp-tracing", - "sp-version", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", ] @@ -8048,7 +10618,24 @@ dependencies = [ "jsonrpc-ws-server", "log", "serde_json", - "substrate-prometheus-endpoint", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "tokio", +] + +[[package]] +name = "sc-rpc-server" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "futures 0.3.19", + "jsonrpc-core", + "jsonrpc-http-server", + "jsonrpc-ipc-server", + "jsonrpc-pubsub", + "jsonrpc-ws-server", + "log", + "serde_json", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "tokio", ] @@ -8071,44 +10658,108 @@ dependencies = [ "parking_lot 0.11.2", "pin-project 1.0.10", "rand 0.7.3", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-client-db", - "sc-consensus", - "sc-executor", - "sc-informant", - "sc-keystore", - "sc-network", - "sc-offchain", - "sc-rpc", - "sc-rpc-server", - "sc-telemetry", - "sc-tracing", - "sc-transaction-pool", - "sc-transaction-pool-api", - "sc-utils", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-informant 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-rpc-server 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "serde", + "serde_json", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-transaction-storage-proof 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "tempfile", + "thiserror", + "tokio", + "tracing", + "tracing-futures", +] + +[[package]] +name = "sc-service" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "async-trait", + "directories", + "exit-future", + "futures 0.3.19", + "futures-timer 3.0.2", + "hash-db", + "jsonrpc-core", + "jsonrpc-pubsub", + "log", + "parity-scale-codec", + "parity-util-mem", + "parking_lot 0.11.2", + "pin-project 1.0.10", + "rand 0.7.3", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-informant 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-rpc-server 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "serde", "serde_json", - "sp-api", - "sp-application-crypto", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-externalities", - "sp-inherents", - "sp-keystore", - "sp-runtime", - "sp-session", - "sp-state-machine", - "sp-storage", - "sp-tracing", - "sp-transaction-pool", - "sp-transaction-storage-proof", - "sp-trie", - "sp-version", - "substrate-prometheus-endpoint", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-transaction-storage-proof 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "tempfile", "thiserror", "tokio", @@ -8126,8 +10777,22 @@ dependencies = [ "parity-util-mem", "parity-util-mem-derive", "parking_lot 0.11.2", - "sc-client-api", - "sp-core", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sc-state-db" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "log", + "parity-scale-codec", + "parity-util-mem", + "parity-util-mem-derive", + "parking_lot 0.11.2", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -8139,16 +10804,38 @@ dependencies = [ "jsonrpc-core-client", "jsonrpc-derive", "parity-scale-codec", - "sc-chain-spec", - "sc-client-api", - "sc-consensus-babe", - "sc-consensus-epochs", - "sc-finality-grandpa", - "sc-rpc-api", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus-epochs 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-finality-grandpa 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "serde", + "serde_json", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", +] + +[[package]] +name = "sc-sync-state-rpc" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "parity-scale-codec", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus-epochs 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-finality-grandpa 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "serde", "serde_json", - "sp-blockchain", - "sp-runtime", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", ] @@ -8170,6 +10857,24 @@ dependencies = [ "wasm-timer", ] +[[package]] +name = "sc-telemetry" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "chrono", + "futures 0.3.19", + "libp2p", + "log", + "parking_lot 0.11.2", + "pin-project 1.0.10", + "rand 0.7.3", + "serde", + "serde_json", + "thiserror", + "wasm-timer", +] + [[package]] name = "sc-tracing" version = "4.0.0-dev" @@ -8185,16 +10890,47 @@ dependencies = [ "parking_lot 0.11.2", "regex", "rustc-hash", - "sc-client-api", - "sc-rpc-server", - "sc-tracing-proc-macro", - "serde", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-rpc", - "sp-runtime", - "sp-tracing", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-rpc-server 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-tracing-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", + "tracing", + "tracing-log", + "tracing-subscriber", +] + +[[package]] +name = "sc-tracing" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "ansi_term", + "atty", + "chrono", + "lazy_static", + "libc", + "log", + "once_cell", + "parking_lot 0.11.2", + "regex", + "rustc-hash", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-rpc-server 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-tracing-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", "tracing", "tracing-log", @@ -8212,6 +10948,17 @@ dependencies = [ "syn", ] +[[package]] +name = "sc-tracing-proc-macro" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" @@ -8225,17 +10972,44 @@ dependencies = [ "parity-util-mem", "parking_lot 0.11.2", "retain_mut", - "sc-client-api", - "sc-transaction-pool-api", - "sc-utils", - "serde", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-runtime", - "sp-tracing", - "sp-transaction-pool", - "substrate-prometheus-endpoint", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", +] + +[[package]] +name = "sc-transaction-pool" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "futures 0.3.19", + "intervalier", + "linked-hash-map", + "log", + "parity-scale-codec", + "parity-util-mem", + "parking_lot 0.11.2", + "retain_mut", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", ] @@ -8248,8 +11022,22 @@ dependencies = [ "futures 0.3.19", "log", "serde", - "sp-blockchain", - "sp-runtime", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", +] + +[[package]] +name = "sc-transaction-pool-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "derive_more", + "futures 0.3.19", + "log", + "serde", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", ] @@ -8264,6 +11052,17 @@ dependencies = [ "prometheus", ] +[[package]] +name = "sc-utils" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "futures 0.3.19", + "futures-timer 3.0.2", + "lazy_static", + "prometheus", +] + [[package]] name = "scale-info" version = "1.0.0" @@ -8565,6 +11364,18 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" +[[package]] +name = "slot-range-helper" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "enumn", + "parity-scale-codec", + "paste", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", +] + [[package]] name = "slot-range-helper" version = "0.9.15" @@ -8573,8 +11384,8 @@ dependencies = [ "enumn", "parity-scale-codec", "paste", - "sp-runtime", - "sp-std", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] @@ -8661,12 +11472,29 @@ dependencies = [ "hash-db", "log", "parity-scale-codec", - "sp-api-proc-macro", - "sp-core", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-version", + "sp-api-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", +] + +[[package]] +name = "sp-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", + "sp-api-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", ] @@ -8682,6 +11510,18 @@ dependencies = [ "syn", ] +[[package]] +name = "sp-api-proc-macro" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "blake2-rfc", + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "sp-application-crypto" version = "4.0.0-dev" @@ -8690,9 +11530,22 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-std", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sp-application-crypto" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -8705,8 +11558,23 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-debug-derive", - "sp-std", + "sp-debug-derive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "static_assertions", +] + +[[package]] +name = "sp-arithmetic" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "integer-sqrt", + "num-traits", + "parity-scale-codec", + "scale-info", + "serde", + "sp-debug-derive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "static_assertions", ] @@ -8716,52 +11584,107 @@ version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", - "scale-info", - "sp-api", - "sp-application-crypto", - "sp-runtime", - "sp-std", + "scale-info", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sp-authority-discovery" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", +] + +[[package]] +name = "sp-authorship" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +dependencies = [ + "async-trait", + "parity-scale-codec", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sp-authorship" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "async-trait", + "parity-scale-codec", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", +] + +[[package]] +name = "sp-block-builder" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +dependencies = [ + "parity-scale-codec", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", ] [[package]] -name = "sp-authorship" +name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" dependencies = [ - "async-trait", "parity-scale-codec", - "sp-inherents", - "sp-runtime", - "sp-std", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] -name = "sp-block-builder" +name = "sp-blockchain" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ + "futures 0.3.19", + "log", + "lru 0.7.2", "parity-scale-codec", - "sp-api", - "sp-inherents", - "sp-runtime", - "sp-std", + "parking_lot 0.11.2", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", ] [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" dependencies = [ "futures 0.3.19", "log", "lru 0.7.2", "parity-scale-codec", "parking_lot 0.11.2", - "sp-api", - "sp-consensus", - "sp-database", - "sp-runtime", - "sp-state-machine", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", ] @@ -8775,12 +11698,31 @@ dependencies = [ "futures-timer 3.0.2", "log", "parity-scale-codec", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-version", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", +] + +[[package]] +name = "sp-consensus" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "async-trait", + "futures 0.3.19", + "futures-timer 3.0.2", + "log", + "parity-scale-codec", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", ] @@ -8792,14 +11734,32 @@ dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-api", - "sp-application-crypto", - "sp-consensus", - "sp-consensus-slots", - "sp-inherents", - "sp-runtime", - "sp-std", - "sp-timestamp", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sp-consensus-aura" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "async-trait", + "parity-scale-codec", + "scale-info", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -8812,17 +11772,40 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api", - "sp-application-crypto", - "sp-consensus", - "sp-consensus-slots", - "sp-consensus-vrf", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", - "sp-std", - "sp-timestamp", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-consensus-vrf 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sp-consensus-babe" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "async-trait", + "merlin", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-consensus-vrf 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -8833,8 +11816,20 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic", - "sp-runtime", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sp-consensus-slots" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -8844,9 +11839,21 @@ source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d3 dependencies = [ "parity-scale-codec", "schnorrkel", - "sp-core", - "sp-runtime", - "sp-std", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sp-consensus-vrf" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "parity-scale-codec", + "schnorrkel", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -8881,12 +11888,60 @@ dependencies = [ "secrecy", "serde", "sha2 0.9.9", - "sp-core-hashing", - "sp-debug-derive", - "sp-externalities", - "sp-runtime-interface", - "sp-std", - "sp-storage", + "sp-core-hashing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-debug-derive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "ss58-registry", + "substrate-bip39", + "thiserror", + "tiny-bip39", + "tiny-keccak", + "twox-hash", + "wasmi", + "zeroize", +] + +[[package]] +name = "sp-core" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "base58", + "bitflags", + "blake2-rfc", + "byteorder", + "dyn-clonable", + "ed25519-dalek", + "futures 0.3.19", + "hash-db", + "hash256-std-hasher", + "hex", + "impl-serde", + "lazy_static", + "libsecp256k1", + "log", + "merlin", + "num-traits", + "parity-scale-codec", + "parity-util-mem", + "parking_lot 0.11.2", + "primitive-types", + "rand 0.7.3", + "regex", + "scale-info", + "schnorrkel", + "secrecy", + "serde", + "sha2 0.9.9", + "sp-core-hashing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-debug-derive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "ss58-registry", "substrate-bip39", "thiserror", @@ -8905,7 +11960,20 @@ dependencies = [ "blake2-rfc", "byteorder", "sha2 0.9.9", - "sp-std", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "tiny-keccak", + "twox-hash", +] + +[[package]] +name = "sp-core-hashing" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "blake2-rfc", + "byteorder", + "sha2 0.9.9", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "tiny-keccak", "twox-hash", ] @@ -8917,7 +11985,18 @@ source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d3 dependencies = [ "proc-macro2", "quote", - "sp-core-hashing", + "sp-core-hashing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "syn", +] + +[[package]] +name = "sp-core-hashing-proc-macro" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "proc-macro2", + "quote", + "sp-core-hashing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "syn", ] @@ -8930,6 +12009,15 @@ dependencies = [ "parking_lot 0.11.2", ] +[[package]] +name = "sp-database" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "kvdb", + "parking_lot 0.11.2", +] + [[package]] name = "sp-debug-derive" version = "4.0.0-dev" @@ -8940,6 +12028,16 @@ dependencies = [ "syn", ] +[[package]] +name = "sp-debug-derive" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "sp-externalities" version = "0.10.0-dev" @@ -8947,8 +12045,19 @@ source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d3 dependencies = [ "environmental", "parity-scale-codec", - "sp-std", - "sp-storage", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sp-externalities" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "environmental", + "parity-scale-codec", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -8961,12 +12070,30 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-keystore", - "sp-runtime", - "sp-std", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sp-finality-grandpa" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "finality-grandpa", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -8977,9 +12104,23 @@ dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", - "sp-core", - "sp-runtime", - "sp-std", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", +] + +[[package]] +name = "sp-inherents" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "async-trait", + "impl-trait-for-tuples", + "parity-scale-codec", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", ] @@ -8994,15 +12135,39 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.11.2", - "sp-core", - "sp-externalities", - "sp-keystore", - "sp-runtime-interface", - "sp-state-machine", - "sp-std", - "sp-tracing", - "sp-trie", - "sp-wasm-interface", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "tracing", + "tracing-core", +] + +[[package]] +name = "sp-io" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "futures 0.3.19", + "hash-db", + "libsecp256k1", + "log", + "parity-scale-codec", + "parking_lot 0.11.2", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "tracing", "tracing-core", ] @@ -9013,8 +12178,19 @@ version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "lazy_static", - "sp-core", - "sp-runtime", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "strum", +] + +[[package]] +name = "sp-keyring" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "lazy_static", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "strum", ] @@ -9031,8 +12207,25 @@ dependencies = [ "parking_lot 0.11.2", "schnorrkel", "serde", - "sp-core", - "sp-externalities", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sp-keystore" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "async-trait", + "derive_more", + "futures 0.3.19", + "merlin", + "parity-scale-codec", + "parking_lot 0.11.2", + "schnorrkel", + "serde", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -9043,6 +12236,14 @@ dependencies = [ "zstd", ] +[[package]] +name = "sp-maybe-compressed-blob" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "zstd", +] + [[package]] name = "sp-npos-elections" version = "4.0.0-dev" @@ -9051,11 +12252,26 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic", - "sp-core", - "sp-npos-elections-solution-type", - "sp-runtime", - "sp-std", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-npos-elections-solution-type 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sp-npos-elections" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-npos-elections-solution-type 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -9069,14 +12285,35 @@ dependencies = [ "syn", ] +[[package]] +name = "sp-npos-elections-solution-type" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "sp-offchain" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "sp-api", - "sp-core", - "sp-runtime", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sp-offchain" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -9089,14 +12326,34 @@ dependencies = [ "regex", ] +[[package]] +name = "sp-panic-handler" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "backtrace", + "lazy_static", + "regex", +] + +[[package]] +name = "sp-rpc" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +dependencies = [ + "rustc-hash", + "serde", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + [[package]] name = "sp-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" dependencies = [ "rustc-hash", "serde", - "sp-core", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -9114,11 +12371,33 @@ dependencies = [ "rand 0.7.3", "scale-info", "serde", - "sp-application-crypto", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-std", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sp-runtime" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "either", + "hash256-std-hasher", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "parity-util-mem", + "paste", + "rand 0.7.3", + "scale-info", + "serde", + "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -9129,12 +12408,29 @@ dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "primitive-types", - "sp-externalities", - "sp-runtime-interface-proc-macro", - "sp-std", - "sp-storage", - "sp-tracing", - "sp-wasm-interface", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime-interface-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "static_assertions", +] + +[[package]] +name = "sp-runtime-interface" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "impl-trait-for-tuples", + "parity-scale-codec", + "primitive-types", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime-interface-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "static_assertions", ] @@ -9150,6 +12446,18 @@ dependencies = [ "syn", ] +[[package]] +name = "sp-runtime-interface-proc-macro" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "Inflector", + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "sp-serializer" version = "4.0.0-dev" @@ -9159,6 +12467,15 @@ dependencies = [ "serde_json", ] +[[package]] +name = "sp-serializer" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "serde", + "serde_json", +] + [[package]] name = "sp-session" version = "4.0.0-dev" @@ -9166,11 +12483,25 @@ source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d3 dependencies = [ "parity-scale-codec", "scale-info", - "sp-api", - "sp-core", - "sp-runtime", - "sp-staking", - "sp-std", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sp-session" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -9180,8 +12511,19 @@ source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d3 dependencies = [ "parity-scale-codec", "scale-info", - "sp-runtime", - "sp-std", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sp-staking" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -9196,11 +12538,34 @@ dependencies = [ "parking_lot 0.11.2", "rand 0.7.3", "smallvec", - "sp-core", - "sp-externalities", - "sp-panic-handler", - "sp-std", - "sp-trie", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-panic-handler 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", + "tracing", + "trie-db", + "trie-root", +] + +[[package]] +name = "sp-state-machine" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "hash-db", + "log", + "num-traits", + "parity-scale-codec", + "parking_lot 0.11.2", + "rand 0.7.3", + "smallvec", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-panic-handler 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", "tracing", "trie-db", @@ -9212,6 +12577,11 @@ name = "sp-std" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +[[package]] +name = "sp-std" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" + [[package]] name = "sp-storage" version = "4.0.0-dev" @@ -9221,8 +12591,21 @@ dependencies = [ "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive", - "sp-std", + "sp-debug-derive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sp-storage" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "ref-cast", + "serde", + "sp-debug-derive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -9231,11 +12614,24 @@ version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "log", - "sp-core", - "sp-externalities", - "sp-io", - "sp-runtime-interface", - "sp-std", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sp-tasks" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "log", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -9247,10 +12643,26 @@ dependencies = [ "futures-timer 3.0.2", "log", "parity-scale-codec", - "sp-api", - "sp-inherents", - "sp-runtime", - "sp-std", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", +] + +[[package]] +name = "sp-timestamp" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "async-trait", + "futures-timer 3.0.2", + "log", + "parity-scale-codec", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", ] @@ -9260,7 +12672,19 @@ version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ "parity-scale-codec", - "sp-std", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "tracing", + "tracing-core", + "tracing-subscriber", +] + +[[package]] +name = "sp-tracing" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "parity-scale-codec", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "tracing", "tracing-core", "tracing-subscriber", @@ -9271,8 +12695,17 @@ name = "sp-transaction-pool" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "sp-api", - "sp-runtime", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sp-transaction-pool" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -9284,11 +12717,27 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-std", - "sp-trie", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "sp-transaction-storage-proof" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "async-trait", + "log", + "parity-scale-codec", + "scale-info", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -9300,8 +12749,23 @@ dependencies = [ "memory-db", "parity-scale-codec", "scale-info", - "sp-core", - "sp-std", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "trie-db", + "trie-root", +] + +[[package]] +name = "sp-trie" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "hash-db", + "memory-db", + "parity-scale-codec", + "scale-info", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "trie-db", "trie-root", ] @@ -9316,9 +12780,25 @@ dependencies = [ "parity-wasm 0.42.2", "scale-info", "serde", - "sp-runtime", - "sp-std", - "sp-version-proc-macro", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-version-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "thiserror", +] + +[[package]] +name = "sp-version" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "parity-wasm 0.42.2", + "scale-info", + "serde", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-version-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "thiserror", ] @@ -9333,6 +12813,17 @@ dependencies = [ "syn", ] +[[package]] +name = "sp-version-proc-macro" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "parity-scale-codec", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "sp-wasm-interface" version = "4.0.0-dev" @@ -9340,7 +12831,18 @@ source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d3 dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", - "sp-std", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "wasmi", +] + +[[package]] +name = "sp-wasm-interface" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "impl-trait-for-tuples", + "parity-scale-codec", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "wasmi", ] @@ -9481,7 +12983,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" dependencies = [ "platforms", ] @@ -9491,21 +12993,43 @@ name = "substrate-frame-rpc-system" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" dependencies = [ - "frame-system-rpc-runtime-api", + "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "futures 0.3.19", + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "log", + "parity-scale-codec", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +] + +[[package]] +name = "substrate-frame-rpc-system" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "futures 0.3.19", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", "log", "parity-scale-codec", - "sc-client-api", - "sc-rpc-api", - "sc-transaction-pool-api", - "sp-api", - "sp-block-builder", - "sp-blockchain", - "sp-core", - "sp-runtime", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", ] [[package]] @@ -9522,6 +13046,20 @@ dependencies = [ "tokio", ] +[[package]] +name = "substrate-prometheus-endpoint" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "async-std", + "derive_more", + "futures-util", + "hyper", + "log", + "prometheus", + "tokio", +] + [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" @@ -9530,7 +13068,22 @@ dependencies = [ "ansi_term", "build-helper", "cargo_metadata", - "sp-maybe-compressed-blob", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "tempfile", + "toml", + "walkdir", + "wasm-gc-api", +] + +[[package]] +name = "substrate-wasm-builder" +version = "5.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +dependencies = [ + "ansi_term", + "build-helper", + "cargo_metadata", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "tempfile", "toml", "walkdir", @@ -9956,24 +13509,24 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" dependencies = [ "jsonrpsee", "log", "parity-scale-codec", "remote-externalities", - "sc-chain-spec", - "sc-cli", - "sc-executor", - "sc-service", - "serde", - "sp-core", - "sp-externalities", - "sp-io", - "sp-keystore", - "sp-runtime", - "sp-state-machine", - "sp-version", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "serde", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", "structopt", ] @@ -10615,6 +14168,19 @@ dependencies = [ "zeroize", ] +[[package]] +name = "xcm" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "derivative", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "scale-info", + "xcm-procedural 0.1.0 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1)", +] + [[package]] name = "xcm" version = "0.9.15" @@ -10625,7 +14191,27 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "xcm-procedural", + "xcm-procedural 0.1.0 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.15)", +] + +[[package]] +name = "xcm-builder" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "log", + "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "parity-scale-codec", + "polkadot-parachain 0.9.15-1", + "scale-info", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "xcm 0.9.15-1", + "xcm-executor 0.9.15-1", ] [[package]] @@ -10633,19 +14219,36 @@ name = "xcm-builder" version = "0.9.15" source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "log", - "pallet-transaction-payment", + "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", - "polkadot-parachain", + "polkadot-parachain 0.9.15", "scale-info", - "sp-arithmetic", - "sp-io", - "sp-runtime", - "sp-std", - "xcm", - "xcm-executor", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "xcm 0.9.15", + "xcm-executor 0.9.15", +] + +[[package]] +name = "xcm-executor" +version = "0.9.15-1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "xcm 0.9.15-1", ] [[package]] @@ -10653,16 +14256,16 @@ name = "xcm-executor" version = "0.9.15" source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" dependencies = [ - "frame-support", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "xcm", + "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "xcm 0.9.15", ] [[package]] @@ -10675,6 +14278,16 @@ dependencies = [ "syn", ] +[[package]] +name = "xcm-procedural" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "yamux" version = "0.9.0" diff --git a/node/Cargo.toml b/node/Cargo.toml index c5514c9e..8a4878e7 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -13,7 +13,7 @@ build = "build.rs" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } [[bin]] name = "parachain-collator" @@ -37,45 +37,45 @@ jsonrpc-core = "18.0.0" parachain-template-runtime = { path = "../runtime" } # Substrate Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } ## Substrate Client Dependencies -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.15" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.15-1" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } ## Substrate Primitive Dependencies -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } # Cumulus dependencies cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15" } @@ -88,7 +88,7 @@ cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branc cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15" } # Polkadot dependencies -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.15" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.15" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.15" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.15" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.15-1" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.15-1" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.15-1" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.15-1" } diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 901642aa..e2b034e2 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -15,15 +15,15 @@ targets = ["x86_64-unknown-linux-gnu"] codec = { package = "parity-scale-codec", version = "2.0.0", features = ["derive"], default-features = false } scale-info = { version = "1.0.0", default-features = false, features = ["derive"] } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.15" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.15-1" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } [dev-dependencies] serde = { version = "1.0.119" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } [features] default = ["std"] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index cbaca8b3..9e426c09 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,7 +12,7 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } [dependencies] hex-literal = { version = '0.3.1', optional = true } @@ -27,36 +27,36 @@ pallet-template = { path = "../pallets/template", default-features = false } # Substrate Dependencies ## Substrate Primitive Dependencies -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } ## Substrate FRAME Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.15" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.15" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.15" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.15-1" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.15-1" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.15-1" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } ## Substrate Pallet Dependencies -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } # Cumulus dependencies cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } @@ -72,12 +72,12 @@ parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polk cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15", default-features = false, version = "3.0.0"} # Polkadot Dependencies -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.15" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.15" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.15" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.15" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.15" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.15" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.15-1" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.15-1" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.15-1" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.15-1" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.15-1" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.15-1" } [features] default = [ From 39917523462c0d040bc803ed7f9afab6ec0152fb Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:35:45 -0700 Subject: [PATCH 46/91] Direct pull from Cumulus upstream polkadot-v0.9.16 branch (#93) * Direct pull from Cumulus upstream polkadot-v0.9.16 branch * bump cargo.lock --- Cargo.lock | 8114 ++++++++++------------------------ node/Cargo.toml | 99 +- node/src/chain_spec.rs | 9 + node/src/cli.rs | 3 + node/src/command.rs | 52 +- node/src/service.rs | 136 +- pallets/template/Cargo.toml | 17 +- pallets/template/src/mock.rs | 1 + runtime/Cargo.toml | 104 +- runtime/src/lib.rs | 58 +- 10 files changed, 2686 insertions(+), 5907 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 31b74442..943bc70f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12,22 +12,13 @@ dependencies = [ "regex", ] -[[package]] -name = "addr2line" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e61f2b7f93d2c7d2b08263acaa4a363b3e276806c68af6134c44f523bf1aacd" -dependencies = [ - "gimli 0.25.0", -] - [[package]] name = "addr2line" version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" dependencies = [ - "gimli 0.26.1", + "gimli", ] [[package]] @@ -385,11 +376,11 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "backtrace" -version = "0.3.63" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "321629d8ba6513061f26707241fa9bc89524ff1cd7a915a97ef0c62c666ce1b6" +checksum = "5e121dee8023ce33ab248d9ce1493df03c3b38a659b240096fcbd7048ff9c31f" dependencies = [ - "addr2line 0.17.0", + "addr2line", "cc", "cfg-if 1.0.0", "libc", @@ -428,55 +419,28 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "fnv", - "futures 0.3.19", - "log", - "parity-scale-codec", - "parking_lot 0.11.2", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-network-gossip 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", - "wasm-timer", -] - -[[package]] -name = "beefy-gadget" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "beefy-primitives", "fnv", "futures 0.3.19", "log", "parity-scale-codec", "parking_lot 0.11.2", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-network-gossip 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-chain-spec", + "sc-client-api", + "sc-keystore", + "sc-network", + "sc-network-gossip", + "sc-utils", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-blockchain", + "sp-core", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", "thiserror", "wasm-timer", ] @@ -484,30 +448,11 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "beefy-gadget 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "futures 0.3.19", - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "jsonrpc-pubsub", - "log", - "parity-scale-codec", - "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "beefy-gadget-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "beefy-gadget 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "beefy-gadget", + "beefy-primitives", + "derive_more", "futures 0.3.19", "jsonrpc-core", "jsonrpc-core-client", @@ -515,48 +460,32 @@ dependencies = [ "jsonrpc-pubsub", "log", "parity-scale-codec", - "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "parking_lot 0.11.2", + "sc-rpc", + "sc-utils", "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core", + "sp-runtime", + "thiserror", ] [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" - -[[package]] -name = "beefy-merkle-tree" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" - -[[package]] -name = "beefy-primitives" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-runtime", + "sp-std", ] [[package]] @@ -691,6 +620,15 @@ dependencies = [ "generic-array 0.14.5", ] +[[package]] +name = "block-buffer" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1d36a02058e76b040de25a4464ba1c80935655595b661505c8b39b664828b95" +dependencies = [ + "generic-array 0.14.5", +] + [[package]] name = "block-padding" version = "0.1.5" @@ -722,9 +660,9 @@ dependencies = [ [[package]] name = "bounded-vec" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afdd1dffefe5fc66262a524b91087c43b16e478b2e3dc49eb11b0e2fd6b6ec90" +checksum = "b47cca82fca99417fe405f09d93bb8fff90bdd03d13c631f18096ee123b4281c" dependencies = [ "thiserror", ] @@ -1034,24 +972,24 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.78.0" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc0cb7df82c8cf8f2e6a8dd394a0932a71369c160cc9b027dca414fced242513" +checksum = "9516ba6b2ba47b4cbf63b713f75b432fafa0a0e0464ec8381ec76e6efe931ab3" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.78.0" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4463c15fa42eee909e61e5eac4866b7c6d22d0d8c621e57a0c5380753bfa8c" +checksum = "489e5d0081f7edff6be12d71282a8bf387b5df64d5592454b75d662397f2d642" dependencies = [ "cranelift-bforest", "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-entity", - "gimli 0.25.0", + "gimli", "log", "regalloc", "smallvec", @@ -1060,34 +998,33 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.78.0" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793f6a94a053a55404ea16e1700202a88101672b8cd6b4df63e13cde950852bf" +checksum = "d36ee1140371bb0f69100e734b30400157a4adf7b86148dee8b0a438763ead48" dependencies = [ "cranelift-codegen-shared", - "cranelift-entity", ] [[package]] name = "cranelift-codegen-shared" -version = "0.78.0" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44aa1846df275bce5eb30379d65964c7afc63c05a117076e62a119c25fe174be" +checksum = "981da52d8f746af1feb96290c83977ff8d41071a7499e991d8abae0d4869f564" [[package]] name = "cranelift-entity" -version = "0.78.0" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3a45d8d6318bf8fc518154d9298eab2a8154ec068a8885ff113f6db8d69bb3a" +checksum = "a2906740053dd3bcf95ce53df0fd9b5649c68ae4bd9adada92b406f059eae461" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.78.0" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e07339bd461766deb7605169de039e01954768ff730fa1254e149001884a8525" +checksum = "b7cb156de1097f567d46bf57a0cd720a72c3e15e1a2bd8b1041ba2fc894471b7" dependencies = [ "cranelift-codegen", "log", @@ -1097,9 +1034,9 @@ dependencies = [ [[package]] name = "cranelift-native" -version = "0.78.0" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03e2fca76ff57e0532936a71e3fc267eae6a19a86656716479c66e7f912e3d7b" +checksum = "166028ca0343a6ee7bddac0e70084e142b23f99c701bd6f6ea9123afac1a7a46" dependencies = [ "cranelift-codegen", "libc", @@ -1108,9 +1045,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.78.0" +version = "0.80.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f46fec547a1f8a32c54ea61c28be4f4ad234ad95342b718a9a9adcaadb0c778" +checksum = "5012a1cde0c8b3898770b711490d803018ae9bec2d60674ba0e5b2058a874f80" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1181,6 +1118,15 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +[[package]] +name = "crypto-common" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d6b536309245c849479fba3da410962a43ed8e51c26b729208ec0ac2798d0" +dependencies = [ + "generic-array 0.14.5", +] + [[package]] name = "crypto-mac" version = "0.8.0" @@ -1243,230 +1189,235 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ - "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-cli", + "sc-service", "structopt", ] [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-primitives-core", + "cumulus-relay-chain-interface", "futures 0.3.19", "parity-scale-codec", "parking_lot 0.10.2", - "polkadot-node-primitives 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-overseer 0.9.15", - "polkadot-primitives 0.9.15", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives", + "sc-client-api", + "sp-api", + "sp-consensus", + "sp-core", + "sp-runtime", "tracing", ] [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ "async-trait", "cumulus-client-consensus-common", "cumulus-primitives-core", "futures 0.3.19", "parity-scale-codec", - "polkadot-client 0.9.15", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-client-api", + "sc-consensus", "sc-consensus-aura", - "sc-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-consensus-slots", + "sc-telemetry", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", "tracing", ] [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ "async-trait", + "cumulus-relay-chain-interface", "dyn-clone", "futures 0.3.19", "parity-scale-codec", - "polkadot-primitives 0.9.15", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "polkadot-primitives", + "sc-client-api", + "sc-consensus", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-runtime", + "sp-trie", "tracing", ] [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ + "async-trait", + "cumulus-relay-chain-interface", "derive_more", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "parity-scale-codec", - "parking_lot 0.10.2", - "polkadot-client 0.9.15", - "polkadot-node-primitives 0.9.15", - "polkadot-parachain 0.9.15", - "polkadot-primitives 0.9.15", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "parking_lot 0.11.2", + "polkadot-node-primitives", + "polkadot-parachain", + "polkadot-primitives", + "sc-client-api", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "sp-state-machine", "tracing", ] [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ "cumulus-primitives-core", + "cumulus-relay-chain-interface", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "parity-scale-codec", - "polkadot-node-primitives 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-overseer 0.9.15", - "polkadot-primitives 0.9.15", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives", "rand 0.8.4", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-client-api", + "sc-consensus", + "sp-api", + "sp-consensus", + "sp-maybe-compressed-blob", + "sp-runtime", "tracing", ] [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-common", "cumulus-client-pov-recovery", "cumulus-primitives-core", + "cumulus-relay-chain-interface", "parity-scale-codec", "parking_lot 0.10.2", - "polkadot-overseer 0.9.15", - "polkadot-primitives 0.9.15", - "polkadot-service 0.9.15", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "polkadot-overseer", + "polkadot-primitives", + "sc-chain-spec", + "sc-client-api", + "sc-consensus", + "sc-consensus-babe", + "sc-service", + "sc-telemetry", + "sc-tracing", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", "tracing", ] [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ - "frame-executive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-aura 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-executive", + "frame-support", + "frame-system", + "pallet-aura", "parity-scale-codec", "scale-info", "serde", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto", + "sp-consensus-aura", + "sp-runtime", + "sp-std", ] [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ "cumulus-primitives-core", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "xcm 0.9.15", - "xcm-executor 0.9.15", + "sp-io", + "sp-runtime", + "sp-std", + "xcm", + "xcm-executor", ] [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "environmental", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support", + "frame-system", + "impl-trait-for-tuples", "log", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-balances", "parity-scale-codec", - "polkadot-parachain 0.9.15", + "polkadot-parachain", "scale-info", "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "xcm 0.9.15", + "sp-core", + "sp-externalities", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", + "sp-version", + "xcm", ] [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -1477,129 +1428,179 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-session", + "parity-scale-codec", + "sp-runtime", + "sp-std", ] [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ "cumulus-primitives-core", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", "serde", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "xcm 0.9.15", + "sp-io", + "sp-runtime", + "sp-std", + "xcm", ] [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ "cumulus-primitives-core", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support", + "frame-system", "log", "parity-scale-codec", "rand_chacha 0.3.1", "scale-info", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "xcm 0.9.15", - "xcm-executor 0.9.15", + "sp-runtime", + "sp-std", + "xcm", + "xcm-executor", ] [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "impl-trait-for-tuples", + "frame-support", "parity-scale-codec", - "polkadot-core-primitives 0.9.15", - "polkadot-parachain 0.9.15", - "polkadot-primitives 0.9.15", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "polkadot-core-primitives", + "polkadot-parachain", + "polkadot-primitives", + "sp-api", + "sp-runtime", + "sp-std", + "sp-trie", ] [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ "async-trait", "cumulus-primitives-core", + "cumulus-relay-chain-interface", "cumulus-test-relay-sproof-builder", "parity-scale-codec", - "polkadot-client 0.9.15", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-client-api", "scale-info", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-storage", + "sp-trie", "tracing", ] [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ "cumulus-primitives-core", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents", + "sp-std", + "sp-timestamp", ] [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ "cumulus-primitives-core", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support", "parity-scale-codec", - "polkadot-core-primitives 0.9.15", - "polkadot-parachain 0.9.15", - "polkadot-primitives 0.9.15", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "xcm 0.9.15", + "polkadot-core-primitives", + "polkadot-parachain", + "polkadot-primitives", + "sp-runtime", + "sp-std", + "sp-trie", + "xcm", +] + +[[package]] +name = "cumulus-relay-chain-interface" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "derive_more", + "futures 0.3.19", + "parking_lot 0.11.2", + "polkadot-overseer", + "sc-client-api", + "sc-service", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-runtime", + "sp-state-machine", + "thiserror", +] + +[[package]] +name = "cumulus-relay-chain-local" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "cumulus-relay-chain-interface", + "futures 0.3.19", + "futures-timer", + "parking_lot 0.11.2", + "polkadot-client", + "polkadot-service", + "sc-client-api", + "sc-consensus-babe", + "sc-network", + "sc-service", + "sc-telemetry", + "sc-tracing", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "sp-state-machine", + "tracing", ] [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", - "polkadot-primitives 0.9.15", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "polkadot-primitives", + "sp-runtime", + "sp-state-machine", + "sp-std", ] [[package]] @@ -1696,6 +1697,17 @@ dependencies = [ "generic-array 0.14.5", ] +[[package]] +name = "digest" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b697d66081d42af4fba142d56918a3cb21dc8eb63372c6b85d14f44fb9c5979b" +dependencies = [ + "block-buffer 0.10.0", + "crypto-common", + "generic-array 0.14.5", +] + [[package]] name = "directories" version = "4.0.1" @@ -2001,7 +2013,7 @@ checksum = "e8ac3ff5224ef91f3c97e03eb1de2db82743427e91aaa5ac635f454f0b164f5a" dependencies = [ "either", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "log", "num-traits", "parity-scale-codec", @@ -2049,15 +2061,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "fork-tree" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "parity-scale-codec", ] @@ -2075,127 +2079,78 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "linregress", - "log", - "parity-scale-codec", - "paste", - "scale-info", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "frame-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support", + "frame-system", "linregress", "log", "parity-scale-codec", "paste", "scale-info", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-api", + "sp-application-crypto", + "sp-io", + "sp-runtime", + "sp-runtime-interface", + "sp-std", + "sp-storage", ] [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "Inflector", "chrono", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-benchmarking", + "frame-support", "handlebars", "linked-hash-map", "log", "parity-scale-codec", - "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-cli", + "sc-client-db", + "sc-executor", + "sc-service", "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core", + "sp-externalities", + "sp-keystore", + "sp-runtime", + "sp-state-machine", "structopt", ] [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "parity-scale-codec", - "scale-info", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-npos-elections 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "frame-election-provider-support" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "parity-scale-codec", - "scale-info", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-npos-elections 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "frame-executive" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-arithmetic", + "sp-npos-elections", + "sp-std", ] [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-tracing", ] [[package]] @@ -2213,40 +2168,11 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "bitflags", - "frame-metadata", - "frame-support-procedural 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "impl-trait-for-tuples", - "log", - "once_cell", - "parity-scale-codec", - "paste", - "scale-info", - "serde", - "smallvec", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core-hashing-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "tt-call", -] - -[[package]] -name = "frame-support" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "bitflags", "frame-metadata", - "frame-support-procedural 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support-procedural", "impl-trait-for-tuples", "log", "once_cell", @@ -2255,50 +2181,26 @@ dependencies = [ "scale-info", "serde", "smallvec", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core-hashing-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-arithmetic", + "sp-core", + "sp-core-hashing-proc-macro", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-state-machine", + "sp-std", + "sp-tracing", "tt-call", ] [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "Inflector", - "frame-support-procedural-tools 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "frame-support-procedural" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "Inflector", - "frame-support-procedural-tools 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "frame-support-procedural-tools" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "frame-support-procedural-tools-derive 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "proc-macro-crate 1.1.0", + "frame-support-procedural-tools", "proc-macro2", "quote", "syn", @@ -2307,9 +2209,9 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support-procedural-tools-derive 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support-procedural-tools-derive", "proc-macro-crate 1.1.0", "proc-macro2", "quote", @@ -2319,17 +2221,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "frame-support-procedural-tools-derive" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "proc-macro2", "quote", @@ -2339,90 +2231,53 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "frame-system" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support", "log", "parity-scale-codec", "scale-info", "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-version", ] [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "frame-system-rpc-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core", + "sp-runtime", + "sp-std", ] [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "frame-try-runtime" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api", ] [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support", + "sp-api", + "sp-runtime", + "sp-std", ] [[package]] @@ -2579,12 +2434,6 @@ version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ee7c6485c30167ce4dfb83ac568a849fe53274c831081476ee13e0dce1aad72" -[[package]] -name = "futures-timer" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1de7508b218029b0f01662ed8f61b1c964b3ae99d6f25462d0f55a595109df6" - [[package]] name = "futures-timer" version = "3.0.2" @@ -2665,21 +2514,15 @@ dependencies = [ [[package]] name = "gimli" -version = "0.25.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0a01e0497841a3b2db4f8afa483cce65f7e96a3498bd6c541734792aeac8fe7" +checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" dependencies = [ "fallible-iterator", "indexmap", "stable_deref_trait", ] -[[package]] -name = "gimli" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" - [[package]] name = "glob" version = "0.3.0" @@ -2701,15 +2544,14 @@ dependencies = [ [[package]] name = "gloo-timers" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f16c88aa13d2656ef20d1c042086b8767bbe2bdb62526894275a1b062161b2e" +checksum = "4d12a7f4e95cfe710f1d624fb1210b7d961a5fb05c4fd942f4feab06e61f590e" dependencies = [ "futures-channel", "futures-core", "js-sys", "wasm-bindgen", - "web-sys", ] [[package]] @@ -3069,23 +2911,12 @@ dependencies = [ "num-traits", ] -[[package]] -name = "intervalier" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64fa110ec7b8f493f416eed552740d10e7030ad5f63b2308f82c9608ec2df275" -dependencies = [ - "futures 0.3.19", - "futures-timer 2.0.2", -] - [[package]] name = "io-lifetimes" -version = "0.3.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "278e90d6f8a6c76a8334b336e306efa3c5f2b604048cbfd486d6f49878e3af14" +checksum = "f6ef6787e7f0faedc040f95716bdd0e62bcfcf4ba93da053b62dea2691c13864" dependencies = [ - "rustc_version 0.4.0", "winapi 0.3.9", ] @@ -3388,6 +3219,101 @@ dependencies = [ "winapi-build", ] +[[package]] +name = "kusama-runtime" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +dependencies = [ + "beefy-primitives", + "bitvec", + "frame-election-provider-support", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "kusama-runtime-constants", + "log", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-bags-list", + "pallet-balances", + "pallet-bounties", + "pallet-collective", + "pallet-democracy", + "pallet-election-provider-multi-phase", + "pallet-elections-phragmen", + "pallet-gilt", + "pallet-grandpa", + "pallet-identity", + "pallet-im-online", + "pallet-indices", + "pallet-membership", + "pallet-mmr-primitives", + "pallet-multisig", + "pallet-nicks", + "pallet-offences", + "pallet-preimage", + "pallet-proxy", + "pallet-recovery", + "pallet-scheduler", + "pallet-session", + "pallet-society", + "pallet-staking", + "pallet-staking-reward-fn", + "pallet-timestamp", + "pallet-tips", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury", + "pallet-utility", + "pallet-vesting", + "pallet-xcm", + "parity-scale-codec", + "polkadot-primitives", + "polkadot-runtime-common", + "polkadot-runtime-parachains", + "rustc-hex", + "scale-info", + "serde", + "serde_derive", + "smallvec", + "sp-api", + "sp-arithmetic", + "sp-authority-discovery", + "sp-block-builder", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-io", + "sp-npos-elections", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-transaction-pool", + "sp-version", + "static_assertions", + "substrate-wasm-builder", + "xcm", + "xcm-builder", + "xcm-executor", +] + +[[package]] +name = "kusama-runtime-constants" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +dependencies = [ + "frame-support", + "polkadot-primitives", + "polkadot-runtime-common", + "smallvec", + "sp-runtime", +] + [[package]] name = "kv-log-macro" version = "1.0.7" @@ -3450,9 +3376,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.115" +version = "0.2.116" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a8d982fa7a96a000f6ec4cfe966de9703eccde29750df2bb8949da91b0e818d" +checksum = "565dbd88872dbe4cc8a46e527f26483c1d1f7afa6b884a3bd6cd893d4f98da74" [[package]] name = "libloading" @@ -3533,7 +3459,7 @@ dependencies = [ "either", "fnv", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "lazy_static", "libsecp256k1", "log", @@ -3797,7 +3723,7 @@ dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.1.0", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "libp2p-core", "libp2p-swarm", "log", @@ -3886,7 +3812,7 @@ checksum = "7399c5b6361ef525d41c11fcf51635724f832baf5819b30d3d873eabb4fbae4b" dependencies = [ "async-io", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "if-watch", "ipnet", "libc", @@ -4050,9 +3976,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.0.28" +version = "0.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "687387ff42ec7ea4f2149035a5675fedb675d26f98db90a1846ac63d3addb5f5" +checksum = "a261afc61b7a5e323933b402ca6a1765183687c614789b1e4db7762ed4230bca" [[package]] name = "lock_api" @@ -4065,9 +3991,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109" +checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" dependencies = [ "scopeguard", ] @@ -4209,9 +4135,9 @@ dependencies = [ [[package]] name = "memory-db" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de006e09d04fc301a5f7e817b75aa49801c4479a8af753764416b085337ddcc5" +checksum = "d505169b746dacf02f7d14d8c80b34edfd8212159c63d23c977739a0d960c626" dependencies = [ "hash-db", "hashbrown", @@ -4247,33 +4173,21 @@ dependencies = [ [[package]] name = "metered-channel" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "derive_more", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "thiserror", "tracing", ] [[package]] -name = "metered-channel" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "derive_more", - "futures 0.3.19", - "futures-timer 3.0.2", - "thiserror", - "tracing", -] - -[[package]] -name = "mick-jaeger" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd2c2cc134e57461f0898b0e921f0a7819b5e3f3a4335b9aa390ce81a5f36fb9" +name = "mick-jaeger" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd2c2cc134e57461f0898b0e921f0a7819b5e3f3a4335b9aa390ce81a5f36fb9" dependencies = [ "futures 0.3.19", "rand 0.8.4", @@ -4693,1003 +4607,574 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "parity-scale-codec", - "scale-info", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "pallet-aura" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "parity-scale-codec", - "scale-info", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-authority-discovery" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support", + "frame-system", + "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto", + "sp-consensus-aura", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "parity-scale-codec", - "scale-info", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-authorship" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "impl-trait-for-tuples", + "frame-support", + "frame-system", + "pallet-session", "parity-scale-codec", "scale-info", - "sp-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto", + "sp-authority-discovery", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support", + "frame-system", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-babe" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "log", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "parity-scale-codec", - "scale-info", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-vrf 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-authorship", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "log", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "parity-scale-codec", - "scale-info", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-vrf 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-bags-list" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-election-provider-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", + "pallet-authorship", + "pallet-session", + "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto", + "sp-consensus-babe", + "sp-consensus-vrf", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", ] [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "frame-election-provider-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "log", - "parity-scale-codec", - "scale-info", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-balances" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-election-provider-support", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-beefy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "parity-scale-codec", - "scale-info", - "serde", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "parity-scale-codec", - "scale-info", - "serde", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-beefy-mmr" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "beefy-merkle-tree 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "hex", - "libsecp256k1", - "log", - "pallet-beefy 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-mmr 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "beefy-primitives", + "frame-support", + "frame-system", + "pallet-session", "parity-scale-codec", "scale-info", "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "beefy-merkle-tree 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "beefy-merkle-tree", + "beefy-primitives", + "frame-support", + "frame-system", "hex", "libsecp256k1", "log", - "pallet-beefy 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-mmr 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-beefy", + "pallet-mmr", + "pallet-mmr-primitives", + "pallet-session", "parity-scale-codec", "scale-info", "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-bounties" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "log", - "pallet-treasury 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "parity-scale-codec", - "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support", + "frame-system", "log", - "pallet-treasury 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-treasury", "parity-scale-codec", "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-authorship", + "pallet-session", "parity-scale-codec", "rand 0.7.3", "scale-info", "serde", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "pallet-collective" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "log", - "parity-scale-codec", - "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime", + "sp-staking", + "sp-std", ] [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-democracy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "parity-scale-codec", - "scale-info", - "serde", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", "serde", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-election-provider-multi-phase" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "frame-election-provider-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "log", - "parity-scale-codec", - "scale-info", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-npos-elections 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "static_assertions", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-election-provider-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-election-provider-support", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-npos-elections 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-npos-elections", + "sp-runtime", + "sp-std", "static_assertions", ] [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "log", - "parity-scale-codec", - "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-npos-elections 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "pallet-elections-phragmen" -version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-npos-elections 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core", + "sp-io", + "sp-npos-elections", + "sp-runtime", + "sp-std", ] [[package]] -name = "pallet-grandpa" +name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "log", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-arithmetic", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "parity-scale-codec", - "scale-info", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-identity" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "enumflags2", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-authorship", + "pallet-session", "parity-scale-codec", "scale-info", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto", + "sp-core", + "sp-finality-grandpa", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", ] [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "enumflags2", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "parity-scale-codec", - "scale-info", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-im-online" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "log", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support", + "frame-system", "log", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "parity-scale-codec", - "scale-info", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-indices" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-authorship", "parity-scale-codec", "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keyring 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-std", ] [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "parity-scale-codec", - "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keyring 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-membership" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "log", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core", + "sp-io", + "sp-keyring", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-mmr" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "ckb-merkle-mountain-range", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "parity-scale-codec", - "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "ckb-merkle-mountain-range", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-mmr-primitives", "parity-scale-codec", "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-mmr-primitives" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "log", - "parity-scale-codec", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support", + "frame-system", "log", "parity-scale-codec", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-mmr-rpc" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "parity-scale-codec", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api", + "sp-core", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", - "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-mmr-primitives", "parity-scale-codec", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-multisig" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "parity-scale-codec", - "scale-info", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-runtime", ] [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "parity-scale-codec", - "scale-info", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-nicks" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-nicks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "parity-scale-codec", - "scale-info", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-offences" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "log", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "serde", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support", + "frame-system", "log", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-balances", "parity-scale-codec", "scale-info", "serde", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-runtime", + "sp-staking", + "sp-std", ] [[package]] -name = "pallet-proxy" +name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "pallet-scheduler" +name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "log", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "log", - "parity-scale-codec", - "scale-info", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-session" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "impl-trait-for-tuples", + "frame-benchmarking", + "frame-support", + "frame-system", "log", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "parity-scale-codec", "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support", + "frame-system", "impl-trait-for-tuples", "log", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-trie", ] [[package]] -name = "pallet-staking" +name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-election-provider-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "log", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support", + "frame-system", "parity-scale-codec", + "rand_chacha 0.2.2", "scale-info", - "serde", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-election-provider-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-election-provider-support", + "frame-support", + "frame-system", "log", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-authorship", + "pallet-session", "parity-scale-codec", "scale-info", "serde", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-application-crypto", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-std", ] [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -5698,340 +5183,195 @@ dependencies = [ ] [[package]] -name = "pallet-staking-reward-curve" +name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", + "log", + "sp-arithmetic", ] [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-template" version = "0.1.0" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-std", + "sp-timestamp", ] [[package]] -name = "pallet-timestamp" +name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support", + "frame-system", "log", + "pallet-treasury", "parity-scale-codec", "scale-info", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "pallet-tips" +name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "log", - "pallet-treasury 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "smallvec", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] -name = "pallet-tips" +name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "log", - "pallet-treasury 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", - "scale-info", - "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-transaction-payment" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "parity-scale-codec", - "scale-info", - "serde", - "smallvec", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "pallet-transaction-payment" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "parity-scale-codec", - "scale-info", - "serde", - "smallvec", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-transaction-payment-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "pallet-transaction-payment-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-transaction-payment-rpc-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-rpc", + "sp-runtime", ] [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-treasury" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "impl-trait-for-tuples", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-transaction-payment", "parity-scale-codec", - "scale-info", - "serde", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api", + "sp-runtime", ] [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support", + "frame-system", "impl-trait-for-tuples", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-balances", "parity-scale-codec", "scale-info", "serde", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-utility" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "parity-scale-codec", - "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "parity-scale-codec", - "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-vesting" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "log", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "log", - "parity-scale-codec", - "scale-info", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "pallet-xcm" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "xcm 0.9.15-1", - "xcm-executor 0.9.15-1", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-xcm" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "xcm 0.9.15", - "xcm-executor 0.9.15", + "sp-core", + "sp-runtime", + "sp-std", + "xcm", + "xcm-executor", ] [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.15#d1c06ce0bda73898bcb685212e7740f5afc0c2dd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" dependencies = [ "cumulus-primitives-core", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", "serde", @@ -6049,52 +5389,56 @@ dependencies = [ "cumulus-client-service", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", + "cumulus-relay-chain-interface", + "cumulus-relay-chain-local", "derive_more", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-benchmarking", "frame-benchmarking-cli", "hex-literal", "jsonrpc-core", "log", - "pallet-transaction-payment-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-transaction-payment-rpc", "parachain-template-runtime", "parity-scale-codec", "polkadot-cli", - "polkadot-parachain 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "polkadot-service 0.9.15-1", - "sc-basic-authorship 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-service", + "sc-basic-authorship", + "sc-chain-spec", + "sc-cli", + "sc-client-api", + "sc-consensus", + "sc-executor", + "sc-keystore", + "sc-network", + "sc-rpc", + "sc-rpc-api", + "sc-service", + "sc-telemetry", + "sc-tracing", + "sc-transaction-pool", + "sc-transaction-pool-api", + "serde", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-timestamp", + "sp-transaction-pool", "structopt", "substrate-build-script-utils", - "substrate-frame-rpc-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "substrate-frame-rpc-system", + "substrate-prometheus-endpoint", + "try-runtime-cli", + "xcm", ] [[package]] @@ -6110,48 +5454,49 @@ dependencies = [ "cumulus-primitives-core", "cumulus-primitives-timestamp", "cumulus-primitives-utility", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-executive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", "frame-system-benchmarking", - "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system-rpc-runtime-api", + "frame-try-runtime", "hex-literal", "log", - "pallet-aura 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-aura", + "pallet-authorship", + "pallet-balances", "pallet-collator-selection", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-session", "pallet-sudo", "pallet-template", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-xcm 0.9.15-1", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-xcm", "parachain-info", "parity-scale-codec", - "polkadot-parachain 0.9.15-1", - "polkadot-runtime-common 0.9.15-1", + "polkadot-parachain", + "polkadot-runtime-common", "scale-info", "serde", "smallvec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "substrate-wasm-builder 5.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "xcm 0.9.15-1", - "xcm-builder 0.9.15-1", - "xcm-executor 0.9.15-1", + "sp-api", + "sp-block-builder", + "sp-consensus-aura", + "sp-core", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-transaction-pool", + "sp-version", + "substrate-wasm-builder", + "xcm", + "xcm-builder", + "xcm-executor", ] [[package]] @@ -6304,7 +5649,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" dependencies = [ "instant", - "lock_api 0.4.5", + "lock_api 0.4.6", "parking_lot_core 0.8.5", ] @@ -6503,156 +5848,90 @@ checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "futures 0.3.19", - "polkadot-node-network-protocol 0.9.15-1", - "polkadot-node-primitives 0.9.15-1", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "tracing", -] - -[[package]] -name = "polkadot-approval-distribution" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "futures 0.3.19", - "polkadot-node-network-protocol 0.9.15", - "polkadot-node-primitives 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-primitives 0.9.15", - "tracing", -] - -[[package]] -name = "polkadot-availability-bitfield-distribution" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "futures 0.3.19", - "polkadot-node-network-protocol 0.9.15-1", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-primitives 0.9.15-1", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", "tracing", ] [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "futures 0.3.19", - "polkadot-node-network-protocol 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-primitives 0.9.15", - "tracing", -] - -[[package]] -name = "polkadot-availability-distribution" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ - "derive_more", "futures 0.3.19", - "lru 0.7.2", - "parity-scale-codec", - "polkadot-erasure-coding 0.9.15-1", - "polkadot-node-network-protocol 0.9.15-1", - "polkadot-node-primitives 0.9.15-1", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "rand 0.8.4", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "thiserror", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", "tracing", ] [[package]] name = "polkadot-availability-distribution" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "derive_more", "futures 0.3.19", "lru 0.7.2", "parity-scale-codec", - "polkadot-erasure-coding 0.9.15", - "polkadot-node-network-protocol 0.9.15", - "polkadot-node-primitives 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-primitives 0.9.15", - "rand 0.8.4", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-availability-recovery" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "futures 0.3.19", - "lru 0.7.2", - "parity-scale-codec", - "polkadot-erasure-coding 0.9.15-1", - "polkadot-node-network-protocol 0.9.15-1", - "polkadot-node-primitives 0.9.15-1", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-primitives 0.9.15-1", + "polkadot-erasure-coding", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", "rand 0.8.4", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core", + "sp-keystore", "thiserror", "tracing", ] [[package]] name = "polkadot-availability-recovery" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "futures 0.3.19", "lru 0.7.2", "parity-scale-codec", - "polkadot-erasure-coding 0.9.15", - "polkadot-node-network-protocol 0.9.15", - "polkadot-node-primitives 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-primitives 0.9.15", + "polkadot-erasure-coding", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", "rand 0.8.4", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-network", "thiserror", "tracing", ] [[package]] name = "polkadot-cli" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "frame-benchmarking-cli", "futures 0.3.19", "log", - "polkadot-node-core-pvf 0.9.15-1", - "polkadot-service 0.9.15-1", - "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "polkadot-node-core-pvf", + "polkadot-node-metrics", + "polkadot-performance-test", + "polkadot-service", + "sc-cli", + "sc-service", + "sc-tracing", + "sp-core", + "sp-trie", "structopt", "substrate-build-script-utils", "thiserror", @@ -6661,828 +5940,412 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "polkadot-primitives 0.9.15-1", - "polkadot-runtime 0.9.15-1", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "polkadot-client" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "polkadot-primitives 0.9.15", - "polkadot-runtime 0.9.15", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +dependencies = [ + "beefy-primitives", + "frame-benchmarking", + "frame-system-rpc-runtime-api", + "pallet-mmr-primitives", + "pallet-transaction-payment-rpc-runtime-api", + "polkadot-primitives", + "polkadot-runtime", + "sc-client-api", + "sc-consensus", + "sc-executor", + "sc-service", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-finality-grandpa", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-storage", + "sp-transaction-pool", ] [[package]] name = "polkadot-collator-protocol" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "always-assert", "derive_more", "futures 0.3.19", - "futures-timer 3.0.2", - "polkadot-node-network-protocol 0.9.15-1", - "polkadot-node-primitives 0.9.15-1", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "futures-timer", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-core", + "sp-keystore", + "sp-runtime", "thiserror", "tracing", ] -[[package]] -name = "polkadot-collator-protocol" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "always-assert", - "derive_more", - "futures 0.3.19", - "futures-timer 3.0.2", - "polkadot-node-network-protocol 0.9.15", - "polkadot-node-primitives 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-primitives 0.9.15", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-core-primitives" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "parity-scale-codec", - "parity-util-mem", - "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - [[package]] name = "polkadot-core-primitives" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "parity-scale-codec", "parity-util-mem", "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "polkadot-dispute-distribution" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "derive_more", - "futures 0.3.19", - "lru 0.7.2", - "parity-scale-codec", - "polkadot-erasure-coding 0.9.15-1", - "polkadot-node-network-protocol 0.9.15-1", - "polkadot-node-primitives 0.9.15-1", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "thiserror", - "tracing", + "sp-core", + "sp-runtime", + "sp-std", ] [[package]] name = "polkadot-dispute-distribution" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "derive_more", "futures 0.3.19", "lru 0.7.2", "parity-scale-codec", - "polkadot-erasure-coding 0.9.15", - "polkadot-node-network-protocol 0.9.15", - "polkadot-node-primitives 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-primitives 0.9.15", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "polkadot-erasure-coding", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sc-network", + "sp-application-crypto", + "sp-keystore", "thiserror", "tracing", ] [[package]] name = "polkadot-erasure-coding" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "parity-scale-codec", - "polkadot-node-primitives 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "reed-solomon-novelpoly", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "thiserror", -] - -[[package]] -name = "polkadot-erasure-coding" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "parity-scale-codec", - "polkadot-node-primitives 0.9.15", - "polkadot-primitives 0.9.15", + "polkadot-node-primitives", + "polkadot-primitives", "reed-solomon-novelpoly", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core", + "sp-trie", "thiserror", ] [[package]] name = "polkadot-gossip-support" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "futures 0.3.19", - "futures-timer 3.0.2", - "polkadot-node-network-protocol 0.9.15-1", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "rand 0.8.4", - "rand_chacha 0.3.1", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "tracing", -] - -[[package]] -name = "polkadot-gossip-support" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "futures 0.3.19", - "futures-timer 3.0.2", - "polkadot-node-network-protocol 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-primitives 0.9.15", + "futures-timer", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", "rand 0.8.4", "rand_chacha 0.3.1", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "tracing", -] - -[[package]] -name = "polkadot-network-bridge" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "async-trait", - "futures 0.3.19", - "parity-scale-codec", - "parking_lot 0.11.2", - "polkadot-node-network-protocol 0.9.15-1", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-overseer 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-network", + "sp-application-crypto", + "sp-core", + "sp-keystore", "tracing", ] [[package]] name = "polkadot-network-bridge" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "async-trait", "futures 0.3.19", "parity-scale-codec", "parking_lot 0.11.2", - "polkadot-node-network-protocol 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-overseer 0.9.15", - "polkadot-primitives 0.9.15", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "tracing", -] - -[[package]] -name = "polkadot-node-collation-generation" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "futures 0.3.19", - "parity-scale-codec", - "polkadot-erasure-coding 0.9.15-1", - "polkadot-node-primitives 0.9.15-1", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "thiserror", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-primitives", + "sc-network", + "sp-consensus", "tracing", ] [[package]] name = "polkadot-node-collation-generation" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "futures 0.3.19", "parity-scale-codec", - "polkadot-erasure-coding 0.9.15", - "polkadot-node-primitives 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-primitives 0.9.15", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "polkadot-erasure-coding", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-core", + "sp-maybe-compressed-blob", "thiserror", "tracing", ] [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "bitvec", "derive_more", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "kvdb", "lru 0.7.2", "merlin", "parity-scale-codec", - "polkadot-node-jaeger 0.9.15-1", - "polkadot-node-primitives 0.9.15-1", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-overseer 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "polkadot-node-jaeger", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-primitives", + "sc-keystore", "schnorrkel", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-application-crypto", + "sp-consensus", + "sp-consensus-slots", + "sp-runtime", "tracing", ] [[package]] -name = "polkadot-node-core-approval-voting" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +name = "polkadot-node-core-av-store" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "bitvec", - "derive_more", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "kvdb", - "lru 0.7.2", - "merlin", "parity-scale-codec", - "polkadot-node-jaeger 0.9.15", - "polkadot-node-primitives 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-overseer 0.9.15", - "polkadot-primitives 0.9.15", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "schnorrkel", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "polkadot-erasure-coding", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-primitives", + "thiserror", "tracing", ] [[package]] -name = "polkadot-node-core-av-store" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +name = "polkadot-node-core-backing" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "bitvec", "futures 0.3.19", - "futures-timer 3.0.2", - "kvdb", - "parity-scale-codec", - "polkadot-erasure-coding 0.9.15-1", - "polkadot-node-primitives 0.9.15-1", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-overseer 0.9.15-1", - "polkadot-primitives 0.9.15-1", + "polkadot-erasure-coding", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "polkadot-statement-table", + "sp-keystore", "thiserror", "tracing", ] [[package]] -name = "polkadot-node-core-av-store" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +name = "polkadot-node-core-bitfield-signing" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ - "bitvec", "futures 0.3.19", - "futures-timer 3.0.2", - "kvdb", - "parity-scale-codec", - "polkadot-erasure-coding 0.9.15", - "polkadot-node-primitives 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-overseer 0.9.15", - "polkadot-primitives 0.9.15", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-keystore", "thiserror", "tracing", + "wasm-timer", ] [[package]] -name = "polkadot-node-core-backing" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +name = "polkadot-node-core-candidate-validation" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ - "bitvec", + "async-trait", "futures 0.3.19", - "polkadot-erasure-coding 0.9.15-1", - "polkadot-node-primitives 0.9.15-1", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "polkadot-statement-table 0.9.15-1", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "thiserror", + "parity-scale-codec", + "polkadot-node-core-pvf", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-parachain", + "polkadot-primitives", + "sp-maybe-compressed-blob", "tracing", ] [[package]] -name = "polkadot-node-core-backing" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +name = "polkadot-node-core-chain-api" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ - "bitvec", "futures 0.3.19", - "polkadot-erasure-coding 0.9.15", - "polkadot-node-primitives 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-primitives 0.9.15", - "polkadot-statement-table 0.9.15", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sc-client-api", + "sc-consensus-babe", + "sp-blockchain", "tracing", ] [[package]] -name = "polkadot-node-core-bitfield-signing" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +name = "polkadot-node-core-chain-selection" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "futures 0.3.19", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "futures-timer", + "kvdb", + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", "thiserror", "tracing", - "wasm-timer", ] [[package]] -name = "polkadot-node-core-bitfield-signing" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +name = "polkadot-node-core-dispute-coordinator" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "futures 0.3.19", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-primitives 0.9.15", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "kvdb", + "lru 0.7.2", + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sc-keystore", "thiserror", "tracing", - "wasm-timer", ] [[package]] -name = "polkadot-node-core-candidate-validation" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +name = "polkadot-node-core-parachains-inherent" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "async-trait", "futures 0.3.19", - "parity-scale-codec", - "polkadot-node-core-pvf 0.9.15-1", - "polkadot-node-primitives 0.9.15-1", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-parachain 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "futures-timer", + "polkadot-node-subsystem", + "polkadot-primitives", + "sp-blockchain", + "sp-inherents", + "sp-runtime", + "thiserror", "tracing", ] [[package]] -name = "polkadot-node-core-candidate-validation" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +name = "polkadot-node-core-provisioner" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ - "async-trait", + "bitvec", "futures 0.3.19", - "parity-scale-codec", - "polkadot-node-core-pvf 0.9.15", - "polkadot-node-primitives 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-parachain 0.9.15", - "polkadot-primitives 0.9.15", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "futures-timer", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "rand 0.8.4", + "thiserror", "tracing", ] [[package]] -name = "polkadot-node-core-chain-api" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +name = "polkadot-node-core-pvf" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ + "always-assert", + "assert_matches", + "async-process", + "async-std", "futures 0.3.19", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "futures-timer", + "parity-scale-codec", + "pin-project 1.0.10", + "polkadot-core-primitives", + "polkadot-node-subsystem-util", + "polkadot-parachain", + "rand 0.8.4", + "sc-executor", + "sc-executor-common", + "sc-executor-wasmtime", + "slotmap", + "sp-core", + "sp-externalities", + "sp-io", + "sp-maybe-compressed-blob", + "sp-tracing", + "sp-wasm-interface", "tracing", ] [[package]] -name = "polkadot-node-core-chain-api" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +name = "polkadot-node-core-pvf-checker" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "futures 0.3.19", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-primitives 0.9.15", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-primitives", + "sp-keystore", + "thiserror", "tracing", ] [[package]] -name = "polkadot-node-core-chain-selection" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "futures 0.3.19", - "futures-timer 3.0.2", - "kvdb", - "parity-scale-codec", - "polkadot-node-primitives 0.9.15-1", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-node-core-chain-selection" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "futures 0.3.19", - "futures-timer 3.0.2", - "kvdb", - "parity-scale-codec", - "polkadot-node-primitives 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-primitives 0.9.15", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-node-core-dispute-coordinator" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "bitvec", - "derive_more", - "futures 0.3.19", - "kvdb", - "parity-scale-codec", - "polkadot-node-primitives 0.9.15-1", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-node-core-dispute-coordinator" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "bitvec", - "derive_more", - "futures 0.3.19", - "kvdb", - "parity-scale-codec", - "polkadot-node-primitives 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-primitives 0.9.15", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-node-core-dispute-participation" -version = "0.9.14" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "futures 0.3.19", - "polkadot-node-primitives 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-primitives 0.9.15", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-node-core-dispute-participation" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "futures 0.3.19", - "polkadot-node-primitives 0.9.15-1", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-node-core-parachains-inherent" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "async-trait", - "futures 0.3.19", - "futures-timer 3.0.2", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-node-core-parachains-inherent" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "async-trait", - "futures 0.3.19", - "futures-timer 3.0.2", - "polkadot-node-subsystem 0.9.15", - "polkadot-primitives 0.9.15", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-node-core-provisioner" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "bitvec", - "futures 0.3.19", - "futures-timer 3.0.2", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-node-core-provisioner" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "bitvec", - "futures 0.3.19", - "futures-timer 3.0.2", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-primitives 0.9.15", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-node-core-pvf" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "always-assert", - "assert_matches", - "async-process", - "async-std", - "futures 0.3.19", - "futures-timer 3.0.2", - "libc", - "parity-scale-codec", - "pin-project 1.0.10", - "polkadot-core-primitives 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-parachain 0.9.15-1", - "rand 0.8.4", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-executor-wasmtime 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "slotmap", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "tracing", -] - -[[package]] -name = "polkadot-node-core-pvf" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "always-assert", - "assert_matches", - "async-process", - "async-std", - "futures 0.3.19", - "futures-timer 3.0.2", - "libc", - "parity-scale-codec", - "pin-project 1.0.10", - "polkadot-core-primitives 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-parachain 0.9.15", - "rand 0.8.4", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-executor-wasmtime 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "slotmap", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "tracing", -] - -[[package]] -name = "polkadot-node-core-runtime-api" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "futures 0.3.19", - "memory-lru", - "parity-util-mem", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "tracing", -] - -[[package]] -name = "polkadot-node-core-runtime-api" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +name = "polkadot-node-core-runtime-api" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "futures 0.3.19", "memory-lru", "parity-util-mem", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-primitives 0.9.15", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-api", + "sp-authority-discovery", + "sp-consensus-babe", + "sp-core", "tracing", ] [[package]] name = "polkadot-node-jaeger" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "async-std", - "lazy_static", - "log", - "mick-jaeger", - "parity-scale-codec", - "parking_lot 0.11.2", - "polkadot-node-primitives 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "thiserror", -] - -[[package]] -name = "polkadot-node-jaeger" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "async-std", "lazy_static", @@ -7490,318 +6353,171 @@ dependencies = [ "mick-jaeger", "parity-scale-codec", "parking_lot 0.11.2", - "polkadot-node-primitives 0.9.15", - "polkadot-primitives 0.9.15", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "polkadot-node-primitives", + "polkadot-primitives", + "sc-network", + "sp-core", "thiserror", ] [[package]] name = "polkadot-node-metrics" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "futures 0.3.19", - "futures-timer 3.0.2", - "metered-channel 0.9.15-1", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "polkadot-node-metrics" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "futures 0.3.19", - "futures-timer 3.0.2", - "metered-channel 0.9.15", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "polkadot-node-network-protocol" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ - "async-trait", - "derive_more", + "bs58", "futures 0.3.19", + "futures-timer", + "log", + "metered-channel", "parity-scale-codec", - "polkadot-node-jaeger 0.9.15-1", - "polkadot-node-primitives 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "sc-authority-discovery 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "strum", - "thiserror", + "polkadot-primitives", + "sc-cli", + "sc-service", + "sc-tracing", + "substrate-prometheus-endpoint", + "tracing", ] [[package]] name = "polkadot-node-network-protocol" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "async-trait", "derive_more", "futures 0.3.19", "parity-scale-codec", - "polkadot-node-jaeger 0.9.15", - "polkadot-node-primitives 0.9.15", - "polkadot-primitives 0.9.15", - "sc-authority-discovery 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "strum", - "thiserror", -] - -[[package]] -name = "polkadot-node-primitives" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "bounded-vec", - "futures 0.3.19", - "parity-scale-codec", - "polkadot-parachain 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "schnorrkel", - "serde", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-vrf 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "polkadot-node-jaeger", + "polkadot-node-primitives", + "polkadot-primitives", + "sc-authority-discovery", + "sc-network", + "strum 0.23.0", "thiserror", - "zstd", ] [[package]] name = "polkadot-node-primitives" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "bounded-vec", "futures 0.3.19", "parity-scale-codec", - "polkadot-parachain 0.9.15", - "polkadot-primitives 0.9.15", + "polkadot-parachain", + "polkadot-primitives", "schnorrkel", "serde", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-vrf 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-application-crypto", + "sp-consensus-babe", + "sp-consensus-vrf", + "sp-core", + "sp-keystore", + "sp-maybe-compressed-blob", "thiserror", "zstd", ] [[package]] name = "polkadot-node-subsystem" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ - "polkadot-node-jaeger 0.9.15-1", - "polkadot-node-subsystem-types 0.9.15-1", - "polkadot-overseer 0.9.15-1", -] - -[[package]] -name = "polkadot-node-subsystem" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "polkadot-node-jaeger 0.9.15", - "polkadot-node-subsystem-types 0.9.15", - "polkadot-overseer 0.9.15", + "polkadot-node-jaeger", + "polkadot-node-subsystem-types", + "polkadot-overseer", ] [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "derive_more", "futures 0.3.19", - "polkadot-node-jaeger 0.9.15-1", - "polkadot-node-network-protocol 0.9.15-1", - "polkadot-node-primitives 0.9.15-1", - "polkadot-overseer-gen 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "polkadot-statement-table 0.9.15-1", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "polkadot-node-jaeger", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-overseer-gen", + "polkadot-primitives", + "polkadot-statement-table", + "sc-network", "smallvec", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "thiserror", -] - -[[package]] -name = "polkadot-node-subsystem-types" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "derive_more", - "futures 0.3.19", - "polkadot-node-jaeger 0.9.15", - "polkadot-node-network-protocol 0.9.15", - "polkadot-node-primitives 0.9.15", - "polkadot-overseer-gen 0.9.15", - "polkadot-primitives 0.9.15", - "polkadot-statement-table 0.9.15", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "smallvec", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "async-trait", "derive_more", "futures 0.3.19", "itertools", "lru 0.7.2", - "metered-channel 0.9.15-1", + "metered-channel", "parity-scale-codec", "pin-project 1.0.10", - "polkadot-node-jaeger 0.9.15-1", - "polkadot-node-metrics 0.9.15-1", - "polkadot-node-network-protocol 0.9.15-1", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-overseer 0.9.15-1", - "polkadot-primitives 0.9.15-1", + "polkadot-node-jaeger", + "polkadot-node-metrics", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives", "rand 0.8.4", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-application-crypto", + "sp-core", + "sp-keystore", "thiserror", "tracing", ] -[[package]] -name = "polkadot-node-subsystem-util" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "async-trait", - "derive_more", - "futures 0.3.19", - "itertools", - "lru 0.7.2", - "metered-channel 0.9.15", - "parity-scale-codec", - "pin-project 1.0.10", - "polkadot-node-jaeger 0.9.15", - "polkadot-node-metrics 0.9.15", - "polkadot-node-network-protocol 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-overseer 0.9.15", - "polkadot-primitives 0.9.15", - "rand 0.8.4", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-overseer" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "futures 0.3.19", - "futures-timer 3.0.2", - "lru 0.7.2", - "parity-util-mem", - "parking_lot 0.11.2", - "polkadot-node-metrics 0.9.15-1", - "polkadot-node-network-protocol 0.9.15-1", - "polkadot-node-primitives 0.9.15-1", - "polkadot-node-subsystem-types 0.9.15-1", - "polkadot-overseer-gen 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "tracing", -] - [[package]] name = "polkadot-overseer" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "lru 0.7.2", "parity-util-mem", "parking_lot 0.11.2", - "polkadot-node-metrics 0.9.15", - "polkadot-node-network-protocol 0.9.15", - "polkadot-node-primitives 0.9.15", - "polkadot-node-subsystem-types 0.9.15", - "polkadot-overseer-gen 0.9.15", - "polkadot-primitives 0.9.15", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "polkadot-node-metrics", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem-types", + "polkadot-overseer-gen", + "polkadot-primitives", + "sc-client-api", + "sp-api", "tracing", ] [[package]] name = "polkadot-overseer-gen" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "async-trait", "futures 0.3.19", - "futures-timer 3.0.2", - "metered-channel 0.9.15-1", + "futures-timer", + "metered-channel", "pin-project 1.0.10", - "polkadot-node-network-protocol 0.9.15-1", - "polkadot-node-primitives 0.9.15-1", - "polkadot-overseer-gen-proc-macro 0.9.15-1", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-overseer-gen-proc-macro", "thiserror", "tracing", ] -[[package]] -name = "polkadot-overseer-gen" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "async-trait", - "futures 0.3.19", - "futures-timer 3.0.2", - "metered-channel 0.9.15", - "pin-project 1.0.10", - "polkadot-node-network-protocol 0.9.15", - "polkadot-node-primitives 0.9.15", - "polkadot-overseer-gen-proc-macro 0.9.15", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-overseer-gen-proc-macro" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "polkadot-overseer-gen-proc-macro" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -7811,734 +6527,411 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "derive_more", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "parity-scale-codec", - "parity-util-mem", - "polkadot-core-primitives 0.9.15-1", - "scale-info", - "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "polkadot-parachain" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "derive_more", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support", "parity-scale-codec", "parity-util-mem", - "polkadot-core-primitives 0.9.15", + "polkadot-core-primitives", "scale-info", "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core", + "sp-runtime", + "sp-std", ] [[package]] -name = "polkadot-primitives" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +name = "polkadot-performance-test" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ - "bitvec", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "hex-literal", - "parity-scale-codec", - "parity-util-mem", - "polkadot-core-primitives 0.9.15-1", - "polkadot-parachain 0.9.15-1", - "scale-info", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "env_logger 0.9.0", + "kusama-runtime", + "log", + "polkadot-erasure-coding", + "polkadot-node-core-pvf", + "polkadot-node-primitives", + "quote", + "thiserror", ] [[package]] name = "polkadot-primitives" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "bitvec", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-system", "hex-literal", "parity-scale-codec", "parity-util-mem", - "polkadot-core-primitives 0.9.15", - "polkadot-parachain 0.9.15", + "polkadot-core-primitives", + "polkadot-parachain", "scale-info", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-authority-discovery", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-staking", + "sp-std", + "sp-trie", + "sp-version", ] [[package]] name = "polkadot-rpc" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ - "beefy-gadget 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "beefy-gadget-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "beefy-gadget", + "beefy-gadget-rpc", "jsonrpc-core", - "pallet-mmr-rpc 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-transaction-payment-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "polkadot-primitives 0.9.15-1", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus-babe-rpc 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus-epochs 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-finality-grandpa 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-finality-grandpa-rpc 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-sync-state-rpc 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "substrate-frame-rpc-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "polkadot-rpc" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "beefy-gadget 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "beefy-gadget-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "jsonrpc-core", - "pallet-mmr-rpc 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-transaction-payment-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "polkadot-primitives 0.9.15", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus-babe-rpc 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus-epochs 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-finality-grandpa 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-finality-grandpa-rpc 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-sync-state-rpc 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "substrate-frame-rpc-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-mmr-rpc", + "pallet-transaction-payment-rpc", + "polkadot-primitives", + "sc-chain-spec", + "sc-client-api", + "sc-consensus-babe", + "sc-consensus-babe-rpc", + "sc-consensus-epochs", + "sc-finality-grandpa", + "sc-finality-grandpa-rpc", + "sc-rpc", + "sc-sync-state-rpc", + "sc-transaction-pool-api", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-keystore", + "sp-runtime", + "substrate-frame-rpc-system", ] [[package]] name = "polkadot-runtime" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ - "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "beefy-primitives", "bitvec", - "frame-election-provider-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-executive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-try-runtime 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "log", - "pallet-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-babe 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-bags-list 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-bounties 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-collective 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-democracy 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-election-provider-multi-phase 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-elections-phragmen 5.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-identity 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-im-online 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-indices 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-membership 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-multisig 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-nicks 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-offences 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-proxy 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-scheduler 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-staking-reward-curve 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-tips 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-treasury 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-utility 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-vesting 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-xcm 0.9.15-1", - "parity-scale-codec", - "polkadot-primitives 0.9.15-1", - "polkadot-runtime-common 0.9.15-1", - "polkadot-runtime-parachains 0.9.15-1", + "frame-election-provider-support", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "log", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-bags-list", + "pallet-balances", + "pallet-bounties", + "pallet-collective", + "pallet-democracy", + "pallet-election-provider-multi-phase", + "pallet-elections-phragmen", + "pallet-grandpa", + "pallet-identity", + "pallet-im-online", + "pallet-indices", + "pallet-membership", + "pallet-mmr-primitives", + "pallet-multisig", + "pallet-nicks", + "pallet-offences", + "pallet-preimage", + "pallet-proxy", + "pallet-scheduler", + "pallet-session", + "pallet-staking", + "pallet-staking-reward-curve", + "pallet-timestamp", + "pallet-tips", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury", + "pallet-utility", + "pallet-vesting", + "pallet-xcm", + "parity-scale-codec", + "polkadot-primitives", + "polkadot-runtime-common", + "polkadot-runtime-constants", + "polkadot-runtime-parachains", "rustc-hex", "scale-info", "serde", "serde_derive", "smallvec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-npos-elections 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-io", + "sp-npos-elections", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-transaction-pool", + "sp-version", "static_assertions", - "substrate-wasm-builder 5.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "xcm 0.9.15-1", - "xcm-builder 0.9.15-1", - "xcm-executor 0.9.15-1", -] - -[[package]] -name = "polkadot-runtime" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "bitvec", - "frame-election-provider-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-executive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-try-runtime 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "log", - "pallet-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-babe 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-bags-list 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-bounties 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-collective 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-democracy 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-election-provider-multi-phase 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-elections-phragmen 5.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-identity 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-im-online 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-indices 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-membership 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-multisig 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-nicks 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-offences 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-proxy 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-scheduler 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-staking-reward-curve 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-tips 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-treasury 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-utility 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-vesting 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-xcm 0.9.15", - "parity-scale-codec", - "polkadot-primitives 0.9.15", - "polkadot-runtime-common 0.9.15", - "polkadot-runtime-parachains 0.9.15", - "rustc-hex", - "scale-info", - "serde", - "serde_derive", - "smallvec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-npos-elections 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "static_assertions", - "substrate-wasm-builder 5.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "xcm 0.9.15", - "xcm-builder 0.9.15", - "xcm-executor 0.9.15", + "substrate-wasm-builder", + "xcm", + "xcm-builder", + "xcm-executor", ] [[package]] name = "polkadot-runtime-common" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ - "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "beefy-primitives", "bitvec", - "frame-election-provider-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-election-provider-support", + "frame-support", + "frame-system", "impl-trait-for-tuples", "libsecp256k1", "log", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-bags-list 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-beefy-mmr 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-election-provider-multi-phase 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-treasury 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-vesting 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "parity-scale-codec", - "polkadot-primitives 0.9.15-1", - "polkadot-runtime-parachains 0.9.15-1", + "pallet-authorship", + "pallet-bags-list", + "pallet-balances", + "pallet-beefy-mmr", + "pallet-election-provider-multi-phase", + "pallet-session", + "pallet-staking", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-treasury", + "pallet-vesting", + "parity-scale-codec", + "polkadot-primitives", + "polkadot-runtime-parachains", "rustc-hex", "scale-info", "serde", "serde_derive", - "slot-range-helper 0.9.15-1", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-npos-elections 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "slot-range-helper", + "sp-api", + "sp-core", + "sp-inherents", + "sp-io", + "sp-npos-elections", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", "static_assertions", - "xcm 0.9.15-1", + "xcm", ] [[package]] -name = "polkadot-runtime-common" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +name = "polkadot-runtime-constants" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ - "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "bitvec", - "frame-election-provider-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "impl-trait-for-tuples", - "libsecp256k1", - "log", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-bags-list 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-beefy-mmr 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-election-provider-multi-phase 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-treasury 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-vesting 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "parity-scale-codec", - "polkadot-primitives 0.9.15", - "polkadot-runtime-parachains 0.9.15", - "rustc-hex", - "scale-info", - "serde", - "serde_derive", - "slot-range-helper 0.9.15", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-npos-elections 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "static_assertions", - "xcm 0.9.15", + "frame-support", + "polkadot-primitives", + "polkadot-runtime-common", + "smallvec", + "sp-runtime", ] [[package]] -name = "polkadot-runtime-parachains" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +name = "polkadot-runtime-metrics" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ - "bitflags", - "bitvec", - "derive_more", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "log", - "pallet-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-babe 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-vesting 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "parity-scale-codec", - "polkadot-primitives 0.9.15-1", - "rand 0.8.4", - "rand_chacha 0.3.1", - "rustc-hex", - "scale-info", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "xcm 0.9.15-1", - "xcm-executor 0.9.15-1", + "bs58", + "parity-scale-codec", + "polkadot-primitives", + "sp-std", + "sp-tracing", ] [[package]] name = "polkadot-runtime-parachains" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "bitflags", "bitvec", "derive_more", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "log", - "pallet-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-babe 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-vesting 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "parity-scale-codec", - "polkadot-primitives 0.9.15", + "frame-support", + "frame-system", + "log", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-session", + "pallet-staking", + "pallet-timestamp", + "pallet-vesting", + "parity-scale-codec", + "polkadot-primitives", + "polkadot-runtime-metrics", "rand 0.8.4", "rand_chacha 0.3.1", "rustc-hex", "scale-info", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "xcm 0.9.15", - "xcm-executor 0.9.15", -] - -[[package]] -name = "polkadot-service" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "async-trait", - "beefy-gadget 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "futures 0.3.19", - "hex-literal", - "kvdb", - "kvdb-rocksdb", - "lru 0.7.2", - "pallet-babe 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-im-online 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "polkadot-approval-distribution 0.9.15-1", - "polkadot-availability-bitfield-distribution 0.9.15-1", - "polkadot-availability-distribution 0.9.15-1", - "polkadot-availability-recovery 0.9.15-1", - "polkadot-client 0.9.15-1", - "polkadot-collator-protocol 0.9.15-1", - "polkadot-dispute-distribution 0.9.15-1", - "polkadot-gossip-support 0.9.15-1", - "polkadot-network-bridge 0.9.15-1", - "polkadot-node-collation-generation 0.9.15-1", - "polkadot-node-core-approval-voting 0.9.15-1", - "polkadot-node-core-av-store 0.9.15-1", - "polkadot-node-core-backing 0.9.15-1", - "polkadot-node-core-bitfield-signing 0.9.15-1", - "polkadot-node-core-candidate-validation 0.9.15-1", - "polkadot-node-core-chain-api 0.9.15-1", - "polkadot-node-core-chain-selection 0.9.15-1", - "polkadot-node-core-dispute-coordinator 0.9.15-1", - "polkadot-node-core-dispute-participation 0.9.15-1", - "polkadot-node-core-parachains-inherent 0.9.15-1", - "polkadot-node-core-provisioner 0.9.15-1", - "polkadot-node-core-runtime-api 0.9.15-1", - "polkadot-node-network-protocol 0.9.15-1", - "polkadot-node-primitives 0.9.15-1", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-overseer 0.9.15-1", - "polkadot-parachain 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "polkadot-rpc 0.9.15-1", - "polkadot-runtime 0.9.15-1", - "polkadot-runtime-parachains 0.9.15-1", - "polkadot-statement-distribution 0.9.15-1", - "sc-authority-discovery 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-basic-authorship 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus-uncles 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-finality-grandpa 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-sync-state-rpc 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "thiserror", - "tracing", + "sp-api", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "xcm", + "xcm-executor", ] [[package]] name = "polkadot-service" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "async-trait", - "beefy-gadget 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "beefy-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "beefy-gadget", + "beefy-primitives", + "frame-system-rpc-runtime-api", "futures 0.3.19", "hex-literal", "kvdb", "kvdb-rocksdb", "lru 0.7.2", - "pallet-babe 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-im-online 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-mmr-primitives 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "polkadot-approval-distribution 0.9.15", - "polkadot-availability-bitfield-distribution 0.9.15", - "polkadot-availability-distribution 0.9.15", - "polkadot-availability-recovery 0.9.15", - "polkadot-client 0.9.15", - "polkadot-collator-protocol 0.9.15", - "polkadot-dispute-distribution 0.9.15", - "polkadot-gossip-support 0.9.15", - "polkadot-network-bridge 0.9.15", - "polkadot-node-collation-generation 0.9.15", - "polkadot-node-core-approval-voting 0.9.15", - "polkadot-node-core-av-store 0.9.15", - "polkadot-node-core-backing 0.9.15", - "polkadot-node-core-bitfield-signing 0.9.15", - "polkadot-node-core-candidate-validation 0.9.15", - "polkadot-node-core-chain-api 0.9.15", - "polkadot-node-core-chain-selection 0.9.15", - "polkadot-node-core-dispute-coordinator 0.9.15", - "polkadot-node-core-dispute-participation 0.9.14", - "polkadot-node-core-parachains-inherent 0.9.15", - "polkadot-node-core-provisioner 0.9.15", - "polkadot-node-core-runtime-api 0.9.15", - "polkadot-node-network-protocol 0.9.15", - "polkadot-node-primitives 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-overseer 0.9.15", - "polkadot-parachain 0.9.15", - "polkadot-primitives 0.9.15", - "polkadot-rpc 0.9.15", - "polkadot-runtime 0.9.15", - "polkadot-runtime-parachains 0.9.15", - "polkadot-statement-distribution 0.9.15", - "sc-authority-discovery 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-basic-authorship 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus-uncles 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-finality-grandpa 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-sync-state-rpc 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", - "tracing", -] - -[[package]] -name = "polkadot-statement-distribution" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "arrayvec 0.5.2", - "derive_more", - "futures 0.3.19", - "indexmap", - "parity-scale-codec", - "polkadot-node-network-protocol 0.9.15-1", - "polkadot-node-primitives 0.9.15-1", - "polkadot-node-subsystem 0.9.15-1", - "polkadot-node-subsystem-util 0.9.15-1", - "polkadot-primitives 0.9.15-1", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "pallet-babe", + "pallet-im-online", + "pallet-mmr-primitives", + "pallet-staking", + "pallet-transaction-payment-rpc-runtime-api", + "polkadot-approval-distribution", + "polkadot-availability-bitfield-distribution", + "polkadot-availability-distribution", + "polkadot-availability-recovery", + "polkadot-client", + "polkadot-collator-protocol", + "polkadot-dispute-distribution", + "polkadot-gossip-support", + "polkadot-network-bridge", + "polkadot-node-collation-generation", + "polkadot-node-core-approval-voting", + "polkadot-node-core-av-store", + "polkadot-node-core-backing", + "polkadot-node-core-bitfield-signing", + "polkadot-node-core-candidate-validation", + "polkadot-node-core-chain-api", + "polkadot-node-core-chain-selection", + "polkadot-node-core-dispute-coordinator", + "polkadot-node-core-parachains-inherent", + "polkadot-node-core-provisioner", + "polkadot-node-core-pvf-checker", + "polkadot-node-core-runtime-api", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-rpc", + "polkadot-runtime", + "polkadot-runtime-constants", + "polkadot-runtime-parachains", + "polkadot-statement-distribution", + "sc-authority-discovery", + "sc-basic-authorship", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-client-db", + "sc-consensus", + "sc-consensus-babe", + "sc-consensus-slots", + "sc-consensus-uncles", + "sc-executor", + "sc-finality-grandpa", + "sc-keystore", + "sc-network", + "sc-offchain", + "sc-service", + "sc-sync-state-rpc", + "sc-telemetry", + "sc-transaction-pool", + "serde", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-core", + "sp-finality-grandpa", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-state-machine", + "sp-storage", + "sp-timestamp", + "sp-transaction-pool", + "sp-trie", + "substrate-prometheus-endpoint", "thiserror", "tracing", ] [[package]] name = "polkadot-statement-distribution" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "arrayvec 0.5.2", "derive_more", "futures 0.3.19", "indexmap", "parity-scale-codec", - "polkadot-node-network-protocol 0.9.15", - "polkadot-node-primitives 0.9.15", - "polkadot-node-subsystem 0.9.15", - "polkadot-node-subsystem-util 0.9.15", - "polkadot-primitives 0.9.15", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives", + "sp-keystore", + "sp-staking", "thiserror", "tracing", ] [[package]] name = "polkadot-statement-table" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "parity-scale-codec", - "polkadot-primitives 0.9.15-1", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "polkadot-statement-table" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "parity-scale-codec", - "polkadot-primitives 0.9.15", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "polkadot-primitives", + "sp-core", ] [[package]] @@ -8725,17 +7118,6 @@ dependencies = [ "cc", ] -[[package]] -name = "pwasm-utils" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "880b3384fb00b8f6ecccd5d358b93bd2201900ae3daad213791d1864f6441f5c" -dependencies = [ - "byteorder", - "log", - "parity-wasm 0.42.2", -] - [[package]] name = "quick-error" version = "1.2.3" @@ -8966,9 +7348,9 @@ dependencies = [ [[package]] name = "regalloc" -version = "0.0.32" +version = "0.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6304468554ed921da3d32c355ea107b8d13d7b8996c3adfb7aab48d3bc321f4" +checksum = "7d808cff91dfca7b239d40b972ba628add94892b1d9e19a842aedc5cfae8ab1a" dependencies = [ "log", "rustc-hash", @@ -9016,7 +7398,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "env_logger 0.9.0", "jsonrpsee", @@ -9024,10 +7406,10 @@ dependencies = [ "parity-scale-codec", "serde", "serde_json", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-version", ] [[package]] @@ -9051,9 +7433,9 @@ dependencies = [ [[package]] name = "retain_mut" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11000e6ba5020e53e7cc26f73b91ae7d5496b4977851479edb66b694c0675c21" +checksum = "51dd4445360338dab5116712bee1388dc727991d51969558a8882ab552e6db30" [[package]] name = "ring" @@ -9096,25 +7478,8 @@ version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" dependencies = [ - "libc", - "winapi 0.3.9", -] - -[[package]] -name = "rsix" -version = "0.23.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f64c5788d5aab8b75441499d99576a24eb09f76fb267b36fec7e3d970c66431" -dependencies = [ - "bitflags", - "cc", - "errno", - "io-lifetimes", - "itoa 0.4.8", - "libc", - "linux-raw-sys", - "once_cell", - "rustc_version 0.4.0", + "libc", + "winapi 0.3.9", ] [[package]] @@ -9153,6 +7518,20 @@ dependencies = [ "semver 1.0.4", ] +[[package]] +name = "rustix" +version = "0.31.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2dcfc2778a90e38f56a708bfc90572422e11d6c7ee233d053d1f782cf9df6d2" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "winapi 0.3.9", +] + [[package]] name = "rustls" version = "0.19.1" @@ -9178,6 +7557,12 @@ dependencies = [ "security-framework", ] +[[package]] +name = "rustversion" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f" + [[package]] name = "rw-stream-sink" version = "0.2.1" @@ -9216,61 +7601,23 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "log", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", -] - -[[package]] -name = "sc-allocator" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "log", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core", + "sp-wasm-interface", "thiserror", ] [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "async-trait", - "derive_more", - "futures 0.3.19", - "futures-timer 3.0.2", - "ip_network", - "libp2p", - "log", - "parity-scale-codec", - "prost", - "prost-build", - "rand 0.7.3", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "sc-authority-discovery" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "async-trait", "derive_more", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "ip_network", "libp2p", "log", @@ -9278,144 +7625,77 @@ dependencies = [ "prost", "prost-build", "rand 0.7.3", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-authority-discovery 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sc-basic-authorship" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "futures 0.3.19", - "futures-timer 3.0.2", - "log", - "parity-scale-codec", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-proposer-metrics 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-client-api", + "sc-network", + "sp-api", + "sp-authority-discovery", + "sp-blockchain", + "sp-core", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", ] [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "log", "parity-scale-codec", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-proposer-metrics 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sc-block-builder" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "parity-scale-codec", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-block-builder", + "sc-client-api", + "sc-proposer-metrics", + "sc-telemetry", + "sc-transaction-pool-api", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", + "substrate-prometheus-endpoint", ] [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "parity-scale-codec", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sc-chain-spec" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "impl-trait-for-tuples", - "memmap2 0.5.2", "parity-scale-codec", - "sc-chain-spec-derive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "serde", - "serde_json", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-client-api", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", ] [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "impl-trait-for-tuples", "memmap2 0.5.2", "parity-scale-codec", - "sc-chain-spec-derive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-chain-spec-derive", + "sc-network", + "sc-telemetry", "serde", "serde_json", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sc-chain-spec-derive" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", + "sp-core", + "sp-runtime", ] [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -9426,45 +7706,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "chrono", - "fdlimit", - "futures 0.3.19", - "hex", - "libp2p", - "log", - "names", - "parity-scale-codec", - "rand 0.7.3", - "regex", - "rpassword", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "serde", - "serde_json", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keyring 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-panic-handler 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "structopt", - "thiserror", - "tiny-bip39", - "tokio", -] - -[[package]] -name = "sc-cli" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "chrono", "fdlimit", @@ -9477,22 +7719,22 @@ dependencies = [ "rand 0.7.3", "regex", "rpassword", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-client-api", + "sc-keystore", + "sc-network", + "sc-service", + "sc-telemetry", + "sc-tracing", + "sc-utils", "serde", "serde_json", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keyring 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-panic-handler 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain", + "sp-core", + "sp-keyring", + "sp-keystore", + "sp-panic-handler", + "sp-runtime", + "sp-version", "structopt", "thiserror", "tiny-bip39", @@ -9502,35 +7744,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "fnv", - "futures 0.3.19", - "hash-db", - "log", - "parity-scale-codec", - "parking_lot 0.11.2", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "sc-client-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "fnv", "futures 0.3.19", @@ -9538,52 +7752,27 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.11.2", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sc-client-db" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "hash-db", - "kvdb", - "kvdb-memorydb", - "kvdb-rocksdb", - "linked-hash-map", - "log", - "parity-db", - "parity-scale-codec", - "parking_lot 0.11.2", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-state-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-executor", + "sc-transaction-pool-api", + "sc-utils", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-database", + "sp-externalities", + "sp-keystore", + "sp-runtime", + "sp-state-machine", + "sp-storage", + "sp-trie", + "substrate-prometheus-endpoint", ] [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "hash-db", "kvdb", @@ -9594,145 +7783,78 @@ dependencies = [ "parity-db", "parity-scale-codec", "parking_lot 0.11.2", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-state-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-client-api", + "sc-state-db", + "sp-arithmetic", + "sp-blockchain", + "sp-core", + "sp-database", + "sp-runtime", + "sp-state-machine", + "sp-trie", ] [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "async-trait", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "libp2p", "log", "parking_lot 0.11.2", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", -] - -[[package]] -name = "sc-consensus" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "async-trait", - "futures 0.3.19", - "futures-timer 3.0.2", - "libp2p", - "log", - "parking_lot 0.11.2", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-client-api", + "sc-utils", + "serde", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "sp-state-machine", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "async-trait", - "derive_more", - "futures 0.3.19", - "log", - "parity-scale-codec", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "sc-consensus-babe" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "async-trait", "derive_more", - "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", "futures 0.3.19", "log", - "merlin", - "num-bigint", - "num-rational 0.2.4", - "num-traits", "parity-scale-codec", - "parking_lot 0.11.2", - "rand 0.7.3", - "retain_mut", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus-epochs 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "schnorrkel", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-vrf 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-block-builder", + "sc-client-api", + "sc-consensus", + "sc-consensus-slots", + "sc-telemetry", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", ] [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "async-trait", "derive_more", - "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "fork-tree", "futures 0.3.19", "log", "merlin", @@ -9743,438 +7865,226 @@ dependencies = [ "parking_lot 0.11.2", "rand 0.7.3", "retain_mut", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus-epochs 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-client-api", + "sc-consensus", + "sc-consensus-epochs", + "sc-consensus-slots", + "sc-keystore", + "sc-telemetry", "schnorrkel", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-vrf 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sc-consensus-babe-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "derive_more", - "futures 0.3.19", - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus-epochs 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-consensus-slots", + "sp-consensus-vrf", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-version", + "substrate-prometheus-endpoint", ] [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "derive_more", "futures 0.3.19", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", - "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus-epochs 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-rpc-api", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sc-consensus-epochs" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "parity-scale-codec", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api", + "sp-application-crypto", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-core", + "sp-keystore", + "sp-runtime", ] [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "fork-tree", "parity-scale-codec", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sc-consensus-slots" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "async-trait", - "futures 0.3.19", - "futures-timer 3.0.2", - "log", - "parity-scale-codec", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", + "sc-client-api", + "sc-consensus", + "sp-blockchain", + "sp-runtime", ] [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "async-trait", "futures 0.3.19", - "futures-timer 3.0.2", - "log", - "parity-scale-codec", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "thiserror", -] - -[[package]] -name = "sc-consensus-uncles" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "futures-timer", + "log", + "parity-scale-codec", + "sc-client-api", + "sc-consensus", + "sc-telemetry", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", + "sp-timestamp", "thiserror", ] [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-client-api", + "sp-authorship", + "sp-runtime", "thiserror", ] [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "lazy_static", - "libsecp256k1", - "log", - "parity-scale-codec", - "parking_lot 0.11.2", - "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-executor-wasmi 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core-hashing-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-panic-handler 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-tasks 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "wasmi", -] - -[[package]] -name = "sc-executor" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "lazy_static", "libsecp256k1", "log", + "lru 0.6.6", "parity-scale-codec", "parking_lot 0.11.2", - "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-executor-wasmi 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-executor-wasmtime 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core-hashing-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-panic-handler 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-tasks 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "wasmi", -] - -[[package]] -name = "sc-executor-common" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "derive_more", - "environmental", - "parity-scale-codec", - "pwasm-utils", - "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-serializer 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", + "sc-executor-common", + "sc-executor-wasmi", + "sc-executor-wasmtime", + "sp-api", + "sp-core", + "sp-core-hashing-proc-macro", + "sp-externalities", + "sp-io", + "sp-panic-handler", + "sp-runtime-interface", + "sp-tasks", + "sp-trie", + "sp-version", + "sp-wasm-interface", "wasmi", ] [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "derive_more", "environmental", "parity-scale-codec", - "pwasm-utils", - "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-serializer 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-allocator", + "sp-core", + "sp-maybe-compressed-blob", + "sp-serializer", + "sp-wasm-interface", "thiserror", + "wasm-instrument", "wasmi", ] [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "log", - "parity-scale-codec", - "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "scoped-tls", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "wasmi", -] - -[[package]] -name = "sc-executor-wasmi" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "log", "parity-scale-codec", - "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-allocator", + "sc-executor-common", "scoped-tls", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "wasmi", -] - -[[package]] -name = "sc-executor-wasmtime" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "log", - "parity-scale-codec", - "parity-wasm 0.42.2", - "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "wasmtime", -] - -[[package]] -name = "sc-executor-wasmtime" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "log", - "parity-scale-codec", - "parity-wasm 0.42.2", - "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "wasmtime", + "sp-core", + "sp-runtime-interface", + "sp-wasm-interface", + "wasmi", ] [[package]] -name = "sc-finality-grandpa" +name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "async-trait", - "derive_more", - "dyn-clone", - "finality-grandpa", - "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "futures 0.3.19", - "futures-timer 3.0.2", + "cfg-if 1.0.0", + "libc", "log", "parity-scale-codec", - "parking_lot 0.11.2", - "rand 0.8.4", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-network-gossip 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "serde_json", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "parity-wasm 0.42.2", + "sc-allocator", + "sc-executor-common", + "sp-core", + "sp-runtime-interface", + "sp-wasm-interface", + "wasmtime", ] [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "async-trait", "derive_more", "dyn-clone", "finality-grandpa", - "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "fork-tree", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "log", "parity-scale-codec", "parking_lot 0.11.2", "rand 0.8.4", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-network-gossip 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "serde_json", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sc-finality-grandpa-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "derive_more", - "finality-grandpa", - "futures 0.3.19", - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "jsonrpc-pubsub", - "log", - "parity-scale-codec", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-finality-grandpa 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "serde", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-consensus", + "sc-keystore", + "sc-network", + "sc-network-gossip", + "sc-telemetry", + "sc-utils", "serde_json", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-finality-grandpa", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", ] [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "derive_more", "finality-grandpa", @@ -10185,135 +8095,52 @@ dependencies = [ "jsonrpc-pubsub", "log", "parity-scale-codec", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-finality-grandpa 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-client-api", + "sc-finality-grandpa", + "sc-rpc", "serde", "serde_json", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain", + "sp-core", + "sp-runtime", ] [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "ansi_term", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "log", "parity-util-mem", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "sc-informant" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "ansi_term", - "futures 0.3.19", - "futures-timer 3.0.2", - "log", - "parity-util-mem", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sc-keystore" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "async-trait", - "derive_more", - "hex", - "parking_lot 0.11.2", - "serde_json", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-client-api", + "sc-network", + "sc-transaction-pool-api", + "sp-blockchain", + "sp-runtime", ] [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "async-trait", - "derive_more", - "hex", - "parking_lot 0.11.2", - "serde_json", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sc-network" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "async-std", "async-trait", - "asynchronous-codec 0.5.0", - "bitflags", - "bytes 1.1.0", - "cid", "derive_more", - "either", - "fnv", - "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "futures 0.3.19", - "futures-timer 3.0.2", "hex", - "ip_network", - "libp2p", - "linked-hash-map", - "linked_hash_set", - "log", - "lru 0.7.2", - "parity-scale-codec", "parking_lot 0.11.2", - "pin-project 1.0.10", - "prost", - "prost-build", - "rand 0.7.3", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "serde", "serde_json", - "smallvec", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", - "unsigned-varint 0.6.0", - "void", - "zeroize", + "sp-application-crypto", + "sp-core", + "sp-keystore", ] [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "async-std", "async-trait", @@ -10324,9 +8151,9 @@ dependencies = [ "derive_more", "either", "fnv", - "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "fork-tree", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "hex", "ip_network", "libp2p", @@ -10340,21 +8167,21 @@ dependencies = [ "prost", "prost-build", "rand 0.7.3", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-block-builder", + "sc-client-api", + "sc-consensus", + "sc-peerset", + "sc-utils", "serde", "serde_json", "smallvec", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-finality-grandpa", + "sp-runtime", + "substrate-prometheus-endpoint", "thiserror", "unsigned-varint 0.6.0", "void", @@ -10364,72 +8191,28 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "futures 0.3.19", - "futures-timer 3.0.2", - "libp2p", - "log", - "lru 0.7.2", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "tracing", -] - -[[package]] -name = "sc-network-gossip" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "libp2p", "log", "lru 0.7.2", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "tracing", -] - -[[package]] -name = "sc-offchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "bytes 1.1.0", - "fnv", - "futures 0.3.19", - "futures-timer 3.0.2", - "hex", - "hyper", - "hyper-rustls", - "num_cpus", - "once_cell", - "parity-scale-codec", - "parking_lot 0.11.2", - "rand 0.7.3", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "threadpool", + "sc-network", + "sp-runtime", + "substrate-prometheus-endpoint", "tracing", ] [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "bytes 1.1.0", "fnv", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "hex", "hyper", "hyper-rustls", @@ -10438,13 +8221,13 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.11.2", "rand 0.7.3", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-client-api", + "sc-network", + "sc-utils", + "sp-api", + "sp-core", + "sp-offchain", + "sp-runtime", "threadpool", "tracing", ] @@ -10452,25 +8235,12 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "futures 0.3.19", - "libp2p", - "log", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "serde_json", - "wasm-timer", -] - -[[package]] -name = "sc-peerset" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "futures 0.3.19", "libp2p", "log", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-utils", "serde_json", "wasm-timer", ] @@ -10478,56 +8248,16 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "log", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "sc-proposer-metrics" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "log", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sc-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "futures 0.3.19", - "hash-db", - "jsonrpc-core", - "jsonrpc-pubsub", "log", - "parity-scale-codec", - "parking_lot 0.11.2", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "serde_json", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "substrate-prometheus-endpoint", ] [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "futures 0.3.19", "hash-db", @@ -10536,54 +8266,29 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.11.2", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "serde_json", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sc-rpc-api" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "futures 0.3.19", - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "jsonrpc-pubsub", - "log", - "parity-scale-codec", - "parking_lot 0.11.2", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "serde", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-rpc-api", + "sc-tracing", + "sc-transaction-pool-api", + "sc-utils", "serde_json", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-keystore", + "sp-offchain", + "sp-rpc", + "sp-runtime", + "sp-session", + "sp-version", ] [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "futures 0.3.19", "jsonrpc-core", @@ -10593,39 +8298,22 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.11.2", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-chain-spec", + "sc-transaction-pool-api", "serde", "serde_json", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core", + "sp-rpc", + "sp-runtime", + "sp-tracing", + "sp-version", "thiserror", ] [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "futures 0.3.19", - "jsonrpc-core", - "jsonrpc-http-server", - "jsonrpc-ipc-server", - "jsonrpc-pubsub", - "jsonrpc-ws-server", - "log", - "serde_json", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "tokio", -] - -[[package]] -name = "sc-rpc-server" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "futures 0.3.19", "jsonrpc-core", @@ -10635,84 +8323,20 @@ dependencies = [ "jsonrpc-ws-server", "log", "serde_json", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "tokio", -] - -[[package]] -name = "sc-service" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "async-trait", - "directories", - "exit-future", - "futures 0.3.19", - "futures-timer 3.0.2", - "hash-db", - "jsonrpc-core", - "jsonrpc-pubsub", - "log", - "parity-scale-codec", - "parity-util-mem", - "parking_lot 0.11.2", - "pin-project 1.0.10", - "rand 0.7.3", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-informant 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-rpc-server 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "serde", - "serde_json", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-transaction-storage-proof 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "tempfile", - "thiserror", + "substrate-prometheus-endpoint", "tokio", - "tracing", - "tracing-futures", ] [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "async-trait", "directories", "exit-future", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "hash-db", "jsonrpc-core", "jsonrpc-pubsub", @@ -10722,44 +8346,44 @@ dependencies = [ "parking_lot 0.11.2", "pin-project 1.0.10", "rand 0.7.3", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-informant 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-rpc-server 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-client-db", + "sc-consensus", + "sc-executor", + "sc-informant", + "sc-keystore", + "sc-network", + "sc-offchain", + "sc-rpc", + "sc-rpc-server", + "sc-telemetry", + "sc-tracing", + "sc-transaction-pool", + "sc-transaction-pool-api", + "sc-utils", "serde", "serde_json", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-transaction-storage-proof 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-externalities", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "sp-session", + "sp-state-machine", + "sp-storage", + "sp-tracing", + "sp-transaction-pool", + "sp-transaction-storage-proof", + "sp-trie", + "sp-version", + "substrate-prometheus-endpoint", "tempfile", "thiserror", "tokio", @@ -10770,97 +8394,43 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "log", - "parity-scale-codec", - "parity-util-mem", - "parity-util-mem-derive", - "parking_lot 0.11.2", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "sc-state-db" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "log", "parity-scale-codec", "parity-util-mem", "parity-util-mem-derive", "parking_lot 0.11.2", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sc-sync-state-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "parity-scale-codec", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-consensus-epochs 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-finality-grandpa 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "serde", - "serde_json", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", -] - -[[package]] -name = "sc-sync-state-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "parity-scale-codec", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus-babe 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-consensus-epochs 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-finality-grandpa 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "serde", - "serde_json", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "thiserror", + "sc-client-api", + "sp-core", ] [[package]] -name = "sc-telemetry" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "chrono", - "futures 0.3.19", - "libp2p", - "log", - "parking_lot 0.11.2", - "pin-project 1.0.10", - "rand 0.7.3", +name = "sc-sync-state-rpc" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +dependencies = [ + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "parity-scale-codec", + "sc-chain-spec", + "sc-client-api", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-finality-grandpa", + "sc-rpc-api", "serde", "serde_json", + "sp-blockchain", + "sp-runtime", "thiserror", - "wasm-timer", ] [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "chrono", "futures 0.3.19", @@ -10878,38 +8448,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "ansi_term", - "atty", - "chrono", - "lazy_static", - "libc", - "log", - "once_cell", - "parking_lot 0.11.2", - "regex", - "rustc-hash", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-rpc-server 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-tracing-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", - "tracing", - "tracing-log", - "tracing-subscriber", -] - -[[package]] -name = "sc-tracing" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "ansi_term", "atty", @@ -10921,16 +8460,16 @@ dependencies = [ "parking_lot 0.11.2", "regex", "rustc-hash", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-rpc-server 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-tracing-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-client-api", + "sc-rpc-server", + "sc-tracing-proc-macro", + "serde", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-rpc", + "sp-runtime", + "sp-tracing", "thiserror", "tracing", "tracing-log", @@ -10940,18 +8479,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "sc-tracing-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -10962,104 +8490,53 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "futures 0.3.19", - "intervalier", - "linked-hash-map", - "log", - "parity-scale-codec", - "parity-util-mem", - "parking_lot 0.11.2", - "retain_mut", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", -] - -[[package]] -name = "sc-transaction-pool" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "futures 0.3.19", - "intervalier", + "futures-timer", "linked-hash-map", "log", "parity-scale-codec", "parity-util-mem", "parking_lot 0.11.2", "retain_mut", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "thiserror", -] - -[[package]] -name = "sc-transaction-pool-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "derive_more", - "futures 0.3.19", - "log", - "serde", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sc-client-api", + "sc-transaction-pool-api", + "sc-utils", + "serde", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-runtime", + "sp-tracing", + "sp-transaction-pool", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "derive_more", "futures 0.3.19", "log", "serde", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-blockchain", + "sp-runtime", "thiserror", ] [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "futures 0.3.19", - "futures-timer 3.0.2", - "lazy_static", - "prometheus", -] - -[[package]] -name = "sc-utils" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "lazy_static", + "parking_lot 0.11.2", "prometheus", ] @@ -11294,6 +8771,17 @@ dependencies = [ "opaque-debug 0.3.0", ] +[[package]] +name = "sha2" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99c3bd8169c58782adad9290a9af5939994036b76187f7b4f0e6de91dbbfc0ec" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures 0.2.1", + "digest 0.10.1", +] + [[package]] name = "sha3" version = "0.9.1" @@ -11366,26 +8854,14 @@ checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" [[package]] name = "slot-range-helper" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "enumn", - "parity-scale-codec", - "paste", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "slot-range-helper" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "enumn", "parity-scale-codec", "paste", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-runtime", + "sp-std", ] [[package]] @@ -11467,53 +8943,24 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "hash-db", - "log", - "parity-scale-codec", - "sp-api-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", -] - -[[package]] -name = "sp-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "hash-db", "log", "parity-scale-codec", - "sp-api-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-api-proc-macro", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-version", "thiserror", ] [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "blake2-rfc", - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "sp-api-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "blake2-rfc", "proc-macro-crate 1.1.0", @@ -11524,390 +8971,175 @@ dependencies = [ [[package]] name = "sp-application-crypto" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "sp-application-crypto" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sp-arithmetic" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "integer-sqrt", - "num-traits", "parity-scale-codec", "scale-info", "serde", - "sp-debug-derive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "static_assertions", + "sp-core", + "sp-io", + "sp-std", ] [[package]] name = "sp-arithmetic" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "integer-sqrt", "num-traits", "parity-scale-codec", "scale-info", "serde", - "sp-debug-derive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-debug-derive", + "sp-std", "static_assertions", ] [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "sp-authority-discovery" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sp-authorship" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "async-trait", - "parity-scale-codec", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api", + "sp-application-crypto", + "sp-runtime", + "sp-std", ] [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "async-trait", "parity-scale-codec", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sp-block-builder" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-inherents", + "sp-runtime", + "sp-std", ] [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sp-blockchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "futures 0.3.19", - "log", - "lru 0.7.2", "parity-scale-codec", - "parking_lot 0.11.2", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", + "sp-api", + "sp-inherents", + "sp-runtime", + "sp-std", ] [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "futures 0.3.19", "log", "lru 0.7.2", "parity-scale-codec", "parking_lot 0.11.2", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "thiserror", -] - -[[package]] -name = "sp-consensus" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "async-trait", - "futures 0.3.19", - "futures-timer 3.0.2", - "log", - "parity-scale-codec", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api", + "sp-consensus", + "sp-database", + "sp-runtime", + "sp-state-machine", "thiserror", ] [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "async-trait", "futures 0.3.19", - "futures-timer 3.0.2", + "futures-timer", "log", "parity-scale-codec", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-version", "thiserror", ] [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "async-trait", - "parity-scale-codec", - "scale-info", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "sp-consensus-aura" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "async-trait", - "parity-scale-codec", - "scale-info", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sp-consensus-babe" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "async-trait", - "merlin", "parity-scale-codec", "scale-info", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-consensus-vrf 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api", + "sp-application-crypto", + "sp-consensus", + "sp-consensus-slots", + "sp-inherents", + "sp-runtime", + "sp-std", + "sp-timestamp", ] [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "async-trait", "merlin", "parity-scale-codec", "scale-info", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-consensus-vrf 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sp-consensus-slots" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api", + "sp-application-crypto", + "sp-consensus", + "sp-consensus-slots", + "sp-consensus-vrf", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "sp-std", + "sp-timestamp", ] [[package]] name = "sp-consensus-slots" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sp-consensus-vrf" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "parity-scale-codec", - "schnorrkel", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "sp-consensus-vrf" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "parity-scale-codec", - "schnorrkel", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sp-core" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "base58", - "bitflags", - "blake2-rfc", - "byteorder", - "dyn-clonable", - "ed25519-dalek", - "futures 0.3.19", - "hash-db", - "hash256-std-hasher", - "hex", - "impl-serde", - "lazy_static", - "libsecp256k1", - "log", - "merlin", - "num-traits", +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +dependencies = [ "parity-scale-codec", - "parity-util-mem", - "parking_lot 0.11.2", - "primitive-types", - "rand 0.7.3", - "regex", "scale-info", - "schnorrkel", - "secrecy", "serde", - "sha2 0.9.9", - "sp-core-hashing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-debug-derive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "ss58-registry", - "substrate-bip39", - "thiserror", - "tiny-bip39", - "tiny-keccak", - "twox-hash", - "wasmi", - "zeroize", + "sp-arithmetic", + "sp-runtime", +] + +[[package]] +name = "sp-consensus-vrf" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +dependencies = [ + "parity-scale-codec", + "schnorrkel", + "sp-core", + "sp-runtime", + "sp-std", ] [[package]] name = "sp-core" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "base58", "bitflags", @@ -11935,13 +9167,13 @@ dependencies = [ "schnorrkel", "secrecy", "serde", - "sha2 0.9.9", - "sp-core-hashing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-debug-derive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sha2 0.10.1", + "sp-core-hashing", + "sp-debug-derive", + "sp-externalities", + "sp-runtime-interface", + "sp-std", + "sp-storage", "ss58-registry", "substrate-bip39", "thiserror", @@ -11954,26 +9186,13 @@ dependencies = [ [[package]] name = "sp-core-hashing" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "blake2-rfc", - "byteorder", - "sha2 0.9.9", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "tiny-keccak", - "twox-hash", -] - -[[package]] -name = "sp-core-hashing" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "blake2-rfc", "byteorder", - "sha2 0.9.9", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sha2 0.10.1", + "sp-std", "tiny-keccak", "twox-hash", ] @@ -11981,38 +9200,18 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "proc-macro2", - "quote", - "sp-core-hashing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "syn", -] - -[[package]] -name = "sp-core-hashing-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "proc-macro2", "quote", - "sp-core-hashing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core-hashing", "syn", ] [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "kvdb", - "parking_lot 0.11.2", -] - -[[package]] -name = "sp-database" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "kvdb", "parking_lot 0.11.2", @@ -12020,18 +9219,8 @@ dependencies = [ [[package]] name = "sp-debug-derive" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "sp-debug-derive" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "proc-macro2", "quote", @@ -12040,118 +9229,51 @@ dependencies = [ [[package]] name = "sp-externalities" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "environmental", - "parity-scale-codec", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "sp-externalities" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +version = "0.10.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "environmental", "parity-scale-codec", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sp-finality-grandpa" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "finality-grandpa", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-std", + "sp-storage", ] [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "finality-grandpa", "log", "parity-scale-codec", "scale-info", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sp-inherents" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "async-trait", - "impl-trait-for-tuples", - "parity-scale-codec", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-keystore", + "sp-runtime", + "sp-std", ] [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core", + "sp-runtime", + "sp-std", "thiserror", ] [[package]] name = "sp-io" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "futures 0.3.19", - "hash-db", - "libsecp256k1", - "log", - "parity-scale-codec", - "parking_lot 0.11.2", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "tracing", - "tracing-core", -] - -[[package]] -name = "sp-io" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "futures 0.3.19", "hash-db", @@ -12159,62 +9281,34 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.11.2", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core", + "sp-externalities", + "sp-keystore", + "sp-runtime-interface", + "sp-state-machine", + "sp-std", + "sp-tracing", + "sp-trie", + "sp-wasm-interface", "tracing", "tracing-core", ] [[package]] name = "sp-keyring" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "lazy_static", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "strum", -] - -[[package]] -name = "sp-keyring" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "lazy_static", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "strum", -] - -[[package]] -name = "sp-keystore" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "async-trait", - "derive_more", - "futures 0.3.19", - "merlin", - "parity-scale-codec", - "parking_lot 0.11.2", - "schnorrkel", - "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core", + "sp-runtime", + "strum 0.22.0", ] [[package]] name = "sp-keystore" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +version = "0.10.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "async-trait", "derive_more", @@ -12224,22 +9318,14 @@ dependencies = [ "parking_lot 0.11.2", "schnorrkel", "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sp-maybe-compressed-blob" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "zstd", + "sp-core", + "sp-externalities", ] [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "zstd", ] @@ -12247,48 +9333,22 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-npos-elections-solution-type 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "sp-npos-elections" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-npos-elections-solution-type 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sp-npos-elections-solution-type" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", + "sp-arithmetic", + "sp-core", + "sp-npos-elections-solution-type", + "sp-runtime", + "sp-std", ] [[package]] name = "sp-npos-elections-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -12299,37 +9359,17 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "sp-offchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sp-panic-handler" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "backtrace", - "lazy_static", - "regex", + "sp-api", + "sp-core", + "sp-runtime", ] [[package]] name = "sp-panic-handler" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "backtrace", "lazy_static", @@ -12339,49 +9379,17 @@ dependencies = [ [[package]] name = "sp-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "rustc-hash", - "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "sp-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "rustc-hash", "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sp-runtime" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "either", - "hash256-std-hasher", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "parity-util-mem", - "paste", - "rand 0.7.3", - "scale-info", - "serde", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-core", ] [[package]] name = "sp-runtime" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "either", "hash256-std-hasher", @@ -12393,63 +9401,34 @@ dependencies = [ "rand 0.7.3", "scale-info", "serde", - "sp-application-crypto 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-application-crypto", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-std", ] [[package]] name = "sp-runtime-interface" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "impl-trait-for-tuples", - "parity-scale-codec", - "primitive-types", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime-interface-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "static_assertions", -] - -[[package]] -name = "sp-runtime-interface" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "primitive-types", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime-interface-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-storage 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-wasm-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-externalities", + "sp-runtime-interface-proc-macro", + "sp-std", + "sp-storage", + "sp-tracing", + "sp-wasm-interface", "static_assertions", ] [[package]] name = "sp-runtime-interface-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "Inflector", - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "sp-runtime-interface-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "Inflector", "proc-macro-crate 1.1.0", @@ -12459,100 +9438,43 @@ dependencies = [ ] [[package]] -name = "sp-serializer" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "serde", - "serde_json", -] - -[[package]] -name = "sp-serializer" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "serde", - "serde_json", -] - -[[package]] -name = "sp-session" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "sp-session" +name = "sp-serializer" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "serde", + "serde_json", ] [[package]] -name = "sp-staking" +name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "parity-scale-codec", "scale-info", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api", + "sp-core", + "sp-runtime", + "sp-staking", + "sp-std", ] [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "parity-scale-codec", "scale-info", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sp-state-machine" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "hash-db", - "log", - "num-traits", - "parity-scale-codec", - "parking_lot 0.11.2", - "rand 0.7.3", - "smallvec", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-panic-handler 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", - "tracing", - "trie-db", - "trie-root", + "sp-runtime", + "sp-std", ] [[package]] name = "sp-state-machine" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +version = "0.10.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "hash-db", "log", @@ -12561,11 +9483,11 @@ dependencies = [ "parking_lot 0.11.2", "rand 0.7.3", "smallvec", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-panic-handler 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core", + "sp-externalities", + "sp-panic-handler", + "sp-std", + "sp-trie", "thiserror", "tracing", "trie-db", @@ -12574,117 +9496,58 @@ dependencies = [ [[package]] name = "sp-std" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" - -[[package]] -name = "sp-std" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" [[package]] name = "sp-storage" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "impl-serde", - "parity-scale-codec", - "ref-cast", - "serde", - "sp-debug-derive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "sp-storage" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sp-tasks" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "log", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-debug-derive", + "sp-std", ] [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "log", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime-interface 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sp-timestamp" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "async-trait", - "futures-timer 3.0.2", "log", - "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", + "sp-core", + "sp-externalities", + "sp-io", + "sp-runtime-interface", + "sp-std", ] [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "async-trait", - "futures-timer 3.0.2", + "futures-timer", "log", "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-api", + "sp-inherents", + "sp-runtime", + "sp-std", "thiserror", ] [[package]] name = "sp-tracing" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "parity-scale-codec", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "tracing", - "tracing-core", - "tracing-subscriber", -] - -[[package]] -name = "sp-tracing" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "parity-scale-codec", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std", "tracing", "tracing-core", "tracing-subscriber", @@ -12693,79 +9556,39 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "sp-transaction-pool" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sp-transaction-storage-proof" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "async-trait", - "log", - "parity-scale-codec", - "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "sp-api", + "sp-runtime", ] [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "async-trait", "log", "parity-scale-codec", "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-trie 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "sp-trie" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "hash-db", - "memory-db", - "parity-scale-codec", - "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "trie-db", - "trie-root", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-std", + "sp-trie", ] [[package]] name = "sp-trie" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "hash-db", "memory-db", "parity-scale-codec", "scale-info", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core", + "sp-std", "trie-db", "trie-root", ] @@ -12773,39 +9596,24 @@ dependencies = [ [[package]] name = "sp-version" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "impl-serde", - "parity-scale-codec", - "parity-wasm 0.42.2", - "scale-info", - "serde", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-version-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "thiserror", -] - -[[package]] -name = "sp-version" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "impl-serde", "parity-scale-codec", "parity-wasm 0.42.2", "scale-info", "serde", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-version-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-core-hashing-proc-macro", + "sp-runtime", + "sp-std", + "sp-version-proc-macro", "thiserror", ] [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -12813,37 +9621,17 @@ dependencies = [ "syn", ] -[[package]] -name = "sp-version-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "parity-scale-codec", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "sp-wasm-interface" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "impl-trait-for-tuples", - "parity-scale-codec", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "wasmi", -] - [[package]] name = "sp-wasm-interface" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "impl-trait-for-tuples", + "log", "parity-scale-codec", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-std", "wasmi", + "wasmtime", ] [[package]] @@ -12952,7 +9740,16 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" dependencies = [ - "strum_macros", + "strum_macros 0.22.0", +] + +[[package]] +name = "strum" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" +dependencies = [ + "strum_macros 0.23.1", ] [[package]] @@ -12967,6 +9764,19 @@ dependencies = [ "syn", ] +[[package]] +name = "strum_macros" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn", +] + [[package]] name = "substrate-bip39" version = "0.4.4" @@ -12983,7 +9793,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "platforms", ] @@ -12991,65 +9801,29 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "futures 0.3.19", - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "log", - "parity-scale-codec", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", -] - -[[package]] -name = "substrate-frame-rpc-system" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ - "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "frame-system-rpc-runtime-api", "futures 0.3.19", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", "log", "parity-scale-codec", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", -] - -[[package]] -name = "substrate-prometheus-endpoint" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" -dependencies = [ - "async-std", - "derive_more", - "futures-util", - "hyper", - "log", - "prometheus", - "tokio", + "sc-client-api", + "sc-rpc-api", + "sc-transaction-pool-api", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-core", + "sp-runtime", ] [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "async-std", "derive_more", @@ -13063,27 +9837,12 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15#d36550a8da62fc968fac415c3379ad95d85105d1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "ansi_term", "build-helper", "cargo_metadata", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "tempfile", - "toml", - "walkdir", - "wasm-gc-api", -] - -[[package]] -name = "substrate-wasm-builder" -version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" -dependencies = [ - "ansi_term", - "build-helper", - "cargo_metadata", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sp-maybe-compressed-blob", "tempfile", "toml", "walkdir", @@ -13270,9 +10029,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.15.0" +version = "1.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbbf1c778ec206785635ce8ad57fe52b3009ae9e0c9f574a728f3049d3e55838" +checksum = "0c27a64b625de6d309e8c57716ba93021dccf1b3b5c97edd6d3dd2d2135afc0a" dependencies = [ "bytes 1.1.0", "libc", @@ -13437,9 +10196,9 @@ dependencies = [ [[package]] name = "trie-db" -version = "0.22.6" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eac131e334e81b6b3be07399482042838adcd7957aa0010231d0813e39e02fa" +checksum = "e3ddae50680c12ef75bfbf58416ca6622fa43d879553f6cb2ed1a817346e1ffe" dependencies = [ "hash-db", "hashbrown", @@ -13450,9 +10209,9 @@ dependencies = [ [[package]] name = "trie-root" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "652931506d2c1244d7217a70b99f56718a7b4161b37f04e7cd868072a99f68cd" +checksum = "9a36c5ca3911ed3c9a5416ee6c679042064b93fc637ded67e25f92e68d783891" dependencies = [ "hash-db", ] @@ -13509,25 +10268,26 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1#e6fbbd5cdf72a5ed7fd65138072ed1f8a320a33d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" dependencies = [ "jsonrpsee", "log", "parity-scale-codec", "remote-externalities", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "serde", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-keystore 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-state-machine 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-version 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", + "sc-chain-spec", + "sc-cli", + "sc-executor", + "sc-service", + "serde", + "sp-core", + "sp-externalities", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-state-machine", + "sp-version", "structopt", + "zstd", ] [[package]] @@ -13561,9 +10321,9 @@ checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" [[package]] name = "uint" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6470ab50f482bde894a037a57064480a246dbfdd5960bd65a44824693f08da5f" +checksum = "1b1b413ebfe8c2c74a69ff124699dd156a7fa41cb1d09ba6df94aa2f2b0a4a3a" dependencies = [ "byteorder", "crunchy", @@ -13832,6 +10592,15 @@ dependencies = [ "rustc-demangle", ] +[[package]] +name = "wasm-instrument" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "962e5b0401bbb6c887f54e69b8c496ea36f704df65db73e81fd5ff8dc3e63a9f" +dependencies = [ + "parity-wasm 0.42.2", +] + [[package]] name = "wasm-timer" version = "0.2.5" @@ -13879,9 +10648,9 @@ checksum = "98930446519f63d00a836efdc22f67766ceae8dbcc1571379f2bcabc6b2b9abc" [[package]] name = "wasmtime" -version = "0.31.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "311d06b0c49346d1fbf48a17052e844036b95a7753c1afb34e8c0af3f6b5bb13" +checksum = "414be1bc5ca12e755ffd3ff7acc3a6d1979922f8237fc34068b2156cebcc3270" dependencies = [ "anyhow", "backtrace", @@ -13911,9 +10680,9 @@ dependencies = [ [[package]] name = "wasmtime-cache" -version = "0.31.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36147930a4995137dc096e5b17a573b446799be2bbaea433e821ce6a80abe2c5" +checksum = "8b9b4cd1949206fda9241faf8c460a7d797aa1692594d3dd6bc1cbfa57ee20d0" dependencies = [ "anyhow", "base64", @@ -13921,7 +10690,7 @@ dependencies = [ "directories-next", "file-per-thread-logger", "log", - "rsix", + "rustix", "serde", "sha2 0.9.9", "toml", @@ -13931,9 +10700,9 @@ dependencies = [ [[package]] name = "wasmtime-cranelift" -version = "0.31.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab3083a47e1ede38aac06a1d9831640d673f9aeda0b82a64e4ce002f3432e2e7" +checksum = "a4693d33725773615a4c9957e4aa731af57b27dca579702d1d8ed5750760f1a9" dependencies = [ "anyhow", "cranelift-codegen", @@ -13941,7 +10710,7 @@ dependencies = [ "cranelift-frontend", "cranelift-native", "cranelift-wasm", - "gimli 0.25.0", + "gimli", "log", "more-asserts", "object", @@ -13953,14 +10722,13 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "0.31.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c2d194b655321053bc4111a1aa4ead552655c8a17d17264bc97766e70073510" +checksum = "5b17e47116a078b9770e6fb86cff8b9a660826623cebcfff251b047c8d8993ef" dependencies = [ "anyhow", - "cfg-if 1.0.0", "cranelift-entity", - "gimli 0.25.0", + "gimli", "indexmap", "log", "more-asserts", @@ -13974,24 +10742,21 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "0.31.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864ac8dfe4ce310ac59f16fdbd560c257389cb009ee5d030ac6e30523b023d11" +checksum = "60ea5b380bdf92e32911400375aeefb900ac9d3f8e350bb6ba555a39315f2ee7" dependencies = [ - "addr2line 0.16.0", + "addr2line", "anyhow", "bincode", "cfg-if 1.0.0", - "gimli 0.25.0", - "log", - "more-asserts", + "gimli", "object", "region", - "rsix", + "rustix", "serde", "target-lexicon", "thiserror", - "wasmparser", "wasmtime-environ", "wasmtime-runtime", "winapi 0.3.9", @@ -13999,9 +10764,9 @@ dependencies = [ [[package]] name = "wasmtime-runtime" -version = "0.31.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab97da813a26b98c9abfd3b0c2d99e42f6b78b749c0646344e2e262d212d8c8b" +checksum = "abc7cd79937edd6e238b337608ebbcaf9c086a8457f01dfd598324f7fa56d81a" dependencies = [ "anyhow", "backtrace", @@ -14016,7 +10781,7 @@ dependencies = [ "more-asserts", "rand 0.8.4", "region", - "rsix", + "rustix", "thiserror", "wasmtime-environ", "winapi 0.3.9", @@ -14024,9 +10789,9 @@ dependencies = [ [[package]] name = "wasmtime-types" -version = "0.31.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff94409cc3557bfbbcce6b14520ccd6bd3727e965c0fe68d63ef2c185bf379c6" +checksum = "d9e5e51a461a2cf2b69e1fc48f325b17d78a8582816e18479e8ead58844b23f8" dependencies = [ "cranelift-entity", "serde", @@ -14170,119 +10935,60 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "derivative", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "scale-info", - "xcm-procedural 0.1.0 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1)", -] - -[[package]] -name = "xcm" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ "derivative", "impl-trait-for-tuples", "log", "parity-scale-codec", "scale-info", - "xcm-procedural 0.1.0 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.15)", -] - -[[package]] -name = "xcm-builder" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "log", - "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "parity-scale-codec", - "polkadot-parachain 0.9.15-1", - "scale-info", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "xcm 0.9.15-1", - "xcm-executor 0.9.15-1", + "xcm-procedural", ] [[package]] name = "xcm-builder" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support", + "frame-system", "log", - "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "pallet-transaction-payment", "parity-scale-codec", - "polkadot-parachain 0.9.15", + "polkadot-parachain", "scale-info", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "xcm 0.9.15", - "xcm-executor 0.9.15", -] - -[[package]] -name = "xcm-executor" -version = "0.9.15-1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15-1)", - "xcm 0.9.15-1", + "sp-arithmetic", + "sp-io", + "sp-runtime", + "sp-std", + "xcm", + "xcm-executor", ] [[package]] name = "xcm-executor" -version = "0.9.15" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", + "frame-support", "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-arithmetic 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-core 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-io 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-runtime 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "sp-std 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.15)", - "xcm 0.9.15", -] - -[[package]] -name = "xcm-procedural" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15#4d94aea03300b85ddbfaa5b28e1078545e0545a2" -dependencies = [ - "proc-macro2", - "quote", - "syn", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "xcm", ] [[package]] name = "xcm-procedural" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.15-1#4f5373ab4d92fc33480638c15b11e978ccc7a75a" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" dependencies = [ + "Inflector", "proc-macro2", "quote", "syn", diff --git a/node/Cargo.toml b/node/Cargo.toml index 8a4878e7..e5eebccf 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -13,7 +13,7 @@ build = "build.rs" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } [[bin]] name = "parachain-collator" @@ -21,13 +21,14 @@ path = "src/main.rs" [features] runtime-benchmarks = ["parachain-template-runtime/runtime-benchmarks"] +try-runtime = [ "parachain-template-runtime/try-runtime" ] [dependencies] derive_more = "0.99.2" log = "0.4.14" codec = { package = "parity-scale-codec", version = "2.0.0" } structopt = "0.3.8" -serde = { version = "1.0.119", features = ["derive"] } +serde = { version = "1.0.132", features = ["derive"] } hex-literal = "0.3.1" # RPC related Dependencies @@ -37,58 +38,62 @@ jsonrpc-core = "18.0.0" parachain-template-runtime = { path = "../runtime" } # Substrate Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } ## Substrate Client Dependencies -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.15-1" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"], branch = "polkadot-v0.9.16" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } ## Substrate Primitive Dependencies -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } # Cumulus dependencies -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15" } -cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" } +cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" } +cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" } +cumulus-relay-chain-local = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" } # Polkadot dependencies -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.15-1" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.15-1" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.15-1" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.15-1" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.16" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.16" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.16" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.16" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.16" } diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index 24756264..afb76068 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -10,6 +10,9 @@ use sp_runtime::traits::{IdentifyAccount, Verify}; pub type ChainSpec = sc_service::GenericChainSpec; +/// The default XCM version to set in genesis config. +const SAFE_XCM_VERSION: u32 = xcm::prelude::XCM_VERSION; + /// Helper function to generate a crypto pair from seed pub fn get_public_from_seed(seed: &str) -> ::Public { TPublic::Pair::from_string(&format!("//{}", seed), None) @@ -105,6 +108,7 @@ pub fn development_config() -> ChainSpec { None, None, None, + None, Extensions { relay_chain: "rococo-local".into(), // You MUST set this to the correct network! para_id: 1000, @@ -161,6 +165,8 @@ pub fn local_testnet_config() -> ChainSpec { None, // Protocol ID Some("template-local"), + // Fork ID + None, // Properties Some(properties), // Extensions @@ -208,5 +214,8 @@ fn testnet_genesis( aura: Default::default(), aura_ext: Default::default(), parachain_system: Default::default(), + polkadot_xcm: parachain_template_runtime::PolkadotXcmConfig { + safe_xcm_version: Some(SAFE_XCM_VERSION), + }, } } diff --git a/node/src/cli.rs b/node/src/cli.rs index 1ed73098..53040d7c 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -37,6 +37,9 @@ pub enum Subcommand { /// The custom benchmark subcommmand benchmarking runtime pallets. #[structopt(name = "benchmark", about = "Benchmark runtime pallets.")] Benchmark(frame_benchmarking_cli::BenchmarkCmd), + + /// Try some testing command against a specified runtime state. + TryRuntime(try_runtime_cli::TryRuntimeCmd), } /// Command for exporting the genesis state of the parachain diff --git a/node/src/command.rs b/node/src/command.rs index 59fb46e3..f6bbef01 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -13,7 +13,10 @@ use sc_cli::{ ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli, }; -use sc_service::config::{BasePath, PrometheusConfig}; +use sc_service::{ + config::{BasePath, PrometheusConfig}, + TaskManager, +}; use sp_core::hexdisplay::HexDisplay; use sp_runtime::traits::Block as BlockT; use std::{io::Write, net::SocketAddr}; @@ -189,8 +192,9 @@ pub fn run() -> Result<()> { builder.with_profiling(sc_tracing::TracingReceiver::Log, ""); let _ = builder.init(); - let block: Block = - generate_genesis_block(&load_spec(¶ms.chain.clone().unwrap_or_default())?)?; + let spec = load_spec(¶ms.chain.clone().unwrap_or_default())?; + let state_version = Cli::native_runtime_version(&spec).state_version(); + let block: Block = generate_genesis_block(&spec, state_version)?; let raw_header = block.header().encode(); let output_buf = if params.raw { raw_header @@ -237,6 +241,23 @@ pub fn run() -> Result<()> { You can enable it with `--features runtime-benchmarks`." .into()) }, + Some(Subcommand::TryRuntime(cmd)) => { + if cfg!(feature = "try-runtime") { + let runner = cli.create_runner(cmd)?; + + // grab the task manager. + let registry = &runner.config().prometheus_config.as_ref().map(|cfg| &cfg.registry); + let task_manager = + TaskManager::new(runner.config().tokio_handle.clone(), *registry) + .map_err(|e| format!("Error: {:?}", e))?; + + runner.async_run(|config| { + Ok((cmd.run::(config), task_manager)) + }) + } else { + Err("Try-runtime must be enabled by `--features try-runtime`.".into()) + } + }, None => { let runner = cli.create_runner(&cli.run.normalize())?; @@ -255,8 +276,10 @@ pub fn run() -> Result<()> { let parachain_account = AccountIdConversion::::into_account(&id); - let block: Block = - generate_genesis_block(&config.chain_spec).map_err(|e| format!("{:?}", e))?; + let state_version = + RelayChainCli::native_runtime_version(&config.chain_spec).state_version(); + let block: Block = generate_genesis_block(&config.chain_spec, state_version) + .map_err(|e| format!("{:?}", e))?; let genesis_state = format!("0x{:?}", HexDisplay::from(&block.header().encode())); let tokio_handle = config.tokio_handle.clone(); @@ -332,11 +355,24 @@ impl CliConfiguration for RelayChainCli { self.base.base.rpc_ws(default_listen_port) } - fn prometheus_config(&self, default_listen_port: u16) -> Result> { - self.base.base.prometheus_config(default_listen_port) + fn prometheus_config( + &self, + default_listen_port: u16, + chain_spec: &Box, + ) -> Result> { + self.base.base.prometheus_config(default_listen_port, chain_spec) } - fn init(&self) -> Result<()> { + fn init( + &self, + _support_url: &String, + _impl_version: &String, + _logger_hook: F, + _config: &sc_service::Configuration, + ) -> Result<()> + where + F: FnOnce(&mut sc_cli::LoggerBuilder, &sc_service::Configuration), + { unreachable!("PolkadotCli is never initialized; qed"); } diff --git a/node/src/service.rs b/node/src/service.rs index 16fe8383..400daeaa 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -1,7 +1,7 @@ //! Service and ServiceFactory implementation. Specialized wrapper over substrate service. // std -use std::sync::Arc; +use std::{sync::Arc, time::Duration}; // Local Runtime Types use parachain_template_runtime::{ @@ -9,15 +9,15 @@ use parachain_template_runtime::{ }; // Cumulus Imports -use cumulus_client_consensus_aura::{ - build_aura_consensus, BuildAuraConsensusParams, SlotProportion, -}; +use cumulus_client_consensus_aura::{AuraConsensus, BuildAuraConsensusParams, SlotProportion}; use cumulus_client_consensus_common::ParachainConsensus; -use cumulus_client_network::build_block_announce_validator; +use cumulus_client_network::BlockAnnounceValidator; use cumulus_client_service::{ prepare_node_config, start_collator, start_full_node, StartCollatorParams, StartFullNodeParams, }; use cumulus_primitives_core::ParaId; +use cumulus_relay_chain_interface::RelayChainInterface; +use cumulus_relay_chain_local::build_relay_chain_interface; // Substrate Imports use sc_client_api::ExecutorProvider; @@ -114,6 +114,7 @@ where config.wasm_method, config.default_heap_pages, config.max_runtime_instances, + config.runtime_cache_size, ); let (client, backend, keystore_container, task_manager) = @@ -215,7 +216,7 @@ where Option<&Registry>, Option, &TaskManager, - &polkadot_service::NewFull, + Arc, Arc< sc_transaction_pool::FullPool< Block, @@ -236,27 +237,23 @@ where let params = new_partial::(¶chain_config, build_import_queue)?; let (mut telemetry, telemetry_worker_handle) = params.other; - let relay_chain_full_node = - cumulus_client_service::build_polkadot_full_node(polkadot_config, telemetry_worker_handle) + let client = params.client.clone(); + let backend = params.backend.clone(); + let mut task_manager = params.task_manager; + + let (relay_chain_interface, collator_key) = + build_relay_chain_interface(polkadot_config, telemetry_worker_handle, &mut task_manager) .map_err(|e| match e { polkadot_service::Error::Sub(x) => x, s => format!("{}", s).into(), })?; - let client = params.client.clone(); - let backend = params.backend.clone(); - let block_announce_validator = build_block_announce_validator( - relay_chain_full_node.client.clone(), - id, - Box::new(relay_chain_full_node.network.clone()), - relay_chain_full_node.backend.clone(), - ); + let block_announce_validator = BlockAnnounceValidator::new(relay_chain_interface.clone(), id); let force_authoring = parachain_config.force_authoring; let validator = parachain_config.role.is_authority(); let prometheus_registry = parachain_config.prometheus_registry().cloned(); let transaction_pool = params.transaction_pool.clone(); - let mut task_manager = params.task_manager; let import_queue = cumulus_client_service::SharedImportQueue::new(params.import_queue); let (network, system_rpc_tx, start_network) = sc_service::build_network(sc_service::BuildNetworkParams { @@ -265,7 +262,9 @@ where transaction_pool: transaction_pool.clone(), spawn_handle: task_manager.spawn_handle(), import_queue: import_queue.clone(), - block_announce_validator_builder: Some(Box::new(|_| block_announce_validator)), + block_announce_validator_builder: Some(Box::new(|_| { + Box::new(block_announce_validator) + })), warp_sync: None, })?; @@ -302,13 +301,15 @@ where Arc::new(move |hash, data| network.announce_block(hash, data)) }; + let relay_chain_slot_duration = Duration::from_secs(6); + if validator { let parachain_consensus = build_consensus( client.clone(), prometheus_registry.as_ref(), telemetry.as_ref().map(|t| t.handle()), &task_manager, - &relay_chain_full_node, + relay_chain_interface.clone(), transaction_pool, network, params.keystore_container.sync_keystore(), @@ -323,10 +324,12 @@ where announce_block, client: client.clone(), task_manager: &mut task_manager, - relay_chain_full_node, + relay_chain_interface, spawner, parachain_consensus, import_queue, + collator_key, + relay_chain_slot_duration, }; start_collator(params).await?; @@ -336,7 +339,9 @@ where announce_block, task_manager: &mut task_manager, para_id: id, - relay_chain_full_node, + relay_chain_interface, + relay_chain_slot_duration, + import_queue, }; start_full_node(params)?; @@ -412,7 +417,7 @@ pub async fn start_parachain_node( prometheus_registry, telemetry, task_manager, - relay_chain_node, + relay_chain_interface, transaction_pool, sync_oracle, keystore, @@ -427,62 +432,49 @@ pub async fn start_parachain_node( telemetry.clone(), ); - let relay_chain_backend = relay_chain_node.backend.clone(); - let relay_chain_client = relay_chain_node.client.clone(); - Ok(build_aura_consensus::< - sp_consensus_aura::sr25519::AuthorityPair, - _, - _, - _, - _, - _, - _, - _, - _, - _, - >(BuildAuraConsensusParams { - proposer_factory, - create_inherent_data_providers: move |_, (relay_parent, validation_data)| { - let parachain_inherent = - cumulus_primitives_parachain_inherent::ParachainInherentData::create_at_with_client( - relay_parent, - &relay_chain_client, - &*relay_chain_backend, - &validation_data, - id, - ); - async move { - let time = sp_timestamp::InherentDataProvider::from_system_time(); - - let slot = + Ok(AuraConsensus::build::( + BuildAuraConsensusParams { + proposer_factory, + create_inherent_data_providers: move |_, (relay_parent, validation_data)| { + let relay_chain_interface = relay_chain_interface.clone(); + async move { + let parachain_inherent = + cumulus_primitives_parachain_inherent::ParachainInherentData::create_at( + relay_parent, + &relay_chain_interface, + &validation_data, + id, + ).await; + let time = sp_timestamp::InherentDataProvider::from_system_time(); + + let slot = sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_duration( *time, slot_duration.slot_duration(), ); - let parachain_inherent = parachain_inherent.ok_or_else(|| { - Box::::from( - "Failed to create parachain inherent", - ) - })?; - Ok((time, slot, parachain_inherent)) - } + let parachain_inherent = parachain_inherent.ok_or_else(|| { + Box::::from( + "Failed to create parachain inherent", + ) + })?; + Ok((time, slot, parachain_inherent)) + } + }, + block_import: client.clone(), + para_client: client, + backoff_authoring_blocks: Option::<()>::None, + sync_oracle, + keystore, + force_authoring, + slot_duration, + // We got around 500ms for proposing + block_proposal_slot_portion: SlotProportion::new(1f32 / 24f32), + // And a maximum of 750ms if slots are skipped + max_block_proposal_slot_portion: Some(SlotProportion::new(1f32 / 16f32)), + telemetry, }, - block_import: client.clone(), - relay_chain_client: relay_chain_node.client.clone(), - relay_chain_backend: relay_chain_node.backend.clone(), - para_client: client, - backoff_authoring_blocks: Option::<()>::None, - sync_oracle, - keystore, - force_authoring, - slot_duration, - // We got around 500ms for proposing - block_proposal_slot_portion: SlotProportion::new(1f32 / 24f32), - // And a maximum of 750ms if slots are skipped - max_block_proposal_slot_portion: Some(SlotProportion::new(1f32 / 16f32)), - telemetry, - })) + )) }, ) .await diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index e2b034e2..9715fb51 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -15,19 +15,19 @@ targets = ["x86_64-unknown-linux-gnu"] codec = { package = "parity-scale-codec", version = "2.0.0", features = ["derive"], default-features = false } scale-info = { version = "1.0.0", default-features = false, features = ["derive"] } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.15-1" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.16" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } [dev-dependencies] -serde = { version = "1.0.119" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +serde = { version = "1.0.132" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } [features] default = ["std"] -runtime-benchmarks = ["frame-benchmarking"] +runtime-benchmarks = ["frame-benchmarking/runtime-benchmarks"] std = [ "codec/std", "scale-info/std", @@ -35,3 +35,4 @@ std = [ "frame-system/std", "frame-benchmarking/std", ] +try-runtime = [ "frame-support/try-runtime" ] diff --git a/pallets/template/src/mock.rs b/pallets/template/src/mock.rs index 525375e2..917356c1 100644 --- a/pallets/template/src/mock.rs +++ b/pallets/template/src/mock.rs @@ -51,6 +51,7 @@ impl system::Config for Test { type SystemWeightInfo = (); type SS58Prefix = SS58Prefix; type OnSetCode = (); + type MaxConsumers = frame_support::traits::ConstU32<16>; } impl pallet_template::Config for Test { diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 9e426c09..c86534d0 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,14 +12,14 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.15-1" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } [dependencies] -hex-literal = { version = '0.3.1', optional = true } +hex-literal = { version = "0.3.1", optional = true } codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"]} log = { version = "0.4.14", default-features = false } scale-info = { version = "1.0.0", default-features = false, features = ["derive"] } -serde = { version = "1.0.119", optional = true, features = ["derive"] } +serde = { version = "1.0.132", optional = true, features = ["derive"] } smallvec = "1.6.1" # Local Dependencies @@ -27,57 +27,58 @@ pallet-template = { path = "../pallets/template", default-features = false } # Substrate Dependencies ## Substrate Primitive Dependencies -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } ## Substrate FRAME Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.15-1" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.15-1" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.15-1" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.16" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.16" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.16" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.16" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } ## Substrate Pallet Dependencies -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.15-1" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } # Cumulus dependencies -cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } -cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } -cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } -cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } -cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } -cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } -cumulus-primitives-timestamp = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } -cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } -pallet-collator-selection = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } -parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.15', default-features = false } -cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.15", default-features = false, version = "3.0.0"} +cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.16', default-features = false } +cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.16', default-features = false } +cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.16', default-features = false } +cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.16', default-features = false } +cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.16', default-features = false } +cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.16', default-features = false } +cumulus-primitives-timestamp = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.16', default-features = false } +cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.16', default-features = false } +pallet-collator-selection = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.16', default-features = false } +parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.16', default-features = false } +cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16", default-features = false, version = "3.0.0"} # Polkadot Dependencies -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.15-1" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.15-1" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.15-1" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.15-1" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.15-1" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.15-1" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.16" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.16" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.16" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.16" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.16" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.16" } [features] default = [ @@ -130,10 +131,10 @@ std = [ ] runtime-benchmarks = [ - 'hex-literal', + "hex-literal", "sp-runtime/runtime-benchmarks", "xcm-builder/runtime-benchmarks", - "frame-benchmarking", + "frame-benchmarking/runtime-benchmarks", "frame-system-benchmarking", "frame-support/runtime-benchmarks", "frame-system/runtime-benchmarks", @@ -142,5 +143,10 @@ runtime-benchmarks = [ "pallet-template/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", - 'cumulus-pallet-session-benchmarking/runtime-benchmarks', + "cumulus-pallet-session-benchmarking/runtime-benchmarks", +] + +try-runtime = [ + "frame-try-runtime", + "frame-executive/try-runtime", ] diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 23ebd91b..36500f96 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -96,6 +96,7 @@ pub type BlockId = generic::BlockId; /// The SignedExtension to the basic transaction logic. pub type SignedExtra = ( + frame_system::CheckNonZeroSender, frame_system::CheckSpecVersion, frame_system::CheckTxVersion, frame_system::CheckGenesis, @@ -179,6 +180,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, + state_version: 1, }; /// This determines the average expected block time that we are targeting. @@ -302,6 +304,7 @@ impl frame_system::Config for Runtime { type SS58Prefix = SS58Prefix; /// The action to take on a Runtime Upgrade type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; + type MaxConsumers = frame_support::traits::ConstU32<16>; } parameter_types! { @@ -368,7 +371,7 @@ parameter_types! { impl cumulus_pallet_parachain_system::Config for Runtime { type Event = Event; - type OnValidationData = (); + type OnSystemEvent = (); type SelfParaId = parachain_info::Pallet; type DmpMessageHandler = DmpQueue; type ReservedDmpWeight = ReservedDmpWeight; @@ -521,6 +524,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type XcmExecutor = XcmExecutor; type ChannelInfo = ParachainSystem; type VersionWrapper = (); + type ExecuteOverweightOrigin = EnsureRoot; } impl cumulus_pallet_dmp_queue::Config for Runtime { @@ -616,7 +620,7 @@ construct_runtime!( // XCM helpers. XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 30, - PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin} = 31, + PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin, Config} = 31, CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 32, DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 33, @@ -625,6 +629,21 @@ construct_runtime!( } ); +#[cfg(feature = "runtime-benchmarks")] +#[macro_use] +extern crate frame_benchmarking; + +#[cfg(feature = "runtime-benchmarks")] +mod benches { + define_benchmarks!( + [frame_system, SystemBench::] + [pallet_balances, Balances] + [pallet_session, SessionBench::] + [pallet_timestamp, Timestamp] + [pallet_collator_selection, CollatorSelection] + ); +} + impl_runtime_apis! { impl sp_consensus_aura::AuraApi for Runtime { fn slot_duration() -> sp_consensus_aura::SlotDuration { @@ -727,11 +746,23 @@ impl_runtime_apis! { } impl cumulus_primitives_core::CollectCollationInfo for Runtime { - fn collect_collation_info() -> cumulus_primitives_core::CollationInfo { - ParachainSystem::collect_collation_info() + fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { + ParachainSystem::collect_collation_info(header) } } + #[cfg(feature = "try-runtime")] + impl frame_try_runtime::TryRuntime for Runtime { + fn on_runtime_upgrade() -> (Weight, Weight) { + log::info!("try-runtime::on_runtime_upgrade parachain-template."); + let weight = Executive::try_runtime_upgrade().unwrap(); + (weight, RuntimeBlockWeights::get().max_block) + } + + fn execute_block_no_check(block: Block) -> Weight { + Executive::execute_block_no_check(block) + } + } #[cfg(feature = "runtime-benchmarks")] impl frame_benchmarking::Benchmark for Runtime { @@ -739,27 +770,22 @@ impl_runtime_apis! { Vec, Vec, ) { - use frame_benchmarking::{list_benchmark, Benchmarking, BenchmarkList}; + use frame_benchmarking::{Benchmarking, BenchmarkList}; use frame_support::traits::StorageInfoTrait; use frame_system_benchmarking::Pallet as SystemBench; use cumulus_pallet_session_benchmarking::Pallet as SessionBench; let mut list = Vec::::new(); - - list_benchmark!(list, extra, frame_system, SystemBench::); - list_benchmark!(list, extra, pallet_balances, Balances); - list_benchmark!(list, extra, pallet_timestamp, Timestamp); - list_benchmark!(list, extra, pallet_collator_selection, CollatorSelection); + list_benchmarks!(list, extra); let storage_info = AllPalletsWithSystem::storage_info(); - return (list, storage_info) } fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig ) -> Result, sp_runtime::RuntimeString> { - use frame_benchmarking::{Benchmarking, BenchmarkBatch, add_benchmark, TrackedStorageKey}; + use frame_benchmarking::{Benchmarking, BenchmarkBatch, TrackedStorageKey}; use frame_system_benchmarking::Pallet as SystemBench; impl frame_system_benchmarking::Config for Runtime {} @@ -782,13 +808,7 @@ impl_runtime_apis! { let mut batches = Vec::::new(); let params = (&config, &whitelist); - - add_benchmark!(params, batches, frame_system, SystemBench::); - add_benchmark!(params, batches, pallet_balances, Balances); - add_benchmark!(params, batches, pallet_session, SessionBench::); - add_benchmark!(params, batches, pallet_timestamp, Timestamp); - add_benchmark!(params, batches, pallet_collator_selection, CollatorSelection); - add_benchmark!(params, batches, pallet_session, Session); + add_benchmarks!(params, batches); if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) } Ok(batches) From 200d26e5e2c1be0eed3f2b75d8d33c76c048db3b Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Sat, 29 Jan 2022 11:30:58 -0700 Subject: [PATCH 47/91] Ds/0.9.16 (#94) * state version 0 --- runtime/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 36500f96..591d9a6e 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -179,8 +179,8 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_version: 1, impl_version: 0, apis: RUNTIME_API_VERSIONS, - transaction_version: 1, - state_version: 1, + transaction_version: 0, + state_version: 0, }; /// This determines the average expected block time that we are targeting. From 6b739578e9342d2a47a47ad7a4312383204c4783 Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Fri, 4 Feb 2022 12:02:39 -0800 Subject: [PATCH 48/91] rm lock and rebuild post Polkadot v0.9.16 release (#96) --- Cargo.lock | 562 +++++++++++++++++++++++++++-------------------------- 1 file changed, 289 insertions(+), 273 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 943bc70f..87992aa9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -287,9 +287,9 @@ dependencies = [ [[package]] name = "async-std-resolver" -version = "0.20.3" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed4e2c3da14d8ad45acb1e3191db7a918e9505b6f155b218e70a7c9a1a48c638" +checksum = "dbf3e776afdf3a2477ef4854b85ba0dff3bd85792f685fb3c68948b4d304e4f0" dependencies = [ "async-std", "async-trait", @@ -419,7 +419,7 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "beefy-primitives", "fnv", @@ -448,7 +448,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -472,12 +472,12 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "scale-info", @@ -873,9 +873,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa66045b9cb23c2e9c1520732030608b02ee07e5cfaa5a521ec15ded7fa24c90" +checksum = "4cc00842eed744b858222c4c9faf7243aafc6d33f92f96935263ef4d8a41ce21" dependencies = [ "glob", "libc", @@ -1189,7 +1189,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "sc-cli", "sc-service", @@ -1199,7 +1199,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1223,7 +1223,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1252,7 +1252,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1273,7 +1273,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1298,7 +1298,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -1322,7 +1322,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-common", @@ -1351,7 +1351,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "frame-executive", "frame-support", @@ -1369,7 +1369,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1387,7 +1387,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1417,7 +1417,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -1428,7 +1428,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "frame-benchmarking", "frame-support", @@ -1442,7 +1442,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1459,7 +1459,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1477,7 +1477,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "frame-support", "parity-scale-codec", @@ -1493,7 +1493,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1516,7 +1516,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-primitives-core", "sp-inherents", @@ -1527,7 +1527,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1544,7 +1544,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1565,7 +1565,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-local" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1593,7 +1593,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -2061,7 +2061,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", ] @@ -2079,7 +2079,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -2100,7 +2100,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "Inflector", "chrono", @@ -2126,7 +2126,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -2140,7 +2140,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -2168,7 +2168,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "bitflags", "frame-metadata", @@ -2197,7 +2197,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2209,7 +2209,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.1.0", @@ -2221,7 +2221,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "proc-macro2", "quote", @@ -2231,7 +2231,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "log", @@ -2248,7 +2248,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -2263,7 +2263,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "sp-api", @@ -2272,7 +2272,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "sp-api", @@ -2611,6 +2611,15 @@ dependencies = [ "ahash", ] +[[package]] +name = "hashbrown" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c21d40587b92fa6a6c6e3c1bdbf87d75511db5672f9c93175574b3a00df1758" +dependencies = [ + "ahash", +] + [[package]] name = "heck" version = "0.3.3" @@ -2883,7 +2892,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.11.2", "serde", ] @@ -3222,7 +3231,7 @@ dependencies = [ [[package]] name = "kusama-runtime" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "beefy-primitives", "bitvec", @@ -3305,7 +3314,7 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "frame-support", "polkadot-primitives", @@ -3376,9 +3385,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.116" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "565dbd88872dbe4cc8a46e527f26483c1d1f7afa6b884a3bd6cd893d4f98da74" +checksum = "e74d72e0f9b65b5b4ca49a346af3976df0f9c61d550727f349ecd559f251a26c" [[package]] name = "libloading" @@ -4014,7 +4023,7 @@ version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ea2d928b485416e8908cff2d97d621db22b27f7b3b6729e438bcf42c671ba91" dependencies = [ - "hashbrown", + "hashbrown 0.11.2", ] [[package]] @@ -4023,7 +4032,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "274353858935c992b13c0ca408752e2121da852d07dec7ce5f108c77dfa14d1f" dependencies = [ - "hashbrown", + "hashbrown 0.11.2", ] [[package]] @@ -4140,7 +4149,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d505169b746dacf02f7d14d8c80b34edfd8212159c63d23c977739a0d960c626" dependencies = [ "hash-db", - "hashbrown", + "hashbrown 0.11.2", "parity-util-mem", ] @@ -4174,7 +4183,7 @@ dependencies = [ [[package]] name = "metered-channel" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "derive_more", "futures 0.3.19", @@ -4607,7 +4616,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -4623,7 +4632,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -4639,7 +4648,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -4654,7 +4663,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4678,7 +4687,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4693,7 +4702,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4708,7 +4717,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "beefy-primitives", "frame-support", @@ -4724,7 +4733,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -4749,7 +4758,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -4766,7 +4775,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "frame-benchmarking", "frame-support", @@ -4786,7 +4795,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4803,7 +4812,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4819,7 +4828,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-election-provider-support", "frame-support", @@ -4839,7 +4848,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -4856,7 +4865,7 @@ dependencies = [ [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4871,7 +4880,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4894,7 +4903,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "enumflags2", "frame-benchmarking", @@ -4910,7 +4919,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -4929,7 +4938,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -4945,7 +4954,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -4962,7 +4971,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -4980,7 +4989,7 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -4996,7 +5005,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5013,7 +5022,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5027,7 +5036,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5041,7 +5050,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5058,7 +5067,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5074,7 +5083,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5088,7 +5097,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5102,7 +5111,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5118,7 +5127,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5139,7 +5148,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5153,7 +5162,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-election-provider-support", "frame-support", @@ -5174,7 +5183,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -5185,7 +5194,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "log", "sp-arithmetic", @@ -5194,7 +5203,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5223,7 +5232,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5241,7 +5250,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5259,7 +5268,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5276,7 +5285,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5293,7 +5302,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5304,7 +5313,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5320,7 +5329,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5335,7 +5344,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-support", "frame-system", @@ -5349,7 +5358,7 @@ dependencies = [ [[package]] name = "pallet-xcm" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "frame-support", "frame-system", @@ -5367,7 +5376,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#867bfcd8f87cc986d1a3e9eeaf16c8b4e9a27790" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -5501,9 +5510,9 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78a95abf24f1097c6e3181abbbbfc3630b3b5e681470940f719b69acb4911c7f" +checksum = "68de01cff53da5574397233383dd7f5c15ee958c348245765ea8cb09f2571e6b" dependencies = [ "blake2-rfc", "crc32fast", @@ -5572,7 +5581,7 @@ checksum = "6f4cb4e169446179cbc6b8b6320cc9fca49bd2e94e8db25f25f200a8ea774770" dependencies = [ "cfg-if 1.0.0", "ethereum-types", - "hashbrown", + "hashbrown 0.11.2", "impl-trait-for-tuples", "lru 0.6.6", "parity-util-mem-derive", @@ -5849,7 +5858,7 @@ checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", "polkadot-node-network-protocol", @@ -5863,7 +5872,7 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", "polkadot-node-network-protocol", @@ -5876,7 +5885,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "derive_more", "futures 0.3.19", @@ -5898,7 +5907,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", "lru 0.7.2", @@ -5918,7 +5927,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "frame-benchmarking-cli", "futures 0.3.19", @@ -5941,7 +5950,7 @@ dependencies = [ [[package]] name = "polkadot-client" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -5971,7 +5980,7 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "always-assert", "derive_more", @@ -5992,7 +6001,7 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -6005,7 +6014,7 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "derive_more", "futures 0.3.19", @@ -6027,7 +6036,7 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6041,7 +6050,7 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", "futures-timer", @@ -6061,7 +6070,7 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "async-trait", "futures 0.3.19", @@ -6080,7 +6089,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", "parity-scale-codec", @@ -6098,7 +6107,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bitvec", "derive_more", @@ -6126,7 +6135,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bitvec", "futures 0.3.19", @@ -6146,7 +6155,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bitvec", "futures 0.3.19", @@ -6164,7 +6173,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", "polkadot-node-subsystem", @@ -6179,7 +6188,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "async-trait", "futures 0.3.19", @@ -6197,7 +6206,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", "polkadot-node-subsystem", @@ -6212,7 +6221,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", "futures-timer", @@ -6229,7 +6238,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", "kvdb", @@ -6247,7 +6256,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "async-trait", "futures 0.3.19", @@ -6264,7 +6273,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bitvec", "futures 0.3.19", @@ -6281,7 +6290,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "always-assert", "assert_matches", @@ -6311,7 +6320,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", "polkadot-node-primitives", @@ -6327,7 +6336,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", "memory-lru", @@ -6345,7 +6354,7 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "async-std", "lazy_static", @@ -6363,7 +6372,7 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bs58", "futures 0.3.19", @@ -6382,7 +6391,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "async-trait", "derive_more", @@ -6400,7 +6409,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bounded-vec", "futures 0.3.19", @@ -6422,7 +6431,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -6432,7 +6441,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "derive_more", "futures 0.3.19", @@ -6451,7 +6460,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "async-trait", "derive_more", @@ -6479,7 +6488,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "futures 0.3.19", "futures-timer", @@ -6500,7 +6509,7 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "async-trait", "futures 0.3.19", @@ -6517,7 +6526,7 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen-proc-macro" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -6528,7 +6537,7 @@ dependencies = [ [[package]] name = "polkadot-parachain" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "derive_more", "frame-support", @@ -6545,7 +6554,7 @@ dependencies = [ [[package]] name = "polkadot-performance-test" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "env_logger 0.9.0", "kusama-runtime", @@ -6560,7 +6569,7 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bitvec", "frame-system", @@ -6590,7 +6599,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -6621,7 +6630,7 @@ dependencies = [ [[package]] name = "polkadot-runtime" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "beefy-primitives", "bitvec", @@ -6700,7 +6709,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "beefy-primitives", "bitvec", @@ -6745,7 +6754,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "frame-support", "polkadot-primitives", @@ -6757,7 +6766,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bs58", "parity-scale-codec", @@ -6769,7 +6778,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "bitflags", "bitvec", @@ -6809,7 +6818,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "async-trait", "beefy-gadget", @@ -6906,7 +6915,7 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "arrayvec 0.5.2", "derive_more", @@ -6927,7 +6936,7 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7398,7 +7407,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "env_logger 0.9.0", "jsonrpsee", @@ -7601,7 +7610,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "log", "sp-core", @@ -7612,7 +7621,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "derive_more", @@ -7639,7 +7648,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "futures 0.3.19", "futures-timer", @@ -7662,7 +7671,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -7678,7 +7687,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "impl-trait-for-tuples", "memmap2 0.5.2", @@ -7695,7 +7704,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -7706,7 +7715,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "chrono", "fdlimit", @@ -7744,7 +7753,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "fnv", "futures 0.3.19", @@ -7772,7 +7781,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "hash-db", "kvdb", @@ -7797,7 +7806,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "futures 0.3.19", @@ -7821,7 +7830,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "derive_more", @@ -7850,7 +7859,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "derive_more", @@ -7893,7 +7902,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "derive_more", "futures 0.3.19", @@ -7917,7 +7926,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "fork-tree", "parity-scale-codec", @@ -7930,7 +7939,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "futures 0.3.19", @@ -7955,7 +7964,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "sc-client-api", "sp-authorship", @@ -7966,7 +7975,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "lazy_static", "libsecp256k1", @@ -7994,7 +8003,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "derive_more", "environmental", @@ -8012,7 +8021,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "log", "parity-scale-codec", @@ -8028,7 +8037,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "cfg-if 1.0.0", "libc", @@ -8046,7 +8055,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "derive_more", @@ -8084,7 +8093,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "derive_more", "finality-grandpa", @@ -8108,7 +8117,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "ansi_term", "futures 0.3.19", @@ -8125,7 +8134,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "derive_more", @@ -8140,7 +8149,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-std", "async-trait", @@ -8191,7 +8200,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "futures 0.3.19", "futures-timer", @@ -8207,7 +8216,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "bytes 1.1.0", "fnv", @@ -8235,7 +8244,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "futures 0.3.19", "libp2p", @@ -8248,7 +8257,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8257,7 +8266,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "futures 0.3.19", "hash-db", @@ -8288,7 +8297,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "futures 0.3.19", "jsonrpc-core", @@ -8313,7 +8322,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "futures 0.3.19", "jsonrpc-core", @@ -8330,7 +8339,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "directories", @@ -8394,7 +8403,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "log", "parity-scale-codec", @@ -8408,7 +8417,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -8430,7 +8439,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "chrono", "futures 0.3.19", @@ -8448,7 +8457,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "ansi_term", "atty", @@ -8479,7 +8488,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -8490,7 +8499,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "futures 0.3.19", "futures-timer", @@ -8517,7 +8526,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "derive_more", "futures 0.3.19", @@ -8531,7 +8540,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "futures 0.3.19", "futures-timer", @@ -8627,9 +8636,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d09d3c15d814eda1d6a836f2f2b56a6abc1446c8a34351cb3180d3db92ffe4ce" +checksum = "3fed7948b6c68acbb6e20c334f55ad635dc0f75506963de4464289fbd3b051ac" dependencies = [ "bitflags", "core-foundation", @@ -8640,9 +8649,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e90dd10c41c6bfc633da6e0c659bd25d31e0791e5974ac42970267d59eba87f7" +checksum = "a57321bf8bc2362081b2599912d2961fe899c0efadf1b4b2f8d48b3e253bb96c" dependencies = [ "core-foundation-sys", "libc", @@ -8855,7 +8864,7 @@ checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" [[package]] name = "slot-range-helper" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "enumn", "parity-scale-codec", @@ -8943,7 +8952,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "hash-db", "log", @@ -8960,7 +8969,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "blake2-rfc", "proc-macro-crate 1.1.0", @@ -8972,7 +8981,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "scale-info", @@ -8985,7 +8994,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "integer-sqrt", "num-traits", @@ -9000,7 +9009,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "scale-info", @@ -9013,7 +9022,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "parity-scale-codec", @@ -9025,7 +9034,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "sp-api", @@ -9037,7 +9046,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "futures 0.3.19", "log", @@ -9055,7 +9064,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "futures 0.3.19", @@ -9074,7 +9083,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "parity-scale-codec", @@ -9092,7 +9101,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "merlin", @@ -9115,7 +9124,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "scale-info", @@ -9127,7 +9136,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -9139,7 +9148,7 @@ dependencies = [ [[package]] name = "sp-core" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "base58", "bitflags", @@ -9187,7 +9196,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "blake2-rfc", "byteorder", @@ -9200,7 +9209,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "proc-macro2", "quote", @@ -9211,7 +9220,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "kvdb", "parking_lot 0.11.2", @@ -9220,7 +9229,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "proc-macro2", "quote", @@ -9230,7 +9239,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.10.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "environmental", "parity-scale-codec", @@ -9241,7 +9250,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "finality-grandpa", "log", @@ -9259,7 +9268,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9273,7 +9282,7 @@ dependencies = [ [[package]] name = "sp-io" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "futures 0.3.19", "hash-db", @@ -9297,7 +9306,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "lazy_static", "sp-core", @@ -9308,7 +9317,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.10.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "derive_more", @@ -9325,7 +9334,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "zstd", ] @@ -9333,7 +9342,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "scale-info", @@ -9348,7 +9357,7 @@ dependencies = [ [[package]] name = "sp-npos-elections-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "proc-macro-crate 1.1.0", "proc-macro2", @@ -9359,7 +9368,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "sp-api", "sp-core", @@ -9369,7 +9378,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "backtrace", "lazy_static", @@ -9379,7 +9388,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "rustc-hash", "serde", @@ -9389,7 +9398,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "either", "hash256-std-hasher", @@ -9411,7 +9420,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9428,7 +9437,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "Inflector", "proc-macro-crate 1.1.0", @@ -9440,7 +9449,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "serde", "serde_json", @@ -9449,7 +9458,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "scale-info", @@ -9463,7 +9472,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "scale-info", @@ -9474,7 +9483,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.10.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "hash-db", "log", @@ -9497,12 +9506,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" [[package]] name = "sp-storage" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9515,7 +9524,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "log", "sp-core", @@ -9528,7 +9537,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "futures-timer", @@ -9544,7 +9553,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "sp-std", @@ -9556,7 +9565,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "sp-api", "sp-runtime", @@ -9565,7 +9574,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-trait", "log", @@ -9581,7 +9590,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "hash-db", "memory-db", @@ -9596,7 +9605,7 @@ dependencies = [ [[package]] name = "sp-version" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9613,7 +9622,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -9624,7 +9633,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "impl-trait-for-tuples", "log", @@ -9793,7 +9802,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "platforms", ] @@ -9801,7 +9810,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.19", @@ -9823,7 +9832,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "async-std", "derive_more", @@ -9837,7 +9846,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "ansi_term", "build-helper", @@ -9886,9 +9895,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9bffcddbc2458fa3e6058414599e3c838a022abae82e5c67b4f7f80298d5bff" +checksum = "d7fa7e55043acb85fca6b3c01485a2eeb6b69c5d21002e273c79e465f43b7ac1" [[package]] name = "tempfile" @@ -10110,9 +10119,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.29" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" +checksum = "2d8d93354fe2a8e50d5953f5ae2e47a3fc2ef03292e7ea46e3cc38f549525fb9" dependencies = [ "cfg-if 1.0.0", "pin-project-lite 0.2.8", @@ -10122,9 +10131,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e" +checksum = "8276d9a4a3a558d7b7ad5303ad50b53d58264641b82914b7ada36bd762e7a716" dependencies = [ "proc-macro2", "quote", @@ -10133,11 +10142,12 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4" +checksum = "03cfcb51380632a72d3111cb8d3447a8d908e577d31beeac006f836383d29a23" dependencies = [ "lazy_static", + "valuable", ] [[package]] @@ -10163,9 +10173,9 @@ dependencies = [ [[package]] name = "tracing-serde" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb65ea441fbb84f9f6748fd496cf7f63ec9af5bca94dd86456978d055e8eb28b" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" dependencies = [ "serde", "tracing-core", @@ -10196,12 +10206,12 @@ dependencies = [ [[package]] name = "trie-db" -version = "0.23.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3ddae50680c12ef75bfbf58416ca6622fa43d879553f6cb2ed1a817346e1ffe" +checksum = "d32d034c0d3db64b43c31de38e945f15b40cd4ca6d2dcfc26d4798ce8de4ab83" dependencies = [ "hash-db", - "hashbrown", + "hashbrown 0.12.0", "log", "rustc-hex", "smallvec", @@ -10218,9 +10228,9 @@ dependencies = [ [[package]] name = "trust-dns-proto" -version = "0.20.3" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0d7f5db438199a6e2609debe3f69f808d074e0a2888ee0bccb45fe234d03f4" +checksum = "ca94d4e9feb6a181c690c4040d7a24ef34018d8313ac5044a61d21222ae24e31" dependencies = [ "async-trait", "cfg-if 1.0.0", @@ -10242,9 +10252,9 @@ dependencies = [ [[package]] name = "trust-dns-resolver" -version = "0.20.3" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ad17b608a64bd0735e67bde16b0636f8aa8591f831a25d18443ed00a699770" +checksum = "ecae383baad9995efaa34ce8e57d12c3f305e545887472a492b838f4b5cfb77a" dependencies = [ "cfg-if 1.0.0", "futures-util", @@ -10268,7 +10278,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#1c2332db8b6784d10bba55db794c5476aa49732a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ "jsonrpsee", "log", @@ -10321,9 +10331,9 @@ checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" [[package]] name = "uint" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1b413ebfe8c2c74a69ff124699dd156a7fa41cb1d09ba6df94aa2f2b0a4a3a" +checksum = "12f03af7ccf01dd611cc450a0d10dbc9b745770d096473e2faf0ca6e2d66d1e0" dependencies = [ "byteorder", "crunchy", @@ -10442,6 +10452,12 @@ dependencies = [ "percent-encoding 2.1.0", ] +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + [[package]] name = "value-bag" version = "1.0.0-alpha.8" @@ -10936,7 +10952,7 @@ dependencies = [ [[package]] name = "xcm" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -10949,7 +10965,7 @@ dependencies = [ [[package]] name = "xcm-builder" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "frame-support", "frame-system", @@ -10969,7 +10985,7 @@ dependencies = [ [[package]] name = "xcm-executor" version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -10986,7 +11002,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#192586a2c8e7a742f38522c7f2425badc73d5966" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ "Inflector", "proc-macro2", @@ -11010,9 +11026,9 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.5.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4062c749be08d90be727e9c5895371c3a0e49b90ba2b9592dc7afda95cc2b719" +checksum = "7c88870063c39ee00ec285a2f8d6a966e5b6fb2becc4e8dac77ed0d370ed6006" dependencies = [ "zeroize_derive", ] From 4bdc77a13a36fa261010aca4a6ae147d8bee6630 Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Tue, 15 Feb 2022 10:55:22 -0700 Subject: [PATCH 49/91] fix runtime-benchmarks compile --- Cargo.lock | 489 ++++++++++++++++++++++++++++++++++++++++++++++++ node/Cargo.toml | 5 +- 2 files changed, 493 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 87992aa9..3f19573f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -667,6 +667,156 @@ dependencies = [ "thiserror", ] +[[package]] +name = "bp-header-chain" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "finality-grandpa", + "frame-support", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-finality-grandpa", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-message-dispatch" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "bp-runtime", + "frame-support", + "parity-scale-codec", + "scale-info", + "sp-std", +] + +[[package]] +name = "bp-messages" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "bitvec", + "bp-runtime", + "frame-support", + "frame-system", + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "serde", + "sp-std", +] + +[[package]] +name = "bp-polkadot-core" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "bp-messages", + "bp-runtime", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-core", + "sp-runtime", + "sp-std", + "sp-version", +] + +[[package]] +name = "bp-rococo" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "bp-messages", + "bp-polkadot-core", + "bp-runtime", + "frame-support", + "parity-scale-codec", + "smallvec", + "sp-api", + "sp-runtime", + "sp-std", + "sp-version", +] + +[[package]] +name = "bp-runtime" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "frame-support", + "hash-db", + "num-traits", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", +] + +[[package]] +name = "bp-test-utils" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "bp-header-chain", + "ed25519-dalek", + "finality-grandpa", + "parity-scale-codec", + "sp-application-crypto", + "sp-finality-grandpa", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bp-wococo" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "bp-messages", + "bp-polkadot-core", + "bp-rococo", + "bp-runtime", + "parity-scale-codec", + "sp-api", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "bridge-runtime-common" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "bp-message-dispatch", + "bp-messages", + "bp-runtime", + "frame-support", + "hash-db", + "pallet-bridge-dispatch", + "pallet-bridge-grandpa", + "pallet-bridge-messages", + "pallet-transaction-payment", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", +] + [[package]] name = "bs58" version = "0.4.0" @@ -3235,12 +3385,15 @@ source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab dependencies = [ "beefy-primitives", "bitvec", + "frame-benchmarking", "frame-election-provider-support", "frame-executive", "frame-support", "frame-system", + "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", + "hex-literal", "kusama-runtime-constants", "log", "pallet-authority-discovery", @@ -3263,11 +3416,13 @@ dependencies = [ "pallet-multisig", "pallet-nicks", "pallet-offences", + "pallet-offences-benchmarking", "pallet-preimage", "pallet-proxy", "pallet-recovery", "pallet-scheduler", "pallet-session", + "pallet-session-benchmarking", "pallet-society", "pallet-staking", "pallet-staking-reward-fn", @@ -4689,14 +4844,19 @@ name = "pallet-bags-list" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ + "frame-benchmarking", "frame-election-provider-support", "frame-support", "frame-system", "log", + "pallet-balances", "parity-scale-codec", "scale-info", + "sp-core", + "sp-io", "sp-runtime", "sp-std", + "sp-tracing", ] [[package]] @@ -4760,6 +4920,7 @@ name = "pallet-bounties" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "log", @@ -4772,6 +4933,66 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-bridge-dispatch" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "bp-message-dispatch", + "bp-runtime", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-bridge-grandpa" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "bp-header-chain", + "bp-runtime", + "bp-test-utils", + "finality-grandpa", + "frame-support", + "frame-system", + "log", + "num-traits", + "parity-scale-codec", + "scale-info", + "serde", + "sp-finality-grandpa", + "sp-runtime", + "sp-std", + "sp-trie", +] + +[[package]] +name = "pallet-bridge-messages" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "bitvec", + "bp-message-dispatch", + "bp-messages", + "bp-runtime", + "frame-support", + "frame-system", + "log", + "num-traits", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-collator-selection" version = "3.0.0" @@ -4830,11 +5051,13 @@ name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ + "frame-benchmarking", "frame-election-provider-support", "frame-support", "frame-system", "log", "parity-scale-codec", + "rand 0.7.3", "scale-info", "sp-arithmetic", "sp-core", @@ -4843,6 +5066,8 @@ dependencies = [ "sp-runtime", "sp-std", "static_assertions", + "strum 0.22.0", + "strum_macros 0.23.1", ] [[package]] @@ -4850,6 +5075,7 @@ name = "pallet-elections-phragmen" version = "5.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "log", @@ -4921,6 +5147,7 @@ name = "pallet-im-online" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "log", @@ -4940,6 +5167,7 @@ name = "pallet-indices" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", @@ -5024,6 +5252,7 @@ name = "pallet-multisig" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", @@ -5064,6 +5293,29 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-offences-benchmarking" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +dependencies = [ + "frame-benchmarking", + "frame-election-provider-support", + "frame-support", + "frame-system", + "pallet-babe", + "pallet-balances", + "pallet-grandpa", + "pallet-im-online", + "pallet-offences", + "pallet-session", + "pallet-staking", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-staking", + "sp-std", +] + [[package]] name = "pallet-preimage" version = "4.0.0-dev" @@ -5085,6 +5337,7 @@ name = "pallet-proxy" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", @@ -5145,6 +5398,22 @@ dependencies = [ "sp-trie", ] +[[package]] +name = "pallet-session-benchmarking" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-session", + "pallet-staking", + "rand 0.7.3", + "sp-runtime", + "sp-session", + "sp-std", +] + [[package]] name = "pallet-society" version = "4.0.0-dev" @@ -5164,6 +5433,7 @@ name = "pallet-staking" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ + "frame-benchmarking", "frame-election-provider-support", "frame-support", "frame-system", @@ -5171,6 +5441,7 @@ dependencies = [ "pallet-authorship", "pallet-session", "parity-scale-codec", + "rand_chacha 0.2.2", "scale-info", "serde", "sp-application-crypto", @@ -5252,6 +5523,7 @@ name = "pallet-tips" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "log", @@ -5315,6 +5587,7 @@ name = "pallet-treasury" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "impl-trait-for-tuples", @@ -5331,6 +5604,7 @@ name = "pallet-utility" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", @@ -5346,6 +5620,7 @@ name = "pallet-vesting" version = "4.0.0-dev" source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "log", @@ -5373,6 +5648,23 @@ dependencies = [ "xcm-executor", ] +[[package]] +name = "pallet-xcm-benchmarks" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-std", + "xcm", + "xcm-executor", +] + [[package]] name = "parachain-info" version = "0.1.0" @@ -6634,12 +6926,15 @@ source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab dependencies = [ "beefy-primitives", "bitvec", + "frame-benchmarking", "frame-election-provider-support", "frame-executive", "frame-support", "frame-system", + "frame-system-benchmarking", "frame-system-rpc-runtime-api", "frame-try-runtime", + "hex-literal", "log", "pallet-authority-discovery", "pallet-authorship", @@ -6660,10 +6955,12 @@ dependencies = [ "pallet-multisig", "pallet-nicks", "pallet-offences", + "pallet-offences-benchmarking", "pallet-preimage", "pallet-proxy", "pallet-scheduler", "pallet-session", + "pallet-session-benchmarking", "pallet-staking", "pallet-staking-reward-curve", "pallet-timestamp", @@ -6713,6 +7010,7 @@ source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab dependencies = [ "beefy-primitives", "bitvec", + "frame-benchmarking", "frame-election-provider-support", "frame-support", "frame-system", @@ -6720,6 +7018,7 @@ dependencies = [ "libsecp256k1", "log", "pallet-authorship", + "pallet-babe", "pallet-bags-list", "pallet-balances", "pallet-beefy-mmr", @@ -6783,6 +7082,7 @@ dependencies = [ "bitflags", "bitvec", "derive_more", + "frame-benchmarking", "frame-support", "frame-system", "log", @@ -6826,6 +7126,7 @@ dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.19", "hex-literal", + "kusama-runtime", "kvdb", "kvdb-rocksdb", "lru 0.7.2", @@ -6868,6 +7169,7 @@ dependencies = [ "polkadot-runtime-constants", "polkadot-runtime-parachains", "polkadot-statement-distribution", + "rococo-runtime", "sc-authority-discovery", "sc-basic-authorship", "sc-block-builder", @@ -6910,6 +7212,7 @@ dependencies = [ "substrate-prometheus-endpoint", "thiserror", "tracing", + "westend-runtime", ] [[package]] @@ -7481,6 +7784,93 @@ dependencies = [ "librocksdb-sys", ] +[[package]] +name = "rococo-runtime" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "beefy-primitives", + "bp-messages", + "bp-rococo", + "bp-runtime", + "bp-wococo", + "bridge-runtime-common", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-rpc-runtime-api", + "hex-literal", + "log", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-balances", + "pallet-beefy", + "pallet-beefy-mmr", + "pallet-bridge-dispatch", + "pallet-bridge-grandpa", + "pallet-bridge-messages", + "pallet-collective", + "pallet-grandpa", + "pallet-im-online", + "pallet-indices", + "pallet-membership", + "pallet-mmr", + "pallet-mmr-primitives", + "pallet-multisig", + "pallet-offences", + "pallet-proxy", + "pallet-session", + "pallet-staking", + "pallet-sudo", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-utility", + "pallet-xcm", + "parity-scale-codec", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-runtime-common", + "polkadot-runtime-parachains", + "rococo-runtime-constants", + "scale-info", + "serde", + "serde_derive", + "smallvec", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-transaction-pool", + "sp-version", + "substrate-wasm-builder", + "xcm", + "xcm-builder", + "xcm-executor", +] + +[[package]] +name = "rococo-runtime-constants" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "frame-support", + "polkadot-primitives", + "polkadot-runtime-common", + "smallvec", + "sp-runtime", +] + [[package]] name = "rpassword" version = "5.0.1" @@ -10853,6 +11243,104 @@ dependencies = [ "cc", ] +[[package]] +name = "westend-runtime" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "beefy-primitives", + "bitvec", + "frame-benchmarking", + "frame-election-provider-support", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal", + "log", + "pallet-authority-discovery", + "pallet-authorship", + "pallet-babe", + "pallet-bags-list", + "pallet-balances", + "pallet-collective", + "pallet-democracy", + "pallet-election-provider-multi-phase", + "pallet-elections-phragmen", + "pallet-grandpa", + "pallet-identity", + "pallet-im-online", + "pallet-indices", + "pallet-membership", + "pallet-mmr-primitives", + "pallet-multisig", + "pallet-nicks", + "pallet-offences", + "pallet-offences-benchmarking", + "pallet-preimage", + "pallet-proxy", + "pallet-recovery", + "pallet-scheduler", + "pallet-session", + "pallet-session-benchmarking", + "pallet-society", + "pallet-staking", + "pallet-staking-reward-curve", + "pallet-sudo", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury", + "pallet-utility", + "pallet-vesting", + "pallet-xcm", + "pallet-xcm-benchmarks", + "parity-scale-codec", + "polkadot-parachain", + "polkadot-primitives", + "polkadot-runtime-common", + "polkadot-runtime-parachains", + "rustc-hex", + "scale-info", + "serde", + "serde_derive", + "smallvec", + "sp-api", + "sp-authority-discovery", + "sp-block-builder", + "sp-consensus-babe", + "sp-core", + "sp-inherents", + "sp-io", + "sp-npos-elections", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-transaction-pool", + "sp-version", + "substrate-wasm-builder", + "westend-runtime-constants", + "xcm", + "xcm-builder", + "xcm-executor", +] + +[[package]] +name = "westend-runtime-constants" +version = "0.9.16" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +dependencies = [ + "frame-support", + "polkadot-primitives", + "polkadot-runtime-common", + "smallvec", + "sp-runtime", +] + [[package]] name = "which" version = "4.2.4" @@ -10987,6 +11475,7 @@ name = "xcm-executor" version = "0.9.16" source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" dependencies = [ + "frame-benchmarking", "frame-support", "impl-trait-for-tuples", "log", diff --git a/node/Cargo.toml b/node/Cargo.toml index e5eebccf..6bfff5cd 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -20,7 +20,10 @@ name = "parachain-collator" path = "src/main.rs" [features] -runtime-benchmarks = ["parachain-template-runtime/runtime-benchmarks"] +runtime-benchmarks = [ + "parachain-template-runtime/runtime-benchmarks", + "polkadot-cli/runtime-benchmarks", +] try-runtime = [ "parachain-template-runtime/try-runtime" ] [dependencies] From a8baf8fdfe4927ff5f404f128b27dd0e1f697033 Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Thu, 24 Feb 2022 16:14:26 -0700 Subject: [PATCH 50/91] polkadot-v0.9.17 (#101) * update to polkadot-v0.9.17 deps * `wasmtime` features enabled --- .github/workflows/test-code.yml | 4 +- Cargo.lock | 1777 ++++++++++++++++--------------- Cargo.toml | 8 +- node/Cargo.toml | 106 +- node/src/cli.rs | 46 +- node/src/command.rs | 4 + pallets/template/Cargo.toml | 12 +- runtime/Cargo.toml | 94 +- runtime/src/lib.rs | 163 +-- runtime/src/xcm_config.rs | 151 +++ 10 files changed, 1246 insertions(+), 1119 deletions(-) create mode 100644 runtime/src/xcm_config.rs diff --git a/.github/workflows/test-code.yml b/.github/workflows/test-code.yml index 8f655ab4..06097a91 100644 --- a/.github/workflows/test-code.yml +++ b/.github/workflows/test-code.yml @@ -3,10 +3,10 @@ name: Test Code on: pull_request: branches: - - master + - main push: branches: - - master + - main jobs: test-code: diff --git a/Cargo.lock b/Cargo.lock index 3f19573f..4fa4d850 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -68,7 +68,7 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.4", + "getrandom 0.2.5", "once_cell", "version_check", ] @@ -99,9 +99,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.53" +version = "1.0.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0" +checksum = "159bb86af3a200e19a068f4224eae4c8bb2d0fa054c7e5d1cacd5cef95e684cd" [[package]] name = "approx" @@ -223,9 +223,9 @@ dependencies = [ [[package]] name = "async-lock" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6a8ea61bf9947a1007c5cada31e647dbc77b103c679858150003ba697ea798b" +checksum = "e97a171d191782fba31bb902b14ad94e24a68145032b7eedf871ab0bc0d077b6" dependencies = [ "event-listener", ] @@ -370,9 +370,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" @@ -419,11 +419,11 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "beefy-primitives", "fnv", - "futures 0.3.19", + "futures 0.3.21", "log", "parity-scale-codec", "parking_lot 0.11.2", @@ -448,12 +448,11 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "beefy-gadget", "beefy-primitives", - "derive_more", - "futures 0.3.19", + "futures 0.3.21", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -472,12 +471,12 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "parity-scale-codec", "scale-info", @@ -622,9 +621,9 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.10.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1d36a02058e76b040de25a4464ba1c80935655595b661505c8b39b664828b95" +checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" dependencies = [ "generic-array 0.14.5", ] @@ -670,7 +669,7 @@ dependencies = [ [[package]] name = "bp-header-chain" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "finality-grandpa", "frame-support", @@ -686,7 +685,7 @@ dependencies = [ [[package]] name = "bp-message-dispatch" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "bp-runtime", "frame-support", @@ -698,7 +697,7 @@ dependencies = [ [[package]] name = "bp-messages" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "bitvec", "bp-runtime", @@ -714,7 +713,7 @@ dependencies = [ [[package]] name = "bp-polkadot-core" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "bp-messages", "bp-runtime", @@ -732,7 +731,7 @@ dependencies = [ [[package]] name = "bp-rococo" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -749,7 +748,7 @@ dependencies = [ [[package]] name = "bp-runtime" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "frame-support", "hash-db", @@ -767,7 +766,7 @@ dependencies = [ [[package]] name = "bp-test-utils" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "bp-header-chain", "ed25519-dalek", @@ -782,7 +781,7 @@ dependencies = [ [[package]] name = "bp-wococo" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -797,7 +796,7 @@ dependencies = [ [[package]] name = "bridge-runtime-common" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "bp-message-dispatch", "bp-messages", @@ -907,22 +906,22 @@ dependencies = [ [[package]] name = "cargo_metadata" -version = "0.14.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba2ae6de944143141f6155a473a6b02f66c7c3f9f47316f802f80204ebfe6e12" +checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" dependencies = [ "camino", "cargo-platform", - "semver 1.0.4", + "semver 1.0.6", "serde", "serde_json", ] [[package]] name = "cc" -version = "1.0.72" +version = "1.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" dependencies = [ "jobserver", ] @@ -1034,17 +1033,32 @@ dependencies = [ [[package]] name = "clap" -version = "2.34.0" +version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +checksum = "5177fac1ab67102d8989464efd043c6ff44191b1557ec1ddd489b4f7e1447e77" dependencies = [ - "ansi_term", "atty", "bitflags", + "clap_derive", + "indexmap", + "lazy_static", + "os_str_bytes", "strsim", + "termcolor", "textwrap", - "unicode-width", - "vec_map", +] + +[[package]] +name = "clap_derive" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d42c94ce7c2252681b5fed4d3627cc807b13dfc033246bd05d5b252399000e" +dependencies = [ + "heck 0.4.0", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -1079,9 +1093,9 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "core-foundation" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" dependencies = [ "core-foundation-sys", "libc", @@ -1122,18 +1136,18 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.80.0" +version = "0.80.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9516ba6b2ba47b4cbf63b713f75b432fafa0a0e0464ec8381ec76e6efe931ab3" +checksum = "62fc68cdb867b7d27b5f33cd65eb11376dfb41a2d09568a1a2c2bc1dc204f4ef" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.80.0" +version = "0.80.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "489e5d0081f7edff6be12d71282a8bf387b5df64d5592454b75d662397f2d642" +checksum = "31253a44ab62588f8235a996cc9b0636d98a299190069ced9628b8547329b47a" dependencies = [ "cranelift-bforest", "cranelift-codegen-meta", @@ -1148,33 +1162,33 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.80.0" +version = "0.80.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d36ee1140371bb0f69100e734b30400157a4adf7b86148dee8b0a438763ead48" +checksum = "7a20ab4627d30b702fb1b8a399882726d216b8164d3b3fa6189e3bf901506afe" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.80.0" +version = "0.80.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "981da52d8f746af1feb96290c83977ff8d41071a7499e991d8abae0d4869f564" +checksum = "6687d9668dacfed4468361f7578d86bded8ca4db978f734d9b631494bebbb5b8" [[package]] name = "cranelift-entity" -version = "0.80.0" +version = "0.80.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2906740053dd3bcf95ce53df0fd9b5649c68ae4bd9adada92b406f059eae461" +checksum = "c77c5d72db97ba2cb36f69037a709edbae0d29cb25503775891e7151c5c874bf" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.80.0" +version = "0.80.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7cb156de1097f567d46bf57a0cd720a72c3e15e1a2bd8b1041ba2fc894471b7" +checksum = "426dca83f63c7c64ea459eb569aadc5e0c66536c0042ed5d693f91830e8750d0" dependencies = [ "cranelift-codegen", "log", @@ -1184,9 +1198,9 @@ dependencies = [ [[package]] name = "cranelift-native" -version = "0.80.0" +version = "0.80.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "166028ca0343a6ee7bddac0e70084e142b23f99c701bd6f6ea9123afac1a7a46" +checksum = "8007864b5d0c49b026c861a15761785a2871124e401630c03ef1426e6d0d559e" dependencies = [ "cranelift-codegen", "libc", @@ -1195,9 +1209,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.80.0" +version = "0.80.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5012a1cde0c8b3898770b711490d803018ae9bec2d60674ba0e5b2058a874f80" +checksum = "94cf12c071415ba261d897387ae5350c4d83c238376c8c5a96514ecfa2ea66a3" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1211,9 +1225,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.3.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2209c310e29876f7f0b2721e7e26b84aff178aa3da5d091f9bfbf47669e60e3" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ "cfg-if 1.0.0", ] @@ -1241,9 +1255,9 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.6" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97242a70df9b89a65d0b6df3c4bf5b9ce03c5b7309019777fbde37e7537f8762" +checksum = "c00d6d2ea26e8b151d99093005cb442fb9a37aeaca582a03ec70946f49ab5ed9" dependencies = [ "cfg-if 1.0.0", "crossbeam-utils", @@ -1254,9 +1268,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcae03edb34f947e64acdb1c33ec169824e20657e9ecb61cef6c8c74dcb8120" +checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" dependencies = [ "cfg-if 1.0.0", "lazy_static", @@ -1270,11 +1284,12 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "crypto-common" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d6b536309245c849479fba3da410962a43ed8e51c26b729208ec0ac2798d0" +checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" dependencies = [ "generic-array 0.14.5", + "typenum", ] [[package]] @@ -1303,7 +1318,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8" dependencies = [ - "sct", + "sct 0.6.1", ] [[package]] @@ -1339,23 +1354,23 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ + "clap", "sc-cli", "sc-service", - "structopt", ] [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-primitives-core", "cumulus-relay-chain-interface", - "futures 0.3.19", + "futures 0.3.21", "parity-scale-codec", "parking_lot 0.10.2", "polkadot-node-primitives", @@ -1373,12 +1388,12 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "async-trait", "cumulus-client-consensus-common", "cumulus-primitives-core", - "futures 0.3.19", + "futures 0.3.21", "parity-scale-codec", "sc-client-api", "sc-consensus", @@ -1402,12 +1417,12 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "async-trait", "cumulus-relay-chain-interface", "dyn-clone", - "futures 0.3.19", + "futures 0.3.21", "parity-scale-codec", "polkadot-primitives", "sc-client-api", @@ -1423,15 +1438,15 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "async-trait", "cumulus-relay-chain-interface", "derive_more", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "polkadot-node-primitives", "polkadot-parachain", "polkadot-primitives", @@ -1448,18 +1463,18 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", - "rand 0.8.4", + "rand 0.8.5", "sc-client-api", "sc-consensus", "sp-api", @@ -1472,7 +1487,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "cumulus-client-collator", "cumulus-client-consensus-common", @@ -1480,7 +1495,7 @@ dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.12.0", "polkadot-overseer", "polkadot-primitives", "sc-chain-spec", @@ -1501,7 +1516,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "frame-executive", "frame-support", @@ -1519,7 +1534,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1537,7 +1552,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1567,9 +1582,9 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ - "proc-macro-crate 1.1.0", + "proc-macro-crate 1.1.3", "proc-macro2", "quote", "syn", @@ -1578,7 +1593,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "frame-benchmarking", "frame-support", @@ -1592,7 +1607,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1609,7 +1624,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1627,7 +1642,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "frame-support", "parity-scale-codec", @@ -1643,7 +1658,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1666,7 +1681,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "cumulus-primitives-core", "sp-inherents", @@ -1677,7 +1692,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1694,13 +1709,13 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "async-trait", "cumulus-primitives-core", "derive_more", - "futures 0.3.19", - "parking_lot 0.11.2", + "futures 0.3.21", + "parking_lot 0.12.0", "polkadot-overseer", "sc-client-api", "sc-service", @@ -1715,14 +1730,14 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-local" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "polkadot-client", "polkadot-service", "sc-client-api", @@ -1743,7 +1758,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1849,13 +1864,12 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.1" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b697d66081d42af4fba142d56918a3cb21dc8eb63372c6b85d14f44fb9c5979b" +checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" dependencies = [ - "block-buffer 0.10.0", + "block-buffer 0.10.2", "crypto-common", - "generic-array 0.14.5", ] [[package]] @@ -1983,7 +1997,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595" dependencies = [ - "heck", + "heck 0.3.3", "proc-macro2", "quote", "syn", @@ -2020,19 +2034,6 @@ dependencies = [ "syn", ] -[[package]] -name = "env_logger" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" -dependencies = [ - "atty", - "humantime 1.3.0", - "log", - "regex", - "termcolor", -] - [[package]] name = "env_logger" version = "0.9.0" @@ -2040,7 +2041,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" dependencies = [ "atty", - "humantime 2.1.0", + "humantime", "log", "regex", "termcolor", @@ -2073,33 +2074,6 @@ dependencies = [ "libc", ] -[[package]] -name = "ethbloom" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfb684ac8fa8f6c5759f788862bb22ec6fe3cb392f6bfd08e3c64b603661e3f8" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-rlp", - "impl-serde", - "tiny-keccak", -] - -[[package]] -name = "ethereum-types" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05136f7057fe789f06e6d41d07b34e6f70d8c86e5693b60f97aaa6553553bdaf" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-rlp", - "impl-serde", - "primitive-types", - "uint", -] - [[package]] name = "event-listener" version = "2.5.2" @@ -2112,7 +2086,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", ] [[package]] @@ -2147,11 +2121,11 @@ dependencies = [ [[package]] name = "file-per-thread-logger" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fdbe0d94371f9ce939b555dd342d0686cc4c0cadbcd4b61d70af5ff97eb4126" +checksum = "21e16290574b39ee41c71aeb90ae960c504ebaf1e2a1c87bd52aa56ed6e1a02f" dependencies = [ - "env_logger 0.7.1", + "env_logger", "log", ] @@ -2162,7 +2136,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8ac3ff5224ef91f3c97e03eb1de2db82743427e91aaa5ac635f454f0b164f5a" dependencies = [ "either", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "log", "num-traits", @@ -2178,7 +2152,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" dependencies = [ "byteorder", - "rand 0.8.4", + "rand 0.8.5", "rustc-hex", "static_assertions", ] @@ -2211,7 +2185,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "parity-scale-codec", ] @@ -2229,7 +2203,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-support", "frame-system", @@ -2238,6 +2212,7 @@ dependencies = [ "parity-scale-codec", "paste", "scale-info", + "serde", "sp-api", "sp-application-crypto", "sp-io", @@ -2250,10 +2225,11 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "Inflector", "chrono", + "clap", "frame-benchmarking", "frame-support", "handlebars", @@ -2265,18 +2241,18 @@ dependencies = [ "sc-executor", "sc-service", "serde", + "serde_json", "sp-core", "sp-externalities", "sp-keystore", "sp-runtime", "sp-state-machine", - "structopt", ] [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-support", "frame-system", @@ -2290,7 +2266,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-support", "frame-system", @@ -2318,7 +2294,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "bitflags", "frame-metadata", @@ -2347,7 +2323,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2359,10 +2335,10 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-support-procedural-tools-derive", - "proc-macro-crate 1.1.0", + "proc-macro-crate 1.1.3", "proc-macro2", "quote", "syn", @@ -2371,7 +2347,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "proc-macro2", "quote", @@ -2381,7 +2357,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-support", "log", @@ -2398,7 +2374,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -2413,7 +2389,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "parity-scale-codec", "sp-api", @@ -2422,7 +2398,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-support", "sp-api", @@ -2432,9 +2408,9 @@ dependencies = [ [[package]] name = "fs-err" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ebd3504ad6116843b8375ad70df74e7bfe83cac77a1f3fe73200c844d43bfe0" +checksum = "5bd79fa345a495d3ae89fb7165fec01c0e72f41821d642dda363a1e97975652e" [[package]] name = "fs-swap" @@ -2488,9 +2464,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28560757fe2bb34e79f907794bb6b22ae8b0e5c669b638a1132f2592b19035b4" +checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" dependencies = [ "futures-channel", "futures-core", @@ -2503,9 +2479,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3dda0b6588335f360afc675d0564c17a77a2bda81ca178a4b6081bd86c7f0b" +checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" dependencies = [ "futures-core", "futures-sink", @@ -2513,15 +2489,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c8ff0461b82559810cdccfde3215c3f373807f5e5232b71479bff7bb2583d7" +checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" [[package]] name = "futures-executor" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29d6d2ff5bb10fb95c85b8ce46538a2e5f5e7fdc755623a7d4529ab8a4ed9d2a" +checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" dependencies = [ "futures-core", "futures-task", @@ -2531,9 +2507,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f9d34af5a1aac6fb380f735fe510746c38067c5bf16c7fd250280503c971b2" +checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" [[package]] name = "futures-lite" @@ -2552,9 +2528,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbd947adfffb0efc70599b3ddcf7b5597bb5fa9e245eb99f62b3a5f7bb8bd3c" +checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" dependencies = [ "proc-macro2", "quote", @@ -2568,21 +2544,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a1387e07917c711fb4ee4f48ea0adb04a3c9739e53ef85bf43ae1edc2937a8b" dependencies = [ "futures-io", - "rustls", - "webpki", + "rustls 0.19.1", + "webpki 0.21.4", ] [[package]] name = "futures-sink" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3055baccb68d74ff6480350f8d6eb8fcfa3aa11bdc1a1ae3afdd0514617d508" +checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" [[package]] name = "futures-task" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ee7c6485c30167ce4dfb83ac568a849fe53274c831081476ee13e0dce1aad72" +checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" [[package]] name = "futures-timer" @@ -2592,9 +2568,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.19" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b5cf40b47a271f77a8b1bec03ca09044d99d2372c0de244e66430761127164" +checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" dependencies = [ "futures 0.1.31", "futures-channel", @@ -2643,9 +2619,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418d37c8b1d42553c93648be529cb70f920d3baf8ef469b74b9638df426e0b4c" +checksum = "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77" dependencies = [ "cfg-if 1.0.0", "libc", @@ -2779,6 +2755,12 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" + [[package]] name = "hermit-abi" version = "0.1.19" @@ -2872,9 +2854,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" +checksum = "9100414882e15fb7feccb4897e5f0ff0ff1ca7d1a86a23208ada4d7a18e6c6c4" [[package]] name = "httpdate" @@ -2882,15 +2864,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" -[[package]] -name = "humantime" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" -dependencies = [ - "quick-error 1.2.3", -] - [[package]] name = "humantime" version = "2.1.0" @@ -2899,9 +2872,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.16" +version = "0.14.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7ec3e62bdc98a2f0393a5048e4c30ef659440ea6e0e572965103e72bd836f55" +checksum = "043f0e083e9901b6cc658a77d1eb86f4fc650bbb977a4337dd63192826aa85dd" dependencies = [ "bytes 1.1.0", "futures-channel", @@ -2912,7 +2885,7 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa 0.4.8", + "itoa 1.0.1", "pin-project-lite 0.2.8", "socket2 0.4.4", "tokio", @@ -2931,11 +2904,11 @@ dependencies = [ "futures-util", "hyper", "log", - "rustls", - "rustls-native-certs", + "rustls 0.19.1", + "rustls-native-certs 0.5.0", "tokio", - "tokio-rustls", - "webpki", + "tokio-rustls 0.22.0", + "webpki 0.21.4", ] [[package]] @@ -2988,7 +2961,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae8ab7f67bad3240049cb24fb9cb0b4c2c6af4c245840917fbbdededeee91179" dependencies = [ "async-io", - "futures 0.3.19", + "futures 0.3.21", "futures-lite", "if-addrs", "ipnet", @@ -3006,15 +2979,6 @@ dependencies = [ "parity-scale-codec", ] -[[package]] -name = "impl-rlp" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" -dependencies = [ - "rlp", -] - [[package]] name = "impl-serde" version = "0.3.2" @@ -3026,9 +2990,9 @@ dependencies = [ [[package]] name = "impl-trait-for-tuples" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5dacb10c5b3bb92d46ba347505a9041e676bb20ad220101326bffb0c93031ee" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" dependencies = [ "proc-macro2", "quote", @@ -3057,9 +3021,9 @@ dependencies = [ [[package]] name = "integer-encoding" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90c11140ffea82edce8dcd74137ce9324ec24b3cf0175fc9d7e29164da9915b8" +checksum = "0e85a1509a128c855368e135cffcde7eac17d8e1083f41e2b98c58bc1a5074be" [[package]] name = "integer-sqrt" @@ -3158,7 +3122,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2b99d4207e2a04fb4581746903c2bb7eb376f88de9c699d0f3e10feeac0cd3a" dependencies = [ "derive_more", - "futures 0.3.19", + "futures 0.3.21", "jsonrpc-core", "jsonrpc-pubsub", "log", @@ -3173,7 +3137,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "futures-executor", "futures-util", "log", @@ -3188,7 +3152,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b51da17abecbdab3e3d4f26b01c5ec075e88d3abe3ab3b05dc9aa69392764ec0" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "jsonrpc-client-transports", ] @@ -3210,7 +3174,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1dea6e07251d9ce6a552abfb5d7ad6bc290a4596c8dcc3d795fae2bbdc1f3ff" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "hyper", "jsonrpc-core", "jsonrpc-server-utils", @@ -3226,7 +3190,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "382bb0206323ca7cda3dcd7e245cea86d37d02457a02a975e3378fb149a48845" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "jsonrpc-core", "jsonrpc-server-utils", "log", @@ -3241,7 +3205,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240f87695e6c6f62fb37f05c02c04953cf68d6408b8c1c89de85c7a0125b1011" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "jsonrpc-core", "lazy_static", "log", @@ -3257,7 +3221,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa4fdea130485b572c39a460d50888beb00afb3e35de23ccd7fad8ff19f0e0d4" dependencies = [ "bytes 1.1.0", - "futures 0.3.19", + "futures 0.3.21", "globset", "jsonrpc-core", "lazy_static", @@ -3274,7 +3238,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f892c7d766369475ab7b0669f417906302d7c0fb521285c0a0c92e52e7c8e946" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "jsonrpc-core", "jsonrpc-server-utils", "log", @@ -3289,20 +3253,74 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6373a33d987866ccfe1af4bc11b089dce941764313f9fd8b7cf13fcb51b72dc5" dependencies = [ - "jsonrpsee-proc-macros", - "jsonrpsee-types", + "jsonrpsee-types 0.4.1", "jsonrpsee-utils", - "jsonrpsee-ws-client", + "jsonrpsee-ws-client 0.4.1", +] + +[[package]] +name = "jsonrpsee" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05fd8cd6c6b1bbd06881d2cf88f1fc83cc36c98f2219090f839115fb4a956cb9" +dependencies = [ + "jsonrpsee-core", + "jsonrpsee-proc-macros", + "jsonrpsee-types 0.8.0", + "jsonrpsee-ws-client 0.8.0", +] + +[[package]] +name = "jsonrpsee-client-transport" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3303cdf246e6ab76e2866fb3d9acb6c76a068b1b28bd923a1b7a8122257ad7b5" +dependencies = [ + "futures 0.3.21", + "http", + "jsonrpsee-core", + "jsonrpsee-types 0.8.0", + "pin-project 1.0.10", + "rustls-native-certs 0.6.1", + "soketto", + "thiserror", + "tokio", + "tokio-rustls 0.23.2", + "tokio-util", + "tracing", + "webpki-roots 0.22.2", +] + +[[package]] +name = "jsonrpsee-core" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f220b5a238dc7992b90f1144fbf6eaa585872c9376afe6fe6863ffead6191bf3" +dependencies = [ + "anyhow", + "arrayvec 0.7.2", + "async-trait", + "beef", + "futures-channel", + "futures-util", + "hyper", + "jsonrpsee-types 0.8.0", + "rustc-hash", + "serde", + "serde_json", + "soketto", + "thiserror", + "tokio", + "tracing", ] [[package]] name = "jsonrpsee-proc-macros" -version = "0.4.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d802063f7a3c867456955f9d2f15eb3ee0edb5ec9ec2b5526324756759221c0f" +checksum = "4299ebf790ea9de1cb72e73ff2ae44c723ef264299e5e2d5ef46a371eb3ac3d8" dependencies = [ - "log", - "proc-macro-crate 1.1.0", + "proc-macro-crate 1.1.3", "proc-macro2", "quote", "syn", @@ -3327,6 +3345,20 @@ dependencies = [ "thiserror", ] +[[package]] +name = "jsonrpsee-types" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1b3f601bbbe45cd63f5407b6f7d7950e08a7d4f82aa699ff41a4a5e9e54df58" +dependencies = [ + "anyhow", + "beef", + "serde", + "serde_json", + "thiserror", + "tracing", +] + [[package]] name = "jsonrpsee-utils" version = "0.4.1" @@ -3335,7 +3367,7 @@ checksum = "0109c4f972058f3b1925b73a17210aff7b63b65967264d0045d15ee88fe84f0c" dependencies = [ "arrayvec 0.7.2", "beef", - "jsonrpsee-types", + "jsonrpsee-types 0.4.1", ] [[package]] @@ -3347,21 +3379,32 @@ dependencies = [ "arrayvec 0.7.2", "async-trait", "fnv", - "futures 0.3.19", + "futures 0.3.21", "http", - "jsonrpsee-types", + "jsonrpsee-types 0.4.1", "log", "pin-project 1.0.10", - "rustls-native-certs", + "rustls-native-certs 0.5.0", "serde", "serde_json", "soketto", "thiserror", "tokio", - "tokio-rustls", + "tokio-rustls 0.22.0", "tokio-util", ] +[[package]] +name = "jsonrpsee-ws-client" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aff425cee7c779e33920913bc695447416078ee6d119f443f3060feffa4e86b5" +dependencies = [ + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types 0.8.0", +] + [[package]] name = "keccak" version = "0.1.0" @@ -3380,8 +3423,8 @@ dependencies = [ [[package]] name = "kusama-runtime" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "beefy-primitives", "bitvec", @@ -3468,8 +3511,8 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "frame-support", "polkadot-primitives", @@ -3540,9 +3583,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.117" +version = "0.2.119" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e74d72e0f9b65b5b4ca49a346af3976df0f9c61d550727f349ecd559f251a26c" +checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4" [[package]] name = "libloading" @@ -3566,9 +3609,9 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" +checksum = "33a33a362ce288760ec6a508b94caaec573ae7d3bbbd91b87aa0bad4456839db" [[package]] name = "libp2p" @@ -3578,7 +3621,7 @@ checksum = "3bec54343492ba5940a6c555e512c6721139835d28c59bc22febece72dfd0d9d" dependencies = [ "atomic", "bytes 1.1.0", - "futures 0.3.19", + "futures 0.3.21", "lazy_static", "libp2p-core", "libp2p-deflate", @@ -3613,17 +3656,18 @@ dependencies = [ [[package]] name = "libp2p-core" -version = "0.30.0" +version = "0.30.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef22d9bba1e8bcb7ec300073e6802943fe8abb8190431842262b5f1c30abba1" +checksum = "86aad7d54df283db817becded03e611137698a6509d4237a96881976a162340c" dependencies = [ "asn1_der", "bs58", "ed25519-dalek", "either", "fnv", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", + "instant", "lazy_static", "libsecp256k1", "log", @@ -3634,7 +3678,7 @@ dependencies = [ "pin-project 1.0.10", "prost", "prost-build", - "rand 0.8.4", + "rand 0.8.5", "ring", "rw-stream-sink", "sha2 0.9.9", @@ -3652,7 +3696,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51a800adb195f33de63f4b17b63fe64cfc23bf2c6a0d3d0d5321328664e65197" dependencies = [ "flate2", - "futures 0.3.19", + "futures 0.3.21", "libp2p-core", ] @@ -3663,7 +3707,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb8f89d15cb6e3c5bc22afff7513b11bab7856f2872d3cfba86f7f63a06bc498" dependencies = [ "async-std-resolver", - "futures 0.3.19", + "futures 0.3.21", "libp2p-core", "log", "smallvec", @@ -3678,7 +3722,7 @@ checksum = "aab3d7210901ea51b7bae2b581aa34521797af8c4ec738c980bda4a06434067f" dependencies = [ "cuckoofilter", "fnv", - "futures 0.3.19", + "futures 0.3.21", "libp2p-core", "libp2p-swarm", "log", @@ -3699,7 +3743,7 @@ dependencies = [ "byteorder", "bytes 1.1.0", "fnv", - "futures 0.3.19", + "futures 0.3.21", "hex_fmt", "libp2p-core", "libp2p-swarm", @@ -3720,7 +3764,7 @@ version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cca1275574183f288ff8b72d535d5ffa5ea9292ef7829af8b47dcb197c7b0dcd" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "libp2p-core", "libp2p-swarm", "log", @@ -3742,7 +3786,7 @@ dependencies = [ "bytes 1.1.0", "either", "fnv", - "futures 0.3.19", + "futures 0.3.21", "libp2p-core", "libp2p-swarm", "log", @@ -3766,13 +3810,13 @@ dependencies = [ "async-io", "data-encoding", "dns-parser", - "futures 0.3.19", + "futures 0.3.21", "if-watch", "lazy_static", "libp2p-core", "libp2p-swarm", "log", - "rand 0.8.4", + "rand 0.8.5", "smallvec", "socket2 0.4.4", "void", @@ -3800,7 +3844,7 @@ checksum = "7f2cd64ef597f40e14bfce0497f50ecb63dd6d201c61796daeb4227078834fbf" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.1.0", - "futures 0.3.19", + "futures 0.3.21", "libp2p-core", "log", "nohash-hasher", @@ -3818,13 +3862,13 @@ checksum = "a8772c7a99088221bb7ca9c5c0574bf55046a7ab4c319f3619b275f28c8fb87a" dependencies = [ "bytes 1.1.0", "curve25519-dalek 3.2.0", - "futures 0.3.19", + "futures 0.3.21", "lazy_static", "libp2p-core", "log", "prost", "prost-build", - "rand 0.8.4", + "rand 0.8.5", "sha2 0.9.9", "snow", "static_assertions", @@ -3838,7 +3882,7 @@ version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80ef7b0ec5cf06530d9eb6cf59ae49d46a2c45663bde31c25a12f682664adbcf" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "libp2p-core", "libp2p-swarm", "log", @@ -3855,7 +3899,7 @@ checksum = "5fba1a6ff33e4a274c89a3b1d78b9f34f32af13265cc5c46c16938262d4e945a" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.1.0", - "futures 0.3.19", + "futures 0.3.21", "libp2p-core", "log", "prost", @@ -3870,7 +3914,7 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f1a458bbda880107b5b36fcb9b5a1ef0c329685da0e203ed692a8ebe64cc92c" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "log", "pin-project 1.0.10", "rand 0.7.3", @@ -3886,7 +3930,7 @@ checksum = "2852b61c90fa8ce3c8fcc2aba76e6cefc20d648f9df29157d6b3a916278ef3e3" dependencies = [ "asynchronous-codec 0.6.0", "bytes 1.1.0", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "libp2p-core", "libp2p-swarm", @@ -3909,13 +3953,13 @@ checksum = "14a6d2b9e7677eff61dc3d2854876aaf3976d84a01ef6664b610c77a0c9407c5" dependencies = [ "asynchronous-codec 0.6.0", "bimap", - "futures 0.3.19", + "futures 0.3.21", "libp2p-core", "libp2p-swarm", "log", "prost", "prost-build", - "rand 0.8.4", + "rand 0.8.5", "sha2 0.9.9", "thiserror", "unsigned-varint 0.7.1", @@ -3931,7 +3975,7 @@ checksum = "a877a4ced6d46bf84677e1974e8cf61fb434af73b2e96fb48d6cb6223a4634d8" dependencies = [ "async-trait", "bytes 1.1.0", - "futures 0.3.19", + "futures 0.3.21", "libp2p-core", "libp2p-swarm", "log", @@ -3949,7 +3993,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f5184a508f223bc100a12665517773fb8730e9f36fc09eefb670bf01b107ae9" dependencies = [ "either", - "futures 0.3.19", + "futures 0.3.21", "libp2p-core", "log", "rand 0.7.3", @@ -3975,7 +4019,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7399c5b6361ef525d41c11fcf51635724f832baf5819b30d3d873eabb4fbae4b" dependencies = [ "async-io", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "if-watch", "ipnet", @@ -3992,7 +4036,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8b7563e46218165dfd60f64b96f7ce84590d75f53ecbdc74a7dd01450dc5973" dependencies = [ "async-std", - "futures 0.3.19", + "futures 0.3.21", "libp2p-core", "log", ] @@ -4003,7 +4047,7 @@ version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1008a302b73c5020251f9708c653f5ed08368e530e247cc9cd2f109ff30042cf" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "js-sys", "libp2p-core", "parity-send-wrapper", @@ -4018,7 +4062,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22e12df82d1ed64969371a9e65ea92b91064658604cc2576c2757f18ead9a1cf" dependencies = [ "either", - "futures 0.3.19", + "futures 0.3.21", "futures-rustls", "libp2p-core", "log", @@ -4026,7 +4070,7 @@ dependencies = [ "rw-stream-sink", "soketto", "url 2.2.2", - "webpki-roots", + "webpki-roots 0.21.1", ] [[package]] @@ -4035,7 +4079,7 @@ version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e7362abb8867d7187e7e93df17f460d554c997fc5c8ac57dc1259057f6889af" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "libp2p-core", "parking_lot 0.11.2", "thiserror", @@ -4067,7 +4111,7 @@ dependencies = [ "libsecp256k1-core", "libsecp256k1-gen-ecmult", "libsecp256k1-gen-genmult", - "rand 0.8.4", + "rand 0.8.5", "serde", "sha2 0.9.9", "typenum", @@ -4281,9 +4325,9 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe3179b85e1fd8b14447cbebadb75e45a1002f541b925f0bfec366d56a81c56d" +checksum = "057a3db23999c867821a7a59feb06a578fcb03685e983dff90daf9e7d24ac08f" dependencies = [ "libc", ] @@ -4337,11 +4381,11 @@ dependencies = [ [[package]] name = "metered-channel" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "derive_more", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "thiserror", "tracing", @@ -4353,8 +4397,8 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd2c2cc134e57461f0898b0e921f0a7819b5e3f3a4335b9aa390ce81a5f36fb9" dependencies = [ - "futures 0.3.19", - "rand 0.8.4", + "futures 0.3.21", + "rand 0.8.5", "thrift", ] @@ -4395,9 +4439,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.7.14" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" +checksum = "ba272f85fa0b41fc91872be579b3bbe0f56b792aa361a380eb669469f68dafb2" dependencies = [ "libc", "log", @@ -4510,7 +4554,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "424f6e86263cd5294cbd7f1e95746b95aca0e0d66bff31e5a40d6baa87b4aa99" dependencies = [ - "proc-macro-crate 1.1.0", + "proc-macro-crate 1.1.3", "proc-macro-error", "proc-macro2", "quote", @@ -4531,7 +4575,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56a336acba8bc87c8876f6425407dbbe6c417bf478b22015f8fb0994ef3bc0ab" dependencies = [ "bytes 1.1.0", - "futures 0.3.19", + "futures 0.3.21", "log", "pin-project 1.0.10", "smallvec", @@ -4550,7 +4594,7 @@ dependencies = [ "num-complex", "num-rational 0.4.0", "num-traits", - "rand 0.8.4", + "rand 0.8.5", "rand_distr", "simba", "typenum", @@ -4573,7 +4617,7 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10a8690bf09abf659851e58cd666c3d37ac6af07c2bd7a9e332cfba471715775" dependencies = [ - "rand 0.8.4", + "rand 0.8.5", ] [[package]] @@ -4612,9 +4656,9 @@ dependencies = [ [[package]] name = "ntapi" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" +checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" dependencies = [ "winapi 0.3.9", ] @@ -4759,6 +4803,15 @@ dependencies = [ "num-traits", ] +[[package]] +name = "os_str_bytes" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64" +dependencies = [ + "memchr", +] + [[package]] name = "owning_ref" version = "0.4.1" @@ -4771,7 +4824,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-support", "frame-system", @@ -4787,7 +4840,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-support", "frame-system", @@ -4803,7 +4856,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-support", "frame-system", @@ -4818,7 +4871,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -4842,7 +4895,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4862,7 +4915,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -4877,7 +4930,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "beefy-primitives", "frame-support", @@ -4893,7 +4946,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -4918,7 +4971,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -4936,7 +4989,7 @@ dependencies = [ [[package]] name = "pallet-bridge-dispatch" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "bp-message-dispatch", "bp-runtime", @@ -4953,7 +5006,7 @@ dependencies = [ [[package]] name = "pallet-bridge-grandpa" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "bp-header-chain", "bp-runtime", @@ -4975,7 +5028,7 @@ dependencies = [ [[package]] name = "pallet-bridge-messages" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "bitvec", "bp-message-dispatch", @@ -4996,7 +5049,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5005,7 +5058,7 @@ dependencies = [ "pallet-authorship", "pallet-session", "parity-scale-codec", - "rand 0.7.3", + "rand 0.8.5", "scale-info", "serde", "sp-runtime", @@ -5016,7 +5069,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5033,7 +5086,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5049,7 +5102,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5066,14 +5119,13 @@ dependencies = [ "sp-runtime", "sp-std", "static_assertions", - "strum 0.22.0", - "strum_macros 0.23.1", + "strum", ] [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5091,7 +5143,7 @@ dependencies = [ [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5106,7 +5158,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5129,7 +5181,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5145,7 +5197,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5165,7 +5217,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5182,7 +5234,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5199,7 +5251,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5217,7 +5269,7 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-support", "frame-system", @@ -5233,7 +5285,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5250,7 +5302,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5265,7 +5317,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-support", "frame-system", @@ -5279,7 +5331,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-support", "frame-system", @@ -5296,7 +5348,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5319,7 +5371,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5335,7 +5387,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5350,7 +5402,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-support", "frame-system", @@ -5364,7 +5416,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5380,7 +5432,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-support", "frame-system", @@ -5401,7 +5453,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5417,7 +5469,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-support", "frame-system", @@ -5431,7 +5483,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5454,9 +5506,9 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ - "proc-macro-crate 1.1.0", + "proc-macro-crate 1.1.3", "proc-macro2", "quote", "syn", @@ -5465,7 +5517,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "log", "sp-arithmetic", @@ -5474,7 +5526,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-support", "frame-system", @@ -5503,7 +5555,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5521,7 +5573,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5540,7 +5592,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-support", "frame-system", @@ -5557,7 +5609,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5574,7 +5626,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5585,7 +5637,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5602,7 +5654,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5618,7 +5670,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-benchmarking", "frame-support", @@ -5632,8 +5684,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "frame-support", "frame-system", @@ -5650,8 +5702,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "frame-benchmarking", "frame-support", @@ -5668,7 +5720,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.16#86f76c5619c64d1300315612695ad4b4fcd0f562" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -5682,6 +5734,7 @@ dependencies = [ name = "parachain-template-node" version = "0.1.0" dependencies = [ + "clap", "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-aura", @@ -5734,7 +5787,6 @@ dependencies = [ "sp-session", "sp-timestamp", "sp-transaction-pool", - "structopt", "substrate-build-script-utils", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", @@ -5802,9 +5854,9 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68de01cff53da5574397233383dd7f5c15ee958c348245765ea8cb09f2571e6b" +checksum = "09aa6c5bb8070cf0456d9fc228b3022e900aae9092c48c9c45facf97422efc1d" dependencies = [ "blake2-rfc", "crc32fast", @@ -5815,7 +5867,7 @@ dependencies = [ "lz4", "memmap2 0.2.3", "parking_lot 0.11.2", - "rand 0.8.4", + "rand 0.8.5", "snap", ] @@ -5839,7 +5891,7 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" dependencies = [ - "proc-macro-crate 1.1.0", + "proc-macro-crate 1.1.3", "proc-macro2", "quote", "syn", @@ -5857,7 +5909,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9981e32fb75e004cc148f5fb70342f393830e0a4aa62e3cc93b50976218d42b6" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "libc", "log", "rand 0.7.3", @@ -5872,10 +5924,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f4cb4e169446179cbc6b8b6320cc9fca49bd2e94e8db25f25f200a8ea774770" dependencies = [ "cfg-if 1.0.0", - "ethereum-types", "hashbrown 0.11.2", "impl-trait-for-tuples", - "lru 0.6.6", "parity-util-mem-derive", "parking_lot 0.11.2", "primitive-types", @@ -5954,6 +6004,16 @@ dependencies = [ "parking_lot_core 0.8.5", ] +[[package]] +name = "parking_lot" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58" +dependencies = [ + "lock_api 0.4.6", + "parking_lot_core 0.9.1", +] + [[package]] name = "parking_lot_core" version = "0.7.2" @@ -5982,6 +6042,19 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "parking_lot_core" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28141e0cc4143da2443301914478dc976a61ffdb3f043058310c70df2fed8954" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall 0.2.10", + "smallvec", + "windows-sys", +] + [[package]] name = "paste" version = "1.0.6" @@ -6149,10 +6222,10 @@ checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -6163,10 +6236,10 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -6176,11 +6249,11 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "derive_more", - "futures 0.3.19", + "futures 0.3.21", "lru 0.7.2", "parity-scale-codec", "polkadot-erasure-coding", @@ -6189,7 +6262,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.4", + "rand 0.8.5", "sp-core", "sp-keystore", "thiserror", @@ -6198,10 +6271,10 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "lru 0.7.2", "parity-scale-codec", "polkadot-erasure-coding", @@ -6210,7 +6283,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.4", + "rand 0.8.5", "sc-network", "thiserror", "tracing", @@ -6218,11 +6291,12 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ + "clap", "frame-benchmarking-cli", - "futures 0.3.19", + "futures 0.3.21", "log", "polkadot-node-core-pvf", "polkadot-node-metrics", @@ -6233,7 +6307,6 @@ dependencies = [ "sc-tracing", "sp-core", "sp-trie", - "structopt", "substrate-build-script-utils", "thiserror", "try-runtime-cli", @@ -6241,8 +6314,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -6271,12 +6344,12 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "always-assert", "derive_more", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -6292,8 +6365,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -6305,11 +6378,11 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "derive_more", - "futures 0.3.19", + "futures 0.3.21", "lru 0.7.2", "parity-scale-codec", "polkadot-erasure-coding", @@ -6327,8 +6400,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6341,16 +6414,16 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.4", + "rand 0.8.5", "rand_chacha 0.3.1", "sc-network", "sp-application-crypto", @@ -6361,11 +6434,11 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "async-trait", - "futures 0.3.19", + "futures 0.3.21", "parity-scale-codec", "parking_lot 0.11.2", "polkadot-node-network-protocol", @@ -6380,10 +6453,10 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-primitives", @@ -6398,12 +6471,12 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "bitvec", "derive_more", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "kvdb", "lru 0.7.2", @@ -6426,11 +6499,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "bitvec", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "kvdb", "parity-scale-codec", @@ -6446,11 +6519,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "bitvec", - "futures 0.3.19", + "futures 0.3.21", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -6464,10 +6537,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -6479,11 +6552,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "async-trait", - "futures 0.3.19", + "futures 0.3.21", "parity-scale-codec", "polkadot-node-core-pvf", "polkadot-node-primitives", @@ -6497,10 +6570,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -6512,10 +6585,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "kvdb", "parity-scale-codec", @@ -6529,10 +6602,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "kvdb", "lru 0.7.2", "parity-scale-codec", @@ -6547,11 +6620,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "async-trait", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "polkadot-node-subsystem", "polkadot-primitives", @@ -6564,38 +6637,38 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "bitvec", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.4", + "rand 0.8.5", "thiserror", "tracing", ] [[package]] name = "polkadot-node-core-pvf" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "always-assert", "assert_matches", "async-process", "async-std", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "parity-scale-codec", "pin-project 1.0.10", "polkadot-core-primitives", "polkadot-node-subsystem-util", "polkadot-parachain", - "rand 0.8.4", + "rand 0.8.5", "sc-executor", "sc-executor-common", "sc-executor-wasmtime", @@ -6611,10 +6684,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -6627,10 +6700,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "memory-lru", "parity-util-mem", "polkadot-node-subsystem", @@ -6645,8 +6718,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "async-std", "lazy_static", @@ -6663,11 +6736,11 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "bs58", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "log", "metered-channel", @@ -6682,29 +6755,29 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "async-trait", "derive_more", - "futures 0.3.19", + "futures 0.3.21", "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", "polkadot-primitives", "sc-authority-discovery", "sc-network", - "strum 0.23.0", + "strum", "thiserror", ] [[package]] name = "polkadot-node-primitives" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "bounded-vec", - "futures 0.3.19", + "futures 0.3.21", "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", @@ -6722,8 +6795,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -6732,11 +6805,11 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "derive_more", - "futures 0.3.19", + "futures 0.3.21", "polkadot-node-jaeger", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -6751,12 +6824,12 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "async-trait", "derive_more", - "futures 0.3.19", + "futures 0.3.21", "itertools", "lru 0.7.2", "metered-channel", @@ -6769,7 +6842,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", - "rand 0.8.4", + "rand 0.8.5", "sp-application-crypto", "sp-core", "sp-keystore", @@ -6779,10 +6852,10 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "lru 0.7.2", "parity-util-mem", @@ -6800,11 +6873,11 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "async-trait", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "metered-channel", "pin-project 1.0.10", @@ -6817,10 +6890,10 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen-proc-macro" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ - "proc-macro-crate 1.1.0", + "proc-macro-crate 1.1.3", "proc-macro2", "quote", "syn", @@ -6828,8 +6901,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "derive_more", "frame-support", @@ -6845,10 +6918,10 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ - "env_logger 0.9.0", + "env_logger", "kusama-runtime", "log", "polkadot-erasure-coding", @@ -6860,8 +6933,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "bitvec", "frame-system", @@ -6890,8 +6963,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -6921,8 +6994,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "beefy-primitives", "bitvec", @@ -7005,8 +7078,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "beefy-primitives", "bitvec", @@ -7052,8 +7125,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "frame-support", "polkadot-primitives", @@ -7064,8 +7137,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "bs58", "parity-scale-codec", @@ -7076,8 +7149,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "bitflags", "bitvec", @@ -7097,7 +7170,7 @@ dependencies = [ "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-metrics", - "rand 0.8.4", + "rand 0.8.5", "rand_chacha 0.3.1", "rustc-hex", "scale-info", @@ -7111,20 +7184,21 @@ dependencies = [ "sp-session", "sp-staking", "sp-std", + "static_assertions", "xcm", "xcm-executor", ] [[package]] name = "polkadot-service" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "async-trait", "beefy-gadget", "beefy-primitives", "frame-system-rpc-runtime-api", - "futures 0.3.19", + "futures 0.3.21", "hex-literal", "kusama-runtime", "kvdb", @@ -7217,12 +7291,12 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "arrayvec 0.5.2", "derive_more", - "futures 0.3.19", + "futures 0.3.21", "indexmap", "parity-scale-codec", "polkadot-node-network-protocol", @@ -7238,8 +7312,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7296,7 +7370,6 @@ checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" dependencies = [ "fixed-hash", "impl-codec", - "impl-rlp", "impl-serde", "scale-info", "uint", @@ -7313,9 +7386,9 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.1.0" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ebace6889caf889b4d3f76becee12e90353f2b8c7d875534a71e5742f8f6f83" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" dependencies = [ "thiserror", "toml", @@ -7385,7 +7458,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" dependencies = [ "bytes 1.1.0", - "heck", + "heck 0.3.3", "itertools", "lazy_static", "log", @@ -7423,9 +7496,9 @@ dependencies = [ [[package]] name = "psm" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd136ff4382c4753fc061cb9e4712ab2af263376b95bbd5bd8cd50c020b78e69" +checksum = "6eca0fa5dd7c4c96e184cec588f0b1db1ee3165e678db21c09793105acb17e6f" dependencies = [ "cc", ] @@ -7478,20 +7551,19 @@ dependencies = [ "libc", "rand_chacha 0.2.2", "rand_core 0.5.1", - "rand_hc 0.2.0", + "rand_hc", "rand_pcg", ] [[package]] name = "rand" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha 0.3.1", "rand_core 0.6.3", - "rand_hc 0.3.1", ] [[package]] @@ -7529,7 +7601,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ - "getrandom 0.2.4", + "getrandom 0.2.5", ] [[package]] @@ -7539,7 +7611,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" dependencies = [ "num-traits", - "rand 0.8.4", + "rand 0.8.5", ] [[package]] @@ -7551,15 +7623,6 @@ dependencies = [ "rand_core 0.5.1", ] -[[package]] -name = "rand_hc" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" -dependencies = [ - "rand_core 0.6.3", -] - [[package]] name = "rand_pcg" version = "0.2.1" @@ -7621,7 +7684,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" dependencies = [ - "getrandom 0.2.4", + "getrandom 0.2.5", "redox_syscall 0.2.10", ] @@ -7710,10 +7773,10 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ - "env_logger 0.9.0", - "jsonrpsee", + "env_logger", + "jsonrpsee 0.8.0", "log", "parity-scale-codec", "serde", @@ -7764,16 +7827,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "rlp" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "999508abb0ae792aabed2460c45b89106d97fe4adac593bdaef433c2605847b5" -dependencies = [ - "bytes 1.1.0", - "rustc-hex", -] - [[package]] name = "rocksdb" version = "0.17.0" @@ -7786,8 +7839,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "beefy-primitives", "bp-messages", @@ -7861,8 +7914,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "frame-support", "polkadot-primitives", @@ -7914,7 +7967,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.4", + "semver 1.0.6", ] [[package]] @@ -7940,8 +7993,20 @@ dependencies = [ "base64", "log", "ring", - "sct", - "webpki", + "sct 0.6.1", + "webpki 0.21.4", +] + +[[package]] +name = "rustls" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fbfeb8d0ddb84706bc597a5574ab8912817c52a397f819e5b614e2265206921" +dependencies = [ + "log", + "ring", + "sct 0.7.0", + "webpki 0.22.0", ] [[package]] @@ -7951,11 +8016,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092" dependencies = [ "openssl-probe", - "rustls", + "rustls 0.19.1", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca9ebdfa27d3fc180e42879037b5338ab1c040c06affd00d8338598e7800943" +dependencies = [ + "openssl-probe", + "rustls-pemfile", "schannel", "security-framework", ] +[[package]] +name = "rustls-pemfile" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9" +dependencies = [ + "base64", +] + [[package]] name = "rustversion" version = "1.0.6" @@ -7968,7 +8054,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "pin-project 0.4.29", "static_assertions", ] @@ -8000,7 +8086,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "log", "sp-core", @@ -8011,11 +8097,10 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "async-trait", - "derive_more", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "ip_network", "libp2p", @@ -8033,14 +8118,15 @@ dependencies = [ "sp-keystore", "sp-runtime", "substrate-prometheus-endpoint", + "thiserror", ] [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "log", "parity-scale-codec", @@ -8061,7 +8147,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8077,10 +8163,10 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "impl-trait-for-tuples", - "memmap2 0.5.2", + "memmap2 0.5.3", "parity-scale-codec", "sc-chain-spec-derive", "sc-network", @@ -8094,9 +8180,9 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ - "proc-macro-crate 1.1.0", + "proc-macro-crate 1.1.3", "proc-macro2", "quote", "syn", @@ -8105,11 +8191,12 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "chrono", + "clap", "fdlimit", - "futures 0.3.19", + "futures 0.3.21", "hex", "libp2p", "log", @@ -8134,7 +8221,6 @@ dependencies = [ "sp-panic-handler", "sp-runtime", "sp-version", - "structopt", "thiserror", "tiny-bip39", "tokio", @@ -8143,10 +8229,10 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "fnv", - "futures 0.3.19", + "futures 0.3.21", "hash-db", "log", "parity-scale-codec", @@ -8171,7 +8257,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "hash-db", "kvdb", @@ -8196,10 +8282,10 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "async-trait", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "libp2p", "log", @@ -8220,11 +8306,10 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "async-trait", - "derive_more", - "futures 0.3.19", + "futures 0.3.21", "log", "parity-scale-codec", "sc-block-builder", @@ -8244,17 +8329,17 @@ dependencies = [ "sp-keystore", "sp-runtime", "substrate-prometheus-endpoint", + "thiserror", ] [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "async-trait", - "derive_more", "fork-tree", - "futures 0.3.19", + "futures 0.3.21", "log", "merlin", "num-bigint", @@ -8287,15 +8372,15 @@ dependencies = [ "sp-runtime", "sp-version", "substrate-prometheus-endpoint", + "thiserror", ] [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ - "derive_more", - "futures 0.3.19", + "futures 0.3.21", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -8311,12 +8396,13 @@ dependencies = [ "sp-core", "sp-keystore", "sp-runtime", + "thiserror", ] [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8329,10 +8415,10 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "async-trait", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "log", "parity-scale-codec", @@ -8354,7 +8440,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "sc-client-api", "sp-authorship", @@ -8365,7 +8451,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "lazy_static", "libsecp256k1", @@ -8393,9 +8479,8 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ - "derive_more", "environmental", "parity-scale-codec", "sc-allocator", @@ -8411,7 +8496,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "log", "parity-scale-codec", @@ -8427,7 +8512,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "cfg-if 1.0.0", "libc", @@ -8445,19 +8530,18 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "async-trait", - "derive_more", "dyn-clone", "finality-grandpa", "fork-tree", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "log", "parity-scale-codec", "parking_lot 0.11.2", - "rand 0.8.4", + "rand 0.8.5", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -8478,16 +8562,16 @@ dependencies = [ "sp-keystore", "sp-runtime", "substrate-prometheus-endpoint", + "thiserror", ] [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ - "derive_more", "finality-grandpa", - "futures 0.3.19", + "futures 0.3.21", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -8502,15 +8586,16 @@ dependencies = [ "sp-blockchain", "sp-core", "sp-runtime", + "thiserror", ] [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "ansi_term", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "log", "parity-util-mem", @@ -8524,22 +8609,22 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "async-trait", - "derive_more", "hex", "parking_lot 0.11.2", "serde_json", "sp-application-crypto", "sp-core", "sp-keystore", + "thiserror", ] [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "async-std", "async-trait", @@ -8547,11 +8632,10 @@ dependencies = [ "bitflags", "bytes 1.1.0", "cid", - "derive_more", "either", "fnv", "fork-tree", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "hex", "ip_network", @@ -8590,9 +8674,9 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "libp2p", "log", @@ -8606,11 +8690,11 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "bytes 1.1.0", "fnv", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "hex", "hyper", @@ -8634,9 +8718,9 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "libp2p", "log", "sc-utils", @@ -8647,7 +8731,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8656,9 +8740,9 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "hash-db", "jsonrpc-core", "jsonrpc-pubsub", @@ -8687,9 +8771,9 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -8712,9 +8796,9 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "jsonrpc-core", "jsonrpc-http-server", "jsonrpc-ipc-server", @@ -8729,12 +8813,12 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "async-trait", "directories", "exit-future", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "hash-db", "jsonrpc-core", @@ -8793,7 +8877,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "log", "parity-scale-codec", @@ -8807,7 +8891,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -8829,10 +8913,10 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "chrono", - "futures 0.3.19", + "futures 0.3.21", "libp2p", "log", "parking_lot 0.11.2", @@ -8847,7 +8931,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "ansi_term", "atty", @@ -8878,9 +8962,9 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ - "proc-macro-crate 1.1.0", + "proc-macro-crate 1.1.3", "proc-macro2", "quote", "syn", @@ -8889,9 +8973,9 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "linked-hash-map", "log", @@ -8916,10 +9000,9 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ - "derive_more", - "futures 0.3.19", + "futures 0.3.21", "log", "serde", "sp-blockchain", @@ -8930,9 +9013,9 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "lazy_static", "parking_lot 0.11.2", @@ -8959,7 +9042,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baeb2780690380592f86205aa4ee49815feb2acad8c2f59e6dd207148c3f1fcd" dependencies = [ - "proc-macro-crate 1.1.0", + "proc-macro-crate 1.1.3", "proc-macro2", "quote", "syn", @@ -9015,6 +9098,16 @@ dependencies = [ "untrusted", ] +[[package]] +name = "sct" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "secrecy" version = "0.8.0" @@ -9026,9 +9119,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.6.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fed7948b6c68acbb6e20c334f55ad635dc0f75506963de4464289fbd3b051ac" +checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" dependencies = [ "bitflags", "core-foundation", @@ -9039,9 +9132,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.6.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a57321bf8bc2362081b2599912d2961fe899c0efadf1b4b2f8d48b3e253bb96c" +checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" dependencies = [ "core-foundation-sys", "libc", @@ -9067,9 +9160,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012" +checksum = "a4a3381e03edd24287172047536f20cabde766e2cd3e65e6b00fb3af51c4f38d" dependencies = [ "serde", ] @@ -9111,9 +9204,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.78" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d23c1ba4cf0efd44be32017709280b32d1cea5c3f1275c3b6d9e8bc54f758085" +checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95" dependencies = [ "itoa 1.0.1", "ryu", @@ -9172,13 +9265,13 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99c3bd8169c58782adad9290a9af5939994036b76187f7b4f0e6de91dbbfc0ec" +checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" dependencies = [ "cfg-if 1.0.0", "cpufeatures 0.2.1", - "digest 0.10.1", + "digest 0.10.3", ] [[package]] @@ -9253,8 +9346,8 @@ checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" [[package]] name = "slot-range-helper" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "enumn", "parity-scale-codec", @@ -9293,7 +9386,7 @@ dependencies = [ "aes-gcm", "blake2", "chacha20poly1305", - "rand 0.8.4", + "rand 0.8.5", "rand_core 0.6.3", "ring", "rustc_version 0.3.3", @@ -9332,17 +9425,17 @@ dependencies = [ "base64", "bytes 1.1.0", "flate2", - "futures 0.3.19", + "futures 0.3.21", "httparse", "log", - "rand 0.8.4", + "rand 0.8.5", "sha-1 0.9.8", ] [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "hash-db", "log", @@ -9359,10 +9452,10 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "blake2-rfc", - "proc-macro-crate 1.1.0", + "proc-macro-crate 1.1.3", "proc-macro2", "quote", "syn", @@ -9370,8 +9463,8 @@ dependencies = [ [[package]] name = "sp-application-crypto" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "parity-scale-codec", "scale-info", @@ -9384,7 +9477,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "integer-sqrt", "num-traits", @@ -9399,7 +9492,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "parity-scale-codec", "scale-info", @@ -9412,7 +9505,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "async-trait", "parity-scale-codec", @@ -9424,7 +9517,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "parity-scale-codec", "sp-api", @@ -9436,9 +9529,9 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "log", "lru 0.7.2", "parity-scale-codec", @@ -9454,10 +9547,10 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "async-trait", - "futures 0.3.19", + "futures 0.3.21", "futures-timer", "log", "parity-scale-codec", @@ -9473,7 +9566,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "async-trait", "parity-scale-codec", @@ -9491,7 +9584,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "async-trait", "merlin", @@ -9514,7 +9607,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "parity-scale-codec", "scale-info", @@ -9526,7 +9619,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -9537,8 +9630,8 @@ dependencies = [ [[package]] name = "sp-core" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "base58", "bitflags", @@ -9546,7 +9639,7 @@ dependencies = [ "byteorder", "dyn-clonable", "ed25519-dalek", - "futures 0.3.19", + "futures 0.3.21", "hash-db", "hash256-std-hasher", "hex", @@ -9566,7 +9659,7 @@ dependencies = [ "schnorrkel", "secrecy", "serde", - "sha2 0.10.1", + "sha2 0.10.2", "sp-core-hashing", "sp-debug-derive", "sp-externalities", @@ -9586,11 +9679,11 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "blake2-rfc", "byteorder", - "sha2 0.10.1", + "sha2 0.10.2", "sp-std", "tiny-keccak", "twox-hash", @@ -9599,7 +9692,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "proc-macro2", "quote", @@ -9610,7 +9703,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "kvdb", "parking_lot 0.11.2", @@ -9619,7 +9712,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "proc-macro2", "quote", @@ -9628,8 +9721,8 @@ dependencies = [ [[package]] name = "sp-externalities" -version = "0.10.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +version = "0.11.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "environmental", "parity-scale-codec", @@ -9640,7 +9733,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "finality-grandpa", "log", @@ -9658,7 +9751,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9671,10 +9764,10 @@ dependencies = [ [[package]] name = "sp-io" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "hash-db", "libsecp256k1", "log", @@ -9695,23 +9788,22 @@ dependencies = [ [[package]] name = "sp-keyring" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "lazy_static", "sp-core", "sp-runtime", - "strum 0.22.0", + "strum", ] [[package]] name = "sp-keystore" -version = "0.10.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +version = "0.11.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "async-trait", - "derive_more", - "futures 0.3.19", + "futures 0.3.21", "merlin", "parity-scale-codec", "parking_lot 0.11.2", @@ -9719,20 +9811,22 @@ dependencies = [ "serde", "sp-core", "sp-externalities", + "thiserror", ] [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ + "thiserror", "zstd", ] [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "parity-scale-codec", "scale-info", @@ -9747,9 +9841,9 @@ dependencies = [ [[package]] name = "sp-npos-elections-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ - "proc-macro-crate 1.1.0", + "proc-macro-crate 1.1.3", "proc-macro2", "quote", "syn", @@ -9758,7 +9852,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "sp-api", "sp-core", @@ -9768,7 +9862,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "backtrace", "lazy_static", @@ -9777,8 +9871,8 @@ dependencies = [ [[package]] name = "sp-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "rustc-hash", "serde", @@ -9787,8 +9881,8 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "either", "hash256-std-hasher", @@ -9809,8 +9903,8 @@ dependencies = [ [[package]] name = "sp-runtime-interface" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9827,10 +9921,10 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "Inflector", - "proc-macro-crate 1.1.0", + "proc-macro-crate 1.1.3", "proc-macro2", "quote", "syn", @@ -9839,7 +9933,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "serde", "serde_json", @@ -9848,7 +9942,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "parity-scale-codec", "scale-info", @@ -9862,7 +9956,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "parity-scale-codec", "scale-info", @@ -9872,8 +9966,8 @@ dependencies = [ [[package]] name = "sp-state-machine" -version = "0.10.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +version = "0.11.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "hash-db", "log", @@ -9896,12 +9990,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" [[package]] name = "sp-storage" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "impl-serde", "parity-scale-codec", @@ -9914,7 +10008,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "log", "sp-core", @@ -9927,7 +10021,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "async-trait", "futures-timer", @@ -9943,7 +10037,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "parity-scale-codec", "sp-std", @@ -9955,7 +10049,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "sp-api", "sp-runtime", @@ -9964,7 +10058,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "async-trait", "log", @@ -9979,8 +10073,8 @@ dependencies = [ [[package]] name = "sp-trie" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "hash-db", "memory-db", @@ -9995,7 +10089,7 @@ dependencies = [ [[package]] name = "sp-version" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10012,7 +10106,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10022,8 +10116,8 @@ dependencies = [ [[package]] name = "sp-wasm-interface" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "impl-trait-for-tuples", "log", @@ -10041,9 +10135,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "ss58-registry" -version = "1.12.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8319f44e20b42e5c11b88b1ad4130c35fe2974665a007b08b02322070177136a" +checksum = "2f9799e6d412271cb2414597581128b03f3285f260ea49f5363d07df6a332b3e" dependencies = [ "Inflector", "proc-macro2", @@ -10100,47 +10194,14 @@ dependencies = [ "lazy_static", "nalgebra", "num-traits", - "rand 0.8.4", + "rand 0.8.5", ] [[package]] name = "strsim" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" - -[[package]] -name = "structopt" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" -dependencies = [ - "clap", - "lazy_static", - "structopt-derive", -] - -[[package]] -name = "structopt-derive" -version = "0.4.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" -dependencies = [ - "heck", - "proc-macro-error", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "strum" -version = "0.22.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" -dependencies = [ - "strum_macros 0.22.0", -] +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "strum" @@ -10148,19 +10209,7 @@ version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" dependencies = [ - "strum_macros 0.23.1", -] - -[[package]] -name = "strum_macros" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", + "strum_macros", ] [[package]] @@ -10169,7 +10218,7 @@ version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" dependencies = [ - "heck", + "heck 0.3.3", "proc-macro2", "quote", "rustversion", @@ -10192,7 +10241,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "platforms", ] @@ -10200,10 +10249,10 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "frame-system-rpc-runtime-api", - "futures 0.3.19", + "futures 0.3.21", "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", @@ -10222,26 +10271,27 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "async-std", - "derive_more", "futures-util", "hyper", "log", "prometheus", + "thiserror", "tokio", ] [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ "ansi_term", "build-helper", "cargo_metadata", "sp-maybe-compressed-blob", + "strum", "tempfile", "toml", "walkdir", @@ -10314,12 +10364,9 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.11.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -dependencies = [ - "unicode-width", -] +checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80" [[package]] name = "thiserror" @@ -10428,18 +10475,19 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.16.1" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c27a64b625de6d309e8c57716ba93021dccf1b3b5c97edd6d3dd2d2135afc0a" +checksum = "2af73ac49756f3f7c01172e34a23e5d0216f6c32333757c2c61feb2bbff5a5ee" dependencies = [ "bytes 1.1.0", "libc", "memchr", - "mio 0.7.14", + "mio 0.8.0", "num_cpus", "once_cell", "pin-project-lite 0.2.8", "signal-hook-registry", + "socket2 0.4.4", "tokio-macros", "winapi 0.3.9", ] @@ -10461,9 +10509,20 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" dependencies = [ - "rustls", + "rustls 0.19.1", + "tokio", + "webpki 0.21.4", +] + +[[package]] +name = "tokio-rustls" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a27d5f2b839802bd8267fa19b0530f5a08b9c08cd417976be2a65d130fe1c11b" +dependencies = [ + "rustls 0.20.4", "tokio", - "webpki", + "webpki 0.22.0", ] [[package]] @@ -10509,9 +10568,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d8d93354fe2a8e50d5953f5ae2e47a3fc2ef03292e7ea46e3cc38f549525fb9" +checksum = "f6c650a8ef0cd2dd93736f033d21cbd1224c5a967aa0c258d00fcf7dafef9b9f" dependencies = [ "cfg-if 1.0.0", "pin-project-lite 0.2.8", @@ -10633,7 +10692,7 @@ dependencies = [ "ipnet", "lazy_static", "log", - "rand 0.8.4", + "rand 0.8.5", "smallvec", "thiserror", "tinyvec", @@ -10668,9 +10727,10 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.16#4aeb95f7f38fcd519e2628f32f79044a8fef99d5" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" dependencies = [ - "jsonrpsee", + "clap", + "jsonrpsee 0.4.1", "log", "parity-scale-codec", "remote-externalities", @@ -10686,7 +10746,6 @@ dependencies = [ "sp-runtime", "sp-state-machine", "sp-version", - "structopt", "zstd", ] @@ -10703,7 +10762,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ee73e6e4924fe940354b8d4d98cad5231175d615cd855b758adc658c0aac6a0" dependencies = [ "cfg-if 1.0.0", - "rand 0.8.4", + "rand 0.8.5", "static_assertions", ] @@ -10757,15 +10816,9 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" - -[[package]] -name = "unicode-width" -version = "0.1.9" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" +checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" [[package]] name = "unicode-xid" @@ -10864,12 +10917,6 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" -[[package]] -name = "vec_map" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" - [[package]] name = "version_check" version = "0.9.4" @@ -11013,7 +11060,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "js-sys", "parking_lot 0.11.2", "pin-utils", @@ -11054,9 +11101,9 @@ checksum = "98930446519f63d00a836efdc22f67766ceae8dbcc1571379f2bcabc6b2b9abc" [[package]] name = "wasmtime" -version = "0.33.0" +version = "0.33.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "414be1bc5ca12e755ffd3ff7acc3a6d1979922f8237fc34068b2156cebcc3270" +checksum = "4c9c724da92e39a85d2231d4c2a942c8be295211441dbca581c6c3f3f45a9f00" dependencies = [ "anyhow", "backtrace", @@ -11086,9 +11133,9 @@ dependencies = [ [[package]] name = "wasmtime-cache" -version = "0.33.0" +version = "0.33.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9b4cd1949206fda9241faf8c460a7d797aa1692594d3dd6bc1cbfa57ee20d0" +checksum = "da4439d99100298344567c0eb6916ad5864e99e54760b8177c427e529077fb30" dependencies = [ "anyhow", "base64", @@ -11106,9 +11153,9 @@ dependencies = [ [[package]] name = "wasmtime-cranelift" -version = "0.33.0" +version = "0.33.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4693d33725773615a4c9957e4aa731af57b27dca579702d1d8ed5750760f1a9" +checksum = "1762765dd69245f00e5d9783b695039e449a7be0f9c5383e4c78465dd6131aeb" dependencies = [ "anyhow", "cranelift-codegen", @@ -11128,9 +11175,9 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "0.33.0" +version = "0.33.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b17e47116a078b9770e6fb86cff8b9a660826623cebcfff251b047c8d8993ef" +checksum = "c4468301d95ec71710bb6261382efe27d1296447711645e3dbabaea6e4de3504" dependencies = [ "anyhow", "cranelift-entity", @@ -11148,9 +11195,9 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "0.33.0" +version = "0.33.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60ea5b380bdf92e32911400375aeefb900ac9d3f8e350bb6ba555a39315f2ee7" +checksum = "ab0ae6e581ff014b470ec35847ea3c0b4c3ace89a55df5a04c802a11f4574e7d" dependencies = [ "addr2line", "anyhow", @@ -11170,9 +11217,9 @@ dependencies = [ [[package]] name = "wasmtime-runtime" -version = "0.33.0" +version = "0.33.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abc7cd79937edd6e238b337608ebbcaf9c086a8457f01dfd598324f7fa56d81a" +checksum = "6d9c28877ae37a367cda7b52b8887589816152e95dde9b7c80cc686f52761961" dependencies = [ "anyhow", "backtrace", @@ -11185,7 +11232,7 @@ dependencies = [ "mach", "memoffset", "more-asserts", - "rand 0.8.4", + "rand 0.8.5", "region", "rustix", "thiserror", @@ -11195,9 +11242,9 @@ dependencies = [ [[package]] name = "wasmtime-types" -version = "0.33.0" +version = "0.33.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9e5e51a461a2cf2b69e1fc48f325b17d78a8582816e18479e8ead58844b23f8" +checksum = "395726e8f5dd8c57cb0db445627b842343f7e29ed7489467fdf7953ed9d3cd4f" dependencies = [ "cranelift-entity", "serde", @@ -11225,13 +11272,32 @@ dependencies = [ "untrusted", ] +[[package]] +name = "webpki" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "webpki-roots" version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" dependencies = [ - "webpki", + "webpki 0.21.4", +] + +[[package]] +name = "webpki-roots" +version = "0.22.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "552ceb903e957524388c4d3475725ff2c8b7960922063af6ce53c9a43da07449" +dependencies = [ + "webpki 0.22.0", ] [[package]] @@ -11245,8 +11311,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "beefy-primitives", "bitvec", @@ -11331,8 +11397,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "frame-support", "polkadot-primitives", @@ -11401,6 +11467,49 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows-sys" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3df6e476185f92a12c072be4a189a0210dcdcf512a1891d6dff9edb874deadc6" +dependencies = [ + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_msvc" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5" + +[[package]] +name = "windows_i686_gnu" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615" + +[[package]] +name = "windows_i686_msvc" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316" + [[package]] name = "winreg" version = "0.6.2" @@ -11439,8 +11548,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -11452,8 +11561,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "frame-support", "frame-system", @@ -11472,8 +11581,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.16" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +version = "0.9.17" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "frame-benchmarking", "frame-support", @@ -11491,7 +11600,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.16#41ab002d7451766324a9f314fee11c9c53314350" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" dependencies = [ "Inflector", "proc-macro2", @@ -11505,11 +11614,11 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7d9028f208dd5e63c614be69f115c1b53cacc1111437d4c765185856666c107" dependencies = [ - "futures 0.3.19", + "futures 0.3.21", "log", "nohash-hasher", "parking_lot 0.11.2", - "rand 0.8.4", + "rand 0.8.5", "static_assertions", ] @@ -11524,9 +11633,9 @@ dependencies = [ [[package]] name = "zeroize_derive" -version = "1.3.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81e8f13fef10b63c06356d65d416b070798ddabcadc10d3ece0c5be9b3c7eddb" +checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 28431094..f95719de 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,9 +1,9 @@ [profile.release] -panic = 'unwind' +panic = "unwind" [workspace] members = [ - 'node', - 'pallets/*', - 'runtime', + "node", + "pallets/*", + "runtime", ] diff --git a/node/Cargo.toml b/node/Cargo.toml index 6bfff5cd..3728dd8e 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -13,7 +13,7 @@ build = "build.rs" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } [[bin]] name = "parachain-collator" @@ -24,15 +24,15 @@ runtime-benchmarks = [ "parachain-template-runtime/runtime-benchmarks", "polkadot-cli/runtime-benchmarks", ] -try-runtime = [ "parachain-template-runtime/try-runtime" ] +try-runtime = ["parachain-template-runtime/try-runtime"] [dependencies] +clap = { version = "3.1", features = ["derive"] } derive_more = "0.99.2" log = "0.4.14" codec = { package = "parity-scale-codec", version = "2.0.0" } -structopt = "0.3.8" serde = { version = "1.0.132", features = ["derive"] } -hex-literal = "0.3.1" +hex-literal = "0.3.4" # RPC related Dependencies jsonrpc-core = "18.0.0" @@ -41,62 +41,62 @@ jsonrpc-core = "18.0.0" parachain-template-runtime = { path = "../runtime" } # Substrate Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } ## Substrate Client Dependencies -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"], branch = "polkadot-v0.9.16" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17", features = ["wasmtime"] } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17", features = ["wasmtime"] } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17", features = ["wasmtime"] } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } ## Substrate Primitive Dependencies -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } # Cumulus dependencies -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" } -cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" } -cumulus-relay-chain-local = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17" } +cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17" } +cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17" } +cumulus-relay-chain-local = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17" } # Polkadot dependencies -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.16" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.16" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.16" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.16" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.16" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.17" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.17" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.17" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.17" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.17" } diff --git a/node/src/cli.rs b/node/src/cli.rs index 53040d7c..b7cc6134 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -1,16 +1,16 @@ use crate::chain_spec; +use clap::Parser; use std::path::PathBuf; -use structopt::StructOpt; /// Sub-commands supported by the collator. -#[derive(Debug, StructOpt)] +#[derive(Debug, clap::Subcommand)] pub enum Subcommand { /// Export the genesis state of the parachain. - #[structopt(name = "export-genesis-state")] + #[clap(name = "export-genesis-state")] ExportGenesisState(ExportGenesisStateCommand), /// Export the genesis wasm of the parachain. - #[structopt(name = "export-genesis-wasm")] + #[clap(name = "export-genesis-wasm")] ExportGenesisWasm(ExportGenesisWasmCommand), /// Build a chain specification. @@ -35,7 +35,7 @@ pub enum Subcommand { Revert(sc_cli::RevertCmd), /// The custom benchmark subcommmand benchmarking runtime pallets. - #[structopt(name = "benchmark", about = "Benchmark runtime pallets.")] + #[clap(name = "benchmark", about = "Benchmark runtime pallets.")] Benchmark(frame_benchmarking_cli::BenchmarkCmd), /// Try some testing command against a specified runtime state. @@ -43,52 +43,52 @@ pub enum Subcommand { } /// Command for exporting the genesis state of the parachain -#[derive(Debug, StructOpt)] +#[derive(Debug, Parser)] pub struct ExportGenesisStateCommand { /// Output file name or stdout if unspecified. - #[structopt(parse(from_os_str))] + #[clap(parse(from_os_str))] pub output: Option, /// Write output in binary. Default is to write in hex. - #[structopt(short, long)] + #[clap(short, long)] pub raw: bool, /// The name of the chain for that the genesis state should be exported. - #[structopt(long)] + #[clap(long)] pub chain: Option, } /// Command for exporting the genesis wasm file. -#[derive(Debug, StructOpt)] +#[derive(Debug, Parser)] pub struct ExportGenesisWasmCommand { /// Output file name or stdout if unspecified. - #[structopt(parse(from_os_str))] + #[clap(parse(from_os_str))] pub output: Option, /// Write output in binary. Default is to write in hex. - #[structopt(short, long)] + #[clap(short, long)] pub raw: bool, /// The name of the chain for that the genesis wasm file should be exported. - #[structopt(long)] + #[clap(long)] pub chain: Option, } -#[derive(Debug, StructOpt)] -#[structopt(settings = &[ - structopt::clap::AppSettings::GlobalVersion, - structopt::clap::AppSettings::ArgsNegateSubcommands, - structopt::clap::AppSettings::SubcommandsNegateReqs, -])] +#[derive(Debug, Parser)] +#[clap( + propagate_version = true, + args_conflicts_with_subcommands = true, + subcommand_negates_reqs = true +)] pub struct Cli { - #[structopt(subcommand)] + #[clap(subcommand)] pub subcommand: Option, - #[structopt(flatten)] + #[clap(flatten)] pub run: cumulus_client_cli::RunCmd, /// Relay chain arguments - #[structopt(raw = true)] + #[clap(raw = true)] pub relay_chain_args: Vec, } @@ -113,6 +113,6 @@ impl RelayChainCli { let extension = chain_spec::Extensions::try_get(&*para_config.chain_spec); let chain_id = extension.map(|e| e.relay_chain.clone()); let base_path = para_config.base_path.as_ref().map(|x| x.path().join("polkadot")); - Self { base_path, chain_id, base: polkadot_cli::RunCmd::from_iter(relay_chain_args) } + Self { base_path, chain_id, base: polkadot_cli::RunCmd::parse_from(relay_chain_args) } } } diff --git a/node/src/command.rs b/node/src/command.rs index f6bbef01..2d62cf44 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -432,4 +432,8 @@ impl CliConfiguration for RelayChainCli { ) -> Result> { self.base.base.telemetry_endpoints(chain_spec) } + + fn node_name(&self) -> Result { + self.base.base.node_name() + } } diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 9715fb51..354b5347 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -15,15 +15,15 @@ targets = ["x86_64-unknown-linux-gnu"] codec = { package = "parity-scale-codec", version = "2.0.0", features = ["derive"], default-features = false } scale-info = { version = "1.0.0", default-features = false, features = ["derive"] } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.16" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.17" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } [dev-dependencies] serde = { version = "1.0.132" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } [features] default = ["std"] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index c86534d0..49751f8e 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,10 +12,10 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.16" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } [dependencies] -hex-literal = { version = "0.3.1", optional = true } +hex-literal = { version = "0.3.4", optional = true } codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"]} log = { version = "0.4.14", default-features = false } scale-info = { version = "1.0.0", default-features = false, features = ["derive"] } @@ -27,58 +27,58 @@ pallet-template = { path = "../pallets/template", default-features = false } # Substrate Dependencies ## Substrate Primitive Dependencies -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } ## Substrate FRAME Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.16" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.16" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.16" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.16" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.17" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.17" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.17" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } ## Substrate Pallet Dependencies -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.16" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } # Cumulus dependencies -cumulus-pallet-aura-ext = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.16', default-features = false } -cumulus-pallet-dmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.16', default-features = false } -cumulus-pallet-parachain-system = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.16', default-features = false } -cumulus-pallet-xcm = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.16', default-features = false } -cumulus-pallet-xcmp-queue = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.16', default-features = false } -cumulus-primitives-core = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.16', default-features = false } -cumulus-primitives-timestamp = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.16', default-features = false } -cumulus-primitives-utility = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.16', default-features = false } -pallet-collator-selection = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.16', default-features = false } -parachain-info = { git = 'https://github.com/paritytech/cumulus', branch = 'polkadot-v0.9.16', default-features = false } -cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.16", default-features = false, version = "3.0.0"} +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false } +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false } +pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false } +parachain-info = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false } +cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false, version = "3.0.0"} # Polkadot Dependencies -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.16" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.16" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.16" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.16" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.16" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false , branch = "release-v0.9.16" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.17" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.17" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.17" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.17" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.17" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.17" } [features] default = [ @@ -104,6 +104,7 @@ std = [ "frame-executive/std", "frame-support/std", "frame-system/std", + "frame-system-rpc-runtime-api/std", "pallet-aura/std", "pallet-authorship/std", "pallet-balances/std", @@ -114,6 +115,7 @@ std = [ "pallet-timestamp/std", "pallet-transaction-payment-rpc-runtime-api/std", "pallet-transaction-payment/std", + "pallet-xcm/std", "cumulus-pallet-aura-ext/std", "cumulus-pallet-parachain-system/std", "cumulus-pallet-xcm/std", diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 591d9a6e..ca506338 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -6,6 +6,8 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +pub mod xcm_config; + use smallvec::smallvec; use sp_api::impl_runtime_apis; use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; @@ -22,11 +24,11 @@ use sp_version::NativeVersion; use sp_version::RuntimeVersion; use frame_support::{ - construct_runtime, match_type, parameter_types, - traits::{Everything, Nothing}, + construct_runtime, parameter_types, + traits::Everything, weights::{ constants::{BlockExecutionWeight, ExtrinsicBaseWeight, WEIGHT_PER_SECOND}, - DispatchClass, IdentityFee, Weight, WeightToFeeCoefficient, WeightToFeeCoefficients, + DispatchClass, Weight, WeightToFeeCoefficient, WeightToFeeCoefficients, WeightToFeePolynomial, }, PalletId, @@ -37,25 +39,17 @@ use frame_system::{ }; pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; pub use sp_runtime::{MultiAddress, Perbill, Permill}; +use xcm_config::{XcmConfig, XcmOriginToTransactDispatchOrigin}; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; // Polkadot Imports -use pallet_xcm::XcmPassthrough; -use polkadot_parachain::primitives::Sibling; use polkadot_runtime_common::{BlockHashCount, RocksDbWeight, SlowAdjustingFeeUpdate}; // XCM Imports -use xcm::latest::prelude::*; -use xcm_builder::{ - AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter, - EnsureXcmOrigin, FixedWeightBounds, IsConcrete, LocationInverter, NativeAsset, ParentIsDefault, - RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, - SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, - UsingComponents, -}; -use xcm_executor::{Config, XcmExecutor}; +use xcm::latest::prelude::BodyId; +use xcm_executor::XcmExecutor; /// Import the template pallet. pub use pallet_template; @@ -179,8 +173,8 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_version: 1, impl_version: 0, apis: RUNTIME_API_VERSIONS, - transaction_version: 0, - state_version: 0, + transaction_version: 1, + state_version: 1, }; /// This determines the average expected block time that we are targeting. @@ -384,147 +378,14 @@ impl parachain_info::Config for Runtime {} impl cumulus_pallet_aura_ext::Config for Runtime {} -parameter_types! { - pub const RelayLocation: MultiLocation = MultiLocation::parent(); - pub const RelayNetwork: NetworkId = NetworkId::Any; - pub RelayChainOrigin: Origin = cumulus_pallet_xcm::Origin::Relay.into(); - pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); -} - -/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used -/// when determining ownership of accounts for asset transacting and when attempting to use XCM -/// `Transact` in order to determine the dispatch Origin. -pub type LocationToAccountId = ( - // The parent (Relay-chain) origin converts to the default `AccountId`. - ParentIsDefault, - // Sibling parachain origins convert to AccountId via the `ParaId::into`. - SiblingParachainConvertsVia, - // Straight up local `AccountId32` origins just alias directly to `AccountId`. - AccountId32Aliases, -); - -/// Means for transacting assets on this chain. -pub type LocalAssetTransactor = CurrencyAdapter< - // Use this currency: - Balances, - // Use this currency when it is a fungible asset matching the given location or name: - IsConcrete, - // Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID: - LocationToAccountId, - // Our chain's account ID type (we can't get away without mentioning it explicitly): - AccountId, - // We don't track any teleports. - (), ->; - -/// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance, -/// ready for dispatching a transaction with Xcm's `Transact`. There is an `OriginKind` which can -/// biases the kind of local `Origin` it will become. -pub type XcmOriginToTransactDispatchOrigin = ( - // Sovereign account converter; this attempts to derive an `AccountId` from the origin location - // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for - // foreign chains who want to have a local sovereign account on this chain which they control. - SovereignSignedViaLocation, - // Native converter for Relay-chain (Parent) location; will converts to a `Relay` origin when - // recognized. - RelayChainAsNative, - // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when - // recognized. - SiblingParachainAsNative, - // Native signed account converter; this just converts an `AccountId32` origin into a normal - // `Origin::Signed` origin of the same 32-byte value. - SignedAccountId32AsNative, - // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. - XcmPassthrough, -); - -parameter_types! { - // One XCM operation is 1_000_000_000 weight - almost certainly a conservative estimate. - pub UnitWeightCost: Weight = 1_000_000_000; - pub const MaxInstructions: u32 = 100; -} - -match_type! { - pub type ParentOrParentsExecutivePlurality: impl Contains = { - MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(Plurality { id: BodyId::Executive, .. }) } - }; -} - -pub type Barrier = ( - TakeWeightCredit, - AllowTopLevelPaidExecutionFrom, - AllowUnpaidExecutionFrom, - // ^^^ Parent and its exec plurality get free execution -); - -pub struct XcmConfig; -impl Config for XcmConfig { - type Call = Call; - type XcmSender = XcmRouter; - // How to withdraw and deposit an asset. - type AssetTransactor = LocalAssetTransactor; - type OriginConverter = XcmOriginToTransactDispatchOrigin; - type IsReserve = NativeAsset; - type IsTeleporter = (); // Teleporting is disabled. - type LocationInverter = LocationInverter; - type Barrier = Barrier; - type Weigher = FixedWeightBounds; - type Trader = UsingComponents, RelayLocation, AccountId, Balances, ()>; - type ResponseHandler = PolkadotXcm; - type AssetTrap = PolkadotXcm; - type AssetClaims = PolkadotXcm; - type SubscriptionService = PolkadotXcm; -} - -parameter_types! { - pub const MaxDownwardMessageWeight: Weight = MAXIMUM_BLOCK_WEIGHT / 10; -} - -/// No local origins on this chain are allowed to dispatch XCM sends/executions. -pub type LocalOriginToLocation = SignedToAccountId32; - -/// The means for routing XCM messages which are not for local execution into the right message -/// queues. -pub type XcmRouter = ( - // Two routers - use UMP to communicate with the relay chain: - cumulus_primitives_utility::ParentAsUmp, - // ..and XCMP to communicate with the sibling chains. - XcmpQueue, -); - -impl pallet_xcm::Config for Runtime { - type Event = Event; - type SendXcmOrigin = EnsureXcmOrigin; - type XcmRouter = XcmRouter; - type ExecuteXcmOrigin = EnsureXcmOrigin; - type XcmExecuteFilter = Nothing; - // ^ Disable dispatchable execute on the XCM pallet. - // Needs to be `Everything` for local testing. - type XcmExecutor = XcmExecutor; - type XcmTeleportFilter = Everything; - type XcmReserveTransferFilter = Nothing; - type Weigher = FixedWeightBounds; - type LocationInverter = LocationInverter; - type Origin = Origin; - type Call = Call; - - const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; - // ^ Override for AdvertisedXcmVersion default - type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; -} - -impl cumulus_pallet_xcm::Config for Runtime { - type Event = Event; - type XcmExecutor = XcmExecutor; -} - impl cumulus_pallet_xcmp_queue::Config for Runtime { type Event = Event; type XcmExecutor = XcmExecutor; type ChannelInfo = ParachainSystem; type VersionWrapper = (); type ExecuteOverweightOrigin = EnsureRoot; + type ControllerOrigin = EnsureRoot; + type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; } impl cumulus_pallet_dmp_queue::Config for Runtime { diff --git a/runtime/src/xcm_config.rs b/runtime/src/xcm_config.rs new file mode 100644 index 00000000..86dda52f --- /dev/null +++ b/runtime/src/xcm_config.rs @@ -0,0 +1,151 @@ +use super::{ + AccountId, Balance, Balances, Call, Event, Origin, ParachainInfo, ParachainSystem, PolkadotXcm, + Runtime, XcmpQueue, +}; +use frame_support::{ + match_type, parameter_types, + traits::{Everything, Nothing}, + weights::{IdentityFee, Weight}, +}; +use pallet_xcm::XcmPassthrough; +use polkadot_parachain::primitives::Sibling; +use xcm::latest::prelude::*; +use xcm_builder::{ + AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter, + EnsureXcmOrigin, FixedWeightBounds, IsConcrete, LocationInverter, NativeAsset, ParentIsPreset, + RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, + UsingComponents, +}; +use xcm_executor::XcmExecutor; + +parameter_types! { + pub const RelayLocation: MultiLocation = MultiLocation::parent(); + pub const RelayNetwork: NetworkId = NetworkId::Any; + pub RelayChainOrigin: Origin = cumulus_pallet_xcm::Origin::Relay.into(); + pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); +} + +/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used +/// when determining ownership of accounts for asset transacting and when attempting to use XCM +/// `Transact` in order to determine the dispatch Origin. +pub type LocationToAccountId = ( + // The parent (Relay-chain) origin converts to the parent `AccountId`. + ParentIsPreset, + // Sibling parachain origins convert to AccountId via the `ParaId::into`. + SiblingParachainConvertsVia, + // Straight up local `AccountId32` origins just alias directly to `AccountId`. + AccountId32Aliases, +); + +/// Means for transacting assets on this chain. +pub type LocalAssetTransactor = CurrencyAdapter< + // Use this currency: + Balances, + // Use this currency when it is a fungible asset matching the given location or name: + IsConcrete, + // Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We don't track any teleports. + (), +>; + +/// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance, +/// ready for dispatching a transaction with Xcm's `Transact`. There is an `OriginKind` which can +/// biases the kind of local `Origin` it will become. +pub type XcmOriginToTransactDispatchOrigin = ( + // Sovereign account converter; this attempts to derive an `AccountId` from the origin location + // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for + // foreign chains who want to have a local sovereign account on this chain which they control. + SovereignSignedViaLocation, + // Native converter for Relay-chain (Parent) location; will converts to a `Relay` origin when + // recognized. + RelayChainAsNative, + // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when + // recognized. + SiblingParachainAsNative, + // Native signed account converter; this just converts an `AccountId32` origin into a normal + // `Origin::Signed` origin of the same 32-byte value. + SignedAccountId32AsNative, + // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. + XcmPassthrough, +); + +parameter_types! { + // One XCM operation is 1_000_000_000 weight - almost certainly a conservative estimate. + pub UnitWeightCost: Weight = 1_000_000_000; + pub const MaxInstructions: u32 = 100; +} + +match_type! { + pub type ParentOrParentsExecutivePlurality: impl Contains = { + MultiLocation { parents: 1, interior: Here } | + MultiLocation { parents: 1, interior: X1(Plurality { id: BodyId::Executive, .. }) } + }; +} + +pub type Barrier = ( + TakeWeightCredit, + AllowTopLevelPaidExecutionFrom, + AllowUnpaidExecutionFrom, + // ^^^ Parent and its exec plurality get free execution +); + +pub struct XcmConfig; +impl xcm_executor::Config for XcmConfig { + type Call = Call; + type XcmSender = XcmRouter; + // How to withdraw and deposit an asset. + type AssetTransactor = LocalAssetTransactor; + type OriginConverter = XcmOriginToTransactDispatchOrigin; + type IsReserve = NativeAsset; + type IsTeleporter = (); // Teleporting is disabled. + type LocationInverter = LocationInverter; + type Barrier = Barrier; + type Weigher = FixedWeightBounds; + type Trader = UsingComponents, RelayLocation, AccountId, Balances, ()>; + type ResponseHandler = PolkadotXcm; + type AssetTrap = PolkadotXcm; + type AssetClaims = PolkadotXcm; + type SubscriptionService = PolkadotXcm; +} + +/// No local origins on this chain are allowed to dispatch XCM sends/executions. +pub type LocalOriginToLocation = SignedToAccountId32; + +/// The means for routing XCM messages which are not for local execution into the right message +/// queues. +pub type XcmRouter = ( + // Two routers - use UMP to communicate with the relay chain: + cumulus_primitives_utility::ParentAsUmp, + // ..and XCMP to communicate with the sibling chains. + XcmpQueue, +); + +impl pallet_xcm::Config for Runtime { + type Event = Event; + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + type ExecuteXcmOrigin = EnsureXcmOrigin; + type XcmExecuteFilter = Nothing; + // ^ Disable dispatchable execute on the XCM pallet. + // Needs to be `Everything` for local testing. + type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = Everything; + type XcmReserveTransferFilter = Nothing; + type Weigher = FixedWeightBounds; + type LocationInverter = LocationInverter; + type Origin = Origin; + type Call = Call; + + const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; + // ^ Override for AdvertisedXcmVersion default + type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; +} + +impl cumulus_pallet_xcm::Config for Runtime { + type Event = Event; + type XcmExecutor = XcmExecutor; +} From dfced8e68679aa0a1d359fb1e42d057167174a91 Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Tue, 22 Mar 2022 11:58:57 -0600 Subject: [PATCH 51/91] Update to `polkadot-v0.9.18` (#103) * RPC for relay chain exposed for colllator https://github.com/paritytech/cumulus/pull/963 * Weights files added for runtime * SCALE version 3 used * `scale-info` version 2 used --- Cargo.lock | 1705 ++++++++++++++-------- node/Cargo.toml | 136 +- node/src/command.rs | 3 +- node/src/service.rs | 60 +- pallets/template/Cargo.toml | 21 +- runtime/Cargo.toml | 162 +- runtime/src/lib.rs | 2 + runtime/src/weights/block_weights.rs | 46 + runtime/src/weights/extrinsic_weights.rs | 46 + runtime/src/weights/mod.rs | 28 + runtime/src/weights/paritydb_weights.rs | 63 + runtime/src/weights/rocksdb_weights.rs | 63 + runtime/src/xcm_config.rs | 10 +- 13 files changed, 1539 insertions(+), 806 deletions(-) create mode 100644 runtime/src/weights/block_weights.rs create mode 100644 runtime/src/weights/extrinsic_weights.rs create mode 100644 runtime/src/weights/mod.rs create mode 100644 runtime/src/weights/paritydb_weights.rs create mode 100644 runtime/src/weights/rocksdb_weights.rs diff --git a/Cargo.lock b/Cargo.lock index 4fa4d850..424c4f09 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -44,7 +44,7 @@ checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ "cfg-if 1.0.0", "cipher", - "cpufeatures 0.2.1", + "cpufeatures 0.2.2", "opaque-debug 0.3.0", ] @@ -99,9 +99,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.55" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "159bb86af3a200e19a068f4224eae4c8bb2d0fa054c7e5d1cacd5cef95e684cd" +checksum = "4361135be9122e0870de935d7c439aef945b9f9ddd4199a553b5270b49c82a27" [[package]] name = "approx" @@ -188,9 +188,9 @@ dependencies = [ [[package]] name = "async-global-executor" -version = "2.0.2" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9586ec52317f36de58453159d48351bc244bc24ced3effc1fce22f3d48664af6" +checksum = "c026b7e44f1316b567ee750fea85103f87fcb80792b860e979f221259796ca0a" dependencies = [ "async-channel", "async-executor", @@ -267,7 +267,6 @@ dependencies = [ "async-global-executor", "async-io", "async-lock", - "async-process", "crossbeam-utils", "futures-channel", "futures-core", @@ -301,9 +300,9 @@ dependencies = [ [[package]] name = "async-task" -version = "4.1.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d306121baf53310a3fd342d88dc0824f6bbeace68347593658525565abee8" +checksum = "30696a84d817107fc028e049980e09d5e140e8da8f1caeb17e8e950658a3cea9" [[package]] name = "async-trait" @@ -374,6 +373,20 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "backoff" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" +dependencies = [ + "futures-core", + "getrandom 0.2.5", + "instant", + "pin-project-lite 0.2.8", + "rand 0.8.5", + "tokio", +] + [[package]] name = "backtrace" version = "0.3.64" @@ -395,6 +408,12 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" +[[package]] +name = "base16ct" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" + [[package]] name = "base58" version = "0.2.0" @@ -407,6 +426,12 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +[[package]] +name = "base64ct" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71acf5509fc522cce1b100ac0121c635129bfd4d91cdf036bcc9b9935f97ccf5" + [[package]] name = "beef" version = "0.5.1" @@ -419,14 +444,15 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "beefy-primitives", "fnv", "futures 0.3.21", + "hex", "log", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "sc-chain-spec", "sc-client-api", "sc-keystore", @@ -448,7 +474,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -459,7 +485,7 @@ dependencies = [ "jsonrpc-pubsub", "log", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "sc-rpc", "sc-utils", "serde", @@ -471,12 +497,12 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "parity-scale-codec", "scale-info", @@ -529,9 +555,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitvec" -version = "0.20.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" +checksum = "1489fcb93a5bb47da0462ca93ad252ad6af2145cce58d10d46a83931ba9f016b" dependencies = [ "funty", "radium", @@ -550,6 +576,15 @@ dependencies = [ "opaque-debug 0.3.0", ] +[[package]] +name = "blake2" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9cf849ee05b2ee5fba5e36f97ff8ec2533916700fc0758d40d92136a42f3388" +dependencies = [ + "digest 0.10.3", +] + [[package]] name = "blake2-rfc" version = "0.2.18" @@ -597,6 +632,20 @@ dependencies = [ "digest 0.9.0", ] +[[package]] +name = "blake3" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f" +dependencies = [ + "arrayref", + "arrayvec 0.7.2", + "cc", + "cfg-if 1.0.0", + "constant_time_eq", + "digest 0.10.3", +] + [[package]] name = "block-buffer" version = "0.7.3" @@ -645,9 +694,9 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" [[package]] name = "blocking" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046e47d4b2d391b1f6f8b407b1deb8dee56c1852ccd868becf2710f601b5f427" +checksum = "c6ccb65d468978a086b69884437ded69a90faab3bbe6e67f242173ea728acccc" dependencies = [ "async-channel", "async-task", @@ -669,7 +718,7 @@ dependencies = [ [[package]] name = "bp-header-chain" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "finality-grandpa", "frame-support", @@ -685,7 +734,7 @@ dependencies = [ [[package]] name = "bp-message-dispatch" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "bp-runtime", "frame-support", @@ -697,7 +746,7 @@ dependencies = [ [[package]] name = "bp-messages" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "bitvec", "bp-runtime", @@ -713,7 +762,7 @@ dependencies = [ [[package]] name = "bp-polkadot-core" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "bp-messages", "bp-runtime", @@ -731,7 +780,7 @@ dependencies = [ [[package]] name = "bp-rococo" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -748,7 +797,7 @@ dependencies = [ [[package]] name = "bp-runtime" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "frame-support", "hash-db", @@ -766,7 +815,7 @@ dependencies = [ [[package]] name = "bp-test-utils" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "bp-header-chain", "ed25519-dalek", @@ -781,7 +830,7 @@ dependencies = [ [[package]] name = "bp-wococo" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -796,7 +845,7 @@ dependencies = [ [[package]] name = "bridge-runtime-common" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "bp-message-dispatch", "bp-messages", @@ -848,9 +897,9 @@ checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899" [[package]] name = "byte-slice-cast" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d30c751592b77c499e7bce34d99d67c2c11bdc0574e9a488ddade14150a4698" +checksum = "87c5fdd0166095e1d463fc6cc01aa8ce547ad77a4e84d42eb6762b084e28067e" [[package]] name = "byte-tools" @@ -880,6 +929,17 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + [[package]] name = "cache-padded" version = "1.2.0" @@ -1033,9 +1093,9 @@ dependencies = [ [[package]] name = "clap" -version = "3.1.2" +version = "3.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5177fac1ab67102d8989464efd043c6ff44191b1557ec1ddd489b4f7e1447e77" +checksum = "d8c93436c21e4698bacadf42917db28b23017027a4deccb35dbe47a7e7840123" dependencies = [ "atty", "bitflags", @@ -1050,9 +1110,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "3.1.2" +version = "3.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d42c94ce7c2252681b5fed4d3627cc807b13dfc033246bd05d5b252399000e" +checksum = "da95d038ede1a964ce99f49cbe27a7fb538d1da595e4b4f70b8c8f338d17bf16" dependencies = [ "heck 0.4.0", "proc-macro-error", @@ -1061,15 +1121,6 @@ dependencies = [ "syn", ] -[[package]] -name = "cloudabi" -version = "0.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -dependencies = [ - "bitflags", -] - [[package]] name = "concurrent-queue" version = "1.2.2" @@ -1079,6 +1130,12 @@ dependencies = [ "cache-padded", ] +[[package]] +name = "const-oid" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -1127,9 +1184,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469" +checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" dependencies = [ "libc", ] @@ -1234,9 +1291,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.2" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa" +checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53" dependencies = [ "cfg-if 1.0.0", "crossbeam-utils", @@ -1255,10 +1312,11 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.7" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00d6d2ea26e8b151d99093005cb442fb9a37aeaca582a03ec70946f49ab5ed9" +checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c" dependencies = [ + "autocfg", "cfg-if 1.0.0", "crossbeam-utils", "lazy_static", @@ -1268,9 +1326,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" +checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38" dependencies = [ "cfg-if 1.0.0", "lazy_static", @@ -1282,6 +1340,18 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +[[package]] +name = "crypto-bigint" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21" +dependencies = [ + "generic-array 0.14.5", + "rand_core 0.6.3", + "subtle", + "zeroize", +] + [[package]] name = "crypto-common" version = "0.1.3" @@ -1323,9 +1393,9 @@ dependencies = [ [[package]] name = "ctor" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa" +checksum = "f877be4f7c9f246b183111634f75baa039715e3f46ce860677d3b19a69fb229c" dependencies = [ "quote", "syn", @@ -1354,17 +1424,18 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "clap", "sc-cli", "sc-service", + "url 2.2.2", ] [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1372,7 +1443,7 @@ dependencies = [ "cumulus-relay-chain-interface", "futures 0.3.21", "parity-scale-codec", - "parking_lot 0.10.2", + "parking_lot 0.12.0", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-overseer", @@ -1388,7 +1459,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1417,7 +1488,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1438,7 +1509,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1463,7 +1534,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -1487,8 +1558,9 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ + "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-common", "cumulus-client-pov-recovery", @@ -1516,7 +1588,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "frame-executive", "frame-support", @@ -1534,7 +1606,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1552,7 +1624,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1582,7 +1654,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -1593,7 +1665,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "frame-benchmarking", "frame-support", @@ -1607,7 +1679,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1624,9 +1696,10 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "cumulus-primitives-core", + "frame-benchmarking", "frame-support", "frame-system", "log", @@ -1642,7 +1715,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "frame-support", "parity-scale-codec", @@ -1658,7 +1731,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1681,9 +1754,11 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "cumulus-primitives-core", + "futures 0.3.21", + "parity-scale-codec", "sp-inherents", "sp-std", "sp-timestamp", @@ -1692,7 +1767,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1706,17 +1781,48 @@ dependencies = [ "xcm", ] +[[package]] +name = "cumulus-relay-chain-inprocess-interface" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "cumulus-relay-chain-interface", + "futures 0.3.21", + "futures-timer", + "parking_lot 0.12.0", + "polkadot-client", + "polkadot-service", + "sc-client-api", + "sc-consensus-babe", + "sc-network", + "sc-service", + "sc-telemetry", + "sc-tracing", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "sp-state-machine", + "tracing", +] + [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "async-trait", "cumulus-primitives-core", "derive_more", "futures 0.3.21", + "jsonrpsee-core 0.9.0", + "parity-scale-codec", "parking_lot 0.12.0", "polkadot-overseer", + "polkadot-service", "sc-client-api", "sc-service", "sp-api", @@ -1728,37 +1834,35 @@ dependencies = [ ] [[package]] -name = "cumulus-relay-chain-local" +name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "async-trait", + "backoff", "cumulus-primitives-core", "cumulus-relay-chain-interface", "futures 0.3.21", "futures-timer", + "jsonrpsee 0.9.0", + "parity-scale-codec", "parking_lot 0.12.0", - "polkadot-client", "polkadot-service", "sc-client-api", - "sc-consensus-babe", - "sc-network", - "sc-service", - "sc-telemetry", - "sc-tracing", + "sc-rpc-api", "sp-api", - "sp-blockchain", - "sp-consensus", "sp-core", "sp-runtime", "sp-state-machine", + "sp-storage", "tracing", + "url 2.2.2", ] [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1820,6 +1924,15 @@ dependencies = [ "syn", ] +[[package]] +name = "der" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" +dependencies = [ + "const-oid", +] + [[package]] name = "derivative" version = "2.2.0" @@ -1870,6 +1983,7 @@ checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" dependencies = [ "block-buffer 0.10.2", "crypto-common", + "subtle", ] [[package]] @@ -1893,9 +2007,9 @@ dependencies = [ [[package]] name = "dirs-sys" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" dependencies = [ "libc", "redox_users", @@ -1958,15 +2072,26 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.4" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21e50f3adc76d6a43f5ed73b698a87d0760ca74617f60f7c3b879003536fdd28" + +[[package]] +name = "ecdsa" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcf" +checksum = "d0d69ae62e0ce582d56380743515fefaf1a8c70cec685d9677636d7e30ae9dc9" +dependencies = [ + "der", + "elliptic-curve", + "signature", +] [[package]] name = "ed25519" -version = "1.3.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74e1069e39f1454367eb2de793ed062fac4c35c2934b76a81d90dd9abcd28816" +checksum = "3d5c4b5e5959dc2c2b89918d8e2cc40fcdd623cef026ed09d2f0ee05199dc8e4" dependencies = [ "signature", ] @@ -1991,13 +2116,31 @@ version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +[[package]] +name = "elliptic-curve" +version = "0.11.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25b477563c2bfed38a3b7a60964c49e058b2510ad3f12ba3483fd8f62c2306d6" +dependencies = [ + "base16ct", + "crypto-bigint", + "der", + "ff", + "generic-array 0.14.5", + "group", + "rand_core 0.6.3", + "sec1", + "subtle", + "zeroize", +] + [[package]] name = "enum-as-inner" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595" +checksum = "570d109b813e904becc80d8d5da38376818a143348413f7149f1340fe04754d4" dependencies = [ - "heck 0.3.3", + "heck 0.4.0", "proc-macro2", "quote", "syn", @@ -2089,6 +2232,30 @@ dependencies = [ "futures 0.3.21", ] +[[package]] +name = "expander" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a718c0675c555c5f976fff4ea9e2c150fa06cefa201cadef87cfbf9324075881" +dependencies = [ + "blake3 1.3.1", + "fs-err", + "proc-macro2", + "quote", +] + +[[package]] +name = "expander" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "309f21c39e8e38e4b6eda07e155bd7a4e5fc4d707cefd0402cc82a8b6bb65aaa" +dependencies = [ + "blake2 0.10.4", + "fs-err", + "proc-macro2", + "quote", +] + [[package]] name = "fake-simd" version = "0.1.2" @@ -2110,6 +2277,31 @@ dependencies = [ "instant", ] +[[package]] +name = "fatality" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ad875162843b0d046276327afe0136e9ed3a23d5a754210fb6f1f33610d39ab" +dependencies = [ + "fatality-proc-macro", + "thiserror", +] + +[[package]] +name = "fatality-proc-macro" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5aa1e3ae159e592ad222dc90c5acbad632b527779ba88486abe92782ab268bd" +dependencies = [ + "expander 0.0.4", + "indexmap", + "proc-macro-crate 1.1.3", + "proc-macro2", + "quote", + "syn", + "thiserror", +] + [[package]] name = "fdlimit" version = "0.2.1" @@ -2119,6 +2311,16 @@ dependencies = [ "libc", ] +[[package]] +name = "ff" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2958d04124b9f27f175eaeb9a9f383d026098aa837eadd8ba22c11f13a05b9e" +dependencies = [ + "rand_core 0.6.3", + "subtle", +] + [[package]] name = "file-per-thread-logger" version = "0.1.5" @@ -2131,9 +2333,9 @@ dependencies = [ [[package]] name = "finality-grandpa" -version = "0.14.4" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8ac3ff5224ef91f3c97e03eb1de2db82743427e91aaa5ac635f454f0b164f5a" +checksum = "d9def033d8505edf199f6a5d07aa7e6d2d6185b164293b77f0efd108f4f3e11d" dependencies = [ "either", "futures 0.3.21", @@ -2185,7 +2387,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "parity-scale-codec", ] @@ -2203,7 +2405,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-support", "frame-system", @@ -2225,7 +2427,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "Inflector", "chrono", @@ -2233,26 +2435,40 @@ dependencies = [ "frame-benchmarking", "frame-support", "handlebars", + "hash-db", + "hex", + "itertools", + "kvdb", "linked-hash-map", "log", + "memory-db", "parity-scale-codec", + "rand 0.8.5", "sc-cli", + "sc-client-api", "sc-client-db", "sc-executor", "sc-service", "serde", "serde_json", + "serde_nanos", + "sp-api", + "sp-blockchain", "sp-core", + "sp-database", "sp-externalities", "sp-keystore", "sp-runtime", "sp-state-machine", + "sp-std", + "sp-storage", + "sp-trie", ] [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-support", "frame-system", @@ -2266,7 +2482,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-support", "frame-system", @@ -2281,9 +2497,9 @@ dependencies = [ [[package]] name = "frame-metadata" -version = "14.2.0" +version = "15.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ed5e5c346de62ca5c184b4325a6600d1eaca210666e4606fe4e449574978d0" +checksum = "df6bb8542ef006ef0de09a5c4420787d79823c0ed7924225822362fd2bf2ff2d" dependencies = [ "cfg-if 1.0.0", "parity-scale-codec", @@ -2294,7 +2510,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "bitflags", "frame-metadata", @@ -2323,7 +2539,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2335,7 +2551,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.1.3", @@ -2347,7 +2563,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "proc-macro2", "quote", @@ -2357,7 +2573,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-support", "log", @@ -2374,7 +2590,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -2389,7 +2605,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "parity-scale-codec", "sp-api", @@ -2398,7 +2614,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-support", "sp-api", @@ -2434,6 +2650,12 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "fs_extra" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394" + [[package]] name = "fuchsia-zircon" version = "0.3.3" @@ -2452,9 +2674,9 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" [[package]] name = "funty" -version = "1.1.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" @@ -2680,11 +2902,22 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "group" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5ac374b108929de78460075f3dc439fa66df9d8fc77e8f12caa5165fcf0c89" +dependencies = [ + "ff", + "rand_core 0.6.3", + "subtle", +] + [[package]] name = "h2" -version = "0.3.11" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f1f717ddc7b2ba36df7e871fd88db79326551d3d6f1fc406fbfd28b582ff8e" +checksum = "62eeb471aa3e3c9197aa4bfeabfe02982f6dc96f750486c0bb0009ac58b26d2b" dependencies = [ "bytes 1.1.0", "fnv", @@ -2701,9 +2934,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.2.1" +version = "4.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25546a65e5cf1f471f3438796fc634650b31d7fcde01d444c309aeb28b92e3a8" +checksum = "99d6a30320f094710245150395bc763ad23128d6a1ebbad7594dc4164b62c56b" dependencies = [ "log", "pest", @@ -2911,6 +3144,22 @@ dependencies = [ "webpki 0.21.4", ] +[[package]] +name = "hyper-rustls" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac" +dependencies = [ + "http", + "hyper", + "log", + "rustls 0.20.4", + "rustls-native-certs 0.6.1", + "tokio", + "tokio-rustls 0.23.3", + "webpki-roots 0.22.2", +] + [[package]] name = "idna" version = "0.1.5" @@ -2972,9 +3221,9 @@ dependencies = [ [[package]] name = "impl-codec" -version = "0.5.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" dependencies = [ "parity-scale-codec", ] @@ -3072,9 +3321,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9" +checksum = "35e70ee094dc02fd9c13fdad4940090f22dbd6ac7c9e7094a46cf0232a50bc7c" [[package]] name = "itertools" @@ -3264,12 +3513,24 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05fd8cd6c6b1bbd06881d2cf88f1fc83cc36c98f2219090f839115fb4a956cb9" dependencies = [ - "jsonrpsee-core", + "jsonrpsee-core 0.8.0", "jsonrpsee-proc-macros", "jsonrpsee-types 0.8.0", "jsonrpsee-ws-client 0.8.0", ] +[[package]] +name = "jsonrpsee" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0d0b8cc1959f8c05256ace093b2317482da9127f1d9227564f47e7e6bf9bda8" +dependencies = [ + "jsonrpsee-core 0.9.0", + "jsonrpsee-http-client", + "jsonrpsee-types 0.9.0", + "jsonrpsee-ws-client 0.9.0", +] + [[package]] name = "jsonrpsee-client-transport" version = "0.8.0" @@ -3278,14 +3539,35 @@ checksum = "3303cdf246e6ab76e2866fb3d9acb6c76a068b1b28bd923a1b7a8122257ad7b5" dependencies = [ "futures 0.3.21", "http", - "jsonrpsee-core", + "jsonrpsee-core 0.8.0", "jsonrpsee-types 0.8.0", "pin-project 1.0.10", "rustls-native-certs 0.6.1", "soketto", "thiserror", "tokio", - "tokio-rustls 0.23.2", + "tokio-rustls 0.23.3", + "tokio-util", + "tracing", + "webpki-roots 0.22.2", +] + +[[package]] +name = "jsonrpsee-client-transport" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa370c2c717d798c3c0a315ae3f0a707a388c6963c11f9da7dbbe1d3f7392f5f" +dependencies = [ + "futures 0.3.21", + "http", + "jsonrpsee-core 0.9.0", + "jsonrpsee-types 0.9.0", + "pin-project 1.0.10", + "rustls-native-certs 0.6.1", + "soketto", + "thiserror", + "tokio", + "tokio-rustls 0.23.3", "tokio-util", "tracing", "webpki-roots 0.22.2", @@ -3314,6 +3596,48 @@ dependencies = [ "tracing", ] +[[package]] +name = "jsonrpsee-core" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22abc3274b265dcefe2e26c4beecf9fda4fffa48cf94930443a6c73678f020d5" +dependencies = [ + "anyhow", + "arrayvec 0.7.2", + "async-trait", + "beef", + "futures-channel", + "futures-util", + "hyper", + "jsonrpsee-types 0.9.0", + "rustc-hash", + "serde", + "serde_json", + "soketto", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee-http-client" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d31b837273d09dd80051eefa57d337769dff6c3266108c43a3544ac7ffed9d68" +dependencies = [ + "async-trait", + "hyper", + "hyper-rustls 0.23.0", + "jsonrpsee-core 0.9.0", + "jsonrpsee-types 0.9.0", + "rustc-hash", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", +] + [[package]] name = "jsonrpsee-proc-macros" version = "0.8.0" @@ -3359,6 +3683,20 @@ dependencies = [ "tracing", ] +[[package]] +name = "jsonrpsee-types" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f4c45d2e2aa1db4c7d7d7dbaabc10a5b5258d99cd9d42fbfd5260b76f80c324" +dependencies = [ + "anyhow", + "beef", + "serde", + "serde_json", + "thiserror", + "tracing", +] + [[package]] name = "jsonrpsee-utils" version = "0.4.1" @@ -3400,11 +3738,34 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aff425cee7c779e33920913bc695447416078ee6d119f443f3060feffa4e86b5" dependencies = [ - "jsonrpsee-client-transport", - "jsonrpsee-core", + "jsonrpsee-client-transport 0.8.0", + "jsonrpsee-core 0.8.0", "jsonrpsee-types 0.8.0", ] +[[package]] +name = "jsonrpsee-ws-client" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31b58983485b2b626c276f1eb367d62dae82132451b281072a7bfa536a33ddf3" +dependencies = [ + "jsonrpsee-client-transport 0.9.0", + "jsonrpsee-core 0.9.0", + "jsonrpsee-types 0.9.0", +] + +[[package]] +name = "k256" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19c3a5e0a0b8450278feda242592512e09f61c72e018b8cd5c859482802daf2d" +dependencies = [ + "cfg-if 1.0.0", + "ecdsa", + "elliptic-curve", + "sec1", +] + [[package]] name = "keccak" version = "0.1.0" @@ -3423,8 +3784,8 @@ dependencies = [ [[package]] name = "kusama-runtime" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "beefy-primitives", "bitvec", @@ -3511,8 +3872,8 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "frame-support", "polkadot-primitives", @@ -3532,9 +3893,9 @@ dependencies = [ [[package]] name = "kvdb" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45a3f58dc069ec0e205a27f5b45920722a46faed802a0541538241af6228f512" +checksum = "a301d8ecb7989d4a6e2c57a49baca77d353bdbf879909debe3f375fe25d61f86" dependencies = [ "parity-util-mem", "smallvec", @@ -3542,20 +3903,20 @@ dependencies = [ [[package]] name = "kvdb-memorydb" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3b6b85fc643f5acd0bffb2cc8a6d150209379267af0d41db72170021841f9f5" +checksum = "ece7e668abd21387aeb6628130a6f4c802787f014fa46bc83221448322250357" dependencies = [ "kvdb", "parity-util-mem", - "parking_lot 0.11.2", + "parking_lot 0.12.0", ] [[package]] name = "kvdb-rocksdb" -version = "0.14.0" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b1b6ea8f2536f504b645ad78419c8246550e19d2c3419a167080ce08edee35a" +checksum = "ca7fbdfd71cd663dceb0faf3367a99f8cf724514933e9867cec4995b6027cbc1" dependencies = [ "fs-swap", "kvdb", @@ -3563,7 +3924,7 @@ dependencies = [ "num_cpus", "owning_ref", "parity-util-mem", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "regex", "rocksdb", "smallvec", @@ -3583,9 +3944,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.119" +version = "0.2.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4" +checksum = "efaa7b300f3b5fe8eb6bf21ce3895e1751d9665086af2d64b42f19701015ff4f" [[package]] name = "libloading" @@ -3919,7 +4280,7 @@ dependencies = [ "pin-project 1.0.10", "rand 0.7.3", "salsa20", - "sha3", + "sha3 0.9.1", ] [[package]] @@ -3979,7 +4340,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "lru 0.7.2", + "lru 0.7.3", "rand 0.7.3", "smallvec", "unsigned-varint 0.7.1", @@ -4088,14 +4449,17 @@ dependencies = [ [[package]] name = "librocksdb-sys" -version = "6.20.3" +version = "0.6.1+6.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c309a9d2470844aceb9a4a098cf5286154d20596868b75a6b36357d2bb9ca25d" +checksum = "81bc587013734dadb7cf23468e531aa120788b87243648be42e2d3a072186291" dependencies = [ "bindgen", + "bzip2-sys", "cc", "glob", "libc", + "libz-sys", + "tikv-jemalloc-sys", ] [[package]] @@ -4148,9 +4512,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.3" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66" +checksum = "6f35facd4a5673cb5a48822be2be1d4236c1c99cb4113cab7061ac720d5bf859" dependencies = [ "cc", "pkg-config", @@ -4188,15 +4552,6 @@ version = "0.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a261afc61b7a5e323933b402ca6a1765183687c614789b1e4db7762ed4230bca" -[[package]] -name = "lock_api" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" -dependencies = [ - "scopeguard", -] - [[package]] name = "lock_api" version = "0.4.6" @@ -4208,9 +4563,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.14" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8" dependencies = [ "cfg-if 1.0.0", "value-bag", @@ -4227,9 +4582,9 @@ dependencies = [ [[package]] name = "lru" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "274353858935c992b13c0ca408752e2121da852d07dec7ce5f108c77dfa14d1f" +checksum = "fcb87f3080f6d1d69e8c564c0fcfde1d7aa8cc451ce40cae89479111f03bc0eb" dependencies = [ "hashbrown 0.11.2", ] @@ -4245,9 +4600,9 @@ dependencies = [ [[package]] name = "lz4" -version = "1.23.2" +version = "1.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aac20ed6991e01bf6a2e68cc73df2b389707403662a8ba89f68511fb340f724c" +checksum = "4edcb94251b1c375c459e5abe9fb0168c1c826c3370172684844f8f3f8d1a885" dependencies = [ "libc", "lz4-sys", @@ -4255,9 +4610,9 @@ dependencies = [ [[package]] name = "lz4-sys" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dca79aa95d8b3226213ad454d328369853be3a1382d89532a854f4d69640acae" +checksum = "d7be8908e2ed6f31c02db8a9fa962f03e36c53fbfde437363eae3306b85d7e17" dependencies = [ "cc", "libc", @@ -4343,12 +4698,12 @@ dependencies = [ [[package]] name = "memory-db" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d505169b746dacf02f7d14d8c80b34edfd8212159c63d23c977739a0d960c626" +checksum = "6566c70c1016f525ced45d7b7f97730a2bafb037c788211d0c186ef5b2189f0a" dependencies = [ "hash-db", - "hashbrown 0.11.2", + "hashbrown 0.12.0", "parity-util-mem", ] @@ -4381,8 +4736,8 @@ dependencies = [ [[package]] name = "metered-channel" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "derive_more", "futures 0.3.21", @@ -4393,9 +4748,9 @@ dependencies = [ [[package]] name = "mick-jaeger" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd2c2cc134e57461f0898b0e921f0a7819b5e3f3a4335b9aa390ce81a5f36fb9" +checksum = "69672161530e8aeca1d1400fbf3f1a1747ff60ea604265a4e906c2442df20532" dependencies = [ "futures 0.3.21", "rand 0.8.5", @@ -4439,14 +4794,15 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba272f85fa0b41fc91872be579b3bbe0f56b792aa361a380eb669469f68dafb2" +checksum = "52da4364ffb0e4fe33a9841a98a3f3014fb964045ce4f7a45a398243c8d6b0c9" dependencies = [ "libc", "log", "miow 0.3.7", "ntapi", + "wasi 0.11.0+wasi-snapshot-preview1", "winapi 0.3.9", ] @@ -4526,12 +4882,12 @@ checksum = "4dac63698b887d2d929306ea48b63760431ff8a24fac40ddb22f9c7f49fb7cab" dependencies = [ "blake2b_simd", "blake2s_simd", - "blake3", + "blake3 0.3.8", "digest 0.9.0", "generic-array 0.14.5", "multihash-derive", "sha2 0.9.9", - "sha3", + "sha3 0.9.1", "unsigned-varint 0.5.1", ] @@ -4645,13 +5001,12 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" [[package]] name = "nom" -version = "7.1.0" +version = "7.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d11e1ef389c76fe5b81bcaf2ea32cf88b62bc494e19f493d0b30e7a930109" +checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" dependencies = [ "memchr", "minimal-lexical", - "version_check", ] [[package]] @@ -4683,6 +5038,16 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-format" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bafe4179722c2894288ee77a9f044f02811c86af699344c498b0840c698a2465" +dependencies = [ + "arrayvec 0.4.12", + "itoa 0.4.8", +] + [[package]] name = "num-integer" version = "0.1.44" @@ -4749,9 +5114,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5" +checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9" [[package]] name = "opaque-debug" @@ -4824,7 +5189,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-support", "frame-system", @@ -4840,7 +5205,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-support", "frame-system", @@ -4856,7 +5221,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-support", "frame-system", @@ -4871,7 +5236,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -4895,7 +5260,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4915,7 +5280,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -4930,7 +5295,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "beefy-primitives", "frame-support", @@ -4946,14 +5311,14 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "beefy-merkle-tree", "beefy-primitives", "frame-support", "frame-system", "hex", - "libsecp256k1", + "k256", "log", "pallet-beefy", "pallet-mmr", @@ -4971,7 +5336,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -4989,7 +5354,7 @@ dependencies = [ [[package]] name = "pallet-bridge-dispatch" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "bp-message-dispatch", "bp-runtime", @@ -5006,7 +5371,7 @@ dependencies = [ [[package]] name = "pallet-bridge-grandpa" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "bp-header-chain", "bp-runtime", @@ -5028,7 +5393,7 @@ dependencies = [ [[package]] name = "pallet-bridge-messages" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "bitvec", "bp-message-dispatch", @@ -5049,7 +5414,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "frame-benchmarking", "frame-support", @@ -5069,7 +5434,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5086,7 +5451,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5102,7 +5467,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5119,13 +5484,13 @@ dependencies = [ "sp-runtime", "sp-std", "static_assertions", - "strum", + "strum 0.23.0", ] [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5143,7 +5508,7 @@ dependencies = [ [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5158,7 +5523,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5181,7 +5546,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5197,7 +5562,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5217,7 +5582,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5234,7 +5599,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5251,7 +5616,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5269,7 +5634,7 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-support", "frame-system", @@ -5285,7 +5650,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5302,7 +5667,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5317,7 +5682,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-support", "frame-system", @@ -5331,7 +5696,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-support", "frame-system", @@ -5348,7 +5713,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5371,7 +5736,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5387,7 +5752,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5402,7 +5767,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-support", "frame-system", @@ -5416,7 +5781,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5432,7 +5797,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-support", "frame-system", @@ -5453,7 +5818,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5469,7 +5834,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-support", "frame-system", @@ -5483,7 +5848,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5506,7 +5871,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -5517,7 +5882,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "log", "sp-arithmetic", @@ -5526,7 +5891,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-support", "frame-system", @@ -5555,7 +5920,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5573,7 +5938,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5592,7 +5957,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-support", "frame-system", @@ -5609,7 +5974,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5626,7 +5991,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5637,7 +6002,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5654,7 +6019,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5670,7 +6035,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5684,8 +6049,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "frame-support", "frame-system", @@ -5702,8 +6067,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5720,7 +6085,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.17#76479e7fef3af7c8828a44647847b01afd5fefe5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -5743,8 +6108,9 @@ dependencies = [ "cumulus-client-service", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", + "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", - "cumulus-relay-chain-local", + "cumulus-relay-chain-rpc-interface", "derive_more", "frame-benchmarking", "frame-benchmarking-cli", @@ -5854,9 +6220,9 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09aa6c5bb8070cf0456d9fc228b3022e900aae9092c48c9c45facf97422efc1d" +checksum = "3d121a9af17a43efd0a38c6afa508b927ba07785bd4709efb2ac03bf77efef8d" dependencies = [ "blake2-rfc", "crc32fast", @@ -5873,9 +6239,9 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "2.3.1" +version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" +checksum = "e8b44461635bbb1a0300f100a841e571e7d919c81c73075ef5d152ffdb521066" dependencies = [ "arrayvec 0.7.2", "bitvec", @@ -5887,9 +6253,9 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "2.3.1" +version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" +checksum = "c45ed1f39709f5a89338fab50e59816b2e8815f5bb58276e7ddf9afd495f73f8" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -5919,15 +6285,15 @@ dependencies = [ [[package]] name = "parity-util-mem" -version = "0.10.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f4cb4e169446179cbc6b8b6320cc9fca49bd2e94e8db25f25f200a8ea774770" +checksum = "c32561d248d352148124f036cac253a644685a21dc9fea383eb4907d7bd35a8f" dependencies = [ "cfg-if 1.0.0", - "hashbrown 0.11.2", + "hashbrown 0.12.0", "impl-trait-for-tuples", "parity-util-mem-derive", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "primitive-types", "smallvec", "winapi 0.3.9", @@ -5983,16 +6349,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" -[[package]] -name = "parking_lot" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" -dependencies = [ - "lock_api 0.3.4", - "parking_lot_core 0.7.2", -] - [[package]] name = "parking_lot" version = "0.11.2" @@ -6000,7 +6356,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" dependencies = [ "instant", - "lock_api 0.4.6", + "lock_api", "parking_lot_core 0.8.5", ] @@ -6010,24 +6366,10 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58" dependencies = [ - "lock_api 0.4.6", + "lock_api", "parking_lot_core 0.9.1", ] -[[package]] -name = "parking_lot_core" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3" -dependencies = [ - "cfg-if 0.1.10", - "cloudabi", - "libc", - "redox_syscall 0.1.57", - "smallvec", - "winapi 0.3.9", -] - [[package]] name = "parking_lot_core" version = "0.8.5" @@ -6037,7 +6379,7 @@ dependencies = [ "cfg-if 1.0.0", "instant", "libc", - "redox_syscall 0.2.10", + "redox_syscall", "smallvec", "winapi 0.3.9", ] @@ -6050,7 +6392,7 @@ checksum = "28141e0cc4143da2443301914478dc976a61ffdb3f043058310c70df2fed8954" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.2.10", + "redox_syscall", "smallvec", "windows-sys", ] @@ -6208,6 +6550,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkcs8" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0" +dependencies = [ + "der", + "spki", + "zeroize", +] + [[package]] name = "pkg-config" version = "0.3.24" @@ -6222,8 +6575,8 @@ checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "futures 0.3.21", "polkadot-node-network-protocol", @@ -6236,8 +6589,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "futures 0.3.21", "polkadot-node-network-protocol", @@ -6249,12 +6602,13 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "derive_more", + "fatality", "futures 0.3.21", - "lru 0.7.2", + "lru 0.7.3", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6271,11 +6625,12 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ + "fatality", "futures 0.3.21", - "lru 0.7.2", + "lru 0.7.3", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6291,8 +6646,8 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "clap", "frame-benchmarking-cli", @@ -6314,8 +6669,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -6344,11 +6699,11 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "always-assert", - "derive_more", + "fatality", "futures 0.3.21", "futures-timer", "polkadot-node-network-protocol", @@ -6365,8 +6720,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -6378,12 +6733,13 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "derive_more", + "fatality", "futures 0.3.21", - "lru 0.7.2", + "lru 0.7.3", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6400,8 +6756,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6414,8 +6770,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "futures 0.3.21", "futures-timer", @@ -6434,13 +6790,13 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "async-trait", "futures 0.3.21", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -6453,8 +6809,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "futures 0.3.21", "parity-scale-codec", @@ -6471,15 +6827,15 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "bitvec", "derive_more", "futures 0.3.21", "futures-timer", "kvdb", - "lru 0.7.2", + "lru 0.7.3", "merlin", "parity-scale-codec", "polkadot-node-jaeger", @@ -6499,8 +6855,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "bitvec", "futures 0.3.21", @@ -6519,8 +6875,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "bitvec", "futures 0.3.21", @@ -6537,8 +6893,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "futures 0.3.21", "polkadot-node-subsystem", @@ -6552,8 +6908,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "async-trait", "futures 0.3.21", @@ -6570,8 +6926,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "futures 0.3.21", "polkadot-node-subsystem", @@ -6585,8 +6941,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "futures 0.3.21", "futures-timer", @@ -6602,12 +6958,13 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ + "fatality", "futures 0.3.21", "kvdb", - "lru 0.7.2", + "lru 0.7.3", "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -6620,8 +6977,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "async-trait", "futures 0.3.21", @@ -6637,8 +6994,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "bitvec", "futures 0.3.21", @@ -6654,8 +7011,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "always-assert", "assert_matches", @@ -6684,8 +7041,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "futures 0.3.21", "polkadot-node-primitives", @@ -6700,8 +7057,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "futures 0.3.21", "memory-lru", @@ -6718,15 +7075,15 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "async-std", "lazy_static", "log", "mick-jaeger", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "polkadot-node-primitives", "polkadot-primitives", "sc-network", @@ -6736,8 +7093,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "bs58", "futures 0.3.21", @@ -6755,11 +7112,11 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "async-trait", - "derive_more", + "fatality", "futures 0.3.21", "parity-scale-codec", "polkadot-node-jaeger", @@ -6767,14 +7124,14 @@ dependencies = [ "polkadot-primitives", "sc-authority-discovery", "sc-network", - "strum", + "strum 0.24.0", "thiserror", ] [[package]] name = "polkadot-node-primitives" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "bounded-vec", "futures 0.3.21", @@ -6795,8 +7152,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -6805,8 +7162,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "derive_more", "futures 0.3.21", @@ -6824,16 +7181,21 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "async-trait", "derive_more", + "fatality", "futures 0.3.21", "itertools", - "lru 0.7.2", + "kvdb", + "lru 0.7.3", "metered-channel", + "parity-db", "parity-scale-codec", + "parity-util-mem", + "parking_lot 0.11.2", "pin-project 1.0.10", "polkadot-node-jaeger", "polkadot-node-metrics", @@ -6852,14 +7214,14 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "futures 0.3.21", "futures-timer", - "lru 0.7.2", + "lru 0.7.3", "parity-util-mem", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -6873,8 +7235,8 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "async-trait", "futures 0.3.21", @@ -6890,9 +7252,10 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen-proc-macro" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ + "expander 0.0.5", "proc-macro-crate 1.1.3", "proc-macro2", "quote", @@ -6901,8 +7264,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "derive_more", "frame-support", @@ -6918,8 +7281,8 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "env_logger", "kusama-runtime", @@ -6933,8 +7296,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "bitvec", "frame-system", @@ -6963,8 +7326,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -6994,8 +7357,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "beefy-primitives", "bitvec", @@ -7078,8 +7441,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "beefy-primitives", "bitvec", @@ -7125,8 +7488,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "frame-support", "polkadot-primitives", @@ -7137,8 +7500,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "bs58", "parity-scale-codec", @@ -7149,8 +7512,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "bitflags", "bitvec", @@ -7191,8 +7554,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "async-trait", "beefy-gadget", @@ -7203,12 +7566,13 @@ dependencies = [ "kusama-runtime", "kvdb", "kvdb-rocksdb", - "lru 0.7.2", + "lru 0.7.3", "pallet-babe", "pallet-im-online", "pallet-mmr-primitives", "pallet-staking", "pallet-transaction-payment-rpc-runtime-api", + "parity-db", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", @@ -7291,11 +7655,11 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "arrayvec 0.5.2", - "derive_more", + "fatality", "futures 0.3.21", "indexmap", "parity-scale-codec", @@ -7312,8 +7676,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7339,7 +7703,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" dependencies = [ - "cpufeatures 0.2.1", + "cpufeatures 0.2.2", "opaque-debug 0.3.0", "universal-hash", ] @@ -7351,7 +7715,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" dependencies = [ "cfg-if 1.0.0", - "cpufeatures 0.2.1", + "cpufeatures 0.2.2", "opaque-debug 0.3.0", "universal-hash", ] @@ -7364,9 +7728,9 @@ checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" [[package]] name = "primitive-types" -version = "0.10.1" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" +checksum = "e28720988bff275df1f51b171e1b2a18c30d194c4d2b61defdacecd625a5d94a" dependencies = [ "fixed-hash", "impl-codec", @@ -7528,18 +7892,18 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" +checksum = "b4af2ec4714533fcdf07e886f17025ace8b997b9ce51204ee69b6da831c3da57" dependencies = [ "proc-macro2", ] [[package]] name = "radium" -version = "0.6.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" [[package]] name = "rand" @@ -7665,27 +8029,22 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.1.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" - -[[package]] -name = "redox_syscall" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" +checksum = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c" dependencies = [ "bitflags", ] [[package]] name = "redox_users" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" +checksum = "7776223e2696f1aa4c6b0170e83212f47296a00424305117d013dfe86fb0fe55" dependencies = [ "getrandom 0.2.5", - "redox_syscall 0.2.10", + "redox_syscall", + "thiserror", ] [[package]] @@ -7734,9 +8093,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.5.4" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" +checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286" dependencies = [ "aho-corasick", "memchr", @@ -7773,7 +8132,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "env_logger", "jsonrpsee 0.8.0", @@ -7808,9 +8167,9 @@ dependencies = [ [[package]] name = "retain_mut" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51dd4445360338dab5116712bee1388dc727991d51969558a8882ab552e6db30" +checksum = "8c31b5c4033f8fdde8700e4657be2c497e7288f01515be52168c631e2e4d4086" [[package]] name = "ring" @@ -7829,9 +8188,9 @@ dependencies = [ [[package]] name = "rocksdb" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a62eca5cacf2c8261128631bed9f045598d40bfbe4b29f5163f0f802f8f44a7" +checksum = "620f4129485ff1a7128d184bc687470c21c7951b64779ebc9cfdad3dcd920290" dependencies = [ "libc", "librocksdb-sys", @@ -7839,8 +8198,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "beefy-primitives", "bp-messages", @@ -7914,8 +8273,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "frame-support", "polkadot-primitives", @@ -8086,7 +8445,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "log", "sp-core", @@ -8097,7 +8456,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "async-trait", "futures 0.3.21", @@ -8124,7 +8483,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "futures 0.3.21", "futures-timer", @@ -8147,7 +8506,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8163,7 +8522,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "impl-trait-for-tuples", "memmap2 0.5.3", @@ -8180,7 +8539,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -8191,7 +8550,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "chrono", "clap", @@ -8229,14 +8588,14 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "fnv", "futures 0.3.21", "hash-db", "log", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "sc-executor", "sc-transaction-pool-api", "sc-utils", @@ -8257,7 +8616,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "hash-db", "kvdb", @@ -8267,7 +8626,7 @@ dependencies = [ "log", "parity-db", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "sc-client-api", "sc-state-db", "sp-arithmetic", @@ -8282,14 +8641,14 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "async-trait", "futures 0.3.21", "futures-timer", "libp2p", "log", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "sc-client-api", "sc-utils", "serde", @@ -8306,7 +8665,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "async-trait", "futures 0.3.21", @@ -8335,7 +8694,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "async-trait", "fork-tree", @@ -8346,7 +8705,7 @@ dependencies = [ "num-rational 0.2.4", "num-traits", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "rand 0.7.3", "retain_mut", "sc-client-api", @@ -8378,7 +8737,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "futures 0.3.21", "jsonrpc-core", @@ -8402,7 +8761,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8415,7 +8774,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "async-trait", "futures 0.3.21", @@ -8440,7 +8799,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "sc-client-api", "sp-authorship", @@ -8451,14 +8810,12 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "lazy_static", - "libsecp256k1", - "log", "lru 0.6.6", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "sc-executor-common", "sc-executor-wasmi", "sc-executor-wasmtime", @@ -8473,13 +8830,14 @@ dependencies = [ "sp-trie", "sp-version", "sp-wasm-interface", + "tracing", "wasmi", ] [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "environmental", "parity-scale-codec", @@ -8496,7 +8854,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "log", "parity-scale-codec", @@ -8512,7 +8870,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "cfg-if 1.0.0", "libc", @@ -8530,17 +8888,19 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ + "ahash", "async-trait", "dyn-clone", "finality-grandpa", "fork-tree", "futures 0.3.21", "futures-timer", + "hex", "log", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "rand 0.8.5", "sc-block-builder", "sc-chain-spec", @@ -8568,7 +8928,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "finality-grandpa", "futures 0.3.21", @@ -8592,7 +8952,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "ansi_term", "futures 0.3.21", @@ -8609,11 +8969,11 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "async-trait", "hex", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "serde_json", "sp-application-crypto", "sp-core", @@ -8624,9 +8984,8 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ - "async-std", "async-trait", "asynchronous-codec 0.5.0", "bitflags", @@ -8643,9 +9002,9 @@ dependencies = [ "linked-hash-map", "linked_hash_set", "log", - "lru 0.7.2", + "lru 0.7.3", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "pin-project 1.0.10", "prost", "prost-build", @@ -8674,13 +9033,14 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ + "ahash", "futures 0.3.21", "futures-timer", "libp2p", "log", - "lru 0.7.2", + "lru 0.7.3", "sc-network", "sp-runtime", "substrate-prometheus-endpoint", @@ -8690,7 +9050,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "bytes 1.1.0", "fnv", @@ -8698,11 +9058,11 @@ dependencies = [ "futures-timer", "hex", "hyper", - "hyper-rustls", + "hyper-rustls 0.22.1", "num_cpus", "once_cell", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "rand 0.7.3", "sc-client-api", "sc-network", @@ -8718,7 +9078,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "futures 0.3.21", "libp2p", @@ -8731,7 +9091,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8740,7 +9100,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "futures 0.3.21", "hash-db", @@ -8748,7 +9108,7 @@ dependencies = [ "jsonrpc-pubsub", "log", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -8771,7 +9131,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "futures 0.3.21", "jsonrpc-core", @@ -8780,7 +9140,7 @@ dependencies = [ "jsonrpc-pubsub", "log", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "sc-chain-spec", "sc-transaction-pool-api", "serde", @@ -8796,7 +9156,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "futures 0.3.21", "jsonrpc-core", @@ -8813,7 +9173,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "async-trait", "directories", @@ -8826,7 +9186,7 @@ dependencies = [ "log", "parity-scale-codec", "parity-util-mem", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "pin-project 1.0.10", "rand 0.7.3", "sc-block-builder", @@ -8877,13 +9237,13 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "log", "parity-scale-codec", "parity-util-mem", "parity-util-mem-derive", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "sc-client-api", "sp-core", ] @@ -8891,7 +9251,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -8902,7 +9262,6 @@ dependencies = [ "sc-consensus-babe", "sc-consensus-epochs", "sc-finality-grandpa", - "sc-rpc-api", "serde", "serde_json", "sp-blockchain", @@ -8913,13 +9272,13 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "chrono", "futures 0.3.21", "libp2p", "log", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "pin-project 1.0.10", "rand 0.7.3", "serde", @@ -8931,7 +9290,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "ansi_term", "atty", @@ -8940,7 +9299,7 @@ dependencies = [ "libc", "log", "once_cell", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "regex", "rustc-hash", "sc-client-api", @@ -8962,7 +9321,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -8973,7 +9332,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "futures 0.3.21", "futures-timer", @@ -8981,7 +9340,7 @@ dependencies = [ "log", "parity-scale-codec", "parity-util-mem", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "retain_mut", "sc-client-api", "sc-transaction-pool-api", @@ -9000,7 +9359,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "futures 0.3.21", "log", @@ -9013,20 +9372,21 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "futures 0.3.21", "futures-timer", "lazy_static", - "parking_lot 0.11.2", + "log", + "parking_lot 0.12.0", "prometheus", ] [[package]] name = "scale-info" -version = "1.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c55b744399c25532d63a0d2789b109df8d46fc93752d46b0782991a931a782f" +checksum = "0563970d79bcbf3c537ce3ad36d859b30d36fc5b190efd227f1f7a84d7cf0d42" dependencies = [ "bitvec", "cfg-if 1.0.0", @@ -9038,9 +9398,9 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baeb2780690380592f86205aa4ee49815feb2acad8c2f59e6dd207148c3f1fcd" +checksum = "b7805950c36512db9e3251c970bb7ac425f326716941862205d612ab3b5e46e2" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -9108,6 +9468,37 @@ dependencies = [ "untrusted", ] +[[package]] +name = "sec1" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08da66b8b0965a5555b6bd6639e68ccba85e1e2506f5fbb089e93f8a04e1a2d1" +dependencies = [ + "der", + "generic-array 0.14.5", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c42e6f1735c5f00f51e43e28d6634141f2bcad10931b2609ddd74a86d751260" +dependencies = [ + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "957da2573cde917463ece3570eab4a0b3f19de6f1646cde62e6fd3868f566036" +dependencies = [ + "cc", +] + [[package]] name = "secrecy" version = "0.8.0" @@ -9213,6 +9604,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_nanos" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e44969a61f5d316be20a42ff97816efb3b407a924d06824c3d8a49fa8450de0e" +dependencies = [ + "serde", +] + [[package]] name = "sha-1" version = "0.8.2" @@ -9233,7 +9633,7 @@ checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" dependencies = [ "block-buffer 0.9.0", "cfg-if 1.0.0", - "cpufeatures 0.2.1", + "cpufeatures 0.2.2", "digest 0.9.0", "opaque-debug 0.3.0", ] @@ -9258,7 +9658,7 @@ checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ "block-buffer 0.9.0", "cfg-if 1.0.0", - "cpufeatures 0.2.1", + "cpufeatures 0.2.2", "digest 0.9.0", "opaque-debug 0.3.0", ] @@ -9270,7 +9670,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" dependencies = [ "cfg-if 1.0.0", - "cpufeatures 0.2.1", + "cpufeatures 0.2.2", "digest 0.10.3", ] @@ -9286,6 +9686,16 @@ dependencies = [ "opaque-debug 0.3.0", ] +[[package]] +name = "sha3" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "881bf8156c87b6301fc5ca6b27f11eeb2761224c7081e69b409d5a1951a70c86" +dependencies = [ + "digest 0.10.3", + "keccak", +] + [[package]] name = "sharded-slab" version = "0.1.4" @@ -9322,9 +9732,12 @@ dependencies = [ [[package]] name = "signature" -version = "1.5.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f054c6c1a6e95179d6f23ed974060dcefb2d9388bb7256900badad682c499de4" +checksum = "02658e48d89f2bec991f9a78e69cfa4c316f8d6a6c4ec12fae1aeb263d486788" +dependencies = [ + "rand_core 0.6.3", +] [[package]] name = "simba" @@ -9346,8 +9759,8 @@ checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" [[package]] name = "slot-range-helper" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "enumn", "parity-scale-codec", @@ -9384,7 +9797,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6142f7c25e94f6fd25a32c3348ec230df9109b463f59c8c7acc4bd34936babb7" dependencies = [ "aes-gcm", - "blake2", + "blake2 0.9.2", "chacha20poly1305", "rand 0.8.5", "rand_core 0.6.3", @@ -9435,7 +9848,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "hash-db", "log", @@ -9452,9 +9865,9 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ - "blake2-rfc", + "blake2 0.10.4", "proc-macro-crate 1.1.3", "proc-macro2", "quote", @@ -9463,8 +9876,8 @@ dependencies = [ [[package]] name = "sp-application-crypto" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "parity-scale-codec", "scale-info", @@ -9476,8 +9889,8 @@ dependencies = [ [[package]] name = "sp-arithmetic" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "integer-sqrt", "num-traits", @@ -9492,7 +9905,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "parity-scale-codec", "scale-info", @@ -9505,7 +9918,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "async-trait", "parity-scale-codec", @@ -9517,7 +9930,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "parity-scale-codec", "sp-api", @@ -9529,13 +9942,13 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "futures 0.3.21", "log", - "lru 0.7.2", + "lru 0.7.3", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "sp-api", "sp-consensus", "sp-database", @@ -9547,7 +9960,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "async-trait", "futures 0.3.21", @@ -9566,7 +9979,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "async-trait", "parity-scale-codec", @@ -9584,7 +9997,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "async-trait", "merlin", @@ -9607,19 +10020,21 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "parity-scale-codec", "scale-info", "serde", "sp-arithmetic", "sp-runtime", + "sp-std", + "sp-timestamp", ] [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -9630,8 +10045,8 @@ dependencies = [ [[package]] name = "sp-core" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "base58", "bitflags", @@ -9651,15 +10066,15 @@ dependencies = [ "num-traits", "parity-scale-codec", "parity-util-mem", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "primitive-types", "rand 0.7.3", "regex", "scale-info", "schnorrkel", + "secp256k1", "secrecy", "serde", - "sha2 0.10.2", "sp-core-hashing", "sp-debug-derive", "sp-externalities", @@ -9670,8 +10085,6 @@ dependencies = [ "substrate-bip39", "thiserror", "tiny-bip39", - "tiny-keccak", - "twox-hash", "wasmi", "zeroize", ] @@ -9679,20 +10092,21 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ - "blake2-rfc", + "blake2 0.10.4", "byteorder", + "digest 0.10.3", "sha2 0.10.2", + "sha3 0.10.1", "sp-std", - "tiny-keccak", "twox-hash", ] [[package]] name = "sp-core-hashing-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "proc-macro2", "quote", @@ -9703,16 +10117,16 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "kvdb", - "parking_lot 0.11.2", + "parking_lot 0.12.0", ] [[package]] name = "sp-debug-derive" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "proc-macro2", "quote", @@ -9721,8 +10135,8 @@ dependencies = [ [[package]] name = "sp-externalities" -version = "0.11.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +version = "0.12.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "environmental", "parity-scale-codec", @@ -9733,7 +10147,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "finality-grandpa", "log", @@ -9751,7 +10165,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9764,15 +10178,16 @@ dependencies = [ [[package]] name = "sp-io" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "futures 0.3.21", "hash-db", "libsecp256k1", "log", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.0", + "secp256k1", "sp-core", "sp-externalities", "sp-keystore", @@ -9788,25 +10203,25 @@ dependencies = [ [[package]] name = "sp-keyring" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "lazy_static", "sp-core", "sp-runtime", - "strum", + "strum 0.23.0", ] [[package]] name = "sp-keystore" -version = "0.11.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +version = "0.12.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "async-trait", "futures 0.3.21", "merlin", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "schnorrkel", "serde", "sp-core", @@ -9817,7 +10232,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "thiserror", "zstd", @@ -9826,7 +10241,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "parity-scale-codec", "scale-info", @@ -9841,7 +10256,7 @@ dependencies = [ [[package]] name = "sp-npos-elections-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -9852,7 +10267,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "sp-api", "sp-core", @@ -9862,7 +10277,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "backtrace", "lazy_static", @@ -9871,8 +10286,8 @@ dependencies = [ [[package]] name = "sp-rpc" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "rustc-hash", "serde", @@ -9881,8 +10296,8 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "either", "hash256-std-hasher", @@ -9903,8 +10318,8 @@ dependencies = [ [[package]] name = "sp-runtime-interface" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9920,8 +10335,8 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "Inflector", "proc-macro-crate 1.1.3", @@ -9933,7 +10348,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "serde", "serde_json", @@ -9942,7 +10357,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "parity-scale-codec", "scale-info", @@ -9956,7 +10371,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "parity-scale-codec", "scale-info", @@ -9966,14 +10381,14 @@ dependencies = [ [[package]] name = "sp-state-machine" -version = "0.11.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +version = "0.12.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "hash-db", "log", "num-traits", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "rand 0.7.3", "smallvec", "sp-core", @@ -9990,12 +10405,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" [[package]] name = "sp-storage" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10008,7 +10423,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "log", "sp-core", @@ -10021,7 +10436,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "async-trait", "futures-timer", @@ -10036,8 +10451,8 @@ dependencies = [ [[package]] name = "sp-tracing" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "parity-scale-codec", "sp-std", @@ -10049,7 +10464,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "sp-api", "sp-runtime", @@ -10058,7 +10473,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "async-trait", "log", @@ -10073,8 +10488,8 @@ dependencies = [ [[package]] name = "sp-trie" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "hash-db", "memory-db", @@ -10082,14 +10497,15 @@ dependencies = [ "scale-info", "sp-core", "sp-std", + "thiserror", "trie-db", "trie-root", ] [[package]] name = "sp-version" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10106,7 +10522,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10116,8 +10532,8 @@ dependencies = [ [[package]] name = "sp-wasm-interface" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "impl-trait-for-tuples", "log", @@ -10133,13 +10549,24 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "spki" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" +dependencies = [ + "base64ct", + "der", +] + [[package]] name = "ss58-registry" -version = "1.15.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f9799e6d412271cb2414597581128b03f3285f260ea49f5363d07df6a332b3e" +checksum = "7b84a70894df7a73666e0694f44b41a9571625e9546fb58a0818a565d2c7e084" dependencies = [ "Inflector", + "num-format", "proc-macro2", "quote", "serde", @@ -10209,7 +10636,16 @@ version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" dependencies = [ - "strum_macros", + "strum_macros 0.23.1", +] + +[[package]] +name = "strum" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e96acfc1b70604b8b2f1ffa4c57e59176c7dbb05d556c71ecd2f5498a1dee7f8" +dependencies = [ + "strum_macros 0.24.0", ] [[package]] @@ -10225,6 +10661,19 @@ dependencies = [ "syn", ] +[[package]] +name = "strum_macros" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6878079b17446e4d3eba6192bb0a2950d5b14f0ed8424b852310e5a94345d0ef" +dependencies = [ + "heck 0.4.0", + "proc-macro2", + "quote", + "rustversion", + "syn", +] + [[package]] name = "substrate-bip39" version = "0.4.4" @@ -10241,7 +10690,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "platforms", ] @@ -10249,7 +10698,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.21", @@ -10271,9 +10720,8 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ - "async-std", "futures-util", "hyper", "log", @@ -10285,13 +10733,13 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "ansi_term", "build-helper", "cargo_metadata", "sp-maybe-compressed-blob", - "strum", + "strum 0.23.0", "tempfile", "toml", "walkdir", @@ -10306,9 +10754,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.86" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b" +checksum = "ea297be220d52398dcc07ce15a209fce436d361735ac1db700cab3b6cdfb9f54" dependencies = [ "proc-macro2", "quote", @@ -10348,25 +10796,25 @@ dependencies = [ "cfg-if 1.0.0", "fastrand", "libc", - "redox_syscall 0.2.10", + "redox_syscall", "remove_dir_all", "winapi 0.3.9", ] [[package]] name = "termcolor" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" dependencies = [ "winapi-util", ] [[package]] name = "textwrap" -version = "0.14.2" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80" +checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" [[package]] name = "thiserror" @@ -10419,6 +10867,17 @@ dependencies = [ "threadpool", ] +[[package]] +name = "tikv-jemalloc-sys" +version = "0.4.3+5.2.1-patched.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1792ccb507d955b46af42c123ea8863668fae24d03721e40cad6a41773dbb49" +dependencies = [ + "cc", + "fs_extra", + "libc", +] + [[package]] name = "time" version = "0.1.44" @@ -10449,15 +10908,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - [[package]] name = "tinyvec" version = "1.5.1" @@ -10482,9 +10932,10 @@ dependencies = [ "bytes 1.1.0", "libc", "memchr", - "mio 0.8.0", + "mio 0.8.2", "num_cpus", "once_cell", + "parking_lot 0.12.0", "pin-project-lite 0.2.8", "signal-hook-registry", "socket2 0.4.4", @@ -10516,9 +10967,9 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.23.2" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27d5f2b839802bd8267fa19b0530f5a08b9c08cd417976be2a65d130fe1c11b" +checksum = "4151fda0cf2798550ad0b34bcfc9b9dcc2a9d2471c895c68f3a8818e54f2389e" dependencies = [ "rustls 0.20.4", "tokio", @@ -10568,9 +11019,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6c650a8ef0cd2dd93736f033d21cbd1224c5a967aa0c258d00fcf7dafef9b9f" +checksum = "4a1bdf54a7c28a2bbf701e1d2233f6c77f473486b94bee4f9678da5a148dca7f" dependencies = [ "cfg-if 1.0.0", "pin-project-lite 0.2.8", @@ -10580,9 +11031,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8276d9a4a3a558d7b7ad5303ad50b53d58264641b82914b7ada36bd762e7a716" +checksum = "2e65ce065b4b5c53e73bb28912318cb8c9e9ad3921f1d669eb0e68b4c8143a2b" dependencies = [ "proc-macro2", "quote", @@ -10591,9 +11042,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03cfcb51380632a72d3111cb8d3447a8d908e577d31beeac006f836383d29a23" +checksum = "aa31669fa42c09c34d94d8165dd2012e8ff3c66aca50f3bb226b68f216f2706c" dependencies = [ "lazy_static", "valuable", @@ -10727,7 +11178,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.17#22d40c761a985482f93bbbea5ba4199bdba74f8e" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" dependencies = [ "clap", "jsonrpsee 0.4.1", @@ -10762,6 +11213,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ee73e6e4924fe940354b8d4d98cad5231175d615cd855b758adc658c0aac6a0" dependencies = [ "cfg-if 1.0.0", + "digest 0.10.3", "rand 0.8.5", "static_assertions", ] @@ -10968,6 +11420,12 @@ version = "0.10.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + [[package]] name = "wasm-bindgen" version = "0.2.79" @@ -11311,8 +11769,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "beefy-primitives", "bitvec", @@ -11397,8 +11855,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "frame-support", "polkadot-primitives", @@ -11409,9 +11867,9 @@ dependencies = [ [[package]] name = "which" -version = "4.2.4" +version = "4.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a5a7e487e921cf220206864a94a89b6c6905bfc19f1057fa26a4cb360e5c1d2" +checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae" dependencies = [ "either", "lazy_static", @@ -11531,9 +11989,12 @@ dependencies = [ [[package]] name = "wyz" -version = "0.2.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" +checksum = "30b31594f29d27036c383b53b59ed3476874d518f0efb151b27a4c275141390e" +dependencies = [ + "tap", +] [[package]] name = "x25519-dalek" @@ -11548,8 +12009,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -11561,8 +12022,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "frame-support", "frame-system", @@ -11581,8 +12042,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.17" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +version = "0.9.18" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "frame-benchmarking", "frame-support", @@ -11600,7 +12061,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.17#de0ecd4760b146ecf33f5e867d707d789e21e060" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" dependencies = [ "Inflector", "proc-macro2", @@ -11624,9 +12085,9 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.5.2" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c88870063c39ee00ec285a2f8d6a966e5b6fb2becc4e8dac77ed0d370ed6006" +checksum = "7eb5728b8afd3f280a869ce1d4c554ffaed35f45c231fc41bfbd0381bef50317" dependencies = [ "zeroize_derive", ] diff --git a/node/Cargo.toml b/node/Cargo.toml index 3728dd8e..5d974e1a 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -9,94 +9,84 @@ repository = "https://github.com/paritytech/cumulus/" edition = "2021" build = "build.rs" -[package.metadata.docs.rs] -targets = ["x86_64-unknown-linux-gnu"] - -[build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } - [[bin]] name = "parachain-collator" path = "src/main.rs" -[features] -runtime-benchmarks = [ - "parachain-template-runtime/runtime-benchmarks", - "polkadot-cli/runtime-benchmarks", -] -try-runtime = ["parachain-template-runtime/try-runtime"] - [dependencies] clap = { version = "3.1", features = ["derive"] } derive_more = "0.99.2" log = "0.4.14" -codec = { package = "parity-scale-codec", version = "2.0.0" } +codec = { package = "parity-scale-codec", version = "3.0.0" } serde = { version = "1.0.132", features = ["derive"] } hex-literal = "0.3.4" - -# RPC related Dependencies jsonrpc-core = "18.0.0" -# Local Dependencies +# Local parachain-template-runtime = { path = "../runtime" } -# Substrate Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } - -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } - -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +# Substrate +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18", features = ["wasmtime"] } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18", features = ["wasmtime"] } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18", features = ["wasmtime"] } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -## Substrate Client Dependencies -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17", features = ["wasmtime"] } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17", features = ["wasmtime"] } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17", features = ["wasmtime"] } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +# Polkadot +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.18" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.18" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.18" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.18" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.18" } -## Substrate Primitive Dependencies -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +# Cumulus +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } +cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } +cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } +cumulus-primitives-core ={ git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } +cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } -# Cumulus dependencies -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17" } -cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17" } -cumulus-relay-chain-local = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17" } +[build-dependencies] +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -# Polkadot dependencies -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.17" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.17" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.17" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.17" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.17" } +[features] +runtime-benchmarks = [ + "parachain-template-runtime/runtime-benchmarks", + "polkadot-cli/runtime-benchmarks", +] +try-runtime = ["parachain-template-runtime/try-runtime"] diff --git a/node/src/command.rs b/node/src/command.rs index 2d62cf44..9f3124a3 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -260,6 +260,7 @@ pub fn run() -> Result<()> { }, None => { let runner = cli.create_runner(&cli.run.normalize())?; + let collator_options = cli.run.collator_options(); runner.run_node_until_exit(|config| async move { let para_id = chain_spec::Extensions::try_get(&*config.chain_spec) @@ -292,7 +293,7 @@ pub fn run() -> Result<()> { info!("Parachain genesis state: {}", genesis_state); info!("Is collating: {}", if config.role.is_authority() { "yes" } else { "no" }); - crate::service::start_parachain_node(config, polkadot_config, id) + crate::service::start_parachain_node(config, polkadot_config, collator_options, id) .await .map(|r| r.0) .map_err(Into::into) diff --git a/node/src/service.rs b/node/src/service.rs index 400daeaa..108d7c18 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -3,6 +3,7 @@ // std use std::{sync::Arc, time::Duration}; +use cumulus_client_cli::CollatorOptions; // Local Runtime Types use parachain_template_runtime::{ opaque::Block, AccountId, Balance, Hash, Index as Nonce, RuntimeApi, @@ -16,8 +17,9 @@ use cumulus_client_service::{ prepare_node_config, start_collator, start_full_node, StartCollatorParams, StartFullNodeParams, }; use cumulus_primitives_core::ParaId; -use cumulus_relay_chain_interface::RelayChainInterface; -use cumulus_relay_chain_local::build_relay_chain_interface; +use cumulus_relay_chain_inprocess_interface::build_inprocess_relay_chain; +use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface, RelayChainResult}; +use cumulus_relay_chain_rpc_interface::RelayChainRPCInterface; // Substrate Imports use sc_client_api::ExecutorProvider; @@ -26,11 +28,12 @@ use sc_network::NetworkService; use sc_service::{Configuration, PartialComponents, Role, TFullBackend, TFullClient, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; use sp_api::ConstructRuntimeApi; -use sp_consensus::SlotData; use sp_keystore::SyncCryptoStorePtr; use sp_runtime::traits::BlakeTwo256; use substrate_prometheus_endpoint::Registry; +use polkadot_service::CollatorPair; + /// Native executor instance. pub struct TemplateRuntimeExecutor; @@ -161,6 +164,25 @@ where Ok(params) } +async fn build_relay_chain_interface( + polkadot_config: Configuration, + parachain_config: &Configuration, + telemetry_worker_handle: Option, + task_manager: &mut TaskManager, + collator_options: CollatorOptions, +) -> RelayChainResult<(Arc<(dyn RelayChainInterface + 'static)>, Option)> { + match collator_options.relay_chain_rpc_url { + Some(relay_chain_url) => + Ok((Arc::new(RelayChainRPCInterface::new(relay_chain_url).await?) as Arc<_>, None)), + None => build_inprocess_relay_chain( + polkadot_config, + parachain_config, + telemetry_worker_handle, + task_manager, + ), + } +} + /// Start a node with the given parachain `Configuration` and relay chain `Configuration`. /// /// This is the actual implementation that is abstract over the executor and the runtime api. @@ -168,6 +190,7 @@ where async fn start_node_impl( parachain_config: Configuration, polkadot_config: Configuration, + collator_options: CollatorOptions, id: ParaId, _rpc_ext_builder: RB, build_import_queue: BIQ, @@ -241,12 +264,18 @@ where let backend = params.backend.clone(); let mut task_manager = params.task_manager; - let (relay_chain_interface, collator_key) = - build_relay_chain_interface(polkadot_config, telemetry_worker_handle, &mut task_manager) - .map_err(|e| match e { - polkadot_service::Error::Sub(x) => x, - s => format!("{}", s).into(), - })?; + let (relay_chain_interface, collator_key) = build_relay_chain_interface( + polkadot_config, + ¶chain_config, + telemetry_worker_handle, + &mut task_manager, + collator_options.clone(), + ) + .await + .map_err(|e| match e { + RelayChainError::ServiceError(polkadot_service::Error::Sub(x)) => x, + s => s.to_string().into(), + })?; let block_announce_validator = BlockAnnounceValidator::new(relay_chain_interface.clone(), id); @@ -328,7 +357,7 @@ where spawner, parachain_consensus, import_queue, - collator_key, + collator_key: collator_key.expect("Command line arguments do not allow this. qed"), relay_chain_slot_duration, }; @@ -342,6 +371,7 @@ where relay_chain_interface, relay_chain_slot_duration, import_queue, + collator_options, }; start_full_node(params)?; @@ -383,9 +413,9 @@ pub fn parachain_build_import_queue( let time = sp_timestamp::InherentDataProvider::from_system_time(); let slot = - sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_duration( + sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration( *time, - slot_duration.slot_duration(), + slot_duration, ); Ok((time, slot)) @@ -402,6 +432,7 @@ pub fn parachain_build_import_queue( pub async fn start_parachain_node( parachain_config: Configuration, polkadot_config: Configuration, + collator_options: CollatorOptions, id: ParaId, ) -> sc_service::error::Result<( TaskManager, @@ -410,6 +441,7 @@ pub async fn start_parachain_node( start_node_impl::( parachain_config, polkadot_config, + collator_options, id, |_| Ok(Default::default()), parachain_build_import_queue, @@ -448,9 +480,9 @@ pub async fn start_parachain_node( let time = sp_timestamp::InherentDataProvider::from_system_time(); let slot = - sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_duration( + sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration( *time, - slot_duration.slot_duration(), + slot_duration, ); let parachain_inherent = parachain_inherent.ok_or_else(|| { diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 354b5347..5c473a4d 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -12,18 +12,21 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [dependencies] -codec = { package = "parity-scale-codec", version = "2.0.0", features = ["derive"], default-features = false } -scale-info = { version = "1.0.0", default-features = false, features = ["derive"] } +codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive"], default-features = false } +scale-info = { version = "2.0.0", default-features = false, features = ["derive"] } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.17" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +# Substrate +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.18" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } [dev-dependencies] serde = { version = "1.0.132" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } + +# Substrate +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } [features] default = ["std"] @@ -31,8 +34,8 @@ runtime-benchmarks = ["frame-benchmarking/runtime-benchmarks"] std = [ "codec/std", "scale-info/std", + "frame-benchmarking/std", "frame-support/std", "frame-system/std", - "frame-benchmarking/std", ] try-runtime = [ "frame-support/try-runtime" ] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 49751f8e..8598c473 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,73 +12,68 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.17" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } [dependencies] +codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } hex-literal = { version = "0.3.4", optional = true } -codec = { package = "parity-scale-codec", version = "2.0.0", default-features = false, features = ["derive"]} log = { version = "0.4.14", default-features = false } -scale-info = { version = "1.0.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.0.0", default-features = false, features = ["derive"] } serde = { version = "1.0.132", optional = true, features = ["derive"] } smallvec = "1.6.1" -# Local Dependencies +# Local pallet-template = { path = "../pallets/template", default-features = false } -# Substrate Dependencies -## Substrate Primitive Dependencies -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +# Substrate +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.18" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.18" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.18" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -## Substrate FRAME Dependencies -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.17" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.17" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.17" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } +# Polkadot +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.18" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.18" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.18" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.18" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.18" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.18" } -## Substrate Pallet Dependencies -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.17" } - -# Cumulus dependencies -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false } -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false } -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false } -parachain-info = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false } -cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.17", default-features = false, version = "3.0.0"} - -# Polkadot Dependencies -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.17" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.17" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.17" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.17" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.17" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.17" } +# Cumulus +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } +cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } +pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } +parachain-info = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } [features] default = [ @@ -86,25 +81,21 @@ default = [ ] std = [ "codec/std", - "serde", - "scale-info/std", "log/std", - "sp-api/std", - "sp-block-builder/std", - "sp-consensus-aura/std", - "sp-core/std", - "sp-inherents/std", - "sp-io/std", - "sp-offchain/std", - "sp-runtime/std", - "sp-session/std", - "sp-std/std", - "sp-transaction-pool/std", - "sp-version/std", + "scale-info/std", + "serde", + "cumulus-pallet-aura-ext/std", + "cumulus-pallet-dmp-queue/std", + "cumulus-pallet-parachain-system/std", + "cumulus-pallet-xcm/std", + "cumulus-pallet-xcmp-queue/std", + "cumulus-primitives-core/std", + "cumulus-primitives-timestamp/std", + "cumulus-primitives-utility/std", "frame-executive/std", "frame-support/std", - "frame-system/std", "frame-system-rpc-runtime-api/std", + "frame-system/std", "pallet-aura/std", "pallet-authorship/std", "pallet-balances/std", @@ -116,17 +107,21 @@ std = [ "pallet-transaction-payment-rpc-runtime-api/std", "pallet-transaction-payment/std", "pallet-xcm/std", - "cumulus-pallet-aura-ext/std", - "cumulus-pallet-parachain-system/std", - "cumulus-pallet-xcm/std", - "cumulus-pallet-xcmp-queue/std", - "cumulus-primitives-core/std", - "cumulus-primitives-timestamp/std", - "cumulus-primitives-utility/std", - "cumulus-pallet-dmp-queue/std", "parachain-info/std", "polkadot-parachain/std", "polkadot-runtime-common/std", + "sp-api/std", + "sp-block-builder/std", + "sp-consensus-aura/std", + "sp-core/std", + "sp-inherents/std", + "sp-io/std", + "sp-offchain/std", + "sp-runtime/std", + "sp-session/std", + "sp-std/std", + "sp-transaction-pool/std", + "sp-version/std", "xcm-builder/std", "xcm-executor/std", "xcm/std", @@ -134,21 +129,22 @@ std = [ runtime-benchmarks = [ "hex-literal", - "sp-runtime/runtime-benchmarks", - "xcm-builder/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", - "frame-system-benchmarking", "frame-support/runtime-benchmarks", + "frame-system-benchmarking", "frame-system/runtime-benchmarks", "pallet-balances/runtime-benchmarks", "pallet-collator-selection/runtime-benchmarks", "pallet-template/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "xcm-builder/runtime-benchmarks", "cumulus-pallet-session-benchmarking/runtime-benchmarks", + "cumulus-pallet-xcmp-queue/runtime-benchmarks", ] try-runtime = [ - "frame-try-runtime", "frame-executive/try-runtime", + "frame-try-runtime", ] diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index ca506338..11eb36d3 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -386,6 +386,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ExecuteOverweightOrigin = EnsureRoot; type ControllerOrigin = EnsureRoot; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; + type WeightInfo = (); } impl cumulus_pallet_dmp_queue::Config for Runtime { @@ -502,6 +503,7 @@ mod benches { [pallet_session, SessionBench::] [pallet_timestamp, Timestamp] [pallet_collator_selection, CollatorSelection] + [cumulus_pallet_xcmp_queue, XcmpQueue] ); } diff --git a/runtime/src/weights/block_weights.rs b/runtime/src/weights/block_weights.rs new file mode 100644 index 00000000..4db90f0c --- /dev/null +++ b/runtime/src/weights/block_weights.rs @@ -0,0 +1,46 @@ +// This file is part of Substrate. + +// Copyright (C) 2022 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, Weight}, + }; + + parameter_types! { + /// Importing a block with 0 Extrinsics. + pub const BlockExecutionWeight: Weight = 5_000_000 * constants::WEIGHT_PER_NANOS; + } + + #[cfg(test)] + mod test_weights { + use frame_support::weights::constants; + + /// Checks that the weight exists and is sane. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + let w = super::constants::BlockExecutionWeight::get(); + + // At least 100 µs. + assert!(w >= 100 * constants::WEIGHT_PER_MICROS, "Weight should be at least 100 µs."); + // At most 50 ms. + assert!(w <= 50 * constants::WEIGHT_PER_MILLIS, "Weight should be at most 50 ms."); + } + } +} diff --git a/runtime/src/weights/extrinsic_weights.rs b/runtime/src/weights/extrinsic_weights.rs new file mode 100644 index 00000000..158ba99c --- /dev/null +++ b/runtime/src/weights/extrinsic_weights.rs @@ -0,0 +1,46 @@ +// This file is part of Substrate. + +// Copyright (C) 2022 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, Weight}, + }; + + parameter_types! { + /// Executing a NO-OP `System::remarks` Extrinsic. + pub const ExtrinsicBaseWeight: Weight = 125_000 * constants::WEIGHT_PER_NANOS; + } + + #[cfg(test)] + mod test_weights { + use frame_support::weights::constants; + + /// Checks that the weight exists and is sane. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + let w = super::constants::ExtrinsicBaseWeight::get(); + + // At least 10 µs. + assert!(w >= 10 * constants::WEIGHT_PER_MICROS, "Weight should be at least 10 µs."); + // At most 1 ms. + assert!(w <= constants::WEIGHT_PER_MILLIS, "Weight should be at most 1 ms."); + } + } +} diff --git a/runtime/src/weights/mod.rs b/runtime/src/weights/mod.rs new file mode 100644 index 00000000..ed0b4dbc --- /dev/null +++ b/runtime/src/weights/mod.rs @@ -0,0 +1,28 @@ +// This file is part of Substrate. + +// Copyright (C) 2022 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! Expose the auto generated weight files. + +pub mod block_weights; +pub mod extrinsic_weights; +pub mod paritydb_weights; +pub mod rocksdb_weights; + +pub use block_weights::constants::BlockExecutionWeight; +pub use extrinsic_weights::constants::ExtrinsicBaseWeight; +pub use paritydb_weights::constants::ParityDbWeight; +pub use rocksdb_weights::constants::RocksDbWeight; diff --git a/runtime/src/weights/paritydb_weights.rs b/runtime/src/weights/paritydb_weights.rs new file mode 100644 index 00000000..843823c1 --- /dev/null +++ b/runtime/src/weights/paritydb_weights.rs @@ -0,0 +1,63 @@ +// This file is part of Substrate. + +// Copyright (C) 2022 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, RuntimeDbWeight}, + }; + + parameter_types! { + /// `ParityDB` can be enabled with a feature flag, but is still experimental. These weights + /// are available for brave runtime engineers who may want to try this out as default. + pub const ParityDbWeight: RuntimeDbWeight = RuntimeDbWeight { + read: 8_000 * constants::WEIGHT_PER_NANOS, + write: 50_000 * constants::WEIGHT_PER_NANOS, + }; + } + + #[cfg(test)] + mod test_db_weights { + use super::constants::ParityDbWeight as W; + use frame_support::weights::constants; + + /// Checks that all weights exist and have sane values. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + // At least 1 µs. + assert!( + W::get().reads(1) >= constants::WEIGHT_PER_MICROS, + "Read weight should be at least 1 µs." + ); + assert!( + W::get().writes(1) >= constants::WEIGHT_PER_MICROS, + "Write weight should be at least 1 µs." + ); + // At most 1 ms. + assert!( + W::get().reads(1) <= constants::WEIGHT_PER_MILLIS, + "Read weight should be at most 1 ms." + ); + assert!( + W::get().writes(1) <= constants::WEIGHT_PER_MILLIS, + "Write weight should be at most 1 ms." + ); + } + } +} diff --git a/runtime/src/weights/rocksdb_weights.rs b/runtime/src/weights/rocksdb_weights.rs new file mode 100644 index 00000000..05e06b0e --- /dev/null +++ b/runtime/src/weights/rocksdb_weights.rs @@ -0,0 +1,63 @@ +// This file is part of Substrate. + +// Copyright (C) 2022 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, RuntimeDbWeight}, + }; + + parameter_types! { + /// By default, Substrate uses `RocksDB`, so this will be the weight used throughout + /// the runtime. + pub const RocksDbWeight: RuntimeDbWeight = RuntimeDbWeight { + read: 25_000 * constants::WEIGHT_PER_NANOS, + write: 100_000 * constants::WEIGHT_PER_NANOS, + }; + } + + #[cfg(test)] + mod test_db_weights { + use super::constants::RocksDbWeight as W; + use frame_support::weights::constants; + + /// Checks that all weights exist and have sane values. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + // At least 1 µs. + assert!( + W::get().reads(1) >= constants::WEIGHT_PER_MICROS, + "Read weight should be at least 1 µs." + ); + assert!( + W::get().writes(1) >= constants::WEIGHT_PER_MICROS, + "Write weight should be at least 1 µs." + ); + // At most 1 ms. + assert!( + W::get().reads(1) <= constants::WEIGHT_PER_MILLIS, + "Read weight should be at most 1 ms." + ); + assert!( + W::get().writes(1) <= constants::WEIGHT_PER_MILLIS, + "Write weight should be at most 1 ms." + ); + } + } +} diff --git a/runtime/src/xcm_config.rs b/runtime/src/xcm_config.rs index 86dda52f..00d65997 100644 --- a/runtime/src/xcm_config.rs +++ b/runtime/src/xcm_config.rs @@ -1,14 +1,15 @@ use super::{ - AccountId, Balance, Balances, Call, Event, Origin, ParachainInfo, ParachainSystem, PolkadotXcm, - Runtime, XcmpQueue, + AccountId, Balances, Call, Event, Origin, ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, + WeightToFee, XcmpQueue, }; use frame_support::{ match_type, parameter_types, traits::{Everything, Nothing}, - weights::{IdentityFee, Weight}, + weights::Weight, }; use pallet_xcm::XcmPassthrough; use polkadot_parachain::primitives::Sibling; +use polkadot_runtime_common::impls::ToAuthor; use xcm::latest::prelude::*; use xcm_builder::{ AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter, @@ -105,7 +106,8 @@ impl xcm_executor::Config for XcmConfig { type LocationInverter = LocationInverter; type Barrier = Barrier; type Weigher = FixedWeightBounds; - type Trader = UsingComponents, RelayLocation, AccountId, Balances, ()>; + type Trader = + UsingComponents>; type ResponseHandler = PolkadotXcm; type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; From 78497273efd5246a33bedf05ff52d526a865b069 Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Wed, 20 Apr 2022 18:27:51 -0600 Subject: [PATCH 52/91] Update to upstream polkadot-v0.9.19 (#108) - xcm configuramtion updates - tweaks on commands for benchmarks, try-runtime --- Cargo.lock | 1157 ++++++++++++++++++----------------- node/Cargo.toml | 105 ++-- node/src/cli.rs | 5 +- node/src/command.rs | 47 +- pallets/template/Cargo.toml | 12 +- runtime/Cargo.toml | 94 +-- runtime/src/lib.rs | 14 +- runtime/src/xcm_config.rs | 85 ++- 8 files changed, 807 insertions(+), 712 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 424c4f09..63b505cc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -258,9 +258,9 @@ dependencies = [ [[package]] name = "async-std" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8056f1455169ab86dd47b47391e4ab0cbd25410a70e9fe675544f49bafaf952" +checksum = "52580991739c5cdb36cde8b2a516371c0a3b70dda36d916cc08b82372916808c" dependencies = [ "async-attributes", "async-channel", @@ -306,9 +306,9 @@ checksum = "30696a84d817107fc028e049980e09d5e140e8da8f1caeb17e8e950658a3cea9" [[package]] name = "async-trait" -version = "0.1.52" +version = "0.1.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061a7acccaa286c011ddc30970520b98fa40e00c9d644633fb26b5fc63a265e3" +checksum = "ed6aa3524a2dfcf9fe180c51eae2b58738348d819517ceadf95789c51fff7600" dependencies = [ "proc-macro2", "quote", @@ -444,17 +444,19 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "beefy-primitives", "fnv", "futures 0.3.21", + "futures-timer", "hex", "log", "parity-scale-codec", "parking_lot 0.12.0", "sc-chain-spec", "sc-client-api", + "sc-finality-grandpa", "sc-keystore", "sc-network", "sc-network-gossip", @@ -463,6 +465,7 @@ dependencies = [ "sp-application-crypto", "sp-arithmetic", "sp-blockchain", + "sp-consensus", "sp-core", "sp-keystore", "sp-runtime", @@ -474,7 +477,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -497,12 +500,12 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "parity-scale-codec", "scale-info", @@ -718,8 +721,9 @@ dependencies = [ [[package]] name = "bp-header-chain" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ + "bp-runtime", "finality-grandpa", "frame-support", "parity-scale-codec", @@ -734,7 +738,7 @@ dependencies = [ [[package]] name = "bp-message-dispatch" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "bp-runtime", "frame-support", @@ -746,7 +750,7 @@ dependencies = [ [[package]] name = "bp-messages" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "bitvec", "bp-runtime", @@ -756,13 +760,14 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", + "sp-core", "sp-std", ] [[package]] name = "bp-polkadot-core" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "bp-messages", "bp-runtime", @@ -780,7 +785,7 @@ dependencies = [ [[package]] name = "bp-rococo" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -797,7 +802,7 @@ dependencies = [ [[package]] name = "bp-runtime" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "frame-support", "hash-db", @@ -815,7 +820,7 @@ dependencies = [ [[package]] name = "bp-test-utils" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "bp-header-chain", "ed25519-dalek", @@ -830,7 +835,7 @@ dependencies = [ [[package]] name = "bp-wococo" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -845,12 +850,13 @@ dependencies = [ [[package]] name = "bridge-runtime-common" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "bp-message-dispatch", "bp-messages", "bp-runtime", "frame-support", + "frame-system", "hash-db", "pallet-bridge-dispatch", "pallet-bridge-grandpa", @@ -858,6 +864,7 @@ dependencies = [ "pallet-transaction-payment", "parity-scale-codec", "scale-info", + "sp-api", "sp-core", "sp-runtime", "sp-state-machine", @@ -1121,6 +1128,18 @@ dependencies = [ "syn", ] +[[package]] +name = "coarsetime" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "454038500439e141804c655b4cd1bc6a70bcb95cd2bc9463af5661b6956f0e46" +dependencies = [ + "libc", + "once_cell", + "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", +] + [[package]] name = "concurrent-queue" version = "1.2.2" @@ -1324,6 +1343,16 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "crossbeam-queue" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f25d8400f4a7a5778f0e4e52384a48cbd9b5c495d110786187fc750075277a2" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", +] + [[package]] name = "crossbeam-utils" version = "0.8.8" @@ -1424,7 +1453,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "clap", "sc-cli", @@ -1435,7 +1464,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1459,7 +1488,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1488,7 +1517,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1509,7 +1538,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1534,7 +1563,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -1558,7 +1587,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1588,7 +1617,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "frame-executive", "frame-support", @@ -1606,7 +1635,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1624,7 +1653,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1654,7 +1683,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -1665,7 +1694,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "frame-benchmarking", "frame-support", @@ -1679,7 +1708,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1696,7 +1725,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1715,7 +1744,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "frame-support", "parity-scale-codec", @@ -1731,7 +1760,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1754,7 +1783,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "cumulus-primitives-core", "futures 0.3.21", @@ -1767,7 +1796,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1784,7 +1813,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1812,13 +1841,13 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "async-trait", "cumulus-primitives-core", "derive_more", "futures 0.3.21", - "jsonrpsee-core 0.9.0", + "jsonrpsee-core", "parity-scale-codec", "parking_lot 0.12.0", "polkadot-overseer", @@ -1836,7 +1865,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "async-trait", "backoff", @@ -1844,7 +1873,7 @@ dependencies = [ "cumulus-relay-chain-interface", "futures 0.3.21", "futures-timer", - "jsonrpsee 0.9.0", + "jsonrpsee", "parity-scale-codec", "parking_lot 0.12.0", "polkadot-service", @@ -1862,7 +1891,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -2148,18 +2177,18 @@ dependencies = [ [[package]] name = "enumflags2" -version = "0.6.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c8d82922337cd23a15f88b70d8e4ef5f11da38dd7cdb55e84dd5de99695da0" +checksum = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb" dependencies = [ "enumflags2_derive", ] [[package]] name = "enumflags2_derive" -version = "0.6.4" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" +checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae" dependencies = [ "proc-macro2", "quote", @@ -2246,14 +2275,15 @@ dependencies = [ [[package]] name = "expander" -version = "0.0.5" +version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "309f21c39e8e38e4b6eda07e155bd7a4e5fc4d707cefd0402cc82a8b6bb65aaa" +checksum = "3774182a5df13c3d1690311ad32fbe913feef26baba609fa2dd5f72042bd2ab6" dependencies = [ "blake2 0.10.4", "fs-err", "proc-macro2", "quote", + "syn", ] [[package]] @@ -2387,7 +2417,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "parity-scale-codec", ] @@ -2405,7 +2435,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-support", "frame-system", @@ -2427,13 +2457,14 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "Inflector", "chrono", "clap", "frame-benchmarking", "frame-support", + "frame-system", "handlebars", "hash-db", "hex", @@ -2444,6 +2475,7 @@ dependencies = [ "memory-db", "parity-scale-codec", "rand 0.8.5", + "sc-block-builder", "sc-cli", "sc-client-api", "sc-client-db", @@ -2457,32 +2489,47 @@ dependencies = [ "sp-core", "sp-database", "sp-externalities", + "sp-inherents", "sp-keystore", "sp-runtime", "sp-state-machine", "sp-std", "sp-storage", "sp-trie", + "thousands", +] + +[[package]] +name = "frame-election-provider-solution-type" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ + "frame-election-provider-solution-type", "frame-support", "frame-system", "parity-scale-codec", "scale-info", "sp-arithmetic", "sp-npos-elections", + "sp-runtime", "sp-std", ] [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-support", "frame-system", @@ -2510,7 +2557,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "bitflags", "frame-metadata", @@ -2539,7 +2586,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2551,7 +2598,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.1.3", @@ -2563,7 +2610,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "proc-macro2", "quote", @@ -2573,7 +2620,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-support", "log", @@ -2590,7 +2637,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -2605,7 +2652,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "parity-scale-codec", "sp-api", @@ -2614,7 +2661,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-support", "sp-api", @@ -2928,7 +2975,7 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util", + "tokio-util 0.6.9", "tracing", ] @@ -3250,9 +3297,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223" +checksum = "0f647032dfaa1f8b6dc29bd3edb7bbef4861b8b8007ebb118d6db284fd59f6ee" dependencies = [ "autocfg", "hashbrown 0.11.2", @@ -3477,7 +3524,7 @@ dependencies = [ "log", "tokio", "tokio-stream", - "tokio-util", + "tokio-util 0.6.9", "unicase", ] @@ -3498,109 +3545,43 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373a33d987866ccfe1af4bc11b089dce941764313f9fd8b7cf13fcb51b72dc5" -dependencies = [ - "jsonrpsee-types 0.4.1", - "jsonrpsee-utils", - "jsonrpsee-ws-client 0.4.1", -] - -[[package]] -name = "jsonrpsee" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05fd8cd6c6b1bbd06881d2cf88f1fc83cc36c98f2219090f839115fb4a956cb9" -dependencies = [ - "jsonrpsee-core 0.8.0", - "jsonrpsee-proc-macros", - "jsonrpsee-types 0.8.0", - "jsonrpsee-ws-client 0.8.0", -] - -[[package]] -name = "jsonrpsee" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d0b8cc1959f8c05256ace093b2317482da9127f1d9227564f47e7e6bf9bda8" +checksum = "91dc760c341fa81173f9a434931aaf32baad5552b0230cc6c93e8fb7eaad4c19" dependencies = [ - "jsonrpsee-core 0.9.0", + "jsonrpsee-core", "jsonrpsee-http-client", - "jsonrpsee-types 0.9.0", - "jsonrpsee-ws-client 0.9.0", -] - -[[package]] -name = "jsonrpsee-client-transport" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3303cdf246e6ab76e2866fb3d9acb6c76a068b1b28bd923a1b7a8122257ad7b5" -dependencies = [ - "futures 0.3.21", - "http", - "jsonrpsee-core 0.8.0", - "jsonrpsee-types 0.8.0", - "pin-project 1.0.10", - "rustls-native-certs 0.6.1", - "soketto", - "thiserror", - "tokio", - "tokio-rustls 0.23.3", - "tokio-util", - "tracing", - "webpki-roots 0.22.2", + "jsonrpsee-proc-macros", + "jsonrpsee-types", + "jsonrpsee-ws-client", ] [[package]] name = "jsonrpsee-client-transport" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa370c2c717d798c3c0a315ae3f0a707a388c6963c11f9da7dbbe1d3f7392f5f" +checksum = "765f7a36d5087f74e3b3b47805c2188fef8eb54afcb587b078d9f8ebfe9c7220" dependencies = [ "futures 0.3.21", "http", - "jsonrpsee-core 0.9.0", - "jsonrpsee-types 0.9.0", + "jsonrpsee-core", + "jsonrpsee-types", "pin-project 1.0.10", "rustls-native-certs 0.6.1", "soketto", "thiserror", "tokio", "tokio-rustls 0.23.3", - "tokio-util", + "tokio-util 0.7.1", "tracing", "webpki-roots 0.22.2", ] [[package]] name = "jsonrpsee-core" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f220b5a238dc7992b90f1144fbf6eaa585872c9376afe6fe6863ffead6191bf3" -dependencies = [ - "anyhow", - "arrayvec 0.7.2", - "async-trait", - "beef", - "futures-channel", - "futures-util", - "hyper", - "jsonrpsee-types 0.8.0", - "rustc-hash", - "serde", - "serde_json", - "soketto", - "thiserror", - "tokio", - "tracing", -] - -[[package]] -name = "jsonrpsee-core" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22abc3274b265dcefe2e26c4beecf9fda4fffa48cf94930443a6c73678f020d5" +checksum = "82ef77ecd20c2254d54f5da8c0738eacca61e6b6511268a8f2753e3148c6c706" dependencies = [ "anyhow", "arrayvec 0.7.2", @@ -3609,7 +3590,7 @@ dependencies = [ "futures-channel", "futures-util", "hyper", - "jsonrpsee-types 0.9.0", + "jsonrpsee-types", "rustc-hash", "serde", "serde_json", @@ -3621,15 +3602,15 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d31b837273d09dd80051eefa57d337769dff6c3266108c43a3544ac7ffed9d68" +checksum = "92709e0b8255691f4df954a0176b1cbc3312f151e7ed2e643812e8bd121f1d1c" dependencies = [ "async-trait", "hyper", "hyper-rustls 0.23.0", - "jsonrpsee-core 0.9.0", - "jsonrpsee-types 0.9.0", + "jsonrpsee-core", + "jsonrpsee-types", "rustc-hash", "serde", "serde_json", @@ -3640,9 +3621,9 @@ dependencies = [ [[package]] name = "jsonrpsee-proc-macros" -version = "0.8.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4299ebf790ea9de1cb72e73ff2ae44c723ef264299e5e2d5ef46a371eb3ac3d8" +checksum = "b7291c72805bc7d413b457e50d8ef3e87aa554da65ecbbc278abb7dfc283e7f0" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -3652,42 +3633,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f778cf245158fbd8f5d50823a2e9e4c708a40be164766bd35e9fb1d86715b2" -dependencies = [ - "anyhow", - "async-trait", - "beef", - "futures-channel", - "futures-util", - "hyper", - "log", - "serde", - "serde_json", - "soketto", - "thiserror", -] - -[[package]] -name = "jsonrpsee-types" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1b3f601bbbe45cd63f5407b6f7d7950e08a7d4f82aa699ff41a4a5e9e54df58" -dependencies = [ - "anyhow", - "beef", - "serde", - "serde_json", - "thiserror", - "tracing", -] - -[[package]] -name = "jsonrpsee-types" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f4c45d2e2aa1db4c7d7d7dbaabc10a5b5258d99cd9d42fbfd5260b76f80c324" +checksum = "38b6aa52f322cbf20c762407629b8300f39bcc0cf0619840d9252a2f65fd2dd9" dependencies = [ "anyhow", "beef", @@ -3697,61 +3645,15 @@ dependencies = [ "tracing", ] -[[package]] -name = "jsonrpsee-utils" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0109c4f972058f3b1925b73a17210aff7b63b65967264d0045d15ee88fe84f0c" -dependencies = [ - "arrayvec 0.7.2", - "beef", - "jsonrpsee-types 0.4.1", -] - -[[package]] -name = "jsonrpsee-ws-client" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "559aa56fc402af206c00fc913dc2be1d9d788dcde045d14df141a535245d35ef" -dependencies = [ - "arrayvec 0.7.2", - "async-trait", - "fnv", - "futures 0.3.21", - "http", - "jsonrpsee-types 0.4.1", - "log", - "pin-project 1.0.10", - "rustls-native-certs 0.5.0", - "serde", - "serde_json", - "soketto", - "thiserror", - "tokio", - "tokio-rustls 0.22.0", - "tokio-util", -] - -[[package]] -name = "jsonrpsee-ws-client" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aff425cee7c779e33920913bc695447416078ee6d119f443f3060feffa4e86b5" -dependencies = [ - "jsonrpsee-client-transport 0.8.0", - "jsonrpsee-core 0.8.0", - "jsonrpsee-types 0.8.0", -] - [[package]] name = "jsonrpsee-ws-client" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31b58983485b2b626c276f1eb367d62dae82132451b281072a7bfa536a33ddf3" +checksum = "dd66d18bab78d956df24dd0d2e41e4c00afbb818fda94a98264bdd12ce8506ac" dependencies = [ - "jsonrpsee-client-transport 0.9.0", - "jsonrpsee-core 0.9.0", - "jsonrpsee-types 0.9.0", + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", ] [[package]] @@ -3784,8 +3686,8 @@ dependencies = [ [[package]] name = "kusama-runtime" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "beefy-primitives", "bitvec", @@ -3806,6 +3708,7 @@ dependencies = [ "pallet-bags-list", "pallet-balances", "pallet-bounties", + "pallet-child-bounties", "pallet-collective", "pallet-democracy", "pallet-election-provider-multi-phase", @@ -3872,8 +3775,8 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "frame-support", "polkadot-primitives", @@ -4340,7 +4243,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "lru 0.7.3", + "lru 0.7.5", "rand 0.7.3", "smallvec", "unsigned-varint 0.7.1", @@ -4582,9 +4485,9 @@ dependencies = [ [[package]] name = "lru" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb87f3080f6d1d69e8c564c0fcfde1d7aa8cc451ce40cae89479111f03bc0eb" +checksum = "32613e41de4c47ab04970c348ca7ae7382cf116625755af070b008a15516a889" dependencies = [ "hashbrown 0.11.2", ] @@ -4736,14 +4639,17 @@ dependencies = [ [[package]] name = "metered-channel" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ + "coarsetime", + "crossbeam-queue", "derive_more", "futures 0.3.21", "futures-timer", + "nanorand", "thiserror", - "tracing", + "tracing-gum", ] [[package]] @@ -4969,13 +4875,19 @@ dependencies = [ [[package]] name = "names" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a8690bf09abf659851e58cd666c3d37ac6af07c2bd7a9e332cfba471715775" +checksum = "e7d66043b25d4a6cccb23619d10c19c25304b355a7dccd4a8e11423dd2382146" dependencies = [ "rand 0.8.5", ] +[[package]] +name = "nanorand" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" + [[package]] name = "net2" version = "0.2.37" @@ -5189,7 +5101,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-support", "frame-system", @@ -5205,7 +5117,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-support", "frame-system", @@ -5221,7 +5133,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-support", "frame-system", @@ -5236,7 +5148,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -5260,7 +5172,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5280,7 +5192,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -5295,7 +5207,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "beefy-primitives", "frame-support", @@ -5311,7 +5223,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -5336,7 +5248,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -5354,7 +5266,7 @@ dependencies = [ [[package]] name = "pallet-bridge-dispatch" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "bp-message-dispatch", "bp-runtime", @@ -5371,7 +5283,7 @@ dependencies = [ [[package]] name = "pallet-bridge-grandpa" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "bp-header-chain", "bp-runtime", @@ -5393,7 +5305,7 @@ dependencies = [ [[package]] name = "pallet-bridge-messages" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "bitvec", "bp-message-dispatch", @@ -5411,10 +5323,29 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-child-bounties" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-bounties", + "pallet-treasury", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "frame-benchmarking", "frame-support", @@ -5434,7 +5365,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -5451,7 +5382,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -5467,7 +5398,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5490,7 +5421,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -5508,7 +5439,7 @@ dependencies = [ [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -5523,7 +5454,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -5546,7 +5477,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5562,7 +5493,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -5582,7 +5513,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -5599,7 +5530,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -5616,7 +5547,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5634,7 +5565,7 @@ dependencies = [ [[package]] name = "pallet-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-support", "frame-system", @@ -5650,7 +5581,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5667,7 +5598,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -5682,7 +5613,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-support", "frame-system", @@ -5696,7 +5627,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-support", "frame-system", @@ -5713,7 +5644,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5736,7 +5667,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -5752,7 +5683,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -5767,7 +5698,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-support", "frame-system", @@ -5781,7 +5712,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -5797,7 +5728,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-support", "frame-system", @@ -5818,7 +5749,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -5834,7 +5765,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-support", "frame-system", @@ -5848,7 +5779,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5871,7 +5802,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -5882,7 +5813,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "log", "sp-arithmetic", @@ -5891,7 +5822,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-support", "frame-system", @@ -5920,7 +5851,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -5938,7 +5869,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -5957,7 +5888,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-support", "frame-system", @@ -5974,7 +5905,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5991,7 +5922,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6002,7 +5933,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -6019,7 +5950,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -6035,7 +5966,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-benchmarking", "frame-support", @@ -6049,8 +5980,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "frame-support", "frame-system", @@ -6067,8 +5998,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "frame-benchmarking", "frame-support", @@ -6085,7 +6016,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.18#4d37f94a5ec3d045b70ad33cd3897383c7a858e5" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -6575,8 +6506,8 @@ checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "futures 0.3.21", "polkadot-node-network-protocol", @@ -6584,31 +6515,31 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "futures 0.3.21", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-availability-distribution" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "derive_more", "fatality", "futures 0.3.21", - "lru 0.7.3", + "lru 0.7.5", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6620,17 +6551,17 @@ dependencies = [ "sp-core", "sp-keystore", "thiserror", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-availability-recovery" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "fatality", "futures 0.3.21", - "lru 0.7.3", + "lru 0.7.5", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6641,18 +6572,19 @@ dependencies = [ "rand 0.8.5", "sc-network", "thiserror", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-cli" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "clap", "frame-benchmarking-cli", "futures 0.3.21", "log", + "polkadot-client", "polkadot-node-core-pvf", "polkadot-node-metrics", "polkadot-performance-test", @@ -6669,16 +6601,22 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "beefy-primitives", "frame-benchmarking", + "frame-benchmarking-cli", + "frame-system", "frame-system-rpc-runtime-api", "pallet-mmr-primitives", + "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", + "polkadot-core-primitives", + "polkadot-node-core-parachains-inherent", "polkadot-primitives", "polkadot-runtime", + "polkadot-runtime-common", "sc-client-api", "sc-consensus", "sc-executor", @@ -6689,18 +6627,22 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-babe", + "sp-core", "sp-finality-grandpa", + "sp-inherents", + "sp-keyring", "sp-offchain", "sp-runtime", "sp-session", "sp-storage", + "sp-timestamp", "sp-transaction-pool", ] [[package]] name = "polkadot-collator-protocol" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "always-assert", "fatality", @@ -6715,13 +6657,13 @@ dependencies = [ "sp-keystore", "sp-runtime", "thiserror", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-core-primitives" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -6733,13 +6675,13 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "derive_more", "fatality", "futures 0.3.21", - "lru 0.7.3", + "lru 0.7.5", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6751,13 +6693,13 @@ dependencies = [ "sp-application-crypto", "sp-keystore", "thiserror", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-erasure-coding" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6770,8 +6712,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "futures 0.3.21", "futures-timer", @@ -6785,13 +6727,13 @@ dependencies = [ "sp-application-crypto", "sp-core", "sp-keystore", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-network-bridge" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "async-trait", "futures 0.3.21", @@ -6804,13 +6746,13 @@ dependencies = [ "polkadot-primitives", "sc-network", "sp-consensus", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-node-collation-generation" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "futures 0.3.21", "parity-scale-codec", @@ -6822,20 +6764,20 @@ dependencies = [ "sp-core", "sp-maybe-compressed-blob", "thiserror", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "bitvec", "derive_more", "futures 0.3.21", "futures-timer", "kvdb", - "lru 0.7.3", + "lru 0.7.5", "merlin", "parity-scale-codec", "polkadot-node-jaeger", @@ -6850,13 +6792,14 @@ dependencies = [ "sp-consensus", "sp-consensus-slots", "sp-runtime", - "tracing", + "thiserror", + "tracing-gum", ] [[package]] name = "polkadot-node-core-av-store" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "bitvec", "futures 0.3.21", @@ -6870,13 +6813,13 @@ dependencies = [ "polkadot-overseer", "polkadot-primitives", "thiserror", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-node-core-backing" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "bitvec", "futures 0.3.21", @@ -6888,13 +6831,13 @@ dependencies = [ "polkadot-statement-table", "sp-keystore", "thiserror", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "futures 0.3.21", "polkadot-node-subsystem", @@ -6902,14 +6845,14 @@ dependencies = [ "polkadot-primitives", "sp-keystore", "thiserror", - "tracing", + "tracing-gum", "wasm-timer", ] [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "async-trait", "futures 0.3.21", @@ -6921,13 +6864,13 @@ dependencies = [ "polkadot-parachain", "polkadot-primitives", "sp-maybe-compressed-blob", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "futures 0.3.21", "polkadot-node-subsystem", @@ -6936,13 +6879,13 @@ dependencies = [ "sc-client-api", "sc-consensus-babe", "sp-blockchain", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "futures 0.3.21", "futures-timer", @@ -6953,18 +6896,18 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "thiserror", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "fatality", "futures 0.3.21", "kvdb", - "lru 0.7.3", + "lru 0.7.5", "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -6972,13 +6915,13 @@ dependencies = [ "polkadot-primitives", "sc-keystore", "thiserror", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "async-trait", "futures 0.3.21", @@ -6989,13 +6932,13 @@ dependencies = [ "sp-inherents", "sp-runtime", "thiserror", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "bitvec", "futures 0.3.21", @@ -7006,13 +6949,13 @@ dependencies = [ "polkadot-primitives", "rand 0.8.5", "thiserror", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "always-assert", "assert_matches", @@ -7036,13 +6979,13 @@ dependencies = [ "sp-maybe-compressed-blob", "sp-tracing", "sp-wasm-interface", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "futures 0.3.21", "polkadot-node-primitives", @@ -7052,13 +6995,13 @@ dependencies = [ "polkadot-primitives", "sp-keystore", "thiserror", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "futures 0.3.21", "memory-lru", @@ -7070,13 +7013,13 @@ dependencies = [ "sp-authority-discovery", "sp-consensus-babe", "sp-core", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-node-jaeger" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "async-std", "lazy_static", @@ -7093,8 +7036,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "bs58", "futures 0.3.21", @@ -7107,13 +7050,13 @@ dependencies = [ "sc-service", "sc-tracing", "substrate-prometheus-endpoint", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-node-network-protocol" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "async-trait", "fatality", @@ -7130,8 +7073,8 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "bounded-vec", "futures 0.3.21", @@ -7152,8 +7095,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -7162,8 +7105,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "derive_more", "futures 0.3.21", @@ -7181,8 +7124,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "async-trait", "derive_more", @@ -7190,7 +7133,7 @@ dependencies = [ "futures 0.3.21", "itertools", "kvdb", - "lru 0.7.3", + "lru 0.7.5", "metered-channel", "parity-db", "parity-scale-codec", @@ -7209,17 +7152,17 @@ dependencies = [ "sp-core", "sp-keystore", "thiserror", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-overseer" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "futures 0.3.21", "futures-timer", - "lru 0.7.3", + "lru 0.7.5", "parity-util-mem", "parking_lot 0.12.0", "polkadot-node-metrics", @@ -7230,13 +7173,13 @@ dependencies = [ "polkadot-primitives", "sc-client-api", "sp-api", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-overseer-gen" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "async-trait", "futures 0.3.21", @@ -7247,15 +7190,15 @@ dependencies = [ "polkadot-node-primitives", "polkadot-overseer-gen-proc-macro", "thiserror", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-overseer-gen-proc-macro" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ - "expander 0.0.5", + "expander 0.0.6", "proc-macro-crate 1.1.3", "proc-macro2", "quote", @@ -7264,8 +7207,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "derive_more", "frame-support", @@ -7281,8 +7224,8 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "env_logger", "kusama-runtime", @@ -7296,8 +7239,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "bitvec", "frame-system", @@ -7326,8 +7269,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -7353,12 +7296,13 @@ dependencies = [ "sp-keystore", "sp-runtime", "substrate-frame-rpc-system", + "substrate-state-trie-migration-rpc", ] [[package]] name = "polkadot-runtime" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "beefy-primitives", "bitvec", @@ -7378,6 +7322,7 @@ dependencies = [ "pallet-bags-list", "pallet-balances", "pallet-bounties", + "pallet-child-bounties", "pallet-collective", "pallet-democracy", "pallet-election-provider-multi-phase", @@ -7441,8 +7386,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "beefy-primitives", "bitvec", @@ -7488,8 +7433,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "frame-support", "polkadot-primitives", @@ -7500,8 +7445,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "bs58", "parity-scale-codec", @@ -7512,8 +7457,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "bitflags", "bitvec", @@ -7539,6 +7484,7 @@ dependencies = [ "scale-info", "serde", "sp-api", + "sp-application-crypto", "sp-core", "sp-inherents", "sp-io", @@ -7554,8 +7500,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "async-trait", "beefy-gadget", @@ -7566,7 +7512,7 @@ dependencies = [ "kusama-runtime", "kvdb", "kvdb-rocksdb", - "lru 0.7.3", + "lru 0.7.5", "pallet-babe", "pallet-im-online", "pallet-mmr-primitives", @@ -7649,14 +7595,14 @@ dependencies = [ "sp-trie", "substrate-prometheus-endpoint", "thiserror", - "tracing", + "tracing-gum", "westend-runtime", ] [[package]] name = "polkadot-statement-distribution" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "arrayvec 0.5.2", "fatality", @@ -7671,13 +7617,13 @@ dependencies = [ "sp-keystore", "sp-staking", "thiserror", - "tracing", + "tracing-gum", ] [[package]] name = "polkadot-statement-table" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7784,9 +7730,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" +checksum = "ec757218438d5fda206afc041538b2f6d889286160d649a86a24d37e1235afd1" dependencies = [ "unicode-xid", ] @@ -7892,9 +7838,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.16" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4af2ec4714533fcdf07e886f17025ace8b997b9ce51204ee69b6da831c3da57" +checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1" dependencies = [ "proc-macro2", ] @@ -8132,10 +8078,10 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "env_logger", - "jsonrpsee 0.8.0", + "jsonrpsee", "log", "parity-scale-codec", "serde", @@ -8198,9 +8144,10 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ + "beefy-merkle-tree", "beefy-primitives", "bp-messages", "bp-rococo", @@ -8211,6 +8158,7 @@ dependencies = [ "frame-executive", "frame-support", "frame-system", + "frame-system-benchmarking", "frame-system-rpc-runtime-api", "hex-literal", "log", @@ -8273,8 +8221,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "frame-support", "polkadot-primitives", @@ -8445,7 +8393,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "log", "sp-core", @@ -8456,7 +8404,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "async-trait", "futures 0.3.21", @@ -8483,7 +8431,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "futures 0.3.21", "futures-timer", @@ -8506,7 +8454,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8522,7 +8470,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "impl-trait-for-tuples", "memmap2 0.5.3", @@ -8539,7 +8487,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -8550,7 +8498,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "chrono", "clap", @@ -8588,7 +8536,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "fnv", "futures 0.3.21", @@ -8616,7 +8564,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "hash-db", "kvdb", @@ -8641,7 +8589,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "async-trait", "futures 0.3.21", @@ -8665,7 +8613,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "async-trait", "futures 0.3.21", @@ -8694,7 +8642,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "async-trait", "fork-tree", @@ -8737,7 +8685,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "futures 0.3.21", "jsonrpc-core", @@ -8761,7 +8709,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8774,7 +8722,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "async-trait", "futures 0.3.21", @@ -8799,7 +8747,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "sc-client-api", "sp-authorship", @@ -8810,10 +8758,10 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "lazy_static", - "lru 0.6.6", + "lru 0.7.5", "parity-scale-codec", "parking_lot 0.12.0", "sc-executor-common", @@ -8837,7 +8785,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "environmental", "parity-scale-codec", @@ -8854,7 +8802,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "log", "parity-scale-codec", @@ -8870,7 +8818,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "cfg-if 1.0.0", "libc", @@ -8888,7 +8836,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "ahash", "async-trait", @@ -8928,7 +8876,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "finality-grandpa", "futures 0.3.21", @@ -8952,7 +8900,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "ansi_term", "futures 0.3.21", @@ -8969,7 +8917,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "async-trait", "hex", @@ -8984,7 +8932,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "async-trait", "asynchronous-codec 0.5.0", @@ -9002,7 +8950,7 @@ dependencies = [ "linked-hash-map", "linked_hash_set", "log", - "lru 0.7.3", + "lru 0.7.5", "parity-scale-codec", "parking_lot 0.12.0", "pin-project 1.0.10", @@ -9033,14 +8981,14 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "ahash", "futures 0.3.21", "futures-timer", "libp2p", "log", - "lru 0.7.3", + "lru 0.7.5", "sc-network", "sp-runtime", "substrate-prometheus-endpoint", @@ -9050,7 +8998,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "bytes 1.1.0", "fnv", @@ -9078,7 +9026,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "futures 0.3.21", "libp2p", @@ -9091,7 +9039,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -9100,7 +9048,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "futures 0.3.21", "hash-db", @@ -9131,7 +9079,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "futures 0.3.21", "jsonrpc-core", @@ -9143,6 +9091,7 @@ dependencies = [ "parking_lot 0.12.0", "sc-chain-spec", "sc-transaction-pool-api", + "scale-info", "serde", "serde_json", "sp-core", @@ -9156,7 +9105,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "futures 0.3.21", "jsonrpc-core", @@ -9173,7 +9122,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "async-trait", "directories", @@ -9237,7 +9186,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "log", "parity-scale-codec", @@ -9251,7 +9200,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -9272,7 +9221,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "chrono", "futures 0.3.21", @@ -9290,7 +9239,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "ansi_term", "atty", @@ -9321,7 +9270,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -9332,7 +9281,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "futures 0.3.21", "futures-timer", @@ -9359,7 +9308,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "futures 0.3.21", "log", @@ -9372,7 +9321,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "futures 0.3.21", "futures-timer", @@ -9384,9 +9333,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0563970d79bcbf3c537ce3ad36d859b30d36fc5b190efd227f1f7a84d7cf0d42" +checksum = "8980cafbe98a7ee7a9cc16b32ebce542c77883f512d83fbf2ddc8f6a85ea74c9" dependencies = [ "bitvec", "cfg-if 1.0.0", @@ -9398,9 +9347,9 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7805950c36512db9e3251c970bb7ac425f326716941862205d612ab3b5e46e2" +checksum = "4260c630e8a8a33429d1688eff2f163f24c65a4e1b1578ef6b565061336e4b6f" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -9759,8 +9708,8 @@ checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" [[package]] name = "slot-range-helper" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "enumn", "parity-scale-codec", @@ -9848,7 +9797,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "hash-db", "log", @@ -9865,7 +9814,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "blake2 0.10.4", "proc-macro-crate 1.1.3", @@ -9877,7 +9826,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "parity-scale-codec", "scale-info", @@ -9890,7 +9839,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "integer-sqrt", "num-traits", @@ -9905,7 +9854,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "parity-scale-codec", "scale-info", @@ -9918,7 +9867,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "async-trait", "parity-scale-codec", @@ -9930,7 +9879,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "parity-scale-codec", "sp-api", @@ -9942,11 +9891,11 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "futures 0.3.21", "log", - "lru 0.7.3", + "lru 0.7.5", "parity-scale-codec", "parking_lot 0.12.0", "sp-api", @@ -9960,7 +9909,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "async-trait", "futures 0.3.21", @@ -9979,7 +9928,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "async-trait", "parity-scale-codec", @@ -9997,7 +9946,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "async-trait", "merlin", @@ -10020,7 +9969,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "parity-scale-codec", "scale-info", @@ -10034,7 +9983,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -10046,7 +9995,7 @@ dependencies = [ [[package]] name = "sp-core" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "base58", "bitflags", @@ -10092,7 +10041,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "blake2 0.10.4", "byteorder", @@ -10106,7 +10055,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "proc-macro2", "quote", @@ -10117,7 +10066,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "kvdb", "parking_lot 0.12.0", @@ -10126,7 +10075,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "proc-macro2", "quote", @@ -10136,7 +10085,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "environmental", "parity-scale-codec", @@ -10147,7 +10096,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "finality-grandpa", "log", @@ -10165,7 +10114,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -10179,7 +10128,7 @@ dependencies = [ [[package]] name = "sp-io" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "futures 0.3.21", "hash-db", @@ -10204,7 +10153,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "lazy_static", "sp-core", @@ -10215,7 +10164,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "async-trait", "futures 0.3.21", @@ -10232,7 +10181,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "thiserror", "zstd", @@ -10241,33 +10190,21 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "parity-scale-codec", "scale-info", "serde", "sp-arithmetic", "sp-core", - "sp-npos-elections-solution-type", "sp-runtime", "sp-std", ] -[[package]] -name = "sp-npos-elections-solution-type" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" -dependencies = [ - "proc-macro-crate 1.1.3", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "sp-api", "sp-core", @@ -10277,7 +10214,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "backtrace", "lazy_static", @@ -10287,7 +10224,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "rustc-hash", "serde", @@ -10297,7 +10234,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "either", "hash256-std-hasher", @@ -10319,7 +10256,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -10336,7 +10273,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "Inflector", "proc-macro-crate 1.1.3", @@ -10348,7 +10285,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "serde", "serde_json", @@ -10357,7 +10294,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "parity-scale-codec", "scale-info", @@ -10371,7 +10308,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "parity-scale-codec", "scale-info", @@ -10382,7 +10319,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "hash-db", "log", @@ -10398,19 +10335,18 @@ dependencies = [ "sp-trie", "thiserror", "tracing", - "trie-db", "trie-root", ] [[package]] name = "sp-std" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" [[package]] name = "sp-storage" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10423,7 +10359,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "log", "sp-core", @@ -10436,7 +10372,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "async-trait", "futures-timer", @@ -10452,7 +10388,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "parity-scale-codec", "sp-std", @@ -10464,7 +10400,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "sp-api", "sp-runtime", @@ -10473,7 +10409,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "async-trait", "log", @@ -10489,7 +10425,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "hash-db", "memory-db", @@ -10505,7 +10441,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10522,7 +10458,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10533,7 +10469,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "impl-trait-for-tuples", "log", @@ -10690,7 +10626,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "platforms", ] @@ -10698,7 +10634,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.21", @@ -10720,7 +10656,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "futures-util", "hyper", @@ -10730,10 +10666,33 @@ dependencies = [ "tokio", ] +[[package]] +name = "substrate-state-trie-migration-rpc" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +dependencies = [ + "jsonrpc-core", + "jsonrpc-core-client", + "jsonrpc-derive", + "log", + "parity-scale-codec", + "sc-client-api", + "sc-rpc-api", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", + "trie-db", +] + [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "ansi_term", "build-helper", @@ -10754,9 +10713,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.89" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea297be220d52398dcc07ce15a209fce436d361735ac1db700cab3b6cdfb9f54" +checksum = "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d" dependencies = [ "proc-macro2", "quote", @@ -10836,6 +10795,12 @@ dependencies = [ "syn", ] +[[package]] +name = "thousands" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" + [[package]] name = "thread_local" version = "1.1.4" @@ -10995,13 +10960,26 @@ checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" dependencies = [ "bytes 1.1.0", "futures-core", - "futures-io", "futures-sink", "log", "pin-project-lite 0.2.8", "tokio", ] +[[package]] +name = "tokio-util" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0edfdeb067411dba2044da6d1cb2df793dd35add7888d73c16e3381ded401764" +dependencies = [ + "bytes 1.1.0", + "futures-core", + "futures-io", + "futures-sink", + "pin-project-lite 0.2.8", + "tokio", +] + [[package]] name = "toml" version = "0.5.8" @@ -11019,9 +10997,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.32" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a1bdf54a7c28a2bbf701e1d2233f6c77f473486b94bee4f9678da5a148dca7f" +checksum = "5d0ecdcb44a79f0fe9844f0c4f33a342cbcbb5117de8001e6ba0dc2351327d09" dependencies = [ "cfg-if 1.0.0", "pin-project-lite 0.2.8", @@ -11060,6 +11038,29 @@ dependencies = [ "tracing", ] +[[package]] +name = "tracing-gum" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +dependencies = [ + "polkadot-node-jaeger", + "polkadot-primitives", + "tracing", + "tracing-gum-proc-macro", +] + +[[package]] +name = "tracing-gum-proc-macro" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +dependencies = [ + "expander 0.0.6", + "proc-macro-crate 1.1.3", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "tracing-log" version = "0.1.2" @@ -11178,10 +11179,10 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.18#fc3fd073d3a0acf9933c3994b660ebd7b5833f65" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" dependencies = [ "clap", - "jsonrpsee 0.4.1", + "jsonrpsee", "log", "parity-scale-codec", "remote-externalities", @@ -11769,8 +11770,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "beefy-primitives", "bitvec", @@ -11855,8 +11856,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "frame-support", "polkadot-primitives", @@ -12009,8 +12010,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -12022,8 +12023,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "frame-support", "frame-system", @@ -12042,8 +12043,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.18" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +version = "0.9.19" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "frame-benchmarking", "frame-support", @@ -12061,7 +12062,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.18#ef71ed8baef3007b039cdf040d24f5958edb390b" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" dependencies = [ "Inflector", "proc-macro2", diff --git a/node/Cargo.toml b/node/Cargo.toml index 5d974e1a..3877593d 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -16,7 +16,7 @@ path = "src/main.rs" [dependencies] clap = { version = "3.1", features = ["derive"] } derive_more = "0.99.2" -log = "0.4.14" +log = "0.4.16" codec = { package = "parity-scale-codec", version = "3.0.0" } serde = { version = "1.0.132", features = ["derive"] } hex-literal = "0.3.4" @@ -26,65 +26,66 @@ jsonrpc-core = "18.0.0" parachain-template-runtime = { path = "../runtime" } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18", features = ["wasmtime"] } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18", features = ["wasmtime"] } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18", features = ["wasmtime"] } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"], branch = "polkadot-v0.9.19" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"], branch = "polkadot-v0.9.19" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"], branch = "polkadot-v0.9.19" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.18" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.18" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.18" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.18" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.18" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.19" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.19" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.19" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.19" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.19" } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } -cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } -cumulus-primitives-core ={ git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } -cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.18" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } +cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } +cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } +cumulus-primitives-core ={ git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } +cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } [features] +default = [] runtime-benchmarks = [ "parachain-template-runtime/runtime-benchmarks", "polkadot-cli/runtime-benchmarks", diff --git a/node/src/cli.rs b/node/src/cli.rs index b7cc6134..b2e7019f 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -34,8 +34,9 @@ pub enum Subcommand { /// Revert the chain to a previous state. Revert(sc_cli::RevertCmd), - /// The custom benchmark subcommmand benchmarking runtime pallets. - #[clap(name = "benchmark", about = "Benchmark runtime pallets.")] + /// Sub-commands concerned with benchmarking. + /// The pallet benchmarking moved to the `pallet` sub-command. + #[clap(subcommand)] Benchmark(frame_benchmarking_cli::BenchmarkCmd), /// Try some testing command against a specified runtime state. diff --git a/node/src/command.rs b/node/src/command.rs index 9f3124a3..24f22a71 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -6,6 +6,7 @@ use crate::{ use codec::Encode; use cumulus_client_service::genesis::generate_genesis_block; use cumulus_primitives_core::ParaId; +use frame_benchmarking_cli::BenchmarkCmd; use log::info; use parachain_template_runtime::{Block, RuntimeApi}; use polkadot_parachain::primitives::AccountIdConversion; @@ -184,7 +185,7 @@ pub fn run() -> Result<()> { }, Some(Subcommand::Revert(cmd)) => { construct_async_run!(|components, cli, cmd, config| { - Ok(cmd.run(components.client, components.backend)) + Ok(cmd.run(components.client, components.backend, None)) }) }, Some(Subcommand::ExportGenesisState(params)) => { @@ -231,16 +232,38 @@ pub fn run() -> Result<()> { Ok(()) }, - Some(Subcommand::Benchmark(cmd)) => - if cfg!(feature = "runtime-benchmarks") { - let runner = cli.create_runner(cmd)?; - - runner.sync_run(|config| cmd.run::(config)) - } else { - Err("Benchmarking wasn't enabled when building the node. \ - You can enable it with `--features runtime-benchmarks`." - .into()) - }, + Some(Subcommand::Benchmark(cmd)) => { + let runner = cli.create_runner(cmd)?; + // Switch on the concrete benchmark sub-command- + match cmd { + BenchmarkCmd::Pallet(cmd) => + if cfg!(feature = "runtime-benchmarks") { + runner.sync_run(|config| cmd.run::(config)) + } else { + Err("Benchmarking wasn't enabled when building the node. \ + You can enable it with `--features runtime-benchmarks`." + .into()) + }, + BenchmarkCmd::Block(cmd) => runner.sync_run(|config| { + let partials = new_partial::( + &config, + crate::service::parachain_build_import_queue, + )?; + cmd.run(partials.client) + }), + BenchmarkCmd::Storage(cmd) => runner.sync_run(|config| { + let partials = new_partial::( + &config, + crate::service::parachain_build_import_queue, + )?; + let db = partials.backend.expose_db(); + let storage = partials.backend.expose_storage(); + + cmd.run(config, partials.client.clone(), db, storage) + }), + BenchmarkCmd::Overhead(_) => Err("Unsupported benchmarking command".into()), + } + }, Some(Subcommand::TryRuntime(cmd)) => { if cfg!(feature = "try-runtime") { let runner = cli.create_runner(cmd)?; @@ -275,7 +298,7 @@ pub fn run() -> Result<()> { let id = ParaId::from(para_id); let parachain_account = - AccountIdConversion::::into_account(&id); + AccountIdConversion::::into_account(&id); let state_version = RelayChainCli::native_runtime_version(&config.chain_spec).state_version(); diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 5c473a4d..749a4a0a 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -16,17 +16,17 @@ codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive scale-info = { version = "2.0.0", default-features = false, features = ["derive"] } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.18" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.19" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } [dev-dependencies] serde = { version = "1.0.132" } # Substrate -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } [features] default = ["std"] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 8598c473..b84c32b8 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,13 +12,13 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.18" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } hex-literal = { version = "0.3.4", optional = true } -log = { version = "0.4.14", default-features = false } -scale-info = { version = "2.0.0", default-features = false, features = ["derive"] } +log = { version = "0.4.16", default-features = false } +scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } serde = { version = "1.0.132", optional = true, features = ["derive"] } smallvec = "1.6.1" @@ -26,54 +26,54 @@ smallvec = "1.6.1" pallet-template = { path = "../pallets/template", default-features = false } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.18" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.18" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.18" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.18" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.19" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.19" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.19" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.18" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.18" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.18" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.18" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.18" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.18" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.19" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.19" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.19" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.19" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.19" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.19" } # Cumulus -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } -cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } -parachain-info = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.18" } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19" } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19" } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19" } +cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19", version = "3.0.0"} +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19" } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19" } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19" } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19" } +pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19" } +parachain-info = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19" } [features] default = [ diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 11eb36d3..887de0b0 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -6,6 +6,7 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +mod weights; pub mod xcm_config; use smallvec::smallvec; @@ -27,9 +28,8 @@ use frame_support::{ construct_runtime, parameter_types, traits::Everything, weights::{ - constants::{BlockExecutionWeight, ExtrinsicBaseWeight, WEIGHT_PER_SECOND}, - DispatchClass, Weight, WeightToFeeCoefficient, WeightToFeeCoefficients, - WeightToFeePolynomial, + constants::WEIGHT_PER_SECOND, ConstantMultiplier, DispatchClass, Weight, + WeightToFeeCoefficient, WeightToFeeCoefficients, WeightToFeePolynomial, }, PalletId, }; @@ -44,8 +44,10 @@ use xcm_config::{XcmConfig, XcmOriginToTransactDispatchOrigin}; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; -// Polkadot Imports -use polkadot_runtime_common::{BlockHashCount, RocksDbWeight, SlowAdjustingFeeUpdate}; +// Polkadot imports +use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; + +use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; // XCM Imports use xcm::latest::prelude::BodyId; @@ -352,8 +354,8 @@ parameter_types! { impl pallet_transaction_payment::Config for Runtime { type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter; - type TransactionByteFee = TransactionByteFee; type WeightToFee = WeightToFee; + type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; type OperationalFeeMultiplier = OperationalFeeMultiplier; } diff --git a/runtime/src/xcm_config.rs b/runtime/src/xcm_config.rs index 00d65997..3c77efba 100644 --- a/runtime/src/xcm_config.rs +++ b/runtime/src/xcm_config.rs @@ -2,8 +2,9 @@ use super::{ AccountId, Balances, Call, Event, Origin, ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, WeightToFee, XcmpQueue, }; +use core::marker::PhantomData; use frame_support::{ - match_type, parameter_types, + log, match_types, parameter_types, traits::{Everything, Nothing}, weights::Weight, }; @@ -18,7 +19,7 @@ use xcm_builder::{ SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, }; -use xcm_executor::XcmExecutor; +use xcm_executor::{traits::ShouldExecute, XcmExecutor}; parameter_types! { pub const RelayLocation: MultiLocation = MultiLocation::parent(); @@ -80,19 +81,85 @@ parameter_types! { pub const MaxInstructions: u32 = 100; } -match_type! { +match_types! { pub type ParentOrParentsExecutivePlurality: impl Contains = { MultiLocation { parents: 1, interior: Here } | MultiLocation { parents: 1, interior: X1(Plurality { id: BodyId::Executive, .. }) } }; } -pub type Barrier = ( - TakeWeightCredit, - AllowTopLevelPaidExecutionFrom, - AllowUnpaidExecutionFrom, - // ^^^ Parent and its exec plurality get free execution -); +//TODO: move DenyThenTry to polkadot's xcm module. +/// Deny executing the xcm message if it matches any of the Deny filter regardless of anything else. +/// If it passes the Deny, and matches one of the Allow cases then it is let through. +pub struct DenyThenTry(PhantomData, PhantomData) +where + Deny: ShouldExecute, + Allow: ShouldExecute; + +impl ShouldExecute for DenyThenTry +where + Deny: ShouldExecute, + Allow: ShouldExecute, +{ + fn should_execute( + origin: &MultiLocation, + message: &mut Xcm, + max_weight: Weight, + weight_credit: &mut Weight, + ) -> Result<(), ()> { + Deny::should_execute(origin, message, max_weight, weight_credit)?; + Allow::should_execute(origin, message, max_weight, weight_credit) + } +} + +// See issue #5233 +pub struct DenyReserveTransferToRelayChain; +impl ShouldExecute for DenyReserveTransferToRelayChain { + fn should_execute( + origin: &MultiLocation, + message: &mut Xcm, + _max_weight: Weight, + _weight_credit: &mut Weight, + ) -> Result<(), ()> { + if message.0.iter().any(|inst| { + matches!( + inst, + InitiateReserveWithdraw { + reserve: MultiLocation { parents: 1, interior: Here }, + .. + } | DepositReserveAsset { dest: MultiLocation { parents: 1, interior: Here }, .. } | + TransferReserveAsset { + dest: MultiLocation { parents: 1, interior: Here }, + .. + } + ) + }) { + return Err(()) // Deny + } + + // allow reserve transfers to arrive from relay chain + if matches!(origin, MultiLocation { parents: 1, interior: Here }) && + message.0.iter().any(|inst| matches!(inst, ReserveAssetDeposited { .. })) + { + log::warn!( + target: "xcm::barriers", + "Unexpected ReserveAssetDeposited from the relay chain", + ); + } + // Permit everything else + Ok(()) + } +} + +pub type Barrier = DenyThenTry< + DenyReserveTransferToRelayChain, + ( + TakeWeightCredit, + AllowTopLevelPaidExecutionFrom, + AllowUnpaidExecutionFrom, + // ^^^ Parent and its exec plurality get free execution + ), +>; pub struct XcmConfig; impl xcm_executor::Config for XcmConfig { From f8c4e6f040e0d74f020576f974fb98bfc2df05cb Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Wed, 4 May 2022 14:46:18 -0600 Subject: [PATCH 53/91] update to polkadot-v0.9.20 upstream (#110) --- Cargo.lock | 1414 ++++++++++++++++++++--------------- node/Cargo.toml | 102 +-- node/src/command.rs | 1 + pallets/template/Cargo.toml | 12 +- runtime/Cargo.toml | 90 +-- 5 files changed, 916 insertions(+), 703 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 63b505cc..239a8cfb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -68,7 +68,7 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.5", + "getrandom 0.2.6", "once_cell", "version_check", ] @@ -99,9 +99,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.56" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4361135be9122e0870de935d7c439aef945b9f9ddd4199a553b5270b49c82a27" +checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc" [[package]] name = "approx" @@ -188,9 +188,9 @@ dependencies = [ [[package]] name = "async-global-executor" -version = "2.0.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c026b7e44f1316b567ee750fea85103f87fcb80792b860e979f221259796ca0a" +checksum = "c290043c9a95b05d45e952fb6383c67bcb61471f60cfa21e890dba6654234f43" dependencies = [ "async-channel", "async-executor", @@ -241,9 +241,9 @@ dependencies = [ [[package]] name = "async-process" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83137067e3a2a6a06d67168e49e68a0957d215410473a740cea95a2425c0b7c6" +checksum = "cf2c06e30a24e8c78a3987d07f0930edf76ef35e027e7bdb063fccafdad1f60c" dependencies = [ "async-io", "blocking", @@ -278,7 +278,7 @@ dependencies = [ "memchr", "num_cpus", "once_cell", - "pin-project-lite 0.2.8", + "pin-project-lite 0.2.9", "pin-utils", "slab", "wasm-bindgen-futures", @@ -325,7 +325,7 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.8", + "pin-project-lite 0.2.9", ] [[package]] @@ -338,7 +338,7 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.8", + "pin-project-lite 0.2.9", ] [[package]] @@ -380,33 +380,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" dependencies = [ "futures-core", - "getrandom 0.2.5", + "getrandom 0.2.6", "instant", - "pin-project-lite 0.2.8", + "pin-project-lite 0.2.9", "rand 0.8.5", "tokio", ] [[package]] name = "backtrace" -version = "0.3.64" +version = "0.3.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e121dee8023ce33ab248d9ce1493df03c3b38a659b240096fcbd7048ff9c31f" +checksum = "11a17d453482a265fd5f8479f2a3f405566e6ca627837aaddb85af8b1ab8ef61" dependencies = [ "addr2line", "cc", "cfg-if 1.0.0", "libc", "miniz_oxide", - "object", + "object 0.28.3", "rustc-demangle", ] [[package]] name = "base-x" -version = "0.2.8" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" +checksum = "dc19a4937b4fbd3fe3379793130e42060d10627a360f2127802b10b87e7baf74" [[package]] name = "base16ct" @@ -428,9 +428,9 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "base64ct" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71acf5509fc522cce1b100ac0121c635129bfd4d91cdf036bcc9b9935f97ccf5" +checksum = "dea908e7347a8c64e378c17e30ef880ad73e3b4498346b055c2c00ea342f3179" [[package]] name = "beef" @@ -444,7 +444,7 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "beefy-primitives", "fnv", @@ -468,6 +468,7 @@ dependencies = [ "sp-consensus", "sp-core", "sp-keystore", + "sp-mmr-primitives", "sp-runtime", "substrate-prometheus-endpoint", "thiserror", @@ -477,7 +478,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -500,12 +501,12 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "parity-scale-codec", "scale-info", @@ -721,7 +722,7 @@ dependencies = [ [[package]] name = "bp-header-chain" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "bp-runtime", "finality-grandpa", @@ -738,7 +739,7 @@ dependencies = [ [[package]] name = "bp-message-dispatch" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "bp-runtime", "frame-support", @@ -750,7 +751,7 @@ dependencies = [ [[package]] name = "bp-messages" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "bitvec", "bp-runtime", @@ -767,7 +768,7 @@ dependencies = [ [[package]] name = "bp-polkadot-core" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "bp-messages", "bp-runtime", @@ -785,7 +786,7 @@ dependencies = [ [[package]] name = "bp-rococo" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -802,7 +803,7 @@ dependencies = [ [[package]] name = "bp-runtime" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "frame-support", "hash-db", @@ -820,7 +821,7 @@ dependencies = [ [[package]] name = "bp-test-utils" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "bp-header-chain", "ed25519-dalek", @@ -835,7 +836,7 @@ dependencies = [ [[package]] name = "bp-wococo" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -850,7 +851,7 @@ dependencies = [ [[package]] name = "bridge-runtime-common" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "bp-message-dispatch", "bp-messages", @@ -884,7 +885,10 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" dependencies = [ + "lazy_static", "memchr", + "regex-automata", + "serde", ] [[package]] @@ -979,7 +983,7 @@ checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" dependencies = [ "camino", "cargo-platform", - "semver 1.0.6", + "semver 1.0.9", "serde", "serde_json", ] @@ -1100,16 +1104,16 @@ dependencies = [ [[package]] name = "clap" -version = "3.1.6" +version = "3.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8c93436c21e4698bacadf42917db28b23017027a4deccb35dbe47a7e7840123" +checksum = "85a35a599b11c089a7f49105658d089b8f2cf0882993c17daf6de15285c2c35d" dependencies = [ "atty", "bitflags", "clap_derive", + "clap_lex", "indexmap", "lazy_static", - "os_str_bytes", "strsim", "termcolor", "textwrap", @@ -1117,9 +1121,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "3.1.4" +version = "3.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da95d038ede1a964ce99f49cbe27a7fb538d1da595e4b4f70b8c8f338d17bf16" +checksum = "a3aab4734e083b809aaf5794e14e756d1c798d2c69c7f7de7a09a2f5214993c1" dependencies = [ "heck 0.4.0", "proc-macro-error", @@ -1128,6 +1132,15 @@ dependencies = [ "syn", ] +[[package]] +name = "clap_lex" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a37c35f1112dad5e6e0b1adaff798507497a18fceeb30cceb3bae7d1427b9213" +dependencies = [ + "os_str_bytes", +] + [[package]] name = "coarsetime" version = "0.1.22" @@ -1212,18 +1225,18 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.80.1" +version = "0.82.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62fc68cdb867b7d27b5f33cd65eb11376dfb41a2d09568a1a2c2bc1dc204f4ef" +checksum = "38faa2a16616c8e78a18d37b4726b98bfd2de192f2fdc8a39ddf568a408a0f75" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.80.1" +version = "0.82.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31253a44ab62588f8235a996cc9b0636d98a299190069ced9628b8547329b47a" +checksum = "26f192472a3ba23860afd07d2b0217dc628f21fcc72617aa1336d98e1671f33b" dependencies = [ "cranelift-bforest", "cranelift-codegen-meta", @@ -1238,33 +1251,33 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.80.1" +version = "0.82.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a20ab4627d30b702fb1b8a399882726d216b8164d3b3fa6189e3bf901506afe" +checksum = "0f32ddb89e9b89d3d9b36a5b7d7ea3261c98235a76ac95ba46826b8ec40b1a24" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.80.1" +version = "0.82.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6687d9668dacfed4468361f7578d86bded8ca4db978f734d9b631494bebbb5b8" +checksum = "01fd0d9f288cc1b42d9333b7a776b17e278fc888c28e6a0f09b5573d45a150bc" [[package]] name = "cranelift-entity" -version = "0.80.1" +version = "0.82.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77c5d72db97ba2cb36f69037a709edbae0d29cb25503775891e7151c5c874bf" +checksum = "9e3bfe172b83167604601faf9dc60453e0d0a93415b57a9c4d1a7ae6849185cf" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.80.1" +version = "0.82.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "426dca83f63c7c64ea459eb569aadc5e0c66536c0042ed5d693f91830e8750d0" +checksum = "a006e3e32d80ce0e4ba7f1f9ddf66066d052a8c884a110b91d05404d6ce26dce" dependencies = [ "cranelift-codegen", "log", @@ -1274,9 +1287,9 @@ dependencies = [ [[package]] name = "cranelift-native" -version = "0.80.1" +version = "0.82.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8007864b5d0c49b026c861a15761785a2871124e401630c03ef1426e6d0d559e" +checksum = "501241b0cdf903412ec9075385ac9f2b1eb18a89044d1538e97fab603231f70c" dependencies = [ "cranelift-codegen", "libc", @@ -1285,9 +1298,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.80.1" +version = "0.82.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94cf12c071415ba261d897387ae5350c4d83c238376c8c5a96514ecfa2ea66a3" +checksum = "16d9e4211bbc3268042a96dd4de5bd979cda22434991d035f5f8eacba987fad2" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1411,6 +1424,28 @@ dependencies = [ "subtle", ] +[[package]] +name = "csv" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1" +dependencies = [ + "bstr", + "csv-core", + "itoa 0.4.8", + "ryu", + "serde", +] + +[[package]] +name = "csv-core" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" +dependencies = [ + "memchr", +] + [[package]] name = "ct-logs" version = "0.8.0" @@ -1453,7 +1488,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "clap", "sc-cli", @@ -1464,7 +1499,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1488,7 +1523,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1517,7 +1552,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1538,7 +1573,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1563,7 +1598,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -1587,7 +1622,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1617,7 +1652,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "frame-executive", "frame-support", @@ -1635,7 +1670,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1653,7 +1688,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1683,7 +1718,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -1694,7 +1729,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "frame-benchmarking", "frame-support", @@ -1708,7 +1743,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1725,7 +1760,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1744,7 +1779,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "frame-support", "parity-scale-codec", @@ -1760,7 +1795,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1783,7 +1818,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "cumulus-primitives-core", "futures 0.3.21", @@ -1796,7 +1831,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1813,7 +1848,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1841,7 +1876,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1865,7 +1900,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "async-trait", "backoff", @@ -1891,7 +1926,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -2034,6 +2069,17 @@ dependencies = [ "dirs-sys-next", ] +[[package]] +name = "dirs" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901" +dependencies = [ + "libc", + "redox_users 0.3.5", + "winapi 0.3.9", +] + [[package]] name = "dirs-sys" version = "0.3.7" @@ -2041,7 +2087,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" dependencies = [ "libc", - "redox_users", + "redox_users 0.4.3", "winapi 0.3.9", ] @@ -2052,7 +2098,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ "libc", - "redox_users", + "redox_users 0.4.3", "winapi 0.3.9", ] @@ -2163,6 +2209,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + [[package]] name = "enum-as-inner" version = "0.3.4" @@ -2197,9 +2249,9 @@ dependencies = [ [[package]] name = "enumn" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e58b112d5099aa0857c5d05f0eacab86406dd8c0f85fe5d320a13256d29ecf4" +checksum = "052bc8773a98bd051ff37db74a8a25f00e6bfa2cbd03373390c72e9f7afbf344" dependencies = [ "proc-macro2", "quote", @@ -2343,9 +2395,9 @@ dependencies = [ [[package]] name = "ff" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2958d04124b9f27f175eaeb9a9f383d026098aa837eadd8ba22c11f13a05b9e" +checksum = "131655483be284720a17d74ff97592b8e76576dc25563148601df2d7c9080924" dependencies = [ "rand_core 0.6.3", "subtle", @@ -2397,9 +2449,9 @@ checksum = "279fb028e20b3c4c320317955b77c5e0c9701f05a1d309905d6fc702cdc5053e" [[package]] name = "flate2" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f" +checksum = "b39522e96686d38f4bc984b9198e3a0613264abaebaff2c5c918bfa6b6da09af" dependencies = [ "cfg-if 1.0.0", "crc32fast", @@ -2417,7 +2469,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "parity-scale-codec", ] @@ -2435,7 +2487,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-support", "frame-system", @@ -2457,7 +2509,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "Inflector", "chrono", @@ -2474,13 +2526,16 @@ dependencies = [ "log", "memory-db", "parity-scale-codec", + "prettytable-rs", "rand 0.8.5", + "rand_pcg 0.3.1", "sc-block-builder", "sc-cli", "sc-client-api", "sc-client-db", "sc-executor", "sc-service", + "sc-sysinfo", "serde", "serde_json", "serde_nanos", @@ -2493,16 +2548,16 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-state-machine", - "sp-std", "sp-storage", "sp-trie", + "tempfile", "thousands", ] [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -2513,7 +2568,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2529,7 +2584,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-support", "frame-system", @@ -2557,7 +2612,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "bitflags", "frame-metadata", @@ -2586,7 +2641,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2598,7 +2653,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 1.1.3", @@ -2610,7 +2665,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "proc-macro2", "quote", @@ -2620,7 +2675,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-support", "log", @@ -2637,7 +2692,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -2652,7 +2707,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "parity-scale-codec", "sp-api", @@ -2661,7 +2716,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-support", "sp-api", @@ -2791,7 +2846,7 @@ dependencies = [ "futures-io", "memchr", "parking", - "pin-project-lite 0.2.8", + "pin-project-lite 0.2.9", "waker-fn", ] @@ -2849,7 +2904,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.8", + "pin-project-lite 0.2.9", "pin-utils", "slab", ] @@ -2888,9 +2943,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77" +checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" dependencies = [ "cfg-if 1.0.0", "libc", @@ -2939,9 +2994,9 @@ dependencies = [ [[package]] name = "gloo-timers" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d12a7f4e95cfe710f1d624fb1210b7d961a5fb05c4fd942f4feab06e61f590e" +checksum = "5fb7d06c1c8cc2a29bee7ec961009a0b2caa0793ee4900c2ffb348734ba1c8f9" dependencies = [ "futures-channel", "futures-core", @@ -2962,9 +3017,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62eeb471aa3e3c9197aa4bfeabfe02982f6dc96f750486c0bb0009ac58b26d2b" +checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57" dependencies = [ "bytes 1.1.0", "fnv", @@ -2975,7 +3030,7 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util 0.6.9", + "tokio-util 0.7.1", "tracing", ] @@ -3019,9 +3074,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c21d40587b92fa6a6c6e3c1bdbf87d75511db5672f9c93175574b3a00df1758" +checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3" dependencies = [ "ahash", ] @@ -3112,9 +3167,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03" +checksum = "ff8670570af52249509a86f5e3e18a08c60b177071826898fde8997cf5f6bfbb" dependencies = [ "bytes 1.1.0", "fnv", @@ -3129,14 +3184,14 @@ checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" dependencies = [ "bytes 1.1.0", "http", - "pin-project-lite 0.2.8", + "pin-project-lite 0.2.9", ] [[package]] name = "httparse" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9100414882e15fb7feccb4897e5f0ff0ff1ca7d1a86a23208ada4d7a18e6c6c4" +checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" [[package]] name = "httpdate" @@ -3152,9 +3207,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.17" +version = "0.14.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043f0e083e9901b6cc658a77d1eb86f4fc650bbb977a4337dd63192826aa85dd" +checksum = "b26ae0a80afebe130861d90abf98e3814a4f28a4c6ffeb5ab8ebb2be311e0ef2" dependencies = [ "bytes 1.1.0", "futures-channel", @@ -3166,7 +3221,7 @@ dependencies = [ "httparse", "httpdate", "itoa 1.0.1", - "pin-project-lite 0.2.8", + "pin-project-lite 0.2.9", "socket2 0.4.4", "tokio", "tower-service", @@ -3201,10 +3256,10 @@ dependencies = [ "hyper", "log", "rustls 0.20.4", - "rustls-native-certs 0.6.1", + "rustls-native-certs 0.6.2", "tokio", - "tokio-rustls 0.23.3", - "webpki-roots 0.22.2", + "tokio-rustls 0.23.4", + "webpki-roots 0.22.3", ] [[package]] @@ -3332,12 +3387,9 @@ dependencies = [ [[package]] name = "io-lifetimes" -version = "0.4.4" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ef6787e7f0faedc040f95716bdd0e62bcfcf4ba93da053b62dea2691c13864" -dependencies = [ - "winapi 0.3.9", -] +checksum = "ec58677acfea8a15352d42fc87d11d63596ade9239e0a7c9352914417515dbe6" [[package]] name = "iovec" @@ -3368,9 +3420,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e70ee094dc02fd9c13fdad4940090f22dbd6ac7c9e7094a46cf0232a50bc7c" +checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b" [[package]] name = "itertools" @@ -3404,9 +3456,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.56" +version = "0.3.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04" +checksum = "671a26f820db17c2a2750743f1dd03bafd15b98c9f30c7c2628c024c05d73397" dependencies = [ "wasm-bindgen", ] @@ -3567,14 +3619,14 @@ dependencies = [ "jsonrpsee-core", "jsonrpsee-types", "pin-project 1.0.10", - "rustls-native-certs 0.6.1", + "rustls-native-certs 0.6.2", "soketto", "thiserror", "tokio", - "tokio-rustls 0.23.3", + "tokio-rustls 0.23.4", "tokio-util 0.7.1", "tracing", - "webpki-roots 0.22.2", + "webpki-roots 0.22.3", ] [[package]] @@ -3686,8 +3738,8 @@ dependencies = [ [[package]] name = "kusama-runtime" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "beefy-primitives", "bitvec", @@ -3712,6 +3764,7 @@ dependencies = [ "pallet-collective", "pallet-democracy", "pallet-election-provider-multi-phase", + "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-gilt", "pallet-grandpa", @@ -3719,7 +3772,6 @@ dependencies = [ "pallet-im-online", "pallet-indices", "pallet-membership", - "pallet-mmr-primitives", "pallet-multisig", "pallet-nicks", "pallet-offences", @@ -3741,6 +3793,7 @@ dependencies = [ "pallet-utility", "pallet-vesting", "pallet-xcm", + "pallet-xcm-benchmarks", "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-common", @@ -3758,6 +3811,7 @@ dependencies = [ "sp-core", "sp-inherents", "sp-io", + "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", "sp-runtime", @@ -3775,8 +3829,8 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "frame-support", "polkadot-primitives", @@ -3847,9 +3901,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.121" +version = "0.2.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efaa7b300f3b5fe8eb6bf21ce3895e1751d9665086af2d64b42f19701015ff4f" +checksum = "5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b" [[package]] name = "libloading" @@ -4415,9 +4469,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.5" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f35facd4a5673cb5a48822be2be1d4236c1c99cb4113cab7061ac720d5bf859" +checksum = "92e7e15d7610cce1d9752e137625f14e61a28cd45929b6e12e47b50fe154ee2e" dependencies = [ "cc", "pkg-config", @@ -4451,24 +4505,25 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.0.36" +version = "0.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a261afc61b7a5e323933b402ca6a1765183687c614789b1e4db7762ed4230bca" +checksum = "5284f00d480e1c39af34e72f8ad60b94f47007e3481cd3b731c1d67190ddc7b7" [[package]] name = "lock_api" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" +checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" dependencies = [ + "autocfg", "scopeguard", ] [[package]] name = "log" -version = "0.4.16" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ "cfg-if 1.0.0", "value-bag", @@ -4568,9 +4623,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "memmap2" @@ -4606,7 +4661,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6566c70c1016f525ced45d7b7f97730a2bafb037c788211d0c186ef5b2189f0a" dependencies = [ "hash-db", - "hashbrown 0.12.0", + "hashbrown 0.12.1", "parity-util-mem", ] @@ -4639,8 +4694,8 @@ dependencies = [ [[package]] name = "metered-channel" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "coarsetime", "crossbeam-queue", @@ -4671,12 +4726,11 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.4.4" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" +checksum = "d2b29bd4bc3f33391105ebee3589c19197c4271e3e5a9ec9bfe8127eeff8f082" dependencies = [ "adler", - "autocfg", ] [[package]] @@ -4943,9 +4997,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26873667bbbb7c5182d4a37c1add32cdf09f841af72da53318fdb81543c15085" +checksum = "97fbc387afefefd5e9e39493299f3069e14a140dd34dc19b4c1c1a8fddb6a790" dependencies = [ "num-traits", ] @@ -4962,9 +5016,9 @@ dependencies = [ [[package]] name = "num-integer" -version = "0.1.44" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" dependencies = [ "autocfg", "num-traits", @@ -4995,9 +5049,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", "libm", @@ -5024,6 +5078,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "object" +version = "0.28.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40bec70ba014595f99f7aa110b84331ffe1ee9aece7fe6f387cc7e3ecda4d456" +dependencies = [ + "memchr", +] + [[package]] name = "once_cell" version = "1.10.0" @@ -5085,9 +5148,6 @@ name = "os_str_bytes" version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64" -dependencies = [ - "memchr", -] [[package]] name = "owning_ref" @@ -5101,7 +5161,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-support", "frame-system", @@ -5117,7 +5177,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-support", "frame-system", @@ -5133,7 +5193,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-support", "frame-system", @@ -5148,7 +5208,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5172,7 +5232,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5192,7 +5252,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5207,7 +5267,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "beefy-primitives", "frame-support", @@ -5223,7 +5283,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -5234,7 +5294,6 @@ dependencies = [ "log", "pallet-beefy", "pallet-mmr", - "pallet-mmr-primitives", "pallet-session", "parity-scale-codec", "scale-info", @@ -5248,7 +5307,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5266,7 +5325,7 @@ dependencies = [ [[package]] name = "pallet-bridge-dispatch" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "bp-message-dispatch", "bp-runtime", @@ -5283,7 +5342,7 @@ dependencies = [ [[package]] name = "pallet-bridge-grandpa" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "bp-header-chain", "bp-runtime", @@ -5305,7 +5364,7 @@ dependencies = [ [[package]] name = "pallet-bridge-messages" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "bitvec", "bp-message-dispatch", @@ -5326,7 +5385,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5345,7 +5404,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "frame-benchmarking", "frame-support", @@ -5365,7 +5424,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5382,7 +5441,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5398,7 +5457,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5418,10 +5477,23 @@ dependencies = [ "strum 0.23.0", ] +[[package]] +name = "pallet-election-provider-support-benchmarking" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +dependencies = [ + "frame-benchmarking", + "frame-election-provider-support", + "frame-system", + "parity-scale-codec", + "sp-npos-elections", + "sp-runtime", +] + [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5439,7 +5511,7 @@ dependencies = [ [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5454,7 +5526,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5477,7 +5549,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5493,7 +5565,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5513,7 +5585,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5530,7 +5602,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5547,33 +5619,17 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", "frame-support", "frame-system", - "pallet-mmr-primitives", "parity-scale-codec", "scale-info", "sp-core", "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-mmr-primitives" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" -dependencies = [ - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "serde", - "sp-api", - "sp-core", + "sp-mmr-primitives", "sp-runtime", "sp-std", ] @@ -5581,24 +5637,24 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", "jsonrpc-derive", - "pallet-mmr-primitives", "parity-scale-codec", "serde", "sp-api", "sp-blockchain", "sp-core", + "sp-mmr-primitives", "sp-runtime", ] [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5613,7 +5669,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-support", "frame-system", @@ -5624,10 +5680,44 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-nomination-pools" +version = "1.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-staking", + "sp-std", +] + +[[package]] +name = "pallet-nomination-pools-benchmarking" +version = "1.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +dependencies = [ + "frame-benchmarking", + "frame-election-provider-support", + "frame-support", + "frame-system", + "pallet-bags-list", + "pallet-nomination-pools", + "pallet-staking", + "parity-scale-codec", + "scale-info", + "sp-runtime", + "sp-staking", + "sp-std", +] + [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-support", "frame-system", @@ -5644,7 +5734,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5667,7 +5757,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5683,7 +5773,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5698,7 +5788,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-support", "frame-system", @@ -5712,7 +5802,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5728,7 +5818,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-support", "frame-system", @@ -5749,7 +5839,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5765,7 +5855,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-support", "frame-system", @@ -5779,7 +5869,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5802,7 +5892,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -5813,7 +5903,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "log", "sp-arithmetic", @@ -5822,7 +5912,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-support", "frame-system", @@ -5851,7 +5941,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5869,7 +5959,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5888,7 +5978,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-support", "frame-system", @@ -5905,7 +5995,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -5922,7 +6012,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5933,7 +6023,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5950,7 +6040,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5966,7 +6056,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5980,8 +6070,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "frame-support", "frame-system", @@ -5998,8 +6088,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "frame-benchmarking", "frame-support", @@ -6016,7 +6106,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.19#2317ef00dfa29a4d23fd6aa808d791a5dab82a02" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -6151,9 +6241,9 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.3.9" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d121a9af17a43efd0a38c6afa508b927ba07785bd4709efb2ac03bf77efef8d" +checksum = "6e73cd0b0a78045276b19eaae8eaaa20e44a1da9a0217ff934a810d9492ae701" dependencies = [ "blake2-rfc", "crc32fast", @@ -6221,7 +6311,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c32561d248d352148124f036cac253a644685a21dc9fea383eb4907d7bd35a8f" dependencies = [ "cfg-if 1.0.0", - "hashbrown 0.12.0", + "hashbrown 0.12.1", "impl-trait-for-tuples", "parity-util-mem-derive", "parking_lot 0.12.0", @@ -6298,7 +6388,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58" dependencies = [ "lock_api", - "parking_lot_core 0.9.1", + "parking_lot_core 0.9.3", ] [[package]] @@ -6310,29 +6400,29 @@ dependencies = [ "cfg-if 1.0.0", "instant", "libc", - "redox_syscall", + "redox_syscall 0.2.13", "smallvec", "winapi 0.3.9", ] [[package]] name = "parking_lot_core" -version = "0.9.1" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28141e0cc4143da2443301914478dc976a61ffdb3f043058310c70df2fed8954" +checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall", + "redox_syscall 0.2.13", "smallvec", "windows-sys", ] [[package]] name = "paste" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0744126afe1a6dd7f394cb50a716dbe086cb06e255e53d8d0185d82828358fb5" +checksum = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc" [[package]] name = "pbkdf2" @@ -6471,9 +6561,9 @@ checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" [[package]] name = "pin-project-lite" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" [[package]] name = "pin-utils" @@ -6494,9 +6584,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe" +checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" [[package]] name = "platforms" @@ -6506,8 +6596,8 @@ checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "futures 0.3.21", "polkadot-node-network-protocol", @@ -6515,13 +6605,14 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", + "rand 0.8.5", "tracing-gum", ] [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "futures 0.3.21", "polkadot-node-network-protocol", @@ -6533,8 +6624,8 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "derive_more", "fatality", @@ -6556,8 +6647,8 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "fatality", "futures 0.3.21", @@ -6577,8 +6668,8 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "clap", "frame-benchmarking-cli", @@ -6601,15 +6692,14 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "beefy-primitives", "frame-benchmarking", "frame-benchmarking-cli", "frame-system", "frame-system-rpc-runtime-api", - "pallet-mmr-primitives", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "polkadot-core-primitives", @@ -6631,6 +6721,7 @@ dependencies = [ "sp-finality-grandpa", "sp-inherents", "sp-keyring", + "sp-mmr-primitives", "sp-offchain", "sp-runtime", "sp-session", @@ -6641,8 +6732,8 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "always-assert", "fatality", @@ -6662,8 +6753,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -6675,8 +6766,8 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "derive_more", "fatality", @@ -6698,8 +6789,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6712,8 +6803,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "futures 0.3.21", "futures-timer", @@ -6732,8 +6823,8 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "async-trait", "futures 0.3.21", @@ -6751,8 +6842,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "futures 0.3.21", "parity-scale-codec", @@ -6769,8 +6860,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "bitvec", "derive_more", @@ -6798,8 +6889,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "bitvec", "futures 0.3.21", @@ -6818,8 +6909,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "bitvec", "futures 0.3.21", @@ -6836,8 +6927,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "futures 0.3.21", "polkadot-node-subsystem", @@ -6851,8 +6942,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "async-trait", "futures 0.3.21", @@ -6869,8 +6960,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "futures 0.3.21", "polkadot-node-subsystem", @@ -6884,8 +6975,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "futures 0.3.21", "futures-timer", @@ -6901,8 +6992,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "fatality", "futures 0.3.21", @@ -6920,8 +7011,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "async-trait", "futures 0.3.21", @@ -6937,8 +7028,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "bitvec", "futures 0.3.21", @@ -6954,8 +7045,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "always-assert", "assert_matches", @@ -6984,8 +7075,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "futures 0.3.21", "polkadot-node-primitives", @@ -7000,8 +7091,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "futures 0.3.21", "memory-lru", @@ -7018,8 +7109,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "async-std", "lazy_static", @@ -7036,8 +7127,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "bs58", "futures 0.3.21", @@ -7055,8 +7146,8 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "async-trait", "fatality", @@ -7073,8 +7164,8 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "bounded-vec", "futures 0.3.21", @@ -7095,8 +7186,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -7105,8 +7196,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "derive_more", "futures 0.3.21", @@ -7124,8 +7215,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "async-trait", "derive_more", @@ -7157,8 +7248,8 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "futures 0.3.21", "futures-timer", @@ -7178,8 +7269,8 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "async-trait", "futures 0.3.21", @@ -7195,8 +7286,8 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen-proc-macro" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "expander 0.0.6", "proc-macro-crate 1.1.3", @@ -7207,8 +7298,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "derive_more", "frame-support", @@ -7224,8 +7315,8 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "env_logger", "kusama-runtime", @@ -7239,8 +7330,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "bitvec", "frame-system", @@ -7269,8 +7360,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -7301,8 +7392,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "beefy-primitives", "bitvec", @@ -7326,13 +7417,13 @@ dependencies = [ "pallet-collective", "pallet-democracy", "pallet-election-provider-multi-phase", + "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-indices", "pallet-membership", - "pallet-mmr-primitives", "pallet-multisig", "pallet-nicks", "pallet-offences", @@ -7369,6 +7460,7 @@ dependencies = [ "sp-core", "sp-inherents", "sp-io", + "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", "sp-runtime", @@ -7386,8 +7478,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "beefy-primitives", "bitvec", @@ -7433,8 +7525,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "frame-support", "polkadot-primitives", @@ -7445,8 +7537,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "bs58", "parity-scale-codec", @@ -7457,8 +7549,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "bitflags", "bitvec", @@ -7500,8 +7592,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "async-trait", "beefy-gadget", @@ -7515,7 +7607,6 @@ dependencies = [ "lru 0.7.5", "pallet-babe", "pallet-im-online", - "pallet-mmr-primitives", "pallet-staking", "pallet-transaction-payment-rpc-runtime-api", "parity-db", @@ -7601,8 +7692,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "arrayvec 0.5.2", "fatality", @@ -7622,8 +7713,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7672,6 +7763,20 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" +[[package]] +name = "prettytable-rs" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fd04b170004fa2daccf418a7f8253aaf033c27760b5f225889024cf66d7ac2e" +dependencies = [ + "atty", + "csv", + "encode_unicode", + "lazy_static", + "term", + "unicode-width", +] + [[package]] name = "primitive-types" version = "0.11.1" @@ -7806,9 +7911,9 @@ dependencies = [ [[package]] name = "psm" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eca0fa5dd7c4c96e184cec588f0b1db1ee3165e678db21c09793105acb17e6f" +checksum = "871372391786ccec00d3c5d3d6608905b3d4db263639cfe075d3b60a736d115a" dependencies = [ "cc", ] @@ -7862,7 +7967,7 @@ dependencies = [ "rand_chacha 0.2.2", "rand_core 0.5.1", "rand_hc", - "rand_pcg", + "rand_pcg 0.2.1", ] [[package]] @@ -7911,7 +8016,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ - "getrandom 0.2.5", + "getrandom 0.2.6", ] [[package]] @@ -7942,6 +8047,15 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rand_pcg" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" +dependencies = [ + "rand_core 0.6.3", +] + [[package]] name = "rawpointer" version = "0.2.1" @@ -7950,9 +8064,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.5.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" +checksum = "fd249e82c21598a9a426a4e00dd7adc1d640b22445ec8545feef801d1a74c221" dependencies = [ "autocfg", "crossbeam-deque", @@ -7962,34 +8076,50 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.9.1" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" +checksum = "9f51245e1e62e1f1629cbfec37b5793bbabcaeb90f30e94d2ba03564687353e4" dependencies = [ "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "lazy_static", "num_cpus", ] [[package]] name = "redox_syscall" -version = "0.2.11" +version = "0.1.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" + +[[package]] +name = "redox_syscall" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c" +checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" dependencies = [ "bitflags", ] [[package]] name = "redox_users" -version = "0.4.2" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7776223e2696f1aa4c6b0170e83212f47296a00424305117d013dfe86fb0fe55" +checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d" dependencies = [ - "getrandom 0.2.5", - "redox_syscall", + "getrandom 0.1.16", + "redox_syscall 0.1.57", + "rust-argon2", +] + +[[package]] +name = "redox_users" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +dependencies = [ + "getrandom 0.2.6", + "redox_syscall 0.2.13", "thiserror", ] @@ -8008,18 +8138,18 @@ dependencies = [ [[package]] name = "ref-cast" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "300f2a835d808734ee295d45007adacb9ebb29dd3ae2424acfa17930cae541da" +checksum = "685d58625b6c2b83e4cc88a27c4bf65adb7b6b16dbdc413e515c9405b47432ab" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c38e3aecd2b21cb3959637b883bb3714bc7e43f0268b9a29d3743ee3e55cdd2" +checksum = "a043824e29c94169374ac5183ac0ed43f5724dc4556b19568007486bd840fa1f" dependencies = [ "proc-macro2", "quote", @@ -8028,9 +8158,9 @@ dependencies = [ [[package]] name = "regalloc" -version = "0.0.33" +version = "0.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d808cff91dfca7b239d40b972ba628add94892b1d9e19a842aedc5cfae8ab1a" +checksum = "62446b1d3ebf980bdc68837700af1d77b37bc430e524bf95319c6eada2a4cc02" dependencies = [ "log", "rustc-hash", @@ -8078,7 +8208,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "env_logger", "jsonrpsee", @@ -8144,8 +8274,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -8177,7 +8307,6 @@ dependencies = [ "pallet-indices", "pallet-membership", "pallet-mmr", - "pallet-mmr-primitives", "pallet-multisig", "pallet-offences", "pallet-proxy", @@ -8206,6 +8335,7 @@ dependencies = [ "sp-core", "sp-inherents", "sp-io", + "sp-mmr-primitives", "sp-offchain", "sp-runtime", "sp-session", @@ -8221,8 +8351,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "frame-support", "polkadot-primitives", @@ -8241,6 +8371,18 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "rust-argon2" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb" +dependencies = [ + "base64", + "blake2b_simd", + "constant_time_eq", + "crossbeam-utils", +] + [[package]] name = "rustc-demangle" version = "0.1.21" @@ -8274,14 +8416,14 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.6", + "semver 1.0.9", ] [[package]] name = "rustix" -version = "0.31.3" +version = "0.33.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2dcfc2778a90e38f56a708bfc90572422e11d6c7ee233d053d1f782cf9df6d2" +checksum = "938a344304321a9da4973b9ff4f9f8db9caf4597dfd9dda6a60b523340a0fff0" dependencies = [ "bitflags", "errno", @@ -8330,9 +8472,9 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca9ebdfa27d3fc180e42879037b5338ab1c040c06affd00d8338598e7800943" +checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" dependencies = [ "openssl-probe", "rustls-pemfile", @@ -8342,9 +8484,9 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "0.2.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9" +checksum = "e7522c9de787ff061458fe9a829dc790a3f5b22dc571694fc5883f448b94d9a9" dependencies = [ "base64", ] @@ -8393,7 +8535,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "log", "sp-core", @@ -8404,7 +8546,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "async-trait", "futures 0.3.21", @@ -8431,7 +8573,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "futures 0.3.21", "futures-timer", @@ -8454,7 +8596,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8470,7 +8612,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "impl-trait-for-tuples", "memmap2 0.5.3", @@ -8487,7 +8629,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -8498,7 +8640,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "chrono", "clap", @@ -8536,7 +8678,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "fnv", "futures 0.3.21", @@ -8564,7 +8706,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "hash-db", "kvdb", @@ -8589,7 +8731,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "async-trait", "futures 0.3.21", @@ -8613,7 +8755,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "async-trait", "futures 0.3.21", @@ -8642,7 +8784,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "async-trait", "fork-tree", @@ -8685,7 +8827,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "futures 0.3.21", "jsonrpc-core", @@ -8709,7 +8851,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8722,7 +8864,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "async-trait", "futures 0.3.21", @@ -8747,7 +8889,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "sc-client-api", "sp-authorship", @@ -8758,7 +8900,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "lazy_static", "lru 0.7.5", @@ -8785,7 +8927,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "environmental", "parity-scale-codec", @@ -8802,7 +8944,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "log", "parity-scale-codec", @@ -8818,7 +8960,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "cfg-if 1.0.0", "libc", @@ -8836,7 +8978,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "ahash", "async-trait", @@ -8876,7 +9018,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "finality-grandpa", "futures 0.3.21", @@ -8900,7 +9042,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "ansi_term", "futures 0.3.21", @@ -8917,7 +9059,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "async-trait", "hex", @@ -8932,7 +9074,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "async-trait", "asynchronous-codec 0.5.0", @@ -8981,7 +9123,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "ahash", "futures 0.3.21", @@ -8998,7 +9140,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "bytes 1.1.0", "fnv", @@ -9026,7 +9168,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "futures 0.3.21", "libp2p", @@ -9039,7 +9181,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -9048,7 +9190,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "futures 0.3.21", "hash-db", @@ -9079,7 +9221,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "futures 0.3.21", "jsonrpc-core", @@ -9105,7 +9247,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "futures 0.3.21", "jsonrpc-core", @@ -9122,7 +9264,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "async-trait", "directories", @@ -9150,6 +9292,7 @@ dependencies = [ "sc-offchain", "sc-rpc", "sc-rpc-server", + "sc-sysinfo", "sc-telemetry", "sc-tracing", "sc-transaction-pool", @@ -9186,7 +9329,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "log", "parity-scale-codec", @@ -9200,7 +9343,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -9218,10 +9361,29 @@ dependencies = [ "thiserror", ] +[[package]] +name = "sc-sysinfo" +version = "6.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +dependencies = [ + "futures 0.3.21", + "libc", + "log", + "rand 0.7.3", + "rand_pcg 0.2.1", + "regex", + "sc-telemetry", + "serde", + "serde_json", + "sp-core", + "sp-io", + "sp-std", +] + [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "chrono", "futures 0.3.21", @@ -9239,7 +9401,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "ansi_term", "atty", @@ -9270,7 +9432,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "proc-macro-crate 1.1.3", "proc-macro2", @@ -9281,7 +9443,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "futures 0.3.21", "futures-timer", @@ -9308,7 +9470,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "futures 0.3.21", "log", @@ -9321,7 +9483,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "futures 0.3.21", "futures-timer", @@ -9500,9 +9662,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a3381e03edd24287172047536f20cabde766e2cd3e65e6b00fb3af51c4f38d" +checksum = "8cb243bdfdb5936c8dc3c45762a19d12ab4550cdc753bc247637d4ec35a040fd" dependencies = [ "serde", ] @@ -9524,18 +9686,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.136" +version = "1.0.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" +checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.136" +version = "1.0.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" +checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be" dependencies = [ "proc-macro2", "quote", @@ -9544,9 +9706,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.79" +version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95" +checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c" dependencies = [ "itoa 1.0.1", "ryu", @@ -9702,14 +9864,14 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" +checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" [[package]] name = "slot-range-helper" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "enumn", "parity-scale-codec", @@ -9797,7 +9959,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "hash-db", "log", @@ -9814,7 +9976,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "blake2 0.10.4", "proc-macro-crate 1.1.3", @@ -9826,7 +9988,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "parity-scale-codec", "scale-info", @@ -9839,7 +10001,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "integer-sqrt", "num-traits", @@ -9854,7 +10016,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "parity-scale-codec", "scale-info", @@ -9867,7 +10029,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "async-trait", "parity-scale-codec", @@ -9879,7 +10041,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "parity-scale-codec", "sp-api", @@ -9891,7 +10053,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "futures 0.3.21", "log", @@ -9909,7 +10071,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "async-trait", "futures 0.3.21", @@ -9928,7 +10090,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "async-trait", "parity-scale-codec", @@ -9946,7 +10108,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "async-trait", "merlin", @@ -9969,7 +10131,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "parity-scale-codec", "scale-info", @@ -9983,7 +10145,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "parity-scale-codec", "schnorrkel", @@ -9995,7 +10157,7 @@ dependencies = [ [[package]] name = "sp-core" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "base58", "bitflags", @@ -10041,7 +10203,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "blake2 0.10.4", "byteorder", @@ -10055,7 +10217,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "proc-macro2", "quote", @@ -10066,7 +10228,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "kvdb", "parking_lot 0.12.0", @@ -10075,7 +10237,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "proc-macro2", "quote", @@ -10085,7 +10247,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "environmental", "parity-scale-codec", @@ -10096,7 +10258,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "finality-grandpa", "log", @@ -10114,7 +10276,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -10128,7 +10290,7 @@ dependencies = [ [[package]] name = "sp-io" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "futures 0.3.21", "hash-db", @@ -10153,7 +10315,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "lazy_static", "sp-core", @@ -10164,7 +10326,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "async-trait", "futures 0.3.21", @@ -10181,16 +10343,31 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "thiserror", "zstd", ] +[[package]] +name = "sp-mmr-primitives" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +dependencies = [ + "log", + "parity-scale-codec", + "serde", + "sp-api", + "sp-core", + "sp-debug-derive", + "sp-runtime", + "sp-std", +] + [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "parity-scale-codec", "scale-info", @@ -10204,7 +10381,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "sp-api", "sp-core", @@ -10214,7 +10391,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "backtrace", "lazy_static", @@ -10224,7 +10401,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "rustc-hash", "serde", @@ -10234,7 +10411,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "either", "hash256-std-hasher", @@ -10256,7 +10433,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -10273,7 +10450,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "Inflector", "proc-macro-crate 1.1.3", @@ -10285,7 +10462,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "serde", "serde_json", @@ -10294,7 +10471,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "parity-scale-codec", "scale-info", @@ -10308,7 +10485,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "parity-scale-codec", "scale-info", @@ -10319,7 +10496,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "hash-db", "log", @@ -10341,12 +10518,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" [[package]] name = "sp-storage" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10359,7 +10536,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "log", "sp-core", @@ -10372,7 +10549,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "async-trait", "futures-timer", @@ -10388,7 +10565,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "parity-scale-codec", "sp-std", @@ -10400,7 +10577,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "sp-api", "sp-runtime", @@ -10409,7 +10586,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "async-trait", "log", @@ -10425,7 +10602,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "hash-db", "memory-db", @@ -10441,7 +10618,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10458,7 +10635,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10469,7 +10646,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "impl-trait-for-tuples", "log", @@ -10626,7 +10803,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "platforms", ] @@ -10634,7 +10811,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.21", @@ -10656,7 +10833,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "futures-util", "hyper", @@ -10669,7 +10846,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "jsonrpc-core", "jsonrpc-core-client", @@ -10692,7 +10869,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "ansi_term", "build-helper", @@ -10713,9 +10890,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.91" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d" +checksum = "7ff7c592601f11445996a06f8ad0c27f094a58857c2f89e97974ab9235b92c52" dependencies = [ "proc-macro2", "quote", @@ -10755,11 +10932,22 @@ dependencies = [ "cfg-if 1.0.0", "fastrand", "libc", - "redox_syscall", + "redox_syscall 0.2.13", "remove_dir_all", "winapi 0.3.9", ] +[[package]] +name = "term" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42" +dependencies = [ + "byteorder", + "dirs", + "winapi 0.3.9", +] + [[package]] name = "termcolor" version = "1.1.3" @@ -10777,18 +10965,18 @@ checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" [[package]] name = "thiserror" -version = "1.0.30" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" +checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.30" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" +checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" dependencies = [ "proc-macro2", "quote", @@ -10875,9 +11063,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" dependencies = [ "tinyvec_macros", ] @@ -10890,9 +11078,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.17.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2af73ac49756f3f7c01172e34a23e5d0216f6c32333757c2c61feb2bbff5a5ee" +checksum = "dce653fb475565de9f6fb0614b28bca8df2c430c0cf84bcd9c843f15de5414cc" dependencies = [ "bytes 1.1.0", "libc", @@ -10901,7 +11089,7 @@ dependencies = [ "num_cpus", "once_cell", "parking_lot 0.12.0", - "pin-project-lite 0.2.8", + "pin-project-lite 0.2.9", "signal-hook-registry", "socket2 0.4.4", "tokio-macros", @@ -10932,9 +11120,9 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.23.3" +version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4151fda0cf2798550ad0b34bcfc9b9dcc2a9d2471c895c68f3a8818e54f2389e" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ "rustls 0.20.4", "tokio", @@ -10948,7 +11136,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3" dependencies = [ "futures-core", - "pin-project-lite 0.2.8", + "pin-project-lite 0.2.9", "tokio", ] @@ -10962,7 +11150,7 @@ dependencies = [ "futures-core", "futures-sink", "log", - "pin-project-lite 0.2.8", + "pin-project-lite 0.2.9", "tokio", ] @@ -10976,15 +11164,16 @@ dependencies = [ "futures-core", "futures-io", "futures-sink", - "pin-project-lite 0.2.8", + "pin-project-lite 0.2.9", "tokio", + "tracing", ] [[package]] name = "toml" -version = "0.5.8" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" +checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" dependencies = [ "serde", ] @@ -11002,16 +11191,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d0ecdcb44a79f0fe9844f0c4f33a342cbcbb5117de8001e6ba0dc2351327d09" dependencies = [ "cfg-if 1.0.0", - "pin-project-lite 0.2.8", + "pin-project-lite 0.2.9", "tracing-attributes", "tracing-core", ] [[package]] name = "tracing-attributes" -version = "0.1.20" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e65ce065b4b5c53e73bb28912318cb8c9e9ad3921f1d669eb0e68b4c8143a2b" +checksum = "cc6b8ad3567499f98a1db7a752b07a7c8c7c7c34c332ec00effb2b0027974b7c" dependencies = [ "proc-macro2", "quote", @@ -11020,9 +11209,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.23" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa31669fa42c09c34d94d8165dd2012e8ff3c66aca50f3bb226b68f216f2706c" +checksum = "f54c8ca710e81886d498c2fd3331b56c93aa248d49de2222ad2742247c60072f" dependencies = [ "lazy_static", "valuable", @@ -11040,8 +11229,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -11051,8 +11240,8 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "expander 0.0.6", "proc-macro-crate 1.1.3", @@ -11063,9 +11252,9 @@ dependencies = [ [[package]] name = "tracing-log" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3" +checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" dependencies = [ "lazy_static", "log", @@ -11112,7 +11301,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d32d034c0d3db64b43c31de38e945f15b40cd4ca6d2dcfc26d4798ce8de4ab83" dependencies = [ "hash-db", - "hashbrown 0.12.0", + "hashbrown 0.12.1", "log", "rustc-hex", "smallvec", @@ -11179,7 +11368,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.19#174735ea1bb5fc4513519c45181d8df63d86f613" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" dependencies = [ "clap", "jsonrpsee", @@ -11209,9 +11398,9 @@ checksum = "5e66dcbec4290c69dd03c57e76c2469ea5c7ce109c6dd4351c13055cf71ea055" [[package]] name = "twox-hash" -version = "1.6.2" +version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee73e6e4924fe940354b8d4d98cad5231175d615cd855b758adc658c0aac6a0" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if 1.0.0", "digest 0.10.3", @@ -11254,9 +11443,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" +checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-normalization" @@ -11273,11 +11462,17 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" +[[package]] +name = "unicode-width" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" + [[package]] name = "unicode-xid" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" +checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04" [[package]] name = "universal-hash" @@ -11356,9 +11551,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "value-bag" -version = "1.0.0-alpha.8" +version = "1.0.0-alpha.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79923f7731dc61ebfba3633098bf3ac533bbd35ccd8c57e7088d9a5eebe0263f" +checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55" dependencies = [ "ctor", "version_check", @@ -11429,9 +11624,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.79" +version = "0.2.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06" +checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -11439,9 +11634,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.79" +version = "0.2.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca" +checksum = "53e04185bfa3a779273da532f5025e33398409573f348985af9a1cbf3774d3f4" dependencies = [ "bumpalo", "lazy_static", @@ -11454,9 +11649,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.29" +version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb6ec270a31b1d3c7e266b999739109abce8b6c87e4b31fcfcd788b65267395" +checksum = "6f741de44b75e14c35df886aff5f1eb73aa114fa5d4d00dcd37b5e01259bf3b2" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -11466,9 +11661,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.79" +version = "0.2.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01" +checksum = "17cae7ff784d7e83a2fe7611cfe766ecf034111b49deb850a3dc7699c08251f5" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -11476,9 +11671,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.79" +version = "0.2.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc" +checksum = "99ec0dc7a4756fffc231aab1b9f2f578d23cd391390ab27f952ae0c9b3ece20b" dependencies = [ "proc-macro2", "quote", @@ -11489,9 +11684,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.79" +version = "0.2.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2" +checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744" [[package]] name = "wasm-gc-api" @@ -11554,31 +11749,30 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.81.0" +version = "0.83.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98930446519f63d00a836efdc22f67766ceae8dbcc1571379f2bcabc6b2b9abc" +checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" [[package]] name = "wasmtime" -version = "0.33.1" +version = "0.35.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c9c724da92e39a85d2231d4c2a942c8be295211441dbca581c6c3f3f45a9f00" +checksum = "21ffb4705016d5ca91e18a72ed6822dab50e6d5ddd7045461b17ef19071cdef1" dependencies = [ "anyhow", "backtrace", "bincode", "cfg-if 1.0.0", - "cpp_demangle", "indexmap", "lazy_static", "libc", "log", - "object", + "object 0.27.1", + "once_cell", "paste", "psm", "rayon", "region", - "rustc-demangle", "serde", "target-lexicon", "wasmparser", @@ -11592,9 +11786,9 @@ dependencies = [ [[package]] name = "wasmtime-cache" -version = "0.33.1" +version = "0.35.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da4439d99100298344567c0eb6916ad5864e99e54760b8177c427e529077fb30" +checksum = "85c6ab24291fa7cb3a181f5669f6c72599b7ef781669759b45c7828c5999d0c0" dependencies = [ "anyhow", "base64", @@ -11612,9 +11806,9 @@ dependencies = [ [[package]] name = "wasmtime-cranelift" -version = "0.33.1" +version = "0.35.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1762765dd69245f00e5d9783b695039e449a7be0f9c5383e4c78465dd6131aeb" +checksum = "f04c810078a491b7bc4866ebe045f714d2b95e6b539e1f64009a4a7606be11de" dependencies = [ "anyhow", "cranelift-codegen", @@ -11625,7 +11819,7 @@ dependencies = [ "gimli", "log", "more-asserts", - "object", + "object 0.27.1", "target-lexicon", "thiserror", "wasmparser", @@ -11634,9 +11828,9 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "0.33.1" +version = "0.35.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4468301d95ec71710bb6261382efe27d1296447711645e3dbabaea6e4de3504" +checksum = "61448266ea164b1ac406363cdcfac81c7c44db4d94c7a81c8620ac6c5c6cdf59" dependencies = [ "anyhow", "cranelift-entity", @@ -11644,7 +11838,7 @@ dependencies = [ "indexmap", "log", "more-asserts", - "object", + "object 0.27.1", "serde", "target-lexicon", "thiserror", @@ -11654,38 +11848,52 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "0.33.1" +version = "0.35.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab0ae6e581ff014b470ec35847ea3c0b4c3ace89a55df5a04c802a11f4574e7d" +checksum = "156b4623c6b0d4b8c24afb846c20525922f538ef464cc024abab7ea8de2109a2" dependencies = [ "addr2line", "anyhow", "bincode", "cfg-if 1.0.0", + "cpp_demangle", "gimli", - "object", + "log", + "object 0.27.1", "region", + "rustc-demangle", "rustix", "serde", "target-lexicon", "thiserror", "wasmtime-environ", + "wasmtime-jit-debug", "wasmtime-runtime", "winapi 0.3.9", ] +[[package]] +name = "wasmtime-jit-debug" +version = "0.35.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5dc31f811760a6c76b2672c404866fd19b75e5fb3b0075a3e377a6846490654" +dependencies = [ + "lazy_static", + "object 0.27.1", + "rustix", +] + [[package]] name = "wasmtime-runtime" -version = "0.33.1" +version = "0.35.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d9c28877ae37a367cda7b52b8887589816152e95dde9b7c80cc686f52761961" +checksum = "f907beaff69d4d920fa4688411ee4cc75c0f01859e424677f9e426e2ef749864" dependencies = [ "anyhow", "backtrace", "cc", "cfg-if 1.0.0", "indexmap", - "lazy_static", "libc", "log", "mach", @@ -11696,14 +11904,15 @@ dependencies = [ "rustix", "thiserror", "wasmtime-environ", + "wasmtime-jit-debug", "winapi 0.3.9", ] [[package]] name = "wasmtime-types" -version = "0.33.1" +version = "0.35.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395726e8f5dd8c57cb0db445627b842343f7e29ed7489467fdf7953ed9d3cd4f" +checksum = "514ef0e5fd197b9609dc9eb74beba0c84d5a12b2417cbae55534633329ba4852" dependencies = [ "cranelift-entity", "serde", @@ -11713,9 +11922,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.56" +version = "0.3.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb" +checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283" dependencies = [ "js-sys", "wasm-bindgen", @@ -11752,9 +11961,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "552ceb903e957524388c4d3475725ff2c8b7960922063af6ce53c9a43da07449" +checksum = "44d8de8415c823c8abd270ad483c6feeac771fad964890779f9a8cb24fbbc1bf" dependencies = [ "webpki 0.22.0", ] @@ -11770,8 +11979,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "beefy-primitives", "bitvec", @@ -11793,15 +12002,17 @@ dependencies = [ "pallet-collective", "pallet-democracy", "pallet-election-provider-multi-phase", + "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-indices", "pallet-membership", - "pallet-mmr-primitives", "pallet-multisig", "pallet-nicks", + "pallet-nomination-pools", + "pallet-nomination-pools-benchmarking", "pallet-offences", "pallet-offences-benchmarking", "pallet-preimage", @@ -11839,6 +12050,7 @@ dependencies = [ "sp-core", "sp-inherents", "sp-io", + "sp-mmr-primitives", "sp-npos-elections", "sp-offchain", "sp-runtime", @@ -11856,8 +12068,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "frame-support", "polkadot-primitives", @@ -11928,9 +12140,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-sys" -version = "0.32.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3df6e476185f92a12c072be4a189a0210dcdcf512a1891d6dff9edb874deadc6" +checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" dependencies = [ "windows_aarch64_msvc", "windows_i686_gnu", @@ -11941,33 +12153,33 @@ dependencies = [ [[package]] name = "windows_aarch64_msvc" -version = "0.32.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5" +checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" [[package]] name = "windows_i686_gnu" -version = "0.32.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615" +checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" [[package]] name = "windows_i686_msvc" -version = "0.32.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172" +checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" [[package]] name = "windows_x86_64_gnu" -version = "0.32.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc" +checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" [[package]] name = "windows_x86_64_msvc" -version = "0.32.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316" +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" [[package]] name = "winreg" @@ -12010,8 +12222,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -12023,8 +12235,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "frame-support", "frame-system", @@ -12043,8 +12255,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.19" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +version = "0.9.20" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "frame-benchmarking", "frame-support", @@ -12062,7 +12274,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.19#f00a2772497aadddf75b8b4b475843ea0d910c48" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" dependencies = [ "Inflector", "proc-macro2", @@ -12086,9 +12298,9 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.5.4" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb5728b8afd3f280a869ce1d4c554ffaed35f45c231fc41bfbd0381bef50317" +checksum = "94693807d016b2f2d2e14420eb3bfcca689311ff775dcf113d74ea624b7cdf07" dependencies = [ "zeroize_derive", ] @@ -12107,18 +12319,18 @@ dependencies = [ [[package]] name = "zstd" -version = "0.9.2+zstd.1.5.1" +version = "0.10.0+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2390ea1bf6c038c39674f22d95f0564725fc06034a47129179810b2fc58caa54" +checksum = "3b1365becbe415f3f0fcd024e2f7b45bacfb5bdd055f0dc113571394114e7bdd" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "4.1.3+zstd.1.5.1" +version = "4.1.4+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e99d81b99fb3c2c2c794e3fe56c305c63d5173a16a46b5850b07c935ffc7db79" +checksum = "2f7cd17c9af1a4d6c24beb1cc54b17e2ef7b593dc92f19e9d9acad8b182bbaee" dependencies = [ "libc", "zstd-sys", @@ -12126,9 +12338,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "1.6.2+zstd.1.5.1" +version = "1.6.3+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2daf2f248d9ea44454bfcb2516534e8b8ad2fc91bf818a1885495fc42bc8ac9f" +checksum = "fc49afa5c8d634e75761feda8c592051e7eeb4683ba827211eb0d731d3402ea8" dependencies = [ "cc", "libc", diff --git a/node/Cargo.toml b/node/Cargo.toml index 3877593d..c8fb30a1 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -26,63 +26,63 @@ jsonrpc-core = "18.0.0" parachain-template-runtime = { path = "../runtime" } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"], branch = "polkadot-v0.9.19" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"], branch = "polkadot-v0.9.19" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"], branch = "polkadot-v0.9.19" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"], branch = "polkadot-v0.9.20" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"], branch = "polkadot-v0.9.20" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"], branch = "polkadot-v0.9.20" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.19" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.19" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.19" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.19" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.19" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.20" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.20" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.20" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.20" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.20" } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } -cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } -cumulus-primitives-core ={ git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } -cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.19" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } +cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } +cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } +cumulus-primitives-core ={ git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } +cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } [features] default = [] diff --git a/node/src/command.rs b/node/src/command.rs index 24f22a71..a721edb7 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -262,6 +262,7 @@ pub fn run() -> Result<()> { cmd.run(config, partials.client.clone(), db, storage) }), BenchmarkCmd::Overhead(_) => Err("Unsupported benchmarking command".into()), + BenchmarkCmd::Machine(cmd) => runner.sync_run(|config| cmd.run(&config)), } }, Some(Subcommand::TryRuntime(cmd)) => { diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 749a4a0a..8f31dbe2 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -16,17 +16,17 @@ codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive scale-info = { version = "2.0.0", default-features = false, features = ["derive"] } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.19" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.20" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } [dev-dependencies] serde = { version = "1.0.132" } # Substrate -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } [features] default = ["std"] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index b84c32b8..e1ec750b 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,7 +12,7 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.19" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } @@ -26,54 +26,54 @@ smallvec = "1.6.1" pallet-template = { path = "../pallets/template", default-features = false } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.19" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.19" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.19" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.19" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.20" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.20" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.20" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.19" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.19" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.19" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.19" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.19" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.19" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.20" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.20" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.20" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.20" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.20" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.20" } # Cumulus -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19" } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19" } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19" } -cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19", version = "3.0.0"} -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19" } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19" } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19" } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19" } -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19" } -parachain-info = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.19" } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20" } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20" } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20" } +cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20", version = "3.0.0"} +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20" } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20" } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20" } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20" } +pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20" } +parachain-info = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20" } [features] default = [ From d656f6612a24a4d2f2d0ea416d1700180bf4af94 Mon Sep 17 00:00:00 2001 From: Bruno Galvao Date: Wed, 25 May 2022 00:02:34 -0400 Subject: [PATCH 54/91] update to polkadot-v0.9.22 (#111) --- Cargo.lock | 2246 ++++++++++++++++------------------- node/Cargo.toml | 109 +- node/src/cli.rs | 10 + node/src/command.rs | 28 +- node/src/rpc.rs | 19 +- node/src/service.rs | 32 +- pallets/template/Cargo.toml | 12 +- runtime/Cargo.toml | 94 +- 8 files changed, 1197 insertions(+), 1353 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 239a8cfb..a365f3c4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -44,7 +44,7 @@ checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ "cfg-if 1.0.0", "cipher", - "cpufeatures 0.2.2", + "cpufeatures", "opaque-debug 0.3.0", ] @@ -94,7 +94,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -216,9 +216,9 @@ dependencies = [ "parking", "polling", "slab", - "socket2 0.4.4", + "socket2", "waker-fn", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -253,7 +253,7 @@ dependencies = [ "libc", "once_cell", "signal-hook", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -267,6 +267,7 @@ dependencies = [ "async-global-executor", "async-io", "async-lock", + "async-process", "crossbeam-utils", "futures-channel", "futures-core", @@ -286,15 +287,16 @@ dependencies = [ [[package]] name = "async-std-resolver" -version = "0.20.4" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf3e776afdf3a2477ef4854b85ba0dff3bd85792f685fb3c68948b4d304e4f0" +checksum = "0f2f8a4a203be3325981310ab243a28e6e4ea55b6519bffce05d41ab60e09ad8" dependencies = [ "async-std", "async-trait", "futures-io", "futures-util", "pin-utils", + "socket2", "trust-dns-resolver", ] @@ -315,26 +317,13 @@ dependencies = [ "syn", ] -[[package]] -name = "asynchronous-codec" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb4401f0a3622dad2e0763fa79e0eb328bc70fb7dccfdd645341f00d671247d6" -dependencies = [ - "bytes 1.1.0", - "futures-sink", - "futures-util", - "memchr", - "pin-project-lite 0.2.9", -] - [[package]] name = "asynchronous-codec" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0de5164e5edbf51c45fb8c2d9664ae1c095cce1b265ecf7569093c0d66ef690" dependencies = [ - "bytes 1.1.0", + "bytes", "futures-sink", "futures-util", "memchr", @@ -364,7 +353,7 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ "hermit-abi", "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -426,12 +415,6 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" -[[package]] -name = "base64ct" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea908e7347a8c64e378c17e30ef880ad73e3b4498346b055c2c00ea342f3179" - [[package]] name = "beef" version = "0.5.1" @@ -444,7 +427,7 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "beefy-primitives", "fnv", @@ -478,15 +461,12 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "beefy-gadget", "beefy-primitives", "futures 0.3.21", - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "jsonrpc-pubsub", + "jsonrpsee", "log", "parity-scale-codec", "parking_lot 0.12.0", @@ -501,12 +481,12 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "parity-scale-codec", "scale-info", @@ -569,17 +549,6 @@ dependencies = [ "wyz", ] -[[package]] -name = "blake2" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4e37d16930f5459780f5621038b6382b9bb37c19016f39fb6b5808d831f174" -dependencies = [ - "crypto-mac 0.8.0", - "digest 0.9.0", - "opaque-debug 0.3.0", -] - [[package]] name = "blake2" version = "0.10.4" @@ -611,29 +580,25 @@ dependencies = [ ] [[package]] -name = "blake2s_simd" -version = "0.5.11" +name = "blake2b_simd" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e461a7034e85b211a4acb57ee2e6730b32912b06c08cc242243c39fc21ae6a2" +checksum = "72936ee4afc7f8f736d1c38383b56480b5497b4617b4a77bdbf1d2ababc76127" dependencies = [ "arrayref", - "arrayvec 0.5.2", + "arrayvec 0.7.2", "constant_time_eq", ] [[package]] -name = "blake3" -version = "0.3.8" +name = "blake2s_simd" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b64485778c4f16a6a5a9d335e80d449ac6c70cdd6a06d2af18a6f6f775a125b3" +checksum = "db539cc2b5f6003621f1cd9ef92d7ded8ea5232c7de0f9faa2de251cd98730d4" dependencies = [ "arrayref", - "arrayvec 0.5.2", - "cc", - "cfg-if 0.1.10", + "arrayvec 0.7.2", "constant_time_eq", - "crypto-mac 0.8.0", - "digest 0.9.0", ] [[package]] @@ -712,9 +677,9 @@ dependencies = [ [[package]] name = "bounded-vec" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b47cca82fca99417fe405f09d93bb8fff90bdd03d13c631f18096ee123b4281c" +checksum = "3372be4090bf9d4da36bd8ba7ce6ca1669503d0cf6e667236c6df7f053153eb6" dependencies = [ "thiserror", ] @@ -722,7 +687,7 @@ dependencies = [ [[package]] name = "bp-header-chain" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "bp-runtime", "finality-grandpa", @@ -739,7 +704,7 @@ dependencies = [ [[package]] name = "bp-message-dispatch" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "bp-runtime", "frame-support", @@ -751,7 +716,7 @@ dependencies = [ [[package]] name = "bp-messages" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "bitvec", "bp-runtime", @@ -768,7 +733,7 @@ dependencies = [ [[package]] name = "bp-polkadot-core" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "bp-messages", "bp-runtime", @@ -786,7 +751,7 @@ dependencies = [ [[package]] name = "bp-rococo" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -803,7 +768,7 @@ dependencies = [ [[package]] name = "bp-runtime" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "frame-support", "hash-db", @@ -821,7 +786,7 @@ dependencies = [ [[package]] name = "bp-test-utils" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "bp-header-chain", "ed25519-dalek", @@ -836,7 +801,7 @@ dependencies = [ [[package]] name = "bp-wococo" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -851,7 +816,7 @@ dependencies = [ [[package]] name = "bridge-runtime-common" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "bp-message-dispatch", "bp-messages", @@ -924,16 +889,6 @@ version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" -[[package]] -name = "bytes" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" -dependencies = [ - "byteorder", - "iovec", -] - [[package]] name = "bytes" version = "1.1.0" @@ -1026,21 +981,21 @@ checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" [[package]] name = "chacha20" -version = "0.7.1" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fee7ad89dc1128635074c268ee661f90c3f7e83d9fd12910608c36b47d6c3412" +checksum = "01b72a433d0cf2aef113ba70f62634c56fddb0f244e6377185c56a7cadbd8f91" dependencies = [ "cfg-if 1.0.0", "cipher", - "cpufeatures 0.1.5", + "cpufeatures", "zeroize", ] [[package]] name = "chacha20poly1305" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1580317203210c517b6d44794abfbe600698276db18127e37ad3e69bf5e848e5" +checksum = "3b84ed6d1d5f7aa9bdde921a5090e0ca4d934d250ea3b402a5fab3a994e28a2a" dependencies = [ "aead", "chacha20", @@ -1059,18 +1014,20 @@ dependencies = [ "num-integer", "num-traits", "time", - "winapi 0.3.9", + "winapi", ] [[package]] name = "cid" -version = "0.6.1" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff0e3bc0b6446b3f9663c1a6aba6ef06c5aeaa1bc92bd18077be337198ab9768" +checksum = "a52cffa791ce5cf490ac3b2d6df970dc04f931b04e727be3c3e220e17164dfc4" dependencies = [ + "core2", "multibase", - "multihash 0.13.2", - "unsigned-varint 0.5.1", + "multihash", + "serde", + "unsigned-varint", ] [[package]] @@ -1197,21 +1154,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" [[package]] -name = "cpp_demangle" -version = "0.3.5" +name = "core2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" dependencies = [ - "cfg-if 1.0.0", + "memchr", ] [[package]] -name = "cpufeatures" -version = "0.1.5" +name = "cpp_demangle" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71ef" +checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f" dependencies = [ - "libc", + "cfg-if 1.0.0", ] [[package]] @@ -1488,18 +1445,18 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "clap", "sc-cli", "sc-service", - "url 2.2.2", + "url", ] [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1523,7 +1480,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1552,7 +1509,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1573,7 +1530,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1598,7 +1555,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -1622,7 +1579,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1652,7 +1609,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "frame-executive", "frame-support", @@ -1670,7 +1627,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1688,7 +1645,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1718,9 +1675,9 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate", "proc-macro2", "quote", "syn", @@ -1729,7 +1686,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "frame-benchmarking", "frame-support", @@ -1743,7 +1700,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1760,7 +1717,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1779,7 +1736,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "frame-support", "parity-scale-codec", @@ -1795,7 +1752,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1818,7 +1775,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "cumulus-primitives-core", "futures 0.3.21", @@ -1831,7 +1788,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1848,7 +1805,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1862,6 +1819,7 @@ dependencies = [ "sc-consensus-babe", "sc-network", "sc-service", + "sc-sysinfo", "sc-telemetry", "sc-tracing", "sp-api", @@ -1876,7 +1834,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1900,7 +1858,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "async-trait", "backoff", @@ -1920,13 +1878,13 @@ dependencies = [ "sp-state-machine", "sp-storage", "tracing", - "url 2.2.2", + "url", ] [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1962,6 +1920,19 @@ dependencies = [ "zeroize", ] +[[package]] +name = "curve25519-dalek" +version = "4.0.0-pre.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4033478fbf70d6acf2655ac70da91ee65852d69daf7a67bf7a2f518fb47aafcf" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.6.3", + "subtle", + "zeroize", +] + [[package]] name = "data-encoding" version = "2.3.2" @@ -2017,7 +1988,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "rustc_version 0.4.0", + "rustc_version", "syn", ] @@ -2077,7 +2048,7 @@ checksum = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901" dependencies = [ "libc", "redox_users 0.3.5", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2088,7 +2059,7 @@ checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" dependencies = [ "libc", "redox_users 0.4.3", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2099,7 +2070,7 @@ checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ "libc", "redox_users 0.4.3", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2120,9 +2091,9 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "dtoa" -version = "0.4.8" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" +checksum = "5caaa75cbd2b960ff1e5392d2cfb1f44717fffe12fc1f32b7b5d1267f99732a6" [[package]] name = "dyn-clonable" @@ -2159,6 +2130,7 @@ checksum = "d0d69ae62e0ce582d56380743515fefaf1a8c70cec685d9677636d7e30ae9dc9" dependencies = [ "der", "elliptic-curve", + "rfc6979", "signature", ] @@ -2217,9 +2189,9 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" [[package]] name = "enum-as-inner" -version = "0.3.4" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "570d109b813e904becc80d8d5da38376818a143348413f7149f1340fe04754d4" +checksum = "21cdad81446a7f7dc43f6a77409efeb9733d2fa65553efef6018ef257c959b73" dependencies = [ "heck 0.4.0", "proc-macro2", @@ -2285,7 +2257,7 @@ checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" dependencies = [ "errno-dragonfly", "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2319,7 +2291,7 @@ version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a718c0675c555c5f976fff4ea9e2c150fa06cefa201cadef87cfbf9324075881" dependencies = [ - "blake3 1.3.1", + "blake3", "fs-err", "proc-macro2", "quote", @@ -2331,7 +2303,7 @@ version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3774182a5df13c3d1690311ad32fbe913feef26baba609fa2dd5f72042bd2ab6" dependencies = [ - "blake2 0.10.4", + "blake2", "fs-err", "proc-macro2", "quote", @@ -2377,7 +2349,7 @@ checksum = "f5aa1e3ae159e592ad222dc90c5acbad632b527779ba88486abe92782ab268bd" dependencies = [ "expander 0.0.4", "indexmap", - "proc-macro-crate 1.1.3", + "proc-macro-crate", "proc-macro2", "quote", "syn", @@ -2469,7 +2441,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "parity-scale-codec", ] @@ -2481,13 +2453,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" dependencies = [ "matches", - "percent-encoding 2.1.0", + "percent-encoding", ] [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-support", "frame-system", @@ -2509,7 +2481,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "Inflector", "chrono", @@ -2522,6 +2494,7 @@ dependencies = [ "hex", "itertools", "kvdb", + "lazy_static", "linked-hash-map", "log", "memory-db", @@ -2551,15 +2524,16 @@ dependencies = [ "sp-storage", "sp-trie", "tempfile", + "thiserror", "thousands", ] [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate", "proc-macro2", "quote", "syn", @@ -2568,7 +2542,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2584,7 +2558,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-support", "frame-system", @@ -2612,12 +2586,13 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "bitflags", "frame-metadata", "frame-support-procedural", "impl-trait-for-tuples", + "k256", "log", "once_cell", "parity-scale-codec", @@ -2641,7 +2616,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2653,10 +2628,10 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-support-procedural-tools-derive", - "proc-macro-crate 1.1.3", + "proc-macro-crate", "proc-macro2", "quote", "syn", @@ -2665,7 +2640,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "proc-macro2", "quote", @@ -2675,7 +2650,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-support", "log", @@ -2692,7 +2667,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -2707,7 +2682,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "parity-scale-codec", "sp-api", @@ -2716,7 +2691,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-support", "sp-api", @@ -2739,7 +2714,7 @@ dependencies = [ "lazy_static", "libc", "libloading 0.5.2", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2749,7 +2724,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2758,22 +2733,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394" -[[package]] -name = "fuchsia-zircon" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -dependencies = [ - "bitflags", - "fuchsia-zircon-sys", -] - -[[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" - [[package]] name = "funty" version = "2.0.0" @@ -2863,13 +2822,13 @@ dependencies = [ [[package]] name = "futures-rustls" -version = "0.21.1" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a1387e07917c711fb4ee4f48ea0adb04a3c9739e53ef85bf43ae1edc2937a8b" +checksum = "e01fe9932a224b72b45336d96040aa86386d674a31d0af27d800ea7bc8ca97fe" dependencies = [ "futures-io", - "rustls 0.19.1", - "webpki 0.21.4", + "rustls 0.20.4", + "webpki 0.22.0", ] [[package]] @@ -3021,7 +2980,7 @@ version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57" dependencies = [ - "bytes 1.1.0", + "bytes", "fnv", "futures-core", "futures-sink", @@ -3030,7 +2989,7 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util 0.7.1", + "tokio-util", "tracing", ] @@ -3162,7 +3121,7 @@ checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" dependencies = [ "libc", "match_cfg", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3171,7 +3130,7 @@ version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff8670570af52249509a86f5e3e18a08c60b177071826898fde8997cf5f6bfbb" dependencies = [ - "bytes 1.1.0", + "bytes", "fnv", "itoa 1.0.1", ] @@ -3182,7 +3141,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" dependencies = [ - "bytes 1.1.0", + "bytes", "http", "pin-project-lite 0.2.9", ] @@ -3211,7 +3170,7 @@ version = "0.14.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b26ae0a80afebe130861d90abf98e3814a4f28a4c6ffeb5ab8ebb2be311e0ef2" dependencies = [ - "bytes 1.1.0", + "bytes", "futures-channel", "futures-core", "futures-util", @@ -3222,7 +3181,7 @@ dependencies = [ "httpdate", "itoa 1.0.1", "pin-project-lite 0.2.9", - "socket2 0.4.4", + "socket2", "tokio", "tower-service", "tracing", @@ -3246,33 +3205,6 @@ dependencies = [ "webpki 0.21.4", ] -[[package]] -name = "hyper-rustls" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac" -dependencies = [ - "http", - "hyper", - "log", - "rustls 0.20.4", - "rustls-native-certs 0.6.2", - "tokio", - "tokio-rustls 0.23.4", - "webpki-roots 0.22.3", -] - -[[package]] -name = "idna" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" -dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", -] - [[package]] name = "idna" version = "0.2.3" @@ -3286,39 +3218,30 @@ dependencies = [ [[package]] name = "if-addrs" -version = "0.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2273e421f7c4f0fc99e1934fe4776f59d8df2972f4199d703fc0da9f2a9f73de" -dependencies = [ - "if-addrs-sys", - "libc", - "winapi 0.3.9", -] - -[[package]] -name = "if-addrs-sys" -version = "0.3.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de74b9dd780476e837e5eb5ab7c88b49ed304126e412030a0adba99c8efe79ea" +checksum = "cbc0fa01ffc752e9dbc72818cdb072cd028b86be5e09dd04c5a643704fe101a9" dependencies = [ - "cc", "libc", + "winapi", ] [[package]] name = "if-watch" -version = "0.2.2" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae8ab7f67bad3240049cb24fb9cb0b4c2c6af4c245840917fbbdededeee91179" +checksum = "ae8f4a3c3d4c89351ca83e120c1c00b27df945d38e05695668c9d4b4f7bc52f3" dependencies = [ "async-io", + "core-foundation", + "fnv", "futures 0.3.21", - "futures-lite", "if-addrs", "ipnet", - "libc", "log", - "winapi 0.3.9", + "rtnetlink", + "system-configuration", + "windows", ] [[package]] @@ -3391,15 +3314,6 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec58677acfea8a15352d42fc87d11d63596ade9239e0a7c9352914417515dbe6" -[[package]] -name = "iovec" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" -dependencies = [ - "libc", -] - [[package]] name = "ip_network" version = "0.4.1" @@ -3408,13 +3322,13 @@ checksum = "aa2f047c0a98b2f299aa5d6d7088443570faae494e9ae1305e48be000c9e0eb1" [[package]] name = "ipconfig" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7e2f18aece9709094573a9f24f483c4f65caa4298e2f7ae1b71cc65d853fad7" +checksum = "723519edce41262b05d4143ceb95050e4c614f483e78e9fd9e39a8275a84ad98" dependencies = [ - "socket2 0.3.19", + "socket2", "widestring", - "winapi 0.3.9", + "winapi", "winreg", ] @@ -3463,158 +3377,28 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "jsonrpc-client-transports" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b99d4207e2a04fb4581746903c2bb7eb376f88de9c699d0f3e10feeac0cd3a" -dependencies = [ - "derive_more", - "futures 0.3.21", - "jsonrpc-core", - "jsonrpc-pubsub", - "log", - "serde", - "serde_json", - "url 1.7.2", -] - -[[package]] -name = "jsonrpc-core" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" -dependencies = [ - "futures 0.3.21", - "futures-executor", - "futures-util", - "log", - "serde", - "serde_derive", - "serde_json", -] - -[[package]] -name = "jsonrpc-core-client" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b51da17abecbdab3e3d4f26b01c5ec075e88d3abe3ab3b05dc9aa69392764ec0" -dependencies = [ - "futures 0.3.21", - "jsonrpc-client-transports", -] - -[[package]] -name = "jsonrpc-derive" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b939a78fa820cdfcb7ee7484466746a7377760970f6f9c6fe19f9edcc8a38d2" -dependencies = [ - "proc-macro-crate 0.1.5", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "jsonrpc-http-server" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1dea6e07251d9ce6a552abfb5d7ad6bc290a4596c8dcc3d795fae2bbdc1f3ff" -dependencies = [ - "futures 0.3.21", - "hyper", - "jsonrpc-core", - "jsonrpc-server-utils", - "log", - "net2", - "parking_lot 0.11.2", - "unicase", -] - -[[package]] -name = "jsonrpc-ipc-server" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "382bb0206323ca7cda3dcd7e245cea86d37d02457a02a975e3378fb149a48845" -dependencies = [ - "futures 0.3.21", - "jsonrpc-core", - "jsonrpc-server-utils", - "log", - "parity-tokio-ipc", - "parking_lot 0.11.2", - "tower-service", -] - -[[package]] -name = "jsonrpc-pubsub" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240f87695e6c6f62fb37f05c02c04953cf68d6408b8c1c89de85c7a0125b1011" -dependencies = [ - "futures 0.3.21", - "jsonrpc-core", - "lazy_static", - "log", - "parking_lot 0.11.2", - "rand 0.7.3", - "serde", -] - -[[package]] -name = "jsonrpc-server-utils" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4fdea130485b572c39a460d50888beb00afb3e35de23ccd7fad8ff19f0e0d4" -dependencies = [ - "bytes 1.1.0", - "futures 0.3.21", - "globset", - "jsonrpc-core", - "lazy_static", - "log", - "tokio", - "tokio-stream", - "tokio-util 0.6.9", - "unicase", -] - -[[package]] -name = "jsonrpc-ws-server" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f892c7d766369475ab7b0669f417906302d7c0fb521285c0a0c92e52e7c8e946" -dependencies = [ - "futures 0.3.21", - "jsonrpc-core", - "jsonrpc-server-utils", - "log", - "parity-ws", - "parking_lot 0.11.2", - "slab", -] - [[package]] name = "jsonrpsee" -version = "0.10.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91dc760c341fa81173f9a434931aaf32baad5552b0230cc6c93e8fb7eaad4c19" +checksum = "a1f2ab5a60e558e74ea93bcf5164ebc47939a7fff8938fa9b5233bbc63e16061" dependencies = [ "jsonrpsee-core", - "jsonrpsee-http-client", + "jsonrpsee-http-server", "jsonrpsee-proc-macros", "jsonrpsee-types", "jsonrpsee-ws-client", + "jsonrpsee-ws-server", + "tracing", ] [[package]] name = "jsonrpsee-client-transport" -version = "0.10.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "765f7a36d5087f74e3b3b47805c2188fef8eb54afcb587b078d9f8ebfe9c7220" +checksum = "26d682f4a55081a2be3e639280c640523070e4aeb8ee2fd8dd9168fdae57a9db" dependencies = [ - "futures 0.3.21", + "futures-util", "http", "jsonrpsee-core", "jsonrpsee-types", @@ -3624,25 +3408,29 @@ dependencies = [ "thiserror", "tokio", "tokio-rustls 0.23.4", - "tokio-util 0.7.1", + "tokio-util", "tracing", - "webpki-roots 0.22.3", + "webpki-roots", ] [[package]] name = "jsonrpsee-core" -version = "0.10.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82ef77ecd20c2254d54f5da8c0738eacca61e6b6511268a8f2753e3148c6c706" +checksum = "6e27462b21279edf9a6a91f46ffbe125e9cdc58b901d2e08bf59b31a47d7d0ab" dependencies = [ "anyhow", "arrayvec 0.7.2", + "async-lock", "async-trait", "beef", "futures-channel", + "futures-timer", "futures-util", "hyper", "jsonrpsee-types", + "parking_lot 0.12.0", + "rand 0.8.5", "rustc-hash", "serde", "serde_json", @@ -3653,31 +3441,31 @@ dependencies = [ ] [[package]] -name = "jsonrpsee-http-client" -version = "0.10.1" +name = "jsonrpsee-http-server" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92709e0b8255691f4df954a0176b1cbc3312f151e7ed2e643812e8bd121f1d1c" +checksum = "7178f16eabd7154c094e24d295b9ee355ec1e5f24c328759c56255ff7bbd4548" dependencies = [ - "async-trait", + "futures-channel", + "futures-util", + "globset", "hyper", - "hyper-rustls 0.23.0", "jsonrpsee-core", "jsonrpsee-types", - "rustc-hash", - "serde", + "lazy_static", "serde_json", - "thiserror", "tokio", "tracing", + "unicase", ] [[package]] name = "jsonrpsee-proc-macros" -version = "0.10.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7291c72805bc7d413b457e50d8ef3e87aa554da65ecbbc278abb7dfc283e7f0" +checksum = "8b8d7f449cab3b747f12c3efc27f5cad537f3b597c6a3838b0fac628f4bf730a" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate", "proc-macro2", "quote", "syn", @@ -3685,9 +3473,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.10.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b6aa52f322cbf20c762407629b8300f39bcc0cf0619840d9252a2f65fd2dd9" +checksum = "8fd11763134104122ddeb0f97e4bbe393058017dfb077db63fbf44b4dd0dd86e" dependencies = [ "anyhow", "beef", @@ -3699,15 +3487,32 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.10.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd66d18bab78d956df24dd0d2e41e4c00afbb818fda94a98264bdd12ce8506ac" +checksum = "76f15180afb3761c7a3a32c0a8b680788176dcfdfe725b24c1758c90b1d1595b" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", "jsonrpsee-types", ] +[[package]] +name = "jsonrpsee-ws-server" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfb6c21556c551582b56e4e8e6e6249b0bbdb69bb7fa39efe9b9a6b54af9f206" +dependencies = [ + "futures-channel", + "futures-util", + "jsonrpsee-core", + "jsonrpsee-types", + "serde_json", + "soketto", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "k256" version = "0.10.4" @@ -3726,20 +3531,10 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" -[[package]] -name = "kernel32-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - [[package]] name = "kusama-runtime" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "beefy-primitives", "bitvec", @@ -3774,6 +3569,8 @@ dependencies = [ "pallet-membership", "pallet-multisig", "pallet-nicks", + "pallet-nomination-pools", + "pallet-nomination-pools-benchmarking", "pallet-offences", "pallet-offences-benchmarking", "pallet-preimage", @@ -3829,8 +3626,8 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "frame-support", "polkadot-primitives", @@ -3912,7 +3709,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" dependencies = [ "cc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3922,7 +3719,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" dependencies = [ "cfg-if 1.0.0", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3933,14 +3730,18 @@ checksum = "33a33a362ce288760ec6a508b94caaec573ae7d3bbbd91b87aa0bad4456839db" [[package]] name = "libp2p" -version = "0.40.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bec54343492ba5940a6c555e512c6721139835d28c59bc22febece72dfd0d9d" +checksum = "475ce2ac4a9727e53a519f6ee05b38abfcba8f0d39c4d24f103d184e36fd5b0f" dependencies = [ "atomic", - "bytes 1.1.0", + "bytes", "futures 0.3.21", + "futures-timer", + "getrandom 0.2.6", + "instant", "lazy_static", + "libp2p-autonat", "libp2p-core", "libp2p-deflate", "libp2p-dns", @@ -3966,17 +3767,36 @@ dependencies = [ "libp2p-websocket", "libp2p-yamux", "multiaddr", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "pin-project 1.0.10", + "rand 0.7.3", "smallvec", - "wasm-timer", +] + +[[package]] +name = "libp2p-autonat" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a13b690e65046af6a09c0b27bd9508fa1cab0efce889de74b0b643b9d2a98f9a" +dependencies = [ + "async-trait", + "futures 0.3.21", + "futures-timer", + "instant", + "libp2p-core", + "libp2p-request-response", + "libp2p-swarm", + "log", + "prost", + "prost-build", + "rand 0.8.5", ] [[package]] name = "libp2p-core" -version = "0.30.2" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86aad7d54df283db817becded03e611137698a6509d4237a96881976a162340c" +checksum = "db5b02602099fb75cb2d16f9ea860a320d6eb82ce41e95ab680912c454805cd5" dependencies = [ "asn1_der", "bs58", @@ -3990,28 +3810,28 @@ dependencies = [ "libsecp256k1", "log", "multiaddr", - "multihash 0.14.0", + "multihash", "multistream-select", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "pin-project 1.0.10", "prost", "prost-build", "rand 0.8.5", "ring", "rw-stream-sink", - "sha2 0.9.9", + "sha2 0.10.2", "smallvec", "thiserror", - "unsigned-varint 0.7.1", + "unsigned-varint", "void", "zeroize", ] [[package]] name = "libp2p-deflate" -version = "0.30.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51a800adb195f33de63f4b17b63fe64cfc23bf2c6a0d3d0d5321328664e65197" +checksum = "6b1d37f042f748e224f04785d0e987ae09a2aa518d6401d82d412dad83e360ed" dependencies = [ "flate2", "futures 0.3.21", @@ -4020,9 +3840,9 @@ dependencies = [ [[package]] name = "libp2p-dns" -version = "0.30.0" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb8f89d15cb6e3c5bc22afff7513b11bab7856f2872d3cfba86f7f63a06bc498" +checksum = "066e33e854e10b5c93fc650458bf2179c7e0d143db260b0963e44a94859817f1" dependencies = [ "async-std-resolver", "futures 0.3.21", @@ -4034,9 +3854,9 @@ dependencies = [ [[package]] name = "libp2p-floodsub" -version = "0.31.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aab3d7210901ea51b7bae2b581aa34521797af8c4ec738c980bda4a06434067f" +checksum = "733d3ea6ebe7a7a85df2bc86678b93f24b015fae5fe3b3acc4c400e795a55d2d" dependencies = [ "cuckoofilter", "fnv", @@ -4052,78 +3872,82 @@ dependencies = [ [[package]] name = "libp2p-gossipsub" -version = "0.33.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfeead619eb5dac46e65acc78c535a60aaec803d1428cca6407c3a4fc74d698d" +checksum = "a90c989a7c0969c2ab63e898da9bc735e3be53fb4f376e9c045ce516bcc9f928" dependencies = [ - "asynchronous-codec 0.6.0", + "asynchronous-codec", "base64", "byteorder", - "bytes 1.1.0", + "bytes", "fnv", "futures 0.3.21", "hex_fmt", + "instant", "libp2p-core", "libp2p-swarm", "log", + "prometheus-client", "prost", "prost-build", "rand 0.7.3", "regex", - "sha2 0.9.9", + "sha2 0.10.2", "smallvec", - "unsigned-varint 0.7.1", + "unsigned-varint", "wasm-timer", ] [[package]] name = "libp2p-identify" -version = "0.31.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cca1275574183f288ff8b72d535d5ffa5ea9292ef7829af8b47dcb197c7b0dcd" +checksum = "c5ef5a5b57904c7c33d6713ef918d239dc6b7553458f3475d87f8a18e9c651c8" dependencies = [ "futures 0.3.21", + "futures-timer", "libp2p-core", "libp2p-swarm", "log", - "lru 0.6.6", + "lru 0.7.5", "prost", "prost-build", "smallvec", - "wasm-timer", ] [[package]] name = "libp2p-kad" -version = "0.32.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2297dc0ca285f3a09d1368bde02449e539b46f94d32d53233f53f6625bcd3ba" +checksum = "564e6bd64d177446399ed835b9451a8825b07929d6daa6a94e6405592974725e" dependencies = [ "arrayvec 0.5.2", - "asynchronous-codec 0.6.0", - "bytes 1.1.0", + "asynchronous-codec", + "bytes", "either", "fnv", "futures 0.3.21", + "futures-timer", + "instant", "libp2p-core", "libp2p-swarm", "log", "prost", "prost-build", "rand 0.7.3", - "sha2 0.9.9", + "sha2 0.10.2", "smallvec", + "thiserror", "uint", - "unsigned-varint 0.7.1", + "unsigned-varint", "void", - "wasm-timer", ] [[package]] name = "libp2p-mdns" -version = "0.32.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c864b64bdc8a84ff3910a0df88e6535f256191a450870f1e7e10cbf8e64d45" +checksum = "611ae873c8e280ccfab0d57c7a13cac5644f364529e233114ff07863946058b0" dependencies = [ "async-io", "data-encoding", @@ -4136,49 +3960,51 @@ dependencies = [ "log", "rand 0.8.5", "smallvec", - "socket2 0.4.4", + "socket2", "void", ] [[package]] name = "libp2p-metrics" -version = "0.1.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4af432fcdd2f8ba4579b846489f8f0812cfd738ced2c0af39df9b1c48bbb6ab2" +checksum = "985be799bb3796e0c136c768208c3c06604a38430571906a13dcfeda225a3b9d" dependencies = [ "libp2p-core", + "libp2p-gossipsub", "libp2p-identify", "libp2p-kad", "libp2p-ping", + "libp2p-relay", "libp2p-swarm", - "open-metrics-client", + "prometheus-client", ] [[package]] name = "libp2p-mplex" -version = "0.30.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2cd64ef597f40e14bfce0497f50ecb63dd6d201c61796daeb4227078834fbf" +checksum = "442eb0c9fff0bf22a34f015724b4143ce01877e079ed0963c722d94c07c72160" dependencies = [ - "asynchronous-codec 0.6.0", - "bytes 1.1.0", + "asynchronous-codec", + "bytes", "futures 0.3.21", "libp2p-core", "log", "nohash-hasher", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "rand 0.7.3", "smallvec", - "unsigned-varint 0.7.1", + "unsigned-varint", ] [[package]] name = "libp2p-noise" -version = "0.33.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8772c7a99088221bb7ca9c5c0574bf55046a7ab4c319f3619b275f28c8fb87a" +checksum = "9dd7e0c94051cda67123be68cf6b65211ba3dde7277be9068412de3e7ffd63ef" dependencies = [ - "bytes 1.1.0", + "bytes", "curve25519-dalek 3.2.0", "futures 0.3.21", "lazy_static", @@ -4187,7 +4013,7 @@ dependencies = [ "prost", "prost-build", "rand 0.8.5", - "sha2 0.9.9", + "sha2 0.10.2", "snow", "static_assertions", "x25519-dalek", @@ -4196,33 +4022,34 @@ dependencies = [ [[package]] name = "libp2p-ping" -version = "0.31.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80ef7b0ec5cf06530d9eb6cf59ae49d46a2c45663bde31c25a12f682664adbcf" +checksum = "bf57a3c2e821331dda9fe612d4654d676ab6e33d18d9434a18cced72630df6ad" dependencies = [ "futures 0.3.21", + "futures-timer", + "instant", "libp2p-core", "libp2p-swarm", "log", "rand 0.7.3", "void", - "wasm-timer", ] [[package]] name = "libp2p-plaintext" -version = "0.30.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fba1a6ff33e4a274c89a3b1d78b9f34f32af13265cc5c46c16938262d4e945a" +checksum = "962c0fb0e7212fb96a69b87f2d09bcefd317935239bdc79cda900e7a8897a3fe" dependencies = [ - "asynchronous-codec 0.6.0", - "bytes 1.1.0", + "asynchronous-codec", + "bytes", "futures 0.3.21", "libp2p-core", "log", "prost", "prost-build", - "unsigned-varint 0.7.1", + "unsigned-varint", "void", ] @@ -4242,89 +4069,96 @@ dependencies = [ [[package]] name = "libp2p-relay" -version = "0.4.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2852b61c90fa8ce3c8fcc2aba76e6cefc20d648f9df29157d6b3a916278ef3e3" +checksum = "3aa754cb7bccef51ebc3c458c6bbcef89d83b578a9925438389be841527d408f" dependencies = [ - "asynchronous-codec 0.6.0", - "bytes 1.1.0", + "asynchronous-codec", + "bytes", + "either", "futures 0.3.21", "futures-timer", + "instant", "libp2p-core", "libp2p-swarm", "log", "pin-project 1.0.10", "prost", "prost-build", - "rand 0.7.3", + "rand 0.8.5", "smallvec", - "unsigned-varint 0.7.1", + "static_assertions", + "thiserror", + "unsigned-varint", "void", - "wasm-timer", ] [[package]] name = "libp2p-rendezvous" -version = "0.1.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14a6d2b9e7677eff61dc3d2854876aaf3976d84a01ef6664b610c77a0c9407c5" +checksum = "bbd0baab894c5b84da510b915d53264d566c3c35889f09931fe9edbd2a773bee" dependencies = [ - "asynchronous-codec 0.6.0", + "asynchronous-codec", "bimap", "futures 0.3.21", + "futures-timer", + "instant", "libp2p-core", "libp2p-swarm", "log", "prost", "prost-build", "rand 0.8.5", - "sha2 0.9.9", + "sha2 0.10.2", "thiserror", - "unsigned-varint 0.7.1", + "unsigned-varint", "void", - "wasm-timer", ] [[package]] name = "libp2p-request-response" -version = "0.13.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a877a4ced6d46bf84677e1974e8cf61fb434af73b2e96fb48d6cb6223a4634d8" +checksum = "b5e6a6fc6c9ad95661f46989473b34bd2993d14a4de497ff3b2668a910d4b869" dependencies = [ "async-trait", - "bytes 1.1.0", + "bytes", "futures 0.3.21", + "instant", "libp2p-core", "libp2p-swarm", "log", - "lru 0.7.5", "rand 0.7.3", "smallvec", - "unsigned-varint 0.7.1", - "wasm-timer", + "unsigned-varint", ] [[package]] name = "libp2p-swarm" -version = "0.31.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f5184a508f223bc100a12665517773fb8730e9f36fc09eefb670bf01b107ae9" +checksum = "8f0c69ad9e8f7c5fc50ad5ad9c7c8b57f33716532a2b623197f69f93e374d14c" dependencies = [ "either", + "fnv", "futures 0.3.21", + "futures-timer", + "instant", "libp2p-core", "log", + "pin-project 1.0.10", "rand 0.7.3", "smallvec", + "thiserror", "void", - "wasm-timer", ] [[package]] name = "libp2p-swarm-derive" -version = "0.25.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "072c290f727d39bdc4e9d6d1c847978693d25a673bd757813681e33e5f6c00c2" +checksum = "daf2fe8c80b43561355f4d51875273b5b6dfbac37952e8f64b1270769305c9d7" dependencies = [ "quote", "syn", @@ -4332,9 +4166,9 @@ dependencies = [ [[package]] name = "libp2p-tcp" -version = "0.30.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7399c5b6361ef525d41c11fcf51635724f832baf5819b30d3d873eabb4fbae4b" +checksum = "193447aa729c85aac2376828df76d171c1a589c9e6b58fcc7f9d9a020734122c" dependencies = [ "async-io", "futures 0.3.21", @@ -4344,14 +4178,14 @@ dependencies = [ "libc", "libp2p-core", "log", - "socket2 0.4.4", + "socket2", ] [[package]] name = "libp2p-uds" -version = "0.30.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8b7563e46218165dfd60f64b96f7ce84590d75f53ecbdc74a7dd01450dc5973" +checksum = "24bdab114f7f2701757d6541266e1131b429bbae382008f207f2114ee4222dcb" dependencies = [ "async-std", "futures 0.3.21", @@ -4361,9 +4195,9 @@ dependencies = [ [[package]] name = "libp2p-wasm-ext" -version = "0.30.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1008a302b73c5020251f9708c653f5ed08368e530e247cc9cd2f109ff30042cf" +checksum = "4f6ea0f84a967ef59a16083f222c18115ae2e91db69809dce275df62e101b279" dependencies = [ "futures 0.3.21", "js-sys", @@ -4375,9 +4209,9 @@ dependencies = [ [[package]] name = "libp2p-websocket" -version = "0.31.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e12df82d1ed64969371a9e65ea92b91064658604cc2576c2757f18ead9a1cf" +checksum = "c932834c3754501c368d1bf3d0fb458487a642b90fc25df082a3a2f3d3b32e37" dependencies = [ "either", "futures 0.3.21", @@ -4387,19 +4221,19 @@ dependencies = [ "quicksink", "rw-stream-sink", "soketto", - "url 2.2.2", - "webpki-roots 0.21.1", + "url", + "webpki-roots", ] [[package]] name = "libp2p-yamux" -version = "0.34.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7362abb8867d7187e7e93df17f460d554c997fc5c8ac57dc1259057f6889af" +checksum = "be902ebd89193cd020e89e89107726a38cfc0d16d18f613f4a37d046e92c7517" dependencies = [ "futures 0.3.21", "libp2p-core", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "thiserror", "yamux", ] @@ -4694,8 +4528,8 @@ dependencies = [ [[package]] name = "metered-channel" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "coarsetime", "crossbeam-queue", @@ -4733,25 +4567,6 @@ dependencies = [ "adler", ] -[[package]] -name = "mio" -version = "0.6.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" -dependencies = [ - "cfg-if 0.1.10", - "fuchsia-zircon", - "fuchsia-zircon-sys", - "iovec", - "kernel32-sys", - "libc", - "log", - "miow 0.2.2", - "net2", - "slab", - "winapi 0.2.8", -] - [[package]] name = "mio" version = "0.8.2" @@ -4760,34 +4575,10 @@ checksum = "52da4364ffb0e4fe33a9841a98a3f3014fb964045ce4f7a45a398243c8d6b0c9" dependencies = [ "libc", "log", - "miow 0.3.7", + "miow", "ntapi", "wasi 0.11.0+wasi-snapshot-preview1", - "winapi 0.3.9", -] - -[[package]] -name = "mio-extras" -version = "2.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" -dependencies = [ - "lazycell", - "log", - "mio 0.6.23", - "slab", -] - -[[package]] -name = "miow" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" -dependencies = [ - "kernel32-sys", - "net2", - "winapi 0.2.8", - "ws2_32-sys", + "winapi", ] [[package]] @@ -4796,7 +4587,7 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -4807,27 +4598,27 @@ checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" [[package]] name = "multiaddr" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48ee4ea82141951ac6379f964f71b20876d43712bea8faf6dd1a375e08a46499" +checksum = "3c580bfdd8803cce319b047d239559a22f809094aaea4ac13902a1fdcfcd4261" dependencies = [ "arrayref", "bs58", "byteorder", "data-encoding", - "multihash 0.14.0", - "percent-encoding 2.1.0", + "multihash", + "percent-encoding", "serde", "static_assertions", - "unsigned-varint 0.7.1", - "url 2.2.2", + "unsigned-varint", + "url", ] [[package]] name = "multibase" -version = "0.8.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b78c60039650ff12e140ae867ef5299a58e19dded4d334c849dc7177083667e2" +checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" dependencies = [ "base-x", "data-encoding", @@ -4836,41 +4627,28 @@ dependencies = [ [[package]] name = "multihash" -version = "0.13.2" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dac63698b887d2d929306ea48b63760431ff8a24fac40ddb22f9c7f49fb7cab" +checksum = "e3db354f401db558759dfc1e568d010a5d4146f4d3f637be1275ec4a3cf09689" dependencies = [ - "blake2b_simd", + "blake2b_simd 1.0.0", "blake2s_simd", - "blake3 0.3.8", - "digest 0.9.0", - "generic-array 0.14.5", - "multihash-derive", - "sha2 0.9.9", - "sha3 0.9.1", - "unsigned-varint 0.5.1", -] - -[[package]] -name = "multihash" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "752a61cd890ff691b4411423d23816d5866dd5621e4d1c5687a53b94b5a979d8" -dependencies = [ - "digest 0.9.0", - "generic-array 0.14.5", + "blake3", + "core2", + "digest 0.10.3", "multihash-derive", - "sha2 0.9.9", - "unsigned-varint 0.7.1", + "sha2 0.10.2", + "sha3 0.10.1", + "unsigned-varint", ] [[package]] name = "multihash-derive" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "424f6e86263cd5294cbd7f1e95746b95aca0e0d66bff31e5a40d6baa87b4aa99" +checksum = "fc076939022111618a5026d3be019fd8b366e76314538ff9a1b59ffbcbf98bcd" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate", "proc-macro-error", "proc-macro2", "quote", @@ -4886,16 +4664,16 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "multistream-select" -version = "0.10.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56a336acba8bc87c8876f6425407dbbe6c417bf478b22015f8fb0994ef3bc0ab" +checksum = "363a84be6453a70e63513660f4894ef815daf88e3356bffcda9ca27d810ce83b" dependencies = [ - "bytes 1.1.0", + "bytes", "futures 0.3.21", "log", "pin-project 1.0.10", "smallvec", - "unsigned-varint 0.7.1", + "unsigned-varint", ] [[package]] @@ -4943,14 +4721,81 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" [[package]] -name = "net2" -version = "0.2.37" +name = "netlink-packet-core" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" +checksum = "345b8ab5bd4e71a2986663e88c56856699d060e78e152e6e9d7966fcd5491297" dependencies = [ - "cfg-if 0.1.10", + "anyhow", + "byteorder", + "libc", + "netlink-packet-utils", +] + +[[package]] +name = "netlink-packet-route" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "733ea73609acfd7fa7ddadfb7bf709b0471668c456ad9513685af543a06342b2" +dependencies = [ + "anyhow", + "bitflags", + "byteorder", + "libc", + "netlink-packet-core", + "netlink-packet-utils", +] + +[[package]] +name = "netlink-packet-utils" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25af9cf0dc55498b7bd94a1508af7a78706aa0ab715a73c5169273e03c84845e" +dependencies = [ + "anyhow", + "byteorder", + "paste", + "thiserror", +] + +[[package]] +name = "netlink-proto" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef8785b8141e8432aa45fceb922a7e876d7da3fad37fa7e7ec702ace3aa0826b" +dependencies = [ + "bytes", + "futures 0.3.21", + "log", + "netlink-packet-core", + "netlink-sys", + "tokio", +] + +[[package]] +name = "netlink-sys" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e4c9f9547a08241bee7b6558b9b98e1f290d187de8b7cfca2bbb4937bcaa8f8" +dependencies = [ + "async-io", + "bytes", + "futures 0.3.21", + "libc", + "log", +] + +[[package]] +name = "nix" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4916f159ed8e5de0082076562152a76b7a1f64a01fd9d1e0fea002c37624faf" +dependencies = [ + "bitflags", + "cc", + "cfg-if 1.0.0", "libc", - "winapi 0.3.9", + "memoffset", ] [[package]] @@ -4981,7 +4826,7 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -5105,29 +4950,6 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" -[[package]] -name = "open-metrics-client" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7337d80c23c2d8b1349563981bc4fb531220733743ba8115454a67b181173f0d" -dependencies = [ - "dtoa", - "itoa 0.4.8", - "open-metrics-client-derive-text-encode", - "owning_ref", -] - -[[package]] -name = "open-metrics-client-derive-text-encode" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a15c83b586f00268c619c1cb3340ec1a6f59dd9ba1d9833a273a68e6d5cd8ffc" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "openssl-probe" version = "0.1.5" @@ -5161,7 +4983,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-support", "frame-system", @@ -5177,7 +4999,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-support", "frame-system", @@ -5193,7 +5015,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-support", "frame-system", @@ -5208,7 +5030,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -5232,7 +5054,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5252,7 +5074,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -5267,7 +5089,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "beefy-primitives", "frame-support", @@ -5283,14 +5105,13 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "beefy-merkle-tree", "beefy-primitives", "frame-support", "frame-system", "hex", - "k256", "log", "pallet-beefy", "pallet-mmr", @@ -5307,7 +5128,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -5325,7 +5146,7 @@ dependencies = [ [[package]] name = "pallet-bridge-dispatch" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "bp-message-dispatch", "bp-runtime", @@ -5342,7 +5163,7 @@ dependencies = [ [[package]] name = "pallet-bridge-grandpa" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "bp-header-chain", "bp-runtime", @@ -5364,7 +5185,7 @@ dependencies = [ [[package]] name = "pallet-bridge-messages" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "bitvec", "bp-message-dispatch", @@ -5385,7 +5206,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -5404,7 +5225,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5424,7 +5245,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -5441,7 +5262,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -5457,7 +5278,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5480,7 +5301,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5493,7 +5314,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -5511,7 +5332,7 @@ dependencies = [ [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -5526,7 +5347,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -5549,7 +5370,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5565,7 +5386,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -5585,7 +5406,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -5602,7 +5423,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -5619,7 +5440,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5637,11 +5458,9 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", + "jsonrpsee", "parity-scale-codec", "serde", "sp-api", @@ -5654,7 +5473,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -5669,7 +5488,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-support", "frame-system", @@ -5683,7 +5502,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-support", "frame-system", @@ -5698,7 +5517,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5717,7 +5536,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-support", "frame-system", @@ -5734,7 +5553,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5757,7 +5576,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -5773,7 +5592,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -5788,8 +5607,9 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ + "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", @@ -5802,7 +5622,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -5818,7 +5638,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-support", "frame-system", @@ -5839,7 +5659,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -5855,7 +5675,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-support", "frame-system", @@ -5869,7 +5689,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5892,9 +5712,9 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate", "proc-macro2", "quote", "syn", @@ -5903,7 +5723,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "log", "sp-arithmetic", @@ -5912,7 +5732,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-support", "frame-system", @@ -5941,7 +5761,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -5959,7 +5779,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -5978,7 +5798,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-support", "frame-system", @@ -5995,11 +5815,9 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", + "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", "sp-api", @@ -6012,7 +5830,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6023,7 +5841,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -6040,7 +5858,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -6056,7 +5874,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-benchmarking", "frame-support", @@ -6070,8 +5888,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "frame-support", "frame-system", @@ -6088,8 +5906,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "frame-benchmarking", "frame-support", @@ -6106,7 +5924,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.20#4bbedb30b1478494b410477498bd0a2221177a11" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -6136,7 +5954,7 @@ dependencies = [ "frame-benchmarking", "frame-benchmarking-cli", "hex-literal", - "jsonrpc-core", + "jsonrpsee", "log", "pallet-transaction-payment-rpc", "parachain-template-runtime", @@ -6156,6 +5974,7 @@ dependencies = [ "sc-rpc", "sc-rpc-api", "sc-service", + "sc-sysinfo", "sc-telemetry", "sc-tracing", "sc-transaction-pool", @@ -6241,9 +6060,9 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e73cd0b0a78045276b19eaae8eaaa20e44a1da9a0217ff934a810d9492ae701" +checksum = "55a7901b85874402471e131de3332dde0e51f38432c69a3853627c8e25433048" dependencies = [ "blake2-rfc", "crc32fast", @@ -6278,7 +6097,7 @@ version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c45ed1f39709f5a89338fab50e59816b2e8815f5bb58276e7ddf9afd495f73f8" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate", "proc-macro2", "quote", "syn", @@ -6290,20 +6109,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f" -[[package]] -name = "parity-tokio-ipc" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9981e32fb75e004cc148f5fb70342f393830e0a4aa62e3cc93b50976218d42b6" -dependencies = [ - "futures 0.3.21", - "libc", - "log", - "rand 0.7.3", - "tokio", - "winapi 0.3.9", -] - [[package]] name = "parity-util-mem" version = "0.11.0" @@ -6317,7 +6122,7 @@ dependencies = [ "parking_lot 0.12.0", "primitive-types", "smallvec", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -6346,24 +6151,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be5e13c266502aadf83426d87d81a0f5d1ef45b8027f5a471c360abfe4bfae92" -[[package]] -name = "parity-ws" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5983d3929ad50f12c3eb9a6743f19d691866ecd44da74c0a3308c3f8a56df0c6" -dependencies = [ - "byteorder", - "bytes 0.4.12", - "httparse", - "log", - "mio 0.6.23", - "mio-extras", - "rand 0.7.3", - "sha-1 0.8.2", - "slab", - "url 2.2.2", -] - [[package]] name = "parking" version = "2.0.0" @@ -6402,7 +6189,7 @@ dependencies = [ "libc", "redox_syscall 0.2.13", "smallvec", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -6448,12 +6235,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" -[[package]] -name = "percent-encoding" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" - [[package]] name = "percent-encoding" version = "2.1.0" @@ -6571,17 +6352,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" -[[package]] -name = "pkcs8" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0" -dependencies = [ - "der", - "spki", - "zeroize", -] - [[package]] name = "pkg-config" version = "0.3.25" @@ -6596,8 +6366,8 @@ checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "futures 0.3.21", "polkadot-node-network-protocol", @@ -6611,21 +6381,22 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "futures 0.3.21", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", + "rand 0.8.5", "tracing-gum", ] [[package]] name = "polkadot-availability-distribution" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "derive_more", "fatality", @@ -6647,8 +6418,8 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "fatality", "futures 0.3.21", @@ -6668,8 +6439,8 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "clap", "frame-benchmarking-cli", @@ -6682,6 +6453,7 @@ dependencies = [ "polkadot-service", "sc-cli", "sc-service", + "sc-sysinfo", "sc-tracing", "sp-core", "sp-trie", @@ -6692,8 +6464,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -6732,8 +6504,8 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "always-assert", "fatality", @@ -6753,8 +6525,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -6766,8 +6538,8 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "derive_more", "fatality", @@ -6789,8 +6561,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6803,8 +6575,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "futures 0.3.21", "futures-timer", @@ -6823,10 +6595,12 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ + "always-assert", "async-trait", + "bytes", "futures 0.3.21", "parity-scale-codec", "parking_lot 0.12.0", @@ -6842,8 +6616,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "futures 0.3.21", "parity-scale-codec", @@ -6860,8 +6634,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "bitvec", "derive_more", @@ -6889,8 +6663,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "bitvec", "futures 0.3.21", @@ -6909,10 +6683,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "bitvec", + "fatality", "futures 0.3.21", "polkadot-erasure-coding", "polkadot-node-primitives", @@ -6927,8 +6702,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "futures 0.3.21", "polkadot-node-subsystem", @@ -6942,8 +6717,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "async-trait", "futures 0.3.21", @@ -6960,8 +6735,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "futures 0.3.21", "polkadot-node-subsystem", @@ -6975,8 +6750,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "futures 0.3.21", "futures-timer", @@ -6992,8 +6767,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "fatality", "futures 0.3.21", @@ -7011,8 +6786,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "async-trait", "futures 0.3.21", @@ -7028,10 +6803,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "bitvec", + "fatality", "futures 0.3.21", "futures-timer", "polkadot-node-primitives", @@ -7045,8 +6821,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "always-assert", "assert_matches", @@ -7075,8 +6851,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "futures 0.3.21", "polkadot-node-primitives", @@ -7091,8 +6867,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "futures 0.3.21", "memory-lru", @@ -7109,8 +6885,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "async-std", "lazy_static", @@ -7127,8 +6903,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "bs58", "futures 0.3.21", @@ -7146,16 +6922,18 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "async-trait", + "derive_more", "fatality", "futures 0.3.21", "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", "polkadot-primitives", + "rand 0.8.5", "sc-authority-discovery", "sc-network", "strum 0.24.0", @@ -7164,8 +6942,8 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "bounded-vec", "futures 0.3.21", @@ -7186,8 +6964,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -7196,8 +6974,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "derive_more", "futures 0.3.21", @@ -7215,8 +6993,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "async-trait", "derive_more", @@ -7248,8 +7026,8 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "futures 0.3.21", "futures-timer", @@ -7269,8 +7047,8 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "async-trait", "futures 0.3.21", @@ -7286,11 +7064,11 @@ dependencies = [ [[package]] name = "polkadot-overseer-gen-proc-macro" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "expander 0.0.6", - "proc-macro-crate 1.1.3", + "proc-macro-crate", "proc-macro2", "quote", "syn", @@ -7298,8 +7076,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "derive_more", "frame-support", @@ -7315,8 +7093,8 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "env_logger", "kusama-runtime", @@ -7330,8 +7108,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "bitvec", "frame-system", @@ -7360,12 +7138,12 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", - "jsonrpc-core", + "jsonrpsee", "pallet-mmr-rpc", "pallet-transaction-payment-rpc", "polkadot-primitives", @@ -7392,8 +7170,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "beefy-primitives", "bitvec", @@ -7478,8 +7256,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "beefy-primitives", "bitvec", @@ -7525,8 +7303,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "frame-support", "polkadot-primitives", @@ -7537,8 +7315,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "bs58", "parity-scale-codec", @@ -7549,8 +7327,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "bitflags", "bitvec", @@ -7592,8 +7370,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "async-trait", "beefy-gadget", @@ -7662,9 +7440,11 @@ dependencies = [ "sc-offchain", "sc-service", "sc-sync-state-rpc", + "sc-sysinfo", "sc-telemetry", "sc-transaction-pool", "serde", + "serde_json", "sp-api", "sp-authority-discovery", "sp-block-builder", @@ -7692,8 +7472,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "arrayvec 0.5.2", "fatality", @@ -7713,8 +7493,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7731,7 +7511,7 @@ dependencies = [ "libc", "log", "wepoll-ffi", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -7740,7 +7520,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" dependencies = [ - "cpufeatures 0.2.2", + "cpufeatures", "opaque-debug 0.3.0", "universal-hash", ] @@ -7752,7 +7532,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" dependencies = [ "cfg-if 1.0.0", - "cpufeatures 0.2.2", + "cpufeatures", "opaque-debug 0.3.0", "universal-hash", ] @@ -7790,15 +7570,6 @@ dependencies = [ "uint", ] -[[package]] -name = "proc-macro-crate" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" -dependencies = [ - "toml", -] - [[package]] name = "proc-macro-crate" version = "1.1.3" @@ -7835,11 +7606,11 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.37" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec757218438d5fda206afc041538b2f6d889286160d649a86a24d37e1235afd1" +checksum = "c54b25569025b7fc9651de43004ae593a75ad88543b17178aa5e1b9c4f15f56f" dependencies = [ - "unicode-xid", + "unicode-ident", ] [[package]] @@ -7856,13 +7627,36 @@ dependencies = [ "thiserror", ] +[[package]] +name = "prometheus-client" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9a896938cc6018c64f279888b8c7559d3725210d5db9a3a1ee6bc7188d51d34" +dependencies = [ + "dtoa", + "itoa 1.0.1", + "owning_ref", + "prometheus-client-derive-text-encode", +] + +[[package]] +name = "prometheus-client-derive-text-encode" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8e12d01b9d66ad9eb4529c57666b6263fc1993cb30261d83ead658fdd932652" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "prost" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" dependencies = [ - "bytes 1.1.0", + "bytes", "prost-derive", ] @@ -7872,7 +7666,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" dependencies = [ - "bytes 1.1.0", + "bytes", "heck 0.3.3", "itertools", "lazy_static", @@ -7905,7 +7699,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" dependencies = [ - "bytes 1.1.0", + "bytes", "prost", ] @@ -8202,13 +7996,13 @@ dependencies = [ "bitflags", "libc", "mach", - "winapi 0.3.9", + "winapi", ] [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "env_logger", "jsonrpsee", @@ -8228,7 +8022,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -8247,6 +8041,17 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c31b5c4033f8fdde8700e4657be2c497e7288f01515be52168c631e2e4d4086" +[[package]] +name = "rfc6979" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96ef608575f6392792f9ecf7890c00086591d29a83910939d430753f7c050525" +dependencies = [ + "crypto-bigint", + "hmac 0.11.0", + "zeroize", +] + [[package]] name = "ring" version = "0.16.20" @@ -8259,7 +8064,7 @@ dependencies = [ "spin", "untrusted", "web-sys", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -8274,8 +8079,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -8351,8 +8156,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "frame-support", "polkadot-primitives", @@ -8368,7 +8173,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", +] + +[[package]] +name = "rtnetlink" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f54290e54521dac3de4149d83ddf9f62a359b3cc93bcb494a794a41e6f4744b" +dependencies = [ + "async-global-executor", + "futures 0.3.21", + "log", + "netlink-packet-route", + "netlink-proto", + "nix", + "thiserror", ] [[package]] @@ -8378,7 +8198,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb" dependencies = [ "base64", - "blake2b_simd", + "blake2b_simd 0.5.11", "constant_time_eq", "crossbeam-utils", ] @@ -8401,15 +8221,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] - [[package]] name = "rustc_version" version = "0.4.0" @@ -8430,7 +8241,7 @@ dependencies = [ "io-lifetimes", "libc", "linux-raw-sys", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -8535,7 +8346,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "log", "sp-core", @@ -8546,7 +8357,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "async-trait", "futures 0.3.21", @@ -8573,7 +8384,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "futures 0.3.21", "futures-timer", @@ -8596,7 +8407,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8612,7 +8423,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "impl-trait-for-tuples", "memmap2 0.5.3", @@ -8629,9 +8440,9 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate", "proc-macro2", "quote", "syn", @@ -8640,7 +8451,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "chrono", "clap", @@ -8655,6 +8466,7 @@ dependencies = [ "regex", "rpassword", "sc-client-api", + "sc-client-db", "sc-keystore", "sc-network", "sc-service", @@ -8678,7 +8490,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "fnv", "futures 0.3.21", @@ -8706,7 +8518,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "hash-db", "kvdb", @@ -8731,7 +8543,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "async-trait", "futures 0.3.21", @@ -8755,7 +8567,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "async-trait", "futures 0.3.21", @@ -8784,7 +8596,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "async-trait", "fork-tree", @@ -8827,12 +8639,10 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "futures 0.3.21", - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", + "jsonrpsee", "sc-consensus-babe", "sc-consensus-epochs", "sc-rpc-api", @@ -8851,7 +8661,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8864,7 +8674,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "async-trait", "futures 0.3.21", @@ -8889,7 +8699,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "sc-client-api", "sp-authorship", @@ -8900,7 +8710,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "lazy_static", "lru 0.7.5", @@ -8927,13 +8737,13 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "environmental", "parity-scale-codec", "sc-allocator", - "sp-core", "sp-maybe-compressed-blob", + "sp-sandbox", "sp-serializer", "sp-wasm-interface", "thiserror", @@ -8944,15 +8754,14 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "log", "parity-scale-codec", "sc-allocator", "sc-executor-common", - "scoped-tls", - "sp-core", "sp-runtime-interface", + "sp-sandbox", "sp-wasm-interface", "wasmi", ] @@ -8960,7 +8769,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "cfg-if 1.0.0", "libc", @@ -8969,8 +8778,8 @@ dependencies = [ "parity-wasm 0.42.2", "sc-allocator", "sc-executor-common", - "sp-core", "sp-runtime-interface", + "sp-sandbox", "sp-wasm-interface", "wasmtime", ] @@ -8978,7 +8787,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "ahash", "async-trait", @@ -9018,14 +8827,11 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "finality-grandpa", "futures 0.3.21", - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "jsonrpc-pubsub", + "jsonrpsee", "log", "parity-scale-codec", "sc-client-api", @@ -9042,7 +8848,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "ansi_term", "futures 0.3.21", @@ -9059,7 +8865,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "async-trait", "hex", @@ -9074,12 +8880,12 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "async-trait", - "asynchronous-codec 0.5.0", + "asynchronous-codec", "bitflags", - "bytes 1.1.0", + "bytes", "cid", "either", "fnv", @@ -9102,6 +8908,8 @@ dependencies = [ "sc-block-builder", "sc-client-api", "sc-consensus", + "sc-network-common", + "sc-network-sync", "sc-peerset", "sc-utils", "serde", @@ -9115,15 +8923,28 @@ dependencies = [ "sp-runtime", "substrate-prometheus-endpoint", "thiserror", - "unsigned-varint 0.6.0", + "unsigned-varint", "void", "zeroize", ] +[[package]] +name = "sc-network-common" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +dependencies = [ + "futures 0.3.21", + "libp2p", + "parity-scale-codec", + "prost-build", + "sc-peerset", + "smallvec", +] + [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "ahash", "futures 0.3.21", @@ -9137,18 +8958,47 @@ dependencies = [ "tracing", ] +[[package]] +name = "sc-network-sync" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +dependencies = [ + "bitflags", + "either", + "fork-tree", + "futures 0.3.21", + "libp2p", + "log", + "lru 0.7.5", + "parity-scale-codec", + "prost", + "prost-build", + "sc-client-api", + "sc-consensus", + "sc-network-common", + "sc-peerset", + "smallvec", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-finality-grandpa", + "sp-runtime", + "thiserror", +] + [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ - "bytes 1.1.0", + "bytes", "fnv", "futures 0.3.21", "futures-timer", "hex", "hyper", - "hyper-rustls 0.22.1", + "hyper-rustls", "num_cpus", "once_cell", "parity-scale-codec", @@ -9168,7 +9018,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "futures 0.3.21", "libp2p", @@ -9181,7 +9031,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -9190,12 +9040,11 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "futures 0.3.21", "hash-db", - "jsonrpc-core", - "jsonrpc-pubsub", + "jsonrpsee", "log", "parity-scale-codec", "parking_lot 0.12.0", @@ -9221,13 +9070,10 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "futures 0.3.21", - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", - "jsonrpc-pubsub", + "jsonrpsee", "log", "parity-scale-codec", "parking_lot 0.12.0", @@ -9247,14 +9093,10 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "futures 0.3.21", - "jsonrpc-core", - "jsonrpc-http-server", - "jsonrpc-ipc-server", - "jsonrpc-pubsub", - "jsonrpc-ws-server", + "jsonrpsee", "log", "serde_json", "substrate-prometheus-endpoint", @@ -9264,7 +9106,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "async-trait", "directories", @@ -9272,8 +9114,7 @@ dependencies = [ "futures 0.3.21", "futures-timer", "hash-db", - "jsonrpc-core", - "jsonrpc-pubsub", + "jsonrpsee", "log", "parity-scale-codec", "parity-util-mem", @@ -9289,6 +9130,7 @@ dependencies = [ "sc-informant", "sc-keystore", "sc-network", + "sc-network-common", "sc-offchain", "sc-rpc", "sc-rpc-server", @@ -9329,7 +9171,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "log", "parity-scale-codec", @@ -9343,11 +9185,9 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", + "jsonrpsee", "parity-scale-codec", "sc-chain-spec", "sc-client-api", @@ -9364,7 +9204,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "futures 0.3.21", "libc", @@ -9383,7 +9223,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "chrono", "futures 0.3.21", @@ -9401,7 +9241,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "ansi_term", "atty", @@ -9432,9 +9272,9 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate", "proc-macro2", "quote", "syn", @@ -9443,7 +9283,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "futures 0.3.21", "futures-timer", @@ -9470,7 +9310,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "futures 0.3.21", "log", @@ -9483,7 +9323,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "futures 0.3.21", "futures-timer", @@ -9513,7 +9353,7 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4260c630e8a8a33429d1688eff2f163f24c65a4e1b1578ef6b565061336e4b6f" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate", "proc-macro2", "quote", "syn", @@ -9526,7 +9366,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" dependencies = [ "lazy_static", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -9547,12 +9387,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "scoped-tls" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" - [[package]] name = "scopeguard" version = "1.1.0" @@ -9587,7 +9421,6 @@ checksum = "08da66b8b0965a5555b6bd6639e68ccba85e1e2506f5fbb089e93f8a04e1a2d1" dependencies = [ "der", "generic-array 0.14.5", - "pkcs8", "subtle", "zeroize", ] @@ -9648,16 +9481,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537" dependencies = [ - "semver-parser 0.7.0", -] - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser 0.10.2", + "semver-parser", ] [[package]] @@ -9675,15 +9499,6 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - [[package]] name = "serde" version = "1.0.137" @@ -9744,7 +9559,7 @@ checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" dependencies = [ "block-buffer 0.9.0", "cfg-if 1.0.0", - "cpufeatures 0.2.2", + "cpufeatures", "digest 0.9.0", "opaque-debug 0.3.0", ] @@ -9769,7 +9584,7 @@ checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ "block-buffer 0.9.0", "cfg-if 1.0.0", - "cpufeatures 0.2.2", + "cpufeatures", "digest 0.9.0", "opaque-debug 0.3.0", ] @@ -9781,7 +9596,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" dependencies = [ "cfg-if 1.0.0", - "cpufeatures 0.2.2", + "cpufeatures", "digest 0.10.3", ] @@ -9847,6 +9662,7 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "02658e48d89f2bec991f9a78e69cfa4c316f8d6a6c4ec12fae1aeb263d486788" dependencies = [ + "digest 0.9.0", "rand_core 0.6.3", ] @@ -9870,8 +9686,8 @@ checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" [[package]] name = "slot-range-helper" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "enumn", "parity-scale-codec", @@ -9903,31 +9719,19 @@ checksum = "45456094d1983e2ee2a18fdfebce3189fa451699d0502cb8e3b49dba5ba41451" [[package]] name = "snow" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6142f7c25e94f6fd25a32c3348ec230df9109b463f59c8c7acc4bd34936babb7" +checksum = "774d05a3edae07ce6d68ea6984f3c05e9bba8927e3dd591e3b479e5b03213d0d" dependencies = [ "aes-gcm", - "blake2 0.9.2", + "blake2", "chacha20poly1305", - "rand 0.8.5", + "curve25519-dalek 4.0.0-pre.1", "rand_core 0.6.3", "ring", - "rustc_version 0.3.3", - "sha2 0.9.9", + "rustc_version", + "sha2 0.10.2", "subtle", - "x25519-dalek", -] - -[[package]] -name = "socket2" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "winapi 0.3.9", ] [[package]] @@ -9937,7 +9741,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -9947,7 +9751,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" dependencies = [ "base64", - "bytes 1.1.0", + "bytes", "flate2", "futures 0.3.21", "httparse", @@ -9959,7 +9763,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "hash-db", "log", @@ -9976,10 +9780,10 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ - "blake2 0.10.4", - "proc-macro-crate 1.1.3", + "blake2", + "proc-macro-crate", "proc-macro2", "quote", "syn", @@ -9988,7 +9792,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "parity-scale-codec", "scale-info", @@ -10001,7 +9805,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "integer-sqrt", "num-traits", @@ -10016,7 +9820,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "parity-scale-codec", "scale-info", @@ -10029,7 +9833,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "async-trait", "parity-scale-codec", @@ -10041,7 +9845,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "parity-scale-codec", "sp-api", @@ -10053,7 +9857,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "futures 0.3.21", "log", @@ -10071,7 +9875,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "async-trait", "futures 0.3.21", @@ -10090,7 +9894,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "async-trait", "parity-scale-codec", @@ -10108,7 +9912,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "async-trait", "merlin", @@ -10131,7 +9935,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "parity-scale-codec", "scale-info", @@ -10145,9 +9949,10 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "parity-scale-codec", + "scale-info", "schnorrkel", "sp-core", "sp-runtime", @@ -10157,7 +9962,7 @@ dependencies = [ [[package]] name = "sp-core" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "base58", "bitflags", @@ -10203,9 +10008,9 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ - "blake2 0.10.4", + "blake2", "byteorder", "digest 0.10.3", "sha2 0.10.2", @@ -10217,7 +10022,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "proc-macro2", "quote", @@ -10228,7 +10033,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "kvdb", "parking_lot 0.12.0", @@ -10237,7 +10042,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "proc-macro2", "quote", @@ -10247,7 +10052,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "environmental", "parity-scale-codec", @@ -10258,7 +10063,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "finality-grandpa", "log", @@ -10276,7 +10081,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -10290,7 +10095,7 @@ dependencies = [ [[package]] name = "sp-io" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "futures 0.3.21", "hash-db", @@ -10315,7 +10120,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "lazy_static", "sp-core", @@ -10326,7 +10131,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "async-trait", "futures 0.3.21", @@ -10343,7 +10148,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "thiserror", "zstd", @@ -10352,7 +10157,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "log", "parity-scale-codec", @@ -10367,7 +10172,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "parity-scale-codec", "scale-info", @@ -10381,7 +10186,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "sp-api", "sp-core", @@ -10391,7 +10196,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "backtrace", "lazy_static", @@ -10401,7 +10206,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "rustc-hash", "serde", @@ -10411,7 +10216,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "either", "hash256-std-hasher", @@ -10433,7 +10238,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -10450,19 +10255,33 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "Inflector", - "proc-macro-crate 1.1.3", + "proc-macro-crate", "proc-macro2", "quote", "syn", ] +[[package]] +name = "sp-sandbox" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +dependencies = [ + "log", + "parity-scale-codec", + "sp-core", + "sp-io", + "sp-std", + "sp-wasm-interface", + "wasmi", +] + [[package]] name = "sp-serializer" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "serde", "serde_json", @@ -10471,7 +10290,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "parity-scale-codec", "scale-info", @@ -10485,7 +10304,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "parity-scale-codec", "scale-info", @@ -10496,7 +10315,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "hash-db", "log", @@ -10518,12 +10337,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" [[package]] name = "sp-storage" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10536,7 +10355,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "log", "sp-core", @@ -10549,7 +10368,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "async-trait", "futures-timer", @@ -10565,7 +10384,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "parity-scale-codec", "sp-std", @@ -10577,7 +10396,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "sp-api", "sp-runtime", @@ -10586,7 +10405,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "async-trait", "log", @@ -10602,7 +10421,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "hash-db", "memory-db", @@ -10618,7 +10437,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10635,7 +10454,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10646,7 +10465,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "impl-trait-for-tuples", "log", @@ -10662,16 +10481,6 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" -[[package]] -name = "spki" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" -dependencies = [ - "base64ct", - "der", -] - [[package]] name = "ss58-registry" version = "1.17.0" @@ -10803,7 +10612,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "platforms", ] @@ -10811,18 +10620,17 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.21", - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", + "jsonrpsee", "log", "parity-scale-codec", "sc-client-api", "sc-rpc-api", "sc-transaction-pool-api", + "serde_json", "sp-api", "sp-block-builder", "sp-blockchain", @@ -10833,7 +10641,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "futures-util", "hyper", @@ -10846,11 +10654,9 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ - "jsonrpc-core", - "jsonrpc-core-client", - "jsonrpc-derive", + "jsonrpsee", "log", "parity-scale-codec", "sc-client-api", @@ -10869,7 +10675,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "ansi_term", "build-helper", @@ -10890,13 +10696,13 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.92" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ff7c592601f11445996a06f8ad0c27f094a58857c2f89e97974ab9235b92c52" +checksum = "fbaf6116ab8924f39d52792136fb74fd60a80194cf1b1c6ffa6453eef1c3f942" dependencies = [ "proc-macro2", "quote", - "unicode-xid", + "unicode-ident", ] [[package]] @@ -10911,6 +10717,27 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "system-configuration" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75182f12f490e953596550b65ee31bda7c8e043d9386174b353bda50838c3fd" +dependencies = [ + "bitflags", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "tap" version = "1.0.1" @@ -10934,7 +10761,7 @@ dependencies = [ "libc", "redox_syscall 0.2.13", "remove_dir_all", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -10945,7 +10772,7 @@ checksum = "edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42" dependencies = [ "byteorder", "dirs", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -11039,7 +10866,7 @@ checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" dependencies = [ "libc", "wasi 0.10.0+wasi-snapshot-preview1", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -11082,18 +10909,18 @@ version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dce653fb475565de9f6fb0614b28bca8df2c430c0cf84bcd9c843f15de5414cc" dependencies = [ - "bytes 1.1.0", + "bytes", "libc", "memchr", - "mio 0.8.2", + "mio", "num_cpus", "once_cell", "parking_lot 0.12.0", "pin-project-lite 0.2.9", "signal-hook-registry", - "socket2 0.4.4", + "socket2", "tokio-macros", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -11129,38 +10956,13 @@ dependencies = [ "webpki 0.22.0", ] -[[package]] -name = "tokio-stream" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3" -dependencies = [ - "futures-core", - "pin-project-lite 0.2.9", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" -dependencies = [ - "bytes 1.1.0", - "futures-core", - "futures-sink", - "log", - "pin-project-lite 0.2.9", - "tokio", -] - [[package]] name = "tokio-util" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0edfdeb067411dba2044da6d1cb2df793dd35add7888d73c16e3381ded401764" dependencies = [ - "bytes 1.1.0", + "bytes", "futures-core", "futures-io", "futures-sink", @@ -11229,8 +11031,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -11240,11 +11042,11 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "expander 0.0.6", - "proc-macro-crate 1.1.3", + "proc-macro-crate", "proc-macro2", "quote", "syn", @@ -11256,8 +11058,10 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" dependencies = [ + "ahash", "lazy_static", "log", + "lru 0.7.5", "tracing-core", ] @@ -11318,9 +11122,9 @@ dependencies = [ [[package]] name = "trust-dns-proto" -version = "0.20.4" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca94d4e9feb6a181c690c4040d7a24ef34018d8313ac5044a61d21222ae24e31" +checksum = "9c31f240f59877c3d4bb3b3ea0ec5a6a0cff07323580ff8c7a605cd7d08b255d" dependencies = [ "async-trait", "cfg-if 1.0.0", @@ -11329,7 +11133,7 @@ dependencies = [ "futures-channel", "futures-io", "futures-util", - "idna 0.2.3", + "idna", "ipnet", "lazy_static", "log", @@ -11337,14 +11141,14 @@ dependencies = [ "smallvec", "thiserror", "tinyvec", - "url 2.2.2", + "url", ] [[package]] name = "trust-dns-resolver" -version = "0.20.4" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecae383baad9995efaa34ce8e57d12c3f305e545887472a492b838f4b5cfb77a" +checksum = "e4ba72c2ea84515690c9fcef4c6c660bb9df3036ed1051686de84605b74fd558" dependencies = [ "cfg-if 1.0.0", "futures-util", @@ -11352,7 +11156,7 @@ dependencies = [ "lazy_static", "log", "lru-cache", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "resolv-conf", "smallvec", "thiserror", @@ -11368,7 +11172,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.20#563f4820d8f36d256ada7ea3fef46b2e94c4cd5a" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" dependencies = [ "clap", "jsonrpsee", @@ -11447,6 +11251,12 @@ version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +[[package]] +name = "unicode-ident" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee" + [[package]] name = "unicode-normalization" version = "0.1.19" @@ -11484,32 +11294,14 @@ dependencies = [ "subtle", ] -[[package]] -name = "unsigned-varint" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7fdeedbf205afadfe39ae559b75c3240f24e257d0ca27e85f85cb82aa19ac35" - -[[package]] -name = "unsigned-varint" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35581ff83d4101e58b582e607120c7f5ffb17e632a980b1f38334d76b36908b2" -dependencies = [ - "asynchronous-codec 0.5.0", - "bytes 1.1.0", - "futures-io", - "futures-util", -] - [[package]] name = "unsigned-varint" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d86a8dc7f45e4c1b0d30e43038c38f274e77af056aa5f74b93c2cf9eb3c1c836" dependencies = [ - "asynchronous-codec 0.6.0", - "bytes 1.1.0", + "asynchronous-codec", + "bytes", "futures-io", "futures-util", ] @@ -11520,17 +11312,6 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" -[[package]] -name = "url" -version = "1.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" -dependencies = [ - "idna 0.1.5", - "matches", - "percent-encoding 1.0.1", -] - [[package]] name = "url" version = "2.2.2" @@ -11538,9 +11319,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" dependencies = [ "form_urlencoded", - "idna 0.2.3", + "idna", "matches", - "percent-encoding 2.1.0", + "percent-encoding", ] [[package]] @@ -11590,7 +11371,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" dependencies = [ "same-file", - "winapi 0.3.9", + "winapi", "winapi-util", ] @@ -11731,6 +11512,7 @@ checksum = "ca00c5147c319a8ec91ec1a0edbec31e566ce2c9cc93b3f9bb86a9efd0eb795d" dependencies = [ "downcast-rs", "libc", + "libm", "memory_units", "num-rational 0.2.4", "num-traits", @@ -11781,7 +11563,7 @@ dependencies = [ "wasmtime-environ", "wasmtime-jit", "wasmtime-runtime", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -11800,7 +11582,7 @@ dependencies = [ "serde", "sha2 0.9.9", "toml", - "winapi 0.3.9", + "winapi", "zstd", ] @@ -11869,7 +11651,7 @@ dependencies = [ "wasmtime-environ", "wasmtime-jit-debug", "wasmtime-runtime", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -11905,7 +11687,7 @@ dependencies = [ "thiserror", "wasmtime-environ", "wasmtime-jit-debug", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -11950,15 +11732,6 @@ dependencies = [ "untrusted", ] -[[package]] -name = "webpki-roots" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" -dependencies = [ - "webpki 0.21.4", -] - [[package]] name = "webpki-roots" version = "0.22.3" @@ -11979,8 +11752,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "beefy-primitives", "bitvec", @@ -12068,8 +11841,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "frame-support", "polkadot-primitives", @@ -12091,15 +11864,9 @@ dependencies = [ [[package]] name = "widestring" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c" - -[[package]] -name = "winapi" -version = "0.2.8" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" +checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" [[package]] name = "winapi" @@ -12111,12 +11878,6 @@ dependencies = [ "winapi-x86_64-pc-windows-gnu", ] -[[package]] -name = "winapi-build" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" - [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" @@ -12129,7 +11890,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -12138,37 +11899,74 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aac7fef12f4b59cd0a29339406cc9203ab44e440ddff6b3f5a41455349fa9cf3" +dependencies = [ + "windows_aarch64_msvc 0.29.0", + "windows_i686_gnu 0.29.0", + "windows_i686_msvc 0.29.0", + "windows_x86_64_gnu 0.29.0", + "windows_x86_64_msvc 0.29.0", +] + [[package]] name = "windows-sys" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" dependencies = [ - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_msvc", + "windows_aarch64_msvc 0.36.1", + "windows_i686_gnu 0.36.1", + "windows_i686_msvc 0.36.1", + "windows_x86_64_gnu 0.36.1", + "windows_x86_64_msvc 0.36.1", ] +[[package]] +name = "windows_aarch64_msvc" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d027175d00b01e0cbeb97d6ab6ebe03b12330a35786cbaca5252b1c4bf5d9b" + [[package]] name = "windows_aarch64_msvc" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +[[package]] +name = "windows_i686_gnu" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8793f59f7b8e8b01eda1a652b2697d87b93097198ae85f823b969ca5b89bba58" + [[package]] name = "windows_i686_gnu" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +[[package]] +name = "windows_i686_msvc" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8602f6c418b67024be2996c512f5f995de3ba417f4c75af68401ab8756796ae4" + [[package]] name = "windows_i686_msvc" version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +[[package]] +name = "windows_x86_64_gnu" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3d615f419543e0bd7d2b3323af0d86ff19cbc4f816e6453f36a2c2ce889c354" + [[package]] name = "windows_x86_64_gnu" version = "0.36.1" @@ -12177,27 +11975,23 @@ checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" [[package]] name = "windows_x86_64_msvc" -version = "0.36.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +checksum = "11d95421d9ed3672c280884da53201a5c46b7b2765ca6faf34b0d71cf34a3561" [[package]] -name = "winreg" -version = "0.6.2" +name = "windows_x86_64_msvc" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9" -dependencies = [ - "winapi 0.3.9", -] +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" [[package]] -name = "ws2_32-sys" -version = "0.2.1" +name = "winreg" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" dependencies = [ - "winapi 0.2.8", - "winapi-build", + "winapi", ] [[package]] @@ -12222,8 +12016,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -12235,8 +12029,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "frame-support", "frame-system", @@ -12255,8 +12049,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.20" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +version = "0.9.22" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "frame-benchmarking", "frame-support", @@ -12274,7 +12068,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.20#568169b41aea59a54ab8cfa23c31e84a26708280" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" dependencies = [ "Inflector", "proc-macro2", @@ -12284,23 +12078,23 @@ dependencies = [ [[package]] name = "yamux" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7d9028f208dd5e63c614be69f115c1b53cacc1111437d4c765185856666c107" +checksum = "0c0608f53c1dc0bad505d03a34bbd49fbf2ad7b51eb036123e896365532745a1" dependencies = [ "futures 0.3.21", "log", "nohash-hasher", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "rand 0.8.5", "static_assertions", ] [[package]] name = "zeroize" -version = "1.5.5" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94693807d016b2f2d2e14420eb3bfcca689311ff775dcf113d74ea624b7cdf07" +checksum = "d68d9dcec5f9b43a30d38c49f91dfedfaac384cb8f085faca366c26207dd1619" dependencies = [ "zeroize_derive", ] diff --git a/node/Cargo.toml b/node/Cargo.toml index c8fb30a1..83e6aa4c 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -16,73 +16,74 @@ path = "src/main.rs" [dependencies] clap = { version = "3.1", features = ["derive"] } derive_more = "0.99.2" -log = "0.4.16" +log = "0.4.17" codec = { package = "parity-scale-codec", version = "3.0.0" } -serde = { version = "1.0.132", features = ["derive"] } +serde = { version = "1.0.137", features = ["derive"] } hex-literal = "0.3.4" -jsonrpc-core = "18.0.0" +jsonrpsee = { version = "0.13.0", features = ["server"] } # Local parachain-template-runtime = { path = "../runtime" } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"], branch = "polkadot-v0.9.20" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"], branch = "polkadot-v0.9.20" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"], branch = "polkadot-v0.9.20" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.22" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.22" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.22" } +sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.20" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.20" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.20" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.20" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.20" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.22" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.22" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.22" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.22" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.22" } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } -cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } -cumulus-primitives-core ={ git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } -cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.20" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } +cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } +cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } +cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } [features] default = [] diff --git a/node/src/cli.rs b/node/src/cli.rs index b2e7019f..0d36120a 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -88,6 +88,16 @@ pub struct Cli { #[clap(flatten)] pub run: cumulus_client_cli::RunCmd, + /// Disable automatic hardware benchmarks. + /// + /// By default these benchmarks are automatically ran at startup and measure + /// the CPU speed, the memory bandwidth and the disk speed. + /// + /// The results are then printed out in the logs, and also sent as part of + /// telemetry, if telemetry is enabled. + #[clap(long)] + pub no_hardware_benchmarks: bool, + /// Relay chain arguments #[clap(raw = true)] pub relay_chain_args: Vec, diff --git a/node/src/command.rs b/node/src/command.rs index a721edb7..4b8db2e2 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -6,7 +6,7 @@ use crate::{ use codec::Encode; use cumulus_client_service::genesis::generate_genesis_block; use cumulus_primitives_core::ParaId; -use frame_benchmarking_cli::BenchmarkCmd; +use frame_benchmarking_cli::{BenchmarkCmd, SUBSTRATE_REFERENCE_HARDWARE}; use log::info; use parachain_template_runtime::{Block, RuntimeApi}; use polkadot_parachain::primitives::AccountIdConversion; @@ -262,7 +262,8 @@ pub fn run() -> Result<()> { cmd.run(config, partials.client.clone(), db, storage) }), BenchmarkCmd::Overhead(_) => Err("Unsupported benchmarking command".into()), - BenchmarkCmd::Machine(cmd) => runner.sync_run(|config| cmd.run(&config)), + BenchmarkCmd::Machine(cmd) => + runner.sync_run(|config| cmd.run(&config, SUBSTRATE_REFERENCE_HARDWARE.clone())), } }, Some(Subcommand::TryRuntime(cmd)) => { @@ -287,6 +288,15 @@ pub fn run() -> Result<()> { let collator_options = cli.run.collator_options(); runner.run_node_until_exit(|config| async move { + let hwbench = if !cli.no_hardware_benchmarks { + config.database.path().map(|database_path| { + let _ = std::fs::create_dir_all(&database_path); + sc_sysinfo::gather_hwbench(Some(database_path)) + }) + } else { + None + }; + let para_id = chain_spec::Extensions::try_get(&*config.chain_spec) .map(|e| e.para_id) .ok_or_else(|| "Could not find parachain ID in chain-spec.")?; @@ -317,10 +327,16 @@ pub fn run() -> Result<()> { info!("Parachain genesis state: {}", genesis_state); info!("Is collating: {}", if config.role.is_authority() { "yes" } else { "no" }); - crate::service::start_parachain_node(config, polkadot_config, collator_options, id) - .await - .map(|r| r.0) - .map_err(Into::into) + crate::service::start_parachain_node( + config, + polkadot_config, + collator_options, + id, + hwbench, + ) + .await + .map(|r| r.0) + .map_err(Into::into) }) }, } diff --git a/node/src/rpc.rs b/node/src/rpc.rs index 5d3dd817..c71b3f36 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc.rs @@ -17,7 +17,7 @@ use sp_block_builder::BlockBuilder; use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; /// A type representing all RPC extensions. -pub type RpcExtension = jsonrpc_core::IoHandler; +pub type RpcExtension = jsonrpsee::RpcModule<()>; /// Full client dependencies pub struct FullDeps { @@ -30,7 +30,9 @@ pub struct FullDeps { } /// Instantiate all RPC extensions. -pub fn create_full(deps: FullDeps) -> RpcExtension +pub fn create_full( + deps: FullDeps, +) -> Result> where C: ProvideRuntimeApi + HeaderBackend @@ -44,14 +46,13 @@ where C::Api: BlockBuilder, P: TransactionPool + Sync + Send + 'static, { - use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApi}; - use substrate_frame_rpc_system::{FullSystem, SystemApi}; + use pallet_transaction_payment_rpc::{TransactionPaymentApiServer, TransactionPaymentRpc}; + use substrate_frame_rpc_system::{SystemApiServer, SystemRpc}; - let mut io = jsonrpc_core::IoHandler::default(); + let mut module = RpcExtension::new(()); let FullDeps { client, pool, deny_unsafe } = deps; - io.extend_with(SystemApi::to_delegate(FullSystem::new(client.clone(), pool, deny_unsafe))); - io.extend_with(TransactionPaymentApi::to_delegate(TransactionPayment::new(client))); - - io + module.merge(SystemRpc::new(client.clone(), pool.clone(), deny_unsafe).into_rpc())?; + module.merge(TransactionPaymentRpc::new(client.clone()).into_rpc())?; + Ok(module) } diff --git a/node/src/service.rs b/node/src/service.rs index 108d7c18..aec1ce8e 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -3,6 +3,9 @@ // std use std::{sync::Arc, time::Duration}; +// rpc +use jsonrpsee::RpcModule; + use cumulus_client_cli::CollatorOptions; // Local Runtime Types use parachain_template_runtime::{ @@ -170,6 +173,7 @@ async fn build_relay_chain_interface( telemetry_worker_handle: Option, task_manager: &mut TaskManager, collator_options: CollatorOptions, + hwbench: Option, ) -> RelayChainResult<(Arc<(dyn RelayChainInterface + 'static)>, Option)> { match collator_options.relay_chain_rpc_url { Some(relay_chain_url) => @@ -179,6 +183,7 @@ async fn build_relay_chain_interface( parachain_config, telemetry_worker_handle, task_manager, + hwbench, ), } } @@ -195,6 +200,7 @@ async fn start_node_impl( _rpc_ext_builder: RB, build_import_queue: BIQ, build_consensus: BIC, + hwbench: Option, ) -> sc_service::error::Result<( TaskManager, Arc>>, @@ -219,7 +225,7 @@ where Executor: sc_executor::NativeExecutionDispatch + 'static, RB: Fn( Arc>, - ) -> Result, sc_service::Error> + ) -> Result, sc_service::Error> + Send + 'static, BIQ: FnOnce( @@ -270,6 +276,7 @@ where telemetry_worker_handle, &mut task_manager, collator_options.clone(), + hwbench.clone(), ) .await .map_err(|e| match e { @@ -297,7 +304,7 @@ where warp_sync: None, })?; - let rpc_extensions_builder = { + let rpc_builder = { let client = client.clone(); let transaction_pool = transaction_pool.clone(); @@ -308,12 +315,12 @@ where deny_unsafe, }; - Ok(crate::rpc::create_full(deps)) + crate::rpc::create_full(deps).map_err(Into::into) }) }; sc_service::spawn_tasks(sc_service::SpawnTasksParams { - rpc_extensions_builder, + rpc_builder, client: client.clone(), transaction_pool: transaction_pool.clone(), task_manager: &mut task_manager, @@ -325,6 +332,19 @@ where telemetry: telemetry.as_mut(), })?; + if let Some(hwbench) = hwbench { + sc_sysinfo::print_hwbench(&hwbench); + + if let Some(ref mut telemetry) = telemetry { + let telemetry_handle = telemetry.handle(); + task_manager.spawn_handle().spawn( + "telemetry_hwbench", + None, + sc_sysinfo::initialize_hwbench_telemetry(telemetry_handle, hwbench), + ); + } + } + let announce_block = { let network = network.clone(); Arc::new(move |hash, data| network.announce_block(hash, data)) @@ -434,6 +454,7 @@ pub async fn start_parachain_node( polkadot_config: Configuration, collator_options: CollatorOptions, id: ParaId, + hwbench: Option, ) -> sc_service::error::Result<( TaskManager, Arc>>, @@ -443,7 +464,7 @@ pub async fn start_parachain_node( polkadot_config, collator_options, id, - |_| Ok(Default::default()), + |_| Ok(RpcModule::new(())), parachain_build_import_queue, |client, prometheus_registry, @@ -508,6 +529,7 @@ pub async fn start_parachain_node( }, )) }, + hwbench, ) .await } diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 8f31dbe2..098f4655 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -16,17 +16,17 @@ codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive scale-info = { version = "2.0.0", default-features = false, features = ["derive"] } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.20" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.22" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } [dev-dependencies] serde = { version = "1.0.132" } # Substrate -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } [features] default = ["std"] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index e1ec750b..49ea76a7 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,68 +12,68 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.20" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } hex-literal = { version = "0.3.4", optional = true } -log = { version = "0.4.16", default-features = false } +log = { version = "0.4.17", default-features = false } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } -serde = { version = "1.0.132", optional = true, features = ["derive"] } +serde = { version = "1.0.137", optional = true, features = ["derive"] } smallvec = "1.6.1" # Local pallet-template = { path = "../pallets/template", default-features = false } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.20" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.20" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.20" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.20" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.22" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.22" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.22" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.20" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.20" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.20" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.20" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.20" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.20" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.22" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.22" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.22" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.22" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.22" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.22" } # Cumulus -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20" } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20" } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20" } -cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20", version = "3.0.0"} -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20" } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20" } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20" } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20" } -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20" } -parachain-info = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.20" } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22" } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22" } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22" } +cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22", version = "3.0.0" } +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22" } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22" } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22" } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22" } +pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22" } +parachain-info = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22" } [features] default = [ From ffb52cf5ba20eb824a792c927092196edd424f4d Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Tue, 24 May 2022 22:16:40 -0600 Subject: [PATCH 55/91] update to include backport in lockfile (#112) --- Cargo.lock | 232 ++++++++++++++++++++++++----------------------------- 1 file changed, 103 insertions(+), 129 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a365f3c4..d890ad3b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -387,7 +387,7 @@ dependencies = [ "cfg-if 1.0.0", "libc", "miniz_oxide", - "object 0.28.3", + "object 0.28.4", "rustc-demangle", ] @@ -914,9 +914,9 @@ checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" [[package]] name = "camino" -version = "1.0.7" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f3132262930b0522068049f5870a856ab8affc80c70d08b6ecb785771a6fc23" +checksum = "869119e97797867fd90f5e22af7d0bd274bd4635ebb9eb68c04f3f513ae6c412" dependencies = [ "serde", ] @@ -1019,9 +1019,9 @@ dependencies = [ [[package]] name = "cid" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a52cffa791ce5cf490ac3b2d6df970dc04f931b04e727be3c3e220e17164dfc4" +checksum = "fc949bff6704880faf064c42a4854032ab07bfcf3a4fcb82a57470acededb69c" dependencies = [ "core2", "multibase", @@ -1050,9 +1050,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.3.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cc00842eed744b858222c4c9faf7243aafc6d33f92f96935263ef4d8a41ce21" +checksum = "bf6b561dcf059c85bbe388e0a7b0a1469acb3934cc0cfa148613a830629e3049" dependencies = [ "glob", "libc", @@ -1061,9 +1061,9 @@ dependencies = [ [[package]] name = "clap" -version = "3.1.15" +version = "3.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85a35a599b11c089a7f49105658d089b8f2cf0882993c17daf6de15285c2c35d" +checksum = "d2dbdf4bdacb33466e854ce889eee8dfd5729abf7ccd7664d0a2d60cd384440b" dependencies = [ "atty", "bitflags", @@ -1078,9 +1078,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "3.1.7" +version = "3.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3aab4734e083b809aaf5794e14e756d1c798d2c69c7f7de7a09a2f5214993c1" +checksum = "25320346e922cffe59c0bbc5410c8d8784509efb321488971081313cb1e1a33c" dependencies = [ "heck 0.4.0", "proc-macro-error", @@ -1445,7 +1445,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "clap", "sc-cli", @@ -1456,7 +1456,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1480,7 +1480,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1509,7 +1509,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1530,7 +1530,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1555,7 +1555,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -1579,7 +1579,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1609,7 +1609,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "frame-executive", "frame-support", @@ -1627,7 +1627,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1645,7 +1645,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1675,7 +1675,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1686,7 +1686,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "frame-benchmarking", "frame-support", @@ -1700,7 +1700,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1717,7 +1717,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1736,7 +1736,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "frame-support", "parity-scale-codec", @@ -1752,7 +1752,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1775,7 +1775,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "cumulus-primitives-core", "futures 0.3.21", @@ -1788,7 +1788,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1805,7 +1805,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1834,7 +1834,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1858,7 +1858,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "async-trait", "backoff", @@ -1884,7 +1884,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -2080,7 +2080,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbea" dependencies = [ "byteorder", - "quick-error 1.2.3", + "quick-error", ] [[package]] @@ -2136,9 +2136,9 @@ dependencies = [ [[package]] name = "ed25519" -version = "1.4.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d5c4b5e5959dc2c2b89918d8e2cc40fcdd623cef026ed09d2f0ee05199dc8e4" +checksum = "1e9c280362032ea4203659fc489832d0204ef09f247a0506f170dafcac08c369" dependencies = [ "signature", ] @@ -2827,7 +2827,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01fe9932a224b72b45336d96040aa86386d674a31d0af27d800ea7bc8ca97fe" dependencies = [ "futures-io", - "rustls 0.20.4", + "rustls 0.20.6", "webpki 0.22.0", ] @@ -2995,16 +2995,16 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.2.2" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d6a30320f094710245150395bc763ad23128d6a1ebbad7594dc4164b62c56b" +checksum = "d113a9853e5accd30f43003560b5563ffbb007e3f325e8b103fa0d0029c6e6df" dependencies = [ "log", "pest", "pest_derive", - "quick-error 2.0.1", "serde", "serde_json", + "thiserror", ] [[package]] @@ -3132,14 +3132,14 @@ checksum = "ff8670570af52249509a86f5e3e18a08c60b177071826898fde8997cf5f6bfbb" dependencies = [ "bytes", "fnv", - "itoa 1.0.1", + "itoa 1.0.2", ] [[package]] name = "http-body" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", "http", @@ -3179,7 +3179,7 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa 1.0.1", + "itoa 1.0.2", "pin-project-lite 0.2.9", "socket2", "tokio", @@ -3355,9 +3355,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" +checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" [[package]] name = "jobserver" @@ -3527,9 +3527,9 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" +checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838" [[package]] name = "kusama-runtime" @@ -3698,9 +3698,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.125" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b" +checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" [[package]] name = "libloading" @@ -4569,25 +4569,14 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52da4364ffb0e4fe33a9841a98a3f3014fb964045ce4f7a45a398243c8d6b0c9" +checksum = "713d550d9b44d89174e066b7a6217ae06234c10cb47819a88290d2b353c31799" dependencies = [ "libc", "log", - "miow", - "ntapi", "wasi 0.11.0+wasi-snapshot-preview1", - "winapi", -] - -[[package]] -name = "miow" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" -dependencies = [ - "winapi", + "windows-sys", ] [[package]] @@ -4820,15 +4809,6 @@ dependencies = [ "minimal-lexical", ] -[[package]] -name = "ntapi" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" -dependencies = [ - "winapi", -] - [[package]] name = "num-bigint" version = "0.2.6" @@ -4925,18 +4905,18 @@ dependencies = [ [[package]] name = "object" -version = "0.28.3" +version = "0.28.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40bec70ba014595f99f7aa110b84331ffe1ee9aece7fe6f387cc7e3ecda4d456" +checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.10.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9" +checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225" [[package]] name = "opaque-debug" @@ -4967,9 +4947,9 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "6.0.0" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64" +checksum = "029d8d0b2f198229de29dca79676f2738ff952edf3fde542eb8bf94d8c21b435" [[package]] name = "owning_ref" @@ -5225,7 +5205,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "frame-benchmarking", "frame-support", @@ -5924,7 +5904,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#7ffdccab93bbf011f00f61b12ff2e487ebe6294c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -7615,15 +7595,15 @@ dependencies = [ [[package]] name = "prometheus" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7f64969ffd5dd8f39bd57a68ac53c163a095ed9d0fb707146da1b27025a3504" +checksum = "cface98dfa6d645ea4c789839f176e4b072265d085bfcc48eaa8d137f58d3c39" dependencies = [ "cfg-if 1.0.0", "fnv", "lazy_static", "memchr", - "parking_lot 0.11.2", + "parking_lot 0.12.0", "thiserror", ] @@ -7634,7 +7614,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9a896938cc6018c64f279888b8c7559d3725210d5db9a3a1ee6bc7188d51d34" dependencies = [ "dtoa", - "itoa 1.0.1", + "itoa 1.0.2", "owning_ref", "prometheus-client-derive-text-encode", ] @@ -7718,12 +7698,6 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" -[[package]] -name = "quick-error" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" - [[package]] name = "quicksink" version = "0.1.2" @@ -7858,9 +7832,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.5.2" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd249e82c21598a9a426a4e00dd7adc1d640b22445ec8545feef801d1a74c221" +checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" dependencies = [ "autocfg", "crossbeam-deque", @@ -7870,9 +7844,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f51245e1e62e1f1629cbfec37b5793bbabcaeb90f30e94d2ba03564687353e4" +checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" dependencies = [ "crossbeam-channel", "crossbeam-deque", @@ -7963,9 +7937,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.5.5" +version = "1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286" +checksum = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1" dependencies = [ "aho-corasick", "memchr", @@ -7983,9 +7957,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.25" +version = "0.6.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" +checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64" [[package]] name = "region" @@ -8032,14 +8006,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" dependencies = [ "hostname", - "quick-error 1.2.3", + "quick-error", ] [[package]] name = "retain_mut" -version = "0.1.7" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c31b5c4033f8fdde8700e4657be2c497e7288f01515be52168c631e2e4d4086" +checksum = "4389f1d5789befaf6029ebd9f7dac4af7f7e3d61b69d4f30e2ac02b57e7712b0" [[package]] name = "rfc6979" @@ -8259,9 +8233,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.20.4" +version = "0.20.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fbfeb8d0ddb84706bc597a5574ab8912817c52a397f819e5b614e2265206921" +checksum = "5aab8ee6c7097ed6057f43c187a62418d0c05a4bd5f18b3571db50ee0f9ce033" dependencies = [ "log", "ring", @@ -8321,9 +8295,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" +checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" [[package]] name = "salsa20" @@ -9335,9 +9309,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8980cafbe98a7ee7a9cc16b32ebce542c77883f512d83fbf2ddc8f6a85ea74c9" +checksum = "c46be926081c9f4dd5dd9b6f1d3e3229f2360bc6502dd8836f84a93b7c75e99a" dependencies = [ "bitvec", "cfg-if 1.0.0", @@ -9349,9 +9323,9 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4260c630e8a8a33429d1688eff2f163f24c65a4e1b1578ef6b565061336e4b6f" +checksum = "50e334bb10a245e28e5fd755cabcafd96cfcd167c99ae63a46924ca8d8703a3c" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9361,12 +9335,12 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" +checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" dependencies = [ "lazy_static", - "winapi", + "windows-sys", ] [[package]] @@ -9525,7 +9499,7 @@ version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c" dependencies = [ - "itoa 1.0.1", + "itoa 1.0.2", "ryu", "serde", ] @@ -9639,9 +9613,9 @@ checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" [[package]] name = "signal-hook" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "647c97df271007dcea485bb74ffdb57f2e683f1306c854f468a0c244badabf2d" +checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d" dependencies = [ "libc", "signal-hook-registry", @@ -10483,9 +10457,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "ss58-registry" -version = "1.17.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b84a70894df7a73666e0694f44b41a9571625e9546fb58a0818a565d2c7e084" +checksum = "70850dd1812f04824cd78912213e56e616cb5225af02da94080c2ef5669ed718" dependencies = [ "Inflector", "num-format", @@ -10746,9 +10720,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fa7e55043acb85fca6b3c01485a2eeb6b69c5d21002e273c79e465f43b7ac1" +checksum = "c02424087780c9b71cc96799eaeddff35af2bc513278cda5c99fc1f5d026d3c1" [[package]] name = "tempfile" @@ -10905,9 +10879,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.18.1" +version = "1.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce653fb475565de9f6fb0614b28bca8df2c430c0cf84bcd9c843f15de5414cc" +checksum = "4903bf0427cf68dddd5aa6a93220756f8be0c34fcfa9f5e6191e103e15a31395" dependencies = [ "bytes", "libc", @@ -10951,16 +10925,16 @@ version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ - "rustls 0.20.4", + "rustls 0.20.6", "tokio", "webpki 0.22.0", ] [[package]] name = "tokio-util" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0edfdeb067411dba2044da6d1cb2df793dd35add7888d73c16e3381ded401764" +checksum = "f988a1a1adc2fb21f9c12aa96441da33a1728193ae0b95d2be22dbd17fcb4e5c" dependencies = [ "bytes", "futures-core", @@ -12113,18 +12087,18 @@ dependencies = [ [[package]] name = "zstd" -version = "0.10.0+zstd.1.5.2" +version = "0.10.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b1365becbe415f3f0fcd024e2f7b45bacfb5bdd055f0dc113571394114e7bdd" +checksum = "5f4a6bd64f22b5e3e94b4e238669ff9f10815c27a5180108b849d24174a83847" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "4.1.4+zstd.1.5.2" +version = "4.1.6+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f7cd17c9af1a4d6c24beb1cc54b17e2ef7b593dc92f19e9d9acad8b182bbaee" +checksum = "94b61c51bb270702d6167b8ce67340d2754b088d0c091b06e593aa772c3ee9bb" dependencies = [ "libc", "zstd-sys", From f257ec7c381f36e0cf1966759ed840b98e03eed7 Mon Sep 17 00:00:00 2001 From: Bruno Galvao Date: Thu, 2 Jun 2022 17:39:53 -0400 Subject: [PATCH 56/91] update to polkadot-v0.9.23 (#113) --- Cargo.lock | 1068 ++++++++++++++++------------------- node/Cargo.toml | 106 ++-- node/src/command.rs | 8 +- node/src/rpc.rs | 8 +- pallets/template/Cargo.toml | 12 +- runtime/Cargo.toml | 90 +-- 6 files changed, 593 insertions(+), 699 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d890ad3b..61cb13ed 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -427,7 +427,7 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "beefy-primitives", "fnv", @@ -461,7 +461,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -481,12 +481,12 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "parity-scale-codec", "scale-info", @@ -568,17 +568,6 @@ dependencies = [ "constant_time_eq", ] -[[package]] -name = "blake2b_simd" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" -dependencies = [ - "arrayref", - "arrayvec 0.5.2", - "constant_time_eq", -] - [[package]] name = "blake2b_simd" version = "1.0.0" @@ -687,7 +676,7 @@ dependencies = [ [[package]] name = "bp-header-chain" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "bp-runtime", "finality-grandpa", @@ -704,7 +693,7 @@ dependencies = [ [[package]] name = "bp-message-dispatch" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "bp-runtime", "frame-support", @@ -716,7 +705,7 @@ dependencies = [ [[package]] name = "bp-messages" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "bitvec", "bp-runtime", @@ -733,7 +722,7 @@ dependencies = [ [[package]] name = "bp-polkadot-core" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "bp-messages", "bp-runtime", @@ -751,7 +740,7 @@ dependencies = [ [[package]] name = "bp-rococo" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -768,7 +757,7 @@ dependencies = [ [[package]] name = "bp-runtime" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "frame-support", "hash-db", @@ -786,7 +775,7 @@ dependencies = [ [[package]] name = "bp-test-utils" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "bp-header-chain", "ed25519-dalek", @@ -801,7 +790,7 @@ dependencies = [ [[package]] name = "bp-wococo" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -816,7 +805,7 @@ dependencies = [ [[package]] name = "bridge-runtime-common" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "bp-message-dispatch", "bp-messages", @@ -850,10 +839,7 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" dependencies = [ - "lazy_static", "memchr", - "regex-automata", - "serde", ] [[package]] @@ -1110,6 +1096,17 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "comfy-table" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b103d85ca6e209388771bfb7aa6b68a7aeec4afbf6f0a0264bfbf50360e5212e" +dependencies = [ + "strum 0.23.0", + "strum_macros 0.23.1", + "unicode-width", +] + [[package]] name = "concurrent-queue" version = "1.2.2" @@ -1381,37 +1378,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "csv" -version = "1.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1" -dependencies = [ - "bstr", - "csv-core", - "itoa 0.4.8", - "ryu", - "serde", -] - -[[package]] -name = "csv-core" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" -dependencies = [ - "memchr", -] - -[[package]] -name = "ct-logs" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8" -dependencies = [ - "sct 0.6.1", -] - [[package]] name = "ctor" version = "0.1.22" @@ -1445,7 +1411,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "clap", "sc-cli", @@ -1456,7 +1422,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1480,7 +1446,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1509,7 +1475,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1530,7 +1496,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1555,7 +1521,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -1579,7 +1545,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1609,7 +1575,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "frame-executive", "frame-support", @@ -1627,7 +1593,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1645,7 +1611,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1675,7 +1641,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1686,7 +1652,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "frame-benchmarking", "frame-support", @@ -1700,7 +1666,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1717,7 +1683,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1736,7 +1702,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "frame-support", "parity-scale-codec", @@ -1752,7 +1718,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1775,7 +1741,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "cumulus-primitives-core", "futures 0.3.21", @@ -1788,7 +1754,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1805,7 +1771,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1813,8 +1779,10 @@ dependencies = [ "futures 0.3.21", "futures-timer", "parking_lot 0.12.0", + "polkadot-cli", "polkadot-client", "polkadot-service", + "sc-cli", "sc-client-api", "sc-consensus-babe", "sc-network", @@ -1834,7 +1802,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1858,7 +1826,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "async-trait", "backoff", @@ -1884,7 +1852,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -2040,17 +2008,6 @@ dependencies = [ "dirs-sys-next", ] -[[package]] -name = "dirs" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901" -dependencies = [ - "libc", - "redox_users 0.3.5", - "winapi", -] - [[package]] name = "dirs-sys" version = "0.3.7" @@ -2058,7 +2015,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" dependencies = [ "libc", - "redox_users 0.4.3", + "redox_users", "winapi", ] @@ -2069,7 +2026,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ "libc", - "redox_users 0.4.3", + "redox_users", "winapi", ] @@ -2181,12 +2138,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - [[package]] name = "enum-as-inner" version = "0.4.0" @@ -2441,7 +2392,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "parity-scale-codec", ] @@ -2459,7 +2410,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-support", "frame-system", @@ -2481,11 +2432,12 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "Inflector", "chrono", "clap", + "comfy-table", "frame-benchmarking", "frame-support", "frame-system", @@ -2499,7 +2451,6 @@ dependencies = [ "log", "memory-db", "parity-scale-codec", - "prettytable-rs", "rand 0.8.5", "rand_pcg 0.3.1", "sc-block-builder", @@ -2531,7 +2482,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2542,7 +2493,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2558,7 +2509,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-support", "frame-system", @@ -2586,7 +2537,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "bitflags", "frame-metadata", @@ -2616,7 +2567,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2628,7 +2579,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2640,7 +2591,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "proc-macro2", "quote", @@ -2650,7 +2601,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-support", "log", @@ -2667,7 +2618,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -2682,7 +2633,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "parity-scale-codec", "sp-api", @@ -2691,7 +2642,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-support", "sp-api", @@ -2827,8 +2778,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01fe9932a224b72b45336d96040aa86386d674a31d0af27d800ea7bc8ca97fe" dependencies = [ "futures-io", - "rustls 0.20.6", - "webpki 0.22.0", + "rustls", + "webpki", ] [[package]] @@ -3190,19 +3141,17 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.22.1" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64" +checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac" dependencies = [ - "ct-logs", - "futures-util", + "http", "hyper", "log", - "rustls 0.19.1", - "rustls-native-certs 0.5.0", + "rustls", + "rustls-native-certs", "tokio", - "tokio-rustls 0.22.0", - "webpki 0.21.4", + "tokio-rustls", ] [[package]] @@ -3403,11 +3352,11 @@ dependencies = [ "jsonrpsee-core", "jsonrpsee-types", "pin-project 1.0.10", - "rustls-native-certs 0.6.2", + "rustls-native-certs", "soketto", "thiserror", "tokio", - "tokio-rustls 0.23.4", + "tokio-rustls", "tokio-util", "tracing", "webpki-roots", @@ -3533,8 +3482,8 @@ checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838" [[package]] name = "kusama-runtime" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "beefy-primitives", "bitvec", @@ -3626,8 +3575,8 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "frame-support", "polkadot-primitives", @@ -3787,7 +3736,7 @@ dependencies = [ "libp2p-request-response", "libp2p-swarm", "log", - "prost", + "prost 0.9.0", "prost-build", "rand 0.8.5", ] @@ -3814,7 +3763,7 @@ dependencies = [ "multistream-select", "parking_lot 0.12.0", "pin-project 1.0.10", - "prost", + "prost 0.9.0", "prost-build", "rand 0.8.5", "ring", @@ -3864,7 +3813,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "prost", + "prost 0.9.0", "prost-build", "rand 0.7.3", "smallvec", @@ -3888,7 +3837,7 @@ dependencies = [ "libp2p-swarm", "log", "prometheus-client", - "prost", + "prost 0.9.0", "prost-build", "rand 0.7.3", "regex", @@ -3910,7 +3859,7 @@ dependencies = [ "libp2p-swarm", "log", "lru 0.7.5", - "prost", + "prost 0.9.0", "prost-build", "smallvec", ] @@ -3932,7 +3881,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "prost", + "prost 0.9.0", "prost-build", "rand 0.7.3", "sha2 0.10.2", @@ -4010,7 +3959,7 @@ dependencies = [ "lazy_static", "libp2p-core", "log", - "prost", + "prost 0.9.0", "prost-build", "rand 0.8.5", "sha2 0.10.2", @@ -4047,7 +3996,7 @@ dependencies = [ "futures 0.3.21", "libp2p-core", "log", - "prost", + "prost 0.9.0", "prost-build", "unsigned-varint", "void", @@ -4083,7 +4032,7 @@ dependencies = [ "libp2p-swarm", "log", "pin-project 1.0.10", - "prost", + "prost 0.9.0", "prost-build", "rand 0.8.5", "smallvec", @@ -4107,7 +4056,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "prost", + "prost 0.9.0", "prost-build", "rand 0.8.5", "sha2 0.10.2", @@ -4461,6 +4410,15 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +[[package]] +name = "memfd" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6627dc657574b49d6ad27105ed671822be56e0d2547d413bfbf3e8d8fa92e7a" +dependencies = [ + "libc", +] + [[package]] name = "memmap2" version = "0.2.3" @@ -4526,21 +4484,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "metered-channel" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" -dependencies = [ - "coarsetime", - "crossbeam-queue", - "derive_more", - "futures 0.3.21", - "futures-timer", - "nanorand", - "thiserror", - "tracing-gum", -] - [[package]] name = "mick-jaeger" version = "0.1.8" @@ -4620,7 +4563,7 @@ version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3db354f401db558759dfc1e568d010a5d4146f4d3f637be1275ec4a3cf09689" dependencies = [ - "blake2b_simd 1.0.0", + "blake2b_simd", "blake2s_simd", "blake3", "core2", @@ -4936,6 +4879,35 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "orchestra" +version = "0.0.1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +dependencies = [ + "async-trait", + "dyn-clonable", + "futures 0.3.21", + "futures-timer", + "orchestra-proc-macro", + "pin-project 1.0.10", + "prioritized-metered-channel", + "thiserror", + "tracing", +] + +[[package]] +name = "orchestra-proc-macro" +version = "0.0.1" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +dependencies = [ + "expander 0.0.6", + "petgraph", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "ordered-float" version = "1.1.1" @@ -4963,7 +4935,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-support", "frame-system", @@ -4979,7 +4951,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-support", "frame-system", @@ -4995,7 +4967,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-support", "frame-system", @@ -5010,7 +4982,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5034,7 +5006,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5054,7 +5026,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5069,7 +5041,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "beefy-primitives", "frame-support", @@ -5085,7 +5057,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -5108,7 +5080,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5126,7 +5098,7 @@ dependencies = [ [[package]] name = "pallet-bridge-dispatch" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "bp-message-dispatch", "bp-runtime", @@ -5143,7 +5115,7 @@ dependencies = [ [[package]] name = "pallet-bridge-grandpa" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "bp-header-chain", "bp-runtime", @@ -5165,7 +5137,7 @@ dependencies = [ [[package]] name = "pallet-bridge-messages" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "bitvec", "bp-message-dispatch", @@ -5186,7 +5158,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5205,7 +5177,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "frame-benchmarking", "frame-support", @@ -5225,7 +5197,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5242,7 +5214,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5258,7 +5230,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5281,7 +5253,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5294,7 +5266,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5312,7 +5284,7 @@ dependencies = [ [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5327,7 +5299,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5350,7 +5322,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5366,7 +5338,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5386,7 +5358,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5403,7 +5375,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5420,7 +5392,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5438,7 +5410,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -5453,7 +5425,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5468,7 +5440,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-support", "frame-system", @@ -5482,10 +5454,11 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", "sp-core", @@ -5497,7 +5470,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5516,7 +5489,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-support", "frame-system", @@ -5533,7 +5506,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5556,7 +5529,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5572,7 +5545,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5587,7 +5560,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5602,7 +5575,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5618,7 +5591,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-support", "frame-system", @@ -5639,7 +5612,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5655,7 +5628,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-support", "frame-system", @@ -5669,7 +5642,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5692,7 +5665,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -5703,7 +5676,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "log", "sp-arithmetic", @@ -5712,7 +5685,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-support", "frame-system", @@ -5741,7 +5714,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5759,7 +5732,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5778,14 +5751,13 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-support", "frame-system", "parity-scale-codec", "scale-info", "serde", - "smallvec", "sp-core", "sp-io", "sp-runtime", @@ -5795,7 +5767,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -5810,7 +5782,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5821,7 +5793,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5838,7 +5810,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5854,7 +5826,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-benchmarking", "frame-support", @@ -5868,8 +5840,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "frame-support", "frame-system", @@ -5886,8 +5858,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "frame-benchmarking", "frame-support", @@ -5904,7 +5876,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.22#ebdfbea0029dd3349ce0e9c758acc73acce04d18" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -6167,7 +6139,7 @@ dependencies = [ "cfg-if 1.0.0", "instant", "libc", - "redox_syscall 0.2.13", + "redox_syscall", "smallvec", "winapi", ] @@ -6180,7 +6152,7 @@ checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.2.13", + "redox_syscall", "smallvec", "windows-sys", ] @@ -6346,8 +6318,8 @@ checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "futures 0.3.21", "polkadot-node-network-protocol", @@ -6361,8 +6333,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "futures 0.3.21", "polkadot-node-network-protocol", @@ -6375,8 +6347,8 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "derive_more", "fatality", @@ -6398,8 +6370,8 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "fatality", "futures 0.3.21", @@ -6419,8 +6391,8 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "clap", "frame-benchmarking-cli", @@ -6444,8 +6416,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -6484,8 +6456,8 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "always-assert", "fatality", @@ -6505,8 +6477,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -6518,8 +6490,8 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "derive_more", "fatality", @@ -6541,8 +6513,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6555,8 +6527,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "futures 0.3.21", "futures-timer", @@ -6575,8 +6547,8 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "always-assert", "async-trait", @@ -6596,8 +6568,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "futures 0.3.21", "parity-scale-codec", @@ -6614,8 +6586,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "bitvec", "derive_more", @@ -6643,8 +6615,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "bitvec", "futures 0.3.21", @@ -6663,8 +6635,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "bitvec", "fatality", @@ -6682,8 +6654,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "futures 0.3.21", "polkadot-node-subsystem", @@ -6697,8 +6669,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "async-trait", "futures 0.3.21", @@ -6715,8 +6687,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "futures 0.3.21", "polkadot-node-subsystem", @@ -6730,8 +6702,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "futures 0.3.21", "futures-timer", @@ -6747,8 +6719,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "fatality", "futures 0.3.21", @@ -6766,8 +6738,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "async-trait", "futures 0.3.21", @@ -6783,8 +6755,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "bitvec", "fatality", @@ -6801,8 +6773,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "always-assert", "assert_matches", @@ -6826,13 +6798,14 @@ dependencies = [ "sp-maybe-compressed-blob", "sp-tracing", "sp-wasm-interface", + "tempfile", "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "futures 0.3.21", "polkadot-node-primitives", @@ -6847,8 +6820,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "futures 0.3.21", "memory-lru", @@ -6859,14 +6832,13 @@ dependencies = [ "sp-api", "sp-authority-discovery", "sp-consensus-babe", - "sp-core", "tracing-gum", ] [[package]] name = "polkadot-node-jaeger" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "async-std", "lazy_static", @@ -6883,16 +6855,16 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "bs58", "futures 0.3.21", "futures-timer", "log", - "metered-channel", "parity-scale-codec", "polkadot-primitives", + "prioritized-metered-channel", "sc-cli", "sc-service", "sc-tracing", @@ -6902,8 +6874,8 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "async-trait", "derive_more", @@ -6918,12 +6890,13 @@ dependencies = [ "sc-network", "strum 0.24.0", "thiserror", + "tracing-gum", ] [[package]] name = "polkadot-node-primitives" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "bounded-vec", "futures 0.3.21", @@ -6944,8 +6917,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -6954,15 +6927,15 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "derive_more", "futures 0.3.21", + "orchestra", "polkadot-node-jaeger", "polkadot-node-network-protocol", "polkadot-node-primitives", - "polkadot-overseer-gen", "polkadot-primitives", "polkadot-statement-table", "sc-network", @@ -6973,8 +6946,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "async-trait", "derive_more", @@ -6983,7 +6956,6 @@ dependencies = [ "itertools", "kvdb", "lru 0.7.5", - "metered-channel", "parity-db", "parity-scale-codec", "parity-util-mem", @@ -6996,6 +6968,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", + "prioritized-metered-channel", "rand 0.8.5", "sp-application-crypto", "sp-core", @@ -7006,58 +6979,30 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "futures 0.3.21", "futures-timer", "lru 0.7.5", + "orchestra", "parity-util-mem", "parking_lot 0.12.0", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem-types", - "polkadot-overseer-gen", "polkadot-primitives", "sc-client-api", "sp-api", + "sp-core", "tracing-gum", ] -[[package]] -name = "polkadot-overseer-gen" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" -dependencies = [ - "async-trait", - "futures 0.3.21", - "futures-timer", - "metered-channel", - "pin-project 1.0.10", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-overseer-gen-proc-macro", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-overseer-gen-proc-macro" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" -dependencies = [ - "expander 0.0.6", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "polkadot-parachain" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "derive_more", "frame-support", @@ -7073,8 +7018,8 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "env_logger", "kusama-runtime", @@ -7088,8 +7033,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "bitvec", "frame-system", @@ -7118,8 +7063,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -7150,8 +7095,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "beefy-primitives", "bitvec", @@ -7236,8 +7181,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "beefy-primitives", "bitvec", @@ -7283,8 +7228,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "frame-support", "polkadot-primitives", @@ -7295,8 +7240,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "bs58", "parity-scale-codec", @@ -7307,8 +7252,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "bitflags", "bitvec", @@ -7350,8 +7295,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "async-trait", "beefy-gadget", @@ -7393,6 +7338,7 @@ dependencies = [ "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", + "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-parachain", @@ -7452,8 +7398,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "arrayvec 0.5.2", "fatality", @@ -7473,8 +7419,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7523,20 +7469,6 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" -[[package]] -name = "prettytable-rs" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fd04b170004fa2daccf418a7f8253aaf033c27760b5f225889024cf66d7ac2e" -dependencies = [ - "atty", - "csv", - "encode_unicode", - "lazy_static", - "term", - "unicode-width", -] - [[package]] name = "primitive-types" version = "0.11.1" @@ -7550,6 +7482,21 @@ dependencies = [ "uint", ] +[[package]] +name = "prioritized-metered-channel" +version = "0.2.0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +dependencies = [ + "coarsetime", + "crossbeam-queue", + "derive_more", + "futures 0.3.21", + "futures-timer", + "nanorand", + "thiserror", + "tracing", +] + [[package]] name = "proc-macro-crate" version = "1.1.3" @@ -7637,7 +7584,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.9.0", +] + +[[package]] +name = "prost" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71adf41db68aa0daaefc69bb30bcd68ded9b9abaad5d1fbb6304c4fb390e083e" +dependencies = [ + "bytes", + "prost-derive 0.10.1", ] [[package]] @@ -7653,7 +7610,7 @@ dependencies = [ "log", "multimap", "petgraph", - "prost", + "prost 0.9.0", "prost-types", "regex", "tempfile", @@ -7673,6 +7630,19 @@ dependencies = [ "syn", ] +[[package]] +name = "prost-derive" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b670f45da57fb8542ebdbb6105a925fe571b67f9e7ed9f47a06a84e72b4e7cc" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "prost-types" version = "0.9.0" @@ -7680,7 +7650,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" dependencies = [ "bytes", - "prost", + "prost 0.9.0", ] [[package]] @@ -7854,12 +7824,6 @@ dependencies = [ "num_cpus", ] -[[package]] -name = "redox_syscall" -version = "0.1.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" - [[package]] name = "redox_syscall" version = "0.2.13" @@ -7869,17 +7833,6 @@ dependencies = [ "bitflags", ] -[[package]] -name = "redox_users" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d" -dependencies = [ - "getrandom 0.1.16", - "redox_syscall 0.1.57", - "rust-argon2", -] - [[package]] name = "redox_users" version = "0.4.3" @@ -7887,7 +7840,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ "getrandom 0.2.6", - "redox_syscall 0.2.13", + "redox_syscall", "thiserror", ] @@ -7976,7 +7929,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "env_logger", "jsonrpsee", @@ -8053,8 +8006,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -8130,8 +8083,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "frame-support", "polkadot-primitives", @@ -8165,18 +8118,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "rust-argon2" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb" -dependencies = [ - "base64", - "blake2b_simd 0.5.11", - "constant_time_eq", - "crossbeam-utils", -] - [[package]] name = "rustc-demangle" version = "0.1.21" @@ -8218,19 +8159,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "rustls" -version = "0.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" -dependencies = [ - "base64", - "log", - "ring", - "sct 0.6.1", - "webpki 0.21.4", -] - [[package]] name = "rustls" version = "0.20.6" @@ -8239,20 +8167,8 @@ checksum = "5aab8ee6c7097ed6057f43c187a62418d0c05a4bd5f18b3571db50ee0f9ce033" dependencies = [ "log", "ring", - "sct 0.7.0", - "webpki 0.22.0", -] - -[[package]] -name = "rustls-native-certs" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092" -dependencies = [ - "openssl-probe", - "rustls 0.19.1", - "schannel", - "security-framework", + "sct", + "webpki", ] [[package]] @@ -8320,7 +8236,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "log", "sp-core", @@ -8331,7 +8247,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "async-trait", "futures 0.3.21", @@ -8340,7 +8256,7 @@ dependencies = [ "libp2p", "log", "parity-scale-codec", - "prost", + "prost 0.10.4", "prost-build", "rand 0.7.3", "sc-client-api", @@ -8358,7 +8274,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "futures 0.3.21", "futures-timer", @@ -8381,7 +8297,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8397,7 +8313,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "impl-trait-for-tuples", "memmap2 0.5.3", @@ -8414,7 +8330,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8425,7 +8341,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "chrono", "clap", @@ -8464,7 +8380,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "fnv", "futures 0.3.21", @@ -8492,7 +8408,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "hash-db", "kvdb", @@ -8517,7 +8433,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "async-trait", "futures 0.3.21", @@ -8541,7 +8457,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "async-trait", "futures 0.3.21", @@ -8570,7 +8486,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "async-trait", "fork-tree", @@ -8613,7 +8529,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "futures 0.3.21", "jsonrpsee", @@ -8635,7 +8551,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8648,7 +8564,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "async-trait", "futures 0.3.21", @@ -8673,7 +8589,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "sc-client-api", "sp-authorship", @@ -8684,7 +8600,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "lazy_static", "lru 0.7.5", @@ -8711,7 +8627,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "environmental", "parity-scale-codec", @@ -8728,7 +8644,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "log", "parity-scale-codec", @@ -8743,7 +8659,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "cfg-if 1.0.0", "libc", @@ -8761,7 +8677,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "ahash", "async-trait", @@ -8801,7 +8717,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "finality-grandpa", "futures 0.3.21", @@ -8822,7 +8738,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "ansi_term", "futures 0.3.21", @@ -8839,7 +8755,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "async-trait", "hex", @@ -8854,7 +8770,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "async-trait", "asynchronous-codec", @@ -8876,13 +8792,14 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.0", "pin-project 1.0.10", - "prost", + "prost 0.10.4", "prost-build", "rand 0.7.3", "sc-block-builder", "sc-client-api", "sc-consensus", "sc-network-common", + "sc-network-light", "sc-network-sync", "sc-peerset", "sc-utils", @@ -8905,7 +8822,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "futures 0.3.21", "libp2p", @@ -8918,7 +8835,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "ahash", "futures 0.3.21", @@ -8932,10 +8849,30 @@ dependencies = [ "tracing", ] +[[package]] +name = "sc-network-light" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +dependencies = [ + "futures 0.3.21", + "libp2p", + "log", + "parity-scale-codec", + "prost 0.10.4", + "prost-build", + "sc-client-api", + "sc-network-common", + "sc-peerset", + "sp-blockchain", + "sp-core", + "sp-runtime", + "thiserror", +] + [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "bitflags", "either", @@ -8945,7 +8882,7 @@ dependencies = [ "log", "lru 0.7.5", "parity-scale-codec", - "prost", + "prost 0.10.4", "prost-build", "sc-client-api", "sc-consensus", @@ -8964,7 +8901,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "bytes", "fnv", @@ -8992,7 +8929,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "futures 0.3.21", "libp2p", @@ -9005,7 +8942,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -9014,7 +8951,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "futures 0.3.21", "hash-db", @@ -9044,7 +8981,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "futures 0.3.21", "jsonrpsee", @@ -9067,7 +9004,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "futures 0.3.21", "jsonrpsee", @@ -9080,7 +9017,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "async-trait", "directories", @@ -9145,7 +9082,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "log", "parity-scale-codec", @@ -9159,7 +9096,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -9178,7 +9115,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "futures 0.3.21", "libc", @@ -9197,7 +9134,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "chrono", "futures 0.3.21", @@ -9215,7 +9152,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "ansi_term", "atty", @@ -9246,7 +9183,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9257,7 +9194,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "futures 0.3.21", "futures-timer", @@ -9284,7 +9221,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "futures 0.3.21", "log", @@ -9297,7 +9234,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "futures 0.3.21", "futures-timer", @@ -9367,16 +9304,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" -[[package]] -name = "sct" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "sct" version = "0.7.0" @@ -9660,8 +9587,8 @@ checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" [[package]] name = "slot-range-helper" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "enumn", "parity-scale-codec", @@ -9737,7 +9664,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "hash-db", "log", @@ -9754,7 +9681,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "blake2", "proc-macro-crate", @@ -9766,7 +9693,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "parity-scale-codec", "scale-info", @@ -9779,7 +9706,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "integer-sqrt", "num-traits", @@ -9794,7 +9721,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "parity-scale-codec", "scale-info", @@ -9807,7 +9734,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "async-trait", "parity-scale-codec", @@ -9819,7 +9746,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "parity-scale-codec", "sp-api", @@ -9831,7 +9758,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "futures 0.3.21", "log", @@ -9849,7 +9776,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "async-trait", "futures 0.3.21", @@ -9868,7 +9795,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "async-trait", "parity-scale-codec", @@ -9886,7 +9813,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "async-trait", "merlin", @@ -9909,7 +9836,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "parity-scale-codec", "scale-info", @@ -9923,7 +9850,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "parity-scale-codec", "scale-info", @@ -9936,7 +9863,7 @@ dependencies = [ [[package]] name = "sp-core" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "base58", "bitflags", @@ -9982,7 +9909,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "blake2", "byteorder", @@ -9996,7 +9923,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "proc-macro2", "quote", @@ -10007,7 +9934,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "kvdb", "parking_lot 0.12.0", @@ -10016,7 +9943,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "proc-macro2", "quote", @@ -10026,7 +9953,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "environmental", "parity-scale-codec", @@ -10037,7 +9964,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "finality-grandpa", "log", @@ -10055,7 +9982,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -10069,7 +9996,7 @@ dependencies = [ [[package]] name = "sp-io" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "futures 0.3.21", "hash-db", @@ -10094,7 +10021,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "lazy_static", "sp-core", @@ -10105,7 +10032,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "async-trait", "futures 0.3.21", @@ -10122,7 +10049,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "thiserror", "zstd", @@ -10131,7 +10058,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "log", "parity-scale-codec", @@ -10146,7 +10073,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "parity-scale-codec", "scale-info", @@ -10160,7 +10087,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "sp-api", "sp-core", @@ -10170,7 +10097,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "backtrace", "lazy_static", @@ -10180,7 +10107,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "rustc-hash", "serde", @@ -10190,7 +10117,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "either", "hash256-std-hasher", @@ -10212,7 +10139,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -10229,7 +10156,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "Inflector", "proc-macro-crate", @@ -10241,7 +10168,7 @@ dependencies = [ [[package]] name = "sp-sandbox" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "log", "parity-scale-codec", @@ -10255,7 +10182,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "serde", "serde_json", @@ -10264,7 +10191,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "parity-scale-codec", "scale-info", @@ -10278,7 +10205,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "parity-scale-codec", "scale-info", @@ -10289,7 +10216,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "hash-db", "log", @@ -10311,12 +10238,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" [[package]] name = "sp-storage" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10329,7 +10256,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "log", "sp-core", @@ -10342,7 +10269,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "async-trait", "futures-timer", @@ -10358,7 +10285,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "parity-scale-codec", "sp-std", @@ -10370,7 +10297,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "sp-api", "sp-runtime", @@ -10379,7 +10306,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "async-trait", "log", @@ -10395,7 +10322,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "hash-db", "memory-db", @@ -10411,7 +10338,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10428,7 +10355,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10439,7 +10366,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "impl-trait-for-tuples", "log", @@ -10586,7 +10513,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "platforms", ] @@ -10594,7 +10521,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.21", @@ -10615,7 +10542,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "futures-util", "hyper", @@ -10628,7 +10555,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "jsonrpsee", "log", @@ -10649,7 +10576,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "ansi_term", "build-helper", @@ -10733,22 +10660,11 @@ dependencies = [ "cfg-if 1.0.0", "fastrand", "libc", - "redox_syscall 0.2.13", + "redox_syscall", "remove_dir_all", "winapi", ] -[[package]] -name = "term" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42" -dependencies = [ - "byteorder", - "dirs", - "winapi", -] - [[package]] name = "termcolor" version = "1.1.3" @@ -10908,26 +10824,15 @@ dependencies = [ "syn", ] -[[package]] -name = "tokio-rustls" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" -dependencies = [ - "rustls 0.19.1", - "tokio", - "webpki 0.21.4", -] - [[package]] name = "tokio-rustls" version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ - "rustls 0.20.6", + "rustls", "tokio", - "webpki 0.22.0", + "webpki", ] [[package]] @@ -11005,8 +10910,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -11016,8 +10921,8 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "expander 0.0.6", "proc-macro-crate", @@ -11146,7 +11051,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.22#616d33ea23bab86cafffaf116fc607b6790fb4eb" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" dependencies = [ "clap", "jsonrpsee", @@ -11653,6 +11558,7 @@ dependencies = [ "libc", "log", "mach", + "memfd", "memoffset", "more-asserts", "rand 0.8.5", @@ -11686,16 +11592,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "webpki" version = "0.22.0" @@ -11712,7 +11608,7 @@ version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44d8de8415c823c8abd270ad483c6feeac771fad964890779f9a8cb24fbbc1bf" dependencies = [ - "webpki 0.22.0", + "webpki", ] [[package]] @@ -11726,8 +11622,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "beefy-primitives", "bitvec", @@ -11815,8 +11711,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "frame-support", "polkadot-primitives", @@ -11990,8 +11886,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -12003,8 +11899,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "frame-support", "frame-system", @@ -12023,8 +11919,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.22" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +version = "0.9.23" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "frame-benchmarking", "frame-support", @@ -12042,7 +11938,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.22#17c7b9594aedbfc644d7e6e26f7bd244e68ccf4d" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" dependencies = [ "Inflector", "proc-macro2", diff --git a/node/Cargo.toml b/node/Cargo.toml index 83e6aa4c..190d9ac8 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -20,70 +20,70 @@ log = "0.4.17" codec = { package = "parity-scale-codec", version = "3.0.0" } serde = { version = "1.0.137", features = ["derive"] } hex-literal = "0.3.4" -jsonrpsee = { version = "0.13.0", features = ["server"] } +jsonrpsee = { version = "0.13.1", features = ["server"] } # Local parachain-template-runtime = { path = "../runtime" } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.22" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.22" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.22" } -sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.23" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.23" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.23" } +sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.22" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.22" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.22" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.22" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.22" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.23" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.23" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.23" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.23" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.23" } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } -cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } -cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.22" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } +cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } +cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } +cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } [features] default = [] diff --git a/node/src/command.rs b/node/src/command.rs index 4b8db2e2..47691d41 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -9,7 +9,6 @@ use cumulus_primitives_core::ParaId; use frame_benchmarking_cli::{BenchmarkCmd, SUBSTRATE_REFERENCE_HARDWARE}; use log::info; use parachain_template_runtime::{Block, RuntimeApi}; -use polkadot_parachain::primitives::AccountIdConversion; use sc_cli::{ ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli, @@ -19,7 +18,7 @@ use sc_service::{ TaskManager, }; use sp_core::hexdisplay::HexDisplay; -use sp_runtime::traits::Block as BlockT; +use sp_runtime::traits::{AccountIdConversion, Block as BlockT}; use std::{io::Write, net::SocketAddr}; fn load_spec(id: &str) -> std::result::Result, String> { @@ -309,10 +308,9 @@ pub fn run() -> Result<()> { let id = ParaId::from(para_id); let parachain_account = - AccountIdConversion::::into_account(&id); + AccountIdConversion::::into_account_truncating(&id); - let state_version = - RelayChainCli::native_runtime_version(&config.chain_spec).state_version(); + let state_version = Cli::native_runtime_version(&config.chain_spec).state_version(); let block: Block = generate_genesis_block(&config.chain_spec, state_version) .map_err(|e| format!("{:?}", e))?; let genesis_state = format!("0x{:?}", HexDisplay::from(&block.header().encode())); diff --git a/node/src/rpc.rs b/node/src/rpc.rs index c71b3f36..5ea76090 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc.rs @@ -46,13 +46,13 @@ where C::Api: BlockBuilder, P: TransactionPool + Sync + Send + 'static, { - use pallet_transaction_payment_rpc::{TransactionPaymentApiServer, TransactionPaymentRpc}; - use substrate_frame_rpc_system::{SystemApiServer, SystemRpc}; + use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApiServer}; + use substrate_frame_rpc_system::{System, SystemApiServer}; let mut module = RpcExtension::new(()); let FullDeps { client, pool, deny_unsafe } = deps; - module.merge(SystemRpc::new(client.clone(), pool.clone(), deny_unsafe).into_rpc())?; - module.merge(TransactionPaymentRpc::new(client.clone()).into_rpc())?; + module.merge(System::new(client.clone(), pool.clone(), deny_unsafe).into_rpc())?; + module.merge(TransactionPayment::new(client.clone()).into_rpc())?; Ok(module) } diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 098f4655..01085b7b 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -16,17 +16,17 @@ codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive scale-info = { version = "2.0.0", default-features = false, features = ["derive"] } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.22" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.23" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } [dev-dependencies] serde = { version = "1.0.132" } # Substrate -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } [features] default = ["std"] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 49ea76a7..9be05cb0 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,7 +12,7 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } @@ -26,54 +26,54 @@ smallvec = "1.6.1" pallet-template = { path = "../pallets/template", default-features = false } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.22" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.22" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.22" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.22" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.23" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.23" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.23" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.22" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.22" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.22" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.22" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.22" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.22" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.23" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.23" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.23" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.23" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.23" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.23" } # Cumulus -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22" } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22" } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22" } -cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22", version = "3.0.0" } -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22" } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22" } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22" } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22" } -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22" } -parachain-info = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.22" } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } +cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } +pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } +parachain-info = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } [features] default = [ From e0388cbb1777c1fada8e2b649360b449869ffc64 Mon Sep 17 00:00:00 2001 From: Bruno Galvao Date: Thu, 16 Jun 2022 15:39:42 -0400 Subject: [PATCH 57/91] Update to polkadot-v0.9.24 (#115) --- Cargo.lock | 967 ++++++++++++++++++++---------------- node/Cargo.toml | 104 ++-- pallets/template/Cargo.toml | 12 +- runtime/Cargo.toml | 90 ++-- 4 files changed, 634 insertions(+), 539 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 61cb13ed..b6701c8a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -330,15 +330,6 @@ dependencies = [ "pin-project-lite 0.2.9", ] -[[package]] -name = "atomic" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b88d82667eca772c4aa12f0f1348b3ae643424c8876448f3f7bd5787032e234c" -dependencies = [ - "autocfg", -] - [[package]] name = "atomic-waker" version = "1.0.0" @@ -427,7 +418,7 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "beefy-primitives", "fnv", @@ -461,7 +452,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -481,12 +472,12 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "parity-scale-codec", "scale-info", @@ -676,7 +667,7 @@ dependencies = [ [[package]] name = "bp-header-chain" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "bp-runtime", "finality-grandpa", @@ -693,7 +684,7 @@ dependencies = [ [[package]] name = "bp-message-dispatch" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "bp-runtime", "frame-support", @@ -705,7 +696,7 @@ dependencies = [ [[package]] name = "bp-messages" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "bitvec", "bp-runtime", @@ -722,7 +713,7 @@ dependencies = [ [[package]] name = "bp-polkadot-core" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "bp-messages", "bp-runtime", @@ -740,7 +731,7 @@ dependencies = [ [[package]] name = "bp-rococo" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -757,7 +748,7 @@ dependencies = [ [[package]] name = "bp-runtime" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "frame-support", "hash-db", @@ -775,7 +766,7 @@ dependencies = [ [[package]] name = "bp-test-utils" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "bp-header-chain", "ed25519-dalek", @@ -790,7 +781,7 @@ dependencies = [ [[package]] name = "bp-wococo" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -805,7 +796,7 @@ dependencies = [ [[package]] name = "bridge-runtime-common" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "bp-message-dispatch", "bp-messages", @@ -1084,6 +1075,15 @@ dependencies = [ "os_str_bytes", ] +[[package]] +name = "cmake" +version = "0.1.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a" +dependencies = [ + "cc", +] + [[package]] name = "coarsetime" version = "0.1.22" @@ -1411,7 +1411,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "clap", "sc-cli", @@ -1422,7 +1422,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1446,7 +1446,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1475,7 +1475,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1496,7 +1496,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1521,7 +1521,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -1545,7 +1545,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1575,7 +1575,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "frame-executive", "frame-support", @@ -1593,7 +1593,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1611,7 +1611,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1641,7 +1641,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1652,7 +1652,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "frame-benchmarking", "frame-support", @@ -1666,7 +1666,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1683,7 +1683,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1702,7 +1702,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "frame-support", "parity-scale-codec", @@ -1718,7 +1718,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1741,7 +1741,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "cumulus-primitives-core", "futures 0.3.21", @@ -1754,7 +1754,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1771,7 +1771,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1802,7 +1802,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1826,7 +1826,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "async-trait", "backoff", @@ -1852,7 +1852,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -2392,7 +2392,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "parity-scale-codec", ] @@ -2410,7 +2410,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-support", "frame-system", @@ -2432,7 +2432,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "Inflector", "chrono", @@ -2482,7 +2482,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2493,7 +2493,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2509,7 +2509,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-support", "frame-system", @@ -2537,7 +2537,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "bitflags", "frame-metadata", @@ -2567,7 +2567,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2579,7 +2579,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2591,7 +2591,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "proc-macro2", "quote", @@ -2601,7 +2601,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-support", "log", @@ -2618,7 +2618,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -2633,7 +2633,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "parity-scale-codec", "sp-api", @@ -2642,7 +2642,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-support", "sp-api", @@ -3482,8 +3482,8 @@ checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838" [[package]] name = "kusama-runtime" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "beefy-primitives", "bitvec", @@ -3575,8 +3575,8 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "frame-support", "polkadot-primitives", @@ -3679,11 +3679,10 @@ checksum = "33a33a362ce288760ec6a508b94caaec573ae7d3bbbd91b87aa0bad4456839db" [[package]] name = "libp2p" -version = "0.44.0" +version = "0.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "475ce2ac4a9727e53a519f6ee05b38abfcba8f0d39c4d24f103d184e36fd5b0f" +checksum = "41726ee8f662563fafba2d2d484b14037cc8ecb8c953fbfc8439d4ce3a0a9029" dependencies = [ - "atomic", "bytes", "futures 0.3.21", "futures-timer", @@ -3691,7 +3690,7 @@ dependencies = [ "instant", "lazy_static", "libp2p-autonat", - "libp2p-core", + "libp2p-core 0.33.0", "libp2p-deflate", "libp2p-dns", "libp2p-floodsub", @@ -3724,20 +3723,20 @@ dependencies = [ [[package]] name = "libp2p-autonat" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a13b690e65046af6a09c0b27bd9508fa1cab0efce889de74b0b643b9d2a98f9a" +checksum = "50de7c1d5c3f040fccb469e8a2d189e068b7627d760dd74ef914071c16bbe905" dependencies = [ "async-trait", "futures 0.3.21", "futures-timer", "instant", - "libp2p-core", + "libp2p-core 0.33.0", "libp2p-request-response", "libp2p-swarm", "log", - "prost 0.9.0", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", "rand 0.8.5", ] @@ -3756,7 +3755,6 @@ dependencies = [ "futures-timer", "instant", "lazy_static", - "libsecp256k1", "log", "multiaddr", "multihash", @@ -3764,10 +3762,45 @@ dependencies = [ "parking_lot 0.12.0", "pin-project 1.0.10", "prost 0.9.0", - "prost-build", + "prost-build 0.9.0", "rand 0.8.5", "ring", - "rw-stream-sink", + "rw-stream-sink 0.2.1", + "sha2 0.10.2", + "smallvec", + "thiserror", + "unsigned-varint", + "void", + "zeroize", +] + +[[package]] +name = "libp2p-core" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42d46fca305dee6757022e2f5a4f6c023315084d0ed7441c3ab244e76666d979" +dependencies = [ + "asn1_der", + "bs58", + "ed25519-dalek", + "either", + "fnv", + "futures 0.3.21", + "futures-timer", + "instant", + "lazy_static", + "libsecp256k1", + "log", + "multiaddr", + "multihash", + "multistream-select", + "parking_lot 0.12.0", + "pin-project 1.0.10", + "prost 0.10.4", + "prost-build 0.10.4", + "rand 0.8.5", + "ring", + "rw-stream-sink 0.3.0", "sha2 0.10.2", "smallvec", "thiserror", @@ -3778,52 +3811,53 @@ dependencies = [ [[package]] name = "libp2p-deflate" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1d37f042f748e224f04785d0e987ae09a2aa518d6401d82d412dad83e360ed" +checksum = "86adefc55ea4ed8201149f052fb441210727481dff1fb0b8318460206a79f5fb" dependencies = [ "flate2", "futures 0.3.21", - "libp2p-core", + "libp2p-core 0.33.0", ] [[package]] name = "libp2p-dns" -version = "0.32.1" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "066e33e854e10b5c93fc650458bf2179c7e0d143db260b0963e44a94859817f1" +checksum = "fbb462ec3a51fab457b4b44ac295e8b0a4b04dc175127e615cf996b1f0f1a268" dependencies = [ "async-std-resolver", "futures 0.3.21", - "libp2p-core", + "libp2p-core 0.33.0", "log", + "parking_lot 0.12.0", "smallvec", "trust-dns-resolver", ] [[package]] name = "libp2p-floodsub" -version = "0.35.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "733d3ea6ebe7a7a85df2bc86678b93f24b015fae5fe3b3acc4c400e795a55d2d" +checksum = "a505d0c6f851cbf2919535150198e530825def8bd3757477f13dc3a57f46cbcc" dependencies = [ "cuckoofilter", "fnv", "futures 0.3.21", - "libp2p-core", + "libp2p-core 0.33.0", "libp2p-swarm", "log", - "prost 0.9.0", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", "rand 0.7.3", "smallvec", ] [[package]] name = "libp2p-gossipsub" -version = "0.37.0" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a90c989a7c0969c2ab63e898da9bc735e3be53fb4f376e9c045ce516bcc9f928" +checksum = "43e064ba4d7832e01c738626c6b274ae100baba05f5ffcc7b265c2a3ed398108" dependencies = [ "asynchronous-codec", "base64", @@ -3833,12 +3867,12 @@ dependencies = [ "futures 0.3.21", "hex_fmt", "instant", - "libp2p-core", + "libp2p-core 0.33.0", "libp2p-swarm", "log", "prometheus-client", - "prost 0.9.0", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", "rand 0.7.3", "regex", "sha2 0.10.2", @@ -3849,28 +3883,32 @@ dependencies = [ [[package]] name = "libp2p-identify" -version = "0.35.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5ef5a5b57904c7c33d6713ef918d239dc6b7553458f3475d87f8a18e9c651c8" +checksum = "b84b53490442d086db1fa5375670c9666e79143dccadef3f7c74a4346899a984" dependencies = [ + "asynchronous-codec", "futures 0.3.21", "futures-timer", - "libp2p-core", + "libp2p-core 0.33.0", "libp2p-swarm", "log", "lru 0.7.5", - "prost 0.9.0", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", + "prost-codec", "smallvec", + "thiserror", + "void", ] [[package]] name = "libp2p-kad" -version = "0.36.0" +version = "0.37.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "564e6bd64d177446399ed835b9451a8825b07929d6daa6a94e6405592974725e" +checksum = "5f6b5d4de90fcd35feb65ea6223fd78f3b747a64ca4b65e0813fbe66a27d56aa" dependencies = [ - "arrayvec 0.5.2", + "arrayvec 0.7.2", "asynchronous-codec", "bytes", "either", @@ -3878,11 +3916,11 @@ dependencies = [ "futures 0.3.21", "futures-timer", "instant", - "libp2p-core", + "libp2p-core 0.33.0", "libp2p-swarm", "log", - "prost 0.9.0", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", "rand 0.7.3", "sha2 0.10.2", "smallvec", @@ -3894,9 +3932,9 @@ dependencies = [ [[package]] name = "libp2p-mdns" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611ae873c8e280ccfab0d57c7a13cac5644f364529e233114ff07863946058b0" +checksum = "4783f8cf00c7b6c1ff0f1870b4fcf50b042b45533d2e13b6fb464caf447a6951" dependencies = [ "async-io", "data-encoding", @@ -3904,7 +3942,7 @@ dependencies = [ "futures 0.3.21", "if-watch", "lazy_static", - "libp2p-core", + "libp2p-core 0.33.0", "libp2p-swarm", "log", "rand 0.8.5", @@ -3915,11 +3953,11 @@ dependencies = [ [[package]] name = "libp2p-metrics" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "985be799bb3796e0c136c768208c3c06604a38430571906a13dcfeda225a3b9d" +checksum = "adc4357140141ba9739eee71b20aa735351c0fc642635b2bffc7f57a6b5c1090" dependencies = [ - "libp2p-core", + "libp2p-core 0.33.0", "libp2p-gossipsub", "libp2p-identify", "libp2p-kad", @@ -3931,14 +3969,14 @@ dependencies = [ [[package]] name = "libp2p-mplex" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "442eb0c9fff0bf22a34f015724b4143ce01877e079ed0963c722d94c07c72160" +checksum = "5ff9c893f2367631a711301d703c47432af898c9bb8253bea0e2c051a13f7640" dependencies = [ "asynchronous-codec", "bytes", "futures 0.3.21", - "libp2p-core", + "libp2p-core 0.33.0", "log", "nohash-hasher", "parking_lot 0.12.0", @@ -3949,18 +3987,18 @@ dependencies = [ [[package]] name = "libp2p-noise" -version = "0.35.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd7e0c94051cda67123be68cf6b65211ba3dde7277be9068412de3e7ffd63ef" +checksum = "cf2cee1dad1c83325bbd182a8e94555778699cec8a9da00086efb7522c4c15ad" dependencies = [ "bytes", "curve25519-dalek 3.2.0", "futures 0.3.21", "lazy_static", - "libp2p-core", + "libp2p-core 0.33.0", "log", - "prost 0.9.0", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", "rand 0.8.5", "sha2 0.10.2", "snow", @@ -3971,14 +4009,14 @@ dependencies = [ [[package]] name = "libp2p-ping" -version = "0.35.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf57a3c2e821331dda9fe612d4654d676ab6e33d18d9434a18cced72630df6ad" +checksum = "d41516c82fe8dd148ec925eead0c5ec08a0628f7913597e93e126e4dfb4e0787" dependencies = [ "futures 0.3.21", "futures-timer", "instant", - "libp2p-core", + "libp2p-core 0.33.0", "libp2p-swarm", "log", "rand 0.7.3", @@ -3987,17 +4025,17 @@ dependencies = [ [[package]] name = "libp2p-plaintext" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "962c0fb0e7212fb96a69b87f2d09bcefd317935239bdc79cda900e7a8897a3fe" +checksum = "db007e737adc5d28b2e03223b0210164928ad742591127130796a72aa8eaf54f" dependencies = [ "asynchronous-codec", "bytes", "futures 0.3.21", - "libp2p-core", + "libp2p-core 0.33.0", "log", - "prost 0.9.0", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", "unsigned-varint", "void", ] @@ -4018,9 +4056,9 @@ dependencies = [ [[package]] name = "libp2p-relay" -version = "0.8.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3aa754cb7bccef51ebc3c458c6bbcef89d83b578a9925438389be841527d408f" +checksum = "624ead3406f64437a0d4567c31bd128a9a0b8226d5f16c074038f5d0fc32f650" dependencies = [ "asynchronous-codec", "bytes", @@ -4028,36 +4066,36 @@ dependencies = [ "futures 0.3.21", "futures-timer", "instant", - "libp2p-core", + "libp2p-core 0.33.0", "libp2p-swarm", "log", "pin-project 1.0.10", - "prost 0.9.0", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", + "prost-codec", "rand 0.8.5", "smallvec", "static_assertions", "thiserror", - "unsigned-varint", "void", ] [[package]] name = "libp2p-rendezvous" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd0baab894c5b84da510b915d53264d566c3c35889f09931fe9edbd2a773bee" +checksum = "c59967ea2db2c7560f641aa58ac05982d42131863fcd3dd6dcf0dd1daf81c60c" dependencies = [ "asynchronous-codec", "bimap", "futures 0.3.21", "futures-timer", "instant", - "libp2p-core", + "libp2p-core 0.33.0", "libp2p-swarm", "log", - "prost 0.9.0", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", "rand 0.8.5", "sha2 0.10.2", "thiserror", @@ -4067,15 +4105,15 @@ dependencies = [ [[package]] name = "libp2p-request-response" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6a6fc6c9ad95661f46989473b34bd2993d14a4de497ff3b2668a910d4b869" +checksum = "b02e0acb725e5a757d77c96b95298fd73a7394fe82ba7b8bbeea510719cbe441" dependencies = [ "async-trait", "bytes", "futures 0.3.21", "instant", - "libp2p-core", + "libp2p-core 0.33.0", "libp2p-swarm", "log", "rand 0.7.3", @@ -4085,16 +4123,16 @@ dependencies = [ [[package]] name = "libp2p-swarm" -version = "0.35.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f0c69ad9e8f7c5fc50ad5ad9c7c8b57f33716532a2b623197f69f93e374d14c" +checksum = "8f4bb21c5abadbf00360c734f16bf87f1712ed4f23cd46148f625d2ddb867346" dependencies = [ "either", "fnv", "futures 0.3.21", "futures-timer", "instant", - "libp2p-core", + "libp2p-core 0.33.0", "log", "pin-project 1.0.10", "rand 0.7.3", @@ -4115,9 +4153,9 @@ dependencies = [ [[package]] name = "libp2p-tcp" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "193447aa729c85aac2376828df76d171c1a589c9e6b58fcc7f9d9a020734122c" +checksum = "4f4933e38ef21b50698aefc87799c24f2a365c9d3f6cf50471f3f6a0bc410892" dependencies = [ "async-io", "futures 0.3.21", @@ -4125,7 +4163,7 @@ dependencies = [ "if-watch", "ipnet", "libc", - "libp2p-core", + "libp2p-core 0.33.0", "log", "socket2", ] @@ -4138,19 +4176,19 @@ checksum = "24bdab114f7f2701757d6541266e1131b429bbae382008f207f2114ee4222dcb" dependencies = [ "async-std", "futures 0.3.21", - "libp2p-core", + "libp2p-core 0.32.1", "log", ] [[package]] name = "libp2p-wasm-ext" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f6ea0f84a967ef59a16083f222c18115ae2e91db69809dce275df62e101b279" +checksum = "f066f2b8b1a1d64793f05da2256e6842ecd0293d6735ca2e9bda89831a1bdc06" dependencies = [ "futures 0.3.21", "js-sys", - "libp2p-core", + "libp2p-core 0.33.0", "parity-send-wrapper", "wasm-bindgen", "wasm-bindgen-futures", @@ -4158,17 +4196,18 @@ dependencies = [ [[package]] name = "libp2p-websocket" -version = "0.34.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c932834c3754501c368d1bf3d0fb458487a642b90fc25df082a3a2f3d3b32e37" +checksum = "39d398fbb29f432c4128fabdaac2ed155c3bcaf1b9bd40eeeb10a471eefacbf5" dependencies = [ "either", "futures 0.3.21", "futures-rustls", - "libp2p-core", + "libp2p-core 0.33.0", "log", + "parking_lot 0.12.0", "quicksink", - "rw-stream-sink", + "rw-stream-sink 0.3.0", "soketto", "url", "webpki-roots", @@ -4176,12 +4215,12 @@ dependencies = [ [[package]] name = "libp2p-yamux" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be902ebd89193cd020e89e89107726a38cfc0d16d18f613f4a37d046e92c7517" +checksum = "8fe653639ad74877c759720febb0cbcbf4caa221adde4eed2d3126ce5c6f381f" dependencies = [ "futures 0.3.21", - "libp2p-core", + "libp2p-core 0.33.0", "parking_lot 0.12.0", "thiserror", "yamux", @@ -4882,7 +4921,7 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "orchestra" version = "0.0.1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "async-trait", "dyn-clonable", @@ -4898,7 +4937,7 @@ dependencies = [ [[package]] name = "orchestra-proc-macro" version = "0.0.1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "expander 0.0.6", "petgraph", @@ -4935,7 +4974,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-support", "frame-system", @@ -4951,7 +4990,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-support", "frame-system", @@ -4967,7 +5006,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-support", "frame-system", @@ -4982,7 +5021,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5006,7 +5045,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5026,7 +5065,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5041,7 +5080,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "beefy-primitives", "frame-support", @@ -5057,7 +5096,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -5080,7 +5119,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5098,7 +5137,7 @@ dependencies = [ [[package]] name = "pallet-bridge-dispatch" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "bp-message-dispatch", "bp-runtime", @@ -5115,7 +5154,7 @@ dependencies = [ [[package]] name = "pallet-bridge-grandpa" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "bp-header-chain", "bp-runtime", @@ -5137,7 +5176,7 @@ dependencies = [ [[package]] name = "pallet-bridge-messages" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "bitvec", "bp-message-dispatch", @@ -5158,7 +5197,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5177,7 +5216,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5197,7 +5236,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5214,7 +5253,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5230,7 +5269,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5253,7 +5292,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5266,7 +5305,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5284,7 +5323,7 @@ dependencies = [ [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5299,7 +5338,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5322,7 +5361,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5338,7 +5377,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5358,7 +5397,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5375,7 +5414,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5392,7 +5431,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5410,7 +5449,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -5425,7 +5464,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5440,7 +5479,7 @@ dependencies = [ [[package]] name = "pallet-nicks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-support", "frame-system", @@ -5454,7 +5493,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-support", "frame-system", @@ -5470,7 +5509,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5489,7 +5528,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-support", "frame-system", @@ -5506,7 +5545,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5529,7 +5568,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5545,7 +5584,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5560,7 +5599,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5575,7 +5614,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5591,7 +5630,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-support", "frame-system", @@ -5612,7 +5651,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5628,7 +5667,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-support", "frame-system", @@ -5642,7 +5681,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5665,7 +5704,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -5676,7 +5715,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "log", "sp-arithmetic", @@ -5685,7 +5724,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-support", "frame-system", @@ -5714,7 +5753,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5732,7 +5771,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5751,7 +5790,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-support", "frame-system", @@ -5767,7 +5806,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -5782,7 +5821,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5793,7 +5832,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5810,7 +5849,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5826,7 +5865,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-benchmarking", "frame-support", @@ -5840,8 +5879,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "frame-support", "frame-system", @@ -5858,8 +5897,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5876,7 +5915,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.23#e5889f1d71975a192c98fa43b1c18c94ffda3bbd" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -6318,8 +6357,8 @@ checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "futures 0.3.21", "polkadot-node-network-protocol", @@ -6333,8 +6372,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "futures 0.3.21", "polkadot-node-network-protocol", @@ -6347,8 +6386,8 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "derive_more", "fatality", @@ -6370,8 +6409,8 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "fatality", "futures 0.3.21", @@ -6391,8 +6430,8 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "clap", "frame-benchmarking-cli", @@ -6416,8 +6455,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -6456,8 +6495,8 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "always-assert", "fatality", @@ -6477,8 +6516,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -6490,8 +6529,8 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "derive_more", "fatality", @@ -6513,8 +6552,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6527,8 +6566,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "futures 0.3.21", "futures-timer", @@ -6547,8 +6586,8 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "always-assert", "async-trait", @@ -6568,8 +6607,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "futures 0.3.21", "parity-scale-codec", @@ -6586,8 +6625,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "bitvec", "derive_more", @@ -6615,8 +6654,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "bitvec", "futures 0.3.21", @@ -6635,8 +6674,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "bitvec", "fatality", @@ -6654,8 +6693,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "futures 0.3.21", "polkadot-node-subsystem", @@ -6669,8 +6708,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "async-trait", "futures 0.3.21", @@ -6687,8 +6726,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "futures 0.3.21", "polkadot-node-subsystem", @@ -6702,8 +6741,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "futures 0.3.21", "futures-timer", @@ -6719,8 +6758,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "fatality", "futures 0.3.21", @@ -6738,8 +6777,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "async-trait", "futures 0.3.21", @@ -6755,8 +6794,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "bitvec", "fatality", @@ -6773,8 +6812,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "always-assert", "assert_matches", @@ -6804,8 +6843,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "futures 0.3.21", "polkadot-node-primitives", @@ -6820,8 +6859,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "futures 0.3.21", "memory-lru", @@ -6837,8 +6876,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "async-std", "lazy_static", @@ -6855,8 +6894,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "bs58", "futures 0.3.21", @@ -6874,8 +6913,8 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "async-trait", "derive_more", @@ -6895,8 +6934,8 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "bounded-vec", "futures 0.3.21", @@ -6917,8 +6956,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -6927,8 +6966,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "derive_more", "futures 0.3.21", @@ -6946,8 +6985,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "async-trait", "derive_more", @@ -6979,8 +7018,8 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "futures 0.3.21", "futures-timer", @@ -7001,8 +7040,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "derive_more", "frame-support", @@ -7018,8 +7057,8 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "env_logger", "kusama-runtime", @@ -7033,8 +7072,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "bitvec", "frame-system", @@ -7063,8 +7102,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -7095,8 +7134,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "beefy-primitives", "bitvec", @@ -7181,8 +7220,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "beefy-primitives", "bitvec", @@ -7228,8 +7267,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "frame-support", "polkadot-primitives", @@ -7240,8 +7279,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "bs58", "parity-scale-codec", @@ -7252,8 +7291,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "bitflags", "bitvec", @@ -7295,8 +7334,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "async-trait", "beefy-gadget", @@ -7398,8 +7437,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "arrayvec 0.5.2", "fatality", @@ -7419,8 +7458,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7485,7 +7524,7 @@ dependencies = [ [[package]] name = "prioritized-metered-channel" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "coarsetime", "crossbeam-queue", @@ -7556,9 +7595,9 @@ dependencies = [ [[package]] name = "prometheus-client" -version = "0.15.1" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9a896938cc6018c64f279888b8c7559d3725210d5db9a3a1ee6bc7188d51d34" +checksum = "ac1abe0255c04d15f571427a2d1e00099016506cf3297b53853acd2b7eb87825" dependencies = [ "dtoa", "itoa 1.0.2", @@ -7611,12 +7650,47 @@ dependencies = [ "multimap", "petgraph", "prost 0.9.0", - "prost-types", + "prost-types 0.9.0", + "regex", + "tempfile", + "which", +] + +[[package]] +name = "prost-build" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae5a4388762d5815a9fc0dea33c56b021cdc8dde0c55e0c9ca57197254b0cab" +dependencies = [ + "bytes", + "cfg-if 1.0.0", + "cmake", + "heck 0.4.0", + "itertools", + "lazy_static", + "log", + "multimap", + "petgraph", + "prost 0.10.4", + "prost-types 0.10.1", "regex", "tempfile", "which", ] +[[package]] +name = "prost-codec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00af1e92c33b4813cc79fda3f2dbf56af5169709be0202df730e9ebc3e4cd007" +dependencies = [ + "asynchronous-codec", + "bytes", + "prost 0.10.4", + "thiserror", + "unsigned-varint", +] + [[package]] name = "prost-derive" version = "0.9.0" @@ -7653,6 +7727,16 @@ dependencies = [ "prost 0.9.0", ] +[[package]] +name = "prost-types" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d0a014229361011dc8e69c8a1ec6c2e8d0f2af7c91e3ea3f5b2170298461e68" +dependencies = [ + "bytes", + "prost 0.10.4", +] + [[package]] name = "psm" version = "0.1.18" @@ -7929,7 +8013,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "env_logger", "jsonrpsee", @@ -8006,8 +8090,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -8083,8 +8167,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "frame-support", "polkadot-primitives", @@ -8209,6 +8293,17 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "rw-stream-sink" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26338f5e09bb721b85b135ea05af7767c90b52f6de4f087d4f4a3a9d64e7dc04" +dependencies = [ + "futures 0.3.21", + "pin-project 1.0.10", + "static_assertions", +] + [[package]] name = "ryu" version = "1.0.10" @@ -8236,7 +8331,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "log", "sp-core", @@ -8247,7 +8342,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "async-trait", "futures 0.3.21", @@ -8257,7 +8352,7 @@ dependencies = [ "log", "parity-scale-codec", "prost 0.10.4", - "prost-build", + "prost-build 0.9.0", "rand 0.7.3", "sc-client-api", "sc-network", @@ -8274,7 +8369,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "futures 0.3.21", "futures-timer", @@ -8297,7 +8392,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8313,7 +8408,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "impl-trait-for-tuples", "memmap2 0.5.3", @@ -8330,7 +8425,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8341,7 +8436,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "chrono", "clap", @@ -8380,7 +8475,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "fnv", "futures 0.3.21", @@ -8408,7 +8503,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "hash-db", "kvdb", @@ -8433,7 +8528,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "async-trait", "futures 0.3.21", @@ -8457,7 +8552,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "async-trait", "futures 0.3.21", @@ -8486,7 +8581,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "async-trait", "fork-tree", @@ -8529,7 +8624,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "futures 0.3.21", "jsonrpsee", @@ -8551,7 +8646,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8564,7 +8659,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "async-trait", "futures 0.3.21", @@ -8589,7 +8684,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "sc-client-api", "sp-authorship", @@ -8600,7 +8695,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "lazy_static", "lru 0.7.5", @@ -8627,7 +8722,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "environmental", "parity-scale-codec", @@ -8644,7 +8739,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "log", "parity-scale-codec", @@ -8659,7 +8754,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "cfg-if 1.0.0", "libc", @@ -8677,7 +8772,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "ahash", "async-trait", @@ -8717,7 +8812,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "finality-grandpa", "futures 0.3.21", @@ -8738,7 +8833,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "ansi_term", "futures 0.3.21", @@ -8755,7 +8850,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "async-trait", "hex", @@ -8770,7 +8865,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "async-trait", "asynchronous-codec", @@ -8793,7 +8888,7 @@ dependencies = [ "parking_lot 0.12.0", "pin-project 1.0.10", "prost 0.10.4", - "prost-build", + "prost-build 0.9.0", "rand 0.7.3", "sc-block-builder", "sc-client-api", @@ -8822,12 +8917,12 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "futures 0.3.21", "libp2p", "parity-scale-codec", - "prost-build", + "prost-build 0.9.0", "sc-peerset", "smallvec", ] @@ -8835,7 +8930,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "ahash", "futures 0.3.21", @@ -8852,14 +8947,14 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "futures 0.3.21", "libp2p", "log", "parity-scale-codec", "prost 0.10.4", - "prost-build", + "prost-build 0.9.0", "sc-client-api", "sc-network-common", "sc-peerset", @@ -8872,7 +8967,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "bitflags", "either", @@ -8883,7 +8978,7 @@ dependencies = [ "lru 0.7.5", "parity-scale-codec", "prost 0.10.4", - "prost-build", + "prost-build 0.9.0", "sc-client-api", "sc-consensus", "sc-network-common", @@ -8901,7 +8996,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "bytes", "fnv", @@ -8929,7 +9024,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "futures 0.3.21", "libp2p", @@ -8942,7 +9037,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8951,7 +9046,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "futures 0.3.21", "hash-db", @@ -8981,7 +9076,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "futures 0.3.21", "jsonrpsee", @@ -9004,7 +9099,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "futures 0.3.21", "jsonrpsee", @@ -9017,7 +9112,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "async-trait", "directories", @@ -9082,7 +9177,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "log", "parity-scale-codec", @@ -9096,7 +9191,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -9115,7 +9210,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "futures 0.3.21", "libc", @@ -9134,7 +9229,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "chrono", "futures 0.3.21", @@ -9152,7 +9247,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "ansi_term", "atty", @@ -9183,7 +9278,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9194,7 +9289,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "futures 0.3.21", "futures-timer", @@ -9221,7 +9316,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "futures 0.3.21", "log", @@ -9234,7 +9329,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "futures 0.3.21", "futures-timer", @@ -9587,8 +9682,8 @@ checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" [[package]] name = "slot-range-helper" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "enumn", "parity-scale-codec", @@ -9664,7 +9759,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "hash-db", "log", @@ -9681,7 +9776,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "blake2", "proc-macro-crate", @@ -9693,7 +9788,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "parity-scale-codec", "scale-info", @@ -9706,7 +9801,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "integer-sqrt", "num-traits", @@ -9721,7 +9816,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "parity-scale-codec", "scale-info", @@ -9734,7 +9829,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "async-trait", "parity-scale-codec", @@ -9746,7 +9841,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "parity-scale-codec", "sp-api", @@ -9758,7 +9853,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "futures 0.3.21", "log", @@ -9776,7 +9871,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "async-trait", "futures 0.3.21", @@ -9795,7 +9890,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "async-trait", "parity-scale-codec", @@ -9813,7 +9908,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "async-trait", "merlin", @@ -9836,7 +9931,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "parity-scale-codec", "scale-info", @@ -9850,7 +9945,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "parity-scale-codec", "scale-info", @@ -9863,7 +9958,7 @@ dependencies = [ [[package]] name = "sp-core" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "base58", "bitflags", @@ -9909,7 +10004,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "blake2", "byteorder", @@ -9923,7 +10018,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "proc-macro2", "quote", @@ -9934,7 +10029,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "kvdb", "parking_lot 0.12.0", @@ -9943,7 +10038,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "proc-macro2", "quote", @@ -9953,7 +10048,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "environmental", "parity-scale-codec", @@ -9964,7 +10059,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "finality-grandpa", "log", @@ -9982,7 +10077,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9996,7 +10091,7 @@ dependencies = [ [[package]] name = "sp-io" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "futures 0.3.21", "hash-db", @@ -10021,7 +10116,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "lazy_static", "sp-core", @@ -10032,7 +10127,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "async-trait", "futures 0.3.21", @@ -10049,7 +10144,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "thiserror", "zstd", @@ -10058,7 +10153,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "log", "parity-scale-codec", @@ -10073,7 +10168,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "parity-scale-codec", "scale-info", @@ -10087,7 +10182,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "sp-api", "sp-core", @@ -10097,7 +10192,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "backtrace", "lazy_static", @@ -10107,7 +10202,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "rustc-hash", "serde", @@ -10117,7 +10212,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "either", "hash256-std-hasher", @@ -10139,7 +10234,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -10156,7 +10251,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "Inflector", "proc-macro-crate", @@ -10168,7 +10263,7 @@ dependencies = [ [[package]] name = "sp-sandbox" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "log", "parity-scale-codec", @@ -10182,7 +10277,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "serde", "serde_json", @@ -10191,7 +10286,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "parity-scale-codec", "scale-info", @@ -10205,7 +10300,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "parity-scale-codec", "scale-info", @@ -10216,7 +10311,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "hash-db", "log", @@ -10238,12 +10333,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" [[package]] name = "sp-storage" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10256,7 +10351,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "log", "sp-core", @@ -10269,7 +10364,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "async-trait", "futures-timer", @@ -10285,7 +10380,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "parity-scale-codec", "sp-std", @@ -10297,7 +10392,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "sp-api", "sp-runtime", @@ -10306,7 +10401,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "async-trait", "log", @@ -10322,7 +10417,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "hash-db", "memory-db", @@ -10338,7 +10433,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10355,7 +10450,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10366,7 +10461,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "impl-trait-for-tuples", "log", @@ -10513,7 +10608,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "platforms", ] @@ -10521,7 +10616,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "frame-system-rpc-runtime-api", "futures 0.3.21", @@ -10542,7 +10637,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "futures-util", "hyper", @@ -10555,7 +10650,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "jsonrpsee", "log", @@ -10576,7 +10671,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "ansi_term", "build-helper", @@ -10910,8 +11005,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -10921,8 +11016,8 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "expander 0.0.6", "proc-macro-crate", @@ -11051,7 +11146,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.23#6cbe1772bf258793fa9845daa8f43ea0cadee596" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" dependencies = [ "clap", "jsonrpsee", @@ -11622,8 +11717,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "beefy-primitives", "bitvec", @@ -11711,8 +11806,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "frame-support", "polkadot-primitives", @@ -11886,8 +11981,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -11899,8 +11994,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "frame-support", "frame-system", @@ -11919,8 +12014,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.23" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +version = "0.9.24" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "frame-benchmarking", "frame-support", @@ -11938,7 +12033,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.23#a7e188cd9665c735f4b9d5a58cdbc4dd1850eae0" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" dependencies = [ "Inflector", "proc-macro2", diff --git a/node/Cargo.toml b/node/Cargo.toml index 190d9ac8..10dddce6 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -26,64 +26,64 @@ jsonrpsee = { version = "0.13.1", features = ["server"] } parachain-template-runtime = { path = "../runtime" } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.23" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.23" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.23" } -sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.24" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.24" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.24" } +sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.23" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.23" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.23" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.23" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.23" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.24" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.24" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.24" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.24" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.24" } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } -cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } -cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.23" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } +cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } +cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } +cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } [features] default = [] diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 01085b7b..6203d208 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -16,17 +16,17 @@ codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive scale-info = { version = "2.0.0", default-features = false, features = ["derive"] } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.23" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.24" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } [dev-dependencies] serde = { version = "1.0.132" } # Substrate -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } [features] default = ["std"] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 9be05cb0..e1c3836b 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,7 +12,7 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.23" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } @@ -26,54 +26,54 @@ smallvec = "1.6.1" pallet-template = { path = "../pallets/template", default-features = false } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.23" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.23" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.23" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.23" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.24" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.24" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.24" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.23" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.23" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.23" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.23" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.23" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.23" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.24" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.24" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.24" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.24" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.24" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.24" } # Cumulus -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } -cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } -parachain-info = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.23" } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } +cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } +pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } +parachain-info = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } [features] default = [ From a48fc05fce6d174cf92a399864d03536df25acd7 Mon Sep 17 00:00:00 2001 From: Bruno Galvao Date: Mon, 18 Jul 2022 10:32:05 -0400 Subject: [PATCH 58/91] Update to polkadot-v0.9.25 (#121) --- Cargo.lock | 1179 ++++++++++++++++++----------------- node/Cargo.toml | 112 ++-- node/src/cli.rs | 58 +- node/src/command.rs | 93 +-- pallets/template/Cargo.toml | 12 +- polkadot-launch/config.json | 2 +- runtime/Cargo.toml | 90 +-- runtime/src/lib.rs | 4 +- runtime/src/xcm_config.rs | 5 +- 9 files changed, 748 insertions(+), 807 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b6701c8a..99d361de 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -308,9 +308,9 @@ checksum = "30696a84d817107fc028e049980e09d5e140e8da8f1caeb17e8e950658a3cea9" [[package]] name = "async-trait" -version = "0.1.53" +version = "0.1.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6aa3524a2dfcf9fe180c51eae2b58738348d819517ceadf95789c51fff7600" +checksum = "96cf8829f67d2eab0b2dfa42c5d0ef737e0724e4a82b01b3e292456202b19716" dependencies = [ "proc-macro2", "quote", @@ -418,16 +418,16 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "beefy-primitives", "fnv", - "futures 0.3.21", + "futures", "futures-timer", "hex", "log", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "sc-chain-spec", "sc-client-api", "sc-finality-grandpa", @@ -452,15 +452,15 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "beefy-gadget", "beefy-primitives", - "futures 0.3.21", + "futures", "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "sc-rpc", "sc-utils", "serde", @@ -472,12 +472,12 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "parity-scale-codec", "scale-info", @@ -667,7 +667,7 @@ dependencies = [ [[package]] name = "bp-header-chain" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "bp-runtime", "finality-grandpa", @@ -684,7 +684,7 @@ dependencies = [ [[package]] name = "bp-message-dispatch" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "bp-runtime", "frame-support", @@ -696,7 +696,7 @@ dependencies = [ [[package]] name = "bp-messages" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "bitvec", "bp-runtime", @@ -713,7 +713,7 @@ dependencies = [ [[package]] name = "bp-polkadot-core" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "bp-messages", "bp-runtime", @@ -731,7 +731,7 @@ dependencies = [ [[package]] name = "bp-rococo" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -748,7 +748,7 @@ dependencies = [ [[package]] name = "bp-runtime" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "frame-support", "hash-db", @@ -766,7 +766,7 @@ dependencies = [ [[package]] name = "bp-test-utils" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "bp-header-chain", "ed25519-dalek", @@ -781,7 +781,7 @@ dependencies = [ [[package]] name = "bp-wococo" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "bp-messages", "bp-polkadot-core", @@ -796,7 +796,7 @@ dependencies = [ [[package]] name = "bridge-runtime-common" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "bp-message-dispatch", "bp-messages", @@ -1038,16 +1038,16 @@ dependencies = [ [[package]] name = "clap" -version = "3.1.18" +version = "3.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2dbdf4bdacb33466e854ce889eee8dfd5729abf7ccd7664d0a2d60cd384440b" +checksum = "ab8b79fe3946ceb4a0b1c080b4018992b8d27e9ff363644c1c9b6387c854614d" dependencies = [ "atty", "bitflags", "clap_derive", "clap_lex", "indexmap", - "lazy_static", + "once_cell", "strsim", "termcolor", "textwrap", @@ -1055,9 +1055,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "3.1.18" +version = "3.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25320346e922cffe59c0bbc5410c8d8784509efb321488971081313cb1e1a33c" +checksum = "759bf187376e1afa7b85b959e6a664a3e7a95203415dba952ad19139e798f902" dependencies = [ "heck 0.4.0", "proc-macro-error", @@ -1068,9 +1068,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.2.0" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a37c35f1112dad5e6e0b1adaff798507497a18fceeb30cceb3bae7d1427b9213" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" dependencies = [ "os_str_bytes", ] @@ -1411,26 +1411,30 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "clap", + "parity-scale-codec", + "sc-chain-spec", "sc-cli", "sc-service", + "sp-core", + "sp-runtime", "url", ] [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-primitives-core", "cumulus-relay-chain-interface", - "futures 0.3.21", + "futures", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-overseer", @@ -1446,12 +1450,12 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "async-trait", "cumulus-client-consensus-common", "cumulus-primitives-core", - "futures 0.3.21", + "futures", "parity-scale-codec", "sc-client-api", "sc-consensus", @@ -1475,12 +1479,12 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "async-trait", "cumulus-relay-chain-interface", "dyn-clone", - "futures 0.3.21", + "futures", "parity-scale-codec", "polkadot-primitives", "sc-client-api", @@ -1496,15 +1500,15 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "async-trait", "cumulus-relay-chain-interface", "derive_more", - "futures 0.3.21", + "futures", "futures-timer", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "polkadot-node-primitives", "polkadot-parachain", "polkadot-primitives", @@ -1521,11 +1525,11 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", - "futures 0.3.21", + "futures", "futures-timer", "parity-scale-codec", "polkadot-node-primitives", @@ -1545,7 +1549,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1553,11 +1557,9 @@ dependencies = [ "cumulus-client-pov-recovery", "cumulus-primitives-core", "cumulus-relay-chain-interface", - "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "polkadot-overseer", "polkadot-primitives", - "sc-chain-spec", "sc-client-api", "sc-consensus", "sc-consensus-babe", @@ -1575,7 +1577,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "frame-executive", "frame-support", @@ -1593,7 +1595,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1611,7 +1613,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1641,7 +1643,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1652,7 +1654,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "frame-benchmarking", "frame-support", @@ -1666,7 +1668,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1683,7 +1685,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1702,7 +1704,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "frame-support", "parity-scale-codec", @@ -1718,7 +1720,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1741,10 +1743,10 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "cumulus-primitives-core", - "futures 0.3.21", + "futures", "parity-scale-codec", "sp-inherents", "sp-std", @@ -1754,7 +1756,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1771,14 +1773,14 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", - "futures 0.3.21", + "futures", "futures-timer", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "polkadot-cli", "polkadot-client", "polkadot-service", @@ -1786,7 +1788,6 @@ dependencies = [ "sc-client-api", "sc-consensus-babe", "sc-network", - "sc-service", "sc-sysinfo", "sc-telemetry", "sc-tracing", @@ -1802,19 +1803,18 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "async-trait", "cumulus-primitives-core", "derive_more", - "futures 0.3.21", + "futures", "jsonrpsee-core", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "polkadot-overseer", "polkadot-service", "sc-client-api", - "sc-service", "sp-api", "sp-blockchain", "sp-core", @@ -1826,17 +1826,17 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "async-trait", "backoff", "cumulus-primitives-core", "cumulus-relay-chain-interface", - "futures 0.3.21", + "futures", "futures-timer", "jsonrpsee", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "polkadot-service", "sc-client-api", "sc-rpc-api", @@ -1852,7 +1852,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -2233,7 +2233,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" dependencies = [ - "futures 0.3.21", + "futures", ] [[package]] @@ -2336,19 +2336,31 @@ dependencies = [ "log", ] +[[package]] +name = "filetime" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall", + "windows-sys", +] + [[package]] name = "finality-grandpa" -version = "0.15.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9def033d8505edf199f6a5d07aa7e6d2d6185b164293b77f0efd108f4f3e11d" +checksum = "b22349c6a11563a202d95772a68e0fcf56119e74ea8a2a19cf2301460fcd0df5" dependencies = [ "either", - "futures 0.3.21", + "futures", "futures-timer", "log", "num-traits", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.1", "scale-info", ] @@ -2392,7 +2404,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "parity-scale-codec", ] @@ -2410,7 +2422,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-support", "frame-system", @@ -2432,7 +2444,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "Inflector", "chrono", @@ -2441,6 +2453,7 @@ dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "gethostname", "handlebars", "hash-db", "hex", @@ -2482,7 +2495,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2493,7 +2506,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2509,7 +2522,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-support", "frame-system", @@ -2537,7 +2550,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "bitflags", "frame-metadata", @@ -2567,7 +2580,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2579,7 +2592,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2591,7 +2604,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "proc-macro2", "quote", @@ -2601,7 +2614,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-support", "log", @@ -2618,7 +2631,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -2633,7 +2646,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "parity-scale-codec", "sp-api", @@ -2642,7 +2655,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-support", "sp-api", @@ -2690,12 +2703,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" -[[package]] -name = "futures" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" - [[package]] name = "futures" version = "0.3.21" @@ -2806,7 +2813,6 @@ version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" dependencies = [ - "futures 0.1.31", "futures-channel", "futures-core", "futures-io", @@ -2838,6 +2844,16 @@ dependencies = [ "version_check", ] +[[package]] +name = "gethostname" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "getrandom" version = "0.1.16" @@ -3184,7 +3200,7 @@ dependencies = [ "async-io", "core-foundation", "fnv", - "futures 0.3.21", + "futures", "if-addrs", "ipnet", "log", @@ -3328,9 +3344,9 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f2ab5a60e558e74ea93bcf5164ebc47939a7fff8938fa9b5233bbc63e16061" +checksum = "11e017217fcd18da0a25296d3693153dd19c8a6aadab330b3595285d075385d1" dependencies = [ "jsonrpsee-core", "jsonrpsee-http-server", @@ -3343,9 +3359,9 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d682f4a55081a2be3e639280c640523070e4aeb8ee2fd8dd9168fdae57a9db" +checksum = "ce395539a14d3ad4ec1256fde105abd36a2da25d578a291cabe98f45adfdb111" dependencies = [ "futures-util", "http", @@ -3364,9 +3380,9 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e27462b21279edf9a6a91f46ffbe125e9cdc58b901d2e08bf59b31a47d7d0ab" +checksum = "16efcd4477de857d4a2195a45769b2fe9ebb54f3ef5a4221d3b014a4fe33ec0b" dependencies = [ "anyhow", "arrayvec 0.7.2", @@ -3376,9 +3392,11 @@ dependencies = [ "futures-channel", "futures-timer", "futures-util", + "globset", "hyper", "jsonrpsee-types", - "parking_lot 0.12.0", + "lazy_static", + "parking_lot 0.12.1", "rand 0.8.5", "rustc-hash", "serde", @@ -3387,32 +3405,31 @@ dependencies = [ "thiserror", "tokio", "tracing", + "unicase", ] [[package]] name = "jsonrpsee-http-server" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7178f16eabd7154c094e24d295b9ee355ec1e5f24c328759c56255ff7bbd4548" +checksum = "bdd69efeb3ce2cba767f126872f4eeb4624038a29098e75d77608b2b4345ad03" dependencies = [ "futures-channel", "futures-util", - "globset", "hyper", "jsonrpsee-core", "jsonrpsee-types", - "lazy_static", + "serde", "serde_json", "tokio", "tracing", - "unicase", ] [[package]] name = "jsonrpsee-proc-macros" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b8d7f449cab3b747f12c3efc27f5cad537f3b597c6a3838b0fac628f4bf730a" +checksum = "874cf3f6a027cebf36cae767feca9aa2e8a8f799880e49eb5540819fcbd8eada" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -3422,9 +3439,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd11763134104122ddeb0f97e4bbe393058017dfb077db63fbf44b4dd0dd86e" +checksum = "3bcf76cd316f5d3ad48138085af1f45e2c58c98e02f0779783dbb034d43f7c86" dependencies = [ "anyhow", "beef", @@ -3436,9 +3453,9 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f15180afb3761c7a3a32c0a8b680788176dcfdfe725b24c1758c90b1d1595b" +checksum = "ee043cb5dd0d51d3eb93432e998d5bae797691a7b10ec4a325e036bcdb48c48a" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -3447,9 +3464,9 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-server" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfb6c21556c551582b56e4e8e6e6249b0bbdb69bb7fa39efe9b9a6b54af9f206" +checksum = "2bd2e4d266774a671f8def3794255b28eddd09b18d76e0b913fa439f34588c0a" dependencies = [ "futures-channel", "futures-util", @@ -3458,6 +3475,7 @@ dependencies = [ "serde_json", "soketto", "tokio", + "tokio-stream", "tokio-util", "tracing", ] @@ -3482,8 +3500,8 @@ checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838" [[package]] name = "kusama-runtime" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "beefy-primitives", "bitvec", @@ -3517,7 +3535,6 @@ dependencies = [ "pallet-indices", "pallet-membership", "pallet-multisig", - "pallet-nicks", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", "pallet-offences", @@ -3575,8 +3592,8 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "frame-support", "polkadot-primitives", @@ -3612,7 +3629,7 @@ checksum = "ece7e668abd21387aeb6628130a6f4c802787f014fa46bc83221448322250357" dependencies = [ "kvdb", "parity-util-mem", - "parking_lot 0.12.0", + "parking_lot 0.12.1", ] [[package]] @@ -3627,7 +3644,7 @@ dependencies = [ "num_cpus", "owning_ref", "parity-util-mem", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "regex", "rocksdb", "smallvec", @@ -3684,7 +3701,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41726ee8f662563fafba2d2d484b14037cc8ecb8c953fbfc8439d4ce3a0a9029" dependencies = [ "bytes", - "futures 0.3.21", + "futures", "futures-timer", "getrandom 0.2.6", "instant", @@ -3715,7 +3732,7 @@ dependencies = [ "libp2p-websocket", "libp2p-yamux", "multiaddr", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "pin-project 1.0.10", "rand 0.7.3", "smallvec", @@ -3728,7 +3745,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50de7c1d5c3f040fccb469e8a2d189e068b7627d760dd74ef914071c16bbe905" dependencies = [ "async-trait", - "futures 0.3.21", + "futures", "futures-timer", "instant", "libp2p-core 0.33.0", @@ -3751,7 +3768,7 @@ dependencies = [ "ed25519-dalek", "either", "fnv", - "futures 0.3.21", + "futures", "futures-timer", "instant", "lazy_static", @@ -3759,7 +3776,7 @@ dependencies = [ "multiaddr", "multihash", "multistream-select", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "pin-project 1.0.10", "prost 0.9.0", "prost-build 0.9.0", @@ -3785,7 +3802,7 @@ dependencies = [ "ed25519-dalek", "either", "fnv", - "futures 0.3.21", + "futures", "futures-timer", "instant", "lazy_static", @@ -3794,7 +3811,7 @@ dependencies = [ "multiaddr", "multihash", "multistream-select", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "pin-project 1.0.10", "prost 0.10.4", "prost-build 0.10.4", @@ -3816,7 +3833,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86adefc55ea4ed8201149f052fb441210727481dff1fb0b8318460206a79f5fb" dependencies = [ "flate2", - "futures 0.3.21", + "futures", "libp2p-core 0.33.0", ] @@ -3827,10 +3844,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbb462ec3a51fab457b4b44ac295e8b0a4b04dc175127e615cf996b1f0f1a268" dependencies = [ "async-std-resolver", - "futures 0.3.21", + "futures", "libp2p-core 0.33.0", "log", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "smallvec", "trust-dns-resolver", ] @@ -3843,7 +3860,7 @@ checksum = "a505d0c6f851cbf2919535150198e530825def8bd3757477f13dc3a57f46cbcc" dependencies = [ "cuckoofilter", "fnv", - "futures 0.3.21", + "futures", "libp2p-core 0.33.0", "libp2p-swarm", "log", @@ -3864,7 +3881,7 @@ dependencies = [ "byteorder", "bytes", "fnv", - "futures 0.3.21", + "futures", "hex_fmt", "instant", "libp2p-core 0.33.0", @@ -3888,12 +3905,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b84b53490442d086db1fa5375670c9666e79143dccadef3f7c74a4346899a984" dependencies = [ "asynchronous-codec", - "futures 0.3.21", + "futures", "futures-timer", "libp2p-core 0.33.0", "libp2p-swarm", "log", - "lru 0.7.5", + "lru 0.7.7", "prost 0.10.4", "prost-build 0.10.4", "prost-codec", @@ -3913,7 +3930,7 @@ dependencies = [ "bytes", "either", "fnv", - "futures 0.3.21", + "futures", "futures-timer", "instant", "libp2p-core 0.33.0", @@ -3939,7 +3956,7 @@ dependencies = [ "async-io", "data-encoding", "dns-parser", - "futures 0.3.21", + "futures", "if-watch", "lazy_static", "libp2p-core 0.33.0", @@ -3975,11 +3992,11 @@ checksum = "5ff9c893f2367631a711301d703c47432af898c9bb8253bea0e2c051a13f7640" dependencies = [ "asynchronous-codec", "bytes", - "futures 0.3.21", + "futures", "libp2p-core 0.33.0", "log", "nohash-hasher", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "rand 0.7.3", "smallvec", "unsigned-varint", @@ -3993,7 +4010,7 @@ checksum = "cf2cee1dad1c83325bbd182a8e94555778699cec8a9da00086efb7522c4c15ad" dependencies = [ "bytes", "curve25519-dalek 3.2.0", - "futures 0.3.21", + "futures", "lazy_static", "libp2p-core 0.33.0", "log", @@ -4013,7 +4030,7 @@ version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d41516c82fe8dd148ec925eead0c5ec08a0628f7913597e93e126e4dfb4e0787" dependencies = [ - "futures 0.3.21", + "futures", "futures-timer", "instant", "libp2p-core 0.33.0", @@ -4031,7 +4048,7 @@ checksum = "db007e737adc5d28b2e03223b0210164928ad742591127130796a72aa8eaf54f" dependencies = [ "asynchronous-codec", "bytes", - "futures 0.3.21", + "futures", "libp2p-core 0.33.0", "log", "prost 0.10.4", @@ -4046,7 +4063,7 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f1a458bbda880107b5b36fcb9b5a1ef0c329685da0e203ed692a8ebe64cc92c" dependencies = [ - "futures 0.3.21", + "futures", "log", "pin-project 1.0.10", "rand 0.7.3", @@ -4063,7 +4080,7 @@ dependencies = [ "asynchronous-codec", "bytes", "either", - "futures 0.3.21", + "futures", "futures-timer", "instant", "libp2p-core 0.33.0", @@ -4088,7 +4105,7 @@ checksum = "c59967ea2db2c7560f641aa58ac05982d42131863fcd3dd6dcf0dd1daf81c60c" dependencies = [ "asynchronous-codec", "bimap", - "futures 0.3.21", + "futures", "futures-timer", "instant", "libp2p-core 0.33.0", @@ -4111,7 +4128,7 @@ checksum = "b02e0acb725e5a757d77c96b95298fd73a7394fe82ba7b8bbeea510719cbe441" dependencies = [ "async-trait", "bytes", - "futures 0.3.21", + "futures", "instant", "libp2p-core 0.33.0", "libp2p-swarm", @@ -4129,7 +4146,7 @@ checksum = "8f4bb21c5abadbf00360c734f16bf87f1712ed4f23cd46148f625d2ddb867346" dependencies = [ "either", "fnv", - "futures 0.3.21", + "futures", "futures-timer", "instant", "libp2p-core 0.33.0", @@ -4158,7 +4175,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f4933e38ef21b50698aefc87799c24f2a365c9d3f6cf50471f3f6a0bc410892" dependencies = [ "async-io", - "futures 0.3.21", + "futures", "futures-timer", "if-watch", "ipnet", @@ -4175,7 +4192,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24bdab114f7f2701757d6541266e1131b429bbae382008f207f2114ee4222dcb" dependencies = [ "async-std", - "futures 0.3.21", + "futures", "libp2p-core 0.32.1", "log", ] @@ -4186,7 +4203,7 @@ version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f066f2b8b1a1d64793f05da2256e6842ecd0293d6735ca2e9bda89831a1bdc06" dependencies = [ - "futures 0.3.21", + "futures", "js-sys", "libp2p-core 0.33.0", "parity-send-wrapper", @@ -4201,11 +4218,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39d398fbb29f432c4128fabdaac2ed155c3bcaf1b9bd40eeeb10a471eefacbf5" dependencies = [ "either", - "futures 0.3.21", + "futures", "futures-rustls", "libp2p-core 0.33.0", "log", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "quicksink", "rw-stream-sink 0.3.0", "soketto", @@ -4219,9 +4236,9 @@ version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fe653639ad74877c759720febb0cbcbf4caa221adde4eed2d3126ce5c6f381f" dependencies = [ - "futures 0.3.21", + "futures", "libp2p-core 0.33.0", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "thiserror", "yamux", ] @@ -4362,9 +4379,9 @@ dependencies = [ [[package]] name = "lru" -version = "0.7.5" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32613e41de4c47ab04970c348ca7ae7382cf116625755af070b008a15516a889" +checksum = "c84e6fe5655adc6ce00787cf7dcaf8dc4f998a0565d23eafc207a8b08ca3349a" dependencies = [ "hashbrown 0.11.2", ] @@ -4529,7 +4546,7 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69672161530e8aeca1d1400fbf3f1a1747ff60ea604265a4e906c2442df20532" dependencies = [ - "futures 0.3.21", + "futures", "rand 0.8.5", "thrift", ] @@ -4640,7 +4657,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "363a84be6453a70e63513660f4894ef815daf88e3356bffcda9ca27d810ce83b" dependencies = [ "bytes", - "futures 0.3.21", + "futures", "log", "pin-project 1.0.10", "smallvec", @@ -4736,7 +4753,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef8785b8141e8432aa45fceb922a7e876d7da3fad37fa7e7ec702ace3aa0826b" dependencies = [ "bytes", - "futures 0.3.21", + "futures", "log", "netlink-packet-core", "netlink-sys", @@ -4751,7 +4768,7 @@ checksum = "3e4c9f9547a08241bee7b6558b9b98e1f290d187de8b7cfca2bbb4937bcaa8f8" dependencies = [ "async-io", "bytes", - "futures 0.3.21", + "futures", "libc", "log", ] @@ -4921,11 +4938,11 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "orchestra" version = "0.0.1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "async-trait", "dyn-clonable", - "futures 0.3.21", + "futures", "futures-timer", "orchestra-proc-macro", "pin-project 1.0.10", @@ -4937,9 +4954,10 @@ dependencies = [ [[package]] name = "orchestra-proc-macro" version = "0.0.1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "expander 0.0.6", + "itertools", "petgraph", "proc-macro-crate", "proc-macro2", @@ -4974,7 +4992,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-support", "frame-system", @@ -4990,7 +5008,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-support", "frame-system", @@ -5006,7 +5024,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-support", "frame-system", @@ -5021,7 +5039,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5045,7 +5063,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5065,7 +5083,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5080,7 +5098,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "beefy-primitives", "frame-support", @@ -5096,7 +5114,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -5119,7 +5137,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5137,7 +5155,7 @@ dependencies = [ [[package]] name = "pallet-bridge-dispatch" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "bp-message-dispatch", "bp-runtime", @@ -5154,7 +5172,7 @@ dependencies = [ [[package]] name = "pallet-bridge-grandpa" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "bp-header-chain", "bp-runtime", @@ -5176,7 +5194,7 @@ dependencies = [ [[package]] name = "pallet-bridge-messages" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "bitvec", "bp-message-dispatch", @@ -5197,7 +5215,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5216,7 +5234,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "frame-benchmarking", "frame-support", @@ -5236,7 +5254,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5253,7 +5271,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5269,7 +5287,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5292,7 +5310,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5305,7 +5323,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5323,7 +5341,7 @@ dependencies = [ [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5338,7 +5356,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5361,7 +5379,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5377,7 +5395,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5397,7 +5415,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5414,7 +5432,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5431,7 +5449,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5449,7 +5467,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -5464,7 +5482,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5476,24 +5494,10 @@ dependencies = [ "sp-std", ] -[[package]] -name = "pallet-nicks" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" -dependencies = [ - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", - "sp-std", -] - [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-support", "frame-system", @@ -5501,6 +5505,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-core", + "sp-io", "sp-runtime", "sp-staking", "sp-std", @@ -5509,7 +5514,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5528,7 +5533,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-support", "frame-system", @@ -5545,7 +5550,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5568,7 +5573,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5584,7 +5589,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5599,7 +5604,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5614,7 +5619,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5630,7 +5635,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-support", "frame-system", @@ -5651,7 +5656,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5667,7 +5672,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-support", "frame-system", @@ -5681,7 +5686,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5704,7 +5709,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -5715,7 +5720,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "log", "sp-arithmetic", @@ -5724,7 +5729,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-support", "frame-system", @@ -5753,7 +5758,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5771,7 +5776,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5790,7 +5795,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-support", "frame-system", @@ -5806,7 +5811,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -5821,7 +5826,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5832,7 +5837,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5849,7 +5854,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5865,7 +5870,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5879,8 +5884,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "frame-support", "frame-system", @@ -5897,8 +5902,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5915,7 +5920,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.24#1d3a0d77b94046cf584dbf712d54fe6e9787d61c" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -6070,9 +6075,9 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.1.2" +version = "3.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8b44461635bbb1a0300f100a841e571e7d919c81c73075ef5d152ffdb521066" +checksum = "9182e4a71cae089267ab03e67c99368db7cd877baf50f931e5d6d4b71e195ac0" dependencies = [ "arrayvec 0.7.2", "bitvec", @@ -6084,9 +6089,9 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.1.2" +version = "3.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c45ed1f39709f5a89338fab50e59816b2e8815f5bb58276e7ddf9afd495f73f8" +checksum = "9299338969a3d2f491d65f140b00ddec470858402f888af98e8642fb5e8965cd" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -6110,7 +6115,7 @@ dependencies = [ "hashbrown 0.12.1", "impl-trait-for-tuples", "parity-util-mem-derive", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "primitive-types", "smallvec", "winapi", @@ -6161,9 +6166,9 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", "parking_lot_core 0.9.3", @@ -6357,10 +6362,10 @@ checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ - "futures 0.3.21", + "futures", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -6372,10 +6377,10 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ - "futures 0.3.21", + "futures", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -6386,13 +6391,13 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "derive_more", "fatality", - "futures 0.3.21", - "lru 0.7.5", + "futures", + "lru 0.7.7", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6409,12 +6414,12 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "fatality", - "futures 0.3.21", - "lru 0.7.5", + "futures", + "lru 0.7.7", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6430,12 +6435,12 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "clap", "frame-benchmarking-cli", - "futures 0.3.21", + "futures", "log", "polkadot-client", "polkadot-node-core-pvf", @@ -6455,8 +6460,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -6495,12 +6500,12 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "always-assert", "fatality", - "futures 0.3.21", + "futures", "futures-timer", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -6516,8 +6521,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -6529,13 +6534,13 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "derive_more", "fatality", - "futures 0.3.21", - "lru 0.7.5", + "futures", + "lru 0.7.7", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6552,8 +6557,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6566,10 +6571,10 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ - "futures 0.3.21", + "futures", "futures-timer", "polkadot-node-network-protocol", "polkadot-node-subsystem", @@ -6586,15 +6591,15 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "always-assert", "async-trait", "bytes", - "futures 0.3.21", + "futures", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -6607,10 +6612,10 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ - "futures 0.3.21", + "futures", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-primitives", @@ -6625,15 +6630,15 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "bitvec", "derive_more", - "futures 0.3.21", + "futures", "futures-timer", "kvdb", - "lru 0.7.5", + "lru 0.7.7", "merlin", "parity-scale-codec", "polkadot-node-jaeger", @@ -6654,11 +6659,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "bitvec", - "futures 0.3.21", + "futures", "futures-timer", "kvdb", "parity-scale-codec", @@ -6674,12 +6679,12 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "bitvec", "fatality", - "futures 0.3.21", + "futures", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -6693,10 +6698,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ - "futures 0.3.21", + "futures", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -6708,11 +6713,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "async-trait", - "futures 0.3.21", + "futures", "parity-scale-codec", "polkadot-node-core-pvf", "polkadot-node-primitives", @@ -6726,10 +6731,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ - "futures 0.3.21", + "futures", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", @@ -6741,10 +6746,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ - "futures 0.3.21", + "futures", "futures-timer", "kvdb", "parity-scale-codec", @@ -6758,13 +6763,13 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "fatality", - "futures 0.3.21", + "futures", "kvdb", - "lru 0.7.5", + "lru 0.7.7", "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -6777,11 +6782,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "async-trait", - "futures 0.3.21", + "futures", "futures-timer", "polkadot-node-subsystem", "polkadot-primitives", @@ -6794,12 +6799,12 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "bitvec", "fatality", - "futures 0.3.21", + "futures", "futures-timer", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -6812,14 +6817,14 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "always-assert", "assert_matches", "async-process", "async-std", - "futures 0.3.21", + "futures", "futures-timer", "parity-scale-codec", "pin-project 1.0.10", @@ -6843,10 +6848,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ - "futures 0.3.21", + "futures", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -6859,10 +6864,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ - "futures 0.3.21", + "futures", "memory-lru", "parity-util-mem", "polkadot-node-subsystem", @@ -6876,15 +6881,15 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "async-std", "lazy_static", "log", "mick-jaeger", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "polkadot-node-primitives", "polkadot-primitives", "sc-network", @@ -6894,11 +6899,11 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "bs58", - "futures 0.3.21", + "futures", "futures-timer", "log", "parity-scale-codec", @@ -6913,13 +6918,13 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "async-trait", "derive_more", "fatality", - "futures 0.3.21", + "futures", "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", @@ -6934,11 +6939,11 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "bounded-vec", - "futures 0.3.21", + "futures", "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", @@ -6956,8 +6961,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -6966,11 +6971,11 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "derive_more", - "futures 0.3.21", + "futures", "orchestra", "polkadot-node-jaeger", "polkadot-node-network-protocol", @@ -6985,16 +6990,16 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "async-trait", "derive_more", "fatality", - "futures 0.3.21", + "futures", "itertools", "kvdb", - "lru 0.7.5", + "lru 0.7.7", "parity-db", "parity-scale-codec", "parity-util-mem", @@ -7018,15 +7023,15 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ - "futures 0.3.21", + "futures", "futures-timer", - "lru 0.7.5", + "lru 0.7.7", "orchestra", "parity-util-mem", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -7040,8 +7045,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "derive_more", "frame-support", @@ -7057,8 +7062,8 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "env_logger", "kusama-runtime", @@ -7072,8 +7077,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "bitvec", "frame-system", @@ -7102,8 +7107,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -7134,8 +7139,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "beefy-primitives", "bitvec", @@ -7167,7 +7172,6 @@ dependencies = [ "pallet-indices", "pallet-membership", "pallet-multisig", - "pallet-nicks", "pallet-offences", "pallet-offences-benchmarking", "pallet-preimage", @@ -7220,8 +7224,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "beefy-primitives", "bitvec", @@ -7267,8 +7271,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "frame-support", "polkadot-primitives", @@ -7279,8 +7283,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "bs58", "parity-scale-codec", @@ -7291,8 +7295,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "bitflags", "bitvec", @@ -7334,19 +7338,19 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "async-trait", "beefy-gadget", "beefy-primitives", "frame-system-rpc-runtime-api", - "futures 0.3.21", + "futures", "hex-literal", "kusama-runtime", "kvdb", "kvdb-rocksdb", - "lru 0.7.5", + "lru 0.7.7", "pallet-babe", "pallet-im-online", "pallet-staking", @@ -7437,12 +7441,12 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "arrayvec 0.5.2", "fatality", - "futures 0.3.21", + "futures", "indexmap", "parity-scale-codec", "polkadot-node-network-protocol", @@ -7458,8 +7462,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7524,12 +7528,12 @@ dependencies = [ [[package]] name = "prioritized-metered-channel" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "coarsetime", "crossbeam-queue", "derive_more", - "futures 0.3.21", + "futures", "futures-timer", "nanorand", "thiserror", @@ -7572,9 +7576,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.39" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c54b25569025b7fc9651de43004ae593a75ad88543b17178aa5e1b9c4f15f56f" +checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7" dependencies = [ "unicode-ident", ] @@ -7589,7 +7593,7 @@ dependencies = [ "fnv", "lazy_static", "memchr", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "thiserror", ] @@ -8013,7 +8017,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "env_logger", "jsonrpsee", @@ -8090,8 +8094,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -8167,8 +8171,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "frame-support", "polkadot-primitives", @@ -8194,7 +8198,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f54290e54521dac3de4149d83ddf9f62a359b3cc93bcb494a794a41e6f4744b" dependencies = [ "async-global-executor", - "futures 0.3.21", + "futures", "log", "netlink-packet-route", "netlink-proto", @@ -8288,7 +8292,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" dependencies = [ - "futures 0.3.21", + "futures", "pin-project 0.4.29", "static_assertions", ] @@ -8299,7 +8303,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26338f5e09bb721b85b135ea05af7767c90b52f6de4f087d4f4a3a9d64e7dc04" dependencies = [ - "futures 0.3.21", + "futures", "pin-project 1.0.10", "static_assertions", ] @@ -8331,7 +8335,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "log", "sp-core", @@ -8342,17 +8346,17 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "async-trait", - "futures 0.3.21", + "futures", "futures-timer", "ip_network", "libp2p", "log", "parity-scale-codec", "prost 0.10.4", - "prost-build 0.9.0", + "prost-build 0.10.4", "rand 0.7.3", "sc-client-api", "sc-network", @@ -8369,9 +8373,9 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ - "futures 0.3.21", + "futures", "futures-timer", "log", "parity-scale-codec", @@ -8392,7 +8396,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8408,7 +8412,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "impl-trait-for-tuples", "memmap2 0.5.3", @@ -8425,7 +8429,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8436,12 +8440,12 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "chrono", "clap", "fdlimit", - "futures 0.3.21", + "futures", "hex", "libp2p", "log", @@ -8475,14 +8479,14 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "fnv", - "futures 0.3.21", + "futures", "hash-db", "log", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "sc-executor", "sc-transaction-pool-api", "sc-utils", @@ -8503,7 +8507,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "hash-db", "kvdb", @@ -8513,7 +8517,7 @@ dependencies = [ "log", "parity-db", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "sc-client-api", "sc-state-db", "sp-arithmetic", @@ -8528,14 +8532,14 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "async-trait", - "futures 0.3.21", + "futures", "futures-timer", "libp2p", "log", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "sc-client-api", "sc-utils", "serde", @@ -8552,10 +8556,10 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "async-trait", - "futures 0.3.21", + "futures", "log", "parity-scale-codec", "sc-block-builder", @@ -8581,18 +8585,18 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "async-trait", "fork-tree", - "futures 0.3.21", + "futures", "log", "merlin", "num-bigint", "num-rational 0.2.4", "num-traits", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "rand 0.7.3", "retain_mut", "sc-client-api", @@ -8624,9 +8628,9 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ - "futures 0.3.21", + "futures", "jsonrpsee", "sc-consensus-babe", "sc-consensus-epochs", @@ -8646,7 +8650,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8659,10 +8663,10 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "async-trait", - "futures 0.3.21", + "futures", "futures-timer", "log", "parity-scale-codec", @@ -8684,7 +8688,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "sc-client-api", "sp-authorship", @@ -8695,12 +8699,12 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "lazy_static", - "lru 0.7.5", + "lru 0.7.7", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "sc-executor-common", "sc-executor-wasmi", "sc-executor-wasmtime", @@ -8722,7 +8726,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "environmental", "parity-scale-codec", @@ -8739,7 +8743,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "log", "parity-scale-codec", @@ -8754,7 +8758,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "cfg-if 1.0.0", "libc", @@ -8772,19 +8776,19 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "ahash", "async-trait", "dyn-clone", "finality-grandpa", "fork-tree", - "futures 0.3.21", + "futures", "futures-timer", "hex", "log", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "rand 0.8.5", "sc-block-builder", "sc-chain-spec", @@ -8812,10 +8816,10 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "finality-grandpa", - "futures 0.3.21", + "futures", "jsonrpsee", "log", "parity-scale-codec", @@ -8833,10 +8837,10 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "ansi_term", - "futures 0.3.21", + "futures", "futures-timer", "log", "parity-util-mem", @@ -8850,11 +8854,11 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "async-trait", "hex", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "serde_json", "sp-application-crypto", "sp-core", @@ -8865,7 +8869,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "async-trait", "asynchronous-codec", @@ -8875,7 +8879,7 @@ dependencies = [ "either", "fnv", "fork-tree", - "futures 0.3.21", + "futures", "futures-timer", "hex", "ip_network", @@ -8883,12 +8887,12 @@ dependencies = [ "linked-hash-map", "linked_hash_set", "log", - "lru 0.7.5", + "lru 0.7.7", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "pin-project 1.0.10", "prost 0.10.4", - "prost-build 0.9.0", + "prost-build 0.10.4", "rand 0.7.3", "sc-block-builder", "sc-client-api", @@ -8917,12 +8921,12 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ - "futures 0.3.21", + "futures", "libp2p", "parity-scale-codec", - "prost-build 0.9.0", + "prost-build 0.10.4", "sc-peerset", "smallvec", ] @@ -8930,14 +8934,14 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "ahash", - "futures 0.3.21", + "futures", "futures-timer", "libp2p", "log", - "lru 0.7.5", + "lru 0.7.7", "sc-network", "sp-runtime", "substrate-prometheus-endpoint", @@ -8947,14 +8951,14 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ - "futures 0.3.21", + "futures", "libp2p", "log", "parity-scale-codec", "prost 0.10.4", - "prost-build 0.9.0", + "prost-build 0.10.4", "sc-client-api", "sc-network-common", "sc-peerset", @@ -8967,18 +8971,18 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "bitflags", "either", "fork-tree", - "futures 0.3.21", + "futures", "libp2p", "log", - "lru 0.7.5", + "lru 0.7.7", "parity-scale-codec", "prost 0.10.4", - "prost-build 0.9.0", + "prost-build 0.10.4", "sc-client-api", "sc-consensus", "sc-network-common", @@ -8996,11 +9000,11 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "bytes", "fnv", - "futures 0.3.21", + "futures", "futures-timer", "hex", "hyper", @@ -9008,7 +9012,7 @@ dependencies = [ "num_cpus", "once_cell", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "rand 0.7.3", "sc-client-api", "sc-network", @@ -9024,9 +9028,9 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ - "futures 0.3.21", + "futures", "libp2p", "log", "sc-utils", @@ -9037,7 +9041,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -9046,14 +9050,14 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ - "futures 0.3.21", + "futures", "hash-db", "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -9076,13 +9080,13 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ - "futures 0.3.21", + "futures", "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "sc-chain-spec", "sc-transaction-pool-api", "scale-info", @@ -9099,9 +9103,9 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ - "futures 0.3.21", + "futures", "jsonrpsee", "log", "serde_json", @@ -9112,19 +9116,19 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "async-trait", "directories", "exit-future", - "futures 0.3.21", + "futures", "futures-timer", "hash-db", "jsonrpsee", "log", "parity-scale-codec", "parity-util-mem", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "pin-project 1.0.10", "rand 0.7.3", "sc-block-builder", @@ -9177,13 +9181,13 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "log", "parity-scale-codec", "parity-util-mem", "parity-util-mem-derive", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "sc-client-api", "sp-core", ] @@ -9191,7 +9195,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -9210,9 +9214,9 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ - "futures 0.3.21", + "futures", "libc", "log", "rand 0.7.3", @@ -9229,13 +9233,13 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "chrono", - "futures 0.3.21", + "futures", "libp2p", "log", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "pin-project 1.0.10", "rand 0.7.3", "serde", @@ -9247,7 +9251,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "ansi_term", "atty", @@ -9256,7 +9260,7 @@ dependencies = [ "libc", "log", "once_cell", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "regex", "rustc-hash", "sc-client-api", @@ -9278,7 +9282,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9289,15 +9293,15 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ - "futures 0.3.21", + "futures", "futures-timer", "linked-hash-map", "log", "parity-scale-codec", "parity-util-mem", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "retain_mut", "sc-client-api", "sc-transaction-pool-api", @@ -9316,9 +9320,9 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ - "futures 0.3.21", + "futures", "log", "serde", "sp-blockchain", @@ -9329,13 +9333,13 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ - "futures 0.3.21", + "futures", "futures-timer", "lazy_static", "log", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "prometheus", ] @@ -9682,8 +9686,8 @@ checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" [[package]] name = "slot-range-helper" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "enumn", "parity-scale-codec", @@ -9749,7 +9753,7 @@ dependencies = [ "base64", "bytes", "flate2", - "futures 0.3.21", + "futures", "httparse", "log", "rand 0.8.5", @@ -9759,7 +9763,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "hash-db", "log", @@ -9776,7 +9780,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "blake2", "proc-macro-crate", @@ -9788,7 +9792,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "parity-scale-codec", "scale-info", @@ -9801,7 +9805,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "integer-sqrt", "num-traits", @@ -9816,7 +9820,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "parity-scale-codec", "scale-info", @@ -9829,7 +9833,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "async-trait", "parity-scale-codec", @@ -9841,7 +9845,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "parity-scale-codec", "sp-api", @@ -9853,13 +9857,13 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ - "futures 0.3.21", + "futures", "log", - "lru 0.7.5", + "lru 0.7.7", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "sp-api", "sp-consensus", "sp-database", @@ -9871,10 +9875,10 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "async-trait", - "futures 0.3.21", + "futures", "futures-timer", "log", "parity-scale-codec", @@ -9890,7 +9894,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "async-trait", "parity-scale-codec", @@ -9908,7 +9912,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "async-trait", "merlin", @@ -9931,7 +9935,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "parity-scale-codec", "scale-info", @@ -9945,7 +9949,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "parity-scale-codec", "scale-info", @@ -9958,7 +9962,7 @@ dependencies = [ [[package]] name = "sp-core" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "base58", "bitflags", @@ -9966,7 +9970,7 @@ dependencies = [ "byteorder", "dyn-clonable", "ed25519-dalek", - "futures 0.3.21", + "futures", "hash-db", "hash256-std-hasher", "hex", @@ -9978,7 +9982,7 @@ dependencies = [ "num-traits", "parity-scale-codec", "parity-util-mem", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "primitive-types", "rand 0.7.3", "regex", @@ -10004,7 +10008,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "blake2", "byteorder", @@ -10018,7 +10022,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "proc-macro2", "quote", @@ -10029,16 +10033,16 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "kvdb", - "parking_lot 0.12.0", + "parking_lot 0.12.1", ] [[package]] name = "sp-debug-derive" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "proc-macro2", "quote", @@ -10048,7 +10052,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "environmental", "parity-scale-codec", @@ -10059,7 +10063,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "finality-grandpa", "log", @@ -10077,7 +10081,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -10091,14 +10095,14 @@ dependencies = [ [[package]] name = "sp-io" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ - "futures 0.3.21", + "futures", "hash-db", "libsecp256k1", "log", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "secp256k1", "sp-core", "sp-externalities", @@ -10116,7 +10120,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "lazy_static", "sp-core", @@ -10127,13 +10131,13 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "async-trait", - "futures 0.3.21", + "futures", "merlin", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "schnorrkel", "serde", "sp-core", @@ -10144,7 +10148,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "thiserror", "zstd", @@ -10153,7 +10157,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "log", "parity-scale-codec", @@ -10168,7 +10172,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "parity-scale-codec", "scale-info", @@ -10182,7 +10186,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "sp-api", "sp-core", @@ -10192,7 +10196,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "backtrace", "lazy_static", @@ -10202,7 +10206,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "rustc-hash", "serde", @@ -10212,7 +10216,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "either", "hash256-std-hasher", @@ -10234,7 +10238,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -10251,7 +10255,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "Inflector", "proc-macro-crate", @@ -10263,7 +10267,7 @@ dependencies = [ [[package]] name = "sp-sandbox" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "log", "parity-scale-codec", @@ -10277,7 +10281,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "serde", "serde_json", @@ -10286,7 +10290,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "parity-scale-codec", "scale-info", @@ -10300,7 +10304,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "parity-scale-codec", "scale-info", @@ -10311,13 +10315,13 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "hash-db", "log", "num-traits", "parity-scale-codec", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "rand 0.7.3", "smallvec", "sp-core", @@ -10333,12 +10337,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" [[package]] name = "sp-storage" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10351,7 +10355,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "log", "sp-core", @@ -10364,7 +10368,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "async-trait", "futures-timer", @@ -10380,7 +10384,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "parity-scale-codec", "sp-std", @@ -10392,7 +10396,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "sp-api", "sp-runtime", @@ -10401,7 +10405,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "async-trait", "log", @@ -10417,7 +10421,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "hash-db", "memory-db", @@ -10433,7 +10437,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10450,7 +10454,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10461,7 +10465,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "impl-trait-for-tuples", "log", @@ -10608,7 +10612,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "platforms", ] @@ -10616,10 +10620,10 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "frame-system-rpc-runtime-api", - "futures 0.3.21", + "futures", "jsonrpsee", "log", "parity-scale-codec", @@ -10637,7 +10641,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "futures-util", "hyper", @@ -10650,7 +10654,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "jsonrpsee", "log", @@ -10671,11 +10675,12 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "ansi_term", "build-helper", "cargo_metadata", + "filetime", "sp-maybe-compressed-blob", "strum 0.23.0", "tempfile", @@ -10692,9 +10697,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.95" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbaf6116ab8924f39d52792136fb74fd60a80194cf1b1c6ffa6453eef1c3f942" +checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" dependencies = [ "proc-macro2", "quote", @@ -10900,7 +10905,7 @@ dependencies = [ "mio", "num_cpus", "once_cell", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "pin-project-lite 0.2.9", "signal-hook-registry", "socket2", @@ -10930,6 +10935,17 @@ dependencies = [ "webpki", ] +[[package]] +name = "tokio-stream" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9" +dependencies = [ + "futures-core", + "pin-project-lite 0.2.9", + "tokio", +] + [[package]] name = "tokio-util" version = "0.7.2" @@ -11005,8 +11021,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -11016,8 +11032,8 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "expander 0.0.6", "proc-macro-crate", @@ -11035,7 +11051,7 @@ dependencies = [ "ahash", "lazy_static", "log", - "lru 0.7.5", + "lru 0.7.7", "tracing-core", ] @@ -11130,7 +11146,7 @@ dependencies = [ "lazy_static", "log", "lru-cache", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "resolv-conf", "smallvec", "thiserror", @@ -11146,7 +11162,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.24#257cdb558c0decbd1da756b43288d06d02ff77c7" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" dependencies = [ "clap", "jsonrpsee", @@ -11469,7 +11485,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" dependencies = [ - "futures 0.3.21", + "futures", "js-sys", "parking_lot 0.11.2", "pin-utils", @@ -11717,8 +11733,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "beefy-primitives", "bitvec", @@ -11748,7 +11764,6 @@ dependencies = [ "pallet-indices", "pallet-membership", "pallet-multisig", - "pallet-nicks", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", "pallet-offences", @@ -11806,8 +11821,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "frame-support", "polkadot-primitives", @@ -11981,8 +11996,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -11994,8 +12009,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "frame-support", "frame-system", @@ -12014,8 +12029,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.24" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +version = "0.9.25" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "frame-benchmarking", "frame-support", @@ -12033,7 +12048,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.24#22836e55d41eef24ed5917fd654ee82a683a7cfe" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" dependencies = [ "Inflector", "proc-macro2", @@ -12047,10 +12062,10 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c0608f53c1dc0bad505d03a34bbd49fbf2ad7b51eb036123e896365532745a1" dependencies = [ - "futures 0.3.21", + "futures", "log", "nohash-hasher", - "parking_lot 0.12.0", + "parking_lot 0.12.1", "rand 0.8.5", "static_assertions", ] diff --git a/node/Cargo.toml b/node/Cargo.toml index 10dddce6..04e3d1c8 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -9,81 +9,77 @@ repository = "https://github.com/paritytech/cumulus/" edition = "2021" build = "build.rs" -[[bin]] -name = "parachain-collator" -path = "src/main.rs" - [dependencies] -clap = { version = "3.1", features = ["derive"] } +clap = { version = "3.2.5", features = ["derive"] } derive_more = "0.99.2" log = "0.4.17" codec = { package = "parity-scale-codec", version = "3.0.0" } serde = { version = "1.0.137", features = ["derive"] } hex-literal = "0.3.4" -jsonrpsee = { version = "0.13.1", features = ["server"] } +jsonrpsee = { version = "0.14.0", features = ["server"] } # Local parachain-template-runtime = { path = "../runtime" } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.24" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.24" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.24" } -sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.25" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.25" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.25" } +sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.24" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.24" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.24" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.24" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.24" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.25" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.25" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.25" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.25" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.25" } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } -cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } -cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.24" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } +cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } +cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } +cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } [features] default = [] diff --git a/node/src/cli.rs b/node/src/cli.rs index 0d36120a..949ce489 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -1,18 +1,8 @@ -use crate::chain_spec; -use clap::Parser; use std::path::PathBuf; /// Sub-commands supported by the collator. #[derive(Debug, clap::Subcommand)] pub enum Subcommand { - /// Export the genesis state of the parachain. - #[clap(name = "export-genesis-state")] - ExportGenesisState(ExportGenesisStateCommand), - - /// Export the genesis wasm of the parachain. - #[clap(name = "export-genesis-wasm")] - ExportGenesisWasm(ExportGenesisWasmCommand), - /// Build a chain specification. BuildSpec(sc_cli::BuildSpecCmd), @@ -28,11 +18,17 @@ pub enum Subcommand { /// Import blocks. ImportBlocks(sc_cli::ImportBlocksCmd), + /// Revert the chain to a previous state. + Revert(sc_cli::RevertCmd), + /// Remove the whole chain. PurgeChain(cumulus_client_cli::PurgeChainCmd), - /// Revert the chain to a previous state. - Revert(sc_cli::RevertCmd), + /// Export the genesis state of the parachain. + ExportGenesisState(cumulus_client_cli::ExportGenesisStateCommand), + + /// Export the genesis wasm of the parachain. + ExportGenesisWasm(cumulus_client_cli::ExportGenesisWasmCommand), /// Sub-commands concerned with benchmarking. /// The pallet benchmarking moved to the `pallet` sub-command. @@ -43,39 +39,7 @@ pub enum Subcommand { TryRuntime(try_runtime_cli::TryRuntimeCmd), } -/// Command for exporting the genesis state of the parachain -#[derive(Debug, Parser)] -pub struct ExportGenesisStateCommand { - /// Output file name or stdout if unspecified. - #[clap(parse(from_os_str))] - pub output: Option, - - /// Write output in binary. Default is to write in hex. - #[clap(short, long)] - pub raw: bool, - - /// The name of the chain for that the genesis state should be exported. - #[clap(long)] - pub chain: Option, -} - -/// Command for exporting the genesis wasm file. -#[derive(Debug, Parser)] -pub struct ExportGenesisWasmCommand { - /// Output file name or stdout if unspecified. - #[clap(parse(from_os_str))] - pub output: Option, - - /// Write output in binary. Default is to write in hex. - #[clap(short, long)] - pub raw: bool, - - /// The name of the chain for that the genesis wasm file should be exported. - #[clap(long)] - pub chain: Option, -} - -#[derive(Debug, Parser)] +#[derive(Debug, clap::Parser)] #[clap( propagate_version = true, args_conflicts_with_subcommands = true, @@ -121,9 +85,9 @@ impl RelayChainCli { para_config: &sc_service::Configuration, relay_chain_args: impl Iterator, ) -> Self { - let extension = chain_spec::Extensions::try_get(&*para_config.chain_spec); + let extension = crate::chain_spec::Extensions::try_get(&*para_config.chain_spec); let chain_id = extension.map(|e| e.relay_chain.clone()); let base_path = para_config.base_path.as_ref().map(|x| x.path().join("polkadot")); - Self { base_path, chain_id, base: polkadot_cli::RunCmd::parse_from(relay_chain_args) } + Self { base_path, chain_id, base: clap::Parser::parse_from(relay_chain_args) } } } diff --git a/node/src/command.rs b/node/src/command.rs index 47691d41..eedc6e95 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -1,10 +1,7 @@ -use crate::{ - chain_spec, - cli::{Cli, RelayChainCli, Subcommand}, - service::{new_partial, TemplateRuntimeExecutor}, -}; +use std::net::SocketAddr; + use codec::Encode; -use cumulus_client_service::genesis::generate_genesis_block; +use cumulus_client_cli::generate_genesis_block; use cumulus_primitives_core::ParaId; use frame_benchmarking_cli::{BenchmarkCmd, SUBSTRATE_REFERENCE_HARDWARE}; use log::info; @@ -19,9 +16,14 @@ use sc_service::{ }; use sp_core::hexdisplay::HexDisplay; use sp_runtime::traits::{AccountIdConversion, Block as BlockT}; -use std::{io::Write, net::SocketAddr}; -fn load_spec(id: &str) -> std::result::Result, String> { +use crate::{ + chain_spec, + cli::{Cli, RelayChainCli, Subcommand}, + service::{new_partial, TemplateRuntimeExecutor}, +}; + +fn load_spec(id: &str) -> std::result::Result, String> { Ok(match id { "dev" => Box::new(chain_spec::development_config()), "template-rococo" => Box::new(chain_spec::local_testnet_config()), @@ -106,16 +108,6 @@ impl SubstrateCli for RelayChainCli { } } -#[allow(clippy::borrowed_box)] -fn extract_genesis_wasm(chain_spec: &Box) -> Result> { - let mut storage = chain_spec.build_storage()?; - - storage - .top - .remove(sp_core::storage::well_known_keys::CODE) - .ok_or_else(|| "Could not find wasm file in genesis state!".into()) -} - macro_rules! construct_async_run { (|$components:ident, $cli:ident, $cmd:ident, $config:ident| $( $code:tt )* ) => {{ let runner = $cli.create_runner($cmd)?; @@ -163,6 +155,11 @@ pub fn run() -> Result<()> { Ok(cmd.run(components.client, components.import_queue)) }) }, + Some(Subcommand::Revert(cmd)) => { + construct_async_run!(|components, cli, cmd, config| { + Ok(cmd.run(components.client, components.backend, None)) + }) + }, Some(Subcommand::PurgeChain(cmd)) => { let runner = cli.create_runner(cmd)?; @@ -182,54 +179,20 @@ pub fn run() -> Result<()> { cmd.run(config, polkadot_config) }) }, - Some(Subcommand::Revert(cmd)) => { - construct_async_run!(|components, cli, cmd, config| { - Ok(cmd.run(components.client, components.backend, None)) + Some(Subcommand::ExportGenesisState(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.sync_run(|_config| { + let spec = cli.load_spec(&cmd.shared_params.chain.clone().unwrap_or_default())?; + let state_version = Cli::native_runtime_version(&spec).state_version(); + cmd.run::(&*spec, state_version) }) }, - Some(Subcommand::ExportGenesisState(params)) => { - let mut builder = sc_cli::LoggerBuilder::new(""); - builder.with_profiling(sc_tracing::TracingReceiver::Log, ""); - let _ = builder.init(); - - let spec = load_spec(¶ms.chain.clone().unwrap_or_default())?; - let state_version = Cli::native_runtime_version(&spec).state_version(); - let block: Block = generate_genesis_block(&spec, state_version)?; - let raw_header = block.header().encode(); - let output_buf = if params.raw { - raw_header - } else { - format!("0x{:?}", HexDisplay::from(&block.header().encode())).into_bytes() - }; - - if let Some(output) = ¶ms.output { - std::fs::write(output, output_buf)?; - } else { - std::io::stdout().write_all(&output_buf)?; - } - - Ok(()) - }, - Some(Subcommand::ExportGenesisWasm(params)) => { - let mut builder = sc_cli::LoggerBuilder::new(""); - builder.with_profiling(sc_tracing::TracingReceiver::Log, ""); - let _ = builder.init(); - - let raw_wasm_blob = - extract_genesis_wasm(&cli.load_spec(¶ms.chain.clone().unwrap_or_default())?)?; - let output_buf = if params.raw { - raw_wasm_blob - } else { - format!("0x{:?}", HexDisplay::from(&raw_wasm_blob)).into_bytes() - }; - - if let Some(output) = ¶ms.output { - std::fs::write(output, output_buf)?; - } else { - std::io::stdout().write_all(&output_buf)?; - } - - Ok(()) + Some(Subcommand::ExportGenesisWasm(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.sync_run(|_config| { + let spec = cli.load_spec(&cmd.shared_params.chain.clone().unwrap_or_default())?; + cmd.run(&*spec) + }) }, Some(Subcommand::Benchmark(cmd)) => { let runner = cli.create_runner(cmd)?; @@ -311,7 +274,7 @@ pub fn run() -> Result<()> { AccountIdConversion::::into_account_truncating(&id); let state_version = Cli::native_runtime_version(&config.chain_spec).state_version(); - let block: Block = generate_genesis_block(&config.chain_spec, state_version) + let block: Block = generate_genesis_block(&*config.chain_spec, state_version) .map_err(|e| format!("{:?}", e))?; let genesis_state = format!("0x{:?}", HexDisplay::from(&block.header().encode())); diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 6203d208..19ff0c83 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -16,17 +16,17 @@ codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive scale-info = { version = "2.0.0", default-features = false, features = ["derive"] } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.24" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.25" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } [dev-dependencies] serde = { version = "1.0.132" } # Substrate -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } [features] default = ["std"] diff --git a/polkadot-launch/config.json b/polkadot-launch/config.json index 4dd6ebf7..f03f983a 100644 --- a/polkadot-launch/config.json +++ b/polkadot-launch/config.json @@ -17,7 +17,7 @@ }, "parachains": [ { - "bin": "../target/release/parachain-collator", + "bin": "../target/release/polkadot-parachain", "id": "200", "balance": "1000000000000000000000", "nodes": [ diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index e1c3836b..2b5a2ba7 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,7 +12,7 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.24" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } @@ -26,54 +26,54 @@ smallvec = "1.6.1" pallet-template = { path = "../pallets/template", default-features = false } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.24" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.24" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.24" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.24" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.25" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.25" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.25" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.24" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.24" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.24" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.24" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.24" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.24" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.25" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.25" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.25" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.25" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.25" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.25" } # Cumulus -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } -cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } -parachain-info = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.24" } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25" } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25" } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25" } +cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25", version = "3.0.0"} +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25" } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25" } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25" } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25" } +pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25" } +parachain-info = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25" } [features] default = [ diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 887de0b0..7429b832 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -9,6 +9,7 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); mod weights; pub mod xcm_config; +use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; use smallvec::smallvec; use sp_api::impl_runtime_apis; use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; @@ -369,11 +370,12 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type Event = Event; type OnSystemEvent = (); type SelfParaId = parachain_info::Pallet; + type OutboundXcmpMessageSource = XcmpQueue; type DmpMessageHandler = DmpQueue; type ReservedDmpWeight = ReservedDmpWeight; - type OutboundXcmpMessageSource = XcmpQueue; type XcmpMessageHandler = XcmpQueue; type ReservedXcmpWeight = ReservedXcmpWeight; + type CheckAssociatedRelayNumber = RelayNumberStrictlyIncreases; } impl parachain_info::Config for Runtime {} diff --git a/runtime/src/xcm_config.rs b/runtime/src/xcm_config.rs index 3c77efba..2ec84d18 100644 --- a/runtime/src/xcm_config.rs +++ b/runtime/src/xcm_config.rs @@ -137,13 +137,14 @@ impl ShouldExecute for DenyReserveTransferToRelayChain { return Err(()) // Deny } - // allow reserve transfers to arrive from relay chain + // An unexpected reserve transfer has arrived from the Relay Chain. Generally, `IsReserve` + // should not allow this, but we just log it here. if matches!(origin, MultiLocation { parents: 1, interior: Here }) && message.0.iter().any(|inst| matches!(inst, ReserveAssetDeposited { .. })) { log::warn!( target: "xcm::barriers", - "Unexpected ReserveAssetDeposited from the relay chain", + "Unexpected ReserveAssetDeposited from the Relay Chain", ); } // Permit everything else From a473da4c4535a821f05505aebc54c4a61b43a54b Mon Sep 17 00:00:00 2001 From: Bruno Galvao Date: Wed, 20 Jul 2022 05:58:26 -0400 Subject: [PATCH 59/91] Update to polkadot-v0.9.26 (#122) * update ci - no fixed nightly , ubuntu-latest Co-authored-by: Dan Shields --- .github/workflows/test-code.yml | 6 +- Cargo.lock | 1835 +++++++++++++------------------ node/Cargo.toml | 106 +- node/src/command.rs | 16 +- node/src/rpc.rs | 4 +- pallets/template/Cargo.toml | 12 +- runtime/Cargo.toml | 92 +- runtime/src/lib.rs | 3 +- 8 files changed, 894 insertions(+), 1180 deletions(-) diff --git a/.github/workflows/test-code.yml b/.github/workflows/test-code.yml index 06097a91..ad3abab6 100644 --- a/.github/workflows/test-code.yml +++ b/.github/workflows/test-code.yml @@ -10,7 +10,7 @@ on: jobs: test-code: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Checkout Code @@ -30,7 +30,7 @@ jobs: uses: actions-rs/toolchain@v1 with: profile: minimal - toolchain: nightly-2021-12-01 + toolchain: nightly components: rustfmt, clippy target: wasm32-unknown-unknown override: true @@ -38,7 +38,7 @@ jobs: # Enable this for clippy linting. # - name: Check and Lint Code - # run: cargo +nightly-2021-12-01 clippy -- -D warnings + # run: cargo +nightly clippy -- -D warnings - name: Check Code run: cargo check diff --git a/Cargo.lock b/Cargo.lock index 99d361de..5045ca6c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -68,7 +68,7 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.7", "once_cell", "version_check", ] @@ -99,9 +99,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.57" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc" +checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704" [[package]] name = "approx" @@ -188,14 +188,14 @@ dependencies = [ [[package]] name = "async-global-executor" -version = "2.0.4" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c290043c9a95b05d45e952fb6383c67bcb61471f60cfa21e890dba6654234f43" +checksum = "5262ed948da60dd8956c6c5aca4d4163593dddb7b32d73267c93dab7b2e98940" dependencies = [ "async-channel", "async-executor", "async-io", - "async-mutex", + "async-lock", "blocking", "futures-lite", "num_cpus", @@ -204,9 +204,9 @@ dependencies = [ [[package]] name = "async-io" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b" +checksum = "e5e18f61464ae81cde0a23e713ae8fd299580c54d697a35820cfd0625b8b0e07" dependencies = [ "concurrent-queue", "futures-lite", @@ -230,15 +230,6 @@ dependencies = [ "event-listener", ] -[[package]] -name = "async-mutex" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e" -dependencies = [ - "event-listener", -] - [[package]] name = "async-process" version = "1.4.0" @@ -258,9 +249,9 @@ dependencies = [ [[package]] name = "async-std" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52580991739c5cdb36cde8b2a516371c0a3b70dda36d916cc08b82372916808c" +checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" dependencies = [ "async-attributes", "async-channel", @@ -277,7 +268,6 @@ dependencies = [ "kv-log-macro", "log", "memchr", - "num_cpus", "once_cell", "pin-project-lite 0.2.9", "pin-utils", @@ -302,9 +292,9 @@ dependencies = [ [[package]] name = "async-task" -version = "4.2.0" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30696a84d817107fc028e049980e09d5e140e8da8f1caeb17e8e950658a3cea9" +checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" [[package]] name = "async-trait" @@ -360,7 +350,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" dependencies = [ "futures-core", - "getrandom 0.2.6", + "getrandom 0.2.7", "instant", "pin-project-lite 0.2.9", "rand 0.8.5", @@ -369,24 +359,24 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.65" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11a17d453482a265fd5f8479f2a3f405566e6ca627837aaddb85af8b1ab8ef61" +checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" dependencies = [ "addr2line", "cc", "cfg-if 1.0.0", "libc", "miniz_oxide", - "object 0.28.4", + "object 0.29.0", "rustc-demangle", ] [[package]] name = "base-x" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc19a4937b4fbd3fe3379793130e42060d10627a360f2127802b10b87e7baf74" +checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" [[package]] name = "base16ct" @@ -408,9 +398,9 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "beef" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bed554bd50246729a1ec158d08aa3235d1b69d94ad120ebe187e28894787e736" +checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" dependencies = [ "serde", ] @@ -418,7 +408,7 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "beefy-primitives", "fnv", @@ -452,7 +442,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -472,12 +462,16 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +dependencies = [ + "beefy-primitives", + "sp-api", +] [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "parity-scale-codec", "scale-info", @@ -530,9 +524,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitvec" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1489fcb93a5bb47da0462ca93ad252ad6af2145cce58d10d46a83931ba9f016b" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ "funty", "radium", @@ -664,160 +658,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "bp-header-chain" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" -dependencies = [ - "bp-runtime", - "finality-grandpa", - "frame-support", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-finality-grandpa", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bp-message-dispatch" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" -dependencies = [ - "bp-runtime", - "frame-support", - "parity-scale-codec", - "scale-info", - "sp-std", -] - -[[package]] -name = "bp-messages" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" -dependencies = [ - "bitvec", - "bp-runtime", - "frame-support", - "frame-system", - "impl-trait-for-tuples", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-std", -] - -[[package]] -name = "bp-polkadot-core" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" -dependencies = [ - "bp-messages", - "bp-runtime", - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-core", - "sp-runtime", - "sp-std", - "sp-version", -] - -[[package]] -name = "bp-rococo" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" -dependencies = [ - "bp-messages", - "bp-polkadot-core", - "bp-runtime", - "frame-support", - "parity-scale-codec", - "smallvec", - "sp-api", - "sp-runtime", - "sp-std", - "sp-version", -] - -[[package]] -name = "bp-runtime" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" -dependencies = [ - "frame-support", - "hash-db", - "num-traits", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-trie", -] - -[[package]] -name = "bp-test-utils" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" -dependencies = [ - "bp-header-chain", - "ed25519-dalek", - "finality-grandpa", - "parity-scale-codec", - "sp-application-crypto", - "sp-finality-grandpa", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bp-wococo" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" -dependencies = [ - "bp-messages", - "bp-polkadot-core", - "bp-rococo", - "bp-runtime", - "parity-scale-codec", - "sp-api", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "bridge-runtime-common" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" -dependencies = [ - "bp-message-dispatch", - "bp-messages", - "bp-runtime", - "frame-support", - "frame-system", - "hash-db", - "pallet-bridge-dispatch", - "pallet-bridge-grandpa", - "pallet-bridge-messages", - "pallet-transaction-payment", - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-core", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-trie", -] - [[package]] name = "bs58" version = "0.4.0" @@ -844,9 +684,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.9.1" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899" +checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3" [[package]] name = "byte-slice-cast" @@ -915,7 +755,7 @@ checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" dependencies = [ "camino", "cargo-platform", - "semver 1.0.9", + "semver 1.0.12", "serde", "serde_json", ] @@ -958,9 +798,9 @@ checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" [[package]] name = "chacha20" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01b72a433d0cf2aef113ba70f62634c56fddb0f244e6377185c56a7cadbd8f91" +checksum = "5c80e5460aa66fe3b91d40bcbdab953a597b60053e34d684ac6903f863b680a6" dependencies = [ "cfg-if 1.0.0", "cipher", @@ -970,9 +810,9 @@ dependencies = [ [[package]] name = "chacha20poly1305" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b84ed6d1d5f7aa9bdde921a5090e0ca4d934d250ea3b402a5fab3a994e28a2a" +checksum = "a18446b09be63d457bbec447509e85f662f32952b035ce892290396bc0b0cff5" dependencies = [ "aead", "chacha20", @@ -1027,9 +867,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.3.2" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf6b561dcf059c85bbe388e0a7b0a1469acb3934cc0cfa148613a830629e3049" +checksum = "5a050e2153c5be08febd6734e29298e844fdb0fa21aeddd63b4eb7baa106c69b" dependencies = [ "glob", "libc", @@ -1109,9 +949,9 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "1.2.2" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3" +checksum = "83827793632c72fa4f73c2edb31e7a997527dd8ffe7077344621fc62c5478157" dependencies = [ "cache-padded", ] @@ -1179,59 +1019,60 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.82.3" +version = "0.85.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38faa2a16616c8e78a18d37b4726b98bfd2de192f2fdc8a39ddf568a408a0f75" +checksum = "7901fbba05decc537080b07cb3f1cadf53be7b7602ca8255786288a8692ae29a" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.82.3" +version = "0.85.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26f192472a3ba23860afd07d2b0217dc628f21fcc72617aa1336d98e1671f33b" +checksum = "37ba1b45d243a4a28e12d26cd5f2507da74e77c45927d40de8b6ffbf088b46b5" dependencies = [ "cranelift-bforest", "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-entity", + "cranelift-isle", "gimli", "log", - "regalloc", + "regalloc2", "smallvec", "target-lexicon", ] [[package]] name = "cranelift-codegen-meta" -version = "0.82.3" +version = "0.85.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32ddb89e9b89d3d9b36a5b7d7ea3261c98235a76ac95ba46826b8ec40b1a24" +checksum = "54cc30032171bf230ce22b99c07c3a1de1221cb5375bd6dbe6dbe77d0eed743c" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.82.3" +version = "0.85.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01fd0d9f288cc1b42d9333b7a776b17e278fc888c28e6a0f09b5573d45a150bc" +checksum = "a23f2672426d2bb4c9c3ef53e023076cfc4d8922f0eeaebaf372c92fae8b5c69" [[package]] name = "cranelift-entity" -version = "0.82.3" +version = "0.85.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3bfe172b83167604601faf9dc60453e0d0a93415b57a9c4d1a7ae6849185cf" +checksum = "886c59a5e0de1f06dbb7da80db149c75de10d5e2caca07cdd9fef8a5918a6336" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.82.3" +version = "0.85.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a006e3e32d80ce0e4ba7f1f9ddf66066d052a8c884a110b91d05404d6ce26dce" +checksum = "ace74eeca11c439a9d4ed1a5cb9df31a54cd0f7fbddf82c8ce4ea8e9ad2a8fe0" dependencies = [ "cranelift-codegen", "log", @@ -1239,11 +1080,17 @@ dependencies = [ "target-lexicon", ] +[[package]] +name = "cranelift-isle" +version = "0.85.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db1ae52a5cc2cad0d86fdd3dcb16b7217d2f1e65ab4f5814aa4f014ad335fa43" + [[package]] name = "cranelift-native" -version = "0.82.3" +version = "0.85.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501241b0cdf903412ec9075385ac9f2b1eb18a89044d1538e97fab603231f70c" +checksum = "dadcfb7852900780d37102bce5698bcd401736403f07b52e714ff7a180e0e22f" dependencies = [ "cranelift-codegen", "libc", @@ -1252,9 +1099,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.82.3" +version = "0.85.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d9e4211bbc3268042a96dd4de5bd979cda22434991d035f5f8eacba987fad2" +checksum = "c84e3410960389110b88f97776f39f6d2c8becdaa4cd59e390e6b76d9d0e7190" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1277,9 +1124,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53" +checksum = "4c02a4d71819009c192cf4872265391563fd6a84c81ff2c0f2a7026ca4c1d85c" dependencies = [ "cfg-if 1.0.0", "crossbeam-utils", @@ -1298,15 +1145,15 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c" +checksum = "07db9d94cbd326813772c968ccd25999e5f8ae22f4f8d1b11effa37ef6ce281d" dependencies = [ "autocfg", "cfg-if 1.0.0", "crossbeam-utils", - "lazy_static", "memoffset", + "once_cell", "scopeguard", ] @@ -1322,12 +1169,12 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38" +checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83" dependencies = [ "cfg-if 1.0.0", - "lazy_static", + "once_cell", ] [[package]] @@ -1350,9 +1197,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.1.3" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array 0.14.5", "typenum", @@ -1411,7 +1258,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "clap", "parity-scale-codec", @@ -1426,7 +1273,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1450,7 +1297,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1479,7 +1326,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1500,7 +1347,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1525,7 +1372,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -1549,7 +1396,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1577,7 +1424,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "frame-executive", "frame-support", @@ -1595,7 +1442,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1613,7 +1460,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1643,7 +1490,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1654,7 +1501,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "frame-benchmarking", "frame-support", @@ -1668,7 +1515,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1685,7 +1532,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1704,7 +1551,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "frame-support", "parity-scale-codec", @@ -1720,7 +1567,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1743,7 +1590,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "cumulus-primitives-core", "futures", @@ -1756,7 +1603,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1773,7 +1620,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1803,7 +1650,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1826,7 +1673,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "async-trait", "backoff", @@ -1852,7 +1699,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -2075,9 +1922,9 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.5" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e50f3adc76d6a43f5ed73b698a87d0760ca74617f60f7c3b879003536fdd28" +checksum = "9d07a982d1fb29db01e5a59b1918e03da4df7297eaeee7686ac45542fd4e59c8" [[package]] name = "ecdsa" @@ -2116,9 +1963,9 @@ dependencies = [ [[package]] name = "either" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be" [[package]] name = "elliptic-curve" @@ -2378,19 +2225,17 @@ dependencies = [ [[package]] name = "fixedbitset" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279fb028e20b3c4c320317955b77c5e0c9701f05a1d309905d6fc702cdc5053e" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39522e96686d38f4bc984b9198e3a0613264abaebaff2c5c918bfa6b6da09af" +checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" dependencies = [ - "cfg-if 1.0.0", "crc32fast", - "libc", "libz-sys", "miniz_oxide", ] @@ -2404,7 +2249,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "parity-scale-codec", ] @@ -2422,7 +2267,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-support", "frame-system", @@ -2444,7 +2289,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "Inflector", "chrono", @@ -2495,7 +2340,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2506,7 +2351,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2522,7 +2367,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-support", "frame-system", @@ -2550,7 +2395,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "bitflags", "frame-metadata", @@ -2580,7 +2425,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2592,7 +2437,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2604,7 +2449,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "proc-macro2", "quote", @@ -2614,7 +2459,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-support", "log", @@ -2631,7 +2476,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -2646,7 +2491,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "parity-scale-codec", "sp-api", @@ -2655,7 +2500,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-support", "sp-api", @@ -2825,6 +2670,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 = "generic-array" version = "0.12.4" @@ -2869,13 +2723,13 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" dependencies = [ "cfg-if 1.0.0", "libc", - "wasi 0.10.0+wasi-snapshot-preview1", + "wasi 0.11.0+wasi-snapshot-preview1", ] [[package]] @@ -2890,9 +2744,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.26.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" +checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" dependencies = [ "fallible-iterator", "indexmap", @@ -2907,9 +2761,9 @@ checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" [[package]] name = "globset" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd" +checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" dependencies = [ "aho-corasick", "bstr", @@ -2962,9 +2816,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.3.0" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d113a9853e5accd30f43003560b5563ffbb007e3f325e8b103fa0d0029c6e6df" +checksum = "36641a8b9deb60e23fb9bb47ac631d664a780b088909b89179a4eab5618b076b" dependencies = [ "log", "pest", @@ -3000,9 +2854,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ "ahash", ] @@ -3093,9 +2947,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff8670570af52249509a86f5e3e18a08c60b177071826898fde8997cf5f6bfbb" +checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ "bytes", "fnv", @@ -3133,9 +2987,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.18" +version = "0.14.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b26ae0a80afebe130861d90abf98e3814a4f28a4c6ffeb5ab8ebb2be311e0ef2" +checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" dependencies = [ "bytes", "futures-channel", @@ -3193,9 +3047,9 @@ dependencies = [ [[package]] name = "if-watch" -version = "1.0.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae8f4a3c3d4c89351ca83e120c1c00b27df945d38e05695668c9d4b4f7bc52f3" +checksum = "015a7df1eb6dda30df37f34b63ada9b7b352984b0e84de2a20ed526345000791" dependencies = [ "async-io", "core-foundation", @@ -3240,12 +3094,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.8.1" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f647032dfaa1f8b6dc29bd3edb7bbef4861b8b8007ebb118d6db284fd59f6ee" +checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" dependencies = [ "autocfg", - "hashbrown 0.11.2", + "hashbrown 0.12.3", "serde", ] @@ -3260,9 +3114,9 @@ dependencies = [ [[package]] name = "integer-encoding" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e85a1509a128c855368e135cffcde7eac17d8e1083f41e2b98c58bc1a5074be" +checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02" [[package]] name = "integer-sqrt" @@ -3279,6 +3133,12 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec58677acfea8a15352d42fc87d11d63596ade9239e0a7c9352914417515dbe6" +[[package]] +name = "io-lifetimes" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24c3f4eff5495aee4c0399d7b6a0dc2b6e81be84242ffbfcf253ebacccc1d0cb" + [[package]] name = "ip_network" version = "0.4.1" @@ -3335,9 +3195,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.57" +version = "0.3.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671a26f820db17c2a2750743f1dd03bafd15b98c9f30c7c2628c024c05d73397" +checksum = "c3fac17f7123a73ca62df411b1bf727ccc805daa070338fda671c86dac1bdc27" dependencies = [ "wasm-bindgen", ] @@ -3367,7 +3227,7 @@ dependencies = [ "http", "jsonrpsee-core", "jsonrpsee-types", - "pin-project 1.0.10", + "pin-project", "rustls-native-certs", "soketto", "thiserror", @@ -3500,8 +3360,8 @@ checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838" [[package]] name = "kusama-runtime" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "beefy-primitives", "bitvec", @@ -3592,8 +3452,8 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "frame-support", "polkadot-primitives", @@ -3696,18 +3556,18 @@ checksum = "33a33a362ce288760ec6a508b94caaec573ae7d3bbbd91b87aa0bad4456839db" [[package]] name = "libp2p" -version = "0.45.1" +version = "0.46.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41726ee8f662563fafba2d2d484b14037cc8ecb8c953fbfc8439d4ce3a0a9029" +checksum = "81327106887e42d004fbdab1fef93675be2e2e07c1b95fce45e2cc813485611d" dependencies = [ "bytes", "futures", "futures-timer", - "getrandom 0.2.6", + "getrandom 0.2.7", "instant", "lazy_static", "libp2p-autonat", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-deflate", "libp2p-dns", "libp2p-floodsub", @@ -3733,69 +3593,35 @@ dependencies = [ "libp2p-yamux", "multiaddr", "parking_lot 0.12.1", - "pin-project 1.0.10", + "pin-project", "rand 0.7.3", "smallvec", ] [[package]] name = "libp2p-autonat" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50de7c1d5c3f040fccb469e8a2d189e068b7627d760dd74ef914071c16bbe905" +checksum = "4decc51f3573653a9f4ecacb31b1b922dd20c25a6322bb15318ec04287ec46f9" dependencies = [ "async-trait", "futures", "futures-timer", "instant", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-request-response", "libp2p-swarm", "log", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "rand 0.8.5", ] [[package]] name = "libp2p-core" -version = "0.32.1" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db5b02602099fb75cb2d16f9ea860a320d6eb82ce41e95ab680912c454805cd5" -dependencies = [ - "asn1_der", - "bs58", - "ed25519-dalek", - "either", - "fnv", - "futures", - "futures-timer", - "instant", - "lazy_static", - "log", - "multiaddr", - "multihash", - "multistream-select", - "parking_lot 0.12.1", - "pin-project 1.0.10", - "prost 0.9.0", - "prost-build 0.9.0", - "rand 0.8.5", - "ring", - "rw-stream-sink 0.2.1", - "sha2 0.10.2", - "smallvec", - "thiserror", - "unsigned-varint", - "void", - "zeroize", -] - -[[package]] -name = "libp2p-core" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d46fca305dee6757022e2f5a4f6c023315084d0ed7441c3ab244e76666d979" +checksum = "fbf9b94cefab7599b2d3dff2f93bee218c6621d68590b23ede4485813cbcece6" dependencies = [ "asn1_der", "bs58", @@ -3812,12 +3638,12 @@ dependencies = [ "multihash", "multistream-select", "parking_lot 0.12.1", - "pin-project 1.0.10", - "prost 0.10.4", - "prost-build 0.10.4", + "pin-project", + "prost", + "prost-build", "rand 0.8.5", "ring", - "rw-stream-sink 0.3.0", + "rw-stream-sink", "sha2 0.10.2", "smallvec", "thiserror", @@ -3828,24 +3654,24 @@ dependencies = [ [[package]] name = "libp2p-deflate" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86adefc55ea4ed8201149f052fb441210727481dff1fb0b8318460206a79f5fb" +checksum = "d0183dc2a3da1fbbf85e5b6cf51217f55b14f5daea0c455a9536eef646bfec71" dependencies = [ "flate2", "futures", - "libp2p-core 0.33.0", + "libp2p-core", ] [[package]] name = "libp2p-dns" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb462ec3a51fab457b4b44ac295e8b0a4b04dc175127e615cf996b1f0f1a268" +checksum = "6cbf54723250fa5d521383be789bf60efdabe6bacfb443f87da261019a49b4b5" dependencies = [ "async-std-resolver", "futures", - "libp2p-core 0.33.0", + "libp2p-core", "log", "parking_lot 0.12.1", "smallvec", @@ -3854,27 +3680,27 @@ dependencies = [ [[package]] name = "libp2p-floodsub" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a505d0c6f851cbf2919535150198e530825def8bd3757477f13dc3a57f46cbcc" +checksum = "98a4b6ffd53e355775d24b76f583fdda54b3284806f678499b57913adb94f231" dependencies = [ "cuckoofilter", "fnv", "futures", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-swarm", "log", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "rand 0.7.3", "smallvec", ] [[package]] name = "libp2p-gossipsub" -version = "0.38.1" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43e064ba4d7832e01c738626c6b274ae100baba05f5ffcc7b265c2a3ed398108" +checksum = "74b4b888cfbeb1f5551acd3aa1366e01bf88ede26cc3c4645d0d2d004d5ca7b0" dependencies = [ "asynchronous-codec", "base64", @@ -3884,12 +3710,12 @@ dependencies = [ "futures", "hex_fmt", "instant", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-swarm", "log", "prometheus-client", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "rand 0.7.3", "regex", "sha2 0.10.2", @@ -3900,19 +3726,19 @@ dependencies = [ [[package]] name = "libp2p-identify" -version = "0.36.1" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b84b53490442d086db1fa5375670c9666e79143dccadef3f7c74a4346899a984" +checksum = "c50b585518f8efd06f93ac2f976bd672e17cdac794644b3117edd078e96bda06" dependencies = [ "asynchronous-codec", "futures", "futures-timer", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-swarm", "log", "lru 0.7.7", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "prost-codec", "smallvec", "thiserror", @@ -3921,9 +3747,9 @@ dependencies = [ [[package]] name = "libp2p-kad" -version = "0.37.1" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6b5d4de90fcd35feb65ea6223fd78f3b747a64ca4b65e0813fbe66a27d56aa" +checksum = "740862893bb5f06ac24acc9d49bdeadc3a5e52e51818a30a25c1f3519da2c851" dependencies = [ "arrayvec 0.7.2", "asynchronous-codec", @@ -3933,11 +3759,11 @@ dependencies = [ "futures", "futures-timer", "instant", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-swarm", "log", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "rand 0.7.3", "sha2 0.10.2", "smallvec", @@ -3949,9 +3775,9 @@ dependencies = [ [[package]] name = "libp2p-mdns" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4783f8cf00c7b6c1ff0f1870b4fcf50b042b45533d2e13b6fb464caf447a6951" +checksum = "66e5e5919509603281033fd16306c61df7a4428ce274b67af5e14b07de5cdcb2" dependencies = [ "async-io", "data-encoding", @@ -3959,7 +3785,7 @@ dependencies = [ "futures", "if-watch", "lazy_static", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-swarm", "log", "rand 0.8.5", @@ -3970,11 +3796,11 @@ dependencies = [ [[package]] name = "libp2p-metrics" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4357140141ba9739eee71b20aa735351c0fc642635b2bffc7f57a6b5c1090" +checksum = "ef8aff4a1abef42328fbb30b17c853fff9be986dc39af17ee39f9c5f755c5e0c" dependencies = [ - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-gossipsub", "libp2p-identify", "libp2p-kad", @@ -3986,14 +3812,14 @@ dependencies = [ [[package]] name = "libp2p-mplex" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ff9c893f2367631a711301d703c47432af898c9bb8253bea0e2c051a13f7640" +checksum = "61fd1b20638ec209c5075dfb2e8ce6a7ea4ec3cd3ad7b77f7a477c06d53322e2" dependencies = [ "asynchronous-codec", "bytes", "futures", - "libp2p-core 0.33.0", + "libp2p-core", "log", "nohash-hasher", "parking_lot 0.12.1", @@ -4004,18 +3830,18 @@ dependencies = [ [[package]] name = "libp2p-noise" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2cee1dad1c83325bbd182a8e94555778699cec8a9da00086efb7522c4c15ad" +checksum = "762408cb5d84b49a600422d7f9a42c18012d8da6ebcd570f9a4a4290ba41fb6f" dependencies = [ "bytes", "curve25519-dalek 3.2.0", "futures", "lazy_static", - "libp2p-core 0.33.0", + "libp2p-core", "log", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "rand 0.8.5", "sha2 0.10.2", "snow", @@ -4026,14 +3852,14 @@ dependencies = [ [[package]] name = "libp2p-ping" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d41516c82fe8dd148ec925eead0c5ec08a0628f7913597e93e126e4dfb4e0787" +checksum = "100a6934ae1dbf8a693a4e7dd1d730fd60b774dafc45688ed63b554497c6c925" dependencies = [ "futures", "futures-timer", "instant", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-swarm", "log", "rand 0.7.3", @@ -4042,17 +3868,17 @@ dependencies = [ [[package]] name = "libp2p-plaintext" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db007e737adc5d28b2e03223b0210164928ad742591127130796a72aa8eaf54f" +checksum = "be27bf0820a6238a4e06365b096d428271cce85a129cf16f2fe9eb1610c4df86" dependencies = [ "asynchronous-codec", "bytes", "futures", - "libp2p-core 0.33.0", + "libp2p-core", "log", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "unsigned-varint", "void", ] @@ -4065,7 +3891,7 @@ checksum = "0f1a458bbda880107b5b36fcb9b5a1ef0c329685da0e203ed692a8ebe64cc92c" dependencies = [ "futures", "log", - "pin-project 1.0.10", + "pin-project", "rand 0.7.3", "salsa20", "sha3 0.9.1", @@ -4073,9 +3899,9 @@ dependencies = [ [[package]] name = "libp2p-relay" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624ead3406f64437a0d4567c31bd128a9a0b8226d5f16c074038f5d0fc32f650" +checksum = "4931547ee0cce03971ccc1733ff05bb0c4349fd89120a39e9861e2bbe18843c3" dependencies = [ "asynchronous-codec", "bytes", @@ -4083,12 +3909,12 @@ dependencies = [ "futures", "futures-timer", "instant", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-swarm", "log", - "pin-project 1.0.10", - "prost 0.10.4", - "prost-build 0.10.4", + "pin-project", + "prost", + "prost-build", "prost-codec", "rand 0.8.5", "smallvec", @@ -4099,20 +3925,20 @@ dependencies = [ [[package]] name = "libp2p-rendezvous" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59967ea2db2c7560f641aa58ac05982d42131863fcd3dd6dcf0dd1daf81c60c" +checksum = "9511c9672ba33284838e349623319c8cad2d18cfad243ae46c6b7e8a2982ea4e" dependencies = [ "asynchronous-codec", "bimap", "futures", "futures-timer", "instant", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-swarm", "log", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "rand 0.8.5", "sha2 0.10.2", "thiserror", @@ -4122,15 +3948,15 @@ dependencies = [ [[package]] name = "libp2p-request-response" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b02e0acb725e5a757d77c96b95298fd73a7394fe82ba7b8bbeea510719cbe441" +checksum = "508a189e2795d892c8f5c1fa1e9e0b1845d32d7b0b249dbf7b05b18811361843" dependencies = [ "async-trait", "bytes", "futures", "instant", - "libp2p-core 0.33.0", + "libp2p-core", "libp2p-swarm", "log", "rand 0.7.3", @@ -4140,18 +3966,18 @@ dependencies = [ [[package]] name = "libp2p-swarm" -version = "0.36.1" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4bb21c5abadbf00360c734f16bf87f1712ed4f23cd46148f625d2ddb867346" +checksum = "95ac5be6c2de2d1ff3f7693fda6faf8a827b1f3e808202277783fea9f527d114" dependencies = [ "either", "fnv", "futures", "futures-timer", "instant", - "libp2p-core 0.33.0", + "libp2p-core", "log", - "pin-project 1.0.10", + "pin-project", "rand 0.7.3", "smallvec", "thiserror", @@ -4160,9 +3986,9 @@ dependencies = [ [[package]] name = "libp2p-swarm-derive" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daf2fe8c80b43561355f4d51875273b5b6dfbac37952e8f64b1270769305c9d7" +checksum = "9f54a64b6957249e0ce782f8abf41d97f69330d02bf229f0672d864f0650cc76" dependencies = [ "quote", "syn", @@ -4170,9 +3996,9 @@ dependencies = [ [[package]] name = "libp2p-tcp" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4933e38ef21b50698aefc87799c24f2a365c9d3f6cf50471f3f6a0bc410892" +checksum = "8a6771dc19aa3c65d6af9a8c65222bfc8fcd446630ddca487acd161fa6096f3b" dependencies = [ "async-io", "futures", @@ -4180,32 +4006,32 @@ dependencies = [ "if-watch", "ipnet", "libc", - "libp2p-core 0.33.0", + "libp2p-core", "log", "socket2", ] [[package]] name = "libp2p-uds" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24bdab114f7f2701757d6541266e1131b429bbae382008f207f2114ee4222dcb" +checksum = "d125e3e5f0d58f3c6ac21815b20cf4b6a88b8db9dc26368ea821838f4161fd4d" dependencies = [ "async-std", "futures", - "libp2p-core 0.32.1", + "libp2p-core", "log", ] [[package]] name = "libp2p-wasm-ext" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f066f2b8b1a1d64793f05da2256e6842ecd0293d6735ca2e9bda89831a1bdc06" +checksum = "ec894790eec3c1608f8d1a8a0bdf0dbeb79ed4de2dce964222011c2896dfa05a" dependencies = [ "futures", "js-sys", - "libp2p-core 0.33.0", + "libp2p-core", "parity-send-wrapper", "wasm-bindgen", "wasm-bindgen-futures", @@ -4213,18 +4039,18 @@ dependencies = [ [[package]] name = "libp2p-websocket" -version = "0.35.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39d398fbb29f432c4128fabdaac2ed155c3bcaf1b9bd40eeeb10a471eefacbf5" +checksum = "9808e57e81be76ff841c106b4c5974fb4d41a233a7bdd2afbf1687ac6def3818" dependencies = [ "either", "futures", "futures-rustls", - "libp2p-core 0.33.0", + "libp2p-core", "log", "parking_lot 0.12.1", "quicksink", - "rw-stream-sink 0.3.0", + "rw-stream-sink", "soketto", "url", "webpki-roots", @@ -4232,12 +4058,12 @@ dependencies = [ [[package]] name = "libp2p-yamux" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fe653639ad74877c759720febb0cbcbf4caa221adde4eed2d3126ce5c6f381f" +checksum = "c6dea686217a06072033dc025631932810e2f6ad784e4fafa42e27d311c7a81c" dependencies = [ "futures", - "libp2p-core 0.33.0", + "libp2p-core", "parking_lot 0.12.1", "thiserror", "yamux", @@ -4260,9 +4086,9 @@ dependencies = [ [[package]] name = "libsecp256k1" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0452aac8bab02242429380e9b2f94ea20cea2b37e2c1777a1358799bbe97f37" +checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" dependencies = [ "arrayref", "base64", @@ -4308,9 +4134,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.6" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e7e15d7610cce1d9752e137625f14e61a28cd45929b6e12e47b50fe154ee2e" +checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf" dependencies = [ "cc", "pkg-config", @@ -4319,9 +4145,9 @@ dependencies = [ [[package]] name = "linked-hash-map" -version = "0.5.4" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linked_hash_set" @@ -4348,6 +4174,12 @@ version = "0.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5284f00d480e1c39af34e72f8ad60b94f47007e3481cd3b731c1d67190ddc7b7" +[[package]] +name = "linux-raw-sys" +version = "0.0.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4d2456c373231a208ad294c33dc5bff30051eafd954cd4caae83a712b12854d" + [[package]] name = "lock_api" version = "0.4.7" @@ -4486,9 +4318,9 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.5.3" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057a3db23999c867821a7a59feb06a578fcb03685e983dff90daf9e7d24ac08f" +checksum = "3a79b39c93a7a5a27eeaf9a23b5ff43f1b9e0ad6b1cdd441140ae53c35613fc7" dependencies = [ "libc", ] @@ -4509,7 +4341,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6566c70c1016f525ced45d7b7f97730a2bafb037c788211d0c186ef5b2189f0a" dependencies = [ "hash-db", - "hashbrown 0.12.1", + "hashbrown 0.12.3", "parity-util-mem", ] @@ -4559,18 +4391,18 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.5.1" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b29bd4bc3f33391105ebee3589c19197c4271e3e5a9ec9bfe8127eeff8f082" +checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713d550d9b44d89174e066b7a6217ae06234c10cb47819a88290d2b353c31799" +checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" dependencies = [ "libc", "log", @@ -4659,7 +4491,7 @@ dependencies = [ "bytes", "futures", "log", - "pin-project 1.0.10", + "pin-project", "smallvec", "unsigned-varint", ] @@ -4674,7 +4506,7 @@ dependencies = [ "matrixmultiply", "nalgebra-macros", "num-complex", - "num-rational 0.4.0", + "num-rational 0.4.1", "num-traits", "rand 0.8.5", "rand_distr", @@ -4722,9 +4554,9 @@ dependencies = [ [[package]] name = "netlink-packet-route" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "733ea73609acfd7fa7ddadfb7bf709b0471668c456ad9513685af543a06342b2" +checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" dependencies = [ "anyhow", "bitflags", @@ -4748,23 +4580,24 @@ dependencies = [ [[package]] name = "netlink-proto" -version = "0.9.2" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef8785b8141e8432aa45fceb922a7e876d7da3fad37fa7e7ec702ace3aa0826b" +checksum = "65b4b14489ab424703c092062176d52ba55485a89c076b4f9db05092b7223aa6" dependencies = [ "bytes", "futures", "log", "netlink-packet-core", "netlink-sys", + "thiserror", "tokio", ] [[package]] name = "netlink-sys" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c9f9547a08241bee7b6558b9b98e1f290d187de8b7cfca2bbb4937bcaa8f8" +checksum = "92b654097027250401127914afb37cb1f311df6610a9891ff07a757e94199027" dependencies = [ "async-io", "bytes", @@ -4775,15 +4608,13 @@ dependencies = [ [[package]] name = "nix" -version = "0.22.3" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4916f159ed8e5de0082076562152a76b7a1f64a01fd9d1e0fea002c37624faf" +checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" dependencies = [ "bitflags", - "cc", "cfg-if 1.0.0", "libc", - "memoffset", ] [[package]] @@ -4821,9 +4652,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fbc387afefefd5e9e39493299f3069e14a140dd34dc19b4c1c1a8fddb6a790" +checksum = "7ae39348c8bc5fbd7f40c727a9925f03517afd2ab27d46702108b6a7e5414c19" dependencies = [ "num-traits", ] @@ -4862,9 +4693,9 @@ dependencies = [ [[package]] name = "num-rational" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" dependencies = [ "autocfg", "num-integer", @@ -4893,29 +4724,30 @@ dependencies = [ [[package]] name = "object" -version = "0.27.1" +version = "0.28.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ac1d3f9a1d3616fd9a60c8d74296f22406a238b6a72f5cc1e6f314df4ffbf9" +checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" dependencies = [ "crc32fast", + "hashbrown 0.11.2", "indexmap", "memchr", ] [[package]] name = "object" -version = "0.28.4" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" +checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225" +checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" [[package]] name = "opaque-debug" @@ -4938,14 +4770,14 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "orchestra" version = "0.0.1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "async-trait", "dyn-clonable", "futures", "futures-timer", "orchestra-proc-macro", - "pin-project 1.0.10", + "pin-project", "prioritized-metered-channel", "thiserror", "tracing", @@ -4954,7 +4786,7 @@ dependencies = [ [[package]] name = "orchestra-proc-macro" version = "0.0.1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "expander 0.0.6", "itertools", @@ -4976,9 +4808,9 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "6.0.1" +version = "6.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "029d8d0b2f198229de29dca79676f2738ff952edf3fde542eb8bf94d8c21b435" +checksum = "648001efe5d5c0102d8cea768e348da85d90af8ba91f0bea908f157951493cd4" [[package]] name = "owning_ref" @@ -4992,7 +4824,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-support", "frame-system", @@ -5008,7 +4840,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-support", "frame-system", @@ -5024,7 +4856,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-support", "frame-system", @@ -5039,7 +4871,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5063,7 +4895,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5083,7 +4915,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5098,7 +4930,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "beefy-primitives", "frame-support", @@ -5114,7 +4946,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -5137,7 +4969,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5152,70 +4984,10 @@ dependencies = [ "sp-std", ] -[[package]] -name = "pallet-bridge-dispatch" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" -dependencies = [ - "bp-message-dispatch", - "bp-runtime", - "frame-support", - "frame-system", - "log", - "parity-scale-codec", - "scale-info", - "sp-core", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-bridge-grandpa" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" -dependencies = [ - "bp-header-chain", - "bp-runtime", - "bp-test-utils", - "finality-grandpa", - "frame-support", - "frame-system", - "log", - "num-traits", - "parity-scale-codec", - "scale-info", - "serde", - "sp-finality-grandpa", - "sp-runtime", - "sp-std", - "sp-trie", -] - -[[package]] -name = "pallet-bridge-messages" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" -dependencies = [ - "bitvec", - "bp-message-dispatch", - "bp-messages", - "bp-runtime", - "frame-support", - "frame-system", - "log", - "num-traits", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core", - "sp-runtime", - "sp-std", -] - [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5234,7 +5006,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "frame-benchmarking", "frame-support", @@ -5254,7 +5026,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5271,7 +5043,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5287,7 +5059,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5310,7 +5082,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5323,7 +5095,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5341,7 +5113,7 @@ dependencies = [ [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5356,7 +5128,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5379,7 +5151,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5395,7 +5167,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5415,7 +5187,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5432,7 +5204,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5449,7 +5221,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5467,7 +5239,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -5482,7 +5254,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5497,7 +5269,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-support", "frame-system", @@ -5514,7 +5286,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5533,7 +5305,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-support", "frame-system", @@ -5550,7 +5322,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5573,7 +5345,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5589,7 +5361,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5604,7 +5376,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5619,7 +5391,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5635,7 +5407,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-support", "frame-system", @@ -5656,7 +5428,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5672,7 +5444,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-support", "frame-system", @@ -5686,7 +5458,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5709,7 +5481,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -5720,7 +5492,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "log", "sp-arithmetic", @@ -5729,7 +5501,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-support", "frame-system", @@ -5758,7 +5530,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5776,7 +5548,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5795,7 +5567,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-support", "frame-system", @@ -5811,7 +5583,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -5826,7 +5598,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5837,7 +5609,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5854,7 +5626,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5870,7 +5642,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-benchmarking", "frame-support", @@ -5884,8 +5656,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "frame-support", "frame-system", @@ -5902,8 +5674,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "frame-benchmarking", "frame-support", @@ -5920,7 +5692,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.25#390042a01940a0a4d0b28eb196a2e9251f3cec33" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -6056,9 +5828,9 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55a7901b85874402471e131de3332dde0e51f38432c69a3853627c8e25433048" +checksum = "966eb23bd3a09758b8dac09f82b9d417c00f14e5d46171bf04cffdd9cb2e1eb1" dependencies = [ "blake2-rfc", "crc32fast", @@ -6112,7 +5884,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c32561d248d352148124f036cac253a644685a21dc9fea383eb4907d7bd35a8f" dependencies = [ "cfg-if 1.0.0", - "hashbrown 0.12.1", + "hashbrown 0.12.3", "impl-trait-for-tuples", "parity-util-mem-derive", "parking_lot 0.12.1", @@ -6282,9 +6054,9 @@ dependencies = [ [[package]] name = "petgraph" -version = "0.6.0" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a13a2fa9d0b63e5f22328828741e523766fff0ee9e779316902290dff3f824f" +checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143" dependencies = [ "fixedbitset", "indexmap", @@ -6292,38 +6064,18 @@ dependencies = [ [[package]] name = "pin-project" -version = "0.4.29" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9615c18d31137579e9ff063499264ddc1278e7b1982757ebc111028c4d1dc909" +checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260" dependencies = [ - "pin-project-internal 0.4.29", -] - -[[package]] -name = "pin-project" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e" -dependencies = [ - "pin-project-internal 1.0.10", + "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "0.4.29" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "044964427019eed9d49d9d5bbce6047ef18f37100ea400912a9fa4a3523ab12a" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "pin-project-internal" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb" +checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74" dependencies = [ "proc-macro2", "quote", @@ -6362,8 +6114,8 @@ checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "futures", "polkadot-node-network-protocol", @@ -6377,8 +6129,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "futures", "polkadot-node-network-protocol", @@ -6391,8 +6143,8 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "derive_more", "fatality", @@ -6414,8 +6166,8 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "fatality", "futures", @@ -6435,8 +6187,8 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "clap", "frame-benchmarking-cli", @@ -6460,8 +6212,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -6500,8 +6252,8 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "always-assert", "fatality", @@ -6521,8 +6273,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -6534,8 +6286,8 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "derive_more", "fatality", @@ -6557,8 +6309,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6571,8 +6323,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "futures", "futures-timer", @@ -6591,8 +6343,8 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "always-assert", "async-trait", @@ -6612,8 +6364,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "futures", "parity-scale-codec", @@ -6630,8 +6382,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "bitvec", "derive_more", @@ -6659,8 +6411,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "bitvec", "futures", @@ -6679,8 +6431,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "bitvec", "fatality", @@ -6698,8 +6450,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "futures", "polkadot-node-subsystem", @@ -6713,8 +6465,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "async-trait", "futures", @@ -6731,8 +6483,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "futures", "polkadot-node-subsystem", @@ -6746,8 +6498,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "futures", "futures-timer", @@ -6763,8 +6515,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "fatality", "futures", @@ -6782,8 +6534,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "async-trait", "futures", @@ -6799,8 +6551,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "bitvec", "fatality", @@ -6817,8 +6569,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "always-assert", "assert_matches", @@ -6827,11 +6579,12 @@ dependencies = [ "futures", "futures-timer", "parity-scale-codec", - "pin-project 1.0.10", + "pin-project", "polkadot-core-primitives", "polkadot-node-subsystem-util", "polkadot-parachain", "rand 0.8.5", + "rayon", "sc-executor", "sc-executor-common", "sc-executor-wasmtime", @@ -6848,8 +6601,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "futures", "polkadot-node-primitives", @@ -6864,8 +6617,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "futures", "memory-lru", @@ -6881,8 +6634,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "async-std", "lazy_static", @@ -6899,8 +6652,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "bs58", "futures", @@ -6918,8 +6671,8 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "async-trait", "derive_more", @@ -6932,15 +6685,15 @@ dependencies = [ "rand 0.8.5", "sc-authority-discovery", "sc-network", - "strum 0.24.0", + "strum 0.24.1", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-primitives" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "bounded-vec", "futures", @@ -6961,8 +6714,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -6971,8 +6724,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "derive_more", "futures", @@ -6990,8 +6743,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "async-trait", "derive_more", @@ -7004,7 +6757,7 @@ dependencies = [ "parity-scale-codec", "parity-util-mem", "parking_lot 0.11.2", - "pin-project 1.0.10", + "pin-project", "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", @@ -7023,8 +6776,8 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "futures", "futures-timer", @@ -7045,8 +6798,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "derive_more", "frame-support", @@ -7062,8 +6815,8 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "env_logger", "kusama-runtime", @@ -7077,8 +6830,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "bitvec", "frame-system", @@ -7107,8 +6860,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -7139,8 +6892,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "beefy-primitives", "bitvec", @@ -7224,8 +6977,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "beefy-primitives", "bitvec", @@ -7271,8 +7024,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "frame-support", "polkadot-primitives", @@ -7283,8 +7036,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "bs58", "parity-scale-codec", @@ -7295,8 +7048,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "bitflags", "bitvec", @@ -7338,8 +7091,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "async-trait", "beefy-gadget", @@ -7441,8 +7194,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "arrayvec 0.5.2", "fatality", @@ -7462,8 +7215,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7528,7 +7281,7 @@ dependencies = [ [[package]] name = "prioritized-metered-channel" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "coarsetime", "crossbeam-queue", @@ -7620,16 +7373,6 @@ dependencies = [ "syn", ] -[[package]] -name = "prost" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" -dependencies = [ - "bytes", - "prost-derive 0.9.0", -] - [[package]] name = "prost" version = "0.10.4" @@ -7637,27 +7380,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71adf41db68aa0daaefc69bb30bcd68ded9b9abaad5d1fbb6304c4fb390e083e" dependencies = [ "bytes", - "prost-derive 0.10.1", -] - -[[package]] -name = "prost-build" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" -dependencies = [ - "bytes", - "heck 0.3.3", - "itertools", - "lazy_static", - "log", - "multimap", - "petgraph", - "prost 0.9.0", - "prost-types 0.9.0", - "regex", - "tempfile", - "which", + "prost-derive", ] [[package]] @@ -7675,8 +7398,8 @@ dependencies = [ "log", "multimap", "petgraph", - "prost 0.10.4", - "prost-types 0.10.1", + "prost", + "prost-types", "regex", "tempfile", "which", @@ -7690,24 +7413,11 @@ checksum = "00af1e92c33b4813cc79fda3f2dbf56af5169709be0202df730e9ebc3e4cd007" dependencies = [ "asynchronous-codec", "bytes", - "prost 0.10.4", + "prost", "thiserror", "unsigned-varint", ] -[[package]] -name = "prost-derive" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" -dependencies = [ - "anyhow", - "itertools", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "prost-derive" version = "0.10.1" @@ -7721,16 +7431,6 @@ dependencies = [ "syn", ] -[[package]] -name = "prost-types" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" -dependencies = [ - "bytes", - "prost 0.9.0", -] - [[package]] name = "prost-types" version = "0.10.1" @@ -7738,14 +7438,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d0a014229361011dc8e69c8a1ec6c2e8d0f2af7c91e3ea3f5b2170298461e68" dependencies = [ "bytes", - "prost 0.10.4", + "prost", ] [[package]] name = "psm" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "871372391786ccec00d3c5d3d6608905b3d4db263639cfe075d3b60a736d115a" +checksum = "accd89aa18fbf9533a581355a22438101fe9c2ed8c9e2f0dcf520552a3afddf2" dependencies = [ "cc", ] @@ -7769,9 +7469,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1" +checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804" dependencies = [ "proc-macro2", ] @@ -7842,7 +7542,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.7", ] [[package]] @@ -7927,7 +7627,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.7", "redox_syscall", "thiserror", ] @@ -7947,18 +7647,18 @@ dependencies = [ [[package]] name = "ref-cast" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "685d58625b6c2b83e4cc88a27c4bf65adb7b6b16dbdc413e515c9405b47432ab" +checksum = "776c8940430cf563f66a93f9111d1cd39306dc6c68149ecc6b934742a44a828a" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a043824e29c94169374ac5183ac0ed43f5724dc4556b19568007486bd840fa1f" +checksum = "5f26c4704460286103bff62ea1fb78d137febc86aaf76952e6c5a2249af01f54" dependencies = [ "proc-macro2", "quote", @@ -7966,21 +7666,22 @@ dependencies = [ ] [[package]] -name = "regalloc" -version = "0.0.34" +name = "regalloc2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62446b1d3ebf980bdc68837700af1d77b37bc430e524bf95319c6eada2a4cc02" +checksum = "4a8d23b35d7177df3b9d31ed8a9ab4bf625c668be77a319d4f5efd4a5257701c" dependencies = [ + "fxhash", "log", - "rustc-hash", + "slice-group-by", "smallvec", ] [[package]] name = "regex" -version = "1.5.6" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1" +checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" dependencies = [ "aho-corasick", "memchr", @@ -7998,9 +7699,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.26" +version = "0.6.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64" +checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" [[package]] name = "region" @@ -8017,7 +7718,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "env_logger", "jsonrpsee", @@ -8094,16 +7795,11 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "beefy-merkle-tree", "beefy-primitives", - "bp-messages", - "bp-rococo", - "bp-runtime", - "bp-wococo", - "bridge-runtime-common", "frame-benchmarking", "frame-executive", "frame-support", @@ -8118,9 +7814,6 @@ dependencies = [ "pallet-balances", "pallet-beefy", "pallet-beefy-mmr", - "pallet-bridge-dispatch", - "pallet-bridge-grandpa", - "pallet-bridge-messages", "pallet-collective", "pallet-grandpa", "pallet-im-online", @@ -8171,8 +7864,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "frame-support", "polkadot-primitives", @@ -8193,9 +7886,9 @@ dependencies = [ [[package]] name = "rtnetlink" -version = "0.9.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f54290e54521dac3de4149d83ddf9f62a359b3cc93bcb494a794a41e6f4744b" +checksum = "322c53fd76a18698f1c27381d58091de3a043d356aa5bd0d510608b565f469a0" dependencies = [ "async-global-executor", "futures", @@ -8230,7 +7923,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.9", + "semver 1.0.12", ] [[package]] @@ -8241,12 +7934,26 @@ checksum = "938a344304321a9da4973b9ff4f9f8db9caf4597dfd9dda6a60b523340a0fff0" dependencies = [ "bitflags", "errno", - "io-lifetimes", + "io-lifetimes 0.5.3", "libc", - "linux-raw-sys", + "linux-raw-sys 0.0.42", "winapi", ] +[[package]] +name = "rustix" +version = "0.35.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d51cc38aa10f6bbb377ed28197aa052aa4e2b762c22be9d3153d01822587e787" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes 0.7.2", + "libc", + "linux-raw-sys 0.0.46", + "windows-sys", +] + [[package]] name = "rustls" version = "0.20.6" @@ -8282,20 +7989,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f" - -[[package]] -name = "rw-stream-sink" -version = "0.2.1" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4da5fcb054c46f5a5dff833b129285a93d3f0179531735e6c866e8cc307d2020" -dependencies = [ - "futures", - "pin-project 0.4.29", - "static_assertions", -] +checksum = "24c8ad4f0c00e1eb5bc7614d236a7f1300e3dbd76b68cac8e06fb00b015ad8d8" [[package]] name = "rw-stream-sink" @@ -8304,7 +8000,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26338f5e09bb721b85b135ea05af7767c90b52f6de4f087d4f4a3a9d64e7dc04" dependencies = [ "futures", - "pin-project 1.0.10", + "pin-project", "static_assertions", ] @@ -8335,7 +8031,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "log", "sp-core", @@ -8346,7 +8042,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "async-trait", "futures", @@ -8355,8 +8051,8 @@ dependencies = [ "libp2p", "log", "parity-scale-codec", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "rand 0.7.3", "sc-client-api", "sc-network", @@ -8373,7 +8069,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "futures", "futures-timer", @@ -8396,7 +8092,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8412,10 +8108,10 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "impl-trait-for-tuples", - "memmap2 0.5.3", + "memmap2 0.5.5", "parity-scale-codec", "sc-chain-spec-derive", "sc-network", @@ -8429,7 +8125,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8440,7 +8136,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "chrono", "clap", @@ -8479,7 +8175,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "fnv", "futures", @@ -8507,7 +8203,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "hash-db", "kvdb", @@ -8532,7 +8228,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "async-trait", "futures", @@ -8556,7 +8252,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "async-trait", "futures", @@ -8585,7 +8281,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "async-trait", "fork-tree", @@ -8628,7 +8324,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "futures", "jsonrpsee", @@ -8650,7 +8346,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8663,7 +8359,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "async-trait", "futures", @@ -8688,7 +8384,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "sc-client-api", "sp-authorship", @@ -8699,7 +8395,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "lazy_static", "lru 0.7.7", @@ -8726,7 +8422,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "environmental", "parity-scale-codec", @@ -8743,7 +8439,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "log", "parity-scale-codec", @@ -8758,13 +8454,15 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "cfg-if 1.0.0", "libc", "log", + "once_cell", "parity-scale-codec", "parity-wasm 0.42.2", + "rustix 0.35.7", "sc-allocator", "sc-executor-common", "sp-runtime-interface", @@ -8776,7 +8474,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "ahash", "async-trait", @@ -8816,7 +8514,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "finality-grandpa", "futures", @@ -8837,7 +8535,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "ansi_term", "futures", @@ -8854,7 +8552,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "async-trait", "hex", @@ -8869,7 +8567,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "async-trait", "asynchronous-codec", @@ -8890,9 +8588,9 @@ dependencies = [ "lru 0.7.7", "parity-scale-codec", "parking_lot 0.12.1", - "pin-project 1.0.10", - "prost 0.10.4", - "prost-build 0.10.4", + "pin-project", + "prost", + "prost-build", "rand 0.7.3", "sc-block-builder", "sc-client-api", @@ -8921,12 +8619,12 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "futures", "libp2p", "parity-scale-codec", - "prost-build 0.10.4", + "prost-build", "sc-peerset", "smallvec", ] @@ -8934,7 +8632,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "ahash", "futures", @@ -8951,14 +8649,14 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "futures", "libp2p", "log", "parity-scale-codec", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "sc-client-api", "sc-network-common", "sc-peerset", @@ -8971,7 +8669,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "bitflags", "either", @@ -8981,8 +8679,8 @@ dependencies = [ "log", "lru 0.7.7", "parity-scale-codec", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "sc-client-api", "sc-consensus", "sc-network-common", @@ -9000,7 +8698,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "bytes", "fnv", @@ -9028,7 +8726,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "futures", "libp2p", @@ -9041,7 +8739,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -9050,7 +8748,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "futures", "hash-db", @@ -9080,7 +8778,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "futures", "jsonrpsee", @@ -9103,7 +8801,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "futures", "jsonrpsee", @@ -9116,7 +8814,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "async-trait", "directories", @@ -9129,7 +8827,7 @@ dependencies = [ "parity-scale-codec", "parity-util-mem", "parking_lot 0.12.1", - "pin-project 1.0.10", + "pin-project", "rand 0.7.3", "sc-block-builder", "sc-chain-spec", @@ -9181,7 +8879,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "log", "parity-scale-codec", @@ -9195,7 +8893,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -9214,7 +8912,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "futures", "libc", @@ -9233,14 +8931,14 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "chrono", "futures", "libp2p", "log", "parking_lot 0.12.1", - "pin-project 1.0.10", + "pin-project", "rand 0.7.3", "serde", "serde_json", @@ -9251,7 +8949,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "ansi_term", "atty", @@ -9282,7 +8980,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9293,7 +8991,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "futures", "futures-timer", @@ -9320,7 +9018,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "futures", "log", @@ -9333,7 +9031,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "futures", "futures-timer", @@ -9486,9 +9184,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.9" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cb243bdfdb5936c8dc3c45762a19d12ab4550cdc753bc247637d4ec35a040fd" +checksum = "a2333e6df6d6598f2b1974829f853c2b4c5f4a6e503c10af918081aa6f8564e1" dependencies = [ "serde", ] @@ -9501,18 +9199,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.137" +version = "1.0.139" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1" +checksum = "0171ebb889e45aa68b44aee0859b3eede84c6f5f5c228e6f140c0b2a0a46cad6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.137" +version = "1.0.139" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be" +checksum = "dc1d3230c1de7932af58ad8ffbe1d784bd55efd5a9d84ac24f69c72d83543dfb" dependencies = [ "proc-macro2", "quote", @@ -9521,9 +9219,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.81" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c" +checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" dependencies = [ "itoa 1.0.2", "ryu", @@ -9684,10 +9382,16 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" +[[package]] +name = "slice-group-by" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" + [[package]] name = "slot-range-helper" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "enumn", "parity-scale-codec", @@ -9707,9 +9411,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" [[package]] name = "snap" @@ -9763,7 +9467,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "hash-db", "log", @@ -9780,7 +9484,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "blake2", "proc-macro-crate", @@ -9792,7 +9496,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "parity-scale-codec", "scale-info", @@ -9805,7 +9509,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "integer-sqrt", "num-traits", @@ -9820,7 +9524,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "parity-scale-codec", "scale-info", @@ -9833,7 +9537,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "async-trait", "parity-scale-codec", @@ -9845,7 +9549,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "parity-scale-codec", "sp-api", @@ -9857,7 +9561,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "futures", "log", @@ -9875,7 +9579,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "async-trait", "futures", @@ -9894,7 +9598,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "async-trait", "parity-scale-codec", @@ -9912,7 +9616,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "async-trait", "merlin", @@ -9935,7 +9639,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "parity-scale-codec", "scale-info", @@ -9949,7 +9653,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "parity-scale-codec", "scale-info", @@ -9962,7 +9666,7 @@ dependencies = [ [[package]] name = "sp-core" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "base58", "bitflags", @@ -10008,7 +9712,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "blake2", "byteorder", @@ -10022,7 +9726,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "proc-macro2", "quote", @@ -10033,7 +9737,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -10042,7 +9746,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "proc-macro2", "quote", @@ -10052,7 +9756,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "environmental", "parity-scale-codec", @@ -10063,7 +9767,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "finality-grandpa", "log", @@ -10081,7 +9785,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -10095,7 +9799,7 @@ dependencies = [ [[package]] name = "sp-io" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "futures", "hash-db", @@ -10120,7 +9824,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "lazy_static", "sp-core", @@ -10131,7 +9835,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "async-trait", "futures", @@ -10148,7 +9852,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "thiserror", "zstd", @@ -10157,7 +9861,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "log", "parity-scale-codec", @@ -10172,7 +9876,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "parity-scale-codec", "scale-info", @@ -10186,7 +9890,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "sp-api", "sp-core", @@ -10196,7 +9900,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "backtrace", "lazy_static", @@ -10206,7 +9910,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "rustc-hash", "serde", @@ -10216,7 +9920,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "either", "hash256-std-hasher", @@ -10238,7 +9942,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -10255,7 +9959,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "Inflector", "proc-macro-crate", @@ -10267,7 +9971,7 @@ dependencies = [ [[package]] name = "sp-sandbox" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "log", "parity-scale-codec", @@ -10281,7 +9985,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "serde", "serde_json", @@ -10290,7 +9994,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "parity-scale-codec", "scale-info", @@ -10304,7 +10008,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "parity-scale-codec", "scale-info", @@ -10315,7 +10019,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "hash-db", "log", @@ -10337,12 +10041,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" [[package]] name = "sp-storage" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10355,7 +10059,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "log", "sp-core", @@ -10368,7 +10072,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "async-trait", "futures-timer", @@ -10384,7 +10088,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "parity-scale-codec", "sp-std", @@ -10396,7 +10100,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "sp-api", "sp-runtime", @@ -10405,7 +10109,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "async-trait", "log", @@ -10421,7 +10125,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "hash-db", "memory-db", @@ -10437,7 +10141,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10454,7 +10158,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10465,7 +10169,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "impl-trait-for-tuples", "log", @@ -10483,9 +10187,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "ss58-registry" -version = "1.19.0" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70850dd1812f04824cd78912213e56e616cb5225af02da94080c2ef5669ed718" +checksum = "5b3522333512d68c1a4793f4f1109354a2b56d935b19fee6929d204a120b3673" dependencies = [ "Inflector", "num-format", @@ -10563,11 +10267,11 @@ dependencies = [ [[package]] name = "strum" -version = "0.24.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e96acfc1b70604b8b2f1ffa4c57e59176c7dbb05d556c71ecd2f5498a1dee7f8" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" dependencies = [ - "strum_macros 0.24.0", + "strum_macros 0.24.2", ] [[package]] @@ -10585,9 +10289,9 @@ dependencies = [ [[package]] name = "strum_macros" -version = "0.24.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6878079b17446e4d3eba6192bb0a2950d5b14f0ed8424b852310e5a94345d0ef" +checksum = "4faebde00e8ff94316c01800f9054fd2ba77d30d9e922541913051d1d978918b" dependencies = [ "heck 0.4.0", "proc-macro2", @@ -10612,7 +10316,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "platforms", ] @@ -10620,7 +10324,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -10641,7 +10345,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "futures-util", "hyper", @@ -10654,7 +10358,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "jsonrpsee", "log", @@ -10675,7 +10379,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "ansi_term", "build-helper", @@ -10895,10 +10599,11 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.18.2" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4903bf0427cf68dddd5aa6a93220756f8be0c34fcfa9f5e6191e103e15a31395" +checksum = "57aec3cfa4c296db7255446efb4928a6be304b431a806216105542a67b6ca82e" dependencies = [ + "autocfg", "bytes", "libc", "memchr", @@ -10915,9 +10620,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7" +checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" dependencies = [ "proc-macro2", "quote", @@ -10948,9 +10653,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f988a1a1adc2fb21f9c12aa96441da33a1728193ae0b95d2be22dbd17fcb4e5c" +checksum = "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45" dependencies = [ "bytes", "futures-core", @@ -10972,15 +10677,15 @@ dependencies = [ [[package]] name = "tower-service" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.34" +version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0ecdcb44a79f0fe9844f0c4f33a342cbcbb5117de8001e6ba0dc2351327d09" +checksum = "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160" dependencies = [ "cfg-if 1.0.0", "pin-project-lite 0.2.9", @@ -10990,9 +10695,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6b8ad3567499f98a1db7a752b07a7c8c7c7c34c332ec00effb2b0027974b7c" +checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" dependencies = [ "proc-macro2", "quote", @@ -11001,11 +10706,11 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.26" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f54c8ca710e81886d498c2fd3331b56c93aa248d49de2222ad2742247c60072f" +checksum = "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7" dependencies = [ - "lazy_static", + "once_cell", "valuable", ] @@ -11015,14 +10720,14 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "pin-project 1.0.10", + "pin-project", "tracing", ] [[package]] name = "tracing-gum" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -11032,8 +10737,8 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "expander 0.0.6", "proc-macro-crate", @@ -11095,7 +10800,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d32d034c0d3db64b43c31de38e945f15b40cd4ca6d2dcfc26d4798ce8de4ab83" dependencies = [ "hash-db", - "hashbrown 0.12.1", + "hashbrown 0.12.3", "log", "rustc-hex", "smallvec", @@ -11162,7 +10867,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.25#3348e144f0a2b39ce08bd8e3b976c42fe0c990b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" dependencies = [ "clap", "jsonrpsee", @@ -11210,9 +10915,9 @@ checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "ucd-trie" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" +checksum = "89570599c4fe5585de2b388aab47e99f7fa4e9238a1399f707a02e356058141c" [[package]] name = "uint" @@ -11243,15 +10948,15 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee" +checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7" [[package]] name = "unicode-normalization" -version = "0.1.19" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" +checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6" dependencies = [ "tinyvec", ] @@ -11395,9 +11100,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.80" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad" +checksum = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -11405,9 +11110,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.80" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e04185bfa3a779273da532f5025e33398409573f348985af9a1cbf3774d3f4" +checksum = "5491a68ab4500fa6b4d726bd67408630c3dbe9c4fe7bda16d5c82a1fd8c7340a" dependencies = [ "bumpalo", "lazy_static", @@ -11420,9 +11125,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.30" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f741de44b75e14c35df886aff5f1eb73aa114fa5d4d00dcd37b5e01259bf3b2" +checksum = "de9a9cec1733468a8c657e57fa2413d2ae2c0129b95e87c5b72b8ace4d13f31f" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -11432,9 +11137,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.80" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17cae7ff784d7e83a2fe7611cfe766ecf034111b49deb850a3dc7699c08251f5" +checksum = "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -11442,9 +11147,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.80" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99ec0dc7a4756fffc231aab1b9f2f578d23cd391390ab27f952ae0c9b3ece20b" +checksum = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048" dependencies = [ "proc-macro2", "quote", @@ -11455,9 +11160,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.80" +version = "0.2.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744" +checksum = "6a89911bd99e5f3659ec4acf9c4d93b0a90fe4a2a11f15328472058edc5261be" [[package]] name = "wasm-gc-api" @@ -11521,15 +11226,18 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.83.0" +version = "0.85.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" +checksum = "570460c58b21e9150d2df0eaaedbb7816c34bcec009ae0dcc976e40ba81463e7" +dependencies = [ + "indexmap", +] [[package]] name = "wasmtime" -version = "0.35.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21ffb4705016d5ca91e18a72ed6822dab50e6d5ddd7045461b17ef19071cdef1" +checksum = "e76e2b2833bb0ece666ccdbed7b71b617d447da11f1bb61f4f2bab2648f745ee" dependencies = [ "anyhow", "backtrace", @@ -11539,7 +11247,7 @@ dependencies = [ "lazy_static", "libc", "log", - "object 0.27.1", + "object 0.28.4", "once_cell", "paste", "psm", @@ -11558,9 +11266,9 @@ dependencies = [ [[package]] name = "wasmtime-cache" -version = "0.35.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c6ab24291fa7cb3a181f5669f6c72599b7ef781669759b45c7828c5999d0c0" +checksum = "743a9f142d93318262d7e1fe329394ff2e8f86a1df45ae5e4f0eedba215ca5ce" dependencies = [ "anyhow", "base64", @@ -11568,7 +11276,7 @@ dependencies = [ "directories-next", "file-per-thread-logger", "log", - "rustix", + "rustix 0.33.7", "serde", "sha2 0.9.9", "toml", @@ -11578,9 +11286,9 @@ dependencies = [ [[package]] name = "wasmtime-cranelift" -version = "0.35.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04c810078a491b7bc4866ebe045f714d2b95e6b539e1f64009a4a7606be11de" +checksum = "5dc0f80afa1ce97083a7168e6b6948d015d6237369e9f4a511d38c9c4ac8fbb9" dependencies = [ "anyhow", "cranelift-codegen", @@ -11591,7 +11299,7 @@ dependencies = [ "gimli", "log", "more-asserts", - "object 0.27.1", + "object 0.28.4", "target-lexicon", "thiserror", "wasmparser", @@ -11600,9 +11308,9 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "0.35.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61448266ea164b1ac406363cdcfac81c7c44db4d94c7a81c8620ac6c5c6cdf59" +checksum = "0816d9365196f1f447060087e0f87239ccded830bd54970a1168b0c9c8e824c9" dependencies = [ "anyhow", "cranelift-entity", @@ -11610,7 +11318,7 @@ dependencies = [ "indexmap", "log", "more-asserts", - "object 0.27.1", + "object 0.28.4", "serde", "target-lexicon", "thiserror", @@ -11620,9 +11328,9 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "0.35.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "156b4623c6b0d4b8c24afb846c20525922f538ef464cc024abab7ea8de2109a2" +checksum = "5c687f33cfa0f89ec1646929d0ff102087052cf9f0d15533de56526b0da0d1b3" dependencies = [ "addr2line", "anyhow", @@ -11631,10 +11339,10 @@ dependencies = [ "cpp_demangle", "gimli", "log", - "object 0.27.1", + "object 0.28.4", "region", "rustc-demangle", - "rustix", + "rustix 0.33.7", "serde", "target-lexicon", "thiserror", @@ -11646,20 +11354,20 @@ dependencies = [ [[package]] name = "wasmtime-jit-debug" -version = "0.35.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5dc31f811760a6c76b2672c404866fd19b75e5fb3b0075a3e377a6846490654" +checksum = "b252d1d025f94f3954ba2111f12f3a22826a0764a11c150c2d46623115a69e27" dependencies = [ "lazy_static", - "object 0.27.1", - "rustix", + "object 0.28.4", + "rustix 0.33.7", ] [[package]] name = "wasmtime-runtime" -version = "0.35.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f907beaff69d4d920fa4688411ee4cc75c0f01859e424677f9e426e2ef749864" +checksum = "ace251693103c9facbbd7df87a29a75e68016e48bc83c09133f2fda6b575e0ab" dependencies = [ "anyhow", "backtrace", @@ -11674,7 +11382,7 @@ dependencies = [ "more-asserts", "rand 0.8.5", "region", - "rustix", + "rustix 0.33.7", "thiserror", "wasmtime-environ", "wasmtime-jit-debug", @@ -11683,9 +11391,9 @@ dependencies = [ [[package]] name = "wasmtime-types" -version = "0.35.3" +version = "0.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514ef0e5fd197b9609dc9eb74beba0c84d5a12b2417cbae55534633329ba4852" +checksum = "d129b0487a95986692af8708ffde9c50b0568dcefd79200941d475713b4f40bb" dependencies = [ "cranelift-entity", "serde", @@ -11695,9 +11403,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.57" +version = "0.3.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283" +checksum = "2fed94beee57daf8dd7d51f2b15dc2bcde92d7a72304cdf662a4371008b71b90" dependencies = [ "js-sys", "wasm-bindgen", @@ -11715,9 +11423,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.3" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d8de8415c823c8abd270ad483c6feeac771fad964890779f9a8cb24fbbc1bf" +checksum = "f1c760f0d366a6c24a02ed7816e23e691f5d92291f94d15e836006fd11b04daf" dependencies = [ "webpki", ] @@ -11733,8 +11441,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "beefy-primitives", "bitvec", @@ -11821,8 +11529,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "frame-support", "polkadot-primitives", @@ -11881,15 +11589,15 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.29.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aac7fef12f4b59cd0a29339406cc9203ab44e440ddff6b3f5a41455349fa9cf3" +checksum = "45296b64204227616fdbf2614cefa4c236b98ee64dfaaaa435207ed99fe7829f" dependencies = [ - "windows_aarch64_msvc 0.29.0", - "windows_i686_gnu 0.29.0", - "windows_i686_msvc 0.29.0", - "windows_x86_64_gnu 0.29.0", - "windows_x86_64_msvc 0.29.0", + "windows_aarch64_msvc 0.34.0", + "windows_i686_gnu 0.34.0", + "windows_i686_msvc 0.34.0", + "windows_x86_64_gnu 0.34.0", + "windows_x86_64_msvc 0.34.0", ] [[package]] @@ -11907,9 +11615,9 @@ dependencies = [ [[package]] name = "windows_aarch64_msvc" -version = "0.29.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d027175d00b01e0cbeb97d6ab6ebe03b12330a35786cbaca5252b1c4bf5d9b" +checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d" [[package]] name = "windows_aarch64_msvc" @@ -11919,9 +11627,9 @@ checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" [[package]] name = "windows_i686_gnu" -version = "0.29.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8793f59f7b8e8b01eda1a652b2697d87b93097198ae85f823b969ca5b89bba58" +checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed" [[package]] name = "windows_i686_gnu" @@ -11931,9 +11639,9 @@ checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" [[package]] name = "windows_i686_msvc" -version = "0.29.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8602f6c418b67024be2996c512f5f995de3ba417f4c75af68401ab8756796ae4" +checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956" [[package]] name = "windows_i686_msvc" @@ -11943,9 +11651,9 @@ checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" [[package]] name = "windows_x86_64_gnu" -version = "0.29.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d615f419543e0bd7d2b3323af0d86ff19cbc4f816e6453f36a2c2ce889c354" +checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4" [[package]] name = "windows_x86_64_gnu" @@ -11955,9 +11663,9 @@ checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" [[package]] name = "windows_x86_64_msvc" -version = "0.29.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d95421d9ed3672c280884da53201a5c46b7b2765ca6faf34b0d71cf34a3561" +checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9" [[package]] name = "windows_x86_64_msvc" @@ -11996,21 +11704,22 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "derivative", "impl-trait-for-tuples", "log", "parity-scale-codec", "scale-info", + "sp-runtime", "xcm-procedural", ] [[package]] name = "xcm-builder" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "frame-support", "frame-system", @@ -12029,8 +11738,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.25" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +version = "0.9.26" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "frame-benchmarking", "frame-support", @@ -12048,7 +11757,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.25#5174e9ae75b6843ecc460dfaa15f5851230638b8" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" dependencies = [ "Inflector", "proc-macro2", @@ -12072,9 +11781,9 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.4.3" +version = "1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d68d9dcec5f9b43a30d38c49f91dfedfaac384cb8f085faca366c26207dd1619" +checksum = "20b578acffd8516a6c3f2a1bdefc1ec37e547bb4e0fb8b6b01a4cafc886b4442" dependencies = [ "zeroize_derive", ] @@ -12093,18 +11802,18 @@ dependencies = [ [[package]] name = "zstd" -version = "0.10.2+zstd.1.5.2" +version = "0.11.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4a6bd64f22b5e3e94b4e238669ff9f10815c27a5180108b849d24174a83847" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "4.1.6+zstd.1.5.2" +version = "5.0.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b61c51bb270702d6167b8ce67340d2754b088d0c091b06e593aa772c3ee9bb" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" dependencies = [ "libc", "zstd-sys", @@ -12112,9 +11821,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "1.6.3+zstd.1.5.2" +version = "2.0.1+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc49afa5c8d634e75761feda8c592051e7eeb4683ba827211eb0d731d3402ea8" +checksum = "9fd07cbbc53846d9145dbffdf6dd09a7a0aa52be46741825f5c97bdd4f73f12b" dependencies = [ "cc", "libc", diff --git a/node/Cargo.toml b/node/Cargo.toml index 04e3d1c8..ece3204b 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -10,7 +10,7 @@ edition = "2021" build = "build.rs" [dependencies] -clap = { version = "3.2.5", features = ["derive"] } +clap = { version = "3.2.6", features = ["derive"] } derive_more = "0.99.2" log = "0.4.17" codec = { package = "parity-scale-codec", version = "3.0.0" } @@ -22,64 +22,64 @@ jsonrpsee = { version = "0.14.0", features = ["server"] } parachain-template-runtime = { path = "../runtime" } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.25" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.25" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.25" } -sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.26" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.26" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.26" } +sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.25" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.25" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.25" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.25" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.25" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.26" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.26" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.26" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.26" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.26" } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } -cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } -cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.25" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } +cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } +cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } +cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } [features] default = [] diff --git a/node/src/command.rs b/node/src/command.rs index eedc6e95..12958762 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -42,11 +42,13 @@ impl SubstrateCli for Cli { } fn description() -> String { - "Parachain Collator Template\n\nThe command-line arguments provided first will be \ + format!( + "Parachain Collator Template\n\nThe command-line arguments provided first will be \ passed to the parachain node, while the arguments provided after -- will be passed \ to the relay chain node.\n\n\ - parachain-collator -- " - .into() + {} -- ", + Self::executable_name() + ) } fn author() -> String { @@ -80,11 +82,13 @@ impl SubstrateCli for RelayChainCli { } fn description() -> String { - "Parachain Collator Template\n\nThe command-line arguments provided first will be \ + format!( + "Parachain Collator Template\n\nThe command-line arguments provided first will be \ passed to the parachain node, while the arguments provided after -- will be passed \ to the relay chain node.\n\n\ - parachain-collator -- " - .into() + {} -- ", + Self::executable_name() + ) } fn author() -> String { diff --git a/node/src/rpc.rs b/node/src/rpc.rs index 5ea76090..2bc5cccc 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc.rs @@ -52,7 +52,7 @@ where let mut module = RpcExtension::new(()); let FullDeps { client, pool, deny_unsafe } = deps; - module.merge(System::new(client.clone(), pool.clone(), deny_unsafe).into_rpc())?; - module.merge(TransactionPayment::new(client.clone()).into_rpc())?; + module.merge(System::new(client.clone(), pool, deny_unsafe).into_rpc())?; + module.merge(TransactionPayment::new(client).into_rpc())?; Ok(module) } diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 19ff0c83..345e2652 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -16,17 +16,17 @@ codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive scale-info = { version = "2.0.0", default-features = false, features = ["derive"] } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.25" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.26" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } [dev-dependencies] serde = { version = "1.0.132" } # Substrate -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } [features] default = ["std"] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 2b5a2ba7..1e8b8a2b 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,7 +12,7 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.25" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } @@ -20,60 +20,60 @@ hex-literal = { version = "0.3.4", optional = true } log = { version = "0.4.17", default-features = false } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } serde = { version = "1.0.137", optional = true, features = ["derive"] } -smallvec = "1.6.1" +smallvec = "1.8.1" # Local pallet-template = { path = "../pallets/template", default-features = false } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.25" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.25" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.25" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.25" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.26" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.26" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.26" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.25" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.25" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.25" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.25" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.25" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.25" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.26" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.26" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.26" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.26" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.26" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.26" } # Cumulus -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25" } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25" } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25" } -cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25", version = "3.0.0"} -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25" } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25" } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25" } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25" } -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25" } -parachain-info = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.25" } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26" } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26" } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26" } +cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26", version = "3.0.0"} +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26" } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26" } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26" } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26" } +pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26" } +parachain-info = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26" } [features] default = [ diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 7429b832..a4aecb88 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -354,6 +354,7 @@ parameter_types! { } impl pallet_transaction_payment::Config for Runtime { + type Event = Event; type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter; type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; @@ -475,7 +476,7 @@ construct_runtime!( // Monetary stuff. Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, - TransactionPayment: pallet_transaction_payment::{Pallet, Storage} = 11, + TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 11, // Collator support. The order of these 4 are important and shall not change. Authorship: pallet_authorship::{Pallet, Call, Storage} = 20, From c5338b43bfae1678f0f84bfce92ddccc14c7aee4 Mon Sep 17 00:00:00 2001 From: Paritytech CI <52199148+paritytech-ci@users.noreply.github.com> Date: Sat, 6 Aug 2022 13:36:04 +0100 Subject: [PATCH 60/91] Auto-Update node-template from polkadot-v0.9.27 (#123) Co-authored-by: Dan Shields --- Cargo.lock | 1179 +++++++++++++++++------------------ node/Cargo.toml | 108 ++-- node/src/command.rs | 9 +- node/src/service.rs | 6 +- pallets/template/Cargo.toml | 12 +- runtime/Cargo.toml | 94 +-- 6 files changed, 696 insertions(+), 712 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5045ca6c..43812f65 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -33,7 +33,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" dependencies = [ - "generic-array 0.14.5", + "generic-array 0.14.6", ] [[package]] @@ -99,9 +99,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.58" +version = "1.0.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704" +checksum = "c91f1f46651137be86f3a2b9a8359f9ab421d04d941c62b5982e1ca21113adf9" [[package]] name = "approx" @@ -298,9 +298,9 @@ checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" [[package]] name = "async-trait" -version = "0.1.56" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96cf8829f67d2eab0b2dfa42c5d0ef737e0724e4a82b01b3e292456202b19716" +checksum = "76464446b8bc32758d7e88ee1a804d9914cd9b1cb264c029899680b0be29826f" dependencies = [ "proc-macro2", "quote", @@ -408,7 +408,7 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "beefy-primitives", "fnv", @@ -442,7 +442,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -462,7 +462,7 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "beefy-primitives", "sp-api", @@ -471,7 +471,7 @@ dependencies = [ [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "parity-scale-codec", "scale-info", @@ -608,7 +608,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ "block-padding 0.2.1", - "generic-array 0.14.5", + "generic-array 0.14.6", ] [[package]] @@ -617,7 +617,7 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" dependencies = [ - "generic-array 0.14.5", + "generic-array 0.14.6", ] [[package]] @@ -708,9 +708,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.1.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" +checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" [[package]] name = "bzip2-sys" @@ -755,7 +755,7 @@ checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" dependencies = [ "camino", "cargo-platform", - "semver 1.0.12", + "semver 1.0.13", "serde", "serde_json", ] @@ -823,14 +823,15 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.19" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +checksum = "6127248204b9aba09a362f6c930ef6a78f2c1b2215f8a7b398c06e1083f17af0" dependencies = [ - "libc", + "js-sys", "num-integer", "num-traits", "time", + "wasm-bindgen", "winapi", ] @@ -853,7 +854,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" dependencies = [ - "generic-array 0.14.5", + "generic-array 0.14.6", ] [[package]] @@ -878,9 +879,9 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.12" +version = "3.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab8b79fe3946ceb4a0b1c080b4018992b8d27e9ff363644c1c9b6387c854614d" +checksum = "a3dbbb6653e7c55cc8595ad3e1f7be8f32aba4eb7ff7f0fd1163d4f3d137c0a9" dependencies = [ "atty", "bitflags", @@ -895,11 +896,11 @@ dependencies = [ [[package]] name = "clap_derive" -version = "3.2.7" +version = "3.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759bf187376e1afa7b85b959e6a664a3e7a95203415dba952ad19139e798f902" +checksum = "9ba52acd3b0a5c33aeada5cdaa3267cdc7c594a98731d4268cdc1532f4264cb4" dependencies = [ - "heck 0.4.0", + "heck", "proc-macro-error", "proc-macro2", "quote", @@ -938,20 +939,20 @@ dependencies = [ [[package]] name = "comfy-table" -version = "5.0.1" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b103d85ca6e209388771bfb7aa6b68a7aeec4afbf6f0a0264bfbf50360e5212e" +checksum = "121d8a5b0346092c18a4b2fd6f620d7a06f0eb7ac0a45860939a0884bc579c56" dependencies = [ - "strum 0.23.0", - "strum_macros 0.23.1", + "strum", + "strum_macros", "unicode-width", ] [[package]] name = "concurrent-queue" -version = "1.2.3" +version = "1.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83827793632c72fa4f73c2edb31e7a997527dd8ffe7077344621fc62c5478157" +checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c" dependencies = [ "cache-padded", ] @@ -1019,18 +1020,18 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.85.1" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7901fbba05decc537080b07cb3f1cadf53be7b7602ca8255786288a8692ae29a" +checksum = "749d0d6022c9038dccf480bdde2a38d435937335bf2bb0f14e815d94517cdce8" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.85.1" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ba1b45d243a4a28e12d26cd5f2507da74e77c45927d40de8b6ffbf088b46b5" +checksum = "e94370cc7b37bf652ccd8bb8f09bd900997f7ccf97520edfc75554bb5c4abbea" dependencies = [ "cranelift-bforest", "cranelift-codegen-meta", @@ -1046,33 +1047,33 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.85.1" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54cc30032171bf230ce22b99c07c3a1de1221cb5375bd6dbe6dbe77d0eed743c" +checksum = "e0a3cea8fdab90e44018c5b9a1dfd460d8ee265ac354337150222a354628bdb6" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.85.1" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23f2672426d2bb4c9c3ef53e023076cfc4d8922f0eeaebaf372c92fae8b5c69" +checksum = "5ac72f76f2698598951ab26d8c96eaa854810e693e7dd52523958b5909fde6b2" [[package]] name = "cranelift-entity" -version = "0.85.1" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "886c59a5e0de1f06dbb7da80db149c75de10d5e2caca07cdd9fef8a5918a6336" +checksum = "09eaeacfcd2356fe0e66b295e8f9d59fdd1ac3ace53ba50de14d628ec902f72d" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.85.1" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace74eeca11c439a9d4ed1a5cb9df31a54cd0f7fbddf82c8ce4ea8e9ad2a8fe0" +checksum = "dba69c9980d5ffd62c18a2bde927855fcd7c8dc92f29feaf8636052662cbd99c" dependencies = [ "cranelift-codegen", "log", @@ -1082,15 +1083,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.85.1" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db1ae52a5cc2cad0d86fdd3dcb16b7217d2f1e65ab4f5814aa4f014ad335fa43" +checksum = "d2920dc1e05cac40304456ed3301fde2c09bd6a9b0210bcfa2f101398d628d5b" [[package]] name = "cranelift-native" -version = "0.85.1" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dadcfb7852900780d37102bce5698bcd401736403f07b52e714ff7a180e0e22f" +checksum = "f04dfa45f9b2a6f587c564d6b63388e00cd6589d2df6ea2758cf79e1a13285e6" dependencies = [ "cranelift-codegen", "libc", @@ -1099,9 +1100,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.85.1" +version = "0.85.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c84e3410960389110b88f97776f39f6d2c8becdaa4cd59e390e6b76d9d0e7190" +checksum = "31a46513ae6f26f3f267d8d75b5373d555fbbd1e68681f348d99df43f747ec54" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1124,9 +1125,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c02a4d71819009c192cf4872265391563fd6a84c81ff2c0f2a7026ca4c1d85c" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ "cfg-if 1.0.0", "crossbeam-utils", @@ -1134,9 +1135,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ "cfg-if 1.0.0", "crossbeam-epoch", @@ -1145,9 +1146,9 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07db9d94cbd326813772c968ccd25999e5f8ae22f4f8d1b11effa37ef6ce281d" +checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1" dependencies = [ "autocfg", "cfg-if 1.0.0", @@ -1159,9 +1160,9 @@ dependencies = [ [[package]] name = "crossbeam-queue" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f25d8400f4a7a5778f0e4e52384a48cbd9b5c495d110786187fc750075277a2" +checksum = "1cd42583b04998a5363558e5f9291ee5a5ff6b49944332103f251e7479a82aa7" dependencies = [ "cfg-if 1.0.0", "crossbeam-utils", @@ -1169,9 +1170,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83" +checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" dependencies = [ "cfg-if 1.0.0", "once_cell", @@ -1189,7 +1190,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21" dependencies = [ - "generic-array 0.14.5", + "generic-array 0.14.6", "rand_core 0.6.3", "subtle", "zeroize", @@ -1201,7 +1202,7 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "generic-array 0.14.5", + "generic-array 0.14.6", "typenum", ] @@ -1211,7 +1212,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ - "generic-array 0.14.5", + "generic-array 0.14.6", "subtle", ] @@ -1221,15 +1222,15 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" dependencies = [ - "generic-array 0.14.5", + "generic-array 0.14.6", "subtle", ] [[package]] name = "ctor" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f877be4f7c9f246b183111634f75baa039715e3f46ce860677d3b19a69fb229c" +checksum = "cdffe87e1d521a10f9696f833fe502293ea446d7f256c06128293a4119bdf4cb" dependencies = [ "quote", "syn", @@ -1258,7 +1259,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "clap", "parity-scale-codec", @@ -1273,7 +1274,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1297,7 +1298,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1326,7 +1327,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1347,7 +1348,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1372,7 +1373,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -1396,7 +1397,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1424,7 +1425,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "frame-executive", "frame-support", @@ -1442,7 +1443,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1460,7 +1461,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", @@ -1490,7 +1491,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1501,7 +1502,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "frame-benchmarking", "frame-support", @@ -1515,7 +1516,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1532,7 +1533,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1551,7 +1552,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "frame-support", "parity-scale-codec", @@ -1567,7 +1568,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1590,7 +1591,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "cumulus-primitives-core", "futures", @@ -1603,7 +1604,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1615,12 +1616,14 @@ dependencies = [ "sp-std", "sp-trie", "xcm", + "xcm-builder", + "xcm-executor", ] [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1650,7 +1653,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1673,7 +1676,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "async-trait", "backoff", @@ -1692,6 +1695,7 @@ dependencies = [ "sp-runtime", "sp-state-machine", "sp-storage", + "tokio", "tracing", "url", ] @@ -1699,7 +1703,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1822,7 +1826,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.5", + "generic-array 0.14.6", ] [[package]] @@ -1895,9 +1899,9 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "dtoa" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5caaa75cbd2b960ff1e5392d2cfb1f44717fffe12fc1f32b7b5d1267f99732a6" +checksum = "c6053ff46b5639ceb91756a85a4c8914668393a03170efd79c8884a529d80656" [[package]] name = "dyn-clonable" @@ -1922,9 +1926,9 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d07a982d1fb29db01e5a59b1918e03da4df7297eaeee7686ac45542fd4e59c8" +checksum = "4f94fa09c2aeea5b8839e414b7b841bf429fd25b9c522116ac97ee87856d88b2" [[package]] name = "ecdsa" @@ -1977,7 +1981,7 @@ dependencies = [ "crypto-bigint", "der", "ff", - "generic-array 0.14.5", + "generic-array 0.14.6", "group", "rand_core 0.6.3", "sec1", @@ -1991,7 +1995,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21cdad81446a7f7dc43f6a77409efeb9733d2fa65553efef6018ef257c959b73" dependencies = [ - "heck 0.4.0", + "heck", "proc-macro2", "quote", "syn", @@ -2019,9 +2023,9 @@ dependencies = [ [[package]] name = "enumn" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052bc8773a98bd051ff37db74a8a25f00e6bfa2cbd03373390c72e9f7afbf344" +checksum = "038b1afa59052df211f9efd58f8b1d84c242935ede1c3dbaed26b018a9e06ae2" dependencies = [ "proc-macro2", "quote", @@ -2070,9 +2074,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "2.5.2" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "exit-future" @@ -2122,9 +2126,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" dependencies = [ "instant", ] @@ -2249,7 +2253,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "parity-scale-codec", ] @@ -2267,7 +2271,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-support", "frame-system", @@ -2289,7 +2293,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "Inflector", "chrono", @@ -2340,7 +2344,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2351,7 +2355,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2367,7 +2371,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-support", "frame-system", @@ -2395,7 +2399,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "bitflags", "frame-metadata", @@ -2425,7 +2429,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2437,7 +2441,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2449,7 +2453,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "proc-macro2", "quote", @@ -2459,7 +2463,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-support", "log", @@ -2476,7 +2480,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -2491,7 +2495,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "parity-scale-codec", "sp-api", @@ -2500,7 +2504,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-support", "sp-api", @@ -2690,9 +2694,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" dependencies = [ "typenum", "version_check", @@ -2816,9 +2820,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.3.2" +version = "4.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36641a8b9deb60e23fb9bb47ac631d664a780b088909b89179a4eab5618b076b" +checksum = "360d9740069b2f6cbb63ce2dbaa71a20d3185350cbb990d7bebeb9318415eb17" dependencies = [ "log", "pest", @@ -2861,15 +2865,6 @@ dependencies = [ "ahash", ] -[[package]] -name = "heck" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "heck" version = "0.4.0" @@ -2930,7 +2925,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" dependencies = [ "digest 0.9.0", - "generic-array 0.14.5", + "generic-array 0.14.6", "hmac 0.8.1", ] @@ -2953,7 +2948,7 @@ checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ "bytes", "fnv", - "itoa 1.0.2", + "itoa 1.0.3", ] [[package]] @@ -3000,7 +2995,7 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa 1.0.2", + "itoa 1.0.3", "pin-project-lite 0.2.9", "socket2", "tokio", @@ -3180,9 +3175,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" +checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" [[package]] name = "jobserver" @@ -3195,9 +3190,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.58" +version = "0.3.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fac17f7123a73ca62df411b1bf727ccc805daa070338fda671c86dac1bdc27" +checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" dependencies = [ "wasm-bindgen", ] @@ -3360,8 +3355,8 @@ checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838" [[package]] name = "kusama-runtime" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "beefy-primitives", "bitvec", @@ -3397,6 +3392,7 @@ dependencies = [ "pallet-multisig", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", + "pallet-nomination-pools-runtime-api", "pallet-offences", "pallet-offences-benchmarking", "pallet-preimage", @@ -3452,8 +3448,8 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "frame-support", "polkadot-primitives", @@ -3524,9 +3520,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.126" +version = "0.2.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" +checksum = "505e71a4706fa491e9b1b55f51b95d4037d0821ee40131190475f692b35b009b" [[package]] name = "libloading" @@ -3550,9 +3546,9 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33a33a362ce288760ec6a508b94caaec573ae7d3bbbd91b87aa0bad4456839db" +checksum = "da83a57f3f5ba3680950aa3cbc806fc297bc0b289d42e8942ed528ace71b8145" [[package]] name = "libp2p" @@ -3736,7 +3732,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "lru 0.7.7", + "lru 0.7.8", "prost", "prost-build", "prost-codec", @@ -4211,11 +4207,11 @@ dependencies = [ [[package]] name = "lru" -version = "0.7.7" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c84e6fe5655adc6ce00787cf7dcaf8dc4f998a0565d23eafc207a8b08ca3349a" +checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" dependencies = [ - "hashbrown 0.11.2", + "hashbrown 0.12.3", ] [[package]] @@ -4256,12 +4252,6 @@ dependencies = [ "libc", ] -[[package]] -name = "maplit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" - [[package]] name = "match_cfg" version = "0.1.0" @@ -4458,7 +4448,7 @@ dependencies = [ "digest 0.10.3", "multihash-derive", "sha2 0.10.2", - "sha3 0.10.1", + "sha3 0.10.2", "unsigned-varint", ] @@ -4770,7 +4760,7 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "orchestra" version = "0.0.1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "async-trait", "dyn-clonable", @@ -4786,7 +4776,7 @@ dependencies = [ [[package]] name = "orchestra-proc-macro" version = "0.0.1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "expander 0.0.6", "itertools", @@ -4824,7 +4814,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-support", "frame-system", @@ -4840,7 +4830,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-support", "frame-system", @@ -4856,7 +4846,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-support", "frame-system", @@ -4871,7 +4861,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -4895,7 +4885,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4915,7 +4905,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -4930,7 +4920,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "beefy-primitives", "frame-support", @@ -4946,7 +4936,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -4969,7 +4959,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -4987,7 +4977,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -5006,7 +4996,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "frame-benchmarking", "frame-support", @@ -5026,7 +5016,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -5043,7 +5033,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -5059,7 +5049,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5076,13 +5066,13 @@ dependencies = [ "sp-runtime", "sp-std", "static_assertions", - "strum 0.23.0", + "strum", ] [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5095,7 +5085,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -5113,7 +5103,7 @@ dependencies = [ [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -5128,7 +5118,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -5151,7 +5141,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5167,7 +5157,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -5187,7 +5177,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -5204,7 +5194,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -5221,7 +5211,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5239,7 +5229,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -5254,7 +5244,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -5269,7 +5259,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-support", "frame-system", @@ -5286,7 +5276,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5302,10 +5292,20 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-nomination-pools-runtime-api" +version = "1.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +dependencies = [ + "parity-scale-codec", + "sp-api", + "sp-std", +] + [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-support", "frame-system", @@ -5322,7 +5322,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5345,7 +5345,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -5361,7 +5361,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -5376,7 +5376,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -5391,7 +5391,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -5407,7 +5407,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-support", "frame-system", @@ -5428,7 +5428,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -5444,7 +5444,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-support", "frame-system", @@ -5458,7 +5458,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5481,7 +5481,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -5492,7 +5492,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "log", "sp-arithmetic", @@ -5501,7 +5501,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-support", "frame-system", @@ -5530,7 +5530,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -5548,7 +5548,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -5567,7 +5567,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-support", "frame-system", @@ -5583,7 +5583,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -5598,7 +5598,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5609,7 +5609,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -5626,7 +5626,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -5642,7 +5642,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-benchmarking", "frame-support", @@ -5656,8 +5656,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "frame-support", "frame-system", @@ -5674,8 +5674,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "frame-benchmarking", "frame-support", @@ -5692,7 +5692,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.26#e43b8b878a6fd0ca8b5e88d19822c4d777d3c677" +source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -5828,9 +5828,9 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.3.14" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "966eb23bd3a09758b8dac09f82b9d417c00f14e5d46171bf04cffdd9cb2e1eb1" +checksum = "2bb474d0ed0836e185cb998a6b140ed1073d1fbf27d690ecf9ede8030289382c" dependencies = [ "blake2-rfc", "crc32fast", @@ -5975,9 +5975,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc" +checksum = "9423e2b32f7a043629287a536f21951e8c6a82482d0acb1eeebfc90bc2225b22" [[package]] name = "pbkdf2" @@ -6011,18 +6011,19 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" [[package]] name = "pest" -version = "2.1.3" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" +checksum = "69486e2b8c2d2aeb9762db7b4e00b0331156393555cff467f4163ff06821eef8" dependencies = [ + "thiserror", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.1.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" +checksum = "b13570633aff33c6d22ce47dd566b10a3b9122c2fe9d8e7501895905be532b91" dependencies = [ "pest", "pest_generator", @@ -6030,9 +6031,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.1.3" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" +checksum = "b3c567e5702efdc79fb18859ea74c3eb36e14c43da7b8c1f098a4ed6514ec7a0" dependencies = [ "pest", "pest_meta", @@ -6043,13 +6044,13 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.1.3" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d" +checksum = "5eb32be5ee3bbdafa8c7a18b0a8a8d962b66cfa2ceee4037f49267a50ee821fe" dependencies = [ - "maplit", + "once_cell", "pest", - "sha-1 0.8.2", + "sha-1 0.10.0", ] [[package]] @@ -6114,8 +6115,8 @@ checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "futures", "polkadot-node-network-protocol", @@ -6129,8 +6130,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "futures", "polkadot-node-network-protocol", @@ -6143,13 +6144,13 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "derive_more", "fatality", "futures", - "lru 0.7.7", + "lru 0.7.8", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6166,12 +6167,12 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "fatality", "futures", - "lru 0.7.7", + "lru 0.7.8", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6187,8 +6188,8 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "clap", "frame-benchmarking-cli", @@ -6204,6 +6205,7 @@ dependencies = [ "sc-sysinfo", "sc-tracing", "sp-core", + "sp-keyring", "sp-trie", "substrate-build-script-utils", "thiserror", @@ -6212,8 +6214,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -6252,8 +6254,8 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "always-assert", "fatality", @@ -6273,8 +6275,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -6286,13 +6288,13 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "derive_more", "fatality", "futures", - "lru 0.7.7", + "lru 0.7.8", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6309,8 +6311,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6323,8 +6325,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "futures", "futures-timer", @@ -6343,12 +6345,13 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "always-assert", "async-trait", "bytes", + "fatality", "futures", "parity-scale-codec", "parking_lot 0.12.1", @@ -6359,13 +6362,14 @@ dependencies = [ "polkadot-primitives", "sc-network", "sp-consensus", + "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-collation-generation" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "futures", "parity-scale-codec", @@ -6382,15 +6386,15 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "bitvec", "derive_more", "futures", "futures-timer", "kvdb", - "lru 0.7.7", + "lru 0.7.8", "merlin", "parity-scale-codec", "polkadot-node-jaeger", @@ -6411,8 +6415,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "bitvec", "futures", @@ -6431,8 +6435,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "bitvec", "fatality", @@ -6450,8 +6454,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "futures", "polkadot-node-subsystem", @@ -6465,8 +6469,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "async-trait", "futures", @@ -6483,8 +6487,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "futures", "polkadot-node-subsystem", @@ -6498,8 +6502,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "futures", "futures-timer", @@ -6515,13 +6519,13 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "fatality", "futures", "kvdb", - "lru 0.7.7", + "lru 0.7.8", "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -6534,8 +6538,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "async-trait", "futures", @@ -6551,8 +6555,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "bitvec", "fatality", @@ -6569,8 +6573,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "always-assert", "assert_matches", @@ -6601,8 +6605,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "futures", "polkadot-node-primitives", @@ -6617,25 +6621,24 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "futures", "memory-lru", "parity-util-mem", "polkadot-node-subsystem", + "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-primitives", - "sp-api", - "sp-authority-discovery", "sp-consensus-babe", "tracing-gum", ] [[package]] name = "polkadot-node-jaeger" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "async-std", "lazy_static", @@ -6652,8 +6655,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "bs58", "futures", @@ -6671,8 +6674,8 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "async-trait", "derive_more", @@ -6685,15 +6688,15 @@ dependencies = [ "rand 0.8.5", "sc-authority-discovery", "sc-network", - "strum 0.24.1", + "strum", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-primitives" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "bounded-vec", "futures", @@ -6714,8 +6717,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -6724,9 +6727,10 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ + "async-trait", "derive_more", "futures", "orchestra", @@ -6737,14 +6741,17 @@ dependencies = [ "polkadot-statement-table", "sc-network", "smallvec", + "sp-api", + "sp-authority-discovery", + "sp-consensus-babe", "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "async-trait", "derive_more", @@ -6752,7 +6759,7 @@ dependencies = [ "futures", "itertools", "kvdb", - "lru 0.7.7", + "lru 0.7.8", "parity-db", "parity-scale-codec", "parity-util-mem", @@ -6776,12 +6783,13 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ + "async-trait", "futures", "futures-timer", - "lru 0.7.7", + "lru 0.7.8", "orchestra", "parity-util-mem", "parking_lot 0.12.1", @@ -6798,8 +6806,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "derive_more", "frame-support", @@ -6815,8 +6823,8 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "env_logger", "kusama-runtime", @@ -6830,8 +6838,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "bitvec", "frame-system", @@ -6860,8 +6868,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -6892,8 +6900,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "beefy-primitives", "bitvec", @@ -6977,8 +6985,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "beefy-primitives", "bitvec", @@ -7024,8 +7032,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "frame-support", "polkadot-primitives", @@ -7036,8 +7044,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "bs58", "parity-scale-codec", @@ -7048,8 +7056,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "bitflags", "bitvec", @@ -7091,8 +7099,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "async-trait", "beefy-gadget", @@ -7103,7 +7111,7 @@ dependencies = [ "kusama-runtime", "kvdb", "kvdb-rocksdb", - "lru 0.7.7", + "lru 0.7.8", "pallet-babe", "pallet-im-online", "pallet-staking", @@ -7194,8 +7202,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "arrayvec 0.5.2", "fatality", @@ -7215,8 +7223,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7281,7 +7289,7 @@ dependencies = [ [[package]] name = "prioritized-metered-channel" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "coarsetime", "crossbeam-queue", @@ -7295,10 +7303,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.1.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +checksum = "26d50bfb8c23f23915855a00d98b5a35ef2e0b871bb52937bacadb798fbb66c8" dependencies = [ + "once_cell", "thiserror", "toml", ] @@ -7329,9 +7338,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.40" +version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7" +checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab" dependencies = [ "unicode-ident", ] @@ -7357,7 +7366,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac1abe0255c04d15f571427a2d1e00099016506cf3297b53853acd2b7eb87825" dependencies = [ "dtoa", - "itoa 1.0.2", + "itoa 1.0.3", "owning_ref", "prometheus-client-derive-text-encode", ] @@ -7392,7 +7401,7 @@ dependencies = [ "bytes", "cfg-if 1.0.0", "cmake", - "heck 0.4.0", + "heck", "itertools", "lazy_static", "log", @@ -7443,9 +7452,9 @@ dependencies = [ [[package]] name = "psm" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd89aa18fbf9533a581355a22438101fe9c2ed8c9e2f0dcf520552a3afddf2" +checksum = "f446d0a6efba22928558c4fb4ce0b3fd6c89b0061343e390bf01a703742b8125" dependencies = [ "cc", ] @@ -7469,9 +7478,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" dependencies = [ "proc-macro2", ] @@ -7614,9 +7623,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.13" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ "bitflags", ] @@ -7647,18 +7656,18 @@ dependencies = [ [[package]] name = "ref-cast" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "776c8940430cf563f66a93f9111d1cd39306dc6c68149ecc6b934742a44a828a" +checksum = "ed13bcd201494ab44900a96490291651d200730904221832b9547d24a87d332b" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f26c4704460286103bff62ea1fb78d137febc86aaf76952e6c5a2249af01f54" +checksum = "5234cd6063258a5e32903b53b1b6ac043a0541c8adc1f610f67b0326c7a578fa" dependencies = [ "proc-macro2", "quote", @@ -7718,7 +7727,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "env_logger", "jsonrpsee", @@ -7795,8 +7804,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -7864,8 +7873,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "frame-support", "polkadot-primitives", @@ -7923,7 +7932,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.12", + "semver 1.0.13", ] [[package]] @@ -7980,18 +7989,18 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7522c9de787ff061458fe9a829dc790a3f5b22dc571694fc5883f448b94d9a9" +checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55" dependencies = [ "base64", ] [[package]] name = "rustversion" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24c8ad4f0c00e1eb5bc7614d236a7f1300e3dbd76b68cac8e06fb00b015ad8d8" +checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" [[package]] name = "rw-stream-sink" @@ -8006,9 +8015,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" [[package]] name = "salsa20" @@ -8031,7 +8040,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "log", "sp-core", @@ -8042,7 +8051,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "async-trait", "futures", @@ -8069,7 +8078,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "futures", "futures-timer", @@ -8092,7 +8101,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8108,7 +8117,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "impl-trait-for-tuples", "memmap2 0.5.5", @@ -8125,7 +8134,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8136,7 +8145,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "chrono", "clap", @@ -8175,7 +8184,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "fnv", "futures", @@ -8203,7 +8212,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "hash-db", "kvdb", @@ -8228,7 +8237,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "async-trait", "futures", @@ -8252,7 +8261,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "async-trait", "futures", @@ -8281,7 +8290,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "async-trait", "fork-tree", @@ -8324,7 +8333,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "futures", "jsonrpsee", @@ -8346,7 +8355,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8359,7 +8368,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "async-trait", "futures", @@ -8384,7 +8393,7 @@ dependencies = [ [[package]] name = "sc-consensus-uncles" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "sc-client-api", "sp-authorship", @@ -8395,10 +8404,10 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "lazy_static", - "lru 0.7.7", + "lru 0.7.8", "parity-scale-codec", "parking_lot 0.12.1", "sc-executor-common", @@ -8422,7 +8431,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "environmental", "parity-scale-codec", @@ -8439,7 +8448,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "log", "parity-scale-codec", @@ -8454,7 +8463,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "cfg-if 1.0.0", "libc", @@ -8474,7 +8483,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "ahash", "async-trait", @@ -8494,6 +8503,7 @@ dependencies = [ "sc-consensus", "sc-keystore", "sc-network", + "sc-network-common", "sc-network-gossip", "sc-telemetry", "sc-utils", @@ -8514,7 +8524,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "finality-grandpa", "futures", @@ -8535,7 +8545,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "ansi_term", "futures", @@ -8552,7 +8562,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "async-trait", "hex", @@ -8567,7 +8577,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "async-trait", "asynchronous-codec", @@ -8585,7 +8595,7 @@ dependencies = [ "linked-hash-map", "linked_hash_set", "log", - "lru 0.7.7", + "lru 0.7.8", "parity-scale-codec", "parking_lot 0.12.1", "pin-project", @@ -8596,8 +8606,6 @@ dependencies = [ "sc-client-api", "sc-consensus", "sc-network-common", - "sc-network-light", - "sc-network-sync", "sc-peerset", "sc-utils", "serde", @@ -8607,7 +8615,6 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-core", - "sp-finality-grandpa", "sp-runtime", "substrate-prometheus-endpoint", "thiserror", @@ -8619,27 +8626,32 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ + "bitflags", "futures", "libp2p", "parity-scale-codec", "prost-build", + "sc-consensus", "sc-peerset", "smallvec", + "sp-consensus", + "sp-finality-grandpa", + "sp-runtime", ] [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "ahash", "futures", "futures-timer", "libp2p", "log", - "lru 0.7.7", + "lru 0.7.8", "sc-network", "sp-runtime", "substrate-prometheus-endpoint", @@ -8649,7 +8661,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "futures", "libp2p", @@ -8669,15 +8681,13 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ - "bitflags", - "either", "fork-tree", "futures", "libp2p", "log", - "lru 0.7.7", + "lru 0.7.8", "parity-scale-codec", "prost", "prost-build", @@ -8698,7 +8708,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "bytes", "fnv", @@ -8726,7 +8736,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "futures", "libp2p", @@ -8739,7 +8749,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8748,7 +8758,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "futures", "hash-db", @@ -8778,7 +8788,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "futures", "jsonrpsee", @@ -8801,7 +8811,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "futures", "jsonrpsee", @@ -8814,7 +8824,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "async-trait", "directories", @@ -8839,6 +8849,8 @@ dependencies = [ "sc-keystore", "sc-network", "sc-network-common", + "sc-network-light", + "sc-network-sync", "sc-offchain", "sc-rpc", "sc-rpc-server", @@ -8879,7 +8891,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "log", "parity-scale-codec", @@ -8893,7 +8905,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -8912,7 +8924,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "futures", "libc", @@ -8931,7 +8943,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "chrono", "futures", @@ -8949,7 +8961,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "ansi_term", "atty", @@ -8980,7 +8992,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8991,7 +9003,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "futures", "futures-timer", @@ -9018,7 +9030,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "futures", "log", @@ -9031,7 +9043,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "futures", "futures-timer", @@ -9118,25 +9130,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08da66b8b0965a5555b6bd6639e68ccba85e1e2506f5fbb089e93f8a04e1a2d1" dependencies = [ "der", - "generic-array 0.14.5", + "generic-array 0.14.6", "subtle", "zeroize", ] [[package]] name = "secp256k1" -version = "0.21.3" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c42e6f1735c5f00f51e43e28d6634141f2bcad10931b2609ddd74a86d751260" +checksum = "b7649a0b3ffb32636e60c7ce0d70511eda9c52c658cd0634e194d5a19943aeff" dependencies = [ "secp256k1-sys", ] [[package]] name = "secp256k1-sys" -version = "0.4.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957da2573cde917463ece3570eab4a0b3f19de6f1646cde62e6fd3868f566036" +checksum = "7058dc8eaf3f2810d7828680320acda0b25a288f6d288e19278e249bbf74226b" dependencies = [ "cc", ] @@ -9184,9 +9196,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2333e6df6d6598f2b1974829f853c2b4c5f4a6e503c10af918081aa6f8564e1" +checksum = "93f6841e709003d68bb2deee8c343572bf446003ec20a583e76f7b15cebf3711" dependencies = [ "serde", ] @@ -9199,18 +9211,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.139" +version = "1.0.142" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0171ebb889e45aa68b44aee0859b3eede84c6f5f5c228e6f140c0b2a0a46cad6" +checksum = "e590c437916fb6b221e1d00df6e3294f3fccd70ca7e92541c475d6ed6ef5fee2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.139" +version = "1.0.142" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1d3230c1de7932af58ad8ffbe1d784bd55efd5a9d84ac24f69c72d83543dfb" +checksum = "34b5b8d809babe02f538c2cfec6f2c1ed10804c0e5a6a041a049a4f5588ccc2e" dependencies = [ "proc-macro2", "quote", @@ -9219,11 +9231,11 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.82" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" +checksum = "38dd04e3c8279e75b31ef29dbdceebfe5ad89f4d0937213c53f7d49d01b3d5a7" dependencies = [ - "itoa 1.0.2", + "itoa 1.0.3", "ryu", "serde", ] @@ -9239,27 +9251,26 @@ dependencies = [ [[package]] name = "sha-1" -version = "0.8.2" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", + "block-buffer 0.9.0", + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.9.0", + "opaque-debug 0.3.0", ] [[package]] name = "sha-1" -version = "0.9.8" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" dependencies = [ - "block-buffer 0.9.0", "cfg-if 1.0.0", "cpufeatures", - "digest 0.9.0", - "opaque-debug 0.3.0", + "digest 0.10.3", ] [[package]] @@ -9312,9 +9323,9 @@ dependencies = [ [[package]] name = "sha3" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881bf8156c87b6301fc5ca6b27f11eeb2761224c7081e69b409d5a1951a70c86" +checksum = "0a31480366ec990f395a61b7c08122d99bd40544fdb5abcfc1b06bb29994312c" dependencies = [ "digest 0.10.3", "keccak", @@ -9378,9 +9389,12 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg", +] [[package]] name = "slice-group-by" @@ -9390,8 +9404,8 @@ checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" [[package]] name = "slot-range-helper" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "enumn", "parity-scale-codec", @@ -9467,7 +9481,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "hash-db", "log", @@ -9484,7 +9498,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "blake2", "proc-macro-crate", @@ -9496,7 +9510,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "parity-scale-codec", "scale-info", @@ -9509,7 +9523,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "integer-sqrt", "num-traits", @@ -9524,7 +9538,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "parity-scale-codec", "scale-info", @@ -9537,7 +9551,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "async-trait", "parity-scale-codec", @@ -9549,7 +9563,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "parity-scale-codec", "sp-api", @@ -9561,11 +9575,11 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "futures", "log", - "lru 0.7.7", + "lru 0.7.8", "parity-scale-codec", "parking_lot 0.12.1", "sp-api", @@ -9579,7 +9593,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "async-trait", "futures", @@ -9598,7 +9612,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "async-trait", "parity-scale-codec", @@ -9616,7 +9630,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "async-trait", "merlin", @@ -9639,7 +9653,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "parity-scale-codec", "scale-info", @@ -9653,7 +9667,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "parity-scale-codec", "scale-info", @@ -9666,7 +9680,7 @@ dependencies = [ [[package]] name = "sp-core" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "base58", "bitflags", @@ -9712,13 +9726,13 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "blake2", "byteorder", "digest 0.10.3", "sha2 0.10.2", - "sha3 0.10.1", + "sha3 0.10.2", "sp-std", "twox-hash", ] @@ -9726,7 +9740,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "proc-macro2", "quote", @@ -9737,7 +9751,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -9746,7 +9760,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "proc-macro2", "quote", @@ -9756,7 +9770,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "environmental", "parity-scale-codec", @@ -9767,7 +9781,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "finality-grandpa", "log", @@ -9785,7 +9799,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9799,7 +9813,7 @@ dependencies = [ [[package]] name = "sp-io" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "futures", "hash-db", @@ -9824,18 +9838,18 @@ dependencies = [ [[package]] name = "sp-keyring" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "lazy_static", "sp-core", "sp-runtime", - "strum 0.23.0", + "strum", ] [[package]] name = "sp-keystore" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "async-trait", "futures", @@ -9852,7 +9866,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "thiserror", "zstd", @@ -9861,7 +9875,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "log", "parity-scale-codec", @@ -9876,7 +9890,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "parity-scale-codec", "scale-info", @@ -9890,7 +9904,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "sp-api", "sp-core", @@ -9900,7 +9914,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "backtrace", "lazy_static", @@ -9910,7 +9924,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "rustc-hash", "serde", @@ -9920,7 +9934,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "either", "hash256-std-hasher", @@ -9942,7 +9956,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -9959,7 +9973,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "Inflector", "proc-macro-crate", @@ -9971,7 +9985,7 @@ dependencies = [ [[package]] name = "sp-sandbox" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "log", "parity-scale-codec", @@ -9985,7 +9999,7 @@ dependencies = [ [[package]] name = "sp-serializer" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "serde", "serde_json", @@ -9994,7 +10008,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "parity-scale-codec", "scale-info", @@ -10008,7 +10022,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "parity-scale-codec", "scale-info", @@ -10019,7 +10033,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "hash-db", "log", @@ -10041,12 +10055,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" [[package]] name = "sp-storage" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10059,7 +10073,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "log", "sp-core", @@ -10072,7 +10086,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "async-trait", "futures-timer", @@ -10088,7 +10102,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "parity-scale-codec", "sp-std", @@ -10100,7 +10114,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "sp-api", "sp-runtime", @@ -10109,7 +10123,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "async-trait", "log", @@ -10125,7 +10139,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "hash-db", "memory-db", @@ -10141,7 +10155,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10158,7 +10172,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10169,7 +10183,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "impl-trait-for-tuples", "log", @@ -10187,9 +10201,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "ss58-registry" -version = "1.24.0" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b3522333512d68c1a4793f4f1109354a2b56d935b19fee6929d204a120b3673" +checksum = "a039906277e0d8db996cd9d1ef19278c10209d994ecfc1025ced16342873a17c" dependencies = [ "Inflector", "num-format", @@ -10256,35 +10270,13 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" -[[package]] -name = "strum" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" -dependencies = [ - "strum_macros 0.23.1", -] - [[package]] name = "strum" version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" dependencies = [ - "strum_macros 0.24.2", -] - -[[package]] -name = "strum_macros" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" -dependencies = [ - "heck 0.3.3", - "proc-macro2", - "quote", - "rustversion", - "syn", + "strum_macros", ] [[package]] @@ -10293,7 +10285,7 @@ version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4faebde00e8ff94316c01800f9054fd2ba77d30d9e922541913051d1d978918b" dependencies = [ - "heck 0.4.0", + "heck", "proc-macro2", "quote", "rustversion", @@ -10316,7 +10308,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "platforms", ] @@ -10324,7 +10316,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -10345,7 +10337,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "futures-util", "hyper", @@ -10358,7 +10350,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "jsonrpsee", "log", @@ -10379,14 +10371,14 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "ansi_term", "build-helper", "cargo_metadata", "filetime", "sp-maybe-compressed-blob", - "strum 0.23.0", + "strum", "tempfile", "toml", "walkdir", @@ -10401,9 +10393,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.98" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" +checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" dependencies = [ "proc-macro2", "quote", @@ -10486,18 +10478,18 @@ checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" [[package]] name = "thiserror" -version = "1.0.31" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" +checksum = "f5f6586b7f764adc0231f4c79be7b920e766bb2f3e51b3661cdb263828f19994" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.31" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" +checksum = "12bafc5b54507e0149cdf1b145a5d80ab80a90bcd9275df43d4fff68460f6c21" dependencies = [ "proc-macro2", "quote", @@ -10599,9 +10591,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.20.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57aec3cfa4c296db7255446efb4928a6be304b431a806216105542a67b6ca82e" +checksum = "7a8325f63a7d4774dd041e363b2409ed1c5cbbd0f867795e661df066b2b0a581" dependencies = [ "autocfg", "bytes", @@ -10683,9 +10675,9 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.35" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160" +checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" dependencies = [ "cfg-if 1.0.0", "pin-project-lite 0.2.9", @@ -10706,9 +10698,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.28" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7" +checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" dependencies = [ "once_cell", "valuable", @@ -10726,8 +10718,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -10737,8 +10729,8 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "expander 0.0.6", "proc-macro-crate", @@ -10753,10 +10745,8 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" dependencies = [ - "ahash", "lazy_static", "log", - "lru 0.7.7", "tracing-core", ] @@ -10867,7 +10857,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.26#e8a7d161f39db70cb27fdad6c6e215cf493ebc3b" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" dependencies = [ "clap", "jsonrpsee", @@ -10948,9 +10938,9 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7" +checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" [[package]] name = "unicode-normalization" @@ -10961,12 +10951,6 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "unicode-segmentation" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" - [[package]] name = "unicode-width" version = "0.1.9" @@ -10985,7 +10969,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" dependencies = [ - "generic-array 0.14.5", + "generic-array 0.14.6", "subtle", ] @@ -11100,9 +11084,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.81" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994" +checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -11110,13 +11094,13 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.81" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5491a68ab4500fa6b4d726bd67408630c3dbe9c4fe7bda16d5c82a1fd8c7340a" +checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" dependencies = [ "bumpalo", - "lazy_static", "log", + "once_cell", "proc-macro2", "quote", "syn", @@ -11125,9 +11109,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.31" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de9a9cec1733468a8c657e57fa2413d2ae2c0129b95e87c5b72b8ace4d13f31f" +checksum = "fa76fb221a1f8acddf5b54ace85912606980ad661ac7a503b4570ffd3a624dad" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -11137,9 +11121,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.81" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa" +checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -11147,9 +11131,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.81" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048" +checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" dependencies = [ "proc-macro2", "quote", @@ -11160,9 +11144,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.81" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a89911bd99e5f3659ec4acf9c4d93b0a90fe4a2a11f15328472058edc5261be" +checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" [[package]] name = "wasm-gc-api" @@ -11235,9 +11219,9 @@ dependencies = [ [[package]] name = "wasmtime" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e76e2b2833bb0ece666ccdbed7b71b617d447da11f1bb61f4f2bab2648f745ee" +checksum = "1f50eadf868ab6a04b7b511460233377d0bfbb92e417b2f6a98b98fef2e098f5" dependencies = [ "anyhow", "backtrace", @@ -11266,9 +11250,9 @@ dependencies = [ [[package]] name = "wasmtime-cache" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "743a9f142d93318262d7e1fe329394ff2e8f86a1df45ae5e4f0eedba215ca5ce" +checksum = "d1df23c642e1376892f3b72f311596976979cbf8b85469680cdd3a8a063d12a2" dependencies = [ "anyhow", "base64", @@ -11286,9 +11270,9 @@ dependencies = [ [[package]] name = "wasmtime-cranelift" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dc0f80afa1ce97083a7168e6b6948d015d6237369e9f4a511d38c9c4ac8fbb9" +checksum = "f264ff6b4df247d15584f2f53d009fbc90032cfdc2605b52b961bffc71b6eccd" dependencies = [ "anyhow", "cranelift-codegen", @@ -11308,9 +11292,9 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0816d9365196f1f447060087e0f87239ccded830bd54970a1168b0c9c8e824c9" +checksum = "839d2820e4b830f4b9e7aa08d4c0acabf4a5036105d639f6dfa1c6891c73bdc6" dependencies = [ "anyhow", "cranelift-entity", @@ -11328,9 +11312,9 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c687f33cfa0f89ec1646929d0ff102087052cf9f0d15533de56526b0da0d1b3" +checksum = "ef0a0bcbfa18b946d890078ba0e1bc76bcc53eccfb40806c0020ec29dcd1bd49" dependencies = [ "addr2line", "anyhow", @@ -11354,9 +11338,9 @@ dependencies = [ [[package]] name = "wasmtime-jit-debug" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b252d1d025f94f3954ba2111f12f3a22826a0764a11c150c2d46623115a69e27" +checksum = "4f4779d976206c458edd643d1ac622b6c37e4a0800a8b1d25dfbf245ac2f2cac" dependencies = [ "lazy_static", "object 0.28.4", @@ -11365,9 +11349,9 @@ dependencies = [ [[package]] name = "wasmtime-runtime" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace251693103c9facbbd7df87a29a75e68016e48bc83c09133f2fda6b575e0ab" +checksum = "b7eb6ffa169eb5dcd18ac9473c817358cd57bc62c244622210566d473397954a" dependencies = [ "anyhow", "backtrace", @@ -11391,9 +11375,9 @@ dependencies = [ [[package]] name = "wasmtime-types" -version = "0.38.1" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d129b0487a95986692af8708ffde9c50b0568dcefd79200941d475713b4f40bb" +checksum = "8d932b0ac5336f7308d869703dd225610a6a3aeaa8e968c52b43eed96cefb1c2" dependencies = [ "cranelift-entity", "serde", @@ -11403,9 +11387,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.58" +version = "0.3.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fed94beee57daf8dd7d51f2b15dc2bcde92d7a72304cdf662a4371008b71b90" +checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1" dependencies = [ "js-sys", "wasm-bindgen", @@ -11441,8 +11425,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "beefy-primitives", "bitvec", @@ -11474,6 +11458,7 @@ dependencies = [ "pallet-multisig", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", + "pallet-nomination-pools-runtime-api", "pallet-offences", "pallet-offences-benchmarking", "pallet-preimage", @@ -11529,8 +11514,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "frame-support", "polkadot-primitives", @@ -11704,8 +11689,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -11718,8 +11703,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "frame-support", "frame-system", @@ -11738,8 +11723,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.26" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "frame-benchmarking", "frame-support", @@ -11756,8 +11741,8 @@ dependencies = [ [[package]] name = "xcm-procedural" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.26#d8785970175dce344f2a6ad1cd88297529a6dd59" +version = "0.9.27" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" dependencies = [ "Inflector", "proc-macro2", @@ -11767,9 +11752,9 @@ dependencies = [ [[package]] name = "yamux" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0608f53c1dc0bad505d03a34bbd49fbf2ad7b51eb036123e896365532745a1" +checksum = "e5d9ba232399af1783a58d8eb26f6b5006fbefe2dc9ef36bd283324792d03ea5" dependencies = [ "futures", "log", @@ -11781,9 +11766,9 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.5.6" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20b578acffd8516a6c3f2a1bdefc1ec37e547bb4e0fb8b6b01a4cafc886b4442" +checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f" dependencies = [ "zeroize_derive", ] diff --git a/node/Cargo.toml b/node/Cargo.toml index ece3204b..98c0fa8d 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -10,11 +10,11 @@ edition = "2021" build = "build.rs" [dependencies] -clap = { version = "3.2.6", features = ["derive"] } +clap = { version = "3.2.15", features = ["derive"] } derive_more = "0.99.2" log = "0.4.17" codec = { package = "parity-scale-codec", version = "3.0.0" } -serde = { version = "1.0.137", features = ["derive"] } +serde = { version = "1.0.140", features = ["derive"] } hex-literal = "0.3.4" jsonrpsee = { version = "0.14.0", features = ["server"] } @@ -22,64 +22,64 @@ jsonrpsee = { version = "0.14.0", features = ["server"] } parachain-template-runtime = { path = "../runtime" } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.26" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.26" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.26" } -sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.27" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.27" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.27" } +sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.26" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.26" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.26" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.26" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.26" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.27" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.27" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.27" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.27" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.27" } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } -cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } -cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.26" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } +cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } +cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } +cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } [features] default = [] diff --git a/node/src/command.rs b/node/src/command.rs index 12958762..5dc04bbb 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -227,9 +227,12 @@ pub fn run() -> Result<()> { cmd.run(config, partials.client.clone(), db, storage) }), - BenchmarkCmd::Overhead(_) => Err("Unsupported benchmarking command".into()), BenchmarkCmd::Machine(cmd) => runner.sync_run(|config| cmd.run(&config, SUBSTRATE_REFERENCE_HARDWARE.clone())), + // NOTE: this allows the Client to leniently implement + // new benchmark commands without requiring a companion MR. + #[allow(unreachable_patterns)] + _ => Err("Benchmarking sub-command unsupported".into()), } }, Some(Subcommand::TryRuntime(cmd)) => { @@ -392,8 +395,8 @@ impl CliConfiguration for RelayChainCli { self.base.base.role(is_dev) } - fn transaction_pool(&self) -> Result { - self.base.base.transaction_pool() + fn transaction_pool(&self, is_dev: bool) -> Result { + self.base.base.transaction_pool(is_dev) } fn state_cache_child_ratio(&self) -> Result> { diff --git a/node/src/service.rs b/node/src/service.rs index aec1ce8e..9b505086 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -28,7 +28,7 @@ use cumulus_relay_chain_rpc_interface::RelayChainRPCInterface; use sc_client_api::ExecutorProvider; use sc_executor::NativeElseWasmExecutor; use sc_network::NetworkService; -use sc_service::{Configuration, PartialComponents, Role, TFullBackend, TFullClient, TaskManager}; +use sc_service::{Configuration, PartialComponents, TFullBackend, TFullClient, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; use sp_api::ConstructRuntimeApi; use sp_keystore::SyncCryptoStorePtr; @@ -257,10 +257,6 @@ where bool, ) -> Result>, sc_service::Error>, { - if matches!(parachain_config.role, Role::Light) { - return Err("Light client not supported!".into()) - } - let parachain_config = prepare_node_config(parachain_config); let params = new_partial::(¶chain_config, build_import_queue)?; diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 345e2652..e1000933 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -16,17 +16,17 @@ codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive scale-info = { version = "2.0.0", default-features = false, features = ["derive"] } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.26" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.27" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } [dev-dependencies] serde = { version = "1.0.132" } # Substrate -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } [features] default = ["std"] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 1e8b8a2b..0d73e9ec 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,68 +12,68 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.26" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } hex-literal = { version = "0.3.4", optional = true } log = { version = "0.4.17", default-features = false } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } -serde = { version = "1.0.137", optional = true, features = ["derive"] } -smallvec = "1.8.1" +serde = { version = "1.0.140", optional = true, features = ["derive"] } +smallvec = "1.9.0" # Local pallet-template = { path = "../pallets/template", default-features = false } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.26" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.26" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.26" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.26" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.27" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.27" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.27" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.26" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.26" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.26" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.26" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.26" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.26" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.27" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.27" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.27" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.27" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.27" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.27" } # Cumulus -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26" } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26" } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26" } -cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26", version = "3.0.0"} -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26" } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26" } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26" } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26" } -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26" } -parachain-info = { git = "https://github.com/paritytech/cumulus", default-features = false, branch = "polkadot-v0.9.26" } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false } +cumulus-pallet-session-benchmarking = {git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false, version = "3.0.0"} +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false } +pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false } +parachain-info = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false } [features] default = [ From fd9771eed9c478d544397ab9a8ccdb0627c06af7 Mon Sep 17 00:00:00 2001 From: Paritytech CI <52199148+paritytech-ci@users.noreply.github.com> Date: Wed, 24 Aug 2022 18:20:19 +0100 Subject: [PATCH 61/91] Auto-Update substrate-parachain-template from polkadot-v0.9.28 (#124) Co-authored-by: substrate-developer-hub --- Cargo.lock | 938 ++++++++++++++++++------------------ node/Cargo.toml | 111 ++--- node/src/chain_spec.rs | 6 +- node/src/service.rs | 9 +- pallets/template/Cargo.toml | 12 +- runtime/Cargo.toml | 92 ++-- 6 files changed, 597 insertions(+), 571 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 43812f65..739f8a72 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -88,6 +88,15 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbf688625d06217d5b1bb0ea9d9c44a1635fd0ee3534466388d18203174f4d11" +[[package]] +name = "android_system_properties" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7ed72e1635e121ca3e79420540282af22da58be50de153d36f81ddc6b83aa9e" +dependencies = [ + "libc", +] + [[package]] name = "ansi_term" version = "0.12.1" @@ -99,9 +108,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.59" +version = "1.0.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c91f1f46651137be86f3a2b9a8359f9ab421d04d941c62b5982e1ca21113adf9" +checksum = "1485d4d2cc45e7b201ee3767015c96faa5904387c9d87c6efdd0fb511f12d305" [[package]] name = "approx" @@ -163,9 +172,9 @@ dependencies = [ [[package]] name = "async-channel" -version = "1.6.1" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319" +checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28" dependencies = [ "concurrent-queue", "event-listener", @@ -204,10 +213,11 @@ dependencies = [ [[package]] name = "async-io" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5e18f61464ae81cde0a23e713ae8fd299580c54d697a35820cfd0625b8b0e07" +checksum = "0ab006897723d9352f63e2b13047177c3982d8d79709d713ce7747a8f19fd1b0" dependencies = [ + "autocfg", "concurrent-queue", "futures-lite", "libc", @@ -232,11 +242,12 @@ dependencies = [ [[package]] name = "async-process" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2c06e30a24e8c78a3987d07f0930edf76ef35e027e7bdb063fccafdad1f60c" +checksum = "02111fd8655a613c25069ea89fc8d9bb89331fa77486eb3bc059ee757cfa481c" dependencies = [ "async-io", + "autocfg", "blocking", "cfg-if 1.0.0", "event-listener", @@ -408,8 +419,9 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ + "async-trait", "beefy-primitives", "fnv", "futures", @@ -420,6 +432,7 @@ dependencies = [ "parking_lot 0.12.1", "sc-chain-spec", "sc-client-api", + "sc-consensus", "sc-finality-grandpa", "sc-keystore", "sc-network", @@ -442,7 +455,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -462,7 +475,7 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "beefy-primitives", "sp-api", @@ -471,7 +484,7 @@ dependencies = [ [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "parity-scale-codec", "scale-info", @@ -684,9 +697,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.10.0" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3" +checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" [[package]] name = "byte-slice-cast" @@ -731,9 +744,9 @@ checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" [[package]] name = "camino" -version = "1.0.9" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "869119e97797867fd90f5e22af7d0bd274bd4635ebb9eb68c04f3f513ae6c412" +checksum = "88ad0e1e3e88dd237a156ab9f571021b8a158caa0ae44b1968a241efb5144c1e" dependencies = [ "serde", ] @@ -823,10 +836,11 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.20" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6127248204b9aba09a362f6c930ef6a78f2c1b2215f8a7b398c06e1083f17af0" +checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" dependencies = [ + "iana-time-zone", "js-sys", "num-integer", "num-traits", @@ -837,9 +851,9 @@ dependencies = [ [[package]] name = "cid" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc949bff6704880faf064c42a4854032ab07bfcf3a4fcb82a57470acededb69c" +checksum = "f6ed9c8b2d17acb8110c46f1da5bf4a696d745e1474a16db0cd2b49cd0249bf2" dependencies = [ "core2", "multibase", @@ -879,9 +893,9 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.16" +version = "3.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3dbbb6653e7c55cc8595ad3e1f7be8f32aba4eb7ff7f0fd1163d4f3d137c0a9" +checksum = "29e724a68d9319343bb3328c9cc2dfde263f4b3142ee1059a9980580171c954b" dependencies = [ "atty", "bitflags", @@ -896,9 +910,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "3.2.15" +version = "3.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ba52acd3b0a5c33aeada5cdaa3267cdc7c594a98731d4268cdc1532f4264cb4" +checksum = "13547f7012c01ab4a0e8f8967730ada8f9fdf419e8b6c792788f39cf4e46eefa" dependencies = [ "heck", "proc-macro-error", @@ -1011,9 +1025,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" +checksum = "dc948ebb96241bb40ab73effeb80d9f93afaad49359d159a5e61be51619fe813" dependencies = [ "libc", ] @@ -1259,7 +1273,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "clap", "parity-scale-codec", @@ -1274,7 +1288,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1298,7 +1312,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1327,7 +1341,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1348,7 +1362,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1373,7 +1387,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -1397,7 +1411,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1425,7 +1439,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "frame-executive", "frame-support", @@ -1443,7 +1457,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1461,8 +1475,9 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ + "bytes", "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", @@ -1491,7 +1506,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1502,7 +1517,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "frame-benchmarking", "frame-support", @@ -1516,7 +1531,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1533,7 +1548,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1552,7 +1567,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "frame-support", "parity-scale-codec", @@ -1568,7 +1583,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1591,7 +1606,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "cumulus-primitives-core", "futures", @@ -1604,10 +1619,11 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "cumulus-primitives-core", "frame-support", + "log", "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", @@ -1623,14 +1639,13 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", "futures", "futures-timer", - "parking_lot 0.12.1", "polkadot-cli", "polkadot-client", "polkadot-service", @@ -1653,7 +1668,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1676,7 +1691,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "async-trait", "backoff", @@ -1703,7 +1718,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1967,9 +1982,9 @@ dependencies = [ [[package]] name = "either" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be" +checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" [[package]] name = "elliptic-curve" @@ -2253,7 +2268,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "parity-scale-codec", ] @@ -2271,7 +2286,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-support", "frame-system", @@ -2293,7 +2308,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "Inflector", "chrono", @@ -2344,7 +2359,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2355,7 +2370,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2371,7 +2386,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-support", "frame-system", @@ -2399,7 +2414,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "bitflags", "frame-metadata", @@ -2413,6 +2428,7 @@ dependencies = [ "scale-info", "serde", "smallvec", + "sp-api", "sp-arithmetic", "sp-core", "sp-core-hashing-proc-macro", @@ -2429,7 +2445,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2441,7 +2457,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2453,7 +2469,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "proc-macro2", "quote", @@ -2463,7 +2479,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-support", "log", @@ -2480,7 +2496,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -2495,7 +2511,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "parity-scale-codec", "sp-api", @@ -2504,7 +2520,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-support", "sp-api", @@ -2514,9 +2530,9 @@ dependencies = [ [[package]] name = "fs-err" -version = "2.7.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bd79fa345a495d3ae89fb7165fec01c0e72f41821d642dda363a1e97975652e" +checksum = "64db3e262960f0662f43a6366788d5f10f7f244b8f7d7d987f560baf5ded5c50" [[package]] name = "fs-swap" @@ -2554,9 +2570,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" +checksum = "ab30e97ab6aacfe635fad58f22c2bb06c8b685f7421eb1e064a729e2a5f481fa" dependencies = [ "futures-channel", "futures-core", @@ -2569,9 +2585,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" +checksum = "2bfc52cbddcfd745bf1740338492bb0bd83d76c67b445f91c5fb29fae29ecaa1" dependencies = [ "futures-core", "futures-sink", @@ -2579,15 +2595,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" +checksum = "d2acedae88d38235936c3922476b10fced7b2b68136f5e3c03c2d5be348a1115" [[package]] name = "futures-executor" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" +checksum = "1d11aa21b5b587a64682c0094c2bdd4df0076c5324961a40cc3abd7f37930528" dependencies = [ "futures-core", "futures-task", @@ -2597,9 +2613,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" +checksum = "93a66fc6d035a26a3ae255a6d2bca35eda63ae4c5512bef54449113f7a1228e5" [[package]] name = "futures-lite" @@ -2618,9 +2634,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" +checksum = "0db9cce532b0eae2ccf2766ab246f114b56b9cf6d445e00c2549fbc100ca045d" dependencies = [ "proc-macro2", "quote", @@ -2629,9 +2645,9 @@ dependencies = [ [[package]] name = "futures-rustls" -version = "0.22.1" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e01fe9932a224b72b45336d96040aa86386d674a31d0af27d800ea7bc8ca97fe" +checksum = "d2411eed028cdf8c8034eaf21f9915f956b6c3abec4d4c7949ee67f0721127bd" dependencies = [ "futures-io", "rustls", @@ -2640,15 +2656,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" +checksum = "ca0bae1fe9752cf7fd9b0064c674ae63f97b37bc714d745cbde0afb7ec4e6765" [[package]] name = "futures-task" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" +checksum = "842fc63b931f4056a24d59de13fb1272134ce261816e063e634ad0c15cdc5306" [[package]] name = "futures-timer" @@ -2658,9 +2674,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.21" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +checksum = "f0828a5471e340229c11c77ca80017937ce3c58cb788a17e5f1c2d5c485a9577" dependencies = [ "futures-channel", "futures-core", @@ -2801,9 +2817,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57" +checksum = "5ca32592cf21ac7ccab1825cd87f6c9b3d9022c44d086172ed0966bec8af30be" dependencies = [ "bytes", "fnv", @@ -3019,6 +3035,19 @@ dependencies = [ "tokio-rustls", ] +[[package]] +name = "iana-time-zone" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad2bfd338099682614d3ee3fe0cd72e0b6a41ca6a87f6a74a3bd593c91650501" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "js-sys", + "wasm-bindgen", + "winapi", +] + [[package]] name = "idna" version = "0.2.3" @@ -3130,9 +3159,9 @@ checksum = "ec58677acfea8a15352d42fc87d11d63596ade9239e0a7c9352914417515dbe6" [[package]] name = "io-lifetimes" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24c3f4eff5495aee4c0399d7b6a0dc2b6e81be84242ffbfcf253ebacccc1d0cb" +checksum = "1ea37f355c05dde75b84bba2d767906ad522e97cd9e2eef2be7a4ab7fb442c06" [[package]] name = "ip_network" @@ -3199,9 +3228,9 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.14.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11e017217fcd18da0a25296d3693153dd19c8a6aadab330b3595285d075385d1" +checksum = "8bd0d559d5e679b1ab2f869b486a11182923863b1b3ee8b421763cdd707b783a" dependencies = [ "jsonrpsee-core", "jsonrpsee-http-server", @@ -3214,9 +3243,9 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.14.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce395539a14d3ad4ec1256fde105abd36a2da25d578a291cabe98f45adfdb111" +checksum = "8752740ecd374bcbf8b69f3e80b0327942df76f793f8d4e60d3355650c31fb74" dependencies = [ "futures-util", "http", @@ -3235,9 +3264,9 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.14.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16efcd4477de857d4a2195a45769b2fe9ebb54f3ef5a4221d3b014a4fe33ec0b" +checksum = "f3dc3e9cf2ba50b7b1d7d76a667619f82846caa39e8e8daa8a4962d74acaddca" dependencies = [ "anyhow", "arrayvec 0.7.2", @@ -3248,6 +3277,7 @@ dependencies = [ "futures-timer", "futures-util", "globset", + "http", "hyper", "jsonrpsee-types", "lazy_static", @@ -3260,14 +3290,15 @@ dependencies = [ "thiserror", "tokio", "tracing", + "tracing-futures", "unicase", ] [[package]] name = "jsonrpsee-http-server" -version = "0.14.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdd69efeb3ce2cba767f126872f4eeb4624038a29098e75d77608b2b4345ad03" +checksum = "03802f0373a38c2420c70b5144742d800b509e2937edc4afb116434f07120117" dependencies = [ "futures-channel", "futures-util", @@ -3278,13 +3309,14 @@ dependencies = [ "serde_json", "tokio", "tracing", + "tracing-futures", ] [[package]] name = "jsonrpsee-proc-macros" -version = "0.14.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "874cf3f6a027cebf36cae767feca9aa2e8a8f799880e49eb5540819fcbd8eada" +checksum = "bd67957d4280217247588ac86614ead007b301ca2fa9f19c19f880a536f029e3" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -3294,9 +3326,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.14.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bcf76cd316f5d3ad48138085af1f45e2c58c98e02f0779783dbb034d43f7c86" +checksum = "e290bba767401b646812f608c099b922d8142603c9e73a50fb192d3ac86f4a0d" dependencies = [ "anyhow", "beef", @@ -3308,10 +3340,11 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.14.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee043cb5dd0d51d3eb93432e998d5bae797691a7b10ec4a325e036bcdb48c48a" +checksum = "6ee5feddd5188e62ac08fcf0e56478138e581509d4730f3f7be9b57dd402a4ff" dependencies = [ + "http", "jsonrpsee-client-transport", "jsonrpsee-core", "jsonrpsee-types", @@ -3319,12 +3352,13 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-server" -version = "0.14.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bd2e4d266774a671f8def3794255b28eddd09b18d76e0b913fa439f34588c0a" +checksum = "d488ba74fb369e5ab68926feb75a483458b88e768d44319f37e4ecad283c7325" dependencies = [ "futures-channel", "futures-util", + "http", "jsonrpsee-core", "jsonrpsee-types", "serde_json", @@ -3333,6 +3367,7 @@ dependencies = [ "tokio-stream", "tokio-util", "tracing", + "tracing-futures", ] [[package]] @@ -3355,8 +3390,8 @@ checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838" [[package]] name = "kusama-runtime" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "beefy-primitives", "bitvec", @@ -3448,8 +3483,8 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "frame-support", "polkadot-primitives", @@ -3520,9 +3555,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.127" +version = "0.2.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505e71a4706fa491e9b1b55f51b95d4037d0821ee40131190475f692b35b009b" +checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5" [[package]] name = "libloading" @@ -3546,9 +3581,9 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.3" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da83a57f3f5ba3680950aa3cbc806fc297bc0b289d42e8942ed528ace71b8145" +checksum = "292a948cd991e376cf75541fe5b97a1081d713c618b4f1b9500f8844e49eb565" [[package]] name = "libp2p" @@ -4308,9 +4343,9 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.5.5" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a79b39c93a7a5a27eeaf9a23b5ff43f1b9e0ad6b1cdd441140ae53c35613fc7" +checksum = "95af15f345b17af2efc8ead6080fb8bc376f8cec1b35277b935637595fe77498" dependencies = [ "libc", ] @@ -4437,9 +4472,9 @@ dependencies = [ [[package]] name = "multihash" -version = "0.16.2" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3db354f401db558759dfc1e568d010a5d4146f4d3f637be1275ec4a3cf09689" +checksum = "1c346cf9999c631f002d8f977c4eaeaa0e6386f16007202308d0b3757522c2cc" dependencies = [ "blake2b_simd", "blake2s_simd", @@ -4735,9 +4770,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" +checksum = "074864da206b4973b84eb91683020dbefd6a8c3f0f38e054d93954e891935e4e" [[package]] name = "opaque-debug" @@ -4760,7 +4795,7 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "orchestra" version = "0.0.1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "async-trait", "dyn-clonable", @@ -4776,7 +4811,7 @@ dependencies = [ [[package]] name = "orchestra-proc-macro" version = "0.0.1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "expander 0.0.6", "itertools", @@ -4798,9 +4833,9 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "6.2.0" +version = "6.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "648001efe5d5c0102d8cea768e348da85d90af8ba91f0bea908f157951493cd4" +checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff" [[package]] name = "owning_ref" @@ -4814,7 +4849,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-support", "frame-system", @@ -4830,7 +4865,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-support", "frame-system", @@ -4846,7 +4881,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-support", "frame-system", @@ -4861,7 +4896,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -4885,7 +4920,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4905,7 +4940,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -4920,7 +4955,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "beefy-primitives", "frame-support", @@ -4936,7 +4971,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -4959,7 +4994,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -4977,7 +5012,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -4996,7 +5031,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "frame-benchmarking", "frame-support", @@ -5016,7 +5051,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5033,7 +5068,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5049,7 +5084,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5072,7 +5107,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5085,7 +5120,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5103,7 +5138,7 @@ dependencies = [ [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5118,7 +5153,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5141,7 +5176,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5157,7 +5192,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5177,7 +5212,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5194,7 +5229,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5211,7 +5246,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5229,7 +5264,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -5244,7 +5279,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5259,7 +5294,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-support", "frame-system", @@ -5276,7 +5311,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5295,7 +5330,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "parity-scale-codec", "sp-api", @@ -5305,7 +5340,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-support", "frame-system", @@ -5322,7 +5357,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5345,7 +5380,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5361,7 +5396,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5376,7 +5411,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5391,7 +5426,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5407,7 +5442,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-support", "frame-system", @@ -5428,7 +5463,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5444,7 +5479,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-support", "frame-system", @@ -5458,7 +5493,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5481,7 +5516,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -5492,7 +5527,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "log", "sp-arithmetic", @@ -5501,7 +5536,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-support", "frame-system", @@ -5530,7 +5565,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5548,7 +5583,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5567,7 +5602,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-support", "frame-system", @@ -5583,7 +5618,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -5598,7 +5633,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5609,7 +5644,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5626,7 +5661,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5642,7 +5677,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-benchmarking", "frame-support", @@ -5656,8 +5691,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "frame-support", "frame-system", @@ -5674,8 +5709,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "frame-benchmarking", "frame-support", @@ -5692,7 +5727,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus?branch=polkadot-v0.9.27#66b684f88eba6c755651b8c47dccad2c2d9ac3db" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -5739,6 +5774,7 @@ dependencies = [ "sc-executor", "sc-keystore", "sc-network", + "sc-network-common", "sc-rpc", "sc-rpc-api", "sc-service", @@ -5854,6 +5890,7 @@ dependencies = [ "arrayvec 0.7.2", "bitvec", "byte-slice-cast", + "bytes", "impl-trait-for-tuples", "parity-scale-codec-derive", "serde", @@ -6011,9 +6048,9 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" [[package]] name = "pest" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69486e2b8c2d2aeb9762db7b4e00b0331156393555cff467f4163ff06821eef8" +checksum = "4b0560d531d1febc25a3c9398a62a71256c0178f2e3443baedd9ad4bb8c9deb4" dependencies = [ "thiserror", "ucd-trie", @@ -6021,9 +6058,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b13570633aff33c6d22ce47dd566b10a3b9122c2fe9d8e7501895905be532b91" +checksum = "905708f7f674518498c1f8d644481440f476d39ca6ecae83319bba7c6c12da91" dependencies = [ "pest", "pest_generator", @@ -6031,9 +6068,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3c567e5702efdc79fb18859ea74c3eb36e14c43da7b8c1f098a4ed6514ec7a0" +checksum = "5803d8284a629cc999094ecd630f55e91b561a1d1ba75e233b00ae13b91a69ad" dependencies = [ "pest", "pest_meta", @@ -6044,9 +6081,9 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eb32be5ee3bbdafa8c7a18b0a8a8d962b66cfa2ceee4037f49267a50ee821fe" +checksum = "1538eb784f07615c6d9a8ab061089c6c54a344c5b4301db51990ca1c241e8c04" dependencies = [ "once_cell", "pest", @@ -6065,18 +6102,18 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260" +checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74" +checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" dependencies = [ "proc-macro2", "quote", @@ -6115,8 +6152,8 @@ checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "futures", "polkadot-node-network-protocol", @@ -6130,8 +6167,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "futures", "polkadot-node-network-protocol", @@ -6144,8 +6181,8 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "derive_more", "fatality", @@ -6167,8 +6204,8 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "fatality", "futures", @@ -6188,8 +6225,8 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "clap", "frame-benchmarking-cli", @@ -6214,8 +6251,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -6254,8 +6291,8 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "always-assert", "fatality", @@ -6275,8 +6312,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -6288,8 +6325,8 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "derive_more", "fatality", @@ -6311,8 +6348,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6325,8 +6362,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "futures", "futures-timer", @@ -6345,8 +6382,8 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "always-assert", "async-trait", @@ -6361,6 +6398,7 @@ dependencies = [ "polkadot-overseer", "polkadot-primitives", "sc-network", + "sc-network-common", "sp-consensus", "thiserror", "tracing-gum", @@ -6368,8 +6406,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "futures", "parity-scale-codec", @@ -6386,8 +6424,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "bitvec", "derive_more", @@ -6415,8 +6453,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "bitvec", "futures", @@ -6435,8 +6473,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "bitvec", "fatality", @@ -6454,8 +6492,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "futures", "polkadot-node-subsystem", @@ -6469,8 +6507,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "async-trait", "futures", @@ -6487,8 +6525,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "futures", "polkadot-node-subsystem", @@ -6502,8 +6540,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "futures", "futures-timer", @@ -6519,8 +6557,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "fatality", "futures", @@ -6538,8 +6576,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "async-trait", "futures", @@ -6555,8 +6593,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "bitvec", "fatality", @@ -6573,8 +6611,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "always-assert", "assert_matches", @@ -6605,8 +6643,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "futures", "polkadot-node-primitives", @@ -6621,8 +6659,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "futures", "memory-lru", @@ -6637,8 +6675,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "async-std", "lazy_static", @@ -6655,8 +6693,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "bs58", "futures", @@ -6674,13 +6712,14 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "async-trait", "derive_more", "fatality", "futures", + "hex", "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", @@ -6695,8 +6734,8 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "bounded-vec", "futures", @@ -6717,8 +6756,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -6727,8 +6766,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "async-trait", "derive_more", @@ -6750,8 +6789,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "async-trait", "derive_more", @@ -6783,8 +6822,8 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "async-trait", "futures", @@ -6806,8 +6845,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "derive_more", "frame-support", @@ -6823,8 +6862,8 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "env_logger", "kusama-runtime", @@ -6838,8 +6877,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "bitvec", "frame-system", @@ -6868,8 +6907,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -6900,8 +6939,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "beefy-primitives", "bitvec", @@ -6933,6 +6972,8 @@ dependencies = [ "pallet-indices", "pallet-membership", "pallet-multisig", + "pallet-nomination-pools", + "pallet-nomination-pools-benchmarking", "pallet-offences", "pallet-offences-benchmarking", "pallet-preimage", @@ -6985,8 +7026,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "beefy-primitives", "bitvec", @@ -7032,8 +7073,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "frame-support", "polkadot-primitives", @@ -7044,8 +7085,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "bs58", "parity-scale-codec", @@ -7056,8 +7097,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "bitflags", "bitvec", @@ -7099,8 +7140,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "async-trait", "beefy-gadget", @@ -7162,11 +7203,11 @@ dependencies = [ "sc-consensus", "sc-consensus-babe", "sc-consensus-slots", - "sc-consensus-uncles", "sc-executor", "sc-finality-grandpa", "sc-keystore", "sc-network", + "sc-network-common", "sc-offchain", "sc-service", "sc-sync-state-rpc", @@ -7202,8 +7243,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "arrayvec 0.5.2", "fatality", @@ -7223,8 +7264,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7233,10 +7274,11 @@ dependencies = [ [[package]] name = "polling" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259" +checksum = "899b00b9c8ab553c743b3e11e87c5c7d423b2a2de229ba95b24a756344748011" dependencies = [ + "autocfg", "cfg-if 1.0.0", "libc", "log", @@ -7289,7 +7331,7 @@ dependencies = [ [[package]] name = "prioritized-metered-channel" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "coarsetime", "crossbeam-queue", @@ -7303,9 +7345,9 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d50bfb8c23f23915855a00d98b5a35ef2e0b871bb52937bacadb798fbb66c8" +checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" dependencies = [ "once_cell", "thiserror", @@ -7727,7 +7769,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "env_logger", "jsonrpsee", @@ -7760,12 +7802,6 @@ dependencies = [ "quick-error", ] -[[package]] -name = "retain_mut" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4389f1d5789befaf6029ebd9f7dac4af7f7e3d61b69d4f30e2ac02b57e7712b0" - [[package]] name = "rfc6979" version = "0.1.0" @@ -7804,8 +7840,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -7873,8 +7909,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "frame-support", "polkadot-primitives", @@ -7951,13 +7987,13 @@ dependencies = [ [[package]] name = "rustix" -version = "0.35.7" +version = "0.35.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d51cc38aa10f6bbb377ed28197aa052aa4e2b762c22be9d3153d01822587e787" +checksum = "72c825b8aa8010eb9ee99b75f05e10180b9278d161583034d7574c9d617aeada" dependencies = [ "bitflags", "errno", - "io-lifetimes 0.7.2", + "io-lifetimes 0.7.3", "libc", "linux-raw-sys 0.0.46", "windows-sys", @@ -8040,7 +8076,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "log", "sp-core", @@ -8051,9 +8087,8 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ - "async-trait", "futures", "futures-timer", "ip_network", @@ -8065,6 +8100,7 @@ dependencies = [ "rand 0.7.3", "sc-client-api", "sc-network", + "sc-network-common", "sp-api", "sp-authority-discovery", "sp-blockchain", @@ -8078,7 +8114,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "futures", "futures-timer", @@ -8101,7 +8137,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8117,10 +8153,10 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "impl-trait-for-tuples", - "memmap2 0.5.5", + "memmap2 0.5.7", "parity-scale-codec", "sc-chain-spec-derive", "sc-network", @@ -8134,7 +8170,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8145,7 +8181,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "chrono", "clap", @@ -8184,7 +8220,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "fnv", "futures", @@ -8212,7 +8248,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "hash-db", "kvdb", @@ -8237,7 +8273,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "async-trait", "futures", @@ -8261,7 +8297,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "async-trait", "futures", @@ -8290,7 +8326,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "async-trait", "fork-tree", @@ -8303,7 +8339,6 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", "rand 0.7.3", - "retain_mut", "sc-client-api", "sc-consensus", "sc-consensus-epochs", @@ -8333,7 +8368,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "futures", "jsonrpsee", @@ -8355,7 +8390,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8368,7 +8403,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "async-trait", "futures", @@ -8390,21 +8425,10 @@ dependencies = [ "thiserror", ] -[[package]] -name = "sc-consensus-uncles" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" -dependencies = [ - "sc-client-api", - "sp-authorship", - "sp-runtime", - "thiserror", -] - [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "lazy_static", "lru 0.7.8", @@ -8431,14 +8455,13 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "environmental", "parity-scale-codec", "sc-allocator", "sp-maybe-compressed-blob", "sp-sandbox", - "sp-serializer", "sp-wasm-interface", "thiserror", "wasm-instrument", @@ -8448,7 +8471,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "log", "parity-scale-codec", @@ -8463,7 +8486,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "cfg-if 1.0.0", "libc", @@ -8471,7 +8494,7 @@ dependencies = [ "once_cell", "parity-scale-codec", "parity-wasm 0.42.2", - "rustix 0.35.7", + "rustix 0.35.9", "sc-allocator", "sc-executor-common", "sp-runtime-interface", @@ -8483,7 +8506,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "ahash", "async-trait", @@ -8524,7 +8547,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "finality-grandpa", "futures", @@ -8545,7 +8568,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "ansi_term", "futures", @@ -8553,7 +8576,7 @@ dependencies = [ "log", "parity-util-mem", "sc-client-api", - "sc-network", + "sc-network-common", "sc-transaction-pool-api", "sp-blockchain", "sp-runtime", @@ -8562,7 +8585,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "async-trait", "hex", @@ -8577,7 +8600,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "async-trait", "asynchronous-codec", @@ -8626,9 +8649,11 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ + "async-trait", "bitflags", + "bytes", "futures", "libp2p", "parity-scale-codec", @@ -8639,12 +8664,13 @@ dependencies = [ "sp-consensus", "sp-finality-grandpa", "sp-runtime", + "thiserror", ] [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "ahash", "futures", @@ -8653,6 +8679,7 @@ dependencies = [ "log", "lru 0.7.8", "sc-network", + "sc-network-common", "sp-runtime", "substrate-prometheus-endpoint", "tracing", @@ -8661,9 +8688,10 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "futures", + "hex", "libp2p", "log", "parity-scale-codec", @@ -8681,10 +8709,11 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "fork-tree", "futures", + "hex", "libp2p", "log", "lru 0.7.8", @@ -8708,7 +8737,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "bytes", "fnv", @@ -8724,6 +8753,7 @@ dependencies = [ "rand 0.7.3", "sc-client-api", "sc-network", + "sc-network-common", "sc-utils", "sp-api", "sp-core", @@ -8736,7 +8766,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "futures", "libp2p", @@ -8749,7 +8779,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8758,7 +8788,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "futures", "hash-db", @@ -8788,7 +8818,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "futures", "jsonrpsee", @@ -8811,7 +8841,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "futures", "jsonrpsee", @@ -8824,7 +8854,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "async-trait", "directories", @@ -8891,7 +8921,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "log", "parity-scale-codec", @@ -8905,7 +8935,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -8924,7 +8954,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "futures", "libc", @@ -8943,7 +8973,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "chrono", "futures", @@ -8961,7 +8991,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "ansi_term", "atty", @@ -8992,7 +9022,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9003,7 +9033,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "futures", "futures-timer", @@ -9012,7 +9042,6 @@ dependencies = [ "parity-scale-codec", "parity-util-mem", "parking_lot 0.12.1", - "retain_mut", "sc-client-api", "sc-transaction-pool-api", "sc-utils", @@ -9030,7 +9059,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "futures", "log", @@ -9043,7 +9072,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "futures", "futures-timer", @@ -9164,9 +9193,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.6.1" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" +checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" dependencies = [ "bitflags", "core-foundation", @@ -9211,18 +9240,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.142" +version = "1.0.144" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e590c437916fb6b221e1d00df6e3294f3fccd70ca7e92541c475d6ed6ef5fee2" +checksum = "0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.142" +version = "1.0.144" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34b5b8d809babe02f538c2cfec6f2c1ed10804c0e5a6a041a049a4f5588ccc2e" +checksum = "94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00" dependencies = [ "proc-macro2", "quote", @@ -9231,9 +9260,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.83" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38dd04e3c8279e75b31ef29dbdceebfe5ad89f4d0937213c53f7d49d01b3d5a7" +checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" dependencies = [ "itoa 1.0.3", "ryu", @@ -9404,8 +9433,8 @@ checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" [[package]] name = "slot-range-helper" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "enumn", "parity-scale-codec", @@ -9481,7 +9510,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "hash-db", "log", @@ -9498,7 +9527,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "blake2", "proc-macro-crate", @@ -9510,7 +9539,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "parity-scale-codec", "scale-info", @@ -9523,7 +9552,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "integer-sqrt", "num-traits", @@ -9538,7 +9567,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "parity-scale-codec", "scale-info", @@ -9551,7 +9580,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "async-trait", "parity-scale-codec", @@ -9563,7 +9592,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "parity-scale-codec", "sp-api", @@ -9575,7 +9604,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "futures", "log", @@ -9593,7 +9622,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "async-trait", "futures", @@ -9612,7 +9641,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "async-trait", "parity-scale-codec", @@ -9630,7 +9659,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "async-trait", "merlin", @@ -9653,7 +9682,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "parity-scale-codec", "scale-info", @@ -9667,7 +9696,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "parity-scale-codec", "scale-info", @@ -9680,7 +9709,7 @@ dependencies = [ [[package]] name = "sp-core" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "base58", "bitflags", @@ -9726,7 +9755,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "blake2", "byteorder", @@ -9740,7 +9769,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "proc-macro2", "quote", @@ -9751,7 +9780,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -9760,7 +9789,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "proc-macro2", "quote", @@ -9770,7 +9799,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "environmental", "parity-scale-codec", @@ -9781,7 +9810,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "finality-grandpa", "log", @@ -9799,7 +9828,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9813,8 +9842,9 @@ dependencies = [ [[package]] name = "sp-io" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ + "bytes", "futures", "hash-db", "libsecp256k1", @@ -9838,7 +9868,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "lazy_static", "sp-core", @@ -9849,7 +9879,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "async-trait", "futures", @@ -9866,7 +9896,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "thiserror", "zstd", @@ -9875,7 +9905,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "log", "parity-scale-codec", @@ -9890,7 +9920,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "parity-scale-codec", "scale-info", @@ -9904,7 +9934,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "sp-api", "sp-core", @@ -9914,7 +9944,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "backtrace", "lazy_static", @@ -9924,7 +9954,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "rustc-hash", "serde", @@ -9934,7 +9964,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "either", "hash256-std-hasher", @@ -9956,8 +9986,9 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ + "bytes", "impl-trait-for-tuples", "parity-scale-codec", "primitive-types", @@ -9973,7 +10004,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "Inflector", "proc-macro-crate", @@ -9985,7 +10016,7 @@ dependencies = [ [[package]] name = "sp-sandbox" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "log", "parity-scale-codec", @@ -9996,19 +10027,10 @@ dependencies = [ "wasmi", ] -[[package]] -name = "sp-serializer" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" -dependencies = [ - "serde", - "serde_json", -] - [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "parity-scale-codec", "scale-info", @@ -10022,7 +10044,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "parity-scale-codec", "scale-info", @@ -10033,7 +10055,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "hash-db", "log", @@ -10055,12 +10077,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" [[package]] name = "sp-storage" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10073,7 +10095,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "log", "sp-core", @@ -10086,7 +10108,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "async-trait", "futures-timer", @@ -10102,7 +10124,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "parity-scale-codec", "sp-std", @@ -10114,7 +10136,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "sp-api", "sp-runtime", @@ -10123,7 +10145,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "async-trait", "log", @@ -10139,7 +10161,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "hash-db", "memory-db", @@ -10155,7 +10177,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10172,7 +10194,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10183,7 +10205,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "impl-trait-for-tuples", "log", @@ -10201,9 +10223,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "ss58-registry" -version = "1.25.0" +version = "1.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a039906277e0d8db996cd9d1ef19278c10209d994ecfc1025ced16342873a17c" +checksum = "1c8a1e645fa0bd3e81a90e592a677f7ada3182ac338c4a71cd9ec0ba911f6abb" dependencies = [ "Inflector", "num-format", @@ -10281,9 +10303,9 @@ dependencies = [ [[package]] name = "strum_macros" -version = "0.24.2" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4faebde00e8ff94316c01800f9054fd2ba77d30d9e922541913051d1d978918b" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ "heck", "proc-macro2", @@ -10308,7 +10330,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "platforms", ] @@ -10316,7 +10338,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -10337,7 +10359,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "futures-util", "hyper", @@ -10350,7 +10372,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "jsonrpsee", "log", @@ -10371,7 +10393,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "ansi_term", "build-helper", @@ -10718,8 +10740,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -10729,8 +10751,8 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "expander 0.0.6", "proc-macro-crate", @@ -10857,7 +10879,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.27#8eff668a42325aeb4433eace1604f4d286a6ec05" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" dependencies = [ "clap", "jsonrpsee", @@ -11425,8 +11447,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "beefy-primitives", "bitvec", @@ -11514,8 +11536,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "frame-support", "polkadot-primitives", @@ -11689,8 +11711,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -11703,8 +11725,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "frame-support", "frame-system", @@ -11723,8 +11745,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "frame-benchmarking", "frame-support", @@ -11741,8 +11763,8 @@ dependencies = [ [[package]] name = "xcm-procedural" -version = "0.9.27" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.27#b017bad50d360a1c6e3cdf9652bdb85e5f479fea" +version = "0.9.28" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" dependencies = [ "Inflector", "proc-macro2", diff --git a/node/Cargo.toml b/node/Cargo.toml index 98c0fa8d..abd07afb 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -10,76 +10,77 @@ edition = "2021" build = "build.rs" [dependencies] -clap = { version = "3.2.15", features = ["derive"] } +clap = { version = "3.2.17", features = ["derive"] } derive_more = "0.99.2" log = "0.4.17" codec = { package = "parity-scale-codec", version = "3.0.0" } -serde = { version = "1.0.140", features = ["derive"] } +serde = { version = "1.0.143", features = ["derive"] } hex-literal = "0.3.4" -jsonrpsee = { version = "0.14.0", features = ["server"] } +jsonrpsee = { version = "0.15.1", features = ["server"] } # Local parachain-template-runtime = { path = "../runtime" } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.27" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.27" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.27" } -sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.28" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.28" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sc-network-common = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.28" } +sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.27" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.27" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.27" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.27" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.27" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.28" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.28" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.28" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.28" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.28" } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } -cumulus-client-collator = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } -cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } +cumulus-client-collator = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } +cumulus-client-network = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } +cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } [features] default = [] diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index afb76068..b6d01860 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -14,7 +14,7 @@ pub type ChainSpec = const SAFE_XCM_VERSION: u32 = xcm::prelude::XCM_VERSION; /// Helper function to generate a crypto pair from seed -pub fn get_public_from_seed(seed: &str) -> ::Public { +pub fn get_from_seed(seed: &str) -> ::Public { TPublic::Pair::from_string(&format!("//{}", seed), None) .expect("static values are valid; qed") .public() @@ -43,7 +43,7 @@ type AccountPublic = ::Signer; /// /// This function's return type must always match the session keys of the chain in tuple format. pub fn get_collator_keys_from_seed(seed: &str) -> AuraId { - get_public_from_seed::(seed) + get_from_seed::(seed) } /// Helper function to generate an account ID from seed @@ -51,7 +51,7 @@ pub fn get_account_id_from_seed(seed: &str) -> AccountId where AccountPublic: From<::Public>, { - AccountPublic::from(get_public_from_seed::(seed)).into_account() + AccountPublic::from(get_from_seed::(seed)).into_account() } /// Generate the session keys from individual elements. diff --git a/node/src/service.rs b/node/src/service.rs index 9b505086..9ad3c38e 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -22,12 +22,13 @@ use cumulus_client_service::{ use cumulus_primitives_core::ParaId; use cumulus_relay_chain_inprocess_interface::build_inprocess_relay_chain; use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface, RelayChainResult}; -use cumulus_relay_chain_rpc_interface::RelayChainRPCInterface; +use cumulus_relay_chain_rpc_interface::{create_client_and_start_worker, RelayChainRpcInterface}; // Substrate Imports use sc_client_api::ExecutorProvider; use sc_executor::NativeElseWasmExecutor; use sc_network::NetworkService; +use sc_network_common::service::NetworkBlock; use sc_service::{Configuration, PartialComponents, TFullBackend, TFullClient, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; use sp_api::ConstructRuntimeApi; @@ -176,8 +177,10 @@ async fn build_relay_chain_interface( hwbench: Option, ) -> RelayChainResult<(Arc<(dyn RelayChainInterface + 'static)>, Option)> { match collator_options.relay_chain_rpc_url { - Some(relay_chain_url) => - Ok((Arc::new(RelayChainRPCInterface::new(relay_chain_url).await?) as Arc<_>, None)), + Some(relay_chain_url) => { + let client = create_client_and_start_worker(relay_chain_url, task_manager).await?; + Ok((Arc::new(RelayChainRpcInterface::new(client)) as Arc<_>, None)) + }, None => build_inprocess_relay_chain( polkadot_config, parachain_config, diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index e1000933..0420a6d4 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -16,17 +16,17 @@ codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive scale-info = { version = "2.0.0", default-features = false, features = ["derive"] } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.27" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.28" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } [dev-dependencies] serde = { version = "1.0.132" } # Substrate -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } [features] default = ["std"] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 0d73e9ec..74962385 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,68 +12,68 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.27" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } hex-literal = { version = "0.3.4", optional = true } log = { version = "0.4.17", default-features = false } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } -serde = { version = "1.0.140", optional = true, features = ["derive"] } +serde = { version = "1.0.143", optional = true, features = ["derive"] } smallvec = "1.9.0" # Local pallet-template = { path = "../pallets/template", default-features = false } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.27" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.27" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.27" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.27" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.28" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.28" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.28" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.27" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.27" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.27" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.27" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.27" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.27" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.28" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.28" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.28" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.28" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.28" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.28" } # Cumulus -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false } -cumulus-pallet-session-benchmarking = {git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false, version = "3.0.0"} -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false } -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false } -parachain-info = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.27", default-features = false } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false } +cumulus-pallet-session-benchmarking = {git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false, version = "3.0.0"} +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false } +pallet-collator-selection = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false } +parachain-info = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false } [features] default = [ From 8c2b74a4bc524b6b9f058fb095713492d34b91bd Mon Sep 17 00:00:00 2001 From: Paritytech CI <52199148+paritytech-ci@users.noreply.github.com> Date: Fri, 30 Sep 2022 01:04:26 +0200 Subject: [PATCH 62/91] update lock only 0.9.28 --- Cargo.lock | 795 ++++++++++++++++++++++++++--------------------------- 1 file changed, 397 insertions(+), 398 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 739f8a72..7d05d5e1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -75,9 +75,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "0.7.18" +version = "0.7.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" dependencies = [ "memchr", ] @@ -90,9 +90,9 @@ checksum = "fbf688625d06217d5b1bb0ea9d9c44a1635fd0ee3534466388d18203174f4d11" [[package]] name = "android_system_properties" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7ed72e1635e121ca3e79420540282af22da58be50de153d36f81ddc6b83aa9e" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" dependencies = [ "libc", ] @@ -108,9 +108,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.62" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1485d4d2cc45e7b201ee3767015c96faa5904387c9d87c6efdd0fb511f12d305" +checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" [[package]] name = "approx" @@ -197,9 +197,9 @@ dependencies = [ [[package]] name = "async-global-executor" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5262ed948da60dd8956c6c5aca4d4163593dddb7b32d73267c93dab7b2e98940" +checksum = "0da5b41ee986eed3f524c380e6d64965aea573882a8907682ad100f7859305ca" dependencies = [ "async-channel", "async-executor", @@ -207,15 +207,14 @@ dependencies = [ "async-lock", "blocking", "futures-lite", - "num_cpus", "once_cell", ] [[package]] name = "async-io" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab006897723d9352f63e2b13047177c3982d8d79709d713ce7747a8f19fd1b0" +checksum = "83e21f3a490c72b3b0cf44962180e60045de2925d8dff97918f7ee43c8f637c7" dependencies = [ "autocfg", "concurrent-queue", @@ -419,7 +418,7 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "async-trait", "beefy-primitives", @@ -455,7 +454,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -475,7 +474,7 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "beefy-primitives", "sp-api", @@ -484,7 +483,7 @@ dependencies = [ [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "parity-scale-codec", "scale-info", @@ -553,7 +552,7 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9cf849ee05b2ee5fba5e36f97ff8ec2533916700fc0758d40d92136a42f3388" dependencies = [ - "digest 0.10.3", + "digest 0.10.5", ] [[package]] @@ -599,7 +598,7 @@ dependencies = [ "cc", "cfg-if 1.0.0", "constant_time_eq", - "digest 0.10.3", + "digest 0.10.5", ] [[package]] @@ -626,9 +625,9 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" dependencies = [ "generic-array 0.14.6", ] @@ -768,7 +767,7 @@ checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" dependencies = [ "camino", "cargo-platform", - "semver 1.0.13", + "semver 1.0.14", "serde", "serde_json", ] @@ -893,9 +892,9 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.17" +version = "3.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29e724a68d9319343bb3328c9cc2dfde263f4b3142ee1059a9980580171c954b" +checksum = "86447ad904c7fb335a790c9d7fe3d0d971dc523b8ccd1561a520de9a85302750" dependencies = [ "atty", "bitflags", @@ -910,9 +909,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "3.2.17" +version = "3.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13547f7012c01ab4a0e8f8967730ada8f9fdf419e8b6c792788f39cf4e46eefa" +checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65" dependencies = [ "heck", "proc-macro-error", @@ -953,9 +952,9 @@ dependencies = [ [[package]] name = "comfy-table" -version = "6.0.0" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121d8a5b0346092c18a4b2fd6f620d7a06f0eb7ac0a45860939a0884bc579c56" +checksum = "85914173c2f558d61613bfbbf1911f14e630895087a7ed2fafc0f5319e1536e7" dependencies = [ "strum", "strum_macros", @@ -1025,9 +1024,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc948ebb96241bb40ab73effeb80d9f93afaad49359d159a5e61be51619fe813" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" dependencies = [ "libc", ] @@ -1205,7 +1204,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21" dependencies = [ "generic-array 0.14.6", - "rand_core 0.6.3", + "rand_core 0.6.4", "subtle", "zeroize", ] @@ -1273,7 +1272,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "clap", "parity-scale-codec", @@ -1288,7 +1287,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1312,7 +1311,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1341,7 +1340,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1362,7 +1361,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1387,7 +1386,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -1411,7 +1410,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1439,7 +1438,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "frame-executive", "frame-support", @@ -1457,7 +1456,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1475,7 +1474,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -1506,7 +1505,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1517,7 +1516,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "frame-benchmarking", "frame-support", @@ -1531,7 +1530,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1548,7 +1547,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1567,7 +1566,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "frame-support", "parity-scale-codec", @@ -1583,7 +1582,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1606,7 +1605,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "cumulus-primitives-core", "futures", @@ -1619,7 +1618,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1639,7 +1638,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1668,7 +1667,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1691,7 +1690,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "async-trait", "backoff", @@ -1718,7 +1717,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1762,7 +1761,7 @@ checksum = "4033478fbf70d6acf2655ac70da91ee65852d69daf7a67bf7a2f518fb47aafcf" dependencies = [ "byteorder", "digest 0.9.0", - "rand_core 0.6.3", + "rand_core 0.6.4", "subtle", "zeroize", ] @@ -1846,11 +1845,11 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.3" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" +checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" dependencies = [ - "block-buffer 0.10.2", + "block-buffer 0.10.3", "crypto-common", "subtle", ] @@ -1998,7 +1997,7 @@ dependencies = [ "ff", "generic-array 0.14.6", "group", - "rand_core 0.6.3", + "rand_core 0.6.4", "sec1", "subtle", "zeroize", @@ -2049,9 +2048,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" +checksum = "c90bf5f19754d10198ccb95b70664fc925bd1fc090a0fd9a6ebc54acc8cd6272" dependencies = [ "atty", "humantime", @@ -2188,7 +2187,7 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "131655483be284720a17d74ff97592b8e76576dc25563148601df2d7c9080924" dependencies = [ - "rand_core 0.6.3", + "rand_core 0.6.4", "subtle", ] @@ -2268,25 +2267,24 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "parity-scale-codec", ] [[package]] name = "form_urlencoded" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" dependencies = [ - "matches", "percent-encoding", ] [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-support", "frame-system", @@ -2308,7 +2306,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "Inflector", "chrono", @@ -2359,7 +2357,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2370,7 +2368,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2386,7 +2384,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-support", "frame-system", @@ -2414,7 +2412,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "bitflags", "frame-metadata", @@ -2445,7 +2443,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "Inflector", "frame-support-procedural-tools", @@ -2457,7 +2455,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2469,7 +2467,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "proc-macro2", "quote", @@ -2479,7 +2477,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-support", "log", @@ -2496,7 +2494,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -2511,7 +2509,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "parity-scale-codec", "sp-api", @@ -2520,7 +2518,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-support", "sp-api", @@ -2570,9 +2568,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab30e97ab6aacfe635fad58f22c2bb06c8b685f7421eb1e064a729e2a5f481fa" +checksum = "7f21eda599937fba36daeb58a22e8f5cee2d14c4a17b5b7739c7c8e5e3b8230c" dependencies = [ "futures-channel", "futures-core", @@ -2585,9 +2583,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bfc52cbddcfd745bf1740338492bb0bd83d76c67b445f91c5fb29fae29ecaa1" +checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050" dependencies = [ "futures-core", "futures-sink", @@ -2595,15 +2593,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2acedae88d38235936c3922476b10fced7b2b68136f5e3c03c2d5be348a1115" +checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf" [[package]] name = "futures-executor" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d11aa21b5b587a64682c0094c2bdd4df0076c5324961a40cc3abd7f37930528" +checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab" dependencies = [ "futures-core", "futures-task", @@ -2613,9 +2611,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93a66fc6d035a26a3ae255a6d2bca35eda63ae4c5512bef54449113f7a1228e5" +checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" [[package]] name = "futures-lite" @@ -2634,9 +2632,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0db9cce532b0eae2ccf2766ab246f114b56b9cf6d445e00c2549fbc100ca045d" +checksum = "42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17" dependencies = [ "proc-macro2", "quote", @@ -2656,15 +2654,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca0bae1fe9752cf7fd9b0064c674ae63f97b37bc714d745cbde0afb7ec4e6765" +checksum = "21b20ba5a92e727ba30e72834706623d94ac93a725410b6a6b6fbc1b07f7ba56" [[package]] name = "futures-task" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "842fc63b931f4056a24d59de13fb1272134ce261816e063e634ad0c15cdc5306" +checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1" [[package]] name = "futures-timer" @@ -2674,9 +2672,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0828a5471e340229c11c77ca80017937ce3c58cb788a17e5f1c2d5c485a9577" +checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90" dependencies = [ "futures-channel", "futures-core", @@ -2811,7 +2809,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5ac374b108929de78460075f3dc439fa66df9d8fc77e8f12caa5165fcf0c89" dependencies = [ "ff", - "rand_core 0.6.3", + "rand_core 0.6.4", "subtle", ] @@ -2836,9 +2834,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.3.3" +version = "4.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360d9740069b2f6cbb63ce2dbaa71a20d3185350cbb990d7bebeb9318415eb17" +checksum = "56b224eaa4987c03c30b251de7ef0c15a6a59f34222905850dbc3026dfb24d5f" dependencies = [ "log", "pest", @@ -2980,9 +2978,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" @@ -3037,13 +3035,14 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.46" +version = "0.1.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad2bfd338099682614d3ee3fe0cd72e0b6a41ca6a87f6a74a3bd593c91650501" +checksum = "237a0714f28b1ee39ccec0770ccb544eb02c9ef2c82bb096230eefcffa6468b0" dependencies = [ "android_system_properties", "core-foundation-sys", "js-sys", + "once_cell", "wasm-bindgen", "winapi", ] @@ -3059,6 +3058,16 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "idna" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + [[package]] name = "if-addrs" version = "0.7.0" @@ -3189,9 +3198,9 @@ checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b" [[package]] name = "itertools" -version = "0.10.3" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" dependencies = [ "either", ] @@ -3219,9 +3228,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.59" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" dependencies = [ "wasm-bindgen", ] @@ -3555,9 +3564,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.132" +version = "0.2.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5" +checksum = "c0f80d65747a3e43d1596c7c5492d95d5edddaabd45a7fcdb02b95f644164966" [[package]] name = "libloading" @@ -3675,7 +3684,7 @@ dependencies = [ "rand 0.8.5", "ring", "rw-stream-sink", - "sha2 0.10.2", + "sha2 0.10.6", "smallvec", "thiserror", "unsigned-varint", @@ -3749,7 +3758,7 @@ dependencies = [ "prost-build", "rand 0.7.3", "regex", - "sha2 0.10.2", + "sha2 0.10.6", "smallvec", "unsigned-varint", "wasm-timer", @@ -3796,7 +3805,7 @@ dependencies = [ "prost", "prost-build", "rand 0.7.3", - "sha2 0.10.2", + "sha2 0.10.6", "smallvec", "thiserror", "uint", @@ -3874,7 +3883,7 @@ dependencies = [ "prost", "prost-build", "rand 0.8.5", - "sha2 0.10.2", + "sha2 0.10.6", "snow", "static_assertions", "x25519-dalek", @@ -3971,7 +3980,7 @@ dependencies = [ "prost", "prost-build", "rand 0.8.5", - "sha2 0.10.2", + "sha2 0.10.6", "thiserror", "unsigned-varint", "void", @@ -4213,9 +4222,9 @@ checksum = "d4d2456c373231a208ad294c33dc5bff30051eafd954cd4caae83a712b12854d" [[package]] name = "lock_api" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" dependencies = [ "autocfg", "scopeguard", @@ -4233,18 +4242,18 @@ dependencies = [ [[package]] name = "lru" -version = "0.6.6" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ea2d928b485416e8908cff2d97d621db22b27f7b3b6729e438bcf42c671ba91" +checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" dependencies = [ - "hashbrown 0.11.2", + "hashbrown 0.12.3", ] [[package]] name = "lru" -version = "0.7.8" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" +checksum = "936d98d2ddd79c18641c6709e7bb09981449694e402d1a0f0f657ea8d61f4a51" dependencies = [ "hashbrown 0.12.3", ] @@ -4260,9 +4269,9 @@ dependencies = [ [[package]] name = "lz4" -version = "1.23.3" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4edcb94251b1c375c459e5abe9fb0168c1c826c3370172684844f8f3f8d1a885" +checksum = "7e9e2dd86df36ce760a60f6ff6ad526f7ba1f14ba0356f8254fb6905e6494df1" dependencies = [ "libc", "lz4-sys", @@ -4270,9 +4279,9 @@ dependencies = [ [[package]] name = "lz4-sys" -version = "1.9.3" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7be8908e2ed6f31c02db8a9fa962f03e36c53fbfde437363eae3306b85d7e17" +checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" dependencies = [ "cc", "libc", @@ -4332,15 +4341,6 @@ dependencies = [ "libc", ] -[[package]] -name = "memmap2" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "723e3ebdcdc5c023db1df315364573789f8857c11b631a2fdfad7c00f5c046b4" -dependencies = [ - "libc", -] - [[package]] name = "memmap2" version = "0.5.7" @@ -4372,11 +4372,11 @@ dependencies = [ [[package]] name = "memory-lru" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beeb98b3d1ed2c0054bd81b5ba949a0243c3ccad751d45ea898fa8059fa2860a" +checksum = "ce95ae042940bad7e312857b929ee3d11b8f799a80cb7b9c7ec5125516906395" dependencies = [ - "lru 0.6.6", + "lru 0.8.0", ] [[package]] @@ -4416,9 +4416,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" +checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" dependencies = [ "adler", ] @@ -4480,10 +4480,10 @@ dependencies = [ "blake2s_simd", "blake3", "core2", - "digest 0.10.3", + "digest 0.10.5", "multihash-derive", - "sha2 0.10.2", - "sha3 0.10.2", + "sha2 0.10.6", + "sha3 0.10.5", "unsigned-varint", ] @@ -4770,9 +4770,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.13.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "074864da206b4973b84eb91683020dbefd6a8c3f0f38e054d93954e891935e4e" +checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" [[package]] name = "opaque-debug" @@ -4849,7 +4849,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-support", "frame-system", @@ -4865,7 +4865,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-support", "frame-system", @@ -4881,7 +4881,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-support", "frame-system", @@ -4896,7 +4896,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -4920,7 +4920,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4940,7 +4940,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -4955,7 +4955,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "beefy-primitives", "frame-support", @@ -4971,7 +4971,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -4994,7 +4994,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5012,7 +5012,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5031,7 +5031,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "frame-benchmarking", "frame-support", @@ -5051,7 +5051,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5068,7 +5068,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5084,7 +5084,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5107,7 +5107,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5120,7 +5120,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5138,7 +5138,7 @@ dependencies = [ [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5153,7 +5153,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5176,7 +5176,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5192,7 +5192,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5212,7 +5212,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5229,7 +5229,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5246,7 +5246,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5264,7 +5264,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -5279,7 +5279,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5294,7 +5294,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-support", "frame-system", @@ -5311,7 +5311,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5330,7 +5330,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "parity-scale-codec", "sp-api", @@ -5340,7 +5340,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-support", "frame-system", @@ -5357,7 +5357,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5380,7 +5380,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5396,7 +5396,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5411,7 +5411,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5426,7 +5426,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5442,7 +5442,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-support", "frame-system", @@ -5463,7 +5463,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5479,7 +5479,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-support", "frame-system", @@ -5493,7 +5493,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5516,7 +5516,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -5527,7 +5527,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "log", "sp-arithmetic", @@ -5536,7 +5536,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-support", "frame-system", @@ -5565,7 +5565,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5583,7 +5583,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5602,7 +5602,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-support", "frame-system", @@ -5618,7 +5618,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -5633,7 +5633,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5644,7 +5644,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5661,7 +5661,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5677,7 +5677,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-benchmarking", "frame-support", @@ -5727,7 +5727,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#15f48687e545e4b171a0af1065cec59002bc7145" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -5864,9 +5864,9 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bb474d0ed0836e185cb998a6b140ed1073d1fbf27d690ecf9ede8030289382c" +checksum = "2c8fdb726a43661fa54b43e7114e6b88b2289cae388eb3ad766d9d1754d83fce" dependencies = [ "blake2-rfc", "crc32fast", @@ -5875,17 +5875,17 @@ dependencies = [ "libc", "log", "lz4", - "memmap2 0.2.3", - "parking_lot 0.11.2", + "memmap2", + "parking_lot 0.12.1", "rand 0.8.5", "snap", ] [[package]] name = "parity-scale-codec" -version = "3.1.5" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9182e4a71cae089267ab03e67c99368db7cd877baf50f931e5d6d4b71e195ac0" +checksum = "366e44391a8af4cfd6002ef6ba072bae071a96aafca98d7d448a34c5dca38b6a" dependencies = [ "arrayvec 0.7.2", "bitvec", @@ -6012,9 +6012,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9423e2b32f7a043629287a536f21951e8c6a82482d0acb1eeebfc90bc2225b22" +checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" [[package]] name = "pbkdf2" @@ -6042,15 +6042,15 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" [[package]] name = "percent-encoding" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pest" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0560d531d1febc25a3c9398a62a71256c0178f2e3443baedd9ad4bb8c9deb4" +checksum = "cb779fcf4bb850fbbb0edc96ff6cf34fd90c4b1a112ce042653280d9a7364048" dependencies = [ "thiserror", "ucd-trie", @@ -6058,9 +6058,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "905708f7f674518498c1f8d644481440f476d39ca6ecae83319bba7c6c12da91" +checksum = "502b62a6d0245378b04ffe0a7fb4f4419a4815fce813bd8a0ec89a56e07d67b1" dependencies = [ "pest", "pest_generator", @@ -6068,9 +6068,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5803d8284a629cc999094ecd630f55e91b561a1d1ba75e233b00ae13b91a69ad" +checksum = "451e629bf49b750254da26132f1a5a9d11fd8a95a3df51d15c4abd1ba154cb6c" dependencies = [ "pest", "pest_meta", @@ -6081,13 +6081,13 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1538eb784f07615c6d9a8ab061089c6c54a344c5b4301db51990ca1c241e8c04" +checksum = "bcec162c71c45e269dfc3fc2916eaeb97feab22993a21bcce4721d08cd7801a6" dependencies = [ "once_cell", "pest", - "sha-1 0.10.0", + "sha1", ] [[package]] @@ -7389,9 +7389,9 @@ dependencies = [ [[package]] name = "prometheus" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cface98dfa6d645ea4c789839f176e4b072265d085bfcc48eaa8d137f58d3c39" +checksum = "45c8babc29389186697fe5a2a4859d697825496b83db5d0b65271cdc0488e88c" dependencies = [ "cfg-if 1.0.0", "fnv", @@ -7555,7 +7555,7 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha 0.3.1", - "rand_core 0.6.3", + "rand_core 0.6.4", ] [[package]] @@ -7575,7 +7575,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.3", + "rand_core 0.6.4", ] [[package]] @@ -7589,9 +7589,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ "getrandom 0.2.7", ] @@ -7630,7 +7630,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" dependencies = [ - "rand_core 0.6.3", + "rand_core 0.6.4", ] [[package]] @@ -7769,7 +7769,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "env_logger", "jsonrpsee", @@ -7968,7 +7968,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.13", + "semver 1.0.14", ] [[package]] @@ -7987,9 +7987,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.35.9" +version = "0.35.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c825b8aa8010eb9ee99b75f05e10180b9278d161583034d7574c9d617aeada" +checksum = "af895b90e5c071badc3136fc10ff0bcfc98747eadbaf43ed8f214e07ba8f8477" dependencies = [ "bitflags", "errno", @@ -8076,7 +8076,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "log", "sp-core", @@ -8087,7 +8087,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "futures", "futures-timer", @@ -8114,7 +8114,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "futures", "futures-timer", @@ -8137,7 +8137,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8153,10 +8153,10 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "impl-trait-for-tuples", - "memmap2 0.5.7", + "memmap2", "parity-scale-codec", "sc-chain-spec-derive", "sc-network", @@ -8170,7 +8170,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8181,7 +8181,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "chrono", "clap", @@ -8220,7 +8220,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "fnv", "futures", @@ -8248,7 +8248,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "hash-db", "kvdb", @@ -8273,7 +8273,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "async-trait", "futures", @@ -8297,7 +8297,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "async-trait", "futures", @@ -8326,7 +8326,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "async-trait", "fork-tree", @@ -8368,7 +8368,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "futures", "jsonrpsee", @@ -8390,7 +8390,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8403,7 +8403,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "async-trait", "futures", @@ -8428,7 +8428,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "lazy_static", "lru 0.7.8", @@ -8455,7 +8455,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "environmental", "parity-scale-codec", @@ -8471,7 +8471,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "log", "parity-scale-codec", @@ -8486,7 +8486,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "cfg-if 1.0.0", "libc", @@ -8494,7 +8494,7 @@ dependencies = [ "once_cell", "parity-scale-codec", "parity-wasm 0.42.2", - "rustix 0.35.9", + "rustix 0.35.10", "sc-allocator", "sc-executor-common", "sp-runtime-interface", @@ -8506,7 +8506,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "ahash", "async-trait", @@ -8547,7 +8547,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "finality-grandpa", "futures", @@ -8568,7 +8568,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "ansi_term", "futures", @@ -8585,7 +8585,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "async-trait", "hex", @@ -8600,7 +8600,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "async-trait", "asynchronous-codec", @@ -8649,7 +8649,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "async-trait", "bitflags", @@ -8670,7 +8670,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "ahash", "futures", @@ -8688,7 +8688,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "futures", "hex", @@ -8709,7 +8709,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "fork-tree", "futures", @@ -8737,7 +8737,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "bytes", "fnv", @@ -8766,7 +8766,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "futures", "libp2p", @@ -8779,7 +8779,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8788,7 +8788,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "futures", "hash-db", @@ -8818,7 +8818,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "futures", "jsonrpsee", @@ -8841,7 +8841,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "futures", "jsonrpsee", @@ -8854,7 +8854,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "async-trait", "directories", @@ -8921,7 +8921,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "log", "parity-scale-codec", @@ -8935,7 +8935,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -8954,7 +8954,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "futures", "libc", @@ -8973,7 +8973,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "chrono", "futures", @@ -8991,7 +8991,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "ansi_term", "atty", @@ -9022,7 +9022,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9033,7 +9033,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "futures", "futures-timer", @@ -9059,7 +9059,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "futures", "log", @@ -9072,7 +9072,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "futures", "futures-timer", @@ -9084,9 +9084,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.1.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c46be926081c9f4dd5dd9b6f1d3e3229f2360bc6502dd8836f84a93b7c75e99a" +checksum = "333af15b02563b8182cd863f925bd31ef8fa86a0e095d30c091956057d436153" dependencies = [ "bitvec", "cfg-if 1.0.0", @@ -9098,9 +9098,9 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.1.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e334bb10a245e28e5fd755cabcafd96cfcd167c99ae63a46924ca8d8703a3c" +checksum = "53f56acbd0743d29ffa08f911ab5397def774ad01bab3786804cf6ee057fb5e1" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9225,9 +9225,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f6841e709003d68bb2deee8c343572bf446003ec20a583e76f7b15cebf3711" +checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" dependencies = [ "serde", ] @@ -9292,14 +9292,14 @@ dependencies = [ ] [[package]] -name = "sha-1" -version = "0.10.0" +name = "sha1" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" +checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.3", + "digest 0.10.5", ] [[package]] @@ -9329,13 +9329,13 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.2" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.3", + "digest 0.10.5", ] [[package]] @@ -9352,11 +9352,11 @@ dependencies = [ [[package]] name = "sha3" -version = "0.10.2" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a31480366ec990f395a61b7c08122d99bd40544fdb5abcfc1b06bb29994312c" +checksum = "e2904bea16a1ae962b483322a1c7b81d976029203aea1f461e51cd7705db7ba9" dependencies = [ - "digest 0.10.3", + "digest 0.10.5", "keccak", ] @@ -9401,7 +9401,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "02658e48d89f2bec991f9a78e69cfa4c316f8d6a6c4ec12fae1aeb263d486788" dependencies = [ "digest 0.9.0", - "rand_core 0.6.3", + "rand_core 0.6.4", ] [[package]] @@ -9474,18 +9474,18 @@ dependencies = [ "blake2", "chacha20poly1305", "curve25519-dalek 4.0.0-pre.1", - "rand_core 0.6.3", + "rand_core 0.6.4", "ring", "rustc_version", - "sha2 0.10.2", + "sha2 0.10.6", "subtle", ] [[package]] name = "socket2" -version = "0.4.4" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" dependencies = [ "libc", "winapi", @@ -9504,13 +9504,13 @@ dependencies = [ "httparse", "log", "rand 0.8.5", - "sha-1 0.9.8", + "sha-1", ] [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "hash-db", "log", @@ -9527,7 +9527,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "blake2", "proc-macro-crate", @@ -9539,7 +9539,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "parity-scale-codec", "scale-info", @@ -9552,7 +9552,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "integer-sqrt", "num-traits", @@ -9567,7 +9567,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "parity-scale-codec", "scale-info", @@ -9580,7 +9580,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "async-trait", "parity-scale-codec", @@ -9592,7 +9592,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "parity-scale-codec", "sp-api", @@ -9604,7 +9604,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "futures", "log", @@ -9622,7 +9622,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "async-trait", "futures", @@ -9641,7 +9641,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "async-trait", "parity-scale-codec", @@ -9659,7 +9659,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "async-trait", "merlin", @@ -9682,7 +9682,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "parity-scale-codec", "scale-info", @@ -9696,7 +9696,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "parity-scale-codec", "scale-info", @@ -9709,7 +9709,7 @@ dependencies = [ [[package]] name = "sp-core" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "base58", "bitflags", @@ -9755,13 +9755,13 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "blake2", "byteorder", - "digest 0.10.3", - "sha2 0.10.2", - "sha3 0.10.2", + "digest 0.10.5", + "sha2 0.10.6", + "sha3 0.10.5", "sp-std", "twox-hash", ] @@ -9769,7 +9769,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "proc-macro2", "quote", @@ -9780,7 +9780,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -9789,7 +9789,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "proc-macro2", "quote", @@ -9799,7 +9799,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "environmental", "parity-scale-codec", @@ -9810,7 +9810,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "finality-grandpa", "log", @@ -9828,7 +9828,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9842,7 +9842,7 @@ dependencies = [ [[package]] name = "sp-io" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "bytes", "futures", @@ -9868,7 +9868,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "lazy_static", "sp-core", @@ -9879,7 +9879,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "async-trait", "futures", @@ -9896,7 +9896,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "thiserror", "zstd", @@ -9905,7 +9905,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "log", "parity-scale-codec", @@ -9920,7 +9920,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "parity-scale-codec", "scale-info", @@ -9934,7 +9934,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "sp-api", "sp-core", @@ -9944,7 +9944,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "backtrace", "lazy_static", @@ -9954,7 +9954,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "rustc-hash", "serde", @@ -9964,7 +9964,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "either", "hash256-std-hasher", @@ -9986,7 +9986,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -10004,7 +10004,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "Inflector", "proc-macro-crate", @@ -10016,7 +10016,7 @@ dependencies = [ [[package]] name = "sp-sandbox" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "log", "parity-scale-codec", @@ -10030,7 +10030,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "parity-scale-codec", "scale-info", @@ -10044,7 +10044,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "parity-scale-codec", "scale-info", @@ -10055,7 +10055,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "hash-db", "log", @@ -10077,12 +10077,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" [[package]] name = "sp-storage" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10095,7 +10095,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "log", "sp-core", @@ -10108,7 +10108,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "async-trait", "futures-timer", @@ -10124,7 +10124,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "parity-scale-codec", "sp-std", @@ -10136,7 +10136,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "sp-api", "sp-runtime", @@ -10145,7 +10145,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "async-trait", "log", @@ -10161,7 +10161,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "hash-db", "memory-db", @@ -10177,7 +10177,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10194,7 +10194,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10205,7 +10205,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "impl-trait-for-tuples", "log", @@ -10223,9 +10223,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "ss58-registry" -version = "1.28.0" +version = "1.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c8a1e645fa0bd3e81a90e592a677f7ada3182ac338c4a71cd9ec0ba911f6abb" +checksum = "b0837b5d62f42082c9d56cd946495ae273a3c68083b637b9153341d5e465146d" dependencies = [ "Inflector", "num-format", @@ -10330,7 +10330,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "platforms", ] @@ -10338,7 +10338,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -10359,7 +10359,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "futures-util", "hyper", @@ -10372,7 +10372,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "jsonrpsee", "log", @@ -10393,7 +10393,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "ansi_term", "build-helper", @@ -10415,9 +10415,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.99" +version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" +checksum = "52205623b1b0f064a4e71182c3b18ae902267282930c6d5462c91b859668426e" dependencies = [ "proc-macro2", "quote", @@ -10494,24 +10494,24 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.15.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" +checksum = "949517c0cf1bf4ee812e2e07e08ab448e3ae0d23472aee8a06c985f0c8815b16" [[package]] name = "thiserror" -version = "1.0.32" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5f6586b7f764adc0231f4c79be7b920e766bb2f3e51b3661cdb263828f19994" +checksum = "c53f98874615aea268107765aa1ed8f6116782501d18e53d08b471733bea6c85" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.32" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12bafc5b54507e0149cdf1b145a5d80ab80a90bcd9275df43d4fff68460f6c21" +checksum = "f8b463991b4eab2d801e724172285ec4195c650e8ec79b149e6c2a8e6dd3f783" dependencies = [ "proc-macro2", "quote", @@ -10613,9 +10613,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.20.1" +version = "1.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a8325f63a7d4774dd041e363b2409ed1c5cbbd0f867795e661df066b2b0a581" +checksum = "0020c875007ad96677dcc890298f4b942882c5d4eb7cc8f439fc3bf813dc9c95" dependencies = [ "autocfg", "bytes", @@ -10656,9 +10656,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9" +checksum = "f6edf2d6bc038a43d31353570e27270603f4648d18f5ed10c0e179abe43255af" dependencies = [ "futures-core", "pin-project-lite 0.2.9", @@ -10667,9 +10667,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45" +checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" dependencies = [ "bytes", "futures-core", @@ -10840,7 +10840,7 @@ dependencies = [ "futures-channel", "futures-io", "futures-util", - "idna", + "idna 0.2.3", "ipnet", "lazy_static", "log", @@ -10879,7 +10879,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#34a0621761c4a333cb2074ff720f7acbfb92dbb8" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" dependencies = [ "clap", "jsonrpsee", @@ -10914,7 +10914,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if 1.0.0", - "digest 0.10.3", + "digest 0.10.5", "rand 0.8.5", "static_assertions", ] @@ -10927,15 +10927,15 @@ checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "ucd-trie" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89570599c4fe5585de2b388aab47e99f7fa4e9238a1399f707a02e356058141c" +checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" [[package]] name = "uint" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f03af7ccf01dd611cc450a0d10dbc9b745770d096473e2faf0ca6e2d66d1e0" +checksum = "a45526d29728d135c2900b0d30573fe3ee79fceb12ef534c7bb30e810a91b601" dependencies = [ "byteorder", "crunchy", @@ -10960,30 +10960,30 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" +checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd" [[package]] name = "unicode-normalization" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ "tinyvec", ] [[package]] name = "unicode-width" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" [[package]] name = "unicode-xid" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "universal-hash" @@ -11015,13 +11015,12 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.2.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" dependencies = [ "form_urlencoded", - "idna", - "matches", + "idna 0.3.0", "percent-encoding", ] @@ -11106,9 +11105,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -11116,9 +11115,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" dependencies = [ "bumpalo", "log", @@ -11131,9 +11130,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.32" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa76fb221a1f8acddf5b54ace85912606980ad661ac7a503b4570ffd3a624dad" +checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -11143,9 +11142,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -11153,9 +11152,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" dependencies = [ "proc-macro2", "quote", @@ -11166,9 +11165,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" [[package]] name = "wasm-gc-api" @@ -11409,9 +11408,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.59" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1" +checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" dependencies = [ "js-sys", "wasm-bindgen", @@ -11548,13 +11547,13 @@ dependencies = [ [[package]] name = "which" -version = "4.2.5" +version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae" +checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b" dependencies = [ "either", - "lazy_static", "libc", + "once_cell", ] [[package]] From 18020eaf47d959696d23a123fd839879680f63d0 Mon Sep 17 00:00:00 2001 From: Dan Shields Date: Thu, 29 Sep 2022 17:06:51 -0600 Subject: [PATCH 63/91] clean lock --- Cargo.lock | 74 ++++++++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 39 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7d05d5e1..0e6355b0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -881,9 +881,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.3.3" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a050e2153c5be08febd6734e29298e844fdb0fa21aeddd63b4eb7baa106c69b" +checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3" dependencies = [ "glob", "libc", @@ -1159,15 +1159,14 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1" +checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348" dependencies = [ "autocfg", "cfg-if 1.0.0", "crossbeam-utils", "memoffset", - "once_cell", "scopeguard", ] @@ -1183,12 +1182,11 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" +checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" dependencies = [ "cfg-if 1.0.0", - "once_cell", ] [[package]] @@ -3035,14 +3033,13 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.48" +version = "0.1.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "237a0714f28b1ee39ccec0770ccb544eb02c9ef2c82bb096230eefcffa6468b0" +checksum = "fd911b35d940d2bd0bea0f9100068e5b97b51a1cbe13d13382f132e0365257a0" dependencies = [ "android_system_properties", "core-foundation-sys", "js-sys", - "once_cell", "wasm-bindgen", "winapi", ] @@ -3219,9 +3216,9 @@ checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" [[package]] name = "jobserver" -version = "0.1.24" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" +checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" dependencies = [ "libc", ] @@ -3564,9 +3561,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.133" +version = "0.2.134" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0f80d65747a3e43d1596c7c5492d95d5edddaabd45a7fcdb02b95f644164966" +checksum = "329c933548736bc49fd575ee68c89e8be4d260064184389a5b77517cddd99ffb" [[package]] name = "libloading" @@ -7380,9 +7377,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.43" +version = "1.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab" +checksum = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b" dependencies = [ "unicode-ident", ] @@ -7494,9 +7491,9 @@ dependencies = [ [[package]] name = "psm" -version = "0.1.20" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f446d0a6efba22928558c4fb4ce0b3fd6c89b0061343e390bf01a703742b8125" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" dependencies = [ "cc", ] @@ -7987,9 +7984,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.35.10" +version = "0.35.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af895b90e5c071badc3136fc10ff0bcfc98747eadbaf43ed8f214e07ba8f8477" +checksum = "fbb2fda4666def1433b1b05431ab402e42a1084285477222b72d6c564c417cef" dependencies = [ "bitflags", "errno", @@ -8494,7 +8491,7 @@ dependencies = [ "once_cell", "parity-scale-codec", "parity-wasm 0.42.2", - "rustix 0.35.10", + "rustix 0.35.11", "sc-allocator", "sc-executor-common", "sp-runtime-interface", @@ -9240,18 +9237,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.144" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860" +checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.144" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00" +checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c" dependencies = [ "proc-macro2", "quote", @@ -10223,9 +10220,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "ss58-registry" -version = "1.29.0" +version = "1.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0837b5d62f42082c9d56cd946495ae273a3c68083b637b9153341d5e465146d" +checksum = "5e4f0cb475a8e58d9ed8a963010108768d79e397f7aff79f9a3972ef490f97de" dependencies = [ "Inflector", "num-format", @@ -10415,9 +10412,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.100" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52205623b1b0f064a4e71182c3b18ae902267282930c6d5462c91b859668426e" +checksum = "e90cde112c4b9690b8cbe810cba9ddd8bc1d7472e2cae317b69e9438c1cba7d2" dependencies = [ "proc-macro2", "quote", @@ -10500,18 +10497,18 @@ checksum = "949517c0cf1bf4ee812e2e07e08ab448e3ae0d23472aee8a06c985f0c8815b16" [[package]] name = "thiserror" -version = "1.0.35" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c53f98874615aea268107765aa1ed8f6116782501d18e53d08b471733bea6c85" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.35" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8b463991b4eab2d801e724172285ec4195c650e8ec79b149e6c2a8e6dd3f783" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" dependencies = [ "proc-macro2", "quote", @@ -10613,9 +10610,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.21.1" +version = "1.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0020c875007ad96677dcc890298f4b942882c5d4eb7cc8f439fc3bf813dc9c95" +checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" dependencies = [ "autocfg", "bytes", @@ -10623,7 +10620,6 @@ dependencies = [ "memchr", "mio", "num_cpus", - "once_cell", "parking_lot 0.12.1", "pin-project-lite 0.2.9", "signal-hook-registry", @@ -11428,9 +11424,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.4" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1c760f0d366a6c24a02ed7816e23e691f5d92291f94d15e836006fd11b04daf" +checksum = "368bfe657969fb01238bb756d351dcade285e0f6fcbd36dcb23359a5169975be" dependencies = [ "webpki", ] From 986312b497c23422ca914862268f6fe2074969c4 Mon Sep 17 00:00:00 2001 From: Paritytech CI <52199148+paritytech-ci@users.noreply.github.com> Date: Fri, 30 Sep 2022 01:42:52 +0200 Subject: [PATCH 64/91] Auto-Update substrate-parachain-template from polkadot-v0.9.29 (#129) Co-authored-by: substrate-developer-hub Co-authored-by: Dan Shields --- Cargo.lock | 689 ++++++++++++----------- node/Cargo.toml | 110 ++-- node/src/command.rs | 6 +- pallets/template/Cargo.toml | 12 +- pallets/template/src/lib.rs | 4 +- runtime/Cargo.toml | 109 ++-- runtime/src/lib.rs | 36 +- runtime/src/weights/block_weights.rs | 9 +- runtime/src/weights/extrinsic_weights.rs | 4 +- runtime/src/weights/paritydb_weights.rs | 4 +- runtime/src/weights/rocksdb_weights.rs | 4 +- runtime/src/xcm_config.rs | 13 +- 12 files changed, 543 insertions(+), 457 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0e6355b0..0756a6b8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -418,7 +418,7 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "async-trait", "beefy-primitives", @@ -454,7 +454,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -474,7 +474,7 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "beefy-primitives", "sp-api", @@ -483,7 +483,7 @@ dependencies = [ [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "parity-scale-codec", "scale-info", @@ -790,6 +790,15 @@ dependencies = [ "nom", ] +[[package]] +name = "cfg-expr" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db" +dependencies = [ + "smallvec", +] + [[package]] name = "cfg-if" version = "0.1.10" @@ -1270,7 +1279,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "clap", "parity-scale-codec", @@ -1285,7 +1294,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1309,7 +1318,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1338,7 +1347,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1359,7 +1368,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1384,7 +1393,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -1408,7 +1417,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1436,7 +1445,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "frame-executive", "frame-support", @@ -1454,7 +1463,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1472,7 +1481,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -1503,7 +1512,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1514,7 +1523,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "frame-benchmarking", "frame-support", @@ -1528,7 +1537,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1545,7 +1554,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1564,7 +1573,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "frame-support", "parity-scale-codec", @@ -1580,7 +1589,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1603,7 +1612,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "cumulus-primitives-core", "futures", @@ -1616,7 +1625,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1636,7 +1645,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1665,7 +1674,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1688,7 +1697,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "async-trait", "backoff", @@ -1715,7 +1724,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1977,6 +1986,20 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ed25519-zebra" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "403ef3e961ab98f0ba902771d29f842058578bb1ce7e3c59dad5a6a93e784c69" +dependencies = [ + "curve25519-dalek 3.2.0", + "hex", + "rand_core 0.6.4", + "sha2 0.9.9", + "thiserror", + "zeroize", +] + [[package]] name = "either" version = "1.8.0" @@ -2265,7 +2288,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "parity-scale-codec", ] @@ -2282,7 +2305,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-support", "frame-system", @@ -2294,6 +2317,7 @@ dependencies = [ "serde", "sp-api", "sp-application-crypto", + "sp-core", "sp-io", "sp-runtime", "sp-runtime-interface", @@ -2304,7 +2328,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "Inflector", "chrono", @@ -2355,7 +2379,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2366,7 +2390,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2382,10 +2406,11 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-support", "frame-system", + "frame-try-runtime", "parity-scale-codec", "scale-info", "sp-core", @@ -2410,7 +2435,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "bitflags", "frame-metadata", @@ -2441,10 +2466,12 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "Inflector", + "cfg-expr", "frame-support-procedural-tools", + "itertools", "proc-macro2", "quote", "syn", @@ -2453,7 +2480,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2465,7 +2492,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "proc-macro2", "quote", @@ -2475,7 +2502,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-support", "log", @@ -2492,7 +2519,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -2507,7 +2534,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "parity-scale-codec", "sp-api", @@ -2516,9 +2543,10 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-support", + "parity-scale-codec", "sp-api", "sp-runtime", "sp-std", @@ -3396,8 +3424,8 @@ checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838" [[package]] name = "kusama-runtime" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "beefy-primitives", "bitvec", @@ -3489,8 +3517,8 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "frame-support", "polkadot-primitives", @@ -4792,7 +4820,7 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "orchestra" version = "0.0.1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "async-trait", "dyn-clonable", @@ -4808,7 +4836,7 @@ dependencies = [ [[package]] name = "orchestra-proc-macro" version = "0.0.1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "expander 0.0.6", "itertools", @@ -4846,7 +4874,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-support", "frame-system", @@ -4862,7 +4890,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-support", "frame-system", @@ -4878,7 +4906,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-support", "frame-system", @@ -4893,7 +4921,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -4917,7 +4945,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4937,7 +4965,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -4952,7 +4980,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "beefy-primitives", "frame-support", @@ -4968,7 +4996,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -4991,7 +5019,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5009,7 +5037,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5028,7 +5056,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "frame-benchmarking", "frame-support", @@ -5048,7 +5076,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5065,7 +5093,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5081,7 +5109,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5104,7 +5132,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5117,7 +5145,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5135,7 +5163,7 @@ dependencies = [ [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5150,7 +5178,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5173,7 +5201,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5189,7 +5217,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5209,7 +5237,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5226,7 +5254,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5243,7 +5271,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5261,7 +5289,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -5276,7 +5304,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5291,7 +5319,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-support", "frame-system", @@ -5308,7 +5336,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5327,7 +5355,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "parity-scale-codec", "sp-api", @@ -5337,7 +5365,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-support", "frame-system", @@ -5354,7 +5382,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5377,7 +5405,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5393,7 +5421,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5408,7 +5436,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5423,7 +5451,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5439,7 +5467,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-support", "frame-system", @@ -5460,7 +5488,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5476,7 +5504,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-support", "frame-system", @@ -5490,7 +5518,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5513,7 +5541,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -5524,7 +5552,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "log", "sp-arithmetic", @@ -5533,7 +5561,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-support", "frame-system", @@ -5562,7 +5590,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5580,7 +5608,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5599,7 +5627,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-support", "frame-system", @@ -5615,7 +5643,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -5630,7 +5658,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5641,7 +5669,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5658,7 +5686,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5674,7 +5702,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-benchmarking", "frame-support", @@ -5688,8 +5716,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "frame-support", "frame-system", @@ -5706,8 +5734,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "frame-benchmarking", "frame-support", @@ -5724,7 +5752,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.28#803de46cae9f84705fd5de3ced225793c4a520ce" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -6149,8 +6177,8 @@ checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "futures", "polkadot-node-network-protocol", @@ -6164,8 +6192,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "futures", "polkadot-node-network-protocol", @@ -6178,8 +6206,8 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "derive_more", "fatality", @@ -6201,8 +6229,8 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "fatality", "futures", @@ -6222,8 +6250,8 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "clap", "frame-benchmarking-cli", @@ -6248,8 +6276,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -6288,8 +6316,8 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "always-assert", "fatality", @@ -6309,8 +6337,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -6322,8 +6350,8 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "derive_more", "fatality", @@ -6345,8 +6373,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6359,8 +6387,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "futures", "futures-timer", @@ -6379,8 +6407,8 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "always-assert", "async-trait", @@ -6403,8 +6431,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "futures", "parity-scale-codec", @@ -6421,8 +6449,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "bitvec", "derive_more", @@ -6450,8 +6478,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "bitvec", "futures", @@ -6470,8 +6498,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "bitvec", "fatality", @@ -6489,8 +6517,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "futures", "polkadot-node-subsystem", @@ -6504,8 +6532,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "async-trait", "futures", @@ -6522,8 +6550,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "futures", "polkadot-node-subsystem", @@ -6537,8 +6565,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "futures", "futures-timer", @@ -6554,8 +6582,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "fatality", "futures", @@ -6573,8 +6601,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "async-trait", "futures", @@ -6590,8 +6618,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "bitvec", "fatality", @@ -6608,8 +6636,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "always-assert", "assert_matches", @@ -6640,8 +6668,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "futures", "polkadot-node-primitives", @@ -6656,8 +6684,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "futures", "memory-lru", @@ -6672,8 +6700,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "async-std", "lazy_static", @@ -6690,8 +6718,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "bs58", "futures", @@ -6709,8 +6737,8 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "async-trait", "derive_more", @@ -6731,8 +6759,8 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "bounded-vec", "futures", @@ -6753,8 +6781,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -6763,8 +6791,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "async-trait", "derive_more", @@ -6786,8 +6814,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "async-trait", "derive_more", @@ -6819,8 +6847,8 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "async-trait", "futures", @@ -6842,8 +6870,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "derive_more", "frame-support", @@ -6859,8 +6887,8 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "env_logger", "kusama-runtime", @@ -6874,8 +6902,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "bitvec", "frame-system", @@ -6904,8 +6932,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -6936,8 +6964,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "beefy-primitives", "bitvec", @@ -6971,6 +6999,7 @@ dependencies = [ "pallet-multisig", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", + "pallet-nomination-pools-runtime-api", "pallet-offences", "pallet-offences-benchmarking", "pallet-preimage", @@ -7023,8 +7052,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "beefy-primitives", "bitvec", @@ -7070,8 +7099,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "frame-support", "polkadot-primitives", @@ -7082,8 +7111,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "bs58", "parity-scale-codec", @@ -7094,8 +7123,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "bitflags", "bitvec", @@ -7137,12 +7166,13 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "async-trait", "beefy-gadget", "beefy-primitives", + "frame-support", "frame-system-rpc-runtime-api", "futures", "hex-literal", @@ -7240,8 +7270,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "arrayvec 0.5.2", "fatality", @@ -7261,8 +7291,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7328,7 +7358,7 @@ dependencies = [ [[package]] name = "prioritized-metered-channel" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "coarsetime", "crossbeam-queue", @@ -7766,7 +7796,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "env_logger", "jsonrpsee", @@ -7837,8 +7867,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -7906,8 +7936,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "frame-support", "polkadot-primitives", @@ -7918,9 +7948,9 @@ dependencies = [ [[package]] name = "rpassword" -version = "5.0.1" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" +checksum = "26b763cb66df1c928432cc35053f8bd4cec3335d8559fc16010017d16b3c1680" dependencies = [ "libc", "winapi", @@ -8073,7 +8103,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "log", "sp-core", @@ -8084,8 +8114,9 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ + "async-trait", "futures", "futures-timer", "ip_network", @@ -8096,7 +8127,6 @@ dependencies = [ "prost-build", "rand 0.7.3", "sc-client-api", - "sc-network", "sc-network-common", "sp-api", "sp-authority-discovery", @@ -8111,7 +8141,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "futures", "futures-timer", @@ -8134,7 +8164,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8150,13 +8180,13 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "impl-trait-for-tuples", "memmap2", "parity-scale-codec", "sc-chain-spec-derive", - "sc-network", + "sc-network-common", "sc-telemetry", "serde", "serde_json", @@ -8167,7 +8197,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8178,7 +8208,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "chrono", "clap", @@ -8217,7 +8247,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "fnv", "futures", @@ -8245,7 +8275,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "hash-db", "kvdb", @@ -8270,7 +8300,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "async-trait", "futures", @@ -8294,7 +8324,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "async-trait", "futures", @@ -8323,7 +8353,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "async-trait", "fork-tree", @@ -8365,7 +8395,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "futures", "jsonrpsee", @@ -8387,7 +8417,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8400,7 +8430,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "async-trait", "futures", @@ -8425,7 +8455,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "lazy_static", "lru 0.7.8", @@ -8452,7 +8482,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "environmental", "parity-scale-codec", @@ -8468,7 +8498,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "log", "parity-scale-codec", @@ -8483,7 +8513,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "cfg-if 1.0.0", "libc", @@ -8491,6 +8521,7 @@ dependencies = [ "once_cell", "parity-scale-codec", "parity-wasm 0.42.2", + "rustix 0.33.7", "rustix 0.35.11", "sc-allocator", "sc-executor-common", @@ -8503,7 +8534,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "ahash", "async-trait", @@ -8544,7 +8575,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "finality-grandpa", "futures", @@ -8565,7 +8596,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "ansi_term", "futures", @@ -8582,7 +8613,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "async-trait", "hex", @@ -8597,7 +8628,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "async-trait", "asynchronous-codec", @@ -8646,7 +8677,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "async-trait", "bitflags", @@ -8657,7 +8688,9 @@ dependencies = [ "prost-build", "sc-consensus", "sc-peerset", + "serde", "smallvec", + "sp-blockchain", "sp-consensus", "sp-finality-grandpa", "sp-runtime", @@ -8667,7 +8700,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "ahash", "futures", @@ -8675,8 +8708,8 @@ dependencies = [ "libp2p", "log", "lru 0.7.8", - "sc-network", "sc-network-common", + "sc-peerset", "sp-runtime", "substrate-prometheus-endpoint", "tracing", @@ -8685,7 +8718,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "futures", "hex", @@ -8706,7 +8739,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "fork-tree", "futures", @@ -8734,7 +8767,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "bytes", "fnv", @@ -8743,14 +8776,15 @@ dependencies = [ "hex", "hyper", "hyper-rustls", + "libp2p", "num_cpus", "once_cell", "parity-scale-codec", "parking_lot 0.12.1", "rand 0.7.3", "sc-client-api", - "sc-network", "sc-network-common", + "sc-peerset", "sc-utils", "sp-api", "sp-core", @@ -8763,7 +8797,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "futures", "libp2p", @@ -8776,7 +8810,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8785,7 +8819,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "futures", "hash-db", @@ -8815,7 +8849,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "futures", "jsonrpsee", @@ -8838,7 +8872,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "futures", "jsonrpsee", @@ -8851,7 +8885,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "async-trait", "directories", @@ -8918,7 +8952,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "log", "parity-scale-codec", @@ -8932,7 +8966,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -8951,7 +8985,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "futures", "libc", @@ -8970,7 +9004,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "chrono", "futures", @@ -8988,7 +9022,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "ansi_term", "atty", @@ -9019,7 +9053,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9030,7 +9064,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "futures", "futures-timer", @@ -9056,7 +9090,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "futures", "log", @@ -9069,7 +9103,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "futures", "futures-timer", @@ -9430,8 +9464,8 @@ checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" [[package]] name = "slot-range-helper" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "enumn", "parity-scale-codec", @@ -9507,7 +9541,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "hash-db", "log", @@ -9517,6 +9551,7 @@ dependencies = [ "sp-runtime", "sp-state-machine", "sp-std", + "sp-trie", "sp-version", "thiserror", ] @@ -9524,7 +9559,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "blake2", "proc-macro-crate", @@ -9536,7 +9571,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "parity-scale-codec", "scale-info", @@ -9549,7 +9584,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "integer-sqrt", "num-traits", @@ -9564,7 +9599,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "parity-scale-codec", "scale-info", @@ -9577,7 +9612,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "async-trait", "parity-scale-codec", @@ -9589,7 +9624,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "parity-scale-codec", "sp-api", @@ -9601,7 +9636,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "futures", "log", @@ -9619,7 +9654,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "async-trait", "futures", @@ -9638,7 +9673,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "async-trait", "parity-scale-codec", @@ -9656,7 +9691,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "async-trait", "merlin", @@ -9679,7 +9714,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "parity-scale-codec", "scale-info", @@ -9693,7 +9728,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "parity-scale-codec", "scale-info", @@ -9706,14 +9741,14 @@ dependencies = [ [[package]] name = "sp-core" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "base58", "bitflags", "blake2-rfc", "byteorder", "dyn-clonable", - "ed25519-dalek", + "ed25519-zebra", "futures", "hash-db", "hash256-std-hasher", @@ -9752,7 +9787,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "blake2", "byteorder", @@ -9766,7 +9801,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "proc-macro2", "quote", @@ -9777,7 +9812,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -9786,7 +9821,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "proc-macro2", "quote", @@ -9796,7 +9831,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "environmental", "parity-scale-codec", @@ -9807,7 +9842,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "finality-grandpa", "log", @@ -9825,7 +9860,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9839,7 +9874,7 @@ dependencies = [ [[package]] name = "sp-io" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "bytes", "futures", @@ -9865,7 +9900,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "lazy_static", "sp-core", @@ -9876,7 +9911,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "async-trait", "futures", @@ -9893,7 +9928,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "thiserror", "zstd", @@ -9902,7 +9937,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "log", "parity-scale-codec", @@ -9917,7 +9952,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "parity-scale-codec", "scale-info", @@ -9931,7 +9966,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "sp-api", "sp-core", @@ -9941,7 +9976,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "backtrace", "lazy_static", @@ -9951,7 +9986,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "rustc-hash", "serde", @@ -9961,7 +9996,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "either", "hash256-std-hasher", @@ -9983,7 +10018,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -10001,7 +10036,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "Inflector", "proc-macro-crate", @@ -10013,7 +10048,7 @@ dependencies = [ [[package]] name = "sp-sandbox" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "log", "parity-scale-codec", @@ -10027,7 +10062,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "parity-scale-codec", "scale-info", @@ -10041,7 +10076,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "parity-scale-codec", "scale-info", @@ -10052,7 +10087,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "hash-db", "log", @@ -10074,12 +10109,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" [[package]] name = "sp-storage" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10092,7 +10127,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "log", "sp-core", @@ -10105,7 +10140,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "async-trait", "futures-timer", @@ -10121,7 +10156,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "parity-scale-codec", "sp-std", @@ -10133,7 +10168,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "sp-api", "sp-runtime", @@ -10142,7 +10177,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "async-trait", "log", @@ -10158,15 +10193,22 @@ dependencies = [ [[package]] name = "sp-trie" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ + "ahash", "hash-db", + "hashbrown 0.12.3", + "lazy_static", + "lru 0.7.8", "memory-db", + "nohash-hasher", "parity-scale-codec", + "parking_lot 0.12.1", "scale-info", "sp-core", "sp-std", "thiserror", + "tracing", "trie-db", "trie-root", ] @@ -10174,7 +10216,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10191,7 +10233,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10202,7 +10244,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "impl-trait-for-tuples", "log", @@ -10327,7 +10369,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "platforms", ] @@ -10335,7 +10377,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -10356,7 +10398,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "futures-util", "hyper", @@ -10369,7 +10411,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "jsonrpsee", "log", @@ -10390,7 +10432,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "ansi_term", "build-helper", @@ -10736,8 +10778,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -10747,8 +10789,8 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "expander 0.0.6", "proc-macro-crate", @@ -10803,9 +10845,9 @@ dependencies = [ [[package]] name = "trie-db" -version = "0.23.1" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32d034c0d3db64b43c31de38e945f15b40cd4ca6d2dcfc26d4798ce8de4ab83" +checksum = "004e1e8f92535694b4cb1444dc5a8073ecf0815e3357f729638b9f8fc4062908" dependencies = [ "hash-db", "hashbrown 0.12.3", @@ -10875,9 +10917,10 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.28#b4db729801bd648941439d5b8324e6ea618a013c" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" dependencies = [ "clap", + "frame-try-runtime", "jsonrpsee", "log", "parity-scale-codec", @@ -11442,8 +11485,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "beefy-primitives", "bitvec", @@ -11531,8 +11574,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "frame-support", "polkadot-primitives", @@ -11706,8 +11749,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -11720,8 +11763,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "frame-support", "frame-system", @@ -11740,8 +11783,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "frame-benchmarking", "frame-support", @@ -11758,8 +11801,8 @@ dependencies = [ [[package]] name = "xcm-procedural" -version = "0.9.28" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.28#314298c32ac6df996ea8f3fe23fa5d3768340066" +version = "0.9.29" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" dependencies = [ "Inflector", "proc-macro2", diff --git a/node/Cargo.toml b/node/Cargo.toml index abd07afb..b8d2b325 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -10,11 +10,11 @@ edition = "2021" build = "build.rs" [dependencies] -clap = { version = "3.2.17", features = ["derive"] } +clap = { version = "3.2.20", features = ["derive"] } derive_more = "0.99.2" log = "0.4.17" codec = { package = "parity-scale-codec", version = "3.0.0" } -serde = { version = "1.0.143", features = ["derive"] } +serde = { version = "1.0.144", features = ["derive"] } hex-literal = "0.3.4" jsonrpsee = { version = "0.15.1", features = ["server"] } @@ -22,65 +22,65 @@ jsonrpsee = { version = "0.15.1", features = ["server"] } parachain-template-runtime = { path = "../runtime" } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.28" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.28" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sc-network-common = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.28" } -sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.29" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.29" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sc-network-common = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.29" } +sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.28" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.28" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.28" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.28" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.28" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.29" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.29" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.29" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.29" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.29" } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } -cumulus-client-collator = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } -cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } +cumulus-client-collator = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } +cumulus-client-network = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } +cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } [features] default = [] diff --git a/node/src/command.rs b/node/src/command.rs index 5dc04bbb..d1eebd12 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -348,7 +348,7 @@ impl CliConfiguration for RelayChainCli { fn base_path(&self) -> Result> { Ok(self .shared_params() - .base_path() + .base_path()? .or_else(|| self.base_path.clone().map(Into::into))) } @@ -399,8 +399,8 @@ impl CliConfiguration for RelayChainCli { self.base.base.transaction_pool(is_dev) } - fn state_cache_child_ratio(&self) -> Result> { - self.base.base.state_cache_child_ratio() + fn trie_cache_maximum_size(&self) -> Result> { + self.base.base.trie_cache_maximum_size() } fn rpc_methods(&self) -> Result { diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 0420a6d4..d312d797 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -16,17 +16,17 @@ codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive scale-info = { version = "2.0.0", default-features = false, features = ["derive"] } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.28" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.29" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } [dev-dependencies] serde = { version = "1.0.132" } # Substrate -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } [features] default = ["std"] diff --git a/pallets/template/src/lib.rs b/pallets/template/src/lib.rs index 0afd7c6d..36a07d2c 100644 --- a/pallets/template/src/lib.rs +++ b/pallets/template/src/lib.rs @@ -67,7 +67,7 @@ pub mod pallet { impl Pallet { /// An example dispatchable that takes a singles value as a parameter, writes the value to /// storage and emits an event. This function must be dispatched by a signed extrinsic. - #[pallet::weight(10_000 + T::DbWeight::get().writes(1))] + #[pallet::weight(Weight::from_ref_time(10_000) + T::DbWeight::get().writes(1))] pub fn do_something(origin: OriginFor, something: u32) -> DispatchResultWithPostInfo { // Check that the extrinsic was signed and get the signer. // This function will return an error if the extrinsic is not signed. @@ -84,7 +84,7 @@ pub mod pallet { } /// An example dispatchable that may throw a custom error. - #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1))] + #[pallet::weight(Weight::from_ref_time(10_000) + T::DbWeight::get().reads_writes(1,1))] pub fn cause_error(origin: OriginFor) -> DispatchResultWithPostInfo { let _who = ensure_signed(origin)?; diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 74962385..c01fd27a 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,68 +12,68 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.28" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } hex-literal = { version = "0.3.4", optional = true } log = { version = "0.4.17", default-features = false } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } -serde = { version = "1.0.143", optional = true, features = ["derive"] } +serde = { version = "1.0.144", optional = true, features = ["derive"] } smallvec = "1.9.0" # Local pallet-template = { path = "../pallets/template", default-features = false } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.28" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.28" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.28" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.28" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.29" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.29" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.29" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.28" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.28" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.28" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.28" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.28" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.28" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.29" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.29" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.29" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.29" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.29" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.29" } # Cumulus -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false } -cumulus-pallet-session-benchmarking = {git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false, version = "3.0.0"} -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false } -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false } -parachain-info = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.28", default-features = false } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false } +cumulus-pallet-session-benchmarking = {git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false, version = "3.0.0"} +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false } +pallet-collator-selection = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false } +parachain-info = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false } [features] default = [ @@ -145,6 +145,23 @@ runtime-benchmarks = [ ] try-runtime = [ + "cumulus-pallet-aura-ext/try-runtime", + "cumulus-pallet-dmp-queue/try-runtime", + "cumulus-pallet-parachain-system/try-runtime", + "cumulus-pallet-xcm/try-runtime", + "cumulus-pallet-xcmp-queue/try-runtime", "frame-executive/try-runtime", + "frame-system/try-runtime", "frame-try-runtime", + "pallet-aura/try-runtime", + "pallet-authorship/try-runtime", + "pallet-balances/try-runtime", + "pallet-collator-selection/try-runtime", + "pallet-session/try-runtime", + "pallet-sudo/try-runtime", + "pallet-template/try-runtime", + "pallet-timestamp/try-runtime", + "pallet-transaction-payment/try-runtime", + "pallet-xcm/try-runtime", + "parachain-info/try-runtime", ] diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index a4aecb88..bd56bcac 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -135,7 +135,7 @@ impl WeightToFeePolynomial for WeightToFee { // in Rococo, extrinsic base weight (smallest non-zero weight) is mapped to 1 MILLIUNIT: // in our template, we map to 1/10 of that, or 1/10 MILLIUNIT let p = MILLIUNIT / 10; - let q = 100 * Balance::from(ExtrinsicBaseWeight::get()); + let q = 100 * Balance::from(ExtrinsicBaseWeight::get().ref_time()); smallvec![WeightToFeeCoefficient { degree: 1, negative: false, @@ -214,7 +214,7 @@ const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(5); const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); /// We allow for 0.5 of a second of compute with a 12 second average block time. -const MAXIMUM_BLOCK_WEIGHT: Weight = WEIGHT_PER_SECOND / 2; +const MAXIMUM_BLOCK_WEIGHT: Weight = WEIGHT_PER_SECOND.saturating_div(2); /// The version information used to identify this runtime when compiled natively. #[cfg(feature = "std")] @@ -363,8 +363,8 @@ impl pallet_transaction_payment::Config for Runtime { } parameter_types! { - pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT / 4; - pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT / 4; + pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); + pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); } impl cumulus_pallet_parachain_system::Config for Runtime { @@ -613,6 +613,23 @@ impl_runtime_apis! { } } + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi + for Runtime + { + fn query_call_info( + call: Call, + len: u32, + ) -> pallet_transaction_payment::RuntimeDispatchInfo { + TransactionPayment::query_call_info(call, len) + } + fn query_call_fee_details( + call: Call, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_call_fee_details(call, len) + } + } + impl cumulus_primitives_core::CollectCollationInfo for Runtime { fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { ParachainSystem::collect_collation_info(header) @@ -627,8 +644,15 @@ impl_runtime_apis! { (weight, RuntimeBlockWeights::get().max_block) } - fn execute_block_no_check(block: Block) -> Weight { - Executive::execute_block_no_check(block) + fn execute_block(block: Block, state_root_check: bool, select: frame_try_runtime::TryStateSelect) -> Weight { + log::info!( + target: "runtime::parachain-template", "try-runtime: executing block #{} ({:?}) / root checks: {:?} / sanity-checks: {:?}", + block.header.number, + block.header.hash(), + state_root_check, + select, + ); + Executive::try_execute_block(block, state_root_check, select).expect("try_execute_block failed") } } diff --git a/runtime/src/weights/block_weights.rs b/runtime/src/weights/block_weights.rs index 4db90f0c..7d4a931b 100644 --- a/runtime/src/weights/block_weights.rs +++ b/runtime/src/weights/block_weights.rs @@ -23,7 +23,7 @@ pub mod constants { parameter_types! { /// Importing a block with 0 Extrinsics. - pub const BlockExecutionWeight: Weight = 5_000_000 * constants::WEIGHT_PER_NANOS; + pub const BlockExecutionWeight: Weight = constants::WEIGHT_PER_NANOS.saturating_mul(5_000_000); } #[cfg(test)] @@ -38,9 +38,12 @@ pub mod constants { let w = super::constants::BlockExecutionWeight::get(); // At least 100 µs. - assert!(w >= 100 * constants::WEIGHT_PER_MICROS, "Weight should be at least 100 µs."); + assert!( + w >= 100u64 * constants::WEIGHT_PER_MICROS, + "Weight should be at least 100 µs." + ); // At most 50 ms. - assert!(w <= 50 * constants::WEIGHT_PER_MILLIS, "Weight should be at most 50 ms."); + assert!(w <= 50u64 * constants::WEIGHT_PER_MILLIS, "Weight should be at most 50 ms."); } } } diff --git a/runtime/src/weights/extrinsic_weights.rs b/runtime/src/weights/extrinsic_weights.rs index 158ba99c..6c6b4a49 100644 --- a/runtime/src/weights/extrinsic_weights.rs +++ b/runtime/src/weights/extrinsic_weights.rs @@ -23,7 +23,7 @@ pub mod constants { parameter_types! { /// Executing a NO-OP `System::remarks` Extrinsic. - pub const ExtrinsicBaseWeight: Weight = 125_000 * constants::WEIGHT_PER_NANOS; + pub const ExtrinsicBaseWeight: Weight = constants::WEIGHT_PER_NANOS.saturating_mul(125_000); } #[cfg(test)] @@ -38,7 +38,7 @@ pub mod constants { let w = super::constants::ExtrinsicBaseWeight::get(); // At least 10 µs. - assert!(w >= 10 * constants::WEIGHT_PER_MICROS, "Weight should be at least 10 µs."); + assert!(w >= 10u64 * constants::WEIGHT_PER_MICROS, "Weight should be at least 10 µs."); // At most 1 ms. assert!(w <= constants::WEIGHT_PER_MILLIS, "Weight should be at most 1 ms."); } diff --git a/runtime/src/weights/paritydb_weights.rs b/runtime/src/weights/paritydb_weights.rs index 843823c1..8083ccb4 100644 --- a/runtime/src/weights/paritydb_weights.rs +++ b/runtime/src/weights/paritydb_weights.rs @@ -25,8 +25,8 @@ pub mod constants { /// `ParityDB` can be enabled with a feature flag, but is still experimental. These weights /// are available for brave runtime engineers who may want to try this out as default. pub const ParityDbWeight: RuntimeDbWeight = RuntimeDbWeight { - read: 8_000 * constants::WEIGHT_PER_NANOS, - write: 50_000 * constants::WEIGHT_PER_NANOS, + read: 8_000 * constants::WEIGHT_PER_NANOS.ref_time(), + write: 50_000 * constants::WEIGHT_PER_NANOS.ref_time(), }; } diff --git a/runtime/src/weights/rocksdb_weights.rs b/runtime/src/weights/rocksdb_weights.rs index 05e06b0e..1db87f14 100644 --- a/runtime/src/weights/rocksdb_weights.rs +++ b/runtime/src/weights/rocksdb_weights.rs @@ -25,8 +25,8 @@ pub mod constants { /// By default, Substrate uses `RocksDB`, so this will be the weight used throughout /// the runtime. pub const RocksDbWeight: RuntimeDbWeight = RuntimeDbWeight { - read: 25_000 * constants::WEIGHT_PER_NANOS, - write: 100_000 * constants::WEIGHT_PER_NANOS, + read: 25_000 * constants::WEIGHT_PER_NANOS.ref_time(), + write: 100_000 * constants::WEIGHT_PER_NANOS.ref_time(), }; } diff --git a/runtime/src/xcm_config.rs b/runtime/src/xcm_config.rs index 2ec84d18..f01b7166 100644 --- a/runtime/src/xcm_config.rs +++ b/runtime/src/xcm_config.rs @@ -6,12 +6,11 @@ use core::marker::PhantomData; use frame_support::{ log, match_types, parameter_types, traits::{Everything, Nothing}, - weights::Weight, }; use pallet_xcm::XcmPassthrough; use polkadot_parachain::primitives::Sibling; use polkadot_runtime_common::impls::ToAuthor; -use xcm::latest::prelude::*; +use xcm::latest::{prelude::*, Weight as XCMWeight}; use xcm_builder::{ AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter, EnsureXcmOrigin, FixedWeightBounds, IsConcrete, LocationInverter, NativeAsset, ParentIsPreset, @@ -77,7 +76,7 @@ pub type XcmOriginToTransactDispatchOrigin = ( parameter_types! { // One XCM operation is 1_000_000_000 weight - almost certainly a conservative estimate. - pub UnitWeightCost: Weight = 1_000_000_000; + pub UnitWeightCost: u64 = 1_000_000_000; pub const MaxInstructions: u32 = 100; } @@ -104,8 +103,8 @@ where fn should_execute( origin: &MultiLocation, message: &mut Xcm, - max_weight: Weight, - weight_credit: &mut Weight, + max_weight: XCMWeight, + weight_credit: &mut XCMWeight, ) -> Result<(), ()> { Deny::should_execute(origin, message, max_weight, weight_credit)?; Allow::should_execute(origin, message, max_weight, weight_credit) @@ -118,8 +117,8 @@ impl ShouldExecute for DenyReserveTransferToRelayChain { fn should_execute( origin: &MultiLocation, message: &mut Xcm, - _max_weight: Weight, - _weight_credit: &mut Weight, + _max_weight: XCMWeight, + _weight_credit: &mut XCMWeight, ) -> Result<(), ()> { if message.0.iter().any(|inst| { matches!( From dbf3670f66275deeac92c7cf4f507f329e242003 Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Sat, 8 Oct 2022 16:29:27 -0600 Subject: [PATCH 65/91] bump lock to get cargo c working (#132) --- Cargo.lock | 484 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 282 insertions(+), 202 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0756a6b8..8b29a4e9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -418,7 +418,7 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "async-trait", "beefy-primitives", @@ -454,7 +454,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -474,7 +474,7 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "beefy-primitives", "sp-api", @@ -483,7 +483,7 @@ dependencies = [ [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "parity-scale-codec", "scale-info", @@ -959,6 +959,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + [[package]] name = "comfy-table" version = "6.1.0" @@ -1773,6 +1783,50 @@ dependencies = [ "zeroize", ] +[[package]] +name = "cxx" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19f39818dcfc97d45b03953c1292efc4e80954e1583c4aa770bac1383e2310a4" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e580d70777c116df50c390d1211993f62d40302881e54d4b79727acb83d0199" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56a46460b88d1cec95112c8c363f0e2c39afdb237f60583b0b36343bf627ea9c" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "747b608fecf06b0d72d440f27acc99288207324b793be2c17991839f3d4995ea" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "data-encoding" version = "2.3.2" @@ -1920,9 +1974,9 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "dtoa" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6053ff46b5639ceb91756a85a4c8914668393a03170efd79c8884a529d80656" +checksum = "f8a6eee2d5d0d113f015688310da018bd1d864d86bd567c8fca9c266889e1bfa" [[package]] name = "dyn-clonable" @@ -2288,7 +2342,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "parity-scale-codec", ] @@ -2305,7 +2359,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-support", "frame-system", @@ -2328,7 +2382,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "Inflector", "chrono", @@ -2379,7 +2433,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2390,7 +2444,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2406,7 +2460,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-support", "frame-system", @@ -2435,7 +2489,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "bitflags", "frame-metadata", @@ -2466,7 +2520,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "Inflector", "cfg-expr", @@ -2480,7 +2534,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2492,7 +2546,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "proc-macro2", "quote", @@ -2502,7 +2556,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-support", "log", @@ -2519,7 +2573,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -2534,7 +2588,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "parity-scale-codec", "sp-api", @@ -2543,7 +2597,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-support", "parity-scale-codec", @@ -2860,9 +2914,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.3.4" +version = "4.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56b224eaa4987c03c30b251de7ef0c15a6a59f34222905850dbc3026dfb24d5f" +checksum = "433e4ab33f1213cdc25b5fa45c76881240cfe79284cf2b395e8b9e312a30a2fd" dependencies = [ "log", "pest", @@ -2988,7 +3042,7 @@ checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ "bytes", "fnv", - "itoa 1.0.3", + "itoa 1.0.4", ] [[package]] @@ -3035,7 +3089,7 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa 1.0.3", + "itoa 1.0.4", "pin-project-lite 0.2.9", "socket2", "tokio", @@ -3061,17 +3115,28 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.50" +version = "0.1.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd911b35d940d2bd0bea0f9100068e5b97b51a1cbe13d13382f132e0365257a0" +checksum = "f5a6ef98976b22b3b7f2f3a806f858cb862044cfa66805aa3ad84cb3d3b785ed" dependencies = [ "android_system_properties", "core-foundation-sys", + "iana-time-zone-haiku", "js-sys", "wasm-bindgen", "winapi", ] +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fde6edd6cef363e9359ed3c98ba64590ba9eecba2293eb5a723ab32aee8926aa" +dependencies = [ + "cxx", + "cxx-build", +] + [[package]] name = "idna" version = "0.2.3" @@ -3238,9 +3303,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" +checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" [[package]] name = "jobserver" @@ -4208,6 +4273,15 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "link-cplusplus" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +dependencies = [ + "cc", +] + [[package]] name = "linked-hash-map" version = "0.5.6" @@ -4276,9 +4350,9 @@ dependencies = [ [[package]] name = "lru" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936d98d2ddd79c18641c6709e7bb09981449694e402d1a0f0f657ea8d61f4a51" +checksum = "b6e8aaa3f231bb4bd57b84b2d5dc3ae7f350265df8aa96492e0bc394a1571909" dependencies = [ "hashbrown 0.12.3", ] @@ -4401,7 +4475,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce95ae042940bad7e312857b929ee3d11b8f799a80cb7b9c7ec5125516906395" dependencies = [ - "lru 0.8.0", + "lru 0.8.1", ] [[package]] @@ -4874,7 +4948,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-support", "frame-system", @@ -4890,7 +4964,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-support", "frame-system", @@ -4906,7 +4980,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-support", "frame-system", @@ -4921,7 +4995,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -4945,7 +5019,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -4965,7 +5039,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -4980,7 +5054,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "beefy-primitives", "frame-support", @@ -4996,7 +5070,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -5019,7 +5093,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5037,7 +5111,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5076,7 +5150,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5093,7 +5167,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5109,7 +5183,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5132,7 +5206,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5145,7 +5219,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5163,7 +5237,7 @@ dependencies = [ [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5178,7 +5252,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5201,7 +5275,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5217,7 +5291,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5237,7 +5311,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5254,7 +5328,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5271,7 +5345,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5289,7 +5363,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -5304,7 +5378,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5319,7 +5393,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-support", "frame-system", @@ -5336,7 +5410,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5355,7 +5429,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "parity-scale-codec", "sp-api", @@ -5365,7 +5439,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-support", "frame-system", @@ -5382,7 +5456,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5405,7 +5479,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5421,7 +5495,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5436,7 +5510,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5451,7 +5525,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5467,7 +5541,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-support", "frame-system", @@ -5488,7 +5562,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5504,7 +5578,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-support", "frame-system", @@ -5518,7 +5592,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5541,7 +5615,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -5552,7 +5626,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "log", "sp-arithmetic", @@ -5561,7 +5635,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-support", "frame-system", @@ -5590,7 +5664,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5608,7 +5682,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5627,7 +5701,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-support", "frame-system", @@ -5643,7 +5717,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -5658,7 +5732,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5669,7 +5743,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5686,7 +5760,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -5702,7 +5776,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-benchmarking", "frame-support", @@ -6073,9 +6147,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pest" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb779fcf4bb850fbbb0edc96ff6cf34fd90c4b1a112ce042653280d9a7364048" +checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a" dependencies = [ "thiserror", "ucd-trie", @@ -6083,9 +6157,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "502b62a6d0245378b04ffe0a7fb4f4419a4815fce813bd8a0ec89a56e07d67b1" +checksum = "60b75706b9642ebcb34dab3bc7750f811609a0eb1dd8b88c2d15bf628c1c65b2" dependencies = [ "pest", "pest_generator", @@ -6093,9 +6167,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "451e629bf49b750254da26132f1a5a9d11fd8a95a3df51d15c4abd1ba154cb6c" +checksum = "f4f9272122f5979a6511a749af9db9bfc810393f63119970d7085fed1c4ea0db" dependencies = [ "pest", "pest_meta", @@ -6106,9 +6180,9 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcec162c71c45e269dfc3fc2916eaeb97feab22993a21bcce4721d08cd7801a6" +checksum = "4c8717927f9b79515e565a64fe46c38b8cd0427e64c40680b14a7365ab09ac8d" dependencies = [ "once_cell", "pest", @@ -7435,7 +7509,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac1abe0255c04d15f571427a2d1e00099016506cf3297b53853acd2b7eb87825" dependencies = [ "dtoa", - "itoa 1.0.3", + "itoa 1.0.4", "owning_ref", "prometheus-client-derive-text-encode", ] @@ -7796,7 +7870,7 @@ dependencies = [ [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "env_logger", "jsonrpsee", @@ -8103,7 +8177,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "log", "sp-core", @@ -8114,7 +8188,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "async-trait", "futures", @@ -8141,7 +8215,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "futures", "futures-timer", @@ -8164,7 +8238,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8180,7 +8254,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "impl-trait-for-tuples", "memmap2", @@ -8197,7 +8271,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8208,7 +8282,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "chrono", "clap", @@ -8247,7 +8321,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "fnv", "futures", @@ -8275,7 +8349,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "hash-db", "kvdb", @@ -8300,7 +8374,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "async-trait", "futures", @@ -8324,7 +8398,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "async-trait", "futures", @@ -8353,7 +8427,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "async-trait", "fork-tree", @@ -8395,7 +8469,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "futures", "jsonrpsee", @@ -8417,7 +8491,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8430,7 +8504,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "async-trait", "futures", @@ -8455,7 +8529,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "lazy_static", "lru 0.7.8", @@ -8482,7 +8556,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "environmental", "parity-scale-codec", @@ -8498,7 +8572,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "log", "parity-scale-codec", @@ -8513,7 +8587,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "cfg-if 1.0.0", "libc", @@ -8534,7 +8608,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "ahash", "async-trait", @@ -8575,7 +8649,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "finality-grandpa", "futures", @@ -8596,7 +8670,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "ansi_term", "futures", @@ -8613,7 +8687,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "async-trait", "hex", @@ -8628,7 +8702,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "async-trait", "asynchronous-codec", @@ -8677,7 +8751,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "async-trait", "bitflags", @@ -8700,7 +8774,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "ahash", "futures", @@ -8718,7 +8792,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "futures", "hex", @@ -8739,7 +8813,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "fork-tree", "futures", @@ -8767,7 +8841,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "bytes", "fnv", @@ -8797,7 +8871,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "futures", "libp2p", @@ -8810,7 +8884,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8819,7 +8893,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "futures", "hash-db", @@ -8849,7 +8923,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "futures", "jsonrpsee", @@ -8872,7 +8946,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "futures", "jsonrpsee", @@ -8885,7 +8959,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "async-trait", "directories", @@ -8952,7 +9026,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "log", "parity-scale-codec", @@ -8966,7 +9040,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -8985,7 +9059,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "futures", "libc", @@ -9004,7 +9078,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "chrono", "futures", @@ -9022,7 +9096,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "ansi_term", "atty", @@ -9053,7 +9127,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9064,7 +9138,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "futures", "futures-timer", @@ -9090,7 +9164,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "futures", "log", @@ -9103,7 +9177,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "futures", "futures-timer", @@ -9173,6 +9247,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +[[package]] +name = "scratch" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" + [[package]] name = "sct" version = "0.7.0" @@ -9295,7 +9375,7 @@ version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" dependencies = [ - "itoa 1.0.3", + "itoa 1.0.4", "ryu", "serde", ] @@ -9485,9 +9565,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "snap" @@ -9541,7 +9621,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "hash-db", "log", @@ -9559,7 +9639,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "blake2", "proc-macro-crate", @@ -9571,7 +9651,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "parity-scale-codec", "scale-info", @@ -9584,7 +9664,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "integer-sqrt", "num-traits", @@ -9599,7 +9679,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "parity-scale-codec", "scale-info", @@ -9612,7 +9692,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "async-trait", "parity-scale-codec", @@ -9624,7 +9704,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "parity-scale-codec", "sp-api", @@ -9636,7 +9716,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "futures", "log", @@ -9654,7 +9734,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "async-trait", "futures", @@ -9673,7 +9753,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "async-trait", "parity-scale-codec", @@ -9691,7 +9771,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "async-trait", "merlin", @@ -9714,7 +9794,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "parity-scale-codec", "scale-info", @@ -9728,7 +9808,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "parity-scale-codec", "scale-info", @@ -9741,7 +9821,7 @@ dependencies = [ [[package]] name = "sp-core" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "base58", "bitflags", @@ -9787,7 +9867,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "blake2", "byteorder", @@ -9801,7 +9881,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "proc-macro2", "quote", @@ -9812,7 +9892,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -9821,7 +9901,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "proc-macro2", "quote", @@ -9831,7 +9911,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "environmental", "parity-scale-codec", @@ -9842,7 +9922,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "finality-grandpa", "log", @@ -9860,7 +9940,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9874,7 +9954,7 @@ dependencies = [ [[package]] name = "sp-io" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "bytes", "futures", @@ -9900,7 +9980,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "lazy_static", "sp-core", @@ -9911,7 +9991,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "async-trait", "futures", @@ -9928,7 +10008,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "thiserror", "zstd", @@ -9937,7 +10017,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "log", "parity-scale-codec", @@ -9952,7 +10032,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "parity-scale-codec", "scale-info", @@ -9966,7 +10046,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "sp-api", "sp-core", @@ -9976,7 +10056,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "backtrace", "lazy_static", @@ -9986,7 +10066,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "rustc-hash", "serde", @@ -9996,7 +10076,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "either", "hash256-std-hasher", @@ -10018,7 +10098,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -10036,7 +10116,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "Inflector", "proc-macro-crate", @@ -10048,7 +10128,7 @@ dependencies = [ [[package]] name = "sp-sandbox" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "log", "parity-scale-codec", @@ -10062,7 +10142,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "parity-scale-codec", "scale-info", @@ -10076,7 +10156,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "parity-scale-codec", "scale-info", @@ -10087,7 +10167,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "hash-db", "log", @@ -10109,12 +10189,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" [[package]] name = "sp-storage" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10127,7 +10207,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "log", "sp-core", @@ -10140,7 +10220,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "async-trait", "futures-timer", @@ -10156,7 +10236,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "parity-scale-codec", "sp-std", @@ -10168,7 +10248,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "sp-api", "sp-runtime", @@ -10177,7 +10257,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "async-trait", "log", @@ -10193,7 +10273,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "ahash", "hash-db", @@ -10216,7 +10296,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10233,7 +10313,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10244,7 +10324,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "impl-trait-for-tuples", "log", @@ -10262,9 +10342,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "ss58-registry" -version = "1.29.1" +version = "1.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e4f0cb475a8e58d9ed8a963010108768d79e397f7aff79f9a3972ef490f97de" +checksum = "1de151faef619cb7b5c26b32d42bc7ddccac0d202beb7a84344b44e9232b92f7" dependencies = [ "Inflector", "num-format", @@ -10369,7 +10449,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "platforms", ] @@ -10377,7 +10457,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -10398,7 +10478,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "futures-util", "hyper", @@ -10411,7 +10491,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "jsonrpsee", "log", @@ -10432,7 +10512,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "ansi_term", "build-helper", @@ -10454,9 +10534,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.101" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e90cde112c4b9690b8cbe810cba9ddd8bc1d7472e2cae317b69e9438c1cba7d2" +checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1" dependencies = [ "proc-macro2", "quote", @@ -10735,9 +10815,9 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.36" +version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if 1.0.0", "pin-project-lite 0.2.9", @@ -10747,9 +10827,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" +checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" dependencies = [ "proc-macro2", "quote", @@ -10758,9 +10838,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.29" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" dependencies = [ "once_cell", "valuable", @@ -10917,7 +10997,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#7c4ac358c29c9748c6e8ed4e05910504cd01a3b9" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" dependencies = [ "clap", "frame-try-runtime", @@ -10999,9 +11079,9 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" [[package]] name = "unicode-normalization" From 6f6598a45b94fed5dc687b49b3a6cebb79730553 Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Sun, 23 Oct 2022 19:41:05 -0600 Subject: [PATCH 66/91] Update test-code.yml --- .github/workflows/test-code.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test-code.yml b/.github/workflows/test-code.yml index ad3abab6..cb641ed4 100644 --- a/.github/workflows/test-code.yml +++ b/.github/workflows/test-code.yml @@ -15,6 +15,8 @@ jobs: steps: - name: Checkout Code uses: actions/checkout@v2 + - name: Install Protoc + uses: arduino/setup-protoc@v1 # Steps taken from https://github.com/actions/cache/blob/master/examples.md#rust---cargo - name: Cache cargo registry From 2b944833a5ec3bf289ef780e238ff79755899670 Mon Sep 17 00:00:00 2001 From: Paritytech CI <52199148+paritytech-ci@users.noreply.github.com> Date: Tue, 25 Oct 2022 14:44:42 +0200 Subject: [PATCH 67/91] Auto-Update substrate-parachain-template from polkadot-v0.9.30 (#133) Co-authored-by: substrate-developer-hub --- Cargo.lock | 1458 +++++++++++++--------- node/Cargo.toml | 110 +- node/src/command.rs | 9 + node/src/service.rs | 18 +- pallets/template/Cargo.toml | 12 +- pallets/template/src/lib.rs | 2 +- pallets/template/src/mock.rs | 8 +- pallets/template/src/tests.rs | 7 +- runtime/Cargo.toml | 96 +- runtime/src/lib.rs | 41 +- runtime/src/weights/block_weights.rs | 7 +- runtime/src/weights/extrinsic_weights.rs | 10 +- runtime/src/weights/paritydb_weights.rs | 8 +- runtime/src/weights/rocksdb_weights.rs | 8 +- runtime/src/xcm_config.rs | 47 +- 15 files changed, 1048 insertions(+), 793 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8b29a4e9..4581fcf9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -43,7 +43,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ "cfg-if 1.0.0", - "cipher", + "cipher 0.3.0", "cpufeatures", "opaque-debug 0.3.0", ] @@ -56,7 +56,7 @@ checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6" dependencies = [ "aead", "aes", - "cipher", + "cipher 0.3.0", "ctr", "ghash", "subtle", @@ -121,6 +121,12 @@ dependencies = [ "num-traits", ] +[[package]] +name = "array-bytes" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a913633b0c922e6b745072795f50d90ebea78ba31a57e2ac8c2fc7b50950949" + [[package]] name = "arrayref" version = "0.3.6" @@ -378,7 +384,7 @@ dependencies = [ "cfg-if 1.0.0", "libc", "miniz_oxide", - "object 0.29.0", + "object", "rustc-demangle", ] @@ -406,6 +412,12 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +[[package]] +name = "base64ct" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2b2456fd614d856680dcd9fcc660a51a820fa09daef2e49772b56a193c8474" + [[package]] name = "beef" version = "0.5.2" @@ -418,14 +430,14 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ + "array-bytes", "async-trait", "beefy-primitives", "fnv", "futures", "futures-timer", - "hex", "log", "parity-scale-codec", "parking_lot 0.12.1", @@ -435,6 +447,7 @@ dependencies = [ "sc-finality-grandpa", "sc-keystore", "sc-network", + "sc-network-common", "sc-network-gossip", "sc-utils", "sp-api", @@ -454,7 +467,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -474,7 +487,7 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "beefy-primitives", "sp-api", @@ -483,7 +496,7 @@ dependencies = [ [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "parity-scale-codec", "scale-info", @@ -607,7 +620,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" dependencies = [ - "block-padding 0.1.5", + "block-padding", "byte-tools", "byteorder", "generic-array 0.12.4", @@ -619,7 +632,6 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "block-padding 0.2.1", "generic-array 0.14.6", ] @@ -641,12 +653,6 @@ dependencies = [ "byte-tools", ] -[[package]] -name = "block-padding" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" - [[package]] name = "blocking" version = "1.2.0" @@ -824,7 +830,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c80e5460aa66fe3b91d40bcbdab953a597b60053e34d684ac6903f863b680a6" dependencies = [ "cfg-if 1.0.0", - "cipher", + "cipher 0.3.0", "cpufeatures", "zeroize", ] @@ -837,7 +843,7 @@ checksum = "a18446b09be63d457bbec447509e85f662f32952b035ce892290396bc0b0cff5" dependencies = [ "aead", "chacha20", - "cipher", + "cipher 0.3.0", "poly1305", "zeroize", ] @@ -879,6 +885,16 @@ dependencies = [ "generic-array 0.14.6", ] +[[package]] +name = "cipher" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e" +dependencies = [ + "crypto-common", + "inout", +] + [[package]] name = "ckb-merkle-mountain-range" version = "0.3.2" @@ -1052,19 +1068,21 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.85.3" +version = "0.88.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "749d0d6022c9038dccf480bdde2a38d435937335bf2bb0f14e815d94517cdce8" +checksum = "44409ccf2d0f663920cab563d2b79fcd6b2e9a2bcc6e929fef76c8f82ad6c17a" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.85.3" +version = "0.88.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94370cc7b37bf652ccd8bb8f09bd900997f7ccf97520edfc75554bb5c4abbea" +checksum = "98de2018ad96eb97f621f7d6b900a0cc661aec8d02ea4a50e56ecb48e5a2fcaf" dependencies = [ + "arrayvec 0.7.2", + "bumpalo", "cranelift-bforest", "cranelift-codegen-meta", "cranelift-codegen-shared", @@ -1079,33 +1097,33 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.85.3" +version = "0.88.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a3cea8fdab90e44018c5b9a1dfd460d8ee265ac354337150222a354628bdb6" +checksum = "5287ce36e6c4758fbaf298bd1a8697ad97a4f2375a3d1b61142ea538db4877e5" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.85.3" +version = "0.88.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ac72f76f2698598951ab26d8c96eaa854810e693e7dd52523958b5909fde6b2" +checksum = "2855c24219e2f08827f3f4ffb2da92e134ae8d8ecc185b11ec8f9878cf5f588e" [[package]] name = "cranelift-entity" -version = "0.85.3" +version = "0.88.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09eaeacfcd2356fe0e66b295e8f9d59fdd1ac3ace53ba50de14d628ec902f72d" +checksum = "0b65673279d75d34bf11af9660ae2dbd1c22e6d28f163f5c72f4e1dc56d56103" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.85.3" +version = "0.88.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dba69c9980d5ffd62c18a2bde927855fcd7c8dc92f29feaf8636052662cbd99c" +checksum = "3ed2b3d7a4751163f6c4a349205ab1b7d9c00eecf19dcea48592ef1f7688eefc" dependencies = [ "cranelift-codegen", "log", @@ -1115,15 +1133,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.85.3" +version = "0.88.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2920dc1e05cac40304456ed3301fde2c09bd6a9b0210bcfa2f101398d628d5b" +checksum = "3be64cecea9d90105fc6a2ba2d003e98c867c1d6c4c86cc878f97ad9fb916293" [[package]] name = "cranelift-native" -version = "0.85.3" +version = "0.88.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04dfa45f9b2a6f587c564d6b63388e00cd6589d2df6ea2758cf79e1a13285e6" +checksum = "c4a03a6ac1b063e416ca4b93f6247978c991475e8271465340caa6f92f3c16a4" dependencies = [ "cranelift-codegen", "libc", @@ -1132,9 +1150,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.85.3" +version = "0.88.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31a46513ae6f26f3f267d8d75b5373d555fbbd1e68681f348d99df43f747ec54" +checksum = "c699873f7b30bc5f20dd03a796b4183e073a46616c91704792ec35e45d13f913" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1272,7 +1290,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" dependencies = [ - "cipher", + "cipher 0.3.0", ] [[package]] @@ -1289,7 +1307,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "clap", "parity-scale-codec", @@ -1304,7 +1322,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1328,7 +1346,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1357,7 +1375,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1378,7 +1396,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1403,7 +1421,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -1427,7 +1445,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1455,7 +1473,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "frame-executive", "frame-support", @@ -1473,7 +1491,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1491,7 +1509,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -1522,7 +1540,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1533,7 +1551,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "frame-benchmarking", "frame-support", @@ -1547,7 +1565,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1564,7 +1582,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1583,7 +1601,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "frame-support", "parity-scale-codec", @@ -1599,7 +1617,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1622,7 +1640,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "cumulus-primitives-core", "futures", @@ -1635,7 +1653,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1655,7 +1673,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1684,7 +1702,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1707,7 +1725,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "async-trait", "backoff", @@ -1734,7 +1752,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1785,9 +1803,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.78" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f39818dcfc97d45b03953c1292efc4e80954e1583c4aa770bac1383e2310a4" +checksum = "3f83d0ebf42c6eafb8d7c52f7e5f2d3003b89c7aa4fd2b79229209459a849af8" dependencies = [ "cc", "cxxbridge-flags", @@ -1797,9 +1815,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.78" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e580d70777c116df50c390d1211993f62d40302881e54d4b79727acb83d0199" +checksum = "07d050484b55975889284352b0ffc2ecbda25c0c55978017c132b29ba0818a86" dependencies = [ "cc", "codespan-reporting", @@ -1812,15 +1830,15 @@ dependencies = [ [[package]] name = "cxxbridge-flags" -version = "1.0.78" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56a46460b88d1cec95112c8c363f0e2c39afdb237f60583b0b36343bf627ea9c" +checksum = "99d2199b00553eda8012dfec8d3b1c75fce747cf27c169a270b3b99e3448ab78" [[package]] name = "cxxbridge-macro" -version = "1.0.78" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "747b608fecf06b0d72d440f27acc99288207324b793be2c17991839f3d4995ea" +checksum = "dcb67a6de1f602736dd7eaead0080cf3435df806c61b24b13328db128c58868f" dependencies = [ "proc-macro2", "quote", @@ -2285,7 +2303,7 @@ dependencies = [ "cfg-if 1.0.0", "libc", "redox_syscall", - "windows-sys", + "windows-sys 0.36.1", ] [[package]] @@ -2342,7 +2360,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "parity-scale-codec", ] @@ -2359,7 +2377,7 @@ dependencies = [ [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-support", "frame-system", @@ -2382,9 +2400,10 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "Inflector", + "array-bytes", "chrono", "clap", "comfy-table", @@ -2394,7 +2413,6 @@ dependencies = [ "gethostname", "handlebars", "hash-db", - "hex", "itertools", "kvdb", "lazy_static", @@ -2433,7 +2451,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2444,7 +2462,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2460,7 +2478,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-support", "frame-system", @@ -2489,7 +2507,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "bitflags", "frame-metadata", @@ -2514,13 +2532,14 @@ dependencies = [ "sp-state-machine", "sp-std", "sp-tracing", + "sp-weights", "tt-call", ] [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "Inflector", "cfg-expr", @@ -2534,7 +2553,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2546,7 +2565,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "proc-macro2", "quote", @@ -2556,7 +2575,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-support", "log", @@ -2568,12 +2587,13 @@ dependencies = [ "sp-runtime", "sp-std", "sp-version", + "sp-weights", ] [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -2588,7 +2608,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "parity-scale-codec", "sp-api", @@ -2597,7 +2617,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-support", "parity-scale-codec", @@ -2941,15 +2961,6 @@ dependencies = [ "crunchy", ] -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -dependencies = [ - "ahash", -] - [[package]] name = "hashbrown" version = "0.12.3" @@ -3042,7 +3053,7 @@ checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ "bytes", "fnv", - "itoa 1.0.4", + "itoa", ] [[package]] @@ -3089,7 +3100,7 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa 1.0.4", + "itoa", "pin-project-lite 0.2.9", "socket2", "tokio", @@ -3129,9 +3140,9 @@ dependencies = [ [[package]] name = "iana-time-zone-haiku" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fde6edd6cef363e9359ed3c98ba64590ba9eecba2293eb5a723ab32aee8926aa" +checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" dependencies = [ "cxx", "cxx-build", @@ -3222,10 +3233,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" dependencies = [ "autocfg", - "hashbrown 0.12.3", + "hashbrown", "serde", ] +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array 0.14.6", +] + [[package]] name = "instant" version = "0.1.12" @@ -3250,12 +3270,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "io-lifetimes" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec58677acfea8a15352d42fc87d11d63596ade9239e0a7c9352914417515dbe6" - [[package]] name = "io-lifetimes" version = "0.7.3" @@ -3295,12 +3309,6 @@ dependencies = [ "either", ] -[[package]] -name = "itoa" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" - [[package]] name = "itoa" version = "1.0.4" @@ -3489,8 +3497,8 @@ checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838" [[package]] name = "kusama-runtime" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "beefy-primitives", "bitvec", @@ -3517,6 +3525,7 @@ dependencies = [ "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", + "pallet-fast-unstake", "pallet-gilt", "pallet-grandpa", "pallet-identity", @@ -3582,8 +3591,8 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "frame-support", "polkadot-primitives", @@ -3654,9 +3663,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.134" +version = "0.2.135" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "329c933548736bc49fd575ee68c89e8be4d260064184389a5b77517cddd99ffb" +checksum = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c" [[package]] name = "libloading" @@ -3742,8 +3751,8 @@ dependencies = [ "libp2p-request-response", "libp2p-swarm", "log", - "prost", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", "rand 0.8.5", ] @@ -3769,8 +3778,8 @@ dependencies = [ "multistream-select", "parking_lot 0.12.1", "pin-project", - "prost", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", "rand 0.8.5", "ring", "rw-stream-sink", @@ -3820,8 +3829,8 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "prost", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", "rand 0.7.3", "smallvec", ] @@ -3844,8 +3853,8 @@ dependencies = [ "libp2p-swarm", "log", "prometheus-client", - "prost", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", "rand 0.7.3", "regex", "sha2 0.10.6", @@ -3867,8 +3876,8 @@ dependencies = [ "libp2p-swarm", "log", "lru 0.7.8", - "prost", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", "prost-codec", "smallvec", "thiserror", @@ -3892,8 +3901,8 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "prost", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", "rand 0.7.3", "sha2 0.10.6", "smallvec", @@ -3970,8 +3979,8 @@ dependencies = [ "lazy_static", "libp2p-core", "log", - "prost", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", "rand 0.8.5", "sha2 0.10.6", "snow", @@ -4007,24 +4016,24 @@ dependencies = [ "futures", "libp2p-core", "log", - "prost", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", "unsigned-varint", "void", ] [[package]] name = "libp2p-pnet" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f1a458bbda880107b5b36fcb9b5a1ef0c329685da0e203ed692a8ebe64cc92c" +checksum = "1a5a702574223aa55d8878bdc8bf55c84a6086f87ddaddc28ce730b4caa81538" dependencies = [ "futures", "log", "pin-project", - "rand 0.7.3", + "rand 0.8.5", "salsa20", - "sha3 0.9.1", + "sha3", ] [[package]] @@ -4043,8 +4052,8 @@ dependencies = [ "libp2p-swarm", "log", "pin-project", - "prost", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", "prost-codec", "rand 0.8.5", "smallvec", @@ -4067,8 +4076,8 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "prost", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", "rand 0.8.5", "sha2 0.10.6", "thiserror", @@ -4307,12 +4316,6 @@ dependencies = [ "statrs", ] -[[package]] -name = "linux-raw-sys" -version = "0.0.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5284f00d480e1c39af34e72f8ad60b94f47007e3481cd3b731c1d67190ddc7b7" - [[package]] name = "linux-raw-sys" version = "0.0.46" @@ -4345,7 +4348,7 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" dependencies = [ - "hashbrown 0.12.3", + "hashbrown", ] [[package]] @@ -4354,7 +4357,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6e8aaa3f231bb4bd57b84b2d5dc3ae7f350265df8aa96492e0bc394a1571909" dependencies = [ - "hashbrown 0.12.3", + "hashbrown", ] [[package]] @@ -4433,11 +4436,11 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "memfd" -version = "0.4.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6627dc657574b49d6ad27105ed671822be56e0d2547d413bfbf3e8d8fa92e7a" +checksum = "480b5a5de855d11ff13195950bdc8b98b5e942ef47afc447f6615cdcc4e15d80" dependencies = [ - "libc", + "rustix", ] [[package]] @@ -4465,7 +4468,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6566c70c1016f525ced45d7b7f97730a2bafb037c788211d0c186ef5b2189f0a" dependencies = [ "hash-db", - "hashbrown 0.12.3", + "hashbrown", "parity-util-mem", ] @@ -4480,9 +4483,9 @@ dependencies = [ [[package]] name = "memory_units" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d96e3f3c0b6325d8ccd83c33b28acb183edcb6c67938ba104ec546854b0882" +checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" [[package]] name = "merlin" @@ -4531,15 +4534,9 @@ dependencies = [ "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys", + "windows-sys 0.36.1", ] -[[package]] -name = "more-asserts" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" - [[package]] name = "multiaddr" version = "0.14.0" @@ -4582,7 +4579,7 @@ dependencies = [ "digest 0.10.5", "multihash-derive", "sha2 0.10.6", - "sha3 0.10.5", + "sha3", "unsigned-varint", ] @@ -4774,6 +4771,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-bigint" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-complex" version = "0.4.2" @@ -4785,12 +4793,12 @@ dependencies = [ [[package]] name = "num-format" -version = "0.4.0" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bafe4179722c2894288ee77a9f044f02811c86af699344c498b0840c698a2465" +checksum = "54b862ff8df690cf089058c98b183676a7ed0f974cc08b426800093227cbff3b" dependencies = [ - "arrayvec 0.4.12", - "itoa 0.4.8", + "arrayvec 0.7.2", + "itoa", ] [[package]] @@ -4810,7 +4818,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" dependencies = [ "autocfg", - "num-bigint", + "num-bigint 0.2.6", "num-integer", "num-traits", ] @@ -4822,6 +4830,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" dependencies = [ "autocfg", + "num-bigint 0.4.3", "num-integer", "num-traits", ] @@ -4846,24 +4855,15 @@ dependencies = [ "libc", ] -[[package]] -name = "object" -version = "0.28.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" -dependencies = [ - "crc32fast", - "hashbrown 0.11.2", - "indexmap", - "memchr", -] - [[package]] name = "object" version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" dependencies = [ + "crc32fast", + "hashbrown", + "indexmap", "memchr", ] @@ -4894,7 +4894,7 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "orchestra" version = "0.0.1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "async-trait", "dyn-clonable", @@ -4910,7 +4910,7 @@ dependencies = [ [[package]] name = "orchestra-proc-macro" version = "0.0.1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "expander 0.0.6", "itertools", @@ -4948,7 +4948,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-support", "frame-system", @@ -4964,7 +4964,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-support", "frame-system", @@ -4980,7 +4980,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-support", "frame-system", @@ -4995,7 +4995,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5019,7 +5019,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5039,7 +5039,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5054,7 +5054,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "beefy-primitives", "frame-support", @@ -5070,13 +5070,13 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ + "array-bytes", "beefy-merkle-tree", "beefy-primitives", "frame-support", "frame-system", - "hex", "log", "pallet-beefy", "pallet-mmr", @@ -5093,7 +5093,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5111,7 +5111,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5130,7 +5130,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "frame-benchmarking", "frame-support", @@ -5150,7 +5150,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5167,7 +5167,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5183,13 +5183,14 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", "frame-support", "frame-system", "log", + "pallet-election-provider-support-benchmarking", "parity-scale-codec", "rand 0.7.3", "scale-info", @@ -5206,7 +5207,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5219,7 +5220,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5234,10 +5235,31 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-fast-unstake" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +dependencies = [ + "frame-benchmarking", + "frame-election-provider-support", + "frame-support", + "frame-system", + "log", + "pallet-balances", + "pallet-staking", + "pallet-timestamp", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-std", +] + [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5252,7 +5274,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5275,7 +5297,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5291,7 +5313,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5311,7 +5333,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5328,7 +5350,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5345,7 +5367,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5363,7 +5385,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -5378,7 +5400,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5393,7 +5415,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-support", "frame-system", @@ -5410,7 +5432,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5422,6 +5444,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", + "sp-runtime-interface", "sp-staking", "sp-std", ] @@ -5429,7 +5452,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "parity-scale-codec", "sp-api", @@ -5439,7 +5462,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-support", "frame-system", @@ -5456,7 +5479,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5479,7 +5502,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5495,7 +5518,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5510,7 +5533,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5525,7 +5548,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5541,7 +5564,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-support", "frame-system", @@ -5562,7 +5585,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5578,7 +5601,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-support", "frame-system", @@ -5592,7 +5615,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5615,7 +5638,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -5626,7 +5649,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "log", "sp-arithmetic", @@ -5635,7 +5658,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-support", "frame-system", @@ -5664,7 +5687,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5682,7 +5705,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5701,7 +5724,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-support", "frame-system", @@ -5717,7 +5740,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -5732,7 +5755,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -5743,7 +5766,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5760,7 +5783,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5776,7 +5799,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-benchmarking", "frame-support", @@ -5790,8 +5813,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "frame-support", "frame-system", @@ -5808,8 +5831,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5826,7 +5849,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.29#2fa95572487cfcf8dbe6941bf93545c39d47f784" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -6020,7 +6043,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c32561d248d352148124f036cac253a644685a21dc9fea383eb4907d7bd35a8f" dependencies = [ "cfg-if 1.0.0", - "hashbrown 0.12.3", + "hashbrown", "impl-trait-for-tuples", "parity-util-mem-derive", "parking_lot 0.12.1", @@ -6051,9 +6074,9 @@ dependencies = [ [[package]] name = "parity-wasm" -version = "0.42.2" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be5e13c266502aadf83426d87d81a0f5d1ef45b8027f5a471c360abfe4bfae92" +checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" [[package]] name = "parking" @@ -6079,7 +6102,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.3", + "parking_lot_core 0.9.4", ] [[package]] @@ -6098,15 +6121,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" +checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" dependencies = [ "cfg-if 1.0.0", "libc", "redox_syscall", "smallvec", - "windows-sys", + "windows-sys 0.42.0", ] [[package]] @@ -6237,6 +6260,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkcs8" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0" +dependencies = [ + "der", + "spki", + "zeroize", +] + [[package]] name = "pkg-config" version = "0.3.25" @@ -6251,8 +6285,8 @@ checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "futures", "polkadot-node-network-protocol", @@ -6266,8 +6300,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "futures", "polkadot-node-network-protocol", @@ -6280,8 +6314,8 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "derive_more", "fatality", @@ -6303,8 +6337,8 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "fatality", "futures", @@ -6324,8 +6358,8 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "clap", "frame-benchmarking-cli", @@ -6350,8 +6384,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -6390,8 +6424,8 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "always-assert", "fatality", @@ -6411,8 +6445,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -6424,8 +6458,8 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "derive_more", "fatality", @@ -6447,8 +6481,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6461,8 +6495,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "futures", "futures-timer", @@ -6481,8 +6515,8 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "always-assert", "async-trait", @@ -6505,8 +6539,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "futures", "parity-scale-codec", @@ -6523,8 +6557,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "bitvec", "derive_more", @@ -6552,8 +6586,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "bitvec", "futures", @@ -6572,8 +6606,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "bitvec", "fatality", @@ -6591,8 +6625,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "futures", "polkadot-node-subsystem", @@ -6606,8 +6640,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "async-trait", "futures", @@ -6624,8 +6658,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "futures", "polkadot-node-subsystem", @@ -6639,8 +6673,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "futures", "futures-timer", @@ -6656,8 +6690,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "fatality", "futures", @@ -6675,8 +6709,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "async-trait", "futures", @@ -6692,8 +6726,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "bitvec", "fatality", @@ -6710,8 +6744,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "always-assert", "assert_matches", @@ -6722,7 +6756,7 @@ dependencies = [ "parity-scale-codec", "pin-project", "polkadot-core-primitives", - "polkadot-node-subsystem-util", + "polkadot-node-metrics", "polkadot-parachain", "rand 0.8.5", "rayon", @@ -6742,8 +6776,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "futures", "polkadot-node-primitives", @@ -6758,8 +6792,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "futures", "memory-lru", @@ -6774,8 +6808,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "async-std", "lazy_static", @@ -6792,8 +6826,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "bs58", "futures", @@ -6811,8 +6845,8 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "async-trait", "derive_more", @@ -6826,6 +6860,7 @@ dependencies = [ "rand 0.8.5", "sc-authority-discovery", "sc-network", + "sc-network-common", "strum", "thiserror", "tracing-gum", @@ -6833,8 +6868,8 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "bounded-vec", "futures", @@ -6855,8 +6890,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -6865,8 +6900,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "async-trait", "derive_more", @@ -6888,8 +6923,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "async-trait", "derive_more", @@ -6921,8 +6956,8 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "async-trait", "futures", @@ -6944,8 +6979,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "derive_more", "frame-support", @@ -6961,8 +6996,8 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "env_logger", "kusama-runtime", @@ -6976,8 +7011,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "bitvec", "frame-system", @@ -7006,8 +7041,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -7038,8 +7073,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "beefy-primitives", "bitvec", @@ -7065,6 +7100,7 @@ dependencies = [ "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", + "pallet-fast-unstake", "pallet-grandpa", "pallet-identity", "pallet-im-online", @@ -7126,8 +7162,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "beefy-primitives", "bitvec", @@ -7173,8 +7209,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "frame-support", "polkadot-primitives", @@ -7185,8 +7221,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "bs58", "parity-scale-codec", @@ -7197,8 +7233,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "bitflags", "bitvec", @@ -7240,8 +7276,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "async-trait", "beefy-gadget", @@ -7344,8 +7380,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "arrayvec 0.5.2", "fatality", @@ -7365,8 +7401,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7432,7 +7468,7 @@ dependencies = [ [[package]] name = "prioritized-metered-channel" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "coarsetime", "crossbeam-queue", @@ -7481,9 +7517,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.46" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94e2ef8dbfc347b10c094890f778ee2e36ca9bb4262e86dc99cd217e35f3470b" +checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" dependencies = [ "unicode-ident", ] @@ -7509,7 +7545,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac1abe0255c04d15f571427a2d1e00099016506cf3297b53853acd2b7eb87825" dependencies = [ "dtoa", - "itoa 1.0.4", + "itoa", "owning_ref", "prometheus-client-derive-text-encode", ] @@ -7532,7 +7568,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71adf41db68aa0daaefc69bb30bcd68ded9b9abaad5d1fbb6304c4fb390e083e" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.10.1", +] + +[[package]] +name = "prost" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "399c3c31cdec40583bb68f0b18403400d01ec4289c383aa047560439952c4dd7" +dependencies = [ + "bytes", + "prost-derive 0.11.0", ] [[package]] @@ -7550,8 +7596,28 @@ dependencies = [ "log", "multimap", "petgraph", - "prost", - "prost-types", + "prost 0.10.4", + "prost-types 0.10.1", + "regex", + "tempfile", + "which", +] + +[[package]] +name = "prost-build" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f835c582e6bd972ba8347313300219fed5bfa52caf175298d860b61ff6069bb" +dependencies = [ + "bytes", + "heck", + "itertools", + "lazy_static", + "log", + "multimap", + "petgraph", + "prost 0.11.0", + "prost-types 0.11.1", "regex", "tempfile", "which", @@ -7565,7 +7631,7 @@ checksum = "00af1e92c33b4813cc79fda3f2dbf56af5169709be0202df730e9ebc3e4cd007" dependencies = [ "asynchronous-codec", "bytes", - "prost", + "prost 0.10.4", "thiserror", "unsigned-varint", ] @@ -7583,6 +7649,19 @@ dependencies = [ "syn", ] +[[package]] +name = "prost-derive" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7345d5f0e08c0536d7ac7229952590239e77abf0a0100a1b1d890add6ea96364" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "prost-types" version = "0.10.1" @@ -7590,7 +7669,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d0a014229361011dc8e69c8a1ec6c2e8d0f2af7c91e3ea3f5b2170298461e68" dependencies = [ "bytes", - "prost", + "prost 0.10.4", +] + +[[package]] +name = "prost-types" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dfaa718ad76a44b3415e6c4d53b17c8f99160dcb3a99b10470fce8ad43f6e3e" +dependencies = [ + "bytes", + "prost 0.11.0", ] [[package]] @@ -7793,24 +7882,24 @@ dependencies = [ "derive_more", "fs-err", "itertools", - "static_init", + "static_init 0.5.2", "thiserror", ] [[package]] name = "ref-cast" -version = "1.0.9" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed13bcd201494ab44900a96490291651d200730904221832b9547d24a87d332b" +checksum = "12a733f1746c929b4913fe48f8697fcf9c55e3304ba251a79ffb41adfeaf49c2" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.9" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5234cd6063258a5e32903b53b1b6ac043a0541c8adc1f610f67b0326c7a578fa" +checksum = "5887de4a01acafd221861463be6113e6e87275e79804e56779f4cdc131c60368" dependencies = [ "proc-macro2", "quote", @@ -7819,9 +7908,9 @@ dependencies = [ [[package]] name = "regalloc2" -version = "0.2.3" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a8d23b35d7177df3b9d31ed8a9ab4bf625c668be77a319d4f5efd4a5257701c" +checksum = "d43a209257d978ef079f3d446331d0f1794f5e0fc19b306a199983857833a779" dependencies = [ "fxhash", "log", @@ -7855,22 +7944,10 @@ version = "0.6.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" -[[package]] -name = "region" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877e54ea2adcd70d80e9179344c97f93ef0dffd6b03e1f4529e6e83ab2fa9ae0" -dependencies = [ - "bitflags", - "libc", - "mach", - "winapi", -] - [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "env_logger", "jsonrpsee", @@ -7941,8 +8018,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -7960,23 +8037,37 @@ dependencies = [ "pallet-balances", "pallet-beefy", "pallet-beefy-mmr", + "pallet-bounties", + "pallet-child-bounties", "pallet-collective", + "pallet-democracy", + "pallet-elections-phragmen", + "pallet-gilt", "pallet-grandpa", + "pallet-identity", "pallet-im-online", "pallet-indices", "pallet-membership", "pallet-mmr", "pallet-multisig", "pallet-offences", + "pallet-preimage", "pallet-proxy", + "pallet-recovery", + "pallet-scheduler", "pallet-session", + "pallet-society", "pallet-staking", "pallet-sudo", "pallet-timestamp", + "pallet-tips", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury", "pallet-utility", + "pallet-vesting", "pallet-xcm", + "pallet-xcm-benchmarks", "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", @@ -8002,6 +8093,7 @@ dependencies = [ "sp-std", "sp-transaction-pool", "sp-version", + "static_assertions", "substrate-wasm-builder", "xcm", "xcm-builder", @@ -8010,8 +8102,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "frame-support", "polkadot-primitives", @@ -8072,20 +8164,6 @@ dependencies = [ "semver 1.0.14", ] -[[package]] -name = "rustix" -version = "0.33.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "938a344304321a9da4973b9ff4f9f8db9caf4597dfd9dda6a60b523340a0fff0" -dependencies = [ - "bitflags", - "errno", - "io-lifetimes 0.5.3", - "libc", - "linux-raw-sys 0.0.42", - "winapi", -] - [[package]] name = "rustix" version = "0.35.11" @@ -8094,17 +8172,17 @@ checksum = "fbb2fda4666def1433b1b05431ab402e42a1084285477222b72d6c564c417cef" dependencies = [ "bitflags", "errno", - "io-lifetimes 0.7.3", + "io-lifetimes", "libc", - "linux-raw-sys 0.0.46", - "windows-sys", + "linux-raw-sys", + "windows-sys 0.36.1", ] [[package]] name = "rustls" -version = "0.20.6" +version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aab8ee6c7097ed6057f43c187a62418d0c05a4bd5f18b3571db50ee0f9ce033" +checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c" dependencies = [ "log", "ring", @@ -8158,11 +8236,11 @@ checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" [[package]] name = "salsa20" -version = "0.9.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0fbb5f676da676c260ba276a8f43a8dc67cf02d1438423aeb1c677a7212686" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" dependencies = [ - "cipher", + "cipher 0.4.3", ] [[package]] @@ -8177,7 +8255,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "log", "sp-core", @@ -8188,7 +8266,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "async-trait", "futures", @@ -8197,8 +8275,8 @@ dependencies = [ "libp2p", "log", "parity-scale-codec", - "prost", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", "rand 0.7.3", "sc-client-api", "sc-network-common", @@ -8215,7 +8293,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "futures", "futures-timer", @@ -8238,7 +8316,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8254,7 +8332,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "impl-trait-for-tuples", "memmap2", @@ -8271,7 +8349,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8282,13 +8360,13 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ + "array-bytes", "chrono", "clap", "fdlimit", "futures", - "hex", "libp2p", "log", "names", @@ -8300,6 +8378,7 @@ dependencies = [ "sc-client-db", "sc-keystore", "sc-network", + "sc-network-common", "sc-service", "sc-telemetry", "sc-tracing", @@ -8321,7 +8400,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "fnv", "futures", @@ -8349,7 +8428,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "hash-db", "kvdb", @@ -8374,7 +8453,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "async-trait", "futures", @@ -8398,7 +8477,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "async-trait", "futures", @@ -8427,14 +8506,14 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "async-trait", "fork-tree", "futures", "log", "merlin", - "num-bigint", + "num-bigint 0.2.6", "num-rational 0.2.4", "num-traits", "parity-scale-codec", @@ -8469,7 +8548,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "futures", "jsonrpsee", @@ -8491,7 +8570,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8504,7 +8583,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "async-trait", "futures", @@ -8522,14 +8601,13 @@ dependencies = [ "sp-inherents", "sp-runtime", "sp-state-machine", - "sp-timestamp", "thiserror", ] [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "lazy_static", "lru 0.7.8", @@ -8556,7 +8634,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "environmental", "parity-scale-codec", @@ -8572,7 +8650,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "log", "parity-scale-codec", @@ -8587,16 +8665,15 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "cfg-if 1.0.0", "libc", "log", "once_cell", "parity-scale-codec", - "parity-wasm 0.42.2", - "rustix 0.33.7", - "rustix 0.35.11", + "parity-wasm 0.45.0", + "rustix", "sc-allocator", "sc-executor-common", "sp-runtime-interface", @@ -8608,16 +8685,16 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "ahash", + "array-bytes", "async-trait", "dyn-clone", "finality-grandpa", "fork-tree", "futures", "futures-timer", - "hex", "log", "parity-scale-codec", "parking_lot 0.12.1", @@ -8649,7 +8726,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "finality-grandpa", "futures", @@ -8670,7 +8747,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "ansi_term", "futures", @@ -8687,10 +8764,10 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ + "array-bytes", "async-trait", - "hex", "parking_lot 0.12.1", "serde_json", "sp-application-crypto", @@ -8702,8 +8779,9 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ + "array-bytes", "async-trait", "asynchronous-codec", "bitflags", @@ -8714,7 +8792,6 @@ dependencies = [ "fork-tree", "futures", "futures-timer", - "hex", "ip_network", "libp2p", "linked-hash-map", @@ -8724,8 +8801,7 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", "pin-project", - "prost", - "prost-build", + "prost 0.10.4", "rand 0.7.3", "sc-block-builder", "sc-client-api", @@ -8744,22 +8820,43 @@ dependencies = [ "substrate-prometheus-endpoint", "thiserror", "unsigned-varint", - "void", "zeroize", ] +[[package]] +name = "sc-network-bitswap" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +dependencies = [ + "cid", + "futures", + "libp2p", + "log", + "prost 0.11.0", + "prost-build 0.11.1", + "sc-client-api", + "sc-network-common", + "sp-blockchain", + "sp-runtime", + "thiserror", + "unsigned-varint", + "void", +] + [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "async-trait", "bitflags", "bytes", "futures", + "futures-timer", "libp2p", + "linked_hash_set", "parity-scale-codec", - "prost-build", + "prost-build 0.10.4", "sc-consensus", "sc-peerset", "serde", @@ -8768,13 +8865,14 @@ dependencies = [ "sp-consensus", "sp-finality-grandpa", "sp-runtime", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "ahash", "futures", @@ -8792,15 +8890,15 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ + "array-bytes", "futures", - "hex", "libp2p", "log", "parity-scale-codec", - "prost", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", "sc-client-api", "sc-network-common", "sc-peerset", @@ -8813,17 +8911,17 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ + "array-bytes", "fork-tree", "futures", - "hex", "libp2p", "log", "lru 0.7.8", "parity-scale-codec", - "prost", - "prost-build", + "prost 0.10.4", + "prost-build 0.10.4", "sc-client-api", "sc-consensus", "sc-network-common", @@ -8838,16 +8936,35 @@ dependencies = [ "thiserror", ] +[[package]] +name = "sc-network-transactions" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +dependencies = [ + "array-bytes", + "futures", + "hex", + "libp2p", + "log", + "parity-scale-codec", + "pin-project", + "sc-network-common", + "sc-peerset", + "sp-consensus", + "sp-runtime", + "substrate-prometheus-endpoint", +] + [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ + "array-bytes", "bytes", "fnv", "futures", "futures-timer", - "hex", "hyper", "hyper-rustls", "libp2p", @@ -8871,7 +8988,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "futures", "libp2p", @@ -8884,7 +9001,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -8893,7 +9010,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "futures", "hash-db", @@ -8923,7 +9040,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "futures", "jsonrpsee", @@ -8946,7 +9063,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "futures", "jsonrpsee", @@ -8959,7 +9076,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "async-trait", "directories", @@ -8983,9 +9100,11 @@ dependencies = [ "sc-informant", "sc-keystore", "sc-network", + "sc-network-bitswap", "sc-network-common", "sc-network-light", "sc-network-sync", + "sc-network-transactions", "sc-offchain", "sc-rpc", "sc-rpc-server", @@ -9015,6 +9134,7 @@ dependencies = [ "sp-transaction-storage-proof", "sp-trie", "sp-version", + "static_init 1.0.3", "substrate-prometheus-endpoint", "tempfile", "thiserror", @@ -9026,7 +9146,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "log", "parity-scale-codec", @@ -9040,7 +9160,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -9059,7 +9179,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "futures", "libc", @@ -9078,7 +9198,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "chrono", "futures", @@ -9096,7 +9216,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "ansi_term", "atty", @@ -9127,7 +9247,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9138,7 +9258,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "futures", "futures-timer", @@ -9164,7 +9284,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "futures", "log", @@ -9177,7 +9297,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "futures", "futures-timer", @@ -9220,7 +9340,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" dependencies = [ "lazy_static", - "windows-sys", + "windows-sys 0.36.1", ] [[package]] @@ -9271,6 +9391,7 @@ checksum = "08da66b8b0965a5555b6bd6639e68ccba85e1e2506f5fbb089e93f8a04e1a2d1" dependencies = [ "der", "generic-array 0.14.6", + "pkcs8", "subtle", "zeroize", ] @@ -9286,9 +9407,9 @@ dependencies = [ [[package]] name = "secp256k1-sys" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7058dc8eaf3f2810d7828680320acda0b25a288f6d288e19278e249bbf74226b" +checksum = "83080e2c2fc1006e625be82e5d1eb6a43b7fd9578b617fcc55814daf286bba4b" dependencies = [ "cc", ] @@ -9371,11 +9492,11 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.85" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" +checksum = "41feea4228a6f1cd09ec7a3593a682276702cd67b5273544757dae23c096f074" dependencies = [ - "itoa 1.0.4", + "itoa", "ryu", "serde", ] @@ -9449,18 +9570,6 @@ dependencies = [ "digest 0.10.5", ] -[[package]] -name = "sha3" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" -dependencies = [ - "block-buffer 0.9.0", - "digest 0.9.0", - "keccak", - "opaque-debug 0.3.0", -] - [[package]] name = "sha3" version = "0.10.5" @@ -9544,8 +9653,8 @@ checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" [[package]] name = "slot-range-helper" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "enumn", "parity-scale-codec", @@ -9621,7 +9730,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "hash-db", "log", @@ -9639,7 +9748,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "blake2", "proc-macro-crate", @@ -9651,7 +9760,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "parity-scale-codec", "scale-info", @@ -9664,7 +9773,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "integer-sqrt", "num-traits", @@ -9679,7 +9788,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "parity-scale-codec", "scale-info", @@ -9692,7 +9801,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "async-trait", "parity-scale-codec", @@ -9704,7 +9813,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "parity-scale-codec", "sp-api", @@ -9716,7 +9825,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "futures", "log", @@ -9734,7 +9843,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "async-trait", "futures", @@ -9753,7 +9862,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "async-trait", "parity-scale-codec", @@ -9771,7 +9880,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "async-trait", "merlin", @@ -9794,7 +9903,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "parity-scale-codec", "scale-info", @@ -9808,7 +9917,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "parity-scale-codec", "scale-info", @@ -9821,18 +9930,18 @@ dependencies = [ [[package]] name = "sp-core" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ + "array-bytes", "base58", "bitflags", - "blake2-rfc", + "blake2", "byteorder", "dyn-clonable", "ed25519-zebra", "futures", "hash-db", "hash256-std-hasher", - "hex", "impl-serde", "lazy_static", "libsecp256k1", @@ -9867,13 +9976,13 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "blake2", "byteorder", "digest 0.10.5", "sha2 0.10.6", - "sha3 0.10.5", + "sha3", "sp-std", "twox-hash", ] @@ -9881,7 +9990,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "proc-macro2", "quote", @@ -9892,7 +10001,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -9901,7 +10010,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "proc-macro2", "quote", @@ -9911,7 +10020,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "environmental", "parity-scale-codec", @@ -9922,7 +10031,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "finality-grandpa", "log", @@ -9940,7 +10049,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -9954,7 +10063,7 @@ dependencies = [ [[package]] name = "sp-io" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "bytes", "futures", @@ -9980,7 +10089,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "lazy_static", "sp-core", @@ -9991,7 +10100,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "async-trait", "futures", @@ -10008,7 +10117,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "thiserror", "zstd", @@ -10017,7 +10126,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "log", "parity-scale-codec", @@ -10032,7 +10141,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "parity-scale-codec", "scale-info", @@ -10046,7 +10155,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "sp-api", "sp-core", @@ -10056,7 +10165,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "backtrace", "lazy_static", @@ -10066,7 +10175,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "rustc-hash", "serde", @@ -10076,7 +10185,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "either", "hash256-std-hasher", @@ -10093,12 +10202,13 @@ dependencies = [ "sp-core", "sp-io", "sp-std", + "sp-weights", ] [[package]] name = "sp-runtime-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -10116,7 +10226,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "Inflector", "proc-macro-crate", @@ -10128,7 +10238,7 @@ dependencies = [ [[package]] name = "sp-sandbox" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "log", "parity-scale-codec", @@ -10142,7 +10252,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "parity-scale-codec", "scale-info", @@ -10156,7 +10266,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "parity-scale-codec", "scale-info", @@ -10167,7 +10277,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "hash-db", "log", @@ -10189,12 +10299,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" [[package]] name = "sp-storage" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10207,7 +10317,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "log", "sp-core", @@ -10220,7 +10330,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "async-trait", "futures-timer", @@ -10236,7 +10346,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "parity-scale-codec", "sp-std", @@ -10248,7 +10358,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "sp-api", "sp-runtime", @@ -10257,7 +10367,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "async-trait", "log", @@ -10273,11 +10383,11 @@ dependencies = [ [[package]] name = "sp-trie" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "ahash", "hash-db", - "hashbrown 0.12.3", + "hashbrown", "lazy_static", "lru 0.7.8", "memory-db", @@ -10296,11 +10406,11 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "impl-serde", "parity-scale-codec", - "parity-wasm 0.42.2", + "parity-wasm 0.45.0", "scale-info", "serde", "sp-core-hashing-proc-macro", @@ -10313,7 +10423,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10324,7 +10434,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "impl-trait-for-tuples", "log", @@ -10334,17 +10444,43 @@ dependencies = [ "wasmtime", ] +[[package]] +name = "sp-weights" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +dependencies = [ + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "serde", + "smallvec", + "sp-arithmetic", + "sp-core", + "sp-debug-derive", + "sp-std", +] + [[package]] name = "spin" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "spki" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" +dependencies = [ + "base64ct", + "der", +] + [[package]] name = "ss58-registry" -version = "1.31.0" +version = "1.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1de151faef619cb7b5c26b32d42bc7ddccac0d202beb7a84344b44e9232b92f7" +checksum = "3ab7554f8a8b6f8d71cd5a8e6536ef116e2ce0504cf97ebf16311d58065dc8a6" dependencies = [ "Inflector", "num-format", @@ -10376,7 +10512,22 @@ dependencies = [ "cfg_aliases", "libc", "parking_lot 0.11.2", - "static_init_macro", + "static_init_macro 0.5.0", +] + +[[package]] +name = "static_init" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6" +dependencies = [ + "bitflags", + "cfg_aliases", + "libc", + "parking_lot 0.11.2", + "parking_lot_core 0.8.5", + "static_init_macro 1.0.2", + "winapi", ] [[package]] @@ -10392,6 +10543,19 @@ dependencies = [ "syn", ] +[[package]] +name = "static_init_macro" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a2595fc3aa78f2d0e45dd425b22282dd863273761cc77780914b2cf3003acf" +dependencies = [ + "cfg_aliases", + "memchr", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "statrs" version = "0.15.0" @@ -10449,7 +10613,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "platforms", ] @@ -10457,7 +10621,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -10478,7 +10642,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "futures-util", "hyper", @@ -10491,7 +10655,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "jsonrpsee", "log", @@ -10512,7 +10676,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "ansi_term", "build-helper", @@ -10774,9 +10938,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6edf2d6bc038a43d31353570e27270603f4648d18f5ed10c0e179abe43255af" +checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce" dependencies = [ "futures-core", "pin-project-lite 0.2.9", @@ -10858,8 +11022,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -10869,8 +11033,8 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "expander 0.0.6", "proc-macro-crate", @@ -10930,7 +11094,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "004e1e8f92535694b4cb1444dc5a8073ecf0815e3357f729638b9f8fc4062908" dependencies = [ "hash-db", - "hashbrown 0.12.3", + "hashbrown", "log", "rustc-hex", "smallvec", @@ -10997,7 +11161,7 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.29#cc370aa61e15c18d23a2f686b812fd576a630afe" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" dependencies = [ "clap", "frame-try-runtime", @@ -11301,11 +11465,11 @@ dependencies = [ [[package]] name = "wasm-instrument" -version = "0.1.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "962e5b0401bbb6c887f54e69b8c496ea36f704df65db73e81fd5ff8dc3e63a9f" +checksum = "aa1dafb3e60065305741e83db35c6c2584bb3725b692b5b66148a38d72ace6cd" dependencies = [ - "parity-wasm 0.42.2", + "parity-wasm 0.45.0", ] [[package]] @@ -11325,58 +11489,63 @@ dependencies = [ [[package]] name = "wasmi" -version = "0.9.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca00c5147c319a8ec91ec1a0edbec31e566ce2c9cc93b3f9bb86a9efd0eb795d" +checksum = "06c326c93fbf86419608361a2c925a31754cf109da1b8b55737070b4d6669422" dependencies = [ - "downcast-rs", - "libc", - "libm", - "memory_units", - "num-rational 0.2.4", - "num-traits", - "parity-wasm 0.42.2", + "parity-wasm 0.45.0", "wasmi-validation", + "wasmi_core", ] [[package]] name = "wasmi-validation" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "165343ecd6c018fc09ebcae280752702c9a2ef3e6f8d02f1cfcbdb53ef6d7937" +checksum = "91ff416ad1ff0c42e5a926ed5d5fab74c0f098749aa0ad8b2a34b982ce0e867b" dependencies = [ - "parity-wasm 0.42.2", + "parity-wasm 0.45.0", +] + +[[package]] +name = "wasmi_core" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d20cb3c59b788653d99541c646c561c9dd26506f25c0cebfe810659c54c6d7" +dependencies = [ + "downcast-rs", + "libm", + "memory_units", + "num-rational 0.4.1", + "num-traits", ] [[package]] name = "wasmparser" -version = "0.85.0" +version = "0.89.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "570460c58b21e9150d2df0eaaedbb7816c34bcec009ae0dcc976e40ba81463e7" +checksum = "ab5d3e08b13876f96dd55608d03cd4883a0545884932d5adf11925876c96daef" dependencies = [ "indexmap", ] [[package]] name = "wasmtime" -version = "0.38.3" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f50eadf868ab6a04b7b511460233377d0bfbb92e417b2f6a98b98fef2e098f5" +checksum = "f1f511c4917c83d04da68333921107db75747c4e11a2f654a8e909cc5e0520dc" dependencies = [ "anyhow", - "backtrace", "bincode", "cfg-if 1.0.0", "indexmap", - "lazy_static", "libc", "log", - "object 0.28.4", + "object", "once_cell", "paste", "psm", "rayon", - "region", "serde", "target-lexicon", "wasmparser", @@ -11385,14 +11554,23 @@ dependencies = [ "wasmtime-environ", "wasmtime-jit", "wasmtime-runtime", - "winapi", + "windows-sys 0.36.1", +] + +[[package]] +name = "wasmtime-asm-macros" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39bf3debfe744bf19dd3732990ce6f8c0ced7439e2370ba4e1d8f5a3660a3178" +dependencies = [ + "cfg-if 1.0.0", ] [[package]] name = "wasmtime-cache" -version = "0.38.3" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1df23c642e1376892f3b72f311596976979cbf8b85469680cdd3a8a063d12a2" +checksum = "ece42fa4676a263f7558cdaaf5a71c2592bebcbac22a0580e33cf3406c103da2" dependencies = [ "anyhow", "base64", @@ -11400,19 +11578,19 @@ dependencies = [ "directories-next", "file-per-thread-logger", "log", - "rustix 0.33.7", + "rustix", "serde", "sha2 0.9.9", "toml", - "winapi", + "windows-sys 0.36.1", "zstd", ] [[package]] name = "wasmtime-cranelift" -version = "0.38.3" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f264ff6b4df247d15584f2f53d009fbc90032cfdc2605b52b961bffc71b6eccd" +checksum = "058217e28644b012bdcdf0e445f58d496d78c2e0b6a6dd93558e701591dad705" dependencies = [ "anyhow", "cranelift-codegen", @@ -11422,8 +11600,7 @@ dependencies = [ "cranelift-wasm", "gimli", "log", - "more-asserts", - "object 0.28.4", + "object", "target-lexicon", "thiserror", "wasmparser", @@ -11432,17 +11609,16 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "0.38.3" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "839d2820e4b830f4b9e7aa08d4c0acabf4a5036105d639f6dfa1c6891c73bdc6" +checksum = "c7af06848df28b7661471d9a80d30a973e0f401f2e3ed5396ad7e225ed217047" dependencies = [ "anyhow", "cranelift-entity", "gimli", "indexmap", "log", - "more-asserts", - "object 0.28.4", + "object", "serde", "target-lexicon", "thiserror", @@ -11452,9 +11628,9 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "0.38.3" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef0a0bcbfa18b946d890078ba0e1bc76bcc53eccfb40806c0020ec29dcd1bd49" +checksum = "9028fb63a54185b3c192b7500ef8039c7bb8d7f62bfc9e7c258483a33a3d13bb" dependencies = [ "addr2line", "anyhow", @@ -11463,38 +11639,36 @@ dependencies = [ "cpp_demangle", "gimli", "log", - "object 0.28.4", - "region", + "object", "rustc-demangle", - "rustix 0.33.7", + "rustix", "serde", "target-lexicon", "thiserror", "wasmtime-environ", "wasmtime-jit-debug", "wasmtime-runtime", - "winapi", + "windows-sys 0.36.1", ] [[package]] name = "wasmtime-jit-debug" -version = "0.38.3" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4779d976206c458edd643d1ac622b6c37e4a0800a8b1d25dfbf245ac2f2cac" +checksum = "25e82d4ef93296785de7efca92f7679dc67fe68a13b625a5ecc8d7503b377a37" dependencies = [ - "lazy_static", - "object 0.28.4", - "rustix 0.33.7", + "object", + "once_cell", + "rustix", ] [[package]] name = "wasmtime-runtime" -version = "0.38.3" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7eb6ffa169eb5dcd18ac9473c817358cd57bc62c244622210566d473397954a" +checksum = "9f0e9bea7d517d114fe66b930b2124ee086516ee93eeebfd97f75f366c5b0553" dependencies = [ "anyhow", - "backtrace", "cc", "cfg-if 1.0.0", "indexmap", @@ -11503,21 +11677,21 @@ dependencies = [ "mach", "memfd", "memoffset", - "more-asserts", + "paste", "rand 0.8.5", - "region", - "rustix 0.33.7", + "rustix", "thiserror", + "wasmtime-asm-macros", "wasmtime-environ", "wasmtime-jit-debug", - "winapi", + "windows-sys 0.36.1", ] [[package]] name = "wasmtime-types" -version = "0.38.3" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d932b0ac5336f7308d869703dd225610a6a3aeaa8e968c52b43eed96cefb1c2" +checksum = "69b83e93ed41b8fdc936244cfd5e455480cf1eca1fd60c78a0040038b4ce5075" dependencies = [ "cranelift-entity", "serde", @@ -11565,8 +11739,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "beefy-primitives", "bitvec", @@ -11590,6 +11764,7 @@ dependencies = [ "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", + "pallet-fast-unstake", "pallet-grandpa", "pallet-identity", "pallet-im-online", @@ -11654,8 +11829,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "frame-support", "polkadot-primitives", @@ -11738,6 +11913,27 @@ dependencies = [ "windows_x86_64_msvc 0.36.1", ] +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.0", + "windows_i686_gnu 0.42.0", + "windows_i686_msvc 0.42.0", + "windows_x86_64_gnu 0.42.0", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" + [[package]] name = "windows_aarch64_msvc" version = "0.34.0" @@ -11750,6 +11946,12 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" + [[package]] name = "windows_i686_gnu" version = "0.34.0" @@ -11762,6 +11964,12 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +[[package]] +name = "windows_i686_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" + [[package]] name = "windows_i686_msvc" version = "0.34.0" @@ -11774,6 +11982,12 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +[[package]] +name = "windows_i686_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" + [[package]] name = "windows_x86_64_gnu" version = "0.34.0" @@ -11786,6 +12000,18 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" + [[package]] name = "windows_x86_64_msvc" version = "0.34.0" @@ -11798,6 +12024,12 @@ version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" + [[package]] name = "winreg" version = "0.7.0" @@ -11829,8 +12061,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -11843,8 +12075,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "frame-support", "frame-system", @@ -11863,8 +12095,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "frame-benchmarking", "frame-support", @@ -11881,8 +12113,8 @@ dependencies = [ [[package]] name = "xcm-procedural" -version = "0.9.29" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.29#94078b44fb6c9767bf60ffcaaa3be40681be5a76" +version = "0.9.30" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" dependencies = [ "Inflector", "proc-macro2", diff --git a/node/Cargo.toml b/node/Cargo.toml index b8d2b325..644a12dd 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -10,11 +10,11 @@ edition = "2021" build = "build.rs" [dependencies] -clap = { version = "3.2.20", features = ["derive"] } +clap = { version = "3.2.22", features = ["derive"] } derive_more = "0.99.2" log = "0.4.17" codec = { package = "parity-scale-codec", version = "3.0.0" } -serde = { version = "1.0.144", features = ["derive"] } +serde = { version = "1.0.145", features = ["derive"] } hex-literal = "0.3.4" jsonrpsee = { version = "0.15.1", features = ["server"] } @@ -22,65 +22,65 @@ jsonrpsee = { version = "0.15.1", features = ["server"] } parachain-template-runtime = { path = "../runtime" } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.29" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.29" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sc-network-common = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.29" } -sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.30" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.30" } +sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sc-network-common = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.30" } +sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.29" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.29" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.29" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.29" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.29" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.30" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.30" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.30" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.30" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.30" } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } -cumulus-client-collator = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } -cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } +cumulus-client-collator = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } +cumulus-client-network = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } +cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } [features] default = [] diff --git a/node/src/command.rs b/node/src/command.rs index d1eebd12..7f7bfd14 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -217,6 +217,15 @@ pub fn run() -> Result<()> { )?; cmd.run(partials.client) }), + #[cfg(not(feature = "runtime-benchmarks"))] + BenchmarkCmd::Storage(_) => + return Err(sc_cli::Error::Input( + "Compile with --features=runtime-benchmarks \ + to enable storage benchmarks." + .into(), + ) + .into()), + #[cfg(feature = "runtime-benchmarks")] BenchmarkCmd::Storage(cmd) => runner.sync_run(|config| { let partials = new_partial::( &config, diff --git a/node/src/service.rs b/node/src/service.rs index 9ad3c38e..a4dda555 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -25,7 +25,6 @@ use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface, RelayC use cumulus_relay_chain_rpc_interface::{create_client_and_start_worker, RelayChainRpcInterface}; // Substrate Imports -use sc_client_api::ExecutorProvider; use sc_executor::NativeElseWasmExecutor; use sc_network::NetworkService; use sc_network_common::service::NetworkBlock; @@ -290,7 +289,7 @@ where let prometheus_registry = parachain_config.prometheus_registry().cloned(); let transaction_pool = params.transaction_pool.clone(); let import_queue = cumulus_client_service::SharedImportQueue::new(params.import_queue); - let (network, system_rpc_tx, start_network) = + let (network, system_rpc_tx, tx_handler_controller, start_network) = sc_service::build_network(sc_service::BuildNetworkParams { config: ¶chain_config, client: client.clone(), @@ -328,6 +327,7 @@ where backend: backend.clone(), network: network.clone(), system_rpc_tx, + tx_handler_controller, telemetry: telemetry.as_mut(), })?; @@ -424,23 +424,21 @@ pub fn parachain_build_import_queue( _, _, _, - _, >(cumulus_client_consensus_aura::ImportQueueParams { block_import: client.clone(), client: client.clone(), create_inherent_data_providers: move |_, _| async move { - let time = sp_timestamp::InherentDataProvider::from_system_time(); + let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); let slot = sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration( - *time, + *timestamp, slot_duration, ); - Ok((time, slot)) + Ok((slot, timestamp)) }, registry: config.prometheus_registry(), - can_author_with: sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()), spawner: &task_manager.spawn_essential_handle(), telemetry, }) @@ -497,11 +495,11 @@ pub async fn start_parachain_node( &validation_data, id, ).await; - let time = sp_timestamp::InherentDataProvider::from_system_time(); + let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); let slot = sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration( - *time, + *timestamp, slot_duration, ); @@ -510,7 +508,7 @@ pub async fn start_parachain_node( "Failed to create parachain inherent", ) })?; - Ok((time, slot, parachain_inherent)) + Ok((slot, timestamp, parachain_inherent)) } }, block_import: client.clone(), diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index d312d797..8f2c5edd 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -16,17 +16,17 @@ codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive scale-info = { version = "2.0.0", default-features = false, features = ["derive"] } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.29" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.30" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } [dev-dependencies] serde = { version = "1.0.132" } # Substrate -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } [features] default = ["std"] diff --git a/pallets/template/src/lib.rs b/pallets/template/src/lib.rs index 36a07d2c..18d94bed 100644 --- a/pallets/template/src/lib.rs +++ b/pallets/template/src/lib.rs @@ -23,7 +23,7 @@ pub mod pallet { #[pallet::config] pub trait Config: frame_system::Config { /// Because this pallet emits events, it depends on the runtime's definition of an event. - type Event: From> + IsType<::Event>; + type RuntimeEvent: From> + IsType<::RuntimeEvent>; } #[pallet::pallet] diff --git a/pallets/template/src/mock.rs b/pallets/template/src/mock.rs index 917356c1..4a7ebac0 100644 --- a/pallets/template/src/mock.rs +++ b/pallets/template/src/mock.rs @@ -32,8 +32,8 @@ impl system::Config for Test { type BlockWeights = (); type BlockLength = (); type DbWeight = (); - type Origin = Origin; - type Call = Call; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; type Index = u64; type BlockNumber = u64; type Hash = H256; @@ -41,7 +41,7 @@ impl system::Config for Test { type AccountId = u64; type Lookup = IdentityLookup; type Header = Header; - type Event = Event; + type RuntimeEvent = RuntimeEvent; type BlockHashCount = BlockHashCount; type Version = (); type PalletInfo = PalletInfo; @@ -55,7 +55,7 @@ impl system::Config for Test { } impl pallet_template::Config for Test { - type Event = Event; + type RuntimeEvent = RuntimeEvent; } // Build genesis storage according to the mock runtime. diff --git a/pallets/template/src/tests.rs b/pallets/template/src/tests.rs index 22056586..527aec8e 100644 --- a/pallets/template/src/tests.rs +++ b/pallets/template/src/tests.rs @@ -5,7 +5,7 @@ use frame_support::{assert_noop, assert_ok}; fn it_works_for_default_value() { new_test_ext().execute_with(|| { // Dispatch a signed extrinsic. - assert_ok!(TemplateModule::do_something(Origin::signed(1), 42)); + assert_ok!(TemplateModule::do_something(RuntimeOrigin::signed(1), 42)); // Read pallet storage and assert an expected result. assert_eq!(TemplateModule::something(), Some(42)); }); @@ -15,6 +15,9 @@ fn it_works_for_default_value() { fn correct_error_for_none_value() { new_test_ext().execute_with(|| { // Ensure the expected error is thrown when no value is present. - assert_noop!(TemplateModule::cause_error(Origin::signed(1)), Error::::NoneValue); + assert_noop!( + TemplateModule::cause_error(RuntimeOrigin::signed(1)), + Error::::NoneValue + ); }); } diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index c01fd27a..6c3a9513 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,68 +12,68 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.29" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } hex-literal = { version = "0.3.4", optional = true } log = { version = "0.4.17", default-features = false } -scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } -serde = { version = "1.0.144", optional = true, features = ["derive"] } +scale-info = { version = "2.2.0", default-features = false, features = ["derive"] } +serde = { version = "1.0.145", optional = true, features = ["derive"] } smallvec = "1.9.0" # Local pallet-template = { path = "../pallets/template", default-features = false } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.29" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.29" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.29" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.29" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.30" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.30" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.30" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.29" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.29" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.29" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.29" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.29" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.29" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.30" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.30" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.30" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.30" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.30" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.30" } # Cumulus -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false } -cumulus-pallet-session-benchmarking = {git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false, version = "3.0.0"} -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false } -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false } -parachain-info = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.29", default-features = false } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false } +cumulus-pallet-session-benchmarking = {git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false, version = "3.0.0"} +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false } +pallet-collator-selection = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false } +parachain-info = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false } [features] default = [ @@ -131,7 +131,7 @@ runtime-benchmarks = [ "hex-literal", "frame-benchmarking/runtime-benchmarks", "frame-support/runtime-benchmarks", - "frame-system-benchmarking", + "frame-system-benchmarking/runtime-benchmarks", "frame-system/runtime-benchmarks", "pallet-balances/runtime-benchmarks", "pallet-collator-selection/runtime-benchmarks", diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index bd56bcac..fc0c354f 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -26,11 +26,13 @@ use sp_version::NativeVersion; use sp_version::RuntimeVersion; use frame_support::{ - construct_runtime, parameter_types, + construct_runtime, + dispatch::DispatchClass, + parameter_types, traits::Everything, weights::{ - constants::WEIGHT_PER_SECOND, ConstantMultiplier, DispatchClass, Weight, - WeightToFeeCoefficient, WeightToFeeCoefficients, WeightToFeePolynomial, + constants::WEIGHT_PER_SECOND, ConstantMultiplier, Weight, WeightToFeeCoefficient, + WeightToFeeCoefficients, WeightToFeePolynomial, }, PalletId, }; @@ -104,10 +106,11 @@ pub type SignedExtra = ( ); /// Unchecked extrinsic type as expected by this runtime. -pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; +pub type UncheckedExtrinsic = + generic::UncheckedExtrinsic; /// Extrinsic type that has already been checked. -pub type CheckedExtrinsic = generic::CheckedExtrinsic; +pub type CheckedExtrinsic = generic::CheckedExtrinsic; /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< @@ -258,7 +261,7 @@ impl frame_system::Config for Runtime { /// The identifier used to distinguish between accounts. type AccountId = AccountId; /// The aggregated dispatch type that is available for extrinsics. - type Call = Call; + type RuntimeCall = RuntimeCall; /// The lookup mechanism to get account ID from whatever is passed in dispatchers. type Lookup = AccountIdLookup; /// The index type for storing how many extrinsics an account has signed. @@ -272,9 +275,9 @@ impl frame_system::Config for Runtime { /// The header type. type Header = generic::Header; /// The ubiquitous event type. - type Event = Event; + type RuntimeEvent = RuntimeEvent; /// The ubiquitous origin type. - type Origin = Origin; + type RuntimeOrigin = RuntimeOrigin; /// Maximum number of block number to block hash mappings to keep (oldest pruned first). type BlockHashCount = BlockHashCount; /// Runtime version. @@ -338,7 +341,7 @@ impl pallet_balances::Config for Runtime { /// The type for recording an account's balance. type Balance = Balance; /// The ubiquitous event type. - type Event = Event; + type RuntimeEvent = RuntimeEvent; type DustRemoval = (); type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; @@ -354,7 +357,7 @@ parameter_types! { } impl pallet_transaction_payment::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter; type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; @@ -368,7 +371,7 @@ parameter_types! { } impl cumulus_pallet_parachain_system::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type OnSystemEvent = (); type SelfParaId = parachain_info::Pallet; type OutboundXcmpMessageSource = XcmpQueue; @@ -384,7 +387,7 @@ impl parachain_info::Config for Runtime {} impl cumulus_pallet_aura_ext::Config for Runtime {} impl cumulus_pallet_xcmp_queue::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type XcmExecutor = XcmExecutor; type ChannelInfo = ParachainSystem; type VersionWrapper = (); @@ -395,7 +398,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { } impl cumulus_pallet_dmp_queue::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type XcmExecutor = XcmExecutor; type ExecuteOverweightOrigin = EnsureRoot; } @@ -407,7 +410,7 @@ parameter_types! { } impl pallet_session::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type ValidatorId = ::AccountId; // we don't have stash and controller, thus we don't need the convert as well. type ValidatorIdOf = pallet_collator_selection::IdentityCollator; @@ -439,7 +442,7 @@ parameter_types! { pub type CollatorSelectionUpdateOrigin = EnsureRoot; impl pallet_collator_selection::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type Currency = Balances; type UpdateOrigin = CollatorSelectionUpdateOrigin; type PotId = PotId; @@ -456,7 +459,7 @@ impl pallet_collator_selection::Config for Runtime { /// Configure the pallet template in pallets/template. impl pallet_template::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; } // Create the runtime by composing the FRAME pallets that were previously configured. @@ -613,17 +616,17 @@ impl_runtime_apis! { } } - impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi for Runtime { fn query_call_info( - call: Call, + call: RuntimeCall, len: u32, ) -> pallet_transaction_payment::RuntimeDispatchInfo { TransactionPayment::query_call_info(call, len) } fn query_call_fee_details( - call: Call, + call: RuntimeCall, len: u32, ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_call_fee_details(call, len) diff --git a/runtime/src/weights/block_weights.rs b/runtime/src/weights/block_weights.rs index 7d4a931b..c0043073 100644 --- a/runtime/src/weights/block_weights.rs +++ b/runtime/src/weights/block_weights.rs @@ -39,11 +39,14 @@ pub mod constants { // At least 100 µs. assert!( - w >= 100u64 * constants::WEIGHT_PER_MICROS, + w.ref_time() >= 100u64 * constants::WEIGHT_PER_MICROS.ref_time(), "Weight should be at least 100 µs." ); // At most 50 ms. - assert!(w <= 50u64 * constants::WEIGHT_PER_MILLIS, "Weight should be at most 50 ms."); + assert!( + w.ref_time() <= 50u64 * constants::WEIGHT_PER_MILLIS.ref_time(), + "Weight should be at most 50 ms." + ); } } } diff --git a/runtime/src/weights/extrinsic_weights.rs b/runtime/src/weights/extrinsic_weights.rs index 6c6b4a49..3ce6b73d 100644 --- a/runtime/src/weights/extrinsic_weights.rs +++ b/runtime/src/weights/extrinsic_weights.rs @@ -38,9 +38,15 @@ pub mod constants { let w = super::constants::ExtrinsicBaseWeight::get(); // At least 10 µs. - assert!(w >= 10u64 * constants::WEIGHT_PER_MICROS, "Weight should be at least 10 µs."); + assert!( + w.ref_time() >= 10u64 * constants::WEIGHT_PER_MICROS.ref_time(), + "Weight should be at least 10 µs." + ); // At most 1 ms. - assert!(w <= constants::WEIGHT_PER_MILLIS, "Weight should be at most 1 ms."); + assert!( + w.ref_time() <= constants::WEIGHT_PER_MILLIS.ref_time(), + "Weight should be at most 1 ms." + ); } } } diff --git a/runtime/src/weights/paritydb_weights.rs b/runtime/src/weights/paritydb_weights.rs index 8083ccb4..dca7d348 100644 --- a/runtime/src/weights/paritydb_weights.rs +++ b/runtime/src/weights/paritydb_weights.rs @@ -42,20 +42,20 @@ pub mod constants { fn sane() { // At least 1 µs. assert!( - W::get().reads(1) >= constants::WEIGHT_PER_MICROS, + W::get().reads(1).ref_time() >= constants::WEIGHT_PER_MICROS.ref_time(), "Read weight should be at least 1 µs." ); assert!( - W::get().writes(1) >= constants::WEIGHT_PER_MICROS, + W::get().writes(1).ref_time() >= constants::WEIGHT_PER_MICROS.ref_time(), "Write weight should be at least 1 µs." ); // At most 1 ms. assert!( - W::get().reads(1) <= constants::WEIGHT_PER_MILLIS, + W::get().reads(1).ref_time() <= constants::WEIGHT_PER_MILLIS.ref_time(), "Read weight should be at most 1 ms." ); assert!( - W::get().writes(1) <= constants::WEIGHT_PER_MILLIS, + W::get().writes(1).ref_time() <= constants::WEIGHT_PER_MILLIS.ref_time(), "Write weight should be at most 1 ms." ); } diff --git a/runtime/src/weights/rocksdb_weights.rs b/runtime/src/weights/rocksdb_weights.rs index 1db87f14..87867ebf 100644 --- a/runtime/src/weights/rocksdb_weights.rs +++ b/runtime/src/weights/rocksdb_weights.rs @@ -42,20 +42,20 @@ pub mod constants { fn sane() { // At least 1 µs. assert!( - W::get().reads(1) >= constants::WEIGHT_PER_MICROS, + W::get().reads(1).ref_time() >= constants::WEIGHT_PER_MICROS.ref_time(), "Read weight should be at least 1 µs." ); assert!( - W::get().writes(1) >= constants::WEIGHT_PER_MICROS, + W::get().writes(1).ref_time() >= constants::WEIGHT_PER_MICROS.ref_time(), "Write weight should be at least 1 µs." ); // At most 1 ms. assert!( - W::get().reads(1) <= constants::WEIGHT_PER_MILLIS, + W::get().reads(1).ref_time() <= constants::WEIGHT_PER_MILLIS.ref_time(), "Read weight should be at most 1 ms." ); assert!( - W::get().writes(1) <= constants::WEIGHT_PER_MILLIS, + W::get().writes(1).ref_time() <= constants::WEIGHT_PER_MILLIS.ref_time(), "Write weight should be at most 1 ms." ); } diff --git a/runtime/src/xcm_config.rs b/runtime/src/xcm_config.rs index f01b7166..c06bfb95 100644 --- a/runtime/src/xcm_config.rs +++ b/runtime/src/xcm_config.rs @@ -1,6 +1,6 @@ use super::{ - AccountId, Balances, Call, Event, Origin, ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, - WeightToFee, XcmpQueue, + AccountId, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, + RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, }; use core::marker::PhantomData; use frame_support::{ @@ -23,7 +23,7 @@ use xcm_executor::{traits::ShouldExecute, XcmExecutor}; parameter_types! { pub const RelayLocation: MultiLocation = MultiLocation::parent(); pub const RelayNetwork: NetworkId = NetworkId::Any; - pub RelayChainOrigin: Origin = cumulus_pallet_xcm::Origin::Relay.into(); + pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); } @@ -60,18 +60,18 @@ pub type XcmOriginToTransactDispatchOrigin = ( // Sovereign account converter; this attempts to derive an `AccountId` from the origin location // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for // foreign chains who want to have a local sovereign account on this chain which they control. - SovereignSignedViaLocation, + SovereignSignedViaLocation, // Native converter for Relay-chain (Parent) location; will converts to a `Relay` origin when // recognized. - RelayChainAsNative, + RelayChainAsNative, // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when // recognized. - SiblingParachainAsNative, + SiblingParachainAsNative, // Native signed account converter; this just converts an `AccountId32` origin into a normal - // `Origin::Signed` origin of the same 32-byte value. - SignedAccountId32AsNative, + // `RuntimeOrigin::Signed` origin of the same 32-byte value. + SignedAccountId32AsNative, // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. - XcmPassthrough, + XcmPassthrough, ); parameter_types! { @@ -100,9 +100,9 @@ where Deny: ShouldExecute, Allow: ShouldExecute, { - fn should_execute( + fn should_execute( origin: &MultiLocation, - message: &mut Xcm, + message: &mut Xcm, max_weight: XCMWeight, weight_credit: &mut XCMWeight, ) -> Result<(), ()> { @@ -114,9 +114,10 @@ where // See issue #5233 pub struct DenyReserveTransferToRelayChain; impl ShouldExecute for DenyReserveTransferToRelayChain { - fn should_execute( + fn should_execute( origin: &MultiLocation, - message: &mut Xcm, + + message: &mut Xcm, _max_weight: XCMWeight, _weight_credit: &mut XCMWeight, ) -> Result<(), ()> { @@ -163,7 +164,7 @@ pub type Barrier = DenyThenTry< pub struct XcmConfig; impl xcm_executor::Config for XcmConfig { - type Call = Call; + type RuntimeCall = RuntimeCall; type XcmSender = XcmRouter; // How to withdraw and deposit an asset. type AssetTransactor = LocalAssetTransactor; @@ -172,7 +173,7 @@ impl xcm_executor::Config for XcmConfig { type IsTeleporter = (); // Teleporting is disabled. type LocationInverter = LocationInverter; type Barrier = Barrier; - type Weigher = FixedWeightBounds; + type Weigher = FixedWeightBounds; type Trader = UsingComponents>; type ResponseHandler = PolkadotXcm; @@ -182,7 +183,7 @@ impl xcm_executor::Config for XcmConfig { } /// No local origins on this chain are allowed to dispatch XCM sends/executions. -pub type LocalOriginToLocation = SignedToAccountId32; +pub type LocalOriginToLocation = SignedToAccountId32; /// The means for routing XCM messages which are not for local execution into the right message /// queues. @@ -194,20 +195,20 @@ pub type XcmRouter = ( ); impl pallet_xcm::Config for Runtime { - type Event = Event; - type SendXcmOrigin = EnsureXcmOrigin; + type RuntimeEvent = RuntimeEvent; + type SendXcmOrigin = EnsureXcmOrigin; type XcmRouter = XcmRouter; - type ExecuteXcmOrigin = EnsureXcmOrigin; + type ExecuteXcmOrigin = EnsureXcmOrigin; type XcmExecuteFilter = Nothing; // ^ Disable dispatchable execute on the XCM pallet. // Needs to be `Everything` for local testing. type XcmExecutor = XcmExecutor; type XcmTeleportFilter = Everything; type XcmReserveTransferFilter = Nothing; - type Weigher = FixedWeightBounds; + type Weigher = FixedWeightBounds; type LocationInverter = LocationInverter; - type Origin = Origin; - type Call = Call; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; // ^ Override for AdvertisedXcmVersion default @@ -215,6 +216,6 @@ impl pallet_xcm::Config for Runtime { } impl cumulus_pallet_xcm::Config for Runtime { - type Event = Event; + type RuntimeEvent = RuntimeEvent; type XcmExecutor = XcmExecutor; } From 664114fe707c089c112a2db770403cccf01c256d Mon Sep 17 00:00:00 2001 From: Paritytech CI <52199148+paritytech-ci@users.noreply.github.com> Date: Tue, 22 Nov 2022 03:21:46 +0200 Subject: [PATCH 68/91] Auto-Update substrate-parachain-template from polkadot-v0.9.32 (#138) * Auto-Update substrate-parachain-template from polkadot-v0.9.32 * upstream PRs 1882 and 1860 included Co-authored-by: substrate-developer-hub Co-authored-by: Dan Shields --- Cargo.lock | 1569 ++++++++++++++++------------------- node/Cargo.toml | 105 ++- node/src/cli.rs | 12 +- node/src/command.rs | 33 +- node/src/service.rs | 319 +++---- pallets/template/Cargo.toml | 14 +- runtime/Cargo.toml | 94 +-- runtime/src/lib.rs | 6 +- 8 files changed, 963 insertions(+), 1189 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4581fcf9..4e1798ef 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -43,7 +43,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ "cfg-if 1.0.0", - "cipher 0.3.0", + "cipher", "cpufeatures", "opaque-debug 0.3.0", ] @@ -56,7 +56,7 @@ checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6" dependencies = [ "aead", "aes", - "cipher 0.3.0", + "cipher", "ctr", "ghash", "subtle", @@ -293,9 +293,9 @@ dependencies = [ [[package]] name = "async-std-resolver" -version = "0.21.2" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f2f8a4a203be3325981310ab243a28e6e4ea55b6519bffce05d41ab60e09ad8" +checksum = "6ba50e24d9ee0a8950d3d03fc6d0dd10aa14b5de3b101949b4e160f7fee7c723" dependencies = [ "async-std", "async-trait", @@ -430,7 +430,7 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "array-bytes", "async-trait", @@ -467,7 +467,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "beefy-gadget", "beefy-primitives", @@ -487,32 +487,30 @@ dependencies = [ [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "beefy-primitives", "sp-api", + "sp-runtime", ] [[package]] name = "beefy-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "parity-scale-codec", "scale-info", + "serde", "sp-api", "sp-application-crypto", "sp-core", + "sp-io", + "sp-mmr-primitives", "sp-runtime", "sp-std", ] -[[package]] -name = "bimap" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0455254eb5c6964c4545d8bac815e1a1be4f3afe0ae695ea539c12d728d44b" - [[package]] name = "bincode" version = "1.3.3" @@ -524,9 +522,9 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.59.2" +version = "0.60.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bd2a9a458e8f4304c52c43ebb0cfbd520289f8379a52e329a38afda99bf8eb8" +checksum = "062dddbc1ba4aca46de6338e2bf87771414c335f7b2f2036e8f3e9befebf88e6" dependencies = [ "bitflags", "cexpr", @@ -830,7 +828,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c80e5460aa66fe3b91d40bcbdab953a597b60053e34d684ac6903f863b680a6" dependencies = [ "cfg-if 1.0.0", - "cipher 0.3.0", + "cipher", "cpufeatures", "zeroize", ] @@ -843,7 +841,7 @@ checksum = "a18446b09be63d457bbec447509e85f662f32952b035ce892290396bc0b0cff5" dependencies = [ "aead", "chacha20", - "cipher 0.3.0", + "cipher", "poly1305", "zeroize", ] @@ -885,16 +883,6 @@ dependencies = [ "generic-array 0.14.6", ] -[[package]] -name = "cipher" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e" -dependencies = [ - "crypto-common", - "inout", -] - [[package]] name = "ckb-merkle-mountain-range" version = "0.3.2" @@ -912,31 +900,29 @@ checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3" dependencies = [ "glob", "libc", - "libloading 0.7.3", + "libloading", ] [[package]] name = "clap" -version = "3.2.22" +version = "4.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86447ad904c7fb335a790c9d7fe3d0d971dc523b8ccd1561a520de9a85302750" +checksum = "2148adefda54e14492fb9bddcc600b4344c5d1a3123bd666dcb939c6f0e0e57e" dependencies = [ "atty", "bitflags", "clap_derive", "clap_lex", - "indexmap", "once_cell", "strsim", "termcolor", - "textwrap", ] [[package]] name = "clap_derive" -version = "3.2.18" +version = "4.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65" +checksum = "0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014" dependencies = [ "heck", "proc-macro-error", @@ -947,22 +933,13 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.2.4" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8" dependencies = [ "os_str_bytes", ] -[[package]] -name = "cmake" -version = "0.1.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8ad8cef104ac57b68b89df3208164d228503abbdce70f6880ffa3d970e7443a" -dependencies = [ - "cc", -] - [[package]] name = "coarsetime" version = "0.1.22" @@ -1290,24 +1267,13 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" dependencies = [ - "cipher 0.3.0", -] - -[[package]] -name = "cuckoofilter" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b810a8449931679f64cd7eef1bbd0fa315801b6d5d9cdc1ace2804d6529eee18" -dependencies = [ - "byteorder", - "fnv", - "rand 0.7.3", + "cipher", ] [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "clap", "parity-scale-codec", @@ -1322,12 +1288,11 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-primitives-core", - "cumulus-relay-chain-interface", "futures", "parity-scale-codec", "parking_lot 0.12.1", @@ -1346,7 +1311,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1375,7 +1340,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1385,7 +1350,6 @@ dependencies = [ "polkadot-primitives", "sc-client-api", "sc-consensus", - "sp-api", "sp-blockchain", "sp-consensus", "sp-runtime", @@ -1396,11 +1360,10 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "async-trait", "cumulus-relay-chain-interface", - "derive_more", "futures", "futures-timer", "parity-scale-codec", @@ -1409,7 +1372,6 @@ dependencies = [ "polkadot-parachain", "polkadot-primitives", "sc-client-api", - "sp-api", "sp-blockchain", "sp-consensus", "sp-core", @@ -1421,7 +1383,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -1435,7 +1397,6 @@ dependencies = [ "rand 0.8.5", "sc-client-api", "sc-consensus", - "sp-api", "sp-consensus", "sp-maybe-compressed-blob", "sp-runtime", @@ -1445,7 +1406,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1454,34 +1415,27 @@ dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", "parking_lot 0.12.1", - "polkadot-overseer", "polkadot-primitives", "sc-client-api", "sc-consensus", - "sc-consensus-babe", "sc-service", - "sc-telemetry", - "sc-tracing", "sp-api", "sp-blockchain", "sp-consensus", "sp-core", "sp-runtime", - "tracing", ] [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ - "frame-executive", "frame-support", "frame-system", "pallet-aura", "parity-scale-codec", "scale-info", - "serde", "sp-application-crypto", "sp-consensus-aura", "sp-runtime", @@ -1491,7 +1445,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1503,13 +1457,12 @@ dependencies = [ "sp-runtime", "sp-std", "xcm", - "xcm-executor", ] [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -1520,11 +1473,9 @@ dependencies = [ "frame-system", "impl-trait-for-tuples", "log", - "pallet-balances", "parity-scale-codec", "polkadot-parachain", "scale-info", - "serde", "sp-core", "sp-externalities", "sp-inherents", @@ -1534,13 +1485,12 @@ dependencies = [ "sp-std", "sp-trie", "sp-version", - "xcm", ] [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1551,7 +1501,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "frame-benchmarking", "frame-support", @@ -1565,14 +1515,13 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "serde", "sp-io", "sp-runtime", "sp-std", @@ -1582,7 +1531,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1601,9 +1550,8 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ - "frame-support", "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", @@ -1617,7 +1565,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1640,7 +1588,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "cumulus-primitives-core", "futures", @@ -1653,18 +1601,14 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "cumulus-primitives-core", "frame-support", "log", "parity-scale-codec", - "polkadot-core-primitives", - "polkadot-parachain", - "polkadot-primitives", "sp-runtime", "sp-std", - "sp-trie", "xcm", "xcm-builder", "xcm-executor", @@ -1673,7 +1617,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1685,47 +1629,83 @@ dependencies = [ "polkadot-service", "sc-cli", "sc-client-api", - "sc-consensus-babe", - "sc-network", "sc-sysinfo", "sc-telemetry", "sc-tracing", "sp-api", - "sp-blockchain", "sp-consensus", "sp-core", "sp-runtime", "sp-state-machine", - "tracing", ] [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "async-trait", "cumulus-primitives-core", - "derive_more", "futures", "jsonrpsee-core", "parity-scale-codec", - "parking_lot 0.12.1", "polkadot-overseer", "polkadot-service", "sc-client-api", "sp-api", "sp-blockchain", - "sp-core", - "sp-runtime", "sp-state-machine", "thiserror", ] +[[package]] +name = "cumulus-relay-chain-minimal-node" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +dependencies = [ + "array-bytes", + "async-trait", + "cumulus-primitives-core", + "cumulus-relay-chain-interface", + "cumulus-relay-chain-rpc-interface", + "futures", + "lru 0.8.1", + "polkadot-availability-distribution", + "polkadot-core-primitives", + "polkadot-network-bridge", + "polkadot-node-core-av-store", + "polkadot-node-network-protocol", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-primitives", + "polkadot-service", + "sc-authority-discovery", + "sc-client-api", + "sc-consensus", + "sc-keystore", + "sc-network", + "sc-network-common", + "sc-network-light", + "sc-network-sync", + "sc-service", + "sc-telemetry", + "sc-tracing", + "sc-transaction-pool", + "sc-transaction-pool-api", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe", + "sp-runtime", + "tokio", + "tracing", + "url", +] + [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "async-trait", "backoff", @@ -1735,11 +1715,12 @@ dependencies = [ "futures-timer", "jsonrpsee", "parity-scale-codec", - "parking_lot 0.12.1", "polkadot-service", "sc-client-api", "sc-rpc-api", "sp-api", + "sp-authority-discovery", + "sp-consensus-babe", "sp-core", "sp-runtime", "sp-state-machine", @@ -1752,7 +1733,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1904,6 +1885,12 @@ dependencies = [ "syn", ] +[[package]] +name = "difflib" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" + [[package]] name = "digest" version = "0.8.1" @@ -1984,6 +1971,12 @@ dependencies = [ "quick-error", ] +[[package]] +name = "downcast" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" + [[package]] name = "downcast-rs" version = "1.2.0" @@ -2098,9 +2091,9 @@ dependencies = [ [[package]] name = "enum-as-inner" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21cdad81446a7f7dc43f6a77409efeb9733d2fa65553efef6018ef257c959b73" +checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" dependencies = [ "heck", "proc-macro2", @@ -2324,9 +2317,9 @@ dependencies = [ [[package]] name = "fixed-hash" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", "rand 0.8.5", @@ -2351,6 +2344,15 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +dependencies = [ + "num-traits", +] + [[package]] name = "fnv" version = "1.0.7" @@ -2360,7 +2362,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "parity-scale-codec", ] @@ -2374,10 +2376,16 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fragile" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" + [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-support", "frame-system", @@ -2400,7 +2408,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "Inflector", "array-bytes", @@ -2451,7 +2459,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2462,7 +2470,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2478,7 +2486,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-support", "frame-system", @@ -2507,7 +2515,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "bitflags", "frame-metadata", @@ -2539,7 +2547,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "Inflector", "cfg-expr", @@ -2553,7 +2561,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2565,7 +2573,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "proc-macro2", "quote", @@ -2575,7 +2583,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-support", "log", @@ -2593,7 +2601,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -2608,7 +2616,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "parity-scale-codec", "sp-api", @@ -2617,7 +2625,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-support", "parity-scale-codec", @@ -2632,18 +2640,6 @@ version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64db3e262960f0662f43a6366788d5f10f7f244b8f7d7d987f560baf5ded5c50" -[[package]] -name = "fs-swap" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03d47dad3685eceed8488986cad3d5027165ea5edb164331770e2059555f10a5" -dependencies = [ - "lazy_static", - "libc", - "libloading 0.5.2", - "winapi", -] - [[package]] name = "fs2" version = "0.4.3" @@ -2997,12 +2993,6 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" -[[package]] -name = "hex_fmt" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b07f60793ff0a4d9cef0f18e63b5357e06209987153a64648c972c1e5aff336f" - [[package]] name = "hmac" version = "0.8.1" @@ -3181,9 +3171,9 @@ dependencies = [ [[package]] name = "if-watch" -version = "1.1.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "015a7df1eb6dda30df37f34b63ada9b7b352984b0e84de2a20ed526345000791" +checksum = "065c008e570a43c00de6aed9714035e5ea6a498c255323db9091722af6ee67dd" dependencies = [ "async-io", "core-foundation", @@ -3208,9 +3198,9 @@ dependencies = [ [[package]] name = "impl-serde" -version = "0.3.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" dependencies = [ "serde", ] @@ -3237,15 +3227,6 @@ dependencies = [ "serde", ] -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "generic-array 0.14.6", -] - [[package]] name = "instant" version = "0.1.12" @@ -3497,8 +3478,8 @@ checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838" [[package]] name = "kusama-runtime" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "beefy-primitives", "bitvec", @@ -3521,6 +3502,7 @@ dependencies = [ "pallet-bounties", "pallet-child-bounties", "pallet-collective", + "pallet-conviction-voting", "pallet-democracy", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", @@ -3540,7 +3522,9 @@ dependencies = [ "pallet-offences-benchmarking", "pallet-preimage", "pallet-proxy", + "pallet-ranked-collective", "pallet-recovery", + "pallet-referenda", "pallet-scheduler", "pallet-session", "pallet-session-benchmarking", @@ -3554,6 +3538,7 @@ dependencies = [ "pallet-treasury", "pallet-utility", "pallet-vesting", + "pallet-whitelist", "pallet-xcm", "pallet-xcm-benchmarks", "parity-scale-codec", @@ -3591,14 +3576,16 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "frame-support", "polkadot-primitives", "polkadot-runtime-common", "smallvec", + "sp-core", "sp-runtime", + "sp-weights", ] [[package]] @@ -3612,9 +3599,9 @@ dependencies = [ [[package]] name = "kvdb" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a301d8ecb7989d4a6e2c57a49baca77d353bdbf879909debe3f375fe25d61f86" +checksum = "585089ceadba0197ffe9af6740ab350b325e3c1f5fccfbc3522e0250c750409b" dependencies = [ "parity-util-mem", "smallvec", @@ -3622,9 +3609,9 @@ dependencies = [ [[package]] name = "kvdb-memorydb" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ece7e668abd21387aeb6628130a6f4c802787f014fa46bc83221448322250357" +checksum = "40d109c87bfb7759edd2a49b2649c1afe25af785d930ad6a38479b4dc70dd873" dependencies = [ "kvdb", "parity-util-mem", @@ -3633,15 +3620,13 @@ dependencies = [ [[package]] name = "kvdb-rocksdb" -version = "0.15.2" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca7fbdfd71cd663dceb0faf3367a99f8cf724514933e9867cec4995b6027cbc1" +checksum = "c076cc2cdbac89b9910c853a36c957d3862a779f31c2661174222cefb49ee597" dependencies = [ - "fs-swap", "kvdb", "log", "num_cpus", - "owning_ref", "parity-util-mem", "parking_lot 0.12.1", "regex", @@ -3667,16 +3652,6 @@ version = "0.2.135" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c" -[[package]] -name = "libloading" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" -dependencies = [ - "cc", - "winapi", -] - [[package]] name = "libloading" version = "0.7.3" @@ -3695,9 +3670,9 @@ checksum = "292a948cd991e376cf75541fe5b97a1081d713c618b4f1b9500f8844e49eb565" [[package]] name = "libp2p" -version = "0.46.1" +version = "0.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81327106887e42d004fbdab1fef93675be2e2e07c1b95fce45e2cc813485611d" +checksum = "ec878fda12ebec479186b3914ebc48ff180fa4c51847e11a1a68bf65249e02c1" dependencies = [ "bytes", "futures", @@ -3705,12 +3680,8 @@ dependencies = [ "getrandom 0.2.7", "instant", "lazy_static", - "libp2p-autonat", "libp2p-core", - "libp2p-deflate", "libp2p-dns", - "libp2p-floodsub", - "libp2p-gossipsub", "libp2p-identify", "libp2p-kad", "libp2p-mdns", @@ -3718,49 +3689,24 @@ dependencies = [ "libp2p-mplex", "libp2p-noise", "libp2p-ping", - "libp2p-plaintext", - "libp2p-pnet", - "libp2p-relay", - "libp2p-rendezvous", "libp2p-request-response", "libp2p-swarm", "libp2p-swarm-derive", "libp2p-tcp", - "libp2p-uds", "libp2p-wasm-ext", "libp2p-websocket", "libp2p-yamux", "multiaddr", "parking_lot 0.12.1", "pin-project", - "rand 0.7.3", "smallvec", ] -[[package]] -name = "libp2p-autonat" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4decc51f3573653a9f4ecacb31b1b922dd20c25a6322bb15318ec04287ec46f9" -dependencies = [ - "async-trait", - "futures", - "futures-timer", - "instant", - "libp2p-core", - "libp2p-request-response", - "libp2p-swarm", - "log", - "prost 0.10.4", - "prost-build 0.10.4", - "rand 0.8.5", -] - [[package]] name = "libp2p-core" -version = "0.34.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf9b94cefab7599b2d3dff2f93bee218c6621d68590b23ede4485813cbcece6" +checksum = "799676bb0807c788065e57551c6527d461ad572162b0519d1958946ff9e0539d" dependencies = [ "asn1_der", "bs58", @@ -3771,17 +3717,15 @@ dependencies = [ "futures-timer", "instant", "lazy_static", - "libsecp256k1", "log", "multiaddr", "multihash", "multistream-select", "parking_lot 0.12.1", "pin-project", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "rand 0.8.5", - "ring", "rw-stream-sink", "sha2 0.10.6", "smallvec", @@ -3791,22 +3735,11 @@ dependencies = [ "zeroize", ] -[[package]] -name = "libp2p-deflate" -version = "0.34.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0183dc2a3da1fbbf85e5b6cf51217f55b14f5daea0c455a9536eef646bfec71" -dependencies = [ - "flate2", - "futures", - "libp2p-core", -] - [[package]] name = "libp2p-dns" -version = "0.34.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cbf54723250fa5d521383be789bf60efdabe6bacfb443f87da261019a49b4b5" +checksum = "2322c9fb40d99101def6a01612ee30500c89abbbecb6297b3cd252903a4c1720" dependencies = [ "async-std-resolver", "futures", @@ -3817,57 +3750,11 @@ dependencies = [ "trust-dns-resolver", ] -[[package]] -name = "libp2p-floodsub" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98a4b6ffd53e355775d24b76f583fdda54b3284806f678499b57913adb94f231" -dependencies = [ - "cuckoofilter", - "fnv", - "futures", - "libp2p-core", - "libp2p-swarm", - "log", - "prost 0.10.4", - "prost-build 0.10.4", - "rand 0.7.3", - "smallvec", -] - -[[package]] -name = "libp2p-gossipsub" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74b4b888cfbeb1f5551acd3aa1366e01bf88ede26cc3c4645d0d2d004d5ca7b0" -dependencies = [ - "asynchronous-codec", - "base64", - "byteorder", - "bytes", - "fnv", - "futures", - "hex_fmt", - "instant", - "libp2p-core", - "libp2p-swarm", - "log", - "prometheus-client", - "prost 0.10.4", - "prost-build 0.10.4", - "rand 0.7.3", - "regex", - "sha2 0.10.6", - "smallvec", - "unsigned-varint", - "wasm-timer", -] - [[package]] name = "libp2p-identify" -version = "0.37.0" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c50b585518f8efd06f93ac2f976bd672e17cdac794644b3117edd078e96bda06" +checksum = "dcf9a121f699e8719bda2e6e9e9b6ddafc6cff4602471d6481c1067930ccb29b" dependencies = [ "asynchronous-codec", "futures", @@ -3875,9 +3762,9 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "lru 0.7.8", - "prost 0.10.4", - "prost-build 0.10.4", + "lru 0.8.1", + "prost", + "prost-build", "prost-codec", "smallvec", "thiserror", @@ -3886,9 +3773,9 @@ dependencies = [ [[package]] name = "libp2p-kad" -version = "0.38.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740862893bb5f06ac24acc9d49bdeadc3a5e52e51818a30a25c1f3519da2c851" +checksum = "6721c200e2021f6c3fab8b6cf0272ead8912d871610ee194ebd628cecf428f22" dependencies = [ "arrayvec 0.7.2", "asynchronous-codec", @@ -3901,9 +3788,9 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "prost 0.10.4", - "prost-build 0.10.4", - "rand 0.7.3", + "prost", + "prost-build", + "rand 0.8.5", "sha2 0.10.6", "smallvec", "thiserror", @@ -3914,16 +3801,15 @@ dependencies = [ [[package]] name = "libp2p-mdns" -version = "0.38.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66e5e5919509603281033fd16306c61df7a4428ce274b67af5e14b07de5cdcb2" +checksum = "761704e727f7d68d58d7bc2231eafae5fc1b9814de24290f126df09d4bd37a15" dependencies = [ "async-io", "data-encoding", "dns-parser", "futures", "if-watch", - "lazy_static", "libp2p-core", "libp2p-swarm", "log", @@ -3935,25 +3821,23 @@ dependencies = [ [[package]] name = "libp2p-metrics" -version = "0.7.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef8aff4a1abef42328fbb30b17c853fff9be986dc39af17ee39f9c5f755c5e0c" +checksum = "9ee31b08e78b7b8bfd1c4204a9dd8a87b4fcdf6dafc57eb51701c1c264a81cb9" dependencies = [ "libp2p-core", - "libp2p-gossipsub", "libp2p-identify", "libp2p-kad", "libp2p-ping", - "libp2p-relay", "libp2p-swarm", "prometheus-client", ] [[package]] name = "libp2p-mplex" -version = "0.34.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61fd1b20638ec209c5075dfb2e8ce6a7ea4ec3cd3ad7b77f7a477c06d53322e2" +checksum = "692664acfd98652de739a8acbb0a0d670f1d67190a49be6b4395e22c37337d89" dependencies = [ "asynchronous-codec", "bytes", @@ -3962,16 +3846,16 @@ dependencies = [ "log", "nohash-hasher", "parking_lot 0.12.1", - "rand 0.7.3", + "rand 0.8.5", "smallvec", "unsigned-varint", ] [[package]] name = "libp2p-noise" -version = "0.37.0" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "762408cb5d84b49a600422d7f9a42c18012d8da6ebcd570f9a4a4290ba41fb6f" +checksum = "048155686bd81fe6cb5efdef0c6290f25ad32a0a42e8f4f72625cf6a505a206f" dependencies = [ "bytes", "curve25519-dalek 3.2.0", @@ -3979,8 +3863,8 @@ dependencies = [ "lazy_static", "libp2p-core", "log", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "rand 0.8.5", "sha2 0.10.6", "snow", @@ -3991,9 +3875,9 @@ dependencies = [ [[package]] name = "libp2p-ping" -version = "0.37.0" +version = "0.40.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "100a6934ae1dbf8a693a4e7dd1d730fd60b774dafc45688ed63b554497c6c925" +checksum = "7228b9318d34689521349a86eb39a3c3a802c9efc99a0568062ffb80913e3f91" dependencies = [ "futures", "futures-timer", @@ -4001,95 +3885,15 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "rand 0.7.3", - "void", -] - -[[package]] -name = "libp2p-plaintext" -version = "0.34.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be27bf0820a6238a4e06365b096d428271cce85a129cf16f2fe9eb1610c4df86" -dependencies = [ - "asynchronous-codec", - "bytes", - "futures", - "libp2p-core", - "log", - "prost 0.10.4", - "prost-build 0.10.4", - "unsigned-varint", - "void", -] - -[[package]] -name = "libp2p-pnet" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5a702574223aa55d8878bdc8bf55c84a6086f87ddaddc28ce730b4caa81538" -dependencies = [ - "futures", - "log", - "pin-project", "rand 0.8.5", - "salsa20", - "sha3", -] - -[[package]] -name = "libp2p-relay" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4931547ee0cce03971ccc1733ff05bb0c4349fd89120a39e9861e2bbe18843c3" -dependencies = [ - "asynchronous-codec", - "bytes", - "either", - "futures", - "futures-timer", - "instant", - "libp2p-core", - "libp2p-swarm", - "log", - "pin-project", - "prost 0.10.4", - "prost-build 0.10.4", - "prost-codec", - "rand 0.8.5", - "smallvec", - "static_assertions", - "thiserror", - "void", -] - -[[package]] -name = "libp2p-rendezvous" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9511c9672ba33284838e349623319c8cad2d18cfad243ae46c6b7e8a2982ea4e" -dependencies = [ - "asynchronous-codec", - "bimap", - "futures", - "futures-timer", - "instant", - "libp2p-core", - "libp2p-swarm", - "log", - "prost 0.10.4", - "prost-build 0.10.4", - "rand 0.8.5", - "sha2 0.10.6", - "thiserror", - "unsigned-varint", "void", ] [[package]] name = "libp2p-request-response" -version = "0.19.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "508a189e2795d892c8f5c1fa1e9e0b1845d32d7b0b249dbf7b05b18811361843" +checksum = "8827af16a017b65311a410bb626205a9ad92ec0473967618425039fa5231adc1" dependencies = [ "async-trait", "bytes", @@ -4098,16 +3902,16 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "rand 0.7.3", + "rand 0.8.5", "smallvec", "unsigned-varint", ] [[package]] name = "libp2p-swarm" -version = "0.37.0" +version = "0.40.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ac5be6c2de2d1ff3f7693fda6faf8a827b1f3e808202277783fea9f527d114" +checksum = "46d13df7c37807965d82930c0e4b04a659efcb6cca237373b206043db5398ecf" dependencies = [ "either", "fnv", @@ -4117,7 +3921,7 @@ dependencies = [ "libp2p-core", "log", "pin-project", - "rand 0.7.3", + "rand 0.8.5", "smallvec", "thiserror", "void", @@ -4125,48 +3929,36 @@ dependencies = [ [[package]] name = "libp2p-swarm-derive" -version = "0.28.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f54a64b6957249e0ce782f8abf41d97f69330d02bf229f0672d864f0650cc76" +checksum = "a0eddc4497a8b5a506013c40e8189864f9c3a00db2b25671f428ae9007f3ba32" dependencies = [ + "heck", "quote", "syn", ] [[package]] name = "libp2p-tcp" -version = "0.34.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a6771dc19aa3c65d6af9a8c65222bfc8fcd446630ddca487acd161fa6096f3b" +checksum = "9839d96761491c6d3e238e70554b856956fca0ab60feb9de2cd08eed4473fa92" dependencies = [ "async-io", "futures", "futures-timer", "if-watch", - "ipnet", "libc", "libp2p-core", "log", "socket2", ] -[[package]] -name = "libp2p-uds" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d125e3e5f0d58f3c6ac21815b20cf4b6a88b8db9dc26368ea821838f4161fd4d" -dependencies = [ - "async-std", - "futures", - "libp2p-core", - "log", -] - [[package]] name = "libp2p-wasm-ext" -version = "0.34.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec894790eec3c1608f8d1a8a0bdf0dbeb79ed4de2dce964222011c2896dfa05a" +checksum = "a17b5b8e7a73e379e47b1b77f8a82c4721e97eca01abcd18e9cd91a23ca6ce97" dependencies = [ "futures", "js-sys", @@ -4178,9 +3970,9 @@ dependencies = [ [[package]] name = "libp2p-websocket" -version = "0.36.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9808e57e81be76ff841c106b4c5974fb4d41a233a7bdd2afbf1687ac6def3818" +checksum = "3758ae6f89b2531a24b6d9f5776bda6a626b60a57600d7185d43dfa75ca5ecc4" dependencies = [ "either", "futures", @@ -4197,12 +3989,13 @@ dependencies = [ [[package]] name = "libp2p-yamux" -version = "0.38.0" +version = "0.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6dea686217a06072033dc025631932810e2f6ad784e4fafa42e27d311c7a81c" +checksum = "0d6874d66543c4f7e26e3b8ca9a6bead351563a13ab4fafd43c7927f7c0d6c12" dependencies = [ "futures", "libp2p-core", + "log", "parking_lot 0.12.1", "thiserror", "yamux", @@ -4210,9 +4003,9 @@ dependencies = [ [[package]] name = "librocksdb-sys" -version = "0.6.1+6.28.2" +version = "0.8.0+7.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bc587013734dadb7cf23468e531aa120788b87243648be42e2d3a072186291" +checksum = "611804e4666a25136fcc5f8cf425ab4d26c7f74ea245ffe92ea23b85b6420b5d" dependencies = [ "bindgen", "bzip2-sys", @@ -4463,9 +4256,9 @@ dependencies = [ [[package]] name = "memory-db" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6566c70c1016f525ced45d7b7f97730a2bafb037c788211d0c186ef5b2189f0a" +checksum = "34ac11bb793c28fa095b7554466f53b3a60a2cd002afdac01bcf135cbd73a269" dependencies = [ "hash-db", "hashbrown", @@ -4526,15 +4319,42 @@ dependencies = [ ] [[package]] -name = "mio" -version = "0.8.4" +name = "mio" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.36.1", +] + +[[package]] +name = "mockall" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50e4a1c770583dac7ab5e2f6c139153b783a53a1bbee9729613f193e59828326" +dependencies = [ + "cfg-if 1.0.0", + "downcast", + "fragile", + "lazy_static", + "mockall_derive", + "predicates", + "predicates-tree", +] + +[[package]] +name = "mockall_derive" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" +checksum = "832663583d5fa284ca8810bf7015e46c9fff9622d3cf34bd1eea5003fec06dd0" dependencies = [ - "libc", - "log", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.36.1", + "cfg-if 1.0.0", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -4605,9 +4425,9 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "multistream-select" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "363a84be6453a70e63513660f4894ef815daf88e3356bffcda9ca27d810ce83b" +checksum = "9bc41247ec209813e2fd414d6e16b9d94297dacf3cd613fa6ef09cd4d9755c10" dependencies = [ "bytes", "futures", @@ -4760,6 +4580,12 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "normalize-line-endings" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" + [[package]] name = "num-bigint" version = "0.2.6" @@ -4893,8 +4719,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "orchestra" -version = "0.0.1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0aab54694ddaa8a9b703724c6ef04272b2d27bc32d2c855aae5cdd1857216b43" dependencies = [ "async-trait", "dyn-clonable", @@ -4909,8 +4736,9 @@ dependencies = [ [[package]] name = "orchestra-proc-macro" -version = "0.0.1" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a702b2f6bf592b3eb06c00d80d05afaf7a8eff6b41bb361e397d799acc21b45a" dependencies = [ "expander 0.0.6", "itertools", @@ -4936,19 +4764,10 @@ version = "6.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff" -[[package]] -name = "owning_ref" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff55baddef9e4ad00f88b6c743a2a8062d4c6ade126c2a528644b8e444d52ce" -dependencies = [ - "stable_deref_trait", -] - [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-support", "frame-system", @@ -4964,7 +4783,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-support", "frame-system", @@ -4980,7 +4799,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-support", "frame-system", @@ -4995,7 +4814,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5019,7 +4838,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5039,7 +4858,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5054,7 +4873,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "beefy-primitives", "frame-support", @@ -5070,7 +4889,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "array-bytes", "beefy-merkle-tree", @@ -5093,7 +4912,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5111,7 +4930,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5130,7 +4949,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "frame-benchmarking", "frame-support", @@ -5141,7 +4960,6 @@ dependencies = [ "parity-scale-codec", "rand 0.8.5", "scale-info", - "serde", "sp-runtime", "sp-staking", "sp-std", @@ -5150,7 +4968,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5164,17 +4982,36 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-conviction-voting" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +dependencies = [ + "assert_matches", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "serde", + "sp-io", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", "serde", + "sp-core", "sp-io", "sp-runtime", "sp-std", @@ -5183,7 +5020,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5207,7 +5044,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5220,7 +5057,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5238,7 +5075,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5259,7 +5096,7 @@ dependencies = [ [[package]] name = "pallet-gilt" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5274,7 +5111,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5297,7 +5134,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5313,7 +5150,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5333,7 +5170,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5350,7 +5187,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5367,7 +5204,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "ckb-merkle-mountain-range", "frame-benchmarking", @@ -5385,7 +5222,7 @@ dependencies = [ [[package]] name = "pallet-mmr-rpc" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -5400,11 +5237,12 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", "sp-io", @@ -5415,7 +5253,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-support", "frame-system", @@ -5432,7 +5270,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5452,7 +5290,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "parity-scale-codec", "sp-api", @@ -5462,7 +5300,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-support", "frame-system", @@ -5479,7 +5317,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5502,11 +5340,12 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", "sp-core", @@ -5518,7 +5357,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5530,10 +5369,28 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-ranked-collective" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5545,10 +5402,28 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-referenda" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +dependencies = [ + "assert_matches", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "serde", + "sp-arithmetic", + "sp-io", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5564,7 +5439,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-support", "frame-system", @@ -5585,7 +5460,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5601,7 +5476,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-support", "frame-system", @@ -5615,7 +5490,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5638,7 +5513,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -5649,7 +5524,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "log", "sp-arithmetic", @@ -5658,7 +5533,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-support", "frame-system", @@ -5687,7 +5562,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5705,7 +5580,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5724,7 +5599,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-support", "frame-system", @@ -5740,7 +5615,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -5750,23 +5625,25 @@ dependencies = [ "sp-core", "sp-rpc", "sp-runtime", + "sp-weights", ] [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", "sp-api", "sp-runtime", + "sp-weights", ] [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5783,7 +5660,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5799,7 +5676,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-benchmarking", "frame-support", @@ -5811,10 +5688,25 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-whitelist" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-xcm" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "frame-support", "frame-system", @@ -5831,8 +5723,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "frame-benchmarking", "frame-support", @@ -5849,14 +5741,13 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.30#7b1fc0ed107fe42bb7e6a5dfefb586f4c3ae4328" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" dependencies = [ "cumulus-primitives-core", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "serde", ] [[package]] @@ -5865,7 +5756,6 @@ version = "0.1.0" dependencies = [ "clap", "cumulus-client-cli", - "cumulus-client-collator", "cumulus-client-consensus-aura", "cumulus-client-consensus-common", "cumulus-client-network", @@ -5874,18 +5764,16 @@ dependencies = [ "cumulus-primitives-parachain-inherent", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", + "cumulus-relay-chain-minimal-node", "cumulus-relay-chain-rpc-interface", - "derive_more", "frame-benchmarking", "frame-benchmarking-cli", - "hex-literal", "jsonrpsee", "log", "pallet-transaction-payment-rpc", "parachain-template-runtime", "parity-scale-codec", "polkadot-cli", - "polkadot-parachain", "polkadot-primitives", "polkadot-service", "sc-basic-authorship", @@ -5894,11 +5782,9 @@ dependencies = [ "sc-client-api", "sc-consensus", "sc-executor", - "sc-keystore", "sc-network", "sc-network-common", "sc-rpc", - "sc-rpc-api", "sc-service", "sc-sysinfo", "sc-telemetry", @@ -5909,10 +5795,8 @@ dependencies = [ "sp-api", "sp-block-builder", "sp-blockchain", - "sp-consensus", "sp-consensus-aura", "sp-core", - "sp-inherents", "sp-keystore", "sp-offchain", "sp-runtime", @@ -5964,14 +5848,12 @@ dependencies = [ "polkadot-parachain", "polkadot-runtime-common", "scale-info", - "serde", "smallvec", "sp-api", "sp-block-builder", "sp-consensus-aura", "sp-core", "sp-inherents", - "sp-io", "sp-offchain", "sp-runtime", "sp-session", @@ -6038,9 +5920,9 @@ checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f" [[package]] name = "parity-util-mem" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c32561d248d352148124f036cac253a644685a21dc9fea383eb4907d7bd35a8f" +checksum = "0d32c34f4f5ca7f9196001c0aba5a1f9a5a12382c8944b8b0f90233282d1e8f8" dependencies = [ "cfg-if 1.0.0", "hashbrown", @@ -6285,8 +6167,8 @@ checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" [[package]] name = "polkadot-approval-distribution" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "futures", "polkadot-node-network-protocol", @@ -6300,8 +6182,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "futures", "polkadot-node-network-protocol", @@ -6314,13 +6196,13 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "derive_more", "fatality", "futures", - "lru 0.7.8", + "lru 0.8.1", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6337,12 +6219,12 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "fatality", "futures", - "lru 0.7.8", + "lru 0.8.1", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6358,8 +6240,8 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "clap", "frame-benchmarking-cli", @@ -6384,8 +6266,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "beefy-primitives", "frame-benchmarking", @@ -6424,10 +6306,11 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "always-assert", + "bitvec", "fatality", "futures", "futures-timer", @@ -6445,8 +6328,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "parity-scale-codec", "parity-util-mem", @@ -6458,13 +6341,15 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "derive_more", "fatality", "futures", - "lru 0.7.8", + "futures-timer", + "indexmap", + "lru 0.8.1", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6481,8 +6366,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6495,8 +6380,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "futures", "futures-timer", @@ -6515,8 +6400,8 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "always-assert", "async-trait", @@ -6539,8 +6424,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "futures", "parity-scale-codec", @@ -6557,15 +6442,15 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "bitvec", "derive_more", "futures", "futures-timer", "kvdb", - "lru 0.7.8", + "lru 0.8.1", "merlin", "parity-scale-codec", "polkadot-node-jaeger", @@ -6586,8 +6471,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "bitvec", "futures", @@ -6606,8 +6491,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "bitvec", "fatality", @@ -6625,8 +6510,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "futures", "polkadot-node-subsystem", @@ -6640,8 +6525,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "async-trait", "futures", @@ -6658,8 +6543,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "futures", "polkadot-node-subsystem", @@ -6673,8 +6558,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "futures", "futures-timer", @@ -6690,13 +6575,13 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "fatality", "futures", "kvdb", - "lru 0.7.8", + "lru 0.8.1", "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -6709,8 +6594,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "async-trait", "futures", @@ -6726,8 +6611,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "bitvec", "fatality", @@ -6744,8 +6629,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "always-assert", "assert_matches", @@ -6776,8 +6661,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "futures", "polkadot-node-primitives", @@ -6792,8 +6677,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "futures", "memory-lru", @@ -6808,8 +6693,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "async-std", "lazy_static", @@ -6826,8 +6711,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "bs58", "futures", @@ -6845,8 +6730,8 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "async-trait", "derive_more", @@ -6868,8 +6753,8 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "bounded-vec", "futures", @@ -6890,8 +6775,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -6900,8 +6785,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "async-trait", "derive_more", @@ -6923,8 +6808,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "async-trait", "derive_more", @@ -6932,7 +6817,7 @@ dependencies = [ "futures", "itertools", "kvdb", - "lru 0.7.8", + "lru 0.8.1", "parity-db", "parity-scale-codec", "parity-util-mem", @@ -6956,13 +6841,13 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "async-trait", "futures", "futures-timer", - "lru 0.7.8", + "lru 0.8.1", "orchestra", "parity-util-mem", "parking_lot 0.12.1", @@ -6979,8 +6864,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "derive_more", "frame-support", @@ -6996,8 +6881,8 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "env_logger", "kusama-runtime", @@ -7011,8 +6896,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "bitvec", "frame-system", @@ -7041,8 +6926,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", @@ -7073,8 +6958,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "beefy-primitives", "bitvec", @@ -7162,8 +7047,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "beefy-primitives", "bitvec", @@ -7209,20 +7094,22 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "frame-support", "polkadot-primitives", "polkadot-runtime-common", "smallvec", + "sp-core", "sp-runtime", + "sp-weights", ] [[package]] name = "polkadot-runtime-metrics" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "bs58", "parity-scale-codec", @@ -7233,8 +7120,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "bitflags", "bitvec", @@ -7276,8 +7163,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "async-trait", "beefy-gadget", @@ -7289,7 +7176,7 @@ dependencies = [ "kusama-runtime", "kvdb", "kvdb-rocksdb", - "lru 0.7.8", + "lru 0.8.1", "pallet-babe", "pallet-im-online", "pallet-staking", @@ -7380,8 +7267,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "arrayvec 0.5.2", "fatality", @@ -7401,8 +7288,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7452,11 +7339,41 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" +[[package]] +name = "predicates" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed6bd09a7f7e68f3f0bf710fb7ab9c4615a488b58b5f653382a687701e458c92" +dependencies = [ + "difflib", + "float-cmp", + "itertools", + "normalize-line-endings", + "predicates-core", + "regex", +] + +[[package]] +name = "predicates-core" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f883590242d3c6fc5bf50299011695fa6590c2c70eac95ee1bdb9a733ad1a2" + +[[package]] +name = "predicates-tree" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54ff541861505aabf6ea722d2131ee980b8276e10a1297b94e896dd8b621850d" +dependencies = [ + "predicates-core", + "termtree", +] + [[package]] name = "primitive-types" -version = "0.11.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28720988bff275df1f51b171e1b2a18c30d194c4d2b61defdacecd625a5d94a" +checksum = "9f3486ccba82358b11a77516035647c34ba167dfa53312630de83b12bd4f3d66" dependencies = [ "fixed-hash", "impl-codec", @@ -7468,7 +7385,8 @@ dependencies = [ [[package]] name = "prioritized-metered-channel" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "382698e48a268c832d0b181ed438374a6bb708a82a8ca273bb0f61c74cf209c4" dependencies = [ "coarsetime", "crossbeam-queue", @@ -7540,37 +7458,27 @@ dependencies = [ [[package]] name = "prometheus-client" -version = "0.16.0" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1abe0255c04d15f571427a2d1e00099016506cf3297b53853acd2b7eb87825" +checksum = "83cd1b99916654a69008fd66b4f9397fbe08e6e51dfe23d4417acf5d3b8cb87c" dependencies = [ "dtoa", "itoa", - "owning_ref", + "parking_lot 0.12.1", "prometheus-client-derive-text-encode", ] [[package]] name = "prometheus-client-derive-text-encode" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8e12d01b9d66ad9eb4529c57666b6263fc1993cb30261d83ead658fdd932652" +checksum = "66a455fbcb954c1a7decf3c586e860fd7889cddf4b8e164be736dbac95a953cd" dependencies = [ "proc-macro2", "quote", "syn", ] -[[package]] -name = "prost" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71adf41db68aa0daaefc69bb30bcd68ded9b9abaad5d1fbb6304c4fb390e083e" -dependencies = [ - "bytes", - "prost-derive 0.10.1", -] - [[package]] name = "prost" version = "0.11.0" @@ -7578,29 +7486,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "399c3c31cdec40583bb68f0b18403400d01ec4289c383aa047560439952c4dd7" dependencies = [ "bytes", - "prost-derive 0.11.0", -] - -[[package]] -name = "prost-build" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae5a4388762d5815a9fc0dea33c56b021cdc8dde0c55e0c9ca57197254b0cab" -dependencies = [ - "bytes", - "cfg-if 1.0.0", - "cmake", - "heck", - "itertools", - "lazy_static", - "log", - "multimap", - "petgraph", - "prost 0.10.4", - "prost-types 0.10.1", - "regex", - "tempfile", - "which", + "prost-derive", ] [[package]] @@ -7616,8 +7502,8 @@ dependencies = [ "log", "multimap", "petgraph", - "prost 0.11.0", - "prost-types 0.11.1", + "prost", + "prost-types", "regex", "tempfile", "which", @@ -7625,30 +7511,17 @@ dependencies = [ [[package]] name = "prost-codec" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00af1e92c33b4813cc79fda3f2dbf56af5169709be0202df730e9ebc3e4cd007" +checksum = "011ae9ff8359df7915f97302d591cdd9e0e27fbd5a4ddc5bd13b71079bb20987" dependencies = [ "asynchronous-codec", "bytes", - "prost 0.10.4", + "prost", "thiserror", "unsigned-varint", ] -[[package]] -name = "prost-derive" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b670f45da57fb8542ebdbb6105a925fe571b67f9e7ed9f47a06a84e72b4e7cc" -dependencies = [ - "anyhow", - "itertools", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "prost-derive" version = "0.11.0" @@ -7662,16 +7535,6 @@ dependencies = [ "syn", ] -[[package]] -name = "prost-types" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d0a014229361011dc8e69c8a1ec6c2e8d0f2af7c91e3ea3f5b2170298461e68" -dependencies = [ - "bytes", - "prost 0.10.4", -] - [[package]] name = "prost-types" version = "0.11.1" @@ -7679,7 +7542,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dfaa718ad76a44b3415e6c4d53b17c8f99160dcb3a99b10470fce8ad43f6e3e" dependencies = [ "bytes", - "prost 0.11.0", + "prost", ] [[package]] @@ -7947,10 +7810,9 @@ checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" [[package]] name = "remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "env_logger", - "jsonrpsee", "log", "parity-scale-codec", "serde", @@ -7959,6 +7821,7 @@ dependencies = [ "sp-io", "sp-runtime", "sp-version", + "substrate-rpc-client", ] [[package]] @@ -8008,9 +7871,9 @@ dependencies = [ [[package]] name = "rocksdb" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "620f4129485ff1a7128d184bc687470c21c7951b64779ebc9cfdad3dcd920290" +checksum = "7e9562ea1d70c0cc63a34a22d977753b50cca91cc6b6527750463bd5dd8697bc" dependencies = [ "libc", "librocksdb-sys", @@ -8018,8 +7881,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "beefy-merkle-tree", "beefy-primitives", @@ -8102,14 +7965,16 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "frame-support", "polkadot-primitives", "polkadot-runtime-common", "smallvec", + "sp-core", "sp-runtime", + "sp-weights", ] [[package]] @@ -8234,15 +8099,6 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" -[[package]] -name = "salsa20" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" -dependencies = [ - "cipher 0.4.3", -] - [[package]] name = "same-file" version = "1.0.6" @@ -8255,7 +8111,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "log", "sp-core", @@ -8266,7 +8122,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "async-trait", "futures", @@ -8275,8 +8131,8 @@ dependencies = [ "libp2p", "log", "parity-scale-codec", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "rand 0.7.3", "sc-client-api", "sc-network-common", @@ -8293,7 +8149,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "futures", "futures-timer", @@ -8316,7 +8172,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8332,7 +8188,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "impl-trait-for-tuples", "memmap2", @@ -8349,7 +8205,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8360,7 +8216,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "array-bytes", "chrono", @@ -8400,7 +8256,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "fnv", "futures", @@ -8428,7 +8284,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "hash-db", "kvdb", @@ -8453,7 +8309,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "async-trait", "futures", @@ -8477,7 +8333,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "async-trait", "futures", @@ -8506,7 +8362,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "async-trait", "fork-tree", @@ -8548,7 +8404,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "futures", "jsonrpsee", @@ -8570,7 +8426,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "fork-tree", "parity-scale-codec", @@ -8583,7 +8439,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "async-trait", "futures", @@ -8607,7 +8463,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "lazy_static", "lru 0.7.8", @@ -8634,7 +8490,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "environmental", "parity-scale-codec", @@ -8650,7 +8506,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "log", "parity-scale-codec", @@ -8665,7 +8521,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "cfg-if 1.0.0", "libc", @@ -8685,7 +8541,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "ahash", "array-bytes", @@ -8726,7 +8582,7 @@ dependencies = [ [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "finality-grandpa", "futures", @@ -8747,7 +8603,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "ansi_term", "futures", @@ -8764,7 +8620,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "array-bytes", "async-trait", @@ -8779,7 +8635,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "array-bytes", "async-trait", @@ -8801,7 +8657,7 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", "pin-project", - "prost 0.10.4", + "prost", "rand 0.7.3", "sc-block-builder", "sc-client-api", @@ -8826,14 +8682,14 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "cid", "futures", "libp2p", "log", - "prost 0.11.0", - "prost-build 0.11.1", + "prost", + "prost-build", "sc-client-api", "sc-network-common", "sp-blockchain", @@ -8846,7 +8702,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "async-trait", "bitflags", @@ -8856,7 +8712,7 @@ dependencies = [ "libp2p", "linked_hash_set", "parity-scale-codec", - "prost-build 0.10.4", + "prost-build", "sc-consensus", "sc-peerset", "serde", @@ -8872,7 +8728,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "ahash", "futures", @@ -8890,15 +8746,15 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "array-bytes", "futures", "libp2p", "log", "parity-scale-codec", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "sc-client-api", "sc-network-common", "sc-peerset", @@ -8911,7 +8767,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "array-bytes", "fork-tree", @@ -8919,13 +8775,15 @@ dependencies = [ "libp2p", "log", "lru 0.7.8", + "mockall", "parity-scale-codec", - "prost 0.10.4", - "prost-build 0.10.4", + "prost", + "prost-build", "sc-client-api", "sc-consensus", "sc-network-common", "sc-peerset", + "sc-utils", "smallvec", "sp-arithmetic", "sp-blockchain", @@ -8939,7 +8797,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "array-bytes", "futures", @@ -8958,7 +8816,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "array-bytes", "bytes", @@ -8988,7 +8846,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "futures", "libp2p", @@ -9001,7 +8859,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -9010,7 +8868,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "futures", "hash-db", @@ -9040,7 +8898,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "futures", "jsonrpsee", @@ -9063,7 +8921,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "futures", "jsonrpsee", @@ -9073,10 +8931,29 @@ dependencies = [ "tokio", ] +[[package]] +name = "sc-rpc-spec-v2" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +dependencies = [ + "futures", + "hex", + "jsonrpsee", + "parity-scale-codec", + "sc-chain-spec", + "sc-transaction-pool-api", + "serde", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-runtime", + "thiserror", +] + [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "async-trait", "directories", @@ -9108,6 +8985,7 @@ dependencies = [ "sc-offchain", "sc-rpc", "sc-rpc-server", + "sc-rpc-spec-v2", "sc-sysinfo", "sc-telemetry", "sc-tracing", @@ -9146,7 +9024,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "log", "parity-scale-codec", @@ -9160,7 +9038,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -9179,7 +9057,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "futures", "libc", @@ -9198,7 +9076,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "chrono", "futures", @@ -9216,7 +9094,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "ansi_term", "atty", @@ -9247,7 +9125,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9258,8 +9136,9 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ + "async-trait", "futures", "futures-timer", "linked-hash-map", @@ -9284,8 +9163,9 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ + "async-trait", "futures", "log", "serde", @@ -9297,7 +9177,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "futures", "futures-timer", @@ -9653,8 +9533,8 @@ checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" [[package]] name = "slot-range-helper" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "enumn", "parity-scale-codec", @@ -9730,7 +9610,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "hash-db", "log", @@ -9748,7 +9628,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "blake2", "proc-macro-crate", @@ -9760,7 +9640,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "parity-scale-codec", "scale-info", @@ -9773,7 +9653,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "integer-sqrt", "num-traits", @@ -9788,7 +9668,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "parity-scale-codec", "scale-info", @@ -9801,7 +9681,7 @@ dependencies = [ [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "async-trait", "parity-scale-codec", @@ -9813,7 +9693,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "parity-scale-codec", "sp-api", @@ -9825,7 +9705,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "futures", "log", @@ -9843,7 +9723,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "async-trait", "futures", @@ -9862,7 +9742,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "async-trait", "parity-scale-codec", @@ -9880,7 +9760,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "async-trait", "merlin", @@ -9903,7 +9783,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "parity-scale-codec", "scale-info", @@ -9917,7 +9797,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "parity-scale-codec", "scale-info", @@ -9930,7 +9810,7 @@ dependencies = [ [[package]] name = "sp-core" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "array-bytes", "base58", @@ -9976,7 +9856,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "blake2", "byteorder", @@ -9990,7 +9870,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "proc-macro2", "quote", @@ -10001,7 +9881,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -10010,7 +9890,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "proc-macro2", "quote", @@ -10020,7 +9900,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "environmental", "parity-scale-codec", @@ -10031,7 +9911,7 @@ dependencies = [ [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "finality-grandpa", "log", @@ -10049,7 +9929,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -10063,7 +9943,7 @@ dependencies = [ [[package]] name = "sp-io" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "bytes", "futures", @@ -10089,7 +9969,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "lazy_static", "sp-core", @@ -10100,7 +9980,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "async-trait", "futures", @@ -10117,7 +9997,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "thiserror", "zstd", @@ -10126,10 +10006,11 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "log", "parity-scale-codec", + "scale-info", "serde", "sp-api", "sp-core", @@ -10141,7 +10022,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "parity-scale-codec", "scale-info", @@ -10155,7 +10036,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "sp-api", "sp-core", @@ -10165,7 +10046,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "backtrace", "lazy_static", @@ -10175,7 +10056,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "rustc-hash", "serde", @@ -10185,7 +10066,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "either", "hash256-std-hasher", @@ -10208,7 +10089,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -10226,7 +10107,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "Inflector", "proc-macro-crate", @@ -10238,7 +10119,7 @@ dependencies = [ [[package]] name = "sp-sandbox" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "log", "parity-scale-codec", @@ -10252,7 +10133,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "parity-scale-codec", "scale-info", @@ -10266,7 +10147,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "parity-scale-codec", "scale-info", @@ -10277,7 +10158,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "hash-db", "log", @@ -10299,12 +10180,12 @@ dependencies = [ [[package]] name = "sp-std" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" [[package]] name = "sp-storage" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10317,7 +10198,7 @@ dependencies = [ [[package]] name = "sp-tasks" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "log", "sp-core", @@ -10330,7 +10211,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "async-trait", "futures-timer", @@ -10346,7 +10227,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "parity-scale-codec", "sp-std", @@ -10358,7 +10239,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "sp-api", "sp-runtime", @@ -10367,7 +10248,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "async-trait", "log", @@ -10383,7 +10264,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "ahash", "hash-db", @@ -10406,7 +10287,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10423,7 +10304,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10434,7 +10315,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "impl-trait-for-tuples", "log", @@ -10447,7 +10328,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -10613,7 +10494,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "platforms", ] @@ -10621,7 +10502,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -10642,7 +10523,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "futures-util", "hyper", @@ -10652,10 +10533,23 @@ dependencies = [ "tokio", ] +[[package]] +name = "substrate-rpc-client" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +dependencies = [ + "async-trait", + "jsonrpsee", + "log", + "sc-rpc-api", + "serde", + "sp-runtime", +] + [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "jsonrpsee", "log", @@ -10676,7 +10570,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "ansi_term", "build-helper", @@ -10776,10 +10670,10 @@ dependencies = [ ] [[package]] -name = "textwrap" -version = "0.15.1" +name = "termtree" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "949517c0cf1bf4ee812e2e07e08ab448e3ae0d23472aee8a06c985f0c8815b16" +checksum = "95059e91184749cb66be6dc994f67f182b6d897cb3df74a5bf66b5e709295fd8" [[package]] name = "thiserror" @@ -10840,9 +10734,9 @@ dependencies = [ [[package]] name = "tikv-jemalloc-sys" -version = "0.4.3+5.2.1-patched.2" +version = "0.5.2+5.3.0-patched" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1792ccb507d955b46af42c123ea8863668fae24d03721e40cad6a41773dbb49" +checksum = "ec45c14da997d0925c7835883e4d5c181f196fa142f8c19d7643d1e9af2592c3" dependencies = [ "cc", "fs_extra", @@ -11022,8 +10916,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -11033,8 +10927,8 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "expander 0.0.6", "proc-macro-crate", @@ -11111,9 +11005,9 @@ dependencies = [ [[package]] name = "trust-dns-proto" -version = "0.21.2" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c31f240f59877c3d4bb3b3ea0ec5a6a0cff07323580ff8c7a605cd7d08b255d" +checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26" dependencies = [ "async-trait", "cfg-if 1.0.0", @@ -11125,30 +11019,30 @@ dependencies = [ "idna 0.2.3", "ipnet", "lazy_static", - "log", "rand 0.8.5", "smallvec", "thiserror", "tinyvec", + "tracing", "url", ] [[package]] name = "trust-dns-resolver" -version = "0.21.2" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ba72c2ea84515690c9fcef4c6c660bb9df3036ed1051686de84605b74fd558" +checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe" dependencies = [ "cfg-if 1.0.0", "futures-util", "ipconfig", "lazy_static", - "log", "lru-cache", "parking_lot 0.12.1", "resolv-conf", "smallvec", "thiserror", + "tracing", "trust-dns-proto", ] @@ -11161,11 +11055,10 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.30#a3ed0119c45cdd0d571ad34e5b3ee7518c8cef8d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" dependencies = [ "clap", "frame-try-runtime", - "jsonrpsee", "log", "parity-scale-codec", "remote-externalities", @@ -11181,6 +11074,8 @@ dependencies = [ "sp-runtime", "sp-state-machine", "sp-version", + "sp-weights", + "substrate-rpc-client", "zstd", ] @@ -11739,8 +11634,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "beefy-primitives", "bitvec", @@ -11829,14 +11724,16 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "frame-support", "polkadot-primitives", "polkadot-runtime-common", "smallvec", + "sp-core", "sp-runtime", + "sp-weights", ] [[package]] @@ -12061,8 +11958,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "derivative", "impl-trait-for-tuples", @@ -12075,8 +11972,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "frame-support", "frame-system", @@ -12095,8 +11992,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "frame-benchmarking", "frame-support", @@ -12113,8 +12010,8 @@ dependencies = [ [[package]] name = "xcm-procedural" -version = "0.9.30" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.30#064536093f5ff70d867f4bbce8d4c41a406d317a" +version = "0.9.32" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" dependencies = [ "Inflector", "proc-macro2", diff --git a/node/Cargo.toml b/node/Cargo.toml index 644a12dd..6c45b4a2 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -10,77 +10,70 @@ edition = "2021" build = "build.rs" [dependencies] -clap = { version = "3.2.22", features = ["derive"] } -derive_more = "0.99.2" +clap = { version = "4.0.17", features = ["derive"] } log = "0.4.17" codec = { package = "parity-scale-codec", version = "3.0.0" } serde = { version = "1.0.145", features = ["derive"] } -hex-literal = "0.3.4" jsonrpsee = { version = "0.15.1", features = ["server"] } # Local parachain-template-runtime = { path = "../runtime" } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.30" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.30" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sc-network-common = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.30" } -sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.32" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.32" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sc-network-common = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.32" } +sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.30" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.30" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.30" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.30" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.30" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.32" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.32" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.32" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.32" } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } -cumulus-client-collator = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } -cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } +cumulus-client-network = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } +cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } +cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } +cumulus-relay-chain-minimal-node = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } [features] default = [] diff --git a/node/src/cli.rs b/node/src/cli.rs index 949ce489..99bb0a96 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -32,7 +32,7 @@ pub enum Subcommand { /// Sub-commands concerned with benchmarking. /// The pallet benchmarking moved to the `pallet` sub-command. - #[clap(subcommand)] + #[command(subcommand)] Benchmark(frame_benchmarking_cli::BenchmarkCmd), /// Try some testing command against a specified runtime state. @@ -40,16 +40,16 @@ pub enum Subcommand { } #[derive(Debug, clap::Parser)] -#[clap( +#[command( propagate_version = true, args_conflicts_with_subcommands = true, subcommand_negates_reqs = true )] pub struct Cli { - #[clap(subcommand)] + #[command(subcommand)] pub subcommand: Option, - #[clap(flatten)] + #[command(flatten)] pub run: cumulus_client_cli::RunCmd, /// Disable automatic hardware benchmarks. @@ -59,11 +59,11 @@ pub struct Cli { /// /// The results are then printed out in the logs, and also sent as part of /// telemetry, if telemetry is enabled. - #[clap(long)] + #[arg(long)] pub no_hardware_benchmarks: bool, /// Relay chain arguments - #[clap(raw = true)] + #[arg(raw = true)] pub relay_chain_args: Vec, } diff --git a/node/src/command.rs b/node/src/command.rs index 7f7bfd14..837cd15a 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -4,8 +4,8 @@ use codec::Encode; use cumulus_client_cli::generate_genesis_block; use cumulus_primitives_core::ParaId; use frame_benchmarking_cli::{BenchmarkCmd, SUBSTRATE_REFERENCE_HARDWARE}; -use log::info; -use parachain_template_runtime::{Block, RuntimeApi}; +use log::{info, warn}; +use parachain_template_runtime::Block; use sc_cli::{ ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli, @@ -20,7 +20,7 @@ use sp_runtime::traits::{AccountIdConversion, Block as BlockT}; use crate::{ chain_spec, cli::{Cli, RelayChainCli, Subcommand}, - service::{new_partial, TemplateRuntimeExecutor}, + service::{new_partial, ParachainNativeExecutor}, }; fn load_spec(id: &str) -> std::result::Result, String> { @@ -116,14 +116,7 @@ macro_rules! construct_async_run { (|$components:ident, $cli:ident, $cmd:ident, $config:ident| $( $code:tt )* ) => {{ let runner = $cli.create_runner($cmd)?; runner.async_run(|$config| { - let $components = new_partial::< - RuntimeApi, - TemplateRuntimeExecutor, - _ - >( - &$config, - crate::service::parachain_build_import_queue, - )?; + let $components = new_partial(&$config)?; let task_manager = $components.task_manager; { $( $code )* }.map(|v| (v, task_manager)) }) @@ -204,17 +197,14 @@ pub fn run() -> Result<()> { match cmd { BenchmarkCmd::Pallet(cmd) => if cfg!(feature = "runtime-benchmarks") { - runner.sync_run(|config| cmd.run::(config)) + runner.sync_run(|config| cmd.run::(config)) } else { Err("Benchmarking wasn't enabled when building the node. \ You can enable it with `--features runtime-benchmarks`." .into()) }, BenchmarkCmd::Block(cmd) => runner.sync_run(|config| { - let partials = new_partial::( - &config, - crate::service::parachain_build_import_queue, - )?; + let partials = new_partial(&config)?; cmd.run(partials.client) }), #[cfg(not(feature = "runtime-benchmarks"))] @@ -227,10 +217,7 @@ pub fn run() -> Result<()> { .into()), #[cfg(feature = "runtime-benchmarks")] BenchmarkCmd::Storage(cmd) => runner.sync_run(|config| { - let partials = new_partial::( - &config, - crate::service::parachain_build_import_queue, - )?; + let partials = new_partial(&config)?; let db = partials.backend.expose_db(); let storage = partials.backend.expose_storage(); @@ -255,7 +242,7 @@ pub fn run() -> Result<()> { .map_err(|e| format!("Error: {:?}", e))?; runner.async_run(|config| { - Ok((cmd.run::(config), task_manager)) + Ok((cmd.run::(config), task_manager)) }) } else { Err("Try-runtime must be enabled by `--features try-runtime`.".into()) @@ -304,6 +291,10 @@ pub fn run() -> Result<()> { info!("Parachain genesis state: {}", genesis_state); info!("Is collating: {}", if config.role.is_authority() { "yes" } else { "no" }); + if collator_options.relay_chain_rpc_url.is_some() && cli.relay_chain_args.len() > 0 { + warn!("Detected relay chain node arguments together with --relay-chain-rpc-url. This command starts a minimal Polkadot node that only uses a network-related subset of all relay chain CLI options."); + } + crate::service::start_parachain_node( config, polkadot_config, diff --git a/node/src/service.rs b/node/src/service.rs index a4dda555..73e99fa1 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -3,14 +3,9 @@ // std use std::{sync::Arc, time::Duration}; -// rpc -use jsonrpsee::RpcModule; - use cumulus_client_cli::CollatorOptions; // Local Runtime Types -use parachain_template_runtime::{ - opaque::Block, AccountId, Balance, Hash, Index as Nonce, RuntimeApi, -}; +use parachain_template_runtime::{opaque::Block, Hash, RuntimeApi}; // Cumulus Imports use cumulus_client_consensus_aura::{AuraConsensus, BuildAuraConsensusParams, SlotProportion}; @@ -22,7 +17,7 @@ use cumulus_client_service::{ use cumulus_primitives_core::ParaId; use cumulus_relay_chain_inprocess_interface::build_inprocess_relay_chain; use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface, RelayChainResult}; -use cumulus_relay_chain_rpc_interface::{create_client_and_start_worker, RelayChainRpcInterface}; +use cumulus_relay_chain_minimal_node::build_minimal_relay_chain_node; // Substrate Imports use sc_executor::NativeElseWasmExecutor; @@ -30,17 +25,15 @@ use sc_network::NetworkService; use sc_network_common::service::NetworkBlock; use sc_service::{Configuration, PartialComponents, TFullBackend, TFullClient, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; -use sp_api::ConstructRuntimeApi; use sp_keystore::SyncCryptoStorePtr; -use sp_runtime::traits::BlakeTwo256; use substrate_prometheus_endpoint::Registry; use polkadot_service::CollatorPair; -/// Native executor instance. -pub struct TemplateRuntimeExecutor; +/// Native executor type. +pub struct ParachainNativeExecutor; -impl sc_executor::NativeExecutionDispatch for TemplateRuntimeExecutor { +impl sc_executor::NativeExecutionDispatch for ParachainNativeExecutor { type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; fn dispatch(method: &str, data: &[u8]) -> Option> { @@ -52,59 +45,29 @@ impl sc_executor::NativeExecutionDispatch for TemplateRuntimeExecutor { } } +type ParachainExecutor = NativeElseWasmExecutor; + +type ParachainClient = TFullClient; + +type ParachainBackend = TFullBackend; + /// Starts a `ServiceBuilder` for a full service. /// /// Use this macro if you don't actually need the full service, but just the builder in order to /// be able to perform chain operations. -#[allow(clippy::type_complexity)] -pub fn new_partial( +pub fn new_partial( config: &Configuration, - build_import_queue: BIQ, ) -> Result< PartialComponents< - TFullClient>, - TFullBackend, + ParachainClient, + ParachainBackend, (), - sc_consensus::DefaultImportQueue< - Block, - TFullClient>, - >, - sc_transaction_pool::FullPool< - Block, - TFullClient>, - >, + sc_consensus::DefaultImportQueue, + sc_transaction_pool::FullPool, (Option, Option), >, sc_service::Error, -> -where - RuntimeApi: ConstructRuntimeApi>> - + Send - + Sync - + 'static, - RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue - + sp_api::Metadata - + sp_session::SessionKeys - + sp_api::ApiExt< - Block, - StateBackend = sc_client_api::StateBackendFor, Block>, - > + sp_offchain::OffchainWorkerApi - + sp_block_builder::BlockBuilder, - sc_client_api::StateBackendFor, Block>: sp_api::StateBackend, - Executor: sc_executor::NativeExecutionDispatch + 'static, - BIQ: FnOnce( - Arc>>, - &Configuration, - Option, - &TaskManager, - ) -> Result< - sc_consensus::DefaultImportQueue< - Block, - TFullClient>, - >, - sc_service::Error, - >, -{ +> { let telemetry = config .telemetry_endpoints .clone() @@ -116,7 +79,7 @@ where }) .transpose()?; - let executor = sc_executor::NativeElseWasmExecutor::::new( + let executor = ParachainExecutor::new( config.wasm_method, config.default_heap_pages, config.max_runtime_instances, @@ -153,7 +116,7 @@ where &task_manager, )?; - let params = PartialComponents { + Ok(PartialComponents { backend, client, import_queue, @@ -162,9 +125,7 @@ where transaction_pool, select_chain: (), other: (telemetry, telemetry_worker_handle), - }; - - Ok(params) + }) } async fn build_relay_chain_interface( @@ -176,10 +137,8 @@ async fn build_relay_chain_interface( hwbench: Option, ) -> RelayChainResult<(Arc<(dyn RelayChainInterface + 'static)>, Option)> { match collator_options.relay_chain_rpc_url { - Some(relay_chain_url) => { - let client = create_client_and_start_worker(relay_chain_url, task_manager).await?; - Ok((Arc::new(RelayChainRpcInterface::new(client)) as Arc<_>, None)) - }, + Some(relay_chain_url) => + build_minimal_relay_chain_node(polkadot_config, task_manager, relay_chain_url).await, None => build_inprocess_relay_chain( polkadot_config, parachain_config, @@ -194,74 +153,16 @@ async fn build_relay_chain_interface( /// /// This is the actual implementation that is abstract over the executor and the runtime api. #[sc_tracing::logging::prefix_logs_with("Parachain")] -async fn start_node_impl( +async fn start_node_impl( parachain_config: Configuration, polkadot_config: Configuration, collator_options: CollatorOptions, id: ParaId, - _rpc_ext_builder: RB, - build_import_queue: BIQ, - build_consensus: BIC, hwbench: Option, -) -> sc_service::error::Result<( - TaskManager, - Arc>>, -)> -where - RuntimeApi: ConstructRuntimeApi>> - + Send - + Sync - + 'static, - RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue - + sp_api::Metadata - + sp_session::SessionKeys - + sp_api::ApiExt< - Block, - StateBackend = sc_client_api::StateBackendFor, Block>, - > + sp_offchain::OffchainWorkerApi - + sp_block_builder::BlockBuilder - + cumulus_primitives_core::CollectCollationInfo - + pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi - + substrate_frame_rpc_system::AccountNonceApi, - sc_client_api::StateBackendFor, Block>: sp_api::StateBackend, - Executor: sc_executor::NativeExecutionDispatch + 'static, - RB: Fn( - Arc>, - ) -> Result, sc_service::Error> - + Send - + 'static, - BIQ: FnOnce( - Arc>>, - &Configuration, - Option, - &TaskManager, - ) -> Result< - sc_consensus::DefaultImportQueue< - Block, - TFullClient>, - >, - sc_service::Error, - > + 'static, - BIC: FnOnce( - Arc>>, - Option<&Registry>, - Option, - &TaskManager, - Arc, - Arc< - sc_transaction_pool::FullPool< - Block, - TFullClient>, - >, - >, - Arc>, - SyncCryptoStorePtr, - bool, - ) -> Result>, sc_service::Error>, -{ +) -> sc_service::error::Result<(TaskManager, Arc)> { let parachain_config = prepare_node_config(parachain_config); - let params = new_partial::(¶chain_config, build_import_queue)?; + let params = new_partial(¶chain_config)?; let (mut telemetry, telemetry_worker_handle) = params.other; let client = params.client.clone(); @@ -317,6 +218,15 @@ where }) }; + if parachain_config.offchain_worker.enabled { + sc_service::build_offchain_workers( + ¶chain_config, + task_manager.spawn_handle(), + client.clone(), + network.clone(), + ); + } + sc_service::spawn_tasks(sc_service::SpawnTasksParams { rpc_builder, client: client.clone(), @@ -362,10 +272,10 @@ where network, params.keystore_container.sync_keystore(), force_authoring, + id, )?; let spawner = task_manager.spawn_handle(); - let params = StartCollatorParams { para_id: id, block_status: client.clone(), @@ -390,7 +300,6 @@ where relay_chain_interface, relay_chain_slot_duration, import_queue, - collator_options, }; start_full_node(params)?; @@ -402,19 +311,12 @@ where } /// Build the import queue for the parachain runtime. -#[allow(clippy::type_complexity)] -pub fn parachain_build_import_queue( - client: Arc>>, +fn build_import_queue( + client: Arc, config: &Configuration, telemetry: Option, task_manager: &TaskManager, -) -> Result< - sc_consensus::DefaultImportQueue< - Block, - TFullClient>, - >, - sc_service::Error, -> { +) -> Result, sc_service::Error> { let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?; cumulus_client_consensus_aura::import_queue::< @@ -445,88 +347,81 @@ pub fn parachain_build_import_queue( .map_err(Into::into) } -/// Start a parachain node. -pub async fn start_parachain_node( - parachain_config: Configuration, - polkadot_config: Configuration, - collator_options: CollatorOptions, +fn build_consensus( + client: Arc, + prometheus_registry: Option<&Registry>, + telemetry: Option, + task_manager: &TaskManager, + relay_chain_interface: Arc, + transaction_pool: Arc>, + sync_oracle: Arc>, + keystore: SyncCryptoStorePtr, + force_authoring: bool, id: ParaId, - hwbench: Option, -) -> sc_service::error::Result<( - TaskManager, - Arc>>, -)> { - start_node_impl::( - parachain_config, - polkadot_config, - collator_options, - id, - |_| Ok(RpcModule::new(())), - parachain_build_import_queue, - |client, - prometheus_registry, - telemetry, - task_manager, - relay_chain_interface, - transaction_pool, - sync_oracle, - keystore, - force_authoring| { - let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?; - - let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( - task_manager.spawn_handle(), - client.clone(), - transaction_pool, - prometheus_registry, - telemetry.clone(), - ); +) -> Result>, sc_service::Error> { + let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?; - Ok(AuraConsensus::build::( - BuildAuraConsensusParams { - proposer_factory, - create_inherent_data_providers: move |_, (relay_parent, validation_data)| { - let relay_chain_interface = relay_chain_interface.clone(); - async move { - let parachain_inherent = - cumulus_primitives_parachain_inherent::ParachainInherentData::create_at( - relay_parent, - &relay_chain_interface, - &validation_data, - id, - ).await; - let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); - - let slot = + let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( + task_manager.spawn_handle(), + client.clone(), + transaction_pool, + prometheus_registry, + telemetry.clone(), + ); + + let params = BuildAuraConsensusParams { + proposer_factory, + create_inherent_data_providers: move |_, (relay_parent, validation_data)| { + let relay_chain_interface = relay_chain_interface.clone(); + async move { + let parachain_inherent = + cumulus_primitives_parachain_inherent::ParachainInherentData::create_at( + relay_parent, + &relay_chain_interface, + &validation_data, + id, + ) + .await; + let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); + + let slot = sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration( *timestamp, slot_duration, ); - let parachain_inherent = parachain_inherent.ok_or_else(|| { - Box::::from( - "Failed to create parachain inherent", - ) - })?; - Ok((slot, timestamp, parachain_inherent)) - } - }, - block_import: client.clone(), - para_client: client, - backoff_authoring_blocks: Option::<()>::None, - sync_oracle, - keystore, - force_authoring, - slot_duration, - // We got around 500ms for proposing - block_proposal_slot_portion: SlotProportion::new(1f32 / 24f32), - // And a maximum of 750ms if slots are skipped - max_block_proposal_slot_portion: Some(SlotProportion::new(1f32 / 16f32)), - telemetry, - }, - )) + let parachain_inherent = parachain_inherent.ok_or_else(|| { + Box::::from( + "Failed to create parachain inherent", + ) + })?; + Ok((slot, timestamp, parachain_inherent)) + } }, - hwbench, - ) - .await + block_import: client.clone(), + para_client: client, + backoff_authoring_blocks: Option::<()>::None, + sync_oracle, + keystore, + force_authoring, + slot_duration, + // We got around 500ms for proposing + block_proposal_slot_portion: SlotProportion::new(1f32 / 24f32), + // And a maximum of 750ms if slots are skipped + max_block_proposal_slot_portion: Some(SlotProportion::new(1f32 / 16f32)), + telemetry, + }; + + Ok(AuraConsensus::build::(params)) +} + +/// Start a parachain node. +pub async fn start_parachain_node( + parachain_config: Configuration, + polkadot_config: Configuration, + collator_options: CollatorOptions, + id: ParaId, + hwbench: Option, +) -> sc_service::error::Result<(TaskManager, Arc)> { + start_node_impl(parachain_config, polkadot_config, collator_options, id, hwbench).await } diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 8f2c5edd..9a7ff724 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -13,20 +13,20 @@ targets = ["x86_64-unknown-linux-gnu"] [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive"], default-features = false } -scale-info = { version = "2.0.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.2.0", default-features = false, features = ["derive"] } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.30" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.32" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } [dev-dependencies] serde = { version = "1.0.132" } # Substrate -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } [features] default = ["std"] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 6c3a9513..f6d35a7e 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,68 +12,66 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.30" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } hex-literal = { version = "0.3.4", optional = true } log = { version = "0.4.17", default-features = false } scale-info = { version = "2.2.0", default-features = false, features = ["derive"] } -serde = { version = "1.0.145", optional = true, features = ["derive"] } -smallvec = "1.9.0" +smallvec = "1.10.0" # Local pallet-template = { path = "../pallets/template", default-features = false } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.30" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.30" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.30" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.30" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.32" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.32" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.32" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.30" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.30" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.30" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.30" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.30" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.30" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.32" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.32" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.32" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.32" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.32" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.32" } # Cumulus -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false } -cumulus-pallet-session-benchmarking = {git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false, version = "3.0.0"} -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false } -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false } -parachain-info = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.30", default-features = false } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false } +cumulus-pallet-session-benchmarking = {git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false, version = "3.0.0"} +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false } +pallet-collator-selection = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false } +parachain-info = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false } [features] default = [ @@ -83,7 +81,6 @@ std = [ "codec/std", "log/std", "scale-info/std", - "serde", "cumulus-pallet-aura-ext/std", "cumulus-pallet-dmp-queue/std", "cumulus-pallet-parachain-system/std", @@ -115,7 +112,6 @@ std = [ "sp-consensus-aura/std", "sp-core/std", "sp-inherents/std", - "sp-io/std", "sp-offchain/std", "sp-runtime/std", "sp-session/std", diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index fc0c354f..89c68f2c 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -217,7 +217,9 @@ const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(5); const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); /// We allow for 0.5 of a second of compute with a 12 second average block time. -const MAXIMUM_BLOCK_WEIGHT: Weight = WEIGHT_PER_SECOND.saturating_div(2); +const MAXIMUM_BLOCK_WEIGHT: Weight = WEIGHT_PER_SECOND + .saturating_div(2) + .set_proof_size(cumulus_primitives_core::relay_chain::v2::MAX_POV_SIZE as u64); /// The version information used to identify this runtime when compiled natively. #[cfg(feature = "std")] @@ -314,7 +316,7 @@ parameter_types! { impl pallet_timestamp::Config for Runtime { /// A timestamp: milliseconds since the unix epoch. type Moment = u64; - type OnTimestampSet = (); + type OnTimestampSet = Aura; type MinimumPeriod = MinimumPeriod; type WeightInfo = (); } From 06ac43bc78778ef9ab71bae24bd38ccdcb6f734d Mon Sep 17 00:00:00 2001 From: Paritytech CI <52199148+paritytech-ci@users.noreply.github.com> Date: Fri, 13 Jan 2023 02:08:37 +0200 Subject: [PATCH 69/91] Auto-Update substrate-parachain-template from polkadot-v0.9.36 (#145) * Auto-Update substrate-parachain-template from polkadot-v0.9.36 * fix spacing * fix toml files Co-authored-by: substrate-developer-hub Co-authored-by: Sacha Lansky --- Cargo.lock | 7548 ++++++++++++++-------- node/Cargo.toml | 106 +- node/src/cli.rs | 5 + node/src/command.rs | 45 +- node/src/service.rs | 103 +- pallets/template/Cargo.toml | 12 +- pallets/template/src/lib.rs | 2 + runtime/Cargo.toml | 94 +- runtime/src/lib.rs | 60 +- runtime/src/weights/block_weights.rs | 7 +- runtime/src/weights/extrinsic_weights.rs | 7 +- runtime/src/weights/paritydb_weights.rs | 12 +- runtime/src/weights/rocksdb_weights.rs | 12 +- runtime/src/xcm_config.rs | 2 +- 14 files changed, 5005 insertions(+), 3010 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4e1798ef..35822f85 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -18,7 +18,16 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" dependencies = [ - "gimli", + "gimli 0.26.2", +] + +[[package]] +name = "addr2line" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +dependencies = [ + "gimli 0.27.0", ] [[package]] @@ -42,7 +51,7 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cipher", "cpufeatures", "opaque-debug 0.3.0", @@ -68,16 +77,16 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.7", + "getrandom 0.2.8", "once_cell", "version_check", ] [[package]] name = "aho-corasick" -version = "0.7.19" +version = "0.7.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" dependencies = [ "memchr", ] @@ -108,9 +117,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.65" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" +checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61" [[package]] name = "approx" @@ -123,24 +132,21 @@ dependencies = [ [[package]] name = "array-bytes" -version = "4.1.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a913633b0c922e6b745072795f50d90ebea78ba31a57e2ac8c2fc7b50950949" +checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6" [[package]] -name = "arrayref" -version = "0.3.6" +name = "array-bytes" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" +checksum = "22f72e9d6fac4bc80778ea470b20197b88d28c292bb7d60c3fb099280003cd19" [[package]] -name = "arrayvec" -version = "0.4.12" +name = "arrayref" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" -dependencies = [ - "nodrop", -] +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" [[package]] name = "arrayvec" @@ -178,9 +184,9 @@ dependencies = [ [[package]] name = "async-channel" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28" +checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" dependencies = [ "concurrent-queue", "event-listener", @@ -189,23 +195,23 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965" +checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b" dependencies = [ + "async-lock", "async-task", "concurrent-queue", "fastrand", "futures-lite", - "once_cell", "slab", ] [[package]] name = "async-global-executor" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da5b41ee986eed3f524c380e6d64965aea573882a8907682ad100f7859305ca" +checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776" dependencies = [ "async-channel", "async-executor", @@ -218,49 +224,50 @@ dependencies = [ [[package]] name = "async-io" -version = "1.9.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83e21f3a490c72b3b0cf44962180e60045de2925d8dff97918f7ee43c8f637c7" +checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794" dependencies = [ + "async-lock", "autocfg", "concurrent-queue", "futures-lite", "libc", "log", - "once_cell", "parking", "polling", "slab", "socket2", "waker-fn", - "winapi", + "windows-sys 0.42.0", ] [[package]] name = "async-lock" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e97a171d191782fba31bb902b14ad94e24a68145032b7eedf871ab0bc0d077b6" +checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685" dependencies = [ "event-listener", + "futures-lite", ] [[package]] name = "async-process" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02111fd8655a613c25069ea89fc8d9bb89331fa77486eb3bc059ee757cfa481c" +checksum = "6381ead98388605d0d9ff86371043b5aa922a3905824244de40dc263a14fcba4" dependencies = [ "async-io", + "async-lock", "autocfg", "blocking", - "cfg-if 1.0.0", + "cfg-if", "event-listener", "futures-lite", "libc", - "once_cell", "signal-hook", - "winapi", + "windows-sys 0.42.0", ] [[package]] @@ -274,7 +281,6 @@ dependencies = [ "async-global-executor", "async-io", "async-lock", - "async-process", "crossbeam-utils", "futures-channel", "futures-core", @@ -291,21 +297,6 @@ dependencies = [ "wasm-bindgen-futures", ] -[[package]] -name = "async-std-resolver" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba50e24d9ee0a8950d3d03fc6d0dd10aa14b5de3b101949b4e160f7fee7c723" -dependencies = [ - "async-std", - "async-trait", - "futures-io", - "futures-util", - "pin-utils", - "socket2", - "trust-dns-resolver", -] - [[package]] name = "async-task" version = "4.3.0" @@ -314,9 +305,9 @@ checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" [[package]] name = "async-trait" -version = "0.1.57" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76464446b8bc32758d7e88ee1a804d9914cd9b1cb264c029899680b0be29826f" +checksum = "677d1d8ab452a3936018a687b20e6f7cf5363d713b732b8884001317b0e48aa3" dependencies = [ "proc-macro2", "quote", @@ -325,9 +316,9 @@ dependencies = [ [[package]] name = "asynchronous-codec" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0de5164e5edbf51c45fb8c2d9664ae1c095cce1b265ecf7569093c0d66ef690" +checksum = "06a0daa378f5fd10634e44b0a29b2a87b890657658e072a30d6f26e57ddee182" dependencies = [ "bytes", "futures-sink", @@ -348,7 +339,7 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ - "hermit-abi", + "hermit-abi 0.1.19", "libc", "winapi", ] @@ -359,32 +350,18 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" -[[package]] -name = "backoff" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" -dependencies = [ - "futures-core", - "getrandom 0.2.7", - "instant", - "pin-project-lite 0.2.9", - "rand 0.8.5", - "tokio", -] - [[package]] name = "backtrace" -version = "0.3.66" +version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" +checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" dependencies = [ - "addr2line", + "addr2line 0.19.0", "cc", - "cfg-if 1.0.0", + "cfg-if", "libc", "miniz_oxide", - "object", + "object 0.30.0", "rustc-demangle", ] @@ -408,15 +385,15 @@ checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" [[package]] name = "base64" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64ct" -version = "1.5.2" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2b2456fd614d856680dcd9fcc660a51a820fa09daef2e49772b56a193c8474" +checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf" [[package]] name = "beef" @@ -430,36 +407,36 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "array-bytes", + "array-bytes 4.2.0", "async-trait", - "beefy-primitives", "fnv", "futures", "futures-timer", "log", "parity-scale-codec", "parking_lot 0.12.1", - "sc-chain-spec", - "sc-client-api", - "sc-consensus", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sc-finality-grandpa", - "sc-keystore", - "sc-network", - "sc-network-common", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sc-network-gossip", - "sc-utils", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-keystore", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-beefy", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-mmr-primitives", - "sp-runtime", - "substrate-prometheus-endpoint", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", "wasm-timer", ] @@ -467,48 +444,31 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "beefy-gadget", - "beefy-primitives", "futures", "jsonrpsee", "log", "parity-scale-codec", "parking_lot 0.12.1", - "sc-rpc", - "sc-utils", + "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "serde", - "sp-core", - "sp-runtime", + "sp-beefy", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", ] [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" -dependencies = [ - "beefy-primitives", - "sp-api", - "sp-runtime", -] - -[[package]] -name = "beefy-primitives" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-io", - "sp-mmr-primitives", - "sp-runtime", - "sp-std", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-beefy", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] @@ -559,21 +519,11 @@ dependencies = [ [[package]] name = "blake2" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9cf849ee05b2ee5fba5e36f97ff8ec2533916700fc0758d40d92136a42f3388" -dependencies = [ - "digest 0.10.5", -] - -[[package]] -name = "blake2-rfc" -version = "0.2.18" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ - "arrayvec 0.4.12", - "constant_time_eq", + "digest 0.10.6", ] [[package]] @@ -584,7 +534,7 @@ checksum = "72936ee4afc7f8f736d1c38383b56480b5497b4617b4a77bdbf1d2ababc76127" dependencies = [ "arrayref", "arrayvec 0.7.2", - "constant_time_eq", + "constant_time_eq 0.1.5", ] [[package]] @@ -595,21 +545,21 @@ checksum = "db539cc2b5f6003621f1cd9ef92d7ded8ea5232c7de0f9faa2de251cd98730d4" dependencies = [ "arrayref", "arrayvec 0.7.2", - "constant_time_eq", + "constant_time_eq 0.1.5", ] [[package]] name = "blake3" -version = "1.3.1" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f" +checksum = "42ae2468a89544a466886840aa467a25b766499f4f04bf7d9fcd10ecee9fccef" dependencies = [ "arrayref", "arrayvec 0.7.2", "cc", - "cfg-if 1.0.0", - "constant_time_eq", - "digest 0.10.5", + "cfg-if", + "constant_time_eq 0.2.4", + "digest 0.10.6", ] [[package]] @@ -653,16 +603,16 @@ dependencies = [ [[package]] name = "blocking" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6ccb65d468978a086b69884437ded69a90faab3bbe6e67f242173ea728acccc" +checksum = "3c67b173a56acffd6d2326fb7ab938ba0b00a71480e14902b2591c87bc5741e8" dependencies = [ "async-channel", + "async-lock", "async-task", "atomic-waker", "fastrand", "futures-lite", - "once_cell", ] [[package]] @@ -700,15 +650,15 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.11.0" +version = "3.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" +checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" [[package]] name = "byte-slice-cast" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87c5fdd0166095e1d463fc6cc01aa8ce547ad77a4e84d42eb6762b084e28067e" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" [[package]] name = "byte-tools" @@ -724,9 +674,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" +checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" [[package]] name = "bzip2-sys" @@ -739,12 +689,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "cache-padded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" - [[package]] name = "camino" version = "1.1.1" @@ -771,16 +715,16 @@ checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" dependencies = [ "camino", "cargo-platform", - "semver 1.0.14", + "semver 1.0.16", "serde", "serde_json", ] [[package]] name = "cc" -version = "1.0.73" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d" dependencies = [ "jobserver", ] @@ -803,12 +747,6 @@ dependencies = [ "smallvec", ] -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - [[package]] name = "cfg-if" version = "1.0.0" @@ -827,7 +765,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c80e5460aa66fe3b91d40bcbdab953a597b60053e34d684ac6903f863b680a6" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cipher", "cpufeatures", "zeroize", @@ -848,9 +786,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.22" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" +checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" dependencies = [ "iana-time-zone", "js-sys", @@ -885,11 +823,11 @@ dependencies = [ [[package]] name = "ckb-merkle-mountain-range" -version = "0.3.2" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f061f97d64fd1822664bdfb722f7ae5469a97b77567390f7442be5b5dc82a5b" +checksum = "56ccb671c5921be8a84686e6212ca184cb1d7c51cadcdbfcbd1cc3f042f5dfb8" dependencies = [ - "cfg-if 0.1.10", + "cfg-if", ] [[package]] @@ -905,14 +843,14 @@ dependencies = [ [[package]] name = "clap" -version = "4.0.26" +version = "4.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2148adefda54e14492fb9bddcc600b4344c5d1a3123bd666dcb939c6f0e0e57e" +checksum = "a7db700bc935f9e43e88d00b0850dae18a63773cfbec6d8e070fccf7fef89a39" dependencies = [ - "atty", "bitflags", "clap_derive", "clap_lex", + "is-terminal", "once_cell", "strsim", "termcolor", @@ -964,9 +902,9 @@ dependencies = [ [[package]] name = "comfy-table" -version = "6.1.0" +version = "6.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85914173c2f558d61613bfbbf1911f14e630895087a7ed2fafc0f5319e1536e7" +checksum = "e621e7e86c46fd8a14c32c6ae3cb95656621b4743a27d0cffedb831d46e7ad21" dependencies = [ "strum", "strum_macros", @@ -975,18 +913,18 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "1.2.4" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c" +checksum = "bd7bef69dc86e3c610e4e7aed41035e2a7ed12e72dd7530f61327a6579a4390b" dependencies = [ - "cache-padded", + "crossbeam-utils", ] [[package]] name = "const-oid" -version = "0.7.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" +checksum = "cec318a675afcb6a1ea1d4340e2d377e56e47c266f28043ceccbf4412ddfdd3b" [[package]] name = "constant_time_eq" @@ -994,6 +932,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +[[package]] +name = "constant_time_eq" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3ad85c1f65dc7b37604eb0e89748faf0b9653065f2a8ef69f96a687ec1e9279" + [[package]] name = "convert_case" version = "0.4.0" @@ -1031,7 +975,17 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", +] + +[[package]] +name = "cpu-time" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9e393a7668fe1fad3075085b86c781883000b4ede868f43627b34a87c8b7ded" +dependencies = [ + "libc", + "winapi", ] [[package]] @@ -1045,18 +999,18 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.88.1" +version = "0.88.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44409ccf2d0f663920cab563d2b79fcd6b2e9a2bcc6e929fef76c8f82ad6c17a" +checksum = "52056f6d0584484b57fa6c1a65c1fcb15f3780d8b6a758426d9e3084169b2ddd" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.88.1" +version = "0.88.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98de2018ad96eb97f621f7d6b900a0cc661aec8d02ea4a50e56ecb48e5a2fcaf" +checksum = "18fed94c8770dc25d01154c3ffa64ed0b3ba9d583736f305fed7beebe5d9cf74" dependencies = [ "arrayvec 0.7.2", "bumpalo", @@ -1065,7 +1019,7 @@ dependencies = [ "cranelift-codegen-shared", "cranelift-entity", "cranelift-isle", - "gimli", + "gimli 0.26.2", "log", "regalloc2", "smallvec", @@ -1074,33 +1028,33 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.88.1" +version = "0.88.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5287ce36e6c4758fbaf298bd1a8697ad97a4f2375a3d1b61142ea538db4877e5" +checksum = "1c451b81faf237d11c7e4f3165eeb6bac61112762c5cfe7b4c0fb7241474358f" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.88.1" +version = "0.88.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2855c24219e2f08827f3f4ffb2da92e134ae8d8ecc185b11ec8f9878cf5f588e" +checksum = "e7c940133198426d26128f08be2b40b0bd117b84771fd36798969c4d712d81fc" [[package]] name = "cranelift-entity" -version = "0.88.1" +version = "0.88.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b65673279d75d34bf11af9660ae2dbd1c22e6d28f163f5c72f4e1dc56d56103" +checksum = "87a0f1b2fdc18776956370cf8d9b009ded3f855350c480c1c52142510961f352" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.88.1" +version = "0.88.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed2b3d7a4751163f6c4a349205ab1b7d9c00eecf19dcea48592ef1f7688eefc" +checksum = "34897538b36b216cc8dd324e73263596d51b8cf610da6498322838b2546baf8a" dependencies = [ "cranelift-codegen", "log", @@ -1110,15 +1064,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.88.1" +version = "0.88.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be64cecea9d90105fc6a2ba2d003e98c867c1d6c4c86cc878f97ad9fb916293" +checksum = "1b2629a569fae540f16a76b70afcc87ad7decb38dc28fa6c648ac73b51e78470" [[package]] name = "cranelift-native" -version = "0.88.1" +version = "0.88.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a03a6ac1b063e416ca4b93f6247978c991475e8271465340caa6f92f3c16a4" +checksum = "20937dab4e14d3e225c5adfc9c7106bafd4ac669bdb43027b911ff794c6fb318" dependencies = [ "cranelift-codegen", "libc", @@ -1127,9 +1081,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.88.1" +version = "0.88.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c699873f7b30bc5f20dd03a796b4183e073a46616c91704792ec35e45d13f913" +checksum = "80fc2288957a94fd342a015811479de1837850924166d1f1856d8406e6f3609b" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1147,7 +1101,7 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -1156,7 +1110,7 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crossbeam-utils", ] @@ -1166,41 +1120,41 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.11" +version = "0.9.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348" +checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" dependencies = [ "autocfg", - "cfg-if 1.0.0", + "cfg-if", "crossbeam-utils", - "memoffset", + "memoffset 0.7.1", "scopeguard", ] [[package]] name = "crossbeam-queue" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd42583b04998a5363558e5f9291ee5a5ff6b49944332103f251e7479a82aa7" +checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.12" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" +checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -1211,9 +1165,9 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "crypto-bigint" -version = "0.3.2" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21" +checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" dependencies = [ "generic-array 0.14.6", "rand_core 0.6.4", @@ -1253,9 +1207,9 @@ dependencies = [ [[package]] name = "ctor" -version = "0.1.23" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdffe87e1d521a10f9696f833fe502293ea446d7f256c06128293a4119bdf4cb" +checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" dependencies = [ "quote", "syn", @@ -1273,22 +1227,22 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "clap", "parity-scale-codec", - "sc-chain-spec", - "sc-cli", - "sc-service", - "sp-core", - "sp-runtime", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "url", ] [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1300,67 +1254,70 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", - "sc-client-api", - "sp-api", - "sp-consensus", - "sp-core", - "sp-runtime", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "tracing", ] [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "async-trait", "cumulus-client-consensus-common", "cumulus-primitives-core", "futures", "parity-scale-codec", - "sc-client-api", - "sc-consensus", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sc-consensus-aura", "sc-consensus-slots", - "sc-telemetry", - "sp-api", - "sp-application-crypto", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-aura", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "tracing", ] [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "async-trait", + "cumulus-client-pov-recovery", + "cumulus-primitives-core", "cumulus-relay-chain-interface", "dyn-clone", "futures", + "log", "parity-scale-codec", "polkadot-primitives", - "sc-client-api", - "sc-consensus", - "sp-blockchain", - "sp-consensus", - "sp-runtime", - "sp-trie", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "tracing", ] [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1371,19 +1328,19 @@ dependencies = [ "polkadot-node-primitives", "polkadot-parachain", "polkadot-primitives", - "sc-client-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-runtime", - "sp-state-machine", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "tracing", ] [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -1395,102 +1352,107 @@ dependencies = [ "polkadot-overseer", "polkadot-primitives", "rand 0.8.5", - "sc-client-api", - "sc-consensus", - "sp-consensus", - "sp-maybe-compressed-blob", - "sp-runtime", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "tracing", ] [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-common", "cumulus-client-pov-recovery", "cumulus-primitives-core", + "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", + "cumulus-relay-chain-minimal-node", + "futures", "parking_lot 0.12.1", "polkadot-primitives", - "sc-client-api", - "sc-consensus", - "sc-service", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-runtime", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-sysinfo 6.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ - "frame-support", - "frame-system", - "pallet-aura", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-aura 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", - "sp-application-crypto", - "sp-consensus-aura", - "sp-runtime", - "sp-std", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "cumulus-primitives-core", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "xcm", ] [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "environmental", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "impl-trait-for-tuples", "log", "parity-scale-codec", "polkadot-parachain", "scale-info", - "sp-core", - "sp-externalities", - "sp-inherents", - "sp-io", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-trie", - "sp-version", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1501,48 +1463,48 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "pallet-session", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", - "sp-runtime", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "cumulus-primitives-core", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "xcm", ] [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "cumulus-primitives-core", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", "parity-scale-codec", "rand_chacha 0.3.1", "scale-info", - "sp-runtime", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "xcm", "xcm-executor", ] @@ -1550,65 +1512,65 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-primitives", - "sp-api", - "sp-runtime", - "sp-std", - "sp-trie", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", "cumulus-test-relay-sproof-builder", "parity-scale-codec", - "sc-client-api", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "scale-info", - "sp-api", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-storage", - "sp-trie", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "tracing", ] [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "cumulus-primitives-core", "futures", "parity-scale-codec", - "sp-inherents", - "sp-std", - "sp-timestamp", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "cumulus-primitives-core", - "frame-support", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", "parity-scale-codec", - "sp-runtime", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "xcm", "xcm-builder", "xcm-executor", @@ -1617,7 +1579,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1627,22 +1589,22 @@ dependencies = [ "polkadot-cli", "polkadot-client", "polkadot-service", - "sc-cli", - "sc-client-api", - "sc-sysinfo", - "sc-telemetry", - "sc-tracing", - "sp-api", - "sp-consensus", - "sp-core", - "sp-runtime", - "sp-state-machine", + "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-sysinfo 6.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1651,52 +1613,49 @@ dependencies = [ "parity-scale-codec", "polkadot-overseer", "polkadot-service", - "sc-client-api", - "sp-api", - "sp-blockchain", - "sp-state-machine", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", + "tokio", ] [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ - "array-bytes", + "array-bytes 6.0.0", "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", "cumulus-relay-chain-rpc-interface", "futures", - "lru 0.8.1", - "polkadot-availability-distribution", + "lru", "polkadot-core-primitives", "polkadot-network-bridge", - "polkadot-node-core-av-store", "polkadot-node-network-protocol", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", "polkadot-service", "sc-authority-discovery", - "sc-client-api", - "sc-consensus", - "sc-keystore", - "sc-network", - "sc-network-common", - "sc-network-light", - "sc-network-sync", - "sc-service", - "sc-telemetry", - "sc-tracing", - "sc-transaction-pool", - "sc-transaction-pool-api", - "sp-api", - "sp-blockchain", - "sp-consensus", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-consensus-babe", - "sp-runtime", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "tokio", "tracing", "url", @@ -1705,26 +1664,27 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "async-trait", - "backoff", "cumulus-primitives-core", "cumulus-relay-chain-interface", "futures", "futures-timer", "jsonrpsee", + "lru", "parity-scale-codec", "polkadot-service", - "sc-client-api", - "sc-rpc-api", - "sp-api", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "serde", + "serde_json", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-authority-discovery", "sp-consensus-babe", - "sp-core", - "sp-runtime", - "sp-state-machine", - "sp-storage", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "tokio", "tracing", "url", @@ -1733,14 +1693,14 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", "polkadot-primitives", - "sp-runtime", - "sp-state-machine", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] @@ -1771,22 +1731,23 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.0.0-pre.1" +version = "4.0.0-pre.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4033478fbf70d6acf2655ac70da91ee65852d69daf7a67bf7a2f518fb47aafcf" +checksum = "67bc65846be335cb20f4e52d49a437b773a2c1fdb42b19fc84e79e6f6771536f" dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.6.4", + "cfg-if", + "fiat-crypto", + "packed_simd_2", + "platforms 3.0.2", "subtle", "zeroize", ] [[package]] name = "cxx" -version = "1.0.79" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f83d0ebf42c6eafb8d7c52f7e5f2d3003b89c7aa4fd2b79229209459a849af8" +checksum = "5add3fc1717409d029b20c5b6903fc0c0b02fa6741d820054f4a2efa5e5816fd" dependencies = [ "cc", "cxxbridge-flags", @@ -1796,9 +1757,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.79" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07d050484b55975889284352b0ffc2ecbda25c0c55978017c132b29ba0818a86" +checksum = "b4c87959ba14bc6fbc61df77c3fcfe180fc32b93538c4f1031dd802ccb5f2ff0" dependencies = [ "cc", "codespan-reporting", @@ -1811,15 +1772,15 @@ dependencies = [ [[package]] name = "cxxbridge-flags" -version = "1.0.79" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d2199b00553eda8012dfec8d3b1c75fce747cf27c169a270b3b99e3448ab78" +checksum = "69a3e162fde4e594ed2b07d0f83c6c67b745e7f28ce58c6df5e6b6bef99dfb59" [[package]] name = "cxxbridge-macro" -version = "1.0.79" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb67a6de1f602736dd7eaead0080cf3435df806c61b24b13328db128c58868f" +checksum = "3e7e2adeb6a0d4a282e581096b06e1791532b7d576dcde5ccd9382acf55db8e6" dependencies = [ "proc-macro2", "quote", @@ -1828,9 +1789,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.3.2" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57" +checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" [[package]] name = "data-encoding-macro" @@ -1854,11 +1815,12 @@ dependencies = [ [[package]] name = "der" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" +checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" dependencies = [ "const-oid", + "zeroize", ] [[package]] @@ -1911,9 +1873,9 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" +checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" dependencies = [ "block-buffer 0.10.3", "crypto-common", @@ -1935,7 +1897,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "dirs-sys-next", ] @@ -1985,9 +1947,9 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "dtoa" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8a6eee2d5d0d113f015688310da018bd1d864d86bd567c8fca9c266889e1bfa" +checksum = "c00704156a7de8df8da0911424e30c2049957b0a714542a44e05fe693dd85313" [[package]] name = "dyn-clonable" @@ -2012,15 +1974,15 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f94fa09c2aeea5b8839e414b7b841bf429fd25b9c522116ac97ee87856d88b2" +checksum = "c9b0705efd4599c15a38151f4721f7bc388306f61084d3bfd50bd07fbca5cb60" [[package]] name = "ecdsa" -version = "0.13.4" +version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0d69ae62e0ce582d56380743515fefaf1a8c70cec685d9677636d7e30ae9dc9" +checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" dependencies = [ "der", "elliptic-curve", @@ -2053,15 +2015,15 @@ dependencies = [ [[package]] name = "ed25519-zebra" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "403ef3e961ab98f0ba902771d29f842058578bb1ce7e3c59dad5a6a93e784c69" +checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6" dependencies = [ "curve25519-dalek 3.2.0", + "hashbrown", "hex", "rand_core 0.6.4", "sha2 0.9.9", - "thiserror", "zeroize", ] @@ -2073,13 +2035,14 @@ checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" [[package]] name = "elliptic-curve" -version = "0.11.12" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25b477563c2bfed38a3b7a60964c49e058b2510ad3f12ba3483fd8f62c2306d6" +checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" dependencies = [ "base16ct", "crypto-bigint", "der", + "digest 0.10.6", "ff", "generic-array 0.14.6", "group", @@ -2123,9 +2086,9 @@ dependencies = [ [[package]] name = "enumn" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038b1afa59052df211f9efd58f8b1d84c242935ede1c3dbaed26b018a9e06ae2" +checksum = "e88bcb3a067a6555d577aba299e75eff9942da276e6506fc6274327daa026132" dependencies = [ "proc-macro2", "quote", @@ -2134,9 +2097,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.9.1" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c90bf5f19754d10198ccb95b70664fc925bd1fc090a0fd9a6ebc54acc8cd6272" +checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" dependencies = [ "atty", "humantime", @@ -2147,9 +2110,9 @@ dependencies = [ [[package]] name = "environmental" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b91989ae21441195d7d9b9993a2f9295c7e1a8c96255d8b729accddc124797" +checksum = "e48c92028aaa870e83d51c64e5d4e0b6981b360c522198c23959f219a4e1b15b" [[package]] name = "errno" @@ -2269,14 +2232,20 @@ dependencies = [ [[package]] name = "ff" -version = "0.11.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "131655483be284720a17d74ff97592b8e76576dc25563148601df2d7c9080924" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" dependencies = [ "rand_core 0.6.4", "subtle", ] +[[package]] +name = "fiat-crypto" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a214f5bb88731d436478f3ae1f8a277b62124089ba9fb67f4f93fb100ef73c90" + [[package]] name = "file-per-thread-logger" version = "0.1.5" @@ -2289,14 +2258,14 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c" +checksum = "4e884668cd0c7480504233e951174ddc3b382f7c2666e3b7310b5c4e7b0c37f9" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "redox_syscall", - "windows-sys 0.36.1", + "windows-sys 0.42.0", ] [[package]] @@ -2335,9 +2304,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" dependencies = [ "crc32fast", "libz-sys", @@ -2362,7 +2331,15 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "fork-tree" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "parity-scale-codec", ] @@ -2385,39 +2362,62 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "linregress", + "log", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "frame-benchmarking" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", "linregress", "log", "parity-scale-codec", "paste", "scale-info", "serde", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-io", - "sp-runtime", - "sp-runtime-interface", - "sp-std", - "sp-storage", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "Inflector", - "array-bytes", + "array-bytes 4.2.0", "chrono", "clap", "comfy-table", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "gethostname", "handlebars", "hash-db", @@ -2430,36 +2430,84 @@ dependencies = [ "parity-scale-codec", "rand 0.8.5", "rand_pcg 0.3.1", - "sc-block-builder", - "sc-cli", - "sc-client-api", - "sc-client-db", - "sc-executor", - "sc-service", - "sc-sysinfo", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-sysinfo 6.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "serde", "serde_json", "serde_nanos", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-database", - "sp-externalities", - "sp-inherents", - "sp-keystore", - "sp-runtime", - "sp-state-machine", - "sp-storage", - "sp-trie", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "tempfile", "thiserror", "thousands", ] +[[package]] +name = "frame-benchmarking-cli" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "Inflector", + "array-bytes 4.2.0", + "chrono", + "clap", + "comfy-table", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "gethostname", + "handlebars", + "itertools", + "lazy_static", + "linked-hash-map", + "log", + "parity-scale-codec", + "rand 0.8.5", + "rand_pcg 0.3.1", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-sysinfo 6.0.0-dev (git+https://github.com/paritytech/substrate)", + "serde", + "serde_json", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate)", + "thiserror", + "thousands", +] + [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2470,34 +2518,51 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "frame-election-provider-solution-type", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", - "sp-arithmetic", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-npos-elections", - "sp-runtime", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "frame-executive" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "parity-scale-codec", + "scale-info", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ - "frame-support", - "frame-system", - "frame-try-runtime", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-try-runtime 0.10.0-dev (git+https://github.com/paritytech/substrate)", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "sp-tracing", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] @@ -2506,20 +2571,87 @@ version = "15.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df6bb8542ef006ef0de09a5c4420787d79823c0ed7924225822362fd2bf2ff2d" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", + "parity-scale-codec", + "scale-info", + "serde", +] + +[[package]] +name = "frame-remote-externalities" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "env_logger", + "futures", + "log", + "parity-scale-codec", + "serde", + "serde_json", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-rpc-client 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "tokio", +] + +[[package]] +name = "frame-remote-externalities" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "futures", + "log", + "parity-scale-codec", + "serde", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "substrate-rpc-client 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "tokio", +] + +[[package]] +name = "frame-support" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "bitflags", + "frame-metadata", + "frame-support-procedural 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "impl-trait-for-tuples", + "k256", + "log", + "once_cell", "parity-scale-codec", + "paste", "scale-info", "serde", + "smallvec", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core-hashing-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "tt-call", ] [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "bitflags", "frame-metadata", - "frame-support-procedural", + "frame-support-procedural 4.0.0-dev (git+https://github.com/paritytech/substrate)", "impl-trait-for-tuples", "k256", "log", @@ -2529,29 +2661,29 @@ dependencies = [ "scale-info", "serde", "smallvec", - "sp-api", - "sp-arithmetic", - "sp-core", - "sp-core-hashing-proc-macro", - "sp-inherents", - "sp-io", - "sp-runtime", - "sp-staking", - "sp-state-machine", - "sp-std", - "sp-tracing", - "sp-weights", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core-hashing-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate)", + "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate)", "tt-call", ] [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "Inflector", "cfg-expr", - "frame-support-procedural-tools", + "frame-support-procedural-tools 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "itertools", "proc-macro2", "quote", @@ -2559,11 +2691,37 @@ dependencies = [ ] [[package]] -name = "frame-support-procedural-tools" +name = "frame-support-procedural" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "Inflector", + "cfg-expr", + "frame-support-procedural-tools 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "itertools", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "frame-support-procedural-tools" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "frame-support-procedural-tools-derive 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ - "frame-support-procedural-tools-derive", + "frame-support-procedural-tools-derive 3.0.0 (git+https://github.com/paritytech/substrate)", "proc-macro-crate", "proc-macro2", "quote", @@ -2573,7 +2731,17 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "frame-support-procedural-tools-derive" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "proc-macro2", "quote", @@ -2583,62 +2751,116 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-support", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "sp-version", - "sp-weights", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "frame-system" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate)", +] + +[[package]] +name = "frame-system-benchmarking" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "parity-scale-codec", + "scale-info", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", "parity-scale-codec", "scale-info", - "sp-core", - "sp-runtime", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", +] + +[[package]] +name = "frame-system-rpc-runtime-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "parity-scale-codec", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "parity-scale-codec", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", +] + +[[package]] +name = "frame-try-runtime" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", - "sp-api", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ - "frame-support", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", "parity-scale-codec", - "sp-api", - "sp-runtime", - "sp-std", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "fs-err" -version = "2.8.1" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64db3e262960f0662f43a6366788d5f10f7f244b8f7d7d987f560baf5ded5c50" +checksum = "0845fa252299212f0389d64ba26f34fa32cfe41588355f21ed507c59a0f64541" [[package]] name = "fs2" @@ -2664,9 +2886,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f21eda599937fba36daeb58a22e8f5cee2d14c4a17b5b7739c7c8e5e3b8230c" +checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" dependencies = [ "futures-channel", "futures-core", @@ -2679,9 +2901,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050" +checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" dependencies = [ "futures-core", "futures-sink", @@ -2689,15 +2911,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf" +checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" [[package]] name = "futures-executor" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab" +checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" dependencies = [ "futures-core", "futures-task", @@ -2707,9 +2929,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" +checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" [[package]] name = "futures-lite" @@ -2728,9 +2950,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17" +checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" dependencies = [ "proc-macro2", "quote", @@ -2750,15 +2972,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b20ba5a92e727ba30e72834706623d94ac93a725410b6a6b6fbc1b07f7ba56" +checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" [[package]] name = "futures-task" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1" +checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" [[package]] name = "futures-timer" @@ -2768,9 +2990,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90" +checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" dependencies = [ "futures-channel", "futures-core", @@ -2828,7 +3050,7 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "js-sys", "libc", "wasi 0.9.0+wasi-snapshot-preview1", @@ -2837,11 +3059,11 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" +checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "wasi 0.11.0+wasi-snapshot-preview1", ] @@ -2867,6 +3089,12 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "gimli" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dec7af912d60cdbd3677c1af9352ebae6fb8394d165568a2234df0fa00f87793" + [[package]] name = "glob" version = "0.3.0" @@ -2888,9 +3116,9 @@ dependencies = [ [[package]] name = "gloo-timers" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fb7d06c1c8cc2a29bee7ec961009a0b2caa0793ee4900c2ffb348734ba1c8f9" +checksum = "98c4a8d6391675c6b2ee1a6c8d06e8e2d03605c44cec1270675985a4c2a5500b" dependencies = [ "futures-channel", "futures-core", @@ -2900,9 +3128,9 @@ dependencies = [ [[package]] name = "group" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5ac374b108929de78460075f3dc439fa66df9d8fc77e8f12caa5165fcf0c89" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" dependencies = [ "ff", "rand_core 0.6.4", @@ -2911,9 +3139,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca32592cf21ac7ccab1825cd87f6c9b3d9022c44d086172ed0966bec8af30be" +checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" dependencies = [ "bytes", "fnv", @@ -2930,9 +3158,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.3.5" +version = "4.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "433e4ab33f1213cdc25b5fa45c76881240cfe79284cf2b395e8b9e312a30a2fd" +checksum = "035ef95d03713f2c347a72547b7cd38cbc9af7cd51e6099fb62d586d4a6dee3a" dependencies = [ "log", "pest", @@ -2981,6 +3209,15 @@ dependencies = [ "libc", ] +[[package]] +name = "hermit-abi" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +dependencies = [ + "libc", +] + [[package]] name = "hex" version = "0.4.3" @@ -3013,6 +3250,15 @@ dependencies = [ "digest 0.9.0", ] +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.6", +] + [[package]] name = "hmac-drbg" version = "0.3.0" @@ -3057,6 +3303,12 @@ dependencies = [ "pin-project-lite 0.2.9", ] +[[package]] +name = "http-range-header" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" + [[package]] name = "httparse" version = "1.8.0" @@ -3077,9 +3329,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.20" +version = "0.14.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" +checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" dependencies = [ "bytes", "futures-channel", @@ -3101,9 +3353,9 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.23.0" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac" +checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" dependencies = [ "http", "hyper", @@ -3116,9 +3368,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.51" +version = "0.1.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5a6ef98976b22b3b7f2f3a806f858cb862044cfa66805aa3ad84cb3d3b785ed" +checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -3218,9 +3470,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.9.1" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" dependencies = [ "autocfg", "hashbrown", @@ -3233,7 +3485,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -3253,9 +3505,19 @@ dependencies = [ [[package]] name = "io-lifetimes" -version = "0.7.3" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ea37f355c05dde75b84bba2d767906ad522e97cd9e2eef2be7a4ab7fb442c06" +checksum = "59ce5ef949d49ee85593fc4d3f3f95ad61657076395cbbce23e2121fc5542074" + +[[package]] +name = "io-lifetimes" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c" +dependencies = [ + "libc", + "windows-sys 0.42.0", +] [[package]] name = "ip_network" @@ -3265,9 +3527,9 @@ checksum = "aa2f047c0a98b2f299aa5d6d7088443570faae494e9ae1305e48be000c9e0eb1" [[package]] name = "ipconfig" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "723519edce41262b05d4143ceb95050e4c614f483e78e9fd9e39a8275a84ad98" +checksum = "bd302af1b90f2463a98fa5ad469fc212c8e3175a41c3068601bfa2727591c5be" dependencies = [ "socket2", "widestring", @@ -3277,9 +3539,21 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.5.0" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11b0d96e660696543b251e58030cf9787df56da39dab19ad60eae7353040917e" + +[[package]] +name = "is-terminal" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b" +checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189" +dependencies = [ + "hermit-abi 0.2.6", + "io-lifetimes 1.0.3", + "rustix 0.36.5", + "windows-sys 0.42.0", +] [[package]] name = "itertools" @@ -3292,9 +3566,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" +checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" [[package]] name = "jobserver" @@ -3316,24 +3590,23 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.15.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bd0d559d5e679b1ab2f869b486a11182923863b1b3ee8b421763cdd707b783a" +checksum = "7d291e3a5818a2384645fd9756362e6d89cf0541b0b916fa7702ea4a9833608e" dependencies = [ "jsonrpsee-core", - "jsonrpsee-http-server", "jsonrpsee-proc-macros", + "jsonrpsee-server", "jsonrpsee-types", "jsonrpsee-ws-client", - "jsonrpsee-ws-server", "tracing", ] [[package]] name = "jsonrpsee-client-transport" -version = "0.15.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8752740ecd374bcbf8b69f3e80b0327942df76f793f8d4e60d3355650c31fb74" +checksum = "965de52763f2004bc91ac5bcec504192440f0b568a5d621c59d9dbd6f886c3fb" dependencies = [ "futures-util", "http", @@ -3352,9 +3625,9 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.15.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3dc3e9cf2ba50b7b1d7d76a667619f82846caa39e8e8daa8a4962d74acaddca" +checksum = "a4e70b4439a751a5de7dd5ed55eacff78ebf4ffe0fc009cb1ebb11417f5b536b" dependencies = [ "anyhow", "arrayvec 0.7.2", @@ -3365,10 +3638,8 @@ dependencies = [ "futures-timer", "futures-util", "globset", - "http", "hyper", "jsonrpsee-types", - "lazy_static", "parking_lot 0.12.1", "rand 0.8.5", "rustc-hash", @@ -3378,45 +3649,48 @@ dependencies = [ "thiserror", "tokio", "tracing", - "tracing-futures", - "unicase", ] [[package]] -name = "jsonrpsee-http-server" -version = "0.15.1" +name = "jsonrpsee-proc-macros" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baa6da1e4199c10d7b1d0a6e5e8bd8e55f351163b6f4b3cbb044672a69bd4c1c" +dependencies = [ + "heck", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "jsonrpsee-server" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03802f0373a38c2420c70b5144742d800b509e2937edc4afb116434f07120117" +checksum = "1fb69dad85df79527c019659a992498d03f8495390496da2f07e6c24c2b356fc" dependencies = [ "futures-channel", "futures-util", + "http", "hyper", "jsonrpsee-core", "jsonrpsee-types", "serde", "serde_json", + "soketto", "tokio", + "tokio-stream", + "tokio-util", + "tower", "tracing", - "tracing-futures", -] - -[[package]] -name = "jsonrpsee-proc-macros" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd67957d4280217247588ac86614ead007b301ca2fa9f19c19f880a536f029e3" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", ] [[package]] name = "jsonrpsee-types" -version = "0.15.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e290bba767401b646812f608c099b922d8142603c9e73a50fb192d3ac86f4a0d" +checksum = "5bd522fe1ce3702fd94812965d7bb7a3364b1c9aba743944c5a00529aae80f8c" dependencies = [ "anyhow", "beef", @@ -3428,9 +3702,9 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.15.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ee5feddd5188e62ac08fcf0e56478138e581509d4730f3f7be9b57dd402a4ff" +checksum = "0b83daeecfc6517cfe210df24e570fb06213533dfb990318fae781f4c7119dd9" dependencies = [ "http", "jsonrpsee-client-transport", @@ -3438,67 +3712,49 @@ dependencies = [ "jsonrpsee-types", ] -[[package]] -name = "jsonrpsee-ws-server" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d488ba74fb369e5ab68926feb75a483458b88e768d44319f37e4ecad283c7325" -dependencies = [ - "futures-channel", - "futures-util", - "http", - "jsonrpsee-core", - "jsonrpsee-types", - "serde_json", - "soketto", - "tokio", - "tokio-stream", - "tokio-util", - "tracing", - "tracing-futures", -] - [[package]] name = "k256" -version = "0.10.4" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19c3a5e0a0b8450278feda242592512e09f61c72e018b8cd5c859482802daf2d" +checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "ecdsa", "elliptic-curve", - "sec1", + "sha2 0.10.6", ] [[package]] name = "keccak" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838" +checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768" +dependencies = [ + "cpufeatures", +] [[package]] name = "kusama-runtime" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ - "beefy-primitives", "bitvec", - "frame-benchmarking", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "frame-election-provider-support", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", + "frame-executive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-try-runtime 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "hex-literal", "kusama-runtime-constants", "log", "pallet-authority-discovery", - "pallet-authorship", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-babe", "pallet-bags-list", - "pallet-balances", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-bounties", "pallet-child-bounties", "pallet-collective", @@ -3508,13 +3764,13 @@ dependencies = [ "pallet-election-provider-support-benchmarking", "pallet-elections-phragmen", "pallet-fast-unstake", - "pallet-gilt", "pallet-grandpa", "pallet-identity", "pallet-im-online", "pallet-indices", "pallet-membership", "pallet-multisig", + "pallet-nis", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", "pallet-nomination-pools-runtime-api", @@ -3526,15 +3782,14 @@ dependencies = [ "pallet-recovery", "pallet-referenda", "pallet-scheduler", - "pallet-session", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-session-benchmarking", "pallet-society", "pallet-staking", - "pallet-staking-reward-fn", - "pallet-timestamp", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-tips", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", + "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-treasury", "pallet-utility", "pallet-vesting", @@ -3550,25 +3805,26 @@ dependencies = [ "serde", "serde_derive", "smallvec", - "sp-api", - "sp-arithmetic", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-authority-discovery", - "sp-block-builder", + "sp-beefy", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-consensus-babe", - "sp-core", - "sp-inherents", - "sp-io", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-mmr-primitives", "sp-npos-elections", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "sp-transaction-pool", - "sp-version", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "static_assertions", - "substrate-wasm-builder", + "substrate-wasm-builder 5.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "xcm", "xcm-builder", "xcm-executor", @@ -3576,16 +3832,16 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ - "frame-support", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "polkadot-primitives", "polkadot-runtime-common", "smallvec", - "sp-core", - "sp-runtime", - "sp-weights", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] @@ -3599,35 +3855,31 @@ dependencies = [ [[package]] name = "kvdb" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585089ceadba0197ffe9af6740ab350b325e3c1f5fccfbc3522e0250c750409b" +checksum = "e7d770dcb02bf6835887c3a979b5107a04ff4bbde97a5f0928d27404a155add9" dependencies = [ - "parity-util-mem", "smallvec", ] [[package]] name = "kvdb-memorydb" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40d109c87bfb7759edd2a49b2649c1afe25af785d930ad6a38479b4dc70dd873" +checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2" dependencies = [ "kvdb", - "parity-util-mem", "parking_lot 0.12.1", ] [[package]] name = "kvdb-rocksdb" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c076cc2cdbac89b9910c853a36c957d3862a779f31c2661174222cefb49ee597" +checksum = "2182b8219fee6bd83aacaab7344e840179ae079d5216aa4e249b4d704646a844" dependencies = [ "kvdb", - "log", "num_cpus", - "parity-util-mem", "parking_lot 0.12.1", "regex", "rocksdb", @@ -3648,25 +3900,31 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.135" +version = "0.2.139" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68783febc7782c6c5cb401fbda4de5a9898be1762314da0bb2c10ced61f18b0c" +checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" [[package]] name = "libloading" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "winapi", ] [[package]] name = "libm" -version = "0.2.5" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" + +[[package]] +name = "libm" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "292a948cd991e376cf75541fe5b97a1081d713c618b4f1b9500f8844e49eb565" +checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" [[package]] name = "libp2p" @@ -3677,7 +3935,7 @@ dependencies = [ "bytes", "futures", "futures-timer", - "getrandom 0.2.7", + "getrandom 0.2.8", "instant", "lazy_static", "libp2p-core", @@ -3741,7 +3999,6 @@ version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2322c9fb40d99101def6a01612ee30500c89abbbecb6297b3cd252903a4c1720" dependencies = [ - "async-std-resolver", "futures", "libp2p-core", "log", @@ -3762,7 +4019,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "lru 0.8.1", + "lru", "prost", "prost-build", "prost-codec", @@ -3805,7 +4062,6 @@ version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "761704e727f7d68d58d7bc2231eafae5fc1b9814de24290f126df09d4bd37a15" dependencies = [ - "async-io", "data-encoding", "dns-parser", "futures", @@ -3816,6 +4072,7 @@ dependencies = [ "rand 0.8.5", "smallvec", "socket2", + "tokio", "void", ] @@ -3944,7 +4201,6 @@ version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9839d96761491c6d3e238e70554b856956fca0ab60feb9de2cd08eed4473fa92" dependencies = [ - "async-io", "futures", "futures-timer", "if-watch", @@ -3952,6 +4208,7 @@ dependencies = [ "libp2p-core", "log", "socket2", + "tokio", ] [[package]] @@ -4077,9 +4334,9 @@ dependencies = [ [[package]] name = "link-cplusplus" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" dependencies = [ "cc", ] @@ -4115,6 +4372,12 @@ version = "0.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4d2456c373231a208ad294c33dc5bff30051eafd954cd4caae83a712b12854d" +[[package]] +name = "linux-raw-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" + [[package]] name = "lock_api" version = "0.4.9" @@ -4131,19 +4394,10 @@ version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "value-bag", ] -[[package]] -name = "lru" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" -dependencies = [ - "hashbrown", -] - [[package]] name = "lru" version = "0.8.1" @@ -4229,18 +4483,18 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "memfd" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "480b5a5de855d11ff13195950bdc8b98b5e942ef47afc447f6615cdcc4e15d80" +checksum = "b20a59d985586e4a5aef64564ac77299f8586d8be6cf9106a5a40207e8908efb" dependencies = [ - "rustix", + "rustix 0.36.5", ] [[package]] name = "memmap2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95af15f345b17af2efc8ead6080fb8bc376f8cec1b35277b935637595fe77498" +checksum = "4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc" dependencies = [ "libc", ] @@ -4255,23 +4509,22 @@ dependencies = [ ] [[package]] -name = "memory-db" -version = "0.30.0" +name = "memoffset" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ac11bb793c28fa095b7554466f53b3a60a2cd002afdac01bcf135cbd73a269" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" dependencies = [ - "hash-db", - "hashbrown", - "parity-util-mem", + "autocfg", ] [[package]] -name = "memory-lru" -version = "0.1.1" +name = "memory-db" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce95ae042940bad7e312857b929ee3d11b8f799a80cb7b9c7ec5125516906395" +checksum = "5e0c7cba9ce19ac7ffd2053ac9f49843bbd3f4318feedfd74e85c19d5fb0ba66" dependencies = [ - "lru 0.8.1", + "hash-db", + "hashbrown", ] [[package]] @@ -4311,23 +4564,59 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.5.4" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" +checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf" +checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" dependencies = [ "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.36.1", + "windows-sys 0.42.0", +] + +[[package]] +name = "mmr-gadget" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "futures", + "log", + "parity-scale-codec", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-beefy", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-mmr-primitives", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "mmr-rpc" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "anyhow", + "jsonrpsee", + "parity-scale-codec", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-mmr-primitives", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] @@ -4336,7 +4625,7 @@ version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50e4a1c770583dac7ab5e2f6c139153b783a53a1bbee9729613f193e59828326" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "downcast", "fragile", "lazy_static", @@ -4351,7 +4640,7 @@ version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "832663583d5fa284ca8810bf7015e46c9fff9622d3cf34bd1eea5003fec06dd0" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "proc-macro2", "quote", "syn", @@ -4396,7 +4685,7 @@ dependencies = [ "blake2s_simd", "blake3", "core2", - "digest 0.10.5", + "digest 0.10.6", "multihash-derive", "sha2 0.10.6", "sha3", @@ -4425,9 +4714,9 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "multistream-select" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bc41247ec209813e2fd414d6e16b9d94297dacf3cd613fa6ef09cd4d9755c10" +checksum = "c8552ab875c1313b97b8d20cb857b9fd63e2d1d6a0a1b53ce9821e575405f27a" dependencies = [ "bytes", "futures", @@ -4447,7 +4736,7 @@ dependencies = [ "matrixmultiply", "nalgebra-macros", "num-complex", - "num-rational 0.4.1", + "num-rational", "num-traits", "rand 0.8.5", "rand_distr", @@ -4549,24 +4838,18 @@ dependencies = [ [[package]] name = "nix" -version = "0.24.2" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ "bitflags", - "cfg-if 1.0.0", + "cfg-if", "libc", ] [[package]] -name = "nodrop" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" - -[[package]] -name = "nohash-hasher" -version = "0.2.0" +name = "nohash-hasher" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" @@ -4586,17 +4869,6 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" -[[package]] -name = "num-bigint" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - [[package]] name = "num-bigint" version = "0.4.3" @@ -4619,9 +4891,9 @@ dependencies = [ [[package]] name = "num-format" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b862ff8df690cf089058c98b183676a7ed0f974cc08b426800093227cbff3b" +checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" dependencies = [ "arrayvec 0.7.2", "itoa", @@ -4637,18 +4909,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-rational" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" -dependencies = [ - "autocfg", - "num-bigint 0.2.6", - "num-integer", - "num-traits", -] - [[package]] name = "num-rational" version = "0.4.1" @@ -4656,7 +4916,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" dependencies = [ "autocfg", - "num-bigint 0.4.3", + "num-bigint", "num-integer", "num-traits", ] @@ -4668,16 +4928,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", - "libm", + "libm 0.2.6", ] [[package]] name = "num_cpus" -version = "1.13.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" dependencies = [ - "hermit-abi", + "hermit-abi 0.2.6", "libc", ] @@ -4693,11 +4953,20 @@ dependencies = [ "memchr", ] +[[package]] +name = "object" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "239da7f290cfa979f43f85a8efeee9a8a76d0827c356d37f9d3d7254d6b537fb" +dependencies = [ + "memchr", +] + [[package]] name = "once_cell" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" +checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" [[package]] name = "opaque-debug" @@ -4760,283 +5029,339 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "6.3.0" +version = "6.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" + +[[package]] +name = "packed_simd_2" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff" +checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282" +dependencies = [ + "cfg-if", + "libm 0.1.4", +] + +[[package]] +name = "pallet-aura" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "parity-scale-codec", + "scale-info", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ - "frame-support", - "frame-system", - "pallet-timestamp", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate)", "parity-scale-codec", "scale-info", - "sp-application-crypto", - "sp-consensus-aura", - "sp-runtime", - "sp-std", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-support", - "frame-system", - "pallet-session", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", - "sp-application-crypto", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-authority-discovery", - "sp-runtime", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "pallet-authorship" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "sp-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-authorship", - "sp-runtime", - "sp-std", + "sp-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", - "pallet-authorship", - "pallet-session", - "pallet-timestamp", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", - "sp-application-crypto", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-consensus-babe", "sp-consensus-vrf", - "sp-io", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "frame-election-provider-support", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "log", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "parity-scale-codec", + "scale-info", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "pallet-balances" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", - "pallet-balances", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", - "sp-tracing", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", "log", "parity-scale-codec", "scale-info", - "sp-runtime", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "beefy-primitives", - "frame-support", - "frame-system", - "pallet-session", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", "serde", - "sp-runtime", - "sp-std", + "sp-beefy", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "array-bytes", + "array-bytes 4.2.0", "beefy-merkle-tree", - "beefy-primitives", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", "pallet-beefy", "pallet-mmr", - "pallet-session", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-beefy", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", "pallet-treasury", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", "pallet-bounties", "pallet-treasury", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", - "pallet-authorship", - "pallet-session", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "rand 0.8.5", "scale-info", - "sp-runtime", - "sp-staking", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "assert_matches", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", "serde", - "sp-io", - "sp-runtime", - "sp-std", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "frame-election-provider-support", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", "pallet-election-provider-support-benchmarking", "parity-scale-codec", "rand 0.7.3", "scale-info", - "sp-arithmetic", - "sp-core", - "sp-io", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-npos-elections", - "sp-runtime", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "static_assertions", "strum", ] @@ -5044,476 +5369,481 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "frame-election-provider-support", - "frame-system", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "sp-npos-elections", - "sp-runtime", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-npos-elections", - "sp-runtime", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "frame-election-provider-support", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", - "pallet-balances", - "pallet-staking", - "pallet-timestamp", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", - "sp-staking", - "sp-std", -] - -[[package]] -name = "pallet-gilt" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" -dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", "parity-scale-codec", "scale-info", - "sp-arithmetic", - "sp-runtime", - "sp-std", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", - "pallet-authorship", - "pallet-session", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", - "sp-application-crypto", - "sp-core", - "sp-finality-grandpa", - "sp-io", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "enumflags2", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", - "pallet-authorship", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", - "sp-application-crypto", - "sp-core", - "sp-io", - "sp-runtime", - "sp-staking", - "sp-std", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-keyring", - "sp-runtime", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keyring 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "ckb-merkle-mountain-range", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-mmr-primitives", - "sp-runtime", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] -name = "pallet-mmr-rpc" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +name = "pallet-multisig" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "jsonrpsee", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "log", "parity-scale-codec", - "serde", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-mmr-primitives", - "sp-runtime", + "scale-info", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] -name = "pallet-multisig" +name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "log", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-staking", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "frame-election-provider-support", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-bags-list", "pallet-nomination-pools", "pallet-staking", "parity-scale-codec", "scale-info", - "sp-runtime", - "sp-runtime-interface", - "sp-staking", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "parity-scale-codec", - "sp-api", - "sp-std", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", - "pallet-balances", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", "serde", - "sp-runtime", - "sp-staking", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "frame-election-provider-support", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-babe", - "pallet-balances", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-grandpa", "pallet-im-online", "pallet-offences", - "pallet-session", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-staking", "parity-scale-codec", "scale-info", - "sp-runtime", - "sp-staking", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", "parity-scale-codec", "scale-info", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "assert_matches", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "log", "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic", - "sp-io", - "sp-runtime", - "sp-std", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "log", + "parity-scale-codec", + "scale-info", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "pallet-session" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "impl-trait-for-tuples", "log", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", "impl-trait-for-tuples", "log", - "pallet-timestamp", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate)", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "sp-trie", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", - "pallet-session", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-staking", "rand 0.7.3", - "sp-runtime", - "sp-session", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "rand_chacha 0.2.2", "scale-info", - "sp-runtime", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "frame-election-provider-support", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", - "pallet-authorship", - "pallet-session", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "rand_chacha 0.2.2", "scale-info", "serde", - "sp-application-crypto", - "sp-io", - "sp-runtime", - "sp-staking", - "sp-std", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -5524,216 +5854,309 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "log", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "pallet-state-trie-migration" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", - "sp-arithmetic", + "parity-scale-codec", + "scale-info", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "pallet-sudo" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "parity-scale-codec", + "scale-info", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", "parity-scale-codec", "scale-info", - "sp-io", - "sp-runtime", - "sp-std", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "pallet-template" version = "0.1.0" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", +] + +[[package]] +name = "pallet-timestamp" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "log", + "parity-scale-codec", + "scale-info", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", "log", "parity-scale-codec", "scale-info", - "sp-inherents", - "sp-io", - "sp-runtime", - "sp-std", - "sp-timestamp", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate)", ] [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", "pallet-treasury", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "pallet-transaction-payment" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", +] + +[[package]] +name = "pallet-transaction-payment-rpc" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "jsonrpsee", + "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "parity-scale-codec", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-rpc 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "jsonrpsee", - "pallet-transaction-payment-rpc-runtime-api", + "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "parity-scale-codec", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-rpc 6.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate)", +] + +[[package]] +name = "pallet-transaction-payment-rpc-runtime-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-rpc", - "sp-runtime", - "sp-weights", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ - "pallet-transaction-payment", + "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate)", "parity-scale-codec", - "sp-api", - "sp-runtime", - "sp-weights", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "impl-trait-for-tuples", - "pallet-balances", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", "serde", - "sp-runtime", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", "parity-scale-codec", "scale-info", - "sp-runtime", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", - "sp-api", - "sp-runtime", - "sp-std", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "pallet-xcm" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-runtime", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "xcm", "xcm-executor", ] [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", "parity-scale-codec", "scale-info", - "sp-runtime", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "xcm", "xcm-executor", ] @@ -5741,11 +6164,11 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.32#6abd385ce49f7feb882218646410feb063404b77" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" dependencies = [ "cumulus-primitives-core", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", ] @@ -5762,51 +6185,49 @@ dependencies = [ "cumulus-client-service", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", - "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", - "cumulus-relay-chain-minimal-node", - "cumulus-relay-chain-rpc-interface", - "frame-benchmarking", - "frame-benchmarking-cli", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-benchmarking-cli 4.0.0-dev (git+https://github.com/paritytech/substrate)", "jsonrpsee", "log", - "pallet-transaction-payment-rpc", + "pallet-transaction-payment-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate)", "parachain-template-runtime", "parity-scale-codec", "polkadot-cli", "polkadot-primitives", "polkadot-service", - "sc-basic-authorship", - "sc-chain-spec", - "sc-cli", - "sc-client-api", - "sc-consensus", - "sc-executor", - "sc-network", - "sc-network-common", - "sc-rpc", - "sc-service", - "sc-sysinfo", - "sc-telemetry", - "sc-tracing", - "sc-transaction-pool", - "sc-transaction-pool-api", - "serde", - "sp-api", - "sp-block-builder", - "sp-blockchain", - "sp-consensus-aura", - "sp-core", - "sp-keystore", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-timestamp", - "sp-transaction-pool", - "substrate-build-script-utils", - "substrate-frame-rpc-system", - "substrate-prometheus-endpoint", - "try-runtime-cli", + "sc-basic-authorship 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-sysinfo 6.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "substrate-build-script-utils 3.0.0 (git+https://github.com/paritytech/substrate)", + "substrate-frame-rpc-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "try-runtime-cli 0.10.0-dev (git+https://github.com/paritytech/substrate)", "xcm", ] @@ -5823,25 +6244,25 @@ dependencies = [ "cumulus-primitives-core", "cumulus-primitives-timestamp", "cumulus-primitives-utility", - "frame-benchmarking", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-executive 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-system-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-try-runtime 0.10.0-dev (git+https://github.com/paritytech/substrate)", "hex-literal", "log", - "pallet-aura", - "pallet-authorship", - "pallet-balances", + "pallet-aura 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate)", "pallet-collator-selection", - "pallet-session", - "pallet-sudo", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "pallet-sudo 4.0.0-dev (git+https://github.com/paritytech/substrate)", "pallet-template", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", "pallet-xcm", "parachain-info", "parity-scale-codec", @@ -5849,18 +6270,18 @@ dependencies = [ "polkadot-runtime-common", "scale-info", "smallvec", - "sp-api", - "sp-block-builder", - "sp-consensus-aura", - "sp-core", - "sp-inherents", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-std", - "sp-transaction-pool", - "sp-version", - "substrate-wasm-builder", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", + "substrate-wasm-builder 5.0.0-dev (git+https://github.com/paritytech/substrate)", "xcm", "xcm-builder", "xcm-executor", @@ -5868,11 +6289,11 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.3.17" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c8fdb726a43661fa54b43e7114e6b88b2289cae388eb3ad766d9d1754d83fce" +checksum = "3a7511a0bec4a336b5929999d02b560d2439c993cccf98c26481484e811adc43" dependencies = [ - "blake2-rfc", + "blake2", "crc32fast", "fs2", "hex", @@ -5918,42 +6339,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f" -[[package]] -name = "parity-util-mem" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d32c34f4f5ca7f9196001c0aba5a1f9a5a12382c8944b8b0f90233282d1e8f8" -dependencies = [ - "cfg-if 1.0.0", - "hashbrown", - "impl-trait-for-tuples", - "parity-util-mem-derive", - "parking_lot 0.12.1", - "primitive-types", - "smallvec", - "winapi", -] - -[[package]] -name = "parity-util-mem-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" -dependencies = [ - "proc-macro2", - "syn", - "synstructure", -] - -[[package]] -name = "parity-wasm" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16ad52817c4d343339b3bc2e26861bd21478eda0b7509acf83505727000512ac" -dependencies = [ - "byteorder", -] - [[package]] name = "parity-wasm" version = "0.45.0" @@ -5974,7 +6359,7 @@ checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" dependencies = [ "instant", "lock_api", - "parking_lot_core 0.8.5", + "parking_lot_core 0.8.6", ] [[package]] @@ -5984,16 +6369,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.4", + "parking_lot_core 0.9.5", ] [[package]] name = "parking_lot_core" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "instant", "libc", "redox_syscall", @@ -6003,11 +6388,11 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" +checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "redox_syscall", "smallvec", @@ -6016,9 +6401,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" +checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba" [[package]] name = "pbkdf2" @@ -6038,6 +6423,15 @@ dependencies = [ "crypto-mac 0.11.1", ] +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.6", +] + [[package]] name = "peeking_take_while" version = "0.1.2" @@ -6052,9 +6446,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pest" -version = "2.4.0" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a" +checksum = "cc8bed3549e0f9b0a2a78bf7c0018237a2cdf085eecbbc048e52612438e4e9d0" dependencies = [ "thiserror", "ucd-trie", @@ -6062,9 +6456,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.4.0" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b75706b9642ebcb34dab3bc7750f811609a0eb1dd8b88c2d15bf628c1c65b2" +checksum = "cdc078600d06ff90d4ed238f0119d84ab5d43dbaad278b0e33a8820293b32344" dependencies = [ "pest", "pest_generator", @@ -6072,9 +6466,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.4.0" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f9272122f5979a6511a749af9db9bfc810393f63119970d7085fed1c4ea0db" +checksum = "28a1af60b1c4148bb269006a750cff8e2ea36aff34d2d96cf7be0b14d1bed23c" dependencies = [ "pest", "pest_meta", @@ -6085,9 +6479,9 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.4.0" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8717927f9b79515e565a64fe46c38b8cd0427e64c40680b14a7365ab09ac8d" +checksum = "fec8605d59fc2ae0c6c1aefc0c7c7a9769732017c0ce07f7a9cfffa7b4404f20" dependencies = [ "once_cell", "pest", @@ -6144,20 +6538,19 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkcs8" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0" +checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" dependencies = [ "der", "spki", - "zeroize", ] [[package]] name = "pkg-config" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" +checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" [[package]] name = "platforms" @@ -6165,10 +6558,16 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94" +[[package]] +name = "platforms" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" + [[package]] name = "polkadot-approval-distribution" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "futures", "polkadot-node-network-protocol", @@ -6182,8 +6581,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "futures", "polkadot-node-network-protocol", @@ -6196,13 +6595,13 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "derive_more", "fatality", "futures", - "lru 0.8.1", + "lru", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6211,20 +6610,20 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "rand 0.8.5", - "sp-core", - "sp-keystore", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-availability-recovery" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "fatality", "futures", - "lru 0.8.1", + "lru", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6233,18 +6632,18 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "rand 0.8.5", - "sc-network", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-cli" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "clap", - "frame-benchmarking-cli", + "frame-benchmarking-cli 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "futures", "log", "polkadot-client", @@ -6252,62 +6651,65 @@ dependencies = [ "polkadot-node-metrics", "polkadot-performance-test", "polkadot-service", - "sc-cli", - "sc-service", - "sc-sysinfo", - "sc-tracing", - "sp-core", - "sp-keyring", - "sp-trie", - "substrate-build-script-utils", + "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-sysinfo 6.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keyring 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-build-script-utils 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", - "try-runtime-cli", + "try-runtime-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "polkadot-client" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" -dependencies = [ - "beefy-primitives", - "frame-benchmarking", - "frame-benchmarking-cli", - "frame-system", - "frame-system-rpc-runtime-api", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +dependencies = [ + "async-trait", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking-cli 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "futures", + "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "polkadot-core-primitives", "polkadot-node-core-parachains-inherent", "polkadot-primitives", "polkadot-runtime", "polkadot-runtime-common", - "sc-client-api", - "sc-consensus", - "sc-executor", - "sc-service", - "sp-api", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-authority-discovery", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", + "sp-beefy", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-consensus-babe", - "sp-core", - "sp-finality-grandpa", - "sp-inherents", - "sp-keyring", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keyring 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-mmr-primitives", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-storage", - "sp-timestamp", - "sp-transaction-pool", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "polkadot-collator-protocol" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "always-assert", "bitvec", @@ -6319,37 +6721,36 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sp-core", - "sp-keystore", - "sp-runtime", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-core-primitives" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "parity-scale-codec", - "parity-util-mem", "scale-info", - "sp-core", - "sp-runtime", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "polkadot-dispute-distribution" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "derive_more", "fatality", "futures", "futures-timer", "indexmap", - "lru 0.8.1", + "lru", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6357,31 +6758,31 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sc-network", - "sp-application-crypto", - "sp-keystore", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-erasure-coding" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", "polkadot-primitives", "reed-solomon-novelpoly", - "sp-core", - "sp-trie", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", ] [[package]] name = "polkadot-gossip-support" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "futures", "futures-timer", @@ -6391,17 +6792,17 @@ dependencies = [ "polkadot-primitives", "rand 0.8.5", "rand_chacha 0.3.1", - "sc-network", - "sp-application-crypto", - "sp-core", - "sp-keystore", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "tracing-gum", ] [[package]] name = "polkadot-network-bridge" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "always-assert", "async-trait", @@ -6415,17 +6816,17 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", - "sc-network", - "sc-network-common", - "sp-consensus", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-collation-generation" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "futures", "parity-scale-codec", @@ -6434,23 +6835,23 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sp-core", - "sp-maybe-compressed-blob", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "bitvec", "derive_more", "futures", "futures-timer", "kvdb", - "lru 0.8.1", + "lru", "merlin", "parity-scale-codec", "polkadot-node-jaeger", @@ -6459,20 +6860,20 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", - "sc-keystore", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "schnorrkel", - "sp-application-crypto", - "sp-consensus", - "sp-consensus-slots", - "sp-runtime", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-av-store" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "bitvec", "futures", @@ -6491,8 +6892,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "bitvec", "fatality", @@ -6503,21 +6904,21 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "polkadot-statement-table", - "sp-keystore", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "futures", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sp-keystore", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", "tracing-gum", "wasm-timer", @@ -6525,11 +6926,12 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "async-trait", "futures", + "futures-timer", "parity-scale-codec", "polkadot-node-core-pvf", "polkadot-node-primitives", @@ -6537,29 +6939,29 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-parachain", "polkadot-primitives", - "sp-maybe-compressed-blob", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "tracing-gum", ] [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "futures", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sc-client-api", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sc-consensus-babe", - "sp-blockchain", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "tracing-gum", ] [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "futures", "futures-timer", @@ -6575,44 +6977,45 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "fatality", "futures", "kvdb", - "lru 0.8.1", + "lru", "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sc-keystore", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "async-trait", "futures", "futures-timer", "polkadot-node-subsystem", + "polkadot-overseer", "polkadot-primitives", - "sp-blockchain", - "sp-inherents", - "sp-runtime", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "bitvec", "fatality", @@ -6629,13 +7032,14 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "always-assert", "assert_matches", "async-process", "async-std", + "cpu-time", "futures", "futures-timer", "parity-scale-codec", @@ -6645,24 +7049,24 @@ dependencies = [ "polkadot-parachain", "rand 0.8.5", "rayon", - "sc-executor", - "sc-executor-common", - "sc-executor-wasmtime", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-executor-wasmtime 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "slotmap", - "sp-core", - "sp-externalities", - "sp-io", - "sp-maybe-compressed-blob", - "sp-tracing", - "sp-wasm-interface", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "tempfile", "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "futures", "polkadot-node-primitives", @@ -6670,19 +7074,18 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", - "sp-keystore", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "futures", - "memory-lru", - "parity-util-mem", + "lru", "polkadot-node-subsystem", "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", @@ -6693,10 +7096,9 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ - "async-std", "lazy_static", "log", "mick-jaeger", @@ -6704,15 +7106,16 @@ dependencies = [ "parking_lot 0.12.1", "polkadot-node-primitives", "polkadot-primitives", - "sc-network", - "sp-core", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", + "tokio", ] [[package]] name = "polkadot-node-metrics" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "bs58", "futures", @@ -6721,17 +7124,17 @@ dependencies = [ "parity-scale-codec", "polkadot-primitives", "prioritized-metered-channel", - "sc-cli", - "sc-service", - "sc-tracing", - "substrate-prometheus-endpoint", + "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "tracing-gum", ] [[package]] name = "polkadot-node-network-protocol" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "async-trait", "derive_more", @@ -6744,8 +7147,8 @@ dependencies = [ "polkadot-primitives", "rand 0.8.5", "sc-authority-discovery", - "sc-network", - "sc-network-common", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "strum", "thiserror", "tracing-gum", @@ -6753,8 +7156,8 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "bounded-vec", "futures", @@ -6763,20 +7166,20 @@ dependencies = [ "polkadot-primitives", "schnorrkel", "serde", - "sp-application-crypto", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-consensus-babe", "sp-consensus-vrf", - "sp-core", - "sp-keystore", - "sp-maybe-compressed-blob", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", "zstd", ] [[package]] name = "polkadot-node-subsystem" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -6785,8 +7188,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "async-trait", "derive_more", @@ -6797,19 +7200,19 @@ dependencies = [ "polkadot-node-primitives", "polkadot-primitives", "polkadot-statement-table", - "sc-network", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "smallvec", - "sp-api", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-authority-discovery", "sp-consensus-babe", - "substrate-prometheus-endpoint", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", ] [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "async-trait", "derive_more", @@ -6817,10 +7220,9 @@ dependencies = [ "futures", "itertools", "kvdb", - "lru 0.8.1", + "lru", "parity-db", "parity-scale-codec", - "parity-util-mem", "parking_lot 0.11.2", "pin-project", "polkadot-node-jaeger", @@ -6832,57 +7234,56 @@ dependencies = [ "polkadot-primitives", "prioritized-metered-channel", "rand 0.8.5", - "sp-application-crypto", - "sp-core", - "sp-keystore", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-overseer" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "async-trait", "futures", "futures-timer", - "lru 0.8.1", + "lru", "orchestra", - "parity-util-mem", "parking_lot 0.12.1", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem-types", "polkadot-primitives", - "sc-client-api", - "sp-api", - "sp-core", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "tikv-jemalloc-ctl", "tracing-gum", ] [[package]] name = "polkadot-parachain" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "derive_more", - "frame-support", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", - "parity-util-mem", "polkadot-core-primitives", "scale-info", "serde", - "sp-core", - "sp-runtime", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "polkadot-performance-test" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "env_logger", "kusama-runtime", @@ -6896,88 +7297,83 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "bitvec", - "frame-system", "hex-literal", "parity-scale-codec", - "parity-util-mem", "polkadot-core-primitives", "polkadot-parachain", "scale-info", "serde", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-authority-discovery", - "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-runtime", - "sp-staking", - "sp-std", - "sp-trie", - "sp-version", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "polkadot-rpc" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", "jsonrpsee", - "pallet-mmr-rpc", - "pallet-transaction-payment-rpc", + "mmr-rpc", + "pallet-transaction-payment-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "polkadot-primitives", - "sc-chain-spec", - "sc-client-api", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sc-consensus-babe", "sc-consensus-babe-rpc", "sc-consensus-epochs", "sc-finality-grandpa", "sc-finality-grandpa-rpc", - "sc-rpc", + "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sc-sync-state-rpc", - "sc-transaction-pool-api", - "sp-api", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-consensus-babe", - "sp-keystore", - "sp-runtime", - "substrate-frame-rpc-system", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-frame-rpc-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "substrate-state-trie-migration-rpc", ] [[package]] name = "polkadot-runtime" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ - "beefy-primitives", "bitvec", - "frame-benchmarking", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "frame-election-provider-support", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", + "frame-executive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-try-runtime 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "hex-literal", "log", "pallet-authority-discovery", - "pallet-authorship", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-babe", "pallet-bags-list", - "pallet-balances", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-bounties", "pallet-child-bounties", "pallet-collective", @@ -7000,14 +7396,14 @@ dependencies = [ "pallet-preimage", "pallet-proxy", "pallet-scheduler", - "pallet-session", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-session-benchmarking", "pallet-staking", "pallet-staking-reward-curve", - "pallet-timestamp", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-tips", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", + "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-treasury", "pallet-utility", "pallet-vesting", @@ -7022,24 +7418,25 @@ dependencies = [ "serde", "serde_derive", "smallvec", - "sp-api", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-authority-discovery", - "sp-block-builder", + "sp-beefy", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-consensus-babe", - "sp-core", - "sp-inherents", - "sp-io", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-mmr-primitives", "sp-npos-elections", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "sp-transaction-pool", - "sp-version", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "static_assertions", - "substrate-wasm-builder", + "substrate-wasm-builder 5.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "xcm", "xcm-builder", "xcm-executor", @@ -7047,28 +7444,28 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ - "beefy-primitives", "bitvec", - "frame-benchmarking", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "frame-election-provider-support", - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "impl-trait-for-tuples", "libsecp256k1", "log", - "pallet-authorship", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-babe", "pallet-bags-list", - "pallet-balances", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-beefy-mmr", "pallet-election-provider-multi-phase", - "pallet-session", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-staking", - "pallet-timestamp", - "pallet-transaction-payment", + "pallet-staking-reward-fn", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-treasury", "pallet-vesting", "parity-scale-codec", @@ -7079,64 +7476,65 @@ dependencies = [ "serde", "serde_derive", "slot-range-helper", - "sp-api", - "sp-core", - "sp-inherents", - "sp-io", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-beefy", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-npos-elections", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "static_assertions", "xcm", ] [[package]] name = "polkadot-runtime-constants" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ - "frame-support", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "polkadot-primitives", "polkadot-runtime-common", "smallvec", - "sp-core", - "sp-runtime", - "sp-weights", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "polkadot-runtime-metrics" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "bs58", "parity-scale-codec", "polkadot-primitives", - "sp-std", - "sp-tracing", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "polkadot-runtime-parachains" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "bitflags", "bitvec", "derive_more", - "frame-benchmarking", - "frame-support", - "frame-system", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", "pallet-authority-discovery", - "pallet-authorship", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-babe", - "pallet-balances", - "pallet-session", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-staking", - "pallet-timestamp", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-vesting", "parity-scale-codec", "polkadot-primitives", @@ -7146,16 +7544,16 @@ dependencies = [ "rustc-hex", "scale-info", "serde", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "static_assertions", "xcm", "xcm-executor", @@ -7163,24 +7561,24 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "async-trait", "beefy-gadget", - "beefy-primitives", - "frame-support", - "frame-system-rpc-runtime-api", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "futures", "hex-literal", "kusama-runtime", "kvdb", "kvdb-rocksdb", - "lru 0.8.1", + "lru", + "mmr-gadget", "pallet-babe", "pallet-im-online", "pallet-staking", - "pallet-transaction-payment-rpc-runtime-api", + "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-db", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", @@ -7219,47 +7617,49 @@ dependencies = [ "polkadot-statement-distribution", "rococo-runtime", "sc-authority-discovery", - "sc-basic-authorship", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-client-db", - "sc-consensus", + "sc-basic-authorship 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sc-consensus-babe", "sc-consensus-slots", - "sc-executor", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sc-finality-grandpa", - "sc-keystore", - "sc-network", - "sc-network-common", - "sc-offchain", - "sc-service", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sc-sync-state-rpc", - "sc-sysinfo", - "sc-telemetry", - "sc-transaction-pool", + "sc-sysinfo 6.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "serde", "serde_json", - "sp-api", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-authority-discovery", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", + "sp-beefy", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-consensus-babe", - "sp-core", - "sp-finality-grandpa", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-state-machine", - "sp-storage", - "sp-timestamp", - "sp-transaction-pool", - "sp-trie", - "substrate-prometheus-endpoint", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-mmr-primitives", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", "tracing-gum", "westend-runtime", @@ -7267,8 +7667,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "arrayvec 0.5.2", "fatality", @@ -7280,34 +7680,34 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sp-keystore", - "sp-staking", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-statement-table" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "parity-scale-codec", "polkadot-primitives", - "sp-core", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "polling" -version = "2.3.0" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899b00b9c8ab553c743b3e11e87c5c7d423b2a2de229ba95b24a756344748011" +checksum = "22122d5ec4f9fe1b3916419b76be1e80bcb93f618d071d2edf841b137b2a2bd6" dependencies = [ "autocfg", - "cfg-if 1.0.0", + "cfg-if", "libc", "log", "wepoll-ffi", - "winapi", + "windows-sys 0.42.0", ] [[package]] @@ -7327,7 +7727,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "opaque-debug 0.3.0", "universal-hash", @@ -7335,15 +7735,15 @@ dependencies = [ [[package]] name = "ppv-lite86" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "predicates" -version = "2.1.3" +version = "2.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6bd09a7f7e68f3f0bf710fb7ab9c4615a488b58b5f653382a687701e458c92" +checksum = "f54fc5dc63ed3bbf19494623db4f3af16842c0d975818e469022d09e53f0aa05" dependencies = [ "difflib", "float-cmp", @@ -7369,6 +7769,16 @@ dependencies = [ "termtree", ] +[[package]] +name = "prettyplease" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c8992a85d8e93a28bdf76137db888d3874e3b230dee5ed8bebac4c9f7617773" +dependencies = [ + "proc-macro2", + "syn", +] + [[package]] name = "primitive-types" version = "0.12.1" @@ -7435,20 +7845,20 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.47" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" +checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5" dependencies = [ "unicode-ident", ] [[package]] name = "prometheus" -version = "0.13.2" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45c8babc29389186697fe5a2a4859d697825496b83db5d0b65271cdc0488e88c" +checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "fnv", "lazy_static", "memchr", @@ -7481,9 +7891,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.11.0" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "399c3c31cdec40583bb68f0b18403400d01ec4289c383aa047560439952c4dd7" +checksum = "c01db6702aa05baa3f57dec92b8eeeeb4cb19e894e73996b32a4093289e54592" dependencies = [ "bytes", "prost-derive", @@ -7491,9 +7901,9 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.11.1" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f835c582e6bd972ba8347313300219fed5bfa52caf175298d860b61ff6069bb" +checksum = "cb5320c680de74ba083512704acb90fe00f28f79207286a848e730c45dd73ed6" dependencies = [ "bytes", "heck", @@ -7502,9 +7912,11 @@ dependencies = [ "log", "multimap", "petgraph", + "prettyplease", "prost", "prost-types", "regex", + "syn", "tempfile", "which", ] @@ -7524,9 +7936,9 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.11.0" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7345d5f0e08c0536d7ac7229952590239e77abf0a0100a1b1d890add6ea96364" +checksum = "c8842bad1a5419bca14eac663ba798f6bc19c413c2fdceb5f3ba3b0932d96720" dependencies = [ "anyhow", "itertools", @@ -7537,9 +7949,9 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.11.1" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dfaa718ad76a44b3415e6c4d53b17c8f99160dcb3a99b10470fce8ad43f6e3e" +checksum = "017f79637768cde62820bc2d4fe0e45daaa027755c323ad077767c6c5f173091" dependencies = [ "bytes", "prost", @@ -7573,9 +7985,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.21" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" dependencies = [ "proc-macro2", ] @@ -7646,7 +8058,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.7", + "getrandom 0.2.8", ] [[package]] @@ -7694,21 +8106,19 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.5.3" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" +checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" dependencies = [ - "autocfg", - "crossbeam-deque", "either", "rayon-core", ] [[package]] name = "rayon-core" -version = "1.9.3" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" +checksum = "cac410af5d00ab6884528b4ab69d1e8e146e8d471201800fa1b4524126de6ad3" dependencies = [ "crossbeam-channel", "crossbeam-deque", @@ -7731,7 +8141,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.7", + "getrandom 0.2.8", "redox_syscall", "thiserror", ] @@ -7751,18 +8161,18 @@ dependencies = [ [[package]] name = "ref-cast" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12a733f1746c929b4913fe48f8697fcf9c55e3304ba251a79ffb41adfeaf49c2" +checksum = "8c78fb8c9293bcd48ef6fce7b4ca950ceaf21210de6e105a883ee280c0f7b9ed" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5887de4a01acafd221861463be6113e6e87275e79804e56779f4cdc131c60368" +checksum = "9f9c0c92af03644e4806106281fe2e068ac5bc0ae74a707266d06ea27bccee5f" dependencies = [ "proc-macro2", "quote", @@ -7783,9 +8193,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" +checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a" dependencies = [ "aho-corasick", "memchr", @@ -7803,26 +8213,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.27" +version = "0.6.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" - -[[package]] -name = "remote-externalities" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" -dependencies = [ - "env_logger", - "log", - "parity-scale-codec", - "serde", - "serde_json", - "sp-core", - "sp-io", - "sp-runtime", - "sp-version", - "substrate-rpc-client", -] +checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" [[package]] name = "remove_dir_all" @@ -7845,12 +8238,12 @@ dependencies = [ [[package]] name = "rfc6979" -version = "0.1.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96ef608575f6392792f9ecf7890c00086591d29a83910939d430753f7c050525" +checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" dependencies = [ "crypto-bigint", - "hmac 0.11.0", + "hmac 0.12.1", "zeroize", ] @@ -7881,23 +8274,22 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "beefy-merkle-tree", - "beefy-primitives", - "frame-benchmarking", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-executive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "hex-literal", "log", "pallet-authority-discovery", - "pallet-authorship", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-babe", - "pallet-balances", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-beefy", "pallet-beefy-mmr", "pallet-bounties", @@ -7905,7 +8297,6 @@ dependencies = [ "pallet-collective", "pallet-democracy", "pallet-elections-phragmen", - "pallet-gilt", "pallet-grandpa", "pallet-identity", "pallet-im-online", @@ -7913,19 +8304,21 @@ dependencies = [ "pallet-membership", "pallet-mmr", "pallet-multisig", + "pallet-nis", "pallet-offences", "pallet-preimage", "pallet-proxy", "pallet-recovery", "pallet-scheduler", - "pallet-session", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-society", "pallet-staking", - "pallet-sudo", - "pallet-timestamp", + "pallet-state-trie-migration", + "pallet-sudo 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-tips", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", + "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-treasury", "pallet-utility", "pallet-vesting", @@ -7941,23 +8334,24 @@ dependencies = [ "serde", "serde_derive", "smallvec", - "sp-api", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-authority-discovery", - "sp-block-builder", + "sp-beefy", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-consensus-babe", - "sp-core", - "sp-inherents", - "sp-io", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-mmr-primitives", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "sp-transaction-pool", - "sp-version", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "static_assertions", - "substrate-wasm-builder", + "substrate-wasm-builder 5.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "xcm", "xcm-builder", "xcm-executor", @@ -7965,25 +8359,26 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ - "frame-support", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "polkadot-primitives", "polkadot-runtime-common", "smallvec", - "sp-core", - "sp-runtime", - "sp-weights", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "rpassword" -version = "7.0.0" +version = "7.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b763cb66df1c928432cc35053f8bd4cec3335d8559fc16010017d16b3c1680" +checksum = "6678cf63ab3491898c0d021b493c94c9b221d91295294a2a5746eacbe5928322" dependencies = [ "libc", + "rtoolbox", "winapi", ] @@ -8003,8 +8398,18 @@ dependencies = [ ] [[package]] -name = "rustc-demangle" -version = "0.1.21" +name = "rtoolbox" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "034e22c514f5c0cb8a10ff341b9b048b5ceb21591f31c8f44c43b960f9b3524a" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" @@ -8026,21 +8431,35 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.14", + "semver 1.0.16", ] [[package]] name = "rustix" -version = "0.35.11" +version = "0.35.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb2fda4666def1433b1b05431ab402e42a1084285477222b72d6c564c417cef" +checksum = "727a1a6d65f786ec22df8a81ca3121107f235970dc1705ed681d3e6e8b9cd5f9" dependencies = [ "bitflags", "errno", - "io-lifetimes", + "io-lifetimes 0.7.5", "libc", - "linux-raw-sys", - "windows-sys 0.36.1", + "linux-raw-sys 0.0.46", + "windows-sys 0.42.0", +] + +[[package]] +name = "rustix" +version = "0.36.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3807b5d10909833d3e9acd1eb5fb988f79376ff10fce42937de71a449c4c588" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes 1.0.3", + "libc", + "linux-raw-sys 0.1.4", + "windows-sys 0.42.0", ] [[package]] @@ -8078,9 +8497,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" +checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" [[package]] name = "rw-stream-sink" @@ -8095,9 +8514,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" +checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" [[package]] name = "same-file" @@ -8111,18 +8530,29 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "log", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "thiserror", +] + +[[package]] +name = "sc-allocator" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "log", - "sp-core", - "sp-wasm-interface", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate)", "thiserror", ] [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "async-trait", "futures", @@ -8134,78 +8564,143 @@ dependencies = [ "prost", "prost-build", "rand 0.7.3", - "sc-client-api", - "sc-network-common", - "sp-api", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-authority-discovery", - "sp-blockchain", - "sp-core", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", ] [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "futures", + "futures-timer", + "log", + "parity-scale-codec", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-proposer-metrics 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "sc-basic-authorship" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "futures", "futures-timer", "log", "parity-scale-codec", - "sc-block-builder", - "sc-client-api", - "sc-proposer-metrics", - "sc-telemetry", - "sc-transaction-pool-api", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-inherents", - "sp-runtime", - "substrate-prometheus-endpoint", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-proposer-metrics 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", +] + +[[package]] +name = "sc-block-builder" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "parity-scale-codec", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "parity-scale-codec", - "sc-client-api", - "sp-api", - "sp-block-builder", - "sp-blockchain", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "impl-trait-for-tuples", "memmap2", "parity-scale-codec", - "sc-chain-spec-derive", - "sc-network-common", - "sc-telemetry", + "sc-chain-spec-derive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "serde", + "serde_json", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "sc-chain-spec" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "memmap2", + "sc-chain-spec-derive 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate)", "serde", "serde_json", - "sp-core", - "sp-runtime", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", +] + +[[package]] +name = "sc-chain-spec-derive" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8216,9 +8711,9 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "array-bytes", + "array-bytes 4.2.0", "chrono", "clap", "fdlimit", @@ -8230,61 +8725,152 @@ dependencies = [ "rand 0.7.3", "regex", "rpassword", - "sc-client-api", - "sc-client-db", - "sc-keystore", - "sc-network", - "sc-network-common", - "sc-service", - "sc-telemetry", - "sc-tracing", - "sc-utils", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "serde", + "serde_json", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keyring 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-panic-handler 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "thiserror", + "tiny-bip39 0.8.2", + "tokio", +] + +[[package]] +name = "sc-cli" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "array-bytes 4.2.0", + "chrono", + "clap", + "fdlimit", + "futures", + "libp2p", + "log", + "names", + "parity-scale-codec", + "rand 0.8.5", + "regex", + "rpassword", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate)", "serde", "serde_json", - "sp-blockchain", - "sp-core", - "sp-keyring", - "sp-keystore", - "sp-panic-handler", - "sp-runtime", - "sp-version", - "thiserror", - "tiny-bip39", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-keyring 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-panic-handler 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", + "thiserror", + "tiny-bip39 1.0.0", "tokio", ] [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "fnv", + "futures", + "hash-db", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "sc-client-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "fnv", "futures", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", +] + +[[package]] +name = "sc-client-db" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ "hash-db", + "kvdb", + "kvdb-memorydb", + "kvdb-rocksdb", + "linked-hash-map", "log", + "parity-db", "parity-scale-codec", "parking_lot 0.12.1", - "sc-executor", - "sc-transaction-pool-api", - "sc-utils", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-database", - "sp-externalities", - "sp-keystore", - "sp-runtime", - "sp-state-machine", - "sp-storage", - "sp-trie", - "substrate-prometheus-endpoint", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-state-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "hash-db", "kvdb", @@ -8295,209 +8881,265 @@ dependencies = [ "parity-db", "parity-scale-codec", "parking_lot 0.12.1", - "sc-client-api", - "sc-state-db", - "sp-arithmetic", - "sp-blockchain", - "sp-core", - "sp-database", - "sp-runtime", - "sp-state-machine", - "sp-trie", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-state-db 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate)", +] + +[[package]] +name = "sc-consensus" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "async-trait", + "futures", + "futures-timer", + "libp2p", + "log", + "mockall", + "parking_lot 0.12.1", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "thiserror", ] [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "async-trait", "futures", "futures-timer", "libp2p", "log", + "mockall", "parking_lot 0.12.1", - "sc-client-api", - "sc-utils", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate)", "serde", - "sp-api", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-runtime", - "sp-state-machine", - "substrate-prometheus-endpoint", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", "thiserror", ] [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "async-trait", "futures", "log", "parity-scale-codec", - "sc-block-builder", - "sc-client-api", - "sc-consensus", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sc-consensus-slots", - "sc-telemetry", - "sp-api", - "sp-application-crypto", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-aura", - "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", ] [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "async-trait", - "fork-tree", + "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "futures", "log", "merlin", - "num-bigint 0.2.6", - "num-rational 0.2.4", + "num-bigint", + "num-rational", "num-traits", "parity-scale-codec", "parking_lot 0.12.1", - "rand 0.7.3", - "sc-client-api", - "sc-consensus", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sc-consensus-epochs", "sc-consensus-slots", - "sc-keystore", - "sc-telemetry", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "schnorrkel", "serde", - "sp-api", - "sp-application-crypto", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-consensus-babe", - "sp-consensus-slots", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-consensus-vrf", - "sp-core", - "sp-inherents", - "sp-io", - "sp-keystore", - "sp-runtime", - "sp-version", - "substrate-prometheus-endpoint", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", ] [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "futures", "jsonrpsee", "sc-consensus-babe", "sc-consensus-epochs", - "sc-rpc-api", + "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "serde", - "sp-api", - "sp-application-crypto", - "sp-blockchain", - "sp-consensus", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-consensus-babe", - "sp-core", - "sp-keystore", - "sp-runtime", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", ] [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "fork-tree", + "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", - "sc-client-api", - "sc-consensus", - "sp-blockchain", - "sp-runtime", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "async-trait", "futures", "futures-timer", "log", "parity-scale-codec", - "sc-client-api", - "sc-consensus", - "sc-telemetry", - "sp-arithmetic", - "sp-blockchain", - "sp-consensus", - "sp-consensus-slots", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", ] [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "lazy_static", - "lru 0.7.8", + "lru", "parity-scale-codec", "parking_lot 0.12.1", - "sc-executor-common", - "sc-executor-wasmi", - "sc-executor-wasmtime", - "sp-api", - "sp-core", - "sp-core-hashing-proc-macro", - "sp-externalities", - "sp-io", - "sp-panic-handler", - "sp-runtime-interface", - "sp-tasks", - "sp-trie", - "sp-version", - "sp-wasm-interface", + "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-executor-wasmi 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-executor-wasmtime 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-panic-handler 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "tracing", "wasmi", ] [[package]] -name = "sc-executor-common" +name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ - "environmental", + "lru", "parity-scale-codec", - "sc-allocator", - "sp-maybe-compressed-blob", - "sp-sandbox", - "sp-wasm-interface", + "parking_lot 0.12.1", + "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-executor-wasmi 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-executor-wasmtime 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-panic-handler 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate)", + "tracing", + "wasmi", +] + +[[package]] +name = "sc-executor-common" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "thiserror", + "wasm-instrument", + "wasmi", +] + +[[package]] +name = "sc-executor-common" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate)", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate)", + "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate)", "thiserror", "wasm-instrument", "wasmi", @@ -8506,138 +9148,192 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "log", - "parity-scale-codec", - "sc-allocator", - "sc-executor-common", - "sp-runtime-interface", - "sp-sandbox", - "sp-wasm-interface", + "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "wasmi", +] + +[[package]] +name = "sc-executor-wasmi" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "log", + "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate)", + "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate)", "wasmi", ] [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "log", "once_cell", - "parity-scale-codec", - "parity-wasm 0.45.0", - "rustix", - "sc-allocator", - "sc-executor-common", - "sp-runtime-interface", - "sp-sandbox", - "sp-wasm-interface", + "rustix 0.35.13", + "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "wasmtime", +] + +[[package]] +name = "sc-executor-wasmtime" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "cfg-if", + "libc", + "log", + "once_cell", + "rustix 0.35.13", + "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate)", + "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate)", "wasmtime", ] [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "ahash", - "array-bytes", + "array-bytes 4.2.0", "async-trait", "dyn-clone", "finality-grandpa", - "fork-tree", + "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "futures", "futures-timer", "log", "parity-scale-codec", "parking_lot 0.12.1", "rand 0.8.5", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-consensus", - "sc-keystore", - "sc-network", - "sc-network-common", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sc-network-gossip", - "sc-telemetry", - "sc-utils", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "serde_json", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-finality-grandpa", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", ] [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "finality-grandpa", "futures", "jsonrpsee", "log", "parity-scale-codec", - "sc-client-api", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sc-finality-grandpa", - "sc-rpc", + "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "serde", "serde_json", - "sp-blockchain", - "sp-core", - "sp-runtime", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", ] [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "ansi_term", "futures", "futures-timer", "log", - "parity-util-mem", - "sc-client-api", - "sc-network-common", - "sc-transaction-pool-api", - "sp-blockchain", - "sp-runtime", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "sc-informant" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "ansi_term", + "futures", + "futures-timer", + "log", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", +] + +[[package]] +name = "sc-keystore" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "array-bytes 4.2.0", + "async-trait", + "parking_lot 0.12.1", + "serde_json", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "thiserror", ] [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ - "array-bytes", + "array-bytes 4.2.0", "async-trait", "parking_lot 0.12.1", "serde_json", - "sp-application-crypto", - "sp-core", - "sp-keystore", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate)", "thiserror", ] [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "array-bytes", + "array-bytes 4.2.0", "async-trait", "asynchronous-codec", "bitflags", @@ -8645,7 +9341,7 @@ dependencies = [ "cid", "either", "fnv", - "fork-tree", + "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "futures", "futures-timer", "ip_network", @@ -8653,27 +9349,68 @@ dependencies = [ "linked-hash-map", "linked_hash_set", "log", - "lru 0.7.8", + "lru", "parity-scale-codec", "parking_lot 0.12.1", "pin-project", "prost", "rand 0.7.3", - "sc-block-builder", - "sc-client-api", - "sc-consensus", - "sc-network-common", - "sc-peerset", - "sc-utils", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "serde", + "serde_json", + "smallvec", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "thiserror", + "unsigned-varint", + "zeroize", +] + +[[package]] +name = "sc-network" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "array-bytes 4.2.0", + "async-trait", + "asynchronous-codec", + "bytes", + "either", + "fnv", + "futures", + "futures-timer", + "ip_network", + "libp2p", + "log", + "lru", + "parity-scale-codec", + "parking_lot 0.12.1", + "pin-project", + "rand 0.8.5", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate)", "serde", "serde_json", "smallvec", - "sp-arithmetic", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-runtime", - "substrate-prometheus-endpoint", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", "thiserror", "unsigned-varint", "zeroize", @@ -8682,7 +9419,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "cid", "futures", @@ -8690,19 +9427,64 @@ dependencies = [ "log", "prost", "prost-build", - "sc-client-api", - "sc-network-common", - "sp-blockchain", - "sp-runtime", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", "unsigned-varint", "void", ] +[[package]] +name = "sc-network-bitswap" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "cid", + "futures", + "libp2p", + "log", + "prost", + "prost-build", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "thiserror", + "unsigned-varint", +] + +[[package]] +name = "sc-network-common" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "async-trait", + "bitflags", + "bytes", + "futures", + "futures-timer", + "libp2p", + "linked_hash_set", + "parity-scale-codec", + "prost-build", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "serde", + "smallvec", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "thiserror", +] + [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "async-trait", "bitflags", @@ -8713,112 +9495,185 @@ dependencies = [ "linked_hash_set", "parity-scale-codec", "prost-build", - "sc-consensus", - "sc-peerset", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate)", "serde", "smallvec", - "sp-blockchain", - "sp-consensus", - "sp-finality-grandpa", - "sp-runtime", - "substrate-prometheus-endpoint", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", "thiserror", ] [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "ahash", "futures", "futures-timer", "libp2p", "log", - "lru 0.7.8", - "sc-network-common", - "sc-peerset", - "sp-runtime", - "substrate-prometheus-endpoint", + "lru", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "tracing", ] [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "array-bytes", + "array-bytes 4.2.0", "futures", "libp2p", "log", "parity-scale-codec", "prost", "prost-build", - "sc-client-api", - "sc-network-common", - "sc-peerset", - "sp-blockchain", - "sp-core", - "sp-runtime", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", ] [[package]] -name = "sc-network-sync" +name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ - "array-bytes", - "fork-tree", + "array-bytes 4.2.0", "futures", "libp2p", "log", - "lru 0.7.8", + "parity-scale-codec", + "prost", + "prost-build", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "thiserror", +] + +[[package]] +name = "sc-network-sync" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "array-bytes 4.2.0", + "async-trait", + "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "futures", + "libp2p", + "log", + "lru", + "mockall", + "parity-scale-codec", + "prost", + "prost-build", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "smallvec", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "thiserror", +] + +[[package]] +name = "sc-network-sync" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "array-bytes 4.2.0", + "async-trait", + "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate)", + "futures", + "libp2p", + "log", + "lru", "mockall", "parity-scale-codec", "prost", "prost-build", - "sc-client-api", - "sc-consensus", - "sc-network-common", - "sc-peerset", - "sc-utils", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate)", "smallvec", - "sp-arithmetic", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-finality-grandpa", - "sp-runtime", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", "thiserror", ] [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "array-bytes", + "array-bytes 4.2.0", "futures", "hex", "libp2p", "log", "parity-scale-codec", "pin-project", - "sc-network-common", - "sc-peerset", - "sp-consensus", - "sp-runtime", - "substrate-prometheus-endpoint", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "sc-network-transactions" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "array-bytes 4.2.0", + "futures", + "libp2p", + "log", + "parity-scale-codec", + "pin-project", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", ] [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "array-bytes", + "array-bytes 4.2.0", "bytes", "fnv", "futures", @@ -8831,14 +9686,44 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", "rand 0.7.3", - "sc-client-api", - "sc-network-common", - "sc-peerset", - "sc-utils", - "sp-api", - "sp-core", - "sp-offchain", - "sp-runtime", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "threadpool", + "tracing", +] + +[[package]] +name = "sc-offchain" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "array-bytes 4.2.0", + "bytes", + "fnv", + "futures", + "futures-timer", + "hyper", + "hyper-rustls", + "libp2p", + "num_cpus", + "once_cell", + "parity-scale-codec", + "parking_lot 0.12.1", + "rand 0.8.5", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", "threadpool", "tracing", ] @@ -8846,12 +9731,25 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "futures", + "libp2p", + "log", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "serde_json", + "wasm-timer", +] + +[[package]] +name = "sc-peerset" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "futures", "libp2p", "log", - "sc-utils", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate)", "serde_json", "wasm-timer", ] @@ -8859,16 +9757,25 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "log", - "substrate-prometheus-endpoint", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "sc-proposer-metrics" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "log", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", ] [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "futures", "hash-db", @@ -8876,84 +9783,176 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.1", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-rpc-api", - "sc-tracing", - "sc-transaction-pool-api", - "sc-utils", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "serde_json", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-rpc 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "sc-rpc" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "futures", + "jsonrpsee", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate)", "serde_json", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-keystore", - "sp-offchain", - "sp-rpc", - "sp-runtime", - "sp-session", - "sp-version", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-rpc 6.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "futures", "jsonrpsee", "log", "parity-scale-codec", "parking_lot 0.12.1", - "sc-chain-spec", - "sc-transaction-pool-api", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "scale-info", + "serde", + "serde_json", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-rpc 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "thiserror", +] + +[[package]] +name = "sc-rpc-api" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "jsonrpsee", + "parity-scale-codec", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", "scale-info", "serde", "serde_json", - "sp-core", - "sp-rpc", - "sp-runtime", - "sp-tracing", - "sp-version", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-rpc 6.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", "thiserror", ] [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "futures", + "http", + "jsonrpsee", + "log", + "serde_json", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "tokio", + "tower", + "tower-http", +] + +[[package]] +name = "sc-rpc-server" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "http", "jsonrpsee", "log", "serde_json", - "substrate-prometheus-endpoint", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", "tokio", + "tower", + "tower-http", +] + +[[package]] +name = "sc-rpc-spec-v2" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "futures", + "hex", + "jsonrpsee", + "parity-scale-codec", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "thiserror", ] [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ + "array-bytes 4.2.0", "futures", + "futures-util", "hex", "jsonrpsee", + "log", "parity-scale-codec", - "sc-chain-spec", - "sc-transaction-pool-api", + "parking_lot 0.12.1", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", "serde", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-runtime", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", "thiserror", + "tokio-stream", ] [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "async-trait", "directories", @@ -8964,56 +9963,120 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "parity-util-mem", "parking_lot 0.12.1", "pin-project", "rand 0.7.3", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-client-db", - "sc-consensus", - "sc-executor", - "sc-informant", - "sc-keystore", - "sc-network", - "sc-network-bitswap", - "sc-network-common", - "sc-network-light", - "sc-network-sync", - "sc-network-transactions", - "sc-offchain", - "sc-rpc", - "sc-rpc-server", - "sc-rpc-spec-v2", - "sc-sysinfo", - "sc-telemetry", - "sc-tracing", - "sc-transaction-pool", - "sc-transaction-pool-api", - "sc-utils", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-informant 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-bitswap 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-light 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-sync 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-transactions 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-rpc-server 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-rpc-spec-v2 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-sysinfo 6.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "serde", + "serde_json", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-transaction-storage-proof 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "static_init 1.0.3", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "tempfile", + "thiserror", + "tokio", + "tracing", + "tracing-futures", +] + +[[package]] +name = "sc-service" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "async-trait", + "directories", + "exit-future", + "futures", + "futures-timer", + "jsonrpsee", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "pin-project", + "rand 0.8.5", + "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-informant 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-network-bitswap 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-network-light 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-network-sync 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-network-transactions 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-rpc-server 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-rpc-spec-v2 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-sysinfo 6.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate)", "serde", "serde_json", - "sp-api", - "sp-application-crypto", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-externalities", - "sp-inherents", - "sp-keystore", - "sp-runtime", - "sp-session", - "sp-state-machine", - "sp-storage", - "sp-tracing", - "sp-transaction-pool", - "sp-transaction-storage-proof", - "sp-trie", - "sp-version", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-transaction-storage-proof 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", "static_init 1.0.3", - "substrate-prometheus-endpoint", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", "tempfile", "thiserror", "tokio", @@ -9024,40 +10087,49 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "sc-state-db" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "log", "parity-scale-codec", - "parity-util-mem", - "parity-util-mem-derive", "parking_lot 0.12.1", - "sc-client-api", - "sp-core", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "jsonrpsee", "parity-scale-codec", - "sc-chain-spec", - "sc-client-api", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sc-consensus-babe", "sc-consensus-epochs", "sc-finality-grandpa", "serde", "serde_json", - "sp-blockchain", - "sp-runtime", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", ] [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "futures", "libc", @@ -9065,18 +10137,37 @@ dependencies = [ "rand 0.7.3", "rand_pcg 0.2.1", "regex", - "sc-telemetry", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "serde", + "serde_json", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "sc-sysinfo" +version = "6.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "futures", + "libc", + "log", + "rand 0.8.5", + "rand_pcg 0.3.1", + "regex", + "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate)", "serde", "serde_json", - "sp-core", - "sp-io", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "chrono", "futures", @@ -9091,10 +10182,59 @@ dependencies = [ "wasm-timer", ] +[[package]] +name = "sc-telemetry" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "chrono", + "futures", + "libp2p", + "log", + "parking_lot 0.12.1", + "pin-project", + "rand 0.8.5", + "serde", + "serde_json", + "thiserror", + "wasm-timer", +] + +[[package]] +name = "sc-tracing" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "ansi_term", + "atty", + "chrono", + "lazy_static", + "libc", + "log", + "once_cell", + "parking_lot 0.12.1", + "regex", + "rustc-hash", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-rpc-server 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-tracing-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-rpc 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "thiserror", + "tracing", + "tracing-log", + "tracing-subscriber", +] + [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "ansi_term", "atty", @@ -9106,16 +10246,16 @@ dependencies = [ "parking_lot 0.12.1", "regex", "rustc-hash", - "sc-client-api", - "sc-rpc-server", - "sc-tracing-proc-macro", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-rpc-server 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-tracing-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate)", "serde", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-rpc", - "sp-runtime", - "sp-tracing", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-rpc 6.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate)", "thiserror", "tracing", "tracing-log", @@ -9125,7 +10265,18 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "sc-tracing-proc-macro" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9136,7 +10287,33 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "async-trait", + "futures", + "futures-timer", + "linked-hash-map", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "thiserror", +] + +[[package]] +name = "sc-transaction-pool" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "async-trait", "futures", @@ -9144,40 +10321,53 @@ dependencies = [ "linked-hash-map", "log", "parity-scale-codec", - "parity-util-mem", "parking_lot 0.12.1", - "sc-client-api", - "sc-transaction-pool-api", - "sc-utils", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "thiserror", +] + +[[package]] +name = "sc-transaction-pool-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "async-trait", + "futures", + "log", "serde", - "sp-api", - "sp-blockchain", - "sp-core", - "sp-runtime", - "sp-tracing", - "sp-transaction-pool", - "substrate-prometheus-endpoint", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", ] [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "async-trait", "futures", "log", "serde", - "sp-blockchain", - "sp-runtime", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", "thiserror", ] [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "futures", "futures-timer", @@ -9188,13 +10378,26 @@ dependencies = [ ] [[package]] -name = "scale-info" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "333af15b02563b8182cd863f925bd31ef8fa86a0e095d30c091956057d436153" +name = "sc-utils" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "futures", + "futures-timer", + "lazy_static", + "log", + "parking_lot 0.12.1", + "prometheus", +] + +[[package]] +name = "scale-info" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "001cf62ece89779fd16105b5f515ad0e5cedcd5440d3dd806bb067978e7c3608" dependencies = [ "bitvec", - "cfg-if 1.0.0", + "cfg-if", "derive_more", "parity-scale-codec", "scale-info-derive", @@ -9203,9 +10406,9 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53f56acbd0743d29ffa08f911ab5397def774ad01bab3786804cf6ee057fb5e1" +checksum = "303959cf613a6f6efd19ed4b4ad5bf79966a13352716299ad532cfb115f4205c" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9249,9 +10452,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "scratch" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" +checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" [[package]] name = "sct" @@ -9265,10 +10468,11 @@ dependencies = [ [[package]] name = "sec1" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08da66b8b0965a5555b6bd6639e68ccba85e1e2506f5fbb089e93f8a04e1a2d1" +checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" dependencies = [ + "base16ct", "der", "generic-array 0.14.6", "pkcs8", @@ -9278,9 +10482,9 @@ dependencies = [ [[package]] name = "secp256k1" -version = "0.24.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7649a0b3ffb32636e60c7ce0d70511eda9c52c658cd0634e194d5a19943aeff" +checksum = "d9512ffd81e3a3503ed401f79c33168b9148c75038956039166cd750eaa037c3" dependencies = [ "secp256k1-sys", ] @@ -9337,9 +10541,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.14" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" +checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" dependencies = [ "serde", ] @@ -9352,18 +10556,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.145" +version = "1.0.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b" +checksum = "97fed41fc1a24994d044e6db6935e69511a1153b52c15eb42493b26fa87feba0" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.145" +version = "1.0.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c" +checksum = "255abe9a125a985c05190d687b320c12f9b1f0b99445e608c21ba0782c719ad8" dependencies = [ "proc-macro2", "quote", @@ -9372,9 +10576,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.86" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41feea4228a6f1cd09ec7a3593a682276702cd67b5273544757dae23c096f074" +checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883" dependencies = [ "itoa", "ryu", @@ -9397,7 +10601,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" dependencies = [ "block-buffer 0.9.0", - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "digest 0.9.0", "opaque-debug 0.3.0", @@ -9409,9 +10613,9 @@ version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", - "digest 0.10.5", + "digest 0.10.6", ] [[package]] @@ -9433,7 +10637,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ "block-buffer 0.9.0", - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "digest 0.9.0", "opaque-debug 0.3.0", @@ -9445,18 +10649,18 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", - "digest 0.10.5", + "digest 0.10.6", ] [[package]] name = "sha3" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2904bea16a1ae962b483322a1c7b81d976029203aea1f461e51cd7705db7ba9" +checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" dependencies = [ - "digest 0.10.5", + "digest 0.10.6", "keccak", ] @@ -9496,11 +10700,11 @@ dependencies = [ [[package]] name = "signature" -version = "1.4.0" +version = "1.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02658e48d89f2bec991f9a78e69cfa4c316f8d6a6c4ec12fae1aeb263d486788" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" dependencies = [ - "digest 0.9.0", + "digest 0.10.6", "rand_core 0.6.4", ] @@ -9533,14 +10737,14 @@ checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" [[package]] name = "slot-range-helper" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "enumn", "parity-scale-codec", "paste", - "sp-runtime", - "sp-std", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] @@ -9560,9 +10764,9 @@ checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "snap" -version = "1.0.5" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45456094d1983e2ee2a18fdfebce3189fa451699d0502cb8e3b49dba5ba41451" +checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831" [[package]] name = "snow" @@ -9573,7 +10777,7 @@ dependencies = [ "aes-gcm", "blake2", "chacha20poly1305", - "curve25519-dalek 4.0.0-pre.1", + "curve25519-dalek 4.0.0-pre.5", "rand_core 0.6.4", "ring", "rustc_version", @@ -9601,6 +10805,7 @@ dependencies = [ "bytes", "flate2", "futures", + "http", "httparse", "log", "rand 0.8.5", @@ -9610,25 +10815,43 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "hash-db", "log", "parity-scale-codec", - "sp-api-proc-macro", - "sp-core", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-trie", - "sp-version", + "sp-api-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "thiserror", +] + +[[package]] +name = "sp-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", + "sp-api-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", "thiserror", ] [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "blake2", "proc-macro-crate", @@ -9637,182 +10860,328 @@ dependencies = [ "syn", ] +[[package]] +name = "sp-api-proc-macro" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "blake2", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "sp-application-crypto" +version = "7.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + [[package]] name = "sp-application-crypto" +version = "7.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", +] + +[[package]] +name = "sp-arithmetic" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ + "integer-sqrt", + "num-traits", "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-std", + "sp-debug-derive 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "static_assertions", ] [[package]] name = "sp-arithmetic" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "integer-sqrt", "num-traits", "parity-scale-codec", "scale-info", "serde", - "sp-debug-derive", - "sp-std", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", "static_assertions", ] [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api", - "sp-application-crypto", - "sp-runtime", - "sp-std", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "sp-authorship" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "async-trait", + "parity-scale-codec", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "async-trait", "parity-scale-codec", - "sp-inherents", - "sp-runtime", - "sp-std", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", +] + +[[package]] +name = "sp-beefy" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-mmr-primitives", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "parity-scale-codec", - "sp-api", - "sp-inherents", - "sp-runtime", - "sp-std", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "sp-block-builder" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "parity-scale-codec", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "futures", "log", - "lru 0.7.8", + "lru", "parity-scale-codec", "parking_lot 0.12.1", - "sp-api", - "sp-consensus", - "sp-database", - "sp-runtime", - "sp-state-machine", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "thiserror", +] + +[[package]] +name = "sp-blockchain" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "futures", + "log", + "lru", + "parity-scale-codec", + "parking_lot 0.12.1", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", "thiserror", ] [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "async-trait", "futures", "futures-timer", "log", "parity-scale-codec", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-version", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", ] +[[package]] +name = "sp-consensus" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "async-trait", + "futures", + "log", + "parity-scale-codec", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", + "thiserror", +] + +[[package]] +name = "sp-consensus-aura" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "async-trait", + "parity-scale-codec", + "scale-info", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-api", - "sp-application-crypto", - "sp-consensus", - "sp-consensus-slots", - "sp-inherents", - "sp-runtime", - "sp-std", - "sp-timestamp", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate)", ] [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "async-trait", "merlin", "parity-scale-codec", "scale-info", "serde", - "sp-api", - "sp-application-crypto", - "sp-consensus", - "sp-consensus-slots", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-consensus-vrf", - "sp-core", - "sp-inherents", - "sp-keystore", - "sp-runtime", - "sp-std", - "sp-timestamp", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic", - "sp-runtime", - "sp-std", - "sp-timestamp", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "sp-consensus-slots" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate)", ] [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "parity-scale-codec", "scale-info", "schnorrkel", - "sp-core", - "sp-runtime", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "sp-core" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +version = "7.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "array-bytes", + "array-bytes 4.2.0", "base58", "bitflags", "blake2", @@ -9829,7 +11198,6 @@ dependencies = [ "merlin", "num-traits", "parity-scale-codec", - "parity-util-mem", "parking_lot 0.12.1", "primitive-types", "rand 0.7.3", @@ -9839,49 +11207,125 @@ dependencies = [ "secp256k1", "secrecy", "serde", - "sp-core-hashing", - "sp-debug-derive", - "sp-externalities", - "sp-runtime-interface", - "sp-std", - "sp-storage", + "sp-core-hashing 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-debug-derive 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "ss58-registry", "substrate-bip39", "thiserror", - "tiny-bip39", + "tiny-bip39 0.8.2", "wasmi", "zeroize", ] +[[package]] +name = "sp-core" +version = "7.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "array-bytes 4.2.0", + "base58", + "bitflags", + "blake2", + "dyn-clonable", + "ed25519-zebra", + "futures", + "hash-db", + "hash256-std-hasher", + "impl-serde", + "lazy_static", + "libsecp256k1", + "log", + "merlin", + "parity-scale-codec", + "parking_lot 0.12.1", + "primitive-types", + "rand 0.8.5", + "regex", + "scale-info", + "schnorrkel", + "secp256k1", + "secrecy", + "serde", + "sp-core-hashing 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-debug-derive 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate)", + "ss58-registry", + "substrate-bip39", + "thiserror", + "tiny-bip39 1.0.0", + "zeroize", +] + [[package]] name = "sp-core-hashing" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "blake2", "byteorder", - "digest 0.10.5", + "digest 0.10.6", "sha2 0.10.6", "sha3", - "sp-std", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "twox-hash", +] + +[[package]] +name = "sp-core-hashing" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "blake2", + "byteorder", + "digest 0.10.6", + "sha2 0.10.6", + "sha3", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", "twox-hash", ] [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "proc-macro2", "quote", - "sp-core-hashing", + "sp-core-hashing 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "syn", +] + +[[package]] +name = "sp-core-hashing-proc-macro" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "proc-macro2", + "quote", + "sp-core-hashing 5.0.0 (git+https://github.com/paritytech/substrate)", "syn", ] [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "kvdb", + "parking_lot 0.12.1", +] + +[[package]] +name = "sp-database" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -9889,8 +11333,18 @@ dependencies = [ [[package]] name = "sp-debug-derive" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "sp-debug-derive" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "proc-macro2", "quote", @@ -9899,53 +11353,97 @@ dependencies = [ [[package]] name = "sp-externalities" -version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +version = "0.13.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "environmental", + "parity-scale-codec", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "sp-externalities" +version = "0.13.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "environmental", "parity-scale-codec", - "sp-std", - "sp-storage", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "finality-grandpa", "log", "parity-scale-codec", "scale-info", "serde", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-keystore", - "sp-runtime", - "sp-std", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "sp-finality-grandpa" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "finality-grandpa", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", - "sp-core", - "sp-runtime", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "thiserror", +] + +[[package]] +name = "sp-inherents" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "async-trait", + "impl-trait-for-tuples", + "parity-scale-codec", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", "thiserror", ] [[package]] name = "sp-io" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +version = "7.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "bytes", + "ed25519-dalek", "futures", "hash-db", "libsecp256k1", @@ -9953,34 +11451,70 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", "secp256k1", - "sp-core", - "sp-externalities", - "sp-keystore", - "sp-runtime-interface", - "sp-state-machine", - "sp-std", - "sp-tracing", - "sp-trie", - "sp-wasm-interface", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "tracing", + "tracing-core", +] + +[[package]] +name = "sp-io" +version = "7.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "bytes", + "ed25519", + "ed25519-dalek", + "futures", + "libsecp256k1", + "log", + "parity-scale-codec", + "secp256k1", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate)", "tracing", "tracing-core", ] [[package]] name = "sp-keyring" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +version = "7.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "lazy_static", - "sp-core", - "sp-runtime", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "strum", +] + +[[package]] +name = "sp-keyring" +version = "7.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "lazy_static", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", "strum", ] [[package]] name = "sp-keystore" -version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +version = "0.13.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "async-trait", "futures", @@ -9989,15 +11523,41 @@ dependencies = [ "parking_lot 0.12.1", "schnorrkel", "serde", - "sp-core", - "sp-externalities", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "thiserror", +] + +[[package]] +name = "sp-keystore" +version = "0.13.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "async-trait", + "futures", + "merlin", + "parity-scale-codec", + "parking_lot 0.12.1", + "schnorrkel", + "serde", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate)", "thiserror", ] [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "thiserror", + "zstd", +] + +[[package]] +name = "sp-maybe-compressed-blob" +version = "4.1.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "thiserror", "zstd", @@ -10006,47 +11566,69 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ + "ckb-merkle-mountain-range", "log", "parity-scale-codec", "scale-info", "serde", - "sp-api", - "sp-core", - "sp-debug-derive", - "sp-runtime", - "sp-std", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-debug-derive 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "thiserror", ] [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic", - "sp-core", - "sp-runtime", - "sp-std", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "sp-api", - "sp-core", - "sp-runtime", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "sp-offchain" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "sp-panic-handler" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "backtrace", + "lazy_static", + "regex", +] + +[[package]] +name = "sp-panic-handler" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "backtrace", "lazy_static", @@ -10056,58 +11638,107 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "rustc-hash", "serde", - "sp-core", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] -name = "sp-runtime" +name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "rustc-hash", + "serde", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", +] + +[[package]] +name = "sp-runtime" +version = "7.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "either", "hash256-std-hasher", "impl-trait-for-tuples", "log", "parity-scale-codec", - "parity-util-mem", "paste", "rand 0.7.3", "scale-info", "serde", - "sp-application-crypto", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-std", - "sp-weights", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "sp-runtime" +version = "7.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "either", + "hash256-std-hasher", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "paste", + "rand 0.8.5", + "scale-info", + "serde", + "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "sp-runtime-interface" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +version = "7.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", "primitive-types", - "sp-externalities", - "sp-runtime-interface-proc-macro", - "sp-std", - "sp-storage", - "sp-tracing", - "sp-wasm-interface", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime-interface-proc-macro 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "static_assertions", +] + +[[package]] +name = "sp-runtime-interface" +version = "7.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "bytes", + "impl-trait-for-tuples", + "parity-scale-codec", + "primitive-types", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime-interface-proc-macro 6.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate)", + "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate)", "static_assertions", ] [[package]] name = "sp-runtime-interface-proc-macro" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "Inflector", "proc-macro-crate", @@ -10117,48 +11748,73 @@ dependencies = [ ] [[package]] -name = "sp-sandbox" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +name = "sp-runtime-interface-proc-macro" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "Inflector", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "sp-session" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "log", "parity-scale-codec", - "sp-core", - "sp-io", - "sp-std", - "sp-wasm-interface", - "wasmi", + "scale-info", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api", - "sp-core", - "sp-runtime", - "sp-staking", - "sp-std", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "parity-scale-codec", "scale-info", - "sp-runtime", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "sp-staking" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "sp-state-machine" -version = "0.12.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +version = "0.13.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "hash-db", "log", @@ -10167,117 +11823,217 @@ dependencies = [ "parking_lot 0.12.1", "rand 0.7.3", "smallvec", - "sp-core", - "sp-externalities", - "sp-panic-handler", - "sp-std", - "sp-trie", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-panic-handler 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "thiserror", "tracing", "trie-root", ] +[[package]] +name = "sp-state-machine" +version = "0.13.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "rand 0.8.5", + "smallvec", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-panic-handler 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate)", + "thiserror", + "tracing", +] + [[package]] name = "sp-std" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" + +[[package]] +name = "sp-std" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" [[package]] name = "sp-storage" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +version = "7.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive", - "sp-std", + "sp-debug-derive 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] -name = "sp-tasks" +name = "sp-storage" +version = "7.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "ref-cast", + "serde", + "sp-debug-derive 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", +] + +[[package]] +name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ + "async-trait", + "futures-timer", "log", - "sp-core", - "sp-externalities", - "sp-io", - "sp-runtime-interface", - "sp-std", + "parity-scale-codec", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "thiserror", ] [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "async-trait", "futures-timer", "log", "parity-scale-codec", - "sp-api", - "sp-inherents", - "sp-runtime", - "sp-std", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", "thiserror", ] [[package]] name = "sp-tracing" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "parity-scale-codec", - "sp-std", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "tracing", "tracing-core", "tracing-subscriber", ] +[[package]] +name = "sp-tracing" +version = "6.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "parity-scale-codec", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "tracing", + "tracing-core", + "tracing-subscriber", +] + +[[package]] +name = "sp-transaction-pool" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", +] + +[[package]] +name = "sp-transaction-storage-proof" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "sp-api", - "sp-runtime", + "async-trait", + "log", + "parity-scale-codec", + "scale-info", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "async-trait", + "log", + "parity-scale-codec", + "scale-info", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate)", +] + +[[package]] +name = "sp-trie" +version = "7.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "async-trait", - "log", + "ahash", + "hash-db", + "hashbrown", + "lazy_static", + "lru", + "memory-db", + "nohash-hasher", "parity-scale-codec", + "parking_lot 0.12.1", "scale-info", - "sp-core", - "sp-inherents", - "sp-runtime", - "sp-std", - "sp-trie", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "thiserror", + "tracing", + "trie-db", + "trie-root", ] [[package]] name = "sp-trie" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +version = "7.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "ahash", "hash-db", "hashbrown", "lazy_static", - "lru 0.7.8", + "lru", "memory-db", "nohash-hasher", "parity-scale-codec", "parking_lot 0.12.1", "scale-info", - "sp-core", - "sp-std", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", "thiserror", "tracing", "trie-db", @@ -10287,24 +12043,52 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "parity-wasm", + "scale-info", + "serde", + "sp-core-hashing-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-version-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "thiserror", +] + +[[package]] +name = "sp-version" +version = "5.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "impl-serde", "parity-scale-codec", - "parity-wasm 0.45.0", + "parity-wasm", "scale-info", "serde", - "sp-core-hashing-proc-macro", - "sp-runtime", - "sp-std", - "sp-version-proc-macro", + "sp-core-hashing-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-version-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate)", "thiserror", ] [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "parity-scale-codec", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "sp-version-proc-macro" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -10314,13 +12098,26 @@ dependencies = [ [[package]] name = "sp-wasm-interface" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +version = "7.0.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "wasmi", + "wasmtime", +] + +[[package]] +name = "sp-wasm-interface" +version = "7.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-std", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", "wasmi", "wasmtime", ] @@ -10328,17 +12125,32 @@ dependencies = [ [[package]] name = "sp-weights" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "serde", "smallvec", - "sp-arithmetic", - "sp-core", - "sp-debug-derive", - "sp-std", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-debug-derive 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "sp-weights" +version = "4.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "smallvec", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-debug-derive 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] @@ -10349,9 +12161,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "spki" -version = "0.5.4" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" +checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" dependencies = [ "base64ct", "der", @@ -10359,9 +12171,9 @@ dependencies = [ [[package]] name = "ss58-registry" -version = "1.33.0" +version = "1.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab7554f8a8b6f8d71cd5a8e6536ef116e2ce0504cf97ebf16311d58065dc8a6" +checksum = "23d92659e7d18d82b803824a9ba5a6022cff101c3491d027c1c1d8d30e749284" dependencies = [ "Inflector", "num-format", @@ -10406,7 +12218,7 @@ dependencies = [ "cfg_aliases", "libc", "parking_lot 0.11.2", - "parking_lot_core 0.8.5", + "parking_lot_core 0.8.6", "static_init_macro 1.0.2", "winapi", ] @@ -10494,36 +12306,63 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "platforms 2.0.0", +] + +[[package]] +name = "substrate-build-script-utils" +version = "3.0.0" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ - "platforms", + "platforms 2.0.0", ] [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ - "frame-system-rpc-runtime-api", + "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "futures", "jsonrpsee", "log", "parity-scale-codec", - "sc-client-api", - "sc-rpc-api", - "sc-transaction-pool-api", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "serde_json", - "sp-api", - "sp-block-builder", - "sp-blockchain", - "sp-core", - "sp-runtime", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + +[[package]] +name = "substrate-frame-rpc-system" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "futures", + "jsonrpsee", + "log", + "parity-scale-codec", + "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "futures-util", "hyper", @@ -10533,55 +12372,97 @@ dependencies = [ "tokio", ] +[[package]] +name = "substrate-prometheus-endpoint" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +dependencies = [ + "hyper", + "log", + "prometheus", + "thiserror", + "tokio", +] + +[[package]] +name = "substrate-rpc-client" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "async-trait", + "jsonrpsee", + "log", + "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "serde", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", +] + [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "async-trait", "jsonrpsee", "log", - "sc-rpc-api", + "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate)", "serde", - "sp-runtime", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", ] [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "sc-client-api", - "sc-rpc-api", + "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "scale-info", "serde", - "sp-core", - "sp-io", - "sp-runtime", - "sp-state-machine", - "sp-std", - "sp-trie", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "trie-db", ] [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "ansi_term", + "build-helper", + "cargo_metadata", + "filetime", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "strum", + "tempfile", + "toml", + "walkdir", + "wasm-opt", +] + +[[package]] +name = "substrate-wasm-builder" +version = "5.0.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "ansi_term", "build-helper", "cargo_metadata", "filetime", - "sp-maybe-compressed-blob", + "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate)", "strum", "tempfile", "toml", "walkdir", - "wasm-gc-api", + "wasm-opt", ] [[package]] @@ -10592,9 +12473,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.102" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fcd952facd492f9be3ef0d0b7032a6e442ee9b361d4acc2b1d0c4aaa5f613a1" +checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" dependencies = [ "proc-macro2", "quote", @@ -10642,9 +12523,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c02424087780c9b71cc96799eaeddff35af2bc513278cda5c99fc1f5d026d3c1" +checksum = "9410d0f6853b1d94f0e519fb95df60f29d2c1eff2d921ffdf01a4c8a3b54f12d" [[package]] name = "tempfile" @@ -10652,7 +12533,7 @@ version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "fastrand", "libc", "redox_syscall", @@ -10677,18 +12558,18 @@ checksum = "95059e91184749cb66be6dc994f67f182b6d897cb3df74a5bf66b5e709295fd8" [[package]] name = "thiserror" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" dependencies = [ "proc-macro2", "quote", @@ -10732,6 +12613,17 @@ dependencies = [ "threadpool", ] +[[package]] +name = "tikv-jemalloc-ctl" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e37706572f4b151dff7a0146e040804e9c26fe3a3118591112f05cf12a4216c1" +dependencies = [ + "libc", + "paste", + "tikv-jemalloc-sys", +] + [[package]] name = "tikv-jemalloc-sys" version = "0.5.2+5.3.0-patched" @@ -10745,9 +12637,9 @@ dependencies = [ [[package]] name = "time" -version = "0.1.44" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" dependencies = [ "libc", "wasi 0.10.0+wasi-snapshot-preview1", @@ -10773,6 +12665,25 @@ dependencies = [ "zeroize", ] +[[package]] +name = "tiny-bip39" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861" +dependencies = [ + "anyhow", + "hmac 0.12.1", + "once_cell", + "pbkdf2 0.11.0", + "rand 0.8.5", + "rustc-hash", + "sha2 0.10.6", + "thiserror", + "unicode-normalization", + "wasm-bindgen", + "zeroize", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -10790,9 +12701,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.21.2" +version = "1.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e03c497dc955702ba729190dc4aac6f2a0ce97f913e5b1b5912fc5039d9099" +checksum = "eab6d665857cc6ca78d6e80303a02cea7a7851e85dfbd77cbdc09bd129f1ef46" dependencies = [ "autocfg", "bytes", @@ -10805,14 +12716,14 @@ dependencies = [ "signal-hook-registry", "socket2", "tokio-macros", - "winapi", + "windows-sys 0.42.0", ] [[package]] name = "tokio-macros" -version = "1.8.0" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" +checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" dependencies = [ "proc-macro2", "quote", @@ -10839,6 +12750,7 @@ dependencies = [ "futures-core", "pin-project-lite 0.2.9", "tokio", + "tokio-util", ] [[package]] @@ -10858,13 +12770,48 @@ dependencies = [ [[package]] name = "toml" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +checksum = "1333c76748e868a4d9d1017b5ab53171dfd095f70c712fdb4653a406547f598f" dependencies = [ "serde", ] +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" +dependencies = [ + "bitflags", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "pin-project-lite 0.2.9", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + [[package]] name = "tower-service" version = "0.3.2" @@ -10877,7 +12824,8 @@ version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", + "log", "pin-project-lite 0.2.9", "tracing-attributes", "tracing-core", @@ -10916,8 +12864,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -10927,8 +12875,8 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "expander 0.0.6", "proc-macro-crate", @@ -11010,7 +12958,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26" dependencies = [ "async-trait", - "cfg-if 1.0.0", + "cfg-if", "data-encoding", "enum-as-inner", "futures-channel", @@ -11023,6 +12971,7 @@ dependencies = [ "smallvec", "thiserror", "tinyvec", + "tokio", "tracing", "url", ] @@ -11033,7 +12982,7 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "futures-util", "ipconfig", "lazy_static", @@ -11042,6 +12991,7 @@ dependencies = [ "resolv-conf", "smallvec", "thiserror", + "tokio", "tracing", "trust-dns-proto", ] @@ -11055,35 +13005,68 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.32#5ea6d95309aaccfa399c5f72e5a14a4b7c6c4ca1" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +dependencies = [ + "clap", + "frame-remote-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "hex", + "log", + "parity-scale-codec", + "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-debug-derive 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-rpc 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-rpc-client 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "zstd", +] + +[[package]] +name = "try-runtime-cli" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" dependencies = [ "clap", - "frame-try-runtime", - "log", - "parity-scale-codec", - "remote-externalities", - "sc-chain-spec", - "sc-cli", - "sc-executor", - "sc-service", - "serde", - "sp-core", - "sp-externalities", - "sp-io", - "sp-keystore", - "sp-runtime", - "sp-state-machine", - "sp-version", - "sp-weights", - "substrate-rpc-client", + "frame-remote-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "frame-try-runtime 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "hex", + "log", + "parity-scale-codec", + "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "serde", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-debug-derive 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-rpc 6.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate)", + "substrate-rpc-client 0.10.0-dev (git+https://github.com/paritytech/substrate)", "zstd", ] [[package]] name = "tt-call" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e66dcbec4290c69dd03c57e76c2469ea5c7ce109c6dd4351c13055cf71ea055" +checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df" [[package]] name = "twox-hash" @@ -11091,17 +13074,17 @@ version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ - "cfg-if 1.0.0", - "digest 0.10.5", + "cfg-if", + "digest 0.10.6", "rand 0.8.5", "static_assertions", ] [[package]] name = "typenum" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" [[package]] name = "ucd-trie" @@ -11111,9 +13094,9 @@ checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" [[package]] name = "uint" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a45526d29728d135c2900b0d30573fe3ee79fceb12ef534c7bb30e810a91b601" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" dependencies = [ "byteorder", "crunchy", @@ -11121,15 +13104,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "unicase" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" -dependencies = [ - "version_check", -] - [[package]] name = "unicode-bidi" version = "0.3.8" @@ -11138,9 +13112,9 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-ident" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" +checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" [[package]] name = "unicode-normalization" @@ -11287,7 +13261,7 @@ version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "wasm-bindgen-macro", ] @@ -11312,7 +13286,7 @@ version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "js-sys", "wasm-bindgen", "web-sys", @@ -11348,23 +13322,53 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" [[package]] -name = "wasm-gc-api" -version = "0.1.11" +name = "wasm-instrument" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c32691b6c7e6c14e7f8fd55361a9088b507aa49620fcd06c09b3a1082186b9" +checksum = "aa1dafb3e60065305741e83db35c6c2584bb3725b692b5b66148a38d72ace6cd" dependencies = [ - "log", - "parity-wasm 0.32.0", - "rustc-demangle", + "parity-wasm", ] [[package]] -name = "wasm-instrument" -version = "0.3.0" +name = "wasm-opt" +version = "0.110.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa1dafb3e60065305741e83db35c6c2584bb3725b692b5b66148a38d72ace6cd" +checksum = "b68e8037b4daf711393f4be2056246d12d975651b14d581520ad5d1f19219cec" +dependencies = [ + "anyhow", + "libc", + "strum", + "strum_macros", + "tempfile", + "thiserror", + "wasm-opt-cxx-sys", + "wasm-opt-sys", +] + +[[package]] +name = "wasm-opt-cxx-sys" +version = "0.110.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91adbad477e97bba3fbd21dd7bfb594e7ad5ceb9169ab1c93ab9cb0ada636b6f" +dependencies = [ + "anyhow", + "cxx", + "cxx-build", + "wasm-opt-sys", +] + +[[package]] +name = "wasm-opt-sys" +version = "0.110.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec4fa5a322a4e6ac22fd141f498d56afbdbf9df5debeac32380d2dcaa3e06941" dependencies = [ - "parity-wasm 0.45.0", + "anyhow", + "cc", + "cxx", + "cxx-build", + "regex", ] [[package]] @@ -11388,7 +13392,7 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06c326c93fbf86419608361a2c925a31754cf109da1b8b55737070b4d6669422" dependencies = [ - "parity-wasm 0.45.0", + "parity-wasm", "wasmi-validation", "wasmi_core", ] @@ -11399,7 +13403,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ff416ad1ff0c42e5a926ed5d5fab74c0f098749aa0ad8b2a34b982ce0e867b" dependencies = [ - "parity-wasm 0.45.0", + "parity-wasm", ] [[package]] @@ -11409,9 +13413,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57d20cb3c59b788653d99541c646c561c9dd26506f25c0cebfe810659c54c6d7" dependencies = [ "downcast-rs", - "libm", + "libm 0.2.6", "memory_units", - "num-rational 0.4.1", + "num-rational", "num-traits", ] @@ -11426,17 +13430,17 @@ dependencies = [ [[package]] name = "wasmtime" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f511c4917c83d04da68333921107db75747c4e11a2f654a8e909cc5e0520dc" +checksum = "4ad5af6ba38311282f2a21670d96e78266e8c8e2f38cbcd52c254df6ccbc7731" dependencies = [ "anyhow", "bincode", - "cfg-if 1.0.0", + "cfg-if", "indexmap", "libc", "log", - "object", + "object 0.29.0", "once_cell", "paste", "psm", @@ -11454,18 +13458,18 @@ dependencies = [ [[package]] name = "wasmtime-asm-macros" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39bf3debfe744bf19dd3732990ce6f8c0ced7439e2370ba4e1d8f5a3660a3178" +checksum = "45de63ddfc8b9223d1adc8f7b2ee5f35d1f6d112833934ad7ea66e4f4339e597" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] name = "wasmtime-cache" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ece42fa4676a263f7558cdaaf5a71c2592bebcbac22a0580e33cf3406c103da2" +checksum = "bcd849399d17d2270141cfe47fa0d91ee52d5f8ea9b98cf7ddde0d53e5f79882" dependencies = [ "anyhow", "base64", @@ -11473,7 +13477,7 @@ dependencies = [ "directories-next", "file-per-thread-logger", "log", - "rustix", + "rustix 0.35.13", "serde", "sha2 0.9.9", "toml", @@ -11483,9 +13487,9 @@ dependencies = [ [[package]] name = "wasmtime-cranelift" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "058217e28644b012bdcdf0e445f58d496d78c2e0b6a6dd93558e701591dad705" +checksum = "4bd91339b742ff20bfed4532a27b73c86b5bcbfedd6bea2dcdf2d64471e1b5c6" dependencies = [ "anyhow", "cranelift-codegen", @@ -11493,9 +13497,9 @@ dependencies = [ "cranelift-frontend", "cranelift-native", "cranelift-wasm", - "gimli", + "gimli 0.26.2", "log", - "object", + "object 0.29.0", "target-lexicon", "thiserror", "wasmparser", @@ -11504,16 +13508,16 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7af06848df28b7661471d9a80d30a973e0f401f2e3ed5396ad7e225ed217047" +checksum = "ebb881c61f4f627b5d45c54e629724974f8a8890d455bcbe634330cc27309644" dependencies = [ "anyhow", "cranelift-entity", - "gimli", + "gimli 0.26.2", "indexmap", "log", - "object", + "object 0.29.0", "serde", "target-lexicon", "thiserror", @@ -11523,20 +13527,20 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9028fb63a54185b3c192b7500ef8039c7bb8d7f62bfc9e7c258483a33a3d13bb" +checksum = "1985c628011fe26adf5e23a5301bdc79b245e0e338f14bb58b39e4e25e4d8681" dependencies = [ - "addr2line", + "addr2line 0.17.0", "anyhow", "bincode", - "cfg-if 1.0.0", + "cfg-if", "cpp_demangle", - "gimli", + "gimli 0.26.2", "log", - "object", + "object 0.29.0", "rustc-demangle", - "rustix", + "rustix 0.35.13", "serde", "target-lexicon", "thiserror", @@ -11548,33 +13552,33 @@ dependencies = [ [[package]] name = "wasmtime-jit-debug" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25e82d4ef93296785de7efca92f7679dc67fe68a13b625a5ecc8d7503b377a37" +checksum = "f671b588486f5ccec8c5a3dba6b4c07eac2e66ab8c60e6f4e53717c77f709731" dependencies = [ - "object", + "object 0.29.0", "once_cell", - "rustix", + "rustix 0.35.13", ] [[package]] name = "wasmtime-runtime" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f0e9bea7d517d114fe66b930b2124ee086516ee93eeebfd97f75f366c5b0553" +checksum = "ee8f92ad4b61736339c29361da85769ebc200f184361959d1792832e592a1afd" dependencies = [ "anyhow", "cc", - "cfg-if 1.0.0", + "cfg-if", "indexmap", "libc", "log", "mach", "memfd", - "memoffset", + "memoffset 0.6.5", "paste", "rand 0.8.5", - "rustix", + "rustix 0.35.13", "thiserror", "wasmtime-asm-macros", "wasmtime-environ", @@ -11584,9 +13588,9 @@ dependencies = [ [[package]] name = "wasmtime-types" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69b83e93ed41b8fdc936244cfd5e455480cf1eca1fd60c78a0040038b4ce5075" +checksum = "d23d61cb4c46e837b431196dd06abb11731541021916d03476a178b54dc07aeb" dependencies = [ "cranelift-entity", "serde", @@ -11616,9 +13620,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.5" +version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368bfe657969fb01238bb756d351dcade285e0f6fcbd36dcb23359a5169975be" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" dependencies = [ "webpki", ] @@ -11634,26 +13638,25 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ - "beefy-primitives", "bitvec", - "frame-benchmarking", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "frame-election-provider-support", - "frame-executive", - "frame-support", - "frame-system", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", + "frame-executive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-try-runtime 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "hex-literal", "log", "pallet-authority-discovery", - "pallet-authorship", + "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-babe", "pallet-bags-list", - "pallet-balances", + "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-collective", "pallet-democracy", "pallet-election-provider-multi-phase", @@ -11675,15 +13678,15 @@ dependencies = [ "pallet-proxy", "pallet-recovery", "pallet-scheduler", - "pallet-session", + "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-session-benchmarking", "pallet-society", "pallet-staking", "pallet-staking-reward-curve", - "pallet-sudo", - "pallet-timestamp", - "pallet-transaction-payment", - "pallet-transaction-payment-rpc-runtime-api", + "pallet-sudo 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "pallet-treasury", "pallet-utility", "pallet-vesting", @@ -11699,23 +13702,24 @@ dependencies = [ "serde", "serde_derive", "smallvec", - "sp-api", + "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-authority-discovery", - "sp-block-builder", + "sp-beefy", + "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-consensus-babe", - "sp-core", - "sp-inherents", - "sp-io", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "sp-mmr-primitives", "sp-npos-elections", - "sp-offchain", - "sp-runtime", - "sp-session", - "sp-staking", - "sp-std", - "sp-transaction-pool", - "sp-version", - "substrate-wasm-builder", + "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-wasm-builder 5.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "westend-runtime-constants", "xcm", "xcm-builder", @@ -11724,16 +13728,16 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ - "frame-support", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "polkadot-primitives", "polkadot-runtime-common", "smallvec", - "sp-core", - "sp-runtime", - "sp-weights", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", ] [[package]] @@ -11929,18 +13933,18 @@ checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" [[package]] name = "winreg" -version = "0.7.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" dependencies = [ "winapi", ] [[package]] name = "wyz" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b31594f29d27036c383b53b59ed3476874d518f0efb151b27a4c275141390e" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" dependencies = [ "tap", ] @@ -11958,60 +13962,60 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "derivative", "impl-trait-for-tuples", "log", "parity-scale-codec", "scale-info", - "sp-runtime", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "xcm-procedural", ] [[package]] name = "xcm-builder" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ - "frame-support", - "frame-system", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "log", - "pallet-transaction-payment", + "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "polkadot-parachain", "scale-info", - "sp-arithmetic", - "sp-io", - "sp-runtime", - "sp-std", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "xcm", "xcm-executor", ] [[package]] name = "xcm-executor" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ - "frame-benchmarking", - "frame-support", + "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-arithmetic", - "sp-core", - "sp-io", - "sp-runtime", - "sp-std", + "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "xcm", ] [[package]] name = "xcm-procedural" -version = "0.9.32" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.32#c71e872afed296d1825b15ea4b2a74750c1ba647" +version = "0.9.36" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" dependencies = [ "Inflector", "proc-macro2", @@ -12044,9 +14048,9 @@ dependencies = [ [[package]] name = "zeroize_derive" -version = "1.3.2" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17" +checksum = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c" dependencies = [ "proc-macro2", "quote", @@ -12075,9 +14079,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.1+zstd.1.5.2" +version = "2.0.4+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fd07cbbc53846d9145dbffdf6dd09a7a0aa52be46741825f5c97bdd4f73f12b" +checksum = "4fa202f2ef00074143e219d15b62ffc317d17cc33909feac471c044087cad7b0" dependencies = [ "cc", "libc", diff --git a/node/Cargo.toml b/node/Cargo.toml index 6c45b4a2..ea99544e 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -10,75 +10,77 @@ edition = "2021" build = "build.rs" [dependencies] -clap = { version = "4.0.17", features = ["derive"] } +clap = { version = "4.0.29", features = ["derive"] } log = "0.4.17" codec = { package = "parity-scale-codec", version = "3.0.0" } -serde = { version = "1.0.145", features = ["derive"] } -jsonrpsee = { version = "0.15.1", features = ["server"] } +serde = { version = "1.0.151", features = ["derive"] } +jsonrpsee = { version = "0.16.2", features = ["server"] } # Local parachain-template-runtime = { path = "../runtime" } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sc-cli = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.32" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sc-executor = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.32" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sc-network-common = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sc-service = { git = "https://github.com/paritytech/substrate", features = ["wasmtime"] , branch = "polkadot-v0.9.32" } -sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-network-common = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", optional = true , branch = "polkadot-v0.9.36" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.32" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.32" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.32" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.32" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } -cumulus-relay-chain-inprocess-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } -cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } -cumulus-relay-chain-minimal-node = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36" } +cumulus-client-network = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36" } [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } [features] default = [] runtime-benchmarks = [ + "try-runtime-cli/try-runtime", "parachain-template-runtime/runtime-benchmarks", "polkadot-cli/runtime-benchmarks", ] -try-runtime = ["parachain-template-runtime/try-runtime"] +try-runtime = [ + "try-runtime-cli/try-runtime", + "parachain-template-runtime/try-runtime" +] diff --git a/node/src/cli.rs b/node/src/cli.rs index 99bb0a96..1da49b3b 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -36,7 +36,12 @@ pub enum Subcommand { Benchmark(frame_benchmarking_cli::BenchmarkCmd), /// Try some testing command against a specified runtime state. + #[cfg(feature = "try-runtime")] TryRuntime(try_runtime_cli::TryRuntimeCmd), + + /// Errors since the binary was not build with `--features try-runtime`. + #[cfg(not(feature = "try-runtime"))] + TryRuntime, } #[derive(Debug, clap::Parser)] diff --git a/node/src/command.rs b/node/src/command.rs index 837cd15a..581cf97d 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -10,10 +10,7 @@ use sc_cli::{ ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, NetworkParams, Result, RuntimeVersion, SharedParams, SubstrateCli, }; -use sc_service::{ - config::{BasePath, PrometheusConfig}, - TaskManager, -}; +use sc_service::config::{BasePath, PrometheusConfig}; use sp_core::hexdisplay::HexDisplay; use sp_runtime::traits::{AccountIdConversion, Block as BlockT}; @@ -220,7 +217,6 @@ pub fn run() -> Result<()> { let partials = new_partial(&config)?; let db = partials.backend.expose_db(); let storage = partials.backend.expose_storage(); - cmd.run(config, partials.client.clone(), db, storage) }), BenchmarkCmd::Machine(cmd) => @@ -231,23 +227,30 @@ pub fn run() -> Result<()> { _ => Err("Benchmarking sub-command unsupported".into()), } }, + #[cfg(feature = "try-runtime")] Some(Subcommand::TryRuntime(cmd)) => { - if cfg!(feature = "try-runtime") { - let runner = cli.create_runner(cmd)?; - - // grab the task manager. - let registry = &runner.config().prometheus_config.as_ref().map(|cfg| &cfg.registry); - let task_manager = - TaskManager::new(runner.config().tokio_handle.clone(), *registry) - .map_err(|e| format!("Error: {:?}", e))?; - - runner.async_run(|config| { - Ok((cmd.run::(config), task_manager)) - }) - } else { - Err("Try-runtime must be enabled by `--features try-runtime`.".into()) - } + let runner = cli.create_runner(cmd)?; + + use sc_executor::{sp_wasm_interface::ExtendedHostFunctions, NativeExecutionDispatch}; + type HostFunctionsOf = ExtendedHostFunctions< + sp_io::SubstrateHostFunctions, + ::ExtendHostFunctions, + >; + + // grab the task manager. + let registry = &runner.config().prometheus_config.as_ref().map(|cfg| &cfg.registry); + let task_manager = + sc_service::TaskManager::new(runner.config().tokio_handle.clone(), *registry) + .map_err(|e| format!("Error: {:?}", e))?; + + runner.async_run(|_| { + Ok((cmd.run::>(), task_manager)) + }) }, + #[cfg(not(feature = "try-runtime"))] + Some(Subcommand::TryRuntime) => Err("Try-runtime was not enabled when building the node. \ + You can enable it with `--features try-runtime`." + .into()), None => { let runner = cli.create_runner(&cli.run.normalize())?; let collator_options = cli.run.collator_options(); @@ -291,7 +294,7 @@ pub fn run() -> Result<()> { info!("Parachain genesis state: {}", genesis_state); info!("Is collating: {}", if config.role.is_authority() { "yes" } else { "no" }); - if collator_options.relay_chain_rpc_url.is_some() && cli.relay_chain_args.len() > 0 { + if !collator_options.relay_chain_rpc_urls.is_empty() && cli.relay_chain_args.len() > 0 { warn!("Detected relay chain node arguments together with --relay-chain-rpc-url. This command starts a minimal Polkadot node that only uses a network-related subset of all relay chain CLI options."); } diff --git a/node/src/service.rs b/node/src/service.rs index 73e99fa1..a8ee57ca 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -9,17 +9,19 @@ use parachain_template_runtime::{opaque::Block, Hash, RuntimeApi}; // Cumulus Imports use cumulus_client_consensus_aura::{AuraConsensus, BuildAuraConsensusParams, SlotProportion}; -use cumulus_client_consensus_common::ParachainConsensus; +use cumulus_client_consensus_common::{ + ParachainBlockImport as TParachainBlockImport, ParachainConsensus, +}; use cumulus_client_network::BlockAnnounceValidator; use cumulus_client_service::{ - prepare_node_config, start_collator, start_full_node, StartCollatorParams, StartFullNodeParams, + build_relay_chain_interface, prepare_node_config, start_collator, start_full_node, + StartCollatorParams, StartFullNodeParams, }; use cumulus_primitives_core::ParaId; -use cumulus_relay_chain_inprocess_interface::build_inprocess_relay_chain; -use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface, RelayChainResult}; -use cumulus_relay_chain_minimal_node::build_minimal_relay_chain_node; +use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface}; // Substrate Imports +use sc_consensus::ImportQueue; use sc_executor::NativeElseWasmExecutor; use sc_network::NetworkService; use sc_network_common::service::NetworkBlock; @@ -28,8 +30,6 @@ use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerH use sp_keystore::SyncCryptoStorePtr; use substrate_prometheus_endpoint::Registry; -use polkadot_service::CollatorPair; - /// Native executor type. pub struct ParachainNativeExecutor; @@ -51,6 +51,8 @@ type ParachainClient = TFullClient; type ParachainBackend = TFullBackend; +type ParachainBlockImport = TParachainBlockImport, ParachainBackend>; + /// Starts a `ServiceBuilder` for a full service. /// /// Use this macro if you don't actually need the full service, but just the builder in order to @@ -64,7 +66,7 @@ pub fn new_partial( (), sc_consensus::DefaultImportQueue, sc_transaction_pool::FullPool, - (Option, Option), + (ParachainBlockImport, Option, Option), >, sc_service::Error, > { @@ -109,8 +111,11 @@ pub fn new_partial( client.clone(), ); + let block_import = ParachainBlockImport::new(client.clone(), backend.clone()); + let import_queue = build_import_queue( client.clone(), + block_import.clone(), config, telemetry.as_ref().map(|telemetry| telemetry.handle()), &task_manager, @@ -124,31 +129,10 @@ pub fn new_partial( task_manager, transaction_pool, select_chain: (), - other: (telemetry, telemetry_worker_handle), + other: (block_import, telemetry, telemetry_worker_handle), }) } -async fn build_relay_chain_interface( - polkadot_config: Configuration, - parachain_config: &Configuration, - telemetry_worker_handle: Option, - task_manager: &mut TaskManager, - collator_options: CollatorOptions, - hwbench: Option, -) -> RelayChainResult<(Arc<(dyn RelayChainInterface + 'static)>, Option)> { - match collator_options.relay_chain_rpc_url { - Some(relay_chain_url) => - build_minimal_relay_chain_node(polkadot_config, task_manager, relay_chain_url).await, - None => build_inprocess_relay_chain( - polkadot_config, - parachain_config, - telemetry_worker_handle, - task_manager, - hwbench, - ), - } -} - /// Start a node with the given parachain `Configuration` and relay chain `Configuration`. /// /// This is the actual implementation that is abstract over the executor and the runtime api. @@ -157,13 +141,13 @@ async fn start_node_impl( parachain_config: Configuration, polkadot_config: Configuration, collator_options: CollatorOptions, - id: ParaId, + para_id: ParaId, hwbench: Option, ) -> sc_service::error::Result<(TaskManager, Arc)> { let parachain_config = prepare_node_config(parachain_config); let params = new_partial(¶chain_config)?; - let (mut telemetry, telemetry_worker_handle) = params.other; + let (block_import, mut telemetry, telemetry_worker_handle) = params.other; let client = params.client.clone(); let backend = params.backend.clone(); @@ -183,26 +167,37 @@ async fn start_node_impl( s => s.to_string().into(), })?; - let block_announce_validator = BlockAnnounceValidator::new(relay_chain_interface.clone(), id); + let block_announce_validator = + BlockAnnounceValidator::new(relay_chain_interface.clone(), para_id); let force_authoring = parachain_config.force_authoring; let validator = parachain_config.role.is_authority(); let prometheus_registry = parachain_config.prometheus_registry().cloned(); let transaction_pool = params.transaction_pool.clone(); - let import_queue = cumulus_client_service::SharedImportQueue::new(params.import_queue); + let import_queue_service = params.import_queue.service(); + let (network, system_rpc_tx, tx_handler_controller, start_network) = sc_service::build_network(sc_service::BuildNetworkParams { config: ¶chain_config, client: client.clone(), transaction_pool: transaction_pool.clone(), spawn_handle: task_manager.spawn_handle(), - import_queue: import_queue.clone(), + import_queue: params.import_queue, block_announce_validator_builder: Some(Box::new(|_| { Box::new(block_announce_validator) })), warp_sync: None, })?; + if parachain_config.offchain_worker.enabled { + sc_service::build_offchain_workers( + ¶chain_config, + task_manager.spawn_handle(), + client.clone(), + network.clone(), + ); + } + let rpc_builder = { let client = client.clone(); let transaction_pool = transaction_pool.clone(); @@ -218,15 +213,6 @@ async fn start_node_impl( }) }; - if parachain_config.offchain_worker.enabled { - sc_service::build_offchain_workers( - ¶chain_config, - task_manager.spawn_handle(), - client.clone(), - network.clone(), - ); - } - sc_service::spawn_tasks(sc_service::SpawnTasksParams { rpc_builder, client: client.clone(), @@ -234,7 +220,7 @@ async fn start_node_impl( task_manager: &mut task_manager, config: parachain_config, keystore: params.keystore_container.sync_keystore(), - backend: backend.clone(), + backend, network: network.clone(), system_rpc_tx, tx_handler_controller, @@ -264,6 +250,7 @@ async fn start_node_impl( if validator { let parachain_consensus = build_consensus( client.clone(), + block_import, prometheus_registry.as_ref(), telemetry.as_ref().map(|t| t.handle()), &task_manager, @@ -272,12 +259,12 @@ async fn start_node_impl( network, params.keystore_container.sync_keystore(), force_authoring, - id, + para_id, )?; let spawner = task_manager.spawn_handle(); let params = StartCollatorParams { - para_id: id, + para_id, block_status: client.clone(), announce_block, client: client.clone(), @@ -285,7 +272,7 @@ async fn start_node_impl( relay_chain_interface, spawner, parachain_consensus, - import_queue, + import_queue: import_queue_service, collator_key: collator_key.expect("Command line arguments do not allow this. qed"), relay_chain_slot_duration, }; @@ -296,10 +283,10 @@ async fn start_node_impl( client: client.clone(), announce_block, task_manager: &mut task_manager, - para_id: id, + para_id, relay_chain_interface, relay_chain_slot_duration, - import_queue, + import_queue: import_queue_service, }; start_full_node(params)?; @@ -313,6 +300,7 @@ async fn start_node_impl( /// Build the import queue for the parachain runtime. fn build_import_queue( client: Arc, + block_import: ParachainBlockImport, config: &Configuration, telemetry: Option, task_manager: &TaskManager, @@ -327,8 +315,8 @@ fn build_import_queue( _, _, >(cumulus_client_consensus_aura::ImportQueueParams { - block_import: client.clone(), - client: client.clone(), + block_import, + client, create_inherent_data_providers: move |_, _| async move { let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); @@ -349,6 +337,7 @@ fn build_import_queue( fn build_consensus( client: Arc, + block_import: ParachainBlockImport, prometheus_registry: Option<&Registry>, telemetry: Option, task_manager: &TaskManager, @@ -357,7 +346,7 @@ fn build_consensus( sync_oracle: Arc>, keystore: SyncCryptoStorePtr, force_authoring: bool, - id: ParaId, + para_id: ParaId, ) -> Result>, sc_service::Error> { let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?; @@ -379,7 +368,7 @@ fn build_consensus( relay_parent, &relay_chain_interface, &validation_data, - id, + para_id, ) .await; let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); @@ -398,7 +387,7 @@ fn build_consensus( Ok((slot, timestamp, parachain_inherent)) } }, - block_import: client.clone(), + block_import, para_client: client, backoff_authoring_blocks: Option::<()>::None, sync_oracle, @@ -420,8 +409,8 @@ pub async fn start_parachain_node( parachain_config: Configuration, polkadot_config: Configuration, collator_options: CollatorOptions, - id: ParaId, + para_id: ParaId, hwbench: Option, ) -> sc_service::error::Result<(TaskManager, Arc)> { - start_node_impl(parachain_config, polkadot_config, collator_options, id, hwbench).await + start_node_impl(parachain_config, polkadot_config, collator_options, para_id, hwbench).await } diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 9a7ff724..27558ff7 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -16,17 +16,17 @@ codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive scale-info = { version = "2.2.0", default-features = false, features = ["derive"] } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.32" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } [dev-dependencies] serde = { version = "1.0.132" } # Substrate -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } [features] default = ["std"] diff --git a/pallets/template/src/lib.rs b/pallets/template/src/lib.rs index 18d94bed..fde11a46 100644 --- a/pallets/template/src/lib.rs +++ b/pallets/template/src/lib.rs @@ -67,6 +67,7 @@ pub mod pallet { impl Pallet { /// An example dispatchable that takes a singles value as a parameter, writes the value to /// storage and emits an event. This function must be dispatched by a signed extrinsic. + #[pallet::call_index(0)] #[pallet::weight(Weight::from_ref_time(10_000) + T::DbWeight::get().writes(1))] pub fn do_something(origin: OriginFor, something: u32) -> DispatchResultWithPostInfo { // Check that the extrinsic was signed and get the signer. @@ -84,6 +85,7 @@ pub mod pallet { } /// An example dispatchable that may throw a custom error. + #[pallet::call_index(1)] #[pallet::weight(Weight::from_ref_time(10_000) + T::DbWeight::get().reads_writes(1,1))] pub fn cause_error(origin: OriginFor) -> DispatchResultWithPostInfo { let _who = ensure_signed(origin)?; diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index f6d35a7e..85a20ee0 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,66 +12,66 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.32" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } hex-literal = { version = "0.3.4", optional = true } log = { version = "0.4.17", default-features = false } -scale-info = { version = "2.2.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } smallvec = "1.10.0" -# Local +# Local pallet-template = { path = "../pallets/template", default-features = false } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.32" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.32" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.32" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.32" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.32" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.32" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.32" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.32" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.32" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.32" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } # Cumulus -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false } -cumulus-pallet-session-benchmarking = {git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false, version = "3.0.0"} -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false } -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false } -parachain-info = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.32", default-features = false } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false } +cumulus-pallet-session-benchmarking = {git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false, version = "3.0.0"} +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false } +pallet-collator-selection = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false } +parachain-info = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false } [features] default = [ @@ -148,7 +148,7 @@ try-runtime = [ "cumulus-pallet-xcmp-queue/try-runtime", "frame-executive/try-runtime", "frame-system/try-runtime", - "frame-try-runtime", + "frame-try-runtime/try-runtime", "pallet-aura/try-runtime", "pallet-authorship/try-runtime", "pallet-balances/try-runtime", diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 89c68f2c..a0abb0e2 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -29,9 +29,9 @@ use frame_support::{ construct_runtime, dispatch::DispatchClass, parameter_types, - traits::Everything, + traits::{ConstU32, ConstU64, ConstU8, Everything}, weights::{ - constants::WEIGHT_PER_SECOND, ConstantMultiplier, Weight, WeightToFeeCoefficient, + constants::WEIGHT_REF_TIME_PER_SECOND, ConstantMultiplier, Weight, WeightToFeeCoefficient, WeightToFeeCoefficients, WeightToFeePolynomial, }, PalletId, @@ -217,9 +217,10 @@ const AVERAGE_ON_INITIALIZE_RATIO: Perbill = Perbill::from_percent(5); const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); /// We allow for 0.5 of a second of compute with a 12 second average block time. -const MAXIMUM_BLOCK_WEIGHT: Weight = WEIGHT_PER_SECOND - .saturating_div(2) - .set_proof_size(cumulus_primitives_core::relay_chain::v2::MAX_POV_SIZE as u64); +const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts( + WEIGHT_REF_TIME_PER_SECOND.saturating_div(2), + cumulus_primitives_core::relay_chain::v2::MAX_POV_SIZE as u64, +); /// The version information used to identify this runtime when compiled natively. #[cfg(feature = "std")] @@ -309,37 +310,27 @@ impl frame_system::Config for Runtime { type MaxConsumers = frame_support::traits::ConstU32<16>; } -parameter_types! { - pub const MinimumPeriod: u64 = SLOT_DURATION / 2; -} - impl pallet_timestamp::Config for Runtime { /// A timestamp: milliseconds since the unix epoch. type Moment = u64; type OnTimestampSet = Aura; - type MinimumPeriod = MinimumPeriod; + type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; type WeightInfo = (); } -parameter_types! { - pub const UncleGenerations: u32 = 0; -} - impl pallet_authorship::Config for Runtime { type FindAuthor = pallet_session::FindAccountFromAuthorIndex; - type UncleGenerations = UncleGenerations; + type UncleGenerations = ConstU32<0>; type FilterUncle = (); type EventHandler = (CollatorSelection,); } parameter_types! { pub const ExistentialDeposit: Balance = EXISTENTIAL_DEPOSIT; - pub const MaxLocks: u32 = 50; - pub const MaxReserves: u32 = 50; } impl pallet_balances::Config for Runtime { - type MaxLocks = MaxLocks; + type MaxLocks = ConstU32<50>; /// The type for recording an account's balance. type Balance = Balance; /// The ubiquitous event type. @@ -348,14 +339,13 @@ impl pallet_balances::Config for Runtime { type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = pallet_balances::weights::SubstrateWeight; - type MaxReserves = MaxReserves; + type MaxReserves = ConstU32<50>; type ReserveIdentifier = [u8; 8]; } parameter_types! { /// Relay Chain `TransactionByteFee` / 10 pub const TransactionByteFee: Balance = 10 * MICROUNIT; - pub const OperationalFeeMultiplier: u8 = 5; } impl pallet_transaction_payment::Config for Runtime { @@ -364,7 +354,7 @@ impl pallet_transaction_payment::Config for Runtime { type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; - type OperationalFeeMultiplier = OperationalFeeMultiplier; + type OperationalFeeMultiplier = ConstU8<5>; } parameter_types! { @@ -408,7 +398,6 @@ impl cumulus_pallet_dmp_queue::Config for Runtime { parameter_types! { pub const Period: u32 = 6 * HOURS; pub const Offset: u32 = 0; - pub const MaxAuthorities: u32 = 100_000; } impl pallet_session::Config for Runtime { @@ -419,7 +408,7 @@ impl pallet_session::Config for Runtime { type ShouldEndSession = pallet_session::PeriodicSessions; type NextSessionRotation = pallet_session::PeriodicSessions; type SessionManager = CollatorSelection; - // Essentially just Aura, but lets be pedantic. + // Essentially just Aura, but let's be pedantic. type SessionHandler = ::KeyTypeIdProviders; type Keys = SessionKeys; type WeightInfo = (); @@ -428,7 +417,7 @@ impl pallet_session::Config for Runtime { impl pallet_aura::Config for Runtime { type AuthorityId = AuraId; type DisabledValidators = (); - type MaxAuthorities = MaxAuthorities; + type MaxAuthorities = ConstU32<100_000>; } parameter_types! { @@ -643,21 +632,20 @@ impl_runtime_apis! { #[cfg(feature = "try-runtime")] impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade() -> (Weight, Weight) { - log::info!("try-runtime::on_runtime_upgrade parachain-template."); - let weight = Executive::try_runtime_upgrade().unwrap(); + fn on_runtime_upgrade(checks: bool) -> (Weight, Weight) { + let weight = Executive::try_runtime_upgrade(checks).unwrap(); (weight, RuntimeBlockWeights::get().max_block) } - fn execute_block(block: Block, state_root_check: bool, select: frame_try_runtime::TryStateSelect) -> Weight { - log::info!( - target: "runtime::parachain-template", "try-runtime: executing block #{} ({:?}) / root checks: {:?} / sanity-checks: {:?}", - block.header.number, - block.header.hash(), - state_root_check, - select, - ); - Executive::try_execute_block(block, state_root_check, select).expect("try_execute_block failed") + fn execute_block( + block: Block, + state_root_check: bool, + signature_check: bool, + select: frame_try_runtime::TryStateSelect, + ) -> Weight { + // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to + // have a backtrace here. + Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() } } diff --git a/runtime/src/weights/block_weights.rs b/runtime/src/weights/block_weights.rs index c0043073..ea8a341b 100644 --- a/runtime/src/weights/block_weights.rs +++ b/runtime/src/weights/block_weights.rs @@ -23,7 +23,8 @@ pub mod constants { parameter_types! { /// Importing a block with 0 Extrinsics. - pub const BlockExecutionWeight: Weight = constants::WEIGHT_PER_NANOS.saturating_mul(5_000_000); + pub const BlockExecutionWeight: Weight = + Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000)); } #[cfg(test)] @@ -39,12 +40,12 @@ pub mod constants { // At least 100 µs. assert!( - w.ref_time() >= 100u64 * constants::WEIGHT_PER_MICROS.ref_time(), + w.ref_time() >= 100u64 * constants::WEIGHT_REF_TIME_PER_MICROS, "Weight should be at least 100 µs." ); // At most 50 ms. assert!( - w.ref_time() <= 50u64 * constants::WEIGHT_PER_MILLIS.ref_time(), + w.ref_time() <= 50u64 * constants::WEIGHT_REF_TIME_PER_MILLIS, "Weight should be at most 50 ms." ); } diff --git a/runtime/src/weights/extrinsic_weights.rs b/runtime/src/weights/extrinsic_weights.rs index 3ce6b73d..0512efb6 100644 --- a/runtime/src/weights/extrinsic_weights.rs +++ b/runtime/src/weights/extrinsic_weights.rs @@ -23,7 +23,8 @@ pub mod constants { parameter_types! { /// Executing a NO-OP `System::remarks` Extrinsic. - pub const ExtrinsicBaseWeight: Weight = constants::WEIGHT_PER_NANOS.saturating_mul(125_000); + pub const ExtrinsicBaseWeight: Weight = + Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000)); } #[cfg(test)] @@ -39,12 +40,12 @@ pub mod constants { // At least 10 µs. assert!( - w.ref_time() >= 10u64 * constants::WEIGHT_PER_MICROS.ref_time(), + w.ref_time() >= 10u64 * constants::WEIGHT_REF_TIME_PER_MICROS, "Weight should be at least 10 µs." ); // At most 1 ms. assert!( - w.ref_time() <= constants::WEIGHT_PER_MILLIS.ref_time(), + w.ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, "Weight should be at most 1 ms." ); } diff --git a/runtime/src/weights/paritydb_weights.rs b/runtime/src/weights/paritydb_weights.rs index dca7d348..4338d928 100644 --- a/runtime/src/weights/paritydb_weights.rs +++ b/runtime/src/weights/paritydb_weights.rs @@ -25,8 +25,8 @@ pub mod constants { /// `ParityDB` can be enabled with a feature flag, but is still experimental. These weights /// are available for brave runtime engineers who may want to try this out as default. pub const ParityDbWeight: RuntimeDbWeight = RuntimeDbWeight { - read: 8_000 * constants::WEIGHT_PER_NANOS.ref_time(), - write: 50_000 * constants::WEIGHT_PER_NANOS.ref_time(), + read: 8_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + write: 50_000 * constants::WEIGHT_REF_TIME_PER_NANOS, }; } @@ -42,20 +42,20 @@ pub mod constants { fn sane() { // At least 1 µs. assert!( - W::get().reads(1).ref_time() >= constants::WEIGHT_PER_MICROS.ref_time(), + W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, "Read weight should be at least 1 µs." ); assert!( - W::get().writes(1).ref_time() >= constants::WEIGHT_PER_MICROS.ref_time(), + W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, "Write weight should be at least 1 µs." ); // At most 1 ms. assert!( - W::get().reads(1).ref_time() <= constants::WEIGHT_PER_MILLIS.ref_time(), + W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, "Read weight should be at most 1 ms." ); assert!( - W::get().writes(1).ref_time() <= constants::WEIGHT_PER_MILLIS.ref_time(), + W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, "Write weight should be at most 1 ms." ); } diff --git a/runtime/src/weights/rocksdb_weights.rs b/runtime/src/weights/rocksdb_weights.rs index 87867ebf..1d115d96 100644 --- a/runtime/src/weights/rocksdb_weights.rs +++ b/runtime/src/weights/rocksdb_weights.rs @@ -25,8 +25,8 @@ pub mod constants { /// By default, Substrate uses `RocksDB`, so this will be the weight used throughout /// the runtime. pub const RocksDbWeight: RuntimeDbWeight = RuntimeDbWeight { - read: 25_000 * constants::WEIGHT_PER_NANOS.ref_time(), - write: 100_000 * constants::WEIGHT_PER_NANOS.ref_time(), + read: 25_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + write: 100_000 * constants::WEIGHT_REF_TIME_PER_NANOS, }; } @@ -42,20 +42,20 @@ pub mod constants { fn sane() { // At least 1 µs. assert!( - W::get().reads(1).ref_time() >= constants::WEIGHT_PER_MICROS.ref_time(), + W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, "Read weight should be at least 1 µs." ); assert!( - W::get().writes(1).ref_time() >= constants::WEIGHT_PER_MICROS.ref_time(), + W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, "Write weight should be at least 1 µs." ); // At most 1 ms. assert!( - W::get().reads(1).ref_time() <= constants::WEIGHT_PER_MILLIS.ref_time(), + W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, "Read weight should be at most 1 ms." ); assert!( - W::get().writes(1).ref_time() <= constants::WEIGHT_PER_MILLIS.ref_time(), + W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, "Write weight should be at most 1 ms." ); } diff --git a/runtime/src/xcm_config.rs b/runtime/src/xcm_config.rs index c06bfb95..73d45339 100644 --- a/runtime/src/xcm_config.rs +++ b/runtime/src/xcm_config.rs @@ -111,7 +111,7 @@ where } } -// See issue #5233 +// See issue pub struct DenyReserveTransferToRelayChain; impl ShouldExecute for DenyReserveTransferToRelayChain { fn should_execute( From 6cde4f130cc41287ef2ed5a00093991197f3c1a3 Mon Sep 17 00:00:00 2001 From: Paritytech CI <52199148+paritytech-ci@users.noreply.github.com> Date: Fri, 27 Jan 2023 01:53:54 +0200 Subject: [PATCH 70/91] Auto-Update substrate-parachain-template from polkadot-v0.9.37 (#149) --- Cargo.lock | 7514 +++++++++++++++-------------------- node/Cargo.toml | 96 +- pallets/template/Cargo.toml | 12 +- runtime/Cargo.toml | 90 +- runtime/src/lib.rs | 2 +- 5 files changed, 3301 insertions(+), 4413 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 35822f85..e854e9fb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -27,7 +27,7 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" dependencies = [ - "gimli 0.27.0", + "gimli 0.27.1", ] [[package]] @@ -36,6 +36,15 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "aead" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" +dependencies = [ + "generic-array 0.14.6", +] + [[package]] name = "aead" version = "0.4.3" @@ -43,6 +52,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" dependencies = [ "generic-array 0.14.6", + "rand_core 0.6.4", +] + +[[package]] +name = "aes" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" +dependencies = [ + "aes-soft", + "aesni", + "cipher 0.2.5", ] [[package]] @@ -52,25 +73,59 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ "cfg-if", - "cipher", + "cipher 0.3.0", "cpufeatures", "opaque-debug 0.3.0", ] +[[package]] +name = "aes-gcm" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5278b5fabbb9bd46e24aa69b2fdea62c99088e0a950a9be40e3e0101298f88da" +dependencies = [ + "aead 0.3.2", + "aes 0.6.0", + "cipher 0.2.5", + "ctr 0.6.0", + "ghash 0.3.1", + "subtle", +] + [[package]] name = "aes-gcm" version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6" dependencies = [ - "aead", - "aes", - "cipher", - "ctr", - "ghash", + "aead 0.4.3", + "aes 0.7.5", + "cipher 0.3.0", + "ctr 0.8.0", + "ghash 0.4.4", "subtle", ] +[[package]] +name = "aes-soft" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" +dependencies = [ + "cipher 0.2.5", + "opaque-debug 0.3.0", +] + +[[package]] +name = "aesni" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" +dependencies = [ + "cipher 0.2.5", + "opaque-debug 0.3.0", +] + [[package]] name = "ahash" version = "0.7.6" @@ -130,6 +185,12 @@ dependencies = [ "num-traits", ] +[[package]] +name = "arc-swap" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" + [[package]] name = "array-bytes" version = "4.2.0" @@ -161,66 +222,83 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" [[package]] -name = "asn1_der" -version = "0.7.5" +name = "asn1-rs" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22d1f4b888c298a027c99dc9048015fac177587de20fc30232a057dfbe24a21" +checksum = "30ff05a702273012438132f449575dbc804e27b2f3cbe3069aa237d26c98fa33" +dependencies = [ + "asn1-rs-derive 0.1.0", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time 0.3.17", +] [[package]] -name = "assert_matches" -version = "1.5.0" +name = "asn1-rs" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +checksum = "cf6690c370453db30743b373a60ba498fc0d6d83b11f4abfd87a84a075db5dd4" +dependencies = [ + "asn1-rs-derive 0.4.0", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time 0.3.17", +] [[package]] -name = "async-attributes" -version = "1.1.2" +name = "asn1-rs-derive" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" +checksum = "db8b7511298d5b7784b40b092d9e9dcd3a627a5707e4b5e507931ab0d44eeebf" dependencies = [ + "proc-macro2", "quote", "syn", + "synstructure", ] [[package]] -name = "async-channel" -version = "1.8.0" +name = "asn1-rs-derive" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" dependencies = [ - "concurrent-queue", - "event-listener", - "futures-core", + "proc-macro2", + "quote", + "syn", + "synstructure", ] [[package]] -name = "async-executor" -version = "1.5.0" +name = "asn1-rs-impl" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b" +checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" dependencies = [ - "async-lock", - "async-task", - "concurrent-queue", - "fastrand", - "futures-lite", - "slab", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "async-global-executor" -version = "2.3.1" +name = "asn1_der" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776" -dependencies = [ - "async-channel", - "async-executor", - "async-io", - "async-lock", - "blocking", - "futures-lite", - "once_cell", -] +checksum = "e22d1f4b888c298a027c99dc9048015fac177587de20fc30232a057dfbe24a21" + +[[package]] +name = "assert_matches" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" [[package]] name = "async-io" @@ -252,62 +330,11 @@ dependencies = [ "futures-lite", ] -[[package]] -name = "async-process" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6381ead98388605d0d9ff86371043b5aa922a3905824244de40dc263a14fcba4" -dependencies = [ - "async-io", - "async-lock", - "autocfg", - "blocking", - "cfg-if", - "event-listener", - "futures-lite", - "libc", - "signal-hook", - "windows-sys 0.42.0", -] - -[[package]] -name = "async-std" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" -dependencies = [ - "async-attributes", - "async-channel", - "async-global-executor", - "async-io", - "async-lock", - "crossbeam-utils", - "futures-channel", - "futures-core", - "futures-io", - "futures-lite", - "gloo-timers", - "kv-log-macro", - "log", - "memchr", - "once_cell", - "pin-project-lite 0.2.9", - "pin-utils", - "slab", - "wasm-bindgen-futures", -] - -[[package]] -name = "async-task" -version = "4.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" - [[package]] name = "async-trait" -version = "0.1.60" +version = "0.1.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d1d8ab452a3936018a687b20e6f7cf5363d713b732b8884001317b0e48aa3" +checksum = "eff18d764974428cf3a9328e23fc5c986f5fbed46e6cd4cdf42544df5d297ec1" dependencies = [ "proc-macro2", "quote", @@ -329,9 +356,9 @@ dependencies = [ [[package]] name = "atomic-waker" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" +checksum = "debc29dde2e69f9e47506b525f639ed42300fc014a3e007832592448fa8e4599" [[package]] name = "atty" @@ -361,7 +388,7 @@ dependencies = [ "cfg-if", "libc", "miniz_oxide", - "object 0.30.0", + "object 0.30.3", "rustc-demangle", ] @@ -389,6 +416,12 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" + [[package]] name = "base64ct" version = "1.5.3" @@ -407,36 +440,33 @@ dependencies = [ [[package]] name = "beefy-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "array-bytes 4.2.0", "async-trait", "fnv", "futures", - "futures-timer", "log", "parity-scale-codec", "parking_lot 0.12.1", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-finality-grandpa", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", + "sc-consensus", + "sc-keystore", + "sc-network", + "sc-network-common", "sc-network-gossip", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-utils", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", "sp-beefy", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-keystore", "sp-mmr-primitives", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", + "substrate-prometheus-endpoint", "thiserror", "wasm-timer", ] @@ -444,7 +474,7 @@ dependencies = [ [[package]] name = "beefy-gadget-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "beefy-gadget", "futures", @@ -452,23 +482,22 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.1", - "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-rpc", "serde", "sp-beefy", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-runtime", "thiserror", ] [[package]] name = "beefy-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", "sp-beefy", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", ] [[package]] @@ -568,7 +597,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" dependencies = [ - "block-padding", + "block-padding 0.1.5", "byte-tools", "byteorder", "generic-array 0.12.4", @@ -592,6 +621,16 @@ dependencies = [ "generic-array 0.14.6", ] +[[package]] +name = "block-modes" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57a0e8073e8baa88212fb5823574c02ebccb395136ba9a164ab89379ec6072f0" +dependencies = [ + "block-padding 0.2.1", + "cipher 0.2.5", +] + [[package]] name = "block-padding" version = "0.1.5" @@ -602,18 +641,10 @@ dependencies = [ ] [[package]] -name = "blocking" -version = "1.3.0" +name = "block-padding" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c67b173a56acffd6d2326fb7ab938ba0b00a71480e14902b2591c87bc5741e8" -dependencies = [ - "async-channel", - "async-lock", - "async-task", - "atomic-waker", - "fastrand", - "futures-lite", -] +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" [[package]] name = "bounded-vec" @@ -632,11 +663,12 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bstr" -version = "0.2.17" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +checksum = "b45ea9b00a7b3f2988e9a65ad3917e62123c38dba709b666506207be96d1790b" dependencies = [ "memchr", + "serde", ] [[package]] @@ -650,9 +682,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.11.1" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" +checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" [[package]] name = "byte-slice-cast" @@ -691,9 +723,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ad0e1e3e88dd237a156ab9f571021b8a158caa0ae44b1968a241efb5144c1e" +checksum = "c77df041dc383319cc661b428b6961a005db4d6808d5e12536931b1ca9556055" dependencies = [ "serde", ] @@ -729,6 +761,17 @@ dependencies = [ "jobserver", ] +[[package]] +name = "ccm" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aca1a8fbc20b50ac9673ff014abfb2b5f4085ee1a850d408f14a159c5853ac7" +dependencies = [ + "aead 0.3.2", + "cipher 0.2.5", + "subtle", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -766,7 +809,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c80e5460aa66fe3b91d40bcbdab953a597b60053e34d684ac6903f863b680a6" dependencies = [ "cfg-if", - "cipher", + "cipher 0.3.0", "cpufeatures", "zeroize", ] @@ -777,9 +820,9 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a18446b09be63d457bbec447509e85f662f32952b035ce892290396bc0b0cff5" dependencies = [ - "aead", + "aead 0.4.3", "chacha20", - "cipher", + "cipher 0.3.0", "poly1305", "zeroize", ] @@ -794,7 +837,7 @@ dependencies = [ "js-sys", "num-integer", "num-traits", - "time", + "time 0.1.45", "wasm-bindgen", "winapi", ] @@ -812,6 +855,15 @@ dependencies = [ "unsigned-varint", ] +[[package]] +name = "cipher" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" +dependencies = [ + "generic-array 0.14.6", +] + [[package]] name = "cipher" version = "0.3.0" @@ -843,9 +895,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.0.32" +version = "4.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7db700bc935f9e43e88d00b0850dae18a63773cfbec6d8e070fccf7fef89a39" +checksum = "f13b9c79b5d1dd500d20ef541215a6423c75829ef43117e1b4d17fd8af0b5d76" dependencies = [ "bitflags", "clap_derive", @@ -858,9 +910,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.0.21" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014" +checksum = "684a277d672e91966334af371f1a7b5833f9aa00b07c84e92fbce95e00208ce8" dependencies = [ "heck", "proc-macro-error", @@ -871,9 +923,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8" +checksum = "783fe232adfca04f90f56201b26d79682d4cd2625e0bc7290b95123afe558ade" dependencies = [ "os_str_bytes", ] @@ -902,9 +954,9 @@ dependencies = [ [[package]] name = "comfy-table" -version = "6.1.3" +version = "6.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e621e7e86c46fd8a14c32c6ae3cb95656621b4743a27d0cffedb831d46e7ad21" +checksum = "6e7b787b0dc42e8111badfdbe4c3059158ccb2db8780352fa1b01e8ccf45cc4d" dependencies = [ "strum", "strum_macros", @@ -913,9 +965,9 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7bef69dc86e3c610e4e7aed41035e2a7ed12e72dd7530f61327a6579a4390b" +checksum = "c278839b831783b70278b14df4d45e1beb1aad306c07bb796637de9a0e323e8e" dependencies = [ "crossbeam-utils", ] @@ -997,6 +1049,12 @@ dependencies = [ "libc", ] +[[package]] +name = "cpuid-bool" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" + [[package]] name = "cranelift-bforest" version = "0.88.2" @@ -1095,6 +1153,21 @@ dependencies = [ "wasmtime-types", ] +[[package]] +name = "crc" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53757d12b596c16c78b83458d732a5d1a17ab3f53f2f7412f6fb57cc8a140ab3" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cace84e55f07e7301bae1c519df89cdad8cc3cd868413d3fdbdeca9ff3db484" + [[package]] name = "crc32fast" version = "1.3.2" @@ -1195,6 +1268,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "crypto-mac" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a" +dependencies = [ + "generic-array 0.14.6", + "subtle", +] + [[package]] name = "crypto-mac" version = "0.11.1" @@ -1206,13 +1289,12 @@ dependencies = [ ] [[package]] -name = "ctor" -version = "0.1.26" +name = "ctr" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" +checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f" dependencies = [ - "quote", - "syn", + "cipher 0.2.5", ] [[package]] @@ -1221,28 +1303,28 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" dependencies = [ - "cipher", + "cipher 0.3.0", ] [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "clap", "parity-scale-codec", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-chain-spec", + "sc-cli", + "sc-service", + "sp-core", + "sp-runtime", "url", ] [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1254,47 +1336,47 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", + "sp-api", + "sp-consensus", + "sp-core", + "sp-runtime", "tracing", ] [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "async-trait", "cumulus-client-consensus-common", "cumulus-primitives-core", "futures", "parity-scale-codec", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", + "sc-consensus", "sc-consensus-aura", "sc-consensus-slots", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-telemetry", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", "tracing", ] [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -1305,19 +1387,19 @@ dependencies = [ "log", "parity-scale-codec", "polkadot-primitives", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", + "sc-consensus", + "sp-blockchain", + "sp-consensus", + "sp-runtime", + "sp-trie", "tracing", ] [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1328,19 +1410,19 @@ dependencies = [ "polkadot-node-primitives", "polkadot-parachain", "polkadot-primitives", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "sp-state-machine", "tracing", ] [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -1352,18 +1434,18 @@ dependencies = [ "polkadot-overseer", "polkadot-primitives", "rand 0.8.5", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", + "sc-consensus", + "sp-consensus", + "sp-maybe-compressed-blob", + "sp-runtime", "tracing", ] [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1376,83 +1458,83 @@ dependencies = [ "futures", "parking_lot 0.12.1", "polkadot-primitives", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-sysinfo 6.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", + "sc-consensus", + "sc-service", + "sc-sysinfo", + "sc-telemetry", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", ] [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-aura 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", + "pallet-aura", "parity-scale-codec", "scale-info", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto", + "sp-consensus-aura", + "sp-runtime", + "sp-std", ] [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "cumulus-primitives-core", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io", + "sp-runtime", + "sp-std", "xcm", ] [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "environmental", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", "impl-trait-for-tuples", "log", "parity-scale-codec", "polkadot-parachain", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-externalities", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", + "sp-version", ] [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1463,48 +1545,48 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-session", "parity-scale-codec", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", + "sp-std", ] [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "cumulus-primitives-core", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io", + "sp-runtime", + "sp-std", "xcm", ] [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "cumulus-primitives-core", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "rand_chacha 0.3.1", "scale-info", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", + "sp-std", "xcm", "xcm-executor", ] @@ -1512,65 +1594,65 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-primitives", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", + "sp-runtime", + "sp-std", + "sp-trie", ] [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", "cumulus-test-relay-sproof-builder", "parity-scale-codec", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", "scale-info", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-storage", + "sp-trie", "tracing", ] [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "cumulus-primitives-core", "futures", "parity-scale-codec", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-inherents", + "sp-std", + "sp-timestamp", ] [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "cumulus-primitives-core", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", "log", "parity-scale-codec", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", + "sp-std", "xcm", "xcm-builder", "xcm-executor", @@ -1579,7 +1661,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1589,22 +1671,22 @@ dependencies = [ "polkadot-cli", "polkadot-client", "polkadot-service", - "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-sysinfo 6.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-cli", + "sc-client-api", + "sc-sysinfo", + "sc-telemetry", + "sc-tracing", + "sp-api", + "sp-consensus", + "sp-core", + "sp-runtime", + "sp-state-machine", ] [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1613,10 +1695,10 @@ dependencies = [ "parity-scale-codec", "polkadot-overseer", "polkadot-service", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", + "sp-api", + "sp-blockchain", + "sp-state-machine", "thiserror", "tokio", ] @@ -1624,7 +1706,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "array-bytes 6.0.0", "async-trait", @@ -1641,21 +1723,21 @@ dependencies = [ "polkadot-primitives", "polkadot-service", "sc-authority-discovery", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", + "sc-consensus", + "sc-keystore", + "sc-network", + "sc-network-common", + "sc-service", + "sc-telemetry", + "sc-tracing", + "sc-transaction-pool", + "sc-transaction-pool-api", + "sp-api", + "sp-blockchain", + "sp-consensus", "sp-consensus-babe", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", "tokio", "tracing", "url", @@ -1664,7 +1746,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1675,16 +1757,16 @@ dependencies = [ "lru", "parity-scale-codec", "polkadot-service", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", + "sc-rpc-api", "serde", "serde_json", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", "sp-authority-discovery", "sp-consensus-babe", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-state-machine", + "sp-storage", "tokio", "tracing", "url", @@ -1693,14 +1775,14 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", "polkadot-primitives", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", + "sp-state-machine", + "sp-std", ] [[package]] @@ -1745,9 +1827,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.85" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5add3fc1717409d029b20c5b6903fc0c0b02fa6741d820054f4a2efa5e5816fd" +checksum = "b61a7545f753a88bcbe0a70de1fcc0221e10bfc752f576754fa91e663db1622e" dependencies = [ "cc", "cxxbridge-flags", @@ -1757,9 +1839,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.85" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c87959ba14bc6fbc61df77c3fcfe180fc32b93538c4f1031dd802ccb5f2ff0" +checksum = "f464457d494b5ed6905c63b0c4704842aba319084a0a3561cdc1359536b53200" dependencies = [ "cc", "codespan-reporting", @@ -1772,18 +1854,53 @@ dependencies = [ [[package]] name = "cxxbridge-flags" -version = "1.0.85" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69a3e162fde4e594ed2b07d0f83c6c67b745e7f28ce58c6df5e6b6bef99dfb59" +checksum = "43c7119ce3a3701ed81aca8410b9acf6fc399d2629d057b87e2efa4e63a3aaea" [[package]] name = "cxxbridge-macro" -version = "1.0.85" +version = "1.0.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65e07508b90551e610910fa648a1878991d367064997a596135b86df30daf07e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "darling" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0dd3cd20dc6b5a876612a6e5accfe7f3dd883db6d07acfbf14c128f61550dfa" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e7e2adeb6a0d4a282e581096b06e1791532b7d576dcde5ccd9382acf55db8e6" +checksum = "a784d2ccaf7c98501746bf0be29b2022ba41fd62a2e622af997a03e9f972859f" dependencies = [ + "fnv", + "ident_case", "proc-macro2", "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7618812407e9402654622dd402b0a89dff9ba93badd6540781526117b92aab7e" +dependencies = [ + "darling_core", + "quote", "syn", ] @@ -1820,9 +1937,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" dependencies = [ "const-oid", + "pem-rfc7468", "zeroize", ] +[[package]] +name = "der-parser" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe398ac75057914d7d07307bf67dc7f3f574a26783b4fc7805a20ffa9f506e82" +dependencies = [ + "asn1-rs 0.3.1", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "der-parser" +version = "8.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42d4bc9b0db0a0df9ae64634ac5bdefb7afcb534e182275ca0beadbe486701c1" +dependencies = [ + "asn1-rs 0.5.1", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", +] + [[package]] name = "derivative" version = "2.2.0" @@ -1835,10 +1981,41 @@ dependencies = [ ] [[package]] -name = "derive_more" -version = "0.99.17" +name = "derive_builder" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "d07adf7be193b71cc36b193d0f5fe60b918a3a9db4dad0449f57bcfd519704a3" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f91d4cfa921f1c05904dc3c57b4a32c38aed3340cce209f3a6fd1478babafc4" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "derive_builder_macro" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f0314b72bed045f3a68671b3c86328386762c93f82d98c65c3cb5e5f573dd68" +dependencies = [ + "derive_builder_core", + "syn", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case", "proc-macro2", @@ -1924,13 +2101,14 @@ dependencies = [ ] [[package]] -name = "dns-parser" -version = "0.8.0" +name = "displaydoc" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbea" +checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886" dependencies = [ - "byteorder", - "quick-error", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -1992,9 +2170,9 @@ dependencies = [ [[package]] name = "ed25519" -version = "1.5.2" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9c280362032ea4203659fc489832d0204ef09f247a0506f170dafcac08c369" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" dependencies = [ "signature", ] @@ -2029,9 +2207,9 @@ dependencies = [ [[package]] name = "either" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" [[package]] name = "elliptic-curve" @@ -2046,6 +2224,9 @@ dependencies = [ "ff", "generic-array 0.14.6", "group", + "hkdf", + "pem-rfc7468", + "pkcs8", "rand_core 0.6.4", "sec1", "subtle", @@ -2108,6 +2289,19 @@ dependencies = [ "termcolor", ] +[[package]] +name = "env_logger" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + [[package]] name = "environmental" version = "1.1.4" @@ -2248,11 +2442,11 @@ checksum = "a214f5bb88731d436478f3ae1f8a277b62124089ba9fb67f4f93fb100ef73c90" [[package]] name = "file-per-thread-logger" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e16290574b39ee41c71aeb90ae960c504ebaf1e2a1c87bd52aa56ed6e1a02f" +checksum = "84f2e425d9790201ba4af4630191feac6dcc98765b118d4d18e91d23c2353866" dependencies = [ - "env_logger", + "env_logger 0.10.0", "log", ] @@ -2270,9 +2464,9 @@ dependencies = [ [[package]] name = "finality-grandpa" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b22349c6a11563a202d95772a68e0fcf56119e74ea8a2a19cf2301460fcd0df5" +checksum = "e24e6c429951433ccb7c87fd528c60084834dcd14763182c1f83291bcde24c34" dependencies = [ "either", "futures", @@ -2331,15 +2525,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "fork-tree" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "parity-scale-codec", ] @@ -2362,114 +2548,39 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "linregress", - "log", - "parity-scale-codec", - "paste", - "scale-info", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "frame-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-support", + "frame-system", "linregress", "log", "parity-scale-codec", "paste", "scale-info", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "frame-benchmarking-cli" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "Inflector", - "array-bytes 4.2.0", - "chrono", - "clap", - "comfy-table", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "gethostname", - "handlebars", - "hash-db", - "itertools", - "kvdb", - "lazy_static", - "linked-hash-map", - "log", - "memory-db", - "parity-scale-codec", - "rand 0.8.5", - "rand_pcg 0.3.1", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-sysinfo 6.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "serde", - "serde_json", - "serde_nanos", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "tempfile", - "thiserror", - "thousands", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", + "sp-runtime-interface", + "sp-std", + "sp-storage", ] [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "Inflector", "array-bytes 4.2.0", "chrono", "clap", "comfy-table", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-benchmarking", + "frame-support", + "frame-system", "gethostname", "handlebars", "itertools", @@ -2478,28 +2589,28 @@ dependencies = [ "log", "parity-scale-codec", "rand 0.8.5", - "rand_pcg 0.3.1", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-sysinfo 6.0.0-dev (git+https://github.com/paritytech/substrate)", + "rand_pcg", + "sc-block-builder", + "sc-cli", + "sc-client-api", + "sc-client-db", + "sc-executor", + "sc-service", + "sc-sysinfo", "serde", "serde_json", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-database", + "sp-externalities", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-storage", + "sp-trie", "thiserror", "thousands", ] @@ -2507,7 +2618,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2518,51 +2629,35 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "frame-election-provider-solution-type", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-arithmetic", + "sp-core", "sp-npos-elections", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", + "sp-std", ] [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", + "frame-try-runtime", "parity-scale-codec", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "frame-executive" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-try-runtime 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "parity-scale-codec", - "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-tracing", ] [[package]] @@ -2580,78 +2675,27 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "env_logger", - "futures", - "log", - "parity-scale-codec", - "serde", - "serde_json", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-rpc-client 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "tokio", -] - -[[package]] -name = "frame-remote-externalities" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "futures", "log", "parity-scale-codec", "serde", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "substrate-rpc-client 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core", + "sp-io", + "sp-runtime", + "substrate-rpc-client", "tokio", ] [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "bitflags", - "frame-metadata", - "frame-support-procedural 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "impl-trait-for-tuples", - "k256", - "log", - "once_cell", - "parity-scale-codec", - "paste", - "scale-info", - "serde", - "smallvec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core-hashing-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "tt-call", -] - -[[package]] -name = "frame-support" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "bitflags", "frame-metadata", - "frame-support-procedural 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-support-procedural", "impl-trait-for-tuples", "k256", "log", @@ -2661,43 +2705,29 @@ dependencies = [ "scale-info", "serde", "smallvec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-core-hashing-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate)", - "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate)", + "sp-api", + "sp-arithmetic", + "sp-core", + "sp-core-hashing-proc-macro", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-state-machine", + "sp-std", + "sp-tracing", + "sp-weights", "tt-call", ] [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "Inflector", - "cfg-expr", - "frame-support-procedural-tools 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "itertools", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "frame-support-procedural" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "Inflector", "cfg-expr", - "frame-support-procedural-tools 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-support-procedural-tools", "itertools", "proc-macro2", "quote", @@ -2707,21 +2737,9 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "frame-support-procedural-tools-derive 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "frame-support-procedural-tools" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-support-procedural-tools-derive 3.0.0 (git+https://github.com/paritytech/substrate)", + "frame-support-procedural-tools-derive", "proc-macro-crate", "proc-macro2", "quote", @@ -2731,17 +2749,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "frame-support-procedural-tools-derive" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "proc-macro2", "quote", @@ -2751,109 +2759,55 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "frame-system" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-support", "log", "parity-scale-codec", "scale-info", "serde", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "frame-system-benchmarking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "parity-scale-codec", - "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-version", + "sp-weights", ] [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "frame-system-rpc-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-runtime", + "sp-std", ] [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "frame-try-runtime" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", ] [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-support", "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-api", + "sp-runtime", + "sp-std", ] [[package]] @@ -2966,8 +2920,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2411eed028cdf8c8034eaf21f9915f956b6c3abec4d4c7949ee67f0721127bd" dependencies = [ "futures-io", - "rustls", - "webpki", + "rustls 0.20.8", + "webpki 0.22.0", ] [[package]] @@ -3051,10 +3005,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ "cfg-if", - "js-sys", "libc", "wasi 0.9.0+wasi-snapshot-preview1", - "wasm-bindgen", ] [[package]] @@ -3068,6 +3020,16 @@ dependencies = [ "wasi 0.11.0+wasi-snapshot-preview1", ] +[[package]] +name = "ghash" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97304e4cd182c3846f7575ced3890c53012ce534ad9114046b0a9e00bb30a375" +dependencies = [ + "opaque-debug 0.3.0", + "polyval 0.4.5", +] + [[package]] name = "ghash" version = "0.4.4" @@ -3075,7 +3037,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" dependencies = [ "opaque-debug 0.3.0", - "polyval", + "polyval 0.5.3", ] [[package]] @@ -3091,21 +3053,21 @@ dependencies = [ [[package]] name = "gimli" -version = "0.27.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dec7af912d60cdbd3677c1af9352ebae6fb8394d165568a2234df0fa00f87793" +checksum = "221996f774192f0f718773def8201c4ae31f02616a54ccfc2d358bb0e5cefdec" [[package]] name = "glob" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "globset" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a" +checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc" dependencies = [ "aho-corasick", "bstr", @@ -3114,18 +3076,6 @@ dependencies = [ "regex", ] -[[package]] -name = "gloo-timers" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98c4a8d6391675c6b2ee1a6c8d06e8e2d03605c44cec1270675985a4c2a5500b" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - [[package]] name = "group" version = "0.12.1" @@ -3230,6 +3180,15 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" +[[package]] +name = "hkdf" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" +dependencies = [ + "hmac 0.12.1", +] + [[package]] name = "hmac" version = "0.8.1" @@ -3240,6 +3199,16 @@ dependencies = [ "digest 0.9.0", ] +[[package]] +name = "hmac" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" +dependencies = [ + "crypto-mac 0.10.1", + "digest 0.9.0", +] + [[package]] name = "hmac" version = "0.11.0" @@ -3360,7 +3329,7 @@ dependencies = [ "http", "hyper", "log", - "rustls", + "rustls 0.20.8", "rustls-native-certs", "tokio", "tokio-rustls", @@ -3390,6 +3359,12 @@ dependencies = [ "cxx-build", ] +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "idna" version = "0.2.3" @@ -3423,9 +3398,9 @@ dependencies = [ [[package]] name = "if-watch" -version = "2.0.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065c008e570a43c00de6aed9714035e5ea6a498c255323db9091722af6ee67dd" +checksum = "ba7abdbb86e485125dad06c2691e1e393bf3b08c7b743b43aa162a00fd39062e" dependencies = [ "async-io", "core-foundation", @@ -3436,6 +3411,7 @@ dependencies = [ "log", "rtnetlink", "system-configuration", + "tokio", "windows", ] @@ -3503,6 +3479,25 @@ dependencies = [ "num-traits", ] +[[package]] +name = "interceptor" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e8a11ae2da61704edada656798b61c94b35ecac2c58eb955156987d5e6be90b" +dependencies = [ + "async-trait", + "bytes", + "log", + "rand 0.8.5", + "rtcp", + "rtp", + "thiserror", + "tokio", + "waitgroup", + "webrtc-srtp", + "webrtc-util", +] + [[package]] name = "io-lifetimes" version = "0.7.5" @@ -3511,9 +3506,9 @@ checksum = "59ce5ef949d49ee85593fc4d3f3f95ad61657076395cbbce23e2121fc5542074" [[package]] name = "io-lifetimes" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c" +checksum = "e7d6c6f8c91b4b9ed43484ad1a938e393caf35960fce7f82a040497207bd8e9e" dependencies = [ "libc", "windows-sys 0.42.0", @@ -3539,9 +3534,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.7.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11b0d96e660696543b251e58030cf9787df56da39dab19ad60eae7353040917e" +checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146" [[package]] name = "is-terminal" @@ -3550,8 +3545,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189" dependencies = [ "hermit-abi 0.2.6", - "io-lifetimes 1.0.3", - "rustix 0.36.5", + "io-lifetimes 1.0.4", + "rustix 0.36.7", "windows-sys 0.42.0", ] @@ -3735,26 +3730,26 @@ dependencies = [ [[package]] name = "kusama-runtime" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "bitvec", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", "frame-election-provider-support", - "frame-executive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-try-runtime 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", "hex-literal", "kusama-runtime-constants", "log", "pallet-authority-discovery", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-authorship", "pallet-babe", "pallet-bags-list", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-balances", "pallet-bounties", "pallet-child-bounties", "pallet-collective", @@ -3782,14 +3777,14 @@ dependencies = [ "pallet-recovery", "pallet-referenda", "pallet-scheduler", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-session", "pallet-session-benchmarking", "pallet-society", "pallet-staking", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-timestamp", "pallet-tips", - "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", "pallet-utility", "pallet-vesting", @@ -3805,26 +3800,26 @@ dependencies = [ "serde", "serde_derive", "smallvec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", + "sp-arithmetic", "sp-authority-discovery", "sp-beefy", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-block-builder", "sp-consensus-babe", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-inherents", + "sp-io", "sp-mmr-primitives", "sp-npos-elections", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-transaction-pool", + "sp-version", "static_assertions", - "substrate-wasm-builder 5.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-wasm-builder", "xcm", "xcm-builder", "xcm-executor", @@ -3832,25 +3827,16 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", "polkadot-primitives", "polkadot-runtime-common", "smallvec", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "kv-log-macro" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" -dependencies = [ - "log", + "sp-core", + "sp-runtime", + "sp-weights", ] [[package]] @@ -3928,16 +3914,15 @@ checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" [[package]] name = "libp2p" -version = "0.49.0" +version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec878fda12ebec479186b3914ebc48ff180fa4c51847e11a1a68bf65249e02c1" +checksum = "2e0a0d2f693675f49ded13c5d510c48b78069e23cbd9108d7ccd59f6dc568819" dependencies = [ "bytes", "futures", "futures-timer", "getrandom 0.2.8", "instant", - "lazy_static", "libp2p-core", "libp2p-dns", "libp2p-identify", @@ -3947,11 +3932,12 @@ dependencies = [ "libp2p-mplex", "libp2p-noise", "libp2p-ping", + "libp2p-quic", "libp2p-request-response", "libp2p-swarm", - "libp2p-swarm-derive", "libp2p-tcp", "libp2p-wasm-ext", + "libp2p-webrtc", "libp2p-websocket", "libp2p-yamux", "multiaddr", @@ -3962,9 +3948,9 @@ dependencies = [ [[package]] name = "libp2p-core" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799676bb0807c788065e57551c6527d461ad572162b0519d1958946ff9e0539d" +checksum = "b6a8fcd392ff67af6cc3f03b1426c41f7f26b6b9aff2dc632c1c56dd649e571f" dependencies = [ "asn1_der", "bs58", @@ -3974,17 +3960,18 @@ dependencies = [ "futures", "futures-timer", "instant", - "lazy_static", "log", "multiaddr", "multihash", "multistream-select", + "once_cell", "parking_lot 0.12.1", "pin-project", "prost", "prost-build", "rand 0.8.5", "rw-stream-sink", + "sec1", "sha2 0.10.6", "smallvec", "thiserror", @@ -3995,9 +3982,9 @@ dependencies = [ [[package]] name = "libp2p-dns" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2322c9fb40d99101def6a01612ee30500c89abbbecb6297b3cd252903a4c1720" +checksum = "8e42a271c1b49f789b92f7fc87749fa79ce5c7bdc88cbdfacb818a4bca47fec5" dependencies = [ "futures", "libp2p-core", @@ -4009,9 +3996,9 @@ dependencies = [ [[package]] name = "libp2p-identify" -version = "0.40.0" +version = "0.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf9a121f699e8719bda2e6e9e9b6ddafc6cff4602471d6481c1067930ccb29b" +checksum = "c052d0026f4817b44869bfb6810f4e1112f43aec8553f2cb38881c524b563abf" dependencies = [ "asynchronous-codec", "futures", @@ -4030,9 +4017,9 @@ dependencies = [ [[package]] name = "libp2p-kad" -version = "0.41.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6721c200e2021f6c3fab8b6cf0272ead8912d871610ee194ebd628cecf428f22" +checksum = "2766dcd2be8c87d5e1f35487deb22d765f49c6ae1251b3633efe3b25698bd3d2" dependencies = [ "arrayvec 0.7.2", "asynchronous-codec", @@ -4058,12 +4045,11 @@ dependencies = [ [[package]] name = "libp2p-mdns" -version = "0.41.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "761704e727f7d68d58d7bc2231eafae5fc1b9814de24290f126df09d4bd37a15" +checksum = "04f378264aade9872d6ccd315c0accc18be3a35d15fc1b9c36e5b6f983b62b5b" dependencies = [ "data-encoding", - "dns-parser", "futures", "if-watch", "libp2p-core", @@ -4073,14 +4059,15 @@ dependencies = [ "smallvec", "socket2", "tokio", + "trust-dns-proto", "void", ] [[package]] name = "libp2p-metrics" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ee31b08e78b7b8bfd1c4204a9dd8a87b4fcdf6dafc57eb51701c1c264a81cb9" +checksum = "5ad8a64f29da86005c86a4d2728b8a0719e9b192f4092b609fd8790acb9dec55" dependencies = [ "libp2p-core", "libp2p-identify", @@ -4092,9 +4079,9 @@ dependencies = [ [[package]] name = "libp2p-mplex" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692664acfd98652de739a8acbb0a0d670f1d67190a49be6b4395e22c37337d89" +checksum = "03805b44107aa013e7cbbfa5627b31c36cbedfdfb00603c0311998882bc4bace" dependencies = [ "asynchronous-codec", "bytes", @@ -4110,31 +4097,32 @@ dependencies = [ [[package]] name = "libp2p-noise" -version = "0.40.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "048155686bd81fe6cb5efdef0c6290f25ad32a0a42e8f4f72625cf6a505a206f" +checksum = "a978cb57efe82e892ec6f348a536bfbd9fee677adbe5689d7a93ad3a9bffbf2e" dependencies = [ "bytes", "curve25519-dalek 3.2.0", "futures", - "lazy_static", "libp2p-core", "log", + "once_cell", "prost", "prost-build", "rand 0.8.5", "sha2 0.10.6", "snow", "static_assertions", - "x25519-dalek", + "thiserror", + "x25519-dalek 1.1.1", "zeroize", ] [[package]] name = "libp2p-ping" -version = "0.40.1" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7228b9318d34689521349a86eb39a3c3a802c9efc99a0568062ffb80913e3f91" +checksum = "929fcace45a112536e22b3dcfd4db538723ef9c3cb79f672b98be2cc8e25f37f" dependencies = [ "futures", "futures-timer", @@ -4146,11 +4134,32 @@ dependencies = [ "void", ] +[[package]] +name = "libp2p-quic" +version = "0.7.0-alpha" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01e7c867e95c8130667b24409d236d37598270e6da69b3baf54213ba31ffca59" +dependencies = [ + "bytes", + "futures", + "futures-timer", + "if-watch", + "libp2p-core", + "libp2p-tls", + "log", + "parking_lot 0.12.1", + "quinn-proto", + "rand 0.8.5", + "rustls 0.20.8", + "thiserror", + "tokio", +] + [[package]] name = "libp2p-request-response" -version = "0.22.1" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8827af16a017b65311a410bb626205a9ad92ec0473967618425039fa5231adc1" +checksum = "3236168796727bfcf4927f766393415361e2c644b08bedb6a6b13d957c9a4884" dependencies = [ "async-trait", "bytes", @@ -4166,9 +4175,9 @@ dependencies = [ [[package]] name = "libp2p-swarm" -version = "0.40.1" +version = "0.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46d13df7c37807965d82930c0e4b04a659efcb6cca237373b206043db5398ecf" +checksum = "b2a35472fe3276b3855c00f1c032ea8413615e030256429ad5349cdf67c6e1a0" dependencies = [ "either", "fnv", @@ -4176,19 +4185,21 @@ dependencies = [ "futures-timer", "instant", "libp2p-core", + "libp2p-swarm-derive", "log", "pin-project", "rand 0.8.5", "smallvec", "thiserror", + "tokio", "void", ] [[package]] name = "libp2p-swarm-derive" -version = "0.30.1" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0eddc4497a8b5a506013c40e8189864f9c3a00db2b25671f428ae9007f3ba32" +checksum = "9d527d5827582abd44a6d80c07ff8b50b4ee238a8979e05998474179e79dc400" dependencies = [ "heck", "quote", @@ -4197,9 +4208,9 @@ dependencies = [ [[package]] name = "libp2p-tcp" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9839d96761491c6d3e238e70554b856956fca0ab60feb9de2cd08eed4473fa92" +checksum = "b4b257baf6df8f2df39678b86c578961d48cc8b68642a12f0f763f56c8e5858d" dependencies = [ "futures", "futures-timer", @@ -4211,11 +4222,29 @@ dependencies = [ "tokio", ] +[[package]] +name = "libp2p-tls" +version = "0.1.0-alpha" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7905ce0d040576634e8a3229a7587cc8beab83f79db6023800f1792895defa8" +dependencies = [ + "futures", + "futures-rustls", + "libp2p-core", + "rcgen 0.10.0", + "ring", + "rustls 0.20.8", + "thiserror", + "webpki 0.22.0", + "x509-parser 0.14.0", + "yasna", +] + [[package]] name = "libp2p-wasm-ext" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b5b8e7a73e379e47b1b77f8a82c4721e97eca01abcd18e9cd91a23ca6ce97" +checksum = "1bb1a35299860e0d4b3c02a3e74e3b293ad35ae0cee8a056363b0c862d082069" dependencies = [ "futures", "js-sys", @@ -4225,11 +4254,42 @@ dependencies = [ "wasm-bindgen-futures", ] +[[package]] +name = "libp2p-webrtc" +version = "0.4.0-alpha" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb6cd86dd68cba72308ea05de1cebf3ba0ae6e187c40548167955d4e3970f6a" +dependencies = [ + "async-trait", + "asynchronous-codec", + "bytes", + "futures", + "futures-timer", + "hex", + "if-watch", + "libp2p-core", + "libp2p-noise", + "log", + "multihash", + "prost", + "prost-build", + "prost-codec", + "rand 0.8.5", + "rcgen 0.9.3", + "serde", + "stun", + "thiserror", + "tinytemplate", + "tokio", + "tokio-util", + "webrtc", +] + [[package]] name = "libp2p-websocket" -version = "0.39.0" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3758ae6f89b2531a24b6d9f5776bda6a626b60a57600d7185d43dfa75ca5ecc4" +checksum = "1d705506030d5c0aaf2882437c70dab437605f21c5f9811978f694e6917a3b54" dependencies = [ "either", "futures", @@ -4246,9 +4306,9 @@ dependencies = [ [[package]] name = "libp2p-yamux" -version = "0.41.1" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6874d66543c4f7e26e3b8ca9a6bead351563a13ab4fafd43c7927f7c0d6c12" +checksum = "4f63594a0aa818642d9d4915c791945053877253f08a3626f13416b5cd928a29" dependencies = [ "futures", "libp2p-core", @@ -4280,7 +4340,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" dependencies = [ "arrayref", - "base64", + "base64 0.13.1", "digest 0.9.0", "hmac-drbg", "libsecp256k1-core", @@ -4395,7 +4455,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ "cfg-if", - "value-bag", ] [[package]] @@ -4462,9 +4521,9 @@ dependencies = [ [[package]] name = "matches" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] name = "matrixmultiply" @@ -4475,6 +4534,15 @@ dependencies = [ "rawpointer", ] +[[package]] +name = "md-5" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" +dependencies = [ + "digest 0.10.6", +] + [[package]] name = "memchr" version = "2.5.0" @@ -4487,7 +4555,7 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b20a59d985586e4a5aef64564ac77299f8586d8be6cf9106a5a40207e8908efb" dependencies = [ - "rustix 0.36.5", + "rustix 0.36.7", ] [[package]] @@ -4586,37 +4654,36 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "futures", "log", "parity-scale-codec", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", + "sc-offchain", + "sp-api", "sp-beefy", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain", + "sp-consensus", + "sp-core", "sp-mmr-primitives", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", ] [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "anyhow", "jsonrpsee", "parity-scale-codec", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", + "sp-blockchain", + "sp-core", "sp-mmr-primitives", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", ] [[package]] @@ -4648,14 +4715,14 @@ dependencies = [ [[package]] name = "multiaddr" -version = "0.14.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c580bfdd8803cce319b047d239559a22f809094aaea4ac13902a1fdcfcd4261" +checksum = "a4aebdb21e90f81d13ed01dc84123320838e53963c2ca94b60b305d3fa64f31e" dependencies = [ "arrayref", - "bs58", "byteorder", "data-encoding", + "multibase", "multihash", "percent-encoding", "serde", @@ -4825,15 +4892,15 @@ dependencies = [ [[package]] name = "netlink-sys" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92b654097027250401127914afb37cb1f311df6610a9891ff07a757e94199027" +checksum = "260e21fbb6f3d253a14df90eb0000a6066780a15dd901a7519ce02d77a94985b" dependencies = [ - "async-io", "bytes", "futures", "libc", "log", + "tokio", ] [[package]] @@ -4845,6 +4912,7 @@ dependencies = [ "bitflags", "cfg-if", "libc", + "memoffset 0.6.5", ] [[package]] @@ -4855,14 +4923,23 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" [[package]] name = "nom" -version = "7.1.1" +version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ "memchr", "minimal-lexical", ] +[[package]] +name = "nom8" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae01545c9c7fc4486ab7debaf2aad7003ac19431791868fb2e8066df97fad2f8" +dependencies = [ + "memchr", +] + [[package]] name = "normalize-line-endings" version = "0.3.0" @@ -4882,9 +4959,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ae39348c8bc5fbd7f40c727a9925f03517afd2ab27d46702108b6a7e5414c19" +checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" dependencies = [ "num-traits", ] @@ -4955,18 +5032,36 @@ dependencies = [ [[package]] name = "object" -version = "0.30.0" +version = "0.30.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239da7f290cfa979f43f85a8efeee9a8a76d0827c356d37f9d3d7254d6b537fb" +checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" dependencies = [ "memchr", ] +[[package]] +name = "oid-registry" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e20717fa0541f39bd146692035c37bedfa532b3e5071b35761082407546b2a" +dependencies = [ + "asn1-rs 0.3.1", +] + +[[package]] +name = "oid-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +dependencies = [ + "asn1-rs 0.5.1", +] + [[package]] name = "once_cell" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" +checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" [[package]] name = "opaque-debug" @@ -4988,9 +5083,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "orchestra" -version = "0.0.2" +version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aab54694ddaa8a9b703724c6ef04272b2d27bc32d2c855aae5cdd1857216b43" +checksum = "17e7d5b6bb115db09390bed8842c94180893dd83df3dfce7354f2a2aa090a4ee" dependencies = [ "async-trait", "dyn-clonable", @@ -5005,9 +5100,9 @@ dependencies = [ [[package]] name = "orchestra-proc-macro" -version = "0.0.2" +version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a702b2f6bf592b3eb06c00d80d05afaf7a8eff6b41bb361e397d799acc21b45a" +checksum = "c2af4dabb2286b0be0e9711d2d24e25f6217048b71210cffd3daddc3b5c84e1f" dependencies = [ "expander 0.0.6", "itertools", @@ -5034,816 +5129,770 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" [[package]] -name = "packed_simd_2" -version = "0.3.8" +name = "p256" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282" +checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" dependencies = [ - "cfg-if", - "libm 0.1.4", + "ecdsa", + "elliptic-curve", + "sha2 0.10.6", ] [[package]] -name = "pallet-aura" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +name = "p384" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc8c5bf642dde52bb9e87c0ecd8ca5a76faac2eeed98dedb7c717997e1080aa" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "parity-scale-codec", - "scale-info", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "ecdsa", + "elliptic-curve", + "sha2 0.10.6", ] [[package]] -name = "pallet-aura" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +name = "packed_simd_2" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "parity-scale-codec", - "scale-info", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "cfg-if", + "libm 0.1.4", ] [[package]] -name = "pallet-authority-discovery" +name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", + "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-authority-discovery", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto", + "sp-consensus-aura", + "sp-runtime", + "sp-std", ] [[package]] -name = "pallet-authorship" +name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "impl-trait-for-tuples", + "frame-support", + "frame-system", + "pallet-session", "parity-scale-codec", "scale-info", - "sp-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto", + "sp-authority-discovery", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-support", + "frame-system", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-authorship", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-authorship", + "pallet-session", + "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto", "sp-consensus-babe", "sp-consensus-vrf", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", ] [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", "frame-election-provider-support", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "log", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "parity-scale-codec", - "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "pallet-balances" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", "log", + "pallet-balances", "parity-scale-codec", "scale-info", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "sp-tracing", ] [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", + "pallet-session", "parity-scale-codec", "scale-info", "serde", "sp-beefy", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "array-bytes 4.2.0", "beefy-merkle-tree", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", "log", "pallet-beefy", "pallet-mmr", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-session", "parity-scale-codec", "scale-info", "serde", "sp-beefy", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "pallet-treasury", "parity-scale-codec", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "pallet-bounties", "pallet-treasury", "parity-scale-codec", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-authorship", + "pallet-session", "parity-scale-codec", "rand 0.8.5", "scale-info", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", + "sp-staking", + "sp-std", ] [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "assert_matches", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", "serde", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", "serde", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", "frame-election-provider-support", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", "log", "pallet-election-provider-support-benchmarking", "parity-scale-codec", - "rand 0.7.3", + "rand 0.8.5", "scale-info", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-arithmetic", + "sp-core", + "sp-io", "sp-npos-elections", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "static_assertions", + "sp-runtime", + "sp-std", "strum", ] [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", "frame-election-provider-support", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-system", "parity-scale-codec", "sp-npos-elections", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", ] [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-io", "sp-npos-elections", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", "frame-election-provider-support", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-std", ] [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-authorship", + "pallet-session", "parity-scale-codec", "scale-info", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto", + "sp-core", + "sp-finality-grandpa", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", ] [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "enumflags2", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-authorship", "parity-scale-codec", "scale-info", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-std", ] [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keyring 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-io", + "sp-keyring", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-io", "sp-mmr-primitives", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-arithmetic", + "sp-core", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-std", ] [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", "frame-election-provider-support", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", "pallet-bags-list", "pallet-nomination-pools", "pallet-staking", "parity-scale-codec", "scale-info", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", + "sp-runtime-interface", + "sp-staking", + "sp-std", ] [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", + "sp-std", ] [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", "log", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-balances", "parity-scale-codec", "scale-info", "serde", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", + "sp-staking", + "sp-std", ] [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", "frame-election-provider-support", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", "pallet-babe", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-balances", "pallet-grandpa", "pallet-im-online", "pallet-offences", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-session", "pallet-staking", "parity-scale-codec", "scale-info", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", + "sp-staking", + "sp-std", ] [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "assert_matches", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-arithmetic", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "log", - "parity-scale-codec", - "scale-info", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "pallet-session" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "impl-trait-for-tuples", + "frame-benchmarking", + "frame-support", + "frame-system", "log", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", "parity-scale-codec", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-io", + "sp-runtime", + "sp-std", + "sp-weights", ] [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-support", + "frame-system", "impl-trait-for-tuples", "log", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "pallet-timestamp", "parity-scale-codec", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-trie", ] [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-session", "pallet-staking", - "rand 0.7.3", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "rand 0.8.5", + "sp-runtime", + "sp-session", + "sp-std", ] [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", "parity-scale-codec", "rand_chacha 0.2.2", "scale-info", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", "frame-election-provider-support", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", "log", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-authorship", + "pallet-session", "parity-scale-codec", "rand_chacha 0.2.2", "scale-info", "serde", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-std", ] [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -5854,309 +5903,233 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "log", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-arithmetic", ] [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "pallet-sudo" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "parity-scale-codec", - "scale-info", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-template" version = "0.1.0" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", "serde", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "pallet-timestamp" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "log", - "parity-scale-codec", - "scale-info", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-io", + "sp-runtime", ] [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-inherents", + "sp-io", + "sp-runtime", + "sp-std", + "sp-timestamp", ] [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "pallet-treasury", "parity-scale-codec", "scale-info", "serde", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "pallet-transaction-payment" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", "serde", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "jsonrpsee", - "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-rpc 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "pallet-transaction-payment-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "jsonrpsee", - "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-rpc 6.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate)", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-rpc", + "sp-runtime", + "sp-weights", ] [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-transaction-payment", "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "pallet-transaction-payment-rpc-runtime-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate)", + "sp-api", + "sp-runtime", + "sp-weights", ] [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "impl-trait-for-tuples", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-balances", "parity-scale-codec", "scale-info", "serde", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", + "sp-runtime", + "sp-std", ] [[package]] name = "pallet-xcm" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", "serde", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-runtime", + "sp-std", "xcm", "xcm-executor", ] [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "parity-scale-codec", "scale-info", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", + "sp-std", "xcm", "xcm-executor", ] @@ -6164,11 +6137,11 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.36#afe528af891f464b318293f183f6d3eefbc979b0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" dependencies = [ "cumulus-primitives-core", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", "parity-scale-codec", "scale-info", ] @@ -6186,48 +6159,48 @@ dependencies = [ "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-relay-chain-interface", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-benchmarking-cli 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-benchmarking", + "frame-benchmarking-cli", "jsonrpsee", "log", - "pallet-transaction-payment-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "pallet-transaction-payment-rpc", "parachain-template-runtime", "parity-scale-codec", "polkadot-cli", "polkadot-primitives", "polkadot-service", - "sc-basic-authorship 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-sysinfo 6.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "substrate-build-script-utils 3.0.0 (git+https://github.com/paritytech/substrate)", - "substrate-frame-rpc-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "try-runtime-cli 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-basic-authorship", + "sc-chain-spec", + "sc-cli", + "sc-client-api", + "sc-consensus", + "sc-executor", + "sc-network", + "sc-network-common", + "sc-rpc", + "sc-service", + "sc-sysinfo", + "sc-telemetry", + "sc-tracing", + "sc-transaction-pool", + "sc-transaction-pool-api", + "serde", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-consensus-aura", + "sp-core", + "sp-io", + "sp-keystore", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-timestamp", + "sp-transaction-pool", + "substrate-build-script-utils", + "substrate-frame-rpc-system", + "substrate-prometheus-endpoint", + "try-runtime-cli", "xcm", ] @@ -6244,25 +6217,25 @@ dependencies = [ "cumulus-primitives-core", "cumulus-primitives-timestamp", "cumulus-primitives-utility", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-executive 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-system-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "frame-try-runtime 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", "hex-literal", "log", - "pallet-aura 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "pallet-aura", + "pallet-authorship", + "pallet-balances", "pallet-collator-selection", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "pallet-sudo 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "pallet-session", + "pallet-sudo", "pallet-template", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", "pallet-xcm", "parachain-info", "parity-scale-codec", @@ -6270,18 +6243,18 @@ dependencies = [ "polkadot-runtime-common", "scale-info", "smallvec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", - "substrate-wasm-builder 5.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-api", + "sp-block-builder", + "sp-consensus-aura", + "sp-core", + "sp-inherents", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-transaction-pool", + "sp-version", + "substrate-wasm-builder", "xcm", "xcm-builder", "xcm-executor", @@ -6289,9 +6262,9 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a7511a0bec4a336b5929999d02b560d2439c993cccf98c26481484e811adc43" +checksum = "dd684a725651d9588ef21f140a328b6b4f64e646b2e931f3e6f14f75eedf9980" dependencies = [ "blake2", "crc32fast", @@ -6308,9 +6281,9 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.2.1" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "366e44391a8af4cfd6002ef6ba072bae071a96aafca98d7d448a34c5dca38b6a" +checksum = "c3840933452adf7b3b9145e27086a5a3376c619dca1a21b1e5a5af0d54979bed" dependencies = [ "arrayvec 0.7.2", "bitvec", @@ -6323,9 +6296,9 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.1.3" +version = "3.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9299338969a3d2f491d65f140b00ddec470858402f888af98e8642fb5e8965cd" +checksum = "86b26a931f824dd4eca30b3e43bb4f31cd5f0d3a403c5f5ff27106b805bfde7b" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -6369,7 +6342,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.5", + "parking_lot_core 0.9.6", ] [[package]] @@ -6388,9 +6361,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" +checksum = "ba1ef8814b5c993410bb3adfad7a5ed269563e4a2f90c41f5d85be7fb47133bf" dependencies = [ "cfg-if", "libc", @@ -6405,15 +6378,6 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba" -[[package]] -name = "pbkdf2" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd" -dependencies = [ - "crypto-mac 0.8.0", -] - [[package]] name = "pbkdf2" version = "0.8.0" @@ -6438,6 +6402,24 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "pem-rfc7468" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" version = "2.2.0" @@ -6446,9 +6428,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pest" -version = "2.5.1" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc8bed3549e0f9b0a2a78bf7c0018237a2cdf085eecbbc048e52612438e4e9d0" +checksum = "4ab62d2fa33726dbe6321cc97ef96d8cde531e3eeaf858a058de53a8a6d40d8f" dependencies = [ "thiserror", "ucd-trie", @@ -6456,9 +6438,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.5.1" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdc078600d06ff90d4ed238f0119d84ab5d43dbaad278b0e33a8820293b32344" +checksum = "8bf026e2d0581559db66d837fe5242320f525d85c76283c61f4d51a1238d65ea" dependencies = [ "pest", "pest_generator", @@ -6466,9 +6448,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.5.1" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a1af60b1c4148bb269006a750cff8e2ea36aff34d2d96cf7be0b14d1bed23c" +checksum = "2b27bd18aa01d91c8ed2b61ea23406a676b42d82609c6e2581fba42f0c15f17f" dependencies = [ "pest", "pest_meta", @@ -6479,13 +6461,13 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.5.1" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fec8605d59fc2ae0c6c1aefc0c7c7a9769732017c0ce07f7a9cfffa7b4404f20" +checksum = "9f02b677c1859756359fc9983c2e56a0237f18624a3789528804406b7e915e5d" dependencies = [ "once_cell", "pest", - "sha1", + "sha2 0.10.6", ] [[package]] @@ -6566,14 +6548,14 @@ checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" [[package]] name = "polkadot-approval-distribution" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "futures", + "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", - "polkadot-node-subsystem-util", "polkadot-primitives", "rand 0.8.5", "tracing-gum", @@ -6581,8 +6563,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "futures", "polkadot-node-network-protocol", @@ -6595,8 +6577,8 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "derive_more", "fatality", @@ -6610,16 +6592,16 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "rand 0.8.5", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-keystore", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-availability-recovery" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "fatality", "futures", @@ -6632,18 +6614,18 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "rand 0.8.5", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-cli" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "clap", - "frame-benchmarking-cli 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking-cli", "futures", "log", "polkadot-client", @@ -6651,65 +6633,65 @@ dependencies = [ "polkadot-node-metrics", "polkadot-performance-test", "polkadot-service", - "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-sysinfo 6.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keyring 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-build-script-utils 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-cli", + "sc-executor", + "sc-service", + "sc-sysinfo", + "sc-tracing", + "sp-core", + "sp-io", + "sp-keyring", + "substrate-build-script-utils", "thiserror", - "try-runtime-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "try-runtime-cli", ] [[package]] name = "polkadot-client" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "async-trait", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-benchmarking-cli 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-benchmarking-cli", + "frame-system", + "frame-system-rpc-runtime-api", "futures", - "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", "polkadot-core-primitives", "polkadot-node-core-parachains-inherent", "polkadot-primitives", "polkadot-runtime", "polkadot-runtime-common", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", + "sc-consensus", + "sc-executor", + "sc-service", + "sp-api", "sp-authority-discovery", "sp-beefy", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", "sp-consensus-babe", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keyring 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-finality-grandpa", + "sp-inherents", + "sp-keyring", "sp-mmr-primitives", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-storage", + "sp-timestamp", + "sp-transaction-pool", ] [[package]] name = "polkadot-collator-protocol" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "always-assert", "bitvec", @@ -6721,29 +6703,29 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-keystore", + "sp-runtime", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-core-primitives" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-runtime", + "sp-std", ] [[package]] name = "polkadot-dispute-distribution" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "derive_more", "fatality", @@ -6758,31 +6740,31 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network", + "sp-application-crypto", + "sp-keystore", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-erasure-coding" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", "polkadot-primitives", "reed-solomon-novelpoly", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-trie", "thiserror", ] [[package]] name = "polkadot-gossip-support" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "futures", "futures-timer", @@ -6792,17 +6774,17 @@ dependencies = [ "polkadot-primitives", "rand 0.8.5", "rand_chacha 0.3.1", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network", + "sp-application-crypto", + "sp-core", + "sp-keystore", "tracing-gum", ] [[package]] name = "polkadot-network-bridge" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "always-assert", "async-trait", @@ -6811,22 +6793,22 @@ dependencies = [ "futures", "parity-scale-codec", "parking_lot 0.12.1", + "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-subsystem", - "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network", + "sc-network-common", + "sp-consensus", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-collation-generation" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "futures", "parity-scale-codec", @@ -6835,16 +6817,16 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-maybe-compressed-blob", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "bitvec", "derive_more", @@ -6860,20 +6842,20 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-keystore", "schnorrkel", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto", + "sp-consensus", + "sp-consensus-slots", + "sp-runtime", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-av-store" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "bitvec", "futures", @@ -6892,8 +6874,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "bitvec", "fatality", @@ -6904,21 +6886,21 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "polkadot-statement-table", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "futures", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore", "thiserror", "tracing-gum", "wasm-timer", @@ -6926,42 +6908,42 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "async-trait", "futures", "futures-timer", "parity-scale-codec", "polkadot-node-core-pvf", + "polkadot-node-metrics", "polkadot-node-primitives", "polkadot-node-subsystem", - "polkadot-node-subsystem-util", "polkadot-parachain", "polkadot-primitives", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-maybe-compressed-blob", "tracing-gum", ] [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "futures", + "polkadot-node-metrics", "polkadot-node-subsystem", - "polkadot-node-subsystem-util", "polkadot-primitives", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", "sc-consensus-babe", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain", "tracing-gum", ] [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "futures", "futures-timer", @@ -6977,8 +6959,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "fatality", "futures", @@ -6989,15 +6971,15 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-keystore", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "async-trait", "futures", @@ -7005,17 +6987,16 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain", + "sp-inherents", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "bitvec", "fatality", @@ -7032,13 +7013,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "always-assert", "assert_matches", - "async-process", - "async-std", "cpu-time", "futures", "futures-timer", @@ -7049,24 +7028,25 @@ dependencies = [ "polkadot-parachain", "rand 0.8.5", "rayon", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-executor-wasmtime 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-executor", + "sc-executor-common", + "sc-executor-wasmtime", "slotmap", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-externalities", + "sp-io", + "sp-maybe-compressed-blob", + "sp-tracing", + "sp-wasm-interface", "tempfile", + "tokio", "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "futures", "polkadot-node-primitives", @@ -7074,21 +7054,21 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "futures", "lru", + "polkadot-node-metrics", "polkadot-node-subsystem", "polkadot-node-subsystem-types", - "polkadot-node-subsystem-util", "polkadot-primitives", "sp-consensus-babe", "tracing-gum", @@ -7096,8 +7076,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "lazy_static", "log", @@ -7106,16 +7086,16 @@ dependencies = [ "parking_lot 0.12.1", "polkadot-node-primitives", "polkadot-primitives", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network", + "sp-core", "thiserror", "tokio", ] [[package]] name = "polkadot-node-metrics" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "bs58", "futures", @@ -7124,17 +7104,17 @@ dependencies = [ "parity-scale-codec", "polkadot-primitives", "prioritized-metered-channel", - "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-cli", + "sc-service", + "sc-tracing", + "substrate-prometheus-endpoint", "tracing-gum", ] [[package]] name = "polkadot-node-network-protocol" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "async-trait", "derive_more", @@ -7147,8 +7127,8 @@ dependencies = [ "polkadot-primitives", "rand 0.8.5", "sc-authority-discovery", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network", + "sc-network-common", "strum", "thiserror", "tracing-gum", @@ -7156,8 +7136,8 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "bounded-vec", "futures", @@ -7166,20 +7146,20 @@ dependencies = [ "polkadot-primitives", "schnorrkel", "serde", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto", "sp-consensus-babe", "sp-consensus-vrf", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-keystore", + "sp-maybe-compressed-blob", "thiserror", "zstd", ] [[package]] name = "polkadot-node-subsystem" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -7188,8 +7168,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "async-trait", "derive_more", @@ -7200,24 +7180,25 @@ dependencies = [ "polkadot-node-primitives", "polkadot-primitives", "polkadot-statement-table", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network", "smallvec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", "sp-authority-discovery", "sp-consensus-babe", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "async-trait", "derive_more", "fatality", "futures", + "futures-channel", "itertools", "kvdb", "lru", @@ -7234,17 +7215,17 @@ dependencies = [ "polkadot-primitives", "prioritized-metered-channel", "rand 0.8.5", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-application-crypto", + "sp-core", + "sp-keystore", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-overseer" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "async-trait", "futures", @@ -7257,35 +7238,35 @@ dependencies = [ "polkadot-node-primitives", "polkadot-node-subsystem-types", "polkadot-primitives", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", + "sp-api", + "sp-core", "tikv-jemalloc-ctl", "tracing-gum", ] [[package]] name = "polkadot-parachain" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "derive_more", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", "parity-scale-codec", "polkadot-core-primitives", "scale-info", "serde", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-runtime", + "sp-std", ] [[package]] name = "polkadot-performance-test" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ - "env_logger", + "env_logger 0.9.3", "kusama-runtime", "log", "polkadot-erasure-coding", @@ -7297,8 +7278,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "bitvec", "hex-literal", @@ -7307,73 +7288,73 @@ dependencies = [ "polkadot-parachain", "scale-info", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", "sp-authority-discovery", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-staking", + "sp-std", ] [[package]] name = "polkadot-rpc" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "beefy-gadget", "beefy-gadget-rpc", "jsonrpsee", "mmr-rpc", - "pallet-transaction-payment-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-transaction-payment-rpc", "polkadot-primitives", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-chain-spec", + "sc-client-api", "sc-consensus-babe", "sc-consensus-babe-rpc", "sc-consensus-epochs", "sc-finality-grandpa", "sc-finality-grandpa-rpc", - "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-rpc", "sc-sync-state-rpc", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-transaction-pool-api", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", "sp-consensus-babe", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-frame-rpc-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore", + "sp-runtime", + "substrate-frame-rpc-system", "substrate-state-trie-migration-rpc", ] [[package]] name = "polkadot-runtime" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "bitvec", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", "frame-election-provider-support", - "frame-executive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-try-runtime 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", "hex-literal", "log", "pallet-authority-discovery", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-authorship", "pallet-babe", "pallet-bags-list", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-balances", "pallet-bounties", "pallet-child-bounties", "pallet-collective", @@ -7396,14 +7377,14 @@ dependencies = [ "pallet-preimage", "pallet-proxy", "pallet-scheduler", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-session", "pallet-session-benchmarking", "pallet-staking", "pallet-staking-reward-curve", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-timestamp", "pallet-tips", - "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", "pallet-utility", "pallet-vesting", @@ -7418,25 +7399,25 @@ dependencies = [ "serde", "serde_derive", "smallvec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", "sp-authority-discovery", "sp-beefy", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-block-builder", "sp-consensus-babe", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-inherents", + "sp-io", "sp-mmr-primitives", "sp-npos-elections", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-transaction-pool", + "sp-version", "static_assertions", - "substrate-wasm-builder 5.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-wasm-builder", "xcm", "xcm-builder", "xcm-executor", @@ -7444,28 +7425,28 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "bitvec", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", "frame-election-provider-support", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", "impl-trait-for-tuples", "libsecp256k1", "log", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-authorship", "pallet-babe", "pallet-bags-list", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-balances", "pallet-beefy-mmr", "pallet-election-provider-multi-phase", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-session", "pallet-staking", "pallet-staking-reward-fn", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-timestamp", + "pallet-transaction-payment", "pallet-treasury", "pallet-vesting", "parity-scale-codec", @@ -7476,65 +7457,65 @@ dependencies = [ "serde", "serde_derive", "slot-range-helper", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", "sp-beefy", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-inherents", + "sp-io", "sp-npos-elections", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", "static_assertions", "xcm", ] [[package]] name = "polkadot-runtime-constants" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", "polkadot-primitives", "polkadot-runtime-common", "smallvec", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-runtime", + "sp-weights", ] [[package]] name = "polkadot-runtime-metrics" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "bs58", "parity-scale-codec", "polkadot-primitives", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std", + "sp-tracing", ] [[package]] name = "polkadot-runtime-parachains" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "bitflags", "bitvec", "derive_more", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", + "frame-system", "log", "pallet-authority-discovery", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-authorship", "pallet-babe", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-balances", + "pallet-session", "pallet-staking", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-timestamp", "pallet-vesting", "parity-scale-codec", "polkadot-primitives", @@ -7544,16 +7525,16 @@ dependencies = [ "rustc-hex", "scale-info", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-inherents", + "sp-io", + "sp-keystore", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", "static_assertions", "xcm", "xcm-executor", @@ -7561,13 +7542,13 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "async-trait", "beefy-gadget", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system-rpc-runtime-api", "futures", "hex-literal", "kusama-runtime", @@ -7578,7 +7559,7 @@ dependencies = [ "pallet-babe", "pallet-im-online", "pallet-staking", - "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-transaction-payment-rpc-runtime-api", "parity-db", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", @@ -7617,49 +7598,49 @@ dependencies = [ "polkadot-statement-distribution", "rococo-runtime", "sc-authority-discovery", - "sc-basic-authorship 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-basic-authorship", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-client-db", + "sc-consensus", "sc-consensus-babe", "sc-consensus-slots", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-executor", "sc-finality-grandpa", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-keystore", + "sc-network", + "sc-network-common", + "sc-offchain", + "sc-service", "sc-sync-state-rpc", - "sc-sysinfo 6.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-sysinfo", + "sc-telemetry", + "sc-transaction-pool", "serde", "serde_json", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", "sp-authority-discovery", "sp-beefy", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", "sp-consensus-babe", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-finality-grandpa", + "sp-inherents", + "sp-io", + "sp-keystore", "sp-mmr-primitives", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-state-machine", + "sp-storage", + "sp-timestamp", + "sp-transaction-pool", + "sp-trie", + "substrate-prometheus-endpoint", "thiserror", "tracing-gum", "westend-runtime", @@ -7667,8 +7648,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "arrayvec 0.5.2", "fatality", @@ -7680,20 +7661,20 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-keystore", + "sp-staking", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-statement-table" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "parity-scale-codec", "polkadot-primitives", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", ] [[package]] @@ -7721,6 +7702,17 @@ dependencies = [ "universal-hash", ] +[[package]] +name = "polyval" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eebcc4aa140b9abd2bc40d9c3f7ccec842679cd79045ac3a7ac698c1a064b7cd" +dependencies = [ + "cpuid-bool", + "opaque-debug 0.3.0", + "universal-hash", +] + [[package]] name = "polyval" version = "0.5.3" @@ -7741,9 +7733,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "predicates" -version = "2.1.4" +version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f54fc5dc63ed3bbf19494623db4f3af16842c0d975818e469022d09e53f0aa05" +checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" dependencies = [ "difflib", "float-cmp", @@ -7771,9 +7763,9 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c8992a85d8e93a28bdf76137db888d3874e3b230dee5ed8bebac4c9f7617773" +checksum = "e97e3215779627f01ee256d2fad52f3d95e8e1c11e9fc6fd08f7cd455d5d5c78" dependencies = [ "proc-macro2", "syn", @@ -7810,13 +7802,12 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" +checksum = "66618389e4ec1c7afe67d51a9bf34ff9236480f8d51e7489b7d5ab0303c13f34" dependencies = [ "once_cell", - "thiserror", - "toml", + "toml_edit", ] [[package]] @@ -7845,9 +7836,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.49" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5" +checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2" dependencies = [ "unicode-ident", ] @@ -7891,9 +7882,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c01db6702aa05baa3f57dec92b8eeeeb4cb19e894e73996b32a4093289e54592" +checksum = "21dc42e00223fc37204bd4aa177e69420c604ca4a183209a8f9de30c6d934698" dependencies = [ "bytes", "prost-derive", @@ -7901,9 +7892,9 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb5320c680de74ba083512704acb90fe00f28f79207286a848e730c45dd73ed6" +checksum = "a3f8ad728fb08fe212df3c05169e940fbb6d9d16a877ddde14644a983ba2012e" dependencies = [ "bytes", "heck", @@ -7923,9 +7914,9 @@ dependencies = [ [[package]] name = "prost-codec" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "011ae9ff8359df7915f97302d591cdd9e0e27fbd5a4ddc5bd13b71079bb20987" +checksum = "0dc34979ff898b6e141106178981ce2596c387ea6e62533facfc61a37fc879c0" dependencies = [ "asynchronous-codec", "bytes", @@ -7936,9 +7927,9 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8842bad1a5419bca14eac663ba798f6bc19c413c2fdceb5f3ba3b0932d96720" +checksum = "8bda8c0881ea9f722eb9629376db3d0b903b462477c1aafcb0566610ac28ac5d" dependencies = [ "anyhow", "itertools", @@ -7949,9 +7940,9 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "017f79637768cde62820bc2d4fe0e45daaa027755c323ad077767c6c5f173091" +checksum = "a5e0526209433e96d83d750dd81a99118edbc55739e7e61a46764fd2ad537788" dependencies = [ "bytes", "prost", @@ -7983,6 +7974,24 @@ dependencies = [ "pin-project-lite 0.1.12", ] +[[package]] +name = "quinn-proto" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4ced82a24bb281af338b9e8f94429b6eca01b4e66d899f40031f074e74c9" +dependencies = [ + "bytes", + "rand 0.8.5", + "ring", + "rustc-hash", + "rustls 0.20.8", + "slab", + "thiserror", + "tinyvec", + "tracing", + "webpki 0.22.0", +] + [[package]] name = "quote" version = "1.0.23" @@ -8009,7 +8018,6 @@ dependencies = [ "rand_chacha 0.2.2", "rand_core 0.5.1", "rand_hc", - "rand_pcg 0.2.1", ] [[package]] @@ -8080,15 +8088,6 @@ dependencies = [ "rand_core 0.5.1", ] -[[package]] -name = "rand_pcg" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" -dependencies = [ - "rand_core 0.5.1", -] - [[package]] name = "rand_pcg" version = "0.3.1" @@ -8116,9 +8115,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.10.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cac410af5d00ab6884528b4ab69d1e8e146e8d471201800fa1b4524126de6ad3" +checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b" dependencies = [ "crossbeam-channel", "crossbeam-deque", @@ -8126,6 +8125,31 @@ dependencies = [ "num_cpus", ] +[[package]] +name = "rcgen" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" +dependencies = [ + "pem", + "ring", + "time 0.3.17", + "x509-parser 0.13.2", + "yasna", +] + +[[package]] +name = "rcgen" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" +dependencies = [ + "pem", + "ring", + "time 0.3.17", + "yasna", +] + [[package]] name = "redox_syscall" version = "0.2.16" @@ -8193,9 +8217,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.7.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a" +checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" dependencies = [ "aho-corasick", "memchr", @@ -8274,22 +8298,23 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "beefy-merkle-tree", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-executive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", "hex-literal", "log", "pallet-authority-discovery", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-authorship", "pallet-babe", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-balances", "pallet-beefy", "pallet-beefy-mmr", "pallet-bounties", @@ -8310,15 +8335,15 @@ dependencies = [ "pallet-proxy", "pallet-recovery", "pallet-scheduler", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-session", "pallet-society", "pallet-staking", "pallet-state-trie-migration", - "pallet-sudo 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-sudo", + "pallet-timestamp", "pallet-tips", - "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", "pallet-utility", "pallet-vesting", @@ -8334,24 +8359,24 @@ dependencies = [ "serde", "serde_derive", "smallvec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", "sp-authority-discovery", "sp-beefy", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-block-builder", "sp-consensus-babe", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-inherents", + "sp-io", "sp-mmr-primitives", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-transaction-pool", + "sp-version", "static_assertions", - "substrate-wasm-builder 5.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "substrate-wasm-builder", "xcm", "xcm-builder", "xcm-executor", @@ -8359,16 +8384,16 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", "polkadot-primitives", "polkadot-runtime-common", "smallvec", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-runtime", + "sp-weights", ] [[package]] @@ -8382,19 +8407,30 @@ dependencies = [ "winapi", ] +[[package]] +name = "rtcp" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1919efd6d4a6a85d13388f9487549bb8e359f17198cc03ffd72f79b553873691" +dependencies = [ + "bytes", + "thiserror", + "webrtc-util", +] + [[package]] name = "rtnetlink" version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "322c53fd76a18698f1c27381d58091de3a043d356aa5bd0d510608b565f469a0" dependencies = [ - "async-global-executor", "futures", "log", "netlink-packet-route", "netlink-proto", "nix", "thiserror", + "tokio", ] [[package]] @@ -8407,6 +8443,20 @@ dependencies = [ "winapi", ] +[[package]] +name = "rtp" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2a095411ff00eed7b12e4c6a118ba984d113e1079582570d56a5ee723f11f80" +dependencies = [ + "async-trait", + "bytes", + "rand 0.8.5", + "serde", + "thiserror", + "webrtc-util", +] + [[package]] name = "rustc-demangle" version = "0.1.21" @@ -8434,6 +8484,15 @@ dependencies = [ "semver 1.0.16", ] +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + [[package]] name = "rustix" version = "0.35.13" @@ -8450,13 +8509,13 @@ dependencies = [ [[package]] name = "rustix" -version = "0.36.5" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3807b5d10909833d3e9acd1eb5fb988f79376ff10fce42937de71a449c4c588" +checksum = "d4fdebc4b395b7fbb9ab11e462e20ed9051e7b16e42d24042c776eca0ac81b03" dependencies = [ "bitflags", "errno", - "io-lifetimes 1.0.3", + "io-lifetimes 1.0.4", "libc", "linux-raw-sys 0.1.4", "windows-sys 0.42.0", @@ -8464,14 +8523,27 @@ dependencies = [ [[package]] name = "rustls" -version = "0.20.7" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +dependencies = [ + "base64 0.13.1", + "log", + "ring", + "sct 0.6.1", + "webpki 0.21.4", +] + +[[package]] +name = "rustls" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c" +checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" dependencies = [ "log", "ring", - "sct", - "webpki", + "sct 0.7.0", + "webpki 0.22.0", ] [[package]] @@ -8488,11 +8560,11 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55" +checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" dependencies = [ - "base64", + "base64 0.21.0", ] [[package]] @@ -8530,29 +8602,18 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "log", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", -] - -[[package]] -name = "sc-allocator" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "log", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core", + "sp-wasm-interface", "thiserror", ] [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "async-trait", "futures", @@ -8563,144 +8624,77 @@ dependencies = [ "parity-scale-codec", "prost", "prost-build", - "rand 0.7.3", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "rand 0.8.5", + "sc-client-api", + "sc-network-common", + "sp-api", "sp-authority-discovery", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain", + "sp-core", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "futures", - "futures-timer", - "log", - "parity-scale-codec", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-proposer-metrics 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "sc-basic-authorship" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "futures", "futures-timer", "log", "parity-scale-codec", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-proposer-metrics 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "sc-block-builder" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "parity-scale-codec", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-block-builder", + "sc-client-api", + "sc-proposer-metrics", + "sc-telemetry", + "sc-transaction-pool-api", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-inherents", + "sp-runtime", + "substrate-prometheus-endpoint", ] [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "parity-scale-codec", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "sc-chain-spec" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "impl-trait-for-tuples", - "memmap2", "parity-scale-codec", - "sc-chain-spec-derive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "serde", - "serde_json", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", ] [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "memmap2", - "sc-chain-spec-derive 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-chain-spec-derive", + "sc-network-common", + "sc-telemetry", "serde", "serde_json", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "sc-chain-spec-derive" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", + "sp-core", + "sp-runtime", ] [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -8711,47 +8705,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "array-bytes 4.2.0", - "chrono", - "clap", - "fdlimit", - "futures", - "libp2p", - "log", - "names", - "parity-scale-codec", - "rand 0.7.3", - "regex", - "rpassword", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "serde", - "serde_json", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keyring 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-panic-handler 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", - "tiny-bip39 0.8.2", - "tokio", -] - -[[package]] -name = "sc-cli" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "array-bytes 4.2.0", "chrono", @@ -8765,112 +8719,59 @@ dependencies = [ "rand 0.8.5", "regex", "rpassword", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-client-api", + "sc-client-db", + "sc-keystore", + "sc-network", + "sc-network-common", + "sc-service", + "sc-telemetry", + "sc-tracing", + "sc-utils", "serde", "serde_json", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-keyring 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-panic-handler 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", - "thiserror", - "tiny-bip39 1.0.0", + "sp-blockchain", + "sp-core", + "sp-keyring", + "sp-keystore", + "sp-panic-handler", + "sp-runtime", + "sp-version", + "thiserror", + "tiny-bip39", "tokio", ] [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "fnv", - "futures", - "hash-db", - "log", - "parity-scale-codec", - "parking_lot 0.12.1", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "sc-client-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "fnv", "futures", "log", "parity-scale-codec", "parking_lot 0.12.1", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "sc-client-db" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "hash-db", - "kvdb", - "kvdb-memorydb", - "kvdb-rocksdb", - "linked-hash-map", - "log", - "parity-db", - "parity-scale-codec", - "parking_lot 0.12.1", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-state-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-executor", + "sc-transaction-pool-api", + "sc-utils", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-database", + "sp-externalities", + "sp-keystore", + "sp-runtime", + "sp-state-machine", + "sp-storage", + "substrate-prometheus-endpoint", ] [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "hash-db", "kvdb", @@ -8881,46 +8782,21 @@ dependencies = [ "parity-db", "parity-scale-codec", "parking_lot 0.12.1", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-state-db 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "sc-consensus" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "async-trait", - "futures", - "futures-timer", - "libp2p", - "log", - "mockall", - "parking_lot 0.12.1", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", + "sc-client-api", + "sc-state-db", + "sp-arithmetic", + "sp-blockchain", + "sp-core", + "sp-database", + "sp-runtime", + "sp-state-machine", + "sp-trie", ] [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "async-trait", "futures", @@ -8929,55 +8805,55 @@ dependencies = [ "log", "mockall", "parking_lot 0.12.1", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-client-api", + "sc-utils", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "sp-state-machine", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "async-trait", "futures", "log", "parity-scale-codec", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-block-builder", + "sc-client-api", + "sc-consensus", "sc-consensus-slots", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus-aura 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-telemetry", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "async-trait", - "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "fork-tree", "futures", "log", "merlin", @@ -8986,135 +8862,107 @@ dependencies = [ "num-traits", "parity-scale-codec", "parking_lot 0.12.1", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", + "sc-consensus", "sc-consensus-epochs", "sc-consensus-slots", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-keystore", + "sc-telemetry", "schnorrkel", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", + "sp-application-crypto", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", "sp-consensus-babe", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-consensus-slots", "sp-consensus-vrf", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "futures", "jsonrpsee", "sc-consensus-babe", "sc-consensus-epochs", - "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-rpc-api", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", + "sp-application-crypto", + "sp-blockchain", + "sp-consensus", "sp-consensus-babe", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-keystore", + "sp-runtime", "thiserror", ] [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "fork-tree", "parity-scale-codec", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", + "sc-consensus", + "sp-blockchain", + "sp-runtime", ] [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "async-trait", "futures", "futures-timer", "log", "parity-scale-codec", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", -] - -[[package]] -name = "sc-executor" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "lru", - "parity-scale-codec", - "parking_lot 0.12.1", - "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-executor-wasmi 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-executor-wasmtime 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-panic-handler 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "tracing", - "wasmi", + "sc-client-api", + "sc-consensus", + "sc-telemetry", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-consensus-slots", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", ] [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "lru", "parity-scale-codec", "parking_lot 0.12.1", - "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-executor-wasmi 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-executor-wasmtime 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-panic-handler 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate)", + "sc-executor-common", + "sc-executor-wasmi", + "sc-executor-wasmtime", + "sp-api", + "sp-core", + "sp-externalities", + "sp-io", + "sp-panic-handler", + "sp-runtime-interface", + "sp-trie", + "sp-version", + "sp-wasm-interface", "tracing", "wasmi", ] @@ -9122,24 +8970,11 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", - "wasm-instrument", - "wasmi", -] - -[[package]] -name = "sc-executor-common" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate)", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate)", - "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate)", + "sc-allocator", + "sp-maybe-compressed-blob", + "sp-wasm-interface", "thiserror", "wasm-instrument", "wasmi", @@ -9148,241 +8983,132 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "log", - "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "wasmi", -] - -[[package]] -name = "sc-executor-wasmi" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "log", - "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate)", - "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate)", + "sc-allocator", + "sc-executor-common", + "sp-runtime-interface", + "sp-wasm-interface", "wasmi", ] [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "cfg-if", "libc", "log", "once_cell", "rustix 0.35.13", - "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "wasmtime", -] - -[[package]] -name = "sc-executor-wasmtime" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "cfg-if", - "libc", - "log", - "once_cell", - "rustix 0.35.13", - "sc-allocator 4.1.0-dev (git+https://github.com/paritytech/substrate)", - "sc-executor-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate)", + "sc-allocator", + "sc-executor-common", + "sp-runtime-interface", + "sp-wasm-interface", "wasmtime", ] [[package]] name = "sc-finality-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "ahash", "array-bytes 4.2.0", "async-trait", "dyn-clone", "finality-grandpa", - "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "fork-tree", "futures", "futures-timer", "log", "parity-scale-codec", "parking_lot 0.12.1", "rand 0.8.5", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-consensus", + "sc-network", + "sc-network-common", "sc-network-gossip", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-telemetry", + "sc-utils", "serde_json", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-finality-grandpa", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "sc-finality-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "finality-grandpa", "futures", "jsonrpsee", "log", "parity-scale-codec", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", "sc-finality-grandpa", - "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-rpc", "serde", - "serde_json", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain", + "sp-core", + "sp-runtime", "thiserror", ] [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "ansi_term", "futures", "futures-timer", "log", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "sc-informant" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "ansi_term", - "futures", - "futures-timer", - "log", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sc-client-api", + "sc-network-common", + "sp-blockchain", + "sp-runtime", ] [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "array-bytes 4.2.0", "async-trait", "parking_lot 0.12.1", "serde_json", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", -] - -[[package]] -name = "sc-keystore" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "array-bytes 4.2.0", - "async-trait", - "parking_lot 0.12.1", - "serde_json", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate)", + "sp-application-crypto", + "sp-core", + "sp-keystore", "thiserror", ] [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "array-bytes 4.2.0", - "async-trait", - "asynchronous-codec", - "bitflags", - "bytes", - "cid", - "either", - "fnv", - "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "futures", - "futures-timer", - "ip_network", - "libp2p", - "linked-hash-map", - "linked_hash_set", - "log", - "lru", - "parity-scale-codec", - "parking_lot 0.12.1", - "pin-project", - "prost", - "rand 0.7.3", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "serde", - "serde_json", - "smallvec", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", - "unsigned-varint", - "zeroize", -] - -[[package]] -name = "sc-network" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "array-bytes 4.2.0", "async-trait", "asynchronous-codec", + "backtrace", "bytes", "either", "fnv", @@ -9396,21 +9122,21 @@ dependencies = [ "parking_lot 0.12.1", "pin-project", "rand 0.8.5", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-block-builder", + "sc-client-api", + "sc-consensus", + "sc-network-common", + "sc-peerset", + "sc-utils", "serde", "serde_json", "smallvec", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-runtime", + "substrate-prometheus-endpoint", "thiserror", "unsigned-varint", "zeroize", @@ -9419,27 +9145,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "cid", - "futures", - "libp2p", - "log", - "prost", - "prost-build", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", - "unsigned-varint", - "void", -] - -[[package]] -name = "sc-network-bitswap" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "cid", "futures", @@ -9447,10 +9153,10 @@ dependencies = [ "log", "prost", "prost-build", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sc-client-api", + "sc-network-common", + "sp-blockchain", + "sp-runtime", "thiserror", "unsigned-varint", ] @@ -9458,7 +9164,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "async-trait", "bitflags", @@ -9469,48 +9175,22 @@ dependencies = [ "linked_hash_set", "parity-scale-codec", "prost-build", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-consensus", + "sc-peerset", "serde", "smallvec", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", -] - -[[package]] -name = "sc-network-common" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "async-trait", - "bitflags", - "bytes", - "futures", - "futures-timer", - "libp2p", - "linked_hash_set", - "parity-scale-codec", - "prost-build", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "serde", - "smallvec", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-blockchain", + "sp-consensus", + "sp-finality-grandpa", + "sp-runtime", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "ahash", "futures", @@ -9518,17 +9198,17 @@ dependencies = [ "libp2p", "log", "lru", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-network-common", + "sc-peerset", + "sp-runtime", + "substrate-prometheus-endpoint", "tracing", ] [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "array-bytes 4.2.0", "futures", @@ -9537,44 +9217,23 @@ dependencies = [ "parity-scale-codec", "prost", "prost-build", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", -] - -[[package]] -name = "sc-network-light" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "array-bytes 4.2.0", - "futures", - "libp2p", - "log", - "parity-scale-codec", - "prost", - "prost-build", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sc-client-api", + "sc-network-common", + "sc-peerset", + "sp-blockchain", + "sp-core", + "sp-runtime", "thiserror", ] [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "array-bytes 4.2.0", "async-trait", - "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "fork-tree", "futures", "libp2p", "log", @@ -9583,125 +9242,45 @@ dependencies = [ "parity-scale-codec", "prost", "prost-build", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", + "sc-consensus", + "sc-network-common", + "sc-peerset", + "sc-utils", "smallvec", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", -] - -[[package]] -name = "sc-network-sync" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "array-bytes 4.2.0", - "async-trait", - "fork-tree 3.0.0 (git+https://github.com/paritytech/substrate)", - "futures", - "libp2p", - "log", - "lru", - "mockall", - "parity-scale-codec", - "prost", - "prost-build", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "smallvec", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-finality-grandpa 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-finality-grandpa", + "sp-runtime", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "array-bytes 4.2.0", "futures", - "hex", "libp2p", "log", "parity-scale-codec", "pin-project", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "sc-network-transactions" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "array-bytes 4.2.0", - "futures", - "libp2p", - "log", - "parity-scale-codec", - "pin-project", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-network-common", + "sc-peerset", + "sc-utils", + "sp-consensus", + "sp-runtime", + "substrate-prometheus-endpoint", ] [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "array-bytes 4.2.0", - "bytes", - "fnv", - "futures", - "futures-timer", - "hyper", - "hyper-rustls", - "libp2p", - "num_cpus", - "once_cell", - "parity-scale-codec", - "parking_lot 0.12.1", - "rand 0.7.3", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "threadpool", - "tracing", -] - -[[package]] -name = "sc-offchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "array-bytes 4.2.0", "bytes", @@ -9716,14 +9295,14 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", "rand 0.8.5", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-peerset 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sc-client-api", + "sc-network-common", + "sc-peerset", + "sc-utils", + "sp-api", + "sp-core", + "sp-offchain", + "sp-runtime", "threadpool", "tracing", ] @@ -9731,25 +9310,12 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "futures", - "libp2p", - "log", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "serde_json", - "wasm-timer", -] - -[[package]] -name = "sc-peerset" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "futures", "libp2p", "log", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-utils", "serde_json", "wasm-timer", ] @@ -9757,148 +9323,70 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "log", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "sc-proposer-metrics" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "log", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "substrate-prometheus-endpoint", ] [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "futures", - "hash-db", "jsonrpsee", "log", "parity-scale-codec", "parking_lot 0.12.1", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-rpc-api", + "sc-tracing", + "sc-transaction-pool-api", + "sc-utils", "serde_json", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-rpc 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "sc-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "futures", - "jsonrpsee", - "log", - "parity-scale-codec", - "parking_lot 0.12.1", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "serde_json", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-rpc 6.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "sc-rpc-api" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "futures", - "jsonrpsee", - "log", - "parity-scale-codec", - "parking_lot 0.12.1", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "scale-info", - "serde", - "serde_json", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-rpc 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-keystore", + "sp-offchain", + "sp-rpc", + "sp-runtime", + "sp-session", + "sp-version", ] [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "jsonrpsee", "parity-scale-codec", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-chain-spec", + "sc-transaction-pool-api", "scale-info", "serde", "serde_json", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-rpc 6.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core", + "sp-rpc", + "sp-runtime", + "sp-version", "thiserror", ] [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "futures", - "http", - "jsonrpsee", - "log", - "serde_json", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "tokio", - "tower", - "tower-http", -] - -[[package]] -name = "sc-rpc-server" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "http", "jsonrpsee", "log", "serde_json", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "substrate-prometheus-endpoint", "tokio", "tower", "tower-http", @@ -9907,26 +9395,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "futures", - "hex", - "jsonrpsee", - "parity-scale-codec", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", -] - -[[package]] -name = "sc-rpc-spec-v2" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "array-bytes 4.2.0", "futures", @@ -9936,15 +9405,15 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.1", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-chain-spec", + "sc-client-api", + "sc-transaction-pool-api", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-runtime", + "sp-version", "thiserror", "tokio-stream", ] @@ -9952,77 +9421,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "async-trait", - "directories", - "exit-future", - "futures", - "futures-timer", - "hash-db", - "jsonrpsee", - "log", - "parity-scale-codec", - "parking_lot 0.12.1", - "pin-project", - "rand 0.7.3", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-informant 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network-bitswap 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network-light 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network-sync 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-network-transactions 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-rpc-server 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-rpc-spec-v2 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-sysinfo 6.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "serde", - "serde_json", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-transaction-storage-proof 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "static_init 1.0.3", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "tempfile", - "thiserror", - "tokio", - "tracing", - "tracing-futures", -] - -[[package]] -name = "sc-service" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "async-trait", "directories", @@ -10035,48 +9434,48 @@ dependencies = [ "parking_lot 0.12.1", "pin-project", "rand 0.8.5", - "sc-block-builder 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-client-db 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-informant 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-keystore 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-network 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-network-bitswap 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-network-common 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-network-light 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-network-sync 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-network-transactions 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-rpc 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-rpc-server 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-rpc-spec-v2 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-sysinfo 6.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-tracing 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-client-db", + "sc-consensus", + "sc-executor", + "sc-informant", + "sc-keystore", + "sc-network", + "sc-network-bitswap", + "sc-network-common", + "sc-network-light", + "sc-network-sync", + "sc-network-transactions", + "sc-offchain", + "sc-rpc", + "sc-rpc-server", + "sc-rpc-spec-v2", + "sc-sysinfo", + "sc-telemetry", + "sc-tracing", + "sc-transaction-pool", + "sc-transaction-pool-api", + "sc-utils", "serde", "serde_json", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-transaction-storage-proof 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-api", + "sp-blockchain", + "sp-consensus", + "sp-core", + "sp-externalities", + "sp-keystore", + "sp-runtime", + "sp-session", + "sp-state-machine", + "sp-storage", + "sp-transaction-pool", + "sp-transaction-storage-proof", + "sp-trie", + "sp-version", "static_init 1.0.3", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "substrate-prometheus-endpoint", "tempfile", "thiserror", "tokio", @@ -10087,105 +9486,56 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.1", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "sc-state-db" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "log", - "parity-scale-codec", - "parking_lot 0.12.1", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core", ] [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "jsonrpsee", "parity-scale-codec", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-chain-spec", + "sc-client-api", "sc-consensus-babe", "sc-consensus-epochs", "sc-finality-grandpa", "serde", "serde_json", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-blockchain", + "sp-runtime", "thiserror", ] [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "futures", - "libc", - "log", - "rand 0.7.3", - "rand_pcg 0.2.1", - "regex", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "serde", - "serde_json", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "sc-sysinfo" -version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "futures", "libc", "log", "rand 0.8.5", - "rand_pcg 0.3.1", + "rand_pcg", "regex", - "sc-telemetry 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "serde", - "serde_json", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "sc-telemetry" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "chrono", - "futures", - "libp2p", - "log", - "parking_lot 0.12.1", - "pin-project", - "rand 0.7.3", + "sc-telemetry", "serde", "serde_json", - "thiserror", - "wasm-timer", + "sp-core", + "sp-io", + "sp-std", ] [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "chrono", "futures", @@ -10194,6 +9544,7 @@ dependencies = [ "parking_lot 0.12.1", "pin-project", "rand 0.8.5", + "sc-utils", "serde", "serde_json", "thiserror", @@ -10203,7 +9554,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "ansi_term", "atty", @@ -10215,47 +9566,16 @@ dependencies = [ "parking_lot 0.12.1", "regex", "rustc-hash", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-rpc-server 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-tracing-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", + "sc-rpc-server", + "sc-tracing-proc-macro", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-rpc 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", - "tracing", - "tracing-log", - "tracing-subscriber", -] - -[[package]] -name = "sc-tracing" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "ansi_term", - "atty", - "chrono", - "lazy_static", - "libc", - "log", - "once_cell", - "parking_lot 0.12.1", - "regex", - "rustc-hash", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-rpc-server 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-tracing-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-rpc 6.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate)", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-rpc", + "sp-runtime", + "sp-tracing", "thiserror", "tracing", "tracing-log", @@ -10265,7 +9585,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -10273,47 +9593,10 @@ dependencies = [ "syn", ] -[[package]] -name = "sc-tracing-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "sc-transaction-pool" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "async-trait", - "futures", - "futures-timer", - "linked-hash-map", - "log", - "parity-scale-codec", - "parking_lot 0.12.1", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", -] - [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "async-trait", "futures", @@ -10322,66 +9605,40 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.1", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sc-utils 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sc-client-api", + "sc-transaction-pool-api", + "sc-utils", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "substrate-prometheus-endpoint 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sp-api", + "sp-blockchain", + "sp-core", + "sp-runtime", + "sp-tracing", + "sp-transaction-pool", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "async-trait", "futures", "log", "serde", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", -] - -[[package]] -name = "sc-transaction-pool-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "async-trait", - "futures", - "log", - "serde", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-blockchain", + "sp-runtime", "thiserror", ] [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "futures", - "futures-timer", - "lazy_static", - "log", - "parking_lot 0.12.1", - "prometheus", -] - -[[package]] -name = "sc-utils" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ + "backtrace", "futures", "futures-timer", "lazy_static", @@ -10418,12 +9675,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.20" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" +checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" dependencies = [ - "lazy_static", - "windows-sys 0.36.1", + "windows-sys 0.42.0", ] [[package]] @@ -10456,6 +9712,16 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" +[[package]] +name = "sct" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "sct" version = "0.7.0" @@ -10466,6 +9732,18 @@ dependencies = [ "untrusted", ] +[[package]] +name = "sdp" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d22a5ef407871893fd72b4562ee15e4742269b173959db4b8df6f538c414e13" +dependencies = [ + "rand 0.8.5", + "substring", + "thiserror", + "url", +] + [[package]] name = "sec1" version = "0.3.0" @@ -10482,9 +9760,9 @@ dependencies = [ [[package]] name = "secp256k1" -version = "0.24.2" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9512ffd81e3a3503ed401f79c33168b9148c75038956039166cd750eaa037c3" +checksum = "6b1629c9c557ef9b293568b338dddfc8208c98a18c59d722a9d53f859d9c9b62" dependencies = [ "secp256k1-sys", ] @@ -10509,9 +9787,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.7.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" +checksum = "7c4437699b6d34972de58652c68b98cb5b53a4199ab126db8e20ec8ded29a721" dependencies = [ "bitflags", "core-foundation", @@ -10522,9 +9800,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.6.1" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" dependencies = [ "core-foundation-sys", "libc", @@ -10556,18 +9834,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.151" +version = "1.0.152" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fed41fc1a24994d044e6db6935e69511a1153b52c15eb42493b26fa87feba0" +checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.151" +version = "1.0.152" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "255abe9a125a985c05190d687b320c12f9b1f0b99445e608c21ba0782c719ad8" +checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" dependencies = [ "proc-macro2", "quote", @@ -10585,15 +9863,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_nanos" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e44969a61f5d316be20a42ff97816efb3b407a924d06824c3d8a49fa8450de0e" -dependencies = [ - "serde", -] - [[package]] name = "sha-1" version = "0.9.8" @@ -10607,17 +9876,6 @@ dependencies = [ "opaque-debug 0.3.0", ] -[[package]] -name = "sha1" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.6", -] - [[package]] name = "sha2" version = "0.8.2" @@ -10679,16 +9937,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" -[[package]] -name = "signal-hook" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d" -dependencies = [ - "libc", - "signal-hook-registry", -] - [[package]] name = "signal-hook-registry" version = "1.4.0" @@ -10737,14 +9985,14 @@ checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" [[package]] name = "slot-range-helper" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "enumn", "parity-scale-codec", "paste", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", + "sp-std", ] [[package]] @@ -10774,7 +10022,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "774d05a3edae07ce6d68ea6984f3c05e9bba8927e3dd591e3b479e5b03213d0d" dependencies = [ - "aes-gcm", + "aes-gcm 0.9.4", "blake2", "chacha20poly1305", "curve25519-dalek 4.0.0-pre.5", @@ -10801,7 +10049,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" dependencies = [ - "base64", + "base64 0.13.1", "bytes", "flate2", "futures", @@ -10815,55 +10063,25 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "hash-db", - "log", - "parity-scale-codec", - "sp-api-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", -] - -[[package]] -name = "sp-api" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "hash-db", "log", "parity-scale-codec", - "sp-api-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-api-proc-macro", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-trie", + "sp-version", "thiserror", ] [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "blake2", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "sp-api-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "blake2", "proc-macro-crate", @@ -10875,356 +10093,190 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "sp-application-crypto" -version = "7.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "sp-arithmetic" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "integer-sqrt", - "num-traits", "parity-scale-codec", "scale-info", "serde", - "sp-debug-derive 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "static_assertions", + "sp-core", + "sp-io", + "sp-std", ] [[package]] name = "sp-arithmetic" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "integer-sqrt", "num-traits", "parity-scale-codec", "scale-info", "serde", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std", "static_assertions", ] [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "sp-authorship" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "async-trait", "parity-scale-codec", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "scale-info", + "sp-api", + "sp-application-crypto", + "sp-runtime", + "sp-std", ] [[package]] name = "sp-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "async-trait", "parity-scale-codec", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-inherents", + "sp-runtime", + "sp-std", ] [[package]] name = "sp-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-io", "sp-mmr-primitives", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "sp-block-builder" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", + "sp-std", ] [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "sp-blockchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "futures", - "log", - "lru", "parity-scale-codec", - "parking_lot 0.12.1", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", + "sp-api", + "sp-inherents", + "sp-runtime", + "sp-std", ] [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "futures", "log", "lru", "parity-scale-codec", "parking_lot 0.12.1", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sp-database 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", - "thiserror", -] - -[[package]] -name = "sp-consensus" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "async-trait", - "futures", - "futures-timer", - "log", - "parity-scale-codec", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", + "sp-consensus", + "sp-database", + "sp-runtime", + "sp-state-machine", "thiserror", ] [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "async-trait", "futures", "log", "parity-scale-codec", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-version", "thiserror", ] [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "async-trait", - "parity-scale-codec", - "scale-info", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "sp-consensus-aura" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-api", + "sp-application-crypto", + "sp-consensus", + "sp-consensus-slots", + "sp-inherents", + "sp-runtime", + "sp-std", + "sp-timestamp", ] [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "async-trait", "merlin", "parity-scale-codec", "scale-info", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-consensus-slots 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", + "sp-application-crypto", + "sp-consensus", + "sp-consensus-slots", "sp-consensus-vrf", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "sp-consensus-slots" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-inherents", + "sp-keystore", + "sp-runtime", + "sp-std", + "sp-timestamp", ] [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-std", + "sp-timestamp", ] [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "parity-scale-codec", - "scale-info", - "schnorrkel", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "sp-core" -version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "array-bytes 4.2.0", - "base58", - "bitflags", - "blake2", - "byteorder", - "dyn-clonable", - "ed25519-zebra", - "futures", - "hash-db", - "hash256-std-hasher", - "impl-serde", - "lazy_static", - "libsecp256k1", - "log", - "merlin", - "num-traits", "parity-scale-codec", - "parking_lot 0.12.1", - "primitive-types", - "rand 0.7.3", - "regex", "scale-info", "schnorrkel", - "secp256k1", - "secrecy", - "serde", - "sp-core-hashing 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-debug-derive 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "ss58-registry", - "substrate-bip39", - "thiserror", - "tiny-bip39 0.8.2", - "wasmi", - "zeroize", + "sp-core", + "sp-runtime", + "sp-std", ] [[package]] name = "sp-core" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "array-bytes 4.2.0", "base58", @@ -11250,82 +10302,48 @@ dependencies = [ "secp256k1", "secrecy", "serde", - "sp-core-hashing 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-debug-derive 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core-hashing", + "sp-debug-derive", + "sp-externalities", + "sp-runtime-interface", + "sp-std", + "sp-storage", "ss58-registry", "substrate-bip39", "thiserror", - "tiny-bip39 1.0.0", + "tiny-bip39", "zeroize", ] [[package]] name = "sp-core-hashing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "blake2", - "byteorder", - "digest 0.10.6", - "sha2 0.10.6", - "sha3", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "twox-hash", -] - -[[package]] -name = "sp-core-hashing" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "blake2", "byteorder", "digest 0.10.6", "sha2 0.10.6", "sha3", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std", "twox-hash", ] [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "proc-macro2", - "quote", - "sp-core-hashing 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "syn", -] - -[[package]] -name = "sp-core-hashing-proc-macro" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "proc-macro2", "quote", - "sp-core-hashing 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core-hashing", "syn", ] [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "kvdb", - "parking_lot 0.12.1", -] - -[[package]] -name = "sp-database" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -11334,17 +10352,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "sp-debug-derive" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "proc-macro2", "quote", @@ -11354,120 +10362,50 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "environmental", - "parity-scale-codec", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "sp-externalities" -version = "0.13.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "environmental", "parity-scale-codec", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "sp-finality-grandpa" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "finality-grandpa", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-std", + "sp-storage", ] [[package]] name = "sp-finality-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "finality-grandpa", "log", "parity-scale-codec", "scale-info", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "sp-inherents" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "async-trait", - "impl-trait-for-tuples", - "parity-scale-codec", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-keystore", + "sp-runtime", + "sp-std", ] [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core", + "sp-runtime", + "sp-std", "thiserror", ] [[package]] name = "sp-io" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "bytes", - "ed25519-dalek", - "futures", - "hash-db", - "libsecp256k1", - "log", - "parity-scale-codec", - "parking_lot 0.12.1", - "secp256k1", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "tracing", - "tracing-core", -] - -[[package]] -name = "sp-io" -version = "7.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "bytes", "ed25519", @@ -11477,14 +10415,14 @@ dependencies = [ "log", "parity-scale-codec", "secp256k1", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime-interface 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core", + "sp-externalities", + "sp-keystore", + "sp-runtime-interface", + "sp-state-machine", + "sp-std", + "sp-tracing", + "sp-trie", "tracing", "tracing-core", ] @@ -11492,46 +10430,18 @@ dependencies = [ [[package]] name = "sp-keyring" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "lazy_static", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "strum", -] - -[[package]] -name = "sp-keyring" -version = "7.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "lazy_static", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core", + "sp-runtime", "strum", ] [[package]] name = "sp-keystore" version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "async-trait", - "futures", - "merlin", - "parity-scale-codec", - "parking_lot 0.12.1", - "schnorrkel", - "serde", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", -] - -[[package]] -name = "sp-keystore" -version = "0.13.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "async-trait", "futures", @@ -11540,24 +10450,15 @@ dependencies = [ "parking_lot 0.12.1", "schnorrkel", "serde", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate)", - "thiserror", -] - -[[package]] -name = "sp-maybe-compressed-blob" -version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ + "sp-core", + "sp-externalities", "thiserror", - "zstd", ] [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "thiserror", "zstd", @@ -11566,191 +10467,109 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "ckb-merkle-mountain-range", "log", "parity-scale-codec", "scale-info", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-debug-derive 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", + "sp-core", + "sp-debug-derive", + "sp-runtime", + "sp-std", "thiserror", ] [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "sp-offchain" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-arithmetic", + "sp-core", + "sp-runtime", + "sp-std", ] [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-api", + "sp-core", + "sp-runtime", ] [[package]] name = "sp-panic-handler" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "backtrace", "lazy_static", "regex", ] -[[package]] -name = "sp-panic-handler" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "backtrace", - "lazy_static", - "regex", -] - -[[package]] -name = "sp-rpc" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "rustc-hash", - "serde", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "rustc-hash", "serde", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "sp-runtime" -version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "either", - "hash256-std-hasher", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "paste", - "rand 0.7.3", - "scale-info", - "serde", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", ] [[package]] name = "sp-runtime" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "either", - "hash256-std-hasher", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "paste", - "rand 0.8.5", - "scale-info", - "serde", - "sp-application-crypto 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "sp-runtime-interface" -version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "bytes", + "either", + "hash256-std-hasher", "impl-trait-for-tuples", + "log", "parity-scale-codec", - "primitive-types", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime-interface-proc-macro 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "static_assertions", + "paste", + "rand 0.8.5", + "scale-info", + "serde", + "sp-application-crypto", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-std", + "sp-weights", ] [[package]] name = "sp-runtime-interface" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", "primitive-types", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime-interface-proc-macro 6.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-storage 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-tracing 6.0.0 (git+https://github.com/paritytech/substrate)", - "sp-wasm-interface 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-externalities", + "sp-runtime-interface-proc-macro", + "sp-std", + "sp-storage", + "sp-tracing", + "sp-wasm-interface", "static_assertions", ] [[package]] name = "sp-runtime-interface-proc-macro" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "Inflector", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "sp-runtime-interface-proc-macro" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "Inflector", "proc-macro-crate", @@ -11762,81 +10581,33 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "sp-session" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "sp-staking" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", + "sp-core", + "sp-runtime", + "sp-staking", + "sp-std", ] [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "sp-state-machine" -version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "hash-db", - "log", - "num-traits", - "parity-scale-codec", - "parking_lot 0.12.1", - "rand 0.7.3", - "smallvec", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-panic-handler 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", - "tracing", - "trie-root", + "sp-core", + "sp-runtime", + "sp-std", ] [[package]] name = "sp-state-machine" version = "0.13.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "hash-db", "log", @@ -11844,11 +10615,11 @@ dependencies = [ "parking_lot 0.12.1", "rand 0.8.5", "smallvec", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-panic-handler 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core", + "sp-externalities", + "sp-panic-handler", + "sp-std", + "sp-trie", "thiserror", "tracing", ] @@ -11856,89 +10627,43 @@ dependencies = [ [[package]] name = "sp-std" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" - -[[package]] -name = "sp-std" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" - -[[package]] -name = "sp-storage" -version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "impl-serde", - "parity-scale-codec", - "ref-cast", - "serde", - "sp-debug-derive 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" [[package]] name = "sp-storage" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "sp-timestamp" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "async-trait", - "futures-timer", - "log", - "parity-scale-codec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", + "sp-debug-derive", + "sp-std", ] [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "async-trait", "futures-timer", "log", "parity-scale-codec", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-inherents", + "sp-runtime", + "sp-std", "thiserror", ] [[package]] name = "sp-tracing" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "parity-scale-codec", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "tracing", - "tracing-core", - "tracing-subscriber", -] - -[[package]] -name = "sp-tracing" -version = "6.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "parity-scale-codec", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std", "tracing", "tracing-core", "tracing-subscriber", @@ -11947,80 +10672,32 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "sp-transaction-pool" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" -dependencies = [ - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "sp-transaction-storage-proof" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "async-trait", - "log", - "parity-scale-codec", - "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", + "sp-runtime", ] [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "async-trait", "log", "parity-scale-codec", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "sp-trie" -version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "ahash", - "hash-db", - "hashbrown", - "lazy_static", - "lru", - "memory-db", - "nohash-hasher", - "parity-scale-codec", - "parking_lot 0.12.1", - "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", - "tracing", - "trie-db", - "trie-root", + "sp-core", + "sp-inherents", + "sp-runtime", + "sp-std", + "sp-trie", ] [[package]] name = "sp-trie" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "ahash", "hash-db", @@ -12032,8 +10709,8 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.1", "scale-info", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-core", + "sp-std", "thiserror", "tracing", "trie-db", @@ -12043,52 +10720,24 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "impl-serde", - "parity-scale-codec", - "parity-wasm", - "scale-info", - "serde", - "sp-core-hashing-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-version-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "thiserror", -] - -[[package]] -name = "sp-version" -version = "5.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "impl-serde", "parity-scale-codec", "parity-wasm", "scale-info", "serde", - "sp-core-hashing-proc-macro 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-version-proc-macro 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "sp-core-hashing-proc-macro", + "sp-runtime", + "sp-std", + "sp-version-proc-macro", "thiserror", ] [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "parity-scale-codec", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "sp-version-proc-macro" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -12099,25 +10748,12 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "wasmi", - "wasmtime", -] - -[[package]] -name = "sp-wasm-interface" -version = "7.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-std", "wasmi", "wasmtime", ] @@ -12125,32 +10761,16 @@ dependencies = [ [[package]] name = "sp-weights" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "impl-trait-for-tuples", - "parity-scale-codec", - "scale-info", - "serde", - "smallvec", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-debug-derive 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "sp-weights" -version = "4.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "parity-scale-codec", "scale-info", "serde", "smallvec", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-debug-derive 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate)", + "sp-arithmetic", + "sp-core", + "sp-debug-derive", + "sp-std", ] [[package]] @@ -12171,9 +10791,9 @@ dependencies = [ [[package]] name = "ss58-registry" -version = "1.36.0" +version = "1.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d92659e7d18d82b803824a9ba5a6022cff101c3491d027c1c1d8d30e749284" +checksum = "e40c020d72bc0a9c5660bb71e4a6fdef081493583062c474740a7d59f55f0e7b" dependencies = [ "Inflector", "num-format", @@ -12290,6 +10910,25 @@ dependencies = [ "syn", ] +[[package]] +name = "stun" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7e94b1ec00bad60e6410e058b52f1c66de3dc5fe4d62d09b3e52bb7d3b73e25" +dependencies = [ + "base64 0.13.1", + "crc", + "lazy_static", + "md-5", + "rand 0.8.5", + "ring", + "subtle", + "thiserror", + "tokio", + "url", + "webrtc-util", +] + [[package]] name = "substrate-bip39" version = "0.4.4" @@ -12306,15 +10945,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "platforms 2.0.0", -] - -[[package]] -name = "substrate-build-script-utils" -version = "3.0.0" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "platforms 2.0.0", ] @@ -12322,60 +10953,26 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "futures", - "jsonrpsee", - "log", - "parity-scale-codec", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "serde_json", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "substrate-frame-rpc-system" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ - "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", + "frame-system-rpc-runtime-api", "futures", "jsonrpsee", "log", "parity-scale-codec", - "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-transaction-pool-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-blockchain 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", -] - -[[package]] -name = "substrate-prometheus-endpoint" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "futures-util", - "hyper", - "log", - "prometheus", - "thiserror", - "tokio", + "sc-rpc-api", + "sc-transaction-pool-api", + "sp-api", + "sp-block-builder", + "sp-blockchain", + "sp-core", + "sp-runtime", ] [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "hyper", "log", @@ -12387,60 +10984,45 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "async-trait", - "jsonrpsee", - "log", - "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "serde", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", -] - -[[package]] -name = "substrate-rpc-client" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "async-trait", "jsonrpsee", "log", - "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-rpc-api", "serde", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", + "sp-runtime", ] [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "sc-client-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-rpc-api 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sc-client-api", + "sc-rpc-api", "scale-info", "serde", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-trie 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-trie", "trie-db", ] [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "ansi_term", "build-helper", "cargo_metadata", "filetime", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-maybe-compressed-blob", "strum", "tempfile", "toml", @@ -12449,20 +11031,12 @@ dependencies = [ ] [[package]] -name = "substrate-wasm-builder" -version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +name = "substring" +version = "1.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ee6433ecef213b2e72f587ef64a2f5943e7cd16fbd82dbe8bc07486c534c86" dependencies = [ - "ansi_term", - "build-helper", - "cargo_metadata", - "filetime", - "sp-maybe-compressed-blob 4.1.0-dev (git+https://github.com/paritytech/substrate)", - "strum", - "tempfile", - "toml", - "walkdir", - "wasm-opt", + "autocfg", ] [[package]] @@ -12543,9 +11117,9 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.1.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" dependencies = [ "winapi-util", ] @@ -12647,22 +11221,30 @@ dependencies = [ ] [[package]] -name = "tiny-bip39" -version = "0.8.2" +name = "time" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839d" +checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376" dependencies = [ - "anyhow", - "hmac 0.8.1", - "once_cell", - "pbkdf2 0.4.0", - "rand 0.7.3", - "rustc-hash", - "sha2 0.9.9", - "thiserror", - "unicode-normalization", - "wasm-bindgen", - "zeroize", + "itoa", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" + +[[package]] +name = "time-macros" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2" +dependencies = [ + "time-core", ] [[package]] @@ -12684,6 +11266,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -12701,9 +11293,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.23.0" +version = "1.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eab6d665857cc6ca78d6e80303a02cea7a7851e85dfbd77cbdc09bd129f1ef46" +checksum = "597a12a59981d9e3c38d216785b0c37399f6e415e8d0712047620f189371b0bb" dependencies = [ "autocfg", "bytes", @@ -12736,9 +11328,9 @@ version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ - "rustls", + "rustls 0.20.8", "tokio", - "webpki", + "webpki 0.22.0", ] [[package]] @@ -12770,13 +11362,30 @@ dependencies = [ [[package]] name = "toml" -version = "0.5.10" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1333c76748e868a4d9d1017b5ab53171dfd095f70c712fdb4653a406547f598f" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4553f467ac8e3d374bc9a177a26801e5d0f9b211aa1673fb137a403afd1c9cf5" + +[[package]] +name = "toml_edit" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "729bfd096e40da9c001f778f5cdecbd2957929a24e10e5883d9392220a751581" +dependencies = [ + "indexmap", + "nom8", + "toml_datetime", +] + [[package]] name = "tower" version = "0.4.13" @@ -12864,8 +11473,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -12875,8 +11484,8 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "expander 0.0.6", "proc-macro-crate", @@ -12969,6 +11578,7 @@ dependencies = [ "lazy_static", "rand 0.8.5", "smallvec", + "socket2", "thiserror", "tinyvec", "tokio", @@ -12998,67 +11608,38 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" - -[[package]] -name = "try-runtime-cli" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "clap", - "frame-remote-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "hex", - "log", - "parity-scale-codec", - "sc-chain-spec 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-debug-derive 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-rpc 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-rpc-client 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "zstd", -] +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate#91d91d167d37630de663ddc78e2dab38aabe573d" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" dependencies = [ "clap", - "frame-remote-externalities 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "frame-try-runtime 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "frame-remote-externalities", + "frame-try-runtime", "hex", "log", "parity-scale-codec", - "sc-cli 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-executor 0.10.0-dev (git+https://github.com/paritytech/substrate)", - "sc-service 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "sc-cli", + "sc-executor", + "sc-service", "serde", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-debug-derive 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-externalities 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-keystore 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-rpc 6.0.0 (git+https://github.com/paritytech/substrate)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate)", - "sp-state-machine 0.13.0 (git+https://github.com/paritytech/substrate)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate)", - "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate)", - "substrate-rpc-client 0.10.0-dev (git+https://github.com/paritytech/substrate)", + "serde_json", + "sp-api", + "sp-core", + "sp-debug-derive", + "sp-externalities", + "sp-io", + "sp-keystore", + "sp-rpc", + "sp-runtime", + "sp-state-machine", + "sp-version", + "sp-weights", + "substrate-rpc-client", "zstd", ] @@ -13068,6 +11649,25 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df" +[[package]] +name = "turn" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4712ee30d123ec7ae26d1e1b218395a16c87cdbaf4b3925d170d684af62ea5e8" +dependencies = [ + "async-trait", + "base64 0.13.1", + "futures", + "log", + "md-5", + "rand 0.8.5", + "ring", + "stun", + "thiserror", + "tokio", + "webrtc-util", +] + [[package]] name = "twox-hash" version = "1.6.3" @@ -13106,9 +11706,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58" [[package]] name = "unicode-ident" @@ -13177,20 +11777,19 @@ dependencies = [ ] [[package]] -name = "valuable" -version = "0.1.0" +name = "uuid" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c" +dependencies = [ + "getrandom 0.2.8", +] [[package]] -name = "value-bag" -version = "1.0.0-alpha.9" +name = "valuable" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55" -dependencies = [ - "ctor", - "version_check", -] +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "vcpkg" @@ -13210,6 +11809,15 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" +[[package]] +name = "waitgroup" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1f50000a783467e6c0200f9d10642f4bc424e39efc1b770203e88b488f79292" +dependencies = [ + "atomic-waker", +] + [[package]] name = "waker-fn" version = "1.1.0" @@ -13472,7 +12080,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bcd849399d17d2270141cfe47fa0d91ee52d5f8ea9b98cf7ddde0d53e5f79882" dependencies = [ "anyhow", - "base64", + "base64 0.13.1", "bincode", "directories-next", "file-per-thread-logger", @@ -13608,6 +12216,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki" +version = "0.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "webpki" version = "0.22.0" @@ -13624,7 +12242,219 @@ version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" dependencies = [ - "webpki", + "webpki 0.22.0", +] + +[[package]] +name = "webrtc" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d3bc9049bdb2cea52f5fd4f6f728184225bdb867ed0dc2410eab6df5bdd67bb" +dependencies = [ + "arc-swap", + "async-trait", + "bytes", + "hex", + "interceptor", + "lazy_static", + "log", + "rand 0.8.5", + "rcgen 0.9.3", + "regex", + "ring", + "rtcp", + "rtp", + "rustls 0.19.1", + "sdp", + "serde", + "serde_json", + "sha2 0.10.6", + "stun", + "thiserror", + "time 0.3.17", + "tokio", + "turn", + "url", + "waitgroup", + "webrtc-data", + "webrtc-dtls", + "webrtc-ice", + "webrtc-mdns", + "webrtc-media", + "webrtc-sctp", + "webrtc-srtp", + "webrtc-util", +] + +[[package]] +name = "webrtc-data" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ef36a4d12baa6e842582fe9ec16a57184ba35e1a09308307b67d43ec8883100" +dependencies = [ + "bytes", + "derive_builder", + "log", + "thiserror", + "tokio", + "webrtc-sctp", + "webrtc-util", +] + +[[package]] +name = "webrtc-dtls" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7021987ae0a2ed6c8cd33f68e98e49bb6e74ffe9543310267b48a1bbe3900e5f" +dependencies = [ + "aes 0.6.0", + "aes-gcm 0.8.0", + "async-trait", + "bincode", + "block-modes", + "byteorder", + "ccm", + "curve25519-dalek 3.2.0", + "der-parser 8.1.0", + "elliptic-curve", + "hkdf", + "hmac 0.10.1", + "log", + "oid-registry 0.6.1", + "p256", + "p384", + "rand 0.8.5", + "rand_core 0.6.4", + "rcgen 0.9.3", + "ring", + "rustls 0.19.1", + "sec1", + "serde", + "sha-1", + "sha2 0.9.9", + "signature", + "subtle", + "thiserror", + "tokio", + "webpki 0.21.4", + "webrtc-util", + "x25519-dalek 2.0.0-pre.1", + "x509-parser 0.13.2", +] + +[[package]] +name = "webrtc-ice" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "494483fbb2f5492620871fdc78b084aed8807377f6e3fe88b2e49f0a9c9c41d7" +dependencies = [ + "arc-swap", + "async-trait", + "crc", + "log", + "rand 0.8.5", + "serde", + "serde_json", + "stun", + "thiserror", + "tokio", + "turn", + "url", + "uuid", + "waitgroup", + "webrtc-mdns", + "webrtc-util", +] + +[[package]] +name = "webrtc-mdns" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f08dfd7a6e3987e255c4dbe710dde5d94d0f0574f8a21afa95d171376c143106" +dependencies = [ + "log", + "socket2", + "thiserror", + "tokio", + "webrtc-util", +] + +[[package]] +name = "webrtc-media" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee2a3c157a040324e5049bcbd644ffc9079e6738fa2cfab2bcff64e5cc4c00d7" +dependencies = [ + "byteorder", + "bytes", + "derive_builder", + "displaydoc", + "rand 0.8.5", + "rtp", + "thiserror", + "webrtc-util", +] + +[[package]] +name = "webrtc-sctp" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d47adcd9427eb3ede33d5a7f3424038f63c965491beafcc20bc650a2f6679c0" +dependencies = [ + "arc-swap", + "async-trait", + "bytes", + "crc", + "log", + "rand 0.8.5", + "thiserror", + "tokio", + "webrtc-util", +] + +[[package]] +name = "webrtc-srtp" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6183edc4c1c6c0175f8812eefdce84dfa0aea9c3ece71c2bf6ddd3c964de3da5" +dependencies = [ + "aead 0.4.3", + "aes 0.7.5", + "aes-gcm 0.9.4", + "async-trait", + "byteorder", + "bytes", + "ctr 0.8.0", + "hmac 0.11.0", + "log", + "rtcp", + "rtp", + "sha-1", + "subtle", + "thiserror", + "tokio", + "webrtc-util", +] + +[[package]] +name = "webrtc-util" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93f1db1727772c05cf7a2cfece52c3aca8045ca1e176cd517d323489aa3c6d87" +dependencies = [ + "async-trait", + "bitflags", + "bytes", + "cc", + "ipnet", + "lazy_static", + "libc", + "log", + "nix", + "rand 0.8.5", + "thiserror", + "tokio", + "winapi", ] [[package]] @@ -13638,25 +12468,25 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "bitvec", - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", "frame-election-provider-support", - "frame-executive 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-try-runtime 0.10.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", "hex-literal", "log", "pallet-authority-discovery", - "pallet-authorship 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-authorship", "pallet-babe", "pallet-bags-list", - "pallet-balances 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-balances", "pallet-collective", "pallet-democracy", "pallet-election-provider-multi-phase", @@ -13678,15 +12508,15 @@ dependencies = [ "pallet-proxy", "pallet-recovery", "pallet-scheduler", - "pallet-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-session", "pallet-session-benchmarking", "pallet-society", "pallet-staking", "pallet-staking-reward-curve", - "pallet-sudo 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-timestamp 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "pallet-transaction-payment-rpc-runtime-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-sudo", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", "pallet-treasury", "pallet-utility", "pallet-vesting", @@ -13702,24 +12532,24 @@ dependencies = [ "serde", "serde_derive", "smallvec", - "sp-api 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-api", "sp-authority-discovery", "sp-beefy", - "sp-block-builder 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-block-builder", "sp-consensus-babe", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-inherents 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-inherents", + "sp-io", "sp-mmr-primitives", "sp-npos-elections", - "sp-offchain 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-session 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-staking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-transaction-pool 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-version 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "substrate-wasm-builder 5.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", + "sp-transaction-pool", + "sp-version", + "substrate-wasm-builder", "westend-runtime-constants", "xcm", "xcm-builder", @@ -13728,23 +12558,23 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", "polkadot-primitives", "polkadot-runtime-common", "smallvec", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-weights 4.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-core", + "sp-runtime", + "sp-weights", ] [[package]] name = "which" -version = "4.3.0" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b" +checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" dependencies = [ "either", "libc", @@ -13821,19 +12651,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.0", - "windows_i686_gnu 0.42.0", - "windows_i686_msvc 0.42.0", - "windows_x86_64_gnu 0.42.0", + "windows_aarch64_msvc 0.42.1", + "windows_i686_gnu 0.42.1", + "windows_i686_msvc 0.42.1", + "windows_x86_64_gnu 0.42.1", "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.0", + "windows_x86_64_msvc 0.42.1", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" +checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" [[package]] name = "windows_aarch64_msvc" @@ -13849,9 +12679,9 @@ checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" [[package]] name = "windows_aarch64_msvc" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" +checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" [[package]] name = "windows_i686_gnu" @@ -13867,9 +12697,9 @@ checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" [[package]] name = "windows_i686_gnu" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" +checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" [[package]] name = "windows_i686_msvc" @@ -13885,9 +12715,9 @@ checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" [[package]] name = "windows_i686_msvc" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" +checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" [[package]] name = "windows_x86_64_gnu" @@ -13903,15 +12733,15 @@ checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" [[package]] name = "windows_x86_64_gnu" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" +checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" +checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" [[package]] name = "windows_x86_64_msvc" @@ -13927,9 +12757,9 @@ checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" [[package]] name = "windows_x86_64_msvc" -version = "0.42.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" +checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" [[package]] name = "winreg" @@ -13960,62 +12790,110 @@ dependencies = [ "zeroize", ] +[[package]] +name = "x25519-dalek" +version = "2.0.0-pre.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5da623d8af10a62342bcbbb230e33e58a63255a58012f8653c578e54bab48df" +dependencies = [ + "curve25519-dalek 3.2.0", + "rand_core 0.6.4", + "zeroize", +] + +[[package]] +name = "x509-parser" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb9bace5b5589ffead1afb76e43e34cff39cd0f3ce7e170ae0c29e53b88eb1c" +dependencies = [ + "asn1-rs 0.3.1", + "base64 0.13.1", + "data-encoding", + "der-parser 7.0.0", + "lazy_static", + "nom", + "oid-registry 0.4.0", + "ring", + "rusticata-macros", + "thiserror", + "time 0.3.17", +] + +[[package]] +name = "x509-parser" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" +dependencies = [ + "asn1-rs 0.5.1", + "base64 0.13.1", + "data-encoding", + "der-parser 8.1.0", + "lazy_static", + "nom", + "oid-registry 0.6.1", + "rusticata-macros", + "thiserror", + "time 0.3.17", +] + [[package]] name = "xcm" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "derivative", "impl-trait-for-tuples", "log", "parity-scale-codec", "scale-info", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-runtime", "xcm-procedural", ] [[package]] name = "xcm-builder" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-system 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-support", + "frame-system", "log", - "pallet-transaction-payment 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "pallet-transaction-payment", "parity-scale-codec", "polkadot-parachain", "scale-info", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-arithmetic", + "sp-io", + "sp-runtime", + "sp-std", "xcm", "xcm-executor", ] [[package]] name = "xcm-executor" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ - "frame-benchmarking 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "frame-support 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "frame-benchmarking", + "frame-support", "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-arithmetic 6.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-core 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-io 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-runtime 7.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", - "sp-std 5.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36)", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", "xcm", ] [[package]] name = "xcm-procedural" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.37" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" dependencies = [ "Inflector", "proc-macro2", @@ -14037,6 +12915,15 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "yasna" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aed2e7a52e3744ab4d0c05c20aa065258e84c49fd4226f5191b2ed29712710b4" +dependencies = [ + "time 0.3.17", +] + [[package]] name = "zeroize" version = "1.5.7" @@ -14079,10 +12966,11 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.4+zstd.1.5.2" +version = "2.0.5+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fa202f2ef00074143e219d15b62ffc317d17cc33909feac471c044087cad7b0" +checksum = "edc50ffce891ad571e9f9afe5039c4837bede781ac4bb13052ed7ae695518596" dependencies = [ "cc", "libc", + "pkg-config", ] diff --git a/node/Cargo.toml b/node/Cargo.toml index ea99544e..e2caa656 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -10,68 +10,68 @@ edition = "2021" build = "build.rs" [dependencies] -clap = { version = "4.0.29", features = ["derive"] } +clap = { version = "4.0.32", features = ["derive"] } log = "0.4.17" codec = { package = "parity-scale-codec", version = "3.0.0" } -serde = { version = "1.0.151", features = ["derive"] } +serde = { version = "1.0.152", features = ["derive"] } jsonrpsee = { version = "0.16.2", features = ["server"] } # Local parachain-template-runtime = { path = "../runtime" } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-network-common = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", optional = true , branch = "polkadot-v0.9.36" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sc-cli = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sc-client-api = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sc-consensus = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sc-executor = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sc-network = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sc-network-common = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sc-rpc = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sc-service = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sc-sysinfo = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sc-tracing = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sp-api = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sp-core = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sp-keystore = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sp-offchain = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sp-io = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sp-runtime = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sp-session = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", optional = true , "branch" = "polkadot-v0.9.37" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.37" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.37" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.37" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.37" } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37" } +cumulus-client-network = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37" } [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } [features] default = [] diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 27558ff7..001ae9c0 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -16,17 +16,17 @@ codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive scale-info = { version = "2.2.0", default-features = false, features = ["derive"] } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, "branch" = "polkadot-v0.9.37" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } [dev-dependencies] serde = { version = "1.0.132" } # Substrate -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } [features] default = ["std"] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 85a20ee0..082df7e2 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,7 +12,7 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } @@ -21,57 +21,57 @@ log = { version = "0.4.17", default-features = false } scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } smallvec = "1.10.0" -# Local +# Local pallet-template = { path = "../pallets/template", default-features = false } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, "branch" = "polkadot-v0.9.37" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, "branch" = "polkadot-v0.9.37" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, "branch" = "polkadot-v0.9.37" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.37" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.37" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.37" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.37" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.37" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.37" } # Cumulus -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false } -cumulus-pallet-session-benchmarking = {git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false, version = "3.0.0"} -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false } -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false } -parachain-info = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.36", default-features = false } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false } +cumulus-pallet-session-benchmarking = {git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false, version = "3.0.0"} +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false } +pallet-collator-selection = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false } +parachain-info = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false } [features] default = [ diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index a0abb0e2..68eba213 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -632,7 +632,7 @@ impl_runtime_apis! { #[cfg(feature = "try-runtime")] impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade(checks: bool) -> (Weight, Weight) { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { let weight = Executive::try_runtime_upgrade(checks).unwrap(); (weight, RuntimeBlockWeights::get().max_block) } From 677a1a238a9592d0c8f1f0a4b7477b031da76c20 Mon Sep 17 00:00:00 2001 From: Dan Shields <35669742+NukeManDan@users.noreply.github.com> Date: Thu, 26 Jan 2023 17:08:10 -0700 Subject: [PATCH 71/91] create CODEOWNERS (#151) --- CODEOWNERS | 1 + 1 file changed, 1 insertion(+) create mode 100644 CODEOWNERS diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 00000000..13b9bc71 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1 @@ +* @sacha-l @lisa-parity \ No newline at end of file From a04589bc06143080982345acdf17635c4118fe48 Mon Sep 17 00:00:00 2001 From: Paritytech CI <52199148+paritytech-ci@users.noreply.github.com> Date: Fri, 31 Mar 2023 21:46:26 +0200 Subject: [PATCH 72/91] Auto-Update substrate-parachain-template from polkadot-v0.9.40 (#153) Co-authored-by: substrate-developer-hub --- Cargo.lock | 2892 ++++++++++++---------- node/Cargo.toml | 89 +- node/src/chain_spec.rs | 1 + node/src/command.rs | 23 +- node/src/service.rs | 60 +- pallets/template/Cargo.toml | 12 +- pallets/template/src/lib.rs | 5 +- runtime/Cargo.toml | 88 +- runtime/src/lib.rs | 71 +- runtime/src/weights/block_weights.rs | 2 +- runtime/src/weights/extrinsic_weights.rs | 2 +- runtime/src/xcm_config.rs | 127 +- 12 files changed, 1881 insertions(+), 1491 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e854e9fb..564eaf08 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -27,7 +27,7 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" dependencies = [ - "gimli 0.27.1", + "gimli 0.27.2", ] [[package]] @@ -55,6 +55,16 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "aead" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c192eb8f11fc081b0fe4259ba5af04217d4e0faddd02417310a927911abd7c8" +dependencies = [ + "crypto-common", + "generic-array 0.14.6", +] + [[package]] name = "aes" version = "0.6.0" @@ -79,17 +89,14 @@ dependencies = [ ] [[package]] -name = "aes-gcm" -version = "0.8.0" +name = "aes" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5278b5fabbb9bd46e24aa69b2fdea62c99088e0a950a9be40e3e0101298f88da" +checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241" dependencies = [ - "aead 0.3.2", - "aes 0.6.0", - "cipher 0.2.5", - "ctr 0.6.0", - "ghash 0.3.1", - "subtle", + "cfg-if", + "cipher 0.4.4", + "cpufeatures", ] [[package]] @@ -106,6 +113,20 @@ dependencies = [ "subtle", ] +[[package]] +name = "aes-gcm" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e1366e0c69c9f927b1fa5ce2c7bf9eafc8f9268c0b9800729e8b267612447c" +dependencies = [ + "aead 0.5.1", + "aes 0.8.2", + "cipher 0.4.4", + "ctr 0.9.2", + "ghash 0.5.0", + "subtle", +] + [[package]] name = "aes-soft" version = "0.6.4" @@ -137,6 +158,18 @@ dependencies = [ "version_check", ] +[[package]] +name = "ahash" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +dependencies = [ + "cfg-if", + "getrandom 0.2.8", + "once_cell", + "version_check", +] + [[package]] name = "aho-corasick" version = "0.7.20" @@ -172,9 +205,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.68" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61" +checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" [[package]] name = "approx" @@ -205,9 +238,9 @@ checksum = "22f72e9d6fac4bc80778ea470b20197b88d28c292bb7d60c3fb099280003cd19" [[package]] name = "arrayref" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" [[package]] name = "arrayvec" @@ -234,14 +267,14 @@ dependencies = [ "num-traits", "rusticata-macros", "thiserror", - "time 0.3.17", + "time 0.3.20", ] [[package]] name = "asn1-rs" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf6690c370453db30743b373a60ba498fc0d6d83b11f4abfd87a84a075db5dd4" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" dependencies = [ "asn1-rs-derive 0.4.0", "asn1-rs-impl", @@ -250,7 +283,7 @@ dependencies = [ "num-traits", "rusticata-macros", "thiserror", - "time 0.3.17", + "time 0.3.20", ] [[package]] @@ -261,7 +294,7 @@ checksum = "db8b7511298d5b7784b40b092d9e9dcd3a627a5707e4b5e507931ab0d44eeebf" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "synstructure", ] @@ -273,7 +306,7 @@ checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "synstructure", ] @@ -285,7 +318,7 @@ checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -300,45 +333,55 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +[[package]] +name = "async-channel" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + [[package]] name = "async-io" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" dependencies = [ "async-lock", "autocfg", + "cfg-if", "concurrent-queue", "futures-lite", - "libc", "log", "parking", "polling", + "rustix 0.37.3", "slab", "socket2", "waker-fn", - "windows-sys 0.42.0", ] [[package]] name = "async-lock" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685" +checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" dependencies = [ "event-listener", - "futures-lite", ] [[package]] name = "async-trait" -version = "0.1.63" +version = "0.1.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eff18d764974428cf3a9328e23fc5c986f5fbed46e6cd4cdf42544df5d297ec1" +checksum = "86ea188f25f0255d8f92797797c97ebf5631fa88178beb1a46fdf5622c9a00e4" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.8", ] [[package]] @@ -424,9 +467,9 @@ checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" [[package]] name = "base64ct" -version = "1.5.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "beef" @@ -438,66 +481,12 @@ dependencies = [ ] [[package]] -name = "beefy-gadget" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" -dependencies = [ - "array-bytes 4.2.0", - "async-trait", - "fnv", - "futures", - "log", - "parity-scale-codec", - "parking_lot 0.12.1", - "sc-client-api", - "sc-consensus", - "sc-keystore", - "sc-network", - "sc-network-common", - "sc-network-gossip", - "sc-utils", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", - "sp-beefy", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-keystore", - "sp-mmr-primitives", - "sp-runtime", - "substrate-prometheus-endpoint", - "thiserror", - "wasm-timer", -] - -[[package]] -name = "beefy-gadget-rpc" +name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ - "beefy-gadget", - "futures", - "jsonrpsee", + "hash-db", "log", - "parity-scale-codec", - "parking_lot 0.12.1", - "sc-rpc", - "serde", - "sp-beefy", - "sp-core", - "sp-runtime", - "thiserror", -] - -[[package]] -name = "beefy-merkle-tree" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" -dependencies = [ - "sp-api", - "sp-beefy", - "sp-runtime", ] [[package]] @@ -511,11 +500,11 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.60.1" +version = "0.64.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "062dddbc1ba4aca46de6338e2bf87771414c335f7b2f2036e8f3e9befebf88e6" +checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cexpr", "clang-sys", "lazy_static", @@ -526,6 +515,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", + "syn 1.0.109", ] [[package]] @@ -534,6 +524,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487f1e0fcbe47deb8b0574e646def1c903389d95241dd1bbcc6ce4a715dfc0c1" + [[package]] name = "bitvec" version = "1.0.1" @@ -557,24 +553,24 @@ dependencies = [ [[package]] name = "blake2b_simd" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72936ee4afc7f8f736d1c38383b56480b5497b4617b4a77bdbf1d2ababc76127" +checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc" dependencies = [ "arrayref", "arrayvec 0.7.2", - "constant_time_eq 0.1.5", + "constant_time_eq", ] [[package]] name = "blake2s_simd" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db539cc2b5f6003621f1cd9ef92d7ded8ea5232c7de0f9faa2de251cd98730d4" +checksum = "6637f448b9e61dfadbdcbae9a885fadee1f3eaffb1f8d3c1965d3ade8bdfd44f" dependencies = [ "arrayref", "arrayvec 0.7.2", - "constant_time_eq 0.1.5", + "constant_time_eq", ] [[package]] @@ -587,7 +583,7 @@ dependencies = [ "arrayvec 0.7.2", "cc", "cfg-if", - "constant_time_eq 0.2.4", + "constant_time_eq", "digest 0.10.6", ] @@ -614,9 +610,9 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ "generic-array 0.14.6", ] @@ -646,11 +642,23 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" +[[package]] +name = "bounded-collections" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a071c348a5ef6da1d3a87166b408170b46002382b1dda83992b5c2208cefb370" +dependencies = [ + "log", + "parity-scale-codec", + "scale-info", + "serde", +] + [[package]] name = "bounded-vec" -version = "0.6.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3372be4090bf9d4da36bd8ba7ce6ca1669503d0cf6e667236c6df7f053153eb6" +checksum = "68534a48cbf63a4b1323c433cf21238c9ec23711e0df13b08c33e5c2082663ce" dependencies = [ "thiserror", ] @@ -663,9 +671,9 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bstr" -version = "1.1.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45ea9b00a7b3f2988e9a65ad3917e62123c38dba709b666506207be96d1790b" +checksum = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09" dependencies = [ "memchr", "serde", @@ -698,6 +706,12 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" +[[package]] +name = "bytemuck" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" + [[package]] name = "byteorder" version = "1.4.3" @@ -706,9 +720,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" [[package]] name = "bzip2-sys" @@ -723,9 +737,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.2" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77df041dc383319cc661b428b6961a005db4d6808d5e12536931b1ca9556055" +checksum = "c530edf18f37068ac2d977409ed5cd50d53d73bc653c7647b48eb78976ac9ae2" dependencies = [ "serde", ] @@ -741,22 +755,23 @@ dependencies = [ [[package]] name = "cargo_metadata" -version = "0.14.2" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" +checksum = "08a1ec454bc3eead8719cb56e15dbbfecdbc14e4b3a3ae4936cc6e31f5fc0d07" dependencies = [ "camino", "cargo-platform", - "semver 1.0.16", + "semver 1.0.17", "serde", "serde_json", + "thiserror", ] [[package]] name = "cc" -version = "1.0.78" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" dependencies = [ "jobserver", ] @@ -829,9 +844,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.23" +version = "0.4.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" +checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" dependencies = [ "iana-time-zone", "js-sys", @@ -850,7 +865,7 @@ checksum = "f6ed9c8b2d17acb8110c46f1da5bf4a696d745e1474a16db0cd2b49cd0249bf2" dependencies = [ "core2", "multibase", - "multihash", + "multihash 0.16.3", "serde", "unsigned-varint", ] @@ -873,6 +888,16 @@ dependencies = [ "generic-array 0.14.6", ] +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + [[package]] name = "ckb-merkle-mountain-range" version = "0.5.2" @@ -884,9 +909,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.4.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3" +checksum = "77ed9a53e5d4d9c573ae844bfac6872b159cb1d1585a83b29e7a64b7eef7332a" dependencies = [ "glob", "libc", @@ -895,11 +920,11 @@ dependencies = [ [[package]] name = "clap" -version = "4.1.4" +version = "4.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f13b9c79b5d1dd500d20ef541215a6423c75829ef43117e1b4d17fd8af0b5d76" +checksum = "42dfd32784433290c51d92c438bb72ea5063797fc3cc9a21a8c4346bebbb2098" dependencies = [ - "bitflags", + "bitflags 2.0.2", "clap_derive", "clap_lex", "is-terminal", @@ -910,31 +935,31 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.1.0" +version = "4.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "684a277d672e91966334af371f1a7b5833f9aa00b07c84e92fbce95e00208ce8" +checksum = "fddf67631444a3a3e3e5ac51c36a5e01335302de677bd78759eaa90ab1f46644" dependencies = [ "heck", "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "clap_lex" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "783fe232adfca04f90f56201b26d79682d4cd2625e0bc7290b95123afe558ade" +checksum = "033f6b7a4acb1f358c742aaca805c939ee73b4c6209ae4318ec7aca81c42e646" dependencies = [ "os_str_bytes", ] [[package]] name = "coarsetime" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "454038500439e141804c655b4cd1bc6a70bcb95cd2bc9463af5661b6956f0e46" +checksum = "a90d114103adbc625300f346d4d09dfb4ab1c4a8df6868435dd903392ecf4354" dependencies = [ "libc", "once_cell", @@ -974,21 +999,15 @@ dependencies = [ [[package]] name = "const-oid" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cec318a675afcb6a1ea1d4340e2d377e56e47c266f28043ceccbf4412ddfdd3b" - -[[package]] -name = "constant_time_eq" -version = "0.1.5" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" [[package]] name = "constant_time_eq" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3ad85c1f65dc7b37604eb0e89748faf0b9653065f2a8ef69f96a687ec1e9279" +checksum = "13418e745008f7349ec7e449155f419a61b92b58a99cc3616942b926825ec76b" [[package]] name = "convert_case" @@ -1049,26 +1068,20 @@ dependencies = [ "libc", ] -[[package]] -name = "cpuid-bool" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" - [[package]] name = "cranelift-bforest" -version = "0.88.2" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52056f6d0584484b57fa6c1a65c1fcb15f3780d8b6a758426d9e3084169b2ddd" +checksum = "a7379abaacee0f14abf3204a7606118f0465785252169d186337bcb75030815a" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.88.2" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fed94c8770dc25d01154c3ffa64ed0b3ba9d583736f305fed7beebe5d9cf74" +checksum = "9489fa336927df749631f1008007ced2871068544f40a202ce6d93fbf2366a7b" dependencies = [ "arrayvec 0.7.2", "bumpalo", @@ -1078,6 +1091,7 @@ dependencies = [ "cranelift-entity", "cranelift-isle", "gimli 0.26.2", + "hashbrown 0.12.3", "log", "regalloc2", "smallvec", @@ -1086,33 +1100,33 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.88.2" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c451b81faf237d11c7e4f3165eeb6bac61112762c5cfe7b4c0fb7241474358f" +checksum = "05bbb67da91ec721ed57cef2f7c5ef7728e1cd9bde9ffd3ef8601022e73e3239" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.88.2" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c940133198426d26128f08be2b40b0bd117b84771fd36798969c4d712d81fc" +checksum = "418ecb2f36032f6665dc1a5e2060a143dbab41d83b784882e97710e890a7a16d" [[package]] name = "cranelift-entity" -version = "0.88.2" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87a0f1b2fdc18776956370cf8d9b009ded3f855350c480c1c52142510961f352" +checksum = "7cf583f7b093f291005f9fb1323e2c37f6ee4c7909e39ce016b2e8360d461705" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.88.2" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34897538b36b216cc8dd324e73263596d51b8cf610da6498322838b2546baf8a" +checksum = "0b66bf9e916f57fbbd0f7703ec6286f4624866bf45000111627c70d272c8dda1" dependencies = [ "cranelift-codegen", "log", @@ -1122,15 +1136,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.88.2" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b2629a569fae540f16a76b70afcc87ad7decb38dc28fa6c648ac73b51e78470" +checksum = "649782a39ce99798dd6b4029e2bb318a2fbeaade1b4fa25330763c10c65bc358" [[package]] name = "cranelift-native" -version = "0.88.2" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20937dab4e14d3e225c5adfc9c7106bafd4ac669bdb43027b911ff794c6fb318" +checksum = "937e021e089c51f9749d09e7ad1c4f255c2f8686cb8c3df63a34b3ec9921bc41" dependencies = [ "cranelift-codegen", "libc", @@ -1139,9 +1153,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.88.2" +version = "0.93.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80fc2288957a94fd342a015811479de1837850924166d1f1856d8406e6f3609b" +checksum = "d850cf6775477747c9dfda9ae23355dd70512ffebc70cf82b85a5b111ae668b5" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1155,9 +1169,9 @@ dependencies = [ [[package]] name = "crc" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53757d12b596c16c78b83458d732a5d1a17ab3f53f2f7412f6fb57cc8a140ab3" +checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe" dependencies = [ "crc-catalog", ] @@ -1179,9 +1193,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c" dependencies = [ "cfg-if", "crossbeam-utils", @@ -1189,9 +1203,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -1200,14 +1214,14 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.13" +version = "0.9.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" +checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset 0.7.1", + "memoffset 0.8.0", "scopeguard", ] @@ -1223,9 +1237,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.14" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" +checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" dependencies = [ "cfg-if", ] @@ -1255,6 +1269,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array 0.14.6", + "rand_core 0.6.4", "typenum", ] @@ -1268,16 +1283,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "crypto-mac" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a" -dependencies = [ - "generic-array 0.14.6", - "subtle", -] - [[package]] name = "crypto-mac" version = "0.11.1" @@ -1290,26 +1295,26 @@ dependencies = [ [[package]] name = "ctr" -version = "0.6.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f" +checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" dependencies = [ - "cipher 0.2.5", + "cipher 0.3.0", ] [[package]] name = "ctr" -version = "0.8.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher 0.3.0", + "cipher 0.4.4", ] [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "clap", "parity-scale-codec", @@ -1324,7 +1329,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1347,7 +1352,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1376,7 +1381,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -1389,6 +1394,7 @@ dependencies = [ "polkadot-primitives", "sc-client-api", "sc-consensus", + "schnellru", "sp-blockchain", "sp-consensus", "sp-runtime", @@ -1399,7 +1405,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1422,8 +1428,9 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ + "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", "futures", @@ -1445,35 +1452,42 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-common", + "cumulus-client-network", "cumulus-client-pov-recovery", "cumulus-primitives-core", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", "futures", - "parking_lot 0.12.1", "polkadot-primitives", "sc-client-api", "sc-consensus", + "sc-network", + "sc-network-sync", + "sc-network-transactions", + "sc-rpc", "sc-service", "sc-sysinfo", "sc-telemetry", + "sc-transaction-pool", + "sc-utils", "sp-api", "sp-blockchain", "sp-consensus", "sp-core", "sp-runtime", + "sp-transaction-pool", ] [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "frame-support", "frame-system", @@ -1489,7 +1503,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1506,7 +1520,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -1529,23 +1543,24 @@ dependencies = [ "sp-std", "sp-trie", "sp-version", + "xcm", ] [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "frame-benchmarking", "frame-support", @@ -1559,7 +1574,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1575,7 +1590,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1583,8 +1598,10 @@ dependencies = [ "frame-system", "log", "parity-scale-codec", + "polkadot-runtime-common", "rand_chacha 0.3.1", "scale-info", + "sp-io", "sp-runtime", "sp-std", "xcm", @@ -1594,7 +1611,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -1604,12 +1621,13 @@ dependencies = [ "sp-runtime", "sp-std", "sp-trie", + "xcm", ] [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1632,7 +1650,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "cumulus-primitives-core", "futures", @@ -1645,12 +1663,14 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "cumulus-primitives-core", "frame-support", "log", "parity-scale-codec", + "polkadot-runtime-common", + "sp-io", "sp-runtime", "sp-std", "xcm", @@ -1661,7 +1681,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1686,7 +1706,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1694,19 +1714,17 @@ dependencies = [ "jsonrpsee-core", "parity-scale-codec", "polkadot-overseer", - "polkadot-service", "sc-client-api", "sp-api", "sp-blockchain", "sp-state-machine", "thiserror", - "tokio", ] [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "array-bytes 6.0.0", "async-trait", @@ -1714,7 +1732,7 @@ dependencies = [ "cumulus-relay-chain-interface", "cumulus-relay-chain-rpc-interface", "futures", - "lru", + "lru 0.9.0", "polkadot-core-primitives", "polkadot-network-bridge", "polkadot-node-network-protocol", @@ -1724,15 +1742,10 @@ dependencies = [ "polkadot-service", "sc-authority-discovery", "sc-client-api", - "sc-consensus", - "sc-keystore", "sc-network", "sc-network-common", "sc-service", - "sc-telemetry", "sc-tracing", - "sc-transaction-pool", - "sc-transaction-pool-api", "sp-api", "sp-blockchain", "sp-consensus", @@ -1740,13 +1753,12 @@ dependencies = [ "sp-runtime", "tokio", "tracing", - "url", ] [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1754,11 +1766,12 @@ dependencies = [ "futures", "futures-timer", "jsonrpsee", - "lru", + "lru 0.9.0", "parity-scale-codec", - "polkadot-service", + "polkadot-overseer", "sc-client-api", "sc-rpc-api", + "sc-service", "serde", "serde_json", "sp-api", @@ -1775,7 +1788,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1813,9 +1826,9 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.0.0-pre.5" +version = "4.0.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67bc65846be335cb20f4e52d49a437b773a2c1fdb42b19fc84e79e6f6771536f" +checksum = "8d4ba9852b42210c7538b75484f9daa0655e9a3ac04f693747bb0f02cf3cfe16" dependencies = [ "cfg-if", "fiat-crypto", @@ -1827,9 +1840,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.87" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b61a7545f753a88bcbe0a70de1fcc0221e10bfc752f576754fa91e663db1622e" +checksum = "a9c00419335c41018365ddf7e4d5f1c12ee3659ddcf3e01974650ba1de73d038" dependencies = [ "cc", "cxxbridge-flags", @@ -1839,9 +1852,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.87" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f464457d494b5ed6905c63b0c4704842aba319084a0a3561cdc1359536b53200" +checksum = "fb8307ad413a98fff033c8545ecf133e3257747b3bae935e7602aab8aa92d4ca" dependencies = [ "cc", "codespan-reporting", @@ -1849,31 +1862,31 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn", + "syn 2.0.8", ] [[package]] name = "cxxbridge-flags" -version = "1.0.87" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43c7119ce3a3701ed81aca8410b9acf6fc399d2629d057b87e2efa4e63a3aaea" +checksum = "edc52e2eb08915cb12596d29d55f0b5384f00d697a646dbd269b6ecb0fbd9d31" [[package]] name = "cxxbridge-macro" -version = "1.0.87" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65e07508b90551e610910fa648a1878991d367064997a596135b86df30daf07e" +checksum = "631569015d0d8d54e6c241733f944042623ab6df7bc3be7466874b05fcdb1c5f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.8", ] [[package]] name = "darling" -version = "0.14.2" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0dd3cd20dc6b5a876612a6e5accfe7f3dd883db6d07acfbf14c128f61550dfa" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" dependencies = [ "darling_core", "darling_macro", @@ -1881,27 +1894,27 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.14.2" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a784d2ccaf7c98501746bf0be29b2022ba41fd62a2e622af997a03e9f972859f" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn", + "syn 1.0.109", ] [[package]] name = "darling_macro" -version = "0.14.2" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7618812407e9402654622dd402b0a89dff9ba93badd6540781526117b92aab7e" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ "darling_core", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1927,7 +1940,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038db" dependencies = [ "data-encoding", - "syn", + "syn 1.0.109", ] [[package]] @@ -1957,11 +1970,11 @@ dependencies = [ [[package]] name = "der-parser" -version = "8.1.0" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d4bc9b0db0a0df9ae64634ac5bdefb7afcb534e182275ca0beadbe486701c1" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" dependencies = [ - "asn1-rs 0.5.1", + "asn1-rs 0.5.2", "displaydoc", "nom", "num-bigint", @@ -1977,7 +1990,18 @@ checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", +] + +[[package]] +name = "derive-syn-parse" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] @@ -1998,7 +2022,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -2008,7 +2032,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f0314b72bed045f3a68671b3c86328386762c93f82d98c65c3cb5e5f573dd68" dependencies = [ "derive_builder_core", - "syn", + "syn 1.0.109", ] [[package]] @@ -2021,7 +2045,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn", + "syn 1.0.109", ] [[package]] @@ -2054,7 +2078,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" dependencies = [ - "block-buffer 0.10.3", + "block-buffer 0.10.4", "crypto-common", "subtle", ] @@ -2108,7 +2132,7 @@ checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -2125,9 +2149,9 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "dtoa" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00704156a7de8df8da0911424e30c2049957b0a714542a44e05fe693dd85313" +checksum = "65d09067bfacaa79114679b279d7f5885b53295b1e2cfb4e79c8e4bd3d633169" [[package]] name = "dyn-clonable" @@ -2147,14 +2171,14 @@ checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "dyn-clone" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9b0705efd4599c15a38151f4721f7bc388306f61084d3bfd50bd07fbca5cb60" +checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" [[package]] name = "ecdsa" @@ -2198,7 +2222,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6" dependencies = [ "curve25519-dalek 3.2.0", - "hashbrown", + "hashbrown 0.12.3", "hex", "rand_core 0.6.4", "sha2 0.9.9", @@ -2242,7 +2266,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -2262,18 +2286,18 @@ checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "enumn" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88bcb3a067a6555d577aba299e75eff9942da276e6506fc6274327daa026132" +checksum = "48016319042fb7c87b78d2993084a831793a897a5cd1a2a67cab9d1eeb4b7d76" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.8", ] [[package]] @@ -2319,6 +2343,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "errno" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0" +dependencies = [ + "errno-dragonfly", + "libc", + "windows-sys 0.45.0", +] + [[package]] name = "errno-dragonfly" version = "0.1.2" @@ -2366,7 +2401,20 @@ dependencies = [ "fs-err", "proc-macro2", "quote", - "syn", + "syn 1.0.109", +] + +[[package]] +name = "expander" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f360349150728553f92e4c997a16af8915f418d3a0f21b440d34c5632f16ed84" +dependencies = [ + "blake2", + "fs-err", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] @@ -2383,9 +2431,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" dependencies = [ "instant", ] @@ -2411,7 +2459,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", "thiserror", ] @@ -2436,9 +2484,9 @@ dependencies = [ [[package]] name = "fiat-crypto" -version = "0.1.17" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a214f5bb88731d436478f3ae1f8a277b62124089ba9fb67f4f93fb100ef73c90" +checksum = "93ace6ec7cc19c8ed33a32eaa9ea692d7faea05006b5356b9e2b668ec4bc3955" [[package]] name = "file-per-thread-logger" @@ -2452,21 +2500,21 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.19" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e884668cd0c7480504233e951174ddc3b382f7c2666e3b7310b5c4e7b0c37f9" +checksum = "8a3de6e8d11b22ff9edc6d916f890800597d60f8b2da1caf2955c274638d6412" dependencies = [ "cfg-if", "libc", "redox_syscall", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "finality-grandpa" -version = "0.16.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e24e6c429951433ccb7c87fd528c60084834dcd14763182c1f83291bcde24c34" +checksum = "36530797b9bf31cd4ff126dcfee8170f86b00cfdcea3269d73133cc0415945c3" dependencies = [ "either", "futures", @@ -2525,7 +2573,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "parity-scale-codec", ] @@ -2548,9 +2596,10 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-support", + "frame-support-procedural", "frame-system", "linregress", "log", @@ -2566,12 +2615,13 @@ dependencies = [ "sp-runtime-interface", "sp-std", "sp-storage", + "static_assertions", ] [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "Inflector", "array-bytes 4.2.0", @@ -2618,18 +2668,18 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2646,7 +2696,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-support", "frame-system", @@ -2675,7 +2725,7 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "futures", "log", @@ -2691,9 +2741,10 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ - "bitflags", + "bitflags 1.3.2", + "environmental", "frame-metadata", "frame-support-procedural", "impl-trait-for-tuples", @@ -2723,43 +2774,44 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "Inflector", "cfg-expr", + "derive-syn-parse", "frame-support-procedural-tools", "itertools", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-support", "log", @@ -2777,7 +2829,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -2792,7 +2844,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "parity-scale-codec", "sp-api", @@ -2801,7 +2853,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-support", "parity-scale-codec", @@ -2827,12 +2879,17 @@ dependencies = [ ] [[package]] -name = "fs_extra" -version = "1.2.0" +name = "fs4" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394" - -[[package]] +checksum = "8ea55201cc351fdb478217c0fb641b59813da9b4efe4c414a9d8f989a657d149" +dependencies = [ + "libc", + "rustix 0.35.13", + "winapi", +] + +[[package]] name = "funty" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2840,9 +2897,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.25" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" +checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549" dependencies = [ "futures-channel", "futures-core", @@ -2855,9 +2912,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.25" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" +checksum = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac" dependencies = [ "futures-core", "futures-sink", @@ -2865,15 +2922,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.25" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" +checksum = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd" [[package]] name = "futures-executor" -version = "0.3.25" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" +checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83" dependencies = [ "futures-core", "futures-task", @@ -2883,9 +2940,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.25" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" +checksum = "89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91" [[package]] name = "futures-lite" @@ -2904,13 +2961,13 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.25" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" +checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -2926,15 +2983,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.25" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" +checksum = "ec93083a4aecafb2a80a885c9de1f0ccae9dbd32c2bb54b0c3a65690e0b8d2f2" [[package]] name = "futures-task" -version = "0.3.25" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" +checksum = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879" [[package]] name = "futures-timer" @@ -2944,9 +3001,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.25" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" +checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" dependencies = [ "futures-channel", "futures-core", @@ -3022,22 +3079,22 @@ dependencies = [ [[package]] name = "ghash" -version = "0.3.1" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97304e4cd182c3846f7575ced3890c53012ce534ad9114046b0a9e00bb30a375" +checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" dependencies = [ "opaque-debug 0.3.0", - "polyval 0.4.5", + "polyval 0.5.3", ] [[package]] name = "ghash" -version = "0.4.4" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" +checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" dependencies = [ "opaque-debug 0.3.0", - "polyval 0.5.3", + "polyval 0.6.0", ] [[package]] @@ -3053,9 +3110,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.27.1" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "221996f774192f0f718773def8201c4ae31f02616a54ccfc2d358bb0e5cefdec" +checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" [[package]] name = "glob" @@ -3089,9 +3146,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" +checksum = "5be7b54589b581f624f566bf5d8eb2bab1db736c51528720b6bd36b96b55924d" dependencies = [ "bytes", "fnv", @@ -3122,9 +3179,9 @@ dependencies = [ [[package]] name = "hash-db" -version = "0.15.2" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364a" +checksum = "8e7d7786361d7425ae2fe4f9e407eb0efaa0840f5212d109cc018c40c35c6ab4" [[package]] name = "hash256-std-hasher" @@ -3141,14 +3198,23 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash", + "ahash 0.7.6", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.3", ] [[package]] name = "heck" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" @@ -3168,6 +3234,12 @@ dependencies = [ "libc", ] +[[package]] +name = "hermit-abi" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" + [[package]] name = "hex" version = "0.4.3" @@ -3199,16 +3271,6 @@ dependencies = [ "digest 0.9.0", ] -[[package]] -name = "hmac" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" -dependencies = [ - "crypto-mac 0.10.1", - "digest 0.9.0", -] - [[package]] name = "hmac" version = "0.11.0" @@ -3252,9 +3314,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ "bytes", "fnv", @@ -3298,9 +3360,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.23" +version = "0.14.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" +checksum = "cc5e554ff619822309ffd57d8734d77cd5ce6238bc956f037ea06c58238c9899" dependencies = [ "bytes", "futures-channel", @@ -3337,16 +3399,16 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.53" +version = "0.1.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" +checksum = "0c17cc76786e99f8d2f055c11159e7f0091c42474dcc3189fbab96072e873e6d" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "winapi", + "windows 0.46.0", ] [[package]] @@ -3412,7 +3474,7 @@ dependencies = [ "rtnetlink", "system-configuration", "tokio", - "windows", + "windows 0.34.0", ] [[package]] @@ -3441,7 +3503,7 @@ checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -3451,10 +3513,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.12.3", "serde", ] +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array 0.14.6", +] + [[package]] name = "instant" version = "0.1.12" @@ -3506,12 +3577,13 @@ checksum = "59ce5ef949d49ee85593fc4d3f3f95ad61657076395cbbce23e2121fc5542074" [[package]] name = "io-lifetimes" -version = "1.0.4" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7d6c6f8c91b4b9ed43484ad1a938e393caf35960fce7f82a040497207bd8e9e" +checksum = "09270fd4fa1111bc614ed2246c7ef56239a3063d5be0d1ec3b589c505d400aeb" dependencies = [ + "hermit-abi 0.3.1", "libc", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] @@ -3540,14 +3612,14 @@ checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146" [[package]] name = "is-terminal" -version = "0.4.2" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189" +checksum = "8687c819457e979cc940d09cb16e42a1bf70aa6b60a549de6d3a62a0ee90c69e" dependencies = [ - "hermit-abi 0.2.6", - "io-lifetimes 1.0.4", - "rustix 0.36.7", - "windows-sys 0.42.0", + "hermit-abi 0.3.1", + "io-lifetimes 1.0.9", + "rustix 0.36.11", + "windows-sys 0.45.0", ] [[package]] @@ -3561,24 +3633,24 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" +checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" [[package]] name = "jobserver" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" +checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.60" +version = "0.3.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" dependencies = [ "wasm-bindgen", ] @@ -3656,7 +3728,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -3730,8 +3802,8 @@ dependencies = [ [[package]] name = "kusama-runtime" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "bitvec", "frame-benchmarking", @@ -3781,6 +3853,7 @@ dependencies = [ "pallet-session-benchmarking", "pallet-society", "pallet-staking", + "pallet-staking-runtime-api", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", @@ -3803,9 +3876,9 @@ dependencies = [ "sp-api", "sp-arithmetic", "sp-authority-discovery", - "sp-beefy", "sp-block-builder", "sp-consensus-babe", + "sp-consensus-beefy", "sp-core", "sp-inherents", "sp-io", @@ -3827,8 +3900,8 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "frame-support", "polkadot-primitives", @@ -3886,9 +3959,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.139" +version = "0.2.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" +checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" [[package]] name = "libloading" @@ -3914,16 +3987,16 @@ checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" [[package]] name = "libp2p" -version = "0.50.0" +version = "0.50.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e0a0d2f693675f49ded13c5d510c48b78069e23cbd9108d7ccd59f6dc568819" +checksum = "9c7b0104790be871edcf97db9bd2356604984e623a08d825c3f27852290266b8" dependencies = [ "bytes", "futures", "futures-timer", "getrandom 0.2.8", "instant", - "libp2p-core", + "libp2p-core 0.38.0", "libp2p-dns", "libp2p-identify", "libp2p-kad", @@ -3940,7 +4013,7 @@ dependencies = [ "libp2p-webrtc", "libp2p-websocket", "libp2p-yamux", - "multiaddr", + "multiaddr 0.16.0", "parking_lot 0.12.1", "pin-project", "smallvec", @@ -3961,8 +4034,8 @@ dependencies = [ "futures-timer", "instant", "log", - "multiaddr", - "multihash", + "multiaddr 0.16.0", + "multihash 0.16.3", "multistream-select", "once_cell", "parking_lot 0.12.1", @@ -3980,6 +4053,34 @@ dependencies = [ "zeroize", ] +[[package]] +name = "libp2p-core" +version = "0.39.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b7f8b7d65c070a5a1b5f8f0510648189da08f787b8963f8e21219e0710733af" +dependencies = [ + "either", + "fnv", + "futures", + "futures-timer", + "instant", + "libp2p-identity", + "log", + "multiaddr 0.17.1", + "multihash 0.17.0", + "multistream-select", + "once_cell", + "parking_lot 0.12.1", + "pin-project", + "quick-protobuf", + "rand 0.8.5", + "rw-stream-sink", + "smallvec", + "thiserror", + "unsigned-varint", + "void", +] + [[package]] name = "libp2p-dns" version = "0.38.0" @@ -3987,7 +4088,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e42a271c1b49f789b92f7fc87749fa79ce5c7bdc88cbdfacb818a4bca47fec5" dependencies = [ "futures", - "libp2p-core", + "libp2p-core 0.38.0", "log", "parking_lot 0.12.1", "smallvec", @@ -4003,10 +4104,10 @@ dependencies = [ "asynchronous-codec", "futures", "futures-timer", - "libp2p-core", + "libp2p-core 0.38.0", "libp2p-swarm", "log", - "lru", + "lru 0.8.1", "prost", "prost-build", "prost-codec", @@ -4015,6 +4116,24 @@ dependencies = [ "void", ] +[[package]] +name = "libp2p-identity" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a8ea433ae0cea7e3315354305237b9897afe45278b2118a7a57ca744e70fd27" +dependencies = [ + "bs58", + "ed25519-dalek", + "log", + "multiaddr 0.17.1", + "multihash 0.17.0", + "prost", + "quick-protobuf", + "rand 0.8.5", + "thiserror", + "zeroize", +] + [[package]] name = "libp2p-kad" version = "0.42.1" @@ -4029,7 +4148,7 @@ dependencies = [ "futures", "futures-timer", "instant", - "libp2p-core", + "libp2p-core 0.38.0", "libp2p-swarm", "log", "prost", @@ -4052,7 +4171,7 @@ dependencies = [ "data-encoding", "futures", "if-watch", - "libp2p-core", + "libp2p-core 0.38.0", "libp2p-swarm", "log", "rand 0.8.5", @@ -4069,7 +4188,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ad8a64f29da86005c86a4d2728b8a0719e9b192f4092b609fd8790acb9dec55" dependencies = [ - "libp2p-core", + "libp2p-core 0.38.0", "libp2p-identify", "libp2p-kad", "libp2p-ping", @@ -4086,7 +4205,7 @@ dependencies = [ "asynchronous-codec", "bytes", "futures", - "libp2p-core", + "libp2p-core 0.38.0", "log", "nohash-hasher", "parking_lot 0.12.1", @@ -4104,7 +4223,7 @@ dependencies = [ "bytes", "curve25519-dalek 3.2.0", "futures", - "libp2p-core", + "libp2p-core 0.38.0", "log", "once_cell", "prost", @@ -4127,7 +4246,7 @@ dependencies = [ "futures", "futures-timer", "instant", - "libp2p-core", + "libp2p-core 0.38.0", "libp2p-swarm", "log", "rand 0.8.5", @@ -4144,7 +4263,7 @@ dependencies = [ "futures", "futures-timer", "if-watch", - "libp2p-core", + "libp2p-core 0.38.0", "libp2p-tls", "log", "parking_lot 0.12.1", @@ -4165,7 +4284,7 @@ dependencies = [ "bytes", "futures", "instant", - "libp2p-core", + "libp2p-core 0.38.0", "libp2p-swarm", "log", "rand 0.8.5", @@ -4184,7 +4303,7 @@ dependencies = [ "futures", "futures-timer", "instant", - "libp2p-core", + "libp2p-core 0.38.0", "libp2p-swarm-derive", "log", "pin-project", @@ -4203,7 +4322,7 @@ checksum = "9d527d5827582abd44a6d80c07ff8b50b4ee238a8979e05998474179e79dc400" dependencies = [ "heck", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -4216,7 +4335,7 @@ dependencies = [ "futures-timer", "if-watch", "libc", - "libp2p-core", + "libp2p-core 0.38.0", "log", "socket2", "tokio", @@ -4224,13 +4343,14 @@ dependencies = [ [[package]] name = "libp2p-tls" -version = "0.1.0-alpha" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7905ce0d040576634e8a3229a7587cc8beab83f79db6023800f1792895defa8" +checksum = "ff08d13d0dc66e5e9ba6279c1de417b84fa0d0adc3b03e5732928c180ec02781" dependencies = [ "futures", "futures-rustls", - "libp2p-core", + "libp2p-core 0.39.1", + "libp2p-identity", "rcgen 0.10.0", "ring", "rustls 0.20.8", @@ -4248,7 +4368,7 @@ checksum = "1bb1a35299860e0d4b3c02a3e74e3b293ad35ae0cee8a056363b0c862d082069" dependencies = [ "futures", "js-sys", - "libp2p-core", + "libp2p-core 0.38.0", "parity-send-wrapper", "wasm-bindgen", "wasm-bindgen-futures", @@ -4267,10 +4387,10 @@ dependencies = [ "futures-timer", "hex", "if-watch", - "libp2p-core", + "libp2p-core 0.38.0", "libp2p-noise", "log", - "multihash", + "multihash 0.16.3", "prost", "prost-build", "prost-codec", @@ -4294,7 +4414,7 @@ dependencies = [ "either", "futures", "futures-rustls", - "libp2p-core", + "libp2p-core 0.38.0", "log", "parking_lot 0.12.1", "quicksink", @@ -4311,7 +4431,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f63594a0aa818642d9d4915c791945053877253f08a3626f13416b5cd928a29" dependencies = [ "futures", - "libp2p-core", + "libp2p-core 0.38.0", "log", "parking_lot 0.12.1", "thiserror", @@ -4320,9 +4440,9 @@ dependencies = [ [[package]] name = "librocksdb-sys" -version = "0.8.0+7.4.4" +version = "0.8.3+7.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611804e4666a25136fcc5f8cf425ab4d26c7f74ea245ffe92ea23b85b6420b5d" +checksum = "557b255ff04123fcc176162f56ed0c9cd42d8f357cf55b3fabeb60f7413741b3" dependencies = [ "bindgen", "bzip2-sys", @@ -4418,12 +4538,11 @@ dependencies = [ [[package]] name = "linregress" -version = "0.4.4" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c601a85f5ecd1aba625247bca0031585fb1c446461b142878a16f8245ddeb8" +checksum = "475015a7f8f017edb28d2e69813be23500ad4b32cfe3421c4148efc97324ee52" dependencies = [ "nalgebra", - "statrs", ] [[package]] @@ -4438,6 +4557,12 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" +[[package]] +name = "linux-raw-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd550e73688e6d578f0ac2119e32b797a327631a42f9433e59d02e139c8df60d" + [[package]] name = "lock_api" version = "0.4.9" @@ -4463,7 +4588,16 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6e8aaa3f231bb4bd57b84b2d5dc3ae7f350265df8aa96492e0bc394a1571909" dependencies = [ - "hashbrown", + "hashbrown 0.12.3", +] + +[[package]] +name = "lru" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e7d46de488603ffdd5f30afbc64fbba2378214a2c3a2fb83abf3d33126df17" +dependencies = [ + "hashbrown 0.13.2", ] [[package]] @@ -4555,14 +4689,14 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b20a59d985586e4a5aef64564ac77299f8586d8be6cf9106a5a40207e8908efb" dependencies = [ - "rustix 0.36.7", + "rustix 0.36.11", ] [[package]] name = "memmap2" -version = "0.5.8" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" dependencies = [ "libc", ] @@ -4578,21 +4712,20 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" dependencies = [ "autocfg", ] [[package]] name = "memory-db" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e0c7cba9ce19ac7ffd2053ac9f49843bbd3f4318feedfd74e85c19d5fb0ba66" +checksum = "808b50db46293432a45e63bc15ea51e0ab4c0a1647b8eb114e31a3e698dd6fbe" dependencies = [ "hash-db", - "hashbrown", ] [[package]] @@ -4641,20 +4774,20 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" +checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" dependencies = [ "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "futures", "log", @@ -4662,9 +4795,9 @@ dependencies = [ "sc-client-api", "sc-offchain", "sp-api", - "sp-beefy", "sp-blockchain", "sp-consensus", + "sp-consensus-beefy", "sp-core", "sp-mmr-primitives", "sp-runtime", @@ -4673,7 +4806,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "anyhow", "jsonrpsee", @@ -4710,7 +4843,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -4723,7 +4856,26 @@ dependencies = [ "byteorder", "data-encoding", "multibase", - "multihash", + "multihash 0.16.3", + "percent-encoding", + "serde", + "static_assertions", + "unsigned-varint", + "url", +] + +[[package]] +name = "multiaddr" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b36f567c7099511fa8612bbbb52dda2419ce0bdbacf31714e3a5ffdb766d3bd" +dependencies = [ + "arrayref", + "byteorder", + "data-encoding", + "log", + "multibase", + "multihash 0.17.0", "percent-encoding", "serde", "static_assertions", @@ -4759,6 +4911,19 @@ dependencies = [ "unsigned-varint", ] +[[package]] +name = "multihash" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" +dependencies = [ + "core2", + "digest 0.10.6", + "multihash-derive", + "sha2 0.10.6", + "unsigned-varint", +] + [[package]] name = "multihash-derive" version = "0.8.0" @@ -4769,7 +4934,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.109", "synstructure", ] @@ -4795,9 +4960,9 @@ dependencies = [ [[package]] name = "nalgebra" -version = "0.27.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120" +checksum = "d68d47bba83f9e2006d117a9a33af1524e655516b8919caac694427a6fb1e511" dependencies = [ "approx", "matrixmultiply", @@ -4805,21 +4970,19 @@ dependencies = [ "num-complex", "num-rational", "num-traits", - "rand 0.8.5", - "rand_distr", "simba", "typenum", ] [[package]] name = "nalgebra-macros" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" +checksum = "d232c68884c0c99810a5a4d333ef7e47689cfd0edc85efc9e54e1e6bf5212766" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -4856,7 +5019,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" dependencies = [ "anyhow", - "bitflags", + "bitflags 1.3.2", "byteorder", "libc", "netlink-packet-core", @@ -4865,9 +5028,9 @@ dependencies = [ [[package]] name = "netlink-packet-utils" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25af9cf0dc55498b7bd94a1508af7a78706aa0ab715a73c5169273e03c84845e" +checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34" dependencies = [ "anyhow", "byteorder", @@ -4892,9 +5055,9 @@ dependencies = [ [[package]] name = "netlink-sys" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "260e21fbb6f3d253a14df90eb0000a6066780a15dd901a7519ce02d77a94985b" +checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411" dependencies = [ "bytes", "futures", @@ -4909,7 +5072,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "libc", "memoffset 0.6.5", @@ -4931,15 +5094,6 @@ dependencies = [ "minimal-lexical", ] -[[package]] -name = "nom8" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae01545c9c7fc4486ab7debaf2aad7003ac19431791868fb2e8066df97fad2f8" -dependencies = [ - "memchr", -] - [[package]] name = "normalize-line-endings" version = "0.3.0" @@ -5005,7 +5159,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", - "libm 0.2.6", ] [[package]] @@ -5025,7 +5178,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" dependencies = [ "crc32fast", - "hashbrown", + "hashbrown 0.12.3", "indexmap", "memchr", ] @@ -5054,14 +5207,14 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" dependencies = [ - "asn1-rs 0.5.1", + "asn1-rs 0.5.2", ] [[package]] name = "once_cell" -version = "1.17.0" +version = "1.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" +checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" [[package]] name = "opaque-debug" @@ -5083,9 +5236,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "orchestra" -version = "0.0.4" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17e7d5b6bb115db09390bed8842c94180893dd83df3dfce7354f2a2aa090a4ee" +checksum = "2b0766f60d83cac01c6e3f3bc36aaa9056e48bea0deddb98a8c74de6021f3061" dependencies = [ "async-trait", "dyn-clonable", @@ -5100,17 +5253,18 @@ dependencies = [ [[package]] name = "orchestra-proc-macro" -version = "0.0.4" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2af4dabb2286b0be0e9711d2d24e25f6217048b71210cffd3daddc3b5c84e1f" +checksum = "3c8e83dbd049009426b445424a1104c78e6172a4c13e3614e52a38262785a5d7" dependencies = [ - "expander 0.0.6", + "expander 1.0.0", + "indexmap", "itertools", "petgraph", "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -5124,9 +5278,9 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "6.4.1" +version = "6.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" +checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" [[package]] name = "p256" @@ -5163,7 +5317,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-support", "frame-system", @@ -5179,7 +5333,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-support", "frame-system", @@ -5195,14 +5349,13 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-authorship", "sp-runtime", "sp-std", ] @@ -5210,7 +5363,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5234,7 +5387,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5254,7 +5407,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5269,26 +5422,29 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-support", "frame-system", + "pallet-authorship", "pallet-session", "parity-scale-codec", "scale-info", "serde", - "sp-beefy", + "sp-consensus-beefy", "sp-runtime", + "sp-session", + "sp-staking", "sp-std", ] [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "array-bytes 4.2.0", - "beefy-merkle-tree", + "binary-merkle-tree", "frame-support", "frame-system", "log", @@ -5298,7 +5454,8 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-beefy", + "sp-api", + "sp-consensus-beefy", "sp-core", "sp-io", "sp-runtime", @@ -5308,7 +5465,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5326,7 +5483,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5345,7 +5502,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "frame-benchmarking", "frame-support", @@ -5364,7 +5521,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5381,7 +5538,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "assert_matches", "frame-benchmarking", @@ -5398,7 +5555,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5416,7 +5573,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5439,7 +5596,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5452,7 +5609,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5470,7 +5627,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5488,7 +5645,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5499,8 +5656,8 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-application-crypto", + "sp-consensus-grandpa", "sp-core", - "sp-finality-grandpa", "sp-io", "sp-runtime", "sp-session", @@ -5511,7 +5668,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5527,7 +5684,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5547,7 +5704,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5564,7 +5721,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5581,7 +5738,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5598,7 +5755,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5614,7 +5771,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5630,7 +5787,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-support", "frame-system", @@ -5647,7 +5804,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5667,8 +5824,9 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ + "pallet-nomination-pools", "parity-scale-codec", "sp-api", "sp-std", @@ -5677,7 +5835,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-support", "frame-system", @@ -5694,12 +5852,13 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-election-provider-support", "frame-support", "frame-system", + "log", "pallet-babe", "pallet-balances", "pallet-grandpa", @@ -5717,7 +5876,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5734,7 +5893,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5749,7 +5908,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5767,7 +5926,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5782,7 +5941,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "assert_matches", "frame-benchmarking", @@ -5801,7 +5960,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5818,7 +5977,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-support", "frame-system", @@ -5839,7 +5998,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5855,7 +6014,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-support", "frame-system", @@ -5869,7 +6028,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5892,27 +6051,36 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "log", "sp-arithmetic", ] +[[package]] +name = "pallet-staking-runtime-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +dependencies = [ + "parity-scale-codec", + "sp-api", +] + [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5929,7 +6097,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-support", "frame-system", @@ -5958,7 +6126,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5976,7 +6144,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -5995,7 +6163,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-support", "frame-system", @@ -6011,7 +6179,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -6027,7 +6195,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6039,7 +6207,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -6056,7 +6224,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -6072,7 +6240,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -6087,7 +6255,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-benchmarking", "frame-support", @@ -6101,9 +6269,11 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ + "bounded-collections", + "frame-benchmarking", "frame-support", "frame-system", "log", @@ -6111,6 +6281,7 @@ dependencies = [ "scale-info", "serde", "sp-core", + "sp-io", "sp-runtime", "sp-std", "xcm", @@ -6119,8 +6290,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "frame-benchmarking", "frame-support", @@ -6128,16 +6299,18 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", + "sp-io", "sp-runtime", "sp-std", "xcm", + "xcm-builder", "xcm-executor", ] [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.37#09418fc04c2608b123f36ca80f16df3d2096753b" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -6154,7 +6327,6 @@ dependencies = [ "cumulus-client-cli", "cumulus-client-consensus-aura", "cumulus-client-consensus-common", - "cumulus-client-network", "cumulus-client-service", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", @@ -6168,7 +6340,6 @@ dependencies = [ "parity-scale-codec", "polkadot-cli", "polkadot-primitives", - "polkadot-service", "sc-basic-authorship", "sc-chain-spec", "sc-cli", @@ -6176,7 +6347,7 @@ dependencies = [ "sc-consensus", "sc-executor", "sc-network", - "sc-network-common", + "sc-network-sync", "sc-rpc", "sc-service", "sc-sysinfo", @@ -6192,11 +6363,8 @@ dependencies = [ "sp-core", "sp-io", "sp-keystore", - "sp-offchain", "sp-runtime", - "sp-session", "sp-timestamp", - "sp-transaction-pool", "substrate-build-script-utils", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", @@ -6262,9 +6430,9 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.4.3" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd684a725651d9588ef21f140a328b6b4f64e646b2e931f3e6f14f75eedf9980" +checksum = "00bfb81cf5c90a222db2fb7b3a7cbf8cc7f38dfb6647aca4d98edf8281f56ed5" dependencies = [ "blake2", "crc32fast", @@ -6276,14 +6444,15 @@ dependencies = [ "memmap2", "parking_lot 0.12.1", "rand 0.8.5", + "siphasher", "snap", ] [[package]] name = "parity-scale-codec" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3840933452adf7b3b9145e27086a5a3376c619dca1a21b1e5a5af0d54979bed" +checksum = "637935964ff85a605d114591d4d2c13c5d1ba2806dae97cea6bf180238a749ac" dependencies = [ "arrayvec 0.7.2", "bitvec", @@ -6303,7 +6472,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -6342,7 +6511,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.6", + "parking_lot_core 0.9.7", ] [[package]] @@ -6361,22 +6530,22 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.6" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba1ef8814b5c993410bb3adfad7a5ed269563e4a2f90c41f5d85be7fb47133bf" +checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "paste" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba" +checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" [[package]] name = "pbkdf2" @@ -6428,9 +6597,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pest" -version = "2.5.4" +version = "2.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ab62d2fa33726dbe6321cc97ef96d8cde531e3eeaf858a058de53a8a6d40d8f" +checksum = "8cbd939b234e95d72bc393d51788aec68aeeb5d51e748ca08ff3aad58cb722f7" dependencies = [ "thiserror", "ucd-trie", @@ -6438,9 +6607,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.5.4" +version = "2.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf026e2d0581559db66d837fe5242320f525d85c76283c61f4d51a1238d65ea" +checksum = "a81186863f3d0a27340815be8f2078dd8050b14cd71913db9fbda795e5f707d7" dependencies = [ "pest", "pest_generator", @@ -6448,22 +6617,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.5.4" +version = "2.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b27bd18aa01d91c8ed2b61ea23406a676b42d82609c6e2581fba42f0c15f17f" +checksum = "75a1ef20bf3193c15ac345acb32e26b3dc3223aff4d77ae4fc5359567683796b" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "pest_meta" -version = "2.5.4" +version = "2.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f02b677c1859756359fc9983c2e56a0237f18624a3789528804406b7e915e5d" +checksum = "5e3b284b1f13a20dc5ebc90aff59a51b8d7137c221131b52a7260c08cbc1cc80" dependencies = [ "once_cell", "pest", @@ -6472,9 +6641,9 @@ dependencies = [ [[package]] name = "petgraph" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143" +checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" dependencies = [ "fixedbitset", "indexmap", @@ -6497,7 +6666,7 @@ checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -6548,8 +6717,8 @@ checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" [[package]] name = "polkadot-approval-distribution" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "futures", "polkadot-node-metrics", @@ -6563,8 +6732,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "futures", "polkadot-node-network-protocol", @@ -6577,13 +6746,13 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "derive_more", "fatality", "futures", - "lru", + "lru 0.9.0", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6600,12 +6769,12 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "fatality", "futures", - "lru", + "lru 0.9.0", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6621,8 +6790,8 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "clap", "frame-benchmarking-cli", @@ -6636,6 +6805,7 @@ dependencies = [ "sc-cli", "sc-executor", "sc-service", + "sc-storage-monitor", "sc-sysinfo", "sc-tracing", "sp-core", @@ -6648,8 +6818,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "async-trait", "frame-benchmarking", @@ -6670,13 +6840,13 @@ dependencies = [ "sc-service", "sp-api", "sp-authority-discovery", - "sp-beefy", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-babe", + "sp-consensus-beefy", + "sp-consensus-grandpa", "sp-core", - "sp-finality-grandpa", "sp-inherents", "sp-keyring", "sp-mmr-primitives", @@ -6690,8 +6860,8 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "always-assert", "bitvec", @@ -6712,8 +6882,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "parity-scale-codec", "scale-info", @@ -6724,15 +6894,15 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "derive_more", "fatality", "futures", "futures-timer", "indexmap", - "lru", + "lru 0.9.0", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -6749,8 +6919,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6763,8 +6933,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "futures", "futures-timer", @@ -6783,8 +6953,8 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "always-assert", "async-trait", @@ -6799,7 +6969,6 @@ dependencies = [ "polkadot-overseer", "polkadot-primitives", "sc-network", - "sc-network-common", "sp-consensus", "thiserror", "tracing-gum", @@ -6807,8 +6976,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "futures", "parity-scale-codec", @@ -6825,15 +6994,15 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "bitvec", "derive_more", "futures", "futures-timer", "kvdb", - "lru", + "lru 0.9.0", "merlin", "parity-scale-codec", "polkadot-node-jaeger", @@ -6854,8 +7023,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "bitvec", "futures", @@ -6868,14 +7037,15 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", + "sp-consensus", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-backing" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "bitvec", "fatality", @@ -6893,8 +7063,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "futures", "polkadot-node-subsystem", @@ -6908,8 +7078,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "async-trait", "futures", @@ -6919,6 +7089,7 @@ dependencies = [ "polkadot-node-metrics", "polkadot-node-primitives", "polkadot-node-subsystem", + "polkadot-node-subsystem-util", "polkadot-parachain", "polkadot-primitives", "sp-maybe-compressed-blob", @@ -6927,8 +7098,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "futures", "polkadot-node-metrics", @@ -6942,8 +7113,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "futures", "futures-timer", @@ -6959,13 +7130,13 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "fatality", "futures", "kvdb", - "lru", + "lru 0.9.0", "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -6978,8 +7149,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "async-trait", "futures", @@ -6995,8 +7166,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "bitvec", "fatality", @@ -7013,19 +7184,22 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "always-assert", "assert_matches", "cpu-time", "futures", "futures-timer", + "libc", "parity-scale-codec", "pin-project", "polkadot-core-primitives", "polkadot-node-metrics", + "polkadot-node-primitives", "polkadot-parachain", + "polkadot-primitives", "rand 0.8.5", "rayon", "sc-executor", @@ -7039,14 +7213,15 @@ dependencies = [ "sp-tracing", "sp-wasm-interface", "tempfile", + "tikv-jemalloc-ctl", "tokio", "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "futures", "polkadot-node-primitives", @@ -7061,11 +7236,11 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "futures", - "lru", + "lru 0.9.0", "polkadot-node-metrics", "polkadot-node-subsystem", "polkadot-node-subsystem-types", @@ -7076,8 +7251,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "lazy_static", "log", @@ -7094,8 +7269,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "bs58", "futures", @@ -7113,8 +7288,8 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "async-trait", "derive_more", @@ -7128,7 +7303,6 @@ dependencies = [ "rand 0.8.5", "sc-authority-discovery", "sc-network", - "sc-network-common", "strum", "thiserror", "tracing-gum", @@ -7136,8 +7310,8 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "bounded-vec", "futures", @@ -7152,14 +7326,15 @@ dependencies = [ "sp-core", "sp-keystore", "sp-maybe-compressed-blob", + "sp-runtime", "thiserror", "zstd", ] [[package]] name = "polkadot-node-subsystem" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -7168,8 +7343,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "async-trait", "derive_more", @@ -7191,8 +7366,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "async-trait", "derive_more", @@ -7201,7 +7376,7 @@ dependencies = [ "futures-channel", "itertools", "kvdb", - "lru", + "lru 0.9.0", "parity-db", "parity-scale-codec", "parking_lot 0.11.2", @@ -7224,13 +7399,13 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "async-trait", "futures", "futures-timer", - "lru", + "lru 0.9.0", "orchestra", "parking_lot 0.12.1", "polkadot-node-metrics", @@ -7247,9 +7422,10 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ + "bounded-collections", "derive_more", "frame-support", "parity-scale-codec", @@ -7263,8 +7439,8 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "env_logger 0.9.3", "kusama-runtime", @@ -7272,14 +7448,15 @@ dependencies = [ "polkadot-erasure-coding", "polkadot-node-core-pvf", "polkadot-node-primitives", + "polkadot-primitives", "quote", "thiserror", ] [[package]] name = "polkadot-primitives" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "bitvec", "hex-literal", @@ -7304,11 +7481,9 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ - "beefy-gadget", - "beefy-gadget-rpc", "jsonrpsee", "mmr-rpc", "pallet-transaction-payment-rpc", @@ -7317,9 +7492,11 @@ dependencies = [ "sc-client-api", "sc-consensus-babe", "sc-consensus-babe-rpc", + "sc-consensus-beefy", + "sc-consensus-beefy-rpc", "sc-consensus-epochs", - "sc-finality-grandpa", - "sc-finality-grandpa-rpc", + "sc-consensus-grandpa", + "sc-consensus-grandpa-rpc", "sc-rpc", "sc-sync-state-rpc", "sc-transaction-pool-api", @@ -7336,8 +7513,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "bitvec", "frame-benchmarking", @@ -7381,6 +7558,7 @@ dependencies = [ "pallet-session-benchmarking", "pallet-staking", "pallet-staking-reward-curve", + "pallet-staking-runtime-api", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", @@ -7401,9 +7579,9 @@ dependencies = [ "smallvec", "sp-api", "sp-authority-discovery", - "sp-beefy", "sp-block-builder", "sp-consensus-babe", + "sp-consensus-beefy", "sp-core", "sp-inherents", "sp-io", @@ -7425,8 +7603,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "bitvec", "frame-benchmarking", @@ -7438,10 +7616,9 @@ dependencies = [ "log", "pallet-authorship", "pallet-babe", - "pallet-bags-list", "pallet-balances", - "pallet-beefy-mmr", "pallet-election-provider-multi-phase", + "pallet-fast-unstake", "pallet-session", "pallet-staking", "pallet-staking-reward-fn", @@ -7458,7 +7635,6 @@ dependencies = [ "serde_derive", "slot-range-helper", "sp-api", - "sp-beefy", "sp-core", "sp-inherents", "sp-io", @@ -7473,8 +7649,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "frame-support", "polkadot-primitives", @@ -7487,8 +7663,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "bs58", "parity-scale-codec", @@ -7499,10 +7675,10 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ - "bitflags", + "bitflags 1.3.2", "bitvec", "derive_more", "frame-benchmarking", @@ -7518,6 +7694,7 @@ dependencies = [ "pallet-timestamp", "pallet-vesting", "parity-scale-codec", + "polkadot-parachain", "polkadot-primitives", "polkadot-runtime-metrics", "rand 0.8.5", @@ -7542,11 +7719,11 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "async-trait", - "beefy-gadget", + "frame-benchmarking-cli", "frame-support", "frame-system-rpc-runtime-api", "futures", @@ -7554,7 +7731,8 @@ dependencies = [ "kusama-runtime", "kvdb", "kvdb-rocksdb", - "lru", + "log", + "lru 0.9.0", "mmr-gadget", "pallet-babe", "pallet-im-online", @@ -7605,12 +7783,14 @@ dependencies = [ "sc-client-db", "sc-consensus", "sc-consensus-babe", + "sc-consensus-beefy", + "sc-consensus-grandpa", "sc-consensus-slots", "sc-executor", - "sc-finality-grandpa", "sc-keystore", "sc-network", "sc-network-common", + "sc-network-sync", "sc-offchain", "sc-service", "sc-sync-state-rpc", @@ -7621,13 +7801,13 @@ dependencies = [ "serde_json", "sp-api", "sp-authority-discovery", - "sp-beefy", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-babe", + "sp-consensus-beefy", + "sp-consensus-grandpa", "sp-core", - "sp-finality-grandpa", "sp-inherents", "sp-io", "sp-keystore", @@ -7648,8 +7828,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "arrayvec 0.5.2", "fatality", @@ -7669,8 +7849,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7679,16 +7859,18 @@ dependencies = [ [[package]] name = "polling" -version = "2.5.2" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22122d5ec4f9fe1b3916419b76be1e80bcb93f618d071d2edf841b137b2a2bd6" +checksum = "7e1f879b2998099c2d69ab9605d145d5b661195627eccc680002c4918a7fb6fa" dependencies = [ "autocfg", + "bitflags 1.3.2", "cfg-if", + "concurrent-queue", "libc", "log", - "wepoll-ffi", - "windows-sys 0.42.0", + "pin-project-lite 0.2.9", + "windows-sys 0.45.0", ] [[package]] @@ -7699,30 +7881,31 @@ checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" dependencies = [ "cpufeatures", "opaque-debug 0.3.0", - "universal-hash", + "universal-hash 0.4.1", ] [[package]] name = "polyval" -version = "0.4.5" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eebcc4aa140b9abd2bc40d9c3f7ccec842679cd79045ac3a7ac698c1a064b7cd" +checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" dependencies = [ - "cpuid-bool", + "cfg-if", + "cpufeatures", "opaque-debug 0.3.0", - "universal-hash", + "universal-hash 0.4.1", ] [[package]] name = "polyval" -version = "0.5.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" +checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6" dependencies = [ "cfg-if", "cpufeatures", "opaque-debug 0.3.0", - "universal-hash", + "universal-hash 0.5.0", ] [[package]] @@ -7747,15 +7930,15 @@ dependencies = [ [[package]] name = "predicates-core" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72f883590242d3c6fc5bf50299011695fa6590c2c70eac95ee1bdb9a733ad1a2" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" [[package]] name = "predicates-tree" -version = "1.0.7" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ff541861505aabf6ea722d2131ee980b8276e10a1297b94e896dd8b621850d" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" dependencies = [ "predicates-core", "termtree", @@ -7763,12 +7946,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.1.23" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e97e3215779627f01ee256d2fad52f3d95e8e1c11e9fc6fd08f7cd455d5d5c78" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" dependencies = [ "proc-macro2", - "syn", + "syn 1.0.109", ] [[package]] @@ -7786,10 +7969,11 @@ dependencies = [ [[package]] name = "prioritized-metered-channel" -version = "0.2.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "382698e48a268c832d0b181ed438374a6bb708a82a8ca273bb0f61c74cf209c4" +checksum = "a3caef72a78ca8e77cbdfa87dd516ebb79d4cbe5b42e3b8435b463a8261339ff" dependencies = [ + "async-channel", "coarsetime", "crossbeam-queue", "derive_more", @@ -7802,9 +7986,9 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66618389e4ec1c7afe67d51a9bf34ff9236480f8d51e7489b7d5ab0303c13f34" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ "once_cell", "toml_edit", @@ -7819,7 +8003,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", - "syn", + "syn 1.0.109", "version_check", ] @@ -7836,9 +8020,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.50" +version = "1.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2" +checksum = "ba466839c78239c09faf015484e5cc04860f88242cff4d03eb038f04b4699b73" dependencies = [ "unicode-ident", ] @@ -7877,14 +8061,14 @@ checksum = "66a455fbcb954c1a7decf3c586e860fd7889cddf4b8e164be736dbac95a953cd" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "prost" -version = "0.11.6" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21dc42e00223fc37204bd4aa177e69420c604ca4a183209a8f9de30c6d934698" +checksum = "e48e50df39172a3e7eb17e14642445da64996989bc212b583015435d39a58537" dependencies = [ "bytes", "prost-derive", @@ -7892,9 +8076,9 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.11.6" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f8ad728fb08fe212df3c05169e940fbb6d9d16a877ddde14644a983ba2012e" +checksum = "2c828f93f5ca4826f97fedcbd3f9a536c16b12cff3dbbb4a007f932bbad95b12" dependencies = [ "bytes", "heck", @@ -7907,7 +8091,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn", + "syn 1.0.109", "tempfile", "which", ] @@ -7927,24 +8111,23 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.11.6" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bda8c0881ea9f722eb9629376db3d0b903b462477c1aafcb0566610ac28ac5d" +checksum = "4ea9b0f8cbe5e15a8a042d030bd96668db28ecb567ec37d691971ff5731d2b1b" dependencies = [ "anyhow", "itertools", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "prost-types" -version = "0.11.6" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e0526209433e96d83d750dd81a99118edbc55739e7e61a46764fd2ad537788" +checksum = "379119666929a1afd7a043aa6cf96fa67a6dce9af60c88095a4686dbce4c9c88" dependencies = [ - "bytes", "prost", ] @@ -7963,6 +8146,15 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +[[package]] +name = "quick-protobuf" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d6da84cc204722a989e01ba2f6e1e276e190f22263d0cb6ce8526fcdb0d2e1f" +dependencies = [ + "byteorder", +] + [[package]] name = "quicksink" version = "0.1.2" @@ -7994,9 +8186,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.23" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" +checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" dependencies = [ "proc-macro2", ] @@ -8069,16 +8261,6 @@ dependencies = [ "getrandom 0.2.8", ] -[[package]] -name = "rand_distr" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" -dependencies = [ - "num-traits", - "rand 0.8.5", -] - [[package]] name = "rand_hc" version = "0.2.0" @@ -8105,9 +8287,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" +checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" dependencies = [ "either", "rayon-core", @@ -8115,9 +8297,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.10.2" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b" +checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" dependencies = [ "crossbeam-channel", "crossbeam-deque", @@ -8133,7 +8315,7 @@ checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" dependencies = [ "pem", "ring", - "time 0.3.17", + "time 0.3.20", "x509-parser 0.13.2", "yasna", ] @@ -8146,7 +8328,7 @@ checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" dependencies = [ "pem", "ring", - "time 0.3.17", + "time 0.3.20", "yasna", ] @@ -8156,7 +8338,7 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] @@ -8185,29 +8367,29 @@ dependencies = [ [[package]] name = "ref-cast" -version = "1.0.14" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c78fb8c9293bcd48ef6fce7b4ca950ceaf21210de6e105a883ee280c0f7b9ed" +checksum = "f43faa91b1c8b36841ee70e97188a869d37ae21759da6846d4be66de5bf7b12c" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.14" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9c0c92af03644e4806106281fe2e068ac5bc0ae74a707266d06ea27bccee5f" +checksum = "8d2275aab483050ab2a7364c1a46604865ee7d6906684e08db0f090acf74f9e7" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.8", ] [[package]] name = "regalloc2" -version = "0.3.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d43a209257d978ef079f3d446331d0f1794f5e0fc19b306a199983857833a779" +checksum = "300d4fbfb40c1c66a78ba3ddd41c1110247cf52f97b87d0f2fc9209bd49b030c" dependencies = [ "fxhash", "log", @@ -8217,9 +8399,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.7.1" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" +checksum = "cce168fea28d3e05f158bda4576cf0c844d5045bc2cc3620fa0292ed5bb5814c" dependencies = [ "aho-corasick", "memchr", @@ -8237,16 +8419,19 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.28" +version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] -name = "remove_dir_all" -version = "0.5.3" +name = "region" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" dependencies = [ + "bitflags 1.3.2", + "libc", + "mach", "winapi", ] @@ -8298,10 +8483,10 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ - "beefy-merkle-tree", + "binary-merkle-tree", "frame-benchmarking", "frame-executive", "frame-support", @@ -8361,9 +8546,9 @@ dependencies = [ "smallvec", "sp-api", "sp-authority-discovery", - "sp-beefy", "sp-block-builder", "sp-consensus-babe", + "sp-consensus-beefy", "sp-core", "sp-inherents", "sp-io", @@ -8384,8 +8569,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "frame-support", "polkadot-primitives", @@ -8459,9 +8644,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" +checksum = "d4a36c42d1873f9a77c53bde094f9664d9891bc604a45b4798fd2c389ed12e5b" [[package]] name = "rustc-hash" @@ -8481,7 +8666,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.16", + "semver 1.0.17", ] [[package]] @@ -8499,8 +8684,8 @@ version = "0.35.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "727a1a6d65f786ec22df8a81ca3121107f235970dc1705ed681d3e6e8b9cd5f9" dependencies = [ - "bitflags", - "errno", + "bitflags 1.3.2", + "errno 0.2.8", "io-lifetimes 0.7.5", "libc", "linux-raw-sys 0.0.46", @@ -8509,16 +8694,30 @@ dependencies = [ [[package]] name = "rustix" -version = "0.36.7" +version = "0.36.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fdebc4b395b7fbb9ab11e462e20ed9051e7b16e42d24042c776eca0ac81b03" +checksum = "db4165c9963ab29e422d6c26fbc1d37f15bace6b2810221f9d925023480fcf0e" dependencies = [ - "bitflags", - "errno", - "io-lifetimes 1.0.4", + "bitflags 1.3.2", + "errno 0.2.8", + "io-lifetimes 1.0.9", "libc", "linux-raw-sys 0.1.4", - "windows-sys 0.42.0", + "windows-sys 0.45.0", +] + +[[package]] +name = "rustix" +version = "0.37.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b24138615de35e32031d041a09032ef3487a616d901ca4db224e7d557efae2" +dependencies = [ + "bitflags 1.3.2", + "errno 0.3.0", + "io-lifetimes 1.0.9", + "libc", + "linux-raw-sys 0.3.0", + "windows-sys 0.45.0", ] [[package]] @@ -8569,9 +8768,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" +checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" [[package]] name = "rw-stream-sink" @@ -8586,9 +8785,18 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" +checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" + +[[package]] +name = "safe_arch" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "794821e4ccb0d9f979512f9c1973480123f9bd62a90d74ab0f9426fcf8f4a529" +dependencies = [ + "bytemuck", +] [[package]] name = "same-file" @@ -8602,7 +8810,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "log", "sp-core", @@ -8613,7 +8821,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "async-trait", "futures", @@ -8626,6 +8834,7 @@ dependencies = [ "prost-build", "rand 0.8.5", "sc-client-api", + "sc-network", "sc-network-common", "sp-api", "sp-authority-discovery", @@ -8640,7 +8849,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "futures", "futures-timer", @@ -8663,7 +8872,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8673,39 +8882,42 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", - "sp-state-machine", ] [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "memmap2", "sc-chain-spec-derive", - "sc-network-common", + "sc-client-api", + "sc-executor", + "sc-network", "sc-telemetry", "serde", "serde_json", + "sp-blockchain", "sp-core", "sp-runtime", + "sp-state-machine", ] [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "array-bytes 4.2.0", "chrono", @@ -8745,7 +8957,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "fnv", "futures", @@ -8771,7 +8983,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "hash-db", "kvdb", @@ -8784,6 +8996,7 @@ dependencies = [ "parking_lot 0.12.1", "sc-client-api", "sc-state-db", + "schnellru", "sp-arithmetic", "sp-blockchain", "sp-core", @@ -8796,7 +9009,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "async-trait", "futures", @@ -8821,7 +9034,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "async-trait", "futures", @@ -8850,7 +9063,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "async-trait", "fork-tree", @@ -8868,6 +9081,7 @@ dependencies = [ "sc-consensus-slots", "sc-keystore", "sc-telemetry", + "scale-info", "schnorrkel", "sp-api", "sp-application-crypto", @@ -8888,7 +9102,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "futures", "jsonrpsee", @@ -8907,23 +9121,137 @@ dependencies = [ "thiserror", ] +[[package]] +name = "sc-consensus-beefy" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +dependencies = [ + "array-bytes 4.2.0", + "async-trait", + "fnv", + "futures", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-client-api", + "sc-consensus", + "sc-keystore", + "sc-network", + "sc-network-common", + "sc-network-gossip", + "sc-network-sync", + "sc-utils", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-consensus-beefy", + "sp-core", + "sp-keystore", + "sp-mmr-primitives", + "sp-runtime", + "substrate-prometheus-endpoint", + "thiserror", + "wasm-timer", +] + +[[package]] +name = "sc-consensus-beefy-rpc" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +dependencies = [ + "futures", + "jsonrpsee", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-consensus-beefy", + "sc-rpc", + "serde", + "sp-consensus-beefy", + "sp-core", + "sp-runtime", + "thiserror", +] + [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +dependencies = [ + "fork-tree", + "parity-scale-codec", + "sc-client-api", + "sc-consensus", + "sp-blockchain", + "sp-runtime", +] + +[[package]] +name = "sc-consensus-grandpa" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ + "ahash 0.8.3", + "array-bytes 4.2.0", + "async-trait", + "dyn-clone", + "finality-grandpa", "fork-tree", + "futures", + "futures-timer", + "log", "parity-scale-codec", + "parking_lot 0.12.1", + "rand 0.8.5", + "sc-block-builder", + "sc-chain-spec", "sc-client-api", "sc-consensus", + "sc-network", + "sc-network-common", + "sc-network-gossip", + "sc-telemetry", + "sc-utils", + "serde_json", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-consensus-grandpa", + "sp-core", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", + "thiserror", +] + +[[package]] +name = "sc-consensus-grandpa-rpc" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +dependencies = [ + "finality-grandpa", + "futures", + "jsonrpsee", + "log", + "parity-scale-codec", + "sc-client-api", + "sc-consensus-grandpa", + "sc-rpc", + "serde", "sp-blockchain", + "sp-core", "sp-runtime", + "thiserror", ] [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "async-trait", "futures", @@ -8946,9 +9274,9 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ - "lru", + "lru 0.8.1", "parity-scale-codec", "parking_lot 0.12.1", "sc-executor-common", @@ -8970,7 +9298,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", @@ -8983,7 +9311,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "log", "sc-allocator", @@ -8996,13 +9324,14 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ + "anyhow", "cfg-if", "libc", "log", "once_cell", - "rustix 0.35.13", + "rustix 0.36.11", "sc-allocator", "sc-executor-common", "sp-runtime-interface", @@ -9010,76 +9339,17 @@ dependencies = [ "wasmtime", ] -[[package]] -name = "sc-finality-grandpa" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" -dependencies = [ - "ahash", - "array-bytes 4.2.0", - "async-trait", - "dyn-clone", - "finality-grandpa", - "fork-tree", - "futures", - "futures-timer", - "log", - "parity-scale-codec", - "parking_lot 0.12.1", - "rand 0.8.5", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-consensus", - "sc-network", - "sc-network-common", - "sc-network-gossip", - "sc-telemetry", - "sc-utils", - "serde_json", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-finality-grandpa", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "sc-finality-grandpa-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" -dependencies = [ - "finality-grandpa", - "futures", - "jsonrpsee", - "log", - "parity-scale-codec", - "sc-client-api", - "sc-finality-grandpa", - "sc-rpc", - "serde", - "sp-blockchain", - "sp-core", - "sp-runtime", - "thiserror", -] - [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "ansi_term", "futures", "futures-timer", "log", "sc-client-api", + "sc-network", "sc-network-common", "sp-blockchain", "sp-runtime", @@ -9088,7 +9358,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "array-bytes 4.2.0", "async-trait", @@ -9103,12 +9373,12 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "array-bytes 4.2.0", + "async-channel", "async-trait", "asynchronous-codec", - "backtrace", "bytes", "either", "fnv", @@ -9116,8 +9386,10 @@ dependencies = [ "futures-timer", "ip_network", "libp2p", + "linked_hash_set", "log", - "lru", + "lru 0.8.1", + "mockall", "parity-scale-codec", "parking_lot 0.12.1", "pin-project", @@ -9145,7 +9417,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "cid", "futures", @@ -9154,6 +9426,7 @@ dependencies = [ "prost", "prost-build", "sc-client-api", + "sc-network", "sc-network-common", "sp-blockchain", "sp-runtime", @@ -9164,40 +9437,43 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ + "array-bytes 4.2.0", "async-trait", - "bitflags", + "bitflags 1.3.2", "bytes", "futures", "futures-timer", "libp2p", - "linked_hash_set", "parity-scale-codec", "prost-build", "sc-consensus", "sc-peerset", + "sc-utils", "serde", "smallvec", "sp-blockchain", "sp-consensus", - "sp-finality-grandpa", + "sp-consensus-grandpa", "sp-runtime", "substrate-prometheus-endpoint", "thiserror", + "zeroize", ] [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ - "ahash", + "ahash 0.8.3", "futures", "futures-timer", "libp2p", "log", - "lru", + "lru 0.8.1", + "sc-network", "sc-network-common", "sc-peerset", "sp-runtime", @@ -9208,7 +9484,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "array-bytes 4.2.0", "futures", @@ -9218,6 +9494,7 @@ dependencies = [ "prost", "prost-build", "sc-client-api", + "sc-network", "sc-network-common", "sc-peerset", "sp-blockchain", @@ -9229,21 +9506,23 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "array-bytes 4.2.0", "async-trait", "fork-tree", "futures", + "futures-timer", "libp2p", "log", - "lru", + "lru 0.8.1", "mockall", "parity-scale-codec", "prost", "prost-build", "sc-client-api", "sc-consensus", + "sc-network", "sc-network-common", "sc-peerset", "sc-utils", @@ -9251,8 +9530,8 @@ dependencies = [ "sp-arithmetic", "sp-blockchain", "sp-consensus", + "sp-consensus-grandpa", "sp-core", - "sp-finality-grandpa", "sp-runtime", "substrate-prometheus-endpoint", "thiserror", @@ -9261,7 +9540,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "array-bytes 4.2.0", "futures", @@ -9269,6 +9548,7 @@ dependencies = [ "log", "parity-scale-codec", "pin-project", + "sc-network", "sc-network-common", "sc-peerset", "sc-utils", @@ -9280,7 +9560,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "array-bytes 4.2.0", "bytes", @@ -9296,6 +9576,7 @@ dependencies = [ "parking_lot 0.12.1", "rand 0.8.5", "sc-client-api", + "sc-network", "sc-network-common", "sc-peerset", "sc-utils", @@ -9310,7 +9591,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "futures", "libp2p", @@ -9323,7 +9604,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -9332,7 +9613,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "futures", "jsonrpsee", @@ -9356,12 +9637,13 @@ dependencies = [ "sp-runtime", "sp-session", "sp-version", + "tokio", ] [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -9380,7 +9662,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "http", "jsonrpsee", @@ -9395,7 +9677,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "array-bytes 4.2.0", "futures", @@ -9421,7 +9703,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "async-trait", "directories", @@ -9452,6 +9734,7 @@ dependencies = [ "sc-rpc", "sc-rpc-server", "sc-rpc-spec-v2", + "sc-storage-monitor", "sc-sysinfo", "sc-telemetry", "sc-tracing", @@ -9486,7 +9769,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "log", "parity-scale-codec", @@ -9494,10 +9777,26 @@ dependencies = [ "sp-core", ] +[[package]] +name = "sc-storage-monitor" +version = "0.1.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +dependencies = [ + "clap", + "fs4", + "futures", + "log", + "sc-client-db", + "sc-utils", + "sp-core", + "thiserror", + "tokio", +] + [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -9505,7 +9804,7 @@ dependencies = [ "sc-client-api", "sc-consensus-babe", "sc-consensus-epochs", - "sc-finality-grandpa", + "sc-consensus-grandpa", "serde", "serde_json", "sp-blockchain", @@ -9516,7 +9815,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "futures", "libc", @@ -9535,7 +9834,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "chrono", "futures", @@ -9554,7 +9853,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "ansi_term", "atty", @@ -9585,24 +9884,25 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "async-trait", "futures", "futures-timer", "linked-hash-map", "log", + "num-traits", "parity-scale-codec", "parking_lot 0.12.1", "sc-client-api", @@ -9622,7 +9922,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "async-trait", "futures", @@ -9636,22 +9936,23 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ - "backtrace", + "async-channel", "futures", "futures-timer", "lazy_static", "log", "parking_lot 0.12.1", "prometheus", + "sp-arithmetic", ] [[package]] name = "scale-info" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "001cf62ece89779fd16105b5f515ad0e5cedcd5440d3dd806bb067978e7c3608" +checksum = "61471dff9096de1d8b2319efed7162081e96793f5ebb147e50db10d50d648a4d" dependencies = [ "bitvec", "cfg-if", @@ -9663,14 +9964,14 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "303959cf613a6f6efd19ed4b4ad5bf79966a13352716299ad532cfb115f4205c" +checksum = "219580e803a66b3f05761fd06f1f879a872444e49ce23f73694d26e5a954c7e6" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -9682,6 +9983,17 @@ dependencies = [ "windows-sys 0.42.0", ] +[[package]] +name = "schnellru" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d" +dependencies = [ + "ahash 0.8.3", + "cfg-if", + "hashbrown 0.13.2", +] + [[package]] name = "schnorrkel" version = "0.9.1" @@ -9708,9 +10020,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "scratch" -version = "1.0.3" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" +checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" [[package]] name = "sct" @@ -9787,11 +10099,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.8.1" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c4437699b6d34972de58652c68b98cb5b53a4199ab126db8e20ec8ded29a721" +checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-foundation-sys", "libc", @@ -9819,9 +10131,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" +checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" dependencies = [ "serde", ] @@ -9834,29 +10146,29 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.152" +version = "1.0.158" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" +checksum = "771d4d9c4163ee138805e12c710dd365e4f44be8be0503cb1bb9eb989425d9c9" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.152" +version = "1.0.158" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" +checksum = "e801c1712f48475582b7696ac71e0ca34ebb30e09338425384269d9717c62cad" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.8", ] [[package]] name = "serde_json" -version = "1.0.91" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883" +checksum = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea" dependencies = [ "itoa", "ryu", @@ -9876,6 +10188,17 @@ dependencies = [ "opaque-debug 0.3.0", ] +[[package]] +name = "sha1" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.6", +] + [[package]] name = "sha2" version = "0.8.2" @@ -9939,9 +10262,9 @@ checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" [[package]] name = "signal-hook-registry" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" dependencies = [ "libc", ] @@ -9958,21 +10281,28 @@ dependencies = [ [[package]] name = "simba" -version = "0.5.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c" +checksum = "50582927ed6f77e4ac020c057f37a268fc6aebc29225050365aacbb9deeeddc4" dependencies = [ "approx", "num-complex", "num-traits", "paste", + "wide", ] +[[package]] +name = "siphasher" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" + [[package]] name = "slab" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" dependencies = [ "autocfg", ] @@ -9985,8 +10315,8 @@ checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" [[package]] name = "slot-range-helper" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "enumn", "parity-scale-codec", @@ -10018,14 +10348,14 @@ checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831" [[package]] name = "snow" -version = "0.9.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "774d05a3edae07ce6d68ea6984f3c05e9bba8927e3dd591e3b479e5b03213d0d" +checksum = "5ccba027ba85743e09d15c03296797cad56395089b832b48b5a5217880f57733" dependencies = [ "aes-gcm 0.9.4", "blake2", "chacha20poly1305", - "curve25519-dalek 4.0.0-pre.5", + "curve25519-dalek 4.0.0-rc.1", "rand_core 0.6.4", "ring", "rustc_version", @@ -10035,9 +10365,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" dependencies = [ "libc", "winapi", @@ -10063,7 +10393,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "hash-db", "log", @@ -10081,19 +10411,21 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ + "Inflector", "blake2", + "expander 1.0.0", "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "sp-application-crypto" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "parity-scale-codec", "scale-info", @@ -10106,7 +10438,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "integer-sqrt", "num-traits", @@ -10120,41 +10452,12 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-application-crypto", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "sp-authorship" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" -dependencies = [ - "async-trait", - "parity-scale-codec", - "sp-inherents", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "sp-beefy" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "parity-scale-codec", "scale-info", - "serde", "sp-api", "sp-application-crypto", - "sp-core", - "sp-io", - "sp-mmr-primitives", "sp-runtime", "sp-std", ] @@ -10162,7 +10465,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "parity-scale-codec", "sp-api", @@ -10174,11 +10477,11 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "futures", "log", - "lru", + "lru 0.8.1", "parity-scale-codec", "parking_lot 0.12.1", "sp-api", @@ -10192,25 +10495,22 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "async-trait", "futures", "log", - "parity-scale-codec", "sp-core", "sp-inherents", "sp-runtime", "sp-state-machine", - "sp-std", - "sp-version", "thiserror", ] [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "async-trait", "parity-scale-codec", @@ -10228,7 +10528,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "async-trait", "merlin", @@ -10248,10 +10548,47 @@ dependencies = [ "sp-timestamp", ] +[[package]] +name = "sp-consensus-beefy" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +dependencies = [ + "lazy_static", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-mmr-primitives", + "sp-runtime", + "sp-std", + "strum", +] + +[[package]] +name = "sp-consensus-grandpa" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +dependencies = [ + "finality-grandpa", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-keystore", + "sp-runtime", + "sp-std", +] + [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "parity-scale-codec", "scale-info", @@ -10263,7 +10600,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "parity-scale-codec", "scale-info", @@ -10276,12 +10613,13 @@ dependencies = [ [[package]] name = "sp-core" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "array-bytes 4.2.0", "base58", - "bitflags", + "bitflags 1.3.2", "blake2", + "bounded-collections", "dyn-clonable", "ed25519-zebra", "futures", @@ -10318,9 +10656,9 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ - "blake2", + "blake2b_simd", "byteorder", "digest 0.10.6", "sha2 0.10.6", @@ -10332,18 +10670,18 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "proc-macro2", "quote", "sp-core-hashing", - "syn", + "syn 1.0.109", ] [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -10352,17 +10690,17 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "sp-externalities" version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "environmental", "parity-scale-codec", @@ -10370,32 +10708,15 @@ dependencies = [ "sp-storage", ] -[[package]] -name = "sp-finality-grandpa" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" -dependencies = [ - "finality-grandpa", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-keystore", - "sp-runtime", - "sp-std", -] - [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", + "scale-info", "sp-core", "sp-runtime", "sp-std", @@ -10405,7 +10726,7 @@ dependencies = [ [[package]] name = "sp-io" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "bytes", "ed25519", @@ -10430,7 +10751,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "lazy_static", "sp-core", @@ -10441,7 +10762,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "async-trait", "futures", @@ -10458,7 +10779,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "thiserror", "zstd", @@ -10467,7 +10788,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -10485,7 +10806,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "parity-scale-codec", "scale-info", @@ -10499,7 +10820,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "sp-api", "sp-core", @@ -10509,7 +10830,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "backtrace", "lazy_static", @@ -10519,7 +10840,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "rustc-hash", "serde", @@ -10529,7 +10850,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "either", "hash256-std-hasher", @@ -10551,7 +10872,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -10569,19 +10890,19 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "Inflector", "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "parity-scale-codec", "scale-info", @@ -10595,7 +10916,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "parity-scale-codec", "scale-info", @@ -10607,7 +10928,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "hash-db", "log", @@ -10627,12 +10948,12 @@ dependencies = [ [[package]] name = "sp-std" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" [[package]] name = "sp-storage" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10645,7 +10966,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "async-trait", "futures-timer", @@ -10660,7 +10981,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "parity-scale-codec", "sp-std", @@ -10672,7 +10993,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "sp-api", "sp-runtime", @@ -10681,7 +11002,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "async-trait", "log", @@ -10697,18 +11018,18 @@ dependencies = [ [[package]] name = "sp-trie" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ - "ahash", + "ahash 0.8.3", "hash-db", - "hashbrown", + "hashbrown 0.12.3", "lazy_static", - "lru", "memory-db", "nohash-hasher", "parity-scale-codec", "parking_lot 0.12.1", "scale-info", + "schnellru", "sp-core", "sp-std", "thiserror", @@ -10720,7 +11041,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10737,19 +11058,20 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "sp-wasm-interface" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ + "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", @@ -10761,7 +11083,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "parity-scale-codec", "scale-info", @@ -10791,9 +11113,9 @@ dependencies = [ [[package]] name = "ss58-registry" -version = "1.38.0" +version = "1.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e40c020d72bc0a9c5660bb71e4a6fdef081493583062c474740a7d59f55f0e7b" +checksum = "ecf0bd63593ef78eca595a7fc25e9a443ca46fe69fd472f8f09f5245cdcd769d" dependencies = [ "Inflector", "num-format", @@ -10834,7 +11156,7 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg_aliases", "libc", "parking_lot 0.11.2", @@ -10853,7 +11175,7 @@ dependencies = [ "memchr", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -10866,20 +11188,7 @@ dependencies = [ "memchr", "proc-macro2", "quote", - "syn", -] - -[[package]] -name = "statrs" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05" -dependencies = [ - "approx", - "lazy_static", - "nalgebra", - "num-traits", - "rand 0.8.5", + "syn 1.0.109", ] [[package]] @@ -10907,7 +11216,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn", + "syn 1.0.109", ] [[package]] @@ -10945,7 +11254,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "platforms 2.0.0", ] @@ -10953,7 +11262,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -10972,7 +11281,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "hyper", "log", @@ -10984,7 +11293,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "async-trait", "jsonrpsee", @@ -10997,7 +11306,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "jsonrpsee", "log", @@ -11016,7 +11325,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ "ansi_term", "build-helper", @@ -11047,9 +11356,20 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.107" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" +checksum = "bcc02725fd69ab9f26eab07fad303e2497fad6fb9eba4f96c4d1687bdf704ad9" dependencies = [ "proc-macro2", "quote", @@ -11064,7 +11384,7 @@ checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "unicode-xid", ] @@ -11074,7 +11394,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d75182f12f490e953596550b65ee31bda7c8e043d9386174b353bda50838c3fd" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "system-configuration-sys", ] @@ -11097,22 +11417,21 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9410d0f6853b1d94f0e519fb95df60f29d2c1eff2d921ffdf01a4c8a3b54f12d" +checksum = "8ae9980cab1db3fceee2f6c6f643d5d8de2997c58ee8d25fb0cc8a9e9e7348e5" [[package]] name = "tempfile" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95" dependencies = [ "cfg-if", "fastrand", - "libc", "redox_syscall", - "remove_dir_all", - "winapi", + "rustix 0.36.11", + "windows-sys 0.42.0", ] [[package]] @@ -11126,28 +11445,28 @@ dependencies = [ [[package]] name = "termtree" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95059e91184749cb66be6dc994f67f182b6d897cb3df74a5bf66b5e709295fd8" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "thiserror" -version = "1.0.38" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" +checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.38" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" +checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.8", ] [[package]] @@ -11158,10 +11477,11 @@ checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" [[package]] name = "thread_local" -version = "1.1.4" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" dependencies = [ + "cfg-if", "once_cell", ] @@ -11200,12 +11520,11 @@ dependencies = [ [[package]] name = "tikv-jemalloc-sys" -version = "0.5.2+5.3.0-patched" +version = "0.5.3+5.3.0-patched" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec45c14da997d0925c7835883e4d5c181f196fa142f8c19d7643d1e9af2592c3" +checksum = "a678df20055b43e57ef8cddde41cdfda9a3c1a060b67f4c5836dfb1d78543ba8" dependencies = [ "cc", - "fs_extra", "libc", ] @@ -11222,9 +11541,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.17" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376" +checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" dependencies = [ "itoa", "serde", @@ -11240,9 +11559,9 @@ checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" [[package]] name = "time-macros" -version = "0.2.6" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2" +checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" dependencies = [ "time-core", ] @@ -11287,15 +11606,15 @@ dependencies = [ [[package]] name = "tinyvec_macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.24.2" +version = "1.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a12a59981d9e3c38d216785b0c37399f6e415e8d0712047620f189371b0bb" +checksum = "03201d01c3c27a29c8a5cee5b55a93ddae1ccf6f08f65365c2c918f8c1b76f64" dependencies = [ "autocfg", "bytes", @@ -11308,7 +11627,7 @@ dependencies = [ "signal-hook-registry", "socket2", "tokio-macros", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] @@ -11319,7 +11638,7 @@ checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -11335,9 +11654,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce" +checksum = "8fb52b74f05dbf495a8fba459fdc331812b96aa086d9eb78101fa0d4569c3313" dependencies = [ "futures-core", "pin-project-lite 0.2.9", @@ -11347,9 +11666,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.4" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" +checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2" dependencies = [ "bytes", "futures-core", @@ -11371,19 +11690,19 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4553f467ac8e3d374bc9a177a26801e5d0f9b211aa1673fb137a403afd1c9cf5" +checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" [[package]] name = "toml_edit" -version = "0.18.0" +version = "0.19.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "729bfd096e40da9c001f778f5cdecbd2957929a24e10e5883d9392220a751581" +checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13" dependencies = [ "indexmap", - "nom8", "toml_datetime", + "winnow", ] [[package]] @@ -11403,7 +11722,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" dependencies = [ - "bitflags", + "bitflags 1.3.2", "bytes", "futures-core", "futures-util", @@ -11448,7 +11767,7 @@ checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -11473,8 +11792,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -11484,14 +11803,14 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "expander 0.0.6", "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -11540,12 +11859,12 @@ dependencies = [ [[package]] name = "trie-db" -version = "0.24.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "004e1e8f92535694b4cb1444dc5a8073ecf0815e3357f729638b9f8fc4062908" +checksum = "767abe6ffed88a1889671a102c2861ae742726f52e0a5a425b92c9fbfa7e9c85" dependencies = [ "hash-db", - "hashbrown", + "hashbrown 0.13.2", "log", "rustc-hex", "smallvec", @@ -11553,9 +11872,9 @@ dependencies = [ [[package]] name = "trie-root" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a36c5ca3911ed3c9a5416ee6c679042064b93fc637ded67e25f92e68d783891" +checksum = "d4ed310ef5ab98f5fa467900ed906cb9232dd5376597e00fd4cba2a449d06c0b" dependencies = [ "hash-db", ] @@ -11615,8 +11934,9 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.37#946507ba9ef13e263534176b7b74e26fc56efbd4" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" dependencies = [ + "async-trait", "clap", "frame-remote-externalities", "frame-try-runtime", @@ -11629,14 +11949,19 @@ dependencies = [ "serde", "serde_json", "sp-api", + "sp-consensus-aura", + "sp-consensus-babe", "sp-core", "sp-debug-derive", "sp-externalities", + "sp-inherents", "sp-io", "sp-keystore", "sp-rpc", "sp-runtime", "sp-state-machine", + "sp-timestamp", + "sp-transaction-storage-proof", "sp-version", "sp-weights", "substrate-rpc-client", @@ -11706,15 +12031,15 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.10" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" +checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" [[package]] name = "unicode-normalization" @@ -11747,6 +12072,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "universal-hash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5" +dependencies = [ + "crypto-common", + "subtle", +] + [[package]] name = "unsigned-varint" version = "0.7.1" @@ -11778,9 +12113,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.2.2" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c" +checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" dependencies = [ "getrandom 0.2.8", ] @@ -11826,12 +12161,11 @@ checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" [[package]] name = "walkdir" -version = "2.3.2" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" dependencies = [ "same-file", - "winapi", "winapi-util", ] @@ -11865,9 +12199,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -11875,24 +12209,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn", + "syn 1.0.109", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.33" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" +checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" dependencies = [ "cfg-if", "js-sys", @@ -11902,9 +12236,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -11912,22 +12246,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" [[package]] name = "wasm-instrument" @@ -11940,9 +12274,9 @@ dependencies = [ [[package]] name = "wasm-opt" -version = "0.110.2" +version = "0.111.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b68e8037b4daf711393f4be2056246d12d975651b14d581520ad5d1f19219cec" +checksum = "84a303793cbc01fb96551badfc7367db6007396bba6bac97936b3c8b6f7fdb41" dependencies = [ "anyhow", "libc", @@ -11956,9 +12290,9 @@ dependencies = [ [[package]] name = "wasm-opt-cxx-sys" -version = "0.110.2" +version = "0.111.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91adbad477e97bba3fbd21dd7bfb594e7ad5ceb9169ab1c93ab9cb0ada636b6f" +checksum = "d9c9deb56f8a9f2ec177b3bd642a8205621835944ed5da55f2388ef216aca5a4" dependencies = [ "anyhow", "cxx", @@ -11968,9 +12302,9 @@ dependencies = [ [[package]] name = "wasm-opt-sys" -version = "0.110.2" +version = "0.111.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec4fa5a322a4e6ac22fd141f498d56afbdbf9df5debeac32380d2dcaa3e06941" +checksum = "4432e28b542738a9776cedf92e8a99d8991c7b4667ee2c7ccddfb479dd2856a7" dependencies = [ "anyhow", "cc", @@ -12025,22 +12359,24 @@ dependencies = [ "memory_units", "num-rational", "num-traits", + "region", ] [[package]] name = "wasmparser" -version = "0.89.1" +version = "0.100.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5d3e08b13876f96dd55608d03cd4883a0545884932d5adf11925876c96daef" +checksum = "64b20236ab624147dfbb62cf12a19aaf66af0e41b8398838b66e997d07d269d4" dependencies = [ "indexmap", + "url", ] [[package]] name = "wasmtime" -version = "1.0.2" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad5af6ba38311282f2a21670d96e78266e8c8e2f38cbcd52c254df6ccbc7731" +checksum = "f6e89f9819523447330ffd70367ef4a18d8c832e24e8150fe054d1d912841632" dependencies = [ "anyhow", "bincode", @@ -12061,23 +12397,23 @@ dependencies = [ "wasmtime-environ", "wasmtime-jit", "wasmtime-runtime", - "windows-sys 0.36.1", + "windows-sys 0.42.0", ] [[package]] name = "wasmtime-asm-macros" -version = "1.0.2" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45de63ddfc8b9223d1adc8f7b2ee5f35d1f6d112833934ad7ea66e4f4339e597" +checksum = "9bd3a5e46c198032da934469f3a6e48649d1f9142438e4fd4617b68a35644b8a" dependencies = [ "cfg-if", ] [[package]] name = "wasmtime-cache" -version = "1.0.2" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcd849399d17d2270141cfe47fa0d91ee52d5f8ea9b98cf7ddde0d53e5f79882" +checksum = "b389ae9b678b9c3851091a4804f4182d688d27aff7abc9aa37fa7be37d8ecffa" dependencies = [ "anyhow", "base64 0.13.1", @@ -12085,19 +12421,19 @@ dependencies = [ "directories-next", "file-per-thread-logger", "log", - "rustix 0.35.13", + "rustix 0.36.11", "serde", - "sha2 0.9.9", + "sha2 0.10.6", "toml", - "windows-sys 0.36.1", + "windows-sys 0.42.0", "zstd", ] [[package]] name = "wasmtime-cranelift" -version = "1.0.2" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd91339b742ff20bfed4532a27b73c86b5bcbfedd6bea2dcdf2d64471e1b5c6" +checksum = "59b2c92a08c0db6efffd88fdc97d7aa9c7c63b03edb0971dbca745469f820e8c" dependencies = [ "anyhow", "cranelift-codegen", @@ -12116,9 +12452,9 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "1.0.2" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebb881c61f4f627b5d45c54e629724974f8a8890d455bcbe634330cc27309644" +checksum = "9a6db9fc52985ba06ca601f2ff0ff1f526c5d724c7ac267b47326304b0c97883" dependencies = [ "anyhow", "cranelift-entity", @@ -12135,9 +12471,9 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "1.0.2" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1985c628011fe26adf5e23a5301bdc79b245e0e338f14bb58b39e4e25e4d8681" +checksum = "b77e3a52cd84d0f7f18554afa8060cfe564ccac61e3b0802d3fd4084772fa5f6" dependencies = [ "addr2line 0.17.0", "anyhow", @@ -12148,32 +12484,42 @@ dependencies = [ "log", "object 0.29.0", "rustc-demangle", - "rustix 0.35.13", "serde", "target-lexicon", - "thiserror", "wasmtime-environ", "wasmtime-jit-debug", + "wasmtime-jit-icache-coherence", "wasmtime-runtime", - "windows-sys 0.36.1", + "windows-sys 0.42.0", ] [[package]] name = "wasmtime-jit-debug" -version = "1.0.2" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f671b588486f5ccec8c5a3dba6b4c07eac2e66ab8c60e6f4e53717c77f709731" +checksum = "d0245e8a9347017c7185a72e215218a802ff561545c242953c11ba00fccc930f" dependencies = [ "object 0.29.0", "once_cell", - "rustix 0.35.13", + "rustix 0.36.11", +] + +[[package]] +name = "wasmtime-jit-icache-coherence" +version = "6.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67d412e9340ab1c83867051d8d1d7c90aa8c9afc91da086088068e2734e25064" +dependencies = [ + "cfg-if", + "libc", + "windows-sys 0.42.0", ] [[package]] name = "wasmtime-runtime" -version = "1.0.2" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee8f92ad4b61736339c29361da85769ebc200f184361959d1792832e592a1afd" +checksum = "d594e791b5fdd4dbaf8cf7ae62f2e4ff85018ce90f483ca6f42947688e48827d" dependencies = [ "anyhow", "cc", @@ -12186,19 +12532,18 @@ dependencies = [ "memoffset 0.6.5", "paste", "rand 0.8.5", - "rustix 0.35.13", - "thiserror", + "rustix 0.36.11", "wasmtime-asm-macros", "wasmtime-environ", "wasmtime-jit-debug", - "windows-sys 0.36.1", + "windows-sys 0.42.0", ] [[package]] name = "wasmtime-types" -version = "1.0.2" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d23d61cb4c46e837b431196dd06abb11731541021916d03476a178b54dc07aeb" +checksum = "a6688d6f96d4dbc1f89fab626c56c1778936d122b5f4ae7a57c2eb42b8d982e2" dependencies = [ "cranelift-entity", "serde", @@ -12208,9 +12553,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.60" +version = "0.3.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" dependencies = [ "js-sys", "wasm-bindgen", @@ -12271,7 +12616,7 @@ dependencies = [ "sha2 0.10.6", "stun", "thiserror", - "time 0.3.17", + "time 0.3.20", "tokio", "turn", "url", @@ -12303,22 +12648,22 @@ dependencies = [ [[package]] name = "webrtc-dtls" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7021987ae0a2ed6c8cd33f68e98e49bb6e74ffe9543310267b48a1bbe3900e5f" +checksum = "942be5bd85f072c3128396f6e5a9bfb93ca8c1939ded735d177b7bcba9a13d05" dependencies = [ "aes 0.6.0", - "aes-gcm 0.8.0", + "aes-gcm 0.10.1", "async-trait", "bincode", "block-modes", "byteorder", "ccm", "curve25519-dalek 3.2.0", - "der-parser 8.1.0", + "der-parser 8.2.0", "elliptic-curve", "hkdf", - "hmac 0.10.1", + "hmac 0.12.1", "log", "oid-registry 0.6.1", "p256", @@ -12330,8 +12675,8 @@ dependencies = [ "rustls 0.19.1", "sec1", "serde", - "sha-1", - "sha2 0.9.9", + "sha1", + "sha2 0.10.6", "signature", "subtle", "thiserror", @@ -12344,9 +12689,9 @@ dependencies = [ [[package]] name = "webrtc-ice" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "494483fbb2f5492620871fdc78b084aed8807377f6e3fe88b2e49f0a9c9c41d7" +checksum = "465a03cc11e9a7d7b4f9f99870558fe37a102b65b93f8045392fef7c67b39e80" dependencies = [ "arc-swap", "async-trait", @@ -12443,7 +12788,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f1db1727772c05cf7a2cfece52c3aca8045ca1e176cd517d323489aa3c6d87" dependencies = [ "async-trait", - "bitflags", + "bitflags 1.3.2", "bytes", "cc", "ipnet", @@ -12457,19 +12802,10 @@ dependencies = [ "winapi", ] -[[package]] -name = "wepoll-ffi" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" -dependencies = [ - "cc", -] - [[package]] name = "westend-runtime" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "bitvec", "frame-benchmarking", @@ -12513,6 +12849,8 @@ dependencies = [ "pallet-society", "pallet-staking", "pallet-staking-reward-curve", + "pallet-staking-runtime-api", + "pallet-state-trie-migration", "pallet-sudo", "pallet-timestamp", "pallet-transaction-payment", @@ -12534,9 +12872,9 @@ dependencies = [ "smallvec", "sp-api", "sp-authority-discovery", - "sp-beefy", "sp-block-builder", "sp-consensus-babe", + "sp-consensus-beefy", "sp-core", "sp-inherents", "sp-io", @@ -12558,8 +12896,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "frame-support", "polkadot-primitives", @@ -12581,6 +12919,16 @@ dependencies = [ "once_cell", ] +[[package]] +name = "wide" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b689b6c49d6549434bf944e6b0f39238cf63693cb7a147e9d887507fffa3b223" +dependencies = [ + "bytemuck", + "safe_arch", +] + [[package]] name = "widestring" version = "0.5.1" @@ -12632,16 +12980,12 @@ dependencies = [ ] [[package]] -name = "windows-sys" -version = "0.36.1" +name = "windows" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +checksum = "cdacb41e6a96a052c6cb63a144f24900236121c6f63f4f8219fef5977ecb0c25" dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", + "windows-targets", ] [[package]] @@ -12651,55 +12995,67 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.1", - "windows_i686_gnu 0.42.1", - "windows_i686_msvc 0.42.1", - "windows_x86_64_gnu 0.42.1", + "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", - "windows_x86_64_msvc 0.42.1", + "windows_x86_64_msvc 0.42.2", ] [[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.1" +name = "windows-sys" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets", +] [[package]] -name = "windows_aarch64_msvc" -version = "0.34.0" +name = "windows-targets" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm", + "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", + "windows_x86_64_msvc 0.42.2", +] [[package]] -name = "windows_aarch64_msvc" -version = "0.36.1" +name = "windows_aarch64_gnullvm" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_msvc" -version = "0.42.1" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" +checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d" [[package]] -name = "windows_i686_gnu" -version = "0.34.0" +name = "windows_aarch64_msvc" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_i686_gnu" -version = "0.36.1" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed" [[package]] name = "windows_i686_gnu" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_msvc" @@ -12709,15 +13065,9 @@ checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956" [[package]] name = "windows_i686_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_x86_64_gnu" @@ -12727,21 +13077,15 @@ checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4" [[package]] name = "windows_x86_64_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_msvc" @@ -12751,15 +13095,18 @@ checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9" [[package]] name = "windows_x86_64_msvc" -version = "0.36.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] -name = "windows_x86_64_msvc" -version = "0.42.1" +name = "winnow" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" +checksum = "deac0939bd6e4f24ab5919fbf751c97a8cfc8543bb083a305ed5c0c10bb241d1" +dependencies = [ + "memchr", +] [[package]] name = "winreg" @@ -12817,7 +13164,7 @@ dependencies = [ "ring", "rusticata-macros", "thiserror", - "time 0.3.17", + "time 0.3.20", ] [[package]] @@ -12826,39 +13173,42 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" dependencies = [ - "asn1-rs 0.5.1", + "asn1-rs 0.5.2", "base64 0.13.1", "data-encoding", - "der-parser 8.1.0", + "der-parser 8.2.0", "lazy_static", "nom", "oid-registry 0.6.1", "rusticata-macros", "thiserror", - "time 0.3.17", + "time 0.3.20", ] [[package]] name = "xcm" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ + "bounded-collections", "derivative", "impl-trait-for-tuples", "log", "parity-scale-codec", "scale-info", - "sp-runtime", + "serde", + "sp-weights", "xcm-procedural", ] [[package]] name = "xcm-builder" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "frame-support", "frame-system", + "impl-trait-for-tuples", "log", "pallet-transaction-payment", "parity-scale-codec", @@ -12874,9 +13224,10 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ + "environmental", "frame-benchmarking", "frame-support", "impl-trait-for-tuples", @@ -12887,18 +13238,19 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", + "sp-weights", "xcm", ] [[package]] name = "xcm-procedural" -version = "0.9.37" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.37#645723987cf9662244be8faf4e9b63e8b9a1b3a3" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" dependencies = [ "Inflector", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -12921,7 +13273,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aed2e7a52e3744ab4d0c05c20aa065258e84c49fd4226f5191b2ed29712710b4" dependencies = [ - "time 0.3.17", + "time 0.3.20", ] [[package]] @@ -12941,7 +13293,7 @@ checksum = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "synstructure", ] @@ -12966,9 +13318,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.5+zstd.1.5.2" +version = "2.0.7+zstd.1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc50ffce891ad571e9f9afe5039c4837bede781ac4bb13052ed7ae695518596" +checksum = "94509c3ba2fe55294d752b79842c530ccfab760192521df74a081a78d2b3c7f5" dependencies = [ "cc", "libc", diff --git a/node/Cargo.toml b/node/Cargo.toml index e2caa656..0600cd70 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -10,7 +10,7 @@ edition = "2021" build = "build.rs" [dependencies] -clap = { version = "4.0.32", features = ["derive"] } +clap = { version = "4.1.8", features = ["derive"] } log = "0.4.17" codec = { package = "parity-scale-codec", version = "3.0.0" } serde = { version = "1.0.152", features = ["derive"] } @@ -20,58 +20,53 @@ jsonrpsee = { version = "0.16.2", features = ["server"] } parachain-template-runtime = { path = "../runtime" } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sc-cli = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sc-client-api = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sc-consensus = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sc-executor = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sc-network = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sc-network-common = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sc-rpc = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sc-service = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sc-sysinfo = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sc-tracing = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sp-api = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sp-core = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sp-keystore = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sp-offchain = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sp-io = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sp-runtime = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sp-session = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", optional = true , "branch" = "polkadot-v0.9.37" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-network-sync = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", optional = true , branch = "polkadot-v0.9.40" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.37" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.37" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.37" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.37" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37" } -cumulus-client-network = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40" } [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [features] default = [] diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index b6d01860..b37468f1 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -217,5 +217,6 @@ fn testnet_genesis( polkadot_xcm: parachain_template_runtime::PolkadotXcmConfig { safe_xcm_version: Some(SAFE_XCM_VERSION), }, + transaction_payment: Default::default(), } } diff --git a/node/src/command.rs b/node/src/command.rs index 581cf97d..36e5ab63 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -229,9 +229,12 @@ pub fn run() -> Result<()> { }, #[cfg(feature = "try-runtime")] Some(Subcommand::TryRuntime(cmd)) => { + use parachain_template_runtime::MILLISECS_PER_BLOCK; + use sc_executor::{sp_wasm_interface::ExtendedHostFunctions, NativeExecutionDispatch}; + use try_runtime_cli::block_building_info::timestamp_with_aura_info; + let runner = cli.create_runner(cmd)?; - use sc_executor::{sp_wasm_interface::ExtendedHostFunctions, NativeExecutionDispatch}; type HostFunctionsOf = ExtendedHostFunctions< sp_io::SubstrateHostFunctions, ::ExtendHostFunctions, @@ -243,8 +246,15 @@ pub fn run() -> Result<()> { sc_service::TaskManager::new(runner.config().tokio_handle.clone(), *registry) .map_err(|e| format!("Error: {:?}", e))?; + let info_provider = timestamp_with_aura_info(MILLISECS_PER_BLOCK); + runner.async_run(|_| { - Ok((cmd.run::>(), task_manager)) + Ok(( + cmd.run::, _>(Some( + info_provider, + )), + task_manager, + )) }) }, #[cfg(not(feature = "try-runtime"))] @@ -256,14 +266,11 @@ pub fn run() -> Result<()> { let collator_options = cli.run.collator_options(); runner.run_node_until_exit(|config| async move { - let hwbench = if !cli.no_hardware_benchmarks { + let hwbench = (!cli.no_hardware_benchmarks).then_some( config.database.path().map(|database_path| { let _ = std::fs::create_dir_all(&database_path); sc_sysinfo::gather_hwbench(Some(database_path)) - }) - } else { - None - }; + })).flatten(); let para_id = chain_spec::Extensions::try_get(&*config.chain_spec) .map(|e| e.para_id) @@ -277,7 +284,7 @@ pub fn run() -> Result<()> { let id = ParaId::from(para_id); let parachain_account = - AccountIdConversion::::into_account_truncating(&id); + AccountIdConversion::::into_account_truncating(&id); let state_version = Cli::native_runtime_version(&config.chain_spec).state_version(); let block: Block = generate_genesis_block(&*config.chain_spec, state_version) diff --git a/node/src/service.rs b/node/src/service.rs index a8ee57ca..24556923 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -5,26 +5,26 @@ use std::{sync::Arc, time::Duration}; use cumulus_client_cli::CollatorOptions; // Local Runtime Types -use parachain_template_runtime::{opaque::Block, Hash, RuntimeApi}; +use parachain_template_runtime::{opaque::Block, RuntimeApi}; // Cumulus Imports use cumulus_client_consensus_aura::{AuraConsensus, BuildAuraConsensusParams, SlotProportion}; use cumulus_client_consensus_common::{ ParachainBlockImport as TParachainBlockImport, ParachainConsensus, }; -use cumulus_client_network::BlockAnnounceValidator; use cumulus_client_service::{ - build_relay_chain_interface, prepare_node_config, start_collator, start_full_node, - StartCollatorParams, StartFullNodeParams, + build_network, build_relay_chain_interface, prepare_node_config, start_collator, + start_full_node, BuildNetworkParams, StartCollatorParams, StartFullNodeParams, }; use cumulus_primitives_core::ParaId; -use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface}; +use cumulus_relay_chain_interface::RelayChainInterface; // Substrate Imports +use frame_benchmarking_cli::SUBSTRATE_REFERENCE_HARDWARE; use sc_consensus::ImportQueue; use sc_executor::NativeElseWasmExecutor; -use sc_network::NetworkService; -use sc_network_common::service::NetworkBlock; +use sc_network::NetworkBlock; +use sc_network_sync::SyncingService; use sc_service::{Configuration, PartialComponents, TFullBackend, TFullClient, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; use sp_keystore::SyncCryptoStorePtr; @@ -162,13 +162,7 @@ async fn start_node_impl( hwbench.clone(), ) .await - .map_err(|e| match e { - RelayChainError::ServiceError(polkadot_service::Error::Sub(x)) => x, - s => s.to_string().into(), - })?; - - let block_announce_validator = - BlockAnnounceValidator::new(relay_chain_interface.clone(), para_id); + .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?; let force_authoring = parachain_config.force_authoring; let validator = parachain_config.role.is_authority(); @@ -176,18 +170,17 @@ async fn start_node_impl( let transaction_pool = params.transaction_pool.clone(); let import_queue_service = params.import_queue.service(); - let (network, system_rpc_tx, tx_handler_controller, start_network) = - sc_service::build_network(sc_service::BuildNetworkParams { - config: ¶chain_config, + let (network, system_rpc_tx, tx_handler_controller, start_network, sync_service) = + build_network(BuildNetworkParams { + parachain_config: ¶chain_config, client: client.clone(), transaction_pool: transaction_pool.clone(), + para_id, spawn_handle: task_manager.spawn_handle(), + relay_chain_interface: relay_chain_interface.clone(), import_queue: params.import_queue, - block_announce_validator_builder: Some(Box::new(|_| { - Box::new(block_announce_validator) - })), - warp_sync: None, - })?; + }) + .await?; if parachain_config.offchain_worker.enabled { sc_service::build_offchain_workers( @@ -222,6 +215,7 @@ async fn start_node_impl( keystore: params.keystore_container.sync_keystore(), backend, network: network.clone(), + sync_service: sync_service.clone(), system_rpc_tx, tx_handler_controller, telemetry: telemetry.as_mut(), @@ -229,6 +223,14 @@ async fn start_node_impl( if let Some(hwbench) = hwbench { sc_sysinfo::print_hwbench(&hwbench); + // Here you can check whether the hardware meets your chains' requirements. Putting a link + // in there and swapping out the requirements for your own are probably a good idea. The + // requirements for a para-chain are dictated by its relay-chain. + if !SUBSTRATE_REFERENCE_HARDWARE.check_hardware(&hwbench) && validator { + log::warn!( + "⚠️ The hardware does not meet the minimal requirements for role 'Authority'." + ); + } if let Some(ref mut telemetry) = telemetry { let telemetry_handle = telemetry.handle(); @@ -241,12 +243,16 @@ async fn start_node_impl( } let announce_block = { - let network = network.clone(); - Arc::new(move |hash, data| network.announce_block(hash, data)) + let sync_service = sync_service.clone(); + Arc::new(move |hash, data| sync_service.announce_block(hash, data)) }; let relay_chain_slot_duration = Duration::from_secs(6); + let overseer_handle = relay_chain_interface + .overseer_handle() + .map_err(|e| sc_service::Error::Application(Box::new(e)))?; + if validator { let parachain_consensus = build_consensus( client.clone(), @@ -256,7 +262,7 @@ async fn start_node_impl( &task_manager, relay_chain_interface.clone(), transaction_pool, - network, + sync_service, params.keystore_container.sync_keystore(), force_authoring, para_id, @@ -275,6 +281,7 @@ async fn start_node_impl( import_queue: import_queue_service, collator_key: collator_key.expect("Command line arguments do not allow this. qed"), relay_chain_slot_duration, + recovery_handle: Box::new(overseer_handle), }; start_collator(params).await?; @@ -287,6 +294,7 @@ async fn start_node_impl( relay_chain_interface, relay_chain_slot_duration, import_queue: import_queue_service, + recovery_handle: Box::new(overseer_handle), }; start_full_node(params)?; @@ -343,7 +351,7 @@ fn build_consensus( task_manager: &TaskManager, relay_chain_interface: Arc, transaction_pool: Arc>, - sync_oracle: Arc>, + sync_oracle: Arc>, keystore: SyncCryptoStorePtr, force_authoring: bool, para_id: ParaId, diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 001ae9c0..65f6ebb0 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -16,17 +16,17 @@ codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive scale-info = { version = "2.2.0", default-features = false, features = ["derive"] } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, "branch" = "polkadot-v0.9.37" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } [dev-dependencies] serde = { version = "1.0.132" } # Substrate -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } [features] default = ["std"] diff --git a/pallets/template/src/lib.rs b/pallets/template/src/lib.rs index fde11a46..5f3252bf 100644 --- a/pallets/template/src/lib.rs +++ b/pallets/template/src/lib.rs @@ -27,7 +27,6 @@ pub mod pallet { } #[pallet::pallet] - #[pallet::generate_store(pub(super) trait Store)] pub struct Pallet(_); // The pallet's runtime storage items. @@ -68,7 +67,7 @@ pub mod pallet { /// An example dispatchable that takes a singles value as a parameter, writes the value to /// storage and emits an event. This function must be dispatched by a signed extrinsic. #[pallet::call_index(0)] - #[pallet::weight(Weight::from_ref_time(10_000) + T::DbWeight::get().writes(1))] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] pub fn do_something(origin: OriginFor, something: u32) -> DispatchResultWithPostInfo { // Check that the extrinsic was signed and get the signer. // This function will return an error if the extrinsic is not signed. @@ -86,7 +85,7 @@ pub mod pallet { /// An example dispatchable that may throw a custom error. #[pallet::call_index(1)] - #[pallet::weight(Weight::from_ref_time(10_000) + T::DbWeight::get().reads_writes(1,1))] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().reads_writes(1,1))] pub fn cause_error(origin: OriginFor) -> DispatchResultWithPostInfo { let _who = ensure_signed(origin)?; diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 082df7e2..e116e6ec 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,7 +12,7 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", "branch" = "polkadot-v0.9.37" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } @@ -25,53 +25,53 @@ smallvec = "1.10.0" pallet-template = { path = "../pallets/template", default-features = false } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, "branch" = "polkadot-v0.9.37" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, "branch" = "polkadot-v0.9.37" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, "branch" = "polkadot-v0.9.37" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, "branch" = "polkadot-v0.9.37" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.37" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.37" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.37" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.37" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.37" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.37" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false } -cumulus-pallet-session-benchmarking = {git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false, version = "3.0.0"} -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false } -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false } -parachain-info = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.37", default-features = false } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false } +cumulus-pallet-session-benchmarking = {git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false, version = "3.0.0"} +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false } +pallet-collator-selection = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false } +parachain-info = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false } [features] default = [ diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 68eba213..7b5d0b4e 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -219,7 +219,7 @@ const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); /// We allow for 0.5 of a second of compute with a 12 second average block time. const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts( WEIGHT_REF_TIME_PER_SECOND.saturating_div(2), - cumulus_primitives_core::relay_chain::v2::MAX_POV_SIZE as u64, + cumulus_primitives_core::relay_chain::MAX_POV_SIZE as u64, ); /// The version information used to identify this runtime when compiled natively. @@ -320,8 +320,6 @@ impl pallet_timestamp::Config for Runtime { impl pallet_authorship::Config for Runtime { type FindAuthor = pallet_session::FindAccountFromAuthorIndex; - type UncleGenerations = ConstU32<0>; - type FilterUncle = (); type EventHandler = (CollatorSelection,); } @@ -387,6 +385,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ControllerOrigin = EnsureRoot; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type WeightInfo = (); + type PriceForSiblingDelivery = (); } impl cumulus_pallet_dmp_queue::Config for Runtime { @@ -461,42 +460,36 @@ construct_runtime!( UncheckedExtrinsic = UncheckedExtrinsic, { // System support stuff. - System: frame_system::{Pallet, Call, Config, Storage, Event} = 0, - ParachainSystem: cumulus_pallet_parachain_system::{ - Pallet, Call, Config, Storage, Inherent, Event, ValidateUnsigned, - } = 1, - Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 2, - ParachainInfo: parachain_info::{Pallet, Storage, Config} = 3, + System: frame_system = 0, + ParachainSystem: cumulus_pallet_parachain_system = 1, + Timestamp: pallet_timestamp = 2, + ParachainInfo: parachain_info = 3, // Monetary stuff. - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, - TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 11, + Balances: pallet_balances = 10, + TransactionPayment: pallet_transaction_payment = 11, // Collator support. The order of these 4 are important and shall not change. - Authorship: pallet_authorship::{Pallet, Call, Storage} = 20, - CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, - Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, - Aura: pallet_aura::{Pallet, Storage, Config} = 23, - AuraExt: cumulus_pallet_aura_ext::{Pallet, Storage, Config} = 24, + Authorship: pallet_authorship = 20, + CollatorSelection: pallet_collator_selection = 21, + Session: pallet_session = 22, + Aura: pallet_aura = 23, + AuraExt: cumulus_pallet_aura_ext = 24, // XCM helpers. - XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 30, - PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin, Config} = 31, - CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 32, - DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 33, + XcmpQueue: cumulus_pallet_xcmp_queue = 30, + PolkadotXcm: pallet_xcm = 31, + CumulusXcm: cumulus_pallet_xcm = 32, + DmpQueue: cumulus_pallet_dmp_queue = 33, // Template - TemplatePallet: pallet_template::{Pallet, Call, Storage, Event} = 40, + TemplatePallet: pallet_template = 40, } ); -#[cfg(feature = "runtime-benchmarks")] -#[macro_use] -extern crate frame_benchmarking; - #[cfg(feature = "runtime-benchmarks")] mod benches { - define_benchmarks!( + frame_benchmarking::define_benchmarks!( [frame_system, SystemBench::] [pallet_balances, Balances] [pallet_session, SessionBench::] @@ -605,6 +598,12 @@ impl_runtime_apis! { ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_fee_details(uxt, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } } impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi @@ -622,6 +621,12 @@ impl_runtime_apis! { ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_call_fee_details(call, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } } impl cumulus_primitives_core::CollectCollationInfo for Runtime { @@ -678,18 +683,8 @@ impl_runtime_apis! { use cumulus_pallet_session_benchmarking::Pallet as SessionBench; impl cumulus_pallet_session_benchmarking::Config for Runtime {} - let whitelist: Vec = vec![ - // Block Number - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), - // Total Issuance - hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(), - // Execution Phase - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), - // Event Count - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), - // System Events - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), - ]; + use frame_support::traits::WhitelistedStorageKeys; + let whitelist = AllPalletsWithSystem::whitelisted_storage_keys(); let mut batches = Vec::::new(); let params = (&config, &whitelist); diff --git a/runtime/src/weights/block_weights.rs b/runtime/src/weights/block_weights.rs index ea8a341b..b2092d87 100644 --- a/runtime/src/weights/block_weights.rs +++ b/runtime/src/weights/block_weights.rs @@ -24,7 +24,7 @@ pub mod constants { parameter_types! { /// Importing a block with 0 Extrinsics. pub const BlockExecutionWeight: Weight = - Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000)); + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); } #[cfg(test)] diff --git a/runtime/src/weights/extrinsic_weights.rs b/runtime/src/weights/extrinsic_weights.rs index 0512efb6..332c3b32 100644 --- a/runtime/src/weights/extrinsic_weights.rs +++ b/runtime/src/weights/extrinsic_weights.rs @@ -24,7 +24,7 @@ pub mod constants { parameter_types! { /// Executing a NO-OP `System::remarks` Extrinsic. pub const ExtrinsicBaseWeight: Weight = - Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000)); + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); } #[cfg(test)] diff --git a/runtime/src/xcm_config.rs b/runtime/src/xcm_config.rs index 73d45339..8383e096 100644 --- a/runtime/src/xcm_config.rs +++ b/runtime/src/xcm_config.rs @@ -1,30 +1,31 @@ use super::{ - AccountId, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, - RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, + AccountId, AllPalletsWithSystem, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, + Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, }; -use core::marker::PhantomData; +use core::{marker::PhantomData, ops::ControlFlow}; use frame_support::{ log, match_types, parameter_types, - traits::{Everything, Nothing}, + traits::{ConstU32, Everything, Nothing}, + weights::Weight, }; use pallet_xcm::XcmPassthrough; use polkadot_parachain::primitives::Sibling; use polkadot_runtime_common::impls::ToAuthor; -use xcm::latest::{prelude::*, Weight as XCMWeight}; +use xcm::{latest::prelude::*, CreateMatcher, MatchXcm}; use xcm_builder::{ - AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter, - EnsureXcmOrigin, FixedWeightBounds, IsConcrete, LocationInverter, NativeAsset, ParentIsPreset, + AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowTopLevelPaidExecutionFrom, + CurrencyAdapter, EnsureXcmOrigin, FixedWeightBounds, IsConcrete, NativeAsset, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, - UsingComponents, + UsingComponents, WithComputedOrigin, }; use xcm_executor::{traits::ShouldExecute, XcmExecutor}; parameter_types! { pub const RelayLocation: MultiLocation = MultiLocation::parent(); - pub const RelayNetwork: NetworkId = NetworkId::Any; + pub const RelayNetwork: Option = None; pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); + pub UniversalLocation: InteriorMultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); } /// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used @@ -76,8 +77,9 @@ pub type XcmOriginToTransactDispatchOrigin = ( parameter_types! { // One XCM operation is 1_000_000_000 weight - almost certainly a conservative estimate. - pub UnitWeightCost: u64 = 1_000_000_000; + pub UnitWeightCost: Weight = Weight::from_parts(1_000_000_000, 64 * 1024); pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; } match_types! { @@ -102,9 +104,9 @@ where { fn should_execute( origin: &MultiLocation, - message: &mut Xcm, - max_weight: XCMWeight, - weight_credit: &mut XCMWeight, + message: &mut [Instruction], + max_weight: Weight, + weight_credit: &mut Weight, ) -> Result<(), ()> { Deny::should_execute(origin, message, max_weight, weight_credit)?; Allow::should_execute(origin, message, max_weight, weight_credit) @@ -116,37 +118,40 @@ pub struct DenyReserveTransferToRelayChain; impl ShouldExecute for DenyReserveTransferToRelayChain { fn should_execute( origin: &MultiLocation, - - message: &mut Xcm, - _max_weight: XCMWeight, - _weight_credit: &mut XCMWeight, + message: &mut [Instruction], + _max_weight: Weight, + _weight_credit: &mut Weight, ) -> Result<(), ()> { - if message.0.iter().any(|inst| { - matches!( - inst, + message.matcher().match_next_inst_while( + |_| true, + |inst| match inst { InitiateReserveWithdraw { reserve: MultiLocation { parents: 1, interior: Here }, .. - } | DepositReserveAsset { dest: MultiLocation { parents: 1, interior: Here }, .. } | - TransferReserveAsset { - dest: MultiLocation { parents: 1, interior: Here }, - .. - } - ) - }) { - return Err(()) // Deny - } - - // An unexpected reserve transfer has arrived from the Relay Chain. Generally, `IsReserve` - // should not allow this, but we just log it here. - if matches!(origin, MultiLocation { parents: 1, interior: Here }) && - message.0.iter().any(|inst| matches!(inst, ReserveAssetDeposited { .. })) - { - log::warn!( - target: "xcm::barriers", - "Unexpected ReserveAssetDeposited from the Relay Chain", - ); - } + } | + DepositReserveAsset { + dest: MultiLocation { parents: 1, interior: Here }, .. + } | + TransferReserveAsset { + dest: MultiLocation { parents: 1, interior: Here }, .. + } => { + Err(()) // Deny + }, + // An unexpected reserve transfer has arrived from the Relay Chain. Generally, + // `IsReserve` should not allow this, but we just log it here. + ReserveAssetDeposited { .. } + if matches!(origin, MultiLocation { parents: 1, interior: Here }) => + { + log::warn!( + target: "xcm::barrier", + "Unexpected ReserveAssetDeposited from the Relay Chain", + ); + Ok(ControlFlow::Continue(())) + }, + _ => Ok(ControlFlow::Continue(())), + }, + )?; + // Permit everything else Ok(()) } @@ -156,9 +161,15 @@ pub type Barrier = DenyThenTry< DenyReserveTransferToRelayChain, ( TakeWeightCredit, - AllowTopLevelPaidExecutionFrom, - AllowUnpaidExecutionFrom, - // ^^^ Parent and its exec plurality get free execution + WithComputedOrigin< + ( + AllowTopLevelPaidExecutionFrom, + AllowExplicitUnpaidExecutionFrom, + // ^^^ Parent and its exec plurality get free execution + ), + UniversalLocation, + ConstU32<8>, + >, ), >; @@ -171,7 +182,7 @@ impl xcm_executor::Config for XcmConfig { type OriginConverter = XcmOriginToTransactDispatchOrigin; type IsReserve = NativeAsset; type IsTeleporter = (); // Teleporting is disabled. - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type Barrier = Barrier; type Weigher = FixedWeightBounds; type Trader = @@ -180,6 +191,15 @@ impl xcm_executor::Config for XcmConfig { type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = RuntimeCall; + type SafeCallFilter = Everything; } /// No local origins on this chain are allowed to dispatch XCM sends/executions. @@ -189,11 +209,16 @@ pub type LocalOriginToLocation = SignedToAccountId32, + cumulus_primitives_utility::ParentAsUmp, // ..and XCMP to communicate with the sibling chains. XcmpQueue, ); +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub ReachableDest: Option = Some(Parent.into()); +} + impl pallet_xcm::Config for Runtime { type RuntimeEvent = RuntimeEvent; type SendXcmOrigin = EnsureXcmOrigin; @@ -206,13 +231,21 @@ impl pallet_xcm::Config for Runtime { type XcmTeleportFilter = Everything; type XcmReserveTransferFilter = Nothing; type Weigher = FixedWeightBounds; - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type RuntimeOrigin = RuntimeOrigin; type RuntimeCall = RuntimeCall; const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; // ^ Override for AdvertisedXcmVersion default type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type Currency = Balances; + type CurrencyMatcher = (); + type TrustedLockers = (); + type SovereignAccountOf = LocationToAccountId; + type MaxLockers = ConstU32<8>; + type WeightInfo = pallet_xcm::TestWeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type ReachableDest = ReachableDest; } impl cumulus_pallet_xcm::Config for Runtime { From c0ad24fe2eb61ec99cf249cd131c48d2bb127f4b Mon Sep 17 00:00:00 2001 From: xrelkd <46590321+xrelkd@users.noreply.github.com> Date: Sun, 16 Apr 2023 21:10:13 +0800 Subject: [PATCH 73/91] Fix typo in `.gitignore` (#156) --- .gitignore | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 1e0870fb..9416f4d0 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,7 @@ # These are backup files generated by rustfmt **/*.rs.bk -# Local chain databases (defalut location) +# Local chain databases (default location) **/chains/ # The cache for chain data in container @@ -15,4 +15,4 @@ .DS_Store .idea -.vscode \ No newline at end of file +.vscode From 58a4a0760bfc9cfeaf659e99f71d03448160fa38 Mon Sep 17 00:00:00 2001 From: Paritytech CI <52199148+paritytech-ci@users.noreply.github.com> Date: Tue, 9 May 2023 14:42:35 +0200 Subject: [PATCH 74/91] Auto-Update substrate-parachain-template from polkadot-v0.9.42 (#158) Co-authored-by: substrate-developer-hub --- Cargo.lock | 2104 +++++++++++++++++++++-------------- node/Cargo.toml | 87 +- node/src/cli.rs | 13 + node/src/service.rs | 35 +- pallets/template/Cargo.toml | 12 +- runtime/Cargo.toml | 93 +- runtime/build.rs | 10 +- runtime/src/lib.rs | 27 +- runtime/src/xcm_config.rs | 20 +- 9 files changed, 1422 insertions(+), 979 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 564eaf08..e3ff4425 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -42,7 +42,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -51,18 +51,18 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "rand_core 0.6.4", ] [[package]] name = "aead" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c192eb8f11fc081b0fe4259ba5af04217d4e0faddd02417310a927911abd7c8" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ "crypto-common", - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -119,7 +119,7 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82e1366e0c69c9f927b1fa5ce2c7bf9eafc8f9268c0b9800729e8b267612447c" dependencies = [ - "aead 0.5.1", + "aead 0.5.2", "aes 0.8.2", "cipher 0.4.4", "ctr 0.9.2", @@ -153,7 +153,7 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.8", + "getrandom 0.2.9", "once_cell", "version_check", ] @@ -165,7 +165,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" dependencies = [ "cfg-if", - "getrandom 0.2.8", + "getrandom 0.2.9", "once_cell", "version_check", ] @@ -179,11 +179,20 @@ dependencies = [ "memchr", ] +[[package]] +name = "aho-corasick" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" +dependencies = [ + "memchr", +] + [[package]] name = "always-assert" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf688625d06217d5b1bb0ea9d9c44a1635fd0ee3534466388d18203174f4d11" +checksum = "4436e0292ab1bb631b42973c61205e704475fe8126af845c8d923c0996328127" [[package]] name = "android_system_properties" @@ -203,11 +212,60 @@ dependencies = [ "winapi", ] +[[package]] +name = "anstream" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is-terminal", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d" + +[[package]] +name = "anstyle-parse" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "anstyle-wincon" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" +dependencies = [ + "anstyle", + "windows-sys 0.48.0", +] + [[package]] name = "anyhow" -version = "1.0.70" +version = "1.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" +checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" [[package]] name = "approx" @@ -232,9 +290,9 @@ checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6" [[package]] name = "array-bytes" -version = "6.0.0" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22f72e9d6fac4bc80778ea470b20197b88d28c292bb7d60c3fb099280003cd19" +checksum = "d9b1c5a481ec30a5abd8dfbd94ab5cf1bb4e9a66be7f1b3b322f2f1170c200fd" [[package]] name = "arrayref" @@ -323,9 +381,9 @@ dependencies = [ [[package]] name = "asn1_der" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22d1f4b888c298a027c99dc9048015fac177587de20fc30232a057dfbe24a21" +checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" [[package]] name = "assert_matches" @@ -358,7 +416,7 @@ dependencies = [ "log", "parking", "polling", - "rustix 0.37.3", + "rustix 0.37.19", "slab", "socket2", "waker-fn", @@ -373,15 +431,26 @@ dependencies = [ "event-listener", ] +[[package]] +name = "async-recursion" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.15", +] + [[package]] name = "async-trait" -version = "0.1.67" +version = "0.1.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86ea188f25f0255d8f92797797c97ebf5631fa88178beb1a46fdf5622c9a00e4" +checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" dependencies = [ "proc-macro2", "quote", - "syn 2.0.8", + "syn 2.0.15", ] [[package]] @@ -399,9 +468,9 @@ dependencies = [ [[package]] name = "atomic-waker" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "debc29dde2e69f9e47506b525f639ed42300fc014a3e007832592448fa8e4599" +checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" [[package]] name = "atty" @@ -430,7 +499,7 @@ dependencies = [ "cc", "cfg-if", "libc", - "miniz_oxide", + "miniz_oxide 0.6.2", "object 0.30.3", "rustc-demangle", ] @@ -448,10 +517,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" [[package]] -name = "base58" +name = "base16ct" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" [[package]] name = "base64" @@ -483,7 +552,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "hash-db", "log", @@ -504,7 +573,7 @@ version = "0.64.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4" dependencies = [ - "bitflags 1.3.2", + "bitflags", "cexpr", "clang-sys", "lazy_static", @@ -524,12 +593,6 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" -[[package]] -name = "bitflags" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487f1e0fcbe47deb8b0574e646def1c903389d95241dd1bbcc6ce4a715dfc0c1" - [[package]] name = "bitvec" version = "1.0.1" @@ -605,7 +668,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -614,7 +677,7 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -644,9 +707,9 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" [[package]] name = "bounded-collections" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a071c348a5ef6da1d3a87166b408170b46002382b1dda83992b5c2208cefb370" +checksum = "e3888522b497857eb606bf51695988dba7096941822c1bcf676e3a929a9ae7a0" dependencies = [ "log", "parity-scale-codec", @@ -690,9 +753,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.12.0" +version = "3.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" +checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8" [[package]] name = "byte-slice-cast" @@ -755,9 +818,9 @@ dependencies = [ [[package]] name = "cargo_metadata" -version = "0.15.3" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a1ec454bc3eead8719cb56e15dbbfecdbc14e4b3a3ae4936cc6e31f5fc0d07" +checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" dependencies = [ "camino", "cargo-platform", @@ -876,7 +939,7 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -885,7 +948,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -909,9 +972,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ed9a53e5d4d9c573ae844bfac6872b159cb1d1585a83b29e7a64b7eef7332a" +checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" dependencies = [ "glob", "libc", @@ -920,40 +983,45 @@ dependencies = [ [[package]] name = "clap" -version = "4.1.11" +version = "4.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42dfd32784433290c51d92c438bb72ea5063797fc3cc9a21a8c4346bebbb2098" +checksum = "34d21f9bf1b425d2968943631ec91202fe5e837264063503708b83013f8fc938" dependencies = [ - "bitflags 2.0.2", + "clap_builder", "clap_derive", - "clap_lex", - "is-terminal", "once_cell", +] + +[[package]] +name = "clap_builder" +version = "4.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "914c8c79fb560f238ef6429439a30023c862f7a28e688c58f7203f12b29970bd" +dependencies = [ + "anstream", + "anstyle", + "bitflags", + "clap_lex", "strsim", - "termcolor", ] [[package]] name = "clap_derive" -version = "4.1.9" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fddf67631444a3a3e3e5ac51c36a5e01335302de677bd78759eaa90ab1f46644" +checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4" dependencies = [ "heck", - "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] name = "clap_lex" -version = "0.3.3" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "033f6b7a4acb1f358c742aaca805c939ee73b4c6209ae4318ec7aca81c42e646" -dependencies = [ - "os_str_bytes", -] +checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" [[package]] name = "coarsetime" @@ -977,6 +1045,33 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "color-print" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2a5e6504ed8648554968650feecea00557a3476bc040d0ffc33080e66b646d0" +dependencies = [ + "color-print-proc-macro", +] + +[[package]] +name = "color-print-proc-macro" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d51beaa537d73d2d1ff34ee70bc095f170420ab2ec5d687ecd3ec2b0d092514b" +dependencies = [ + "nom", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + [[package]] name = "comfy-table" version = "6.1.4" @@ -990,9 +1085,9 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c278839b831783b70278b14df4d45e1beb1aad306c07bb796637de9a0e323e8e" +checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" dependencies = [ "crossbeam-utils", ] @@ -1027,9 +1122,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" [[package]] name = "core2" @@ -1061,27 +1156,27 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.5" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58" dependencies = [ "libc", ] [[package]] name = "cranelift-bforest" -version = "0.93.1" +version = "0.93.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7379abaacee0f14abf3204a7606118f0465785252169d186337bcb75030815a" +checksum = "2bc42ba2e232e5b20ff7dc299a812d53337dadce9a7e39a238e6a5cb82d2e57b" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.93.1" +version = "0.93.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9489fa336927df749631f1008007ced2871068544f40a202ce6d93fbf2366a7b" +checksum = "253531aca9b6f56103c9420369db3263e784df39aa1c90685a1f69cfbba0623e" dependencies = [ "arrayvec 0.7.2", "bumpalo", @@ -1100,33 +1195,33 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.93.1" +version = "0.93.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05bbb67da91ec721ed57cef2f7c5ef7728e1cd9bde9ffd3ef8601022e73e3239" +checksum = "72f2154365e2bff1b1b8537a7181591fdff50d8e27fa6e40d5c69c3bad0ca7c8" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.93.1" +version = "0.93.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418ecb2f36032f6665dc1a5e2060a143dbab41d83b784882e97710e890a7a16d" +checksum = "687e14e3f5775248930e0d5a84195abef8b829958e9794bf8d525104993612b4" [[package]] name = "cranelift-entity" -version = "0.93.1" +version = "0.93.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cf583f7b093f291005f9fb1323e2c37f6ee4c7909e39ce016b2e8360d461705" +checksum = "f42ea692c7b450ad18b8c9889661505d51c09ec4380cf1c2d278dbb2da22cae1" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.93.1" +version = "0.93.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b66bf9e916f57fbbd0f7703ec6286f4624866bf45000111627c70d272c8dda1" +checksum = "8483c2db6f45fe9ace984e5adc5d058102227e4c62e5aa2054e16b0275fd3a6e" dependencies = [ "cranelift-codegen", "log", @@ -1136,15 +1231,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.93.1" +version = "0.93.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "649782a39ce99798dd6b4029e2bb318a2fbeaade1b4fa25330763c10c65bc358" +checksum = "e9793158837678902446c411741d87b43f57dadfb944f2440db4287cda8cbd59" [[package]] name = "cranelift-native" -version = "0.93.1" +version = "0.93.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "937e021e089c51f9749d09e7ad1c4f255c2f8686cb8c3df63a34b3ec9921bc41" +checksum = "72668c7755f2b880665cb422c8ad2d56db58a88b9bebfef0b73edc2277c13c49" dependencies = [ "cranelift-codegen", "libc", @@ -1153,9 +1248,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.93.1" +version = "0.93.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d850cf6775477747c9dfda9ae23355dd70512ffebc70cf82b85a5b111ae668b5" +checksum = "3852ce4b088b44ac4e29459573943009a70d1b192c8d77ef949b4e814f656fc1" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1193,9 +1288,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" dependencies = [ "cfg-if", "crossbeam-utils", @@ -1256,7 +1351,19 @@ version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-bigint" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15" +dependencies = [ + "generic-array 0.14.7", "rand_core 0.6.4", "subtle", "zeroize", @@ -1268,7 +1375,7 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "rand_core 0.6.4", "typenum", ] @@ -1279,7 +1386,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "subtle", ] @@ -1289,7 +1396,7 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "subtle", ] @@ -1314,7 +1421,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "clap", "parity-scale-codec", @@ -1329,7 +1436,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1352,7 +1459,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1381,7 +1488,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -1405,7 +1512,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1428,7 +1535,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1452,7 +1559,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1487,7 +1594,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "frame-support", "frame-system", @@ -1503,7 +1610,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1520,7 +1627,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -1549,18 +1656,18 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "frame-benchmarking", "frame-support", @@ -1574,7 +1681,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1590,7 +1697,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1611,12 +1718,13 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-primitives", + "scale-info", "sp-api", "sp-runtime", "sp-std", @@ -1627,7 +1735,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1650,7 +1758,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "cumulus-primitives-core", "futures", @@ -1663,7 +1771,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1681,7 +1789,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1706,7 +1814,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1724,28 +1832,32 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ - "array-bytes 6.0.0", + "array-bytes 6.1.0", "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", "cumulus-relay-chain-rpc-interface", "futures", "lru 0.9.0", + "polkadot-availability-recovery", + "polkadot-collator-protocol", "polkadot-core-primitives", "polkadot-network-bridge", + "polkadot-node-collation-generation", + "polkadot-node-core-runtime-api", "polkadot-node-network-protocol", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", - "polkadot-service", "sc-authority-discovery", "sc-client-api", "sc-network", "sc-network-common", "sc-service", "sc-tracing", + "sc-utils", "sp-api", "sp-blockchain", "sp-consensus", @@ -1758,7 +1870,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1788,7 +1900,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1840,9 +1952,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.93" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c00419335c41018365ddf7e4d5f1c12ee3659ddcf3e01974650ba1de73d038" +checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" dependencies = [ "cc", "cxxbridge-flags", @@ -1852,9 +1964,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.93" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb8307ad413a98fff033c8545ecf133e3257747b3bae935e7602aab8aa92d4ca" +checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" dependencies = [ "cc", "codespan-reporting", @@ -1862,24 +1974,24 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.8", + "syn 2.0.15", ] [[package]] name = "cxxbridge-flags" -version = "1.0.93" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc52e2eb08915cb12596d29d55f0b5384f00d697a646dbd269b6ecb0fbd9d31" +checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" [[package]] name = "cxxbridge-macro" -version = "1.0.93" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "631569015d0d8d54e6c241733f944042623ab6df7bc3be7466874b05fcdb1c5f" +checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.8", + "syn 2.0.15", ] [[package]] @@ -1954,6 +2066,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "der" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e58dffcdcc8ee7b22f0c1f71a69243d7c2d9ad87b5a14361f2424a1565c219" +dependencies = [ + "const-oid", + "zeroize", +] + [[package]] name = "der-parser" version = "7.0.0" @@ -2069,7 +2191,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -2079,6 +2201,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" dependencies = [ "block-buffer 0.10.4", + "const-oid", "crypto-common", "subtle", ] @@ -2126,13 +2249,13 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] @@ -2186,10 +2309,23 @@ version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" dependencies = [ - "der", - "elliptic-curve", - "rfc6979", - "signature", + "der 0.6.1", + "elliptic-curve 0.12.3", + "rfc6979 0.3.1", + "signature 1.6.4", +] + +[[package]] +name = "ecdsa" +version = "0.16.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a48e5d537b8a30c0b023116d981b16334be1485af7ca68db3a2b7024cbc957fd" +dependencies = [ + "der 0.7.5", + "digest 0.10.6", + "elliptic-curve 0.13.4", + "rfc6979 0.4.0", + "signature 2.1.0", ] [[package]] @@ -2198,7 +2334,7 @@ version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" dependencies = [ - "signature", + "signature 1.6.4", ] [[package]] @@ -2241,18 +2377,37 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" dependencies = [ - "base16ct", - "crypto-bigint", - "der", + "base16ct 0.1.1", + "crypto-bigint 0.4.9", + "der 0.6.1", "digest 0.10.6", - "ff", - "generic-array 0.14.6", - "group", + "ff 0.12.1", + "generic-array 0.14.7", + "group 0.12.1", "hkdf", "pem-rfc7468", - "pkcs8", + "pkcs8 0.9.0", + "rand_core 0.6.4", + "sec1 0.3.0", + "subtle", + "zeroize", +] + +[[package]] +name = "elliptic-curve" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75c71eaa367f2e5d556414a8eea812bc62985c879748d6403edabd9cb03f16e7" +dependencies = [ + "base16ct 0.2.0", + "crypto-bigint 0.5.2", + "digest 0.10.6", + "ff 0.13.0", + "generic-array 0.14.7", + "group 0.13.0", + "pkcs8 0.10.2", "rand_core 0.6.4", - "sec1", + "sec1 0.7.2", "subtle", "zeroize", ] @@ -2271,22 +2426,22 @@ dependencies = [ [[package]] name = "enumflags2" -version = "0.7.5" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb" +checksum = "c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2" dependencies = [ "enumflags2_derive", ] [[package]] name = "enumflags2_derive" -version = "0.7.4" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae" +checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] @@ -2297,7 +2452,7 @@ checksum = "48016319042fb7c87b78d2993084a831793a897a5cd1a2a67cab9d1eeb4b7d76" dependencies = [ "proc-macro2", "quote", - "syn 2.0.8", + "syn 2.0.15", ] [[package]] @@ -2334,24 +2489,13 @@ checksum = "e48c92028aaa870e83d51c64e5d4e0b6981b360c522198c23959f219a4e1b15b" [[package]] name = "errno" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" -dependencies = [ - "errno-dragonfly", - "libc", - "winapi", -] - -[[package]] -name = "errno" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0" +checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" dependencies = [ "errno-dragonfly", "libc", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -2401,7 +2545,6 @@ dependencies = [ "fs-err", "proc-macro2", "quote", - "syn 1.0.109", ] [[package]] @@ -2417,6 +2560,19 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "expander" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f86a749cf851891866c10515ef6c299b5c69661465e9c3bbe7e07a2b77fb0f7" +dependencies = [ + "blake2", + "fs-err", + "proc-macro2", + "quote", + "syn 2.0.15", +] + [[package]] name = "fake-simd" version = "0.1.2" @@ -2482,11 +2638,21 @@ dependencies = [ "subtle", ] +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "fiat-crypto" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ace6ec7cc19c8ed33a32eaa9ea692d7faea05006b5356b9e2b668ec4bc3955" +checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" [[package]] name = "file-per-thread-logger" @@ -2500,14 +2666,14 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a3de6e8d11b22ff9edc6d916f890800597d60f8b2da1caf2955c274638d6412" +checksum = "5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153" dependencies = [ "cfg-if", "libc", - "redox_syscall", - "windows-sys 0.45.0", + "redox_syscall 0.2.16", + "windows-sys 0.48.0", ] [[package]] @@ -2546,13 +2712,13 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.25" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" +checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" dependencies = [ "crc32fast", "libz-sys", - "miniz_oxide", + "miniz_oxide 0.7.1", ] [[package]] @@ -2573,7 +2739,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "parity-scale-codec", ] @@ -2596,7 +2762,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-support", "frame-support-procedural", @@ -2621,7 +2787,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "Inflector", "array-bytes 4.2.0", @@ -2668,18 +2834,18 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2696,7 +2862,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-support", "frame-system", @@ -2712,9 +2878,9 @@ dependencies = [ [[package]] name = "frame-metadata" -version = "15.0.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df6bb8542ef006ef0de09a5c4420787d79823c0ed7924225822362fd2bf2ff2d" +checksum = "878babb0b136e731cc77ec2fd883ff02745ff21e6fb662729953d44923df009c" dependencies = [ "cfg-if", "parity-scale-codec", @@ -2725,9 +2891,11 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ + "async-recursion", "futures", + "jsonrpsee", "log", "parity-scale-codec", "serde", @@ -2741,9 +2909,9 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ - "bitflags 1.3.2", + "bitflags", "environmental", "frame-metadata", "frame-support-procedural", @@ -2774,44 +2942,45 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "Inflector", "cfg-expr", "derive-syn-parse", "frame-support-procedural-tools", "itertools", + "proc-macro-warning", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-support", "log", @@ -2829,7 +2998,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -2844,7 +3013,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "parity-scale-codec", "sp-api", @@ -2853,7 +3022,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-support", "parity-scale-codec", @@ -2880,13 +3049,12 @@ dependencies = [ [[package]] name = "fs4" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea55201cc351fdb478217c0fb641b59813da9b4efe4c414a9d8f989a657d149" +checksum = "a7f5b6908aecca5812a4569056285e58c666588c9573ee59765bf1d3692699e2" dependencies = [ - "libc", - "rustix 0.35.13", - "winapi", + "rustix 0.37.19", + "windows-sys 0.48.0", ] [[package]] @@ -2897,9 +3065,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549" +checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" dependencies = [ "futures-channel", "futures-core", @@ -2912,9 +3080,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" dependencies = [ "futures-core", "futures-sink", @@ -2922,15 +3090,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" [[package]] name = "futures-executor" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83" +checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" dependencies = [ "futures-core", "futures-task", @@ -2940,15 +3108,15 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" [[package]] name = "futures-lite" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" dependencies = [ "fastrand", "futures-core", @@ -2961,13 +3129,13 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6" +checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] @@ -2983,15 +3151,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec93083a4aecafb2a80a885c9de1f0ccae9dbd32c2bb54b0c3a65690e0b8d2f2" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" [[package]] name = "futures-task" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" [[package]] name = "futures-timer" @@ -3001,9 +3169,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" dependencies = [ "futures-channel", "futures-core", @@ -3037,12 +3205,13 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.6" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", + "zeroize", ] [[package]] @@ -3068,9 +3237,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" dependencies = [ "cfg-if", "libc", @@ -3126,7 +3295,7 @@ version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc" dependencies = [ - "aho-corasick", + "aho-corasick 0.7.20", "bstr", "fnv", "log", @@ -3139,16 +3308,27 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" dependencies = [ - "ff", + "ff 0.12.1", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff 0.13.0", "rand_core 0.6.4", "subtle", ] [[package]] name = "h2" -version = "0.3.16" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be7b54589b581f624f566bf5d8eb2bab1db736c51528720b6bd36b96b55924d" +checksum = "17f8a914c2987b688368b5138aa05321db91f4090cf26118185672ad588bce21" dependencies = [ "bytes", "fnv", @@ -3248,9 +3428,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hex-literal" -version = "0.3.4" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "hkdf" @@ -3297,7 +3477,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" dependencies = [ "digest 0.9.0", - "generic-array 0.14.6", + "generic-array 0.14.7", "hmac 0.8.1", ] @@ -3360,9 +3540,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.25" +version = "0.14.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc5e554ff619822309ffd57d8734d77cd5ce6238bc956f037ea06c58238c9899" +checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" dependencies = [ "bytes", "futures-channel", @@ -3395,20 +3575,21 @@ dependencies = [ "rustls-native-certs", "tokio", "tokio-rustls", + "webpki-roots", ] [[package]] name = "iana-time-zone" -version = "0.1.54" +version = "0.1.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c17cc76786e99f8d2f055c11159e7f0091c42474dcc3189fbab96072e873e6d" +checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows 0.46.0", + "windows 0.48.0", ] [[package]] @@ -3460,9 +3641,9 @@ dependencies = [ [[package]] name = "if-watch" -version = "3.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba7abdbb86e485125dad06c2691e1e393bf3b08c7b743b43aa162a00fd39062e" +checksum = "a9465340214b296cd17a0009acdb890d6160010b8adf8f78a00d0d7ab270f79f" dependencies = [ "async-io", "core-foundation", @@ -3508,9 +3689,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown 0.12.3", @@ -3523,7 +3704,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -3571,19 +3752,13 @@ dependencies = [ [[package]] name = "io-lifetimes" -version = "0.7.5" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ce5ef949d49ee85593fc4d3f3f95ad61657076395cbbce23e2121fc5542074" - -[[package]] -name = "io-lifetimes" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09270fd4fa1111bc614ed2246c7ef56239a3063d5be0d1ec3b589c505d400aeb" +checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" dependencies = [ "hermit-abi 0.3.1", "libc", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -3606,20 +3781,20 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146" +checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" [[package]] name = "is-terminal" -version = "0.4.5" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8687c819457e979cc940d09cb16e42a1bf70aa6b60a549de6d3a62a0ee90c69e" +checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" dependencies = [ "hermit-abi 0.3.1", - "io-lifetimes 1.0.9", - "rustix 0.36.11", - "windows-sys 0.45.0", + "io-lifetimes", + "rustix 0.37.19", + "windows-sys 0.48.0", ] [[package]] @@ -3662,6 +3837,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d291e3a5818a2384645fd9756362e6d89cf0541b0b916fa7702ea4a9833608e" dependencies = [ "jsonrpsee-core", + "jsonrpsee-http-client", "jsonrpsee-proc-macros", "jsonrpsee-server", "jsonrpsee-types", @@ -3718,6 +3894,25 @@ dependencies = [ "tracing", ] +[[package]] +name = "jsonrpsee-http-client" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc345b0a43c6bc49b947ebeb936e886a419ee3d894421790c969cc56040542ad" +dependencies = [ + "async-trait", + "hyper", + "hyper-rustls", + "jsonrpsee-core", + "jsonrpsee-types", + "rustc-hash", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", +] + [[package]] name = "jsonrpsee-proc-macros" version = "0.16.2" @@ -3781,13 +3976,14 @@ dependencies = [ [[package]] name = "k256" -version = "0.11.6" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" +checksum = "cadb76004ed8e97623117f3df85b17aaa6626ab0b0831e6573f104df16cd1bcc" dependencies = [ "cfg-if", - "ecdsa", - "elliptic-curve", + "ecdsa 0.16.6", + "elliptic-curve 0.13.4", + "once_cell", "sha2 0.10.6", ] @@ -3802,8 +3998,8 @@ dependencies = [ [[package]] name = "kusama-runtime" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "bitvec", "frame-benchmarking", @@ -3900,8 +4096,8 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "frame-support", "polkadot-primitives", @@ -3933,9 +4129,9 @@ dependencies = [ [[package]] name = "kvdb-rocksdb" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2182b8219fee6bd83aacaab7344e840179ae079d5216aa4e249b4d704646a844" +checksum = "fe7a749456510c45f795e8b04a6a3e0976d0139213ecbf465843830ad55e2217" dependencies = [ "kvdb", "num_cpus", @@ -3959,9 +4155,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.140" +version = "0.2.142" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" +checksum = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317" [[package]] name = "libloading" @@ -3994,7 +4190,7 @@ dependencies = [ "bytes", "futures", "futures-timer", - "getrandom 0.2.8", + "getrandom 0.2.9", "instant", "libp2p-core 0.38.0", "libp2p-dns", @@ -4044,7 +4240,7 @@ dependencies = [ "prost-build", "rand 0.8.5", "rw-stream-sink", - "sec1", + "sec1 0.3.0", "sha2 0.10.6", "smallvec", "thiserror", @@ -4055,9 +4251,9 @@ dependencies = [ [[package]] name = "libp2p-core" -version = "0.39.1" +version = "0.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7f8b7d65c070a5a1b5f8f0510648189da08f787b8963f8e21219e0710733af" +checksum = "3c1df63c0b582aa434fb09b2d86897fa2b419ffeccf934b36f87fcedc8e835c2" dependencies = [ "either", "fnv", @@ -4118,18 +4314,18 @@ dependencies = [ [[package]] name = "libp2p-identity" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a8ea433ae0cea7e3315354305237b9897afe45278b2118a7a57ca744e70fd27" +checksum = "9e2d584751cecb2aabaa56106be6be91338a60a0f4e420cf2af639204f596fc1" dependencies = [ "bs58", "ed25519-dalek", "log", "multiaddr 0.17.1", "multihash 0.17.0", - "prost", "quick-protobuf", "rand 0.8.5", + "sha2 0.10.6", "thiserror", "zeroize", ] @@ -4349,7 +4545,7 @@ checksum = "ff08d13d0dc66e5e9ba6279c1de417b84fa0d0adc3b03e5732928c180ec02781" dependencies = [ "futures", "futures-rustls", - "libp2p-core 0.39.1", + "libp2p-core 0.39.2", "libp2p-identity", "rcgen 0.10.0", "ring", @@ -4440,9 +4636,9 @@ dependencies = [ [[package]] name = "librocksdb-sys" -version = "0.8.3+7.4.4" +version = "0.10.0+7.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "557b255ff04123fcc176162f56ed0c9cd42d8f357cf55b3fabeb60f7413741b3" +checksum = "0fe4d5874f5ff2bc616e55e8c6086d478fcda13faf9495768a4aa1c22042d30b" dependencies = [ "bindgen", "bzip2-sys", @@ -4503,9 +4699,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf" +checksum = "56ee889ecc9568871456d42f603d6a0ce59ff328d291063a45cbdf0036baf6db" dependencies = [ "cc", "pkg-config", @@ -4545,12 +4741,6 @@ dependencies = [ "nalgebra", ] -[[package]] -name = "linux-raw-sys" -version = "0.0.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d2456c373231a208ad294c33dc5bff30051eafd954cd4caae83a712b12854d" - [[package]] name = "linux-raw-sys" version = "0.1.4" @@ -4559,9 +4749,9 @@ checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" [[package]] name = "linux-raw-sys" -version = "0.3.0" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd550e73688e6d578f0ac2119e32b797a327631a42f9433e59d02e139c8df60d" +checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f" [[package]] name = "lock_api" @@ -4661,10 +4851,11 @@ checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] name = "matrixmultiply" -version = "0.3.2" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add85d4dd35074e6fedc608f8c8f513a3548619a9024b751949ef0e8e45a4d84" +checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77" dependencies = [ + "autocfg", "rawpointer", ] @@ -4685,11 +4876,11 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "memfd" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b20a59d985586e4a5aef64564ac77299f8586d8be6cf9106a5a40207e8908efb" +checksum = "ffc89ccdc6e10d6907450f753537ebc5c5d3460d2e4e62ea74bd571db62c0f9e" dependencies = [ - "rustix 0.36.11", + "rustix 0.37.19", ] [[package]] @@ -4772,6 +4963,15 @@ dependencies = [ "adler", ] +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + [[package]] name = "mio" version = "0.8.6" @@ -4787,7 +4987,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "futures", "log", @@ -4806,7 +5006,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "anyhow", "jsonrpsee", @@ -4821,9 +5021,9 @@ dependencies = [ [[package]] name = "mockall" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e4a1c770583dac7ab5e2f6c139153b783a53a1bbee9729613f193e59828326" +checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" dependencies = [ "cfg-if", "downcast", @@ -4836,9 +5036,9 @@ dependencies = [ [[package]] name = "mockall_derive" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "832663583d5fa284ca8810bf7015e46c9fff9622d3cf34bd1eea5003fec06dd0" +checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" dependencies = [ "cfg-if", "proc-macro2", @@ -4918,9 +5118,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" dependencies = [ "core2", - "digest 0.10.6", "multihash-derive", - "sha2 0.10.6", "unsigned-varint", ] @@ -5019,7 +5217,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" dependencies = [ "anyhow", - "bitflags 1.3.2", + "bitflags", "byteorder", "libc", "netlink-packet-core", @@ -5072,7 +5270,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ - "bitflags 1.3.2", + "bitflags", "cfg-if", "libc", "memoffset 0.6.5", @@ -5236,9 +5434,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "orchestra" -version = "0.2.1" +version = "0.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b0766f60d83cac01c6e3f3bc36aaa9056e48bea0deddb98a8c74de6021f3061" +checksum = "227585216d05ba65c7ab0a0450a3cf2cbd81a98862a54c4df8e14d5ac6adb015" dependencies = [ "async-trait", "dyn-clonable", @@ -5253,12 +5451,11 @@ dependencies = [ [[package]] name = "orchestra-proc-macro" -version = "0.2.1" +version = "0.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c8e83dbd049009426b445424a1104c78e6172a4c13e3614e52a38262785a5d7" +checksum = "2871aadd82a2c216ee68a69837a526dfe788ecbe74c4c5038a6acdbff6653066" dependencies = [ - "expander 1.0.0", - "indexmap", + "expander 0.0.6", "itertools", "petgraph", "proc-macro-crate", @@ -5276,20 +5473,14 @@ dependencies = [ "num-traits", ] -[[package]] -name = "os_str_bytes" -version = "6.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" - [[package]] name = "p256" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" dependencies = [ - "ecdsa", - "elliptic-curve", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", "sha2 0.10.6", ] @@ -5299,8 +5490,8 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfc8c5bf642dde52bb9e87c0ecd8ca5a76faac2eeed98dedb7c717997e1080aa" dependencies = [ - "ecdsa", - "elliptic-curve", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", "sha2 0.10.6", ] @@ -5317,7 +5508,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-support", "frame-system", @@ -5333,7 +5524,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-support", "frame-system", @@ -5349,7 +5540,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-support", "frame-system", @@ -5363,7 +5554,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -5376,7 +5567,7 @@ dependencies = [ "scale-info", "sp-application-crypto", "sp-consensus-babe", - "sp-consensus-vrf", + "sp-core", "sp-io", "sp-runtime", "sp-session", @@ -5387,7 +5578,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5407,7 +5598,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -5422,7 +5613,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-support", "frame-system", @@ -5441,7 +5632,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "array-bytes 4.2.0", "binary-merkle-tree", @@ -5465,7 +5656,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -5483,7 +5674,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -5502,7 +5693,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "frame-benchmarking", "frame-support", @@ -5521,7 +5712,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -5538,7 +5729,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "assert_matches", "frame-benchmarking", @@ -5555,7 +5746,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -5573,7 +5764,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5596,7 +5787,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5609,7 +5800,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -5627,7 +5818,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5645,7 +5836,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -5668,7 +5859,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5684,7 +5875,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -5704,7 +5895,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -5721,7 +5912,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -5738,7 +5929,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -5755,7 +5946,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -5771,7 +5962,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -5787,7 +5978,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-support", "frame-system", @@ -5804,7 +5995,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5824,7 +6015,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -5835,7 +6026,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-support", "frame-system", @@ -5852,7 +6043,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5876,7 +6067,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -5893,7 +6084,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -5908,7 +6099,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -5926,7 +6117,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -5941,7 +6132,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "assert_matches", "frame-benchmarking", @@ -5960,7 +6151,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -5977,7 +6168,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-support", "frame-system", @@ -5998,7 +6189,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -6014,7 +6205,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-support", "frame-system", @@ -6028,7 +6219,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6051,18 +6242,18 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "log", "sp-arithmetic", @@ -6071,7 +6262,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "parity-scale-codec", "sp-api", @@ -6080,7 +6271,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -6097,7 +6288,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-support", "frame-system", @@ -6126,7 +6317,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -6144,7 +6335,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -6163,7 +6354,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-support", "frame-system", @@ -6179,7 +6370,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -6195,7 +6386,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6207,7 +6398,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -6224,7 +6415,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -6240,7 +6431,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -6255,7 +6446,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-benchmarking", "frame-support", @@ -6269,8 +6460,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "bounded-collections", "frame-benchmarking", @@ -6290,8 +6481,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "frame-benchmarking", "frame-support", @@ -6310,7 +6501,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.40#a3d6cd4bf456d14d59d3e5cc1d1617013ce0fcaa" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -6324,6 +6515,7 @@ name = "parachain-template-node" version = "0.1.0" dependencies = [ "clap", + "color-print", "cumulus-client-cli", "cumulus-client-consensus-aura", "cumulus-client-consensus-common", @@ -6430,9 +6622,9 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00bfb81cf5c90a222db2fb7b3a7cbf8cc7f38dfb6647aca4d98edf8281f56ed5" +checksum = "bd4572a52711e2ccff02b4973ec7e4a5b5c23387ebbfbd6cd42b34755714cefc" dependencies = [ "blake2", "crc32fast", @@ -6450,9 +6642,9 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "637935964ff85a605d114591d4d2c13c5d1ba2806dae97cea6bf180238a749ac" +checksum = "5ddb756ca205bd108aee3c62c6d3c994e1df84a59b9d6d4a5ea42ee1fd5a9a28" dependencies = [ "arrayvec 0.7.2", "bitvec", @@ -6489,9 +6681,9 @@ checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" [[package]] name = "parking" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" +checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" [[package]] name = "parking_lot" @@ -6523,7 +6715,7 @@ dependencies = [ "cfg-if", "instant", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "smallvec", "winapi", ] @@ -6536,7 +6728,7 @@ checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "smallvec", "windows-sys 0.45.0", ] @@ -6597,9 +6789,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pest" -version = "2.5.6" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cbd939b234e95d72bc393d51788aec68aeeb5d51e748ca08ff3aad58cb722f7" +checksum = "e68e84bfb01f0507134eac1e9b410a12ba379d064eab48c50ba4ce329a527b70" dependencies = [ "thiserror", "ucd-trie", @@ -6607,9 +6799,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.5.6" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a81186863f3d0a27340815be8f2078dd8050b14cd71913db9fbda795e5f707d7" +checksum = "6b79d4c71c865a25a4322296122e3924d30bc8ee0834c8bfc8b95f7f054afbfb" dependencies = [ "pest", "pest_generator", @@ -6617,22 +6809,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.5.6" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75a1ef20bf3193c15ac345acb32e26b3dc3223aff4d77ae4fc5359567683796b" +checksum = "6c435bf1076437b851ebc8edc3a18442796b30f1728ffea6262d59bbe28b077e" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] name = "pest_meta" -version = "2.5.6" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e3b284b1f13a20dc5ebc90aff59a51b8d7137c221131b52a7260c08cbc1cc80" +checksum = "745a452f8eb71e39ffd8ee32b3c5f51d03845f99786fa9b68db6ff509c505411" dependencies = [ "once_cell", "pest", @@ -6693,15 +6885,25 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" dependencies = [ - "der", - "spki", + "der 0.6.1", + "spki 0.6.0", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der 0.7.5", + "spki 0.7.1", ] [[package]] name = "pkg-config" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "platforms" @@ -6717,10 +6919,11 @@ checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" [[package]] name = "polkadot-approval-distribution" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "futures", + "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -6732,8 +6935,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "futures", "polkadot-node-network-protocol", @@ -6746,8 +6949,8 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "derive_more", "fatality", @@ -6769,8 +6972,8 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "fatality", "futures", @@ -6790,15 +6993,15 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "clap", "frame-benchmarking-cli", "futures", "log", "polkadot-client", - "polkadot-node-core-pvf", + "polkadot-node-core-pvf-worker", "polkadot-node-metrics", "polkadot-performance-test", "polkadot-service", @@ -6811,6 +7014,7 @@ dependencies = [ "sp-core", "sp-io", "sp-keyring", + "sp-maybe-compressed-blob", "substrate-build-script-utils", "thiserror", "try-runtime-cli", @@ -6818,8 +7022,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "async-trait", "frame-benchmarking", @@ -6834,6 +7038,7 @@ dependencies = [ "polkadot-primitives", "polkadot-runtime", "polkadot-runtime-common", + "rococo-runtime", "sc-client-api", "sc-consensus", "sc-executor", @@ -6860,8 +7065,8 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "always-assert", "bitvec", @@ -6882,8 +7087,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "parity-scale-codec", "scale-info", @@ -6894,8 +7099,8 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "derive_more", "fatality", @@ -6919,8 +7124,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -6933,8 +7138,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "futures", "futures-timer", @@ -6953,8 +7158,8 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "always-assert", "async-trait", @@ -6976,8 +7181,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "futures", "parity-scale-codec", @@ -6994,8 +7199,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "bitvec", "derive_more", @@ -7023,8 +7228,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "bitvec", "futures", @@ -7044,8 +7249,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "bitvec", "fatality", @@ -7063,8 +7268,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "futures", "polkadot-node-subsystem", @@ -7078,8 +7283,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "async-trait", "futures", @@ -7098,8 +7303,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "futures", "polkadot-node-metrics", @@ -7113,8 +7318,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "futures", "futures-timer", @@ -7130,8 +7335,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "fatality", "futures", @@ -7149,8 +7354,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "async-trait", "futures", @@ -7166,8 +7371,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "bitvec", "fatality", @@ -7184,12 +7389,10 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "always-assert", - "assert_matches", - "cpu-time", "futures", "futures-timer", "libc", @@ -7201,43 +7404,65 @@ dependencies = [ "polkadot-parachain", "polkadot-primitives", "rand 0.8.5", + "slotmap", + "sp-core", + "sp-maybe-compressed-blob", + "sp-tracing", + "sp-wasm-interface", + "substrate-build-script-utils", + "tokio", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-pvf-checker" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +dependencies = [ + "futures", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-primitives", + "sp-keystore", + "thiserror", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-pvf-worker" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +dependencies = [ + "assert_matches", + "cpu-time", + "futures", + "libc", + "parity-scale-codec", + "polkadot-node-core-pvf", + "polkadot-parachain", + "polkadot-primitives", "rayon", "sc-executor", "sc-executor-common", "sc-executor-wasmtime", - "slotmap", "sp-core", "sp-externalities", "sp-io", "sp-maybe-compressed-blob", "sp-tracing", - "sp-wasm-interface", + "substrate-build-script-utils", "tempfile", "tikv-jemalloc-ctl", "tokio", "tracing-gum", ] -[[package]] -name = "polkadot-node-core-pvf-checker" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" -dependencies = [ - "futures", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives", - "sp-keystore", - "thiserror", - "tracing-gum", -] - [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "futures", "lru 0.9.0", @@ -7251,8 +7476,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "lazy_static", "log", @@ -7269,8 +7494,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "bs58", "futures", @@ -7288,8 +7513,8 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "async-trait", "derive_more", @@ -7310,8 +7535,8 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "bounded-vec", "futures", @@ -7322,19 +7547,18 @@ dependencies = [ "serde", "sp-application-crypto", "sp-consensus-babe", - "sp-consensus-vrf", "sp-core", "sp-keystore", "sp-maybe-compressed-blob", "sp-runtime", "thiserror", - "zstd", + "zstd 0.11.2+zstd.1.5.2", ] [[package]] name = "polkadot-node-subsystem" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -7343,8 +7567,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "async-trait", "derive_more", @@ -7366,8 +7590,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "async-trait", "derive_more", @@ -7399,8 +7623,8 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "async-trait", "futures", @@ -7422,8 +7646,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "bounded-collections", "derive_more", @@ -7439,24 +7663,26 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "env_logger 0.9.3", "kusama-runtime", "log", "polkadot-erasure-coding", - "polkadot-node-core-pvf", + "polkadot-node-core-pvf-worker", "polkadot-node-primitives", "polkadot-primitives", "quote", + "sc-executor-common", + "sp-maybe-compressed-blob", "thiserror", ] [[package]] name = "polkadot-primitives" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "bitvec", "hex-literal", @@ -7481,8 +7707,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -7513,8 +7739,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "bitvec", "frame-benchmarking", @@ -7535,6 +7761,7 @@ dependencies = [ "pallet-bounties", "pallet-child-bounties", "pallet-collective", + "pallet-conviction-voting", "pallet-democracy", "pallet-election-provider-multi-phase", "pallet-election-provider-support-benchmarking", @@ -7553,6 +7780,7 @@ dependencies = [ "pallet-offences-benchmarking", "pallet-preimage", "pallet-proxy", + "pallet-referenda", "pallet-scheduler", "pallet-session", "pallet-session-benchmarking", @@ -7566,6 +7794,7 @@ dependencies = [ "pallet-treasury", "pallet-utility", "pallet-vesting", + "pallet-whitelist", "pallet-xcm", "parity-scale-codec", "polkadot-primitives", @@ -7578,6 +7807,7 @@ dependencies = [ "serde_derive", "smallvec", "sp-api", + "sp-arithmetic", "sp-authority-discovery", "sp-block-builder", "sp-consensus-babe", @@ -7603,8 +7833,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "bitvec", "frame-benchmarking", @@ -7649,8 +7879,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "frame-support", "polkadot-primitives", @@ -7663,8 +7893,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "bs58", "parity-scale-codec", @@ -7675,10 +7905,10 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ - "bitflags 1.3.2", + "bitflags", "bitvec", "derive_more", "frame-benchmarking", @@ -7719,8 +7949,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "async-trait", "frame-benchmarking-cli", @@ -7775,6 +8005,7 @@ dependencies = [ "polkadot-runtime-parachains", "polkadot-statement-distribution", "rococo-runtime", + "rococo-runtime-constants", "sc-authority-discovery", "sc-basic-authorship", "sc-block-builder", @@ -7828,8 +8059,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "arrayvec 0.5.2", "fatality", @@ -7849,8 +8080,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -7859,18 +8090,18 @@ dependencies = [ [[package]] name = "polling" -version = "2.6.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e1f879b2998099c2d69ab9605d145d5b661195627eccc680002c4918a7fb6fa" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" dependencies = [ "autocfg", - "bitflags 1.3.2", + "bitflags", "cfg-if", "concurrent-queue", "libc", "log", "pin-project-lite 0.2.9", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -7969,11 +8200,10 @@ dependencies = [ [[package]] name = "prioritized-metered-channel" -version = "0.4.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3caef72a78ca8e77cbdfa87dd516ebb79d4cbe5b42e3b8435b463a8261339ff" +checksum = "382698e48a268c832d0b181ed438374a6bb708a82a8ca273bb0f61c74cf209c4" dependencies = [ - "async-channel", "coarsetime", "crossbeam-queue", "derive_more", @@ -8018,11 +8248,22 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-warning" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e99670bafb56b9a106419397343bdbc8b8742c3cc449fec6345f86173f47cd4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.15", +] + [[package]] name = "proc-macro2" -version = "1.0.53" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba466839c78239c09faf015484e5cc04860f88242cff4d03eb038f04b4699b73" +checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" dependencies = [ "unicode-ident", ] @@ -8066,9 +8307,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48e50df39172a3e7eb17e14642445da64996989bc212b583015435d39a58537" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", "prost-derive", @@ -8076,9 +8317,9 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c828f93f5ca4826f97fedcbd3f9a536c16b12cff3dbbb4a007f932bbad95b12" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", "heck", @@ -8111,9 +8352,9 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea9b0f8cbe5e15a8a042d030bd96668db28ecb567ec37d691971ff5731d2b1b" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", "itertools", @@ -8124,9 +8365,9 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "379119666929a1afd7a043aa6cf96fa67a6dce9af60c88095a4686dbce4c9c88" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ "prost", ] @@ -8168,9 +8409,9 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4ced82a24bb281af338b9e8f94429b6eca01b4e66d899f40031f074e74c9" +checksum = "67c10f662eee9c94ddd7135043e544f3c82fa839a1e7b865911331961b53186c" dependencies = [ "bytes", "rand 0.8.5", @@ -8258,7 +8499,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.8", + "getrandom 0.2.9", ] [[package]] @@ -8338,7 +8579,16 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags 1.3.2", + "bitflags", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags", ] [[package]] @@ -8347,8 +8597,8 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.8", - "redox_syscall", + "getrandom 0.2.9", + "redox_syscall 0.2.16", "thiserror", ] @@ -8382,7 +8632,7 @@ checksum = "8d2275aab483050ab2a7364c1a46604865ee7d6906684e08db0f090acf74f9e7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.8", + "syn 2.0.15", ] [[package]] @@ -8399,13 +8649,13 @@ dependencies = [ [[package]] name = "regex" -version = "1.7.2" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cce168fea28d3e05f158bda4576cf0c844d5045bc2cc3620fa0292ed5bb5814c" +checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370" dependencies = [ - "aho-corasick", + "aho-corasick 1.0.1", "memchr", - "regex-syntax", + "regex-syntax 0.7.1", ] [[package]] @@ -8414,7 +8664,7 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" dependencies = [ - "regex-syntax", + "regex-syntax 0.6.29", ] [[package]] @@ -8423,13 +8673,19 @@ version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" +[[package]] +name = "regex-syntax" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" + [[package]] name = "region" version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" dependencies = [ - "bitflags 1.3.2", + "bitflags", "libc", "mach", "winapi", @@ -8451,11 +8707,21 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" dependencies = [ - "crypto-bigint", + "crypto-bigint 0.4.9", "hmac 0.12.1", "zeroize", ] +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac 0.12.1", + "subtle", +] + [[package]] name = "ring" version = "0.16.20" @@ -8473,9 +8739,9 @@ dependencies = [ [[package]] name = "rocksdb" -version = "0.19.0" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e9562ea1d70c0cc63a34a22d977753b50cca91cc6b6527750463bd5dd8697bc" +checksum = "015439787fce1e75d55f279078d33ff14b4af5d93d995e8838ee4631301c8a99" dependencies = [ "libc", "librocksdb-sys", @@ -8483,8 +8749,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "binary-merkle-tree", "frame-benchmarking", @@ -8569,8 +8835,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "frame-support", "polkadot-primitives", @@ -8644,9 +8910,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a36c42d1873f9a77c53bde094f9664d9891bc604a45b4798fd2c389ed12e5b" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustc-hash" @@ -8680,27 +8946,13 @@ dependencies = [ [[package]] name = "rustix" -version = "0.35.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "727a1a6d65f786ec22df8a81ca3121107f235970dc1705ed681d3e6e8b9cd5f9" -dependencies = [ - "bitflags 1.3.2", - "errno 0.2.8", - "io-lifetimes 0.7.5", - "libc", - "linux-raw-sys 0.0.46", - "windows-sys 0.42.0", -] - -[[package]] -name = "rustix" -version = "0.36.11" +version = "0.36.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db4165c9963ab29e422d6c26fbc1d37f15bace6b2810221f9d925023480fcf0e" +checksum = "3a38f9520be93aba504e8ca974197f46158de5dcaa9fa04b57c57cd6a679d658" dependencies = [ - "bitflags 1.3.2", - "errno 0.2.8", - "io-lifetimes 1.0.9", + "bitflags", + "errno", + "io-lifetimes", "libc", "linux-raw-sys 0.1.4", "windows-sys 0.45.0", @@ -8708,16 +8960,16 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.3" +version = "0.37.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b24138615de35e32031d041a09032ef3487a616d901ca4db224e7d557efae2" +checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" dependencies = [ - "bitflags 1.3.2", - "errno 0.3.0", - "io-lifetimes 1.0.9", + "bitflags", + "errno", + "io-lifetimes", "libc", - "linux-raw-sys 0.3.0", - "windows-sys 0.45.0", + "linux-raw-sys 0.3.7", + "windows-sys 0.48.0", ] [[package]] @@ -8810,7 +9062,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "log", "sp-core", @@ -8821,7 +9073,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "async-trait", "futures", @@ -8849,7 +9101,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "futures", "futures-timer", @@ -8872,7 +9124,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -8887,7 +9139,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -8906,18 +9158,18 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "array-bytes 4.2.0", "chrono", @@ -8957,7 +9209,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "fnv", "futures", @@ -8983,7 +9235,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "hash-db", "kvdb", @@ -9009,7 +9261,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "async-trait", "futures", @@ -9034,7 +9286,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "async-trait", "futures", @@ -9063,13 +9315,12 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "async-trait", "fork-tree", "futures", "log", - "merlin", "num-bigint", "num-rational", "num-traits", @@ -9082,7 +9333,6 @@ dependencies = [ "sc-keystore", "sc-telemetry", "scale-info", - "schnorrkel", "sp-api", "sp-application-crypto", "sp-block-builder", @@ -9090,7 +9340,6 @@ dependencies = [ "sp-consensus", "sp-consensus-babe", "sp-consensus-slots", - "sp-consensus-vrf", "sp-core", "sp-inherents", "sp-keystore", @@ -9102,7 +9351,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "futures", "jsonrpsee", @@ -9124,7 +9373,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "array-bytes 4.2.0", "async-trait", @@ -9159,7 +9408,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "futures", "jsonrpsee", @@ -9178,7 +9427,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "fork-tree", "parity-scale-codec", @@ -9191,7 +9440,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "ahash 0.8.3", "array-bytes 4.2.0", @@ -9231,7 +9480,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "finality-grandpa", "futures", @@ -9251,7 +9500,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "async-trait", "futures", @@ -9274,7 +9523,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "lru 0.8.1", "parity-scale-codec", @@ -9298,7 +9547,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", @@ -9311,7 +9560,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "log", "sc-allocator", @@ -9324,14 +9573,14 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "anyhow", "cfg-if", "libc", "log", "once_cell", - "rustix 0.36.11", + "rustix 0.36.13", "sc-allocator", "sc-executor-common", "sp-runtime-interface", @@ -9342,7 +9591,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "ansi_term", "futures", @@ -9358,7 +9607,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "array-bytes 4.2.0", "async-trait", @@ -9373,7 +9622,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "array-bytes 4.2.0", "async-channel", @@ -9403,6 +9652,7 @@ dependencies = [ "serde", "serde_json", "smallvec", + "snow", "sp-arithmetic", "sp-blockchain", "sp-consensus", @@ -9417,7 +9667,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "cid", "futures", @@ -9437,11 +9687,11 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "array-bytes 4.2.0", "async-trait", - "bitflags 1.3.2", + "bitflags", "bytes", "futures", "futures-timer", @@ -9465,7 +9715,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "ahash 0.8.3", "futures", @@ -9484,7 +9734,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "array-bytes 4.2.0", "futures", @@ -9506,7 +9756,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "array-bytes 4.2.0", "async-trait", @@ -9540,7 +9790,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "array-bytes 4.2.0", "futures", @@ -9560,7 +9810,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "array-bytes 4.2.0", "bytes", @@ -9591,7 +9841,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "futures", "libp2p", @@ -9604,7 +9854,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -9613,7 +9863,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "futures", "jsonrpsee", @@ -9643,7 +9893,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -9662,7 +9912,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "http", "jsonrpsee", @@ -9677,7 +9927,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "array-bytes 4.2.0", "futures", @@ -9703,7 +9953,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "async-trait", "directories", @@ -9769,7 +10019,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "log", "parity-scale-codec", @@ -9780,7 +10030,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "clap", "fs4", @@ -9796,7 +10046,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -9815,7 +10065,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "futures", "libc", @@ -9834,7 +10084,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "chrono", "futures", @@ -9853,7 +10103,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "ansi_term", "atty", @@ -9884,18 +10134,18 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "async-trait", "futures", @@ -9922,7 +10172,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "async-trait", "futures", @@ -9936,7 +10186,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "async-channel", "futures", @@ -9950,9 +10200,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.4.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61471dff9096de1d8b2319efed7162081e96793f5ebb147e50db10d50d648a4d" +checksum = "dfdef77228a4c05dc94211441595746732131ad7f6530c6c18f045da7b7ab937" dependencies = [ "bitvec", "cfg-if", @@ -9964,9 +10214,9 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.4.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219580e803a66b3f05761fd06f1f879a872444e49ce23f73694d26e5a954c7e6" +checksum = "53012eae69e5aa5c14671942a5dd47de59d4cdcff8532a6dd0e081faf1119482" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -10062,10 +10312,24 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" dependencies = [ - "base16ct", - "der", - "generic-array 0.14.6", - "pkcs8", + "base16ct 0.1.1", + "der 0.6.1", + "generic-array 0.14.7", + "pkcs8 0.9.0", + "subtle", + "zeroize", +] + +[[package]] +name = "sec1" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0aec48e813d6b90b15f0b8948af3c63483992dee44c03e9930b3eebdabe046e" +dependencies = [ + "base16ct 0.2.0", + "der 0.7.5", + "generic-array 0.14.7", + "pkcs8 0.10.2", "subtle", "zeroize", ] @@ -10103,7 +10367,7 @@ version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" dependencies = [ - "bitflags 1.3.2", + "bitflags", "core-foundation", "core-foundation-sys", "libc", @@ -10146,35 +10410,44 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.158" +version = "1.0.160" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771d4d9c4163ee138805e12c710dd365e4f44be8be0503cb1bb9eb989425d9c9" +checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.158" +version = "1.0.160" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e801c1712f48475582b7696ac71e0ca34ebb30e09338425384269d9717c62cad" +checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df" dependencies = [ "proc-macro2", "quote", - "syn 2.0.8", + "syn 2.0.15", ] [[package]] name = "serde_json" -version = "1.0.94" +version = "1.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea" +checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" dependencies = [ "itoa", "ryu", "serde", ] +[[package]] +name = "serde_spanned" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0efd8caf556a6cebd3b285caf480045fcc1ac04f6bd786b09a6f11af30c4fcf4" +dependencies = [ + "serde", +] + [[package]] name = "sha-1" version = "0.9.8" @@ -10237,9 +10510,9 @@ dependencies = [ [[package]] name = "sha3" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" +checksum = "54c2bb1a323307527314a36bfb73f24febb08ce2b8a554bf4ffd6f51ad15198c" dependencies = [ "digest 0.10.6", "keccak", @@ -10279,11 +10552,21 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "signature" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" +dependencies = [ + "digest 0.10.6", + "rand_core 0.6.4", +] + [[package]] name = "simba" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50582927ed6f77e4ac020c057f37a268fc6aebc29225050365aacbb9deeeddc4" +checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" dependencies = [ "approx", "num-complex", @@ -10309,14 +10592,14 @@ dependencies = [ [[package]] name = "slice-group-by" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" +checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "enumn", "parity-scale-codec", @@ -10393,13 +10676,15 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "hash-db", "log", "parity-scale-codec", + "scale-info", "sp-api-proc-macro", "sp-core", + "sp-metadata-ir", "sp-runtime", "sp-state-machine", "sp-std", @@ -10411,7 +10696,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "Inflector", "blake2", @@ -10419,13 +10704,13 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] name = "sp-application-crypto" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "parity-scale-codec", "scale-info", @@ -10438,7 +10723,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "integer-sqrt", "num-traits", @@ -10452,7 +10737,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "parity-scale-codec", "scale-info", @@ -10465,7 +10750,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "parity-scale-codec", "sp-api", @@ -10477,7 +10762,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "futures", "log", @@ -10495,7 +10780,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "async-trait", "futures", @@ -10510,7 +10795,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "async-trait", "parity-scale-codec", @@ -10528,10 +10813,9 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "async-trait", - "merlin", "parity-scale-codec", "scale-info", "serde", @@ -10539,7 +10823,6 @@ dependencies = [ "sp-application-crypto", "sp-consensus", "sp-consensus-slots", - "sp-consensus-vrf", "sp-core", "sp-inherents", "sp-keystore", @@ -10551,7 +10834,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "lazy_static", "parity-scale-codec", @@ -10570,7 +10853,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "finality-grandpa", "log", @@ -10588,7 +10871,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "parity-scale-codec", "scale-info", @@ -10597,29 +10880,16 @@ dependencies = [ "sp-timestamp", ] -[[package]] -name = "sp-consensus-vrf" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" -dependencies = [ - "parity-scale-codec", - "scale-info", - "schnorrkel", - "sp-core", - "sp-runtime", - "sp-std", -] - [[package]] name = "sp-core" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "array-bytes 4.2.0", - "base58", - "bitflags 1.3.2", + "bitflags", "blake2", "bounded-collections", + "bs58", "dyn-clonable", "ed25519-zebra", "futures", @@ -10632,6 +10902,7 @@ dependencies = [ "merlin", "parity-scale-codec", "parking_lot 0.12.1", + "paste", "primitive-types", "rand 0.8.5", "regex", @@ -10656,7 +10927,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "blake2b_simd", "byteorder", @@ -10670,18 +10941,18 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "proc-macro2", "quote", "sp-core-hashing", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -10690,17 +10961,17 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] name = "sp-externalities" version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "environmental", "parity-scale-codec", @@ -10711,7 +10982,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -10726,7 +10997,7 @@ dependencies = [ [[package]] name = "sp-io" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "bytes", "ed25519", @@ -10735,6 +11006,7 @@ dependencies = [ "libsecp256k1", "log", "parity-scale-codec", + "rustversion", "secp256k1", "sp-core", "sp-externalities", @@ -10751,7 +11023,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "lazy_static", "sp-core", @@ -10762,14 +11034,11 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ - "async-trait", "futures", - "merlin", "parity-scale-codec", "parking_lot 0.12.1", - "schnorrkel", "serde", "sp-core", "sp-externalities", @@ -10779,16 +11048,27 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "thiserror", - "zstd", + "zstd 0.12.3+zstd.1.5.2", +] + +[[package]] +name = "sp-metadata-ir" +version = "0.1.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +dependencies = [ + "frame-metadata", + "parity-scale-codec", + "scale-info", + "sp-std", ] [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -10806,7 +11086,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "parity-scale-codec", "scale-info", @@ -10820,7 +11100,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "sp-api", "sp-core", @@ -10830,7 +11110,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "backtrace", "lazy_static", @@ -10840,7 +11120,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "rustc-hash", "serde", @@ -10850,7 +11130,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "either", "hash256-std-hasher", @@ -10872,7 +11152,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -10890,19 +11170,19 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "Inflector", "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "parity-scale-codec", "scale-info", @@ -10916,10 +11196,11 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "parity-scale-codec", "scale-info", + "serde", "sp-core", "sp-runtime", "sp-std", @@ -10928,7 +11209,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "hash-db", "log", @@ -10948,12 +11229,12 @@ dependencies = [ [[package]] name = "sp-std" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" [[package]] name = "sp-storage" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "impl-serde", "parity-scale-codec", @@ -10966,7 +11247,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "async-trait", "futures-timer", @@ -10981,7 +11262,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "parity-scale-codec", "sp-std", @@ -10993,7 +11274,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "sp-api", "sp-runtime", @@ -11002,7 +11283,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "async-trait", "log", @@ -11018,11 +11299,11 @@ dependencies = [ [[package]] name = "sp-trie" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "ahash 0.8.3", "hash-db", - "hashbrown 0.12.3", + "hashbrown 0.13.2", "lazy_static", "memory-db", "nohash-hasher", @@ -11041,7 +11322,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11058,18 +11339,18 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] name = "sp-wasm-interface" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -11083,7 +11364,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "parity-scale-codec", "scale-info", @@ -11108,14 +11389,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" dependencies = [ "base64ct", - "der", + "der 0.6.1", +] + +[[package]] +name = "spki" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37a5be806ab6f127c3da44b7378837ebf01dadca8510a0e572460216b228bd0e" +dependencies = [ + "base64ct", + "der 0.7.5", ] [[package]] name = "ss58-registry" -version = "1.39.0" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecf0bd63593ef78eca595a7fc25e9a443ca46fe69fd472f8f09f5245cdcd769d" +checksum = "eb47a8ad42e5fc72d5b1eb104a5546937eaf39843499948bb666d6e93c62423b" dependencies = [ "Inflector", "num-format", @@ -11156,7 +11447,7 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6" dependencies = [ - "bitflags 1.3.2", + "bitflags", "cfg_aliases", "libc", "parking_lot 0.11.2", @@ -11254,7 +11545,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "platforms 2.0.0", ] @@ -11262,7 +11553,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -11281,7 +11572,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "hyper", "log", @@ -11293,7 +11584,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "async-trait", "jsonrpsee", @@ -11306,7 +11597,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "jsonrpsee", "log", @@ -11325,7 +11616,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "ansi_term", "build-helper", @@ -11334,7 +11625,7 @@ dependencies = [ "sp-maybe-compressed-blob", "strum", "tempfile", - "toml", + "toml 0.7.3", "walkdir", "wasm-opt", ] @@ -11367,9 +11658,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.8" +version = "2.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc02725fd69ab9f26eab07fad303e2497fad6fb9eba4f96c4d1687bdf704ad9" +checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" dependencies = [ "proc-macro2", "quote", @@ -11394,7 +11685,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d75182f12f490e953596550b65ee31bda7c8e043d9386174b353bda50838c3fd" dependencies = [ - "bitflags 1.3.2", + "bitflags", "core-foundation", "system-configuration-sys", ] @@ -11417,21 +11708,21 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.6" +version = "0.12.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae9980cab1db3fceee2f6c6f643d5d8de2997c58ee8d25fb0cc8a9e9e7348e5" +checksum = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5" [[package]] name = "tempfile" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95" +checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" dependencies = [ "cfg-if", "fastrand", - "redox_syscall", - "rustix 0.36.11", - "windows-sys 0.42.0", + "redox_syscall 0.3.5", + "rustix 0.37.19", + "windows-sys 0.45.0", ] [[package]] @@ -11466,7 +11757,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.8", + "syn 2.0.15", ] [[package]] @@ -11612,14 +11903,13 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.26.0" +version = "1.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03201d01c3c27a29c8a5cee5b55a93ddae1ccf6f08f65365c2c918f8c1b76f64" +checksum = "c3c786bf8134e5a3a166db9b29ab8f48134739014a3eca7bc6bfa95d673b136f" dependencies = [ "autocfg", "bytes", "libc", - "memchr", "mio", "num_cpus", "parking_lot 0.12.1", @@ -11627,18 +11917,18 @@ dependencies = [ "signal-hook-registry", "socket2", "tokio-macros", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] name = "tokio-macros" -version = "1.8.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] @@ -11654,9 +11944,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.12" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fb52b74f05dbf495a8fba459fdc331812b96aa086d9eb78101fa0d4569c3313" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" dependencies = [ "futures-core", "pin-project-lite 0.2.9", @@ -11666,9 +11956,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.7" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2" +checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" dependencies = [ "bytes", "futures-core", @@ -11688,11 +11978,26 @@ dependencies = [ "serde", ] +[[package]] +name = "toml" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b403acf6f2bb0859c93c7f0d967cb4a75a7ac552100f9322faf64dc047669b21" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + [[package]] name = "toml_datetime" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" +dependencies = [ + "serde", +] [[package]] name = "toml_edit" @@ -11701,6 +12006,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13" dependencies = [ "indexmap", + "serde", + "serde_spanned", "toml_datetime", "winnow", ] @@ -11722,7 +12029,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" dependencies = [ - "bitflags 1.3.2", + "bitflags", "bytes", "futures-core", "futures-util", @@ -11761,13 +12068,13 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] @@ -11792,8 +12099,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -11803,14 +12110,14 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ - "expander 0.0.6", + "expander 2.0.0", "proc-macro-crate", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] @@ -11934,7 +12241,7 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#ba87188cce8c0a11c9542d7363cd5ddd46db2740" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" dependencies = [ "async-trait", "clap", @@ -11965,7 +12272,7 @@ dependencies = [ "sp-version", "sp-weights", "substrate-rpc-client", - "zstd", + "zstd 0.12.3+zstd.1.5.2", ] [[package]] @@ -12068,7 +12375,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "subtle", ] @@ -12111,13 +12418,19 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + [[package]] name = "uuid" -version = "1.3.0" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" +checksum = "4dad5567ad0cf5b760e5665964bec1b47dfd077ba8a2544b513f3556d3d239a2" dependencies = [ - "getrandom 0.2.8", + "getrandom 0.2.9", ] [[package]] @@ -12374,9 +12687,9 @@ dependencies = [ [[package]] name = "wasmtime" -version = "6.0.1" +version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6e89f9819523447330ffd70367ef4a18d8c832e24e8150fe054d1d912841632" +checksum = "76a222f5fa1e14b2cefc286f1b68494d7a965f4bf57ec04c59bb62673d639af6" dependencies = [ "anyhow", "bincode", @@ -12402,18 +12715,18 @@ dependencies = [ [[package]] name = "wasmtime-asm-macros" -version = "6.0.1" +version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bd3a5e46c198032da934469f3a6e48649d1f9142438e4fd4617b68a35644b8a" +checksum = "4407a7246e7d2f3d8fb1cf0c72fda8dbafdb6dd34d555ae8bea0e5ae031089cc" dependencies = [ "cfg-if", ] [[package]] name = "wasmtime-cache" -version = "6.0.1" +version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b389ae9b678b9c3851091a4804f4182d688d27aff7abc9aa37fa7be37d8ecffa" +checksum = "5ceb3adf61d654be0be67fffdce42447b0880481348785be5fe40b5dd7663a4c" dependencies = [ "anyhow", "base64 0.13.1", @@ -12421,19 +12734,19 @@ dependencies = [ "directories-next", "file-per-thread-logger", "log", - "rustix 0.36.11", + "rustix 0.36.13", "serde", "sha2 0.10.6", - "toml", + "toml 0.5.11", "windows-sys 0.42.0", - "zstd", + "zstd 0.11.2+zstd.1.5.2", ] [[package]] name = "wasmtime-cranelift" -version = "6.0.1" +version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59b2c92a08c0db6efffd88fdc97d7aa9c7c63b03edb0971dbca745469f820e8c" +checksum = "3c366bb8647e01fd08cb5589976284b00abfded5529b33d7e7f3f086c68304a4" dependencies = [ "anyhow", "cranelift-codegen", @@ -12452,9 +12765,9 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "6.0.1" +version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a6db9fc52985ba06ca601f2ff0ff1f526c5d724c7ac267b47326304b0c97883" +checksum = "47b8b50962eae38ee319f7b24900b7cf371f03eebdc17400c1dc8575fc10c9a7" dependencies = [ "anyhow", "cranelift-entity", @@ -12471,9 +12784,9 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "6.0.1" +version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b77e3a52cd84d0f7f18554afa8060cfe564ccac61e3b0802d3fd4084772fa5f6" +checksum = "ffaed4f9a234ba5225d8e64eac7b4a5d13b994aeb37353cde2cbeb3febda9eaa" dependencies = [ "addr2line 0.17.0", "anyhow", @@ -12495,20 +12808,20 @@ dependencies = [ [[package]] name = "wasmtime-jit-debug" -version = "6.0.1" +version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0245e8a9347017c7185a72e215218a802ff561545c242953c11ba00fccc930f" +checksum = "eed41cbcbf74ce3ff6f1d07d1b707888166dc408d1a880f651268f4f7c9194b2" dependencies = [ "object 0.29.0", "once_cell", - "rustix 0.36.11", + "rustix 0.36.13", ] [[package]] name = "wasmtime-jit-icache-coherence" -version = "6.0.1" +version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67d412e9340ab1c83867051d8d1d7c90aa8c9afc91da086088068e2734e25064" +checksum = "43a28ae1e648461bfdbb79db3efdaee1bca5b940872e4175390f465593a2e54c" dependencies = [ "cfg-if", "libc", @@ -12517,9 +12830,9 @@ dependencies = [ [[package]] name = "wasmtime-runtime" -version = "6.0.1" +version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d594e791b5fdd4dbaf8cf7ae62f2e4ff85018ce90f483ca6f42947688e48827d" +checksum = "e704b126e4252788ccfc3526d4d4511d4b23c521bf123e447ac726c14545217b" dependencies = [ "anyhow", "cc", @@ -12532,7 +12845,7 @@ dependencies = [ "memoffset 0.6.5", "paste", "rand 0.8.5", - "rustix 0.36.11", + "rustix 0.36.13", "wasmtime-asm-macros", "wasmtime-environ", "wasmtime-jit-debug", @@ -12541,9 +12854,9 @@ dependencies = [ [[package]] name = "wasmtime-types" -version = "6.0.1" +version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6688d6f96d4dbc1f89fab626c56c1778936d122b5f4ae7a57c2eb42b8d982e2" +checksum = "83e5572c5727c1ee7e8f28717aaa8400e4d22dcbd714ea5457d85b5005206568" dependencies = [ "cranelift-entity", "serde", @@ -12661,7 +12974,7 @@ dependencies = [ "ccm", "curve25519-dalek 3.2.0", "der-parser 8.2.0", - "elliptic-curve", + "elliptic-curve 0.12.3", "hkdf", "hmac 0.12.1", "log", @@ -12673,11 +12986,11 @@ dependencies = [ "rcgen 0.9.3", "ring", "rustls 0.19.1", - "sec1", + "sec1 0.3.0", "serde", "sha1", "sha2 0.10.6", - "signature", + "signature 1.6.4", "subtle", "thiserror", "tokio", @@ -12726,18 +13039,15 @@ dependencies = [ [[package]] name = "webrtc-media" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2a3c157a040324e5049bcbd644ffc9079e6738fa2cfab2bcff64e5cc4c00d7" +checksum = "f72e1650a8ae006017d1a5280efb49e2610c19ccc3c0905b03b648aee9554991" dependencies = [ "byteorder", "bytes", - "derive_builder", - "displaydoc", "rand 0.8.5", "rtp", "thiserror", - "webrtc-util", ] [[package]] @@ -12788,7 +13098,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f1db1727772c05cf7a2cfece52c3aca8045ca1e176cd517d323489aa3c6d87" dependencies = [ "async-trait", - "bitflags 1.3.2", + "bitflags", "bytes", "cc", "ipnet", @@ -12804,8 +13114,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "bitvec", "frame-benchmarking", @@ -12896,8 +13206,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "frame-support", "polkadot-primitives", @@ -12981,11 +13291,11 @@ dependencies = [ [[package]] name = "windows" -version = "0.46.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdacb41e6a96a052c6cb63a144f24900236121c6f63f4f8219fef5977ecb0c25" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets", + "windows-targets 0.48.0", ] [[package]] @@ -12994,12 +13304,12 @@ version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ - "windows_aarch64_gnullvm", + "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", + "windows_x86_64_gnullvm 0.42.2", "windows_x86_64_msvc 0.42.2", ] @@ -13009,7 +13319,16 @@ version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ - "windows-targets", + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.0", ] [[package]] @@ -13018,21 +13337,42 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" dependencies = [ - "windows_aarch64_gnullvm", + "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", + "windows_x86_64_gnullvm 0.42.2", "windows_x86_64_msvc 0.42.2", ] +[[package]] +name = "windows-targets" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +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", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" 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" + [[package]] name = "windows_aarch64_msvc" version = "0.34.0" @@ -13045,6 +13385,12 @@ version = "0.42.2" 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" + [[package]] name = "windows_i686_gnu" version = "0.34.0" @@ -13057,6 +13403,12 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" +[[package]] +name = "windows_i686_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" + [[package]] name = "windows_i686_msvc" version = "0.34.0" @@ -13069,6 +13421,12 @@ version = "0.42.2" 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" + [[package]] name = "windows_x86_64_gnu" version = "0.34.0" @@ -13081,12 +13439,24 @@ version = "0.42.2" 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" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" 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" + [[package]] name = "windows_x86_64_msvc" version = "0.34.0" @@ -13099,11 +13469,17 @@ version = "0.42.2" 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" + [[package]] name = "winnow" -version = "0.4.0" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deac0939bd6e4f24ab5919fbf751c97a8cfc8543bb083a305ed5c0c10bb241d1" +checksum = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699" dependencies = [ "memchr", ] @@ -13187,8 +13563,8 @@ dependencies = [ [[package]] name = "xcm" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "bounded-collections", "derivative", @@ -13203,8 +13579,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "frame-support", "frame-system", @@ -13224,8 +13600,8 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "environmental", "frame-benchmarking", @@ -13244,13 +13620,13 @@ dependencies = [ [[package]] name = "xcm-procedural" -version = "0.9.40" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#a2b62fb872ba22622aaf8e13f9dcd9a4adcc454f" +version = "0.9.42" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.15", ] [[package]] @@ -13269,32 +13645,31 @@ dependencies = [ [[package]] name = "yasna" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aed2e7a52e3744ab4d0c05c20aa065258e84c49fd4226f5191b2ed29712710b4" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" dependencies = [ "time 0.3.20", ] [[package]] name = "zeroize" -version = "1.5.7" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f" +checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.3.3" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", - "synstructure", + "syn 2.0.15", ] [[package]] @@ -13303,7 +13678,16 @@ version = "0.11.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" dependencies = [ - "zstd-safe", + "zstd-safe 5.0.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.12.3+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76eea132fb024e0e13fd9c2f5d5d595d8a967aa72382ac2f9d39fcc95afd0806" +dependencies = [ + "zstd-safe 6.0.5+zstd.1.5.4", ] [[package]] @@ -13316,11 +13700,21 @@ dependencies = [ "zstd-sys", ] +[[package]] +name = "zstd-safe" +version = "6.0.5+zstd.1.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d56d9e60b4b1758206c238a10165fbcae3ca37b01744e394c463463f6529d23b" +dependencies = [ + "libc", + "zstd-sys", +] + [[package]] name = "zstd-sys" -version = "2.0.7+zstd.1.5.4" +version = "2.0.8+zstd.1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94509c3ba2fe55294d752b79842c530ccfab760192521df74a081a78d2b3c7f5" +checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c" dependencies = [ "cc", "libc", diff --git a/node/Cargo.toml b/node/Cargo.toml index 0600cd70..2464f8a1 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -10,63 +10,64 @@ edition = "2021" build = "build.rs" [dependencies] -clap = { version = "4.1.8", features = ["derive"] } +clap = { version = "4.2.3", features = ["derive"] } log = "0.4.17" codec = { package = "parity-scale-codec", version = "3.0.0" } -serde = { version = "1.0.152", features = ["derive"] } +serde = { version = "1.0.160", features = ["derive"] } jsonrpsee = { version = "0.16.2", features = ["server"] } # Local parachain-template-runtime = { path = "../runtime" } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-network-sync = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", optional = true , branch = "polkadot-v0.9.40" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sc-network-sync = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", optional = true , branch = "polkadot-v0.9.42" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", features = ["rococo-native"] , branch = "release-v0.9.42" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.42" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.42" } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42" } +color-print = "0.3.4" [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } [features] default = [] diff --git a/node/src/cli.rs b/node/src/cli.rs index 1da49b3b..2e64a53e 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -44,12 +44,25 @@ pub enum Subcommand { TryRuntime, } +const AFTER_HELP_EXAMPLE: &str = color_print::cstr!( + r#"Examples: + parachain-template-node build-spec --disable-default-bootnode > plain-parachain-chainspec.json + Export a chainspec for a local testnet in json format. + parachain-template-node --chain plain-parachain-chainspec.json --tmp -- --chain rococo-local + Launch a full node with chain specification loaded from plain-parachain-chainspec.json. + parachain-template-node + Launch a full node with default parachain local-testnet and relay chain rococo-local. + parachain-template-node --collator + Launch a collator with default parachain local-testnet and relay chain rococo-local. + "# +); #[derive(Debug, clap::Parser)] #[command( propagate_version = true, args_conflicts_with_subcommands = true, subcommand_negates_reqs = true )] +#[clap(after_help = AFTER_HELP_EXAMPLE)] pub struct Cli { #[command(subcommand)] pub subcommand: Option, diff --git a/node/src/service.rs b/node/src/service.rs index 24556923..4c9e1feb 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -22,12 +22,14 @@ use cumulus_relay_chain_interface::RelayChainInterface; // Substrate Imports use frame_benchmarking_cli::SUBSTRATE_REFERENCE_HARDWARE; use sc_consensus::ImportQueue; -use sc_executor::NativeElseWasmExecutor; +use sc_executor::{ + HeapAllocStrategy, NativeElseWasmExecutor, WasmExecutor, DEFAULT_HEAP_ALLOC_STRATEGY, +}; use sc_network::NetworkBlock; use sc_network_sync::SyncingService; use sc_service::{Configuration, PartialComponents, TFullBackend, TFullClient, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; -use sp_keystore::SyncCryptoStorePtr; +use sp_keystore::KeystorePtr; use substrate_prometheus_endpoint::Registry; /// Native executor type. @@ -81,12 +83,19 @@ pub fn new_partial( }) .transpose()?; - let executor = ParachainExecutor::new( - config.wasm_method, - config.default_heap_pages, - config.max_runtime_instances, - config.runtime_cache_size, - ); + let heap_pages = config + .default_heap_pages + .map_or(DEFAULT_HEAP_ALLOC_STRATEGY, |h| HeapAllocStrategy::Static { extra_pages: h as _ }); + + let wasm = WasmExecutor::builder() + .with_execution_method(config.wasm_method) + .with_onchain_heap_alloc_strategy(heap_pages) + .with_offchain_heap_alloc_strategy(heap_pages) + .with_max_runtime_instances(config.max_runtime_instances) + .with_runtime_cache_size(config.runtime_cache_size) + .build(); + + let executor = ParachainExecutor::new_with_wasm_executor(wasm); let (client, backend, keystore_container, task_manager) = sc_service::new_full_parts::( @@ -212,7 +221,7 @@ async fn start_node_impl( transaction_pool: transaction_pool.clone(), task_manager: &mut task_manager, config: parachain_config, - keystore: params.keystore_container.sync_keystore(), + keystore: params.keystore_container.keystore(), backend, network: network.clone(), sync_service: sync_service.clone(), @@ -262,8 +271,8 @@ async fn start_node_impl( &task_manager, relay_chain_interface.clone(), transaction_pool, - sync_service, - params.keystore_container.sync_keystore(), + sync_service.clone(), + params.keystore_container.keystore(), force_authoring, para_id, )?; @@ -282,6 +291,7 @@ async fn start_node_impl( collator_key: collator_key.expect("Command line arguments do not allow this. qed"), relay_chain_slot_duration, recovery_handle: Box::new(overseer_handle), + sync_service, }; start_collator(params).await?; @@ -295,6 +305,7 @@ async fn start_node_impl( relay_chain_slot_duration, import_queue: import_queue_service, recovery_handle: Box::new(overseer_handle), + sync_service, }; start_full_node(params)?; @@ -352,7 +363,7 @@ fn build_consensus( relay_chain_interface: Arc, transaction_pool: Arc>, sync_oracle: Arc>, - keystore: SyncCryptoStorePtr, + keystore: KeystorePtr, force_authoring: bool, para_id: ParaId, ) -> Result>, sc_service::Error> { diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 65f6ebb0..19b9f05d 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -16,17 +16,17 @@ codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive scale-info = { version = "2.2.0", default-features = false, features = ["derive"] } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.42" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } [dev-dependencies] serde = { version = "1.0.132" } # Substrate -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } [features] default = ["std"] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index e116e6ec..f40300d3 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,66 +12,66 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", optional = true , branch = "polkadot-v0.9.42" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } -hex-literal = { version = "0.3.4", optional = true } +hex-literal = { version = "0.4.1", optional = true } log = { version = "0.4.17", default-features = false } -scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } +scale-info = { version = "2.5.0", default-features = false, features = ["derive"] } smallvec = "1.10.0" # Local pallet-template = { path = "../pallets/template", default-features = false } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.42" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.42" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.42" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.42" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.42" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.42" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.42" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.42" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.42" } # Cumulus -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false } -cumulus-pallet-session-benchmarking = {git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false, version = "3.0.0"} -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false } -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false } -parachain-info = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.40", default-features = false } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } +cumulus-pallet-session-benchmarking = {git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false, version = "3.0.0"} +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } +pallet-collator-selection = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } +parachain-info = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } [features] default = [ @@ -121,6 +121,7 @@ std = [ "xcm-builder/std", "xcm-executor/std", "xcm/std", + "substrate-wasm-builder", ] runtime-benchmarks = [ diff --git a/runtime/build.rs b/runtime/build.rs index 9b53d245..02d6973f 100644 --- a/runtime/build.rs +++ b/runtime/build.rs @@ -1,9 +1,13 @@ -use substrate_wasm_builder::WasmBuilder; - +#[cfg(feature = "std")] fn main() { - WasmBuilder::new() + substrate_wasm_builder::WasmBuilder::new() .with_current_project() .export_heap_base() .import_memory() .build() } + +/// The wasm builder is deactivated when compiling +/// this crate for wasm to speed up the compilation. +#[cfg(not(feature = "std"))] +fn main() {} diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 7b5d0b4e..61839e0a 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -29,7 +29,7 @@ use frame_support::{ construct_runtime, dispatch::DispatchClass, parameter_types, - traits::{ConstU32, ConstU64, ConstU8, Everything}, + traits::{ConstU32, ConstU64, ConstU8, EitherOfDiverse, Everything}, weights::{ constants::WEIGHT_REF_TIME_PER_SECOND, ConstantMultiplier, Weight, WeightToFeeCoefficient, WeightToFeeCoefficients, WeightToFeePolynomial, @@ -40,9 +40,10 @@ use frame_system::{ limits::{BlockLength, BlockWeights}, EnsureRoot, }; +use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; pub use sp_runtime::{MultiAddress, Perbill, Permill}; -use xcm_config::{XcmConfig, XcmOriginToTransactDispatchOrigin}; +use xcm_config::{RelayLocation, XcmConfig, XcmOriginToTransactDispatchOrigin}; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; @@ -339,6 +340,10 @@ impl pallet_balances::Config for Runtime { type WeightInfo = pallet_balances::weights::SubstrateWeight; type MaxReserves = ConstU32<50>; type ReserveIdentifier = [u8; 8]; + type HoldIdentifier = (); + type FreezeIdentifier = (); + type MaxHolds = ConstU32<0>; + type MaxFreezes = ConstU32<0>; } parameter_types! { @@ -425,11 +430,15 @@ parameter_types! { pub const MinCandidates: u32 = 5; pub const SessionLength: BlockNumber = 6 * HOURS; pub const MaxInvulnerables: u32 = 100; - pub const ExecutiveBody: BodyId = BodyId::Executive; + // StakingAdmin pluralistic body. + pub const StakingAdminBodyId: BodyId = BodyId::Defense; } -// We allow root only to execute privileged collator selection operations. -pub type CollatorSelectionUpdateOrigin = EnsureRoot; +/// We allow root and the StakingAdmin to execute privileged collator selection operations. +pub type CollatorSelectionUpdateOrigin = EitherOfDiverse< + EnsureRoot, + EnsureXcm>, +>; impl pallet_collator_selection::Config for Runtime { type RuntimeEvent = RuntimeEvent; @@ -528,6 +537,14 @@ impl_runtime_apis! { fn metadata() -> OpaqueMetadata { OpaqueMetadata::new(Runtime::metadata().into()) } + + fn metadata_at_version(version: u32) -> Option { + Runtime::metadata_at_version(version) + } + + fn metadata_versions() -> sp_std::vec::Vec { + Runtime::metadata_versions() + } } impl sp_block_builder::BlockBuilder for Runtime { diff --git a/runtime/src/xcm_config.rs b/runtime/src/xcm_config.rs index 8383e096..bd395c83 100644 --- a/runtime/src/xcm_config.rs +++ b/runtime/src/xcm_config.rs @@ -5,19 +5,20 @@ use super::{ use core::{marker::PhantomData, ops::ControlFlow}; use frame_support::{ log, match_types, parameter_types, - traits::{ConstU32, Everything, Nothing}, + traits::{ConstU32, Everything, Nothing, ProcessMessageError}, weights::Weight, }; +use frame_system::EnsureRoot; use pallet_xcm::XcmPassthrough; use polkadot_parachain::primitives::Sibling; use polkadot_runtime_common::impls::ToAuthor; -use xcm::{latest::prelude::*, CreateMatcher, MatchXcm}; +use xcm::latest::prelude::*; use xcm_builder::{ AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowTopLevelPaidExecutionFrom, - CurrencyAdapter, EnsureXcmOrigin, FixedWeightBounds, IsConcrete, NativeAsset, ParentIsPreset, - RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, - SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, - UsingComponents, WithComputedOrigin, + CreateMatcher, CurrencyAdapter, EnsureXcmOrigin, FixedWeightBounds, IsConcrete, MatchXcm, + NativeAsset, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, + SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, WithComputedOrigin, }; use xcm_executor::{traits::ShouldExecute, XcmExecutor}; @@ -107,7 +108,7 @@ where message: &mut [Instruction], max_weight: Weight, weight_credit: &mut Weight, - ) -> Result<(), ()> { + ) -> Result<(), ProcessMessageError> { Deny::should_execute(origin, message, max_weight, weight_credit)?; Allow::should_execute(origin, message, max_weight, weight_credit) } @@ -121,7 +122,7 @@ impl ShouldExecute for DenyReserveTransferToRelayChain { message: &mut [Instruction], _max_weight: Weight, _weight_credit: &mut Weight, - ) -> Result<(), ()> { + ) -> Result<(), ProcessMessageError> { message.matcher().match_next_inst_while( |_| true, |inst| match inst { @@ -135,7 +136,7 @@ impl ShouldExecute for DenyReserveTransferToRelayChain { TransferReserveAsset { dest: MultiLocation { parents: 1, interior: Here }, .. } => { - Err(()) // Deny + Err(ProcessMessageError::Unsupported) // Deny }, // An unexpected reserve transfer has arrived from the Relay Chain. Generally, // `IsReserve` should not allow this, but we just log it here. @@ -246,6 +247,7 @@ impl pallet_xcm::Config for Runtime { type WeightInfo = pallet_xcm::TestWeightInfo; #[cfg(feature = "runtime-benchmarks")] type ReachableDest = ReachableDest; + type AdminOrigin = EnsureRoot; } impl cumulus_pallet_xcm::Config for Runtime { From 1cf922745b9cd2fa312e820cd1a040c3a31c65a3 Mon Sep 17 00:00:00 2001 From: Denis Pisarev Date: Mon, 22 May 2023 14:39:25 +0200 Subject: [PATCH 75/91] Release pipeline for multiarch binaries and an image (#159) * add release ci; add dependabot config; add Containerfile * fix binary name * fix user * add docs * don't cache the release * Update README.md Co-authored-by: Sacha Lansky * Update README.md Co-authored-by: Sacha Lansky * Update README.md Co-authored-by: Sacha Lansky --------- Co-authored-by: Sacha Lansky --- .github/dependabot.yml | 11 +++ .github/workflows/release.yml | 155 ++++++++++++++++++++++++++++++++ .github/workflows/test-code.yml | 44 +++++---- Containerfile | 32 +++++++ README.md | 27 +++++- 5 files changed, 243 insertions(+), 26 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/release.yml create mode 100644 Containerfile diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..11166769 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +version: 2 +updates: + - package-ecosystem: "cargo" + directory: "/" + schedule: + interval: "daily" + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..2383534c --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,155 @@ +# This is an example GitHub action that will build and publish the binaries and a Docker image +# You need to add the following secrets to your GitHub Repository or Organization to make this work +# - DOCKERHUB_USERNAME: The username of the DockerHub account. E.g. parity +# - DOCKERHUB_TOKEN: Access token for DockerHub, see https://docs.docker.com/docker-hub/access-tokens/. +# The following is set up as an environment variable below +# - DOCKER_REPO: The unique name of the DockerHub repository. E.g. parity/polkadot + +name: Release + +permissions: + contents: read + +# Controls when the action will run. +on: + push: + # Triggers the workflow on tag push events + tags: + - v[0-9]+.* + +env: + RUST_BACKTRACE: 1 + CARGO_INCREMENTAL: 0 + CARGO_NET_GIT_FETCH_WITH_CLI: true + CARGO_NET_RETRY: 10 + RUSTFLAGS: -D warnings + RUSTUP_MAX_RETRIES: 10 + CARGO_TERM_COLOR: always + # Set an environment variable (that can be overriden) for the Docker Repo + DOCKER_REPO: tripleight/parachain-template + +defaults: + run: + shell: bash + + +jobs: + create-release: + # The type of runner that the job will run on + runs-on: ubuntu-22.04 + timeout-minutes: 60 + permissions: + contents: write + steps: + - uses: actions/checkout@v3 + with: + persist-credentials: false + - uses: taiki-e/create-gh-release-action@v1 + with: + title: $version + branch: main + token: ${{ secrets.GITHUB_TOKEN }} + + upload-assets: + name: ${{ matrix.target }} + needs: + - create-release + strategy: + matrix: + # The list of architechture and OS to build for + # You can add or remove targets here if you want + # + # When updating this list, remember to update the target list in tests too + include: + # - target: aarch64-unknown-linux-gnu + - target: x86_64-unknown-linux-gnu + - target: aarch64-apple-darwin + os: macos-11 + - target: x86_64-apple-darwin + os: macos-11 + # - target: universal-apple-darwin + # os: macos-11 + + # The type of runner that the job will run on + # Runs on Ubuntu if other os is not specified above + runs-on: ${{ matrix.os || 'ubuntu-22.04' }} + timeout-minutes: 90 + permissions: + contents: write + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v3 + with: + persist-credentials: false + + - name: Install Rust + run: | + rustup update stable --no-self-update + rustup target add wasm32-unknown-unknown + + - name: Install linux dependencies + if: (matrix.os == '' || startsWith(matrix.os, 'ubuntu')) + run: | + sudo apt-get -qq update + sudo apt-get install -y protobuf-compiler + + - name: Install mac dependencies + if: startsWith(matrix.os, 'macos') + run: brew install protobuf + - uses: taiki-e/setup-cross-toolchain-action@v1 + if: (matrix.os == '' || startsWith(matrix.os, 'ubuntu')) + with: + target: ${{ matrix.target }} + + # Build and upload the binary to the new release + - uses: taiki-e/upload-rust-binary-action@v1 + with: + bin: parachain-template-node + target: ${{ matrix.target }} + tar: all + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Upload x86_64 linux binary to workflow + if: (matrix.target == 'x86_64-unknown-linux-gnu') + uses: actions/upload-artifact@v3 + with: + name: parachain-template-node + path: ${{ github.workspace }}/target/x86_64-unknown-linux-gnu/release/parachain-template-node + + build-image: + # The type of runner that the job will run on + needs: + - upload-assets + runs-on: ubuntu-22.04 + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Login to Docker hub using the credentials stored in the repository secrets + - name: Log in to Docker Hub + uses: docker/login-action@v2.1.0 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Check out the repo + uses: actions/checkout@v3 + + # Download the binary from the previous job + - name: Download x86_64 linux binary + uses: actions/download-artifact@v3 + with: + name: parachain-template-node + path: ${{ github.workspace }} + + # Build and push 2 images, One with the version tag and the other with latest tag + - name: Build and push Docker images + uses: docker/build-push-action@v4 + with: + context: . + file: ./Containerfile + push: true + build-args: | + DOCKER_REPO=${{ env.DOCKER_REPO }} + tags: | + ${{ env.DOCKER_REPO }}:${{ github.ref_name }} + ${{ env.DOCKER_REPO }}:latest diff --git a/.github/workflows/test-code.yml b/.github/workflows/test-code.yml index cb641ed4..b84f356d 100644 --- a/.github/workflows/test-code.yml +++ b/.github/workflows/test-code.yml @@ -1,42 +1,38 @@ name: Test Code +# Controls when the action will run. on: + # Triggers the workflow on push or pull request events but only for the master branch pull_request: branches: - main push: branches: - main + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: +# A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: test-code: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 + # Steps represent a sequence of tasks that will be executed as part of the job steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Checkout Code - uses: actions/checkout@v2 - - name: Install Protoc - uses: arduino/setup-protoc@v1 - - # Steps taken from https://github.com/actions/cache/blob/master/examples.md#rust---cargo - - name: Cache cargo registry - uses: actions/cache@v2 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} - - - name: Install toolchain - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: nightly - components: rustfmt, clippy - target: wasm32-unknown-unknown - override: true - default: true + uses: actions/checkout@v3 + + - name: Install linux dependencies + run: sudo apt-get install -y clang libssl-dev llvm libudev-dev protobuf-compiler + + - name: Install Rust + run: | + rustup update stable --no-self-update + rustup target add wasm32-unknown-unknown + + # Rust cache + - uses: Swatinem/rust-cache@v2 # Enable this for clippy linting. # - name: Check and Lint Code diff --git a/Containerfile b/Containerfile new file mode 100644 index 00000000..1ee45f61 --- /dev/null +++ b/Containerfile @@ -0,0 +1,32 @@ +FROM docker.io/library/ubuntu:22.04 + +# show backtraces +ENV RUST_BACKTRACE 1 + +# install tools and dependencies +RUN apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + ca-certificates && \ +# apt cleanup + apt-get autoremove -y && \ + apt-get clean && \ + find /var/lib/apt/lists/ -type f -not -name lock -delete; \ +# add user and link ~/.local/share/polkadot to /data + useradd -m -u 1000 -U -s /bin/sh -d /polkadot polkadot && \ + mkdir -p /data /polkadot/.local/share && \ + chown -R polkadot:polkadot /data && \ + ln -s /data /polkadot/.local/share/parachain-template-node && \ + mkdir -p /specs + +USER polkadot + +# copy the compiled binary to the container +COPY --chown=polkadot:polkadot --chmod=774 parachain-template-node /usr/bin/parachain-template-node + +# check if executable works in this container +RUN /usr/bin/parachain-template-node --version + +# ws_port +EXPOSE 9333 9944 30333 30334 + +CMD ["/usr/bin/parachain-template-node"] diff --git a/README.md b/README.md index 6dcc70c5..da7c500b 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,29 @@ at each release branch using the 👉 Learn more about parachains [here](https://wiki.polkadot.network/docs/learn-parachains), and parathreads [here](https://wiki.polkadot.network/docs/learn-parathreads). - 🧙 Learn about how to use this template and run your own parachain testnet for it in the -[Devhub Cumulus Tutorial](https://docs.substrate.io/tutorials/v3/cumulus/start-relay/). \ No newline at end of file +[Devhub Cumulus Tutorial](https://docs.substrate.io/tutorials/v3/cumulus/start-relay/). + +## CI + +### Binary + +Check the [CI release workflow](./.github/workflows/release.yml) to see how the binary is built on CI. +You can modify the compilation targets depending on your needs. + +Allow GitHub actions in your forked repository to build the binary for you. + +Push a tag. For example, `v0.1.1`. Based on [Semantic Versioning](https://semver.org/), the supported tag format is `v?MAJOR.MINOR.PATCH(-PRERELEASE)?(+BUILD_METADATA)?` (the leading "v", pre-release version, and build metadata are optional and the optional prefix is also supported). + +After the pipeline is finished, you can download the binary from the releases page. + +### Container + +Check the [CI release workflow](./.github/workflows/release.yml) to see how the Docker image is built on CI. + +Add your `DOCKERHUB_USERNAME` and `DOCKERHUB_TOKEN` secrets or other organization settings to your forked repository. +Change the `DOCKER_REPO` variable in the workflow to `[your DockerHub registry name]/[image name]`. + +Push a tag. + +After the image is built and pushed, you can pull it with `docker pull :`. From ebcc7250a829e5374f3aa19834b840c460741fd8 Mon Sep 17 00:00:00 2001 From: Paritytech CI <52199148+paritytech-ci@users.noreply.github.com> Date: Thu, 15 Jun 2023 13:11:44 +0100 Subject: [PATCH 76/91] Auto-Update substrate-parachain-template from polkadot-v0.9.43 (#174) Co-authored-by: substrate-developer-hub --- Cargo.lock | 2053 ++++++++++++++------------ README.md | 27 +- node/Cargo.toml | 86 +- node/src/cli.rs | 8 +- node/src/command.rs | 28 +- node/src/service.rs | 2 + pallets/template/Cargo.toml | 14 +- pallets/template/src/benchmarking.rs | 2 +- pallets/template/src/mock.rs | 5 +- runtime/Cargo.toml | 98 +- runtime/src/lib.rs | 10 +- runtime/src/xcm_config.rs | 4 +- 12 files changed, 1213 insertions(+), 1124 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e3ff4425..d416b281 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12,22 +12,13 @@ dependencies = [ "regex", ] -[[package]] -name = "addr2line" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" -dependencies = [ - "gimli 0.26.2", -] - [[package]] name = "addr2line" version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" dependencies = [ - "gimli 0.27.2", + "gimli", ] [[package]] @@ -115,9 +106,9 @@ dependencies = [ [[package]] name = "aes-gcm" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e1366e0c69c9f927b1fa5ce2c7bf9eafc8f9268c0b9800729e8b267612447c" +checksum = "209b47e8954a928e1d72e86eca7000ebb6655fe1436d33eefc2201cad027e237" dependencies = [ "aead 0.5.2", "aes 0.8.2", @@ -153,7 +144,7 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.9", + "getrandom 0.2.10", "once_cell", "version_check", ] @@ -165,7 +156,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" dependencies = [ "cfg-if", - "getrandom 0.2.9", + "getrandom 0.2.10", "once_cell", "version_check", ] @@ -181,9 +172,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" +checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" dependencies = [ "memchr", ] @@ -194,6 +185,12 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4436e0292ab1bb631b42973c61205e704475fe8126af845c8d923c0996328127" +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -308,9 +305,9 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "arrayvec" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +checksum = "8868f09ff8cea88b079da74ae569d9b8c62a23c68c746240b704ee6f7525c89c" [[package]] name = "asn1-rs" @@ -325,7 +322,7 @@ dependencies = [ "num-traits", "rusticata-macros", "thiserror", - "time 0.3.20", + "time 0.3.22", ] [[package]] @@ -341,7 +338,7 @@ dependencies = [ "num-traits", "rusticata-macros", "thiserror", - "time 0.3.20", + "time 0.3.22", ] [[package]] @@ -379,12 +376,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "asn1_der" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" - [[package]] name = "assert_matches" version = "1.5.0" @@ -416,9 +407,9 @@ dependencies = [ "log", "parking", "polling", - "rustix 0.37.19", + "rustix 0.37.20", "slab", - "socket2", + "socket2 0.4.9", "waker-fn", ] @@ -439,7 +430,7 @@ checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -450,7 +441,7 @@ checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -495,12 +486,12 @@ version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" dependencies = [ - "addr2line 0.19.0", + "addr2line", "cc", "cfg-if", "libc", "miniz_oxide 0.6.2", - "object 0.30.3", + "object", "rustc-demangle", ] @@ -530,9 +521,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.0" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" +checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" [[package]] name = "base64ct" @@ -552,7 +543,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "hash-db", "log", @@ -569,9 +560,9 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.64.0" +version = "0.65.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4" +checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5" dependencies = [ "bitflags", "cexpr", @@ -579,12 +570,13 @@ dependencies = [ "lazy_static", "lazycell", "peeking_take_while", + "prettyplease 0.2.6", "proc-macro2", "quote", "regex", "rustc-hash", "shlex", - "syn 1.0.109", + "syn 2.0.18", ] [[package]] @@ -611,7 +603,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -621,7 +613,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc" dependencies = [ "arrayref", - "arrayvec 0.7.2", + "arrayvec 0.7.3", "constant_time_eq", ] @@ -632,22 +624,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6637f448b9e61dfadbdcbae9a885fadee1f3eaffb1f8d3c1965d3ade8bdfd44f" dependencies = [ "arrayref", - "arrayvec 0.7.2", + "arrayvec 0.7.3", "constant_time_eq", ] [[package]] name = "blake3" -version = "1.3.3" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ae2468a89544a466886840aa467a25b766499f4f04bf7d9fcd10ecee9fccef" +checksum = "729b71f35bd3fa1a4c86b85d32c8b9069ea7fe14f7a53cfabb65f62d4265b888" dependencies = [ "arrayref", - "arrayvec 0.7.2", + "arrayvec 0.7.3", "cc", "cfg-if", "constant_time_eq", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -707,9 +699,9 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" [[package]] name = "bounded-collections" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3888522b497857eb606bf51695988dba7096941822c1bcf676e3a929a9ae7a0" +checksum = "eb5b05133427c07c4776906f673ccf36c21b102c9829c641a5b56bd151d44fd6" dependencies = [ "log", "parity-scale-codec", @@ -734,9 +726,9 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bstr" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09" +checksum = "a246e68bb43f6cd9db24bea052a53e40405417c5fb372e3d1a8a7f770a564ef5" dependencies = [ "memchr", "serde", @@ -753,9 +745,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.12.1" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8" +checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" [[package]] name = "byte-slice-cast" @@ -861,9 +853,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.10.3" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db" +checksum = "e70d3ad08698a0568b0562f22710fe6bfc1f4a61a367c77d0398c562eadd453a" dependencies = [ "smallvec", ] @@ -907,13 +899,13 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.24" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" +checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" dependencies = [ + "android-tzdata", "iana-time-zone", "js-sys", - "num-integer", "num-traits", "time 0.1.45", "wasm-bindgen", @@ -983,9 +975,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.2.7" +version = "4.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34d21f9bf1b425d2968943631ec91202fe5e837264063503708b83013f8fc938" +checksum = "ca8f255e4b8027970e78db75e78831229c9815fdbfa67eb1a1b777a62e24b4a0" dependencies = [ "clap_builder", "clap_derive", @@ -994,9 +986,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.2.7" +version = "4.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "914c8c79fb560f238ef6429439a30023c862f7a28e688c58f7203f12b29970bd" +checksum = "acd4f3c17c83b0ba34ffbc4f8bbd74f079413f747f84a6f89292f138057e36ab" dependencies = [ "anstream", "anstyle", @@ -1007,21 +999,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.2.0" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4" +checksum = "b8cd2b2a819ad6eec39e8f1d6b53001af1e5469f8c177579cdaeb313115b825f" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "clap_lex" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" +checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" [[package]] name = "coarsetime" @@ -1074,9 +1066,9 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "comfy-table" -version = "6.1.4" +version = "6.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e7b787b0dc42e8111badfdbe4c3059158ccb2db8780352fa1b01e8ccf45cc4d" +checksum = "7e959d788268e3bf9d35ace83e81b124190378e4c91c9067524675e33394b8ba" dependencies = [ "strum", "strum_macros", @@ -1092,6 +1084,19 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "console" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "unicode-width", + "windows-sys 0.45.0", +] + [[package]] name = "const-oid" version = "0.9.2" @@ -1100,9 +1105,9 @@ checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" [[package]] name = "constant_time_eq" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13418e745008f7349ec7e449155f419a61b92b58a99cc3616942b926825ec76b" +checksum = "21a53c0a4d288377e7415b53dcfc3c04da5cdc2cc95c8d5ac178b58f0b861ad6" [[package]] name = "convert_case" @@ -1165,28 +1170,27 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc42ba2e232e5b20ff7dc299a812d53337dadce9a7e39a238e6a5cb82d2e57b" +checksum = "1277fbfa94bc82c8ec4af2ded3e639d49ca5f7f3c7eeab2c66accd135ece4e70" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "253531aca9b6f56103c9420369db3263e784df39aa1c90685a1f69cfbba0623e" +checksum = "c6e8c31ad3b2270e9aeec38723888fe1b0ace3bea2b06b3f749ccf46661d3220" dependencies = [ - "arrayvec 0.7.2", "bumpalo", "cranelift-bforest", "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-entity", "cranelift-isle", - "gimli 0.26.2", - "hashbrown 0.12.3", + "gimli", + "hashbrown 0.13.2", "log", "regalloc2", "smallvec", @@ -1195,33 +1199,33 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72f2154365e2bff1b1b8537a7181591fdff50d8e27fa6e40d5c69c3bad0ca7c8" +checksum = "c8ac5ac30d62b2d66f12651f6b606dbdfd9c2cfd0908de6b387560a277c5c9da" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "687e14e3f5775248930e0d5a84195abef8b829958e9794bf8d525104993612b4" +checksum = "dd82b8b376247834b59ed9bdc0ddeb50f517452827d4a11bccf5937b213748b8" [[package]] name = "cranelift-entity" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f42ea692c7b450ad18b8c9889661505d51c09ec4380cf1c2d278dbb2da22cae1" +checksum = "40099d38061b37e505e63f89bab52199037a72b931ad4868d9089ff7268660b0" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8483c2db6f45fe9ace984e5adc5d058102227e4c62e5aa2054e16b0275fd3a6e" +checksum = "64a25d9d0a0ae3079c463c34115ec59507b4707175454f0eee0891e83e30e82d" dependencies = [ "cranelift-codegen", "log", @@ -1231,15 +1235,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9793158837678902446c411741d87b43f57dadfb944f2440db4287cda8cbd59" +checksum = "80de6a7d0486e4acbd5f9f87ec49912bf4c8fb6aea00087b989685460d4469ba" [[package]] name = "cranelift-native" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72668c7755f2b880665cb422c8ad2d56db58a88b9bebfef0b73edc2277c13c49" +checksum = "bb6b03e0e03801c4b3fd8ce0758a94750c07a44e7944cc0ffbf0d3f2e7c79b00" dependencies = [ "cranelift-codegen", "libc", @@ -1248,9 +1252,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.93.2" +version = "0.95.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3852ce4b088b44ac4e29459573943009a70d1b192c8d77ef949b4e814f656fc1" +checksum = "ff3220489a3d928ad91e59dd7aeaa8b3de18afb554a6211213673a71c90737ac" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1309,14 +1313,14 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.14" +version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset 0.8.0", + "memoffset 0.9.0", "scopeguard", ] @@ -1332,9 +1336,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.15" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" dependencies = [ "cfg-if", ] @@ -1421,7 +1425,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "clap", "parity-scale-codec", @@ -1436,7 +1440,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1459,13 +1463,20 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "async-trait", + "cumulus-client-collator", "cumulus-client-consensus-common", + "cumulus-client-consensus-proposer", "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", + "cumulus-relay-chain-interface", "futures", "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-overseer", + "polkadot-primitives", "sc-client-api", "sc-consensus", "sc-consensus-aura", @@ -1481,6 +1492,8 @@ dependencies = [ "sp-inherents", "sp-keystore", "sp-runtime", + "sp-state-machine", + "sp-timestamp", "substrate-prometheus-endpoint", "tracing", ] @@ -1488,7 +1501,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -1504,15 +1517,32 @@ dependencies = [ "schnellru", "sp-blockchain", "sp-consensus", + "sp-core", "sp-runtime", "sp-trie", + "substrate-prometheus-endpoint", "tracing", ] +[[package]] +name = "cumulus-client-consensus-proposer" +version = "0.1.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" +dependencies = [ + "anyhow", + "async-trait", + "cumulus-primitives-parachain-inherent", + "sp-consensus", + "sp-inherents", + "sp-runtime", + "sp-state-machine", + "thiserror", +] + [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1535,7 +1565,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1559,7 +1589,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1594,7 +1624,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "frame-support", "frame-system", @@ -1610,7 +1640,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1627,7 +1657,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -1656,18 +1686,18 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "frame-benchmarking", "frame-support", @@ -1681,7 +1711,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1697,7 +1727,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1718,7 +1748,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -1735,7 +1765,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1758,7 +1788,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "cumulus-primitives-core", "futures", @@ -1771,7 +1801,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1789,7 +1819,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1814,7 +1844,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1832,7 +1862,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "array-bytes 6.1.0", "async-trait", @@ -1870,7 +1900,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1900,7 +1930,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -1952,9 +1982,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.94" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" +checksum = "109308c20e8445959c2792e81871054c6a17e6976489a93d2769641a2ba5839c" dependencies = [ "cc", "cxxbridge-flags", @@ -1964,9 +1994,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.94" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" +checksum = "daf4c6755cdf10798b97510e0e2b3edb9573032bd9379de8fffa59d68165494f" dependencies = [ "cc", "codespan-reporting", @@ -1974,24 +2004,24 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "cxxbridge-flags" -version = "1.0.94" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" +checksum = "882074421238e84fe3b4c65d0081de34e5b323bf64555d3e61991f76eb64a7bb" [[package]] name = "cxxbridge-macro" -version = "1.0.94" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" +checksum = "4a076022ece33e7686fb76513518e219cca4fce5750a8ae6d1ce6c0f48fd1af9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -2031,15 +2061,15 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" +checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" [[package]] name = "data-encoding-macro" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86927b7cd2fe88fa698b87404b287ab98d1a0063a34071d92e575b72d3029aca" +checksum = "c904b33cc60130e1aeea4956ab803d08a3f4a0ca82d64ed757afac3891f2bb99" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -2047,9 +2077,9 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038db" +checksum = "8fdf3fce3ce863539ec1d7fd1b6dcc3c645663376b43ed376bbf887733e4f772" dependencies = [ "data-encoding", "syn 1.0.109", @@ -2068,9 +2098,9 @@ dependencies = [ [[package]] name = "der" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05e58dffcdcc8ee7b22f0c1f71a69243d7c2d9ad87b5a14361f2424a1565c219" +checksum = "56acb310e15652100da43d130af8d97b509e95af61aab1c5a7939ef24337ee17" dependencies = [ "const-oid", "zeroize", @@ -2196,9 +2226,9 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", "const-oid", @@ -2255,7 +2285,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -2317,15 +2347,16 @@ dependencies = [ [[package]] name = "ecdsa" -version = "0.16.6" +version = "0.16.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a48e5d537b8a30c0b023116d981b16334be1485af7ca68db3a2b7024cbc957fd" +checksum = "0997c976637b606099b9985693efa3581e84e41f5c11ba5255f88711058ad428" dependencies = [ - "der 0.7.5", - "digest 0.10.6", - "elliptic-curve 0.13.4", + "der 0.7.6", + "digest 0.10.7", + "elliptic-curve 0.13.5", "rfc6979 0.4.0", "signature 2.1.0", + "spki 0.7.2", ] [[package]] @@ -2380,7 +2411,7 @@ dependencies = [ "base16ct 0.1.1", "crypto-bigint 0.4.9", "der 0.6.1", - "digest 0.10.6", + "digest 0.10.7", "ff 0.12.1", "generic-array 0.14.7", "group 0.12.1", @@ -2395,13 +2426,13 @@ dependencies = [ [[package]] name = "elliptic-curve" -version = "0.13.4" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75c71eaa367f2e5d556414a8eea812bc62985c879748d6403edabd9cb03f16e7" +checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" dependencies = [ "base16ct 0.2.0", "crypto-bigint 0.5.2", - "digest 0.10.6", + "digest 0.10.7", "ff 0.13.0", "generic-array 0.14.7", "group 0.13.0", @@ -2412,6 +2443,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + [[package]] name = "enum-as-inner" version = "0.5.1" @@ -2441,7 +2478,7 @@ checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -2452,7 +2489,7 @@ checksum = "48016319042fb7c87b78d2993084a831793a897a5cd1a2a67cab9d1eeb4b7d76" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -2570,7 +2607,7 @@ dependencies = [ "fs-err", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -2739,16 +2776,16 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "parity-scale-codec", ] [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ "percent-encoding", ] @@ -2762,7 +2799,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-support", "frame-support-procedural", @@ -2787,7 +2824,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "Inflector", "array-bytes 4.2.0", @@ -2834,18 +2871,18 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2862,7 +2899,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-support", "frame-system", @@ -2891,10 +2928,11 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "async-recursion", "futures", + "indicatif", "jsonrpsee", "log", "parity-scale-codec", @@ -2902,14 +2940,16 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", + "spinners", "substrate-rpc-client", "tokio", + "tokio-retry", ] [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "bitflags", "environmental", @@ -2928,6 +2968,7 @@ dependencies = [ "sp-arithmetic", "sp-core", "sp-core-hashing-proc-macro", + "sp-debug-derive", "sp-inherents", "sp-io", "sp-runtime", @@ -2942,7 +2983,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "Inflector", "cfg-expr", @@ -2952,36 +2993,37 @@ dependencies = [ "proc-macro-warning", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ + "cfg-if", "frame-support", "log", "parity-scale-codec", @@ -2998,7 +3040,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -3013,7 +3055,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "parity-scale-codec", "sp-api", @@ -3022,7 +3064,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-support", "parity-scale-codec", @@ -3049,11 +3091,11 @@ dependencies = [ [[package]] name = "fs4" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7f5b6908aecca5812a4569056285e58c666588c9573ee59765bf1d3692699e2" +checksum = "7672706608ecb74ab2e055c68327ffc25ae4cac1e12349204fd5fb0f3487cce2" dependencies = [ - "rustix 0.37.19", + "rustix 0.37.20", "windows-sys 0.48.0", ] @@ -3135,7 +3177,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -3237,9 +3279,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if", "libc", @@ -3268,21 +3310,15 @@ dependencies = [ [[package]] name = "gimli" -version = "0.26.2" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" +checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" dependencies = [ "fallible-iterator", "indexmap", "stable_deref_trait", ] -[[package]] -name = "gimli" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" - [[package]] name = "glob" version = "0.3.1" @@ -3326,9 +3362,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f8a914c2987b688368b5138aa05321db91f4090cf26118185672ad588bce21" +checksum = "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782" dependencies = [ "bytes", "fnv", @@ -3345,9 +3381,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.3.6" +version = "4.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "035ef95d03713f2c347a72547b7cd38cbc9af7cd51e6099fb62d586d4a6dee3a" +checksum = "83c3372087601b532857d332f5957cbae686da52bb7810bf038c3e3c3cc2fa0d" dependencies = [ "log", "pest", @@ -3467,7 +3503,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -3555,7 +3591,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite 0.2.9", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -3580,9 +3616,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.56" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" +checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -3594,12 +3630,11 @@ dependencies = [ [[package]] name = "iana-time-zone-haiku" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" dependencies = [ - "cxx", - "cxx-build", + "cc", ] [[package]] @@ -3621,9 +3656,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -3698,6 +3733,19 @@ dependencies = [ "serde", ] +[[package]] +name = "indicatif" +version = "0.17.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ff8cc23a7393a397ed1d7f56e6365cba772aba9f9912ab968b03043c395d057" +dependencies = [ + "console", + "instant", + "number_prefix", + "portable-atomic", + "unicode-width", +] + [[package]] name = "inout" version = "0.1.3" @@ -3752,9 +3800,9 @@ dependencies = [ [[package]] name = "io-lifetimes" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ "hermit-abi 0.3.1", "libc", @@ -3769,13 +3817,13 @@ checksum = "aa2f047c0a98b2f299aa5d6d7088443570faae494e9ae1305e48be000c9e0eb1" [[package]] name = "ipconfig" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd302af1b90f2463a98fa5ad469fc212c8e3175a41c3068601bfa2727591c5be" +checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2", + "socket2 0.5.3", "widestring", - "winapi", + "windows-sys 0.48.0", "winreg", ] @@ -3793,7 +3841,7 @@ checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" dependencies = [ "hermit-abi 0.3.1", "io-lifetimes", - "rustix 0.37.19", + "rustix 0.37.20", "windows-sys 0.48.0", ] @@ -3823,9 +3871,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.61" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" dependencies = [ "wasm-bindgen", ] @@ -3873,7 +3921,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4e70b4439a751a5de7dd5ed55eacff78ebf4ffe0fc009cb1ebb11417f5b536b" dependencies = [ "anyhow", - "arrayvec 0.7.2", + "arrayvec 0.7.3", "async-lock", "async-trait", "beef", @@ -3981,25 +4029,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cadb76004ed8e97623117f3df85b17aaa6626ab0b0831e6573f104df16cd1bcc" dependencies = [ "cfg-if", - "ecdsa 0.16.6", - "elliptic-curve 0.13.4", + "ecdsa 0.16.7", + "elliptic-curve 0.13.5", "once_cell", "sha2 0.10.6", ] [[package]] name = "keccak" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768" +checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" dependencies = [ "cpufeatures", ] [[package]] name = "kusama-runtime" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bitvec", "frame-benchmarking", @@ -4032,6 +4080,7 @@ dependencies = [ "pallet-im-online", "pallet-indices", "pallet-membership", + "pallet-message-queue", "pallet-multisig", "pallet-nis", "pallet-nomination-pools", @@ -4096,8 +4145,8 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "frame-support", "polkadot-primitives", @@ -4129,9 +4178,9 @@ dependencies = [ [[package]] name = "kvdb-rocksdb" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe7a749456510c45f795e8b04a6a3e0976d0139213ecbf465843830ad55e2217" +checksum = "b644c70b92285f66bfc2032922a79000ea30af7bc2ab31902992a5dcb9b434f6" dependencies = [ "kvdb", "num_cpus", @@ -4155,9 +4204,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.142" +version = "0.2.146" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317" +checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b" [[package]] name = "libloading" @@ -4177,28 +4226,30 @@ checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" [[package]] name = "libm" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" +checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" [[package]] name = "libp2p" -version = "0.50.1" +version = "0.51.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c7b0104790be871edcf97db9bd2356604984e623a08d825c3f27852290266b8" +checksum = "f210d259724eae82005b5c48078619b7745edb7b76de370b03f8ba59ea103097" dependencies = [ "bytes", "futures", "futures-timer", - "getrandom 0.2.9", + "getrandom 0.2.10", "instant", - "libp2p-core 0.38.0", + "libp2p-allow-block-list", + "libp2p-connection-limits", + "libp2p-core", "libp2p-dns", "libp2p-identify", + "libp2p-identity", "libp2p-kad", "libp2p-mdns", "libp2p-metrics", - "libp2p-mplex", "libp2p-noise", "libp2p-ping", "libp2p-quic", @@ -4209,44 +4260,32 @@ dependencies = [ "libp2p-webrtc", "libp2p-websocket", "libp2p-yamux", - "multiaddr 0.16.0", - "parking_lot 0.12.1", + "multiaddr", "pin-project", - "smallvec", ] [[package]] -name = "libp2p-core" -version = "0.38.0" +name = "libp2p-allow-block-list" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6a8fcd392ff67af6cc3f03b1426c41f7f26b6b9aff2dc632c1c56dd649e571f" +checksum = "510daa05efbc25184458db837f6f9a5143888f1caa742426d92e1833ddd38a50" dependencies = [ - "asn1_der", - "bs58", - "ed25519-dalek", - "either", - "fnv", - "futures", - "futures-timer", - "instant", - "log", - "multiaddr 0.16.0", - "multihash 0.16.3", - "multistream-select", - "once_cell", - "parking_lot 0.12.1", - "pin-project", - "prost", - "prost-build", - "rand 0.8.5", - "rw-stream-sink", - "sec1 0.3.0", - "sha2 0.10.6", - "smallvec", - "thiserror", - "unsigned-varint", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "void", +] + +[[package]] +name = "libp2p-connection-limits" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4caa33f1d26ed664c4fe2cca81a08c8e07d4c1c04f2f4ac7655c2dd85467fda0" +dependencies = [ + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", "void", - "zeroize", ] [[package]] @@ -4262,7 +4301,7 @@ dependencies = [ "instant", "libp2p-identity", "log", - "multiaddr 0.17.1", + "multiaddr", "multihash 0.17.0", "multistream-select", "once_cell", @@ -4279,12 +4318,12 @@ dependencies = [ [[package]] name = "libp2p-dns" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e42a271c1b49f789b92f7fc87749fa79ce5c7bdc88cbdfacb818a4bca47fec5" +checksum = "146ff7034daae62077c415c2376b8057368042df6ab95f5432ad5e88568b1554" dependencies = [ "futures", - "libp2p-core 0.38.0", + "libp2p-core", "log", "parking_lot 0.12.1", "smallvec", @@ -4293,20 +4332,21 @@ dependencies = [ [[package]] name = "libp2p-identify" -version = "0.41.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c052d0026f4817b44869bfb6810f4e1112f43aec8553f2cb38881c524b563abf" +checksum = "5455f472243e63b9c497ff320ded0314254a9eb751799a39c283c6f20b793f3c" dependencies = [ "asynchronous-codec", + "either", "futures", "futures-timer", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-swarm", "log", - "lru 0.8.1", - "prost", - "prost-build", - "prost-codec", + "lru 0.10.0", + "quick-protobuf", + "quick-protobuf-codec", "smallvec", "thiserror", "void", @@ -4321,7 +4361,7 @@ dependencies = [ "bs58", "ed25519-dalek", "log", - "multiaddr 0.17.1", + "multiaddr", "multihash 0.17.0", "quick-protobuf", "rand 0.8.5", @@ -4332,11 +4372,11 @@ dependencies = [ [[package]] name = "libp2p-kad" -version = "0.42.1" +version = "0.43.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2766dcd2be8c87d5e1f35487deb22d765f49c6ae1251b3633efe3b25698bd3d2" +checksum = "39d5ef876a2b2323d63c258e63c2f8e36f205fe5a11f0b3095d59635650790ff" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.3", "asynchronous-codec", "bytes", "either", @@ -4344,11 +4384,11 @@ dependencies = [ "futures", "futures-timer", "instant", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-swarm", "log", - "prost", - "prost-build", + "quick-protobuf", "rand 0.8.5", "sha2 0.10.6", "smallvec", @@ -4360,19 +4400,20 @@ dependencies = [ [[package]] name = "libp2p-mdns" -version = "0.42.0" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04f378264aade9872d6ccd315c0accc18be3a35d15fc1b9c36e5b6f983b62b5b" +checksum = "19983e1f949f979a928f2c603de1cf180cc0dc23e4ac93a62651ccb18341460b" dependencies = [ "data-encoding", "futures", "if-watch", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-swarm", "log", "rand 0.8.5", "smallvec", - "socket2", + "socket2 0.4.9", "tokio", "trust-dns-proto", "void", @@ -4380,11 +4421,11 @@ dependencies = [ [[package]] name = "libp2p-metrics" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad8a64f29da86005c86a4d2728b8a0719e9b192f4092b609fd8790acb9dec55" +checksum = "a42ec91e227d7d0dafa4ce88b333cdf5f277253873ab087555c92798db2ddd46" dependencies = [ - "libp2p-core 0.38.0", + "libp2p-core", "libp2p-identify", "libp2p-kad", "libp2p-ping", @@ -4392,38 +4433,20 @@ dependencies = [ "prometheus-client", ] -[[package]] -name = "libp2p-mplex" -version = "0.38.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03805b44107aa013e7cbbfa5627b31c36cbedfdfb00603c0311998882bc4bace" -dependencies = [ - "asynchronous-codec", - "bytes", - "futures", - "libp2p-core 0.38.0", - "log", - "nohash-hasher", - "parking_lot 0.12.1", - "rand 0.8.5", - "smallvec", - "unsigned-varint", -] - [[package]] name = "libp2p-noise" -version = "0.41.0" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a978cb57efe82e892ec6f348a536bfbd9fee677adbe5689d7a93ad3a9bffbf2e" +checksum = "9c3673da89d29936bc6435bafc638e2f184180d554ce844db65915113f86ec5e" dependencies = [ "bytes", "curve25519-dalek 3.2.0", "futures", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "log", "once_cell", - "prost", - "prost-build", + "quick-protobuf", "rand 0.8.5", "sha2 0.10.6", "snow", @@ -4435,14 +4458,15 @@ dependencies = [ [[package]] name = "libp2p-ping" -version = "0.41.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "929fcace45a112536e22b3dcfd4db538723ef9c3cb79f672b98be2cc8e25f37f" +checksum = "3e57759c19c28a73ef1eb3585ca410cefb72c1a709fcf6de1612a378e4219202" dependencies = [ + "either", "futures", "futures-timer", "instant", - "libp2p-core 0.38.0", + "libp2p-core", "libp2p-swarm", "log", "rand 0.8.5", @@ -4451,15 +4475,16 @@ dependencies = [ [[package]] name = "libp2p-quic" -version = "0.7.0-alpha" +version = "0.7.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01e7c867e95c8130667b24409d236d37598270e6da69b3baf54213ba31ffca59" +checksum = "c6b26abd81cd2398382a1edfe739b539775be8a90fa6914f39b2ab49571ec735" dependencies = [ "bytes", "futures", "futures-timer", "if-watch", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-tls", "log", "parking_lot 0.12.1", @@ -4472,49 +4497,46 @@ dependencies = [ [[package]] name = "libp2p-request-response" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3236168796727bfcf4927f766393415361e2c644b08bedb6a6b13d957c9a4884" +checksum = "7ffdb374267d42dc5ed5bc53f6e601d4a64ac5964779c6e40bb9e4f14c1e30d5" dependencies = [ "async-trait", - "bytes", "futures", "instant", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-swarm", - "log", "rand 0.8.5", "smallvec", - "unsigned-varint", ] [[package]] name = "libp2p-swarm" -version = "0.41.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a35472fe3276b3855c00f1c032ea8413615e030256429ad5349cdf67c6e1a0" +checksum = "903b3d592d7694e56204d211f29d31bc004be99386644ba8731fc3e3ef27b296" dependencies = [ "either", "fnv", "futures", "futures-timer", "instant", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-swarm-derive", "log", - "pin-project", "rand 0.8.5", "smallvec", - "thiserror", "tokio", "void", ] [[package]] name = "libp2p-swarm-derive" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d527d5827582abd44a6d80c07ff8b50b4ee238a8979e05998474179e79dc400" +checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f" dependencies = [ "heck", "quote", @@ -4523,17 +4545,17 @@ dependencies = [ [[package]] name = "libp2p-tcp" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b257baf6df8f2df39678b86c578961d48cc8b68642a12f0f763f56c8e5858d" +checksum = "33d33698596d7722d85d3ab0c86c2c322254fce1241e91208e3679b4eb3026cf" dependencies = [ "futures", "futures-timer", "if-watch", "libc", - "libp2p-core 0.38.0", + "libp2p-core", "log", - "socket2", + "socket2 0.4.9", "tokio", ] @@ -4545,7 +4567,7 @@ checksum = "ff08d13d0dc66e5e9ba6279c1de417b84fa0d0adc3b03e5732928c180ec02781" dependencies = [ "futures", "futures-rustls", - "libp2p-core 0.39.2", + "libp2p-core", "libp2p-identity", "rcgen 0.10.0", "ring", @@ -4558,13 +4580,13 @@ dependencies = [ [[package]] name = "libp2p-wasm-ext" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb1a35299860e0d4b3c02a3e74e3b293ad35ae0cee8a056363b0c862d082069" +checksum = "77dff9d32353a5887adb86c8afc1de1a94d9e8c3bc6df8b2201d7cdf5c848f43" dependencies = [ "futures", "js-sys", - "libp2p-core 0.38.0", + "libp2p-core", "parity-send-wrapper", "wasm-bindgen", "wasm-bindgen-futures", @@ -4572,9 +4594,9 @@ dependencies = [ [[package]] name = "libp2p-webrtc" -version = "0.4.0-alpha" +version = "0.4.0-alpha.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb6cd86dd68cba72308ea05de1cebf3ba0ae6e187c40548167955d4e3970f6a" +checksum = "dba48592edbc2f60b4bc7c10d65445b0c3964c07df26fdf493b6880d33be36f8" dependencies = [ "async-trait", "asynchronous-codec", @@ -4583,13 +4605,13 @@ dependencies = [ "futures-timer", "hex", "if-watch", - "libp2p-core 0.38.0", + "libp2p-core", + "libp2p-identity", "libp2p-noise", "log", - "multihash 0.16.3", - "prost", - "prost-build", - "prost-codec", + "multihash 0.17.0", + "quick-protobuf", + "quick-protobuf-codec", "rand 0.8.5", "rcgen 0.9.3", "serde", @@ -4603,14 +4625,14 @@ dependencies = [ [[package]] name = "libp2p-websocket" -version = "0.40.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d705506030d5c0aaf2882437c70dab437605f21c5f9811978f694e6917a3b54" +checksum = "111273f7b3d3510524c752e8b7a5314b7f7a1fee7e68161c01a7d72cbb06db9f" dependencies = [ "either", "futures", "futures-rustls", - "libp2p-core 0.38.0", + "libp2p-core", "log", "parking_lot 0.12.1", "quicksink", @@ -4622,23 +4644,22 @@ dependencies = [ [[package]] name = "libp2p-yamux" -version = "0.42.0" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f63594a0aa818642d9d4915c791945053877253f08a3626f13416b5cd928a29" +checksum = "4dcd21d950662700a385d4c6d68e2f5f54d778e97068cdd718522222ef513bda" dependencies = [ "futures", - "libp2p-core 0.38.0", + "libp2p-core", "log", - "parking_lot 0.12.1", "thiserror", "yamux", ] [[package]] name = "librocksdb-sys" -version = "0.10.0+7.9.2" +version = "0.11.0+8.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fe4d5874f5ff2bc616e55e8c6086d478fcda13faf9495768a4aa1c22042d30b" +checksum = "d3386f101bcb4bd252d8e9d2fb41ec3b0862a15a62b478c355b2982efa469e3e" dependencies = [ "bindgen", "bzip2-sys", @@ -4749,15 +4770,15 @@ checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" [[package]] name = "linux-raw-sys" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "lock_api" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", @@ -4765,12 +4786,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.17" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] +checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" [[package]] name = "lru" @@ -4790,6 +4808,15 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "lru" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03f1160296536f10c833a82dca22267d5486734230d47bf00bf435885814ba1e" +dependencies = [ + "hashbrown 0.13.2", +] + [[package]] name = "lru-cache" version = "0.1.2" @@ -4828,6 +4855,12 @@ dependencies = [ "libc", ] +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + [[package]] name = "match_cfg" version = "0.1.0" @@ -4865,7 +4898,7 @@ version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -4880,7 +4913,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffc89ccdc6e10d6907450f753537ebc5c5d3460d2e4e62ea74bd571db62c0f9e" dependencies = [ - "rustix 0.37.19", + "rustix 0.37.20", ] [[package]] @@ -4910,6 +4943,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + [[package]] name = "memory-db" version = "0.32.0" @@ -4974,20 +5016,19 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" +checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" dependencies = [ "libc", - "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "futures", "log", @@ -5006,7 +5047,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "anyhow", "jsonrpsee", @@ -5046,24 +5087,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "multiaddr" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aebdb21e90f81d13ed01dc84123320838e53963c2ca94b60b305d3fa64f31e" -dependencies = [ - "arrayref", - "byteorder", - "data-encoding", - "multibase", - "multihash 0.16.3", - "percent-encoding", - "serde", - "static_assertions", - "unsigned-varint", - "url", -] - [[package]] name = "multiaddr" version = "0.17.1" @@ -5104,7 +5127,7 @@ dependencies = [ "blake2s_simd", "blake3", "core2", - "digest 0.10.6", + "digest 0.10.7", "multihash-derive", "sha2 0.10.6", "sha3", @@ -5118,7 +5141,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" dependencies = [ "core2", + "digest 0.10.7", "multihash-derive", + "sha2 0.10.6", "unsigned-varint", ] @@ -5324,7 +5349,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.3", "itoa", ] @@ -5370,23 +5395,20 @@ dependencies = [ ] [[package]] -name = "object" -version = "0.29.0" +name = "number_prefix" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" -dependencies = [ - "crc32fast", - "hashbrown 0.12.3", - "indexmap", - "memchr", -] +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "object" -version = "0.30.3" +version = "0.30.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" +checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385" dependencies = [ + "crc32fast", + "hashbrown 0.13.2", + "indexmap", "memchr", ] @@ -5410,9 +5432,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.1" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "opaque-debug" @@ -5508,7 +5530,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-support", "frame-system", @@ -5524,7 +5546,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-support", "frame-system", @@ -5540,7 +5562,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-support", "frame-system", @@ -5554,7 +5576,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -5578,7 +5600,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5598,7 +5620,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -5613,7 +5635,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-support", "frame-system", @@ -5632,7 +5654,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "array-bytes 4.2.0", "binary-merkle-tree", @@ -5656,7 +5678,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -5674,7 +5696,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -5693,7 +5715,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "frame-benchmarking", "frame-support", @@ -5712,7 +5734,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -5729,7 +5751,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "assert_matches", "frame-benchmarking", @@ -5746,7 +5768,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -5764,7 +5786,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5787,7 +5809,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5800,7 +5822,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -5818,7 +5840,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5836,7 +5858,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -5859,7 +5881,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5873,46 +5895,63 @@ dependencies = [ ] [[package]] -name = "pallet-im-online" +name = "pallet-im-online" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-authorship", + "parity-scale-codec", + "scale-info", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-std", +] + +[[package]] +name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "log", - "pallet-authorship", "parity-scale-codec", "scale-info", - "sp-application-crypto", "sp-core", "sp-io", + "sp-keyring", "sp-runtime", - "sp-staking", "sp-std", ] [[package]] -name = "pallet-indices" +name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", "sp-core", "sp-io", - "sp-keyring", "sp-runtime", "sp-std", ] [[package]] -name = "pallet-membership" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +name = "pallet-message-queue" +version = "7.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -5920,16 +5959,18 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", + "sp-arithmetic", "sp-core", "sp-io", "sp-runtime", "sp-std", + "sp-weights", ] [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -5946,7 +5987,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -5962,7 +6003,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -5978,7 +6019,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-support", "frame-system", @@ -5995,7 +6036,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6015,7 +6056,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -6026,7 +6067,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-support", "frame-system", @@ -6043,7 +6084,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6064,10 +6105,25 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-parachain-template" +version = "0.1.0" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", +] + [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -6084,7 +6140,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -6099,7 +6155,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -6117,7 +6173,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -6132,7 +6188,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6151,7 +6207,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -6168,7 +6224,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-support", "frame-system", @@ -6189,7 +6245,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -6205,7 +6261,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-support", "frame-system", @@ -6219,7 +6275,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6242,18 +6298,18 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "log", "sp-arithmetic", @@ -6262,7 +6318,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "parity-scale-codec", "sp-api", @@ -6271,7 +6327,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -6288,36 +6344,22 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" -dependencies = [ - "frame-support", - "frame-system", - "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-template" -version = "0.1.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", "scale-info", - "serde", - "sp-core", "sp-io", "sp-runtime", + "sp-std", ] [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -6335,7 +6377,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -6354,7 +6396,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-support", "frame-system", @@ -6370,7 +6412,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -6386,7 +6428,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6398,7 +6440,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -6415,7 +6457,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -6431,7 +6473,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -6446,7 +6488,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-benchmarking", "frame-support", @@ -6460,8 +6502,8 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bounded-collections", "frame-benchmarking", @@ -6481,8 +6523,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "frame-benchmarking", "frame-support", @@ -6501,7 +6543,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.43#01148b992ec26408de50288332f92672da984a53" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -6590,9 +6632,9 @@ dependencies = [ "pallet-authorship", "pallet-balances", "pallet-collator-selection", + "pallet-parachain-template", "pallet-session", "pallet-sudo", - "pallet-template", "pallet-timestamp", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", @@ -6622,9 +6664,9 @@ dependencies = [ [[package]] name = "parity-db" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd4572a52711e2ccff02b4973ec7e4a5b5c23387ebbfbd6cd42b34755714cefc" +checksum = "4890dcb9556136a4ec2b0c51fa4a08c8b733b829506af8fff2e853f3a065985b" dependencies = [ "blake2", "crc32fast", @@ -6646,7 +6688,7 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ddb756ca205bd108aee3c62c6d3c994e1df84a59b9d6d4a5ea42ee1fd5a9a28" dependencies = [ - "arrayvec 0.7.2", + "arrayvec 0.7.3", "bitvec", "byte-slice-cast", "bytes", @@ -6703,7 +6745,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.7", + "parking_lot_core 0.9.8", ] [[package]] @@ -6722,17 +6764,23 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.7" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" +checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.2.16", + "redox_syscall 0.3.5", "smallvec", - "windows-sys 0.45.0", + "windows-targets 0.48.0", ] +[[package]] +name = "partial_sort" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7924d1d0ad836f665c9065e26d016c673ece3993f30d340068b16f282afc1156" + [[package]] name = "paste" version = "1.0.12" @@ -6754,7 +6802,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -6783,9 +6831,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pest" @@ -6817,7 +6865,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -6843,22 +6891,22 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.0.12" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" +checksum = "c95a7476719eab1e366eaf73d0260af3021184f18177925b07f54b30089ceead" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.12" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" +checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.18", ] [[package]] @@ -6895,8 +6943,8 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ - "der 0.7.5", - "spki 0.7.1", + "der 0.7.6", + "spki 0.7.2", ] [[package]] @@ -6919,8 +6967,8 @@ checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" [[package]] name = "polkadot-approval-distribution" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "futures", "polkadot-node-jaeger", @@ -6935,8 +6983,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "futures", "polkadot-node-network-protocol", @@ -6949,8 +6997,8 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "derive_more", "fatality", @@ -6972,8 +7020,8 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "fatality", "futures", @@ -6993,8 +7041,8 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "clap", "frame-benchmarking-cli", @@ -7022,8 +7070,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "async-trait", "frame-benchmarking", @@ -7065,8 +7113,8 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "always-assert", "bitvec", @@ -7087,8 +7135,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "parity-scale-codec", "scale-info", @@ -7099,8 +7147,8 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "derive_more", "fatality", @@ -7124,8 +7172,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -7138,8 +7186,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "futures", "futures-timer", @@ -7158,8 +7206,8 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "always-assert", "async-trait", @@ -7181,8 +7229,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "futures", "parity-scale-codec", @@ -7199,8 +7247,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bitvec", "derive_more", @@ -7228,8 +7276,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bitvec", "futures", @@ -7249,8 +7297,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bitvec", "fatality", @@ -7268,8 +7316,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "futures", "polkadot-node-subsystem", @@ -7283,8 +7331,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "async-trait", "futures", @@ -7303,8 +7351,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "futures", "polkadot-node-metrics", @@ -7318,8 +7366,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "futures", "futures-timer", @@ -7335,8 +7383,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "fatality", "futures", @@ -7354,8 +7402,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "async-trait", "futures", @@ -7371,8 +7419,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bitvec", "fatality", @@ -7389,8 +7437,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "always-assert", "futures", @@ -7416,8 +7464,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "futures", "polkadot-node-primitives", @@ -7432,8 +7480,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-worker" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "assert_matches", "cpu-time", @@ -7461,8 +7509,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "futures", "lru 0.9.0", @@ -7476,8 +7524,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "lazy_static", "log", @@ -7494,8 +7542,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bs58", "futures", @@ -7513,9 +7561,10 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ + "async-channel", "async-trait", "derive_more", "fatality", @@ -7535,8 +7584,8 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bounded-vec", "futures", @@ -7557,8 +7606,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -7567,8 +7616,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "async-trait", "derive_more", @@ -7590,8 +7639,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "async-trait", "derive_more", @@ -7623,8 +7672,8 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "async-trait", "futures", @@ -7646,8 +7695,8 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bounded-collections", "derive_more", @@ -7663,8 +7712,8 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "env_logger 0.9.3", "kusama-runtime", @@ -7681,8 +7730,8 @@ dependencies = [ [[package]] name = "polkadot-primitives" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bitvec", "hex-literal", @@ -7707,8 +7756,8 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -7739,8 +7788,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bitvec", "frame-benchmarking", @@ -7772,6 +7821,7 @@ dependencies = [ "pallet-im-online", "pallet-indices", "pallet-membership", + "pallet-message-queue", "pallet-multisig", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", @@ -7833,8 +7883,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bitvec", "frame-benchmarking", @@ -7879,8 +7929,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "frame-support", "polkadot-primitives", @@ -7893,8 +7943,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bs58", "parity-scale-codec", @@ -7905,8 +7955,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bitflags", "bitvec", @@ -7919,6 +7969,7 @@ dependencies = [ "pallet-authorship", "pallet-babe", "pallet-balances", + "pallet-message-queue", "pallet-session", "pallet-staking", "pallet-timestamp", @@ -7949,8 +8000,8 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "async-trait", "frame-benchmarking-cli", @@ -8059,8 +8110,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "arrayvec 0.5.2", "fatality", @@ -8080,8 +8131,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -8136,9 +8187,15 @@ dependencies = [ "cfg-if", "cpufeatures", "opaque-debug 0.3.0", - "universal-hash 0.5.0", + "universal-hash 0.5.1", ] +[[package]] +name = "portable-atomic" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "767eb9f07d4a5ebcb39bbf2d452058a93c011373abf6832e24194a1c3f004794" + [[package]] name = "ppv-lite86" version = "0.2.17" @@ -8185,6 +8242,16 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "prettyplease" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b69d39aab54d069e7f2fe8cb970493e7834601ca2d8c65fd7bbd183578080d1" +dependencies = [ + "proc-macro2", + "syn 2.0.18", +] + [[package]] name = "primitive-types" version = "0.12.1" @@ -8256,14 +8323,14 @@ checksum = "0e99670bafb56b9a106419397343bdbc8b8742c3cc449fec6345f86173f47cd4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "proc-macro2" -version = "1.0.56" +version = "1.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" +checksum = "dec2b086b7a862cf4de201096214fa870344cf922b2b30c167badb3af3195406" dependencies = [ "unicode-ident", ] @@ -8284,21 +8351,21 @@ dependencies = [ [[package]] name = "prometheus-client" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83cd1b99916654a69008fd66b4f9397fbe08e6e51dfe23d4417acf5d3b8cb87c" +checksum = "5d6fa99d535dd930d1249e6c79cb3c2915f9172a540fe2b02a4c8f9ca954721e" dependencies = [ "dtoa", "itoa", "parking_lot 0.12.1", - "prometheus-client-derive-text-encode", + "prometheus-client-derive-encode", ] [[package]] -name = "prometheus-client-derive-text-encode" -version = "0.3.0" +name = "prometheus-client-derive-encode" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a455fbcb954c1a7decf3c586e860fd7889cddf4b8e164be736dbac95a953cd" +checksum = "72b6a5217beb0ad503ee7fa752d451c905113d70721b937126158f3106a48cc1" dependencies = [ "proc-macro2", "quote", @@ -8328,7 +8395,7 @@ dependencies = [ "log", "multimap", "petgraph", - "prettyplease", + "prettyplease 0.1.25", "prost", "prost-types", "regex", @@ -8337,19 +8404,6 @@ dependencies = [ "which", ] -[[package]] -name = "prost-codec" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc34979ff898b6e141106178981ce2596c387ea6e62533facfc61a37fc879c0" -dependencies = [ - "asynchronous-codec", - "bytes", - "prost", - "thiserror", - "unsigned-varint", -] - [[package]] name = "prost-derive" version = "0.11.9" @@ -8396,6 +8450,19 @@ dependencies = [ "byteorder", ] +[[package]] +name = "quick-protobuf-codec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1693116345026436eb2f10b677806169c1a1260c1c60eaaffe3fb5a29ae23d8b" +dependencies = [ + "asynchronous-codec", + "bytes", + "quick-protobuf", + "thiserror", + "unsigned-varint", +] + [[package]] name = "quicksink" version = "0.1.2" @@ -8427,9 +8494,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.26" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" +checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488" dependencies = [ "proc-macro2", ] @@ -8499,7 +8566,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.9", + "getrandom 0.2.10", ] [[package]] @@ -8556,7 +8623,7 @@ checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" dependencies = [ "pem", "ring", - "time 0.3.20", + "time 0.3.22", "x509-parser 0.13.2", "yasna", ] @@ -8569,7 +8636,7 @@ checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" dependencies = [ "pem", "ring", - "time 0.3.20", + "time 0.3.22", "yasna", ] @@ -8597,7 +8664,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.9", + "getrandom 0.2.10", "redox_syscall 0.2.16", "thiserror", ] @@ -8632,14 +8699,14 @@ checksum = "8d2275aab483050ab2a7364c1a46604865ee7d6906684e08db0f090acf74f9e7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "regalloc2" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "300d4fbfb40c1c66a78ba3ddd41c1110247cf52f97b87d0f2fc9209bd49b030c" +checksum = "80535183cae11b149d618fbd3c37e38d7cda589d82d7769e196ca9a9042d7621" dependencies = [ "fxhash", "log", @@ -8649,13 +8716,13 @@ dependencies = [ [[package]] name = "regex" -version = "1.8.1" +version = "1.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370" +checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f" dependencies = [ - "aho-corasick 1.0.1", + "aho-corasick 1.0.2", "memchr", - "regex-syntax 0.7.1", + "regex-syntax 0.7.2", ] [[package]] @@ -8675,21 +8742,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" - -[[package]] -name = "region" -version = "3.0.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" -dependencies = [ - "bitflags", - "libc", - "mach", - "winapi", -] +checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" [[package]] name = "resolv-conf" @@ -8739,9 +8794,9 @@ dependencies = [ [[package]] name = "rocksdb" -version = "0.20.1" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "015439787fce1e75d55f279078d33ff14b4af5d93d995e8838ee4631301c8a99" +checksum = "bb6f170a4041d50a0ce04b0d2e14916d6ca863ea2e422689a5b694395d299ffe" dependencies = [ "libc", "librocksdb-sys", @@ -8749,8 +8804,8 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "binary-merkle-tree", "frame-benchmarking", @@ -8778,6 +8833,7 @@ dependencies = [ "pallet-im-online", "pallet-indices", "pallet-membership", + "pallet-message-queue", "pallet-mmr", "pallet-multisig", "pallet-nis", @@ -8835,8 +8891,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "frame-support", "polkadot-primitives", @@ -8946,9 +9002,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.36.13" +version = "0.36.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a38f9520be93aba504e8ca974197f46158de5dcaa9fa04b57c57cd6a679d658" +checksum = "14e4d67015953998ad0eb82887a0eb0129e18a7e2f3b7b0f6c422fddcd503d62" dependencies = [ "bitflags", "errno", @@ -8960,15 +9016,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.19" +version = "0.37.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" +checksum = "b96e891d04aa506a6d1f318d2771bcb1c7dfda84e126660ace067c9b474bb2c0" dependencies = [ "bitflags", "errno", "io-lifetimes", "libc", - "linux-raw-sys 0.3.7", + "linux-raw-sys 0.3.8", "windows-sys 0.48.0", ] @@ -9015,7 +9071,7 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" dependencies = [ - "base64 0.21.0", + "base64 0.21.2", ] [[package]] @@ -9043,9 +9099,9 @@ checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" [[package]] name = "safe_arch" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "794821e4ccb0d9f979512f9c1973480123f9bd62a90d74ab0f9426fcf8f4a529" +checksum = "62a7484307bd40f8f7ccbacccac730108f2cae119a3b11c74485b48aa9ea650f" dependencies = [ "bytemuck", ] @@ -9062,7 +9118,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "log", "sp-core", @@ -9073,7 +9129,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "async-trait", "futures", @@ -9081,6 +9137,7 @@ dependencies = [ "ip_network", "libp2p", "log", + "multihash 0.17.0", "parity-scale-codec", "prost", "prost-build", @@ -9101,7 +9158,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "futures", "futures-timer", @@ -9124,7 +9181,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -9139,7 +9196,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -9158,25 +9215,25 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "array-bytes 4.2.0", "chrono", "clap", "fdlimit", "futures", - "libp2p", + "libp2p-identity", "log", "names", "parity-scale-codec", @@ -9209,7 +9266,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "fnv", "futures", @@ -9228,6 +9285,7 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-state-machine", + "sp-statement-store", "sp-storage", "substrate-prometheus-endpoint", ] @@ -9235,7 +9293,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "hash-db", "kvdb", @@ -9261,12 +9319,12 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "async-trait", "futures", "futures-timer", - "libp2p", + "libp2p-identity", "log", "mockall", "parking_lot 0.12.1", @@ -9286,7 +9344,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "async-trait", "futures", @@ -9315,7 +9373,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "async-trait", "fork-tree", @@ -9351,7 +9409,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "futures", "jsonrpsee", @@ -9373,9 +9431,10 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "array-bytes 4.2.0", + "async-channel", "async-trait", "fnv", "futures", @@ -9408,7 +9467,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "futures", "jsonrpsee", @@ -9427,7 +9486,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "fork-tree", "parity-scale-codec", @@ -9440,7 +9499,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "ahash 0.8.3", "array-bytes 4.2.0", @@ -9480,7 +9539,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "finality-grandpa", "futures", @@ -9500,7 +9559,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "async-trait", "futures", @@ -9523,13 +9582,12 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "lru 0.8.1", "parity-scale-codec", "parking_lot 0.12.1", "sc-executor-common", - "sc-executor-wasmi", "sc-executor-wasmtime", "sp-api", "sp-core", @@ -9541,46 +9599,31 @@ dependencies = [ "sp-version", "sp-wasm-interface", "tracing", - "wasmi", ] [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", "sp-wasm-interface", "thiserror", "wasm-instrument", - "wasmi", -] - -[[package]] -name = "sc-executor-wasmi" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" -dependencies = [ - "log", - "sc-allocator", - "sc-executor-common", - "sp-runtime-interface", - "sp-wasm-interface", - "wasmi", ] [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "anyhow", "cfg-if", "libc", "log", "once_cell", - "rustix 0.36.13", + "rustix 0.36.14", "sc-allocator", "sc-executor-common", "sp-runtime-interface", @@ -9591,7 +9634,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "ansi_term", "futures", @@ -9607,10 +9650,9 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "array-bytes 4.2.0", - "async-trait", "parking_lot 0.12.1", "serde_json", "sp-application-crypto", @@ -9622,7 +9664,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "array-bytes 4.2.0", "async-channel", @@ -9667,11 +9709,12 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ + "async-channel", "cid", "futures", - "libp2p", + "libp2p-identity", "log", "prost", "prost-build", @@ -9687,7 +9730,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "array-bytes 4.2.0", "async-trait", @@ -9695,7 +9738,7 @@ dependencies = [ "bytes", "futures", "futures-timer", - "libp2p", + "libp2p-identity", "parity-scale-codec", "prost-build", "sc-consensus", @@ -9715,7 +9758,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "ahash 0.8.3", "futures", @@ -9734,11 +9777,12 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "array-bytes 4.2.0", + "async-channel", "futures", - "libp2p", + "libp2p-identity", "log", "parity-scale-codec", "prost", @@ -9756,9 +9800,10 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "array-bytes 4.2.0", + "async-channel", "async-trait", "fork-tree", "futures", @@ -9790,7 +9835,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "array-bytes 4.2.0", "futures", @@ -9810,7 +9855,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "array-bytes 4.2.0", "bytes", @@ -9841,20 +9886,23 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "futures", - "libp2p", + "libp2p-identity", "log", + "parking_lot 0.12.1", + "partial_sort", "sc-utils", "serde_json", + "sp-arithmetic", "wasm-timer", ] [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -9863,7 +9911,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "futures", "jsonrpsee", @@ -9886,6 +9934,7 @@ dependencies = [ "sp-rpc", "sp-runtime", "sp-session", + "sp-statement-store", "sp-version", "tokio", ] @@ -9893,7 +9942,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -9912,7 +9961,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "http", "jsonrpsee", @@ -9927,7 +9976,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "array-bytes 4.2.0", "futures", @@ -9953,7 +10002,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "async-trait", "directories", @@ -10019,7 +10068,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "log", "parity-scale-codec", @@ -10030,7 +10079,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "clap", "fs4", @@ -10046,7 +10095,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10065,7 +10114,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "futures", "libc", @@ -10084,7 +10133,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "chrono", "futures", @@ -10103,7 +10152,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "ansi_term", "atty", @@ -10134,18 +10183,18 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "async-trait", "futures", @@ -10172,7 +10221,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "async-trait", "futures", @@ -10186,7 +10235,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "async-channel", "futures", @@ -10200,9 +10249,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfdef77228a4c05dc94211441595746732131ad7f6530c6c18f045da7b7ab937" +checksum = "b569c32c806ec3abdf3b5869fb8bf1e0d275a7c1c9b0b05603d9464632649edf" dependencies = [ "bitvec", "cfg-if", @@ -10327,7 +10376,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0aec48e813d6b90b15f0b8948af3c63483992dee44c03e9930b3eebdabe046e" dependencies = [ "base16ct 0.2.0", - "der 0.7.5", + "der 0.7.6", "generic-array 0.14.7", "pkcs8 0.10.2", "subtle", @@ -10363,9 +10412,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.8.2" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" +checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" dependencies = [ "bitflags", "core-foundation", @@ -10376,9 +10425,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" +checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" dependencies = [ "core-foundation-sys", "libc", @@ -10410,22 +10459,22 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.160" +version = "1.0.164" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c" +checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.160" +version = "1.0.164" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df" +checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -10441,9 +10490,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0efd8caf556a6cebd3b285caf480045fcc1ac04f6bd786b09a6f11af30c4fcf4" +checksum = "93107647184f6027e3b7dcb2e11034cf95ffa1e3a682c67951963ac69c1c007d" dependencies = [ "serde", ] @@ -10469,7 +10518,7 @@ checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -10505,16 +10554,16 @@ checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] name = "sha3" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54c2bb1a323307527314a36bfb73f24febb08ce2b8a554bf4ffd6f51ad15198c" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "keccak", ] @@ -10548,7 +10597,7 @@ version = "1.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "rand_core 0.6.4", ] @@ -10558,7 +10607,7 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "rand_core 0.6.4", ] @@ -10598,8 +10647,8 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "enumn", "parity-scale-codec", @@ -10656,6 +10705,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "soketto" version = "0.7.1" @@ -10676,7 +10735,7 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "hash-db", "log", @@ -10696,7 +10755,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "Inflector", "blake2", @@ -10704,13 +10763,13 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "sp-application-crypto" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "parity-scale-codec", "scale-info", @@ -10723,7 +10782,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "integer-sqrt", "num-traits", @@ -10737,7 +10796,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "parity-scale-codec", "scale-info", @@ -10750,7 +10809,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "parity-scale-codec", "sp-api", @@ -10762,7 +10821,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "futures", "log", @@ -10780,7 +10839,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "async-trait", "futures", @@ -10795,7 +10854,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "async-trait", "parity-scale-codec", @@ -10813,7 +10872,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "async-trait", "parity-scale-codec", @@ -10834,7 +10893,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "lazy_static", "parity-scale-codec", @@ -10853,7 +10912,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "finality-grandpa", "log", @@ -10871,7 +10930,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "parity-scale-codec", "scale-info", @@ -10883,7 +10942,7 @@ dependencies = [ [[package]] name = "sp-core" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "array-bytes 4.2.0", "bitflags", @@ -10927,11 +10986,11 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "blake2b_simd", "byteorder", - "digest 0.10.6", + "digest 0.10.7", "sha2 0.10.6", "sha3", "sp-std", @@ -10941,18 +11000,18 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "proc-macro2", "quote", "sp-core-hashing", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -10961,17 +11020,17 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "sp-externalities" version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "environmental", "parity-scale-codec", @@ -10982,7 +11041,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -10997,7 +11056,7 @@ dependencies = [ [[package]] name = "sp-io" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "bytes", "ed25519", @@ -11023,7 +11082,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "lazy_static", "sp-core", @@ -11034,7 +11093,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "futures", "parity-scale-codec", @@ -11048,7 +11107,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "thiserror", "zstd 0.12.3+zstd.1.5.2", @@ -11057,7 +11116,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -11068,7 +11127,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -11086,7 +11145,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "parity-scale-codec", "scale-info", @@ -11100,7 +11159,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "sp-api", "sp-core", @@ -11110,7 +11169,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "backtrace", "lazy_static", @@ -11120,7 +11179,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "rustc-hash", "serde", @@ -11130,7 +11189,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "either", "hash256-std-hasher", @@ -11152,7 +11211,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -11170,19 +11229,19 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "Inflector", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "parity-scale-codec", "scale-info", @@ -11196,7 +11255,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "parity-scale-codec", "scale-info", @@ -11209,7 +11268,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "hash-db", "log", @@ -11226,15 +11285,33 @@ dependencies = [ "tracing", ] +[[package]] +name = "sp-statement-store" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" +dependencies = [ + "log", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-externalities", + "sp-runtime", + "sp-runtime-interface", + "sp-std", + "thiserror", +] + [[package]] name = "sp-std" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" [[package]] name = "sp-storage" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11247,7 +11324,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "async-trait", "futures-timer", @@ -11262,7 +11339,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "parity-scale-codec", "sp-std", @@ -11274,7 +11351,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "sp-api", "sp-runtime", @@ -11283,7 +11360,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "async-trait", "log", @@ -11299,7 +11376,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "ahash 0.8.3", "hash-db", @@ -11322,7 +11399,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11339,18 +11416,18 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "sp-wasm-interface" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -11364,7 +11441,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "parity-scale-codec", "scale-info", @@ -11382,6 +11459,17 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "spinners" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08615eea740067d9899969bc2891c68a19c315cb1f66640af9a9ecb91b13bcab" +dependencies = [ + "lazy_static", + "maplit", + "strum", +] + [[package]] name = "spki" version = "0.6.0" @@ -11394,12 +11482,12 @@ dependencies = [ [[package]] name = "spki" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37a5be806ab6f127c3da44b7378837ebf01dadca8510a0e572460216b228bd0e" +checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" dependencies = [ "base64ct", - "der 0.7.5", + "der 0.7.6", ] [[package]] @@ -11545,7 +11633,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "platforms 2.0.0", ] @@ -11553,7 +11641,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -11572,7 +11660,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "hyper", "log", @@ -11584,7 +11672,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "async-trait", "jsonrpsee", @@ -11597,7 +11685,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "jsonrpsee", "log", @@ -11616,7 +11704,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "ansi_term", "build-helper", @@ -11625,7 +11713,7 @@ dependencies = [ "sp-maybe-compressed-blob", "strum", "tempfile", - "toml 0.7.3", + "toml 0.7.4", "walkdir", "wasm-opt", ] @@ -11658,9 +11746,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.15" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" +checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e" dependencies = [ "proc-macro2", "quote", @@ -11681,9 +11769,9 @@ dependencies = [ [[package]] name = "system-configuration" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75182f12f490e953596550b65ee31bda7c8e043d9386174b353bda50838c3fd" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ "bitflags", "core-foundation", @@ -11714,15 +11802,16 @@ checksum = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5" [[package]] name = "tempfile" -version = "3.5.0" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" +checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" dependencies = [ + "autocfg", "cfg-if", "fastrand", "redox_syscall 0.3.5", - "rustix 0.37.19", - "windows-sys 0.45.0", + "rustix 0.37.20", + "windows-sys 0.48.0", ] [[package]] @@ -11757,7 +11846,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -11832,9 +11921,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.20" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" +checksum = "ea9e1b3cf1243ae005d9e74085d4d542f3125458f3a81af210d901dcd7411efd" dependencies = [ "itoa", "serde", @@ -11844,15 +11933,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" +checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" [[package]] name = "time-macros" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" +checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b" dependencies = [ "time-core", ] @@ -11903,9 +11992,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.28.0" +version = "1.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c786bf8134e5a3a166db9b29ab8f48134739014a3eca7bc6bfa95d673b136f" +checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2" dependencies = [ "autocfg", "bytes", @@ -11915,7 +12004,7 @@ dependencies = [ "parking_lot 0.12.1", "pin-project-lite 0.2.9", "signal-hook-registry", - "socket2", + "socket2 0.4.9", "tokio-macros", "windows-sys 0.48.0", ] @@ -11928,7 +12017,18 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", +] + +[[package]] +name = "tokio-retry" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" +dependencies = [ + "pin-project", + "rand 0.8.5", + "tokio", ] [[package]] @@ -11980,9 +12080,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b403acf6f2bb0859c93c7f0d967cb4a75a7ac552100f9322faf64dc047669b21" +checksum = "d6135d499e69981f9ff0ef2167955a5333c35e36f6937d382974566b3d5b94ec" dependencies = [ "serde", "serde_spanned", @@ -11992,18 +12092,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" +checksum = "5a76a9312f5ba4c2dec6b9161fdf25d87ad8a09256ccea5a556fef03c706a10f" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.19.8" +version = "0.19.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13" +checksum = "2380d56e8670370eee6566b0bfd4265f65b3f432e8c6d85623f728d4fa31f739" dependencies = [ "indexmap", "serde", @@ -12025,9 +12125,9 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.3.5" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" +checksum = "5d1d42a9b3f3ec46ba828e8d376aec14592ea199f70a06a548587ecd1c4ab658" dependencies = [ "bitflags", "bytes", @@ -12074,14 +12174,14 @@ checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] name = "tracing-core" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" dependencies = [ "once_cell", "valuable", @@ -12099,8 +12199,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -12110,14 +12210,14 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "expander 2.0.0", "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -12204,7 +12304,7 @@ dependencies = [ "lazy_static", "rand 0.8.5", "smallvec", - "socket2", + "socket2 0.4.9", "thiserror", "tinyvec", "tokio", @@ -12241,7 +12341,7 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.43#a2037bdedef0aa812017efee1d0fa63d4f5fcbae" dependencies = [ "async-trait", "clap", @@ -12307,7 +12407,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", - "digest 0.10.6", + "digest 0.10.7", "rand 0.8.5", "static_assertions", ] @@ -12344,9 +12444,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" +checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" [[package]] name = "unicode-normalization" @@ -12381,9 +12481,9 @@ dependencies = [ [[package]] name = "universal-hash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ "crypto-common", "subtle", @@ -12409,12 +12509,12 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" dependencies = [ "form_urlencoded", - "idna 0.3.0", + "idna 0.4.0", "percent-encoding", ] @@ -12426,11 +12526,11 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "uuid" -version = "1.3.2" +version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dad5567ad0cf5b760e5665964bec1b47dfd077ba8a2544b513f3556d3d239a2" +checksum = "0fa2982af2eec27de306107c027578ff7f423d65f7250e40ce0fea8f45248b81" dependencies = [ - "getrandom 0.2.9", + "getrandom 0.2.10", ] [[package]] @@ -12512,9 +12612,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.84" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -12522,24 +12622,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.84" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.18", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.34" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" +checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" dependencies = [ "cfg-if", "js-sys", @@ -12549,9 +12649,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.84" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -12559,22 +12659,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.84" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.18", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.84" +version = "0.2.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" [[package]] name = "wasm-instrument" @@ -12587,9 +12687,9 @@ dependencies = [ [[package]] name = "wasm-opt" -version = "0.111.0" +version = "0.112.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a303793cbc01fb96551badfc7367db6007396bba6bac97936b3c8b6f7fdb41" +checksum = "87fef6d0d508f08334e0ab0e6877feb4c0ecb3956bcf2cb950699b22fedf3e9c" dependencies = [ "anyhow", "libc", @@ -12603,9 +12703,9 @@ dependencies = [ [[package]] name = "wasm-opt-cxx-sys" -version = "0.111.0" +version = "0.112.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c9deb56f8a9f2ec177b3bd642a8205621835944ed5da55f2388ef216aca5a4" +checksum = "bc816bbc1596c8f2e8127e137a760c798023ef3d378f2ae51f0f1840e2dfa445" dependencies = [ "anyhow", "cxx", @@ -12615,15 +12715,14 @@ dependencies = [ [[package]] name = "wasm-opt-sys" -version = "0.111.0" +version = "0.112.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4432e28b542738a9776cedf92e8a99d8991c7b4667ee2c7ccddfb479dd2856a7" +checksum = "40199e4f68ef1071b3c6d0bd8026a12b481865d4b9e49c156932ea9a6234dd14" dependencies = [ "anyhow", "cc", "cxx", "cxx-build", - "regex", ] [[package]] @@ -12668,18 +12767,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57d20cb3c59b788653d99541c646c561c9dd26506f25c0cebfe810659c54c6d7" dependencies = [ "downcast-rs", - "libm 0.2.6", + "libm 0.2.7", "memory_units", "num-rational", "num-traits", - "region", ] [[package]] name = "wasmparser" -version = "0.100.0" +version = "0.102.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b20236ab624147dfbb62cf12a19aaf66af0e41b8398838b66e997d07d269d4" +checksum = "48134de3d7598219ab9eaf6b91b15d8e50d31da76b8519fe4ecfcec2cf35104b" dependencies = [ "indexmap", "url", @@ -12687,9 +12785,9 @@ dependencies = [ [[package]] name = "wasmtime" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a222f5fa1e14b2cefc286f1b68494d7a965f4bf57ec04c59bb62673d639af6" +checksum = "f907fdead3153cb9bfb7a93bbd5b62629472dc06dee83605358c64c52ed3dda9" dependencies = [ "anyhow", "bincode", @@ -12697,7 +12795,7 @@ dependencies = [ "indexmap", "libc", "log", - "object 0.29.0", + "object", "once_cell", "paste", "psm", @@ -12710,43 +12808,43 @@ dependencies = [ "wasmtime-environ", "wasmtime-jit", "wasmtime-runtime", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "wasmtime-asm-macros" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4407a7246e7d2f3d8fb1cf0c72fda8dbafdb6dd34d555ae8bea0e5ae031089cc" +checksum = "d3b9daa7c14cd4fa3edbf69de994408d5f4b7b0959ac13fa69d465f6597f810d" dependencies = [ "cfg-if", ] [[package]] name = "wasmtime-cache" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ceb3adf61d654be0be67fffdce42447b0880481348785be5fe40b5dd7663a4c" +checksum = "c86437fa68626fe896e5afc69234bb2b5894949083586535f200385adfd71213" dependencies = [ "anyhow", - "base64 0.13.1", + "base64 0.21.2", "bincode", "directories-next", "file-per-thread-logger", "log", - "rustix 0.36.13", + "rustix 0.36.14", "serde", "sha2 0.10.6", "toml 0.5.11", - "windows-sys 0.42.0", + "windows-sys 0.45.0", "zstd 0.11.2+zstd.1.5.2", ] [[package]] name = "wasmtime-cranelift" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c366bb8647e01fd08cb5589976284b00abfded5529b33d7e7f3f086c68304a4" +checksum = "b1cefde0cce8cb700b1b21b6298a3837dba46521affd7b8c38a9ee2c869eee04" dependencies = [ "anyhow", "cranelift-codegen", @@ -12754,27 +12852,43 @@ dependencies = [ "cranelift-frontend", "cranelift-native", "cranelift-wasm", - "gimli 0.26.2", + "gimli", "log", - "object 0.29.0", + "object", "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", + "object", + "target-lexicon", "wasmtime-environ", ] [[package]] name = "wasmtime-environ" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b8b50962eae38ee319f7b24900b7cf371f03eebdc17400c1dc8575fc10c9a7" +checksum = "a990198cee4197423045235bf89d3359e69bd2ea031005f4c2d901125955c949" dependencies = [ "anyhow", "cranelift-entity", - "gimli 0.26.2", + "gimli", "indexmap", "log", - "object 0.29.0", + "object", "serde", "target-lexicon", "thiserror", @@ -12784,18 +12898,18 @@ dependencies = [ [[package]] name = "wasmtime-jit" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffaed4f9a234ba5225d8e64eac7b4a5d13b994aeb37353cde2cbeb3febda9eaa" +checksum = "0de48df552cfca1c9b750002d3e07b45772dd033b0b206d5c0968496abf31244" dependencies = [ - "addr2line 0.17.0", + "addr2line", "anyhow", "bincode", "cfg-if", "cpp_demangle", - "gimli 0.26.2", + "gimli", "log", - "object 0.29.0", + "object", "rustc-demangle", "serde", "target-lexicon", @@ -12803,36 +12917,36 @@ dependencies = [ "wasmtime-jit-debug", "wasmtime-jit-icache-coherence", "wasmtime-runtime", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "wasmtime-jit-debug" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed41cbcbf74ce3ff6f1d07d1b707888166dc408d1a880f651268f4f7c9194b2" +checksum = "6e0554b84c15a27d76281d06838aed94e13a77d7bf604bbbaf548aa20eb93846" dependencies = [ - "object 0.29.0", + "object", "once_cell", - "rustix 0.36.13", + "rustix 0.36.14", ] [[package]] name = "wasmtime-jit-icache-coherence" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a28ae1e648461bfdbb79db3efdaee1bca5b940872e4175390f465593a2e54c" +checksum = "aecae978b13f7f67efb23bd827373ace4578f2137ec110bbf6a4a7cde4121bbd" dependencies = [ "cfg-if", "libc", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "wasmtime-runtime" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e704b126e4252788ccfc3526d4d4511d4b23c521bf123e447ac726c14545217b" +checksum = "658cf6f325232b6760e202e5255d823da5e348fdea827eff0a2a22319000b441" dependencies = [ "anyhow", "cc", @@ -12842,21 +12956,21 @@ dependencies = [ "log", "mach", "memfd", - "memoffset 0.6.5", + "memoffset 0.8.0", "paste", "rand 0.8.5", - "rustix 0.36.13", + "rustix 0.36.14", "wasmtime-asm-macros", "wasmtime-environ", "wasmtime-jit-debug", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "wasmtime-types" -version = "6.0.2" +version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83e5572c5727c1ee7e8f28717aaa8400e4d22dcbd714ea5457d85b5005206568" +checksum = "a4f6fffd2a1011887d57f07654dd112791e872e3ff4a2e626aee8059ee17f06f" dependencies = [ "cranelift-entity", "serde", @@ -12866,9 +12980,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.61" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" dependencies = [ "js-sys", "wasm-bindgen", @@ -12929,7 +13043,7 @@ dependencies = [ "sha2 0.10.6", "stun", "thiserror", - "time 0.3.20", + "time 0.3.22", "tokio", "turn", "url", @@ -12966,7 +13080,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "942be5bd85f072c3128396f6e5a9bfb93ca8c1939ded735d177b7bcba9a13d05" dependencies = [ "aes 0.6.0", - "aes-gcm 0.10.1", + "aes-gcm 0.10.2", "async-trait", "bincode", "block-modes", @@ -13031,7 +13145,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f08dfd7a6e3987e255c4dbe710dde5d94d0f0574f8a21afa95d171376c143106" dependencies = [ "log", - "socket2", + "socket2 0.4.9", "thiserror", "tokio", "webrtc-util", @@ -13114,8 +13228,8 @@ dependencies = [ [[package]] name = "westend-runtime" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bitvec", "frame-benchmarking", @@ -13144,6 +13258,7 @@ dependencies = [ "pallet-im-online", "pallet-indices", "pallet-membership", + "pallet-message-queue", "pallet-multisig", "pallet-nomination-pools", "pallet-nomination-pools-benchmarking", @@ -13206,8 +13321,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "frame-support", "polkadot-primitives", @@ -13231,9 +13346,9 @@ dependencies = [ [[package]] name = "wide" -version = "0.7.8" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b689b6c49d6549434bf944e6b0f39238cf63693cb7a147e9d887507fffa3b223" +checksum = "40018623e2dba2602a9790faba8d33f2ebdebf4b86561b83928db735f8784728" dependencies = [ "bytemuck", "safe_arch", @@ -13241,9 +13356,9 @@ dependencies = [ [[package]] name = "widestring" -version = "0.5.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" +checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" [[package]] name = "winapi" @@ -13486,11 +13601,12 @@ dependencies = [ [[package]] name = "winreg" -version = "0.10.1" +version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ - "winapi", + "cfg-if", + "windows-sys 0.48.0", ] [[package]] @@ -13540,7 +13656,7 @@ dependencies = [ "ring", "rusticata-macros", "thiserror", - "time 0.3.20", + "time 0.3.22", ] [[package]] @@ -13558,13 +13674,13 @@ dependencies = [ "oid-registry 0.6.1", "rusticata-macros", "thiserror", - "time 0.3.20", + "time 0.3.22", ] [[package]] name = "xcm" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "bounded-collections", "derivative", @@ -13579,8 +13695,8 @@ dependencies = [ [[package]] name = "xcm-builder" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "frame-support", "frame-system", @@ -13594,14 +13710,15 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", + "sp-weights", "xcm", "xcm-executor", ] [[package]] name = "xcm-executor" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "environmental", "frame-benchmarking", @@ -13620,13 +13737,13 @@ dependencies = [ [[package]] name = "xcm-procedural" -version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +version = "0.9.43" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.43#ba42b9ce51d25bdaf52d2c61e0763a6e3da50d25" dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] @@ -13649,7 +13766,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" dependencies = [ - "time 0.3.20", + "time 0.3.22", ] [[package]] @@ -13669,7 +13786,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.18", ] [[package]] diff --git a/README.md b/README.md index da7c500b..6dcc70c5 100644 --- a/README.md +++ b/README.md @@ -17,29 +17,6 @@ at each release branch using the 👉 Learn more about parachains [here](https://wiki.polkadot.network/docs/learn-parachains), and parathreads [here](https://wiki.polkadot.network/docs/learn-parathreads). -🧙 Learn about how to use this template and run your own parachain testnet for it in the -[Devhub Cumulus Tutorial](https://docs.substrate.io/tutorials/v3/cumulus/start-relay/). - -## CI - -### Binary - -Check the [CI release workflow](./.github/workflows/release.yml) to see how the binary is built on CI. -You can modify the compilation targets depending on your needs. - -Allow GitHub actions in your forked repository to build the binary for you. - -Push a tag. For example, `v0.1.1`. Based on [Semantic Versioning](https://semver.org/), the supported tag format is `v?MAJOR.MINOR.PATCH(-PRERELEASE)?(+BUILD_METADATA)?` (the leading "v", pre-release version, and build metadata are optional and the optional prefix is also supported). -After the pipeline is finished, you can download the binary from the releases page. - -### Container - -Check the [CI release workflow](./.github/workflows/release.yml) to see how the Docker image is built on CI. - -Add your `DOCKERHUB_USERNAME` and `DOCKERHUB_TOKEN` secrets or other organization settings to your forked repository. -Change the `DOCKER_REPO` variable in the workflow to `[your DockerHub registry name]/[image name]`. - -Push a tag. - -After the image is built and pushed, you can pull it with `docker pull :`. +🧙 Learn about how to use this template and run your own parachain testnet for it in the +[Devhub Cumulus Tutorial](https://docs.substrate.io/tutorials/v3/cumulus/start-relay/). \ No newline at end of file diff --git a/node/Cargo.toml b/node/Cargo.toml index 2464f8a1..4d5bc2c5 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -10,64 +10,64 @@ edition = "2021" build = "build.rs" [dependencies] -clap = { version = "4.2.3", features = ["derive"] } +clap = { version = "4.2.7", features = ["derive"] } log = "0.4.17" codec = { package = "parity-scale-codec", version = "3.0.0" } -serde = { version = "1.0.160", features = ["derive"] } +serde = { version = "1.0.163", features = ["derive"] } jsonrpsee = { version = "0.16.2", features = ["server"] } # Local parachain-template-runtime = { path = "../runtime" } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sc-network-sync = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", optional = true , branch = "polkadot-v0.9.42" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-network-sync = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", optional = true , branch = "polkadot-v0.9.43" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", features = ["rococo-native"] , branch = "release-v0.9.42" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.42" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.42" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", features = ["rococo-native"] , branch = "release-v0.9.43" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.43" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.43" } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42" } -cumulus-client-service = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42" } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42" } +cumulus-client-cli = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43" } +cumulus-client-service = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43" } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43" } color-print = "0.3.4" [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.43" } [features] default = [] diff --git a/node/src/cli.rs b/node/src/cli.rs index 2e64a53e..b72579c8 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -105,7 +105,11 @@ impl RelayChainCli { ) -> Self { let extension = crate::chain_spec::Extensions::try_get(&*para_config.chain_spec); let chain_id = extension.map(|e| e.relay_chain.clone()); - let base_path = para_config.base_path.as_ref().map(|x| x.path().join("polkadot")); - Self { base_path, chain_id, base: clap::Parser::parse_from(relay_chain_args) } + let base_path = para_config.base_path.path().join("polkadot"); + Self { + base_path: Some(base_path), + chain_id, + base: clap::Parser::parse_from(relay_chain_args), + } } } diff --git a/node/src/command.rs b/node/src/command.rs index 36e5ab63..c3e79ebe 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -268,13 +268,13 @@ pub fn run() -> Result<()> { runner.run_node_until_exit(|config| async move { let hwbench = (!cli.no_hardware_benchmarks).then_some( config.database.path().map(|database_path| { - let _ = std::fs::create_dir_all(&database_path); + let _ = std::fs::create_dir_all(database_path); sc_sysinfo::gather_hwbench(Some(database_path)) })).flatten(); let para_id = chain_spec::Extensions::try_get(&*config.chain_spec) .map(|e| e.para_id) - .ok_or_else(|| "Could not find parachain ID in chain-spec.")?; + .ok_or("Could not find parachain ID in chain-spec.")?; let polkadot_cli = RelayChainCli::new( &config, @@ -301,7 +301,7 @@ pub fn run() -> Result<()> { info!("Parachain genesis state: {}", genesis_state); info!("Is collating: {}", if config.role.is_authority() { "yes" } else { "no" }); - if !collator_options.relay_chain_rpc_urls.is_empty() && cli.relay_chain_args.len() > 0 { + if !collator_options.relay_chain_rpc_urls.is_empty() && !cli.relay_chain_args.is_empty() { warn!("Detected relay chain node arguments together with --relay-chain-rpc-url. This command starts a minimal Polkadot node that only uses a network-related subset of all relay chain CLI options."); } @@ -325,14 +325,10 @@ impl DefaultConfigurationValues for RelayChainCli { 30334 } - fn rpc_ws_listen_port() -> u16 { + fn rpc_listen_port() -> u16 { 9945 } - fn rpc_http_listen_port() -> u16 { - 9934 - } - fn prometheus_listen_port() -> u16 { 9616 } @@ -362,16 +358,8 @@ impl CliConfiguration for RelayChainCli { .or_else(|| self.base_path.clone().map(Into::into))) } - fn rpc_http(&self, default_listen_port: u16) -> Result> { - self.base.base.rpc_http(default_listen_port) - } - - fn rpc_ipc(&self) -> Result> { - self.base.base.rpc_ipc() - } - - fn rpc_ws(&self, default_listen_port: u16) -> Result> { - self.base.base.rpc_ws(default_listen_port) + fn rpc_addr(&self, default_listen_port: u16) -> Result> { + self.base.base.rpc_addr(default_listen_port) } fn prometheus_config( @@ -417,8 +405,8 @@ impl CliConfiguration for RelayChainCli { self.base.base.rpc_methods() } - fn rpc_ws_max_connections(&self) -> Result> { - self.base.base.rpc_ws_max_connections() + fn rpc_max_connections(&self) -> Result { + self.base.base.rpc_max_connections() } fn rpc_cors(&self, is_dev: bool) -> Result>> { diff --git a/node/src/service.rs b/node/src/service.rs index 4c9e1feb..fb311a48 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -157,6 +157,7 @@ async fn start_node_impl( let params = new_partial(¶chain_config)?; let (block_import, mut telemetry, telemetry_worker_handle) = params.other; + let net_config = sc_network::config::FullNetworkConfiguration::new(¶chain_config.network); let client = params.client.clone(); let backend = params.backend.clone(); @@ -182,6 +183,7 @@ async fn start_node_impl( let (network, system_rpc_tx, tx_handler_controller, start_network, sync_service) = build_network(BuildNetworkParams { parachain_config: ¶chain_config, + net_config, client: client.clone(), transaction_pool: transaction_pool.clone(), para_id, diff --git a/pallets/template/Cargo.toml b/pallets/template/Cargo.toml index 19b9f05d..365fb7c1 100644 --- a/pallets/template/Cargo.toml +++ b/pallets/template/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "pallet-template" +name = "pallet-parachain-template" authors = ["Anonymous"] description = "FRAME pallet template for defining custom runtime logic." version = "0.1.0" @@ -16,17 +16,17 @@ codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive scale-info = { version = "2.2.0", default-features = false, features = ["derive"] } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.42" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.43" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } [dev-dependencies] serde = { version = "1.0.132" } # Substrate -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } [features] default = ["std"] diff --git a/pallets/template/src/benchmarking.rs b/pallets/template/src/benchmarking.rs index fea9e659..8bba2a09 100644 --- a/pallets/template/src/benchmarking.rs +++ b/pallets/template/src/benchmarking.rs @@ -1,4 +1,4 @@ -//! Benchmarking setup for pallet-template +//! Benchmarking setup for pallet-parachain-template use super::*; diff --git a/pallets/template/src/mock.rs b/pallets/template/src/mock.rs index 4a7ebac0..099c0af8 100644 --- a/pallets/template/src/mock.rs +++ b/pallets/template/src/mock.rs @@ -1,4 +1,3 @@ -use crate as pallet_template; use frame_support::{parameter_types, traits::Everything}; use frame_system as system; use sp_core::H256; @@ -18,7 +17,7 @@ frame_support::construct_runtime!( UncheckedExtrinsic = UncheckedExtrinsic, { System: frame_system::{Pallet, Call, Config, Storage, Event}, - TemplateModule: pallet_template::{Pallet, Call, Storage, Event}, + TemplateModule: crate::{Pallet, Call, Storage, Event}, } ); @@ -54,7 +53,7 @@ impl system::Config for Test { type MaxConsumers = frame_support::traits::ConstU32<16>; } -impl pallet_template::Config for Test { +impl crate::Config for Test { type RuntimeEvent = RuntimeEvent; } diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index f40300d3..57246436 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -12,66 +12,66 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", optional = true , branch = "polkadot-v0.9.42" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", optional = true , branch = "polkadot-v0.9.43" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } hex-literal = { version = "0.4.1", optional = true } log = { version = "0.4.17", default-features = false } -scale-info = { version = "2.5.0", default-features = false, features = ["derive"] } +scale-info = { version = "2.7.0", default-features = false, features = ["derive"] } smallvec = "1.10.0" # Local -pallet-template = { path = "../pallets/template", default-features = false } +pallet-parachain-template = { path = "../pallets/template", default-features = false } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.42" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.42" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.42" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.42" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.43" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.43" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.43" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.43" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.42" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.42" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.42" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.42" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.42" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.42" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.43" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.43" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.43" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.43" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.43" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.43" } # Cumulus -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } -cumulus-pallet-session-benchmarking = {git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false, version = "3.0.0"} -cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } -cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } -pallet-collator-selection = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } -parachain-info = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43", default-features = false } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43", default-features = false } +cumulus-pallet-session-benchmarking = {git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43", default-features = false, version = "3.0.0"} +cumulus-pallet-xcm = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43", default-features = false } +cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43", default-features = false } +pallet-collator-selection = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43", default-features = false } +parachain-info = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.43", default-features = false } [features] default = [ @@ -99,7 +99,7 @@ std = [ "pallet-collator-selection/std", "pallet-session/std", "pallet-sudo/std", - "pallet-template/std", + "pallet-parachain-template/std", "pallet-timestamp/std", "pallet-transaction-payment-rpc-runtime-api/std", "pallet-transaction-payment/std", @@ -132,7 +132,7 @@ runtime-benchmarks = [ "frame-system/runtime-benchmarks", "pallet-balances/runtime-benchmarks", "pallet-collator-selection/runtime-benchmarks", - "pallet-template/runtime-benchmarks", + "pallet-parachain-template/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", "pallet-xcm/runtime-benchmarks", "sp-runtime/runtime-benchmarks", @@ -156,7 +156,7 @@ try-runtime = [ "pallet-collator-selection/try-runtime", "pallet-session/try-runtime", "pallet-sudo/try-runtime", - "pallet-template/try-runtime", + "pallet-parachain-template/try-runtime", "pallet-timestamp/try-runtime", "pallet-transaction-payment/try-runtime", "pallet-xcm/try-runtime", diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 61839e0a..7a847fc5 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -58,7 +58,7 @@ use xcm::latest::prelude::BodyId; use xcm_executor::XcmExecutor; /// Import the template pallet. -pub use pallet_template; +pub use pallet_parachain_template; /// Alias to 512-bit hash when used in the context of a transaction signature on the chain. pub type Signature = MultiSignature; @@ -457,7 +457,7 @@ impl pallet_collator_selection::Config for Runtime { } /// Configure the pallet template in pallets/template. -impl pallet_template::Config for Runtime { +impl pallet_parachain_template::Config for Runtime { type RuntimeEvent = RuntimeEvent; } @@ -492,7 +492,7 @@ construct_runtime!( DmpQueue: cumulus_pallet_dmp_queue = 33, // Template - TemplatePallet: pallet_template = 40, + TemplatePallet: pallet_parachain_template = 40, } ); @@ -686,13 +686,13 @@ impl_runtime_apis! { list_benchmarks!(list, extra); let storage_info = AllPalletsWithSystem::storage_info(); - return (list, storage_info) + (list, storage_info) } fn dispatch_benchmark( config: frame_benchmarking::BenchmarkConfig ) -> Result, sp_runtime::RuntimeString> { - use frame_benchmarking::{Benchmarking, BenchmarkBatch, TrackedStorageKey}; + use frame_benchmarking::{Benchmarking, BenchmarkBatch}; use frame_system_benchmarking::Pallet as SystemBench; impl frame_system_benchmarking::Config for Runtime {} diff --git a/runtime/src/xcm_config.rs b/runtime/src/xcm_config.rs index bd395c83..775455cc 100644 --- a/runtime/src/xcm_config.rs +++ b/runtime/src/xcm_config.rs @@ -63,7 +63,7 @@ pub type XcmOriginToTransactDispatchOrigin = ( // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for // foreign chains who want to have a local sovereign account on this chain which they control. SovereignSignedViaLocation, - // Native converter for Relay-chain (Parent) location; will converts to a `Relay` origin when + // Native converter for Relay-chain (Parent) location; will convert to a `Relay` origin when // recognized. RelayChainAsNative, // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when @@ -248,6 +248,8 @@ impl pallet_xcm::Config for Runtime { #[cfg(feature = "runtime-benchmarks")] type ReachableDest = ReachableDest; type AdminOrigin = EnsureRoot; + type MaxRemoteLockConsumers = ConstU32<0>; + type RemoteLockConsumerIdentifier = (); } impl cumulus_pallet_xcm::Config for Runtime { From 28a5c17f1fe53f040eb8a074cc435c0642e56247 Mon Sep 17 00:00:00 2001 From: magecnion Date: Wed, 28 Jun 2023 13:32:55 +0200 Subject: [PATCH 77/91] integrate evm and ethereum pallets --- Cargo.lock | 1093 +++++++++++++++++++++++++++--------- node/Cargo.toml | 3 + node/src/chain_spec.rs | 105 +++- node/src/command.rs | 11 +- runtime/Cargo.toml | 21 + runtime/src/lib.rs | 203 ++++++- runtime/src/precompiles.rs | 51 ++ 7 files changed, 1195 insertions(+), 292 deletions(-) create mode 100644 runtime/src/precompiles.rs diff --git a/Cargo.lock b/Cargo.lock index eff603a2..88ea71d6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -483,6 +483,18 @@ dependencies = [ "winapi", ] +[[package]] +name = "auto_impl" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "autocfg" version = "1.1.0" @@ -552,9 +564,9 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ - "hash-db", + "hash-db 0.16.0", "log", ] @@ -1092,6 +1104,19 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "console" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "unicode-width", + "windows-sys 0.45.0", +] + [[package]] name = "const-oid" version = "0.9.2" @@ -1421,7 +1446,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "clap", "parity-scale-codec", @@ -1436,7 +1461,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1459,7 +1484,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -1488,7 +1513,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -1512,7 +1537,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -1535,7 +1560,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1559,7 +1584,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -1594,7 +1619,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "frame-support", "frame-system", @@ -1610,7 +1635,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1627,7 +1652,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -1656,7 +1681,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1667,7 +1692,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "frame-benchmarking", "frame-support", @@ -1681,7 +1706,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1697,7 +1722,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -1718,7 +1743,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -1735,7 +1760,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1758,7 +1783,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-timestamp" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "cumulus-primitives-core", "futures", @@ -1771,7 +1796,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -1789,7 +1814,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1814,7 +1839,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1832,7 +1857,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "array-bytes 6.1.0", "async-trait", @@ -1870,7 +1895,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -1900,7 +1925,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -2412,6 +2437,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + [[package]] name = "enum-as-inner" version = "0.5.1" @@ -2508,12 +2539,119 @@ dependencies = [ "libc", ] +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a89fb87a9e103f71b903b80b670200b54cc67a07578f070681f1fffb7396fb7" +dependencies = [ + "bytes", + "ethereum-types", + "hash-db 0.15.2", + "hash256-std-hasher", + "parity-scale-codec", + "rlp", + "scale-info", + "serde", + "sha3", + "triehash", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "primitive-types", + "scale-info", + "uint", +] + [[package]] name = "event-listener" version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" +[[package]] +name = "evm" +version = "0.39.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a49a4e11987c51220aa89dbe1a5cc877f5079fa6864c0a5b4533331db44e9365" +dependencies = [ + "auto_impl", + "environmental", + "ethereum", + "evm-core", + "evm-gasometer", + "evm-runtime", + "log", + "parity-scale-codec", + "primitive-types", + "rlp", + "scale-info", + "serde", + "sha3", +] + +[[package]] +name = "evm-core" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f1f13264b044cb66f0602180f0bc781c29accb41ff560669a3ec15858d5b606" +dependencies = [ + "parity-scale-codec", + "primitive-types", + "scale-info", + "serde", +] + +[[package]] +name = "evm-gasometer" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d43eadc395bd1a52990787ca1495c26b0248165444912be075c28909a853b8c" +dependencies = [ + "environmental", + "evm-core", + "evm-runtime", + "primitive-types", +] + +[[package]] +name = "evm-runtime" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2aa5b32f59ec582a5651978004e5c784920291263b7dcb6de418047438e37f4f" +dependencies = [ + "auto_impl", + "environmental", + "evm-core", + "primitive-types", + "sha3", +] + [[package]] name = "exit-future" version = "0.2.0" @@ -2739,7 +2877,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "parity-scale-codec", ] @@ -2753,6 +2891,91 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fp-account" +version = "1.0.0-dev" +source = "git+https://github.com/paritytech/frontier?branch=bar/polkadot-v0.9.42#a5a5e1e6ec08cd542a6084c310863150fb8841b1" +dependencies = [ + "hex", + "impl-serde", + "libsecp256k1", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "fp-consensus" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/frontier?branch=bar/polkadot-v0.9.42#a5a5e1e6ec08cd542a6084c310863150fb8841b1" +dependencies = [ + "ethereum", + "parity-scale-codec", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "fp-ethereum" +version = "1.0.0-dev" +source = "git+https://github.com/paritytech/frontier?branch=bar/polkadot-v0.9.42#a5a5e1e6ec08cd542a6084c310863150fb8841b1" +dependencies = [ + "ethereum", + "ethereum-types", + "fp-evm", + "frame-support", + "num_enum", + "parity-scale-codec", + "sp-std", +] + +[[package]] +name = "fp-evm" +version = "3.0.0-dev" +source = "git+https://github.com/paritytech/frontier?branch=bar/polkadot-v0.9.42#a5a5e1e6ec08cd542a6084c310863150fb8841b1" +dependencies = [ + "evm", + "frame-support", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "fp-rpc" +version = "3.0.0-dev" +source = "git+https://github.com/paritytech/frontier?branch=bar/polkadot-v0.9.42#a5a5e1e6ec08cd542a6084c310863150fb8841b1" +dependencies = [ + "ethereum", + "ethereum-types", + "fp-evm", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-core", + "sp-runtime", + "sp-state-machine", + "sp-std", +] + +[[package]] +name = "fp-storage" +version = "2.0.0" +source = "git+https://github.com/paritytech/frontier?branch=bar/polkadot-v0.9.42#a5a5e1e6ec08cd542a6084c310863150fb8841b1" +dependencies = [ + "parity-scale-codec", + "serde", +] + [[package]] name = "fragile" version = "2.0.0" @@ -2762,7 +2985,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-support", "frame-support-procedural", @@ -2787,7 +3010,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "Inflector", "array-bytes 4.2.0", @@ -2834,7 +3057,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -2845,7 +3068,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -2862,7 +3085,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-support", "frame-system", @@ -2891,10 +3114,11 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "async-recursion", "futures", + "indicatif", "jsonrpsee", "log", "parity-scale-codec", @@ -2902,6 +3126,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", + "spinners", "substrate-rpc-client", "tokio", ] @@ -2909,7 +3134,7 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "bitflags", "environmental", @@ -2942,7 +3167,7 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "Inflector", "cfg-expr", @@ -2958,7 +3183,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", @@ -2970,7 +3195,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "proc-macro2", "quote", @@ -2980,7 +3205,7 @@ dependencies = [ [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-support", "log", @@ -2998,7 +3223,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -3013,7 +3238,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "parity-scale-codec", "sp-api", @@ -3022,7 +3247,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-support", "parity-scale-codec", @@ -3357,6 +3582,12 @@ dependencies = [ "thiserror", ] +[[package]] +name = "hash-db" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364a" + [[package]] name = "hash-db" version = "0.16.0" @@ -3667,6 +3898,15 @@ dependencies = [ "parity-scale-codec", ] +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + [[package]] name = "impl-serde" version = "0.4.0" @@ -3698,6 +3938,19 @@ dependencies = [ "serde", ] +[[package]] +name = "indicatif" +version = "0.17.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ff8cc23a7393a397ed1d7f56e6365cba772aba9f9912ab968b03043c395d057" +dependencies = [ + "console", + "instant", + "number_prefix", + "portable-atomic", + "unicode-width", +] + [[package]] name = "inout" version = "0.1.3" @@ -3999,7 +4252,7 @@ dependencies = [ [[package]] name = "kusama-runtime" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "bitvec", "frame-benchmarking", @@ -4097,7 +4350,7 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "frame-support", "polkadot-primitives", @@ -4828,6 +5081,12 @@ dependencies = [ "libc", ] +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + [[package]] name = "match_cfg" version = "0.1.0" @@ -4916,7 +5175,7 @@ version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "808b50db46293432a45e63bc15ea51e0ab4c0a1647b8eb114e31a3e698dd6fbe" dependencies = [ - "hash-db", + "hash-db 0.16.0", ] [[package]] @@ -4987,7 +5246,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "futures", "log", @@ -5006,7 +5265,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "anyhow", "jsonrpsee", @@ -5298,6 +5557,20 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" +[[package]] +name = "num" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + [[package]] name = "num-bigint" version = "0.4.3" @@ -5338,6 +5611,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-rational" version = "0.4.1" @@ -5369,6 +5653,33 @@ dependencies = [ "libc", ] +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.15", +] + +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + [[package]] name = "object" version = "0.29.0" @@ -5505,10 +5816,43 @@ dependencies = [ "libm 0.1.4", ] +[[package]] +name = "pallet-asset-tx-payment" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-transaction-payment", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-assets" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-support", "frame-system", @@ -5524,7 +5868,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-support", "frame-system", @@ -5540,7 +5884,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-support", "frame-system", @@ -5554,7 +5898,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5578,7 +5922,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5598,7 +5942,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5610,10 +5954,24 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-base-fee" +version = "1.0.0" +source = "git+https://github.com/paritytech/frontier?branch=bar/polkadot-v0.9.42#a5a5e1e6ec08cd542a6084c310863150fb8841b1" +dependencies = [ + "fp-evm", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", +] + [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-support", "frame-system", @@ -5632,7 +5990,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "array-bytes 4.2.0", "binary-merkle-tree", @@ -5656,7 +6014,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5674,7 +6032,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5693,7 +6051,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "3.0.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "frame-benchmarking", "frame-support", @@ -5712,7 +6070,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5729,7 +6087,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "assert_matches", "frame-benchmarking", @@ -5746,7 +6104,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5764,7 +6122,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5787,7 +6145,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5800,7 +6158,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5815,10 +6173,96 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-ethereum" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/frontier?branch=bar/polkadot-v0.9.42#a5a5e1e6ec08cd542a6084c310863150fb8841b1" +dependencies = [ + "ethereum", + "ethereum-types", + "evm", + "fp-consensus", + "fp-ethereum", + "fp-evm", + "fp-rpc", + "fp-storage", + "frame-support", + "frame-system", + "pallet-evm", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-evm" +version = "6.0.0-dev" +source = "git+https://github.com/paritytech/frontier?branch=bar/polkadot-v0.9.42#a5a5e1e6ec08cd542a6084c310863150fb8841b1" +dependencies = [ + "environmental", + "evm", + "fp-account", + "fp-evm", + "frame-benchmarking", + "frame-support", + "frame-system", + "hex", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "rlp", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-evm-chain-id" +version = "1.0.0-dev" +source = "git+https://github.com/paritytech/frontier?branch=bar/polkadot-v0.9.42#a5a5e1e6ec08cd542a6084c310863150fb8841b1" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "pallet-evm-precompile-modexp" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/frontier?branch=bar/polkadot-v0.9.42#a5a5e1e6ec08cd542a6084c310863150fb8841b1" +dependencies = [ + "fp-evm", + "num", +] + +[[package]] +name = "pallet-evm-precompile-sha3fips" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/frontier?branch=bar/polkadot-v0.9.42#a5a5e1e6ec08cd542a6084c310863150fb8841b1" +dependencies = [ + "fp-evm", + "tiny-keccak", +] + +[[package]] +name = "pallet-evm-precompile-simple" +version = "2.0.0-dev" +source = "git+https://github.com/paritytech/frontier?branch=bar/polkadot-v0.9.42#a5a5e1e6ec08cd542a6084c310863150fb8841b1" +dependencies = [ + "fp-evm", + "ripemd", + "sp-io", +] + [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5836,7 +6280,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5859,7 +6303,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "enumflags2", "frame-benchmarking", @@ -5875,7 +6319,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5895,7 +6339,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5924,7 +6368,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5941,7 +6385,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5958,7 +6402,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5974,7 +6418,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -5990,7 +6434,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-support", "frame-system", @@ -6007,7 +6451,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6027,7 +6471,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -6038,7 +6482,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-support", "frame-system", @@ -6055,7 +6499,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6079,7 +6523,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -6096,7 +6540,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -6111,7 +6555,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -6129,7 +6573,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -6144,7 +6588,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6163,7 +6607,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -6180,7 +6624,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-support", "frame-system", @@ -6201,7 +6645,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -6217,7 +6661,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-support", "frame-system", @@ -6231,7 +6675,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6254,7 +6698,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -6265,7 +6709,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "log", "sp-arithmetic", @@ -6274,7 +6718,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "parity-scale-codec", "sp-api", @@ -6283,7 +6727,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -6300,7 +6744,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-support", "frame-system", @@ -6314,7 +6758,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -6332,7 +6776,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -6351,7 +6795,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-support", "frame-system", @@ -6367,7 +6811,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -6383,7 +6827,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6395,7 +6839,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -6412,7 +6856,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -6428,7 +6872,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -6443,7 +6887,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-benchmarking", "frame-support", @@ -6458,7 +6902,7 @@ dependencies = [ [[package]] name = "pallet-xcm" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "bounded-collections", "frame-benchmarking", @@ -6479,7 +6923,7 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "frame-benchmarking", "frame-support", @@ -6498,7 +6942,7 @@ dependencies = [ [[package]] name = "parachain-info" version = "0.1.0" -source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#422a22c9258cdd110750b3f63ecb8918581f7e87" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -6520,6 +6964,7 @@ dependencies = [ "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-relay-chain-interface", + "fp-evm", "frame-benchmarking", "frame-benchmarking-cli", "jsonrpsee", @@ -6587,7 +7032,14 @@ dependencies = [ "pallet-aura", "pallet-authorship", "pallet-balances", + "pallet-base-fee", "pallet-collator-selection", + "pallet-ethereum", + "pallet-evm", + "pallet-evm-chain-id", + "pallet-evm-precompile-modexp", + "pallet-evm-precompile-sha3fips", + "pallet-evm-precompile-simple", "pallet-livingassets-ownership", "pallet-session", "pallet-sudo", @@ -6596,8 +7048,10 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "pallet-xcm", "parachain-info", + "parachains-common", "parity-scale-codec", "polkadot-parachain", + "polkadot-primitives", "polkadot-runtime-common", "scale-info", "smallvec", @@ -6618,6 +7072,33 @@ dependencies = [ "xcm-executor", ] +[[package]] +name = "parachains-common" +version = "1.0.0" +source = "git+https://github.com/paritytech/cumulus.git?branch=polkadot-v0.9.42#f603a61ff370fc33740c9373833c3c6ba1486846" +dependencies = [ + "cumulus-primitives-utility", + "frame-support", + "frame-system", + "pallet-asset-tx-payment", + "pallet-assets", + "pallet-authorship", + "pallet-balances", + "pallet-collator-selection", + "parity-scale-codec", + "polkadot-primitives", + "scale-info", + "sp-consensus-aura", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "substrate-wasm-builder", + "xcm", + "xcm-builder", + "xcm-executor", +] + [[package]] name = "parity-db" version = "0.4.7" @@ -6918,7 +7399,7 @@ checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" [[package]] name = "polkadot-approval-distribution" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "futures", "polkadot-node-jaeger", @@ -6934,7 +7415,7 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "futures", "polkadot-node-network-protocol", @@ -6948,7 +7429,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "derive_more", "fatality", @@ -6971,7 +7452,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "fatality", "futures", @@ -6992,7 +7473,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "clap", "frame-benchmarking-cli", @@ -7021,7 +7502,7 @@ dependencies = [ [[package]] name = "polkadot-client" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "async-trait", "frame-benchmarking", @@ -7064,7 +7545,7 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "always-assert", "bitvec", @@ -7086,7 +7567,7 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "parity-scale-codec", "scale-info", @@ -7098,7 +7579,7 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "derive_more", "fatality", @@ -7123,7 +7604,7 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -7137,7 +7618,7 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "futures", "futures-timer", @@ -7157,7 +7638,7 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "always-assert", "async-trait", @@ -7180,7 +7661,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "futures", "parity-scale-codec", @@ -7198,7 +7679,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "bitvec", "derive_more", @@ -7227,7 +7708,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "bitvec", "futures", @@ -7248,7 +7729,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "bitvec", "fatality", @@ -7267,7 +7748,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "futures", "polkadot-node-subsystem", @@ -7282,7 +7763,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "async-trait", "futures", @@ -7302,7 +7783,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "futures", "polkadot-node-metrics", @@ -7317,7 +7798,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "futures", "futures-timer", @@ -7334,7 +7815,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "fatality", "futures", @@ -7353,7 +7834,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "async-trait", "futures", @@ -7370,7 +7851,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "bitvec", "fatality", @@ -7388,7 +7869,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "always-assert", "futures", @@ -7415,7 +7896,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "futures", "polkadot-node-primitives", @@ -7431,7 +7912,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-worker" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "assert_matches", "cpu-time", @@ -7460,7 +7941,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "futures", "lru 0.9.0", @@ -7475,7 +7956,7 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "lazy_static", "log", @@ -7493,7 +7974,7 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "bs58", "futures", @@ -7512,7 +7993,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "async-trait", "derive_more", @@ -7534,7 +8015,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "bounded-vec", "futures", @@ -7556,7 +8037,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -7566,7 +8047,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "async-trait", "derive_more", @@ -7589,7 +8070,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "async-trait", "derive_more", @@ -7622,7 +8103,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "async-trait", "futures", @@ -7645,7 +8126,7 @@ dependencies = [ [[package]] name = "polkadot-parachain" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "bounded-collections", "derive_more", @@ -7662,7 +8143,7 @@ dependencies = [ [[package]] name = "polkadot-performance-test" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "env_logger 0.9.3", "kusama-runtime", @@ -7680,7 +8161,7 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "bitvec", "hex-literal", @@ -7706,7 +8187,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -7738,7 +8219,7 @@ dependencies = [ [[package]] name = "polkadot-runtime" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "bitvec", "frame-benchmarking", @@ -7832,7 +8313,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "bitvec", "frame-benchmarking", @@ -7878,7 +8359,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "frame-support", "polkadot-primitives", @@ -7892,7 +8373,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "bs58", "parity-scale-codec", @@ -7904,7 +8385,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "bitflags", "bitvec", @@ -7948,7 +8429,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "async-trait", "frame-benchmarking-cli", @@ -8058,7 +8539,7 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "arrayvec 0.5.2", "fatality", @@ -8079,7 +8560,7 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -8137,6 +8618,12 @@ dependencies = [ "universal-hash 0.5.0", ] +[[package]] +name = "portable-atomic" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "767eb9f07d4a5ebcb39bbf2d452058a93c011373abf6832e24194a1c3f004794" + [[package]] name = "ppv-lite86" version = "0.2.17" @@ -8191,6 +8678,7 @@ checksum = "9f3486ccba82358b11a77516035647c34ba167dfa53312630de83b12bd4f3d66" dependencies = [ "fixed-hash", "impl-codec", + "impl-rlp", "impl-serde", "scale-info", "uint", @@ -8735,6 +9223,37 @@ dependencies = [ "winapi", ] +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.6", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rlp-derive", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "rocksdb" version = "0.20.1" @@ -8748,7 +9267,7 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "binary-merkle-tree", "frame-benchmarking", @@ -8834,7 +9353,7 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "frame-support", "polkadot-primitives", @@ -9060,7 +9579,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "log", "sp-core", @@ -9071,7 +9590,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "async-trait", "futures", @@ -9099,7 +9618,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "futures", "futures-timer", @@ -9122,7 +9641,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -9137,7 +9656,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "memmap2", "sc-chain-spec-derive", @@ -9156,7 +9675,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -9167,7 +9686,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "array-bytes 4.2.0", "chrono", @@ -9207,7 +9726,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "fnv", "futures", @@ -9233,9 +9752,9 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ - "hash-db", + "hash-db 0.16.0", "kvdb", "kvdb-memorydb", "kvdb-rocksdb", @@ -9259,7 +9778,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "async-trait", "futures", @@ -9284,7 +9803,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "async-trait", "futures", @@ -9313,7 +9832,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "async-trait", "fork-tree", @@ -9349,7 +9868,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "futures", "jsonrpsee", @@ -9371,7 +9890,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "array-bytes 4.2.0", "async-trait", @@ -9406,7 +9925,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "futures", "jsonrpsee", @@ -9425,7 +9944,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "fork-tree", "parity-scale-codec", @@ -9438,7 +9957,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "ahash 0.8.3", "array-bytes 4.2.0", @@ -9478,7 +9997,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "finality-grandpa", "futures", @@ -9498,7 +10017,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "async-trait", "futures", @@ -9521,7 +10040,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "lru 0.8.1", "parity-scale-codec", @@ -9545,7 +10064,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", @@ -9558,7 +10077,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "log", "sc-allocator", @@ -9571,7 +10090,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "anyhow", "cfg-if", @@ -9589,7 +10108,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "ansi_term", "futures", @@ -9605,7 +10124,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "array-bytes 4.2.0", "async-trait", @@ -9620,7 +10139,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "array-bytes 4.2.0", "async-channel", @@ -9665,7 +10184,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "cid", "futures", @@ -9685,7 +10204,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "array-bytes 4.2.0", "async-trait", @@ -9713,7 +10232,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "ahash 0.8.3", "futures", @@ -9732,7 +10251,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "array-bytes 4.2.0", "futures", @@ -9754,7 +10273,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "array-bytes 4.2.0", "async-trait", @@ -9788,7 +10307,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "array-bytes 4.2.0", "futures", @@ -9808,7 +10327,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "array-bytes 4.2.0", "bytes", @@ -9839,7 +10358,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "futures", "libp2p", @@ -9852,7 +10371,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -9861,7 +10380,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "futures", "jsonrpsee", @@ -9891,7 +10410,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -9910,7 +10429,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "http", "jsonrpsee", @@ -9925,7 +10444,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "array-bytes 4.2.0", "futures", @@ -9951,7 +10470,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "async-trait", "directories", @@ -10017,7 +10536,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "log", "parity-scale-codec", @@ -10028,7 +10547,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "clap", "fs4", @@ -10044,7 +10563,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10063,7 +10582,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "futures", "libc", @@ -10082,7 +10601,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "chrono", "futures", @@ -10101,7 +10620,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "ansi_term", "atty", @@ -10132,7 +10651,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -10143,7 +10662,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "async-trait", "futures", @@ -10170,7 +10689,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "async-trait", "futures", @@ -10184,7 +10703,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "async-channel", "futures", @@ -10597,7 +11116,7 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "enumn", "parity-scale-codec", @@ -10674,9 +11193,9 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ - "hash-db", + "hash-db 0.16.0", "log", "parity-scale-codec", "scale-info", @@ -10694,7 +11213,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "Inflector", "blake2", @@ -10708,7 +11227,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "parity-scale-codec", "scale-info", @@ -10721,7 +11240,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "integer-sqrt", "num-traits", @@ -10735,7 +11254,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "parity-scale-codec", "scale-info", @@ -10748,7 +11267,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "parity-scale-codec", "sp-api", @@ -10760,7 +11279,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "futures", "log", @@ -10778,7 +11297,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "async-trait", "futures", @@ -10793,7 +11312,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "async-trait", "parity-scale-codec", @@ -10811,7 +11330,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "async-trait", "parity-scale-codec", @@ -10832,7 +11351,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "lazy_static", "parity-scale-codec", @@ -10851,7 +11370,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "finality-grandpa", "log", @@ -10869,7 +11388,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "parity-scale-codec", "scale-info", @@ -10881,7 +11400,7 @@ dependencies = [ [[package]] name = "sp-core" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "array-bytes 4.2.0", "bitflags", @@ -10891,7 +11410,7 @@ dependencies = [ "dyn-clonable", "ed25519-zebra", "futures", - "hash-db", + "hash-db 0.16.0", "hash256-std-hasher", "impl-serde", "lazy_static", @@ -10925,7 +11444,7 @@ dependencies = [ [[package]] name = "sp-core-hashing" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "blake2b_simd", "byteorder", @@ -10939,7 +11458,7 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "proc-macro2", "quote", @@ -10950,7 +11469,7 @@ dependencies = [ [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -10959,7 +11478,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "proc-macro2", "quote", @@ -10969,7 +11488,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "environmental", "parity-scale-codec", @@ -10980,7 +11499,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -10995,7 +11514,7 @@ dependencies = [ [[package]] name = "sp-io" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "bytes", "ed25519", @@ -11021,7 +11540,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "lazy_static", "sp-core", @@ -11032,7 +11551,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "futures", "parity-scale-codec", @@ -11046,7 +11565,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "thiserror", "zstd 0.12.3+zstd.1.5.2", @@ -11055,7 +11574,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.1.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -11066,7 +11585,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -11084,7 +11603,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "parity-scale-codec", "scale-info", @@ -11098,7 +11617,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "sp-api", "sp-core", @@ -11108,7 +11627,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "backtrace", "lazy_static", @@ -11118,7 +11637,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "rustc-hash", "serde", @@ -11128,7 +11647,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "either", "hash256-std-hasher", @@ -11150,7 +11669,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -11168,7 +11687,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "Inflector", "proc-macro-crate", @@ -11180,7 +11699,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "parity-scale-codec", "scale-info", @@ -11194,7 +11713,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "parity-scale-codec", "scale-info", @@ -11207,9 +11726,9 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.13.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ - "hash-db", + "hash-db 0.16.0", "log", "parity-scale-codec", "parking_lot 0.12.1", @@ -11227,12 +11746,12 @@ dependencies = [ [[package]] name = "sp-std" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" [[package]] name = "sp-storage" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11245,7 +11764,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "async-trait", "futures-timer", @@ -11260,7 +11779,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "6.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "parity-scale-codec", "sp-std", @@ -11272,7 +11791,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "sp-api", "sp-runtime", @@ -11281,7 +11800,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "async-trait", "log", @@ -11297,10 +11816,10 @@ dependencies = [ [[package]] name = "sp-trie" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "ahash 0.8.3", - "hash-db", + "hash-db 0.16.0", "hashbrown 0.13.2", "lazy_static", "memory-db", @@ -11320,7 +11839,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11337,7 +11856,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -11348,7 +11867,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -11362,7 +11881,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "4.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "parity-scale-codec", "scale-info", @@ -11380,6 +11899,17 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "spinners" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08615eea740067d9899969bc2891c68a19c315cb1f66640af9a9ecb91b13bcab" +dependencies = [ + "lazy_static", + "maplit", + "strum", +] + [[package]] name = "spki" version = "0.6.0" @@ -11543,7 +12073,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "platforms 2.0.0", ] @@ -11551,7 +12081,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -11570,7 +12100,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "hyper", "log", @@ -11582,7 +12112,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "async-trait", "jsonrpsee", @@ -11595,7 +12125,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "jsonrpsee", "log", @@ -11614,7 +12144,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "ansi_term", "build-helper", @@ -11874,6 +12404,15 @@ dependencies = [ "zeroize", ] +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + [[package]] name = "tinytemplate" version = "1.2.1" @@ -12098,7 +12637,7 @@ dependencies = [ [[package]] name = "tracing-gum" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -12109,7 +12648,7 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "expander 2.0.0", "proc-macro-crate", @@ -12168,7 +12707,7 @@ version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "767abe6ffed88a1889671a102c2861ae742726f52e0a5a425b92c9fbfa7e9c85" dependencies = [ - "hash-db", + "hash-db 0.16.0", "hashbrown 0.13.2", "log", "rustc-hex", @@ -12181,7 +12720,17 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4ed310ef5ab98f5fa467900ed906cb9232dd5376597e00fd4cba2a449d06c0b" dependencies = [ - "hash-db", + "hash-db 0.16.0", +] + +[[package]] +name = "triehash" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1631b201eb031b563d2e85ca18ec8092508e262a3196ce9bd10a67ec87b9f5c" +dependencies = [ + "hash-db 0.15.2", + "rlp", ] [[package]] @@ -12239,7 +12788,7 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#bca8a29dbde0009e80c4c4737be47abff6b3e2c2" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.42#ff24c60ac7d9f87727ecdd0ded9a80c56e4f4b65" dependencies = [ "async-trait", "clap", @@ -13113,7 +13662,7 @@ dependencies = [ [[package]] name = "westend-runtime" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "bitvec", "frame-benchmarking", @@ -13205,7 +13754,7 @@ dependencies = [ [[package]] name = "westend-runtime-constants" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "frame-support", "polkadot-primitives", @@ -13562,7 +14111,7 @@ dependencies = [ [[package]] name = "xcm" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "bounded-collections", "derivative", @@ -13578,7 +14127,7 @@ dependencies = [ [[package]] name = "xcm-builder" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "frame-support", "frame-system", @@ -13599,7 +14148,7 @@ dependencies = [ [[package]] name = "xcm-executor" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "environmental", "frame-benchmarking", @@ -13619,7 +14168,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "0.9.42" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#9b1fc27cec47f01a2c229532ee7ab79cc5bb28ef" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.42#6f991987c0b4cbbd7d4badc9ef08d83da5fefbfd" dependencies = [ "Inflector", "proc-macro2", diff --git a/node/Cargo.toml b/node/Cargo.toml index 5a506703..08380f70 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -67,6 +67,9 @@ cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/c cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42" } color-print = "0.3.4" +# Frontier +fp-evm = { git = "https://github.com/paritytech/frontier", branch = "bar/polkadot-v0.9.42" } + [build-dependencies] substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index ab554f0c..52c0fd32 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -1,10 +1,11 @@ use cumulus_primitives_core::ParaId; -use parachain_template_runtime::{AccountId, AuraId, Signature, EXISTENTIAL_DEPOSIT, SudoConfig}; +use parachain_template_runtime::{AccountId, AuraId, Signature, EXISTENTIAL_DEPOSIT}; use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup}; use sc_service::ChainType; use serde::{Deserialize, Serialize}; -use sp_core::{sr25519, Pair, Public}; +use sp_core::{sr25519, Pair, Public, H160, U256}; use sp_runtime::traits::{IdentifyAccount, Verify}; +use std::{collections::BTreeMap, marker::PhantomData, str::FromStr}; /// Specialized `ChainSpec` for the normal parachain runtime. pub type ChainSpec = @@ -101,8 +102,9 @@ pub fn development_config() -> ChainSpec { get_account_id_from_seed::("Eve//stash"), get_account_id_from_seed::("Ferdie//stash"), ], + // Give Alice root privileges + Some(get_account_id_from_seed::("Alice")), 1000.into(), - get_account_id_from_seed::("Alice"), ) }, Vec::new(), @@ -157,8 +159,9 @@ pub fn local_testnet_config() -> ChainSpec { get_account_id_from_seed::("Eve//stash"), get_account_id_from_seed::("Ferdie//stash"), ], + // Give Alice root privileges + Some(get_account_id_from_seed::("Alice")), 1000.into(), - get_account_id_from_seed::("Alice"), ) }, // Bootnodes @@ -182,18 +185,44 @@ pub fn local_testnet_config() -> ChainSpec { fn testnet_genesis( invulnerables: Vec<(AccountId, AuraId)>, endowed_accounts: Vec, + root_key: Option, id: ParaId, - root_key: AccountId, ) -> parachain_template_runtime::GenesisConfig { + let alice = get_from_seed::("Alice"); + let bob = get_from_seed::("Bob"); + parachain_template_runtime::GenesisConfig { system: parachain_template_runtime::SystemConfig { code: parachain_template_runtime::WASM_BINARY .expect("WASM binary was not build, please build it!") .to_vec(), }, + // Configure additional assets here + // For example, this configures asset "ALT1" & "ALT2" with owners, alice and bob, respectively + // assets: parachain_template_runtime::AssetsConfig { + // assets: vec![ + // (1, alice.into(), true, 10_000_000_0000), + // (2, bob.into(), true, 10_000_000_0000), + // ], + // // Genesis metadata: Vec<(id, name, symbol, decimals)> + // metadata: vec![ + // (1, "asset-1".into(), "ALT1".into(), 10), + // (2, "asset-2".into(), "ALT2".into(), 10), + // ], + // // Genesis accounts: Vec<(id, account_id, balance)> + // accounts: vec![(1, alice.into(), 50_000_000_0000), (2, bob.into(), 50_000_000_0000)], + // }, balances: parachain_template_runtime::BalancesConfig { balances: endowed_accounts.iter().cloned().map(|k| (k, 1 << 60)).collect(), }, + // council: parachain_template_runtime::CouncilConfig { + // phantom: PhantomData, + // members: endowed_accounts + // .iter() + // .enumerate() + // .filter_map(|(idx, acc)| if idx % 2 == 0 { Some(acc.clone()) } else { None }) + // .collect::>(), + // }, parachain_info: parachain_template_runtime::ParachainInfoConfig { parachain_id: id }, collator_selection: parachain_template_runtime::CollatorSelectionConfig { invulnerables: invulnerables.iter().cloned().map(|(acc, _)| acc).collect(), @@ -220,10 +249,70 @@ fn testnet_genesis( polkadot_xcm: parachain_template_runtime::PolkadotXcmConfig { safe_xcm_version: Some(SAFE_XCM_VERSION), }, + sudo: parachain_template_runtime::SudoConfig { key: root_key }, transaction_payment: Default::default(), - sudo: SudoConfig { - // Assign network admin rights. - key: Some(root_key), + // EVM compatibility + evm_chain_id: parachain_template_runtime::EVMChainIdConfig { chain_id: 1000 }, + evm: parachain_template_runtime::EVMConfig { + accounts: { + let mut map = BTreeMap::new(); + map.insert( + // H160 address of Alice dev account + // Derived from SS58 (42 prefix) address + // SS58: 5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY + // hex: 0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d + // Using the full hex key, truncating to the first 20 bytes (the first 40 hex chars) + H160::from_str("d43593c715fdd31c61141abd04a99fd6822c8558") + .expect("internal H160 is valid; qed"), + fp_evm::GenesisAccount { + balance: U256::from_str("0xffffffffffffffffffffffffffffffff") + .expect("internal U256 is valid; qed"), + code: Default::default(), + nonce: Default::default(), + storage: Default::default(), + }, + ); + map.insert( + // H160 address of CI test runner account + H160::from_str("6be02d1d3665660d22ff9624b7be0551ee1ac91b") + .expect("internal H160 is valid; qed"), + fp_evm::GenesisAccount { + balance: U256::from_str("0xffffffffffffffffffffffffffffffff") + .expect("internal U256 is valid; qed"), + code: Default::default(), + nonce: Default::default(), + storage: Default::default(), + }, + ); + map.insert( + // H160 address for benchmark usage + H160::from_str("1000000000000000000000000000000000000001") + .expect("internal H160 is valid; qed"), + fp_evm::GenesisAccount { + nonce: U256::from(1), + balance: U256::from(1_000_000_000_000_000_000_000_000u128), + storage: Default::default(), + code: vec![0x00], + }, + ); + map.insert( + // H160 address of dev account + // Private key : 0xb9d2ea9a615f3165812e8d44de0d24da9bbd164b65c4f0573e1ce2c8dbd9c8df + H160::from_str("C0F0f4ab324C46e55D02D0033343B4Be8A55532d") + .expect("internal H160 is valid; qed"), + fp_evm::GenesisAccount { + balance: U256::from_str("0xef000000000000000000000000000") + .expect("internal U256 is valid; qed"), + code: Default::default(), + nonce: Default::default(), + storage: Default::default(), + }, + ); + map + }, }, + ethereum: Default::default(), + // dynamic_fee: Default::default(), + base_fee: Default::default(), } } diff --git a/node/src/command.rs b/node/src/command.rs index dce143da..72a71b9d 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -23,7 +23,9 @@ use crate::{ fn load_spec(id: &str) -> std::result::Result, String> { Ok(match id { - "arrakis" => Box::new(chain_spec::ChainSpec::from_json_bytes(&include_bytes!("../../specs/arrakis.json")[..])?), + "arrakis" => Box::new(chain_spec::ChainSpec::from_json_bytes( + &include_bytes!("../../specs/arrakis.json")[..], + )?), "dev" => Box::new(chain_spec::development_config()), "template-rococo" => Box::new(chain_spec::local_testnet_config()), "" | "local" => Box::new(chain_spec::local_testnet_config()), @@ -104,8 +106,11 @@ impl SubstrateCli for RelayChainCli { fn load_spec(&self, id: &str) -> std::result::Result, String> { match id { - "rococo_freeverse" => Ok(Box::new(RococoChainSpec::from_json_bytes(&include_bytes!("../../specs/rococo-freeverse-chainspec.json")[..])?)), - _ => polkadot_cli::Cli::from_iter([RelayChainCli::executable_name()].iter()).load_spec(id), + "rococo_freeverse" => Ok(Box::new(RococoChainSpec::from_json_bytes( + &include_bytes!("../../specs/rococo-freeverse-chainspec.json")[..], + )?)), + _ => polkadot_cli::Cli::from_iter([RelayChainCli::executable_name()].iter()) + .load_spec(id), } } diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 26a77a1a..dae7066e 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -58,6 +58,7 @@ polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", defa xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.42" } xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.42" } xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.42" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.42" } # Cumulus cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } @@ -71,6 +72,16 @@ cumulus-primitives-timestamp = { git = "https://github.com/paritytech/cumulus.gi cumulus-primitives-utility = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } pallet-collator-selection = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } parachain-info = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } +parachains-common = { git = "https://github.com/paritytech/cumulus.git", branch = "polkadot-v0.9.42", default-features = false } + +# Frontier +pallet-base-fee = { git = "https://github.com/paritytech/frontier", branch = "bar/polkadot-v0.9.42", default-features = false } +pallet-evm = { git = "https://github.com/paritytech/frontier.git", branch = "bar/polkadot-v0.9.42", default-features = false } +pallet-ethereum = { git = "https://github.com/paritytech/frontier.git", branch = "bar/polkadot-v0.9.42", default-features = false } +pallet-evm-chain-id = { git = "https://github.com/paritytech/frontier", branch = "bar/polkadot-v0.9.42", default-features = false } +pallet-evm-precompile-modexp = { git = "https://github.com/paritytech/frontier", branch = "bar/polkadot-v0.9.42", default-features = false } +pallet-evm-precompile-sha3fips = { git = "https://github.com/paritytech/frontier", branch = "bar/polkadot-v0.9.42", default-features = false } +pallet-evm-precompile-simple = { git = "https://github.com/paritytech/frontier", branch = "bar/polkadot-v0.9.42", default-features = false } [features] default = [ @@ -88,6 +99,7 @@ std = [ "cumulus-primitives-core/std", "cumulus-primitives-timestamp/std", "cumulus-primitives-utility/std", + "parachains-common/std", "frame-executive/std", "frame-support/std", "frame-system-rpc-runtime-api/std", @@ -105,6 +117,7 @@ std = [ "pallet-xcm/std", "parachain-info/std", "polkadot-parachain/std", + "polkadot-primitives/std", "polkadot-runtime-common/std", "sp-api/std", "sp-block-builder/std", @@ -121,6 +134,14 @@ std = [ "xcm-executor/std", "xcm/std", "substrate-wasm-builder", + # Frontier FRAME + "pallet-base-fee/std", + "pallet-ethereum/std", + "pallet-evm/std", + "pallet-evm-chain-id/std", + "pallet-evm-precompile-modexp/std", + "pallet-evm-precompile-sha3fips/std", + "pallet-evm-precompile-simple/std", ] runtime-benchmarks = [ diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index d522ba31..593e7117 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -12,12 +12,17 @@ pub mod xcm_config; use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; use smallvec::smallvec; use sp_api::impl_runtime_apis; -use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; +use sp_core::{ + crypto::{ByteArray, KeyTypeId}, + OpaqueMetadata, H160, H256, U256, +}; +use core::{marker::PhantomData}; + use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, - traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, IdentifyAccount, Verify}, + traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, IdentifyAccount, Verify, UniqueSaturatedInto}, transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, MultiSignature, + ApplyExtrinsicResult, MultiSignature, ConsensusEngineId }; use sp_std::prelude::*; @@ -29,7 +34,7 @@ use frame_support::{ construct_runtime, dispatch::DispatchClass, parameter_types, - traits::{ConstU32, ConstU64, ConstU8, EitherOfDiverse, Everything}, + traits::{ConstU32, ConstU64, ConstU8, EitherOfDiverse, Everything, FindAuthor, OnUnbalanced, Currency, Imbalance}, weights::{ constants::WEIGHT_REF_TIME_PER_SECOND, ConstantMultiplier, Weight, WeightToFeeCoefficient, WeightToFeeCoefficients, WeightToFeePolynomial, @@ -40,6 +45,7 @@ use frame_system::{ limits::{BlockLength, BlockWeights}, EnsureRoot, }; +use pallet_balances::NegativeImbalance; use pallet_xcm::{EnsureXcm, IsVoiceOfBody}; pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; pub use sp_runtime::{MultiAddress, Perbill, Permill}; @@ -48,6 +54,10 @@ use xcm_config::{RelayLocation, XcmConfig, XcmOriginToTransactDispatchOrigin}; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; +// Cumulus imports +//https://github.com/paritytech/cumulus/tree/master/parachains/common +pub use parachains_common::impls::{AccountIdOf, DealWithFees}; + // Polkadot imports use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; @@ -57,6 +67,16 @@ use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; use xcm::latest::prelude::BodyId; use xcm_executor::XcmExecutor; +// Frontier +use pallet_ethereum::{Call::transact, Transaction as EthereumTransaction, PostLogContent}; +use pallet_evm::{ + Account as EVMAccount, EVMCurrencyAdapter, EnsureAddressTruncated, FeeCalculator, + HashedAddressMapping, OnChargeEVMTransaction, Runner, +}; + +mod precompiles; +use precompiles::FrontierPrecompiles; + /// Import the template pallet. pub use pallet_livingassets_ownership; @@ -223,6 +243,22 @@ const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts( cumulus_primitives_core::relay_chain::MAX_POV_SIZE as u64, ); +/// Current approximation of the gas/s consumption considering +/// EVM execution over compiled WASM (on 4.4Ghz CPU). +/// Given the 500ms Weight, from which 75% only are used for transactions, +/// the total EVM execution gas limit is: GAS_PER_SECOND * 0.500 * 0.75 ~= 15_000_000. +/// Note: this value has been used in production by (and is copied from) the Moonbeam parachain. +pub const GAS_PER_SECOND: u64 = 40_000_000; + +/// Approximate ratio of the amount of Weight per Gas. +/// u64 works for approximations because Weight is a very small unit compared to gas. +pub const WEIGHT_PER_GAS: u64 = WEIGHT_REF_TIME_PER_SECOND / GAS_PER_SECOND; + +pub const WEI: Balance = 1; +pub const KILOWEI: Balance = 1_000 * WEI; +pub const MEGAWEI: Balance = 1_000 * KILOWEI; +pub const GIGAWEI: Balance = 1_000 * MEGAWEI; + /// The version information used to identify this runtime when compiled natively. #[cfg(feature = "std")] pub fn native_version() -> NativeVersion { @@ -466,6 +502,147 @@ impl pallet_sudo::Config for Runtime { // type WeightInfo = (); } +// Frontier + +impl pallet_evm_chain_id::Config for Runtime {} + +pub struct FindAuthorTruncated(PhantomData); +impl> FindAuthor for FindAuthorTruncated { + fn find_author<'a, I>(digests: I) -> Option + where + I: 'a + IntoIterator, + { + if let Some(author_index) = F::find_author(digests) { + let authority_id = Aura::authorities()[author_index as usize].clone(); + return Some(H160::from_slice(&authority_id.to_raw_vec()[4..24])) + } + None + } +} + +/// Handles transaction fees from the EVM, depositing priority fee in a staking pot +pub struct EVMDealWithFees(PhantomData); + +impl OnUnbalanced> for EVMDealWithFees +where + R: pallet_balances::Config + pallet_collator_selection::Config + core::fmt::Debug, + AccountIdOf: + From + Into, + ::RuntimeEvent: From>, +{ + fn on_nonzero_unbalanced(amount: NegativeImbalance) { + // deposit the fee into the collator_selection reward pot + let staking_pot = >::account_id(); + >::resolve_creating(&staking_pot, amount); + } +} + +pub struct EVMTransactionChargeHandler(PhantomData); + +type BalanceOf = <::Currency as Currency>>::Balance; +type PositiveImbalanceOf = + <::Currency as Currency>>::PositiveImbalance; +type NegativeImbalanceOf = + <::Currency as Currency>>::NegativeImbalance; + +impl OnChargeEVMTransaction for EVMTransactionChargeHandler +where + R: pallet_evm::Config, + PositiveImbalanceOf: Imbalance, Opposite = NegativeImbalanceOf>, + NegativeImbalanceOf: Imbalance, Opposite = PositiveImbalanceOf>, + OU: OnUnbalanced>, + U256: UniqueSaturatedInto>, +{ + type LiquidityInfo = Option>; + + fn withdraw_fee( + who: &H160, + fee: sp_core::U256, + ) -> Result> { + EVMCurrencyAdapter::<::Currency, ()>::withdraw_fee(who, fee) + } + + fn correct_and_deposit_fee( + who: &H160, + corrected_fee: sp_core::U256, + base_fee: sp_core::U256, + already_withdrawn: Self::LiquidityInfo, + ) -> Self::LiquidityInfo { + ::Currency, OU> + as OnChargeEVMTransaction>::correct_and_deposit_fee(who, corrected_fee, base_fee, already_withdrawn) + } + + fn pay_priority_fee(tip: Self::LiquidityInfo) { + if let Some(tip) = tip { + OU::on_unbalanced(tip); + } + } +} + +parameter_types! { + pub BlockGasLimit: U256 = U256::from(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT.ref_time() / WEIGHT_PER_GAS); + pub PrecompilesValue: FrontierPrecompiles = FrontierPrecompiles::<_>::new(); + pub WeightPerGas: Weight = Weight::from_ref_time(WEIGHT_PER_GAS); +} + +impl pallet_evm::Config for Runtime { + type FeeCalculator = BaseFee; + type GasWeightMapping = pallet_evm::FixedGasWeightMapping; + type WeightPerGas = WeightPerGas; + type BlockHashMapping = pallet_ethereum::EthereumBlockHashMapping; + type CallOrigin = EnsureAddressTruncated; + type WithdrawOrigin = EnsureAddressTruncated; + type AddressMapping = HashedAddressMapping; + type Currency = Balances; + type RuntimeEvent = RuntimeEvent; + type PrecompilesType = FrontierPrecompiles; + type PrecompilesValue = PrecompilesValue; + type ChainId = EVMChainId; + type BlockGasLimit = BlockGasLimit; + type Runner = pallet_evm::runner::stack::Runner; + type OnChargeTransaction = EVMTransactionChargeHandler>; + type OnCreate = (); + type FindAuthor = FindAuthorTruncated; + type Timestamp = Timestamp; + type WeightInfo = pallet_evm::weights::SubstrateWeight; +} + +parameter_types! { + pub const PostBlockAndTxnHashes: PostLogContent = PostLogContent::BlockAndTxnHashes; +} + +impl pallet_ethereum::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type StateRoot = pallet_ethereum::IntermediateStateRoot; + type PostLogContent = PostBlockAndTxnHashes; + type ExtraDataLength = ConstU32<30>; +} + +parameter_types! { + pub DefaultBaseFeePerGas: U256 = U256::from(1_000_000_000); + pub DefaultElasticity: Permill = Permill::from_parts(125_000); +} + +pub struct BaseFeeThreshold; +impl pallet_base_fee::BaseFeeThreshold for BaseFeeThreshold { + fn lower() -> Permill { + Permill::zero() + } + fn ideal() -> Permill { + Permill::from_parts(500_000) + } + fn upper() -> Permill { + Permill::from_parts(1_000_000) + } +} + +impl pallet_base_fee::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Threshold = BaseFeeThreshold; + type DefaultBaseFeePerGas = DefaultBaseFeePerGas; + type DefaultElasticity = DefaultElasticity; +} + // Create the runtime by composing the FRAME pallets that were previously configured. construct_runtime!( pub enum Runtime where @@ -476,29 +653,37 @@ construct_runtime!( // System support stuff. System: frame_system = 0, ParachainSystem: cumulus_pallet_parachain_system = 1, - Timestamp: pallet_timestamp = 2, + Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 2, ParachainInfo: parachain_info = 3, - + // Monetary stuff. Balances: pallet_balances = 10, TransactionPayment: pallet_transaction_payment = 11, - + // Collator support. The order of these 4 are important and shall not change. Authorship: pallet_authorship = 20, CollatorSelection: pallet_collator_selection = 21, Session: pallet_session = 22, Aura: pallet_aura = 23, AuraExt: cumulus_pallet_aura_ext = 24, - + // XCM helpers. XcmpQueue: cumulus_pallet_xcmp_queue = 30, PolkadotXcm: pallet_xcm = 31, CumulusXcm: cumulus_pallet_xcm = 32, DmpQueue: cumulus_pallet_dmp_queue = 33, - + // Template Sudo: pallet_sudo = 40, LivingassetsOwnership: pallet_livingassets_ownership = 41, + + // Frontier + Ethereum: pallet_ethereum = 50, + EVM: pallet_evm = 51, + EVMChainId: pallet_evm_chain_id = 52, + // DynamicFee: pallet_dynamic_fee = 43, + BaseFee: pallet_base_fee = 54, + // HotfixSufficients: pallet_hotfix_sufficients = 45, } ); diff --git a/runtime/src/precompiles.rs b/runtime/src/precompiles.rs new file mode 100644 index 00000000..bed6739b --- /dev/null +++ b/runtime/src/precompiles.rs @@ -0,0 +1,51 @@ +use pallet_evm::{Precompile, PrecompileHandle, PrecompileResult, PrecompileSet, IsPrecompileResult}; +use sp_core::H160; +use sp_std::marker::PhantomData; + +use pallet_evm_precompile_modexp::Modexp; +use pallet_evm_precompile_sha3fips::Sha3FIPS256; +use pallet_evm_precompile_simple::{ECRecover, ECRecoverPublicKey, Identity, Ripemd160, Sha256}; + +pub struct FrontierPrecompiles(PhantomData); + +impl FrontierPrecompiles +where + R: pallet_evm::Config, +{ + pub fn new() -> Self { + Self(Default::default()) + } + pub fn used_addresses() -> [H160; 7] { + [hash(1), hash(2), hash(3), hash(4), hash(5), hash(1024), hash(1025)] + } +} +impl PrecompileSet for FrontierPrecompiles +where + R: pallet_evm::Config, +{ + fn execute(&self, handle: &mut impl PrecompileHandle) -> Option { + match handle.code_address() { + // Ethereum precompiles : + a if a == hash(1) => Some(ECRecover::execute(handle)), + a if a == hash(2) => Some(Sha256::execute(handle)), + a if a == hash(3) => Some(Ripemd160::execute(handle)), + a if a == hash(4) => Some(Identity::execute(handle)), + a if a == hash(5) => Some(Modexp::execute(handle)), + // Non-Frontier specific nor Ethereum precompiles : + a if a == hash(1024) => Some(Sha3FIPS256::execute(handle)), + a if a == hash(1025) => Some(ECRecoverPublicKey::execute(handle)), + _ => None, + } + } + + fn is_precompile(&self, address: H160, _gas: u64) -> IsPrecompileResult { + IsPrecompileResult::Answer { + is_precompile: Self::used_addresses().contains(&address), + extra_cost: 0, + } + } +} + +fn hash(a: u64) -> H160 { + H160::from_low_u64_be(a) +} From ab9d07c9cdbb288f8d829285168b7533c56a0b3e Mon Sep 17 00:00:00 2001 From: magecnion Date: Tue, 4 Jul 2023 16:07:05 +0200 Subject: [PATCH 78/91] runtime api added; wip netapi rpc --- Cargo.lock | 1 + node/src/rpc.rs | 3 + runtime/Cargo.toml | 6 ++ runtime/src/lib.rs | 146 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 156 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 88ea71d6..2f0baf4c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7020,6 +7020,7 @@ dependencies = [ "cumulus-primitives-core", "cumulus-primitives-timestamp", "cumulus-primitives-utility", + "fp-rpc", "frame-benchmarking", "frame-executive", "frame-support", diff --git a/node/src/rpc.rs b/node/src/rpc.rs index 2bc5cccc..028cb5e8 100644 --- a/node/src/rpc.rs +++ b/node/src/rpc.rs @@ -15,6 +15,7 @@ use sc_transaction_pool_api::TransactionPool; use sp_api::ProvideRuntimeApi; use sp_block_builder::BlockBuilder; use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; +use sc_network::NetworkService; /// A type representing all RPC extensions. pub type RpcExtension = jsonrpsee::RpcModule<()>; @@ -27,6 +28,8 @@ pub struct FullDeps { pub pool: Arc